From 9a9bd102904f0ac57a427634cd9f2e6302d60624 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Mon, 28 Feb 2022 20:42:40 -0800 Subject: [PATCH 001/125] cmd/compile/internal/importer: support final unified IR export format This updates the cmd/compile/internal/importer to natively support the "final" unified IR export format. This is really just for unit tests and symmetry with go/internal/gcimporter though, since cmd/compile/internal/noder has its own types2.Importer. Change-Id: I52fbb6134dbc0a903d62c1b04f95d33bd29e0414 Reviewed-on: https://go-review.googlesource.com/c/go/+/388617 Run-TryBot: Matthew Dempsky Reviewed-by: Robert Griesemer TryBot-Result: Gopher Robot Trust: Matthew Dempsky --- .../compile/internal/importer/exportdata.go | 8 +++-- .../compile/internal/importer/gcimporter.go | 29 +++++++++++++++---- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/cmd/compile/internal/importer/exportdata.go b/src/cmd/compile/internal/importer/exportdata.go index 6a672be9c1..42fc5c9a57 100644 --- a/src/cmd/compile/internal/importer/exportdata.go +++ b/src/cmd/compile/internal/importer/exportdata.go @@ -41,7 +41,9 @@ func readGopackHeader(r *bufio.Reader) (name string, size int, err error) { // start of the file before calling this function. The hdr result // is the string before the export data, either "$$" or "$$B". // -func FindExportData(r *bufio.Reader) (hdr string, err error) { +// If size is non-negative, it's the number of bytes of export data +// still available to read from r. +func FindExportData(r *bufio.Reader) (hdr string, size int, err error) { // Read first line to make sure this is an object file. line, err := r.ReadSlice('\n') if err != nil { @@ -52,7 +54,7 @@ func FindExportData(r *bufio.Reader) (hdr string, err error) { if string(line) == "!\n" { // Archive file. Scan to __.PKGDEF. var name string - if name, _, err = readGopackHeader(r); err != nil { + if name, size, err = readGopackHeader(r); err != nil { return } @@ -76,6 +78,7 @@ func FindExportData(r *bufio.Reader) (hdr string, err error) { err = fmt.Errorf("not a Go object file") return } + size -= len(line) // Skip over object header to export data. // Begins after first line starting with $$. @@ -84,6 +87,7 @@ func FindExportData(r *bufio.Reader) (hdr string, err error) { err = fmt.Errorf("can't find export data (%v)", err) return } + size -= len(line) } hdr = string(line) diff --git a/src/cmd/compile/internal/importer/gcimporter.go b/src/cmd/compile/internal/importer/gcimporter.go index ff40be65bb..6c27f8b332 100644 --- a/src/cmd/compile/internal/importer/gcimporter.go +++ b/src/cmd/compile/internal/importer/gcimporter.go @@ -10,6 +10,7 @@ import ( "cmd/compile/internal/types2" "fmt" "go/build" + "internal/pkgbits" "io" "io/ioutil" "os" @@ -134,9 +135,9 @@ func Import(packages map[string]*types2.Package, path, srcDir string, lookup fun } defer rc.Close() - var hdr string buf := bufio.NewReader(rc) - if hdr, err = FindExportData(buf); err != nil { + hdr, size, err := FindExportData(buf) + if err != nil { return } @@ -146,17 +147,33 @@ func Import(packages map[string]*types2.Package, path, srcDir string, lookup fun case "$$B\n": var data []byte - data, err = ioutil.ReadAll(buf) + var r io.Reader = buf + if size >= 0 { + r = io.LimitReader(r, int64(size)) + } + data, err = ioutil.ReadAll(r) if err != nil { break } + if len(data) == 0 { + err = fmt.Errorf("import %q: missing export data", path) + break + } + exportFormat := data[0] + s := string(data[1:]) + // The indexed export format starts with an 'i'; the older // binary export format starts with a 'c', 'd', or 'v' // (from "version"). Select appropriate importer. - if len(data) > 0 && data[0] == 'i' { - pkg, err = ImportData(packages, string(data[1:]), id) - } else { + switch exportFormat { + case 'u': + s = s[:strings.Index(s, "\n$$\n")] + input := pkgbits.NewPkgDecoder(id, s) + pkg = ReadPackage(nil, packages, input) + case 'i': + pkg, err = ImportData(packages, s, id) + default: err = fmt.Errorf("import %q: old binary export format no longer supported (recompile library)", path) } From 94727bed02d59b6a40757ba583f61d1b03493e5d Mon Sep 17 00:00:00 2001 From: Ben Shi Date: Mon, 28 Mar 2022 11:40:02 +0000 Subject: [PATCH 002/125] cmd/internal/obj/riscv: add two-operand form to more instructions Add two-operand form "op rs, rd" to ADDW/SUBW/SLLW/SRLW/SRAW/SLLIW/SRLIW/SRAIW. Do the following map: "ADDW $imm, rd" -> "ADDIW $imm, rd" "SLLW $imm, rd" -> "SLLIW $imm, rd" "SRLW $imm, rd" -> "SRLIW $imm, rd" "SRAW $imm, rd" -> "SRAIW $imm, rd" Change-Id: Ie9632ba198ba8c05faac91504e4b97fc45ca1196 GitHub-Last-Rev: c6ccc9d5d0612ede1a1ffebb6bbc0309da87f4e1 GitHub-Pull-Request: golang/go#51984 Reviewed-on: https://go-review.googlesource.com/c/go/+/396134 Run-TryBot: Ben Shi Reviewed-by: Cherry Mui TryBot-Result: Gopher Robot Reviewed-by: Joel Sing --- src/cmd/asm/internal/asm/testdata/riscv64.s | 13 +++++++++++++ src/cmd/internal/obj/riscv/obj.go | 9 +++++++++ 2 files changed, 22 insertions(+) diff --git a/src/cmd/asm/internal/asm/testdata/riscv64.s b/src/cmd/asm/internal/asm/testdata/riscv64.s index fe911a74f5..79d6054869 100644 --- a/src/cmd/asm/internal/asm/testdata/riscv64.s +++ b/src/cmd/asm/internal/asm/testdata/riscv64.s @@ -145,6 +145,19 @@ start: SRLW X5, X6, X7 // bb535300 SUBW X5, X6, X7 // bb035340 SRAW X5, X6, X7 // bb535340 + ADDIW $1, X6 // 1b031300 + SLLIW $1, X6 // 1b131300 + SRLIW $1, X6 // 1b531300 + SRAIW $1, X6 // 1b531340 + ADDW X5, X7 // bb835300 + SLLW X5, X7 // bb935300 + SRLW X5, X7 // bbd35300 + SUBW X5, X7 // bb835340 + SRAW X5, X7 // bbd35340 + ADDW $1, X6 // 1b031300 + SLLW $1, X6 // 1b131300 + SRLW $1, X6 // 1b531300 + SRAW $1, X6 // 1b531340 // 5.3: Load and Store Instructions (RV64I) LD (X5), X6 // 03b30200 diff --git a/src/cmd/internal/obj/riscv/obj.go b/src/cmd/internal/obj/riscv/obj.go index 9f16de0c8c..47dbfc0fed 100644 --- a/src/cmd/internal/obj/riscv/obj.go +++ b/src/cmd/internal/obj/riscv/obj.go @@ -53,6 +53,7 @@ func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) { if p.Reg == obj.REG_NONE { switch p.As { case AADDI, ASLTI, ASLTIU, AANDI, AORI, AXORI, ASLLI, ASRLI, ASRAI, + AADDIW, ASLLIW, ASRLIW, ASRAIW, AADDW, ASUBW, ASLLW, ASRLW, ASRAW, AADD, AAND, AOR, AXOR, ASLL, ASRL, ASUB, ASRA, AMUL, AMULH, AMULHU, AMULHSU, AMULW, ADIV, ADIVU, ADIVW, ADIVUW, AREM, AREMU, AREMW, AREMUW: @@ -82,6 +83,14 @@ func progedit(ctxt *obj.Link, p *obj.Prog, newprog obj.ProgAlloc) { p.As = ASRLI case ASRA: p.As = ASRAI + case AADDW: + p.As = AADDIW + case ASLLW: + p.As = ASLLIW + case ASRLW: + p.As = ASRLIW + case ASRAW: + p.As = ASRAIW } } From 1724077b789ad92972ab1ac03788389645306cbb Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 28 Mar 2022 15:28:41 -0700 Subject: [PATCH 003/125] doc/go1.19: mention new unix build constraint For #51572 Change-Id: Ib27be79379c8b3f72e29365b58067d7ee1919e52 Reviewed-on: https://go-review.googlesource.com/c/go/+/396295 Trust: Ian Lance Taylor Reviewed-by: Dmitri Shuralyov --- doc/go1.19.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/doc/go1.19.html b/doc/go1.19.html index c71d5e760b..c0e2cf1761 100644 --- a/doc/go1.19.html +++ b/doc/go1.19.html @@ -34,6 +34,23 @@ Do not send CLs removing the interior tags from such phrases.

TODO: complete this section, or delete if not needed

+ +

New unix build constraint

+ +

+ The build constraint unix is now recognized + in //go:build lines. The constraint is satisfied + if the target operating system, also known as GOOS, is + a Unix or Unix-like system. For the 1.19 release it is satisfied + if GOOS is one of + aix, android, darwin, + dragonfly, freebsd, hurd, + illumos, ios, linux, + netbsd, openbsd, or solaris. + In future releases the unix constraint may match + additional newly supported operating systems. +

+

Runtime

TODO: complete this section, or delete if not needed From 9b90838712856cad86504a526e566f963f86c04e Mon Sep 17 00:00:00 2001 From: Robert Findley Date: Thu, 24 Mar 2022 13:29:03 -0400 Subject: [PATCH 004/125] go/types, types2: preserve parent scope when substituting receivers Fixes #51920 Change-Id: I29e44a52dabee5c09e1761f9ec8fb2e8795f8901 Reviewed-on: https://go-review.googlesource.com/c/go/+/395538 Trust: Robert Findley Run-TryBot: Robert Findley Reviewed-by: Robert Griesemer TryBot-Result: Gopher Robot --- src/cmd/compile/internal/types2/api_test.go | 97 ++++++++++++++++++++ src/cmd/compile/internal/types2/named.go | 2 +- src/cmd/compile/internal/types2/subst.go | 15 ++-- src/go/types/api_test.go | 98 +++++++++++++++++++++ src/go/types/named.go | 2 +- src/go/types/subst.go | 15 ++-- 6 files changed, 215 insertions(+), 14 deletions(-) diff --git a/src/cmd/compile/internal/types2/api_test.go b/src/cmd/compile/internal/types2/api_test.go index d433ed1bdf..d8f7fb5eda 100644 --- a/src/cmd/compile/internal/types2/api_test.go +++ b/src/cmd/compile/internal/types2/api_test.go @@ -2305,6 +2305,103 @@ func TestInstanceIdentity(t *testing.T) { } } +// TestInstantiatedObjects verifies properties of instantiated objects. +func TestInstantiatedObjects(t *testing.T) { + const src = ` +package p + +type T[P any] struct { + field P +} + +func (recv *T[Q]) concreteMethod() {} + +type FT[P any] func(ftp P) (ftrp P) + +func F[P any](fp P) (frp P){ return } + +type I[P any] interface { + interfaceMethod(P) +} + +var ( + t T[int] + ft FT[int] + f = F[int] + i I[int] +) +` + info := &Info{ + Defs: make(map[*syntax.Name]Object), + } + f, err := parseSrc("p.go", src) + if err != nil { + t.Fatal(err) + } + conf := Config{} + pkg, err := conf.Check(f.PkgName.Value, []*syntax.File{f}, info) + if err != nil { + t.Fatal(err) + } + + lookup := func(name string) Type { return pkg.Scope().Lookup(name).Type() } + tests := []struct { + ident string + obj Object + }{ + {"field", lookup("t").Underlying().(*Struct).Field(0)}, + {"concreteMethod", lookup("t").(*Named).Method(0)}, + {"recv", lookup("t").(*Named).Method(0).Type().(*Signature).Recv()}, + {"ftp", lookup("ft").Underlying().(*Signature).Params().At(0)}, + {"ftrp", lookup("ft").Underlying().(*Signature).Results().At(0)}, + {"fp", lookup("f").(*Signature).Params().At(0)}, + {"frp", lookup("f").(*Signature).Results().At(0)}, + {"interfaceMethod", lookup("i").Underlying().(*Interface).Method(0)}, + } + + // Collect all identifiers by name. + idents := make(map[string][]*syntax.Name) + syntax.Inspect(f, func(n syntax.Node) bool { + if id, ok := n.(*syntax.Name); ok { + idents[id.Value] = append(idents[id.Value], id) + } + return true + }) + + for _, test := range tests { + test := test + t.Run(test.ident, func(t *testing.T) { + if got := len(idents[test.ident]); got != 1 { + t.Fatalf("found %d identifiers named %s, want 1", got, test.ident) + } + ident := idents[test.ident][0] + def := info.Defs[ident] + if def == test.obj { + t.Fatalf("info.Defs[%s] contains the test object", test.ident) + } + if def.Pkg() != test.obj.Pkg() { + t.Errorf("Pkg() = %v, want %v", def.Pkg(), test.obj.Pkg()) + } + if def.Name() != test.obj.Name() { + t.Errorf("Name() = %v, want %v", def.Name(), test.obj.Name()) + } + if def.Pos() != test.obj.Pos() { + t.Errorf("Pos() = %v, want %v", def.Pos(), test.obj.Pos()) + } + if def.Parent() != test.obj.Parent() { + t.Fatalf("Parent() = %v, want %v", def.Parent(), test.obj.Parent()) + } + if def.Exported() != test.obj.Exported() { + t.Fatalf("Exported() = %v, want %v", def.Exported(), test.obj.Exported()) + } + if def.Id() != test.obj.Id() { + t.Fatalf("Id() = %v, want %v", def.Id(), test.obj.Id()) + } + // String and Type are expected to differ. + }) + } +} + func TestImplements(t *testing.T) { const src = ` package p diff --git a/src/cmd/compile/internal/types2/named.go b/src/cmd/compile/internal/types2/named.go index 89d24d4e0b..584ee51a13 100644 --- a/src/cmd/compile/internal/types2/named.go +++ b/src/cmd/compile/internal/types2/named.go @@ -191,7 +191,7 @@ func (t *Named) instantiateMethod(i int) *Func { rtyp = t } - sig.recv = NewParam(origSig.recv.pos, origSig.recv.pkg, origSig.recv.name, rtyp) + sig.recv = substVar(origSig.recv, rtyp) return NewFunc(origm.pos, origm.pkg, origm.name, sig) } diff --git a/src/cmd/compile/internal/types2/subst.go b/src/cmd/compile/internal/types2/subst.go index 037f04797b..c9e8f9676d 100644 --- a/src/cmd/compile/internal/types2/subst.go +++ b/src/cmd/compile/internal/types2/subst.go @@ -290,14 +290,18 @@ func (subst *subster) typOrNil(typ Type) Type { func (subst *subster) var_(v *Var) *Var { if v != nil { if typ := subst.typ(v.typ); typ != v.typ { - copy := *v - copy.typ = typ - return © + return substVar(v, typ) } } return v } +func substVar(v *Var, typ Type) *Var { + copy := *v + copy.typ = typ + return © +} + func (subst *subster) tuple(t *Tuple) *Tuple { if t != nil { if vars, copied := subst.varList(t.vars); copied { @@ -410,9 +414,8 @@ func replaceRecvType(in []*Func, old, new Type) (out []*Func, copied bool) { copied = true } newsig := *sig - sig = &newsig - sig.recv = NewVar(sig.recv.pos, sig.recv.pkg, "", new) - out[i] = NewFunc(method.pos, method.pkg, method.name, sig) + newsig.recv = substVar(sig.recv, new) + out[i] = NewFunc(method.pos, method.pkg, method.name, &newsig) } } return diff --git a/src/go/types/api_test.go b/src/go/types/api_test.go index d25e6116cf..9ed4633b6f 100644 --- a/src/go/types/api_test.go +++ b/src/go/types/api_test.go @@ -2305,6 +2305,104 @@ func TestInstanceIdentity(t *testing.T) { } } +// TestInstantiatedObjects verifies properties of instantiated objects. +func TestInstantiatedObjects(t *testing.T) { + const src = ` +package p + +type T[P any] struct { + field P +} + +func (recv *T[Q]) concreteMethod() {} + +type FT[P any] func(ftp P) (ftrp P) + +func F[P any](fp P) (frp P){ return } + +type I[P any] interface { + interfaceMethod(P) +} + +var ( + t T[int] + ft FT[int] + f = F[int] + i I[int] +) +` + info := &Info{ + Defs: make(map[*ast.Ident]Object), + } + fset := token.NewFileSet() + f, err := parser.ParseFile(fset, "p.go", src, 0) + if err != nil { + t.Fatal(err) + } + conf := Config{} + pkg, err := conf.Check(f.Name.Name, fset, []*ast.File{f}, info) + if err != nil { + t.Fatal(err) + } + + lookup := func(name string) Type { return pkg.Scope().Lookup(name).Type() } + tests := []struct { + name string + obj Object + }{ + {"field", lookup("t").Underlying().(*Struct).Field(0)}, + {"concreteMethod", lookup("t").(*Named).Method(0)}, + {"recv", lookup("t").(*Named).Method(0).Type().(*Signature).Recv()}, + {"ftp", lookup("ft").Underlying().(*Signature).Params().At(0)}, + {"ftrp", lookup("ft").Underlying().(*Signature).Results().At(0)}, + {"fp", lookup("f").(*Signature).Params().At(0)}, + {"frp", lookup("f").(*Signature).Results().At(0)}, + {"interfaceMethod", lookup("i").Underlying().(*Interface).Method(0)}, + } + + // Collect all identifiers by name. + idents := make(map[string][]*ast.Ident) + ast.Inspect(f, func(n ast.Node) bool { + if id, ok := n.(*ast.Ident); ok { + idents[id.Name] = append(idents[id.Name], id) + } + return true + }) + + for _, test := range tests { + test := test + t.Run(test.name, func(t *testing.T) { + if got := len(idents[test.name]); got != 1 { + t.Fatalf("found %d identifiers named %s, want 1", got, test.name) + } + ident := idents[test.name][0] + def := info.Defs[ident] + if def == test.obj { + t.Fatalf("info.Defs[%s] contains the test object", test.name) + } + if def.Pkg() != test.obj.Pkg() { + t.Errorf("Pkg() = %v, want %v", def.Pkg(), test.obj.Pkg()) + } + if def.Name() != test.obj.Name() { + t.Errorf("Name() = %v, want %v", def.Name(), test.obj.Name()) + } + if def.Pos() != test.obj.Pos() { + t.Errorf("Pos() = %v, want %v", def.Pos(), test.obj.Pos()) + } + if def.Parent() != test.obj.Parent() { + t.Fatalf("Parent() = %v, want %v", def.Parent(), test.obj.Parent()) + } + if def.Exported() != test.obj.Exported() { + t.Fatalf("Exported() = %v, want %v", def.Exported(), test.obj.Exported()) + } + if def.Id() != test.obj.Id() { + t.Fatalf("Id() = %v, want %v", def.Id(), test.obj.Id()) + } + // String and Type are expected to differ. + }) + } +} + func TestImplements(t *testing.T) { const src = ` package p diff --git a/src/go/types/named.go b/src/go/types/named.go index a0b94818f5..e4fd96ab64 100644 --- a/src/go/types/named.go +++ b/src/go/types/named.go @@ -193,7 +193,7 @@ func (t *Named) instantiateMethod(i int) *Func { rtyp = t } - sig.recv = NewParam(origSig.recv.pos, origSig.recv.pkg, origSig.recv.name, rtyp) + sig.recv = substVar(origSig.recv, rtyp) return NewFunc(origm.pos, origm.pkg, origm.name, sig) } diff --git a/src/go/types/subst.go b/src/go/types/subst.go index 4b4a0f4ad6..ef5593b71f 100644 --- a/src/go/types/subst.go +++ b/src/go/types/subst.go @@ -290,14 +290,18 @@ func (subst *subster) typOrNil(typ Type) Type { func (subst *subster) var_(v *Var) *Var { if v != nil { if typ := subst.typ(v.typ); typ != v.typ { - copy := *v - copy.typ = typ - return © + return substVar(v, typ) } } return v } +func substVar(v *Var, typ Type) *Var { + copy := *v + copy.typ = typ + return © +} + func (subst *subster) tuple(t *Tuple) *Tuple { if t != nil { if vars, copied := subst.varList(t.vars); copied { @@ -410,9 +414,8 @@ func replaceRecvType(in []*Func, old, new Type) (out []*Func, copied bool) { copied = true } newsig := *sig - sig = &newsig - sig.recv = NewVar(sig.recv.pos, sig.recv.pkg, "", new) - out[i] = NewFunc(method.pos, method.pkg, method.name, sig) + newsig.recv = substVar(sig.recv, new) + out[i] = NewFunc(method.pos, method.pkg, method.name, &newsig) } } return From ae9ce822ff4015fbbe7aa4303e6f3c160f2c53af Mon Sep 17 00:00:00 2001 From: Matt Layher Date: Tue, 29 Mar 2022 10:42:58 -0400 Subject: [PATCH 005/125] net/netip: return an error from ParsePrefix with IPv6 zone input net.ParseCIDR already rejects input in the form of 2001:db8::%a/32, but netip.ParsePrefix previously accepted the input and silently dropped the zone. Make the two consistent by always returning an error if an IPv6 zone is present in CIDR input for ParsePrefix. Fixes #51899. Change-Id: Iee7d8d4a5161e0b54a4ee1bd68b02c1a287ff399 Reviewed-on: https://go-review.googlesource.com/c/go/+/396299 Trust: Matt Layher Run-TryBot: Matt Layher TryBot-Result: Gopher Robot Reviewed-by: Damien Neil Trust: Damien Neil --- src/net/netip/netip.go | 7 +++++ src/net/netip/netip_pkg_test.go | 6 ++-- src/net/netip/netip_test.go | 49 ++++++++++----------------------- 3 files changed, 25 insertions(+), 37 deletions(-) diff --git a/src/net/netip/netip.go b/src/net/netip/netip.go index 1cf75fb5a1..893eeea7f0 100644 --- a/src/net/netip/netip.go +++ b/src/net/netip/netip.go @@ -1290,6 +1290,8 @@ func (p Prefix) IsSingleIP() bool { return p.bits != 0 && int(p.bits) == p.ip.Bi // ParsePrefix parses s as an IP address prefix. // The string can be in the form "192.168.1.0/24" or "2001:db8::/32", // the CIDR notation defined in RFC 4632 and RFC 4291. +// IPv6 zones are not permitted in prefixes, and an error will be returned if a +// zone is present. // // Note that masked address bits are not zeroed. Use Masked for that. func ParsePrefix(s string) (Prefix, error) { @@ -1301,6 +1303,11 @@ func ParsePrefix(s string) (Prefix, error) { if err != nil { return Prefix{}, errors.New("netip.ParsePrefix(" + strconv.Quote(s) + "): " + err.Error()) } + // IPv6 zones are not allowed: https://go.dev/issue/51899 + if ip.Is6() && ip.z != z6noz { + return Prefix{}, errors.New("netip.ParsePrefix(" + strconv.Quote(s) + "): IPv6 zones cannot be present in a prefix") + } + bitsStr := s[i+1:] bits, err := strconv.Atoi(bitsStr) if err != nil { diff --git a/src/net/netip/netip_pkg_test.go b/src/net/netip/netip_pkg_test.go index f5cd9ee86d..677f523e6d 100644 --- a/src/net/netip/netip_pkg_test.go +++ b/src/net/netip/netip_pkg_test.go @@ -160,9 +160,9 @@ func TestPrefixContains(t *testing.T) { {mustPrefix("::1/127"), mustIP("::2"), false}, {mustPrefix("::1/128"), mustIP("::1"), true}, {mustPrefix("::1/127"), mustIP("::2"), false}, - // zones support - {mustPrefix("::1%a/128"), mustIP("::1"), true}, // prefix zones are stripped... - {mustPrefix("::1%a/128"), mustIP("::1%a"), false}, // but ip zones are not + // Zones ignored: https://go.dev/issue/51899 + {Prefix{mustIP("1.2.3.4").WithZone("a"), 32}, mustIP("1.2.3.4"), true}, + {Prefix{mustIP("::1").WithZone("a"), 128}, mustIP("::1"), true}, // invalid IP {mustPrefix("::1/0"), Addr{}, false}, {mustPrefix("1.2.3.4/0"), Addr{}, false}, diff --git a/src/net/netip/netip_test.go b/src/net/netip/netip_test.go index a72390fd5b..c2811c4703 100644 --- a/src/net/netip/netip_test.go +++ b/src/net/netip/netip_test.go @@ -421,8 +421,8 @@ func TestPrefixMarshalTextString(t *testing.T) { {mustPrefix("1.2.3.4/24"), "1.2.3.4/24"}, {mustPrefix("fd7a:115c:a1e0:ab12:4843:cd96:626b:430b/118"), "fd7a:115c:a1e0:ab12:4843:cd96:626b:430b/118"}, {mustPrefix("::ffff:c000:0280/96"), "::ffff:192.0.2.128/96"}, - {mustPrefix("::ffff:c000:0280%eth0/37"), "::ffff:192.0.2.128/37"}, // Zone should be stripped {mustPrefix("::ffff:192.168.140.255/8"), "::ffff:192.168.140.255/8"}, + {PrefixFrom(mustIP("::ffff:c000:0280").WithZone("eth0"), 37), "::ffff:192.0.2.128/37"}, // Zone should be stripped } for i, tt := range tests { if got := tt.in.String(); got != tt.want { @@ -448,7 +448,7 @@ func TestPrefixMarshalUnmarshalBinary(t *testing.T) { {mustPrefix("1.2.3.4/24"), 4 + 1}, {mustPrefix("fd7a:115c:a1e0:ab12:4843:cd96:626b:430b/118"), 16 + 1}, {mustPrefix("::ffff:c000:0280/96"), 16 + 1}, - {mustPrefix("::ffff:c000:0280%eth0/37"), 16 + 1}, // Zone should be stripped + {PrefixFrom(mustIP("::ffff:c000:0280").WithZone("eth0"), 37), 16 + 1}, // Zone should be stripped } tests = append(tests, testCase{PrefixFrom(tests[0].prefix.Addr(), 33), tests[0].wantSize}, @@ -901,25 +901,25 @@ func TestPrefixMasking(t *testing.T) { { ip: mustIP(fmt.Sprintf("2001:db8::1%s", zone)), bits: 32, - p: mustPrefix(fmt.Sprintf("2001:db8::%s/32", zone)), + p: mustPrefix("2001:db8::/32"), ok: true, }, { ip: mustIP(fmt.Sprintf("fe80::dead:beef:dead:beef%s", zone)), bits: 96, - p: mustPrefix(fmt.Sprintf("fe80::dead:beef:0:0%s/96", zone)), + p: mustPrefix("fe80::dead:beef:0:0/96"), ok: true, }, { ip: mustIP(fmt.Sprintf("aaaa::%s", zone)), bits: 4, - p: mustPrefix(fmt.Sprintf("a000::%s/4", zone)), + p: mustPrefix("a000::/4"), ok: true, }, { ip: mustIP(fmt.Sprintf("::%s", zone)), bits: 63, - p: mustPrefix(fmt.Sprintf("::%s/63", zone)), + p: mustPrefix("::/63"), ok: true, }, } @@ -1047,26 +1047,6 @@ func TestPrefixMarshalUnmarshal(t *testing.T) { } } -func TestPrefixMarshalUnmarshalZone(t *testing.T) { - orig := `"fe80::1cc0:3e8c:119f:c2e1%ens18/128"` - unzoned := `"fe80::1cc0:3e8c:119f:c2e1/128"` - - var p Prefix - if err := json.Unmarshal([]byte(orig), &p); err != nil { - t.Fatalf("failed to unmarshal: %v", err) - } - - pb, err := json.Marshal(p) - if err != nil { - t.Fatalf("failed to marshal: %v", err) - } - - back := string(pb) - if back != unzoned { - t.Errorf("Marshal = %q; want %q", back, unzoned) - } -} - func TestPrefixUnmarshalTextNonZero(t *testing.T) { ip := mustPrefix("fe80::/64") if err := ip.UnmarshalText([]byte("xxx")); err == nil { @@ -1222,14 +1202,6 @@ func TestPrefix(t *testing.T) { contains: mustIPs("2001:db8::1"), notContains: mustIPs("fe80::1"), }, - { - prefix: "::%0/00/80", - ip: mustIP("::"), - bits: 80, - str: "::/80", - contains: mustIPs("::"), - notContains: mustIPs("ff::%0/00", "ff::%1/23", "::%0/00", "::%1/23"), - }, } for _, test := range tests { t.Run(test.prefix, func(t *testing.T) { @@ -1348,6 +1320,15 @@ func TestParsePrefixError(t *testing.T) { prefix: "2001::/129", errstr: "out of range", }, + // Zones are not allowed: https://go.dev/issue/51899 + { + prefix: "1.1.1.0%a/24", + errstr: "unexpected character", + }, + { + prefix: "2001:db8::%a/32", + errstr: "zones cannot be present", + }, } for _, test := range tests { t.Run(test.prefix, func(t *testing.T) { From a2baae6851a157d662dff7cc508659f66249698a Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 3 Mar 2022 18:23:35 -0800 Subject: [PATCH 006/125] all: use new "unix" build tag where appropriate For #20322 For #51572 Change-Id: Id0b4799d097d01128e98ba4cc0092298357bca45 Reviewed-on: https://go-review.googlesource.com/c/go/+/389935 Trust: Ian Lance Taylor Reviewed-by: Tobias Klauser --- src/archive/tar/stat_unix.go | 2 +- src/cmd/go/internal/base/signal_unix.go | 2 +- .../go/internal/lockedfile/internal/filelock/filelock_other.go | 2 +- src/cmd/go/internal/modload/stat_unix.go | 2 +- src/cmd/go/stop_other_test.go | 2 +- src/cmd/go/stop_unix_test.go | 2 +- src/crypto/rand/rand_unix.go | 2 +- src/crypto/tls/handshake_unix_test.go | 2 +- src/internal/poll/errno_unix.go | 2 +- src/internal/poll/export_posix_test.go | 2 +- src/internal/poll/fd_poll_runtime.go | 2 +- src/internal/poll/fd_posix.go | 2 +- src/internal/poll/fd_posix_test.go | 2 +- src/internal/poll/fd_unix.go | 2 +- src/internal/poll/hook_unix.go | 2 +- src/internal/poll/sockopt.go | 2 +- src/internal/poll/sockopt_unix.go | 2 +- src/internal/poll/sockoptip.go | 2 +- src/internal/syscall/unix/net.go | 2 +- src/internal/testenv/testenv_unix.go | 2 +- src/mime/type_unix.go | 2 +- src/mime/type_unix_test.go | 2 +- src/net/addrselect.go | 2 +- src/net/cgo_unix.go | 2 +- src/net/cgo_unix_test.go | 2 +- src/net/conf.go | 2 +- src/net/dial_unix_test.go | 2 +- src/net/dnsclient_unix.go | 2 +- src/net/dnsclient_unix_test.go | 2 +- src/net/dnsconfig_unix.go | 2 +- src/net/dnsconfig_unix_test.go | 2 +- src/net/error_posix.go | 2 +- src/net/error_unix.go | 2 +- src/net/fd_posix.go | 2 +- src/net/fd_unix.go | 2 +- src/net/file_unix.go | 2 +- src/net/hook_unix.go | 2 +- src/net/internal/socktest/switch_unix.go | 2 +- src/net/internal/socktest/sys_unix.go | 2 +- src/net/iprawsock_posix.go | 2 +- src/net/ipsock_posix.go | 2 +- src/net/lookup_unix.go | 2 +- src/net/main_unix_test.go | 2 +- src/net/nss.go | 2 +- src/net/port_unix.go | 2 +- src/net/rawconn_unix_test.go | 2 +- src/net/sock_posix.go | 2 +- src/net/sockaddr_posix.go | 2 +- src/net/sockopt_posix.go | 2 +- src/net/sockoptip_posix.go | 2 +- src/net/tcpsock_posix.go | 2 +- src/net/tcpsockopt_posix.go | 2 +- src/net/udpsock_posix.go | 2 +- src/net/unixsock_posix.go | 2 +- src/net/unixsock_readmsg_test.go | 2 +- src/os/env_unix_test.go | 2 +- src/os/error_posix.go | 2 +- src/os/error_unix_test.go | 2 +- src/os/exec/exec_posix_test.go | 2 +- src/os/exec/internal/fdtest/exists_unix.go | 2 +- src/os/exec/lp_unix.go | 2 +- src/os/exec/lp_unix_test.go | 2 +- src/os/exec_posix.go | 2 +- src/os/exec_unix.go | 2 +- src/os/exec_unix_test.go | 2 +- src/os/export_unix_test.go | 2 +- src/os/file_posix.go | 2 +- src/os/file_unix.go | 2 +- src/os/os_unix_test.go | 2 +- src/os/path_unix.go | 2 +- src/os/removeall_at.go | 2 +- src/os/removeall_noat.go | 2 +- src/os/signal/example_unix_test.go | 2 +- src/os/signal/signal_test.go | 2 +- src/os/signal/signal_unix.go | 2 +- src/os/stat_unix.go | 2 +- src/os/sys_unix.go | 2 +- src/os/user/cgo_lookup_unix.go | 2 +- src/os/user/lookup_unix.go | 2 +- src/os/user/lookup_unix_test.go | 2 +- src/path/filepath/path_unix.go | 2 +- src/runtime/cgo/setenv.go | 2 +- src/runtime/crash_unix_test.go | 2 +- src/runtime/env_posix.go | 2 +- src/runtime/export_mmap_test.go | 2 +- src/runtime/export_unix_test.go | 2 +- src/runtime/nbpipe_test.go | 2 +- src/runtime/netpoll.go | 2 +- src/runtime/runtime_mmap_test.go | 2 +- src/runtime/signal_unix.go | 2 +- src/syscall/dirent.go | 2 +- src/syscall/dirent_test.go | 2 +- src/syscall/env_unix.go | 2 +- src/syscall/exec_unix.go | 2 +- src/syscall/exec_unix_test.go | 2 +- src/syscall/sockcmsg_unix.go | 2 +- src/syscall/syscall_unix.go | 2 +- src/syscall/syscall_unix_test.go | 2 +- src/syscall/timestruct.go | 2 +- src/time/sys_unix.go | 2 +- src/time/zoneinfo_unix.go | 2 +- src/time/zoneinfo_unix_test.go | 2 +- 102 files changed, 102 insertions(+), 102 deletions(-) diff --git a/src/archive/tar/stat_unix.go b/src/archive/tar/stat_unix.go index 717a0b3abc..0f3428bc24 100644 --- a/src/archive/tar/stat_unix.go +++ b/src/archive/tar/stat_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || linux || darwin || dragonfly || freebsd || openbsd || netbsd || solaris +//go:build unix package tar diff --git a/src/cmd/go/internal/base/signal_unix.go b/src/cmd/go/internal/base/signal_unix.go index 657ff38584..f198df6abc 100644 --- a/src/cmd/go/internal/base/signal_unix.go +++ b/src/cmd/go/internal/base/signal_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || js || linux || netbsd || openbsd || solaris +//go:build unix || js package base diff --git a/src/cmd/go/internal/lockedfile/internal/filelock/filelock_other.go b/src/cmd/go/internal/lockedfile/internal/filelock/filelock_other.go index 491bec39af..c18dbdf850 100644 --- a/src/cmd/go/internal/lockedfile/internal/filelock/filelock_other.go +++ b/src/cmd/go/internal/lockedfile/internal/filelock/filelock_other.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !plan9 && !solaris && !windows +//go:build !unix && !plan9 && !windows package filelock diff --git a/src/cmd/go/internal/modload/stat_unix.go b/src/cmd/go/internal/modload/stat_unix.go index 8a3653ba80..a0d5f4d247 100644 --- a/src/cmd/go/internal/modload/stat_unix.go +++ b/src/cmd/go/internal/modload/stat_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package modload diff --git a/src/cmd/go/stop_other_test.go b/src/cmd/go/stop_other_test.go index 35c12858c1..cb4569b91d 100644 --- a/src/cmd/go/stop_other_test.go +++ b/src/cmd/go/stop_other_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !(aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris) +//go:build !(unix || (js && wasm)) package main_test diff --git a/src/cmd/go/stop_unix_test.go b/src/cmd/go/stop_unix_test.go index 5939f0d40d..baa1427465 100644 --- a/src/cmd/go/stop_unix_test.go +++ b/src/cmd/go/stop_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package main_test diff --git a/src/crypto/rand/rand_unix.go b/src/crypto/rand/rand_unix.go index b800ec8fb7..58c97649c4 100644 --- a/src/crypto/rand/rand_unix.go +++ b/src/crypto/rand/rand_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // Unix cryptographically secure pseudorandom number // generator. diff --git a/src/crypto/tls/handshake_unix_test.go b/src/crypto/tls/handshake_unix_test.go index b61e7c24ef..86a48f299b 100644 --- a/src/crypto/tls/handshake_unix_test.go +++ b/src/crypto/tls/handshake_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package tls diff --git a/src/internal/poll/errno_unix.go b/src/internal/poll/errno_unix.go index c177519732..8eed93a31c 100644 --- a/src/internal/poll/errno_unix.go +++ b/src/internal/poll/errno_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package poll diff --git a/src/internal/poll/export_posix_test.go b/src/internal/poll/export_posix_test.go index 3fcafac002..3415ab3839 100644 --- a/src/internal/poll/export_posix_test.go +++ b/src/internal/poll/export_posix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows // Export guts for testing on posix. // Since testing imports os and os imports internal/poll, diff --git a/src/internal/poll/fd_poll_runtime.go b/src/internal/poll/fd_poll_runtime.go index 4a4dddfd27..2e9cd5c9d7 100644 --- a/src/internal/poll/fd_poll_runtime.go +++ b/src/internal/poll/fd_poll_runtime.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || windows || solaris +//go:build unix || windows package poll diff --git a/src/internal/poll/fd_posix.go b/src/internal/poll/fd_posix.go index dc1e29c6b7..778fe1e5c1 100644 --- a/src/internal/poll/fd_posix.go +++ b/src/internal/poll/fd_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package poll diff --git a/src/internal/poll/fd_posix_test.go b/src/internal/poll/fd_posix_test.go index 0b7ef7a577..b97e46595a 100644 --- a/src/internal/poll/fd_posix_test.go +++ b/src/internal/poll/fd_posix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package poll_test diff --git a/src/internal/poll/fd_unix.go b/src/internal/poll/fd_unix.go index 85971a16cd..2786064d9f 100644 --- a/src/internal/poll/fd_unix.go +++ b/src/internal/poll/fd_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package poll diff --git a/src/internal/poll/hook_unix.go b/src/internal/poll/hook_unix.go index c9aa4b4ca2..1a5035675d 100644 --- a/src/internal/poll/hook_unix.go +++ b/src/internal/poll/hook_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package poll diff --git a/src/internal/poll/sockopt.go b/src/internal/poll/sockopt.go index 2d354700c5..a7c9d115b4 100644 --- a/src/internal/poll/sockopt.go +++ b/src/internal/poll/sockopt.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package poll diff --git a/src/internal/poll/sockopt_unix.go b/src/internal/poll/sockopt_unix.go index 54be1cc4b6..9cba44da9d 100644 --- a/src/internal/poll/sockopt_unix.go +++ b/src/internal/poll/sockopt_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package poll diff --git a/src/internal/poll/sockoptip.go b/src/internal/poll/sockoptip.go index 7fc9aeefb3..41955e1fda 100644 --- a/src/internal/poll/sockoptip.go +++ b/src/internal/poll/sockoptip.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package poll diff --git a/src/internal/syscall/unix/net.go b/src/internal/syscall/unix/net.go index 85632e1c03..5618d40ae0 100644 --- a/src/internal/syscall/unix/net.go +++ b/src/internal/syscall/unix/net.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package unix diff --git a/src/internal/testenv/testenv_unix.go b/src/internal/testenv/testenv_unix.go index 3dc5daf45e..a97e88da2f 100644 --- a/src/internal/testenv/testenv_unix.go +++ b/src/internal/testenv/testenv_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package testenv diff --git a/src/mime/type_unix.go b/src/mime/type_unix.go index 3abc1fa10e..52579c56b9 100644 --- a/src/mime/type_unix.go +++ b/src/mime/type_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package mime diff --git a/src/mime/type_unix_test.go b/src/mime/type_unix_test.go index 4d109aa71a..6bb408566c 100644 --- a/src/mime/type_unix_test.go +++ b/src/mime/type_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package mime diff --git a/src/net/addrselect.go b/src/net/addrselect.go index 29e4ed85ab..8accdb89e1 100644 --- a/src/net/addrselect.go +++ b/src/net/addrselect.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // Minimal RFC 6724 address selection. diff --git a/src/net/cgo_unix.go b/src/net/cgo_unix.go index 6fc2c1930e..18e1ba1ce9 100644 --- a/src/net/cgo_unix.go +++ b/src/net/cgo_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build cgo && !netgo && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris) +//go:build cgo && !netgo && unix package net diff --git a/src/net/cgo_unix_test.go b/src/net/cgo_unix_test.go index b4da25b84c..af9f9dc3f2 100644 --- a/src/net/cgo_unix_test.go +++ b/src/net/cgo_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build cgo && !netgo && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris) +//go:build cgo && !netgo && unix package net diff --git a/src/net/conf.go b/src/net/conf.go index 415caedacc..716a37ff80 100644 --- a/src/net/conf.go +++ b/src/net/conf.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/dial_unix_test.go b/src/net/dial_unix_test.go index 4170367c4b..d0df0b71ea 100644 --- a/src/net/dial_unix_test.go +++ b/src/net/dial_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/dnsclient_unix.go b/src/net/dnsclient_unix.go index b989d12c58..15dbc25830 100644 --- a/src/net/dnsclient_unix.go +++ b/src/net/dnsclient_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // DNS client: see RFC 1035. // Has to be linked into package net for Dial. diff --git a/src/net/dnsclient_unix_test.go b/src/net/dnsclient_unix_test.go index e5f01dba2a..415c53e1e7 100644 --- a/src/net/dnsclient_unix_test.go +++ b/src/net/dnsclient_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/dnsconfig_unix.go b/src/net/dnsconfig_unix.go index 5ad254cd7c..7552bc51e6 100644 --- a/src/net/dnsconfig_unix.go +++ b/src/net/dnsconfig_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // Read system DNS config from /etc/resolv.conf diff --git a/src/net/dnsconfig_unix_test.go b/src/net/dnsconfig_unix_test.go index 4d35221497..513f624b00 100644 --- a/src/net/dnsconfig_unix_test.go +++ b/src/net/dnsconfig_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/error_posix.go b/src/net/error_posix.go index 10e3caa67b..8fc7d0bb73 100644 --- a/src/net/error_posix.go +++ b/src/net/error_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package net diff --git a/src/net/error_unix.go b/src/net/error_unix.go index 0e64b40ea1..1f9b6eb78c 100644 --- a/src/net/error_unix.go +++ b/src/net/error_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || js || linux || netbsd || openbsd || solaris +//go:build unix || js package net diff --git a/src/net/fd_posix.go b/src/net/fd_posix.go index 1845c173bb..ffb9bcf8b9 100644 --- a/src/net/fd_posix.go +++ b/src/net/fd_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package net diff --git a/src/net/fd_unix.go b/src/net/fd_unix.go index aaa7a1c185..a400c6075e 100644 --- a/src/net/fd_unix.go +++ b/src/net/fd_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/file_unix.go b/src/net/file_unix.go index 68d7eb9ca0..0df67db501 100644 --- a/src/net/file_unix.go +++ b/src/net/file_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/hook_unix.go b/src/net/hook_unix.go index 7c36b0d6e3..fa82c7e52b 100644 --- a/src/net/hook_unix.go +++ b/src/net/hook_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package net diff --git a/src/net/internal/socktest/switch_unix.go b/src/net/internal/socktest/switch_unix.go index 77d68f6112..f2e95d68c1 100644 --- a/src/net/internal/socktest/switch_unix.go +++ b/src/net/internal/socktest/switch_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package socktest diff --git a/src/net/internal/socktest/sys_unix.go b/src/net/internal/socktest/sys_unix.go index 0424164ed3..e1040d3087 100644 --- a/src/net/internal/socktest/sys_unix.go +++ b/src/net/internal/socktest/sys_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package socktest diff --git a/src/net/iprawsock_posix.go b/src/net/iprawsock_posix.go index 74f977e1ef..64112b08dd 100644 --- a/src/net/iprawsock_posix.go +++ b/src/net/iprawsock_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package net diff --git a/src/net/ipsock_posix.go b/src/net/ipsock_posix.go index e433e8a91c..2c72447848 100644 --- a/src/net/ipsock_posix.go +++ b/src/net/ipsock_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package net diff --git a/src/net/lookup_unix.go b/src/net/lookup_unix.go index 255a19dfdb..ad4164d865 100644 --- a/src/net/lookup_unix.go +++ b/src/net/lookup_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/main_unix_test.go b/src/net/main_unix_test.go index 2ed0615ad8..e7a5b4fe9a 100644 --- a/src/net/main_unix_test.go +++ b/src/net/main_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/nss.go b/src/net/nss.go index ee5568883f..5df71dc268 100644 --- a/src/net/nss.go +++ b/src/net/nss.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/port_unix.go b/src/net/port_unix.go index 102722b2ca..b05b588f17 100644 --- a/src/net/port_unix.go +++ b/src/net/port_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) // Read system port mappings from /etc/services diff --git a/src/net/rawconn_unix_test.go b/src/net/rawconn_unix_test.go index e6e1ad771a..f11119ed9e 100644 --- a/src/net/rawconn_unix_test.go +++ b/src/net/rawconn_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/net/sock_posix.go b/src/net/sock_posix.go index 98a48229c7..4431c3a6b3 100644 --- a/src/net/sock_posix.go +++ b/src/net/sock_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package net diff --git a/src/net/sockaddr_posix.go b/src/net/sockaddr_posix.go index c8e91936ad..76c3233b29 100644 --- a/src/net/sockaddr_posix.go +++ b/src/net/sockaddr_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package net diff --git a/src/net/sockopt_posix.go b/src/net/sockopt_posix.go index 645080f988..32e8fcd505 100644 --- a/src/net/sockopt_posix.go +++ b/src/net/sockopt_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package net diff --git a/src/net/sockoptip_posix.go b/src/net/sockoptip_posix.go index 22031df22c..572ea455c0 100644 --- a/src/net/sockoptip_posix.go +++ b/src/net/sockoptip_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package net diff --git a/src/net/tcpsock_posix.go b/src/net/tcpsock_posix.go index ed6b18b551..bc3d324e6b 100644 --- a/src/net/tcpsock_posix.go +++ b/src/net/tcpsock_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package net diff --git a/src/net/tcpsockopt_posix.go b/src/net/tcpsockopt_posix.go index 73754b1a0f..d708f04875 100644 --- a/src/net/tcpsockopt_posix.go +++ b/src/net/tcpsockopt_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows +//go:build unix || windows package net diff --git a/src/net/udpsock_posix.go b/src/net/udpsock_posix.go index 6544397673..5b021d24ae 100644 --- a/src/net/udpsock_posix.go +++ b/src/net/udpsock_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package net diff --git a/src/net/unixsock_posix.go b/src/net/unixsock_posix.go index 1b69df53bf..b244dbdbbd 100644 --- a/src/net/unixsock_posix.go +++ b/src/net/unixsock_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package net diff --git a/src/net/unixsock_readmsg_test.go b/src/net/unixsock_readmsg_test.go index c3bfbf9af2..414f626644 100644 --- a/src/net/unixsock_readmsg_test.go +++ b/src/net/unixsock_readmsg_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package net diff --git a/src/os/env_unix_test.go b/src/os/env_unix_test.go index 75225d8547..4609fc3b94 100644 --- a/src/os/env_unix_test.go +++ b/src/os/env_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package os_test diff --git a/src/os/error_posix.go b/src/os/error_posix.go index 234f4eb692..5ca2e60e5b 100644 --- a/src/os/error_posix.go +++ b/src/os/error_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package os diff --git a/src/os/error_unix_test.go b/src/os/error_unix_test.go index 81bccebedb..1c694fe5f1 100644 --- a/src/os/error_unix_test.go +++ b/src/os/error_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package os_test diff --git a/src/os/exec/exec_posix_test.go b/src/os/exec/exec_posix_test.go index fd7fb42d36..ce83a9e4b3 100644 --- a/src/os/exec/exec_posix_test.go +++ b/src/os/exec/exec_posix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package exec_test diff --git a/src/os/exec/internal/fdtest/exists_unix.go b/src/os/exec/internal/fdtest/exists_unix.go index 49f264cebd..265cb69822 100644 --- a/src/os/exec/internal/fdtest/exists_unix.go +++ b/src/os/exec/internal/fdtest/exists_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // Package fdtest provides test helpers for working with file descriptors across exec. package fdtest diff --git a/src/os/exec/lp_unix.go b/src/os/exec/lp_unix.go index 38b9fc7c27..5db6c5e109 100644 --- a/src/os/exec/lp_unix.go +++ b/src/os/exec/lp_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package exec diff --git a/src/os/exec/lp_unix_test.go b/src/os/exec/lp_unix_test.go index 52e401e580..ebeb5bb3ec 100644 --- a/src/os/exec/lp_unix_test.go +++ b/src/os/exec/lp_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package exec diff --git a/src/os/exec_posix.go b/src/os/exec_posix.go index d619984693..e1e7d53a27 100644 --- a/src/os/exec_posix.go +++ b/src/os/exec_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package os diff --git a/src/os/exec_unix.go b/src/os/exec_unix.go index 250c5c6402..90a4a61222 100644 --- a/src/os/exec_unix.go +++ b/src/os/exec_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package os diff --git a/src/os/exec_unix_test.go b/src/os/exec_unix_test.go index fa332bf1ed..332ffe9041 100644 --- a/src/os/exec_unix_test.go +++ b/src/os/exec_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package os_test diff --git a/src/os/export_unix_test.go b/src/os/export_unix_test.go index d4eb7a4fb1..49c8dae036 100644 --- a/src/os/export_unix_test.go +++ b/src/os/export_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package os diff --git a/src/os/file_posix.go b/src/os/file_posix.go index f34571d68d..c6d18ffeb6 100644 --- a/src/os/file_posix.go +++ b/src/os/file_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package os diff --git a/src/os/file_unix.go b/src/os/file_unix.go index a38db18954..666143b0de 100644 --- a/src/os/file_unix.go +++ b/src/os/file_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package os diff --git a/src/os/os_unix_test.go b/src/os/os_unix_test.go index 3ec3dee24b..c3c703f860 100644 --- a/src/os/os_unix_test.go +++ b/src/os/os_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package os_test diff --git a/src/os/path_unix.go b/src/os/path_unix.go index d1ffe2c187..3c6310a4df 100644 --- a/src/os/path_unix.go +++ b/src/os/path_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package os diff --git a/src/os/removeall_at.go b/src/os/removeall_at.go index da804c436f..8b46152a9e 100644 --- a/src/os/removeall_at.go +++ b/src/os/removeall_at.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package os diff --git a/src/os/removeall_noat.go b/src/os/removeall_noat.go index a0332e8c35..2b8a7727f4 100644 --- a/src/os/removeall_noat.go +++ b/src/os/removeall_noat.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris +//go:build !unix package os diff --git a/src/os/signal/example_unix_test.go b/src/os/signal/example_unix_test.go index b279ee9491..b7047ac45c 100644 --- a/src/os/signal/example_unix_test.go +++ b/src/os/signal/example_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package signal_test diff --git a/src/os/signal/signal_test.go b/src/os/signal/signal_test.go index e6fb24c6a8..3182e83b4e 100644 --- a/src/os/signal/signal_test.go +++ b/src/os/signal/signal_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package signal diff --git a/src/os/signal/signal_unix.go b/src/os/signal/signal_unix.go index e2e5c4ae97..772175a922 100644 --- a/src/os/signal/signal_unix.go +++ b/src/os/signal/signal_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package signal diff --git a/src/os/stat_unix.go b/src/os/stat_unix.go index eb15db5453..437afc02b4 100644 --- a/src/os/stat_unix.go +++ b/src/os/stat_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package os diff --git a/src/os/sys_unix.go b/src/os/sys_unix.go index 5ff39780e5..79005c2cbd 100644 --- a/src/os/sys_unix.go +++ b/src/os/sys_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package os diff --git a/src/os/user/cgo_lookup_unix.go b/src/os/user/cgo_lookup_unix.go index 523269086e..4f8577bbc9 100644 --- a/src/os/user/cgo_lookup_unix.go +++ b/src/os/user/cgo_lookup_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build (aix || darwin || dragonfly || freebsd || (!android && linux) || netbsd || openbsd || solaris) && cgo && !osusergo +//go:build unix && !android && cgo && !osusergo package user diff --git a/src/os/user/lookup_unix.go b/src/os/user/lookup_unix.go index 058dab1fb5..ed06e73fbc 100644 --- a/src/os/user/lookup_unix.go +++ b/src/os/user/lookup_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build (aix || darwin || dragonfly || freebsd || (js && wasm) || (!android && linux) || netbsd || openbsd || solaris) && (!cgo || osusergo) +//go:build ((unix && !android) || (js && wasm)) && (!cgo || osusergo) package user diff --git a/src/os/user/lookup_unix_test.go b/src/os/user/lookup_unix_test.go index 77917677fc..399a03fc3c 100644 --- a/src/os/user/lookup_unix_test.go +++ b/src/os/user/lookup_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build (aix || darwin || dragonfly || freebsd || (!android && linux) || netbsd || openbsd || solaris) && !cgo +//go:build unix && !android && !cgo package user diff --git a/src/path/filepath/path_unix.go b/src/path/filepath/path_unix.go index dcf1d187e7..93fdfdd8a0 100644 --- a/src/path/filepath/path_unix.go +++ b/src/path/filepath/path_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package filepath diff --git a/src/runtime/cgo/setenv.go b/src/runtime/cgo/setenv.go index 0f4780a945..2247cb2b59 100644 --- a/src/runtime/cgo/setenv.go +++ b/src/runtime/cgo/setenv.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package cgo diff --git a/src/runtime/crash_unix_test.go b/src/runtime/crash_unix_test.go index a218205af4..29d9c476f9 100644 --- a/src/runtime/crash_unix_test.go +++ b/src/runtime/crash_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package runtime_test diff --git a/src/runtime/env_posix.go b/src/runtime/env_posix.go index 44086c1d63..7d01ab4dd7 100644 --- a/src/runtime/env_posix.go +++ b/src/runtime/env_posix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows || plan9 +//go:build unix || (js && wasm) || windows || plan9 package runtime diff --git a/src/runtime/export_mmap_test.go b/src/runtime/export_mmap_test.go index f9c3229316..f73fcbde9b 100644 --- a/src/runtime/export_mmap_test.go +++ b/src/runtime/export_mmap_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // Export guts for testing. diff --git a/src/runtime/export_unix_test.go b/src/runtime/export_unix_test.go index 4a587cb780..a548cf7b7a 100644 --- a/src/runtime/export_unix_test.go +++ b/src/runtime/export_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package runtime diff --git a/src/runtime/nbpipe_test.go b/src/runtime/nbpipe_test.go index b6869e7974..0b0f64d076 100644 --- a/src/runtime/nbpipe_test.go +++ b/src/runtime/nbpipe_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package runtime_test diff --git a/src/runtime/netpoll.go b/src/runtime/netpoll.go index bb3dd35317..c6acc2328a 100644 --- a/src/runtime/netpoll.go +++ b/src/runtime/netpoll.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || windows +//go:build unix || (js && wasm) || windows package runtime diff --git a/src/runtime/runtime_mmap_test.go b/src/runtime/runtime_mmap_test.go index 9323c09355..456f913954 100644 --- a/src/runtime/runtime_mmap_test.go +++ b/src/runtime/runtime_mmap_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package runtime_test diff --git a/src/runtime/signal_unix.go b/src/runtime/signal_unix.go index 2dd4cc51a3..0e11c57683 100644 --- a/src/runtime/signal_unix.go +++ b/src/runtime/signal_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package runtime diff --git a/src/syscall/dirent.go b/src/syscall/dirent.go index 237ea79ad6..b10608a662 100644 --- a/src/syscall/dirent.go +++ b/src/syscall/dirent.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package syscall diff --git a/src/syscall/dirent_test.go b/src/syscall/dirent_test.go index a2d1b61342..68e766e6b0 100644 --- a/src/syscall/dirent_test.go +++ b/src/syscall/dirent_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package syscall_test diff --git a/src/syscall/env_unix.go b/src/syscall/env_unix.go index 521967c79f..67e6c5fbe2 100644 --- a/src/syscall/env_unix.go +++ b/src/syscall/env_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris || plan9 +//go:build unix || (js && wasm) || plan9 // Unix environment variables. diff --git a/src/syscall/exec_unix.go b/src/syscall/exec_unix.go index 0e41959ffe..286be454d8 100644 --- a/src/syscall/exec_unix.go +++ b/src/syscall/exec_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // Fork, exec, wait, etc. diff --git a/src/syscall/exec_unix_test.go b/src/syscall/exec_unix_test.go index b7ae77552b..4253cda5cb 100644 --- a/src/syscall/exec_unix_test.go +++ b/src/syscall/exec_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package syscall_test diff --git a/src/syscall/sockcmsg_unix.go b/src/syscall/sockcmsg_unix.go index a3dcf818da..6ade73e87e 100644 --- a/src/syscall/sockcmsg_unix.go +++ b/src/syscall/sockcmsg_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix // Socket control messages diff --git a/src/syscall/syscall_unix.go b/src/syscall/syscall_unix.go index 61ae09de4e..56d21b4ec1 100644 --- a/src/syscall/syscall_unix.go +++ b/src/syscall/syscall_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package syscall diff --git a/src/syscall/syscall_unix_test.go b/src/syscall/syscall_unix_test.go index 317c0c1f34..56e771e086 100644 --- a/src/syscall/syscall_unix_test.go +++ b/src/syscall/syscall_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +//go:build unix package syscall_test diff --git a/src/syscall/timestruct.go b/src/syscall/timestruct.go index 7cf4be45b1..8a03171ee5 100644 --- a/src/syscall/timestruct.go +++ b/src/syscall/timestruct.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package syscall diff --git a/src/time/sys_unix.go b/src/time/sys_unix.go index a949a6af22..0f06aa6ccd 100644 --- a/src/time/sys_unix.go +++ b/src/time/sys_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || darwin || dragonfly || freebsd || (js && wasm) || linux || netbsd || openbsd || solaris +//go:build unix || (js && wasm) package time diff --git a/src/time/zoneinfo_unix.go b/src/time/zoneinfo_unix.go index 6414be3879..67b8beb47b 100644 --- a/src/time/zoneinfo_unix.go +++ b/src/time/zoneinfo_unix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || (darwin && !ios) || dragonfly || freebsd || (linux && !android) || netbsd || openbsd || solaris +//go:build unix && !ios && !android // Parse "zoneinfo" time zone file. // This is a fairly standard file format used on OS X, Linux, BSD, Sun, and others. diff --git a/src/time/zoneinfo_unix_test.go b/src/time/zoneinfo_unix_test.go index de95295cd3..92680c4f8f 100644 --- a/src/time/zoneinfo_unix_test.go +++ b/src/time/zoneinfo_unix_test.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build aix || (darwin && !ios) || dragonfly || freebsd || (linux && !android) || netbsd || openbsd || solaris +//go:build unix && !ios && !android package time_test From 9038c244983e66294781f83e30239623a08672f5 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 28 Mar 2022 15:30:37 -0700 Subject: [PATCH 007/125] go/types, types2: better index-out-of-bounds error message (cleanup) Use the 1.17 compiler error message, sans "array" prefix. Change-Id: I0e70781c5ff02dca30a2004ab4d0ea82b0849eae Reviewed-on: https://go-review.googlesource.com/c/go/+/396296 Trust: Robert Griesemer Reviewed-by: Robert Findley --- src/cmd/compile/internal/types2/index.go | 6 +----- src/go/types/index.go | 2 +- test/fixedbugs/issue13365.go | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/cmd/compile/internal/types2/index.go b/src/cmd/compile/internal/types2/index.go index 61009c121e..37db50333c 100644 --- a/src/cmd/compile/internal/types2/index.go +++ b/src/cmd/compile/internal/types2/index.go @@ -368,11 +368,7 @@ func (check *Checker) index(index syntax.Expr, max int64) (typ Type, val int64) v, ok := constant.Int64Val(x.val) assert(ok) if max >= 0 && v >= max { - if check.conf.CompilerErrorMessages { - check.errorf(&x, invalidArg+"array index %s out of bounds [0:%d]", x.val.String(), max) - } else { - check.errorf(&x, invalidArg+"index %s is out of bounds", &x) - } + check.errorf(&x, invalidArg+"index %s out of bounds [0:%d]", x.val.String(), max) return } diff --git a/src/go/types/index.go b/src/go/types/index.go index 33075edaf1..670c95d621 100644 --- a/src/go/types/index.go +++ b/src/go/types/index.go @@ -365,7 +365,7 @@ func (check *Checker) index(index ast.Expr, max int64) (typ Type, val int64) { v, ok := constant.Int64Val(x.val) assert(ok) if max >= 0 && v >= max { - check.invalidArg(&x, _InvalidIndex, "index %s is out of bounds", &x) + check.invalidArg(&x, _InvalidIndex, "index %s out of bounds [0:%d]", x.val.String(), max) return } diff --git a/test/fixedbugs/issue13365.go b/test/fixedbugs/issue13365.go index b22fa0fb4e..02c6e03698 100644 --- a/test/fixedbugs/issue13365.go +++ b/test/fixedbugs/issue13365.go @@ -16,7 +16,7 @@ func main() { _ = [...]int{-1: 0} // ERROR "index must be non\-negative integer constant|index expression is negative|must not be negative" _ = []int{100: 0} - _ = [10]int{100: 0} // ERROR "array index 100 out of bounds|out of range" + _ = [10]int{100: 0} // ERROR "index 100 out of bounds|out of range" _ = [...]int{100: 0} _ = []int{t} // ERROR "cannot use .* as (type )?int( in slice literal)?|incompatible type" From f71daa6fe6eecab08ad47f9dbd584bc11691116a Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 28 Mar 2022 15:42:30 -0700 Subject: [PATCH 008/125] go/types, types2: better error message for blank interface method name (cleanup) Use the 1.17 compiler error message. Change-Id: Ic62de5bfc9681674069934afc590f5840729f8e2 Reviewed-on: https://go-review.googlesource.com/c/go/+/396297 Trust: Robert Griesemer Reviewed-by: Robert Findley --- src/cmd/compile/internal/types2/interface.go | 6 +----- src/cmd/compile/internal/types2/testdata/check/decls0.go | 4 ++-- src/go/types/interface.go | 2 +- src/go/types/testdata/check/decls0.go | 4 ++-- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/cmd/compile/internal/types2/interface.go b/src/cmd/compile/internal/types2/interface.go index b8bf88dc62..431b91f270 100644 --- a/src/cmd/compile/internal/types2/interface.go +++ b/src/cmd/compile/internal/types2/interface.go @@ -132,11 +132,7 @@ func (check *Checker) interfaceType(ityp *Interface, iface *syntax.InterfaceType // We have a method with name f.Name. name := f.Name.Value if name == "_" { - if check.conf.CompilerErrorMessages { - check.error(f.Name, "methods must have a unique non-blank name") - } else { - check.error(f.Name, "invalid method name _") - } + check.error(f.Name, "methods must have a unique non-blank name") continue // ignore } diff --git a/src/cmd/compile/internal/types2/testdata/check/decls0.go b/src/cmd/compile/internal/types2/testdata/check/decls0.go index aa98480b99..927c2d353d 100644 --- a/src/cmd/compile/internal/types2/testdata/check/decls0.go +++ b/src/cmd/compile/internal/types2/testdata/check/decls0.go @@ -194,8 +194,8 @@ func (S0) m4() (x *S0 /* ERROR illegal cycle in method declaration */ .m4) { ret // interfaces may not have any blank methods type BlankI interface { - _ /* ERROR "invalid method name" */ () - _ /* ERROR "invalid method name" */ (float32) int + _ /* ERROR "methods must have a unique non-blank name" */ () + _ /* ERROR "methods must have a unique non-blank name" */ (float32) int m() } diff --git a/src/go/types/interface.go b/src/go/types/interface.go index 361ef7eddf..52ae123bb7 100644 --- a/src/go/types/interface.go +++ b/src/go/types/interface.go @@ -173,7 +173,7 @@ func (check *Checker) interfaceType(ityp *Interface, iface *ast.InterfaceType, d // We have a method with name f.Names[0]. name := f.Names[0] if name.Name == "_" { - check.errorf(name, _BlankIfaceMethod, "invalid method name _") + check.errorf(name, _BlankIfaceMethod, "methods must have a unique non-blank name") continue // ignore } diff --git a/src/go/types/testdata/check/decls0.go b/src/go/types/testdata/check/decls0.go index 740c9b4fdf..d8fcef0824 100644 --- a/src/go/types/testdata/check/decls0.go +++ b/src/go/types/testdata/check/decls0.go @@ -196,8 +196,8 @@ func (S0) m4 () (x *S0 /* ERROR illegal cycle in method declaration */ .m4) { re // interfaces may not have any blank methods type BlankI interface { - _ /* ERROR "invalid method name" */ () - _ /* ERROR "invalid method name" */ (float32) int + _ /* ERROR "methods must have a unique non-blank name" */ () + _ /* ERROR "methods must have a unique non-blank name" */ (float32) int m() } From a4a0f9b1481e9be4361eb9c4998eca08e2eedb0a Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Mon, 7 Jun 2021 14:11:20 -0500 Subject: [PATCH 009/125] cmd/compile: make XER allocatable register on PPC64 This is the first step towards decomposing aggregate operations which create or consume the CA bit of the XER. This helps optimize the canned sequence of Add64Carry (and Sub64Borrow if it were implemented similarly) by minimizing extraneous operations related to loading the CA bit, reloading CA in chained operations, or extracting it when unused. Likewise, mark the operations which clobber CA. Change-Id: I33e6dd2654a8cc39fcdbb9690a495f03558cdc97 Reviewed-on: https://go-review.googlesource.com/c/go/+/346869 Trust: Paul Murphy Reviewed-by: Cherry Mui Run-TryBot: Cherry Mui TryBot-Result: Gopher Robot --- src/cmd/compile/internal/ssa/config.go | 1 + src/cmd/compile/internal/ssa/gen/PPC64Ops.go | 57 ++++++++++---------- src/cmd/compile/internal/ssa/opGen.go | 17 +++--- 3 files changed, 42 insertions(+), 33 deletions(-) diff --git a/src/cmd/compile/internal/ssa/config.go b/src/cmd/compile/internal/ssa/config.go index fa5b02b325..b9c98bdba9 100644 --- a/src/cmd/compile/internal/ssa/config.go +++ b/src/cmd/compile/internal/ssa/config.go @@ -239,6 +239,7 @@ func NewConfig(arch string, types Types, ctxt *obj.Link, optimize, softfloat boo c.registers = registersPPC64[:] c.gpRegMask = gpRegMaskPPC64 c.fpRegMask = fpRegMaskPPC64 + c.specialRegMask = specialRegMaskPPC64 c.intParamRegs = paramIntRegPPC64 c.floatParamRegs = paramFloatRegPPC64 c.FPReg = framepointerRegPPC64 diff --git a/src/cmd/compile/internal/ssa/gen/PPC64Ops.go b/src/cmd/compile/internal/ssa/gen/PPC64Ops.go index ff78be263e..c079c1cedb 100644 --- a/src/cmd/compile/internal/ssa/gen/PPC64Ops.go +++ b/src/cmd/compile/internal/ssa/gen/PPC64Ops.go @@ -98,7 +98,6 @@ var regNamesPPC64 = []string{ // "CR7", // "CR", - // "XER", // "LR", // "CTR", } @@ -125,11 +124,12 @@ func init() { } var ( - gp = buildReg("R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29") - fp = buildReg("F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30") - sp = buildReg("SP") - sb = buildReg("SB") - gr = buildReg("g") + gp = buildReg("R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29") + fp = buildReg("F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30") + sp = buildReg("SP") + sb = buildReg("SB") + gr = buildReg("g") + xer = buildReg("XER") // cr = buildReg("CR") // ctr = buildReg("CTR") // lr = buildReg("LR") @@ -139,8 +139,10 @@ func init() { // tls = buildReg("R13") gp01 = regInfo{inputs: nil, outputs: []regMask{gp}} gp11 = regInfo{inputs: []regMask{gp | sp | sb}, outputs: []regMask{gp}} + gp11cxer = regInfo{inputs: []regMask{gp | sp | sb}, outputs: []regMask{gp}, clobbers: xer} gp21 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp}} gp21a0 = regInfo{inputs: []regMask{gp, gp | sp | sb}, outputs: []regMask{gp}} + gp21cxer = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp}, clobbers: xer} gp31 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp}} gp22 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp, gp}} gp32 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp, gp}} @@ -168,21 +170,21 @@ func init() { fploadidx = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{fp}} fpstore = regInfo{inputs: []regMask{gp | sp | sb, fp}} fpstoreidx = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb, fp}} - callerSave = regMask(gp | fp | gr) + callerSave = regMask(gp | fp | gr | xer) r3 = buildReg("R3") r4 = buildReg("R4") r5 = buildReg("R5") r6 = buildReg("R6") ) ops := []opData{ - {name: "ADD", argLength: 2, reg: gp21, asm: "ADD", commutative: true}, // arg0 + arg1 - {name: "ADDconst", argLength: 1, reg: gp11, asm: "ADD", aux: "Int64"}, // arg0 + auxInt - {name: "FADD", argLength: 2, reg: fp21, asm: "FADD", commutative: true}, // arg0+arg1 - {name: "FADDS", argLength: 2, reg: fp21, asm: "FADDS", commutative: true}, // arg0+arg1 - {name: "SUB", argLength: 2, reg: gp21, asm: "SUB"}, // arg0-arg1 - {name: "SUBFCconst", argLength: 1, reg: gp11, asm: "SUBC", aux: "Int64"}, // auxInt - arg0 (with carry) - {name: "FSUB", argLength: 2, reg: fp21, asm: "FSUB"}, // arg0-arg1 - {name: "FSUBS", argLength: 2, reg: fp21, asm: "FSUBS"}, // arg0-arg1 + {name: "ADD", argLength: 2, reg: gp21, asm: "ADD", commutative: true}, // arg0 + arg1 + {name: "ADDconst", argLength: 1, reg: gp11, asm: "ADD", aux: "Int64"}, // arg0 + auxInt + {name: "FADD", argLength: 2, reg: fp21, asm: "FADD", commutative: true}, // arg0+arg1 + {name: "FADDS", argLength: 2, reg: fp21, asm: "FADDS", commutative: true}, // arg0+arg1 + {name: "SUB", argLength: 2, reg: gp21, asm: "SUB"}, // arg0-arg1 + {name: "SUBFCconst", argLength: 1, reg: gp11cxer, asm: "SUBC", aux: "Int64"}, // auxInt - arg0 (carry is ignored) + {name: "FSUB", argLength: 2, reg: fp21, asm: "FSUB"}, // arg0-arg1 + {name: "FSUBS", argLength: 2, reg: fp21, asm: "FSUBS"}, // arg0-arg1 {name: "MULLD", argLength: 2, reg: gp21, asm: "MULLD", typ: "Int64", commutative: true}, // arg0*arg1 (signed 64-bit) {name: "MULLW", argLength: 2, reg: gp21, asm: "MULLW", typ: "Int32", commutative: true}, // arg0*arg1 (signed 32-bit) @@ -204,12 +206,12 @@ func init() { {name: "FMSUB", argLength: 3, reg: fp31, asm: "FMSUB"}, // arg0*arg1 - arg2 {name: "FMSUBS", argLength: 3, reg: fp31, asm: "FMSUBS"}, // arg0*arg1 - arg2 - {name: "SRAD", argLength: 2, reg: gp21, asm: "SRAD"}, // signed arg0 >> (arg1&127), 64 bit width (note: 127, not 63!) - {name: "SRAW", argLength: 2, reg: gp21, asm: "SRAW"}, // signed arg0 >> (arg1&63), 32 bit width - {name: "SRD", argLength: 2, reg: gp21, asm: "SRD"}, // unsigned arg0 >> (arg1&127), 64 bit width - {name: "SRW", argLength: 2, reg: gp21, asm: "SRW"}, // unsigned arg0 >> (arg1&63), 32 bit width - {name: "SLD", argLength: 2, reg: gp21, asm: "SLD"}, // arg0 << (arg1&127), 64 bit width - {name: "SLW", argLength: 2, reg: gp21, asm: "SLW"}, // arg0 << (arg1&63), 32 bit width + {name: "SRAD", argLength: 2, reg: gp21cxer, asm: "SRAD"}, // signed arg0 >> (arg1&127), 64 bit width (note: 127, not 63!) + {name: "SRAW", argLength: 2, reg: gp21cxer, asm: "SRAW"}, // signed arg0 >> (arg1&63), 32 bit width + {name: "SRD", argLength: 2, reg: gp21, asm: "SRD"}, // unsigned arg0 >> (arg1&127), 64 bit width + {name: "SRW", argLength: 2, reg: gp21, asm: "SRW"}, // unsigned arg0 >> (arg1&63), 32 bit width + {name: "SLD", argLength: 2, reg: gp21, asm: "SLD"}, // arg0 << (arg1&127), 64 bit width + {name: "SLW", argLength: 2, reg: gp21, asm: "SLW"}, // arg0 << (arg1&63), 32 bit width {name: "ROTL", argLength: 2, reg: gp21, asm: "ROTL"}, // arg0 rotate left by arg1 mod 64 {name: "ROTLW", argLength: 2, reg: gp21, asm: "ROTLW"}, // uint32(arg0) rotate left by arg1 mod 32 @@ -221,12 +223,12 @@ func init() { {name: "LoweredAdd64Carry", argLength: 3, reg: gp32, resultNotInArgs: true}, // arg0 + arg1 + carry, returns (sum, carry) - {name: "SRADconst", argLength: 1, reg: gp11, asm: "SRAD", aux: "Int64"}, // signed arg0 >> auxInt, 0 <= auxInt < 64, 64 bit width - {name: "SRAWconst", argLength: 1, reg: gp11, asm: "SRAW", aux: "Int64"}, // signed arg0 >> auxInt, 0 <= auxInt < 32, 32 bit width - {name: "SRDconst", argLength: 1, reg: gp11, asm: "SRD", aux: "Int64"}, // unsigned arg0 >> auxInt, 0 <= auxInt < 64, 64 bit width - {name: "SRWconst", argLength: 1, reg: gp11, asm: "SRW", aux: "Int64"}, // unsigned arg0 >> auxInt, 0 <= auxInt < 32, 32 bit width - {name: "SLDconst", argLength: 1, reg: gp11, asm: "SLD", aux: "Int64"}, // arg0 << auxInt, 0 <= auxInt < 64, 64 bit width - {name: "SLWconst", argLength: 1, reg: gp11, asm: "SLW", aux: "Int64"}, // arg0 << auxInt, 0 <= auxInt < 32, 32 bit width + {name: "SRADconst", argLength: 1, reg: gp11cxer, asm: "SRAD", aux: "Int64"}, // signed arg0 >> auxInt, 0 <= auxInt < 64, 64 bit width + {name: "SRAWconst", argLength: 1, reg: gp11cxer, asm: "SRAW", aux: "Int64"}, // signed arg0 >> auxInt, 0 <= auxInt < 32, 32 bit width + {name: "SRDconst", argLength: 1, reg: gp11, asm: "SRD", aux: "Int64"}, // unsigned arg0 >> auxInt, 0 <= auxInt < 64, 64 bit width + {name: "SRWconst", argLength: 1, reg: gp11, asm: "SRW", aux: "Int64"}, // unsigned arg0 >> auxInt, 0 <= auxInt < 32, 32 bit width + {name: "SLDconst", argLength: 1, reg: gp11, asm: "SLD", aux: "Int64"}, // arg0 << auxInt, 0 <= auxInt < 64, 64 bit width + {name: "SLWconst", argLength: 1, reg: gp11, asm: "SLW", aux: "Int64"}, // arg0 << auxInt, 0 <= auxInt < 32, 32 bit width {name: "ROTLconst", argLength: 1, reg: gp11, asm: "ROTL", aux: "Int64"}, // arg0 rotate left by auxInt bits {name: "ROTLWconst", argLength: 1, reg: gp11, asm: "ROTLW", aux: "Int64"}, // uint32(arg0) rotate left by auxInt bits @@ -722,6 +724,7 @@ func init() { ParamFloatRegNames: "F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12", gpregmask: gp, fpregmask: fp, + specialregmask: xer, framepointerreg: -1, linkreg: -1, // not used }) diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index 5b379a7fd3..05ed0220ff 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -25134,6 +25134,7 @@ var opcodeTable = [...]opInfo{ inputs: []inputInfo{ {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, + clobbers: 9223372036854775808, // XER outputs: []outputInfo{ {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, @@ -25414,6 +25415,7 @@ var opcodeTable = [...]opInfo{ {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 {1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, + clobbers: 9223372036854775808, // XER outputs: []outputInfo{ {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, @@ -25428,6 +25430,7 @@ var opcodeTable = [...]opInfo{ {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 {1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, + clobbers: 9223372036854775808, // XER outputs: []outputInfo{ {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, @@ -25584,6 +25587,7 @@ var opcodeTable = [...]opInfo{ inputs: []inputInfo{ {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, + clobbers: 9223372036854775808, // XER outputs: []outputInfo{ {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, @@ -25598,6 +25602,7 @@ var opcodeTable = [...]opInfo{ inputs: []inputInfo{ {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, + clobbers: 9223372036854775808, // XER outputs: []outputInfo{ {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 }, @@ -27461,7 +27466,7 @@ var opcodeTable = [...]opInfo{ clobberFlags: true, call: true, reg: regInfo{ - clobbers: 9223372034707283960, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 + clobbers: 18446744071562059768, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 XER }, }, { @@ -27472,7 +27477,7 @@ var opcodeTable = [...]opInfo{ call: true, tailCall: true, reg: regInfo{ - clobbers: 9223372034707283960, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 + clobbers: 18446744071562059768, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 XER }, }, { @@ -27486,7 +27491,7 @@ var opcodeTable = [...]opInfo{ {0, 4096}, // R12 {1, 2048}, // R11 }, - clobbers: 9223372034707283960, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 + clobbers: 18446744071562059768, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 XER }, }, { @@ -27499,7 +27504,7 @@ var opcodeTable = [...]opInfo{ inputs: []inputInfo{ {0, 4096}, // R12 }, - clobbers: 9223372034707283960, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 + clobbers: 18446744071562059768, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 g F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 XER }, }, { @@ -27882,7 +27887,7 @@ var opcodeTable = [...]opInfo{ {0, 1048576}, // R20 {1, 2097152}, // R21 }, - clobbers: 9223372035777632256, // R11 R12 R18 R19 R22 R23 R24 R25 R26 R27 R28 R29 R31 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 + clobbers: 18446744072632408064, // R11 R12 R18 R19 R22 R23 R24 R25 R26 R27 R28 R29 R31 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 F20 F21 F22 F23 F24 F25 F26 F27 F28 F29 F30 XER }, }, { @@ -37287,7 +37292,7 @@ var paramIntRegPPC64 = []int8{3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17} var paramFloatRegPPC64 = []int8{33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44} var gpRegMaskPPC64 = regMask(1073733624) var fpRegMaskPPC64 = regMask(9223372032559808512) -var specialRegMaskPPC64 = regMask(0) +var specialRegMaskPPC64 = regMask(9223372036854775808) var framepointerRegPPC64 = int8(-1) var linkRegPPC64 = int8(-1) var registersRISCV64 = [...]Register{ From dac0220841a44815584c83d26e9f9a45f5560f6d Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Thu, 9 Dec 2021 16:09:24 -0600 Subject: [PATCH 010/125] runtime: avoid potential hang in TestGdbAutotmpTypes If a GC related task preempts between hitting the main.main breakpoint and stepping, the test program may halt forever waiting on a GC operation. This happens if gdb is configured to halt other threads while executing a step. Configure gdb to continue running all threads during a step by setting the scheduler-locking option to off. Fixes #49852 Change-Id: Iacc9732cbd23526bde0a295e6fa8a0d90f733f59 Reviewed-on: https://go-review.googlesource.com/c/go/+/370775 Reviewed-by: Michael Knyszek Run-TryBot: Paul Murphy TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui Trust: Cherry Mui --- src/runtime/runtime-gdb_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/runtime/runtime-gdb_test.go b/src/runtime/runtime-gdb_test.go index bb76116ee9..063b9a7d45 100644 --- a/src/runtime/runtime-gdb_test.go +++ b/src/runtime/runtime-gdb_test.go @@ -500,6 +500,10 @@ func TestGdbAutotmpTypes(t *testing.T) { args := []string{"-nx", "-batch", "-iex", "add-auto-load-safe-path " + filepath.Join(testenv.GOROOT(t), "src", "runtime"), "-ex", "set startup-with-shell off", + // Some gdb may set scheduling-locking as "step" by default. This prevents background tasks + // (e.g GC) from completing which may result in a hang when executing the step command. + // See #49852. + "-ex", "set scheduler-locking off", "-ex", "break main.main", "-ex", "run", "-ex", "step", From 3d7ca9f7c06e52546f12d8d7c96df3712e09b4c1 Mon Sep 17 00:00:00 2001 From: "Paul E. Murphy" Date: Tue, 22 Mar 2022 08:41:34 -0500 Subject: [PATCH 011/125] cmd/compile: add PPC64 ssa ops to support carry chain arithmetic These are the opcodes required to lower math/bits.Add64 and math/bits.Sub64 directly into ssa form. Likewise, opcodes which clobber CA are marked. This does not alter code generation. It prepares for future changes to support scheduling carry chaining ops more effectively, and then changes to lower into PPC64 opcodes. Change-Id: I2723deee4a98b3c365f691857512df53280ae40f Reviewed-on: https://go-review.googlesource.com/c/go/+/394594 Trust: Keith Randall Run-TryBot: Paul Murphy TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui --- src/cmd/compile/internal/ppc64/ssa.go | 35 +++++ src/cmd/compile/internal/ssa/gen/PPC64Ops.go | 14 ++ src/cmd/compile/internal/ssa/opGen.go | 134 +++++++++++++++++++ 3 files changed, 183 insertions(+) diff --git a/src/cmd/compile/internal/ppc64/ssa.go b/src/cmd/compile/internal/ppc64/ssa.go index 98316c16fa..da74cacd95 100644 --- a/src/cmd/compile/internal/ppc64/ssa.go +++ b/src/cmd/compile/internal/ppc64/ssa.go @@ -733,6 +733,41 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg() + case ssa.OpPPC64ADDC, ssa.OpPPC64ADDE, ssa.OpPPC64SUBC, ssa.OpPPC64SUBE: + r := v.Reg0() // CA is the first, implied argument. + r1 := v.Args[0].Reg() + r2 := v.Args[1].Reg() + p := s.Prog(v.Op.Asm()) + p.From.Type = obj.TYPE_REG + p.From.Reg = r2 + p.Reg = r1 + p.To.Type = obj.TYPE_REG + p.To.Reg = r + + case ssa.OpPPC64ADDZEzero, ssa.OpPPC64SUBZEzero: + p := s.Prog(v.Op.Asm()) + p.From.Type = obj.TYPE_REG + p.From.Reg = ppc64.REG_R0 + p.To.Type = obj.TYPE_REG + p.To.Reg = v.Reg() + + case ssa.OpPPC64ADDCconst: + p := s.Prog(v.Op.Asm()) + p.Reg = v.Args[0].Reg() + p.From.Type = obj.TYPE_CONST + p.From.Offset = v.AuxInt + p.To.Type = obj.TYPE_REG + // Output is a pair, the second is the CA, which is implied. + p.To.Reg = v.Reg0() + + case ssa.OpPPC64SUBCconst: + p := s.Prog(v.Op.Asm()) + p.SetFrom3Const(v.AuxInt) + p.From.Type = obj.TYPE_REG + p.From.Reg = v.Args[0].Reg() + p.To.Type = obj.TYPE_REG + p.To.Reg = v.Reg0() + case ssa.OpPPC64SUBFCconst: p := s.Prog(v.Op.Asm()) p.SetFrom3Const(v.AuxInt) diff --git a/src/cmd/compile/internal/ssa/gen/PPC64Ops.go b/src/cmd/compile/internal/ssa/gen/PPC64Ops.go index c079c1cedb..e3b79200fe 100644 --- a/src/cmd/compile/internal/ssa/gen/PPC64Ops.go +++ b/src/cmd/compile/internal/ssa/gen/PPC64Ops.go @@ -139,10 +139,14 @@ func init() { // tls = buildReg("R13") gp01 = regInfo{inputs: nil, outputs: []regMask{gp}} gp11 = regInfo{inputs: []regMask{gp | sp | sb}, outputs: []regMask{gp}} + xergp = regInfo{inputs: []regMask{xer}, outputs: []regMask{gp}, clobbers: xer} gp11cxer = regInfo{inputs: []regMask{gp | sp | sb}, outputs: []regMask{gp}, clobbers: xer} + gp11xer = regInfo{inputs: []regMask{gp | sp | sb}, outputs: []regMask{gp, xer}} gp21 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp}} gp21a0 = regInfo{inputs: []regMask{gp, gp | sp | sb}, outputs: []regMask{gp}} gp21cxer = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp}, clobbers: xer} + gp21xer = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp, xer}, clobbers: xer} + gp2xer1xer = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb, xer}, outputs: []regMask{gp, xer}, clobbers: xer} gp31 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp}} gp22 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp, gp}} gp32 = regInfo{inputs: []regMask{gp | sp | sb, gp | sp | sb, gp | sp | sb}, outputs: []regMask{gp, gp}} @@ -223,6 +227,16 @@ func init() { {name: "LoweredAdd64Carry", argLength: 3, reg: gp32, resultNotInArgs: true}, // arg0 + arg1 + carry, returns (sum, carry) + // Operations which consume or generate the CA (xer) + {name: "ADDC", argLength: 2, reg: gp21xer, asm: "ADDC", commutative: true, typ: "(UInt64, UInt64)"}, // arg0 + arg1 -> out, CA + {name: "SUBC", argLength: 2, reg: gp21xer, asm: "SUBC", typ: "(UInt64, UInt64)"}, // arg0 - arg1 -> out, CA + {name: "ADDCconst", argLength: 1, reg: gp11xer, asm: "ADDC", typ: "(UInt64, UInt64)", aux: "Int64"}, // arg0 + imm16 -> out, CA + {name: "SUBCconst", argLength: 1, reg: gp11xer, asm: "SUBC", typ: "(UInt64, UInt64)", aux: "Int64"}, // imm16 - arg0 -> out, CA + {name: "ADDE", argLength: 3, reg: gp2xer1xer, asm: "ADDE", typ: "(UInt64, UInt64)", commutative: true}, // arg0 + arg1 + CA (arg2) -> out, CA + {name: "SUBE", argLength: 3, reg: gp2xer1xer, asm: "SUBE", typ: "(UInt64, UInt64)"}, // arg0 - arg1 - CA (arg2) -> out, CA + {name: "ADDZEzero", argLength: 1, reg: xergp, asm: "ADDZE", typ: "UInt64"}, // CA (arg0) + $0 -> out + {name: "SUBZEzero", argLength: 1, reg: xergp, asm: "SUBZE", typ: "UInt64"}, // $0 - CA (arg0) -> out + {name: "SRADconst", argLength: 1, reg: gp11cxer, asm: "SRAD", aux: "Int64"}, // signed arg0 >> auxInt, 0 <= auxInt < 64, 64 bit width {name: "SRAWconst", argLength: 1, reg: gp11cxer, asm: "SRAW", aux: "Int64"}, // signed arg0 >> auxInt, 0 <= auxInt < 32, 32 bit width {name: "SRDconst", argLength: 1, reg: gp11, asm: "SRD", aux: "Int64"}, // unsigned arg0 >> auxInt, 0 <= auxInt < 64, 64 bit width diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index 05ed0220ff..ca285a2dfc 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -1911,6 +1911,14 @@ const ( OpPPC64CLRLSLWI OpPPC64CLRLSLDI OpPPC64LoweredAdd64Carry + OpPPC64ADDC + OpPPC64SUBC + OpPPC64ADDCconst + OpPPC64SUBCconst + OpPPC64ADDE + OpPPC64SUBE + OpPPC64ADDZEzero + OpPPC64SUBZEzero OpPPC64SRADconst OpPPC64SRAWconst OpPPC64SRDconst @@ -25578,6 +25586,132 @@ var opcodeTable = [...]opInfo{ }, }, }, + { + name: "ADDC", + argLen: 2, + commutative: true, + asm: ppc64.AADDC, + reg: regInfo{ + inputs: []inputInfo{ + {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + {1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + clobbers: 9223372036854775808, // XER + outputs: []outputInfo{ + {1, 9223372036854775808}, // XER + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, + { + name: "SUBC", + argLen: 2, + asm: ppc64.ASUBC, + reg: regInfo{ + inputs: []inputInfo{ + {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + {1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + clobbers: 9223372036854775808, // XER + outputs: []outputInfo{ + {1, 9223372036854775808}, // XER + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, + { + name: "ADDCconst", + auxType: auxInt64, + argLen: 1, + asm: ppc64.AADDC, + reg: regInfo{ + inputs: []inputInfo{ + {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + outputs: []outputInfo{ + {1, 9223372036854775808}, // XER + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, + { + name: "SUBCconst", + auxType: auxInt64, + argLen: 1, + asm: ppc64.ASUBC, + reg: regInfo{ + inputs: []inputInfo{ + {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + outputs: []outputInfo{ + {1, 9223372036854775808}, // XER + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, + { + name: "ADDE", + argLen: 3, + commutative: true, + asm: ppc64.AADDE, + reg: regInfo{ + inputs: []inputInfo{ + {2, 9223372036854775808}, // XER + {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + {1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + clobbers: 9223372036854775808, // XER + outputs: []outputInfo{ + {1, 9223372036854775808}, // XER + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, + { + name: "SUBE", + argLen: 3, + asm: ppc64.ASUBE, + reg: regInfo{ + inputs: []inputInfo{ + {2, 9223372036854775808}, // XER + {0, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + {1, 1073733630}, // SP SB R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + clobbers: 9223372036854775808, // XER + outputs: []outputInfo{ + {1, 9223372036854775808}, // XER + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, + { + name: "ADDZEzero", + argLen: 1, + asm: ppc64.AADDZE, + reg: regInfo{ + inputs: []inputInfo{ + {0, 9223372036854775808}, // XER + }, + clobbers: 9223372036854775808, // XER + outputs: []outputInfo{ + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, + { + name: "SUBZEzero", + argLen: 1, + asm: ppc64.ASUBZE, + reg: regInfo{ + inputs: []inputInfo{ + {0, 9223372036854775808}, // XER + }, + clobbers: 9223372036854775808, // XER + outputs: []outputInfo{ + {0, 1073733624}, // R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 + }, + }, + }, { name: "SRADconst", auxType: auxInt64, From 7cb1ae3e8e4bc4d80d711b5180705af556c95843 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 28 Mar 2022 16:22:22 -0700 Subject: [PATCH 012/125] go/types, types2: better error message for some invalid receiver errors (cleanup) Use the 1.17 compiler error message together with the receiver base type. Also, simplify and flatten the receive testing logic for clarity. Change-Id: I71e58f261900dd7a85d2eb89a310c36b68d1b0b0 Reviewed-on: https://go-review.googlesource.com/c/go/+/396298 Trust: Robert Griesemer Reviewed-by: Robert Findley --- src/cmd/compile/internal/types2/signature.go | 88 ++++++++----------- .../types2/testdata/check/decls2/decls2a.go | 6 +- .../internal/types2/testdata/check/decls4.go | 6 +- .../types2/testdata/fixedbugs/issue47968.go | 4 +- src/go/types/signature.go | 88 ++++++++----------- src/go/types/testdata/check/decls2/decls2a.go | 6 +- src/go/types/testdata/check/decls4.go | 6 +- src/go/types/testdata/fixedbugs/issue47968.go | 4 +- 8 files changed, 90 insertions(+), 118 deletions(-) diff --git a/src/cmd/compile/internal/types2/signature.go b/src/cmd/compile/internal/types2/signature.go index c98024f924..2dc4dd43f3 100644 --- a/src/cmd/compile/internal/types2/signature.go +++ b/src/cmd/compile/internal/types2/signature.go @@ -199,62 +199,48 @@ func (check *Checker) funcType(sig *Signature, recvPar *syntax.Field, tparams [] // Delay validation of receiver type as it may cause premature expansion // of types the receiver type is dependent on (see issues #51232, #51233). check.later(func() { - rtyp, _ := deref(recv.typ) - // spec: "The receiver type must be of the form T or *T where T is a type name." - // (ignore invalid types - error was reported before) - if rtyp != Typ[Invalid] { - var err string - switch T := rtyp.(type) { - case *Named: - T.resolve(check.bestContext(nil)) - // The receiver type may be an instantiated type referred to - // by an alias (which cannot have receiver parameters for now). - if T.TypeArgs() != nil && sig.RecvTypeParams() == nil { - check.errorf(recv.pos, "cannot define methods on instantiated type %s", recv.typ) - break - } - // spec: "The type denoted by T is called the receiver base type; it must not - // be a pointer or interface type and it must be declared in the same package - // as the method." - if T.obj.pkg != check.pkg { - err = "type not defined in this package" - if check.conf.CompilerErrorMessages { - check.errorf(recv.pos, "cannot define new methods on non-local type %s", recv.typ) - err = "" - } - } else { - // The underlying type of a receiver base type can be a type parameter; - // e.g. for methods with a generic receiver T[P] with type T[P any] P. - // TODO(gri) Such declarations are currently disallowed. - // Revisit the need for underIs. - underIs(T, func(u Type) bool { - switch u := u.(type) { - case *Basic: - // unsafe.Pointer is treated like a regular pointer - if u.kind == UnsafePointer { - err = "unsafe.Pointer" - return false - } - case *Pointer, *Interface: - err = "pointer or interface type" - return false - } - return true - }) - } + rtyp, _ := deref(recv.typ) + if rtyp == Typ[Invalid] { + return // error was reported before + } + // spec: "The type denoted by T is called the receiver base type; it must not + // be a pointer or interface type and it must be declared in the same package + // as the method." + switch T := rtyp.(type) { + case *Named: + T.resolve(check.bestContext(nil)) + // The receiver type may be an instantiated type referred to + // by an alias (which cannot have receiver parameters for now). + if T.TypeArgs() != nil && sig.RecvTypeParams() == nil { + check.errorf(recv, "cannot define new methods on instantiated type %s", rtyp) + break + } + if T.obj.pkg != check.pkg { + check.errorf(recv, "cannot define new methods on non-local type %s", rtyp) + break + } + var cause string + switch u := T.under().(type) { case *Basic: - err = "basic or unnamed type" - if check.conf.CompilerErrorMessages { - check.errorf(recv.pos, "cannot define new methods on non-local type %s", recv.typ) - err = "" + // unsafe.Pointer is treated like a regular pointer + if u.kind == UnsafePointer { + cause = "unsafe.Pointer" } - default: - check.errorf(recv.pos, "invalid receiver type %s", recv.typ) + case *Pointer, *Interface: + cause = "pointer or interface type" + case *TypeParam: + // The underlying type of a receiver base type cannot be a + // type parameter: "type T[P any] P" is not a valid declaration. + unreachable() } - if err != "" { - check.errorf(recv.pos, "invalid receiver type %s (%s)", recv.typ, err) + if cause != "" { + check.errorf(recv, "invalid receiver type %s (%s)", rtyp, cause) } + case *Basic: + check.errorf(recv, "cannot define new methods on non-local type %s", rtyp) + default: + check.errorf(recv, "invalid receiver type %s", recv.typ) } }).describef(recv, "validate receiver %s", recv) } diff --git a/src/cmd/compile/internal/types2/testdata/check/decls2/decls2a.go b/src/cmd/compile/internal/types2/testdata/check/decls2/decls2a.go index d077db55dd..66ca6ee515 100644 --- a/src/cmd/compile/internal/types2/testdata/check/decls2/decls2a.go +++ b/src/cmd/compile/internal/types2/testdata/check/decls2/decls2a.go @@ -93,10 +93,10 @@ func (a, b /* ERROR "multiple receivers" */ T3) _() {} func (a, b, c /* ERROR "multiple receivers" */ T3) _() {} // Methods associated with non-local or unnamed types. -func (int /* ERROR "invalid receiver" */ ) m() {} +func (int /* ERROR "cannot define new methods on non-local type int" */ ) m() {} func ([ /* ERROR "invalid receiver" */ ]int) m() {} -func (time /* ERROR "invalid receiver" */ .Time) m() {} -func (* /* ERROR "invalid receiver" */ time.Time) m() {} +func (time /* ERROR "cannot define new methods on non-local type time\.Time" */ .Time) m() {} +func (* /* ERROR "cannot define new methods on non-local type time\.Time" */ time.Time) m() {} func (x /* ERROR "invalid receiver" */ interface{}) m() {} // Unsafe.Pointer is treated like a pointer when used as receiver type. diff --git a/src/cmd/compile/internal/types2/testdata/check/decls4.go b/src/cmd/compile/internal/types2/testdata/check/decls4.go index eb08421bee..384bcd9b89 100644 --- a/src/cmd/compile/internal/types2/testdata/check/decls4.go +++ b/src/cmd/compile/internal/types2/testdata/check/decls4.go @@ -59,7 +59,7 @@ var ( ) // alias receiver types -func (Ai /* ERROR "invalid receiver" */) m1() {} +func (Ai /* ERROR "cannot define new methods on non-local type int" */) m1() {} func (T0) m1() {} func (A0) m1 /* ERROR already declared */ () {} func (A0) m2 () {} @@ -115,8 +115,8 @@ type ( B2 = int ) -func (B0 /* ERROR invalid receiver */ ) m() {} -func (B1 /* ERROR invalid receiver */ ) n() {} +func (B0 /* ERROR cannot define new methods on non-local type int */ ) m() {} +func (B1 /* ERROR cannot define new methods on non-local type int */ ) n() {} // cycles type ( diff --git a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47968.go b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47968.go index 711e50a55a..3dd303957c 100644 --- a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47968.go +++ b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47968.go @@ -14,8 +14,8 @@ func (A1[P]) m2() {} type A2 = T[int] -func (A2 /* ERROR cannot define methods on instantiated type T\[int\] */) m3() {} -func (_ /* ERROR cannot define methods on instantiated type T\[int\] */ A2) m4() {} +func (A2 /* ERROR cannot define new methods on instantiated type T\[int\] */) m3() {} +func (_ /* ERROR cannot define new methods on instantiated type T\[int\] */ A2) m4() {} func (T[int]) m5() {} // int is the type parameter name, not an instantiation func (T[* /* ERROR must be an identifier */ int]) m6() {} // syntax error diff --git a/src/go/types/signature.go b/src/go/types/signature.go index a340ac701e..9e7b63b451 100644 --- a/src/go/types/signature.go +++ b/src/go/types/signature.go @@ -206,62 +206,48 @@ func (check *Checker) funcType(sig *Signature, recvPar *ast.FieldList, ftyp *ast // Delay validation of receiver type as it may cause premature expansion // of types the receiver type is dependent on (see issues #51232, #51233). check.later(func() { - rtyp, _ := deref(recv.typ) - // spec: "The receiver type must be of the form T or *T where T is a type name." - // (ignore invalid types - error was reported before) - if rtyp != Typ[Invalid] { - var err string - switch T := rtyp.(type) { - case *Named: - T.resolve(check.bestContext(nil)) - // The receiver type may be an instantiated type referred to - // by an alias (which cannot have receiver parameters for now). - if T.TypeArgs() != nil && sig.RecvTypeParams() == nil { - check.errorf(recv, _InvalidRecv, "cannot define methods on instantiated type %s", recv.typ) - break - } - // spec: "The type denoted by T is called the receiver base type; it must not - // be a pointer or interface type and it must be declared in the same package - // as the method." - if T.obj.pkg != check.pkg { - err = "type not defined in this package" - if compilerErrorMessages { - check.errorf(recv, _InvalidRecv, "cannot define new methods on non-local type %s", recv.typ) - err = "" - } - } else { - // The underlying type of a receiver base type can be a type parameter; - // e.g. for methods with a generic receiver T[P] with type T[P any] P. - // TODO(gri) Such declarations are currently disallowed. - // Revisit the need for underIs. - underIs(T, func(u Type) bool { - switch u := u.(type) { - case *Basic: - // unsafe.Pointer is treated like a regular pointer - if u.kind == UnsafePointer { - err = "unsafe.Pointer" - return false - } - case *Pointer, *Interface: - err = "pointer or interface type" - return false - } - return true - }) - } + rtyp, _ := deref(recv.typ) + if rtyp == Typ[Invalid] { + return // error was reported before + } + // spec: "The type denoted by T is called the receiver base type; it must not + // be a pointer or interface type and it must be declared in the same package + // as the method." + switch T := rtyp.(type) { + case *Named: + T.resolve(check.bestContext(nil)) + // The receiver type may be an instantiated type referred to + // by an alias (which cannot have receiver parameters for now). + if T.TypeArgs() != nil && sig.RecvTypeParams() == nil { + check.errorf(recv, _InvalidRecv, "cannot define new methods on instantiated type %s", rtyp) + break + } + if T.obj.pkg != check.pkg { + check.errorf(recv, _InvalidRecv, "cannot define new methods on non-local type %s", rtyp) + break + } + var cause string + switch u := T.under().(type) { case *Basic: - err = "basic or unnamed type" - if compilerErrorMessages { - check.errorf(recv, _InvalidRecv, "cannot define new methods on non-local type %s", recv.typ) - err = "" + // unsafe.Pointer is treated like a regular pointer + if u.kind == UnsafePointer { + cause = "unsafe.Pointer" } - default: - check.errorf(recv, _InvalidRecv, "invalid receiver type %s", recv.typ) + case *Pointer, *Interface: + cause = "pointer or interface type" + case *TypeParam: + // The underlying type of a receiver base type cannot be a + // type parameter: "type T[P any] P" is not a valid declaration. + unreachable() } - if err != "" { - check.errorf(recv, _InvalidRecv, "invalid receiver type %s (%s)", recv.typ, err) + if cause != "" { + check.errorf(recv, _InvalidRecv, "invalid receiver type %s (%s)", rtyp, cause) } + case *Basic: + check.errorf(recv, _InvalidRecv, "cannot define new methods on non-local type %s", rtyp) + default: + check.errorf(recv, _InvalidRecv, "invalid receiver type %s", recv.typ) } }).describef(recv, "validate receiver %s", recv) } diff --git a/src/go/types/testdata/check/decls2/decls2a.go b/src/go/types/testdata/check/decls2/decls2a.go index bdbecd9dbb..9dff17349c 100644 --- a/src/go/types/testdata/check/decls2/decls2a.go +++ b/src/go/types/testdata/check/decls2/decls2a.go @@ -93,10 +93,10 @@ func (a, b /* ERROR "exactly one receiver" */ T3) _() {} func (a, b, c /* ERROR "exactly one receiver" */ T3) _() {} // Methods associated with non-local or unnamed types. -func (int /* ERROR "invalid receiver" */ ) m() {} +func (int /* ERROR "cannot define new methods on non-local type int" */ ) m() {} func ([ /* ERROR "invalid receiver" */ ]int) m() {} -func (time /* ERROR "invalid receiver" */ .Time) m() {} -func (* /* ERROR "invalid receiver" */ time.Time) m() {} +func (time /* ERROR "cannot define new methods on non-local type time\.Time" */ .Time) m() {} +func (* /* ERROR "cannot define new methods on non-local type time\.Time" */ time.Time) m() {} func (x /* ERROR "invalid receiver" */ interface{}) m() {} // Unsafe.Pointer is treated like a pointer when used as receiver type. diff --git a/src/go/types/testdata/check/decls4.go b/src/go/types/testdata/check/decls4.go index 140bbfd31f..8a9a6ffba7 100644 --- a/src/go/types/testdata/check/decls4.go +++ b/src/go/types/testdata/check/decls4.go @@ -59,7 +59,7 @@ var ( ) // alias receiver types -func (Ai /* ERROR "invalid receiver" */) m1() {} +func (Ai /* ERROR "cannot define new methods on non-local type int" */) m1() {} func (T0) m1() {} func (A0) m1 /* ERROR already declared */ () {} func (A0) m2 () {} @@ -115,8 +115,8 @@ type ( B2 = int ) -func (B0 /* ERROR invalid receiver */ ) m() {} -func (B1 /* ERROR invalid receiver */ ) n() {} +func (B0 /* ERROR cannot define new methods on non-local type int */ ) m() {} +func (B1 /* ERROR cannot define new methods on non-local type int */ ) n() {} // cycles type ( diff --git a/src/go/types/testdata/fixedbugs/issue47968.go b/src/go/types/testdata/fixedbugs/issue47968.go index 711e50a55a..3dd303957c 100644 --- a/src/go/types/testdata/fixedbugs/issue47968.go +++ b/src/go/types/testdata/fixedbugs/issue47968.go @@ -14,8 +14,8 @@ func (A1[P]) m2() {} type A2 = T[int] -func (A2 /* ERROR cannot define methods on instantiated type T\[int\] */) m3() {} -func (_ /* ERROR cannot define methods on instantiated type T\[int\] */ A2) m4() {} +func (A2 /* ERROR cannot define new methods on instantiated type T\[int\] */) m3() {} +func (_ /* ERROR cannot define new methods on instantiated type T\[int\] */ A2) m4() {} func (T[int]) m5() {} // int is the type parameter name, not an instantiation func (T[* /* ERROR must be an identifier */ int]) m6() {} // syntax error From 8fefeabb358395fb3e592e9403339552880e0872 Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Wed, 3 Nov 2021 15:04:13 +0800 Subject: [PATCH 013/125] runtime: add runtime changes for register ABI on riscv64 This CL adds - spill functions used by runtime - ABIInternal to functions Adding new stubs_riscv64 file to eliminate vet issues while compiling. Change-Id: I2a9f6088a1cd2d9708f26b2d97895b4e5f9f87e9 Reviewed-on: https://go-review.googlesource.com/c/go/+/360296 Trust: mzh Reviewed-by: Cherry Mui --- src/runtime/asm_riscv64.s | 274 +++++++++++++++++++++++++++++------ src/runtime/duff_riscv64.s | 4 +- src/runtime/mkduff.go | 4 +- src/runtime/stubs_riscv64.go | 16 ++ 4 files changed, 246 insertions(+), 52 deletions(-) create mode 100644 src/runtime/stubs_riscv64.go diff --git a/src/runtime/asm_riscv64.s b/src/runtime/asm_riscv64.s index 2a4837b399..9052649c9e 100644 --- a/src/runtime/asm_riscv64.s +++ b/src/runtime/asm_riscv64.s @@ -260,25 +260,31 @@ TEXT runtime·procyield(SB),NOSPLIT,$0-0 // to keep running g. // func mcall(fn func(*g)) -TEXT runtime·mcall(SB), NOSPLIT|NOFRAME, $0-8 +TEXT runtime·mcall(SB), NOSPLIT|NOFRAME, $0-8 +#ifdef GOEXPERIMENT_regabiargs + MOV X10, CTXT +#else + MOV fn+0(FP), CTXT +#endif + // Save caller state in g->sched MOV X2, (g_sched+gobuf_sp)(g) MOV RA, (g_sched+gobuf_pc)(g) MOV ZERO, (g_sched+gobuf_lr)(g) // Switch to m->g0 & its stack, call fn. - MOV g, T0 + MOV g, X10 MOV g_m(g), T1 MOV m_g0(T1), g CALL runtime·save_g(SB) - BNE g, T0, 2(PC) + BNE g, X10, 2(PC) JMP runtime·badmcall(SB) - MOV fn+0(FP), CTXT // context MOV 0(CTXT), T1 // code pointer MOV (g_sched+gobuf_sp)(g), X2 // sp = m->g0->sched.sp + // we don't need special macro for regabi since arg0(X10) = g ADD $-16, X2 - MOV T0, 8(X2) - MOV ZERO, 0(X2) + MOV X10, 8(X2) // setup g + MOV ZERO, 0(X2) // clear return address JALR RA, T1 JMP runtime·badmcall2(SB) @@ -417,12 +423,17 @@ TEXT NAME(SB), WRAPPER, $MAXSIZE-48; \ MOVB A4, (A3); \ ADD $1, A3; \ JMP -5(PC); \ + /* set up argument registers */ \ + MOV regArgs+40(FP), X25; \ + CALL ·unspillArgs(SB); \ /* call function */ \ MOV f+8(FP), CTXT; \ - MOV (CTXT), A4; \ + MOV (CTXT), X25; \ PCDATA $PCDATA_StackMapIndex, $0; \ - JALR RA, A4; \ + JALR RA, X25; \ /* copy return values back */ \ + MOV regArgs+40(FP), X25; \ + CALL ·spillArgs(SB); \ MOV stackArgsType+0(FP), A5; \ MOV stackArgs+16(FP), A1; \ MOVWU stackArgsSize+24(FP), A2; \ @@ -439,11 +450,12 @@ TEXT NAME(SB), WRAPPER, $MAXSIZE-48; \ // to reflectcallmove. It does not follow the Go ABI; it expects its // arguments in registers. TEXT callRet<>(SB), NOSPLIT, $40-0 + NO_LOCAL_POINTERS MOV A5, 8(X2) MOV A1, 16(X2) MOV A3, 24(X2) MOV A2, 32(X2) - MOV ZERO, 40(X2) + MOV X25, 40(X2) CALL runtime·reflectcallmove(SB) RET @@ -625,6 +637,86 @@ TEXT ·checkASM(SB),NOSPLIT,$0-1 MOV T0, ret+0(FP) RET +#ifdef GOEXPERIMENT_regabiargs +// spillArgs stores return values from registers to a *internal/abi.RegArgs in X25. +TEXT ·spillArgs(SB),NOSPLIT,$0-0 + MOV X10, (0*8)(X25) + MOV X11, (1*8)(X25) + MOV X12, (2*8)(X25) + MOV X13, (3*8)(X25) + MOV X14, (4*8)(X25) + MOV X15, (5*8)(X25) + MOV X16, (6*8)(X25) + MOV X17, (7*8)(X25) + MOV X8, (8*8)(X25) + MOV X9, (9*8)(X25) + MOV X18, (10*8)(X25) + MOV X19, (11*8)(X25) + MOV X20, (12*8)(X25) + MOV X21, (13*8)(X25) + MOV X22, (14*8)(X25) + MOV X23, (15*8)(X25) + MOVD F10, (16*8)(X25) + MOVD F11, (17*8)(X25) + MOVD F12, (18*8)(X25) + MOVD F13, (19*8)(X25) + MOVD F14, (20*8)(X25) + MOVD F15, (21*8)(X25) + MOVD F16, (22*8)(X25) + MOVD F17, (23*8)(X25) + MOVD F8, (24*8)(X25) + MOVD F9, (25*8)(X25) + MOVD F18, (26*8)(X25) + MOVD F19, (27*8)(X25) + MOVD F20, (28*8)(X25) + MOVD F21, (29*8)(X25) + MOVD F22, (30*8)(X25) + MOVD F23, (31*8)(X25) + RET + +// unspillArgs loads args into registers from a *internal/abi.RegArgs in X25. +TEXT ·unspillArgs(SB),NOSPLIT,$0-0 + MOV (0*8)(X25), X10 + MOV (1*8)(X25), X11 + MOV (2*8)(X25), X12 + MOV (3*8)(X25), X13 + MOV (4*8)(X25), X14 + MOV (5*8)(X25), X15 + MOV (6*8)(X25), X16 + MOV (7*8)(X25), X17 + MOV (8*8)(X25), X8 + MOV (9*8)(X25), X9 + MOV (10*8)(X25), X18 + MOV (11*8)(X25), X19 + MOV (12*8)(X25), X20 + MOV (13*8)(X25), X21 + MOV (14*8)(X25), X22 + MOV (15*8)(X25), X23 + MOVD (16*8)(X25), F10 + MOVD (17*8)(X25), F11 + MOVD (18*8)(X25), F12 + MOVD (19*8)(X25), F13 + MOVD (20*8)(X25), F14 + MOVD (21*8)(X25), F15 + MOVD (22*8)(X25), F16 + MOVD (23*8)(X25), F17 + MOVD (24*8)(X25), F8 + MOVD (25*8)(X25), F9 + MOVD (26*8)(X25), F18 + MOVD (27*8)(X25), F19 + MOVD (28*8)(X25), F20 + MOVD (29*8)(X25), F21 + MOVD (30*8)(X25), F22 + MOVD (31*8)(X25), F23 + RET +#else +TEXT ·spillArgs(SB),NOSPLIT,$0-0 + RET + +TEXT ·unspillArgs(SB),NOSPLIT,$0-0 + RET +#endif + // gcWriteBarrier performs a heap pointer write and informs the GC. // // gcWriteBarrier does NOT follow the Go ABI. It takes two arguments: @@ -634,7 +726,7 @@ TEXT ·checkASM(SB),NOSPLIT,$0-1 // The act of CALLing gcWriteBarrier will clobber RA (LR). // It does not clobber any other general-purpose registers, // but may clobber others (e.g., floating point registers). -TEXT runtime·gcWriteBarrier(SB),NOSPLIT,$208 +TEXT runtime·gcWriteBarrier(SB),NOSPLIT,$208 // Save the registers clobbered by the fast path. MOV A0, 24*8(X2) MOV A1, 25*8(X2) @@ -727,78 +819,164 @@ flush: JMP ret // Note: these functions use a special calling convention to save generated code space. -// Arguments are passed in registers, but the space for those arguments are allocated -// in the caller's stack frame. These stubs write the args into that stack space and -// then tail call to the corresponding runtime handler. +// Arguments are passed in registers (ssa/gen/RISCV64Ops.go), but the space for those +// arguments are allocated in the caller's stack frame. +// These stubs write the args into that stack space and then tail call to the +// corresponding runtime handler. // The tail call makes these stubs disappear in backtraces. -TEXT runtime·panicIndex(SB),NOSPLIT,$0-16 +TEXT runtime·panicIndex(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T0, X10 + MOV T1, X11 +#else MOV T0, x+0(FP) MOV T1, y+8(FP) - JMP runtime·goPanicIndex(SB) -TEXT runtime·panicIndexU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicIndex(SB) +TEXT runtime·panicIndexU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T0, X10 + MOV T1, X11 +#else MOV T0, x+0(FP) MOV T1, y+8(FP) - JMP runtime·goPanicIndexU(SB) -TEXT runtime·panicSliceAlen(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicIndexU(SB) +TEXT runtime·panicSliceAlen(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T1, X10 + MOV T2, X11 +#else MOV T1, x+0(FP) MOV T2, y+8(FP) - JMP runtime·goPanicSliceAlen(SB) -TEXT runtime·panicSliceAlenU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSliceAlen(SB) +TEXT runtime·panicSliceAlenU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T1, X10 + MOV T2, X11 +#else MOV T1, x+0(FP) MOV T2, y+8(FP) - JMP runtime·goPanicSliceAlenU(SB) -TEXT runtime·panicSliceAcap(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSliceAlenU(SB) +TEXT runtime·panicSliceAcap(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T1, X10 + MOV T2, X11 +#else MOV T1, x+0(FP) MOV T2, y+8(FP) - JMP runtime·goPanicSliceAcap(SB) -TEXT runtime·panicSliceAcapU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSliceAcap(SB) +TEXT runtime·panicSliceAcapU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T1, X10 + MOV T2, X11 +#else MOV T1, x+0(FP) MOV T2, y+8(FP) - JMP runtime·goPanicSliceAcapU(SB) -TEXT runtime·panicSliceB(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSliceAcapU(SB) +TEXT runtime·panicSliceB(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T0, X10 + MOV T1, X11 +#else MOV T0, x+0(FP) MOV T1, y+8(FP) - JMP runtime·goPanicSliceB(SB) -TEXT runtime·panicSliceBU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSliceB(SB) +TEXT runtime·panicSliceBU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T0, X10 + MOV T1, X11 +#else MOV T0, x+0(FP) MOV T1, y+8(FP) - JMP runtime·goPanicSliceBU(SB) -TEXT runtime·panicSlice3Alen(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSliceBU(SB) +TEXT runtime·panicSlice3Alen(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T2, X10 + MOV T3, X11 +#else MOV T2, x+0(FP) MOV T3, y+8(FP) - JMP runtime·goPanicSlice3Alen(SB) -TEXT runtime·panicSlice3AlenU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3Alen(SB) +TEXT runtime·panicSlice3AlenU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T2, X10 + MOV T3, X11 +#else MOV T2, x+0(FP) MOV T3, y+8(FP) - JMP runtime·goPanicSlice3AlenU(SB) -TEXT runtime·panicSlice3Acap(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3AlenU(SB) +TEXT runtime·panicSlice3Acap(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T2, X10 + MOV T3, X11 +#else MOV T2, x+0(FP) MOV T3, y+8(FP) - JMP runtime·goPanicSlice3Acap(SB) -TEXT runtime·panicSlice3AcapU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3Acap(SB) +TEXT runtime·panicSlice3AcapU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T2, X10 + MOV T3, X11 +#else MOV T2, x+0(FP) MOV T3, y+8(FP) - JMP runtime·goPanicSlice3AcapU(SB) -TEXT runtime·panicSlice3B(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3AcapU(SB) +TEXT runtime·panicSlice3B(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T1, X10 + MOV T2, X11 +#else MOV T1, x+0(FP) MOV T2, y+8(FP) - JMP runtime·goPanicSlice3B(SB) -TEXT runtime·panicSlice3BU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3B(SB) +TEXT runtime·panicSlice3BU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T1, X10 + MOV T2, X11 +#else MOV T1, x+0(FP) MOV T2, y+8(FP) - JMP runtime·goPanicSlice3BU(SB) -TEXT runtime·panicSlice3C(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3BU(SB) +TEXT runtime·panicSlice3C(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T0, X10 + MOV T1, X11 +#else MOV T0, x+0(FP) MOV T1, y+8(FP) - JMP runtime·goPanicSlice3C(SB) -TEXT runtime·panicSlice3CU(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3C(SB) +TEXT runtime·panicSlice3CU(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T0, X10 + MOV T1, X11 +#else MOV T0, x+0(FP) MOV T1, y+8(FP) - JMP runtime·goPanicSlice3CU(SB) -TEXT runtime·panicSliceConvert(SB),NOSPLIT,$0-16 +#endif + JMP runtime·goPanicSlice3CU(SB) +TEXT runtime·panicSliceConvert(SB),NOSPLIT,$0-16 +#ifdef GOEXPERIMENT_regabiargs + MOV T2, X10 + MOV T3, X11 +#else MOV T2, x+0(FP) MOV T3, y+8(FP) - JMP runtime·goPanicSliceConvert(SB) +#endif + JMP runtime·goPanicSliceConvert(SB) -DATA runtime·mainPC+0(SB)/8,$runtime·main(SB) +DATA runtime·mainPC+0(SB)/8,$runtime·main(SB) GLOBL runtime·mainPC(SB),RODATA,$8 diff --git a/src/runtime/duff_riscv64.s b/src/runtime/duff_riscv64.s index 9d7f0031a3..ec447677ad 100644 --- a/src/runtime/duff_riscv64.s +++ b/src/runtime/duff_riscv64.s @@ -4,7 +4,7 @@ #include "textflag.h" -TEXT runtime·duffzero(SB), NOSPLIT|NOFRAME, $0-0 +TEXT runtime·duffzero(SB), NOSPLIT|NOFRAME, $0-0 MOV ZERO, (X25) ADD $8, X25 MOV ZERO, (X25) @@ -263,7 +263,7 @@ TEXT runtime·duffzero(SB), NOSPLIT|NOFRAME, $0-0 ADD $8, X25 RET -TEXT runtime·duffcopy(SB), NOSPLIT|NOFRAME, $0-0 +TEXT runtime·duffcopy(SB), NOSPLIT|NOFRAME, $0-0 MOV (X24), X31 ADD $8, X24 MOV X31, (X25) diff --git a/src/runtime/mkduff.go b/src/runtime/mkduff.go index e1c01fffce..f1e4ed75d0 100644 --- a/src/runtime/mkduff.go +++ b/src/runtime/mkduff.go @@ -237,7 +237,7 @@ func zeroRISCV64(w io.Writer) { // ZERO: always zero // X25: ptr to memory to be zeroed // X25 is updated as a side effect. - fmt.Fprintln(w, "TEXT runtime·duffzero(SB), NOSPLIT|NOFRAME, $0-0") + fmt.Fprintln(w, "TEXT runtime·duffzero(SB), NOSPLIT|NOFRAME, $0-0") for i := 0; i < 128; i++ { fmt.Fprintln(w, "\tMOV\tZERO, (X25)") fmt.Fprintln(w, "\tADD\t$8, X25") @@ -249,7 +249,7 @@ func copyRISCV64(w io.Writer) { // X24: ptr to source memory // X25: ptr to destination memory // X24 and X25 are updated as a side effect - fmt.Fprintln(w, "TEXT runtime·duffcopy(SB), NOSPLIT|NOFRAME, $0-0") + fmt.Fprintln(w, "TEXT runtime·duffcopy(SB), NOSPLIT|NOFRAME, $0-0") for i := 0; i < 128; i++ { fmt.Fprintln(w, "\tMOV\t(X24), X31") fmt.Fprintln(w, "\tADD\t$8, X24") diff --git a/src/runtime/stubs_riscv64.go b/src/runtime/stubs_riscv64.go new file mode 100644 index 0000000000..f677117871 --- /dev/null +++ b/src/runtime/stubs_riscv64.go @@ -0,0 +1,16 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package runtime + +// Called from assembly only; declared for go vet. +func load_g() +func save_g() + +// Used by reflectcall and the reflect package. +// +// Spills/loads arguments in registers to/from an internal/abi.RegArgs +// respectively. Does not follow the Go ABI. +func spillArgs() +func unspillArgs() From 63169c8bdf3e7ac5006c8976b0631b281eb49394 Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Sat, 26 Mar 2022 14:44:09 +0800 Subject: [PATCH 014/125] cmd/link: zero elf addr for debug sections The Addr should be zero if SHF_ALLOC is not set. Update #51939 Change-Id: I030f6243d05efabe6b9ebf558e9c0201f7922d23 Reviewed-on: https://go-review.googlesource.com/c/go/+/395919 Trust: mzh Run-TryBot: mzh TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui --- src/cmd/link/elf_test.go | 28 ++++++++++++++++++++++++++++ src/cmd/link/internal/ld/elf.go | 8 +++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/cmd/link/elf_test.go b/src/cmd/link/elf_test.go index 318bd76aba..5b7b95757b 100644 --- a/src/cmd/link/elf_test.go +++ b/src/cmd/link/elf_test.go @@ -469,3 +469,31 @@ func TestPIESize(t *testing.T) { }) } } + +func TestIssue51939(t *testing.T) { + testenv.MustHaveGoBuild(t) + t.Parallel() + td := t.TempDir() + goFile := filepath.Join(td, "issue51939.go") + if err := os.WriteFile(goFile, []byte(goSource), 0444); err != nil { + t.Fatal(err) + } + outFile := filepath.Join(td, "issue51939.exe") + goTool := testenv.GoToolPath(t) + cmd := exec.Command(goTool, "build", "-o", outFile, goFile) + if out, err := cmd.CombinedOutput(); err != nil { + t.Logf("%s", out) + t.Fatal(err) + } + + ef, err := elf.Open(outFile) + if err != nil { + t.Fatal(err) + } + + for _, s := range ef.Sections { + if s.Flags&elf.SHF_ALLOC == 0 && s.Addr != 0 { + t.Errorf("section %s should not allocated with addr %x", s.Name, s.Addr) + } + } +} diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go index cb094a373a..08de21cab6 100644 --- a/src/cmd/link/internal/ld/elf.go +++ b/src/cmd/link/internal/ld/elf.go @@ -1100,16 +1100,18 @@ func elfshbits(linkmode LinkMode, sect *sym.Section) *ElfShdr { sh.Flags |= uint64(elf.SHF_TLS) sh.Type = uint32(elf.SHT_NOBITS) } + if linkmode != LinkExternal { + sh.Addr = sect.Vaddr + } + if strings.HasPrefix(sect.Name, ".debug") || strings.HasPrefix(sect.Name, ".zdebug") { sh.Flags = 0 + sh.Addr = 0 if sect.Compressed { sh.Flags |= uint64(elf.SHF_COMPRESSED) } } - if linkmode != LinkExternal { - sh.Addr = sect.Vaddr - } sh.Addralign = uint64(sect.Align) sh.Size = sect.Length if sect.Name != ".tbss" { From eee6f9f825596a769ff163e098d2656cbed09d4f Mon Sep 17 00:00:00 2001 From: eric fang Date: Thu, 23 Dec 2021 06:53:50 +0000 Subject: [PATCH 015/125] runtime: unify C->Go ABI transitions on arm64 There are several of places that save and restore the C callee-saved registers, the operation is the same everywhere, so this CL defines several macros to do this, which will help reduce code redundancy and unify the operation. This CL also replaced consecutive MOVD instructions with STP and LDP instructions in several places where these macros do not apply. Change-Id: I815f39fe484a9ab9b6bd157dfcbc8ad99c1420fe Reviewed-on: https://go-review.googlesource.com/c/go/+/374397 Trust: Eric Fang Run-TryBot: Eric Fang TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui --- src/runtime/asm_arm64.s | 178 +++++++++++--------------------- src/runtime/cgo/abi_arm64.h | 43 ++++++++ src/runtime/cgo/asm_arm64.s | 55 ++-------- src/runtime/race_arm64.s | 22 ++-- src/runtime/rt0_darwin_arm64.s | 43 ++------ src/runtime/rt0_freebsd_arm64.s | 41 +------- src/runtime/rt0_linux_arm64.s | 41 +------- src/runtime/rt0_netbsd_arm64.s | 41 +------- src/runtime/rt0_openbsd_arm64.s | 41 +------- src/runtime/sys_darwin_arm64.s | 87 ++-------------- src/runtime/sys_freebsd_arm64.s | 45 ++------ src/runtime/sys_linux_arm64.s | 91 ++-------------- src/runtime/sys_netbsd_arm64.s | 45 ++------ src/runtime/sys_openbsd_arm64.s | 87 ++-------------- src/runtime/sys_windows_arm64.s | 53 +++------- 15 files changed, 205 insertions(+), 708 deletions(-) create mode 100644 src/runtime/cgo/abi_arm64.h diff --git a/src/runtime/asm_arm64.s b/src/runtime/asm_arm64.s index 62deb070aa..9ef7346e00 100644 --- a/src/runtime/asm_arm64.s +++ b/src/runtime/asm_arm64.s @@ -311,74 +311,42 @@ TEXT runtime·morestack_noctxt(SB),NOSPLIT|NOFRAME,$0-0 // spillArgs stores return values from registers to a *internal/abi.RegArgs in R20. TEXT ·spillArgs(SB),NOSPLIT,$0-0 - MOVD R0, (0*8)(R20) - MOVD R1, (1*8)(R20) - MOVD R2, (2*8)(R20) - MOVD R3, (3*8)(R20) - MOVD R4, (4*8)(R20) - MOVD R5, (5*8)(R20) - MOVD R6, (6*8)(R20) - MOVD R7, (7*8)(R20) - MOVD R8, (8*8)(R20) - MOVD R9, (9*8)(R20) - MOVD R10, (10*8)(R20) - MOVD R11, (11*8)(R20) - MOVD R12, (12*8)(R20) - MOVD R13, (13*8)(R20) - MOVD R14, (14*8)(R20) - MOVD R15, (15*8)(R20) - FMOVD F0, (16*8)(R20) - FMOVD F1, (17*8)(R20) - FMOVD F2, (18*8)(R20) - FMOVD F3, (19*8)(R20) - FMOVD F4, (20*8)(R20) - FMOVD F5, (21*8)(R20) - FMOVD F6, (22*8)(R20) - FMOVD F7, (23*8)(R20) - FMOVD F8, (24*8)(R20) - FMOVD F9, (25*8)(R20) - FMOVD F10, (26*8)(R20) - FMOVD F11, (27*8)(R20) - FMOVD F12, (28*8)(R20) - FMOVD F13, (29*8)(R20) - FMOVD F14, (30*8)(R20) - FMOVD F15, (31*8)(R20) + STP (R0, R1), (0*8)(R20) + STP (R2, R3), (2*8)(R20) + STP (R4, R5), (4*8)(R20) + STP (R6, R7), (6*8)(R20) + STP (R8, R9), (8*8)(R20) + STP (R10, R11), (10*8)(R20) + STP (R12, R13), (12*8)(R20) + STP (R14, R15), (14*8)(R20) + FSTPD (F0, F1), (16*8)(R20) + FSTPD (F2, F3), (18*8)(R20) + FSTPD (F4, F5), (20*8)(R20) + FSTPD (F6, F7), (22*8)(R20) + FSTPD (F8, F9), (24*8)(R20) + FSTPD (F10, F11), (26*8)(R20) + FSTPD (F12, F13), (28*8)(R20) + FSTPD (F14, F15), (30*8)(R20) RET // unspillArgs loads args into registers from a *internal/abi.RegArgs in R20. TEXT ·unspillArgs(SB),NOSPLIT,$0-0 - MOVD (0*8)(R20), R0 - MOVD (1*8)(R20), R1 - MOVD (2*8)(R20), R2 - MOVD (3*8)(R20), R3 - MOVD (4*8)(R20), R4 - MOVD (5*8)(R20), R5 - MOVD (6*8)(R20), R6 - MOVD (7*8)(R20), R7 - MOVD (8*8)(R20), R8 - MOVD (9*8)(R20), R9 - MOVD (10*8)(R20), R10 - MOVD (11*8)(R20), R11 - MOVD (12*8)(R20), R12 - MOVD (13*8)(R20), R13 - MOVD (14*8)(R20), R14 - MOVD (15*8)(R20), R15 - FMOVD (16*8)(R20), F0 - FMOVD (17*8)(R20), F1 - FMOVD (18*8)(R20), F2 - FMOVD (19*8)(R20), F3 - FMOVD (20*8)(R20), F4 - FMOVD (21*8)(R20), F5 - FMOVD (22*8)(R20), F6 - FMOVD (23*8)(R20), F7 - FMOVD (24*8)(R20), F8 - FMOVD (25*8)(R20), F9 - FMOVD (26*8)(R20), F10 - FMOVD (27*8)(R20), F11 - FMOVD (28*8)(R20), F12 - FMOVD (29*8)(R20), F13 - FMOVD (30*8)(R20), F14 - FMOVD (31*8)(R20), F15 + LDP (0*8)(R20), (R0, R1) + LDP (2*8)(R20), (R2, R3) + LDP (4*8)(R20), (R4, R5) + LDP (6*8)(R20), (R6, R7) + LDP (8*8)(R20), (R8, R9) + LDP (10*8)(R20), (R10, R11) + LDP (12*8)(R20), (R12, R13) + LDP (14*8)(R20), (R14, R15) + FLDPD (16*8)(R20), (F0, F1) + FLDPD (18*8)(R20), (F2, F3) + FLDPD (20*8)(R20), (F4, F5) + FLDPD (22*8)(R20), (F6, F7) + FLDPD (24*8)(R20), (F8, F9) + FLDPD (26*8)(R20), (F10, F11) + FLDPD (28*8)(R20), (F12, F13) + FLDPD (30*8)(R20), (F14, F15) RET // reflectcall: call a function with the given argument list @@ -480,10 +448,8 @@ TEXT NAME(SB), WRAPPER, $MAXSIZE-48; \ // arguments in registers. TEXT callRet<>(SB), NOSPLIT, $48-0 NO_LOCAL_POINTERS - MOVD R7, 8(RSP) - MOVD R3, 16(RSP) - MOVD R5, 24(RSP) - MOVD R4, 32(RSP) + STP (R7, R3), 8(RSP) + STP (R5, R4), 24(RSP) MOVD R20, 40(RSP) BL runtime·reflectcallmove(SB) RET @@ -1215,8 +1181,7 @@ TEXT ·checkASM(SB),NOSPLIT,$0-1 // calls to it directly and it does not use the stack-based Go ABI. TEXT runtime·gcWriteBarrier(SB),NOSPLIT,$200 // Save the registers clobbered by the fast path. - MOVD R0, 184(RSP) - MOVD R1, 192(RSP) + STP (R0, R1), 184(RSP) MOVD g_m(g), R0 MOVD m_p(R0), R0 MOVD (p_wbBuf+wbBuf_next)(R0), R1 @@ -1232,8 +1197,7 @@ TEXT runtime·gcWriteBarrier(SB),NOSPLIT,$200 // Is the buffer full? (flags set in CMP above) BEQ flush ret: - MOVD 184(RSP), R0 - MOVD 192(RSP), R1 + LDP 184(RSP), (R0, R1) // Do the write. MOVD R3, (R2) RET @@ -1241,32 +1205,20 @@ ret: flush: // Save all general purpose registers since these could be // clobbered by wbBufFlush and were not saved by the caller. - MOVD R2, 8(RSP) // Also first argument to wbBufFlush - MOVD R3, 16(RSP) // Also second argument to wbBufFlush - // R0 already saved - // R1 already saved - MOVD R4, 24(RSP) - MOVD R5, 32(RSP) - MOVD R6, 40(RSP) - MOVD R7, 48(RSP) - MOVD R8, 56(RSP) - MOVD R9, 64(RSP) - MOVD R10, 72(RSP) - MOVD R11, 80(RSP) - MOVD R12, 88(RSP) - MOVD R13, 96(RSP) - MOVD R14, 104(RSP) - MOVD R15, 112(RSP) + // R0 and R1 already saved + STP (R2, R3), 1*8(RSP) // Also first and second arguments to wbBufFlush + STP (R4, R5), 3*8(RSP) + STP (R6, R7), 5*8(RSP) + STP (R8, R9), 7*8(RSP) + STP (R10, R11), 9*8(RSP) + STP (R12, R13), 11*8(RSP) + STP (R14, R15), 13*8(RSP) // R16, R17 may be clobbered by linker trampoline // R18 is unused. - MOVD R19, 120(RSP) - MOVD R20, 128(RSP) - MOVD R21, 136(RSP) - MOVD R22, 144(RSP) - MOVD R23, 152(RSP) - MOVD R24, 160(RSP) - MOVD R25, 168(RSP) - MOVD R26, 176(RSP) + STP (R19, R20), 15*8(RSP) + STP (R21, R22), 17*8(RSP) + STP (R23, R24), 19*8(RSP) + STP (R25, R26), 21*8(RSP) // R27 is temp register. // R28 is g. // R29 is frame pointer (unused). @@ -1275,29 +1227,17 @@ flush: // This takes arguments R2 and R3. CALL runtime·wbBufFlush(SB) - - MOVD 8(RSP), R2 - MOVD 16(RSP), R3 - MOVD 24(RSP), R4 - MOVD 32(RSP), R5 - MOVD 40(RSP), R6 - MOVD 48(RSP), R7 - MOVD 56(RSP), R8 - MOVD 64(RSP), R9 - MOVD 72(RSP), R10 - MOVD 80(RSP), R11 - MOVD 88(RSP), R12 - MOVD 96(RSP), R13 - MOVD 104(RSP), R14 - MOVD 112(RSP), R15 - MOVD 120(RSP), R19 - MOVD 128(RSP), R20 - MOVD 136(RSP), R21 - MOVD 144(RSP), R22 - MOVD 152(RSP), R23 - MOVD 160(RSP), R24 - MOVD 168(RSP), R25 - MOVD 176(RSP), R26 + LDP 1*8(RSP), (R2, R3) + LDP 3*8(RSP), (R4, R5) + LDP 5*8(RSP), (R6, R7) + LDP 7*8(RSP), (R8, R9) + LDP 9*8(RSP), (R10, R11) + LDP 11*8(RSP), (R12, R13) + LDP 13*8(RSP), (R14, R15) + LDP 15*8(RSP), (R19, R20) + LDP 17*8(RSP), (R21, R22) + LDP 19*8(RSP), (R23, R24) + LDP 21*8(RSP), (R25, R26) JMP ret // Note: these functions use a special calling convention to save generated code space. diff --git a/src/runtime/cgo/abi_arm64.h b/src/runtime/cgo/abi_arm64.h new file mode 100644 index 0000000000..e2b5e6d0be --- /dev/null +++ b/src/runtime/cgo/abi_arm64.h @@ -0,0 +1,43 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Macros for transitioning from the host ABI to Go ABI0. +// +// These macros save and restore the callee-saved registers +// from the stack, but they don't adjust stack pointer, so +// the user should prepare stack space in advance. +// SAVE_R19_TO_R28(offset) saves R19 ~ R28 to the stack space +// of ((offset)+0*8)(RSP) ~ ((offset)+9*8)(RSP). +// +// SAVE_F8_TO_F15(offset) saves F8 ~ F15 to the stack space +// of ((offset)+0*8)(RSP) ~ ((offset)+7*8)(RSP). +// +// R29 is not saved because Go will save and restore it. + +#define SAVE_R19_TO_R28(offset) \ + STP (R19, R20), ((offset)+0*8)(RSP) \ + STP (R21, R22), ((offset)+2*8)(RSP) \ + STP (R23, R24), ((offset)+4*8)(RSP) \ + STP (R25, R26), ((offset)+6*8)(RSP) \ + STP (R27, g), ((offset)+8*8)(RSP) + +#define RESTORE_R19_TO_R28(offset) \ + LDP ((offset)+0*8)(RSP), (R19, R20) \ + LDP ((offset)+2*8)(RSP), (R21, R22) \ + LDP ((offset)+4*8)(RSP), (R23, R24) \ + LDP ((offset)+6*8)(RSP), (R25, R26) \ + LDP ((offset)+8*8)(RSP), (R27, g) /* R28 */ + +#define SAVE_F8_TO_F15(offset) \ + FSTPD (F8, F9), ((offset)+0*8)(RSP) \ + FSTPD (F10, F11), ((offset)+2*8)(RSP) \ + FSTPD (F12, F13), ((offset)+4*8)(RSP) \ + FSTPD (F14, F15), ((offset)+6*8)(RSP) + +#define RESTORE_F8_TO_F15(offset) \ + FLDPD ((offset)+0*8)(RSP), (F8, F9) \ + FLDPD ((offset)+2*8)(RSP), (F10, F11) \ + FLDPD ((offset)+4*8)(RSP), (F12, F13) \ + FLDPD ((offset)+6*8)(RSP), (F14, F15) + diff --git a/src/runtime/cgo/asm_arm64.s b/src/runtime/cgo/asm_arm64.s index 1cb25cf89e..e808dedcfc 100644 --- a/src/runtime/cgo/asm_arm64.s +++ b/src/runtime/cgo/asm_arm64.s @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. #include "textflag.h" +#include "abi_arm64.h" // Called by C code generated by cmd/cgo. // func crosscall2(fn, a unsafe.Pointer, n int32, ctxt uintptr) @@ -14,57 +15,23 @@ TEXT crosscall2(SB),NOSPLIT|NOFRAME,$0 * push 3 args for fn (R0, R1, R3), skipping R2. * Also note that at procedure entry in gc world, 8(RSP) will be the * first arg. - * TODO(minux): use LDP/STP here if it matters. */ SUB $(8*24), RSP - MOVD R0, (8*1)(RSP) - MOVD R1, (8*2)(RSP) + STP (R0, R1), (8*1)(RSP) MOVD R3, (8*3)(RSP) - MOVD R19, (8*4)(RSP) - MOVD R20, (8*5)(RSP) - MOVD R21, (8*6)(RSP) - MOVD R22, (8*7)(RSP) - MOVD R23, (8*8)(RSP) - MOVD R24, (8*9)(RSP) - MOVD R25, (8*10)(RSP) - MOVD R26, (8*11)(RSP) - MOVD R27, (8*12)(RSP) - MOVD g, (8*13)(RSP) - MOVD R29, (8*14)(RSP) - MOVD R30, (8*15)(RSP) - FMOVD F8, (8*16)(RSP) - FMOVD F9, (8*17)(RSP) - FMOVD F10, (8*18)(RSP) - FMOVD F11, (8*19)(RSP) - FMOVD F12, (8*20)(RSP) - FMOVD F13, (8*21)(RSP) - FMOVD F14, (8*22)(RSP) - FMOVD F15, (8*23)(RSP) + + SAVE_R19_TO_R28(8*4) + SAVE_F8_TO_F15(8*14) + STP (R29, R30), (8*22)(RSP) + // Initialize Go ABI environment BL runtime·load_g(SB) - BL runtime·cgocallback(SB) - MOVD (8*4)(RSP), R19 - MOVD (8*5)(RSP), R20 - MOVD (8*6)(RSP), R21 - MOVD (8*7)(RSP), R22 - MOVD (8*8)(RSP), R23 - MOVD (8*9)(RSP), R24 - MOVD (8*10)(RSP), R25 - MOVD (8*11)(RSP), R26 - MOVD (8*12)(RSP), R27 - MOVD (8*13)(RSP), g - MOVD (8*14)(RSP), R29 - MOVD (8*15)(RSP), R30 - FMOVD (8*16)(RSP), F8 - FMOVD (8*17)(RSP), F9 - FMOVD (8*18)(RSP), F10 - FMOVD (8*19)(RSP), F11 - FMOVD (8*20)(RSP), F12 - FMOVD (8*21)(RSP), F13 - FMOVD (8*22)(RSP), F14 - FMOVD (8*23)(RSP), F15 + RESTORE_R19_TO_R28(8*4) + RESTORE_F8_TO_F15(8*14) + LDP (8*22)(RSP), (R29, R30) + ADD $(8*24), RSP RET diff --git a/src/runtime/race_arm64.s b/src/runtime/race_arm64.s index 8c0dd25f0b..edbb3b12c7 100644 --- a/src/runtime/race_arm64.s +++ b/src/runtime/race_arm64.s @@ -8,6 +8,7 @@ #include "funcdata.h" #include "textflag.h" #include "tls_arm64.h" +#include "cgo/abi_arm64.h" // The following thunks allow calling the gcc-compiled race runtime directly // from Go code without going all the way through cgo. @@ -450,13 +451,12 @@ TEXT runtime·racecallbackthunk(SB), NOSPLIT|NOFRAME, $0 rest: // Save callee-saved registers (Go code won't respect that). // 8(RSP) and 16(RSP) are for args passed through racecallback - SUB $112, RSP + SUB $176, RSP MOVD LR, 0(RSP) - STP (R19, R20), 24(RSP) - STP (R21, R22), 40(RSP) - STP (R23, R24), 56(RSP) - STP (R25, R26), 72(RSP) - STP (R27, g), 88(RSP) + + SAVE_R19_TO_R28(8*3) + SAVE_F8_TO_F15(8*13) + MOVD R29, (8*21)(RSP) // Set g = g0. // load_g will clobber R0, Save R0 MOVD R0, R13 @@ -479,12 +479,10 @@ rest: ret: // Restore callee-saved registers. MOVD 0(RSP), LR - LDP 24(RSP), (R19, R20) - LDP 40(RSP), (R21, R22) - LDP 56(RSP), (R23, R24) - LDP 72(RSP), (R25, R26) - LDP 88(RSP), (R27, g) - ADD $112, RSP + MOVD (8*21)(RSP), R29 + RESTORE_F8_TO_F15(8*13) + RESTORE_R19_TO_R28(8*3) + ADD $176, RSP JMP (LR) noswitch: diff --git a/src/runtime/rt0_darwin_arm64.s b/src/runtime/rt0_darwin_arm64.s index 0040361215..697104ac64 100644 --- a/src/runtime/rt0_darwin_arm64.s +++ b/src/runtime/rt0_darwin_arm64.s @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. #include "textflag.h" +#include "cgo/abi_arm64.h" TEXT _rt0_arm64_darwin(SB),NOSPLIT|NOFRAME,$0 MOVD $runtime·rt0_go(SB), R2 @@ -18,26 +19,10 @@ exit: // // Note that all currently shipping darwin/arm64 platforms require // cgo and do not support c-shared. -TEXT _rt0_arm64_darwin_lib(SB),NOSPLIT,$168 +TEXT _rt0_arm64_darwin_lib(SB),NOSPLIT,$152 // Preserve callee-save registers. - MOVD R19, 24(RSP) - MOVD R20, 32(RSP) - MOVD R21, 40(RSP) - MOVD R22, 48(RSP) - MOVD R23, 56(RSP) - MOVD R24, 64(RSP) - MOVD R25, 72(RSP) - MOVD R26, 80(RSP) - MOVD R27, 88(RSP) - MOVD g, 96(RSP) - FMOVD F8, 104(RSP) - FMOVD F9, 112(RSP) - FMOVD F10, 120(RSP) - FMOVD F11, 128(RSP) - FMOVD F12, 136(RSP) - FMOVD F13, 144(RSP) - FMOVD F14, 152(RSP) - FMOVD F15, 160(RSP) + SAVE_R19_TO_R28(8) + SAVE_F8_TO_F15(88) MOVD R0, _rt0_arm64_darwin_lib_argc<>(SB) MOVD R1, _rt0_arm64_darwin_lib_argv<>(SB) @@ -57,24 +42,8 @@ TEXT _rt0_arm64_darwin_lib(SB),NOSPLIT,$168 ADD $16, RSP // Restore callee-save registers. - MOVD 24(RSP), R19 - MOVD 32(RSP), R20 - MOVD 40(RSP), R21 - MOVD 48(RSP), R22 - MOVD 56(RSP), R23 - MOVD 64(RSP), R24 - MOVD 72(RSP), R25 - MOVD 80(RSP), R26 - MOVD 88(RSP), R27 - MOVD 96(RSP), g - FMOVD 104(RSP), F8 - FMOVD 112(RSP), F9 - FMOVD 120(RSP), F10 - FMOVD 128(RSP), F11 - FMOVD 136(RSP), F12 - FMOVD 144(RSP), F13 - FMOVD 152(RSP), F14 - FMOVD 160(RSP), F15 + RESTORE_R19_TO_R28(8) + RESTORE_F8_TO_F15(88) RET diff --git a/src/runtime/rt0_freebsd_arm64.s b/src/runtime/rt0_freebsd_arm64.s index a938d98262..e517ae059d 100644 --- a/src/runtime/rt0_freebsd_arm64.s +++ b/src/runtime/rt0_freebsd_arm64.s @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. #include "textflag.h" +#include "cgo/abi_arm64.h" // On FreeBSD argc/argv are passed in R0, not RSP TEXT _rt0_arm64_freebsd(SB),NOSPLIT|NOFRAME,$0 @@ -14,24 +15,8 @@ TEXT _rt0_arm64_freebsd(SB),NOSPLIT|NOFRAME,$0 // library is loaded. TEXT _rt0_arm64_freebsd_lib(SB),NOSPLIT,$184 // Preserve callee-save registers. - MOVD R19, 24(RSP) - MOVD R20, 32(RSP) - MOVD R21, 40(RSP) - MOVD R22, 48(RSP) - MOVD R23, 56(RSP) - MOVD R24, 64(RSP) - MOVD R25, 72(RSP) - MOVD R26, 80(RSP) - MOVD R27, 88(RSP) - FMOVD F8, 96(RSP) - FMOVD F9, 104(RSP) - FMOVD F10, 112(RSP) - FMOVD F11, 120(RSP) - FMOVD F12, 128(RSP) - FMOVD F13, 136(RSP) - FMOVD F14, 144(RSP) - FMOVD F15, 152(RSP) - MOVD g, 160(RSP) + SAVE_R19_TO_R28(24) + SAVE_F8_TO_F15(104) // Initialize g as null in case of using g later e.g. sigaction in cgo_sigaction.go MOVD ZR, g @@ -63,24 +48,8 @@ nocgo: restore: // Restore callee-save registers. - MOVD 24(RSP), R19 - MOVD 32(RSP), R20 - MOVD 40(RSP), R21 - MOVD 48(RSP), R22 - MOVD 56(RSP), R23 - MOVD 64(RSP), R24 - MOVD 72(RSP), R25 - MOVD 80(RSP), R26 - MOVD 88(RSP), R27 - FMOVD 96(RSP), F8 - FMOVD 104(RSP), F9 - FMOVD 112(RSP), F10 - FMOVD 120(RSP), F11 - FMOVD 128(RSP), F12 - FMOVD 136(RSP), F13 - FMOVD 144(RSP), F14 - FMOVD 152(RSP), F15 - MOVD 160(RSP), g + RESTORE_R19_TO_R28(24) + RESTORE_F8_TO_F15(104) RET TEXT _rt0_arm64_freebsd_lib_go(SB),NOSPLIT,$0 diff --git a/src/runtime/rt0_linux_arm64.s b/src/runtime/rt0_linux_arm64.s index f48a8d6190..0eb8fc2f48 100644 --- a/src/runtime/rt0_linux_arm64.s +++ b/src/runtime/rt0_linux_arm64.s @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. #include "textflag.h" +#include "cgo/abi_arm64.h" TEXT _rt0_arm64_linux(SB),NOSPLIT|NOFRAME,$0 MOVD 0(RSP), R0 // argc @@ -13,24 +14,8 @@ TEXT _rt0_arm64_linux(SB),NOSPLIT|NOFRAME,$0 // library is loaded. TEXT _rt0_arm64_linux_lib(SB),NOSPLIT,$184 // Preserve callee-save registers. - MOVD R19, 24(RSP) - MOVD R20, 32(RSP) - MOVD R21, 40(RSP) - MOVD R22, 48(RSP) - MOVD R23, 56(RSP) - MOVD R24, 64(RSP) - MOVD R25, 72(RSP) - MOVD R26, 80(RSP) - MOVD R27, 88(RSP) - FMOVD F8, 96(RSP) - FMOVD F9, 104(RSP) - FMOVD F10, 112(RSP) - FMOVD F11, 120(RSP) - FMOVD F12, 128(RSP) - FMOVD F13, 136(RSP) - FMOVD F14, 144(RSP) - FMOVD F15, 152(RSP) - MOVD g, 160(RSP) + SAVE_R19_TO_R28(24) + SAVE_F8_TO_F15(104) // Initialize g as null in case of using g later e.g. sigaction in cgo_sigaction.go MOVD ZR, g @@ -62,24 +47,8 @@ nocgo: restore: // Restore callee-save registers. - MOVD 24(RSP), R19 - MOVD 32(RSP), R20 - MOVD 40(RSP), R21 - MOVD 48(RSP), R22 - MOVD 56(RSP), R23 - MOVD 64(RSP), R24 - MOVD 72(RSP), R25 - MOVD 80(RSP), R26 - MOVD 88(RSP), R27 - FMOVD 96(RSP), F8 - FMOVD 104(RSP), F9 - FMOVD 112(RSP), F10 - FMOVD 120(RSP), F11 - FMOVD 128(RSP), F12 - FMOVD 136(RSP), F13 - FMOVD 144(RSP), F14 - FMOVD 152(RSP), F15 - MOVD 160(RSP), g + RESTORE_R19_TO_R28(24) + RESTORE_F8_TO_F15(104) RET TEXT _rt0_arm64_linux_lib_go(SB),NOSPLIT,$0 diff --git a/src/runtime/rt0_netbsd_arm64.s b/src/runtime/rt0_netbsd_arm64.s index 2f3b5a5a87..691a8e4be7 100644 --- a/src/runtime/rt0_netbsd_arm64.s +++ b/src/runtime/rt0_netbsd_arm64.s @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. #include "textflag.h" +#include "cgo/abi_arm64.h" TEXT _rt0_arm64_netbsd(SB),NOSPLIT|NOFRAME,$0 MOVD 0(RSP), R0 // argc @@ -13,24 +14,8 @@ TEXT _rt0_arm64_netbsd(SB),NOSPLIT|NOFRAME,$0 // library is loaded. TEXT _rt0_arm64_netbsd_lib(SB),NOSPLIT,$184 // Preserve callee-save registers. - MOVD R19, 24(RSP) - MOVD R20, 32(RSP) - MOVD R21, 40(RSP) - MOVD R22, 48(RSP) - MOVD R23, 56(RSP) - MOVD R24, 64(RSP) - MOVD R25, 72(RSP) - MOVD R26, 80(RSP) - MOVD R27, 88(RSP) - FMOVD F8, 96(RSP) - FMOVD F9, 104(RSP) - FMOVD F10, 112(RSP) - FMOVD F11, 120(RSP) - FMOVD F12, 128(RSP) - FMOVD F13, 136(RSP) - FMOVD F14, 144(RSP) - FMOVD F15, 152(RSP) - MOVD g, 160(RSP) + SAVE_R19_TO_R28(24) + SAVE_F8_TO_F15(104) // Initialize g as null in case of using g later e.g. sigaction in cgo_sigaction.go MOVD ZR, g @@ -62,24 +47,8 @@ nocgo: restore: // Restore callee-save registers. - MOVD 24(RSP), R19 - MOVD 32(RSP), R20 - MOVD 40(RSP), R21 - MOVD 48(RSP), R22 - MOVD 56(RSP), R23 - MOVD 64(RSP), R24 - MOVD 72(RSP), R25 - MOVD 80(RSP), R26 - MOVD 88(RSP), R27 - FMOVD 96(RSP), F8 - FMOVD 104(RSP), F9 - FMOVD 112(RSP), F10 - FMOVD 120(RSP), F11 - FMOVD 128(RSP), F12 - FMOVD 136(RSP), F13 - FMOVD 144(RSP), F14 - FMOVD 152(RSP), F15 - MOVD 160(RSP), g + RESTORE_R19_TO_R28(24) + RESTORE_F8_TO_F15(104) RET TEXT _rt0_arm64_netbsd_lib_go(SB),NOSPLIT,$0 diff --git a/src/runtime/rt0_openbsd_arm64.s b/src/runtime/rt0_openbsd_arm64.s index 722fab6129..49d49b34ac 100644 --- a/src/runtime/rt0_openbsd_arm64.s +++ b/src/runtime/rt0_openbsd_arm64.s @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. #include "textflag.h" +#include "cgo/abi_arm64.h" // See comment in runtime/sys_openbsd_arm64.s re this construction. #define INVOKE_SYSCALL \ @@ -19,24 +20,8 @@ TEXT _rt0_arm64_openbsd(SB),NOSPLIT|NOFRAME,$0 // library is loaded. TEXT _rt0_arm64_openbsd_lib(SB),NOSPLIT,$184 // Preserve callee-save registers. - MOVD R19, 24(RSP) - MOVD R20, 32(RSP) - MOVD R21, 40(RSP) - MOVD R22, 48(RSP) - MOVD R23, 56(RSP) - MOVD R24, 64(RSP) - MOVD R25, 72(RSP) - MOVD R26, 80(RSP) - MOVD R27, 88(RSP) - FMOVD F8, 96(RSP) - FMOVD F9, 104(RSP) - FMOVD F10, 112(RSP) - FMOVD F11, 120(RSP) - FMOVD F12, 128(RSP) - FMOVD F13, 136(RSP) - FMOVD F14, 144(RSP) - FMOVD F15, 152(RSP) - MOVD g, 160(RSP) + SAVE_R19_TO_R28(24) + SAVE_F8_TO_F15(104) // Initialize g as null in case of using g later e.g. sigaction in cgo_sigaction.go MOVD ZR, g @@ -68,24 +53,8 @@ nocgo: restore: // Restore callee-save registers. - MOVD 24(RSP), R19 - MOVD 32(RSP), R20 - MOVD 40(RSP), R21 - MOVD 48(RSP), R22 - MOVD 56(RSP), R23 - MOVD 64(RSP), R24 - MOVD 72(RSP), R25 - MOVD 80(RSP), R26 - MOVD 88(RSP), R27 - FMOVD 96(RSP), F8 - FMOVD 104(RSP), F9 - FMOVD 112(RSP), F10 - FMOVD 120(RSP), F11 - FMOVD 128(RSP), F12 - FMOVD 136(RSP), F13 - FMOVD 144(RSP), F14 - FMOVD 152(RSP), F15 - MOVD 160(RSP), g + RESTORE_R19_TO_R28(24) + RESTORE_F8_TO_F15(104) RET TEXT _rt0_arm64_openbsd_lib_go(SB),NOSPLIT,$0 diff --git a/src/runtime/sys_darwin_arm64.s b/src/runtime/sys_darwin_arm64.s index e57ac53e10..dc7c9bffa8 100644 --- a/src/runtime/sys_darwin_arm64.s +++ b/src/runtime/sys_darwin_arm64.s @@ -9,6 +9,7 @@ #include "go_asm.h" #include "go_tls.h" #include "textflag.h" +#include "cgo/abi_arm64.h" #define CLOCK_REALTIME 0 @@ -175,28 +176,11 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 BL (R11) RET -TEXT runtime·sigtramp(SB),NOSPLIT,$192 +TEXT runtime·sigtramp(SB),NOSPLIT,$176 // Save callee-save registers in the case of signal forwarding. // Please refer to https://golang.org/issue/31827 . - MOVD R19, 8*4(RSP) - MOVD R20, 8*5(RSP) - MOVD R21, 8*6(RSP) - MOVD R22, 8*7(RSP) - MOVD R23, 8*8(RSP) - MOVD R24, 8*9(RSP) - MOVD R25, 8*10(RSP) - MOVD R26, 8*11(RSP) - MOVD R27, 8*12(RSP) - MOVD g, 8*13(RSP) - MOVD R29, 8*14(RSP) - FMOVD F8, 8*15(RSP) - FMOVD F9, 8*16(RSP) - FMOVD F10, 8*17(RSP) - FMOVD F11, 8*18(RSP) - FMOVD F12, 8*19(RSP) - FMOVD F13, 8*20(RSP) - FMOVD F14, 8*21(RSP) - FMOVD F15, 8*22(RSP) + SAVE_R19_TO_R28(8*4) + SAVE_F8_TO_F15(8*14) // Save arguments. MOVW R0, (8*1)(RSP) // sig @@ -249,25 +233,8 @@ nog: #endif // Restore callee-save registers. - MOVD (8*4)(RSP), R19 - MOVD (8*5)(RSP), R20 - MOVD (8*6)(RSP), R21 - MOVD (8*7)(RSP), R22 - MOVD (8*8)(RSP), R23 - MOVD (8*9)(RSP), R24 - MOVD (8*10)(RSP), R25 - MOVD (8*11)(RSP), R26 - MOVD (8*12)(RSP), R27 - MOVD (8*13)(RSP), g - MOVD (8*14)(RSP), R29 - FMOVD (8*15)(RSP), F8 - FMOVD (8*16)(RSP), F9 - FMOVD (8*17)(RSP), F10 - FMOVD (8*18)(RSP), F11 - FMOVD (8*19)(RSP), F12 - FMOVD (8*20)(RSP), F13 - FMOVD (8*21)(RSP), F14 - FMOVD (8*22)(RSP), F15 + RESTORE_R19_TO_R28(8*4) + RESTORE_F8_TO_F15(8*14) RET @@ -376,25 +343,8 @@ TEXT runtime·mstart_stub(SB),NOSPLIT,$160 // We are already on m's g0 stack. // Save callee-save registers. - MOVD R19, 8(RSP) - MOVD R20, 16(RSP) - MOVD R21, 24(RSP) - MOVD R22, 32(RSP) - MOVD R23, 40(RSP) - MOVD R24, 48(RSP) - MOVD R25, 56(RSP) - MOVD R26, 64(RSP) - MOVD R27, 72(RSP) - MOVD g, 80(RSP) - MOVD R29, 88(RSP) - FMOVD F8, 96(RSP) - FMOVD F9, 104(RSP) - FMOVD F10, 112(RSP) - FMOVD F11, 120(RSP) - FMOVD F12, 128(RSP) - FMOVD F13, 136(RSP) - FMOVD F14, 144(RSP) - FMOVD F15, 152(RSP) + SAVE_R19_TO_R28(8) + SAVE_F8_TO_F15(88) MOVD m_g0(R0), g BL ·save_g(SB) @@ -402,25 +352,8 @@ TEXT runtime·mstart_stub(SB),NOSPLIT,$160 BL runtime·mstart(SB) // Restore callee-save registers. - MOVD 8(RSP), R19 - MOVD 16(RSP), R20 - MOVD 24(RSP), R21 - MOVD 32(RSP), R22 - MOVD 40(RSP), R23 - MOVD 48(RSP), R24 - MOVD 56(RSP), R25 - MOVD 64(RSP), R26 - MOVD 72(RSP), R27 - MOVD 80(RSP), g - MOVD 88(RSP), R29 - FMOVD 96(RSP), F8 - FMOVD 104(RSP), F9 - FMOVD 112(RSP), F10 - FMOVD 120(RSP), F11 - FMOVD 128(RSP), F12 - FMOVD 136(RSP), F13 - FMOVD 144(RSP), F14 - FMOVD 152(RSP), F15 + RESTORE_R19_TO_R28(8) + RESTORE_F8_TO_F15(88) // Go is all done with this OS thread. // Tell pthread everything is ok (we never join with this thread, so diff --git a/src/runtime/sys_freebsd_arm64.s b/src/runtime/sys_freebsd_arm64.s index 59adf4e5f3..7b05fb0900 100644 --- a/src/runtime/sys_freebsd_arm64.s +++ b/src/runtime/sys_freebsd_arm64.s @@ -10,6 +10,7 @@ #include "go_asm.h" #include "go_tls.h" #include "textflag.h" +#include "cgo/abi_arm64.h" #define CLOCK_REALTIME 0 #define CLOCK_MONOTONIC 4 @@ -279,28 +280,11 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 RET // func sigtramp() -TEXT runtime·sigtramp(SB),NOSPLIT,$192 +TEXT runtime·sigtramp(SB),NOSPLIT,$176 // Save callee-save registers in the case of signal forwarding. // Please refer to https://golang.org/issue/31827 . - MOVD R19, 8*4(RSP) - MOVD R20, 8*5(RSP) - MOVD R21, 8*6(RSP) - MOVD R22, 8*7(RSP) - MOVD R23, 8*8(RSP) - MOVD R24, 8*9(RSP) - MOVD R25, 8*10(RSP) - MOVD R26, 8*11(RSP) - MOVD R27, 8*12(RSP) - MOVD g, 8*13(RSP) - MOVD R29, 8*14(RSP) - FMOVD F8, 8*15(RSP) - FMOVD F9, 8*16(RSP) - FMOVD F10, 8*17(RSP) - FMOVD F11, 8*18(RSP) - FMOVD F12, 8*19(RSP) - FMOVD F13, 8*20(RSP) - FMOVD F14, 8*21(RSP) - FMOVD F15, 8*22(RSP) + SAVE_R19_TO_R28(8*4) + SAVE_F8_TO_F15(8*14) // this might be called in external code context, // where g is not set. @@ -317,25 +301,8 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$192 BL (R0) // Restore callee-save registers. - MOVD 8*4(RSP), R19 - MOVD 8*5(RSP), R20 - MOVD 8*6(RSP), R21 - MOVD 8*7(RSP), R22 - MOVD 8*8(RSP), R23 - MOVD 8*9(RSP), R24 - MOVD 8*10(RSP), R25 - MOVD 8*11(RSP), R26 - MOVD 8*12(RSP), R27 - MOVD 8*13(RSP), g - MOVD 8*14(RSP), R29 - FMOVD 8*15(RSP), F8 - FMOVD 8*16(RSP), F9 - FMOVD 8*17(RSP), F10 - FMOVD 8*18(RSP), F11 - FMOVD 8*19(RSP), F12 - FMOVD 8*20(RSP), F13 - FMOVD 8*21(RSP), F14 - FMOVD 8*22(RSP), F15 + RESTORE_R19_TO_R28(8*4) + RESTORE_F8_TO_F15(8*14) RET diff --git a/src/runtime/sys_linux_arm64.s b/src/runtime/sys_linux_arm64.s index ca362ed552..36ac014f03 100644 --- a/src/runtime/sys_linux_arm64.s +++ b/src/runtime/sys_linux_arm64.s @@ -9,6 +9,7 @@ #include "go_asm.h" #include "go_tls.h" #include "textflag.h" +#include "cgo/abi_arm64.h" #define AT_FDCWD -100 @@ -444,28 +445,11 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 RET // Called from c-abi, R0: sig, R1: info, R2: cxt -TEXT runtime·sigtramp(SB),NOSPLIT,$192 +TEXT runtime·sigtramp(SB),NOSPLIT,$176 // Save callee-save registers in the case of signal forwarding. // Please refer to https://golang.org/issue/31827 . - MOVD R19, 8*4(RSP) - MOVD R20, 8*5(RSP) - MOVD R21, 8*6(RSP) - MOVD R22, 8*7(RSP) - MOVD R23, 8*8(RSP) - MOVD R24, 8*9(RSP) - MOVD R25, 8*10(RSP) - MOVD R26, 8*11(RSP) - MOVD R27, 8*12(RSP) - MOVD g, 8*13(RSP) - MOVD R29, 8*14(RSP) - FMOVD F8, 8*15(RSP) - FMOVD F9, 8*16(RSP) - FMOVD F10, 8*17(RSP) - FMOVD F11, 8*18(RSP) - FMOVD F12, 8*19(RSP) - FMOVD F13, 8*20(RSP) - FMOVD F14, 8*21(RSP) - FMOVD F15, 8*22(RSP) + SAVE_R19_TO_R28(8*4) + SAVE_F8_TO_F15(8*14) // this might be called in external code context, // where g is not set. @@ -481,52 +465,16 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$192 BL (R0) // Restore callee-save registers. - MOVD 8*4(RSP), R19 - MOVD 8*5(RSP), R20 - MOVD 8*6(RSP), R21 - MOVD 8*7(RSP), R22 - MOVD 8*8(RSP), R23 - MOVD 8*9(RSP), R24 - MOVD 8*10(RSP), R25 - MOVD 8*11(RSP), R26 - MOVD 8*12(RSP), R27 - MOVD 8*13(RSP), g - MOVD 8*14(RSP), R29 - FMOVD 8*15(RSP), F8 - FMOVD 8*16(RSP), F9 - FMOVD 8*17(RSP), F10 - FMOVD 8*18(RSP), F11 - FMOVD 8*19(RSP), F12 - FMOVD 8*20(RSP), F13 - FMOVD 8*21(RSP), F14 - FMOVD 8*22(RSP), F15 + RESTORE_R19_TO_R28(8*4) + RESTORE_F8_TO_F15(8*14) RET // Called from c-abi, R0: sig, R1: info, R2: cxt -TEXT runtime·sigprofNonGoWrapper<>(SB),NOSPLIT,$192 - // TODO(eric): In multiple places we need to save and restore the - // callee-saved registers, we can define a macro for this. +TEXT runtime·sigprofNonGoWrapper<>(SB),NOSPLIT,$176 // Save callee-save registers because it's a callback from c code. - MOVD R19, 8*4(RSP) - MOVD R20, 8*5(RSP) - MOVD R21, 8*6(RSP) - MOVD R22, 8*7(RSP) - MOVD R23, 8*8(RSP) - MOVD R24, 8*9(RSP) - MOVD R25, 8*10(RSP) - MOVD R26, 8*11(RSP) - MOVD R27, 8*12(RSP) - MOVD g, 8*13(RSP) - MOVD R29, 8*14(RSP) - FMOVD F8, 8*15(RSP) - FMOVD F9, 8*16(RSP) - FMOVD F10, 8*17(RSP) - FMOVD F11, 8*18(RSP) - FMOVD F12, 8*19(RSP) - FMOVD F13, 8*20(RSP) - FMOVD F14, 8*21(RSP) - FMOVD F15, 8*22(RSP) + SAVE_R19_TO_R28(8*4) + SAVE_F8_TO_F15(8*14) MOVW R0, 8(RSP) // sig MOVD R1, 16(RSP) // info @@ -534,25 +482,8 @@ TEXT runtime·sigprofNonGoWrapper<>(SB),NOSPLIT,$192 CALL runtime·sigprofNonGo(SB) // Restore callee-save registers. - MOVD 8*4(RSP), R19 - MOVD 8*5(RSP), R20 - MOVD 8*6(RSP), R21 - MOVD 8*7(RSP), R22 - MOVD 8*8(RSP), R23 - MOVD 8*9(RSP), R24 - MOVD 8*10(RSP), R25 - MOVD 8*11(RSP), R26 - MOVD 8*12(RSP), R27 - MOVD 8*13(RSP), g - MOVD 8*14(RSP), R29 - FMOVD 8*15(RSP), F8 - FMOVD 8*16(RSP), F9 - FMOVD 8*17(RSP), F10 - FMOVD 8*18(RSP), F11 - FMOVD 8*19(RSP), F12 - FMOVD 8*20(RSP), F13 - FMOVD 8*21(RSP), F14 - FMOVD 8*22(RSP), F15 + RESTORE_R19_TO_R28(8*4) + RESTORE_F8_TO_F15(8*14) RET // Called from c-abi, R0: sig, R1: info, R2: cxt diff --git a/src/runtime/sys_netbsd_arm64.s b/src/runtime/sys_netbsd_arm64.s index f7cce57c2d..32e6740c52 100644 --- a/src/runtime/sys_netbsd_arm64.s +++ b/src/runtime/sys_netbsd_arm64.s @@ -9,6 +9,7 @@ #include "go_asm.h" #include "go_tls.h" #include "textflag.h" +#include "cgo/abi_arm64.h" #define CLOCK_REALTIME 0 #define CLOCK_MONOTONIC 3 @@ -294,34 +295,17 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 BL (R11) RET -TEXT runtime·sigtramp(SB),NOSPLIT,$192 +TEXT runtime·sigtramp(SB),NOSPLIT,$176 // Save callee-save registers in the case of signal forwarding. // Please refer to https://golang.org/issue/31827 . - MOVD R19, 8*4(RSP) - MOVD R20, 8*5(RSP) - MOVD R21, 8*6(RSP) - MOVD R22, 8*7(RSP) - MOVD R23, 8*8(RSP) - MOVD R24, 8*9(RSP) - MOVD R25, 8*10(RSP) - MOVD R26, 8*11(RSP) - MOVD R27, 8*12(RSP) - MOVD g, 8*13(RSP) + SAVE_R19_TO_R28(8*4) + SAVE_F8_TO_F15(8*14) // Unclobber g for now (kernel uses it as ucontext ptr) // See https://github.com/golang/go/issues/30824#issuecomment-492772426 // This is only correct in the non-cgo case. // XXX should use lwp_getprivate as suggested. // 8*36 is ucontext.uc_mcontext.__gregs[_REG_X28] MOVD 8*36(g), g - MOVD R29, 8*14(RSP) - FMOVD F8, 8*15(RSP) - FMOVD F9, 8*16(RSP) - FMOVD F10, 8*17(RSP) - FMOVD F11, 8*18(RSP) - FMOVD F12, 8*19(RSP) - FMOVD F13, 8*20(RSP) - FMOVD F14, 8*21(RSP) - FMOVD F15, 8*22(RSP) // this might be called in external code context, // where g is not set. @@ -338,25 +322,8 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$192 BL runtime·sigtrampgo(SB) // Restore callee-save registers. - MOVD 8*4(RSP), R19 - MOVD 8*5(RSP), R20 - MOVD 8*6(RSP), R21 - MOVD 8*7(RSP), R22 - MOVD 8*8(RSP), R23 - MOVD 8*9(RSP), R24 - MOVD 8*10(RSP), R25 - MOVD 8*11(RSP), R26 - MOVD 8*12(RSP), R27 - MOVD 8*13(RSP), g - MOVD 8*14(RSP), R29 - FMOVD 8*15(RSP), F8 - FMOVD 8*16(RSP), F9 - FMOVD 8*17(RSP), F10 - FMOVD 8*18(RSP), F11 - FMOVD 8*19(RSP), F12 - FMOVD 8*20(RSP), F13 - FMOVD 8*21(RSP), F14 - FMOVD 8*22(RSP), F15 + RESTORE_R19_TO_R28(8*4) + RESTORE_F8_TO_F15(8*14) RET diff --git a/src/runtime/sys_openbsd_arm64.s b/src/runtime/sys_openbsd_arm64.s index 3fa7e1ede2..7c1886e0a0 100644 --- a/src/runtime/sys_openbsd_arm64.s +++ b/src/runtime/sys_openbsd_arm64.s @@ -11,6 +11,7 @@ #include "go_asm.h" #include "go_tls.h" #include "textflag.h" +#include "cgo/abi_arm64.h" #define CLOCK_REALTIME $0 #define CLOCK_MONOTONIC $3 @@ -18,30 +19,13 @@ // mstart_stub is the first function executed on a new thread started by pthread_create. // It just does some low-level setup and then calls mstart. // Note: called with the C calling convention. -TEXT runtime·mstart_stub(SB),NOSPLIT,$160 +TEXT runtime·mstart_stub(SB),NOSPLIT,$144 // R0 points to the m. // We are already on m's g0 stack. // Save callee-save registers. - MOVD R19, 8(RSP) - MOVD R20, 16(RSP) - MOVD R21, 24(RSP) - MOVD R22, 32(RSP) - MOVD R23, 40(RSP) - MOVD R24, 48(RSP) - MOVD R25, 56(RSP) - MOVD R26, 64(RSP) - MOVD R27, 72(RSP) - MOVD g, 80(RSP) - MOVD R29, 88(RSP) - FMOVD F8, 96(RSP) - FMOVD F9, 104(RSP) - FMOVD F10, 112(RSP) - FMOVD F11, 120(RSP) - FMOVD F12, 128(RSP) - FMOVD F13, 136(RSP) - FMOVD F14, 144(RSP) - FMOVD F15, 152(RSP) + SAVE_R19_TO_R28(8) + SAVE_F8_TO_F15(88) MOVD m_g0(R0), g BL runtime·save_g(SB) @@ -49,25 +33,8 @@ TEXT runtime·mstart_stub(SB),NOSPLIT,$160 BL runtime·mstart(SB) // Restore callee-save registers. - MOVD 8(RSP), R19 - MOVD 16(RSP), R20 - MOVD 24(RSP), R21 - MOVD 32(RSP), R22 - MOVD 40(RSP), R23 - MOVD 48(RSP), R24 - MOVD 56(RSP), R25 - MOVD 64(RSP), R26 - MOVD 72(RSP), R27 - MOVD 80(RSP), g - MOVD 88(RSP), R29 - FMOVD 96(RSP), F8 - FMOVD 104(RSP), F9 - FMOVD 112(RSP), F10 - FMOVD 120(RSP), F11 - FMOVD 128(RSP), F12 - FMOVD 136(RSP), F13 - FMOVD 144(RSP), F14 - FMOVD 152(RSP), F15 + RESTORE_R19_TO_R28(8) + RESTORE_F8_TO_F15(88) // Go is all done with this OS thread. // Tell pthread everything is ok (we never join with this thread, so @@ -87,25 +54,8 @@ TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 TEXT runtime·sigtramp(SB),NOSPLIT,$192 // Save callee-save registers in the case of signal forwarding. // Please refer to https://golang.org/issue/31827 . - MOVD R19, 8*4(RSP) - MOVD R20, 8*5(RSP) - MOVD R21, 8*6(RSP) - MOVD R22, 8*7(RSP) - MOVD R23, 8*8(RSP) - MOVD R24, 8*9(RSP) - MOVD R25, 8*10(RSP) - MOVD R26, 8*11(RSP) - MOVD R27, 8*12(RSP) - MOVD g, 8*13(RSP) - MOVD R29, 8*14(RSP) - FMOVD F8, 8*15(RSP) - FMOVD F9, 8*16(RSP) - FMOVD F10, 8*17(RSP) - FMOVD F11, 8*18(RSP) - FMOVD F12, 8*19(RSP) - FMOVD F13, 8*20(RSP) - FMOVD F14, 8*21(RSP) - FMOVD F15, 8*22(RSP) + SAVE_R19_TO_R28(8*4) + SAVE_F8_TO_F15(8*14) // If called from an external code context, g will not be set. // Save R0, since runtime·load_g will clobber it. @@ -117,25 +67,8 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$192 BL runtime·sigtrampgo(SB) // Restore callee-save registers. - MOVD 8*4(RSP), R19 - MOVD 8*5(RSP), R20 - MOVD 8*6(RSP), R21 - MOVD 8*7(RSP), R22 - MOVD 8*8(RSP), R23 - MOVD 8*9(RSP), R24 - MOVD 8*10(RSP), R25 - MOVD 8*11(RSP), R26 - MOVD 8*12(RSP), R27 - MOVD 8*13(RSP), g - MOVD 8*14(RSP), R29 - FMOVD 8*15(RSP), F8 - FMOVD 8*16(RSP), F9 - FMOVD 8*17(RSP), F10 - FMOVD 8*18(RSP), F11 - FMOVD 8*19(RSP), F12 - FMOVD 8*20(RSP), F13 - FMOVD 8*21(RSP), F14 - FMOVD 8*22(RSP), F15 + RESTORE_R19_TO_R28(8*4) + RESTORE_F8_TO_F15(8*14) RET diff --git a/src/runtime/sys_windows_arm64.s b/src/runtime/sys_windows_arm64.s index 87f8f0d218..7b1514f552 100644 --- a/src/runtime/sys_windows_arm64.s +++ b/src/runtime/sys_windows_arm64.s @@ -7,6 +7,7 @@ #include "textflag.h" #include "funcdata.h" #include "time_windows.h" +#include "cgo/abi_arm64.h" // Offsets into Thread Environment Block (pointer in R18) #define TEB_error 0x68 @@ -128,30 +129,6 @@ TEXT runtime·getlasterror(SB),NOSPLIT|NOFRAME,$0 MOVD R0, ret+0(FP) RET -#define SAVE_R19_TO_R28(offset) \ - MOVD R19, savedR19+((offset)+0*8)(SP); \ - MOVD R20, savedR20+((offset)+1*8)(SP); \ - MOVD R21, savedR21+((offset)+2*8)(SP); \ - MOVD R22, savedR22+((offset)+3*8)(SP); \ - MOVD R23, savedR23+((offset)+4*8)(SP); \ - MOVD R24, savedR24+((offset)+5*8)(SP); \ - MOVD R25, savedR25+((offset)+6*8)(SP); \ - MOVD R26, savedR26+((offset)+7*8)(SP); \ - MOVD R27, savedR27+((offset)+8*8)(SP); \ - MOVD g, savedR28+((offset)+9*8)(SP); - -#define RESTORE_R19_TO_R28(offset) \ - MOVD savedR19+((offset)+0*8)(SP), R19; \ - MOVD savedR20+((offset)+1*8)(SP), R20; \ - MOVD savedR21+((offset)+2*8)(SP), R21; \ - MOVD savedR22+((offset)+3*8)(SP), R22; \ - MOVD savedR23+((offset)+4*8)(SP), R23; \ - MOVD savedR24+((offset)+5*8)(SP), R24; \ - MOVD savedR25+((offset)+6*8)(SP), R25; \ - MOVD savedR26+((offset)+7*8)(SP), R26; \ - MOVD savedR27+((offset)+8*8)(SP), R27; \ - MOVD savedR28+((offset)+9*8)(SP), g; /* R28 */ - // Called by Windows as a Vectored Exception Handler (VEH). // First argument is pointer to struct containing // exception record and context pointers. @@ -221,7 +198,8 @@ TEXT sigtramp_g0<>(SB),NOSPLIT,$128 NO_LOCAL_POINTERS // Push C callee-save registers R19-R28. LR, FP already saved. - SAVE_R19_TO_R28(-10*8) + // These registers will occupy the upper 10 words of the frame. + SAVE_R19_TO_R28(8*7) MOVD 0(R0), R5 // R5 = ExceptionPointers->ExceptionRecord MOVD 8(R0), R6 // R6 = ExceptionPointers->ContextRecord @@ -275,7 +253,7 @@ TEXT sigtramp_g0<>(SB),NOSPLIT,$128 MOVD R2, context_pc(R6) return: - RESTORE_R19_TO_R28(-10*8) // smashes g + RESTORE_R19_TO_R28(8*7) // smashes g RET // Trampoline to resume execution from exception handler. @@ -317,18 +295,14 @@ TEXT runtime·callbackasm1(SB),NOSPLIT,$208-0 // but we are not called from Go so that space is ours to use, // and we must to be contiguous with the stack arguments. MOVD $arg0-(7*8)(SP), R14 - MOVD R0, (0*8)(R14) - MOVD R1, (1*8)(R14) - MOVD R2, (2*8)(R14) - MOVD R3, (3*8)(R14) - MOVD R4, (4*8)(R14) - MOVD R5, (5*8)(R14) - MOVD R6, (6*8)(R14) - MOVD R7, (7*8)(R14) + STP (R0, R1), (0*8)(R14) + STP (R2, R3), (2*8)(R14) + STP (R4, R5), (4*8)(R14) + STP (R6, R7), (6*8)(R14) // Push C callee-save registers R19-R28. // LR, FP already saved. - SAVE_R19_TO_R28(-18*8) + SAVE_R19_TO_R28(8*9) // Create a struct callbackArgs on our stack. MOVD $cbargs-(18*8+callbackArgs__size)(SP), R13 @@ -342,8 +316,7 @@ TEXT runtime·callbackasm1(SB),NOSPLIT,$208-0 MOVD $·callbackWrap(SB), R0 // PC of function to call, cgocallback takes an ABIInternal entry-point MOVD R13, R1 // frame (&callbackArgs{...}) MOVD $0, R2 // context - MOVD R0, (1*8)(RSP) - MOVD R1, (2*8)(RSP) + STP (R0, R1), (1*8)(RSP) MOVD R2, (3*8)(RSP) BL runtime·cgocallback(SB) @@ -351,13 +324,13 @@ TEXT runtime·callbackasm1(SB),NOSPLIT,$208-0 MOVD $cbargs-(18*8+callbackArgs__size)(SP), R13 MOVD callbackArgs_result(R13), R0 - RESTORE_R19_TO_R28(-18*8) + RESTORE_R19_TO_R28(8*9) RET // uint32 tstart_stdcall(M *newm); TEXT runtime·tstart_stdcall(SB),NOSPLIT,$96-0 - SAVE_R19_TO_R28(-10*8) + SAVE_R19_TO_R28(8*3) MOVD m_g0(R0), g MOVD R0, g_m(g) @@ -374,7 +347,7 @@ TEXT runtime·tstart_stdcall(SB),NOSPLIT,$96-0 BL runtime·emptyfunc(SB) // fault if stack check is wrong BL runtime·mstart(SB) - RESTORE_R19_TO_R28(-10*8) + RESTORE_R19_TO_R28(8*3) // Exit the thread. MOVD $0, R0 From d1060d8e82a320725e961f2648e62034d7f768e4 Mon Sep 17 00:00:00 2001 From: Nigel Tao Date: Fri, 25 Mar 2022 10:33:21 +1100 Subject: [PATCH 016/125] compress/zlib: tighten header CINFO check RFC 1950 section 2.2 "Data format" says "CINFO (Compression info)... For CM = 8... Values of CINFO above 7 are not allowed". Change-Id: Ibbc1213125c7dc045f09901ee7746660e90b5fcd Reviewed-on: https://go-review.googlesource.com/c/go/+/395734 Reviewed-by: Matthew Dempsky Trust: Nigel Tao --- src/compress/zlib/reader.go | 7 +++++-- src/compress/zlib/reader_test.go | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/compress/zlib/reader.go b/src/compress/zlib/reader.go index a195b380d8..343a18bf68 100644 --- a/src/compress/zlib/reader.go +++ b/src/compress/zlib/reader.go @@ -32,7 +32,10 @@ import ( "io" ) -const zlibDeflate = 8 +const ( + zlibDeflate = 8 + zlibMaxWindow = 7 +) var ( // ErrChecksum is returned when reading ZLIB data that has an invalid checksum. @@ -143,7 +146,7 @@ func (z *reader) Reset(r io.Reader, dict []byte) error { return z.err } h := uint(z.scratch[0])<<8 | uint(z.scratch[1]) - if (z.scratch[0]&0x0f != zlibDeflate) || (h%31 != 0) { + if (z.scratch[0]&0x0f != zlibDeflate) || (z.scratch[0]>>4 > zlibMaxWindow) || (h%31 != 0) { z.err = ErrHeader return z.err } diff --git a/src/compress/zlib/reader_test.go b/src/compress/zlib/reader_test.go index 70e33babd1..20cec696ee 100644 --- a/src/compress/zlib/reader_test.go +++ b/src/compress/zlib/reader_test.go @@ -65,7 +65,14 @@ var zlibTests = []zlibTest{ nil, }, { - "bad header", + "bad header (CINFO)", + "", + []byte{0x88, 0x98, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01}, + nil, + ErrHeader, + }, + { + "bad header (FCHECK)", "", []byte{0x78, 0x9f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01}, nil, From f5a42cd4b482a595a710129a25ffb5facc655569 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Wed, 30 Mar 2022 09:10:06 +0700 Subject: [PATCH 017/125] cmd/compile/internal/typecheck: simplify checkassign After CL 281543, checkassign do not have to check assignment in range loop anymore, thus its first parameter is un-used. Change-Id: Idbc46fcb81c3dd5edc87308d228c1a15ca5faf7e Reviewed-on: https://go-review.googlesource.com/c/go/+/396615 Trust: Cuong Manh Le Run-TryBot: Cuong Manh Le TryBot-Result: Gopher Robot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/typecheck/stmt.go | 4 ++-- src/cmd/compile/internal/typecheck/typecheck.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cmd/compile/internal/typecheck/stmt.go b/src/cmd/compile/internal/typecheck/stmt.go index 16e24a0491..60bac77d19 100644 --- a/src/cmd/compile/internal/typecheck/stmt.go +++ b/src/cmd/compile/internal/typecheck/stmt.go @@ -78,7 +78,7 @@ func typecheckrangeExpr(n *ir.RangeStmt) { base.ErrorfAt(n.Pos(), "cannot assign type %v to %L in range%s", t, nn, why) } } - checkassign(n, nn) + checkassign(nn) } } do(n.Key, tk) @@ -137,7 +137,7 @@ func assign(stmt ir.Node, lhs, rhs []ir.Node) { if lhs[i].Typecheck() == 0 { lhs[i] = AssignExpr(lhs[i]) } - checkassign(stmt, lhs[i]) + checkassign(lhs[i]) } assignType := func(i int, typ *types.Type) { diff --git a/src/cmd/compile/internal/typecheck/typecheck.go b/src/cmd/compile/internal/typecheck/typecheck.go index b5108eab84..85de653a82 100644 --- a/src/cmd/compile/internal/typecheck/typecheck.go +++ b/src/cmd/compile/internal/typecheck/typecheck.go @@ -488,7 +488,7 @@ func typecheck1(n ir.Node, top int) ir.Node { case ir.OASOP: n := n.(*ir.AssignOpStmt) n.X, n.Y = Expr(n.X), Expr(n.Y) - checkassign(n, n.X) + checkassign(n.X) if n.IncDec && !okforarith[n.X.Type().Kind()] { base.Errorf("invalid operation: %v (non-numeric type %v)", n, n.X.Type()) return n @@ -1562,7 +1562,7 @@ func checklvalue(n ir.Node, verb string) { } } -func checkassign(stmt ir.Node, n ir.Node) { +func checkassign(n ir.Node) { // have already complained about n being invalid if n.Type() == nil { if base.Errors() == 0 { From 2d34af0fd6c6cb214c3a5a8f11ef95854667dd92 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Wed, 30 Mar 2022 08:55:22 +0700 Subject: [PATCH 018/125] cmd/compile/internal/walk: fix wrong soleComponent implementation CL 367755 added soleComponent for handling 1-byte type interface conversion. This implementation must be kept in sync with Type.SoleComponent, but it does not. When seeing a blank field in struct, we must continue looking at the field type to find sole component, if any. The current code just terminate immediately, which causes wrong sole component type returned. Fixes #52020 Change-Id: I4f506fe094fa7c5532de23467a4f9139476bb0a4 Reviewed-on: https://go-review.googlesource.com/c/go/+/396614 Trust: Cuong Manh Le Run-TryBot: Cuong Manh Le TryBot-Result: Gopher Robot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/walk/convert.go | 2 +- test/fixedbugs/issue52020.go | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 test/fixedbugs/issue52020.go diff --git a/src/cmd/compile/internal/walk/convert.go b/src/cmd/compile/internal/walk/convert.go index 6edff4fbba..72631e7dfb 100644 --- a/src/cmd/compile/internal/walk/convert.go +++ b/src/cmd/compile/internal/walk/convert.go @@ -411,7 +411,7 @@ func soleComponent(init *ir.Nodes, n ir.Node) ir.Node { // Treat blank fields as the zero value as the Go language requires. n = typecheck.Temp(n.Type().Field(0).Type) appendWalkStmt(init, ir.NewAssignStmt(base.Pos, n, nil)) - return n + continue } n = typecheck.Expr(ir.NewSelectorExpr(n.Pos(), ir.OXDOT, n, n.Type().Field(0).Sym)) case n.Type().IsArray(): diff --git a/test/fixedbugs/issue52020.go b/test/fixedbugs/issue52020.go new file mode 100644 index 0000000000..0d18b1f7ae --- /dev/null +++ b/test/fixedbugs/issue52020.go @@ -0,0 +1,11 @@ +// compile + +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +func main() { + var _ interface{} = struct{ _ [1]int8 }{} +} From 83327b4ae41cf1ef17fb4df4dc395cf17efc6375 Mon Sep 17 00:00:00 2001 From: Robert Findley Date: Tue, 29 Mar 2022 18:30:06 -0400 Subject: [PATCH 019/125] go/types: clarify that contexts do not guarantee deduplication Documentation around the use of types.Context is unclear about whether contexts guarantee deduplication of identical instances. Add explicit disclaimers that this is not the case. Fixes golang/go#51680 Change-Id: I6651587315d3cbf9e8d70a69d3e2ec5cedd00da5 Reviewed-on: https://go-review.googlesource.com/c/go/+/396536 Trust: Robert Findley Run-TryBot: Robert Findley TryBot-Result: Gopher Robot Reviewed-by: Robert Griesemer --- src/cmd/compile/internal/types2/context.go | 7 ++++--- src/cmd/compile/internal/types2/instantiate.go | 3 ++- src/go/types/context.go | 7 ++++--- src/go/types/instantiate.go | 3 ++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/cmd/compile/internal/types2/context.go b/src/cmd/compile/internal/types2/context.go index 7abea6b654..2d790fe5dd 100644 --- a/src/cmd/compile/internal/types2/context.go +++ b/src/cmd/compile/internal/types2/context.go @@ -12,11 +12,12 @@ import ( "sync" ) -// An Context is an opaque type checking context. It may be used to share +// A Context is an opaque type checking context. It may be used to share // identical type instances across type-checked packages or calls to -// Instantiate. +// Instantiate. Contexts are safe for concurrent use. // -// It is safe for concurrent use. +// The use of a shared context does not guarantee that identical instances are +// deduplicated in all cases. type Context struct { mu sync.Mutex typeMap map[string][]ctxtEntry // type hash -> instances entries diff --git a/src/cmd/compile/internal/types2/instantiate.go b/src/cmd/compile/internal/types2/instantiate.go index a511538ccc..a69a26ba64 100644 --- a/src/cmd/compile/internal/types2/instantiate.go +++ b/src/cmd/compile/internal/types2/instantiate.go @@ -24,7 +24,8 @@ import ( // previous instances with the same identity. As a special case, generic // *Signature origin types are only considered identical if they are pointer // equivalent, so that instantiating distinct (but possibly identical) -// signatures will yield different instances. +// signatures will yield different instances. The use of a shared context does +// not guarantee that identical instances are deduplicated in all cases. // // If validate is set, Instantiate verifies that the number of type arguments // and parameters match, and that the type arguments satisfy their diff --git a/src/go/types/context.go b/src/go/types/context.go index ff4bf89f3c..692b3a6682 100644 --- a/src/go/types/context.go +++ b/src/go/types/context.go @@ -12,11 +12,12 @@ import ( "sync" ) -// An Context is an opaque type checking context. It may be used to share +// A Context is an opaque type checking context. It may be used to share // identical type instances across type-checked packages or calls to -// Instantiate. +// Instantiate. Contexts are safe for concurrent use. // -// It is safe for concurrent use. +// The use of a shared context does not guarantee that identical instances are +// deduplicated in all cases. type Context struct { mu sync.Mutex typeMap map[string][]ctxtEntry // type hash -> instances entries diff --git a/src/go/types/instantiate.go b/src/go/types/instantiate.go index d7045ff23c..4450847dfd 100644 --- a/src/go/types/instantiate.go +++ b/src/go/types/instantiate.go @@ -24,7 +24,8 @@ import ( // previous instances with the same identity. As a special case, generic // *Signature origin types are only considered identical if they are pointer // equivalent, so that instantiating distinct (but possibly identical) -// signatures will yield different instances. +// signatures will yield different instances. The use of a shared context does +// not guarantee that identical instances are deduplicated in all cases. // // If validate is set, Instantiate verifies that the number of type arguments // and parameters match, and that the type arguments satisfy their From c05c0ca8cfba2c9b78e92e71907c3a1ee344aa23 Mon Sep 17 00:00:00 2001 From: Robert Findley Date: Wed, 30 Mar 2022 11:57:48 -0400 Subject: [PATCH 020/125] go/types, types2: add commentary on (non-)guarantees when using contexts Change-Id: I29347e340725fa2892eb115b530de82969835412 Reviewed-on: https://go-review.googlesource.com/c/go/+/396776 Trust: Robert Findley Run-TryBot: Robert Findley Reviewed-by: Robert Griesemer TryBot-Result: Gopher Robot --- src/cmd/compile/internal/types2/context.go | 20 ++++++++++++++++++++ src/go/types/context.go | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/src/cmd/compile/internal/types2/context.go b/src/cmd/compile/internal/types2/context.go index 2d790fe5dd..ae39c7b830 100644 --- a/src/cmd/compile/internal/types2/context.go +++ b/src/cmd/compile/internal/types2/context.go @@ -12,6 +12,26 @@ import ( "sync" ) +// This file contains a definition of the type-checking context; an opaque type +// that may be supplied by users during instantiation. +// +// Contexts serve two purposes: +// - reduce the duplication of identical instances +// - short-circuit instantiation cycles +// +// For the latter purpose, we must always have a context during instantiation, +// whether or not it is supplied by the user. For both purposes, it must be the +// case that hashing a pointer-identical type produces consistent results +// (somewhat obviously). +// +// However, neither of these purposes require that our hash is perfect, and so +// this was not an explicit design goal of the context type. In fact, due to +// concurrent use it is convenient not to guarantee de-duplication. +// +// Nevertheless, in the future it could be helpful to allow users to leverage +// contexts to canonicalize instances, and it would probably be possible to +// achieve such a guarantee. + // A Context is an opaque type checking context. It may be used to share // identical type instances across type-checked packages or calls to // Instantiate. Contexts are safe for concurrent use. diff --git a/src/go/types/context.go b/src/go/types/context.go index 692b3a6682..15756b062d 100644 --- a/src/go/types/context.go +++ b/src/go/types/context.go @@ -12,6 +12,26 @@ import ( "sync" ) +// This file contains a definition of the type-checking context; an opaque type +// that may be supplied by users during instantiation. +// +// Contexts serve two purposes: +// - reduce the duplication of identical instances +// - short-circuit instantiation cycles +// +// For the latter purpose, we must always have a context during instantiation, +// whether or not it is supplied by the user. For both purposes, it must be the +// case that hashing a pointer-identical type produces consistent results +// (somewhat obviously). +// +// However, neither of these purposes require that our hash is perfect, and so +// this was not an explicit design goal of the context type. In fact, due to +// concurrent use it is convenient not to guarantee de-duplication. +// +// Nevertheless, in the future it could be helpful to allow users to leverage +// contexts to canonicalize instances, and it would probably be possible to +// achieve such a guarantee. + // A Context is an opaque type checking context. It may be used to share // identical type instances across type-checked packages or calls to // Instantiate. Contexts are safe for concurrent use. From 717056da1a0086c5d1d1b27231a385f77ebc61d7 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 29 Mar 2022 16:58:49 -0700 Subject: [PATCH 021/125] cmd/compile/internal/syntax: use .go suffix for test files (cleanup) - Use .go suffix for test files as go fmt doesn't descend into testdata directories. - Move test files from testdata/go2 into testdata directory. - Delete some test files that contained type-checker ERROR markers that were ignored by the TestParseGo2 test but would be considered by the TestSyntaxErrors test if the files were moved unchanged into the testdata directory. - Remove one (type checker) ERROR marker in testdata/slices.go to make it pass the syntax error tests. - Delete TestParseGo2 test. There's enough coverage with the existing TestSyntaxErrors test. - Add missing copyright notice to testdata/chans.go and gofmt the file. Change-Id: I449913fe1bd2119987ba33f7152e5e4ba5f3fe31 Reviewed-on: https://go-review.googlesource.com/c/go/+/396518 Trust: Robert Griesemer Reviewed-by: Ian Lance Taylor --- src/cmd/compile/internal/syntax/error_test.go | 2 +- .../compile/internal/syntax/parser_test.go | 14 - .../testdata/{go2/chans.go2 => chans.go} | 8 +- .../internal/syntax/testdata/go2/typeinst.go2 | 60 --- .../syntax/testdata/go2/typeinst2.go2 | 232 --------- .../syntax/testdata/go2/typeparams.go2 | 451 ------------------ .../testdata/{interface.go2 => interface.go} | 0 .../{issue20789.src => issue20789.go} | 0 .../{issue23385.src => issue23385.go} | 0 .../{issue23434.src => issue23434.go} | 0 .../{issue31092.src => issue31092.go} | 0 .../{issue43527.go2 => issue43527.go} | 0 .../{issue43674.src => issue43674.go} | 0 .../{issue46558.src => issue46558.go} | 0 .../{issue47704.go2 => issue47704.go} | 0 .../{issue47704.src => issue47704.go117} | 0 .../{issue48382.go2 => issue48382.go} | 0 .../{issue49482.go2 => issue49482.go} | 0 .../testdata/{go2/linalg.go2 => linalg.go} | 0 .../syntax/testdata/{go2/map.go2 => map.go} | 3 +- .../syntax/testdata/{go2/map2.go2 => map2.go} | 0 .../syntax/testdata/{sample.src => sample.go} | 0 .../testdata/{go2/slices.go2 => slices.go} | 2 +- .../{go2/smoketest.go2 => smoketest.go} | 6 - .../testdata/{tparams.go2 => tparams.go} | 0 .../testdata/{typeset.go2 => typeset.go} | 0 26 files changed, 9 insertions(+), 769 deletions(-) rename src/cmd/compile/internal/syntax/testdata/{go2/chans.go2 => chans.go} (89%) delete mode 100644 src/cmd/compile/internal/syntax/testdata/go2/typeinst.go2 delete mode 100644 src/cmd/compile/internal/syntax/testdata/go2/typeinst2.go2 delete mode 100644 src/cmd/compile/internal/syntax/testdata/go2/typeparams.go2 rename src/cmd/compile/internal/syntax/testdata/{interface.go2 => interface.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue20789.src => issue20789.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue23385.src => issue23385.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue23434.src => issue23434.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue31092.src => issue31092.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue43527.go2 => issue43527.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue43674.src => issue43674.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue46558.src => issue46558.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue47704.go2 => issue47704.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue47704.src => issue47704.go117} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue48382.go2 => issue48382.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{issue49482.go2 => issue49482.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{go2/linalg.go2 => linalg.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{go2/map.go2 => map.go} (97%) rename src/cmd/compile/internal/syntax/testdata/{go2/map2.go2 => map2.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{sample.src => sample.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{go2/slices.go2 => slices.go} (94%) rename src/cmd/compile/internal/syntax/testdata/{go2/smoketest.go2 => smoketest.go} (92%) rename src/cmd/compile/internal/syntax/testdata/{tparams.go2 => tparams.go} (100%) rename src/cmd/compile/internal/syntax/testdata/{typeset.go2 => typeset.go} (100%) diff --git a/src/cmd/compile/internal/syntax/error_test.go b/src/cmd/compile/internal/syntax/error_test.go index d87e8eaee3..0900bec6ec 100644 --- a/src/cmd/compile/internal/syntax/error_test.go +++ b/src/cmd/compile/internal/syntax/error_test.go @@ -129,7 +129,7 @@ func testSyntaxErrors(t *testing.T, filename string) { defer f.Close() var mode Mode - if strings.HasSuffix(filename, ".go2") { + if !strings.HasSuffix(filename, ".go117") { mode = AllowGenerics } ParseFile(filename, func(err error) { diff --git a/src/cmd/compile/internal/syntax/parser_test.go b/src/cmd/compile/internal/syntax/parser_test.go index 66690a527a..ddddedc5ec 100644 --- a/src/cmd/compile/internal/syntax/parser_test.go +++ b/src/cmd/compile/internal/syntax/parser_test.go @@ -38,20 +38,6 @@ func TestVerify(t *testing.T) { verifyPrint(t, *src_, ast) } -func TestParseGo2(t *testing.T) { - dir := filepath.Join(testdata, "go2") - list, err := ioutil.ReadDir(dir) - if err != nil { - t.Fatal(err) - } - for _, fi := range list { - name := fi.Name() - if !fi.IsDir() && !strings.HasPrefix(name, ".") { - ParseFile(filepath.Join(dir, name), func(err error) { t.Error(err) }, nil, AllowGenerics|AllowMethodTypeParams) - } - } -} - func TestStdLib(t *testing.T) { if testing.Short() { t.Skip("skipping test in short mode") diff --git a/src/cmd/compile/internal/syntax/testdata/go2/chans.go2 b/src/cmd/compile/internal/syntax/testdata/chans.go similarity index 89% rename from src/cmd/compile/internal/syntax/testdata/go2/chans.go2 rename to src/cmd/compile/internal/syntax/testdata/chans.go index fad2bcec9d..d4c4207a4c 100644 --- a/src/cmd/compile/internal/syntax/testdata/go2/chans.go2 +++ b/src/cmd/compile/internal/syntax/testdata/chans.go @@ -1,3 +1,7 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + package chans import "runtime" @@ -22,7 +26,7 @@ func Ranger[T any]() (*Sender[T], *Receiver[T]) { // A sender is used to send values to a Receiver. type Sender[T any] struct { values chan<- T - done <-chan bool + done <-chan bool } // Send sends a value to the receiver. It returns whether any more @@ -45,7 +49,7 @@ func (s *Sender[T]) Close() { // A Receiver receives values from a Sender. type Receiver[T any] struct { values <-chan T - done chan<- bool + done chan<- bool } // Next returns the next value from the channel. The bool result diff --git a/src/cmd/compile/internal/syntax/testdata/go2/typeinst.go2 b/src/cmd/compile/internal/syntax/testdata/go2/typeinst.go2 deleted file mode 100644 index a422d5e568..0000000000 --- a/src/cmd/compile/internal/syntax/testdata/go2/typeinst.go2 +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package p - -type myInt int - -// Parameterized type declarations - -type T1[P any] P - -type T2[P any] struct { - f P - g int // int should still be in scope chain -} - -type List[P any] []P - -// Alias type declarations cannot have type parameters. Syntax error. -// TODO(gri) Disabled for now as we don't check syntax error here. -// type A1[P any] = /* ERROR cannot be alias */ P - -// But an alias may refer to a generic, uninstantiated type. -type A2 = List -var _ A2[int] -var _ A2 /* ERROR without instantiation */ - -type A3 = List[int] -var _ A3 - -// Parameterized type instantiations - -var x int -type _ x /* ERROR not a type */ [int] - -type _ int /* ERROR not a generic type */ [int] -type _ myInt /* ERROR not a generic type */ [int] - -// TODO(gri) better error messages -type _ T1[int] -type _ T1[x /* ERROR not a type */ ] -type _ T1 /* ERROR got 2 arguments but 1 type parameters */ [int, float32] - -var _ T2[int] = T2[int]{} - -var _ List[int] = []int{1, 2, 3} -var _ List[[]int] = [][]int{{1, 2, 3}} -var _ List[List[List[int]]] - -// Parameterized types containing parameterized types - -type T3[P any] List[P] - -var _ T3[int] = T3[int](List[int]{1, 2, 3}) - -// Self-recursive generic types are not permitted - -type self1[P any] self1 /* ERROR illegal cycle */ [P] -type self2[P any] *self2[P] // this is ok diff --git a/src/cmd/compile/internal/syntax/testdata/go2/typeinst2.go2 b/src/cmd/compile/internal/syntax/testdata/go2/typeinst2.go2 deleted file mode 100644 index 76b8d5591f..0000000000 --- a/src/cmd/compile/internal/syntax/testdata/go2/typeinst2.go2 +++ /dev/null @@ -1,232 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package p - -type List[E any] []E -var _ List[List[List[int]]] -var _ List[List[List[int]]] = []List[List[int]]{} - -type ( - T1[P1 any] struct { - f1 T2[P1, float32] - } - - T2[P2, P3 any] struct { - f2 P2 - f3 P3 - } -) - -func _() { - var x1 T1[int] - var x2 T2[int, float32] - - x1.f1.f2 = 0 - x1.f1 = x2 -} - -type T3[P any] T1[T2[P, P]] - -func _() { - var x1 T3[int] - var x2 T2[int, int] - x1.f1.f2 = x2 -} - -func f[P any] (x P) List[P] { - return List[P]{x} -} - -var ( - _ []int = f(0) - _ []float32 = f[float32](10) - _ List[complex128] = f(1i) - _ []List[int] = f(List[int]{}) - _ List[List[int]] = []List[int]{} - _ = []List[int]{} -) - -// Parameterized types with methods - -func (l List[E]) Head() (_ E, _ bool) { - if len(l) > 0 { - return l[0], true - } - return -} - -// A test case for instantiating types with other types (extracted from map.go2) - -type Pair[K any] struct { - key K -} - -type Receiver[T any] struct { - values T -} - -type Iterator[K any] struct { - r Receiver[Pair[K]] -} - -func Values [T any] (r Receiver[T]) T { - return r.values -} - -func (it Iterator[K]) Next() K { - return Values[Pair[K]](it.r).key -} - -// A more complex test case testing type bounds (extracted from linalg.go2 and reduced to essence) - -type NumericAbs[T any] interface { - Abs() T -} - -func AbsDifference[T NumericAbs[T]](x T) - -type OrderedAbs[T any] T - -func (a OrderedAbs[T]) Abs() OrderedAbs[T] - -func OrderedAbsDifference[T any](x T) { - AbsDifference(OrderedAbs[T](x)) -} - -// same code, reduced to essence - -func g[P interface{ m() P }](x P) - -type T4[P any] P - -func (_ T4[P]) m() T4[P] - -func _[Q any](x Q) { - g(T4[Q](x)) -} - -// Another test case that caused problems in the past - -type T5[_ interface { a() }, _ interface{}] struct{} - -type A[P any] struct{ x P } - -func (_ A[P]) a() {} - -var _ T5[A[int], int] - -// Invoking methods with parameterized receiver types uses -// type inference to determine the actual type arguments matching -// the receiver type parameters from the actual receiver argument. -// Go does implicit address-taking and dereferenciation depending -// on the actual receiver and the method's receiver type. To make -// type inference work, the type-checker matches "pointer-ness" -// of the actual receiver and the method's receiver type. -// The following code tests this mechanism. - -type R1[A any] struct{} -func (_ R1[A]) vm() -func (_ *R1[A]) pm() - -func _[T any](r R1[T], p *R1[T]) { - r.vm() - r.pm() - p.vm() - p.pm() -} - -type R2[A, B any] struct{} -func (_ R2[A, B]) vm() -func (_ *R2[A, B]) pm() - -func _[T any](r R2[T, int], p *R2[string, T]) { - r.vm() - r.pm() - p.vm() - p.pm() -} - -// Interface type constraints can contain any type, incl. *Named types. -// Verify that we use the underlying type to compute the operational type. -type MyInt int -func add1[T interface{ ~MyInt }](x T) T { - return x + 1 -} - -type MyString string -func double[T interface{ ~MyInt | ~MyString }](x T) T { - return x + x -} - -// Embedding of interfaces with type constraints leads to interfaces -// with type constraints that are the intersection of the embedded -// type constraints. - -type E0 interface { - ~int | ~bool | ~string -} - -type E1 interface { - ~int | ~float64 | ~string -} - -type E2 interface { - ~float64 -} - -type I0 interface { - E0 -} - -func f0[T I0]() -var _ = f0[int] -var _ = f0[bool] -var _ = f0[string] -var _ = f0[float64 /* ERROR does not satisfy I0 */ ] - -type I01 interface { - E0 - E1 -} - -func f01[T I01]() -var _ = f01[int] -var _ = f01[bool /* ERROR does not satisfy I0 */ ] -var _ = f01[string] -var _ = f01[float64 /* ERROR does not satisfy I0 */ ] - -type I012 interface { - E0 - E1 - E2 -} - -func f012[T I012]() -var _ = f012[int /* ERROR does not satisfy I012 */ ] -var _ = f012[bool /* ERROR does not satisfy I012 */ ] -var _ = f012[string /* ERROR does not satisfy I012 */ ] -var _ = f012[float64 /* ERROR does not satisfy I012 */ ] - -type I12 interface { - E1 - E2 -} - -func f12[T I12]() -var _ = f12[int /* ERROR does not satisfy I12 */ ] -var _ = f12[bool /* ERROR does not satisfy I12 */ ] -var _ = f12[string /* ERROR does not satisfy I12 */ ] -var _ = f12[float64] - -type I0_ interface { - E0 - ~int -} - -func f0_[T I0_]() -var _ = f0_[int] -var _ = f0_[bool /* ERROR does not satisfy I0_ */ ] -var _ = f0_[string /* ERROR does not satisfy I0_ */ ] -var _ = f0_[float64 /* ERROR does not satisfy I0_ */ ] diff --git a/src/cmd/compile/internal/syntax/testdata/go2/typeparams.go2 b/src/cmd/compile/internal/syntax/testdata/go2/typeparams.go2 deleted file mode 100644 index 111f7c1004..0000000000 --- a/src/cmd/compile/internal/syntax/testdata/go2/typeparams.go2 +++ /dev/null @@ -1,451 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package p - -// import "io" // for type assertion tests - -// The predeclared identifier "any" is only visible as a constraint -// in a type parameter list. -var _ any // ERROR undeclared -func _[_ any /* ok here */ , _ interface{any /* ERROR undeclared */ }](any /* ERROR undeclared */ ) { - var _ any /* ERROR undeclared */ -} - -func identity[T any](x T) T { return x } - -func _[_ any](x int) int -func _[T any](T /* ERROR redeclared */ T)() -func _[T, T /* ERROR redeclared */ any]() - -func reverse[T any](list []T) []T { - rlist := make([]T, len(list)) - i := len(list) - for _, x := range list { - i-- - rlist[i] = x - } - return rlist -} - -var _ = reverse /* ERROR cannot use generic function reverse */ -var _ = reverse[int, float32 /* ERROR got 2 type arguments */ ] ([]int{1, 2, 3}) -var _ = reverse[int]([ /* ERROR cannot use */ ]float32{1, 2, 3}) -var f = reverse[chan int] -var _ = f(0 /* ERROR cannot convert 0 .* to \[\]chan int */ ) - -func swap[A, B any](a A, b B) (B, A) { return b, a } - -var _ = swap /* ERROR single value is expected */ [int, float32](1, 2) -var f32, i = swap[int, float32](swap(float32, int)(1, 2)) -var _ float32 = f32 -var _ int = i - -func swapswap[A, B any](a A, b B) (A, B) { - return swap[B, A](b, a) -} - -type F[A, B any] func(A, B) (B, A) - -func min[T interface{ ~int }](x, y T) T { - if x < y { - return x - } - return y -} - -func _[T interface{ ~int | ~float32 }](x, y T) bool { return x < y } -func _[T any](x, y T) bool { return x /* ERROR cannot compare */ < y } -func _[T interface{ ~int | ~float32 | ~bool }](x, y T) bool { return x /* ERROR cannot compare */ < y } - -func _[T C1[T]](x, y T) bool { return x /* ERROR cannot compare */ < y } -func _[T C2[T]](x, y T) bool { return x < y } - -type C1[T any] interface{} -type C2[T any] interface{ ~int | ~float32 } - -func new[T any]() *T { - var x T - return &x -} - -var _ = new /* ERROR cannot use generic function new */ -var _ *int = new[int]() - -func _[T any](map[T /* ERROR invalid map key type T \(missing comparable constraint\) */]int) // w/o constraint we don't know if T is comparable - -func f1[T1 any](struct{T1}) int -var _ = f1(int)(struct{T1}{}) -type T1 = int - -func f2[t1 any](struct{t1; x float32}) int -var _ = f2(t1)(struct{t1; x float32}{}) -type t1 = int - - -func f3[A, B, C any](A, struct{x B}, func(A, struct{x B}, *C)) int - -var _ = f3[int, rune, bool](1, struct{x rune}{}, nil) - -// indexing - -func _[T any] (x T, i int) { _ = x /* ERROR "cannot index" */ [i] } -func _[T interface{ ~int }] (x T, i int) { _ = x /* ERROR "cannot index" */ [i] } -func _[T interface{ ~string }] (x T, i int) { _ = x[i] } -func _[T interface{ ~[]int }] (x T, i int) { _ = x[i] } -func _[T interface{ ~[10]int | ~*[20]int | ~map[string]int }] (x T, i int) { _ = x[i] } -func _[T interface{ ~string | ~[]byte }] (x T, i int) { _ = x[i] } -func _[T interface{ ~[]int | ~[1]rune }] (x T, i int) { _ = x /* ERROR "cannot index" */ [i] } -func _[T interface{ ~string | ~[]rune }] (x T, i int) { _ = x /* ERROR "cannot index" */ [i] } - -// slicing -// TODO(gri) implement this - -func _[T interface{ ~string }] (x T, i, j, k int) { _ = x /* ERROR invalid operation */ [i:j:k] } - -// len/cap built-ins - -func _[T any](x T) { _ = len(x /* ERROR invalid argument */ ) } -func _[T interface{ ~int }](x T) { _ = len(x /* ERROR invalid argument */ ) } -func _[T interface{ ~string | ~[]byte | ~int }](x T) { _ = len(x /* ERROR invalid argument */ ) } -func _[T interface{ ~string }](x T) { _ = len(x) } -func _[T interface{ ~[10]int }](x T) { _ = len(x) } -func _[T interface{ ~[]byte }](x T) { _ = len(x) } -func _[T interface{ ~map[int]int }](x T) { _ = len(x) } -func _[T interface{ ~chan int }](x T) { _ = len(x) } -func _[T interface{ ~string | ~[]byte | ~chan int }](x T) { _ = len(x) } - -func _[T any](x T) { _ = cap(x /* ERROR invalid argument */ ) } -func _[T interface{ ~int }](x T) { _ = cap(x /* ERROR invalid argument */ ) } -func _[T interface{ ~string | ~[]byte | ~int }](x T) { _ = cap(x /* ERROR invalid argument */ ) } -func _[T interface{ ~string }](x T) { _ = cap(x /* ERROR invalid argument */ ) } -func _[T interface{ ~[10]int }](x T) { _ = cap(x) } -func _[T interface{ ~[]byte }](x T) { _ = cap(x) } -func _[T interface{ ~map[int]int }](x T) { _ = cap(x /* ERROR invalid argument */ ) } -func _[T interface{ ~chan int }](x T) { _ = cap(x) } -func _[T interface{ ~[]byte | ~chan int }](x T) { _ = cap(x) } - -// range iteration - -func _[T interface{}](x T) { - for range x /* ERROR cannot range */ {} -} - -func _[T interface{ ~string | ~[]string }](x T) { - for range x {} - for i := range x { _ = i } - for i, _ := range x { _ = i } - for i, e := range x /* ERROR must have the same element type */ { _ = i } - for _, e := range x /* ERROR must have the same element type */ {} - var e rune - _ = e - for _, (e) = range x /* ERROR must have the same element type */ {} -} - - -func _[T interface{ ~string | ~[]rune | ~map[int]rune }](x T) { - for _, e := range x { _ = e } - for i, e := range x { _ = i; _ = e } -} - -func _[T interface{ ~string | ~[]rune | ~map[string]rune }](x T) { - for _, e := range x { _ = e } - for i, e := range x /* ERROR must have the same key type */ { _ = e } -} - -func _[T interface{ ~string | ~chan int }](x T) { - for range x {} - for i := range x { _ = i } - for i, _ := range x { _ = i } // TODO(gri) should get an error here: channels only return one value -} - -func _[T interface{ ~string | ~chan<-int }](x T) { - for i := range x /* ERROR send-only channel */ { _ = i } -} - -// type inference checks - -var _ = new() /* ERROR cannot infer T */ - -func f4[A, B, C any](A, B) C - -var _ = f4(1, 2) /* ERROR cannot infer C */ -var _ = f4[int, float32, complex128](1, 2) - -func f5[A, B, C any](A, []*B, struct{f []C}) int - -var _ = f5[int, float32, complex128](0, nil, struct{f []complex128}{}) -var _ = f5(0, nil, struct{f []complex128}{}) // ERROR cannot infer -var _ = f5(0, []*float32{new[float32]()}, struct{f []complex128}{}) - -func f6[A any](A, []A) int - -var _ = f6(0, nil) - -func f6nil[A any](A) int - -var _ = f6nil(nil) // ERROR cannot infer - -// type inference with variadic functions - -func f7[T any](...T) T - -var _ int = f7() /* ERROR cannot infer T */ -var _ int = f7(1) -var _ int = f7(1, 2) -var _ int = f7([]int{}...) -var _ int = f7 /* ERROR cannot use */ ([]float64{}...) -var _ float64 = f7([]float64{}...) -var _ = f7[float64](1, 2.3) -var _ = f7(float64(1), 2.3) -var _ = f7(1, 2.3 /* ERROR does not match */ ) -var _ = f7(1.2, 3 /* ERROR does not match */ ) - -func f8[A, B any](A, B, ...B) int - -var _ = f8(1) /* ERROR not enough arguments */ -var _ = f8(1, 2.3) -var _ = f8(1, 2.3, 3.4, 4.5) -var _ = f8(1, 2.3, 3.4, 4 /* ERROR does not match */ ) -var _ = f8(int, float64)(1, 2.3, 3.4, 4) - -var _ = f8(int, float64)(0, 0, nil...) // test case for #18268 - -// init functions cannot have type parameters - -func init() {} -func init[/* ERROR func init must have no type parameters */ _ any]() {} -func init[/* ERROR func init must have no type parameters */ P any]() {} - -type T struct {} - -func (T) m1() {} -// The type checker accepts method type parameters if configured accordingly. -func (T) m2[_ any]() {} -func (T) m3[P any]() {} - -// type inference across parameterized types - -type S1[P any] struct { f P } - -func f9[P any](x S1[P]) - -func _() { - f9[int](S1[int]{42}) - f9(S1[int]{42}) -} - -type S2[A, B, C any] struct{} - -func f10[X, Y, Z any](a S2[X, int, Z], b S2[X, Y, bool]) - -func _[P any]() { - f10[int, float32, string](S2[int, int, string]{}, S2[int, float32, bool]{}) - f10(S2[int, int, string]{}, S2[int, float32, bool]{}) - f10(S2[P, int, P]{}, S2[P, float32, bool]{}) -} - -// corner case for type inference -// (was bug: after instanting f11, the type-checker didn't mark f11 as non-generic) - -func f11[T any]() - -func _() { - f11[int]() -} - -// the previous example was extracted from - -func f12[T interface{m() T}]() - -type A[T any] T - -func (a A[T]) m() A[T] - -func _[T any]() { - f12(A[T])() -} - -// method expressions - -func (_ S1[P]) m() - -func _() { - m := S1[int].m - m(struct { f int }{42}) -} - -func _[T any] (x T) { - m := S1[T].m - m(S1[T]{x}) -} - -// type parameters in methods (generalization) - -type R0 struct{} - -func (R0) _[T any](x T) -func (R0 /* ERROR invalid receiver */ ) _[R0 any]() // scope of type parameters starts at "func" - -type R1[A, B any] struct{} - -func (_ R1[A, B]) m0(A, B) -func (_ R1[A, B]) m1[T any](A, B, T) T -func (_ R1 /* ERROR not a generic type */ [R1, _]) _() -func (_ R1[A, B]) _[A /* ERROR redeclared */ any](B) - -func _() { - var r R1[int, string] - r.m1[rune](42, "foo", 'a') - r.m1[rune](42, "foo", 1.2 /* ERROR truncated to rune */) - r.m1(42, "foo", 1.2) // using type inference - var _ float64 = r.m1(42, "foo", 1.2) -} - -type I1[A any] interface { - m1(A) -} - -var _ I1[int] = r1[int]{} - -type r1[T any] struct{} - -func (_ r1[T]) m1(T) - -type I2[A, B any] interface { - m1(A) - m2(A) B -} - -var _ I2[int, float32] = R2[int, float32]{} - -type R2[P, Q any] struct{} - -func (_ R2[X, Y]) m1(X) -func (_ R2[X, Y]) m2(X) Y - -// type assertions and type switches over generic types -// NOTE: These are currently disabled because it's unclear what the correct -// approach is, and one can always work around by assigning the variable to -// an interface first. - -// // ReadByte1 corresponds to the ReadByte example in the draft design. -// func ReadByte1[T io.Reader](r T) (byte, error) { -// if br, ok := r.(io.ByteReader); ok { -// return br.ReadByte() -// } -// var b [1]byte -// _, err := r.Read(b[:]) -// return b[0], err -// } -// -// // ReadBytes2 is like ReadByte1 but uses a type switch instead. -// func ReadByte2[T io.Reader](r T) (byte, error) { -// switch br := r.(type) { -// case io.ByteReader: -// return br.ReadByte() -// } -// var b [1]byte -// _, err := r.Read(b[:]) -// return b[0], err -// } -// -// // type assertions and type switches over generic types are strict -// type I3 interface { -// m(int) -// } -// -// type I4 interface { -// m() int // different signature from I3.m -// } -// -// func _[T I3](x I3, p T) { -// // type assertions and type switches over interfaces are not strict -// _ = x.(I4) -// switch x.(type) { -// case I4: -// } -// -// // type assertions and type switches over generic types are strict -// _ = p /* ERROR cannot have dynamic type I4 */.(I4) -// switch p.(type) { -// case I4 /* ERROR cannot have dynamic type I4 */ : -// } -// } - -// type assertions and type switches over generic types lead to errors for now - -func _[T any](x T) { - _ = x /* ERROR not an interface */ .(int) - switch x /* ERROR not an interface */ .(type) { - } - - // work-around - var t interface{} = x - _ = t.(int) - switch t.(type) { - } -} - -func _[T interface{ ~int }](x T) { - _ = x /* ERROR not an interface */ .(int) - switch x /* ERROR not an interface */ .(type) { - } - - // work-around - var t interface{} = x - _ = t.(int) - switch t.(type) { - } -} - -// error messages related to type bounds mention those bounds -type C[P any] interface{} - -func _[P C[P]] (x P) { - x.m /* ERROR x.m undefined */ () -} - -type I interface {} - -func _[P I] (x P) { - x.m /* ERROR interface I has no method m */ () -} - -func _[P interface{}] (x P) { - x.m /* ERROR type bound for P has no method m */ () -} - -func _[P any] (x P) { - x.m /* ERROR type bound for P has no method m */ () -} - -// automatic distinguishing between array and generic types -// NOTE: Disabled when using unified parameter list syntax. -/* -const P = 10 -type A1 [P]byte -func _(a A1) { - assert(len(a) == 10) -} - -type A2 [P]struct{ - f [P]byte -} -func _(a A2) { - assert(len(a) == 10) - assert(len(a[0].f) == 10) -} - -type A3 [P]func(x [P]A3) -func _(a A3) { - assert(len(a) == 10) -} - -type T2[P] struct{ P } -var _ T2[int] - -type T3[P] func(P) -var _ T3[int] -*/ \ No newline at end of file diff --git a/src/cmd/compile/internal/syntax/testdata/interface.go2 b/src/cmd/compile/internal/syntax/testdata/interface.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/interface.go2 rename to src/cmd/compile/internal/syntax/testdata/interface.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue20789.src b/src/cmd/compile/internal/syntax/testdata/issue20789.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue20789.src rename to src/cmd/compile/internal/syntax/testdata/issue20789.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue23385.src b/src/cmd/compile/internal/syntax/testdata/issue23385.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue23385.src rename to src/cmd/compile/internal/syntax/testdata/issue23385.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue23434.src b/src/cmd/compile/internal/syntax/testdata/issue23434.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue23434.src rename to src/cmd/compile/internal/syntax/testdata/issue23434.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue31092.src b/src/cmd/compile/internal/syntax/testdata/issue31092.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue31092.src rename to src/cmd/compile/internal/syntax/testdata/issue31092.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue43527.go2 b/src/cmd/compile/internal/syntax/testdata/issue43527.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue43527.go2 rename to src/cmd/compile/internal/syntax/testdata/issue43527.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue43674.src b/src/cmd/compile/internal/syntax/testdata/issue43674.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue43674.src rename to src/cmd/compile/internal/syntax/testdata/issue43674.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue46558.src b/src/cmd/compile/internal/syntax/testdata/issue46558.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue46558.src rename to src/cmd/compile/internal/syntax/testdata/issue46558.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue47704.go2 b/src/cmd/compile/internal/syntax/testdata/issue47704.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue47704.go2 rename to src/cmd/compile/internal/syntax/testdata/issue47704.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue47704.src b/src/cmd/compile/internal/syntax/testdata/issue47704.go117 similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue47704.src rename to src/cmd/compile/internal/syntax/testdata/issue47704.go117 diff --git a/src/cmd/compile/internal/syntax/testdata/issue48382.go2 b/src/cmd/compile/internal/syntax/testdata/issue48382.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue48382.go2 rename to src/cmd/compile/internal/syntax/testdata/issue48382.go diff --git a/src/cmd/compile/internal/syntax/testdata/issue49482.go2 b/src/cmd/compile/internal/syntax/testdata/issue49482.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/issue49482.go2 rename to src/cmd/compile/internal/syntax/testdata/issue49482.go diff --git a/src/cmd/compile/internal/syntax/testdata/go2/linalg.go2 b/src/cmd/compile/internal/syntax/testdata/linalg.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/go2/linalg.go2 rename to src/cmd/compile/internal/syntax/testdata/linalg.go diff --git a/src/cmd/compile/internal/syntax/testdata/go2/map.go2 b/src/cmd/compile/internal/syntax/testdata/map.go similarity index 97% rename from src/cmd/compile/internal/syntax/testdata/go2/map.go2 rename to src/cmd/compile/internal/syntax/testdata/map.go index 814d9539fd..a508d214b8 100644 --- a/src/cmd/compile/internal/syntax/testdata/go2/map.go2 +++ b/src/cmd/compile/internal/syntax/testdata/map.go @@ -5,8 +5,7 @@ // Package orderedmap provides an ordered map, implemented as a binary tree. package orderedmap -// TODO(gri) fix imports for tests -import "chans" // ERROR could not import +import "chans" // Map is an ordered map. type Map[K, V any] struct { diff --git a/src/cmd/compile/internal/syntax/testdata/go2/map2.go2 b/src/cmd/compile/internal/syntax/testdata/map2.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/go2/map2.go2 rename to src/cmd/compile/internal/syntax/testdata/map2.go diff --git a/src/cmd/compile/internal/syntax/testdata/sample.src b/src/cmd/compile/internal/syntax/testdata/sample.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/sample.src rename to src/cmd/compile/internal/syntax/testdata/sample.go diff --git a/src/cmd/compile/internal/syntax/testdata/go2/slices.go2 b/src/cmd/compile/internal/syntax/testdata/slices.go similarity index 94% rename from src/cmd/compile/internal/syntax/testdata/go2/slices.go2 rename to src/cmd/compile/internal/syntax/testdata/slices.go index 2bacd1c2aa..9265109556 100644 --- a/src/cmd/compile/internal/syntax/testdata/go2/slices.go2 +++ b/src/cmd/compile/internal/syntax/testdata/slices.go @@ -56,7 +56,7 @@ func reducer(x float64, y int) float64 { } var reduced1 = Reduce[int, float64](input, 0, reducer) -var reduced2 = Reduce(input, 1i /* ERROR overflows */, reducer) // using type inference +var reduced2 = Reduce(input, 1i, reducer) // using type inference var reduced3 = Reduce(input, 1, reducer) // using type inference func filter(x int) bool { diff --git a/src/cmd/compile/internal/syntax/testdata/go2/smoketest.go2 b/src/cmd/compile/internal/syntax/testdata/smoketest.go similarity index 92% rename from src/cmd/compile/internal/syntax/testdata/go2/smoketest.go2 rename to src/cmd/compile/internal/syntax/testdata/smoketest.go index 42efb42527..1eb04e3ff7 100644 --- a/src/cmd/compile/internal/syntax/testdata/go2/smoketest.go2 +++ b/src/cmd/compile/internal/syntax/testdata/smoketest.go @@ -28,12 +28,6 @@ func _[P interface{}]() func _[P B]() func _[P B[P]]() -// in methods -func (T) _[P any]() -func (T) _[P interface{}]() -func (T) _[P B]() -func (T) _[P B[P]]() - // type instantiations type _ T[int] diff --git a/src/cmd/compile/internal/syntax/testdata/tparams.go2 b/src/cmd/compile/internal/syntax/testdata/tparams.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/tparams.go2 rename to src/cmd/compile/internal/syntax/testdata/tparams.go diff --git a/src/cmd/compile/internal/syntax/testdata/typeset.go2 b/src/cmd/compile/internal/syntax/testdata/typeset.go similarity index 100% rename from src/cmd/compile/internal/syntax/testdata/typeset.go2 rename to src/cmd/compile/internal/syntax/testdata/typeset.go From bf408e741c2827a45c8576dda4126fc4135ef247 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 29 Mar 2022 17:30:58 -0700 Subject: [PATCH 022/125] cmd/compile/internal/syntax: remove generic-specific parse modes Generics have landed; we cannot revert the syntax anymore. Remove ability to choose between non-generic and generic code. Also remove mode to enable method type parameters. Adjust code accordingly. Also remove a couple of TODOs that are not relevant anymore. Remove tests from types2 which were focussed on method type parameters, make types2 and go/types tests match up where there was a difference in this regard. Change-Id: I989bdcb19eea7414214af739187fa013a044295d Reviewed-on: https://go-review.googlesource.com/c/go/+/396634 Trust: Robert Griesemer Reviewed-by: Ian Lance Taylor --- src/cmd/compile/internal/noder/noder.go | 2 +- .../compile/internal/syntax/dumper_test.go | 2 +- src/cmd/compile/internal/syntax/error_test.go | 6 +- src/cmd/compile/internal/syntax/parser.go | 213 +++++++----------- .../compile/internal/syntax/parser_test.go | 6 +- .../compile/internal/syntax/printer_test.go | 6 +- src/cmd/compile/internal/syntax/syntax.go | 2 - .../internal/syntax/testdata/issue47704.go | 1 - .../internal/syntax/testdata/issue47704.go117 | 18 -- .../internal/syntax/testdata/smoketest.go | 18 +- src/cmd/compile/internal/types2/api_test.go | 32 +-- .../compile/internal/types2/builtins_test.go | 2 +- src/cmd/compile/internal/types2/check_test.go | 2 +- src/cmd/compile/internal/types2/mono_test.go | 2 +- .../compile/internal/types2/stdlib_test.go | 2 +- .../types2/testdata/check/mtypeparams.go | 52 ----- .../types2/testdata/check/typeparams.go | 27 +-- .../compile/internal/types2/typeset_test.go | 2 +- src/go/types/testdata/check/typeparams.go | 25 -- 19 files changed, 111 insertions(+), 309 deletions(-) delete mode 100644 src/cmd/compile/internal/syntax/testdata/issue47704.go117 delete mode 100644 src/cmd/compile/internal/types2/testdata/check/mtypeparams.go diff --git a/src/cmd/compile/internal/noder/noder.go b/src/cmd/compile/internal/noder/noder.go index f8f802936b..77ca642183 100644 --- a/src/cmd/compile/internal/noder/noder.go +++ b/src/cmd/compile/internal/noder/noder.go @@ -27,7 +27,7 @@ import ( func LoadPackage(filenames []string) { base.Timer.Start("fe", "parse") - mode := syntax.CheckBranches | syntax.AllowGenerics + mode := syntax.CheckBranches // Limit the number of simultaneously open files. sem := make(chan struct{}, runtime.GOMAXPROCS(0)+10) diff --git a/src/cmd/compile/internal/syntax/dumper_test.go b/src/cmd/compile/internal/syntax/dumper_test.go index 033283a352..1ba85cc8d9 100644 --- a/src/cmd/compile/internal/syntax/dumper_test.go +++ b/src/cmd/compile/internal/syntax/dumper_test.go @@ -13,7 +13,7 @@ func TestDump(t *testing.T) { t.Skip("skipping test in short mode") } - ast, _ := ParseFile(*src_, func(err error) { t.Error(err) }, nil, CheckBranches|AllowGenerics) + ast, _ := ParseFile(*src_, func(err error) { t.Error(err) }, nil, CheckBranches) if ast != nil { Fdump(testOut(), ast) diff --git a/src/cmd/compile/internal/syntax/error_test.go b/src/cmd/compile/internal/syntax/error_test.go index 0900bec6ec..724ca0eb98 100644 --- a/src/cmd/compile/internal/syntax/error_test.go +++ b/src/cmd/compile/internal/syntax/error_test.go @@ -128,10 +128,6 @@ func testSyntaxErrors(t *testing.T, filename string) { } defer f.Close() - var mode Mode - if !strings.HasSuffix(filename, ".go117") { - mode = AllowGenerics - } ParseFile(filename, func(err error) { e, ok := err.(Error) if !ok { @@ -166,7 +162,7 @@ func testSyntaxErrors(t *testing.T, filename string) { } else { t.Errorf("%s:%s: unexpected error: %s", filename, orig, e.Msg) } - }, nil, mode) + }, nil, 0) if *print { fmt.Println() diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index a75a3b1a2e..2c53a40b2f 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -87,8 +87,6 @@ func (p *parser) init(file *PosBase, r io.Reader, errh ErrorHandler, pragh Pragm p.indent = nil } -func (p *parser) allowGenerics() bool { return p.mode&AllowGenerics != 0 } - // takePragma returns the current parsed pragmas // and clears them from the parser state. func (p *parser) takePragma() Pragma { @@ -586,7 +584,7 @@ func (p *parser) typeDecl(group *Group) Decl { d.Pragma = p.takePragma() d.Name = p.name() - if p.allowGenerics() && p.tok == _Lbrack { + if p.tok == _Lbrack { // d.Name "[" ... // array/slice type or type parameter list pos := p.pos() @@ -762,7 +760,7 @@ func (p *parser) funcDeclOrNil() *FuncDecl { f.Name = p.name() context := "" - if f.Recv != nil && p.mode&AllowMethodTypeParams == 0 { + if f.Recv != nil { context = "method" // don't permit (method) type parameters in funcType } f.TParamList, f.Type = p.funcType(context) @@ -1098,45 +1096,25 @@ loop: var i Expr if p.tok != _Colon { - if p.mode&AllowGenerics == 0 { - p.xnest++ - i = p.expr() - p.xnest-- - if p.got(_Rbrack) { - // x[i] - t := new(IndexExpr) - t.pos = pos - t.X = x - t.Index = i - x = t - break - } - } else { - var comma bool - i, comma = p.typeList() - if comma || p.tok == _Rbrack { - p.want(_Rbrack) - // x[i,] or x[i, j, ...] - t := new(IndexExpr) - t.pos = pos - t.X = x - t.Index = i - x = t - break - } + var comma bool + i, comma = p.typeList() + if comma || p.tok == _Rbrack { + p.want(_Rbrack) + // x[i,] or x[i, j, ...] + t := new(IndexExpr) + t.pos = pos + t.X = x + t.Index = i + x = t + break } } // x[i:... // For better error message, don't simply use p.want(_Colon) here (issue #47704). if !p.got(_Colon) { - if p.mode&AllowGenerics == 0 { - p.syntaxError("expecting : or ]") - p.advance(_Colon, _Rbrack) - } else { - p.syntaxError("expecting comma, : or ]") - p.advance(_Comma, _Colon, _Rbrack) - } + p.syntaxError("expecting comma, : or ]") + p.advance(_Comma, _Colon, _Rbrack) } p.xnest++ t := new(SliceExpr) @@ -1418,7 +1396,7 @@ func (p *parser) funcType(context string) ([]*Field, *FuncType) { typ.pos = p.pos() var tparamList []*Field - if p.allowGenerics() && p.got(_Lbrack) { + if p.got(_Lbrack) { if context != "" { // accept but complain p.syntaxErrorAt(typ.pos, context+" must have no type parameters") @@ -1509,7 +1487,6 @@ func (p *parser) structType() *StructType { // InterfaceType = "interface" "{" { ( MethodDecl | EmbeddedElem | TypeList ) ";" } "}" . // TypeList = "type" Type { "," Type } . -// TODO(gri) remove TypeList syntax if we accept #45346 func (p *parser) interfaceType() *InterfaceType { if trace { defer p.trace("interfaceType")() @@ -1524,14 +1501,13 @@ func (p *parser) interfaceType() *InterfaceType { switch p.tok { case _Name: f := p.methodDecl() - if f.Name == nil && p.allowGenerics() { + if f.Name == nil { f = p.embeddedElem(f) } typ.MethodList = append(typ.MethodList, f) return false case _Lparen: - // TODO(gri) Need to decide how to adjust this restriction. p.syntaxError("cannot parenthesize embedded type") f := new(Field) f.pos = p.pos() @@ -1542,31 +1518,23 @@ func (p *parser) interfaceType() *InterfaceType { return false case _Operator: - if p.op == Tilde && p.allowGenerics() { + if p.op == Tilde { typ.MethodList = append(typ.MethodList, p.embeddedElem(nil)) return false } default: - if p.allowGenerics() { - pos := p.pos() - if t := p.typeOrNil(); t != nil { - f := new(Field) - f.pos = pos - f.Type = t - typ.MethodList = append(typ.MethodList, p.embeddedElem(f)) - return false - } + pos := p.pos() + if t := p.typeOrNil(); t != nil { + f := new(Field) + f.pos = pos + f.Type = t + typ.MethodList = append(typ.MethodList, p.embeddedElem(f)) + return false } } - if p.allowGenerics() { - p.syntaxError("expecting method or embedded element") - p.advance(_Semi, _Rbrace) - return false - } - - p.syntaxError("expecting method or interface name") + p.syntaxError("expecting method or embedded element") p.advance(_Semi, _Rbrace) return false }) @@ -1640,7 +1608,7 @@ func (p *parser) fieldDecl(styp *StructType) { // Careful dance: We don't know if we have an embedded instantiated // type T[P1, P2, ...] or a field T of array/slice type [P]E or []E. - if p.allowGenerics() && len(names) == 1 && p.tok == _Lbrack { + if len(names) == 1 && p.tok == _Lbrack { typ = p.arrayOrTArgs() if typ, ok := typ.(*IndexExpr); ok { // embedded type T[P1, P2, ...] @@ -1780,79 +1748,72 @@ func (p *parser) methodDecl() *Field { _, f.Type = p.funcType(context) case _Lbrack: - if p.allowGenerics() { - // Careful dance: We don't know if we have a generic method m[T C](x T) - // or an embedded instantiated type T[P1, P2] (we accept generic methods - // for generality and robustness of parsing). + // Careful dance: We don't know if we have a generic method m[T C](x T) + // or an embedded instantiated type T[P1, P2] (we accept generic methods + // for generality and robustness of parsing but complain with an error). + pos := p.pos() + p.next() + + // Empty type parameter or argument lists are not permitted. + // Treat as if [] were absent. + if p.tok == _Rbrack { + // name[] pos := p.pos() p.next() - - // Empty type parameter or argument lists are not permitted. - // Treat as if [] were absent. - if p.tok == _Rbrack { - // name[] - pos := p.pos() - p.next() - if p.tok == _Lparen { - // name[]( - p.errorAt(pos, "empty type parameter list") - f.Name = name - _, f.Type = p.funcType(context) - } else { - p.errorAt(pos, "empty type argument list") - f.Type = name - } - break - } - - // A type argument list looks like a parameter list with only - // types. Parse a parameter list and decide afterwards. - list := p.paramList(nil, nil, _Rbrack, false) - if len(list) == 0 { - // The type parameter list is not [] but we got nothing - // due to other errors (reported by paramList). Treat - // as if [] were absent. - if p.tok == _Lparen { - f.Name = name - _, f.Type = p.funcType(context) - } else { - f.Type = name - } - break - } - - // len(list) > 0 - if list[0].Name != nil { - // generic method + if p.tok == _Lparen { + // name[]( + p.errorAt(pos, "empty type parameter list") f.Name = name _, f.Type = p.funcType(context) - // TODO(gri) Record list as type parameter list with f.Type - // if we want to type-check the generic method. - // For now, report an error so this is not a silent event. - p.errorAt(pos, "interface method must have no type parameters") - break - } - - // embedded instantiated type - t := new(IndexExpr) - t.pos = pos - t.X = name - if len(list) == 1 { - t.Index = list[0].Type } else { - // len(list) > 1 - l := new(ListExpr) - l.pos = list[0].Pos() - l.ElemList = make([]Expr, len(list)) - for i := range list { - l.ElemList[i] = list[i].Type - } - t.Index = l + p.errorAt(pos, "empty type argument list") + f.Type = name } - f.Type = t break } - fallthrough + + // A type argument list looks like a parameter list with only + // types. Parse a parameter list and decide afterwards. + list := p.paramList(nil, nil, _Rbrack, false) + if len(list) == 0 { + // The type parameter list is not [] but we got nothing + // due to other errors (reported by paramList). Treat + // as if [] were absent. + if p.tok == _Lparen { + f.Name = name + _, f.Type = p.funcType(context) + } else { + f.Type = name + } + break + } + + // len(list) > 0 + if list[0].Name != nil { + // generic method + f.Name = name + _, f.Type = p.funcType(context) + p.errorAt(pos, "interface method must have no type parameters") + break + } + + // embedded instantiated type + t := new(IndexExpr) + t.pos = pos + t.X = name + if len(list) == 1 { + t.Index = list[0].Type + } else { + // len(list) > 1 + l := new(ListExpr) + l.pos = list[0].Pos() + l.ElemList = make([]Expr, len(list)) + for i := range list { + l.ElemList[i] = list[i].Type + } + t.Index = l + } + f.Type = t default: // embedded type @@ -1938,7 +1899,7 @@ func (p *parser) paramDeclOrNil(name *Name, follow token) *Field { name = p.name() } - if p.allowGenerics() && p.tok == _Lbrack { + if p.tok == _Lbrack { // name "[" ... f.Type = p.arrayOrTArgs() if typ, ok := f.Type.(*IndexExpr); ok { @@ -2787,7 +2748,7 @@ func (p *parser) qualifiedName(name *Name) Expr { x = s } - if p.allowGenerics() && p.tok == _Lbrack { + if p.tok == _Lbrack { x = p.typeInstance(x) } diff --git a/src/cmd/compile/internal/syntax/parser_test.go b/src/cmd/compile/internal/syntax/parser_test.go index ddddedc5ec..b3d4573935 100644 --- a/src/cmd/compile/internal/syntax/parser_test.go +++ b/src/cmd/compile/internal/syntax/parser_test.go @@ -27,11 +27,11 @@ var ( ) func TestParse(t *testing.T) { - ParseFile(*src_, func(err error) { t.Error(err) }, nil, AllowGenerics) + ParseFile(*src_, func(err error) { t.Error(err) }, nil, 0) } func TestVerify(t *testing.T) { - ast, err := ParseFile(*src_, func(err error) { t.Error(err) }, nil, AllowGenerics) + ast, err := ParseFile(*src_, func(err error) { t.Error(err) }, nil, 0) if err != nil { return // error already reported } @@ -80,7 +80,7 @@ func TestStdLib(t *testing.T) { if debug { fmt.Printf("parsing %s\n", filename) } - ast, err := ParseFile(filename, nil, nil, AllowGenerics) + ast, err := ParseFile(filename, nil, nil, 0) if err != nil { t.Error(err) return diff --git a/src/cmd/compile/internal/syntax/printer_test.go b/src/cmd/compile/internal/syntax/printer_test.go index 941af0aeb4..3eca2316a7 100644 --- a/src/cmd/compile/internal/syntax/printer_test.go +++ b/src/cmd/compile/internal/syntax/printer_test.go @@ -18,7 +18,7 @@ func TestPrint(t *testing.T) { t.Skip("skipping test in short mode") } - ast, _ := ParseFile(*src_, func(err error) { t.Error(err) }, nil, AllowGenerics) + ast, _ := ParseFile(*src_, func(err error) { t.Error(err) }, nil, 0) if ast != nil { Fprint(testOut(), ast, LineForm) @@ -117,7 +117,7 @@ var stringTests = [][2]string{ func TestPrintString(t *testing.T) { for _, test := range stringTests { - ast, err := Parse(nil, strings.NewReader(test[0]), nil, nil, AllowGenerics) + ast, err := Parse(nil, strings.NewReader(test[0]), nil, nil, 0) if err != nil { t.Error(err) continue @@ -237,7 +237,7 @@ var exprTests = [][2]string{ func TestShortString(t *testing.T) { for _, test := range exprTests { src := "package p; var _ = " + test[0] - ast, err := Parse(nil, strings.NewReader(src), nil, nil, AllowGenerics) + ast, err := Parse(nil, strings.NewReader(src), nil, nil, 0) if err != nil { t.Errorf("%s: %s", test[0], err) continue diff --git a/src/cmd/compile/internal/syntax/syntax.go b/src/cmd/compile/internal/syntax/syntax.go index 25c8116206..e51b5538b3 100644 --- a/src/cmd/compile/internal/syntax/syntax.go +++ b/src/cmd/compile/internal/syntax/syntax.go @@ -16,8 +16,6 @@ type Mode uint // Modes supported by the parser. const ( CheckBranches Mode = 1 << iota // check correct use of labels, break, continue, and goto statements - AllowGenerics - AllowMethodTypeParams // does not support interface methods yet; ignored if AllowGenerics is not set ) // Error describes a syntax error. Error implements the error interface. diff --git a/src/cmd/compile/internal/syntax/testdata/issue47704.go b/src/cmd/compile/internal/syntax/testdata/issue47704.go index 4e65857f3b..2f2e29b693 100644 --- a/src/cmd/compile/internal/syntax/testdata/issue47704.go +++ b/src/cmd/compile/internal/syntax/testdata/issue47704.go @@ -4,7 +4,6 @@ package p -// error messages for parser in generic mode func _() { _ = m[] // ERROR expecting operand _ = m[x,] diff --git a/src/cmd/compile/internal/syntax/testdata/issue47704.go117 b/src/cmd/compile/internal/syntax/testdata/issue47704.go117 deleted file mode 100644 index 0156af7d8d..0000000000 --- a/src/cmd/compile/internal/syntax/testdata/issue47704.go117 +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package p - -// error messages for parser in non-generic mode -func _() { - _ = m[] // ERROR expecting operand - _ = m[x,] // ERROR unexpected comma, expecting \: or \] - _ = m[x /* ERROR unexpected a */ a b c d] -} - -// test case from the issue -func f(m map[int]int) int { - return m[0 // ERROR expecting \: or \] - ] -} diff --git a/src/cmd/compile/internal/syntax/testdata/smoketest.go b/src/cmd/compile/internal/syntax/testdata/smoketest.go index 1eb04e3ff7..6b3593ac7a 100644 --- a/src/cmd/compile/internal/syntax/testdata/smoketest.go +++ b/src/cmd/compile/internal/syntax/testdata/smoketest.go @@ -38,18 +38,18 @@ var _ = T[int]{} type _ struct{ T[int] } // interfaces -type _ interface{ +type _ interface { m() ~int } -type _ interface{ +type _ interface { ~int | ~float | ~string ~complex128 underlying(underlying underlying) underlying } -type _ interface{ +type _ interface { T T[int] } @@ -58,20 +58,16 @@ type _ interface{ func _(T[P], T[P1, P2]) func _(a [N]T) -type _ struct{ +type _ struct { T[P] T[P1, P2] - f [N] + f[N] } -type _ interface{ +type _ interface { m() - // generic methods - disabled for now - // m[] /* ERROR empty type parameter list */ () - // m[ /* ERROR cannot have type parameters */ P any](P) - // instantiated types - // T[] /* ERROR empty type argument list */ + T[ /* ERROR empty type argument list */ ] T[P] T[P1, P2] } diff --git a/src/cmd/compile/internal/types2/api_test.go b/src/cmd/compile/internal/types2/api_test.go index d8f7fb5eda..528beaacea 100644 --- a/src/cmd/compile/internal/types2/api_test.go +++ b/src/cmd/compile/internal/types2/api_test.go @@ -26,7 +26,7 @@ const brokenPkg = "package broken_" func parseSrc(path, src string) (*syntax.File, error) { errh := func(error) {} // dummy error handler so that parsing continues in presence of errors - return syntax.Parse(syntax.NewFileBase(path), strings.NewReader(src), errh, nil, syntax.AllowGenerics|syntax.AllowMethodTypeParams) + return syntax.Parse(syntax.NewFileBase(path), strings.NewReader(src), errh, nil, 0) } func pkgFor(path, source string, info *Info) (*Package, error) { @@ -436,36 +436,6 @@ type T[P any] []P {`package p4; func f[A, B any](A, *B, ...[]B) {}; func _() { f(1.2, new(byte)) }`, []testInst{{`f`, []string{`float64`, `byte`}, `func(float64, *byte, ...[]byte)`}}, }, - // we don't know how to translate these but we can type-check them - {`package q0; type T struct{}; func (T) m[P any](P) {}; func _(x T) { x.m(42) }`, - []testInst{{`m`, []string{`int`}, `func(int)`}}, - }, - {`package q1; type T struct{}; func (T) m[P any](P) P { panic(0) }; func _(x T) { x.m(42) }`, - []testInst{{`m`, []string{`int`}, `func(int) int`}}, - }, - {`package q2; type T struct{}; func (T) m[P any](...P) P { panic(0) }; func _(x T) { x.m(42) }`, - []testInst{{`m`, []string{`int`}, `func(...int) int`}}, - }, - {`package q3; type T struct{}; func (T) m[A, B, C any](A, *B, []C) {}; func _(x T) { x.m(1.2, new(string), []byte{}) }`, - []testInst{{`m`, []string{`float64`, `string`, `byte`}, `func(float64, *string, []byte)`}}, - }, - {`package q4; type T struct{}; func (T) m[A, B any](A, *B, ...[]B) {}; func _(x T) { x.m(1.2, new(byte)) }`, - []testInst{{`m`, []string{`float64`, `byte`}, `func(float64, *byte, ...[]byte)`}}, - }, - - {`package r0; type T[P1 any] struct{}; func (_ T[P2]) m[Q any](Q) {}; func _[P3 any](x T[P3]) { x.m(42) }`, - []testInst{ - {`T`, []string{`P2`}, `struct{}`}, - {`T`, []string{`P3`}, `struct{}`}, - {`m`, []string{`int`}, `func(int)`}, - }, - }, - // TODO(gri) record method type parameters in syntax.FuncType so we can check this - // {`package r1; type T interface{ m[P any](P) }; func _(x T) { x.m(4.2) }`, - // `x.m`, - // []string{`float64`}, - // `func(float64)`, - // }, {`package s1; func f[T any, P interface{*T}](x T) {}; func _(x string) { f(x) }`, []testInst{{`f`, []string{`string`, `*string`}, `func(x string)`}}, diff --git a/src/cmd/compile/internal/types2/builtins_test.go b/src/cmd/compile/internal/types2/builtins_test.go index e07a7794f6..ad8873a7d4 100644 --- a/src/cmd/compile/internal/types2/builtins_test.go +++ b/src/cmd/compile/internal/types2/builtins_test.go @@ -159,7 +159,7 @@ func TestBuiltinSignatures(t *testing.T) { func parseGenericSrc(path, src string) (*syntax.File, error) { errh := func(error) {} // dummy error handler so that parsing continues in presence of errors - return syntax.Parse(syntax.NewFileBase(path), strings.NewReader(src), errh, nil, syntax.AllowGenerics) + return syntax.Parse(syntax.NewFileBase(path), strings.NewReader(src), errh, nil, 0) } func testBuiltinSignature(t *testing.T, name, src0, want string) { diff --git a/src/cmd/compile/internal/types2/check_test.go b/src/cmd/compile/internal/types2/check_test.go index cdf440f9be..ec242c5e22 100644 --- a/src/cmd/compile/internal/types2/check_test.go +++ b/src/cmd/compile/internal/types2/check_test.go @@ -135,7 +135,7 @@ func testFiles(t *testing.T, filenames []string, colDelta uint, manual bool) { t.Fatal(err) } - files, errlist := parseFiles(t, filenames, syntax.AllowGenerics|syntax.AllowMethodTypeParams) + files, errlist := parseFiles(t, filenames, 0) pkgName := "" if len(files) > 0 { diff --git a/src/cmd/compile/internal/types2/mono_test.go b/src/cmd/compile/internal/types2/mono_test.go index 19d0e95637..4511110691 100644 --- a/src/cmd/compile/internal/types2/mono_test.go +++ b/src/cmd/compile/internal/types2/mono_test.go @@ -16,7 +16,7 @@ import ( func checkMono(t *testing.T, body string) error { src := "package x; import `unsafe`; var _ unsafe.Pointer;\n" + body - file, err := syntax.Parse(syntax.NewFileBase("x.go"), strings.NewReader(src), nil, nil, syntax.AllowGenerics) + file, err := syntax.Parse(syntax.NewFileBase("x.go"), strings.NewReader(src), nil, nil, 0) if err != nil { t.Fatal(err) } diff --git a/src/cmd/compile/internal/types2/stdlib_test.go b/src/cmd/compile/internal/types2/stdlib_test.go index fda78e20d1..4e54056e74 100644 --- a/src/cmd/compile/internal/types2/stdlib_test.go +++ b/src/cmd/compile/internal/types2/stdlib_test.go @@ -220,7 +220,7 @@ func typecheck(t *testing.T, path string, filenames []string) { var files []*syntax.File for _, filename := range filenames { errh := func(err error) { t.Error(err) } - file, err := syntax.ParseFile(filename, errh, nil, syntax.AllowGenerics) + file, err := syntax.ParseFile(filename, errh, nil, 0) if err != nil { return } diff --git a/src/cmd/compile/internal/types2/testdata/check/mtypeparams.go b/src/cmd/compile/internal/types2/testdata/check/mtypeparams.go deleted file mode 100644 index 1b406593f8..0000000000 --- a/src/cmd/compile/internal/types2/testdata/check/mtypeparams.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// If types2.Config.AcceptMethodTypeParams is set, -// the type checker accepts methods that have their -// own type parameter list. - -package p - -type S struct{} - -func (S) m[T any](v T) {} - -// TODO(gri) Once we collect interface method type parameters -// in the parser, we can enable these tests again. -/* -type I interface { - m[T any](v T) -} - -type J interface { - m[T any](v T) -} - -var _ I = S{} -var _ I = J(nil) - -type C interface{ n() } - -type Sc struct{} - -func (Sc) m[T C](v T) - -type Ic interface { - m[T C](v T) -} - -type Jc interface { - m[T C](v T) -} - -var _ Ic = Sc{} -var _ Ic = Jc(nil) - -// TODO(gri) These should fail because the constraints don't match. -var _ I = Sc{} -var _ I = Jc(nil) - -var _ Ic = S{} -var _ Ic = J(nil) -*/ \ No newline at end of file diff --git a/src/cmd/compile/internal/types2/testdata/check/typeparams.go b/src/cmd/compile/internal/types2/testdata/check/typeparams.go index 68b1f0f5c5..498d6f2d26 100644 --- a/src/cmd/compile/internal/types2/testdata/check/typeparams.go +++ b/src/cmd/compile/internal/types2/testdata/check/typeparams.go @@ -329,9 +329,8 @@ func init[P /* ERROR func init must have no type parameters */ any]() {} type T struct {} func (T) m1() {} -// The type checker accepts method type parameters if configured accordingly. -func (T) m2[_ any]() {} -func (T) m3[P any]() {} +func (T) m2[ /* ERROR method must have no type parameters */ _ any]() {} +func (T) m3[ /* ERROR method must have no type parameters */ P any]() {} // type inference across parameterized types @@ -390,28 +389,6 @@ func _[T any] (x T) { m(S1[T]{x}) } -// type parameters in methods (generalization) - -type R0 struct{} - -func (R0) _[T any](x T) {} -func (R0 /* ERROR invalid receiver */ ) _[R0 any]() {} // scope of type parameters starts at "func" - -type R1[A, B any] struct{} - -func (_ R1[A, B]) m0(A, B) -func (_ R1[A, B]) m1[T any](A, B, T) T { panic(0) } -func (_ R1 /* ERROR not a generic type */ [R1, _]) _() -func (_ R1[A, B]) _[A /* ERROR redeclared */ any](B) {} - -func _() { - var r R1[int, string] - r.m1[rune](42, "foo", 'a') - r.m1[rune](42, "foo", 1.2 /* ERROR cannot use .* as rune .* \(truncated\) */) - r.m1(42, "foo", 1.2) // using type inference - var _ float64 = r.m1(42, "foo", 1.2) -} - type I1[A any] interface { m1(A) } diff --git a/src/cmd/compile/internal/types2/typeset_test.go b/src/cmd/compile/internal/types2/typeset_test.go index 68e5d8ad62..69eaff741f 100644 --- a/src/cmd/compile/internal/types2/typeset_test.go +++ b/src/cmd/compile/internal/types2/typeset_test.go @@ -47,7 +47,7 @@ func TestTypeSetString(t *testing.T) { // parse errh := func(error) {} // dummy error handler so that parsing continues in presence of errors src := "package p; type T interface" + body - file, err := syntax.Parse(nil, strings.NewReader(src), errh, nil, syntax.AllowGenerics) + file, err := syntax.Parse(nil, strings.NewReader(src), errh, nil, 0) if err != nil { t.Fatalf("%s: %v (invalid test case)", body, err) } diff --git a/src/go/types/testdata/check/typeparams.go b/src/go/types/testdata/check/typeparams.go index 29a3b16cd6..199828f55f 100644 --- a/src/go/types/testdata/check/typeparams.go +++ b/src/go/types/testdata/check/typeparams.go @@ -389,31 +389,6 @@ func _[T any] (x T) { m(S1[T]{x}) } -// type parameters in methods (generalization) - -// Type Parameter lists are not allowed on methods, and are not produced by -// go/parser. The test cases below are preserved for consistency with types2, -// which produces an error but stores type parameters. -// type R0 struct{} - -// func (R0) _[ /* ERROR methods cannot have type parameters */ T any](x T) {} -// func (R0 /* ERROR invalid receiver */ ) _[ /* ERROR methods cannot have type parameters */ R0 any]() {} // scope of type parameters starts at "func" - -// type R1[A, B any] struct{} - -// func (_ R1[A, B]) m0(A, B) -// func (_ R1[A, B]) m1[ /* ERROR methods cannot have type parameters */ T any](A, B, T) T { panic(0) } -// func (_ R1 /* ERROR not a generic type */ [R1, _]) _() -// func (_ R1[A, B]) _[ /* ERROR methods cannot have type parameters */ A /* ERROR redeclared */ any](B) {} - -// func _() { -// var r R1[int, string] -// r.m1[rune](42, "foo", 'a') -// r.m1[rune](42, "foo", 1.2 /* ERROR cannot use .* as rune .* \(truncated\) */) -// r.m1(42, "foo", 1.2) // using type inference -// var _ float64 = r.m1(42, "foo", 1.2) -// } - type I1[A any] interface { m1(A) } From a7e76b8e809ccbd1ceef207a83f8303edb707867 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Tue, 29 Mar 2022 19:38:00 -0700 Subject: [PATCH 023/125] cmd/compile/internal/syntax: remove code dealing with multiple method names When parsing method declarations in an interface, the parser has for historic reasons gracefully handled a list of method names with a single (common) signature, and then reported an error. For example interface { m1, m2, m3 (x int) } This code originally came from the very first parser for Go which initially permitted such declarations (or at least assumed that people would write such declarations). Nobody is doing this at this point, so there's no need for being extra careful here. Remove the respective code and adjust the corresponding test. Change-Id: If6f9b398bbc9e425dcd4328a80d8bf77c37fe8b6 Reviewed-on: https://go-review.googlesource.com/c/go/+/396654 Trust: Robert Griesemer Reviewed-by: Ian Lance Taylor --- src/cmd/compile/internal/syntax/parser.go | 14 -------------- test/fixedbugs/bug121.go | 2 +- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index 2c53a40b2f..805bf13aff 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -1725,20 +1725,6 @@ func (p *parser) methodDecl() *Field { f.pos = p.pos() name := p.name() - // accept potential name list but complain - // TODO(gri) We probably don't need this special check anymore. - // Nobody writes this kind of code. It's from ancient - // Go beginnings. - hasNameList := false - for p.got(_Comma) { - p.name() - hasNameList = true - } - if hasNameList { - p.syntaxError("name list not allowed in interface type") - // already progressed, no need to advance - } - const context = "interface method" switch p.tok { diff --git a/test/fixedbugs/bug121.go b/test/fixedbugs/bug121.go index 22c7181752..471c27eb82 100644 --- a/test/fixedbugs/bug121.go +++ b/test/fixedbugs/bug121.go @@ -9,7 +9,7 @@ package main type T func() type I interface { - f, g (); // ERROR "name list not allowed" + f, g (); // ERROR "unexpected comma" } type J interface { From 83e9a97f62af41e65e37e096a4ed71f6a59d183e Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Tue, 22 Mar 2022 13:35:11 -0400 Subject: [PATCH 024/125] crypto/x509/internal/macos: return errors when CFRef might be NULL Updates #51759 Change-Id: Ib73fa5ec62d90c7e595150217b048158789f1afd Reviewed-on: https://go-review.googlesource.com/c/go/+/394674 Run-TryBot: Filippo Valsorda Trust: Josh Bleecher Snyder TryBot-Result: Gopher Robot Reviewed-by: Roland Shoemaker --- src/crypto/x509/internal/macos/corefoundation.go | 14 ++++++++++---- src/crypto/x509/internal/macos/security.go | 11 ++++++++--- src/crypto/x509/root_darwin.go | 8 ++++---- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/crypto/x509/internal/macos/corefoundation.go b/src/crypto/x509/internal/macos/corefoundation.go index 75c212910b..eb91a5db6e 100644 --- a/src/crypto/x509/internal/macos/corefoundation.go +++ b/src/crypto/x509/internal/macos/corefoundation.go @@ -37,9 +37,12 @@ func CFDataToSlice(data CFRef) []byte { } // CFStringToString returns a Go string representation of the passed -// in CFString. +// in CFString, or an empty string if it's invalid. func CFStringToString(ref CFRef) string { - data := CFStringCreateExternalRepresentation(ref) + data, err := CFStringCreateExternalRepresentation(ref) + if err != nil { + return "" + } b := CFDataToSlice(data) CFRelease(data) return string(b) @@ -186,9 +189,12 @@ func x509_CFErrorCopyDescription_trampoline() //go:cgo_import_dynamic x509_CFStringCreateExternalRepresentation CFStringCreateExternalRepresentation "/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation" -func CFStringCreateExternalRepresentation(strRef CFRef) CFRef { +func CFStringCreateExternalRepresentation(strRef CFRef) (CFRef, error) { ret := syscall(abi.FuncPCABI0(x509_CFStringCreateExternalRepresentation_trampoline), kCFAllocatorDefault, uintptr(strRef), kCFStringEncodingUTF8, 0, 0, 0) - return CFRef(ret) + if ret == 0 { + return 0, errors.New("string can't be represented as UTF-8") + } + return CFRef(ret), nil } func x509_CFStringCreateExternalRepresentation_trampoline() diff --git a/src/crypto/x509/internal/macos/security.go b/src/crypto/x509/internal/macos/security.go index ef64bda49f..381d918a94 100644 --- a/src/crypto/x509/internal/macos/security.go +++ b/src/crypto/x509/internal/macos/security.go @@ -131,11 +131,16 @@ func x509_SecTrustCreateWithCertificates_trampoline() //go:cgo_import_dynamic x509_SecCertificateCreateWithData SecCertificateCreateWithData "/System/Library/Frameworks/Security.framework/Versions/A/Security" -func SecCertificateCreateWithData(b []byte) CFRef { +func SecCertificateCreateWithData(b []byte) (CFRef, error) { data := BytesToCFData(b) + defer CFRelease(data) ret := syscall(abi.FuncPCABI0(x509_SecCertificateCreateWithData_trampoline), kCFAllocatorDefault, uintptr(data), 0, 0, 0, 0) - CFRelease(data) - return CFRef(ret) + // Returns NULL if the data passed in the data parameter is not a valid + // DER-encoded X.509 certificate. + if ret == 0 { + return 0, errors.New("SecCertificateCreateWithData: invalid certificate") + } + return CFRef(ret), nil } func x509_SecCertificateCreateWithData_trampoline() diff --git a/src/crypto/x509/root_darwin.go b/src/crypto/x509/root_darwin.go index ad365f577e..4759462653 100644 --- a/src/crypto/x509/root_darwin.go +++ b/src/crypto/x509/root_darwin.go @@ -12,8 +12,8 @@ import ( func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate, err error) { certs := macOS.CFArrayCreateMutable() defer macOS.ReleaseCFArray(certs) - leaf := macOS.SecCertificateCreateWithData(c.Raw) - if leaf == 0 { + leaf, err := macOS.SecCertificateCreateWithData(c.Raw) + if err != nil { return nil, errors.New("invalid leaf certificate") } macOS.CFArrayAppendValue(certs, leaf) @@ -23,8 +23,8 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate if err != nil { return nil, err } - sc := macOS.SecCertificateCreateWithData(c.Raw) - if sc != 0 { + sc, err := macOS.SecCertificateCreateWithData(c.Raw) + if err == nil { macOS.CFArrayAppendValue(certs, sc) } } From ca1e509552cab36072016de44234f30072b9e703 Mon Sep 17 00:00:00 2001 From: Dmitri Shuralyov Date: Fri, 18 Mar 2022 20:15:15 -0400 Subject: [PATCH 025/125] cmd/dist: delete special case for release branches without VERSION MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit findgoversion has some logic from before the go1 release that only has effect when on a release branch without a VERSION file. Starting with release-branch.go1 and the go1 tag a decade ago, release branch have always had a VERSION file checked in. (The commit that adds/updates the VERSION file is what is tagged.) Since we have no need to support old branches like release-branch.r60, and such scenarios don't come up in modern Go, delete it to simplify this code a bit. Should the VERSION file situation change, we'd need to rework this code anyway. Fixes #42345. Change-Id: I13f27babd37aaa5cec30fefde1b8e6ccce816461 Reviewed-on: https://go-review.googlesource.com/c/go/+/393954 Trust: Daniel Martí Trust: Dmitri Shuralyov Run-TryBot: Dmitri Shuralyov TryBot-Result: Gopher Robot Auto-Submit: Dmitri Shuralyov Reviewed-by: Ian Lance Taylor --- src/cmd/dist/build.go | 76 +++++++++---------------------------------- 1 file changed, 16 insertions(+), 60 deletions(-) diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index 4dfaf83ef7..d224cef2a8 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -316,34 +316,6 @@ func chomp(s string) string { return strings.TrimRight(s, " \t\r\n") } -func branchtag(branch string) (tag string, precise bool) { - log := run(goroot, CheckExit, "git", "log", "--decorate=full", "--format=format:%d", "master.."+branch) - tag = branch - for row, line := range strings.Split(log, "\n") { - // Each line is either blank, or looks like - // (tag: refs/tags/go1.4rc2, refs/remotes/origin/release-branch.go1.4, refs/heads/release-branch.go1.4) - // We need to find an element starting with refs/tags/. - const s = " refs/tags/" - i := strings.Index(line, s) - if i < 0 { - continue - } - // Trim off known prefix. - line = line[i+len(s):] - // The tag name ends at a comma or paren. - j := strings.IndexAny(line, ",)") - if j < 0 { - continue // malformed line; ignore it - } - tag = line[:j] - if row == 0 { - precise = true // tag denotes HEAD - } - break - } - return -} - // findgoversion determines the Go version to use in the version string. func findgoversion() string { // The $GOROOT/VERSION file takes priority, for distributions @@ -395,42 +367,26 @@ func findgoversion() string { } // Otherwise, use Git. - // What is the current branch? - branch := chomp(run(goroot, CheckExit, "git", "rev-parse", "--abbrev-ref", "HEAD")) - - // What are the tags along the current branch? - tag := "devel" - precise := false - - // If we're on a release branch, use the closest matching tag - // that is on the release branch (and not on the master branch). - if strings.HasPrefix(branch, "release-branch.") { - tag, precise = branchtag(branch) - } - - if !precise { - // Tag does not point at HEAD; add 1.x base version, hash, and date to version. - // - // Note that we lightly parse internal/goversion/goversion.go to - // obtain the base version. We can't just import the package, - // because cmd/dist is built with a bootstrap GOROOT which could - // be an entirely different version of Go, like 1.4. We assume - // that the file contains "const Version = ". - - goversionSource := readfile(pathf("%s/src/internal/goversion/goversion.go", goroot)) - m := regexp.MustCompile(`(?m)^const Version = (\d+)`).FindStringSubmatch(goversionSource) - if m == nil { - fatalf("internal/goversion/goversion.go does not contain 'const Version = ...'") - } - tag += fmt.Sprintf(" go1.%s-", m[1]) - - tag += chomp(run(goroot, CheckExit, "git", "log", "-n", "1", "--format=format:%h %cd", "HEAD")) + // + // Include 1.x base version, hash, and date in the version. + // + // Note that we lightly parse internal/goversion/goversion.go to + // obtain the base version. We can't just import the package, + // because cmd/dist is built with a bootstrap GOROOT which could + // be an entirely different version of Go, like 1.4. We assume + // that the file contains "const Version = ". + goversionSource := readfile(pathf("%s/src/internal/goversion/goversion.go", goroot)) + m := regexp.MustCompile(`(?m)^const Version = (\d+)`).FindStringSubmatch(goversionSource) + if m == nil { + fatalf("internal/goversion/goversion.go does not contain 'const Version = ...'") } + version := fmt.Sprintf("devel go1.%s-", m[1]) + version += chomp(run(goroot, CheckExit, "git", "log", "-n", "1", "--format=format:%h %cd", "HEAD")) // Cache version. - writefile(tag, path, 0) + writefile(version, path, 0) - return tag + return version } // isGitRepo reports whether the working directory is inside a Git repository. From 1ac16586421070cdc76c62b5dfd5e74a4b47fca8 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Wed, 16 Feb 2022 10:01:20 -0500 Subject: [PATCH 026/125] cmd/go: remove arbitrary sleep in TestScript/test_chatty_parallel_success_sleepy (Also rename it to no longer describe itself in terms of sleeping.) This test previously relied on the scheduler to wake up a goroutine to write the "--- PASS: TestFast" line within 100ms of TestFast actually finishing. On some platforms, even that long a delay is apparently too short. Instead, we now use a deterministic "=== RUN" line instead of a timing-dependent "--- PASS" line to interrupt the output. Fixes #51221 Change-Id: I3997640fb7577e29e3866a82d4d49a3a70a4b033 Reviewed-on: https://go-review.googlesource.com/c/go/+/386154 Trust: Bryan Mills Run-TryBot: Bryan Mills TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- .../test_chatty_parallel_success_run.txt | 41 +++++++++++++++++++ .../test_chatty_parallel_success_sleepy.txt | 39 ------------------ 2 files changed, 41 insertions(+), 39 deletions(-) create mode 100644 src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt delete mode 100644 src/cmd/go/testdata/script/test_chatty_parallel_success_sleepy.txt diff --git a/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt b/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt new file mode 100644 index 0000000000..b0f4cc1977 --- /dev/null +++ b/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt @@ -0,0 +1,41 @@ +# Run parallel chatty tests. Assert on CONT lines. This test makes sure that +# multiple parallel outputs have the appropriate CONT lines between them. +go test -parallel 3 chatty_parallel -v + +stdout '=== RUN TestInterruptor/interruption\n=== CONT TestLog\n chatty_parallel_test.go:28: this is the second TestLog log\n--- PASS: TestLog \([0-9.]{4}s\)' + +-- go.mod -- +module chatty_parallel + +go 1.18 +-- chatty_parallel_test.go -- +package chatty_parallel_test + +import ( + "testing" +) + +var ( + afterFirstLog = make(chan struct{}) + afterSubTest = make(chan struct{}) + afterSecondLog = make(chan struct{}) +) + +func TestInterruptor(t *testing.T) { + t.Parallel() + + <-afterFirstLog + t.Run("interruption", func (t *testing.T) {}) + close(afterSubTest) + <-afterSecondLog // Delay the "PASS: TestInterruptor" line until after "CONT TestLog". +} + +func TestLog(t *testing.T) { + t.Parallel() + + t.Logf("this is the first TestLog log") + close(afterFirstLog) + <-afterSubTest + t.Logf("this is the second TestLog log") + close(afterSecondLog) +} diff --git a/src/cmd/go/testdata/script/test_chatty_parallel_success_sleepy.txt b/src/cmd/go/testdata/script/test_chatty_parallel_success_sleepy.txt deleted file mode 100644 index e651a7ed24..0000000000 --- a/src/cmd/go/testdata/script/test_chatty_parallel_success_sleepy.txt +++ /dev/null @@ -1,39 +0,0 @@ -# Run parallel chatty tests. Assert on CONT lines. This test makes sure that -# multiple parallel outputs have the appropriate CONT lines between them. -go test -parallel 3 chatty_parallel_test.go -v - -stdout '--- PASS: TestFast \([0-9.]{4}s\)\n=== CONT TestSlow\n chatty_parallel_test.go:31: this is the second TestSlow log\n--- PASS: TestSlow \([0-9.]{4}s\)' - --- chatty_parallel_test.go -- -package chatty_parallel_test - -import ( - "testing" - "time" -) - -var ( - run = make(chan struct{}) - afterFirstLog = make(chan struct{}) - afterPass = make(chan struct{}) -) - -func TestFast(t *testing.T) { - t.Parallel() - - <-afterFirstLog - t.Cleanup(func() { - close(afterPass) - }) -} - -func TestSlow(t *testing.T) { - t.Parallel() - - t.Logf("this is the first TestSlow log") - close(afterFirstLog) - - <-afterPass - time.Sleep(100 * time.Millisecond) - t.Logf("this is the second TestSlow log") -} From 3b7fce24cda8b9b245bae94aee9fafea87926c50 Mon Sep 17 00:00:00 2001 From: David Chase Date: Wed, 30 Mar 2022 12:01:21 -0400 Subject: [PATCH 027/125] cmd: make go and moddeps tests insensitive to presence of src/go.work If there is a go.work file in src, "go test cmd/internal/moddeps" and "go test cmd/go" fail. Setting GOWORK=off in various command invocations avoids this problem. Change-Id: I89fd021ff94998ceda6a3bbc4c3743f08558f98b Reviewed-on: https://go-review.googlesource.com/c/go/+/396777 Trust: Bryan Mills Reviewed-by: Bryan Mills Trust: David Chase Run-TryBot: David Chase TryBot-Result: Gopher Robot --- src/cmd/go/testdata/script/mod_dot.txt | 1 + src/cmd/internal/moddeps/moddeps_test.go | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cmd/go/testdata/script/mod_dot.txt b/src/cmd/go/testdata/script/mod_dot.txt index cb60e988b6..aa24986c72 100644 --- a/src/cmd/go/testdata/script/mod_dot.txt +++ b/src/cmd/go/testdata/script/mod_dot.txt @@ -1,3 +1,4 @@ +env GOWORK=off env GO111MODULE=on # golang.org/issue/32917 and golang.org/issue/28459: 'go build' and 'go test' diff --git a/src/cmd/internal/moddeps/moddeps_test.go b/src/cmd/internal/moddeps/moddeps_test.go index a63ac71a16..053cb8f548 100644 --- a/src/cmd/internal/moddeps/moddeps_test.go +++ b/src/cmd/internal/moddeps/moddeps_test.go @@ -55,7 +55,7 @@ func TestAllDependencies(t *testing.T) { // dependencies are vendored. If any imported package is missing, // 'go list -deps' will fail when attempting to load it. cmd := exec.Command(goBin, "list", "-mod=vendor", "-deps", "./...") - cmd.Env = append(os.Environ(), "GO111MODULE=on") + cmd.Env = append(os.Environ(), "GO111MODULE=on", "GOWORK=off") cmd.Dir = m.Dir cmd.Stderr = new(strings.Builder) _, err := cmd.Output() @@ -69,7 +69,7 @@ func TestAllDependencies(t *testing.T) { // There is no vendor directory, so the module must have no dependencies. // Check that the list of active modules contains only the main module. cmd := exec.Command(goBin, "list", "-mod=readonly", "-m", "all") - cmd.Env = append(os.Environ(), "GO111MODULE=on") + cmd.Env = append(os.Environ(), "GO111MODULE=on", "GOWORK=off") cmd.Dir = m.Dir cmd.Stderr = new(strings.Builder) out, err := cmd.Output() @@ -197,6 +197,7 @@ func TestAllDependencies(t *testing.T) { // Add GOROOTcopy/bin and bundleDir to front of PATH. "PATH="+filepath.Join(gorootCopyDir, "bin")+string(filepath.ListSeparator)+ bundleDir+string(filepath.ListSeparator)+os.Getenv("PATH"), + "GOWORK=off", ), } goBinCopy := filepath.Join(gorootCopyDir, "bin", "go") @@ -463,7 +464,7 @@ func findGorootModules(t *testing.T) []gorootModule { // Use 'go list' to describe the module contained in this directory (but // not its dependencies). cmd := exec.Command(goBin, "list", "-json", "-m") - cmd.Env = append(os.Environ(), "GO111MODULE=on") + cmd.Env = append(os.Environ(), "GO111MODULE=on", "GOWORK=off") cmd.Dir = dir cmd.Stderr = new(strings.Builder) out, err := cmd.Output() From 077573018027c30e5f422d50f0b96e1733ac6001 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Wed, 30 Mar 2022 13:23:37 -0700 Subject: [PATCH 028/125] cmd/compile/internal/syntax: better errors for syntax errors in lists For syntax errors in various (syntactic) lists, instead of reporting a set of "expected" tokens (which may be incomplete), provide context and mention "possibly missing" tokens. The result is a friendlier and more accurate error message. Fixes #49205. Change-Id: I38ae7bf62febfe790075e62deb33ec8c17d64476 Reviewed-on: https://go-review.googlesource.com/c/go/+/396914 Trust: Robert Griesemer Reviewed-by: Ian Lance Taylor --- src/cmd/compile/internal/syntax/parser.go | 16 +++++------ .../internal/syntax/testdata/issue49205.go | 27 +++++++++++++++++++ test/fixedbugs/issue13319.go | 4 +-- test/syntax/composite.go | 2 +- 4 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 src/cmd/compile/internal/syntax/testdata/issue49205.go diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index 805bf13aff..39ea0cc224 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -472,7 +472,7 @@ func isEmptyFuncDecl(dcl Decl) bool { // // list = [ f { sep f } [sep] ] close . // -func (p *parser) list(sep, close token, f func() bool) Pos { +func (p *parser) list(context string, sep, close token, f func() bool) Pos { if debug && (sep != _Comma && sep != _Semi || close != _Rparen && close != _Rbrace && close != _Rbrack) { panic("invalid sep or close argument for list") } @@ -482,7 +482,7 @@ func (p *parser) list(sep, close token, f func() bool) Pos { done = f() // sep is optional before close if !p.got(sep) && p.tok != close { - p.syntaxError(fmt.Sprintf("expecting %s or %s", tokstring(sep), tokstring(close))) + p.syntaxError(fmt.Sprintf("in %s; possibly missing %s or %s", context, tokstring(sep), tokstring(close))) p.advance(_Rparen, _Rbrack, _Rbrace) if p.tok != close { // position could be better but we had an error so we don't care @@ -502,7 +502,7 @@ func (p *parser) appendGroup(list []Decl, f func(*Group) Decl) []Decl { g := new(Group) p.clearPragma() p.next() // must consume "(" after calling clearPragma! - p.list(_Semi, _Rparen, func() bool { + p.list("grouped declaration", _Semi, _Rparen, func() bool { if x := f(g); x != nil { list = append(list, x) } @@ -1233,7 +1233,7 @@ func (p *parser) complitexpr() *CompositeLit { p.xnest++ p.want(_Lbrace) - x.Rbrace = p.list(_Comma, _Rbrace, func() bool { + x.Rbrace = p.list("composite literal", _Comma, _Rbrace, func() bool { // value e := p.bare_complitexpr() if p.tok == _Colon { @@ -1477,7 +1477,7 @@ func (p *parser) structType() *StructType { p.want(_Struct) p.want(_Lbrace) - p.list(_Semi, _Rbrace, func() bool { + p.list("struct type", _Semi, _Rbrace, func() bool { p.fieldDecl(typ) return false }) @@ -1497,7 +1497,7 @@ func (p *parser) interfaceType() *InterfaceType { p.want(_Interface) p.want(_Lbrace) - p.list(_Semi, _Rbrace, func() bool { + p.list("interface type", _Semi, _Rbrace, func() bool { switch p.tok { case _Name: f := p.methodDecl() @@ -1980,7 +1980,7 @@ func (p *parser) paramList(name *Name, typ Expr, close token, requireNames bool) var named int // number of parameters that have an explicit name and type var typed int // number of parameters that have an explicit type - end := p.list(_Comma, close, func() bool { + end := p.list("parameter list", _Comma, close, func() bool { var par *Field if typ != nil { if debug && name == nil { @@ -2660,7 +2660,7 @@ func (p *parser) argList() (list []Expr, hasDots bool) { } p.xnest++ - p.list(_Comma, _Rparen, func() bool { + p.list("argument list", _Comma, _Rparen, func() bool { list = append(list, p.expr()) hasDots = p.got(_DotDotDot) return hasDots diff --git a/src/cmd/compile/internal/syntax/testdata/issue49205.go b/src/cmd/compile/internal/syntax/testdata/issue49205.go new file mode 100644 index 0000000000..bbcc950c5c --- /dev/null +++ b/src/cmd/compile/internal/syntax/testdata/issue49205.go @@ -0,0 +1,27 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package p + +// test case from issue + +type _ interface{ + m /* ERROR unexpected int in interface type; possibly missing semicolon or newline or } */ int +} + +// other cases where the fix for this issue affects the error message + +const ( + x int = 10 /* ERROR unexpected literal "foo" in grouped declaration; possibly missing semicolon or newline or \) */ "foo" +) + +var _ = []int{1, 2, 3 /* ERROR unexpected int in composite literal; possibly missing comma or } */ int } + +type _ struct { + x y /* ERROR syntax error: unexpected comma in struct type; possibly missing semicolon or newline or } */ , +} + +func f(a, b c /* ERROR unexpected d in parameter list; possibly missing comma or \) */ d) { + f(a, b, c /* ERROR unexpected d in argument list; possibly missing comma or \) */ d) +} diff --git a/test/fixedbugs/issue13319.go b/test/fixedbugs/issue13319.go index c9b4896a05..7e1df3e45e 100644 --- a/test/fixedbugs/issue13319.go +++ b/test/fixedbugs/issue13319.go @@ -9,10 +9,10 @@ package main func f(int, int) { switch x { case 1: - f(1, g() // ERROR "expecting \)|expecting comma or \)" + f(1, g() // ERROR "expecting \)|possibly missing comma or \)" case 2: f() case 3: - f(1, g() // ERROR "expecting \)|expecting comma or \)" + f(1, g() // ERROR "expecting \)|possibly missing comma or \)" } } diff --git a/test/syntax/composite.go b/test/syntax/composite.go index f891931b6c..b4e03f3167 100644 --- a/test/syntax/composite.go +++ b/test/syntax/composite.go @@ -7,5 +7,5 @@ package main var a = []int{ - 3 // ERROR "need trailing comma before newline in composite literal|expecting comma or }" + 3 // ERROR "need trailing comma before newline in composite literal|possibly missing comma or }" } From 0a6ddcc4f03b5a89bf2eadee1fe284faf0e20be2 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Wed, 30 Mar 2022 15:09:13 -0700 Subject: [PATCH 029/125] go/types, types2: no "imported but not used" error for unimported packages If a package could not be imported for whatever reason, the type checker creates fake package with which it continues for more tolerant type checking. Do not report an "imported but not used" error in that case. Clarify a few comments along the way. Fixes #43109. Change-Id: Ifeec0daa688fbf666412dc9176ff1522d02a23ef Reviewed-on: https://go-review.googlesource.com/c/go/+/396875 Trust: Robert Griesemer Reviewed-by: Ian Lance Taylor --- src/cmd/compile/internal/types2/resolver.go | 13 +++++++------ .../types2/testdata/fixedbugs/issue43109.go | 10 ++++++++++ src/go/types/resolver.go | 13 +++++++------ src/go/types/testdata/fixedbugs/issue43109.go | 10 ++++++++++ 4 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 src/cmd/compile/internal/types2/testdata/fixedbugs/issue43109.go create mode 100644 src/go/types/testdata/fixedbugs/issue43109.go diff --git a/src/cmd/compile/internal/types2/resolver.go b/src/cmd/compile/internal/types2/resolver.go index 61963cb043..5c64ecdfc8 100644 --- a/src/cmd/compile/internal/types2/resolver.go +++ b/src/cmd/compile/internal/types2/resolver.go @@ -179,8 +179,9 @@ func (check *Checker) importPackage(pos syntax.Pos, path, dir string) *Package { // package should be complete or marked fake, but be cautious if imp.complete || imp.fake { check.impMap[key] = imp - // Once we've formatted an error message once, keep the pkgPathMap - // up-to-date on subsequent imports. + // Once we've formatted an error message, keep the pkgPathMap + // up-to-date on subsequent imports. It is used for package + // qualification in error messages. if check.pkgPathMap != nil { check.markImports(imp) } @@ -268,7 +269,7 @@ func (check *Checker) collectObjects() { if s.LocalPkgName != nil { name = s.LocalPkgName.Value if path == "C" { - // match cmd/compile (not prescribed by spec) + // match 1.17 cmd/compile (not prescribed by spec) check.error(s.LocalPkgName, `cannot rename import "C"`) continue } @@ -295,8 +296,8 @@ func (check *Checker) collectObjects() { check.recordImplicit(s, pkgName) } - if path == "C" { - // match cmd/compile (not prescribed by spec) + if imp.fake { + // match 1.17 cmd/compile (not prescribed by spec) pkgName.used = true } @@ -700,7 +701,7 @@ func (a inSourceOrder) Swap(i, j int) { a[i], a[j] = a[j], a[i] } // unusedImports checks for unused imports. func (check *Checker) unusedImports() { - // if function bodies are not checked, packages' uses are likely missing - don't check + // If function bodies are not checked, packages' uses are likely missing - don't check. if check.conf.IgnoreFuncBodies { return } diff --git a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue43109.go b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue43109.go new file mode 100644 index 0000000000..a4533c9bf7 --- /dev/null +++ b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue43109.go @@ -0,0 +1,10 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Ensure there is no "imported but not used" error +// if a package wasn't imported in the first place. + +package p + +import . "/foo" // ERROR could not import \/foo diff --git a/src/go/types/resolver.go b/src/go/types/resolver.go index 9edf41bf3c..ae21c6d927 100644 --- a/src/go/types/resolver.go +++ b/src/go/types/resolver.go @@ -192,8 +192,9 @@ func (check *Checker) importPackage(at positioner, path, dir string) *Package { // package should be complete or marked fake, but be cautious if imp.complete || imp.fake { check.impMap[key] = imp - // Once we've formatted an error message once, keep the pkgPathMap - // up-to-date on subsequent imports. + // Once we've formatted an error message, keep the pkgPathMap + // up-to-date on subsequent imports. It is used for package + // qualification in error messages. if check.pkgPathMap != nil { check.markImports(imp) } @@ -269,7 +270,7 @@ func (check *Checker) collectObjects() { if d.spec.Name != nil { name = d.spec.Name.Name if path == "C" { - // match cmd/compile (not prescribed by spec) + // match 1.17 cmd/compile (not prescribed by spec) check.errorf(d.spec.Name, _ImportCRenamed, `cannot rename import "C"`) return } @@ -296,8 +297,8 @@ func (check *Checker) collectObjects() { check.recordImplicit(d.spec, pkgName) } - if path == "C" { - // match cmd/compile (not prescribed by spec) + if imp.fake { + // match 1.17 cmd/compile (not prescribed by spec) pkgName.used = true } @@ -673,7 +674,7 @@ func (a inSourceOrder) Swap(i, j int) { a[i], a[j] = a[j], a[i] } // unusedImports checks for unused imports. func (check *Checker) unusedImports() { - // if function bodies are not checked, packages' uses are likely missing - don't check + // If function bodies are not checked, packages' uses are likely missing - don't check. if check.conf.IgnoreFuncBodies { return } diff --git a/src/go/types/testdata/fixedbugs/issue43109.go b/src/go/types/testdata/fixedbugs/issue43109.go new file mode 100644 index 0000000000..a4533c9bf7 --- /dev/null +++ b/src/go/types/testdata/fixedbugs/issue43109.go @@ -0,0 +1,10 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Ensure there is no "imported but not used" error +// if a package wasn't imported in the first place. + +package p + +import . "/foo" // ERROR could not import \/foo From 81f1cc52abb0b004d8cd1b130ea293026419acac Mon Sep 17 00:00:00 2001 From: Emmanuel T Odeke Date: Sat, 5 Mar 2022 14:48:27 +0300 Subject: [PATCH 030/125] html/template: make FuncMap a type alias of text/template.FuncMap In preparation to make html/template and text/template use a single generics package, this change make FuncMap a type alias of text/template.FuncMap. Fixes #46121 Change-Id: I5e94cc8fdf4fe029ff223992b5cdfe79f9c098ab Reviewed-on: https://go-review.googlesource.com/c/go/+/389156 Trust: Emmanuel Odeke Run-TryBot: Emmanuel Odeke TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- api/except.txt | 2 ++ api/next/46121.txt | 2 ++ src/html/template/template.go | 9 +-------- 3 files changed, 5 insertions(+), 8 deletions(-) create mode 100644 api/next/46121.txt diff --git a/api/except.txt b/api/except.txt index b9972c121c..2acd444adf 100644 --- a/api/except.txt +++ b/api/except.txt @@ -505,3 +505,5 @@ pkg unicode, const Version = "6.3.0" pkg unicode, const Version = "7.0.0" pkg unicode, const Version = "8.0.0" pkg unicode, const Version = "9.0.0" +pkg html/template, method (*Template) Funcs(FuncMap) *Template +pkg html/template, type FuncMap map[string]interface{} diff --git a/api/next/46121.txt b/api/next/46121.txt new file mode 100644 index 0000000000..a50d6456c8 --- /dev/null +++ b/api/next/46121.txt @@ -0,0 +1,2 @@ +pkg html/template, method (*Template) Funcs(template.FuncMap) *Template #46121 +pkg html/template, type FuncMap = template.FuncMap #46121 diff --git a/src/html/template/template.go b/src/html/template/template.go index 7eba716f1b..952f52979d 100644 --- a/src/html/template/template.go +++ b/src/html/template/template.go @@ -328,14 +328,7 @@ func (t *Template) Name() string { return t.text.Name() } -// FuncMap is the type of the map defining the mapping from names to -// functions. Each function must have either a single return value, or two -// return values of which the second has type error. In that case, if the -// second (error) argument evaluates to non-nil during execution, execution -// terminates and Execute returns that error. FuncMap has the same base type -// as FuncMap in "text/template", copied here so clients need not import -// "text/template". -type FuncMap map[string]any +type FuncMap = template.FuncMap // Funcs adds the elements of the argument map to the template's function map. // It must be called before the template is parsed. From ea858734be6e711fa2d41fdeb6038ff09e3c7841 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Wed, 30 Mar 2022 14:13:39 -0700 Subject: [PATCH 031/125] spec: clarify type term restriction for type parameters Be clear that the type of a term (not the term itself, which may be of the form ~P) cannot be a type parameter. For #50420. Change-Id: I388d57be0618393d7ebe2c74ec04c1ebe3f33f7d Reviewed-on: https://go-review.googlesource.com/c/go/+/396915 Trust: Robert Griesemer Run-TryBot: Robert Griesemer Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot --- doc/go_spec.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/doc/go_spec.html b/doc/go_spec.html index ad12fcfaa9..2255b6f8e2 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1,6 +1,6 @@ @@ -1454,7 +1454,8 @@ type Float interface {

-In a union, a term cannot be a type parameter, and the type sets of all +The type T in a term of the form T or ~T cannot +be a type parameter, and the type sets of all non-interface terms must be pairwise disjoint (the pairwise intersection of the type sets must be empty). Given a type parameter P:

@@ -1462,7 +1463,7 @@ Given a type parameter P:
 interface {
 	P                // illegal: P is a type parameter
-	int | P          // illegal: P is a type parameter
+	int | ~P         // illegal: P is a type parameter
 	~int | MyInt     // illegal: the type sets for ~int and MyInt are not disjoint (~int includes MyInt)
 	float32 | Float  // overlapping type sets but Float is an interface
 }
@@ -4195,7 +4196,7 @@ type parameter list    type arguments    after substitution
 

For a generic function, type arguments may be provided explicitly, or they may be partially or completely inferred. -A generic function that is is not called requires a +A generic function that is not called requires a type argument list for instantiation; if the list is partial, all remaining type arguments must be inferrable. A generic function that is called may provide a (possibly partial) type From 3943d97dc7bb1d0c9574ac5f372a10952ebae7b1 Mon Sep 17 00:00:00 2001 From: qmuntal Date: Thu, 17 Feb 2022 10:44:13 +0100 Subject: [PATCH 032/125] cmd/go: add comments to C.* special functions Adding comments to these functions help IDE tooling to display meaningful documentation, p.e. on hover. Tested with gopls and vscode. Updates #51134 Change-Id: Ie956f7cf192af0e828def4a141783f3a2589f77d Reviewed-on: https://go-review.googlesource.com/c/go/+/386414 Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Reviewed-by: Russ Cox Run-TryBot: Russ Cox Auto-Submit: Russ Cox --- src/cmd/cgo/out.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go index 4968f7059d..e0803866c8 100644 --- a/src/cmd/cgo/out.go +++ b/src/cmd/cgo/out.go @@ -1604,6 +1604,7 @@ const goStringDef = ` //go:linkname _cgo_runtime_gostring runtime.gostring func _cgo_runtime_gostring(*_Ctype_char) string +// GoString converts the C string p into a Go string. func _Cfunc_GoString(p *_Ctype_char) string { return _cgo_runtime_gostring(p) } @@ -1613,6 +1614,7 @@ const goStringNDef = ` //go:linkname _cgo_runtime_gostringn runtime.gostringn func _cgo_runtime_gostringn(*_Ctype_char, int) string +// GoStringN converts the C data p with explicit length l to a Go string. func _Cfunc_GoStringN(p *_Ctype_char, l _Ctype_int) string { return _cgo_runtime_gostringn(p, int(l)) } @@ -1622,12 +1624,19 @@ const goBytesDef = ` //go:linkname _cgo_runtime_gobytes runtime.gobytes func _cgo_runtime_gobytes(unsafe.Pointer, int) []byte +// GoBytes converts the C data p with explicit length l to a Go []byte. func _Cfunc_GoBytes(p unsafe.Pointer, l _Ctype_int) []byte { return _cgo_runtime_gobytes(p, int(l)) } ` const cStringDef = ` +// CString converts the Go string s to a C string. +// +// The C string is allocated in the C heap using malloc. +// It is the caller's responsibility to arrange for it to be +// freed, such as by calling C.free (be sure to include stdlib.h +// if C.free is needed). func _Cfunc_CString(s string) *_Ctype_char { p := _cgo_cmalloc(uint64(len(s)+1)) pp := (*[1<<30]byte)(p) @@ -1638,6 +1647,12 @@ func _Cfunc_CString(s string) *_Ctype_char { ` const cBytesDef = ` +// CBytes converts the Go []byte slice b to a C array. +// +// The C array is allocated in the C heap using malloc. +// It is the caller's responsibility to arrange for it to be +// freed, such as by calling C.free (be sure to include stdlib.h +// if C.free is needed). func _Cfunc_CBytes(b []byte) unsafe.Pointer { p := _cgo_cmalloc(uint64(len(b))) pp := (*[1<<30]byte)(p) From 90b29e186576d2682c024b0f0b90c6ad98e824d7 Mon Sep 17 00:00:00 2001 From: qmuntal Date: Wed, 19 Jan 2022 17:01:25 +0100 Subject: [PATCH 033/125] cmd/cgo: use size_t instead of __SIZE_TYPE__ __SIZE_TYPE__ is a GCC type which has been superseded by size_t -define in stddef.h- since ISO C99. cmd/cgo already uses size_t in many places, but still generates several files using __SIZE_TYPES__, most notably the _cgo_export.h. This change replaces all __SIZE_TYPES__ occurrences with size_t. Updates #36233 Change-Id: Id8a99b5d7763caab9333eab9b585e78249a37415 Reviewed-on: https://go-review.googlesource.com/c/go/+/379474 Run-TryBot: Tobias Klauser TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Reviewed-by: Tobias Klauser --- src/cmd/cgo/out.go | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go index e0803866c8..8ead173e64 100644 --- a/src/cmd/cgo/out.go +++ b/src/cmd/cgo/out.go @@ -57,18 +57,19 @@ func (p *Package) writeDefs() { fflg.Close() // Write C main file for using gcc to resolve imports. + fmt.Fprintf(fm, "#include \n") // For size_t below. fmt.Fprintf(fm, "int main() { return 0; }\n") if *importRuntimeCgo { - fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*) __attribute__((unused)), void *a __attribute__((unused)), int c __attribute__((unused)), __SIZE_TYPE__ ctxt __attribute__((unused))) { }\n") - fmt.Fprintf(fm, "__SIZE_TYPE__ _cgo_wait_runtime_init_done(void) { return 0; }\n") - fmt.Fprintf(fm, "void _cgo_release_context(__SIZE_TYPE__ ctxt __attribute__((unused))) { }\n") + fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*) __attribute__((unused)), void *a __attribute__((unused)), int c __attribute__((unused)), size_t ctxt __attribute__((unused))) { }\n") + fmt.Fprintf(fm, "size_t _cgo_wait_runtime_init_done(void) { return 0; }\n") + fmt.Fprintf(fm, "void _cgo_release_context(size_t ctxt __attribute__((unused))) { }\n") fmt.Fprintf(fm, "char* _cgo_topofstack(void) { return (char*)0; }\n") } else { // If we're not importing runtime/cgo, we *are* runtime/cgo, // which provides these functions. We just need a prototype. - fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*), void *a, int c, __SIZE_TYPE__ ctxt);\n") - fmt.Fprintf(fm, "__SIZE_TYPE__ _cgo_wait_runtime_init_done(void);\n") - fmt.Fprintf(fm, "void _cgo_release_context(__SIZE_TYPE__);\n") + fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*), void *a, int c, size_t ctxt);\n") + fmt.Fprintf(fm, "size_t _cgo_wait_runtime_init_done(void);\n") + fmt.Fprintf(fm, "void _cgo_release_context(size_t);\n") } fmt.Fprintf(fm, "void _cgo_allocate(void *a __attribute__((unused)), int c __attribute__((unused))) { }\n") fmt.Fprintf(fm, "void _cgo_panic(void *a __attribute__((unused)), int c __attribute__((unused))) { }\n") @@ -886,9 +887,9 @@ func (p *Package) writeExports(fgo2, fm, fgcc, fgcch io.Writer) { fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Wpragmas\"\n") fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Waddress-of-packed-member\"\n") - fmt.Fprintf(fgcc, "extern void crosscall2(void (*fn)(void *), void *, int, __SIZE_TYPE__);\n") - fmt.Fprintf(fgcc, "extern __SIZE_TYPE__ _cgo_wait_runtime_init_done(void);\n") - fmt.Fprintf(fgcc, "extern void _cgo_release_context(__SIZE_TYPE__);\n\n") + fmt.Fprintf(fgcc, "extern void crosscall2(void (*fn)(void *), void *, int, size_t);\n") + fmt.Fprintf(fgcc, "extern size_t _cgo_wait_runtime_init_done(void);\n") + fmt.Fprintf(fgcc, "extern void _cgo_release_context(size_t);\n\n") fmt.Fprintf(fgcc, "extern char* _cgo_topofstack(void);") fmt.Fprintf(fgcc, "%s\n", tsanProlog) fmt.Fprintf(fgcc, "%s\n", msanProlog) @@ -992,7 +993,7 @@ func (p *Package) writeExports(fgo2, fm, fgcc, fgcch io.Writer) { fmt.Fprintf(fgcc, "\nCGO_NO_SANITIZE_THREAD") fmt.Fprintf(fgcc, "\n%s\n", s) fmt.Fprintf(fgcc, "{\n") - fmt.Fprintf(fgcc, "\t__SIZE_TYPE__ _cgo_ctxt = _cgo_wait_runtime_init_done();\n") + fmt.Fprintf(fgcc, "\tsize_t _cgo_ctxt = _cgo_wait_runtime_init_done();\n") // The results part of the argument structure must be // initialized to 0 so the write barriers generated by // the assignments to these fields in Go are safe. @@ -1561,7 +1562,7 @@ var msanProlog = noMsanProlog const builtinProlog = ` #line 1 "cgo-builtin-prolog" -#include /* for ptrdiff_t and size_t below */ +#include /* Define intgo when compiling with GCC. */ typedef ptrdiff_t intgo; @@ -1845,7 +1846,7 @@ void localCgoCheckResult(Eface val) { const builtinExportProlog = ` #line 1 "cgo-builtin-export-prolog" -#include /* for ptrdiff_t below */ +#include #ifndef GO_CGO_EXPORT_PROLOGUE_H #define GO_CGO_EXPORT_PROLOGUE_H @@ -1891,7 +1892,7 @@ typedef long long GoInt64; typedef unsigned long long GoUint64; typedef GoIntGOINTBITS GoInt; typedef GoUintGOINTBITS GoUint; -typedef __SIZE_TYPE__ GoUintptr; +typedef size_t GoUintptr; typedef float GoFloat32; typedef double GoFloat64; typedef float _Complex GoComplex64; @@ -1941,5 +1942,5 @@ static void GoInit(void) { runtime_iscgo = 1; } -extern __SIZE_TYPE__ _cgo_wait_runtime_init_done(void) __attribute__ ((weak)); +extern size_t _cgo_wait_runtime_init_done(void) __attribute__ ((weak)); ` From cc46cac3bc59c35e22e17471d70e28fd3705d4da Mon Sep 17 00:00:00 2001 From: Philippe Antoine Date: Sun, 20 Mar 2022 21:34:42 +0000 Subject: [PATCH 034/125] strings: limits allocation size for SplitN So that `strings.SplitN("", "T", int(144115188075855872))` does not panic. Change-Id: Iea00417e61780bcaf0fee02fa2b18026d89bc545 GitHub-Last-Rev: d1f45b44a8011ddb27c71e1bc9983b62b5d3d771 GitHub-Pull-Request: golang/go#51755 Reviewed-on: https://go-review.googlesource.com/c/go/+/393654 Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Trust: Tobias Klauser --- src/strings/strings.go | 3 +++ src/strings/strings_test.go | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/strings/strings.go b/src/strings/strings.go index 5793d9e26f..ed3184b59c 100644 --- a/src/strings/strings.go +++ b/src/strings/strings.go @@ -244,6 +244,9 @@ func genSplit(s, sep string, sepSave, n int) []string { n = Count(s, sep) + 1 } + if n > len(s)+1 { + n = len(s) + 1 + } a := make([]string, n) n-- i := 0 diff --git a/src/strings/strings_test.go b/src/strings/strings_test.go index 0f30ca738e..9e7fb85ddf 100644 --- a/src/strings/strings_test.go +++ b/src/strings/strings_test.go @@ -8,6 +8,7 @@ import ( "bytes" "fmt" "io" + "math" "math/rand" "reflect" "strconv" @@ -404,6 +405,7 @@ var splittests = []SplitTest{ {faces, "~", -1, []string{faces}}, {"1 2 3 4", " ", 3, []string{"1", "2", "3 4"}}, {"1 2", " ", 3, []string{"1", "2"}}, + {"", "T", math.MaxInt / 4, []string{""}}, } func TestSplit(t *testing.T) { From a80070e0cf0b65d619b6669a789d27746a5b2126 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Wed, 17 Nov 2021 01:36:15 +0700 Subject: [PATCH 035/125] math/big: call norm when returning success from Rat SetString After CL 24430, reflect.DeepEqual no longer returns true when comparing a *Rat built with (*Rat).SetString("0") with one built with (*Rat).SetInt64(0). These should be equivalent, but because (*Rat).SetString does not call norm() when returning the zero value, the result of reflect.DeepEqual will be false. One could suggest that developers should use (*Rat).Cmp instead of relying on reflect.DeepEqual, but if a (*Rat) is part of a larger struct that is being compared, this can be cumbersome. This is fixed by calling z.norm() when returning zero in SetString. Fixes #50944 Change-Id: Ib84ae975bf82fe02d1203aa9668a01960c0fd59d Reviewed-on: https://go-review.googlesource.com/c/go/+/364434 Reviewed-by: Katie Hockman Trust: Katie Hockman Trust: Ian Lance Taylor --- src/math/big/ratconv.go | 2 +- src/math/big/ratconv_test.go | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/math/big/ratconv.go b/src/math/big/ratconv.go index 90053a9c81..dadd4d7b8e 100644 --- a/src/math/big/ratconv.go +++ b/src/math/big/ratconv.go @@ -113,7 +113,7 @@ func (z *Rat) SetString(s string) (*Rat, bool) { // special-case 0 (see also issue #16176) if len(z.a.abs) == 0 { - return z, true + return z.norm(), true } // len(z.a.abs) > 0 diff --git a/src/math/big/ratconv_test.go b/src/math/big/ratconv_test.go index e55e655718..45a35608f4 100644 --- a/src/math/big/ratconv_test.go +++ b/src/math/big/ratconv_test.go @@ -9,6 +9,7 @@ import ( "fmt" "io" "math" + "reflect" "strconv" "strings" "testing" @@ -205,6 +206,14 @@ func TestRatSetString(t *testing.T) { } } +func TestRatSetStringZero(t *testing.T) { + got, _ := new(Rat).SetString("0") + want := new(Rat).SetInt64(0) + if !reflect.DeepEqual(got, want) { + t.Errorf("got %#+v, want %#+v", got, want) + } +} + func TestRatScan(t *testing.T) { var buf bytes.Buffer for i, test := range setStringTests { From 2b8178c14d8f71a3f022653c2e779e92eea9cdec Mon Sep 17 00:00:00 2001 From: Sean Liao Date: Tue, 22 Mar 2022 20:53:10 +0000 Subject: [PATCH 036/125] text/template: remove newline special casing in documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updates #29770 Fixes #51872 Change-Id: Icee660c8cc6c69a79ad11e818dd8ab40a344e800 Reviewed-on: https://go-review.googlesource.com/c/go/+/394676 Reviewed-by: Daniel Martí Trust: Daniel Martí Trust: Ian Lance Taylor --- src/text/template/doc.go | 1 - 1 file changed, 1 deletion(-) diff --git a/src/text/template/doc.go b/src/text/template/doc.go index 10093881fb..58cc97371b 100644 --- a/src/text/template/doc.go +++ b/src/text/template/doc.go @@ -18,7 +18,6 @@ structure as execution proceeds. The input text for a template is UTF-8-encoded text in any format. "Actions"--data evaluations or control structures--are delimited by "{{" and "}}"; all text outside actions is copied to the output unchanged. -Except for raw strings, actions may not span newlines, although comments can. Once parsed, a template may be executed safely in parallel, although if parallel executions share a Writer the output may be interleaved. From ebe624dd30f7be1479a2224b60a0da1b152ec851 Mon Sep 17 00:00:00 2001 From: Shang Ding Date: Wed, 23 Feb 2022 19:35:21 -0600 Subject: [PATCH 037/125] net: clean up redundant if branch in dial Dialer.DialContext no longer performs a redundant check on the length of the fallback slice, because dialParallel already handles the situation where the fallback slice is empty or nil. Change-Id: Ibb16f4813fc55dec2939c54c10e665ff35bfe163 Reviewed-on: https://go-review.googlesource.com/c/go/+/387795 Run-TryBot: Tobias Klauser TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Reviewed-by: Tobias Klauser --- src/net/dial.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/net/dial.go b/src/net/dial.go index 486ced0f2a..9159e6b384 100644 --- a/src/net/dial.go +++ b/src/net/dial.go @@ -421,12 +421,7 @@ func (d *Dialer) DialContext(ctx context.Context, network, address string) (Conn primaries = addrs } - var c Conn - if len(fallbacks) > 0 { - c, err = sd.dialParallel(ctx, primaries, fallbacks) - } else { - c, err = sd.dialSerial(ctx, primaries) - } + c, err := sd.dialParallel(ctx, primaries, fallbacks) if err != nil { return nil, err } From 0a5bbba366de5bf833a742e9001538ea10122d6c Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Wed, 2 Feb 2022 13:26:16 -0500 Subject: [PATCH 038/125] cmd/link/internal/loadpe: refactor readpesym() Rewrite the helper "readpesym()" and the code that calls it to pass in most of the values it needs via a state object (the signature was getting a bit too busy/lengthy). No change in functionality, this is just a refactor. Updates #35006. Change-Id: I6153ee3a9be3eb885694323ae8e07ec4c8eed646 Reviewed-on: https://go-review.googlesource.com/c/go/+/382836 Reviewed-by: Cherry Mui Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/cmd/link/internal/loadpe/ldpe.go | 86 +++++++++++++++++----------- 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/src/cmd/link/internal/loadpe/ldpe.go b/src/cmd/link/internal/loadpe/ldpe.go index 9cc7effe1f..c9fde60d0f 100644 --- a/src/cmd/link/internal/loadpe/ldpe.go +++ b/src/cmd/link/internal/loadpe/ldpe.go @@ -173,14 +173,29 @@ func makeUpdater(l *loader.Loader, bld *loader.SymbolBuilder, s loader.Sym) *loa return bld } +// peLoaderState holds various bits of useful state information needed +// while loading a PE object file. +type peLoaderState struct { + l *loader.Loader + arch *sys.Arch + f *pe.File + sectsyms map[*pe.Section]loader.Sym + sectdata map[*pe.Section][]byte + localSymVersion int +} + // Load loads the PE file pn from input. // Symbols are written into syms, and a slice of the text symbols is returned. // If an .rsrc section or set of .rsrc$xx sections is found, its symbols are // returned as rsrc. func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Reader, pkg string, length int64, pn string) (textp []loader.Sym, rsrc []loader.Sym, err error) { - lookup := l.LookupOrCreateCgoExport - sectsyms := make(map[*pe.Section]loader.Sym) - sectdata := make(map[*pe.Section][]byte) + state := &peLoaderState{ + l: l, + arch: arch, + sectsyms: make(map[*pe.Section]loader.Sym), + sectdata: make(map[*pe.Section][]byte), + localSymVersion: localSymVersion, + } // Some input files are archives containing multiple of // object files, and pe.NewFile seeks to the start of @@ -194,6 +209,7 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read return nil, nil, err } defer f.Close() + state.f = f // TODO return error if found .cormeta @@ -210,7 +226,7 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read } name := fmt.Sprintf("%s(%s)", pkg, sect.Name) - s := lookup(name, localSymVersion) + s := state.l.LookupOrCreateCgoExport(name, localSymVersion) bld := l.MakeSymbolUpdater(s) switch sect.Characteristics & (IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE) { @@ -235,11 +251,11 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read if err != nil { return nil, nil, err } - sectdata[sect] = data + state.sectdata[sect] = data bld.SetData(data) } bld.SetSize(int64(sect.Size)) - sectsyms[sect] = s + state.sectsyms[sect] = s if sect.Name == ".rsrc" || strings.HasPrefix(sect.Name, ".rsrc$") { rsrc = append(rsrc, s) } @@ -247,7 +263,7 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read // load relocations for _, rsect := range f.Sections { - if _, found := sectsyms[rsect]; !found { + if _, found := state.sectsyms[rsect]; !found { continue } if rsect.NumberOfRelocations == 0 { @@ -263,13 +279,13 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read } splitResources := strings.HasPrefix(rsect.Name, ".rsrc$") - sb := l.MakeSymbolUpdater(sectsyms[rsect]) + sb := l.MakeSymbolUpdater(state.sectsyms[rsect]) for j, r := range rsect.Relocs { if int(r.SymbolTableIndex) >= len(f.COFFSymbols) { return nil, nil, fmt.Errorf("relocation number %d symbol index idx=%d cannot be large then number of symbols %d", j, r.SymbolTableIndex, len(f.COFFSymbols)) } pesym := &f.COFFSymbols[r.SymbolTableIndex] - _, gosym, err := readpesym(l, arch, lookup, f, pesym, sectsyms, localSymVersion) + _, gosym, err := state.readpesym(pesym) if err != nil { return nil, nil, err } @@ -292,20 +308,20 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read case sys.I386, sys.AMD64: switch r.Type { default: - return nil, nil, fmt.Errorf("%s: %v: unknown relocation type %v", pn, sectsyms[rsect], r.Type) + return nil, nil, fmt.Errorf("%s: %v: unknown relocation type %v", pn, state.sectsyms[rsect], r.Type) case IMAGE_REL_I386_REL32, IMAGE_REL_AMD64_REL32, IMAGE_REL_AMD64_ADDR32, // R_X86_64_PC32 IMAGE_REL_AMD64_ADDR32NB: rType = objabi.R_PCREL - rAdd = int64(int32(binary.LittleEndian.Uint32(sectdata[rsect][rOff:]))) + rAdd = int64(int32(binary.LittleEndian.Uint32(state.sectdata[rsect][rOff:]))) case IMAGE_REL_I386_DIR32NB, IMAGE_REL_I386_DIR32: rType = objabi.R_ADDR // load addend from image - rAdd = int64(int32(binary.LittleEndian.Uint32(sectdata[rsect][rOff:]))) + rAdd = int64(int32(binary.LittleEndian.Uint32(state.sectdata[rsect][rOff:]))) case IMAGE_REL_AMD64_ADDR64: // R_X86_64_64 rSize = 8 @@ -313,39 +329,39 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read rType = objabi.R_ADDR // load addend from image - rAdd = int64(binary.LittleEndian.Uint64(sectdata[rsect][rOff:])) + rAdd = int64(binary.LittleEndian.Uint64(state.sectdata[rsect][rOff:])) } case sys.ARM: switch r.Type { default: - return nil, nil, fmt.Errorf("%s: %v: unknown ARM relocation type %v", pn, sectsyms[rsect], r.Type) + return nil, nil, fmt.Errorf("%s: %v: unknown ARM relocation type %v", pn, state.sectsyms[rsect], r.Type) case IMAGE_REL_ARM_SECREL: rType = objabi.R_PCREL - rAdd = int64(int32(binary.LittleEndian.Uint32(sectdata[rsect][rOff:]))) + rAdd = int64(int32(binary.LittleEndian.Uint32(state.sectdata[rsect][rOff:]))) case IMAGE_REL_ARM_ADDR32, IMAGE_REL_ARM_ADDR32NB: rType = objabi.R_ADDR - rAdd = int64(int32(binary.LittleEndian.Uint32(sectdata[rsect][rOff:]))) + rAdd = int64(int32(binary.LittleEndian.Uint32(state.sectdata[rsect][rOff:]))) case IMAGE_REL_ARM_BRANCH24: rType = objabi.R_CALLARM - rAdd = int64(int32(binary.LittleEndian.Uint32(sectdata[rsect][rOff:]))) + rAdd = int64(int32(binary.LittleEndian.Uint32(state.sectdata[rsect][rOff:]))) } case sys.ARM64: switch r.Type { default: - return nil, nil, fmt.Errorf("%s: %v: unknown ARM64 relocation type %v", pn, sectsyms[rsect], r.Type) + return nil, nil, fmt.Errorf("%s: %v: unknown ARM64 relocation type %v", pn, state.sectsyms[rsect], r.Type) case IMAGE_REL_ARM64_ADDR32, IMAGE_REL_ARM64_ADDR32NB: rType = objabi.R_ADDR - rAdd = int64(int32(binary.LittleEndian.Uint32(sectdata[rsect][rOff:]))) + rAdd = int64(int32(binary.LittleEndian.Uint32(state.sectdata[rsect][rOff:]))) } } @@ -406,12 +422,12 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read var sect *pe.Section if pesym.SectionNumber > 0 { sect = f.Sections[pesym.SectionNumber-1] - if _, found := sectsyms[sect]; !found { + if _, found := state.sectsyms[sect]; !found { continue } } - bld, s, err := readpesym(l, arch, lookup, f, pesym, sectsyms, localSymVersion) + bld, s, err := state.readpesym(pesym) if err != nil { return nil, nil, err } @@ -430,7 +446,7 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read continue } else if pesym.SectionNumber > 0 && int(pesym.SectionNumber) <= len(f.Sections) { sect = f.Sections[pesym.SectionNumber-1] - if _, found := sectsyms[sect]; !found { + if _, found := state.sectsyms[sect]; !found { return nil, nil, fmt.Errorf("%s: %v: missing sect.sym", pn, s) } } else { @@ -446,12 +462,12 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read continue } outerName := l.SymName(l.OuterSym(s)) - sectName := l.SymName(sectsyms[sect]) + sectName := l.SymName(state.sectsyms[sect]) return nil, nil, fmt.Errorf("%s: duplicate symbol reference: %s in both %s and %s", pn, l.SymName(s), outerName, sectName) } bld = makeUpdater(l, bld, s) - sectsym := sectsyms[sect] + sectsym := state.sectsyms[sect] bld.SetType(l.SymType(sectsym)) l.AddInteriorSym(sectsym, s) bld.SetValue(int64(pesym.Value)) @@ -467,7 +483,7 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read // Sort outer lists by address, adding to textp. // This keeps textp in increasing address order. for _, sect := range f.Sections { - s := sectsyms[sect] + s := state.sectsyms[sect] if s == 0 { continue } @@ -490,17 +506,17 @@ func issect(s *pe.COFFSymbol) bool { return s.StorageClass == IMAGE_SYM_CLASS_STATIC && s.Type == 0 && s.Name[0] == '.' } -func readpesym(l *loader.Loader, arch *sys.Arch, lookup func(string, int) loader.Sym, f *pe.File, pesym *pe.COFFSymbol, sectsyms map[*pe.Section]loader.Sym, localSymVersion int) (*loader.SymbolBuilder, loader.Sym, error) { - symname, err := pesym.FullName(f.StringTable) +func (state *peLoaderState) readpesym(pesym *pe.COFFSymbol) (*loader.SymbolBuilder, loader.Sym, error) { + symname, err := pesym.FullName(state.f.StringTable) if err != nil { return nil, 0, err } var name string if issect(pesym) { - name = l.SymName(sectsyms[f.Sections[pesym.SectionNumber-1]]) + name = state.l.SymName(state.sectsyms[state.f.Sections[pesym.SectionNumber-1]]) } else { name = symname - switch arch.Family { + switch state.arch.Family { case sys.AMD64: if name == "__imp___acrt_iob_func" { // Do not rename __imp___acrt_iob_func into __acrt_iob_func, @@ -537,11 +553,11 @@ func readpesym(l *loader.Loader, arch *sys.Arch, lookup func(string, int) loader case IMAGE_SYM_DTYPE_FUNCTION, IMAGE_SYM_DTYPE_NULL: switch pesym.StorageClass { case IMAGE_SYM_CLASS_EXTERNAL: //global - s = lookup(name, 0) + s = state.l.LookupOrCreateCgoExport(name, 0) case IMAGE_SYM_CLASS_NULL, IMAGE_SYM_CLASS_STATIC, IMAGE_SYM_CLASS_LABEL: - s = lookup(name, localSymVersion) - bld = makeUpdater(l, bld, s) + s = state.l.LookupOrCreateCgoExport(name, state.localSymVersion) + bld = makeUpdater(state.l, bld, s) bld.SetDuplicateOK(true) default: @@ -549,12 +565,12 @@ func readpesym(l *loader.Loader, arch *sys.Arch, lookup func(string, int) loader } } - if s != 0 && l.SymType(s) == 0 && (pesym.StorageClass != IMAGE_SYM_CLASS_STATIC || pesym.Value != 0) { - bld = makeUpdater(l, bld, s) + if s != 0 && state.l.SymType(s) == 0 && (pesym.StorageClass != IMAGE_SYM_CLASS_STATIC || pesym.Value != 0) { + bld = makeUpdater(state.l, bld, s) bld.SetType(sym.SXREF) } if strings.HasPrefix(symname, "__imp_") { - bld = makeUpdater(l, bld, s) + bld = makeUpdater(state.l, bld, s) bld.SetGot(-2) // flag for __imp_ } From 821420d6bbc53d4cd8b3f9a903fccd0c6432eb6f Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Thu, 3 Feb 2022 08:11:53 -0500 Subject: [PATCH 039/125] cmd/link/internal/loadpe: generalize handling of "__imp_*" syms The existing PE file loader has a special case for the symbol "__acrt_iob_func", whose hosting object file contains both an actual definition and also a DLL import symbol "__imp___acrt_iob_func". The normal way of handling __imp_XXX symbols is for the host object loader to rename them to their intended target (e.g. "XXX") however if the target is also defined locally, you get a duplicate definition. This patch generalizes the def/import symbol detection to apply to all symbols in the object file being loaded (not just a hard-coded set), since it will be needed when reading things like crt2.o. Updates #35006. Change-Id: I0d0607c27bb7d5f3cb415bc95db816aa13746ba2 Reviewed-on: https://go-review.googlesource.com/c/go/+/382837 Reviewed-by: Cherry Mui Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/cmd/link/internal/loadpe/ldpe.go | 68 +++++++++++++++++++++------- 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/src/cmd/link/internal/loadpe/ldpe.go b/src/cmd/link/internal/loadpe/ldpe.go index c9fde60d0f..871ec73e01 100644 --- a/src/cmd/link/internal/loadpe/ldpe.go +++ b/src/cmd/link/internal/loadpe/ldpe.go @@ -180,6 +180,7 @@ type peLoaderState struct { arch *sys.Arch f *pe.File sectsyms map[*pe.Section]loader.Sym + defWithImp map[string]struct{} sectdata map[*pe.Section][]byte localSymVersion int } @@ -261,6 +262,13 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read } } + // Make a prepass over the symbols to detect situations where + // we have both a defined symbol X and an import symbol __imp_X + // (needed by readpesym()). + if err := state.preprocessSymbols(); err != nil { + return nil, nil, err + } + // load relocations for _, rsect := range f.Sections { if _, found := state.sectsyms[rsect]; !found { @@ -516,26 +524,20 @@ func (state *peLoaderState) readpesym(pesym *pe.COFFSymbol) (*loader.SymbolBuild name = state.l.SymName(state.sectsyms[state.f.Sections[pesym.SectionNumber-1]]) } else { name = symname - switch state.arch.Family { - case sys.AMD64: - if name == "__imp___acrt_iob_func" { - // Do not rename __imp___acrt_iob_func into __acrt_iob_func, - // because __imp___acrt_iob_func symbol is real - // (see commit b295099 from git://git.code.sf.net/p/mingw-w64/mingw-w64 for details). + if strings.HasPrefix(symname, "__imp_") { + orig := symname[len("__imp_"):] + if _, ok := state.defWithImp[orig]; ok { + // Don't rename __imp_XXX to XXX, since if we do this + // we'll wind up with a duplicate definition. One + // example is "__acrt_iob_func"; see commit b295099 + // from git://git.code.sf.net/p/mingw-w64/mingw-w64 + // for details. } else { name = strings.TrimPrefix(name, "__imp_") // __imp_Name => Name } - case sys.I386: - if name == "__imp____acrt_iob_func" { - // Do not rename __imp____acrt_iob_func into ___acrt_iob_func, - // because __imp____acrt_iob_func symbol is real - // (see commit b295099 from git://git.code.sf.net/p/mingw-w64/mingw-w64 for details). - } else { - name = strings.TrimPrefix(name, "__imp_") // __imp_Name => Name - } - if name[0] == '_' { - name = name[1:] // _Name => Name - } + } + if state.arch.Family == sys.I386 && name[0] == '_' { + name = name[1:] // _Name => Name } } @@ -576,3 +578,35 @@ func (state *peLoaderState) readpesym(pesym *pe.COFFSymbol) (*loader.SymbolBuild return bld, s, nil } + +// preprocessSymbols walks the COFF symbols for the PE file we're +// reading and looks for cases where we have both a symbol definition +// for "XXX" and an "__imp_XXX" symbol, recording these cases in a map +// in the state struct. This information will be used in readpesym() +// above to give such symbols special treatment. +func (state *peLoaderState) preprocessSymbols() error { + imp := make(map[string]struct{}) + def := make(map[string]struct{}) + for i, numaux := 0, 0; i < len(state.f.COFFSymbols); i += numaux + 1 { + pesym := &state.f.COFFSymbols[i] + numaux = int(pesym.NumberOfAuxSymbols) + if pesym.SectionNumber == 0 { // extern + continue + } + symname, err := pesym.FullName(state.f.StringTable) + if err != nil { + return err + } + def[symname] = struct{}{} + if strings.HasPrefix(symname, "__imp_") { + imp[strings.TrimPrefix(symname, "__imp_")] = struct{}{} + } + } + state.defWithImp = make(map[string]struct{}) + for n := range imp { + if _, ok := def[n]; ok { + state.defWithImp[n] = struct{}{} + } + } + return nil +} From a9d13a9c230bafba64469f126202315ba4d24eea Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Thu, 3 Feb 2022 08:23:10 -0500 Subject: [PATCH 040/125] cmd/link: read crt2.o for windows internal-linking CGO For Windows internal linking with CGO, when using more modern LLVM-based compilers, we may need to read in the object file "crt2.o" so as to have a definition of "atexit" (for example when linking the runtime/cgo test), and we also need to allow for the possibility that a given host archive might have to be looked at more than once. The goal here is to get all.bash working on Windows when using an up to date mingw C compiler (including those based on clang + LLD). This patch also adds a new "hostObject" helper routine, similar to "hostArchive" but specific to individual object files. There is also a change to hostArchive to modify the pseudo-package name assigned when reading archive elements: up until this point, a package name of "libgcc" was used (even when reading a host archive like "libmingex.a"), which led to very confusing errors messages if symbols were missing or there were duplicate definitions. Updates #35006. Change-Id: I19c17dea9cfffa9e79030fc23064c7c63a612097 Reviewed-on: https://go-review.googlesource.com/c/go/+/382838 Reviewed-by: Cherry Mui Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/cmd/link/internal/ld/ar.go | 13 +++- src/cmd/link/internal/ld/lib.go | 119 +++++++++++++++++++++++++++----- 2 files changed, 111 insertions(+), 21 deletions(-) diff --git a/src/cmd/link/internal/ld/ar.go b/src/cmd/link/internal/ld/ar.go index 23915f9032..125a5d6fcb 100644 --- a/src/cmd/link/internal/ld/ar.go +++ b/src/cmd/link/internal/ld/ar.go @@ -38,6 +38,8 @@ import ( "internal/buildcfg" "io" "os" + "path/filepath" + "strings" ) const ( @@ -65,6 +67,9 @@ type ArHdr struct { // define them. This is used for the compiler support library // libgcc.a. func hostArchive(ctxt *Link, name string) { + if ctxt.Debugvlog > 1 { + ctxt.Logf("hostArchive(%s)\n", name) + } f, err := bio.Open(name) if err != nil { if os.IsNotExist(err) { @@ -122,8 +127,12 @@ func hostArchive(ctxt *Link, name string) { pname := fmt.Sprintf("%s(%s)", name, arhdr.name) l = atolwhex(arhdr.size) - libgcc := sym.Library{Pkg: "libgcc"} - h := ldobj(ctxt, f, &libgcc, l, pname, name) + pkname := filepath.Base(name) + if i := strings.LastIndex(pkname, ".a"); i >= 0 { + pkname = pkname[:i] + } + libar := sym.Library{Pkg: pkname} + h := ldobj(ctxt, f, &libar, l, pname, name) if h.ld == nil { Errorf(nil, "%s unrecognized object file at offset %d", name, off) continue diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 61b1fcbecf..7c9ec4e107 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -614,25 +614,7 @@ func (ctxt *Link) loadlib() { *flagLibGCC = ctxt.findLibPathCmd("--print-file-name=libcompiler_rt.a", "libcompiler_rt") } if ctxt.HeadType == objabi.Hwindows { - if p := ctxt.findLibPath("libmingwex.a"); p != "none" { - hostArchive(ctxt, p) - } - if p := ctxt.findLibPath("libmingw32.a"); p != "none" { - hostArchive(ctxt, p) - } - // Link libmsvcrt.a to resolve '__acrt_iob_func' symbol - // (see https://golang.org/issue/23649 for details). - if p := ctxt.findLibPath("libmsvcrt.a"); p != "none" { - hostArchive(ctxt, p) - } - // TODO: maybe do something similar to peimporteddlls to collect all lib names - // and try link them all to final exe just like libmingwex.a and libmingw32.a: - /* - for: - #cgo windows LDFLAGS: -lmsvcrt -lm - import: - libmsvcrt.a libm.a - */ + loadWindowsHostArchives(ctxt) } if *flagLibGCC != "none" { hostArchive(ctxt, *flagLibGCC) @@ -648,6 +630,52 @@ func (ctxt *Link) loadlib() { strictDupMsgCount = ctxt.loader.NStrictDupMsgs() } +// loadWindowsHostArchives loads in host archives and objects when +// doing internal linking on windows. Older toolchains seem to require +// just a single pass through the various archives, but some modern +// toolchains when linking a C program with mingw pass library paths +// multiple times to the linker, e.g. "... -lmingwex -lmingw32 ... +// -lmingwex -lmingw32 ...". To accommodate this behavior, we make two +// passes over the host archives below. +func loadWindowsHostArchives(ctxt *Link) { + any := true + for i := 0; any && i < 2; i++ { + // Link crt2.o (if present) to resolve "atexit" when + // using LLVM-based compilers. + isunresolved := symbolsAreUnresolved(ctxt, []string{"atexit"}) + if isunresolved[0] { + if p := ctxt.findLibPath("crt2.o"); p != "none" { + hostObject(ctxt, "crt2", p) + } + } + if p := ctxt.findLibPath("libmingwex.a"); p != "none" { + hostArchive(ctxt, p) + } + if p := ctxt.findLibPath("libmingw32.a"); p != "none" { + hostArchive(ctxt, p) + } + // Link libmsvcrt.a to resolve '__acrt_iob_func' symbol + // (see https://golang.org/issue/23649 for details). + if p := ctxt.findLibPath("libmsvcrt.a"); p != "none" { + hostArchive(ctxt, p) + } + any = false + undefs := ctxt.loader.UndefinedRelocTargets(1) + if len(undefs) > 0 { + any = true + } + } + // TODO: maybe do something similar to peimporteddlls to collect + // all lib names and try link them all to final exe just like + // libmingwex.a and libmingw32.a: + /* + for: + #cgo windows LDFLAGS: -lmsvcrt -lm + import: + libmsvcrt.a libm.a + */ +} + // loadcgodirectives reads the previously discovered cgo directives, creating // symbols in preparation for host object loading or use later in the link. func (ctxt *Link) loadcgodirectives() { @@ -2000,6 +2028,59 @@ func ldobj(ctxt *Link, f *bio.Reader, lib *sym.Library, length int64, pn string, return nil } +// symbolsAreUnresolved scans through the loader's list of unresolved +// symbols and checks to see whether any of them match the names of the +// symbols in 'want'. Return value is a list of bools, with list[K] set +// to true if there is an unresolved reference to the symbol in want[K]. +func symbolsAreUnresolved(ctxt *Link, want []string) []bool { + returnAllUndefs := -1 + undefs := ctxt.loader.UndefinedRelocTargets(returnAllUndefs) + seen := make(map[loader.Sym]struct{}) + rval := make([]bool, len(want)) + wantm := make(map[string]int) + for k, w := range want { + wantm[w] = k + } + count := 0 + for _, s := range undefs { + if _, ok := seen[s]; ok { + continue + } + seen[s] = struct{}{} + if k, ok := wantm[ctxt.loader.SymName(s)]; ok { + rval[k] = true + count++ + if count == len(want) { + return rval + } + } + } + return rval +} + +// hostObject reads a single host object file (compare to "hostArchive"). +// This is used as part of internal linking when we need to pull in +// files such as "crt?.o". +func hostObject(ctxt *Link, objname string, path string) { + if ctxt.Debugvlog > 1 { + ctxt.Logf("hostObject(%s)\n", path) + } + objlib := sym.Library{ + Pkg: objname, + } + f, err := bio.Open(path) + if err != nil { + Exitf("cannot open host object %q file %s: %v", objname, path, err) + } + defer f.Close() + h := ldobj(ctxt, f, &objlib, 0, path, path) + if h.ld == nil { + Exitf("unrecognized object file format in %s", path) + } + f.MustSeek(h.off, 0) + h.ld(ctxt, f, h.pkg, h.length, h.pn) +} + func checkFingerprint(lib *sym.Library, libfp goobj.FingerprintType, src string, srcfp goobj.FingerprintType) { if libfp != srcfp { Exitf("fingerprint mismatch: %s has %x, import from %s expecting %x", lib, libfp, src, srcfp) From 109a18dce7ef8ecb2aa60cef25362ebd05661ea0 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 30 Mar 2022 18:47:11 -0700 Subject: [PATCH 041/125] debug/elf: check for negative shoff and phoff fields No test because we could add an infinite number of tests of bogus data. For #47653 Fixes #52035 Change-Id: Iec7e2fe23f2dd1cf14bad2475422f243f51028f5 Reviewed-on: https://go-review.googlesource.com/c/go/+/396880 Trust: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Tobias Klauser Reviewed-by: Than McIntosh --- src/debug/elf/file.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/debug/elf/file.go b/src/debug/elf/file.go index e93200a11d..5f339596a7 100644 --- a/src/debug/elf/file.go +++ b/src/debug/elf/file.go @@ -325,6 +325,13 @@ func NewFile(r io.ReaderAt) (*File, error) { shstrndx = int(hdr.Shstrndx) } + if shoff < 0 { + return nil, &FormatError{0, "invalid shoff", shoff} + } + if phoff < 0 { + return nil, &FormatError{0, "invalid phoff", phoff} + } + if shoff == 0 && shnum != 0 { return nil, &FormatError{0, "invalid ELF shnum for shoff=0", shnum} } @@ -419,6 +426,12 @@ func NewFile(r io.ReaderAt) (*File, error) { Entsize: sh.Entsize, } } + if int64(s.Offset) < 0 { + return nil, &FormatError{off, "invalid section offset", int64(s.Offset)} + } + if int64(s.FileSize) < 0 { + return nil, &FormatError{off, "invalid section size", int64(s.FileSize)} + } s.sr = io.NewSectionReader(r, int64(s.Offset), int64(s.FileSize)) if s.Flags&SHF_COMPRESSED == 0 { From 2ea9376266b71e8a0752b8b3663bbf5b9ed48c4d Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Wed, 30 Mar 2022 12:19:24 -0700 Subject: [PATCH 042/125] go/types, types2: better error message for invalid type parameter term The spec says "In a union, a term cannot be a type parameter,...", but it's really the type in a term that cannot be a type parameter. (Also, for the spec's purposes, a single term is still a union.) This CL changes the current error message from: "cannot use type parameter in typeset" to one of two messages: "term cannot be a type parameter" (for term of form P) "type in term ~P cannot be a type parameter (for term of form ~P) which are more specific and match the spec more closely. Fixes #50420. Change-Id: Id48503efc8416cabc03d5c40d8e64d5b3a7f078e Reviewed-on: https://go-review.googlesource.com/c/go/+/396874 Trust: Robert Griesemer Reviewed-by: Ian Lance Taylor --- .../types2/testdata/examples/constraints.go | 6 ++-- .../types2/testdata/fixedbugs/issue39948.go | 2 +- .../types2/testdata/fixedbugs/issue47127.go | 32 +++++++++---------- src/cmd/compile/internal/types2/union.go | 6 +++- src/go/types/testdata/examples/constraints.go | 6 ++-- src/go/types/testdata/fixedbugs/issue39948.go | 2 +- src/go/types/testdata/fixedbugs/issue47127.go | 32 +++++++++---------- src/go/types/union.go | 6 +++- 8 files changed, 50 insertions(+), 42 deletions(-) diff --git a/src/cmd/compile/internal/types2/testdata/examples/constraints.go b/src/cmd/compile/internal/types2/testdata/examples/constraints.go index 4d7f70313a..fb01be56a2 100644 --- a/src/cmd/compile/internal/types2/testdata/examples/constraints.go +++ b/src/cmd/compile/internal/types2/testdata/examples/constraints.go @@ -44,9 +44,9 @@ type ( type ( _[T interface{ *T } ] struct{} // ok _[T interface{ int | *T } ] struct{} // ok - _[T interface{ T /* ERROR cannot embed a type parameter */ } ] struct{} - _[T interface{ ~T /* ERROR cannot embed a type parameter */ } ] struct{} - _[T interface{ int|T /* ERROR cannot embed a type parameter */ }] struct{} + _[T interface{ T /* ERROR term cannot be a type parameter */ } ] struct{} + _[T interface{ ~T /* ERROR type in term ~T cannot be a type parameter */ } ] struct{} + _[T interface{ int|T /* ERROR term cannot be a type parameter */ }] struct{} ) // Multiple embedded union elements are intersected. The order in which they diff --git a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue39948.go b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue39948.go index e38e57268d..c893cc049e 100644 --- a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue39948.go +++ b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue39948.go @@ -5,5 +5,5 @@ package p type T[P any] interface{ - P // ERROR cannot embed a type parameter + P // ERROR term cannot be a type parameter } diff --git a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47127.go b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47127.go index 108d600a38..bb4b487eb2 100644 --- a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47127.go +++ b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue47127.go @@ -8,30 +8,30 @@ package p type ( _[P any] interface{ *P | []P | chan P | map[string]P } - _[P any] interface{ P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ ~P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } + _[P any] interface{ P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ } + _[P any] interface{ int | P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ } ) func _[P any]() { type ( _[P any] interface{ *P | []P | chan P | map[string]P } - _[P any] interface{ P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ ~P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } + _[P any] interface{ P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ } + _[P any] interface{ int | P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ } _ interface{ *P | []P | chan P | map[string]P } - _ interface{ P /* ERROR "cannot embed a type parameter" */ } - _ interface{ ~P /* ERROR "cannot embed a type parameter" */ } - _ interface{ int | P /* ERROR "cannot embed a type parameter" */ } - _ interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } + _ interface{ P /* ERROR term cannot be a type parameter */ } + _ interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ } + _ interface{ int | P /* ERROR term cannot be a type parameter */ } + _ interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ } ) } func _[P any, Q interface{ *P | []P | chan P | map[string]P }]() {} -func _[P any, Q interface{ P /* ERROR "cannot embed a type parameter" */ }]() {} -func _[P any, Q interface{ ~P /* ERROR "cannot embed a type parameter" */ }]() {} -func _[P any, Q interface{ int | P /* ERROR "cannot embed a type parameter" */ }]() {} -func _[P any, Q interface{ int | ~P /* ERROR "cannot embed a type parameter" */ }]() {} +func _[P any, Q interface{ P /* ERROR term cannot be a type parameter */ }]() {} +func _[P any, Q interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ }]() {} +func _[P any, Q interface{ int | P /* ERROR term cannot be a type parameter */ }]() {} +func _[P any, Q interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ }]() {} diff --git a/src/cmd/compile/internal/types2/union.go b/src/cmd/compile/internal/types2/union.go index 132e73098a..57f1a4fe2a 100644 --- a/src/cmd/compile/internal/types2/union.go +++ b/src/cmd/compile/internal/types2/union.go @@ -148,7 +148,11 @@ func parseTilde(check *Checker, tx syntax.Expr) *Term { // simply use its underlying type (like we do for other named, embedded interfaces), // and since the underlying type is an interface the embedding is well defined. if isTypeParam(typ) { - check.error(x, "cannot embed a type parameter") + if tilde { + check.errorf(x, "type in term %s cannot be a type parameter", tx) + } else { + check.error(x, "term cannot be a type parameter") + } typ = Typ[Invalid] } term := NewTerm(tilde, typ) diff --git a/src/go/types/testdata/examples/constraints.go b/src/go/types/testdata/examples/constraints.go index 4d7f70313a..fb01be56a2 100644 --- a/src/go/types/testdata/examples/constraints.go +++ b/src/go/types/testdata/examples/constraints.go @@ -44,9 +44,9 @@ type ( type ( _[T interface{ *T } ] struct{} // ok _[T interface{ int | *T } ] struct{} // ok - _[T interface{ T /* ERROR cannot embed a type parameter */ } ] struct{} - _[T interface{ ~T /* ERROR cannot embed a type parameter */ } ] struct{} - _[T interface{ int|T /* ERROR cannot embed a type parameter */ }] struct{} + _[T interface{ T /* ERROR term cannot be a type parameter */ } ] struct{} + _[T interface{ ~T /* ERROR type in term ~T cannot be a type parameter */ } ] struct{} + _[T interface{ int|T /* ERROR term cannot be a type parameter */ }] struct{} ) // Multiple embedded union elements are intersected. The order in which they diff --git a/src/go/types/testdata/fixedbugs/issue39948.go b/src/go/types/testdata/fixedbugs/issue39948.go index e38e57268d..c893cc049e 100644 --- a/src/go/types/testdata/fixedbugs/issue39948.go +++ b/src/go/types/testdata/fixedbugs/issue39948.go @@ -5,5 +5,5 @@ package p type T[P any] interface{ - P // ERROR cannot embed a type parameter + P // ERROR term cannot be a type parameter } diff --git a/src/go/types/testdata/fixedbugs/issue47127.go b/src/go/types/testdata/fixedbugs/issue47127.go index 108d600a38..bb4b487eb2 100644 --- a/src/go/types/testdata/fixedbugs/issue47127.go +++ b/src/go/types/testdata/fixedbugs/issue47127.go @@ -8,30 +8,30 @@ package p type ( _[P any] interface{ *P | []P | chan P | map[string]P } - _[P any] interface{ P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ ~P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } + _[P any] interface{ P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ } + _[P any] interface{ int | P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ } ) func _[P any]() { type ( _[P any] interface{ *P | []P | chan P | map[string]P } - _[P any] interface{ P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ ~P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | P /* ERROR "cannot embed a type parameter" */ } - _[P any] interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } + _[P any] interface{ P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ } + _[P any] interface{ int | P /* ERROR term cannot be a type parameter */ } + _[P any] interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ } _ interface{ *P | []P | chan P | map[string]P } - _ interface{ P /* ERROR "cannot embed a type parameter" */ } - _ interface{ ~P /* ERROR "cannot embed a type parameter" */ } - _ interface{ int | P /* ERROR "cannot embed a type parameter" */ } - _ interface{ int | ~P /* ERROR "cannot embed a type parameter" */ } + _ interface{ P /* ERROR term cannot be a type parameter */ } + _ interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ } + _ interface{ int | P /* ERROR term cannot be a type parameter */ } + _ interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ } ) } func _[P any, Q interface{ *P | []P | chan P | map[string]P }]() {} -func _[P any, Q interface{ P /* ERROR "cannot embed a type parameter" */ }]() {} -func _[P any, Q interface{ ~P /* ERROR "cannot embed a type parameter" */ }]() {} -func _[P any, Q interface{ int | P /* ERROR "cannot embed a type parameter" */ }]() {} -func _[P any, Q interface{ int | ~P /* ERROR "cannot embed a type parameter" */ }]() {} +func _[P any, Q interface{ P /* ERROR term cannot be a type parameter */ }]() {} +func _[P any, Q interface{ ~P /* ERROR type in term ~P cannot be a type parameter */ }]() {} +func _[P any, Q interface{ int | P /* ERROR term cannot be a type parameter */ }]() {} +func _[P any, Q interface{ int | ~P /* ERROR type in term ~P cannot be a type parameter */ }]() {} diff --git a/src/go/types/union.go b/src/go/types/union.go index 1a8825fcab..b288dfab5c 100644 --- a/src/go/types/union.go +++ b/src/go/types/union.go @@ -151,7 +151,11 @@ func parseTilde(check *Checker, tx ast.Expr) *Term { // simply use its underlying type (like we do for other named, embedded interfaces), // and since the underlying type is an interface the embedding is well defined. if isTypeParam(typ) { - check.error(x, _MisplacedTypeParam, "cannot embed a type parameter") + if tilde { + check.errorf(x, _MisplacedTypeParam, "type in term %s cannot be a type parameter", tx) + } else { + check.error(x, _MisplacedTypeParam, "term cannot be a type parameter") + } typ = Typ[Invalid] } term := NewTerm(tilde, typ) From cdee8004ab5fa71d705979eaaee0948200256ed0 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Mon, 7 Feb 2022 15:30:34 -0500 Subject: [PATCH 043/125] cmd/link: resolve __CTOR_LIST__/__DTOR_LIST__ refs for PE When doing an internal link on Windows, it's possible to see unresolved references to the symbols "__CTOR_LIST__" and/or "__DTOR_LIST__" (which are needed in some circumstances). If these are still unresolved at the point where we're done reading host objects, then synthesize dummy versions of them. Updates #35006. Change-Id: I408bf18499bba05752710cf5a41621123bd84a3b Reviewed-on: https://go-review.googlesource.com/c/go/+/383836 Reviewed-by: Cherry Mui Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/cmd/link/internal/ld/lib.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 7c9ec4e107..6f9c7c2627 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -665,6 +665,21 @@ func loadWindowsHostArchives(ctxt *Link) { any = true } } + // If needed, create the __CTOR_LIST__ and __DTOR_LIST__ + // symbols (referenced by some of the mingw support library + // routines). Creation of these symbols is normally done by the + // linker if not already present. + want := []string{"__CTOR_LIST__", "__DTOR_LIST__"} + isunresolved := symbolsAreUnresolved(ctxt, want) + for k, w := range want { + if isunresolved[k] { + sb := ctxt.loader.CreateSymForUpdate(w, 0) + sb.SetType(sym.SDATA) + sb.AddUint64(ctxt.Arch, 0) + sb.SetReachable(true) + ctxt.loader.SetAttrSpecial(sb.Sym(), true) + } + } // TODO: maybe do something similar to peimporteddlls to collect // all lib names and try link them all to final exe just like // libmingwex.a and libmingw32.a: From 378221bd6e73bdc21884fed9e32f53e6672ca0cd Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Tue, 22 Mar 2022 08:49:52 -0400 Subject: [PATCH 044/125] debug/pe: add APIs for reading section def aux info Add hooks to support reading of section definition symbol aux data (including COMDAT information) from the aux symbols associated with section definition symbols. The COFF symbol array made available by "pe.File" includes entries for aux symbols, but doesn't expose their structure (since it varies depending on the type of aux symbol). This patch adds a function for returning a specific class of aux symbol ("type 5") that immediately follows a COFF symbol corresponding to a section definition. Updates #35006. Updates #51868. Change-Id: I21fcc057150f7a3c64f01a5961aabca0fa43399e Reviewed-on: https://go-review.googlesource.com/c/go/+/394534 Reviewed-by: Alex Brainman Reviewed-by: Cherry Mui Trust: Alex Brainman Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- api/next/51868.txt | 36 +++++++ src/debug/pe/section.go | 12 +++ src/debug/pe/symbol.go | 59 ++++++++++++ src/debug/pe/symbols_test.go | 91 ++++++++++++++++++ .../llvm-mingw-20211002-msvcrt-x86_64-crt2 | Bin 0 -> 24046 bytes 5 files changed, 198 insertions(+) create mode 100644 api/next/51868.txt create mode 100644 src/debug/pe/symbols_test.go create mode 100644 src/debug/pe/testdata/llvm-mingw-20211002-msvcrt-x86_64-crt2 diff --git a/api/next/51868.txt b/api/next/51868.txt new file mode 100644 index 0000000000..cbf0324d5f --- /dev/null +++ b/api/next/51868.txt @@ -0,0 +1,36 @@ +pkg debug/pe, const IMAGE_COMDAT_SELECT_ANY = 2 #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_ANY ideal-int #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_ASSOCIATIVE ideal-int #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_EXACT_MATCH ideal-int #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_LARGEST = 6 #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_LARGEST ideal-int #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_NODUPLICATES = 1 #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_NODUPLICATES ideal-int #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_SAME_SIZE = 3 #51686 +pkg debug/pe, const IMAGE_COMDAT_SELECT_SAME_SIZE ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_CNT_CODE = 32 #51686 +pkg debug/pe, const IMAGE_SCN_CNT_CODE ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_CNT_INITIALIZED_DATA = 64 #51686 +pkg debug/pe, const IMAGE_SCN_CNT_INITIALIZED_DATA ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_CNT_UNINITIALIZED_DATA = 128 #51686 +pkg debug/pe, const IMAGE_SCN_CNT_UNINITIALIZED_DATA ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_LNK_COMDAT = 4096 #51686 +pkg debug/pe, const IMAGE_SCN_LNK_COMDAT ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_MEM_DISCARDABLE = 33554432 #51686 +pkg debug/pe, const IMAGE_SCN_MEM_DISCARDABLE ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_MEM_EXECUTE = 536870912 #51686 +pkg debug/pe, const IMAGE_SCN_MEM_EXECUTE ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_MEM_READ = 1073741824 #51686 +pkg debug/pe, const IMAGE_SCN_MEM_READ ideal-int #51686 +pkg debug/pe, const IMAGE_SCN_MEM_WRITE = 2147483648 #51686 +pkg debug/pe, const IMAGE_SCN_MEM_WRITE ideal-int #51686 +pkg debug/pe, method (*File) COFFSymbolReadSectionDefAux(int) (*COFFSymbolAuxFormat5, error) #51686 +pkg debug/pe, type COFFSymbolAuxFormat5 struct #51686 +pkg debug/pe, type COFFSymbolAuxFormat5 struct, Checksum uint32 #51686 +pkg debug/pe, type COFFSymbolAuxFormat5 struct, NumLineNumbers uint16 #51686 +pkg debug/pe, type COFFSymbolAuxFormat5 struct, NumRelocs uint16 #51686 +pkg debug/pe, type COFFSymbolAuxFormat5 struct, SecNum uint16 #51686 +pkg debug/pe, type COFFSymbolAuxFormat5 struct, Selection uint8 #51686 +pkg debug/pe, type COFFSymbolAuxFormat5 struct, Size uint32 #51686 diff --git a/src/debug/pe/section.go b/src/debug/pe/section.go index b641158ecc..ee59dedeb4 100644 --- a/src/debug/pe/section.go +++ b/src/debug/pe/section.go @@ -109,3 +109,15 @@ func (s *Section) Data() ([]byte, error) { func (s *Section) Open() io.ReadSeeker { return io.NewSectionReader(s.sr, 0, 1<<63-1) } + +// Section characteristics flags. +const ( + IMAGE_SCN_CNT_CODE = 0x00000020 + IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 + IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 + IMAGE_SCN_LNK_COMDAT = 0x00001000 + IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 + IMAGE_SCN_MEM_EXECUTE = 0x20000000 + IMAGE_SCN_MEM_READ = 0x40000000 + IMAGE_SCN_MEM_WRITE = 0x80000000 +) diff --git a/src/debug/pe/symbol.go b/src/debug/pe/symbol.go index 7fa5948641..0dfd5d90b8 100644 --- a/src/debug/pe/symbol.go +++ b/src/debug/pe/symbol.go @@ -8,6 +8,7 @@ import ( "encoding/binary" "fmt" "io" + "unsafe" ) const COFFSymbolSize = 18 @@ -96,3 +97,61 @@ type Symbol struct { Type uint16 StorageClass uint8 } + +// COFFSymbolAuxFormat5 describes the expected form of an aux symbol +// attached to a section definition symbol. The PE format defines a +// number of different aux symbol formats: format 1 for function +// definitions, format 2 for .be and .ef symbols, and so on. Format 5 +// holds extra info associated with a section definition, including +// number of relocations + line numbers, as well as COMDAT info. See +// https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-5-section-definitions +// for more on what's going on here. +type COFFSymbolAuxFormat5 struct { + Size uint32 + NumRelocs uint16 + NumLineNumbers uint16 + Checksum uint32 + SecNum uint16 + Selection uint8 + _ [3]uint8 // padding +} + +// These constants make up the possible values for the 'Selection' +// field in an AuxFormat5. +const ( + IMAGE_COMDAT_SELECT_NODUPLICATES = 1 + IMAGE_COMDAT_SELECT_ANY = 2 + IMAGE_COMDAT_SELECT_SAME_SIZE = 3 + IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 + IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 + IMAGE_COMDAT_SELECT_LARGEST = 6 +) + +// COFFSymbolReadSectionDefAux returns a blob of axiliary information +// (including COMDAT info) for a section definition symbol. Here 'idx' +// is the index of a section symbol in the main COFFSymbol array for +// the File. Return value is a pointer to the appropriate aux symbol +// struct. For more info, see: +// +// auxiliary symbols: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-symbol-records +// COMDAT sections: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#comdat-sections-object-only +// auxiliary info for section definitions: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#auxiliary-format-5-section-definitions +// +func (f *File) COFFSymbolReadSectionDefAux(idx int) (*COFFSymbolAuxFormat5, error) { + var rv *COFFSymbolAuxFormat5 + if idx < 0 || idx > len(f.COFFSymbols) { + return rv, fmt.Errorf("invalid symbol index") + } + pesym := &f.COFFSymbols[idx] + const IMAGE_SYM_CLASS_STATIC = 3 + if pesym.StorageClass != uint8(IMAGE_SYM_CLASS_STATIC) { + return rv, fmt.Errorf("incorrect symbol storage class") + } + if pesym.NumberOfAuxSymbols == 0 || idx+1 >= len(f.COFFSymbols) { + return rv, fmt.Errorf("aux symbol unavailable") + } + // Locate and return a pointer to the successor aux symbol. + pesymn := &f.COFFSymbols[idx+1] + rv = (*COFFSymbolAuxFormat5)(unsafe.Pointer(pesymn)) + return rv, nil +} diff --git a/src/debug/pe/symbols_test.go b/src/debug/pe/symbols_test.go new file mode 100644 index 0000000000..c4dcd95391 --- /dev/null +++ b/src/debug/pe/symbols_test.go @@ -0,0 +1,91 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pe + +import ( + "fmt" + "testing" +) + +type testpoint struct { + name string + ok bool + err string + auxstr string +} + +func TestReadCOFFSymbolAuxInfo(t *testing.T) { + testpoints := map[int]testpoint{ + 39: testpoint{ + name: ".rdata$.refptr.__native_startup_lock", + ok: true, + auxstr: "{Size:8 NumRelocs:1 NumLineNumbers:0 Checksum:0 SecNum:16 Selection:2 _:[0 0 0]}", + }, + 81: testpoint{ + name: ".debug_line", + ok: true, + auxstr: "{Size:994 NumRelocs:1 NumLineNumbers:0 Checksum:1624223678 SecNum:32 Selection:0 _:[0 0 0]}", + }, + 155: testpoint{ + name: ".file", + ok: false, + err: "incorrect symbol storage class", + }, + } + + // The testdata PE object file below was selected from a release + // build from https://github.com/mstorsjo/llvm-mingw/releases; it + // corresponds to the mingw "crt2.o" object. The object itself was + // built using an x86_64 HOST=linux TARGET=windows clang cross + // compiler based on LLVM 13. More build details can be found at + // https://github.com/mstorsjo/llvm-mingw/releases. + f, err := Open("testdata/llvm-mingw-20211002-msvcrt-x86_64-crt2") + if err != nil { + t.Errorf("open failed with %v", err) + } + defer f.Close() + for k := range f.COFFSymbols { + tp, ok := testpoints[k] + if !ok { + continue + } + sym := &f.COFFSymbols[k] + if sym.NumberOfAuxSymbols == 0 { + t.Errorf("expected aux symbols for sym %d", k) + continue + } + name, nerr := sym.FullName(f.StringTable) + if nerr != nil { + t.Errorf("FullName(%d) failed with %v", k, nerr) + continue + } + if name != tp.name { + t.Errorf("name check for %d, got %s want %s", k, name, tp.name) + continue + } + ap, err := f.COFFSymbolReadSectionDefAux(k) + if tp.ok { + if err != nil { + t.Errorf("unexpected failure on %d, got error %v", k, err) + continue + } + got := fmt.Sprintf("%+v", *ap) + if got != tp.auxstr { + t.Errorf("COFFSymbolReadSectionDefAux on %d bad return, got:\n%s\nwant:\n%s\n", k, got, tp.auxstr) + continue + } + } else { + if err == nil { + t.Errorf("unexpected non-failure on %d", k) + continue + } + got := fmt.Sprintf("%v", err) + if got != tp.err { + t.Errorf("COFFSymbolReadSectionDefAux %d wrong error, got %q want %q", k, got, tp.err) + continue + } + } + } +} diff --git a/src/debug/pe/testdata/llvm-mingw-20211002-msvcrt-x86_64-crt2 b/src/debug/pe/testdata/llvm-mingw-20211002-msvcrt-x86_64-crt2 new file mode 100644 index 0000000000000000000000000000000000000000..5576c1c49e5f24e9fa45e9e9ada6dfbbff88c831 GIT binary patch literal 24046 zcma)E3w%_?xu3JU=i~|591wN|C4mS?AtWJzpb-+1zyJF zcxWv}EBLPU+16IAt+utk+oJeF?e*1KTdi7JTb16b*ITRYt=|7PbLQL4uD!oIznnS$ z@0;)Y=Jm~-nK@?@`Et3SV5}A528o2IOhvb+989;6M~DU!=>>|p8n-gh(OVe_r9z4& zV~B}e#Tg91Mp1RJvTt-WliQd{IC!UMJXpDXyumoqE`q%e9GiupVXtvvb*2t z8zuG0mzKx$WyWu6TduxtX=X)8?t75=akku&`X$+NKZVTW*>crY^;H>yAGn2h z&XLjVM&Vttuzp;&;yTD3w6%n~OS!u0%xZ}3lZ7~aiV!c(Q!)qO2vV-Peq6ikNAkHR zeU82ArQ_^<1ivdjIajVSF@D|%K*ZH1#A;j=sHk$@SW-K#B1ce8Y$+?8>sK% zy3A$~Q<40xBcmh{=X=G*z@ER91@>WP6yiy#{eKa1(3IR)T77WWKh~Ts#8`VEyuM*q zLup4Vh~)v}g_8T$`vQ9&@$LFYkxPh_ujIZL0nun<O-&m&Zt4o``U`nT$)~1DC(uCgQ7-?swgT8Jb7WoP6$$H z-zO*Fraj97YKKpe>x{36$w*$)fK5Ng%XsZWiz=kaO(K(b|!4u|Z2*y$WlNQZQ~`!`-)#zMcw;kV9%3AVDBf6wCDA} zzR9l#_CC_K_hTio=aA91^o_A+kGfl{KRfkF&!;dg+V{$=l!Vg)YMcbfQw@z}&$KH6 zDXf}l&neWAA~kEL0%Juo(J{2^G4jeYf@e0J*%Umq_Ys-)Y=33Rj0-7mF>bs(DOplv zKl?ZNzhnjANPZe-a}QvVOY#l@ohZ?(KwBjG zC(wL}iZL+a68V9KBsvj@JisHWfaqD`5p_Vr5;X%+8+ycQAX@2o#5zvx2P&1k3xGx> z`Z7>VqDz1h5?ui_TcR6)&X(w#KuL+d3q)&QkN5$Q>aCvur6i9A^O!`F-9l`Ys0L`8 zL`#8sC0YrzU7{YKkVH|S9TKHD^h#VTLYx}w-x9@nM!km zVY-A_WAqvxLwHsQQQ+K>Bp<7E&kV-IJTcL*MP8MaFnc|3y59eP=r}fgFf@qEEy@r_ zC8|I?AkkdJ)WdG+Rf^XRT4{6x?UJc9vUW>EqeE%*G7o^mMj(SJ0%zuMzLLY)o5T5P z4rgBu=aL-Gr8%6h<#1^B7+*q~*v4}Xh`gjlMYlHaVVadLutM2dlz+Aw@&29O z$Btvd`P z^-Q^OmOyNF61A`)^dMl#4LKt8I3E`hIU*azrGu!zv`%5Mb5|~}sbvoLb6mdBNor$} zP7S-+)`v!CP9GVi#t9QAneK_+snaHw8n%V4U#)OYY@4*)e^SxOMJ^u(#uU*u$vu%s zJo74$x~!-O&@2I82vM$%%#pxwjZg4)ZWph3zA4YktLm;&H48;p3s_7@dKNIIt{T zEU1wE^6?yK&P;RaLC#87OXgBhCo?}`5^B(Z!pyEj^HOQ&_}eCx!QvchEMicN=T@SN zZL86D%?iKjLlVPE@HnG-5~cJMomR97TJvg!Yic!8zECN0G_XqiTszB={{m7}rpa*S z-ra^E(^wrM#g|U0Dl#@;*;Jj8vq?GEm|}Vf<-CYeHcZtesx_Sw)dBcOU@;3w#U(|u zZdjTkPveReKFW0ISCPNVcVGoP?<6XV!#_E*nU?#hp>QahZm3f#9fI0Nr7ugXkoa;s zOK5a>MI_eXrv_-sZW`GWl(K?qkj|nxTM$OD7ogguTd8%n>|T+YObbj3`Ershmdhlf zcTnU6I$L(#3Sv1fS6hKI$6(N|2IF~L#-*O0;g;udy^I?zA6@+!VzlCZ2bcR8lNQjH zTIL0NOg}CLpCQ-JN*CWCi0Bt7o^U|zBQAE$= zKY?w{Fg(A*-Siag0qb%+2CZ-Vi!K8`pYTvF%a{UDye zWnJO-*bf3M!LYQh^!r57i=b|!q`&w|uflz@^+%sw0U#UXE%eWPP5cS{a|#G)_Rr{_ zQ#J86b%`e4K`&6brGap<_L!Hs<$ItR!% ziar2m7piF;H9TkGo|iw#gHDq!>lH;_;0o%@3V-QD-1Dt+zx@yB$lPY4GYi0##4Nu@ z6g7f+g5=x$W-IQccOiPynw#MP^D;f)3z;4;KhpyiWO_hlrUxv{^nj{N52%I*d>a|c z^3=cs$Q>lH$Ui;p4z-!?P?zZri!*V?q+vU?h~8m-iX$EC3trO%E-FRzcVf)*mcEC3y*0yYe+-?=kzkd1g?$US z7Z-pi_vYK*)5J`#*S=R1v%EgvCX%o4mihA$+lO@039#@B5VGvEy;wK@N+-?r&b8kK z@hFZmtrNXf!n_7HN_T_hwTivI+sWbtuYkn~UfV)lWSJ(yVv#0FVA1y?36^^EAz13Q zy-53zI5q^&fiX!;f}kk+4EzDGtjArZ2X!j)BHBQVM_tF#b9LH0Fs4y;r`@5EFc$)r zUIM$r65*ziyBqwxYV$6zr?;b+&wH$ITVDG{u-D+Q-n!Ki_V+dM z9V_3yM-$(L*h8AQ&GOlgYT|aQ%s#A%JFL0(^B`n>zGqe0zthB>R;~R95ONaxzEy9( zqlq6_C)w|5;x4Pf{+lN5wwBrd)Wi?1M%zGpO9MZ$R@iwUWIjK(TI`7+WEJkQ0=BJ* zpI9CC6iwV~_1MR1;y$a_K3)^|TZ8sYO*~*F?Ae-l(AsX#)5Js8PP-Da=Q#3R<-_DW4WYTa+QY2uJ|&~DenW7bo4hbA7k zp0~R-@r3n?-J^*otvBt>ns~~3+wRrGVe5T6qKT)ikB|Eiwg%QSmN1SNF5K-wB=%76 zKa1W!3$7uFUs%HTDoOr_C1%`g;8vDG+8s2wp0m87>`S0l5cRy}Ei2m%YAsPOSl*k< z$WJBpqUF82>=I4AWO)yk9njP-E${PXS8M85miNuFZ)oae%lm%$&6@f(@-xbB)#NLd z*K3s1c#?Vi2KgK1vvU%J0$StCqLXD1T6suUXy>qx_&Ie`k4njq)cn`MTvz z80F7u@(s(o(>Emucb(%e23)#jdn0`&JNg_*{i?{zIK|wN-5Y zTocz=6YaxV>{`qKztkyTw}Oz6rBz{pK3j9&N=~iueHVW+9r@(?8HqhB|uz2+CzBs z6zv0=P73cDo{6}d`DuGzF^O74+V0KB$CZJP6(&8r%x7Vzf*jbSt)%%X$P+9K1d}FE zIg8R+QvR&jHg2x<22JzEoC+ekjB>2W=PV@LZEVAeY0gr@8;n{!0q3+5-e?>_w~D#A zWcVv$V^dKvlFlbnC%%sib)W-j*G}&|qW=Z{yjcJRIJud(65tpDF@SOaoP)eiF+v+I zW78BedENX*cr1nEaT%Lt5%YG+X93ynrxJaS$jWD7L!VWPxxJ3oJ*bbdsgAT>C$WXD z17+tC_50~K-dONBSli*At~Y7tyI?7zuMl~p9ftu`y+~b<0PjZPy-g3M1#@BWHX`4Z zg;)cUK7n$*L#Ze3EXCI?PS)rFuxC`Cp2f4iJgcpyY5-gefJ@~Kf=7L|3D~+0bnSz% z@Erp01N?|2st+TkJt75ki*V%|6Y7lM%V5`tBP6o;J;YU%RBxEI^e*mWFy?&+N?se_ zFu-&IQ;;+lV2M7RT>zzdbmUqGE<(N0tLw1T=tP5wlZ*}el(^pLINvG9QlrPHT57B} zY9MA*L8^DZlT;aisozpTDV)3>-Bhqr`kv7cRK#i|%%T2s62vKIfk5ND3_meW-bN`; zS=6dV!*z=IIV#lfopeIOU1==L$BU1k^!A1Ofn z+3<&ZK}QmEJ|%p)94m7K`Og8#Up~h}#I?p-(&wfor|=%4$M75)L5Ky zbp)vq8E)#ut10aQb2G$RLx|*Q$&+B__sOB~7lNk>%&cM+t|Ia) zu|^^qhzd;sS}%FWGLO86f+4aiuqpvc$hS9ef{gBbm7(K)2 z6-I9{`Y%SGF)GH;Qu)$3oIY01S2|! zQI_9e^e&_SVnhdOO0JaAv5e+0qO(;cx02C1Mw=PM7;R;=hY@xgj+Gl2-NEQSMvpOi zfzj)XjxwU7Ayq09OAm!?Ml%@AXS9^jN=99bdKuBFh_ZJMql+0`$>lxANUA5m6jA*T{c<(c!CAs1iW8tLGv5e+2TFj`0Q75Ai zqXeT17=4Y=4UA|Zt8#mY(bJ56!{}W`pD@aspmmR7G>cI+qveb`8PTtW)=0mKGNNAw zDc-q^=&NPLqXno!-(qw(qn|Q*n$fQr{gKfJj6P*lgze56Sr#9o*^Fu#bul`FQIt`V z(S?jIVe}fKcNu-a=u<|8*!ZimOkp&W(Lx{!hB$?J?abQ@)QZ$15oI*YXd9#5KoktI zA4uhP4fAeg-rYdT-aX7a#B#r2^eU&m!|1<(lwj%RctqZUT%8Jz*7T4Rt=iqS4cUt{zQM&D)hV@6Li`Zc3JFnXWSCyY#N z(Nqaa86C&yL`I7lwK0kSsrn|FcOH;x@mx{Xus0a6djMg*iXLL5BgV^0sc)_{rGqDdGTBW9A`nG_A{(Q2-q3QF4 z&kOq0?e9){G1mGNCOdaUrQ>isG(1qYHJTiajSQDnFRHAntSXy3m`Wu^Pg=NeAeI^& z>#Gcp3@wbux2kACA~|waG@PnLVp(KK-{Qqf`xb>3RV}Km3-^a3eKq}&Xicbpaer-n zC{)|Gw6?ysE^?x%tXvpQrs#@pk5-1o!oIOsJhE^oHaxIx!M4SQ24Ro(b&LnG*T8DPKlOH>pELlArX!Z$5Mh4 zf*oxuH)bRx5;7^+u`z=^G!hw$M}x7^U?d(F;lWUnHFVyCZNsCf&~P{^#)ij6qY)8k zTiey$w6?i57);|FwRi&MZI2B{MX8VvWv6A%f@C>ak+ z97+yGlB5_L4#ndm#2gB3*ATysMs8AJbZiJXrZ7;vKcsAoY#kl}os5p6yiJ{*O{WFB z+D>l`cAwTkjU5e+M2BJ#=T0ppWovMQ2{fg059<8(b!%6NVB4CeRjt96bzQ+gYg0>W zr|8JxbitECsj*~Ktc=B@foLcaO^P+4@F4Zv+OeU&XmVYD7rY;%WmI&>hN3NKsIF9K zC?PsVkX1CtB~31EIK+K{FgJ6ozhWG!+Y@wyIn! z+uB=oQFA$2HrB}gSra;IBnda$5>0MYV>;bs(w$eF*4--B#D=q_RJoeT`4ntRI}fTD za=05Zol5eXA`x`Z=(_&a;Z$;mYy+_(G>S?}V{P!8DAB4jatG`N>KoZVPO~<}(Fa3O z^cr6h*N3;vF&H((sd5$|t zZ~OdQwVkX?7uEcm1mxVhJsg#TupMJgtfhbckVrBaaLVIRJtk-JK%X+SA-B+cSu!r{`El zbzo#Dsvc_8Ts4yHSfp;X>Q<+2i{-6(1ar{#lq%<%?aiY}(G?wN#>5jHXpwQNj91Ed zm5jSkGNsUxtP(BBYFstA7U5cqYl-L#Z5N$kToGJ-xG-~f_Td_hfrqPJbS@R0)m6Bv zan;~jgsT=;o#@2ezA~Qb3c<0de94jcCTcdgcWP`@!tT(3ygR-fsTQrt$b{A_Q|J775uJ!8M`LEhx=MDAgGqK;Kipw2y2Pf!M%c z#vG-e8tTchrn;uSNvODIXeh0z^T!&cXU&>mSJTE;JgHin;Ck7#%u}|3GwZiU2SVW; z0`{sXs-_5PLqm%ws->uoqQw*~p{Smsr4*s1DV92DZNgFuEl#*jY?SSz3+j+g+0@oqA5iW0XYZC2Z%)NF*zBI^{EFycdQSO2|ShM?4T$3ret3%l?)|! zY`|>lJeDy4;{76ssiwPag>Y^i&OO-OxO9rRU5*@7? zt?gC_U7gSvV>F2MN+>cgdiFMQamOQRdA2syJeEx2xz-)+!$eC<1+0p;L?f8J6QN`j z&50%%i0bmTM6np4Wf|s(*6ny^APvK3h@ODMSkPry$X4yf8WB0Fr&DAs5s!tjN(m+s zqp2jGoueXz1?5)!Bshj!96uqZB_z#%!LVE=Dws$p0uQ`3NN?`!Mi1bbkw6_&q>;hN zB9R-`jgV98_So=NEJGta6Y5FUu}8C^2=|G&ezZk|Tq3u3z!|_rOKeGvB!IeODXgg? z+j?-FMt6F!5q9o9%_C#ODSEz+5_cSh)kM50g$C#w!_qdgP0e`QXe)slMlc10`}Ag(7Ud&D&Cw++Mi=fnwgqs=!l z7LFuRa;LjMI_^TX|D^4yVl1jz7#j}9$M8&2`&qha&i`L|VPZ701%oS$H^Q-D>?|YE z{>nir0dJ4d@K{g^ z51Qgz=G4Md&0`=t-};4FY~5%YRz6-EK4-cM*O-$hn+1nW_vwp~*9p79`mLGgS}@tV z)BTO}D`D3CC!@zxU>fc>J^db+S>^uLm-d4$cE4G)8no&DW-8yd+*h5SGF_JYLu0p0 ze7Pv)B;IHixC>Ke8L}^EfJl|)-h2Ly<_VVj6Qk0cXf>FnR;}s3#B>dq1^J60Sm_9w z{``ezK@5WDQ3;AI_b(?@!fJv0-c*BGj(Wgg9@YI}v+OkUc8NhoBv_#HjB~oriC}imiwji@@>;7oa!<# zoarBKP%y;CGdIW1{;Cn|4fP!`F30CqR~uItR~nTW|Ll!q-9`vwVKva^S$kG1?aY7l zMkB#(KtzVfn?D^WWeGo!{~Jig7kq1 z1$q>X&#RcVwr9vFtw$ZsgdD92tVO@hqChfAi~dCz1-wXbt;4|^h%BvA*19P}M#0mZ9>jTnmX^(0y%{n} zi#|1@fRpqrtx2p^E+v$V(xP9~P@o0I_loG|zoBppE~P~u z8Bv&mYrNJJ)}qgkD3FYkmy_94aK>v*Wv!wN8KrfGV}}+!}8a&o60a2p>u>EH4loT>Xn{YNAui)m6ud+vQ-?>Ryo6)a^=F3;Qs{bRcW z@WXSCOODWjO@;fN`*FCtjr|VwuixEw5^+>`!nxDJ(rtW10|p_q@3Du7gBdd8U)jw7 z?KT34$=hCc{qgt2QQ<$G@|1ye8%Izt8Wumh>$zUys6d~tQ6SH98`MV>KK%5JzY<4? z#{Ot1Raqt1wD>nyv~WVWNycQa%;CIc;5SgO(q?NW9J1;N-ZKT$Mrt0bb0;<<)Kzr<$={O2$VL1vz0h=nIqp7fTF4@ zEdX%`MNUw)p#S30h>P-49MYiwM_8YgoJi912r8Oz~3 zpa&}Clni~Hu7lzXXcBkDc^ilp_vu<3uM(uBg8wD4iWH|f$MP-U&^(oHRsPl=is-L? z+D>8L>;z@!U1Tetic*G>?3~;`0mq9JDxpf8;nb8U7q-{(1qiSTF1+$d#-qcUmNLm1XtrhqgSbeS%@R_0G^5PwNsshSn%^TEj(sI!c>+`e!E8 zaJrY(uc8&l+0=_h)^gqtW#mP0k3-YCMYV=@cv__>4*djzLb}E1x5hd+T8<2H6+Ayj zrcJA`4E@qv2L*RhCQeYC7jiha=WtG;N{`c`-)ZQeApJO92kNiw;b2J9RA$LJCyNuy zk%34^$RVmK^6!|IUx&ecCm)el{1FTjiBRDXv zs7yxtaXL_mLQ{cqxnbfuezGk$9h=IaddrBZM^r}Wj4>GM>!VZkU}$J`AUN(!C=u3g zV4XuE=UuHlh0;e)8AnpVAda+X0ATVP)#h;$Hh>o!PG%TXeB^|2jJLCN#x5t^^xM*4 zA{twS*UCv86yfz9PU~>U5~BC0C_Jjr6-{jzR%eru^a*Dyj=gqnoz?NyNIVkV9!{i! zN)48fJGS@o&?|_uJ$3${P97K@Lt{8EAkyq$Gv0_s!?FHYID`3rAED(Q#pNE?WxQ&3 z>KKnkGhaJ9?I+(h2ZQLwP4e-sa~jWm(2#g=4au{8d}w%r=;#Fk_zJ05WX(RRv#}oIyUnE zlB2d(_OdIS{*EC#Cme<1%ZzXc$Jg0P{NaUeO1#$3R;TGB^f_Fb8*^l1^wKm)2Ud8Y zpPjmGtmD6 D+7YLW literal 0 HcmV?d00001 From 1edc2769ca5eb60293747c37e765bc56ce04d2da Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Mon, 7 Feb 2022 15:00:46 -0500 Subject: [PATCH 045/125] cmd/link/internal/loadpe: add rudimentary COMDAT support Add some rudimentary support to the PE file loader for handling sections in COMDAT when reading host object files. This is needed in order to link programs with support libraries that are of a more modern vintage than GCC 5.X. If a given section XYZ is in COMDAT, the symbol for that section will be flagged, e.g. section 'Characteristics' field will have the IMAGE_SCN_LNK_COMDAT bit set, and the symbol will be followed by an "aux" symbol that includes the COMDAT handling strategy that the linker needs to use. This patch supports two COMDAT strategies (IMAGE_COMDAT_SELECT_ANY and IMAGE_COMDAT_SELECT_SAME_SIZE); more work will have to be done in the future to support other flavors if it turns out that they are needed. Updates #35006. Change-Id: I516e825c30ed3df94ba08323b8a24fb847e10c1a Reviewed-on: https://go-review.googlesource.com/c/go/+/383835 Reviewed-by: Cherry Mui Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/cmd/link/internal/loadpe/ldpe.go | 92 +++++++++++++++++++++------- 1 file changed, 71 insertions(+), 21 deletions(-) diff --git a/src/cmd/link/internal/loadpe/ldpe.go b/src/cmd/link/internal/loadpe/ldpe.go index 871ec73e01..bfe2e837c9 100644 --- a/src/cmd/link/internal/loadpe/ldpe.go +++ b/src/cmd/link/internal/loadpe/ldpe.go @@ -135,17 +135,6 @@ const ( IMAGE_REL_ARM64_REL32 = 0x0011 ) -// TODO(crawshaw): de-duplicate these symbols with cmd/internal/ld, ideally in debug/pe. -const ( - IMAGE_SCN_CNT_CODE = 0x00000020 - IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 - IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 - IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 - IMAGE_SCN_MEM_EXECUTE = 0x20000000 - IMAGE_SCN_MEM_READ = 0x40000000 - IMAGE_SCN_MEM_WRITE = 0x80000000 -) - // TODO(brainman): maybe just add ReadAt method to bio.Reader instead of creating peBiobuf // peBiobuf makes bio.Reader look like io.ReaderAt. @@ -179,12 +168,19 @@ type peLoaderState struct { l *loader.Loader arch *sys.Arch f *pe.File + pn string sectsyms map[*pe.Section]loader.Sym defWithImp map[string]struct{} + comdats map[uint16]int64 // key is section index, val is size sectdata map[*pe.Section][]byte localSymVersion int } +// comdatDefinitions records the names of symbols for which we've +// previously seen a definition in COMDAT. Key is symbol name, value +// is symbol size (or -1 if we're using the "any" strategy). +var comdatDefinitions = make(map[string]int64) + // Load loads the PE file pn from input. // Symbols are written into syms, and a slice of the text symbols is returned. // If an .rsrc section or set of .rsrc$xx sections is found, its symbols are @@ -196,6 +192,7 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read sectsyms: make(map[*pe.Section]loader.Sym), sectdata: make(map[*pe.Section][]byte), localSymVersion: localSymVersion, + pn: pn, } // Some input files are archives containing multiple of @@ -216,11 +213,11 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read // create symbols for mapped sections for _, sect := range f.Sections { - if sect.Characteristics&IMAGE_SCN_MEM_DISCARDABLE != 0 { + if sect.Characteristics&pe.IMAGE_SCN_MEM_DISCARDABLE != 0 { continue } - if sect.Characteristics&(IMAGE_SCN_CNT_CODE|IMAGE_SCN_CNT_INITIALIZED_DATA|IMAGE_SCN_CNT_UNINITIALIZED_DATA) == 0 { + if sect.Characteristics&(pe.IMAGE_SCN_CNT_CODE|pe.IMAGE_SCN_CNT_INITIALIZED_DATA|pe.IMAGE_SCN_CNT_UNINITIALIZED_DATA) == 0 { // This has been seen for .idata sections, which we // want to ignore. See issues 5106 and 5273. continue @@ -230,17 +227,17 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read s := state.l.LookupOrCreateCgoExport(name, localSymVersion) bld := l.MakeSymbolUpdater(s) - switch sect.Characteristics & (IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE) { - case IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ: //.rdata + switch sect.Characteristics & (pe.IMAGE_SCN_CNT_UNINITIALIZED_DATA | pe.IMAGE_SCN_CNT_INITIALIZED_DATA | pe.IMAGE_SCN_MEM_READ | pe.IMAGE_SCN_MEM_WRITE | pe.IMAGE_SCN_CNT_CODE | pe.IMAGE_SCN_MEM_EXECUTE) { + case pe.IMAGE_SCN_CNT_INITIALIZED_DATA | pe.IMAGE_SCN_MEM_READ: //.rdata bld.SetType(sym.SRODATA) - case IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE: //.bss + case pe.IMAGE_SCN_CNT_UNINITIALIZED_DATA | pe.IMAGE_SCN_MEM_READ | pe.IMAGE_SCN_MEM_WRITE: //.bss bld.SetType(sym.SNOPTRBSS) - case IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE: //.data + case pe.IMAGE_SCN_CNT_INITIALIZED_DATA | pe.IMAGE_SCN_MEM_READ | pe.IMAGE_SCN_MEM_WRITE: //.data bld.SetType(sym.SNOPTRDATA) - case IMAGE_SCN_CNT_CODE | IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ: //.text + case pe.IMAGE_SCN_CNT_CODE | pe.IMAGE_SCN_MEM_EXECUTE | pe.IMAGE_SCN_MEM_READ: //.text bld.SetType(sym.STEXT) default: @@ -277,10 +274,10 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read if rsect.NumberOfRelocations == 0 { continue } - if rsect.Characteristics&IMAGE_SCN_MEM_DISCARDABLE != 0 { + if rsect.Characteristics&pe.IMAGE_SCN_MEM_DISCARDABLE != 0 { continue } - if rsect.Characteristics&(IMAGE_SCN_CNT_CODE|IMAGE_SCN_CNT_INITIALIZED_DATA|IMAGE_SCN_CNT_UNINITIALIZED_DATA) == 0 { + if rsect.Characteristics&(pe.IMAGE_SCN_CNT_CODE|pe.IMAGE_SCN_CNT_INITIALIZED_DATA|pe.IMAGE_SCN_CNT_UNINITIALIZED_DATA) == 0 { // This has been seen for .idata sections, which we // want to ignore. See issues 5106 and 5273. continue @@ -465,6 +462,16 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read return nil, nil, nil } + // Check for COMDAT symbol. + if sz, ok1 := state.comdats[uint16(pesym.SectionNumber-1)]; ok1 { + if psz, ok2 := comdatDefinitions[l.SymName(s)]; ok2 { + if sz == psz { + // OK to discard, we've seen an instance + // already. + continue + } + } + } if l.OuterSym(s) != 0 { if l.AttrDuplicateOK(s) { continue @@ -486,6 +493,14 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, input *bio.Read } bld.SetExternal(true) } + if sz, ok := state.comdats[uint16(pesym.SectionNumber-1)]; ok { + // This is a COMDAT definition. Record that we're picking + // this instance so that we can ignore future defs. + if _, ok := comdatDefinitions[l.SymName(s)]; ok { + return nil, nil, fmt.Errorf("internal error: preexisting COMDAT definition for %q", name) + } + comdatDefinitions[l.SymName(s)] = sz + } } // Sort outer lists by address, adding to textp. @@ -583,8 +598,20 @@ func (state *peLoaderState) readpesym(pesym *pe.COFFSymbol) (*loader.SymbolBuild // reading and looks for cases where we have both a symbol definition // for "XXX" and an "__imp_XXX" symbol, recording these cases in a map // in the state struct. This information will be used in readpesym() -// above to give such symbols special treatment. +// above to give such symbols special treatment. This function also +// gathers information about COMDAT sections/symbols for later use +// in readpesym(). func (state *peLoaderState) preprocessSymbols() error { + + // Locate comdat sections. + state.comdats = make(map[uint16]int64) + for i, s := range state.f.Sections { + if s.Characteristics&uint32(pe.IMAGE_SCN_LNK_COMDAT) != 0 { + state.comdats[uint16(i)] = int64(s.Size) + } + } + + // Examine symbol defs. imp := make(map[string]struct{}) def := make(map[string]struct{}) for i, numaux := 0, 0; i < len(state.f.COFFSymbols); i += numaux + 1 { @@ -601,6 +628,29 @@ func (state *peLoaderState) preprocessSymbols() error { if strings.HasPrefix(symname, "__imp_") { imp[strings.TrimPrefix(symname, "__imp_")] = struct{}{} } + if _, isc := state.comdats[uint16(pesym.SectionNumber-1)]; !isc { + continue + } + if pesym.StorageClass != uint8(IMAGE_SYM_CLASS_STATIC) { + continue + } + // This symbol corresponds to a COMDAT section. Read the + // aux data for it. + auxsymp, err := state.f.COFFSymbolReadSectionDefAux(i) + if err != nil { + return fmt.Errorf("unable to read aux info for section def symbol %d %s: pe.COFFSymbolReadComdatInfo returns %v", i, symname, err) + } + if auxsymp.Selection == pe.IMAGE_COMDAT_SELECT_SAME_SIZE { + // This is supported. + } else if auxsymp.Selection == pe.IMAGE_COMDAT_SELECT_ANY { + // Also supported. + state.comdats[uint16(pesym.SectionNumber-1)] = int64(-1) + } else { + // We don't support any of the other strategies at the + // moment. I suspect that we may need to also support + // "associative", we'll see. + return fmt.Errorf("internal error: unsupported COMDAT selection strategy found in path=%s sec=%d strategy=%d idx=%d, please file a bug", state.pn, auxsymp.SecNum, auxsymp.Selection, i) + } } state.defWithImp = make(map[string]struct{}) for n := range imp { From 5138401209a70475451561b18d2c6d92bda93810 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Mon, 7 Feb 2022 16:32:01 -0500 Subject: [PATCH 046/125] runtime: remove use of -mnop-fun-dllimport from cgotest win.go This flag is not supported by clang, so remove it from the cgo cflags when building for windows. It is clear that it was needed at some point in the past, but it doesn't appear to be needed at the moment, since all.bash passes on windows without it now. Updates #35006. Change-Id: Ib06c891f516654138e3363e06645cd187e46ce4e Reviewed-on: https://go-review.googlesource.com/c/go/+/383838 Trust: Alex Brainman Reviewed-by: Alex Brainman Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/runtime/testdata/testprogcgo/windows/win.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/runtime/testdata/testprogcgo/windows/win.go b/src/runtime/testdata/testprogcgo/windows/win.go index 12488aa658..9d9f86c9be 100644 --- a/src/runtime/testdata/testprogcgo/windows/win.go +++ b/src/runtime/testdata/testprogcgo/windows/win.go @@ -1,8 +1,6 @@ package windows /* -#cgo amd64 386 CFLAGS: -mnop-fun-dllimport - #include DWORD agetthread() { From 37065847d87df92b5eb246c88ba2085efcf0b331 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Thu, 31 Mar 2022 12:31:58 -0400 Subject: [PATCH 047/125] crypto/elliptic: tolerate zero-padded scalars in generic P-256 Fixes #52075 Change-Id: I595a7514c9a0aa1b9c76aedfc2307e1124271f27 Reviewed-on: https://go-review.googlesource.com/c/go/+/397135 Trust: Filippo Valsorda Run-TryBot: Filippo Valsorda TryBot-Result: Gopher Robot Reviewed-by: Roland Shoemaker --- src/crypto/elliptic/p256.go | 2 +- src/crypto/elliptic/p256_test.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/crypto/elliptic/p256.go b/src/crypto/elliptic/p256.go index e1c6ff4f87..99c39ea9d5 100644 --- a/src/crypto/elliptic/p256.go +++ b/src/crypto/elliptic/p256.go @@ -51,7 +51,7 @@ func p256GetScalar(out *[32]byte, in []byte) { n := new(big.Int).SetBytes(in) var scalarBytes []byte - if n.Cmp(p256Params.N) >= 0 { + if n.Cmp(p256Params.N) >= 0 || len(in) > len(out) { n.Mod(n, p256Params.N) scalarBytes = n.Bytes() } else { diff --git a/src/crypto/elliptic/p256_test.go b/src/crypto/elliptic/p256_test.go index c6862d9547..a607766bc6 100644 --- a/src/crypto/elliptic/p256_test.go +++ b/src/crypto/elliptic/p256_test.go @@ -136,3 +136,17 @@ func TestP256CombinedMult(t *testing.T) { t.Errorf("1×G + (-1)×G = (%d, %d), should be ∞", x, y) } } + +func TestIssue52075(t *testing.T) { + Gx, Gy := P256().Params().Gx, P256().Params().Gy + scalar := make([]byte, 33) + scalar[32] = 1 + x, y := P256().ScalarBaseMult(scalar) + if x.Cmp(Gx) != 0 || y.Cmp(Gy) != 0 { + t.Errorf("unexpected output (%v,%v)", x, y) + } + x, y = P256().ScalarMult(Gx, Gy, scalar) + if x.Cmp(Gx) != 0 || y.Cmp(Gy) != 0 { + t.Errorf("unexpected output (%v,%v)", x, y) + } +} From b76f8df1334993cb5d43b2d883fdb0ed66b402f6 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 31 Mar 2022 09:34:50 -0700 Subject: [PATCH 048/125] test: update comments in run.go (cleanup) The -G compiler option doesn't exist anymore. Update some variable names and comments to reflect the new reality. Change-Id: I227e9c59a01615c3a40c3869102e8045cb012980 Reviewed-on: https://go-review.googlesource.com/c/go/+/397254 Trust: Robert Griesemer Run-TryBot: Robert Griesemer TryBot-Result: Gopher Robot Reviewed-by: Matthew Dempsky --- test/run.go | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/test/run.go b/test/run.go index 61b31780d5..468379b4a9 100644 --- a/test/run.go +++ b/test/run.go @@ -312,8 +312,8 @@ type test struct { err error // expectFail indicates whether the (overall) test recipe is - // expected to fail under the current test configuration (e.g., -G=3 - // or GOEXPERIMENT=unified). + // expected to fail under the current test configuration (e.g., + // GOEXPERIMENT=unified). expectFail bool } @@ -336,7 +336,7 @@ func (t *test) initExpectFail() { if unifiedEnabled { failureSets = append(failureSets, unifiedFailures) } else { - failureSets = append(failureSets, g3Failures) + failureSets = append(failureSets, go118Failures) } filename := strings.Replace(t.goFileName(), "\\", "/", -1) // goFileName() uses \ on Windows @@ -1961,25 +1961,21 @@ func overlayDir(dstRoot, srcRoot string) error { }) } -// The following is temporary scaffolding to get types2 typechecker -// up and running against the existing test cases. The explicitly -// listed files don't pass yet, usually because the error messages -// are slightly different (this list is not complete). Any errorcheck -// tests that require output from analysis phases past initial type- -// checking are also excluded since these phases are not running yet. -// We can get rid of this code once types2 is fully plugged in. +// The following sets of files are excluded from testing depending on configuration. +// The types2Failures(32Bit) files pass with the 1.17 compiler but don't pass with +// the 1.18 compiler using the new types2 type checker, or pass with sub-optimal +// error(s). -// List of files that the compiler cannot errorcheck with the new typechecker (compiler -G option). -// Temporary scaffolding until we pass all the tests at which point this map can be removed. +// List of files that the compiler cannot errorcheck with the new typechecker (types2). var types2Failures = setOf( "notinheap.go", // types2 doesn't report errors about conversions that are invalid due to //go:notinheap "shift1.go", // types2 reports two new errors which are probably not right "fixedbugs/issue10700.go", // types2 should give hint about ptr to interface "fixedbugs/issue18331.go", // missing error about misuse of //go:noescape (irgen needs code from noder) "fixedbugs/issue18419.go", // types2 reports no field or method member, but should say unexported - "fixedbugs/issue20233.go", // types2 reports two instead of one error (pref: -G=0) - "fixedbugs/issue20245.go", // types2 reports two instead of one error (pref: -G=0) - "fixedbugs/issue28268.go", // types2 reports follow-on errors (pref: -G=0) + "fixedbugs/issue20233.go", // types2 reports two instead of one error (preference: 1.17 compiler) + "fixedbugs/issue20245.go", // types2 reports two instead of one error (preference: 1.17 compiler) + "fixedbugs/issue28268.go", // types2 reports follow-on errors (preference: 1.17 compiler) "fixedbugs/issue31053.go", // types2 reports "unknown field" instead of "cannot refer to unexported field" ) @@ -1989,15 +1985,16 @@ var types2Failures32Bit = setOf( "fixedbugs/issue23305.go", // large untyped int passed to println (32-bit) ) -var g3Failures = setOf( - "typeparam/nested.go", // -G=3 doesn't support function-local types with generics - "typeparam/issue51521.go", // -G=3 produces bad panic message and link error +var go118Failures = setOf( + "typeparam/nested.go", // 1.18 compiler doesn't support function-local types with generics + "typeparam/issue51521.go", // 1.18 compiler produces bad panic message and link error ) -// In all of these cases, -G=0 reports reasonable errors, but either -G=0 or types2 -// report extra errors, so we can't match correctly on both. We now set the patterns -// to match correctly on all the types2 errors. -var g0Failures = setOf( +// In all of these cases, the 1.17 compiler reports reasonable errors, but either the +// 1.17 or 1.18 compiler report extra errors, so we can't match correctly on both. We +// now set the patterns to match correctly on all the 1.18 errors. +// This list remains here just as a reference and for comparison - these files all pass. +var _ = setOf( "import1.go", // types2 reports extra errors "initializerr.go", // types2 reports extra error "typecheck.go", // types2 reports extra error at function call From b1e83c0513cc009192ebb6fcf5e232adf23552d4 Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Tue, 29 Mar 2022 12:59:12 -0400 Subject: [PATCH 049/125] cmd/compile: simplify func value symbol generation Currently, in most cases the compiler generates a func value symbol when it is referenced, except when building a shared object it generates the func value symbol when the function is declared. The comment says this was necessary because we cannot deduplicate DUPOK symbols across DSO boundaries. But the dynamic linker is just fine to resolve symbols with the same name across DSO boundaries. Another problem may be that the address of the PLT stub may be used. When such a func value is deferred, when the runtime needs to scan its arguments, it cannot look up the PC to find the function and therefore cannot find its stack map. This is not a problem now as deferred functions always have no arguments. Remove the special case for shared linkage. Change-Id: Id7df0b0ada6d3d7f85741a9ab09581975509516c Reviewed-on: https://go-review.googlesource.com/c/go/+/396534 Trust: Cherry Mui Reviewed-by: Than McIntosh Run-TryBot: Cherry Mui TryBot-Result: Gopher Robot --- src/cmd/compile/internal/ssagen/abi.go | 12 ----- src/cmd/compile/internal/staticdata/data.go | 51 +-------------------- 2 files changed, 1 insertion(+), 62 deletions(-) diff --git a/src/cmd/compile/internal/ssagen/abi.go b/src/cmd/compile/internal/ssagen/abi.go index 3a653e46b4..3d3cba7dd3 100644 --- a/src/cmd/compile/internal/ssagen/abi.go +++ b/src/cmd/compile/internal/ssagen/abi.go @@ -14,7 +14,6 @@ import ( "cmd/compile/internal/base" "cmd/compile/internal/ir" - "cmd/compile/internal/staticdata" "cmd/compile/internal/typecheck" "cmd/compile/internal/types" "cmd/internal/obj" @@ -243,17 +242,6 @@ func InitLSym(f *ir.Func, hasBody bool) { if f.Pragma&ir.Systemstack != 0 { f.LSym.Set(obj.AttrCFunc, true) } - if f.ABI == obj.ABIInternal || !buildcfg.Experiment.RegabiWrappers { - // Function values can only point to - // ABIInternal entry points. This will create - // the funcsym for either the defining - // function or its wrapper as appropriate. - // - // If we're not using ABI wrappers, we only - // InitLSym for the defining ABI of a function, - // so we make the funcsym when we see that. - staticdata.NeedFuncSym(f) - } } if hasBody { setupTextLSym(f, 0) diff --git a/src/cmd/compile/internal/staticdata/data.go b/src/cmd/compile/internal/staticdata/data.go index 57c15a34a0..b114bb2df6 100644 --- a/src/cmd/compile/internal/staticdata/data.go +++ b/src/cmd/compile/internal/staticdata/data.go @@ -8,7 +8,6 @@ import ( "crypto/sha256" "fmt" "go/constant" - "internal/buildcfg" "io" "io/ioutil" "os" @@ -236,15 +235,9 @@ func FuncLinksym(n *ir.Name) *obj.LSym { // except for the types package, which is protected separately. // Reusing funcsymsmu to also cover this package lookup // avoids a general, broader, expensive package lookup mutex. - // Note NeedFuncSym also does package look-up of func sym names, - // but that it is only called serially, from the front end. funcsymsmu.Lock() sf, existed := s.Pkg.LookupOK(ir.FuncSymName(s)) - // Don't export s·f when compiling for dynamic linking. - // When dynamically linking, the necessary function - // symbols will be created explicitly with NeedFuncSym. - // See the NeedFuncSym comment for details. - if !base.Ctxt.Flag_dynlink && !existed { + if !existed { funcsyms = append(funcsyms, n) } funcsymsmu.Unlock() @@ -259,48 +252,6 @@ func GlobalLinksym(n *ir.Name) *obj.LSym { return n.Linksym() } -// NeedFuncSym ensures that fn·f is exported, if needed. -// It is only used with -dynlink. -// When not compiling for dynamic linking, -// the funcsyms are created as needed by -// the packages that use them. -// Normally we emit the fn·f stubs as DUPOK syms, -// but DUPOK doesn't work across shared library boundaries. -// So instead, when dynamic linking, we only create -// the fn·f stubs in fn's package. -func NeedFuncSym(fn *ir.Func) { - if base.Ctxt.InParallel { - // The append below probably just needs to lock - // funcsymsmu, like in FuncSym. - base.Fatalf("NeedFuncSym must be called in serial") - } - if fn.ABI != obj.ABIInternal && buildcfg.Experiment.RegabiWrappers { - // Function values must always reference ABIInternal - // entry points, so it doesn't make sense to create a - // funcsym for other ABIs. - // - // (If we're not using ABI wrappers, it doesn't matter.) - base.Fatalf("expected ABIInternal: %v has %v", fn.Nname, fn.ABI) - } - if ir.IsBlank(fn.Nname) { - // Blank functions aren't unique, so we can't make a - // funcsym for them. - base.Fatalf("NeedFuncSym called for _") - } - if !base.Ctxt.Flag_dynlink { - return - } - s := fn.Nname.Sym() - if base.Flag.CompilingRuntime && (s.Name == "getg" || s.Name == "getclosureptr" || s.Name == "getcallerpc" || s.Name == "getcallersp") || - (base.Ctxt.Pkgpath == "internal/abi" && (s.Name == "FuncPCABI0" || s.Name == "FuncPCABIInternal")) { - // runtime.getg(), getclosureptr(), getcallerpc(), getcallersp(), - // and internal/abi.FuncPCABIxxx() are not real functions and so - // do not get funcsyms. - return - } - funcsyms = append(funcsyms, fn.Nname) -} - func WriteFuncSyms() { sort.Slice(funcsyms, func(i, j int) bool { return funcsyms[i].Linksym().Name < funcsyms[j].Linksym().Name From c5c66d78b21074c562ece01d6682d4a499815786 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Thu, 31 Mar 2022 13:15:51 -0400 Subject: [PATCH 050/125] debug/pe: skip TestReadCOFFSymbolAuxInfo on big-endian systems Disable the new TestReadCOFFSymbolAuxInfo testpoint on big endian systems, pending resolution of issue 52079. The newly added interfaces for reading symbol definition aux info is not working properly when reading PE objects obj big-endian systems. Updates #52079. Change-Id: I8d55c7e4c03fc6444ef06a6a8154cb50596ca58a Reviewed-on: https://go-review.googlesource.com/c/go/+/397294 Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui --- src/debug/pe/symbols_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/debug/pe/symbols_test.go b/src/debug/pe/symbols_test.go index c4dcd95391..5ccf635830 100644 --- a/src/debug/pe/symbols_test.go +++ b/src/debug/pe/symbols_test.go @@ -6,6 +6,7 @@ package pe import ( "fmt" + "runtime" "testing" ) @@ -17,6 +18,13 @@ type testpoint struct { } func TestReadCOFFSymbolAuxInfo(t *testing.T) { + + switch runtime.GOARCH { + case "mips", "mips64", "ppc64", "s390x": + t.Skipf("Skipping on %s (big endian) until issue #52079 fixed", + runtime.GOARCH) + } + testpoints := map[int]testpoint{ 39: testpoint{ name: ".rdata$.refptr.__native_startup_lock", From 913ecf492d99801eefdebd7eb6773a5ea98107f8 Mon Sep 17 00:00:00 2001 From: Jakub Ciolek Date: Thu, 10 Mar 2022 15:35:17 +0100 Subject: [PATCH 051/125] cmd/compile: fix clobberFlags for BSWAP BSWAP does not affect EFLAGS on neither 386 nor x64. Set the clobberFlags value accordingly. Change-Id: Ib9e88400607fea44bb51fe95dc4d77e7cb54bfec Reviewed-on: https://go-review.googlesource.com/c/go/+/391494 Reviewed-by: Keith Randall Run-TryBot: Keith Randall TryBot-Result: Gopher Robot Trust: Ian Lance Taylor --- src/cmd/compile/internal/ssa/gen/386Ops.go | 2 +- src/cmd/compile/internal/ssa/gen/AMD64Ops.go | 4 ++-- src/cmd/compile/internal/ssa/opGen.go | 3 --- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/cmd/compile/internal/ssa/gen/386Ops.go b/src/cmd/compile/internal/ssa/gen/386Ops.go index f4c89b0bb3..8ec9c68d7f 100644 --- a/src/cmd/compile/internal/ssa/gen/386Ops.go +++ b/src/cmd/compile/internal/ssa/gen/386Ops.go @@ -306,7 +306,7 @@ func init() { {name: "BSRL", argLength: 1, reg: gp11, asm: "BSRL", clobberFlags: true}, // arg0 # of high-order zeroes ; undef if zero {name: "BSRW", argLength: 1, reg: gp11, asm: "BSRW", clobberFlags: true}, // arg0 # of high-order zeroes ; undef if zero - {name: "BSWAPL", argLength: 1, reg: gp11, asm: "BSWAPL", resultInArg0: true, clobberFlags: true}, // arg0 swap bytes + {name: "BSWAPL", argLength: 1, reg: gp11, asm: "BSWAPL", resultInArg0: true}, // arg0 swap bytes {name: "SQRTSD", argLength: 1, reg: fp11, asm: "SQRTSD"}, // sqrt(arg0) {name: "SQRTSS", argLength: 1, reg: fp11, asm: "SQRTSS"}, // sqrt(arg0), float32 diff --git a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go index a6906bec7c..50e23871dd 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go +++ b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go @@ -577,8 +577,8 @@ func init() { {name: "CMOVWGTF", argLength: 3, reg: gp21, asm: "CMOVWHI", resultInArg0: true}, {name: "CMOVWGEF", argLength: 3, reg: gp21, asm: "CMOVWCC", resultInArg0: true}, - {name: "BSWAPQ", argLength: 1, reg: gp11, asm: "BSWAPQ", resultInArg0: true, clobberFlags: true}, // arg0 swap bytes - {name: "BSWAPL", argLength: 1, reg: gp11, asm: "BSWAPL", resultInArg0: true, clobberFlags: true}, // arg0 swap bytes + {name: "BSWAPQ", argLength: 1, reg: gp11, asm: "BSWAPQ", resultInArg0: true}, // arg0 swap bytes + {name: "BSWAPL", argLength: 1, reg: gp11, asm: "BSWAPL", resultInArg0: true}, // arg0 swap bytes // POPCNT instructions aren't guaranteed to be on the target platform (they are SSE4). // Any use must be preceded by a successful check of runtime.x86HasPOPCNT. diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index ca285a2dfc..0830cf5f7c 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -4815,7 +4815,6 @@ var opcodeTable = [...]opInfo{ name: "BSWAPL", argLen: 1, resultInArg0: true, - clobberFlags: true, asm: x86.ABSWAPL, reg: regInfo{ inputs: []inputInfo{ @@ -11506,7 +11505,6 @@ var opcodeTable = [...]opInfo{ name: "BSWAPQ", argLen: 1, resultInArg0: true, - clobberFlags: true, asm: x86.ABSWAPQ, reg: regInfo{ inputs: []inputInfo{ @@ -11521,7 +11519,6 @@ var opcodeTable = [...]opInfo{ name: "BSWAPL", argLen: 1, resultInArg0: true, - clobberFlags: true, asm: x86.ABSWAPL, reg: regInfo{ inputs: []inputInfo{ From 40504892c1720a3a36d82c492fd2302b7ccb870a Mon Sep 17 00:00:00 2001 From: Wayne Zuo Date: Sun, 27 Mar 2022 15:12:39 +0800 Subject: [PATCH 052/125] cmd/compile: clean up arm64 32bit pointer in Reverse Change-Id: I0751270c0f656a501b389f2e2bb0e959d6f5a0e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/396054 Reviewed-by: Keith Randall Run-TryBot: Keith Randall TryBot-Result: Gopher Robot Trust: Ian Lance Taylor --- src/cmd/compile/internal/ssagen/ssa.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/cmd/compile/internal/ssagen/ssa.go b/src/cmd/compile/internal/ssagen/ssa.go index a214a1e8f9..883772b341 100644 --- a/src/cmd/compile/internal/ssagen/ssa.go +++ b/src/cmd/compile/internal/ssagen/ssa.go @@ -4496,9 +4496,6 @@ func InitTables() { sys.ARM64) addF("math/bits", "Reverse", func(s *state, n *ir.CallExpr, args []*ssa.Value) *ssa.Value { - if s.config.PtrSize == 4 { - return s.newValue1(ssa.OpBitRev32, types.Types[types.TINT], args[0]) - } return s.newValue1(ssa.OpBitRev64, types.Types[types.TINT], args[0]) }, sys.ARM64) From 9743fdd097171cada6231503974209edc5400ee8 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 30 Mar 2022 16:36:14 -0700 Subject: [PATCH 053/125] go/build: set allTags even when short-circuiting x_GOOS_GOARCH.go Fixes #52053 Change-Id: I0e1f2737f97a4656913b34a731d8de2c77a15b4d Reviewed-on: https://go-review.googlesource.com/c/go/+/396918 Trust: Ian Lance Taylor Run-TryBot: Ian Lance Taylor Reviewed-by: Bryan Mills Reviewed-by: Michael Matloob Auto-Submit: Ian Lance Taylor TryBot-Result: Gopher Robot --- src/go/build/build.go | 4 +++ src/go/build/build_test.go | 36 +++++++++++++++++++ src/go/build/testdata/alltags/alltags.go | 5 +++ src/go/build/testdata/alltags/x_netbsd_arm.go | 5 +++ 4 files changed, 50 insertions(+) create mode 100644 src/go/build/testdata/alltags/alltags.go create mode 100644 src/go/build/testdata/alltags/x_netbsd_arm.go diff --git a/src/go/build/build.go b/src/go/build/build.go index df505312ce..cc2585b677 100644 --- a/src/go/build/build.go +++ b/src/go/build/build.go @@ -1974,6 +1974,10 @@ func (ctxt *Context) goodOSArchFile(name string, allTags map[string]bool) bool { } n := len(l) if n >= 2 && knownOS[l[n-2]] && knownArch[l[n-1]] { + if allTags != nil { + // In case we short-circuit on l[n-1]. + allTags[l[n-2]] = true + } return ctxt.matchTag(l[n-1], allTags) && ctxt.matchTag(l[n-2], allTags) } if n >= 1 && (knownOS[l[n-1]] || knownArch[l[n-1]]) { diff --git a/src/go/build/build_test.go b/src/go/build/build_test.go index 6cd7f9b589..36bcae179e 100644 --- a/src/go/build/build_test.go +++ b/src/go/build/build_test.go @@ -731,3 +731,39 @@ func TestCgoImportsIgnored(t *testing.T) { } } } + +// Issue #52053. Check that if there is a file x_GOOS_GOARCH.go that both +// GOOS and GOARCH show up in the Package.AllTags field. We test both the +// case where the file matches and where the file does not match. +// The latter case used to fail, incorrectly omitting GOOS. +func TestAllTags(t *testing.T) { + ctxt := Default + ctxt.GOARCH = "arm" + ctxt.GOOS = "netbsd" + p, err := ctxt.ImportDir("testdata/alltags", 0) + if err != nil { + t.Fatal(err) + } + want := []string{"arm", "netbsd"} + if !reflect.DeepEqual(p.AllTags, want) { + t.Errorf("AllTags = %v, want %v", p.AllTags, want) + } + wantFiles := []string{"alltags.go", "x_netbsd_arm.go"} + if !reflect.DeepEqual(p.GoFiles, wantFiles) { + t.Errorf("GoFiles = %v, want %v", p.GoFiles, wantFiles) + } + + ctxt.GOARCH = "amd64" + ctxt.GOOS = "linux" + p, err = ctxt.ImportDir("testdata/alltags", 0) + if err != nil { + t.Fatal(err) + } + if !reflect.DeepEqual(p.AllTags, want) { + t.Errorf("AllTags = %v, want %v", p.AllTags, want) + } + wantFiles = []string{"alltags.go"} + if !reflect.DeepEqual(p.GoFiles, wantFiles) { + t.Errorf("GoFiles = %v, want %v", p.GoFiles, wantFiles) + } +} diff --git a/src/go/build/testdata/alltags/alltags.go b/src/go/build/testdata/alltags/alltags.go new file mode 100644 index 0000000000..5d308550d1 --- /dev/null +++ b/src/go/build/testdata/alltags/alltags.go @@ -0,0 +1,5 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package alltags diff --git a/src/go/build/testdata/alltags/x_netbsd_arm.go b/src/go/build/testdata/alltags/x_netbsd_arm.go new file mode 100644 index 0000000000..5d308550d1 --- /dev/null +++ b/src/go/build/testdata/alltags/x_netbsd_arm.go @@ -0,0 +1,5 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package alltags From 96081f854547353caaa77b795974f76b24572493 Mon Sep 17 00:00:00 2001 From: nimelehin Date: Mon, 6 Dec 2021 18:46:25 +0300 Subject: [PATCH 054/125] cmd/compile: remove a false dependency for TZCNT LZCNT/TZCNT on some Intel CPUs suffer from a false dependency on the destination register. The problem was mentioned in the GCC Ticket: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62011#c7 and fixed with https://gcc.gnu.org/viewcvs?rev=214112&root=gcc&view=rev Change-Id: I8109e84f03ac85f221b06d3b913612b58320d151 Reviewed-on: https://go-review.googlesource.com/c/go/+/369019 Reviewed-by: Keith Randall Trust: Alex Rakoczy Run-TryBot: Alex Rakoczy TryBot-Result: Gopher Robot --- src/cmd/compile/internal/amd64/ssa.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/cmd/compile/internal/amd64/ssa.go b/src/cmd/compile/internal/amd64/ssa.go index b0e5c34030..8ec54a8b03 100644 --- a/src/cmd/compile/internal/amd64/ssa.go +++ b/src/cmd/compile/internal/amd64/ssa.go @@ -265,8 +265,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { case ssa.OpAMD64BLSIQ, ssa.OpAMD64BLSIL, ssa.OpAMD64BLSMSKQ, ssa.OpAMD64BLSMSKL, - ssa.OpAMD64BLSRQ, ssa.OpAMD64BLSRL, - ssa.OpAMD64TZCNTQ, ssa.OpAMD64TZCNTL: + ssa.OpAMD64BLSRQ, ssa.OpAMD64BLSRL: p := s.Prog(v.Op.Asm()) p.From.Type = obj.TYPE_REG p.From.Reg = v.Args[0].Reg() @@ -1137,9 +1136,11 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { p.SetFrom3Reg(v.Args[0].Reg()) p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg() - case ssa.OpAMD64POPCNTQ, ssa.OpAMD64POPCNTL: + case ssa.OpAMD64POPCNTQ, ssa.OpAMD64POPCNTL, + ssa.OpAMD64TZCNTQ, ssa.OpAMD64TZCNTL: if v.Args[0].Reg() != v.Reg() { - // POPCNT on Intel has a false dependency on the destination register. + // POPCNT/TZCNT/LZCNT have a false dependency on the destination register on Intel cpus. + // TZCNT/LZCNT problem affects pre-Skylake models. See discussion at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62011#c7. // Xor register with itself to break the dependency. p := s.Prog(x86.AXORL) p.From.Type = obj.TYPE_REG From f7670b9f9471d0d40666c28faaaa67851eb8ec2e Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Tue, 8 Feb 2022 11:56:10 -0500 Subject: [PATCH 055/125] cmd/go: update TestCgoHandlesWlORIGIN to avoid -rpath on windows Tweak the cgo recipe for the TestCgoHandlesWlORIGIN testpoint to avoid using "-rpath" on Windows, where it doesn't make sense to use it. This change needed to avoid an "unknown flag -rpath" from clang/ldd on windows. Updates #35006. Change-Id: I4fcd649df4687aa3aff5690e11a15fc0e0f42332 Reviewed-on: https://go-review.googlesource.com/c/go/+/384155 Reviewed-by: Bryan Mills Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/cmd/go/go_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go index fa0d44dae6..426228a831 100644 --- a/src/cmd/go/go_test.go +++ b/src/cmd/go/go_test.go @@ -1567,7 +1567,7 @@ func TestCgoHandlesWlORIGIN(t *testing.T) { defer tg.cleanup() tg.parallel() tg.tempFile("src/origin/origin.go", `package origin - // #cgo !darwin LDFLAGS: -Wl,-rpath,$ORIGIN + // #cgo !darwin,!windows LDFLAGS: -Wl,-rpath,$ORIGIN // void f(void) {} import "C" func f() { C.f() }`) From cc3a3519af5b8b4cf26bf27133675776fdfcaeb9 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Tue, 8 Feb 2022 12:41:26 -0500 Subject: [PATCH 056/125] cmd/link/internal/ld: revise recipe for ASLR enable on windows When doing external linking on windows, the existing Go linker code assumed that the external linker defaulted to "--no-dynamicbase" (if no explicit option was given). This assumption doesn't hold for LLD, which turns on "--dynamicbase" by default for 64-bit apps. Change the linker to detect whether a more modern toolchain is in use and to explicitly pass "--dynamicbase" either way , so as to take the external linker default out of the equation. This also applies to the "--high-entropy-va" option as well. Updates #35006. Change-Id: I3e12cf6d331c9d003e3d2bd566d45de5710588b9 Reviewed-on: https://go-review.googlesource.com/c/go/+/384156 Reviewed-by: Cherry Mui Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/cmd/link/internal/ld/lib.go | 57 +++++++++++++++++++++++++++------ 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 6f9c7c2627..4295bb8656 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -1353,13 +1353,52 @@ func (ctxt *Link) hostlink() { argv = append(argv, "-Wl,-bbigtoc") } - // Enable ASLR on Windows. - addASLRargs := func(argv []string) []string { - // Enable ASLR. - argv = append(argv, "-Wl,--dynamicbase") + // Enable/disable ASLR on Windows. + addASLRargs := func(argv []string, val bool) []string { + // Old/ancient versions of GCC support "--dynamicbase" and + // "--high-entropy-va" but don't enable it by default. In + // addition, they don't accept "--disable-dynamicbase" or + // "--no-dynamicbase", so the only way to disable ASLR is to + // not pass any flags at all. + // + // More modern versions of GCC (and also clang) enable ASLR + // by default. With these compilers, however you can turn it + // off if you want using "--disable-dynamicbase" or + // "--no-dynamicbase". + // + // The strategy below is to try using "--disable-dynamicbase"; + // if this succeeds, then assume we're working with more + // modern compilers and act accordingly. If it fails, assume + // an ancient compiler with ancient defaults. + var dbopt string + var heopt string + dbon := "--dynamicbase" + heon := "--high-entropy-va" + dboff := "--disable-dynamicbase" + heoff := "--disable-high-entropy-va" + if val { + dbopt = dbon + heopt = heon + } else { + // Test to see whether "--disable-dynamicbase" works. + newer := linkerFlagSupported(ctxt.Arch, argv[0], "", "-Wl,"+dboff) + if newer { + // Newer compiler, which supports both on/off options. + dbopt = dboff + heopt = heoff + } else { + // older toolchain: we have to say nothing in order to + // get a no-ASLR binary. + dbopt = "" + heopt = "" + } + } + if dbopt != "" { + argv = append(argv, "-Wl,"+dbopt) + } // enable high-entropy ASLR on 64-bit. - if ctxt.Arch.PtrSize >= 8 { - argv = append(argv, "-Wl,--high-entropy-va") + if ctxt.Arch.PtrSize >= 8 && heopt != "" { + argv = append(argv, "-Wl,"+heopt) } return argv } @@ -1376,7 +1415,7 @@ func (ctxt *Link) hostlink() { switch ctxt.HeadType { case objabi.Hdarwin, objabi.Haix: case objabi.Hwindows: - argv = addASLRargs(argv) + argv = addASLRargs(argv, *flagAslr) default: // ELF. if ctxt.UseRelro() { @@ -1393,9 +1432,7 @@ func (ctxt *Link) hostlink() { } argv = append(argv, "-shared") if ctxt.HeadType == objabi.Hwindows { - if *flagAslr { - argv = addASLRargs(argv) - } + argv = addASLRargs(argv, *flagAslr) } else { // Pass -z nodelete to mark the shared library as // non-closeable: a dlclose will do nothing. From 12acf9b0f009305eefc71d4cee8808cc244e86aa Mon Sep 17 00:00:00 2001 From: vpachkov Date: Mon, 29 Nov 2021 15:20:37 +0300 Subject: [PATCH 057/125] runtime: remove AVX2less code in memclrNoHeapPointers for GOAMD64 >= 3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Optimize memclr by removing simple case loop along with the runtime check since AVX2 is guaranteed to be available when compiling with GOAMD64 >= 3 name old speed new speed delta Memclr/5-12 2.70GB/s ± 1% 2.73GB/s ± 1% ~ (p=0.056 n=5+5) Memclr/16-12 7.00GB/s ± 2% 7.03GB/s ± 1% ~ (p=1.000 n=5+5) Memclr/64-12 25.5GB/s ± 1% 25.5GB/s ± 1% ~ (p=0.548 n=5+5) Memclr/256-12 53.4GB/s ± 1% 52.7GB/s ± 2% ~ (p=0.222 n=5+5) Memclr/4096-12 109GB/s ± 1% 129GB/s ± 0% +18.57% (p=0.008 n=5+5) Memclr/65536-12 75.2GB/s ± 2% 78.3GB/s ± 3% +4.14% (p=0.008 n=5+5) Memclr/1M-12 53.5GB/s ± 2% 54.1GB/s ± 2% ~ (p=0.310 n=5+5) Memclr/4M-12 53.1GB/s ± 3% 52.9GB/s ± 2% ~ (p=1.000 n=5+5) Memclr/8M-12 44.6GB/s ± 3% 45.1GB/s ± 3% ~ (p=0.310 n=5+5) Memclr/16M-12 24.8GB/s ± 2% 24.2GB/s ± 2% ~ (p=0.056 n=5+5) Memclr/64M-12 38.3GB/s ± 1% 37.8GB/s ± 1% ~ (p=0.056 n=5+5) [Geo mean] 31.0GB/s 31.5GB/s +1.78% Change-Id: I6f3014f6338cb3b5a1b94503faa205f043fe2de8 Reviewed-on: https://go-review.googlesource.com/c/go/+/367494 Trust: Cherry Mui Trust: Daniel Martí Run-TryBot: Daniel Martí TryBot-Result: Gopher Robot Reviewed-by: Keith Randall --- src/cmd/dist/build.go | 2 ++ src/runtime/asm_amd64.h | 14 ++++++++++++++ src/runtime/memclr_amd64.s | 4 ++++ 3 files changed, 20 insertions(+) create mode 100644 src/runtime/asm_amd64.h diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index d224cef2a8..db2ac1f2a6 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -732,6 +732,8 @@ func runInstall(pkg string, ch chan struct{}) { pathf("%s/src/runtime/funcdata.h", goroot), 0) copyfile(pathf("%s/pkg/include/asm_ppc64x.h", goroot), pathf("%s/src/runtime/asm_ppc64x.h", goroot), 0) + copyfile(pathf("%s/pkg/include/asm_amd64.h", goroot), + pathf("%s/src/runtime/asm_amd64.h", goroot), 0) } // Generate any missing files; regenerate existing ones. diff --git a/src/runtime/asm_amd64.h b/src/runtime/asm_amd64.h new file mode 100644 index 0000000000..49e0ee2323 --- /dev/null +++ b/src/runtime/asm_amd64.h @@ -0,0 +1,14 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Define features that are guaranteed to be supported by setting the AMD64 variable. +// If a feature is supported, there's no need to check it at runtime every time. + +#ifdef GOAMD64_v3 +#define hasAVX2 +#endif + +#ifdef GOAMD64_v4 +#define hasAVX2 +#endif diff --git a/src/runtime/memclr_amd64.s b/src/runtime/memclr_amd64.s index 700bbd7b9b..26a6205e61 100644 --- a/src/runtime/memclr_amd64.s +++ b/src/runtime/memclr_amd64.s @@ -6,6 +6,7 @@ #include "go_asm.h" #include "textflag.h" +#include "asm_amd64.h" // See memclrNoHeapPointers Go doc for important implementation constraints. @@ -39,6 +40,8 @@ tail: JBE _65through128 CMPQ BX, $256 JBE _129through256 + +#ifndef hasAVX2 CMPB internal∕cpu·X86+const_offsetX86HasAVX2(SB), $1 JE loop_preheader_avx2 // TODO: for really big clears, use MOVNTDQ, even without AVX2. @@ -65,6 +68,7 @@ loop: CMPQ BX, $256 JAE loop JMP tail +#endif loop_preheader_avx2: VPXOR Y0, Y0, Y0 From f1b5c048d7b7589a5b3ae423114baf27b3456021 Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Mon, 14 Feb 2022 19:28:20 +0000 Subject: [PATCH 058/125] runtime/internal/atomic: add Bool This change adds the Bool type, a convenient wrapper around Uint8 for atomic bool values. Change-Id: I86127d6f213b730d6999db5718ca1a5af0c5b538 Reviewed-on: https://go-review.googlesource.com/c/go/+/393395 Reviewed-by: Michael Pratt Reviewed-by: Austin Clements Trust: Michael Knyszek --- src/runtime/internal/atomic/types.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/runtime/internal/atomic/types.go b/src/runtime/internal/atomic/types.go index 1a240d7c91..d9cffbf88f 100644 --- a/src/runtime/internal/atomic/types.go +++ b/src/runtime/internal/atomic/types.go @@ -124,6 +124,28 @@ func (u *Uint8) Or(value uint8) { Or8(&u.value, value) } +// Bool is an atomically accessed bool value. +// +// A Bool must not be copied. +type Bool struct { + // Inherits noCopy from Uint8. + u Uint8 +} + +// Load accesses and returns the value atomically. +func (b *Bool) Load() bool { + return b.u.Load() != 0 +} + +// Store updates the value atomically. +func (b *Bool) Store(value bool) { + s := uint8(0) + if value { + s = 1 + } + b.u.Store(s) +} + // Uint32 is an atomically accessed uint32 value. // // A Uint32 must not be copied. @@ -326,6 +348,7 @@ func (u *Uintptr) Add(delta uintptr) uintptr { // // A Float64 must not be copied. type Float64 struct { + // Inherits noCopy from Uint64. u Uint64 } From 3334afd7609185574ad179cb030064f0825c2101 Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Mon, 14 Feb 2022 22:36:25 +0000 Subject: [PATCH 059/125] runtime: remove old pacer and the PacerRedesign goexperiment Now that Go 1.18 has been released, remove the old pacer. Change-Id: Ie7a7596d67f3fc25d3f375a08fc75eafac2eb834 Reviewed-on: https://go-review.googlesource.com/c/go/+/393396 Trust: Michael Knyszek Reviewed-by: Austin Clements Reviewed-by: Michael Pratt --- src/internal/buildcfg/exp.go | 1 - .../goexperiment/exp_pacerredesign_off.go | 9 - .../goexperiment/exp_pacerredesign_on.go | 9 - src/internal/goexperiment/flags.go | 6 - src/runtime/export_test.go | 4 +- src/runtime/mgc.go | 8 +- src/runtime/mgcmark.go | 30 +- src/runtime/mgcpacer.go | 573 +++++------------- src/runtime/mgcpacer_test.go | 52 +- 9 files changed, 190 insertions(+), 502 deletions(-) delete mode 100644 src/internal/goexperiment/exp_pacerredesign_off.go delete mode 100644 src/internal/goexperiment/exp_pacerredesign_on.go diff --git a/src/internal/buildcfg/exp.go b/src/internal/buildcfg/exp.go index 6b770558fd..87b1686c20 100644 --- a/src/internal/buildcfg/exp.go +++ b/src/internal/buildcfg/exp.go @@ -70,7 +70,6 @@ func ParseGOEXPERIMENT(goos, goarch, goexp string) (*ExperimentFlags, error) { baseline := goexperiment.Flags{ RegabiWrappers: regabiSupported, RegabiArgs: regabiSupported, - PacerRedesign: true, } // Start with the statically enabled set of experiments. diff --git a/src/internal/goexperiment/exp_pacerredesign_off.go b/src/internal/goexperiment/exp_pacerredesign_off.go deleted file mode 100644 index 62e1831437..0000000000 --- a/src/internal/goexperiment/exp_pacerredesign_off.go +++ /dev/null @@ -1,9 +0,0 @@ -// Code generated by mkconsts.go. DO NOT EDIT. - -//go:build !goexperiment.pacerredesign -// +build !goexperiment.pacerredesign - -package goexperiment - -const PacerRedesign = false -const PacerRedesignInt = 0 diff --git a/src/internal/goexperiment/exp_pacerredesign_on.go b/src/internal/goexperiment/exp_pacerredesign_on.go deleted file mode 100644 index b22b031009..0000000000 --- a/src/internal/goexperiment/exp_pacerredesign_on.go +++ /dev/null @@ -1,9 +0,0 @@ -// Code generated by mkconsts.go. DO NOT EDIT. - -//go:build goexperiment.pacerredesign -// +build goexperiment.pacerredesign - -package goexperiment - -const PacerRedesign = true -const PacerRedesignInt = 1 diff --git a/src/internal/goexperiment/flags.go b/src/internal/goexperiment/flags.go index 9150493575..558b02607e 100644 --- a/src/internal/goexperiment/flags.go +++ b/src/internal/goexperiment/flags.go @@ -79,12 +79,6 @@ type Flags struct { // reflection calls use registers). RegabiArgs bool - // PacerRedesign enables the new GC pacer in the runtime. - // - // Details regarding the new pacer may be found at - // https://golang.org/design/44167-gc-pacer-redesign - PacerRedesign bool - // HeapMinimum512KiB reduces the minimum heap size to 512 KiB. // // This was originally reduced as part of PacerRedesign, but diff --git a/src/runtime/export_test.go b/src/runtime/export_test.go index 0ac15ce82c..0156981524 100644 --- a/src/runtime/export_test.go +++ b/src/runtime/export_test.go @@ -1308,9 +1308,9 @@ func (c *GCController) Revise(d GCControllerReviseDelta) { func (c *GCController) EndCycle(bytesMarked uint64, assistTime, elapsed int64, gomaxprocs int) { c.assistTime = assistTime - triggerRatio := c.endCycle(elapsed, gomaxprocs, false) + c.endCycle(elapsed, gomaxprocs, false) c.resetLive(bytesMarked) - c.commit(triggerRatio) + c.commit() } var escapeSink any diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 44b96154e7..ba679e0af5 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -898,15 +898,15 @@ top: // endCycle depends on all gcWork cache stats being flushed. // The termination algorithm above ensured that up to // allocations since the ragged barrier. - nextTriggerRatio := gcController.endCycle(now, int(gomaxprocs), work.userForced) + gcController.endCycle(now, int(gomaxprocs), work.userForced) // Perform mark termination. This will restart the world. - gcMarkTermination(nextTriggerRatio) + gcMarkTermination() } // World must be stopped and mark assists and background workers must be // disabled. -func gcMarkTermination(nextTriggerRatio float64) { +func gcMarkTermination() { // Start marktermination (write barrier remains enabled for now). setGCPhase(_GCmarktermination) @@ -976,7 +976,7 @@ func gcMarkTermination(nextTriggerRatio float64) { memstats.last_heap_inuse = memstats.heap_inuse // Update GC trigger and pacing for the next cycle. - gcController.commit(nextTriggerRatio) + gcController.commit() gcPaceSweeper(gcController.trigger) gcPaceScavenger(gcController.heapGoal, gcController.lastHeapGoal) diff --git a/src/runtime/mgcmark.go b/src/runtime/mgcmark.go index 0bf044e314..3e1a0b560a 100644 --- a/src/runtime/mgcmark.go +++ b/src/runtime/mgcmark.go @@ -8,7 +8,6 @@ package runtime import ( "internal/goarch" - "internal/goexperiment" "runtime/internal/atomic" "runtime/internal/sys" "unsafe" @@ -247,12 +246,10 @@ func markroot(gcw *gcWork, i uint32, flushBgCredit bool) int64 { } }) } - if goexperiment.PacerRedesign { - if workCounter != nil && workDone != 0 { - workCounter.Add(workDone) - if flushBgCredit { - gcFlushBgCredit(workDone) - } + if workCounter != nil && workDone != 0 { + workCounter.Add(workDone) + if flushBgCredit { + gcFlushBgCredit(workDone) } } return workDone @@ -701,7 +698,6 @@ func gcFlushBgCredit(scanWork int64) { // scanstack scans gp's stack, greying all pointers found on the stack. // -// For goexperiment.PacerRedesign: // Returns the amount of scan work performed, but doesn't update // gcController.stackScanWork or flush any credit. Any background credit produced // by this function should be flushed by its caller. scanstack itself can't @@ -1157,10 +1153,7 @@ func gcDrainN(gcw *gcWork, scanWork int64) int64 { if work.markrootNext < work.markrootJobs { job := atomic.Xadd(&work.markrootNext, +1) - 1 if job < work.markrootJobs { - work := markroot(gcw, job, false) - if goexperiment.PacerRedesign { - workFlushed += work - } + workFlushed += markroot(gcw, job, false) continue } } @@ -1558,19 +1551,6 @@ func gcmarknewobject(span *mspan, obj, size, scanSize uintptr) { gcw := &getg().m.p.ptr().gcw gcw.bytesMarked += uint64(size) - if !goexperiment.PacerRedesign { - // The old pacer counts newly allocated memory toward - // heapScanWork because heapScan is continuously updated - // throughout the GC cycle with newly allocated memory. However, - // these objects are never actually scanned, so we need - // to account for them in heapScanWork here, "faking" their work. - // Otherwise the pacer will think it's always behind, potentially - // by a large margin. - // - // The new pacer doesn't care about this because it ceases to updated - // heapScan once a GC cycle starts, effectively snapshotting it. - gcw.heapScanWork += int64(scanSize) - } } // gcMarkTinyAllocs greys all active tiny alloc blocks. diff --git a/src/runtime/mgcpacer.go b/src/runtime/mgcpacer.go index d54dbc26c2..7857ee7527 100644 --- a/src/runtime/mgcpacer.go +++ b/src/runtime/mgcpacer.go @@ -14,8 +14,11 @@ import ( const ( // gcGoalUtilization is the goal CPU utilization for // marking as a fraction of GOMAXPROCS. - gcGoalUtilization = goexperiment.PacerRedesignInt*gcBackgroundUtilization + - (1-goexperiment.PacerRedesignInt)*(gcBackgroundUtilization+0.05) + // + // Increasing the goal utilization will shorten GC cycles as the GC + // has more resources behind it, lessening costs from the write barrier, + // but comes at the cost of increasing mutator latency. + gcGoalUtilization = gcBackgroundUtilization // gcBackgroundUtilization is the fixed CPU utilization for background // marking. It must be <= gcGoalUtilization. The difference between @@ -23,16 +26,14 @@ const ( // mark assists. The scheduler will aim to use within 50% of this // goal. // - // Setting this to < gcGoalUtilization avoids saturating the trigger - // feedback controller when there are no assists, which allows it to - // better control CPU and heap growth. However, the larger the gap, - // the more mutator assists are expected to happen, which impact - // mutator latency. - // - // If goexperiment.PacerRedesign, the trigger feedback controller - // is replaced with an estimate of the mark/cons ratio that doesn't - // have the same saturation issues, so this is set equal to - // gcGoalUtilization. + // As a general rule, there's little reason to set gcBackgroundUtilization + // < gcGoalUtilization. One reason might be in mostly idle applications, + // where goroutines are unlikely to assist at all, so the actual + // utilization will be lower than the goal. But this is moot point + // because the idle mark workers already soak up idle CPU resources. + // These two values are still kept separate however because they are + // distinct conceptually, and in previous iterations of the pacer the + // distinction was more important. gcBackgroundUtilization = 0.25 // gcCreditSlack is the amount of scan work credit that can @@ -104,27 +105,14 @@ type gcControllerState struct { // debugging. heapMinimum uint64 - // triggerRatio is the heap growth ratio that triggers marking. - // - // E.g., if this is 0.6, then GC should start when the live - // heap has reached 1.6 times the heap size marked by the - // previous cycle. This should be ≤ GOGC/100 so the trigger - // heap size is less than the goal heap size. This is set - // during mark termination for the next cycle's trigger. - // - // Protected by mheap_.lock or a STW. - // - // Used if !goexperiment.PacerRedesign. - triggerRatio float64 - // trigger is the heap size that triggers marking. // // When heapLive ≥ trigger, the mark phase will start. // This is also the heap size by which proportional sweeping // must be complete. // - // This is computed from triggerRatio during mark termination - // for the next cycle's trigger. + // This is computed from consMark during mark termination for + // the next cycle's trigger. // // Protected by mheap_.lock or a STW. trigger uint64 @@ -141,8 +129,6 @@ type gcControllerState struct { // cycle, divided by the CPU time spent on each activity. // // Updated at the end of each GC cycle, in endCycle. - // - // For goexperiment.PacerRedesign. consMark float64 // consMarkController holds the state for the mark-cons ratio @@ -150,8 +136,6 @@ type gcControllerState struct { // // Its purpose is to smooth out noisiness in the computation of // consMark; see consMark for details. - // - // For goexperiment.PacerRedesign. consMarkController piController _ uint32 // Padding for atomics on 32-bit platforms. @@ -198,14 +182,9 @@ type gcControllerState struct { // is the live heap (as counted by heapLive), but omitting // no-scan objects and no-scan tails of objects. // - // For !goexperiment.PacerRedesign: Whenever this is updated, - // call this gcControllerState's revise() method. It is read - // and written atomically or with the world stopped. - // - // For goexperiment.PacerRedesign: This value is fixed at the - // start of a GC cycle, so during a GC cycle it is safe to - // read without atomics, and it represents the maximum scannable - // heap. + // This value is fixed at the start of a GC cycle, so during a + // GC cycle it is safe to read without atomics, and it represents + // the maximum scannable heap. heapScan uint64 // lastHeapScan is the number of bytes of heap that were scanned @@ -259,9 +238,6 @@ type gcControllerState struct { // // Note that stackScanWork includes all allocated space, not just the // size of the stack itself, mirroring stackSize. - // - // For !goexperiment.PacerRedesign, stackScanWork and globalsScanWork - // are always zero. heapScanWork atomic.Int64 stackScanWork atomic.Int64 globalsScanWork atomic.Int64 @@ -339,35 +315,25 @@ type gcControllerState struct { func (c *gcControllerState) init(gcPercent int32) { c.heapMinimum = defaultHeapMinimum - if goexperiment.PacerRedesign { - c.consMarkController = piController{ - // Tuned first via the Ziegler-Nichols process in simulation, - // then the integral time was manually tuned against real-world - // applications to deal with noisiness in the measured cons/mark - // ratio. - kp: 0.9, - ti: 4.0, + c.consMarkController = piController{ + // Tuned first via the Ziegler-Nichols process in simulation, + // then the integral time was manually tuned against real-world + // applications to deal with noisiness in the measured cons/mark + // ratio. + kp: 0.9, + ti: 4.0, - // Set a high reset time in GC cycles. - // This is inversely proportional to the rate at which we - // accumulate error from clipping. By making this very high - // we make the accumulation slow. In general, clipping is - // OK in our situation, hence the choice. - // - // Tune this if we get unintended effects from clipping for - // a long time. - tt: 1000, - min: -1000, - max: 1000, - } - } else { - // Set a reasonable initial GC trigger. - c.triggerRatio = 7 / 8.0 - - // Fake a heapMarked value so it looks like a trigger at - // heapMinimum is the appropriate growth from heapMarked. - // This will go into computing the initial GC goal. - c.heapMarked = uint64(float64(c.heapMinimum) / (1 + c.triggerRatio)) + // Set a high reset time in GC cycles. + // This is inversely proportional to the rate at which we + // accumulate error from clipping. By making this very high + // we make the accumulation slow. In general, clipping is + // OK in our situation, hence the choice. + // + // Tune this if we get unintended effects from clipping for + // a long time. + tt: 1000, + min: -1000, + max: 1000, } // This will also compute and set the GC trigger and goal. @@ -396,14 +362,8 @@ func (c *gcControllerState) startCycle(markStartTime int64, procs int) { // GOGC. Assist is proportional to this distance, so enforce a // minimum distance, even if it means going over the GOGC goal // by a tiny bit. - if goexperiment.PacerRedesign { - if c.heapGoal < c.heapLive+64<<10 { - c.heapGoal = c.heapLive + 64<<10 - } - } else { - if c.heapGoal < c.heapLive+1<<20 { - c.heapGoal = c.heapLive + 1<<20 - } + if c.heapGoal < c.heapLive+64<<10 { + c.heapGoal = c.heapLive + 64<<10 } // Compute the background mark utilization goal. In general, @@ -492,74 +452,50 @@ func (c *gcControllerState) revise() { // heapGoal assuming the heap is in steady-state. heapGoal := int64(atomic.Load64(&c.heapGoal)) - var scanWorkExpected int64 - if goexperiment.PacerRedesign { - // The expected scan work is computed as the amount of bytes scanned last - // GC cycle, plus our estimate of stacks and globals work for this cycle. - scanWorkExpected = int64(c.lastHeapScan + c.stackScan + c.globalsScan) + // The expected scan work is computed as the amount of bytes scanned last + // GC cycle, plus our estimate of stacks and globals work for this cycle. + scanWorkExpected := int64(c.lastHeapScan + c.stackScan + c.globalsScan) - // maxScanWork is a worst-case estimate of the amount of scan work that - // needs to be performed in this GC cycle. Specifically, it represents - // the case where *all* scannable memory turns out to be live. - maxScanWork := int64(scan + c.stackScan + c.globalsScan) - if work > scanWorkExpected { - // We've already done more scan work than expected. Because our expectation - // is based on a steady-state scannable heap size, we assume this means our - // heap is growing. Compute a new heap goal that takes our existing runway - // computed for scanWorkExpected and extrapolates it to maxScanWork, the worst-case - // scan work. This keeps our assist ratio stable if the heap continues to grow. - // - // The effect of this mechanism is that assists stay flat in the face of heap - // growths. It's OK to use more memory this cycle to scan all the live heap, - // because the next GC cycle is inevitably going to use *at least* that much - // memory anyway. - extHeapGoal := int64(float64(heapGoal-int64(c.trigger))/float64(scanWorkExpected)*float64(maxScanWork)) + int64(c.trigger) - scanWorkExpected = maxScanWork - - // hardGoal is a hard limit on the amount that we're willing to push back the - // heap goal, and that's twice the heap goal (i.e. if GOGC=100 and the heap and/or - // stacks and/or globals grow to twice their size, this limits the current GC cycle's - // growth to 4x the original live heap's size). - // - // This maintains the invariant that we use no more memory than the next GC cycle - // will anyway. - hardGoal := int64((1.0 + float64(gcPercent)/100.0) * float64(heapGoal)) - if extHeapGoal > hardGoal { - extHeapGoal = hardGoal - } - heapGoal = extHeapGoal - } - if int64(live) > heapGoal { - // We're already past our heap goal, even the extrapolated one. - // Leave ourselves some extra runway, so in the worst case we - // finish by that point. - const maxOvershoot = 1.1 - heapGoal = int64(float64(heapGoal) * maxOvershoot) - - // Compute the upper bound on the scan work remaining. - scanWorkExpected = maxScanWork - } - } else { - // Compute the expected scan work remaining. + // maxScanWork is a worst-case estimate of the amount of scan work that + // needs to be performed in this GC cycle. Specifically, it represents + // the case where *all* scannable memory turns out to be live. + maxScanWork := int64(scan + c.stackScan + c.globalsScan) + if work > scanWorkExpected { + // We've already done more scan work than expected. Because our expectation + // is based on a steady-state scannable heap size, we assume this means our + // heap is growing. Compute a new heap goal that takes our existing runway + // computed for scanWorkExpected and extrapolates it to maxScanWork, the worst-case + // scan work. This keeps our assist ratio stable if the heap continues to grow. // - // This is estimated based on the expected - // steady-state scannable heap. For example, with - // GOGC=100, only half of the scannable heap is - // expected to be live, so that's what we target. - // - // (This is a float calculation to avoid overflowing on - // 100*heapScan.) - scanWorkExpected = int64(float64(scan) * 100 / float64(100+gcPercent)) - if int64(live) > heapGoal || work > scanWorkExpected { - // We're past the soft goal, or we've already done more scan - // work than we expected. Pace GC so that in the worst case it - // will complete by the hard goal. - const maxOvershoot = 1.1 - heapGoal = int64(float64(heapGoal) * maxOvershoot) + // The effect of this mechanism is that assists stay flat in the face of heap + // growths. It's OK to use more memory this cycle to scan all the live heap, + // because the next GC cycle is inevitably going to use *at least* that much + // memory anyway. + extHeapGoal := int64(float64(heapGoal-int64(c.trigger))/float64(scanWorkExpected)*float64(maxScanWork)) + int64(c.trigger) + scanWorkExpected = maxScanWork - // Compute the upper bound on the scan work remaining. - scanWorkExpected = int64(scan) + // hardGoal is a hard limit on the amount that we're willing to push back the + // heap goal, and that's twice the heap goal (i.e. if GOGC=100 and the heap and/or + // stacks and/or globals grow to twice their size, this limits the current GC cycle's + // growth to 4x the original live heap's size). + // + // This maintains the invariant that we use no more memory than the next GC cycle + // will anyway. + hardGoal := int64((1.0 + float64(gcPercent)/100.0) * float64(heapGoal)) + if extHeapGoal > hardGoal { + extHeapGoal = hardGoal } + heapGoal = extHeapGoal + } + if int64(live) > heapGoal { + // We're already past our heap goal, even the extrapolated one. + // Leave ourselves some extra runway, so in the worst case we + // finish by that point. + const maxOvershoot = 1.1 + heapGoal = int64(float64(heapGoal) * maxOvershoot) + + // Compute the upper bound on the scan work remaining. + scanWorkExpected = maxScanWork } // Compute the remaining scan work estimate. @@ -604,12 +540,10 @@ func (c *gcControllerState) revise() { c.assistBytesPerWork.Store(assistBytesPerWork) } -// endCycle computes the trigger ratio (!goexperiment.PacerRedesign) -// or the consMark estimate (goexperiment.PacerRedesign) for the next cycle. -// Returns the trigger ratio if application, or 0 (goexperiment.PacerRedesign). +// endCycle computes the consMark estimate for the next cycle. // userForced indicates whether the current GC cycle was forced // by the application. -func (c *gcControllerState) endCycle(now int64, procs int, userForced bool) float64 { +func (c *gcControllerState) endCycle(now int64, procs int, userForced bool) { // Record last heap goal for the scavenger. // We'll be updating the heap goal soon. gcController.lastHeapGoal = gcController.heapGoal @@ -624,155 +558,91 @@ func (c *gcControllerState) endCycle(now int64, procs int, userForced bool) floa utilization += float64(c.assistTime) / float64(assistDuration*int64(procs)) } - if goexperiment.PacerRedesign { - if c.heapLive <= c.trigger { - // Shouldn't happen, but let's be very safe about this in case the - // GC is somehow extremely short. - // - // In this case though, the only reasonable value for c.heapLive-c.trigger - // would be 0, which isn't really all that useful, i.e. the GC was so short - // that it didn't matter. - // - // Ignore this case and don't update anything. - return 0 - } - idleUtilization := 0.0 - if assistDuration > 0 { - idleUtilization = float64(c.idleMarkTime) / float64(assistDuration*int64(procs)) - } - // Determine the cons/mark ratio. + if c.heapLive <= c.trigger { + // Shouldn't happen, but let's be very safe about this in case the + // GC is somehow extremely short. // - // The units we want for the numerator and denominator are both B / cpu-ns. - // We get this by taking the bytes allocated or scanned, and divide by the amount of - // CPU time it took for those operations. For allocations, that CPU time is + // In this case though, the only reasonable value for c.heapLive-c.trigger + // would be 0, which isn't really all that useful, i.e. the GC was so short + // that it didn't matter. // - // assistDuration * procs * (1 - utilization) - // - // Where utilization includes just background GC workers and assists. It does *not* - // include idle GC work time, because in theory the mutator is free to take that at - // any point. - // - // For scanning, that CPU time is - // - // assistDuration * procs * (utilization + idleUtilization) - // - // In this case, we *include* idle utilization, because that is additional CPU time that the - // the GC had available to it. - // - // In effect, idle GC time is sort of double-counted here, but it's very weird compared - // to other kinds of GC work, because of how fluid it is. Namely, because the mutator is - // *always* free to take it. - // - // So this calculation is really: - // (heapLive-trigger) / (assistDuration * procs * (1-utilization)) / - // (scanWork) / (assistDuration * procs * (utilization+idleUtilization) - // - // Note that because we only care about the ratio, assistDuration and procs cancel out. - scanWork := c.heapScanWork.Load() + c.stackScanWork.Load() + c.globalsScanWork.Load() - currentConsMark := (float64(c.heapLive-c.trigger) * (utilization + idleUtilization)) / - (float64(scanWork) * (1 - utilization)) - - // Update cons/mark controller. The time period for this is 1 GC cycle. - // - // This use of a PI controller might seem strange. So, here's an explanation: - // - // currentConsMark represents the consMark we *should've* had to be perfectly - // on-target for this cycle. Given that we assume the next GC will be like this - // one in the steady-state, it stands to reason that we should just pick that - // as our next consMark. In practice, however, currentConsMark is too noisy: - // we're going to be wildly off-target in each GC cycle if we do that. - // - // What we do instead is make a long-term assumption: there is some steady-state - // consMark value, but it's obscured by noise. By constantly shooting for this - // noisy-but-perfect consMark value, the controller will bounce around a bit, - // but its average behavior, in aggregate, should be less noisy and closer to - // the true long-term consMark value, provided its tuned to be slightly overdamped. - var ok bool - oldConsMark := c.consMark - c.consMark, ok = c.consMarkController.next(c.consMark, currentConsMark, 1.0) - if !ok { - // The error spiraled out of control. This is incredibly unlikely seeing - // as this controller is essentially just a smoothing function, but it might - // mean that something went very wrong with how currentConsMark was calculated. - // Just reset consMark and keep going. - c.consMark = 0 - } - - if debug.gcpacertrace > 0 { - printlock() - goal := gcGoalUtilization * 100 - print("pacer: ", int(utilization*100), "% CPU (", int(goal), " exp.) for ") - print(c.heapScanWork.Load(), "+", c.stackScanWork.Load(), "+", c.globalsScanWork.Load(), " B work (", c.lastHeapScan+c.stackScan+c.globalsScan, " B exp.) ") - print("in ", c.trigger, " B -> ", c.heapLive, " B (∆goal ", int64(c.heapLive)-int64(c.heapGoal), ", cons/mark ", oldConsMark, ")") - if !ok { - print("[controller reset]") - } - println() - printunlock() - } - return 0 + // Ignore this case and don't update anything. + return } - - // !goexperiment.PacerRedesign below. - - if userForced { - // Forced GC means this cycle didn't start at the - // trigger, so where it finished isn't good - // information about how to adjust the trigger. - // Just leave it where it is. - return c.triggerRatio + idleUtilization := 0.0 + if assistDuration > 0 { + idleUtilization = float64(c.idleMarkTime) / float64(assistDuration*int64(procs)) } + // Determine the cons/mark ratio. + // + // The units we want for the numerator and denominator are both B / cpu-ns. + // We get this by taking the bytes allocated or scanned, and divide by the amount of + // CPU time it took for those operations. For allocations, that CPU time is + // + // assistDuration * procs * (1 - utilization) + // + // Where utilization includes just background GC workers and assists. It does *not* + // include idle GC work time, because in theory the mutator is free to take that at + // any point. + // + // For scanning, that CPU time is + // + // assistDuration * procs * (utilization + idleUtilization) + // + // In this case, we *include* idle utilization, because that is additional CPU time that the + // the GC had available to it. + // + // In effect, idle GC time is sort of double-counted here, but it's very weird compared + // to other kinds of GC work, because of how fluid it is. Namely, because the mutator is + // *always* free to take it. + // + // So this calculation is really: + // (heapLive-trigger) / (assistDuration * procs * (1-utilization)) / + // (scanWork) / (assistDuration * procs * (utilization+idleUtilization) + // + // Note that because we only care about the ratio, assistDuration and procs cancel out. + scanWork := c.heapScanWork.Load() + c.stackScanWork.Load() + c.globalsScanWork.Load() + currentConsMark := (float64(c.heapLive-c.trigger) * (utilization + idleUtilization)) / + (float64(scanWork) * (1 - utilization)) - // Proportional response gain for the trigger controller. Must - // be in [0, 1]. Lower values smooth out transient effects but - // take longer to respond to phase changes. Higher values - // react to phase changes quickly, but are more affected by - // transient changes. Values near 1 may be unstable. - const triggerGain = 0.5 - - // Compute next cycle trigger ratio. First, this computes the - // "error" for this cycle; that is, how far off the trigger - // was from what it should have been, accounting for both heap - // growth and GC CPU utilization. We compute the actual heap - // growth during this cycle and scale that by how far off from - // the goal CPU utilization we were (to estimate the heap - // growth if we had the desired CPU utilization). The - // difference between this estimate and the GOGC-based goal - // heap growth is the error. - goalGrowthRatio := c.effectiveGrowthRatio() - actualGrowthRatio := float64(c.heapLive)/float64(c.heapMarked) - 1 - triggerError := goalGrowthRatio - c.triggerRatio - utilization/gcGoalUtilization*(actualGrowthRatio-c.triggerRatio) - - // Finally, we adjust the trigger for next time by this error, - // damped by the proportional gain. - triggerRatio := c.triggerRatio + triggerGain*triggerError + // Update cons/mark controller. The time period for this is 1 GC cycle. + // + // This use of a PI controller might seem strange. So, here's an explanation: + // + // currentConsMark represents the consMark we *should've* had to be perfectly + // on-target for this cycle. Given that we assume the next GC will be like this + // one in the steady-state, it stands to reason that we should just pick that + // as our next consMark. In practice, however, currentConsMark is too noisy: + // we're going to be wildly off-target in each GC cycle if we do that. + // + // What we do instead is make a long-term assumption: there is some steady-state + // consMark value, but it's obscured by noise. By constantly shooting for this + // noisy-but-perfect consMark value, the controller will bounce around a bit, + // but its average behavior, in aggregate, should be less noisy and closer to + // the true long-term consMark value, provided its tuned to be slightly overdamped. + var ok bool + oldConsMark := c.consMark + c.consMark, ok = c.consMarkController.next(c.consMark, currentConsMark, 1.0) + if !ok { + // The error spiraled out of control. This is incredibly unlikely seeing + // as this controller is essentially just a smoothing function, but it might + // mean that something went very wrong with how currentConsMark was calculated. + // Just reset consMark and keep going. + c.consMark = 0 + } if debug.gcpacertrace > 0 { - // Print controller state in terms of the design - // document. - H_m_prev := c.heapMarked - h_t := c.triggerRatio - H_T := c.trigger - h_a := actualGrowthRatio - H_a := c.heapLive - h_g := goalGrowthRatio - H_g := int64(float64(H_m_prev) * (1 + h_g)) - u_a := utilization - u_g := gcGoalUtilization - W_a := c.heapScanWork.Load() - print("pacer: H_m_prev=", H_m_prev, - " h_t=", h_t, " H_T=", H_T, - " h_a=", h_a, " H_a=", H_a, - " h_g=", h_g, " H_g=", H_g, - " u_a=", u_a, " u_g=", u_g, - " W_a=", W_a, - " goalΔ=", goalGrowthRatio-h_t, - " actualΔ=", h_a-h_t, - " u_a/u_g=", u_a/u_g, - "\n") + printlock() + goal := gcGoalUtilization * 100 + print("pacer: ", int(utilization*100), "% CPU (", int(goal), " exp.) for ") + print(c.heapScanWork.Load(), "+", c.stackScanWork.Load(), "+", c.globalsScanWork.Load(), " B work (", c.lastHeapScan+c.stackScan+c.globalsScan, " B exp.) ") + print("in ", c.trigger, " B -> ", c.heapLive, " B (∆goal ", int64(c.heapLive)-int64(c.heapGoal), ", cons/mark ", oldConsMark, ")") + if !ok { + print("[controller reset]") + } + println() + printunlock() } - - return triggerRatio } // enlistWorker encourages another dedicated mark worker to start on @@ -938,15 +808,14 @@ func (c *gcControllerState) update(dHeapLive, dHeapScan int64) { traceHeapAlloc() } } - // Only update heapScan in the new pacer redesign if we're not - // currently in a GC. - if !goexperiment.PacerRedesign || gcBlackenEnabled == 0 { + if gcBlackenEnabled == 0 { + // Update heapScan when we're not in a current GC. It is fixed + // at the beginning of a cycle. if dHeapScan != 0 { atomic.Xadd64(&gcController.heapScan, dHeapScan) } - } - if gcBlackenEnabled != 0 { - // gcController.heapLive and heapScan changed. + } else { + // gcController.heapLive changed. c.revise() } } @@ -970,8 +839,6 @@ func (c *gcControllerState) addGlobals(amount int64) { // commit recomputes all pacing parameters from scratch, namely // absolute trigger, the heap goal, mark pacing, and sweep pacing. // -// If goexperiment.PacerRedesign is true, triggerRatio is ignored. -// // This can be called any time. If GC is the in the middle of a // concurrent phase, it will adjust the pacing of that phase. // @@ -979,16 +846,11 @@ func (c *gcControllerState) addGlobals(amount int64) { // gcController.heapLive. These must be up to date. // // mheap_.lock must be held or the world must be stopped. -func (c *gcControllerState) commit(triggerRatio float64) { +func (c *gcControllerState) commit() { if !c.test { assertWorldStoppedOrLockHeld(&mheap_.lock) } - if !goexperiment.PacerRedesign { - c.oldCommit(triggerRatio) - return - } - // Compute the next GC goal, which is when the allocated heap // has grown by GOGC/100 over where it started the last cycle, // plus additional runway for non-heap sources of GC work. @@ -1096,113 +958,6 @@ func (c *gcControllerState) commit(triggerRatio float64) { } } -// oldCommit sets the trigger ratio and updates everything -// derived from it: the absolute trigger, the heap goal, mark pacing, -// and sweep pacing. -// -// This can be called any time. If GC is the in the middle of a -// concurrent phase, it will adjust the pacing of that phase. -// -// This depends on gcPercent, gcController.heapMarked, and -// gcController.heapLive. These must be up to date. -// -// For !goexperiment.PacerRedesign. -func (c *gcControllerState) oldCommit(triggerRatio float64) { - gcPercent := c.gcPercent.Load() - - // Compute the next GC goal, which is when the allocated heap - // has grown by GOGC/100 over the heap marked by the last - // cycle. - goal := ^uint64(0) - if gcPercent >= 0 { - goal = c.heapMarked + c.heapMarked*uint64(gcPercent)/100 - } - - // Set the trigger ratio, capped to reasonable bounds. - if gcPercent >= 0 { - scalingFactor := float64(gcPercent) / 100 - // Ensure there's always a little margin so that the - // mutator assist ratio isn't infinity. - maxTriggerRatio := 0.95 * scalingFactor - if triggerRatio > maxTriggerRatio { - triggerRatio = maxTriggerRatio - } - - // If we let triggerRatio go too low, then if the application - // is allocating very rapidly we might end up in a situation - // where we're allocating black during a nearly always-on GC. - // The result of this is a growing heap and ultimately an - // increase in RSS. By capping us at a point >0, we're essentially - // saying that we're OK using more CPU during the GC to prevent - // this growth in RSS. - // - // The current constant was chosen empirically: given a sufficiently - // fast/scalable allocator with 48 Ps that could drive the trigger ratio - // to <0.05, this constant causes applications to retain the same peak - // RSS compared to not having this allocator. - minTriggerRatio := 0.6 * scalingFactor - if triggerRatio < minTriggerRatio { - triggerRatio = minTriggerRatio - } - } else if triggerRatio < 0 { - // gcPercent < 0, so just make sure we're not getting a negative - // triggerRatio. This case isn't expected to happen in practice, - // and doesn't really matter because if gcPercent < 0 then we won't - // ever consume triggerRatio further on in this function, but let's - // just be defensive here; the triggerRatio being negative is almost - // certainly undesirable. - triggerRatio = 0 - } - c.triggerRatio = triggerRatio - - // Compute the absolute GC trigger from the trigger ratio. - // - // We trigger the next GC cycle when the allocated heap has - // grown by the trigger ratio over the marked heap size. - trigger := ^uint64(0) - if gcPercent >= 0 { - trigger = uint64(float64(c.heapMarked) * (1 + triggerRatio)) - // Don't trigger below the minimum heap size. - minTrigger := c.heapMinimum - if !isSweepDone() { - // Concurrent sweep happens in the heap growth - // from gcController.heapLive to trigger, so ensure - // that concurrent sweep has some heap growth - // in which to perform sweeping before we - // start the next GC cycle. - sweepMin := atomic.Load64(&c.heapLive) + sweepMinHeapDistance - if sweepMin > minTrigger { - minTrigger = sweepMin - } - } - if trigger < minTrigger { - trigger = minTrigger - } - if int64(trigger) < 0 { - print("runtime: heapGoal=", c.heapGoal, " heapMarked=", c.heapMarked, " gcController.heapLive=", c.heapLive, " initialHeapLive=", work.initialHeapLive, "triggerRatio=", triggerRatio, " minTrigger=", minTrigger, "\n") - throw("trigger underflow") - } - if trigger > goal { - // The trigger ratio is always less than GOGC/100, but - // other bounds on the trigger may have raised it. - // Push up the goal, too. - goal = trigger - } - } - - // Commit to the trigger and goal. - c.trigger = trigger - atomic.Store64(&c.heapGoal, goal) - if trace.enabled { - traceHeapGoal() - } - - // Update mark pacing. - if gcphase != _GCoff { - c.revise() - } -} - // effectiveGrowthRatio returns the current effective heap growth // ratio (GOGC/100) based on heapMarked from the previous GC and // heapGoal for the current GC. @@ -1243,7 +998,7 @@ func (c *gcControllerState) setGCPercent(in int32) int32 { c.heapMinimum = defaultHeapMinimum * uint64(in) / 100 c.gcPercent.Store(in) // Update pacing in response to gcPercent change. - c.commit(c.triggerRatio) + c.commit() return out } diff --git a/src/runtime/mgcpacer_test.go b/src/runtime/mgcpacer_test.go index 10a8ca2520..b49e3a8d24 100644 --- a/src/runtime/mgcpacer_test.go +++ b/src/runtime/mgcpacer_test.go @@ -6,7 +6,6 @@ package runtime_test import ( "fmt" - "internal/goexperiment" "math" "math/rand" . "runtime" @@ -35,11 +34,9 @@ func TestGcPacer(t *testing.T) { checker: func(t *testing.T, c []gcCycleResult) { n := len(c) if n >= 25 { - if goexperiment.PacerRedesign { - // For the pacer redesign, assert something even stronger: at this alloc/scan rate, - // it should be extremely close to the goal utilization. - assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, GCGoalUtilization, 0.005) - } + // For the pacer redesign, assert something even stronger: at this alloc/scan rate, + // it should be extremely close to the goal utilization. + assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, GCGoalUtilization, 0.005) // Make sure the pacer settles into a non-degenerate state in at least 25 GC cycles. assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, c[n-2].gcUtilization, 0.005) @@ -64,12 +61,10 @@ func TestGcPacer(t *testing.T) { // really handle this well, so don't check the goal ratio for it. n := len(c) if n >= 25 { - if goexperiment.PacerRedesign { - // For the pacer redesign, assert something even stronger: at this alloc/scan rate, - // it should be extremely close to the goal utilization. - assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, GCGoalUtilization, 0.005) - assertInRange(t, "goal ratio", c[n-1].goalRatio(), 0.95, 1.05) - } + // For the pacer redesign, assert something even stronger: at this alloc/scan rate, + // it should be extremely close to the goal utilization. + assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, GCGoalUtilization, 0.005) + assertInRange(t, "goal ratio", c[n-1].goalRatio(), 0.95, 1.05) // Make sure the pacer settles into a non-degenerate state in at least 25 GC cycles. assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, c[n-2].gcUtilization, 0.005) @@ -93,12 +88,10 @@ func TestGcPacer(t *testing.T) { // really handle this well, so don't check the goal ratio for it. n := len(c) if n >= 25 { - if goexperiment.PacerRedesign { - // For the pacer redesign, assert something even stronger: at this alloc/scan rate, - // it should be extremely close to the goal utilization. - assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, GCGoalUtilization, 0.005) - assertInRange(t, "goal ratio", c[n-1].goalRatio(), 0.95, 1.05) - } + // For the pacer redesign, assert something even stronger: at this alloc/scan rate, + // it should be extremely close to the goal utilization. + assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, GCGoalUtilization, 0.005) + assertInRange(t, "goal ratio", c[n-1].goalRatio(), 0.95, 1.05) // Make sure the pacer settles into a non-degenerate state in at least 25 GC cycles. assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, c[n-2].gcUtilization, 0.005) @@ -187,7 +180,7 @@ func TestGcPacer(t *testing.T) { length: 50, checker: func(t *testing.T, c []gcCycleResult) { n := len(c) - if goexperiment.PacerRedesign && n > 12 { + if n > 12 { if n == 26 { // In the 26th cycle there's a heap growth. Overshoot is expected to maintain // a stable utilization, but we should *never* overshoot more than GOGC of @@ -232,12 +225,7 @@ func TestGcPacer(t *testing.T) { // 1. Utilization isn't varying _too_ much, and // 2. The pacer is mostly keeping up with the goal. assertInRange(t, "goal ratio", c[n-1].goalRatio(), 0.95, 1.05) - if goexperiment.PacerRedesign { - assertInRange(t, "GC utilization", c[n-1].gcUtilization, 0.25, 0.3) - } else { - // The old pacer is messier here, and needs a lot more tolerance. - assertInRange(t, "GC utilization", c[n-1].gcUtilization, 0.25, 0.4) - } + assertInRange(t, "GC utilization", c[n-1].gcUtilization, 0.25, 0.3) } }, }, @@ -260,12 +248,7 @@ func TestGcPacer(t *testing.T) { // 1. Utilization isn't varying _too_ much, and // 2. The pacer is mostly keeping up with the goal. assertInRange(t, "goal ratio", c[n-1].goalRatio(), 0.95, 1.05) - if goexperiment.PacerRedesign { - assertInRange(t, "GC utilization", c[n-1].gcUtilization, 0.25, 0.3) - } else { - // The old pacer is messier here, and needs a lot more tolerance. - assertInRange(t, "GC utilization", c[n-1].gcUtilization, 0.25, 0.4) - } + assertInRange(t, "GC utilization", c[n-1].gcUtilization, 0.25, 0.3) } }, }, @@ -293,12 +276,7 @@ func TestGcPacer(t *testing.T) { // Unlike the other tests, GC utilization here will vary more and tend higher. // Just make sure it's not going too crazy. assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, c[n-2].gcUtilization, 0.05) - if goexperiment.PacerRedesign { - assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, c[11].gcUtilization, 0.05) - } else { - // The old pacer is messier here, and needs a little more tolerance. - assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, c[11].gcUtilization, 0.07) - } + assertInEpsilon(t, "GC utilization", c[n-1].gcUtilization, c[11].gcUtilization, 0.05) } }, }, From 4a56ba1c453927256f231a8bcef316bb4b3aa68a Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Mon, 14 Mar 2022 23:39:03 +0000 Subject: [PATCH 060/125] runtime: remove intermediate fields in memstats for ReadMemStats Currently, the ReadMemStats (really this is all happening in readmemstats_m, but that's just a direct call from ReadMemStats) call chain first populates some fields in memstats, then copies those into the final MemStats location. This used to make a lot of sense when memstats' structure aligned with MemStats, and the values were just copied from one to other. Sometime in the last few releases, we switched to populating the MemStats manually because a lot of fields had diverged from their internal representation. Now, we're left with a lot of fields in memstats that pollute the structure: they only exist to be updated for the sake of ReadMemStats. Since we're going to be adding more fields to memstats in further CLs, this is a good opportunity to clean up. As a result of this change, updatememstats, which used to just update the aforementioned intermediate fields in memstats, is no longer necessary, so it is removed. Change-Id: Ifabfb3ac3002641105af62e9509a6351165dcd87 Reviewed-on: https://go-review.googlesource.com/c/go/+/393397 Trust: Michael Knyszek Reviewed-by: Austin Clements Reviewed-by: Michael Pratt --- src/runtime/heapdump.go | 5 - src/runtime/malloc.go | 5 - src/runtime/mstats.go | 304 +++++++++++++++++----------------------- 3 files changed, 128 insertions(+), 186 deletions(-) diff --git a/src/runtime/heapdump.go b/src/runtime/heapdump.go index 871637a09e..c7f2b7a443 100644 --- a/src/runtime/heapdump.go +++ b/src/runtime/heapdump.go @@ -697,11 +697,6 @@ func writeheapdump_m(fd uintptr, m *MemStats) { casgstatus(_g_.m.curg, _Grunning, _Gwaiting) _g_.waitreason = waitReasonDumpingHeap - // Update stats so we can dump them. - // As a side effect, flushes all the mcaches so the mspan.freelist - // lists contain all the free objects. - updatememstats() - // Set dump file. dumpfd = fd diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go index 6ed6ceade2..a22bef821a 100644 --- a/src/runtime/malloc.go +++ b/src/runtime/malloc.go @@ -434,11 +434,6 @@ func mallocinit() { throw("heapArenaBitmapBytes not a power of 2") } - // Copy class sizes out for statistics table. - for i := range class_to_size { - memstats.by_size[i].size = uint32(class_to_size[i]) - } - // Check physPageSize. if physPageSize == 0 { // The OS init code failed to fetch the physical page size. diff --git a/src/runtime/mstats.go b/src/runtime/mstats.go index c2303e5b8e..e5c3471ca3 100644 --- a/src/runtime/mstats.go +++ b/src/runtime/mstats.go @@ -20,43 +20,31 @@ import ( // Many of these fields are updated on the fly, while others are only // updated when updatememstats is called. type mstats struct { - // General statistics. - alloc uint64 // bytes allocated and not yet freed - total_alloc uint64 // bytes allocated (even if freed) - sys uint64 // bytes obtained from system (should be sum of xxx_sys below, no locking, approximate) - nlookup uint64 // number of pointer lookups (unused) - nmalloc uint64 // number of mallocs - nfree uint64 // number of frees - // Statistics about malloc heap. - // Updated atomically, or with the world stopped. + + heapStats consistentHeapStats + + // These stats are effectively duplicates of fields from heapStats + // but are updated atomically or with the world stopped and don't + // provide the same consistency guarantees. They are used internally + // by the runtime. // // Like MemStats, heap_sys and heap_inuse do not count memory // in manually-managed spans. heap_sys sysMemStat // virtual address space obtained from system for GC'd heap heap_inuse uint64 // bytes in mSpanInUse spans - heap_released uint64 // bytes released to the os - - // heap_objects is not used by the runtime directly and instead - // computed on the fly by updatememstats. - heap_objects uint64 // total number of allocated objects + heap_released uint64 // bytes released to the OS // Statistics about stacks. - stacks_inuse uint64 // bytes in manually-managed stack spans; computed by updatememstats - stacks_sys sysMemStat // only counts newosproc0 stack in mstats; differs from MemStats.StackSys + stacks_sys sysMemStat // only counts newosproc0 stack in mstats; differs from MemStats.StackSys // Statistics about allocation of low-level fixed-size structures. - // Protected by FixAlloc locks. - mspan_inuse uint64 // mspan structures mspan_sys sysMemStat - mcache_inuse uint64 // mcache structures mcache_sys sysMemStat buckhash_sys sysMemStat // profiling bucket hash table // Statistics about GC overhead. - gcWorkBufInUse uint64 // computed by updatememstats - gcProgPtrScalarBitsInUse uint64 // computed by updatememstats - gcMiscSys sysMemStat // updated atomically or during STW + gcMiscSys sysMemStat // updated atomically or during STW // Miscellaneous statistics. other_sys sysMemStat // updated atomically or during STW @@ -71,28 +59,13 @@ type mstats struct { numgc uint32 numforcedgc uint32 // number of user-forced GCs gc_cpu_fraction float64 // fraction of CPU time used by GC - enablegc bool - debuggc bool - - // Statistics about allocation size classes. - - by_size [_NumSizeClasses]struct { - size uint32 - nmalloc uint64 - nfree uint64 - } - - // Add an uint32 for even number of size classes to align below fields - // to 64 bits for atomic operations on 32 bit platforms. - _ [1 - _NumSizeClasses%2]uint32 last_gc_nanotime uint64 // last gc (monotonic time) last_heap_inuse uint64 // heap_inuse at mark termination of the previous GC - // heapStats is a set of statistics - heapStats consistentHeapStats + enablegc bool - // _ uint32 // ensure gcPauseDist is aligned + _ uint32 // ensure gcPauseDist is aligned. // gcPauseDist represents the distribution of all GC-related // application pauses in the runtime. @@ -409,15 +382,113 @@ func ReadMemStats(m *MemStats) { startTheWorld() } +// readmemstats_m populates stats for internal runtime values. +// +// The world must be stopped. func readmemstats_m(stats *MemStats) { - updatememstats() + assertWorldStopped() - stats.Alloc = memstats.alloc - stats.TotalAlloc = memstats.total_alloc - stats.Sys = memstats.sys - stats.Mallocs = memstats.nmalloc - stats.Frees = memstats.nfree - stats.HeapAlloc = memstats.alloc + // Flush mcaches to mcentral before doing anything else. + // + // Flushing to the mcentral may in general cause stats to + // change as mcentral data structures are manipulated. + systemstack(flushallmcaches) + + // Calculate memory allocator stats. + // During program execution we only count number of frees and amount of freed memory. + // Current number of alive objects in the heap and amount of alive heap memory + // are calculated by scanning all spans. + // Total number of mallocs is calculated as number of frees plus number of alive objects. + // Similarly, total amount of allocated memory is calculated as amount of freed memory + // plus amount of alive heap memory. + + // Collect consistent stats, which are the source-of-truth in some cases. + var consStats heapStatsDelta + memstats.heapStats.unsafeRead(&consStats) + + // Collect large allocation stats. + totalAlloc := uint64(consStats.largeAlloc) + nMalloc := uint64(consStats.largeAllocCount) + totalFree := uint64(consStats.largeFree) + nFree := uint64(consStats.largeFreeCount) + + // Collect per-sizeclass stats. + var bySize [_NumSizeClasses]struct { + Size uint32 + Mallocs uint64 + Frees uint64 + } + for i := range bySize { + bySize[i].Size = uint32(class_to_size[i]) + + // Malloc stats. + a := uint64(consStats.smallAllocCount[i]) + totalAlloc += a * uint64(class_to_size[i]) + nMalloc += a + bySize[i].Mallocs = a + + // Free stats. + f := uint64(consStats.smallFreeCount[i]) + totalFree += f * uint64(class_to_size[i]) + nFree += f + bySize[i].Frees = f + } + + // Account for tiny allocations. + // For historical reasons, MemStats includes tiny allocations + // in both the total free and total alloc count. This double-counts + // memory in some sense because their tiny allocation block is also + // counted. Tracking the lifetime of individual tiny allocations is + // currently not done because it would be too expensive. + nFree += uint64(consStats.tinyAllocCount) + nMalloc += uint64(consStats.tinyAllocCount) + + // Calculate derived stats. + + stackInUse := uint64(consStats.inStacks) + gcWorkBufInUse := uint64(consStats.inWorkBufs) + gcProgPtrScalarBitsInUse := uint64(consStats.inPtrScalarBits) + + // The world is stopped, so the consistent stats (after aggregation) + // should be identical to some combination of memstats. In particular: + // + // * heap_inuse == inHeap + // * heap_released == released + // * heap_sys - heap_released == committed - inStacks - inWorkBufs - inPtrScalarBits + // + // Check if that's actually true. + // + // TODO(mknyszek): Maybe don't throw here. It would be bad if a + // bug in otherwise benign accounting caused the whole application + // to crash. + if memstats.heap_inuse != uint64(consStats.inHeap) { + print("runtime: heap_inuse=", memstats.heap_inuse, "\n") + print("runtime: consistent value=", consStats.inHeap, "\n") + throw("heap_inuse and consistent stats are not equal") + } + if memstats.heap_released != uint64(consStats.released) { + print("runtime: heap_released=", memstats.heap_released, "\n") + print("runtime: consistent value=", consStats.released, "\n") + throw("heap_released and consistent stats are not equal") + } + globalRetained := memstats.heap_sys.load() - memstats.heap_released + consRetained := uint64(consStats.committed - consStats.inStacks - consStats.inWorkBufs - consStats.inPtrScalarBits) + if globalRetained != consRetained { + print("runtime: global value=", globalRetained, "\n") + print("runtime: consistent value=", consRetained, "\n") + throw("measures of the retained heap are not equal") + } + + // We've calculated all the values we need. Now, populate stats. + + stats.Alloc = totalAlloc - totalFree + stats.TotalAlloc = totalAlloc + stats.Sys = memstats.heap_sys.load() + memstats.stacks_sys.load() + memstats.mspan_sys.load() + + memstats.mcache_sys.load() + memstats.buckhash_sys.load() + memstats.gcMiscSys.load() + + memstats.other_sys.load() + stackInUse + gcWorkBufInUse + gcProgPtrScalarBitsInUse + stats.Mallocs = nMalloc + stats.Frees = nFree + stats.HeapAlloc = totalAlloc - totalFree stats.HeapSys = memstats.heap_sys.load() // By definition, HeapIdle is memory that was mapped // for the heap but is not currently used to hold heap @@ -438,20 +509,20 @@ func readmemstats_m(stats *MemStats) { stats.HeapIdle = memstats.heap_sys.load() - memstats.heap_inuse stats.HeapInuse = memstats.heap_inuse stats.HeapReleased = memstats.heap_released - stats.HeapObjects = memstats.heap_objects - stats.StackInuse = memstats.stacks_inuse + stats.HeapObjects = nMalloc - nFree + stats.StackInuse = stackInUse // memstats.stacks_sys is only memory mapped directly for OS stacks. // Add in heap-allocated stack memory for user consumption. - stats.StackSys = memstats.stacks_inuse + memstats.stacks_sys.load() - stats.MSpanInuse = memstats.mspan_inuse + stats.StackSys = stackInUse + memstats.stacks_sys.load() + stats.MSpanInuse = uint64(mheap_.spanalloc.inuse) stats.MSpanSys = memstats.mspan_sys.load() - stats.MCacheInuse = memstats.mcache_inuse + stats.MCacheInuse = uint64(mheap_.cachealloc.inuse) stats.MCacheSys = memstats.mcache_sys.load() stats.BuckHashSys = memstats.buckhash_sys.load() // MemStats defines GCSys as an aggregate of all memory related // to the memory management system, but we track this memory // at a more granular level in the runtime. - stats.GCSys = memstats.gcMiscSys.load() + memstats.gcWorkBufInUse + memstats.gcProgPtrScalarBitsInUse + stats.GCSys = memstats.gcMiscSys.load() + gcWorkBufInUse + gcProgPtrScalarBitsInUse stats.OtherSys = memstats.other_sys.load() stats.NextGC = gcController.heapGoal stats.LastGC = memstats.last_gc_unix @@ -463,23 +534,11 @@ func readmemstats_m(stats *MemStats) { stats.GCCPUFraction = memstats.gc_cpu_fraction stats.EnableGC = true - // Handle BySize. Copy N values, where N is - // the minimum of the lengths of the two arrays. - // Unfortunately copy() won't work here because - // the arrays have different structs. - // - // TODO(mknyszek): Consider renaming the fields - // of by_size's elements to align so we can use - // the copy built-in. - bySizeLen := len(stats.BySize) - if l := len(memstats.by_size); l < bySizeLen { - bySizeLen = l - } - for i := 0; i < bySizeLen; i++ { - stats.BySize[i].Size = memstats.by_size[i].size - stats.BySize[i].Mallocs = memstats.by_size[i].nmalloc - stats.BySize[i].Frees = memstats.by_size[i].nfree - } + // stats.BySize and bySize might not match in length. + // That's OK, stats.BySize cannot change due to backwards + // compatibility issues. copy will copy the minimum amount + // of values between the two of them. + copy(stats.BySize[:], bySize[:]) } //go:linkname readGCStats runtime/debug.readGCStats @@ -525,113 +584,6 @@ func readGCStats_m(pauses *[]uint64) { *pauses = p[:n+n+3] } -// Updates the memstats structure. -// -// The world must be stopped. -// -//go:nowritebarrier -func updatememstats() { - assertWorldStopped() - - // Flush mcaches to mcentral before doing anything else. - // - // Flushing to the mcentral may in general cause stats to - // change as mcentral data structures are manipulated. - systemstack(flushallmcaches) - - memstats.mcache_inuse = uint64(mheap_.cachealloc.inuse) - memstats.mspan_inuse = uint64(mheap_.spanalloc.inuse) - memstats.sys = memstats.heap_sys.load() + memstats.stacks_sys.load() + memstats.mspan_sys.load() + - memstats.mcache_sys.load() + memstats.buckhash_sys.load() + memstats.gcMiscSys.load() + - memstats.other_sys.load() - - // Calculate memory allocator stats. - // During program execution we only count number of frees and amount of freed memory. - // Current number of alive objects in the heap and amount of alive heap memory - // are calculated by scanning all spans. - // Total number of mallocs is calculated as number of frees plus number of alive objects. - // Similarly, total amount of allocated memory is calculated as amount of freed memory - // plus amount of alive heap memory. - memstats.alloc = 0 - memstats.total_alloc = 0 - memstats.nmalloc = 0 - memstats.nfree = 0 - for i := 0; i < len(memstats.by_size); i++ { - memstats.by_size[i].nmalloc = 0 - memstats.by_size[i].nfree = 0 - } - // Collect consistent stats, which are the source-of-truth in the some cases. - var consStats heapStatsDelta - memstats.heapStats.unsafeRead(&consStats) - - // Collect large allocation stats. - totalAlloc := uint64(consStats.largeAlloc) - memstats.nmalloc += uint64(consStats.largeAllocCount) - totalFree := uint64(consStats.largeFree) - memstats.nfree += uint64(consStats.largeFreeCount) - - // Collect per-sizeclass stats. - for i := 0; i < _NumSizeClasses; i++ { - // Malloc stats. - a := uint64(consStats.smallAllocCount[i]) - totalAlloc += a * uint64(class_to_size[i]) - memstats.nmalloc += a - memstats.by_size[i].nmalloc = a - - // Free stats. - f := uint64(consStats.smallFreeCount[i]) - totalFree += f * uint64(class_to_size[i]) - memstats.nfree += f - memstats.by_size[i].nfree = f - } - - // Account for tiny allocations. - memstats.nfree += uint64(consStats.tinyAllocCount) - memstats.nmalloc += uint64(consStats.tinyAllocCount) - - // Calculate derived stats. - memstats.total_alloc = totalAlloc - memstats.alloc = totalAlloc - totalFree - memstats.heap_objects = memstats.nmalloc - memstats.nfree - - memstats.stacks_inuse = uint64(consStats.inStacks) - memstats.gcWorkBufInUse = uint64(consStats.inWorkBufs) - memstats.gcProgPtrScalarBitsInUse = uint64(consStats.inPtrScalarBits) - - // We also count stacks_inuse, gcWorkBufInUse, and gcProgPtrScalarBitsInUse as sys memory. - memstats.sys += memstats.stacks_inuse + memstats.gcWorkBufInUse + memstats.gcProgPtrScalarBitsInUse - - // The world is stopped, so the consistent stats (after aggregation) - // should be identical to some combination of memstats. In particular: - // - // * heap_inuse == inHeap - // * heap_released == released - // * heap_sys - heap_released == committed - inStacks - inWorkBufs - inPtrScalarBits - // - // Check if that's actually true. - // - // TODO(mknyszek): Maybe don't throw here. It would be bad if a - // bug in otherwise benign accounting caused the whole application - // to crash. - if memstats.heap_inuse != uint64(consStats.inHeap) { - print("runtime: heap_inuse=", memstats.heap_inuse, "\n") - print("runtime: consistent value=", consStats.inHeap, "\n") - throw("heap_inuse and consistent stats are not equal") - } - if memstats.heap_released != uint64(consStats.released) { - print("runtime: heap_released=", memstats.heap_released, "\n") - print("runtime: consistent value=", consStats.released, "\n") - throw("heap_released and consistent stats are not equal") - } - globalRetained := memstats.heap_sys.load() - memstats.heap_released - consRetained := uint64(consStats.committed - consStats.inStacks - consStats.inWorkBufs - consStats.inPtrScalarBits) - if globalRetained != consRetained { - print("runtime: global value=", globalRetained, "\n") - print("runtime: consistent value=", consRetained, "\n") - throw("measures of the retained heap are not equal") - } -} - // flushmcache flushes the mcache of allp[i]. // // The world must be stopped. From f990b0f1e80cf6152219b4d3f9a397899e8d6d40 Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Tue, 15 Mar 2022 00:23:26 +0000 Subject: [PATCH 061/125] runtime: add wrappers for sys* functions and consolidate docs This change lifts all non-platform-specific code out of sys* functions for each platform up into wrappers, and moves documentation about the OS virtual memory abstraction layer from malloc.go to mem.go, which contains those wrappers. Change-Id: Ie803e4447403eaafc508b34b53a1a47d6cee9388 Reviewed-on: https://go-review.googlesource.com/c/go/+/393398 Reviewed-by: Austin Clements Reviewed-by: Michael Pratt Trust: Michael Knyszek --- src/runtime/malloc.go | 69 --------------------- src/runtime/mem.go | 119 +++++++++++++++++++++++++++++++++++++ src/runtime/mem_aix.go | 21 +++---- src/runtime/mem_bsd.go | 20 +++---- src/runtime/mem_darwin.go | 20 +++---- src/runtime/mem_js.go | 22 ++++--- src/runtime/mem_linux.go | 22 +++---- src/runtime/mem_plan9.go | 23 +++---- src/runtime/mem_windows.go | 21 +++---- 9 files changed, 179 insertions(+), 158 deletions(-) create mode 100644 src/runtime/mem.go diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go index a22bef821a..a00878a11c 100644 --- a/src/runtime/malloc.go +++ b/src/runtime/malloc.go @@ -354,75 +354,6 @@ var ( physHugePageShift uint ) -// OS memory management abstraction layer -// -// Regions of the address space managed by the runtime may be in one of four -// states at any given time: -// 1) None - Unreserved and unmapped, the default state of any region. -// 2) Reserved - Owned by the runtime, but accessing it would cause a fault. -// Does not count against the process' memory footprint. -// 3) Prepared - Reserved, intended not to be backed by physical memory (though -// an OS may implement this lazily). Can transition efficiently to -// Ready. Accessing memory in such a region is undefined (may -// fault, may give back unexpected zeroes, etc.). -// 4) Ready - may be accessed safely. -// -// This set of states is more than is strictly necessary to support all the -// currently supported platforms. One could get by with just None, Reserved, and -// Ready. However, the Prepared state gives us flexibility for performance -// purposes. For example, on POSIX-y operating systems, Reserved is usually a -// private anonymous mmap'd region with PROT_NONE set, and to transition -// to Ready would require setting PROT_READ|PROT_WRITE. However the -// underspecification of Prepared lets us use just MADV_FREE to transition from -// Ready to Prepared. Thus with the Prepared state we can set the permission -// bits just once early on, we can efficiently tell the OS that it's free to -// take pages away from us when we don't strictly need them. -// -// For each OS there is a common set of helpers defined that transition -// memory regions between these states. The helpers are as follows: -// -// sysAlloc transitions an OS-chosen region of memory from None to Ready. -// More specifically, it obtains a large chunk of zeroed memory from the -// operating system, typically on the order of a hundred kilobytes -// or a megabyte. This memory is always immediately available for use. -// -// sysFree transitions a memory region from any state to None. Therefore, it -// returns memory unconditionally. It is used if an out-of-memory error has been -// detected midway through an allocation or to carve out an aligned section of -// the address space. It is okay if sysFree is a no-op only if sysReserve always -// returns a memory region aligned to the heap allocator's alignment -// restrictions. -// -// sysReserve transitions a memory region from None to Reserved. It reserves -// address space in such a way that it would cause a fatal fault upon access -// (either via permissions or not committing the memory). Such a reservation is -// thus never backed by physical memory. -// If the pointer passed to it is non-nil, the caller wants the -// reservation there, but sysReserve can still choose another -// location if that one is unavailable. -// NOTE: sysReserve returns OS-aligned memory, but the heap allocator -// may use larger alignment, so the caller must be careful to realign the -// memory obtained by sysReserve. -// -// sysMap transitions a memory region from Reserved to Prepared. It ensures the -// memory region can be efficiently transitioned to Ready. -// -// sysUsed transitions a memory region from Prepared to Ready. It notifies the -// operating system that the memory region is needed and ensures that the region -// may be safely accessed. This is typically a no-op on systems that don't have -// an explicit commit step and hard over-commit limits, but is critical on -// Windows, for example. -// -// sysUnused transitions a memory region from Ready to Prepared. It notifies the -// operating system that the physical pages backing this memory region are no -// longer needed and can be reused for other purposes. The contents of a -// sysUnused memory region are considered forfeit and the region must not be -// accessed again until sysUsed is called. -// -// sysFault transitions a memory region from Ready or Prepared to Reserved. It -// marks a region such that it will always fault if accessed. Used only for -// debugging the runtime. - func mallocinit() { if class_to_size[_TinySizeClass] != _TinySize { throw("bad TinySizeClass") diff --git a/src/runtime/mem.go b/src/runtime/mem.go new file mode 100644 index 0000000000..67af9c057f --- /dev/null +++ b/src/runtime/mem.go @@ -0,0 +1,119 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package runtime + +import "unsafe" + +// OS memory management abstraction layer +// +// Regions of the address space managed by the runtime may be in one of four +// states at any given time: +// 1) None - Unreserved and unmapped, the default state of any region. +// 2) Reserved - Owned by the runtime, but accessing it would cause a fault. +// Does not count against the process' memory footprint. +// 3) Prepared - Reserved, intended not to be backed by physical memory (though +// an OS may implement this lazily). Can transition efficiently to +// Ready. Accessing memory in such a region is undefined (may +// fault, may give back unexpected zeroes, etc.). +// 4) Ready - may be accessed safely. +// +// This set of states is more than is strictly necessary to support all the +// currently supported platforms. One could get by with just None, Reserved, and +// Ready. However, the Prepared state gives us flexibility for performance +// purposes. For example, on POSIX-y operating systems, Reserved is usually a +// private anonymous mmap'd region with PROT_NONE set, and to transition +// to Ready would require setting PROT_READ|PROT_WRITE. However the +// underspecification of Prepared lets us use just MADV_FREE to transition from +// Ready to Prepared. Thus with the Prepared state we can set the permission +// bits just once early on, we can efficiently tell the OS that it's free to +// take pages away from us when we don't strictly need them. +// +// This file defines a cross-OS interface for a common set of helpers +// that transition memory regions between these states. The helpers call into +// OS-specific implementations that handle errors, while the interface boundary +// implements cross-OS functionality, like updating runtime accounting. + +// sysAlloc transitions an OS-chosen region of memory from None to Ready. +// More specifically, it obtains a large chunk of zeroed memory from the +// operating system, typically on the order of a hundred kilobytes +// or a megabyte. This memory is always immediately available for use. +// +// Don't split the stack as this function may be invoked without a valid G, +// which prevents us from allocating more stack. +//go:nosplit +func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { + sysStat.add(int64(n)) + return sysAllocOS(n) +} + +// sysUnused transitions a memory region from Ready to Prepared. It notifies the +// operating system that the physical pages backing this memory region are no +// longer needed and can be reused for other purposes. The contents of a +// sysUnused memory region are considered forfeit and the region must not be +// accessed again until sysUsed is called. +func sysUnused(v unsafe.Pointer, n uintptr) { + sysUnusedOS(v, n) +} + +// sysUsed transitions a memory region from Prepared to Ready. It notifies the +// operating system that the memory region is needed and ensures that the region +// may be safely accessed. This is typically a no-op on systems that don't have +// an explicit commit step and hard over-commit limits, but is critical on +// Windows, for example. +func sysUsed(v unsafe.Pointer, n uintptr) { + sysUsedOS(v, n) +} + +// sysHugePage does not transition memory regions, but instead provides a +// hint to the OS that it would be more efficient to back this memory region +// with pages of a larger size transparently. +func sysHugePage(v unsafe.Pointer, n uintptr) { + sysHugePageOS(v, n) +} + +// sysFree transitions a memory region from any state to None. Therefore, it +// returns memory unconditionally. It is used if an out-of-memory error has been +// detected midway through an allocation or to carve out an aligned section of +// the address space. It is okay if sysFree is a no-op only if sysReserve always +// returns a memory region aligned to the heap allocator's alignment +// restrictions. +// +// Don't split the stack as this function may be invoked without a valid G, +// which prevents us from allocating more stack. +//go:nosplit +func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { + sysStat.add(-int64(n)) + sysFreeOS(v, n) +} + +// sysFault transitions a memory region from Ready or Prepared to Reserved. It +// marks a region such that it will always fault if accessed. Used only for +// debugging the runtime. +func sysFault(v unsafe.Pointer, n uintptr) { + sysFaultOS(v, n) +} + +// sysReserve transitions a memory region from None to Reserved. It reserves +// address space in such a way that it would cause a fatal fault upon access +// (either via permissions or not committing the memory). Such a reservation is +// thus never backed by physical memory. +// +// If the pointer passed to it is non-nil, the caller wants the +// reservation there, but sysReserve can still choose another +// location if that one is unavailable. +// +// NOTE: sysReserve returns OS-aligned memory, but the heap allocator +// may use larger alignment, so the caller must be careful to realign the +// memory obtained by sysReserve. +func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { + return sysReserveOS(v, n) +} + +// sysMap transitions a memory region from Reserved to Prepared. It ensures the +// memory region can be efficiently transitioned to Ready. +func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { + sysStat.add(int64(n)) + sysMapOS(v, n) +} diff --git a/src/runtime/mem_aix.go b/src/runtime/mem_aix.go index 489d7928e1..d6a181ad4d 100644 --- a/src/runtime/mem_aix.go +++ b/src/runtime/mem_aix.go @@ -11,7 +11,7 @@ import ( // Don't split the stack as this method may be invoked without a valid G, which // prevents us from allocating more stack. //go:nosplit -func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { +func sysAllocOS(n uintptr) unsafe.Pointer { p, err := mmap(nil, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_PRIVATE, -1, 0) if err != 0 { if err == _EACCES { @@ -24,34 +24,31 @@ func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { } return nil } - sysStat.add(int64(n)) return p } -func sysUnused(v unsafe.Pointer, n uintptr) { +func sysUnusedOS(v unsafe.Pointer, n uintptr) { madvise(v, n, _MADV_DONTNEED) } -func sysUsed(v unsafe.Pointer, n uintptr) { +func sysUsedOS(v unsafe.Pointer, n uintptr) { } -func sysHugePage(v unsafe.Pointer, n uintptr) { +func sysHugePageOS(v unsafe.Pointer, n uintptr) { } // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(-int64(n)) +func sysFreeOS(v unsafe.Pointer, n uintptr) { munmap(v, n) - } -func sysFault(v unsafe.Pointer, n uintptr) { +func sysFaultOS(v unsafe.Pointer, n uintptr) { mmap(v, n, _PROT_NONE, _MAP_ANON|_MAP_PRIVATE|_MAP_FIXED, -1, 0) } -func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { +func sysReserveOS(v unsafe.Pointer, n uintptr) unsafe.Pointer { p, err := mmap(v, n, _PROT_NONE, _MAP_ANON|_MAP_PRIVATE, -1, 0) if err != 0 { return nil @@ -59,9 +56,7 @@ func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { return p } -func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(int64(n)) - +func sysMapOS(v unsafe.Pointer, n uintptr) { // AIX does not allow mapping a range that is already mapped. // So, call mprotect to change permissions. // Note that sysMap is always called with a non-nil pointer diff --git a/src/runtime/mem_bsd.go b/src/runtime/mem_bsd.go index 49337eafbf..e83145e86b 100644 --- a/src/runtime/mem_bsd.go +++ b/src/runtime/mem_bsd.go @@ -13,41 +13,39 @@ import ( // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { +func sysAllocOS(n uintptr) unsafe.Pointer { v, err := mmap(nil, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_PRIVATE, -1, 0) if err != 0 { return nil } - sysStat.add(int64(n)) return v } -func sysUnused(v unsafe.Pointer, n uintptr) { +func sysUnusedOS(v unsafe.Pointer, n uintptr) { madvise(v, n, _MADV_FREE) } -func sysUsed(v unsafe.Pointer, n uintptr) { +func sysUsedOS(v unsafe.Pointer, n uintptr) { } -func sysHugePage(v unsafe.Pointer, n uintptr) { +func sysHugePageOS(v unsafe.Pointer, n uintptr) { } // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(-int64(n)) +func sysFreeOS(v unsafe.Pointer, n uintptr) { munmap(v, n) } -func sysFault(v unsafe.Pointer, n uintptr) { +func sysFaultOS(v unsafe.Pointer, n uintptr) { mmap(v, n, _PROT_NONE, _MAP_ANON|_MAP_PRIVATE|_MAP_FIXED, -1, 0) } // Indicates not to reserve swap space for the mapping. const _sunosMAP_NORESERVE = 0x40 -func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { +func sysReserveOS(v unsafe.Pointer, n uintptr) unsafe.Pointer { flags := int32(_MAP_ANON | _MAP_PRIVATE) if GOOS == "solaris" || GOOS == "illumos" { // Be explicit that we don't want to reserve swap space @@ -65,9 +63,7 @@ func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { const _sunosEAGAIN = 11 const _ENOMEM = 12 -func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(int64(n)) - +func sysMapOS(v unsafe.Pointer, n uintptr) { p, err := mmap(v, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_FIXED|_MAP_PRIVATE, -1, 0) if err == _ENOMEM || ((GOOS == "solaris" || GOOS == "illumos") && err == _sunosEAGAIN) { throw("runtime: out of memory") diff --git a/src/runtime/mem_darwin.go b/src/runtime/mem_darwin.go index 9f836c0818..d63b5559aa 100644 --- a/src/runtime/mem_darwin.go +++ b/src/runtime/mem_darwin.go @@ -11,44 +11,42 @@ import ( // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { +func sysAllocOS(n uintptr) unsafe.Pointer { v, err := mmap(nil, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_PRIVATE, -1, 0) if err != 0 { return nil } - sysStat.add(int64(n)) return v } -func sysUnused(v unsafe.Pointer, n uintptr) { +func sysUnusedOS(v unsafe.Pointer, n uintptr) { // MADV_FREE_REUSABLE is like MADV_FREE except it also propagates // accounting information about the process to task_info. madvise(v, n, _MADV_FREE_REUSABLE) } -func sysUsed(v unsafe.Pointer, n uintptr) { +func sysUsedOS(v unsafe.Pointer, n uintptr) { // MADV_FREE_REUSE is necessary to keep the kernel's accounting // accurate. If called on any memory region that hasn't been // MADV_FREE_REUSABLE'd, it's a no-op. madvise(v, n, _MADV_FREE_REUSE) } -func sysHugePage(v unsafe.Pointer, n uintptr) { +func sysHugePageOS(v unsafe.Pointer, n uintptr) { } // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(-int64(n)) +func sysFreeOS(v unsafe.Pointer, n uintptr) { munmap(v, n) } -func sysFault(v unsafe.Pointer, n uintptr) { +func sysFaultOS(v unsafe.Pointer, n uintptr) { mmap(v, n, _PROT_NONE, _MAP_ANON|_MAP_PRIVATE|_MAP_FIXED, -1, 0) } -func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { +func sysReserveOS(v unsafe.Pointer, n uintptr) unsafe.Pointer { p, err := mmap(v, n, _PROT_NONE, _MAP_ANON|_MAP_PRIVATE, -1, 0) if err != 0 { return nil @@ -58,9 +56,7 @@ func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { const _ENOMEM = 12 -func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(int64(n)) - +func sysMapOS(v unsafe.Pointer, n uintptr) { p, err := mmap(v, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_FIXED|_MAP_PRIVATE, -1, 0) if err == _ENOMEM { throw("runtime: out of memory") diff --git a/src/runtime/mem_js.go b/src/runtime/mem_js.go index 4ca486ac4b..c66b91eedd 100644 --- a/src/runtime/mem_js.go +++ b/src/runtime/mem_js.go @@ -13,34 +13,33 @@ import ( // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { - p := sysReserve(nil, n) - sysMap(p, n, sysStat) +func sysAllocOS(n uintptr) unsafe.Pointer { + p := sysReserveOS(nil, n) + sysMapOS(p, n) return p } -func sysUnused(v unsafe.Pointer, n uintptr) { +func sysUnusedOS(v unsafe.Pointer, n uintptr) { } -func sysUsed(v unsafe.Pointer, n uintptr) { +func sysUsedOS(v unsafe.Pointer, n uintptr) { } -func sysHugePage(v unsafe.Pointer, n uintptr) { +func sysHugePageOS(v unsafe.Pointer, n uintptr) { } // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(-int64(n)) +func sysFreeOS(v unsafe.Pointer, n uintptr) { } -func sysFault(v unsafe.Pointer, n uintptr) { +func sysFaultOS(v unsafe.Pointer, n uintptr) { } var reserveEnd uintptr -func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { +func sysReserveOS(v unsafe.Pointer, n uintptr) unsafe.Pointer { // TODO(neelance): maybe unify with mem_plan9.go, depending on how https://github.com/WebAssembly/design/blob/master/FutureFeatures.md#finer-grained-control-over-memory turns out if v != nil { @@ -80,6 +79,5 @@ func growMemory(pages int32) int32 // This allows the front-end to replace the old DataView object with a new one. func resetMemoryDataView() -func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(int64(n)) +func sysMapOS(v unsafe.Pointer, n uintptr) { } diff --git a/src/runtime/mem_linux.go b/src/runtime/mem_linux.go index f8333014c2..980f7bb53d 100644 --- a/src/runtime/mem_linux.go +++ b/src/runtime/mem_linux.go @@ -17,7 +17,7 @@ const ( // Don't split the stack as this method may be invoked without a valid G, which // prevents us from allocating more stack. //go:nosplit -func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { +func sysAllocOS(n uintptr) unsafe.Pointer { p, err := mmap(nil, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_PRIVATE, -1, 0) if err != 0 { if err == _EACCES { @@ -30,13 +30,12 @@ func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { } return nil } - sysStat.add(int64(n)) return p } var adviseUnused = uint32(_MADV_FREE) -func sysUnused(v unsafe.Pointer, n uintptr) { +func sysUnusedOS(v unsafe.Pointer, n uintptr) { // By default, Linux's "transparent huge page" support will // merge pages into a huge page if there's even a single // present regular page, undoing the effects of madvise(adviseUnused) @@ -123,7 +122,7 @@ func sysUnused(v unsafe.Pointer, n uintptr) { } } -func sysUsed(v unsafe.Pointer, n uintptr) { +func sysUsedOS(v unsafe.Pointer, n uintptr) { if debug.harddecommit > 0 { p, err := mmap(v, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_FIXED|_MAP_PRIVATE, -1, 0) if err == _ENOMEM { @@ -145,10 +144,10 @@ func sysUsed(v unsafe.Pointer, n uintptr) { // the end points as well, but it's probably not worth // the cost because when neighboring allocations are // freed sysUnused will just set NOHUGEPAGE again. - sysHugePage(v, n) + sysHugePageOS(v, n) } -func sysHugePage(v unsafe.Pointer, n uintptr) { +func sysHugePageOS(v unsafe.Pointer, n uintptr) { if physHugePageSize != 0 { // Round v up to a huge page boundary. beg := alignUp(uintptr(v), physHugePageSize) @@ -164,16 +163,15 @@ func sysHugePage(v unsafe.Pointer, n uintptr) { // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(-int64(n)) +func sysFreeOS(v unsafe.Pointer, n uintptr) { munmap(v, n) } -func sysFault(v unsafe.Pointer, n uintptr) { +func sysFaultOS(v unsafe.Pointer, n uintptr) { mmap(v, n, _PROT_NONE, _MAP_ANON|_MAP_PRIVATE|_MAP_FIXED, -1, 0) } -func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { +func sysReserveOS(v unsafe.Pointer, n uintptr) unsafe.Pointer { p, err := mmap(v, n, _PROT_NONE, _MAP_ANON|_MAP_PRIVATE, -1, 0) if err != 0 { return nil @@ -181,9 +179,7 @@ func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { return p } -func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(int64(n)) - +func sysMapOS(v unsafe.Pointer, n uintptr) { p, err := mmap(v, n, _PROT_READ|_PROT_WRITE, _MAP_ANON|_MAP_FIXED|_MAP_PRIVATE, -1, 0) if err == _ENOMEM { throw("runtime: out of memory") diff --git a/src/runtime/mem_plan9.go b/src/runtime/mem_plan9.go index 53d8e6dffa..0e8bf74746 100644 --- a/src/runtime/mem_plan9.go +++ b/src/runtime/mem_plan9.go @@ -140,19 +140,15 @@ func sbrk(n uintptr) unsafe.Pointer { return unsafe.Pointer(bl) } -func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { +func sysAllocOS(n uintptr) unsafe.Pointer { lock(&memlock) p := memAlloc(n) memCheck() unlock(&memlock) - if p != nil { - sysStat.add(int64(n)) - } return p } -func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(-int64(n)) +func sysFreeOS(v unsafe.Pointer, n uintptr) { lock(&memlock) if uintptr(v)+n == bloc { // Address range being freed is at the end of memory, @@ -167,25 +163,22 @@ func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { unlock(&memlock) } -func sysUnused(v unsafe.Pointer, n uintptr) { +func sysUnusedOS(v unsafe.Pointer, n uintptr) { } -func sysUsed(v unsafe.Pointer, n uintptr) { +func sysUsedOS(v unsafe.Pointer, n uintptr) { } -func sysHugePage(v unsafe.Pointer, n uintptr) { +func sysHugePageOS(v unsafe.Pointer, n uintptr) { } -func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - // sysReserve has already allocated all heap memory, - // but has not adjusted stats. - sysStat.add(int64(n)) +func sysMapOS(v unsafe.Pointer, n uintptr) { } -func sysFault(v unsafe.Pointer, n uintptr) { +func sysFaultOS(v unsafe.Pointer, n uintptr) { } -func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { +func sysReserveOS(v unsafe.Pointer, n uintptr) unsafe.Pointer { lock(&memlock) var p unsafe.Pointer if uintptr(v) == bloc { diff --git a/src/runtime/mem_windows.go b/src/runtime/mem_windows.go index 3a805b9767..c8f039f50b 100644 --- a/src/runtime/mem_windows.go +++ b/src/runtime/mem_windows.go @@ -24,12 +24,11 @@ const ( // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysAlloc(n uintptr, sysStat *sysMemStat) unsafe.Pointer { - sysStat.add(int64(n)) +func sysAllocOS(n uintptr) unsafe.Pointer { return unsafe.Pointer(stdcall4(_VirtualAlloc, 0, n, _MEM_COMMIT|_MEM_RESERVE, _PAGE_READWRITE)) } -func sysUnused(v unsafe.Pointer, n uintptr) { +func sysUnusedOS(v unsafe.Pointer, n uintptr) { r := stdcall3(_VirtualFree, uintptr(v), n, _MEM_DECOMMIT) if r != 0 { return @@ -59,7 +58,7 @@ func sysUnused(v unsafe.Pointer, n uintptr) { } } -func sysUsed(v unsafe.Pointer, n uintptr) { +func sysUsedOS(v unsafe.Pointer, n uintptr) { p := stdcall4(_VirtualAlloc, uintptr(v), n, _MEM_COMMIT, _PAGE_READWRITE) if p == uintptr(v) { return @@ -91,14 +90,13 @@ func sysUsed(v unsafe.Pointer, n uintptr) { } } -func sysHugePage(v unsafe.Pointer, n uintptr) { +func sysHugePageOS(v unsafe.Pointer, n uintptr) { } // Don't split the stack as this function may be invoked without a valid G, // which prevents us from allocating more stack. //go:nosplit -func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(-int64(n)) +func sysFreeOS(v unsafe.Pointer, n uintptr) { r := stdcall3(_VirtualFree, uintptr(v), 0, _MEM_RELEASE) if r == 0 { print("runtime: VirtualFree of ", n, " bytes failed with errno=", getlasterror(), "\n") @@ -106,12 +104,12 @@ func sysFree(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { } } -func sysFault(v unsafe.Pointer, n uintptr) { +func sysFaultOS(v unsafe.Pointer, n uintptr) { // SysUnused makes the memory inaccessible and prevents its reuse - sysUnused(v, n) + sysUnusedOS(v, n) } -func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { +func sysReserveOS(v unsafe.Pointer, n uintptr) unsafe.Pointer { // v is just a hint. // First try at v. // This will fail if any of [v, v+n) is already reserved. @@ -124,6 +122,5 @@ func sysReserve(v unsafe.Pointer, n uintptr) unsafe.Pointer { return unsafe.Pointer(stdcall4(_VirtualAlloc, 0, n, _MEM_RESERVE, _PAGE_READWRITE)) } -func sysMap(v unsafe.Pointer, n uintptr, sysStat *sysMemStat) { - sysStat.add(int64(n)) +func sysMapOS(v unsafe.Pointer, n uintptr) { } From 23756207fb68c34ae15a030319dc31248e21cf45 Mon Sep 17 00:00:00 2001 From: Michael Anthony Knyszek Date: Wed, 2 Mar 2022 17:41:49 +0000 Subject: [PATCH 062/125] runtime: rewrite stale comment about pacer Change-Id: Ieb8015164526da59b042031234146def06f70a1d Reviewed-on: https://go-review.googlesource.com/c/go/+/393399 Trust: Michael Knyszek Reviewed-by: Austin Clements Reviewed-by: Michael Pratt --- src/runtime/mgcpacer.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/runtime/mgcpacer.go b/src/runtime/mgcpacer.go index 7857ee7527..940bc526b4 100644 --- a/src/runtime/mgcpacer.go +++ b/src/runtime/mgcpacer.go @@ -73,15 +73,14 @@ func init() { // when to trigger concurrent garbage collection and how much marking // work to do in mutator assists and background marking. // -// It uses a feedback control algorithm to adjust the gcController.trigger -// trigger based on the heap growth and GC CPU utilization each cycle. -// This algorithm optimizes for heap growth to match GOGC and for CPU -// utilization between assist and background marking to be 25% of +// It calculates the ratio between the allocation rate (in terms of CPU +// time) and the GC scan throughput to determine the heap size at which to +// trigger a GC cycle such that no GC assists are required to finish on time. +// This algorithm thus optimizes GC CPU utilization to the dedicated background +// mark utilization of 25% of GOMAXPROCS by minimizing GC assists. // GOMAXPROCS. The high-level design of this algorithm is documented -// at https://golang.org/s/go15gcpacing. -// -// All fields of gcController are used only during a single mark -// cycle. +// at https://github.com/golang/proposal/blob/master/design/44167-gc-pacer-redesign.md. +// See https://golang.org/s/go15gcpacing for additional historical context. var gcController gcControllerState type gcControllerState struct { From bdd0f0f780cf650ed7844dbc1bcfab20460783cc Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Sat, 26 Mar 2022 10:05:04 -0700 Subject: [PATCH 063/125] cmd/compile: better propagation of desired registers This fixes two independent problems: We normally propagate desired registers backwards through opcodes that are marked resultInArg0. Unfortunately for the desired register computation, ADDQconst is not marked as resultInArg0. This is because the amd64 backend can write it out as LEAQ instead if the input and output registers don't match. For desired register purposes, we want to treat ADDQconst as resultInArg0, so that we get an ADDQ instead of a LEAQ if we can. Desired registers don't currently work for tuple-generating opcodes. Declare that the desired register applies to the first element of the tuple, and propagate the desired register back through Select0. Noticed when fixing #51964 Change-Id: I83346b988882cd58c2d7e7e5b419a2b9a244ab66 Reviewed-on: https://go-review.googlesource.com/c/go/+/396035 Trust: Keith Randall Run-TryBot: Keith Randall Reviewed-by: David Chase TryBot-Result: Gopher Robot --- src/cmd/compile/internal/ssa/regalloc.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/cmd/compile/internal/ssa/regalloc.go b/src/cmd/compile/internal/ssa/regalloc.go index 64792d0c80..02faf8a7bd 100644 --- a/src/cmd/compile/internal/ssa/regalloc.go +++ b/src/cmd/compile/internal/ssa/regalloc.go @@ -1237,7 +1237,7 @@ func (s *regAllocState) regalloc(f *Func) { desired.clobber(j.regs) desired.add(v.Args[j.idx].ID, pickReg(j.regs)) } - if opcodeTable[v.Op].resultInArg0 { + if opcodeTable[v.Op].resultInArg0 || v.Op == OpAMD64ADDQconst || v.Op == OpAMD64ADDLconst || v.Op == OpSelect0 { if opcodeTable[v.Op].commutative { desired.addList(v.Args[1].ID, prefs) } @@ -1598,11 +1598,13 @@ func (s *regAllocState) regalloc(f *Func) { } } } - for _, r := range dinfo[idx].out { - if r != noRegister && (mask&^s.used)>>r&1 != 0 { - // Desired register is allowed and unused. - mask = regMask(1) << r - break + if out.idx == 0 { // desired registers only apply to the first element of a tuple result + for _, r := range dinfo[idx].out { + if r != noRegister && (mask&^s.used)>>r&1 != 0 { + // Desired register is allowed and unused. + mask = regMask(1) << r + break + } } } // Avoid registers we're saving for other values. @@ -2581,7 +2583,12 @@ func (s *regAllocState) computeLive() { desired.add(v.Args[j.idx].ID, pickReg(j.regs)) } // Set desired register of input 0 if this is a 2-operand instruction. - if opcodeTable[v.Op].resultInArg0 { + if opcodeTable[v.Op].resultInArg0 || v.Op == OpAMD64ADDQconst || v.Op == OpAMD64ADDLconst || v.Op == OpSelect0 { + // ADDQconst is added here because we want to treat it as resultInArg0 for + // the purposes of desired registers, even though it is not an absolute requirement. + // This is because we'd rather implement it as ADDQ instead of LEAQ. + // Same for ADDLconst + // Select0 is added here to propagate the desired register to the tuple-generating instruction. if opcodeTable[v.Op].commutative { desired.addList(v.Args[1].ID, prefs) } @@ -2706,6 +2713,8 @@ type desiredStateEntry struct { ID ID // Registers it would like to be in, in priority order. // Unused slots are filled with noRegister. + // For opcodes that return tuples, we track desired registers only + // for the first element of the tuple. regs [4]register } From 825309962fd6d8e34f7f38f51c4994395826d139 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Thu, 31 Mar 2022 11:03:00 -0400 Subject: [PATCH 064/125] cmd/go: allow either test to complete first in TestScript/test_chatty_parallel_success_run This fixes a failure mode observed in https://build.golang.org/log/7b28a914b1914dabe94f7c4e36ad6466ebd4de5d, in which the expected CONT lines are present but the test completions are reported in a different (but valid) order. CONT lines are only printed between interleaved output lines, so if the ordering of the tests swaps after all output is already generated the PASS lines can be in arbitrary order. Fixes #51221 (again). Change-Id: I051f8ec4331e2e3ab1bb00a7c188c322ad4e0a03 Reviewed-on: https://go-review.googlesource.com/c/go/+/397194 Trust: Bryan Mills Run-TryBot: Bryan Mills TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt b/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt index b0f4cc1977..4e0f239a66 100644 --- a/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt +++ b/src/cmd/go/testdata/script/test_chatty_parallel_success_run.txt @@ -2,7 +2,7 @@ # multiple parallel outputs have the appropriate CONT lines between them. go test -parallel 3 chatty_parallel -v -stdout '=== RUN TestInterruptor/interruption\n=== CONT TestLog\n chatty_parallel_test.go:28: this is the second TestLog log\n--- PASS: TestLog \([0-9.]{4}s\)' +stdout '=== RUN TestInterruptor/interruption\n=== CONT TestLog\n chatty_parallel_test.go:28: this is the second TestLog log\n--- PASS: Test(Log|Interruptor) \([0-9.]{4}s\)' -- go.mod -- module chatty_parallel From 31ee4bb28dff98f29654e7f1b43488641b3157db Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 31 Mar 2022 12:30:14 -0700 Subject: [PATCH 065/125] strconv: quote rune 007F as \x7f, not \u007f \u007f is not wrong but it's weird to use \u when we could use the shorter \x. Fixes #52062 Change-Id: Ica4bdc2463128051876f44e15297ed1e9edf1de8 Reviewed-on: https://go-review.googlesource.com/c/go/+/397255 Trust: Ian Lance Taylor Reviewed-by: Rob Pike --- api/go1.1.txt | 2 +- doc/go1.19.html | 12 +++++++++++- src/strconv/quote.go | 2 +- src/strconv/quote_test.go | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/api/go1.1.txt b/api/go1.1.txt index bb00b3b02c..06291faa4b 100644 --- a/api/go1.1.txt +++ b/api/go1.1.txt @@ -371,7 +371,7 @@ pkg debug/elf, const ELFCLASSNONE = 0 pkg debug/elf, const ELFDATA2LSB = 1 pkg debug/elf, const ELFDATA2MSB = 2 pkg debug/elf, const ELFDATANONE = 0 -pkg debug/elf, const ELFMAG = "\u007fELF" +pkg debug/elf, const ELFMAG = "\x7fELF" pkg debug/elf, const ELFOSABI_86OPEN = 5 pkg debug/elf, const ELFOSABI_AIX = 7 pkg debug/elf, const ELFOSABI_ARM = 97 diff --git a/doc/go1.19.html b/doc/go1.19.html index c0e2cf1761..cfeb3d3d79 100644 --- a/doc/go1.19.html +++ b/doc/go1.19.html @@ -90,4 +90,14 @@ Do not send CLs removing the interior tags from such phrases. issue tracker.

- + + +
strconv
+
+

+ strconv.Quote + and related functions now quote the rune 007F as \x7f, + not \u007f. +

+
+
diff --git a/src/strconv/quote.go b/src/strconv/quote.go index 9d20b75a58..6c022846c0 100644 --- a/src/strconv/quote.go +++ b/src/strconv/quote.go @@ -99,7 +99,7 @@ func appendEscapedRune(buf []byte, r rune, quote byte, ASCIIonly, graphicOnly bo buf = append(buf, `\v`...) default: switch { - case r < ' ': + case r < ' ' || r == 0x7f: buf = append(buf, `\x`...) buf = append(buf, lowerhex[byte(r)>>4]) buf = append(buf, lowerhex[byte(r)&0xF]) diff --git a/src/strconv/quote_test.go b/src/strconv/quote_test.go index 81fc8f79e1..fc000de7b1 100644 --- a/src/strconv/quote_test.go +++ b/src/strconv/quote_test.go @@ -55,6 +55,7 @@ var quotetests = []quoteTest{ {"\x04", `"\x04"`, `"\x04"`, `"\x04"`}, // Some non-printable but graphic runes. Final column is double-quoted. {"!\u00a0!\u2000!\u3000!", `"!\u00a0!\u2000!\u3000!"`, `"!\u00a0!\u2000!\u3000!"`, "\"!\u00a0!\u2000!\u3000!\""}, + {"\x7f", `"\x7f"`, `"\x7f"`, `"\x7f"`}, } func TestQuote(t *testing.T) { From a84ef500213ef6c2a0e4bfd82253e9fcd28f1f62 Mon Sep 17 00:00:00 2001 From: John Anthony Date: Thu, 17 Mar 2022 15:36:52 +0000 Subject: [PATCH 066/125] cmd/go: prevent go work use panic when given a file The current implementation fails to identify that an argument to go work use is a file when expecting a directory, and panics when attempting to access it as a directory. This change checks arguments are directories and generates an error otherwise. Fixes #51749 Change-Id: If8f69d233409e93fcf391a8774bace74c031c986 Reviewed-on: https://go-review.googlesource.com/c/go/+/393615 Reviewed-by: Bryan Mills Trust: Bryan Mills Run-TryBot: Bryan Mills TryBot-Result: Gopher Robot Trust: Ian Lance Taylor --- src/cmd/go/internal/workcmd/use.go | 13 +++++++++---- src/cmd/go/testdata/script/work_use_file.txt | 12 ++++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 src/cmd/go/testdata/script/work_use_file.txt diff --git a/src/cmd/go/internal/workcmd/use.go b/src/cmd/go/internal/workcmd/use.go index e20041f79f..07bc9b0500 100644 --- a/src/cmd/go/internal/workcmd/use.go +++ b/src/cmd/go/internal/workcmd/use.go @@ -85,13 +85,14 @@ func runUse(ctx context.Context, cmd *base.Command, args []string) { lookDir := func(dir string) { absDir, dir := pathRel(workDir, dir) - fi, err := os.Stat(filepath.Join(absDir, "go.mod")) + fi, err := fsys.Stat(filepath.Join(absDir, "go.mod")) if err != nil { if os.IsNotExist(err) { keepDirs[absDir] = "" - return + } else { + base.Errorf("go: %v", err) } - base.Errorf("go: %v", err) + return } if !fi.Mode().IsRegular() { @@ -109,7 +110,11 @@ func runUse(ctx context.Context, cmd *base.Command, args []string) { } for _, useDir := range args { if !*useR { - lookDir(useDir) + if target, err := fsys.Stat(useDir); err == nil && !target.IsDir() { + base.Errorf(`go: argument "%s" is not a directory`, useDir) + } else { + lookDir(useDir) + } continue } diff --git a/src/cmd/go/testdata/script/work_use_file.txt b/src/cmd/go/testdata/script/work_use_file.txt new file mode 100644 index 0000000000..807dd96c72 --- /dev/null +++ b/src/cmd/go/testdata/script/work_use_file.txt @@ -0,0 +1,12 @@ +cp go.work go.work.orig + +# If an argument to 'go work use' is a file it should be handled gracefully as +# an error and go.work should not be modified +! go work use foo.txt +stderr '^go: argument "foo\.txt" is not a directory$' +cmp go.work go.work.orig + + +-- go.work -- +go 1.18 +-- foo.txt -- From 434b2a5d0dbdfdce6327beb06ca03c02b3fd2785 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Thu, 31 Mar 2022 16:51:32 -0400 Subject: [PATCH 067/125] syscall: relax output check in TestGroupCleanupUserNamespace MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit “If you have a procedure with ten parameters, you probably missed some.” ― attr. Alan J. Perlis I argue that the same is true for hard-coded special cases. In TestGroupCleanupUserNamespace, instead of a curated list of strings observed in the wild we now check for a prefix, as was done for TestGroupCleanup in CL 24670. Updates #16224. Updates #16303. Updates #19938. Updates #34547. Updates #46752. Fixes #52088. Change-Id: I59c5b0c048113e306996c0f8247e09c714d2423a Reviewed-on: https://go-review.googlesource.com/c/go/+/397316 Trust: Bryan Mills Run-TryBot: Bryan Mills TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/syscall/exec_linux_test.go | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/syscall/exec_linux_test.go b/src/syscall/exec_linux_test.go index 80440ca4d6..0ec9c4db0f 100644 --- a/src/syscall/exec_linux_test.go +++ b/src/syscall/exec_linux_test.go @@ -258,12 +258,14 @@ func TestGroupCleanup(t *testing.T) { t.Fatalf("Cmd failed with err %v, output: %s", err, out) } strOut := strings.TrimSpace(string(out)) + t.Logf("id: %s", strOut) + expected := "uid=0(root) gid=0(root)" // Just check prefix because some distros reportedly output a // context parameter; see https://golang.org/issue/16224. // Alpine does not output groups; see https://golang.org/issue/19938. if !strings.HasPrefix(strOut, expected) { - t.Errorf("id command output: %q, expected prefix: %q", strOut, expected) + t.Errorf("expected prefix: %q", expected) } } @@ -292,23 +294,14 @@ func TestGroupCleanupUserNamespace(t *testing.T) { t.Fatalf("Cmd failed with err %v, output: %s", err, out) } strOut := strings.TrimSpace(string(out)) + t.Logf("id: %s", strOut) - // Strings we've seen in the wild. - expected := []string{ - "uid=0(root) gid=0(root) groups=0(root)", - "uid=0(root) gid=0(root) groups=0(root),65534(nobody)", - "uid=0(root) gid=0(root) groups=0(root),65534(nogroup)", - "uid=0(root) gid=0(root) groups=0(root),65534", - "uid=0(root) gid=0(root) groups=0(root),65534(nobody),65534(nobody),65534(nobody),65534(nobody),65534(nobody),65534(nobody),65534(nobody),65534(nobody),65534(nobody),65534(nobody)", // Alpine; see https://golang.org/issue/19938 - "uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023", // CentOS with SELinux context, see https://golang.org/issue/34547 - "uid=0(root) gid=0(root) groups=0(root),65534(nobody) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023", // Fedora with SElinux context, see https://golang.org/issue/46752 + // As in TestGroupCleanup, just check prefix. + // The actual groups and contexts seem to vary from one distro to the next. + expected := "uid=0(root) gid=0(root) groups=0(root)" + if !strings.HasPrefix(strOut, expected) { + t.Errorf("expected prefix: %q", expected) } - for _, e := range expected { - if strOut == e { - return - } - } - t.Errorf("id command output: %q, expected one of %q", strOut, expected) } // TestUnshareHelperProcess isn't a real test. It's used as a helper process From ff6b6c61d7818e4a32402acbf65940afa372368e Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Thu, 31 Mar 2022 14:58:20 -0400 Subject: [PATCH 068/125] net: skip tests that use netsh on the windows-arm64-10 builder These tests sometimes hang on Windows 10 on ARM64, due to what appears to be a platform bug. Since we have not yet observed any such hangs on the windows-arm64-11 builder, I am leaving the tests otherwise enabled on the theory that the platform bug may have been fixed in Windows 11. Fixes #52082 (at least for now). Change-Id: I79161f485b1921f083ebcf01865d6e7b0178ef70 Reviewed-on: https://go-review.googlesource.com/c/go/+/397315 Trust: Bryan Mills Run-TryBot: Bryan Mills Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot --- src/net/net_windows_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/net/net_windows_test.go b/src/net/net_windows_test.go index 2a563a078c..947dda56f2 100644 --- a/src/net/net_windows_test.go +++ b/src/net/net_windows_test.go @@ -8,6 +8,7 @@ import ( "bufio" "bytes" "fmt" + "internal/testenv" "io" "os" "os/exec" @@ -205,6 +206,13 @@ func runCmd(args ...string) ([]byte, error) { } func checkNetsh(t *testing.T) { + if testenv.Builder() == "windows-arm64-10" { + // netsh was observed to sometimes hang on this builder. + // We have not observed failures on windows-arm64-11, so for the + // moment we are leaving the test enabled elsewhere on the theory + // that it may have been a platform bug fixed in Windows 11. + testenv.SkipFlaky(t, 52082) + } out, err := runCmd("netsh", "help") if err != nil { t.Fatal(err) From 9a53b472b5ed41f9fe79a73f1236ed3f45f8871a Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Mon, 21 Mar 2022 17:26:26 -0700 Subject: [PATCH 069/125] crypto/x509: properly handle issuerUniqueID and subjectUniqueID Fixes #51754 Change-Id: I3bfa15db3497de9fb82d6391d87fca1ae9ba6543 Reviewed-on: https://go-review.googlesource.com/c/go/+/394297 Trust: Roland Shoemaker Run-TryBot: Roland Shoemaker Auto-Submit: Roland Shoemaker TryBot-Result: Gopher Robot Reviewed-by: Damien Neil --- src/crypto/x509/parser.go | 4 +-- src/crypto/x509/x509_test.go | 48 ++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/crypto/x509/parser.go b/src/crypto/x509/parser.go index bb60cea7c9..333991bf14 100644 --- a/src/crypto/x509/parser.go +++ b/src/crypto/x509/parser.go @@ -941,10 +941,10 @@ func parseCertificate(der []byte) (*Certificate, error) { } if cert.Version > 1 { - if !tbs.SkipOptionalASN1(cryptobyte_asn1.Tag(1).Constructed().ContextSpecific()) { + if !tbs.SkipOptionalASN1(cryptobyte_asn1.Tag(1).ContextSpecific()) { return nil, errors.New("x509: malformed issuerUniqueID") } - if !tbs.SkipOptionalASN1(cryptobyte_asn1.Tag(2).Constructed().ContextSpecific()) { + if !tbs.SkipOptionalASN1(cryptobyte_asn1.Tag(2).ContextSpecific()) { return nil, errors.New("x509: malformed subjectUniqueID") } if cert.Version == 3 { diff --git a/src/crypto/x509/x509_test.go b/src/crypto/x509/x509_test.go index 69dcd11543..fd9840a486 100644 --- a/src/crypto/x509/x509_test.go +++ b/src/crypto/x509/x509_test.go @@ -3348,3 +3348,51 @@ func TestLargeOID(t *testing.T) { t.Fatalf("ParseCertificate to failed to parse certificate with large OID: %s", err) } } + +const uniqueIDPEM = `-----BEGIN CERTIFICATE----- +MIIFsDCCBJigAwIBAgIIrOyC1ydafZMwDQYJKoZIhvcNAQEFBQAwgY4xgYswgYgG +A1UEAx6BgABNAGkAYwByAG8AcwBvAGYAdAAgAEYAbwByAGUAZgByAG8AbgB0ACAA +VABNAEcAIABIAFQAVABQAFMAIABJAG4AcwBwAGUAYwB0AGkAbwBuACAAQwBlAHIA +dABpAGYAaQBjAGEAdABpAG8AbgAgAEEAdQB0AGgAbwByAGkAdAB5MB4XDTE0MDEx +ODAwNDEwMFoXDTE1MTExNTA5Mzc1NlowgZYxCzAJBgNVBAYTAklEMRAwDgYDVQQI +EwdqYWthcnRhMRIwEAYDVQQHEwlJbmRvbmVzaWExHDAaBgNVBAoTE3N0aG9ub3Jl +aG90ZWxyZXNvcnQxHDAaBgNVBAsTE3N0aG9ub3JlaG90ZWxyZXNvcnQxJTAjBgNV +BAMTHG1haWwuc3Rob25vcmVob3RlbHJlc29ydC5jb20wggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCvuu0qpI+Ko2X84Twkf84cRD/rgp6vpgc5Ebejx/D4 +PEVON5edZkazrMGocK/oQqIlRxx/lefponN/chlGcllcVVPWTuFjs8k+Aat6T1qp +4iXxZekAqX+U4XZMIGJD3PckPL6G2RQSlF7/LhGCsRNRdKpMWSTbou2Ma39g52Kf +gsl3SK/GwLiWpxpcSkNQD1hugguEIsQYLxbeNwpcheXZtxbBGguPzQ7rH8c5vuKU +BkMOzaiNKLzHbBdFSrua8KWwCJg76Vdq/q36O9GlW6YgG3i+A4pCJjXWerI1lWwX +Ktk5V+SvUHGey1bkDuZKJ6myMk2pGrrPWCT7jP7WskChAgMBAAGBCQBCr1dgEleo +cKOCAfswggH3MIHDBgNVHREEgbswgbiCHG1haWwuc3Rob25vcmVob3RlbHJlc29y +dC5jb22CIGFzaGNoc3ZyLnN0aG9ub3JlaG90ZWxyZXNvcnQuY29tgiRBdXRvRGlz +Y292ZXIuc3Rob25vcmVob3RlbHJlc29ydC5jb22CHEF1dG9EaXNjb3Zlci5ob3Rl +bHJlc29ydC5jb22CCEFTSENIU1ZSghdzdGhvbm9yZWhvdGVscmVzb3J0LmNvbYIP +aG90ZWxyZXNvcnQuY29tMCEGCSsGAQQBgjcUAgQUHhIAVwBlAGIAUwBlAHIAdgBl +AHIwHQYDVR0OBBYEFMAC3UR4FwAdGekbhMgnd6lMejtbMAsGA1UdDwQEAwIFoDAT +BgNVHSUEDDAKBggrBgEFBQcDATAJBgNVHRMEAjAAMIG/BgNVHQEEgbcwgbSAFGfF +6xihk+gJJ5TfwvtWe1UFnHLQoYGRMIGOMYGLMIGIBgNVBAMegYAATQBpAGMAcgBv +AHMAbwBmAHQAIABGAG8AcgBlAGYAcgBvAG4AdAAgAFQATQBHACAASABUAFQAUABT +ACAASQBuAHMAcABlAGMAdABpAG8AbgAgAEMAZQByAHQAaQBmAGkAYwBhAHQAaQBv +AG4AIABBAHUAdABoAG8AcgBpAHQAeYIIcKhXEmBXr0IwDQYJKoZIhvcNAQEFBQAD +ggEBABlSxyCMr3+ANr+WmPSjyN5YCJBgnS0IFCwJAzIYP87bcTye/U8eQ2+E6PqG +Q7Huj7nfHEw9qnGo+HNyPp1ad3KORzXDb54c6xEoi+DeuPzYHPbn4c3hlH49I0aQ +eWW2w4RslSWpLvO6Y7Lboyz2/Thk/s2kd4RHxkkWpH2ltPqJuYYg3X6oM5+gIFHJ +WGnh+ojZ5clKvS5yXh3Wkj78M6sb32KfcBk0Hx6NkCYPt60ODYmWtvqwtw6r73u5 +TnTYWRNvo2svX69TriL+CkHY9O1Hkwf2It5zHl3gNiKTJVaak8AuEz/CKWZneovt +yYLwhUhg3PX5Co1VKYE+9TxloiE= +-----END CERTIFICATE-----` + +func TestParseUniqueID(t *testing.T) { + b, _ := pem.Decode([]byte(uniqueIDPEM)) + if b == nil { + t.Fatalf("couldn't decode test certificate") + } + cert, err := ParseCertificate(b.Bytes) + if err != nil { + t.Fatalf("ParseCertificate to failed to parse certificate with unique identifier id: %s", err) + } + if len(cert.Extensions) != 7 { + t.Fatalf("unexpected number of extensions (probably because the extension section was not parsed): got %d, want 7", len(cert.Extensions)) + } +} From fb2a9d27e395af5bb0c88d0fa453bba868275800 Mon Sep 17 00:00:00 2001 From: Wayne Zuo Date: Sun, 20 Mar 2022 22:04:43 +0800 Subject: [PATCH 070/125] mime/multipart: unified Part and Reader receiver name Change-Id: Ic36dd232f3ea049403715fadec00a74efbf7dc9e Reviewed-on: https://go-review.googlesource.com/c/go/+/394075 Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Reviewed-by: Damien Neil Trust: Damien Neil --- src/mime/multipart/multipart.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/mime/multipart/multipart.go b/src/mime/multipart/multipart.go index 81bf722d4e..1054e7a4ce 100644 --- a/src/mime/multipart/multipart.go +++ b/src/mime/multipart/multipart.go @@ -149,11 +149,11 @@ func newPart(mr *Reader, rawPart bool) (*Part, error) { return bp, nil } -func (bp *Part) populateHeaders() error { - r := textproto.NewReader(bp.mr.bufReader) +func (p *Part) populateHeaders() error { + r := textproto.NewReader(p.mr.bufReader) header, err := r.ReadMIMEHeader() if err == nil { - bp.Header = header + p.Header = header } return err } @@ -386,36 +386,36 @@ func (r *Reader) nextPart(rawPart bool) (*Part, error) { // isFinalBoundary reports whether line is the final boundary line // indicating that all parts are over. // It matches `^--boundary--[ \t]*(\r\n)?$` -func (mr *Reader) isFinalBoundary(line []byte) bool { - if !bytes.HasPrefix(line, mr.dashBoundaryDash) { +func (r *Reader) isFinalBoundary(line []byte) bool { + if !bytes.HasPrefix(line, r.dashBoundaryDash) { return false } - rest := line[len(mr.dashBoundaryDash):] + rest := line[len(r.dashBoundaryDash):] rest = skipLWSPChar(rest) - return len(rest) == 0 || bytes.Equal(rest, mr.nl) + return len(rest) == 0 || bytes.Equal(rest, r.nl) } -func (mr *Reader) isBoundaryDelimiterLine(line []byte) (ret bool) { +func (r *Reader) isBoundaryDelimiterLine(line []byte) (ret bool) { // https://tools.ietf.org/html/rfc2046#section-5.1 // The boundary delimiter line is then defined as a line // consisting entirely of two hyphen characters ("-", // decimal value 45) followed by the boundary parameter // value from the Content-Type header field, optional linear // whitespace, and a terminating CRLF. - if !bytes.HasPrefix(line, mr.dashBoundary) { + if !bytes.HasPrefix(line, r.dashBoundary) { return false } - rest := line[len(mr.dashBoundary):] + rest := line[len(r.dashBoundary):] rest = skipLWSPChar(rest) // On the first part, see our lines are ending in \n instead of \r\n // and switch into that mode if so. This is a violation of the spec, // but occurs in practice. - if mr.partsRead == 0 && len(rest) == 1 && rest[0] == '\n' { - mr.nl = mr.nl[1:] - mr.nlDashBoundary = mr.nlDashBoundary[1:] + if r.partsRead == 0 && len(rest) == 1 && rest[0] == '\n' { + r.nl = r.nl[1:] + r.nlDashBoundary = r.nlDashBoundary[1:] } - return bytes.Equal(rest, mr.nl) + return bytes.Equal(rest, r.nl) } // skipLWSPChar returns b with leading spaces and tabs removed. From a41763539c7ad09a22720a517a28e6018ca4db0f Mon Sep 17 00:00:00 2001 From: Damien Neil Date: Tue, 4 Jan 2022 10:34:50 -0800 Subject: [PATCH 071/125] net/http: handle 3xx responses with no Location RFC 7231 does not require that a 3xx response contain a Location header. When receiving such a response, just return it to the caller rather than treating it as an error. Fixes #49281. Change-Id: I66c06d81b0922016384a0f4ff32bf52e3a3d5983 Reviewed-on: https://go-review.googlesource.com/c/go/+/375354 Trust: Damien Neil Run-TryBot: Damien Neil TryBot-Result: Gopher Robot Reviewed-by: Brad Fitzpatrick Trust: Brad Fitzpatrick --- src/net/http/client.go | 17 ++++---------- src/net/http/client_test.go | 44 ++++++++++++++++++++----------------- 2 files changed, 28 insertions(+), 33 deletions(-) diff --git a/src/net/http/client.go b/src/net/http/client.go index 22db96b267..5fd184bcb1 100644 --- a/src/net/http/client.go +++ b/src/net/http/client.go @@ -519,17 +519,6 @@ func redirectBehavior(reqMethod string, resp *Response, ireq *Request) (redirect shouldRedirect = true includeBody = true - // Treat 307 and 308 specially, since they're new in - // Go 1.8, and they also require re-sending the request body. - if resp.Header.Get("Location") == "" { - // 308s have been observed in the wild being served - // without Location headers. Since Go 1.7 and earlier - // didn't follow these codes, just stop here instead - // of returning an error. - // See Issue 17773. - shouldRedirect = false - break - } if ireq.GetBody == nil && ireq.outgoingLength() != 0 { // We had a request body, and 307/308 require // re-sending it, but GetBody is not defined. So just @@ -641,8 +630,10 @@ func (c *Client) do(req *Request) (retres *Response, reterr error) { if len(reqs) > 0 { loc := resp.Header.Get("Location") if loc == "" { - resp.closeBody() - return nil, uerr(fmt.Errorf("%d response missing Location header", resp.StatusCode)) + // While most 3xx responses include a Location, it is not + // required and 3xx responses without a Location have been + // observed in the wild. See issues #17773 and #49281. + return resp, nil } u, err := req.URL.Parse(loc) if err != nil { diff --git a/src/net/http/client_test.go b/src/net/http/client_test.go index e91d526824..5e5bf8f2bb 100644 --- a/src/net/http/client_test.go +++ b/src/net/http/client_test.go @@ -531,27 +531,31 @@ func TestClientRedirectUseResponse(t *testing.T) { } } -// Issue 17773: don't follow a 308 (or 307) if the response doesn't +// Issues 17773 and 49281: don't follow a 3xx if the response doesn't // have a Location header. -func TestClientRedirect308NoLocation(t *testing.T) { - setParallel(t) - defer afterTest(t) - ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) { - w.Header().Set("Foo", "Bar") - w.WriteHeader(308) - })) - defer ts.Close() - c := ts.Client() - res, err := c.Get(ts.URL) - if err != nil { - t.Fatal(err) - } - res.Body.Close() - if res.StatusCode != 308 { - t.Errorf("status = %d; want %d", res.StatusCode, 308) - } - if got := res.Header.Get("Foo"); got != "Bar" { - t.Errorf("Foo header = %q; want Bar", got) +func TestClientRedirectNoLocation(t *testing.T) { + for _, code := range []int{301, 308} { + t.Run(fmt.Sprint(code), func(t *testing.T) { + setParallel(t) + defer afterTest(t) + ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) { + w.Header().Set("Foo", "Bar") + w.WriteHeader(code) + })) + defer ts.Close() + c := ts.Client() + res, err := c.Get(ts.URL) + if err != nil { + t.Fatal(err) + } + res.Body.Close() + if res.StatusCode != code { + t.Errorf("status = %d; want %d", res.StatusCode, code) + } + if got := res.Header.Get("Foo"); got != "Bar" { + t.Errorf("Foo header = %q; want Bar", got) + } + }) } } From 6a40bdcbaf97ca6a815bf48998d90ccfa5a0b6fc Mon Sep 17 00:00:00 2001 From: vpachkov Date: Fri, 19 Nov 2021 14:38:23 +0300 Subject: [PATCH 072/125] runtime: check GOAMD64 v4 compatibility on Darwin Darwin requires a different approach to check AVX512 support. Update #45453 Change-Id: Ia3dfecc04b47aab16f472000e92e46d4fc6d596d Reviewed-on: https://go-review.googlesource.com/c/go/+/365395 Reviewed-by: Keith Randall Run-TryBot: Keith Randall TryBot-Result: Gopher Robot Trust: Heschi Kreinick --- src/runtime/asm_amd64.s | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/runtime/asm_amd64.s b/src/runtime/asm_amd64.s index c08ae610fb..86d6a96d88 100644 --- a/src/runtime/asm_amd64.s +++ b/src/runtime/asm_amd64.s @@ -136,9 +136,20 @@ GLOBL bad_cpu_msg<>(SB), RODATA, $84 #define NEED_EXT_FEATURES_CX V4_EXT_FEATURES_CX #define NEED_EXT_FEATURES_BX V4_EXT_FEATURES_BX -// Downgrading v4 OS checks on Darwin for now, see CL 285572. +// Darwin requires a different approach to check AVX512 support, see CL 285572. #ifdef GOOS_darwin #define NEED_OS_SUPPORT_AX V3_OS_SUPPORT_AX +// These values are from: +// https://github.com/apple/darwin-xnu/blob/xnu-4570.1.46/osfmk/i386/cpu_capabilities.h +#define commpage64_base_address 0x00007fffffe00000 +#define commpage64_cpu_capabilities64 (commpage64_base_address+0x010) +#define commpage64_version (commpage64_base_address+0x01E) +#define hasAVX512F 0x0000004000000000 +#define hasAVX512CD 0x0000008000000000 +#define hasAVX512DQ 0x0000010000000000 +#define hasAVX512BW 0x0000020000000000 +#define hasAVX512VL 0x0000100000000000 +#define NEED_DARWIN_SUPPORT (hasAVX512F | hasAVX512DQ | hasAVX512CD | hasAVX512BW | hasAVX512VL) #else #define NEED_OS_SUPPORT_AX V4_OS_SUPPORT_AX #endif @@ -311,6 +322,18 @@ ok: JNE bad_cpu #endif +#ifdef NEED_DARWIN_SUPPORT + MOVQ $commpage64_version, BX + CMPW (BX), $13 // cpu_capabilities64 undefined in versions < 13 + JL bad_cpu + MOVQ $commpage64_cpu_capabilities64, BX + MOVQ (BX), BX + MOVQ $NEED_DARWIN_SUPPORT, CX + ANDQ CX, BX + CMPQ BX, CX + JNE bad_cpu +#endif + CALL runtime·check(SB) MOVL 24(SP), AX // copy argc From a4ffeb9edd23e1edbea87eb9ebd8cbb84fad6efa Mon Sep 17 00:00:00 2001 From: nimelehin Date: Mon, 6 Dec 2021 11:46:57 +0300 Subject: [PATCH 073/125] cmd/compile: use opregreg for x86.AXOR* ops Change-Id: Id087d86261744559685c687aa7bad6c55466f1b5 Reviewed-on: https://go-review.googlesource.com/c/go/+/369020 Reviewed-by: Keith Randall Run-TryBot: Keith Randall TryBot-Result: Gopher Robot Trust: Alex Rakoczy --- src/cmd/compile/internal/amd64/ssa.go | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/src/cmd/compile/internal/amd64/ssa.go b/src/cmd/compile/internal/amd64/ssa.go index 8ec54a8b03..0a3f80191b 100644 --- a/src/cmd/compile/internal/amd64/ssa.go +++ b/src/cmd/compile/internal/amd64/ssa.go @@ -288,11 +288,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { r := v.Args[1].Reg() // Zero extend dividend. - c := s.Prog(x86.AXORL) - c.From.Type = obj.TYPE_REG - c.From.Reg = x86.REG_DX - c.To.Type = obj.TYPE_REG - c.To.Reg = x86.REG_DX + opregreg(s, x86.AXORL, x86.REG_DX, x86.REG_DX) // Issue divide. p := s.Prog(v.Op.Asm()) @@ -362,11 +358,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { n1.To.Reg = x86.REG_AX // n % -1 == 0 - n2 := s.Prog(x86.AXORL) - n2.From.Type = obj.TYPE_REG - n2.From.Reg = x86.REG_DX - n2.To.Type = obj.TYPE_REG - n2.To.Reg = x86.REG_DX + opregreg(s, x86.AXORL, x86.REG_DX, x86.REG_DX) // TODO(khr): issue only the -1 fixup code we need. // For instance, if only the quotient is used, no point in zeroing the remainder. @@ -744,11 +736,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { // If flags aren't live (indicated by v.Aux == nil), // then we can rewrite MOV $0, AX into XOR AX, AX. if v.AuxInt == 0 && v.Aux == nil { - p := s.Prog(x86.AXORL) - p.From.Type = obj.TYPE_REG - p.From.Reg = x - p.To.Type = obj.TYPE_REG - p.To.Reg = x + opregreg(s, x86.AXORL, x, x) break } @@ -1142,11 +1130,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { // POPCNT/TZCNT/LZCNT have a false dependency on the destination register on Intel cpus. // TZCNT/LZCNT problem affects pre-Skylake models. See discussion at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62011#c7. // Xor register with itself to break the dependency. - p := s.Prog(x86.AXORL) - p.From.Type = obj.TYPE_REG - p.From.Reg = v.Reg() - p.To.Type = obj.TYPE_REG - p.To.Reg = v.Reg() + opregreg(s, x86.AXORL, v.Reg(), v.Reg()) } p := s.Prog(v.Op.Asm()) p.From.Type = obj.TYPE_REG From baf6df06c0525b0bbcf43066f3360eb31b8e7941 Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Sat, 26 Mar 2022 15:15:45 +0800 Subject: [PATCH 074/125] debug/elf: ajdust SectionOverlap test for proper fields The current SectionOverlap tests Size (addr) with Offset (file) This CL set this test for overlap of Size + Addr and Offset + FileSize Fixes #51939 Change-Id: Ied4c0b87f61c4d5e52139a8295c371f55abc776f Reviewed-on: https://go-review.googlesource.com/c/go/+/395920 Trust: mzh Trust: Than McIntosh Run-TryBot: mzh TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui --- src/debug/elf/file_test.go | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/debug/elf/file_test.go b/src/debug/elf/file_test.go index 4c6fdeece9..c0decdd66e 100644 --- a/src/debug/elf/file_test.go +++ b/src/debug/elf/file_test.go @@ -913,14 +913,32 @@ func TestNoSectionOverlaps(t *testing.T) { if sih.Type == SHT_NOBITS { continue } + // checking for overlap in file for j, sj := range f.Sections { sjh := sj.SectionHeader - if i == j || sjh.Type == SHT_NOBITS || sih.Offset == sjh.Offset && sih.Size == 0 { + if i == j || sjh.Type == SHT_NOBITS || sih.Offset == sjh.Offset && sih.FileSize == 0 { continue } - if sih.Offset >= sjh.Offset && sih.Offset < sjh.Offset+sjh.Size { - t.Errorf("ld produced ELF with section %s within %s: 0x%x <= 0x%x..0x%x < 0x%x", - sih.Name, sjh.Name, sjh.Offset, sih.Offset, sih.Offset+sih.Size, sjh.Offset+sjh.Size) + if sih.Offset >= sjh.Offset && sih.Offset < sjh.Offset+sjh.FileSize { + t.Errorf("ld produced ELF with section offset %s within %s: 0x%x <= 0x%x..0x%x < 0x%x", + sih.Name, sjh.Name, sjh.Offset, sih.Offset, sih.Offset+sih.FileSize, sjh.Offset+sjh.FileSize) + } + } + + if sih.Flags&SHF_ALLOC == 0 { + continue + } + + // checking for overlap in address space + for j, sj := range f.Sections { + sjh := sj.SectionHeader + if i == j || sjh.Flags&SHF_ALLOC == 0 || sjh.Type == SHT_NOBITS || + sih.Addr == sjh.Addr && sih.Size == 0 { + continue + } + if sih.Addr >= sjh.Addr && sih.Addr < sjh.Addr+sjh.Size { + t.Errorf("ld produced ELF with section address %s within %s: 0x%x <= 0x%x..0x%x < 0x%x", + sih.Name, sjh.Name, sjh.Addr, sih.Addr, sih.Addr+sih.Size, sjh.Addr+sjh.Size) } } } From 5dbfa6e61a2a733bca601c330967d12a3a5b12f4 Mon Sep 17 00:00:00 2001 From: Ben Shi Date: Thu, 31 Mar 2022 14:34:32 +0000 Subject: [PATCH 075/125] cmd/internal/obj/riscv: fix illegal form of MOV instructions The MOV like instructions should only have two operands. Change-Id: Icbfb49e47a91ac305194c2f140d3d81c912f6d6d GitHub-Last-Rev: 2b25aaa0ed126e8a019db09247953b27123d493f GitHub-Pull-Request: golang/go#52073 Reviewed-on: https://go-review.googlesource.com/c/go/+/397175 Run-TryBot: Ben Shi TryBot-Result: Gopher Robot Reviewed-by: mzh Reviewed-by: Cherry Mui --- src/cmd/asm/internal/asm/testdata/riscv64error.s | 4 ++++ src/cmd/internal/obj/riscv/obj.go | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/cmd/asm/internal/asm/testdata/riscv64error.s b/src/cmd/asm/internal/asm/testdata/riscv64error.s index 238552565b..d3e43e721d 100644 --- a/src/cmd/asm/internal/asm/testdata/riscv64error.s +++ b/src/cmd/asm/internal/asm/testdata/riscv64error.s @@ -22,5 +22,9 @@ TEXT errors(SB),$0 MOVBU X5, (X6) // ERROR "unsupported unsigned store" MOVHU X5, (X6) // ERROR "unsupported unsigned store" MOVWU X5, (X6) // ERROR "unsupported unsigned store" + MOVF F0, F1, F2 // ERROR "illegal MOV instruction" + MOVD F0, F1, F2 // ERROR "illegal MOV instruction" + MOV X10, X11, X12 // ERROR "illegal MOV instruction" + MOVW X10, X11, X12 // ERROR "illegal MOV instruction" RET diff --git a/src/cmd/internal/obj/riscv/obj.go b/src/cmd/internal/obj/riscv/obj.go index 47dbfc0fed..61044b0531 100644 --- a/src/cmd/internal/obj/riscv/obj.go +++ b/src/cmd/internal/obj/riscv/obj.go @@ -1806,6 +1806,11 @@ func instructionsForMOV(p *obj.Prog) []*instruction { ins := instructionForProg(p) inss := []*instruction{ins} + if p.Reg != 0 { + p.Ctxt.Diag("%v: illegal MOV instruction", p) + return nil + } + switch { case p.From.Type == obj.TYPE_CONST && p.To.Type == obj.TYPE_REG: // Handle constant to register moves. From c4efe7fb2777fca05a904b0c62bee8915e13b03f Mon Sep 17 00:00:00 2001 From: Olivier Szika Date: Fri, 30 Jul 2021 12:02:51 +0200 Subject: [PATCH 076/125] mime/multipart: allow nested boundary with outer boundary+dash prefix Fixes #46042 Change-Id: Icd243eb12c6e260aeead04710f12340048a0e859 Reviewed-on: https://go-review.googlesource.com/c/go/+/338549 Trust: Damien Neil Run-TryBot: Damien Neil TryBot-Result: Gopher Robot Reviewed-by: Damien Neil Trust: Cherry Mui Reviewed-by: Robert Griesemer --- src/mime/multipart/multipart.go | 21 ++++++- src/mime/multipart/multipart_test.go | 84 ++++++++++++++++++++++++---- 2 files changed, 91 insertions(+), 14 deletions(-) diff --git a/src/mime/multipart/multipart.go b/src/mime/multipart/multipart.go index 1054e7a4ce..c7bcb4d121 100644 --- a/src/mime/multipart/multipart.go +++ b/src/mime/multipart/multipart.go @@ -264,7 +264,8 @@ func scanUntilBoundary(buf, dashBoundary, nlDashBoundary []byte, total int64, re // and the caller has verified already that bytes.HasPrefix(buf, prefix) is true. // // matchAfterPrefix returns +1 if the buffer does match the boundary, -// meaning the prefix is followed by a dash, space, tab, cr, nl, or end of input. +// meaning the prefix is followed by a double dash, space, tab, cr, nl, +// or end of input. // It returns -1 if the buffer definitely does NOT match the boundary, // meaning the prefix is followed by some other character. // For example, "--foobar" does not match "--foo". @@ -278,9 +279,25 @@ func matchAfterPrefix(buf, prefix []byte, readErr error) int { return 0 } c := buf[len(prefix)] - if c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '-' { + + if c == ' ' || c == '\t' || c == '\r' || c == '\n' { return +1 } + + // Try to detect boundaryDash + if c == '-' { + if len(buf) == len(prefix)+1 { + if readErr != nil { + // Prefix + "-" does not match + return -1 + } + return 0 + } + if buf[len(prefix)+1] == '-' { + return +1 + } + } + return -1 } diff --git a/src/mime/multipart/multipart_test.go b/src/mime/multipart/multipart_test.go index 741d2304ed..e043e36ef7 100644 --- a/src/mime/multipart/multipart_test.go +++ b/src/mime/multipart/multipart_test.go @@ -291,24 +291,34 @@ func TestLineLimit(t *testing.T) { } func TestMultipartTruncated(t *testing.T) { - testBody := ` + for _, body := range []string{ + ` This is a multi-part message. This line is ignored. --MyBoundary foo-bar: baz Oh no, premature EOF! -` - body := strings.ReplaceAll(testBody, "\n", "\r\n") - bodyReader := strings.NewReader(body) - r := NewReader(bodyReader, "MyBoundary") +`, + ` +This is a multi-part message. This line is ignored. +--MyBoundary +foo-bar: baz - part, err := r.NextPart() - if err != nil { - t.Fatalf("didn't get a part") - } - _, err = io.Copy(io.Discard, part) - if err != io.ErrUnexpectedEOF { - t.Fatalf("expected error io.ErrUnexpectedEOF; got %v", err) +Oh no, premature EOF! +--MyBoundary-`, + } { + body = strings.ReplaceAll(body, "\n", "\r\n") + bodyReader := strings.NewReader(body) + r := NewReader(bodyReader, "MyBoundary") + + part, err := r.NextPart() + if err != nil { + t.Fatalf("didn't get a part") + } + _, err = io.Copy(io.Discard, part) + if err != io.ErrUnexpectedEOF { + t.Fatalf("expected error io.ErrUnexpectedEOF; got %v", err) + } } } @@ -751,6 +761,7 @@ html things }, }, }, + // Issue 12662: Check that we don't consume the leading \r if the peekBuffer // ends in '\r\n--separator-' { @@ -767,6 +778,7 @@ Content-Type: application/octet-stream }, }, }, + // Issue 12662: Same test as above with \r\n at the end { name: "peek buffer boundary condition", @@ -782,6 +794,7 @@ Content-Type: application/octet-stream }, }, }, + // Issue 12662v2: We want to make sure that for short buffers that end with // '\r\n--separator-' we always consume at least one (valid) symbol from the // peekBuffer @@ -799,6 +812,7 @@ Content-Type: application/octet-stream }, }, }, + // Context: https://github.com/camlistore/camlistore/issues/642 // If the file contents in the form happens to have a size such as: // size = peekBufferSize - (len("\n--") + len(boundary) + len("\r") + 1), (modulo peekBufferSize) @@ -832,6 +846,52 @@ val }, }, + // Issue 46042; a nested multipart uses the outer separator followed by + // a dash. + { + name: "nested separator prefix is outer separator followed by a dash", + sep: "foo", + in: strings.Replace(`--foo +Content-Type: multipart/alternative; boundary="foo-bar" + +--foo-bar + +Body +--foo-bar + +Body2 +--foo-bar-- +--foo--`, "\n", "\r\n", -1), + want: []headerBody{ + {textproto.MIMEHeader{"Content-Type": {`multipart/alternative; boundary="foo-bar"`}}, + strings.Replace(`--foo-bar + +Body +--foo-bar + +Body2 +--foo-bar--`, "\n", "\r\n", -1), + }, + }, + }, + + // A nested boundary cannot be the outer separator followed by double dash. + { + name: "nested separator prefix is outer separator followed by double dash", + sep: "foo", + in: strings.Replace(`--foo +Content-Type: multipart/alternative; boundary="foo--" + +--foo-- + +Body + +--foo--`, "\n", "\r\n", -1), + want: []headerBody{ + {textproto.MIMEHeader{"Content-Type": {`multipart/alternative; boundary="foo--"`}}, ""}, + }, + }, + roundTripParseTest(), } From be8ee5a58f8c30e95e425779fb31b2ae4e35cb8c Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Thu, 30 Dec 2021 16:46:21 +0800 Subject: [PATCH 077/125] cmd/dist: enable msan/asan Supporting memory sanitizer and address sanitizer in toolchains Change-Id: Ie292657b78954d65bd72e64e063b1c4f18d4f0d4 Reviewed-on: https://go-review.googlesource.com/c/go/+/374974 Trust: mzh Run-TryBot: mzh TryBot-Result: Gopher Robot Reviewed-by: Bryan Mills --- src/cmd/dist/test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index a540a2abda..9118c133e5 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -38,6 +38,9 @@ func cmdtest() { flag.StringVar(&t.runRxStr, "run", os.Getenv("GOTESTONLY"), "run only those tests matching the regular expression; empty means to run all. "+ "Special exception: if the string begins with '!', the match is inverted.") + flag.BoolVar(&t.msan, "msan", false, "run in memory sanitizer builder mode") + flag.BoolVar(&t.asan, "asan", false, "run in address sanitizer builder mode") + xflagparse(-1) // any number of args if noRebuild { t.rebuild = false @@ -49,6 +52,8 @@ func cmdtest() { // tester executes cmdtest. type tester struct { race bool + msan bool + asan bool listMode bool rebuild bool failed bool @@ -404,6 +409,12 @@ func (t *tester) registerStdTest(pkg string) { if t.race { args = append(args, "-race") } + if t.msan { + args = append(args, "-msan") + } + if t.asan { + args = append(args, "-asan") + } if t.compileOnly { args = append(args, "-run=^$") } From ecee4a32918c5e575303530abb9a504a235a1c71 Mon Sep 17 00:00:00 2001 From: eric fang Date: Thu, 31 Mar 2022 07:34:01 +0000 Subject: [PATCH 078/125] cmd/internal/obj/arm64: fix encoding error for SYS instruction Currently using the SYS instruction will report the "illegal combination" error. This is because the assembler parser treats the register operand as p.To, while optab defines it as p.Reg. This CL fixes this bug. Change-Id: I57799a7c19934b0c62278948f4efaa41001593a4 Reviewed-on: https://go-review.googlesource.com/c/go/+/396796 Run-TryBot: Eric Fang TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui Trust: Eric Fang --- src/cmd/asm/internal/asm/testdata/arm64.s | 2 ++ src/cmd/internal/obj/arm64/asm7.go | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cmd/asm/internal/asm/testdata/arm64.s b/src/cmd/asm/internal/asm/testdata/arm64.s index 8a7dd299aa..03f0c46cac 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64.s +++ b/src/cmd/asm/internal/asm/testdata/arm64.s @@ -1627,4 +1627,6 @@ again: MSR R13, ZCR_EL1 // 0d1218d5 MRS ZCR_EL1, R23 // 171238d5 MSR R17, ZCR_EL1 // 111218d5 + SYS $32768, R1 // 018008d5 + SYS $32768 // 1f8008d5 END diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go index 244430eb8f..bf33da50c1 100644 --- a/src/cmd/internal/obj/arm64/asm7.go +++ b/src/cmd/internal/obj/arm64/asm7.go @@ -843,7 +843,7 @@ var optab = []Optab{ {ADMB, C_VCON, C_NONE, C_NONE, C_NONE, 51, 4, 0, 0, 0}, {AHINT, C_VCON, C_NONE, C_NONE, C_NONE, 52, 4, 0, 0, 0}, {ASYS, C_VCON, C_NONE, C_NONE, C_NONE, 50, 4, 0, 0, 0}, - {ASYS, C_VCON, C_REG, C_NONE, C_NONE, 50, 4, 0, 0, 0}, + {ASYS, C_VCON, C_NONE, C_NONE, C_REG, 50, 4, 0, 0, 0}, {ASYSL, C_VCON, C_NONE, C_NONE, C_REG, 50, 4, 0, 0, 0}, /* encryption instructions */ From bb2b16d15ead9c5b6b9e2b699aed8bdfcf7e9518 Mon Sep 17 00:00:00 2001 From: Meng Zhuo Date: Wed, 3 Nov 2021 18:01:09 +0800 Subject: [PATCH 079/125] reflect, runtime: add reflect support for regabi on riscv64 This CL adds regabi support needed for reflect and reimplement of CL 360994, which is reverted. Change-Id: I140673f09109dd9f72eff70aad64c0aa00d6857a Reviewed-on: https://go-review.googlesource.com/c/go/+/396077 Reviewed-by: Cherry Mui Trust: mzh --- src/reflect/asm_riscv64.s | 54 +++++++++++++++++++++++++++++++++------ src/runtime/stack.go | 3 ++- 2 files changed, 48 insertions(+), 9 deletions(-) diff --git a/src/reflect/asm_riscv64.s b/src/reflect/asm_riscv64.s index e707112277..1200b4d08e 100644 --- a/src/reflect/asm_riscv64.s +++ b/src/reflect/asm_riscv64.s @@ -5,34 +5,72 @@ #include "textflag.h" #include "funcdata.h" +// The frames of each of the two functions below contain two locals, at offsets +// that are known to the runtime. +// +// The first local is a bool called retValid with a whole pointer-word reserved +// for it on the stack. The purpose of this word is so that the runtime knows +// whether the stack-allocated return space contains valid values for stack +// scanning. +// +// The second local is an abi.RegArgs value whose offset is also known to the +// runtime, so that a stack map for it can be constructed, since it contains +// pointers visible to the GC. +#define LOCAL_RETVALID 40 +#define LOCAL_REGARGS 48 + +// The frame size of the functions below is +// 32 (args of callReflect/callMethod) + (8 bool with padding) + 392 (abi.RegArgs) = 432. + // makeFuncStub is the code half of the function returned by MakeFunc. // See the comment on the declaration of makeFuncStub in makefunc.go // for more details. // No arg size here, runtime pulls arg map out of the func value. -TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$40 +TEXT ·makeFuncStub(SB),(NOSPLIT|WRAPPER),$432 NO_LOCAL_POINTERS + ADD $LOCAL_REGARGS, SP, X25 // spillArgs using X25 + CALL runtime·spillArgs(SB) + MOV CTXT, 32(SP) // save CTXT > args of moveMakeFuncArgPtrs < LOCAL_REGARGS + MOV CTXT, 8(SP) + MOV X25, 16(SP) + CALL ·moveMakeFuncArgPtrs(SB) + MOV 32(SP), CTXT // restore CTXT + MOV CTXT, 8(SP) MOV $argframe+0(FP), T0 MOV T0, 16(SP) - ADD $40, SP, T1 + MOV ZERO, LOCAL_RETVALID(SP) + ADD $LOCAL_RETVALID, SP, T1 MOV T1, 24(SP) - MOV ZERO, 32(SP) - MOVB ZERO, 40(SP) + ADD $LOCAL_REGARGS, SP, T1 + MOV T1, 32(SP) CALL ·callReflect(SB) + ADD $LOCAL_REGARGS, SP, X25 // unspillArgs using X25 + CALL runtime·unspillArgs(SB) RET // methodValueCall is the code half of the function returned by makeMethodValue. // See the comment on the declaration of methodValueCall in makefunc.go // for more details. // No arg size here; runtime pulls arg map out of the func value. -TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$40 +TEXT ·methodValueCall(SB),(NOSPLIT|WRAPPER),$432 NO_LOCAL_POINTERS + ADD $LOCAL_REGARGS, SP, X25 // spillArgs using X25 + CALL runtime·spillArgs(SB) + MOV CTXT, 32(SP) // save CTXT + MOV CTXT, 8(SP) + MOV X25, 16(SP) + CALL ·moveMakeFuncArgPtrs(SB) + MOV 32(SP), CTXT // restore CTXT MOV CTXT, 8(SP) MOV $argframe+0(FP), T0 MOV T0, 16(SP) - ADD $40, SP, T1 + MOV ZERO, LOCAL_RETVALID(SP) + ADD $LOCAL_RETVALID, SP, T1 MOV T1, 24(SP) - MOV ZERO, 32(SP) - MOVB ZERO, 40(SP) + ADD $LOCAL_REGARGS, SP, T1 + MOV T1, 32(SP) // frame size to 32+SP as callreflect args CALL ·callMethod(SB) + ADD $LOCAL_REGARGS, SP, X25 // unspillArgs using X25 + CALL runtime·unspillArgs(SB) RET diff --git a/src/runtime/stack.go b/src/runtime/stack.go index edc37d4878..54a02173c3 100644 --- a/src/runtime/stack.go +++ b/src/runtime/stack.go @@ -1332,7 +1332,8 @@ func getStackMap(frame *stkframe, cache *pcvalueCache, debug bool) (locals, args } // stack objects. - if (GOARCH == "amd64" || GOARCH == "arm64" || GOARCH == "ppc64" || GOARCH == "ppc64le") && unsafe.Sizeof(abi.RegArgs{}) > 0 && frame.argmap != nil { + if (GOARCH == "amd64" || GOARCH == "arm64" || GOARCH == "ppc64" || GOARCH == "ppc64le" || GOARCH == "riscv64") && + unsafe.Sizeof(abi.RegArgs{}) > 0 && frame.argmap != nil { // argmap is set when the function is reflect.makeFuncStub or reflect.methodValueCall. // We don't actually use argmap in this case, but we need to fake the stack object // record for these frames which contain an internal/abi.RegArgs at a hard-coded offset. From f5290ef947b2471db27c35321a49b4e3b756e56e Mon Sep 17 00:00:00 2001 From: erifan01 Date: Wed, 12 Aug 2020 17:41:54 +0800 Subject: [PATCH 080/125] cmd/asm: refactor some operands that are not special registers on arm64 The previous code treats some operands such as EQ, LT, etc. as special registers. However, they are not. This CL adds a new AddrType TYPE_SPOPD and a new class C_SPOPD to support this kind of special operands, and refactors the relevant code. This patch is a copy of CL 260861, contributed by Junchen Li(junchen.li@arm.com). Co-authored-by: Junchen Li(junchen.li@arm.com) Change-Id: I57b28da458ee3332f610602632e7eda03af435f5 Reviewed-on: https://go-review.googlesource.com/c/go/+/302849 Reviewed-by: Cherry Mui Trust: Eric Fang Run-TryBot: Eric Fang TryBot-Result: Gopher Robot --- src/cmd/asm/internal/arch/arch.go | 39 ------ src/cmd/asm/internal/arch/arm64.go | 31 ++++- src/cmd/asm/internal/asm/parse.go | 16 ++- src/cmd/asm/internal/asm/testdata/arm64.s | 3 +- src/cmd/compile/internal/arm64/ssa.go | 66 +++++----- src/cmd/internal/obj/addrtype_string.go | 25 +++- src/cmd/internal/obj/arm64/a.out.go | 96 ++++++++------ src/cmd/internal/obj/arm64/anames7.go | 1 + src/cmd/internal/obj/arm64/asm7.go | 119 +++++++++--------- src/cmd/internal/obj/arm64/list7.go | 51 ++------ .../obj/arm64/specialoperand_string.go | 60 +++++++++ src/cmd/internal/obj/link.go | 7 ++ src/cmd/internal/obj/pass.go | 5 + src/cmd/internal/obj/util.go | 30 +++++ 14 files changed, 330 insertions(+), 219 deletions(-) create mode 100644 src/cmd/internal/obj/arm64/specialoperand_string.go diff --git a/src/cmd/asm/internal/arch/arch.go b/src/cmd/asm/internal/arch/arch.go index 4d374cb828..403e70eee7 100644 --- a/src/cmd/asm/internal/arch/arch.go +++ b/src/cmd/asm/internal/arch/arch.go @@ -278,46 +278,7 @@ func archArm64() *Arch { } register["LR"] = arm64.REGLINK - register["DAIFSet"] = arm64.REG_DAIFSet - register["DAIFClr"] = arm64.REG_DAIFClr - register["PLDL1KEEP"] = arm64.REG_PLDL1KEEP - register["PLDL1STRM"] = arm64.REG_PLDL1STRM - register["PLDL2KEEP"] = arm64.REG_PLDL2KEEP - register["PLDL2STRM"] = arm64.REG_PLDL2STRM - register["PLDL3KEEP"] = arm64.REG_PLDL3KEEP - register["PLDL3STRM"] = arm64.REG_PLDL3STRM - register["PLIL1KEEP"] = arm64.REG_PLIL1KEEP - register["PLIL1STRM"] = arm64.REG_PLIL1STRM - register["PLIL2KEEP"] = arm64.REG_PLIL2KEEP - register["PLIL2STRM"] = arm64.REG_PLIL2STRM - register["PLIL3KEEP"] = arm64.REG_PLIL3KEEP - register["PLIL3STRM"] = arm64.REG_PLIL3STRM - register["PSTL1KEEP"] = arm64.REG_PSTL1KEEP - register["PSTL1STRM"] = arm64.REG_PSTL1STRM - register["PSTL2KEEP"] = arm64.REG_PSTL2KEEP - register["PSTL2STRM"] = arm64.REG_PSTL2STRM - register["PSTL3KEEP"] = arm64.REG_PSTL3KEEP - register["PSTL3STRM"] = arm64.REG_PSTL3STRM - // Conditional operators, like EQ, NE, etc. - register["EQ"] = arm64.COND_EQ - register["NE"] = arm64.COND_NE - register["HS"] = arm64.COND_HS - register["CS"] = arm64.COND_HS - register["LO"] = arm64.COND_LO - register["CC"] = arm64.COND_LO - register["MI"] = arm64.COND_MI - register["PL"] = arm64.COND_PL - register["VS"] = arm64.COND_VS - register["VC"] = arm64.COND_VC - register["HI"] = arm64.COND_HI - register["LS"] = arm64.COND_LS - register["GE"] = arm64.COND_GE - register["LT"] = arm64.COND_LT - register["GT"] = arm64.COND_GT - register["LE"] = arm64.COND_LE - register["AL"] = arm64.COND_AL - register["NV"] = arm64.COND_NV // Pseudo-registers. register["SB"] = RSB register["FP"] = RFP diff --git a/src/cmd/asm/internal/arch/arm64.go b/src/cmd/asm/internal/arch/arm64.go index 24689c5ab1..591c4d35db 100644 --- a/src/cmd/asm/internal/arch/arm64.go +++ b/src/cmd/asm/internal/arch/arm64.go @@ -12,6 +12,7 @@ import ( "cmd/internal/obj" "cmd/internal/obj/arm64" "errors" + "fmt" ) var arm64LS = map[string]uint8{ @@ -52,7 +53,35 @@ func jumpArm64(word string) bool { return arm64Jump[word] } -// IsARM64CMP reports whether the op (as defined by an arm.A* constant) is +var arm64SpecialOperand map[string]arm64.SpecialOperand + +// GetARM64SpecialOperand returns the internal representation of a special operand. +func GetARM64SpecialOperand(name string) arm64.SpecialOperand { + if arm64SpecialOperand == nil { + // Generate the mapping automatically when the first time the function is called. + arm64SpecialOperand = map[string]arm64.SpecialOperand{} + for opd := arm64.SPOP_BEGIN; opd < arm64.SPOP_END; opd++ { + s := fmt.Sprintf("%s", opd) + arm64SpecialOperand[s] = opd + } + + // Handle some special cases. + specialMapping := map[string]arm64.SpecialOperand{ + // The internal representation of CS(CC) and HS(LO) are the same. + "CS": arm64.SPOP_HS, + "CC": arm64.SPOP_LO, + } + for s, opd := range specialMapping { + arm64SpecialOperand[s] = opd + } + } + if opd, ok := arm64SpecialOperand[name]; ok { + return opd + } + return arm64.SPOP_END +} + +// IsARM64CMP reports whether the op (as defined by an arm64.A* constant) is // one of the comparison instructions that require special handling. func IsARM64CMP(op obj.As) bool { switch op { diff --git a/src/cmd/asm/internal/asm/parse.go b/src/cmd/asm/internal/asm/parse.go index 4cddcf48a4..0bdf868f48 100644 --- a/src/cmd/asm/internal/asm/parse.go +++ b/src/cmd/asm/internal/asm/parse.go @@ -19,6 +19,7 @@ import ( "cmd/asm/internal/flags" "cmd/asm/internal/lex" "cmd/internal/obj" + "cmd/internal/obj/arm64" "cmd/internal/obj/x86" "cmd/internal/src" "cmd/internal/sys" @@ -389,8 +390,19 @@ func (p *Parser) operand(a *obj.Addr) { tok := p.next() name := tok.String() if tok.ScanToken == scanner.Ident && !p.atStartOfRegister(name) { - // We have a symbol. Parse $sym±offset(symkind) - p.symbolReference(a, name, prefix) + switch p.arch.Family { + case sys.ARM64: + // arm64 special operands. + if opd := arch.GetARM64SpecialOperand(name); opd != arm64.SPOP_END { + a.Type = obj.TYPE_SPECIAL + a.Offset = int64(opd) + break + } + fallthrough + default: + // We have a symbol. Parse $sym±offset(symkind) + p.symbolReference(a, name, prefix) + } // fmt.Printf("SYM %s\n", obj.Dconv(&emptyProg, 0, a)) if p.peek() == scanner.EOF { return diff --git a/src/cmd/asm/internal/asm/testdata/arm64.s b/src/cmd/asm/internal/asm/testdata/arm64.s index 03f0c46cac..1413bdf476 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64.s +++ b/src/cmd/asm/internal/asm/testdata/arm64.s @@ -628,7 +628,8 @@ again: CSELW LT, R2, R3, R4 // 44b0831a CSINC GT, R1, ZR, R3 // 23c49f9a CSNEG MI, R1, R2, R3 // 234482da - CSINV CS, R1, R2, R3 // CSINV HS, R1, R2, R3 // 232082da + CSINV CS, R1, R2, R3 // CSINV HS, R1, R2, R3 // 232082da + CSINV HS, R1, R2, R3 // 232082da CSINVW MI, R2, ZR, R2 // 42409f5a CINC EQ, R4, R9 // 8914849a CINCW PL, R2, ZR // 5f44821a diff --git a/src/cmd/compile/internal/arm64/ssa.go b/src/cmd/compile/internal/arm64/ssa.go index 96a29224bf..48eb2190b2 100644 --- a/src/cmd/compile/internal/arm64/ssa.go +++ b/src/cmd/compile/internal/arm64/ssa.go @@ -728,8 +728,8 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { p4.To.Type = obj.TYPE_BRANCH p4.To.SetTarget(p) p5 := s.Prog(arm64.ACSET) - p5.From.Type = obj.TYPE_REG // assembler encodes conditional bits in Reg - p5.From.Reg = arm64.COND_EQ + p5.From.Type = obj.TYPE_SPECIAL // assembler encodes conditional bits in Offset + p5.From.Offset = int64(arm64.SPOP_EQ) p5.To.Type = obj.TYPE_REG p5.To.Reg = out p2.To.SetTarget(p5) @@ -778,8 +778,8 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { // CSET EQ, Rout p3 := s.Prog(arm64.ACSET) - p3.From.Type = obj.TYPE_REG - p3.From.Reg = arm64.COND_EQ + p3.From.Type = obj.TYPE_SPECIAL // assembler encodes conditional bits in Offset + p3.From.Offset = int64(arm64.SPOP_EQ) p3.To.Type = obj.TYPE_REG p3.To.Reg = out @@ -978,24 +978,27 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { r1 = v.Args[1].Reg() } p := s.Prog(v.Op.Asm()) - p.From.Type = obj.TYPE_REG // assembler encodes conditional bits in Reg - p.From.Reg = condBits[ssa.Op(v.AuxInt)] + p.From.Type = obj.TYPE_SPECIAL // assembler encodes conditional bits in Offset + condCode := condBits[ssa.Op(v.AuxInt)] + p.From.Offset = int64(condCode) p.Reg = v.Args[0].Reg() p.SetFrom3Reg(r1) p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg() case ssa.OpARM64CSINC, ssa.OpARM64CSINV, ssa.OpARM64CSNEG: p := s.Prog(v.Op.Asm()) - p.From.Type = obj.TYPE_REG // assembler encodes conditional bits in Reg - p.From.Reg = condBits[ssa.Op(v.AuxInt)] + p.From.Type = obj.TYPE_SPECIAL // assembler encodes conditional bits in Offset + condCode := condBits[ssa.Op(v.AuxInt)] + p.From.Offset = int64(condCode) p.Reg = v.Args[0].Reg() p.SetFrom3Reg(v.Args[1].Reg()) p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg() case ssa.OpARM64CSETM: p := s.Prog(arm64.ACSETM) - p.From.Type = obj.TYPE_REG // assembler encodes conditional bits in Reg - p.From.Reg = condBits[ssa.Op(v.AuxInt)] + p.From.Type = obj.TYPE_SPECIAL // assembler encodes conditional bits in Offset + condCode := condBits[ssa.Op(v.AuxInt)] + p.From.Offset = int64(condCode) p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg() case ssa.OpARM64DUFFZERO: @@ -1107,8 +1110,9 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { ssa.OpARM64NotGreaterEqualF: // generate boolean values using CSET p := s.Prog(arm64.ACSET) - p.From.Type = obj.TYPE_REG // assembler encodes conditional bits in Reg - p.From.Reg = condBits[v.Op] + p.From.Type = obj.TYPE_SPECIAL // assembler encodes conditional bits in Offset + condCode := condBits[v.Op] + p.From.Offset = int64(condCode) p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg() case ssa.OpARM64PRFM: @@ -1173,27 +1177,27 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { } } -var condBits = map[ssa.Op]int16{ - ssa.OpARM64Equal: arm64.COND_EQ, - ssa.OpARM64NotEqual: arm64.COND_NE, - ssa.OpARM64LessThan: arm64.COND_LT, - ssa.OpARM64LessThanU: arm64.COND_LO, - ssa.OpARM64LessEqual: arm64.COND_LE, - ssa.OpARM64LessEqualU: arm64.COND_LS, - ssa.OpARM64GreaterThan: arm64.COND_GT, - ssa.OpARM64GreaterThanU: arm64.COND_HI, - ssa.OpARM64GreaterEqual: arm64.COND_GE, - ssa.OpARM64GreaterEqualU: arm64.COND_HS, - ssa.OpARM64LessThanF: arm64.COND_MI, // Less than - ssa.OpARM64LessEqualF: arm64.COND_LS, // Less than or equal to - ssa.OpARM64GreaterThanF: arm64.COND_GT, // Greater than - ssa.OpARM64GreaterEqualF: arm64.COND_GE, // Greater than or equal to +var condBits = map[ssa.Op]arm64.SpecialOperand{ + ssa.OpARM64Equal: arm64.SPOP_EQ, + ssa.OpARM64NotEqual: arm64.SPOP_NE, + ssa.OpARM64LessThan: arm64.SPOP_LT, + ssa.OpARM64LessThanU: arm64.SPOP_LO, + ssa.OpARM64LessEqual: arm64.SPOP_LE, + ssa.OpARM64LessEqualU: arm64.SPOP_LS, + ssa.OpARM64GreaterThan: arm64.SPOP_GT, + ssa.OpARM64GreaterThanU: arm64.SPOP_HI, + ssa.OpARM64GreaterEqual: arm64.SPOP_GE, + ssa.OpARM64GreaterEqualU: arm64.SPOP_HS, + ssa.OpARM64LessThanF: arm64.SPOP_MI, // Less than + ssa.OpARM64LessEqualF: arm64.SPOP_LS, // Less than or equal to + ssa.OpARM64GreaterThanF: arm64.SPOP_GT, // Greater than + ssa.OpARM64GreaterEqualF: arm64.SPOP_GE, // Greater than or equal to // The following condition codes have unordered to handle comparisons related to NaN. - ssa.OpARM64NotLessThanF: arm64.COND_PL, // Greater than, equal to, or unordered - ssa.OpARM64NotLessEqualF: arm64.COND_HI, // Greater than or unordered - ssa.OpARM64NotGreaterThanF: arm64.COND_LE, // Less than, equal to or unordered - ssa.OpARM64NotGreaterEqualF: arm64.COND_LT, // Less than or unordered + ssa.OpARM64NotLessThanF: arm64.SPOP_PL, // Greater than, equal to, or unordered + ssa.OpARM64NotLessEqualF: arm64.SPOP_HI, // Greater than or unordered + ssa.OpARM64NotGreaterThanF: arm64.SPOP_LE, // Less than, equal to or unordered + ssa.OpARM64NotGreaterEqualF: arm64.SPOP_LT, // Less than or unordered } var blockJump = map[ssa.BlockKind]struct { diff --git a/src/cmd/internal/obj/addrtype_string.go b/src/cmd/internal/obj/addrtype_string.go index 71f0dd97a8..e6277d39b0 100644 --- a/src/cmd/internal/obj/addrtype_string.go +++ b/src/cmd/internal/obj/addrtype_string.go @@ -4,9 +4,30 @@ package obj import "strconv" -const _AddrType_name = "TYPE_NONETYPE_BRANCHTYPE_TEXTSIZETYPE_MEMTYPE_CONSTTYPE_FCONSTTYPE_SCONSTTYPE_REGTYPE_ADDRTYPE_SHIFTTYPE_REGREGTYPE_REGREG2TYPE_INDIRTYPE_REGLIST" +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[TYPE_NONE-0] + _ = x[TYPE_BRANCH-1] + _ = x[TYPE_TEXTSIZE-2] + _ = x[TYPE_MEM-3] + _ = x[TYPE_CONST-4] + _ = x[TYPE_FCONST-5] + _ = x[TYPE_SCONST-6] + _ = x[TYPE_REG-7] + _ = x[TYPE_ADDR-8] + _ = x[TYPE_SHIFT-9] + _ = x[TYPE_REGREG-10] + _ = x[TYPE_REGREG2-11] + _ = x[TYPE_INDIR-12] + _ = x[TYPE_REGLIST-13] + _ = x[TYPE_SPECIAL-14] +} -var _AddrType_index = [...]uint8{0, 9, 20, 33, 41, 51, 62, 73, 81, 90, 100, 111, 123, 133, 145} +const _AddrType_name = "TYPE_NONETYPE_BRANCHTYPE_TEXTSIZETYPE_MEMTYPE_CONSTTYPE_FCONSTTYPE_SCONSTTYPE_REGTYPE_ADDRTYPE_SHIFTTYPE_REGREGTYPE_REGREG2TYPE_INDIRTYPE_REGLISTTYPE_SPECIAL" + +var _AddrType_index = [...]uint8{0, 9, 20, 33, 41, 51, 62, 73, 81, 90, 100, 111, 123, 133, 145, 157} func (i AddrType) String() string { if i >= AddrType(len(_AddrType_index)-1) { diff --git a/src/cmd/internal/obj/arm64/a.out.go b/src/cmd/internal/obj/arm64/a.out.go index f3480e0f5e..489651bad2 100644 --- a/src/cmd/internal/obj/arm64/a.out.go +++ b/src/cmd/internal/obj/arm64/a.out.go @@ -143,26 +143,6 @@ const ( REG_V30 REG_V31 - // The EQ in - // CSET EQ, R0 - // is encoded as TYPE_REG, even though it's not really a register. - COND_EQ - COND_NE - COND_HS - COND_LO - COND_MI - COND_PL - COND_VS - COND_VC - COND_HI - COND_LS - COND_GE - COND_LT - COND_GT - COND_LE - COND_AL - COND_NV - REG_RSP = REG_V31 + 32 // to differentiate ZR/SP, REG_RSP&0x1f = 31 ) @@ -197,28 +177,10 @@ const ( // a special register and the low bits select the register. // SYSREG_END is the last item in the automatically generated system register // declaration, and it is defined in the sysRegEnc.go file. +// Define the special register after REG_SPECIAL, the first value of it should be +// REG_{name} = SYSREG_END + iota. const ( REG_SPECIAL = obj.RBaseARM64 + 1<<12 - REG_DAIFSet = SYSREG_END + iota - REG_DAIFClr - REG_PLDL1KEEP - REG_PLDL1STRM - REG_PLDL2KEEP - REG_PLDL2STRM - REG_PLDL3KEEP - REG_PLDL3STRM - REG_PLIL1KEEP - REG_PLIL1STRM - REG_PLIL2KEEP - REG_PLIL2STRM - REG_PLIL3KEEP - REG_PLIL3STRM - REG_PSTL1KEEP - REG_PSTL1STRM - REG_PSTL2KEEP - REG_PSTL2STRM - REG_PSTL3KEEP - REG_PSTL3STRM ) // Register assignments: @@ -388,7 +350,8 @@ const ( C_SHIFT // Rn<<2 C_EXTREG // Rn.UXTB[<<3] C_SPR // REG_NZCV - C_COND // EQ, NE, etc + C_COND // condition code, EQ, NE, etc. + C_SPOP // special operand, PLDL1KEEP, VMALLE1IS, etc. C_ARNG // Vn. C_ELEM // Vn.[index] C_LIST // [V1, V2, V3] @@ -1085,3 +1048,54 @@ const ( ARNG_S ARNG_D ) + +//go:generate stringer -type SpecialOperand -trimprefix SPOP_ +type SpecialOperand int + +const ( + // PRFM + SPOP_PLDL1KEEP SpecialOperand = iota // must be the first one + SPOP_BEGIN SpecialOperand = iota - 1 // set as the lower bound + SPOP_PLDL1STRM + SPOP_PLDL2KEEP + SPOP_PLDL2STRM + SPOP_PLDL3KEEP + SPOP_PLDL3STRM + SPOP_PLIL1KEEP + SPOP_PLIL1STRM + SPOP_PLIL2KEEP + SPOP_PLIL2STRM + SPOP_PLIL3KEEP + SPOP_PLIL3STRM + SPOP_PSTL1KEEP + SPOP_PSTL1STRM + SPOP_PSTL2KEEP + SPOP_PSTL2STRM + SPOP_PSTL3KEEP + SPOP_PSTL3STRM + + // PSTATE fields + SPOP_DAIFSet + SPOP_DAIFClr + + // Condition code, EQ, NE, etc. Their relative order to EQ is matter. + SPOP_EQ + SPOP_NE + SPOP_HS + SPOP_LO + SPOP_MI + SPOP_PL + SPOP_VS + SPOP_VC + SPOP_HI + SPOP_LS + SPOP_GE + SPOP_LT + SPOP_GT + SPOP_LE + SPOP_AL + SPOP_NV + // Condition code end. + + SPOP_END +) diff --git a/src/cmd/internal/obj/arm64/anames7.go b/src/cmd/internal/obj/arm64/anames7.go index 2ecd8164b6..54fc939c01 100644 --- a/src/cmd/internal/obj/arm64/anames7.go +++ b/src/cmd/internal/obj/arm64/anames7.go @@ -15,6 +15,7 @@ var cnames7 = []string{ "SHIFT", "EXTREG", "SPR", + "SPOP", "COND", "ARNG", "ELEM", diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go index bf33da50c1..6081b52c8a 100644 --- a/src/cmd/internal/obj/arm64/asm7.go +++ b/src/cmd/internal/obj/arm64/asm7.go @@ -838,7 +838,8 @@ var optab = []Optab{ {AMSR, C_REG, C_NONE, C_NONE, C_SPR, 36, 4, 0, 0, 0}, {AMOVD, C_VCON, C_NONE, C_NONE, C_SPR, 37, 4, 0, 0, 0}, {AMSR, C_VCON, C_NONE, C_NONE, C_SPR, 37, 4, 0, 0, 0}, - {APRFM, C_UOREG32K, C_NONE, C_NONE, C_SPR, 91, 4, 0, 0, 0}, + {AMSR, C_VCON, C_NONE, C_NONE, C_SPOP, 37, 4, 0, 0, 0}, + {APRFM, C_UOREG32K, C_NONE, C_NONE, C_SPOP, 91, 4, 0, 0, 0}, {APRFM, C_UOREG32K, C_NONE, C_NONE, C_LCON, 91, 4, 0, 0, 0}, {ADMB, C_VCON, C_NONE, C_NONE, C_NONE, 51, 4, 0, 0, 0}, {AHINT, C_VCON, C_NONE, C_NONE, C_NONE, 52, 4, 0, 0, 0}, @@ -873,40 +874,35 @@ var optab = []Optab{ {obj.AXXX, C_NONE, C_NONE, C_NONE, C_NONE, 0, 4, 0, 0, 0}, } -/* - * valid pstate field values, and value to use in instruction - */ +// Valid pstate field values, and value to use in instruction. +// Doesn't include special registers. var pstatefield = []struct { - reg int16 + opd SpecialOperand enc uint32 }{ - {REG_SPSel, 0<<16 | 4<<12 | 5<<5}, - {REG_DAIFSet, 3<<16 | 4<<12 | 6<<5}, - {REG_DAIFClr, 3<<16 | 4<<12 | 7<<5}, + {SPOP_DAIFSet, 3<<16 | 4<<12 | 6<<5}, + {SPOP_DAIFClr, 3<<16 | 4<<12 | 7<<5}, } -var prfopfield = []struct { - reg int16 - enc uint32 -}{ - {REG_PLDL1KEEP, 0}, - {REG_PLDL1STRM, 1}, - {REG_PLDL2KEEP, 2}, - {REG_PLDL2STRM, 3}, - {REG_PLDL3KEEP, 4}, - {REG_PLDL3STRM, 5}, - {REG_PLIL1KEEP, 8}, - {REG_PLIL1STRM, 9}, - {REG_PLIL2KEEP, 10}, - {REG_PLIL2STRM, 11}, - {REG_PLIL3KEEP, 12}, - {REG_PLIL3STRM, 13}, - {REG_PSTL1KEEP, 16}, - {REG_PSTL1STRM, 17}, - {REG_PSTL2KEEP, 18}, - {REG_PSTL2STRM, 19}, - {REG_PSTL3KEEP, 20}, - {REG_PSTL3STRM, 21}, +var prfopfield = map[SpecialOperand]uint32{ + SPOP_PLDL1KEEP: 0, + SPOP_PLDL1STRM: 1, + SPOP_PLDL2KEEP: 2, + SPOP_PLDL2STRM: 3, + SPOP_PLDL3KEEP: 4, + SPOP_PLDL3STRM: 5, + SPOP_PLIL1KEEP: 8, + SPOP_PLIL1STRM: 9, + SPOP_PLIL2KEEP: 10, + SPOP_PLIL2STRM: 11, + SPOP_PLIL3KEEP: 12, + SPOP_PLIL3STRM: 13, + SPOP_PSTL1KEEP: 16, + SPOP_PSTL1STRM: 17, + SPOP_PSTL2KEEP: 18, + SPOP_PSTL2STRM: 19, + SPOP_PSTL3KEEP: 20, + SPOP_PSTL3STRM: 21, } // Used for padinng NOOP instruction @@ -1676,8 +1672,6 @@ func rclass(r int16) int { return C_FREG case REG_V0 <= r && r <= REG_V31: return C_VREG - case COND_EQ <= r && r <= COND_NV: - return C_COND case r == REGSP: return C_RSP case r >= REG_ARNG && r < REG_ELEM: @@ -1953,8 +1947,14 @@ func (c *ctxt7) aclass(a *obj.Addr) int { case obj.TYPE_BRANCH: return C_SBRA - } + case obj.TYPE_SPECIAL: + opd := SpecialOperand(a.Offset) + if SPOP_EQ <= opd && opd <= SPOP_NV { + return C_COND + } + return C_SPOP + } return C_GOK } @@ -3526,12 +3526,11 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { case 18: /* csel cond,Rn,Rm,Rd; cinc/cinv/cneg cond,Rn,Rd; cset cond,Rd */ o1 = c.oprrr(p, p.As) - cond := int(p.From.Reg) - // AL and NV are not allowed for CINC/CINV/CNEG/CSET/CSETM instructions - if cond < COND_EQ || cond > COND_NV || (cond == COND_AL || cond == COND_NV) && p.From3Type() == obj.TYPE_NONE { + cond := SpecialOperand(p.From.Offset) + if cond < SPOP_EQ || cond > SPOP_NV || (cond == SPOP_AL || cond == SPOP_NV) && p.From3Type() == obj.TYPE_NONE { c.ctxt.Diag("invalid condition: %v", p) } else { - cond -= COND_EQ + cond -= SPOP_EQ } r := int(p.Reg) @@ -3554,11 +3553,11 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { case 19: /* CCMN cond, (Rm|uimm5),Rn, uimm4 -> ccmn Rn,Rm,uimm4,cond */ nzcv := int(p.To.Offset) - cond := int(p.From.Reg) - if cond < COND_EQ || cond > COND_NV { + cond := SpecialOperand(p.From.Offset) + if cond < SPOP_EQ || cond > SPOP_NV { c.ctxt.Diag("invalid condition\n%v", p) } else { - cond -= COND_EQ + cond -= SPOP_EQ } var rf int if p.GetFrom3().Type == obj.TYPE_REG { @@ -3919,10 +3918,16 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { o1 = c.opirr(p, AMSR) o1 |= uint32((p.From.Offset & 0xF) << 8) /* Crm */ v := uint32(0) - for i := 0; i < len(pstatefield); i++ { - if pstatefield[i].reg == p.To.Reg { - v = pstatefield[i].enc - break + // PSTATEfield can be special registers and special operands. + if p.To.Type == obj.TYPE_REG && p.To.Reg == REG_SPSel { + v = 0<<16 | 4<<12 | 5<<5 + } else if p.To.Type == obj.TYPE_SPECIAL { + opd := SpecialOperand(p.To.Offset) + for _, pf := range pstatefield { + if pf.opd == opd { + v = pf.enc + break + } } } @@ -4220,11 +4225,11 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { case 57: /* floating point conditional compare */ o1 = c.oprrr(p, p.As) - cond := int(p.From.Reg) - if cond < COND_EQ || cond > COND_NV { + cond := SpecialOperand(p.From.Offset) + if cond < SPOP_EQ || cond > SPOP_NV { c.ctxt.Diag("invalid condition\n%v", p) } else { - cond -= COND_EQ + cond -= SPOP_EQ } nzcv := int(p.To.Offset) @@ -4976,22 +4981,16 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { case 91: /* prfm imm(Rn), */ imm := uint32(p.From.Offset) r := p.From.Reg - v := uint32(0xff) + var v uint32 + var ok bool if p.To.Type == obj.TYPE_CONST { v = uint32(p.To.Offset) - if v > 31 { - c.ctxt.Diag("illegal prefetch operation\n%v", p) - } + ok = v <= 31 } else { - for i := 0; i < len(prfopfield); i++ { - if prfopfield[i].reg == p.To.Reg { - v = prfopfield[i].enc - break - } - } - if v == 0xff { - c.ctxt.Diag("illegal prefetch operation:\n%v", p) - } + v, ok = prfopfield[SpecialOperand(p.To.Offset)] + } + if !ok { + c.ctxt.Diag("illegal prefetch operation:\n%v", p) } o1 = c.opirr(p, p.As) diff --git a/src/cmd/internal/obj/arm64/list7.go b/src/cmd/internal/obj/arm64/list7.go index e63a4815f9..0187ad3341 100644 --- a/src/cmd/internal/obj/arm64/list7.go +++ b/src/cmd/internal/obj/arm64/list7.go @@ -59,6 +59,7 @@ func init() { obj.RegisterOpcode(obj.ABaseARM64, Anames) obj.RegisterRegisterList(obj.RegListARM64Lo, obj.RegListARM64Hi, rlconv) obj.RegisterOpSuffix("arm64", obj.CConvARM) + obj.RegisterSpecialOperands(int64(SPOP_BEGIN), int64(SPOP_END), SPCconv) } func arrange(a int) string { @@ -108,50 +109,8 @@ func rconv(r int) string { return fmt.Sprintf("F%d", r-REG_F0) case REG_V0 <= r && r <= REG_V31: return fmt.Sprintf("V%d", r-REG_V0) - case COND_EQ <= r && r <= COND_NV: - return strcond[r-COND_EQ] case r == REGSP: return "RSP" - case r == REG_DAIFSet: - return "DAIFSet" - case r == REG_DAIFClr: - return "DAIFClr" - case r == REG_PLDL1KEEP: - return "PLDL1KEEP" - case r == REG_PLDL1STRM: - return "PLDL1STRM" - case r == REG_PLDL2KEEP: - return "PLDL2KEEP" - case r == REG_PLDL2STRM: - return "PLDL2STRM" - case r == REG_PLDL3KEEP: - return "PLDL3KEEP" - case r == REG_PLDL3STRM: - return "PLDL3STRM" - case r == REG_PLIL1KEEP: - return "PLIL1KEEP" - case r == REG_PLIL1STRM: - return "PLIL1STRM" - case r == REG_PLIL2KEEP: - return "PLIL2KEEP" - case r == REG_PLIL2STRM: - return "PLIL2STRM" - case r == REG_PLIL3KEEP: - return "PLIL3KEEP" - case r == REG_PLIL3STRM: - return "PLIL3STRM" - case r == REG_PSTL1KEEP: - return "PSTL1KEEP" - case r == REG_PSTL1STRM: - return "PSTL1STRM" - case r == REG_PSTL2KEEP: - return "PSTL2KEEP" - case r == REG_PSTL2STRM: - return "PSTL2STRM" - case r == REG_PSTL3KEEP: - return "PSTL3KEEP" - case r == REG_PSTL3STRM: - return "PSTL3STRM" case REG_UXTB <= r && r < REG_UXTH: if ext != 0 { return fmt.Sprintf("%s.UXTB<<%d", regname(r), ext) @@ -223,6 +182,14 @@ func DRconv(a int) string { return "C_??" } +func SPCconv(a int64) string { + spc := SpecialOperand(a) + if spc >= SPOP_BEGIN && spc < SPOP_END { + return fmt.Sprintf("%s", spc) + } + return "SPC_??" +} + func rlconv(list int64) string { str := "" diff --git a/src/cmd/internal/obj/arm64/specialoperand_string.go b/src/cmd/internal/obj/arm64/specialoperand_string.go new file mode 100644 index 0000000000..eaaf109052 --- /dev/null +++ b/src/cmd/internal/obj/arm64/specialoperand_string.go @@ -0,0 +1,60 @@ +// Code generated by "stringer -type SpecialOperand -trimprefix SPOP_"; DO NOT EDIT. + +package arm64 + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[SPOP_PLDL1KEEP-0] + _ = x[SPOP_BEGIN-0] + _ = x[SPOP_PLDL1STRM-1] + _ = x[SPOP_PLDL2KEEP-2] + _ = x[SPOP_PLDL2STRM-3] + _ = x[SPOP_PLDL3KEEP-4] + _ = x[SPOP_PLDL3STRM-5] + _ = x[SPOP_PLIL1KEEP-6] + _ = x[SPOP_PLIL1STRM-7] + _ = x[SPOP_PLIL2KEEP-8] + _ = x[SPOP_PLIL2STRM-9] + _ = x[SPOP_PLIL3KEEP-10] + _ = x[SPOP_PLIL3STRM-11] + _ = x[SPOP_PSTL1KEEP-12] + _ = x[SPOP_PSTL1STRM-13] + _ = x[SPOP_PSTL2KEEP-14] + _ = x[SPOP_PSTL2STRM-15] + _ = x[SPOP_PSTL3KEEP-16] + _ = x[SPOP_PSTL3STRM-17] + _ = x[SPOP_DAIFSet-18] + _ = x[SPOP_DAIFClr-19] + _ = x[SPOP_EQ-20] + _ = x[SPOP_NE-21] + _ = x[SPOP_HS-22] + _ = x[SPOP_LO-23] + _ = x[SPOP_MI-24] + _ = x[SPOP_PL-25] + _ = x[SPOP_VS-26] + _ = x[SPOP_VC-27] + _ = x[SPOP_HI-28] + _ = x[SPOP_LS-29] + _ = x[SPOP_GE-30] + _ = x[SPOP_LT-31] + _ = x[SPOP_GT-32] + _ = x[SPOP_LE-33] + _ = x[SPOP_AL-34] + _ = x[SPOP_NV-35] + _ = x[SPOP_END-36] +} + +const _SpecialOperand_name = "PLDL1KEEPPLDL1STRMPLDL2KEEPPLDL2STRMPLDL3KEEPPLDL3STRMPLIL1KEEPPLIL1STRMPLIL2KEEPPLIL2STRMPLIL3KEEPPLIL3STRMPSTL1KEEPPSTL1STRMPSTL2KEEPPSTL2STRMPSTL3KEEPPSTL3STRMDAIFSetDAIFClrEQNEHSLOMIPLVSVCHILSGELTGTLEALNVEND" + +var _SpecialOperand_index = [...]uint8{0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126, 135, 144, 153, 162, 169, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 211} + +func (i SpecialOperand) String() string { + if i < 0 || i >= SpecialOperand(len(_SpecialOperand_index)-1) { + return "SpecialOperand(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _SpecialOperand_name[_SpecialOperand_index[i]:_SpecialOperand_index[i+1]] +} diff --git a/src/cmd/internal/obj/link.go b/src/cmd/internal/obj/link.go index e0a3138c38..a3eba73906 100644 --- a/src/cmd/internal/obj/link.go +++ b/src/cmd/internal/obj/link.go @@ -94,6 +94,12 @@ import ( // type = TYPE_SCONST // val = string // +// +// Special symbolic constants for ARM64, such as conditional flags, tlbi_op and so on. +// Encoding: +// type = TYPE_SPECIAL +// offset = The constant value corresponding to this symbol +// // // Any register: integer, floating point, control, segment, and so on. // If looking for specific register kind, must check type and reg value range. @@ -236,6 +242,7 @@ const ( TYPE_REGREG2 TYPE_INDIR TYPE_REGLIST + TYPE_SPECIAL ) func (a *Addr) Target() *Prog { diff --git a/src/cmd/internal/obj/pass.go b/src/cmd/internal/obj/pass.go index 01657dd4f6..b91a15da97 100644 --- a/src/cmd/internal/obj/pass.go +++ b/src/cmd/internal/obj/pass.go @@ -112,6 +112,11 @@ func checkaddr(ctxt *Link, p *Prog, a *Addr) { break } return + case TYPE_SPECIAL: + if a.Reg != 0 || a.Index != 0 || a.Scale != 0 || a.Name != 0 || a.Class != 0 || a.Sym != nil { + break + } + return } ctxt.Diag("invalid encoding for argument %v", p) diff --git a/src/cmd/internal/obj/util.go b/src/cmd/internal/obj/util.go index 0c9dde7965..4e1a2d19b6 100644 --- a/src/cmd/internal/obj/util.go +++ b/src/cmd/internal/obj/util.go @@ -363,6 +363,9 @@ func writeDconv(w io.Writer, p *Prog, a *Addr, abiDetail bool) { case TYPE_REGLIST: io.WriteString(w, RLconv(a.Offset)) + + case TYPE_SPECIAL: + io.WriteString(w, SPCconv(a.Offset)) } } @@ -575,6 +578,33 @@ func RLconv(list int64) string { return fmt.Sprintf("RL???%d", list) } +// Special operands +type spcSet struct { + lo int64 + hi int64 + SPCconv func(int64) string +} + +var spcSpace []spcSet + +// RegisterSpecialOperands binds a pretty-printer (SPCconv) for special +// operand numbers to a given special operand number range. Lo is inclusive, +// hi is exclusive (valid special operands are lo through hi-1). +func RegisterSpecialOperands(lo, hi int64, rlconv func(int64) string) { + spcSpace = append(spcSpace, spcSet{lo, hi, rlconv}) +} + +// SPCconv returns the string representation of the special operand spc. +func SPCconv(spc int64) string { + for i := range spcSpace { + spcs := &spcSpace[i] + if spcs.lo <= spc && spc < spcs.hi { + return spcs.SPCconv(spc) + } + } + return fmt.Sprintf("SPC???%d", spc) +} + type opSet struct { lo As names []string From 9d6c711e3c7f16fd4dd2e812d855e881c6692f3e Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 29 Mar 2022 15:55:27 -0700 Subject: [PATCH 081/125] runtime: use correct parameter name in comment Change-Id: If8713aca9d6b1f1c218e85f09c9ee016833b3faa Reviewed-on: https://go-review.googlesource.com/c/go/+/396515 Trust: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Emmanuel Odeke --- src/runtime/mbarrier.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/mbarrier.go b/src/runtime/mbarrier.go index 465c21f83f..a0d145ec76 100644 --- a/src/runtime/mbarrier.go +++ b/src/runtime/mbarrier.go @@ -147,7 +147,7 @@ import ( // remove the deletion barrier, we'll have to work out a new way to // handle the profile logging. -// typedmemmove copies a value of type t to dst from src. +// typedmemmove copies a value of type typ to dst from src. // Must be nosplit, see #16026. // // TODO: Perfect for go:nosplitrec since we can't have a safe point From 029d2c4524e729dbd913475ca4a5138bb6c5e099 Mon Sep 17 00:00:00 2001 From: Andrew Gerrand Date: Wed, 30 Mar 2022 10:37:07 +1100 Subject: [PATCH 082/125] flag: recover panic when calling String on zero value in PrintDefaults When printing the usage message, recover panics when calling String methods on reflect-constructed flag.Value zero values. Collect the panic messages and include them at the end of the PrintDefaults output so that the programmer knows to fix the panic. Fixes #28667 Change-Id: Ic4378a5813a2e26f063d5580d678add65ece8f97 Reviewed-on: https://go-review.googlesource.com/c/go/+/396574 Run-TryBot: Andrew Gerrand TryBot-Result: Gopher Robot Reviewed-by: Rob Pike Reviewed-by: Ian Lance Taylor Auto-Submit: Ian Lance Taylor Trust: Andrew Gerrand --- src/flag/flag.go | 31 ++++++++++++++++++++++++++++--- src/flag/flag_test.go | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 4 deletions(-) diff --git a/src/flag/flag.go b/src/flag/flag.go index cdea949a2f..15bcb6cea9 100644 --- a/src/flag/flag.go +++ b/src/flag/flag.go @@ -488,7 +488,7 @@ func Set(name, value string) error { // isZeroValue determines whether the string represents the zero // value for a flag. -func isZeroValue(flag *Flag, value string) bool { +func isZeroValue(flag *Flag, value string) (ok bool, err error) { // Build a zero value of the flag's Value type, and see if the // result of calling its String method equals the value passed in. // This works unless the Value type is itself an interface type. @@ -499,7 +499,18 @@ func isZeroValue(flag *Flag, value string) bool { } else { z = reflect.Zero(typ) } - return value == z.Interface().(Value).String() + // Catch panics calling the String method, which shouldn't prevent the + // usage message from being printed, but that we should report to the + // user so that they know to fix their code. + defer func() { + if e := recover(); e != nil { + if typ.Kind() == reflect.Pointer { + typ = typ.Elem() + } + err = fmt.Errorf("panic calling String method on zero %v for flag %s: %v", typ, flag.Name, e) + } + }() + return value == z.Interface().(Value).String(), nil } // UnquoteUsage extracts a back-quoted name from the usage @@ -545,6 +556,7 @@ func UnquoteUsage(flag *Flag) (name string, usage string) { // default values of all defined command-line flags in the set. See the // documentation for the global function PrintDefaults for more information. func (f *FlagSet) PrintDefaults() { + var isZeroValueErrs []error f.VisitAll(func(flag *Flag) { var b strings.Builder fmt.Fprintf(&b, " -%s", flag.Name) // Two spaces before -; see next two comments. @@ -564,7 +576,11 @@ func (f *FlagSet) PrintDefaults() { } b.WriteString(strings.ReplaceAll(usage, "\n", "\n \t")) - if !isZeroValue(flag, flag.DefValue) { + // Print the default value only if it differs to the zero value + // for this flag type. + if isZero, err := isZeroValue(flag, flag.DefValue); err != nil { + isZeroValueErrs = append(isZeroValueErrs, err) + } else if !isZero { if _, ok := flag.Value.(*stringValue); ok { // put quotes on the value fmt.Fprintf(&b, " (default %q)", flag.DefValue) @@ -574,6 +590,15 @@ func (f *FlagSet) PrintDefaults() { } fmt.Fprint(f.Output(), b.String(), "\n") }) + // If calling String on any zero flag.Values triggered a panic, print + // the messages after the full set of defaults so that the programmer + // knows to fix the panic. + if errs := isZeroValueErrs; len(errs) > 0 { + fmt.Fprintln(f.Output()) + for _, err := range errs { + fmt.Fprintln(f.Output(), err) + } + } } // PrintDefaults prints, to standard error unless configured otherwise, diff --git a/src/flag/flag_test.go b/src/flag/flag_test.go index d5c443d3c6..ca6ba5d149 100644 --- a/src/flag/flag_test.go +++ b/src/flag/flag_test.go @@ -432,6 +432,25 @@ func TestHelp(t *testing.T) { } } +// zeroPanicker is a flag.Value whose String method panics if its dontPanic +// field is false. +type zeroPanicker struct { + dontPanic bool + v string +} + +func (f *zeroPanicker) Set(s string) error { + f.v = s + return nil +} + +func (f *zeroPanicker) String() string { + if !f.dontPanic { + panic("panic!") + } + return f.v +} + const defaultOutput = ` -A for bootstrapping, allow 'any' type -Alongflagname disable bounds checking @@ -452,10 +471,19 @@ const defaultOutput = ` -A for bootstrapping, allow 'any' type a non-zero int (default 27) -O a flag multiline help string (default true) + -V list + a list of strings (default [a b]) -Z int an int that defaults to zero + -ZP0 value + a flag whose String method panics when it is zero + -ZP1 value + a flag whose String method panics when it is zero -maxT timeout set timeout for dial + +panic calling String method on zero flag_test.zeroPanicker for flag ZP0: panic! +panic calling String method on zero flag_test.zeroPanicker for flag ZP1: panic! ` func TestPrintDefaults(t *testing.T) { @@ -472,12 +500,15 @@ func TestPrintDefaults(t *testing.T) { fs.String("M", "", "a multiline\nhelp\nstring") fs.Int("N", 27, "a non-zero int") fs.Bool("O", true, "a flag\nmultiline help string") + fs.Var(&flagVar{"a", "b"}, "V", "a `list` of strings") fs.Int("Z", 0, "an int that defaults to zero") + fs.Var(&zeroPanicker{true, ""}, "ZP0", "a flag whose String method panics when it is zero") + fs.Var(&zeroPanicker{true, "something"}, "ZP1", "a flag whose String method panics when it is zero") fs.Duration("maxT", 0, "set `timeout` for dial") fs.PrintDefaults() got := buf.String() if got != defaultOutput { - t.Errorf("got %q want %q\n", got, defaultOutput) + t.Errorf("got:\n%q\nwant:\n%q", got, defaultOutput) } } From 26ab2159694b19ef5feb56f4fe7a9cd18360dcdd Mon Sep 17 00:00:00 2001 From: erifan01 Date: Wed, 12 Aug 2020 17:41:54 +0800 Subject: [PATCH 083/125] cmd/asm: add TLBI instruction on arm64 There was only a placeholder for TLBI instruction in the previous code. gVisor needs this instruction. This CL completes its support. This patch is a copy of CL 250758, contributed by Junchen Li(junchen.li@arm.com). Co-authored-by: Junchen Li(junchen.li@arm.com) Change-Id: I69e893d2c1f75e227475de9e677548e14870f3cd Reviewed-on: https://go-review.googlesource.com/c/go/+/302850 Reviewed-by: Cherry Mui Trust: Eric Fang Run-TryBot: Eric Fang TryBot-Result: Gopher Robot --- src/cmd/asm/internal/asm/testdata/arm64.s | 80 ++++++++++++ src/cmd/asm/internal/asm/testdata/arm64enc.s | 2 +- .../asm/internal/asm/testdata/arm64error.s | 5 + src/cmd/internal/obj/arm64/a.out.go | 80 ++++++++++++ src/cmd/internal/obj/arm64/asm7.go | 121 +++++++++++++++++- .../obj/arm64/specialoperand_string.go | 120 ++++++++++++++--- 6 files changed, 383 insertions(+), 25 deletions(-) diff --git a/src/cmd/asm/internal/asm/testdata/arm64.s b/src/cmd/asm/internal/asm/testdata/arm64.s index 1413bdf476..7866cf1db0 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64.s +++ b/src/cmd/asm/internal/asm/testdata/arm64.s @@ -1630,4 +1630,84 @@ again: MSR R17, ZCR_EL1 // 111218d5 SYS $32768, R1 // 018008d5 SYS $32768 // 1f8008d5 + +// TLBI instruction + TLBI VMALLE1IS // 1f8308d5 + TLBI VMALLE1 // 1f8708d5 + TLBI ALLE2IS // 1f830cd5 + TLBI ALLE1IS // 9f830cd5 + TLBI VMALLS12E1IS // df830cd5 + TLBI ALLE2 // 1f870cd5 + TLBI ALLE1 // 9f870cd5 + TLBI VMALLS12E1 // df870cd5 + TLBI ALLE3IS // 1f830ed5 + TLBI ALLE3 // 1f870ed5 + TLBI VMALLE1OS // 1f8108d5 + TLBI ALLE2OS // 1f810cd5 + TLBI ALLE1OS // 9f810cd5 + TLBI VMALLS12E1OS // df810cd5 + TLBI ALLE3OS // 1f810ed5 + TLBI VAE1IS, R0 // 208308d5 + TLBI ASIDE1IS, R1 // 418308d5 + TLBI VAAE1IS, R2 // 628308d5 + TLBI VALE1IS, R3 // a38308d5 + TLBI VAALE1IS, R4 // e48308d5 + TLBI VAE1, R5 // 258708d5 + TLBI ASIDE1, R6 // 468708d5 + TLBI VAAE1, R7 // 678708d5 + TLBI VALE1, R8 // a88708d5 + TLBI VAALE1, R9 // e98708d5 + TLBI IPAS2E1IS, R10 // 2a800cd5 + TLBI IPAS2LE1IS, R11 // ab800cd5 + TLBI VAE2IS, R12 // 2c830cd5 + TLBI VALE2IS, R13 // ad830cd5 + TLBI IPAS2E1, R14 // 2e840cd5 + TLBI IPAS2LE1, R15 // af840cd5 + TLBI VAE2, R16 // 30870cd5 + TLBI VALE2, R17 // b1870cd5 + TLBI VAE3IS, ZR // 3f830ed5 + TLBI VALE3IS, R19 // b3830ed5 + TLBI VAE3, R20 // 34870ed5 + TLBI VALE3, R21 // b5870ed5 + TLBI VAE1OS, R22 // 368108d5 + TLBI ASIDE1OS, R23 // 578108d5 + TLBI VAAE1OS, R24 // 788108d5 + TLBI VALE1OS, R25 // b98108d5 + TLBI VAALE1OS, R26 // fa8108d5 + TLBI RVAE1IS, R27 // 3b8208d5 + TLBI RVAAE1IS, ZR // 7f8208d5 + TLBI RVALE1IS, R29 // bd8208d5 + TLBI RVAALE1IS, R30 // fe8208d5 + TLBI RVAE1OS, ZR // 3f8508d5 + TLBI RVAAE1OS, R0 // 608508d5 + TLBI RVALE1OS, R1 // a18508d5 + TLBI RVAALE1OS, R2 // e28508d5 + TLBI RVAE1, R3 // 238608d5 + TLBI RVAAE1, R4 // 648608d5 + TLBI RVALE1, R5 // a58608d5 + TLBI RVAALE1, R6 // e68608d5 + TLBI RIPAS2E1IS, R7 // 47800cd5 + TLBI RIPAS2LE1IS, R8 // c8800cd5 + TLBI VAE2OS, R9 // 29810cd5 + TLBI VALE2OS, R10 // aa810cd5 + TLBI RVAE2IS, R11 // 2b820cd5 + TLBI RVALE2IS, R12 // ac820cd5 + TLBI IPAS2E1OS, R13 // 0d840cd5 + TLBI RIPAS2E1, R14 // 4e840cd5 + TLBI RIPAS2E1OS, R15 // 6f840cd5 + TLBI IPAS2LE1OS, R16 // 90840cd5 + TLBI RIPAS2LE1, R17 // d1840cd5 + TLBI RIPAS2LE1OS, ZR // ff840cd5 + TLBI RVAE2OS, R19 // 33850cd5 + TLBI RVALE2OS, R20 // b4850cd5 + TLBI RVAE2, R21 // 35860cd5 + TLBI RVALE2, R22 // b6860cd5 + TLBI VAE3OS, R23 // 37810ed5 + TLBI VALE3OS, R24 // b8810ed5 + TLBI RVAE3IS, R25 // 39820ed5 + TLBI RVALE3IS, R26 // ba820ed5 + TLBI RVAE3OS, R27 // 3b850ed5 + TLBI RVALE3OS, ZR // bf850ed5 + TLBI RVAE3, R29 // 3d860ed5 + TLBI RVALE3, R30 // be860ed5 END diff --git a/src/cmd/asm/internal/asm/testdata/arm64enc.s b/src/cmd/asm/internal/asm/testdata/arm64enc.s index a29862822d..f08e953c98 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64enc.s +++ b/src/cmd/asm/internal/asm/testdata/arm64enc.s @@ -397,7 +397,7 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 SXTH R17, R25 // 393e4093 SXTW R0, R27 // 1b7c4093 SYSL $285440, R12 // 0c5b2cd5 - //TODO TLBI + TLBI VAE1IS, R1 // 218308d5 TSTW $0x80000007, R9 // TSTW $2147483655, R9 // 3f0d0172 TST $0xfffffff0, LR // TST $4294967280, R30 // df6f7cf2 TSTW R10@>21, R2 // 5f54ca6a diff --git a/src/cmd/asm/internal/asm/testdata/arm64error.s b/src/cmd/asm/internal/asm/testdata/arm64error.s index 033c4cda6c..a41f180bb6 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64error.s +++ b/src/cmd/asm/internal/asm/testdata/arm64error.s @@ -432,4 +432,9 @@ TEXT errors(SB),$0 STP (R26, R27), 700(R2) // ERROR "cannot use REGTMP as source" MOVK $0, R10 // ERROR "zero shifts cannot be handled correctly" MOVK $(0<<32), R10 // ERROR "zero shifts cannot be handled correctly" + TLBI PLDL1KEEP // ERROR "illegal argument" + TLBI VMALLE1IS, R0 // ERROR "extraneous register at operand 2" + TLBI ALLE3OS, ZR // ERROR "extraneous register at operand 2" + TLBI VAE1IS // ERROR "missing register at operand 2" + TLBI RVALE3 // ERROR "missing register at operand 2" RET diff --git a/src/cmd/internal/obj/arm64/a.out.go b/src/cmd/internal/obj/arm64/a.out.go index 489651bad2..c34b00db70 100644 --- a/src/cmd/internal/obj/arm64/a.out.go +++ b/src/cmd/internal/obj/arm64/a.out.go @@ -1074,6 +1074,86 @@ const ( SPOP_PSTL3KEEP SPOP_PSTL3STRM + // TLBI + SPOP_VMALLE1IS + SPOP_VAE1IS + SPOP_ASIDE1IS + SPOP_VAAE1IS + SPOP_VALE1IS + SPOP_VAALE1IS + SPOP_VMALLE1 + SPOP_VAE1 + SPOP_ASIDE1 + SPOP_VAAE1 + SPOP_VALE1 + SPOP_VAALE1 + SPOP_IPAS2E1IS + SPOP_IPAS2LE1IS + SPOP_ALLE2IS + SPOP_VAE2IS + SPOP_ALLE1IS + SPOP_VALE2IS + SPOP_VMALLS12E1IS + SPOP_IPAS2E1 + SPOP_IPAS2LE1 + SPOP_ALLE2 + SPOP_VAE2 + SPOP_ALLE1 + SPOP_VALE2 + SPOP_VMALLS12E1 + SPOP_ALLE3IS + SPOP_VAE3IS + SPOP_VALE3IS + SPOP_ALLE3 + SPOP_VAE3 + SPOP_VALE3 + SPOP_VMALLE1OS + SPOP_VAE1OS + SPOP_ASIDE1OS + SPOP_VAAE1OS + SPOP_VALE1OS + SPOP_VAALE1OS + SPOP_RVAE1IS + SPOP_RVAAE1IS + SPOP_RVALE1IS + SPOP_RVAALE1IS + SPOP_RVAE1OS + SPOP_RVAAE1OS + SPOP_RVALE1OS + SPOP_RVAALE1OS + SPOP_RVAE1 + SPOP_RVAAE1 + SPOP_RVALE1 + SPOP_RVAALE1 + SPOP_RIPAS2E1IS + SPOP_RIPAS2LE1IS + SPOP_ALLE2OS + SPOP_VAE2OS + SPOP_ALLE1OS + SPOP_VALE2OS + SPOP_VMALLS12E1OS + SPOP_RVAE2IS + SPOP_RVALE2IS + SPOP_IPAS2E1OS + SPOP_RIPAS2E1 + SPOP_RIPAS2E1OS + SPOP_IPAS2LE1OS + SPOP_RIPAS2LE1 + SPOP_RIPAS2LE1OS + SPOP_RVAE2OS + SPOP_RVALE2OS + SPOP_RVAE2 + SPOP_RVALE2 + SPOP_ALLE3OS + SPOP_VAE3OS + SPOP_VALE3OS + SPOP_RVAE3IS + SPOP_RVALE3IS + SPOP_RVAE3OS + SPOP_RVALE3OS + SPOP_RVAE3 + SPOP_RVALE3 + // PSTATE fields SPOP_DAIFSet SPOP_DAIFClr diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go index 6081b52c8a..7e1ae15513 100644 --- a/src/cmd/internal/obj/arm64/asm7.go +++ b/src/cmd/internal/obj/arm64/asm7.go @@ -846,6 +846,8 @@ var optab = []Optab{ {ASYS, C_VCON, C_NONE, C_NONE, C_NONE, 50, 4, 0, 0, 0}, {ASYS, C_VCON, C_NONE, C_NONE, C_REG, 50, 4, 0, 0, 0}, {ASYSL, C_VCON, C_NONE, C_NONE, C_REG, 50, 4, 0, 0, 0}, + {ATLBI, C_SPOP, C_NONE, C_NONE, C_NONE, 107, 4, 0, 0, 0}, + {ATLBI, C_SPOP, C_NONE, C_NONE, C_REG, 107, 4, 0, 0, 0}, /* encryption instructions */ {AAESD, C_VREG, C_NONE, C_NONE, C_VREG, 29, 4, 0, 0, 0}, // for compatibility with old code @@ -905,6 +907,99 @@ var prfopfield = map[SpecialOperand]uint32{ SPOP_PSTL3STRM: 21, } +// sysInstFields helps convert SYS alias instructions to SYS instructions. +// For example, the format of TLBI is: TLBI {, }. +// It's equivalent to: SYS #, C8, , #{, }. +// The field hasOperand2 indicates whether Xt is required. It helps to check +// some combinations that may be undefined, such as TLBI VMALLE1IS, R0. +var sysInstFields = map[SpecialOperand]struct { + op1 uint8 + cn uint8 + cm uint8 + op2 uint8 + hasOperand2 bool +}{ + // TLBI + SPOP_VMALLE1IS: {0, 8, 3, 0, false}, + SPOP_VAE1IS: {0, 8, 3, 1, true}, + SPOP_ASIDE1IS: {0, 8, 3, 2, true}, + SPOP_VAAE1IS: {0, 8, 3, 3, true}, + SPOP_VALE1IS: {0, 8, 3, 5, true}, + SPOP_VAALE1IS: {0, 8, 3, 7, true}, + SPOP_VMALLE1: {0, 8, 7, 0, false}, + SPOP_VAE1: {0, 8, 7, 1, true}, + SPOP_ASIDE1: {0, 8, 7, 2, true}, + SPOP_VAAE1: {0, 8, 7, 3, true}, + SPOP_VALE1: {0, 8, 7, 5, true}, + SPOP_VAALE1: {0, 8, 7, 7, true}, + SPOP_IPAS2E1IS: {4, 8, 0, 1, true}, + SPOP_IPAS2LE1IS: {4, 8, 0, 5, true}, + SPOP_ALLE2IS: {4, 8, 3, 0, false}, + SPOP_VAE2IS: {4, 8, 3, 1, true}, + SPOP_ALLE1IS: {4, 8, 3, 4, false}, + SPOP_VALE2IS: {4, 8, 3, 5, true}, + SPOP_VMALLS12E1IS: {4, 8, 3, 6, false}, + SPOP_IPAS2E1: {4, 8, 4, 1, true}, + SPOP_IPAS2LE1: {4, 8, 4, 5, true}, + SPOP_ALLE2: {4, 8, 7, 0, false}, + SPOP_VAE2: {4, 8, 7, 1, true}, + SPOP_ALLE1: {4, 8, 7, 4, false}, + SPOP_VALE2: {4, 8, 7, 5, true}, + SPOP_VMALLS12E1: {4, 8, 7, 6, false}, + SPOP_ALLE3IS: {6, 8, 3, 0, false}, + SPOP_VAE3IS: {6, 8, 3, 1, true}, + SPOP_VALE3IS: {6, 8, 3, 5, true}, + SPOP_ALLE3: {6, 8, 7, 0, false}, + SPOP_VAE3: {6, 8, 7, 1, true}, + SPOP_VALE3: {6, 8, 7, 5, true}, + SPOP_VMALLE1OS: {0, 8, 1, 0, false}, + SPOP_VAE1OS: {0, 8, 1, 1, true}, + SPOP_ASIDE1OS: {0, 8, 1, 2, true}, + SPOP_VAAE1OS: {0, 8, 1, 3, true}, + SPOP_VALE1OS: {0, 8, 1, 5, true}, + SPOP_VAALE1OS: {0, 8, 1, 7, true}, + SPOP_RVAE1IS: {0, 8, 2, 1, true}, + SPOP_RVAAE1IS: {0, 8, 2, 3, true}, + SPOP_RVALE1IS: {0, 8, 2, 5, true}, + SPOP_RVAALE1IS: {0, 8, 2, 7, true}, + SPOP_RVAE1OS: {0, 8, 5, 1, true}, + SPOP_RVAAE1OS: {0, 8, 5, 3, true}, + SPOP_RVALE1OS: {0, 8, 5, 5, true}, + SPOP_RVAALE1OS: {0, 8, 5, 7, true}, + SPOP_RVAE1: {0, 8, 6, 1, true}, + SPOP_RVAAE1: {0, 8, 6, 3, true}, + SPOP_RVALE1: {0, 8, 6, 5, true}, + SPOP_RVAALE1: {0, 8, 6, 7, true}, + SPOP_RIPAS2E1IS: {4, 8, 0, 2, true}, + SPOP_RIPAS2LE1IS: {4, 8, 0, 6, true}, + SPOP_ALLE2OS: {4, 8, 1, 0, false}, + SPOP_VAE2OS: {4, 8, 1, 1, true}, + SPOP_ALLE1OS: {4, 8, 1, 4, false}, + SPOP_VALE2OS: {4, 8, 1, 5, true}, + SPOP_VMALLS12E1OS: {4, 8, 1, 6, false}, + SPOP_RVAE2IS: {4, 8, 2, 1, true}, + SPOP_RVALE2IS: {4, 8, 2, 5, true}, + SPOP_IPAS2E1OS: {4, 8, 4, 0, true}, + SPOP_RIPAS2E1: {4, 8, 4, 2, true}, + SPOP_RIPAS2E1OS: {4, 8, 4, 3, true}, + SPOP_IPAS2LE1OS: {4, 8, 4, 4, true}, + SPOP_RIPAS2LE1: {4, 8, 4, 6, true}, + SPOP_RIPAS2LE1OS: {4, 8, 4, 7, true}, + SPOP_RVAE2OS: {4, 8, 5, 1, true}, + SPOP_RVALE2OS: {4, 8, 5, 5, true}, + SPOP_RVAE2: {4, 8, 6, 1, true}, + SPOP_RVALE2: {4, 8, 6, 5, true}, + SPOP_ALLE3OS: {6, 8, 1, 0, false}, + SPOP_VAE3OS: {6, 8, 1, 1, true}, + SPOP_VALE3OS: {6, 8, 1, 5, true}, + SPOP_RVAE3IS: {6, 8, 2, 1, true}, + SPOP_RVALE3IS: {6, 8, 2, 5, true}, + SPOP_RVAE3OS: {6, 8, 5, 1, true}, + SPOP_RVALE3OS: {6, 8, 5, 5, true}, + SPOP_RVAE3: {6, 8, 6, 1, true}, + SPOP_RVALE3: {6, 8, 6, 5, true}, +} + // Used for padinng NOOP instruction const OP_NOOP = 0xd503201f @@ -2870,7 +2965,9 @@ func buildop(ctxt *obj.Link) { oprangeset(AAT, t) oprangeset(ADC, t) oprangeset(AIC, t) - oprangeset(ATLBI, t) + + case ATLBI: + break case ASYSL, AHINT: break @@ -4138,8 +4235,6 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { o1 |= uint32(p.From.Offset) if p.To.Type == obj.TYPE_REG { o1 |= uint32(p.To.Reg & 31) - } else if p.Reg != 0 { - o1 |= uint32(p.Reg & 31) } else { o1 |= 0x1F } @@ -5513,6 +5608,26 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { c.ctxt.Diag("illegal destination register: %v\n", p) } o1 |= enc | uint32(rs&31)<<16 | uint32(rb&31)<<5 | uint32(rt&31) + + case 107: /* tlbi */ + op, ok := sysInstFields[SpecialOperand(p.From.Offset)] + if !ok || (p.As == ATLBI && op.cn != 8) { + c.ctxt.Diag("illegal argument: %v\n", p) + break + } + o1 = c.opirr(p, p.As) + if op.hasOperand2 { + if p.To.Reg == 0 { + c.ctxt.Diag("missing register at operand 2: %v\n", p) + } + o1 |= uint32(p.To.Reg & 0x1F) + } else { + if p.To.Reg != 0 || p.Reg != 0 { + c.ctxt.Diag("extraneous register at operand 2: %v\n", p) + } + o1 |= uint32(0x1F) + } + o1 |= uint32(SYSARG4(int(op.op1), int(op.cn), int(op.cm), int(op.op2))) } out[0] = o1 out[1] = o2 diff --git a/src/cmd/internal/obj/arm64/specialoperand_string.go b/src/cmd/internal/obj/arm64/specialoperand_string.go index eaaf109052..0818649c93 100644 --- a/src/cmd/internal/obj/arm64/specialoperand_string.go +++ b/src/cmd/internal/obj/arm64/specialoperand_string.go @@ -27,30 +27,108 @@ func _() { _ = x[SPOP_PSTL2STRM-15] _ = x[SPOP_PSTL3KEEP-16] _ = x[SPOP_PSTL3STRM-17] - _ = x[SPOP_DAIFSet-18] - _ = x[SPOP_DAIFClr-19] - _ = x[SPOP_EQ-20] - _ = x[SPOP_NE-21] - _ = x[SPOP_HS-22] - _ = x[SPOP_LO-23] - _ = x[SPOP_MI-24] - _ = x[SPOP_PL-25] - _ = x[SPOP_VS-26] - _ = x[SPOP_VC-27] - _ = x[SPOP_HI-28] - _ = x[SPOP_LS-29] - _ = x[SPOP_GE-30] - _ = x[SPOP_LT-31] - _ = x[SPOP_GT-32] - _ = x[SPOP_LE-33] - _ = x[SPOP_AL-34] - _ = x[SPOP_NV-35] - _ = x[SPOP_END-36] + _ = x[SPOP_VMALLE1IS-18] + _ = x[SPOP_VAE1IS-19] + _ = x[SPOP_ASIDE1IS-20] + _ = x[SPOP_VAAE1IS-21] + _ = x[SPOP_VALE1IS-22] + _ = x[SPOP_VAALE1IS-23] + _ = x[SPOP_VMALLE1-24] + _ = x[SPOP_VAE1-25] + _ = x[SPOP_ASIDE1-26] + _ = x[SPOP_VAAE1-27] + _ = x[SPOP_VALE1-28] + _ = x[SPOP_VAALE1-29] + _ = x[SPOP_IPAS2E1IS-30] + _ = x[SPOP_IPAS2LE1IS-31] + _ = x[SPOP_ALLE2IS-32] + _ = x[SPOP_VAE2IS-33] + _ = x[SPOP_ALLE1IS-34] + _ = x[SPOP_VALE2IS-35] + _ = x[SPOP_VMALLS12E1IS-36] + _ = x[SPOP_IPAS2E1-37] + _ = x[SPOP_IPAS2LE1-38] + _ = x[SPOP_ALLE2-39] + _ = x[SPOP_VAE2-40] + _ = x[SPOP_ALLE1-41] + _ = x[SPOP_VALE2-42] + _ = x[SPOP_VMALLS12E1-43] + _ = x[SPOP_ALLE3IS-44] + _ = x[SPOP_VAE3IS-45] + _ = x[SPOP_VALE3IS-46] + _ = x[SPOP_ALLE3-47] + _ = x[SPOP_VAE3-48] + _ = x[SPOP_VALE3-49] + _ = x[SPOP_VMALLE1OS-50] + _ = x[SPOP_VAE1OS-51] + _ = x[SPOP_ASIDE1OS-52] + _ = x[SPOP_VAAE1OS-53] + _ = x[SPOP_VALE1OS-54] + _ = x[SPOP_VAALE1OS-55] + _ = x[SPOP_RVAE1IS-56] + _ = x[SPOP_RVAAE1IS-57] + _ = x[SPOP_RVALE1IS-58] + _ = x[SPOP_RVAALE1IS-59] + _ = x[SPOP_RVAE1OS-60] + _ = x[SPOP_RVAAE1OS-61] + _ = x[SPOP_RVALE1OS-62] + _ = x[SPOP_RVAALE1OS-63] + _ = x[SPOP_RVAE1-64] + _ = x[SPOP_RVAAE1-65] + _ = x[SPOP_RVALE1-66] + _ = x[SPOP_RVAALE1-67] + _ = x[SPOP_RIPAS2E1IS-68] + _ = x[SPOP_RIPAS2LE1IS-69] + _ = x[SPOP_ALLE2OS-70] + _ = x[SPOP_VAE2OS-71] + _ = x[SPOP_ALLE1OS-72] + _ = x[SPOP_VALE2OS-73] + _ = x[SPOP_VMALLS12E1OS-74] + _ = x[SPOP_RVAE2IS-75] + _ = x[SPOP_RVALE2IS-76] + _ = x[SPOP_IPAS2E1OS-77] + _ = x[SPOP_RIPAS2E1-78] + _ = x[SPOP_RIPAS2E1OS-79] + _ = x[SPOP_IPAS2LE1OS-80] + _ = x[SPOP_RIPAS2LE1-81] + _ = x[SPOP_RIPAS2LE1OS-82] + _ = x[SPOP_RVAE2OS-83] + _ = x[SPOP_RVALE2OS-84] + _ = x[SPOP_RVAE2-85] + _ = x[SPOP_RVALE2-86] + _ = x[SPOP_ALLE3OS-87] + _ = x[SPOP_VAE3OS-88] + _ = x[SPOP_VALE3OS-89] + _ = x[SPOP_RVAE3IS-90] + _ = x[SPOP_RVALE3IS-91] + _ = x[SPOP_RVAE3OS-92] + _ = x[SPOP_RVALE3OS-93] + _ = x[SPOP_RVAE3-94] + _ = x[SPOP_RVALE3-95] + _ = x[SPOP_DAIFSet-96] + _ = x[SPOP_DAIFClr-97] + _ = x[SPOP_EQ-98] + _ = x[SPOP_NE-99] + _ = x[SPOP_HS-100] + _ = x[SPOP_LO-101] + _ = x[SPOP_MI-102] + _ = x[SPOP_PL-103] + _ = x[SPOP_VS-104] + _ = x[SPOP_VC-105] + _ = x[SPOP_HI-106] + _ = x[SPOP_LS-107] + _ = x[SPOP_GE-108] + _ = x[SPOP_LT-109] + _ = x[SPOP_GT-110] + _ = x[SPOP_LE-111] + _ = x[SPOP_AL-112] + _ = x[SPOP_NV-113] + _ = x[SPOP_END-114] } -const _SpecialOperand_name = "PLDL1KEEPPLDL1STRMPLDL2KEEPPLDL2STRMPLDL3KEEPPLDL3STRMPLIL1KEEPPLIL1STRMPLIL2KEEPPLIL2STRMPLIL3KEEPPLIL3STRMPSTL1KEEPPSTL1STRMPSTL2KEEPPSTL2STRMPSTL3KEEPPSTL3STRMDAIFSetDAIFClrEQNEHSLOMIPLVSVCHILSGELTGTLEALNVEND" +const _SpecialOperand_name = "PLDL1KEEPPLDL1STRMPLDL2KEEPPLDL2STRMPLDL3KEEPPLDL3STRMPLIL1KEEPPLIL1STRMPLIL2KEEPPLIL2STRMPLIL3KEEPPLIL3STRMPSTL1KEEPPSTL1STRMPSTL2KEEPPSTL2STRMPSTL3KEEPPSTL3STRMVMALLE1ISVAE1ISASIDE1ISVAAE1ISVALE1ISVAALE1ISVMALLE1VAE1ASIDE1VAAE1VALE1VAALE1IPAS2E1ISIPAS2LE1ISALLE2ISVAE2ISALLE1ISVALE2ISVMALLS12E1ISIPAS2E1IPAS2LE1ALLE2VAE2ALLE1VALE2VMALLS12E1ALLE3ISVAE3ISVALE3ISALLE3VAE3VALE3VMALLE1OSVAE1OSASIDE1OSVAAE1OSVALE1OSVAALE1OSRVAE1ISRVAAE1ISRVALE1ISRVAALE1ISRVAE1OSRVAAE1OSRVALE1OSRVAALE1OSRVAE1RVAAE1RVALE1RVAALE1RIPAS2E1ISRIPAS2LE1ISALLE2OSVAE2OSALLE1OSVALE2OSVMALLS12E1OSRVAE2ISRVALE2ISIPAS2E1OSRIPAS2E1RIPAS2E1OSIPAS2LE1OSRIPAS2LE1RIPAS2LE1OSRVAE2OSRVALE2OSRVAE2RVALE2ALLE3OSVAE3OSVALE3OSRVAE3ISRVALE3ISRVAE3OSRVALE3OSRVAE3RVALE3DAIFSetDAIFClrEQNEHSLOMIPLVSVCHILSGELTGTLEALNVEND" -var _SpecialOperand_index = [...]uint8{0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126, 135, 144, 153, 162, 169, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 211} +var _SpecialOperand_index = [...]uint16{0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126, 135, 144, 153, 162, 171, 177, 185, 192, 199, 207, 214, 218, 224, 229, 234, 240, 249, 259, 266, 272, 279, 286, 298, 305, 313, 318, 322, 327, 332, 342, 349, 355, 362, 367, 371, 376, 385, 391, 399, 406, 413, 421, 428, 436, 444, 453, 460, 468, 476, 485, 490, 496, 502, 509, 519, 530, 537, 543, 550, 557, 569, 576, 584, 593, 601, 611, 621, 630, 641, 648, 656, 661, 667, 674, 680, 687, 694, 702, 709, 717, 722, 728, 735, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 777} func (i SpecialOperand) String() string { if i < 0 || i >= SpecialOperand(len(_SpecialOperand_index)-1) { From 62d4c32b7e5c1f5954c97c264d1105fc3743220e Mon Sep 17 00:00:00 2001 From: erifan01 Date: Wed, 12 Aug 2020 17:41:54 +0800 Subject: [PATCH 084/125] cmd/asm: add DC instruction on arm64 There was only a placeholder for DC instruction in the previous code. gVisor needs this instruction. This CL completes its support. This patch is a copy of CL 250858, contributed by Junchen Li(junchen.li@arm.com). Co-authored-by: Junchen Li(junchen.li@arm.com) CustomizedGitHooks: yes Change-Id: I76098048a227fbd08aa42c4173b028f0ab4f66e8 Reviewed-on: https://go-review.googlesource.com/c/go/+/302851 Reviewed-by: Cherry Mui Trust: Eric Fang Run-TryBot: Eric Fang TryBot-Result: Gopher Robot --- src/cmd/asm/internal/asm/testdata/arm64.s | 30 ++++++++ src/cmd/asm/internal/asm/testdata/arm64enc.s | 2 +- .../asm/internal/asm/testdata/arm64error.s | 5 ++ src/cmd/internal/obj/arm64/a.out.go | 30 ++++++++ src/cmd/internal/obj/arm64/asm7.go | 36 ++++++++-- .../obj/arm64/specialoperand_string.go | 70 +++++++++++++------ 6 files changed, 147 insertions(+), 26 deletions(-) diff --git a/src/cmd/asm/internal/asm/testdata/arm64.s b/src/cmd/asm/internal/asm/testdata/arm64.s index 7866cf1db0..0e5799a022 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64.s +++ b/src/cmd/asm/internal/asm/testdata/arm64.s @@ -1710,4 +1710,34 @@ again: TLBI RVALE3OS, ZR // bf850ed5 TLBI RVAE3, R29 // 3d860ed5 TLBI RVALE3, R30 // be860ed5 + +// DC instruction + DC IVAC, R0 // 207608d5 + DC ISW, R1 // 417608d5 + DC CSW, R2 // 427a08d5 + DC CISW, R3 // 437e08d5 + DC ZVA, R4 // 24740bd5 + DC CVAC, R5 // 257a0bd5 + DC CVAU, R6 // 267b0bd5 + DC CIVAC, R7 // 277e0bd5 + DC IGVAC, R8 // 687608d5 + DC IGSW, R9 // 897608d5 + DC IGDVAC, R10 // aa7608d5 + DC IGDSW, R11 // cb7608d5 + DC CGSW, R12 // 8c7a08d5 + DC CGDSW, R13 // cd7a08d5 + DC CIGSW, R14 // 8e7e08d5 + DC CIGDSW, R15 // cf7e08d5 + DC GVA, R16 // 70740bd5 + DC GZVA, R17 // 91740bd5 + DC CGVAC, ZR // 7f7a0bd5 + DC CGDVAC, R19 // b37a0bd5 + DC CGVAP, R20 // 747c0bd5 + DC CGDVAP, R21 // b57c0bd5 + DC CGVADP, R22 // 767d0bd5 + DC CGDVADP, R23 // b77d0bd5 + DC CIGVAC, R24 // 787e0bd5 + DC CIGDVAC, R25 // b97e0bd5 + DC CVAP, R26 // 3a7c0bd5 + DC CVADP, R27 // 3b7d0bd5 END diff --git a/src/cmd/asm/internal/asm/testdata/arm64enc.s b/src/cmd/asm/internal/asm/testdata/arm64enc.s index f08e953c98..eff48ae8e7 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64enc.s +++ b/src/cmd/asm/internal/asm/testdata/arm64enc.s @@ -134,7 +134,7 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 CSINV LO, R2, R11, R14 // 4e308bda CSNEGW HS, R16, R29, R10 // 0a269d5a CSNEG NE, R21, R19, R11 // ab1693da - //TODO DC + DC IVAC, R1 // 217608d5 DCPS1 $11378 // 418ea5d4 DCPS2 $10699 // 6239a5d4 DCPS3 $24415 // e3ebabd4 diff --git a/src/cmd/asm/internal/asm/testdata/arm64error.s b/src/cmd/asm/internal/asm/testdata/arm64error.s index a41f180bb6..52f01e16a6 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64error.s +++ b/src/cmd/asm/internal/asm/testdata/arm64error.s @@ -437,4 +437,9 @@ TEXT errors(SB),$0 TLBI ALLE3OS, ZR // ERROR "extraneous register at operand 2" TLBI VAE1IS // ERROR "missing register at operand 2" TLBI RVALE3 // ERROR "missing register at operand 2" + DC PLDL1KEEP // ERROR "illegal argument" + DC VMALLE1IS // ERROR "illegal argument" + DC VAE1IS // ERROR "illegal argument" + DC VAE1IS, R0 // ERROR "illegal argument" + DC IVAC // ERROR "missing register at operand 2" RET diff --git a/src/cmd/internal/obj/arm64/a.out.go b/src/cmd/internal/obj/arm64/a.out.go index c34b00db70..d6522f5738 100644 --- a/src/cmd/internal/obj/arm64/a.out.go +++ b/src/cmd/internal/obj/arm64/a.out.go @@ -1154,6 +1154,36 @@ const ( SPOP_RVAE3 SPOP_RVALE3 + // DC + SPOP_IVAC + SPOP_ISW + SPOP_CSW + SPOP_CISW + SPOP_ZVA + SPOP_CVAC + SPOP_CVAU + SPOP_CIVAC + SPOP_IGVAC + SPOP_IGSW + SPOP_IGDVAC + SPOP_IGDSW + SPOP_CGSW + SPOP_CGDSW + SPOP_CIGSW + SPOP_CIGDSW + SPOP_GVA + SPOP_GZVA + SPOP_CGVAC + SPOP_CGDVAC + SPOP_CGVAP + SPOP_CGDVAP + SPOP_CGVADP + SPOP_CGDVADP + SPOP_CIGVAC + SPOP_CIGDVAC + SPOP_CVAP + SPOP_CVADP + // PSTATE fields SPOP_DAIFSet SPOP_DAIFClr diff --git a/src/cmd/internal/obj/arm64/asm7.go b/src/cmd/internal/obj/arm64/asm7.go index 7e1ae15513..72c4cd48ed 100644 --- a/src/cmd/internal/obj/arm64/asm7.go +++ b/src/cmd/internal/obj/arm64/asm7.go @@ -998,6 +998,35 @@ var sysInstFields = map[SpecialOperand]struct { SPOP_RVALE3OS: {6, 8, 5, 5, true}, SPOP_RVAE3: {6, 8, 6, 1, true}, SPOP_RVALE3: {6, 8, 6, 5, true}, + // DC + SPOP_IVAC: {0, 7, 6, 1, true}, + SPOP_ISW: {0, 7, 6, 2, true}, + SPOP_CSW: {0, 7, 10, 2, true}, + SPOP_CISW: {0, 7, 14, 2, true}, + SPOP_ZVA: {3, 7, 4, 1, true}, + SPOP_CVAC: {3, 7, 10, 1, true}, + SPOP_CVAU: {3, 7, 11, 1, true}, + SPOP_CIVAC: {3, 7, 14, 1, true}, + SPOP_IGVAC: {0, 7, 6, 3, true}, + SPOP_IGSW: {0, 7, 6, 4, true}, + SPOP_IGDVAC: {0, 7, 6, 5, true}, + SPOP_IGDSW: {0, 7, 6, 6, true}, + SPOP_CGSW: {0, 7, 10, 4, true}, + SPOP_CGDSW: {0, 7, 10, 6, true}, + SPOP_CIGSW: {0, 7, 14, 4, true}, + SPOP_CIGDSW: {0, 7, 14, 6, true}, + SPOP_GVA: {3, 7, 4, 3, true}, + SPOP_GZVA: {3, 7, 4, 4, true}, + SPOP_CGVAC: {3, 7, 10, 3, true}, + SPOP_CGDVAC: {3, 7, 10, 5, true}, + SPOP_CGVAP: {3, 7, 12, 3, true}, + SPOP_CGDVAP: {3, 7, 12, 5, true}, + SPOP_CGVADP: {3, 7, 13, 3, true}, + SPOP_CGDVADP: {3, 7, 13, 5, true}, + SPOP_CIGVAC: {3, 7, 14, 3, true}, + SPOP_CIGDVAC: {3, 7, 14, 5, true}, + SPOP_CVAP: {3, 7, 12, 1, true}, + SPOP_CVADP: {3, 7, 13, 1, true}, } // Used for padinng NOOP instruction @@ -2963,11 +2992,10 @@ func buildop(ctxt *obj.Link) { case ASYS: oprangeset(AAT, t) - oprangeset(ADC, t) oprangeset(AIC, t) case ATLBI: - break + oprangeset(ADC, t) case ASYSL, AHINT: break @@ -5609,9 +5637,9 @@ func (c *ctxt7) asmout(p *obj.Prog, o *Optab, out []uint32) { } o1 |= enc | uint32(rs&31)<<16 | uint32(rb&31)<<5 | uint32(rt&31) - case 107: /* tlbi */ + case 107: /* tlbi, dc */ op, ok := sysInstFields[SpecialOperand(p.From.Offset)] - if !ok || (p.As == ATLBI && op.cn != 8) { + if !ok || (p.As == ATLBI && op.cn != 8) || (p.As == ADC && op.cn != 7) { c.ctxt.Diag("illegal argument: %v\n", p) break } diff --git a/src/cmd/internal/obj/arm64/specialoperand_string.go b/src/cmd/internal/obj/arm64/specialoperand_string.go index 0818649c93..0a73c69b12 100644 --- a/src/cmd/internal/obj/arm64/specialoperand_string.go +++ b/src/cmd/internal/obj/arm64/specialoperand_string.go @@ -105,30 +105,58 @@ func _() { _ = x[SPOP_RVALE3OS-93] _ = x[SPOP_RVAE3-94] _ = x[SPOP_RVALE3-95] - _ = x[SPOP_DAIFSet-96] - _ = x[SPOP_DAIFClr-97] - _ = x[SPOP_EQ-98] - _ = x[SPOP_NE-99] - _ = x[SPOP_HS-100] - _ = x[SPOP_LO-101] - _ = x[SPOP_MI-102] - _ = x[SPOP_PL-103] - _ = x[SPOP_VS-104] - _ = x[SPOP_VC-105] - _ = x[SPOP_HI-106] - _ = x[SPOP_LS-107] - _ = x[SPOP_GE-108] - _ = x[SPOP_LT-109] - _ = x[SPOP_GT-110] - _ = x[SPOP_LE-111] - _ = x[SPOP_AL-112] - _ = x[SPOP_NV-113] - _ = x[SPOP_END-114] + _ = x[SPOP_IVAC-96] + _ = x[SPOP_ISW-97] + _ = x[SPOP_CSW-98] + _ = x[SPOP_CISW-99] + _ = x[SPOP_ZVA-100] + _ = x[SPOP_CVAC-101] + _ = x[SPOP_CVAU-102] + _ = x[SPOP_CIVAC-103] + _ = x[SPOP_IGVAC-104] + _ = x[SPOP_IGSW-105] + _ = x[SPOP_IGDVAC-106] + _ = x[SPOP_IGDSW-107] + _ = x[SPOP_CGSW-108] + _ = x[SPOP_CGDSW-109] + _ = x[SPOP_CIGSW-110] + _ = x[SPOP_CIGDSW-111] + _ = x[SPOP_GVA-112] + _ = x[SPOP_GZVA-113] + _ = x[SPOP_CGVAC-114] + _ = x[SPOP_CGDVAC-115] + _ = x[SPOP_CGVAP-116] + _ = x[SPOP_CGDVAP-117] + _ = x[SPOP_CGVADP-118] + _ = x[SPOP_CGDVADP-119] + _ = x[SPOP_CIGVAC-120] + _ = x[SPOP_CIGDVAC-121] + _ = x[SPOP_CVAP-122] + _ = x[SPOP_CVADP-123] + _ = x[SPOP_DAIFSet-124] + _ = x[SPOP_DAIFClr-125] + _ = x[SPOP_EQ-126] + _ = x[SPOP_NE-127] + _ = x[SPOP_HS-128] + _ = x[SPOP_LO-129] + _ = x[SPOP_MI-130] + _ = x[SPOP_PL-131] + _ = x[SPOP_VS-132] + _ = x[SPOP_VC-133] + _ = x[SPOP_HI-134] + _ = x[SPOP_LS-135] + _ = x[SPOP_GE-136] + _ = x[SPOP_LT-137] + _ = x[SPOP_GT-138] + _ = x[SPOP_LE-139] + _ = x[SPOP_AL-140] + _ = x[SPOP_NV-141] + _ = x[SPOP_END-142] } -const _SpecialOperand_name = "PLDL1KEEPPLDL1STRMPLDL2KEEPPLDL2STRMPLDL3KEEPPLDL3STRMPLIL1KEEPPLIL1STRMPLIL2KEEPPLIL2STRMPLIL3KEEPPLIL3STRMPSTL1KEEPPSTL1STRMPSTL2KEEPPSTL2STRMPSTL3KEEPPSTL3STRMVMALLE1ISVAE1ISASIDE1ISVAAE1ISVALE1ISVAALE1ISVMALLE1VAE1ASIDE1VAAE1VALE1VAALE1IPAS2E1ISIPAS2LE1ISALLE2ISVAE2ISALLE1ISVALE2ISVMALLS12E1ISIPAS2E1IPAS2LE1ALLE2VAE2ALLE1VALE2VMALLS12E1ALLE3ISVAE3ISVALE3ISALLE3VAE3VALE3VMALLE1OSVAE1OSASIDE1OSVAAE1OSVALE1OSVAALE1OSRVAE1ISRVAAE1ISRVALE1ISRVAALE1ISRVAE1OSRVAAE1OSRVALE1OSRVAALE1OSRVAE1RVAAE1RVALE1RVAALE1RIPAS2E1ISRIPAS2LE1ISALLE2OSVAE2OSALLE1OSVALE2OSVMALLS12E1OSRVAE2ISRVALE2ISIPAS2E1OSRIPAS2E1RIPAS2E1OSIPAS2LE1OSRIPAS2LE1RIPAS2LE1OSRVAE2OSRVALE2OSRVAE2RVALE2ALLE3OSVAE3OSVALE3OSRVAE3ISRVALE3ISRVAE3OSRVALE3OSRVAE3RVALE3DAIFSetDAIFClrEQNEHSLOMIPLVSVCHILSGELTGTLEALNVEND" +const _SpecialOperand_name = "PLDL1KEEPPLDL1STRMPLDL2KEEPPLDL2STRMPLDL3KEEPPLDL3STRMPLIL1KEEPPLIL1STRMPLIL2KEEPPLIL2STRMPLIL3KEEPPLIL3STRMPSTL1KEEPPSTL1STRMPSTL2KEEPPSTL2STRMPSTL3KEEPPSTL3STRMVMALLE1ISVAE1ISASIDE1ISVAAE1ISVALE1ISVAALE1ISVMALLE1VAE1ASIDE1VAAE1VALE1VAALE1IPAS2E1ISIPAS2LE1ISALLE2ISVAE2ISALLE1ISVALE2ISVMALLS12E1ISIPAS2E1IPAS2LE1ALLE2VAE2ALLE1VALE2VMALLS12E1ALLE3ISVAE3ISVALE3ISALLE3VAE3VALE3VMALLE1OSVAE1OSASIDE1OSVAAE1OSVALE1OSVAALE1OSRVAE1ISRVAAE1ISRVALE1ISRVAALE1ISRVAE1OSRVAAE1OSRVALE1OSRVAALE1OSRVAE1RVAAE1RVALE1RVAALE1RIPAS2E1ISRIPAS2LE1ISALLE2OSVAE2OSALLE1OSVALE2OSVMALLS12E1OSRVAE2ISRVALE2ISIPAS2E1OSRIPAS2E1RIPAS2E1OSIPAS2LE1OSRIPAS2LE1RIPAS2LE1OSRVAE2OSRVALE2OSRVAE2RVALE2ALLE3OSVAE3OSVALE3OSRVAE3ISRVALE3ISRVAE3OSRVALE3OSRVAE3RVALE3IVACISWCSWCISWZVACVACCVAUCIVACIGVACIGSWIGDVACIGDSWCGSWCGDSWCIGSWCIGDSWGVAGZVACGVACCGDVACCGVAPCGDVAPCGVADPCGDVADPCIGVACCIGDVACCVAPCVADPDAIFSetDAIFClrEQNEHSLOMIPLVSVCHILSGELTGTLEALNVEND" -var _SpecialOperand_index = [...]uint16{0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126, 135, 144, 153, 162, 171, 177, 185, 192, 199, 207, 214, 218, 224, 229, 234, 240, 249, 259, 266, 272, 279, 286, 298, 305, 313, 318, 322, 327, 332, 342, 349, 355, 362, 367, 371, 376, 385, 391, 399, 406, 413, 421, 428, 436, 444, 453, 460, 468, 476, 485, 490, 496, 502, 509, 519, 530, 537, 543, 550, 557, 569, 576, 584, 593, 601, 611, 621, 630, 641, 648, 656, 661, 667, 674, 680, 687, 694, 702, 709, 717, 722, 728, 735, 742, 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, 766, 768, 770, 772, 774, 777} +var _SpecialOperand_index = [...]uint16{0, 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99, 108, 117, 126, 135, 144, 153, 162, 171, 177, 185, 192, 199, 207, 214, 218, 224, 229, 234, 240, 249, 259, 266, 272, 279, 286, 298, 305, 313, 318, 322, 327, 332, 342, 349, 355, 362, 367, 371, 376, 385, 391, 399, 406, 413, 421, 428, 436, 444, 453, 460, 468, 476, 485, 490, 496, 502, 509, 519, 530, 537, 543, 550, 557, 569, 576, 584, 593, 601, 611, 621, 630, 641, 648, 656, 661, 667, 674, 680, 687, 694, 702, 709, 717, 722, 728, 732, 735, 738, 742, 745, 749, 753, 758, 763, 767, 773, 778, 782, 787, 792, 798, 801, 805, 810, 816, 821, 827, 833, 840, 846, 853, 857, 862, 869, 876, 878, 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 908, 911} func (i SpecialOperand) String() string { if i < 0 || i >= SpecialOperand(len(_SpecialOperand_index)-1) { From 2e8dc8f4725c84d352b718620628a4fb0f86e748 Mon Sep 17 00:00:00 2001 From: Eli Bendersky Date: Wed, 30 Mar 2022 20:19:52 -0700 Subject: [PATCH 085/125] cmd/pprof: point to -h in package documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I820c72e31fbb6471481f4483e7f13bb8b3d5d00c Reviewed-on: https://go-review.googlesource.com/c/go/+/396881 Reviewed-by: Ian Lance Taylor Trust: Eli Bendersky‎ Run-TryBot: Eli Bendersky‎ TryBot-Result: Gopher Robot --- src/cmd/pprof/doc.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/cmd/pprof/doc.go b/src/cmd/pprof/doc.go index 84de036610..6b8c28fe1d 100644 --- a/src/cmd/pprof/doc.go +++ b/src/cmd/pprof/doc.go @@ -4,9 +4,13 @@ // Pprof interprets and displays profiles of Go programs. // -// Usage: +// Basic usage: // // go tool pprof binary profile // -// For more information, see https://blog.golang.org/profiling-go-programs. +// For detailed usage information: +// +// go tool pprof -h +// +// For an example, see https://blog.golang.org/profiling-go-programs. package main From 1fc3346275d0457cfc154b1001b25bd0cb0c1751 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Thu, 31 Mar 2022 07:47:19 -0400 Subject: [PATCH 086/125] debug/dwarf: better error handling in SeekPC The dwarf.Reader "SeekPC" method was not properly handling the case of a truncated/empty unit (something that has header information but an empty abbrev table and no DIEs). Add some guards to handle this case. Fixes #52045. Change-Id: I978163eca3b610f7528058693b840931e90d3f63 Reviewed-on: https://go-review.googlesource.com/c/go/+/397054 Reviewed-by: Ian Lance Taylor Trust: Than McIntosh Run-TryBot: Than McIntosh TryBot-Result: Gopher Robot --- src/debug/dwarf/entry.go | 2 +- src/debug/dwarf/entry_test.go | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/debug/dwarf/entry.go b/src/debug/dwarf/entry.go index 3bc6a5454e..98c17dc08a 100644 --- a/src/debug/dwarf/entry.go +++ b/src/debug/dwarf/entry.go @@ -974,7 +974,7 @@ func (r *Reader) SeekPC(pc uint64) (*Entry, error) { u := &r.d.unit[unit] r.b = makeBuf(r.d, u, "info", u.off, u.data) e, err := r.Next() - if err != nil { + if err != nil || e == nil || e.Tag == 0 { return nil, err } ranges, err := r.d.Ranges(e) diff --git a/src/debug/dwarf/entry_test.go b/src/debug/dwarf/entry_test.go index 393ad89f52..4e96dbfc1d 100644 --- a/src/debug/dwarf/entry_test.go +++ b/src/debug/dwarf/entry_test.go @@ -427,3 +427,18 @@ func TestIssue51758(t *testing.T) { } } } + +func TestIssue52045(t *testing.T) { + var abbrev, aranges, frame, line, pubnames, ranges, str []byte + info := []byte{0x7, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} + + // A hand-crafted input corresponding to a minimal-size + // .debug_info (header only, no DIEs) and an empty abbrev table. + data0, _ := New(abbrev, aranges, frame, info, line, pubnames, ranges, str) + reader0 := data0.Reader() + entry0, _ := reader0.SeekPC(0x0) + // main goal is to make sure we can get here without crashing + if entry0 != nil { + t.Errorf("got non-nil entry0, wanted nil") + } +} From 995a6045919e6cf5a46ee09f8695ed5e05062ce7 Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Thu, 31 Mar 2022 19:01:17 -0400 Subject: [PATCH 087/125] runtime/race: update syso files to new TSAN runtime (v3) Following CL 333529, update syso files for other architectures. Windows/AMD64 is not updated, waiting for Than for C toolchain updates. OpenBSD/AMD64 is not updated as upstream LLVM TSAN removed OpenBSD support (#52090). Linux/PPC64LE is not updated due to a test failure. Will look into it. Change-Id: I46441fd3bb0f2c9e372d3e7fd43744ffafaf87a1 Reviewed-on: https://go-review.googlesource.com/c/go/+/397494 Trust: Cherry Mui Reviewed-by: Keith Randall --- src/runtime/race/README | 10 +++++----- src/runtime/race/race_darwin_amd64.syso | Bin 455944 -> 538536 bytes src/runtime/race/race_darwin_arm64.syso | Bin 438560 -> 484988 bytes src/runtime/race/race_freebsd_amd64.syso | Bin 583264 -> 710664 bytes src/runtime/race/race_linux_arm64.syso | Bin 505224 -> 530736 bytes src/runtime/race/race_netbsd_amd64.syso | Bin 609424 -> 714520 bytes 6 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/runtime/race/README b/src/runtime/race/README index fdbf1d55e6..cb82210c6f 100644 --- a/src/runtime/race/README +++ b/src/runtime/race/README @@ -4,12 +4,12 @@ the LLVM project (https://github.com/llvm/llvm-project/tree/main/compiler-rt). To update the .syso files use golang.org/x/build/cmd/racebuild. -race_darwin_amd64.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 with https://reviews.llvm.org/D114825 applied and Go 7ccbcc90560468937f02609a43cb39a6e13ff797. -race_freebsd_amd64.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 and Go f62d3202bf9dbb3a00ad2a2c63ff4fa4188c5d3b. +race_darwin_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. +race_freebsd_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_linux_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_linux_ppc64le.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 and Go f62d3202bf9dbb3a00ad2a2c63ff4fa4188c5d3b. -race_netbsd_amd64.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 and Go f62d3202bf9dbb3a00ad2a2c63ff4fa4188c5d3b. +race_netbsd_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_windows_amd64.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 and Go f62d3202bf9dbb3a00ad2a2c63ff4fa4188c5d3b. -race_linux_arm64.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 and Go f62d3202bf9dbb3a00ad2a2c63ff4fa4188c5d3b. -race_darwin_arm64.syso built with LLVM 00da38ce2d36c07f12c287dc515d37bb7bc410e9 with https://reviews.llvm.org/D114825 applied and Go 7ccbcc90560468937f02609a43cb39a6e13ff797. +race_linux_arm64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. +race_darwin_arm64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_openbsd_amd64.syso built with LLVM fcf6ae2f070eba73074b6ec8d8281e54d29dbeeb and Go 8f2db14cd35bbd674cb2988a508306de6655e425. diff --git a/src/runtime/race/race_darwin_amd64.syso b/src/runtime/race/race_darwin_amd64.syso index 6fbe140026f0a8391d3dfb4581d37a16dacbd375..dde17add91495ad4459c341c1558a3095911be9a 100644 GIT binary patch literal 538536 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%0D63cH-TI9cr+N2+1 zn+W?~L~Vu-p*Fw%e@$(U$)h#{`SxFMVJ+mFM?)BHUEns|DK`kckohtV!?Gz&=r2}j zv7unS&QFv)A~-N9-GnP3kdM>c`hsM&e7R1r(7Xtn&guEWtZ%h-{Z}36hzQHGX`39d3xqD+x>J70-D2sEtBd-9S zIj(?Z-{(02CX^u)0B2yl?Fw|b=9xBD^Gvs|(ZH*LSLYH9ykC!Z=L!wYv+z!Uu6Y*S z$Dnk|Y_0SH7_lyVNX9-TVxx^Bu-IUHqr3t+UJ;Se#Uc=wXW-l0^4o{|(R;`F!c)k2~i~Q!3-)6{fcgk<~$#1je zw>k3LL-N~G@>`?))*`<>E5E%Wzb%&EmdI~!%WogbZ>{oMm;6Qtu52HJoQpCtC=z-C zT|v)r*%uvWJhd(pUwJhJJ6?L2!#3)MZ_F~>MGMr$q1==VxkC9^w*OWmz5@4Eyr-M% zjE}yhV!Au*6}MFE5^m)({#%bRidU&yDun;mS<-*&G>;He?bYHJpq)5TNhVXCrmb|d z2!DEzGx%_q*2UV=7q2mmS@}L&&7r!run|3iizxyY&Yg2kcc>{6O71T7H@(@@-#;`I zeXfiqMCwwZj)m%C#-B$pJu% z{|HEyqMuIPnx1v(**6UOTE%X1$_=)wRl{76<7ySBxS$P_Zz>6#?m7So+(<VMF`DrIxdZDj3Qd?nuFD>ai^ycD9XM<{%&VvRl( z;Nn~Jm1yulZdK)d5%j7$fg?c~X{PANR2KUkd|uo<<#V@a=3cg;FV^iN7L8ESI&2Cljs(LIgzG5aOK#! z7v^?r0f=s*Q|2~_UAUoxm8}A@eSBr~uj+p+YwXqjrS6CLcNCOa!1C^gfHsJvpKuu~ zlnLO$5ERsqkE5UlqoRL;f`Wnw>Y&6fTlAhwLrG@nQ`1n(|66FNBlJ^b0Q%|kz`-N* zlej402>k^5i6+nVN~b6&e`W!Kzo9Ju_ebcbBlMFz82!xYrxQMzep>6$Pj2k`IeX|p z^wa%$^b?tpPfI^teuRGdub`ib4xyjk`K;)t2S0&+S|j97xYaCJU^TdVwWJ&O6sN`% zlllac@oo;6Af-@3$dRjK_wiCFrDP|iP(KFJ!Ad+}eQN-DG6hjt8VrXJQ6D3NdIOW- zuw+oUg^L$2nEU;YVFo}sRO(}QGZ7Y;qEW%j#)=JPTt40Ly3%RdDIMbAD56x z_1H2g+{aahJ7C}GbJ}$nC`?zqOmMx$Pnp?G494*l^@}H zwcox>h{?=O@s9hd0I_5paj|U%=G%D3Gmf=X|_ zP0adq0b&+R=Z#iVD)`OF{)U(Z(+z&B9_FPZ2Vb7fm!xvL@p4KOfiQk?#oMo$OR%2AB8N9i6~*qD#mKWJJT_q z=_qVtI!c1F)5-V+BA)3Mt8~xirIYas7BQabmZ)^ExODE$OEMh#2AqOC*v0^Vm#B$R_X4{ODE%jc`Dr;mF~X0bTS_Jr_wd5bPwgFlkvbmm99ml zdnzxTj0gUybc{mw?RJ0p{W8H@bQ79KTw z1K5Vu1&|QY^O8l#aVJQ7gyzcTxPME^Zx7;b6>=#o#Df+S_R-07VbgX>Z}sTvvJ7S58BltAHu$Y}T+&qr z?J=AS8S$>ek=LFsI z+N%w7r`RmBWwaF6%ImPM71v?yJ6s7Z6fh$*D4+ck@51^fDjY~Yy9>z-^BuK)Z%H*F zv0=Wa=gDT(5%#a7Y!(hWvt+ZUDYjQG>-Y&ur(@vlPb1 zvlJg8m;D%)V!Inq9nP`#XU9^s@O)byLH|$YCmR08@Dm3Qlb-;@NB9ZSEsa=*5FX(t zL_ZwiCvL&+mrdu+5OnPke&T->PaN(^#o_Z4yARVV=LaUOo;eBu-J$&Z{*z@@@Je?IYNho30= zWPakd9Dc(0sriY?NBD`)o}bux2tTpuv*9Q1{sewvlzl#-3ywk@P#phpEJgKa!BTwY z2Nc`>`&o)3=M%Of)XXV^4nyCm|1kN9Bj*!G_=y}j{1JXao>Lv+C;r#-6UGsKLRqUG zIiH{r^V9z&`c9vCKJgcapE!*3iFgh_@#)Vef=Bp?&z_&?J%pdw{MqmmKmSO6Vs*d@ zxrNTt=X7hBb#Y0+T+s`o@zmdrrkdD#9XfH@%7jz}ERl8;cf(K>N>Bd@)&hrH!dLMp zDLqwZdGpZCD`-Y>UCGDTqDn`QpT>;h`vBXqgoh2BZDpS2$^+g2H$(Mr09PKl78Ji0 zt~})NBlzvmGHB27w}pC+C5}IjZl&+^mSY{E#b|5|kLIp4>?it#PmcyDta_Xj(taWU zLlSp-OoQ3kV7{~iSqd7=w*vIk*kJaFO8n@07*)KQV^qsr`a?93?qYOxMTB^=X*XXBHe zm<|Y9Bn0c`;cD7N!k(vo#k}+2_!;%joDSoTar!m&?`YHBxyB6hb>{Tbv`54GpiCsp zJd%TScyqwWMpmUZVabG65&y&2vv$KQ+G1Qyql<6Ty5a^JRE)lzeY#l;OQC2nWjlkodmfewALh zJ7NA;WWJWgGQ4*Q!h!NXE50wdU!@l=QJDWjnXjc)hWB^=j(8q7tHe3yekv3ex8T^)Q!_|NoX~Pwqjc@rjTn&hHY`B7R znBqP;yKFO%21GhGT=7OZ1@m<-6Efbh;fiyKVPQ`p1ghADVYwDdl)WUy7mN2BgsoO~ zIvMZSaK)FXbgv-HPAB6X8?Jb(O2?%nJDrSoY`EfGDjk=a>~u2TvEhpMsB|R~<(ziN zct__l-mB7$&Pylb9UHEA0lu?e#^$Ay@s15w+@sP>%u6TZ9UHEAg-U1SrIYcF4OhHY zrMn_8os4&ExZ*yQ?)toRGTyP_iqBB#Zplk0;~kyL_-vK#&b)Lo-m&3|&r#{_%S$KY z9UHEAqe}NsUOE}?*l@*LRJy0~(#d$ohAX~UrF%9nos4&ExZ+Dxx>xej$$00CG~TMx zy`7g%#yd7#@h+9_!@P7d-m&3|_o#GS+OqLf#yd7#@m`fK&xR`@Y4kGAlNW1$nd zxh-Zk$rL@52hH6E*c5-_TKB%?!pT1Dxxh4*z~|O?GCsF%%(Lg(swcNP9=B4U#z%(W zu!OGAP=x`nkk)YWp7E7I^MJJH`rFMePgto6OdeEYk6S=pKx9AeSwzlRJ zJ)lJwz*WAsG7!*9*Z>w?OnROIfWEfOHOZayw6(J7b^5?#2VFC{{(7)gQQ-yunrw5f z{n?JTemr(=D7#C)*_-cX>&u8?L!Sd4eM~(|@Hxjnh#=uorHIb4->QZ`EyI>)K<9Fp zZe5Iv&Q@?rm8KpZSfW8?WH{o2PX#S@*C&fKhAY~VKI7=O)Xb7;oI;sKg<*Xo*T2@a zwvW;jFSq#gc3j`3OylG2xFFNmC1e_@!|@6+fJ}qB*5x0mZ+Up~47yqMD0#+t16N@B02K!!);8R!QP$N4g}|IP9Y ztZu2FWeYUmfF@{rr^)k}9ONB?J2LB^@Ny~^VcpF2Nz*4K8b^H69PvqmjgxYU(Q<0p zat|v{o^iw{jnbK)EtXMz7(R_?N<6^Y# zGnZ$KLZNUl^C^7Ne3tSIM-yDiGteD*o@y3LX-0RJG~?@sNHZ$Jrw=5}5Z-JIAzv#Q>H0gfM+$jHgZXBzdz!Ba zaR&LlZ2vSjJMxV03jZ{_^ZnCg^fj0@%Y``ZY>8Y%2Q}3cXoLap<8A`-SvSQ<>wTrdBvpLG{S5#UH0cV_~*L zLpTpt0u8#T5dsa$da|5{3xUSHGR}4$E(99yBQE1dMvL zj=`zB?LYh=@F;yf#2Uw$E0Q}rer>7kKb(oO9EjUJd-WlLjRqyy=%nOg0B7Y{wGnG` z$6kzjYB1t)Kht9eUwPu*n`WK?U505Mt$OhB4;JFOg`w?A|3KWwF7z}&?)3+(G1l~= zfNNvZHZ*gLIVw=Uao$i|Ti`dR7ePLtC*L~3waRbKD)L9SpBIGRs8|AsQqv9(2#GnVu+_5Q-+t;d=bcQ2k0RdJ8^XfEUBHALv)E*Kg2n zzZP-cl^l+JT@9{YU@+t!h2aw~NKBl7OH?3T2;ioOrDemK%QR$i>Cuk<$nH?IuTZ<~ z5kPT4q6q0)kI#{}iu5zx2ehR#hq;<(x)1VU5FYyZP}p2X^e+n4uZ_Hvn!~0DK*@0Ob6GIH!S2Cj6@Bm(8gbNRV*BCJf4}jMgQP^Ap z$!uGZUcWx_lHq!xp=Nz3adWxoe#7h+1CJi}%{`Wb72Vc~NXPx8+3t_Nah@0%I%5(e zb6hAfO^k{T1&AL2nsd>E7>@RN*W+$a*fQ-~Z@93Mu&~1LNa#l_Eh+Rj8$+?8wxUIC z{gIt|^kCuK@d}@u?*O;Z#gxbLX%L@|*m}-40kP=1uXorY@I5 zPTUcn%w9d( z)1xQm^x#$tpzC1vytyvAwGd#=o(GqrssEIXuh61nID{)x>w$Oy^ZDquUOjPsuWqi@ zle>yg0k9r7&-TDm+x|J4aD3?PPyG~m&>0`<`!;&_qCY%EXKEhfOw97q!1!|fHO5zK zp1_$EjI9;1bs|=0tdFrXMC@fE_FBfyX6zghJ0E}V9N!EO_2{lfj&d(O(k)YCQp;;NjC^K2`8(37=~D z)XFCxpSt)ogHJttn$0J)H!xw2R$5fAM|Y!-I^2;58ldJh4$I3Jdqr_=2_<`qFhp6^ zbN%oXjYm%6k0(^$i}j=ac`f$vhwP;`$o>|h&8d^|dO@NLO=*)&c@x9E#k-gCG<&=O z$Qdmd?K2hw8a3LCTf(?j#`(lpGp>tqJ&c$t16m?*@*F|=VTsI+C z>NaF((ak=@?=sI*`l@7VOh!oK`vEr%u zKN$hsfiY#!xkYm3;9@x0*Z|K zjgd9&fTLm_?$Fwl+Km!I<_n?d_MTAUM?E2PKh8r2V`p&%%@qI414e1HVomu09k8aAST}fhNU_4Yxh#WD*R+@~AlXCaJLWEPoj0YM`vR3o?>a2KI^z3W8v>Tc zy0(ZetC#o_Wk)r&&HvqZUpDZqJJ~igU?u~uHt+t*b*^3B{VcvWG1l9({L)7|cO;jW znCo0G1-!}1lr;w=X}GEtF9w9!J6s176TMBHo90whB|A%9yUmn$UFCl7I%^J8L&H^% z1za78(cY%^U2FfIOtv3m9`x>VeNegC(mfSc`dEKcyX&5*2mAma=vo~xS9+0XgEwW(uRyXpUGKYAHMMo$+xQ)J zgll8K+z{}ttXzjb*8D1@Xm%Y4B&ursP0##!U%>JwpFw{Fyc_(k7Xy`Bt!t}MDSGv8 zL`_YME%rApfB14NLdoT&LD%cJjt)Qo>~+@sv3}PFDDGarYc)Vx_VN{`1SuUb(*f`H zK;we;G6YgHgIafH9A^Yf)G*ZGs37@v&+?^{9FmO$nEmOc)gZ_Mv{7Eu5KaQ*bg zd(pgSN`kHr1Lg+-@1{WIcKqdeLyx7``CV(wRZ|m1r}&#%e=_90(_P3zl9`x?NF5pc-uvp?FO_`mjqqA{jM#5@9SSYaWCK- zOvqHlC~cG9^$)-66#(Y@tFIM+6$`**Z7AvkzpKyh>IO6yef6r70L^d#4RWFr0RHx% z>jeqKA3B$&07O~Pl>-Ehw;TPgP6@-6p3~P42*cYFhKtJrg9e0Qg@mE$jo)++07Jms z8vvFq4!Yizu&nstg*OL)C1B00Y7V+ymcYERW^3huz`SU#!(6*hg0z0<`1S!n3KRya z9+N;VJo=@73;-0k)H{Ji5}=)BUkwfb5C#ayp$2GhYWsr&z!NC^W>u?%rSG@9KO6uS zwCVxBt4l(&VbBfVR?q~^j-dCAfcdUHQmX^5O-=207+*?YoC2@H z_3vXQv=sZyhg^L_aOV=-k_@&$np8F{rY>T z)f05}1-Gz^szG*NO6@g05!*CNWr`O0d{C#(A(qpwo;kncR|-$+2wt={M#6Ix!=|5H`{~W4}xBRhXp_A`Ug4_Bl@jN zA9@CD9EB!fQkw1iUI-Ke#CF-YfzQ_fZ99j!y2OegzG7rH1rlZG+_s)5M z`M#j*{eaoMuPad874Y^=O;i%!kT?d(G&1?O-_s}Z|bOD z{L>GU9V7j&=K?OEVb{K{;@*I_XL4e6T~mAeS1$invVBO<^_J`1fZ2m@-QM2G(6?`D z`i%{>SeAWKt^(S1oa^BS^(7yj`x2rjB)2#^R{V zwHDCaDeLmCaJ4tJPrvnn8&DByajh~}$a>I558BxC#@K^wqu;f$(5Px*O=zLFJ2BDS z)LAyg_1k2p7I3|c%3`9bJ~S;+QrndLO{x3BWOAfyKPp=+Teia6mnbW5YP;>$i}xkl zhG1JLoLO}*y96a-NXL1aI?j6MoWCbKj&iLJU{@q4y(n*NUDNU>pMUvF$>kb=XeQ{c z_lkFTdtECA-}S=nX%zENvUQ|^g>;ACg@3Ju*H`rdrasErdcf5A^k|@}t5u8t4)<>G z8le^DMecyfr(62WE3AN(^fo`I`2Lgqp1nCQ0ijKrE&L_OKRr=2j65o~$l~PQq!ymq5PvOv9n@j`(GOkWuXp%dd>RzKtiv~m zPle$NJA8$FDhdZWd_{a396qPRH<(XD!nGZ~AqD9#p}gqUKHZfhtvgx=M-QUxSby|2 za5~Ru2qBPoLonF>r+k1z@Z3Vsc2LB6SK5$;66g@~o#M8=ZCdy$sG@~`6iOIX`%ng1 z$)R({K}JB{i1aAnCd7o5P!c{uMwmK$LqUQ=p@|I6%WUPD-jy9iZbT+sq55Yd@1{R5 zN=lT~>h*0mjRerg0%)*u9T1Sb(JSEM#kxg_vgH7|z#P$h@eH#KTygWo7co4#`Qk4p zcZ_VFayH-Z7;FLD3ykjz%!}jw!imBM=O`V@er4Yd-vtN zSLeNZ`0n=Zy*$N=FK?IrvBgV<;b;-^Mx@kYM?qd-Sdd5I`5#ZY-cZ>&1r3QWyCUy2 zo^zTOKLzZao|rtS@rSO{p~KphI!;7P`r*G8!Wc>j#AFu=jLy_0+k;NNf$FWXyU0`l8pKOrN?}U5+ZEZXkRovu?yxVx*X_2F0 z(>17Z0hqJ#LTf?%f zhFZNQsVDar>h-I&=nVo1$8{syzh`RoH{M!?;s?9;X!zvL# zNQp*Wr0};JlF)s)4ZUccRcn}UIxP!&&bMx$b-R#zjd-ddwiZHZfWew@0i0^z+wYkxjEAA^SSoS7{#eB=DfE7=y{rGw_6=?B# z^nolkbv7O`43MS=buIRH47;8k=Q_ z>em@o5NeVQ)tU7m6n%yR>_hkJYJjmt&b#t_YitkD4AQ|zqJ6Fid{br0yF^EsGctXL zQQ;V3Bbej{6sq3zaJ(01-gWE8b426Q7Al;B3g?4l2>%$c&qpeZ;dc-KIj1nsrgTLH zIkBF}-e0BHwCTzBfrBs13mDe8Zh!P#S9m)r8uKfsV!w4Z5YYo)QQLraFK2KKSY0h3 zunz5EtlJx#78mH9ZK$jthdPP-s)RKxhg{qzMum6r+mhWqK5RjZJU;Kt% zxt_}XOIcF*RxVHJt+2Qh=CEg7 zG2(p@+^>w%4?0Ch{@sQaHR$GBsUHBYtf&;P9kvOH=wmBTSb-LM4b9LK&3sFroM}Rf zolt(#o%G_eG3(yPkRB+oLyP^E1z1zcp<-O2n=`PK3=(@kVsHVmj{AJk1VfL`uP6wg zqeJwC4(JPG23!O>r#sX8Fh&sNWgvPaSlK28=TW}U-}Hr2Xnce+zCZ~e#h|Oew!UUb*o%y6t9CtG1lGH z9IBrPEEq5BA6}&)$lXaj&YNxY#OTwF;tyi$kn+{=5~lrErj5Lavm1d5!U|$%9;EUjLY{C*_5I(`~|L`z<-=<#ObpktB zf_haJjQ4IrUFJq~4a^KPAS4-`82LJaJoprUm6@-4^zCY=^D9D*KDc4AVK~?PbHSj+ z1)-)+_FhBcuN;ujQ)+~_*z`h(rWv@~#GctOMWOvVX4Ga*M<~iifJ)T&78AC|p0JlF z#NamM>Tr^VtJ5!Muod_q*EI*Y48T^@kbHvosC94EI3Lpg<`152nGtOif=a=nfGB=xf9EZ9(Gt`d~ zW-b0h)h@gc-wgBp6t8@@+r*}xgLlI^l{JN|gcx#al55K@hI7l|?*3ZuRcOa%li`o<@FA?5_>bKf3+b zZc+CVB*(ZW`_jWe+{6e`fw$jC{8=!p)RB(k6eNRh1XSLo&qX#bDFj!(tTdK))v0Cowk z;!2ldy@3{x9=)|3s5FSSJJI)DTC9lxk-E3OkA3#L$bJd4!==O}6?)>k&=~q&h2Dwe zOePQuJ}tz~oN)R1O`!yPeGq}TfHm2JE=+L5$e^t zxu{zdx=8d9QE?(*Nd@u8?mu=^Clhf@b9&3WH~qa9-%_;ahiuOog9+YbwBmfULPslH zTIpoiuLUdmwR>9iPWCKPNSQ|BaoK?Hq5;2<4frY=@Iy4E8BkeK={j{i+V1pPE*Vo$Jm)~>YGQ~ec9~UU3#oj?S5bJf|4sL?48i^#XJ9^Nd zkQuBavZnoz4}dU#tBm?j;=Vm_wYUa&t^PFMrG4f>McEV-z&`UJFc*}^9?~6=g79qS z2dyK1yWy_|B#lqIyF-|+w(C@lVk!N)YaQqtUu-k-t_t75+zq%d79>m1?NX~%LwseV zGJRwA_UPk8i8N#qgukqoA=ojgg-44we}L2A-{KGHt4_a%bt0r_#O?uY;rl!?7Pgyy z*Ci#H5+i>KMgP78ol+2<9!kXdgf+q$FD#*p5rzI=0j*2xqB;?9ETVXsjWf>umcI14 z*~1w?vAO=Dd7pf*Zmu&b_ZY<~ERVzwQdNt%-zjtG%|NPbbLeA?;#JBVdI{71oM}P- zM#ZM%WI-S$~{Vie3MH^tU19u^~F( z!2mb45>l*N$2<51l0OpBqi=x(Ytv%XvD2+V>2aCwx%|Qkz`IK~_uKtNe&IRx!BOEy zY+fPLSE0njFB!$piM~1z{u|Ss6M=5=WLQc=N&LGd={U&xXDmTezx*O-YEp3-nqOPm z04XO{<$A!SwoMK>23q`fhaPi=oIWi0n;nvqo~uQMH^O2Qgj~laFDlY!I^zN1RI03L zD+|&EKeP&TzfswSK}OwZ-wTBMl7jFV)aC-7#Cu@7*eSW8^P#w)7k}W7y^Mq#!Vfd) zl?9QPdbzF;5dgfnZZlUO8rltLc<^P>@CmP?;XBbnNhl;H{q+tJ|JxT3e+Qam^ErBS zj|@e;q#sNY;#Dxu1CoQrKnQX>w4r);DWgR8d<(3v-}LfGCJqTWN9c#%|>4$ z4Xaa(jsQfi=h#1x9@Y$se#+r*u**CxSNr%kK*Fh>M{yyWFu@2hJASjBNm=38+k2cb z)v)FTp$lzJtV(Aoyn}zh{u^%@tU8BDELgNV>-vBdNkSI`O6t)1B5My>u`1%eLv`Ej zF%pk(f>MU&4S7Xch3buk_TInFQ8}zFSbVJtAOp7sI zW}8v@yb*839BDP;-NN9awl*!P0hV|HD^d_9Tt^wnK*?7O1t+EGGl2loPX;V@y?C(3pREexZUrNMvr5;3X!H+pG zUaasfm)_eUR%E~jaqDy0@NLP4Z;OO)KP!7m&CBhex3b~u%t1C^Y>Pm)kAm+{%*~~x zK_L53XIeVALE1fkpARbs#SI^OX%t0c7>vhGa$zk}k< zY!I_BSwiLl94U$|!*5+(25EryX#1oBA8;jR;5+MtU|_l@xz+tde?dX(7e)zKl0BZ{ z6~$fVP-nGjbMfwAMTFeU!(31zCT)iCKFsl|C5DhhN8)lE5?8AY<4o#R(Qa#gc!beJ?s1fHl zgB~Z954>HW*Qa!C@*2>~Jkg%G2GO9fyw3|5LS_f_2(;K@M55jbs8zV<9tX8)XrHdt zqT3J+74DOu2d+h5V#bx`7W#{Eo0|hQptDx#`<~Zb8;zQ`gqcGb==Y_gp(QYSxEOO9 zWb6VDU1)wV_bfTTaJ-1`Wy4`@;f6WD%;7FR!5m=b@IicnIl#=}XloMY0MAC&g{%b? zig0f*Z>|U>igtxe^bc9&P@-gQ$ednll~koQw0kE2EHGR!37T=fN6VbT0l-_1Hr_V?@^C9m>Zd zwwAFz#?BD2J`p>Ev9lRFN5sw+u|n?{a27=tQ_^%cZg+=m08aW`oxnM%cKp2Re@|dk zFSLzEp{8Scp=*qD>^6*c7wrR{)nXPVg@5leP&WP?rw8@L*&*5b;vVRWGndpC7r8D$ z+SFFib)eJkX%rpOgJ2oWuF}OCGlX?!NtltDFqh$k zD);>OptA_)965;z%oWC#oi!vL630!7zD89UxoxH@u^w^}J4P&G_IcCz@LVEu`gNPW zI$KYSt5a0i_;6`@tDMe~c1PJ*jkr9fa+k-EJjogjQdunCo4HktkNjS(gE(eN$JMhq zZ^A+5G8Co6-`3DmFgJVG`<0Wh#cm~R=7 zOcXya`H7bZ+bA3@k)7Cp4M)4XP01?~W9#+e_hK8dccs8DA>HZVmjsDI*HSAZ&@+L&@vcszZoJmH-Sbwt~QL z+#PxS`8Z>Q%UvN=7m30rq+e~IX{8jQX4Sw`nGdWusYhVKCSrp2aDuP4jJ{jR=r@xi z6QxD&0yoaOSt~58QeOjzSy8Er@b1TAXRd0(!rXse6DYU-^TNfx7=)%bV0%iYJm3>S zrkQ$~-suxtW2#0Ffr&0r@cuzs^khbWbRMT$_q2-Gw!ZMm`I5m|t-9Hzn`Kp$5kg?e z{Qc=6R4^&3Qetqz_cZ?Sx0_Nfb)x66wH!h*B%O`j$j@J>6Pi`_gMct(KC4;@ zUTnzoi=R3#IRw9$T8p)znq2(4DI33-C>$bwJ!_a!nT%@(z{+%f2H|j93XkTLMDl3` zK;}rL!mBV|XWD*4_CY+_ePE+f$_ zrN$RS+`B|djpspXd_jej)U}8xDfvYgi=sH_Q!<0jVf&QhExHOz+yLVZ7l9aWx(F2G zEnNi4@n$YD-s}l+B)k_&IJv7A_NdMuh}~>hJ2XaxfO**j482_O6O$g4Ujz8MOh3B^|u1?{2U z;+#z7sF(PFy4{gc=$nlG1f5sjm;k1*i)D zFC9a9DI^qZ`QFG;4q4sa>$ zc#;ZFW@y9JSP=P}fU8l#)fuf*^>;>n&Qrj7($y2x4haW(=32x6>^TTHF*~F4?IfL1 zO4#}9j8eodpD1AE58S<08g0QFg2ggeB7;^LbjhGc2E8))5CKQXB}?gymOD?Q)f39| z;SoWt3@Q*H&kXgwGkTfxbcK4-6Hm^@Bl0j{dz=qZ9s=kIi%YY;KEja)f1N(J3`!Vi zrM?RMuLY6g<2zK58X4l(+1M-}@I>J=e_CndVi|CgN8(ll{Nb^{B_BH*$-ME`*;t~U zkgo!d2x<`^u}^(qed-bQIZt=0CuCTHM^=k~^{Ef64=bRo#qB)NjSYXS2#*LV5U@V= zK_A@62yo$X8nvU-*hTzdyqzcREc|su@8y%8h%QEm#6t3i55OTIuruX{L{x0YozWF4 zBfhsXhbcbzg=a~<>B(zdiwnry+&pR-2SMx&@}p5G%EpkjV&uHfW4<=uMPC`Z^;c1o zb*`Rhn$HOHaT(m$2)`2$5)PqBX>_eiZ#oD;NrK9Lm*c-5#$eQ%gV!5$3>44x|!#c2%E#?4?W`G|CqQZVm41Vz@ zvD$GB5-ZLnTyX+oondaSH^-{*I29hR!qF-`L4_x(a16uj_2%++0H)R(yMJ_ZJZu5z z)TY04njpmSD(LXeX~+(Mr&Tc!i-xdDpmhSR6lkqLtA+WFA;ZGEkuXOg)Q46MWp-2{ z136!%(E&1J%1-m~i|ubjp58bTz?M&&{}LFmyoWso)%N$Fmn&g2|45k{b~gwx&WoJ# zG%I#QU%>J@@s;`*tv&J zrxn4+!J`aOa%{AaAW9 zfb&i_fMAfYX38^a4+W{;k@xhG`qv7JZ= z7coW9*}p|V`9=?5g4kWkglz%uCb*C&heWpAGg+%CIun23{RLv$a*A}zYw-?uAR?9` z-ExX_%V&sKpNOSMx11u~@;M@QwupsDH{FQpAky{kO%{d?nCYBJ9}-4lG<|7!VAb2W zeRgAePiuN`W4kM$EnV%0SDO(1!0e@0i8FiYRpLxP>OTXIHSDtvNP73ss|3y!eh*5* zzqb|AHu`k|4#+;}%itRM6ELu~=bNL?MqbE!_eJ1e0(rkndGB&$YcShF(QRslO;L3DWQd{BZ>0d4ab4_-9=sc8@^9eG zE>zwMY3$n+!j)MyFE`Yz@@~SZ!WbMc9JLS1A;;^kmqVs;F1We& zz7TwmY@_;S+(1#OZ?n8;&zRH%JY@PTYweKxgIEyEBxG~fMEgp$pSOaWx+c26Nc(xR zVx2qLd^Dz@Ts820#N3mxCeD2tTTdrleMt{aJop-}#GqEackfsFdngNUWX}Bhs9#Q% z^2AwZ%_}T;x~>8fT%Pri_e~7umam(I{yT;=PXR~f!FQ}DPnIK;d_onUN~4TeR#0Rw zXb?RK(a2T#_07<&pWMrh6T)A3NY@zR5OA4@Gsj=Xt@O*+i>Z+b4#Bl`5_l!xousR z12Ni;z7b2h*cn=8C>10wn{m*M=nSz?JDZ+J+c}t(vuJiwjqJtF!J`quU&r8Yv5SI$FozvGVOy25NJ$rDxWXR@dT!%LHHm^0(KCZhIWTvT;c5T`8OG z>~5T&Gh|!u{fe@$oS~aO63?*KbGMn6`rfY^Hk_lp(U}E`F-HyQ)=$cUCPC zVXSH~Le_$kQ9Me5r>9buEskUHD`n);eF7jFsiF@_J0c>YVa_h4`0GV7$n2Y>QnIdit4fWYgC_#zk%x0w57LH zpN_|HbuIp0U+u-;Z&sgyzqeGM$>?#+couV<%?#tsK-Fv%co|d>X292t9)K#kFM!J% z>Ubk%E&bnABdQ{Rgz(dVqx%5vwSXIlvMPbH2IfBdfOwS{`RczH7T|dQmH=Ex%%@+G zu+sW-Ft@&2yL~tJ9EH;QH*Tqhs$c&wEqYoZqi0q_FT4ap5Uz&NDiDrnU(^Tueg%a$ zn0su4DVn}cxKGRnEqVajAx@Fe<=3WK(Y>N?V;lJCx_5wn^MMynDU9=FA)GG@-wHI3 z4s4qN+_>y8aP5{_lsSJk5UduchC=b+!-EfqRtwCnMOiazQP>r=z%i6qijqrFLn)dn zVS)00Z8nmjpbV0suun!Z7R^dZSzT#SExCdNkmrDZ09Q>*_w{qXpk4;?Ws+WhAaZ%? z74%UC<1l}(+l^kj9{qmZ=4EvD?}6*FATwe%%2i3%k)lf3v5#JFC|N?yPPva-*}{>?}7s%Y7JKALcYi@%A)F z*=m}j-~p#ON-bsirL3v6$gNvCZOHxKv0ZHZEm9n67x*Bf6C>9k$g>MXsaMKUFMk9d3o(H*r&yx!%Af$LSCxf@{PT?NmpG?~Ck$X)e|xw|T~xs@Sqz9A@7mtY8*m=yb( z7}CEZSoTwNPTFfra1xV#_?rQ-;J1uUjO;{^hXoG3ojH#JLumb(GBM+nKT}d>m^-Lg zW_+VB1U3#XZVzx>b;cj;MaWu~NmyunqbEq+vabVA;XmVbranJWq|upd2oJ;HXk(ra zckE^nsNAoLwC18=*jF@Hb6^;x2?1>o9w1BzXoYydxKlT5CH(V}aSuiJOXaQYDBghD zx=`No_sDauT;;7kx`KQ@{Y{&5r@R`od=!?AQJl;pFsnyk{RoW0`eBU1Ob?9UOdnCp zI4lUps2Pm&F^((6sM(C0!?@Xun?pkdqL}jEi6w6YUZICYAD&VVE9-V+((fo`P%pUF zK`3NMFId(gkVb+_Z>2ug%5bHB?{aYHZ*Y|r{3LKog9-+{bGX?HyH%&t#N~5}I|_B) z&T-%`Wd183(cRlaP|ij8LCCzFqv{Y}IUGWPdF(8C;<{_Z`60A~q+-tk z%*)3}xD|xIty?WC@PK~p3x8ElzzzWhVF`c?$Hk|Z`bR!;{2Mt6Qf1%@D(keL za2~0fKk{7O4%fIh9jDj458tjsSp*ylgLxi2T}dL*X6e92@!MJa678qqBKr=Zuo{f5 zj0}hCh=5WC@|znnC%TSZ2b7fVmrarUU!Lj+Oh0*in^8~#4O->No*<6C5-rV?Dv~%Z zi~Uk`Mz+4vmk-earm7KBhexO35=|L?O1(9h-2!B;Mjl63M z9)rPF%_}@&??sIvYlx%OL)~xj%kxh`{V}PJEye@d0B6G-*Gg z`mL$%K(kRbG(E{MUl7}E7P8>nUmfP#weJpLZ?|8zfFws&mVw>uX{B#?p`(u76G2O< z`9URxv$Z%KSFlZh3?xFzpLtE4g=gw^1!Q-jtC~cgPY6_1%&WmnM-CZdvvkcI1q%AO z6oFWj@9Jw5wy4y5wwk+Ds*x%c-_tm8Y3#y-%Sil{e3!x&n4#6nb=%SR>Va|wm`&Kf zB|lQ%OJMXj*wV_)dHP-%3rh&5R!B{tV~pZ$$~x{}gyt9XM_Or}Mv%l5p!+&3eyy3Y zh|Gs`HJIOVf{3rUH-Mv@lV&DXj(>yCDom+C!WaB%!+hzm2K6m_@(FY-0QK*|;dTZ3 z1~?2@u-w|p?#^U+Ku(tBFq4dmUbOXuG7AR%5e$HzPq5e={2b6;0QhM|sSYPG^qj-T zQ1+5UPFVoZvrR507R$4hAbXU(fQ_KiUO*yf#yUva3y4@@FQBj6i57DkAQ3klD)94; zqtP&yhxB=JvYS>nKiBV=`-X1)R6LvOs3H%ftFQ2nOXzk<7AI z@Dq$Xk!%*$4yXX}{CT>^F*fB~kkv;!u>)XJlKoFBN}Lzv>eqY%{$gSd4`1+qgS$WD zq&_C{43W{(8*OC2y5O6LIEol8z6E@*-#Q)MR0^A3@9FP{!Nr;~DEWI5x_cj_<7lO` z^uzNM#WM2lN$AgGpIXE{9rgz3hTB?^9X^e8Z5q5Gc4^U#sLQrbw2*eXCvl^DUx&D? z74rD9dyo~S!7vv@3cC)9SaLzjYOXLw1D%q(ND{;sgCPD3IG@xh z0*V1Q=ghL3Kfg}opy%($e`gnPjyd|nHy*MF*js3Lg4mB6%=L${STvaLaItVU0cX4Z zd;WF}9~nJLwKKC_Yw>Ha)@SX{+zRN2D=R8>lGqxgZZBt?XGmNA zS*?^qL~o;#3CckKi2-gTMQF7MEs(^Gb-Hy9)H#spBA=X3U~iPsHl`X(d-}s;orSHr z6=h-eVX|`em1Fi*II~Y|)3)*`rrfm5Xo&NwPdEQC0tvByKyT!;**`!CYT{z<^yh@2 z?wjZc5%(165x--UxJY)83n$&dObckA*oo7!vZgn=^<(_7ejEUe413?~{cj^WjJnI* zze=GJFG!tEqjHPRrJcXodb|rZ;p!cQ@%^4Qoc@jiK@fWZx%Y*|{^yN6BW_bl(Vd3e z_&P-qq3Ep@AhVK)#-VV7HPsV}wqjyZw}}^fhvG z;b18FdYQQ)nbPPrA-Ub_kG?rHlzeTl{sgu%{9FY_G?540nZxG)^yU6vv%+Um$wzZro zVXryw*QuMa*M-d0A>5P}tb+}OD)K27`KakZkq@KDI_pCCA6Xfhfg(#%Hv;!msdtOZ zz;F@zCSgO0JJ17H+5zz zdrHi*A*sg@qbj-0Z?5)B;Qb2v0KwOy-(o#~E6QoYNL9}Rtmn5TRt}|+uD=cwq(LYc)4nHA- zS$Vst#!Rsm3|XLfh1r%}_-Vy!>R$@KBnw|F3;(`bM7D~;!;b@%FkmCiV?=pGEV$}h z8L2Txq;b(e${kBaLSjMvev#Ec9vFrr<}Tb!Fa3|D;cVU`9B%MfvZE$rT?hz&-2%%wD>lWxK)k9{dFrMzcP>UFL9;sjwQADZhXzUNbgR> z#hN*_%+*+3f!Oe3#$#fcUAygiJoA3LZz6=pDwLD@N+x+-x4dExz}Xq-p}}9b3f>{{ zfQtW$Yf$hc+VPyI{3^F>L~MeJk9{8{hRn60pmhXiceP8K1XwhfPV$-;=$Mts~t zBBw17pA+o+Ec{6nmJRlZtingy-B7}A5MU3&lbTV-nro6fu^4QEi%PK=T#rI;yAJs= zHtIq{E%r80lHFh?lh;FnS@fx1l2s%7LBLuRkN{$!(g0*3-feAK?A~_J#@Nt$#qXRWemH)O-UD0mTJaj)(X|@>3o5W46y9a0gS{ zr|_TzT2E}B=PRZfV~;@++vkSlR=Is{<@TwFJZzt#$`|Ml+1Wmg;%>v0#O_%%(C+z1 zj(PM0?4EsivUkq{wR@&3%q#&h^(WfZ{`mp+&kp3UhF~$>fz1=aR_vSzHe%aE@Pe~v zK8ej_Bpnbrn`U(|_I%_o>3_@Gg-+(Kuo3IRU*P3OZLZ;Nnb_ors$Za0-Iu-){a!1PnH9I;hS5?keuIQy`U66dnF$a#0A+$bjt zu(7h7OWiDpO{oX)AUlAxxf|ma#C*htI4_!_03d5WKboa3)?oHi_JYwV9 z0Av)nl(X-3W8ae-QtrNoZ7)!~N{q}%IWoiL$P5)D6S>%^ffg>QAdGv|&4$1jwFq^n z?QMhH-kefM9AQK^%TivJVY z3S<{j;+Nfpcd0TLBQ!@4S8Sx+>rj~7M8ruth*8x`r>f$(-e*9J+{6~f5SLoRZ9*;n zxsXLqM&9&~2dpMKkKevFV8*%UlU6zn<>t)KY>?MGAkVV5f*pr!1?$CD-~*8M?E9zJ ze*y%@iEh6Xk%qq~ZcD(a)BZt`qy17%tqdz=TH|sFJzn^cf(rCIP;%L$pE4bnI427L zkPurn?eAXzv#GOq5h2vF_2f4AaqGcW0LF7N{=;?3I*JH&6Y~8PypLDa3U{2i*sEtS zGR_Vqw+&@ZqZl6Fo)^3-ZqEa+nqEtO$vLlYFrNXTA@;oY4&jHt-e7*8H{<|{=++8c zJmWSuqFi#xP20FR8O3ku%YcF6z$sL@572GXo3={^Z~GXd_yY-Rk#1fFX}AF3W0_^y zeUXLfS2NNr0k6LRi?wrXHS(~Q+hOG1I%;|I{ zRX8 zx*DPf@XZj9AC4$wb$Vs)`7>vpdt!gYZCzL-o`n}$U*}Y8kkH4S>Xv~p!s50p97j+M z-W~Zo_UB}e+h5$KEnOLaZ}lAUme|U0@KhuYP@%wAj>8kU#pbm*w&}HFs7&3yENf+3 zGQHceNzZas5~5sO=m>jv@|+vw5S_r259805uFvj3AJ8GkUkO~a1=m33(Wrb!`acZe z!W2qDN6{Ch^j8A^j`UaJ)9&fGFi}(!D(?2h-Z5}rNBA$jhW7B#$a-P1%v-BG>7&4t ziKobU&@ibgvbzLF#_SYG_$n~`&_Syz$LVp2O-c^XTfOvj@?_TdK%W{2?T32{uG9r$ zF1dQypmizlPF?tSY30&h-|L9J;j(FRN+@00oKe9pzX?amQRTeIlA^vY8MtgQ%ij?*jmp zD5vv&(OT+V_8>+%0l@C!c!8PixWKDW_yu(a^X{q@+;tP<;Gz1VDvlg1*Py)ouI_r5 zhpIlDRMkO;2FjCFGjweV&Y8nixVrH=U>QKDIrjM|{BQ7l5Y8}deH}T%@39z;uyZ~*f57uWriQ=#IIZsuXu&oj zU%C!M4&5U$f2A?E4c@mlcS9c4E z9~e}DA6UCLHIlN4N&knvw~vpiy7tC1BtTMvXV9qVMHt%H zn^e?9QIi5XBNI3y6OEO6u|-X*rL<~IVaAuLB``BGr^9G$t=Cqo+_tyvb8Bz0THmUY zfDpi{;0wM>Km`t?5U@f}AN+Du@i;NlY^Ps{ z2w4edHkkPm3zKuu(jXy?h90vXM`XI*#@Qd49b3S*Jzm+4WLI5NdH#dnplD9D)JTuU zf@`#TFd{NAslBChFNa#O(n6w+D1!; zIS%5-&UQX(e-0qv(4flrtbAy05dH?C(y_{Q$mc3}QcUJ5cwXN{rE+bFY3)jFf?BA) z=^OXDXwQ4D1~<+o{~5maa0HmB>E~+??Hvql;9ztNwK~T@t8+B9I!8k;14XviM5|Ng zoix`-b0))%abyBlVZhfO^;a=}$KxcbkB>by4A_m}e(txZ^}iVTs-d-_Jup&%F}1lk zarnUg7v+m{PX2qGFRo6mYqUCJxkoq|To;TFGejc^S%Dp0CGkLaOpPrUP&;ZB5A2Lt zw{k9n)$yjiN2~=gIarEq;bd0RA{*<@Ms~7%($j2YS2X*5&@e?$vys1rv)ALg8PL;g z1Zpk{7iS}TvKRGauis0V8mMtL@{xKQnT>#TXIv;7f$JZ>Rb?YMPUl-qHi8LMsLNi2 z!_i*7`GFrZ&vy_MB8dFJJH_BfLH)Wb`8aVWb3VbG$(7Jl8;O@dL)wS< zjm*{$vELqr58_B!z$L~OUIXRohaJJDc+(`8nTY~Hru2<3c?N|{9h5_H zN_TF5$w(`NL;1*#D_Z45*%J}2ZC6ci-wocfB$~gm2u>JUW#LVTJ`JU>4 zcGvB~JQfa9=aU`Wuk|KIN9(WePIjC1=l3MHnYlpZepv0dCqCDm3I_v)V$2$pC!Yn! zp|4MhgCxR_l;W>swD*%)Spy6RW~D=zm1kv+Fk|9G@<-s*;+dUP<;d*SoXvOuuN2^& zLazy&Tu*N1gCjWbIAnVL0~8O{oa!_#BL-2!bFqH5;mK9kg_)3BNDmnxs60o4Md2bm z&_TU~ZxJ|X-{fzvlsx%G5+|eQ*lVC~RC$Xk?*x3*QkUOSyz}zm3_q@BT>fq;JB~7D z11@eY67x{aD;f`_E1%)#I=Y5}DTh;-W#S45Y`;mWM`U0ki|G92K#K-pXdG?F#{7Sx z!bR?E-Qe=CA>judEm-njWQR@m886LQ%u>mLz3%YX{!6Ly<7&*YurY)^8#A1g7+TPF z)WAO`)L$^zJ1{uJ<0ia2o>NNi=iaxSrWTHd*Z$-eV^({t449q8VG}xpH!`6d-bAZs z>Q`i@dU2wk>umI}hp01it*u4AhI=jUvp&0$UvT+Nwzp2^2y-ftp)~mwr^)_Hn!F}U zp8sZ^{@RRY-gEIY%hi|WZ zmdhXyJT1>fm9&!;)mFLMM=5Aqqbk+G3g{MgEHGimW|ma7MurKCFP#{UZ2JBZtWhZq z^mz$NgIVwI&=(G9CMKYR5mnUs$b!IPe(%c488}q@9Lso67C6~p)}&)oact@SHy*q5 zn(3zm$)I;37MCUuKCW1h%vu6rvCGpD$iWi18>QoPK~JN*RXBHFWsk&@9z)`%_f|rl zq4cMA0h(?zC_IOx%0{eR^13_lHa8d|aMlfC2cE8MWsps058N&t!N&NSaP}y#32{`J zO>oq>XiUu}#5I1yjvDhj4x?yk7@llMTY#?dLEzn{DE^)4IkrMFMwUhOdp=DUHQ+#++sgusdq9;lCN%bJW>i+EPUJ_8zRe`jxPZaL&yI^Fx^EkWEza zQN4_IHZ4Z__nagh9}V^kDMl6`{BIATUtyZ~Bbh}_TVwUlCr895nBB=?@d-0}l7r0& zBNIo(Cp7gWpO4kQkbEXSp)|S5oG_z1xlC=F?hkMvuvwe~#%R(+c$MNt5qg3$M(V0k z)jq2r&5pr<=n;I51ljPWgV$??QW#H$3E*@|z6q?tE_D~eG8j9ALp!1URfnqr(!3{T z7fF?j`JaN)dV~@crpg5dBc5TV(5rdR7~)6O z#YLpjGQQ;dSvO}LKq;JDpcFG@;ozEC zGUZ?jy18g@N8T+Ai)`&n?y3oK)lBlQnvj;UNga|x9Z@!Vr-o-dGjP8rKyBOOJ5aX8SIK!j{GgzD~kG)nK-e8gW2k)tzx`FC;*N#p;0;v}(W(l=MJot?OurEp#%!khs(ObIQJ&shhLH6IW=wq?{wfj55r-}tL}Li z4pUxr&%T&19QR=Gi>B5@m@BviLZ;%o7u?Qd?otJM&9A; zof7*lUx@{?5m+FlMKF?$Y>_#ijckP+!)A1w0Au?IVde~_xgDEk_&UHWW)ehBx&Djo)VvZS4zt>&#W z?KCkkqU+4ERZo_n^Npxtkm;3VEqcb$0@wV}?Xn5R99)I8C|KAmo^-I$#^;EVO4{** zAtX3B-Ue%{oAEk8AR~{JC;;VV+XyOF-^s`fT{?rXL=8DGpF5~7Kz0Bw4#&^Z@zm_I8;MPoQOWbm@ zBfy>Nb-E%-Rsiie39lSXw22Lvz8IWj2E~#MX{AeJeYFNDhQk_u8Zvy6CE{<#0rsD~ z{}Apy*U{Wb6BT-@_RpX!KbmO745BMaeG?+)O$Q_iCpq&*d4899(?+cSDViKKH#LI;y1#y@`H&^<4qDdi%tzm4Ku}ug^ zCxs=piLuR$ZIRe!iES}cJ6gdVlqByZ9;<;7+R1Vf=f9o^IS+m@5$vX3gS``uW+S^h zM;hs71aS6&(<;?MaAiC)NgN4AMBPiYorf1-X41a|s9l4f?!Yg&kL@QH|I=GYetRpD zBY`E0FzM~XaXg2>LyIu&#E6R2@)ZmR4>;E1*&TQ=P)-S?Hw!Qp$YqycwRfi$$O!rN zPU)w1A#o!PKpU-h!K}W2nHUJY{T-P2(2GypvIVos59>iM@cl85ky(HO?7Q&8+Nq{! z%9j4(UL>_53H~xt?**Z=1g{&ghl$`HHf+|;4tsR%^AjQNUzV>}XFT-R$owv9=EDAB zl~nM6R&$RBywA(B0GKza52_t;nPa$5_>qm}T%gl(@; z4bNak^~}mS2vu$^UDW#$Amipf$a%do2Iauv^h%DIpM9f?Z~pT&tA zPhV@ecP!PKJRyu(zOqSp&KJ63sdu`e-rKQpG-_S4XRY;W>&BsC+tL%uL#2qUJ1#4O zH6-6~hgq}|u2iCx&@I3w3Sf0i8NBR|Zd(*M#R-`6oT=3tFb1sx+kHxPqbAchs8Q7LoNz=E*-Dw4>?;NmxN7=Ec=DM+&b z{mORgSGFUT`jvQg7c(;k;Ti7HO3f3lhNk6;qA&`z&co|IYFZi#A4hZ4ZpC^owWYY@ zT_|0?T|x7AD2wDL-T+amEz*CRD%SPJssKI5lVamW@O(Ar*|5e zhftvIbSR1?nk4dcuicECAdy_ighbOB`9+Cb1ad`29iM?i2Qko!SQRCOQrHZgg||v9 zusWZ%mQ#1^<5F9o`ibKZstJ~T94~{lPL+w=VXOLSo zq=AT6C{rIQGf)iS)unzWN?7 z^-c7v@8wcobf^`y_dqL16)x)Vt3a_(lMh7$Ty;l%G>MvU^6K@vnP(nVeOHg@tormX zQ}4}yg)pQbeXM{m*>lCjOkd*O(Ap8{*fQGhG=CKIN8au>^EZ^3`DsAOBt-dXK-lQp zc>e2fU1=*V>Zr9XwF%DBVqt-`duuJSkzvhO)$yXrxRTw*t%^CQGXbfK^UQa+YCioR7G(#6wZMCZ-xl`-c z8|f=R93#0JzBbEiEnmMXucz?!9K050&8MY77$to%XAqBL1EUI;zzAKuVED{$04n8| zZD#>x>I*9HNeMq!s{%VDaEc0SLV$ed5AbAhz;!XtABd4@U_6MYkUNNgV< z5}RuZO%RM~4Uu3SW#HHhQD{s2nS*52u;>!oR@<`v-$~rv?;B?RdU&+zpq&d#g+5<1 zY5<=V*kFZCt2Sm`7nGh4C1wI&e}hf<6*_=T&^Wx2aTJ;8E+byAXWSb)PGP#l@r?VS zpn6>`X!xc!!WMT}p$z;KQ1j=lqwf!Jn04dOOwMGmvNXT2v-pAC(&dooSD+5QO2C1F zgaHeVvZ5&YNa4XKGyyWxxfm1@jnq-9i!c>->363S*X4n`Q>*yw`ULHLDIT`(@=!Z7 zWh|8Ke3Rx*3l(mR*6%eIT*m^BkaLR)`w9fu%A0lNFgpduE4&EFsK}$A z4^^>y*#U!4G0FYWr$E0(=obYe3RRP4@K^@bH{{kjUlY`kI>yr)q1!>c=x>KZtM1dC z9J24g2c#zdf){@~hJ8xS3dECNM$IJm%bx=MFw$j9=Y1l1qqKpB*}gVhh@i|rw+$R= zOqT0qJ{Xx_^ScZ1Bj3FqFJ6&G`a1|8s`q2eokr^=xBV%#UX64jcc<%~r4WXexqc{_*oT*nTQwcT*-B5U(Xa$Pr)u5l^b zmMl$&C?}J(ySX5L<<5jTcUnh>9|{z1V{Nl&4fHaU^|_JxZwWpvH^<629?lW)QFz)f zAEE+pb264XOYlnoj)-ptsjuEDDncA3C5~Ai8>tdjS}jD6&zg^l$c(rYsczL#Q)2CiWxmTIb17E;0>6*CcqOf(MbgS71}Truj$n&BY6X_U(LM9 zW%Rf+*B`)(zvjO}_}~myhIxs?q~hdXg@Hu1m-{*Nv+J+awSLJ+krMXdvc7;ib6hf4 z`KxU#xJ2rFxJ@n& z3C9jb=2p&vd{dBo$g%Y=B(BfRsK8@RZpKJFuE>Q)!OZn?`xK0`%i4@pUL0nZh!=+= zhDm|t5;=^eCMT&9h4DhMWd#%!8aBHEjv$VaNR%#-!-mZs1)s~A7f=ggAKW-|@p5I~ z{oT?%E0lW_O7m#n7qwPkgPD3a)L^ZQq&5R_?KC?!R%nGJu!4 zA#rj0R4V2fG+U(miQMPdjKnutUGDH$jn`0mBzKN#!|!$ENkBA+RE;3HCFDFb43Vl8 zxD!qyZzb!9`no&kLG~;p0VRJqVjXUO4ezG40>KO5KY?RR9;-co?{i5FM>335pmXjF zrH~PRjXn_|UdYdZbVb!JqbBk$YA({-LE#?4m7~AR5<_VKz`-0S6FlVH08{{JhN33UIUPYw) zene-D)+gu?<3qOR_v{VtOPPyMliGH{Rj1&i4zAj0EcgO~=pa}oAA>hGWIABcT#S(@6`x_nKizrDUd+z=DylCX z{VeLQccaqLPa=Hqj$X{xp6%p)^*q5OwfurLyp`dUap=Df$Gx*=zLyRjOlVqMZXeXEag@F#(b<(0$E;Ju{b3 zae*3g(4yYMC*#)o!oLdK48rNsUhdmnlaPetwmx`Q`7iG)pMlXjnyN+YVca;OL;=u0 z4MuYp7YT>)RcNDlj6^&?ZbmHiE(A2Zx3R0otbQe4-xD*Yb~ad>mjbEv!ok#*NXO>U zVz0L6WhIT@f^K;ZqK9}a-w1&`1Ppi)=?)Bd8b!KO6}7gA+!Z8nV`?L=C)wYzc_`W5 zut_`l&9sw;E}cgf&9QHSEIu2Dg}7%bZvV9E!!0VTO8T_R3Ld0n4|A<16U^lp-cH% zBd;Lkj+iKBlTy(>!DWh0*Ljv=`h?5&qLfOVRRTxr%nZPX7=YCH)b@&|P#0uB4c04B z)CbqOutK@Rq&g>1n7<6E%nvyUgAeE+Hq#9L8bQ>)5OwNeq;K;w@USLa)j9QmfhN&kKRKKZ0;)>t!){oN9iadb0?Yva!Ua+g&oc@ zj-J6Dphb~_ok1Pb@OZ*pdW^UWy_<2zViff#F)o{i_M7{ecAcnYFX;U-QCOU0F2#$w)DLb?aFR+9 zv!EDYkJXNZ2^|dNnrH-$JQ?Zsqe2w5e4s}OjPQN>xuQVH!CyO#1@uN9A&$R4U|)=P zHYKC`1QT4UN`+ijwZ`W5QEEkxEdE+OgYcnh^#``;3qsz|Ci(<&&}6T_4fP4`eV!-q zZuYYy;y@F)C1L$3*6`I|1aMrJ)(AGCK{tU8-}Ks&CeU>#n^0xvQMfeW47~W8Krbo> zZ-UG_4w8}DPx3_EGYc1YQR_70QwM;{4X840S_U$aHUuKz_orU{`<05GS4h3+az+Ef8-~*n3RA5LN^dpHh=S7rr{9(MXueFf*dWjUBTtsS# z^5qga1hZC2M-mq>B7K%HrkKX3mKA*D9OGg89`Fmc>zgBl8t{26LU{@mW> zEU!bN3N>e*Wd{03_Vd83B^qR8=!MreLC=;(i7=X!;#8+qVwgnQ;t0ZMY^n~8sU)Cx z4a8lt+%#%Mvo<=*ZJ_n<>v(RI#JRI{&RY(kt{*;6}pU##*?nee!Z? z5^9A~fQU~{6eVnr z)a`~J1%zc^gdyIo_eJ$r@+iFoDfS40Q#6NNNO%4_u2}IQv`zJk7Ar!h2-^^Xbw#ap z@FhuugPvH&7I+a;KD+jMvc}lhm*YSpUFYV<*&J=GE%Xq2b4O#EjWcc4jWhsiJ~!QXV0M!+*s zTj?V?M~zye4lDeatSfP)HOM|qgORtw@nsht5dXm&uY3#E&j_OhI3Vi+?gTj9fsG76MH?WKImyC3lt?=1Qpt3NRZEB?~ z-AqQ9j}PoCQHIo=Vmwqb0*MG)smIr;8K<_*`w;sM7cZJ(#eUegVpk)`MWM&3+4;sF z(aXN3rSC;};C{_;JU&1jrEWHQd4PU>9?_qvU+K@tZjcs>=t)mDnl`fbub^?hZl!S5 zSNq2hlvC#-9cvz%)WN~8 zppa$gQLjy@kNBzomQmux_t+z&170QOVF#qq01tQp1&^u&uE3knkL>_;T|>WRWS(-e zzJwQF)|CiaL+nV8?l{Wx4&HG^NG+T%y+(PV^pfn?l@Dy_m7Rx0_Y9J39wGx!x9%Nw z4ZVCGu-?}oB?@E2W-0ae2QRga-#!gc@SUzsKwfvnv~=h!Nbq{9ZhI$FC7-juEy~>M zt!4cvh_ZL6-(#efqoyWI@Aj-U18_3Wdj?A&SPMj~cKX)DO`tXK7X*X1y@ksl6vS1a zcvbQ&Ttd_t0j>g}h=?0R>wMg-6%j3)&Ip`;p>xjD1j>y4C$;kYZS)w6lXk7 zVQ-1)0>{(NF^^M2J>UL0_2Yc&UpF=14pG0xvD@SId*&Vq!!EOWzcvk{cL<`j#`+J9 zn<@9@;M1z}5CgFjVi?`bo&EMl|D^G7+RNL4oU!=S_PY4PQR$Bssr3eb@L0gO01dvi z;C&zH;4l1v$H7;XllcA)b8#IRhPKg~1zFFlV4~qE_nnGZ*u9)9Qpe_VGo%y=M)d4+wvc7AcqAU+f%$ zWpb7^rKGcu4_BFbspUP%SL~h0nO>bJ*B+pwb)CttX)Ru7UyvGT5Z_O5)bkkHEmntcHVdURbN*(vrP@5kEL$HBY~-fXwBUfyafb{=h1A+CH`;j zseN9ySn}haJ)G}yzcvh4*3)sZwxGf6q=*bZ(9|?7TC?O6m8G@4z2YW737c}QBe^Ch zbHas&bR*06kW)tPk?R7BL60u1;T1&49_(!j#d1S1?Lir7#c&Dfo1-5Dx3|*Y=!1`O zgP;(#j;-b9B#g}PYtO?WQ{tSc)s^ZBB+vH98CFUQS4yrJTT+NgtYyaU*W?bv;ni`N z+jty>sf>q#nVV_94zEf_!!`O2x#pSL`HkH33-_qJ_CcAKM8vy?P{7Ficc@eyEo-h? znQCLdo4LQVvgNshg_MAy&_i-D`a$QoG+;f`!L% zz=rz+jscvR|6xfEuI*MQPmsGn&P9&Ge`yIV%utY z5Z65auv`TnPOnQ`>+5#@g2*mPPCd)Qx`|yb86M@Mn88XKI;q|8%l6@qLVV zpzx04F69I)V>nM+&-sefp#^2po@)q#asHd~DbyHD?t(+1<6IkYxJK!LQxNc^%6(R{ zH2Htb9O@^2!L}7{b^=PvHPjvNLzM(F z=O6$<3$UE0^< zq(RDx5+||ErKv}209BL>wLWsQL_;+~mKGNo4sM|i@~T=*eb38UCw-q23HlEBb*QAK zw4jkQsje`y(qso=vC_c}h-OtS#4IZttPLLJt%5fPhw|3>C~w#)Q&C>iDu8bx@r~y% zrz@q+5G(dJ^@l>TPJvwg;|8nSo6c_QRWtu3bJEIj+?}6BdM27;{}exFYA5cu zne^Sa20T zsE)fsX-{5^g67(yB1$P7L`?%2p;9<+(;&x}@e*YG3HlgSDCB(cvk{-u@hPF!xSU|C zKH$elgJfSZZq7HQWi!Ec2)gq0WO)47fM{VFxVcdhewifH8JrC2O~nA*vZWQ>27(w0 z2;XR^G1!h_1V4O%UUlAbN=^k!jMcR3X|ATJBRi*7anQ`%JXuYK>j+}9UN<*z-6VYR zCgEY0uO>;u8!|~Qz@yJ3(fC(+ylZ__p*;5riDFzDn%X}&ab#-$ki;=d0;&Dw$x*G3 zW{Cj{!PZAJ@-npbQ9%~GkVci~<45MdM==!6HDlIGruIxvuH-t8rn`=l!E}hE2@J|a zb<|V`B_i&u&HN}>;xAYJUZe2C4v^V!xlr22$*XpSN3I0Sw)|}%dToy7|C^KroOSY8 zVM}&v#^Y2YJs;H*&g3?wtlJ7fUBMBJrk z<`-2imi*8k(OY?Fj1c;6i7u%$9)jZ_uuy| zC<{|yD9#n4-UMpvb3eM;Pxr|E=&$*?YXAM{w~2qK$;cQVyG3@_xE%QqqvrPEL zd=32Op2Tm+N!~BMptnH)&sd+^2rKoO@AvY= zJr)?GT zwvF_yh|{+}!4VJvU_y@#1|8z6!yrhS-MuNOZ9i(0zYq4`eKz+?xfby!^d~d`{n@Mu zsir^T-J=ivne5xMZsze$T$~ly0(*cwxj+Ip@bbBSoKvAAMo$71KLrqU# zls$vtJQTK`JPae$2PcDbFHPNq-O4R(*a?e26gsyfZ~+&yg>l(P$)93Cu5B{K04-^j z`3cm90_J56MX~x7MxHm(#j)Xnf)cRialzd5<3f()7DIVlX$;OWxr$@J5G)F3X|d|{ z@K^Im;(=Jl{y{MuhsEGM^iE0J6RUoiu0uO|2F2^UjnuVl0E9SUjv@#Ee0ZDrajn=W z4|*iXiW$+Z@%j&O_6A=P6KNRhUEE??%SA((tY%f7(c`00^|E zCWuo{&JsHH1XaR;8>v7wM8waTdtRnPoN5T0d3{J59d~9chLI>j+T5FjubkfEIpf{= zq0_~!XLkB9<<%1}%Bd$_$Ox6h>Yq!#)Cdu9?ormuAszTQB-4tdVjv!H2O?ko`xyND zv$sUMPX>i+rpf*W)|2=^8www2?*ZVm`82y4?fJyq^H!}-n#S>W?}UNJ#R+h4Ho@oK z41UZegc#>@ZpOGU<9x2o7}v}=$f~ttv)}Pd_)LgTCdd(u-?5pu*46h9;pXf)BTd6z z<>Typyurtrc5vqMhj4TTGYHtDD?evD(A8j`0BeVs0qjTB+2|$gkZ)1?vXIZf`Yr@> zJqiwRxh4JB=1&AnQQ@dIPE@rix(uAqicqY6O`BH(2k z-buklbSp06Up+2j$$(r0qyW6X_s9Zwazs@Hx&QRBghnjoJ)|Wkc9uQK7;2o zNS=z6dFRz2d1@Fx=QZKyLcU$n1gN!u!v9xa#q(7F{u@%}T}qg#&4g|tG~X_183-CF z^DZR}Mz5#{&s#}B@VrBZ?_qd=oEQhf&AV5_FI+6)t8ZPRo_FZ*Jq!<&U!~8xSHmxC z2OPh@Rz2^~;d>Y!D8EXdcdv$D*abM|?^e${bod^I2g-;S` zzYgES@Id)h`n-EJ{K8h9zfI@Y;d>Y!D8EX__$&B@i*^1bI=>Fz!|*`)RXWCB=Wo~f z*XsN_d=J9|a0vdN8#G1~8zZI#@jfNQh#F(WWH1WT zY8Vq{OcP?jCQNH$OfzFz5CbM*S_=XWorB9$Sg zwyWnYYw<*029e4TQ@hmjmTrkoF^E)#m|BF6#uHAqB`SCR`M5Qu_REC(^u2a{lR0fgC5L3H! zYPU*d5UC8QG3I^CxuNjJX$O^_3K&_a{Dg7b(}ZbeJoF+a2Q0cDUTv-E*c3b-@`(1b zwHEY27Pew)SY}0TOkdrQvA89!c>deariTL2(>UYi{a>&&m;!ANYNuS%UlV2iM*0ci zarcVC^1k!iNS|E-y&}*+-$b8#p>L9(gGuhYLAnUjom1UM5GP}b%bfR9#L0e&__XSZ z4q9VdAtBn^S(~7^bs!yBalC7#k@!M zyV~S=b!xGC%36{VB!VR@LCOFq>L)74yt|mrI<%{&tT!n^B3Qy&qzqJo$}#UQrn7`D z^^`R!B}fEI=tjywC8!+p?qWJiD8lS!KLq(iMnxxC0%Ha$LFJftm*hYRAzea^Q-VaW z1jY$?PcS#PE z(5g#lb4rj1mcW>SN>Dj4A5_lNVqL-#rv!;$35*%21eF8xL6^|3OIYiaAQ3EqF$0yL za$r8_61sE=-A)M-!4eoVPzfpr<^$3{J0$~_f#*-^wZD%aXMfN~-eii377j6Yo7Tk2 z#P>-2sD11yYJJ^P5P-BtbhDzlqm^=2)LLu&eifA(F;Cl-J=jU&g6a5SqO3Jq#eJ_- zB7?)uEpNy?uavg_{5kGnd@6WG`uo^Vx;q_MaEUV|C>dkB3nh?t2)m$PXMLe z1l4hC+d$e~xOa~C^tq=Jrn;S3%dOFuuH4$E;6nWtrG+B*HA80FQfj1I(Ly2gkz z&Omq6Q9>pV$xRVB_$?TX)=H^gBm8dXrcmAGeTuwr8;}`H?mST6g(o4@cTt7>BF5^9 z&})-TpK(suo`nFuFe=r9OR&l-jr2-XC^BI_Z*O#U&O*wM1K=vDZ`}Y&^FRPsRYt6E zrIA_A9G&4&D5*D+y1t}HIkj!fH8(Y8-Z9emmZ7Npd}<%Y>Yp-FFG)BuE{3BA;gNVV zOgkd|1WNd^cx2qHh*cgX?-e--ukom`WRV(q7oIF~io6R`c7Nc3fM(1(3bj%fUmMaN zq6W3AA%ZySfk0$WxC-?SCrcyqO?j(b4QW}0t9x-XTa~)5vM4!E3nVaAFioIyK~JMl zlYq!cD?7%m6`s}wbOct49>s##`pg;UWGg_)(v2e=6z z4k2|*MPUf86bJ{YMO0CgxGIth49Gf7C*OpDJ-e)Lh-dRfO{icO|%ZK5Wx- zqPr{ePOqQpw=sLgD@Luh%iu)E#a0XG6@;u&WE_8E6ZuuY`GA<3kMpnO??pErK*Eu4x4^js8Wuy$^lYz>(y|Pt-%)8sorS7m| zHg#2kl=N2xcJ!nVg;AP;F+7$@up_vx3PJ&u=wTc>lOPEIa$b&aai5~rlUIwiev(2^D_5R~NP!hF)% za9f9dyX`&w^0QCyGH{)AE|lct!hCW|>UK&h2fbl6e>Ms)1DB+8p(N(IKT!L+y#R)a zI2DWoRYvl&UBmr9k$4fSzi9#qnkRe*3WY0*!i>BKulj0=2LT0lp_;GNS5m+;DD0AA z7H)L_g9|hq2b1e47RIbM;Ux;$pxOBK|Dc-a*PTgM#&Rj>2e^r{s}QoLrioaiqwn3 z284)fh?x#V$bqO)Df6$?5H~syVF#i~LoCt|cRLWx4n&KFxKBeo?m)CU5N#UbuNvYF z2V$`Uu|z|>ry)LZAle;>wRquFp6|?Qi*p(=^W2#~5115C#5JaQyR>7=9Ffv-(pbQ)5#8_5Y6mNaRk0&z{`|dQ%g-_v(h<4m-Wo>#UCJN##7Y?c zN9mG)9*}KT(EkbQ-#MSS2mp?UAABML$CkX2#Sc!WVGj728l0-N8vF#jstR3ujH9-? zSF5d#tAy6-P2=YLz~7P2abFI^3{*XO?=ePp!@veK)i}g$OmxZ=<1<_+>_j(D#X8S=bVEn0Pd>Z zdw^jUO_Tjw_s0Aae#2~9s37*$9}Hbu^)l$hDZeBWt+Kwx~4RFe=Ije_UYIe7H)9@g|xnTmNQ`~e)zY8 z7n3TDI9F5AyA3g{F9rrkq;rbens-jA#MFUe$&^wkl>0B+)A~;xW`_+AFlwLEg?-K% zR3koi8Eix#bH;AyC06so(nKxpMTMEF-21l-7Z1yxaojQSvUf%0%}zW(!0*wPB$ApE z6lE|d`xB*eL+l!L{7&u88lW5YS?lwfzdkSUO#G`wiBsJA;7+HNQX%Z(MxjD)N7Cz2 z@mCY~6ZGPubH<(PhoLE!4xW6q#^ml3=7753Su(jE{d z^t<9?pO2UMwH8Ov9uRxpPSNOtt^w=;sj>L4aaUte>;Y?O`+`j@`>HqjId?mW^LT7< zyW8aa0b;Xw?sOhI%+p5=Q1dWSzhVQO^R`!vn}33^U%Eqm749#m;QV1Sw*M9CrGAYu zb&Yofhokw)gOG~j2=%JdaYzAKjB`r=@IeHZSm}LsdX3f@zA7%b7{g5JHpB=H10Qf0 z#Nfk>-~~bOY#lg#?|`tsnCVl%!Hl?&#~ah2&~rh^mp(Zt03iZ|2oM4QcY#g;IMHAU z;C4n_$a9TpQ2)6g><6e3fG`2V1PBA5$qx_~0B}YlF62qaG$;#Q(Ci0j5`bm`G!vj1 z04;uiW&r^IG~z;@eN1aHf^wSShmqai&8-+EfH}$nIfen;hKCPW9iE_FH#33oe4=DI zO#%Gke(;h^cqR~@Pr~yF_$7Gw%V#v}d@~aW&nMye1bjOlet1bHJQE1dC*k=7{8~Kx z@Qjx7nLv0x3C}0syYTSCOESx60^#{2JfDE?#={TKXeplwgy)m+d;-1*RK^c4$t<4< zgy)m+d;&h$4_=Z9&jiBrNq9a1AL<7$$%JPD;rS#ypMbCF2QSHlX9D5*Bs`yh5BGzY zWWqCn@O%=UPrx_zgO_B&GlB4Y5}r@MH}`{=WWqCn@O%=UPr$eIgO_B&GlB4Y5}r@M zxAudVWWqCn@O%=UPr$eJgO_B&GlB4Y5}r@MFYX5~$%JPD;rS#ypMYP|4_=Z9&jiBr zNq9a1-`)>ik_pcQ!t+UZJ^{bBAG{M|->t)cMVgyVD!a*b;7fjT0=cBv`b|G5T7S|bG zz%n3sFNMx+u~KFH{%ojuxcaumqHoLFGpKKigMsOla6EV=>;&^A(6`+>=rNWLSve}T z3;MQDiG{@{lx|<*XIUZm;L;563emg$PsGP^4RAuT1^#+Y z7IoVr5TLs4bX+aCo)?gfj8?f(+3b(@@h1=n-!tIN(-1ReRcQ@(^$E>SnK*{z)HpC2Ujad!N6mg?*<o3FB7scGH?1q*>HcRW4I<@p4y_mpi!6rpXKDU2F0x{n?T_-Y*QD99&Qg z*@gdpV#b9S2MX@oPRzJ4<3N+0yNMas%s5Yh_qSBworI0Sfj1NT8BDCCL+kHe$K8|M zQCx(#gX!=3FDe!V-Uxv0XR)X5vz~At-dT;ghqLIbSZ-k(9<+z9{?JVA`@~4o*`V36 z4_wv?9KzhHRL!4hto|^L>$9M0Zq{!#QuGVY(~BUcf4MX1Bad^|$Bl-rSp9o(WRdS8b>276ti|TRzsWK{@XoZ)H(*YXmjVzQ-%a4P{qN_%(Z0IRk*{~P?Kf?cy@&6P2--rME@gFvI zbT*`LuW2>(WM@D=F)-q#WYtBy*LRuLejFPQ2I&b{yHcBguX~&4@>2Nk4K%sO0RR1S z<~PpMVf+MZy1ph9@On15_I+r8PttK$^Md>vqZ!+wHBCN@2hwxK%|X%h~opZ^t{>K=#g!=%X3F3U{q4H%j2 z5S78Hlxv-}SHeJnUB4?$mWf?xNoC=@l_ix$E2EVG{tV(zF@H+_ybXxwZ*Zj`3_26^YaPjWpPmM@2uX6@0)=R)5gqour_l)AAt}RGNG+z zuB8szHd~pEWCspr63^Iw@d}arSp76p_41Ea`NwbVpLd--&&w<0!|%5+|8>6nV|?GQ z>R-k)g)?;v$R99&nE6dFKQ2E-7aXh(xFL9XBUr{K*eLvk+{5W$Ja;@}XkOLC@pkN+ zlNsIB!X(pKsC_kuWK3QB8f=856z;ZVZ@RABGp97wo|UB3QXqR%8OpnGW+Y0sQBY- z-Ub-U4b2r!_V|n6CU27B#VZUd|;vV9Q zWpt=e+eYhIpMMz2!?wcbUVN;wSD`PMr`eoE(u;|DaR~FK2*o;-2oVkhpa@b(uLJ0t zi9ZsUr=+keeF1V!)ny{vgg=;{Vl+{o&V^h6{OgA$VW_0$w(^>gnr~tW1(pO_A6nGY-hr|lbqFAjZ>Xf7GU?xuS zhFpc>!*>b|xf;Q3vM(BHc1|TxELz^zKU7sbHxI+Nunr}2084QbQLLl4xb}7KenL?D zfe^7VKYk2E`LX#Q(or3(!r=e$M7}l}Q+Alfa% zkgydv0+jfD*2Sg7Wd38EJ~7Ow2zO_~N-igXhuIP;NLMWRiXDxC9kIZM*!=zc`jh+t zdEX5xE#<|k_dwnWSE$`{&%r_|g{#hMBJk{rEfoyfDyWlHJPZ4$nWyZ_j;i5ve|BaK z_D3^M>BS57N25-`6BLbZTX!a3l2ahyY_fT~Z7S8!cWG*K7fzQz2X{b!2z0O$US)eC z;>dJgGa%o$dGezx`Gl_I_BakYstanflppnG3qZ^O9Q15~&EW<=!2-QH0Yoc)!eSh@ zR$6RfQN=!??AK>tbA(aZQZt2B|xNQO%6PcIEw6RIwx}_J-%7>#Gn9 z>e~H9*Y2%Y^;@(r!=`T32WH?+VCo=T)DEtF9sL!I9*08X#}%Q}F(ja4;8qA`f3GCp zK`$lXQENr9jF95`aC`>2{lpsdB1T{*>_LHBF_Ts&%7|)%=UC-iBX}uI^$ao=WZ6|X z1dry!`_IXhcPMgM`+jN?Fafxf{AmE-c6&R>%C#5c%e}c1B?{-~9a~Dwz#h1isxQDZ z=gX7}OsIX{$!bJ*nbkWJ)iG|Vq16aNzU&-p{IUq=xtY2Vc5#Vv5G;5ALbXI^v=0NM z?HPUi>iqY5@aZ`0PTSS&geadW+5c)Lu*& zm;bKcVWg*X{nl?y9BJk+4$P{bZsUToH?Mhz-DO&@pkIaD&`EH*8lZ95Gn2YRtg^=3 zf_7Amo7tmc(Ad2B@v$6{1xr}p-1t?6VqRxSg3Z5BWBxZw@Qmd|ifeXua+u(pB>zX! zH=om$Czyc04G@n+fgi$deL;1O7ODe(aH7aMzB2K{zUOUcVI9Nkij#VDq07_rdc~`Z zOe0iWti+)*3w9>i4a#-|b#j%a>|4a{xb5TKSPsNWDB2G32j_(CD^W?D$Hp)rLPd!a z`3#mOjz~6b*o9=Xk^-iC$Ke6!SJ*?*4nKb1KD`x z$?aQJVLTMA zJQ=C?A(iiA@cua7BMT3QsYeVx*zXl1i{)Oq9){xb4s!p+U=EHEPul7 zGO}?a`k)M>$N*10j^p`GoP@AYZRRKUm=mCm2VC@uzdX1BfJ5J{^p2b=LY8>04tt5> z1eA1E6uvU64Hx@$*n?6Vho<(H%pDSk8c<;(l2UsIC&xEhAICZhgQHe&$ByC310<3f z>Rw151J#1(jD_!y!kL0g%Z1;Kw0_(RZ^QVK@$hp{7zpDf{U_G7?giKwOTODXLhDco z>^0tEr|j+=WMtj}`HET}b!;1y+B7uvQHilo?ib3RHfA(>;IfK4%)qYRO>qmZ;(&z8 z(}x6nYpf z+*eFcE)9&#H@TOf-uOj~hC{y&8v?+OFt?9XTgu}=PLGduyjMkH(gd_cdYSsTCk_^K z2CfDf%xt(@`SD81vFwXW(eN>0e6tsH0B zTVgC|#Fu0&xpT+-!?86!^*I>j<5P!=7-cKmUtvkA_s{cvwtD{(*Ig@`se+*9(aP&$ z9Xq}pv)+(e#8Lg~H)5$zdXmHGF{1|KVn2pqW!qvMpFptwR3Hv{L^Jpba*HCe=`vDj z8Ttn+7o%`4zN|dsl`S&HKvj^i+pb3oh;KH6zk>r)sPqx?KnV^c?6^PYUL-CBtEXe@VE;1M z1{H9<3^w2u%V0>~Ww08t|JY@4{SdVb>|tsWs`->_!okFPbL@7#xfBeBtC2q$N$9ue zATw75B_yD-9pf6I_%Zg47~L(ri*$uD1Ubk6fPcr;HBij)kiuw&I<}2bcS~7YJGKrz zz88eFY^`~x8R$0a6@O?f{16{Thnx(&unn(-?9*W{>Bu3f7fHyBOgn1}sd9%sDrVWZ zF9dt-ZTQ?cV2AMvWmGw6fd?to8z70pT}zv!D^}WnKv(odg$vGyLYrNI#$h79-FK#B zr}bnn*c;By{Ybds>}0qC2SUhB{)9BW6*bCE#u*(DL3Z-~X!eF)y99-q9Uo(|FUMNP z1ddg2ja%(p>s)lH|H5oET_=Cj;i8WlL^8P79k9^N`d2APXaN`hG*`Re1>b7-xIb_; zaG3u~)CZ&i3*O9^oFHiaLLfja_%S@gxH*P^x8S$=7CaVn-vy8Lj>R6ymcv$8FZlOm z!NWlYn+^6tr}HHc$;O9r#Sb3DH!k_X#e9=B4_7A1wVppO%Ey}6XDzY(s7}WP7%GWV zFZ7o~$+*S6j>rj4nAlBN&it@_BZ!coaBj$B*k*F+qnF;32?4LG55%p9 zJNVM=-v22+ed+*wid)L|p?d0;GG&@z<{f-0h>{btZ@22+W>10P7eVy0nxAkV4D)kpsa&;sVB4kmL%_Lyk=Y zyE0TB0+1TB-ZpOLnFS7{rV~I{Bi0Gx$DQ7#rS=cFMpFAjMyiW|?e>!;ybxw0biF{t z8?xW-X~<698_E9LN0IEcA4jtDK8a+n-WSQ9x4$8KE%wi7bECB%Z8mdv3lnDMZs^l? zvvYEgUyJ3ZV!PC**-*hnMf|O1|I3M_6#-fZ;6~-o()b_@3U%Y>!k?uy{F*Qty+=20 zZWIApDv|L>b#LNV{wQ64vK74t$^%@;Lj)h$ z*@^_*>Cz1a60!s7pCgDZj>3h-q7k_R({Wn9WQgFxO$Z#Sn~xHG1n`$2H#BVZ^Ovqa zCgMw`gR~Tr+ze3+Cf^i?$v4enwkIJ9a6CY9qY84Ps5O=d6r#zu=Sx<`AhlE!ho>|Y zhw-owlm>ldXE2dL6d{IujW<&9yzW$p`%b04#A%TE#ZL=D1bAwQaW#w!F|LMjVa7Ev zF3h+l#x*mpg>lV{g8*`SE7n~}^0yQLLSLfdBm{$I0Ic`QApH3b?(1+3-;bUNd1LvR zDC5iB5I24q0!y6N?d5shN+bO{*ds)Cuf%!u33#K1u&i_6c{G#-ETtd=0pzOWcFFdA znlbGCz}*#n%JTk^THbOrmiibNGln$`jCli4t9#BV`z_QLY9&Fcm5jhi=Ll+=AS%SD z8nmH~{Z+^QniOVS6XV!lb?h%_l_0K#aqO=;^p|!JhyHqA^h@fbqvW;?^cPMyU-wq4 zj2ES{!SXREV{|wAYcx1A^w(?buV<4ZmOzXWt*jG)j(r%G20KqeLQWFc?ZIUnyTdu} zq^^ktr*SFeFb@6qtdU;CX#!4VwzVJl-&$kt!8NKMnbnZ0LtA5%uSyTi9A1=#i)IMh zP;=QoeN=2LU;%$ZU2u)OqGQ^BG4zxGUs1|uAUnMj(|!8zL3qJzpFX@8FPQ9f5cq8J zMf>+CSay(BEtJ&4Q-C!*cN0u^JNfPb0rm9P<0I;yQX0--b6zm*F^QOL|KW!FOCGdupw& zHV2F+S^`Bj@EzYm04<3FfCxyadZ$*z>m(8_f)$XSi2Xj$Z=Y*lgH8u2!-^ZrLfh?g zh|N8PE-bbG)$8pf|9bNp*LSxi3&37hP?$^>qp)CVMb`LNBsz3}^_VQzpRs?2&W(C& zGVZO(kxCwf)%GwO=_DYc}_*V9QpZVTvvL zGNuG(mt1|A>c!096}gC5f|@*Tf!%HY8ChH^=R;PccO-K`kU8kImYji~_!-3D zpmT_%j(_xwki-&)gVG_Edi&8c!V*g?4qAs;>f%SwXqH%y?%hkecUml8afYIM*#0^KZ5axxqko569rB$f5fF)et2D9{}Hg{)?#3rTsoU6Y>`jhP-4Td;|KA0{&m|iT!&N;t_-Y zW!?Rphn2@dI7W>!joKl=RjB<$>2|GLmL_2wu)m>THVQJ*sI}YSwc-IBW-DInQ~Nvo z5KudO`UssPespd{6!uk$rT=p8Sh^_rVS%zVDO-g|X?C<@QmkYWE>y0n+nH zzrqVn6AFjnfUg4KpGbJWcGe?xnAP?KP{kkMCu$pvi245!I!)61H=lk?>b;TF7)xJ_ zZ^D8UD#oe}l%2#72RX{h@NCGjCp6}+4&y>oGiE*2Sp6PIY>$x^r$zekFqS*72@U|_ z)$f~PngEUOE+e%Iy+>49n8iqy9+Ykkt>MS5% zj{9fNYbqFseiyYWiqj-#su{Ohdiq%+ph3zKK~5AulO@78d{p$Gqn{0lS%N&vf&T4* zdyejg#Nue+x1%VrI11F3X0^4t$d zxtOc%0?xdCGI>WX?LEQ0;Y!EJrF?wdXQF`nySsfs;IlpOF}-XIT0oZb3g#U7@V4=YbR2uM&Jxj7u(_{62HJ&b-h+zW#7Lp&5@Y zrn(z6;hJRCuaD5!;A7XzLy(_e;{UuTsfL5bh%lsO;Trshge=^I|B#A>TZ|E{tpLY^ zlmL&r@h~mi`3vQ8+^6i`n8n+8%+3xfp2hO&1{1AJ#fmItJpMMg_V^+9ekpiE*kq1f zLw5o{VJSvBgKzMTj{-Db_q{Q=sOTEl8dTt#QV%FG9EsM4(!X(QdoC45PR#p)zP5zH zzXtNXSn##F83?Rd(2#lpW}zH@v^^%>iMGVOBg<2Kz{Uq49IBD^j6HhS9_N3PU^5cZu zC-4MeaqCYi!ybk0+L`oSU=*rQUh)(bO#F)sgAN?#;8lv>Fjx9^VRzscyqHIq(^=^9 zmXA+A8teQ2?=O8<^k?ZW+&64SA#1LPSTK>m4S&%3ggcFh@z4t6@wK(P)9qmTU^9xX z$zwz|6Xz#tt!3-Br8d1(y%t_!H=T+a3?QasTS)-X2L8VDd;otP+eXT1PF@|_ zG+5gs9ot7Q4Wlp*lUd6ZHVMHNxCSX0=5pAgoL>c7;2JO-vFaBU!!Z*$fu_CCm4$w} zqqk({z7JoWAI7R*BIb59myQA~YaXHiyUO7|e73-waGDN%pXoSY>0=A5oE^dl!Dk&g zwJJsyWEAA5U_oFATqC91ad`LQneJEw6%!ItrodGLnF71=J=mM6;|^Ee&I@=P{_Hc` z13#05J@C9LXW>{^S2>)A7z0nm$q|o_{KmlN)rlSOCfETZ6`e@i;PSX09vTJX2&%$@ zdN@uX%wibYz{a=j4Ga%aVI*Otmc1|-zpaMvpE zY01iPDH_+u`6aqgF+D_hpUwR8DwpZ;t#_Y&+W$WLU~ogT!P!8?9^6m?I(;HP7{LCr zuYEAG)si846gfQnkM#+Adl;V zcYJ$gD+;5xo$6;@Tb7JEv^eU3 z)DOS{I~R>{RVE?`xVFcX&}?>~F3LBtJCsH{qgfef=4)LF!$mcSWg>O6PnL+|3E##B0s^wML3opNIfA2!{*# zx#-6AM(Slm^3wS2xC$%|=Uu5S#fh=rT2k`thvG-nWXpMch$Y)Ofc~UP$NBaVwb^)( z$JTdUU~Rkq{rrEQKOZvhIq&Vf*XMcO=k~^a-5Z+hW2MZmNX}go zbmmtj=iWk4j&93jT2hp}_fCFsQgj|fszeyT0l+}DHS1b{^3Vz0(Q%>n75$b7oRes2|14=i5SU>GUL%t zm(k8Lc0rzX&%xXfsXYyHbcEy$@O+?jBeelx`vPLGK9 z_(InGJz}$@Rz7(S+O&O!GbAjf`T>5+>O}${t{;rO#H?7Y%M~JR1|l6$h{RHm;mV%R z&=as7HeNyufDXivA5%!-(Pr{zHETZFFUpy&DRB`0=W0UrwlOCDKUq-y|7rM)V0<#S zavObw{}kqQmaXpLUt8_t3*j@x_LDh%iJI^2b3 zAE8>9YyTq@{zWc46mH7@&GfyUoM_`PwSIeyBhY-meaSq3Y=SyUykuS=hLZLCicP-A zCG#qx)%GP<1-Q4_n^ZUL)S{4bhrm$|0f81LAh#<+(0 z^=$=~RcvwRNBp-1uUOn{yLNC^>&XBqSQTg{3A5rISrUoa=qUqNS_S(Axp$?0#QlE0i@DC$ zJ<*fgZ>{88W6~3J+o;(quG5qBe-L!t zB;CrgHb`7-5(mFS;?)I-xjyBc7j-4Lr)uFh{)Z49&LNKf(z25y$rGxmqzQh`=wRZq zqUgz_$Qgsl%QLPD##?SIivCV#qLmtkpN8`{efANV2C3Z4g9mT8xcNUBpVC=&>U!VI z(u+|Li)Q3t;)m&4+dJY@lqw1(Pxeb`81Ngm@ench7t|fhoFFt`1Z3a(81Z3qX5&T32J1VOiogEBiuK)1y z#Ki;s-#_!rSVmW)vs?S$t^F@$tuJ7FF=gCd(EoF^*2XHTQ>8(1DS-)Pwm)|AO4JcC zta1nA%-E%%>Z$5oSL%3?xo3Q%wsyxRMv{$H;>D^- zyfbbByGma&cbnNnezNjJJGn~s!>d;pvt@P14J76U+#5Wd3f9Do^v#0CQ?qX%58{e% z5Om!pvzWgZ=9|RVzV$wPLHD=Zr)59z{r@!o>_eaOhn*b)Um>GPBS?$ZS226ST5;Zt zU2P9_V-ib*4a>}K+Zr1Yc6u@w+SbE6?8Je~oSg@s$@ldd{?*RaL^%Qq3M!l@3 zq+@X@L21Y05dL7N1CPV#nf>2u|u)TuxBlvG`1D>uE&@{+UGaW_uFye2?2su3lVy0$4XOeu9^lg#~W~$pH{_%Sxe$SL^a<+O! z|IMThO6om%wPx36?z{+n@dVZ}@IvIcxW2%lMfN6~N3!O)4OAigc^I9uR#u{R?Q=cm z{zOVztqFkwCy!H!$#3 zZtA7NP31BiHSyK5v5nzmn>JGoeP2wk;2@M2m0rqwQ?hLZ^@w=llOEGPdNsMkb%oTO zgYBk2QdfP?su`Sy!u3;j2tA9L^nmmx8QsAREcpc*io*5NaeM&9>%3UE z&8)zr_=Sm9dpw>#Hx{Goe1{Ral0w-O)L-xxl1UgLBZWFOjDu0m&0ODPTwV0d$I=NQ z&-@h<^v;hKDbr$pRqy;-PE_-6=~FLdl4z$!7#xM4jP;!o!#^H3>VrORav$*ol6?|G zE%|4s)^|(Lw|+ewFKv8^y$<0E+MO>dYTJdNnt{!k-jlwJKPAl|kp% z&NzFkvKM&2I9ah^ma=8v-J{(SU2|_S;$fwYt(cT=~>~qyz z_-a7?7bO=V7W%04ZF1k-71Y2u&Yf&K3j?9{Wzoc~{-Wq8GFLit*VuSD#eEHEuxhBe zDkKe;g_5PI_GP8C9!0?N&Qb)&mBH2-{F2X~VM(%|k-u*D{Kbp>RcVE*Dx%X=`1%q% z8M5M0^%t^PG+`p64+mR+L&nF9zmP>0>Mvv-I~t{fJ=iAGJ3}etvrqx%&#zTrK5%=n zC_C}5>zicNAtSZhq`ppS*T%f~dvc|^zD0bVZ>*F_IzK^??~|1Iq-%X^U zjMWDxakH;A`LC5v{Hx@@kVxA^J|vOf^}dTf)OFQqxnYAGcbFPCNsY%4)Sokn-o?L2TP}rg*5AV;#}#M2FtfM3zrV~1 z@l@z+bMOP1e`$s%)OW$6>y)P{rG#Y;KZ&my{r5tSqUsc=W#HpM*W*qM`1o(qJ|Wh# z@bUUQpFA;zkB#8N&xp7N-a_UhA?Vfa@XOn@Rc%$o& zou$xIZ_S_)ZMV``JaZ}pg}t8sXx@7|Brl1^2A}gxQ?hZ166O18H3iV1nzdDx@&<_r zCFdg!8pIjOD0U^}Ah3eH`7xmT8OKiDHbt*u&_d4lBMdB__^>3q zEOz4~4P?y?d8)1s$1!S53l{g5WP}ZqCw|i;l6oM&LjU8Q>^dtVF&3t2ynq>j(@8xUx|$1uBlAYHfzj=njDZT3BH z{e$tiFUH*r>6^_?sD*4m3PXhk`8U>b(QbA(NWAQZ2)jW&-5w^QF?q8HM~h?ANNUjX zat~Cn93e|Fz zt;kpwBu_`I))e#;_CP47;XZ^A|RB((dU7Ef+y#DRTZwc7Sc{+<_0!+oUzPRHCm z+a{1vLQ(tjL1C{*^dAvdLv6BTr75K(c!E8*$uQaW;rc`eK4^}5WR?NR-{;;6Sn8r& zL9`~0FN-%X$b8P`T&0%tM2WIf)+H14Wg-3if%dy7JLS{Q$J_6s;%Bw}8_f=hk!t}N z&B9;tkGk+5U&F#bozA625s~<=FKYaKUp)#OG?@Giw-PT*xXc&Ge4dH?I6>EWl+WBq z%=RccQWLxaCfy#Y3@>I*N8!Px17&i-*MdDSnBFd>xkXuHCfLMe@Ne? zd)@ScDAylr+a_s_=U+D0ht6Z${}ajjr`oTX^4i}f`#rDyDS7`B?bkY_{ibmR?axMe z?cXi!=L3HmPNlkeuG{7E4->bDG%5^Gvdt9Q$*yh&&raP~VJFW-s|b19Emi0SK|SGo zf8ACRVQ8ZVn!@h2{s{=z&0(j_{Xp!$!pYPQ`Iv`fI(JKLKGv6cO1vFhIo?io_Dl2# z`9%)!A^d(8ubhGn&3H5;&_Tu(l$~tP<>_JtQws+8Ft~prv+iEqB-8Z}Kk{#%pbi&) z$NRJtuqS@ z`U9Q2v_0vW$mnedq8OdWh3O}(S9pa&aZP$T0v?fTqVX8W4O>&rut&eA?s4Bh|B}2v zl)UI)0)nL%dJN#M_|4i7U73Xq3FY=E@NxL|Kqi`ju|+d9zhxWZOo6nF%gFX>%d)pw zO*utc_AGr!NB><~_Fs}$Tc#UMSq=wdC@dTeE8{^0KHnwiDk%Uy0Ir`1Cof&cgz<9! z9aNcl*yB$;a$^z8!gFc-)KTiS`To9vKhPILS%!F3PT@J9Ikl}RyAPX0*N?%Y(_!Cn=a*K$nk`t z$c;U6d3Aaw>qFp;>Kh1o4f`%223?BTbl;{UBwQN|_bIl=-sB*>abg zGw}nrq^vUvb;eD2r)<*U%A5Qxce(i!zcl%izcpd!MibsCNMN|~CV$IaZhloAl$O8i zmhX1U?>J8R*EGH5E;oOoj2V&gBITF%_q*i>j#J*`Z@J6OpAZc`DKCcuDK9fjcxQlc zxb~a;EqA&36A`!kHE#JTx4dX+4_DsgZ@J6OpZJVhevMnc!7bl>obo1r%Uy2%#2s$= zyWR3j-SWaz9PaxjKl5+$C4OMS;Msp2?YvJt}*+~&+67NVH2s&>?QjZ9kmZN9G>Z6Tj zEOpPrLc5x>-~%KYeraQl{9E3sA`tJK0{_J0H`=4||E>I!)$kji(w^n>8(VUQTjF!n z%NlLYJe{ka`V8X8Hb2*xyawhPog>V1-89mipB74UCJL=olOvR9WZTtrQM)6=QkKn` zJ~uBqeL61%?L*oEDT9RMOR_wZ^K34JUzD8ks@j9xNgTYO6(Y|O^!6mffZ{_t0k2=} zCZ3D$4)Y4%!sD-O*eJ>mA``PuS4o7KRIirxJPT-&Ki+( zH4AF0p}p4KNrli}>+UA>HCp#KMn!e0Z6ftG(mJ@OC05(n($>C4m)FubnY_{}74nEu z(oi!xT4>-HHLXmgr!VRr;!?9qKa*vLf6!UVjPCT-6wDYQlif3eH+xkoIB}lKTc z(T5vapXa!-J^DS#nv;YaWM+KPv(kb*3+9`OW7lXZ;wBRDcwWYNww1@fda0&=gt9T@ z*HzW#^WVh4>^bLPTAWq`KJv8U( ziQF8xqRyvGVvQsgvWNg)GK2!j*Kd@-8OhT<`ZUk4njIRyrP)q?Q8Qp2Ycvenrs)@d zPtY}!UKH|&o1Ld{w1yAzxAO^Ab6+JbvQ6PTrLg#;$Tinp-v#`qr-V_?@tA}%~W zB7iNG5BAMfC}o;61V`ahyqk+r}3p#0(Y)2}Gt z4uIIXV?0$9SK{;IF?OSA;<*2C@?AT*?Hd&!it~bhmJBEMr zKPeybWVOmKet-E;z9^`YkpNe-U(4CA9MaDwBDp}7B3h^L%;gkT>!m!{$pvguqz;$s z3&(C}&g5|FVL3d)1BK;kZuL?PhfsX85ovK0BFbKn8Pl7w-> zB>pr4U52@vGA2p?|0O zN|cSn2;uVf$cS2AaJb7GmWdv=o%p5PRf-1}e;;@!Rdo zjN!L9Lqd0n>(isQOOoxHUT6R4!v}k;=yhTYvg*OhG`7bXNc7`*{_v=kwOG6j+J~O+ zgH^Km{`KF;UH$N60NIG_6-=Z|6!_8~&=^~atTRC-?Bw%$@pDFbnJ`z9`Z zq?QzBAN7N)#g+r@yO#~yuD9`XGDi8*&%bE1&O8d<6`qGh{t16M?cK*G`bH{mxLoxe zI1ukCyo+zjC6Up;S7AdYs{6GNzwL>MzJot|;#GbAUItaqUNaU$VchFVJ^@kuPpk5^5Kk^Q2MPhs+Y!LLv z{0c|^oy26Klq3LRY@D#Y6L0%sGt+G(*r^4u&_DAvY&hhuI5~^ImuSa?lV6im?V2FNWTKMP zg05YbmeZo?+7G@~F1fXLW9;NZ?^H-cib$*aBnH}oO3do;0EduFsm@W4`np-|$z zWjB|;*_j!k(;nwMSOxR<<=pJXo=s1JJ~>Wy87Vir88otQFCb@tzes`blD0uk_Tsb} zdF4PDFFxFaH^uIYOSJq8_i3OS&^Mf;tM;E`jlz^hqli*~%C0)p>_=pmujavtG%Y)64Zrba%bY|rP#+pP`iMUGp zFq)FT2`8RIsA}#{$li3!fj=NM!ywVmh>2q1XT%O3rd26cTc4@+FG`iYXYwOg5~>Ba z8t(uNS2gm$z(2Ek7P956#s=X2B+S#r*xcutpL2bWF+b<}9?$%IC-*=4WJ{R)A9tl? zzo4sa48s@ni)XN-?|(cj#>)pYH)IXJSr2)B3-ipq#ks7yQ_nN^7T2=sPCaYu?RobT z`|qQyy!AfEOF=R?lJE1}sjD^jw!FR~pTUrP+yLIT#!-nifHgN5p$BX3t>PbiXLOQW zR%W%nEX&x{Pb@nLJ$LZgW4RB7?AeZzS6QkKT6YlRbYJXKnOlOX&mReWB*{psqAqEBgxABCaQA3#3cHTBsL$xx&2hZxZpYd27R&3&cLDFykU{u z?ZZxwTaA;Y`xhk3w?WbGU*ME(%RfwLf17RRV&`LqgCO1$=2y`RQ0dh zmu@BcCObPu58h)%ujK&pF*_9;;vO|VI%*}}759RQAa#|OgSJ&M0~!QAccEfu8B zT>$l)V{ZZvq^?w{CHNbky*}~AboU3;Vt|6 zG*&2_!=v{Lh4UFG9IN#UlzvbVS4|$3gEN1na&l|*1C7^TLhl$GB6^1YTXlT)sqE#V z=(J#bR`mt3DM9XI@~wzfOIW-zRw-f0=VIj&mM)8xNjTyHykiI$PerS1y^DTvs#anB zG*mtPLq!7&(oef*7sUmeevXV8Ev%^LVHm8_|*EgZiFZ=nBM(i!L( zI?x!F4wDtnA+^Jd^-`fGW5iI0LbgX^oxdGev z5qXC_A1i5cUU6;wqbNqHwi{&be}7aQdcN&4v~=y-*ezh3fNL4ti=yoc9}GWky5S*c zTfa}77$dO8U5A~?DTtzImH1_a&fOFJkkEK8>x{-l&+!^2t=dDYPM213Q>Xx(EQ)|u z&o=86$ZoOPaGnV}uVx!JdyYh>PF_yXHJh?|6nnPl^J0eY{DDJ76V@nsb-vb|-&O4o z{xUp0FOEmW9~S}H9cSn_9wq3KV^{7Q%CEs-E8m{3V^qhu8CzqOYVytc!JhsM%;_gW zH;A7~-;Ax%*Xnl7*lK-wbE@=2lwG#q1R}S5j`9Z(@op=gUL8p;x3lK=C-`YdBYc(( zHwcX(j7hZUT{HX+t8Q1O+>@X1%}D)rBO=2deTUfNKPRpUH(3wK@V~pFf4ZPqb5? z5c_=W-JivufLh%@y6WO!hn0Ca*L%hbXi$qF$Z(0|yc7Z)y5Dz;t=#4gODL)1Ale<= zLbxPoO!K$h_K9%vN>q}qMrSMJ)TxE_tA7IQ^WUT&c5=#rnN3BpKPdZA21Lf=LKzR# z)A4_ROD}PN@Q2J+cj(PGoQbWDd=$BVTLP9Kf>>V#?2qBv$BJw z^YMP;HT?sOSGj;pzU~dyFOMB8^{6aFus34Xh8h(@HZp1x88vY}dN4Cy*S9xbW5~e? zbYSL0Z~g3a+bin_%^|Lio=M<5r|Ty>8c#wRN_(hN2V}Dzkh1)faIz_HJnCjljD;AF zx(8&1YW=&!zXN_E)W3u0FQO`2p7m0P&QG3K0}Rx%y|)sJ`5c|f{IiX3EEZN>&ba|b z8(6rdW{*8h82DU@tRNtgoQ9&}Jn?ZL%c?3pUTE9w{N?DQW{A9^0F zCHJZ8b>zU(tOE!uCJSh)ZfRM+X8kZ7jqJAw)jE$x@%+v$i}hPp)e0WX6!?QR&M}Ol zJ3b-K)X%y3SMJDpJn{Uw%BVQCn|zs&Y4O_2i8CdPd?-Xh!=r zJy>_ltCE{zaTCY+LvEwrC7P8n(P{|D@ z(`O{pQ9c>MCh6}b=@=8TDJF5LBz}+KMJVL?WLV6RLy!TMNkVlHl$)SRZEVbHx9)Gh zbL~d>GTUPF;Y?YRN4zzvSd7>!`sPoT?3|*TMSPOe7Ma^@;%~K&ink^HY7QFvaqKpG zMuj5Bc?4Z&k>GK%v-|TeY~LsUhuU{1N(c}L|4uM``&@rVD6`0%fNb*NSNx#nG!EkzF*m0faR}mLuMbyy^S=1Rb9B1ck$s zg?GXa>Rqp#uDT)F$cF;(K!YFmU>HJLWfY9<_DH^s6=03 zN{33|N{32dONUDI2hltRy7&_*rCPp{%*j2UL zJ>O@pt1Dm+g&5aTnOZnq{K)+JWPW`zzdo5?pUkfhnMBCvm!Hw{Ge&;K%1;^N+j9cv zF!@C6-VXgVSZF3ZRrlFy`vF4|pDkl6X6A02pv->1HdsV~^83!%vCs-4mUap8g!iL2M7KfU0B50RZK_;j!2 zw?+56p-A4nNY3alv1t+U%{s3r`YJaCYq~iZbK;ITd(GNOTv8NEXZmC)CbNRs4J`uQ z*&wL4`z3IoO-+PjL;H>hNThE>1-W^vFmF}7^^Q1)U-npm(iZm$lt2$A-pQ9{1mh1I z`NZ$@c1vt`dM7|_*aGp{TDOWnyoNrT{u`OI;p+FsQ=}!{E`K)tq2t$1MeO&&?4K$i z#dZ7^dovjw?Lw}rx8!|dn)ls5J&)PqAH4mUZxx=`Zxj-OllW3`GJ@|Fj^$egGd!5X z3_Ur_fJZ1_veXxh4?szMQGkJXCvFyy1LCfz+Y3nf zh(!YIpF^X2~xuAA(hn2IKEx(t8$VLe7p4 znXijO7{30{lhUORnU8lbF~BxiHY!rT*J`_)J!3=SG)R|m`;Hp1tZDw`(_VY17n19i z_k0kmb1Sm?Shp&%dNMSbtL`Hn@%jo$)?-p_sof){<`6y>{U z-6=ma=&U!w$t&cjh~-UQ&Zi1wpFu}I1d2R@#H%~@?XYialcQ}8_G;t6Wcu2O;Fybf z8|)I;K*IkFJ4xwUqjO&Z(ww2*A$~$IsA4gN%oVt0Ffua1%ZV%Fm`OTs00E6Ihv@}sUhl_fGfOFcl`=%jOF z#sUj-LkA6XZkmE>)LLb31&e1wV zpJb%EP5^Xx$4rv$H%ZeZNtBH9lI}7|ZxM7Iq7jjt3&glddR>wRNy;&GbB#CnIjKh- zyQe>3fBK*Gz_HY)&X!v#R#eoSb78RrnI^M<{B1*#?78~Gs~hc9yLsNfx*p>)j( z-*VfHUCTS7-$l*5H}H;+?|DmkU%~rQ-d9+Gb#WSM1=RUP_AZ?EPK{i*(WGsXV0>KP z#<%NRU|qLF1~%-FV0>KP#<%NRU|qjS8!&15Hojfo0_%#H2g(H`7$4WS@$LE+SXX7z zYE7EHjc?btz`6#L)@;)BZG5}F1=cM!X)8>czKw6!H~MGNI!&6sjc?btz`BhlZIemU zH~OcM>$*+a4wI&D^v|UAo3sIwrf>9*w>)k=^C|p;#bN?7#lm4 zkoQRa!0OvL72Txy2+A z!456vaLl)3-JIe$zQbsIM5@iIPhcyg3lY?#AUW)unb(rrSF`P~i7I(BXnk%RMpRod z7~G1j;8-GB#*s2NAW4e?d1(tJs%4Q_GtRBjRJg9$k_#oOWl@!+)@o{PeyT*ZEUJ~% z22E|qPnD>aMGcbLtf|fUsS?$)s992%YU5SK_AH3;N_Hu{G4t=%LaWQXS0`69`bX#2`wA+ft*Xdobr&L(@kjEpbz9+;pLQv z{G4t=%LaWQXWYvv5BWLW1lFhIAZMqSQy%hjx(TdLH|It#r#$56bQ4&gZq7|!PI<`B z=_ar~-JIQCPI<`B=_ar~-JCnTobr&L(@kJ~x;gv3obr&L(@kJ~x;Y2Dobr&L(@kJ~ zl3<{s$cykavtAfKz4}WqT28>d>&KX2tO?3YaDoZOnZPnZzy#w>aH0uLGC{csPBy^= z6HGLL9KZR{DJD481gDvx(gdfQ;0zO-X#zQ@Q*M$8&N9K-Ca5;ShfMHc6X?0ScfBwN zC|6^Gb4_rb38t9fBPKZC1Q$pEqgIAT__Y#nq-*;X11MZx;llR$g?nnX$}v;vb-1&_ zxGNFHU5PO6N`!G&QYJqq$j>V~~;*yn~@-Ef;5Zg<1SB%~c>v46>24c_(B20OK?!mj7S zy!ium&GV>sp>yRbH0QUn?GqqKib&J!)V=!uky#F>518P+;%5+Nb{Y93=k5U)a>);DcSs`zk$lVl>&KGu1C*vaC+Ni zpysqKzGP=jn)E|Cn%M9=RK-)+8>q{y#;vZ$gDGUAS*)u+hy5~J`V@SC!K4$rMiGK#vH9Qp#hWP8q zcQFb7d+lrR52@yDG$HD&8kEqinn-nnRdYpkvsH6V^-`WukOB9iuR(F{VLt3L7$^oFsrm&4him#uh@)M)(( z!}}K^PH*-`t6p7bqQ2qm4vikT$BM2{-uQaSo?1NQ?8e$cFCcn*)XK~3#7oq+hxgp} zSl-!-BqS(*2t$I%LV}1wf=EJw2ttAaVSCVR-s0L{)S=B)I-W?;5!iwKMU_;FTIv~c zUO0)2=x@F>z+&^Xr}AVuxw(Aj9Ur5LL#k&A=2FkEs;{uPImZ&U+Qe9X_$@Q>&)Ttd zdm`rUko^9uw5osPk9~92-BBx80FAsdQ75ny?_3nyn`vB>npGQK+b2nRy8(WFFn(E4 zY@m>V-e3ToCjCY@N~2(h|1$FiAd45{O6FAEUla-PjMp3VHr z@$$0myu1u6?Rhr+GvQKu@HNYyj$M?SgV^#94w!&E(jF8s%xyZk!PfchZS}`pyw`2d z7AzZk%>`Ch|2g9!ZsG)fxa-Bc6E`&%Aiu@1MCFvr(gY(7vF=64i53Ss6|(edHlyV7 zg=i$HKpc0GvGN?A;=(@{RfSXYxrU(6Y7^@a?xf>(XFO9MdLcZi56JsI~;b#aSaS5gkIq$b*B%{j6=J)p#z-{Klcx!rN5@x_Hit}&a)hl<=}RLaW82F zZr?5y7%`1PhvaO=m6!|bW)&CxY$DGZ-CN>fS6mp;AhZYS3A(;PdJcaUR2}<=VXJ-i zlHsal(T~f`VP~E^3%Sq!!sQ=wn-nMMDbtPE6X_WSk@$7~-SVT6hiUmS+6Q??kR$z$ zJ*T$-d+X7i-=M3}z|9<|(=i5iPyUR-PVk5eZw0hUu2d;k{CU$~*X^!iqyqL@(Kn5! zO4|sQsh;SvkTtiv4iU)nKZE&=(NsW~bFO@>zI;%y&LpwlBstWrjMeAGEDG-Ud_? zfSCt%S$~tD>pS!@x2(kJNUTnj z{&@X!_k+N;zAX%7o~objFO)jZkkPu@7yF|N-8?*m7cuRtSrrOQL=NTZ00i|srD_+7 znuaqWQ@ob;>g&(^7xwIh8WwbMD>Q>IK5JA_?9IAeo$*-{XwBdFVh8a#KZF_^CPUq# zj)mDET5*Fs*6hUbtn&_gZBeQmUEmzF5qb#y@{?v(PT0$9PiYOOhKCAx2D{re&4hYx2l81$Qq?eIB?gP<&VUJhwK{DE$1FB5PA~nOtj; zupu86bD1Yq9%I)$;S4H;`VVR?Q_q}WLXHm_L>@nkS#h-%e?c@H>8@$x)4&!Fwzr@Xg?4cY4(*3CZwmFH& z&VtnqbAr`0T@E9hLlBY6VT5zYHF6I5PIa7Iavl*>A?J~e8a`ys4ID+PM-|ob7fF4`oJ=U-&qvsrl}piNr`J4TtrPujJ9!Bc z;|z>e`z|r5`MiB-XT-PvubhwQ)T8aQC*=+P>hc2nY**hu;;iDnGE|J@Y_&rg$Jwfi zl_c+5<=y##=~?oUh;LtVRUlOJM!x#Vozg={x=76*uqnIw3_FR__0)9Xhgi7nWO7}- zytFJ9F+uU$zDMo)w3YY|slNUu|0+nd7jgnws?z}ywRhI78K&hjOt&&jwlAFYWAIi{Zl7zfXq-Ma_md; zM2{0s*VJbSx|TEgUXtR996%O)3sF7$%P=uL6q!}MRCp+w4z5=m=WqwdAFEZ?IbvE+ zKJ+1Xi&?kJ0d>}Cv1{X>_gx*sxbUOCO{cl*fsKRyJR+pczFB_{eR+QF<60i%g0}Vc zEd3ClNv}XJhvNS@R1`h0gT$R6;yW`{d?{KIY{#Ot+t&dI2T=%BeJh|RQ$l-!fKDYZ zs_~w{$owNg*Wb}H?Q;&ETMbs%Q}x@UGlefP*wA_~dVk*UO#sYc4Jqd>3DX_Y#A@?bNNloWxAD z-cr=S!PLLx4W$|^)nWu3GEt1xVJ4?S)BSktf&UoMGO<^~abT3*&( z&andpb}UE1Z;7Fjl^1*M_tFWkDC71(zfYgIK+uo4k2vlS^p{Y&)UJOlwzIdig1H^l zBo~n>&FiV_zGH5yr!S0zT$0dlr~aWIlQ6uMjZg+cg6pM6)eWVUQKk*;r$PPR70ERG zU9mMQAaEL>2Lh$D_=(IyzFazkyP#(Tcn!^}(nzGtp&3;Yi*pNN(fc7QvgXi?28nIf z*rgha#5pu$sl=|Z6Z_(Pyfn7);O3I(64Vi9$Ys*u)bv?I2b^c)FD{L5?(hD?i1=o? zOd2EJV=t4|^~pz%f1fl%X0>hu3?1BpldCHgI0+j>tYF>s5l&7ox1H%~kBqz5*gh@u zRkEf(#E{?6y`0{&|G ztK)Aff7AGz&fkUnUButT{LSF6p1+y=UBcfi{$}%cDSwyo2WNb4kiR+n&E+q|Un76> z_?uspInz$fMcI^V1aoZZMDHt1s_UI&u3eNlk@c>}GiPqI*P-NGAc)*(p1c+H769|Y zB?9Mmqb{|SjumB|D5URl__sL(?kjDQ8)KdfJHJ*A+IzaY!bV#}=VwlQ%`_j^L#>8B z4ySI*?JsqfBIFg$p4nd*(@)d=CC<8d!6*MS*1B7G@%C55hxfmOy1!1#?Ju_1*!=Ca zPq)|fEWC2l*-2w{cgcfpE_ulAt#JJlvER(;Ev;qqh|9rG`a{kaDuNx2MeU7~34HC1 zH3Y@&jpq`Sv^SndP}<%&gSM?`1VFjS{qMnZ=6YRQhVbi1m*3G zvj|RZZ=6jqp}p}^f{E>oml0I7H#QKQ(%u*(IJLcT4#8>djdKYq+Z#g!r?)pY5}eWA zIFI1W_Qv_BAy-u~1ETrWj`t=PptzPi%!`33qnQNdY91e^+(s>Ca{eSt36x#}h`1yN zP1wPgR7q4GERnbdiOYi|61P<1hJz#b2pnnl;0W{xoTFYm1sr%EK=P;I2g?H8Z&c9C z4eU{#g!19c2>>zp6_+UZGsuG(OgHj_zWCc!!3SlOBi5Yl+|F#Z3R3~M4=j4l z;*(kHTo=A|)y=SVaV+0GnH{|P@9MUJF~f&;H2L7qi&Kb_=tR@r`%A~Qhpfp4pKJ!7 zi2KZyS$}YtCTcn+W8-{etdWOe9?q4A5+2~t^ptXZi~Ty{Twb+>mIS~H+tN?dtdO%U zu@|$Fj}C~<0ypXk)(txNSP(ZtZ?E7mxhr#%o#=&_lOB_ARk% zJ3o>tpBYYUo^1OL;DUnlY;OB^@_q2+_)<}V32;|0<5ABTPlDCH;w%F*75FF0^afz_{V^65cZ^Ixe~x2x5+ zu+#>HrDpg*zCk7&mf8rRA6GHmeD)|FY3#gXSsI*xAHh80SZ3H?%J0hDmFo@jm3JV1 z0ZVY@sN|pTz3Z3soV%SdREHEjJP4~H5WnoYNa}K*^_A|3)%av)1X|2>+ky{N(?{Km zqG&9NncJG2$AcZ$7RBE=H+Fii0q{E>_5Ij~VzqU@CPv?o8|j5)kH1rm;|m^w`o+t6 z`tNh`PfHEasm?Pz3BLns^%U#=MMC@e;)lrKvHISfq**Z*BNZcX2{_RyG8WC8GZbIsnc*hr8;Oci8diX-2hXr3Zw(g2q zP4#;pJeRKpt6NBw)&?%3lx4uX@b7e=c9x!T~4CuX1HwVJn2dFt>o>v$%j- z`EhpY6Z;HLZoq1NLB>vXE5+z}!*&^k#GrrWS)eXA78-1XN!Pw5sG$f6y&Zm*L)kp(ZVW!e63oKV(r1l79EPdAZkpp||^2pWtSrr(0KkosU&niE9}E z7IzvoTp1ssM~2d;5g9>blz4?R&dvSofpAZHgfJ%gyqt0Nq=oCR4Sji7dSp*-e!w3U z5ET`HIb10{ji1Q00Jx~4N+N4{4^6Am*jkBgkl1F8ZP3_eiCrqOD>Qbg#;&jv84#G9 zZ$LsN(T~GuodyPjiByRl-WCXxE%BF@#<%o$XGX-g$O-4MU}A4cxM%MOHgXo2%YNho z7@Xr_XmiPoE(mx?{le0OTc(Fg6TEIAN%Z?*j+E;r+oap0>xQ{cWET~slc`ta-g02tH zu!=djePZaw(@+_X9WosKyhoVBp@Lm(;ulq(w(|gVN#9AzQk#UK z?}O6buANMjI~$%>%K?mCBF+IQ_$FsC$8J9D6fJrg!BOnyeE)KC`;sS~YP*igU1BKD z?b7?>k(1fa?}I-+#7q}~KYsCk_+tUEvcC|2;N`{O4~`Uh_~T`3-E|07!5?R_{|x?U zBH|eQ@z^l<aSVbZax>OMuuLJ|KU0`a6uFs_A@9 z9t5Srx|?1csXt<^`zIOS)O0M&p0d`p@q#5C(gR`L!7?;x^sL<8S9*C42y;SE5o)hN zsIM!BVP>TM04KTw*>oNv6MR9zsQOqekHz{3S5$FoFF5sJ?D3%ZWXq8;G*a-|!Sv^3 zNeOlZX{Bxh9uMM)0=&j)Au+Uc)wQ5L6%iSX%A_h1wbrXdC5Kh5_1^%x=P>Ku)#HJv zl3g&Xb$bh`;&sqUw18CwyG~+NNOzzHtvS!K8u|f{0R0R=Ulem*f-$(K4)qV<=^Sfv z=|p}a69aPWx{RO5WgySVp@~%*T}w>pvMP-Se-huI@y#0Fpz&Z(;+Jat3XNZ?@!(D2 z3vMZm-3h2KiC*56D!WV=gAw1;EXV+j3^{Mo#-otu79cmsvwuY09x6U_z?xikrc`^% z0Ka9YP$SrKckCshp<2H{|L*};%FSRh{W{`cd~* zpzsH&qn@(qZZL%mq!J}QUDi+Lh?0Ta=IXdKQMwi%TiOta=XEV0M7SJJ#X9POr>_R%^vEvTq!S^FQ288rDj9ECA zZJ=?6^Ly{ea6)>>7zlHul?}#%HuT4b>9j|GQ0!ESrDK$6a<=E_kFD7ugZ{Y6)Wm4@ z9Zi4K9hBY*t)Qd_qcuKsHm~`l$JzZFE2KvQ^WRN1LV6S%7m-jM+^br%pEBcLfLs~B z4>1PsLbOcUCnYDn(1e*y>p##&>0fjK4pn4jgq$bxsE$XQYJSsHv$<{$JM6rp$c$O} zWJZtGHioLwlcc`H-ZRsO-!}SG;y=U1nR}uaca-RXgM<0AE`R#{YW;E%cV? zD0oBi6MaSl0bGOeBkB-zdStIzPI zaZr-S>NEUIqEjb7PjD20dGvfAtzVV(pA|{{-B6_M4_4cgj4jTNQL8rs&Ai>d$gbbL z>iV$nxB04f;kEBlVmQ@1-00QqdTFEby_X=r-Ne)YRoe(Nu- zn~GI(`6)lr%K&;yc_dJ3_5)DsjL`21y3~c>Hcup;Pmm#xH1?DTbHUv2$Zp1)zDJdR zwL83aXxPpoqD3c^-u?}}&7A+I3)Bsn{Q09}J0%h4R#ZDyaYdS#Swhbne(@EHgU&Az zF(U-ykdQxaJ(1DESFMWPjH^$s(>;W~+D?(M#q88gzJi?gXfZ;s5{rpf^K-6>)Zi@M zcC+5+tvp2US(-LZ-J!k5I$03m!}Y z>N3ivvJA3|UU*5IG{<;G8<`JlmqJ*tXE*kD(bO;}N1Ua)9S_U3Sm?GI9C(aI@o~82 zFImGWp2963CFh|(U*9+L_1q4@KdCl77X$A<_mW+&a-k}6U;HRP%uuQ8bOg9>F-7?U z3Cm;HfpoW#H-3@&!RY6k>R++iTF9Q8qpQ)m2Tt zS0cXG3%~cCd@tl`2@8W6CE+<>TGqiEM|~AXlHvNk*pJNUUlYvwAN0=p(I>LXcRD8e z(^>evKh;08kn=bg(6eUWL0c6M^>67c7~K#XGUfU^9n~?ieZIeUeV~eNV02hPsHy|z zY5e+XBD#to2aqA<=#{^|{Dsdy?kjqvv$zvqz{j?Ku~0teu^qc42U|jiMV3F8G`ldS zY`|VSLR`|Uc<*!Xp)i`=1oz@~?`Kl(LHWsT1VF-Wl7Qdu5_HX`$2pC?{N*S1m(H7y zh*yq0DOyEe+%F^(|MHa$6rXcK<7g~N2A)v)9otCj(h|0MJm&W==BS@1UOOoB6kW6+c?Hh! zu`vkYa^q%5x{jhvbi024&1Xtdg(THT(zaaE>WAe7AMEKLW7o))6vdzJO>}L%AmkH; z=`21I-V*xwx>`hQ>O~qBPOhI^Mf+H4SA>&alm(Q$X07<+z!8Tgt;MhhE!D(V$n6bE z$;ydXJ-CB%HjATMKxb)`6jg-+9Li>VhreolPUX%^v|`o z2qraqDk(WojtW24b9jus3_&&Hmzs;1c)e8Tw(0iIuzrv|rDmrdQ+#unAjp;u6m{Lt zhjiHuYczw47;UB)DBxp9o)NR`PQNaMR%-U8rn=ANs{0YuA?7msJ14(|X^VO|DETdK zXjtyEs#kv478kq8TI>F8p`Y&hTm}v2One zt0A1cm~vmCTza&;F8iXaVf^sm(qFET4kkykt5BoPI-Z$T9dt%=Ii2J~1rP5%T4LEV zK_~QrKi-0B?wDL{ zkv>Gd839Im($k$dHsdtKJpu)T-=| zJ0;%u78_onJH8N^cq|up$03rNb5cJo*<5S&$A zgt@{g3JGM4B6OaPvXe9k_kqE6rPV-_t?5>(g2%{k>M*GOe6+eDdX5a(3>nsMx@Q?b^zZwmi4p z3g|U~XQHXj(dkVAWOk~{VFRf*(~pTQew+%#&Rk+8>~O=R8{XlDDL35UhF^5UP6?S` z^=BHupQ$i35>BxQuli?e#zwu+tXd$KT#gHf5eL_6c6wk&cYaf9 z`UN`v7s%E>9}pExthvBnbXx<8PZ#KCQ$N3hkJar0_GIZr0X4~JpxlX048W}ml)`kL zXfH!zxS8$$)|wZ@h3V_T-jTSwf8E;9C(TSHq#gld4JaZ6A7CL5Ss&Y$Ifd~ICi=J( z23?&e8=berv)G2OP^2*x8^UGh{h{P{zAt5y_kF)pg4XZfO+ZCJiPrCb#jUlXss0zy z`{%?TI$MW2_9OB3u3lQPJW8(VLA=}VLfEYa=vAV}u#PJb>A9?)`lwZEwLQYqoZeQg z#Ftou6{mYyLaOxp_6TW4BbqDWWlsYb|0(2r=gW5#H~XCXzT8P59?dIkUcSN$&s99$ z&0}AYc6PjtD>p=tqFLAaJl{cu%7XFBO*%7+Zo478>^D-UWNF}`6YB){qh)ok*BwlT zE(kcGa~bQ>3mEEiMNSi5R*WyxavNydAN0M|=)7UZl%aPH2eF6Djpi5soA0NC@TJI= zd8uw!M7#sq4$g|%u-I#2X^{!YIw)ZN2y3c@Tg$ znI3W$qY|dkd|Mp!&CmjmWHyDIv5ly~w|B_`PL@{3Z}Ic}t=MFCV{*~E&VqN7PsgcrM}mbi>Pmb)b~T$f}LXe*lPRc2t%f5xO#uwn`mb_`eaa#f*Il| z9dP#xz}>rrjyW$aioGHuIugM4eEQ!Z+;b2l&;Mj|qw@>rab+6`wdnz{;+5yP^kRc` z|Kpf0{vwoYSImwL-Ijcsx+(ct$dZLnL+RKBUh$HZCx(+T_T20{$n4Tj4Xrq!{0V(b z%q{h$zaax5cYb#BKvHzZv4!u<6;3WJ)!Z_GeUvBA20C;7a5|!Y6JC}wgojXC-zGI# zB7|0Xp4`|e2_`j@l38EX>`G=m=MO5KbwW5flGFYWm(Yiv!~DEJ!;Zc@)2-0?`OWY? zPND_5(+r6ZnZ#X^C>HS^1BIk-nWTM^BsT)(C5baJ0KS7}nhWsHBEwMtANor8TV|5H zQ7T?}mODcQBx1Kb*aJ9vM=c>XxnvLt@Bjg{z%%I_IMV4+f2G4vvcaGDvc#;+WFmB4sjm-$mggd+lpELmNDeTKY>2kQM21t3$T^NX zsH+Iv6CPqO1k~NudOxj=UCo69R%?Yc+;GHVBk;SJxv=2Y0Tnm|A0$(exqHA`SHcVT z4`gp1P&Zq-OBM9M=pG|&y<6d*<#ZYBn9yFnHrR0$+VN|Bgeb?aEha=aer<_&WISqz z9Odlu1fY7U0oXhkTB~1iz0g`urGF2U|Fe#IPf>vNapjP%k84N3Q#k56gqbGkI!XFA z9WU6Rr<=r&O5*oq9COzpQ0veUt@TPty~m`QU8wZEGfr;J5kwMnwkoW+3V)4)LhRI4 z)#y&N4TYR;tFez$cx2huWDs~i=XVQJrB1SSoxvY-UP}hSA9Mbg48H5kc{k~EK%b&K z)q_ReW+c&qKdvvRHMbxIKMjIUx<5eu9wHg$0}u4BYZpWU^Jbnu{(w9eMg6^TeGr{U z?>r^?qRx>=BwguRmtWiD^uZO>aZ$~P!J!80tB<1U6SaWgG2=xb$rz2&`}@!$9g1S) zb%tETsS-iqhUWI~6^qsWN?7)h+4z$-2Fd80~jt8A<`d z$|{PDaxJ@QCM@6RiIMuB%dWOs|0SC_b#ECgWjnR7Ebht+>i}&JKMYVxDaTN?guppX z&fzSVVT3F8jGdo`5*AqaH45Z%W>u7uUQVlZBpFc<^5!pJzw{r6>JG*qnkEe?iq`UU zf<9fw(>Q(l8=fqE`Xt~P528mzQ7ZOW`p2V`M4T30yIH&8CS0AqGnXKhQOf6)x-@-j zE>Y?yvDizTl)f&PD4!&;#7(qX=a8m4T8P~3`X{Y~DC>mlH(QB%*^oFL+i)gXusBd7 zi82)Xw_Aw;(op9+QO$&2;-wBcW&k6Juy2PrN>02|5U6grPFH@*_OItTcGwH+;gv8eR z)uh^q_xvkQhuWL0ExcMiT`3x_8Nhx-+gd&&*j|oN zt3rotTPsalNh_O4yJkpRXBs^#d6KrykhacLJuAEZJ=*#zi%bXZWgeul>z+|Kn5Bl1X8AqgU^s)Ll;0>YAoBk)NLSsrQ^m>1bytKWp7)WpOvaLnG z!9W8RAF~~<*&*7(*6p<>8;OsHQ{~Xnn*r>zuyJ{N6<2B;38R=H;pCQ^US3*an0XzvmXw=eW;LDHV>QWA}?y z<5=u9$4AQKH&iAup|LwPey_&MZ>UWCD0g#`EymMzR9m^vC<+yPo)e4cF#(up>~vW= z+tObn5SLxpbB0slWBc?P>6{GGpJp_?e2JcZPmz~$?}iUO!&xPO?Pfr2H^-OGl%~y; zJ zT?<25Aa(yno$BfZWTQ( z99o~wKpotSX3<1WG`9Hpkf|Mno#PKXvsg-a%ED|9g)A};(Es!sDA#yB<^!dE8te~H zb?F#>B4eb-e(ABlR=zq$dpt&Z?3W(AK@JVtu#mmd39Xsq^l3_VV}Jr>KP3+eC} z)lW-R`bDo>bc4w?Rb ziQ6G@8zpX&#C1#DCW(tnT&KislsF7Fei0YI82e`U&~H^Yule}1i%xb^%}Y>Sk(#|w zOsVPhR5_LJN2aohr(Z&iyp89LRnjkd`o1Hv-Fge*WY)7z`fCEJ9H2=5p!0O%718r< zs(B2NVpGj8n`(Lh{i(9)Tm(7>cW7nPA`TC<53TO~vEN4ke{I!_R{9x%aqgBCW%E-w zkkc0bUfSYkx3VbYH#Ej5(tn%ms$>3n53~v3vVHr5imk#mSP4BA#syoX=D7zC0V2R( zbZCs|#QRW6?;i|vKX9@fJ*VKW3UOEm-8|UAU*32DCy}8${CQJ7IjVGN2!g( zi)W@ki%ytb^Pb$ym&NbE-pUwZC5~aC_oIbX2 zJmJU3XN{yfE^Ivr8&KqLRk_SUf6j@|x}YdJR@jJ<`ai&38WFDlO^hw}oAk?qz&T=t zWocy=!G(-qbDR)${jeC@yuyR15^s1|F}Cp{&Gb1umz!o~VAmwN8w{U^GJ6 zg%9lvgU%3s2!fvgzYzuC@=NEomt)`VBKg6`RBA>QU4xK zS6qsT&K31X^bs4KE9!^z5hI=QdMYdx!PMjF)2XT{wGcVXz^WFpYTGc97*V%gc?O>t zr!5v0aheaYA$q{H`avQ@`*+(2x0_G#ARS-#xWvH9RSdpHUQD-FVW3Z!Num7uWs-pI zvX%I~*0e4Cc@Va>P7J5C5o>wSMoe%Uu?p7{*#@j$fNx0}lSh2Wd~u!bIM(|$e%3n; zg-D0~xY+&FD#TJlt}zgLw{xWVZwTf~h&uB+w?jA63=BfTiC2I&1sK+#R`G9$6d^6t zT7mxQ6XBjW(6{dOH9Btwv8giI5yJ>3o+jT>%M%w9Zx7>H0iG&krXXx#1xu}CKwHDt zDqOAB?~)uz&6*hYz1f66ip1}rDt-%y+9&)EK-1VP-Y}@qlK0Tq9sEYd_6x+a*7ydEZ`Sx78sD$+OErFl#t-mYHWfwuINwtZZY-ZJUzjSx zezy$fb5EctRe6zMNvG#1x?m@Fw4=ZM;s{JL3&x-jcW#gEWx-pmAEB$F!JULKkWHs^ z?b>56NS2LT=#+ttd;Cp;Kefa=fTtEl4QwJD? z7#de4v9%hzNn^Vuwn1W>HFk%__Dk$iiCv+w1N@d*hD;FqFR_=rB;sUj-(%=BoyqFL z2y9jzZGc#K$?dRCvYGF3TERG`6jJE1*k08_zL@44E$d32BF;{;z%cOQcw0FR{dA7A zJ?N)zkL^pt*T^paL>~)a9}A$51@H*Xs{A5aAD|170Hi|MG@9;b zN%)0S2y{!dkP3bw75qXf1U5>XkP3bw75qXf1mY4Wq=H{a1wW)hFDsx=NrmTwVwb=8 z_!Hjb>}#qy6n5Ths(CZ)!?hz2<|JyBCh%e2CYlCGGdMj!E#MJor%(%9t=4L`rYr=p zh7GGF+n}>K@ghE0(~%k!6R7pErWy)7Np}r@K)Q)+%0CE9x|mB8{e!f3u*r}On3?UQ zs3H8vj=Nv%AjTRqWtD17MI zrkXdxzJpE9Z`trUfWI(VIborLjX`2Ft@yQ43s&3jpae1@>C2gPIuAt3`D}vF0|DS8 zXDQSIT3*YXsVe0^pwOI-vj2y?w}FqUIurkA$UqVZ+yMea4G=WeL{XB8LLh;RGmtwn zk=W3R6%~u6wAD(<3}8hWoCI<+PMhx9ZMU_%?za8c?QXZ)cG3D06OaV3DneBd#fWc= zBN(*uW+A`tbMC$Kk_5%>ulxW1Kbw5!zMOmRx##6M&w0-CI@a6FhMBjhTj>2x-;7>I zzzJKX9mcDrCY7eNB>Lj;X6yj=lf$#8gf0lLC3yX$@LEFGpA%k7;QBG)wS=wL9+SOK zc&$XP7iE$1cFaBhKnOpFHfL+()S$LOfSxwz@S_h3%4}C_xv^OoL>l~|G^WuIVHaH& z`FPOU>pFeK5(ltY;s6$BJ6iQ6A9wmH2Rp5okwmX~FT934K}b83wz1Tebh=18|GPrW97@Sm%-~7rVCHKN zV-I+~qlYR!++O9VhSfBZEXv1~8Xq#<)|oXW@dtI6-uxyf{U8Z|iOC*^8kI3f0_OFb z<*|%x;pw(mZrlqZVvS>CZoV~ez7j1 za6x0zn}jP9JM+d`(rS(8YK^A|XRQ=IPg&u=Ynu+HJ9tHLQ#ZZG*H*k$t9jpp^{W(# zF!`ZCi9U;VR0u-vNboWdxdx)sg*z-x4dLXfj$kXIHD1UUlZu7ISb(tLR7}-?@jjal z_rKA3J5_ewn4^TZ0Rv~?Y#%VrLklA(Rn$N8VGp{xT`d3L7gU0v{{zOm61?gXJu8Iw z5)(r}m5PZ+^iti~sT-FH4d3XOT35UsdM-YjD?4Yc^Ptr}t1(*B6ks%dBM0?ixW;U2 zawMYSt-|jz8>>fA>)DH{A8j!9rE2&kicU2a#bwmA$4h1H?_r=Qbhv%n@AIGBmm)K)kI6Cl$Cg)d>CQtMt*u(nolEcqpZ6s=q4YJfdD6$1E>_vszoN zcM1*gZEELYu^fI`Cq|QC&?So&bLSHu4Trzq)HK(_7}A zFlHN-#-1gBhvNCviN{P5`_y++;HB0XnYxpU=~fe_QI$zsuBzFPzN$rTX43hi^WA#I zGYwFO&&FS-8YcZilsdojP;JFWwOS2K?R^2w`yt*Jw8-zsQd_YK=ZtBBbScCioecpc zMqf$ij9*u(Eb%S+&1^ z|B1Jj^!~GZ*X%1ie72LpUvZlWMD~QqkFT#k z)Ju~{Jg?Yr+SLWq6sh7(tFD#9;T*DMvvk?~#%(Al^^tgkVOIXD!Z82HsZDq%pb=1$ z30>eH^XX6I>7zWw#Q;b~Jx!mWY5EMwNE)YX;`?G8-9UXqok4yVaf1FnixUL+C{9q| zxWc(hsP9AaeS9(KAPMyifoMfGLY)Ot)L9rRt*JvYcWnWc_o81CUUP}G<5uV&J$7fx zAD@VM1*xdP5V00^^R7$u3gXm#7jVD=?jl^lXzSN;1B!=fD=ugb2|g9?Wa!rMF&1cq zY(tv!;GKxsy7(u{w@PUvbd7Bk-=>df0q|I;y)TH z->ikBNmz*Ou3$VK)8hrG1m&hDrMdvX~UOxwgHj{Z#W?ClHB zpU1aNOD>;OlCU3e1@`(!>7JC4Vjpl$`tk5bPIhZe&ny1ZnqoaM+N7UiUv-A>1WX$L zoWtm~>S2&i?ebD{L`uF;EaE(ox$&z}elXyCi@AaPiuUP`&y%0iFFUCO`a)9 z6oHuNt>_i+HjF}PF~<-5bN8Zl_gOqrQbX~gptK!rFA6tw3+Z8buQ5&lsAwvf*7&QD zw&2&`wM>sOz^~g^2u!*Ig(KlS6gXjQ6pU1QCq)w95a+T^)saH!Xte-%^)hhKS zmHKT-y-8BPZF&TPEAmgmq`p```m(tmOZ_6x$p`znS!Ekmr1x$Ly&_E6#-9OTN;Yu; zhQ~}fY*N4DT-xf7E}F^?aZwo~Bo_7`gbs?+_T0ouJ@PCMjvDWlp753Kw|zz(3Y5OB zCamQziaA$U*<3gsX+`>coo>%3p66G>zUI835*;Cg(Q<{B&~)XWwh}#|>GWzB^A&#| zt)g;`xPGg){>K8R>Cu; z9RjEwryy`?tG(F}1X#v1*`D@AfCZweY$8ChT~56&`oMn$KDP zhnCMAt*I8ac>E3ywXxbFRFE!VauuPxR$LuG4+q~NGG7#z{dML+pt!(d8!GlxmZXpy zZMOwz=tlN486eb&|Ll)lg^qckxXdLo+ugzm7gnXXkFDlYUt@mH246hoGVw*N@s8k& zT4M)S3SR&rHSim|1Yx|Ni7@)%i$H9(g)gv=1z(`e-7A)X#_|3LBcc$7`1ljJvJr-8 zAD9TE)_E)qVc>RFA&daJ27M5QDAy$s#;Z&$+gDiZOLUZk+{W`sm(w^Ic?-}!AqZn< zVwH_B(!9H|o`Ns(W%>s41z)%YU$_;%$e*NA1z)%YU$_;%$oHsJ!54197jA_w@^4b9 zf-l^HFWle@ae-;#i-UqMUbXQBiY}+a7bqzAZuvBPaf{%KTTY8Fe8!11gb{F_vJr;q zf0VKP8{vy@0LV#vfmd$}U$krMFH}!pX*iJwBh;Fx&jiM`NVyu}sY3&hA(75W%4Obo z(o7FW1WPD#1SbjN6B~~deNuRNb0OrV=m%{P`sCE=es6cF^^x}G zU*5c+3?1){3oZu%mYq^pAiy#NHl$@W=Syk$_BkAS-df@&r7GXdG|{t&eBS9BJ}Cp; zO%-%EMWMS=h3?K%=x)41cjHWS7t7G*7Jk1;^*tRhUVxRXD4AO04ZrcO-`FEKP=p)< z;Xohh@uP5vMOLQV4ebZ+p$P=Ik0e&3l|!SuzAb%KqL}4E+6X;|v`B#SayP&^P5AuN z?&ls^kxDI-)CVQCU8Pp5)H+GsA*tOeb+JlaE~z~T8K&t-iRgXgBS)~d$qG)rGFCY& zQ2GuI+Ni`xJu6sTCL6M92Vc4bSwP+;ygNnSWuUeo8c87Lp9xAMM29c{VHg!K(x#B) zl&k}mKN5em@^am%lo3Kcg8%q{@seWNe?j(te=S9@-TSPImyP z@Jp)yT}Wu~PpG=INOfr$-EwJ>q?W1FRQF$6Eva=XHP!u>E|%2gX8&)J{zpis2VySV z6XHJ?i4Zk%8}W1jowo5XPVM!Mw+EN^wlW@~Ns=czM84@g9P@;BDAFrViQdi@xDtQv z?KL%9Uiy%cK^Crh!;;VWqxrZnfVZvmTegaR3-65Ko%jQi9m1AAYL8=+N*|rJ8wF<9 zd{Q6M?!S4z)tq_1eR{W@d(7^(2ajfSTXO55@X^5i_ZF|jSF881dZ{Yh3HcoxGio=R zQTXC?WQU0x8S(YP^hPMPsvNz#bM{8ssSpy zw?pt)p4!Y-Il^pF?rksHYG<|Qcb%aEE17lw5j<;A%w3rBrz8H3%}_mP>Sw_}M_aRs zZ<(7wF|&ycRw}QewtN}}yqG1uYrVcdo&7HKqxf4A_TE#JDUO6Q98gw6Usg_V1kDJC zc$`Epe3u?;K$$#M2_+da-PKuM?puJw`=1^(Jm%b83c`kp5y`&f*Z5((@Y$^8k}CKtJ)VT9<>8fSDo6=QyYncx$<)ddm1!S9FwlO3VAROAOY%mfuJ;`_3!;Cfv(QIMCp9uhAClkPNs@9M3WWih#t1O6pM zlz2`uzXaxz;fEVi(TV?MqbE)HN`KUe0)CRYect!`$dX#C!<|Q~!>7t&N<1=}S&-ux zp3;B5C-JSDnJuE}^1 zQLBv#n_@3LZz#yNmY(H6b~1*F@jPl>G|*hezfC?AEK2|}7F28P2EHJY+=@sV>6$7e z{#3UlJ}8OpvT9BR)JZLq)E$!Atx~I1YMrF^0HD)U;$oGUwqCOZ3SN%p1`hRbC+s{F zK*R;4<4laz8F=D#Gad>bVxdO&(_Ed83w*QE{yUYH)j2phZDmd_F~U#4P}Il=VnzSd zT%QS7MZ6eBOYvxJj$eU-7sk9W+tXaAA_Y*V-VpvVk7qRuMy{Ulu-ec)9qctfwCHcp zknX6cgeWLYVb=km(U%HW)H$s`@J1O0(UH!?VP?VSj0nYRCp+L z7JxM~xTfz4G1~3Dc!+EIt?V^Qk8yj-iloGc((IAp7a*;&BLe}X6$e5I1iXN0Vyzy# zW)S+Ivl$Tr5ebKl3guCus|tiIDxVA=pRp=|9Us%<>4yD^lPTUi)NC-}-z@)!(inRZ zun5Zs;!UcBePA2_|2v^h$}~zm-5I*_S-pSe2MJkyZRm-Z{l8mdojMEzHh zfaTo$M71i8DrNU4tT30M5h%(i&?%ps69qwOKJFnn&5NO=8`-oXZD}&`JM(8oE0c1@ z{mJD?k{*<#c3E(WWWgzuv>lSxEos$~RwrpaLK;ibVo74&ia%5Iz#fowX%=it;7;c4 za~7D4QX1oF94!hNVE&38G4uBs+-%ZRHGeNwi<7iD&0DF=-{2VfBDFvr;_%`!^rP zE<4ZuYSnI5roTfJ0Y3IWX_I#tdh^+Nis)nY6jJZRj8&zwe)zSY zz0`0vVZ1UQu6!pkRFx;vhvAH&t+b!`U8L$f8IZe%n0DD+gNwLhj-r(%J`VfTCyhR2 zwNi~SMO$4%LhH5ih1%%Xpe=7J@EbR}{arO; zd?38^Cz9=C!9*sQMf;A=SUE0H1b#DW6s?&|UNwxR^qCd!2w{Zm3N0nmcf3DJnbAI( zSMEx@Vzqbe&{Run4eDXsM!^}50Hi-t?Zy8}iSoIr8$`ucK+N(zkRwC2TlGBR2m|I? zO}p%Bp(`|X047QVPBqckjTMopL<;S!DMMIa zGu^zdc1kWYAGv&;H34T=O`Z90fm16Pe9tncLmOGM(9S1>(EMdfyK0s@ot-r+;BP8xC;SwV_9)st^2`OFr<3 z)B2-u@sz^p2&c{s2$i{0xY@}i={a(W4SwWqY1sxhcU>DqxI;0HH2p3!UNHWX@R(~) zT|wC*DT`H(MO20D%u(%!9oqVzDT?)!8A;lDCOE|V_8ugOCR>|E!LSiS?FKSrW-S9ml2{jPy%tDGI#k}DJdjq8n^9JQ)Lk9`AewS(IC z8u_%U(;ad_z+g6Jg-Y$rn4}&Z(;@`Z0CC}lthRK&zpF!P;xB!^wqiSK@U?j9m$lUo zzeu|~Prb68#O(xMK(&BC1D$$oQSlYJbGL|fh*N$RE3hz12I;Xv93^b_i0;YVa57mr zP`C{kdnGbK+UtTH^_aI?I0PLBVLb`U;Mn4Z)nW`hLcJ%_ZX4CsHoX}naAICDOL_&4 z*TjIV+7Ui30mwIL8?WT$P15ZL6XV4J!TBaXM8-xm=vGr6ZZC$jJmF~##P8R9f9!NZ z;C8aV`(u0|&-GYi@k5MCAU4^JR4GvLl3(+lVE;|g?{srccVsWR2UOGx!8^Q_V_^9G zVn&na6!V(Akt+Q`mENw>C#m#umA*rzcdK-dO21mAV}e6D4wZhBO8>SWgH^ul3jG7S zhAg7`IJd#Gpr5-&(v^5uebGaRRZn>TV$R(jBCe`?LavG_vV>H~j7LOu%Vm=zVoh6? z(+T&#C-j!zx!YesNEikyL};<6q-zphb17hzG9@DP4CBPpBtO76xmti)I-0HDskMst z1L&=IQ^rRM5jgz2j)q~L78IbhCIe9xV|c!D6OlHZMJO1W%-WIWt4)Zlf4NJr)|f4v z+U7Gnebl|vCm8%%)Bg^8=_;9EZABc^R127k5cL5R%XDL5PG_~7p|1Mr5}|EY7wAjo z*{h5eQ9Jc0%+#rVO8T1Az^MFy%bV5Znh#hVeIKZGN5W_K{Z{e=i0?B>ZkVDcOP!r6 zb?yMACf)4JS)<@unZDY39wl#M3(a4FxD-Iz)48|)j3Z7kg zap-J$jFTg+Ejy;~h#b#dITlIz5=r$uhz7ltx(Xe!E+@u4fB5k~s=u==>l%s2HWhao z+u40=)HUz(1ln$In?j$XWQ8&dRFfNAQS&@S5$>sThm;dJHFU*RUHJ+EU(9h!>UWg*-8(s5v^rc_xA}59hFVUCq#j4xyR~>U7C(k1&Q90Vg>6o*LX!)coEXBvZ=CRGZG-5M@}2a_ss*Wb`@1$%XNc67Ecj;^Wwt-h z09iaO?SIs4KUS8{(|(YnRWZ#)tf4^w<@>9%F~e)jyUcEYn0i8Evj-T0l;% zO{+KzM(t8j7u)7LD-H*+4x)Po(S|`4J+;~#npKmfwaw3}IPBNvpv;8wPy}Hlrb6w( zNvW^P{3o~{U_g1&dOu9M(7}H769u$nd*HK8&&v+UN&>TKQ|J)&)PCBoZESanPo1=v z)qV(i?ig{=w8)PH=*08LGjd`3%@|9FP;LF=k|Ys!L=y8GZrDZE8oM)HkC^;W>~r%b z5P(m@yvc}BUo=g!R(!`A@8okX0uv+xUxA7jGy(J8K!J)EG(lqU72y7SGxohNhn`8y zT3JcW?m}vgKNM71kXcl8tekGuXyp`H^94+md}Cu^)~RNEc*wVv`;LR`IK_*`7%CkH zPe|j68ZKjvME(bNZkI9@jos1h$CT0vq?dF>(TioPP>8V2-jz;ZdMS3??c`2{Cz4Hz zD5qoSiRD>G58ehLsy6l1DmzpxT=(i-T|L0PDbGfB4Cl-(tnCUpx++NU&43L~vWS#X zH09{4kTtWNeo!{9U0VDjs$e^K5S35pArU9>TADP8qGlCIQkn4Kii8hWCTZ1@RwrrI zl2#{aizRKjq%D>-#jm3Q7QgNaJDxD@nMHd{K~g%iPRX<2`cZRJBCaZ)2WznlnbI){ zlCw)|yaUQeIW^ddx`Dur>T{+b^}jM&Ipj*Cl4iAIuev!zd_Lar^G5u~N^Px6@CAy0 z&fqw-Bc#%=OQjD>eL481zYd8mM{qha5}(l_^Oa|X z+D24KAS$MBLtnHob3Xf80_=#Go0JmTES{(`p9{V@zkHhzXJJO$fd-mO^UZLL2#pd% zFZE8F z|8Kn1>C<{08PySbTj&9Vx;B0hajqV_4u1oXo*2^a&?5grH5CfcWpcsW_->0_L`0a& z97ULWTwDK?BuOknK_McLN<$&LO(A1eaLiI={}2Ai$5L4E2NE!aKeW3q=NQa&=KPcTTrL4eA&jUm0Y?@8SiAcO91^R(>bcbSax>zn zx)gk8#z(tc@ZB`(+v%!>j(jHm7_YAM)021k`t;&G($#h^u9X{NtpIAN@#ZUI!GGgY z=CKD&LP%SGGsUU~U&lp2O!>t_Q8_nOyH~oej1^)$+@TZCc0&OV$Wo+5gr=80#ecfg zuog8G3o6ZGPot#avmgNC6WF>*?uLbMN8%;q^c#Ck%sLNT*~b-;Y?H-#ff$ToCV=M< zOr3S|rF;=7rvmu2SNZ12{>kXXYMp#Hknd&N`M?|l<9QKEehj8QKsKq`7pROGC6nyp zH7Mn)KztB9%wr;vj>8}w@5Z|rPNI5(qLWSt#0cG;Hv$}NdazMW349}V2!b9V(n`}6 z0d5I^&~`@Mc0zEo^n$TRxhsnFb3;Unfo}qai`Rg$Zo+IyD7le@k`reFV~bRBnMB`` zSaPIuO?tITuT$wJz<>k;!@VW9o0PFJKL5NC6U?w{eh0kTAZG4^wKF`Ze z;`2ZSZ`>~UbU3+fpcu$AgWA6Xiest5ux`3&SPz0;6cqxa5#;(tljIxLF6lcYje~DA zx4vQbOWK2y#=$q5Ti>v-q_s*K2j6IVWfMRAGW-*!=%~qM1+VYd8QTPsBnGXroZp4; zzqa(n^zcZ`XH>+7Q9d*J!6Lywht?DzI)n_`HLux%lVw?ptbl5R2aM8*IJ&9%fCUNWYwAM6&BI6fIPa<)r zDS$g*;F=(?Fu@HJxWJ4f0~5J)`z92r=G3~wUoanRAsDkn5YnCm>33cR2m1*8$FS3Fy(hzjMduDeL$N*%@jEvKDxN2rC7$Cpv28lxY7jL$<3v2bD*5eEY;p`m%Y{d+miH;_VDEFrP{Y%SgI{Xqw1!YwTExX z9+Z|q;`?td)t0`oR9o=|HYQ(rWvQ0fEd`OdiNyVqxP!#!NE^l@Q=M7XfX_8cL zzg?3*$=lk)E@>3CQjMYwOEJ$etGbH})H~6!R9n9F5EomQ>e^jf0~I@iQ*`HvOzMOE zGR#P=4H7H&0Q`#vd@x*ze03A@_Z4r7f_mfvL4{qL(e{K{`msOqbat(vl8+0tyM=4b zXb9y7hYa@V{=e|8Z?*elU;c~e8RI5cC})|>vf$@6(cI)4X60c!^NTMB|YY$mo^i&mR^E( z7I6NG%0m_32At^zx+k4iA@%iWcjW_gCNz7rhZhVHa0UcyP&iX?Uh2`logh?6qdYd>k7mJG`UqEVJ=#OVLLa6h^|)k8eY3R=>^->0IZep|e|wK=#EYET zE+JovbDV_NzUxDVym(m}cN%HMVu^!*B$S<4bQm#|2tLul8S#O>1RsdUm`RA!eOP71 zJi;Hw5M!@cWR)q;=Yits2_;J{NL6=fE08W@1#7(W{NTAFPJW2(oQeXYV;@n}u&K>@W;O8oP*160%#AyV>0?+Bk5y5h}88T{Vx@k@f^67%f-=XE|3*YX%#iQNZB@U&XrwII*I6KvV z*7Ad7Netn@6M_a&Dw&_6wL_6HKo?Cj626>|eK~JvZBwU7*8~?e?YwVS3IW?R+wznBgad$4N54)<|_-?KlGf( z$SaOd<6&BT(Cuw7%WPW2z@d@YRK>oHgbus4<*dfN!LLbPw>}disfOuk{8KZ< z-AwQzc`ob`1+3U82&_t8}A=|vErlPHxl1bgWPnV*?+4F{qh3a39Es6 zbd=~46vSO@Gy8%{bfo!A_P}QOBRdBbi3=H8fs;PwksEt=`BG>UZaAbMXF}#q{7G;a zbvc&EWU)=9~GyN6ZB_%ax&7^JpvL-f0PMxnc4aL+IiEop*k`_rAJTbbcagik_;ZGR03jS^- z70M$6{=UaU`Btt#nFUJLw@wc9EvBbJBwFPA;!*V&c~p205y|rr>(yGm)PJ;;i$!xx zPnp@Z4dSJsUrs^>$+-ST>dS~xDpFv9VIHJ4wqa7Iqs(l(aQDHGW`8#1b~;v@ec6Rj zm@hcGT*Y!yjz|SmivHl{*7Hc79MKc8RtD#0h(-kjkIL?<@3&Kpzn8}?j`(jl*{xo6 zTc5s7+}aN)bIpc{%SqL1G7aqawGIEsUH`s_KR|N7l13%~aD^SmLQ~Q;Bch{VN_oO3 z%Rpcqo|X|fe?PvkTD!M1d^}`eNMm(@YIvK7w>00gusqsReUeyh*JaiDecM7H0#k!DXU*27FY5{Vr@WuXXtdl3QPKU4}`J z*7UG^(GDwxLn7Ya;By)UB$ZQE#pvh2CvOx(h$?N=nG z2pan7eR*j0*%76p<10RWpUnb)4A^H6P|Tw;%?9c-@jr6f{wf@>$iKe7PJV{|8hqGl zaWy@0Oz9JSQtS5*STqpxD~dU7>px|D|2SZwe|`IZeJ15u@G|(Y)n?UxoV*AmoPPBG zZos0Y{S@=pwtvllh5q&Jzy3_hGuxkTBB(XpJm8D8u7-|z6o(H<*dFNZub%Ghk@B`I zL-x!V=~2f3hqyKWf~gQQ&mLX{0aERJ7DR5J-ij3NqMS6)j_&HIbIJ5VPWot&uqMQ z*)RN+*O#n1v-+NQ2JrDo@O9~#y??s;&bMDb)A}~pFZ`AL zi;G)xKtK8Y)7AG*`}I$*uV&Bp=x5CTk7t&@f8?bMW9aye>|7W%GuzD#t`A!igHtF& zIV}adgu3JRo@vI%$OxYL9qJ-4P{%X*U612{OZlBiUOUg>4^sJ$THi|lrd*r+k}9x_ zC=)lzxu1RjUfh19c3Jq*!H^dU28<=T#f`<7yK=U*>yu9i#UM{YC<{I%ubKfE?DFA` zO*5{^QIX=&E$^x+k`g;>mO0T`Q^BR1=k%$ zcwIC;O#a##$wxYJLNAGkMk{X@*^MxnMRn>!m|#+t2qG$utvn1pj&S7l9^Hxzrg&u2 zVbDTnF5%>Pq?)?5jpv|XK>9C(A2wavIDZ+u3z&yrk!6lRwlNwBrBUKH-t<4=I9G{4 zctEJn#O130q1khgC>7DGFgM7SGFTu}r*BFLY^)p5V4daA8czxaZrU3f9{-Rl^*#(T z@nxJF{HU@hco?a_v9EGy2$Pe2mFE$bqc8uCt+Dc_?9nz}r8sLahC=UFo)`Qvo)LpT zs5OqJBgAS4`R1cVa=d8OC`@mjX~+|0@<7GMp||}Q*_gIR+IN3WmtcQXPLPV7Oox#P zHV-B|Q8&b46`0-jJOMBuPYYbwJAG?t9C|7j33H9?3Amzmeza!tDrW>&+V`S_**w8sWbD@8l~0h*EgzJv?Mv$s$dza5;>SgC+;J97f7vlpIFOAzuz-G>_V$@;EJA+&(=L~X@^v&R}_+#jWcn_$N3Yh*EUKfxuUS~db!!7Op1pf;+ zQ=6p!1!Uzj5tYw$r<=FVERv)$q{k_JxtZ0HRwrpmeYu&7C2hH+rS#>1z?6Nf>32bQ z(gR7q3rSv?>W|a=U!aj%V;*e;rjU*QQsB+lZnhEGxH(_+=+x1Ant3bwYP|I#D@A;z zybyV6dIl$;>PIUTe!3Fd)3%lL8Hxr9Ii;K~%;8bGF=6@yPuUM%|H<})v*txzyL~g< zp+hPfnh)DSHNNP>NlZF;Hebem5M1}NWj`2RlU?G_e$ertvuNveD6`2?<`e!z0)!(J zzYcy}xT(0HCLj4jG$pL)ph~XwnWBRVgDxXF=$A=Q&brMgj}rgYFO2s()R(`6K(Bjn z%jo8OXG=X`>Er}ZItR7X1Cq|HmU(Ohj1FwQlHH!yQMydQ%*~LE~ng< z`k|bLw$u;fG_0jQk5gVt{cujhTk1z}8qrd(anf4q-JIMl^&>frY^fi`X;e%7XilSB z>hn3}x73f}G^V9~ET^$8_2W2=YpE~bRM1j?7N@gX>d)qMc1!&^oX%;fFXU9%Qa_&4 z_?G$!oF=r?PvkUFiIF@vh=IUC^z~T6K4Mw!8)tN<`RIr|`WZcz&M>L^FY{qs9>QT~ z*}|l3s|j7Psvnw956aUA%%|#6I(St(SnqonZ?r>tRt}Y3*RyKeXm7`=UTaXb+7{$} z;nh(30Pou*hX`SfY-3dpB!g@*9bKk5WmnB|x$CS6TJ~y1Vqu2G*lODZEQ6+Lg*9eU zDrSMyhrc+*%i{Ssv*=MQG8`7{&ssN6h<5ILX>`ZEq1hoNbQuWt`eB;z6p1 zm$sUt1o&9?Y>_9Mt>LvnM{r1F?Q&-*o6kUMNIQBLyDfPvX%Ges z{Hh}3n$;qUidGjuF!pwv_>kw)7@n8t#x?Hd`N7EA97oXQGiuhDxr>Nd+}myAd-9VV z_$|YcMmM@m5_CqeypDMzJ1^C<+$SW4<+*MO7cP2qy0^s9ws74o)Nq)=tt;Xb0 z3g&b#rwoFynu-cJZp_c4f62dU@oNu-3W7_86Q6h!8`@Vu z4lA+ppIVT5nw{uYP~wTsDMHTvp~%@i+C#NPp~G0rjSe*RNX!dLJYp6XddRQrjM4rw z-c5YhzDYF7Rc&<6bpMm8M!mi7>vnq<>t=hXJm%r@M;2rc{zs)b+&t+wn}nPtF)f9T zT1^wk{B`>!A63ENgq_;cfl0dpxqI33AQs&t)w;d__kYHwz@!s;6Scn=4@1YaAApDR zE)3)z_B6gi#_hp}Bx`L!=mk7n%_(vw22%n?Kt{W{npoj=uHW3_aelEl@s5mlbpC2l zl|h`cAxyRPXsbFIKU60+U0AB1IcLmYEgJ258j#z`sn!U6VEO}i(Qh2ZH$Mflb-*y> zRBvzr$5X*2kSQ_Okyzn+UY|sakC*k1{VseRVQ63I4pi(5-B7;M)QHA$lEhp-VJ|Fx z@#B!=iH^%>~rptol3t-mG7ilTI1Ik(ZqK2+8Cma_)Xjiepc{}&WQHt*9s~d=Chyx&kNB? z2~IadN~>KHaE5A=;6o$Mo(U&2E6>uS_3*DNw-Zr27>B9n>3s>m2@4aiS}VUqs0Qo( zR2Y)6F;8-8o08EIRbIyYdXXI~E)UqKntw%pu?&*G%vt7-{YSCDn+3F#>bK3+UP~WM z>Z>;$ux7{G){I&O?Hi^@HRrnRIp<-{O;6?so@33qRJo~dc_1g~pVzE;I6pZL4}>PD zd3Z>mcvV5@r>1`dTr(S+;th1TeIH+H-YoPy&IN`O?ZK-&kJAjsIa5Q2P$sW?B3N$H z;}iYSYv}RG^!UNxJIb}dk=|YGUq?{x!o&+^VF{Nn`qdoylK(L&oWJ*zXlt=G;px2O zglC$!`~M)_siwI&*O$NQM47+`z>Bmof8FbnA<%RH;ModV2~64^$lWR051Q`TLZf^}cmLTvU(IgD z&xDT!^%j7B*>C*C2GHtE0M#<#^IQ@9(p`mg*WMu8&(};CrN46hFg+H+pGW(LxIl}< z4~K%)!X3@}pGy0jv z-$sYdO-BpelSnpaN=6mud*x&;E3N6=-hr)7iG%T0BmTq_# zN9W~%<5x|x7EjEJd1f>$dqh<>nPKH?foQ`r=7IVCyk(#uINe=dMa5GXl#X|?CwdhH zA9ra@LUd8p=s5*Fd1m5`l9&lSe+&9c`A@0y2y#D}MDBf2dS8-9x0m zw)v4AZ@BzjuCtk_y`D(Zk0?sc_i@Je&J`t`1^Q5EZ)Y17b^9v5lM_6oM^}^xVtvaK zed2y{hyisDUlc-KYaDG}v8bRbgOjWu$f6Rlfg)okT?d)hq*9Q2%zL%#9=1ZOJe3+ zFt=g%r!Zi8yu`Zb+??nQdB&dH4y|z`J-qH?2j9^mM>zV8m;A;@;_0iZmq(s9Ibu)K zquYvwT`bfLPHZXYaX&ICd~qo}(eXx(_VCl}8QDt_9Z_riCdCC%W(3?YG|d+qcG@r% zBll-l`mufJ5qk#=Z5t|awL*N?!t&-tW#V74+{s0*Tnyr3s9a=mf!$Om4i-NM{VDFI zXlzeK-`Ep5<-#w+k$8gQ2?t=jxbE$4G*$H2UEPA|2?H%w5gvnh9yoT1^ormAgNd(W z{E2K}uQ=NeOU;lEl)~gMMLysw$-$_sqyQVUQV|f8ih!U57D}LGx}=GKpi~3|C9qQh zB?~1@1O%lbASi*g5-0(;9t`tc>_x=40}e0?OSmo2ozEcK8pxiWLaM~JunK;RZ)Ok1 zmop(tlrjCAG@7sn!SS9WompDrPNp3ABn8?JJ*6Y=j)LNS&yZcJi&*qroe9f83G z0q5(OKdn2?Morv^`<>b3l9erUt%jE-Tf){Q3d(fAP6;!a{?-!EN1ll|k|cF7homO9=y|}Qjovymi)h0PKeAj&m;0Rf9dW3GE`8I&**|{(XnPCP3>ae zunu^Yrf$}qX9bMs0;OHG#sPd?x{Qx;64bFMn<4lZ9e7}#d?<}}>COs1qBYF}gTyr& zft#QU==#D3o!<4n3kunnEUI<>1vfp&3Fu-tj=moMx|$s13Q!7_#SmvnceC&}3FsX{ZwSUo~vGf$m5u$zYc-+ee`iz9`d=;-z`F=Wffi)1J3w7gcKg2pC zFinlXb*T{mR5E6eEKelD2i*YJiLq)Zw zTfwQGmbt?#2WgF0axHpkRh(<1vy@}R)m;0d6M@7EI$+ zKGT*tRoN!-E?rxi@C)`~9Gj}RCvwhtvOgd?x_{DB@O=fDy#FXqO!~XlxFle_!BPb* zUM~Xq;OCULPgB1}1!*~(%t@D$IpiBJjbd9dd=PsH&Urk}&=kjZGK*C)^0A3tY}F;A zV}}liX5(Bnf8xv7XVJvf*Q+KDrKN2{`BsYQDeX5Ox_BtaIqYc5lj>MY2N`CV8HTA0 zU<*gv@bnCs8mL=&&O1_n)rCoo^j|ph=NL4V0PvABZd~+UO zuty;!@O}@P3I}*d)-xh|j9IGQuHe+iizY>{F^i7Uh_;CtZ3p6czQ}xDEn+1x@xb2C z{xD=lUXot6bR2VSoz$VK{-RX&mZ{1XdNrN}_}ldLBW{Q?WTH8ieV^D%i<}4?G+0?B z;)NFa#zG;XOY~@#V9@bk(78DZ{9~70McvXdXjZ2;PrTcnF5Jf*3_q%C>%B7i-HHE5 zVb7(lKov4p<0xz$fpVKaZTZ4A2T?ST@}CsoQ;idrgNcEZ%b2Fkp=I#n5kRvU#_h%= z_-)}TnermlQ!BCq1G^?(Um}p?SmM*X?P9OC?@?*fV>O-p-Lc% znzf%*Ji~OT3e^kN1n8yOvWQ_)ZP5$gNylu%+d0_(1fSbp2H`*1a%)m4x9b&L`80kTVHol;578Q zte7S{LAoD#O-g=%|KMdF_8o1ljg0_>ZmzC%4SNV7?)QwvA zc5tKpCzgM{;v8@Sgk94UB&EZ+{^d*<-;7}p3)t_;#ucmAO~B3*x!eLe45U4Nc)OV& zbrIgVT`%3Lx3>U_=L z%+X6<)s2g657px#{f06dCS40GIEn;M+y2D$=tT;B>!kq~v}3A9^M(ad z)*98DTBGa%=~a*HDXG?`iy83;F-)%#`#U^BKz9wBy3xESic|QWM@(Wm0gCi?HI%*0K27bCTHR)aXHWQvX;cMDm_Ih>dYmuRe%`x9Y#B9)9IZJiLky zP7w)7J?V5}BU7DvnxMv{aK)sT#Xra?J%%^)b)AA_GN0Sa6kLJLh<85>9ZFnr8vHEF zT2H3UDw4lLE=2)tU8$c$pGX3AaC`!*!8BBbU?;gZC(!Rk0f9hGWxj$Wm3^%is4Xp9m-8CU_&G)YjLkx>t(K&l=$n)Qfq>QfIj ze$Yy3BP9GUfu~O;na-)tTuweS$z-oDbt&wqJW1fEArropKL~3T42=rkG297*MhG;u zj-DZjwlzsl)JGv8h*s2b$c?p;n#oaL4>Sc%V&Th0UCk;0gFH~^%TBZF`w8z4C2vo} z)og}vNH4)k6?hl;_bjNddyJ_MM!yUoXT^OJKf&@s0v)l$yNO?_a_O1OMV`gHcUwEacYSX9#tFRCTP zGsq$3Ob;M_QU$O@eYu^>Rl1?A&;w(Gw-*Ju(meL@e@9Z2bI}9SQQVUs-$k4$B z-*c%ohkynMq81ewJ}Cq#oOSg*P$GBKMhs>-;Xk0JgP?I_$ZeDXD0U*L-ZB0ibk)j$XJQY(KT zc76^CG-_>FQ&Tc-qdFr42}J>hqDCH6dFf*bGCq`d*Nyo3h7LDXT^ zomB8P4!wed>Sgp{%q_g`+?;rYc*`)RXX@)VnYa*+bcP5sHDlBH=MoP?v>h-tR~)}0 z(Kg8Hggip83ch#4AjS>$f?NEZER~x_eh`2Dy1)PB&pSO(j!!-i_};!BSDt^FU;E8* z{SWv2w&sWO)60*Wo`x~LIPMGykGih5v?Ix%Mq%QRuKi{=1PWoAr|9Lcad%8Fe@>mE ziw@wrQdo~{F;rnkxl0y?Zz1hBJCywX z5JkPHa+W`9zHrzqA6Lh}*@}O7c)L^l<|jjBYGPmc zUT<{r<4p%|zW}8-h3`LX?f(zTF|(~6WyIHsF?iTG02}zByvKv%A|L0j+^zsAneFyH ziMX%gVCZIr#DuSWU$HRrp^AN>tA`Dbxz6Hg2*q^fSIGU63vO^0`pmy2Z=TRsyBAd9O&Wh4u)l1>X6RVl({>==aaC zI2O|3%#TqbM~RJjhf|xdzEgXbN4YDfo;|&6)I~ zF*S!RgiE#%)sE16X(VC4cm(ySp$L7^q)>!FIM3`|MShsQE^3}j(s~-cLa$X9d0||i zu_`}uo#Njir5K0@JTMKh#_XoVV%1IU2xi*;HM5&qO@3Ak2O`#Fx2Vtuv=GrC6cNad z!)GCaYtw}T3V(OH#8l3y4q`9o6niVtjIj7jmImKSiISeAHBM%v; zlpcCS=8Q>lrg^^-{!ZF{too{GaHh2%W1HooDFbcEL_NdW*mq=X$9^|p+pOqsiHh=V zeD4g~L)|5KhD?gkAN%gYD(9be7j_emfY>HZ{dPZLX$}Ua&UE;Kem;)Geuo~}-Al+P z*j`n96Il{I-k6rI7vv?OcpG6I$lGiq3SZPKb~nt0X**r*d@ zH`4hb$m_F5$_4WJY^=T(4MAR?Jz7AW05{0%h2f%{L`#Ho<&0Z2AG*8s*uw6CeL6P` z#=&i3<>{Q=`ozyIUTTY!_gXmyCX^}fwQ>whtXAoA3{0p~>2eHAT&&XN7?`kJrOWXi zg+h}KZ|@a{x3g-Y3~?e_bQ*`ZpW^S9b_XXM*@U=$7YrbQzi8nQBx>1idL>7C<&cn# zgCP`O!n|TbPLA|HvFAh%zh#aZ+(Vo^kH9H2hZwG;Lf9s~lj5(|%`u+!h;8wD(Uz<= zwuoOnrIMNvuq}u@{7!e*98tG%_}Be~g~ZWtVf^p8dvZJnRkp=(>z{MQw`wci)7Hy& zDNvDEx!6zSr5>DHuKbenYb@pf0kz|`>3ttgKxgRD21It9E6@Nv6&!B7gciKwXeiaAm+BS!R*pgoWaV(NH=9F&5^d$#- zOl}awyH-@ltibwp3&o1-^liEdB1?1(LS@{q(p*T3+a(XaIy=;Z$Oayu$Zc%$AKh7t zds>6IAN#X{lLBzI?2HONredN!6|TByXAqF&5Z-Gsm@Vb&RyH(9x-k9`(uNrtUC?m= z5ogx{xq^~k(A6VX$K>jm9?gdg%a_`yDfoQ+b>2bWNc^S7bT%)~LUqHIm8j((c&HHQ zArH-%ZHX0ZiJoIi6qb)z2DIDI&vE;dPr<&e_o3<$V@Cwp5xQoXnc{sWB&m0 zmp(6Le4aAO<@4o5yo`R#2O<2+vQhsr^Gq4$Z@5AM%G;dUV5W;i&YU+H{Fi#MHN`q@ z#X>on029z^+5=H>oZd@X=nAzBz$4@lf>2DUMQuEQys7jk0j&I`Jy@>4jA9f5sF%z% zoge|)6-2+1h&-FcwDr2prZaj1f$Xu$O5hDz8c(fu`(t@$0Vd+LmEUn^@E<5s>AR|L zSmhC$^JQ`OT6$Ol{P0A(;yB*a^@^8P5Y%}yTicg&=0)?!vt8c65g9p&Hzo!^)_o86 zMAg~a(1IY&nb;uvuTRlm?yO;%tzng|VUexDCcOre^cpPEYcNQ!!5$rB%g!3C(Q7b9 zufZ0*22=DJEYWK)M6baP9fPsX8m!Q3FhZ}v2E7Io^cpPCYcN2sVR^*ALubt-e&_N# zk00jpHRtpD9KQ?rmGCR&cOk!v_)X?_F~3XrP2pF@ubkiK`CZCyD!d3p{Q{B)9H2bgPih0 zO?e@vybQ9JLH07pUIrQNW2cuv_AjGRR&A*~=h%8DuYm>}8O>46>I&_A}8O>46>I&_AgT+aNJ!qZEdIkQs;NB4)l8 z`Kctu@(T2dxVFBP8=TWC#|`4MfK9kKZWx~iU$|i)Ja#@f5_3ffkBy7?-mDcxnl{@67nZr370>PjQ< z)=5No7TQh)^+bece5k`Bt;Ey3XhdNWa|yf?8a zd!Bez^4_)50|(GMNM%*4tBM0`c^o}2Y&n@_)cx?E}T(Z1$%T`@Y-6`hg6Nof_2WP?7~Wj&0r$2&2MDKH;~h!PEu9+ z%=AgElmdMcsCZplU(L<`8}tc1B{a$n;<74BLVs;2Vi6DBptEsnER*$If+eE)3Zrj# zVydn^u}hD9FxzIgun5dL64-ZmvGE>gYyIQQHAWTbCdcyq4 ze(H&gG2b|;==Wk>Izt5Y5#>Xw3+wuaYClNr1c z{)<@+OU8K-PgMf#X9lWE>Ce9OU0?rkol5VEsb^_N_i@POsM9tMmoE#WI5bF+3VWw3 z9C9g>-ds%DCfgqu{U@_ALG;s=5Z^)6GE0b$N0>;JXu3IqxP+^ksII1o7bZ({(3t)p z`u#DbmZsY`$csQX){}zto1)}R3Wne0$zoKpQjXc@xf@blJJk{(Q z?UajNE(YO{b|hycB%6?>?7|`@Wx zl+AH(B4~XQW|GaSN|JP~?C&Z#1S;-_Up130C7w!2dQg&}ZGE^ZC9O=-c1T*cq*Y5= zouu`!HLQ@N#gfDq-Vd{jRQ^ekWkM$jQv!L@)N!)!R?#~%c6_qGH2G5$LTMxISl-7a z{^-lWNrXOQciGOGX!5iC(Y#T*k%y3X6Ed@1*dKQdE~F>q??KTNHPrAY`PY5#Q}RnZ zNy|*pjo%j^<7M4=ytqfsk4RCDB1!QTF9Y}BTDqAO%iJ*#`;TH5?*&lGTo#BuUMy>o zPGY+{FDee2uShZANBE7wTrNG>mIRE+{ElEM^9Pwzek_D7b2U)?Sh3Yz#)T*Gg%miq zM(-)!O5W(b#ed?YJMU3-(Vh1e%Lmjude%K=B~bpO0Q4SI6WS;7Ts(K&uJDIBi}4OJ zzMt5Yl}2lPmlau9JW;c?x^YkO{qhCvH%RoXG_z~UBxAB`!esiizIc#47QFx8?+>Yf z^oM-pllsF^&GR$wj}uIJt3T8i=#L-C7p(qJX*6b;$g^d{eZ{L)H|VkZGC(4LUakca z5Agl~?MI*2hKE|qsX;nC%u3Ar1b7G(ua?G3(E~PKGl8L7o>z3N2%{p+B^nn;P6r5+ zXgErQLTar>SF}?#O`Mcg(;tn>7<>*UM79d8(!4=uVzfCw*`JEOwIe)${;X-h;&*OI z?C}WZl_{0ONlH`r7kx9_d1K7f>y-D$UKw?LEMyQiAtni<^X{tw?Ki)-8hoEUCikh~ z4@4hVKueCt)%>V+z7=pD)YokhMVBX+Iqt`_QQ-$Y_WR;?J}p|4%PjrE0CTOGG=E2Y zsK4WVLSfxo9F{yC@8T&I2dD%gS`FWmhlfbOpozKCE*WIzit6oR>8pjhfen;AJ0Q+n}Z1CsOKHd|Qtl%TpaN6qOtpi%XirGkN?jKs~(e69fBG^ynI$&BX$D#=GX z*n*^hRp^g!l~|`@fc2z{6aF&fE{&){t9haA0$1GlWAbb|#04ic9VD-i`K8eEawwBS zksQ!nL9SEHb7;ReW(q+PB$3g~NpUW~g_rh?9~@re8cF7AkzXNf*Eak!WynA|&|1@) zUbgSFhqp$KXKCyIjRX`IBJD?)MviORTmm8v?^53zvqer?4RLk1D&_mOYVz7WzGSNa z1Y)e?)eTpw$5KP=I~NoWQJ>Qu=CSs$uXspDw>x*MWw07G(R4IdV!+jfZi94%<^sM{ zNh>ze+WEzb{3`mKkYDo2wqG%0Rhb6C2dk!-&$FnVMtZIarVe^b6{q}P^ zgDNF`0D&?^(dw7hxLH%-|0w-jX62C}Yw*VyC}Q2BUW+X~M@VpP}P>{ew=RbXkWNw22jjn>hC+VfNo+{UTxUg>i&ur#aQ+NXei_x;MV z2aJfO(!RPr_n)~uRgbj#_PLk%6;xRPgL+iH4ZzdS+9sj5hbcU=RRUFz$E;7E_xskr zZ~gi{m;M@muIjHlIkmn0DgD)zE!zz-{%#~E{*L>6zwh@x?S24yi&&JFT-kyxnfHyw zU}(pa0HOuTzT(Mr%w0L2hn=#OnvwCSjH$aO$J53ujznR`qp9TPMUVE+gz!F+g|$cO zu`&`s#|EEI@HrjEW}{0rPjF3%B$%s=+@8g)Ao2n|X08Hl^}%p8A_f!Co{(Nr1)=A_ zXg*#XrYdbxeJh80$Q)%>5HHm>AyDs0`Pkv{8p%H6kY%Qme5S-R)-$yau__r_X}@77 zd{toOC7y9=j0wadV;l+?2Y~QC z3z9iBiC^ilTZ*S+YhoNyg@kV|u0F}3?x;w2untwJrf1W*1V2{yDTL7na%-UM)(_@>Jyo|ET#QOe`4bSQgwzT_hT@*!28DT^}`0noY7` z7jFk+#WxOK0G6uJTT=P^;+|V`{jklG7F4VX{6eCJ63gxne{7@_2G=H z?8o}zE5VN^m4?EY>v^y3&5Re8_TvXB!pJPd9B&i8sVXRGMRnwqGc*%BJ~|N3IcQ>@ z2u;?bGjPWwDSE}x;CSUYE{R|DimBU!_|`|;10)BAQ&5dMIE^e~=fcgisZVM|;4Kx{fGrrPsWJ?c7NzGM0S zc*IeZNw0Mck*B)pj!o~PyJ%^b9A&{W{WSuDRJU<;?!HDgDUiW$Xoh6gq^U3!+!>JftAv>mhc6!f}WxRA=CAroaj7NV3Y;Ojais zZV1I{!PY`C>Qazg=HX?95k)+?lTs!82dsHTpz>#Guzl8t7&CL#(p3vo*U=rK|DQ^m%*O za#Xxkk=s@=Ne@{?IlUIbe4d1D2;#|W?BN2oojs6dKN(C+&U|G_1{>0;rCML;AzlrIS5}gjb)tsD&qKKkfIO%Hkt8)F;={-u zlhtGpQyT^9cZB*qTm7D+en+a`bJg#8>X%(ZevkSct$xo}zZaK9wDe5FMFUaEdCQ@<0`@8#y#)@AuAm%bq9eG^>^{z)oXk!>W zQ^m!d$g%#1#GS}obpi${{j8KUi_%<*KuK0EMOOY5sSXhpq1m6npNQ@l9ReU03Vym> zy3tl&xPwq%!yQUlePIC$#vv&5x^w+8v&^g+9t;A%t&?dS9vHHUIiBJ`xsq7eYp(kjCs#xjF0O?Fr4@4xterxb8 zKm2-S(e(_l-5^>EUm8)VOn1y(zL!p#A%@^ z$PWUwzCt8weT9hB`U;V$^%Wvi>nlX6)>nvFEkII!5UlkTB3bJzM6}jdh-|H|5aC*1 zA=0(JLd0u*h43qVg$UUC3X!n&6(VBmD@4ZDSBQ|UuMjC)Um;?)YRaHCq~^;R&g5(j zrJwd}VQHGBy6&TAORW57&K7b{dWzI+b=tEPoSiXKyOT5ZGlshROg%vyUl;3$&P*lo z6XxqXJ?86fDG^;05ypYBr_@`PRw|+DnY&Eul+Kk+}OfM@a32C_y z2&4^tiR*xX;xzgc$W9w+kh&he1gz{Nsc9%=(oVv(HTngpriQn1wR78|Tp(&$nG{w0OCn=FV@DqKqhTA?YX%2VgEV<-au`y));8^Vi z=G-=$`2#Fzi3+7DGjf(jnW)~UNXaMYmuYZ`Ci>4*akIYenqc3mQ7{Q zKh99y+ko9-?<&alD37u=RoCFZwTT>Xj@M{fAM+j!cl52Uy7;Dr&PHvtq zF&e(b6S_cLu0g7r&WTlR4j=1ptPsM3|JiSUOZ|<&t4N#jWD~F)e>Jg@{R5>Ns$zNH z@f#Hz14h&9tHw)JMcbh-qnH4SEKNwp zF4^aQ&KVL(<0h(S3HTiwc?AqU1hT(l8Wm{3G&TQD#=|UHgNhmOxp*@;$sww;)`Zt= zmeS!918UaGAPho~300mK@A6p#gmcwSXT)$9=UzZMqoZSGcOV(Va{dthpLf+bDsTE_ z+I;t*pMDIA=^Cn%vm?JJ#nhLiHrC?i6uEiH*H7}f)d~~3Wk0#k;$mSKZDB*7VO}*8 zV&xP?$kY@|MQHqyTDrsL@v)|TwAi`iv4kT!={D7+a_LgS>5|@}&idynF^MA}Z-Dxe z0v%D1Ju!F-EhDc2+lTWzQS+U+m8w z!>x_bfaEXTt&QGpHjre&!%Y(N7XCk|oRm*FkkaR4!**7&czaUz-H}I7H_hN9a-~e{ zM8{XTkeUDsc8oaqNM^`MyrH@nRor&&+lR!uyYY)bxqK;f5RJUy;z%Y}a8 z0B~8T*1q_|GI};lCn|og+NjC?d+R0}4*ZIJxl7pKY7(9Kt()8@EBM*ENBUr|s)T^I z3WDsc;7!8#HkTb2Q&yqv@rB3*o371H#I*Pwc7#@3gz2PnUJ>^t6Hsqk-N#8dH$FC* zAWZdaI|2Le#6K^eF^gU`OFND5cNhYEjvC=>Wxz36|9CsMUZ4t^E&kY0yz_20!iOX+ zHWX7K$BpHRY_L^qmmGb?biF7lF5!2wgJ&X-_RPq$8j*iddL(U1pQRK1%I{I3qNm&G zoL_yr>NheXpiff%_o{OkE z&1^TqH>+k|E=ByMM~(1Q-b;?CWlV2f@BKkannf?C+B>Hhc^r7_EIl8T(3oAT1Ip^4sQDc+)KTz|}T zz3PQ4=F0LH9mBj$uJLHD&PF1tyUMyymp^tfBXzL$tbj{@BUYxymxb`?YY^qqZ( z-@w@}1ToIz$9JB*`_A5?Vs}a`Kfd#}z@cph)9Vx37+93ttL)C zt3x!2@XbI&kvPK0Q2bj2erqGT@jLvnnv8~`AZ3K(lI=)bnI5wH6K+FKO4msLFns?O zCPa|X950O;k5r#qnYYiEmX7zR$YL5fh6_+&OtFeBSFzJ2R>V%mOjoh9RqSGk70Ht^ zi?!kVHh1XBa;(*3P+Q<#7?G3MG!(oe2{{a(wqy-_A^Wb|bb6+y0DS6Dv6QS72enGoI?BPq97RtmAoFKp5>(^;}O z*J59(m?e#9ZCif8g^t7;ZSMbF`Zrd@bjDI_d^-|0jK?|@nDo&N2W_KMW6 zEQk)AZ(L(q7o*$64Z5^bI!5N5%yImAl@X5uZ||TgX82v!3}&ywZ!^Ph;CrFHqPym;N9wca1z(P6z9-jn0U$ac{d>I@WZt1enCmc+2* z6`eVx11M4oBfqGF@#^qH_CE;=R{!b*YJMrY&9Twot=5s~s+y1%uroC(fN zEzND*^Tf*EY59YioVsoS&t+C{1F-CE!D_UBNX!Ym=Ja1ldr0aB-TnE-?Cy zOqWn2#|Qc!RxY952tF-&&y_ZXUcxL82RSyb@DllM$N&$-%}~lkr0WtP*(LU-H>bP@ z{hNDVE-qAyBjxVGK9gPQS{B|er0sh73WJgpo-{C&8-5^HIfd;`Pj||j(Z-dM-I`W# z*jQ9vE=F~)KWr?W>PaKVGafeoDVinhXCDQ$KM3ZGOwB4iAZM1EOmU!F_} zZ789PH9pk$x9!%B1g*G#8wLw@`;968g%lqq2X-JFBh)9s_gJ3pLJ2h@C#;MipwK7! zimA>6$%{2&2!8m6>YAUl$SmAU5t~RAJxe5I7{#G59m{r5hf{%Ym{g#Ju!z5!P%pPljuZ9&%&@orZD$(;t~dQqy0$e`HZwJ+ZP&b=I#* z)&m(?ZTY*5^)p|u8|`8Wn8#$_DYTpo!5o{jBgaaP&E64H=UeugO*h$p=IB<5Drz^M zzs&yQvS5xzH*{|wb99IJyx_g%0LIx`%~gi|XO3<+|KPI!5U1MdMnY7)mBA75 zAAO7Oiu{bns23J`fY>o%>}!X|a##sLwE*Xe%HA!`Os&K9a7VkyCrj~t!X#0e<*hh8 zgaxwu?Td=sAZ=kBb&VVuP}FWKu5Ls^o_WB0j_eRvu;-ZbmkPKd#9FK#v zUdH1ugvr*Q)_4TCU>77uhrpdIl29sX|s})>%1ZOt$@_$3yw*eN7zsq^*pRr(PKeWOz?C zdqey#CXC(1hN_F-NRu;l7{;>qnJG=nNP3_6Z2#WuX`{$+rgI*lGLQ`^sRjHid~)uR ze8DPBpvMyr7 z=CVkeIx>J#@AOwO)+%bgv9g5}ao}LIqS%a1&&QPCmxzU<9wZR!kj-k1;+s&?3rLvN zTY`s#>v~HVL&D`530QJ_>JI{Sx-#o7CZ~~+)BY$6>+<7VGkdhAoP@V~OE5{;oRN_F z8fIyqRY~t;ex9Mc{NK8j>6YadvOJoR#cttj5*GB9FrS2*GZIn_vCA$d%cP7fcESTB zT+mCxN?CcN4eTwgQKuaS!%PjA`lf@hK}b^q778EAIIkWM8QR5utHXGv4@bfR$Uw$6y$IlmY`1umvl5WMd+n4a__Rv6*^C&Th;)5w<0N`g+ z%`F@_)A@iH?k`95Ymzu3^6>x$ac7~&M|6RY^n4!);4y;U3>&Zd(I!A_F`#OJxXD6k zKrhMg+6U5rk?Kzd_U8l9*YcEs*!`dwUBMy#WeWEepC?)vjR=M@%lJAjQC~-K3&EkV zHgT%zd;UtsGff`lsADt)?PY(Ydwlm1i^ zh8ntPE_T5}RY>oBl!FzvS1&;Gz3kqACUbQgcqGG$e1t=Z29gd*!771|HXJ=2|0+uW z=1F>IYQ3^ur!uE)Mgy)1xJAOO{Q~cA8V$Fp_mkDJ3D*b@*LJp|&`mMS;kVYJx@*)6 zgE-*Y4L0N-O{2MU?hY2gXJg=H%ogapG#)ms&;3Q&$q? z)NDC%r#1C8-A_TILHgY5q@K$m(~D<`SlORGloG>+orH&Q6QvV(Q~o&}SqIE7Baz|#Yre5f!mF;rJQE?|1Mo;grFN!kyZ4!_~#J@L~{K= zH>4A|U9s<*dOgh)iNIp7*qT4A_9;v_cZE+yU6JVH1zbSX<=C224@8aC?dGZMT8*{T%9y}sfImYY~&04$G_LI{X(nY3@ABbH%D#zZxhKv zvG&*kpe3(!H8MxMZXVrc4!j+07ZLWaw`3H>`qz);!QMrv7iDU zQ<-H=I`RgITqj@AtXh9tGxMN_h+I$TT$Pfmm0W3e^9&zez2oIy1KRXlT4@T#r*VEH zzMDFM?n?Q?dQnkzu+1-M!6bYnhYB-yBdfa?1qxV`dMgf*@%Z@VLOKwVovPLqG&i-GGw2P#uVwq2sn@X+l7e6LT9Gj& zxjA1iZN!}rwtA8>GHoJw^%T$YC$~3|3KRLwM^uC@ey>D0&o^VgR>eg8W_}MTPQj&G z>kI3o9N{uM6q=E|hwZT54jb%nxgD;s!$v!l#V_R|b|@C`hq6^AT{xE#{)-)c*AD;H4!?f%{;>9<{|(|M2$Tv7hEYnS6#Yi2`K&oNdn=OJ7+oYGAZLjo=df`fFiV&wgh)6 z97g(}wlxIs6`Ga0b4eRqfST2u!s+l_&wZ%O2N`ME+Gffn&jR@*-(4VtF{p;}9i*w( zhlVSF?FglXb|rqUnk+P{^ArWUbp4WxSfs1qivk+n62jbnQL%Do{R18Oy${&*35gUF z;g9Rc??}$qiA+HP>2G)XZVJBxP|xR2eo7?TRZMW9t&W#aV#EJ+UgF?kC}gCuKeGrD#Q7 z0uzp$ch%9mZV5#1E%!#N-2qqJw5rOz;jd)5jQSWbKUy^@c0-pnW0LUPTaYp&8=6ZZLBJcn8O;YE{vGN8>>DOG0$qO`fS83Xsj9&F-J636-CUm z8>=pgnCCQBjg6Qi8>=pknCCWDT@o?RYpfa*H>&^jDlrYvXv#l{K9QDe6JYKOo1KP3K+pZ zS|1VmxE5~qR+3tJ$hV;gWXrc%``|z2)qIV8{63}_Y=36h-^7aIidt4w-Q@fQp?B*Z z$#>lo+C$Lii=np&vgd}j6SxM(sT1GXzvES=Q|wq4R2tW;r=IDT`;=EbjAJFU~lxMk)~^--};=mEjH>u=N1T9 zUF?UxgFHa>BzY(h(R~kn0BA$u5i_yH-biJxbZrpP-bQyJ@BQW7t=@fwn7XPQAQ3k( zI^t##n^%f$=MG0dCaaY)4=Pt8$P;+-gT)4y$soMBHIVU>B>>kcioKL=F-8 z5;50~$R%P(dPILB&Pb0KK*X8p5d(=BnjVoy#IW>;K|~Bsj~GnES?Li5u7H7YpQjaU zh#Lu%$ZFi=DWI)vsG;{W^ycUmae!?N_Gedn{MPmGkT?Xss|Ox{S}o&l5*D;odPYz! zmj2;uR3?Y~0CA0#IAql$zDK<#$6L(Vqx2xCWSPLj_tW1tH7dT#%<1A=$V`Xxb zWiA^llVi-G&uemoMJchdGC95j)N68dMM*| zW2HT&FX}NB9V$Jhe~>5sXT|sNqo4j=;y@U(;;%@YditisF{)Yd)e@(kmPwr8)A9e5 zIQ4X&#PyRnK@9biOynwIkjDj?)lZcYm&G>+*-zPjOh`%KfgC)XHLHtFDFo?ka9^P31HE4Yt^7Y?| z+J|$YMD*#qq&%yWTb`5bX3=VEeRxL>_HlD+t{1Cl*rrdxQh{gqr_>5F$jWkSR{kjq zm4C`Yw~FbjewBa9!W@LV)*^J@k{fCRbq$U$*+6-5g{al>-bG^$9zP^&5glV;=lbISOA6?H4Dhu2SRt0w``>?1N=N4eHo+v9VRN>WzJnITiu9r+QV}=-sVgshB;Cb z**~u4ahc4Rh_J~e=G60u+JT-&g+H`ba(}6G@xKrMv-$7le_#Ih<9`m{UZ*DvomgyW zrZ-NP_p$Pv2HNunodF|IdsFkrCB~V*$rXvI*hTo*?w3cQU|CPXSm5L_OqIGf;# zNX0n>6C)KP2_{7<&Lt>~RGdd}Wu#&h!Bvq855eR}#b|=ENX7XCS4S!?Ah;${QAki8 zsko598>#pV!L^Z!&k|HbDll$6#TTh4BB+d1VAOiblt{%`f~k>;iwVp~#U%v(NX0mU z>mn87392F$#RP#!MF~N5q~cP7>mwDH5lo9zOdyyZskofrhDgN~1UE)1CKBM@svC$;Stw?mH=YD^Bg;kNd7ras|z3Mn_^5cN-_U3AeN+e}hY zJ+;2Dj#sq=NowR7^2RCxuo^|`Xy#e|gzTY62|V+tr~(oV!9yqjir{gf5Im%?8PoNi zism6Dgf{SrXaut5T$#nD_-hsYmXzt*?moro@yhO+_9aP@T33WkTxlsO87)ZEhg; z!@@d}mF8U{%^8E7ryO;T(i(Xuf~K2p>@h);nG_j#Wp3y#MbJ)dB4C{dmo9yZo1L~C8WU|RZ(|w46EL*#s=QQT4 zLzs@0ePNf(eh;0o6%rjA_EUmx>>V{w$^9Rt+2sZ4@_;CG?dU|uNkGC%he6kd^@!d`G`ta;U!q1P)fjc3 z6w4LzkqqM!XW3$n;uf?Navnn^UtSZK+swBIzA_0^r8Ilbv!mp$(`3o6xng-`4Cr1*{~MM`rWz9W)b`jw{k!gq8v2V(9zzZjU7 z_6UtxQ{lkd&h5_E%MabExCdfaWKHxDbg{%|`k&QE2m>OB4ElEC8*38zDk?Bn{Q3_lv^QT$~pD{o9V;vhSJMflT3t!y95Xtonxnn13n@*ZX(z9|?X*$OlmGt58 zb=$4Hvo_P&GUhV5Z}zlnRf6Wzv)2NhQ?eKJWR&tE0FdGe>UWz9%zSD2kZl3Pk^?v| zEZST%o4svD&w~DjLDTm_gG;tD#->q;WZ+qeT)%5Gg6E;nVPzTW$C2Pg!qvY}i5a9c zbEo$XOSucl@UxiKzNtoPF{9FScjid_yH2`Sk`_3Fl!C5VZ%Cg6x>j55Nw#WPkwnLa zRTFfBuHDABJA6yg+wnK}g3nrKZ8DL(QG%-3WI4h2p>hbk_|2LaFPc( z2fRE5N2M5`*ep_}npAnmfKh7e!LtsZ$bLl8e{EQaId!6}HA~@jb0D%4hAQ)ZTGvRo zBiz{)8m1nj#f;%{2Fe})S`^H&Ym%nq*!K_BE+mQcZA8v3H3dmw3Y()VrjJy;sVa>6 zF@TR0kCzTH7dA?%tCPwNEgd?Vyf%M9!yf>2o?3INTG?NNWcROeIKy@?99zCX^s?8P zI{35Ax*@{22Pl=i?v!xO$5j0(PI53074bYLr(L%KfzAhZ^MQxt1DVyc{$Yg6xtioR zq}GEz=8l@tS+^+mvv@3of}Nj*rVfusrjBtN4WeH!@?5!zOZ0urADuSav_|-?S+n6$ zfp?JRx28^4)r2eZxw1b-nP`P4+%Y0JM`VHj5{TYC#vA@iAODv9ur3Pxu}Yt5RTM<; zE%sh;pU2F;cT8n8ROojdc)pl9Nb=B?#0!E=!YYNSWbLT7;)&b3t@n(&YYR*&^~a_l z{#a4qzhI%NygIsYjNkR{DJ$P+SAIy1EWUrHo5GBu z`GM%7Txo*OdOQ5K8%gXwN=Vi2ZRRJHQbC(Yy5$F;newyGiqkE}h^>6tZ<_}K#*dVt z4p=4C))F<;GRmNjx$e-}iHjwY|GGuVl;BW73G@A>Q}b*4>qiSUe1)SVH%0mYmfQB_ z|KG7+Blddq7X1I6l^%ufb;ozRzh~_K`RQyHx&ApU3%|8TiGB;~0<~_WzBLPb(8uGK z+K5eb5?BaA;JAEMLf{%(0NZ&^txfQfku~Er;{qA1Om^v6ig7VSb6Orxt=V4qrI^DD zXGpE5a%2B;nfNx!TGjd2@>3jJKM&5xkIO3u*|*+I?}+dS2L2Y*?$?)v>}<)3-u3}<* zgvP|C0=Dk&A$zeIh^3;P$K2Pq}d1y z*azncSTEWzQ7E!FFPW~Kmzei%Mzp|<5>V}YbfjyiDOHPbD=%-}f9Tv^4 zq8@ir9+aM(JaiG$h3C0}+VdQ&<74-RUec%c7uFd0*~XA8BVQZ>`G(~4;E@Lp55@9O z%tN_6l=CoM9yop~IF@`vfRsrjtQBblM)<{@jPM6CCRU5;4QJ&~b<&?C=?5gG2A{;o zb>eDC{E04CZLN2TF4n27lKPZRRY^8}(0#vs+V3;06VJEH@^K{3Oxpx5X5&pO*SZBo z6K(FOt-OGIS#9NuC1@=VYVnnFPiuK`mNBIKfwsCvN#Tzj0IJP^QMhiUisG%U?#a~S z)AnOq-Kyl%@15jWV>6Ew*zCkujq4@GQVGV8x*fcU0G-Cqqq7PE(Ip-xQQ_Pk^Qv%p zA4m~-2&?FECnaDNgK;3&U4b;quO^W$s#Eyyu~su_@*(@)D`-0kwH3MOlIq2f+EFXn zIt9_X0Hygl_YVaRXCS}*CvmdguvKAo+y*wwt80Djs1#~`9$OVR_0};P%Zlrrhv0Vy znf>9e{x#?Mky-YO%(Cord@{mxXhAXzKFfA<^m+_)XJz%tT5`6Si6lHjJ9A%hIUO_T ziaT+qKennFQ-uCy&AIux>_Jq-j_D!5XE2{I!Xg3{7da+pSO21H40o4SbK3!&fj$qk z>)Q6t(O1zQ!($PC==zxb-xImR@Sl;>SlzC=36%K0)DZ5t!U!wCFKVT44?xd&93BG3 zAr55Jv(Q-yUiie>!0S!<7%JLSVBiuo>Km8ucP-CnJXEg-VWO%F8Ed0K#JDoW*fIo7 zjfNkpI@N5cUL`ekzVdQ!5`j$YgBni$l%VNJN@r}<+jZiP3B0SWAhk(#E49%#!utaT z93yD*lg?;5R0@5k6TjYecIa~x%;>1lZZv#T)`s;*W#KW$hSWyGKdac6xtC&g165)ghEwR# z8*zEbsw>^$H?I9J)3psZ?ievj3R~aBBnWj-EUfHw7Uub?Dp32&=`s^yZz9lH#f$ex zhnunMXbTF~v&ahg?j!f+(FgrSA3~rH7`}J>uJ`>7`;CT~QdPqrjfUAgV6_OhAh<-B zuRhT1ccJf%kXn$}fb}+3Fap+nfSpRdd574vGU~rflK8<{Uf#!ztc%g`6)75hJU`0~ zmH1dz9p`TNyTq}YxjEm!0rO8P4PLiD`Z>1y#T&h?%L~ZPVq5MZbWyxmio5Wkq@MiI zf0`r_r5mvogy6#C^5zfMx0b8yu30SCSp`%hjmWCD_N1x1rRzAe+}_d)W(H7CNxsL| z$Oxv3v>FY<$F@OE<|1CT^%RTP(zTu~i+COtCeR5g3+l-65_zvg-bUms9eIsJE|AD6 zL|&&Or%U90M5eip8n2UPNYX-*G^~h~ZFouAIBY*b(^A@-+BP^JNVvVoVROMv_oCyi zYf{4#+MPCEp;zJ}&O{qp*`QQ-F&{#YzK&{#JD;P%zeRrk7qVrX`>*ncE89hFkXQWT zKpD98RkX$H-FWh;w&jZ6$jg?f2HPKa=ayQT=)2@eYXNaC(W z26CgZJVwjeXX`wKB19LPLHw5cAMC};>;ggAtw&z)C?=`cXx=aGW{pQh z(H44Vbf%=wB%LSd$TMF6x1G7kBTvQh1jT;l3zI0Ve9itTen1+de8Yao`u|WYWV9Rr z1hisAq}{8Gh#b$W74K~iOHRiJjg4<$2H^x4Qs4x3FoyU}%5UH#2$JsvKYvi$%Ef6HG6R7Gcg7B2tR z;9&IE6v5J_Cn`m)B=cbnb6&u{eLi2B)3)XiFgJmuA$F9dY2q)Vm3>Z2Pke?`3n{c` zIb7xSLNV!40YJi5L&uPs3!ti*E%83ji4e27ZI@|nkyjaFEC7pfB&%grRymsmv%lev z@|ucOyl7WOEU6GIl;c;|^nLDXX-CYBCC(`vr`LC|wqBODtr{u`7{GXRmK+Ps@mmNq zLc!2+&a9RSYM)OC!t(viQpvCZTi8iQDVN%y=_^j-C;I#VM`1e%XViLu!@6GpC)WOD ztpejXkLt(E0|J8~lvKw0m#sBRUwj>;>QeD6lyuuR)^X)9C(j#+GB=rLvRW9 z4#!ScMHsJd=*NbwpkQtFV{ai|{^VTpTX}`z{7mCkNvc9+$zM$9iUL{I0$D!Pkfp!g zo)G(#M>GXl`q9Qe$8T06l=uxJ@fST3ePtxP86yFHn08-XwqNk=YA_w4Va^n~6QhCY z(-gfLZt#;bx7xDW^I~VTNq%%Q1Vo4(H5A1B%PI>b!FzPAh`-?~gZOIeZ9ld(0v0A& z_Kr6i4iJZG4%?B<4DU1QYuBLV2nk+Ha3E7NrE$WT=ViJ1!=0C7ojKf@zofsQ7A^0% z6Bl@6*SE96R_O(|L$*1uKI^F1STTN%fhFW-AesG&3Y?X9l$G~vxs0}P?Rut0U0K0M zTUf(ad!LuZhta!^=cM_HT%Mn`r2i^;W7!@BX8`RSYA$P$nDS?E_KBa(KQbu5eYs7e zglUQ(U*bFk&%_lCG&~4rBHZWtP`M5N9^bg$x^utB&oSW-pDYf&4UE4)@u#9QC=a?& zQJ?^zRh3JvWW&@^aqt&`=z{$o_6i0NqGoPl4Db*Fq3mteK)_Z5SKxV$%u`!=E}vrU z%gJwA)5*DDJr-+@hkj;8tGIngDs;FFp%v-6^7$B8Ty#;@1*-TCp_Cm$Jaij@=Qz^GS1KBGr)7BZWf z_zXGI)-u*TWi1Cko0yi-cSOEvz2+Q=QkTvax=3+tWrrjI=N)T=ZQMO)@D;rqz;*se z7h}VW7ua~0QZVracH>4Jc?pqXFDEOvsgR`P)I}$2x_$gZ5%ldsm^FPN8p~@%2zUuU zRJBxB^;v?Z5S8=>;zWN+7&6ugU|0^I;Wp%l4$C$R`E93t?2t@lC}_gEQ(8eZ6fk2e zWG`aC#~h8R(97@Si#GZEI*Z!yVW?D|SS#5q)l9rc5c+*KLcc4qECbgI^{&3Od3|qq z9<{qy+SPy5r6KXtwDqd&rHUQSmOYqX3{2!a+z>2-9&$x(nP5JEx|ZDo0QFo%(HUk{ z`Q*kRqN33N=DDK2R_yP$J zJcT1aQ9a6_SSWjs>hi)deT$z1GkpAt+68{=MX|GHeHd`sH<|VYMlo+2f{XkR$Hhna z^~^bq1*JEttssa()HgEUUsPWxt#r;0`66xo`Uch3wFFHfu##FUB!+b2^8|KBo+eAc z+Mqg69UD5*AI6*3PK78; zfg+EqSdAzgIvqrz_G;&p51|Cm4M)JBx;3pA9N|ulBiuodfo25%;2;XmCH~-#4zNeF z;g?`ent8^Z)#*El@o%N$&#CirI%tC5dR1Z29|kZk9sNSCxg`-OJ&fVlH^tUR(RSvn z)dPn`jU$W8s4wFrGKFd+m$!cM5v7sM$2m`Kt3Y&hBXRzt* zoCkO+w9|@K+sR=)n;7IVt&K`R59a2Zpt0G(E3S)8{(!=izF5_4799+@4hl}0ybmDQ z0%e9nL7g^&ZokV2XJf(7cvLv6{+2!2;9sh^zvz`J43mLyPD(3}#w%tIs302L$W#Q^ zbJhhnLb3_2=UAVxQ69!nJLveP&}N&c6E~j)zRBNGbM$K(FMkzNeBk96Pv_i1* zt??CfK)Nj*2^6iqE_U%nI80k9-Lj3>ZB5(nVB0UR1P6clNf6}C5I6&yp=$hCH^pPJM=JjTo`}fe1nRLCZJG z5YiBPaEEerqcyI5G*4zFyt){0)3@YZ@GI)Ph&uBwqRNzYJG1nF;OmD-O3~W@C}#LUxzasK5rBzlZ4+SE zvKyqfa1vi;ZcY$KYX2{w`md^{>AU+@AO6LlgWqp%ZgjPu&M z$z!rYa8aKZLLo&{n|BVL`8YA37l$bey_GB#owTubqV=D$)x%euktThvp z_jx;A?2x)$je%^jcN%c_;YsYB2He>^Nojnvt_xurki`YhXqW0#VtjhTds%Fm+0#^L zoh1p)^rVMv+8p0W2gGwyc*hPiws;4Eb@(NOOuX72y+1a;5NFqLnV`=_fuWaW&Efxte_k@2} z2F$46#OCxKS%-Pe**vi&bssUWSx<+V)96sB=tBpxD-Z!%AHt3yrM^kt_;@K0EBgua z%*y}0to(Z@kve%9T{R8q3(siyj$n9S#5x1=ZLE%xu0&<7bqbIS6lD< zTlRav>UOKO{UD+z)lhY~XeHwU>0b!moQyvw`84lZxJ6?Uc}ZY{YaW`%Ny2?L8L0t~ zTyymXNUt{Z?`G_GvSZ9;YlO6}ioSQsqKU`#_-lXQ7>$6zCftVcp&R7*;!4QoJfeD3 zF2?xiPBP*geKnMQ8oWT0nFak+t>aaVX(~(T4S#gGYMA2Ly@qgH!}`#8F@T<3m9H5G z3VUU)ysOn*g&|5diM&Q?u09UhI)b}!uUhwmQU{cczn+f%{XeEkC-v_|K0X_*DB;R3RA3VVhY}qd=J_q9 z$|#juCCT|w@?V|lGa)?S>gaMAbRqOTBqNB7AU-{psVYj2U@q1b9L+4Xi(xlV3HC(M zi^$LkVrN{t*PdVqCwGvTC7wiv*nP@Pi&?=hweb~M9xE?B7)1T=a6JIyyH%=??HBKE--2e%x@9H}N z6i~_{x%Kcb*OIMq8tUXOc@w0raT;pnedO&|>J9bsYXF1mA8LY zZ>XL3lQ*F_HBLkQJV)LH$#0y78oK(PrQT3S?=NYOsyEcq2O!eFv~e1$=>vIsq;VSR z>3KXo*f2exyA=^IF?&@XYE67z ziJc^FRQijFDy6cR@F^|DM43`dOkA-lS8|Tmx`<=62I6R~cX+neHat`780Kls!oEtM zQ0S52wzJbz(T<^t7Q9C;7GFHI3L40ZQbA*Vek}bs^aWoPJl81Mkf9HUt6ovGi@7J7 zK!-zYYNalyR^Kg}UvIB}eIPF>i1eF$Veo7-R)wwmI(jVX^bZ=)(YORmzA%K5`pfIs zPR~ONbtpn;nm;G6ki$V|Ro!SC=7NlVE+3GlBCIuXMvPG&wEz<;PNY01BoBr>bR_!9 z6)~&5tIOK1*J`pJ4ipumj(mp=i{%$oZ`8M+l?JfoQ!v{kiQTk-pgYVS=iqWee`W7) zGo#ZA$a`r>I>Djps1uk^h>-W!o6{Y(rRV`zkjVv__{A=cx{{yg53v-UV0c-^I@@(lP~&WoP+6$HIePL-t}2=Z|tVd%7%B9Qi^f? zYB6q@$6yH!@5^{wocu?s&Bav1IVpNY>|!`(7+>Zt1xelYRqi8`U(E{5@khr8No#~A2dnB@5$M96oww*Esn?ggCU|B;^Me<~WzE3$vDOn6de0n9nu#%58syls1B{h~( zfoxl-h0=MiYpu|u8mNueKE^X^nu>W&x89=o5#iOHkYZe4oki_6L*x_t6Jyf`<(ZK$ z)twk%wHblV@~pQqJ|mf*$6Lrt9jD5Xc#>vFCpBLylb9}B#%TCAetmF^dU)g&3g|IK z2={hCA6nM|ut5LUmzR$@vb-VkbB6q!DL+HyXPEp9m!GrfGonuF&bB(VDgFzoCsPPP zkYr9_el@O2dVA*Kgk{rT^Nui%(U$ zR7#)Q{o4S6zv+Gwe+3M!w=s~oUVAYIzQ=PTdTB@ByBzxdY21(E-{AXnB3Hq$)4yNE zzy3FtU#ZLg70yTe5ZTh@mCz4>;1BXVQor9sih@cEe{9qto%3p&3Vnjjur47A=B1g-N;_0;s2Y?tWO6#&W?>t4sH*J~Jxf2^yz@zr}?T+brkW>U27hF8FKjg*`+SUtv$bEjw{ZX0?ig_T?Isuec zQSV~ua2&f>U}_&)YwF6z)7Gru82{Y;${hm2B*Py0jqJxkl3?RSrF)IoK|r6}37K-q z={g9oE!u0&ZKuREN?5PinO%F;0#f9u=LBB1tpVbu3FB#cRox@!iovAYT%q@E>343y zl}a>iNw0uO2HMu76XObsS}F{3Y^{L8?G=+Ray5rT%G*kH>m5!-lg|m=QTL$hw$RO- zysoFuN#Um>vA)ca=9+w8=n&f?x!6?ufcY@jHzx6cx+`hyjjqtqx`(>5f}e?yxCQ#b z6Nz*9QZU=w2-UXP74a&JSLEv+rqAA1**AS@Dq62>1PFjDFokG(Cl^l>9;2iNFk1(jE8Ywa8uho6VmyP* zwAJBVOGU5U8~ zf^HLYD~6EIYVF^NwLfTGU@RP?z3i$0gYMbMYh)uGLa$!3#mL;gmYqu&c&05K!`^I z3nW^=vEb1l^|sS+6HDRw=2hsQ81?^$^^Cr1KqPU5Ir%6}g!Q`}jZhe(&K(Iw(G95< z-vxc>U=UoNxoHjWVQwI>b93l_RL{*$xWv*l;-4z_8@@x#4DL4%k-@|Vl!brG)zGfC zhMr2WiB2Z=nX&r9IzEhB6u6}Mi2?8&>?k#XVhpm4bBZk7H@Oe1_2HxG#xtQTk^5Qd zgUP(@9o>xM-td~7^7<>qwZ$R0QfnF?6F!Vm$H(-B>c#?hp_0s?0-1m+QgDn8gX2W(A>)_hNT?3$OlD{3rx|W+G|8Hi2q2q=LTYn zbK}>8AfzUErJe1T?%9S)lT`cGBmTsTARG2TOc;Qe(g4KAT5%#`)PD%HuD161i{3+u zpu-FlZw&#yz~6EwLFDBNvNbxG^u* zs(knGonG=yOUqXw^^K-Jf6G1$P_K4X!(wqb)YtgYEQpy%j&6jdrH&S_wapve4O{J4 zUhNblM}fzmpr{d+do;zT(L#qUmT{n#!=G|@!rbc2hdb5*Z>u98j#Z~eqKe^nbqH^) zqgdj=5(AynB~CbF9n&Rlw!|%#IN^(Rz!wvVPWWO^RYRJ;nqfnW0q%BeGMBtIbe?wi z&0K(d-)9K_+MtpF?eND2Ft*5>ZVJ7P7nSDf($&FHc>Qa2;DZ?*jO>h{Y_eVar5_+q z5M?QF32x1eze#_S9aZP?|A78o{8##y+AY8%pS3~DswnXB=;0Fxm8h-9I$!Z8-r|DW z0PEtjp>74Dzyl$LDP&LS2{sH;z82JS;$*^wD;0(WFaUxL1o8T|1 zf`O44c?5Zp8G{H0MP>{p7#x{l5I~bjD%RciLp6$_|6mlmDc0SnlkS(K9*T9B>%@B` z@h1XOgx8f+tUF7m-Y2Od#z<-pbj|j+Ve8Y#74ckvq8@svqToh{j1^*gGmx~!nJzl0 z{A6%o0t_8Jt$ZopvKyqwjkU1mF6AvkWC&~iUB(}?6RHs+G8{dxIywajCrvK|u{P>& zly=7QvXPpt^>ccO3{h=)28cq*(c3r_eXv44TL+Y>2-lFCt~La|f4*9XQHzyn#9*NFuYaHSwjSq|r*?)tLa*GZ9i4;vULR zU}!!t@=SrqXUg^2Hx$VQVv8kKVDg#BC=iR}0iGxP&;);LlWBU*$TUE|Vmz+CO|>W@*?xKVfBE z#(XOSj>P{+$A3xU#q1x(*frXdPH79>MNX++B_*kBF91S%^3qcPXwtW2`RwCXm@@HB zMRSOzDdIi88vuer)DQUl3Ft$&gEumm_0q_+`^L#q#YBDV{c)a@ zZ`tkcu|IC)cGcVd5GyMHC!_wRw7pU7>gUT&iY+KC7h?&YfZUr$j9_PByi7p4{0HttG| zLt6+qyjwUCZsPQA;XJsB(wC4Eyrmx@M|cb7Te0B@!L!(?Z=-QE z(gVE~U{M&Z;F;wtq zT(7V3|DqM$JJhW?m-=_4-~k9s9!CccoK+ozhe#k^|5F_AWT72{TEMQUF_&iM>lcF4Ty_ISSJ zfO*?VJwfE3CT~I1`4H-^GBtdp%jF_R-v7Pe8F+Z!R7cl1KGElbm7i0$bLlT#)~0G4+SkkF-P?E` z_a9gN*5LC(&XDhjy1n%PpI}LpysijDLu6WHxeJ9rM6~IzvQM^1?#Jw#*~qP$&}ULB z(haGC6$yb+wpMJWO<16j)H|tuL&!rC;(ADYI{03$O>*;^+N^hf3 zPFzr7P|-{8{CuvWYh3E%(#TRAF)@Sm+-MNttwi5yt26NeJIe&?GaB~FNvVxA2Cyh9 zW2mo9NZ}x6CJjv&GkZz0C*gD&jWux9owBpHGuRlAmyHd52d8?nKLIoJYL5)0$KKpV z{Un(dhSL+hCEpM7V^?rF(U?SrYQl{9t#?G>t2`_EdF1$Y>(cUy#dd3CVe&&hNHV5| z7pZRv5b*#_e%~FCxC?DWWHB5ZYLu+hl#h z?q+>5K}VRNT}#V<>q63@^o8KfjUzw~nV+uUYVPUPScmRDF5O!ShaG=pdPL&G7{OE< zN}3s^xJ$qnqFz5&uc?7(5OG==G~E+__a4apI^Fg^(6jx>*1^WPz3>(kyHMfjhlK?t zu&7L1FvT=|x+03kCX}mb);1O9r(KCTsQ2j8@xOql>I&@0cC#$wS8#ck4n9u4CY`TU z@_is{C1oDr2Rf-ul6qX%mg~glB+gqjM!X=5AI=2Mn`B zXWwy-c@zsEy2OD|C9McSjDC@f_gBaAFjRhVvp;%!bMDiw(t}vpDgASBrdOGegG7zt zxDd+87_EDV-_B~Ia#Q%E3ZQCL8@|_kt|P+hkm^QCb=#?KJJoH^rLq>OEJtjyzZKJwetc(EinhVUX)uA{tOHWDfAN{_nH?Pw<&oc94!$%csEB8p) zRxb8O;B=Nx(yyldI$gicwqNJ#*9Y`#T^-+0G0L`&9Vypp9Vrd5BcFC2`!@3=N_`FY zlBA{GnAgkob@oNM&RQI3spUuF6pTr-U>~Ap2Y#fHd&cP0uS#kL8i-yhaTMGuwHl1K zLx|Jx!BIGv?iJe*oz{|kCiD{I!UD0$>u4p{)g9t+r`#5Kk<<5VnQOE3jr%W+BOQ}v zD+k4eO!xe`{MgGEtR2)fE6dJptcdYK`E(kR!tGTqf9YGs3MIA7vDd#tiJ1)mQe#jQ zF|!xbY zr;ln3b`B7uUK5&_=~@;-))O+Cn80)hS^W@5!_`7}GD$kkL(6WOO+ROyI6@yJy{Au^O_KDqO4{ihC6GiMp_S8-xACz; zlk^aQFG_#4ZK~eMQ=OgsEmoF-gb+u%WJ`-L6F8IQZ0Qer+tU8%HO{VvE5WY5NbTy5 zbO8Ht_xI8N*83YB(cnzK^_Rqem7u@{@>&@kDC!pBW9n!_6n0PeSf`wF9i2gJVsRj# ziKDf)KoK!e1X8HXxJ9e-Ei>O6o|@}Q{L)!;w$ksBZ>VK)1xujm5=K7*e7vR;cYTw@ zbSRKM+%`Q}j2kzTh; z5=R=+Kyz(AMVh(aDyuLX>sa}5{6Zqjt@*K|nJCtz2(Ein*xj5K;eq1S5jDiQ{=I0Af3%U#G9`8F?E z+CQ7Ju(9lN!wu2m3YvK*t$gf;za)Y;;t~bo=iwhyBj>E`@45LGI zZb=OA7qywsy*}ZYS08=zoC;-jZkL#gY>5wms&fX=cG*8lGyaU^NQO~ZEvKFlB_@M? zS;{`FV`X@Z^QBnXZccAo?ke2__+2a2Vu@zci4VY-+Kpcf3?0TN3OBMGm6X`+)P`~V z%VivBRdcE~j1Z(5AV`--)b#96jos$ z7-ucp{}0k8gm2Z(Luv@(5U6{`{?hs+Q*-Mk(ayecN+5!HKmxpsyFZ;oEh`&s=h=@yymhtgoQ+{<%X}23)JVb}4BCA|IztpS51ZC54V?Jmba$ z|8=fwuXKyNWAGhs-LVIa`W%vY3L5pI`NmU8aD);+;Sr+P57~(l30azCr|ME&wQ7&l zfBq@zr`FeX1$^ndJjFlY$Ejr>m@5rTKMjC?0Iqr6+nS)qb;oL#-k_RNAL2aa=`N!_ zpQku{<7Ay@U6n4ZB zZdXcvbV`r*NHOm(f}tW+hIzb%G8%r%_lDWuyUyiP-`g0(Vf&iaey*ooYvw@k`l!D? zr$~IUm-ufJC%TD=!Kp#yh6{fq*J#=jyY*=JMBkbN;p3iQyzbc8;MsM@E(u*6h~0w1 zP_x%)8W_7_bNG1wCBqU$66rQOPXqJ3a{B5J~5!C z&3xAG;Zjl9>91@{Ub`_dMD(wYqCta)J8{VB-(*H_&b0>CA^7Psw{qXs5E7L?!4leJBk|@%#$jd@IP$DQw zHqRD8nc}e7%Y-?u+IzbE^^>d_#b56sfAZiCVOF&qz-C6P%X&{#b;DgEf6^uLCws7& z@n%Vv@XxP8eB`Qp1V`MHMS5g%J{+B^ME>NeVv#ACtmIE77fYdnj6xoD%cXmjjm z!~3YG9Xw^Lr*@U@mgn)5Emy+eo7(EyyEvElqrEh={}!*M2CB+(cVc`VadshCx&=u?ml25Ivn31}RpoWM_sRX<$9d3@O!rdv;X$%=W7FA@oc! zi5ZAJFBaFlN80dE{0`l34a+-$O9y>)kgWr^4*Ke#pAK?#kgJ3KIvAh>aZEyGc{&)R zgTXp5bRec0$udL-XXxNe9SqgMFdYon!C5*e(7^~DoUMa%bTCo}=juS*D)5C-5a%K+n zWQ+ck^NKBs$>CM3g6>9dnnfQl~?1L#wV6N35gS!vs2#3 z^qn+{V2E#Q0Y%419*pFU1>Nlm=G%_c&~d^-w4Guq6UMc`inLTyQsZABvMv0SI2qv2 z?hArluJv9^4P%uxGPQy0vYss`TgH4qNSv6te|_xVW+jHP58IeSU%9Xgnzeav^DR+# zAG=m=XI-InYWvoarj|s~BAgjMgoT8%>&KB28+JQE)A@YWVKSDy4%2CkD|{kd4N>iJ zs!Hy0Sr6=SQBGALwoaz_iDhb!=QGdDaPND(JAU*_hNhc*?r(|u*z&nQlJYIP`}Dw% ze)*6rvR>ua0YwxNdgj@EcnEjo)<7H9QtbK86+-a;7o>7W7=4En`WV9K_a)_Oh2HVs zTOQr0A4V6Ef$eA1>;9p4Ci3=4`*{clp2@j^xVva?Z3!LJIzq9s`5IFg3Z9{ndYD+U z2&U`!VG@68q@{Pe!VfI&4QT<6<#D;Gr+x%qwE5!G;D;u@kz%Vwv@$}((M8}vt0M4_ zsfqBiEoeN>k;A`GiAf~o@Pj~|k1b@JqV$jclB~)eWYX)1W-~4%P-s`&58zPrJY|0` zyg%RGBZ%J_G(;VokY$jh^%WZa==HglORiU0k?hHr21_Q-3*Bau!UlcqtLYGBC53K+ zey05^yJ6Rhf8}vb=GhsUW&M)>!tVK*!;5=m$7ag&FDB|^!;3GFxd*IRt}ct2utE_U1V)H* zyMhszSyC{<2)7bt!wGGEK^$lN$vpb1*pEWON{ss!*!OW;zF!f{#C-1os0P_7`=F;u zpZKfd?;>-2IxDkR==Kq$jzvjQheL1p?@aH|_CbZ_aXZ+kAiWy8r50rm_@*p(EBl~D zQUojR3mMVau(3f0(1GF#pu1bgUo7#b26Vk^&wTCP-T+++OdOxrE10<8F4dH&1U+wO zLlwN>MwKl*fCd1F4J-2;2Tr@We<;WyCf|1@UXuOYeSe8$UAO)9UqpTE{k2ibqo&$p zkDbrC(EU8d!4ZN$yZRdSXG*b{`%Hi7+S+mi6NVy4Upuj+c_o|z0COI?0Af0~G2n)p zE~ayNLSF#Wx$?v{s~Od^)uAo%Hnm$M!7UZ0@6B(^5wvf{eTHR}+oen(u zG|%T2MXzfXdITORunwNo7u(Ude3uHn?otrW5~0_XK-hy`*N%PLzozQ)gzD?Z zKZRmtzhd37mS=sr+gkpPj-M^@r@NNd%>U@MJZ^5UYx!oPY0AR{J=gNza^A;3$I?&Y z3*FcEr^Y|O7Tl%#`u<;f-2X^=T#OaX(kunQXV9xdI{r$DKiysOT_Acda)U_`klfk5 z?vfIsY06CmJ$FgJzZ?Jj6^Jdp$U|R|DGzNd|Ajytkxdun3XzL85sdx_iD=}81%(o> zwm98W;_GJ#s1F}Ua{VHn0?~6~d0S%>B2b)0BYCbI2LUgys*Vo53dDd00|Q79ei0eCivB4LmrpTsD^x>r@z(^qduG3 zx-~{_lKzj`n6;o2GzRIg`_!D)6Lb>>Cvo=zmDpbr^VhF{mm zXYr8~a>M#i@NdR+=J#)tFc&$l3<+~}&|7H|=Gp2-eGT~_SsC?$B_U<*?j~WL5=!n} zsMr=!G#Um|QKp2VQU9vUle#Y`G)AdIi$J=A@EY~MAxD}nQT#{p?g+8Z$j9sBXe@Hy zNf~iS0M%Fszffvx+O4B42i>CRCK%#7Il%kV-g)3 z_6ve;FpB1#se3X~dXg^1%B4O>@Xyn~&&P8ZxZcipuVN`^dHBLg>urom2_~BI@f|!H z^G@K23B=$bMJC1I-{<-HbNNxL%EW7g7K68Q8!OZm5Yw+id(DNlx)oT3VrcdT`fF>e z+^ey+>OcAcV(>h8kA9FY2LE;?V({K=J1UWb$H=O?8hy@&xA=awb+8)$FQ@*}L1Xz= z@|`k=8LLDJeqHEFaOq2AeFa>5&7*Iaqt_t_|21Y7ExdF=_`iH|LHIv@;S{TE8q1I6 zP(#pD5ZK{@3&8|Udqzfi^z+aJ!IjZ zWKdDHlCw%_889hLB3nozqxd~C7tXhiCB zH3NU0^uHB8B$(2&R(=2b6C;(enE<#ze_SQ!3MI(Q6=8D+K8cus=xPf&B@o5T&#{wB z_W7bW=U2qs8@#c+WnPTU`bML5yIvGW{Lzu1T!n_DZ|J^^5Gz+(tr=>@8oQvZYyT4pI-`Y_ z4uMbM8|~MC!Jdd7EBKS@>nEN_wH|rk(`rA=Nac9@G}{0Et)FiD*?^k42c<&%-Ss}- z|8~dUX}*_fhihE68;Us9h;X$TJLNnbtVbm*%>0XFYlGrzkm*99C0-LJ>~d#B{j zS6Jh9a(vnx7_Y;DnS`wr=s$li`#~Q;)cjxhEdhO}v>)`9&#OgL1Pso&56{!_7fJl- z-iKqK>kZ7LD4-p%S9@WUjJ`oNrIMiAdIrM&4fkQ`|Hu9l#0mg#jTB(vs{enju9}d2{Z3(6cBM zTpSAWG4+Lvyi4v0&X>=5YUkX?kJQ`aYjf_rQ@%a#@AAP#3sax7D;}4n8$Rocp}T9d zW`=4O)_NA*b(e=%yG!>hyxTKxVep=sc?%x&j0x4wyDPN7bJwC8&ll${oIC%%IW_l^ zqbONVaK7|=)`EF+7^EBZpy)V{iu23~dgeWFPw*P&!*|ZB4c07raMprFbMKvZr&C15 zhUUt|(H;g_CwuM-1?N4GEUVsh)9p{)vvBUBnwoiYgPu_BoV({qXLK1J=PbNaKc`Q9 zvaZ^D?q10Bh8EV&xoe)&jQj6dv_P*O)r#5&7tZzQjF(8ZAR{tw+}-0m_sv;A1IHA3 z=JMdVt7g%CG+Af#%;&oc=GCNzXijhu>u;7Uo8%Cw7lt&rWZu00%ii0-S9Mis0ShHU+ER-qA@@QeH_0{k20}%R78M=T%*bCmTF2-x ziViwaQ9C1!QPJr*_?nKWRZ*i-r#g&pR2&%x_5VC;t$psf_wJhn-~Y!u@9!QhE9X3G zt-bf!Yk#f1&$->O5jiBonRHucci5Hc>gk1BwnGHYP#2&A+EXpr)GJ!rv$+=K&j#zZ zhuKuF2F{l@9Vj(iIkkN|OwzfFRS20r)+c!Ogzab-o!K1j!-OeYSc8h+(bkJRXT^NG zJ5Xh)_g*BQLkpmeOsc(eduJ-?GO`W6yQ8cTI z6>%mjAZjk%)+H7XJG+rFz^K99ZJjy#A>FP`^CE`M^@JI7xOS+@rRsu?wsfwgr@JN9 z+uPF{tcItBZQFCm{Pxb?Y|eZ-l?(;13m^lQmTWqe%CvN$mGKWGjT*&2mceZ)Bn&Hp z)8!&Zqja@(?+LrIQL8|9+S_s{>}xzgUVsQOHA&-PCAM_SIvI+;{&XHT+|h1nDC z?nNKws@eoX=#;c54Qr?SvK^*`*}a4JVYZ_!*|Xb8rgo*^DqD~-$DiHPwXG-J`9P{S zCKEkFp4&UnJmPYi&6ad$7mU-j4b36jnWUFkJqbWFZCJ@1wspeab9Hb(c4x>s-Bg^b zuM3*tyRKX{|or2T$x~7l|&m56+toTUulQ zK<9`g(C|8u9;}F(P0&k{DfD1FtY_-$?#5qKxT`I_qqnm=8LaB*Mz533hPyjb$Wd>& zNtrfw-(xJ$*_+BqhnVZ_ONCIny)B)ki=oA!HMV47(V!{STWfA&&(ZE5NY$|PnnDMw zhMtn@&-J#!Iw|xjeXvSlo0f*!o5Is=sa_NVu3`RH7j*WtuV~1wEA_(Vpf%aj)syT)HyNyprGeJi(}#@rbfZZpQ#p=B+PlNmx}B3s zI&ocSB%%w>-+?YW*^mLW4d!&`wcg+J1_+@ zg6zgnOl{Ddf>S12k|;EXQ=Q77ZOhCBxnm!PzQ6`av?v>Nq1wq<2a2h}<`s9fY`$;9 z%8l#Sy=3*KmZlZWYl9Hiwe!2f`P;+!o5T4Vf@bOA(b&;*qWf72v%2vaO%bh%ZPmOx zOmy|3hu)S7@2{_`Tl~_6)1mMF?QN*hBs&>2b=09u&~&o&QZmfXCKgU-y8LtL{A74T zegFIi`lkoCmt50>dsl3_Yu#OImWGWhnpcFIR;*ebd$f8*A^?_o2Ejj zqY2C)^ZU?S(7!r*(n$^kGW`hW_br_sOb<42W`Y|GR@tbLbKsMCO-Sp4udeRK-dy@d z?YnYmo4ul6XiwEH%b$YN#5JokJ?$MEF&J!5_v}uflG{6|(I&`=L~lxb9Q{$QrM)eiYv_ZMEKB6j zjV%o4hc_>Yr=mkl(3Q$zUL(Uz(AAd7pk`u^q&5>`|62KXA^a87aaM>um|pA>!J3Uy z57+Z@y)gRtB)Y#M?+JI^6ecpANmR?iQ23|ACb_&hc5c9+-OT&qR5(0j`!H>R-Xt?6 zLrGsI(pML*Vz*T^s?<#n?%B$zbNTpdHCEXC#D#;e@hG6++sCTX2I3v6J7+4>?62-rLe&2HVo%U_F z!`l5}Zcpa+`TegdcDEMsSaUkewPLE^T|`ErY{BuxAEblVOz zP3mO#B9nAzjl9pC)~&6S3l_?ANV$<8^m94W?XuO~mrlc3QP0JBfDn2&%fmHht|(Dy zV71F$+?VQ0B@@!>>d-zh?eE~QR*<^5l`AT2pq7{RSU!19eJpYQS-TARDa|yTmMxYX zi>8K>RoZ%qR!N}13~s&3@zC-TWmx-@7)MKcu3r?FJaZL+F)vlzoR(rjgLy8RQcNsd zFh9GXqdV1W;Es7(Uj3E0%GT#E$km@a#xecCS3`u8xD5)ibB0*!fnz? zqy3^PF+>Cu`41%VH~!@clOYWblV~%v2xlUkilfaVih!K7VW&E$uyBT|M2g2U=WIj#a4LW1fR9xdqe7`~%nI!)2(VESotCm9O$d zVqLbWXLqW1FEoTJ>3g(FdL>0ZQC%gb8?9| zk1PPQ!qJ6FfM>Zp^kA9Pwg+7fXa6m1JGU>I9z>Iv=ANE(uzJ&`jhmK+cSN(3E>!h& z_jo=gk`aO%83Cmh7h-0f!;%QoWIRtuCQ#SO6#OEIab;3Ns%6cJ_2G5bg>(CK>W(QA zGch-Bsm*t9*sx;Led==avlz74!P2Y=IDC-EAvBh5p%6T1*|KnP{lc&TxnbS4L>)Ns zXeEfYidG6;Q_Ls?x3woz8Ov~K&Bbahkw|Py?ZDJyO)9qmiLU8wgYnz2D&E7nkWGfP zDJBx|oA8Ek5vMAX@^3)wIsr`D2A>vFw&IIE)_(Wz*iNp01I zSmkxJVG#;{S^z)l%aXBASHZQrqI%D}1Nv#1`Ewzo^QCY{Tc(bcZVi|{c?x#7`EYtq zUASW9#!bzbpJLh(&9`+0fljUD2|Cb@Jz2&MY+cj*(YRS7iuopu5H8 zVwrS}ejVmyS%%9(ncYn0IqHlVh=5{_ev1LdKQ}Qnx6Qlykxa5ne^z&QI1Zn~ya_XZOwtxvh)pNVR+TR&b$Q zQgj4TdiP9ff=IT|0%AXuJ(?Kx?CwT{GS;IFKNw(k)?z zrC|_a5yjAnbl$G>Z)!tWAM1@=PY)J<-8%rb7yhrV4lO*J!x9H`m0S{I5*FcY$vd#N zZ0=dvhhS~*eT_fEF4OkCi&}6rXS}J^?9^cj0uOfl0+*j;EPsnzQ zfE*_7vXa9@WeNil`CBlBK@V#^29rzm-p>s5Y?s90TNvUOz0`Twg01xnkh8G47waR0 zV3WZW7*?*hqL%$*VwKMMLqy{GQk*T#=ZcGeSVia%6y2u!5sv00Xu<6ZI1wToe-}E<>`5^$f1Ci6V9h?(MPp-p2ouonOhE!K3w`W<9@6TysRK08@X^@Ds-K9E< zKs#q+urafRol2;E9#g@X8?^Q1dV;#3arGT5?q1&~$y6YjlwfN?PB{kcK=5DPHZbm%&h0ITXlHZTsmX;2%%>1dSDA&FWLr=< z3T9)EKmvD&d@*%`6%23*dx!d;!c++PTzJuf13^BYAU zdU}gxqIOZC+^xx{0T;}51k&~(bxj%@>kgRm2}8Mc zOshDeI0)R!bJSP3YVGP(cgn1*58ZT0Lfa8zN&l}TBnoV5U!q+%>Hb&LtA-o5_oig0 ziTipjojvV2}lCFH7Geh6#=!gz!YH#D<4M9knw?N}UvxgVQO=pX}3sKV|(#{4Cm zFFqmW%!WG=v=)DqpsdZ6u&TciGcPKV)=(Fud)WWN`R|qeBiwTA3Fo@!by#Q5tqYqu z6Xm`gszG9}x-~dg2cWrUhrPN>`FtHB&^dmBRas@ZW#(y9Jb3j^-K2CTu5 zJBhxtECAa3WG=`}mTuUAfgnzt)!Voo%Mc<+jFqaGeJMr)p;UNhz9=p+DHFEUSjH@d z8*_A>y_-^1lHU=i31zExZe6ZFH&;b-+*d*1bcfjvW{vev=xe!kFO8N=%nF(*mbfS- zp6ZT%SE^0+%$Z|uIMoGM!*A=!V$~AdsdnL#I?AYRI@P@^xYzcokTy1o5G#-tnD0=fn{B*rePheIyEd=h)ZDUu-O5cX zHmzH|nb~dI)q~k}h7)br3CZG_?6DxgRu?vE19R}$nuoKNeC5QH~t7m6Qw)~L@x(`Vc_T%O@Io!5*UAPvNjEyPXqh?%919(@_UIBTDqiWccd#U> z#M&8Bm(9xd-ZpHv#x|xkM!>Swv!6pP*7j_#RWotZ7abq`6D#Q6Ju%J6&a6ze1gEez z2xaU{iO;qWr0Q zRy{P78Pe%vjb-7Ta8Bja-8<=+v|Ynd)dK|I9;{-eD>KH8-W{@KhCWcM1t%AF?8&^0ot^X&w=a@um5nY2U4Q!`9a=co&+O=JW7r72 zR0J=s3y?PEiaT(yNtO&8NYIH%3K-hbvJ}F>Aze>!Lp^@*3|&?v`--4AIub;~ktJlA{)RvME?1)z39Q2PCZ?S~c9T?FBMQ>KVD( z?QQL3V0z*$knYLiNCJHXn-DS=7jt9W%?3C%l5FY4IoIga*IGOYH*MYw8!$tXfcP-> z1Z!E%IBDoP&xcCPX4()@EZAvBj2(+?97xI^cw@XGD+$P2fMbx>zngYo%E$a!@>$e3 zkE$huY|nOV3CFX#8BhK{$*Pp!mnqH_;a1!1d?n^yT%+B{b4%QT!$~ta?uIZMC$l>DGg&Iqf^|`YBZoW!=}N$*Yky0gO_r`a7l^JX?+bZ;D>3$NaQG7$ zf-(s}aK)>3u=3l+beMoiY;rw8p>;8Umd#yX1UTeKCC+%#skj4(m96Xt8-i08ZCEbU zGL{nLEs2B72-;$ow5O#ft4FM0Z=Q_Y$Rk^78m<{`UQ)}|StKb{FFh|}DljCvY14(u zKqnnFP5`Wgjhkz5jyfj>*Ciby`Lu*Hhjb)J8=*B=8}5Pg=j^3$U^Ki7ofl8+y0to& znb^wI+RNn_$ckscx`ilZ1emeU#9@neYUeT`%ky5juJ}5{qYh!t8!2%kC2kanx^P2J zHV4x{n>+mNx{qk_iK#t8nmBH_BOf1g572X<%dum<(hM-#CHuO#?TE8DNDc#E7do;& z1jBcCOQewojLBmWEGr0!dB_nf8>FZJk;M$pWigt_b%^DoCE3{Y;00m346x~?_h93m+Yd{ZjsL>*438Wg{VY#PD<$JXL`J| z9b#s2|$53C*qY*v5PlKTK9Bj8K~c!!wdu~YVyj9 z5KBX;g2bZwnk9=DE)B8K6<|W!mqBN{Gu6!vryU4X!az6;hdA0UoRii_fnBu8f+Pb>!oyW)`V=>2R{0JQ%&5UWV+Xv1=|- zJk%#!oC|!1tNYu)hr<{P8do>o-PF>&@y^wEEroaVAgbM4%a;NcMAqeOwVv@g#PM4s zzdYTH=72+kBrdBmG@$MgXXB|xEuZGFF5H~LXzd(NPvoj9DK+-gI&`{*T&nW;%&{)K z8)10cRbnq8U7bbpl$||S7taYv_m7NXveCn(zCN_v$U`c~w!zh%Yj^jw&_NMh#+x)O zn=J)cf#{D>c{H9KZ=n4-vtY0Vbpl-|cSw1}93hXO39AkvMXf=N-npfS1_`yPS`9}* zBUx2okiamHL5Nd^+WdZAY&H%#{GXZ2FOMveu^WqNi0i(l@=25jf8yvXH-E$J*ou_d zIJ3STJ0BW`mDn3vM}E>z@l5yBlF2aQDSM9XkcrZmLK5)r!XyyG)F_#iC2|Yo2h10u zJF^XE@TX!XGG2({cJ%L4(F?vvtqi)8*c<)El=Onn*}I#6Ur3#HqhFX(B4oTE&3Hj$ zN{Yc(!#)EPPL7^YJ%{&GPY-Q(O0}STkzT(?A~S5Td7awo+p>J=MjNYQiOiy!FtfNO z?8cFAS&E~#ay63@67Q8 zW3Um^|6aT%CZmFz)XQEEi;p*+I(4*_o%ii>t{!U|>0kp1K~5UxKoBl*`7YUL4+Bg z%^EOKD|pRN*QMNa!8C|VPRvNsd$1CbF}$U{D=EhYnq(e>CV;7z916orWtj5Go>GBW zN3JW43G*&H^&YHA;dB-%F(iOFqAs&6rzn}6Cec0M&GNU}%;gtzFid+fjYMMJjEd8MCZaO?M-|Ztq6+ zgKdw8JHVJ6=-S(zWYD=gUSh8aki`|I!#FRe zYNrQ0A!dsKyy#Ltg;QqIlD1p^ufZ!(Sk8CyO%)zzt`GO_#a1(7f-lDusgo}zFXYMS z>v8ClXB-z~aoQ|8?RZTG=D2#id3vBXm@8mi!ZTcYzq>Pu$Zx6ANQVURwH&MtDG$11 zYS7bfE%&R=#KPi3Z>Xk;Ysz(0Tw+^+V~<*R%s-1$>0NTp%pG234RVqXp=L6`CG0%| zjS=TzjC+igpl!Qjbb9(Na_CrM#;Y%OBod4$$w@yZZD&WBN?w7W1+RI~B%O3x_-tHr z3*KY11B#Pc!~*!*fAsEgM$th9Z{##ffPb^xZ_@X8S$Q_<6fxX^rkF(#IbVcCLaGxF z-YdjN zh)tG$9{)}y5%1u!bJ{5XMA!zADA(+!T4PVABTOYo# zpn6uJ&*UkDr3Fu|(p+9?hkX9UksGB_7=K~B8IubAXn_`64~M=8$Ir?#B>0|4L2+Vl z*x^Wsyda)8Vhk+IjG8BIOe;}|w?xlXq)^QiDyb2Ji`Hh`o~p*I?(7xamZ}xkiDx%n z_l0>Hqs2rv>*_8Nw?XpOH)VEC9F~G&;HD<*AtW%I< z8*oUx)Fxd{g1rn+A!9PM6V2mByN@2+Uylx2?CeHGeIZ~a1vW$Y4vDaVV>1)mjJ=o? z%xoJMRy7HI88MOIYlN5~%i(M0K)UBh)k?nlBWV@!$tyXQvnHgHO0E?}%ve6zySov} z-HF8YwV%7YqeIRd6JqcE;Oudfrpvz8S)ZuTx2|xO$K4hr!wldcEpuUS)}htmG<Dk#rLy3Vgp2wb8P2J4*ghvQkl;3nEi}-JO^`hwB<~8cee#5kENxG2Qx4 z<&>Apl!1nq0@Dk&8zx)bQ3;{EH^Kw#C|D^BxR)UBZB4 zym0njoSfjy0jERxiHCU3@QBIAAMq_Lo{(QJ(_J9aKVibkxwtf@$evg#;#mSKO>|h+ z-fj|>>uDF6|17BEOB~$WsO!nvPAKvMCw3e*L_}|v~Ff@7Y2BzhEZe2t#fTz zeES1Cg>~U-e!K^6gb6h!UCBoMV%KIlhq9SX6>&23g*+C64dvUh4#E4Gf?}U1mE~(X z+dIJ|8_-zP;nh2YulXWBd23+u{+6Eh_Pz{O3bK)AI_{3%q?CYUn_JxBMMSGrCo`rF=*Gs4S!w^&M{-Ado{%gm7N&eRv;9VX(%YbGAaNHX7-WK#Os>gqe z@ZVzmcN6|wg8!Z$G|aDGye0l$t-G1v569x@GHj;lr;hUHZIM}db5y@~fiVHE{qlPn zc&lhN{0~EEo)@0GhZlCdD@^86JVUaX=Mi4|H~o7n-CWioqk znaJRmc9_?P7EoFgedERAYAn3;@=lHuSpKaGOF9T%x;9V-fiho_;l^ysLgS@y^y!_v zJEA|`DX+le)Z~1={C=-}<_&{3~f-lP}=TzDag;D2O^sR2%pnab$fOu3( zzL{cFqC1HfKj7Hz6HZ!UW}CT`)lCy_fTMFUH4>1WwD;9;ZU-dw+m9$lTQYH-pi3NxnL`XwY9?!1@ph{@aJ`CQwQ-yK3&nvdVX2zoRE2k9`g>VpI01rqiG zDAa|DA#d$F#TeSSx;phuByPaRnpD(LFtUha3V72om0Y3Y7A9ckyNvvDAB5kwT56-2 zY-;E}m43V-nwg*!67o-BLOH2vEd`u*z*dcFD5Kh&A&7vdx09td;>;dPh!x zFCak<&e-{3_)*eC!^63a{OjxWcdv&+G^YG>_Ut?F>g$rv&scO}TkWz{a6bKlm>UWw z%?3B7@HQ9A%IJwij_U8eumT`V&v%_}S}bbvGe%gcCfvz+T~9ZgYpfaL8!qela@+=N zvAD&9D^ybtTm(+1f()HZS_+(@%t_+c$f3OWka>rG6K5TdZ}VkT*&oDEpT#>zQKiSG zOZE)0a=xY8oyAM-IB zf~B)}^mXr~J6M&nt8h!#SXCk#fJ2%x=a&8u)#$$P64kBt6w-CDpKj83nAc@Dpxa4c zsT;FbyQJE3Kcb7#rVfHpkjlp!`LZEG z=%fpYl?ZT-hMWS*H#nUYca$~g)JF|uTe>oiSOp)#&=Eg>vKIS$k$dZ68_}@7ZVci* zJMeu{j2wIs0iPhk1c8w#E{XWj1egmuyq=FI+^vB7h63qYgd6cK<#qPK1I{v;yG61C z7~S2Bow)+!nr=HyJsk%PvOQ^hriPz_MIZ}fdY?+`?$&mm%hA7PM} zmEnGTSzEXHqA@6FU_^LXaQp4^v-~G{`|T*4MmKY9{9u_Fk>fKy{T%w^JU#h|- z!v50KL%{aJo9FU*oFv*GRHNV{ z$$S~Pdr|a!a>e*!u^i6L=zwr%YR@`^mztL@?aZ#`x7-u=wBeZ5YJTej81kAg@HJ(a zn=vK8`Q7eRu|RW2YGof{=588?Kyf0WPZ$o1EUBZPc?0SKdlSmljBi?oaIQ!O@?^$S z1iGc_5ln1CSI(!aWQ$U2tC6MLAfsmjakRV&%u_KjDSo8W6LU3nrfcLQmoP>?qmz!a zGMkfQqZR|m?}&(}W9E!?3O$XT^JdQd8Zmp;!}{nHW$#{@xKYbjlXV+!GS(in!ctZX zKjM>1wozdnzq`e1iQmS;N3o^TL0ip-OZhcM%PTxx0=*jjr8Dcj3;eohCsvn99Hn7+ z6f+vslpB5cIvBpUAk&Vh+r$h_j@)A{`tlwIX=NP1XZEo+p@EWh^}(Y0y7|d~F;Gkx z_!514%Z@(2k+m&_^9r4K>#g&qTW=0@scNJnXzT6Tb+i0?i~gHcvXkUygt|Jj?Ylrb zQvGc^B%_53TZ={U`zNs}xUL?!-g6Nl86{Cnsi{TmGSEYz>F51gki~}3Va?;CPxdgz zYoYRmZj!|SZ=M0=_AzJ}MvR$P0S}URdncmt(YRC)>?#`J%Z0ig=(i9AV?J1&Saw{L zKt~Biez);^G5TE{91oXIU3T|irHN012aAF|I0(nHRORL2Aw}Y-@3N^es8z)7>L9fX zQ5<)CA+hrge2io>?@>K~Y&k9FPv{zz=kf&B1+=S~lJ#4`s+s$oh1Ks_@iAUti!grO zu;Czb~;@UM%m zRry&)rxnS&bc!BVZYvh3SfFBoiUlebs92z4frP_aP80u>8XEKspP#R3%zR4h=jK*a(T3sfvn zu|UNF6$?}>P_aP80u>8XEKspP#R3%zR4h=jK*a(T3sfvnu|UNF6$?}>P_aP80u>8X zEKspP#R3%zR4h=jK*a(T3sfvnu|UNF6$?}>P_e-O78ZE>)ATzJ+p|h{8tpaufYAY? zZ!r26qX&(?%jo-!{{K}t_rn?;mVwqHnl8HEYWG`=p4+B&nBK1Ryxl*=?#~w8UuMrQ zGHPn@W7X{``G>zMkB3X~qu=-;cl`Wn-wyn4o&4Bswyi70pBu#w5#cAbxApY$CrI%d zD)K|0fdYa4qDg=siNp_awrub1>Eh1@2l!p*Bz{3~C)2Bn{l{GM{xbY`IsVIBgnw|o z12n9@tmNlE!b=qI0Dk3+suFyV%5deb#6PoVmf+RZ0tdH%Ts*B*e)y@1KLwILeB|kh z{{We-sxH+Z&QbgZAs3gV-(>iol)*EGe;D|5Px->DRsT)=p_EzEOZ2zSSA3R`()0%m z{|ND_((*6APUTO)zE{jDwSRR&@%>D>s#O2b^@_g^_284QzftkGvcf(3M_Dnr_R}#u z_|WYF2QLTl)z9)}iVu{*M+`qsw%IdE>^JyA0zt5bemJ|-zSS!P4w^xx&nUG|#^Lls zkN=IXR{3F&Dvy5;+@bh>kuS|(^__}ePW#QCR+9hl#fm?d#8W@Z4L?>!KCq7EGZ6RL zcf{~dmeD_OAAum~t>3pR{>d`^ zTku}RPfn+Nb&34ghZO(D3_m{dDaEf7Qrf=9C&9x{t9)%4`KC$m0mIMI{+{|7`8(C$ z2jcV3kdBKhSH?evq~Qm_gW?~HOYGD7&nmxw>3jTl@Py*h4SMhq!=KK6+S7lG{Z!?p zm>&Nc`I+Lc0P*$z%l}RBi^M*&OY+}zM)9u*nNxy?|E~Bagp}6rnBnc>Kc)R&(>axI zD}#?*%!~!W60v`&d@y5TeEBmJf06iSsr=wI6XRpG6XW$uC&mZvP<)j01W)}n-K+Tb z1uyNNn>aDS^%V49zWNJog7YDc-?J|-sh`n)mEQ=&H$H@~R9w1|s?z#jzE|;=GZQ}l zG<*@*eEA!GwaPyz{Zr}qGVnUZ>&oE6uUDMiq_2I}zd`Y@Nd1=DulntZf4PkRj6JOQ zRV-gn>c8WLe~N6L{$uzrRsQlay4`|5AZ@Kt5-<)2jjA1{LkQt`-p8NAwX4zIrSmm7Yqw9lJM+Gpk;H2vq5 zksmhvonX6oTIu|-X+-6JMdIIBzZXxtq@;eT ze=xCpFsAtXnLkhYh7I2U*k}LXhbrG%25&Wd5pZAq3>n^3Mt<><6Hj?KTq-Z z$^4;IzICDEuN3{Ifc{3Jy?Hbvj_!(IrmFgeaqIeUCum7&T zU-3cc^ZECX;aq?E zr~G5TQhaHd^uymMPXF@NPpbr;f?!*j@{Ji@uKx&stNJ%W-sj&L!(|%g>A#z#VuRpg zOy6Ul>ffpU6Xo(}`0u5DLuD3T{b%fA8YT#8-UsYY&|BYX%^5xct)mJJ0Q6%rHpHagDSA| zAPA07zo&d-hO>Y7<$vS`P5)bE@S)m?%hxJ_n;__r@|Bi<)bO_g_od%@qv}6cCjW!= zigOw1TmQB$R{S(QYxcZS|9ZaSkCw^b;LVD^5R$&}d-PVttB}6ezPBkZ#qjjMBg+(j zAJg~XLoZbP5Y>C?KeJr%|6=-{{$qHh;?F?)^7;Sh9g6<}^3!LOj(?+T72nGFzej)l zM#b5G`^rCH_-?>H{|#i~90U^I@%U%ci&g&^^5?7Hrp<~=7}%4))@H@ug7kgmA2)m& z^!wIV)%U1;61dMl2kupz=0Ofi{A!IFf|LU~K1NYV6fZ@kweP0^CZr!Ewvi|k>&+w}he**e_{yX$)#kWcROZ)HY*DBr& zdEfjgWB3cm=9wQ4?^F45Pe!2MOh~ZyAe8=ZsgNIbU-2AWUuN8kS#C`rZX80N4KK-K~ zQ2Eb^f0xdm1`jLF`tjLk%{Sm`!%HZRMmm8mgG1V{eF;D)gf2er5`D@1TRGIWMKUVqoNc$=6 zpIV<#obAu&e@#D8oW~q|{r{-p&n+{4j6bRJZ-l&eeE6y2uf ze`7yayj=N4|EJ=|%jAFPmx?!(!N<-jE@3cFd~oD9if=;pef}4oQ#>L5TiQNa&nupT zxUYSW8-5GQ@2j8s->dxVA@8f-5yLkC_sLiPLFE^h$zRhY1cHG6;maTPBm}<%`SYb; zeQ93aXP+U%ca+gzeVNKXO;RcCAL{~t44*H@+EfhBhigW+p=N}ovucEvs ze*=bp4XDpQGt4-yBlyp!zrIfKa^r8S;dP>=)W524RQZ7Yzo-25ixih**RvDkD!4{& zR$Py{l(x^zt%@^!U;7+0yxjb3-0*Vq_xjsZe>wT(hR={(mzKY25`171{ezR>LzCdc zhSx~`O2@~sN#w^T!K;@}Y@g8Za`tVVM1IKdl*}JW{iFK!Nz$JLub%{8J_$Z(xXy1& z?K^5X<0oNt>HKkYndbkcW&CIP3l%SCzcIrb%g7HdS9uNlwT%Ygghe?x}< zxx`OOU$3#5ygRzw2{|NajW|h|8$PUGy zQpUcchNp@9-mmCT`F+rT<&4tujdm)|`IRsKLvpY%2#&!rSIjCsACl=(`Nuebdg^cB zm5R$U%oBgA9#Fg&;=cIqpy77{X9E)w`)AB>u1|b;>uXhiIr(A3%bj0Z{yLQ}H@|N+ z{36)bm;bQ`RsM&_ozH*9_9?y&^1k_F{Tme5`FUyi2My=?$yfj5hRew6X@9|+RDZet zYuxbfivH5^dHl^Pf10?b{>T1Q@lO!o}AG&@E*l~ zjVHeOr z2lBrCq42Qc^N>GZ`ISz4Jihs5YK72&+Um$s(eTF}xxa^O4{BQVg75`;9 z`C-McWBEM(H)eR9jPIWLl^h%if*(_j=lz=CnCjQ_zoqkw`s0fCqWnJp9{!Tz&tjOw zQ@^8+DqhaNgANjksqo25}40dKU(oY!1;sEf0~|9 z`KP0NK0Nai#mns<3>&_%jQ%mhXO+<(JgNH2$=4fRuKZ1M@GA();hCSSex4ll^)G|t zif55OU;D5ArQ-LL@sG?|#pRfS$Nz_Zqxk1xpDTUuPo7h}oPCE3-&&@91?N@%TV?V$ z_It(4*(bR8Qr2AXb(G)dKVz3DPW?Xnj9jL8x%M+YO>xGzeEJ8bE6(|~uYVplobf+j z{A2h^l`n^9W=yPq%aV`2ddB6`2BC|uHS@pz zpZw<^c;QjOMXUk;bxeS71-@khd@t~|6W|X6zjXrq81Tdd_$lDCC&14GpJup5$??Fh zIiPb;=yOkK`P&^3!yACR{7>`XTYoT{$zc za%TOCnYT91%shDcfy>@vIUrLIFrBlIAO4lf-y%=(&&rwAD`w7SI+wf^xYR$4@~H7O zyYd-7^)vvV_G{I{{du{H^w3U8@Qwe6^6@(ajxVwkb9(6kl<#d~r-R@h`n~e+Hg-pt zucN?&KPY~K16I%E34h7=N#NCn|B1t4AO0!jkKrG7IP#7Bn4RBtF~?(u#vd|0^8Etx zDj(_>c1Ha+&TM+{vICdCMKVtr{MQV*q04_O{f6sbSU(hJ`neeX5kBMvyb;ECW~82n z!Izk(dbAf4PWgxVegfeKSEhrHn{RPTP5Amo@h_0B?K;S9xX zd0OaS9=()X54rwom6Pu!Fv%i&6&MRJ^Ro|fqt8^i;s`wT9s)ix+wzOQ<(h)tQ{bKb zJe7Nvi8;b_&rg8Q13m|Hawq?CCx~>5+est%S}h%!2RU9)>PZ667(U>zB0UXwegJ%r z8sBlp7q3s(u3JmnHRVr0e#@U|c^OZV%O~GdDo=aNK-=sHRsLENcZBV@26(^W%?{9d zK)Y##v$_`zK1T zjQwU{ka}pL%FFjEm}Y5ySIk`Qx8HimcigD*&vp5QJlhrXmyY4`J&Oy_Pd_>W`6r*R z`ak3J7x@wE@g(>LZdSfeIzGz>@w33gTNLl~;IlB;WhTJ+uKbAMP*rfToXx<84VUj? zkmCaEco6dAw`=}%-zT30^&bU3X1IJ;;{x@cg?#Ip^7>~X(I&&?yBrs&zZvpF>&xrU z0UtD6zUy%T`q>{Ih5Yzt)!*aVxwgY-Tq^EoDR%~PiMuaMj{Y+5O4#cjm3ubx8oO8@ zjWOI_*YMT1cRoV-eUK0DQ~lF8w(~0W7q2|?cO3HL_p5v~-is1#cc){xe5a(G{=th% z8aDGcZwBhCOZCflOv=f7`Z4A&3Hjl5mfIol7AwT?}>X+}NP{9=C znZGK;-kSzh{yIrq<@qP^dB9sIz#D;Q46mgSFQiW* z?s3RB{ki5}_i>oAUQGXV3@`Q%_N!Gh^YVQr$8n~3oUZ}jVM}ML<1@;1)&qai@Zx@v zcpCWQhVLknZ@~Ql;EA_uIdbTuVZ0N5w8LM==&94;Be^Y_(ps^@W=m3@dSl<8P5Erfj?=ud~e2ZT?fS0EuQ%a z`>!KRe?;|vnzFp^bn7jhj~DlQ%-3niHGN*?o+(24f2985sSbaIgQ9tjPHLF{8t@%9 zJ>0L6%V*z_(ss&xq#@t`1dAp`V1??DbMeMX!ghWTc(_V&`R)*bQa>+n z@*1$5VET8e+(x&qjpjv#>jmcbJoq2kp!~098oZFsnwe<8CeQrNn}zZFF6Co8ieJPV zf!9xfCxJH^E{!>+fb#o*FP{KE6x085CyRW#e)l-=0h4#jW5>pFo(7&VoZnHB%Tq5i zo)HB5H)=Wm%GexXxod#WZc_Zg^7FK^<8&JG9h+4iQ?i1Kb~pfhi{UPtj*0jY;A;(c z$;a^%z;7)h&-|YOo-o{A8}#{=H~+L_4F-?d_h|n2xP)QH_&kB>G=nc=eDd8W@|OB< z>vlJc1;IM+JcMvj{+axrnr1}iX1-uo^gP7JPY}Ow8~>@q!;A*2ldZFuq0!+ zeO}0?-)ko+Kjg=|EdS0SOY>J&{vhN>dR6|H&Jm_4zXbU|3HgDX%Kw0c;uZA+<>v`A zX2U=FRL+jANV#1*s{!7>M{#-InR<~ghp#98fa05o#V*=C4g3+q7sfFDN&EotM-6vo zb8N(qOdwDHJQ0(Bg%d>noPWN-=4ofa7rs*SSzQ0rGYg%2wc!)#X#ih`@y&PX8Ks`B z!21n9>2R&bD4xx7?E_!^Ud@lM+=qaNhC6p~>L`C4c=ZJMY2d*G`m3G;f3d*Crhz|d_?nYS?g0oeM7NUjlr{@Q*t*roS2Z^4DrP+;TQv&K&T1 z!!ae(D<*$1h8Nqh0o+G{hbAxQ9;gBGMeB$)Gl%`_oU@Rxev{@eS}(@ZpM^p?+~rIV{c|Z7x8D`j0}c{(#E0 z<6bV0ADjYTzwu!TP;dbX&d2aKITUtaf7XEeIag!7X7ciVHu99(**lIgpIagS=wE0) z@1`uTqI}X0`@k2xOZoPbhZp!JvIFyf402mcu2zKbPplqK0q-#U1s?o7@co8k$SAm& z|2c3Dhx7Yya%uUa{)_X@M)0-1PxJqLW6S5ibl#Z*f5!OvT{yYaF6tb3K)nxxZ`uc^ zrkD0O0sh&>e?*k#|Dm1F06%Q_`yDiiooR=82%3b4H6I&da&BDVej)kRgKw?zwU*&y zK6Bt3Fup~O&-{*h4gw!CyvgB3enbB}2EIp)Z^*TuDf%bn&qF@(VJ(+@pN?sj%A+5- zv|z14Hs-S-gnyk-`79suf_(8lUNXdd#`qo)Cj4XTe&%Bz@Yb)Yo)PB{rTOs2KPi74 z@?-y^^75TKJoA*Jai%A}Nx!JN2LGH=d42~^u6X*M{XVAK0J&+WRZhN-N5Qz9+pj8< z?q10E|6Jwe`+0u(0^834&r!&Y{6^)zN}1Tj@|*;oIj6Y2{y%Ad!uB>}F51U`sT{w@ zCs))y3fnRH8^GWHJLUh7v6pN2%y%06=Zrt{dy}I-9RNQ2_p0wzF@0!fjHyK9#!>KP zjIYrxgyMEDQ(tEwxBsH^62Fk|{V|QW+ywQ-{MTHI`o2QtA8`4Dd^GKcoB+$RDoO^yPbketEB-Gyi8GzvWpfKfQ{=`HS|Sfq&LM zSMjEc4b%FM&IOQf3I54kt$c${MN$7mzODG@apQ~jBa8I0T>HSce6H$~?-WvJsa+ap zmW%&GzG<<_zs}{mRNlMZlJ-9z{p}K!m-o1te&qN5^%Be10J;9>s~o?7C|6PWX!j)b zzd-qB7#qvSKc)P@2MxE+x%kWPSua!mIQ1`6{qHSbes5fo`K#il#|o8q%^pwWqW*cn z$CoSqwTbk5@<;ti$PcVid4%W-F6!S0JY#rYmBFR;=bdL!|8d9H2)Y!FD~fI$tUH9d~27=zilG>mWgK^ zhx~Al%G00aLi(;>It_f(@Jk$Sl=iE_X2po%-uegb^vicDDO*}TZ~J2Tl8_(BX#V6o zmKPw;{2hY)=qpsdxPGbsIP-6~d*XaW!l$q$hYoQ`DndK8{ne-P6KZ;+%+!&4X?T${jcG^{%IcYdc);Ao)j+4 zpSS**evm9S?a(=d>`;u!`~!N@ed}E{FC#HL%>H3=XXHmiu&imc?s+DB>1ae zqv>5VQGIyY6Z`d9H();bT9yBFEWP-ApXoG!um3^ilkbNzV;5kTy_A2w%5SDDFDp0g z@-Xm640qWO9{fZ681Tb}|BVBT5yidMtzkdw!Ti&AbSjrS!QvMiTY(J)d9{5_5f8YZ9 zT^awe=-&S}P5RSG2eav){;0p(pPrk!S-V3nPA;^!sUFEm920TT1+Tk?h$KI*( zvzT`5V*aY?^7#4kcJQ`ujyH{vA9|PSm+!z*f7Cv8{?v#=WASsMOm{EjW)G>Hz2@Vy zOWAqLF~~o3NaaJO8M|2SQ!%{Qe~F(5e%R!1bF#22|78B=+=%tH;Y-T*BVM~u|5nO> zQ1eHBkqi3WxV#tmM6KbzVk6$zF$j@De4#h zuZRARsQ#kjWpZumwg z3jd4u*OWU0zS+Z?5Bphy5?|;z`*ApL6{G+Ch{b1Y=Ssyv@ zjTv8YebJr=fsYz4-vy?wQhR#qgZfWGzUfPvkJnI^m)V8-&jKGdT)rD@coc7Tagd?X zI0W@CL8XoUlj@i63Y)y^*P4OX|Fh!7ab?QqV)#{*<%Rr_5I+b!G`6vBj4jN0p;d~cIuBaZ| zyfgoP%X;uX`AyZg%-DmM<;#@@KJ8nIf7Rg@2W7bq0Dr{r-#Wa=f0(bM;2V5g_3WNP zzD|RG?AywJ#OXCVP+!%}Sbu*<@zQx*VL8da1pMJC<^R?c(ocea^n1!5*(Fxr`+$!d zKF#INDC_YM@G--$^x(&1`hD`JfsafeUv&%G!vyKi13qNp_&8K|-jGChMg?Xd)Lu+OZ`Nzd$ zkWc(r<)2E~*u{LFis6qsEarFTfj@5Y>l|*BcAtYu*|gKDpWm;RD?UCj&Kw&b)`Nfc zPn5qZ)-GswmN!j(|Ejor&zcHL%UgCnc?9z3eyZ}rPQPSI^`8K~|KAjUpFO`2{WF$A zzsX1QWz)lYtpPsmjOsrW)9=PNcfO(-e1pdKOvh&wU2c$z;rd+xJdEt>kGHZuk3eqA z&ozDKCw>t>0ldTT;(mbqXJYcts50rIaf9_f3!9})ztnW17hfYju4MA>`LH~V;1AC# zzkKJLs;5w%y^ve`Ta}CEt?&o>3-kLh@P5O0QztLzb@q1eDIN#ksPWyWTm|FYY2elW zrRn(k&ni0S1o%AQp=LGo9o!4?YHm1Rg_!;0&8eZ%ltj8I*qdzcQzK2f1N$QdH)CjrZ-)XvU zp$spTi{>NLp9bIT-zy)#mo8Vl{d@MUnD0Z78#lS>CguqJ^*Hb`!;>X?OUH+^;17e} z$v)U+PEo91oP|NU+HkiVaBMJPutWxNmH&eS;^okOyKFy}gZzl;$5gc7VtEe&A2Zyy z9y|(s)Nof^r-bq+WBTFx1sCzNG5tP#)(gROk(Tf21=8wAOJaDh!>!#?e>3n_lfTA; z=YVGnFRo81e@q@-x?VB;M}ZHR{A`CCmGZ~%bP-N}Jqvu)g<)8mY$UjW^D^>oG%V%l&UO!_wPci>9RNj8ZwxnIMoK-8} zZ&xXwd`BP8E@a$ngnV_i%8ybucCkK^z()-C)z`ilUfh4OeIEioZ1U@!?#K>>?VJ6~ zN$`&v|I17G^W$s$y=dBD#!8IuPt|hB_x>pxr4yTvm3hBoJ>(yHj>@}bnM+>!Kj8Zf zkM_T((7zsn+|V_u_X(#Ea`ADH`9A@^j=9RW?P6o}<$tVnT}ywNu?qR0r}E7%9hHyb zSxjdM_(qLSes_SprRjLr=d8~hj4R>HZwN~Zhe$1?}oLhmFEL&spmpa@i_3w?zFK~EF|HCo)V!vzv|FM|-Y8L>3{8Zz(=ON#b zRXa>`=^K^uqx0Khcyao~8-TAh946HZ6=v7~~K4t9%z_c|qRwqo;tMGhDwP54>pJzhGY)xXRmf1LUaztZ7GDSw*! zC%~)Nc^jT`^0EBS1Kwo#vmI_!${)j@*zlag zRev<@QcoIu)84LnWDsz?pyL0)&zYWET)jv6EcAb=f9gA^`d;sJdD_)!@MVk-F0WS^ zy|mY?7sKAhFTa~ZiHJXHS6+KDU(J+%Nb^4>=8d`MVUaGBu7cohmp@z2Q3?;HkeF@bw$t(_(!5lX}+2@HH{K zcwUtQ-;n9S7K~m<&*k?Z@DamVA95K^KRF6~%TMhrH1I+Hs$06Y3hVwhDa(UXp3Gi(>r1`ki*c@Rx zXMnFYTz-#;V61*;AoJ(`TIJ>Uhzy@f{ZjvW$WQyA%184}=%*UuY2c3^R{T64^0M@a z9{~QyhZH~T$|+1Le+2m2zfs&*z7xQ2HT;`S-t;elo-@GD9Z`Ay-jQ6uqw;yid$zZE zaJKP}s@#eylPlBSSdM1!SARnJrSK*~LOe(3od7?`^ggcg^C`qDW~ZYu`Kw(yl}q%W zBz{!oeReua{g%G`E>lcD{cYC0m`{IF<)i-4<8KY%>o7iFI$MEnF?^-vkLBQ>wCi5r z`wg$1f?bc0|L-(k+hh7%dp!aCal;27JT)8uX>*5_>8iCW})+&2wyS@-aG+L z`{rUevZ9yzVL`w0F!(wwpI62B_$T!o1HQ%Zuf_17zrBmDwt_NR-rQ`F5H1I8k`__R6fUhx1MfFneou>OYrX1s`E;I(&&&AZ z%m*NU_zRl;GbtOpr2H}b?XIFQT9Qr54?J;PKj z$9^+@5nlp)x#7`#I93nM!0Qe7#h-IA+~+3;W9j?wqrj^tNdF}8!0^ZpvHYC{KK{ib zJH_x>TjB49`_f+md~^c58Tg3dKKtZ=4^My}1U@tYeiZni;p|7{itR_7oJ9U?Ox~Bj zSue$U(e!)E4?HtL{+fZe8t$$C81B=55O|ZxU+&6hbPniI;L9gS|0M8w!+rYC0uLv^ zXT1#mRR(WB`b&TZhRg4wF>e>p&U28j|C0Kj&;AF2hZEpOnZF6}lg!@)_*vlN);<<7 z@3D*aoz;@pzt~~sU-Y*nz+L|T;P9yYSf}!cQ0%+sN$>|>*7Cyidd1q?KH$p@_tn=S zrf2x`Jo3k5xa$@j8_RPVcxdvGy^Vo*RV&I{oWB@84|tQ|jrQElV<_JUe86zVe&ZMM zWGmW>;lBLs1Kw)5FMo%CyY!=R6MA`3|MAwm{jTQ2*v0xf-I~YwJ9KhI^Eo-b5FO~E zzFBSPzy49{>j`6Lc{xrt;C>14!ABLB-=!l@RR2+Y04IC><6I8%t^Y&iU3OeD9H$Nf zZ!&zj1ET!u;WOs*82CDjZ<*sWO8gY?{f6J@8Sl>ne`r+m@hvAG8&BtK!+hm2#n0J2Kc(fjpPly0mx%+`B;hY(Dj#2eFdI^S;7=Ov>!;E& z{2~g)F8b2};E$U;e{WDO^{0}!4$E^4{Ez%d^YhQf?zP9TKdyNm@@s#r^2Pa?2Yqu= zSWg@N0;eDOaqA0r{<0B#O~&WzzmmY08_sgZFW&Eq$(Me&zA)~|avueM=CtNpeixAn zOZ}j1J2^}FpQwCsJLG(K7Am*Z@PBlMiR(w4fI+JGPb*0ML+;$as$QQR(!ifI{3*;c zFKZvP_W|IK8=e+W@%Z;-Xs@H-3!l_<_7&z2>qoq1e-Zmgo+{CP>NNNVeyaTOIG4sf z3hgW9-vRwUQ~qPl4~xn#AL)o0K*|rf!)H|P5+)wISZ`_I4;e1M_eeah*X;w8X@5r` zf9r2m|BRS!{>k)D08be1TfdzFKHKof{-%fdo6&*(%W(OD|=38J>(zxo#xM% zej4~;!;8~r{tp0u$neXUcI+a41o(c#uZ>~+Q_4Sy{F#`%a~r3I@-sTIel`70FL z8sHs<7t7Os*8|^Tc(0S!{-WTVat?gM#&@UVi@o=K5crtkIS+mm`10SYor~p}kCVVN zhG(5T>M`DqSf2CXd(`-f{gwEfm!m!nkK#noLzPUYA%;iagZ7j+3BI8}Xnu?B#&q@p zA2j?{Dvw>n4*?%G+!s$g9@8JiiA)Fcc{-;5hfcSrAD^)k^%wkJ&P5m3e*@%dfUh-N zes7ezO52CG-(^11)PIrcXGlt}qIx0ULGTS4Uwpr+xc-iT?-Ap>+|)V3{GI}S*zo9= zM@#eToiEVtbI=L*U!wVa!YPKlix)KjUt6X4cRl!4;L|Qu+*j{=fuA$^Vx0MZ82FQh zpN{E|;???~SE zJL2D$WV*9@F#cDo-0vvEE6QiIzVoI_`DVzEnY{dNtzRDN!_x0_O8bZWz${Jw*OcX@ z=|}N#@*M-;mS-s6+l2}LX!(rqZ5Pw-r@=RBd>@SYdExvg|2smnGVq6Isb2ZrTk4)- z`DyoN$PYhT<-bQ+UU7NPJ`?SB0CHQNqjK_lxy5qY-o18bx+fq%?P`_(4rO^wQs1;= z)hm!+lbh%4Q)F-2u?BpPJWuuW_jcuq%2nvUNyEKGf(kf@*%Gxzo4G;;9EOi`K}Wt`~y8M&M^m*m@S6O z@AHx;DsR*dyzzY2=T^wCy+QTM@AvxUz2B>&{KJqxccaQr@SR)l`zN%+Dab#0i^}u& zf8~N5;_El2Q-w*=^4pY8erJ@7rRDVc9pxJ#A2z7`h4xdF-v{~X7plDcj<7%dvgb{X zL%#J6mFMpa%cc1*=r7KI@1ZryH)w41i?}^#w^^KYu2nw%?yy`%{=a%nmx>wWSc0sr9*%72UFkJ2k_f6U)0@IP{w^2_fRGl7Ud z^563FpFY^DN#&tRFUY(0(E$9M;TP&RwDVrbKfYP@FLC;d>SGR`9|GUF@kMb6%Lnn} zz^j{8&xo^&=_7s`cyN#6Pj`4szKWZL_bQ$+Ioiq1^X37sHhj9njZ%MOOn#xmWAe$E zy!?(bd1ClJ;#)NRV)+KJ9s(X3exY`z{AuRze${`W@~oG6yD^@>ROR_Q%yJ?B#q)^x z`&82ZL+;TQmCMHLUO4Wm6!Uoi{IlDXUw*Hd3B}WyVEm)}3CQ2tuJZDG&KDrh{Lbjd zc(q;SKTla+nm+mwE@7jvimbOA!2hW67yAwKvlaN`hRg3i=k>++gUj}-4@3T3r{+g~ zANm62PeJ~nw8~#-y|aDJ*@N{@kIH}D)n8Hjq}>|9SO1D~`7G_1a^N4!D*uJ{o6Ofy z$dC4^eEd9AaX)?ve7EjaK7_#Zit1Ah<$KKFiB4ftmFtGFsS{~72DE()%GGw4Nl{yNYPL%!eeSAf1d2(I1<+75l&?fzb)O`uF?6)4kb zFnWX0c}6b>y#{*z^C{4e^nMEZQl!(1-|L=_bUQ#PzY6r9z;_$yUjo10?tguirt=d} z^8LW*%=l!_R6QC^5mq1ybPucySfim58Q0l!O zlzLwbO1&=vrJhDm>V2Wz*BhMyO1+nYQtyA@ch`CUbx`X47%0p0K~U-&0>!uPYP&#L zUoW%g_Zt2D75e-rDEU8P^fCM%yx0ena(@O&{LMxmwCB6*zQ<^XJ-^THHyOPXl;vFo z%JSZ3&liKTyfvUK?*hA@W%SpVYkB?+l<9v3l;s@(W%&=={a@PsGP_@5_p|MOrrker znaaNpl;z8TvV1#0slV0eefIoCcE8GK11SBj#_s2X((j%JNyt z^a)Vf<9ndA$Jg!o2~gVO%b>K!=k5NZM&AR!#%R!mWO`uGt z#^`g6&NBL&K<)KYP}=L;ptRTKKU7J(SqDn_Ye8whXM@sy)9wEA_^=)Q=53%%Zvd41 zdyMvivRvEj{(exFs~ME#S`W%{tu*`vpe)z(L0PVPyT8Whb3mESRiI4gGNZr#o!}IeibOobsH$lb-msH;=i<9Uj$`(M?uN|5u+afWx3vA z_iqDbx%PvyTmzsi*Dk|*Kv}L%P?jrc_jen;3zX@s0A)H$jV?4g*XR@fspa|>D9iPa zpe)x@K-te-3QGAOpVM-E8qxh#muLJ%T zyMKex*MPG8J$By#%JSa{O1s|<%KR+?W&VElA6mZ0Ko0piGZH9?$3h`75POpzp`?#YSg=Vu|pK-~F;Gc=Y1n>OTWz`mYA1-cC@; z-vf%Z`qgKCq55Bq7gm}69#HaifRb++DAWJ>&sEQNL5Y7El=vq=sprL@IuC*}Uwe)2G@3NJ29)Kx z4V2|t2+DGO;7Kjl!=RMUg0ftlpe)x*?Ebl+Y=1LB$@kNL)q4FADDVIICyM_ADDU5F z_ph@1Eui#+7u)?ePb=U1jlRt2bfd=+fTNyHqqU$+KeYR27@cYKCqGjCr$8z9HBh$y z_kprL`ao%??S{7)-2%$`SZntyKv^G4L0KP*L0KOO!><8leLNSG_3=!*zuag5%5;A9 zL(Rt-qu(`p(&(o_Ssxz)WqtewDC^_tV_F|qfU+Dv{(<#}pwb`O{Q*$g^Yx(Qdo?KY zodZSt>Pqt-`FJrX%fAei{I`ITzn(bwuLC9j<%a*y?<@XgP~v|LO8i}*oPX{Dy#@L1 z0KFBo4wUok-+mAJasMl$KQlT8inCrj=1NOYj?zbClvFA;8zs~4NP?mQoD9c-K z&liHSyw`%Vyw9`yD~+CcT>bP%piKWbDEp1S2W2_mZ}$(`{VjH1YxhsJ`^)YA``=Re z!=NnJyFsb7{`dc)>HG$idVXg2KQ{U`d;SHx|BTW1gVG+4 zJ*MSc2KpYzFR=U1jOz2Zg3`YSK#Nr)I*RAh}1jV&#* zl%!M?B2u;HbP>%Q;nci;DKIcJVz`ff{H&#$BAy#O_C zww;FBug4t^L+#f<)OFh%b=`J%dq>oDdl%}uZR7X`+X!`>I;i7ZYR|Q$?2nscy}MEC z-Go~2bsxobe-&zcY1DOJ40YZAvnk@`sORoz)bSoc^?%6rM6K&i$E{H7YJpl;6V$ru zyS)x-UDZ+Rs_M9$Er~i#I_fz8+Zg_0_uGxA^Y|8OT`!^5Rr$kM*SV;S~$C-rc_oN-^d_Ttz+HTI@;rKS&%=xPw*Ru=OXCyx6y0`#!oKmRcoMAJZKejIN zzuTWs`}u|AZK(bH2vui|^Q-Ix)IJPH?L&XmKD2Ybx${>!f9{%$#8&1t^WBWp=Tcw4 z6W8xc_R#8#L=!d)Vz1ut*H6E>v$z5$w<_=L2mDBA8@|CXAc1%w+ zycD&Lil}v*iCV|+Z)YSrGvBZAa@sFJT~FtuuA}m(>!`HjQ*TB7L)81McTw}7;dnCg z7q*#CIX@6}yx#Z_b#Fj@UiZ?fjKp@v_eaH_y&3UnyoB}FM$P;9%2@YyJIS`PRZ;iB z`KWoHgPPA-sQI6Untz((LvKX>0O~w!NA2qzRGn$4I^$4vMx*KsL)CfIaSxk=8h0mZ z+^wi_P2JuYHSQY6m)HwY<0_!Wl|+pz=Js^dxRWd5_`lfwsBvGT#_d3j+v4^OsBvo@ zziMlv_Vf1FV!!`e7V#$3d0dUEGY55jO>jKc4o6*=xsJP|uFH;i7yTO|*Vp*VQ0KcU z>iR0>_CmOls$E z?8B&ie-LMIp3ZSx3_B8kxhUE{!Q;e9$K_G=ilOSI*-Z;G61C{}HrB-%j{jT`@owb5 zS)a8Yi!%SZsC_seRj&l9UQyd)eyq1MYTxfcwYNd-`z<(~dZ*3JNSwgc`5B3San18l zZ!xO>LOaL#3696wlXLj_g>iqP=CKbo?rYl_HP5D~`|w)S{$K9)nyCG+hT8wij?b|t zXUF)jQJ)ihhN`~`_5NT9>UH#a$9+-r=z{9k-qu5%uj+0u@BG;|-Tv>n7pd&{X+}n3Kk;tlzipQJA!^(V)O?;q&1a;|LG8=&XEPGdGHwE@UmmL8 zAUkn-TtDwWlaZK4zdo3{{!#sFqxxTBi@5#wsnPx|s(rWJ?)*l_YwcUkFLu1pPPY^7 z2s_y3+U~X^>O8kYo#$JezY%qwvr*^yYRA=VIn+E$+Mgz8B<8Z-Z*c|txeaw4uSNBH z3w0f5q4wi6)OGmRq*(WlsD9tt-Og`t{GNT&`4=6}wKGxcn2cJ-Sm%eM)-f2hjz=7K zu?r_=@H>C`JODM{>Zo~KgqrWC6EYH?Fm4m-=lXg0DE-Rg`RR$wT~B8uDsbIw#pU$7 z0d=11qw3VLmpWg;acO&|^Z$*H{(sp+s5;*}{>oOu&CGYgxM(;R+*f-k0MZJ!daC{n8Wc_2tW+dh_&mO4t zpXK=In24v_?T^R)Zbr>_E$Z`>*YR%Z&c>IpFX}wphw9f6)vq0@UpA^=S?qx&@P15p ze0X%^e@5jC9B;I5*;nmc)bVDbjyDN)oX7EJ)-wc)u-{!!$7_jte%x|$4{WHw-KoR1D)?wzUB@+S71Z;!Eb2K~0<|AS?2!?% zZ{MQszjsjmmf}d_XHd`or&0Si%yDm2zowW+{sPpzN}}df%%(a2*YL<6vY%mZ#%;n< zj9Y{nKg;b??L(-3E#2PO`3APG^A|f#+W+OnxZhCqzd+UBf|}oY`#h@tP}Fm15bFFs z#7s#Jm2a3ZO*rF{z{xhzY9_I{uq{#=!@^6j`tegz&>_GosW*F`LuLbmKHL%80rwuMpm{r!){&o7Pb1w$hL&fs`HEJZyJ zW~1ugi5VQfwPfBmJR1F<8kCW^p85B~PSm{$Re$4v$S+0Z2chzV9**bK$-dzmsOQxT z)br|A=QEr?&?oXUQO~zg*qQ!a?IjQK_dcxe>0Z%(EvnuxxiM}hYTTQcL;g+0&bt-Tes-fL0)>)SfcpX<1k z&9MLVjQ-!F=Jg8dexHlF-zPiniMhnBu^jWOje3q;V2j%mJu(vakzbF)aV6?`HVL)9 zPRMt&vs$9&*&OwAUOmTIsP$Jtt^Yjd&q1xfIBNaH9RJfj@_(Yv+kVvkZ$<6*632`1 z3XU@kwa(6{{cnR>Zwu6VGaZ+8e469q-JuZ${n6 z4II~Xoawl%Eouwdf4atg96{~J0n~B6L+!^`sQvid@jAN{wXTJzbxm{pDC%|RLDci3 zJ?i;U(d}j2ewy3=?h@@EqTVO=L9M$1>O9s!&8G_Lyk(;1S=#wCQS&Tipb?T1Q9JI$AoekLq_0s$UVe@9mV4=uZAw)OD4In%@^WaX)@w zSE2GRIDXFYlaBKo_i^0A@tuxuwbwg;x#Q}ND>^RaINkAyjxmozsN)wn{@n4WjyKrV z&M$U6&+!z;PdI+mac{?+9Jh1a((#RsuXLQ{_rFo(|s|*Utge_45s;&Kv6b*^at?K6d=By$>Iye=F4M zN~iV_H%7&`-4k&gR9xlmm~UBB{Svk)YF&jK|8rOL`vui+zuk-Kx6Scd$8R})4YeQh z9Y1HEasF|~!)!ZT&vkk|s%``4Ya;KTGmD}2>#I9szg|T3n~R#)I8?vKP<48^{a&}X za(gM%{qsRP?hCAe+3ag^TiAYiN8~%$JFqeR+O`U-wG3C>8jeNP>2Dvjx7+J%L)3Y$ z=eV@}@|GC?D(ZPO1t-&QFiyn>@oBuh&WRUuIkj%%{#3Za>ZK|K8;515?+BJ)=eB|7{-mqjoK7eJ|s+ z?AOD%i2Air^Q?}VXGK)KGPXEsohO?`{%_Rl$YE6f@0{ObSD@zqD(X4^Jf`*)^_)K& z^**r(4#a<(W+Yyq&TF`ZxXX>vekZE^7F2r%s(t?r@xEsos!m(StFMpunUigQ)ce4@ zuj9VO7N~h$fXd(2B=SwMBJZ27MD4@*sD9<}QR;VV9Q`Yx>XbzF&%n*J@5+vSd>%FK zbkyJ1C+y$X#^19a!9k4w4b{HSzJy1Jr{iOcABjWo5!C&1H)@}6LYKsDVIbe5SJC3u(?e97NrhV1C+rB@11C_YBTm64sGma$ zBmeEXtp6HjBqkCcL$%Mw*?2qZ`e=gs`TR0`058N|SPExgA=LT#;~G9Uz^`x~&PVP0 zG}QaS(e^QWKaM4TFFuKlaWrP)I4q1$;onzhBp$~faSU#>uiz8J&)^8`hYw>*T!@Xa zA6|l^@N|2qLBzZ48q_=|q3-A5_&oMO{oLOf^}K0}&tU`9d9RK-Ul-X@xPbOTI315% z6`vz~k9yzxF6w>qJUba5As&I+?>?y4w@x?>+o0BUy}b;zkCkvRo{f4ReL8AB|JINB z9JSx0?(1#X9+#qCR~I>c9QFRH3zp_OzYTRBTcGMSK&`K?y~O!*9hb7joIi18^gm*^ zqxN+(Hl+R=sORPs)cdc&sQM4vHn^1hji|qOD~~!K8E*gVim0;@Rd+e+=l6N2>vRn2 z{orG$`}0A^_d34WaYM(IQ1kff@|Z_cU%*W zuo&@Rd!KENnnx4VJnA~$QJ3ctaZ6Ntb5wf+$2%^I_H0!9RjBq$9e+?K+H+CwS1KdF z+b6TM&A)Tqks?D_L*#Fgxx`*ud_A|T5uC~kVB0Jko33H!B zU1yJ?u7iHIEAnrnGh5(-LW%KBBF?=GyRsjZP|vCI_%q{6qt5?XxPQLY zd=T}zxE)pZ!!UO(>V3xxc9PpiBFD|_k2=mZZZD7hiA$s2cbxA-9JjF7Ie&%Y zTDF?==Q=KBbE?Jh+g==>_jafn^SBK)k7oAQD)D{W@9gJxiS2z+w0E<2+s0Uu`{(S+ z(SG7Wp8KrxR~&<1+c(aSTC)Bt(QQhw6W(ErOc&sp66UJIp=g_ zOxpct@qUQ>7pVF4M)iLHHNLS;I)9$ypU#ZGhuVwkw;DBWIqEnIP{)~V2e`cqZlnFp zGh&`SQR7}I7Oz)hQLk6SQ1j`9dcC?9b)5RPrv0I4%zrnk|LdsZFG3wZ-%dpB?`S&= zwNG8~YWjC@zLjke<~DL%!zNMhr_M(G{8rfclc!}Q8c_dlRQso><88F>+NE|5re62) zevUr?HU9>v@AFnb?L$fDe=ow{uao~7mH)&pc7BoLr)_7{`pTi+XB{aV@pkOWb9y6c zf5xEpYoOyk_I}iTeuv}RQ1^Kg)ct%VYW~$x_w%WYsB;)q_hE+Z+Uvmw}vf;nrBf|{X+Jiw8;O0%I~*(QODilcs=U4OB^q9oR9js`&rcc z*Qeb+2K72Q9QFD(#PNN$HR^abqv~d%_WN|ydQKIJ_56lf&rZ~NSckM{zV7zhCAtb$*HS`OZIumFeFe)963q zRC?-q7>FAG%gOZA_q>;*_In;GKg&)PpKhb^!)qkJkuk9L~$#I`X zoyU==^VkpXCEpfxy_H0bPoR!>;zW1=FJ%5}j>kT~foh+QIv?Xv=VPejZ~snDz3vRh zndIA}o=dl*##Kcfr?lfUZDHq+{1yFvvHfi~RJ{t0OQ7l&Jr@0UAC0=cu;>Rd0*!=X_Vk_u2=3ig6o%jB%?_ zKv2TU{3_Q@hFe z)s9#EzkAaYo0#XCuj4*{8};0N9W~#@sOQ5%RNZHtpJcc0Nl$&BrTcE~Ctc5|e#gIv z@qgF@sC}u29dsXHN7i2&ub_Xz@y^fFQ{O+%LftPJcJF5qzi%hmPPUT$ZddeMZu{6e zwvc^)XY?CxTiJ_I^ScoB+&dTb+$)ZH-W5eX@6sI~+7bDWQ2pL>yb9Itb;r-!KB#^@ zQ2U$X{N1SjZ5=nUHBkMM_H5L?Y~LQvwGX1^+Z9#+Zq&HesCnOls^84<<+dhjTvgP# zil}jA++G4T?sUh0Z;N_|QR5Dv#(jet_l4WHqsD#g_$~VyYTQexadVu17S(@><6-tL zRKHstH$(Ni&T%b!I;vj+HIEaY#ytN-_5a=RS9Sxc-&^)IOw9{Z^Fr<0vzVHf<6-tL zOwG%2Gfd6PaV>i~rsjpId41w}VQOBEzp@)JH81-brsjpId0}c^n3|X4VfHRe&C78! zOwG%2Eqf-aUmEIo|89-C$58zbJKk$IqWZ12D^U0OLdSFLMEistftvpy)bV$dVZUHJ-;hKSTB3g6h8n^_+VNHP4xtI-c!^ z+Mj8Q(-RXIcmFHtsn3sVp#EJ)rd_~EP{01D@fX?sFGW1d_C~$0ztHh1zD%U~97D}# zH)%n z;H@0LI-bwGPQ4KC50B#<#{ca2RaBh?b~I{S5>>A(s@@s)ZhUVA9+5`*Ke3QUyeUU{k@J@)SaY98O&J*ew&v*UHB`MrbM@7J7v#m;bkoa52<*Qs&ceuFyRC#dW8p(!zs zDyaO1r{n$B!>IXPfy$5PFZJ#s{^ZH@)W4@%Xme24-93_dzwtzj?}w@JsPQFG^F1{- z`W?4_pz_~2-eccG9WNhy;6%I|OQ8Ne*B@gdzZ0jCUx?~|I;wrjr<_oz6|d#Jk4q1N>bYTutm&3Bmd18pDFdFtf&ZdCtfjvG6^0`>f; zhT4~ksPpji$XL&M)NyB_<~aiO?>7dc=FtZ=z6)x6Yt;Blum@JKrBMAcQ2mbbmy+tY z1+|Yaqx$Eej(0oicvql~R||E#DyTZ;P<2j2)!8~c_HP|(|5iA@4fVQpG3tIenHTrj z3Do`^LDgO3{M$H#eq-=u#tn4)J*YZoqUL#WSbFMv$zS4Z;<>252b_Sa*V)#wc|&8| zL$-r$j`uM>6SWU#B1_78>#>1DFL8#+)M|~fv8EXIPI$y(n#KocK_Xnu{OHuu2J3r0& zG0s2i{Qb_~;(TpX{iO5f+EUIJc6_pX9OrLT|AUVA*{_}7>i9!D91pO*MyUB->HNj0 z`4)2ipKekAAS(X_s{dB!UvWMcwQtS4hDSQZbM9KyylSELqna&+s`Fot>!a%L$Df$j zXjHvcsD3R_T>l7pE{=Z>^;~=nS$ft4)bn#Bs?Gr1!G2tanfhLo<8;US z?o3bA<-YzDSz6Wt)aSXgP|u%fxSn}ULe1kzRNaxNd2~aKtA`qQ8qOg;)GqStQTY+b zC6m<&XR1G{ehqw?_(D|O^HA?+%AlSPB^?*C2kwY@>_+w9j+)0tWDB#_qCTHqikjD8 z)bVpsueV)L^Si=vEyqd6MI0Y(%lmoecL=raA5h2p26djcJKk(pI{%X6c{UHbFrNod zuVZ(k&R0FuJWjW}+r)fdM9p`Ay%lx5Yf;CqZ_A?A_hakm|0QaDJ5Y7sMzufb_Wo|a z4t2h3pz3C#>Xx-7Q0qN)d*qL!_V-uhlF7OT_5S8O)OyZBt>?d1asAE5@w87v)$NDs zUlHrjzqn1#$Jy4Ik8QP^h62jUei2Y4@=v#P~YE6I6l!V;zOwZ--WqbQ2YK4YJc9aOHlhh z$MJO3zE4E;AMX64whLo9@6apn#BCK*bS)p zuW~%!cFK<9v_>7L4(k3bg1UcCUQ3?%C~7^wq3++GQ1|cmj(6I1s5)<;=Kq4@bevEB z1C8Q&SfxRjKz**Ck zM)j}h{KYoud`ZW}?7n*Oer5w|9$Bb;En>f}o1Xf;4$q+4KfEmZw?`f47S!=?wAZ4} zdo9P+Q0KiOYJ8tMQNJZ>znY--?=sZ+J_q%>a~7&@8tVQ#Qaj>bQ1#ZK<~ajX*GsK9 zk5y3TuLA14or5}WB^;ls8Ts|7^SuVk`uMG}OADa6Ak(j{#Vl=UW%s z8f$4?VQvG|xVotNm9Zx6rNZ1atj_o&S>Zm+qJ0l)9$Qf3*4x#{?|9C9)ec8pzm08K z)W17912yhsjd&e7fm-h$sQvi~)n0(wr#+~B`poeMb~S3;>!@)rp~lT~`*Wyq(;bhp zy;0|-GwM9IcH9K@94~=-UHG+nJmsE(S)MX33okDAB1 zj!(DgsC_(oY4rci{)npg4ZcjhUCwVs)!T@w_krW3_EFUN>5h6|(jGOB2B_Do+NgC@ za(wWTIA5P)I_>Mj-1kuHdjSix504>rGW*#Fk^Z^ekk8?AJK|-W*Vb-t?)Nqc;_I)nuzL<*IzwxO1X)x+J@p;vF4!(qXu1&y>{MV1Z)w+U76eN?@-@HqV^pyo3w%pHnae~$BQoxjcbI;i+$WPamVs--oDudfV;GoS%o9*R+T;$Dxkf8&$VGs$LsZy<1TAnxg7m z?e;p(S4Pz<7jfnvm1BQ?MeWZIsQvi{wLhPuow1vmQy2R6 zz|KD};wiYCI_1udcyIZr`w8l}8|_->Uw6FNE_D7`$CK=n&Ohe(5!<6&)V~{5zqS3b zY*$93x1e%MqR#)ib0WVC_4CVQ`!KT4W$s0N54v#a*w=qb#d$c2 z8ow8Hem-;l6V&-xua~LDj#(`3BC{bG|I|tb=;34pZS{ei^ANwsCABW+}Z8z9Jg|NBgf@Y^-H0STLd-F<0T^hJL z_4{nzM9pIvs((Ie9Wzk%rl9JLarXky(OGDLLRy;lN5ACm@ z@(WP?o)bU25`VDga0o3t2Mx1%#thkR3q3Z0n@8cI-*Du=))N}LMGgI}- z^g_j@9e;mD+$WzQ$1C%Ror$`>A3@z8ci;s)XKzNme%Hf!+!qyXA!Pn#zB@g}twTLG zR-)=IwKGxUM%W&xajj6ttBe{~7B#Mf{ij%r``&Iuja!ZyHx4y!2x?q^+spZmj_4|IGVs$Xfx$J3+#^LC6KX8WMV7e%fAL|V+}h~1BB--CL6{S5U! zdW+lFqn`J#Iex|Q0#vVNrXTH;H_Z$aG` zOHuXmQOB8KCp$md@lZR!`5umQ>|M^^?Dz(IrLAo*K^^Y`$K~yHN752=$WQ+x=6URJ z^!pJtuW#*c{EB{CQS+aV+V9q=y4R!nH?&tcf3f4FE#-W=|g)c7k<^QdL3;pgNpM9sShs^5uUqu&wxIx4@w@oYQI`7w_3 z>>%gwcihFccfO_L=C+CRbsg8RRh%#H_-s4mmsr>EgR%ZcQS0i5T7MVR`nMm5en0&b z^WTl?x81Hlou>ug$NHZ|wjk?q+(~|r^NmpJuY($YsjcjMS;r-8QRh#5=Y6zq+GTd0 zon^oHHs+g+-*CM8sPl3b>i8$WiF$wA|9u_pOKc_7{o08)i}IH}(LND1emH9WkJ<-q zH`@l)ud(9>wuY@@%h{4P&Hnpk)IW-T|(^9WHeNnGF z51{IHMU89cxTS6G{8f%Gv(=ri=(vo{aQ>eiQTI>#gZ;*SfjZu1$Ls7Hc8Oht>NnHz z6g$rO5snAjhn?^0_+Hz1ds^ao>h#-|me|JY&y}CXeq6UTeBt9b&UDm%Otj_je14SO zxg{<2z0#4k9H#P{BR>~)zfHuN?CV%Oo%m5)M0^`+9XFurH?j*j`MN$zquPt0+D~l^ zkE8Mj9Dir`IKRd5di$>P%N)OCzxyyP@geKJ1y!#R>Nr>0+Rj&UT*3agA+D3ZQ2l>I zy|3DUdS7&OeOl^$)o-ZxH3g2h*mqF<`Z+Fdi`s}sBsNY28%Vs4DP0<|B-9Dg=D@-2hWC;QRBN$k9gIzi2F{7c;n=V-yRp|vCUI)9``*N>sS|NE<>&3Md$OK zpD;GY_eLG}yD_}(a9-A-_HQL>|CibqouA=&vVF?=p^gXG-l+3^7wUSv9UBqnKAx7? z$aT{VmESo!=AVO#ufSXB_t&Vj#4Y%meZ-y|8TV%&RR6nC_gP!ieO7!#+()ksk98GB z?PK9#5w{*1@#G=VZv<-mqp0y^QTx$taP-^$XgCmcpZCS5nb*e;$LsVvsQS0}OH1q` zUk^2}Ec}hQX`fi%j^5F}4AuS;s=X`TjBR_RCEmwk4@TV+4@BMXyGOhOb(~SiQnH4i z&QmVxJaxC(ZeP_cEzy^LvrxwyfJIqf8`S3qH=y2k+}S1CYoprFLbV^~rd9joPBH&- zsP&!5iT+1W^Dm8hzmkrc-`IO%e$Ba~r(FZk;qs?L- z!%_1%$MJ%u5#NZK=PNfxT-laIo#$ex^PFaXyCLTHnSC46XkUP;KNWRdmApQ#t3R%b zI{Q&|_Sz4dM4j>WK~$ZZs5%+;o5m5pjk->rL|rFCP}fNh$?L^z{;WXV7mFRA ztRL|~)IOBEGM-0SSEQxBAJLeT{}J`BM15{v&GC7t^?Y$zjC-aA@1Gdoqe{fnD@EOH z=Z7z#>eoCsE%6%uR4U>P#iPCYS>c(eezz3$_|wAcu>;4y6g#r6%6JL=z9|y%BdG7m z^+27sc8;4l-dZ@uZ$e!st5N+{*pJiW{EoK63Ps!>S!&i8&bIb@2?@}@59~S6-wPtJ?#z1OJ7!T#|H|ceY|b_ZK1>h z+N+@M!!uCV`}nU4CDveLzO1=W?Wp!bsP<=e6-undpZIW4*Y9rB`nKDboS*4 zu{~-%?NIC4_CcZ4?+O11^}0CQ@ifQ1QRl5B&STx9*T(g99j5jHHLomN70;l5S;r+% zpFb6H{Lh-`{|oB#;l21W?b}hG55I`T7(W74x1ZyljyvH)^!w_)LWu`?K5Rz)oHq$y zAU_)Q`;7*n_NgQ4`FJ;KzBi%jUT+&ZU(@l$Hi=qCNyo)d>qtY@ImVYTROfel)#{jc zEmZy@yoh=I^md`t^LGa-pT8>ZqZz36KZRQVVAT5WK&}5aRR1dYDC;bPn{ofjLaFyf z!?6qfAI6G&&X9{5*Bv#k4eIrv96m$8G}ONR{zlCIdsM%#>@Liu{zlZktwrtYD%8)n z%k9f{zJ1O|^#3+tYTo_t-XAhT~k1I_}ljiG98T^?i*@)bH;qi<4N#-zy5G zey`gR)bGdIhuX)TsPpq7YJF?$D(7EuyufzG9jv=HX0ne}QTJN~xBvQjq15l8D!`r` zcNePeMqJ9c5AbZ}HP7+aB=x=XSL{OE%zU18JjwAG)c5QLgt=YtEaFPog}Q}M_wkM; zg;GBUZN`_0*P@R97HVH!$1c=g;`n(x1qai=JL-K(d(``sTO8LxrkwTPtFd2)QFVW| z8&IzsFQVRukFmL^{mnu3zsp{Z>R%q!|NX^<5?k5Fi%{{ZSEB#ZsJO1CU1As68FsRLW>$x+fnmdHzndH@e}qb-TpN>uA@It&xwPm z!Yt&;5KW^=Os((GI{``?K-$!jG>UxVA+P^}zCsF4!!}+~KBEKBE9&Q(+cAyf)^U3e-h?EnpM`opKQk!eVW{|u`y)QzHtreYtDxSe z*Xmv<_4(98-Qs<6Q(Q{ETZb6m7WLe_5?7EvcxPOn58y81TTu7gji~pt>)OTp(x#~T z_qL7t`E8>9Kveyyw?zF>sQNun^(!=s`qP_6{XwYueNpuf-x&2DK-JH?KI$*IF6vK5 z)!%+i)PEmUe-Wzw2Ukb^=BW8sMb*CmRsXpLQU5$t{o3`Teupc)KdAb{Ye)S)sQT?t z_50R}`hV4o`a4neKStGWj(Xp|B`fL|RFC?_Q9q~reQDIMb5YcbFJh&t<6k)lv0d zEEDxBqv~H)I_lqCD(WXt_4^f%`dv`6(%&7khs(x40{_Hy=>K`c< z_0L4@&)T9ZOjP|VGot>-=}~_PYW|B*^)E!#e=#lUf1HT=SD@y79;(jW zClaaWa2jgd?|hk6^WBZA_a>@N1Jpj;`&S}$A8k06NY!~6Rp;REQD+jW&SR)LJy3O; zqUwD5TO#%Egf^m{CvT&EpXy>e$4;~(>>&J^^*@Xn_khiDdmG!#USn(9i%`GEwJhrA zvH$&=NIiFsp}z0?isOc;_WG#T!|JH#-$nN1FCK@=zkzywPjNiX4spJ}<6g+Em)Q>W zysL~KaOiVvF;tzy2cz!KsP=E|m#Fp~Zr|wqa=e|okD>PEVcQmOW&WSCXhD3-e+N~6xqZs*!`24qI_J^GBY8$z|p4-bhe}?^m54TkRD^&e= zQT1Q5;N?OmO}%hq-KC2l{%d3|W6I(xp3`rAc4@iKi&Cpw!7Qg zySwGnv=Jw;eWBeY}{6DoXq3S>H z_TkPyVq3cXMz>dUKGXjFMU4LqHNQ_$_1D`OsQMGI9qoOb?{2Tbb9sHd9M!KnwxeH3 zRGq^1+s~u@GgSNAsP?7y3AYb(dspZ0vUS~liQ9`ipKkYl7WH?c>aRl8f7On0`(tkJ z?0h?0$L$xp{Y>Wz*{^m*{q3mwD^c}dv7_BS*zGyax3$%=4EuBuYM&~g>YUxeuLXDb^Zc-Vr$etgsQ&_RsSP9-|aKpKGgYswmI@oo*Fhm zt+PI=PNv&S*#jRZ68saYhToz3eSzw?)bT>cBXKP6TOUTvBiD9EeeTrJ@tvrC%^f$f z-L_Dd_wg5Oj`#BwkiRm{Dua3-T^v>SG}QQiK8pBHyA}05eWl|8sBtYFH@BBLU)}LV zsQ3BBQSZky@B`L&Y*Tm;Rc9ya_#Zp}fqlpAZ@B$s=jS5t^K)l~na`l=Pq0te&h{=_ zA8%!S>o!LJx9xK{iv6F2d{rxJ2c^Q^|q0%VK1~5Y)MIzP`2aeH64w{!kxTh;9q-CoG~zuu4fAEVw!Y(O1nHR?F| zZhyu;+4As5|bv{0|FS-4Bw~umu zkZtYu=5DX)d}aIJyHWp7RQ=tk`djTHx6gL_2UE+Y_NDy})aQbiVNvE^0xw|S5~zOrUkk5V9@cy{k@}qfd?b~1aBt2d^uUZuI{^fqu-aPerr+v_RfvJ zJ8B-AQS(1GCz0T*zgdTouO?<~LY;?So{RNdjjCVq*;vP^=`sE*)H+t9=C=rS{PoX7 z`y|^Q)$bZqznZ9i|4og4Pon0xXG+ZP9n}2ZK+W$=)O>!P81uOa$FlBgP}kw*wx;vv zJ1%F7*)&@)A=dK|>bxvQ9d9gZo;^|X?0}l*ALGN-Pei{__BK@iOHutRqWUi$8T}Hd zb!Co-b)6a>`QxZ{U5$LTJ?je0!9Vk2KA)rJvt(F!CaTVgp;2cts{JWco$jc4T#uSZ z7HS?pJQnpfq56**5}uB#w`{QMVX7Xc>S3xLrs|>U6~<8UwN!8{j z&Q#RAZ*R=LbKLr<`>-0G!R!5nsPvmQpx|0dM@zrQw-=!F|lM?BE}Rwwc!?VQ?CXDn(y6KX}B^HHxe9co1Xsh39lb+w2Kq0ZyBi(~&b zp}yDl9%?_{#97*J?81I5c0AjTN9}K4RR8X%zkh3wUAPb0IDaFSW8WHKdFs`2`^9cA z?tBKS--@a+ekrPM5B!L6IjHZ=wQ^hs4{N_r_iZ_RkGO>6VyOA)9|@|?p(=46_u~S- zAOAHj;&X)0aUt{Fj=G*cK%MUuxR-TLb36gp6OTb1uQxtO|NC$s$LWe^>bgT+S4~jI zz1m*pd{xI6*z(Sw;W)$ocTvgq9e-gQKM!>ucSgQ1l-mZi-kVVUuSb2)v@U8r zHBiriim2=Vbky_ZuS(Ir2Q_{>YW!x@_zzH@x4eV7?9(z-y_fJD);kx=;!Hcmjf(w%u(<+sfW#ueS}c49Cer9k(iWV*Zs-*J%aRc`1#hiO)oRKlQg{BK7^$16Ydw zU!wZWM6F|@<0`1OFv4$#=ox^ly)PPPWCXXulP&X8ui4YHqU1Z-)~IpUiNEfhk^2|QTdgq{9Ra*<6MlYdjk&z*`JF{ zHbKp^2&&&ME(+y`q1M{~HIL8Ej(ok6iPV3uvl6P`g)DvymO#Zfvlw{+s_qabt++8N z&P3I__O$S9)cBJ{qTe;P1gigog(F`N6`$mPH2yu*xK~j12V*+<-eKI-%;dMYZ4Ld_&~_GV4T~$*=WFy&pQk zAmx7#a}S`_z1jIS&cEgSEYv(EhPh8V&o!F*{ct^;?}T-k#~rBk--en`Q{;HL*~tIp zHsF6W-{T$W*6I8v8NEd#;PSoS;@TvA!oS%)V$JcDt zFS8r!yg$oxg*rth+JV@ZTQet-Nc@28QFXGJgsg9C+iEsx`OGZUk6-hZvZ&P}c)k@s&LSkQxhZwt6c^atcAMp1 zOtr5?&3_eY-plNZsCnmGK6_8aI?u|FwRv_RYQ4Qt>+5NA?47oyZHB4!+xoV)t!9(9 zye(;q+JrsM`BS~aIF92Vz^8B<@*{uoO~{Y-#h2mJ_#%$Si8vX@;w0>i6R{^wz?Rsa zeQbvJU~T+9jq{7&VM*kxrp1dQzhbO7Usp>EAwIzQZHNWPS0jt>#um5@Z^BL32-jkB zT!lAaJ|4wq@gOpn#BVqjf5ANb6$j!m?2U)9C;pB(_y^vJhcFwvFwgqf9cv@!CUt$@ zhe_hDSRT1oQ`cuV%x}p1PWCg;=GbhTvge|z-<88jpvpF`~CT+qN)bn_oZ}V)9 z&9+IKumyEJ-sampn`5(W(k5)dWgc(yZJy1s**0ktwxEv3+kBg6b8NOv+Jr6O#!8(( zn{V@Mj?K17o3I77Jl^KpJey;)ZPF%eK~0ah`8Lny*le4$30sim@iyP)*&Lf~lQv-s zYIwZOw|O?lX4|Aq*n;XFZ}V-Q&9T`wX%n{KQjfR!HqYkRY@4(RTfmER>ipS!n`d)u zwoTfEEvV-4Hs9vi9Gh*EHem}c_IR6b^K6dIwn>|?1yw!X=G#1*W3z42CTu|!kGJ_Y z&*s={o3sgAaFNH`e4A%;Y_?6>ge|D-@iyP)*&Lf~lQv-sF7$YtZ}V)9&9+IKumzPo z-sampn`5(W(k5&HFQkR^`epNNp3Sk@Hfa;KfS)f5X}s0XtBUh%j?K17o3I7vd%VrJ zc{ayp+oVm{f=rLM`8Lny*le4$30qLn<88jpvpF`~CT+qNoaga2-{#pIn{AUeVGAmF zyv?_HHpgb$q)pg@b3NYX+dP|Nvu)BQY(aUCxA`{D=GbhTv0HXLD?} zP1=MlDCO}s-{#pIn{AUeVGGXoc$;tYY>v&gNt>_*B|YBe+dP|Nvu)BQY(WW+xA`{D z=GbhTv|?1!s7? z&9`|r$7b84P1u6dJ>KTqJey;)ZPF%eK{1cF`8Lny*le4$30qLq<88jpvpF`~CT+qN zoaXU1-{#pIn{AUeVGD|Qyv?_HHpgb$q)pg@!X9t)ZJy1s**0ktwjjgfZNAO3IX2rS zZNe6$d%VrJc{ayp+oVm{f;5k}`8Lny*le4$30uI6ZR+*c=G#1*W3z42CTu~%<88jp zvpF`~CM~E$k$Ow?dl54d%|1_0jMAq3kimafG$V0ee?EjLQaiC}IvdTOf!r^}3nlgc zrv9AsJTZH~r|7A;{Md;3tq-aA<)$f+eU8_bjr9*vJ(iL)Aog>l zkDn+P?H_cF@sm8Cq~m8DuYWv_x2$fgx0Bls_;^j9iux^GzoX-AK7V6!V*Fvwv;G{L z9LL-3@tNvR(=x}?YDWKLZx+d)d%eHqy&qRU9PP{IMEkNkB3}D+MymghygnD_8L{ch zSnnR~A8~R|#KmS2({*p9i1ob}?PpGU%x~x%VxCdSucEz<#uHa@{Ay=ny7u<|WsZ)x zq~|wA*9-goqW5E_*IU%>+a^W-vmI~o`bs%&d`YyQ_jcUJ^#?k> zvM=qdr(jv^$0oPuxxIwO(_Zq;Xut2ts5jQ_*)t=am|T(C&p$oC`X}Okd5*o*_~f@S z{v+OxDo*T;_{)yO>{o5?S8uO3qf%V|PgRfl|MU5Nw*xUXpY{2f;r+bR$D8_0^e^f0 zM|%=$ecj@Cdwe~Y^!?m;D(y7Y_5Q!Z`*qdd?fNV4B4&Q$Jim=P9&vleRq`Y5?D&-C zPy2n2+suu)x8q9MU)u8=PraYN2h)B$8`sm{4I@76_=N`}UOOw=M+}L$;Ah70=Le6k z?e>+9TP}?LE!}_Of`}h@EXGfKG2#xaSI6(|@#lDafyYne{hQjee~IIr$S3Af-}FzM z-<}UedrOc1qEE!z_{(VhS$1*66F*LciQg}ZxWLC>!TDGHf}A)%O?khqcw3{0Px14E z;@a5}udfwxKL02{e=4}Wvpd5zrexG2v9 z^-p9(|6)BOF8E*czpP!vYyXb80q0x&*Pe{{P492P(THpFdZG6GBN1Pc6>)9%FT>9_ zYHyhy$2&M8;v64und9Vf*K=I5aP)uh|Kn59e$hxD&+U_2IQD$k^Yf67x6Q}fd11sY zmy+bqC$~gAQGZd#p9|&@bH4Nbjq|0>usDLasH(-pH|-QWus$#EqOkq z_Pb)VALjY4IPd(38}Rd%;@%Y^u2?PN9LIN8iFjH0Xy@^t>c5ujNPiZVh`8iSaXzN` zeAM0??U(gZ``SeQ-!cA-Ya;G_JmQ9__0s-h#7nP^_GONXc>LP$qx~DVC-z0WCpY@H z^FtfBb>y-|Re%XZ_c@zVEMW-+zDb^JHrO9ABBbU)ClH&g7)= zC)qyQ*FF&Iuj>1&_L_+6Jx4pQcgy^|JupE18UJM*Z}B4$AKn#lS;qyx$N1s>qdn(` zh=&by|DtjH)~=UGi#UCu+L>2$Pu!8Ze%B_Jy&Cm1eLb&j6dgWk82u++5%GC+v9nrtG+xc~}srBZZ7VQNWM4WKE z=>M<3ALICS=%)Qi9EkH*`m~6b@k_Jx=U=+1ec~q(cX9ugd`VM(+WGbG@aGY~==-6h z@5dSc|9bgnv>%%h_40p<AlZ+-EDKc^3ic-hC%zRs^-Ex(QU9@jto zbM$ZF^&LJC@xydWoqxCg_-Mo}z5bHkzio%2zy9)D{cA6d^M9YOucYU*hM&jO-uwIL zU&Za)98dTCIq~t>|9*~Z`}$h$_akeU#`xPi_;|iPr+a_%9lz^%qT^qEedPH1c&~ko z&-eY3+SW`y35BK740+q z{vf$N>hDXv{_#Ao9dQXiZxTaeJsX?E_>v`4ms29w?{^Mg81)AG^}N9GTUDa}Hpgr8 zB2IdLUl#BJzTen~R7;LY%-=2p=X~l6(K^s`Ku7?AlJw=g+H}uCDH` z?yjz`uIgT{bNxOh_ywuoecPOVDDv(+!9NiAK-xDX<-c3xVN>K&Nz#X9Kbn^Db_RMc zedM1{<2NDv8Wa5G=X3qOB;{>Od%q_5LjpfR=F`p}aQ%NM@WCH&{x{3|IeaU_H@$|- z+mrR;kuPI7DgFOPGCrH4-@jbOf8rJ{@6wAUzu?bE zdQp|9n;YV_*93*MvU@pJMuV{vzjJCI>QnvjXpbn&Hy|ZwtID z?Hd>PQb`{YeqH?{rk9ZY(&wc=m!*G-FX8lY>F*cI`j!y==`%k?>3fOsk1&7!PR;+l zMB#%Br=eR>`tU~?KJo&FcSQlZEz59Xhtq$5ieT(NWWByk_`NUl{cV!I`(keI z`S%h{f$v5!RNrBdzt^45a6;e@4KsZ3Ew0bAWIbFK_+OsE=>>t0h`cLE{*#wdI`}E& zReze{U4fsh(y?EW{GY5dy~F{R_wSEp{AIy+1l|$&B7wIB{-A=fz6iamWxO`O$@IQ0 z>+SYeF!Au+`YbN*P}1+YjNv_jKQ8<~Bl6+?*B~A1!ELf0{G80kGcq4OF69jge2*G0 zC`jf%&3fYZ&ZD?|7+n?Iypa3niYY1oi44C)*6TA*X1H!}`mXFJf2Bq+^zXYk{m2Ui z7W)(Vt15YQEw?|T`XBa(D;cJ3hU%Y>asF>8d9jyR{tbq&KFRsVMZWyG=xe*Poc_c$ zP9GBb$#sSgWxsv1=x-ktetk#uk-`<6|8HN(_&YLRfB&Tn?~DAZyiVwoqJ{5ikn?K1 zivC9azyyyEar)Ywf=>>M_#Pwc=fS@-zwg}P^aS3Sq;F2~599Ca3|B>d3<>^=1Rnny zr(Y%O_0AI*zC-$VSmX;$V^tsN@5jshA0J`-;a70_wyfuGlku}7`-wYgKBGN{BH!;qTwQ zk>TC@xW7Jk5yNMm&F%SXssH#2m-hzg&x1EIJT@%!u4MT52LMB+?23MTpU`Vc|Nol6 z7+4#XkM<*D!uk+WRBXM|Pxr-;(|Jkc_w1 zix~fm*i+UdJ(1`7zg6J95rIX19$vxx_}`UmM}MCY`Tp!} z#!ueB`0thZx-awfZ;w;@ULq;>vEO+G!^{7J<@2xR8BY9!^UtXD0{YqCaCsNaO8QTu zP<*#Z`tF+;e?`*wzr^s9Z<6x9z;Ip4-~A@T87Z&uPYi!a;Di5Q_+u{qj|5-f<_{SD z$<<8%%oiDcmGJve$w zcLT%Uxkd2T8MYmUcWj1h!jJ7=V)$}_$01E=pCGW@0&GrYgcaAI82-_G#wN&5<-9~~a0bjWAv&kJPzP0INBtj+1o z4A<{ZpU&{`cU5&0xeFNHmi72)BHxlCkM6H<`tny8|Ne^^E{MK!kQc~9(F9~60-`0t$m&$o#FULx^F(tgqZ zheTial*q%qpX2&|T+LU=^LrWp8;U=$uSt1FL|@$&cxjpIpZFr@|GvzpA=y9u(`}qi z{-N}J76XF#Sy<=xU(#lH`Be<(euLpX1kKR*+NTM8y#f=ryhHFQFb&@qWqcg`GUGq| zS)9Hr@bjL{@EM`EeuUw1fhX1cgg$mJ=dVb84{vAq`gbz^-iH|e@-++>5cEUe6J$Ol z@8b0P-^}Sl6u5>jDfl}A-#EhQ+Y}guZ@s`UJ(f$~AMY}JM(le(5P3v;I(R9?NWvd7{~No0lpExcm5mK?@QM)oDlerZ3u=)hXwx8i#Y$`x41sXWWRSH^X-@4!s&&(nf}+4 z1n(wxpQoym$O^v>a9Ip}?-Y3GmpT3OPvQJc8BYhVXLwo8Z!R8XcpvkQzK={WoO~nG z`_zo&zlq@!0-vEkM|@Yy_&RtU!>_-L@%JQsS^8smn$stq!089)F+XxmhPS5`xx^1; zd<@BX!v!+_#_>CS&y(@Djd@Jpze|6Pqo3&eg{zs~4o}y_Bj%(&Kg;P?y8DeouFqc$ zbNc=_7@oeA;e&r>_?SDtyzNuK zD87qpLQl?17LGAokn^-x-A*vf-6!zS_ZfbH@Mq{oruXzT;qNAzPh$9zTZR5C z!*3J(U70VI@cVF|$KU;T03V|NZKA(zio8g0a^iQ6Fug-nd(2nq|6xi0u=M|sz<(qC zRoLSnI!Yd6J^um|_`J;jgO4%%;&(CqGhbzViYFuf?MZ+AK=i8v;m^+;<@9B-_x_%0 zKjf*De^-jrhv}dUUs~XUaRnxR;?9>}VfaTG#xHz=@xO5`!~3sf_+f95^iMPVKH=ZC z%#W(b@9k|)zgqT#J2D@ByT$nrDL@$C-^=)K3jVz^zYczz(_bxc;gbx1(&hK37(Nt! z9}51hGQKE&fWD89a(PKPKf4R_jQF`L^5#R*-XYl!<{r!GiMKKX?-BkCzm@5IOY$$v z_|1qs9{zn!|G4z`kmSz^{i(wVtNOnUwrz#QvR11|FtH;+lj(oaeE&n@DMIfpzm2SK8IS2 z|I7)(-^1k=3?nvG@iQs*zP#|8E_a~sg))AcBL5mPz6+n>^dG*1^EdD2@;;wqc>DJ_ zedZ|wi~KGK{<8GnktC(>CJNu={2w^V@c3N}-z(#N=mM_qY3Yx{Pc!|$m+}%qkM3h3 zddtsc{M#jcSL*YE$8&v>Og{0i0*_MwIlfy*Bz>9l|CID+;(*hy5q&oy{qb*#--*QV z7~?-t%z}{sqgD=0sbQ)2gSbg*;&rNEcE_N^o29ho>$5E zXx_jTqWfi(e3SF%*U0$Y{V)@_So$mZT88fye(gX{qwjsf-{zBfJ-t};t>OE*zMpIe z{R=q#rNYmBfgj;;`Vd`kfbW%Ve}ixIb()ec_}>Nl>ipDFK1 zzmWP33;b8IJ`9UL_~&FkZ_9jmwaCxCJDH!axRUELEc*NFrGERTIek~wJBnMR?>@JD z(dVBd{2LbdNjEdS1C#mvs$&eFk@@+gcQL#p`oK>QGhC4Kk!xf;?>v(E`*KN7%K7X2 zuOfWtE8-9K`KK~`=CNQjzNbt2_G1`+p`;%Q{9CF%=)d|GNS|`Z}h!_h>HPx`5$rY42+v zL-1bW@HaVqLh6^4^SB+sACmL=R-NW@2Nt6SM-Z5$$u#8?GL2C4lm;JE}xY8D{AmlmiA*9tMAJnMEd!AiI0ju{L}7a zcwOM50zXIKAJTXP{#62hRp8eP{Kqt&kbe5>+}}&I{sMlqq<{ML1Vg`*^gsD9!xssB zo22i5jq`uxt(^ZmlAb97ei-(11#aKXmcX|$oO>R_yOMtUa~VDmd*K&K4DX3P^C#c} z(JP2O>D&05-~+J-9?Ua5EbIM8$_zK9yt0&^l=bk!6;59kd4GjlpU*PCk4pN`X@>8( zUhpqx_+3)Jp$Uff-Tc4E@F%4`LoZ_Z1%khgOEu_wg}?__Fnp2C^v9pb@VvkW-{t&2 zE^_+bd7S=4$zQmRVN2j7-W#Lu$I||tOBfyzdW9b`y@MjtOFWL#e<=Bfui^A3D*F`r zU-Xej3cX>`kAD0d&cB~ye2Pb>{%DGR`wq7~(*AqT~wUCJLqKKfoOaPs*KpC|2Imj2oodV421{fPAc z;WEQtcgKrN$e)+~-4=elOwz|iAH0wF^+=3=*{|LAb6mgOKLaE1O-uUz|$XE6N>5%^!xkHPdmTn@u~#W0-3_zmL!-$;EnJ`zs< zPK4eUBjx{m1plT;dGAAi2g|!CQXcM53#Gp#g8$e^c~6h<_a5|Ykp9Jy`qU!)y}lF1 zKNab}TO#$pCj!4AQvcf{@V`Xr^AA`bg7y1y1pl%KY)1O$7b5k)Fv5?!BlUl8q`or| ze*9aceqV{udm1VmtnYo1^k$^KUyk(0wUP4WJ`a@2-%}&?{SfAJu)Oml?f=GdI6V_7 zFCC%Rh|p_B@DE-SruUWzfAf*?cR{4R-;9*^!U%uA8maGvk@9bjlvj<=`&6X7-;BWP z5qg(K`e!CW@82Th@BB!8-w|o={gL`7EbE3j!?3JYv0iCcZn7O?v{G-|PQ6&QTJ@#_ zU^Q1L)e6T;H^q@h7VKujY3I7679_hiubG^Yf)-1Srd?ia1AA?x*lgPMau zAnL?Is$PWIW@@(BB<$i!)t(04QiHSQ3Y)cxCWDdkdI#-kDzu6YF+b9>+to@frxN|{ zrN7E6jnh`6Zq*y@$|?$3v)k=T&2Frgi@G8+UXh(v)wY{C9a4I+T`X-(f#vPFM%m7^ z+6~9fom@CRw`dtjmAK>-OSV4q(z;_8%M12e1-#!f$EGXwGXFN&z#uu@KDssEnwiQs zN*m~RP5I{3lrc65B5gb0SgVwZRnD$(xx2tFtF>M%H%`U-!SLI7s)R=l~wc02Z!JU+e<`k=w#nQSx11_0b z97;(~6jEjmpOKuhi<}=LYB6QibcGqCVb&E}HhRErGkeOp+SbZRZN7B48w`_k2q$X; z=1N}OsMICTfaOft7(DB}^LX4|ZMBPSa9YD=Bkf^T6&B=@7SEqWJ<+oHqO)etV&r(e z#yvIHm~Ud{o~R>f5Th54=-iK)fP8sxQ16=P(oQ=NY18B@$_RB9Z07Fs)lwHv?IOVg=0r^I9hqMBoBKo>y=j&m#i0%_&$x%qoSOz^^BROAZDdyLpAL+h% z%%msIPNHpATdk6A10&=g+9?=bd1&5hSF6B^hSe#jud2Dwsgnr0s?pehY&y>Ubv)dj z|8&utf{ZzerFr8hv=CbVb&@sNDZ7fzBr*zF46~#@L25o4ow$h;LJG2YgL`%xh9A_KlPSwt%4wCD*JK0Bg zi^7~Du`mYm4CxBUOsvqZNIS4c&v<%?U5PCFB%E>*~?;ei>ZOB`L?s+X=UI=VE&xYjN~HJ>Co z5JCtuEWQ?okRzgucR!1?AsSN>W~RQ{AaSGRNoKN9Z8#X3JiJ<3Bm>gE)~HWci)$^z zKuf3W)ncdGcCm#KnXU-#$R3@A>J5e(q+&69X_mQk!p+Y5Ll@XVyhw{93TYD9qU`Eg zV^aET@$|J7hg7^?n5ve=(7PxHo^q2{ZaU~VyC z{^%w-w)V734o!b;ZZpNR=0x4GOO3TUrcqhV0o}NZ>Gf)LFP@&LRyJ)`1hs`28I0Gt zPHn|@=2s^RC-g|Zc>vOscl=U`$Vk&QIFlozRk*W^QAjP?^r%^=j46h>U~giBXU{uj z+eHtv(_FLLR(T7{>v~y_VJuZ!w4~8=(6R}3ielL=^D>etRqdi4&yWd4;w>}T4Q*`N zDc0=XIN7OUyVx5g)_JLGIz?z@nAmoq(bP2rN|(3vF2Tq*U$1Vd9lQ=%Y*tEY8>#;2 z#?q-q9-UEzFs03}5iyA6@>?l$bR>&^M>3hzNH048vYSb*i6J*gRnnyQ!R|ij+mv=h{|-5G6g7ON42~*NT%oNn-!-~*Rj_$kv>&)PF3p1 zVQjXm*J2n$Ky}5PEtVS4f??>e%VAts?+C~}Pbt-@-lnH_&la~9>~_bg&vmL*UCAky zd{bu^wCRRD=8xYKby88fAqF*$-k764 zNz$eVAUN6!&$p|=fV81&GHnX@cmZXxSmYXNkqy?nl{93@PNk3Z$`K<^InIK3x*NU` zT)9bo;|dju?R6pVssl+SoYg`H;~B{gvYcsm1Cd!pvqBvn(4wWQv_S>)+O%j_SHlGx z=6u~>{I%H)N{7H##xu?AQ1iA&`e-;UvXsSyUW0VYYy;A-QLmKdiuJ}4PK|VBXL}_Y8Kuk}t<+(Wn1e2$ zqoDR9vW9iV89mXYZF?WI)Ko=Zgii4?Ql#umJB^yEq_%3Y9X#3TFvi_&yw$0iKmbV8VcPv7t1YUYT$%L2EqC`I#1$uu2U*uO)A$M3q)& zL;aA`sBI9xC+VnOI#!hPM7JW5F%(oKWX0}MXZ>0&C-$_cdii=3;n_#BGpz!c<>l$y zXJiGzv2mq^kro-oVT%-*-6M#7iTBHb+Ag$OdFs*J>5^?@yQCX7IHfj|EZYm~Tdlw` zwPuW&8R(}gwA*vqN5P6Ur_qr^aUE?K(@m_7y5_?ZC3o7^CI#IO)GVFsIF4P%?nOt) zNKKN9$!uX^eknJ(q(dP|w6M6SOBz#|Cl>Pyx>Q5AbBPm8k=LO88Pa(Hck(r zA9FoKx15+!+rtQx3Ruen8x}{^(#zr!jT>#>I+O>qsy(ci~d@1JcnqbaVD%lkcCR?t48NAc_)Ub4&9pkdle z43m%UB|S8kM!aicD1ol=(!!-^N3hXz1V>Y&eKzGHgiDIA%O0ZJqWB2blj=Ew-7GHA zIGbYS2G|r$^G0xltT%!qzsE;#1i>G{ZbFz%0gZCf#gL|WBRKMVU<5}}ybF|*qdE-Q!G+Y}r?NP~5vE$ei^)hWj$cYmE zij|d|k%4`>qbyz?9c84g)UajrehRqlq5e(sru1sD+QFW~K3$<-_@AyGjnImK6-ZX@ zjQp##iGh~gc9dGGd;;A+;bYQh<6O)uy3B`7R)fzU=y%V36uu^4XSHh8lwxV&h|^ld zVZXIbr~UC-pvYA^#e!odXQ+2-)=iDN?f)WBy98XSdBSR!uub4U(RebIBl||Vf`6nv z%pI~c;U~perhDO_cDSBt!7&}Rge!Pjf2ug5oU0!u1je_aSx?%)=F9Z$i9(O zfm(;$!qi{#?+Ol@8>n`%wE_OD;?Ek+Gc0ntTq$DP$iKx#lA+se!vq}37wA|Ns$3Su z@|v(b*F>t0@>*4mM2T{Mua1R$Hjtl*hl;5Idn=ADtrpHqtrc>NNTAnk{J&gnZPkDo z8T`fw#wdFa!;!Kso|HO7-&9DhpXAS{!NQ)k-m+)eq&`wcr&p?m>Hb(KR-BoWwOsBb z8Qi^}>EK{Sxu47}nilo%)n-pd$J2!U}u!!V+1|9q)ME3 zNCN0FeCN}ea!v*s+)p&@2yhpewZO5wpPwq>&4bO`Q3z4^68aEc`H{y z50B1HWvt1i>ti@Zl2X_h)CDuV&^*NcinIu+#$v;w>NBXbR87M>+Nm`~=V!MftR^@J zf!t{2YWOshkZgz~v5(>O$3qcTn`zfNO{-q$P@9-+1b18U%rI?lsr+Y~F$;4z6?g)U zs_GEuYzY|Wn$s}PwkR{!!i8dejk~fpe>7*b=^2Px3|W0oWsfRJM9~jedsMm64AO6| zYKFm%dCyIv{!!iU^{sF@*kV=pnf!_YA-JjS;vfkl8_T;iaAq^zqx|FpDSxocK945I zs-=ucY68Z3E!boPVW?0IW)w^~n6~N=rhisrM6!~LQ;$IsEH0JlQrx_wj*JE*;}uOq zliVrc`Kp`0!Jm*FFLl^ zKKexI<(&$mq59<-9Td?R@s1x5*QQQ3y3!603t0yu-nODl4+5n<4ifH&E+fjHM@r82U~%Pj=H}i1D;b_#{@jC#|%;I zh4>Kb&#VDy8{>P`t+pLlKuEf35&bAu+Fn*G^$j$;geXiUX~N?iev2#c(P%@kL7tLD z_}XH%!+RfH1|v&2?7i*G)JxS)*&ad88sgHlB^X99LoIg}$d$7}MhnjdedTPBX)KR$ zn>pM}&FelC;Eq`=^GW{{Nq#Lip)|Tk>Zo6j1&Lb3qEuhQ-iAEex}%!3{gP4%OP%CH zJJJ9l^vPJqT)ba8w%D15@pV8uHytDJh|ERKSdEBw@az zroli)lSan_1F{4`*A^MJy5abOhlsH$NJq>xC*kf1oJMmU0g`0S6ZKnPwpiaOU?tNN zG1T}`H2y>fP6A$wT#d$@YOvb4Ku#F(g_M37TPU6q{3JIpZ zs}QQvH`p@*IQ|}sMYwOX^D8hv*5&Y6?bnr~Z~RcA%SN}b zWC_VoFPrJwmS=`mmU-Bsu}g#3A}nur7#GUii| z`?Oh`iTZ;EL)=1LAn^~u9>AgSshqA_(X%9qjnyHh$ZsUyIHi2I-3{AprLJ6!Yv8M7 zasy^OcBud!E;-`Qq6^qc1wtbxT$029Yl}^z1#soClt~G;frgzq7W1|TZKnHIhXNtxeB_C?U0A!5?qAC zSmbm+zj6|m5RwLZ977oyX{^B-I}H^&SI3nbsxc8OS#VDdvjeiwCIgM`f#-(w&8TxD z38n3w#T1J(XQAl4fwEx_4C!R69e?-Tey|P3sPe@RijRKHF%eV%^-%V;{-`FmZg9UJ zGt$Abu#fA5Kc-rw`lK6XMAU>FuGjq#lXPg=T zgf(7&281OKWSbjNJ*mt+@s&lpR%Dcw(Jqu`>T2w3#d<))@Z)FUgbf`Cm)U4airQ1g z;8mvVWa_A2Y$}?JCiZ=Ncuh+ThXT(vCQ;B#EeBI!kq#AfCHBa8@?0}wn{uvM&pD%a zgVo41?3KY#&)m7zg#}qa`#EPyY881f2&pQ?y~`d@#X`E+1EHjMawyc4KSQ(=M0v<4 z#Y8tSgRZYC%z6%YX<o~YFgE&XV!-KJckJ9y9y>tbQn?2FCLmwfF~};dZ&<4^nET!`@UE%Br-x9KZw=Js zHZE4HZqe;(tB8Q36#f@pWUxUd;DpB3NH0%~j#J=U12kKF%_3>VRR|>uqQ@^Nl!;SZ zN2bsYk|_DESYC z9Vdd%he6$Swg@_tFF3f^jkd%}46t<^s}an<(dvvUm9WrgL189~;Xs*2IFo~07Y5G5 z?GSaTf4$i6LY32{QfOLWFCT4JOgG44r>Dr}A{>*;sOS_z$FE55F)#V@qVDKn{U@@* zLQ5%3cN428b0<%7k-cdc=Rm`EA|tOfGVN7#MUDBsO_epWOR1fV1``1qSy*3~tD1D* zAFZbGIfEw}x==5{YvhBLMhwTPTu-`P2@LAz*0qeltt~V;bk%?w=f#j6!4?(&})JS4J!Zna?O5#Gjdsc(4_Ufv;q<_^N zQ+BHt6P<<$+3AM`GInHd9T@0Tk#rS-p}Ou5-V}l0@h(UaiD{S|g2uu(!p#wHGo^Sz z2f(2PHymOG;Tuj4dhmIPVc8qkemz8&XOTjTUWK@ceGAbej=7#c>>_#td4JPsHfb+P zuUdt>vPM<$&v;!Ib>yn)F#SV=TCu!YLBw=T@Vw@-0sz6-WpT!GtfNeqlEFUIS%LGC zx)}&-P~kYvBcQNXD!LqgT~6WhEDCn56m*ED!8fi<;LKhHBsV+CVgTHDLOHQeE+Gl#GmM?!- z!8tm^(W3dyD^(j1y&6(uxDc$REPi84=0kU6Her49*E?Qy1I!jo6*RI zBnAeYk4~JJnIbor!f}NZ+1X?0DpPdiG99QabU#imRco!qN#}7OxQ4)O z{DFx0MiosCzic{=RON7~q$7Y5|K>TcNi^7I4Si3JllZ5E*g#Y-5ZM)eqo7zWtGSf0 z#!(5Ikw88V3HgA!dBY<&wpwvWf>0*Wj1?7V$f^zQ10@!j zF-1zQN&zw`A~iH{J5Uj!mQ+ozk&aDc(TBbML)Wa@Fj!k)t%vQUqIY|wA}?(Zwb?=m zG|D_I9)``5_k$XP0hmK#eQ|>Ip@ley%4&u3MC5xavw$#`O?zT)aVFO)6`S^=jcae} z*p;XQJoUT^1aLej;!MG$>B?!l?E8k0_hTFt(P%EJifDv206ea$H3fSreI9jDmU5_p zzC>}51Le|sX3~2p-O52IJ!~Bg1TK*1hTv|92>5Xu0d3B9=9F&(6sK+(5cJ??=!>iO zD9xfu90J;fNk-Z$q9>l7yrJ%O6Bc)C1-6A~g{A|vy%scUFxT~HiZvcrr0#muhz$e^ ziRh+u-$-KJ%6f>7oEs? zi2f>1Hpp37M}V%hLD0B9(Fi&RXVqQAi%Oc1TC(D2xXpuzI1$S09q$_)5cs|m*4 zrtY}ZcMUGao)Cqu2Ubdq28&y*Y6E^#Ixd%UvCu>4h5_kx9S5^^^@7iL;n* zh%lP3yE_qG9kOuqR<-a5xm$WMheGDiywaSLY1?FIEL<5iOuYia+k8!ANl*MpV9DUP zmE7RCD`$aAh7?VhNTjfcsa?Y*BYRb`74Y^@rcXVO%p##CW5EL$z6O3%6~n?5=M5D*4cnII! z#;N-F@!G-qgz!E0>(MD&y%dlOm+z-ziKSH*XX7CPuqy-{^3+ovKy!~_7&SB{2e{5h zGXz5ZKwjJpaS!49^vVcX^>c-FU4ih6XER>l5gG0(r8{b}C@sfVy)+m>fjP!wnC!fm zP>dWIQDkhUj@QUJ(pBOO&f`Q)J>1Cm;=}GrAyHfF>nl2JdaW<54qPV4x5YnkNls0< zw|1(cN2jLvEM7;2+i|qfV7s}dR>8|I2RW=Rz>=%_2-ZNkjUiXi(53pbo5@k-w-fYb z>E47m*N6_sEHj-!7!jIny#{kZJ-rw{#>?p%L*b_4vV|k%(4FXv?yiA+3#PL22q8(y z(~)!oSEhn(>-@4@Oi+YL#VStDEQ;&7$aAFZ{mI^;n%Wz1YiP&r-V7CnC%ioEQ}r%G zbVZnsAKFVAp`>dI=g?(r?r6WsFVf)JF`)7VPjulE*&i+R8k-OuW&4GdjP880==aDr z-oMAl9kITD!8tjdKmy_{a&g4U83sK4EgL6JunWyxy+AH0bBh^krhwFyTyEibZK^rH z^j}-4;}1@)(9wEFoNj(JX~b#Ffl)I!BBLtg=wI+s<7$PvZUL?Yqq^Snw{v{3K`VLT zINsw(Yp}=iH=WAWOE|lkfrYL{GBCZEw^s}^%Rf69?n{QXl(ZlXv?O|*#dc+e>$E)9 z#EWANNNw6`lvm@#_(?lGspOs=A_9F zBTgae)s#x&oYU1j&;>cHW2_U>l1#o#(|mPOe6InmJU37oW{PY%q8{@#w;u5ob$0jw zh(o{gh@-M+PtR0Jq5HB5jixrv%{82({RkZcDvcDZa`!>#Z7qJ#c4Xkn2Jz)WFQIq) z=TOyRYg5-8y#}W{&NLAX;c=<2isy-i0H1PMF0Y&3M3-yvL)&pQ(A_xev4gCE@tz*P zwjDm_R_x&e<-pYuB#F9|90-ze!vWAEhOP(UCZLY7$t<_X&!Q{VYLR)bOxsy_V6RqA z_rUbL3Sh3ne*0^T(QmF_OBBYET9 zAH-^~yGeyd5W?2uyf?|p%$(y5R--vlFCT5R@kk6#_q$}m;~K7$YGsX1&?)2s9!e** zWdy9IWkg&c&K8b@{V;0|J!nbxm70euf@4eq-z4-ka1R7^ytb7Tg&SxknutepqlkAkNC3#PE$cClS~7rbuSfJH$ed-qHAM%Q0n<>d*PM}o&h zeso^+nX0(n@JJ&;r;kpJN{KUIH%`J8G;*-*KdvP&PmJY$c zZ_KMwxYW?8lD`xx3mUm~o=Z0PcXr7}(t!mD%$MX*Mp_rlO;G1tj)kfhyt0;@aJ~1j zrwg0Nz?pEQUTtFaIx;n}aNW$DmAigvaV{>Jj8VAU(4!C*-cwv@wCG{yI9A?FNjyNq zvEbukHCEyNP-`H5ULgyU^G2qMOEXT^n$~F`ZrHKpmj9%$RcfCOCQ!kD7&TZYdrw~?IO!fTSsXO<0(gZk8w zV&s_y!<D-d7?}XC=`L5&|1|udQ@@4 zVGMG26W!2pG=vL@U{!!WL|I!k( zb*|xrk>)|lK5JT(yy-iS`cq2zZn-p*=gSAY0}8v#>!}5iU}20_*1*e=lGKR#f zV2=3)6Ze@@Xi4s4;4&tIzi4PEZy`3i1TlF$2Y-p@HJ}`FD}s0`XJ9)!ST%5L$)w~C zMc)7vJgypu*4PvdA8_wY!|~KG8h}_Nm}tBqSOAp@(;tg8mKc^hXCRrm4NLIBbQ=)v z(SoB{)53aoy_UMe#-{ z7`h!ec@0+3J*TC|(bX_8k<=2)xg#-8bh zFk>fDD{jGanqIuN5XDxFa3vcY&3wme7{g2kF+4RW$Xf$XPrzOy9ji{DLwy}@R^Awc znK3)gT+0s3xvM;>Z0W`f?l*D~od4 zVJj;yjRC&~Z3ZK$L>SDM?lob-y%c5f)nV`LRSlD(2OG4+^|+ZKUY8hw-q$k33FOB% zrnaieXH`?b2T8AkWe6Mlw#_%p)CxF&0iRR2V-Jo3^%mat;gopw`d$G;UgU0H^tix= zmIb=guU~oUE`9R#r91yrh+&l-fYcp;5IyPyE9evyuQQfK&DI~$POBOY)5e}+=6P$5 zlPk5FD2P;Eo3psWI-?vb7Ee`RGsjVj?tVX29~WPiMvi4vq(h5k5ZCmcLHBMNRJ&)Y zPuEN&KN=;PVsc-8K)>i+T$VCkch=bqzI4y$Ko|FwV9Sh@7*csBAquKz@{RI1Nxm^b z7oo1L&k`mb3icy8N{AC}a<_qe8ze{O7_J@>TQ*rD`;{Pme6aH4McsbL*k&QBO>HRE zrL(sD4Smr4ByZ1;R zaCpy6 z8HiNgNVaHv@m0W~S!1&MyBI{`+);vxQCjv_k6SRz!i5JCJ-rAr=~GKVpua z7YqqS#GVHAoH;K&M8YIZr-mo&CtSON@;Ht&mn>~`1PQwReUmODmL7 zrS^sxZ=}`Bev5dLL@|}_78;plui$*m95Ib_I+w4h%T4L7Q`0cbOnTJJ_<2>%7ZsT>AYh#!#!|s4sux6Rod(9)4(<9(vHZaqs_Et zB$;W1C^um@J=JikFtRy7b1XPtmUYM}EwYR2sx)bM-(!^%CnO!Ae9AwA_Q!85j}Xkm zEP>#1Eg>VlX0_=KYh?q_;uu-i$6&H>qNN6}j+B8d=9;Z;l&0~mL&+Oi2j(C3pesck z^Rx8v9y3hqSbqNKL>`ZaLN&uh;`J<865=O4 z@p?g%#rt8nQqgH_h3`~QYeyz}(?V!kz_10G$;1d9}b9nT#+gNaoKNJ?5ztImAaON#?%$ z8Dw3Sew;z`ly2fZ4N536;T!VGf^T4dq{<*j)Y${jf@8I+c&J--HY|f2N0c24(^(C1 z+&<2y4HU)7m*dQ+gph?yOFu9QU;`l4Dg|Orr&ZZhSK7#O-+N8__pYC zr4%@U^1S8opdHR&>5~2VRaP)qaXCAGrvbWwSfB|^)3w-i*-k-H@CqW9KS+iPU2$-M zZoh^w1XRA7e?86OL0vWH7uf9@>Hp>=e1JWR0WCv>)^Wqq85Y2$&8pjTWwr zfF}qQZ;T`?|GJftbP$ruS1kIqimgoh$jsdQRF1&aFc^k<-PJ<(rK$JE&4hgaAN;`E ArT_o{ literal 455944 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

Sap{MQ6vAN-~P zEG|BTY6nnP&j{8Z6TwdV>In8F43hsX1e-@Q!+!kUkAhSLD)*7VTQ0y1BCrC2x$=ZUbq2a z$MXCGUgxyXAm9zAQtrSda+0qU~c*Jn{Ue)Z2nbcJc3TF*p6^fT3le zWq@n6>f+0y(}kfUDBWln`Xa}SY{UMr4={AcX~5758vpj81FA5zjKR>GII^|O-x+HD zi~v;65dl;HPzzvf4M6Wl(gpzf9snrUe>LsT!yeN{CO_@x3HEXYCpy}Mki#WSOjq7u z10gro^o2nIDR`Pnq?I%^#VtiW&Xq`up+j2CZrDD|rb{RfKx-5?Yts$e_!vANhJHwP z3WKQ73Z!e}Va=5;dP_G-QN8le#UB5DgA`TFZjp8xgs5Btu#h0=CK95Cnc}8P$nArF zH${t4i@VX-TuC!hkSU$RegW<|J47aQVT*J*KG;km)OyBr=UNYGG;*!FXfd8BwHn2E zq(7-?<7>A87MEh}%YHdE_5LWfmG3|JM5-RAx)2L1T79 zHNui!Mnr3N4ISX2GDu${UhG z*evq$PxN~2rS(}TM|WEz9~ld8y_mgPs}Vwi-PZ`LB{xED>j_@XB&Vc0Q6j-a*Gw)} zy$I!v7cN$P8z1q)SNjA2X!k&dS!**U>x>es{+jB{j7e{&t{13>j6|rq6NEHOdL!J$ z&Q9f0o_$f;s#fK@bfICol8-imL=6d=1*;vg1glKHHL#Hq3=9MjMJ5iq=bP;znsI3< zWrc9*XJF719?J!*Ei^=TPirGpgqao-k`k?FIV}f**p#P;mI0SCQ99FXg}$jOSEXDq zxhmHlwUn#s@r-g+rp>C$Rfn*|^f}EGi9yqX9W1do32*3f)t4jigU^MgcoDhk8md?p ziOE&}$r?;7{JNI9y5OHm9I5pb2Yyv!J-}lLfjf{!5BPN(Pv{9^j<>+T9zcX1@T-~- zA$+R;Kno$k82A+>RvIUS;bfUyHPYoSL>nuSo^U8t43d()MJSKz)2&cBi#`w{e3%>@ z5#GZB$HK2F``02+Ed0vqc^d&jqWm^FIOPyIV`5E}^0NpOL$1o&4$*v-S`DZ9Vx$3C z$yHUFRR~lfJq|5Y-{ca>SE!AL$`HQe@c!l7RrmFe66%4qg4p^?j)@Qx4h=bWGG`lEyY6Q=o4Ls{1JSzf;cnHw0`kDakyl)23 zdYD~5K&NO#>*xm2LaJ(wXqiy;D3J|*#G5UmJEi_I6vxLHez z!n9C({WgHwA5#C+5H2mDwU=)vsQnYzjStk$qiQpQ+N%tpmVk%`YOjZzKy5D1eiW#6 ze0fl-3R~G|NE3;bur(TtcPDH;T~OPdur+>As|s5w7uLd7eFz7XjR;#slx7!Ut0|}| zY$d{#8-XRd2wP2|Bf{4AQC&Rf5v`s8@Jk49309|Yj;z5d$yizQVPG{{#;Ui^ zO-#m$klo8zS^mmM#)_bTsSjdM_*!7pbm@yS?u6R#v;k^z=(B3N2uEng)(O7hkD z4s2920qcsd36J`}89e%}6R@uOZ^6-Pzj-*?{AJ;2M8L}0Q4|{ec7V|t)E_l4`YK0b zOuqQ-1fws4-T1(04-(dCAf$oODR2`Qy@Y2!3XJ}*gq50qK_iCS|FVR21>p@{!unTw zHRuHxW(w`D0_X+&KOtUrsPuNslB_E+VrA_F2!z*_q?0owWB450n?30PPE zw-D`^ZywRIL&IN9z{;Ca6sG-_NLU{-f?C?+(Gc#p6V#F@D?U)$gM{^V1E?jHb^^6@ zzX`G*1#16S!m5MXZ%)Fx0f_Z~hJ-bda`L|tR;+-I6AUD<+C~lzRzKv>uzRpdh&BdT z{rV-WH*k)u!Rr6}64vtnu@cr_fBh2HasRg@tQ!GK&GJ=IddnlV2Y>9~TC8HQckqTZ zsjW?TCBr4vD{nJQx*hkRLP0bsel=E)bkLK%&4YvM>RqV6Iz3Q2p3YHY*Eq&qsH!F_ z-Gv&wG+2}dO;#x24$grlE3;N?-15g&087nR0btADEh#-}u?o4TeHFltXhgc-D}ADx z%~LEiS=TbANpBLopSC9J^``+#XXikb^+!-+#Z3USPwysx!<38}nnJbJGq;|!S-ldl z3{1}QYhcZ9sJ|rI|91qZ`GQLG!3)UNv?up!XkEY zwpqKC-?XcIkHJ*+<@XGy@t4*h({AmimcEj9>rm2e)h-R7yKBADNT}0u?baODsMJdX z-onSoiL0N2UEFqHacMyGhI)6G25bxWx^kS`o7Ex}cTzom@)*dbmFo{rA z&A!O7V+=H_7EBca#Xz%P@zQ|V zbjPaU(g3y_rS#)WSp!;^jld*nSLuGbay!GbSwW{3`d5;S&!+r z1q>lr`)rirK)m{`oL_!h0NOayZ+$uT;G*icB5wx$R#u4J=(kenIP_c9R?e;{(T{08 zhT8%*C=*Ug`pPrKZwo-Cn11U{Oc_ui05Q5P;IT}l12{9r5USo5u%TQ1R#1vhzg5lG zR4~9532^gyo$@Ft5@=WcTj1SKMGf$t1HdZ=Z-8xuHs~k5lHmd74QrV93vPSibyCKN z#{hswI_$~b;mHnbp!a8|1$y@a^mfomEvvIzS=!kxZxF};2nLW>Q+4H#_fb{RFUw{F z+%Pj-?Y!O4k}wNuZO# zUAkD{OP<|2O}I;Ew+QWufV&P4gS(lqNMMG$>R~S0a@Pd0%5xZ*v=%CqK1voA{h_zeSMu%C9rz;OezG=tsdSSPt6HwOIm>BS6oqiJ=g^!htai-X;#>BRtc_tL3C?Ic&^hJj5nlwS4FMx|G}*Qtxr zt0`#YhJj7|Mx!nwSySkU((8w)tJ6|?rP>a}0b;p6nm?lSDp5jlDZP^Vi`uLLpY{x5 z)r2BSuYD<@7)q~TK3)*3>eHESzM_8QmF{*Ze`9*A7D}(r(FcN>za|HVnoqI7Jt)2Y z0D)pDy;6}^eni-iDDNc)r@Wox#TXz~EtppjC0V%1AMU-ny-*wE6gTI{>!fZReL{<0EP&=?sr0J1Pp%D|sH$`DrD7_vyJ*8LTx2w{tUI1L_l?p(+SOA6AjnXSZq8d*}=~bNo=zgoa zfmk;wK}{sfvJ$`2E8+@)3QQ@Q(knd5ak0SNnac1ek*qO){9=JkF_d0G<4Y*LHsdT7 zPBqsls|c$a?Nf=%PyOfh#WSZ|0gMNWbGgZHJ(XY+GE(Y<3y5`YmX4XEJL-`--NAE$ zmozEK<$wR$Vi-uN`XOdQ*YZM; zD#>dsDQFYs(Is}+Hx{bOA<^^rPi2+nOpx6pGRMnlP>ya8{C8k1nII=!;gQ`bP;qV& z=6T`cTqmL~+jn^F?GST{{`V8hvnR;qBQj0-5nfB`U7gfN>wQPqY2eDR{P&?6Xnu2uH>GCl8_p3tt1Rl%qY9UxlZ{5rGu*S?`;-kS2MpW zIa%xsOD9mK(6^f=_zAuMrTh|)3G%BWsu6|4)l9Bwam1JCyYML$ z)shZlg}y@`TnZW>AmO#wmE_fXn=b#3)hF3NVZR8p>xVo|*Icv$DPy2SS{g~F+`U@<-ucalrs=a8Jowd}$ z4wHcoq4Gr#G=CRf^CsFUNxjs9j-$7EE;c32ca zb=1@K!KjWC)5?;ZTUs9!^ENuSp#7#N^%c^+ebZ4W?sGEn>pdqI<<~cheDj&_aONwL zZz1_kX1-II@BQREjeKV?-&y!wcn+&z|3@hM`pTu0(2Ari0!58gQGx1RPwMMSl6@w~YL1$*++7 zCX-(y`8AW@H1eB4er-ZVTE6H%MD62qY9Cw5FQ-18E4II@w@E4=Jv}u}J(ykX`_Nl( z1oJDVXVr)$t1o@MKAB|CO<0--Z*~M9P76-Lh&Vf^G5AP7o&59~X)8j#Dt#htlr}qI zL=QIU4rL#4;{NJJ0`u-*x;rRhDD>tmx9@bxi_Vz!{10%3VMcx_!M%+UPtaFY5m{ zVfJT~_)hz~lyY!JKSZl?9=Crczm#`L{rquA*}e_gLCVgZ!5NwMb_7`LmKPTE9h<+@ z6$)ignl8KI&R!RsH4r>6v!8TscFWJ6YybJ!FI-5t*#4GVTIWQFolYe?h(25xmCAFQvY6YiFk`v^JyI{-Imii=@Hn=HRTsF8fIkdUh;0S-ImjiF4BGmRjA; zeeUdC_zjBrsEg)rB-z87ZHJm?CAQ{2+KZs$kE_C4{QQMK z`|)CAX-!(O{d2c;((T;k&fbS#5`nY?#o;dd25J3Rx$4pwKue45M~R1q zlUom1@ZiQ)-NIt~CSqd$hP~OAOuQp)M%P(FtZYviR%gMAJJFp}OU%qabK9pD%-|}V z8nhB({@j8Gh+vkv?2W|5&V+~W zQ@JRX>WiKG-O^EBBdG7^UG~;7U}S;!5*d}^w%56wyHOA0xSmSi1mjIo@E5BpQXE)(oH_EI?0$W zbpZ@U$jX3%#&>oiE6C*mmP_KwWp5dSYWnb3yY?eRHx*h(v9sCbtaYP;UMjX9LZRk& z%>Kg#RH!aHfNfo|^JK9T9To#}vHeq2)}VWDdT9-EbPh6ro+Z__Z*`}Ft2!z`_l0?A zhv8oKM%JC#Hx&IYx4bCvmz|dsxk9VYpxRqfY(L?an%W!Psf}(Y`ttL(KMh*+7vx27 zC*GD*Rg95P>Y&ffZfD~d`PIyVB|rN-RDZV1e%NhCyJ~E2Ol@;Jo6(|%*WGgKy`j2Z zF8g}>QMc5LFHO$2G4i7Hr{7L{iY16@vcD^};Y*{lX^gxu>+w$ycZNbjVmT(N&BRA) zgR@b7HGlK%RRN@8-v}mZcp}aQ`Ps}#Pb_^HNr1lnBdLL>Ag@So-aq(MD13%}Pog(x zF{9t%Y?2o``W4xq19|&#Bv7rA@4%Fj|N9KbL`*5j#yX_1lxML4Ni52&eBy@o(CS`p z`}#x->MRiyO@sXE@T)!<@n)$047dG=o4oDYQ`^AoLdP3hc3k2{$_u5&L`=(+;1QM+ zWWLJr)2;JbL$zm%sM$9A2K!nB>_{96kts%Ug7G2@s5W7VpNpj{HONNkW{31}nlve0 zdZZtum=1&8Wlg?M_N-k~ZU9)odgxTJKbARO`H4(X9&fLA_s^{GNbh+3pI+vUEF_fQQ4;t-sG1Fbk31y@y9j$p`sF{7f<>LQ-kbM+J&aT1g0uR< z1pG_Hza;!i#=lD|F8>+<&o)?!U{Kh#q7WP~)XYqRpJKjPU=gn#$fG-?Pf}MOTMd4316Dci zBlG68`}c#<<0++AV`1UV+Y3DIfPLe*_zf|BkChK`uB%USfM4*p5&T{t`uBH;a=(1B zVD-$i!0x#a9@h)-ZDSk-6N3|yKm@3=b6NRp?G+uc$+uT^NUs8budmi>@L>bqCp*~sBiPC|{!Y2sh%b25ZvD=wcl43Ab9Jw%u zsQFT1a+{L7RkgWYV=&#$@bT%sPnM3L#q{x?63TMKa0;b2wGJlMckWFZHD4m2sd!dHYg9(wurS|fD{x4D=IT#;rM{8Oe(EqV;O*v&qaI)yX)>h6- z_rpD`&gXxO(w&FWb*|HDT`ym?jnt2G*dTH$v_-#9UX@M-32WoLxxfet{^|=Iwp&>E z8;}uc7|9IO??p2x0Cq1#^*LF6PNQdi(fw%adh#_2`5NB8Dm~;s>{$6ch%$br8q#9@ zsi*H^cw9cQglDe$%%Z0zkL&3>@h=8fRU-;^>dRA{#~2@C@Uaz=+}d)QR)_ zqSOIVmaAe^g3WhSl)n#ab~{V&gBZ|W?)K!J6s65*gA?Vn1ZOAXUwCa`fosIT5wP$I zow$My-=WrXbq1%`cu33>Dk*51xxO{a3;Q*l>-EpzA9Js(VuYEuMYUy5^`HvhOtz&WB{AKw{Z+f%R( z`N=>YP)44D+L>Eh2RJ)h^Ssgyv2zp4KXP4h4N{nC_kCJ%?d85RMR{C8#T;V2IE+!E z!_mm13J1BKg5rGs4R4U8 z7K=h)7{(~P&F}e5tPo$&Oyzdd*Fa>^C{on~ck;_78Otij$ znD^^3!Prz!&^HZYIH8IztrSD262aL*1OcD(@xZ>W^Pm_^Qp6yngKI^p#koanKL(%8 zV$cC{gAr)u0SJ|0%_@>^ar*e+sC)Xc?WNb4;-Kp(QwD@)DUlHZ4wzeCyz?}stfQyi66;jB|b7T{~#NK@F|l1oZ*ah zx+j*ZHdvA`=7q%2anuFwE@E1p!BI_!bvH|s*FwddejuLwClD9qGk;AFp*RF(2aizv zDQq{R+q9w6LkOnTk1IILf6DHg3qn65mUwk4vymS#n*!RXgf;kr96U_{cD0JEee0u& z7=$(G;Ejc1umpPC#aZ59Nv>X!JOhQufN0DB-ODTn2RET*Lm>Tke}~<-%}DY_5o9Op z6^9l=d;*J&ZoN3dXKNq4f2_ZY!N+H?l4z|ClTGwaG+7$qAy1F$a5hu-!*|zBwDvez zPY^QfsP{W;4j3vs78c4!5(p)9>7buf`ZcxJ253)SZ!^_inSFH)c1Ri78rlP!Qa->vT+UtOq?I83!CA#!MiT0$T zASs!a4#Lf~LSFI`a^)p2wL&SjcYexni2dVix01wf5csHz5EXb3f^clt*4zgc~5QJ-7Y=R4|ioBG_YK6lX5 zSpVYOHz;+w6+G;Jhtk3ya^0jk<>a&XvHER>&&(-&z`Fy>5ylx>O*5i*+iI+-u6jR0 zRh(N#*K7J60!@W6IV$1L2p`S}(Hhx`8!&a-zFpSXbM8 zld-#MtH7{7iBjgp!iEZR%E|BSXBnVAj2=rJw;tUW#mh#LTfn4-Cs0rHnd<9Y_4yt3 zIY505RG;Um&-2yi1@tu57h{}~LCNRhV}y6Bp=Kbl!x_)goN{tLXFQjPgju(xFbs_H z{-f{bi2jeK5*Fs2mR8ViSR#9q!rShmQaHQgLYgmT=cKQ^0)Chaq@C)-f?bz1@$OyT z2ab}>#Yu9`q^g8b6uc-TStPoUg|=t@T}lBN6D zd3ZQkyh-wk%kjw`odmmzUfkLY9hNiyZNn77CMN6&%7Z1b{XH>w9;J%u(${YlIT>8E zxo2^|iVAw-FI-X09jKQxi468C2)o?01N3AOW_ozBwzY4#345& z52Z&2^8}p+Jw~JEGzdeyIg@>mI<1*%5csuFI5Efvd3p4-foLnz3E1)UNKI-h!2qAI z868PJyAoel&dWzJMV7egdY`Swq+ujkoRsEa7_UqSEqL(8t_ zE^=yR5PZy`&IE(bGRy@2#XQCmJ;qYqxlDKJ1?aEUeH&C~to5AUpC)5J5ys-A1~Jrp zg*UZUlv1Rdr@1;qZfVjzSeD*Tl<-t@HIC(K?g^S61%ETXx#k|HnNsi{!HcwwEmXZZ zQ@z1^awgMum`HXD3gu$ED9x`x5OHppih&JDqnDGD@XhJS*Q!sEe696zQ7)P$%GJ4e z73F`h0xLKIsBlEgtB1hxKm_5?w!>8EFBH!${bL~>Ug?d+?D3Z+?D5=EJVYtDj2>nY zF`C2CjjTEJ-bA7&%K6GaqF1$mb(%j8l*f|prO%^lzI*LQp|rG2l#>=S zbsDC_F&ptWv!G6%bi67X)W}SnNJw5R= z7;^I~)g-;y$9hb1fGJ6aRCGvEqpmLq{)bxf{2lo-N0Di6K6umBpShi6Puk%k^=+m$8 zN%Q{$_uoVQzcxqt6n+qKLp?_wj(Hr3%~@DXaXf%q@Cb1LU_KVrq}cXT3L4nr z6Iy@hfi8!KHfnGFjuqC5xjaoOd}M#!)X>UkI~UrW1YMA}H-znFOH zgzs?0sQ#mUFSZU==NBXW^PHWK7m+jv22yDzl z!=ek==7Y1gYF+t2J&zT~Nk~>Fyf(p(C3qF&RnYtrWzp`HnJpWLY1XU7=G?;MZQ+Vh z8N9?H-}~NSuUrbT7)((=jG`6h{RYXBir14QC}t{N1F?wBK#=Xiyb6r7)1tI?{6DT}h%aQMb`ci)h%vEF1^2mkF9;wa~YE3SYQ4!SKCxU`YE<$!{{mphy z`&N&=P7K#m`-NiGxzO25J9i9pvijo3-50O!a~q+ob#61>y?yD|-M0~wYc1@-*LwVQ z3BCr!4w{gji2ei3qWlPwB+DnsBx3cSnpT$L+@;81n-0B@87O}}pzon%`3~@~%fBxX z>Ug4kw{w?XTxbu__d1u7O&=rVC4rYbsKya5S>&0IcWA~j-+b~dB;U!*w~+ZxCf{k~ zJA?U7W4<#)e`^KOPx38s9ji?&$NoZHx?5_?nU>UC+md{$R(P!q4F$t|4aINcWr3vH z5IwCgLT5pN&$ka%E>w|y8RZuwN8+XDIu^2*qfxq@i04kA$O)*H{-msyfKp3nDb-y!-pT_DHdxk;g_|-qSe#=$CHF#hO#z0Le;F- z@qy0Y(YF+$o~zQbA#e+akpS12Bwfos>gHguzRTn`#m5%S|tZ!uEiS-)2;SZ=bH;cK*nWZ}^82zoZC21px z)TE6vY(0(rxF;J3dtnc+pSm}9u_&!%e$p_utM|jTY*<^q9h1iKb4+`U*Yi&m^y!4* zQ)In6xnlIciG%XARbT#Y7v8B|kNX4JdBp1?-;{TL4-EP$t~92^lua~Uo5iA+;0 zWqirSmvB{%hzE^9BHVO9k7Wk#!Kxe1p_;c`l`|afr4F=|aG`?-WigZrJnH#pdKOR= zJV&U{k?M1l`W&r3$(kF5qf3YB2~7?5B%2uYK1O{OsZY21ELNXm)#o^RvZ}4hseqGm zQ-de{iSn~K6?m?sA8qm!lXw;|({m`2O1Z49xU;I@b$T z7$&QwTvrlckSQIuwQ3$~PADi&<; zjc@&gGoL>GV#apmVsJsbelnneh4@S?IuX%F^Lg95bbkTFqgJTvs&WEGi zjS~>L7vT4{+${WhbF=a5&b?50ZFcS;ILmW$@cU5iMfklZ_q+I=oqI8P=TgKxig5`= zxDq7g7B>WL4mb3tS)=#L zud;?iEmJ=G>N65;SeDOrLv3poX^obvc;6f3od)ZVnfHizsX%p$chAm+5>e+FWe-8; zB^T$D(sI$Ja#7xF-1P>Npm8*MG>Dc+M>IhWHW5cY%Q}+aUqffoG;02}qOuOHg^fap zm);jsr+l`10KoAcG;+fd<}*lT@G0dx_=JJefSa|Ir9ApONEVxahy~=OB`%L%v679q zqwqCKibVPwkr8q!lj;Xc?x)FbkSO1dBPm?lC-_&EclAwzb{kjnkVoIiNhkFJ>5nl3 zXc`#W`sjhq7W8*E@U!;IT!#KypNv)n@X7b7P{8I9-Ta2}Ue%9-@HLl>Z%{o7LpO;c zVo+hUgsQnza>3**@+7Qz8QzPXA9$qwB#zC(=3PIHKiZe`ugRiA8J7a05TP;t+1cr~ z@(;cCy&@V<7Mh7y;wo$^(N=Up9E-*hOsLvSi3D*_8tVk95$B-jz(!dw$TN4fj=;V# zISly~gQJclejm+d_7R8rOjnj@{7#FIL3I(AzVG0%`^|N{)1HmG}$DQK|PImzSXHW)rV6o zn`#D+@>6_`YO2VBUjL9`obm?m%lBS-A2wM@gq`5MyJNgO>I+ndL70q12X@{)p^pdbR)5xwoR0iKBRCSe@9m7S>xrT6srGpIIyi8#zJA862fP%6ym3te%vf#br01* z6uVZ(bZq8W>;0^T^%??RPZ|ceKP(+*imt>;1qV~o-NR_LFf1S78wXS1mrs7QRv0#! z{BUrI4yM45Rtm#rkRJ{%;b00skFuJbN2x8p9<3uCXO{Hj=)8`5SQ{YzFpAU$h<_yl zVRcaJ`>^%G1xZ46Qtt(B0Vlh9+wn}mGXc*;Jke0;AXEBeWdYY!b^2=385?Trd!J^^f$Re2O)dmgn@k)pe>4a1?yfqcq zg|=SB!UfB6#XLHen+SCj4qx$6g@M%clia~s++?iiFB;wfO=Yfv2K_}%&O#OF++~Q9 z7@X>mnvB|4B=1u7Y0+Lf=Qk6uzk5E3U&RL+XzPU?Jh#(+jaMF(0lm5vXdc)|B)z(v zjPjdnPFtVu+8FwD@K^QeF82LdTuvhu-NNA+)QePdpl+%zkQPX^19U2+uI9w8``fo? ze}eh?X=wEBf$=)`9vYD_tZ>lmS}=C1tJ=LM*VXwX<*&`tNm~s}x0t%2-dH$(xI3(6 zon&q->!Q6OBF|DMgUCLVagzvv%=$U)V(|N@_;JIi1v(-D@klo@EC90CM;t>9(M2N*MS zAW5{hLyxBb`Xpm^h|s?p?%blq6x^SPc}L2>>!I1EvjJoO>haRh)h-kTWMiXpu#W~+ zm?VtnxNlFDmfhy!`ZjfBvlp66{`Z?PHDLg27ej~HG0c-B>mY$h5;QdL6Z7`q{OFMx z&V#IdU_7}TgNpa^B^bbRF$m?Rlh-oxs>K+Sn?-*4k#)Vk9ZTL+?VsK#u%SAAZV0FHID0Z?6QB?_qq`2?{ z{X4Du*0SykWn2A1o9y*;-2*e8U2m%e%G$c0WIEJ)k{S(G$Ad}s9^1PnpD?T^{T~mf z19ACS098HO8(U0o0ad%D+My)FatW^iRQD6v1#{TJ8X|`F=8LHzYU)DnMQ7iD?LwNr z{3ji=M~ZTBis%H2>Tr}@=~{tdzy=W0&w-~mI1Cf7AT5GhaiY)Yja7}GH2YG-Pt@WM za*^pE7C$Kx|Iw++XLvz>^`A_bor~~xga-toBwfPOYh1EB$Bt&ykEi!&uCf;45rFuh zAyDO``enFv7Eu0NQlG^J%%vXxfo3{f`foOz?L(1gH?X@XafBOZ&i7uzN}xf#-lGD& zAhi*u)Kl~?JQrSa1-pyuhlI!dr~(PSFQ63?iRYz=RI8Mv+Ks` z!pwJ%3Qycjrq{RFg!)kRbYc4H>B26E3wG2_$IQ_m2)-W#^7gfPu)-=+%Xu5?JBUHO z(lCC6oHvnL-b9+A*FX|Mo&{Q)W^csKimSc8lXeyvzVn0*UE!L$pFBJd;6wuE4JO24 z`~0a5Y&D9b5nJD<{k?otIR;@|hM7X(GeBmjOQa#5;5Yy&y#Ihk#UM6n=_QT7WYSC3 z7?h%ry9QHLF-`?xjVVt80uOtghsBj3VzWV;M+~$JffQO5zs|fM$bwuSV;y;gT80n+ z9f{$g7>cMkPcF3!xy?c)vz8sEdbKJ4L6Ok8&@4KVf;EyiXCPZBQQPJ^idfI&Douyd2}_Dw zx>DR6MG;D;Lgg|L@`T5+^?*Wm0L3E6v=KPhtO&s(Goo!MLPqd9-p_*MRYNTkcf=f|B*xoMKC{%t1&XoaFVXfjF+tt@~R{* zL;$6Zgubyz42>pXW@kHAp(?F0M5~@wrLkyT7fp+?GfZda`$Xbm#txJ-l`DwSDmEst z4t2^?@ao2Dl%U}6pg@7791}NzK2#zeN(GSHI{tbd{|u@E#3v2{tHHE#7K=s@$|~9I zJlbB$UYBIa%Am4^+EGu*exS0=lD&qKeI^nOmcn;eKy7C0AybtZb6A=WVC1`$IPhKM zk=9^A!k9G z%OkD!s09?2<_=y!k06i|re4O1B1RI%JPDOg<2DwSmc$&C)*Nzag}GW>skebo#DYbe zcv{~>pw>IOO^D@XyGDOQgnk`dJ?4chczdOXF&B@6>g=3C-1l58Z7i0;E!2xKu+5(U zeO~DRoz0YvD9kDlA7+iim~XPFI?JAjJ$&6pgM>DucOnf`7_PG$$A|R?kE3YwDGS#9 zYt}ucgp6fe`XcM2r9Ww15-HVKJ?nOqb=M|NR@0TkY}}%r6<57F86~u#T$Q8{I3KPa z+if+HQ9fm9u}RBRnxZL_rH}NGpR$|Gc?rCMVpYD&h+7W8vx-d#2$c&EAySsS7$>#P zid~6h+_rUUx2>|YAVTnT`ZL+UQ(J@YY&4C`2o+4uikIEh)3v}#P5CJu6)7-txAGJ$ zVnb`$0CRz1+7GOuGW&#vKEt$TOkAk^J#Vd<%35~GrFGHfm{>6qD7}Z5>=muIc3X0$ zIL5&+My?`*Mdg)X-z~KO*OW+u!^-)@rhm?Og+?P3-`TEwEL>8SiZ*` z$nIBW3my}i1q|OIW`|wvVUA>=#?y1H&HR7#1GDupCt0g?y&gGYl*31ca3aLo=YB zUGNy#B?MkV+!D!$3F&qc1PTG#6~hbgD_%&Pix&)ZyM!t)28m+az%Q3%s%1#fN_x-h z{LFZx;aWrk4YA-0!G8hagHY=bEJ2?vgo;a1@Tz304Cv69S0&+6fMI8w80g?Udr3ZUfVj{TmqHasu#{U@EbYW#dQkL)i#bYtlXBHPWr%e+Wd@OS zj=NI6n^ShM^16vAOYh;1(M$Xv0+{K4@|wmJ88n zt;h*@@@j=@8x<-Ds7RLxI1s@NNp>UDNrXyl)7q5JXaI}F!!VVET7X1??(9~1D5m(6 z@Qxi3jw_ptn54~9Q1v#)Bok0)&RX7oIXe~LO(0#h|YeUWH&9VczUH z-;KppyYzB}3RHubx>*chNld^{dDK8SCeu%!Hq##v?emCsR3qhmD$)b|e@4L88N612 zN#0}l`CxQ=ES*Rjt{yFa=6XTFMXJJgQBO5cIUjWu8N+^u7Yu3+0FUSoOr7InxHSe$ zbzN8mWi7pi*C3o$9{<)`%}%X3mOi2Uo&{kk>#G-YzB4Hsly3nJEm?~yh~)c#A=#L1 zYBd6tK+=HwD{sqz^5jD~g&57vGacI_j11Vm%h4>b+uB2mx(tJzLhHzwBi>w;c6199 zDtEzG9r5PFsW6iiJ#}Z&1+*@bn4^Wyrz9a(q_O=Mn*1V~4ERj#>yPG+C5bvy{{fg& znL^i+u-Um-cr7Fbz7PVHtcbRi0?c*We#=H!<{k}|nj*&)grp)J6t-8Xa1&@oimFI# zGZoUT=>HyyM|mE>c;Yn880V~pSp%SZpc5~h?Uvpn^x06FXBbMT8;M(6%t5b1P>9%K z3?+qC2X#*47)r>dNTev|F@_n&p%SdXE7C5#Q7b{K4p=r!D?U>V_rplL+{4Q6FqNMkbRvS{ zB)M;_CEupu$9G|OITtEBF^WRfk>UCBwKnA(Fsvi^8eQHF87}0I!>5bFkLrPuYi|V5 zPQ}0L0Je7u_3yq1B?X}D^WGhqV1rn=4r1Z&6PVrwvG95l3%>=ia0A4`>!#x>o8AT> z&DDpb&91HQdx9CHNIl0RIX%Ja0C2Ymfpam4-~|8|FaJQn;spSAOZf_q?8)?~t(%bT zR?&G>d=nv5(QK;_pz|2sf}?`}*K8L2XbA4S)L>d00N@N1nQE`%##Y+bnIb;$&@zyP!$ zU|jyyl3)wRzUzfbJ24k_aimI1`yL4I)(A7@l`fp>gr6Z=VHXFgPtuFD9b$H%L|g+D zL8=~{hOgemigcGyc?pWtEp5i-sX}ElJe70d;gPmNuNd+6nc}@ARA=BTWwLS<$g_Ab zuXjE?l}lNAvEq?Dl*L^!VCDS5?J_H%q z)%ZvVTmeRuTt;RanH~_MxH-(xsvE&rqos{3u!195d^0Ps9zBA9=?Bzqx@DykG@^23 zVufz$R(=y90{}$u%d_4> z8rh1%FnwUETgXnVl|G#TGz9Qz2ws5e85I;l_} zK~;dphQB~7F263=Rd!={}3mrS}GtC!EZk;b=5n*DhXFTF$gWuz3lv{TmH%jBs1 z85_v$iVHm?Qrll++alv!>h$1CMY~E@{sT;_jf-}hhc87d(CAh~I;l36`|hOXJwj_k z(pGOacDeZ|P&UZ9uBz6HGsQwN)||DttYV{>x>KZ1_dAq@@-R~Fu9Rt3X`SVfwt2AP zcVWqI97s3J5-90gSn+Ns9oRZ4QaA)fJzKH*0%uUH@Ld&)58nVw#)Zml=%&*SW}{)Qbp8W#w&c%-2r(`)H|DMY_$@#HDtUF+x0t&B5|> zmeVYU`*geo9fBWM%;4zs8c$x>BUk0v+9m^JdgNa7N#f)K1q=zSC*u(T#*5Q2I=w@U@i-(m$8* zk4yEB%XH^*)roMma3W@d{;^SaHmOd8YlaiyTJ(=?y0b%b&RvUzBZ~e*U_A7R$fQGu z06+aH6cXgK7vXx0l>^eDPdWjfd${NC$a5fhUd>X_HBFOokjUa_{hxTei}5vD(=?)R zYdSA2;(U1$G>})(uU8mzTzKuNMG(zGTUrRzf`8WYKgG3G_4CQ!j{eDwMlpt5^#SrF zAruZIKs^f&Cj054j$)jT-xFbVwvMFsa*GetMQfqpdZQdg-LUX?&hZQ? z*2aQqwhA$IHB>>+8z5*g+&aqUam|1TwixBnPuH*#9=HUBBBC%gb?%7%u)aQn3hqXa zgp*^GV=;IEX%9;m{I{}XV_D)yD!a*&VLhqx>z|WpE2kUpANzK5uAaZ0+&M0@yjR7f zlnQqA?2{*1{ru*)sGpysevF4_E6})XldE zD3|HT;T%ei1N+GAjIC-+tRkxyS}ww6dV=$6spG&6EhIhw2bVYCc&{kmFq~LG^z_cj z_z2r@q2_!M+R7XWW9AjJFE}XYw-MAz;3d-=EvmVkn4JXQjm$6Ml;|8Hy`iwAF=tF3| zttGL=T1{+GLYss)YH|w*E1HgC?+^Q36hISKKvb~{B8wd%(qa>})S-Yin#!GSc z5|dS&5&}Nd1?-Oq{woO^g+Y-foQ#(_Tj@$XDHXIN$9ebl@yn0 z(c!QcwCYHgj?Qm*3xE{12$hA15!sOLqGzG*6b(QirGc2jEr-#p8^kOd1vb?&*83wk zW@Pj_igrTzjPc%6^s|sx7Tv+4JGAI8QgnIrhYQ$XupOeNmFH&|2Llf-CBR;v3pm9i zwP?F7Wh1XpUb|#n z5Y_Eq*5*7?t(J~z`8Ex2u31YjtH!+C>1OM*NroTCPv<=M(SX@ z>_QJVVXz&8+p8kmG14|F0F=N-N*T!sc&}6LV=@D^>-cch0Pi+Tr?02_Bjv@`MTUm? zHMB-jm{o@tUw^bjY;dT<%bSp0D8B={l%P}b1djNIloafwmX2FFW9b;GjhrkJwl34F z-l4N=_s9(t0{{kU}7U6Z2n<|4`tu-7lAXFYfB@s8u;|R^x zC$4{^%Nfq^>G%)xE6%IZVxLyKzygtZith4)ax9;yiVY`pzKh$#3XiR|`!a(?gK=4O zMmq!h<>$2*4JOp@>xU_90!?9J1oz)wS26ldYK%D6M@>?N3k-6Q8fbYA%8s;|0U7d* zh$CMNMi2+=l|~Q;4!xNW2X==1YYB9Cqz^E|qRn?sE{qBj#9Etw0VH9uE0!OkTL8=N z^glMRv;0=d0IrhqT|ajMb1bu0)%qszi%bA7BsN{(AiD;LU?o63Ov!TWkpt1-q#f0# z)S^&uqe*S~KgHmKKthn@_P*2`ygQ4RQzRq&;O3TM^&DQ{}~cWl)woRG+NN0 zqfNZjL_rA`&5((lk%^=WwzOJHYiqH#H6=4ZD@t%CIw#{;c5A!-_t%TN-QBv~{#yI1 z_1>5eO}KbLY`xT0gIC584XE5y^7}r|d(O;B0E@f7_P_ajGUuH4ob#Ud^1RRUyw7#1 zZbb%!P8!BUxuu6CB$%>hW>IG@6&v*zy5PpV*b44ye}QB}dU}QR79sjp<5toSTgP*t zf>+!fg!8&LqiK4fao?R66iW0}p~jdR8B3!Aii%E^@hh;a__7@2W!;9GCh#@SZTxUR zi}VHnihwo4y_aDVcxWgLI2Xf4T&;#AII`z?bf6=uJJSqxszF#&Tp?xLys>gU=A_b9}om&9ORDY!fM71dcKSM~U&6 z;V7-@gXJ~8;LzM;h5OZ_>_0;gNW8Y1b`{LYVBwl&7xzh*&W$uEi#Tsaral#!+UI40 zzD)q)!!j55;32gG9|*#}!}>Klug0&9I{4Q%8pdIi%#X14!WIh4#D!rC7czk(Gvf9| z58w$`$a)fV(BJfL`12oLzGG@<@!YOt^gb}_xBnWTnIxtVMT{|UUTaabL)3(=DU^*V+?I%amF01xxg1jYaaGd8rLwv zjK{K5#R3QG8kc1D`(+bvMd}|g19JUiW=75QzRE?^xvDf6Ot``oKJIM<1$M#eVxIUg zu8{HZ$n~->c;J*36R<zP>fGq zoDx3*=qu0uY*+)&bgO$gU(+F``ub7Sl>6OZZrrjn=2FEG;XAn<(0*kEe zN*YTZ*jKZk`OEB|yC{dVe+PvnSLrQw(^2R2-t4|Zuzxz|X6u0QCC!x9WFO&a*WVs( z2yran=wRejURaP8iM-y6=jZxd8FIz|0+F~s^v|mjtkrLFP4v$b-Uv|vnv(zEL<0Y< z>8nJVdPU;?AIh!Rq_l?5wC?`ikGb^Vjv!9A%5DC90ZW1Bl_oZ8qMbX$W_c;TQ_VkXHI0jNldQYb(mV-^ zF~Pcfe$2$jP*JJ|r@QnTMaBP?0pC7;Y(Z)YDh`=j|0=gO`)+yiG!yU0L`Kr_9G3sd z6MFIOsXIonK?kze(<0zn6)D4~i2c@i@e7;NUnTmxd)6MAv1wmqJN_*BC4IoMP-ARd6Xo-#NehK z*npRdxDoDlQLsvbDrZXC>G-Jor4i^+pFzJLvF1LHOZlHEDMW_AnFX01>4W7%NT?!- zp{iv^qoA4*sei;u+`zL$@R`kcwOuQLc{bX+x7dL{*r$D6%+GOBd|opI<2OE;Oi+`{ zBm)uM&Y;~Ol}P&9a+hBwcX|2z%;~V3%y_2c zPZ6i73eFmVGgBxQUzL4Ldy4v+_VT}v|M&QRpZ^c|-_Jj>VgzEJQi!virah^}vSFXA`M`Sl#M7VdFYMAZ?>=9yhdM>U#UuXl7dbf^>LyRdf9|>&AU7h)AZr zsESIszTtJQg@;(PwFq@BK~JrY+!%rCuLoxUOVY+#GSKb@#My+&Cbx24de!doP@=!V zN`6_}^5tL^kXs&lK;XUEn)ezZP+sA*h`>x<^aOTBeMApyICR#x5b0~IFtY%|A5QY#jFT?iM~TZLFE0D`XBUhF-D%OI*%H z9d^)r(YKUg(c6UM=G?zOgg>c6EvX?({cZElRgFuL;aJ z+uiLW0E|t6yW1vjdX!*TRSG~0($mnh4+5HVB2#zK+SnA?bje&tooTsjBO56HdTBUPLQ{Wh;+7&_J`zM%lk72!KX99)aOYwjPsD*R57IS zSI7zBCE)M<#tZQIIr!cu$;g>@Vcy8~|T)rtBfO23=?hrUj5wIY^Y1Ik&GQS42qJTtI(E z>2Iavn^b+ZK#`6anq!RQhnwK{XJ5D$LepH{*Ke% z@%n2?J%r5L9`nb}ReZGxOtVSw6}$>Rg0D6SzS<=CYLnorO@gmB3BKAS_-d2jt4)Hh zHVMAkB=~BR;Hyo7uX?~&kH>HK_%~TZl8mWeu!O`XVchGtE#HH-Ekay|8&=6)t7E%_ zp06ZlR$>-%Oe__!0AQV?0kqRA5rY)OP|-|qyQ~$&7X<_kB7hqUK?nlQmBhXwjFqZ{ z67N?ntAJ-YN!S#0vON;Atp3^MXTYip#tu7=V`gJ#uErKAD{B-k#aYjm04}Ah?JS=9 zzJ7{in_CaXVOWWKcm|=$aa1VcgPKRl8bRXv6gU*rn!Qu^Q-(7ttdBzeb{Hknz)O3H%H^etm-g05 zdx^^BrHhyL)=GPQ>EflmwFSP2_HK!N&E<;b=A}Z-Nd`jJr7f;B9yoN2_ht>az%j}^IVe^Qf!k$+NMf6l1j0lcZa|!j_ zzif8h2JclX{DfVzId-aWXaMa+<%HBsS7a}ADter6!ho#`&LE~O)PZP3QTP{!D9_Ku zjx6900zr=v^Ao>h{{Vko-5QFSx5TG+g$^PlOsWFa>FaA)8i=N6Mbckrz@ZxX1a@?P zA{Q<@hC!hsJ@2z)cqo!y&?2EUYyM1PGqYnDuo6$p070-yp~AXHxYykyV3)U*J;Eag z&?+TVV!a0SNyerA^t=X^PSvuH1DWKRd(=v($~zN115w?2OShc)-GYu(;3>h;&g;5c zm?-h4WWR9fI1qqt7~Ya_f!6gB2S)WRX1}m#92*C-VHlU+FpSG@7{)0KNLbL#?uJ1k zw#~D%IqhTiLzc5ft;=s11U?J9tZSi^6OerYpgl-Xf*4 zjLn8&x)QwUg@y5x;Twh`d3?~@FHD#HLX?PI8nSL({6&dT+93|Hk@V_@{D$G`2H4VDS8kBFn374^Nw=U~h@`)}Z9fHKOLhh=Yfhii?EFlN zP{E*S0tau8X1*@ku2`@tkIy6?8ENq(>`)CtH_40lXxr2fCM$53>{ME3M4i{o_n|l- z)yE8bZ0aKaB=58Pj#~dINb`tXt#2bt z$w<9-u#yM01clyFb=|p7l2I>T5`WXvSh(BEp*6O?)PCqhACN>^*H|itOOV+Z`5xNc!_bbM zaG-81(*H53$w-kd)B1+3&&41ID|xc)jM&|xupON}NVV>7 zNUa{Bqa*3q6gJ>S2oA7LDRnmXyk6=&*7Ih$^LWo&>^wmS zk@T%8s*R+zc4To_BeOYwKlZ;OJwu~}Axz(Xt32RjBQ=;JtcNtgva*-@s>(|*4K^?e zlVy3c^#`&@8+E|u3S(<%mF}x-gjz!N-F+4D%{J*EL>x8e zCg5yGle`D#I8ivqYw9*QZwfo#P=jU8pd!S_iOHbrCuo*7?pN$VrUm9F8i`E{)g;CycWe!UztyTjMb2{Iiy^wZq;_> zz9hl9Yo4y#<)c^r_^K|kg2jT9bK|SJq)N(!f7AG?E}@b#;orRYs{Qbr*ar!}x$128 zWwF}wNYB7%%?AR#I$G$}(Y$nw@SDdF53(vk>|OXx95Z^ASarz=yLdk0{8+9Gpxq#V zCPa(LDoaP4n*{(A@T9PXF%QBfRIxjloK@>2kbU)Bo`LDP86u=eU$Ke46wQ1&Se^TL zVM^FE*d1k@`l_og%8r69B{=(_n*15Vzo7~bAT%@Q`X0rv{wKBUCz$^K+F_zD^84Pg*Y8k1hI z#CDSEHxtdQSmGKv#L2HW+@8c}QW!S^fSb>%@cy!1!W6%lA8*mu9QOCn;gtT@zp3>7 zZ~eVt^koL3GTWI(tXVd}*N?QY`Fn-P(}Tj^rvx7sY%#F!y~h_6s2x{!GbO}Vv8Qee zJH$}M()T4SeS7UA-WFqDOr(vE@^E8c9F(sd3W$U9U$Xfn%&AOx!Hh~wj?xvFIJsT~ z#uQ7ZmQ6{zVX}I)NZyJN`4S|kvDNXQAp8dbMiX2(P47Su&gntXafl^#WGv*ZOCP{E z2%C;W*nHSdE;{u+vO0P;AJ0qUKGf#J9loNX_Q(+sqiN5Que(|{Z(R`ZhTjH;)`y&? zYOAAGTHN0>SsD>y<2adiOH%FTOnhY|b7^o%^GUOV5?*&nv-5z4IcbJ2mgcQ{mP$)l z^5uT(o^sp3Kg*hoT{=jf-B`zZ<~Dn-jEw0x??(-XtCdP0L)?Jc|Lagv-z`!;$ z{9mMTMX|rur}?J)J+w3!bg%Pp*bE=aZ_ZrX;)2LD4@B;CL4+>nLF7Ef^}|8Lq)5$= zz18tk2zmA>rayAO!hisoSvrS+1JsqxQ=j))MX7+{!&e9sbfHtSL)?GT5N#Gm$2ta8 ze1Rw^)dJ(Y%xaap+vToj)H;AcL$mWoNoyq`w*2NpcHQ$M%;qKIy_yeQMNgtryQ9QY z>iDskM7YMh|G>Go<;Y4%i~PkTWR?j09%V#0{FE#2mTzpj1R9FKjM-Ag%WamiU=mAy z(>Sr=M}AUA@QpuM9Z&K?RD>oFLwJZj)2e3YNh`TeMt_ww8KvCFj+t839{{8J-PEET zlUguX1Ro=DwL1Pl6?seP^<4brs$v2rVqzt(`@X8gT{&+<-6~aO=B&I#Dfq9hf`T_3 z#j-^q)NNoiZ{g%RKVkTOP&;w@POqiE*Z;kIS&V{GdNN4lOgZtakou!jU%zcr!d4ok}{`p6Jw`Nc}I~PjSmi2>c>#aVI4CJudT0@Kw2RK3|%R=~ukiveBtX z@_Ov4Skw$hb;^EvyCdlVmbQ~NO)$YF|Uu=uZX18PV9v*^sJ7k@0m(VJ$ zZ#N56q9h^a^x5Vs$YuY43$m=B`W{_A_w#6W4(pH??fR_MA;Ds^Z_*%%ec$mj3HMW? zeKEHsBy9FL1qF9?#wP=vZOewQN(sJ~T_aum2q3;}A$c>RxLskkW!oL=L+Vy z9;~mgqP@9OK4g+e5`j1@DXm~?1R=&h!L%T*a;^LyCm3XQ5HY`RD8f9Q+nmQb@k!FJ ztE5Sa17lrT5!rsE4lOBk=wj&*!sWaw%BJSS$olckV?GnkytBaL%Lt>oEB+~#WjyM( z+P@^P{~<7tV}&Rw>g~QFU7Io!eIe? z7#oy^JH=F`z{!S;Jwagu+TSplZV$ORyRopgOC=*<82`n?dO!b0KEH>$b$%K~KRvIN zt$c&=!e=*JS=gM4JPXpxDk0s7$V<~vnw?8v@o8nxnY)1VE^x2 ztk}QqM_~VV;m8Wu-(NlL|6A{OG#?A5E#{c*WT#lqM=KEl4HI^?|T?C8msIy-w_FYkG?(oT~>=tlxdc3Qp6B^+wa z^VoR3ZzZcCy4ZLj8SAstzcZ4tA!KI8%nQjFW?nnwRpI`Tid7&Lt3)V9Zp)I93Y;AX z#gGh>t;sJGQ(Wm;dMRZ~tJ}L8dmWcI_L5cS8hcrZ?{a|(N0m3O)t9Jn#0)0!VsY$* z5%YbZ{g^U3 zd#_>cz=BU$*(;pAR!YP*BDEd6=0z1-bw^FYHgXaTmtXbUYlc*QHJ88?$JlGwSC<#H z)g!waRN2*^{SZ)8e^Ehv^>(hu6JOcR;AiohuG{k2UV>R=<~06F@yBBvMv9NHtIUg! zCY#5u;!qGD4f~$#@qB$;>kRs?kZ%vWqW=YX2$tNtn#A;00%I$VVDDlj+qpt5hPb@$ zIo@Yu{DR8=w#~*d8iDBOA$Jw2_Gpz5ku*#4O4+Q$cSN13VAN*k4eTuAy(o{JZT{vq z@Fa@detCt*cZyDUlGf+y8ggjja+OVW+aE+?sDf<0+t*ME)MIDpckP!55IYy>IEMb2 z0lI0T9}m0oXVc$B3%w0;x?OY$iItVuT|A&&eJZ5US?ZocSL6Gna15E1lre%k(Z|b!ZzmxY4qHikPLf<6&Ukq?Rul>JB z`~M$5IDihh{U2eXt@6c!r#^Jk^<_HYK>6ngZH>WSLeKs??-$??A~gfcIZQAk=;kGU zz%I!3gAKzc;Vp?s>FgIv=Kh8%?qN~fQ0*RT{uH(de;8p3VASMT4BAcw5|cvE0z+5s6IjGbVso_qMd-@!#gI&MJlrG7e2b`nk0p}FV18y5`9)Nzy zZy#`u+7qASnFqXtZd*pr>Uco61S`o}7j=4dDxywXHM9gL!$$OohLFGz%tw}mU#J?V z*=e!e7Q!BNR_+lyUP3mXEa6l_4*s2TsWC?bgIF5yj7a~^z)4=2*Cz);&OCI0^3<8T zHV3igo>xJft=drgD}koe)ds8aA~NTz#g{Es0ul>=!Tj>81NkKsZg1NXKg9x`TkUj2 z^yslE>4l}D%qMeNdiG%bF;=n#zKopT{=h$n|B!r@5G zA0mklu!@mHGLjFqOe{JzDbY>AcHWlQEj4(pV;Cw1_1mn(%ajVBmkSqFc@P#W%Ti$7 z8W!tOo-Q;2+$l+`l1PJS$12)E>iK0Khrv2mEIJYrUE{)x7-+D0jNepX|N@VacMS7zVlN&?KP`Y|+MHtu9d>vN2C{T^doe}x1Ds~HsQdgv+Z!OQQ6xeUue ztz`-c9;b@}Qf*}l2_C150#Yqy3JD&kivrTKlj$yr|4bIbCl4?nTg!UL=Xacr{?TVG z^RfiO?6^~x0%M+6KYl&fO1}5)%rU*xwLqLNF_NBS@X2+l*D?YxD_vYTpEd?x^z=xKGLPQI42 zYFLMbwZtTCyP8m4xEj`MmM!4{3T5yeX0@rZa!F`9^jI7#u|3T1X}J4w*@H1jJ8P$DJ(L<4r_!hr}z%RSphM=;4u>|H`y&s|yJ?oC{_ z0qh0`SmC2H-wGh?-bK^w-A~v7e4Pp$jOd%glCCoHCG9b}808gesC>Gu4XK z-Y_;=;d>aphBCdY_9B9u7K5CY2y&Wgr!PjAB-jaiSMZZ92#O7|hoEu~R`I<&s0b}j zf80(lq=v>Ne(dyt;0uG8?DYJl5$BOe&F?jxtBaIgq#i*^&~%8t(Dg$jCe#%LGjq4I zeQGOvEuZ1ji!l_eS|-~*^!LzaQMRz{J4I=8hqU-W+6)z=_DIGj`NoqY782(#rsO|5Q<6gP^b?Fvh=l;9=KKlrG5jy!s0v#yb_AyVDKui zy2bFb#2tXGJI_isE4<>Hv2ob}@QOU*aNt#KOc5-@6C4y?GbJO%6nPp793KFz4=FDx zG*p09?Mz)p@)0W`+gFC}bOqMbA%ImFN!Ky$n7lpCNdL4UVA2 zlmCDFr{(#{-;RXW%LQKF5O@^=ip6Q!BLcKyaN6vg7wNyClqn#X!v*C5E-K|>1f06# zk6P2Y<92RK2sQWzu6jPDZF+^f-KmxZU z{>&;JZVM=hbtmFPCa9=@!iOc`Z2}LMUX&^MKpv5}N=aeIAl#ZuyX-yT0m!9Y2DkSt z4mn%05A$3U5wnuz@4#r~-57VMLyo#J4&}aX*F5I;h4J{US9<&fVQP|g|UP~=%v zQiS<_c!rSQ84&33tOhA-kussZGoaAnSxcm>Rmz0w&S2m1Ry*WV^J#C8eA@lwqkXo3 zQk34#8pPgfmb^5Gy%!ci_}>imXg=+-iLff2(TM@!L^zHTMucOr$A^ev*t3#3-Afca zZBJf(t@e-Xf}yH^Gn3;o*W_4C0IuvdCdcaqQfW-P%%7JZo4}|dkw;1*!8zEQ*LABg zzMx_5u}OlwCI2XIv|m@s>7$$`hAgruaUx>p%lqxjIL?Uz8|(>nmId4Qelvc`Z@#G( zXw+uXAScNabqf!LAfy#DC!b|!{w@%EJ(50NL_;USPh{GlxvzP`XOS8~D#&g2T>NEI z>9Y96zgecL1pFrCdv)D~30#|eE>fP>H@S8k+;{kISt z=o7LoY0RW(dQue)!AvuDL@04SuJ7ED{pE0S7iwRK5wQKe?w=}Ay%Oq50d(2yh|!(mK>vV`DSjtGuXarbTu#{O4YjU zh1r2$vD1@Ox`Ljv=he}03un!+;unzK{4CvOuT5@z4fG{x&HZX7U_EQvm13W7S-+x4;SLof@J7%8X_5Yc}>;I{|7)>`-QJ><;DO{5ceRzK^X5YIjKNu&( zn_+R$$YD&bKwfxQ;Y;8f@U}uT@i{l}Jz2*@1?{q0i;~?Es;C_GA)iLM(o8n4#J`}z zliuZSHuEb6ok!W}HdzqK=qMJEzB@QXRGze$5mf>sGqP9l8c$p^Q^`Ogj=uUx1!? zyq#%*(qU3cl9|qlsfwP?h4@tU1UeVuQq?o6b0Hp8J;j|1OE{EtE*#Babmzj4arjv0 z!Z94ibS^CAP};fh2o6VdEPlo z@^iy3gq(Nar;R7PZS~wJZVbe2`(`wq=;l<6rZ4kU39&_XIw9^4SOibVuMa3Enq!<3 zGZm3=eQjdJ9ovkRnjgR$Fuk8P6#D|Ag-HE=u?I#y@I}(pAMfEC?S=SG zCQMtfaffV)qsJ?U>*ygy#?j5?ci^G6AyzUt6e>rmq}A>Bi`qNVI>h&Wk8yf|andjQ z;tAVp-l!CWY}S)1MUugCN}}oMvJ8p)rCvw)YNDus>!M(Xcyd_DPpJiB6w3}ok}MCQ zy!@@klu2zp+%WHWct?uy3Lx(DC|leGOzOQ%1snwEQ8aG}xTS*xNZp#j@nyd!V`k}U|1e*qV zy)|vw}$P*sBmsLmDCyA~APl!}jy2^RK~nYDZk8P1_$$ zpUfr1CZr=#sL}WXJrI-*7>A%ahYKfI|0T?eMX`Hw51IAh!e8Oek8?kV{K&_f)15LP z&FSl9K$@NY=9?5arSQ>A|7@9qb_#`uhqUB(R53hYSQChGtYn04Fo z6U0*ClFp=5K9%v2+bgz;HV$u&>!s5o9Zsw(kJj&(@p(#ol8{A9+GmKJ*sA~n zV&+jPI{2P9tBjpWwdlPNW8*Obn9YETAGDJ51wMxmEC2X5?a4E=-}wH6vhi10!RMk_ zCN)Hn&9q7s09*W^Rtlg2n?z$2MNErGZm3^;(=sKx750T?c@J?iX{uf-K@lbFCTbN_ zLpr=T$f!ga+aF^RcxiAc0UTv;B~E~qkiBc&264Kvqlmp5Ob+jRWD*G60k4u@TGoAA zYulFC9poJS-xgzpskifOPO>**4J9!m%zR>w>4A813M5Yyc^?IzP=9hdHTptGpTcE! zJfAAiTd2{T-N^#2^?*0~8h%W}AKUDIZ0IHh-)uLJMS5N&A5WfgKV{ii?%n!T8)-064=sQL-_iQhqS-&xzmCW_7yKX zr?CFjAIWp4O)YZ0X*uy6l05yuhWPIzX_W5JFV|laCJK?{FBR+<^+@2YW~WPWT_A^( zk69Wx(+PY7h1H^3Y7tFSmB_X#g$Y|J;MuB6G3q=YN;M8Pr55f8rRMJpr53*3lxlk? zl)C2KQ0l5(q0}YtF0WI(C$*gE73EVo5AHLkm7IbYrL>AuLVCz)HK!k#(^^j1R=+-j z8ip{~HX!4YqG;NnOKB!pU^A5Dyu`qMf!6P1-cY2BrWIZvdXR-*6t=>9(ME)=$ld}0 zFw{1h{)Lhkt7D#$up5L65P9;vNc!eG@>6&A@tx-L%E=EseFHS>sS`({YnX`JYTM!xyj%Xz}%`y23y=?gL@Qjf{1dgg5!*} z{<5>47HpP*1Y%4ryXKo2f^>*f_ zpj7W!KYJE!Y4>*erl8I3u(MyWi0nqT99dNKU^|1DmwtoE{zCK}ybA?a?)HUE#n6;C zES7I)lEE3$7LWIHt?Fol+_q_hjEuhxVcOsk$h@1^>q6ZHKi67G@$aC?+R+LuNvx*Hz>w=nYp2(& zq!do2T@E!^uv{9%5k;~CM;Ve9_&2a!**znTO9p z*oph)-J;lC;#1sUxJdX{ulOgqUqXgX$n#4DdgSr9KY);YM0(_ML(R;CbX*)hq~~x0 zVA4p>zR^HalwnX!FSx2U$`AMpk3@9q!ouQCvLwp%Ef%`I)TH5rjlj*@oC6{#g3UP; zKPp_n4naArw5a)(V5MFv-jloKdMRvf zr3qEa*OI|fO3h_8Mn{pJH)`RASU6agY$6R{sgMaw4~5qCWNFwg=>*qQ zX2o*?s5=(;);Gl+)LS^o{*MlC@cpCV%`2rfBxBDVS0Dg}Yp>GmlxwM(hy>dr^}FK7 z*s~T7#wSE)E!`6zYtNbyn`-!L#I<|k8zc4a#vit4RmQue!R7X>*1`C1hjU1;5LnR@ zT6oJh8y?LdWm+nc-W+Y}GhA_1RJ=S+5n)F9JA8kC{Fvyhuj%(Mlskcr{8}wN%Y?e0&QA$GRb(K?z7NVwZVV zPT0@l5BQ?;Z%1L4F|H`&GwFC!Ogfg;70Trd^BQBzF^*7)VKwF$M_jA0$E`gQf80*r zFCd;*F)F|d>5-L!tE2cY+YTXF1oPjd>m?dsW0BS+n@4y$GeV?f@kM!E7Nams-BL~3 zEY@h+UA$1S+bKtTKA`+vYVp>T{i4*-nz9K<2l7kVFUzqZWxpcd6{MH4@#HiJFJ-@m zE$cS96oi+uvvMlPE@i)tZ7aOdO^W4G_8Z|;!}f4$$(uwbcq^Q;2g9kwJ5nt>z7h31~s#ODfO+eMpl(EY#1guNRCZM9gKEOpASQG_(N?N`)=>u{Eo+)3faIw z5Z}t*cp$ixzKENI7cbxLPih%0#6;7Kt(4bYaXiP zB(Es@yfNuxw_HpJ9>kpACkIg1e1t5+#GJ35q&FS$$n*Qu7l@DO8_>78v3(?7K)JTd zc`={DK;qGKFQ{KAr8v{4$h&#qvQR)T2?VndE-|C;&Du=## zF$s-ZCFdNg<=8i`R?b(NvK!mw$Y1}BDRV;4M@xHcj3fGQTc3S zF=ASH_eG=2d*IzaJ^ENVOwdB=SzmZ#vwQ06(^?Ns{~G;4=Lk&v&mFI#ZXK^9-QaqJ@78Zf(Hs)FTtX91Qc9xXb#?rk#A27dDXItV%w*Wt3WD4O}rZBl{H zZRca@i!gYNI0Tx`}Wg8ucuNv_%jx>bYmi89K zjhuH{Dzkahq+bVF!t^Ek*LjX#v_2w^8Co+;%~1I{}ygv0ZYQkdQ+37oLOA zkoT?lExG^1_)bzQ6zt1dd_bL8Eh^=&f-BIFM$@M#A1l}z)APvhJdr>oJvk_@(+&p> zbA1rs{69yhZqKJow2~(Y`uWhbiR3m_^{;Wsk2Q)=$-L9p^KwSJB@UK-}s`%gbgBccv->l|{rqzQ0ropL{8L zIq1(QKg8?MmjYI7YaO%jGZ&!P>%&v+N(OmUzy1?^@vff^pqU-IkPqN-ZzV*hfwci+JAX!|u@QZ0IY}JLFM`jS7+}BcG z;nl`g_oy@|vSxobJcyN$#3pkHM8WAGr>L&PP#h~-;ih>nbAO6M!>)cS)^v}Y7AWr8 zz7mO-hu0cE5S4C}JRjc6O%}`e2aj~@Wjk7wwz?5WH@B;-p znge*@7i4yTt$c_B;l263D#8&>XoJbWjIu7780^cl*32;WI1KjRR( zXAF%yn8)7QLVj@Yj!?4)Xo3qP%G04B#f`=7#E%s|`x|FaovhDV_gF1Q46kBER>%FE zN(@x=bIvSr4fUkn-A3v?K&t9y=K~UAN2Wd;+TCw}s*;xfg>0S|x|EQNW<~ME&6%#- z_>!G2j!qp&&tC#RvMD764oRF6y#;vMB87*7C#aZb$`wg#@1iH2)a?BGW?u5v-HF53 zoee|6BZ)pC28aR_nLrU|& zzxrmpFNc=d?1bEpWq&U)v@2WBJQd~-g9tYwVf<4O=l7C409AEnHOSU@NQ&j;m~>++ z2@NoecsYhtDIuSZI3=Wy-6cWJ6n#dVkMT;rA%>h~=2RY|;B^0GAF`VXd-OpJI$J{d z7Fit8neXCndIA{F?y$@}sqdUtcT$FF@S&&nF8!Xj&u&y0EqI*Au@d1YHWH zuWqe>*Jy4tO#!?UTAjB-L&u26QuX#+s+!;!f9XJUwjR`zB6ZAf5~4D?j6=zU1)_YHwvC zXG(}TAan(gU?NxA>Hj68mcR7!yQs0zt)|vlmyYOGfwn9E(^sQ!W3Y_1o zE1Mto>>>4Hcb*NWn_5G}=f505v(9#U_IlZ2Ulk@^14ajd_;pMU%m%IdDkOdNN}Y>c zLoEWwhTHQd!CNt}PSkO52+T8V|Id(aGPhb}{AQd|z}des<^Omw-a9IOHa7)(Xe|{$Z6|4mv?3`@Zit@<_XejS2paqalajj-t8S~~ zx0H>%1y)L|4~S<~$DQUj`#zyB)f~JUP?`+kJ)qFkpAbNiwF0ncxCd|0zjc%jdd24s z9Q03{TdQSok7wv|ZOlZ-6!tBmu*w@x%4xZAPK7CqQ-d+?>#Fg+vWt`x z!2RC8UnqEOX zW`WbDx*<}2{i*DPD`gROrMSc!1frrwYG1JzVN zVBH|A0!nU>SQKC4^y%v%{pbdzw#2o}`z0Y0W<(IcDgh$vuBMn60CyPL)+88@wJ0f~ z2!tq^VI(`afiT>l1mnr(W2mK6`6naT4c!&UO+!96ou`3@IlDfUCmVze^xD~w+#Z{f zTae#R(j74?H!KP_~@CI4t-;}Soi1N2}Zah9EzkbCKRTuEo zHTz`i)HW?|WpS^pUe>p>F2985nhGyOM$$5)UwAhr-mhwwR!u%|AGs1X>?va`9`n>PeDdz5wjQXXN zdt=Uoj54?CWuh+g-O8_TiM8d5BaG@QeYZ$M;H$MSBgW6__?)0G=Sg>$P#_OZ*03hz zCHp%b$+IS>Gmap)Pg5p59EfX_)$tXs`kK&Q2-mWU?hwe{m0wAIA$&OIr=p{4@z5>~ zaB(IV=yypo#KkALI7=?%u_`XkMh=73@ScWv?>!CFm9r2v<&LCuR8FjkizNt6ZI|3a z9OUdcV(+dVEA|y3w%@t;d@b!sygG(y9rzc9 zoxE9_sl7i^d+&QL|GtcZJg=khPe?7~CHV^h!G;mk`EH4j1T%f}dRgNn1;Yt+Fp|dh zcSrnmyT4tEbDhuRwYGGVp^&D}tCC~iyrluiU1D#@#PR`OR6CoG*mJuTyBw34&)b>MP~t_9 z&z>>M=4hah^~1;SBjBGcvGG3qvo8J))0fyP_{S3bL!go#@XuD*)W>w9bauCv= z31w-Z#a&kg-8mkyU&mi%J@?zsL&SVBG)R%g2M6lLU%MYL1XTFZ&xp-Oxjjb~wRNNH zF6}jl-Q;q`QDnCn`CuB2dZ1rR1zqnwVuzsXD+Ik>bFX5CnmoFmWoMGL5|+I%W*=d^ zJ`%omL$t4!zNAY;Ivu5@V)t0yK4%}jDvF&EYCrGHII6bm0$>3yPQdb~01xeZ&$O-Z zI_s_r1DFyb_jnV&PUU%4_>tTs!qkgz<;zB}k$sUN#WBR$lgAJ3GZ^EBKzw&3bMa8L zhV*z(*jD34EEU;<9(ToB^+U#~(n?)gJ|xD9^-o}*?riJ}j~b$?wW0ReByqygGXAbq zyEb1RM$h=G$Hzzuw&YHa)?{&YtJ@;=9Zh|eS|1WJ+^=wPj>E`P?amy+nw-|no=y6F zwwm6G?6^kVp3PoQBm3_W_(;rIEpQSW8`=Hm!D!$NxnLVdl(cwpv$Nav+D87J-yPJ3 zMnUHGxf=upQ!ys*=0!VmQ}7;+5`wU(1VTz$Q=JRw>StujS;dauot$YZv_4a;+~6Lb zi=8aoj=LG5d1UvpwlfXXb4ArbT(CpJe2XQUZuUA)5bC#xEJhPO|F0p! z2Cui0A`FK`>l2@3wN-bX)%DB*DhCG3&YW3xri5+6fBF#=TJ5XGi9>cfZ{grw#X)>G zW4Mc_T^l3MAG>zO3B-cVOsmx%i$6X7*prXJ-`Mr>m#Mfx61f3Y^?dS73+IFh~?&+8L#yvALz`>2L#*(AZhh-}7fi=Kv5mxNpyGa>vztfjm&o0DOaAfZ^;gBNAKP zjE}So#qzrCI(`~xI`5n=gK{UuIw?X#2#TS;nJU1UBi}I}dCA2kEUkr3(AFPN7Gf=S}O2=udu#a;MI!KUnpfydh_pr z771{okv?q)bx-=-&LhFo#54fK|IuWdW&EC!m-1HYvJbC%~n0(_n>%P}-lazx64+>Qy8q**#U z)Y)8=d$7aCrq_`QD0g1DC08Ra7Ty5sl6kRdliyLdxq(o@w3;)M&b3a z;vjuB>;@9f?KxsuB^e{yFTNJQV%4K-{y!A@_30l``#ha9w$*PmGmcS-5ZyP@v&L2?6<{zlgZIn0GD*xn!4v;W@qU7ch;ZGjGe!` zhuaOJ0T!=F#1uC@F5Ns?jg!>FXkc_Y8mPr;m6)E-T+(YEM1)iJxNyd&pR8N8o`DkA zBXfx6oirKCn_f1%FYSR((|+i?bVwYP3B@jrYt-%Ao{ zw?}$j9zDN)@+nqw3|vWLI($kkRg_7-HmM@E?uxZdNy#vQL`K>WuHP2FRhCqhE~zF- z*ztYnxA?kOhiS*;FpI7P%Ow0$#o16MNY`QBpz{aZt3#E755UkQ9)lO+6!&r?tLhdn z40c3(B7S0X=HIoH?Hgif!$KJ@Tpm)VR>Gi=G*F&uO5bvWkzmREABl&`!_wEVvsot< zB29N+9Zf*PY4e@Q2<5>J^PTXt^2Yw~G{q`%QYlSx@rn+#mHc0nkY9J2B9tZa-csoj zD9Lr+HnpDE~#8-zA zkx3sL@Z+5I(tMi~gu#+9w_ICzixDdf zb+#MNFEnA<7~F%*YVs30tMo@FG(USA%>(@EPq+vNd*RHH?mcqbkUhS!_iNPR1pDrcl@?UV12WrO%}nT*Lt;&$rxaS2M9Sg zbs!c*;?LMG$jm-ve&*6sN}JgGT#aiiw%&Br#Ye_J_G~M8H-#TD->#jQRTS&W`LfAh zu~vs!coJ^?H22GUXoW7d;@bnU&%n4$E#MZ#H{SDDLHvibD|VJNB73+Fy19qYg|o4T zw5{}QTBWOBs(VhExVrAB%)baC2P4+6uP%)}F7CKzAMPhGSQiVU_{Ln9X{>vFpW8dF zotk^*mEyOYyc+b4dG|!`S>&5iyqIG7?6$-GY>vE-*}1^If56xeOZcVwomR4n(Nfj# zS)4@fW9W*CKog=*>Uq65nklP`^kj>P`Vq-g{KJAwStnNJ%gIT-DU#@YKT6(e?lxx@ z0fUKk???J^xM$1aJP~#Nm^&!~fm)EMxZW6XU}})xlCQmxV!0Kq-x&K+D6I)*u1z1= zFY}Bt{zz!gp9+s(vDSHP&8ysLi1&4D`1aYFDB*m~R{y5R-gnCap-^GI%&~j6jtG^?wJn{arDwp?5s-H|{cJDV46hJH4a|cpX*Fo5C|>CncFCCP z*NjtF!1L|$DncHi^7qV*rRA_V`pe-6E;t-%4r9%s%pAsc$CyKN$jt&e5=_g#Om3)jL7oFut=1)uDPenCVB6Q;Z z299C|ZzcbQ3hn;x_MIcw8+>K=IG*O%;~v+!$6ojNkb8XCJ@&cBe)qWEJ#KK18{Ok3 zIl_OI#s4YysV-@g#}*%?g&mgxOYqgw7}(Pmd3rc&eP>|v(0k~@T?Hq-x#xrThG@6I zmbBl1RkGN?RkGLsRUcqk1Hs$4 z7N!crPo>LioQnunzQz50OY&o$ofW}+WTSb7+d-LG2h-BP3VD>M^SwT7A&@cm zp(N-FVGj|)9wLN2LIs}{ID}gb` z@k1yV$hE8aF(hi|M!QA?c-MX-Y69V~`uvV&5%l|x&SWGrZz$5yAO9@55M~WUcE1pr zO61h(&(IhYANeu8fI54kfxQuDJfTUo73g&>>}SM2YYQPHi6mJnF=OhVU3I)2!29qr zckKbyV%tPUG{9RS>O_yTX$e>R8r#g{Z0IRMy zdS=e=8327oe+m$|w#8;%Y~}?OkLh6j9^0Dh&6?`8$Gxh9*tU;BynEOnN_;>?k9qrp z!bngAJ#cBkA@4V&hQH68eUk6gbt?iQ9=FGYHM0kZ+Ywfivu8MgaS$gH2$;739jqn_ zN~uM!Xv6CO#HR&vybL$C@6Q~ zJVBDjZZZsXBMuV7AmYsI;k4$7y6%Yc9w2m4ro!T-JU1`+3+2$nnUjx>i#AN6U%#0< zw(tP@grS}YJD~av%hz3kb@OKEw(s=@VVb1hdHGiRsxi`iG`8d+tAotwiWS7%7Y;_|fSQp@bMqu<$J7Nu$ORT)M^*!yojFB`Eb7OI#^>`|Ix2 zT}{DQ;ykEOZ4n`K`~z6@*VNzltNy-RbPRno5EMn0hAA>CAkrsy3;d(j782tvf%G(4 z8fANALFsrzDG|e-L+g=G$Rne%em!#Hp(?}S6zIsDGkhvy?~C~VZq-Hi1@4Z}1PlBu zgkccM8*%Wn+=pfK?l@|W5fTUuR(EHJrQAdD-{*??atLTuLh{fH z+TR)Pf{z=)$2yk&<@(_6Q?8Qy~S(I*e`h3s5GZPL@4q^GDLf8l=0s`3TA;&Z)C5(Mh5q#a3LVY}o z?O!-JMSqXiU(hWjRr)(se^1oklk_*JzbEVODf;^f{jJvD8vQ+0e@_!5+x`aqs%=aK zrQ*}o_7)#Nm};-h;ImrMcTSPKUPwZ%2;A}v1V`~dNW&YX!MTkt^%8o}zUl-SbfI5% z<{APkdI506R#+3RC*G@CRzXG$g4?cdYZKXh;Mr*X-sMY0_W!uO`)NDy0?Z3L(PFh_ zsIXEMrOdD9hcfx_P6sC&_=5iEeU6JPLVK46^o;1i~!%Iq=@PvMbswpm+Yjy zFg+#`>Zb;fh9RsnDWdjCim0Kiq{lR$AHd>w0Grj(nNJ6-yS9-2)!zLS$;$jOtMObe zIiH{C`Q`Zx6@_H_f@uaDl3J=9K3SoOTVPYAB^vh(Hj!9vE0zBu{vHd!6FBlGSn zsbopwhpO8j<!WUuP)3LpvxKDob9;j>`G+33QFFp~nDbNg6JeT`H2Kc0W~6pdB< zPv!qa{!ijR$p6XwpThqq_^;-_hW}IfKM3&kH3E8AxPVXaal_ox13$Ep3Vp|sOh|wa zl&7%wEUjyh=Hwn9&QKV8n}sb+&SPW-6c0t`16}oG@~rGEPBl&LYz(BDrgS!rN;Mtd z*+|I=osA`_rmD`y(W$1XosAz$HJ#YmI40F}QfFgnswvpncton{S2G{I9bG3_>|-V57Q`h&=MQi z;hFph6{`CVk{Z4kcJ?+o+pt{?YV&m<`kSQ75aMovx1{Gc*be%=s~R*iLt|}IawuNO z7EMZ=t7fQ@N`{j1*pbot%gfua__`eR>F}JY>3K79;|e&@WNKvtRNq>rnd_uo{~qJ@Vnu z!g#?1S;<}&x>~H>$BFQQ^vIkytt@+->GpQ!NK0)*MYijP=nrzy_G~8^hMqYbspcoFK8vd#JMCXiEtEg_M3&V z5&RA@Ah*{=kcYnZy{E_VGylJ8UJIt+|h2 z^cS_lkL4<`!Qoc?m1bwF7%*x=l@QzW(EkZwlH>8KVv95MFjk1?6vf}J+rs|m31}r) zmMvR+r=9uEkX^sOZFCbVgCm*|A_(6;-|p`drdsJy`>N@JkC%gwn`oTXT)*|+QyHv~ z#QRMh(Tr)|7o&maZx7rfGl3olbkR)A_2e%($wlp&Kd`w#NwOd_`8>Wa=8d75mrg2* zAE{!2C*s?4F!}wAN9ca3AyWU=@+Y(3;q&NhnVRgGoD#)<)Exnzf`t*j1#3<=u%(-G zuN8)v{_U~4j)5dUR{un7!WC<2GUT{L$?+5M9V0n>dZzH#>y4NCKWC;$ON)YR{ zTU;gP#}_`w{zvUgd#$_X^NC)ceQDGrmx)+ms9V1bXWbUrKMnP_&qgF7Tc)?|%;(;U zW|pySdcsQniBDQL{D@x|Uh8HdtC|Lrbmg%LJo1!vg9PHdFcUk9Ion|+uH#C!>Bc$$ z^HbTy3DNU`E8|^KKQ~2g6&YgkBif1gikE$}&;##2CQJ2!xvB6mP^xhKC^;j-b-2D* z&Y*w&B@*@WiQL(=we6F%@VXjlU0WRqLJGBAv34#m)$MOgg^%7J8G4LI0;}Jc+lOf* zq9HFa#oYbCe8(=^S}=%k<*5A_q^-CI`NRZ0`z0@pQXOH$itf576FwTbb9llKSvuM* zd0w>R^cxHO1h$@$#K1r#(*PyzC4lSb<_r@da?XnwolvHc?sSugI6B?U&{GTQT8;w8ffJYVk7xjU>u#Ecy!}w>P{Kvc#J5!8EDrFyy z6}F%Wt$4U74+HV%F%X}wL$8q?2$3T$rD*w>j?_lpnba8qmH_a(m^!AR7?aLAL!bzBWl@KtGyZ%RKLFCQ)R z>hSRKI)D>+RxiOR<2j9oAC!Iz3-7?Bpyp0e?w z6p5ZOOdi@4Csv0fET2Pd(fXZanAzzcu!h3(yciu%nBVBR0X-$oZ}i+zddjXodM-4p z51O?r{%CfPc8K?&AmYq*1L8XdrGQ+AoM%Fb0iJX-2!1D8BXQMy5(>UoU1ISQwJ?jH zAX~KwY}F_TTUA1}$f2MmhU6%3HL2iI%r&IXgDW!PBx&>wQ0dtJshu zSMNs}voq|xZO#2-`%6pOdk4C6qxZvI7@F~%&{w`Z$ZwgY6%F!Rc0MnHv3ujVrwm#h z-vhcs>WJ#wsR_w_8Irpb{mW5e0)FGGg3~i46ZGO)E`WwS;e97hcmqOsajXji)h^++ zuKziY<4H3 zfsama-?x(AL`0kIe-D0fmy+5OMdV&1w6=UJguWbwg5(ny)}(xguqNeOo9iF4lIKWt zbhr`O9M-(glFyE&#KiMa9#{5#Uod9CLz|KJiS$Uy<{QWesi_ zJ8DtexV+sEgFnK*65ZVBQupBtS$X;u5fI3i>v>xXs@;NWuV98-K!7LngzXl5jDkys z1}=eNZ>Ol}*MS@IoH=_s_-!2jrU1`Y7@A0wF$!?^t1_-`m_mGF_tC{3HIDnQP3zDehD-B zLL2{j{1X0veZ%z$nd!$2&{EYQc-#i6hR)LVy+_86fjlGFuKN zgE{(AK36r(e(qOP{|ReM^cjc;*_U`N%FMZLgU;-J?jFeh_(T_q zpGIDf)K}*HGoqQV4MjU%cY~CP?D@%vgOC8Pp8RUR$gY2;?F*5>pZpr%$eQ=*%E2_g z@F;a#?wt!>@YKCT0CeT6HQC&!4z#SPe`eV~|5xi)<>#1Y=c}d7&Wdu7Tz-2mUUrf7 zI%qSV2c92bITRG(1z=P81pMPdBP?f4$m-t^tMk~%?{`Pm0I~<^EP`S+)VcTX=xy$k zfB6Nm^2D%b*yz{}_Knw|R&B$fMObC{86$sMv@k?2dI@DB!M*(B)`PJq&ZE0`5O*N{ zIXiPzVAx%fffw#ZYu?L49?=%Wg8_+`ncbn@rX-GOqNVqOHlqq@k};G(B&h$NU=)k{ zbrdK3nNi&6Ln`L(D@cn#IaB2BCjVW+%~3|xE)Xj+G4eNUtwpn^G*4=T7FvP=Uei#On%zrCni5}`B^SMD_DoqAG1akJt(q_ zym1jhuaOBztJHg6PFhT}=G?)XO0->XKPUbn z0J9jdrK4iIhHO>GMEGmhJsU;nGc1I7;S(Y{sP2-sdG>iCJUB1ErpgBGHNtHU1(2Tj z1|3zh40_x`l`Qk&q9<3OoL^Eu#bxt8sa+*9!-!{ygg4-*9-bIMJPkhbJ_a{AYG|N$ z?XcAZzl3}jY{2x7>HJt~UTNQrLbnCcBcw*$Z`<7dS$H_ITcI`Y2N3nOebpPEV)3!|#^>u#1#ljF(H$SL8VjqNJo9Q)!_mus zDr-pDO_JXwZYrX6yC0H~icJrJSOZQ%9&kVNf7yE%_^7IL;d>?-AcVjkAV5TfsIeuA zng~b&iDbyc*&{m|3*IWHVri+iwnZ`nzAeJY1Y~C%n_7E%+EZKJ)}G^g+Me3#QLJr9 zh$I241W+zoA$VmNm8cbh7xMm}wfCM&ptXH_&iQ@c_kPK5_T^b?ulst|v!3-_mVe)G z9-`eFVEr@U-+!KyELIq=t98?4htn9J*$Q~GG?I-Y{V|n^4`CNcxNhC6J}vl%_7nN~ z5`+Q#PkT?zNLxD%M3wwDdA<63mDiQ&ynanyc+OIjC{5q^WIaaB_Ih3EgzF}JRi{yM zmY;(^co{U>W83^OHS$RMcGATEg55mzm@p2;t|L|*ww8Lrlbx?&brmxd^w=eQvz%`d zAIV5s(kufQjVsIsX@tk>TufeD6rP5%oZ zdNzQOJFrhYAt<(q2L>pDeBghfAf_U6KodSEqcr!CyH^?R4w%- z{tJ*s?#~M`wn8O{maV!VZ(ZB!i)lPr{fc74QE0zl5}JMDu*j?S6O~u>g-STo3P!sM zgO#1D-cFwDg!|{r($+OFcoO4<*-6`0#9Y40z@NgSu@s;}FOkrGN+n~Y3^Ub#isf+a zCvFLM6z=f31rOu+07`PhoOaLA);}oUDETk=5JB@`a*W+R;0yGF83Q3$DaKasZ^;1x z*li)dQF%yk#uG9fjLJ7wPL^BC8D2G-+~B0kgj zA*UKvbD91hdZkVLKP~C3UsDFe>c!6KTEQIlnB*WhLp+rHP-Xb< zX`jnE#jt0ys(B&+3-lPxovzPa zer|fYc~u^#iJc9S{c$NKra_Zm+$m_Xh6ZZg?x4v(v!4KeF&)v)lrd;xWh>rlGQpG^ zj_X93DMBiurz23gH{17^eZR-P$L;&Q_WfJ-y+!V#S|a-FURU^0VVFft#K&>U@qGee zPNR$8r}Nd$r;lD=L^dU-?|<(Rq>IovRu@ z{0rp;R1|Z?*3F`J4sUyH+}bTTFBq>Hp&DZZje!MZj+gMJ4vwR0h}YRG15b>~0?~G^ zamvoLrTD(e&n1#EViJKt0~1N?nJfOmGPns0#1%n-6~Ho}31^ z`RI3AxXE}g)_J*~7oMl`_(LAMT&j(_Y6?gOin<2O#a;T>Kc`r0x{J5^xPL^RFIwSR zeS2`p^OCrPLv$6k;N56M0gFV+{$9*~f!Fk(Pv?0qV4{J~P2+qnp7S{{3NB&1Z7t*g zW7S@t`~5m(U8HvOq?CjEBwzKLBkB-4-C!9(@|4I5iS;0KV3-w; zNHs!N%8c++@^x*PKhpf$2DU*`#J<+An_qraj~AG+dl+oAgL%c9u`Bzy{V8_kN9GkD z#YUM(wzM&oh4o z(HY&qICE1;P=lVvEgfn3CuG>3!flMO1u@<-;2@lw<)5~RxEk%TXHdX+${*XHR^52@ zre}m`acJK9*w<+G`FTcVB7BkadG7Kt!C069Qr$&l8zEv)OluO$@B_7;!~@(}gtT>S zJP;D9IQ84-(%;7BdsOUS61%Hbj9`Q7Au@3j0*5Q~nc$MRDxIQ*eoAO87g8u(2r=Uv zWShCZn2LmOu+RLiioRq&i^)rQzKA$y7#WP=GefPp{+9}9F-4@>zN@IpA0JW3bRwl{ z9XBPD*+}4KD{zzqo5EVMNuBa)pcg)tfq5n>74%XRnC{W%SQ)evncZs;@W*PFy9jzYOyEN(Z;3e_&3r~ zoz0DE;gAtr@-5Yr>$a`lj15?C{PuxhJajzI+>x$9OZ=vRN(fE7lSDiF2X?GEn*0ui zClH$)>Kjm>TUk@4mA_Gq{6EQ08HVwxeNpS|RI?1Cw-E`j`KL~~vGHV+NF=w6bYQ~S zwe-b?GAgttL5_@BufF8lR@ry0zR28@S>Dx@_e5T3=)kjU-b;=Ft?UH7pU4|9B|gcR z?NGGA*rFX-tB(+wzW;DLbSAqfYyBDUU*PG2$|PGPqoHE!*8fU&Ty>25f}pkgQk~AT zY_Xgn>vI?p*<%rVg6Q+1CJN;q@FGx@gGP;ZH}-L00*b(A_)0m{uq;tq{M7J}pxMq! ztNp&)rwsfCcjH30U0W}5$d&?qaCa|gNQ?d>5I6)VOxg>Cs2hyX2o*Ac?jSw110$Q{%@xY)jHm|@ zQgrASrF3#~vxF1Sn-p`XoNn4@ zvl$GW41U2L_Ao+8#6GPki;_$-%i$}<JnEr`ECI`kZ@8dH|oIifq+K#wUo|v57k^G8dD$ zku_MvJv*`ngScl#)?g2JTx1RAaJ468FB@4SCUJj6lI3l1Bc5;%<+Qr4TZBNdjKSkO zzkOIxiN&UtuDaRmU?i>i8jN!^kNqX$6R>2M%c9qoeAwx)8sb*1Eb($zy%||WJRA=X zC?Ib`U7>uXY3%@pxkAP1j!YJ+f(@ELN+wQmEi>_fHQv$pQ>QftRQqw}hd!p#OKgd( z!k3|?kEmBa0E=6TK0~DX*kv-yveYttvDJC;fSV$(TpI0nhi>+DU7n{}Xij5z>2De> ziTwD;{s!vIag9ajGWD`1n*&hfH)}rc$&hz}vdrl?M#1_PzSp7m>AoH8c|{fNfTVSYoiO z=vurrMNxc?)Ki>vgd`6lB&l!}XaqcPn^b0(s)smkQz@BcYS&+WOiUDmFfB*qDm9ro zK6K2x>ZAfNt-+;w>ANc`g1KQBsMZKoNF6U9klAjE%uTAfiuiiv0qom_(=FEGd{gf} zmJnNJQlAm3ID+*(CBfKN`TQ-bj(QCC(2H;>a1fK`(Q8frAxWQ3#=%J)woAVA%t{l@ zGKLzA{R6X862?nCy3Mgt$q+G!gN{#enY3Tc%-|)?u`g5&(3bpl`aI&F-xHed1Dq0O z+3Kx+NKuZzCv?yuK>E|g1X{8eLGy4j<6t460*>Hjj`NM=zx`*gpBeitoIH7@PO=oE z6w=7#5Wk&{T*fC2N;!&y#G8g|Im>OY8Zg+vpdYsiLn9)I>yh3*!{NOwm2=5Mr+zE1$J+h3A1h|dwwU> zZmq*wRCpf2%G>OQa7JimLx{>usv)!{rOziKP(rv^jiI{}PGeNi7<%d96h8i&+QS&s z9#zb~0c>lIE9VgT}NK+*({j(pShS7WD zJXfDQ*+%czwM*o#t+Mj5ABwEHNQ(ber4M>%S|1eY1?5?0cRsPBA0vj1VCzLeBq5{s zGCG8T=01#_5pDe%UggxGQ)yqm&Ggby#S9@X&iF;ws$eMc#~$I?3~U$qOY)cM>DeYfKuA>~E19G2kLBP6It# zLCXbtwm{1j)Tf|V3lvdtqv&b{y;(tT7wF9bz1`9n>hgqtB&YZn;y&HVPge2h4$06{ zCErweQ)89^jNBT{!4dXXO+G79sF- z2<#T%i8UT!bk`SS8ug-L-Q*b5U=pA!&LqI$+IH3N7?P?mw~JypPaH)Y;(!pToH}#6 z4`48UC45j$!A`dMwZ~9ZcqKR3{>qTd6EN`OT(bF+jDIqe@n3JgVUK^F)cB{}0;rRA zF#-CL7iLzc25#m66JT5>KB{t);u`RgNPw9q{>JfN@9sa%_(vb)6UYBaQI&_QZ@wRW z%^Cm4Wc(l1OA*>gkN+7m9E}+={>xvEuZ%0JSQO5sUGX7t3#y={4e{TGDqI9t}oF4yv^JK;ZFx)r{u_nM7 zsrIEW{;S46f}yGLANRTK3DBmk_o@(fPwt*z^hELUarzvFW8)p*qkK5JGtV|EkFEH! zqo8v|eAUIcG}sk_#r}MYl=spNlggBO&NHGvD(X2y1^vbS`5p-`ymZ6DvX6OKcqy#I zvXklw=3&`@ddl5U$jBC5oOiIF@CSt&KVFQPpkvA9oXF?jZk@gtr~21(sdUbzAR7Oy z7CL9vM&A9G7At6(Kpz%pn}XITXoEm|1lp^hixqU4K>N^-nPv6v){nv)^(g1ruF!NG zMO`Mn6JIrZw4TfPmF>TQoGucT#*6s&V)^!BPMF{dCd04Ermg~eCc(-R+PWTyOQDZs zX*fIG)NP1J=(z7b8NKIX$6IY^v#L z`l8@|zc_e7=7aa5viXx}OL9YV0wE}T_QIZ;ekyU5O@`ibh_w`Kk8j74k zZT&m4Yl&iE<1G63EGT8@sb+dx(Np`NZ?xz)c}>$(2V~ckrl+8XhPY0pr>aO+t+%Og zd9cVSd9tV}dCDZFI>J2(;Q>KLh_@y7=h`~h#ID3EG=q@o(bsz!T9%ECE8QHIL=Rc2 zwa;R<%BJ7Eo>4LyMtPb3o&v!E1w4BFqly){42ZvgXW%>ouTk&@1?L$!&%hTe_%a3O z8Tc|ingDB{XZugbw&aTbR=d|cl4WMYvik8ts{K_;eO%FclZ<&BUBHo4JE&xf=x=S+ z)?NL+(%+h<8r`z@mvO=;g5am6rO?OQmWZpC5#uL+p=DAG;H528Y^00k8R?}UPV)#* z6p%-jsWKLGrEvr*3dkcH6x41Sfr5zPx6l{eLhr7&I z@$adGN4~;W*$S`l`z^s_hX%P&u)!$(Az!Bc z{p~XE3)JSR+7)4b-QQN+?L>9<7Y(K|@MabKpWuH9U;X;DKLFu}D0anj3>?mwpfgjW zL&-x$swRuxi#QN@A&lH#y^?kc(=C z@)yOLjdK{1vgLDouMpbpN1;Hv%nyVli=xLbtJH0J>0S{?h)6oj-1Pe7DPv-kd1X## zEKg;{0xeU}8m`8r4b1d1vDZ`9prDHtbeTZKUQZc#L{T5IJ}HsUXs1^{{(@?MNxP5u z1(!;6S&?KlRoFt==V`i#?PTIXMzyt{ff08Mg4^kTvD7Es*M^V;_CCzMECFfkdCLJ) zN+9@)aN2D~yK1YYEj5wO<28|!YDA{7PgWufnugyZ&3( zr#RH|x;)xrp*)0pPR?Fgq-#HY7s}66F;egqhdJOhO=4-5odUaPZVFF7}eJcU4|RWy{v^_X8Eyr3xb=XH}aZZ z3sby>G`$CVffX&qUg#6{!t$%ZFV(sBdbrU2v2Q~mZMM*T(zjuuhh=P`dqAFYmyCVQPH1@K!%u7L zVp6Sm0AcUTizFyVEUC2P1FL!ATzAE8c*F5PZhE@4sCdwT!)R73s;6Ri7+-bWSYKJ! zCX{6<*6-Ue6tR({5x2_r2gQCGMz760!!AD_GTxM}uDLZ~73Hd&V0__R@zVKwr<*f3 zI8LupgdEkg?=c!@uRKh@zu)+>>fG;gUR^mDO zP>M8YAjm$zD>-c8Or+GmT+Z;xUr! zX|nqdArViX9ds($EwQpYN5!-GCJkUG5%*U6qj!YLiDGW-i)aKqO~#b!CKWqj*(EzI zF4LkfO4MTsQO?e+0PG0RwSAIrRX~fPb0BP)2c#0E&(4pps$Qn-*MN>DKr|Q=HnLKC z3b`1CUI9KVz&2UL3yT%BOrSji?N!hk1#J*$ALwj?0xniS@ZXULSWV%-ZK9pK1^lP{ zvk_ekvJ{L}(Lscx3)DG1_(trLZPl9GvfKWKC_k6(#m_{=a<+=8C9H+-r*ko;Z=|>u zx)#vG0%{YCTC9+@z?arC~E<%aj~u~8tK|F$uU?5Kk|dz!)%9z3gW>2zu05iT&b{=zs> zYu+-uG1;7@E2r}RuWrxL|84E*`9Ek+t1VYAtB(!!!E1p!$lx7Hda_Thd^U8I9PntG+Qrf@bI|vj8F_75JQi?`>=fG%GurB0uu>_wa7U{NR zYjTP@jCo<5nL-I_0|W9ZOTdN*I+EUDi1?xt8X@9!~D(T#c)`re-4cG)>l4#XDuQ( zH&XvLKMjynC)a*+C;T(?uQg%0&o01an4DK9pYaPa_0&**oRZ;5Oyq#~+<+~Cj5-$$ zt~1iR-4DB!L(a)oiLZO@)Dm-kVCe^o>{M{GL!VeuWMU7soyAs2l@DgGJYV%sQ2XiL z#))DYH8XI<;p7NwKPmHmq!OaCjOZjEiB_L0ov?bSB{|YHgywQF%TRU`nV8J!BlN9h z??w){ExAmnPOF0uR;Y%Q!%o2zj(^yg`2Urj(CQ$#tIK&5A(A#Ls+hw37CAr`2E5pf zDhZl5d4smsH`E7ym#V1HLI#?)(G#;*j89I%p0fD6%Yd#NL5=^g{4iYY(772hmBAP( z#3U)zr3AbT9cZ5mTcSWs6wsB@ho-_c>Le6{ifNs_)2Ruoy$q^9 z5eBvvXp=n;6pbh>#t~>XxZq;mlD-pbu|h?Naik*OV~7KA1o%1t&09yipgU=pcVbbh zPGnnzPJ7a682Fm16`-`F^H)qvo@@87S!cD69kOx+l*VpppIx}DHIJtKY}GSZv*Swp zP>QA(!(T+nhUr&r{>%;Yf{e{F(tMg@MBgU)r1g@sGw=nntskacC~|-T60--YLmah@ zadwhs?kW0uox|LY3&zfXXc7!LAQ{Ri-XzmZCK_+W1ibJQ6)<(FctLbauoZ#e8J&SD zcUPcBK%D`n80?(#<|;#O2?Vj}c#^^V+(b$rLFCE&4kMOv|>Sr19@UZpMd5sh$1y zhEXVEsi@y3P{az^h-?eLkyy(s_y%8x;xTQrpK>?h^o3cx^+0}mFya#ACFlHzvauw za=fK|Ydm?WG9aDG;mEb@$|g&IDIHl~`GFSwF%KN@7^Qu1T~#4UcVm4cXugOIt9@d^ z9;T|cmLZA=$39GG?L)E`=Nvrsf#UF<7Y|)>PO$Rb#<8&EC+DEGU0AMTM{}*1LNgEx zF-(Ms>dpPZ=%HTqZHJ^1j0>^NZzC9Ry zi;V!sFyE^=wlz0o814i__C=$quvi-Koow?(dKdd5ZM{AW8Op1&@0g1Zz#+n;0rM-n zgavX8$A6WVV>{hGkK38io7nO!B zUW5Q2;xc8rd3|1IjhFtd{&!L~%sYzoCG#Duu0_}JnI0R{KtswqL+&#hHeH-B{M3bM2%IXb)k z3{mZ|VOnc<{OaS;4~8s1%7IqsNYw?Qc~uvNeT4dyT7lL&D}H%Tw14;tjLzx`1Y%fI zhxR85xXOeb0)so*WP(mu+jTA2-l4u`a$wZm{(2>c)LrGff=~S5`|9ruNT}4_(&FE= z&NBO=Z9T+`_UAX=k6${7d5-$=CTGb5>ssx0U28qI>0)Vf@Iz(0=yNX|)sw`3XhZaa ze2yEJ@KyCScd3R5wn;-ELxLduId<=+@H6?GzW!e7Uu48@a$60M9A`aCb&|tvJpl7V zpVm4eesvF~b)z2)U-_AgiWOP(4-w{bR@`BBQz@y@toq9B^W%losPMj^RimI*OM|s; zvuo5%gRbl{;tTV8l5Mbfk-8k7^rFBCBXW4twxCuAyXUg(P8c4n+!Dl&;0^fnuzP_c zN9lzdvM6SRRd$6S$NN+Bu{E#q9kfj>X&oF#WJRx0@yF@7BJr6$K4sglKUWMDCKnL3 z9)Bz1jU?TNEf@=~d{_K=umT{#dX-zed(`#l@vCyQ)cW6fZy;5I*~AUg+L>4AYA+N{=jn z(Km8K6RiHlKw`o8c^eA6K@q^%5k88X3J1CYzEa~k70!b(9*e++SJ_t_k4a#|tL!U| z$0o4h%?%=hVN~uy-U$Pd7{>HSDWrrSN>M4HCE~(U4!WvkX}RlIA#x@EBEfuX!7Tsk?#*^#l>>2_j6_ zp1?goJL-kjaI{TL-c(=Oj;YBOihCJZUFM~j6=YZ8CHKpU1q8RsvHdTw8i6$ktVZHB z2yC&ymI-XJz~G}DjW9Gn3O^)6^CGI|4IbZ@F0eZ9yG-~~m&r$caML)O>neuk3BMMs zL~8Xi8Z)t(1&oH}5qV-3w8IcIi4V9eZSgm2xI7MB?r$Cns{`Zd7401Fnb@psSL25; z=1B@ars-EnqQ(`eVhx7T5IzQrn6$H|EBQsLE=CzZNT+@3<|y{oPNCL|+LHmIfqkM9iP_|&$3YRMlm%?dB8-B4JeY@lQR6bTLH<7$=r zs_I-7K5xUqxgYbi@G>Uk!nr5aBNKAr+yV8-ge;tk!2;%EKl2fPY!IpQA=4@66v`=` zc<-lxD)EmquZS0n5|OEBE=6Mk&Q|us*S}9pFo&5uzT1sH;_muVsX6AZas7+6)>L^5 z#@9OdLzVYK%Dc@YDJ@dv75rk1mGW8$WUQ3ePzYqKl-CdhQZQEVM?ErJ&m``Vk2%r2 zcLNVn==CBzCB(Xtp>xR#3Li?W2rL3}#(q4EfGMDoNwoO>#&PxW0?GdpcFkK1yjHAz zT5V0*g;);8#ZSkcAl!2y-I=9`9qv%Q@?v5x@wD~%WT6_#EhRv>;`pwhn^`PK><^Ms z^hC~+G>;3DuKIBO(8@0;L`ims&tk?5EaHF^& ze<5`Ks1~8~M{NXx0EU8>Dfq(*-lpI+3f`dLJqq5d;ENS}nS%FmWfUWSK_QU8@QIv( z58UT9J0hi2FG*uw(j;xFRW?~MqoMPOX~MbhT{ zkbC(N#Z*m?7UuPR=9WmNiy2$QL&?zY*WI`+dAGhaq|`V^R2 z9latA^NLZ~9a?E_v6o$o-j?+idF%9o`&M$HE$AfrJ7*Z~r%7`1Axb>?9cl6+x%!JR zlKXDxy!z62Sd7zC413C$k;Wdjk%v9(ZOn7*VR!mx#H` z#0&<87|wr4RBOp(wU$g)YY9|wPWTUM zEjdU>dJRKkn!zqm{C5B4w zX~lMt=}t^McQ_J!yLI=|vWC>SWci?IqrA|^8napRQrc0)0xF~M8hmp@D-&3az#0T5 z^s&|;u*CvfCNQCoHRxlJ*JHhS$akzGH&jjiyuQdG7)tFhloBwM+F>Z|mvv9jFXKy6 z>66t$66pg)F`2Bj0(!YeYw}W^#J6RwutmC~Td2&DA@R@JE228>eE|ZH_OROD!sjV$ zM-G#FDCgu}ia3Rfe+sYu$qx&xO<-L7Q+Q>)5!gn7aq&-S30n5!snZru_(9*X&fL)a zQ|q%+q?wN6XK}Z(DBIypqc0NllQF4MH)9GH|CHVo{;jX^NgTNLG zY?;6o3yl7hb(6ZY-`OVn9a%T`r>m#-J5GDEvPh#7iPf_meqiOk&}R~NrUhk1=y`(S z?vR|U^+Pg|{ofQ;kEi8Srrjvr2Fgz708u{b1onUP#PYt?1hkKwe{k?b z%4gc^SHV!RLA{|MS9lneTf&GXLD5#B0A|XQsPX%9tfFPcyg6cFyjtUHM9q@fHs5o;q;sGpoiD!j= z0|%MWmyv?RpOm)#--#*6wTS~TDEWQ^##DXf3uq<2fE8ny6+>~yV^r>kIldnp0xry5 zDT0pXiG(=LGL(nCkMy_?g@_K2Lk`rL&phCZz7B@t)bFTZxYGBQYDe3InQ}BmZ)%TE z8@5#Y+Ve}b#k-bjH@~1ge%r8|3;@8RuP)V=zOqzX{t7&=&;N0$mfR=l0NeubWdZg8 z+$o=W_;f325qfi*0EPm11_0v4H}g|z_3~M-eD)Ndag=ftU7e--0Ui?I(*R)&U>1v= zl(z0hwW&T9ny)>+NR@22T~sL zwPoE`^3aWEnbqAiEnG$SiR`foJ{5^Kt<^W64?oNz+&CQ1CPKd~e?!NANpvD@AB=Vn z3r73;;T^FsP0-e#0Iy?;Bo`(@y`uX+66ZB-!FX*(=a~DIP*Q(EBerIbZbK^IYa(S^ zDox8WgJO(XJg{+SU{PS2@6*2GMpvB!|-TgQyLC#N5Jzla7xz85faQ9`E9V9VH&sKGxvv6dRpz zO3e47uUJFZka(rE0qxS(@}9Q3knx!stU0`-M(^J+SozAI!)Q&7)SSO-q;@h=Z)T** zVYIG29#X~HlOBM7W~5SzRBis6VG2=*D=GK(bb~WE^Y!7~(5Eyq^2Q?Q+y*uke~8Xp zN3UO7_j}gdL@taft05_PJSOw`UrZ7)08oY&$K>uj^Go^efiRsG=GTm&8cEv zK&-54O(U@}Am-b~b657ZpVyakVn4Y8H*^CC`8fN>4KT0#2pb4@cdM_t&Q*0@=uDAA zxB>QxvIL0j#pU~x2b}XEG&}2>uW<+CbvgJMjC^n*;+F864`1HwFLl?&^&XrFMotW0 zd1-kYJT&~ZZHs#%alfxed#s+kw!*ECe2~BVjaKS55IJ#CXkt=NHy8T$pzhoT=BYj+=DxErXy71J#*vTTT!BwlToRQ<|uzfo^KHSh-I ztrL%lcMy|uE6Z})-S?^Klu-daHaamIw4biL(1$gVfktiJStN`j#&sU&|GIo?!0f87*@;Ez@AN3@3H#+88{~w=;$`|CaK%Scz+zi;&#HOETjn z(}Q^nhBq6v4O3KrZ1&WE;@G(I{YLx}qrQl`F#;j`%)`g`Rkq(b+w4BRPik0XZYe!- zeCM$(?r@%Y1j)e3Nvw9h-stTdTCBoFkjx}r{2DjHd?PU$=RV4iOKf1so9(4Lllh9C zh_;^$u}^+|`FQ#Ion%R7^Z1bj7?hmEdU`N0`2;;`wfj2JQPep*+;+k;cbZ zE>;IJ#t<+jm@7JPp0-YmMbe4u~8+Km4V&Ol0eot z)nmgG-2f%AnIz_mje@S4s@*Lo>?|p&-`W|`qx2X8Gj>jEMcy~@GcNMo$9$jqZttnz z8B)AMT2x%-D64=}Si4&kaliWw@K_M`qTl6I_9m5uNsyk z;~)avnw_6htHp#gyAq#K5z^fi8x30y;psAFb-Pcd{;|l3>zVpEA`LUr^6dOozO8cn zh?`N^8O#N%K*?LPdw+QHTp1{T5zQnhbI$#YH9|v23#{8ITw|Tx&S!7M6C&T18=?WTuw#d z+E%}80e>UFUja-XyAxOkG%JZYg8@Iy0?d+z2TT7ozjaLG$^8DBxK5nEXpdcWi|q2Wb;nqVMD8Yz*dsG~YS4T=_MB_hdUVmIy&4dCDnCrg$oj26y!ei41|whVo5 zn2*(tzIV_~Z0sp9gz>_wHGP4Hdh?^q9N^bJW|W9LY4OU@NRB?!I083SC;0N7bf+KW)37*jXSP0c)!~F2gVxE1vDel%^ z50<_ijIU0cJ(0mi8)L!aU%>{-K`_?xdK>S6ty+fIf8*Ch$?l-ve7zKHB+)f6+!*~n z!WKO@GzNZ1wt7Jylp>sm54E)mNKW`uk1a&~pb-6ng(KafUMCMqyG|Zb%5}lYXT#4W zrtl43aD+poD><}xZPOkp;R{=Z?(+sVuSAPZ_)RliaB*gOVE~oEUnvs?&`e>CY?tEy;F;E2 zFrIJFI~iRt0bW_L@UP+DJ*zb>5)$BPj_lRs5+Y#*Hb5Ld!g3|YX1a#p;r>emJ_n=g?<(Y274TP zp<**O2sMViP___W5xHv~yP?qCynun?=Eg8_=QJ;1khpW37kIdNnimY=Hl%sMP;Nt; z7YySzta(8mx4h;B!?_J_UXaf%zj?t3ZX=o(6mTnOUNDl|$mRv3xQ%LFpmEch7kIgO zn-`4cHoAGi7;a;l7mVdLws}Dzx5DNH|<^_|vO>SN=g&Um0l+DvkzfwKEV-r38hBRi{=IH}g zP>%#{Bq)o7h**Ig5{MMBe3xPK^z&9|mxNl3GRu-`dcd@>zV^|-jM%;v`O@TiZosS5 z9zK1eD$;QLC%5)92%RFOKbG}F^m{YLN3I$l7Ac)EK7@7uN#o-u#K|5X{|@BOj}I9e z?P_eaTVtc$8XN7_*l4%LM!PjO+O4tC4keIkb3aT(mgXBDr-FmpywnO>BtfUNd4Uyp zl?0yJ=5PN}rMf^uGuzyre~!Fn6kQZ^n7J}V+1NtsU4doP8oDMVv`(=+bDt{rPQ=c6 zMnqg-cSq#TUs@Wx1N_jCodHzlO~~d_%^|l@peg5Njvwj2!T!P)s9Xg9pCoO?T+Zxp z@VDYG&);C=;*bQ3RUnj$c`28d99}-n%O&!X%S$mY(}jNq0ag?4Py|pC5m(Ip0nJGQ zZ_5R#=9abANOmc+XrV6(fBG9w%vI2Khdn(T23%Q&c-_+fGJlYrwO<$KJ}nKgz_Mt! z8zHvvIQqsT<+1yNwe*I8Vp{m)>r@N7zE2BJ%WC1JEmrR^GhOr!^iy>62A&nJRqqY# zO#&enm+-lMvVtR;8=ih@MtZC!PgIuT)h$+L2mXo7s#IncK^?DNkq&tR>dw_#O|S|~ z_h3t8O~@4*8eOx@9UewD5|4TeEXFxWgl88pNF6$UWwCkP9R!hc5ftqJOlT=T;ZhmG zVQyXL-EdVXDi+W^elxJjid_soALw=Hcj8O3GOE%8RpmHUr6=bX7Kv|ORX`$eTf2%> zp}T6;mlzGVM|?CQDeFsYYnr7zGHnz=7-HiT|6>Xy(jgKEn zKR%p(v`!#Y>TPLgxBbXiP~}a?dq#Wev2V$T!W}+OkKNrS&#{(>+|2K(H?|?8ElH=Y-a z-BTiUMZkQ2J-WrO87A69$9w~OA%XLK>=TwHcOqhs7C~w!iv~jVTo!Ne!!g10?@v1g zKd5rdja{`&syJPbeNXa$WjV?!uM$8wfe3BP^8tLV&{4f|S#daVyk;4j#eq=o4OCby zC;JwvY`%4BHd*ya)gPsQ&ZrO${1W3WXzs=KDve>pSHionG}=^^)M?FhiDFm3d{<@* zA^)(2Loh8W=crgd+$jv_q*3{mso~e6-(2Pj9qg6BAlRKFx@^0!<1P6pY;) zQGqdu$lyS#xhtBQ!UNs*XDHEfa(e;?B%-{B9pPo%&{ny;j2GoKUfzS2&xVGnzS!kO zxIDvP0fzktwjuGnRvk^mqB66C*_C6U$7J#vR^<%y5qXmpZLIywtqqV<4}~4lM90pn zRr@x7SNH+4nzRN!mB|mV)?@vj5K~w922=^^mlv!3QQ$?}Ky#hzD_}tp`x>!fihI|m zwd)0U9g?uSPRKQsqZkm2tqgxdhEIsw93KV3>Dl8>u9>qB{El{%%M+2s%E~W`KcNRr zgsfy93NrABz2@?5;2Nz-8^ZAh#~j1B$30>L)iv{;-vquVE*2KTjNT~%)>z*bma{kP zVUo^A?Z13ii|^Lko_BpWvGYdrX#3Hk@}sv7$jhy5a+R<=c_{BcO=vkxxh)t+*b{!z zVrb)bs6AOMC7bNK)v#0D-hQO0eEY52)2WtsiwlO4DNU&n_R7EeRhvI9-BJUZ<^TypTmdHHlhgf!Xj8+$yzZHy4`si4PJ6w@0QT_d1%c=hZTb)=K zI@zyBx6zFI`hwc83qA^+75#YlitWtB!_wyL%u|s=yOXbg?X0#@HCb#_z8AWYBv5)8 zRG+%j)JIrL#g)Fo@QWGx1o);pr9MG((npDrs!sh_AS|$`_`W)=y@^JP;KQgbIM7t$ z^6-djLLgeS0xF}ucY<$t8#*&u(-pjm0$POuYpX`va6RwA&HXGPSYAPTs^ob6+4RX% z#ke=mlZra-V4Mk2=M#$4P|np2WX!lanEJ3Ri|}4aO!L;I@!x&dQ@| zGUY#z$=E8aHRK2Wq{lCO@)vHbms|6%YluhU@&~%asDfjRTSU%G%Mib5d7wX~WF1b) zew$sg&LPwb2|!`ciD@^Eq;8|;?w{p(A{goRzcIz83eaf#{k?B)M5yhsjPZMzhew)Zk&V&nRaZvo_BG6erRY8jtRG28`qDfG$D`<^^3LB;TdV$`e zpoMWVJIiTEA5c?NbgKc+|hB{i}H=60eWjCevc z%XgB(2f|Z4X%9ez+Q>75oRst9YZsKiXvAkqKyoDXONV|J8ZTZ~=sLj`o&yiL!?Ti~ za^~-;*y6nwK>;crM<-|#ZF4JJaUk@F;0nt(ixVaEQu2s8{dUqrMkYQ|@=onnG5jBW z8K0|iw|uWfTexY8uHyliSn|33dGY`^_c^HqFAA7?y$5Xjn$%4UnW81J>6u_Ja2c&j$ zJmnIBUD-hr3f1fFFMI4rdJLC#u|?wBj`r2f8I)-Tjl?SE(jh@XVU3I2&*q$+q7O!FIG6Tm0%8xIgCo1b(92uS?T^BX7PpdJZ2g%=gE0y`w|R9@8QtK5fJc^MgB&)K~Vb_zb5phBeH5l{4Ipe?$R9#DXig zuiRh0OXy#O`r22Xi%QT6pWc25>Q4cQJUoo+H2-i8vl~Rrs)*gqVI-09%36^Om}tr&(>u?R1SD-d*33`CIY(cQ9yl~lGgM!P| zn6OyEhDXF`PX1hH*}?D8h;p}A zVfVofvNP@d<3I3OpPY5B7ww;Vb8FE2gK}m8m6c(_1&s@AtaR1oQ7q-`*^AYX^Aq>+ zw)reB)}XNbuACZk`B&>J-_+KNlPIGyx#A`as+IKVmHSs*W4<8g!eHb1zm=4o_0JCp zRjJ1sk;v;@UWQreP=UF3V2gPT7%ud&*Qk7@5htwEag?%R3<8cTMw-W?ZwwQcrznS@ z_axlql=3}Id#F}5?KyIkqtmE{dB|~p;OAs3UfpIzxEZS>zD-cQuGY^H%^B)Hu|i*Y zApLp0d02(Ags>hqAUq4>Fi)wq{RcIvEA57jmZvrS3oky{i7U$G5SimUMKN+mIo!|~ z(rEVng#0i+*hR3hLxG}V_XiU{<`#6+>fKCaDup)#Cj3oStTghl_BS&)GM<6%M4Pxb z=(7|)&L?k4aw^=sshJoo^vn7 z!Qoo87hzo;dC+HVc}LD>QAfySb{Ak!Y+JI?DBW{K{QeygDgL&MEWQ5i910rSH!}Nn zc$rK)I1BV|e^_8`0)wD6c5oKx-`*pzUV%Z*8ap@(^lz85z3l>mmc2)%E;9YlDIbL& z6nSnq(hGMK8*XXT9mT;+TWzX;G_Q{&hHIne^=YGFdW+Z2cBbBz@N2TPt@{o~gKD3? z$)^U&vi0=zeQKcCB8A!K@2roiyHV*_KG}#(K*Dc8w3q4WobXs*tBmFHwuIG-P<9>l zrQHq`o?VL}DkYtml;{h6Ef_1 zn1^A-d97p{EbW^gD|i<Tmc#X0&em%=TCe3~y_SRZ zTF%vLIaaUbRK1o%^;*uGeVX4?ex>}*=XU|WY5XqacM-pf`IYf2=XVLe>HKE!o5}A|ezW*h@T=rEo8KIM zRs5>?UB+)Nv~%rL+H(LQ`*>}Q9>*yI~I~Dfp0^k@`B5?4X5DQt{L6Ie7h- z_SIu+^2#mqV|whH#p%Z~`|L~}=4RM%}A+sSyA+e_}MRE*4Ufr8ED=K=?SjyOyXjTP0iq(i-mIuoc5VkQM zv(z~;1hf~y3a5R9A23ew1IBrg=-_8~y$VcI8~ zU3O6B!SZ7_4xYaa;%^-lW5JGKzyR1W0Cq$fyfXlH41gU2V8?)jfgJ;2#{k$d0Co(3 z9Rpy;0N61Ac0}T?GXQoBfE@#1#{k$d0Co(39Rpy;0N61Ab_{?W17ODh*f9Wh41gU2 zV8;O1F#vW9fE@#1#{k$d0Ct4o-5CHoa;n`K06PZ2jsdV^0PGk5I|jgx0k9)ShMfVh zV*u=*z$2EdL1uw#J98JLR^a_AngBDB1N75g)> zqH0krm1nQ77XF)?#(72Q$Elg~Q}zS)zibiC|@-cJ4@XbwxX z3tH~#5ON{21ZXp?nj|&FVF#S=Z)OMriV@I|d=uYPLk&d-ral&QkC`c_Q1*zqvASD6_wF&+IuId*KJwyah>}>R)Du!Bc zo4uS2*vm<_M~Z7x%gG+yy$3rusR01yKE=_LED=>|IjNH6q(YXH3bmY6spX_fmXiuu zPAb%LQl*xYDp^i4?BcK|z`la-SX*ugJKJ4eGut1>vF9P4ZkJG2DsU=5Ny+gXFnxu!8Q9pi_8gRaW2{2|SgDHrWb|N@ykz&0fESUkS-< z#8)nZwOzz$WtydA)$^?PVRADNsc98OeT8&7Yin3L7W2DBc#;Yx#|LGcVecchJQs_; z*Hqn%^$5U>cFV0R+RIJ;cvPRsqoOU?C#nAXe^Pmn?a^cFd!>w^!kmHL3}kGbhkQb~ zaML4F&p-41CxkE1V?S2Shup_Fk(Y_V+deqZz?s{Pd2%N3cIN7oZok+p@t-`D(?ZS> z?C!C*Q3x8Tc86*B-8Nt6&{XS7eXR3)6?6lKAn0euhAgA>k&2tc{zqI2jSbiHy_Mkzgt* zsYR+%@UBi-g>=g!dt}utnYAnM7iHySMQ*)-FBBkF{i^dQ?RyHnt0JY#*IS>}*++q2NueW!@&+A=7CP}{h z(aZ)1bq*6FQAzPP0MJz zr=&>T?=LA<_eV=aNI*A#S2C4*PzHu8axRcf^5iO(Fm$wd6axxPB@gpt#DAwCM*P7N ziKfSYQ6e)@kN>blOi3bVXwiFJP3nEPgjqUYu?jujRPvMnIH|?oB@WD=kU5ECZJf?Y zDlV3a@p{b8bQ`KWbCZ`_=>hB`0>XYDans#aaf0q=oalOPlT{+S%)b`-JIjJOS3^7)NwyH2g)Nb_`!mh;YjB6`31}{r6T_>U zM0D*}@PsW`z4oj3gTI%gU0)!?8djf|&oUcvBf)=NBkm)nv)}noYrpw_uKlE3(teWb zUu-`H*R=*^9}QWzfi9-1*M5)Y93biU)WRf*k3W;#BGfEf|`$L($|{_N#fM`I6HaT_6nj> zD-sb_!A?6B?NQcCs%n%;dl|7`sA?P9uYO^-v$cSN2gU;I$K!~Pg1sqim=oHN5!NojvU6b5+dVG4** z)_gtoJJt1AndSKx*6e71i{~F&Ikuw&LHv!xXSvD`5*C!W?T7OXP^Blra2uB=xAr5% zeAGtUkCsGSe8IbgzC$HytsK6Qw^EO12kaI-B?hEWP zGA5ytkV6q122*rxV^^Qu5s1Z{YYZ(DmuX}*FQk=XR zd5BlP6cJhy2~+Xsk(XxK2wK0JC~7Qgk9S8;jIk`>i7nLiQUIt$sR05u1XHnBR7$H# zyiUoNbW7tQ0(GLM@d`9nBo7hCA)}#ovIJ{*OdQ(Y>mA;04Hu*pNt}d->vN2fhA^b# zQ?QrV)~S@1KSrT9pC^SLcl@hz09-@t)^A>D7gZ%plpk7A3MrIt(`bp(=tLoOwG}#A zg-R>7hMZ97S6k6~dcX?}QKRIyu_rSS@}Npki2sF0uo`nLl&`XixqRkO&W`Neq>3Ny zhvBSxrMxYIxGO|8+aCR{lVlW$d)9GVBJy{xC4Q~8Z4h~a{)|EY!f?KBMg~g-Dw|~&VDZ~ul-5&{lsuO z^q1$V5i#S-upG9t5lRo_rKhx4*D&dlw0!s{rT*zrD*bVU z_^?=I`}l!9zcIe+&2{xO@%0Ku3fP3*R9yj>te~y;u6?jhU*omRWPd)>)c>$ zmTta`)V690`@_gpOC#5;em(of4ML5s$P?XG9p(+!*UHrE6Bud;N zZ_B*csz)cO6oUiLV(%#3iE}JUI*dLL16sN|120>Bko*NMD@vxaT{7QRX+&5$KIT$$ zTn?WwJ)@w$%~Ha|4P4ZFn!r7E{tq6XpY-lHvOP~6*%m8DwiA^j+d}2Yc9e2to2T4c z-+zkwvfuU(g%H@Au;Ni_l)VX>RLUgN&(!mA^J7(L-5zDII;=|IoM6QWC3}mu%S7a) zL<~326`r${knqg*!(JYSFP~P^^cK5wSqwJklA`(;b-phN2QN>r22}H;T#$;`mz5K2 zdF+=3kr9nPRfLp-?Qv>3?N#a0L&e$Fr&ek8|GW;%XCLme11O;c6srBRk@iAvGFThXd7vy&Zzxn(Oe)asWS}n84CEf*P?pX6l%^RDRVrvu|DP#^3(8u4& zcIQ#Un9dqunWUr|UtdHZ`#ee4*00*+D$b@iyM{`r-X%)~Hx>v+UYA@&Da!VbgR?nx zz^BHgGH>HAsfeJlsWp8d@v&r}cnPnlm&tnE(`Ll0I+CN{CwAzZS87e&1Z5m<#%m{a zA#NnVF2s_od!BVy4T43R+P_x-Dd}y|yK3xIC2fu$rnxfR;c~vnjHz`5eQ;!0rYceg zZbufVLivxJUm+a~|E;!0(nvnd*{dpYvc!4fuCfVQ&8e0>hmVdTUXlB-db+Q2 z4pecr?YOnTqek+NG@l{Wujcpl*=T!oF$jZa+%`74nTHA9LqW~0*b9BW1ID)Y&Bcu zqDpL?i&dj_=hE(eT-x<6tcS_#O3u!SKR7B%R+yRVQed$!aANp7$J(`!ZC^k>)Jrq% z3pACXca`?{@(Jq&%wDAy6W%MksJ}t~b}1%KK|yP%s#FOJZeRoM(mng6S}=Edr4gvO z9&akyATYx6=u$oYXh|FIj-HH|hrAVhg*$RPF5}@trKLTJ9M0UF^eyR zQzN-Gdz*HJ4hDt#6e;d2f-zJ(;#J$&sh-?4dvv%Gw|plzJ>ot^fWC-LADLe=o6d;(4+ z)q1UV|5Cp>84JXi3B=IujKrBzP?6Q%$8lkO{06t71@~pf(bfq{NOyq9e>wj7Za*G9 znc<(X7XN(n2(>D$wGOlDykaheLB)FYNL7S+Pm_H9^_-SUu9&GOV>0cwpz3p}OzQKM z?ZMwVz6l8>t>jth;y@1*Q?(s|(tO{ouiSl_=A+JStrwFpD==C!E4SfWEf4>MJ~c{$ z<_GE4)7D=HgFW#C7ly)5z!A*jhpv~Qa1jZ#MxCKxo!6X(KdiI1I2_@-_)swWsT|>O zFvW&#WYM%4xrn_ud)z1)DhyqeGslrLi{%)7&O*4j`HI7fNbjktgLMbsu30eiBGJ&PQ4jw)m z`Bn&@;8o21n0QE2p;n3Ek1G5{qQ&A`7uU!nEu&D{pnyfZWRhZ180H67$)(=H$iaET zI|^b4pLFc!sI@TqRI!Z;T5Jw|ivCskMXKMRn66MG{BBv@p&_(&ce0V91e8?5RO02^ zS|U{=tm%Hth~I#VJ>Nk2E}V!;6orrHMXF}ILS>kZob7gnD&?Nz3I*hz>k3_qIDtpM zi}ld$!am?|vakvkbnkV*dg5Igjpcea6MKsTy(IBR8=6BJIS%;D#8w-OT)~!H8>}_` z3g~9Z1*?Mi64as(QNUp3LCaT;)bHMVh{8O!{IZP*R_;ag9+C>bY?uRmL0i9^7g5sP zqaQ~I@mbMs5kHBOGpA1t@(!M{z6~DBVa|?lA4W28KT}59*7$b9@e?~1ufTrsnByOt zBTq;~_{ZkTla$?~ z>13-lI^+diaHTZ0N$?)FgHfF5@%>i1K3KX1Z8lu?++oKf6bDNFSwwDYnJ&i#gn=u*T z^-QOn(-Hg~?U}{JnB}FM(^0ZBrXxd(mt-VsftCprH9KQEGPFREtOeR2P!#Qq>B|%p z$y%Vu(TJ%C@mHqgX=fty<2AcW7JGW}%6zg-d#sOyboFr`*8*g3JCUaC z3L{O6_p;ZiOJXHQzKjRkmGkjkx_gV9mwV>$y}Os(v5*j-F_)~%5ytunV~&@$@ywOhoh$t_r&xex(rj~8|IC&CnNuUs1_f39Ggta&&SHTsQ&81E zbLk)D2bBI1Rq+z4jF{6ti7UM^M@8-9S}>O&v>n@|H{J$*f-;A6UUdRtprf>`<`>3XU@$x_9ew;>k3nr~hW3jb;K<-1r?GEh) zGXmE3HtR$erb0+i@9UAyF79j_vtb#;;eh#+o(&(^?pv!RebLx23Kb$PZ@vL4}AuF(5RgrN1Z z7n5F{qi(98iy)$f40@0&hIC1c7q!$=|)! z4An;d^N()IB2i17l?B7cqG2~BHiivhtWL4>2j6z3y`EgQBe;*2uJcjy6Vk%$6=h18 zW0D477pL`6mDMW)V!h)Z)4k0;GZF3Gt~&TA?T4zqQi&q1}(A4 z%?ykdJ~^4+Uknl*xR2h)-EW2eqCAgMq9u9ooCnXm1S&=gA5u}u>Aeu%lT0VuA8F%L z^(WPqK57Ln97JOc&s0ORO&0}Pq47f)h=$gbM}zUhtjieHpBvI2z0LU3=k>a9RY*>s z{^$+HpN?%c^Kc-0Xp%m!j|@j)8(8mfh7KFF-8SP7AiPK_Jen#s6skn%*W3&(rWKuZ>6lLuUGsc<#YPvS_NDc|EFB-a8c zYp_2BR_+#P+&*bCdY%3_y~=HiSBuTW@{c)}zY~~0{Fewc<`WTGO@<;2i7m@fBR)%A^KdE7o344MaZLINN*#vSPt$cy4j1IAuOFPgd4bKZ z0dK#B#6bT7J6RA}1Yvx5Ckkrr??iHW`tlV%>~|y-S|PlN_B-GhCwKCH!=1>_QUWoW z9Tgw}WNDJEeYMccg|%9=v_>j@4ek~L2^~y7Qt5mu`nkX*LPKStm*bSnGxh`qkplA? zlX7%H_Z7S;cwBx-hloJ`b|#by76L(`(6dCXoS*n6VX^^@tb>eref`k%yFembR|9R! z6-2@9MKl-Lyuj}0fCZi+kSg}M#N ztkm=_I~M_A3fdr5;9^%g&WCc}#Ay2G!(ZSDTcP)JiRK}U_EMh6CO`Q!Y;pn~Xzr8H=fzujGMqsc1BA@xW)xnSKR<#2*rhPu;!B-j&60M zeWCyj0T)jcU`N0w>k^Z~d~x=L^Qi5S zN$6^gwntW{!L5hJZrvpOY)Z$^7c%hUos6G*rr>AmRQ!Ai_5i*x4eoUK&Ok718?Czl zuV09lY~To6kW2-7bvZu3qXpP_0WP7+D*?a|4}MpIK_t6`2DlQsovI{6;>YY!oyvcd zB$8J2x5g6m{(7_Cl9>RPXMB67`6sOY>d_5jI_}j3adu>?JuCY$zkCumb0+JPpICt? zYEhfh`!qci;)_90Lw^I^4R5$&rbvgBW{GHr{VB#?R;(z(e%c`%IL9Y3q+T@!qoVpe zoYYB_ooKz_?0tHe{)B$@1I%kJk4_pVK*7qLsk)yFwK`7y^j?5?7>QoQ=sruo<$@rd zeAg?*3y%~LE3RP)VD(G+L0)+TJcWb!2OibX=_Y#2o`QWJzl0O|2mXe{yh?a} zS9x9vt>=NiCC_!T(($V`)RN!C7>$kDG050z3rw`|Fb81lIhC{oQm4}THA2t11cLK! zYQ5w4Xm5eG|9D$lJ-)5MLawn)biTHBL%dym5qwUX5u=C|WGq4{lUoz0`K~Q7vXbv` z{{&SF9y-XiF#n?cVFg9d)X^PtNgEyMK&F~EKywqAnb-}XqN5tr(I)$ByMMtCccr5> z9_B_DqZj5RzJP6p>YbCnbj|zt)AUj`D^cC_qVc3#{i#TY&C{y)sx8QQ0i0QTvViG% zx7x~35-BKZAIl8fTH5iUe+Bqm@(cbSsm=vkR_L)pd(ii57=#l&X6NIMZ(P-Qzz$-d zciO3z5O4^FK7Q%k1P~c+zIlH;k=>`9FsQs9*YX z{p1OK#$5}xs7>fNPmf9JHxSqC!n;3AX7J`=1wFb3jq3<5iK57?YCQQXeclmg=q6Z6 z9AnC;qkEyD#3`_DE5W6qPf{LH(Y&ef3s`1GH(89^Dh|xZ2V)`QWTnb;19@HuPm%u+ zXjg%ADDVOV8tZn>qdkyL73C1?S@b(;0$2}H{Ry{{J4@IC;n@<(MGQF*DxJ)P?|_cx@(tkh|Ce^V2Qo z+RyYK-tmBD-$-r0iGG^tr-eVQ^C$6bo;=emP*a(>cR@K?D(AcC`)N2rTwb>PjU8T^ zKO*4O*lc4y%!(0?hB%A#2$UHRp>RE3uOHV-_xQg|JH~LA+=Fzj53YsS@eIz|dHd)< zlEFAZCG0isL~vjQnbI>`=3VBN*SqM8uVZ5#lBSap*tvNLn7M3L3A`HnH_if-69Ft; z6h^SK0?qkV2O8%M$t@R_7I4obMXFVizDHV;tCJ%|3!N(PUny`wQeZNF8NZ*E6t;(6gHiyjAa;o}w9(#G6qy=r8!HOk3U1YT3_*0(;xd(av_*^wm&Fp#gC>Od z4;A4Ok=;FQe^M0Ln6c~Bv!~zw#MbeTpxdrfKLQREJ0q3$vPdl`9v{CV>!ELXvHg}y zZ5>9t-%GgYs259ayN}&>l41^TND3qV7Ael6kVray zGa|*AaIBF($-sq(oKrkzB9|G3lsUg%NcpnurZWiG2%*JpksKQHRWpAuKKBcBOiFuP z{tnYhZ~LLS&QPTt7nen>P(XG3Jxa~|yZzMV{+SUSh3un{z`Mf{1ch~LQRl|2us#jW z%&bawl?iB9h)dni&|PJutDz zdMhd;JQJI#E{Dzo*QR#`PcH#GK4N?1_B1S+bvz$k%o}ov-U%<%9{5> zU|S31YVX%^LijhhQWSU4JD}KvJ&WVE2k!;RgDbNd1MdXy%}Q$s{2I=rt${%}>D7T3 z;bb%ho`*BJD)1DXDb0Z=;Y_UyJPyZN8F&QFG;iQv;7s=i_Q9Ev8~C65(Y8P<@AZCwhgJHcY@PRs-I z!o^nF#O9_p-Ts(~)H}PZ1g0yh)bb7wsc%Bq4o zn?(ItGEw{Sh_+6pf^!g0yfi#ao9Yz$XY#{8%kZ1z$LJg6NAqdEa6zF5$Pc8q3?HO; zjHt%DNqXS5ScRw+c4I4pWtgNwh1QYZRPuX({21Lte&~XhSb&}3h2$}fJZjh(o<$zC zl_ch7XP6ehyJwKcYIcU-N3q!EZ!Djk;g`vSrU)^Oo#B4+xR5+->fyv&!@CUXVl;CvtJy;F=Vkdc}3y15MkCV zg9{mE&5dv&#H_gqE~J<>H^YS(v!(zp_urdEsoZTZo$kK`Hle^xcm0D%jj5dnNbOHO^_alfqF-H70?1kThXA(1LU;JKR z`lH#*y#(N=z6QUjnrdKzHEY~H@8KY#9#O&MhUiteG;tx91WR&Bol0)haEYT!h%;BSvr{|Lo%pwbWq$qKn+__wxX7iMWEgOxL=%TahF z@emw8xA%MmgXlXh)b}Lp+op@Eu2`Cu7#aEx-j0&6$dLefJXfl_cyl`Id?%^Puu%mQ zWLhx9Az3avromUxdMDH|_%RMH!}BUAC+R4xdAk`$#<9<6;e1T>W3!D_U-4c9Z>(e( z+8g$ly65>4?UJF7BpuG3V{Ee_BS6cc%>b$B%ZFUmn3okUevJwL-mM_~lBJ{<sA`?*&+?Y|h8Hop3O74i>x_-Yw{HLfL%lNbCpULKN1IA5e^ z9{0)Q^4zUbo;U8BTpre+>U@YC-1WXEC{+-Y6NY|>pUtnpY~S1kfvZs(C_@#gCaI*4 ztV$*oiZk>I7xd#L2)W}N#Xh4jLpV)OltX`h}NB~0)>8JtcsvM)P0sG$fPrwe#rTmw+4Ne zxXkjAz(wn#88^_LnE~BaigTj2SSBuiyTO&l;`r?_2ur5p{ns(eZ1|jvJDw^-UGDfPzX9+isEzNSD9+aRMI${1~7J$bXeA9^g8L z1CaSu<(hXhNVkH5y8TT0y)z9Sh$US-h7R5LE)R6r7&D76ak9`POr=rO{>fNiHfJT0 z2fD3a9N&Y1-1w&&DN#128dpJZp0FaW%xck)#AJ_eWiwVn=uQVtSCX)G(1s=XI0_Tb zNJ8Sa-7^qvcp-kqwO_?wz<@JlA&2_c1+FK|C20>tpn>|mJiq3VQ@5qJh2hM8oOT251o;X4w#37a??SxR^lGc(Aqps zWo&(xtpm65Lg}itk6!9`(}tnfU6DF_QTuC?oX@@Gifn^nztR$%$j**z%PYFNNz>D} z*-ImV1z4VbA`eX>z5>Pj0$@XfmNl@D!*_SZ%DR$L^JVKu#u;4$eS2}X^Xg_!t}N1Q zcc#64&g9-Sl2ZpnoDt;yXgWR(*&dtoE=QeH>F}>WsYm9(hZqKAy)0Lx#Y$Ny3BBI_ zI*g~iJ&CTLvKr+}{v>Z&<((Q?bXygE-V6<+Am*ij^kw5bIW0U~PNa2(^2Ob}7APkXZGlYNYEj)|M;^qV&D*^09zL)|ci|HxyKQNZFsK_c|*Mbb%;R%US?NUTb z$fjL-YIJXZvOb|M=|HrVw)J6GS`EF|NP7ccja?^|tfyhc37^3DulDc3ypq}AkjroL zCOxR(=Xzg2>&i~^<90h_Gm-_Hh`UbHDoEh5_O{Hafk%eh(C)j+cad!d%dRo#^V06i z;~s(IlKus>#9rNgYcat6Xc=^Nc5t>P<@pox{4sgbVsC}= zY$VSj{bU{3RX-hu#Zi(eY>clOqZwU(5&9so0sYR_(F6}; zA4FiXGt`Sb*dFgwm&!U%ybLR9wg*^|&ctw@7^Gu6?W73h9W=@yC0&`}j9jQk%du&vn1@!gOe9_ z;}YH8{IGi|oTXv+4RCGVYP?p1JBh26Kpxi#!|z;T4#MR1D3?$vNshuy_+io@;_I3;0s zDV)-U3|S)l)^!l-qO*T+1Dfowd0_43!5po*Qw9Byg7zXvS~CK- zslb1xz`s-Pm4*7uSIboBzftJ76H-;<^?3gEhkiEgpB`PytS{m2cw@nStwu}`{xsT? zTVS{j!_^J9!f>}3ZoT2QD)+%4x%h)|zD|V*b_v`gut#9G!2JUE2^fqepd1X^fDfIk#-RD4GS4hghNTuorMz$}5~0(F57fdvBF1hxvS7q~^>UV(cA zb_whh*e9?@V7I{i0!IW62^=M{1FetE1V7I{i0{02rD{xTYfWUr%eFCi+@xogKj!J|Pfq4?aE>IJgEwDmhxjGOJKjiK7l;~y9JI491%Dqa8RJe(jm82S6|l2(EB0=EdP5V%KRm%vVeL4iF2y9MqSxKH4az(Iin0{aDKK`J$}ZWU+| zI4W@q#5Yf%U7#j#i@*wj+%IsSz`X+Z2pkaDFR)Kwk3b8pr{j`kxSGIhfms5}1?mDF0t*DT32YTuFK~;%y#n_L>=M{1uuou*z;1#21&#YPfx1A4z@Wf3fvp1T1@05LSKuCj zT>|?B_6h6}*e!5W;E2E>frA1y+LMAmG?;9GSpuyBb%73n1p@N~whF8lxJ6)vz&!%H z1a=Ax3hWWsEpWfUeFBFB4hkF)*e@`Pw&Ex{SOr=Hj!N7D@y!!x7pMu`BCtYWxj43+xlvBhW%8cNHB*#dk#DkU+b{fqeq4v|ffk(7_^b zR3eNB%##RqfttW9|fmVUKK!?Brfq4R31=b7PBCtZ>9)Vo~I|T*>_6Y12xL@EtfkOfZ z1r7-87nqe5r-M}>?Z2Tvw5U;uTOhu90__4dfm;Mt2rL(<3+xma6xb%PRp5Ss`vmS4 zxJTfCz=D>4a8%%kz#)Ny0<~Fjnq>>j5@;2u3v>u95SS;h zRbaiqEdnb9?h)7}uv1`AV2{9Vf%^sS6F4MrP~d>Tet}uD<8-hJvyC(tfX z6SzfSg}`!wy1-6>L4j=oTLtbHxKH3-fqMiF2<#WwC$LAL<&roZM#XnT;E+JO#MK05 z3(OK&E>IWf5Lh6vO<=3QdVyO6?iIL4V3)v7fqepd1a=GDFK|TQkibEK0|K+>#A%i# z&??X(&>^ruV4gs`z=D>4a8%%k zz#)Ny0{QS5$c8a1o6eCbm?h9EP#5SBSRgP@V5`7-fm;Mt2;3vEOJJwKpuir1-2(Ru z+$V5I;Gn<(f&BurE{hl5D$pWuRN@whZ=OKAKuzElffWMF1?mDj1qKDS32YU(U*JB0 zdj;+hI3TcJV4uJqftJhTbQl%i5rIPj?GjfLm@P0%V7WkDphIARz&3%c0_z2C5x7_2 z9)Vo~I|cR$>=D>4aKFG2fkOfZ1r7+zo*SoGmO!gOi$I6K0)cq~?E>osZV^}^uv}o5 zz)pcdfo%f21@0HPPvBmGg8~Nx_6zJ2Xyv{BO8yl%DiKBm=1By*Kuut_zzTuo0(F57 zfkA<70$T;v3*0AgufRP5y9D+N>=W1{uv_4$z!8B%0tW?ZSH{~;w!kcbR)M-ehrj}X zc>-Gn)(hMsutMM-fn5SS1qKE72<#TPU*JB0Ljnf{4hZZQm~~a04pxB{fuj<)Kz#EA z+68I?w+O5dST0Z(*eNh5uuWjA!2JUE3EV4ikH7(e{Q~<0_6W3SaXO5O?})%5fp&?j z3CtFlC9qteF3=&cKwz7|R)O^bw+P%TaF4()ft>>T1ojB*7Pw#Fh`=F%g8~NxX3w+m zA7q#;fmVSQfewKM0`mmg1=b7PBCtYWxxg-godSab+XQwC+%IsSz`X(o1r7-87uYAz zIzLVai@;HdFd{HdBG?6L0<#5H2rL(<3v>t!3TzYDDzIMQK7o4$?h)7}uwP)Gz#f6! z0!Iao2pkePC{VjPPP1%*SpuyBb%73n1p@N~whF8lxJ6)vz&!%H1a=Ax3hWWsEpWfU zeFBFB4hkF)*e@_^L7Wa&ffj+I61PBn^90%jY67tQWXN;9h}y z1a=AR6xb)QM_{+W{Q^e>4hb9-I3O_lnmEm}1X=}J1Udv32+R{`7g#TFi@*wj$Pz@SOktrgb{&x62UG|6PPWqLSVT-U7$l? zP+*(DR)O^b_X*r9aF4()f&Bve1ojB*7C0(!MBtFXK?5diAvW$?#Oa^x;1B=o6A;qB z$Q8Lyqx&RrF>!H$eoJv4OkWxYu*k<1D$v_|tT?b!5Szy4l{sF-XV-H^aQAjPPU)$e z?-6L;gN{QH86}ZcoW_IkZoR#@U=)YG_|m_G%&7B(k+s>8;6um?ju4mN_!{nm#C2!5 zzzsK8;O@5P`PdeY`}NafTA%MK^VYg(;Xj?h#%oxvIAt888a{~v;j|zwfJJ0y``9$^ z7+|M>5P;!>Y9Ul+D2h|i0%d7HD<9)vh28wjO4<-2reS+zzu~xHk2$Q_Bm&? zy9c&Dox6IhSymhuID(H2QS-xTCraOU?{GUk*&gqYuEUXpBl?MVp1}Ewu@k>;eXY@zjM%qf8j3Q0DE17h?Q5VImq!&UT9^ZpV$1uTa1Q(xl1C7V3A8w=vyzkE>b!TIIUnKn2$!t{cd`D) zx%(~KZk%+qICnp7+r1nBW~LU=#dG%;k#DF6_F!Ce4_z4^ab>HX^MWhXl%d+yi_zl|MPmBv#+rI+i8f?178U4Nm{f!R_ z(e3KecK&J-ydw^YVCb1oPxz*Ri{**O1%6Po>KH20p+=%zK8On(Q5zoy#m$Dt8i zNasMfi^5$92cnziPk?c|`tb$V2^{Nm_2Uvd*9jQPb@k^Fau6yYq!V%wDkr29sz9!+ z&gK1q|25o)Y!Sm~f8`@Rde28Xj#%}+GYOZ*h2Cp_85WbqGJP5OW3eyeR-t^cPYUZP zqcG^=8r5Jnr6TM;l~AwNbtjt>r5;8;pd^zAUOg> z51r}4Gud>(g-Ra<{+c-ALcNy^?!4HAcM7tQPJxDWU`1votjLg!7hHZ6cohY)?fw?- z^K*sLnWsiJUz`117(II4e<3bv<}>z+S@Gdq^EUBAsO4<*f}(EPb)X+T`W`rV3^(Xa zakir($Byc|j-b;ZOJmpAI)-r<-J=*U=y4(L=!mYxNl{eb=uGc?9Trb|hbMK@IHI2z zRJNcdg-#IxZU2J%=6bs=4yyf=@3oIQe5=&phI4+n(Bt$f@8ln>q6|bcaM8+|5k0hF z6c(pmpiJ>9D7BvZYmqnH3swoI8%bHrB>aza8#}$q_k-Bu`9B}N3=z<&D$q&6(0kz= z7(sODA?mzQ0zbx(>%=YBxF;j@jNbeD6j$_nONd$QPkW$)0XP=O2um+N=5F8$z2b`g z-Ss-6=#ht%iyIPQ^7SRQM(`d?3~@xfx7JA)ccLO!>yeJ@%lQ>FO>AQJ(bx&*C0TXA z_r}>FrsFke^3thyr4!rfh5aq=&>!DO2d1<9h0gYmvvy1?3%%*=eI+Bduq=Aphznge zsjA8L$fP0|SAvz1=bUK=%XU9+>sXHjjVdoX`9A9WQ3sXJwz?0*pzHycQsY@w^cdB> z%eH#3n~d(}Kkq#GKE}MV=r?E5^ZvB5F z^Wyn$m!&<&QE%bGx!%gt#}4c5ALj+$a2`F3Mllw%3;XNhn-D`w^$^Zx)-H&dqr|HsH0DkHA-0t6ZV3lL<|)F0#gn({(ofH+kArh-2wVhNzy?7 zZ4}!Ha}K+TvninHY}8Em(Vj$@S6YKc=`s%YdSD&TUZ1S%l#qj#A^k0KBflEq>@KzCavTobcgyQ6**a#>N25BVTw7Vl4|{EqlDS#VoQ?&|A&dclu6rwsZk}s(Mju+OO_a|_acrlT7SZ$^%{)UFPfwEd&w;Ppx*oDBqi?ro}=|z zjMf|fqocJmGTk7>?%%TTf-A;8!MNlKsf(WwIQ$E`r8rs`dYec!`-gB2?BfbCCs+t< zRDqAcG5W(lAc~pF`0-xdC-S~4a*ZqU6|3{PcgvRl8a9GIB3qVdwYVd)cMuj|T~l#M zqeTC-pKcG@Kv-tcMHt`=R!q9T!+BErceybHFhg*e=Kn6FkK?+ zf*ChhAB?yTYDnGIQN?~cNnv2?_?TKw`&fn-=E#b&HbgT%Mlmqo^1q_#%a7O|cpXpc zq9v!YU^ojJc*AH8>0MHk9?v=3%y z@B&ajAzX6eKRQ52BLpeX-wPSte{_gY9wD?Ae=i1A|ItxG4n49AU-kFuq-ud#)WE*s zQDjx`2BV|D`&{$TxLP5UpM=3o2<1mZAGf~_q5P9fAM6MW-_PY*#^nPs)%8rg&0U4({Smb1dS>o85c^w3XPmV{B!#9LB^Id#Kk9&ByF1R;(3>S8P! z$T6bB8@zP}Y^3Rt^x-Nlm*cqBr7J7^! zB(d0B=h3NDO7bJQ*bHM~M-N#Og=6B4D8gb@gcm@a1CQd>iAKDH@y@Kt{ zunP>PhSo6PN*jXu$M(RlsC+%7aXa}FR~jxIdJ_{@*at4cWs4b|nd#hpkDK<4??rlw z|C!-%T^VVeuJklUlYk~MN(Vy6>d9~}KMec8u+@N4k)a)x-{fJI+aVEWX`DE-K%D3O z^G)JRxA-qHC}!(uL}Io_W?6?lR6a#A=dL44w+Q9SE8I#jdAo|gI;6J`4x-x+>Y?{B zGEIg?AoLv1#bHi212?jJ$(C*oZcmdI3iG@fv&cs8EOf4ni_yU@22HX`X2HrTJoC`) zE~Z)Y#d+)tE35D=CtnBoma{LctirdIe7BHqtKR-*5R-A(TcsvzXH~|@7l~hT{1N6P1oB(q|S6_|pa-bo(pLCV$P=P^w3$!T!7CsAiKR@rU5532&9Tj@F z;itsG;L7P>1WF#xK-3<86=l6!sR&Nr=r0eR&f2~aL;=^IXwFFXcrj(fW%STm<5r!> zgVdFj9`rq2Nx8c(u!QW^r*FtoitEp#s5&O1Dtff=TfgS=ypGm$fK-$*7#=J9-pk{( zbGA1)mW#LpIO~MmA-+Cfs9~S8?S2MP<9FmbbB;h8@Sv%_)T2L4P+xAqz~_dHpK%-( zIBdKB0WZ2D?WDIPy=eRQDWRwXvo`iy7b!W2!7t-DmJ{eD45E7Wk@jpv$NazDP8>0^ z#;WJElU~!AgByTy)*^z^S4LLR(n78?@fm{|^3;in5#$w`bKK>}Jrbd}s?ZV&eF&k-KYoR3@6YK4xt8T+#1S`4VW1xq%ux$|7GQQj*o;d&?qsSW82FMeT!W&h}Gjf&Y0slPo9;hi_!QJOzyU^6>%ikx9+_u&I=y)&?dYt<2N>?O}s^tD}Q5B^ZS-F1x znI4wEY4h>?7P;#*%JQn7bBObIoLKkr6W(;NFwWZQ_gE$z;7}OGc@c)zz5l9* z-iv()gzR~Z3HeLZ!hxg6idilDl>adK_a*puDgQ}S!^fyRp+WPNKtd31j!x(Y%+F~3 z={7RBLpPJ3LAZGp=tgL7-?KeP!l^4#h%`|bV~K{7XkHkaOabvlrx+qbQoUsic4nRP zj*>k@iTlH6!RpAYOj6!JTpfW@GTnAR)I$a6Gwn)p;Zk31j7>h+wT!uUGue<#{sUq%+R zmt|qNNwB}Z3?mPG^T-!srD1=48AcxXmXj|8OT+&9GK@U%#dyQ^*FU21=6M=#j)3+3 zjOvHtll;gQ*Oy`7nVGo^!5D8224LeGme78R@diXCwvdaf1u>;~o9<60og_B_y8W?E z_(P)Az0fsfp|7x3nAMFWQ~m8AH@r{KXbzCMgV^2h3@gt`7)K6V15am2sV5Lr2<;4i zMm4uMgV_61s&}%UhseSpR)d#-K^#QrSqvhGO0<-l7c_--K$Uez7OcmVbgsP=Yyj6K ze;02%p+5{;J1~cO64BY5Od37?fS+JhW)eMpm!DuXsD<^Z^h9%t&W-b6{f3@G{4^g%aOjDqAe|ephAkXid3|5!#sx5k z19Wfa#)Ytm1GKYq<25jf1GK$!ADh=rr?_L6@!99t z#e5(*mdQt0W0Uz@Cobuodf5TiBjjM6W7;X0l<V0Fi21^&LF|>aew(S|AqNI zar+3pf!|adLMO(&F5_l>`RMld(2Uu91h*lVo7ZjQ`fyy5{AWFPCTuE@`3>~{R`63y zXn0EiW`E3^=>lfl?@uc7C21b(vG)nyJ2a1BfP0JrEMT5>p)WF5g$jy9Zt!w#*z9~nhEOw4f z#ht8}FyXGp($K*o`}4L(PL)`Cpv3D@W}c5Z%`334a)l1(e<=FqU8hDsR9naMJewMX z{y22k8Q>FY1GJ@QJ?^51N4ULDOiOx2OoH?41w!1PidW3(g*r^VnXR(75*j+8IZyE zoy&%)AxBGQjuquRr#>He*%`69mcM62LanAztrm?v39WD^ku~^1TFe2XmD?!E#V{H2bnwjd&{3P~6Nlxc#H1+vnOK%kxQl##XnW+Y zr$^86O6;!_ItI)JP{#;Vmtd~H>q+WA35t1W<3`s-XB{2|AD}9r@%TtdW)}U-q@RoE z=VJPqML)CY=Mwsv1F;5sh|pa1#4ZjF&47VnXnD&>FM$Bm8|Hj;&1I-x!KHlT8 z@g7IVdyFJ`B+w&)KfvZHFL@GwNT2~0ji93|f=&rWzw`*KF*q^uy6EOs^btqLn7@cK z7CICxT!M;1-~8YB1%vuieAKv1^*|R$2hrUa=?lMxN848)M7-f&;-~0wBixAhin*`I z75bo%f@}}b8+6sH=A=7<>9SyGRO#B;jkpmNa`}yO@wF!`4hXPnfdE^QiXNwDJ#_Q{ zxsasIWDDup_7E)z4)2}Bnv?1wXLMz*%1AeTGG|Dy9ziKakipQ4M#e*j(qg;LP+sn{ z!<4Bj?Ih9Co~061M;wI$Vo6-U&gZGSC{8|`+&vo{X%g4`JcB{HAWDcZT^*MaV2tFKBYN6m zWH+9QvUiXdfM`Q@f8+ODbBgHxj$Mcwo&CMPgd|Wr*B}%8otQIo92GGxRNV12(GRM_ zWI_5=kdxVo(DMis&{rkR@9w5rC8Nu@=-!y$RZ@HUwDUXK>jkYZ6yAw*JS%#^gmXL$ zyFAaMZzRw2E|PiPR9Iur;(YziS(uk+VM*=rzhFM5W(DS)?0oYvY!-rEHF# z8Pp

dLc+JjczT&ODn~@uI^HtBG#doW}yFX)HkUEcS)pHT}CrTI_kJfAL25$}y_Z zvu1D9VbOLojvI|`0(+*nVW}W=1~%8N=#r4<#}2oDJZ(qL2VH0X7rez17>s2nR;NRC z0SY0-TROVv0oHnwZD6!`H9t`MWexoiR&iN>L~i2RLs8^w8StXL6NPA9&dArTc+_{D z#s%LP!tR5g>i6xVle|#!e?NBGc%NM>7J4js`8COeLyf;5gX(%JgZ^6@{2; zPQDhLDYib8akSfkDC&Dqr`_y?kqkZR#rpNK1w|p(!`2WqHOHZ`$FlCMpQ8MjFX+85 zPm5$uH`0Rz-N51TD>y>)9njB0ri5*l1d=l!?Be$HfgT}kfa1!Ie@{cRpexq@Ctk}3 zcQ)roAuJ$Z_tf19)1xjmpIU1T7NBw`@5LJ!U%yR`tpvL9*?;$^fD=!$xc!E0`90Ck zeIt1K;vKi!9(mpsoxGh|Q}wJaSK7g`S9snI&$UP~bR6Sj2iBEhpceE{Q&+E;g|9i% z{BH(N?X-2g3h&@4zpWz;DFjdD`{(ewM-VHJ9moZF*>=xHn3?D(xJ6=XA^DTie`|vD zk?cQm8aw@8;jN8kBLAooG1ntuDtBX2-rj+g@Ke6~Zlw%85Ij|D>##%I9gZR~P69OY zAc^?<$NV-dIZb8zUMSkTu`fbB8mmOX{EJY`z#Zm?SMrDPJxB8Q5c6OC0lS&_rHCdS zq6>4%tfcf|u;|E?wEbzYefQ^R$PlE@`ET(#!k(GH|L@^P^hEm@iCrKWpd0odvDywi z7yZJ?_A`^c@3x=TsQ#|^&kUYg9LRQ|XB6=y3K9ilRG1|;t%%Fx#AMfYV0!d({jglr zetO!Djm}5E@mKtJsVmeUyQs@{K!@zn6FT00u)qEEbYE`S@~75EXI-vG=l+@V=pp24 z%xNqBxo$gf><1)m>p91vHr~!B-~k3ym{I9bQfVQ=M5u+t8tZlUr+-vFD_R#f!kh<47- zpyE?pJ(NfFk)W@DA1848SI?6`kiPeakw>6Yx)U-DcaWC|TQB-0FNJk#@JDCO~i zl2YM}PfHTpmU4jDb_hqr5)hB!Te^7O&4W`G`c!xd&~5(IbDJH23)D>I6M(T-HaWv*(Z~=TbuoY z#c-TRQW^6leeux}ob1CNfqE0PnxMS*DjLH!XI0p;zL^z-w{3I3?e^zvGvS3J3t3$h z6MuyFD9A~*@r#=WY`4E?o2lNUFW~dklU!NZ^rX=fT)W{eB3F-aK|-f6V@i831l|0u zgL~mm8(U9PnQgn*qFo*hZn+QhBK&d8lC<6s6IqYmfk~Dka46%9nySPnSkyiWNb}6o zm76hJ`MS(ju&w2UF zxlI}Th4!AcdN9CdGbhT>hFoBKq+|iMm~F6z(qjH_`pTvL{FR=-dbO!CI=c*FU?RiD z{IbWt8e8pWtjL(DN1ZgkyV8t&B_ekre11|mW*0LNkT?&IT|hgTj*=R~g4sGx%d^mt zFfotM$9cL?1~t>~m~Z?yo}cLn6SNFaV*CUxNL+<0tcwBMs z*QeI^{u{mD`|9Lm{*w)f?QD4$yY;|9)fpnp$7W!cldqI^KBo0yL#uB^ehGaQ77!uxZ2Xnzj2zn>i7@*qC#&zZr|NAR1OiD2x{>B0HT z|Fms6Rxm9vxjL{l*_QLcW9+$&JjXG)zX!|UQHg(Ki^8<;O~`2esh(519--q_6O!8# z>;IG6)5hPYJ&`7sB*o#{B%>{&m7;wYipy_G5&eYy3)XU;kO_Q{X>8 zM;lAf2i5S5Zi0P?v_=Kvm;dkRgB}NK04tdbjw0=CpYqhmb6k776HGx^$!DXzt^St@ z+uLi^T(la5N_)cqlK2q7tZ%)7>;#eDu<`@70#MpsjBi{(^1roI0O ze+%wc>D+9%)^TZ?-y7$hdQ4FuMS&CrQWQv0AVq-`1yU49Q6NQu6a`WgNKqg~ffNN& z6i87ZMS&CrQWQv0AVq-`1yU49Q6NQu6a`WgNKqg~f&YdSIP|#MNASGi{x>XQsz@mc zq$rT0K#Bq>3Zy8IqCkoQDGH=0kfK0}0x1flD3GE+iUKJLq$rT0K#Bq>3Zy8IqCkoQ zDGH=0kfK0}0x1flD3GE+iUKJLq$rT0K#Bq>3Zy8IqCkoQDGH=0kfK0}0x1flD3GE+ ziUKJLq$rT0K#Bq>3Zy8IqCkoQDGH=0kfK0}0x1f7<|uIMt(L`>+$D7_eqU8{Zgp#` z#cpqCZt#0*a&okJg_=Dt2R{A=dR(d5?c2(#+BP@TIGc+bTdKF^P@vZn@Of$~5up(A z@fWyhS&reUtz4;XD{kDjy209Z<72auC=v&y>2phGFEO%>&T(~f>WMM#Stn&FQtE#_T$bojdui+j~JU4lq z#jTWpZ=9#UYU>0(4K;1!eOp?M!gHBdQ(7xlpj2>+TLR5~{sb3e@hVjYqLh&h6mvUX zUj-k^%iWry3`#?=(NpE~RQmiaUQZ>LsAkE+8cmS|&%VNiHFr|6?uNGl7Eg24)<#cd zRdaKTzsldx((JR8vX@q~v$?9Np;}7_TBNo3>pk8b4L*+suv4q@dbH-2#VxJAT#GNz z+UoWAe3hOr2dWy8iz*Pw;x>G>D$QF}?Lj76TfBa)p;p`Bxpuopt7`Oms%my>EdhUP zz>kmd7n0)cXzH3lMW zQbbXH8vAKge$CU?;J?-UaE-_3_qOb;q;}$|F<)WdKs8ky@&h8PV67?O_q4^|)~AZ zb~aaQD&k^_<_ASQxplc(Q&l4}XwT8A0km3gOB1rJB5L*cZllL5B&zbap#4=+vx$?4 zA3#$74v(i9G@=-s;nv2ghGwnF)70Wcv#iD|Xbia)R6sR)gy+kZ)zqyyzR%*U)qEcR zA~e26BMp=qP1#dh3z9T!rz*rd0jf{L*{M~dUo`mqc-HJjVmXUY@pV;R8WDvk zW3;WU9#8}YMNDe2)IR-`@20Beom!JG-f;abs3K%fn{Q;t$Q^2@)!S0r0G6R>9j9fh z$J@|S(?AuwQ`_MM&o^tsctJy&{4IJLHPaaI)fDlfR@} zNq;U{2yq-_omvvtf1n8|qj{O-T0}9LwaxCTW^G3UHRrQS06yh!X{Aa8+w%G?Zakr} zG!qvC7X-I&Xw)hzX|${a|H3EGHyZFgP!Tn2r~0Y!fXUPu%p=g;3`7ZHK&wMDs<9Ne zG=niT`m`PO9^}ZYZBmgoHs5YUL7HBVpLv$w8}MjIw6?0zhf1hNqeh3Rq|wDv?(r@* znu+0$u6d7V5tUwjp`NOSS_&9Fx_kiiNbYdli@YBAZuNLk05l3vi8x)Zrj@t&d<__E zG-N$Mdg004d`I zRGNC3Ia+e=7HNT2N;2tVH{%_&@q{lfE1Tehn~`vhr?x84Xnqpav{bX_FD*DLf9NC) zEtSLsrE(h4CL1YFPcO8K&0I)Y=FRp>5r%IX7x8pqOH$xmupK7=!CsFXY1; z6!o>JVfvg2+qn}iUPaW;S&EnH8e6tjHJ+6o4I5~^$sf1WG(adIZc~XixXn`10J<{s zX#xcrjCO)-Qz(t*MEL6ZhQ=DL8XxqdDw;hzjJi({4p_i2WdeEtGee7jq=D85)<}{I zc%uhgyA>_d2T4q^a*LA#spK_kh~nbmeI7(mfW+70X*Gk;%@{b*vyf^{Wm8K{0PV!$ zO!x+vPD=n8Z)pbSs`2<~R8->(dQ`L77x_DhX@M7TTIl2TXv#H}t$uG}-YuJv$Tnkq zLB4CzBbp%rRa4U@<_n(F*s!(w`s<17842)MwgW-|rG}I}=zBGlH7GO<>`JHt3u74y zxg%CiJ%I;!VjRZskEG3a@MVhavuOCcdSSD+uvS~>))tmoHgm@W`@&cNhPnb7GKB)} zp*%Vy_7%2voaq7R<`!s)HsawQ$C+7>T_s@LN&B{v^qpunHZ_Gxh5f! zS!tA*XkTpl+_}r3tR?G8EnwpKz5jv+Y0D%w*))2K= z0>F4=CX}lc6B`~U4CGF?tO38EPiZw(s0}KE-FJ5OS7=QQ5P3PGrwwu^xSir+oVR-K z;#Cd4%380-Lz0Bi8CVM7D#0L)2#WtQi^Ytvrc$w3sz{^dqrWCZq@gS+aGnZH{7!t* zkI6<-Tpx{0)d8;$qkx$oq8p~V$sy*q&r#FGdTH@`$TQR*R~Vgb{zBh;=o+ZUEz;Ow zUbBfPS<>GSXYZ(u%4&a`Dv&XEkNcS_9E_@-@eLde(3sC8B&A)u(0A=wU2TO{W<*7+PKb@^ z2YMBh6ggl?2qMnuqvp%(X+qLcTdh1-aJ>hepOrOq9EEn3Ims%-vdZ?2W z749*8RBc{|0L)wbRc1{nZ)keJqPDGRtg3UXeql6yYFfq6D*1}y?A2A}t@D(DHHjB= zVXO)&tEy|DEN}~GUA(GEJ)3+EBq0%qQ}TMNAc?Q98P zqR@P;AH~9mU9}bCDUI9EX7L=_$1$2fRcHsyJhWh@S+x`0o+eP0)N2a!r(5Du)8>|z zMoa0YO&d3@(ALC-0vdLvo8Ai{q{c(=zzm72B?nSJiOLYc;cw?mpz>-wU}QDSvhuWR zuF>WPl&BABgA$%EMRVU)R#vp>^UU{<1Tjwp^013mYq9&G)N8DymoOSYU%C_n=SqB` zsR`Y@7EKjm3fdULWrD1_oV%sgzscuw(X_d=t=i+kutfvZR>-tw^Nh0)3xE3Tib$vg zC~~)Y>a>O0T93aB-&^ag!s}Jg6YL~*nZz&cb~FPB2>CgmCO#(g9`AOKo5d8!8JN#* zs%ozDm_%2?k>9(MWFsOWn1ZSTCVsAld2f9crsZfJ*P>Yjd=xRD^a6{w$E#6l7tEC> z2{h+X(venI)tXCnXml`QzaSYX%}Tb$ow-`k>W!N=L(0R59v98kWCQZnSw7%|^*eo} zO);dG9Lv?DxrK~avSI}bbxz3b5N5cUG}Khqd1x3lmFgS=EntF#m3Rnsb)$zyTOONO z1|wy>`Ch`u%)aP^*n$asU9-lL&-Al0w3>BGE=Z=x)*@{OiI~L9HACVCKHp1VNh}U* z_Yli(gf2fWsVfr>v0qBOkpe9Qkjq%R575EMhy_Q1Icr5&7R@o+fp7?ehwEU`x zSd7?}4Yiffi~FD|`Bd*|c8CTkdj7X~R3Hni>zo0-vi*036R6^dZZD@lE9zLKX6kDVZftRWc)FG00zR5nFLiV(^dx3;iOa`9HI%GMxX^g6T&Q2(<(>PwT^ zYXB_qtPj;<%HQ~Z^C3>akZ#XPU9HCb-z2Y6SVC$ATCbu7yvl}_YCrO9Dp*;gse&{P z0`JGl8oF67bV@Y4sHF7;G*Gn)fk9qt4$%4mYs>eG zXGFweaxIN5b*k~-!K+Ys4n^v}g4bAGP2nWQ&bphGnztVqmPBfxylH$9*!7_m+L zKUz*afWPKx^Hh=w+fs&^2lBxBY|1_Yssk))(dtYyicZP{k}p*Qqor2TtHDW#N=Z@I z;GEl`w?l)J+?yZcVqmF(ish%}1|N_`l^Ntn;49#fw6@NjjUrKc=w49!BCGIKOYTjc zDqhs4&(d;Jt_AbStt~!C=$6|}gvDuE$FS4dgb$pk8LOzYAW?-5h+((ZSjS(aExjJT ziuLl>kx|tbJ&M^fS3yiLppSLp>I|av=hfux_lh8+#j!Wh+`~*HpM_Iiz^! z&W)vF8Vvks$J<-Bd3a48A3?Y0Z-Rcb`b;s*b?aPBM@?b9MlB)}k4pSv7^>pLtg;D1(q@dQ@XRv`#cm6;my0F+(vld$|_X0ywv$yzyvyKrK2P0t zS>>z7`UpmL8cMJAX>R9Qcj?;O<27jHm=)95J3t!>ptebK~~@9{$nTybUIjOk1vUz zRUbvGH*Nl7Cm7Pt;y_|OBCkw)WH~CjG*fZ^VQHoGJ0#B zw~ACN;8OA6rMVV-8!}!Uwl%S+PXh^<7=HmnTO&_lux&`q18D0@;?6LztoT@NYPDo1 zm+2#;InDLe=0@zks>VojZ6xchecKYsZrY%hO($tqEJnS>8-iaLnykJk_a*eS`lhzb@JY=!h+_8yW z1zu=YG5%s6hRuSg80bFWYowqp&0U&%Blbv`GJ2)I(FX-0HppR0mms=hF)|?lW1gom zagZkM1qkk|#*B(*_mJp8AyFl>_LvEguqOvG79&rF2xj-R(OjJdBvm~`Rjq96Ej&tA z@o2ZWwyK&U(D%5t;O!P47O|;~K!45xHIp0TuFrza6g8DzY(!-hF75f!;iGMGyFmk} zv(*Q<4Pzl|F;z3R0&1k$uEP>LWN}4kszhIF6|`DQ8=yMB^zZ zwGgl(X$unHC^6P4>M$SW#8`1a`Z+}hqx{BFh-L>#4B`4bg;tXR^lVz8gkpj>RAPrG zH7Z)X!i<#HE{zZ`nkS|Ui%AD!5lWi-y)pS~@u{6hpf~M{+(2UWAR#ekQn@(m~rz6%5)kIhc{)+fa#t+Grlw zAWmG$2X?pt%!{_vnsaQLW?~gi)t=u^3aG>k7;GW_WvFDarb5FO(W#oI2|n5eV8Z*D1oI5SNCQKyF-TDY&}RFFyI@D&-Fw>frcW&;elulleUMwN`?? zReR!#nf(1mOqWfKBeB0~&n>h!(bRoxgPsuz0E~}S)X8sH%1sNqul+nd zl_zxZS7@07Ym-o^U_byHG&Q>B#G0CQQ&r7&Xabu3TtZVOQacT+@tQ$#`B8Ri(E?cI<6713MH;*t=vwXZ)YPm z3-cCsR+`53(3H~c4L(v?yZso`F-N7iy!U^F#ss$K=Pg>cG-ri|#TE-h#6T-_SKBq|GR zK;5_eANJlqzUy)SAAe~>GBZqeC>F&^%c`X~i4cm!1>$U3r`Tp_wDZ9gLlX|LZt&3Fn2Gm_OrJ59 zjR?D?cm;$WYKqKi;O3b<7|X3%RIScQe{fd87C5kX^_HZ%tm`w}o8ibq(Gmuou3aP70eyrnRNk{l~@v*u!9P6ktO6MFjV_!L)I{W(OJ$2JP)O z`5qX#@n~v?M;HwE+c%2Sd8IwJXS5U(ZM-oOnjJ?C2UN>Vg!|~6_qdIDn;ln7ESuz} z$hJv11%iC;0iSicf#BFKmr1&7DWn;xXhCx)!WPpm{#|gOE>a?ofKP{h7fvv6J zj*geM_}&U`;K3c;wKhIMLR7_!S$N?DvoziNF^_5W@|~^M_%H&K87{>zuPD0+GjyBR zPMB8e9)sJQh>!Kzv)war%s*^7*h+13<+L))P-p8fab(Cuoa{j*W|F`>&XynY6ghK8 z9_*RsDEGUSS>P{bQka@zs)z1u?}CnX+e~Z;)}h_hwfE6FZiw2lhmdHqEXR4c)w;cxIv!#(WOvkyMr#N@!%q`{MUn_uJAK1@0=t(X(t z+H*(FQRfpUv?PU|em>UUSX_*=XH?ESCD}@|Lr+fKL33}C?L;u(!PIOJq!lcF^lFKfrsaljl~3_Q@}-t^ajJEqcN zz_G1T_BA{p!4}^%~g7$T5Fw(wV1GMj8V=+#=7V`vZ zIMQ9(Gm}4YN>l6XO!wwePVb{HuFA$ab@vN4Ot6(?@2&H7j;VvW(}gdc@U;$vI=I*J z__iV6dfG`{x2aI^zthEhlBxc$(nX2l3n94GAq%snPr*Gqb65cmXIPek?dpl89n|(s z(!J7PLhLmivfI2kLomC#JG;nQ*jb{B3cmU1ue3!Oi^Zb`*Q~wdvwp{o6Ifu4!5kE7`(Rtb1kz_ z9CP5KOfD5IF}~avyhVnIFQ4D@dnIh&Sy`d?#%4{&`sGkg?$O19q*z6vcjxR@7iFU< z@uLjxF$PRdDmBk1m5!}!?Ke2xZQU#&YZiwm=8Rfmf>&U1gT?n2*jV9}`&f*<4Z-Pq zRyW-dImXYzjSo5O$)*1E8P>sD-q^&ac+Tf|-V66(q*H)JuxjTNcbHHW!D9Iu>zDVw{DG@Yqu1^bseI zIQ7gCJm@!KP$4qf1%u6msiQDZ539f%F+6R6<{zrvtgJy+MWZ+jBotD4aRS06tqm7F z_})8!f{NX$N3I_x4AW2Ma%p4Zls@yRWbJ1u^g-%iw*M1JXY6nZuL60 zyJV>x{WL*K8^owK)xE2TGeX@sZ#i?EeN4zbYiT*UDGk2WXp*7vM6-F^1;@KLPtixJ z1{^*1=-gHVh>blS*+C;uX+w}(5wzM$1UHPa?kHr|_$jQ9=>2ZgoGCbBFdLheY=aRC z+E+*1`|})#xTM6J#201S@oM*45C#H$1IJZDOOPwm2p?eyw()Xd7Vque*1>`nE_NIUf9k>DF8S%=#fdieFhS$NEk{-+rmKKTa~jC8W< zCSPH@{1QVinw{0MV!}+cuwp!8aI6?322FIys>tbu`?C8E8m64MA5`=XMTFee(kyuX zi0TVAVlX+dr=mEOg6R`KyoA%(9Aq#U?5vtw1VAsG8x)tz%w)C+H)ZV)@8c}#J)Zo#N7 zo)6UINzJTfAlr!qnMrIwa|g+#i2($ML0r>uH}9O&3te*w#q(A)b;PV`?n?%47Y=)! z*~hu1w!6Uv_xA0&VFlsR#VXvU6FH|Nz3pnYlotVEqxHcG=KY@?ik?{+Bc{(e{K`W&^mYt0_<#`_<(wIXd?RKsR5Za~ zm(ZTKpGzE`s&q+raWChEXAdXYhZ%>qaE9Hth_jfTdyr`{9@K*^MU8nm(1yK~>5@ zC|FB}suE`|_?j!15H^c#`HVrdZbO3-2fZSD>2O%ZDHzbQTHnwnxKzio6-VDE#@-jS z5W}%HlW*cm%EeE|xoJK%adD7vB{P|yC2=+5m7$du5tOO|oaOixI9-LO@S~+h?S_nx z^du@!EQ2SE!z>!_r_nK(u-P$_K{K%%2N%mNQg*Z%J%?@f40n!h`~ARuN5FN+&^>zx zzc$9@PqfF_hC(-PcHt?^jPvmcK-@Tas2N}Fz^shhXk3u64$wNdacWD7Wbubf;W-Dft;oEEcq$Kv>@KBWUjyV<`g21a?Kgv@x>7V(7khdbt{cp((9N3@IcfipRTd4>pN5;*ZHv4Gzv%meUFqld>8hZ~@DkjVZ2J?|%J)=zlzG@ws zmZ+bH*7B}@LmQc&S=pPp!MKBl)v}6rOdm0QTA1i7|J*Lqu4VV&_Q1We76IhfC*b;& z-TqokxM37qpHr|g+C5~WWr-LwHYM7mz-Ec94!N+$95D1e&H8ZsoR2FYO~?2JomoA& zM}T8@d>nLXm2ZD& zb^RF+U}jWuY;t34^a&vcnPK*nDKs&48N(bOGhr-t`u5=tllu_-NZX<+b)SYunYr~n z6>%sLTQWEriBwQ1EjPNU#pA|v9tV-5W>w6@HxHl>f)&GAE{U4XWsu{`7 zM)N-me-LgJCck3w9fWDZ1B3?)y9)o09r|AyD3;!6VNnc@i3t}fJXE;xS3Q&fSN*;laCiKV?7|cl;n06 zYWZ2Bm_2|#zTAo>GP(nFGE(F88&l0ze?YtT@%GEpjDG^@`}mxFjjx8o$!YQSGk<6N zseojkeeo|iv37C(X&*mdbb|3q0Y3YY0^{caeEF{xzm*NklYZ@R z(?5~zz{5w*GXBpj$Bgti{~IffPvl=U{tOAPME<4CHvR&DuYFaEzYzQ$>G9E8$Yd!)zn<$o~#7C>_Qc>8IW8vh_5 zGcDe~2Jx=_CC9hFCh^B2eP8`%R-64B06xB6{Egs!|UqI%9@S{PVnFd)i;o8^-hg>>EEz-ZXv=(~rd0U(;L0f0Dre{CADN z5c>MwqL$@!P@oFDkwXX7WvPuTH&4vSi1V*5&GcVkB9TsUeEB}cKk4}R z^3B=T_&PWK#JB&(PR5^?fY0H;itFhFd~$iM6e1mw7AHMOac{_aO^_KozX#3i4z4&v%`_>1UH<*5+^vlI} zqI;h4vsQdR(w_d=v>iUP*3#dH`X2lF+u`fPUqE$F`k6PH{TzU=d?Gg+U&Q;5r+rl4 zYW&0Cee=7VJB)YD*pq(UoyK3yks)K>xbY!}3m;q$@rOshS^RX0dHgG>GyOz-*CgHzW1jp)IPu4IS%UJdU1Gc~lj8eV=J@#aQ{6K0uoywyrJH}n zuaD}#GkyTT*MFM7H=fHcpMR0f#L68P5~u_`Tc?I%8e`ANp_ z&-(T3FO;asyY-i+{nm;vWbQoUN0a!yUH^<9znk~8^v_SAU!p11)C7FvcKH0g%>L{I z{i8uslHbF=w|;(S`q>Hi9P#tO`|7Vjd?NpI4mA6mANl6j_2TDK%u_!_olXD61pXBr zZ2TAGJ^eHP5aWLa?c2X9$~691@V@%3-45RXydasIUC1k2d{7!29a2uD|j3?gytbhFc)yU(v}HHQdF;`(J;G@jVBj$!>3jC~ zYR@!&9_@STH*>V{ZkX`(pR%{*+`yTzeb4;K0>zh9moohU|8GL-sdB!hE zV82QHc=De6V-Xi_xNLtSzWrs6Gd_`it@!rv-`BqD#+&{`mr8v5NtArDXXi*O>85PiS*x>|I18;>u(>QQ*Hb&1W)=ommA+Lfqsej>IChlX};+n zmq0)B3gcgMeEj}Zvv}TLeeI|DO4H~4+1J0Dt}>qEhp&G$Eoj@nYPWEXL?%1`;`?8- z_;V7ZUv!Pxcl)QF@~yts_%*Kl+FQV-Wj~6pvnW0viX_LEPyO}AKjFmV{cE_v_{RXg z@umDG<6oq{$G`lWjlTx8ulyRt*HPa$J})$V&VPLEFLI0VKQMn8@$0Aj+l(KJ{_Cs% zx;u>D3*dYHQ@_ag67(Nm{?qO;o{t%Q_G`tv^}nZl>h3jtw?FLZe@)_FL;l*ekFVdR z`%J$b^Y6KTHs5bN_fLH7yZQm+xef1|zmzXA{&3j$)nDC%#`E!puYMZDZzJug-^jzJ z|0V1vr@6a4C8JmKBgW5UjHmp{A2t3W(7y6-7T+a-ehwQpu45ALk$U4#cK&HGFzJ_>#MZo#y7kBN16pf`jKZW%55`w%BTKW<9UDa)nCI(ls&G-|b?&EVBj6Vguul-kxKO&KT&zt@V`saDRQ2m1O8^HR~FMm<~Is5VLzhRZ} zB?QmT9l3N>2ZA8I*U5MDYT2@bHu-z zpnh`RHh@3K{V(~%^dC*2pZ2No^T7MsSDpBc;FHth?bmKF{RiOx9_gtT zaB10({C`^%*LSGlIKEcA8~;50JAb38+~oRCy#1!HjQJ+v7+=0cZebgVWV`VxzWkc^G5hZ%Xn&3S8Q&*?{j_xByC=}Ea~oTcNW%HG z_(b=QCh@7PKTr8KceL~q%@2zXFn(eJ|BEt=e~7%te#!5QuOaWdzlxtg-qXHI4mADS z>Ay!m(#iO95|m#_XX860uwN^FPy)VLd?DJe?|fUyVP?Myw6A^UbT$5PHgnJVz2tD? zxqk4C-%Upt|8xTX>a&dhBg@BA{`ozOA5PwLf2%#xc-uyfZ~xWV#{UTQcI}g_vpQew zM|CgbPfCz}(^1AJT7MPwHvZ=X{+0JNz8jPCZzS!p-z?tse-B@KoY_w_el>{iMf;xes~=?g|KrC0UUBWSe5moq zx%Lr%e`pwHJjYjG`Q{8aKGFD5vK_u$d`bfUtGC0~Z^wSacKF8a@J-^Ge+*D@<(GDH z+xgGj4xhgrzC?VY`B~j|^qa&N(DMv8%DS8cKXOL2?SKAu_@eFbCEMZa#dH0Z>6!o4 zpKAV{?i`LEe>2^|gh(V&`DBhX{Ua0Tmxxa^|A>q-eXjgFq{R1+w9}2BPy3$!TPMDY zyFd1bYd=kAn?C1{zVS7GjPb*rW_^eUqO9O`IXd|eV*^| z`PX!v@m$~f?w?K98$Ss8zV?$-Ydp`l_|mTx&;1i0-z@%HXFtCGHM@mxB$8l0llXPWpRav2ylnbcvSoPs zXVELhGku?a(QC#x(g}}#=Ih3HO(uU_T>C3}%lLi?>bLf7;~z@kfBrkhyJ@;-|EYSN z@yn6C&;NWku;TtmF^~Tx>rH<%Xw*QQ|0N$9KNo)&_H%GT^bKOU>1ae%nu5N=L1Aavt{9N!$+Ta&~zr789CHMtx@aw@>wZU%%Ke-K_ zXJ$vY!RLV=D&ATV4C?9x90PuU_=5r>#Lo@!__ftV{Y8k(Y9sxX;4|7te?9p2;%)ug zl0;Yhx)uDE@2!5_{DAb})U?5=8G}+YFHgQc>4tXnqbvGO<_{*vZTj#(j)ze(4Fr@w1~Ig%?z9>W*yYzAN6&g?u9@G*9{9`A%oZJ%s% zeE-*7mM{1_C^d_o?phNqr$We&?qKp$B_06NEd#$q{HXzf{0IIsuk@c&o<_;N5R&7s zS6dRPp;Nc`APeW9INJq$|C3F;va@@pYqeW2NM z?v0Rsi_#G+N^^m_^_7asV%RiZeTB)Ubfh89=uH+)V zC*+1o?!rJWoIlpnECjwhv4LcClPm zfv*#PT0lhmdjXtsLzH9a&t}LsN?wmA{r;51`@?d`ZIAvn+5FM#BdzsO4h5+tt%`!> zTn4=@Q%vs`=M8?K95DXTNjKIrKMNsOeu2q77?O+j_kz@-%T>xOpH+}=mVC5b!tUi5 zPnqt95bw?r(Pp%KtZ*oovIoZdGE4Uc%JA~Y)HaoeO@o_?@x440`o56Z^Xse4Y56v73TDqy-gb zH@3dmZ+e2S68~9H4m;S7SubVK&zfcSzem_z(fVei4oc6SH!p(x7RmE`io2rex%o#) z&<|*T4drK>eZJ4%mOSfcE9BSBG5P2`LTb!!r<4}nz5h=xnto`$=9wQ*e+=|jTyFN= z_W^c7pZ+a^e%AG-|2yi2F4|ui;@$TJ$nS)ITcJPncC+ukKafb@GasdYc^HhB+++IP zsLKoK6UdJNzoHF(F8I~rds2y4NPiLdbqRRNuLQqQ{1T^(AJ(4Y=0)^p6XYk~YyLI| z@}cxnQn6lHoS5$kzWsg19~RQ*ILrDd1fLB5TS5NvJ=TfiIcSVb?d&cz3X*6{4 zK2`v}S^R}TxktyfmUUzqQ7@K@TY0l!83;Q{ZlvkY>P=giKaKn~>mwgd0{pZQJS2lr3u_X_ld2W57!yz(Hr z3i{=*S^Dlf9)A5Hsm<-;CiL_#8I$Jvw@m*x>V_`zUBTDBZG7*5gMUGPE1tjCj8~$VVp9<`s9PC52p5M}+WsooW#^gH&@E|9UlVf84K{&5u`tbcUoh(G>k01HS#Y#y=VGu+Lwa{#@`&#Jlg0 zkcdy;TW-`}N&8#PzWYAOPU>%ke%5YV-F}+;e#uVi=b`YIq?x|^zR6DN&xQWR15Mw3 z|0I#V=YH+-5B;icrtiLwvXlB-p}+bl(|6xb*-8C8Y*LIq*7V)?Rd!N;F7%fan7;e| z%1-L9WcsI?zWYAQPUy3JZiW8pvrIpBe$9T=DWiqw_g&oO=|=^St3J={xbM7BFuomo z$9vcRpgEAYV7xm7_vjD_KZ5;^VBfkBaw{ZRMe)f9ZDkH6i|jKpW`?`P&3O;{t0>vH4>?ry!B`;`zNEcX`@NF67dt znw@(j7C;_;DF$CBz9?8n!H*rCe=mf7{dBXBEs9nbsK_$f7ay1pgvhVOk6Q6THUggc z+zh^2{KJ6(3hdr>Tjk0bIktE>a!g4F!^3kW%}1K zZC)|uNV!tTHA^l$AB!#T8psW}$e&-@SqeT&d;`Mnib)Su8(9mv2Fdy6NAxyDzfG2%)|$pKd=G&qeHcH0M?8AwS?swbQ_0Sf0jy%o1GA#zqx2EMUR@^ z?m_*==hs`_)USko=3}P+m`fBtc0zv{^lPR6^iJw`g8XLar`22f-9!5Pm3(?P_$Qv_ zem0v6?p@q}x6cTR=nFc)$wWXF9!jI#0N;9dXIkCo70 z{TIte?07``>uF!S`~FxW`<~}FwBHGn^vTbgeQcSvx|q+r5YO+Ixy$m&@gjO2rxbG4 zFPNR^yj|tV@nSysa`7u=rq#F>8mH*jGRQ|>G<&h*1@pZ&#Q$%eBcvaJ{`8XBci%;$ zPriEblpE78hJNkqrmxQv`Sm^hnfeQ%U)N~*`v?8fm%e9Tgypjq`qginKFil#(C7Hf zdfQC@#21Q=oww1CPFZL_l5^i*qpZ&l&-|9@jDh}wb>_$U)a4b^J}5UIa*dLk>V*7q zOCgu>p4m$zN59uXu0(R~yKS`T^Siv&kVq-({}>eNHds2pcd_^Z{eaH}-yl9ahG%&f zgKrc+FW{r&D(=&v_U!Tx`JB(%&KK=2gk5{(r5lw zf?pv1i$F0xf8P6$yZ=Fdz!#RkpMCnQr3iA%)9;GLSM;svyYJ{F(oZm+ zl|sMad((H{+1m+ymiJ=lXZ~pV9jF_+$gcvQCO$dD@mKO2z(>TVFp`(rDeEg4ow)f2 zvtQ^){D`S9wwIoe%a9#?mO3>5_Rp7?ekt_Ie=_@52lfk6Gx;lBn-9K8yn9caM1t`m z57aWqM}9VYd$rXbJoUl+Zias2ucpuULfqxaZznwb9Q|LDJ0y?`w;NCYpnt{C%m2;v z+;;<+Kv>VtyA4TgOpY6XSzZgFU%$_P-E)cI)a9k}BEJlLllZ_bCxaj4*Me^p|588* z$!`WDwbTPRlf!q%I8=F!SZ@W8Z#u&4@jH_4im5lITL!r$-AyjGT*%je-y%MCT|<6p zh^L?Kf?vVBehv8cJi0AKWr4oce{|o0b~ZzWQ5Wg0Dk$Ap$>#mUho5AM{ zGW~9%gYksrnBE`biTLWE{yqIU4|2B;Hao`!cFt>ACyoKXLi}q1uk#^HXD;~3CzyV8 z{Snh&DYuyZ6qsCeofG2^`_UT6wLj71ehAV-zN7oYZr#~34sM0~I>|@<50zu50T_?O zw-4+ISr2*OH;UiW!;b+U*!Str1;4rt{YBtcw2}Tw@Jqy}deUDH{&w+`177)Kxo!m? z_b->z8EeI@woN2y2#H5-yr>Hdz2LGbusux z@%&DzyP|$_M%8j|ocUS{`SPLWZ}fc!_{*jjO!S!UR>&QpA2KH3Ww6~Q0oMQYnA>P-%^T4l% z{6@*w#mPtSQ{HjhgC+3ED_x)FL z(6{_V{cE*GV!F$qmtSOl9Y&qdMSd;#BJr{Pj_qS}NME04iJSMbygTK=|526>zc1^q zP`itLU!f54qfa;alHkT*^4@bib0NRrY?GfO^Rep|=4UbFnk08tAg6Xgeiiu4bIgvL zqy#cR@*BXXiN7_(@mKQ6m;}{|kM>X1Bg?BR_pJT2iq@kI9<-l= zo4{nrz3+tZBitT6>wV^{0D5U-&3=bKPsnyu%A1RLeuvjxQM>W;^M#ZzF?+j7Jh(qI zy=CB=WiOcC1!8&lWi9w7@!J9-nqIVDCG7X<$74KK`j{%Wx>!!R;2Xq$8RREg56F)@ zh^7at(suO^y{hq+uf1DYwf0d1ezN$$Y#>JcrQk=49~lrr@@v4~-Uh!3{5tXbdGu5A zTlkp)k8%sv7d^obm|*^26!6G*?E0b@a8t<#$Wg$Lxyk~ybf{#f5 zgurl&A8ZF(A(th&Q$ljB=M&ZrXtyVf4V8TKeY}`*r2oZ`E2=R6gWF(Wo_r8 zIZ7{qUreVMa%oj2=e|o#+4yw4?TGpdpAUY%`}K#U*82As)he|8}@?*fS7JqO+C>`>1 zL;N8DFC@Px#7D4$+ad3tm5@)n+2kJx$~Ww{+g~nk_2`ZME`{ELg{D^+q!TL7 zHQ-l>56|Ox|DygT@ax1!_dR5X<(Yy_v#eXqzCK&#D^KrpHny8W=r8z_>HkM|W9M1) zqY`pOcbMEqft-;1LhxyK8gJkIMr0_T%g8S>-q-Hdg3lBmU9X1hZw6l{9*+cCT}(fH zDEgmx?iq$J^10wM|HsllEllEf^2Ojw#AA!0)#d6Re6@J@-EvBV>)-b0;?_M&p||8d zOEDi$|91;weY` zMt(i`1>!#t9kio7gtvkpy28?T-&d!M&;JDHB=Ux1KDg5K#|QR>>HjX^L-sd?_yawB3I^3cKg+}S1iwZ05AyJZA^xF&50y_D_yx~f`2^iF5Oetl zUnL$@)#~E7u@w9g@ihT!{Tufg|N579H$X4)f~7kl&{Mh5ZZal+MdICe?kTe!yKI+v z&|C4M+2!}|-Q{VQrI2f0WpW)P7H(Jb!8eKDJ>Z4(e=+z*@hKjD75E16g91L(E;fYH zj~!?7AfG&s%L#d{|cbr{13}tI(0)A%c(TPR|TBekB+CbQv+e=_$|_Re{X;`pwICq55KOV{Wna1cu+v` z_2`{;&UvCHSJX z#{0@?A^3dp(Ro@ZpUc44zGM3C?-tOHoyg~ArvFdVPor+=qW|fb)a19p=Yr1>-!0IU ze=h$aefzrz5CTt8@|ECA)>-=Q?;?rFnKZ=pw&iJACq}w)MMihc5{6^xIvb`YZ)s zF8}fZJ|@5Pvj%btB)3-}7iu?4!B>gDF~kS`Y7O`;;)8A%h|&Hg@EhCUQ;N}E#7FP1 z$_Mp(f*<;^m9wwC6@nii-Zy_L1D_>+zrZn}%YTUP74YHwhwRS|_>le@@VCo;bX*AW zo4{B7%lwbMKQR52(=mRE_vNoA_|a|X7lI!uKDPYxV80Cf0P*hcWzaX|FXld*@H-7l zp?~}5=6^@(hA#TQCdAv{+dw2%9~2|M3H*wUrXM?xV7pB@1M@5K93R}}X{Wi6tCw7E zASYxx#o!yo`{p~9;2XsI%6VbPzK>r9zOD`XYr)rwkLEMfjy8j@Zi7!h6aBRf|8l{X zw80mHFB0#~KluDM_=Vte+TfRg&lDf6r_lb^+U@9X4(a>+OCOE>1=;tNe=hh)8~zo8 zZ&o|?=~sep67Sm=TNvVf`pdvKO5ZnMUJJfKyf1&7!PmFpU;0^SUv2QY;A<1`?B~Vc ztHtx%xbE`x^LqdO1U(;itjD=17Lg01s~Yo z77)?=Vcy{O`&!PKltMoLOUn<2AiF~SaX$EJ@xJ zr_f#{DV~hz!;H81Pv?ntlT)cZKf9bHT3` zU)aLu^H-MZBH9;!9wT{0{cL^ihyJW#dOuluvEw51y$O7Vc>cW|cSY^B7MBVuI<$VrD{oJt_Pqtb4=+9sH^%Ii@eI`Lf)cGu}G>)q0l z7Jc9NGar1Q&-{fiw%f%eE&9I(WK6qdKG#5Q!ETmM_xF-08=p__{s+@Z8Hf4t?xz1G zb$P|4!~Et#uDZR+?e2tHe$fA7@a5w9cbD81^~2pCqu*_%z4?%D*u(7k%4ae7dhvV9 zT)4fg0$(RSy8cyrV!k$n__C0G_`MJMoiZNNI@#ghYjT(QjeUn9Jg$p@oL@t*@hK1T z>pGa{D7Er$gcsvQM_+ob5qEEbbm>9=w}LUMuGi}fqg4??mI@yJr{Dd zoh`q+26DnYU@`b=@zK9465sw4j>8LS|6sF^rJ7wa2LD+=uhI^-!Y@Dcz?a~0opHseqE;dJD<9|pdakZm4Z*}l9--A_)Xvkw85uL!Th-mz9;w$@qDK`e6gGg!EY?G{Lc$WyAQS6 zx37d;(P<_Z+^zy~-p>|-&lk_XJLfL56L&vz^$+>xk!H{C&d`W&zux}F^pYJ)pW?@5<@A+T8}+#m@^zATe^-z4 z@#%T<*9oF)pM}%UyGp^ zsWLrm-Pwh7gLBvH^F0x}266)=$G->YuBiRi^+mf|A;0A!v)fPN%um=Z+f&!+XulVm z-0wqj!TqfOe2(~Qf^;QE{ZjDFmze$*kN$k{jdP99^6-nnH;L~M@Iu;O71Hk>@Tzx~ z`-YJIj+Q(1I?X_Py3G9AQ9af}G4zV&ncl}id9+av^C2I(+~oOp3f*P$(e_P$mO^gJ z{GIn_1N3sPGQCG-UhNk4_1zfVI9Q(P<+$HV-d7*F;2XsM9I_X*hhp$`3oJcfeN@uE z_~`eMqUGZsCtUuaxB42h>;B#$)7}BS4bW?@*|~Dd-7`6Yx$XYh!oz`I?h?uFsPNuE zd>gX!PaTpYM?@l>zW`o`@P|O$BeHJ=&W=Q~Yk*DAy9$UkZ}uO7w0nv8=?b4OJWDt- zz&(;9c$S$x6iB@;K+MrP9{{XGI_(u+g}?Ji{yE`tApN~x;r{{B->ZQ1_aY$uod%@8 zhXd(vCm{Vj07!rL1=8-G;(y!S!aoVW5Pl;35B?q{{oMeh-t$2E`xhYnU83+@Ak&)$ zq}(LoSRnmARpFsP`aK9pzw&_etH1ahAnhEca3^7^aChN1yIQ{g1!TV80W#lraUqcYo)4tIqZK{~*dKDKK+63Gf7f#(!k+^f{t|x&l>CQ4hU7t{L@$o&6X;g5mL|I0wu+tWb${|J!&PXaRkV}LB5Gl49hkwE%!viRc^ z?l0^vJXCma#L6KZNWE|IcTrgmp95JA>lD5p$aMY;Wd3S_lt2ErqzHzt{Ras51+rYX z;qR|f?rR|B-Us%D|4#rvf#25xY41uP9leNPlMnneJ5a=P7)qaF}p#fIpeP1Ax@q2S|T+2h!gy_`AFeKMQ2LeiTT#ixr-x z@F_sn&q)gZYqQBcBb+ZBB;1O>H%vPZ2&VyQzeM5Fg(HMnK-%x5a4L}f=2uL>nExMv zx5SVUHegZ2GF%1pld%s z*M5Mx(EsrpwI85sKS0-hfVBI8_}3MFS@^W@3E`voJJ7EE0I4?*=-Lmk66s7=HNkHsHbzZY6DN>F2=Yb2@Zh$4Qzg*$RfGqdB6)pk(3jJIl>%Rw( zekCjX!&ga>ePHK5K*nzXGW`#LCn24;fh@0=#NPmkJ_M`@`o+ksO2v;_s3(+#bmM{rZ{N z{}9M}e_i31g$+QqpQQ@l2V}dy8;Ii~*>izt2iIK)WVuWPvK^czJ|Fle=w}02&Ru}6 z-thO;>CaxDTKF^kJ$9!5E|B~i!qq^gze3^1flU7)Aj|tcAj_#v{GWidQ={+|!a2fn z;bXaUm!dN z_#X6*5bg>*9^sGQH@pFuj_{lB87>Fzi|{?bd|)3S{W=UtyPbqjuQR{Pf#geofVA@-kmKiU;NOwX`9OTLzjHp2`Rxs)To2)4ir-J+ z6yYy#+IX=M$nl{;I0nf4AKPen`s+!NIS3C1Qmzw_>Ffn$I=cz$UrUNy1i7n#^zS4f z<@y6Dmm@r3jn#YgE8uCD2)RB$${i`}s`&jCP8II1`2YUH)B@SAuT}iT!V2NLt1X`e!1<8N1Kx&u$Of`qbp|p&9f53D%U(AB z76Tc7m+)4_U#{?6;Vi{ZQh2OzG?4y{0@A+`iq8eI-Y)-pQUuRhvNM46BL&Fxb_LRp zKfja|S%Gr84Y&vT{S+Y9(An?aZvOoPNck6p&no_5g%=C&QvCG_UnQ(oe1*bg!s1(# zB1_@V8@E_G4M3*zwD4i!V&SdA8-!;73*hg@g-MZ1F+SY^JOSbB6rK(|74377;;*;D2wl@CG2mw+P>?wQ_p}NdFpum@iIy64)E|?gCy0oC#$4 zP61MGERb?%0x6ddq+BZSIN0~SX+x1D2J_x@F91mOtWdC^zNc)cp9{@7l+Z3(^ zy88~0@^ckGOE_Ke;}kwycruXpnSnswXLOTvl{xabWK+2ViAE)@U zg`*TdMB#j4Cm{9q0@D6Z*O>jUfV96s_%|Ts?gn!F_!E%zdV}~YfoxCnfUMst#m`Xu z1&TitSPr?tK-${}I1KpF)t25{z`-cLc|hiKrsAgxOMy(cSm9HEOz$Kh>+KLA%Q*wc z_R;~!_VU{TYcE#;@wd~nON3p4IncZ6s-(y=#GfaecBS?EbAiqt@Kf;n0a-4USD4=N z`REr&=WgHt*qIEZy31I>*FT*V?g(W5_5m_~DT?1!@e#%UI?MDo16l5$0gpy`z7AyhEmQbm zAlvC(K(^cK6`luVeoq0ie2)h*-~E8h_nrzTEBpf@$^RS3bY289Kg)si_i-ToT?%Br z?gKKPw<&x*kbYear2Kp!(K`|Ko+0-seDu-v{;u{{WEX za}|*F^amizXS%|pft1SyQtoi^y8#Cxel-S9w!?ZL{oEbM{i*L}7;XeI{#}LFDEy4V z^$P!4;oB5mpzx)_O2to9_#A}`6&|c`Uxm914^e!Y!n-NFZMymQgYYXL{aml`TMECZ z@Y4!Eq;Q?WH!6IU!qp1TR``5{&sBJY!UYQVQ}{@Qy9)OQvi+qh{K+(pM?m_yM)(|% z^>Y)D^)m~|c2W*xJDCckd=~ID$n6U}6;*d_nc-Q&&!-xH8<6}X7g%@#kl{P0So$?U z+Pgw{DUg27QFw}Qys%h!itr>L<&ROgyTXSmoG#o;`0vR{k^3S4HjsM%05bjOfZX@| z6A}5E3S|BV04diSNV!hrA-5Nhc78hF_^*NF{{4fe6s7_DLI0=oY+U{~uon6+ z0&%OzehkQTZWDhc(Ts1O@@3?pVgK!RT1oUPCi-6MkmYeKkmc7` z*b~V1b~TjWh21$oxG-=65J?U^16T?ESRnO}1X91Na3A1Ph~Gv0cW7MXzY=~Zd{_7e zkoC1%;U|E-VE2a35X_^eLwJI z;FUm3sk7$*hXcm~(Nwcf5cUx6EBr5%=;xcj*^ql4I1BhVun+JaAjgq;K-{9UF9xz6 zrUF@yrNYyIGrfz`kpfm4C= zfy`f}a6FLZc^VK+GkXy53}7E%E-(|=7r1Shjo&{38GaAg8~7wJ9qsrbAoFntkomY- zSflv43eOTw2eO{0h(Am5BZa+zEXN)|oc-y%Kak_!_d{(y^Er^|{1tc;+S}tmmiJwX zzXC|TIY8PO2iy<(BY|v(#{fAmN(ItRIU29qpAzl|jQtmx;D$2bDq}+=Nj|WojI3VS2Mk6{Da`S*}XB7%xk4AME;)e6m|h3oz5MBGhmmUi{bAES~^bxF;rwf3gq+3B|tu}yjS5xK-#TQcq)+j86wOD z(!WE2w6nW#Tb|kZ2}u2o$lRZRYk~F1$7qEM6y6oc^4fx%AnkuE{1WKOQQ^0RYZU*S z!pnt^DgGXX?-ULJGTk?iF?%lnna;DqdlY}O!ZpHKz{jEYS%2Fn{SBR${(J+Z{zhR9 zkn@#!!r8(R!W>`@%O8Ub<$lOD{8IQTko=7p%*bB^tN@k)X933uufQP3{n}%Il-~tE zDF5S8hF=Na1X6DWkaE+q&F>N*{XR>0<&hRY8_4(>!pVvst?+5WA&T#>aE|a#J*=PK z1Y|$IK;dt?oBj1b+J8rQOP0l73uOF!;U5%VuJ9D$n@3>0Ks`JUWce=xQtuJr{ffU; z;Twbt6n~MzGlf$Xf1bi;3ST}vDe@@Nd7^7l-138x_7rcv6?7$Q{^UKhCgoS7B#iN8#SW zWFVhEf1l~}I)4Ua`mX`mA6F~>IpJdAHNwkD>cl{GGyuieI4cJYf&TAEa=)a6?D)^R4|c-$41U2GY-`fwcRC za53=vc9DT62>SskmnFW7@Ib|PP&i4rHQnUD2GZ`og&!;aErnkd&H+9Fe}3D~^u7gB z?@QtHieIMiBf|R?f2+bb2p1^+B86uPrz-wDh0hFd-=xSxNdKaJEd4Sd)1N3j56E@t zSwQahj8y!|K;FOB?``AS{d*-v9tJ-I$nxqBq@5h$5kR(+(iEGo4F_Uq9e4up7|7=+ zoCF+zep|JtrCR~y{>F45?VYdq@rplJ@n-oF9ON06uz>_;-3LB{z>7j z!fS=&fEn=POyKD#k9@`V6YeYA`c=EgX0+EIfRz6VNcq=+%=h1bOlO7gabQ2x!_7dJ z|IZuSx${9U0eOCCxv&^Wz6+50?|*Lin6Oyb9oP>1um3jw6X6OV{dp8fe-;4gPnGx! zg?$y@RpHLUjzF$AcT;%VXYE{j+X&>k|9v3mFRuf0k)Nds-z&Tm$o6_Ykp7nf3z7a8 z8`?#-0iOeMe!Co43H=8Yo(iPh@xlTi^_o64d+!2i?^WSnf!J4?_7srMX)Xs+zfxER zq<#k=^Z&~yrvJTg18^z)_)z$|a5RweLxD_hknmXG2*meOxEGM^wmXpdJyh`r0ogy( zft24{@y-9T^u7?jFMJzFxz~YA@2L;1{_26OzdIGaQQ?ym9;9$jg%4HuKOdO>1|anZ zDm*~p;qRN@Cj#mBaX_ZqA4tCse$VvNfz+SA&caiG40i!?-kSl$k|=vWg+KjgJGWka z5XgGC1ITi`7D)T^g?|9DeN9t%5|HVR1ycTW#g7mkulPO+A1UkvWP9uYWO~27Ywa<2 zZ96yL`}l41=Vl=J(l;#J4ao3YYudSS@wZpox#xiI2y20CPuBwJ_h+w|y?cQb$nPW| z^@jrK?*Jg>dJB6f{y>HI6aM%QOK%+zON#6@z}~>VKt6}uPw_vjZs*qdtAHH0djQG5 z{Bk?@d}}$7{bwnV{pT))i-5FuBycKlA0Yke0A%@Y`MZU`1v304kp6$5__e~>XQXgAkaBrI%Jl?NZZ{zP+x(KrHvsA9tw27vn*-$h zs~kwbCjn_^G|-hdkaoHNng0WT%zt}@A6sSZ`XM0wzZXb5qk-HfI7#7NK>E9tfgIn@26Fr!1^gB1rYijS^Jec} zAjgfnfmb5EIlyY@O$O56aX{9~X$lV)_5!k;4goShdnrCy;qMykKJpcicK!vVUyVTK z;~C&egdYdq2Ydj?{yQ1S^v?!z9Xk@pa!3QR9KQOS@#}@J{nh+y05YAYg-!##3STOmqxcIHo*+B|_!RPY?{n=U%Yh4l^k=H@`;|6seF0?p?*jRJVL6cH_GiW4 zAshhYIM-X@gMpOaOYyrY{-MP5?Qaym1!TIJ_*Qr8}Wq2 z_XpD6rpGOxD}j`M5XktOfV8tf@lzE)1jusFReZMat9lzRJ_gdxIw0j%EBw5$0!X`4 z6g~sU^tu7*->Aoo9|okIqk-fP2Xdd_w?}RK{|rd`?*b|JhHy2IUfgIN^0n(pxApI!? z(w~t)>Yogx-FzU=oAd*+{P$4&Zx37iH$cj71XBKGAjkh_748B&7IyamGTm<;LcJio z3drY>&jLA)E(hY>#O%j`wD%B@_U;AJ|0{shD+W^U2q5npdn->U?BC50kWKq1hPGJQaA-jzt%0W^j`t; zzSaPwf43@pgTmDcPg3{{AilMneHxH{4FNK}d?4$$ufjcrhbn%5g;Rw;JHyOTDYy7o9#{csM!}Ea5e=(5hoFcsIdK>?41v36hAm!#N zJWDuT@udo%D?9_p@%Q&Yj)VIGIj?-=Itvd4(%vyZ+V3Mg63BWwNa1uK>nRDyeE(2m z<@5!R_3d%nmixeKY`)kB$aP{*Am^1w zD4Yr8eRpq#H(YJ?^f8e2^gfX3zYS!*Rw?|Pa5<3qdQjp20n)GAfPFB|TrRvANVy6i z?M(pohCd?>rws=7f_xw0VZa>l2LhSyo9##CMK<4uTAn&&&ia!xZ`@aX$eouwBTxt3K3`l!TK$h#w(PQ zTR`%!3ReMlNBk2Op0*UY5A56t+zt6y2*js4I@bV`P<~ec+W{{F?gzP9;-@NpB9QH} z1PJ-grwfM}-}wab#{uC-=f1)WAk$3-GQF*rTY5hLncg=*ruP|;{0EAE2gvjqflTiu z;nT)XZ zD}JuRvxL(XKThGZg&i(!=bo2*^asP_o7@=Dr|iI|9CqS z@FuD*?hhb>B3MuX7bGkKf`z1eRWv{g6iNvc+)$ddO(D=WF=<&uA&MX>N-9Yiv78F1KsYE+Nyca;Zze7M- zml))OvvohP7L<5XK(TvlmfBrTjsc~fvO!7TP7Vac{vef;U^1}e%22ZzuiH}$H8PrhW}Z{e2_apvHyhfd*oXTZ=n1*`5?pB zQNEeHmf@FCUP>+kCEs>%2-pUc^nNVWe0)Q02POPH%5RY`gU=)UQBcZvB`9`Fs9#9V zWq1|k3bKUZlPQlU^FYbh5K#I@e}?x0rM(^sK8JK3@o2smf|71EDD^snbThn|av_-y zZh(CbDEaONO8j=z|K(Oczk(9}HRWyOM+|?R@{8mKhTl(l9l46(ODHcSXMytG`*cvs zdm`xorQCx-DNjF8%H185a$i}ZAHurCl5girrDvA4awV#qPVal%In#PJISS{@(?~?*dT#oCZpLj|RnGHuZM0 zFL@++C@6OOQU3c(_4fn$6}c4@yZ0$KlFyM(k`IGox0Z5*TmwouE&!!|pP8olT?vZ) z1)y0DvWDSa%G1eH89ssXX!2x+r%@h4_6H^1SI^M&E(0aKFevHGCue|ScN!@5m;s92 zVCwskM=`uJ<^9QjPuKhM2PotJ&!G7K4irD1QQkssV)zS`pC%t=_??t*Auj2KPZL#Km5m^gLIZg#-o!cLjd1T8ZO=lB%3n=w*4k+o& z0wtYOLFspsL3zHJ07^MWgHrBX%4uXjP|nAG?9z4d+n}tIpQpSQycYfR98k(z0Lr-} zCn)EcQb4KiKPGBEz5*p5_kxoV{%Dcr`+hPEO1@76CEsH~u^$Oa{S0Av4~D-tLG%3z zDCKyLTntLRpG%$${)T*RFKla`msv~}gJM@m9t?`zL*vzMB`Et9Ventn*E|rviI+MH zya4$*8I*cU110?-WPgSqM!5^w0hE1-?c?^)O1TVB%KKQZ`nwsF@Z%}p zk)z=+Wh);B<$3=)P}O1>lHD)Lft4mbpMWne1e4Fit@ zJ2CuYyQcFDDCt}c%5&lZ5b0DEfMan#Rt?qrd@d;cIF}p-wukGZKxtoHLFumtfYM)g zp|eVV`w5i(c0MTae;uO!7Lf;n)zEJmtopIXs{XA(%4wkJZyTWUa8Ud_&|l@DC)0eFu z1@D4=XYg9o+qRx6zX6Ke7m4i;{r!h%{0J!V*O1qC)A@4|8H};3&iAuGWIeSQlzg5H zNgRS)!mkD;d<=-HO?5E5AH%=x#QO+J{k%^$ zGW;dV&ye>s{3goRkSjo$Kj(tduB#**>752jz9)dvAM-)!k0*nv_%r)J)qB7S$cKT_ zel{GSeopSF?dQf0Z4EE<$Ai+3Gr`%A`-8GB{TDY|(s>1x^q&DG{d*XGGbrh=0VVwa zD0Y)TbKeq_c6Kr-^^imE4~pM^;S9GV^=I%!a4Y#1cqj6+5fr>dTO#&r;7f|wbSsN{P7Z6ih>br)9uL64`|3PK163~YFI+fuQ8Qunz z^6bPSO3Kqjru@^!?B{=B5|?yV|E2sKKRPJ=e-bv^CI1t5sl0Y)8#7;nL0N}=@|)V1 z|El`+zqB#axet_d){+;19^`u-ITI|0oB>L|JsOnq?)tfnj?19j&(A^0_xqsuYb0M` z_*0Z0Auk1GJ$WJN0cAa#M|n8emEkvH5iaSkX=-DR57WNa^a?>qFP}V#;SS1!$q75! znCtGxzHMW+_j^I9$6G<%>eS0YDc539+S>w9+FLCsb|v6ru$v4@|2zql{%Hp#Up+vH zp8`t%Xb-xNK;LFpgEK=HfdYfXPEDCxfi zO8U2fqQ8W!AV-2?*AJBO?J!Wrw|BAlko-OcO1!HnU;H1f*O8xVy{3awug8%m;?UwT zh&ODT#y=F4_`jeN3L8O5uO5{20-&@94=8@lATt?0fO2oL9Vq_){H%@qTQI2wpvWUA zU-7B>TMCN5MdTb%?5aVD_ueOMj3DGNDCwUKiv29I3`CWt7E>++WgjRXL>5wW8J1zXr-#pxE8<#PLs{zbr&JDuQr`C;S2+Yq{dZX3#vEV1e9UC8cR?9n-cY&fMTU0; zWxV(khu@@KF9s!kDk$yoZyfRwc@rq(NjkV5c7wqK;P2muRsIzec_TO(@fLvMZ`?!b zzdI=P-vN~RmzNE~-yhWa{~8o|8z}X^nerRt6QI=ZJ)qQE1eE%n2cpTQP68$VNXpri z?Vy}Hy!nAP<~sCR5J{&lqFhLx1j_pK4}63s{rx9U`ukRJ8SLK&&xM~CKq<##prlt% zMnIW2SAo(`=YUdgvq7;x6BPTYWDzLs?j*|Dpp@GVihUo3A3+|%@ck+Oi;thg-!4#| zi#LH%4;vZ&6gUX=brG12@F2tg!N=?JytEUP`urM{`uqTt`g|A^Klg&-e=#@>atOqq z)ZpE1%yUvzpx9M_VmAd8zdgWN@Y5EQdf#=ImghTA?7kpB1&a`W6DalcDk#q(&w=v1 z@Fe*#c`tbfc@udJc@cRYIftA{mXg!RDPVV`lLtz=CxFvY?^)n7$h|=MPPsc+fpYA; zvyJ(k`cL2?u-gtwy}bj<{dx(M@;yVYXZYQeZzC%~be&Wi_$$iY9hCRt2U7p>x;Ezb zwv8Y@T}^!f6u*ywt6=vai1+ioR#C3R;ad5g<3utGd<6M9mU3UpJwZ8dv%j)x*KL~b zuR-y@joeJWLB0fjgLI#v{Kc(p%-;ie6O{4s74R$YIZ*uE3U)y{*HeEr^_Nh;7?k>& zL)lNxWcYN-r;;v)kD`1c*&ED5x|?oMz79%$HiAD%en833L!j)#Ed^y9J{Od6xQg=W zpv0R3O1z1n#B+iY@3)&Z-gltH`-JkVpp>Hl6#K`?+Zn!^^5x_>P@dz?h-f?)DDeu& zOoksr`DpUPn>60m8`~J`Fs@z-N_)8wl=!2;HOR*?pya1J!w)7qf^z?M-JteAf-=s0 z1IoDZIw<{i9VqLso5^zUH?+_Fz@IUH|9!oV<3E5hZfpgm{ci$g+_(dj`n?{Mdb*7A zbWr;DMDTXxe+)Pt%m!s#8URW;dNBOY>(qW5DEiky(LV%AJ{M6g1EoG+x>ogffg%qC z(KS-rGyLl{8h$@0ej?YjG4OA$^jbr%BA1cpgHpfefMV}wxR*SGoJi)8xnw#h_hTsK zeq=B5AhJFA&()Z}k)O9fvz(xm<50@Gu2Ok2h)-ZI8wdW2{EYym-yIK1JO|~$l#ir* z0J(X!+CNI(3QD}|$<^e=)L%e3M7fx9A?ajzF6Bc&$=87lZ^!T-uGDnCBDazsf|CCi zDc?f*8c_UPLb;SYjp5@dp9o6+dypyQFITAF9iZqx2F2ey41a=ri2C!$Ii#OF0hIh@ zQ0_^&E9KD`jLrH7C7tj}?GJ8H!iR$r-c^Y9z8@&-p`YuN+sSvx=gEi2@u0MWA>_9! z+895;?M14{qCAC&#++rYn3-c_KCOJ`Gm>!ods z{>Y~fl=^x95|y6?MSgUV$~Tf*&(-*u=jgh*c#f`@UA4+lWEQ!&2I~T(Uke@qP6OpR zW(+9LS8GH1yt4$9aqZ)vu6ILz_3xdnem%34Q^+yoRX+8<3>5#>p!h!n6#tLTRR33i z;{WRz>i?E<_5YMx{XS8myqAoSe@<8bJ3#UO4k-Sg0mXlBP@ebNfZ~7hS?d4S)7Af% zQ`PSmQUZ(U$~mNueEB5x{{$%hBcS+S z4vPQphO7TKLGf<`<$30VT=oBBruyBHp^TD^a2ueL1e1!U~KTQ2SaH#S&^1DOS@A;tkodt^DQ$WdY zcToJw;Xm>FNjLS|8{CTi-UGzY(Ca|3AL9MhRrx&`CEq4r0p)jCUH~QDlVm;hw~^P7 z%gHcV1NKEa6`-t#3PBl%@bnF z|8tP~{h53N6#vhI;{SGrUrW|dKa2W8hL0eRq`oWlKX+39Uy;v&;(t9T{;y^D3erb? z3H2iwo<*imzd!X~9jN|4As+S||egMOdB!BIw@xKKne{X=||2gt{>Q_-;!*CxtiuzpYk7RfX`ArA) z9|gt#bD;Qtj9f|mMb!HkKAp^=ekk=R3~x_f)Q@HOaIzcq9jX7Oo%;Wbd>j=2_k-epCBv7JZt72=K8N9{WC!a1ZmaP>1Eqd9 zllOt*|2FEEGJF9!mHP42r!u@R`Bxi_{}U+r+YE~TSIAqbUqk%@h6l)T)H|u~%kUoL zkB0jH5)}WhfZ~4xc?IU&Y&mf<`9R{xto@xKui z|MxKbW^w`bXH$O)!^e|-z@M-Wa0DoRQb6(Z>tE{s8}bEE^iP1Izlq^jlGW6gQ(wUF zlgLA;KY;r0|5X3m$)`c_{}3qtuVMIQ7{-e^-hLolAXZsQBV7U;^&Xw)z4?3*`LV!K+)eu{lyGlNET6_NByx3KbqXN zOXGhJNbog33h!zvFibf z-B&-U{3$5%eLv#gu!a6k@GI~ZP|{mNt^(&^-MEDELUJxB>)>Kg*0Grk-`S*o-U7wX z%j5$Lzl-v%psa&011|#?gR%~;A!mV-pGlzj8OLxZc|7&$)DL2KZxHL?s>7AN4gtk~ zXR-qs{XxUuCm#c4ojjWIaI!b(MLrG%Yw;ZO@Aq1Nzk*VKwL;XxI8gFAfO2P0((OPR z)c?Li!@nfAk{^;A$p-RqQ2gFU`3~|ray5B5D0WLIpF;*nFL?$zksL!h$sE!_4hF?< zZ^}K$gUOEM&hNBbO`z=Gd`0xq*C)tOq5XJ1Jj7u4MSdloyfn$bhn{1T@_BWtOjO}&fZ`DAbE52OB% zuhjn!Tk?Eb_dII)X@a{u2Y?*~PHJN1_^d=Ys%^%JSjVED0QJL-S` zLj8XVivM@WdqMGkD=6tNWB7UGsnk!PK8@i6$u`vQ{9NOI47P{=P2}C6_`jL@r3_y{ zPNjZ4^>&6IL;ky6~ z(pdybI>lr**cM#^ zK-p(H8kBS|{7mI(pvY6m31k-e!l!Dt4ivka$!p0A$rC~Gzu^<*Y*5CVGeLJ>_h&%MeFB5Q1(-A z0%bqZ0Hwa~ecv$NfII~h`G@zEb>JqkqrCWC4Icu&iSSo9D{lrR{yzJK1R`Pe{~khx?h zP}2MBEv?TV$>E^*9Sn-!e&kUMKbUeyvJJz3c~k9okpBV2&j*y>CSPOt2Fj0-i{3EI z_bXq%uI1YVjz#`nqC63l_b)HKrW{1x^s3q~1;u_L<>9Yrcn46z|9x5IYe2bwb3w`9 z3{cAHCNJ5jb|-<-?y|{VpxoarFDV}c#m`z$?&ma6?$7BjDt~xE>-Q#5?ngB!_jx2} z`gvY?KPc^FEhzr32j#xxf)ekG=hR;%DDei6k3Fm5pEqbZ-UX!`Z<2?D+Yo>2Gip}| zio9uq%IA|)K}qLCQ0gNM6hA}Ao(%6uxefW-(|R8YL5VjKlz1nQgBaeEa#wPHQ0`;a zQ<{%Hpq%^K@TAJ?K=HQ*6o0G8c?|baE+t1WJdN@YvMa;eQvUM^^(TkR*G5#KaYYE|01w0>ivt`F`vRd3U&dz->Uh$?Iz9FT{kM1 zg5rN3cm(V`p!lBvivJ;?0Hxe#fD(TI`NK-pzY2<-aD zyh8rHLd*XNDEj+ADgU3B8%79zegkvC7eFb;ouJq)B+mdPpT~oej~<}Z=f9V!-B+Ml z-=M_5f#H5~JSg#pfD-@9U-zKntl@~ z=PTc&d^3no!cwmQWqmjgl>Y4jCH^E(;=i~|%W*F#<(LCL0=qI$;*ABR|2e>ph}Q>{ zc&jhcc;|rk0M%+kg`9$E6z23rf9B03}{`@IuHtmS}r=4;1^CKuKo> zDE8-qVm}-_0`dS*?7D+u_t}MN_c|zcH-S?BtHAcC|4YdWK@>gJ1B%_Lpxn2ai*=q^ zc7ZYgihkAkD$fN)o&=^K{oa%h10{Y#*f7tVtN_Js2`J$i4DSxg{!v%(C-5Lp^3@*1 z6qmYVk;eNJl=F4hfe)d4D?vFob^+xw>W`w_jrw+!8y9N%UIep|&qqM1hjpN&cQd&H zly(&arQMtbV#-PF2TK0ifD-SQ^EBQL@)JpT4rD^^^H<>{Fvzm;Gw{FwvdPwEW(C3bG|bWqaI2k%5WS)k;r zJ1FV=S*!hQ4p|IJzMii!%ya#hg3=HF6VP$?Gf>tKcgmA3p{~znS_c8U6q$c4t#xN&P@j`nL^~ z{@s=GkAn>3RpkF05Vtz@6HxN^9{D6FY;yh_pFHq|7P=e0$AR6E&hen6n+{@#NF53;gFFzF`)mUbg?u%yJ_6-FZUUveuabG7)cbLidxFycO8aW~cu?%qK?%RHkA`0aO1K}C z@E2?vz8;kD+d&CG6_om$07^dEf!8A+-}Tn;FTh8T{#D?wuv-rP4mk{ppZTD~pAAa< z5^y5k>lB0XUBVbp?2ZRlAzmif4fSytDKL`C3ak zLis8%1$N7nRg1vwNaq|-{DnaAR|(3w_;T=I*q;T;{BsI;8uSxEd9O4Ulz2|CGy1)q zJP4F|<}VChf5HDRp!C;oK$&;X1*P7q!Hx)@M2-R_-cV5PZ+}qy_aZwp{BI0468;JVIN|0&c(V+P21d81W z9hCclVm}RkNqB!yvB&%kCQqN~m zU(E0cprkhzl=Oy^4%PSCWoY|Yhj9z(?H?hryffZK7k7gaj^&z37g&Jsu^|5I;snQl zIpAo}4(5Y{z*Nu%9tWa(nDGJmcYnL2AT#2(BPp2^c^3*JY$CrRqvRG6dxJ7wc9Huh zY#`T@^(4kDQy(F(A?rXX$1+gzA13F4lK%iXlXR1(kuGv9DCKs7QqCOGP7We%WKU4a zmqKj6D47$NZ z;8+lkW?h`%dEg)rZKR70JQ3^&KG_ySJ@^Fp749F7Fn5W91Hmoe5U>$E4tyEx4K{#- z!S&z(Fao{{UIV@c)`4$=%fQ#cF!%;I4}1>{fSbUX;9H;@d>cFsMA^-Dho8JL+ug~a z9pNLuK_Gs*$82}#yIp!h#=SAy-$|f5*N~#@?<8%c{G(YC9?elUkP$LWx=AN#BMmZ& z=L_-EKt{+g=_Z||jWoz;7UPoG{`8Px6Jw@BV?F#lTOk`8f4VL_+*3(lWx*U+DLVJl=s?CNBV?F#lTOk`8f0_;v zZKOd)`!GHkA;YAbbdomGAfqw1!=#&Zk~Y#Hqu2yA(GEBNjCut)MGI}WElMymZx=AN# zBMmZo2;-9xGEBNjCut)MGTM#t$p{%H-K3MWkp>y<%J^i243losN!mz*jHWO?86m@@ zn{<*k(jcP;Gd>w1!=#&Zk~Y#Hqg@!EjF4f{O*%;%X^_#*j88_$FzF_pq>VJl=s}E6 zM#wPfCY_{>G{|Tt#wR0Wm~@j)(ncC&^gzZZBV?F#lTOk`8f5eU#wR0Wm~@j)(ncC& zv?Jq_5i(4=NhfI|4Kmt+@yQ4oCf%fyw2=lG-JkKv2pJ~bq?5Ff1{rP7_+*3(lWx*U z+DLvZKOd)+cG{GA;YAbbdomGAfuQ(%=v?i zkYUnII!PO8kWqv2$p{%H-K3MWk$||^|J+XPj0;g22mRX4a7m@i#zXafb|c&c|Bq`U z+Ig2YHu+!ky0;E8${t=lz?AFfs(e1>C(l#axdanDu79bod*TjLmU9OZ{~F3qo(LHk zu`fo2;Ocq>l~W$o^xCaZdl!DMQm(DckBj!{On)rpfoIU)dFpTT5|!Od zzn1o4>W7}I`pE5?-sv%!<-2a7>gO^33}nO1|0O6Cu2*YRAE5qg%5@iNeRLLosM-kY z_e!SUK>e6njX#L-%U7ywi^(jHo%wy@bk*lj#y7fVe(JGFD%Y)pR6mpPqZz6XY%tZv zQRhHLewHym8I)6o>HRM}MeS_|Y5DGF{hdaCKh0PFcFJRpQ~SpAHT~@IDo60UEOL!w zdELA}zw!QE!}=}8yxaw2%euET{XUCS-bFcjDP;8honh76!|K1$ukB$!@rSYPmqyjk zllukvcgi=!?g!KRRoWL!zhe2Puzbs?-zxr5^p%v02C94|<@Z?r$RpZbo|pQ9eG}!s z>2DY1A(Rca=Rq@JkE*f#N9*?j>N`@ud8+E2->Cj(kx`zMOgB9>aU*u zzUBQ~#`KDdphx~HnZLP`9^?}#Un1=p@<_@l=c`;m`KMJXyC|no@21?`RrLs#3g{zeD?bN4JPT8*Zg|v5XQ~6B4#&`Zl<#d!^(ho5H z10^a)82`Q$%3_3TI?8h}hMuukYJI<0u6h^apE^V3y3f`BxMNgq_{ofJ+}nqGrhhK( zzqn2b=>2&Z{YB(@yo8hMC#=gwj^GfDT(_mF+<-$Aa!vE79C%*kh0Jdh|LCM#vd)qC z;Re-z8mnK*@*F678^_<{Myni=7ah2kWBiu#_FS#yEoS|sWUGEgNbOxr&raD+S>C&f z|2oP~+EfluUVwG4=<6w8fpwfIqQ z_qQ$Uqv1!@uP76JgJEl{{jV}xc$nE@OP-XVsrfy_0e_^={1n za&6C2|8BBSlY=3=NKMj`ru%=ZsK^HewEt0)!g_QAq#!jw^eSE#{(^w+RL<(DcnzLWZq%uisI z>dQ}3efTo<_j4uf&s2F9^K09v_LpPbE#xjt9r z-mD)R>*ML}s&`R-wZF>7;cB1SN96|AZ#Da$lkzJ13*#TxmaFX;#z!9Ix*5+&lHceV zs-I8UC{}q1#}C^Km8YTaioH>-^1SgXyLxGPS7ZGpdK(T2$h9y)`_-y{(4%tnR+TTq zd|=wMKF(oz>nYtC<%`Fu9H#sT<~Q+INBJ_$O(NG*F2?#r#-GzT z-Y%P~`X<&-CzjW^Tl073;i|V^t@7np(|(D{%UK@#Qq9j1XQ{q{^WzB2XOfn#x<)KT_EKve>^|<*M&{iP{@S zY5tDPR5_(g^+&QlIGLYDwvW0~Rlke%=RQK?k7oJYOb=(I%x-T3;^~sNU66{VisF*43%}pGm5(-2btDEiTWY$k3WiRCh%CE%w z1KY2I{-cyX<$MvL{m0V&&_0}OA5UMZat`O8Y_>n+b}i5SZ2!@K=KliD5BA|IpLM3@ z-?&8OV%E3qY?W_`jhBnHe35dsx3T>Or>God{oHl}{ms?*ud)8ZBUFBU0_`tXx#K}1 zHyHIzDm&>vGRoO*(X^?u> z@9}I8t|E;;4EwOsJ`DD^TiG5Pzt{XU9k2QbJ`$CyKkrY&N2X{@inZT^RsM+Mi=FrH z4z^!A)9cLpV{p7UHrBrR{ISxl=><~M-L$?PRc{LesaC4 z@yGCfHOWB}T*tHh+Ic_Ep+3y<{3$!@Z;skOHjMeBob6J%;RW^oIpqN7yPa&GbsUfG zW_<@Jcj0^zru$42G4m~!NI zl^>?;rhFvJ-@y3OsjvH2?U!Z32Je$~mE|LB#f@5K6Pk^@AzW>X)bzSl^#Z(6GMS4~s7;VzYb z?y0hy>xHv8zXfpkPOd4-p~skC$MsV&=UaC_)eke*FDTC%m0#;6{u&H}@@&L4`xD30 z@(wCTd#HW2X>S+}ln>zg#z}cI+lQU<)Y$k%fA1fy=|!(me>=_ggZg9ovJE2XH+5J2 z!5m+rhpD_7bDQM1iSY|4+Zg``GrtW+3grc+9^(=7b7`UachX-eak*jlm)i+Wf zu&ErO9Asr4bN)&6=PL)4%YI% z%k^p95S7=DQhhj8U#MJppxV3FX?hQv^BdapC#rvt z?W6Him3!LNU&BU~zvOt-h{LUNIn4C1o^h-E80V(|{lCHazA>cwBe-4~#QM7LY|T&O zaMiEl_!wq?Y~p-W$MMP$Yww(&au3${QI0>GIlrXzSASPusd{IPmUjl*lWUgB-z-wS zJ*4v8ERUE|1ZZgC&!OXa3l9O%=>*I$D6$|EP;PcF&`6?R=R6l_IF?@x} zFU(SX3gfS#+_Xyd=k-&4BcC6ly=l+%A7=Y@yVQO&*Sjf{ACUF9H1eO#=3;D%tv`6b z2XlOia(t>Er}lNMujRv3uIK*6O5X1P=ePQx>Z2SF54)Q3g<8KTj+wseGL;RfPmFO} zI6nT%{MKKu`oEap=(j4Dv;9VIS9u8AcLVEp2xQ^%5SUu%2JiXTU37BoFDM~|E9`UbNypu`@U{G(;KMz8;?=Bk#d{9D%)v)636TM zOVs{-kLv4LzA`@F8tl*QIi9=OzfNU+M|gi~SzjsUO*V|1SYK|gM+dUM*j8(LS-mv9 z2Cm0X8lZBN&p$UazfEi((SE9LqJET3ydZFW%n)8DGcLSw#O*jG*oBlArbyfRq z)JHp_ljE9BeU$C*M*0u$ulgU&@fY*o0F6JGdgu2l*Ha(ORe2))JAYUCKISjwP?f!m z?~bbc<0#E<{l6-IXpV0UMuQyS#?^L)=rKR6Re3eoud3Y3 zoKLXdw@mZ%IPX`4`*GLD#w*^hGkHJiFIW4uTwesb>iF@?L7KnFovPo?`gd_WxsvO_ zD95YUk6?MYo>|HDf{Wv=|48cjygnr+v%O$BVcw5Oil%=ILwUYU9W@&l{dg(8qa^-ZD?VLX|IX*-$()6!4+joNz{#or0 zKSk|r?Ny#A^Bt0sb82$UK92t7LkwKqupkn>`zn?Hy^!`RRlbn*S06Ubjejnpex|1X zHtWw>r}pFfQBV24{wk-?U)Me=N2ouC`HN($zmq1YKFa;gwOv#WKdSz3kCo?fm8V~z z`le1AzvDvskE;Hv0+pRxRsPeVazjtGf0NHwO}A_L(qiM;6>499uG+iLSN$4L>Z|b} zji1H#7GV3C&H8XtezULIyC|=@TxI75^=DtKa>ENMzfRfxyvpw&ElICoi^|ttpmH7M z^J(AIp!zSUkG`$)HzBo8`9S5_=6r+a-=|fcK-vA2%JTaKl3t)5f8mnfXAn6B^(t3; zwr@GVC|4*|_3nt;kEGnh{n%qU9=dt|USFp6F1|0=#Pm||5sX}yFJk)g0Sd0?ct0B) zD*tA-|A^syQSEQ!{fm61^4~Fexf$JfqzC=6eHYDB+1XD0J)OqnD2!YW9ZmleRDQd& z%5^T4@9n5^l=?m~xk&XJJE&ehGM8)cRN8a@q!Z=(@v1+kRP}bgKe&_enVhj>gz6&? zYkjvd`wRAOer#v@FT70j*l+$*ck7b(DAUexy90`p&HHCXH_Rskc3(`kAxUzw}epXMS!r=i`X^@sR|bMt$8Un*Jx4FvXu6^&(d( z$Hzw0qg?NvPd&%CYdBsu8JeG+fW)^CQ8|zOyZ#83{qt4dXj6G4`)_!V%5MS^-}puT z!Z%m5RE|=9n)7QT``2wg>icQ@>nc=s^8MpSBPlbz1u?m|+Glb8siS_4P3>K={1vJk zV0##!PW@RLKcD4qyjk;m<$397eUr*iiZ^vCx966gQMZL0r+ z@l$yJPdr)eqnuwG(T~mg_Gx~0q|zV9m-{*2G_d}<^;3Nv<6p}1yV?G~XZh=?KjnP- z=lwg5>%l13CnsW@k@Uk^n*K|y594r^-#9_^4Mv3H`$p!kp7rw`+q-S4mUlhtBmAVw zYngy@r!0|J{@>j*iQ_3^g{+cMi%Jo760_cWi8YTc~n7%(HU8>=i0+x2xPh z`?uKt>VDGldtx%z6H}aOUyu7HS7-K58{;3w{?N$r^i{SGJN{icxl;Qw{v1vJO18%^ z<_)=SgPG*7saEwLaJ^a2{8ZAPi~6_v&>#1&zcin(8n7PH`n=>w(PO`a^1zGL-ZfCu zyYnKEBlvL^l|Q{g^^JTUkjFyFk4x3Y_vI?PDIbGmL?58M^dyzTlshoLPRg^GUsSt! z1vuW@kJj?$aQ+N)yh%Nd>9IdO?G!m;xJGIG^~|p!AC%+zl>I@zf0OG%rXS|>#g|Oq zO?fQGZ}%p(Kl>m}&ly$uFmpYD@_nRoDbkhlhF@0MeYwi6w^Z(4qjKO=m5VrjHh!RT ze~!<_hbmvxSM4Lzztm6VM(U5Xscfe_k>f>xV@+-U_QO^Hg1nHmi<7DP1qUOd7=D&{ewDD>m_(TJqKT2gg zd0O#r|dL|2PG58;lP;AGBqV$_Dpux0fvIc1CL3#O`U=Y0CXsVdjwzR7hd^W)m4 za);AYA3;6H^%>V!cH~p8bmlLBa?5ol`mN-ru|{S2T_usjwJL9>KfC-u1g`Fk-#AI- zCz#&=KK7UEN6PkYDnG;g+VQc!T=&zTEvWMEvHYH?^7V}G9Ha6U%8f^$J-&yzb&l#X()#Hcb%{DflOb%QHy)()FD%5AZep8an@3NcgV=3x0-hK)0SG;^*Qhi*Ml%I>Q zNwmK=$=};a>5ogYKRGGA{cykI(?167JYH_VFcdHUoK*gvN$H(4Cei+TlsrEE2}$`$ zORC==W+mDmm{cF*lJdViN$!X5`W9SQcYHB1xOL?hVxhu{{=V0q4OM zg=V}Y5cHSD1)fpF5*0c!CU~p-!TFOt)ib=sUesbyaf!n*WoFRpL2YKtMQapdPk%5Q~a9ceAk>RpG5>mdUNAJJqAoOpOs-@7IIVRtI9W(ad!hZ zxxCaruf$(nQthwtRV0)rXF_d_cOI%LeMEVA{`^uXXLxIBd{th5MY$)z)RCpFN*m}% zPsp2tIA;9(y%;*uV3~(|U}4>y1GM}q{~RxUCDfWDLvP_^?+hQ>$o#b2(Z1?(4IAZ0 zo1a%Ra{k0nL0%#53L3IzC&5KpUY;X&6xukB_sC(#&DC<3=U2@yon;v> zseT=48iQ3-wU4pv$bRYJwwzLC<^{d3Z|saHz%=gt#IFpnV*&+U8k(37S%JKNnkQUH?S^5a^rKLz`>eWo0u<^ zVOMF&{J?H}?55$Ho@7ASjg#0^*wQL0g5KsNnzfobYdLpfbLER0D#)H#J=q(=Lx7dn*7Lv~&2zPX zVQqo-F{98k-(Opk`QLcogK_34f2BW&yRCOD#QeqzWuFqnLd1nhH>OFfM+epmRsQPH zm7Wm4n1g?pNq&>o{YG73W4 z9!8YO(3p6`($ZRnn*w>_FY^ZQSP`>Iym|4XXNGhebj*<19(H3dcM)v?MNV^=+YJ(s z=M9wweF5`9Jt;FeEt$!iU+t;#m5r#zgC>SL43|l^aT$;6!O2z`X0j7JHF%0H-@Tn9 z%|e${_?B_bkz0rnt|hNi{Qk;V!ikZrdLo`3<(WRAk6Ok~OV>U&wL0i6^UtV8rz6_!#k;XC+M<(owYO6}U!HE^4TvM%$S{_p|p2?G=KgdiZwLPl> zXXeZ9P2%lyWMiX5*70V)GzSew+GOt>JZN|)2FtxM^Tg^*o8he~DW8w|b7r}1JV)HrWZo{sw#p0Ee6fX=>_3*x&M{l%?yPfLCcLTD@;I{>r1$JW zpS=g2!-2Ri54Nu{&L-w8*Bo)YwA`IA89vrej<9NDT zo9w9pdAQk&S$dw&Iti=U(UC4Q(&(VSO1Jv0>Y&wwj_gvDl{7!?l+;#-JQdby;xRwA z2yLTTLTbQr&aQ6B|-aY#$Uu049W( zHenSIw?h+>Rb9z^pSRM|(vjJ`movj#6YyCYNj|3TUNxmz#a_^y#oVdYzO!q+Ed~j> zZ2fSW*6b@gDF4amG99lIce(brdnc3|l~O zp}M3NZ+neru`_8tvf_o2FNB7d*mNC<&-1d;m}HocDJ$oDiGue|X?7icT{Gv0;$A#i zw2-t+tXN8Ac^#}7iMu`{=&$8#uEcz&WvQXOM2#87UWn~u)5|uSt7p#@k|mq9%{F_h zi$v?#1Qh@JH6wt@$SQ+)`IkS>YpKF!mGl5UZlJ%6stpFc)mXh+IdY_rk~i8DT$3kG z$saYv%0vc_$;HK1s$4Vjh~mP@)Fw3Ayfmvg4yy^G*)&!QY4I;lleI0KtXY##*SqNq z*2Wf%wAnD0n^xO-%@zsi#_toxEoFmdS(>B7oVI>CY-PgD2$`Llb%`k^jw7RDHO@5f z=E{8An;hP}0!mh-;k~||y^wZXi4g=ZAG~FF6mGUmOh0bsZMKLd&Z7d!;dmU8O_d4$ zK(i*nCx>uz%ac#bc&=-BbSiFWsz6@D$fZ^l_)zEaszi8%Z|FG&_27s63}gB}>am)@7QHCV7s1@0>BySgsN~ zXOgz1`mB@KP4!tDTXoK)^je>@*o~{WP5iiuXXi|I+PdPKy~b)Gu8Ny=iMKbYb0($H z+&PoNTRLZwVh^1&W|^3NeCLc=F!!-@Jfo7r<2q+dli+hVoik<|^B(J*vG4>RiJjBZ zq@{Dl)b!lax|(yI;CnZ%tJyeq^Ab8|ER6(DaczX1GiDa^(YlSaN+zz2P^V{SaJVRF zc2J|lBd>n&YEl(5{3Rh-&fr{;?2QHRKY9R6UgL>WYi@MN|1pO8(KkZ!hBN6jU2KC@ z-g3&hwc4O}M0L45yvd0=9AER5<~uU6`C4o4NHzO0cOZRLc(QH|iaR8Q{0HP{U2`rf zYVoY*o#&Gf#ct27VPy%cIJJ3bO+#5G6++&cpt*oI4_U?jw+d?_nUbWei3bPMa$-AS zE>sGZ-lP4&Vm-};4VipbT5kNQyVyA|97CzC!ulxGT$XZuT~p%M{d-9$DW%;U@5|4v zuB|G;QKd@L8B)*_jU~Qn+|ufPK>G>jl_&+%7# zTS6$+l)+Z&&nT%Wn-Tk8+ydE+ZZ44C9GTb=WZqbqmgvo$iFsba%WDJ3h@J$HGi}lg z%VvA<$Wu~nr3v8)D?y`CedT6gZK%@gMKq$Mq^ed<07;JISe~#HFH`-pV5;;p(>cJ~c4QpNXR(mD+j`XB>am@>fnWxjZKZ{JoPNB6FSdKwRrsSY!3Hl&5 zUh%%YB!q(mC8cu4z(8y8;_vdx(EKV`CO3$dtwT9GDTl7CtXiJcwLWm^YhT0j=_#fpaGl%?|DT-9rS&9wH=GhwPHdAUp;yWm@^nF?W;o z-5>1a(6SuhPD;7;?1^U&Ia547W|^2|&dAz|3NQ9kP&hu`CP!e?$mZ$;HyQ0+^C7u3 zyKO6*5mN2uuDx0Mgepvqh2zLA2c`?KwS;Om3%mEIjx0u%0}$qc>%GTG&)iLN6NBa} zoqcrEoU|PCma|+q%O(f>;&&RFOPWyWY4$ukK*~$Fgac5l$^=s+!iiblUQDdU;i1GD z&&9)+v~LbuiShq;26!AK4*BwOqA3r|V07OdJ^e0Ov>%!g9kevdC`**fE` z)6!^-h88sYAK$a>H5q;OjeCc;w-`7;r>}VSW+-p=P0M0zmaxerb+Gs%IPjp=Vm_km z>{{PG#LC`RLr0drufzTiJ}5Ew?{`~(#AcBeKjef)%)ujr96yZRP-1uM; z7tz{UwotWE%7JTt_1M}OI7NkHa}8x)$5e6#v9xOZSfd$5V9TaIkOlb7EI6 zbf9|$y%pxs)VLYP`fC`St`h3I)e(wJ)TrKQIdWA{o^*DqU9J)MNJS-l`;TZ8n%2UCQI&0U-fL{ zw+ssnv!5kYTpEr(m4<43HTZf51ERbwJjGL4i*CA`2#y@F(F2#kg6gu$+H!9eVpidU z3dw`TvEn@4qodhW{J$(*MR-Zcvt%S-+DoJLXk%sCS zoaW4z&z7b#FU31FUl?P-VtHFF=P+Fr%I=0mOK`L_a=d!1#us*Qy)UMf`)(?2cAvfO z$u!{{mwr8GU8uN?K8GFq3{o^a&`a~Sssjhcff8S+M4rHRXOmb@m0mezZ{;j4Z4{1v z$!pxeOnkH>`wm4f}?!$**nR!8vd?8R&oKceF@&?T>%k+z| z*2BdAr8Mz!4$nMzeBP%-<6hw7wv<)LU7Le_Ijb9&cvI9?_V6ri@!F2_X6zYkG#(dA zT~$^2#dhl`SfcYxYV%6HYO1S_;!K8p>;z*h{qLM~3*XJS-x%+G{qyW3Vtx zm*eDx{<(!XMOqnqKAGUFHjfI*E@r+)iXBI2E|7dN6VoMBCywT|{$3zGE^I_BUP83J zcD?2g@^FY=7JIs=Z}kw>x)Y|M`(QZnm9h1riFxMn8O6E;3B#l#6Q7+(!wV(GNyxn; zO}4{Zp3&l0=FL@xIZO7-Tz)+3S!7dAgqUqg&YBd;Ig^6wk@Ior$jaJbv3udjz_C}; zgL%L<7B6Xo!hG&)SuDms_r>ShqFc!miR{wqzKLb7vaz(m;wglFjQwe;6Kk_P?>?CA zy-8%D!1&4vYcM>^nxD;>oiVvlNZ?+F;^H*f|0)6;IM2vWhUEk@OORBJa#CDtQST+y z=D}R;vtzOB@CN0K+7ujvOtg{%iW5s`VT(eJ@LAgAj>cLwzZzd#YfDdj_Di@`>3oVC zQ|T}DnA1e^UQB{{ws~SUejMFf3TZeTjOPJ9Y_&8oEMTQ2*h zZto#NuCDbpg1q(Lmq;1$CBmc2?h;AtxY(8T&lZ$6kk%6wXHJs?^Rahc{Ok=IpLP;H)5uo_-kUTez$bP76|KUm}+ zg})1CZ5e1`UVzGR?ixFV9ZqFuJdn!=K5)5r-0a<2SO!hHSmPQIf~-!eW+Yu@i>o;tbS_rXW(c5%I8Znh$MreLXc#I%X&x4hGrcmJ~g;j_wS zZu3Nq{vr?l<`%1klZ(*SvrEs%KdWV?Wf>yyY)H z@I#x}gJ8?dpAIinCKcCQHJHaPvD~#Xv7X+{M@x$w$Gz$|kAdtqN4dyRiF~D4ZIx(p zQ*xx~k#j9AW5jN2R`W8&ER5`kTlD?bZBQD>z8RveSQzHUUViG4g)`)=j%>5TR0qfk z9BHzM*RqElJJuxc^sOvgwtlKS<#T-a=%|Wzv9j|=U*u;eHVV*}Hjq z^I)_4fyOG=@*56#4yi50yJ7RgY;+>mcv7C(D3Y$;Ilpk|fHq-62qDCYQQVVY@v15o78!+|fn2f%}zWx3N@5)S$B zDJl+E)dXw&vQ3I6A?FY+e9K33@~WU5+l}%w52H=*RW2)AJkj72GjmUpJ09W~oBLJR z`n8UN4HEq-O`@4+ws368%D2PZsh;Ae9S$7r#<1l!pof}Ygj+j|%d9@|n6)5FxQy7^ zuhqj)85VDrxode+49N#BW?RC(h?Q;5M9gGnDNs4GYR?cs-{G2Xd#obiOl|z{Ab88M zn;EFZFN>LXEHbEjhL!EOoP zR$1E=%MnKyO~91z3t8G^#%zl5;|A5`)<*c;*F1=Up|ZN%6D%LS8@sgTJ}Iwutg?-R zG|Vv$&sEErS1YTQIi~{m-rNPSGHba(WtDzRHx@RzSX_n7pJlYtI^;KRTD?x(>+rn0 zXfig(+8Wn(x}~5Qi>X>QL-WTJTRvm7D25{wpX$j`uI3-wvM|DjY3Q`Fxv#TjR$gAx z2WsZ>HZu=Dsu=%!i59Np?1%XU47NM;6_|X=l~|0#5A86W>{0D7)p6&u zgAh8Z9)U$dwdSuPxHL5RsmPA@jCb5qrxxVND_7TeiJE-+c@Jmo^V6$BGg=Sig=rbs zn8LP&xs_QVTS!HIj?$&BGW-~1nah!0QZmO=g0579L%|kKa!)BP()h^QzC|g-$014S z=9gL~<_VT%1kwNeRVDwYwrg8zIKmDab=JMQIxijyB#R^Zf&ks_EqG6a!SP z?i(SjGDE$T!4?#)g6A1eHUOy7yatAW>Tvo4E2$CUMv1y@I^U%oZI!wdYSP~#NW$Z% zzb>)x47lJw#Pp+k2^KnMkOjJ1-t7<2zVRZn22m~J_kM;*?#-X-dY~tRTnm9|ps=+w}ro2LX%+pN1lk z>7O7H83h|)cmJzSW9Z0ox_PJ@ktH2tDRs_z>=r86;EFPUwC%`th*%0(ee%6=it z>CPI8hfE{_wxWcmisu_=sQ@D(?3&8 zygtIg;E&x5+=+Y=oNORe28Z$UtyYs{u}e0`%N%uk4PSmh<~kdzdz&0#Gd`*tgFlst z6|zqZ(}i!^7U=^)Brn|PsRPx)E%rUT8wb0Ya--FM$92RK&8BerjWNYhIzGiJ?|6!` z3y>g~#j*$7ZBa_M+|7ua{C0< zXQcP9V46wrKnSpLx|Su~G4;_;^VjKp9X2J#rW8f8br6*l2IPoiju!$AfzfK08L*5e zyy;%b#Q%^ox~&~|h*0KwgVPj3v?$sHf%Fc8fbu&QKwxhg({v+nhM(_+I%%Xd5T2XH1N-MCQ8cti;Ll-L^#=ytdFX z0=SVT;Kw%)akNKNc!_#h>EYjIn%H6CLf=4s596_F!u6`4a`t!FH==RC~!~eVg zbxky!RRJjgkUnKUB*|)IUl|A$-nASgJW|?AfzI>c6M3d+CI`*hY8>^`Jb#5^NCH}O zd`S-+zQsr%n=yf|i};L(lP1iyh-W?+534ID85FRO>z4&s*Ytvbmkm%AG`G9d>hX1D zt%(yAnwNS@45_+{$Pe{MSVPRmzd4^kO$0_#ZlIP-g>D_T3GdSb=gtgqj;i#6~C z)*4j@BJ_C$;KvFxvr9JHQ3v&U+BG}wq~Gzr03QB%6)Xg+4}+`QZ_n!Hp5xM4&pZNMCTo#_rNim-RG)HfYmqeXX);_-7LVta965G};4R?0aLp8BA&J~` zA`PI8!Z8OXDi!p5F5=93XVV3)k|qLPF@qhEz)U`C?R=&OcxWx}SfF`O1d%88=3dJ|M_Kiie^#T8 z_LR$B#SUrlvLIo;3%AkHJ!Eo5Sgdbftg%nez-Kv-U z*NFc|0a>K5g7zVlXA0}lBsi_7%S3d35iWn@P;%Gh(3qr(c}o$YlCzFx+sYG+simJk zDPBn4t|OB;%vm8)jF9h4IDtt=t{z?KxYv#d)v|hR5?4VzHwI{nI*KaE0Z9+&Q5<7# z)hVdnTKK)ldobqj{~1-s=0i9rXDZPcX{`mSpHepIZ=kL1OMSsv1AljPj!d{ov1KWS?W94^kz?80)(?SWAqqFa?uaW~f5dHFKc}4)wm^rEh z^q$Mt08YI@uG_XE_P{kNk$Uw2Zi=9GZwA6`Hh0IU9 zS9C||%&FG2euAd@as7YstM>gsiBKpY@yJO7ojU(Qai{ye`J5C6KkzL0ecXRWv0 zfFGEALH5Dj%L7S9@a?1v_J6}vwni?t31*XrRBwDD>sva5ULi^ZkV)8vZ*ST_R?ZzG zT1uYOG45x$!=0PB398(BqpEkSG(EVg6XD76dd7=7VTosbMyCG)nSy^WpT@5c{4y;b zZ|m1~Jb8Z2O84RqSq~9Jmw0lnDK3e;HhX%cyXZRLqV>2|<0hS8+}HFaIYknIta(}v z1_Zj*_$Vh2HJnK8R6o_wdtYgH@ar3JqO!VLzAFlY-?eDjnLTp{4<23XbCJ|a$`&RN z>8RI5VgdS*kFP)C{7cxkm%Koa&;wkKX{^oBDb|crz|XqT8%92`Y`lgPA*yr-TjKCS zg54Vq1JH%-l|?=clN!5-_Mv`skQ-GsFiGAG3B7{w%@~>M>*iG$f++%{Cmz)Gt2W_n zGNI0!e@9EEVQZ$_8W$4?OwDU4@!!?zr3|b(vdWgR?W=T)C>F z!Sf>!M!3hzn3z#@f{V?@3#RpIzSnpOxQMt^B(1ls&$Kc13NsmNLbHr?q3J_iO*n)L z6WSeO$un=va+z%8e5{#WEuZ`7(XWy_I_>Wi3@{kF{(W5jFE?gc8t$*U4F+ZaxYgTW)xqf?8=g5S-7VFYK41dQeD(ZG|I7$8ZBMM;Ji99?g02 zz6a@&ucq-;Vt~M}d{)({a(8m&#dw9l4HABMPS9#7hlhiTY99hc`(>*NFDvLG^!~!y zSC#Eahx@+PlQbbH$<9v463BL8acvPu<<@AEjMR0EWUVLXFxGd;j|NMmx>E_udWJ(3 zKM86{)?x$3gaslHkLv}mol5%#RR!us`{SyYswzb-jm4-9E&UYiksri+uF@_!=Y6oX zp3ppXv5!5wcs7`l3%b5@TX(Eg3JEl+0(6Cmy1|81#tw4FIEBWqs~0570j9VFdLVBf zH+u$E3VtiBbCz^*$m-D`v)2$V(2~9r!>m&z&E}SnQ>Z9 zrx`w#YwX0B27+Bb+F?e?B9ZPBL;$kshUtKBdbT5lsE$|)VFqA*;0xH(EqspT7y*2Z zw{X!Okh{9d0aT1cHWJb^6%14>WvNkhSSvQm+c%&UdFR#`ITnk?_y*~|R8FQ`qB=+= zqNbA0k{fus0Z%yBrnbtd#MeWNvaA_W*$Y|S_ml-{x+c2&jtUs5t1Iwh`Hp(96%>{G zU1e3nm#H}hq7`fAi5tw^`JHo_R)uQh0x8+(KU9^)Klnoxa+ozK;SW{iPW(898__R= zDlwhw4epZ=5|*WKCraV#sU&n}e@4Ys4=x(t(R+y)`c0^cPwkV?_r&hpF|T>%R~TV> znM!6a@!Q|>mVs0krjN$3^iz=?uf|E@PM~6WGchJRYnQTP5Uzu!c`?BmB-y4$wN+11 zG;n39ITOuFLl~rn4cpTa(wkyPKo6YRuBHdq>)G?wb}NiJ!`BIjOm~)`QvvS4)XGbp z3T0nVz#aGlcp7*|nnh|8GhT&dP3y^*GhEau$S9+sy-WfCqlS*`;1Xc^KUr=N9A0g~ zfUKfrd)c>661x_PG|+D!=-5ObNzeyUNBGmvlHSR>tghTBnY4@^E?(4eJK_1)K5z5N;r^5w5>qS@I~xrunQ)%G6W zgPn_)`pN5r*DR9_I3ORPmEe=H(VG#KesYs6vgoy2MzA;?vby(R@A5zvucTnm@E7kY z)vFo}d13A8BJUb%zA(CRfBAq(Q2(XXw4r7}?c)23DZkL(*6JM`GTZ83;LV)BHCD)H znb+OU7qE{HlE3tVS5)Ys8BO}5R9n4>&$B8jeg>Dg#PT#a+6C)ZZUcJynN`_A)E&c} zs@>u})-4sL9<}H)b4T!r;hzY|_UBk0DJy&D+(z^7W`tRl&+$oa^K)jCRx1mM_rRHI zQ@)GNrr-d(26?m0BXLMa${sZwEsqWldq?- z#V#;Ywko)8vcNC!I})#dU`IW|Nl&`$t;@W*Bpcl_UG`2`;*C>kTeSf8OA`wHYI!=iYeJ;K8zlP1z=F$T@HqiR+kG zpq3pO_3E&)SLG1zgM#4G(|nn50Kz>c*O3|(x&FiWnJkRrRf6-VlyQRq8{i%Geghg} z{cs<0s|aRUPbY+zLIhVT3LSNs=fT@mWmC|lE9V`cRyK4Qp0n#X@O9*=)1n3y3Ds#o z>4C*58kBzt=%gsVvbEHWekdoSG11i#{5owW5W#4G*_2faH|tL81x4?)V4UZ}bhnRi z7gstwWF8^85U?#?ZZw|wht2mk+?c)rbNU=k$(OOwxis8gxos??!6pLs_LXvJsjQnP zyh}%vQs9~8%n8@-q=Omo$8+>h4&8V&4@HV&G6OX&htk?^p?Mb}u3Lw??o_Cu_*hvC z1WAj-GF+(w;!S04V`7;ydz`B_pE@zk`V$z3SNVFVZ1b|6e?`j7_Sqwel_#e}dd5H7WE~;(O`dKxw@B6lq4z)Aut5CyfxMmv>& zZ9=gnVheG)12|46!Du&vke;>)!6obsOpD#~{|^;#rn9gsBt;wR_dRb(US3szYN6NU z^LeTF?z`{YbMHO(+;h%7_uRu*&U_uf7{~BO|9o-P>+mlQ7yd@zilOHr{_ak5if`KF zJUfs0h|m7`PnTYNVk|%Z*(a7fD?i{TKR<8!yu5*Dszmeg!$ne$!9@TfKKfrtD*~P^Rzb9wV!dojy7<}gm zDZ{*g!5C>_6Mj!V`P4$Cy!`xWnR%JY6Jtt0ex~|RU0=Cb`#;Fff4uP7!v06pe=xlB zPfGaM3Zy(c7fJ26w%eC!`+{=h=NCQmjFeUUuZ7q0UlP2hAOEsHmtX&#Owg)l_x>1+ z-_wUAcsX(>7{%DyHr|}J>ptCYD|wcTHeL%pRh>6%S4r6)rOz-N^PB|`DGT~1+wSVo(JK}Oh zkCeapHonQ%eA6L+Lv5~n^Y8d(1il#woCtOrzMHD~E=MPorPQCwYQc9z55Q$eS|~*S ze~JF5_9c9k{@1oCwK?I#q5mo0wfeta?*9{m`aeSKe@}f*I1&!q(T`J5*ZPXfsc1y8 z%-!g7Eq+@1Al!DN&%MD-AoxS{IrSg4MIG?>gfG!(wA_z9ek|0rdT`%Y%Kb?7Q2Oz( z+>b-`VVnGox)0yNH$-EQ8^pf%L}!U|->d2D*Z9tr%^&&dDILa?55|@+#+V<*nm_n} z(C{Vr01L8Nh(46DOS~a=IqRjmqwSp?82|NQF)2~;tolS4bF$CbQ!PAe!naPMj}G4K zY)76r;K#VBpLRr>ok9rPrtpp{7$byt8uADzr!(B_oDs~No&IL$RE}M^MORfD$!s-W z>4ZkBF4C^|HK%R&W7U=ZthyNEW+U#^`2AMLw(Y857m6^(2p(u6g1(DoLU*f}7HKcj z3Ej&3K)kQ-T3S<_&8iJ%R&DQIS`+tjS(EwYsZFMGR-KEhw47Zibh+|&@j`bCU=){H zQ}x!wRKb^3*8x^J-cebx*5p+47~pP{aKGz z8$gfMG;U}tE918pG@|etmyV^m{Bap^1>*|G6^-i_T(P)D;kpag7+e!@-GeIy*L}FA z;>yPL0Ir$1=HQx(>rq_)j4L14d|cndRf_8=T+iTo9@kP_Ww@5%dIgsq*BV@};(8s| z8@TFly@~5*xVGSW7uS2ZcHsI?T)S8rjf;8@W5U|w+NRLIUPb@E=c{VL*K7U=`p?mg z5a}Phz1k|%e;j_*^#421|I}rJ>7TwEp#Kr}d=334g63z)^j~@v`k#vLi2i4&=%2>Y z0R5+>G8O$_`5VDK)(X63`WHa|PSF2UqW>Ne?Ep6NyNtEPB;qbUO5yd4cz6)MVbQf!#oT_d^*B;+qOa+A_-Sg-iiiqwI&i4P~P-X8xB=D44|h$~JRp^sbC&%^i>#NDf>Fxe(*x z!jJh%QD$i4BSktTd4cFuD=R#wmt+N^Q_4$pS_Jt}V3GC{pf6s$w;fFf&Q*Ogj+v%o z>~VT~gs<88CC2A#V;@^@{P_ZnX^sv6A_k$-)hrBVZ0X#yKF%rKTplbu@dLIY6)C7c|`knx?iRK4}Gw2t*@RYi}{pMyTFS>2ZMD zw{%wnF#>D@5J_}ypS)B(EK5fFR~ph$^;)*##{R+j1!bcva|zZlz1P$ z5$i+g>gUUket4hcPv8@E8>3x&UeJA>O>JM3Qe~Iiol?z;+T* z&l{_$e_}a(w@_YH+o?-#r12nRLIyeWVvPgx9ns-yJmy7tJiZo0^PH4kKReS28g~+{ zSBg4Q7VyhNpX?FmKi4wuNN+xmXC2agfVZ#M4j2b%og-K>=^iG0tA{=&wFj$)t#d8( zOp%w-y@^8_)erZ$&{k|6$&rv{`*EUqm(r=u^xFn`On*1vMr>TnP#?(#A?2a>LOKhB z?Pbw2^n;@F$AR|godaW!=4q*Hvoj8K1bIx~)jkn(M+soOMySf&|emWPP_3mul^QqtKct6?$laDibC052k%vjy?a`RK<} z!EF07)M;4=+y3lq&iN|72mUmlq*XFD*@pU&TuODMOKd|ETT~BT%Mm@l_|P%fxE8&M zXNTMt^gWDwA{>s&qi4Af>75VKJ`ZHu>7Lq4-QS&nq1UtK*gmcSwl=3oC!4r5VG|1# z^lTEzRp$P2B+e5<+T|4ZtdOfFeAmuaL>$b`ZKx|f(|oGN7jtX_^b_gZ zzyaEt3_L%_7^b#Kz`YK3G5VefEV+Md~?N=pB@Py*xRO&BJ zHFee|G!YELbW~`daKWck|v5NQfB&=G~d z(L2yyv&b(&Q`9DqvDaFu?Xz1e}^eKHu<0Yq`h9rBT zoZcME*di8MH?nW3#3xZ-k0<}v zc7kX2V^geOXC7<7WrDnDg1jhv@N`WC?mJv{mPAglN8y?3C-QWTO;Kz_ByUwgpP{)t zV&b~m-F$=!zC?#+9h-6)IAh#LDD!})e2iyP`r8owxCiv`;5r9mki( zfu_&my8{oJcPeQ%;ClvXZ?76ibD%9wBW=w=^G-YKO*x0}UHCo|=_G#y3ufo}c-X0L zfAJ#03<)qh@8&}GhlH7{^#RNo`t_V+p*-8JFS%u|DQ#(uzG=aGiN5Bo9WS%qV1f9q zxp^<_{t1jV6TEhv9`;#JnRRyxaR#PfB86&N0C!(Jnk@eqq9MA#-E7;8Ol8 zS6(h~oq+P5MtQOPgi;RWQCa8u2Ffb$bLF*iQd!`&(c@9p3AwDQ{;~oZ$*yZcS>sVw zkk5GgA-Sv*D68m?uDl5-YkYs*#*1|ukFw69tl6m73Dk?q+N>&T9Lm~7Hf_`^@uGi< zfW8w#vyUY#N!&?ouSa>~P+p+VIC~Sy8;`o};(|)EP#)+qVjRjVMcvA{aitt!j6r$( zQC=>}%SU;ID6azLiLm;5Qj!46;FDy}1*|cEmCqSVv(QebbowNvZ#zK0o&EI7i}Y&% zP1t?-xleLjSSeRj6M#8yW&ECzr*&hKW(($;mGOsaSKel>nZ*S(mU4lOMfe?uZeB>TraUdE3*}dy&Gd|Kl;;-E7k#$^ z^sl5T^dE>edGbcXbQ`P5kZ(MNDnCsVHaj2?U3*4 z+F*>830(00bD`2$Io~(u*m)ney=qD9T$68E&AH-R=AKi=Okfb^+F)Gft@Ri?ffzf9 zsPp4KiBsDC=$fqO0t{2px8=U*Tht{{ord+5MAWD9%0RxtAf%yA9nOKY%rJ}(4NWNH zk;dT~EAa7MS`&=1*l}A>V?D;Bg2(57oRC7i!^&7P(VR#FGEUGxF<00u^u8Ya26J1o z>9T*yWzabEg_80st~@p@&ipru`)C5IDfpdY=D$!-Gu1cH91a)G4@NPiW$i1|T_ zls6M~CittwZxc&*gT@43J`Au+=i{EnHt~N4$_oNcG~RY&{YS(HysjQ?rKA`7%jw{E z9cV8lJ>JOjs?PhT>{M{R-v!Q8*WEpy^YBRj7vu>-8_YqyT-^B5O~7%r zIF=JjH=&J`I%VUY+L-D@e1hO^y5Novqcjg~n04Njm!&NWZK#yR^$wKvCh$_q`lVb} z=4Dr2po&if$$X*$Z8BD==NSo~T+~P54{?;H!p9)?siCy!v@7p+8J}F#Js)+?1kJ1v z`ATAGCfZM_`>8J^e2BipdSCR6%So!cj7ui+7*MXli;OZasz9DoI)UWK2(|8eNvDJE zE6G7c{%qT2@F=SRG8)GDRE%>6#?uV6{oczzd{2+DXf;5F^D{e(6Eb1z(07+(+$-}p zrAJX7Khje^JSzA`*h%*-<}n@(=9(nH$%${Pg{;%aV~$S3n9c=X$_HPf`IKn15o1P4 zqdB@8X(garCC!2Ix{x*tG+PB8rOfBFcB#gDBl?)|R^u$hvm=BXwf~Sb)A7k2XH*Bgq^zp4IToL%@6Y8t@kSO7PUU5{*jrAs>YZwM?_F z7Uc#(t|8o3KT=+=;I$CE=l~}e>cFF5|H;GLXL$#5!Fa%LhYYgvf`7_Uxm^^ygCZ-b z%cgen1ph2}ngYL21^*qihY0@*|CB?3e*oilg2;!)ihPLhI81UA@C(McB>t2Mxqx^p z$(hIT&0*l}0^afH*M-2D+T@JR*hu)Q;n5tWz?<;Z0KDBQc>k?}$5EdE-fTY!-lups zyQe4R0LJtJzp?g}m>&*fOxHm+ssL}QMcoer|GR-d$zg@~o^XFkg*%6`h_4auzXiO5 zzV>inqFzt>NirDKYZuiEy!COEb+Er*AcJ9iA4FNJP*$Kg_dyOsSw(WasI2{{R~hQH z31z)~!as%hfgjBk$Pu!R4vxlg7rO zFMCq^3KAg&pDcucP-HWn2A+HFiYb@xm9I`+b z>iP-laR~MB2n+278XW|y9ekBw=|K+)ESg^lmKMi_=#MtwX!Voi{k^~uJic@@;GWV2 zCDHhnW!ZIa0gr{fL*&Ois?M)2hsLTWJ&xpHqpZi-Z8rM+1oX9b z)G6my>TBpSDjki!D+avr952ao$Va--=lt{D~<(CTS3!x$P=%TaY!B*O2!$1ai*4WZZs~}l4r<&YAAVT z6~^N(j7P%%NysxzeBk~jS)O?Z@(kwx?M)buO^|0+L1t*ecw8mRGo{dIsZwFAHuaAa=|RvAdbmx zqLyU{rj|cyVUJV6j#t4RC&NB~ar7I&ejDQ>D1-RP*iw>9W?_8P!G5txC2J5)gzGyp zKcRkn5NQvh4Z3xPMv@QIa0=0;3Y<(?zofaH;EaPjqrlmXd<5qp=68bgdxC?ptjH|y zh+`S{6>)9|6z3A9J!c~CJHR~{xRb0^4pOyUn<2NH(hZcSZEJP8?Pv?7+)bEom2&r~%H4!KRBn^lUV2fE*@Aj1^E%bDjQB6+ z%#Z22{yrHa%4RdsCuCD1*@fm{MNVo&z4B47c+~5(W3VitBRC$)sDSLSS5pS{r&7jl zRT)HkN*NsTj6FHH40XE@A8kZ=C4Q1UYYXa>5Bma@S50tGCjosG%O#Z(JxcS|xYA6N zmw-AQhiu^K`z-XuPc+|?-B9_ykm%HdTv88Q6q%#}xR6Y860jBmmZx`QH(7>vWN+Jy zHOQ0TqwUahq5qPu6+!j8+PeXt9(i3DGK8WJlMF#Tw^-JPE1_dmLhr2_qz_9rc}fol z->QVpsrJL6HP&`f*OUC42q&5cl`2;Le83hJb5*q^x0zE{z+Yu5{46^C zs%pPHh4uUY<{CPW53FCn=0@v{>jcyTb`f#iJGHN)66;TkNN!Nd%puVBS~t?-SloZny3v*IaabE1y!L(>^`rK_g!+;Fgz6{575x%8tQjfg^sil_ zEGO13d*Kf!tTFf2W4+0N`nBs~#QqR;=x3}UC9Yw;iAKR51Ai951-}XSSM-!vdq+$# z*K~x9u+YF|2qc`9Izccbr<3K|^Xh=86F9S60j0AnE+c+L$(Ni0@i|fOZ9pV&d9ds(L z>Gdtm2J9@*De%-ucyhq=5^!_vAzyD__}coRul z-mdoh(udNTxuH9etE}w^XRwPIx{Ghax*F(${3t{^#JVE+P{c63UC(l=JB`pS9ulfM z@51lhth&>mId4UtTYWYzz6Jg@M7MEVONJxZmO=hMdiW`JVeHOW#d>q}f;}94l8AbB z!RII!<&$rCKJ0O=BUs*}n4g}<+ICkoLmK?1VnIh(PrP4-vm#5Vt}<{=15uK&?I zfO;OS!h54Xe1Gl&UV6QK)(h61tKcKl^vFv!kn`+KfVUbxLWf?u<&7=H<97!5vu2|C zZs;&i`B6-DwFIgQ7DgS_*1Mep1}HIC5>hH?pJ~z(0T)nS$Y=m ztj3LClDTCuN0AA(T$)@a&fBA0;T<|5JGSh*-cK-=EKY23*>WjGyTkd3z}2p4D#I|yD8Bk$pz$dMrpti^ZbCH8Qy#JlThRe^4p=k zDdfB3z?{>AdRzv)$XQv<(C4?cp~AD4hjkIR6| zh${eBAg&->!A)&jg=z=*G5KR|COZWas`qY{eEUq|v+XE7ClyCp4-MS~8`LL#z)(>(25$-wMe~kN2aL?nu4flI-ufzR5-0#P|5AF}( z{vhssaeoN+hj9G(yReDB9E>gD?Y zeo;5y9Q+11k({BQ)X(F3J1`fu!B(M%Yz-fl(5a#3MYMiQ>qz^c1I&1gy&z2I!-PzI zQX7vx$jWr;Bk_xGgud)!!Xry-s^G5?4f{qL^l`nsc4Wr-qS)_{kxyh9(&#(*NIN_8 z=WXqRPW+@ZyQa)H`{LQ?x{+lM&bxTdzi#9KF4*vMPHzw4v$taXza%hhRqbkyS<1NV zi|3H<>7V2sb8$f>y0E(1cbewa9OAOJmSI2U!O&H;fqh+V&{Mh#zz0YN?ZDU`3;WeF z*!RRbtNfbC&#WEuskA>)^1;-~Gm0z&`l~i!tO#7^&a;52BVX8wkVUvtJIQ9I&?43S zLp+222JwmADnBnpZYRGZFpjmAu( z;?mx!kTnWJL8A|Y_lB}<#h}X)(65mbs;8nY_=&k!vV&pE15FlyCOOCy?D4{d1+5k7 z1)xvPS9xBB=MU34z4E*q&mX08fy(pCc>Xw@3ss(fgy&Dvxk%;t6+E}4b0d`JN<8mP z=WbJ;tMI%por_nVSKxVnI(Mh?Y{&C~bk3wauf+4gbZ(sTyb8~U(z%Js^J+XFPUn)9 z=QZir@tYB^H#fySUa&BZvt_W1mJBo9`{F*6-epSf^mv{wzYE0u40@L(y$i+jgYvsb z+&@h3vZZ$;@cfAU?l#;%M(?Ic@8a?NFY>!PabHO9rc3Wkcz!~DHxBp3^zMG?-9$V; zDZfj`{UUnzfb=d6&(F#4GI0L_y~~l_W#aiI`Q3C|h5>xX0G>XkxMWEHF6>t+EiGR; za!hg3l3eg7>{+=GPy1Lf4y}KIaricD-#U!LXF^}tZS2;nuB{<o)UEmR2;GOyK?<9Gu8+(vqpNqaw1U`va2cnEr58t~s=nMv5_VAVj z=o7G&l=O90PUQqqFYbV^S|VgB(v=7|375}nsN9oCBY5)xZx$D0Z^v^9>)0`i0}sbN z<)wTiYdw$t?>L&7R&M}r109%S*fuM8Rxx;%0rPAu(~CT76zpKcuL|Wklz3C2Jckk= zDwO9?;yH!#97_D9P@Y4HmlVo#DDjO#c@AyyljhJCKWPqa@ssAz7C&hYZSj-l&=x;w z4sG$1=Fk>DX%21iljcy`7ee+4Lvb-=0Mil^#u(a4lmSGZu9{zqQRl=*MBi7Bb1d1} z)N`yAb1aQfnq#e+IW`J&tW`C~#)0>XJ{Oo{JKmiKU(%k7ThQJ&Y>wrG73w**>1z*j zEc~-|dbXW-OEK^si#fgvb3EyEt1-vdVUDM{yAE^wdCc)=xDdk;(DOvh@h&c;WPI4_ z+IKO>*I|x7k9^gb<74^Yl2MrBvCh8YoIJ;$4P9M3zOTED_Tm+Q)=oo)pgFz?cJO7e z@jrJ`s4jp!X;bN5yC4Ubk?!zACi+Ojjv)H+i+v>T2_QfI!f(MQ!a%2i@U5r)Bl5f} z=2Okjg|NA(?Fha3AJ!8eX~38v{}vP1wUgF95>+w-*}~`hu*nURAV)xEcpuO3>7JY@ z%Mhg7-V8a`0lsPiY^5$lH_uU7*D0T{A@)f)M7xXasHc4r0$@`cgJ({b@11&8JBw`$ z`cU>uJd6HO^I&iM?v=9IzH%kge4xlyTD(ctilzNKGTvpH{T*e%L4kEWco$%w2eqjh zZ!7i-6c5@ja1ZTe20S&(8Xm2sJI z#Uky;Tp+`>0d5@TOo4;VJx-D##J+&;ztbYTAp}qFO}v$C?6#w{FYbMd{*8UB&Aq?F zSf{yKnx6y2`MFW&*g^Y^$8g3Kr!hD0|N3-W9p>h4@Vqk2&AU;~KAq!zWo{0X=jKG+ zz}!spa*}KCyqtr1nfyx$hkc@q&>_ytpCe6~muGU*#Cf`eo!>DN{FMAdDKE{-#GeG{ zggLVQU=Vc&L-$Fv2hGb^Z|SbUJ_j(QrQI z_tTi)^>HmV?|}Cmg8T;>DLE9nqLyUTL!#^u*j@6X|T_*q zb(kKEGvw{pVZNYo2cA*?L*b1|vbARp*clGsot9s#?FhsxW&3i3R&OC*nKOYUe<`oM z5l@T)PZarl>>f1Ch>gpl`6wQ9gvuQ5iPC*X)=(ucdRWfGtqZB%OnF428GN;-c-u&lH{Ge{fHE ziMNrjrY*_r+=%`9R^nx}j~%)N=^T2}H^AFYVm+MdOSTh()w*O1?0QDn_2?HgS6WiO zVq{YBfSs=$_1R0j*?i+|kG3S}2{N9iu%6CXOGY8tZJ15`CEEtsZkP|H!+zsK>3h

^dQo{;{0?qjap2;~Dmy2ulA% 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�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

R=vuE?Zht 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

cq^TAZ$02hJg94BT)&Vcr2&zC0*aCKdTJSii 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%0ACX*hr~yPETz_1WS3cuA5wiG?Y@p^@@SC( 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 literal 583264 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 &fp7`p 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�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�N_^+}1VplR*Db~n98)|Xio-h>WkrGYHj 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 E{}BR=YXATM diff --git a/src/runtime/race/race_linux_arm64.syso b/src/runtime/race/race_linux_arm64.syso index 9dae738700e3300a550821b6ab43d4ebe7b09143..c8b3f48ca7510339f159f02f835ba459db9a686e 100644 GIT binary patch literal 530736 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̲}Ji!XFy@UD)p!d*P43 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 literal 505224 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�OxuOs5@tzK1K7Ve%?6s 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 XGVyqGhHqE<@WVF$JDm3MrtSYf0EGbg diff --git a/src/runtime/race/race_netbsd_amd64.syso b/src/runtime/race/race_netbsd_amd64.syso index 11af16f04689971d06872ad15fad86976e950762..e6cc4bf2d880cc541a1d87c8067bef844d2da702 100644 GIT binary patch literal 714520 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%0DnQc_%)`}y<2p% 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

%#op|2N>la27iZ@B|Ni2RT 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

Bkk?S5eYeDhlb4HKQ6EA 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 literal 609424 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≧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%0A6Vuk=)`yczrq=i?H4vdx+k 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 From df89f2ba53aab53356be197c581d142cefc2c6bc Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Fri, 1 Apr 2022 11:09:30 -0400 Subject: [PATCH 088/125] crypto/x509: skip WSATRY_AGAIN errors when dialing badssl.com subdomains (Temporarily, until the root cause of the test failure can be diagnosed and fixed properly.) For #52094 Change-Id: Iec69e162159f3f0a93135f742aac97cf82c1d96c Reviewed-on: https://go-review.googlesource.com/c/go/+/397478 Trust: Bryan Mills Run-TryBot: Bryan Mills Reviewed-by: Heschi Kreinick TryBot-Result: Gopher Robot --- src/crypto/x509/root_windows_test.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/crypto/x509/root_windows_test.go b/src/crypto/x509/root_windows_test.go index ce6d9273d9..f6dafe4004 100644 --- a/src/crypto/x509/root_windows_test.go +++ b/src/crypto/x509/root_windows_test.go @@ -7,7 +7,11 @@ package x509_test import ( "crypto/tls" "crypto/x509" + "errors" "internal/testenv" + "net" + "strings" + "syscall" "testing" "time" ) @@ -17,10 +21,19 @@ func TestPlatformVerifier(t *testing.T) { t.Skip() } - getChain := func(host string) []*x509.Certificate { + getChain := func(t *testing.T, host string) []*x509.Certificate { t.Helper() c, err := tls.Dial("tcp", host+":443", &tls.Config{InsecureSkipVerify: true}) if err != nil { + // From https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2, + // matching the error string observed in https://go.dev/issue/52094. + const WSATRY_AGAIN syscall.Errno = 11002 + var errDNS *net.DNSError + if strings.HasSuffix(host, ".badssl.com") && errors.As(err, &errDNS) && strings.HasSuffix(errDNS.Err, WSATRY_AGAIN.Error()) { + t.Log(err) + testenv.SkipFlaky(t, 52094) + } + t.Fatalf("tls connection failed: %s", err) } return c.ConnectionState().PeerCertificates @@ -74,7 +87,7 @@ func TestPlatformVerifier(t *testing.T) { for _, tc := range tests { t.Run(tc.name, func(t *testing.T) { - chain := getChain(tc.host) + chain := getChain(t, tc.host) var opts x509.VerifyOptions if len(chain) > 1 { opts.Intermediates = x509.NewCertPool() From 7d87ccc860dc31c0cd60faf00720e2f30fd37efb Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Sat, 29 Jan 2022 19:07:27 -0500 Subject: [PATCH 089/125] all: fix various doc comment formatting nits A run of lines that are indented with any number of spaces or tabs format as a

 block. This commit fixes various doc comments
that format badly according to that (standard) rule.

For example, consider:

	// - List item.
	//   Second line.
	// - Another item.

Because the - lines are unindented, this is actually two paragraphs
separated by a one-line 
 block. This CL rewrites it to:

	//  - List item.
	//    Second line.
	//  - Another item.

Today, that will format as a single 
 block.
In a future release, we hope to format it as a bulleted list.

Various other minor fixes as well, all in preparation for reformatting.

For #51082.

Change-Id: I95cf06040d4186830e571cd50148be3bf8daf189
Reviewed-on: https://go-review.googlesource.com/c/go/+/384257
Trust: Russ Cox 
Run-TryBot: Russ Cox 
Reviewed-by: Ian Lance Taylor 
TryBot-Result: Gopher Robot 
---
 src/cmd/compile/internal/abi/abiutils.go      |  12 +-
 src/cmd/compile/internal/ir/expr.go           |  10 +-
 src/cmd/compile/internal/noder/unified.go     |  28 +-
 .../compile/internal/reflectdata/reflect.go   |   8 +-
 src/cmd/compile/internal/ssa/block.go         |   9 +-
 src/cmd/compile/internal/ssa/branchelim.go    |  10 +-
 src/cmd/compile/internal/ssa/compile.go       |  12 +-
 src/cmd/compile/internal/ssa/func.go          |  12 +-
 .../internal/ssa/fuse_branchredirect.go       |  24 +-
 src/cmd/compile/internal/ssa/location.go      |  20 +-
 src/cmd/compile/internal/ssa/loopbce.go       |  20 +-
 src/cmd/compile/internal/ssa/phiopt.go        |  12 +-
 src/cmd/compile/internal/ssa/prove.go         |  20 +-
 src/cmd/compile/internal/ssa/sparsetree.go    |   4 +-
 src/cmd/compile/internal/ssa/writebarrier.go  |  10 +-
 src/cmd/compile/internal/syntax/parser.go     |  52 ++--
 src/cmd/compile/internal/typecheck/subr.go    |  14 +-
 src/cmd/compile/internal/types/size.go        |  18 +-
 src/cmd/compile/internal/types/type.go        |   6 +-
 src/cmd/compile/internal/types2/infer.go      |   3 +-
 src/cmd/compile/internal/types2/object.go     |   2 +-
 src/cmd/compile/internal/walk/builtin.go      |  12 +-
 src/cmd/compile/internal/walk/range.go        |  12 +-
 src/cmd/dist/buildgo.go                       |   2 +-
 src/cmd/go/script_test.go                     |   4 +-
 src/cmd/internal/goobj/objfile.go             |  58 ++--
 src/cmd/internal/obj/arm64/doc.go             |  53 ++--
 src/cmd/internal/obj/inl.go                   |  26 +-
 src/cmd/internal/obj/objfile.go               |  16 +-
 src/cmd/internal/obj/ppc64/doc.go             | 277 +++++++++---------
 src/cmd/internal/obj/riscv/cpu.go             |   8 +-
 src/cmd/internal/obj/riscv/obj.go             |   4 +-
 src/cmd/link/internal/benchmark/bench.go      |  20 +-
 src/cmd/link/internal/ld/elf.go               |  49 ++--
 src/cmd/link/internal/ld/outbuf.go            |  12 +-
 src/cmd/link/internal/loader/loader.go        |  24 +-
 src/cmd/link/internal/s390x/asm.go            |   8 +-
 src/compress/flate/huffman_code.go            |  25 +-
 src/crypto/cipher/gcm.go                      |   2 +-
 src/crypto/elliptic/p256.go                   |   3 +-
 src/crypto/x509/x509.go                       |  95 +++---
 src/database/sql/fakedb_test.go               |   2 +-
 src/debug/gosym/pclntab_test.go               |  11 +-
 src/fmt/doc.go                                |   9 +-
 src/go/doc/comment.go                         |  13 +-
 src/go/types/object.go                        |   2 +-
 src/math/big/nat.go                           |   7 +-
 src/net/cgo_unix.go                           |  12 +-
 src/net/http/client.go                        |   6 +-
 src/net/http/cookie.go                        |  10 +-
 src/net/http/server.go                        |  16 +-
 src/net/smtp/smtp_test.go                     |   5 +-
 src/os/file_windows.go                        |   2 +-
 src/runtime/chan.go                           |   8 +-
 src/runtime/mheap.go                          |  18 +-
 src/runtime/netpoll.go                        |  20 +-
 src/runtime/proc.go                           |  10 +-
 src/runtime/runtime2.go                       |   6 +-
 src/runtime/string.go                         |   8 +-
 src/runtime/symtab_test.go                    |  16 +-
 src/runtime/type.go                           |   2 +-
 src/syscall/exec_windows.go                   |  10 +-
 src/time/zoneinfo.go                          |  16 +-
 63 files changed, 619 insertions(+), 606 deletions(-)

diff --git a/src/cmd/compile/internal/abi/abiutils.go b/src/cmd/compile/internal/abi/abiutils.go
index 529150a390..07ece87c41 100644
--- a/src/cmd/compile/internal/abi/abiutils.go
+++ b/src/cmd/compile/internal/abi/abiutils.go
@@ -788,12 +788,12 @@ func (state *assignState) assignParamOrReturn(pt *types.Type, n types.Object, is
 // field. For things that are not structs (or structs without padding)
 // it returns a list of zeros. Example:
 //
-// type small struct {
-//   x uint16
-//   y uint8
-//   z int32
-//   w int32
-// }
+//	type small struct {
+//		x uint16
+//		y uint8
+//		z int32
+//		w int32
+//	}
 //
 // For this struct we would return a list [0, 1, 0, 0], meaning that
 // we have one byte of padding after the second field, and no bytes of
diff --git a/src/cmd/compile/internal/ir/expr.go b/src/cmd/compile/internal/ir/expr.go
index 82132005f9..b5c0983d6a 100644
--- a/src/cmd/compile/internal/ir/expr.go
+++ b/src/cmd/compile/internal/ir/expr.go
@@ -951,11 +951,11 @@ var IsIntrinsicCall = func(*CallExpr) bool { return false }
 // instead of computing both. SameSafeExpr assumes that l and r are
 // used in the same statement or expression. In order for it to be
 // safe to reuse l or r, they must:
-// * be the same expression
-// * not have side-effects (no function calls, no channel ops);
-//   however, panics are ok
-// * not cause inappropriate aliasing; e.g. two string to []byte
-//   conversions, must result in two distinct slices
+//  * be the same expression
+//  * not have side-effects (no function calls, no channel ops);
+//    however, panics are ok
+//  * not cause inappropriate aliasing; e.g. two string to []byte
+//    conversions, must result in two distinct slices
 //
 // The handling of OINDEXMAP is subtle. OINDEXMAP can occur both
 // as an lvalue (map assignment) and an rvalue (map access). This is
diff --git a/src/cmd/compile/internal/noder/unified.go b/src/cmd/compile/internal/noder/unified.go
index ca01c0da95..f45c4a7ea8 100644
--- a/src/cmd/compile/internal/noder/unified.go
+++ b/src/cmd/compile/internal/noder/unified.go
@@ -34,38 +34,38 @@ var localPkgReader *pkgReader
 //
 // The pipeline contains 2 steps:
 //
-// (1) Generate package export data "stub".
+//  1) Generate package export data "stub".
 //
-// (2) Generate package IR from package export data.
+//  2) Generate package IR from package export data.
 //
 // The package data "stub" at step (1) contains everything from the local package,
 // but nothing that have been imported. When we're actually writing out export data
 // to the output files (see writeNewExport function), we run the "linker", which does
 // a few things:
 //
-// + Updates compiler extensions data (e.g., inlining cost, escape analysis results).
+//  + Updates compiler extensions data (e.g., inlining cost, escape analysis results).
 //
-// + Handles re-exporting any transitive dependencies.
+//  + Handles re-exporting any transitive dependencies.
 //
-// + Prunes out any unnecessary details (e.g., non-inlineable functions, because any
-//   downstream importers only care about inlinable functions).
+//  + Prunes out any unnecessary details (e.g., non-inlineable functions, because any
+//    downstream importers only care about inlinable functions).
 //
 // The source files are typechecked twice, once before writing export data
 // using types2 checker, once after read export data using gc/typecheck.
 // This duplication of work will go away once we always use types2 checker,
 // we can remove the gc/typecheck pass. The reason it is still here:
 //
-// + It reduces engineering costs in maintaining a fork of typecheck
-//   (e.g., no need to backport fixes like CL 327651).
+//  + It reduces engineering costs in maintaining a fork of typecheck
+//    (e.g., no need to backport fixes like CL 327651).
 //
-// + It makes it easier to pass toolstash -cmp.
+//  + It makes it easier to pass toolstash -cmp.
 //
-// + Historically, we would always re-run the typechecker after import, even though
-//   we know the imported data is valid. It's not ideal, but also not causing any
-//   problem either.
+//  + Historically, we would always re-run the typechecker after import, even though
+//    we know the imported data is valid. It's not ideal, but also not causing any
+//    problem either.
 //
-// + There's still transformation that being done during gc/typecheck, like rewriting
-//   multi-valued function call, or transform ir.OINDEX -> ir.OINDEXMAP.
+//  + There's still transformation that being done during gc/typecheck, like rewriting
+//    multi-valued function call, or transform ir.OINDEX -> ir.OINDEXMAP.
 //
 // Using syntax+types2 tree, which already has a complete representation of generics,
 // the unified IR has the full typed AST for doing introspection during step (1).
diff --git a/src/cmd/compile/internal/reflectdata/reflect.go b/src/cmd/compile/internal/reflectdata/reflect.go
index c49444179e..908f81865e 100644
--- a/src/cmd/compile/internal/reflectdata/reflect.go
+++ b/src/cmd/compile/internal/reflectdata/reflect.go
@@ -667,10 +667,10 @@ var kinds = []int{
 // tflag is documented in reflect/type.go.
 //
 // tflag values must be kept in sync with copies in:
-//	cmd/compile/internal/reflectdata/reflect.go
-//	cmd/link/internal/ld/decodesym.go
-//	reflect/type.go
-//	runtime/type.go
+//	- cmd/compile/internal/reflectdata/reflect.go
+//	- cmd/link/internal/ld/decodesym.go
+//	- reflect/type.go
+//	- runtime/type.go
 const (
 	tflagUncommon      = 1 << 0
 	tflagExtraStar     = 1 << 1
diff --git a/src/cmd/compile/internal/ssa/block.go b/src/cmd/compile/internal/ssa/block.go
index 6ff3188f9b..4d21ade3e3 100644
--- a/src/cmd/compile/internal/ssa/block.go
+++ b/src/cmd/compile/internal/ssa/block.go
@@ -76,10 +76,10 @@ type Block struct {
 //   d.Preds = [?, {b,1}, ?]
 // These indexes allow us to edit the CFG in constant time.
 // In addition, it informs phi ops in degenerate cases like:
-// b:
-//    if k then c else c
-// c:
-//    v = Phi(x, y)
+//  b:
+//     if k then c else c
+//  c:
+//     v = Phi(x, y)
 // Then the indexes tell you whether x is chosen from
 // the if or else branch from b.
 //   b.Succs = [{c,0},{c,1}]
@@ -105,6 +105,7 @@ func (e Edge) String() string {
 	return fmt.Sprintf("{%v,%d}", e.b, e.i)
 }
 
+// BlockKind is the kind of SSA block.
 //     kind          controls        successors
 //   ------------------------------------------
 //     Exit      [return mem]                []
diff --git a/src/cmd/compile/internal/ssa/branchelim.go b/src/cmd/compile/internal/ssa/branchelim.go
index be5f9e0a8b..59773ef31b 100644
--- a/src/cmd/compile/internal/ssa/branchelim.go
+++ b/src/cmd/compile/internal/ssa/branchelim.go
@@ -11,11 +11,11 @@ import "cmd/internal/src"
 //
 // Search for basic blocks that look like
 //
-// bb0            bb0
-//  | \          /   \
-//  | bb1  or  bb1   bb2    <- trivial if/else blocks
-//  | /          \   /
-// bb2            bb3
+//  bb0            bb0
+//   | \          /   \
+//   | bb1  or  bb1   bb2    <- trivial if/else blocks
+//   | /          \   /
+//  bb2            bb3
 //
 // where the intermediate blocks are mostly empty (with no side-effects);
 // rewrite Phis in the postdominator as CondSelects.
diff --git a/src/cmd/compile/internal/ssa/compile.go b/src/cmd/compile/internal/ssa/compile.go
index f87ea5b893..d006bf9a3b 100644
--- a/src/cmd/compile/internal/ssa/compile.go
+++ b/src/cmd/compile/internal/ssa/compile.go
@@ -24,10 +24,10 @@ import (
 
 // Compile is the main entry point for this package.
 // Compile modifies f so that on return:
-//   · all Values in f map to 0 or 1 assembly instructions of the target architecture
-//   · the order of f.Blocks is the order to emit the Blocks
-//   · the order of b.Values is the order to emit the Values in each Block
-//   · f has a non-nil regAlloc field
+//   - all Values in f map to 0 or 1 assembly instructions of the target architecture
+//   - the order of f.Blocks is the order to emit the Blocks
+//   - the order of b.Values is the order to emit the Values in each Block
+//   - f has a non-nil regAlloc field
 func Compile(f *Func) {
 	// TODO: debugging - set flags to control verbosity of compiler,
 	// which phases to dump IR before/after, etc.
@@ -250,8 +250,8 @@ var GenssaDump map[string]bool = make(map[string]bool) // names of functions to
 // version is used as a regular expression to match the phase name(s).
 //
 // Special cases that have turned out to be useful:
-//  ssa/check/on enables checking after each phase
-//  ssa/all/time enables time reporting for all phases
+//  - ssa/check/on enables checking after each phase
+//  - ssa/all/time enables time reporting for all phases
 //
 // See gc/lex.go for dissection of the option string.
 // Example uses:
diff --git a/src/cmd/compile/internal/ssa/func.go b/src/cmd/compile/internal/ssa/func.go
index 7728a395e0..0b5392f0f0 100644
--- a/src/cmd/compile/internal/ssa/func.go
+++ b/src/cmd/compile/internal/ssa/func.go
@@ -820,12 +820,12 @@ func (f *Func) invalidateCFG() {
 }
 
 // DebugHashMatch reports whether environment variable evname
-// 1) is empty (this is a special more-quickly implemented case of 3)
-// 2) is "y" or "Y"
-// 3) is a suffix of the sha1 hash of name
-// 4) is a suffix of the environment variable
-//    fmt.Sprintf("%s%d", evname, n)
-//    provided that all such variables are nonempty for 0 <= i <= n
+//  1) is empty (this is a special more-quickly implemented case of 3)
+//  2) is "y" or "Y"
+//  3) is a suffix of the sha1 hash of name
+//  4) is a suffix of the environment variable
+//     fmt.Sprintf("%s%d", evname, n)
+//     provided that all such variables are nonempty for 0 <= i <= n
 // Otherwise it returns false.
 // When true is returned the message
 //  "%s triggered %s\n", evname, name
diff --git a/src/cmd/compile/internal/ssa/fuse_branchredirect.go b/src/cmd/compile/internal/ssa/fuse_branchredirect.go
index 751dca7468..27449db55a 100644
--- a/src/cmd/compile/internal/ssa/fuse_branchredirect.go
+++ b/src/cmd/compile/internal/ssa/fuse_branchredirect.go
@@ -8,21 +8,21 @@ package ssa
 // of an If block can be derived from its predecessor If block, in
 // some such cases, we can redirect the predecessor If block to the
 // corresponding successor block directly. For example:
-// p:
-//   v11 = Less64  v10 v8
-//   If v11 goto b else u
-// b: <- p ...
-//   v17 = Leq64  v10 v8
-//   If v17 goto s else o
+//  p:
+//    v11 = Less64  v10 v8
+//    If v11 goto b else u
+//  b: <- p ...
+//    v17 = Leq64  v10 v8
+//    If v17 goto s else o
 // We can redirect p to s directly.
 //
 // The implementation here borrows the framework of the prove pass.
-// 1, Traverse all blocks of function f to find If blocks.
-// 2,   For any If block b, traverse all its predecessors to find If blocks.
-// 3,     For any If block predecessor p, update relationship p->b.
-// 4,     Traverse all successors of b.
-// 5,       For any successor s of b, try to update relationship b->s, if a
-//          contradiction is found then redirect p to another successor of b.
+//  1, Traverse all blocks of function f to find If blocks.
+//  2,   For any If block b, traverse all its predecessors to find If blocks.
+//  3,     For any If block predecessor p, update relationship p->b.
+//  4,     Traverse all successors of b.
+//  5,       For any successor s of b, try to update relationship b->s, if a
+//           contradiction is found then redirect p to another successor of b.
 func fuseBranchRedirect(f *Func) bool {
 	ft := newFactsTable(f)
 	ft.checkpoint()
diff --git a/src/cmd/compile/internal/ssa/location.go b/src/cmd/compile/internal/ssa/location.go
index b575febd72..d69db404ed 100644
--- a/src/cmd/compile/internal/ssa/location.go
+++ b/src/cmd/compile/internal/ssa/location.go
@@ -46,19 +46,19 @@ func (r *Register) GCNum() int16 {
 // variable that has been decomposed into multiple stack slots.
 // As an example, a string could have the following configurations:
 //
-//           stack layout              LocalSlots
+//            stack layout              LocalSlots
 //
-// Optimizations are disabled. s is on the stack and represented in its entirety.
-// [ ------- s string ---- ] { N: s, Type: string, Off: 0 }
+//  Optimizations are disabled. s is on the stack and represented in its entirety.
+//  [ ------- s string ---- ] { N: s, Type: string, Off: 0 }
 //
-// s was not decomposed, but the SSA operates on its parts individually, so
-// there is a LocalSlot for each of its fields that points into the single stack slot.
-// [ ------- s string ---- ] { N: s, Type: *uint8, Off: 0 }, {N: s, Type: int, Off: 8}
+//  s was not decomposed, but the SSA operates on its parts individually, so
+//  there is a LocalSlot for each of its fields that points into the single stack slot.
+//  [ ------- s string ---- ] { N: s, Type: *uint8, Off: 0 }, {N: s, Type: int, Off: 8}
 //
-// s was decomposed. Each of its fields is in its own stack slot and has its own LocalSLot.
-// [ ptr *uint8 ] [ len int] { N: ptr, Type: *uint8, Off: 0, SplitOf: parent, SplitOffset: 0},
-//                           { N: len, Type: int, Off: 0, SplitOf: parent, SplitOffset: 8}
-//                           parent = &{N: s, Type: string}
+//  s was decomposed. Each of its fields is in its own stack slot and has its own LocalSLot.
+//  [ ptr *uint8 ] [ len int] { N: ptr, Type: *uint8, Off: 0, SplitOf: parent, SplitOffset: 0},
+//                            { N: len, Type: int, Off: 0, SplitOf: parent, SplitOffset: 8}
+//                            parent = &{N: s, Type: string}
 type LocalSlot struct {
 	N    *ir.Name    // an ONAME *ir.Name representing a stack location.
 	Type *types.Type // type of slot
diff --git a/src/cmd/compile/internal/ssa/loopbce.go b/src/cmd/compile/internal/ssa/loopbce.go
index 5a4bc1d60a..206aab2c5e 100644
--- a/src/cmd/compile/internal/ssa/loopbce.go
+++ b/src/cmd/compile/internal/ssa/loopbce.go
@@ -66,18 +66,18 @@ func parseIndVar(ind *Value) (min, inc, nxt *Value) {
 //
 // Look for variables and blocks that satisfy the following
 //
-// loop:
-//   ind = (Phi min nxt),
-//   if ind < max
-//     then goto enter_loop
-//     else goto exit_loop
+//  loop:
+//    ind = (Phi min nxt),
+//    if ind < max
+//      then goto enter_loop
+//      else goto exit_loop
 //
-//   enter_loop:
-//	do something
-//      nxt = inc + ind
-//	goto loop
+//    enter_loop:
+// 	do something
+//       nxt = inc + ind
+// 	goto loop
 //
-// exit_loop:
+//  exit_loop:
 //
 //
 // TODO: handle 32 bit operations
diff --git a/src/cmd/compile/internal/ssa/phiopt.go b/src/cmd/compile/internal/ssa/phiopt.go
index 745c61cb86..0357442ae9 100644
--- a/src/cmd/compile/internal/ssa/phiopt.go
+++ b/src/cmd/compile/internal/ssa/phiopt.go
@@ -15,12 +15,12 @@ package ssa
 //
 // In SSA code this appears as
 //
-// b0
-//   If b -> b1 b2
-// b1
-//   Plain -> b2
-// b2
-//   x = (OpPhi (ConstBool [true]) (ConstBool [false]))
+//  b0
+//    If b -> b1 b2
+//  b1
+//    Plain -> b2
+//  b2
+//    x = (OpPhi (ConstBool [true]) (ConstBool [false]))
 //
 // In this case we can replace x with a copy of b.
 func phiopt(f *Func) {
diff --git a/src/cmd/compile/internal/ssa/prove.go b/src/cmd/compile/internal/ssa/prove.go
index 98af586cab..d0c9a190ad 100644
--- a/src/cmd/compile/internal/ssa/prove.go
+++ b/src/cmd/compile/internal/ssa/prove.go
@@ -27,17 +27,17 @@ const (
 //
 // E.g.
 //
-// r := relation(...)
+//  r := relation(...)
 //
-// if v < w {
-//   newR := r & lt
-// }
-// if v >= w {
-//   newR := r & (eq|gt)
-// }
-// if v != w {
-//   newR := r & (lt|gt)
-// }
+//  if v < w {
+//    newR := r & lt
+//  }
+//  if v >= w {
+//    newR := r & (eq|gt)
+//  }
+//  if v != w {
+//    newR := r & (lt|gt)
+//  }
 type relation uint
 
 const (
diff --git a/src/cmd/compile/internal/ssa/sparsetree.go b/src/cmd/compile/internal/ssa/sparsetree.go
index be914c8644..732bb8e321 100644
--- a/src/cmd/compile/internal/ssa/sparsetree.go
+++ b/src/cmd/compile/internal/ssa/sparsetree.go
@@ -207,8 +207,8 @@ func (t SparseTree) isAncestor(x, y *Block) bool {
 // domorder returns a value for dominator-oriented sorting.
 // Block domination does not provide a total ordering,
 // but domorder two has useful properties.
-// (1) If domorder(x) > domorder(y) then x does not dominate y.
-// (2) If domorder(x) < domorder(y) and domorder(y) < domorder(z) and x does not dominate y,
+//  1. If domorder(x) > domorder(y) then x does not dominate y.
+//  2. If domorder(x) < domorder(y) and domorder(y) < domorder(z) and x does not dominate y,
 //     then x does not dominate z.
 // Property (1) means that blocks sorted by domorder always have a maximal dominant block first.
 // Property (2) allows searches for dominated blocks to exit early.
diff --git a/src/cmd/compile/internal/ssa/writebarrier.go b/src/cmd/compile/internal/ssa/writebarrier.go
index 5120cd1086..21eee12c85 100644
--- a/src/cmd/compile/internal/ssa/writebarrier.go
+++ b/src/cmd/compile/internal/ssa/writebarrier.go
@@ -80,11 +80,11 @@ func needwb(v *Value, zeroes map[ID]ZeroRegion) bool {
 // when necessary (the condition above). It rewrites store ops to branches
 // and runtime calls, like
 //
-// if writeBarrier.enabled {
-//   gcWriteBarrier(ptr, val)	// Not a regular Go call
-// } else {
-//   *ptr = val
-// }
+//	if writeBarrier.enabled {
+//		gcWriteBarrier(ptr, val)	// Not a regular Go call
+//	} else {
+//		*ptr = val
+//	}
 //
 // A sequence of WB stores for many pointer fields of a single type will
 // be emitted together, with a single branch.
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go
index 39ea0cc224..6574b01371 100644
--- a/src/cmd/compile/internal/syntax/parser.go
+++ b/src/cmd/compile/internal/syntax/parser.go
@@ -1022,22 +1022,24 @@ func (p *parser) operand(keep_parens bool) Expr {
 	// as well (operand is only called from pexpr).
 }
 
-// PrimaryExpr =
-// 	Operand |
-// 	Conversion |
-// 	PrimaryExpr Selector |
-// 	PrimaryExpr Index |
-// 	PrimaryExpr Slice |
-// 	PrimaryExpr TypeAssertion |
-// 	PrimaryExpr Arguments .
+// pexpr parses a PrimaryExpr.
 //
-// Selector       = "." identifier .
-// Index          = "[" Expression "]" .
-// Slice          = "[" ( [ Expression ] ":" [ Expression ] ) |
-//                      ( [ Expression ] ":" Expression ":" Expression )
-//                  "]" .
-// TypeAssertion  = "." "(" Type ")" .
-// Arguments      = "(" [ ( ExpressionList | Type [ "," ExpressionList ] ) [ "..." ] [ "," ] ] ")" .
+//	PrimaryExpr =
+//		Operand |
+//		Conversion |
+//		PrimaryExpr Selector |
+//		PrimaryExpr Index |
+//		PrimaryExpr Slice |
+//		PrimaryExpr TypeAssertion |
+//		PrimaryExpr Arguments .
+//
+//	Selector       = "." identifier .
+//	Index          = "[" Expression "]" .
+//	Slice          = "[" ( [ Expression ] ":" [ Expression ] ) |
+//	                     ( [ Expression ] ":" Expression ":" Expression )
+//	                 "]" .
+//	TypeAssertion  = "." "(" Type ")" .
+//	Arguments      = "(" [ ( ExpressionList | Type [ "," ExpressionList ] ) [ "..." ] [ "," ] ] ")" .
 func (p *parser) pexpr(x Expr, keep_parens bool) Expr {
 	if trace {
 		defer p.trace("pexpr")()
@@ -1283,10 +1285,10 @@ func newIndirect(pos Pos, typ Expr) Expr {
 // typeOrNil is like type_ but it returns nil if there was no type
 // instead of reporting an error.
 //
-// Type     = TypeName | TypeLit | "(" Type ")" .
-// TypeName = identifier | QualifiedIdent .
-// TypeLit  = ArrayType | StructType | PointerType | FunctionType | InterfaceType |
-// 	      SliceType | MapType | Channel_Type .
+//	Type     = TypeName | TypeLit | "(" Type ")" .
+//	TypeName = identifier | QualifiedIdent .
+//	TypeLit  = ArrayType | StructType | PointerType | FunctionType | InterfaceType |
+//		      SliceType | MapType | Channel_Type .
 func (p *parser) typeOrNil() Expr {
 	if trace {
 		defer p.trace("typeOrNil")()
@@ -2519,11 +2521,13 @@ func (p *parser) commClause() *CommClause {
 	return c
 }
 
-// Statement =
-// 	Declaration | LabeledStmt | SimpleStmt |
-// 	GoStmt | ReturnStmt | BreakStmt | ContinueStmt | GotoStmt |
-// 	FallthroughStmt | Block | IfStmt | SwitchStmt | SelectStmt | ForStmt |
-// 	DeferStmt .
+// stmtOrNil parses a statement if one is present, or else returns nil.
+//
+//	Statement =
+//		Declaration | LabeledStmt | SimpleStmt |
+//		GoStmt | ReturnStmt | BreakStmt | ContinueStmt | GotoStmt |
+//		FallthroughStmt | Block | IfStmt | SwitchStmt | SelectStmt | ForStmt |
+//		DeferStmt .
 func (p *parser) stmtOrNil() Stmt {
 	if trace {
 		defer p.trace("stmt " + p.tok.String())()
diff --git a/src/cmd/compile/internal/typecheck/subr.go b/src/cmd/compile/internal/typecheck/subr.go
index e9690a5551..d4ec52adf9 100644
--- a/src/cmd/compile/internal/typecheck/subr.go
+++ b/src/cmd/compile/internal/typecheck/subr.go
@@ -1476,14 +1476,14 @@ func getShapes(t *types.Type, listp *[]*types.Type) {
 // For now, we only consider two types to have the same shape, if they have exactly
 // the same underlying type or they are both pointer types.
 //
-//  tparam is the associated typeparam - it must be TTYPEPARAM type. If there is a
-//  structural type for the associated type param (not common), then a pointer type t
-//  is mapped to its underlying type, rather than being merged with other pointers.
+// tparam is the associated typeparam - it must be TTYPEPARAM type. If there is a
+// structural type for the associated type param (not common), then a pointer type t
+// is mapped to its underlying type, rather than being merged with other pointers.
 //
-//  Shape types are also distinguished by the index of the type in a type param/arg
-//  list. We need to do this so we can distinguish and substitute properly for two
-//  type params in the same function that have the same shape for a particular
-//  instantiation.
+// Shape types are also distinguished by the index of the type in a type param/arg
+// list. We need to do this so we can distinguish and substitute properly for two
+// type params in the same function that have the same shape for a particular
+// instantiation.
 func Shapify(t *types.Type, index int, tparam *types.Type) *types.Type {
 	assert(!t.IsShape())
 	if t.HasShape() {
diff --git a/src/cmd/compile/internal/types/size.go b/src/cmd/compile/internal/types/size.go
index fc9907b85f..9fa3e49e34 100644
--- a/src/cmd/compile/internal/types/size.go
+++ b/src/cmd/compile/internal/types/size.go
@@ -17,18 +17,18 @@ var RegSize int
 
 // Slices in the runtime are represented by three components:
 //
-// type slice struct {
-// 	ptr unsafe.Pointer
-// 	len int
-// 	cap int
-// }
+//	type slice struct {
+//		ptr unsafe.Pointer
+//		len int
+//		cap int
+//	}
 //
 // Strings in the runtime are represented by two components:
 //
-// type string struct {
-// 	ptr unsafe.Pointer
-// 	len int
-// }
+//	type string struct {
+//		ptr unsafe.Pointer
+//		len int
+//	}
 //
 // These variables are the offsets of fields and sizes of these structs.
 var (
diff --git a/src/cmd/compile/internal/types/type.go b/src/cmd/compile/internal/types/type.go
index c8d11b5bb9..147194c369 100644
--- a/src/cmd/compile/internal/types/type.go
+++ b/src/cmd/compile/internal/types/type.go
@@ -1121,9 +1121,9 @@ func (t *Type) SimpleString() string {
 }
 
 // Cmp is a comparison between values a and b.
-// -1 if a < b
-//  0 if a == b
-//  1 if a > b
+//  -1 if a < b
+//   0 if a == b
+//   1 if a > b
 type Cmp int8
 
 const (
diff --git a/src/cmd/compile/internal/types2/infer.go b/src/cmd/compile/internal/types2/infer.go
index 78fc35b72a..9f7e593eeb 100644
--- a/src/cmd/compile/internal/types2/infer.go
+++ b/src/cmd/compile/internal/types2/infer.go
@@ -21,9 +21,8 @@ const useConstraintTypeInference = true
 // If successful, infer returns the complete list of type arguments, one for each type parameter.
 // Otherwise the result is nil and appropriate errors will be reported.
 //
-// Inference proceeds as follows:
+// Inference proceeds as follows. Starting with given type arguments:
 //
-//   Starting with given type arguments
 //   1) apply FTI (function type inference) with typed arguments,
 //   2) apply CTI (constraint type inference),
 //   3) apply FTI with untyped function arguments,
diff --git a/src/cmd/compile/internal/types2/object.go b/src/cmd/compile/internal/types2/object.go
index 08d37cb256..ee7c8a8488 100644
--- a/src/cmd/compile/internal/types2/object.go
+++ b/src/cmd/compile/internal/types2/object.go
@@ -343,7 +343,7 @@ func NewParam(pos syntax.Pos, pkg *Package, name string, typ Type) *Var {
 
 // NewField returns a new variable representing a struct field.
 // For embedded fields, the name is the unqualified type name
-/// under which the field is accessible.
+// under which the field is accessible.
 func NewField(pos syntax.Pos, pkg *Package, name string, typ Type, embedded bool) *Var {
 	return &Var{object: object{nil, pos, pkg, name, typ, 0, colorFor(typ), nopos}, embedded: embedded, isField: true}
 }
diff --git a/src/cmd/compile/internal/walk/builtin.go b/src/cmd/compile/internal/walk/builtin.go
index b25627bd22..8fe231161a 100644
--- a/src/cmd/compile/internal/walk/builtin.go
+++ b/src/cmd/compile/internal/walk/builtin.go
@@ -125,12 +125,12 @@ func walkClose(n *ir.UnaryExpr, init *ir.Nodes) ir.Node {
 
 // Lower copy(a, b) to a memmove call or a runtime call.
 //
-// init {
-//   n := len(a)
-//   if n > len(b) { n = len(b) }
-//   if a.ptr != b.ptr { memmove(a.ptr, b.ptr, n*sizeof(elem(a))) }
-// }
-// n;
+//	init {
+//	  n := len(a)
+//	  if n > len(b) { n = len(b) }
+//	  if a.ptr != b.ptr { memmove(a.ptr, b.ptr, n*sizeof(elem(a))) }
+//	}
+//	n;
 //
 // Also works if b is a string.
 //
diff --git a/src/cmd/compile/internal/walk/range.go b/src/cmd/compile/internal/walk/range.go
index aa8c548963..dcf7a786e7 100644
--- a/src/cmd/compile/internal/walk/range.go
+++ b/src/cmd/compile/internal/walk/range.go
@@ -316,9 +316,9 @@ func walkRange(nrange *ir.RangeStmt) ir.Node {
 
 // isMapClear checks if n is of the form:
 //
-// for k := range m {
-//   delete(m, k)
-// }
+//	for k := range m {
+//		delete(m, k)
+//	}
 //
 // where == for keys of map m is reflexive.
 func isMapClear(n *ir.RangeStmt) bool {
@@ -374,9 +374,9 @@ func mapClear(m ir.Node) ir.Node {
 // fast zeroing of slices and arrays (issue 5373).
 // Look for instances of
 //
-// for i := range a {
-// 	a[i] = zero
-// }
+//	for i := range a {
+//		a[i] = zero
+//	}
 //
 // in which the evaluation of a is side-effect-free.
 //
diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go
index caafc13da8..520dde7050 100644
--- a/src/cmd/dist/buildgo.go
+++ b/src/cmd/dist/buildgo.go
@@ -97,7 +97,7 @@ func mkzosarch(dir, file string) {
 // mkzcgo writes zcgo.go for the go/build package:
 //
 //	package build
-//  var cgoEnabled = map[string]bool{}
+//	var cgoEnabled = map[string]bool{}
 //
 // It is invoked to write go/build/zcgo.go.
 func mkzcgo(dir, file string) {
diff --git a/src/cmd/go/script_test.go b/src/cmd/go/script_test.go
index bffbe32220..76a2b85f96 100644
--- a/src/cmd/go/script_test.go
+++ b/src/cmd/go/script_test.go
@@ -1373,7 +1373,9 @@ type command struct {
 // parse parses a single line as a list of space-separated arguments
 // subject to environment variable expansion (but not resplitting).
 // Single quotes around text disable splitting and expansion.
-// To embed a single quote, double it: 'Don''t communicate by sharing memory.'
+// To embed a single quote, double it:
+//
+//	'Don''t communicate by sharing memory.'
 func (ts *testScript) parse(line string) command {
 	ts.line = line
 
diff --git a/src/cmd/internal/goobj/objfile.go b/src/cmd/internal/goobj/objfile.go
index ff225bedd7..af2a0df338 100644
--- a/src/cmd/internal/goobj/objfile.go
+++ b/src/cmd/internal/goobj/objfile.go
@@ -264,15 +264,15 @@ func (p *ImportedPkg) Write(w *Writer) {
 // Symbol definition.
 //
 // Serialized format:
-// Sym struct {
-//    Name  string
-//    ABI   uint16
-//    Type  uint8
-//    Flag  uint8
-//    Flag2 uint8
-//    Siz   uint32
-//    Align uint32
-// }
+//   Sym struct {
+//      Name  string
+//      ABI   uint16
+//      Type  uint8
+//      Flag  uint8
+//      Flag2 uint8
+//      Siz   uint32
+//      Align uint32
+//   }
 type Sym [SymSize]byte
 
 const SymSize = stringRefSize + 2 + 1 + 1 + 1 + 4 + 4
@@ -371,13 +371,13 @@ const HashSize = sha1.Size
 // Relocation.
 //
 // Serialized format:
-// Reloc struct {
-//    Off  int32
-//    Siz  uint8
-//    Type uint16
-//    Add  int64
-//    Sym  SymRef
-// }
+//   Reloc struct {
+//      Off  int32
+//      Siz  uint8
+//      Type uint16
+//      Add  int64
+//      Sym  SymRef
+//   }
 type Reloc [RelocSize]byte
 
 const RelocSize = 4 + 1 + 2 + 8 + 8
@@ -415,10 +415,10 @@ func (r *Reloc) fromBytes(b []byte) { copy(r[:], b) }
 // Aux symbol info.
 //
 // Serialized format:
-// Aux struct {
-//    Type uint8
-//    Sym  SymRef
-// }
+//   Aux struct {
+//      Type uint8
+//      Sym  SymRef
+//   }
 type Aux [AuxSize]byte
 
 const AuxSize = 1 + 8
@@ -458,11 +458,11 @@ func (a *Aux) fromBytes(b []byte) { copy(a[:], b) }
 // Referenced symbol flags.
 //
 // Serialized format:
-// RefFlags struct {
-//    Sym   symRef
-//    Flag  uint8
-//    Flag2 uint8
-// }
+//   RefFlags struct {
+//      Sym   symRef
+//      Flag  uint8
+//      Flag2 uint8
+//   }
 type RefFlags [RefFlagsSize]byte
 
 const RefFlagsSize = 8 + 1 + 1
@@ -490,10 +490,10 @@ const huge = (1<<31 - 1) / RelocSize
 // Referenced symbol name.
 //
 // Serialized format:
-// RefName struct {
-//    Sym  symRef
-//    Name string
-// }
+//   RefName struct {
+//      Sym  symRef
+//      Name string
+//   }
 type RefName [RefNameSize]byte
 
 const RefNameSize = 8 + stringRefSize
diff --git a/src/cmd/internal/obj/arm64/doc.go b/src/cmd/internal/obj/arm64/doc.go
index 1234a3e818..2763cf4139 100644
--- a/src/cmd/internal/obj/arm64/doc.go
+++ b/src/cmd/internal/obj/arm64/doc.go
@@ -11,7 +11,7 @@ Instructions mnemonics mapping rules
 1. Most instructions use width suffixes of instruction names to indicate operand width rather than
 using different register names.
 
-  Examples:
+Examples:
     ADC R24, R14, R12          <=>     adc x12, x24
     ADDW R26->24, R21, R15     <=>     add w15, w21, w26, asr #24
     FCMPS F2, F3               <=>     fcmp s3, s2
@@ -20,7 +20,7 @@ using different register names.
 
 2. Go uses .P and .W suffixes to indicate post-increment and pre-increment.
 
-  Examples:
+Examples:
     MOVD.P -8(R10), R8         <=>      ldr x8, [x10],#-8
     MOVB.W 16(R16), R10        <=>      ldrsb x10, [x16,#16]!
     MOVBU.W 16(R16), R10       <=>      ldrb x10, [x16,#16]!
@@ -39,7 +39,7 @@ ldrsh, sturh, strh =>  MOVH.
 5. Go adds a V prefix for most floating-point and SIMD instructions, except cryptographic extension
 instructions and floating-point(scalar) instructions.
 
-  Examples:
+Examples:
     VADD V5.H8, V18.H8, V9.H8         <=>      add v9.8h, v18.8h, v5.8h
     VLD1.P (R6)(R11), [V31.D1]        <=>      ld1 {v31.1d}, [x6], x11
     VFMLA V29.S2, V20.S2, V14.S2      <=>      fmla v14.2s, v20.2s, v29.2s
@@ -52,7 +52,7 @@ Go asm supports the PCALIGN directive, which indicates that the next instruction
 to a specified boundary by padding with NOOP instruction. The alignment value supported on arm64
 must be a power of 2 and in the range of [8, 2048].
 
-  Examples:
+Examples:
     PCALIGN $16
     MOVD $2, R0          // This instruction is aligned with 16 bytes.
     PCALIGN $1024
@@ -63,7 +63,8 @@ its address will be aligned to the same or coarser boundary, which is the maximu
 alignment values.
 
 In the following example, the function Add is aligned with 128 bytes.
-  Examples:
+
+Examples:
     TEXT ·Add(SB),$40-16
     MOVD $2, R0
     PCALIGN $32
@@ -79,7 +80,7 @@ have the same alignment as the first hand-written instruction.
 
 In the following example, PCALIGN at the entry of the function Add will align its address to 2048 bytes.
 
-  Examples:
+Examples:
     TEXT ·Add(SB),NOSPLIT|NOFRAME,$0
       PCALIGN $2048
       MOVD $1, R0
@@ -91,7 +92,7 @@ In the following example, PCALIGN at the entry of the function Add will align it
 Go asm uses VMOVQ/VMOVD/VMOVS to move 128-bit, 64-bit and 32-bit constants into vector registers, respectively.
 And for a 128-bit interger, it take two 64-bit operands, for the low and high parts separately.
 
-  Examples:
+Examples:
     VMOVS $0x11223344, V0
     VMOVD $0x1122334455667788, V1
     VMOVQ $0x1122334455667788, $0x99aabbccddeeff00, V2   // V2=0x99aabbccddeeff001122334455667788
@@ -104,7 +105,7 @@ is the 16-bit unsigned immediate, in the range 0 to 65535; For the 32-bit varian
 
 The current Go assembler does not accept zero shifts, such as "op $0, Rd" and "op $(0<<(16|32|48)), Rd" instructions.
 
-  Examples:
+Examples:
     MOVK $(10<<32), R20     <=>      movk x20, #10, lsl #32
     MOVZW $(20<<16), R8     <=>      movz w8, #20, lsl #16
     MOVK $(0<<16), R10 will be reported as an error by the assembler.
@@ -121,7 +122,7 @@ Special Cases.
 related to real ARM64 instruction. NOOP serves for the hardware nop instruction. NOOP is an alias of
 HINT $0.
 
-  Examples:
+Examples:
     VMOV V13.B[1], R20      <=>      mov x20, v13.b[1]
     VMOV V13.H[1], R20      <=>      mov w20, v13.h[1]
     JMP (R3)                <=>      br x3
@@ -146,7 +147,7 @@ Argument mapping rules
 
 Go reverses the arguments of most instructions.
 
-    Examples:
+Examples:
       ADD R11.SXTB<<1, RSP, R25      <=>      add x25, sp, w11, sxtb #1
       VADD V16, V19, V14             <=>      add d14, d19, d16
 
@@ -155,32 +156,32 @@ Special Cases.
 (1) Argument order is the same as in the GNU ARM64 syntax: cbz, cbnz and some store instructions,
 such as str, stur, strb, sturb, strh, sturh stlr, stlrb. stlrh, st1.
 
-  Examples:
+Examples:
     MOVD R29, 384(R19)    <=>    str x29, [x19,#384]
     MOVB.P R30, 30(R4)    <=>    strb w30, [x4],#30
     STLRH R21, (R19)      <=>    stlrh w21, [x19]
 
 (2) MADD, MADDW, MSUB, MSUBW, SMADDL, SMSUBL, UMADDL, UMSUBL , , , 
 
-  Examples:
+Examples:
     MADD R2, R30, R22, R6       <=>    madd x6, x22, x2, x30
     SMSUBL R10, R3, R17, R27    <=>    smsubl x27, w17, w10, x3
 
 (3) FMADDD, FMADDS, FMSUBD, FMSUBS, FNMADDD, FNMADDS, FNMSUBD, FNMSUBS , , , 
 
-  Examples:
+Examples:
     FMADDD F30, F20, F3, F29    <=>    fmadd d29, d3, d30, d20
     FNMSUBS F7, F25, F7, F22    <=>    fnmsub s22, s7, s7, s25
 
 (4) BFI, BFXIL, SBFIZ, SBFX, UBFIZ, UBFX $, , $, 
 
-  Examples:
+Examples:
     BFIW $16, R20, $6, R0      <=>    bfi w0, w20, #16, #6
     UBFIZ $34, R26, $5, R20    <=>    ubfiz x20, x26, #34, #5
 
 (5) FCCMPD, FCCMPS, FCCMPED, FCCMPES , Fm. Fn, $
 
-  Examples:
+Examples:
     FCCMPD AL, F8, F26, $0     <=>    fccmp d26, d8, #0x0, al
     FCCMPS VS, F29, F4, $4     <=>    fccmp s4, s29, #0x4, vs
     FCCMPED LE, F20, F5, $13   <=>    fccmpe d5, d20, #0xd, le
@@ -188,20 +189,20 @@ such as str, stur, strb, sturb, strh, sturh stlr, stlrb. stlrh, st1.
 
 (6) CCMN, CCMNW, CCMP, CCMPW , , $, $
 
-  Examples:
+Examples:
     CCMP MI, R22, $12, $13     <=>    ccmp x22, #0xc, #0xd, mi
     CCMNW AL, R1, $11, $8      <=>    ccmn w1, #0xb, #0x8, al
 
 (7) CCMN, CCMNW, CCMP, CCMPW , , , $
 
-  Examples:
+Examples:
     CCMN VS, R13, R22, $10     <=>    ccmn x13, x22, #0xa, vs
     CCMPW HS, R19, R14, $11    <=>    ccmp w19, w14, #0xb, cs
 
 (9) CSEL, CSELW, CSNEG, CSNEGW, CSINC, CSINCW , , ,  ;
 FCSELD, FCSELS , , , 
 
-  Examples:
+Examples:
     CSEL GT, R0, R19, R1        <=>    csel x1, x0, x19, gt
     CSNEGW GT, R7, R17, R8      <=>    csneg w8, w7, w17, gt
     FCSELD EQ, F15, F18, F16    <=>    fcsel d16, d15, d18, eq
@@ -211,13 +212,13 @@ FCSELD, FCSELS , , , 
 
 (11) STLXR, STLXRW, STXR, STXRW, STLXRB, STLXRH, STXRB, STXRH  , (), 
 
-  Examples:
+Examples:
     STLXR ZR, (R15), R16    <=>    stlxr w16, xzr, [x15]
     STXRB R9, (R21), R19    <=>    stxrb w19, w9, [x21]
 
 (12) STLXP, STLXPW, STXP, STXPW (, ), (), 
 
-  Examples:
+Examples:
     STLXP (R17, R19), (R4), R5      <=>    stlxp w5, x17, x19, [x4]
     STXPW (R30, R25), (R22), R13    <=>    stxp w13, w30, w25, [x22]
 
@@ -227,28 +228,28 @@ FCSELD, FCSELS , , , 
 
 Optionally-shifted immediate.
 
-  Examples:
+Examples:
     ADD $(3151<<12), R14, R20     <=>    add x20, x14, #0xc4f, lsl #12
     ADDW $1864, R25, R6           <=>    add w6, w25, #0x748
 
 Optionally-shifted registers are written as {}.
 The  can be <<(lsl), >>(lsr), ->(asr), @>(ror).
 
-  Examples:
+Examples:
     ADD R19>>30, R10, R24     <=>    add x24, x10, x19, lsr #30
     ADDW R26->24, R21, R15    <=>    add w15, w21, w26, asr #24
 
 Extended registers are written as {.{<<}}.
  can be UXTB, UXTH, UXTW, UXTX, SXTB, SXTH, SXTW or SXTX.
 
-  Examples:
+Examples:
     ADDS R19.UXTB<<4, R9, R26     <=>    adds x26, x9, w19, uxtb #4
     ADDSW R14.SXTX, R14, R6       <=>    adds w6, w14, w14, sxtx
 
 Memory references: [{,#0}] is written as (Rn|RSP), a base register and an immediate
 offset is written as imm(Rn|RSP), a base register and an offset register is written as (Rn|RSP)(Rm).
 
-  Examples:
+Examples:
     LDAR (R22), R9                  <=>    ldar x9, [x22]
     LDP 28(R17), (R15, R23)         <=>    ldp x15, x23, [x17,#28]
     MOVWU (R4)(R12<<2), R8          <=>    ldr w8, [x4, x12, lsl #2]
@@ -257,12 +258,12 @@ offset is written as imm(Rn|RSP), a base register and an offset register is writ
 
 Register pairs are written as (Rt1, Rt2).
 
-  Examples:
+Examples:
     LDP.P -240(R11), (R12, R26)    <=>    ldp x12, x26, [x11],#-240
 
 Register with arrangement and register with arrangement and index.
 
-  Examples:
+Examples:
     VADD V5.H8, V18.H8, V9.H8                     <=>    add v9.8h, v18.8h, v5.8h
     VLD1 (R2), [V21.B16]                          <=>    ld1 {v21.16b}, [x2]
     VST1.P V9.S[1], (R16)(R21)                    <=>    st1 {v9.s}[1], [x16], x28
diff --git a/src/cmd/internal/obj/inl.go b/src/cmd/internal/obj/inl.go
index 1b1d13a679..d65a7357a6 100644
--- a/src/cmd/internal/obj/inl.go
+++ b/src/cmd/internal/obj/inl.go
@@ -13,19 +13,19 @@ import "cmd/internal/src"
 // every time a function is inlined. For example, suppose f() calls g()
 // and g has two calls to h(), and that f, g, and h are inlineable:
 //
-//  1 func main() {
-//  2     f()
-//  3 }
-//  4 func f() {
-//  5     g()
-//  6 }
-//  7 func g() {
-//  8     h()
-//  9     h()
-// 10 }
-// 11 func h() {
-// 12     println("H")
-// 13 }
+//   1 func main() {
+//   2     f()
+//   3 }
+//   4 func f() {
+//   5     g()
+//   6 }
+//   7 func g() {
+//   8     h()
+//   9     h()
+//  10 }
+//  11 func h() {
+//  12     println("H")
+//  13 }
 //
 // Assuming the global tree starts empty, inlining will produce the
 // following tree:
diff --git a/src/cmd/internal/obj/objfile.go b/src/cmd/internal/obj/objfile.go
index 7bae31f343..e9302ee642 100644
--- a/src/cmd/internal/obj/objfile.go
+++ b/src/cmd/internal/obj/objfile.go
@@ -448,14 +448,14 @@ func contentHash64(s *LSym) goobj.Hash64Type {
 // Depending on the category of the referenced symbol, we choose
 // different hash algorithms such that the hash is globally
 // consistent.
-// - For referenced content-addressable symbol, its content hash
-//   is globally consistent.
-// - For package symbol and builtin symbol, its local index is
-//   globally consistent.
-// - For non-package symbol, its fully-expanded name is globally
-//   consistent. For now, we require we know the current package
-//   path so we can always expand symbol names. (Otherwise,
-//   symbols with relocations are not considered hashable.)
+//  - For referenced content-addressable symbol, its content hash
+//    is globally consistent.
+//  - For package symbol and builtin symbol, its local index is
+//    globally consistent.
+//  - For non-package symbol, its fully-expanded name is globally
+//    consistent. For now, we require we know the current package
+//    path so we can always expand symbol names. (Otherwise,
+//    symbols with relocations are not considered hashable.)
 //
 // For now, we assume there is no circular dependencies among
 // hashed symbols.
diff --git a/src/cmd/internal/obj/ppc64/doc.go b/src/cmd/internal/obj/ppc64/doc.go
index a9d89c93b4..bdaeaf69e1 100644
--- a/src/cmd/internal/obj/ppc64/doc.go
+++ b/src/cmd/internal/obj/ppc64/doc.go
@@ -23,207 +23,212 @@ In the examples below, the Go assembly is on the left, PPC64 assembly on the rig
 
 1. Operand ordering
 
-  In Go asm, the last operand (right) is the target operand, but with PPC64 asm,
-  the first operand (left) is the target. The order of the remaining operands is
-  not consistent: in general opcodes with 3 operands that perform math or logical
-  operations have their operands in reverse order. Opcodes for vector instructions
-  and those with more than 3 operands usually have operands in the same order except
-  for the target operand, which is first in PPC64 asm and last in Go asm.
+In Go asm, the last operand (right) is the target operand, but with PPC64 asm,
+the first operand (left) is the target. The order of the remaining operands is
+not consistent: in general opcodes with 3 operands that perform math or logical
+operations have their operands in reverse order. Opcodes for vector instructions
+and those with more than 3 operands usually have operands in the same order except
+for the target operand, which is first in PPC64 asm and last in Go asm.
 
-  Example:
-    ADD R3, R4, R5		<=>	add r5, r4, r3
+Example:
+
+  ADD R3, R4, R5		<=>	add r5, r4, r3
 
 2. Constant operands
 
-  In Go asm, an operand that starts with '$' indicates a constant value. If the
-  instruction using the constant has an immediate version of the opcode, then an
-  immediate value is used with the opcode if possible.
+In Go asm, an operand that starts with '$' indicates a constant value. If the
+instruction using the constant has an immediate version of the opcode, then an
+immediate value is used with the opcode if possible.
 
-  Example:
-    ADD $1, R3, R4		<=> 	addi r4, r3, 1
+Example:
+
+  ADD $1, R3, R4		<=> 	addi r4, r3, 1
 
 3. Opcodes setting condition codes
 
-  In PPC64 asm, some instructions other than compares have variations that can set
-  the condition code where meaningful. This is indicated by adding '.' to the end
-  of the PPC64 instruction. In Go asm, these instructions have 'CC' at the end of
-  the opcode. The possible settings of the condition code depend on the instruction.
-  CR0 is the default for fixed-point instructions; CR1 for floating point; CR6 for
-  vector instructions.
+In PPC64 asm, some instructions other than compares have variations that can set
+the condition code where meaningful. This is indicated by adding '.' to the end
+of the PPC64 instruction. In Go asm, these instructions have 'CC' at the end of
+the opcode. The possible settings of the condition code depend on the instruction.
+CR0 is the default for fixed-point instructions; CR1 for floating point; CR6 for
+vector instructions.
 
-  Example:
-    ANDCC R3, R4, R5		<=>	and. r5, r3, r4 (set CR0)
+Example:
+
+  ANDCC R3, R4, R5		<=>	and. r5, r3, r4 (set CR0)
 
 4. Loads and stores from memory
 
-  In Go asm, opcodes starting with 'MOV' indicate a load or store. When the target
-  is a memory reference, then it is a store; when the target is a register and the
-  source is a memory reference, then it is a load.
+In Go asm, opcodes starting with 'MOV' indicate a load or store. When the target
+is a memory reference, then it is a store; when the target is a register and the
+source is a memory reference, then it is a load.
 
-  MOV{B,H,W,D} variations identify the size as byte, halfword, word, doubleword.
+MOV{B,H,W,D} variations identify the size as byte, halfword, word, doubleword.
 
-  Adding 'Z' to the opcode for a load indicates zero extend; if omitted it is sign extend.
-  Adding 'U' to a load or store indicates an update of the base register with the offset.
-  Adding 'BR' to an opcode indicates byte-reversed load or store, or the order opposite
-  of the expected endian order. If 'BR' is used then zero extend is assumed.
+Adding 'Z' to the opcode for a load indicates zero extend; if omitted it is sign extend.
+Adding 'U' to a load or store indicates an update of the base register with the offset.
+Adding 'BR' to an opcode indicates byte-reversed load or store, or the order opposite
+of the expected endian order. If 'BR' is used then zero extend is assumed.
 
-  Memory references n(Ra) indicate the address in Ra + n. When used with an update form
-  of an opcode, the value in Ra is incremented by n.
+Memory references n(Ra) indicate the address in Ra + n. When used with an update form
+of an opcode, the value in Ra is incremented by n.
 
-  Memory references (Ra+Rb) or (Ra)(Rb) indicate the address Ra + Rb, used by indexed
-  loads or stores. Both forms are accepted. When used with an update then the base register
-  is updated by the value in the index register.
+Memory references (Ra+Rb) or (Ra)(Rb) indicate the address Ra + Rb, used by indexed
+loads or stores. Both forms are accepted. When used with an update then the base register
+is updated by the value in the index register.
 
-  Examples:
-    MOVD (R3), R4		<=>	ld r4,0(r3)
-    MOVW (R3), R4		<=>	lwa r4,0(r3)
-    MOVWZU 4(R3), R4		<=>	lwzu r4,4(r3)
-    MOVWZ (R3+R5), R4		<=>	lwzx r4,r3,r5
-    MOVHZ  (R3), R4		<=>	lhz r4,0(r3)
-    MOVHU 2(R3), R4		<=>	lhau r4,2(r3)
-    MOVBZ (R3), R4		<=>	lbz r4,0(r3)
+Examples:
 
-    MOVD R4,(R3)		<=>	std r4,0(r3)
-    MOVW R4,(R3)		<=>	stw r4,0(r3)
-    MOVW R4,(R3+R5)		<=>	stwx r4,r3,r5
-    MOVWU R4,4(R3)		<=>	stwu r4,4(r3)
-    MOVH R4,2(R3)		<=>	sth r4,2(r3)
-    MOVBU R4,(R3)(R5)		<=>	stbux r4,r3,r5
+  MOVD (R3), R4		<=>	ld r4,0(r3)
+  MOVW (R3), R4		<=>	lwa r4,0(r3)
+  MOVWZU 4(R3), R4		<=>	lwzu r4,4(r3)
+  MOVWZ (R3+R5), R4		<=>	lwzx r4,r3,r5
+  MOVHZ  (R3), R4		<=>	lhz r4,0(r3)
+  MOVHU 2(R3), R4		<=>	lhau r4,2(r3)
+  MOVBZ (R3), R4		<=>	lbz r4,0(r3)
+
+  MOVD R4,(R3)		<=>	std r4,0(r3)
+  MOVW R4,(R3)		<=>	stw r4,0(r3)
+  MOVW R4,(R3+R5)		<=>	stwx r4,r3,r5
+  MOVWU R4,4(R3)		<=>	stwu r4,4(r3)
+  MOVH R4,2(R3)		<=>	sth r4,2(r3)
+  MOVBU R4,(R3)(R5)		<=>	stbux r4,r3,r5
 
 4. Compares
 
-  When an instruction does a compare or other operation that might
-  result in a condition code, then the resulting condition is set
-  in a field of the condition register. The condition register consists
-  of 8 4-bit fields named CR0 - CR7. When a compare instruction
-  identifies a CR then the resulting condition is set in that field
-  to be read by a later branch or isel instruction. Within these fields,
-  bits are set to indicate less than, greater than, or equal conditions.
+When an instruction does a compare or other operation that might
+result in a condition code, then the resulting condition is set
+in a field of the condition register. The condition register consists
+of 8 4-bit fields named CR0 - CR7. When a compare instruction
+identifies a CR then the resulting condition is set in that field
+to be read by a later branch or isel instruction. Within these fields,
+bits are set to indicate less than, greater than, or equal conditions.
 
-  Once an instruction sets a condition, then a subsequent branch, isel or
-  other instruction can read the condition field and operate based on the
-  bit settings.
+Once an instruction sets a condition, then a subsequent branch, isel or
+other instruction can read the condition field and operate based on the
+bit settings.
 
-  Examples:
-    CMP R3, R4			<=>	cmp r3, r4	(CR0 assumed)
-    CMP R3, R4, CR1		<=>	cmp cr1, r3, r4
+Examples:
 
-  Note that the condition register is the target operand of compare opcodes, so
-  the remaining operands are in the same order for Go asm and PPC64 asm.
-  When CR0 is used then it is implicit and does not need to be specified.
+  CMP R3, R4			<=>	cmp r3, r4	(CR0 assumed)
+  CMP R3, R4, CR1		<=>	cmp cr1, r3, r4
+
+Note that the condition register is the target operand of compare opcodes, so
+the remaining operands are in the same order for Go asm and PPC64 asm.
+When CR0 is used then it is implicit and does not need to be specified.
 
 5. Branches
 
-  Many branches are represented as a form of the BC instruction. There are
-  other extended opcodes to make it easier to see what type of branch is being
-  used.
+Many branches are represented as a form of the BC instruction. There are
+other extended opcodes to make it easier to see what type of branch is being
+used.
 
-  The following is a brief description of the BC instruction and its commonly
-  used operands.
+The following is a brief description of the BC instruction and its commonly
+used operands.
 
-  BC op1, op2, op3
+BC op1, op2, op3
 
-    op1: type of branch
-        16 -> bctr (branch on ctr)
-        12 -> bcr  (branch if cr bit is set)
-        8  -> bcr+bctr (branch on ctr and cr values)
+  op1: type of branch
+      16 -> bctr (branch on ctr)
+      12 -> bcr  (branch if cr bit is set)
+      8  -> bcr+bctr (branch on ctr and cr values)
 	4  -> bcr != 0 (branch if specified cr bit is not set)
 
 	There are more combinations but these are the most common.
 
-    op2: condition register field and condition bit
+  op2: condition register field and condition bit
 
 	This contains an immediate value indicating which condition field
 	to read and what bits to test. Each field is 4 bits long with CR0
-        at bit 0, CR1 at bit 4, etc. The value is computed as 4*CR+condition
-        with these condition values:
+      at bit 0, CR1 at bit 4, etc. The value is computed as 4*CR+condition
+      with these condition values:
 
-        0 -> LT
-        1 -> GT
-        2 -> EQ
-        3 -> OVG
+      0 -> LT
+      1 -> GT
+      2 -> EQ
+      3 -> OVG
 
 	Thus 0 means test CR0 for LT, 5 means CR1 for GT, 30 means CR7 for EQ.
 
-    op3: branch target
+  op3: branch target
 
-  Examples:
+Examples:
 
-    BC 12, 0, target		<=>	blt cr0, target
-    BC 12, 2, target		<=>	beq cr0, target
-    BC 12, 5, target		<=>	bgt cr1, target
-    BC 12, 30, target		<=>	beq cr7, target
-    BC 4, 6, target		<=>	bne cr1, target
-    BC 4, 1, target		<=>	ble cr1, target
+  BC 12, 0, target		<=>	blt cr0, target
+  BC 12, 2, target		<=>	beq cr0, target
+  BC 12, 5, target		<=>	bgt cr1, target
+  BC 12, 30, target		<=>	beq cr7, target
+  BC 4, 6, target		<=>	bne cr1, target
+  BC 4, 1, target		<=>	ble cr1, target
 
-    The following extended opcodes are available for ease of use and readability:
+  The following extended opcodes are available for ease of use and readability:
 
-    BNE CR2, target		<=>	bne cr2, target
-    BEQ CR4, target		<=>	beq cr4, target
-    BLT target			<=>	blt target (cr0 default)
-    BGE CR7, target		<=>	bge cr7, target
+  BNE CR2, target		<=>	bne cr2, target
+  BEQ CR4, target		<=>	beq cr4, target
+  BLT target			<=>	blt target (cr0 default)
+  BGE CR7, target		<=>	bge cr7, target
 
-  Refer to the ISA for more information on additional values for the BC instruction,
-  how to handle OVG information, and much more.
+Refer to the ISA for more information on additional values for the BC instruction,
+how to handle OVG information, and much more.
 
 5. Align directive
 
-  Starting with Go 1.12, Go asm supports the PCALIGN directive, which indicates
-  that the next instruction should be aligned to the specified value. Currently
-  8 and 16 are the only supported values, and a maximum of 2 NOPs will be added
-  to align the code. That means in the case where the code is aligned to 4 but
-  PCALIGN $16 is at that location, the code will only be aligned to 8 to avoid
-  adding 3 NOPs.
+Starting with Go 1.12, Go asm supports the PCALIGN directive, which indicates
+that the next instruction should be aligned to the specified value. Currently
+8 and 16 are the only supported values, and a maximum of 2 NOPs will be added
+to align the code. That means in the case where the code is aligned to 4 but
+PCALIGN $16 is at that location, the code will only be aligned to 8 to avoid
+adding 3 NOPs.
 
-  The purpose of this directive is to improve performance for cases like loops
-  where better alignment (8 or 16 instead of 4) might be helpful. This directive
-  exists in PPC64 assembler and is frequently used by PPC64 assembler writers.
+The purpose of this directive is to improve performance for cases like loops
+where better alignment (8 or 16 instead of 4) might be helpful. This directive
+exists in PPC64 assembler and is frequently used by PPC64 assembler writers.
 
-  PCALIGN $16
-  PCALIGN $8
+PCALIGN $16
+PCALIGN $8
 
-  Functions in Go are aligned to 16 bytes, as is the case in all other compilers
-  for PPC64.
+Functions in Go are aligned to 16 bytes, as is the case in all other compilers
+for PPC64.
 
 6. Shift instructions
 
-  The simple scalar shifts on PPC64 expect a shift count that fits in 5 bits for
-  32-bit values or 6 bit for 64-bit values. If the shift count is a constant value
-  greater than the max then the assembler sets it to the max for that size (31 for
-  32 bit values, 63 for 64 bit values). If the shift count is in a register, then
-  only the low 5 or 6 bits of the register will be used as the shift count. The
-  Go compiler will add appropriate code to compare the shift value to achieve the
-  the correct result, and the assembler does not add extra checking.
+The simple scalar shifts on PPC64 expect a shift count that fits in 5 bits for
+32-bit values or 6 bit for 64-bit values. If the shift count is a constant value
+greater than the max then the assembler sets it to the max for that size (31 for
+32 bit values, 63 for 64 bit values). If the shift count is in a register, then
+only the low 5 or 6 bits of the register will be used as the shift count. The
+Go compiler will add appropriate code to compare the shift value to achieve the
+the correct result, and the assembler does not add extra checking.
 
-  Examples:
+Examples:
 
-    SRAD $8,R3,R4		=>	sradi r4,r3,8
-    SRD $8,R3,R4		=>	rldicl r4,r3,56,8
-    SLD $8,R3,R4		=>	rldicr r4,r3,8,55
-    SRAW $16,R4,R5		=>	srawi r5,r4,16
-    SRW $40,R4,R5		=>	rlwinm r5,r4,0,0,31
-    SLW $12,R4,R5		=>	rlwinm r5,r4,12,0,19
+  SRAD $8,R3,R4		=>	sradi r4,r3,8
+  SRD $8,R3,R4		=>	rldicl r4,r3,56,8
+  SLD $8,R3,R4		=>	rldicr r4,r3,8,55
+  SRAW $16,R4,R5		=>	srawi r5,r4,16
+  SRW $40,R4,R5		=>	rlwinm r5,r4,0,0,31
+  SLW $12,R4,R5		=>	rlwinm r5,r4,12,0,19
 
-  Some non-simple shifts have operands in the Go assembly which don't map directly
-  onto operands in the PPC64 assembly. When an operand in a shift instruction in the
-  Go assembly is a bit mask, that mask is represented as a start and end bit in the
-  PPC64 assembly instead of a mask. See the ISA for more detail on these types of shifts.
-  Here are a few examples:
+Some non-simple shifts have operands in the Go assembly which don't map directly
+onto operands in the PPC64 assembly. When an operand in a shift instruction in the
+Go assembly is a bit mask, that mask is represented as a start and end bit in the
+PPC64 assembly instead of a mask. See the ISA for more detail on these types of shifts.
+Here are a few examples:
 
-    RLWMI $7,R3,$65535,R6 	=>	rlwimi r6,r3,7,16,31
-    RLDMI $0,R4,$7,R6 		=>	rldimi r6,r4,0,61
+  RLWMI $7,R3,$65535,R6 	=>	rlwimi r6,r3,7,16,31
+  RLDMI $0,R4,$7,R6 		=>	rldimi r6,r4,0,61
 
-  More recently, Go opcodes were added which map directly onto the PPC64 opcodes. It is
-  recommended to use the newer opcodes to avoid confusion.
+More recently, Go opcodes were added which map directly onto the PPC64 opcodes. It is
+recommended to use the newer opcodes to avoid confusion.
 
-    RLDICL $0,R4,$15,R6		=>	rldicl r6,r4,0,15
-    RLDICR $0,R4,$15,R6		=>	rldicr r6.r4,0,15
+  RLDICL $0,R4,$15,R6		=>	rldicl r6,r4,0,15
+  RLDICR $0,R4,$15,R6		=>	rldicr r6.r4,0,15
 
 Register naming
 
 1. Special register usage in Go asm
 
-  The following registers should not be modified by user Go assembler code.
+The following registers should not be modified by user Go assembler code.
 
   R0: Go code expects this register to contain the value 0.
   R1: Stack pointer
@@ -231,7 +236,7 @@ Register naming
   R13: TLS pointer
   R30: g (goroutine)
 
-  Register names:
+Register names:
 
   Rn is used for general purpose registers. (0-31)
   Fn is used for floating point registers. (0-31)
diff --git a/src/cmd/internal/obj/riscv/cpu.go b/src/cmd/internal/obj/riscv/cpu.go
index 8c2daf6e5b..594f8ea3fc 100644
--- a/src/cmd/internal/obj/riscv/cpu.go
+++ b/src/cmd/internal/obj/riscv/cpu.go
@@ -276,15 +276,11 @@ const (
 )
 
 // RISC-V mnemonics, as defined in the "opcodes" and "opcodes-pseudo" files
-// from:
-//
-//    https://github.com/riscv/riscv-opcodes
+// at https://github.com/riscv/riscv-opcodes.
 //
 // As well as some pseudo-mnemonics (e.g. MOV) used only in the assembler.
 //
-// See also "The RISC-V Instruction Set Manual" at:
-//
-//    https://riscv.org/specifications/
+// See also "The RISC-V Instruction Set Manual" at https://riscv.org/specifications/.
 //
 // If you modify this table, you MUST run 'go generate' to regenerate anames.go!
 const (
diff --git a/src/cmd/internal/obj/riscv/obj.go b/src/cmd/internal/obj/riscv/obj.go
index 61044b0531..2c00c87aa2 100644
--- a/src/cmd/internal/obj/riscv/obj.go
+++ b/src/cmd/internal/obj/riscv/obj.go
@@ -323,9 +323,7 @@ func setPCs(p *obj.Prog, pc int64) int64 {
 // FixedFrameSize makes other packages aware of the space allocated for RA.
 //
 // A nicer version of this diagram can be found on slide 21 of the presentation
-// attached to:
-//
-//   https://golang.org/issue/16922#issuecomment-243748180
+// attached to https://golang.org/issue/16922#issuecomment-243748180.
 //
 func stackOffset(a *obj.Addr, stacksize int64) {
 	switch a.Name {
diff --git a/src/cmd/link/internal/benchmark/bench.go b/src/cmd/link/internal/benchmark/bench.go
index 6c163c801e..39179515cd 100644
--- a/src/cmd/link/internal/benchmark/bench.go
+++ b/src/cmd/link/internal/benchmark/bench.go
@@ -44,16 +44,16 @@ type mark struct {
 //
 // Typical usage should look like:
 //
-// func main() {
-//   filename := "" // Set to enable per-phase pprof file output.
-//   bench := benchmark.New(benchmark.GC, filename)
-//   defer bench.Report(os.Stdout)
-//   // etc
-//   bench.Start("foo")
-//   foo()
-//   bench.Start("bar")
-//   bar()
-// }
+//  func main() {
+//    filename := "" // Set to enable per-phase pprof file output.
+//    bench := benchmark.New(benchmark.GC, filename)
+//    defer bench.Report(os.Stdout)
+//    // etc
+//    bench.Start("foo")
+//    foo()
+//    bench.Start("bar")
+//    bar()
+//  }
 //
 // Note that a nil Metrics object won't cause any errors, so one could write
 // code like:
diff --git a/src/cmd/link/internal/ld/elf.go b/src/cmd/link/internal/ld/elf.go
index 08de21cab6..733f4ec00b 100644
--- a/src/cmd/link/internal/ld/elf.go
+++ b/src/cmd/link/internal/ld/elf.go
@@ -549,30 +549,31 @@ func elfMipsAbiFlags(sh *ElfShdr, startva uint64, resoff uint64) int {
 	return n
 }
 
-//typedef struct
-//{
-//  /* Version of flags structure.  */
-//  uint16_t version;
-//  /* The level of the ISA: 1-5, 32, 64.  */
-//  uint8_t isa_level;
-//  /* The revision of ISA: 0 for MIPS V and below, 1-n otherwise.  */
-//  uint8_t isa_rev;
-//  /* The size of general purpose registers.  */
-//  uint8_t gpr_size;
-//  /* The size of co-processor 1 registers.  */
-//  uint8_t cpr1_size;
-//  /* The size of co-processor 2 registers.  */
-//  uint8_t cpr2_size;
-//  /* The floating-point ABI.  */
-//  uint8_t fp_abi;
-//  /* Processor-specific extension.  */
-//  uint32_t isa_ext;
-//  /* Mask of ASEs used.  */
-//  uint32_t ases;
-//  /* Mask of general flags.  */
-//  uint32_t flags1;
-//  uint32_t flags2;
-//} Elf_Internal_ABIFlags_v0;
+// Layout is given by this C definition:
+//  typedef struct
+//  {
+//    /* Version of flags structure.  */
+//    uint16_t version;
+//    /* The level of the ISA: 1-5, 32, 64.  */
+//    uint8_t isa_level;
+//    /* The revision of ISA: 0 for MIPS V and below, 1-n otherwise.  */
+//    uint8_t isa_rev;
+//    /* The size of general purpose registers.  */
+//    uint8_t gpr_size;
+//    /* The size of co-processor 1 registers.  */
+//    uint8_t cpr1_size;
+//    /* The size of co-processor 2 registers.  */
+//    uint8_t cpr2_size;
+//    /* The floating-point ABI.  */
+//    uint8_t fp_abi;
+//    /* Processor-specific extension.  */
+//    uint32_t isa_ext;
+//    /* Mask of ASEs used.  */
+//    uint32_t ases;
+//    /* Mask of general flags.  */
+//    uint32_t flags1;
+//    uint32_t flags2;
+//  } Elf_Internal_ABIFlags_v0;
 func elfWriteMipsAbiFlags(ctxt *Link) int {
 	sh := elfshname(".MIPS.abiflags")
 	ctxt.Out.SeekSet(int64(sh.Off))
diff --git a/src/cmd/link/internal/ld/outbuf.go b/src/cmd/link/internal/ld/outbuf.go
index 1d21dce9c5..1d1751ccdc 100644
--- a/src/cmd/link/internal/ld/outbuf.go
+++ b/src/cmd/link/internal/ld/outbuf.go
@@ -30,12 +30,12 @@ const outbufMode = 0775
 // any system calls to read the value.
 //
 // Third, it also mmaps the output file (if available). The intended usage is:
-// - Mmap the output file
-// - Write the content
-// - possibly apply any edits in the output buffer
-// - possibly write more content to the file. These writes take place in a heap
-//   backed buffer that will get synced to disk.
-// - Munmap the output file
+//  - Mmap the output file
+//  - Write the content
+//  - possibly apply any edits in the output buffer
+//  - possibly write more content to the file. These writes take place in a heap
+//    backed buffer that will get synced to disk.
+//  - Munmap the output file
 //
 // And finally, it provides a mechanism by which you can multithread the
 // writing of output files. This mechanism is accomplished by copying a OutBuf,
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index d46aa41181..d102bb35ce 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -166,21 +166,21 @@ type symAndSize struct {
 //
 // Notes on the layout of global symbol index space:
 //
-// - Go object files are read before host object files; each Go object
-//   read adds its defined package symbols to the global index space.
-//   Nonpackage symbols are not yet added.
+//  - Go object files are read before host object files; each Go object
+//    read adds its defined package symbols to the global index space.
+//    Nonpackage symbols are not yet added.
 //
-// - In loader.LoadNonpkgSyms, add non-package defined symbols and
-//   references in all object files to the global index space.
+//  - In loader.LoadNonpkgSyms, add non-package defined symbols and
+//    references in all object files to the global index space.
 //
-// - Host object file loading happens; the host object loader does a
-//   name/version lookup for each symbol it finds; this can wind up
-//   extending the external symbol index space range. The host object
-//   loader stores symbol payloads in loader.payloads using SymbolBuilder.
+//  - Host object file loading happens; the host object loader does a
+//    name/version lookup for each symbol it finds; this can wind up
+//    extending the external symbol index space range. The host object
+//    loader stores symbol payloads in loader.payloads using SymbolBuilder.
 //
-// - Each symbol gets a unique global index. For duplicated and
-//   overwriting/overwritten symbols, the second (or later) appearance
-//   of the symbol gets the same global index as the first appearance.
+//  - Each symbol gets a unique global index. For duplicated and
+//    overwriting/overwritten symbols, the second (or later) appearance
+//    of the symbol gets the same global index as the first appearance.
 type Loader struct {
 	start       map[*oReader]Sym // map from object file to its start index
 	objs        []objIdx         // sorted by start index (i.e. objIdx.i)
diff --git a/src/cmd/link/internal/s390x/asm.go b/src/cmd/link/internal/s390x/asm.go
index 1952971dcb..f26b3f3cf2 100644
--- a/src/cmd/link/internal/s390x/asm.go
+++ b/src/cmd/link/internal/s390x/asm.go
@@ -43,10 +43,10 @@ import (
 // moduledata linked list at initialization time. This is only done if the runtime
 // is in a different module.
 //
-// :
-// 	larl  %r2, 
-// 	jg    
-//	undef
+//	:
+//		larl  %r2, 
+//		jg    
+//		undef
 //
 // The job of appending the moduledata is delegated to runtime.addmoduledata.
 func gentext(ctxt *ld.Link, ldr *loader.Loader) {
diff --git a/src/compress/flate/huffman_code.go b/src/compress/flate/huffman_code.go
index 891537ed5e..07b7827e1a 100644
--- a/src/compress/flate/huffman_code.go
+++ b/src/compress/flate/huffman_code.go
@@ -118,19 +118,20 @@ func (h *huffmanEncoder) bitLength(freq []int32) int {
 
 const maxBitsLimit = 16
 
-// Return the number of literals assigned to each bit size in the Huffman encoding
-//
-// This method is only called when list.length >= 3
+// bitCounts computes the number of literals assigned to each bit size in the Huffman encoding.
+// It is only called when list.length >= 3.
 // The cases of 0, 1, and 2 literals are handled by special case code.
 //
-// list  An array of the literals with non-zero frequencies
-//             and their associated frequencies. The array is in order of increasing
-//             frequency, and has as its last element a special element with frequency
-//             MaxInt32
-// maxBits     The maximum number of bits that should be used to encode any literal.
-//             Must be less than 16.
-// return      An integer array in which array[i] indicates the number of literals
-//             that should be encoded in i bits.
+// list is an array of the literals with non-zero frequencies
+// and their associated frequencies. The array is in order of increasing
+// frequency and has as its last element a special element with frequency
+// MaxInt32.
+//
+// maxBits is the maximum number of bits that should be used to encode any literal.
+// It must be less than 16.
+//
+// bitCounts retruns an integer slice in which slice[i] indicates the number of literals
+// that should be encoded in i bits.
 func (h *huffmanEncoder) bitCounts(list []literalNode, maxBits int32) []int32 {
 	if maxBits >= maxBitsLimit {
 		panic("flate: maxBits too large")
@@ -269,7 +270,7 @@ func (h *huffmanEncoder) assignEncodingAndSize(bitCount []int32, list []literalN
 
 // Update this Huffman Code object to be the minimum code for the specified frequency count.
 //
-// freq  An array of frequencies, in which frequency[i] gives the frequency of literal i.
+// freq is an array of frequencies, in which freq[i] gives the frequency of literal i.
 // maxBits  The maximum number of bits to use for any literal.
 func (h *huffmanEncoder) generate(freq []int32, maxBits int32) {
 	if h.freqcache == nil {
diff --git a/src/crypto/cipher/gcm.go b/src/crypto/cipher/gcm.go
index ba0af84a9d..47078ce594 100644
--- a/src/crypto/cipher/gcm.go
+++ b/src/crypto/cipher/gcm.go
@@ -13,7 +13,7 @@ import (
 
 // AEAD is a cipher mode providing authenticated encryption with associated
 // data. For a description of the methodology, see
-//	https://en.wikipedia.org/wiki/Authenticated_encryption
+// https://en.wikipedia.org/wiki/Authenticated_encryption.
 type AEAD interface {
 	// NonceSize returns the size of the nonce that must be passed to Seal
 	// and Open.
diff --git a/src/crypto/elliptic/p256.go b/src/crypto/elliptic/p256.go
index 99c39ea9d5..fcff1d3d39 100644
--- a/src/crypto/elliptic/p256.go
+++ b/src/crypto/elliptic/p256.go
@@ -282,7 +282,8 @@ var p256Zero31 = [p256Limbs]uint32{two31m3, two30m2, two31m2, two30p13m2, two31m
 // p256Diff sets out = in-in2.
 //
 // On entry: in[0,2,...] < 2**30, in[1,3,...] < 2**29 and
-//           in2[0,2,...] < 2**30, in2[1,3,...] < 2**29.
+// in2[0,2,...] < 2**30, in2[1,3,...] < 2**29.
+//
 // On exit: out[0,2,...] < 2**30, out[1,3,...] < 2**29.
 func p256Diff(out, in, in2 *[p256Limbs]uint32) {
 	var carry uint32
diff --git a/src/crypto/x509/x509.go b/src/crypto/x509/x509.go
index 837c42a3db..584456c343 100644
--- a/src/crypto/x509/x509.go
+++ b/src/crypto/x509/x509.go
@@ -244,59 +244,56 @@ func (algo PublicKeyAlgorithm) String() string {
 
 // OIDs for signature algorithms
 //
-// pkcs-1 OBJECT IDENTIFIER ::= {
-//    iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
+//	pkcs-1 OBJECT IDENTIFIER ::= {
+//		iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 }
 //
 //
 // RFC 3279 2.2.1 RSA Signature Algorithms
 //
-// md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
+//	md2WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 2 }
 //
-// md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
+//	md5WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 4 }
 //
-// sha-1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
+//	sha-1WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 5 }
 //
-// dsaWithSha1 OBJECT IDENTIFIER ::= {
-//    iso(1) member-body(2) us(840) x9-57(10040) x9cm(4) 3 }
+//	dsaWithSha1 OBJECT IDENTIFIER ::= {
+//		iso(1) member-body(2) us(840) x9-57(10040) x9cm(4) 3 }
 //
 // RFC 3279 2.2.3 ECDSA Signature Algorithm
 //
-// ecdsa-with-SHA1 OBJECT IDENTIFIER ::= {
-// 	  iso(1) member-body(2) us(840) ansi-x962(10045)
-//    signatures(4) ecdsa-with-SHA1(1)}
-//
+//	ecdsa-with-SHA1 OBJECT IDENTIFIER ::= {
+//		iso(1) member-body(2) us(840) ansi-x962(10045)
+//		signatures(4) ecdsa-with-SHA1(1)}
 //
 // RFC 4055 5 PKCS #1 Version 1.5
 //
-// sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 }
+//	sha256WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 11 }
 //
-// sha384WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 12 }
+//	sha384WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 12 }
 //
-// sha512WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 13 }
+//	sha512WithRSAEncryption OBJECT IDENTIFIER ::= { pkcs-1 13 }
 //
 //
 // RFC 5758 3.1 DSA Signature Algorithms
 //
-// dsaWithSha256 OBJECT IDENTIFIER ::= {
-//    joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101)
-//    csor(3) algorithms(4) id-dsa-with-sha2(3) 2}
+//	dsaWithSha256 OBJECT IDENTIFIER ::= {
+//		joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101)
+//		csor(3) algorithms(4) id-dsa-with-sha2(3) 2}
 //
 // RFC 5758 3.2 ECDSA Signature Algorithm
 //
-// ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
-//    us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2 }
+//	ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+//		us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2 }
 //
-// ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
-//    us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 3 }
-//
-// ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
-//    us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4 }
+//	ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+//		us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 3 }
 //
+//	ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+//		us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4 }
 //
 // RFC 8410 3 Curve25519 and Curve448 Algorithm Identifiers
 //
-// id-Ed25519   OBJECT IDENTIFIER ::= { 1 3 101 112 }
-
+//	id-Ed25519   OBJECT IDENTIFIER ::= { 1 3 101 112 }
 var (
 	oidSignatureMD2WithRSA      = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 2}
 	oidSignatureMD5WithRSA      = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 4}
@@ -434,18 +431,18 @@ func getSignatureAlgorithmFromAI(ai pkix.AlgorithmIdentifier) SignatureAlgorithm
 
 // RFC 3279, 2.3 Public Key Algorithms
 //
-// pkcs-1 OBJECT IDENTIFIER ::== { iso(1) member-body(2) us(840)
-//    rsadsi(113549) pkcs(1) 1 }
+//	pkcs-1 OBJECT IDENTIFIER ::== { iso(1) member-body(2) us(840)
+//		rsadsi(113549) pkcs(1) 1 }
 //
 // rsaEncryption OBJECT IDENTIFIER ::== { pkcs1-1 1 }
 //
-// id-dsa OBJECT IDENTIFIER ::== { iso(1) member-body(2) us(840)
-//    x9-57(10040) x9cm(4) 1 }
+//	id-dsa OBJECT IDENTIFIER ::== { iso(1) member-body(2) us(840)
+//		x9-57(10040) x9cm(4) 1 }
 //
 // RFC 5480, 2.1.1 Unrestricted Algorithm Identifier and Parameters
 //
-// id-ecPublicKey OBJECT IDENTIFIER ::= {
-//       iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 }
+//	id-ecPublicKey OBJECT IDENTIFIER ::= {
+//		iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 }
 var (
 	oidPublicKeyRSA     = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 1, 1}
 	oidPublicKeyDSA     = asn1.ObjectIdentifier{1, 2, 840, 10040, 4, 1}
@@ -469,18 +466,18 @@ func getPublicKeyAlgorithmFromOID(oid asn1.ObjectIdentifier) PublicKeyAlgorithm
 
 // RFC 5480, 2.1.1.1. Named Curve
 //
-// secp224r1 OBJECT IDENTIFIER ::= {
-//   iso(1) identified-organization(3) certicom(132) curve(0) 33 }
+//  secp224r1 OBJECT IDENTIFIER ::= {
+//    iso(1) identified-organization(3) certicom(132) curve(0) 33 }
 //
-// secp256r1 OBJECT IDENTIFIER ::= {
-//   iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
-//   prime(1) 7 }
+//  secp256r1 OBJECT IDENTIFIER ::= {
+//    iso(1) member-body(2) us(840) ansi-X9-62(10045) curves(3)
+//    prime(1) 7 }
 //
-// secp384r1 OBJECT IDENTIFIER ::= {
-//   iso(1) identified-organization(3) certicom(132) curve(0) 34 }
+//  secp384r1 OBJECT IDENTIFIER ::= {
+//    iso(1) identified-organization(3) certicom(132) curve(0) 34 }
 //
-// secp521r1 OBJECT IDENTIFIER ::= {
-//   iso(1) identified-organization(3) certicom(132) curve(0) 35 }
+//  secp521r1 OBJECT IDENTIFIER ::= {
+//    iso(1) identified-organization(3) certicom(132) curve(0) 35 }
 //
 // NB: secp256r1 is equivalent to prime256v1
 var (
@@ -537,16 +534,16 @@ const (
 
 // RFC 5280, 4.2.1.12  Extended Key Usage
 //
-// anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
+//	anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }
 //
-// id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
+//	id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
 //
-// id-kp-serverAuth             OBJECT IDENTIFIER ::= { id-kp 1 }
-// id-kp-clientAuth             OBJECT IDENTIFIER ::= { id-kp 2 }
-// id-kp-codeSigning            OBJECT IDENTIFIER ::= { id-kp 3 }
-// id-kp-emailProtection        OBJECT IDENTIFIER ::= { id-kp 4 }
-// id-kp-timeStamping           OBJECT IDENTIFIER ::= { id-kp 8 }
-// id-kp-OCSPSigning            OBJECT IDENTIFIER ::= { id-kp 9 }
+//	id-kp-serverAuth             OBJECT IDENTIFIER ::= { id-kp 1 }
+//	id-kp-clientAuth             OBJECT IDENTIFIER ::= { id-kp 2 }
+//	id-kp-codeSigning            OBJECT IDENTIFIER ::= { id-kp 3 }
+//	id-kp-emailProtection        OBJECT IDENTIFIER ::= { id-kp 4 }
+//	id-kp-timeStamping           OBJECT IDENTIFIER ::= { id-kp 8 }
+//	id-kp-OCSPSigning            OBJECT IDENTIFIER ::= { id-kp 9 }
 var (
 	oidExtKeyUsageAny                            = asn1.ObjectIdentifier{2, 5, 29, 37, 0}
 	oidExtKeyUsageServerAuth                     = asn1.ObjectIdentifier{1, 3, 6, 1, 5, 5, 7, 3, 1}
diff --git a/src/database/sql/fakedb_test.go b/src/database/sql/fakedb_test.go
index d1edcb8c48..c3b9d1ce46 100644
--- a/src/database/sql/fakedb_test.go
+++ b/src/database/sql/fakedb_test.go
@@ -510,7 +510,7 @@ func errf(msg string, args ...any) error {
 
 // parts are table|selectCol1,selectCol2|whereCol=?,whereCol2=?
 // (note that where columns must always contain ? marks,
-//  just a limitation for fakedb)
+// just a limitation for fakedb)
 func (c *fakeConn) prepareSelect(stmt *fakeStmt, parts []string) (*fakeStmt, error) {
 	if len(parts) != 3 {
 		stmt.Close()
diff --git a/src/debug/gosym/pclntab_test.go b/src/debug/gosym/pclntab_test.go
index d690a1e3f2..04b5fcc283 100644
--- a/src/debug/gosym/pclntab_test.go
+++ b/src/debug/gosym/pclntab_test.go
@@ -271,13 +271,12 @@ func TestPCLine(t *testing.T) {
 // read115Executable returns a hello world executable compiled by Go 1.15.
 //
 // The file was compiled in /tmp/hello.go:
-// [BEGIN]
-// package main
 //
-// func main() {
-//    println("hello")
-// }
-// [END]
+//	package main
+//
+//	func main() {
+//		println("hello")
+//	}
 func read115Executable(tb testing.TB) []byte {
 	zippedDat, err := os.ReadFile("testdata/pcln115.gz")
 	if err != nil {
diff --git a/src/fmt/doc.go b/src/fmt/doc.go
index 6b49deda87..4151b39ea6 100644
--- a/src/fmt/doc.go
+++ b/src/fmt/doc.go
@@ -115,10 +115,11 @@ with %q, invalid Unicode code points are changed to the Unicode replacement
 character, U+FFFD, as in strconv.QuoteRune.
 
 Other flags:
-	+	always print a sign for numeric values;
+
+	'+'	always print a sign for numeric values;
 		guarantee ASCII-only output for %q (%+q)
-	-	pad with spaces on the right rather than the left (left-justify the field)
-	#	alternate format: add leading 0b for binary (%#b), 0 for octal (%#o),
+	'-'	pad with spaces on the right rather than the left (left-justify the field)
+	'#'	alternate format: add leading 0b for binary (%#b), 0 for octal (%#o),
 		0x or 0X for hex (%#x or %#X); suppress 0x for %p (%#p);
 		for %q, print a raw (backquoted) string if strconv.CanBackquote
 		returns true;
@@ -127,7 +128,7 @@ Other flags:
 		write e.g. U+0078 'x' if the character is printable for %U (%#U).
 	' '	(space) leave a space for elided sign in numbers (% d);
 		put spaces between bytes printing strings or slices in hex (% x, % X)
-	0	pad with leading zeros rather than spaces;
+	'0'	pad with leading zeros rather than spaces;
 		for numbers, this moves the padding after the sign;
 		ignored for strings, byte slices and byte arrays
 
diff --git a/src/go/doc/comment.go b/src/go/doc/comment.go
index a93c05fbb7..f1aa69d974 100644
--- a/src/go/doc/comment.go
+++ b/src/go/doc/comment.go
@@ -28,8 +28,11 @@ var (
 	unicodeQuoteReplacer = strings.NewReplacer("``", ulquo, "''", urquo)
 )
 
-// Escape comment text for HTML. If nice is set,
-// also turn `` into “ and '' into ”.
+// Escape comment text for HTML. If nice is set, also replace:
+//
+//	`` -> “
+//	'' -> ”
+//
 func commentEscape(w io.Writer, text string, nice bool) {
 	if nice {
 		// In the first pass, we convert `` and '' into their unicode equivalents.
@@ -93,8 +96,10 @@ var (
 // into a link). Go identifiers that appear in the words map are italicized; if
 // the corresponding map value is not the empty string, it is considered a URL
 // and the word is converted into a link. If nice is set, the remaining text's
-// appearance is improved where it makes sense (e.g., `` is turned into “
-// and '' into ”).
+// appearance is improved where it makes sense, such as replacing:
+//
+//	`` -> “
+//	'' -> ”
 func emphasize(w io.Writer, line string, words map[string]string, nice bool) {
 	for {
 		m := matchRx.FindStringSubmatchIndex(line)
diff --git a/src/go/types/object.go b/src/go/types/object.go
index fb377002aa..8975fc93dc 100644
--- a/src/go/types/object.go
+++ b/src/go/types/object.go
@@ -297,7 +297,7 @@ func NewParam(pos token.Pos, pkg *Package, name string, typ Type) *Var {
 
 // NewField returns a new variable representing a struct field.
 // For embedded fields, the name is the unqualified type name
-/// under which the field is accessible.
+// under which the field is accessible.
 func NewField(pos token.Pos, pkg *Package, name string, typ Type, embedded bool) *Var {
 	return &Var{object: object{nil, pos, pkg, name, typ, 0, colorFor(typ), token.NoPos}, embedded: embedded, isField: true}
 }
diff --git a/src/math/big/nat.go b/src/math/big/nat.go
index 512b2c229f..31e1ad8fcf 100644
--- a/src/math/big/nat.go
+++ b/src/math/big/nat.go
@@ -363,10 +363,11 @@ func karatsuba(z, x, y nat) {
 }
 
 // alias reports whether x and y share the same base array.
+//
 // Note: alias assumes that the capacity of underlying arrays
-//       is never changed for nat values; i.e. that there are
-//       no 3-operand slice expressions in this code (or worse,
-//       reflect-based operations to the same effect).
+// is never changed for nat values; i.e. that there are
+// no 3-operand slice expressions in this code (or worse,
+// reflect-based operations to the same effect).
 func alias(x, y nat) bool {
 	return cap(x) > 0 && cap(y) > 0 && &x[0:cap(x)][cap(x)-1] == &y[0:cap(y)][cap(y)-1]
 }
diff --git a/src/net/cgo_unix.go b/src/net/cgo_unix.go
index 18e1ba1ce9..b156b198ee 100644
--- a/src/net/cgo_unix.go
+++ b/src/net/cgo_unix.go
@@ -250,12 +250,12 @@ func cgoLookupCNAME(ctx context.Context, name string) (cname string, err error,
 
 // These are roughly enough for the following:
 //
-// Source		Encoding			Maximum length of single name entry
-// Unicast DNS		ASCII or			<=253 + a NUL terminator
-//			Unicode in RFC 5892		252 * total number of labels + delimiters + a NUL terminator
-// Multicast DNS	UTF-8 in RFC 5198 or		<=253 + a NUL terminator
-//			the same as unicast DNS ASCII	<=253 + a NUL terminator
-// Local database	various				depends on implementation
+//  Source		Encoding			Maximum length of single name entry
+//  Unicast DNS		ASCII or			<=253 + a NUL terminator
+// 			Unicode in RFC 5892		252 * total number of labels + delimiters + a NUL terminator
+//  Multicast DNS	UTF-8 in RFC 5198 or		<=253 + a NUL terminator
+// 			the same as unicast DNS ASCII	<=253 + a NUL terminator
+//  Local database	various				depends on implementation
 const (
 	nameinfoLen    = 64
 	maxNameinfoLen = 4096
diff --git a/src/net/http/client.go b/src/net/http/client.go
index 5fd184bcb1..465ee0b723 100644
--- a/src/net/http/client.go
+++ b/src/net/http/client.go
@@ -942,9 +942,9 @@ func (c *Client) CloseIdleConnections() {
 }
 
 // cancelTimerBody is an io.ReadCloser that wraps rc with two features:
-// 1) On Read error or close, the stop func is called.
-// 2) On Read failure, if reqDidTimeout is true, the error is wrapped and
-//    marked as net.Error that hit its timeout.
+//  1) On Read error or close, the stop func is called.
+//  2) On Read failure, if reqDidTimeout is true, the error is wrapped and
+//     marked as net.Error that hit its timeout.
 type cancelTimerBody struct {
 	stop          func() // stops the time.Timer waiting to cancel the request
 	rc            io.ReadCloser
diff --git a/src/net/http/cookie.go b/src/net/http/cookie.go
index cb37f2351f..6e1035330b 100644
--- a/src/net/http/cookie.go
+++ b/src/net/http/cookie.go
@@ -387,11 +387,11 @@ func sanitizeCookieName(n string) string {
 
 // sanitizeCookieValue produces a suitable cookie-value from v.
 // https://tools.ietf.org/html/rfc6265#section-4.1.1
-// cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
-// cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
-//           ; US-ASCII characters excluding CTLs,
-//           ; whitespace DQUOTE, comma, semicolon,
-//           ; and backslash
+//  cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
+//  cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
+//            ; US-ASCII characters excluding CTLs,
+//            ; whitespace DQUOTE, comma, semicolon,
+//            ; and backslash
 // We loosen this as spaces and commas are common in cookie values
 // but we produce a quoted cookie-value if and only if v contains
 // commas or spaces.
diff --git a/src/net/http/server.go b/src/net/http/server.go
index ffb742ba4a..b91069f9a1 100644
--- a/src/net/http/server.go
+++ b/src/net/http/server.go
@@ -1551,14 +1551,14 @@ func (w *response) bodyAllowed() bool {
 //
 // The Writers are wired together like:
 //
-// 1. *response (the ResponseWriter) ->
-// 2. (*response).w, a *bufio.Writer of bufferBeforeChunkingSize bytes ->
-// 3. chunkWriter.Writer (whose writeHeader finalizes Content-Length/Type)
-//    and which writes the chunk headers, if needed ->
-// 4. conn.bufw, a *bufio.Writer of default (4kB) bytes, writing to ->
-// 5. checkConnErrorWriter{c}, which notes any non-nil error on Write
-//    and populates c.werr with it if so, but otherwise writes to ->
-// 6. the rwc, the net.Conn.
+//  1. *response (the ResponseWriter) ->
+//  2. (*response).w, a *bufio.Writer of bufferBeforeChunkingSize bytes ->
+//  3. chunkWriter.Writer (whose writeHeader finalizes Content-Length/Type)
+//     and which writes the chunk headers, if needed ->
+//  4. conn.bufw, a *bufio.Writer of default (4kB) bytes, writing to ->
+//  5. checkConnErrorWriter{c}, which notes any non-nil error on Write
+//     and populates c.werr with it if so, but otherwise writes to ->
+//  6. the rwc, the net.Conn.
 //
 // TODO(bradfitz): short-circuit some of the buffering when the
 // initial header contains both a Content-Type and Content-Length.
diff --git a/src/net/smtp/smtp_test.go b/src/net/smtp/smtp_test.go
index 0f758f4a33..f23fd79234 100644
--- a/src/net/smtp/smtp_test.go
+++ b/src/net/smtp/smtp_test.go
@@ -1104,8 +1104,9 @@ func sendMail(hostPort string) error {
 }
 
 // localhostCert is a PEM-encoded TLS cert generated from src/crypto/tls:
-// go run generate_cert.go --rsa-bits 1024 --host 127.0.0.1,::1,example.com \
-// 		--ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h
+//
+//	go run generate_cert.go --rsa-bits 1024 --host 127.0.0.1,::1,example.com \
+//		--ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h
 var localhostCert = []byte(`
 -----BEGIN CERTIFICATE-----
 MIICFDCCAX2gAwIBAgIRAK0xjnaPuNDSreeXb+z+0u4wDQYJKoZIhvcNAQELBQAw
diff --git a/src/os/file_windows.go b/src/os/file_windows.go
index 378e2b1c7d..75b4707eaf 100644
--- a/src/os/file_windows.go
+++ b/src/os/file_windows.go
@@ -401,7 +401,7 @@ func openSymlink(path string) (syscall.Handle, error) {
 // normaliseLinkPath converts absolute paths returned by
 // DeviceIoControl(h, FSCTL_GET_REPARSE_POINT, ...)
 // into paths acceptable by all Windows APIs.
-// For example, it coverts
+// For example, it converts
 //  \??\C:\foo\bar into C:\foo\bar
 //  \??\UNC\foo\bar into \\foo\bar
 //  \??\Volume{abc}\ into C:\
diff --git a/src/runtime/chan.go b/src/runtime/chan.go
index 3cdb5dce11..16fec26aeb 100644
--- a/src/runtime/chan.go
+++ b/src/runtime/chan.go
@@ -594,10 +594,10 @@ func chanrecv(c *hchan, ep unsafe.Pointer, block bool) (selected, received bool)
 
 // recv processes a receive operation on a full channel c.
 // There are 2 parts:
-// 1) The value sent by the sender sg is put into the channel
-//    and the sender is woken up to go on its merry way.
-// 2) The value received by the receiver (the current G) is
-//    written to ep.
+//  1) The value sent by the sender sg is put into the channel
+//     and the sender is woken up to go on its merry way.
+//  2) The value received by the receiver (the current G) is
+//     written to ep.
 // For synchronous channels, both values are the same.
 // For asynchronous channels, the receiver gets its data from
 // the channel buffer and the sender's data is put in the
diff --git a/src/runtime/mheap.go b/src/runtime/mheap.go
index ecbd0a3a49..d2a63d0938 100644
--- a/src/runtime/mheap.go
+++ b/src/runtime/mheap.go
@@ -319,16 +319,16 @@ type arenaHint struct {
 // mSpanManual, or mSpanFree. Transitions between these states are
 // constrained as follows:
 //
-// * A span may transition from free to in-use or manual during any GC
-//   phase.
+//  * A span may transition from free to in-use or manual during any GC
+//    phase.
 //
-// * During sweeping (gcphase == _GCoff), a span may transition from
-//   in-use to free (as a result of sweeping) or manual to free (as a
-//   result of stacks being freed).
+//  * During sweeping (gcphase == _GCoff), a span may transition from
+//    in-use to free (as a result of sweeping) or manual to free (as a
+//    result of stacks being freed).
 //
-// * During GC (gcphase != _GCoff), a span *must not* transition from
-//   manual or in-use to free. Because concurrent GC may read a pointer
-//   and then look up its span, the span state must be monotonic.
+//  * During GC (gcphase != _GCoff), a span *must not* transition from
+//    manual or in-use to free. Because concurrent GC may read a pointer
+//    and then look up its span, the span state must be monotonic.
 //
 // Setting mspan.state to mSpanInUse or mSpanManual must be done
 // atomically and only after all other span fields are valid.
@@ -1706,7 +1706,7 @@ func spanHasNoSpecials(s *mspan) {
 // offset & next, which this routine will fill in.
 // Returns true if the special was successfully added, false otherwise.
 // (The add will fail only if a record with the same p and s->kind
-//  already exists.)
+// already exists.)
 func addspecial(p unsafe.Pointer, s *special) bool {
 	span := spanOfHeap(uintptr(p))
 	if span == nil {
diff --git a/src/runtime/netpoll.go b/src/runtime/netpoll.go
index c6acc2328a..864148b715 100644
--- a/src/runtime/netpoll.go
+++ b/src/runtime/netpoll.go
@@ -47,16 +47,16 @@ const (
 
 // pollDesc contains 2 binary semaphores, rg and wg, to park reader and writer
 // goroutines respectively. The semaphore can be in the following states:
-// pdReady - io readiness notification is pending;
-//           a goroutine consumes the notification by changing the state to nil.
-// pdWait - a goroutine prepares to park on the semaphore, but not yet parked;
-//          the goroutine commits to park by changing the state to G pointer,
-//          or, alternatively, concurrent io notification changes the state to pdReady,
-//          or, alternatively, concurrent timeout/close changes the state to nil.
-// G pointer - the goroutine is blocked on the semaphore;
-//             io notification or timeout/close changes the state to pdReady or nil respectively
-//             and unparks the goroutine.
-// nil - none of the above.
+//  pdReady - io readiness notification is pending;
+//            a goroutine consumes the notification by changing the state to nil.
+//  pdWait - a goroutine prepares to park on the semaphore, but not yet parked;
+//           the goroutine commits to park by changing the state to G pointer,
+//           or, alternatively, concurrent io notification changes the state to pdReady,
+//           or, alternatively, concurrent timeout/close changes the state to nil.
+//  G pointer - the goroutine is blocked on the semaphore;
+//              io notification or timeout/close changes the state to pdReady or nil respectively
+//              and unparks the goroutine.
+//  nil - none of the above.
 const (
 	pdReady uintptr = 1
 	pdWait  uintptr = 2
diff --git a/src/runtime/proc.go b/src/runtime/proc.go
index df16e0f9b6..f9f82f3867 100644
--- a/src/runtime/proc.go
+++ b/src/runtime/proc.go
@@ -5575,11 +5575,11 @@ func (p pMask) clear(id int32) {
 //
 // Thus, we get the following effects on timer-stealing in findrunnable:
 //
-// * Idle Ps with no timers when they go idle are never checked in findrunnable
-//   (for work- or timer-stealing; this is the ideal case).
-// * Running Ps must always be checked.
-// * Idle Ps whose timers are stolen must continue to be checked until they run
-//   again, even after timer expiration.
+//  * Idle Ps with no timers when they go idle are never checked in findrunnable
+//    (for work- or timer-stealing; this is the ideal case).
+//  * Running Ps must always be checked.
+//  * Idle Ps whose timers are stolen must continue to be checked until they run
+//    again, even after timer expiration.
 //
 // When the P starts running again, the mask should be set, as a timer may be
 // added at any time.
diff --git a/src/runtime/runtime2.go b/src/runtime/runtime2.go
index 1fb9e195e5..dc18bf927e 100644
--- a/src/runtime/runtime2.go
+++ b/src/runtime/runtime2.go
@@ -291,10 +291,10 @@ func (pp *puintptr) set(p *p) { *pp = puintptr(unsafe.Pointer(p)) }
 // Because we do free Ms, there are some additional constrains on
 // muintptrs:
 //
-// 1. Never hold an muintptr locally across a safe point.
+//  1. Never hold an muintptr locally across a safe point.
 //
-// 2. Any muintptr in the heap must be owned by the M itself so it can
-//    ensure it is not in use when the last true *m is released.
+//  2. Any muintptr in the heap must be owned by the M itself so it can
+//     ensure it is not in use when the last true *m is released.
 type muintptr uintptr
 
 //go:nosplit
diff --git a/src/runtime/string.go b/src/runtime/string.go
index 980a9866e6..eec29075b9 100644
--- a/src/runtime/string.go
+++ b/src/runtime/string.go
@@ -147,10 +147,10 @@ func rawstringtmp(buf *tmpBuf, l int) (s string, b []byte) {
 // and otherwise intrinsified by the compiler.
 //
 // Some internal compiler optimizations use this function.
-// - Used for m[T1{... Tn{..., string(k), ...} ...}] and m[string(k)]
-//   where k is []byte, T1 to Tn is a nesting of struct and array literals.
-// - Used for "<"+string(b)+">" concatenation where b is []byte.
-// - Used for string(b)=="foo" comparison where b is []byte.
+//  - Used for m[T1{... Tn{..., string(k), ...} ...}] and m[string(k)]
+//    where k is []byte, T1 to Tn is a nesting of struct and array literals.
+//  - Used for "<"+string(b)+">" concatenation where b is []byte.
+//  - Used for string(b)=="foo" comparison where b is []byte.
 func slicebytetostringtmp(ptr *byte, n int) (str string) {
 	if raceenabled && n > 0 {
 		racereadrangepc(unsafe.Pointer(ptr),
diff --git a/src/runtime/symtab_test.go b/src/runtime/symtab_test.go
index 99ff0d4420..a83afc3385 100644
--- a/src/runtime/symtab_test.go
+++ b/src/runtime/symtab_test.go
@@ -205,15 +205,15 @@ func tracebackFunc(t *testing.T) uintptr {
 // Go obviously doesn't easily expose the problematic PCs to running programs,
 // so this test is a bit fragile. Some details:
 //
-// * tracebackFunc is our target function. We want to get a PC in the
-//   alignment region following this function. This function also has other
-//   functions inlined into it to ensure it has an InlTree (this was the source
-//   of the bug in issue 44971).
+//  * tracebackFunc is our target function. We want to get a PC in the
+//    alignment region following this function. This function also has other
+//    functions inlined into it to ensure it has an InlTree (this was the source
+//    of the bug in issue 44971).
 //
-// * We acquire a PC in tracebackFunc, walking forwards until FuncForPC says
-//   we're in a new function. The last PC of the function according to FuncForPC
-//   should be in the alignment region (assuming the function isn't already
-//   perfectly aligned).
+//  * We acquire a PC in tracebackFunc, walking forwards until FuncForPC says
+//    we're in a new function. The last PC of the function according to FuncForPC
+//    should be in the alignment region (assuming the function isn't already
+//    perfectly aligned).
 //
 // This is a regression test for issue 44971.
 func TestFunctionAlignmentTraceback(t *testing.T) {
diff --git a/src/runtime/type.go b/src/runtime/type.go
index da47147897..a00394f3b3 100644
--- a/src/runtime/type.go
+++ b/src/runtime/type.go
@@ -17,7 +17,7 @@ import (
 //	cmd/compile/internal/reflectdata/reflect.go
 //	cmd/link/internal/ld/decodesym.go
 //	reflect/type.go
-//      internal/reflectlite/type.go
+//	internal/reflectlite/type.go
 type tflag uint8
 
 const (
diff --git a/src/syscall/exec_windows.go b/src/syscall/exec_windows.go
index 9d10d6a512..41e58d4355 100644
--- a/src/syscall/exec_windows.go
+++ b/src/syscall/exec_windows.go
@@ -19,11 +19,11 @@ var ForkLock sync.RWMutex
 // in https://msdn.microsoft.com/en-us/library/ms880421.
 // This function returns "" (2 double quotes) if s is empty.
 // Alternatively, these transformations are done:
-// - every back slash (\) is doubled, but only if immediately
-//   followed by double quote (");
-// - every double quote (") is escaped by back slash (\);
-// - finally, s is wrapped with double quotes (arg -> "arg"),
-//   but only if there is space or tab inside s.
+//  - every back slash (\) is doubled, but only if immediately
+//    followed by double quote (");
+//  - every double quote (") is escaped by back slash (\);
+//  - finally, s is wrapped with double quotes (arg -> "arg"),
+//    but only if there is space or tab inside s.
 func EscapeArg(s string) string {
 	if len(s) == 0 {
 		return `""`
diff --git a/src/time/zoneinfo.go b/src/time/zoneinfo.go
index b460b9e6c5..9bcb183d77 100644
--- a/src/time/zoneinfo.go
+++ b/src/time/zoneinfo.go
@@ -197,14 +197,14 @@ func (l *Location) lookup(sec int64) (name string, offset int, start, end int64,
 // The reference implementation in localtime.c from
 // https://www.iana.org/time-zones/repository/releases/tzcode2013g.tar.gz
 // implements the following algorithm for these cases:
-// 1) If the first zone is unused by the transitions, use it.
-// 2) Otherwise, if there are transition times, and the first
-//    transition is to a zone in daylight time, find the first
-//    non-daylight-time zone before and closest to the first transition
-//    zone.
-// 3) Otherwise, use the first zone that is not daylight time, if
-//    there is one.
-// 4) Otherwise, use the first zone.
+//  1) If the first zone is unused by the transitions, use it.
+//  2) Otherwise, if there are transition times, and the first
+//     transition is to a zone in daylight time, find the first
+//     non-daylight-time zone before and closest to the first transition
+//     zone.
+//  3) Otherwise, use the first zone that is not daylight time, if
+//     there is one.
+//  4) Otherwise, use the first zone.
 func (l *Location) lookupFirstZone() int {
 	// Case 1.
 	if !l.firstZoneUsed() {

From 89dff118ada91061350aa149b54a2ab4fdbd6810 Mon Sep 17 00:00:00 2001
From: Russ Cox 
Date: Sun, 30 Jan 2022 19:22:46 -0500
Subject: [PATCH 090/125] all: fix TODO comment hanging indents

For whatever reason (perhaps some tool does this), a handful of comments,
including some doc comments, have TODOs formatted like:

	// TODO(name): Text here and
	//             more text aligned
	//             under first text.

In doc comments the second line turns into a 
 block,
which is undesirable in this context.

Rewrite those to unindent, like this instead:

	// TODO(name): Text here and
	// more text aligned
	// at left column.

For #51082.

Change-Id: Ibf5145659a61ebf9496f016752a709a7656d2d4b
Reviewed-on: https://go-review.googlesource.com/c/go/+/384258
Trust: Russ Cox 
Run-TryBot: Russ Cox 
Reviewed-by: Ian Lance Taylor 
TryBot-Result: Gopher Robot 
---
 src/cmd/compile/internal/ssa/func_test.go      |  2 +-
 src/cmd/compile/internal/syntax/nodes.go       |  2 +-
 src/cmd/compile/internal/syntax/pos.go         |  2 +-
 src/cmd/compile/internal/syntax/tokens.go      |  4 ++--
 src/cmd/compile/internal/syntax/walk.go        |  2 +-
 src/cmd/compile/internal/types2/assignments.go |  4 ++--
 src/cmd/compile/internal/types2/lookup.go      |  6 +++---
 src/cmd/compile/internal/types2/named.go       |  2 +-
 src/cmd/compile/internal/types2/return.go      |  4 ++--
 src/cmd/compile/internal/types2/stmt.go        |  2 +-
 src/cmd/compile/internal/types2/validtype.go   | 10 +++++-----
 src/go/ast/walk.go                             |  2 +-
 src/go/constant/value.go                       |  6 +++---
 src/go/parser/performance_test.go              |  4 ++--
 src/go/printer/nodes.go                        | 14 +++++++-------
 src/go/printer/testdata/parser.go              |  2 +-
 src/go/types/lookup.go                         |  6 +++---
 src/go/types/named.go                          |  2 +-
 src/go/types/return.go                         |  4 ++--
 src/go/types/stmt.go                           |  2 +-
 src/go/types/validtype.go                      | 10 +++++-----
 src/math/big/arith_test.go                     |  2 +-
 src/net/http/transport_test.go                 |  2 +-
 src/reflect/type.go                            |  2 +-
 24 files changed, 49 insertions(+), 49 deletions(-)

diff --git a/src/cmd/compile/internal/ssa/func_test.go b/src/cmd/compile/internal/ssa/func_test.go
index 276c444b9a..bbb228d8a5 100644
--- a/src/cmd/compile/internal/ssa/func_test.go
+++ b/src/cmd/compile/internal/ssa/func_test.go
@@ -34,7 +34,7 @@ package ssa
 
 // TODO(matloob): Choose better names for Fun, Bloc, Goto, etc.
 // TODO(matloob): Write a parser for the Func disassembly. Maybe
-//                the parser can be used instead of Fun.
+// the parser can be used instead of Fun.
 
 import (
 	"cmd/compile/internal/types"
diff --git a/src/cmd/compile/internal/syntax/nodes.go b/src/cmd/compile/internal/syntax/nodes.go
index 2f9b43edef..b0a0918e77 100644
--- a/src/cmd/compile/internal/syntax/nodes.go
+++ b/src/cmd/compile/internal/syntax/nodes.go
@@ -462,7 +462,7 @@ func (simpleStmt) aSimpleStmt() {}
 // Comments
 
 // TODO(gri) Consider renaming to CommentPos, CommentPlacement, etc.
-//           Kind = Above doesn't make much sense.
+// Kind = Above doesn't make much sense.
 type CommentKind uint
 
 const (
diff --git a/src/cmd/compile/internal/syntax/pos.go b/src/cmd/compile/internal/syntax/pos.go
index 1494c0989f..b5e53d268b 100644
--- a/src/cmd/compile/internal/syntax/pos.go
+++ b/src/cmd/compile/internal/syntax/pos.go
@@ -24,7 +24,7 @@ type Pos struct {
 func MakePos(base *PosBase, line, col uint) Pos { return Pos{base, sat32(line), sat32(col)} }
 
 // TODO(gri) IsKnown makes an assumption about linebase < 1.
-//           Maybe we should check for Base() != nil instead.
+// Maybe we should check for Base() != nil instead.
 
 func (pos Pos) Pos() Pos       { return pos }
 func (pos Pos) IsKnown() bool  { return pos.line > 0 }
diff --git a/src/cmd/compile/internal/syntax/tokens.go b/src/cmd/compile/internal/syntax/tokens.go
index 60eae36ec9..6dece1aa5b 100644
--- a/src/cmd/compile/internal/syntax/tokens.go
+++ b/src/cmd/compile/internal/syntax/tokens.go
@@ -93,8 +93,8 @@ func contains(tokset uint64, tok token) bool {
 type LitKind uint8
 
 // TODO(gri) With the 'i' (imaginary) suffix now permitted on integer
-//           and floating-point numbers, having a single ImagLit does
-//           not represent the literal kind well anymore. Remove it?
+// and floating-point numbers, having a single ImagLit does
+// not represent the literal kind well anymore. Remove it?
 const (
 	IntLit LitKind = iota
 	FloatLit
diff --git a/src/cmd/compile/internal/syntax/walk.go b/src/cmd/compile/internal/syntax/walk.go
index b025844204..8f1d566155 100644
--- a/src/cmd/compile/internal/syntax/walk.go
+++ b/src/cmd/compile/internal/syntax/walk.go
@@ -52,7 +52,7 @@ func Crawl(root Node, f func(Node) bool) {
 // field lists such as type T in "a, b, c T"). Such shared nodes are
 // walked multiple times.
 // TODO(gri) Revisit this design. It may make sense to walk those nodes
-//           only once. A place where this matters is types2.TestResolveIdents.
+// only once. A place where this matters is types2.TestResolveIdents.
 func Walk(root Node, v Visitor) {
 	walker{v}.node(root)
 }
diff --git a/src/cmd/compile/internal/types2/assignments.go b/src/cmd/compile/internal/types2/assignments.go
index 49f4e2d2ab..f766c0b31d 100644
--- a/src/cmd/compile/internal/types2/assignments.go
+++ b/src/cmd/compile/internal/types2/assignments.go
@@ -441,8 +441,8 @@ func (check *Checker) assignVars(lhs, orig_rhs []syntax.Expr) {
 // unpack unpacks a *syntax.ListExpr into a list of syntax.Expr.
 // Helper introduced for the go/types -> types2 port.
 // TODO(gri) Should find a more efficient solution that doesn't
-//           require introduction of a new slice for simple
-//           expressions.
+// require introduction of a new slice for simple
+// expressions.
 func unpackExpr(x syntax.Expr) []syntax.Expr {
 	if x, _ := x.(*syntax.ListExpr); x != nil {
 		return x.ElemList
diff --git a/src/cmd/compile/internal/types2/lookup.go b/src/cmd/compile/internal/types2/lookup.go
index 0832877226..335e4d0c23 100644
--- a/src/cmd/compile/internal/types2/lookup.go
+++ b/src/cmd/compile/internal/types2/lookup.go
@@ -83,9 +83,9 @@ func LookupFieldOrMethod(T Type, addressable bool, pkg *Package, name string) (o
 }
 
 // TODO(gri) The named type consolidation and seen maps below must be
-//           indexed by unique keys for a given type. Verify that named
-//           types always have only one representation (even when imported
-//           indirectly via different packages.)
+// indexed by unique keys for a given type. Verify that named
+// types always have only one representation (even when imported
+// indirectly via different packages.)
 
 // lookupFieldOrMethod should only be called by LookupFieldOrMethod and missingMethod.
 // If foldCase is true, the lookup for methods will include looking for any method
diff --git a/src/cmd/compile/internal/types2/named.go b/src/cmd/compile/internal/types2/named.go
index 584ee51a13..1d3703ffd9 100644
--- a/src/cmd/compile/internal/types2/named.go
+++ b/src/cmd/compile/internal/types2/named.go
@@ -107,7 +107,7 @@ func (t *Named) Obj() *TypeName { return t.orig.obj } // for non-instances this
 func (t *Named) Origin() *Named { return t.orig }
 
 // TODO(gri) Come up with a better representation and API to distinguish
-//           between parameterized instantiated and non-instantiated types.
+// between parameterized instantiated and non-instantiated types.
 
 // TypeParams returns the type parameters of the named type t, or nil.
 // The result is non-nil for an (originally) generic type even if it is instantiated.
diff --git a/src/cmd/compile/internal/types2/return.go b/src/cmd/compile/internal/types2/return.go
index 6c3e1842ce..7cdea99e08 100644
--- a/src/cmd/compile/internal/types2/return.go
+++ b/src/cmd/compile/internal/types2/return.go
@@ -99,8 +99,8 @@ func (check *Checker) isTerminatingSwitch(body []*syntax.CaseClause, label strin
 }
 
 // TODO(gri) For nested breakable statements, the current implementation of hasBreak
-//	     will traverse the same subtree repeatedly, once for each label. Replace
-//           with a single-pass label/break matching phase.
+// will traverse the same subtree repeatedly, once for each label. Replace
+// with a single-pass label/break matching phase.
 
 // hasBreak reports if s is or contains a break statement
 // referring to the label-ed statement or implicit-ly the
diff --git a/src/cmd/compile/internal/types2/stmt.go b/src/cmd/compile/internal/types2/stmt.go
index 2b6abbde7e..e00f73ce99 100644
--- a/src/cmd/compile/internal/types2/stmt.go
+++ b/src/cmd/compile/internal/types2/stmt.go
@@ -312,7 +312,7 @@ L:
 }
 
 // TODO(gri) Once we are certain that typeHash is correct in all situations, use this version of caseTypes instead.
-//           (Currently it may be possible that different types have identical names and import paths due to ImporterFrom.)
+// (Currently it may be possible that different types have identical names and import paths due to ImporterFrom.)
 //
 // func (check *Checker) caseTypes(x *operand, xtyp *Interface, types []syntax.Expr, seen map[string]syntax.Expr) (T Type) {
 // 	var dummy operand
diff --git a/src/cmd/compile/internal/types2/validtype.go b/src/cmd/compile/internal/types2/validtype.go
index c7d42551dd..d495c6788e 100644
--- a/src/cmd/compile/internal/types2/validtype.go
+++ b/src/cmd/compile/internal/types2/validtype.go
@@ -141,8 +141,8 @@ func (env *tparamEnv) push(typ *Named) *tparamEnv {
 }
 
 // TODO(gri) Alternative implementation:
-//           We may not need to build a stack of environments to
-//           look up the type arguments for type parameters. The
-//           same information should be available via the path:
-//           We should be able to just walk the path backwards
-//           and find the type arguments in the instance objects.
+// We may not need to build a stack of environments to
+// look up the type arguments for type parameters. The
+// same information should be available via the path:
+// We should be able to just walk the path backwards
+// and find the type arguments in the instance objects.
diff --git a/src/go/ast/walk.go b/src/go/ast/walk.go
index 308662f633..16b15f11f2 100644
--- a/src/go/ast/walk.go
+++ b/src/go/ast/walk.go
@@ -40,7 +40,7 @@ func walkDeclList(v Visitor, list []Decl) {
 }
 
 // TODO(gri): Investigate if providing a closure to Walk leads to
-//            simpler use (and may help eliminate Inspect in turn).
+// simpler use (and may help eliminate Inspect in turn).
 
 // Walk traverses an AST in depth-first order: It starts by calling
 // v.Visit(node); node must not be nil. If the visitor w returned by
diff --git a/src/go/constant/value.go b/src/go/constant/value.go
index dee3bce9ee..544801bd70 100644
--- a/src/go/constant/value.go
+++ b/src/go/constant/value.go
@@ -70,9 +70,9 @@ type Value interface {
 const prec = 512
 
 // TODO(gri) Consider storing "error" information in an unknownVal so clients
-//           can provide better error messages. For instance, if a number is
-//           too large (incl. infinity), that could be recorded in unknownVal.
-//           See also #20583 and #42695 for use cases.
+// can provide better error messages. For instance, if a number is
+// too large (incl. infinity), that could be recorded in unknownVal.
+// See also #20583 and #42695 for use cases.
 
 // Representation of values:
 //
diff --git a/src/go/parser/performance_test.go b/src/go/parser/performance_test.go
index 6f8a97770b..1249f35d39 100644
--- a/src/go/parser/performance_test.go
+++ b/src/go/parser/performance_test.go
@@ -10,8 +10,8 @@ import (
 	"testing"
 )
 
-// TODO(rFindley): use a testdata file or file from another package here, to
-//                 avoid a moving target.
+// TODO(rfindley): use a testdata file or file from another package here, to
+// avoid a moving target.
 var src = readFile("parser.go")
 
 func readFile(filename string) []byte {
diff --git a/src/go/printer/nodes.go b/src/go/printer/nodes.go
index 9a09d58eb2..89e8016409 100644
--- a/src/go/printer/nodes.go
+++ b/src/go/printer/nodes.go
@@ -38,12 +38,12 @@ import (
 // printed.
 //
 // TODO(gri): linebreak may add too many lines if the next statement at "line"
-//            is preceded by comments because the computation of n assumes
-//            the current position before the comment and the target position
-//            after the comment. Thus, after interspersing such comments, the
-//            space taken up by them is not considered to reduce the number of
-//            linebreaks. At the moment there is no easy way to know about
-//            future (not yet interspersed) comments in this function.
+// is preceded by comments because the computation of n assumes
+// the current position before the comment and the target position
+// after the comment. Thus, after interspersing such comments, the
+// space taken up by them is not considered to reduce the number of
+// linebreaks. At the moment there is no easy way to know about
+// future (not yet interspersed) comments in this function.
 //
 func (p *printer) linebreak(line, min int, ws whiteSpace, newSection bool) (nbreaks int) {
 	n := nlimit(line - p.pos.Line)
@@ -125,7 +125,7 @@ const filteredMsg = "contains filtered or unexported fields"
 // expressions.
 //
 // TODO(gri) Consider rewriting this to be independent of []ast.Expr
-//           so that we can use the algorithm for any kind of list
+// so that we can use the algorithm for any kind of list
 //           (e.g., pass list via a channel over which to range).
 func (p *printer) exprList(prev0 token.Pos, list []ast.Expr, depth int, mode exprListMode, next0 token.Pos, isIncomplete bool) {
 	if len(list) == 0 {
diff --git a/src/go/printer/testdata/parser.go b/src/go/printer/testdata/parser.go
index 7e8379739c..615aceebd2 100644
--- a/src/go/printer/testdata/parser.go
+++ b/src/go/printer/testdata/parser.go
@@ -1352,7 +1352,7 @@ func (p *parser) parseBinaryExpr(lhs bool, prec1 int) ast.Expr {
 
 // If lhs is set and the result is an identifier, it is not resolved.
 // TODO(gri): parseExpr may return a type or even a raw type ([..]int) -
-//            should reject when a type/raw type is obviously not allowed
+// should reject when a type/raw type is obviously not allowed
 func (p *parser) parseExpr(lhs bool) ast.Expr {
 	if p.trace {
 		defer un(trace(p, "Expression"))
diff --git a/src/go/types/lookup.go b/src/go/types/lookup.go
index 335fada7b7..77fc17f5c3 100644
--- a/src/go/types/lookup.go
+++ b/src/go/types/lookup.go
@@ -83,9 +83,9 @@ func LookupFieldOrMethod(T Type, addressable bool, pkg *Package, name string) (o
 }
 
 // TODO(gri) The named type consolidation and seen maps below must be
-//           indexed by unique keys for a given type. Verify that named
-//           types always have only one representation (even when imported
-//           indirectly via different packages.)
+// indexed by unique keys for a given type. Verify that named
+// types always have only one representation (even when imported
+// indirectly via different packages.)
 
 // lookupFieldOrMethod should only be called by LookupFieldOrMethod and missingMethod.
 // If foldCase is true, the lookup for methods will include looking for any method
diff --git a/src/go/types/named.go b/src/go/types/named.go
index e4fd96ab64..ee35080142 100644
--- a/src/go/types/named.go
+++ b/src/go/types/named.go
@@ -109,7 +109,7 @@ func (t *Named) Obj() *TypeName {
 func (t *Named) Origin() *Named { return t.orig }
 
 // TODO(gri) Come up with a better representation and API to distinguish
-//           between parameterized instantiated and non-instantiated types.
+// between parameterized instantiated and non-instantiated types.
 
 // TypeParams returns the type parameters of the named type t, or nil.
 // The result is non-nil for an (originally) generic type even if it is instantiated.
diff --git a/src/go/types/return.go b/src/go/types/return.go
index 2d34a70b98..ee8c41a431 100644
--- a/src/go/types/return.go
+++ b/src/go/types/return.go
@@ -101,8 +101,8 @@ func (check *Checker) isTerminatingSwitch(body *ast.BlockStmt, label string) boo
 }
 
 // TODO(gri) For nested breakable statements, the current implementation of hasBreak
-//	     will traverse the same subtree repeatedly, once for each label. Replace
-//           with a single-pass label/break matching phase.
+// will traverse the same subtree repeatedly, once for each label. Replace
+// with a single-pass label/break matching phase.
 
 // hasBreak reports if s is or contains a break statement
 // referring to the label-ed statement or implicit-ly the
diff --git a/src/go/types/stmt.go b/src/go/types/stmt.go
index d7f6a486ca..0fab70719e 100644
--- a/src/go/types/stmt.go
+++ b/src/go/types/stmt.go
@@ -317,7 +317,7 @@ L:
 }
 
 // TODO(gri) Once we are certain that typeHash is correct in all situations, use this version of caseTypes instead.
-//           (Currently it may be possible that different types have identical names and import paths due to ImporterFrom.)
+// (Currently it may be possible that different types have identical names and import paths due to ImporterFrom.)
 //
 // func (check *Checker) caseTypes(x *operand, xtyp *Interface, types []ast.Expr, seen map[string]ast.Expr) (T Type) {
 // 	var dummy operand
diff --git a/src/go/types/validtype.go b/src/go/types/validtype.go
index 2c686f2655..edb4c02ecd 100644
--- a/src/go/types/validtype.go
+++ b/src/go/types/validtype.go
@@ -140,8 +140,8 @@ func (env *tparamEnv) push(typ *Named) *tparamEnv {
 }
 
 // TODO(gri) Alternative implementation:
-//           We may not need to build a stack of environments to
-//           look up the type arguments for type parameters. The
-//           same information should be available via the path:
-//           We should be able to just walk the path backwards
-//           and find the type arguments in the instance objects.
+// We may not need to build a stack of environments to
+// look up the type arguments for type parameters. The
+// same information should be available via the path:
+// We should be able to just walk the path backwards
+// and find the type arguments in the instance objects.
diff --git a/src/math/big/arith_test.go b/src/math/big/arith_test.go
index 7b3427f834..789b96bf35 100644
--- a/src/math/big/arith_test.go
+++ b/src/math/big/arith_test.go
@@ -510,7 +510,7 @@ func testFunVWW(t *testing.T, msg string, f funVWW, a argVWW) {
 }
 
 // TODO(gri) mulAddVWW and divWVW are symmetric operations but
-//           their signature is not symmetric. Try to unify.
+// their signature is not symmetric. Try to unify.
 
 type funWVW func(z []Word, xn Word, x []Word, y Word) (r Word)
 type argWVW struct {
diff --git a/src/net/http/transport_test.go b/src/net/http/transport_test.go
index e5d60afb1b..440d6b969b 100644
--- a/src/net/http/transport_test.go
+++ b/src/net/http/transport_test.go
@@ -48,7 +48,7 @@ import (
 )
 
 // TODO: test 5 pipelined requests with responses: 1) OK, 2) OK, Connection: Close
-//       and then verify that the final 2 responses get errors back.
+// and then verify that the final 2 responses get errors back.
 
 // hostPortHandler writes back the client's "host:port".
 var hostPortHandler = HandlerFunc(func(w ResponseWriter, r *Request) {
diff --git a/src/reflect/type.go b/src/reflect/type.go
index 83047062bd..9589e83dbd 100644
--- a/src/reflect/type.go
+++ b/src/reflect/type.go
@@ -1267,7 +1267,7 @@ func (t *structType) Field(i int) (f StructField) {
 }
 
 // TODO(gri): Should there be an error/bool indicator if the index
-//            is wrong for FieldByIndex?
+// is wrong for FieldByIndex?
 
 // FieldByIndex returns the nested field corresponding to index.
 func (t *structType) FieldByIndex(index []int) (f StructField) {

From 690ac4071fa3e07113bf371c9e74394ab54d6749 Mon Sep 17 00:00:00 2001
From: Russ Cox 
Date: Sun, 30 Jan 2022 20:11:47 -0500
Subject: [PATCH 091/125] all: remove trailing blank doc comment lines

A future change to gofmt will rewrite

	// Doc comment.
	//
	func f()

to

	// Doc comment.
	func f()

Apply that change preemptively to all doc comments.

For #51082.

Change-Id: I4023e16cfb0729b64a8590f071cd92f17343081d
Reviewed-on: https://go-review.googlesource.com/c/go/+/384259
Trust: Russ Cox 
Run-TryBot: Russ Cox 
Reviewed-by: Ian Lance Taylor 
TryBot-Result: Gopher Robot 
---
 src/archive/zip/reader_test.go                |  1 -
 src/bufio/scan.go                             |  1 -
 src/cmd/asm/internal/asm/parse.go             |  1 -
 src/cmd/cgo/gcc.go                            |  1 -
 .../compile/internal/importer/gcimporter.go   |  2 --
 src/cmd/compile/internal/ir/fmt.go            |  3 ---
 src/cmd/compile/internal/ir/mini.go           |  1 -
 .../compile/internal/reflectdata/reflect.go   |  1 -
 src/cmd/compile/internal/ssa/compile.go       |  1 -
 src/cmd/compile/internal/ssa/debug.go         |  1 -
 src/cmd/compile/internal/ssa/debug_test.go    |  1 -
 src/cmd/compile/internal/ssa/poset.go         |  1 -
 src/cmd/compile/internal/syntax/parser.go     |  1 -
 src/cmd/compile/internal/syntax/syntax.go     |  1 -
 .../compile/internal/test/zerorange_test.go   |  1 -
 src/cmd/compile/internal/types/fmt.go         |  2 --
 src/cmd/compile/internal/types2/api.go        |  2 --
 src/cmd/compile/internal/types2/builtins.go   |  1 -
 src/cmd/compile/internal/types2/expr.go       |  5 ----
 src/cmd/compile/internal/types2/lookup.go     |  2 --
 src/cmd/compile/internal/types2/object.go     |  1 -
 src/cmd/compile/internal/types2/operand.go    |  3 ---
 src/cmd/compile/internal/types2/selection.go  |  2 --
 src/cmd/compile/internal/types2/sizes.go      |  1 -
 src/cmd/compile/internal/types2/typestring.go |  1 -
 src/cmd/compile/internal/types2/typeterm.go   |  1 -
 src/cmd/compile/internal/types2/typexpr.go    |  3 ---
 src/cmd/compile/internal/types2/universe.go   |  1 -
 src/cmd/compile/internal/walk/builtin.go      |  1 -
 src/cmd/cover/cover_test.go                   |  1 -
 src/cmd/dist/buildruntime.go                  |  2 --
 src/cmd/go/internal/cache/cache.go            |  1 -
 src/cmd/go/internal/imports/build.go          |  1 -
 src/cmd/go/internal/modload/load.go           |  1 -
 src/cmd/go/internal/vet/vetflag.go            |  1 -
 src/cmd/go/internal/work/exec.go              |  2 --
 src/cmd/go/script_test.go                     |  1 -
 src/cmd/internal/obj/riscv/obj.go             |  1 -
 src/cmd/internal/obj/x86/asm6.go              |  2 --
 src/cmd/link/internal/ld/dwarf_test.go        |  1 -
 src/cmd/link/internal/loader/loader.go        |  1 -
 src/container/ring/ring.go                    |  5 ----
 .../elliptic/internal/fiat/p224_fiat64.go     |  7 ------
 .../elliptic/internal/fiat/p384_fiat64.go     |  7 ------
 .../elliptic/internal/fiat/p521_fiat64.go     |  7 ------
 src/crypto/elliptic/p256_ppc64le.go           |  2 --
 src/crypto/tls/cipher_suites.go               |  1 -
 src/database/sql/fakedb_test.go               |  1 -
 src/database/sql/sql.go                       |  1 -
 src/debug/dwarf/entry.go                      |  1 -
 src/encoding/ascii85/ascii85.go               |  1 -
 src/encoding/binary/varint.go                 |  2 --
 src/encoding/json/decode.go                   |  1 -
 src/encoding/json/encode.go                   |  1 -
 src/encoding/json/stream.go                   |  1 -
 src/go/ast/ast.go                             | 16 -------------
 src/go/ast/commentmap.go                      | 11 ---------
 src/go/ast/commentmap_test.go                 |  1 -
 src/go/ast/filter.go                          |  9 --------
 src/go/ast/filter_test.go                     |  1 -
 src/go/ast/resolve.go                         |  1 -
 src/go/ast/scope.go                           |  4 ----
 src/go/ast/walk.go                            |  2 --
 src/go/build/build.go                         |  2 --
 src/go/build/deps_test.go                     |  1 -
 src/go/constant/value.go                      |  7 ------
 src/go/doc/doc.go                             |  2 --
 src/go/doc/example.go                         |  1 -
 src/go/doc/exports.go                         |  7 ------
 src/go/doc/filter.go                          |  1 -
 src/go/doc/reader.go                          | 22 ------------------
 src/go/doc/synopsis.go                        |  2 --
 src/go/format/benchmark_test.go               |  1 -
 src/go/format/format.go                       |  2 --
 src/go/internal/gccgoimporter/parser.go       |  2 --
 src/go/internal/gcimporter/exportdata.go      |  1 -
 src/go/internal/gcimporter/gcimporter.go      |  2 --
 src/go/parser/error_test.go                   |  3 ---
 src/go/parser/interface.go                    |  6 -----
 src/go/parser/parser.go                       |  6 -----
 src/go/parser/resolver.go                     |  1 -
 src/go/printer/nodes.go                       |  7 ------
 src/go/printer/printer.go                     | 16 -------------
 src/go/printer/printer_test.go                |  1 -
 src/go/printer/testdata/parser.go             |  5 ----
 src/go/scanner/errors.go                      |  4 ----
 src/go/scanner/scanner.go                     |  5 ----
 src/go/token/position.go                      | 23 -------------------
 src/go/token/token.go                         | 10 --------
 src/go/types/api.go                           |  2 --
 src/go/types/builtins.go                      |  1 -
 src/go/types/check_test.go                    |  2 --
 src/go/types/eval.go                          |  1 -
 src/go/types/expr.go                          |  5 ----
 src/go/types/index.go                         |  1 -
 src/go/types/lookup.go                        |  2 --
 src/go/types/object.go                        |  1 -
 src/go/types/operand.go                       |  3 ---
 src/go/types/selection.go                     |  2 --
 src/go/types/sizes.go                         |  1 -
 src/go/types/typestring.go                    |  1 -
 src/go/types/typeterm.go                      |  1 -
 src/go/types/typexpr.go                       |  3 ---
 src/go/types/universe.go                      |  1 -
 src/html/template/template.go                 |  1 -
 src/index/suffixarray/suffixarray.go          |  3 ---
 src/internal/fmtsort/sort.go                  |  1 -
 src/io/fs/walk.go                             |  1 -
 src/math/big/float.go                         |  3 ---
 src/math/big/floatconv.go                     |  2 --
 src/math/big/int.go                           |  6 -----
 src/math/big/intconv.go                       |  2 --
 src/math/big/nat.go                           |  1 -
 src/math/big/natconv.go                       |  2 --
 src/math/big/rat.go                           |  2 --
 src/math/rand/exp.go                          |  1 -
 src/math/rand/normal.go                       |  1 -
 src/math/rand/rand.go                         |  2 --
 src/net/http/client.go                        |  1 -
 src/net/http/fs.go                            |  1 -
 src/net/http/transport.go                     |  1 -
 src/net/textproto/reader.go                   |  4 ----
 src/net/textproto/textproto.go                |  1 -
 src/path/filepath/match.go                    |  1 -
 src/path/match.go                             |  1 -
 src/reflect/all_test.go                       |  1 -
 src/reflect/makefunc.go                       |  1 -
 src/reflect/value.go                          |  2 --
 src/regexp/exec_test.go                       |  1 -
 src/regexp/syntax/parse.go                    |  1 -
 src/runtime/chan.go                           |  2 --
 src/runtime/compiler.go                       |  1 -
 src/runtime/lock_sema.go                      |  1 -
 src/runtime/pprof/pprof.go                    |  2 --
 src/runtime/profbuf.go                        |  1 -
 src/runtime/trace/annotation.go               |  1 -
 src/sort/search.go                            |  4 ----
 src/sort/search_test.go                       |  1 -
 src/sort/sort.go                              |  1 -
 src/strconv/itoa.go                           |  1 -
 src/sync/cond.go                              |  1 -
 src/sync/once.go                              |  1 -
 src/testing/fstest/testfs.go                  |  1 -
 src/text/scanner/scanner.go                   |  1 -
 src/text/tabwriter/tabwriter.go               |  9 --------
 src/text/template/option.go                   |  1 -
 src/time/format.go                            |  1 -
 src/time/time.go                              |  2 --
 src/unicode/letter.go                         |  1 -
 src/unsafe/unsafe.go                          |  1 -
 150 files changed, 387 deletions(-)

diff --git a/src/archive/zip/reader_test.go b/src/archive/zip/reader_test.go
index d1a9bdd334..9bc23642c0 100644
--- a/src/archive/zip/reader_test.go
+++ b/src/archive/zip/reader_test.go
@@ -865,7 +865,6 @@ func returnRecursiveZip() (r io.ReaderAt, size int64) {
 //
 // It's here in hex for the same reason as rZipBytes above: to avoid
 // problems with on-disk virus scanners or other zip processors.
-//
 func biggestZipBytes() []byte {
 	s := `
 0000000 50 4b 03 04 14 00 08 00 08 00 00 00 00 00 00 00
diff --git a/src/bufio/scan.go b/src/bufio/scan.go
index 4846d4f733..e247cbcf32 100644
--- a/src/bufio/scan.go
+++ b/src/bufio/scan.go
@@ -26,7 +26,6 @@ import (
 // advanced arbitrarily far past the last token. Programs that need more
 // control over error handling or large tokens, or must run sequential scans
 // on a reader, should use bufio.Reader instead.
-//
 type Scanner struct {
 	r            io.Reader // The reader provided by the client.
 	split        SplitFunc // The function to split the tokens.
diff --git a/src/cmd/asm/internal/asm/parse.go b/src/cmd/asm/internal/asm/parse.go
index 0bdf868f48..59aedbf0cc 100644
--- a/src/cmd/asm/internal/asm/parse.go
+++ b/src/cmd/asm/internal/asm/parse.go
@@ -855,7 +855,6 @@ func (p *Parser) setPseudoRegister(addr *obj.Addr, reg string, isStatic bool, pr
 //
 // Anything else beginning with "<" logs an error if issueError is
 // true, otherwise returns (false, obj.ABI0).
-//
 func (p *Parser) symRefAttrs(name string, issueError bool) (bool, obj.ABI) {
 	abi := obj.ABI0
 	isStatic := false
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go
index 997a830994..9877182fc4 100644
--- a/src/cmd/cgo/gcc.go
+++ b/src/cmd/cgo/gcc.go
@@ -119,7 +119,6 @@ func (p *Package) addToFlag(flag string, args []string) {
 // Would be parsed as:
 //
 //     []string{"a", "b:c d", "ef", `g"`}
-//
 func splitQuoted(s string) (r []string, err error) {
 	var args []string
 	arg := make([]rune, len(s))
diff --git a/src/cmd/compile/internal/importer/gcimporter.go b/src/cmd/compile/internal/importer/gcimporter.go
index 6c27f8b332..bcf0480cfc 100644
--- a/src/cmd/compile/internal/importer/gcimporter.go
+++ b/src/cmd/compile/internal/importer/gcimporter.go
@@ -28,7 +28,6 @@ var pkgExts = [...]string{".a", ".o"}
 // the build.Default build.Context). A relative srcDir is interpreted
 // relative to the current working directory.
 // If no file was found, an empty filename is returned.
-//
 func FindPkg(path, srcDir string) (filename, id string) {
 	if path == "" {
 		return
@@ -84,7 +83,6 @@ func FindPkg(path, srcDir string) (filename, id string) {
 // Import imports a gc-generated package given its import path and srcDir, adds
 // the corresponding package object to the packages map, and returns the object.
 // The packages map must contain all packages already imported.
-//
 func Import(packages map[string]*types2.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types2.Package, err error) {
 	var rc io.ReadCloser
 	var id string
diff --git a/src/cmd/compile/internal/ir/fmt.go b/src/cmd/compile/internal/ir/fmt.go
index 12a463c8a4..a00667b309 100644
--- a/src/cmd/compile/internal/ir/fmt.go
+++ b/src/cmd/compile/internal/ir/fmt.go
@@ -105,7 +105,6 @@ func (o Op) GoString() string {
 //
 //	%v	Go syntax ("+", "<-", "print")
 //	%+v	Debug syntax ("ADD", "RECV", "PRINT")
-//
 func (o Op) Format(s fmt.State, verb rune) {
 	switch verb {
 	default:
@@ -129,7 +128,6 @@ func (o Op) Format(s fmt.State, verb rune) {
 //	%v	Go syntax
 //	%L	Go syntax followed by " (type T)" if type is known.
 //	%+v	Debug syntax, as in Dump.
-//
 func fmtNode(n Node, s fmt.State, verb rune) {
 	// %+v prints Dump.
 	// Otherwise we print Go syntax.
@@ -926,7 +924,6 @@ func ellipsisIf(b bool) string {
 //	%v	Go syntax, semicolon-separated
 //	%.v	Go syntax, comma-separated
 //	%+v	Debug syntax, as in DumpList.
-//
 func (l Nodes) Format(s fmt.State, verb rune) {
 	if s.Flag('+') && verb == 'v' {
 		// %+v is DumpList output
diff --git a/src/cmd/compile/internal/ir/mini.go b/src/cmd/compile/internal/ir/mini.go
index 801a48a78e..98c0ffa5b0 100644
--- a/src/cmd/compile/internal/ir/mini.go
+++ b/src/cmd/compile/internal/ir/mini.go
@@ -27,7 +27,6 @@ import (
 // The embedding struct should also fill in n.op in its constructor,
 // for more useful panic messages when invalid methods are called,
 // instead of implementing Op itself.
-//
 type miniNode struct {
 	pos  src.XPos // uint32
 	op   Op       // uint8
diff --git a/src/cmd/compile/internal/reflectdata/reflect.go b/src/cmd/compile/internal/reflectdata/reflect.go
index 908f81865e..9961c8f65a 100644
--- a/src/cmd/compile/internal/reflectdata/reflect.go
+++ b/src/cmd/compile/internal/reflectdata/reflect.go
@@ -1500,7 +1500,6 @@ func (a typesByString) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
 // use bitmaps for objects up to 64 kB in size.
 //
 // Also known to reflect/type.go.
-//
 const maxPtrmaskBytes = 2048
 
 // GCSym returns a data symbol containing GC information for type t, along
diff --git a/src/cmd/compile/internal/ssa/compile.go b/src/cmd/compile/internal/ssa/compile.go
index d006bf9a3b..f95140eaf9 100644
--- a/src/cmd/compile/internal/ssa/compile.go
+++ b/src/cmd/compile/internal/ssa/compile.go
@@ -259,7 +259,6 @@ var GenssaDump map[string]bool = make(map[string]bool) // names of functions to
 // GO_GCFLAGS=-d=ssa/generic_cse/time,ssa/generic_cse/stats,ssa/generic_cse/debug=3 ./make.bash
 //
 // BOOT_GO_GCFLAGS=-d='ssa/~^.*scc$/off' GO_GCFLAGS='-d=ssa/~^.*scc$/off' ./make.bash
-//
 func PhaseOption(phase, flag string, val int, valString string) string {
 	switch phase {
 	case "", "help":
diff --git a/src/cmd/compile/internal/ssa/debug.go b/src/cmd/compile/internal/ssa/debug.go
index aad59fa24e..08dc5c468e 100644
--- a/src/cmd/compile/internal/ssa/debug.go
+++ b/src/cmd/compile/internal/ssa/debug.go
@@ -428,7 +428,6 @@ func (sc *slotCanonicalizer) canonSlot(idx SlKeyIdx) LocalSlot {
 // This function examines the live OpArg{Int,Float}Reg values and
 // synthesizes new (dead) values for the non-live params or the
 // non-live pieces of partially live params.
-//
 func PopulateABIInRegArgOps(f *Func) {
 	pri := f.ABISelf.ABIAnalyzeFuncType(f.Type.FuncType())
 
diff --git a/src/cmd/compile/internal/ssa/debug_test.go b/src/cmd/compile/internal/ssa/debug_test.go
index b20041c1b5..2fc12557c0 100644
--- a/src/cmd/compile/internal/ssa/debug_test.go
+++ b/src/cmd/compile/internal/ssa/debug_test.go
@@ -93,7 +93,6 @@ var optimizedLibs = (!strings.Contains(gogcflags, "-N") && !strings.Contains(gog
 // go test debug_test.go -args -u
 // (for Delve)
 // go test debug_test.go -args -u -d
-//
 func TestNexting(t *testing.T) {
 	testenv.SkipFlaky(t, 37404)
 
diff --git a/src/cmd/compile/internal/ssa/poset.go b/src/cmd/compile/internal/ssa/poset.go
index ee884ca761..200106e66d 100644
--- a/src/cmd/compile/internal/ssa/poset.go
+++ b/src/cmd/compile/internal/ssa/poset.go
@@ -145,7 +145,6 @@ type posetNode struct {
 //       I  extra
 //           /  \
 //          J    K
-//
 type poset struct {
 	lastidx   uint32            // last generated dense index
 	flags     uint8             // internal flags
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go
index 6574b01371..f18d526877 100644
--- a/src/cmd/compile/internal/syntax/parser.go
+++ b/src/cmd/compile/internal/syntax/parser.go
@@ -471,7 +471,6 @@ func isEmptyFuncDecl(dcl Decl) bool {
 // elements are accepted. list returns the position of the closing token.
 //
 // list = [ f { sep f } [sep] ] close .
-//
 func (p *parser) list(context string, sep, close token, f func() bool) Pos {
 	if debug && (sep != _Comma && sep != _Semi || close != _Rparen && close != _Rbrace && close != _Rbrack) {
 		panic("invalid sep or close argument for list")
diff --git a/src/cmd/compile/internal/syntax/syntax.go b/src/cmd/compile/internal/syntax/syntax.go
index e51b5538b3..83b102da9f 100644
--- a/src/cmd/compile/internal/syntax/syntax.go
+++ b/src/cmd/compile/internal/syntax/syntax.go
@@ -63,7 +63,6 @@ type PragmaHandler func(pos Pos, blank bool, text string, current Pragma) Pragma
 // error, and the returned syntax tree is nil.
 //
 // If pragh != nil, it is called with each pragma encountered.
-//
 func Parse(base *PosBase, src io.Reader, errh ErrorHandler, pragh PragmaHandler, mode Mode) (_ *File, first error) {
 	defer func() {
 		if p := recover(); p != nil {
diff --git a/src/cmd/compile/internal/test/zerorange_test.go b/src/cmd/compile/internal/test/zerorange_test.go
index ec87136157..e92b5d342f 100644
--- a/src/cmd/compile/internal/test/zerorange_test.go
+++ b/src/cmd/compile/internal/test/zerorange_test.go
@@ -170,7 +170,6 @@ func triggerZerorangeSmall(f, g, h uint64) (rv0 uint64) {
 // depending on the size of the thing that needs to be zeroed out
 // (I've verified at the time of the writing of this test that it
 // exercises the various cases).
-//
 func TestZerorange45372(t *testing.T) {
 	if r := triggerZerorangeLarge(101, 303, 505); r != 1010 {
 		t.Errorf("large: wanted %d got %d", 1010, r)
diff --git a/src/cmd/compile/internal/types/fmt.go b/src/cmd/compile/internal/types/fmt.go
index a42d97cd31..bdd3ca1d28 100644
--- a/src/cmd/compile/internal/types/fmt.go
+++ b/src/cmd/compile/internal/types/fmt.go
@@ -83,7 +83,6 @@ const (
 //	%v	Go syntax: Name for symbols in the local package, PkgName.Name for imported symbols.
 //	%+v	Debug syntax: always include PkgName. prefix even for local names.
 //	%S	Short syntax: Name only, no matter what.
-//
 func (s *Sym) Format(f fmt.State, verb rune) {
 	mode := fmtGo
 	switch verb {
@@ -241,7 +240,6 @@ var fmtBufferPool = sync.Pool{
 //	%L	Go syntax for underlying type if t is named
 //	%S	short Go syntax: drop leading "func" in function type
 //	%-S	special case for method receiver symbol
-//
 func (t *Type) Format(s fmt.State, verb rune) {
 	mode := fmtGo
 	switch verb {
diff --git a/src/cmd/compile/internal/types2/api.go b/src/cmd/compile/internal/types2/api.go
index d864c96fb6..34bb29cadc 100644
--- a/src/cmd/compile/internal/types2/api.go
+++ b/src/cmd/compile/internal/types2/api.go
@@ -285,7 +285,6 @@ type Info struct {
 
 // TypeOf returns the type of expression e, or nil if not found.
 // Precondition: the Types, Uses and Defs maps are populated.
-//
 func (info *Info) TypeOf(e syntax.Expr) Type {
 	if t, ok := info.Types[e]; ok {
 		return t.Type
@@ -305,7 +304,6 @@ func (info *Info) TypeOf(e syntax.Expr) Type {
 // it defines, not the type (*TypeName) it uses.
 //
 // Precondition: the Uses and Defs maps are populated.
-//
 func (info *Info) ObjectOf(id *syntax.Name) Object {
 	if obj := info.Defs[id]; obj != nil {
 		return obj
diff --git a/src/cmd/compile/internal/types2/builtins.go b/src/cmd/compile/internal/types2/builtins.go
index 428897c628..1bd2fdce06 100644
--- a/src/cmd/compile/internal/types2/builtins.go
+++ b/src/cmd/compile/internal/types2/builtins.go
@@ -16,7 +16,6 @@ import (
 // reports whether the call is valid, with *x holding the result;
 // but x.expr is not set. If the call is invalid, the result is
 // false, and *x is undefined.
-//
 func (check *Checker) builtin(x *operand, call *syntax.CallExpr, id builtinId) (_ bool) {
 	// append is the only built-in that permits the use of ... for the last argument
 	bin := predeclaredFuncs[id]
diff --git a/src/cmd/compile/internal/types2/expr.go b/src/cmd/compile/internal/types2/expr.go
index 23225c8d0d..1ecb4ff54b 100644
--- a/src/cmd/compile/internal/types2/expr.go
+++ b/src/cmd/compile/internal/types2/expr.go
@@ -1211,7 +1211,6 @@ const (
 // If hint != nil, it is the type of a composite literal element.
 // If allowGeneric is set, the operand type may be an uninstantiated
 // parameterized type or function value.
-//
 func (check *Checker) rawExpr(x *operand, e syntax.Expr, hint Type, allowGeneric bool) exprKind {
 	if check.conf.Trace {
 		check.trace(e.Pos(), "-- expr %s", e)
@@ -1259,7 +1258,6 @@ func (check *Checker) nonGeneric(x *operand) {
 
 // exprInternal contains the core of type checking of expressions.
 // Must only be called by rawExpr.
-//
 func (check *Checker) exprInternal(x *operand, e syntax.Expr, hint Type) exprKind {
 	// make sure x has a valid state in case of bailout
 	// (was issue 5770)
@@ -1764,7 +1762,6 @@ func (check *Checker) typeAssertion(e syntax.Expr, x *operand, T Type, typeSwitc
 // expr typechecks expression e and initializes x with the expression value.
 // The result must be a single value.
 // If an error occurred, x.mode is set to invalid.
-//
 func (check *Checker) expr(x *operand, e syntax.Expr) {
 	check.rawExpr(x, e, nil, false)
 	check.exclude(x, 1< (                     )
 // cgofunc     (                      of type )
-//
 func operandString(x *operand, qf Qualifier) string {
 	// special-case nil
 	if x.mode == nilvalue {
diff --git a/src/cmd/compile/internal/types2/selection.go b/src/cmd/compile/internal/types2/selection.go
index 8128aeee2e..ee63214407 100644
--- a/src/cmd/compile/internal/types2/selection.go
+++ b/src/cmd/compile/internal/types2/selection.go
@@ -36,7 +36,6 @@ const (
 //	p.x         FieldVal      T       x      int        {0}       true
 //	p.m         MethodVal     *T      m      func()     {1, 0}    true
 //	T.m         MethodExpr    T       m      func(T)    {1, 0}    false
-//
 type Selection struct {
 	kind     SelectionKind
 	recv     Type   // type of x
@@ -115,7 +114,6 @@ func (s *Selection) String() string { return SelectionString(s, nil) }
 //	"field (T) f int"
 //	"method (T) f(X) Y"
 //	"method expr (T) f(X) Y"
-//
 func SelectionString(s *Selection, qf Qualifier) string {
 	var k string
 	switch s.kind {
diff --git a/src/cmd/compile/internal/types2/sizes.go b/src/cmd/compile/internal/types2/sizes.go
index 6f981964be..7a34b6474c 100644
--- a/src/cmd/compile/internal/types2/sizes.go
+++ b/src/cmd/compile/internal/types2/sizes.go
@@ -39,7 +39,6 @@ type Sizes interface {
 //	  types are naturally aligned with a maximum alignment MaxAlign.
 //
 // *StdSizes implements Sizes.
-//
 type StdSizes struct {
 	WordSize int64 // word size in bytes - must be >= 4 (32bits)
 	MaxAlign int64 // maximum alignment in bytes - must be >= 1
diff --git a/src/cmd/compile/internal/types2/typestring.go b/src/cmd/compile/internal/types2/typestring.go
index ada0529929..e0f36fcec4 100644
--- a/src/cmd/compile/internal/types2/typestring.go
+++ b/src/cmd/compile/internal/types2/typestring.go
@@ -25,7 +25,6 @@ import (
 //
 // Using a nil Qualifier is equivalent to using (*Package).Path: the
 // object is qualified by the import path, e.g., "encoding/json.Marshal".
-//
 type Qualifier func(*Package) string
 
 // RelativeTo returns a Qualifier that fully qualifies members of
diff --git a/src/cmd/compile/internal/types2/typeterm.go b/src/cmd/compile/internal/types2/typeterm.go
index 1d7223f13c..3d82a37ab8 100644
--- a/src/cmd/compile/internal/types2/typeterm.go
+++ b/src/cmd/compile/internal/types2/typeterm.go
@@ -10,7 +10,6 @@ package types2
 //   𝓤:  &term{}          == 𝓤                      // set of all types (𝓤niverse)
 //   T:  &term{false, T}  == {T}                    // set of type T
 //  ~t:  &term{true, t}   == {t' | under(t') == t}  // set of types with underlying type t
-//
 type term struct {
 	tilde bool // valid if typ != nil
 	typ   Type
diff --git a/src/cmd/compile/internal/types2/typexpr.go b/src/cmd/compile/internal/types2/typexpr.go
index afbea06032..8b9976da79 100644
--- a/src/cmd/compile/internal/types2/typexpr.go
+++ b/src/cmd/compile/internal/types2/typexpr.go
@@ -17,7 +17,6 @@ import (
 // If an error occurred, x.mode is set to invalid.
 // For the meaning of def, see Checker.definedType, below.
 // If wantType is set, the identifier e is expected to denote a type.
-//
 func (check *Checker) ident(x *operand, e *syntax.Name, def *Named, wantType bool) {
 	x.mode = invalid
 	x.expr = e
@@ -181,7 +180,6 @@ func (check *Checker) validVarType(e syntax.Expr, typ Type) {
 // If def != nil, e is the type specification for the defined type def, declared
 // in a type declaration, and def.underlying will be set to the type of e before
 // any components of e are type-checked.
-//
 func (check *Checker) definedType(e syntax.Expr, def *Named) Type {
 	typ := check.typInternal(e, def)
 	assert(isTyped(typ))
@@ -216,7 +214,6 @@ func goTypeName(typ Type) string {
 
 // typInternal drives type checking of types.
 // Must only be called by definedType or genericType.
-//
 func (check *Checker) typInternal(e0 syntax.Expr, def *Named) (T Type) {
 	if check.conf.Trace {
 		check.trace(e0.Pos(), "-- type %s", e0)
diff --git a/src/cmd/compile/internal/types2/universe.go b/src/cmd/compile/internal/types2/universe.go
index 1deff3961f..9292924f23 100644
--- a/src/cmd/compile/internal/types2/universe.go
+++ b/src/cmd/compile/internal/types2/universe.go
@@ -245,7 +245,6 @@ func init() {
 // Objects with names containing blanks are internal and not entered into
 // a scope. Objects with exported names are inserted in the unsafe package
 // scope; other objects are inserted in the universe scope.
-//
 func def(obj Object) {
 	assert(obj.color() == black)
 	name := obj.Name()
diff --git a/src/cmd/compile/internal/walk/builtin.go b/src/cmd/compile/internal/walk/builtin.go
index 8fe231161a..7ec5494d99 100644
--- a/src/cmd/compile/internal/walk/builtin.go
+++ b/src/cmd/compile/internal/walk/builtin.go
@@ -133,7 +133,6 @@ func walkClose(n *ir.UnaryExpr, init *ir.Nodes) ir.Node {
 //	n;
 //
 // Also works if b is a string.
-//
 func walkCopy(n *ir.BinaryExpr, init *ir.Nodes, runtimecall bool) ir.Node {
 	if n.X.Type().Elem().HasPointers() {
 		ir.CurFunc.SetWBPos(n.Pos())
diff --git a/src/cmd/cover/cover_test.go b/src/cmd/cover/cover_test.go
index 86c95d15c5..8bd31514a0 100644
--- a/src/cmd/cover/cover_test.go
+++ b/src/cmd/cover/cover_test.go
@@ -165,7 +165,6 @@ func buildCover(t *testing.T) {
 // 	go build -o testcover
 // 	testcover -mode=count -var=CoverTest -o ./testdata/test_cover.go testdata/test_line.go
 //	go run ./testdata/main.go ./testdata/test.go
-//
 func TestCover(t *testing.T) {
 	t.Parallel()
 	testenv.MustHaveGoRun(t)
diff --git a/src/cmd/dist/buildruntime.go b/src/cmd/dist/buildruntime.go
index fdc1d25774..e66a9f009f 100644
--- a/src/cmd/dist/buildruntime.go
+++ b/src/cmd/dist/buildruntime.go
@@ -20,7 +20,6 @@ import (
 //	package sys
 //
 //	const StackGuardMultiplier = 
-//
 func mkzversion(dir, file string) {
 	var buf bytes.Buffer
 	fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
@@ -80,7 +79,6 @@ func mkbuildcfg(file string) {
 //	package objabi
 //
 //	const stackGuardMultiplierDefault = 
-//
 func mkobjabi(file string) {
 	var buf bytes.Buffer
 	fmt.Fprintf(&buf, "// Code generated by go tool dist; DO NOT EDIT.\n")
diff --git a/src/cmd/go/internal/cache/cache.go b/src/cmd/go/internal/cache/cache.go
index 93d7c25658..4ac2b818ff 100644
--- a/src/cmd/go/internal/cache/cache.go
+++ b/src/cmd/go/internal/cache/cache.go
@@ -47,7 +47,6 @@ type Cache struct {
 // to share a cache directory (for example, if the directory were stored
 // in a network file system). File locking is notoriously unreliable in
 // network file systems and may not suffice to protect the cache.
-//
 func Open(dir string) (*Cache, error) {
 	info, err := os.Stat(dir)
 	if err != nil {
diff --git a/src/cmd/go/internal/imports/build.go b/src/cmd/go/internal/imports/build.go
index ff6bea6777..10e90fc216 100644
--- a/src/cmd/go/internal/imports/build.go
+++ b/src/cmd/go/internal/imports/build.go
@@ -66,7 +66,6 @@ func isGoBuildComment(line []byte) bool {
 // the purpose of satisfying build tags, in order to estimate
 // (conservatively) whether a file could ever possibly be used
 // in any build.
-//
 func ShouldBuild(content []byte, tags map[string]bool) bool {
 	// Identify leading run of // comments and blank lines,
 	// which must be followed by a blank line.
diff --git a/src/cmd/go/internal/modload/load.go b/src/cmd/go/internal/modload/load.go
index d4847efb98..c170699535 100644
--- a/src/cmd/go/internal/modload/load.go
+++ b/src/cmd/go/internal/modload/load.go
@@ -2151,7 +2151,6 @@ func (ld *loader) buildStacks() {
 //		other2 tested by
 //		other2.test imports
 //		pkg
-//
 func (pkg *loadPkg) stackText() string {
 	var stack []*loadPkg
 	for p := pkg; p != nil; p = p.stack {
diff --git a/src/cmd/go/internal/vet/vetflag.go b/src/cmd/go/internal/vet/vetflag.go
index 3551a5997c..8a55e9cca0 100644
--- a/src/cmd/go/internal/vet/vetflag.go
+++ b/src/cmd/go/internal/vet/vetflag.go
@@ -35,7 +35,6 @@ import (
 // implementation. It is also used by tests.
 //
 // The default behavior (vetTool=="") runs 'go tool vet'.
-//
 var vetTool string // -vettool
 
 func init() {
diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
index 6d6837aa8a..4252209f10 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
@@ -1948,7 +1948,6 @@ func mayberemovefile(s string) {
 //
 //	fmtcmd replaces the name of the current directory with dot (.)
 //	but only when it is at the beginning of a space-separated token.
-//
 func (b *Builder) fmtcmd(dir string, format string, args ...any) string {
 	cmd := fmt.Sprintf(format, args...)
 	if dir != "" && dir != "/" {
@@ -2005,7 +2004,6 @@ func (b *Builder) Showcmd(dir string, format string, args ...any) {
 //
 // If a is not nil and a.output is not nil, showOutput appends to that slice instead of
 // printing to b.Print.
-//
 func (b *Builder) showOutput(a *Action, dir, desc, out string) {
 	prefix := "# " + desc
 	suffix := "\n" + out
diff --git a/src/cmd/go/script_test.go b/src/cmd/go/script_test.go
index 76a2b85f96..76c542f32a 100644
--- a/src/cmd/go/script_test.go
+++ b/src/cmd/go/script_test.go
@@ -490,7 +490,6 @@ func isCaseSensitive(t *testing.T) bool {
 // Keep list and the implementations below sorted by name.
 //
 // NOTE: If you make changes here, update testdata/script/README too!
-//
 var scriptCmds = map[string]func(*testScript, simpleStatus, []string){
 	"addcrlf": (*testScript).cmdAddcrlf,
 	"cc":      (*testScript).cmdCc,
diff --git a/src/cmd/internal/obj/riscv/obj.go b/src/cmd/internal/obj/riscv/obj.go
index 2c00c87aa2..956d69ee2e 100644
--- a/src/cmd/internal/obj/riscv/obj.go
+++ b/src/cmd/internal/obj/riscv/obj.go
@@ -324,7 +324,6 @@ func setPCs(p *obj.Prog, pc int64) int64 {
 //
 // A nicer version of this diagram can be found on slide 21 of the presentation
 // attached to https://golang.org/issue/16922#issuecomment-243748180.
-//
 func stackOffset(a *obj.Addr, stacksize int64) {
 	switch a.Name {
 	case obj.NAME_AUTO:
diff --git a/src/cmd/internal/obj/x86/asm6.go b/src/cmd/internal/obj/x86/asm6.go
index a508e484e4..64a0bc96b7 100644
--- a/src/cmd/internal/obj/x86/asm6.go
+++ b/src/cmd/internal/obj/x86/asm6.go
@@ -59,7 +59,6 @@ var (
 // is very slight but negative, so the alignment is disabled by
 // setting MaxLoopPad = 0. The code is here for reference and
 // for future experiments.
-//
 const (
 	loopAlign  = 16
 	maxLoopPad = 0
@@ -4167,7 +4166,6 @@ func (ab *AsmBuf) asmvex(ctxt *obj.Link, rm, v, r *obj.Addr, vex, opcode uint8)
 //	REG_X15 => 15
 //	REG_R9  => 9
 //	REG_AX  => 0
-//
 func regIndex(r int16) int {
 	lower3bits := reg[r]
 	high4bit := regrex[r] & Rxr << 1
diff --git a/src/cmd/link/internal/ld/dwarf_test.go b/src/cmd/link/internal/ld/dwarf_test.go
index 2f9bf25d10..1f7b37f892 100644
--- a/src/cmd/link/internal/ld/dwarf_test.go
+++ b/src/cmd/link/internal/ld/dwarf_test.go
@@ -1469,7 +1469,6 @@ func TestIssue42484(t *testing.T) {
 //     i1:0:1 f1:1:1 ~r0:2:2 ~r1:3:2
 //
 // where each chunk above is of the form NAME:ORDER:INOUTCLASSIFICATION
-//
 func processParams(die *dwarf.Entry, ex *dwtest.Examiner) string {
 	// Values in the returned map are of the form :
 	// where order is the order within the child DIE list of the
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
index d102bb35ce..2cbec5d06f 100644
--- a/src/cmd/link/internal/loader/loader.go
+++ b/src/cmd/link/internal/loader/loader.go
@@ -2579,7 +2579,6 @@ type ErrorReporter struct {
 //
 // Logging an error means that on exit cmd/link will delete any
 // output file and return a non-zero error code.
-//
 func (reporter *ErrorReporter) Errorf(s Sym, format string, args ...interface{}) {
 	if s != 0 && reporter.ldr.SymName(s) != "" {
 		// Note: Replace is needed here because symbol names might have % in them,
diff --git a/src/container/ring/ring.go b/src/container/ring/ring.go
index ce15032543..268670bc85 100644
--- a/src/container/ring/ring.go
+++ b/src/container/ring/ring.go
@@ -10,7 +10,6 @@ package ring
 // serves as reference to the entire ring. Empty rings are represented
 // as nil Ring pointers. The zero value for a Ring is a one-element
 // ring with a nil Value.
-//
 type Ring struct {
 	next, prev *Ring
 	Value      any // for use by client; untouched by this library
@@ -40,7 +39,6 @@ func (r *Ring) Prev() *Ring {
 
 // Move moves n % r.Len() elements backward (n < 0) or forward (n >= 0)
 // in the ring and returns that ring element. r must not be empty.
-//
 func (r *Ring) Move(n int) *Ring {
 	if r.next == nil {
 		return r.init()
@@ -89,7 +87,6 @@ func New(n int) *Ring {
 // them creates a single ring with the elements of s inserted
 // after r. The result points to the element following the
 // last element of s after insertion.
-//
 func (r *Ring) Link(s *Ring) *Ring {
 	n := r.Next()
 	if s != nil {
@@ -107,7 +104,6 @@ func (r *Ring) Link(s *Ring) *Ring {
 // Unlink removes n % r.Len() elements from the ring r, starting
 // at r.Next(). If n % r.Len() == 0, r remains unchanged.
 // The result is the removed subring. r must not be empty.
-//
 func (r *Ring) Unlink(n int) *Ring {
 	if n <= 0 {
 		return nil
@@ -117,7 +113,6 @@ func (r *Ring) Unlink(n int) *Ring {
 
 // Len computes the number of elements in ring r.
 // It executes in time proportional to the number of elements.
-//
 func (r *Ring) Len() int {
 	n := 0
 	if r != nil {
diff --git a/src/crypto/elliptic/internal/fiat/p224_fiat64.go b/src/crypto/elliptic/internal/fiat/p224_fiat64.go
index 4ece3e9220..588e9ea620 100644
--- a/src/crypto/elliptic/internal/fiat/p224_fiat64.go
+++ b/src/crypto/elliptic/internal/fiat/p224_fiat64.go
@@ -78,7 +78,6 @@ func p224CmovznzU64(out1 *uint64, arg1 p224Uint1, arg2 uint64, arg3 uint64) {
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p224Mul(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainFieldElement, arg2 *p224MontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
@@ -383,7 +382,6 @@ func p224Mul(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
 //   0 ≤ eval out1 < m
-//
 func p224Square(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
@@ -689,7 +687,6 @@ func p224Square(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDoma
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p224Add(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainFieldElement, arg2 *p224MontgomeryDomainFieldElement) {
 	var x1 uint64
 	var x2 uint64
@@ -739,7 +736,6 @@ func p224Add(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p224Sub(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainFieldElement, arg2 *p224MontgomeryDomainFieldElement) {
 	var x1 uint64
 	var x2 uint64
@@ -777,7 +773,6 @@ func p224Sub(out1 *p224MontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = 1 mod m
 //   0 ≤ eval out1 < m
-//
 func p224SetOne(out1 *p224MontgomeryDomainFieldElement) {
 	out1[0] = 0xffffffff00000000
 	out1[1] = 0xffffffffffffffff
@@ -792,7 +787,6 @@ func p224SetOne(out1 *p224MontgomeryDomainFieldElement) {
 // Postconditions:
 //   eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^4) mod m
 //   0 ≤ eval out1 < m
-//
 func p224FromMontgomery(out1 *p224NonMontgomeryDomainFieldElement, arg1 *p224MontgomeryDomainFieldElement) {
 	x1 := arg1[0]
 	var x2 uint64
@@ -970,7 +964,6 @@ func p224FromMontgomery(out1 *p224NonMontgomeryDomainFieldElement, arg1 *p224Mon
 // Postconditions:
 //   eval (from_montgomery out1) mod m = eval arg1 mod m
 //   0 ≤ eval out1 < m
-//
 func p224ToMontgomery(out1 *p224MontgomeryDomainFieldElement, arg1 *p224NonMontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
diff --git a/src/crypto/elliptic/internal/fiat/p384_fiat64.go b/src/crypto/elliptic/internal/fiat/p384_fiat64.go
index 493bed47e1..dc48cd38fb 100644
--- a/src/crypto/elliptic/internal/fiat/p384_fiat64.go
+++ b/src/crypto/elliptic/internal/fiat/p384_fiat64.go
@@ -78,7 +78,6 @@ func p384CmovznzU64(out1 *uint64, arg1 p384Uint1, arg2 uint64, arg3 uint64) {
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p384Mul(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainFieldElement, arg2 *p384MontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
@@ -783,7 +782,6 @@ func p384Mul(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
 //   0 ≤ eval out1 < m
-//
 func p384Square(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
@@ -1489,7 +1487,6 @@ func p384Square(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDoma
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p384Add(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainFieldElement, arg2 *p384MontgomeryDomainFieldElement) {
 	var x1 uint64
 	var x2 uint64
@@ -1557,7 +1554,6 @@ func p384Add(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p384Sub(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainFieldElement, arg2 *p384MontgomeryDomainFieldElement) {
 	var x1 uint64
 	var x2 uint64
@@ -1609,7 +1605,6 @@ func p384Sub(out1 *p384MontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = 1 mod m
 //   0 ≤ eval out1 < m
-//
 func p384SetOne(out1 *p384MontgomeryDomainFieldElement) {
 	out1[0] = 0xffffffff00000001
 	out1[1] = 0xffffffff
@@ -1626,7 +1621,6 @@ func p384SetOne(out1 *p384MontgomeryDomainFieldElement) {
 // Postconditions:
 //   eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^6) mod m
 //   0 ≤ eval out1 < m
-//
 func p384FromMontgomery(out1 *p384NonMontgomeryDomainFieldElement, arg1 *p384MontgomeryDomainFieldElement) {
 	x1 := arg1[0]
 	var x2 uint64
@@ -2096,7 +2090,6 @@ func p384FromMontgomery(out1 *p384NonMontgomeryDomainFieldElement, arg1 *p384Mon
 // Postconditions:
 //   eval (from_montgomery out1) mod m = eval arg1 mod m
 //   0 ≤ eval out1 < m
-//
 func p384ToMontgomery(out1 *p384MontgomeryDomainFieldElement, arg1 *p384NonMontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
diff --git a/src/crypto/elliptic/internal/fiat/p521_fiat64.go b/src/crypto/elliptic/internal/fiat/p521_fiat64.go
index 9f4f290f4c..ea92c948fd 100644
--- a/src/crypto/elliptic/internal/fiat/p521_fiat64.go
+++ b/src/crypto/elliptic/internal/fiat/p521_fiat64.go
@@ -78,7 +78,6 @@ func p521CmovznzU64(out1 *uint64, arg1 p521Uint1, arg2 uint64, arg3 uint64) {
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p521Mul(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement, arg2 *p521MontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
@@ -1599,7 +1598,6 @@ func p521Mul(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
 //   0 ≤ eval out1 < m
-//
 func p521Square(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement) {
 	x1 := arg1[1]
 	x2 := arg1[2]
@@ -3121,7 +3119,6 @@ func p521Square(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDoma
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p521Add(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement, arg2 *p521MontgomeryDomainFieldElement) {
 	var x1 uint64
 	var x2 uint64
@@ -3216,7 +3213,6 @@ func p521Add(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
 //   0 ≤ eval out1 < m
-//
 func p521Sub(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement, arg2 *p521MontgomeryDomainFieldElement) {
 	var x1 uint64
 	var x2 uint64
@@ -3289,7 +3285,6 @@ func p521Sub(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainF
 // Postconditions:
 //   eval (from_montgomery out1) mod m = 1 mod m
 //   0 ≤ eval out1 < m
-//
 func p521SetOne(out1 *p521MontgomeryDomainFieldElement) {
 	out1[0] = 0x80000000000000
 	out1[1] = uint64(0x0)
@@ -3309,7 +3304,6 @@ func p521SetOne(out1 *p521MontgomeryDomainFieldElement) {
 // Postconditions:
 //   eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^9) mod m
 //   0 ≤ eval out1 < m
-//
 func p521FromMontgomery(out1 *p521NonMontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement) {
 	x1 := arg1[0]
 	var x2 uint64
@@ -4263,7 +4257,6 @@ func p521FromMontgomery(out1 *p521NonMontgomeryDomainFieldElement, arg1 *p521Mon
 // Postconditions:
 //   eval (from_montgomery out1) mod m = eval arg1 mod m
 //   0 ≤ eval out1 < m
-//
 func p521ToMontgomery(out1 *p521MontgomeryDomainFieldElement, arg1 *p521NonMontgomeryDomainFieldElement) {
 	var x1 uint64
 	var x2 uint64
diff --git a/src/crypto/elliptic/p256_ppc64le.go b/src/crypto/elliptic/p256_ppc64le.go
index e9a6a067a2..dda1157564 100644
--- a/src/crypto/elliptic/p256_ppc64le.go
+++ b/src/crypto/elliptic/p256_ppc64le.go
@@ -49,7 +49,6 @@ func (curve p256CurveFast) Params() *CurveParams {
 func p256MulAsm(res, in1, in2 []byte)
 
 // Montgomery square modulo P256
-//
 func p256Sqr(res, in []byte) {
 	p256MulAsm(res, in, in)
 }
@@ -98,7 +97,6 @@ func p256PointDoubleAsm(res, in *p256Point)
 // The result should be a slice in LE order, but the slice
 // from big.Bytes is in BE order.
 // TODO: For big endian implementation, do not reverse bytes.
-//
 func fromBig(big *big.Int) []byte {
 	// This could be done a lot more efficiently...
 	res := big.Bytes()
diff --git a/src/crypto/tls/cipher_suites.go b/src/crypto/tls/cipher_suites.go
index d164991eec..408a820d13 100644
--- a/src/crypto/tls/cipher_suites.go
+++ b/src/crypto/tls/cipher_suites.go
@@ -267,7 +267,6 @@ var cipherSuitesTLS13 = []*cipherSuiteTLS13{ // TODO: replace with a map.
 //
 //       The relative order of ECDSA and RSA cipher suites doesn't matter,
 //       as they depend on the certificate. Pick one to get a stable order.
-//
 var cipherSuitesPreferenceOrder = []uint16{
 	// AEADs w/ ECDHE
 	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
diff --git a/src/database/sql/fakedb_test.go b/src/database/sql/fakedb_test.go
index c3b9d1ce46..d9b40ff53f 100644
--- a/src/database/sql/fakedb_test.go
+++ b/src/database/sql/fakedb_test.go
@@ -1174,7 +1174,6 @@ func (rc *rowsCursor) NextResultSet() error {
 // This could be surprising behavior to retroactively apply to
 // driver.String now that Go1 is out, but this is convenient for
 // our TestPointerParamsAndScans.
-//
 type fakeDriverString struct{}
 
 func (fakeDriverString) ConvertValue(v any) (driver.Value, error) {
diff --git a/src/database/sql/sql.go b/src/database/sql/sql.go
index d55cee1210..9a879464d8 100644
--- a/src/database/sql/sql.go
+++ b/src/database/sql/sql.go
@@ -184,7 +184,6 @@ type RawBytes []byte
 //  } else {
 //     // NULL value
 //  }
-//
 type NullString struct {
 	String string
 	Valid  bool // Valid is true if String is not NULL
diff --git a/src/debug/dwarf/entry.go b/src/debug/dwarf/entry.go
index 98c17dc08a..9f3f4971e1 100644
--- a/src/debug/dwarf/entry.go
+++ b/src/debug/dwarf/entry.go
@@ -381,7 +381,6 @@ func (i Class) GoString() string {
 // A common idiom is to merge the check for nil return with
 // the check that the value has the expected dynamic type, as in:
 //	v, ok := e.Val(AttrSibling).(int64)
-//
 func (e *Entry) Val(a Attr) any {
 	if f := e.AttrField(a); f != nil {
 		return f.Val
diff --git a/src/encoding/ascii85/ascii85.go b/src/encoding/ascii85/ascii85.go
index f1f7af863c..1f1fb00ffa 100644
--- a/src/encoding/ascii85/ascii85.go
+++ b/src/encoding/ascii85/ascii85.go
@@ -183,7 +183,6 @@ func (e CorruptInputError) Error() string {
 // than wait for the completion of another 32-bit block.
 //
 // NewDecoder wraps an io.Reader interface around Decode.
-//
 func Decode(dst, src []byte, flush bool) (ndst, nsrc int, err error) {
 	var v uint32
 	var nb int
diff --git a/src/encoding/binary/varint.go b/src/encoding/binary/varint.go
index 8fe20b5c45..bfb4dd193e 100644
--- a/src/encoding/binary/varint.go
+++ b/src/encoding/binary/varint.go
@@ -56,7 +56,6 @@ func PutUvarint(buf []byte, x uint64) int {
 // 	n == 0: buf too small
 // 	n  < 0: value larger than 64 bits (overflow)
 // 	        and -n is the number of bytes read
-//
 func Uvarint(buf []byte) (uint64, int) {
 	var x uint64
 	var s uint
@@ -95,7 +94,6 @@ func PutVarint(buf []byte, x int64) int {
 // 	n == 0: buf too small
 // 	n  < 0: value larger than 64 bits (overflow)
 // 	        and -n is the number of bytes read
-//
 func Varint(buf []byte) (int64, int) {
 	ux, n := Uvarint(buf) // ok to continue in presence of error
 	x := int64(ux >> 1)
diff --git a/src/encoding/json/decode.go b/src/encoding/json/decode.go
index 555df0b7e8..ce9675a62f 100644
--- a/src/encoding/json/decode.go
+++ b/src/encoding/json/decode.go
@@ -92,7 +92,6 @@ import (
 // invalid UTF-16 surrogate pairs are not treated as an error.
 // Instead, they are replaced by the Unicode replacement
 // character U+FFFD.
-//
 func Unmarshal(data []byte, v any) error {
 	// Check for well-formedness.
 	// Avoids filling out half a data structure
diff --git a/src/encoding/json/encode.go b/src/encoding/json/encode.go
index 571ac094e2..fc865386ed 100644
--- a/src/encoding/json/encode.go
+++ b/src/encoding/json/encode.go
@@ -154,7 +154,6 @@ import (
 // JSON cannot represent cyclic data structures and Marshal does not
 // handle them. Passing cyclic structures to Marshal will result in
 // an error.
-//
 func Marshal(v any) ([]byte, error) {
 	e := newEncodeState()
 
diff --git a/src/encoding/json/stream.go b/src/encoding/json/stream.go
index 6362170d5d..b278ee4013 100644
--- a/src/encoding/json/stream.go
+++ b/src/encoding/json/stream.go
@@ -287,7 +287,6 @@ var _ Unmarshaler = (*RawMessage)(nil)
 //	Number, for JSON numbers
 //	string, for JSON string literals
 //	nil, for JSON null
-//
 type Token any
 
 const (
diff --git a/src/go/ast/ast.go b/src/go/ast/ast.go
index a74a827c8f..61855359f8 100644
--- a/src/go/ast/ast.go
+++ b/src/go/ast/ast.go
@@ -72,7 +72,6 @@ func (c *Comment) End() token.Pos { return token.Pos(int(c.Slash) + len(c.Text))
 
 // A CommentGroup represents a sequence of comments
 // with no other tokens and no empty lines between.
-//
 type CommentGroup struct {
 	List []*Comment // len(List) > 0
 }
@@ -273,7 +272,6 @@ func (f *FieldList) NumFields() int {
 
 // An expression is represented by a tree consisting of one
 // or more of the following concrete expression nodes.
-//
 type (
 	// A BadExpr node is a placeholder for an expression containing
 	// syntax errors for which a correct expression node cannot be
@@ -417,7 +415,6 @@ type (
 
 // The direction of a channel type is indicated by a bit
 // mask including one or both of the following constants.
-//
 type ChanDir int
 
 const (
@@ -428,7 +425,6 @@ const (
 // A type is represented by a tree consisting of one
 // or more of the following type-specific expression
 // nodes.
-//
 type (
 	// An ArrayType node represents an array or slice type.
 	ArrayType struct {
@@ -549,7 +545,6 @@ func (x *ChanType) End() token.Pos      { return x.Value.End() }
 
 // exprNode() ensures that only expression/type nodes can be
 // assigned to an Expr.
-//
 func (*BadExpr) exprNode()        {}
 func (*Ident) exprNode()          {}
 func (*Ellipsis) exprNode()       {}
@@ -580,15 +575,12 @@ func (*ChanType) exprNode()      {}
 
 // NewIdent creates a new Ident without position.
 // Useful for ASTs generated by code other than the Go parser.
-//
 func NewIdent(name string) *Ident { return &Ident{token.NoPos, name, nil} }
 
 // IsExported reports whether name starts with an upper-case letter.
-//
 func IsExported(name string) bool { return token.IsExported(name) }
 
 // IsExported reports whether id starts with an upper-case letter.
-//
 func (id *Ident) IsExported() bool { return token.IsExported(id.Name) }
 
 func (id *Ident) String() string {
@@ -603,7 +595,6 @@ func (id *Ident) String() string {
 
 // A statement is represented by a tree consisting of one
 // or more of the following concrete statement nodes.
-//
 type (
 	// A BadStmt node is a placeholder for statements containing
 	// syntax errors for which no correct statement nodes can be
@@ -854,7 +845,6 @@ func (s *RangeStmt) End() token.Pos  { return s.Body.End() }
 
 // stmtNode() ensures that only statement nodes can be
 // assigned to a Stmt.
-//
 func (*BadStmt) stmtNode()        {}
 func (*DeclStmt) stmtNode()       {}
 func (*EmptyStmt) stmtNode()      {}
@@ -882,7 +872,6 @@ func (*RangeStmt) stmtNode()      {}
 
 // A Spec node represents a single (non-parenthesized) import,
 // constant, type, or variable declaration.
-//
 type (
 	// The Spec type stands for any of *ImportSpec, *ValueSpec, and *TypeSpec.
 	Spec interface {
@@ -952,13 +941,11 @@ func (s *TypeSpec) End() token.Pos { return s.Type.End() }
 
 // specNode() ensures that only spec nodes can be
 // assigned to a Spec.
-//
 func (*ImportSpec) specNode() {}
 func (*ValueSpec) specNode()  {}
 func (*TypeSpec) specNode()   {}
 
 // A declaration is represented by one of the following declaration nodes.
-//
 type (
 	// A BadDecl node is a placeholder for a declaration containing
 	// syntax errors for which a correct declaration node cannot be
@@ -1020,7 +1007,6 @@ func (d *FuncDecl) End() token.Pos {
 
 // declNode() ensures that only declaration nodes can be
 // assigned to a Decl.
-//
 func (*BadDecl) declNode()  {}
 func (*GenDecl) declNode()  {}
 func (*FuncDecl) declNode() {}
@@ -1046,7 +1032,6 @@ func (*FuncDecl) declNode() {}
 // interpretation of the syntax tree by the manipulating program: Except for Doc
 // and Comment comments directly associated with nodes, the remaining comments
 // are "free-floating" (see also issues #18593, #20744).
-//
 type File struct {
 	Doc        *CommentGroup   // associated documentation; or nil
 	Package    token.Pos       // position of "package" keyword
@@ -1068,7 +1053,6 @@ func (f *File) End() token.Pos {
 
 // A Package node represents a set of source files
 // collectively building a Go package.
-//
 type Package struct {
 	Name    string             // package name
 	Scope   *Scope             // package scope across all files
diff --git a/src/go/ast/commentmap.go b/src/go/ast/commentmap.go
index 5161ea70b7..9f81493f64 100644
--- a/src/go/ast/commentmap.go
+++ b/src/go/ast/commentmap.go
@@ -18,7 +18,6 @@ func (a byPos) Less(i, j int) bool { return a[i].Pos() < a[j].Pos() }
 func (a byPos) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
 
 // sortComments sorts the list of comment groups in source order.
-//
 func sortComments(list []*CommentGroup) {
 	// TODO(gri): Does it make sense to check for sorted-ness
 	//            first (because we know that sorted-ness is
@@ -31,7 +30,6 @@ func sortComments(list []*CommentGroup) {
 // A CommentMap maps an AST node to a list of comment groups
 // associated with it. See NewCommentMap for a description of
 // the association.
-//
 type CommentMap map[Node][]*CommentGroup
 
 func (cmap CommentMap) addComment(n Node, c *CommentGroup) {
@@ -54,7 +52,6 @@ func (a byInterval) Less(i, j int) bool {
 func (a byInterval) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
 
 // nodeList returns the list of nodes of the AST n in source order.
-//
 func nodeList(n Node) []Node {
 	var list []Node
 	Inspect(n, func(n Node) bool {
@@ -75,7 +72,6 @@ func nodeList(n Node) []Node {
 }
 
 // A commentListReader helps iterating through a list of comment groups.
-//
 type commentListReader struct {
 	fset     *token.FileSet
 	list     []*CommentGroup
@@ -99,12 +95,10 @@ func (r *commentListReader) next() {
 
 // A nodeStack keeps track of nested nodes.
 // A node lower on the stack lexically contains the nodes higher on the stack.
-//
 type nodeStack []Node
 
 // push pops all nodes that appear lexically before n
 // and then pushes n on the stack.
-//
 func (s *nodeStack) push(n Node) {
 	s.pop(n.Pos())
 	*s = append((*s), n)
@@ -113,7 +107,6 @@ func (s *nodeStack) push(n Node) {
 // pop pops all nodes that appear lexically before pos
 // (i.e., whose lexical extent has ended before or at pos).
 // It returns the last node popped.
-//
 func (s *nodeStack) pop(pos token.Pos) (top Node) {
 	i := len(*s)
 	for i > 0 && (*s)[i-1].End() <= pos {
@@ -139,7 +132,6 @@ func (s *nodeStack) pop(pos token.Pos) (top Node) {
 // node possible: For instance, if the comment is a line comment
 // trailing an assignment, the comment is associated with the entire
 // assignment rather than just the last operand in the assignment.
-//
 func NewCommentMap(fset *token.FileSet, node Node, comments []*CommentGroup) CommentMap {
 	if len(comments) == 0 {
 		return nil // no comments to map
@@ -242,7 +234,6 @@ func NewCommentMap(fset *token.FileSet, node Node, comments []*CommentGroup) Com
 // Update replaces an old node in the comment map with the new node
 // and returns the new node. Comments that were associated with the
 // old node are associated with the new node.
-//
 func (cmap CommentMap) Update(old, new Node) Node {
 	if list := cmap[old]; len(list) > 0 {
 		delete(cmap, old)
@@ -254,7 +245,6 @@ func (cmap CommentMap) Update(old, new Node) Node {
 // Filter returns a new comment map consisting of only those
 // entries of cmap for which a corresponding node exists in
 // the AST specified by node.
-//
 func (cmap CommentMap) Filter(node Node) CommentMap {
 	umap := make(CommentMap)
 	Inspect(node, func(n Node) bool {
@@ -268,7 +258,6 @@ func (cmap CommentMap) Filter(node Node) CommentMap {
 
 // Comments returns the list of comment groups in the comment map.
 // The result is sorted in source order.
-//
 func (cmap CommentMap) Comments() []*CommentGroup {
 	list := make([]*CommentGroup, 0, len(cmap))
 	for _, e := range cmap {
diff --git a/src/go/ast/commentmap_test.go b/src/go/ast/commentmap_test.go
index 38c62b01ab..281467c41f 100644
--- a/src/go/ast/commentmap_test.go
+++ b/src/go/ast/commentmap_test.go
@@ -73,7 +73,6 @@ func f3() {
 
 // res maps a key of the form "line number: node type"
 // to the associated comments' text.
-//
 var res = map[string]string{
 	" 5: *ast.File":       "the very first comment\npackage p\n",
 	" 5: *ast.Ident":      " the name is p\n",
diff --git a/src/go/ast/filter.go b/src/go/ast/filter.go
index c398e6e603..2fc73c4b99 100644
--- a/src/go/ast/filter.go
+++ b/src/go/ast/filter.go
@@ -24,7 +24,6 @@ func exportFilter(name string) bool {
 // stripped. The File.Comments list is not changed.
 //
 // FileExports reports whether there are exported declarations.
-//
 func FileExports(src *File) bool {
 	return filterFile(src, exportFilter, true)
 }
@@ -35,7 +34,6 @@ func FileExports(src *File) bool {
 //
 // PackageExports reports whether there are exported declarations;
 // it returns false otherwise.
-//
 func PackageExports(pkg *Package) bool {
 	return filterPackage(pkg, exportFilter, true)
 }
@@ -59,7 +57,6 @@ func filterIdentList(list []*Ident, f Filter) []*Ident {
 // fieldName assumes that x is the type of an anonymous field and
 // returns the corresponding field name. If x is not an acceptable
 // anonymous field, the result is nil.
-//
 func fieldName(x Expr) *Ident {
 	switch t := x.(type) {
 	case *Ident:
@@ -229,7 +226,6 @@ func filterSpecList(list []Spec, f Filter, export bool) []Spec {
 //
 // FilterDecl reports whether there are any declared names left after
 // filtering.
-//
 func FilterDecl(decl Decl, f Filter) bool {
 	return filterDecl(decl, f, false)
 }
@@ -254,7 +250,6 @@ func filterDecl(decl Decl, f Filter, export bool) bool {
 //
 // FilterFile reports whether there are any top-level declarations
 // left after filtering.
-//
 func FilterFile(src *File, f Filter) bool {
 	return filterFile(src, f, false)
 }
@@ -281,7 +276,6 @@ func filterFile(src *File, f Filter, export bool) bool {
 //
 // FilterPackage reports whether there are any top-level declarations
 // left after filtering.
-//
 func FilterPackage(pkg *Package, f Filter) bool {
 	return filterPackage(pkg, f, false)
 }
@@ -315,7 +309,6 @@ const (
 // nameOf returns the function (foo) or method name (foo.bar) for
 // the given function declaration. If the AST is incorrect for the
 // receiver, it assumes a function instead.
-//
 func nameOf(f *FuncDecl) string {
 	if r := f.Recv; r != nil && len(r.List) == 1 {
 		// looks like a correct receiver declaration
@@ -335,12 +328,10 @@ func nameOf(f *FuncDecl) string {
 
 // separator is an empty //-style comment that is interspersed between
 // different comment groups when they are concatenated into a single group
-//
 var separator = &Comment{token.NoPos, "//"}
 
 // MergePackageFiles creates a file AST by merging the ASTs of the
 // files belonging to a package. The mode flags control merging behavior.
-//
 func MergePackageFiles(pkg *Package, mode MergeMode) *File {
 	// Count the number of package docs, comments and declarations across
 	// all package files. Also, compute sorted list of filenames, so that
diff --git a/src/go/ast/filter_test.go b/src/go/ast/filter_test.go
index 9fd86cb467..86f396bb8b 100644
--- a/src/go/ast/filter_test.go
+++ b/src/go/ast/filter_test.go
@@ -38,7 +38,6 @@ func (x *t2) f2() {}
 // of one without, and it favors duplicate entries appearing
 // later in the source over ones appearing earlier. This is why
 // (*t2).f2 is kept and t2.f2 is eliminated in this test case.
-//
 const golden = `package p
 
 type t1 struct{}
diff --git a/src/go/ast/resolve.go b/src/go/ast/resolve.go
index 126a27b18c..970aa88ad6 100644
--- a/src/go/ast/resolve.go
+++ b/src/go/ast/resolve.go
@@ -70,7 +70,6 @@ type Importer func(imports map[string]*Object, path string) (pkg *Object, err er
 // belong to different packages, one package name is selected and files with
 // different package names are reported and then ignored.
 // The result is a package node and a scanner.ErrorList if there were errors.
-//
 func NewPackage(fset *token.FileSet, files map[string]*File, importer Importer, universe *Scope) (*Package, error) {
 	var p pkgBuilder
 	p.fset = fset
diff --git a/src/go/ast/scope.go b/src/go/ast/scope.go
index d24a5f0e00..02691f8e54 100644
--- a/src/go/ast/scope.go
+++ b/src/go/ast/scope.go
@@ -15,7 +15,6 @@ import (
 // A Scope maintains the set of named language entities declared
 // in the scope and a link to the immediately surrounding (outer)
 // scope.
-//
 type Scope struct {
 	Outer   *Scope
 	Objects map[string]*Object
@@ -30,7 +29,6 @@ func NewScope(outer *Scope) *Scope {
 // Lookup returns the object with the given name if it is
 // found in scope s, otherwise it returns nil. Outer scopes
 // are ignored.
-//
 func (s *Scope) Lookup(name string) *Object {
 	return s.Objects[name]
 }
@@ -39,7 +37,6 @@ func (s *Scope) Lookup(name string) *Object {
 // If the scope already contains an object alt with the same name,
 // Insert leaves the scope unchanged and returns alt. Otherwise
 // it inserts obj and returns nil.
-//
 func (s *Scope) Insert(obj *Object) (alt *Object) {
 	if alt = s.Objects[obj.Name]; alt == nil {
 		s.Objects[obj.Name] = obj
@@ -72,7 +69,6 @@ func (s *Scope) String() string {
 //	Kind    Data type         Data value
 //	Pkg     *Scope            package scope
 //	Con     int               iota for the respective declaration
-//
 type Object struct {
 	Kind ObjKind
 	Name string // declared name
diff --git a/src/go/ast/walk.go b/src/go/ast/walk.go
index 16b15f11f2..a293c99a10 100644
--- a/src/go/ast/walk.go
+++ b/src/go/ast/walk.go
@@ -47,7 +47,6 @@ func walkDeclList(v Visitor, list []Decl) {
 // v.Visit(node) is not nil, Walk is invoked recursively with visitor
 // w for each of the non-nil children of node, followed by a call of
 // w.Visit(nil).
-//
 func Walk(v Visitor, node Node) {
 	if v = v.Visit(node); v == nil {
 		return
@@ -394,7 +393,6 @@ func (f inspector) Visit(node Node) Visitor {
 // f(node); node must not be nil. If f returns true, Inspect invokes f
 // recursively for each of the non-nil children of node, followed by a
 // call of f(nil).
-//
 func Inspect(node Node, f func(Node) bool) {
 	Walk(inspector(f), node)
 }
diff --git a/src/go/build/build.go b/src/go/build/build.go
index cc2585b677..2666b8acb7 100644
--- a/src/go/build/build.go
+++ b/src/go/build/build.go
@@ -534,7 +534,6 @@ func nameExt(name string) string {
 //
 // If an error occurs, Import returns a non-nil error and a non-nil
 // *Package containing partial information.
-//
 func (ctxt *Context) Import(path string, srcDir string, mode ImportMode) (*Package, error) {
 	p := &Package{
 		ImportPath: path,
@@ -1813,7 +1812,6 @@ func safeCgoName(s string) bool {
 // Would be parsed as:
 //
 //     []string{"a", "b:c d", "ef", `g"`}
-//
 func splitQuoted(s string) (r []string, err error) {
 	var args []string
 	arg := make([]rune, len(s))
diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go
index 5794e3d25e..c4fb2fe0b4 100644
--- a/src/go/build/deps_test.go
+++ b/src/go/build/deps_test.go
@@ -66,7 +66,6 @@ import (
 //
 // All-caps names are pseudo-names for specific points
 // in the dependency lattice.
-//
 var depsRules = `
 	# No dependencies allowed for any of these packages.
 	NONE
diff --git a/src/go/constant/value.go b/src/go/constant/value.go
index 544801bd70..3daa4c2860 100644
--- a/src/go/constant/value.go
+++ b/src/go/constant/value.go
@@ -578,7 +578,6 @@ func Float64Val(x Value) (float64, bool) {
 //    Int                int64 or *big.Int
 //    Float              *big.Float or *big.Rat
 //    everything else    nil
-//
 func Val(x Value) any {
 	switch x := x.(type) {
 	case boolVal:
@@ -609,7 +608,6 @@ func Val(x Value) any {
 //    *big.Float       Float
 //    *big.Rat         Float
 //    anything else    Unknown
-//
 func Make(x any) Value {
 	switch x := x.(type) {
 	case bool:
@@ -945,7 +943,6 @@ func is63bit(x int64) bool {
 // The operation must be defined for the operand.
 // If prec > 0 it specifies the ^ (xor) result size in bits.
 // If y is Unknown, the result is Unknown.
-//
 func UnaryOp(op token.Token, y Value, prec uint) Value {
 	switch op {
 	case token.ADD:
@@ -1035,7 +1032,6 @@ func ord(x Value) int {
 // smallest complexity for two values x and y. If one of them is
 // numeric, both of them must be numeric. If one of them is Unknown
 // or invalid (say, nil) both results are that value.
-//
 func match(x, y Value) (_, _ Value) {
 	switch ox, oy := ord(x), ord(y); {
 	case ox < oy:
@@ -1092,7 +1088,6 @@ func match0(x, y Value) (_, _ Value) {
 // To force integer division of Int operands, use op == token.QUO_ASSIGN
 // instead of token.QUO; the result is guaranteed to be Int in this case.
 // Division by zero leads to a run-time panic.
-//
 func BinaryOp(x_ Value, op token.Token, y_ Value) Value {
 	x, y := match(x_, y_)
 
@@ -1272,7 +1267,6 @@ func quo(x, y Value) Value { return BinaryOp(x, token.QUO, y) }
 // Shift returns the result of the shift expression x op s
 // with op == token.SHL or token.SHR (<< or >>). x must be
 // an Int or an Unknown. If x is Unknown, the result is x.
-//
 func Shift(x Value, op token.Token, s uint) Value {
 	switch x := x.(type) {
 	case unknownVal:
@@ -1328,7 +1322,6 @@ func cmpZero(x int, op token.Token) bool {
 // The comparison must be defined for the operands.
 // If one of the operands is Unknown, the result is
 // false.
-//
 func Compare(x_ Value, op token.Token, y_ Value) bool {
 	x, y := match(x_, y_)
 
diff --git a/src/go/doc/doc.go b/src/go/doc/doc.go
index 5ab854d084..f0c1b5dd32 100644
--- a/src/go/doc/doc.go
+++ b/src/go/doc/doc.go
@@ -114,7 +114,6 @@ const (
 // New takes ownership of the AST pkg and may edit or overwrite it.
 // To have the Examples fields populated, use NewFromFiles and include
 // the package's _test.go files.
-//
 func New(pkg *ast.Package, importPath string, mode Mode) *Package {
 	var r reader
 	r.readPackage(pkg, mode)
@@ -156,7 +155,6 @@ func New(pkg *ast.Package, importPath string, mode Mode) *Package {
 //
 // NewFromFiles takes ownership of the AST files and may edit them,
 // unless the PreserveAST Mode bit is on.
-//
 func NewFromFiles(fset *token.FileSet, files []*ast.File, importPath string, opts ...any) (*Package, error) {
 	// Check for invalid API usage.
 	if fset == nil {
diff --git a/src/go/doc/example.go b/src/go/doc/example.go
index 0a880cdefb..fcd59e100a 100644
--- a/src/go/doc/example.go
+++ b/src/go/doc/example.go
@@ -462,7 +462,6 @@ func lastComment(b *ast.BlockStmt, c []*ast.CommentGroup) (i int, last *ast.Comm
 // 	  or Foo (with a "bar" suffix).
 //
 // Examples with malformed names are not associated with anything.
-//
 func classifyExamples(p *Package, examples []*Example) {
 	if len(examples) == 0 {
 		return
diff --git a/src/go/doc/exports.go b/src/go/doc/exports.go
index 671c622205..655e889293 100644
--- a/src/go/doc/exports.go
+++ b/src/go/doc/exports.go
@@ -13,7 +13,6 @@ import (
 
 // filterIdentList removes unexported names from list in place
 // and returns the resulting list.
-//
 func filterIdentList(list []*ast.Ident) []*ast.Ident {
 	j := 0
 	for _, x := range list {
@@ -69,7 +68,6 @@ func updateIdentList(list []*ast.Ident) (hasExported bool) {
 }
 
 // hasExportedName reports whether list contains any exported names.
-//
 func hasExportedName(list []*ast.Ident) bool {
 	for _, x := range list {
 		if x.IsExported() {
@@ -106,7 +104,6 @@ func removeAnonymousField(name string, ityp *ast.InterfaceType) {
 // in place and reports whether fields were removed. Anonymous fields are
 // recorded with the parent type. filterType is called with the types of
 // all remaining fields.
-//
 func (r *reader) filterFieldList(parent *namedType, fields *ast.FieldList, ityp *ast.InterfaceType) (removedFields bool) {
 	if fields == nil {
 		return
@@ -159,7 +156,6 @@ func (r *reader) filterFieldList(parent *namedType, fields *ast.FieldList, ityp
 }
 
 // filterParamList applies filterType to each parameter type in fields.
-//
 func (r *reader) filterParamList(fields *ast.FieldList) {
 	if fields != nil {
 		for _, f := range fields.List {
@@ -171,7 +167,6 @@ func (r *reader) filterParamList(fields *ast.FieldList) {
 // filterType strips any unexported struct fields or method types from typ
 // in place. If fields (or methods) have been removed, the corresponding
 // struct or interface type has the Incomplete field set to true.
-//
 func (r *reader) filterType(parent *namedType, typ ast.Expr) {
 	switch t := typ.(type) {
 	case *ast.Ident:
@@ -255,7 +250,6 @@ func (r *reader) filterSpec(spec ast.Spec) bool {
 // copyConstType returns a copy of typ with position pos.
 // typ must be a valid constant type.
 // In practice, only (possibly qualified) identifiers are possible.
-//
 func copyConstType(typ ast.Expr, pos token.Pos) ast.Expr {
 	switch typ := typ.(type) {
 	case *ast.Ident:
@@ -318,7 +312,6 @@ func (r *reader) filterDecl(decl ast.Decl) bool {
 }
 
 // fileExports removes unexported declarations from src in place.
-//
 func (r *reader) fileExports(src *ast.File) {
 	j := 0
 	for _, d := range src.Decls {
diff --git a/src/go/doc/filter.go b/src/go/doc/filter.go
index 9904da150e..f8d3e1fca2 100644
--- a/src/go/doc/filter.go
+++ b/src/go/doc/filter.go
@@ -97,7 +97,6 @@ func filterTypes(a []*Type, f Filter) []*Type {
 
 // Filter eliminates documentation for names that don't pass through the filter f.
 // TODO(gri): Recognize "Type.Method" as a name.
-//
 func (p *Package) Filter(f Filter) {
 	p.Consts = filterValues(p.Consts, f)
 	p.Vars = filterValues(p.Vars, f)
diff --git a/src/go/doc/reader.go b/src/go/doc/reader.go
index d9e721d01b..c591059e5c 100644
--- a/src/go/doc/reader.go
+++ b/src/go/doc/reader.go
@@ -21,12 +21,10 @@ import (
 
 // A methodSet describes a set of methods. Entries where Decl == nil are conflict
 // entries (more than one method with the same name at the same embedding level).
-//
 type methodSet map[string]*Func
 
 // recvString returns a string representation of recv of the form "T", "*T",
 // "T[A, ...]", "*T[A, ...]" or "BADRECV" (if not a proper receiver type).
-//
 func recvString(recv ast.Expr) string {
 	switch t := recv.(type) {
 	case *ast.Ident:
@@ -65,7 +63,6 @@ func recvParam(p ast.Expr) string {
 // If there are multiple f's with the same name, set keeps the first
 // one with documentation; conflicts are ignored. The boolean
 // specifies whether to leave the AST untouched.
-//
 func (mset methodSet) set(f *ast.FuncDecl, preserveAST bool) {
 	name := f.Name.Name
 	if g := mset[name]; g != nil && g.Doc != "" {
@@ -101,7 +98,6 @@ func (mset methodSet) set(f *ast.FuncDecl, preserveAST bool) {
 // add adds method m to the method set; m is ignored if the method set
 // already contains a method with the same name at the same or a higher
 // level than m.
-//
 func (mset methodSet) add(m *Func) {
 	old := mset[m.Name]
 	if old == nil || m.Level < old.Level {
@@ -122,7 +118,6 @@ func (mset methodSet) add(m *Func) {
 
 // baseTypeName returns the name of the base type of x (or "")
 // and whether the type is imported or not.
-//
 func baseTypeName(x ast.Expr) (name string, imported bool) {
 	switch t := x.(type) {
 	case *ast.Ident:
@@ -151,7 +146,6 @@ type embeddedSet map[*namedType]bool
 // A namedType represents a named unqualified (package local, or possibly
 // predeclared) type. The namedType for a type name is always found via
 // reader.lookupType.
-//
 type namedType struct {
 	doc  string       // doc comment for type
 	name string       // type name
@@ -176,7 +170,6 @@ type namedType struct {
 // in the respective AST nodes so that they are not printed
 // twice (once when printing the documentation and once when
 // printing the corresponding AST node).
-//
 type reader struct {
 	mode Mode
 
@@ -206,7 +199,6 @@ func (r *reader) isVisible(name string) bool {
 // If the base type has not been encountered yet, a new
 // type with the given name but no associated declaration
 // is added to the type map.
-//
 func (r *reader) lookupType(name string) *namedType {
 	if name == "" || name == "_" {
 		return nil // no type docs for anonymous types
@@ -229,7 +221,6 @@ func (r *reader) lookupType(name string) *namedType {
 // anonymous field in the parent type. If the field is imported
 // (qualified name) or the parent is nil, the field is ignored.
 // The function returns the field name.
-//
 func (r *reader) recordAnonymousField(parent *namedType, fieldType ast.Expr) (fname string) {
 	fname, imp := baseTypeName(fieldType)
 	if parent == nil || imp {
@@ -273,7 +264,6 @@ func specNames(specs []ast.Spec) []string {
 }
 
 // readValue processes a const or var declaration.
-//
 func (r *reader) readValue(decl *ast.GenDecl) {
 	// determine if decl should be associated with a type
 	// Heuristic: For each typed entry, determine the type name, if any.
@@ -347,7 +337,6 @@ func (r *reader) readValue(decl *ast.GenDecl) {
 }
 
 // fields returns a struct's fields or an interface's methods.
-//
 func fields(typ ast.Expr) (list []*ast.Field, isStruct bool) {
 	var fields *ast.FieldList
 	switch t := typ.(type) {
@@ -364,7 +353,6 @@ func fields(typ ast.Expr) (list []*ast.Field, isStruct bool) {
 }
 
 // readType processes a type declaration.
-//
 func (r *reader) readType(decl *ast.GenDecl, spec *ast.TypeSpec) {
 	typ := r.lookupType(spec.Name.Name)
 	if typ == nil {
@@ -400,13 +388,11 @@ func (r *reader) readType(decl *ast.GenDecl, spec *ast.TypeSpec) {
 }
 
 // isPredeclared reports whether n denotes a predeclared type.
-//
 func (r *reader) isPredeclared(n string) bool {
 	return predeclaredTypes[n] && r.types[n] == nil
 }
 
 // readFunc processes a func or method declaration.
-//
 func (r *reader) readFunc(fun *ast.FuncDecl) {
 	// strip function body if requested.
 	if r.mode&PreserveAST == 0 {
@@ -500,7 +486,6 @@ var (
 )
 
 // readNote collects a single note from a sequence of comments.
-//
 func (r *reader) readNote(list []*ast.Comment) {
 	text := (&ast.CommentGroup{List: list}).Text()
 	if m := noteMarkerRx.FindStringSubmatchIndex(text); m != nil {
@@ -526,7 +511,6 @@ func (r *reader) readNote(list []*ast.Comment) {
 // and is followed by the note body (e.g., "// BUG(gri): fix this").
 // The note ends at the end of the comment group or at the start of
 // another note in the same comment group, whichever comes first.
-//
 func (r *reader) readNotes(comments []*ast.CommentGroup) {
 	for _, group := range comments {
 		i := -1 // comment index of most recent note start, valid if >= 0
@@ -546,7 +530,6 @@ func (r *reader) readNotes(comments []*ast.CommentGroup) {
 }
 
 // readFile adds the AST for a source file to the reader.
-//
 func (r *reader) readFile(src *ast.File) {
 	// add package documentation
 	if src.Doc != nil {
@@ -696,7 +679,6 @@ func customizeRecv(f *Func, recvTypeName string, embeddedIsPtr bool, level int)
 }
 
 // collectEmbeddedMethods collects the embedded methods of typ in mset.
-//
 func (r *reader) collectEmbeddedMethods(mset methodSet, typ *namedType, recvTypeName string, embeddedIsPtr bool, level int, visited embeddedSet) {
 	visited[typ] = true
 	for embedded, isPtr := range typ.embedded {
@@ -720,7 +702,6 @@ func (r *reader) collectEmbeddedMethods(mset methodSet, typ *namedType, recvType
 }
 
 // computeMethodSets determines the actual method sets for each type encountered.
-//
 func (r *reader) computeMethodSets() {
 	for _, t := range r.types {
 		// collect embedded methods for t
@@ -746,7 +727,6 @@ func (r *reader) computeMethodSets() {
 // types that have no declaration. Instead, these functions and methods
 // are shown at the package level. It also removes types with missing
 // declarations or which are not visible.
-//
 func (r *reader) cleanupTypes() {
 	for _, t := range r.types {
 		visible := r.isVisible(t.name)
@@ -813,7 +793,6 @@ func sortedKeys(m map[string]int) []string {
 }
 
 // sortingName returns the name to use when sorting d into place.
-//
 func sortingName(d *ast.GenDecl) string {
 	if len(d.Specs) == 1 {
 		if s, ok := d.Specs[0].(*ast.ValueSpec); ok {
@@ -906,7 +885,6 @@ func sortedFuncs(m methodSet, allMethods bool) []*Func {
 
 // noteBodies returns a list of note body strings given a list of notes.
 // This is only used to populate the deprecated Package.Bugs field.
-//
 func noteBodies(notes []*Note) []string {
 	var list []string
 	for _, n := range notes {
diff --git a/src/go/doc/synopsis.go b/src/go/doc/synopsis.go
index 3fa1616cd1..ca607cc4e5 100644
--- a/src/go/doc/synopsis.go
+++ b/src/go/doc/synopsis.go
@@ -12,7 +12,6 @@ import (
 // firstSentenceLen returns the length of the first sentence in s.
 // The sentence ends after the first period followed by space and
 // not preceded by exactly one uppercase letter.
-//
 func firstSentenceLen(s string) int {
 	var ppp, pp, p rune
 	for i, q := range s {
@@ -64,7 +63,6 @@ func clean(s string, flags int) string {
 // has no \n, \r, or \t characters and uses only single spaces between
 // words. If s starts with any of the IllegalPrefixes, the result
 // is the empty string.
-//
 func Synopsis(s string) string {
 	s = clean(s[0:firstSentenceLen(s)], 0)
 	for _, prefix := range IllegalPrefixes {
diff --git a/src/go/format/benchmark_test.go b/src/go/format/benchmark_test.go
index ac19aa3bf5..d434d6f549 100644
--- a/src/go/format/benchmark_test.go
+++ b/src/go/format/benchmark_test.go
@@ -31,7 +31,6 @@ var debug = flag.Bool("debug", false, "write .src files containing formatting in
 // 	0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
 // 	0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
 // 	...
-//
 func array1(buf *bytes.Buffer, n int) {
 	buf.WriteString("var _ = [...]byte{\n")
 	for i := 0; i < n; {
diff --git a/src/go/format/format.go b/src/go/format/format.go
index ea8dd20823..fb87e84a4e 100644
--- a/src/go/format/format.go
+++ b/src/go/format/format.go
@@ -50,7 +50,6 @@ const parserMode = parser.ParseComments
 //
 // The function may return early (before the entire result is written)
 // and return a formatting error, for instance due to an incorrect AST.
-//
 func Node(dst io.Writer, fset *token.FileSet, node any) error {
 	// Determine if we have a complete source file (file != nil).
 	var file *ast.File
@@ -99,7 +98,6 @@ func Node(dst io.Writer, fset *token.FileSet, node any) error {
 // is applied to the result (such that it has the same leading and trailing
 // space as src), and the result is indented by the same amount as the first
 // line of src containing code. Imports are not sorted for partial source files.
-//
 func Source(src []byte) ([]byte, error) {
 	fset := token.NewFileSet()
 	file, sourceAdj, indentAdj, err := parse(fset, "", src, true)
diff --git a/src/go/internal/gccgoimporter/parser.go b/src/go/internal/gccgoimporter/parser.go
index 48335fa6d8..10402fe43e 100644
--- a/src/go/internal/gccgoimporter/parser.go
+++ b/src/go/internal/gccgoimporter/parser.go
@@ -187,7 +187,6 @@ func (p *parser) parseQualifiedNameStr(unquotedName string) (pkgpath, name strin
 // getPkg returns the package for a given path. If the package is
 // not found but we have a package name, create the package and
 // add it to the p.imports map.
-//
 func (p *parser) getPkg(pkgpath, name string) *types.Package {
 	// package unsafe is not in the imports map - handle explicitly
 	if pkgpath == "unsafe" {
@@ -934,7 +933,6 @@ func lookupBuiltinType(typ int) types.Type {
 // Type = "<" "type" ( "-" int | int [ TypeSpec ] ) ">" .
 //
 // parseType updates the type map to t for all type numbers n.
-//
 func (p *parser) parseType(pkg *types.Package, n ...any) types.Type {
 	p.expect('<')
 	t, _ := p.parseTypeAfterAngle(pkg, n...)
diff --git a/src/go/internal/gcimporter/exportdata.go b/src/go/internal/gcimporter/exportdata.go
index c12e459c3d..43e505b47b 100644
--- a/src/go/internal/gcimporter/exportdata.go
+++ b/src/go/internal/gcimporter/exportdata.go
@@ -40,7 +40,6 @@ func readGopackHeader(r *bufio.Reader) (name string, size int, err error) {
 // file by reading from it. The reader must be positioned at the
 // start of the file before calling this function. The hdr result
 // is the string before the export data, either "$$" or "$$B".
-//
 func FindExportData(r *bufio.Reader) (hdr string, err error) {
 	// Read first line to make sure this is an object file.
 	line, err := r.ReadSlice('\n')
diff --git a/src/go/internal/gcimporter/gcimporter.go b/src/go/internal/gcimporter/gcimporter.go
index 73cf6334fd..9ed5e0c5e8 100644
--- a/src/go/internal/gcimporter/gcimporter.go
+++ b/src/go/internal/gcimporter/gcimporter.go
@@ -27,7 +27,6 @@ var pkgExts = [...]string{".a", ".o"}
 // the build.Default build.Context). A relative srcDir is interpreted
 // relative to the current working directory.
 // If no file was found, an empty filename is returned.
-//
 func FindPkg(path, srcDir string) (filename, id string) {
 	if path == "" {
 		return
@@ -83,7 +82,6 @@ func FindPkg(path, srcDir string) (filename, id string) {
 // Import imports a gc-generated package given its import path and srcDir, adds
 // the corresponding package object to the packages map, and returns the object.
 // The packages map must contain all packages already imported.
-//
 func Import(fset *token.FileSet, packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) {
 	var rc io.ReadCloser
 	var id string
diff --git a/src/go/parser/error_test.go b/src/go/parser/error_test.go
index bedfc265b5..c3a8ec6ad8 100644
--- a/src/go/parser/error_test.go
+++ b/src/go/parser/error_test.go
@@ -64,12 +64,10 @@ func getPos(fset *token.FileSet, filename string, offset int) token.Pos {
 // The special form /* ERROR HERE "rx" */ must be used for error
 // messages that appear immediately after a token, rather than at
 // a token's position.
-//
 var errRx = regexp.MustCompile(`^/\* *ERROR *(HERE)? *"([^"]*)" *\*/$`)
 
 // expectedErrors collects the regular expressions of ERROR comments found
 // in files and returns them as a map of error positions to error messages.
-//
 func expectedErrors(fset *token.FileSet, filename string, src []byte) map[token.Pos]string {
 	errors := make(map[token.Pos]string)
 
@@ -116,7 +114,6 @@ func expectedErrors(fset *token.FileSet, filename string, src []byte) map[token.
 
 // compareErrors compares the map of expected error messages with the list
 // of found errors and reports discrepancies.
-//
 func compareErrors(t *testing.T, fset *token.FileSet, expected map[token.Pos]string, found scanner.ErrorList) {
 	t.Helper()
 	for _, error := range found {
diff --git a/src/go/parser/interface.go b/src/go/parser/interface.go
index e4f8c281ea..e3468f481f 100644
--- a/src/go/parser/interface.go
+++ b/src/go/parser/interface.go
@@ -21,7 +21,6 @@ import (
 // If src != nil, readSource converts src to a []byte if possible;
 // otherwise it returns an error. If src == nil, readSource returns
 // the result of reading the file specified by filename.
-//
 func readSource(filename string, src any) ([]byte, error) {
 	if src != nil {
 		switch s := src.(type) {
@@ -45,7 +44,6 @@ func readSource(filename string, src any) ([]byte, error) {
 // A Mode value is a set of flags (or 0).
 // They control the amount of source code parsed and other optional
 // parser functionality.
-//
 type Mode uint
 
 const (
@@ -81,7 +79,6 @@ const (
 // errors were found, the result is a partial AST (with ast.Bad* nodes
 // representing the fragments of erroneous source code). Multiple errors
 // are returned via a scanner.ErrorList which is sorted by source position.
-//
 func ParseFile(fset *token.FileSet, filename string, src any, mode Mode) (f *ast.File, err error) {
 	if fset == nil {
 		panic("parser.ParseFile: no token.FileSet provided (fset == nil)")
@@ -136,7 +133,6 @@ func ParseFile(fset *token.FileSet, filename string, src any, mode Mode) (f *ast
 // If the directory couldn't be read, a nil map and the respective error are
 // returned. If a parse error occurred, a non-nil but incomplete map and the
 // first error encountered are returned.
-//
 func ParseDir(fset *token.FileSet, path string, filter func(fs.FileInfo) bool, mode Mode) (pkgs map[string]*ast.Package, first error) {
 	list, err := os.ReadDir(path)
 	if err != nil {
@@ -187,7 +183,6 @@ func ParseDir(fset *token.FileSet, path string, filter func(fs.FileInfo) bool, m
 // errors were found, the result is a partial AST (with ast.Bad* nodes
 // representing the fragments of erroneous source code). Multiple errors
 // are returned via a scanner.ErrorList which is sorted by source position.
-//
 func ParseExprFrom(fset *token.FileSet, filename string, src any, mode Mode) (expr ast.Expr, err error) {
 	if fset == nil {
 		panic("parser.ParseExprFrom: no token.FileSet provided (fset == nil)")
@@ -232,7 +227,6 @@ func ParseExprFrom(fset *token.FileSet, filename string, src any, mode Mode) (ex
 // If syntax errors were found, the result is a partial AST (with ast.Bad* nodes
 // representing the fragments of erroneous source code). Multiple errors are
 // returned via a scanner.ErrorList which is sorted by source position.
-//
 func ParseExpr(x string) (ast.Expr, error) {
 	return ParseExprFrom(token.NewFileSet(), "", []byte(x), 0)
 }
diff --git a/src/go/parser/parser.go b/src/go/parser/parser.go
index 51a3c3e67f..3eb00e9446 100644
--- a/src/go/parser/parser.go
+++ b/src/go/parser/parser.go
@@ -154,7 +154,6 @@ func (p *parser) consumeComment() (comment *ast.Comment, endline int) {
 // comments list, and return it together with the line at which
 // the last comment in the group ends. A non-comment token or n
 // empty lines terminate a comment group.
-//
 func (p *parser) consumeCommentGroup(n int) (comments *ast.CommentGroup, endline int) {
 	var list []*ast.Comment
 	endline = p.file.Line(p.pos)
@@ -185,7 +184,6 @@ func (p *parser) consumeCommentGroup(n int) (comments *ast.CommentGroup, endline
 //
 // Lead and line comments may be considered documentation that is
 // stored in the AST.
-//
 func (p *parser) next() {
 	p.leadComment = nil
 	p.lineComment = nil
@@ -288,7 +286,6 @@ func (p *parser) expect2(tok token.Token) (pos token.Pos) {
 
 // expectClosing is like expect but provides a better error message
 // for the common case of a missing comma before a newline.
-//
 func (p *parser) expectClosing(tok token.Token, context string) token.Pos {
 	if p.tok != tok && p.tok == token.SEMICOLON && p.lit == "\n" {
 		p.error(p.pos, "missing ',' before newline in "+context)
@@ -406,7 +403,6 @@ var exprEnd = map[token.Token]bool{
 // token positions are invalid due to parse errors, the resulting end position
 // may be past the file's EOF position, which would lead to panics if used
 // later on.
-//
 func (p *parser) safePos(pos token.Pos) (res token.Pos) {
 	defer func() {
 		if recover() != nil {
@@ -1349,7 +1345,6 @@ func (p *parser) parseFuncTypeOrLit() ast.Expr {
 
 // parseOperand may return an expression or a raw type (incl. array
 // types of the form [...]T. Callers must verify the result.
-//
 func (p *parser) parseOperand() ast.Expr {
 	if p.trace {
 		defer un(trace(p, "Operand"))
@@ -1640,7 +1635,6 @@ func unparen(x ast.Expr) ast.Expr {
 
 // checkExprOrType checks that x is an expression or a type
 // (and not a raw type such as [...]T).
-//
 func (p *parser) checkExprOrType(x ast.Expr) ast.Expr {
 	switch t := unparen(x).(type) {
 	case *ast.ParenExpr:
diff --git a/src/go/parser/resolver.go b/src/go/parser/resolver.go
index d66a194c12..767a5e20ad 100644
--- a/src/go/parser/resolver.go
+++ b/src/go/parser/resolver.go
@@ -188,7 +188,6 @@ var unresolved = new(ast.Object)
 // the object it denotes. If no object is found and collectUnresolved is
 // set, x is marked as unresolved and collected in the list of unresolved
 // identifiers.
-//
 func (r *resolver) resolve(ident *ast.Ident, collectUnresolved bool) {
 	if ident.Obj != nil {
 		panic(r.sprintf("%v: identifier %s already declared or resolved", ident.Pos(), ident.Name))
diff --git a/src/go/printer/nodes.go b/src/go/printer/nodes.go
index 89e8016409..f4fbde8ae6 100644
--- a/src/go/printer/nodes.go
+++ b/src/go/printer/nodes.go
@@ -44,7 +44,6 @@ import (
 // space taken up by them is not considered to reduce the number of
 // linebreaks. At the moment there is no easy way to know about
 // future (not yet interspersed) comments in this function.
-//
 func (p *printer) linebreak(line, min int, ws whiteSpace, newSection bool) (nbreaks int) {
 	n := nlimit(line - p.pos.Line)
 	if n < min {
@@ -745,7 +744,6 @@ func reduceDepth(depth int) int {
 //	3) If there are no level 4 operators or no level 5 operators, then the
 //	   cutoff is 6 (always use spaces) in Normal mode
 //	   and 4 (never use spaces) in Compact mode.
-//
 func (p *printer) binaryExpr(x *ast.BinaryExpr, prec1, cutoff, depth int) {
 	prec := x.Op.Precedence()
 	if prec < prec1 {
@@ -1259,7 +1257,6 @@ func (p *printer) controlClause(isForStmt bool, init ast.Stmt, expr ast.Expr, po
 // indentList reports whether an expression list would look better if it
 // were indented wholesale (starting with the very first element, rather
 // than starting at the first line break).
-//
 func (p *printer) indentList(list []ast.Expr) bool {
 	// Heuristic: indentList reports whether there are more than one multi-
 	// line element in the list, or if there is any element that is not
@@ -1503,7 +1500,6 @@ func (p *printer) stmt(stmt ast.Stmt, nextIsRBrace bool) {
 //	-  V          -  V          true      column must be kept
 //	-  -          -  -          false
 //	-  V          V  -          false     V is moved into T column
-//
 func keepTypeColumn(specs []ast.Spec) []bool {
 	m := make([]bool, len(specs))
 
@@ -1614,7 +1610,6 @@ func sanitizeImportPath(lit *ast.BasicLit) *ast.BasicLit {
 // The parameter n is the number of specs in the group. If doIndent is set,
 // multi-line identifier lists in the spec are indented when the first
 // linebreak is encountered.
-//
 func (p *printer) spec(spec ast.Spec, n int, doIndent bool) {
 	switch s := spec.(type) {
 	case *ast.ImportSpec:
@@ -1710,7 +1705,6 @@ func (p *printer) genDecl(d *ast.GenDecl) {
 // The result is <= maxSize if the node fits on one line with at
 // most maxSize chars and the formatted output doesn't contain
 // any control chars. Otherwise, the result is > maxSize.
-//
 func (p *printer) nodeSize(n ast.Node, maxSize int) (size int) {
 	// nodeSize invokes the printer, which may invoke nodeSize
 	// recursively. For deep composite literal nests, this can
@@ -1784,7 +1778,6 @@ func (p *printer) bodySize(b *ast.BlockStmt, maxSize int) int {
 // the block is printed on the current line, without line breaks, spaced from the header
 // by sep. Otherwise the block's opening "{" is printed on the current line, followed by
 // lines for the block's statements and its closing "}".
-//
 func (p *printer) funcBody(headerSize int, sep whiteSpace, b *ast.BlockStmt) {
 	if b == nil {
 		return
diff --git a/src/go/printer/printer.go b/src/go/printer/printer.go
index e4679b0021..5014f59ab5 100644
--- a/src/go/printer/printer.go
+++ b/src/go/printer/printer.go
@@ -151,14 +151,12 @@ func (p *printer) nextComment() {
 // commentBefore reports whether the current comment group occurs
 // before the next position in the source code and printing it does
 // not introduce implicit semicolons.
-//
 func (p *printer) commentBefore(next token.Position) bool {
 	return p.commentOffset < next.Offset && (!p.impliedSemi || !p.commentNewline)
 }
 
 // commentSizeBefore returns the estimated size of the
 // comments on the same line before the next position.
-//
 func (p *printer) commentSizeBefore(next token.Position) int {
 	// save/restore current p.commentInfo (p.nextComment() modifies it)
 	defer func(info commentInfo) {
@@ -179,7 +177,6 @@ func (p *printer) commentSizeBefore(next token.Position) int {
 // token in *linePtr. It is used to compute an accurate line number for a
 // formatted construct, independent of pending (not yet emitted) whitespace
 // or comments.
-//
 func (p *printer) recordLine(linePtr *int) {
 	p.linePtr = linePtr
 }
@@ -188,7 +185,6 @@ func (p *printer) recordLine(linePtr *int) {
 // output line and the line argument, ignoring any pending (not yet
 // emitted) whitespace or comments. It is used to compute an accurate
 // size (in number of lines) for a formatted construct.
-//
 func (p *printer) linesFrom(line int) int {
 	return p.out.Line - line
 }
@@ -282,7 +278,6 @@ func (p *printer) writeByte(ch byte, n int) {
 // needed (i.e., when we don't know that s contains no tabs or line breaks)
 // avoids processing extra escape characters and reduces run time of the
 // printer benchmark by up to 10%.
-//
 func (p *printer) writeString(pos token.Position, s string, isLit bool) {
 	if p.out.Column == 1 {
 		if p.Config.Mode&SourcePos != 0 {
@@ -352,7 +347,6 @@ func (p *printer) writeString(pos token.Position, s string, isLit bool) {
 // pos is the comment position, next the position of the item
 // after all pending comments, prev is the previous comment in
 // a group of comments (or nil), and tok is the next token.
-//
 func (p *printer) writeCommentPrefix(pos, next token.Position, prev *ast.Comment, tok token.Token) {
 	if len(p.output) == 0 {
 		// the comment is the first item to be printed - don't write any whitespace
@@ -478,7 +472,6 @@ func (p *printer) writeCommentPrefix(pos, next token.Position, prev *ast.Comment
 
 // Returns true if s contains only white space
 // (only tabs and blanks can appear in the printer's context).
-//
 func isBlank(s string) bool {
 	for i := 0; i < len(s); i++ {
 		if s[i] > ' ' {
@@ -507,7 +500,6 @@ func trimRight(s string) string {
 // The prefix is computed using heuristics such that is likely that the comment
 // contents are nicely laid out after re-printing each line using the printer's
 // current indentation.
-//
 func stripCommonPrefix(lines []string) {
 	if len(lines) <= 1 {
 		return // at most one line - nothing to do
@@ -695,7 +687,6 @@ func (p *printer) writeComment(comment *ast.Comment) {
 // pending whitespace. The writeCommentSuffix result indicates if a
 // newline was written or if a formfeed was dropped from the whitespace
 // buffer.
-//
 func (p *printer) writeCommentSuffix(needsLinebreak bool) (wroteNewline, droppedFF bool) {
 	for i, ch := range p.wsbuf {
 		switch ch {
@@ -744,7 +735,6 @@ func (p *printer) containsLinebreak() bool {
 // that needs to be written before the next token). A heuristic is used to mix
 // the comments and whitespace. The intersperseComments result indicates if a
 // newline was written or if a formfeed was dropped from the whitespace buffer.
-//
 func (p *printer) intersperseComments(next token.Position, tok token.Token) (wroteNewline, droppedFF bool) {
 	var last *ast.Comment
 	for p.commentBefore(next) {
@@ -877,7 +867,6 @@ func mayCombine(prev token.Token, next byte) (b bool) {
 // taking into account the amount and structure of any pending white-
 // space for best comment placement. Then, any leftover whitespace is
 // printed, followed by the actual token.
-//
 func (p *printer) print(args ...any) {
 	for _, arg := range args {
 		// information about the current arg
@@ -1020,7 +1009,6 @@ func (p *printer) print(args ...any) {
 // before the position of the next token tok. The flush result indicates
 // if a newline was written or if a formfeed was dropped from the whitespace
 // buffer.
-//
 func (p *printer) flush(next token.Position, tok token.Token) (wroteNewline, droppedFF bool) {
 	if p.commentBefore(next) {
 		// if there are comments before the next item, intersperse them
@@ -1175,7 +1163,6 @@ unsupported:
 // and vtab characters into newlines and htabs (in case no tabwriter
 // is used). Text bracketed by tabwriter.Escape characters is passed
 // through unchanged.
-//
 type trimmer struct {
 	output io.Writer
 	state  int
@@ -1363,7 +1350,6 @@ func (cfg *Config) fprint(output io.Writer, fset *token.FileSet, node any, nodeS
 
 // A CommentedNode bundles an AST node and corresponding comments.
 // It may be provided as argument to any of the Fprint functions.
-//
 type CommentedNode struct {
 	Node     any // *ast.File, or ast.Expr, ast.Decl, ast.Spec, or ast.Stmt
 	Comments []*ast.CommentGroup
@@ -1373,7 +1359,6 @@ type CommentedNode struct {
 // Position information is interpreted relative to the file set fset.
 // The node type must be *ast.File, *CommentedNode, []ast.Decl, []ast.Stmt,
 // or assignment-compatible to ast.Expr, ast.Decl, ast.Spec, or ast.Stmt.
-//
 func (cfg *Config) Fprint(output io.Writer, fset *token.FileSet, node any) error {
 	return cfg.fprint(output, fset, node, make(map[ast.Node]int))
 }
@@ -1382,7 +1367,6 @@ func (cfg *Config) Fprint(output io.Writer, fset *token.FileSet, node any) error
 // It calls Config.Fprint with default settings.
 // Note that gofmt uses tabs for indentation but spaces for alignment;
 // use format.Node (package go/format) for output that matches gofmt.
-//
 func Fprint(output io.Writer, fset *token.FileSet, node any) error {
 	return (&Config{Tabwidth: 8}).Fprint(output, fset, node)
 }
diff --git a/src/go/printer/printer_test.go b/src/go/printer/printer_test.go
index 2071aa8aa6..ad2d86052a 100644
--- a/src/go/printer/printer_test.go
+++ b/src/go/printer/printer_test.go
@@ -212,7 +212,6 @@ func TestFiles(t *testing.T) {
 // TestLineComments, using a simple test case, checks that consecutive line
 // comments are properly terminated with a newline even if the AST position
 // information is incorrect.
-//
 func TestLineComments(t *testing.T) {
 	const src = `// comment 1
 	// comment 2
diff --git a/src/go/printer/testdata/parser.go b/src/go/printer/testdata/parser.go
index 615aceebd2..bb06c8dd42 100644
--- a/src/go/printer/testdata/parser.go
+++ b/src/go/printer/testdata/parser.go
@@ -19,7 +19,6 @@ import (
 // The mode parameter to the Parse* functions is a set of flags (or 0).
 // They control the amount of source code parsed and other optional
 // parser functionality.
-//
 const (
 	PackageClauseOnly uint = 1 << iota // parsing stops after package clause
 	ImportsOnly                        // parsing stops after import declarations
@@ -271,7 +270,6 @@ func (p *parser) consumeComment() (comment *ast.Comment, endline int) {
 // comments list, and return it together with the line at which
 // the last comment in the group ends. An empty line or non-comment
 // token terminates a comment group.
-//
 func (p *parser) consumeCommentGroup() (comments *ast.CommentGroup, endline int) {
 	var list []*ast.Comment
 	endline = p.file.Line(p.pos)
@@ -302,7 +300,6 @@ func (p *parser) consumeCommentGroup() (comments *ast.CommentGroup, endline int)
 //
 // Lead and line comments may be considered documentation that is
 // stored in the AST.
-//
 func (p *parser) next() {
 	p.leadComment = nil
 	p.lineComment = nil
@@ -947,7 +944,6 @@ func (p *parser) parseFuncTypeOrLit() ast.Expr {
 // parseOperand may return an expression or a raw type (incl. array
 // types of the form [...]T. Callers must verify the result.
 // If lhs is set and the result is an identifier, it is not resolved.
-//
 func (p *parser) parseOperand(lhs bool) ast.Expr {
 	if p.trace {
 		defer un(trace(p, "Operand"))
@@ -1214,7 +1210,6 @@ func unparen(x ast.Expr) ast.Expr {
 
 // checkExprOrType checks that x is an expression or a type
 // (and not a raw type such as [...]T).
-//
 func (p *parser) checkExprOrType(x ast.Expr) ast.Expr {
 	switch t := unparen(x).(type) {
 	case *ast.ParenExpr:
diff --git a/src/go/scanner/errors.go b/src/go/scanner/errors.go
index 3114f4b645..3e9c365cca 100644
--- a/src/go/scanner/errors.go
+++ b/src/go/scanner/errors.go
@@ -15,7 +15,6 @@ import (
 // The position Pos, if valid, points to the beginning of
 // the offending token, and the error condition is described
 // by Msg.
-//
 type Error struct {
 	Pos token.Position
 	Msg string
@@ -33,7 +32,6 @@ func (e Error) Error() string {
 
 // ErrorList is a list of *Errors.
 // The zero value for an ErrorList is an empty ErrorList ready to use.
-//
 type ErrorList []*Error
 
 // Add adds an Error with given position and error message to an ErrorList.
@@ -69,7 +67,6 @@ func (p ErrorList) Less(i, j int) bool {
 // Sort sorts an ErrorList. *Error entries are sorted by position,
 // other errors are sorted by error message, and before any *Error
 // entry.
-//
 func (p ErrorList) Sort() {
 	sort.Sort(p)
 }
@@ -112,7 +109,6 @@ func (p ErrorList) Err() error {
 // PrintError is a utility function that prints a list of errors to w,
 // one error per line, if the err parameter is an ErrorList. Otherwise
 // it prints the err string.
-//
 func PrintError(w io.Writer, err error) {
 	if list, ok := err.(ErrorList); ok {
 		for _, e := range list {
diff --git a/src/go/scanner/scanner.go b/src/go/scanner/scanner.go
index 23d8db9d1c..b53de7a427 100644
--- a/src/go/scanner/scanner.go
+++ b/src/go/scanner/scanner.go
@@ -22,13 +22,11 @@ import (
 // encountered and a handler was installed, the handler is called with a
 // position and an error message. The position points to the beginning of
 // the offending token.
-//
 type ErrorHandler func(pos token.Position, msg string)
 
 // A Scanner holds the scanner's internal state while processing
 // a given text. It can be allocated as part of another data
 // structure but must be initialized via Init before use.
-//
 type Scanner struct {
 	// immutable state
 	file *token.File  // source file handle
@@ -101,7 +99,6 @@ func (s *Scanner) peek() byte {
 
 // A mode value is a set of flags (or 0).
 // They control scanner behavior.
-//
 type Mode uint
 
 const (
@@ -123,7 +120,6 @@ const (
 //
 // Note that Init may call err if there is an error in the first character
 // of the file.
-//
 func (s *Scanner) Init(file *token.File, src []byte, err ErrorHandler, mode Mode) {
 	// Explicitly initialize all fields since a scanner may be reused.
 	if file.Size() != len(src) {
@@ -825,7 +821,6 @@ func (s *Scanner) switch4(tok0, tok1 token.Token, ch2 rune, tok2, tok3 token.Tok
 // Scan adds line information to the file added to the file
 // set with Init. Token positions are relative to that file
 // and thus relative to the file set.
-//
 func (s *Scanner) Scan() (pos token.Pos, tok token.Token, lit string) {
 scanAgain:
 	s.skipWhitespace()
diff --git a/src/go/token/position.go b/src/go/token/position.go
index ce4af03923..00f24535bf 100644
--- a/src/go/token/position.go
+++ b/src/go/token/position.go
@@ -16,7 +16,6 @@ import (
 // Position describes an arbitrary source position
 // including the file, line, and column location.
 // A Position is valid if the line number is > 0.
-//
 type Position struct {
 	Filename string // filename, if any
 	Offset   int    // offset, starting at 0
@@ -35,7 +34,6 @@ func (pos *Position) IsValid() bool { return pos.Line > 0 }
 //	line                valid position without file name and no column (column == 0)
 //	file                invalid position with file name
 //	-                   invalid position without file name
-//
 func (pos Position) String() string {
 	s := pos.Filename
 	if pos.IsValid() {
@@ -75,14 +73,12 @@ func (pos Position) String() string {
 // equivalent to comparing the respective source file offsets. If p and q
 // are in different files, p < q is true if the file implied by p was added
 // to the respective file set before the file implied by q.
-//
 type Pos int
 
 // The zero value for Pos is NoPos; there is no file and line information
 // associated with it, and NoPos.IsValid() is false. NoPos is always
 // smaller than any other Pos value. The corresponding Position value
 // for NoPos is the zero value for Position.
-//
 const NoPos Pos = 0
 
 // IsValid reports whether the position is valid.
@@ -95,7 +91,6 @@ func (p Pos) IsValid() bool {
 
 // A File is a handle for a file belonging to a FileSet.
 // A File has a name, size, and line offset table.
-//
 type File struct {
 	set  *FileSet
 	name string // file name as provided to AddFile
@@ -134,7 +129,6 @@ func (f *File) LineCount() int {
 // AddLine adds the line offset for a new line.
 // The line offset must be larger than the offset for the previous line
 // and smaller than the file size; otherwise the line offset is ignored.
-//
 func (f *File) AddLine(offset int) {
 	f.mutex.Lock()
 	if i := len(f.lines); (i == 0 || f.lines[i-1] < offset) && offset < f.size {
@@ -147,7 +141,6 @@ func (f *File) AddLine(offset int) {
 // the newline character at the end of the line with a space (to not change the
 // remaining offsets). To obtain the line number, consult e.g. Position.Line.
 // MergeLine will panic if given an invalid line number.
-//
 func (f *File) MergeLine(line int) {
 	if line < 1 {
 		panic(fmt.Sprintf("invalid line number %d (should be >= 1)", line))
@@ -174,7 +167,6 @@ func (f *File) MergeLine(line int) {
 // and smaller than the file size; otherwise SetLines fails and returns
 // false.
 // Callers must not mutate the provided slice after SetLines returns.
-//
 func (f *File) SetLines(lines []int) bool {
 	// verify validity of lines table
 	size := f.size
@@ -239,7 +231,6 @@ type lineInfo struct {
 
 // AddLineInfo is like AddLineColumnInfo with a column = 1 argument.
 // It is here for backward-compatibility for code prior to Go 1.11.
-//
 func (f *File) AddLineInfo(offset int, filename string, line int) {
 	f.AddLineColumnInfo(offset, filename, line, 1)
 }
@@ -252,7 +243,6 @@ func (f *File) AddLineInfo(offset int, filename string, line int) {
 //
 // AddLineColumnInfo is typically used to register alternative position
 // information for line directives such as //line filename:line:column.
-//
 func (f *File) AddLineColumnInfo(offset int, filename string, line, column int) {
 	f.mutex.Lock()
 	if i := len(f.infos); i == 0 || f.infos[i-1].Offset < offset && offset < f.size {
@@ -264,7 +254,6 @@ func (f *File) AddLineColumnInfo(offset int, filename string, line, column int)
 // Pos returns the Pos value for the given file offset;
 // the offset must be <= f.Size().
 // f.Pos(f.Offset(p)) == p.
-//
 func (f *File) Pos(offset int) Pos {
 	if offset > f.size {
 		panic(fmt.Sprintf("invalid file offset %d (should be <= %d)", offset, f.size))
@@ -275,7 +264,6 @@ func (f *File) Pos(offset int) Pos {
 // Offset returns the offset for the given file position p;
 // p must be a valid Pos value in that file.
 // f.Offset(f.Pos(offset)) == offset.
-//
 func (f *File) Offset(p Pos) int {
 	if int(p) < f.base || int(p) > f.base+f.size {
 		panic(fmt.Sprintf("invalid Pos value %d (should be in [%d, %d])", p, f.base, f.base+f.size))
@@ -285,7 +273,6 @@ func (f *File) Offset(p Pos) int {
 
 // Line returns the line number for the given file position p;
 // p must be a Pos value in that file or NoPos.
-//
 func (f *File) Line(p Pos) int {
 	return f.Position(p).Line
 }
@@ -297,7 +284,6 @@ func searchLineInfos(a []lineInfo, x int) int {
 // unpack returns the filename and line and column number for a file offset.
 // If adjusted is set, unpack will return the filename and line information
 // possibly adjusted by //line comments; otherwise those comments are ignored.
-//
 func (f *File) unpack(offset int, adjusted bool) (filename string, line, column int) {
 	f.mutex.Lock()
 	defer f.mutex.Unlock()
@@ -342,7 +328,6 @@ func (f *File) position(p Pos, adjusted bool) (pos Position) {
 // If adjusted is set, the position may be adjusted by position-altering
 // //line comments; otherwise those comments are ignored.
 // p must be a Pos value in f or NoPos.
-//
 func (f *File) PositionFor(p Pos, adjusted bool) (pos Position) {
 	if p != NoPos {
 		if int(p) < f.base || int(p) > f.base+f.size {
@@ -355,7 +340,6 @@ func (f *File) PositionFor(p Pos, adjusted bool) (pos Position) {
 
 // Position returns the Position value for the given file position p.
 // Calling f.Position(p) is equivalent to calling f.PositionFor(p, true).
-//
 func (f *File) Position(p Pos) (pos Position) {
 	return f.PositionFor(p, true)
 }
@@ -382,7 +366,6 @@ func (f *File) Position(p Pos) (pos Position) {
 // recently added file, plus one. Unless there is a need to extend an
 // interval later, using the FileSet.Base should be used as argument
 // for FileSet.AddFile.
-//
 type FileSet struct {
 	mutex sync.RWMutex // protects the file set
 	base  int          // base offset for the next file
@@ -399,7 +382,6 @@ func NewFileSet() *FileSet {
 
 // Base returns the minimum base offset that must be provided to
 // AddFile when adding the next file.
-//
 func (s *FileSet) Base() int {
 	s.mutex.RLock()
 	b := s.base
@@ -423,7 +405,6 @@ func (s *FileSet) Base() int {
 // with offs in the range [0, size] and thus p in the range [base, base+size].
 // For convenience, File.Pos may be used to create file-specific position
 // values from a file offset.
-//
 func (s *FileSet) AddFile(filename string, base, size int) *File {
 	s.mutex.Lock()
 	defer s.mutex.Unlock()
@@ -451,7 +432,6 @@ func (s *FileSet) AddFile(filename string, base, size int) *File {
 
 // Iterate calls f for the files in the file set in the order they were added
 // until f returns false.
-//
 func (s *FileSet) Iterate(f func(*File) bool) {
 	for i := 0; ; i++ {
 		var file *File
@@ -496,7 +476,6 @@ func (s *FileSet) file(p Pos) *File {
 // File returns the file that contains the position p.
 // If no such file is found (for instance for p == NoPos),
 // the result is nil.
-//
 func (s *FileSet) File(p Pos) (f *File) {
 	if p != NoPos {
 		f = s.file(p)
@@ -508,7 +487,6 @@ func (s *FileSet) File(p Pos) (f *File) {
 // If adjusted is set, the position may be adjusted by position-altering
 // //line comments; otherwise those comments are ignored.
 // p must be a Pos value in s or NoPos.
-//
 func (s *FileSet) PositionFor(p Pos, adjusted bool) (pos Position) {
 	if p != NoPos {
 		if f := s.file(p); f != nil {
@@ -520,7 +498,6 @@ func (s *FileSet) PositionFor(p Pos, adjusted bool) (pos Position) {
 
 // Position converts a Pos p in the fileset into a Position value.
 // Calling s.Position(p) is equivalent to calling s.PositionFor(p, true).
-//
 func (s *FileSet) Position(p Pos) (pos Position) {
 	return s.PositionFor(p, true)
 }
diff --git a/src/go/token/token.go b/src/go/token/token.go
index 17047d8713..b691883261 100644
--- a/src/go/token/token.go
+++ b/src/go/token/token.go
@@ -239,7 +239,6 @@ var tokens = [...]string{
 // token character sequence (e.g., for the token ADD, the string is
 // "+"). For all other tokens the string corresponds to the token
 // constant name (e.g. for the token IDENT, the string is "IDENT").
-//
 func (tok Token) String() string {
 	s := ""
 	if 0 <= tok && tok < Token(len(tokens)) {
@@ -256,7 +255,6 @@ func (tok Token) String() string {
 // starting with precedence 1 up to unary operators. The highest
 // precedence serves as "catch-all" precedence for selector,
 // indexing, and other operator and delimiter tokens.
-//
 const (
 	LowestPrec  = 0 // non-operators
 	UnaryPrec   = 6
@@ -266,7 +264,6 @@ const (
 // Precedence returns the operator precedence of the binary
 // operator op. If op is not a binary operator, the result
 // is LowestPrecedence.
-//
 func (op Token) Precedence() int {
 	switch op {
 	case LOR:
@@ -293,7 +290,6 @@ func init() {
 }
 
 // Lookup maps an identifier to its keyword token or IDENT (if not a keyword).
-//
 func Lookup(ident string) Token {
 	if tok, is_keyword := keywords[ident]; is_keyword {
 		return tok
@@ -305,30 +301,25 @@ func Lookup(ident string) Token {
 
 // IsLiteral returns true for tokens corresponding to identifiers
 // and basic type literals; it returns false otherwise.
-//
 func (tok Token) IsLiteral() bool { return literal_beg < tok && tok < literal_end }
 
 // IsOperator returns true for tokens corresponding to operators and
 // delimiters; it returns false otherwise.
-//
 func (tok Token) IsOperator() bool {
 	return (operator_beg < tok && tok < operator_end) || tok == TILDE
 }
 
 // IsKeyword returns true for tokens corresponding to keywords;
 // it returns false otherwise.
-//
 func (tok Token) IsKeyword() bool { return keyword_beg < tok && tok < keyword_end }
 
 // IsExported reports whether name starts with an upper-case letter.
-//
 func IsExported(name string) bool {
 	ch, _ := utf8.DecodeRuneInString(name)
 	return unicode.IsUpper(ch)
 }
 
 // IsKeyword reports whether name is a Go keyword, such as "func" or "return".
-//
 func IsKeyword(name string) bool {
 	// TODO: opt: use a perfect hash function instead of a global map.
 	_, ok := keywords[name]
@@ -338,7 +329,6 @@ func IsKeyword(name string) bool {
 // IsIdentifier reports whether name is a Go identifier, that is, a non-empty
 // string made up of letters, digits, and underscores, where the first character
 // is not a digit. Keywords are not identifiers.
-//
 func IsIdentifier(name string) bool {
 	if name == "" || IsKeyword(name) {
 		return false
diff --git a/src/go/types/api.go b/src/go/types/api.go
index 2cbabb0a53..04342bfac5 100644
--- a/src/go/types/api.go
+++ b/src/go/types/api.go
@@ -280,7 +280,6 @@ type Info struct {
 
 // TypeOf returns the type of expression e, or nil if not found.
 // Precondition: the Types, Uses and Defs maps are populated.
-//
 func (info *Info) TypeOf(e ast.Expr) Type {
 	if t, ok := info.Types[e]; ok {
 		return t.Type
@@ -300,7 +299,6 @@ func (info *Info) TypeOf(e ast.Expr) Type {
 // it defines, not the type (*TypeName) it uses.
 //
 // Precondition: the Uses and Defs maps are populated.
-//
 func (info *Info) ObjectOf(id *ast.Ident) Object {
 	if obj := info.Defs[id]; obj != nil {
 		return obj
diff --git a/src/go/types/builtins.go b/src/go/types/builtins.go
index c81e73c828..414c2c3ea0 100644
--- a/src/go/types/builtins.go
+++ b/src/go/types/builtins.go
@@ -16,7 +16,6 @@ import (
 // reports whether the call is valid, with *x holding the result;
 // but x.expr is not set. If the call is invalid, the result is
 // false, and *x is undefined.
-//
 func (check *Checker) builtin(x *operand, call *ast.CallExpr, id builtinId) (_ bool) {
 	// append is the only built-in that permits the use of ... for the last argument
 	bin := predeclaredFuncs[id]
diff --git a/src/go/types/check_test.go b/src/go/types/check_test.go
index 592ced41ec..5c42d124ea 100644
--- a/src/go/types/check_test.go
+++ b/src/go/types/check_test.go
@@ -55,7 +55,6 @@ var posMsgRx = regexp.MustCompile(`^(.*:[0-9]+:[0-9]+): *(?s)(.*)`)
 // splitError splits an error's error message into a position string
 // and the actual error message. If there's no position information,
 // pos is the empty string, and msg is the entire error message.
-//
 func splitError(err error) (pos, msg string) {
 	msg = err.Error()
 	if m := posMsgRx.FindStringSubmatch(msg); len(m) == 3 {
@@ -92,7 +91,6 @@ func parseFiles(t *testing.T, filenames []string, srcs [][]byte, mode parser.Mod
 // Space around "rx" or rx is ignored. Use the form `ERROR HERE "rx"`
 // for error messages that are located immediately after rather than
 // at a token's position.
-//
 var errRx = regexp.MustCompile(`^ *ERROR *(HERE)? *"?([^"]*)"?`)
 
 // errMap collects the regular expressions of ERROR comments found
diff --git a/src/go/types/eval.go b/src/go/types/eval.go
index 5700cbf79c..084f746fe6 100644
--- a/src/go/types/eval.go
+++ b/src/go/types/eval.go
@@ -53,7 +53,6 @@ func Eval(fset *token.FileSet, pkg *Package, pos token.Pos, expr string) (_ Type
 // functions ignore the context in which an expression is used (e.g., an
 // assignment). Thus, top-level untyped constants will return an
 // untyped type rather then the respective context-specific type.
-//
 func CheckExpr(fset *token.FileSet, pkg *Package, pos token.Pos, expr ast.Expr, info *Info) (err error) {
 	// determine scope
 	var scope *Scope
diff --git a/src/go/types/expr.go b/src/go/types/expr.go
index a3c9041bdd..1def8cc84d 100644
--- a/src/go/types/expr.go
+++ b/src/go/types/expr.go
@@ -1194,7 +1194,6 @@ const (
 // If hint != nil, it is the type of a composite literal element.
 // If allowGeneric is set, the operand type may be an uninstantiated
 // parameterized type or function value.
-//
 func (check *Checker) rawExpr(x *operand, e ast.Expr, hint Type, allowGeneric bool) exprKind {
 	if trace {
 		check.trace(e.Pos(), "-- expr %s", e)
@@ -1242,7 +1241,6 @@ func (check *Checker) nonGeneric(x *operand) {
 
 // exprInternal contains the core of type checking of expressions.
 // Must only be called by rawExpr.
-//
 func (check *Checker) exprInternal(x *operand, e ast.Expr, hint Type) exprKind {
 	// make sure x has a valid state in case of bailout
 	// (was issue 5770)
@@ -1707,7 +1705,6 @@ func (check *Checker) typeAssertion(e ast.Expr, x *operand, T Type, typeSwitch b
 // expr typechecks expression e and initializes x with the expression value.
 // The result must be a single value.
 // If an error occurred, x.mode is set to invalid.
-//
 func (check *Checker) expr(x *operand, e ast.Expr) {
 	check.rawExpr(x, e, nil, false)
 	check.exclude(x, 1<= 0). It returns the length of the
 // literal (maximum index value + 1).
-//
 func (check *Checker) indexedElts(elts []ast.Expr, typ Type, length int64) int64 {
 	visited := make(map[int64]bool, len(elts))
 	var index, max int64
diff --git a/src/go/types/lookup.go b/src/go/types/lookup.go
index 77fc17f5c3..e38f56c956 100644
--- a/src/go/types/lookup.go
+++ b/src/go/types/lookup.go
@@ -41,7 +41,6 @@ import (
 //	- If indirect is set, a method with a pointer receiver type was found
 //      but there was no pointer on the path from the actual receiver type to
 //	the method's formal receiver base type, nor was the receiver addressable.
-//
 func LookupFieldOrMethod(T Type, addressable bool, pkg *Package, name string) (obj Object, index []int, indirect bool) {
 	if T == nil {
 		panic("LookupFieldOrMethod on nil type")
@@ -281,7 +280,6 @@ func lookupType(m map[Type]int, typ Type) (int, bool) {
 // is not set), MissingMethod only checks that methods of T which are also
 // present in V have matching types (e.g., for a type assertion x.(T) where
 // x is of interface type V).
-//
 func MissingMethod(V Type, T *Interface, static bool) (method *Func, wrongType bool) {
 	m, alt := (*Checker)(nil).missingMethod(V, T, static)
 	// Only report a wrong type if the alternative method has the same name as m.
diff --git a/src/go/types/object.go b/src/go/types/object.go
index 8975fc93dc..89dcd83c2d 100644
--- a/src/go/types/object.go
+++ b/src/go/types/object.go
@@ -14,7 +14,6 @@ import (
 // An Object describes a named language entity such as a package,
 // constant, type, variable, function (incl. methods), or label.
 // All objects implement the Object interface.
-//
 type Object interface {
 	Parent() *Scope // scope in which this object is declared; nil for methods and struct fields
 	Pos() token.Pos // position of object identifier in declaration
diff --git a/src/go/types/operand.go b/src/go/types/operand.go
index 4d7f1e3b63..f9f109aa69 100644
--- a/src/go/types/operand.go
+++ b/src/go/types/operand.go
@@ -49,7 +49,6 @@ var operandModeString = [...]string{
 // the operand, the operand's type, a value for constants, and an id
 // for built-in functions.
 // The zero value of operand is a ready to use invalid operand.
-//
 type operand struct {
 	mode operandMode
 	expr ast.Expr
@@ -60,7 +59,6 @@ type operand struct {
 
 // Pos returns the position of the expression corresponding to x.
 // If x is invalid the position is token.NoPos.
-//
 func (x *operand) Pos() token.Pos {
 	// x.expr may not be set if x is invalid
 	if x.expr == nil {
@@ -102,7 +100,6 @@ func (x *operand) Pos() token.Pos {
 //
 // cgofunc     (                     )
 // cgofunc     (                      of type )
-//
 func operandString(x *operand, qf Qualifier) string {
 	// special-case nil
 	if x.mode == value && x.typ == Typ[UntypedNil] {
diff --git a/src/go/types/selection.go b/src/go/types/selection.go
index 6ec69d21db..4e06ab16b4 100644
--- a/src/go/types/selection.go
+++ b/src/go/types/selection.go
@@ -36,7 +36,6 @@ const (
 //	p.x         FieldVal      T       x      int        {0}       true
 //	p.m         MethodVal     *T      m      func()     {1, 0}    true
 //	T.m         MethodExpr    T       m      func(T)    {1, 0}    false
-//
 type Selection struct {
 	kind     SelectionKind
 	recv     Type   // type of x
@@ -115,7 +114,6 @@ func (s *Selection) String() string { return SelectionString(s, nil) }
 //	"field (T) f int"
 //	"method (T) f(X) Y"
 //	"method expr (T) f(X) Y"
-//
 func SelectionString(s *Selection, qf Qualifier) string {
 	var k string
 	switch s.kind {
diff --git a/src/go/types/sizes.go b/src/go/types/sizes.go
index dd4b78969f..fd18fc5796 100644
--- a/src/go/types/sizes.go
+++ b/src/go/types/sizes.go
@@ -39,7 +39,6 @@ type Sizes interface {
 //	  types are naturally aligned with a maximum alignment MaxAlign.
 //
 // *StdSizes implements Sizes.
-//
 type StdSizes struct {
 	WordSize int64 // word size in bytes - must be >= 4 (32bits)
 	MaxAlign int64 // maximum alignment in bytes - must be >= 1
diff --git a/src/go/types/typestring.go b/src/go/types/typestring.go
index 80210a2f34..0325d4a77f 100644
--- a/src/go/types/typestring.go
+++ b/src/go/types/typestring.go
@@ -26,7 +26,6 @@ import (
 //
 // Using a nil Qualifier is equivalent to using (*Package).Path: the
 // object is qualified by the import path, e.g., "encoding/json.Marshal".
-//
 type Qualifier func(*Package) string
 
 // RelativeTo returns a Qualifier that fully qualifies members of
diff --git a/src/go/types/typeterm.go b/src/go/types/typeterm.go
index 6b67821000..13b6ce6d0d 100644
--- a/src/go/types/typeterm.go
+++ b/src/go/types/typeterm.go
@@ -10,7 +10,6 @@ package types
 //   𝓤:  &term{}          == 𝓤                      // set of all types (𝓤niverse)
 //   T:  &term{false, T}  == {T}                    // set of type T
 //  ~t:  &term{true, t}   == {t' | under(t') == t}  // set of types with underlying type t
-//
 type term struct {
 	tilde bool // valid if typ != nil
 	typ   Type
diff --git a/src/go/types/typexpr.go b/src/go/types/typexpr.go
index bae9dc816c..b704372dcf 100644
--- a/src/go/types/typexpr.go
+++ b/src/go/types/typexpr.go
@@ -18,7 +18,6 @@ import (
 // If an error occurred, x.mode is set to invalid.
 // For the meaning of def, see Checker.definedType, below.
 // If wantType is set, the identifier e is expected to denote a type.
-//
 func (check *Checker) ident(x *operand, e *ast.Ident, def *Named, wantType bool) {
 	x.mode = invalid
 	x.expr = e
@@ -177,7 +176,6 @@ func (check *Checker) validVarType(e ast.Expr, typ Type) {
 // If def != nil, e is the type specification for the defined type def, declared
 // in a type declaration, and def.underlying will be set to the type of e before
 // any components of e are type-checked.
-//
 func (check *Checker) definedType(e ast.Expr, def *Named) Type {
 	typ := check.typInternal(e, def)
 	assert(isTyped(typ))
@@ -214,7 +212,6 @@ func goTypeName(typ Type) string {
 
 // typInternal drives type checking of types.
 // Must only be called by definedType or genericType.
-//
 func (check *Checker) typInternal(e0 ast.Expr, def *Named) (T Type) {
 	if trace {
 		check.trace(e0.Pos(), "-- type %s", e0)
diff --git a/src/go/types/universe.go b/src/go/types/universe.go
index f58128f480..8ac48e506e 100644
--- a/src/go/types/universe.go
+++ b/src/go/types/universe.go
@@ -246,7 +246,6 @@ func init() {
 // Objects with names containing blanks are internal and not entered into
 // a scope. Objects with exported names are inserted in the unsafe package
 // scope; other objects are inserted in the universe scope.
-//
 func def(obj Object) {
 	assert(obj.color() == black)
 	name := obj.Name()
diff --git a/src/html/template/template.go b/src/html/template/template.go
index 952f52979d..a99f69231c 100644
--- a/src/html/template/template.go
+++ b/src/html/template/template.go
@@ -72,7 +72,6 @@ func (t *Template) Templates() []*Template {
 //		The operation returns the zero value for the map type's element.
 //	"missingkey=error"
 //		Execution stops immediately with an error.
-//
 func (t *Template) Option(opt ...string) *Template {
 	t.text.Option(opt...)
 	return t
diff --git a/src/index/suffixarray/suffixarray.go b/src/index/suffixarray/suffixarray.go
index 9c169e7aca..cdc6e81a80 100644
--- a/src/index/suffixarray/suffixarray.go
+++ b/src/index/suffixarray/suffixarray.go
@@ -230,7 +230,6 @@ func (x *Index) Write(w io.Writer) error {
 
 // Bytes returns the data over which the index was created.
 // It must not be modified.
-//
 func (x *Index) Bytes() []byte {
 	return x.data
 }
@@ -255,7 +254,6 @@ func (x *Index) lookupAll(s []byte) ints {
 // The result is nil if s is empty, s is not found, or n == 0.
 // Lookup time is O(log(N)*len(s) + len(result)) where N is the
 // size of the indexed data.
-//
 func (x *Index) Lookup(s []byte, n int) (result []int) {
 	if len(s) > 0 && n != 0 {
 		matches := x.lookupAll(s)
@@ -286,7 +284,6 @@ func (x *Index) Lookup(s []byte, n int) (result []int) {
 // in successive order. Otherwise, at most n matches are returned and
 // they may not be successive. The result is nil if there are no matches,
 // or if n == 0.
-//
 func (x *Index) FindAllIndex(r *regexp.Regexp, n int) (result [][]int) {
 	// a non-empty literal prefix is used to determine possible
 	// match start indices with Lookup
diff --git a/src/internal/fmtsort/sort.go b/src/internal/fmtsort/sort.go
index 34c1f477f0..09e987d0e6 100644
--- a/src/internal/fmtsort/sort.go
+++ b/src/internal/fmtsort/sort.go
@@ -48,7 +48,6 @@ func (o *SortedMap) Swap(i, j int) {
 //    Otherwise identical arrays compare by length.
 //  - interface values compare first by reflect.Type describing the concrete type
 //    and then by concrete value as described in the previous rules.
-//
 func Sort(mapValue reflect.Value) *SortedMap {
 	if mapValue.Type().Kind() != reflect.Map {
 		return nil
diff --git a/src/io/fs/walk.go b/src/io/fs/walk.go
index 52a51bbd37..37800794a2 100644
--- a/src/io/fs/walk.go
+++ b/src/io/fs/walk.go
@@ -58,7 +58,6 @@ var SkipDir = errors.New("skip this directory")
 //     to bypass the directory read entirely.
 //   - If a directory read fails, the function is called a second time
 //     for that directory to report the error.
-//
 type WalkDirFunc func(path string, d DirEntry, err error) error
 
 // walkDir recursively descends path, calling walkDirFn.
diff --git a/src/math/big/float.go b/src/math/big/float.go
index a8c91a6e54..70c7b794a4 100644
--- a/src/math/big/float.go
+++ b/src/math/big/float.go
@@ -236,7 +236,6 @@ func (x *Float) Acc() Accuracy {
 //	-1 if x <   0
 //	 0 if x is ±0
 //	+1 if x >   0
-//
 func (x *Float) Sign() int {
 	if debugFloat {
 		x.validate()
@@ -1672,7 +1671,6 @@ func (z *Float) Quo(x, y *Float) *Float {
 //   -1 if x <  y
 //    0 if x == y (incl. -0 == 0, -Inf == -Inf, and +Inf == +Inf)
 //   +1 if x >  y
-//
 func (x *Float) Cmp(y *Float) int {
 	if debugFloat {
 		x.validate()
@@ -1707,7 +1705,6 @@ func (x *Float) Cmp(y *Float) int {
 //	 0 if x == 0 (signed or unsigned)
 //	+1 if 0 < x < +Inf
 //	+2 if x == +Inf
-//
 func (x *Float) ord() int {
 	var m int
 	switch x.form {
diff --git a/src/math/big/floatconv.go b/src/math/big/floatconv.go
index 57b7df3936..93f7195219 100644
--- a/src/math/big/floatconv.go
+++ b/src/math/big/floatconv.go
@@ -153,7 +153,6 @@ func (z *Float) scan(r io.ByteScanner, base int) (f *Float, b int, err error) {
 //	for p, q := uint64(0), uint64(1); p < q; p, q = q, q*5 {
 //		fmt.Println(q)
 //	}
-//
 var pow5tab = [...]uint64{
 	1,
 	5,
@@ -257,7 +256,6 @@ func (z *Float) pow5(n uint64) *Float {
 //
 // The returned *Float f is nil and the value of z is valid but not
 // defined if an error is reported.
-//
 func (z *Float) Parse(s string, base int) (f *Float, b int, err error) {
 	// scan doesn't handle ±Inf
 	if len(s) == 3 && (s == "Inf" || s == "inf") {
diff --git a/src/math/big/int.go b/src/math/big/int.go
index 7647346486..700d00d031 100644
--- a/src/math/big/int.go
+++ b/src/math/big/int.go
@@ -34,7 +34,6 @@ var intOne = &Int{false, natOne}
 //	-1 if x <  0
 //	 0 if x == 0
 //	+1 if x >  0
-//
 func (x *Int) Sign() int {
 	if len(x.abs) == 0 {
 		return 0
@@ -234,7 +233,6 @@ func (z *Int) Rem(x, y *Int) *Int {
 //
 // (See Daan Leijen, ``Division and Modulus for Computer Scientists''.)
 // See DivMod for Euclidean division and modulus (unlike Go).
-//
 func (z *Int) QuoRem(x, y, r *Int) (*Int, *Int) {
 	z.abs, r.abs = z.abs.div(r.abs, x.abs, y.abs)
 	z.neg, r.neg = len(z.abs) > 0 && x.neg != y.neg, len(r.abs) > 0 && x.neg // 0 has no sign
@@ -292,7 +290,6 @@ func (z *Int) Mod(x, y *Int) *Int {
 // Systems (TOPLAS), 14(2):127-144, New York, NY, USA, 4/1992.
 // ACM press.)
 // See QuoRem for T-division and modulus (like Go).
-//
 func (z *Int) DivMod(x, y, m *Int) (*Int, *Int) {
 	y0 := y // save y
 	if z == y || alias(z.abs, y.abs) {
@@ -316,7 +313,6 @@ func (z *Int) DivMod(x, y, m *Int) (*Int, *Int) {
 //   -1 if x <  y
 //    0 if x == y
 //   +1 if x >  y
-//
 func (x *Int) Cmp(y *Int) (r int) {
 	// x cmp y == x cmp y
 	// x cmp (-y) == x
@@ -343,7 +339,6 @@ func (x *Int) Cmp(y *Int) (r int) {
 //   -1 if |x| <  |y|
 //    0 if |x| == |y|
 //   +1 if |x| >  |y|
-//
 func (x *Int) CmpAbs(y *Int) int {
 	return x.abs.cmp(y.abs)
 }
@@ -420,7 +415,6 @@ func (x *Int) IsUint64() bool {
 // Incorrect placement of underscores is reported as an error if there
 // are no other errors. If base != 0, underscores are not recognized
 // and act like any other character that is not a valid digit.
-//
 func (z *Int) SetString(s string, base int) (*Int, bool) {
 	return z.setFromScanner(strings.NewReader(s), base)
 }
diff --git a/src/math/big/intconv.go b/src/math/big/intconv.go
index 0567284105..2fe10ff0a2 100644
--- a/src/math/big/intconv.go
+++ b/src/math/big/intconv.go
@@ -63,7 +63,6 @@ var _ fmt.Formatter = intOne // *Int must implement fmt.Formatter
 // specification of minimum digits precision, output field
 // width, space or zero padding, and '-' for left or right
 // justification.
-//
 func (x *Int) Format(s fmt.State, ch rune) {
 	// determine base
 	var base int
@@ -178,7 +177,6 @@ func (x *Int) Format(s fmt.State, ch rune) {
 // ``0b'' or ``0B'' selects base 2; a ``0'', ``0o'', or ``0O'' prefix selects
 // base 8, and a ``0x'' or ``0X'' prefix selects base 16. Otherwise the selected
 // base is 10.
-//
 func (z *Int) scan(r io.ByteScanner, base int) (*Int, int, error) {
 	// determine sign
 	neg, err := scanSign(r)
diff --git a/src/math/big/nat.go b/src/math/big/nat.go
index 31e1ad8fcf..ee0c63eb28 100644
--- a/src/math/big/nat.go
+++ b/src/math/big/nat.go
@@ -31,7 +31,6 @@ import (
 // During arithmetic operations, denormalized values may occur but are
 // always normalized before returning the final result. The normalized
 // representation of 0 is the empty or nil slice (length = 0).
-//
 type nat []Word
 
 var (
diff --git a/src/math/big/natconv.go b/src/math/big/natconv.go
index 42d1cccf6f..99488ac833 100644
--- a/src/math/big/natconv.go
+++ b/src/math/big/natconv.go
@@ -105,7 +105,6 @@ var (
 // parsed. A digit count <= 0 indicates the presence of a period (if fracOk
 // is set, only), and -count is the number of fractional digits found.
 // In this case, the actual value of the scanned number is res * b**count.
-//
 func (z nat) scan(r io.ByteScanner, base int, fracOk bool) (res nat, b, count int, err error) {
 	// reject invalid bases
 	baseOk := base == 0 ||
@@ -366,7 +365,6 @@ func (x nat) itoa(neg bool, base int) []byte {
 // range 2..64 shows that values of 8 and 16 work well, with a 4x speedup at medium lengths and
 // ~30x for 20000 digits. Use nat_test.go's BenchmarkLeafSize tests to optimize leafSize for
 // specific hardware.
-//
 func (q nat) convertWords(s []byte, b Word, ndigits int, bb Word, table []divisor) {
 	// split larger blocks recursively
 	if table != nil {
diff --git a/src/math/big/rat.go b/src/math/big/rat.go
index 731a979ff7..e77da67d1b 100644
--- a/src/math/big/rat.go
+++ b/src/math/big/rat.go
@@ -392,7 +392,6 @@ func (z *Rat) Inv(x *Rat) *Rat {
 //	-1 if x <  0
 //	 0 if x == 0
 //	+1 if x >  0
-//
 func (x *Rat) Sign() int {
 	return x.a.Sign()
 }
@@ -482,7 +481,6 @@ func (z *Int) scaleDenom(x *Int, f nat) {
 //   -1 if x <  y
 //    0 if x == y
 //   +1 if x >  y
-//
 func (x *Rat) Cmp(y *Rat) int {
 	var a, b Int
 	a.scaleDenom(&x.a, y.b.abs)
diff --git a/src/math/rand/exp.go b/src/math/rand/exp.go
index 5a8d946c0c..9a07ba1be0 100644
--- a/src/math/rand/exp.go
+++ b/src/math/rand/exp.go
@@ -27,7 +27,6 @@ const (
 // callers can adjust the output using:
 //
 //  sample = ExpFloat64() / desiredRateParameter
-//
 func (r *Rand) ExpFloat64() float64 {
 	for {
 		j := r.Uint32()
diff --git a/src/math/rand/normal.go b/src/math/rand/normal.go
index 2c5a7aa99b..48ecdd5adb 100644
--- a/src/math/rand/normal.go
+++ b/src/math/rand/normal.go
@@ -34,7 +34,6 @@ func absInt32(i int32) uint32 {
 // adjust the output using:
 //
 //  sample = NormFloat64() * desiredStdDev + desiredMean
-//
 func (r *Rand) NormFloat64() float64 {
 	for {
 		j := int32(r.Uint32()) // Possibly negative
diff --git a/src/math/rand/rand.go b/src/math/rand/rand.go
index 13f20ca5ef..dfbd1fa4e7 100644
--- a/src/math/rand/rand.go
+++ b/src/math/rand/rand.go
@@ -366,7 +366,6 @@ func Read(p []byte) (n int, err error) { return globalRand.Read(p) }
 // adjust the output using:
 //
 //  sample = NormFloat64() * desiredStdDev + desiredMean
-//
 func NormFloat64() float64 { return globalRand.NormFloat64() }
 
 // ExpFloat64 returns an exponentially distributed float64 in the range
@@ -376,7 +375,6 @@ func NormFloat64() float64 { return globalRand.NormFloat64() }
 // callers can adjust the output using:
 //
 //  sample = ExpFloat64() / desiredRateParameter
-//
 func ExpFloat64() float64 { return globalRand.ExpFloat64() }
 
 type lockedSource struct {
diff --git a/src/net/http/client.go b/src/net/http/client.go
index 465ee0b723..bc0ed1fc50 100644
--- a/src/net/http/client.go
+++ b/src/net/http/client.go
@@ -54,7 +54,6 @@ import (
 // with the expectation that the Jar will insert those mutated cookies
 // with the updated values (assuming the origin matches).
 // If Jar is nil, the initial cookies are forwarded without change.
-//
 type Client struct {
 	// Transport specifies the mechanism by which individual
 	// HTTP requests are made.
diff --git a/src/net/http/fs.go b/src/net/http/fs.go
index 6caee9ed93..d8f924296b 100644
--- a/src/net/http/fs.go
+++ b/src/net/http/fs.go
@@ -836,7 +836,6 @@ func FS(fsys fs.FS) FileSystem {
 // To use an fs.FS implementation, use http.FS to convert it:
 //
 //	http.Handle("/", http.FileServer(http.FS(fsys)))
-//
 func FileServer(root FileSystem) Handler {
 	return &fileHandler{root}
 }
diff --git a/src/net/http/transport.go b/src/net/http/transport.go
index e41b20a15b..f2d538b04a 100644
--- a/src/net/http/transport.go
+++ b/src/net/http/transport.go
@@ -1795,7 +1795,6 @@ var _ io.ReaderFrom = (*persistConnWriter)(nil)
 //	socks5://proxy.com|https|foo.com  socks5 to proxy, then https to foo.com
 //	https://proxy.com|https|foo.com   https to proxy, then CONNECT to foo.com
 //	https://proxy.com|http            https to proxy, http to anywhere after that
-//
 type connectMethod struct {
 	_            incomparable
 	proxyURL     *url.URL // nil for no proxy, else full proxy URL
diff --git a/src/net/textproto/reader.go b/src/net/textproto/reader.go
index 157c59b17a..ac47f00700 100644
--- a/src/net/textproto/reader.go
+++ b/src/net/textproto/reader.go
@@ -88,7 +88,6 @@ func (r *Reader) readLineSlice() ([]byte, error) {
 // and the second will return "Line 2".
 //
 // Empty lines are never continued.
-//
 func (r *Reader) ReadContinuedLine() (string, error) {
 	line, err := r.readContinuedLineSlice(noValidation)
 	return string(line), err
@@ -230,7 +229,6 @@ func parseCodeLine(line string, expectCode int) (code int, continued bool, messa
 // If the response is multi-line, ReadCodeLine returns an error.
 //
 // An expectCode <= 0 disables the check of the status code.
-//
 func (r *Reader) ReadCodeLine(expectCode int) (code int, message string, err error) {
 	code, continued, message, err := r.readCodeLine(expectCode)
 	if err == nil && continued {
@@ -265,7 +263,6 @@ func (r *Reader) ReadCodeLine(expectCode int) (code int, message string, err err
 // the status is not in the range [310,319].
 //
 // An expectCode <= 0 disables the check of the status code.
-//
 func (r *Reader) ReadResponse(expectCode int) (code int, message string, err error) {
 	code, continued, message, err := r.readCodeLine(expectCode)
 	multi := continued
@@ -481,7 +478,6 @@ var colon = []byte(":")
 //		"My-Key": {"Value 1", "Value 2"},
 //		"Long-Key": {"Even Longer Value"},
 //	}
-//
 func (r *Reader) ReadMIMEHeader() (MIMEHeader, error) {
 	// Avoid lots of small slice allocations later by allocating one
 	// large one ahead of time which we'll cut up into smaller
diff --git a/src/net/textproto/textproto.go b/src/net/textproto/textproto.go
index cc1a847e4e..3487a7dfaf 100644
--- a/src/net/textproto/textproto.go
+++ b/src/net/textproto/textproto.go
@@ -110,7 +110,6 @@ func Dial(network, addr string) (*Conn, error) {
 //		return nil, err
 //	}
 //	return c.ReadCodeLine(250)
-//
 func (c *Conn) Cmd(format string, args ...any) (id uint, err error) {
 	id = c.Next()
 	c.StartRequest(id)
diff --git a/src/path/filepath/match.go b/src/path/filepath/match.go
index c77a26952a..847a78133d 100644
--- a/src/path/filepath/match.go
+++ b/src/path/filepath/match.go
@@ -40,7 +40,6 @@ var ErrBadPattern = errors.New("syntax error in pattern")
 //
 // On Windows, escaping is disabled. Instead, '\\' is treated as
 // path separator.
-//
 func Match(pattern, name string) (matched bool, err error) {
 Pattern:
 	for len(pattern) > 0 {
diff --git a/src/path/match.go b/src/path/match.go
index 918624c60e..673bbc7ff6 100644
--- a/src/path/match.go
+++ b/src/path/match.go
@@ -34,7 +34,6 @@ var ErrBadPattern = errors.New("syntax error in pattern")
 // Match requires pattern to match all of name, not just a substring.
 // The only possible returned error is ErrBadPattern, when pattern
 // is malformed.
-//
 func Match(pattern, name string) (matched bool, err error) {
 Pattern:
 	for len(pattern) > 0 {
diff --git a/src/reflect/all_test.go b/src/reflect/all_test.go
index 06026232ee..5a35d98b51 100644
--- a/src/reflect/all_test.go
+++ b/src/reflect/all_test.go
@@ -6291,7 +6291,6 @@ func TestAllocsInterfaceSmall(t *testing.T) {
 //	[false false false false]
 //	...
 //	[true true true true]
-//
 type exhaustive struct {
 	r    *rand.Rand
 	pos  int
diff --git a/src/reflect/makefunc.go b/src/reflect/makefunc.go
index d0b0935cb8..e4acdc318b 100644
--- a/src/reflect/makefunc.go
+++ b/src/reflect/makefunc.go
@@ -43,7 +43,6 @@ type makeFuncImpl struct {
 //
 // The Examples section of the documentation includes an illustration
 // of how to use MakeFunc to build a swap function for different types.
-//
 func MakeFunc(typ Type, fn func(args []Value) (results []Value)) Value {
 	if typ.Kind() != Func {
 		panic("reflect: call of MakeFunc with non-Func type")
diff --git a/src/reflect/value.go b/src/reflect/value.go
index 89f0253570..7a20b6bd23 100644
--- a/src/reflect/value.go
+++ b/src/reflect/value.go
@@ -1830,7 +1830,6 @@ func (iter *MapIter) Reset(v Value) {
 //		v := iter.Value()
 //		...
 //	}
-//
 func (v Value) MapRange() *MapIter {
 	v.mustBe(Map)
 	return &MapIter{m: v}
@@ -2785,7 +2784,6 @@ const (
 // Normally Chan's underlying value must be a channel and Send must be a zero Value.
 // If Chan is a zero Value, then the case is ignored, but Send must still be a zero Value.
 // When a receive operation is selected, the received Value is returned by Select.
-//
 type SelectCase struct {
 	Dir  SelectDir // direction of case
 	Chan Value     // channel to use (for send or receive)
diff --git a/src/regexp/exec_test.go b/src/regexp/exec_test.go
index 5f8442668c..a6e833050b 100644
--- a/src/regexp/exec_test.go
+++ b/src/regexp/exec_test.go
@@ -62,7 +62,6 @@ import (
 //
 // At time of writing, re2-exhaustive.txt is 59 MB but compresses to 385 kB,
 // so we store re2-exhaustive.txt.bz2 in the repository and decompress it on the fly.
-//
 func TestRE2Search(t *testing.T) {
 	testRE2(t, "testdata/re2-search.txt")
 }
diff --git a/src/regexp/syntax/parse.go b/src/regexp/syntax/parse.go
index 0f6587ab27..fa45def9b7 100644
--- a/src/regexp/syntax/parse.go
+++ b/src/regexp/syntax/parse.go
@@ -449,7 +449,6 @@ func (p *parser) collapse(subs []*Regexp, op Op) *Regexp {
 //     A(B(C|D)|EF)|BC(X|Y)
 // which simplifies by character class introduction to
 //     A(B[CD]|EF)|BC[XY]
-//
 func (p *parser) factor(sub []*Regexp) []*Regexp {
 	if len(sub) < 2 {
 		return sub
diff --git a/src/runtime/chan.go b/src/runtime/chan.go
index 16fec26aeb..a16782ae94 100644
--- a/src/runtime/chan.go
+++ b/src/runtime/chan.go
@@ -683,7 +683,6 @@ func chanparkcommit(gp *g, chanLock unsafe.Pointer) bool {
 //	} else {
 //		... bar
 //	}
-//
 func selectnbsend(c *hchan, elem unsafe.Pointer) (selected bool) {
 	return chansend(c, elem, false, getcallerpc())
 }
@@ -704,7 +703,6 @@ func selectnbsend(c *hchan, elem unsafe.Pointer) (selected bool) {
 //	} else {
 //		... bar
 //	}
-//
 func selectnbrecv(elem unsafe.Pointer, c *hchan) (selected, received bool) {
 	return chanrecv(c, elem, false)
 }
diff --git a/src/runtime/compiler.go b/src/runtime/compiler.go
index 1ebc62dea1..f430a27719 100644
--- a/src/runtime/compiler.go
+++ b/src/runtime/compiler.go
@@ -9,5 +9,4 @@ package runtime
 //
 //	gc      Also known as cmd/compile.
 //	gccgo   The gccgo front end, part of the GCC compiler suite.
-//
 const Compiler = "gc"
diff --git a/src/runtime/lock_sema.go b/src/runtime/lock_sema.go
index db36df1f37..6961c2ea9b 100644
--- a/src/runtime/lock_sema.go
+++ b/src/runtime/lock_sema.go
@@ -23,7 +23,6 @@ import (
 //
 //	func semawakeup(mp *m)
 //		Wake up mp, which is or will soon be sleeping on its semaphore.
-//
 const (
 	locked uintptr = 1
 
diff --git a/src/runtime/pprof/pprof.go b/src/runtime/pprof/pprof.go
index d75efce7a8..e3cd6b9d2a 100644
--- a/src/runtime/pprof/pprof.go
+++ b/src/runtime/pprof/pprof.go
@@ -130,7 +130,6 @@ import (
 // The CPU profile is not available as a Profile. It has a special API,
 // the StartCPUProfile and StopCPUProfile functions, because it streams
 // output to a writer during profiling.
-//
 type Profile struct {
 	name  string
 	mu    sync.Mutex
@@ -276,7 +275,6 @@ func (p *Profile) Count() int {
 //
 // Passing skip=0 begins the stack trace at the call to Add inside rpc.NewClient.
 // Passing skip=1 begins the stack trace at the call to NewClient inside mypkg.Run.
-//
 func (p *Profile) Add(value any, skip int) {
 	if p.name == "" {
 		panic("pprof: use of uninitialized Profile")
diff --git a/src/runtime/profbuf.go b/src/runtime/profbuf.go
index f40881aed5..3d907d5612 100644
--- a/src/runtime/profbuf.go
+++ b/src/runtime/profbuf.go
@@ -84,7 +84,6 @@ import (
 //	if uint32(overflow) > 0 {
 //		emit entry for uint32(overflow), time
 //	}
-//
 type profBuf struct {
 	// accessed atomically
 	r, w         profAtomic
diff --git a/src/runtime/trace/annotation.go b/src/runtime/trace/annotation.go
index d05b5e2261..bf3dbc3d79 100644
--- a/src/runtime/trace/annotation.go
+++ b/src/runtime/trace/annotation.go
@@ -149,7 +149,6 @@ func WithRegion(ctx context.Context, regionType string, fn func()) {
 // Recommended usage is
 //
 //     defer trace.StartRegion(ctx, "myTracedRegion").End()
-//
 func StartRegion(ctx context.Context, regionType string) *Region {
 	if !IsEnabled() {
 		return noopRegion
diff --git a/src/sort/search.go b/src/sort/search.go
index fcff0f9491..601557a94b 100644
--- a/src/sort/search.go
+++ b/src/sort/search.go
@@ -55,7 +55,6 @@ package sort
 //		})
 //		fmt.Printf("Your number is %d.\n", answer)
 //	}
-//
 func Search(n int, f func(int) bool) int {
 	// Define f(-1) == false and f(n) == true.
 	// Invariant: f(i-1) == false, f(j) == true.
@@ -79,7 +78,6 @@ func Search(n int, f func(int) bool) int {
 // as specified by Search. The return value is the index to insert x if x is
 // not present (it could be len(a)).
 // The slice must be sorted in ascending order.
-//
 func SearchInts(a []int, x int) int {
 	return Search(len(a), func(i int) bool { return a[i] >= x })
 }
@@ -88,7 +86,6 @@ func SearchInts(a []int, x int) int {
 // as specified by Search. The return value is the index to insert x if x is not
 // present (it could be len(a)).
 // The slice must be sorted in ascending order.
-//
 func SearchFloat64s(a []float64, x float64) int {
 	return Search(len(a), func(i int) bool { return a[i] >= x })
 }
@@ -97,7 +94,6 @@ func SearchFloat64s(a []float64, x float64) int {
 // as specified by Search. The return value is the index to insert x if x is not
 // present (it could be len(a)).
 // The slice must be sorted in ascending order.
-//
 func SearchStrings(a []string, x string) int {
 	return Search(len(a), func(i int) bool { return a[i] >= x })
 }
diff --git a/src/sort/search_test.go b/src/sort/search_test.go
index ded68ebde0..f06897ee21 100644
--- a/src/sort/search_test.go
+++ b/src/sort/search_test.go
@@ -59,7 +59,6 @@ func TestSearch(t *testing.T) {
 
 // log2 computes the binary logarithm of x, rounded up to the next integer.
 // (log2(0) == 0, log2(1) == 0, log2(2) == 1, log2(3) == 2, etc.)
-//
 func log2(x int) int {
 	n := 0
 	for p := 1; p < x; p += p {
diff --git a/src/sort/sort.go b/src/sort/sort.go
index 2c197afc03..aed0eaba30 100644
--- a/src/sort/sort.go
+++ b/src/sort/sort.go
@@ -111,7 +111,6 @@ func (x Float64Slice) Len() int { return len(x) }
 // This implementation of Less places NaN values before any others, by using:
 //
 //	x[i] < x[j] || (math.IsNaN(x[i]) && !math.IsNaN(x[j]))
-//
 func (x Float64Slice) Less(i, j int) bool { return x[i] < x[j] || (isNaN(x[i]) && !isNaN(x[j])) }
 func (x Float64Slice) Swap(i, j int)      { x[i], x[j] = x[j], x[i] }
 
diff --git a/src/strconv/itoa.go b/src/strconv/itoa.go
index 45e4192c82..b0c2666e7c 100644
--- a/src/strconv/itoa.go
+++ b/src/strconv/itoa.go
@@ -85,7 +85,6 @@ const digits = "0123456789abcdefghijklmnopqrstuvwxyz"
 // set, the string is appended to dst and the resulting byte slice is
 // returned as the first result value; otherwise the string is returned
 // as the second result value.
-//
 func formatBits(dst []byte, u uint64, base int, neg, append_ bool) (d []byte, s string) {
 	if base < 2 || base > len(digits) {
 		panic("strconv: illegal AppendInt/FormatInt base")
diff --git a/src/sync/cond.go b/src/sync/cond.go
index b254c9360a..d86ebc8b50 100644
--- a/src/sync/cond.go
+++ b/src/sync/cond.go
@@ -48,7 +48,6 @@ func NewCond(l Locker) *Cond {
 //    }
 //    ... make use of condition ...
 //    c.L.Unlock()
-//
 func (c *Cond) Wait() {
 	c.checker.check()
 	t := runtime_notifyListAdd(&c.notify)
diff --git a/src/sync/once.go b/src/sync/once.go
index 8844314e7e..e5ba257d87 100644
--- a/src/sync/once.go
+++ b/src/sync/once.go
@@ -38,7 +38,6 @@ type Once struct {
 //
 // If f panics, Do considers it to have returned; future calls of Do return
 // without calling f.
-//
 func (o *Once) Do(f func()) {
 	// Note: Here is an incorrect implementation of Do:
 	//
diff --git a/src/testing/fstest/testfs.go b/src/testing/fstest/testfs.go
index 9a65fbbd0b..ddb6080882 100644
--- a/src/testing/fstest/testfs.go
+++ b/src/testing/fstest/testfs.go
@@ -33,7 +33,6 @@ import (
 //	if err := fstest.TestFS(myFS, "file/that/should/be/present"); err != nil {
 //		t.Fatal(err)
 //	}
-//
 func TestFS(fsys fs.FS, expected ...string) error {
 	if err := testFS(fsys, expected...); err != nil {
 		return err
diff --git a/src/text/scanner/scanner.go b/src/text/scanner/scanner.go
index 735982afcb..44be0b6bd4 100644
--- a/src/text/scanner/scanner.go
+++ b/src/text/scanner/scanner.go
@@ -60,7 +60,6 @@ func (pos Position) String() string {
 //
 // Use GoTokens to configure the Scanner such that it accepts all Go
 // literal tokens including Go identifiers. Comments will be skipped.
-//
 const (
 	ScanIdents     = 1 << -Ident
 	ScanInts       = 1 << -Int
diff --git a/src/text/tabwriter/tabwriter.go b/src/text/tabwriter/tabwriter.go
index 76dec7b358..d4cfcf556a 100644
--- a/src/text/tabwriter/tabwriter.go
+++ b/src/text/tabwriter/tabwriter.go
@@ -23,7 +23,6 @@ import (
 // The text itself is stored in a separate buffer; cell only describes the
 // segment's size in bytes, its width in runes, and whether it's an htab
 // ('\t') terminated cell.
-//
 type cell struct {
 	size  int  // cell size in bytes
 	width int  // cell width in runes
@@ -87,7 +86,6 @@ type cell struct {
 // The Writer must buffer input internally, because proper spacing
 // of one line may depend on the cells in future lines. Clients must
 // call Flush when done calling Write.
-//
 type Writer struct {
 	// configuration
 	output   io.Writer
@@ -207,7 +205,6 @@ const (
 //			(for correct-looking results, tabwidth must correspond
 //			to the tab width in the viewer displaying the result)
 //	flags		formatting control
-//
 func (b *Writer) Init(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) *Writer {
 	if minwidth < 0 || tabwidth < 0 || padding < 0 {
 		panic("negative minwidth, tabwidth, or padding")
@@ -350,7 +347,6 @@ func (b *Writer) writeLines(pos0 int, line0, line1 int) (pos int) {
 // is the buffer position corresponding to the beginning of line0.
 // Returns the buffer position corresponding to the beginning of
 // line1 and an error, if any.
-//
 func (b *Writer) format(pos0 int, line0, line1 int) (pos int) {
 	pos = pos0
 	column := len(b.widths)
@@ -427,7 +423,6 @@ func (b *Writer) updateWidth() {
 // width one for formatting purposes.
 //
 // The value 0xff was chosen because it cannot appear in a valid UTF-8 sequence.
-//
 const Escape = '\xff'
 
 // Start escaped mode.
@@ -446,7 +441,6 @@ func (b *Writer) startEscape(ch byte) {
 // is assumed to be zero for formatting purposes; if it was an HTML entity,
 // its width is assumed to be one. In all other cases, the width is the
 // unicode width of the text.
-//
 func (b *Writer) endEscape() {
 	switch b.endChar {
 	case Escape:
@@ -464,7 +458,6 @@ func (b *Writer) endEscape() {
 
 // Terminate the current cell by adding it to the list of cells of the
 // current line. Returns the number of cells in that line.
-//
 func (b *Writer) terminateCell(htab bool) int {
 	b.cell.htab = htab
 	line := &b.lines[len(b.lines)-1]
@@ -526,7 +519,6 @@ var hbar = []byte("---\n")
 // Write writes buf to the writer b.
 // The only errors returned are ones encountered
 // while writing to the underlying output stream.
-//
 func (b *Writer) Write(buf []byte) (n int, err error) {
 	defer b.handlePanic(&err, "Write")
 
@@ -603,7 +595,6 @@ func (b *Writer) Write(buf []byte) (n int, err error) {
 
 // NewWriter allocates and initializes a new tabwriter.Writer.
 // The parameters are the same as for the Init function.
-//
 func NewWriter(output io.Writer, minwidth, tabwidth, padding int, padchar byte, flags uint) *Writer {
 	return new(Writer).Init(output, minwidth, tabwidth, padding, padchar, flags)
 }
diff --git a/src/text/template/option.go b/src/text/template/option.go
index 1035afad72..8d7d436bd0 100644
--- a/src/text/template/option.go
+++ b/src/text/template/option.go
@@ -38,7 +38,6 @@ type option struct {
 //		The operation returns the zero value for the map type's element.
 //	"missingkey=error"
 //		Execution stops immediately with an error.
-//
 func (t *Template) Option(opt ...string) *Template {
 	t.init()
 	for _, s := range opt {
diff --git a/src/time/format.go b/src/time/format.go
index 33e6543289..95fe08b772 100644
--- a/src/time/format.go
+++ b/src/time/format.go
@@ -87,7 +87,6 @@ import "errors"
 //
 // Some valid layouts are invalid time values for time.Parse, due to formats
 // such as _ for space padding and Z for zone information.
-//
 const (
 	Layout      = "01/02 03:04:05PM '06 -0700" // The reference time, in numerical order.
 	ANSIC       = "Mon Jan _2 15:04:05 2006"
diff --git a/src/time/time.go b/src/time/time.go
index d77074c5c2..88301ec16b 100644
--- a/src/time/time.go
+++ b/src/time/time.go
@@ -123,7 +123,6 @@ import (
 // to t == u, since t.Equal uses the most accurate comparison available and
 // correctly handles the case when only one of its arguments has a monotonic
 // clock reading.
-//
 type Time struct {
 	// wall and ext encode the wall time seconds, wall time nanoseconds,
 	// and optional monotonic clock reading in nanoseconds.
@@ -603,7 +602,6 @@ const (
 // To convert an integer number of units to a Duration, multiply:
 //	seconds := 10
 //	fmt.Print(time.Duration(seconds)*time.Second) // prints 10s
-//
 const (
 	Nanosecond  Duration = 1
 	Microsecond          = 1000 * Nanosecond
diff --git a/src/unicode/letter.go b/src/unicode/letter.go
index 268e457a87..f4c950a883 100644
--- a/src/unicode/letter.go
+++ b/src/unicode/letter.go
@@ -334,7 +334,6 @@ type foldPair struct {
 //	SimpleFold('1') = '1'
 //
 //	SimpleFold(-2) = -2
-//
 func SimpleFold(r rune) rune {
 	if r < 0 || r > MaxRune {
 		return r
diff --git a/src/unsafe/unsafe.go b/src/unsafe/unsafe.go
index a6a255658b..4a3d7feda7 100644
--- a/src/unsafe/unsafe.go
+++ b/src/unsafe/unsafe.go
@@ -180,7 +180,6 @@ type IntegerType int
 //	hdr.Data = uintptr(unsafe.Pointer(p))
 //	hdr.Len = n
 //	s := *(*string)(unsafe.Pointer(&hdr)) // p possibly already lost
-//
 type Pointer *ArbitraryType
 
 // Sizeof takes an expression x of any type and returns the size in bytes

From 67d6a510653c8dcb2e2a4eca5a0e7caf4fe38677 Mon Sep 17 00:00:00 2001
From: "Bryan C. Mills" 
Date: Mon, 14 Feb 2022 16:07:05 -0500
Subject: [PATCH 092/125] net: in TestNotTemporaryRead, reject io.EOF on
 platforms other than plan9

Updates #29685

Change-Id: Id8dca078213942666871ac8ded663326e98427fe
Reviewed-on: https://go-review.googlesource.com/c/go/+/385754
Reviewed-by: Ian Lance Taylor 
Reviewed-by: Emmanuel Odeke 
Trust: Bryan Mills 
Run-TryBot: Bryan Mills 
TryBot-Result: Gopher Robot 
---
 src/net/net_test.go | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/net/net_test.go b/src/net/net_test.go
index 76a9c8b151..fa5ad632bb 100644
--- a/src/net/net_test.go
+++ b/src/net/net_test.go
@@ -549,9 +549,7 @@ func TestNotTemporaryRead(t *testing.T) {
 		if runtime.GOOS == "plan9" {
 			return
 		}
-		// TODO: during an open development cycle, try making this a failure
-		// and see whether it causes the test to become flaky anywhere else.
-		return
+		t.Fatal("Read unexpectedly returned io.EOF after socket was abruptly closed")
 	}
 	if ne, ok := err.(Error); !ok {
 		t.Errorf("Read error does not implement net.Error: %v", err)

From 153c18a515c90a78bf4c90a56e4ba5b700f407b1 Mon Sep 17 00:00:00 2001
From: hopehook 
Date: Mon, 21 Mar 2022 16:18:00 +0800
Subject: [PATCH 093/125] net/netip: improve documentation terminology for
 IPv4-mapped IPv6 addresses

Updates #51834

Change-Id: I07a43457e2e328b51fea8131f7d6d5a4f1de4dc5
Reviewed-on: https://go-review.googlesource.com/c/go/+/394078
Trust: Damien Neil 
Run-TryBot: Damien Neil 
TryBot-Result: Gopher Robot 
Reviewed-by: Damien Neil 
Trust: Ian Lance Taylor 
Reviewed-by: Emmanuel Odeke 
---
 src/net/netip/netip.go      | 8 ++++----
 src/net/netip/netip_test.go | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/net/netip/netip.go b/src/net/netip/netip.go
index 893eeea7f0..8fad25db8d 100644
--- a/src/net/netip/netip.go
+++ b/src/net/netip/netip.go
@@ -456,7 +456,7 @@ func (ip Addr) lessOrEq(ip2 Addr) bool { return ip.Compare(ip2) <= 0 }
 
 // Is4 reports whether ip is an IPv4 address.
 //
-// It returns false for IP4-mapped IPv6 addresses. See IP.Unmap.
+// It returns false for IPv4-mapped IPv6 addresses. See IP.Unmap.
 func (ip Addr) Is4() bool {
 	return ip.z == z4
 }
@@ -675,7 +675,7 @@ const (
 )
 
 // As16 returns the IP address in its 16-byte representation.
-// IPv4 addresses are returned in their IPv4-mapped IPv6 form.
+// IPv4 addresses are returned as IPv4-mapped IPv6 addresses.
 // IPv6 addresses with zones are returned without their zone (use the
 // Zone method to get it).
 // The ip zero value returns all zeroes.
@@ -758,7 +758,7 @@ func (ip Addr) Prev() Addr {
 //   - IPv6 with zone ("fe80:db8::1%eth0")
 //
 // Note that unlike package net's IP.String method,
-// IP4-mapped IPv6 addresses format with a "::ffff:"
+// IPv4-mapped IPv6 addresses format with a "::ffff:"
 // prefix before the dotted quad.
 func (ip Addr) String() string {
 	switch ip.z {
@@ -1380,7 +1380,7 @@ func (p Prefix) Contains(ip Addr) bool {
 //
 // If p and o are of different address families or either have a zero
 // IP, it reports false. Like the Contains method, a prefix with an
-// IPv4-mapped IPv6 IP is still treated as an IPv6 mask.
+// IPv4-mapped IPv6 address is still treated as an IPv6 mask.
 func (p Prefix) Overlaps(o Prefix) bool {
 	if !p.IsValid() || !o.IsValid() {
 		return false
diff --git a/src/net/netip/netip_test.go b/src/net/netip/netip_test.go
index c2811c4703..35f7cd69e1 100644
--- a/src/net/netip/netip_test.go
+++ b/src/net/netip/netip_test.go
@@ -1757,7 +1757,7 @@ func TestPrefixOverlaps(t *testing.T) {
 		{pfx("1::1/128"), pfx("2::2/128"), false},
 		{pfx("0100::0/8"), pfx("::1/128"), false},
 
-		// IPv4-mapped IPv6 should not overlap with IPv4.
+		// IPv4-mapped IPv6 addresses should not overlap with IPv4.
 		{PrefixFrom(AddrFrom16(mustIP("1.2.0.0").As16()), 16), pfx("1.2.3.0/24"), false},
 
 		// Invalid prefixes

From f8e70fc9a6d2a88d51d36208e64b12a236fce1b1 Mon Sep 17 00:00:00 2001
From: hopehook 
Date: Wed, 30 Mar 2022 15:47:57 +0800
Subject: [PATCH 094/125] strings: document the use of simple case-folding in
 EqualFold

Fixes #52022

Change-Id: I077fc062dfd02f79eb83713490efbe0bdc783d8b
Reviewed-on: https://go-review.googlesource.com/c/go/+/396616
Reviewed-by: Ian Lance Taylor 
Run-TryBot: Ian Lance Taylor 
Auto-Submit: Ian Lance Taylor 
TryBot-Result: Gopher Robot 
Reviewed-by: Emmanuel Odeke 
---
 src/strings/example_test.go | 7 ++++++-
 src/strings/strings.go      | 4 +++-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/strings/example_test.go b/src/strings/example_test.go
index 94aa167f90..2a59512ceb 100644
--- a/src/strings/example_test.go
+++ b/src/strings/example_test.go
@@ -95,7 +95,12 @@ func ExampleCut() {
 
 func ExampleEqualFold() {
 	fmt.Println(strings.EqualFold("Go", "go"))
-	// Output: true
+	fmt.Println(strings.EqualFold("AB", "ab")) // true because comparison uses simple case-folding
+	fmt.Println(strings.EqualFold("ß", "ss"))  // false because comparison does not use full case-folding
+	// Output:
+	// true
+	// true
+	// false
 }
 
 func ExampleFields() {
diff --git a/src/strings/strings.go b/src/strings/strings.go
index ed3184b59c..74e505338e 100644
--- a/src/strings/strings.go
+++ b/src/strings/strings.go
@@ -1041,8 +1041,10 @@ func ReplaceAll(s, old, new string) string {
 }
 
 // EqualFold reports whether s and t, interpreted as UTF-8 strings,
-// are equal under Unicode case-folding, which is a more general
+// are equal under simple Unicode case-folding, which is a more general
 // form of case-insensitivity.
+//
+// EqualFold(s, t) is equivalent to Tolower(s) == Tolower(t).
 func EqualFold(s, t string) bool {
 	for s != "" && t != "" {
 		// Extract first rune from each string.

From 8a816d5efcc842ae92f0193aa9c1d433bd66ef31 Mon Sep 17 00:00:00 2001
From: Robert Findley 
Date: Wed, 30 Mar 2022 09:56:13 -0400
Subject: [PATCH 095/125] go/types: don't report errors for untyped int shifts
 on Go < 1.13

CL 337529 introduced upfront type-checking of constant shift operands,
to avoid converting their type to uint (per the spec). However, it
had an oversight in that the checks intended for non-constant operands
still ran after the explicit checking of constant operands. As a
result, there are at least two bugs:
 - When GoVersion is < 1.13, we report spurious errors for untyped
   constant shift operands.
 - When the operand is an untyped float constant, we still convert to
   uint (this was a known bug reported in #47410).

Looking at this now, it seems clear that we can avoid both of these bugs
by simply not running the additional checks in the case of a constant
operand. However, this should be considered with some care, as shifts
are notoriously tricky.

Updates #47410
Fixes #52031

Change-Id: Ia489cc5470b92a8187d3de0423d05b309daf47bb
Reviewed-on: https://go-review.googlesource.com/c/go/+/396775
Reviewed-by: Robert Griesemer 
Trust: Robert Findley 
Run-TryBot: Robert Findley 
TryBot-Result: Gopher Robot 
---
 src/go/types/api_test.go                      |  2 +-
 src/go/types/check_test.go                    |  5 +++
 src/go/types/expr.go                          | 38 +++++++++----------
 src/go/types/testdata/fixedbugs/issue52031.go | 33 ++++++++++++++++
 4 files changed, 58 insertions(+), 20 deletions(-)
 create mode 100644 src/go/types/testdata/fixedbugs/issue52031.go

diff --git a/src/go/types/api_test.go b/src/go/types/api_test.go
index 9ed4633b6f..0ad97c5922 100644
--- a/src/go/types/api_test.go
+++ b/src/go/types/api_test.go
@@ -330,7 +330,7 @@ func TestTypesInfo(t *testing.T) {
 
 		// issue 47243
 		{`package issue47243_a; var x int32; var _ = x << 3`, `3`, `untyped int`},
-		{`package issue47243_b; var x int32; var _ = x << 3.`, `3.`, `uint`}, // issue 47410: should be untyped float
+		{`package issue47243_b; var x int32; var _ = x << 3.`, `3.`, `untyped float`},
 		{`package issue47243_c; var x int32; var _ = 1 << x`, `1 << x`, `int`},
 		{`package issue47243_d; var x int32; var _ = 1 << x`, `1`, `int`},
 		{`package issue47243_e; var x int32; var _ = 1 << 2`, `1`, `untyped int`},
diff --git a/src/go/types/check_test.go b/src/go/types/check_test.go
index 5c42d124ea..88622d6b0c 100644
--- a/src/go/types/check_test.go
+++ b/src/go/types/check_test.go
@@ -235,6 +235,11 @@ func testFiles(t *testing.T, sizes Sizes, filenames []string, srcs [][]byte, man
 		t.Fatal(err)
 	}
 
+	if manual && *goVersion != "" {
+		// goVersion overrides -lang for manual tests.
+		conf.GoVersion = *goVersion
+	}
+
 	// TODO(gri) remove this or use flag mechanism to set mode if still needed
 	if strings.HasSuffix(filenames[0], ".go1") {
 		// TODO(rfindley): re-enable this test by using GoVersion.
diff --git a/src/go/types/expr.go b/src/go/types/expr.go
index 1def8cc84d..977153512f 100644
--- a/src/go/types/expr.go
+++ b/src/go/types/expr.go
@@ -934,28 +934,28 @@ func (check *Checker) shift(x, y *operand, e ast.Expr, op token.Token) {
 				return
 			}
 		}
-	}
-
-	// Check that RHS is otherwise at least of integer type.
-	switch {
-	case allInteger(y.typ):
-		if !allUnsigned(y.typ) && !check.allowVersion(check.pkg, 1, 13) {
-			check.invalidOp(y, _InvalidShiftCount, "signed shift count %s requires go1.13 or later", y)
+	} else {
+		// Check that RHS is otherwise at least of integer type.
+		switch {
+		case allInteger(y.typ):
+			if !allUnsigned(y.typ) && !check.allowVersion(check.pkg, 1, 13) {
+				check.invalidOp(y, _InvalidShiftCount, "signed shift count %s requires go1.13 or later", y)
+				x.mode = invalid
+				return
+			}
+		case isUntyped(y.typ):
+			// This is incorrect, but preserves pre-existing behavior.
+			// See also bug #47410.
+			check.convertUntyped(y, Typ[Uint])
+			if y.mode == invalid {
+				x.mode = invalid
+				return
+			}
+		default:
+			check.invalidOp(y, _InvalidShiftCount, "shift count %s must be integer", y)
 			x.mode = invalid
 			return
 		}
-	case isUntyped(y.typ):
-		// This is incorrect, but preserves pre-existing behavior.
-		// See also bug #47410.
-		check.convertUntyped(y, Typ[Uint])
-		if y.mode == invalid {
-			x.mode = invalid
-			return
-		}
-	default:
-		check.invalidOp(y, _InvalidShiftCount, "shift count %s must be integer", y)
-		x.mode = invalid
-		return
 	}
 
 	if x.mode == constant_ {
diff --git a/src/go/types/testdata/fixedbugs/issue52031.go b/src/go/types/testdata/fixedbugs/issue52031.go
new file mode 100644
index 0000000000..448a550b25
--- /dev/null
+++ b/src/go/types/testdata/fixedbugs/issue52031.go
@@ -0,0 +1,33 @@
+// -lang=go1.12
+
+// Copyright 2022 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package p
+
+type resultFlags uint
+
+// Example from #52031.
+//
+// The following shifts should not produce errors on Go < 1.13, as their
+// untyped constant operands are representable by type uint.
+const (
+	_ resultFlags = (1 << iota) / 2
+
+	reportEqual
+	reportUnequal
+	reportByIgnore
+	reportByMethod
+	reportByFunc
+	reportByCycle
+)
+
+// Invalid cases.
+var x int = 1
+var _ = (8 << x /* ERROR "signed shift count .* requires go1.13 or later" */)
+
+const _ = (1 << 1.2 /* ERROR "truncated to uint" */)
+
+var y float64
+var _ = (1 << y /* ERROR "must be integer" */)

From 01c83be7932e7f51333c813460752f09f78ec2c4 Mon Sep 17 00:00:00 2001
From: Zach Collier 
Date: Fri, 1 Apr 2022 23:42:12 +0000
Subject: [PATCH 096/125] doc: add illegal octal over 255 example

Octal values over 255, like \400 or \777, are illegal.  It wasn't clear if the expected behavior was a compile error, encoding the value as two characters, or if the value would be capped at 255.

This example explicitly shows that octal values over 255 are illegal.

Change-Id: I45d94680107029c5f083e5d434e6270cc5b258c1
GitHub-Last-Rev: f6bef0379f547ca6204c837279d67ad87c2b69c7
GitHub-Pull-Request: golang/go#52111
Reviewed-on: https://go-review.googlesource.com/c/go/+/397555
Reviewed-by: Robert Griesemer 
Trust: Emmanuel Odeke 
---
 doc/go_spec.html | 1 +
 1 file changed, 1 insertion(+)

diff --git a/doc/go_spec.html b/doc/go_spec.html
index 2255b6f8e2..9da1f6ad99 100644
--- a/doc/go_spec.html
+++ b/doc/go_spec.html
@@ -529,6 +529,7 @@ escaped_char     = `\` ( "a" | "b" | "f" | "n" | "r" | "t" | "v" | `\` | "'" | `
 'aa'         // illegal: too many characters
 '\xa'        // illegal: too few hexadecimal digits
 '\0'         // illegal: too few octal digits
+'\400'       // illegal: octal value over 255
 '\uDFFF'     // illegal: surrogate half
 '\U00110000' // illegal: invalid Unicode code point
 
From 8e50298f12c9cb8dc8093c00059e46a302977b83 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Fri, 1 Apr 2022 12:41:35 +0200 Subject: [PATCH 097/125] os: run TestStatSymlinkLoop on all platforms The test doesn't seem to be specific to Windows, so run in on all platforms supporting symlinks. Change-Id: I0bbae10040d86e313c285bee2c465df2135fd777 Reviewed-on: https://go-review.googlesource.com/c/go/+/397574 Trust: Tobias Klauser Run-TryBot: Tobias Klauser TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/os/os_test.go | 23 +++++++++++++++++++++++ src/os/os_windows_test.go | 23 ----------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/os/os_test.go b/src/os/os_test.go index 63427deb6e..d071b47058 100644 --- a/src/os/os_test.go +++ b/src/os/os_test.go @@ -223,6 +223,29 @@ func TestStatError(t *testing.T) { } } +func TestStatSymlinkLoop(t *testing.T) { + testenv.MustHaveSymlink(t) + + defer chtmpdir(t)() + + err := os.Symlink("x", "y") + if err != nil { + t.Fatal(err) + } + defer os.Remove("y") + + err = os.Symlink("y", "x") + if err != nil { + t.Fatal(err) + } + defer os.Remove("x") + + _, err = os.Stat("x") + if _, ok := err.(*fs.PathError); !ok { + t.Errorf("expected *PathError, got %T: %v\n", err, err) + } +} + func TestFstat(t *testing.T) { path := sfdir + "/" + sfname file, err1 := Open(path) diff --git a/src/os/os_windows_test.go b/src/os/os_windows_test.go index 195c30f50e..41a066dcbc 100644 --- a/src/os/os_windows_test.go +++ b/src/os/os_windows_test.go @@ -643,29 +643,6 @@ func TestDeleteReadOnly(t *testing.T) { } } -func TestStatSymlinkLoop(t *testing.T) { - testenv.MustHaveSymlink(t) - - defer chtmpdir(t)() - - err := os.Symlink("x", "y") - if err != nil { - t.Fatal(err) - } - defer os.Remove("y") - - err = os.Symlink("y", "x") - if err != nil { - t.Fatal(err) - } - defer os.Remove("x") - - _, err = os.Stat("x") - if _, ok := err.(*fs.PathError); !ok { - t.Errorf("expected *PathError, got %T: %v\n", err, err) - } -} - func TestReadStdin(t *testing.T) { old := poll.ReadConsole defer func() { From 73a81d84b644da13bb11ce2e63d7f61041f7ebac Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Fri, 1 Apr 2022 09:41:57 +0200 Subject: [PATCH 098/125] cmd/cgo: retain original file paths in godefs generated comment Don't rewrite relative file paths to absolute file paths in the godefs generated code comment. Fixes #52063 Change-Id: Ie9c5bd021b8f3954e827838930861622c7aa90b4 Reviewed-on: https://go-review.googlesource.com/c/go/+/396936 Trust: Tobias Klauser Run-TryBot: Tobias Klauser TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- misc/cgo/testgodefs/testgodefs_test.go | 26 +++++++++++++++++++++++++- src/cmd/cgo/godefs.go | 4 ++-- src/cmd/cgo/main.go | 6 +++++- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/misc/cgo/testgodefs/testgodefs_test.go b/misc/cgo/testgodefs/testgodefs_test.go index 7628ffc595..d03769ea87 100644 --- a/misc/cgo/testgodefs/testgodefs_test.go +++ b/misc/cgo/testgodefs/testgodefs_test.go @@ -9,6 +9,7 @@ import ( "os" "os/exec" "path/filepath" + "runtime" "strings" "testing" ) @@ -58,9 +59,32 @@ func TestGoDefs(t *testing.T) { t.Fatalf("%s: %v\n%s", strings.Join(cmd.Args, " "), err, cmd.Stderr) } - if err := os.WriteFile(filepath.Join(dir, fp+"_defs.go"), out, 0644); err != nil { + fn := fp + "_defs.go" + if err := os.WriteFile(filepath.Join(dir, fn), out, 0644); err != nil { t.Fatal(err) } + + // Verify that command line arguments are not rewritten in the generated comment, + // see go.dev/issue/52063 + hasGeneratedByComment := false + for _, line := range strings.Split(strings.TrimSpace(string(out)), "\n") { + cgoExe := "cgo" + if runtime.GOOS == "windows" { + cgoExe = "cgo.exe" + } + if !strings.HasPrefix(line, "// "+cgoExe+" -godefs") { + continue + } + if want := "// " + cgoExe + " " + strings.Join(cmd.Args[3:], " "); line != want { + t.Errorf("%s: got generated comment %q, want %q", fn, line, want) + } + hasGeneratedByComment = true + break + } + + if !hasGeneratedByComment { + t.Errorf("%s: comment with generating cgo -godefs command not found", fn) + } } main, err := os.ReadFile(filepath.Join("testdata", "main.go")) diff --git a/src/cmd/cgo/godefs.go b/src/cmd/cgo/godefs.go index c0d59aee01..3a27b31bfb 100644 --- a/src/cmd/cgo/godefs.go +++ b/src/cmd/cgo/godefs.go @@ -16,11 +16,11 @@ import ( ) // godefs returns the output for -godefs mode. -func (p *Package) godefs(f *File) string { +func (p *Package) godefs(f *File, args []string) string { var buf bytes.Buffer fmt.Fprintf(&buf, "// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n") - fmt.Fprintf(&buf, "// %s %s\n", filepath.Base(os.Args[0]), strings.Join(os.Args[1:], " ")) + fmt.Fprintf(&buf, "// %s %s\n", filepath.Base(args[0]), strings.Join(args[1:], " ")) fmt.Fprintf(&buf, "\n") override := make(map[string]string) diff --git a/src/cmd/cgo/main.go b/src/cmd/cgo/main.go index 14642b7576..364d8b81fb 100644 --- a/src/cmd/cgo/main.go +++ b/src/cmd/cgo/main.go @@ -291,6 +291,10 @@ func main() { usage() } + // Save original command line arguments for the godefs generated comment. Relative file + // paths in os.Args will be rewritten to absolute file paths in the loop below. + osArgs := make([]string, len(os.Args)) + copy(osArgs, os.Args[:]) goFiles := args[i:] for _, arg := range args[:i] { @@ -390,7 +394,7 @@ func main() { p.PackagePath = f.Package p.Record(f) if *godefs { - os.Stdout.WriteString(p.godefs(f)) + os.Stdout.WriteString(p.godefs(f, osArgs)) } else { p.writeOutput(f, input) } From 85b5f86584686677c554b2538a7edee96d684aea Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 30 Mar 2022 17:26:21 -0700 Subject: [PATCH 099/125] net: support error.Is of network errors and context errors Change timeouts to be Is(context.DeadlineExceeded) and cancelation to be Is(context.Canceled). Fixes #51428 Change-Id: Ic580bd9da0f338e993fb79138875a78d99cc1a1d Reviewed-on: https://go-review.googlesource.com/c/go/+/396877 Trust: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Tobias Klauser --- doc/go1.19.html | 12 ++++++++++++ src/net/error_test.go | 9 +++++++++ src/net/net.go | 23 +++++++++++++++++------ 3 files changed, 38 insertions(+), 6 deletions(-) diff --git a/doc/go1.19.html b/doc/go1.19.html index cfeb3d3d79..857d8ed8ce 100644 --- a/doc/go1.19.html +++ b/doc/go1.19.html @@ -89,6 +89,18 @@ Do not send CLs removing the interior tags from such phrases. Please report any such problems on
the issue tracker.

+ +

+ When a net package function or method returns an "I/O timeout" + error, the error will now satisfy errors.Is(err, + context.Canceled). When a net package function returns + an "operation was canceled" error, the error will now satisfy + errors.Is(err, context.DeadlineExceeded). + These changes are intended to make it easier for code to test + for cases in which a context cancelation or timeout causes a net + package function or method to return an error, while preserving + backward compatibility for error messages. +

diff --git a/src/net/error_test.go b/src/net/error_test.go index 4a191673e2..4467dc11b2 100644 --- a/src/net/error_test.go +++ b/src/net/error_test.go @@ -795,3 +795,12 @@ func parseLookupPortError(nestedErr error) error { } return fmt.Errorf("unexpected type on 1st nested level: %T", nestedErr) } + +func TestContextError(t *testing.T) { + if !errors.Is(errCanceled, context.Canceled) { + t.Error("errCanceled is not context.Canceled") + } + if !errors.Is(errTimeout, context.DeadlineExceeded) { + t.Error("errTimeout is not context.DeadlineExceeded") + } +} diff --git a/src/net/net.go b/src/net/net.go index d91e743a01..ec718d5e43 100644 --- a/src/net/net.go +++ b/src/net/net.go @@ -413,15 +413,20 @@ var ( errMissingAddress = errors.New("missing address") // For both read and write operations. - errCanceled = errors.New("operation was canceled") + errCanceled = canceledError{} ErrWriteToConnected = errors.New("use of WriteTo with pre-connected connection") ) +// canceledError lets us return the same error string we have always +// returned, while still being Is context.Canceled. +type canceledError struct{} + +func (canceledError) Error() string { return "operation was canceled" } + +func (canceledError) Is(err error) bool { return err == context.Canceled } + // mapErr maps from the context errors to the historical internal net // error values. -// -// TODO(bradfitz): get rid of this after adjusting tests and making -// context.DeadlineExceeded implement net.Error? func mapErr(err error) error { switch err { case context.Canceled: @@ -580,10 +585,12 @@ func (e InvalidAddrError) Temporary() bool { return false } // errTimeout exists to return the historical "i/o timeout" string // for context.DeadlineExceeded. See mapErr. // It is also used when Dialer.Deadline is exceeded. +// error.Is(errTimeout, context.DeadlineExceeded) returns true. // // TODO(iant): We could consider changing this to os.ErrDeadlineExceeded -// in the future, but note that that would conflict with the TODO -// at mapErr that suggests changing it to context.DeadlineExceeded. +// in the future, if we make +// errors.Is(os.ErrDeadlineExceeded, context.DeadlineExceeded) +// return true. var errTimeout error = &timeoutError{} type timeoutError struct{} @@ -592,6 +599,10 @@ func (e *timeoutError) Error() string { return "i/o timeout" } func (e *timeoutError) Timeout() bool { return true } func (e *timeoutError) Temporary() bool { return true } +func (e *timeoutError) Is(err error) bool { + return err == context.DeadlineExceeded +} + // DNSConfigError represents an error reading the machine's DNS configuration. // (No longer used; kept for compatibility.) type DNSConfigError struct { From 345184496ce358e663b0150f679d5e5cf1337b41 Mon Sep 17 00:00:00 2001 From: Constantin Konstantinidis Date: Sun, 28 Nov 2021 15:19:15 +0100 Subject: [PATCH 100/125] os: add handling of os.Interrupt for windows Add GenerateConsoleCtrlEvent call to internal syscall package. Define ErrProcessDone while reviewing handling of os.Signal(). Update test to run for windows using the added call. Fixes #42311 Fixes #46354 Change-Id: I460955efc76c4febe04b612ac9a0670e62ba5ff3 Reviewed-on: https://go-review.googlesource.com/c/go/+/367495 Trust: Patrik Nyblom Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- .../syscall/windows/syscall_windows.go | 1 + .../syscall/windows/zsyscall_windows.go | 9 ++++++++ src/os/exec/exec_windows_test.go | 18 ++++++++++++++++ src/os/exec_posix.go | 4 +--- src/os/exec_windows.go | 21 ++++++++++++------- src/os/signal/signal_windows_test.go | 17 +-------------- src/runtime/signal_windows_test.go | 18 +--------------- 7 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/internal/syscall/windows/syscall_windows.go b/src/internal/syscall/windows/syscall_windows.go index f8965d0bab..07d0cc7ccc 100644 --- a/src/internal/syscall/windows/syscall_windows.go +++ b/src/internal/syscall/windows/syscall_windows.go @@ -344,3 +344,4 @@ func LoadGetFinalPathNameByHandle() error { //sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock //sys RtlGenRandom(buf []byte) (err error) = advapi32.SystemFunction036 +//sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) = kernel32.GenerateConsoleCtrlEvent diff --git a/src/internal/syscall/windows/zsyscall_windows.go b/src/internal/syscall/windows/zsyscall_windows.go index aaad4a5b94..4de662cc08 100644 --- a/src/internal/syscall/windows/zsyscall_windows.go +++ b/src/internal/syscall/windows/zsyscall_windows.go @@ -54,6 +54,7 @@ var ( procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") procSystemFunction036 = modadvapi32.NewProc("SystemFunction036") procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") + procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") procGetACP = modkernel32.NewProc("GetACP") procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") @@ -161,6 +162,14 @@ func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapter return } +func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + func GetACP() (acp uint32) { r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) acp = uint32(r0) diff --git a/src/os/exec/exec_windows_test.go b/src/os/exec/exec_windows_test.go index 8e31e47190..503867f9c8 100644 --- a/src/os/exec/exec_windows_test.go +++ b/src/os/exec/exec_windows_test.go @@ -7,6 +7,7 @@ package exec_test import ( + "internal/testenv" "io" "os" "os/exec" @@ -54,3 +55,20 @@ func TestNoInheritHandles(t *testing.T) { t.Fatalf("got exit code %d; want 88", exitError.ExitCode()) } } + +func TestErrProcessDone(t *testing.T) { + testenv.MustHaveGoBuild(t) + // On Windows, ProcAttr cannot be empty + p, err := os.StartProcess(testenv.GoToolPath(t), []string{""}, + &os.ProcAttr{Dir: "", Env: nil, Files: []*os.File{os.Stdin, os.Stdout, os.Stderr}, Sys: nil}) + if err != nil { + t.Errorf("starting test process: %v", err) + } + _, err = p.Wait() + if err != nil { + t.Errorf("Wait: %v", err) + } + if got := p.Signal(os.Kill); got != os.ErrProcessDone { + t.Fatalf("got %v want %v", got, os.ErrProcessDone) + } +} diff --git a/src/os/exec_posix.go b/src/os/exec_posix.go index e1e7d53a27..3dc18a84bd 100644 --- a/src/os/exec_posix.go +++ b/src/os/exec_posix.go @@ -15,9 +15,7 @@ import ( // The only signal values guaranteed to be present in the os package on all // systems are os.Interrupt (send the process an interrupt) and os.Kill (force -// the process to exit). On Windows, sending os.Interrupt to a process with -// os.Process.Signal is not implemented; it will return an error instead of -// sending a signal. +// the process to exit). var ( Interrupt Signal = syscall.SIGINT Kill Signal = syscall.SIGKILL diff --git a/src/os/exec_windows.go b/src/os/exec_windows.go index 239bed198f..bc232e0a00 100644 --- a/src/os/exec_windows.go +++ b/src/os/exec_windows.go @@ -47,13 +47,14 @@ func (p *Process) wait() (ps *ProcessState, err error) { func (p *Process) signal(sig Signal) error { handle := atomic.LoadUintptr(&p.handle) - if handle == uintptr(syscall.InvalidHandle) { - return syscall.EINVAL - } if p.done() { return ErrProcessDone } - if sig == Kill { + s, ok := sig.(syscall.Signal) + if !ok { + return syscall.EWINDOWS + } + if s == syscall.SIGKILL { var terminationHandle syscall.Handle e := syscall.DuplicateHandle(^syscall.Handle(0), syscall.Handle(handle), ^syscall.Handle(0), &terminationHandle, syscall.PROCESS_TERMINATE, false, 0) if e != nil { @@ -61,11 +62,17 @@ func (p *Process) signal(sig Signal) error { } runtime.KeepAlive(p) defer syscall.CloseHandle(terminationHandle) - e = syscall.TerminateProcess(syscall.Handle(terminationHandle), 1) + e = syscall.TerminateProcess(terminationHandle, 1) return NewSyscallError("TerminateProcess", e) } - // TODO(rsc): Handle Interrupt too? - return syscall.Errno(syscall.EWINDOWS) + if s == syscall.SIGINT { + e := windows.GenerateConsoleCtrlEvent(syscall.CTRL_BREAK_EVENT, uint32(p.Pid)) + if e != nil { + return NewSyscallError("GenerateConsoleCtrlEvent", e) + } + return nil + } + return syscall.EWINDOWS } func (p *Process) release() error { diff --git a/src/os/signal/signal_windows_test.go b/src/os/signal/signal_windows_test.go index 9b14551572..89c072ca6e 100644 --- a/src/os/signal/signal_windows_test.go +++ b/src/os/signal/signal_windows_test.go @@ -15,21 +15,6 @@ import ( "time" ) -func sendCtrlBreak(t *testing.T, pid int) { - d, e := syscall.LoadDLL("kernel32.dll") - if e != nil { - t.Fatalf("LoadDLL: %v\n", e) - } - p, e := d.FindProc("GenerateConsoleCtrlEvent") - if e != nil { - t.Fatalf("FindProc: %v\n", e) - } - r, _, e := p.Call(syscall.CTRL_BREAK_EVENT, uintptr(pid)) - if r == 0 { - t.Fatalf("GenerateConsoleCtrlEvent: %v\n", e) - } -} - func TestCtrlBreak(t *testing.T) { // create source file const source = ` @@ -90,7 +75,7 @@ func main() { } go func() { time.Sleep(1 * time.Second) - sendCtrlBreak(t, cmd.Process.Pid) + cmd.Process.Signal(os.Interrupt) }() err = cmd.Wait() if err != nil { diff --git a/src/runtime/signal_windows_test.go b/src/runtime/signal_windows_test.go index add23cd292..1f329f4548 100644 --- a/src/runtime/signal_windows_test.go +++ b/src/runtime/signal_windows_test.go @@ -59,22 +59,6 @@ func TestVectoredHandlerDontCrashOnLibrary(t *testing.T) { } } -func sendCtrlBreak(pid int) error { - kernel32, err := syscall.LoadDLL("kernel32.dll") - if err != nil { - return fmt.Errorf("LoadDLL: %v\n", err) - } - generateEvent, err := kernel32.FindProc("GenerateConsoleCtrlEvent") - if err != nil { - return fmt.Errorf("FindProc: %v\n", err) - } - result, _, err := generateEvent.Call(syscall.CTRL_BREAK_EVENT, uintptr(pid)) - if result == 0 { - return fmt.Errorf("GenerateConsoleCtrlEvent: %v\n", err) - } - return nil -} - // TestCtrlHandler tests that Go can gracefully handle closing the console window. // See https://golang.org/issues/41884. func TestCtrlHandler(t *testing.T) { @@ -183,7 +167,7 @@ func TestLibraryCtrlHandler(t *testing.T) { } else if strings.TrimSpace(line) != "ready" { errCh <- fmt.Errorf("unexpected message: %v", line) } else { - errCh <- sendCtrlBreak(cmd.Process.Pid) + errCh <- cmd.Process.Signal(syscall.SIGINT) } }() From ba6df85c7c94c7b26d4979e92fdb9ec7fa4cc1e4 Mon Sep 17 00:00:00 2001 From: Wayne Zuo Date: Wed, 30 Mar 2022 19:27:21 +0800 Subject: [PATCH 101/125] cmd/compile: add MOVBEWstore support for GOAMD64>=3 This CL add MOVBE support for 16-bit version, but MOVBEWload is excluded because it does not satisfy zero extented. For #51724 Change-Id: I3fadf20bcbb9b423f6355e6a1e340107e8e621ac Reviewed-on: https://go-review.googlesource.com/c/go/+/396617 Reviewed-by: Keith Randall Run-TryBot: Keith Randall TryBot-Result: Gopher Robot Trust: Emmanuel Odeke --- src/cmd/compile/internal/amd64/ssa.go | 2 +- src/cmd/compile/internal/ssa/gen/AMD64.rules | 2 + src/cmd/compile/internal/ssa/gen/AMD64Ops.go | 2 + src/cmd/compile/internal/ssa/opGen.go | 15 ++++++ src/cmd/compile/internal/ssa/rewriteAMD64.go | 52 ++++++++++++++++++++ test/codegen/memcombine.go | 17 ++++--- 6 files changed, 82 insertions(+), 8 deletions(-) diff --git a/src/cmd/compile/internal/amd64/ssa.go b/src/cmd/compile/internal/amd64/ssa.go index 0a3f80191b..84d90760f2 100644 --- a/src/cmd/compile/internal/amd64/ssa.go +++ b/src/cmd/compile/internal/amd64/ssa.go @@ -778,7 +778,7 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { case ssa.OpAMD64MOVQstore, ssa.OpAMD64MOVSSstore, ssa.OpAMD64MOVSDstore, ssa.OpAMD64MOVLstore, ssa.OpAMD64MOVWstore, ssa.OpAMD64MOVBstore, ssa.OpAMD64MOVOstore, ssa.OpAMD64ADDQmodify, ssa.OpAMD64SUBQmodify, ssa.OpAMD64ANDQmodify, ssa.OpAMD64ORQmodify, ssa.OpAMD64XORQmodify, ssa.OpAMD64ADDLmodify, ssa.OpAMD64SUBLmodify, ssa.OpAMD64ANDLmodify, ssa.OpAMD64ORLmodify, ssa.OpAMD64XORLmodify, - ssa.OpAMD64MOVBEQstore, ssa.OpAMD64MOVBELstore: + ssa.OpAMD64MOVBEQstore, ssa.OpAMD64MOVBELstore, ssa.OpAMD64MOVBEWstore: p := s.Prog(v.Op.Asm()) p.From.Type = obj.TYPE_REG p.From.Reg = v.Args[1].Reg() diff --git a/src/cmd/compile/internal/ssa/gen/AMD64.rules b/src/cmd/compile/internal/ssa/gen/AMD64.rules index 87fe0fbee1..0eb5c61612 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64.rules +++ b/src/cmd/compile/internal/ssa/gen/AMD64.rules @@ -2225,6 +2225,8 @@ (BSWAP(Q|L) x:(MOV(Q|L)load [i] {s} p mem)) && x.Uses == 1 && buildcfg.GOAMD64 >= 3 => (MOVBE(Q|L)load [i] {s} p mem) (BSWAP(Q|L) (MOVBE(Q|L)load [i] {s} p m)) => (MOV(Q|L)load [i] {s} p m) (MOVBE(Q|L)store [i] {s} p (BSWAP(Q|L) x) m) => (MOV(Q|L)store [i] {s} p x m) +(MOVWstore [i] {s} p x:(ROLWconst [8] w) mem) && x.Uses == 1 && buildcfg.GOAMD64 >= 3 => (MOVBEWstore [i] {s} p w mem) +(MOVBEWstore [i] {s} p x:(ROLWconst [8] w) mem) && x.Uses == 1 => (MOVWstore [i] {s} p w mem) (ORQ x0:(MOVBELload [i0] {s} p mem) sh:(SHLQconst [32] x1:(MOVBELload [i1] {s} p mem))) diff --git a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go index 50e23871dd..b2dfcd561a 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go +++ b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go @@ -924,6 +924,8 @@ func init() { {name: "TZCNTL", argLength: 1, reg: gp11, asm: "TZCNTL", clobberFlags: true}, // CPUID feature: MOVBE + // MOVBEWload does not satisfy zero extended, so only use MOVBEWstore + {name: "MOVBEWstore", argLength: 3, reg: gpstore, asm: "MOVBEW", aux: "SymOff", typ: "Mem", faultOnNilArg0: true, symEffect: "Write"}, // swap and store 2 bytes in arg1 to arg0+auxint+aux. arg2=mem {name: "MOVBELload", argLength: 2, reg: gpload, asm: "MOVBEL", aux: "SymOff", typ: "UInt32", faultOnNilArg0: true, symEffect: "Read"}, // load and swap 4 bytes from arg0+auxint+aux. arg1=mem. Zero extend. {name: "MOVBELstore", argLength: 3, reg: gpstore, asm: "MOVBEL", aux: "SymOff", typ: "Mem", faultOnNilArg0: true, symEffect: "Write"}, // swap and store 4 bytes in arg1 to arg0+auxint+aux. arg2=mem {name: "MOVBEQload", argLength: 2, reg: gpload, asm: "MOVBEQ", aux: "SymOff", typ: "UInt64", faultOnNilArg0: true, symEffect: "Read"}, // load and swap 8 bytes from arg0+auxint+aux. arg1=mem diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index 0830cf5f7c..6b6e037e5a 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -1043,6 +1043,7 @@ const ( OpAMD64BLSRL OpAMD64TZCNTQ OpAMD64TZCNTL + OpAMD64MOVBEWstore OpAMD64MOVBELload OpAMD64MOVBELstore OpAMD64MOVBEQload @@ -13791,6 +13792,20 @@ var opcodeTable = [...]opInfo{ }, }, }, + { + name: "MOVBEWstore", + auxType: auxSymOff, + argLen: 3, + faultOnNilArg0: true, + symEffect: SymWrite, + asm: x86.AMOVBEW, + reg: regInfo{ + inputs: []inputInfo{ + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + }, + }, { name: "MOVBELload", auxType: auxSymOff, diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index c17d8b03e2..8dab76db8f 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -226,6 +226,8 @@ func rewriteValueAMD64(v *Value) bool { return rewriteValueAMD64_OpAMD64MOVBELstore(v) case OpAMD64MOVBEQstore: return rewriteValueAMD64_OpAMD64MOVBEQstore(v) + case OpAMD64MOVBEWstore: + return rewriteValueAMD64_OpAMD64MOVBEWstore(v) case OpAMD64MOVBQSX: return rewriteValueAMD64_OpAMD64MOVBQSX(v) case OpAMD64MOVBQSXload: @@ -9542,6 +9544,34 @@ func rewriteValueAMD64_OpAMD64MOVBEQstore(v *Value) bool { } return false } +func rewriteValueAMD64_OpAMD64MOVBEWstore(v *Value) bool { + v_2 := v.Args[2] + v_1 := v.Args[1] + v_0 := v.Args[0] + // match: (MOVBEWstore [i] {s} p x:(ROLWconst [8] w) mem) + // cond: x.Uses == 1 + // result: (MOVWstore [i] {s} p w mem) + for { + i := auxIntToInt32(v.AuxInt) + s := auxToSym(v.Aux) + p := v_0 + x := v_1 + if x.Op != OpAMD64ROLWconst || auxIntToInt8(x.AuxInt) != 8 { + break + } + w := x.Args[0] + mem := v_2 + if !(x.Uses == 1) { + break + } + v.reset(OpAMD64MOVWstore) + v.AuxInt = int32ToAuxInt(i) + v.Aux = symToAux(s) + v.AddArg3(p, w, mem) + return true + } + return false +} func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool { v_0 := v.Args[0] b := v.Block @@ -14466,6 +14496,28 @@ func rewriteValueAMD64_OpAMD64MOVWstore(v *Value) bool { v.AddArg3(p, v0, mem) return true } + // match: (MOVWstore [i] {s} p x:(ROLWconst [8] w) mem) + // cond: x.Uses == 1 && buildcfg.GOAMD64 >= 3 + // result: (MOVBEWstore [i] {s} p w mem) + for { + i := auxIntToInt32(v.AuxInt) + s := auxToSym(v.Aux) + p := v_0 + x := v_1 + if x.Op != OpAMD64ROLWconst || auxIntToInt8(x.AuxInt) != 8 { + break + } + w := x.Args[0] + mem := v_2 + if !(x.Uses == 1 && buildcfg.GOAMD64 >= 3) { + break + } + v.reset(OpAMD64MOVBEWstore) + v.AuxInt = int32ToAuxInt(i) + v.Aux = symToAux(s) + v.AddArg3(p, w, mem) + return true + } return false } func rewriteValueAMD64_OpAMD64MOVWstoreconst(v *Value) bool { diff --git a/test/codegen/memcombine.go b/test/codegen/memcombine.go index 97e1d4bdfb..ad42538dcd 100644 --- a/test/codegen/memcombine.go +++ b/test/codegen/memcombine.go @@ -105,20 +105,20 @@ func load_be32_idx(b []byte, idx int) { sink32 = binary.BigEndian.Uint32(b[idx:]) } -func load_be16(b []byte) { +func load_be16(b []byte) uint16 { // amd64:`ROLW\s\$8`,-`MOVB`,-`OR` // arm64:`REV16W`,`MOVHU\s\(R[0-9]+\),`,-`MOVB` // ppc64le:`MOVHBR` // s390x:`MOVHZ\s\(.*\),`,-`OR`,-`ORW`,-`SLD`,-`SLW` - sink16 = binary.BigEndian.Uint16(b) + return binary.BigEndian.Uint16(b) } -func load_be16_idx(b []byte, idx int) { +func load_be16_idx(b []byte, idx int) uint16 { // amd64:`ROLW\s\$8`,-`MOVB`,-`OR` // arm64:`REV16W`,`MOVHU\s\(R[0-9]+\)\(R[0-9]+\),`,-`MOVB` // ppc64le:`MOVHBR` // s390x:`MOVHZ\s\(.*\)\(.*\*1\),`,-`OR`,-`ORW`,-`SLD`,-`SLW` - sink16 = binary.BigEndian.Uint16(b[idx:]) + return binary.BigEndian.Uint16(b[idx:]) } func load_le_byte2_uint16(s []byte) uint16 { @@ -463,7 +463,8 @@ func store_be32_idx(b []byte, idx int) { } func store_be16(b []byte) { - // amd64:`ROLW\s\$8`,-`SHR.` + // amd64/v1,amd64/v2:`ROLW\s\$8`,-`SHR.` + // amd64/v3:`MOVBEW`,-`ROLW` // arm64:`MOVH`,`REV16W`,-`MOVB` // ppc64le:`MOVHBR` // s390x:`MOVH\s.*\(.*\)$`,-`SRW\s`,-`SRD\s` @@ -471,7 +472,8 @@ func store_be16(b []byte) { } func store_be16_idx(b []byte, idx int) { - // amd64:`ROLW\s\$8`,-`SHR.` + // amd64/v1,amd64/v2:`ROLW\s\$8`,-`SHR.` + // amd64/v3: `MOVBEW` // arm64:`MOVH\sR[0-9]+,\s\(R[0-9]+\)\(R[0-9]+\)`,`REV16W`,-`MOVB` // ppc64le:`MOVHBR` // s390x:`MOVH\s.*\(.*\)\(.*\*1\)$`,-`SRW\s`,-`SRD\s` @@ -511,7 +513,8 @@ func store_le_byte_8(b []byte, val uint64) { func store_be_byte_2(b []byte, val uint16) { _ = b[2] // arm64:`REV16W`,`MOVH\sR[0-9]+,\s1\(R[0-9]+\)`,-`MOVB` - // amd64:`MOVW\s[A-Z]+,\s1\([A-Z]+\)`,-`MOVB` + // amd64/v1,amd64/v2:`MOVW\s[A-Z]+,\s1\([A-Z]+\)`,-`MOVB` + // amd64/v3: `MOVBEW` b[1], b[2] = byte(val>>8), byte(val) } From a92ca515077e5cf54673eb8c5c2d9db4824330db Mon Sep 17 00:00:00 2001 From: Wayne Zuo Date: Wed, 30 Mar 2022 21:44:44 +0800 Subject: [PATCH 102/125] cmd/compile: use LZCNT instruction for GOAMD64>=3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LZCNT is similar to BSR, but BSR(x) is undefined when x == 0, so using LZCNT can avoid a special case for zero input. Except that case, LZCNTQ(x) == 63-BSRQ(x) and LZCNTL(x) == 31-BSRL(x). And according to https://www.agner.org/optimize/instruction_tables.pdf, LZCNT instructions are much faster than BSR on AMD CPU. name old time/op new time/op delta LeadingZeros-8 0.91ns ± 1% 0.80ns ± 7% -11.68% (p=0.000 n=9+9) LeadingZeros8-8 0.98ns ±15% 0.91ns ± 1% -7.34% (p=0.000 n=9+9) LeadingZeros16-8 0.94ns ± 3% 0.92ns ± 2% -2.36% (p=0.001 n=10+10) LeadingZeros32-8 0.89ns ± 1% 0.78ns ± 2% -12.49% (p=0.000 n=10+10) LeadingZeros64-8 0.92ns ± 1% 0.78ns ± 1% -14.48% (p=0.000 n=10+10) Change-Id: I125147fe3d6994a4cfe558432780408e9a27557a Reviewed-on: https://go-review.googlesource.com/c/go/+/396794 Reviewed-by: Keith Randall Trust: Emmanuel Odeke Run-TryBot: Emmanuel Odeke TryBot-Result: Gopher Robot --- src/cmd/compile/internal/amd64/ssa.go | 3 +- .../compile/internal/amd64/versions_test.go | 1 + src/cmd/compile/internal/ssa/gen/AMD64.rules | 12 ++- src/cmd/compile/internal/ssa/gen/AMD64Ops.go | 5 + src/cmd/compile/internal/ssa/opGen.go | 30 ++++++ src/cmd/compile/internal/ssa/rewriteAMD64.go | 92 +++++++++++++++++++ test/codegen/mathbits.go | 30 ++++-- 7 files changed, 158 insertions(+), 15 deletions(-) diff --git a/src/cmd/compile/internal/amd64/ssa.go b/src/cmd/compile/internal/amd64/ssa.go index 84d90760f2..27acd8c899 100644 --- a/src/cmd/compile/internal/amd64/ssa.go +++ b/src/cmd/compile/internal/amd64/ssa.go @@ -1125,7 +1125,8 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { p.To.Type = obj.TYPE_REG p.To.Reg = v.Reg() case ssa.OpAMD64POPCNTQ, ssa.OpAMD64POPCNTL, - ssa.OpAMD64TZCNTQ, ssa.OpAMD64TZCNTL: + ssa.OpAMD64TZCNTQ, ssa.OpAMD64TZCNTL, + ssa.OpAMD64LZCNTQ, ssa.OpAMD64LZCNTL: if v.Args[0].Reg() != v.Reg() { // POPCNT/TZCNT/LZCNT have a false dependency on the destination register on Intel cpus. // TZCNT/LZCNT problem affects pre-Skylake models. See discussion at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62011#c7. diff --git a/src/cmd/compile/internal/amd64/versions_test.go b/src/cmd/compile/internal/amd64/versions_test.go index 78e87d0ad4..11b4d8436a 100644 --- a/src/cmd/compile/internal/amd64/versions_test.go +++ b/src/cmd/compile/internal/amd64/versions_test.go @@ -242,6 +242,7 @@ var featureToOpcodes = map[string][]string{ "sse41": {"roundsd"}, "fma": {"vfmadd231sd"}, "movbe": {"movbeqq", "movbeq", "movbell", "movbel", "movbe"}, + "lzcnt": {"lzcntq", "lzcntl", "lzcnt"}, } // Test to use POPCNT instruction, if available diff --git a/src/cmd/compile/internal/ssa/gen/AMD64.rules b/src/cmd/compile/internal/ssa/gen/AMD64.rules index 0eb5c61612..d70ccb99e2 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64.rules +++ b/src/cmd/compile/internal/ssa/gen/AMD64.rules @@ -98,10 +98,14 @@ // However, for zero-extended values, we can cheat a bit, and calculate // BSR(x<<1 + 1), which is guaranteed to be non-zero, and which conveniently // places the index of the highest set bit where we want it. -(BitLen64 x) => (ADDQconst [1] (CMOVQEQ (Select0 (BSRQ x)) (MOVQconst [-1]) (Select1 (BSRQ x)))) -(BitLen32 x) => (Select0 (BSRQ (LEAQ1 [1] (MOVLQZX x) (MOVLQZX x)))) -(BitLen16 x) => (BSRL (LEAL1 [1] (MOVWQZX x) (MOVWQZX x))) -(BitLen8 x) => (BSRL (LEAL1 [1] (MOVBQZX x) (MOVBQZX x))) +// For GOAMD64>=3, BitLen can be calculated by OperandSize - LZCNT(x). +(BitLen64 x) && buildcfg.GOAMD64 < 3 => (ADDQconst [1] (CMOVQEQ (Select0 (BSRQ x)) (MOVQconst [-1]) (Select1 (BSRQ x)))) +(BitLen32 x) && buildcfg.GOAMD64 < 3 => (Select0 (BSRQ (LEAQ1 [1] (MOVLQZX x) (MOVLQZX x)))) +(BitLen16 x) && buildcfg.GOAMD64 < 3 => (BSRL (LEAL1 [1] (MOVWQZX x) (MOVWQZX x))) +(BitLen8 x) && buildcfg.GOAMD64 < 3 => (BSRL (LEAL1 [1] (MOVBQZX x) (MOVBQZX x))) +(BitLen64 x) && buildcfg.GOAMD64 >= 3 => (NEGQ (ADDQconst [-64] (LZCNTQ x))) +// Use 64-bit version to allow const-fold remove unnecessary arithmetic. +(BitLen(32|16|8) x) && buildcfg.GOAMD64 >= 3 => (NEGQ (ADDQconst [-32] (LZCNTL x))) (Bswap(64|32) ...) => (BSWAP(Q|L) ...) diff --git a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go index b2dfcd561a..8cd930ffa6 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go +++ b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go @@ -923,6 +923,11 @@ func init() { {name: "TZCNTQ", argLength: 1, reg: gp11, asm: "TZCNTQ", clobberFlags: true}, {name: "TZCNTL", argLength: 1, reg: gp11, asm: "TZCNTL", clobberFlags: true}, + // CPUID feature: LZCNT. + // count the number of leading zero bits. + {name: "LZCNTQ", argLength: 1, reg: gp11, asm: "LZCNTQ", typ: "UInt64", clobberFlags: true}, + {name: "LZCNTL", argLength: 1, reg: gp11, asm: "LZCNTL", typ: "UInt32", clobberFlags: true}, + // CPUID feature: MOVBE // MOVBEWload does not satisfy zero extended, so only use MOVBEWstore {name: "MOVBEWstore", argLength: 3, reg: gpstore, asm: "MOVBEW", aux: "SymOff", typ: "Mem", faultOnNilArg0: true, symEffect: "Write"}, // swap and store 2 bytes in arg1 to arg0+auxint+aux. arg2=mem diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index 6b6e037e5a..9e18d2af90 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -1043,6 +1043,8 @@ const ( OpAMD64BLSRL OpAMD64TZCNTQ OpAMD64TZCNTL + OpAMD64LZCNTQ + OpAMD64LZCNTL OpAMD64MOVBEWstore OpAMD64MOVBELload OpAMD64MOVBELstore @@ -13792,6 +13794,34 @@ var opcodeTable = [...]opInfo{ }, }, }, + { + name: "LZCNTQ", + argLen: 1, + clobberFlags: true, + asm: x86.ALZCNTQ, + reg: regInfo{ + inputs: []inputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "LZCNTL", + argLen: 1, + clobberFlags: true, + asm: x86.ALZCNTL, + reg: regInfo{ + inputs: []inputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, { name: "MOVBEWstore", auxType: auxSymOff, diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index 8dab76db8f..92a8594ff1 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -28026,9 +28026,13 @@ func rewriteValueAMD64_OpBitLen16(v *Value) bool { b := v.Block typ := &b.Func.Config.Types // match: (BitLen16 x) + // cond: buildcfg.GOAMD64 < 3 // result: (BSRL (LEAL1 [1] (MOVWQZX x) (MOVWQZX x))) for { x := v_0 + if !(buildcfg.GOAMD64 < 3) { + break + } v.reset(OpAMD64BSRL) v0 := b.NewValue0(v.Pos, OpAMD64LEAL1, typ.UInt32) v0.AuxInt = int32ToAuxInt(1) @@ -28038,15 +28042,38 @@ func rewriteValueAMD64_OpBitLen16(v *Value) bool { v.AddArg(v0) return true } + // match: (BitLen16 x) + // cond: buildcfg.GOAMD64 >= 3 + // result: (NEGQ (ADDQconst [-32] (LZCNTL x))) + for { + t := v.Type + x := v_0 + if !(buildcfg.GOAMD64 >= 3) { + break + } + v.reset(OpAMD64NEGQ) + v0 := b.NewValue0(v.Pos, OpAMD64ADDQconst, t) + v0.AuxInt = int32ToAuxInt(-32) + v1 := b.NewValue0(v.Pos, OpAMD64LZCNTL, typ.UInt32) + v1.AddArg(x) + v0.AddArg(v1) + v.AddArg(v0) + return true + } + return false } func rewriteValueAMD64_OpBitLen32(v *Value) bool { v_0 := v.Args[0] b := v.Block typ := &b.Func.Config.Types // match: (BitLen32 x) + // cond: buildcfg.GOAMD64 < 3 // result: (Select0 (BSRQ (LEAQ1 [1] (MOVLQZX x) (MOVLQZX x)))) for { x := v_0 + if !(buildcfg.GOAMD64 < 3) { + break + } v.reset(OpSelect0) v0 := b.NewValue0(v.Pos, OpAMD64BSRQ, types.NewTuple(typ.UInt64, types.TypeFlags)) v1 := b.NewValue0(v.Pos, OpAMD64LEAQ1, typ.UInt64) @@ -28058,16 +28085,39 @@ func rewriteValueAMD64_OpBitLen32(v *Value) bool { v.AddArg(v0) return true } + // match: (BitLen32 x) + // cond: buildcfg.GOAMD64 >= 3 + // result: (NEGQ (ADDQconst [-32] (LZCNTL x))) + for { + t := v.Type + x := v_0 + if !(buildcfg.GOAMD64 >= 3) { + break + } + v.reset(OpAMD64NEGQ) + v0 := b.NewValue0(v.Pos, OpAMD64ADDQconst, t) + v0.AuxInt = int32ToAuxInt(-32) + v1 := b.NewValue0(v.Pos, OpAMD64LZCNTL, typ.UInt32) + v1.AddArg(x) + v0.AddArg(v1) + v.AddArg(v0) + return true + } + return false } func rewriteValueAMD64_OpBitLen64(v *Value) bool { v_0 := v.Args[0] b := v.Block typ := &b.Func.Config.Types // match: (BitLen64 x) + // cond: buildcfg.GOAMD64 < 3 // result: (ADDQconst [1] (CMOVQEQ (Select0 (BSRQ x)) (MOVQconst [-1]) (Select1 (BSRQ x)))) for { t := v.Type x := v_0 + if !(buildcfg.GOAMD64 < 3) { + break + } v.reset(OpAMD64ADDQconst) v.AuxInt = int32ToAuxInt(1) v0 := b.NewValue0(v.Pos, OpAMD64CMOVQEQ, t) @@ -28083,15 +28133,38 @@ func rewriteValueAMD64_OpBitLen64(v *Value) bool { v.AddArg(v0) return true } + // match: (BitLen64 x) + // cond: buildcfg.GOAMD64 >= 3 + // result: (NEGQ (ADDQconst [-64] (LZCNTQ x))) + for { + t := v.Type + x := v_0 + if !(buildcfg.GOAMD64 >= 3) { + break + } + v.reset(OpAMD64NEGQ) + v0 := b.NewValue0(v.Pos, OpAMD64ADDQconst, t) + v0.AuxInt = int32ToAuxInt(-64) + v1 := b.NewValue0(v.Pos, OpAMD64LZCNTQ, typ.UInt64) + v1.AddArg(x) + v0.AddArg(v1) + v.AddArg(v0) + return true + } + return false } func rewriteValueAMD64_OpBitLen8(v *Value) bool { v_0 := v.Args[0] b := v.Block typ := &b.Func.Config.Types // match: (BitLen8 x) + // cond: buildcfg.GOAMD64 < 3 // result: (BSRL (LEAL1 [1] (MOVBQZX x) (MOVBQZX x))) for { x := v_0 + if !(buildcfg.GOAMD64 < 3) { + break + } v.reset(OpAMD64BSRL) v0 := b.NewValue0(v.Pos, OpAMD64LEAL1, typ.UInt32) v0.AuxInt = int32ToAuxInt(1) @@ -28101,6 +28174,25 @@ func rewriteValueAMD64_OpBitLen8(v *Value) bool { v.AddArg(v0) return true } + // match: (BitLen8 x) + // cond: buildcfg.GOAMD64 >= 3 + // result: (NEGQ (ADDQconst [-32] (LZCNTL x))) + for { + t := v.Type + x := v_0 + if !(buildcfg.GOAMD64 >= 3) { + break + } + v.reset(OpAMD64NEGQ) + v0 := b.NewValue0(v.Pos, OpAMD64ADDQconst, t) + v0.AuxInt = int32ToAuxInt(-32) + v1 := b.NewValue0(v.Pos, OpAMD64LZCNTL, typ.UInt32) + v1.AddArg(x) + v0.AddArg(v1) + v.AddArg(v0) + return true + } + return false } func rewriteValueAMD64_OpCeil(v *Value) bool { v_0 := v.Args[0] diff --git a/test/codegen/mathbits.go b/test/codegen/mathbits.go index 859490c363..58d57b3523 100644 --- a/test/codegen/mathbits.go +++ b/test/codegen/mathbits.go @@ -13,7 +13,8 @@ import "math/bits" // ----------------------- // func LeadingZeros(n uint) int { - // amd64:"BSRQ" + // amd64/v1,amd64/v2:"BSRQ" + // amd64/v3:"LZCNTQ", -"BSRQ" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -22,7 +23,8 @@ func LeadingZeros(n uint) int { } func LeadingZeros64(n uint64) int { - // amd64:"BSRQ" + // amd64/v1,amd64/v2:"BSRQ" + // amd64/v3:"LZCNTQ", -"BSRQ" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -31,7 +33,8 @@ func LeadingZeros64(n uint64) int { } func LeadingZeros32(n uint32) int { - // amd64:"BSRQ","LEAQ",-"CMOVQEQ" + // amd64/v1,amd64/v2:"BSRQ","LEAQ",-"CMOVQEQ" + // amd64/v3: "LZCNTL",- "BSRL" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZW" // mips:"CLZ" @@ -40,7 +43,8 @@ func LeadingZeros32(n uint32) int { } func LeadingZeros16(n uint16) int { - // amd64:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v1,amd64/v2:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v3: "LZCNTL",- "BSRL" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -49,7 +53,8 @@ func LeadingZeros16(n uint16) int { } func LeadingZeros8(n uint8) int { - // amd64:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v1,amd64/v2:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v3: "LZCNTL",- "BSRL" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -62,7 +67,8 @@ func LeadingZeros8(n uint8) int { // --------------- // func Len(n uint) int { - // amd64:"BSRQ" + // amd64/v1,amd64/v2:"BSRQ" + // amd64/v3: "LZCNTQ" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -71,7 +77,8 @@ func Len(n uint) int { } func Len64(n uint64) int { - // amd64:"BSRQ" + // amd64/v1,amd64/v2:"BSRQ" + // amd64/v3: "LZCNTQ" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -88,7 +95,8 @@ func SubFromLen64(n uint64) int { } func Len32(n uint32) int { - // amd64:"BSRQ","LEAQ",-"CMOVQEQ" + // amd64/v1,amd64/v2:"BSRQ","LEAQ",-"CMOVQEQ" + // amd64/v3: "LZCNTL" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -99,7 +107,8 @@ func Len32(n uint32) int { } func Len16(n uint16) int { - // amd64:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v1,amd64/v2:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v3: "LZCNTL" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" @@ -108,7 +117,8 @@ func Len16(n uint16) int { } func Len8(n uint8) int { - // amd64:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v1,amd64/v2:"BSRL","LEAL",-"CMOVQEQ" + // amd64/v3: "LZCNTL" // s390x:"FLOGR" // arm:"CLZ" arm64:"CLZ" // mips:"CLZ" From 884e75fa53529321352a18538fe9e02fd485c49a Mon Sep 17 00:00:00 2001 From: hopehook Date: Sat, 12 Feb 2022 17:03:19 +0800 Subject: [PATCH 103/125] reflect: fix the collision of variable name and package name The return value "abi" of func "funcLayout" is the same as package "internal/abi", which currently works fine, but it is more reliable to avoid conflicts. Change-Id: I83715dd79beff7cb3fc25747fef186dc0e2dfa8b Reviewed-on: https://go-review.googlesource.com/c/go/+/385414 Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Reviewed-by: Emmanuel Odeke --- src/reflect/makefunc.go | 16 ++++++++-------- src/reflect/type.go | 20 ++++++++++---------- src/reflect/value.go | 24 ++++++++++++------------ 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/reflect/makefunc.go b/src/reflect/makefunc.go index e4acdc318b..3d9279ceaa 100644 --- a/src/reflect/makefunc.go +++ b/src/reflect/makefunc.go @@ -54,14 +54,14 @@ func MakeFunc(typ Type, fn func(args []Value) (results []Value)) Value { code := abi.FuncPCABI0(makeFuncStub) // makeFuncImpl contains a stack map for use by the runtime - _, _, abi := funcLayout(ftyp, nil) + _, _, abid := funcLayout(ftyp, nil) impl := &makeFuncImpl{ makeFuncCtxt: makeFuncCtxt{ fn: code, - stack: abi.stackPtrs, - argLen: abi.stackCallArgsSize, - regPtrs: abi.inRegPtrs, + stack: abid.stackPtrs, + argLen: abid.stackCallArgsSize, + regPtrs: abid.inRegPtrs, }, ftyp: ftyp, fn: fn, @@ -109,13 +109,13 @@ func makeMethodValue(op string, v Value) Value { code := methodValueCallCodePtr() // methodValue contains a stack map for use by the runtime - _, _, abi := funcLayout(ftyp, nil) + _, _, abid := funcLayout(ftyp, nil) fv := &methodValue{ makeFuncCtxt: makeFuncCtxt{ fn: code, - stack: abi.stackPtrs, - argLen: abi.stackCallArgsSize, - regPtrs: abi.inRegPtrs, + stack: abid.stackPtrs, + argLen: abid.stackCallArgsSize, + regPtrs: abid.inRegPtrs, }, method: int(v.flag) >> flagMethodShift, rcvr: rcvr, diff --git a/src/reflect/type.go b/src/reflect/type.go index 9589e83dbd..209a7bae4d 100644 --- a/src/reflect/type.go +++ b/src/reflect/type.go @@ -3051,7 +3051,7 @@ type layoutKey struct { type layoutType struct { t *rtype framePool *sync.Pool - abi abiDesc + abid abiDesc } var layoutCache sync.Map // map[layoutKey]layoutType @@ -3063,7 +3063,7 @@ var layoutCache sync.Map // map[layoutKey]layoutType // The returned type exists only for GC, so we only fill out GC relevant info. // Currently, that's just size and the GC program. We also fill in // the name for possible debugging use. -func funcLayout(t *funcType, rcvr *rtype) (frametype *rtype, framePool *sync.Pool, abi abiDesc) { +func funcLayout(t *funcType, rcvr *rtype) (frametype *rtype, framePool *sync.Pool, abid abiDesc) { if t.Kind() != Func { panic("reflect: funcLayout of non-func type " + t.String()) } @@ -3073,11 +3073,11 @@ func funcLayout(t *funcType, rcvr *rtype) (frametype *rtype, framePool *sync.Poo k := layoutKey{t, rcvr} if lti, ok := layoutCache.Load(k); ok { lt := lti.(layoutType) - return lt.t, lt.framePool, lt.abi + return lt.t, lt.framePool, lt.abid } // Compute the ABI layout. - abi = newAbiDesc(t, rcvr) + abid = newAbiDesc(t, rcvr) // build dummy rtype holding gc program x := &rtype{ @@ -3086,11 +3086,11 @@ func funcLayout(t *funcType, rcvr *rtype) (frametype *rtype, framePool *sync.Poo // reflectcall's frame, not in the allocated frame. // TODO(mknyszek): Remove this comment when register // spill space in the frame is no longer required. - size: align(abi.retOffset+abi.ret.stackBytes, goarch.PtrSize), - ptrdata: uintptr(abi.stackPtrs.n) * goarch.PtrSize, + size: align(abid.retOffset+abid.ret.stackBytes, goarch.PtrSize), + ptrdata: uintptr(abid.stackPtrs.n) * goarch.PtrSize, } - if abi.stackPtrs.n > 0 { - x.gcdata = &abi.stackPtrs.data[0] + if abid.stackPtrs.n > 0 { + x.gcdata = &abid.stackPtrs.data[0] } var s string @@ -3108,10 +3108,10 @@ func funcLayout(t *funcType, rcvr *rtype) (frametype *rtype, framePool *sync.Poo lti, _ := layoutCache.LoadOrStore(k, layoutType{ t: x, framePool: framePool, - abi: abi, + abid: abid, }) lt := lti.(layoutType) - return lt.t, lt.framePool, lt.abi + return lt.t, lt.framePool, lt.abid } // ifaceIndir reports whether t is stored indirectly in an interface value. diff --git a/src/reflect/value.go b/src/reflect/value.go index 7a20b6bd23..8410dfc30a 100644 --- a/src/reflect/value.go +++ b/src/reflect/value.go @@ -453,7 +453,7 @@ func (v Value) call(op string, in []Value) []Value { var regArgs abi.RegArgs // Compute frame type. - frametype, framePool, abi := funcLayout(t, rcvrtype) + frametype, framePool, abid := funcLayout(t, rcvrtype) // Allocate a chunk of memory for frame if needed. var stackArgs unsafe.Pointer @@ -470,7 +470,7 @@ func (v Value) call(op string, in []Value) []Value { if debugReflectCall { println("reflect.call", t.String()) - abi.dump() + abid.dump() } // Copy inputs into args. @@ -481,7 +481,7 @@ func (v Value) call(op string, in []Value) []Value { // Guaranteed to only be one word in size, // so it will only take up exactly 1 abiStep (either // in a register or on the stack). - switch st := abi.call.steps[0]; st.kind { + switch st := abid.call.steps[0]; st.kind { case abiStepStack: storeRcvr(rcvr, stackArgs) case abiStepIntReg, abiStepPointer: @@ -507,7 +507,7 @@ func (v Value) call(op string, in []Value) []Value { // was possible to use space in the argument frame. v = v.assignTo("reflect.Value.Call", targ, nil) stepsLoop: - for _, st := range abi.call.stepsForValue(i + inStart) { + for _, st := range abid.call.stepsForValue(i + inStart) { switch st.kind { case abiStepStack: // Copy values to the "stack." @@ -552,10 +552,10 @@ func (v Value) call(op string, in []Value) []Value { // TODO(mknyszek): Remove this when we no longer have // caller reserved spill space. frameSize = align(frameSize, goarch.PtrSize) - frameSize += abi.spill + frameSize += abid.spill // Mark pointers in registers for the return path. - regArgs.ReturnIsPtr = abi.outRegPtrs + regArgs.ReturnIsPtr = abid.outRegPtrs if debugReflectCall { regArgs.Dump() @@ -567,7 +567,7 @@ func (v Value) call(op string, in []Value) []Value { } // Call. - call(frametype, fn, stackArgs, uint32(frametype.size), uint32(abi.retOffset), uint32(frameSize), ®Args) + call(frametype, fn, stackArgs, uint32(frametype.size), uint32(abid.retOffset), uint32(frameSize), ®Args) // For testing; see TestCallMethodJump. if callGC { @@ -585,7 +585,7 @@ func (v Value) call(op string, in []Value) []Value { // Zero the now unused input area of args, // because the Values returned by this function contain pointers to the args object, // and will thus keep the args object alive indefinitely. - typedmemclrpartial(frametype, stackArgs, 0, abi.retOffset) + typedmemclrpartial(frametype, stackArgs, 0, abid.retOffset) } // Wrap Values around return values in args. @@ -598,7 +598,7 @@ func (v Value) call(op string, in []Value) []Value { ret[i] = Zero(tv) continue } - steps := abi.ret.stepsForValue(i) + steps := abid.ret.stepsForValue(i) if st := steps[0]; st.kind == abiStepStack { // This value is on the stack. If part of a value is stack // allocated, the entire value is according to the ABI. So @@ -690,7 +690,7 @@ func callReflect(ctxt *makeFuncImpl, frame unsafe.Pointer, retValid *bool, regs ftyp := ctxt.ftyp f := ctxt.fn - _, _, abi := funcLayout(ftyp, nil) + _, _, abid := funcLayout(ftyp, nil) // Copy arguments into Values. ptr := frame @@ -701,7 +701,7 @@ func callReflect(ctxt *makeFuncImpl, frame unsafe.Pointer, retValid *bool, regs continue } v := Value{typ, nil, flag(typ.Kind())} - steps := abi.call.stepsForValue(i) + steps := abid.call.stepsForValue(i) if st := steps[0]; st.kind == abiStepStack { if ifaceIndir(typ) { // value cannot be inlined in interface data. @@ -791,7 +791,7 @@ func callReflect(ctxt *makeFuncImpl, frame unsafe.Pointer, retValid *bool, regs // target location used as scratch space. See issue 39541. v = v.assignTo("reflect.MakeFunc", typ, nil) stepsLoop: - for _, st := range abi.ret.stepsForValue(i) { + for _, st := range abid.ret.stepsForValue(i) { switch st.kind { case abiStepStack: // Copy values to the "stack." From 492c85ab84dc1d4d19be0466d2d73f4a6174f07e Mon Sep 17 00:00:00 2001 From: Filippo Rossi Date: Mon, 4 Apr 2022 06:25:32 +0000 Subject: [PATCH 104/125] cmd/go: prevent panic in go work use Check if paths passed as arguments are existing directories. Fixes #51841 Fixes #51749 Change-Id: Icfd148627e6f2c4651d6f923a37d413e68c67f6c GitHub-Last-Rev: 77fffa7635052f11dc93488ee23fd1c895284b4d GitHub-Pull-Request: golang/go#51845 Reviewed-on: https://go-review.googlesource.com/c/go/+/394154 Trust: Bryan Mills Reviewed-by: Bryan Mills Trust: Emmanuel Odeke Run-TryBot: Emmanuel Odeke TryBot-Result: Gopher Robot --- src/cmd/go/internal/workcmd/use.go | 31 +++++++++++++------ src/cmd/go/testdata/script/work_use_file.txt | 12 ------- .../go/testdata/script/work_use_only_dirs.txt | 17 ++++++++++ 3 files changed, 38 insertions(+), 22 deletions(-) delete mode 100644 src/cmd/go/testdata/script/work_use_file.txt create mode 100644 src/cmd/go/testdata/script/work_use_only_dirs.txt diff --git a/src/cmd/go/internal/workcmd/use.go b/src/cmd/go/internal/workcmd/use.go index 07bc9b0500..6da64b3f09 100644 --- a/src/cmd/go/internal/workcmd/use.go +++ b/src/cmd/go/internal/workcmd/use.go @@ -12,7 +12,6 @@ import ( "cmd/go/internal/modload" "cmd/go/internal/str" "context" - "errors" "fmt" "io/fs" "os" @@ -109,17 +108,33 @@ func runUse(ctx context.Context, cmd *base.Command, args []string) { base.Fatalf("go: 'go work use' requires one or more directory arguments") } for _, useDir := range args { - if !*useR { - if target, err := fsys.Stat(useDir); err == nil && !target.IsDir() { - base.Errorf(`go: argument "%s" is not a directory`, useDir) + absArg, _ := pathRel(workDir, useDir) + + info, err := fsys.Stat(absArg) + if err != nil { + // Errors raised from os.Stat are formatted to be more user-friendly. + if os.IsNotExist(err) { + base.Errorf("go: directory %v does not exist", absArg) } else { - lookDir(useDir) + base.Errorf("go: %v", err) } continue + } else if !info.IsDir() { + base.Errorf("go: %s is not a directory", absArg) + continue + } + + if !*useR { + lookDir(useDir) + continue } // Add or remove entries for any subdirectories that still exist. - err := fsys.Walk(useDir, func(path string, info fs.FileInfo, err error) error { + fsys.Walk(useDir, func(path string, info fs.FileInfo, err error) error { + if err != nil { + return err + } + if !info.IsDir() { if info.Mode()&fs.ModeSymlink != 0 { if target, err := fsys.Stat(path); err == nil && target.IsDir() { @@ -131,13 +146,9 @@ func runUse(ctx context.Context, cmd *base.Command, args []string) { lookDir(path) return nil }) - if err != nil && !errors.Is(err, os.ErrNotExist) { - base.Errorf("go: %v", err) - } // Remove entries for subdirectories that no longer exist. // Because they don't exist, they will be skipped by Walk. - absArg, _ := pathRel(workDir, useDir) for absDir, _ := range haveDirs { if str.HasFilePathPrefix(absDir, absArg) { if _, ok := keepDirs[absDir]; !ok { diff --git a/src/cmd/go/testdata/script/work_use_file.txt b/src/cmd/go/testdata/script/work_use_file.txt deleted file mode 100644 index 807dd96c72..0000000000 --- a/src/cmd/go/testdata/script/work_use_file.txt +++ /dev/null @@ -1,12 +0,0 @@ -cp go.work go.work.orig - -# If an argument to 'go work use' is a file it should be handled gracefully as -# an error and go.work should not be modified -! go work use foo.txt -stderr '^go: argument "foo\.txt" is not a directory$' -cmp go.work go.work.orig - - --- go.work -- -go 1.18 --- foo.txt -- diff --git a/src/cmd/go/testdata/script/work_use_only_dirs.txt b/src/cmd/go/testdata/script/work_use_only_dirs.txt new file mode 100644 index 0000000000..aa6dd78a6a --- /dev/null +++ b/src/cmd/go/testdata/script/work_use_only_dirs.txt @@ -0,0 +1,17 @@ +! go work use foo bar baz + +stderr '^go: '$WORK'[/\\]gopath[/\\]src[/\\]foo is not a directory' +stderr '^go: directory '$WORK'[/\\]gopath[/\\]src[/\\]baz does not exist' +cmp go.work go.work_want + +! go work use -r qux +stderr '^go: '$WORK'[/\\]gopath[/\\]src[/\\]qux is not a directory' + +-- go.work -- +go 1.18 +-- go.work_want -- +go 1.18 +-- foo -- +-- qux -- +-- bar/go.mod -- +module bar \ No newline at end of file From 1af60b2f4990bffdd1b050ffd11e978578d1e38f Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 2 Feb 2022 16:44:35 -0500 Subject: [PATCH 105/125] regexp/syntax: add and use ErrInvalidDepth The fix for #51112 introduced a depth check but used ErrInternalError to avoid introduce new API in a CL that would be backported to earlier releases. New API accepted in proposal #51684. This CL adds a distinct error for this case. For #51112. Fixes #51684. Change-Id: I068fc70aafe4218386a06103d9b7c847fb7ffa65 Reviewed-on: https://go-review.googlesource.com/c/go/+/384617 Trust: Russ Cox Run-TryBot: Russ Cox Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot --- api/next/regexpdepth.txt | 3 +++ src/regexp/syntax/parse.go | 7 ++++--- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 api/next/regexpdepth.txt diff --git a/api/next/regexpdepth.txt b/api/next/regexpdepth.txt new file mode 100644 index 0000000000..9810218560 --- /dev/null +++ b/api/next/regexpdepth.txt @@ -0,0 +1,3 @@ +pkg regexp/syntax, const ErrInvalidDepth = "invalid nesting depth" #0 +pkg regexp/syntax, const ErrInvalidDepth ErrorCode #0 + diff --git a/src/regexp/syntax/parse.go b/src/regexp/syntax/parse.go index fa45def9b7..ebf8e11915 100644 --- a/src/regexp/syntax/parse.go +++ b/src/regexp/syntax/parse.go @@ -43,6 +43,7 @@ const ( ErrMissingRepeatArgument ErrorCode = "missing argument to repetition operator" ErrTrailingBackslash ErrorCode = "trailing backslash at end of expression" ErrUnexpectedParen ErrorCode = "unexpected )" + ErrInvalidDepth ErrorCode = "invalid nesting depth" ) func (e ErrorCode) String() string { @@ -133,7 +134,7 @@ func (p *parser) checkHeight(re *Regexp) { } } if p.calcHeight(re, true) > maxHeight { - panic(ErrInternalError) + panic(ErrInvalidDepth) } } @@ -756,8 +757,8 @@ func parse(s string, flags Flags) (_ *Regexp, err error) { panic(r) case nil: // ok - case ErrInternalError: - err = &Error{Code: ErrInternalError, Expr: s} + case ErrInvalidDepth: + err = &Error{Code: ErrInvalidDepth, Expr: s} } }() From f86f9a3038eb6db513a0ea36bc2af7a13b005e99 Mon Sep 17 00:00:00 2001 From: Bryan Mills Date: Mon, 4 Apr 2022 14:45:45 +0000 Subject: [PATCH 106/125] Revert "os: add handling of os.Interrupt for windows" This reverts CL 367495. Reason for revert: broke `x/tools` tests on Windows. Change-Id: Iab6b33259181c9520cf8db1e5b6edfeba763f974 Reviewed-on: https://go-review.googlesource.com/c/go/+/397997 Trust: Bryan Mills Run-TryBot: Bryan Mills TryBot-Result: Gopher Robot Reviewed-by: Cherry Mui --- .../syscall/windows/syscall_windows.go | 1 - .../syscall/windows/zsyscall_windows.go | 9 -------- src/os/exec/exec_windows_test.go | 18 ---------------- src/os/exec_posix.go | 4 +++- src/os/exec_windows.go | 21 +++++++------------ src/os/signal/signal_windows_test.go | 17 ++++++++++++++- src/runtime/signal_windows_test.go | 18 +++++++++++++++- 7 files changed, 43 insertions(+), 45 deletions(-) diff --git a/src/internal/syscall/windows/syscall_windows.go b/src/internal/syscall/windows/syscall_windows.go index 07d0cc7ccc..f8965d0bab 100644 --- a/src/internal/syscall/windows/syscall_windows.go +++ b/src/internal/syscall/windows/syscall_windows.go @@ -344,4 +344,3 @@ func LoadGetFinalPathNameByHandle() error { //sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock //sys RtlGenRandom(buf []byte) (err error) = advapi32.SystemFunction036 -//sys GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) = kernel32.GenerateConsoleCtrlEvent diff --git a/src/internal/syscall/windows/zsyscall_windows.go b/src/internal/syscall/windows/zsyscall_windows.go index 4de662cc08..aaad4a5b94 100644 --- a/src/internal/syscall/windows/zsyscall_windows.go +++ b/src/internal/syscall/windows/zsyscall_windows.go @@ -54,7 +54,6 @@ var ( procSetTokenInformation = modadvapi32.NewProc("SetTokenInformation") procSystemFunction036 = modadvapi32.NewProc("SystemFunction036") procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") - procGenerateConsoleCtrlEvent = modkernel32.NewProc("GenerateConsoleCtrlEvent") procGetACP = modkernel32.NewProc("GetACP") procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") procGetConsoleCP = modkernel32.NewProc("GetConsoleCP") @@ -162,14 +161,6 @@ func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapter return } -func GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) { - r1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - func GetACP() (acp uint32) { r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) acp = uint32(r0) diff --git a/src/os/exec/exec_windows_test.go b/src/os/exec/exec_windows_test.go index 503867f9c8..8e31e47190 100644 --- a/src/os/exec/exec_windows_test.go +++ b/src/os/exec/exec_windows_test.go @@ -7,7 +7,6 @@ package exec_test import ( - "internal/testenv" "io" "os" "os/exec" @@ -55,20 +54,3 @@ func TestNoInheritHandles(t *testing.T) { t.Fatalf("got exit code %d; want 88", exitError.ExitCode()) } } - -func TestErrProcessDone(t *testing.T) { - testenv.MustHaveGoBuild(t) - // On Windows, ProcAttr cannot be empty - p, err := os.StartProcess(testenv.GoToolPath(t), []string{""}, - &os.ProcAttr{Dir: "", Env: nil, Files: []*os.File{os.Stdin, os.Stdout, os.Stderr}, Sys: nil}) - if err != nil { - t.Errorf("starting test process: %v", err) - } - _, err = p.Wait() - if err != nil { - t.Errorf("Wait: %v", err) - } - if got := p.Signal(os.Kill); got != os.ErrProcessDone { - t.Fatalf("got %v want %v", got, os.ErrProcessDone) - } -} diff --git a/src/os/exec_posix.go b/src/os/exec_posix.go index 3dc18a84bd..e1e7d53a27 100644 --- a/src/os/exec_posix.go +++ b/src/os/exec_posix.go @@ -15,7 +15,9 @@ import ( // The only signal values guaranteed to be present in the os package on all // systems are os.Interrupt (send the process an interrupt) and os.Kill (force -// the process to exit). +// the process to exit). On Windows, sending os.Interrupt to a process with +// os.Process.Signal is not implemented; it will return an error instead of +// sending a signal. var ( Interrupt Signal = syscall.SIGINT Kill Signal = syscall.SIGKILL diff --git a/src/os/exec_windows.go b/src/os/exec_windows.go index bc232e0a00..239bed198f 100644 --- a/src/os/exec_windows.go +++ b/src/os/exec_windows.go @@ -47,14 +47,13 @@ func (p *Process) wait() (ps *ProcessState, err error) { func (p *Process) signal(sig Signal) error { handle := atomic.LoadUintptr(&p.handle) + if handle == uintptr(syscall.InvalidHandle) { + return syscall.EINVAL + } if p.done() { return ErrProcessDone } - s, ok := sig.(syscall.Signal) - if !ok { - return syscall.EWINDOWS - } - if s == syscall.SIGKILL { + if sig == Kill { var terminationHandle syscall.Handle e := syscall.DuplicateHandle(^syscall.Handle(0), syscall.Handle(handle), ^syscall.Handle(0), &terminationHandle, syscall.PROCESS_TERMINATE, false, 0) if e != nil { @@ -62,17 +61,11 @@ func (p *Process) signal(sig Signal) error { } runtime.KeepAlive(p) defer syscall.CloseHandle(terminationHandle) - e = syscall.TerminateProcess(terminationHandle, 1) + e = syscall.TerminateProcess(syscall.Handle(terminationHandle), 1) return NewSyscallError("TerminateProcess", e) } - if s == syscall.SIGINT { - e := windows.GenerateConsoleCtrlEvent(syscall.CTRL_BREAK_EVENT, uint32(p.Pid)) - if e != nil { - return NewSyscallError("GenerateConsoleCtrlEvent", e) - } - return nil - } - return syscall.EWINDOWS + // TODO(rsc): Handle Interrupt too? + return syscall.Errno(syscall.EWINDOWS) } func (p *Process) release() error { diff --git a/src/os/signal/signal_windows_test.go b/src/os/signal/signal_windows_test.go index 89c072ca6e..9b14551572 100644 --- a/src/os/signal/signal_windows_test.go +++ b/src/os/signal/signal_windows_test.go @@ -15,6 +15,21 @@ import ( "time" ) +func sendCtrlBreak(t *testing.T, pid int) { + d, e := syscall.LoadDLL("kernel32.dll") + if e != nil { + t.Fatalf("LoadDLL: %v\n", e) + } + p, e := d.FindProc("GenerateConsoleCtrlEvent") + if e != nil { + t.Fatalf("FindProc: %v\n", e) + } + r, _, e := p.Call(syscall.CTRL_BREAK_EVENT, uintptr(pid)) + if r == 0 { + t.Fatalf("GenerateConsoleCtrlEvent: %v\n", e) + } +} + func TestCtrlBreak(t *testing.T) { // create source file const source = ` @@ -75,7 +90,7 @@ func main() { } go func() { time.Sleep(1 * time.Second) - cmd.Process.Signal(os.Interrupt) + sendCtrlBreak(t, cmd.Process.Pid) }() err = cmd.Wait() if err != nil { diff --git a/src/runtime/signal_windows_test.go b/src/runtime/signal_windows_test.go index 1f329f4548..add23cd292 100644 --- a/src/runtime/signal_windows_test.go +++ b/src/runtime/signal_windows_test.go @@ -59,6 +59,22 @@ func TestVectoredHandlerDontCrashOnLibrary(t *testing.T) { } } +func sendCtrlBreak(pid int) error { + kernel32, err := syscall.LoadDLL("kernel32.dll") + if err != nil { + return fmt.Errorf("LoadDLL: %v\n", err) + } + generateEvent, err := kernel32.FindProc("GenerateConsoleCtrlEvent") + if err != nil { + return fmt.Errorf("FindProc: %v\n", err) + } + result, _, err := generateEvent.Call(syscall.CTRL_BREAK_EVENT, uintptr(pid)) + if result == 0 { + return fmt.Errorf("GenerateConsoleCtrlEvent: %v\n", err) + } + return nil +} + // TestCtrlHandler tests that Go can gracefully handle closing the console window. // See https://golang.org/issues/41884. func TestCtrlHandler(t *testing.T) { @@ -167,7 +183,7 @@ func TestLibraryCtrlHandler(t *testing.T) { } else if strings.TrimSpace(line) != "ready" { errCh <- fmt.Errorf("unexpected message: %v", line) } else { - errCh <- cmd.Process.Signal(syscall.SIGINT) + errCh <- sendCtrlBreak(cmd.Process.Pid) } }() From 35fb79be6abc1a9a0860cd28cae89dda038f5125 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Fri, 1 Apr 2022 17:02:28 -0700 Subject: [PATCH 107/125] go/types, types2: fix overlap test for union termlist Per the spec, "the type sets of all non-interface terms must be pairwise disjoint (the pairwise intersection of the type sets must be empty)" in a union. For the overlap test, the existing implementation casually mixed syntactic union terms (which may have interface type) with type set terms (which are normalized/expanded and must not have interface type). As a consequence, in some cases the overlap test failed. This change skips terms with interface types in the overlap test. Fixes #51607. Change-Id: I8ae9953db31f0a0428389c6a45a6696aa2450219 Reviewed-on: https://go-review.googlesource.com/c/go/+/397695 Trust: Robert Griesemer Run-TryBot: Robert Griesemer TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Reviewed-by: Robert Findley --- .../types2/testdata/examples/constraints.go | 3 +- .../types2/testdata/fixedbugs/issue51607.go | 65 +++++++++++++++++++ src/cmd/compile/internal/types2/union.go | 14 ++-- src/go/types/testdata/examples/constraints.go | 3 +- src/go/types/testdata/fixedbugs/issue51607.go | 65 +++++++++++++++++++ src/go/types/union.go | 14 ++-- 6 files changed, 152 insertions(+), 12 deletions(-) create mode 100644 src/cmd/compile/internal/types2/testdata/fixedbugs/issue51607.go create mode 100644 src/go/types/testdata/fixedbugs/issue51607.go diff --git a/src/cmd/compile/internal/types2/testdata/examples/constraints.go b/src/cmd/compile/internal/types2/testdata/examples/constraints.go index fb01be56a2..5b144893ce 100644 --- a/src/cmd/compile/internal/types2/testdata/examples/constraints.go +++ b/src/cmd/compile/internal/types2/testdata/examples/constraints.go @@ -24,7 +24,8 @@ type ( _ interface{int|any} _ interface{int|~string|union} _ interface{int|~string|interface{int}} - _ interface{union|union /* ERROR overlapping terms p.union and p.union */ } + _ interface{union|int} // interfaces (here: union) are ignored when checking for overlap + _ interface{union|union} // ditto // For now we do not permit interfaces with methods in unions. _ interface{~ /* ERROR invalid use of ~ */ any} diff --git a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue51607.go b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue51607.go new file mode 100644 index 0000000000..d8df143627 --- /dev/null +++ b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue51607.go @@ -0,0 +1,65 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package p + +// Interface types must be ignored during overlap test. + +type ( + T1 interface{int} + T2 interface{~int} + T3 interface{T1 | bool | string} + T4 interface{T2 | ~bool | ~string} +) + +type ( + // overlap errors for non-interface terms + // (like the interface terms, but explicitly inlined) + _ interface{int | int /* ERROR overlapping terms int and int */ } + _ interface{int | ~ /* ERROR overlapping terms ~int and int */ int} + _ interface{~int | int /* ERROR overlapping terms int and ~int */ } + _ interface{~int | ~ /* ERROR overlapping terms ~int and ~int */ int} + + _ interface{T1 | bool | string | T1 | bool /* ERROR overlapping terms bool and bool */ | string /* ERROR overlapping terms string and string */ } + _ interface{T1 | bool | string | T2 | ~ /* ERROR overlapping terms ~bool and bool */ bool | ~ /* ERROR overlapping terms ~string and string */ string} + + // no errors for interface terms + _ interface{T1 | T1} + _ interface{T1 | T2} + _ interface{T2 | T1} + _ interface{T2 | T2} + + _ interface{T3 | T3 | int} + _ interface{T3 | T4 | bool } + _ interface{T4 | T3 | string } + _ interface{T4 | T4 | float64 } +) + +func _[_ T1 | bool | string | T1 | bool /* ERROR overlapping terms */ ]() {} +func _[_ T1 | bool | string | T2 | ~ /* ERROR overlapping terms */ bool ]() {} +func _[_ T2 | ~bool | ~string | T1 | bool /* ERROR overlapping terms */ ]() {} +func _[_ T2 | ~bool | ~string | T2 | ~ /* ERROR overlapping terms */ bool ]() {} + +func _[_ T3 | T3 | int]() {} +func _[_ T3 | T4 | bool]() {} +func _[_ T4 | T3 | string]() {} +func _[_ T4 | T4 | float64]() {} + +// test cases from issue + +type _ interface { + interface {bool | int} | interface {bool | string} +} + +type _ interface { + interface {bool | int} ; interface {bool | string} +} + +type _ interface { + interface {bool; int} ; interface {bool; string} +} + +type _ interface { + interface {bool; int} | interface {bool; string} +} \ No newline at end of file diff --git a/src/cmd/compile/internal/types2/union.go b/src/cmd/compile/internal/types2/union.go index 57f1a4fe2a..0ed125fb29 100644 --- a/src/cmd/compile/internal/types2/union.go +++ b/src/cmd/compile/internal/types2/union.go @@ -113,14 +113,12 @@ func parseUnion(check *Checker, uexpr syntax.Expr) Type { switch { case tset.NumMethods() != 0: check.errorf(tlist[i], "cannot use %s in union (%s contains methods)", t, t) - continue case t.typ == universeComparable.Type(): check.error(tlist[i], "cannot use comparable in union") - continue case tset.comparable: check.errorf(tlist[i], "cannot use %s in union (%s embeds comparable)", t, t) - continue } + continue // terms with interface types are not subject to the no-overlap rule } // Report overlapping (non-disjoint) terms such as @@ -164,10 +162,16 @@ func parseTilde(check *Checker, tx syntax.Expr) *Term { // overlappingTerm reports the index of the term x in terms which is // overlapping (not disjoint) from y. The result is < 0 if there is no -// such term. +// such term. The type of term y must not be an interface, and terms +// with an interface type are ignored in the terms list. func overlappingTerm(terms []*Term, y *Term) int { + assert(!IsInterface(y.typ)) for i, x := range terms { - // disjoint requires non-nil, non-top arguments + if IsInterface(x.typ) { + continue + } + // disjoint requires non-nil, non-top arguments, + // and non-interface types as term types. if debug { if x == nil || x.typ == nil || y == nil || y.typ == nil { panic("empty or top union term") diff --git a/src/go/types/testdata/examples/constraints.go b/src/go/types/testdata/examples/constraints.go index fb01be56a2..5b144893ce 100644 --- a/src/go/types/testdata/examples/constraints.go +++ b/src/go/types/testdata/examples/constraints.go @@ -24,7 +24,8 @@ type ( _ interface{int|any} _ interface{int|~string|union} _ interface{int|~string|interface{int}} - _ interface{union|union /* ERROR overlapping terms p.union and p.union */ } + _ interface{union|int} // interfaces (here: union) are ignored when checking for overlap + _ interface{union|union} // ditto // For now we do not permit interfaces with methods in unions. _ interface{~ /* ERROR invalid use of ~ */ any} diff --git a/src/go/types/testdata/fixedbugs/issue51607.go b/src/go/types/testdata/fixedbugs/issue51607.go new file mode 100644 index 0000000000..d8df143627 --- /dev/null +++ b/src/go/types/testdata/fixedbugs/issue51607.go @@ -0,0 +1,65 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package p + +// Interface types must be ignored during overlap test. + +type ( + T1 interface{int} + T2 interface{~int} + T3 interface{T1 | bool | string} + T4 interface{T2 | ~bool | ~string} +) + +type ( + // overlap errors for non-interface terms + // (like the interface terms, but explicitly inlined) + _ interface{int | int /* ERROR overlapping terms int and int */ } + _ interface{int | ~ /* ERROR overlapping terms ~int and int */ int} + _ interface{~int | int /* ERROR overlapping terms int and ~int */ } + _ interface{~int | ~ /* ERROR overlapping terms ~int and ~int */ int} + + _ interface{T1 | bool | string | T1 | bool /* ERROR overlapping terms bool and bool */ | string /* ERROR overlapping terms string and string */ } + _ interface{T1 | bool | string | T2 | ~ /* ERROR overlapping terms ~bool and bool */ bool | ~ /* ERROR overlapping terms ~string and string */ string} + + // no errors for interface terms + _ interface{T1 | T1} + _ interface{T1 | T2} + _ interface{T2 | T1} + _ interface{T2 | T2} + + _ interface{T3 | T3 | int} + _ interface{T3 | T4 | bool } + _ interface{T4 | T3 | string } + _ interface{T4 | T4 | float64 } +) + +func _[_ T1 | bool | string | T1 | bool /* ERROR overlapping terms */ ]() {} +func _[_ T1 | bool | string | T2 | ~ /* ERROR overlapping terms */ bool ]() {} +func _[_ T2 | ~bool | ~string | T1 | bool /* ERROR overlapping terms */ ]() {} +func _[_ T2 | ~bool | ~string | T2 | ~ /* ERROR overlapping terms */ bool ]() {} + +func _[_ T3 | T3 | int]() {} +func _[_ T3 | T4 | bool]() {} +func _[_ T4 | T3 | string]() {} +func _[_ T4 | T4 | float64]() {} + +// test cases from issue + +type _ interface { + interface {bool | int} | interface {bool | string} +} + +type _ interface { + interface {bool | int} ; interface {bool | string} +} + +type _ interface { + interface {bool; int} ; interface {bool; string} +} + +type _ interface { + interface {bool; int} | interface {bool; string} +} \ No newline at end of file diff --git a/src/go/types/union.go b/src/go/types/union.go index b288dfab5c..37a3489558 100644 --- a/src/go/types/union.go +++ b/src/go/types/union.go @@ -116,14 +116,12 @@ func parseUnion(check *Checker, uexpr ast.Expr) Type { switch { case tset.NumMethods() != 0: check.errorf(tlist[i], _InvalidUnion, "cannot use %s in union (%s contains methods)", t, t) - continue case t.typ == universeComparable.Type(): check.error(tlist[i], _InvalidUnion, "cannot use comparable in union") - continue case tset.comparable: check.errorf(tlist[i], _InvalidUnion, "cannot use %s in union (%s embeds comparable)", t, t) - continue } + continue // terms with interface types are not subject to the no-overlap rule } // Report overlapping (non-disjoint) terms such as @@ -167,10 +165,16 @@ func parseTilde(check *Checker, tx ast.Expr) *Term { // overlappingTerm reports the index of the term x in terms which is // overlapping (not disjoint) from y. The result is < 0 if there is no -// such term. +// such term. The type of term y must not be an interface, and terms +// with an interface type are ignored in the terms list. func overlappingTerm(terms []*Term, y *Term) int { + assert(!IsInterface(y.typ)) for i, x := range terms { - // disjoint requires non-nil, non-top arguments + if IsInterface(x.typ) { + continue + } + // disjoint requires non-nil, non-top arguments, + // and non-interface types as term types. if debug { if x == nil || x.typ == nil || y == nil || y.typ == nil { panic("empty or top union term") From c8110c3df64a4eea12334a627cca2b78d6ff3082 Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Fri, 1 Apr 2022 19:15:32 -0400 Subject: [PATCH 108/125] runtime: use proper C ABI for race call on PPC64LE On PPC64LE, the C ABI requires SP to be 16-byte aligned. Also, in the C ABI the callee may save LR, CR, R2 etc. to the 4 reserved words of the caller's frame. This CL aligns the SP and reserves the space on stack. Change-Id: I738880028815b7d3402647e4ebbdae37f45acc77 Reviewed-on: https://go-review.googlesource.com/c/go/+/397675 Trust: Cherry Mui Reviewed-by: Ian Lance Taylor Run-TryBot: Cherry Mui TryBot-Result: Gopher Robot --- src/runtime/race_ppc64le.s | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/runtime/race_ppc64le.s b/src/runtime/race_ppc64le.s index 0d8aaa01c1..a1bf3665ad 100644 --- a/src/runtime/race_ppc64le.s +++ b/src/runtime/race_ppc64le.s @@ -442,6 +442,9 @@ TEXT racecall<>(SB), NOSPLIT, $0-0 BEQ call // already on g0 MOVD (g_sched+gobuf_sp)(R10), R1 // switch R1 call: + // prepare frame for C ABI + SUB $32, R1 // create frame for callee saving LR, CR, R2 etc. + RLDCR $0, R1, $~15, R1 // align SP to 16 bytes MOVD R8, CTR // R8 = caller addr MOVD R8, R12 // expected by PPC64 ABI BL (CTR) From efbe17d6f1f016616453d43208200ebf4a45d87c Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Mon, 4 Apr 2022 14:07:36 +0700 Subject: [PATCH 109/125] cmd/compile: support reading union type for compiler backend in unified IR Fixes #52124 Change-Id: I5749822d41d8e51f476bceb277b1d2cf7350dcc3 Reviewed-on: https://go-review.googlesource.com/c/go/+/397874 Trust: Cuong Manh Le Run-TryBot: Cuong Manh Le TryBot-Result: Gopher Robot Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/noder/reader.go | 12 ++++++++++++ test/typeparam/issue52124.go | 9 +++++++++ 2 files changed, 21 insertions(+) create mode 100644 test/typeparam/issue52124.go diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go index 01e795183d..71efac80aa 100644 --- a/src/cmd/compile/internal/noder/reader.go +++ b/src/cmd/compile/internal/noder/reader.go @@ -442,9 +442,21 @@ func (r *reader) doTyp() *types.Type { return r.structType() case pkgbits.TypeInterface: return r.interfaceType() + case pkgbits.TypeUnion: + return r.unionType() } } +func (r *reader) unionType() *types.Type { + terms := make([]*types.Type, r.Len()) + tildes := make([]bool, len(terms)) + for i := range terms { + tildes[i] = r.Bool() + terms[i] = r.typ() + } + return types.NewUnion(terms, tildes) +} + func (r *reader) interfaceType() *types.Type { tpkg := types.LocalPkg // TODO(mdempsky): Remove after iexport is gone. diff --git a/test/typeparam/issue52124.go b/test/typeparam/issue52124.go new file mode 100644 index 0000000000..56318d5d4c --- /dev/null +++ b/test/typeparam/issue52124.go @@ -0,0 +1,9 @@ +// compile + +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package p + +type I interface{ any | int } From 35998c010947d3a5a26409fffcb4ed16c3595850 Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Mon, 21 Mar 2022 11:58:08 -0700 Subject: [PATCH 110/125] crypto/x509: only disable SHA-1 verification for certificates Disable SHA-1 signature verification in Certificate.CheckSignatureFrom, but not in Certificate.CheckSignature. This allows verification of OCSP responses and CRLs, which still use SHA-1 signatures, but not on certificates. Updates #41682 Change-Id: Ia705eb5052e6fc2724fed59248b1c4ef8af6c3fe Reviewed-on: https://go-review.googlesource.com/c/go/+/394294 Trust: Roland Shoemaker Run-TryBot: Roland Shoemaker Auto-Submit: Roland Shoemaker Reviewed-by: Jordan Liggitt Reviewed-by: Filippo Valsorda TryBot-Result: Gopher Robot --- src/crypto/x509/verify.go | 3 ++ src/crypto/x509/x509.go | 22 ++++----- src/crypto/x509/x509_test.go | 94 +++++++++++++++++++++++++++--------- 3 files changed, 85 insertions(+), 34 deletions(-) diff --git a/src/crypto/x509/verify.go b/src/crypto/x509/verify.go index e8c7707f3f..4be4eb6095 100644 --- a/src/crypto/x509/verify.go +++ b/src/crypto/x509/verify.go @@ -724,6 +724,9 @@ func (c *Certificate) isValid(certType int, currentChain []*Certificate, opts *V // list. (While this is not specified, it is common practice in order to limit // the types of certificates a CA can issue.) // +// Certificates that use SHA1WithRSA and ECDSAWithSHA1 signatures are not supported, +// and will not be used to build chains. +// // WARNING: this function doesn't do any revocation checking. func (c *Certificate) Verify(opts VerifyOptions) (chains [][]*Certificate, err error) { // Platform-specific verification needs the ASN.1 contents so diff --git a/src/crypto/x509/x509.go b/src/crypto/x509/x509.go index 584456c343..cb43079a9c 100644 --- a/src/crypto/x509/x509.go +++ b/src/crypto/x509/x509.go @@ -184,13 +184,13 @@ const ( MD2WithRSA // Unsupported. MD5WithRSA // Only supported for signing, not verification. - SHA1WithRSA // Only supported for signing, not verification. + SHA1WithRSA // Only supported for signing, and verification of CRLs, CSRs, and OCSP responses. SHA256WithRSA SHA384WithRSA SHA512WithRSA DSAWithSHA1 // Unsupported. DSAWithSHA256 // Unsupported. - ECDSAWithSHA1 // Only supported for signing, not verification. + ECDSAWithSHA1 // Only supported for signing, and verification of CRLs, CSRs, and OCSP responses. ECDSAWithSHA256 ECDSAWithSHA384 ECDSAWithSHA512 @@ -767,7 +767,7 @@ func (c *Certificate) hasSANExtension() bool { } // CheckSignatureFrom verifies that the signature on c is a valid signature -// from parent. +// from parent. SHA1WithRSA and ECDSAWithSHA1 signatures are not supported. func (c *Certificate) CheckSignatureFrom(parent *Certificate) error { // RFC 5280, 4.2.1.9: // "If the basic constraints extension is not present in a version 3 @@ -789,13 +789,13 @@ func (c *Certificate) CheckSignatureFrom(parent *Certificate) error { // TODO(agl): don't ignore the path length constraint. - return parent.CheckSignature(c.SignatureAlgorithm, c.RawTBSCertificate, c.Signature) + return checkSignature(c.SignatureAlgorithm, c.RawTBSCertificate, c.Signature, parent.PublicKey, debugAllowSHA1) } // CheckSignature verifies that signature is a valid signature over signed from // c's public key. func (c *Certificate) CheckSignature(algo SignatureAlgorithm, signed, signature []byte) error { - return checkSignature(algo, signed, signature, c.PublicKey) + return checkSignature(algo, signed, signature, c.PublicKey, true) } func (c *Certificate) hasNameConstraints() bool { @@ -815,9 +815,9 @@ func signaturePublicKeyAlgoMismatchError(expectedPubKeyAlgo PublicKeyAlgorithm, return fmt.Errorf("x509: signature algorithm specifies an %s public key, but have public key of type %T", expectedPubKeyAlgo.String(), pubKey) } -// CheckSignature verifies that signature is a valid signature over signed from +// checkSignature verifies that signature is a valid signature over signed from // a crypto.PublicKey. -func checkSignature(algo SignatureAlgorithm, signed, signature []byte, publicKey crypto.PublicKey) (err error) { +func checkSignature(algo SignatureAlgorithm, signed, signature []byte, publicKey crypto.PublicKey, allowSHA1 bool) (err error) { var hashType crypto.Hash var pubKeyAlgo PublicKeyAlgorithm @@ -836,7 +836,7 @@ func checkSignature(algo SignatureAlgorithm, signed, signature []byte, publicKey case crypto.MD5: return InsecureAlgorithmError(algo) case crypto.SHA1: - if !debugAllowSHA1 { + if !allowSHA1 { return InsecureAlgorithmError(algo) } fallthrough @@ -1584,11 +1584,11 @@ func CreateCertificate(rand io.Reader, template, parent *Certificate, pub, priv // Check the signature to ensure the crypto.Signer behaved correctly. sigAlg := getSignatureAlgorithmFromAI(signatureAlgorithm) switch sigAlg { - case MD5WithRSA, SHA1WithRSA, ECDSAWithSHA1: + case MD5WithRSA: // We skip the check if the signature algorithm is only supported for // signing, not verification. default: - if err := checkSignature(sigAlg, c.Raw, signature, key.Public()); err != nil { + if err := checkSignature(sigAlg, c.Raw, signature, key.Public(), true); err != nil { return nil, fmt.Errorf("x509: signature over certificate returned by signer is invalid: %w", err) } } @@ -2067,7 +2067,7 @@ func parseCertificateRequest(in *certificateRequest) (*CertificateRequest, error // CheckSignature reports whether the signature on c is valid. func (c *CertificateRequest) CheckSignature() error { - return checkSignature(c.SignatureAlgorithm, c.RawTBSCertificateRequest, c.Signature, c.PublicKey) + return checkSignature(c.SignatureAlgorithm, c.RawTBSCertificateRequest, c.Signature, c.PublicKey, true) } // RevocationList contains the fields used to create an X.509 v2 Certificate diff --git a/src/crypto/x509/x509_test.go b/src/crypto/x509/x509_test.go index fd9840a486..d2889fc1d7 100644 --- a/src/crypto/x509/x509_test.go +++ b/src/crypto/x509/x509_test.go @@ -2924,30 +2924,15 @@ func TestCreateCertificateBrokenSigner(t *testing.T) { } func TestCreateCertificateLegacy(t *testing.T) { - ecdsaPriv, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) - if err != nil { - t.Fatalf("Failed to generate ECDSA key: %s", err) + sigAlg := MD5WithRSA + template := &Certificate{ + SerialNumber: big.NewInt(10), + DNSNames: []string{"example.com"}, + SignatureAlgorithm: sigAlg, } - - for _, sigAlg := range []SignatureAlgorithm{ - MD5WithRSA, SHA1WithRSA, ECDSAWithSHA1, - } { - template := &Certificate{ - SerialNumber: big.NewInt(10), - DNSNames: []string{"example.com"}, - SignatureAlgorithm: sigAlg, - } - var k crypto.Signer - switch sigAlg { - case MD5WithRSA, SHA1WithRSA: - k = testPrivateKey - case ECDSAWithSHA1: - k = ecdsaPriv - } - _, err := CreateCertificate(rand.Reader, template, template, k.Public(), &brokenSigner{k.Public()}) - if err != nil { - t.Fatalf("CreateCertificate failed when SignatureAlgorithm = %v: %s", sigAlg, err) - } + _, err := CreateCertificate(rand.Reader, template, template, testPrivateKey.Public(), &brokenSigner{testPrivateKey.Public()}) + if err != nil { + t.Fatalf("CreateCertificate failed when SignatureAlgorithm = %v: %s", sigAlg, err) } } @@ -3396,3 +3381,66 @@ func TestParseUniqueID(t *testing.T) { t.Fatalf("unexpected number of extensions (probably because the extension section was not parsed): got %d, want 7", len(cert.Extensions)) } } + +func TestDisableSHA1ForCertOnly(t *testing.T) { + defer func(old bool) { debugAllowSHA1 = old }(debugAllowSHA1) + debugAllowSHA1 = false + + tmpl := &Certificate{ + SerialNumber: big.NewInt(1), + NotBefore: time.Now().Add(-time.Hour), + NotAfter: time.Now().Add(time.Hour), + SignatureAlgorithm: SHA1WithRSA, + BasicConstraintsValid: true, + IsCA: true, + KeyUsage: KeyUsageCertSign | KeyUsageCRLSign, + } + certDER, err := CreateCertificate(rand.Reader, tmpl, tmpl, rsaPrivateKey.Public(), rsaPrivateKey) + if err != nil { + t.Fatalf("failed to generate test cert: %s", err) + } + cert, err := ParseCertificate(certDER) + if err != nil { + t.Fatalf("failed to parse test cert: %s", err) + } + + err = cert.CheckSignatureFrom(cert) + if err == nil { + t.Error("expected CheckSignatureFrom to fail") + } else if _, ok := err.(InsecureAlgorithmError); !ok { + t.Errorf("expected InsecureAlgorithmError error, got %T", err) + } + + crlDER, err := CreateRevocationList(rand.Reader, &RevocationList{ + SignatureAlgorithm: SHA1WithRSA, + Number: big.NewInt(1), + ThisUpdate: time.Now().Add(-time.Hour), + NextUpdate: time.Now().Add(time.Hour), + }, cert, rsaPrivateKey) + if err != nil { + t.Fatalf("failed to generate test CRL: %s", err) + } + // TODO(rolandshoemaker): this should be ParseRevocationList once it lands + crl, err := ParseCRL(crlDER) + if err != nil { + t.Fatalf("failed to parse test CRL: %s", err) + } + + if err = cert.CheckCRLSignature(crl); err != nil { + t.Errorf("unexpected error: %s", err) + } + + // This is an unrelated OCSP response, which will fail signature verification + // but shouldn't return a InsecureAlgorithmError, since SHA1 should be allowed + // for OCSP. + ocspTBSHex := "30819fa2160414884451ff502a695e2d88f421bad90cf2cecbea7c180f32303133303631383037323434335a30743072304a300906052b0e03021a0500041448b60d38238df8456e4ee5843ea394111802979f0414884451ff502a695e2d88f421bad90cf2cecbea7c021100f78b13b946fc9635d8ab49de9d2148218000180f32303133303631383037323434335aa011180f32303133303632323037323434335a" + ocspTBS, err := hex.DecodeString(ocspTBSHex) + if err != nil { + t.Fatalf("failed to decode OCSP response TBS hex: %s", err) + } + + err = cert.CheckSignature(SHA1WithRSA, ocspTBS, nil) + if err != rsa.ErrVerification { + t.Errorf("unexpected error: %s", err) + } +} From ac313524fe4997b80a4221647f0da79d0e07b88e Mon Sep 17 00:00:00 2001 From: zlasd Date: Sun, 27 Mar 2022 21:17:53 +0800 Subject: [PATCH 111/125] reflect: fix Value.NumMethod docs NumMethod counts unexported methods for interface types. This behavior is documented in Type.NumMethod Fixes #42123 Change-Id: Ia5aba353a8cc64190c701d1521972d57e8903564 Reviewed-on: https://go-review.googlesource.com/c/go/+/396075 Reviewed-by: Ian Lance Taylor Trust: Cherry Mui --- src/reflect/type.go | 4 +++- src/reflect/value.go | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/reflect/type.go b/src/reflect/type.go index 209a7bae4d..53c17f9e55 100644 --- a/src/reflect/type.go +++ b/src/reflect/type.go @@ -72,7 +72,9 @@ type Type interface { // NumMethod returns the number of methods accessible using Method. // - // Note that NumMethod counts unexported methods only for interface types. + // For a non-interface type, it returns the number of exported methods. + // + // For an interface type, it returns the number of exported and unexported methods. NumMethod() int // Name returns the type's name within its package for a defined type. diff --git a/src/reflect/value.go b/src/reflect/value.go index 8410dfc30a..f1454b8ae2 100644 --- a/src/reflect/value.go +++ b/src/reflect/value.go @@ -1868,7 +1868,11 @@ func (v Value) Method(i int) Value { return Value{v.typ, v.ptr, fl} } -// NumMethod returns the number of exported methods in the value's method set. +// NumMethod returns the number of methods in the value's method set. +// +// For a non-interface type, it returns the number of exported methods. +// +// For an interface type, it returns the number of exported and unexported methods. func (v Value) NumMethod() int { if v.typ == nil { panic(&ValueError{"reflect.Value.NumMethod", Invalid}) From c58f1bb65f2187d79a5842bb19f4db4cafd22794 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Mon, 14 Mar 2022 13:21:06 +1100 Subject: [PATCH 112/125] text/template: permit eq and ne funcs to check against nil The existing code errors out immediately if the argument is not "comparable", making it impossible to test a slice, map, and so on from being compared to nil. Fix by delaying the "comparable" error check until we encounter an actual check between two non-comparable, non-nil values. Note for the future: reflect makes it unnecessarily clumsy to deal with nil values in cases like this. For instance, it should be possible to check if a value is nil without stepping around a panic. See the new functions isNil and canCompare for my (too expensive) workaround. Fixes #51642 Change-Id: Ic4072698c4910130ea7e3d76e7a148d8a8b88162 Reviewed-on: https://go-review.googlesource.com/c/go/+/392274 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Trust: Cherry Mui --- src/html/template/exec_test.go | 34 +++++++++++++++++------------ src/text/template/exec_test.go | 34 +++++++++++++++++------------ src/text/template/funcs.go | 40 ++++++++++++++++++++++++++-------- 3 files changed, 71 insertions(+), 37 deletions(-) diff --git a/src/html/template/exec_test.go b/src/html/template/exec_test.go index 6cf710efab..f042cf5125 100644 --- a/src/html/template/exec_test.go +++ b/src/html/template/exec_test.go @@ -1191,15 +1191,19 @@ var cmpTests = []cmpTest{ {"eq .Iface1 .Iface1", "true", true}, {"eq .Iface1 .Iface2", "false", true}, {"eq .Iface2 .Iface2", "true", true}, + {"eq .Map .Map", "true", true}, // Uncomparable types but nil is OK. + {"eq .Map nil", "true", true}, // Uncomparable types but nil is OK. + {"eq nil .Map", "true", true}, // Uncomparable types but nil is OK. + {"eq .Map .NonNilMap", "false", true}, // Uncomparable types but nil is OK. // Errors - {"eq `xy` 1", "", false}, // Different types. - {"eq 2 2.0", "", false}, // Different types. - {"lt true true", "", false}, // Unordered types. - {"lt 1+0i 1+0i", "", false}, // Unordered types. - {"eq .Ptr 1", "", false}, // Incompatible types. - {"eq .Ptr .NegOne", "", false}, // Incompatible types. - {"eq .Map .Map", "", false}, // Uncomparable types. - {"eq .Map .V1", "", false}, // Uncomparable types. + {"eq `xy` 1", "", false}, // Different types. + {"eq 2 2.0", "", false}, // Different types. + {"lt true true", "", false}, // Unordered types. + {"lt 1+0i 1+0i", "", false}, // Unordered types. + {"eq .Ptr 1", "", false}, // Incompatible types. + {"eq .Ptr .NegOne", "", false}, // Incompatible types. + {"eq .Map .V1", "", false}, // Uncomparable types. + {"eq .NonNilMap .NonNilMap", "", false}, // Uncomparable types. } func TestComparison(t *testing.T) { @@ -1208,16 +1212,18 @@ func TestComparison(t *testing.T) { Uthree, Ufour uint NegOne, Three int Ptr, NilPtr *int + NonNilMap map[int]int Map map[int]int V1, V2 V Iface1, Iface2 fmt.Stringer }{ - Uthree: 3, - Ufour: 4, - NegOne: -1, - Three: 3, - Ptr: new(int), - Iface1: b, + Uthree: 3, + Ufour: 4, + NegOne: -1, + Three: 3, + Ptr: new(int), + NonNilMap: make(map[int]int), + Iface1: b, } for _, test := range cmpTests { text := fmt.Sprintf("{{if %s}}true{{else}}false{{end}}", test.expr) diff --git a/src/text/template/exec_test.go b/src/text/template/exec_test.go index 8c8143396d..56566b920f 100644 --- a/src/text/template/exec_test.go +++ b/src/text/template/exec_test.go @@ -1220,15 +1220,19 @@ var cmpTests = []cmpTest{ {"eq .NilIface .Iface1", "false", true}, {"eq .NilIface 0", "false", true}, {"eq 0 .NilIface", "false", true}, + {"eq .Map .Map", "true", true}, // Uncomparable types but nil is OK. + {"eq .Map nil", "true", true}, // Uncomparable types but nil is OK. + {"eq nil .Map", "true", true}, // Uncomparable types but nil is OK. + {"eq .Map .NonNilMap", "false", true}, // Uncomparable types but nil is OK. // Errors - {"eq `xy` 1", "", false}, // Different types. - {"eq 2 2.0", "", false}, // Different types. - {"lt true true", "", false}, // Unordered types. - {"lt 1+0i 1+0i", "", false}, // Unordered types. - {"eq .Ptr 1", "", false}, // Incompatible types. - {"eq .Ptr .NegOne", "", false}, // Incompatible types. - {"eq .Map .Map", "", false}, // Uncomparable types. - {"eq .Map .V1", "", false}, // Uncomparable types. + {"eq `xy` 1", "", false}, // Different types. + {"eq 2 2.0", "", false}, // Different types. + {"lt true true", "", false}, // Unordered types. + {"lt 1+0i 1+0i", "", false}, // Unordered types. + {"eq .Ptr 1", "", false}, // Incompatible types. + {"eq .Ptr .NegOne", "", false}, // Incompatible types. + {"eq .Map .V1", "", false}, // Uncomparable types. + {"eq .NonNilMap .NonNilMap", "", false}, // Uncomparable types. } func TestComparison(t *testing.T) { @@ -1237,16 +1241,18 @@ func TestComparison(t *testing.T) { Uthree, Ufour uint NegOne, Three int Ptr, NilPtr *int + NonNilMap map[int]int Map map[int]int V1, V2 V Iface1, NilIface fmt.Stringer }{ - Uthree: 3, - Ufour: 4, - NegOne: -1, - Three: 3, - Ptr: new(int), - Iface1: b, + Uthree: 3, + Ufour: 4, + NegOne: -1, + Three: 3, + Ptr: new(int), + NonNilMap: make(map[int]int), + Iface1: b, } for _, test := range cmpTests { text := fmt.Sprintf("{{if %s}}true{{else}}false{{end}}", test.expr) diff --git a/src/text/template/funcs.go b/src/text/template/funcs.go index dca5ed28db..1f63b361f8 100644 --- a/src/text/template/funcs.go +++ b/src/text/template/funcs.go @@ -436,14 +436,33 @@ func basicKind(v reflect.Value) (kind, error) { return invalidKind, errBadComparisonType } +// isNil returns true if v is the zero reflect.Value, or nil of its type. +func isNil(v reflect.Value) bool { + if v == zero { + return true + } + switch v.Kind() { + case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Pointer, reflect.Slice: + return v.IsNil() + } + return false +} + +// canCompare reports whether v1 and v2 are both the same kind, or one is nil. +// Called only when dealing with nillable types, or there's about to be an error. +func canCompare(v1, v2 reflect.Value) bool { + k1 := v1.Kind() + k2 := v2.Kind() + if k1 == k2 { + return true + } + // We know the type can be compared to nil. + return k1 == reflect.Invalid || k2 == reflect.Invalid +} + // eq evaluates the comparison a == b || a == c || ... func eq(arg1 reflect.Value, arg2 ...reflect.Value) (bool, error) { arg1 = indirectInterface(arg1) - if arg1 != zero { - if t1 := arg1.Type(); !t1.Comparable() { - return false, fmt.Errorf("uncomparable type %s: %v", t1, arg1) - } - } if len(arg2) == 0 { return false, errNoComparison } @@ -479,11 +498,14 @@ func eq(arg1 reflect.Value, arg2 ...reflect.Value) (bool, error) { case uintKind: truth = arg1.Uint() == arg.Uint() default: - if arg == zero || arg1 == zero { - truth = arg1 == arg + if !canCompare(arg1, arg) { + return false, fmt.Errorf("non-comparable types %s: %v, %s: %v", arg1, arg1.Type(), arg.Type(), arg) + } + if isNil(arg1) || isNil(arg) { + truth = isNil(arg) == isNil(arg1) } else { - if t2 := arg.Type(); !t2.Comparable() { - return false, fmt.Errorf("uncomparable type %s: %v", t2, arg) + if !arg.Type().Comparable() { + return false, fmt.Errorf("non-comparable type %s: %v", arg, arg.Type()) } truth = arg1.Interface() == arg.Interface() } From 5bfd51147e460bad6615b5baaf68609a413eda1a Mon Sep 17 00:00:00 2001 From: Xiaodong Liu Date: Sun, 15 Aug 2021 14:57:00 +0800 Subject: [PATCH 113/125] copyright: add Loongson into AUTHORS Contributors to the loong64 port are: Weining Lu Lei Wang Lingqin Gong Xiaolin Zhao Meidan Li Xiaojuan Zhai Qiyuan Pu Guoqi Chen This port has been updated to Go 1.15.6: https://github.com/loongson/go Updates #46229 Change-Id: I23fb430f1f6e8a587f13e2f020721cbd3a45d4ed Reviewed-on: https://go-review.googlesource.com/c/go/+/342303 Reviewed-by: Ian Lance Taylor Trust: Cherry Mui --- AUTHORS | 1 + 1 file changed, 1 insertion(+) diff --git a/AUTHORS b/AUTHORS index 08caca5f68..96704bd564 100644 --- a/AUTHORS +++ b/AUTHORS @@ -829,6 +829,7 @@ Liberty Fund Inc Linaro Limited Lion Yang Lloyd Dewolf +Loongson Technology Corporation Limited Lorenzo Masini Lorenzo Stoakes Luan Santos From 7d1e07049fec1d9a9fd4116111e52b161746dbde Mon Sep 17 00:00:00 2001 From: uji Date: Wed, 2 Mar 2022 23:29:43 +0000 Subject: [PATCH 114/125] make.bash: document CC_FOR_${GOOS}_${GOARCH} Fixes #51306 Change-Id: I5989d86fe5ac4d02793b2ecb00c549d9586763da GitHub-Last-Rev: 6b0f6bee434219a2c502e8b5630fbe74ca25024a GitHub-Pull-Request: golang/go#51379 Reviewed-on: https://go-review.googlesource.com/c/go/+/388176 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gopher Robot Trust: Cherry Mui --- src/make.bash | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/make.bash b/src/make.bash index 96cbbf37a9..31387da33c 100755 --- a/src/make.bash +++ b/src/make.bash @@ -41,12 +41,20 @@ # Default is "gcc". Also supported: "clang". # # CC_FOR_TARGET: Command line to run to compile C code for GOARCH. -# This is used by cgo. Default is CC. +# This is used by cgo. Default is CC. +# +# CC_FOR_${GOOS}_${GOARCH}: Command line to run to compile C code for specified ${GOOS} and ${GOARCH}. +# (for example, CC_FOR_linux_arm) +# If this is not set, the build will use CC_FOR_TARGET if appropriate, or CC. # # CXX_FOR_TARGET: Command line to run to compile C++ code for GOARCH. # This is used by cgo. Default is CXX, or, if that is not set, # "g++" or "clang++". # +# CXX_FOR_${GOOS}_${GOARCH}: Command line to run to compile C++ code for specified ${GOOS} and ${GOARCH}. +# (for example, CXX_FOR_linux_arm) +# If this is not set, the build will use CXX_FOR_TARGET if appropriate, or CXX. +# # FC: Command line to run to compile Fortran code for GOARCH. # This is used by cgo. Default is "gfortran". # From deaec2ecb3cca5b7a151feff2bf195c0fb76d3f5 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Mon, 14 Feb 2022 19:51:37 -0800 Subject: [PATCH 115/125] go/internal/gcimporter: add support for unified IR This CL ports unified IR's types2 importer back to the go/types API. Notably, it drops support for lazy importing, because those APIs aren't exposed yet via go/types. Also, it supports unified IR's "final" data format, which wholey replaces the iexport data format rather than the current backwards-compatible hack that cmd/compile uses. The next CL will switch the compiler to using this same format. Change-Id: I44e1744bbdc384c9c354119975e68befdc117cff Reviewed-on: https://go-review.googlesource.com/c/go/+/386002 Trust: Matthew Dempsky Run-TryBot: Matthew Dempsky Reviewed-by: Robert Griesemer TryBot-Result: Gopher Robot --- src/go/internal/gcimporter/exportdata.go | 7 +- src/go/internal/gcimporter/gcimporter.go | 35 +- src/go/internal/gcimporter/support.go | 16 + src/go/internal/gcimporter/ureader.go | 590 +++++++++++++++++++++++ 4 files changed, 638 insertions(+), 10 deletions(-) create mode 100644 src/go/internal/gcimporter/ureader.go diff --git a/src/go/internal/gcimporter/exportdata.go b/src/go/internal/gcimporter/exportdata.go index 43e505b47b..42e6ea9077 100644 --- a/src/go/internal/gcimporter/exportdata.go +++ b/src/go/internal/gcimporter/exportdata.go @@ -40,7 +40,8 @@ func readGopackHeader(r *bufio.Reader) (name string, size int, err error) { // file by reading from it. The reader must be positioned at the // start of the file before calling this function. The hdr result // is the string before the export data, either "$$" or "$$B". -func FindExportData(r *bufio.Reader) (hdr string, err error) { +// +func FindExportData(r *bufio.Reader) (hdr string, size int, err error) { // Read first line to make sure this is an object file. line, err := r.ReadSlice('\n') if err != nil { @@ -51,7 +52,7 @@ func FindExportData(r *bufio.Reader) (hdr string, err error) { if string(line) == "!\n" { // Archive file. Scan to __.PKGDEF. var name string - if name, _, err = readGopackHeader(r); err != nil { + if name, size, err = readGopackHeader(r); err != nil { return } @@ -75,6 +76,7 @@ func FindExportData(r *bufio.Reader) (hdr string, err error) { err = fmt.Errorf("not a Go object file") return } + size -= len(line) // Skip over object header to export data. // Begins after first line starting with $$. @@ -83,6 +85,7 @@ func FindExportData(r *bufio.Reader) (hdr string, err error) { err = fmt.Errorf("can't find export data (%v)", err) return } + size -= len(line) } hdr = string(line) diff --git a/src/go/internal/gcimporter/gcimporter.go b/src/go/internal/gcimporter/gcimporter.go index 9ed5e0c5e8..0b27a95404 100644 --- a/src/go/internal/gcimporter/gcimporter.go +++ b/src/go/internal/gcimporter/gcimporter.go @@ -11,6 +11,7 @@ import ( "go/build" "go/token" "go/types" + "internal/pkgbits" "io" "os" "path/filepath" @@ -132,9 +133,9 @@ func Import(fset *token.FileSet, packages map[string]*types.Package, path, srcDi } defer rc.Close() - var hdr string buf := bufio.NewReader(rc) - if hdr, err = FindExportData(buf); err != nil { + hdr, size, err := FindExportData(buf) + if err != nil { return } @@ -144,14 +145,32 @@ func Import(fset *token.FileSet, packages map[string]*types.Package, path, srcDi case "$$B\n": var exportFormat byte - exportFormat, err = buf.ReadByte() + if exportFormat, err = buf.ReadByte(); err != nil { + return + } - // The indexed export format starts with an 'i'; the older - // binary export format starts with a 'c', 'd', or 'v' - // (from "version"). Select appropriate importer. - if err == nil && exportFormat == 'i' { + // The unified export format starts with a 'u'; the indexed export + // format starts with an 'i'; and the older binary export format + // starts with a 'c', 'd', or 'v' (from "version"). Select + // appropriate importer. + switch exportFormat { + case 'u': + var data []byte + var r io.Reader = buf + if size >= 0 { + r = io.LimitReader(r, int64(size)) + } + if data, err = io.ReadAll(r); err != nil { + return + } + s := string(data) + s = s[:strings.LastIndex(s, "\n$$\n")] + + input := pkgbits.NewPkgDecoder(id, s) + pkg = readUnifiedPackage(fset, nil, packages, input) + case 'i': pkg, err = iImportData(fset, packages, buf, id) - } else { + default: err = fmt.Errorf("import %q: old binary export format no longer supported (recompile library)", path) } diff --git a/src/go/internal/gcimporter/support.go b/src/go/internal/gcimporter/support.go index 61d1b46a68..8b61a417ad 100644 --- a/src/go/internal/gcimporter/support.go +++ b/src/go/internal/gcimporter/support.go @@ -13,6 +13,12 @@ import ( "sync" ) +func assert(b bool) { + if !b { + panic("assertion failed") + } +} + func errorf(format string, args ...any) { panic(fmt.Sprintf(format, args...)) } @@ -148,3 +154,13 @@ type anyType struct{} func (t anyType) Underlying() types.Type { return t } func (t anyType) String() string { return "any" } + +type derivedInfo struct { + idx int + needed bool +} + +type typeInfo struct { + idx int + derived bool +} diff --git a/src/go/internal/gcimporter/ureader.go b/src/go/internal/gcimporter/ureader.go new file mode 100644 index 0000000000..5260759c4f --- /dev/null +++ b/src/go/internal/gcimporter/ureader.go @@ -0,0 +1,590 @@ +// UNREVIEWED + +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gcimporter + +import ( + "go/token" + "go/types" + "internal/pkgbits" +) + +// A pkgReader holds the shared state for reading a unified IR package +// description. +type pkgReader struct { + pkgbits.PkgDecoder + + fake fakeFileSet + + ctxt *types.Context + imports map[string]*types.Package // previously imported packages, indexed by path + + // lazily initialized arrays corresponding to the unified IR + // PosBase, Pkg, and Type sections, respectively. + posBases []string // position bases (i.e., file names) + pkgs []*types.Package + typs []types.Type + + // laterFns holds functions that need to be invoked at the end of + // import reading. + laterFns []func() +} + +// later adds a function to be invoked at the end of import reading. +func (pr *pkgReader) later(fn func()) { + pr.laterFns = append(pr.laterFns, fn) +} + +// readUnifiedPackage reads a package description from the given +// unified IR export data decoder. +func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[string]*types.Package, input pkgbits.PkgDecoder) *types.Package { + pr := pkgReader{ + PkgDecoder: input, + + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*fileInfo), + }, + + ctxt: ctxt, + imports: imports, + + posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), + pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), + typs: make([]types.Type, input.NumElems(pkgbits.RelocType)), + } + defer pr.fake.setLines() + + r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic) + pkg := r.pkg() + r.Bool() // has init + + for i, n := 0, r.Len(); i < n; i++ { + // As if r.obj(), but avoiding the Scope.Lookup call, + // to avoid eager loading of imports. + r.Sync(pkgbits.SyncObject) + assert(!r.Bool()) + r.p.objIdx(r.Reloc(pkgbits.RelocObj)) + assert(r.Len() == 0) + } + + r.Sync(pkgbits.SyncEOF) + + for _, fn := range pr.laterFns { + fn() + } + + pkg.MarkComplete() + return pkg +} + +// A reader holds the state for reading a single unified IR element +// within a package. +type reader struct { + pkgbits.Decoder + + p *pkgReader + + dict *readerDict +} + +// A readerDict holds the state for type parameters that parameterize +// the current unified IR element. +type readerDict struct { + // bounds is a slice of typeInfos corresponding to the underlying + // bounds of the element's type parameters. + bounds []typeInfo + + // tparams is a slice of the constructed TypeParams for the element. + tparams []*types.TypeParam + + // devived is a slice of types derived from tparams, which may be + // instantiated while reading the current element. + derived []derivedInfo + derivedTypes []types.Type // lazily instantiated from derived +} + +func (pr *pkgReader) newReader(k pkgbits.RelocKind, idx int, marker pkgbits.SyncMarker) *reader { + return &reader{ + Decoder: pr.NewDecoder(k, idx, marker), + p: pr, + } +} + +// @@@ Positions + +func (r *reader) pos() token.Pos { + r.Sync(pkgbits.SyncPos) + if !r.Bool() { + return token.NoPos + } + + // TODO(mdempsky): Delta encoding. + posBase := r.posBase() + line := r.Uint() + col := r.Uint() + return r.p.fake.pos(posBase, int(line), int(col)) +} + +func (r *reader) posBase() string { + return r.p.posBaseIdx(r.Reloc(pkgbits.RelocPosBase)) +} + +func (pr *pkgReader) posBaseIdx(idx int) string { + if b := pr.posBases[idx]; b != "" { + return b + } + + r := pr.newReader(pkgbits.RelocPosBase, idx, pkgbits.SyncPosBase) + + // Within types2, position bases have a lot more details (e.g., + // keeping track of where //line directives appeared exactly). + // + // For go/types, we just track the file name. + + filename := r.String() + + if r.Bool() { // file base + // Was: "b = token.NewTrimmedFileBase(filename, true)" + } else { // line base + pos := r.pos() + line := r.Uint() + col := r.Uint() + + // Was: "b = token.NewLineBase(pos, filename, true, line, col)" + _, _, _ = pos, line, col + } + + b := filename + pr.posBases[idx] = b + return b +} + +// @@@ Packages + +func (r *reader) pkg() *types.Package { + r.Sync(pkgbits.SyncPkg) + return r.p.pkgIdx(r.Reloc(pkgbits.RelocPkg)) +} + +func (pr *pkgReader) pkgIdx(idx int) *types.Package { + // TODO(mdempsky): Consider using some non-nil pointer to indicate + // the universe scope, so we don't need to keep re-reading it. + if pkg := pr.pkgs[idx]; pkg != nil { + return pkg + } + + pkg := pr.newReader(pkgbits.RelocPkg, idx, pkgbits.SyncPkgDef).doPkg() + pr.pkgs[idx] = pkg + return pkg +} + +func (r *reader) doPkg() *types.Package { + path := r.String() + if path == "builtin" { + return nil // universe + } + if path == "unsafe" { + return types.Unsafe + } + if path == "" { + path = r.p.PkgPath() + } + + if pkg := r.p.imports[path]; pkg != nil { + return pkg + } + + name := r.String() + height := r.Len() + + // Was: "pkg := types.NewPackageHeight(path, name, height)" + pkg, _ := types.NewPackage(path, name), height + r.p.imports[path] = pkg + + imports := make([]*types.Package, r.Len()) + for i := range imports { + imports[i] = r.pkg() + } + pkg.SetImports(imports) + + return pkg +} + +// @@@ Types + +func (r *reader) typ() types.Type { + return r.p.typIdx(r.typInfo(), r.dict) +} + +func (r *reader) typInfo() typeInfo { + r.Sync(pkgbits.SyncType) + if r.Bool() { + return typeInfo{idx: r.Len(), derived: true} + } + return typeInfo{idx: r.Reloc(pkgbits.RelocType), derived: false} +} + +func (pr *pkgReader) typIdx(info typeInfo, dict *readerDict) types.Type { + idx := info.idx + var where *types.Type + if info.derived { + where = &dict.derivedTypes[idx] + idx = dict.derived[idx].idx + } else { + where = &pr.typs[idx] + } + + if typ := *where; typ != nil { + return typ + } + + r := pr.newReader(pkgbits.RelocType, idx, pkgbits.SyncTypeIdx) + r.dict = dict + + typ := r.doTyp() + assert(typ != nil) + + // See comment in pkgReader.typIdx explaining how this happens. + if prev := *where; prev != nil { + return prev + } + + *where = typ + return typ +} + +func (r *reader) doTyp() (res types.Type) { + switch tag := pkgbits.CodeType(r.Code(pkgbits.SyncType)); tag { + default: + errorf("unhandled type tag: %v", tag) + panic("unreachable") + + case pkgbits.TypeBasic: + return types.Typ[r.Len()] + + case pkgbits.TypeNamed: + obj, targs := r.obj() + name := obj.(*types.TypeName) + if len(targs) != 0 { + t, _ := types.Instantiate(r.p.ctxt, name.Type(), targs, false) + return t + } + return name.Type() + + case pkgbits.TypeTypeParam: + return r.dict.tparams[r.Len()] + + case pkgbits.TypeArray: + len := int64(r.Uint64()) + return types.NewArray(r.typ(), len) + case pkgbits.TypeChan: + dir := types.ChanDir(r.Len()) + return types.NewChan(dir, r.typ()) + case pkgbits.TypeMap: + return types.NewMap(r.typ(), r.typ()) + case pkgbits.TypePointer: + return types.NewPointer(r.typ()) + case pkgbits.TypeSignature: + return r.signature(nil, nil, nil) + case pkgbits.TypeSlice: + return types.NewSlice(r.typ()) + case pkgbits.TypeStruct: + return r.structType() + case pkgbits.TypeInterface: + return r.interfaceType() + case pkgbits.TypeUnion: + return r.unionType() + } +} + +func (r *reader) structType() *types.Struct { + fields := make([]*types.Var, r.Len()) + var tags []string + for i := range fields { + pos := r.pos() + pkg, name := r.selector() + ftyp := r.typ() + tag := r.String() + embedded := r.Bool() + + fields[i] = types.NewField(pos, pkg, name, ftyp, embedded) + if tag != "" { + for len(tags) < i { + tags = append(tags, "") + } + tags = append(tags, tag) + } + } + return types.NewStruct(fields, tags) +} + +func (r *reader) unionType() *types.Union { + terms := make([]*types.Term, r.Len()) + for i := range terms { + terms[i] = types.NewTerm(r.Bool(), r.typ()) + } + return types.NewUnion(terms) +} + +func (r *reader) interfaceType() *types.Interface { + methods := make([]*types.Func, r.Len()) + embeddeds := make([]types.Type, r.Len()) + implicit := len(methods) == 0 && len(embeddeds) == 1 && r.Bool() + + for i := range methods { + pos := r.pos() + pkg, name := r.selector() + mtyp := r.signature(nil, nil, nil) + methods[i] = types.NewFunc(pos, pkg, name, mtyp) + } + + for i := range embeddeds { + embeddeds[i] = r.typ() + } + + iface := types.NewInterfaceType(methods, embeddeds) + if implicit { + iface.MarkImplicit() + } + return iface +} + +func (r *reader) signature(recv *types.Var, rtparams, tparams []*types.TypeParam) *types.Signature { + r.Sync(pkgbits.SyncSignature) + + params := r.params() + results := r.params() + variadic := r.Bool() + + return types.NewSignatureType(recv, rtparams, tparams, params, results, variadic) +} + +func (r *reader) params() *types.Tuple { + r.Sync(pkgbits.SyncParams) + + params := make([]*types.Var, r.Len()) + for i := range params { + params[i] = r.param() + } + + return types.NewTuple(params...) +} + +func (r *reader) param() *types.Var { + r.Sync(pkgbits.SyncParam) + + pos := r.pos() + pkg, name := r.localIdent() + typ := r.typ() + + return types.NewParam(pos, pkg, name, typ) +} + +// @@@ Objects + +func (r *reader) obj() (types.Object, []types.Type) { + r.Sync(pkgbits.SyncObject) + + assert(!r.Bool()) + + pkg, name := r.p.objIdx(r.Reloc(pkgbits.RelocObj)) + obj := pkgScope(pkg).Lookup(name) + + targs := make([]types.Type, r.Len()) + for i := range targs { + targs[i] = r.typ() + } + + return obj, targs +} + +func (pr *pkgReader) objIdx(idx int) (*types.Package, string) { + rname := pr.newReader(pkgbits.RelocName, idx, pkgbits.SyncObject1) + + objPkg, objName := rname.qualifiedIdent() + assert(objName != "") + + tag := pkgbits.CodeObj(rname.Code(pkgbits.SyncCodeObj)) + + if tag == pkgbits.ObjStub { + assert(objPkg == nil || objPkg == types.Unsafe) + return objPkg, objName + } + + if objPkg.Scope().Lookup(objName) == nil { + dict := pr.objDictIdx(idx) + + r := pr.newReader(pkgbits.RelocObj, idx, pkgbits.SyncObject1) + r.dict = dict + + declare := func(obj types.Object) { + objPkg.Scope().Insert(obj) + } + + switch tag { + default: + panic("weird") + + case pkgbits.ObjAlias: + pos := r.pos() + typ := r.typ() + declare(types.NewTypeName(pos, objPkg, objName, typ)) + + case pkgbits.ObjConst: + pos := r.pos() + typ := r.typ() + val := r.Value() + declare(types.NewConst(pos, objPkg, objName, typ, val)) + + case pkgbits.ObjFunc: + pos := r.pos() + tparams := r.typeParamNames() + sig := r.signature(nil, nil, tparams) + declare(types.NewFunc(pos, objPkg, objName, sig)) + + case pkgbits.ObjType: + pos := r.pos() + + obj := types.NewTypeName(pos, objPkg, objName, nil) + named := types.NewNamed(obj, nil, nil) + declare(obj) + + named.SetTypeParams(r.typeParamNames()) + + // TODO(mdempsky): Rewrite receiver types to underlying is an + // Interface? The go/types importer does this (I think because + // unit tests expected that), but cmd/compile doesn't care + // about it, so maybe we can avoid worrying about that here. + rhs := r.typ() + r.p.later(func() { + underlying := rhs.Underlying() + named.SetUnderlying(underlying) + }) + + for i, n := 0, r.Len(); i < n; i++ { + named.AddMethod(r.method()) + } + + case pkgbits.ObjVar: + pos := r.pos() + typ := r.typ() + declare(types.NewVar(pos, objPkg, objName, typ)) + } + } + + return objPkg, objName +} + +func (pr *pkgReader) objDictIdx(idx int) *readerDict { + r := pr.newReader(pkgbits.RelocObjDict, idx, pkgbits.SyncObject1) + + var dict readerDict + + if implicits := r.Len(); implicits != 0 { + errorf("unexpected object with %v implicit type parameter(s)", implicits) + } + + dict.bounds = make([]typeInfo, r.Len()) + for i := range dict.bounds { + dict.bounds[i] = r.typInfo() + } + + dict.derived = make([]derivedInfo, r.Len()) + dict.derivedTypes = make([]types.Type, len(dict.derived)) + for i := range dict.derived { + dict.derived[i] = derivedInfo{r.Reloc(pkgbits.RelocType), r.Bool()} + } + + // function references follow, but reader doesn't need those + + return &dict +} + +func (r *reader) typeParamNames() []*types.TypeParam { + r.Sync(pkgbits.SyncTypeParamNames) + + // Note: This code assumes it only processes objects without + // implement type parameters. This is currently fine, because + // reader is only used to read in exported declarations, which are + // always package scoped. + + if len(r.dict.bounds) == 0 { + return nil + } + + // Careful: Type parameter lists may have cycles. To allow for this, + // we construct the type parameter list in two passes: first we + // create all the TypeNames and TypeParams, then we construct and + // set the bound type. + + r.dict.tparams = make([]*types.TypeParam, len(r.dict.bounds)) + for i := range r.dict.bounds { + pos := r.pos() + pkg, name := r.localIdent() + + tname := types.NewTypeName(pos, pkg, name, nil) + r.dict.tparams[i] = types.NewTypeParam(tname, nil) + } + + typs := make([]types.Type, len(r.dict.bounds)) + for i, bound := range r.dict.bounds { + typs[i] = r.p.typIdx(bound, r.dict) + } + + // TODO(mdempsky): This is subtle, elaborate further. + // + // We have to save tparams outside of the closure, because + // typeParamNames() can be called multiple times with the same + // dictionary instance. + // + // Also, this needs to happen later to make sure SetUnderlying has + // been called. + // + // TODO(mdempsky): Is it safe to have a single "later" slice or do + // we need to have multiple passes? See comments on CL 386002 and + // go.dev/issue/52104. + tparams := r.dict.tparams + r.p.later(func() { + for i, typ := range typs { + tparams[i].SetConstraint(typ) + } + }) + + return r.dict.tparams +} + +func (r *reader) method() *types.Func { + r.Sync(pkgbits.SyncMethod) + pos := r.pos() + pkg, name := r.selector() + + rparams := r.typeParamNames() + sig := r.signature(r.param(), rparams, nil) + + _ = r.pos() // TODO(mdempsky): Remove; this is a hacker for linker.go. + return types.NewFunc(pos, pkg, name, sig) +} + +func (r *reader) qualifiedIdent() (*types.Package, string) { return r.ident(pkgbits.SyncSym) } +func (r *reader) localIdent() (*types.Package, string) { return r.ident(pkgbits.SyncLocalIdent) } +func (r *reader) selector() (*types.Package, string) { return r.ident(pkgbits.SyncSelector) } + +func (r *reader) ident(marker pkgbits.SyncMarker) (*types.Package, string) { + r.Sync(marker) + return r.pkg(), r.String() +} + +// pkgScope returns pkg.Scope(). +// If pkg is nil, it returns types.Universe instead. +// +// TODO(mdempsky): Remove after x/tools can depend on Go 1.19. +func pkgScope(pkg *types.Package) *types.Scope { + if pkg != nil { + return pkg.Scope() + } + return types.Universe +} From e146d3eafafe149aa3a28e6a251db9c01d04f11d Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Tue, 15 Feb 2022 11:39:41 -0800 Subject: [PATCH 116/125] cmd/compile: switch to final unified IR export format Now that there's a native go/types importer for unified IR, the compiler no longer needs to stay backwards compatible with old iexport importers. This CL also updates the go/types and go/internal/gcimporter tests to expect that the unified IR importer sets the receiver parameter type to the underlying Interface type, rather than the Named type. This is a temporary workaround until we make a decision on #49906. Notably, this makes `GOEXPERIMENT=unified go test` work on generics code without requiring `-vet=off` (because previously cmd/vet was relying on unified IR's backwards-compatible iexport data, which omitted generic types). Change-Id: Iac7a2346bb7a91e6690fb2978fb702fadae5559d Reviewed-on: https://go-review.googlesource.com/c/go/+/386004 Trust: Matthew Dempsky Run-TryBot: Matthew Dempsky Reviewed-by: Robert Griesemer Reviewed-by: Robert Findley TryBot-Result: Gopher Robot --- .../internal/importer/gcimporter_test.go | 20 +++- src/cmd/compile/internal/noder/export.go | 46 ++------- src/cmd/compile/internal/noder/import.go | 95 ++++++++----------- src/cmd/compile/internal/noder/reader.go | 10 -- src/cmd/compile/internal/noder/unified.go | 16 +--- src/go/internal/gcimporter/gcimporter_test.go | 27 ++++-- src/go/types/eval_test.go | 10 +- 7 files changed, 90 insertions(+), 134 deletions(-) diff --git a/src/cmd/compile/internal/importer/gcimporter_test.go b/src/cmd/compile/internal/importer/gcimporter_test.go index 9fecf742fb..3b6d77747b 100644 --- a/src/cmd/compile/internal/importer/gcimporter_test.go +++ b/src/cmd/compile/internal/importer/gcimporter_test.go @@ -115,10 +115,14 @@ func TestImportTestdata(t *testing.T) { } testfiles := map[string][]string{ - "exports.go": {"go/ast", "go/token"}, + "exports.go": {"go/ast", "go/token"}, + "generics.go": nil, } - if !goexperiment.Unified { - testfiles["generics.go"] = nil + if goexperiment.Unified { + // TODO(mdempsky): Fix test below to flatten the transitive + // Package.Imports graph. Unified IR is more precise about + // recreating the package import graph. + testfiles["exports.go"] = []string{"go/ast"} } for testfile, wantImports := range testfiles { @@ -326,6 +330,14 @@ func verifyInterfaceMethodRecvs(t *testing.T, named *types2.Named, level int) { return // not an interface } + // The unified IR importer always sets interface method receiver + // parameters to point to the Interface type, rather than the Named. + // See #49906. + var want types2.Type = named + if goexperiment.Unified { + want = iface + } + // check explicitly declared methods for i := 0; i < iface.NumExplicitMethods(); i++ { m := iface.ExplicitMethod(i) @@ -334,7 +346,7 @@ func verifyInterfaceMethodRecvs(t *testing.T, named *types2.Named, level int) { t.Errorf("%s: missing receiver type", m) continue } - if recv.Type() != named { + if recv.Type() != want { t.Errorf("%s: got recv type %s; want %s", m, recv.Type(), named) } } diff --git a/src/cmd/compile/internal/noder/export.go b/src/cmd/compile/internal/noder/export.go index 1a296e22c8..263cdc262b 100644 --- a/src/cmd/compile/internal/noder/export.go +++ b/src/cmd/compile/internal/noder/export.go @@ -14,52 +14,22 @@ import ( "cmd/internal/bio" ) -// writeNewExportFunc is a hook that can be added to append extra -// export data after the normal export data section. It allows -// experimenting with new export data format designs without requiring -// immediate support in the go/internal or x/tools importers. -var writeNewExportFunc func(out io.Writer) - func WriteExports(out *bio.Writer) { - // When unified IR exports are enable, we simply append it to the - // end of the normal export data (with compiler extensions - // disabled), and write an extra header giving its size. - // - // If the compiler sees this header, it knows to read the new data - // instead; meanwhile the go/types importers will silently ignore it - // and continue processing the old export instead. - // - // This allows us to experiment with changes to the new export data - // format without needing to update the go/internal/gcimporter or - // (worse) x/tools/go/gcexportdata. + var data bytes.Buffer - useNewExport := writeNewExportFunc != nil - - var old, new bytes.Buffer - - typecheck.WriteExports(&old, !useNewExport) - - if useNewExport { - writeNewExportFunc(&new) - } - - oldLen := old.Len() - newLen := new.Len() - - if useNewExport { - fmt.Fprintf(out, "\nnewexportsize %v\n", newLen) + if base.Debug.Unified != 0 { + data.WriteByte('u') + writeUnifiedExport(&data) + } else { + typecheck.WriteExports(&data, true) } // The linker also looks for the $$ marker - use char after $$ to distinguish format. out.WriteString("\n$$B\n") // indicate binary export format - io.Copy(out, &old) + io.Copy(out, &data) out.WriteString("\n$$\n") - io.Copy(out, &new) if base.Debug.Export != 0 { - fmt.Printf("BenchmarkExportSize:%s 1 %d bytes\n", base.Ctxt.Pkgpath, oldLen) - if useNewExport { - fmt.Printf("BenchmarkNewExportSize:%s 1 %d bytes\n", base.Ctxt.Pkgpath, newLen) - } + fmt.Printf("BenchmarkExportSize:%s 1 %d bytes\n", base.Ctxt.Pkgpath, data.Len()) } } diff --git a/src/cmd/compile/internal/noder/import.go b/src/cmd/compile/internal/noder/import.go index 7ba1b23d12..2cef9f75e8 100644 --- a/src/cmd/compile/internal/noder/import.go +++ b/src/cmd/compile/internal/noder/import.go @@ -8,10 +8,10 @@ import ( "errors" "fmt" "internal/buildcfg" + "internal/pkgbits" "os" pathpkg "path" "runtime" - "strconv" "strings" "unicode" "unicode/utf8" @@ -28,22 +28,6 @@ import ( "cmd/internal/objabi" ) -// haveLegacyImports records whether we've imported any packages -// without a new export data section. This is useful for experimenting -// with new export data format designs, when you need to support -// existing tests that manually compile files with inconsistent -// compiler flags. -var haveLegacyImports = false - -// newReadImportFunc is an extension hook for experimenting with new -// export data formats. If a new export data payload was written out -// for an imported package by overloading writeNewExportFunc, then -// that payload will be mapped into memory and passed to -// newReadImportFunc. -var newReadImportFunc = func(data string, pkg1 *types.Pkg, env *types2.Context, packages map[string]*types2.Package) (pkg2 *types2.Package, err error) { - panic("unexpected new export data payload") -} - type gcimports struct { ctxt *types2.Context packages map[string]*types2.Package @@ -220,7 +204,7 @@ func readImportFile(path string, target *ir.Package, env *types2.Context, packag } defer f.Close() - r, end, newsize, err := findExportData(f) + r, end, err := findExportData(f) if err != nil { return } @@ -229,41 +213,40 @@ func readImportFile(path string, target *ir.Package, env *types2.Context, packag fmt.Printf("importing %s (%s)\n", path, f.Name()) } - if newsize != 0 { - // We have unified IR data. Map it, and feed to the importers. - end -= newsize - var data string - data, err = base.MapFile(r.File(), end, newsize) - if err != nil { - return + c, err := r.ReadByte() + if err != nil { + return + } + + pos := r.Offset() + + // Map export data section into memory as a single large + // string. This reduces heap fragmentation and allows returning + // individual substrings very efficiently. + var data string + data, err = base.MapFile(r.File(), pos, end-pos) + if err != nil { + return + } + + switch c { + case 'u': + if !buildcfg.Experiment.Unified { + base.Fatalf("unexpected export data format") } - pkg2, err = newReadImportFunc(data, pkg1, env, packages) - } else { - // We only have old data. Oh well, fall back to the legacy importers. - haveLegacyImports = true + // TODO(mdempsky): This seems a bit clunky. + data = strings.TrimSuffix(data, "\n$$\n") - var c byte - switch c, err = r.ReadByte(); { - case err != nil: - return + pr := pkgbits.NewPkgDecoder(pkg1.Path, data) - case c != 'i': - // Indexed format is distinguished by an 'i' byte, - // whereas previous export formats started with 'c', 'd', or 'v'. - err = fmt.Errorf("unexpected package format byte: %v", c) - return - } + // Read package descriptors for both types2 and compiler backend. + readPackage(newPkgReader(pr), pkg1) + pkg2 = importer.ReadPackage(env, packages, pr) - pos := r.Offset() - - // Map string (and data) section into memory as a single large - // string. This reduces heap fragmentation and allows - // returning individual substrings very efficiently. - var data string - data, err = base.MapFile(r.File(), pos, end-pos) - if err != nil { - return + case 'i': + if buildcfg.Experiment.Unified { + base.Fatalf("unexpected export data format") } typecheck.ReadImports(pkg1, data) @@ -274,6 +257,12 @@ func readImportFile(path string, target *ir.Package, env *types2.Context, packag return } } + + default: + // Indexed format is distinguished by an 'i' byte, + // whereas previous export formats started with 'c', 'd', or 'v'. + err = fmt.Errorf("unexpected package format byte: %v", c) + return } err = addFingerprint(path, f, end) @@ -283,7 +272,7 @@ func readImportFile(path string, target *ir.Package, env *types2.Context, packag // findExportData returns a *bio.Reader positioned at the start of the // binary export data section, and a file offset for where to stop // reading. -func findExportData(f *os.File) (r *bio.Reader, end, newsize int64, err error) { +func findExportData(f *os.File) (r *bio.Reader, end int64, err error) { r = bio.NewReader(f) // check object header @@ -326,14 +315,6 @@ func findExportData(f *os.File) (r *bio.Reader, end, newsize int64, err error) { // process header lines for !strings.HasPrefix(line, "$$") { - if strings.HasPrefix(line, "newexportsize ") { - fields := strings.Fields(line) - newsize, err = strconv.ParseInt(fields[1], 10, 64) - if err != nil { - return - } - } - line, err = r.ReadString('\n') if err != nil { return diff --git a/src/cmd/compile/internal/noder/reader.go b/src/cmd/compile/internal/noder/reader.go index 71efac80aa..1350c22467 100644 --- a/src/cmd/compile/internal/noder/reader.go +++ b/src/cmd/compile/internal/noder/reader.go @@ -589,10 +589,6 @@ func (pr *pkgReader) objIdx(idx int, implicits, explicits []*types.Type) ir.Node if pri, ok := objReader[sym]; ok { return pri.pr.objIdx(pri.idx, nil, explicits) } - if haveLegacyImports { - assert(len(explicits) == 0) - return typecheck.Resolve(ir.NewIdent(src.NoXPos, sym)) - } base.Fatalf("unresolved stub: %v", sym) } @@ -1972,12 +1968,6 @@ func InlineCall(call *ir.CallExpr, fn *ir.Func, inlIndex int) *ir.InlinedCallExp pri, ok := bodyReader[fn] if !ok { - // Assume it's an imported function or something that we don't - // have access to in quirks mode. - if haveLegacyImports { - return nil - } - base.FatalfAt(call.Pos(), "missing function body for call to %v", fn) } diff --git a/src/cmd/compile/internal/noder/unified.go b/src/cmd/compile/internal/noder/unified.go index f45c4a7ea8..2c1f2362ad 100644 --- a/src/cmd/compile/internal/noder/unified.go +++ b/src/cmd/compile/internal/noder/unified.go @@ -16,7 +16,6 @@ import ( "sort" "cmd/compile/internal/base" - "cmd/compile/internal/importer" "cmd/compile/internal/inline" "cmd/compile/internal/ir" "cmd/compile/internal/typecheck" @@ -74,17 +73,6 @@ var localPkgReader *pkgReader func unified(noders []*noder) { inline.NewInline = InlineCall - writeNewExportFunc = writeNewExport - - newReadImportFunc = func(data string, pkg1 *types.Pkg, ctxt *types2.Context, packages map[string]*types2.Package) (pkg2 *types2.Package, err error) { - pr := pkgbits.NewPkgDecoder(pkg1.Path, data) - - // Read package descriptors for both types2 and compiler backend. - readPackage(newPkgReader(pr), pkg1) - pkg2 = importer.ReadPackage(ctxt, packages, pr) - return - } - data := writePkgStub(noders) // We already passed base.Flag.Lang to types2 to handle validating @@ -266,7 +254,7 @@ func readPackage(pr *pkgReader, importpkg *types.Pkg) { } } -func writeNewExport(out io.Writer) { +func writeUnifiedExport(out io.Writer) { l := linker{ pw: pkgbits.NewPkgEncoder(base.Debug.SyncFrames), @@ -332,5 +320,5 @@ func writeNewExport(out io.Writer) { w.Flush() } - l.pw.DumpTo(out) + base.Ctxt.Fingerprint = l.pw.DumpTo(out) } diff --git a/src/go/internal/gcimporter/gcimporter_test.go b/src/go/internal/gcimporter/gcimporter_test.go index 89b7fde836..c10915fdf5 100644 --- a/src/go/internal/gcimporter/gcimporter_test.go +++ b/src/go/internal/gcimporter/gcimporter_test.go @@ -125,10 +125,14 @@ func TestImportTestdata(t *testing.T) { } testfiles := map[string][]string{ - "exports.go": {"go/ast", "go/token"}, + "exports.go": {"go/ast", "go/token"}, + "generics.go": nil, } - if !goexperiment.Unified { - testfiles["generics.go"] = nil + if goexperiment.Unified { + // TODO(mdempsky): Fix test below to flatten the transitive + // Package.Imports graph. Unified IR is more precise about + // recreating the package import graph. + testfiles["exports.go"] = []string{"go/ast"} } for testfile, wantImports := range testfiles { @@ -153,11 +157,6 @@ func TestImportTestdata(t *testing.T) { } func TestImportTypeparamTests(t *testing.T) { - // This test doesn't yet work with the unified export format. - if goexperiment.Unified { - t.Skip("unified export data format is currently unsupported") - } - // This package only handles gc export data. if runtime.Compiler != "gc" { t.Skipf("gc-built packages not available (compiler = %s)", runtime.Compiler) @@ -460,6 +459,14 @@ func verifyInterfaceMethodRecvs(t *testing.T, named *types.Named, level int) { return // not an interface } + // The unified IR importer always sets interface method receiver + // parameters to point to the Interface type, rather than the Named. + // See #49906. + var want types.Type = named + if goexperiment.Unified { + want = iface + } + // check explicitly declared methods for i := 0; i < iface.NumExplicitMethods(); i++ { m := iface.ExplicitMethod(i) @@ -468,8 +475,8 @@ func verifyInterfaceMethodRecvs(t *testing.T, named *types.Named, level int) { t.Errorf("%s: missing receiver type", m) continue } - if recv.Type() != named { - t.Errorf("%s: got recv type %s; want %s", m, recv.Type(), named) + if recv.Type() != want { + t.Errorf("%s: got recv type %s; want %s", m, recv.Type(), want) } } diff --git a/src/go/types/eval_test.go b/src/go/types/eval_test.go index b0745c16d9..6f5b548eb2 100644 --- a/src/go/types/eval_test.go +++ b/src/go/types/eval_test.go @@ -12,6 +12,7 @@ import ( "go/importer" "go/parser" "go/token" + "internal/goexperiment" "internal/testenv" "strings" "testing" @@ -208,7 +209,7 @@ func TestCheckExpr(t *testing.T) { // expr is an identifier or selector expression that is passed // to CheckExpr at the position of the comment, and object is // the string form of the object it denotes. - const src = ` + src := ` package p import "fmt" @@ -235,6 +236,13 @@ func f(a int, s string) S { return S{} }` + // The unified IR importer always sets interface method receiver + // parameters to point to the Interface type, rather than the Named. + // See #49906. + if goexperiment.Unified { + src = strings.ReplaceAll(src, "func (fmt.Stringer).", "func (interface).") + } + fset := token.NewFileSet() f, err := parser.ParseFile(fset, "p", src, parser.ParseComments) if err != nil { From 6f1dce0fcb03f22402dac00f66a42b8b0f5bef2b Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Fri, 1 Apr 2022 19:23:52 -0400 Subject: [PATCH 117/125] runtime/race: update PPC64LE syso file to new TSAN runtime (v3) In CL 397494 Linux/PPC64LE syso was not updated due to test failure. It should be fixed by the previous CL and should work now. Change-Id: Ieb0993ded5541397094d3aecae28c5255c822eac Reviewed-on: https://go-review.googlesource.com/c/go/+/397676 Trust: Cherry Mui Run-TryBot: Cherry Mui TryBot-Result: Gopher Robot Reviewed-by: Keith Randall --- src/runtime/race/README | 2 +- src/runtime/race/race_linux_ppc64le.syso | Bin 624648 -> 669736 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/race/README b/src/runtime/race/README index cb82210c6f..7ec2f80d3b 100644 --- a/src/runtime/race/README +++ b/src/runtime/race/README @@ -7,7 +7,7 @@ To update the .syso files use golang.org/x/build/cmd/racebuild. race_darwin_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_freebsd_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_linux_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. -race_linux_ppc64le.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 and Go f62d3202bf9dbb3a00ad2a2c63ff4fa4188c5d3b. +race_linux_ppc64le.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_netbsd_amd64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. race_windows_amd64.syso built with LLVM 89f7ccea6f6488c443655880229c54db1f180153 and Go f62d3202bf9dbb3a00ad2a2c63ff4fa4188c5d3b. race_linux_arm64.syso built with LLVM 41cb504b7c4b18ac15830107431a0c1eec73a6b2 and Go 851ecea4cc99ab276109493477b2c7e30c253ea8. diff --git a/src/runtime/race/race_linux_ppc64le.syso b/src/runtime/race/race_linux_ppc64le.syso index b562656d569c32125d54ec2ca6a2b3b956ebc19a..1939f29ac0aeed9ce225f0d58e34b819b497ee09 100644 GIT binary patch literal 669736 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
Sdj7L=6xR~Oq_g@ zY%7+00Bvjky!Ng8vhwrN{~w0jLtOU0HJ5yO8xRBV(3f}@kx45_1DFqmdK_V;`#U2sFS|mOuT2=Qj{Hq>;U~J zupQ^H$cyB8NakUg123XKQu89@r-s}l0^ZN8L+;E4ZCE3fJF~!iOkUIv-HE*D7(N-V z0QjZlgZy-XYo*q!3iD(U_CDF_I7Ed5Gt)RiRWyze%DE&%zeF{ z=kv_xGm`{yd%t_`ALSfQl9|uv`SE_CxVc%mElCe|hj)Kbd{e}wv-%V9Me(h{7{-LYhx$h7z8cTxG734?ygOU}Zk z@k`xY;flJG^3G%;?_LL=MLSOUso~??Yn^M-Uey}71PA}?%*-F}$!r)Gu24PmYZKO8 z7~o^e%fzITm`%J zdsT;^|FnuvOa3|=yw-g9+IH}`AOIGEO|`Tdd86gx(~=kQJ|vl!<#@(?cxAiO=g0Nt z>-JOf)8FLr(`nZ32u(2!*SOg?L?YHk=$mgdTX3bLXXawvOf7Se%{OJ_*De?yIx1mpgKlM$s zXYeN6t+4v$h@=fgkDA`zmvjhz_-~(uU+N**D__s8`Soq*ZGMd&&g1#Kx)y6BeLL@M z=+D=eUMk4?h$N4C__}uUxn#S>!T2=%@6c5IuhYT*x@`V8sQDkpEz9FCn!Xt~nVR=K z4t ztaQ6s>3c=$UpAy7ZWc{P_Jbg;UErnmC@4M+I{)qZV z3(kbLN%b_k2gYM@^v!6RzA=)Xcgxy6Iv8C=(pl-*xU8Q|43#e~0_@%x%L5XV^+gHL(FhyJTV%FKk{ zyZVdKuefGK%$rt5(I0tC_SyZ6D*}Hq{LU|CV+?UIUTgUGqAxS{?C60)S&+)pd)=@F z0jph3U4?W*Ki_P8-fig;IE%d4ouY5REICuu1mfb2TJIH)L=4{n^f@E%5x^7lC-5D| zSO)sk^QVxuQ6_Vsvq-eyohMpDmpox!V;qb4L`&Gbx+&TZ+0K5xfHUHL8~xlzFZgG3 z$rk9wzPioxz6xLGld%?jCSmNTr&a4-Kf$~q^Yu+RIYZnh_sG5K^T7Fy03T?>$UbWq zvv2(_>s+XFG>Fc{Uc}D~?1ldHYYf!KU)vOAPMdf2^T?0b2w(Kxi8Nw8v?=xbA<1VN zLz-TQOTGYaqa`)B3Rjq`av!&;EI>_@ZTKYP-%x#R2S(Z5F0@Lx{xyj~y93Tw09 zFUI{F#GeIu@8sjxuk-LruUGGjW0dBNfw>$uk)r?bf-c^PZeST$YuxX%^4A#$QZ_^i zHpHgLHQV1npZ<-0@256N+v(@v3wjUX%kPR9IFoANaLcDMZQk*__)M}geLu$-;n`5{ zz2aCGeDD?F`b)O2F|XeaTx71i+CSgbYv8+l&$hR$bz?&PyyjoC#kM$o9ITh%`_A=i zpPaV!^m-@Ta~O4+d``jueVDi5jOx%+Kfryvx1Vb(EA2A9O_kB+kKHMG74w_=K9OnT zK9;68%6;qF0iG}68T{B?egk%=UI%`ccdiU7--ud+++$-%@9$#gug3hOE3UyizA;h` zo=yMA-+a;+eK(`{HrGbD5=IwV&!G#fhkB`d`zDj?A}rwB4wRL4nk&SrI@+4v#wOgw zaF>J$^4la%lrO-&7RVE0K7ez6tgp@xcj7Ju@SiE*a&*!oKaIj2#6o;EYV38P~>hTOlgzT(~Qdx!ps>GgFEO^;NMS17R^#tj>|^cov^w&8As% zF5=8#;CT^-KJg9n3bEZJejY=9r@7#q1DEys;u4=P{QVGWPq$-zA>1i>E~3U(^&?!9 zP1F1Rk685Xgp-1Wn$Hk-)l!BLmKwkCcM^d$+b4?`)H^nQaUPy!7&SZ80~k{!y*v$A zBA$tOCF2+Ss+s{4pF>B)@5sOT19<<-Sv!p~n>u}O->@A*S(tK7T#q3Z1pMw; znrDd`qqN~}7$Xfkcyma>PwB5p{_OWZFrDm?`^bei*G_n_)*08in2-QvuMi5|T0At5iQA~h*K?9`tmD*s%$zZB$Ckq}_U^CwPdc}x5ADeYf+#j4kxW_(?*djt43h)?2=jyWm6RwF)h;?n@=algN6 zGEU(+>wSk^?PrXJwY&fJIlFcj@d)*-dS2VF!93Vp=sv76JS)e>xXdMTj>pft@fq!{ zPW7F_ogzGy$6tu!^gZiy*FP_;mni%rtq5_By(}kQ#2Dn)?2EvD5I)%p!Ur2*Rdm;l z^CG)$Y=|^^MDecAmqvDdejaG60{uNjqk;3|*%8;ZE+E|0ojTIZSesst6aUEX@txFH zF#p6(r(BUVol76&J&LZCzR0!e9uCW}R;L}r^#CRplo!Z5N^_0Vtqo&OJT+-eJZp8{ zTA!l4BkcbFy1t7)U!3WU^*C3Yv2fvx|NG8Ytx?HHU*Tl=<||a+Iq^sHYTBs0b4v4Z z)o)MvI?2a157)e#f9Lb=lEPTpDKm-34teCzqo+Q9g_o22BWjt)9EA&y*$BL{@f|W| z32}v}cE{9o#r4?ZYaC&|pr!%xdwX3@ zeqh@ts{bi`{=h5ySzmzifVlsivHB?2Gfl37+G_zfo4X$3GS@*LAlJsdb~x6<+gA3aq<@ITc5Y0IlXS?lny}0;F#;6_q9SFg??EBdu<{JeJ}() zP(RDuxpLwkdf~!Gleu!#3Atxyz8uaZ+e4f8w6TYFIr6a~3#aX&U4>j(tg!~~q8F5o zqY^&#UCd$ez^Cehez+Vs;LL+)F8M&7gLnLqm|N6hZ3kqYJm*rilfTc}dDXBhfv3oq zK^-V)?>l1^`0k8feZC>ddX7!_ob?*=o(D&+JfCriQ`k4(eg|r^Wv;n!zF8xa9;3NzBuxh zic=_D^I-Pu`A>oWSD&_Y9%ai=zbEcFX`uvn=aKiIufqiKT-sFNLl=kV#669F_WWA* zkl*Ioe489FU7zAyy!VQIV$mmJtOU7Ah(qk~$$Pr?%laKdypSd@;Ci%<=->g_`I)OT z$C01GG58+epXOZ!!zt`Pol~q~<&%7~B1OAtowS$QBPC)Z_$O;(kUtCF@5B`^aGJ8f z4_bo#iF4h9p9iW~UujC5X$VC)f|8~2EHkFZvWaLR=d;&n1-^+=6gC+;~*Vob(1tQwOSVrx)G;Q|a3 z*pCpqM5V;5c>lS6pYw8l&W$-SmYRR^+zLM~{9Gf>QOOg+%7PpC{{a3^ zwzKpa!tk{Xfo~Ef@52`_WPh_>+?k#Mm?MxIj=TI&|G``&Z&N0w>OXi7!`51@|K#>K zIf8e2Pn_!eqUU36x(A=@zj;@jg5hrP(wP4Q=vjY<`E%~_Q~Y828VvpY z9B{GamWG`kBfplzT9d-}LQt$jKDD40=_<$~^5R3tccE`>5O~YF?vua++9z@G;&>-& zw7MZXdLTQXJ2xcYPw0bOf!Y9^3f1&Oo*a^R9(9c-J;|@;E=^f8}|@@gI&#anG++x^XYMmZt&ew`@5K1a zu|M>k!n|+Rh=J{~ZYlQ?*oTtO&Fju&b3IUF44yT!jWopXUE*v0%3x(Q>AZ&2Y6l&c55aIn=dVcID zO@F%f&1*W>wPmr#lvkukv zAde)0nqenCQ7$oe8=vEjke9N0Y$yKaTJ#*`QP`7|>(kgAAC!0(5Mb2Nke=+Jma4$G$82XNWKIeDx zqc|FGdfk8rr#^6=xcZkDX6K z$4}!Poerp;9ZQR;tK;VTLxe}srOFSl@+aOooX5Q zb*>I!t$hl8nCn*dD}B3)*SEswLV9!B>`wn$HE@^f^x#fz;_&44Oh2FY|A5A8wEqWq zo4t!j`Iy_FJ1ATF9>9~nI(-g4_MS%1U9Kl&$vgcW@@z($VRy*-N6^e6(6Ii_hx7IW zU+)&{9}Y3Lgj(kocn%lm zi?Yr}#tO84VB<6SZy2@@;ZHl5c(4a&fd2WcVTInO?PB!uf&Pbj56D|zU>#(PQCJb? zJ;wrmgFA$~b?E*Av?!2`Gmek(qU)ix)ej1A1Cerp7#%k}C<{#1#Wo9ev$v1D1P z2v>@u5hM9TtPh{#-mSXs%TuuX`(lI0-$Xx&+Dzt6*tWN)`Y*pT)pz-wc;~!H+wA1r zmy>ulT{(I**1Ya6obN_|bM7lt-rkaDuDVY1& zF~+b4=KlT>RdW{2@+ZI`8~@yD(auk=Ql%^z?O#IxwmR3bolR_cmwk1g{s@|`QHlk zIdG#7>e>n1L(mHwZY6N-U={Bks606*YBcx7R^pwq`c#`s1Otq(>Gd-=!TX!{BZcrm zR{r`nz~;6(#@@u9l%-2-BsN9N6 z;vB$>2Kx$lh`T#$&)Gg_Cw{zF`-} zgj~;+vHFY%gXz9g`ii{=y?(C!yOa4USdd-s%v!_z_j%6x-fY6)fk|UDVhnpe`TVt) zNS%w%KRCtn@hUr}{x0Mt^WroNc*jz|T!%d-ZO3b@{ILGK@pw+2!rS2crY{u!JhxFJ zTtHzX;m2K!0oXA9hzQ|a$SV}T_*?WJq<&P)K7^3TqnVk3t)oTZMA0STYy4l0Y#mLS zzqra1^)B~Bed3bvx32zuL>T|H*eBjJm*IIK?jQ4rSz{Ov^H#t=h2IOC0@rXn@HFBv z)-_UV!LwdGDP?~>_TUyj_3yj%O_T4lM}|?|2YMJz&!!I$ghw<1Cq*EHahP{P7&_$u>8lU9 zuK78MA({WG#^!o_Y8^^xAX=*ZQ=Q zMT1htE&RztS=EP9Mwlr}+ZSSWD32Z~5N^@g3JqK8yJsJXYbh zlQyr&!)pmD=Gn z87cU%K1{EtA9Z2of^SJZpquqv&;_Wk@$6B9v||JCfc;3zAYa&z^udDN@WHVi4RGouQq)>eP z;bqx(;LmkmlZs=H)am%lrpqeB-qkllW`cLQuNf9YN1p?KN<)(89j-cSE3;;sA!#KZToZSe{ZUkqB{%Reve+bS-(s2TK4Ls@q zZVdz1hJjmBk79kAFPp2Y&+D4h5s|rtX8>M@yO&rGqSnT>c*He`X$(JH4q4ce0POZp zhFw2siG837g}0+Xl%Y>v&3)dRu2V>=Bi^7%F zzl|&nT!K4amjQ0&(IE-9?U?sl5^h4Qfu49xszvg8(BmT;vwk$z$T{gkl=b5b24u zMH(SJX<8x;k!DConqKr=n2&tHs_RnlaPl{cKXd`lz(<=>lGlN+WqBQJ0_w5kb5BcI zF^ssyinIrMouVIQZ~J7gwaNAqK1U4j37P9j8(%d5wtmDh z6i+N55bW`s``0!r<3rp#_bqGm7avjaINnia*-hNPUORm(>k!XCyn96ULZnUs8&djq z3Nvj*fKM6jhM}IJ-{F3_e!%jAwe)-raLV2fKw8pv$rNx>dz_*7*cfu|kLPyrx`=|e ze%~oS4xy&lT>L}Csa>+CkGY@+J!M~)^077Z;uzyElqF{7>=@-s4{DSXR&6rnN}{|f4BnlWefnEBlAW$!l3yET2h z>E^_YRa=~AK=?cPEZ59A62dji^)3P$UTKmKYRmh zR(WQUw_5zeQGYZ?{2v`0mv%Mp1M!IfY?EEdKJZu3Nvj>EALKN+U)jXa;vR5t&^&6~x&?eK9wwDsrrZgE+1z$fn7 zvQAt*m+!d5>gDE5Ux=FU)qK_^zkd#5+@Qf7KZsg$1ibL?pP-lf)+oU zT8fwy$C!;fZi!d8&qd}Rmxy0~8+erJg$>ExH3`w%5J#^C4Ub~?3rX0!fjQz-oNL*1 z*^_38`%S-hc_#9H=5x@Wg4oY0=udMkx`*zxY7n~9Z9B}Hu8XpsZ6LEBy3-4m4&V!v zh}vDCm(*d(Z}=0RWseB-8r&@H*wFGJ{7o83fIf&nPWq63!NLLH3GYa<&B21-qa~RnvBeSU)zV7%)+aSC|MPXzd~Qth zdHFP-<80*l=a0|x;~8U}4u1fSDQoLDX3tCWWWA@%cSCj3f06mS4Vg>=^-zBoK00H+ zDPWUbD*o=v8GN1qkMIlJ6yU!_08_cAY@ za3Bn*Bb+T=6kdY0ss0^9eiONY{&no%G2p*(^c7RtB~E>I$j`HEw(J#-smF8poB&6K zA8K9XNpZh(eR?f$z{4)F$LI6xxv>&_Y^vvHtLGhOX7e+RcRoi>0e;W=-}U)B)~Uw9 z0@NDp^XED=jp=a(a${BQ_Y+l}68=Ad9(a0$b*JP*Di6r!zZ!?MPiBdv1LOh}J_bKp zMV-zaS9dez_UBTzhfOnj?fLvE*QVR=pVpT(1wZ1x{;T>r;RC(Xin%8o`PYv(_)hK* zk#72-hqGpm_(ENNwRp6_ME+>&C*QB(-1mT2bDz9-MdPUc>9gWzxJ#}MbvKFI>ssH2&iMB5MC;qL;J+;&8=PA&V>R?` zCg;}g@`=l_4g<2-^i$qX7h{@@aTB7g!6#ma?)3xqQDnSsJOtag1pTIiu$MCpL-p0L zpIblKyBxKB~+s zcJD7v$C{B-Lb*o1rs32qj*JIo&fxk0pA&`mS5lXu9~b?9@SJ@QttfnK@jCRC4B{Q1 zIR6mmqR+^MTrFep2eHlg9s3x@y5W!617FNp_+sXdU|%ETPlQv6u`#^6u ziRT;QZ{MCeIrmJ`eEWlB>)Ufv>^CPw5zaH2J~?;&Sm)bysiC>+Q{L66pPk#_IA6PW z0q}Ad`1m1t_X_?BPV2*j+vfA%%EBs$`u$%*@7L!rYQ-D$-)k)XsQ)(Q_c&R~n!m(P z>-@ETK-sSI6k8EDIf2}8(pTmTdW5=+Y>YdTX+zE3t!>oXR)Btv6}16hPL1Gm)Y!G5 zw(fkx9@N*p<~kb_Zp6bnPS-g7kwW(M-dD8;b;jKt6|k$|PeqT0pzNQ3yi@c9-Xv`j z_R|_d8j%Q~ZZF&8wi&X5xS(qE7NT$Abz#5pN~ACCkX;TtshhdxkYCivbx$PbpX>df zn(^e~2yC5B(1-UIs^628h0~0;Q25b5GjK}}>}&EM`anXc2Ro4?`x;XCJ8AxG5&Ax~ z#4t8+xI@Z5y@p!32HhX#O+Wj~IQR9<&x9hy0>TGFw*xBDJLj9oJ?(cPXp8VElO_(#^j=UdZ2Uc42KzKZh z&v|wU)VcHQ;$m3(pK{NzR>q0q9e3vS@vcqrEcc*}zq{j=q~UuaRtP^%Psgk-7w#kM z?zlhAoW&A+Mi~qG3k-t8w~3x)onr>Mi)zinx1~wDnIQ|B-QY+WoZm zZU7$^Vh+9w`S%D<-Jy<_K##O38bc?U(_VfcMxVxDM=<3R2a-3BmyWU*nMXW{z5G7i z^RF`__->5jy2Qc7uVQQu@;ebjP4c-Ck@9=QK0JG0+9M83;PVMQi~8p$CJuEBCVk@0 zF^)~!+avw}9kDWSs3Vyk>?oIG>UG|Ybq>fp)xA~e%tDTv3?Zh$JftNub`BpH&XH$F zy+gxH<)u(B-0wdn&wHcad6s-0c?ePmbbd}6r7m`xg%8yGW;0*fLCg9Xzr>{j@WUB_ zlh|7^a%MHWN3rfC&cUcY5L0)^-3HugsvGK4%l`^IS&4P#<4KE!CxueJhy0z`7x7i&RyjWB zxvk6Nm)&^A4Y(Hzo)7OVd17&K!J~lj6IF!K0KWI2uT~m(4*g+iA>J>>{qg*+1V8x> zKhtNTaZ=wKbAKM(^Pi)P)46XC<~@tC(7S&A2zd>0qrYP~Nm`)pnE-D2Mc?AVj3>an zeN%t)BpoY?DbiPX;8pcig-N$PVbu`tG=cuz* z=bg;7Cr@RLpcaRDV5CLcCLrE&ZGCcGxT6MZN@nWEM)6;WpTf?qA9D#0_{jP6ko@d4 z=>OORzMF{ip7)MfW4ynq7i-YAiU6+vBC`r{I^1`Qx)1uv6QF(JiR0cx^Z@aNY6(N$ z-ACNl_{_Sp?WloaeMRQGMgwGCjX)_Ol3}=3s^Yge@Pf`g5#PohN<* zkK=wQP|zLY;M;aSPA@*wJW#`dbfj@s_gecN-gEl-23+cFHc2|TqgK;^^BFy!{!ahR zJ^*F^nYo^Q9`t9VE%Z|XZ^J+8s~-7VXexgeWm@q^vLkJKUE9~R9h9D+?hulG7Wj_z zdPr9SwucA!0-ulH2iuUeg|i=HT^Qf(xurCspGRIuDk#o8LVF`9X~yQCu(6>jdXPZSP?Hq?=yoxiQ&i)SJy{X>mxxhOTnuM#g$!&PhW+qGs55n|m z==bQg+r^kD>>v2);Fp!PGR2ypEw~@vv0{Q|KLuO=1n#{;&velD)>?lF?}JF- ztdQ^Q$cMM@nvO)_^rO-*j5EB5nqd3YX^kOuF*(awFAF|u0A?V?Z7BwRmBRosmpirJ|M*Am~)4*#`+L@J9?w9A%R%e z5a!Zry78^RM!=!|SW%!2dI9ioZ`E5z178ImqFyr&zYTpi1IytXS#BbS2=r3(@{N3F zHDX;Mc@G!HgkPvy(k=7IRm_3>YxfH16Dic74O7SWSw1cwXn^-nfEFGy@O#gbF5vZx z-);_GmCfVe^X3Crwwv1u+gtfOd@DUab!B;;^zB2I>V3ec0{h@h^5cVVMpPZu6U`aZtHd0e53V(e1mX99`(2orQ?Lx$*j)W2>MXEKXsq{nk~}L zW>M+5o9wIYhW}{@w_en3-PLY1KOO6auY>jEL0Px;cBDMZn-qT{?mO#sfUBuF()Ll` z>%9O5=|YEY!1Y|P7VCk9fXP(#R+cTpJG!iACf92T#Umhvo&15cPC6&AC#{ozF;}A; zG@a$0GFJolu|T$wpU7Mj@KN#wh5tjyqj04^27cNNzZc|E4S57jMsQ1UWg08w2Q&$(F2XwVORVaQF zFBd-s9-=>n%$-#4dz-dL*ek6+^s->TTazLReq zt@!fGH&$%;cu>>s3$eGX8f^IKRtT#Gy9IfHjar=Z`jgZ#RBiSQd)=k*mWR_VoewsAN4O?$TLN zVDY2bqRp?*jr8up-ub=|U+myIFJ>)fhW0vXN6`<@!FgXDYsF8&MqsTt?i|OnvVRKn zt2aw^tvLCmt_yt^yy&CWiaT|b533bt9-`(kx^6q4&lHO1;>F^ToW2;`7jxcictz5x zMosgpAspoZ{_pqyNp<2g0Z9iuH9zo(E4!4gpnC6Y06jAnP2Ke^(3;1}Hy;2j=?|jp z?}Qv{0nL(su%?i*pEi;5>8=>-2VZc~c&k+(RgUpkKS(+b0Vh<=-vJ+WdS@TZ5S|A- z<&SJO%9{Hwo)^?q|^IpWY0-AU}4@qxjAx z7{y`FQh!)u$)0@t=6Ce1`Y@Ic{gUy$)jv`M`5DL8pV@oS=O4m5GJdA!<+RiAJMub3 zBkjNqh38yL2XF@ZZ4GlvcosH}UQtJXtgIQHIEQ{$lXKn?pU0UWsG<&A4%pMyM63ol zqu#|Cf!7n??u1Qa=cdqK`%B=Ki7{#C>NzQw+3U^+U7;GjafA9Td=QY$Z#P3ux8jUL zIB$;ClM&ILs?uoBXYjuP|38QSx8VQhOS5^Z0=Z?g#qAx{w8t?feV85*jjw~BWD|1l zTJf_*oaqs$|3&>~cM$%x5bBuV!^_GttRFQXiWehyO!hG%obqTh#PinAN;?D3@Z13R zDSTDx{J4MT-nmEaPs2d(ov`5E36G22y8$^%c!G!31u-V~jCkD!?DrAw+b5dB$}h%V zTYFJkxE?-_QY5$A`5i%=Z#DMJGba8ruS2i58f$5W9^}W^J=eJ+gpm)=5;o-+OYfay zPKK4nUx_DyK50uf0)}_gk{0P36a1GW!}-0#EXk-ZK_2>K1vwnNzJakoAJL!Y_8+Qymgd|-;R`s55UV$m+CvE8PihyQ>_UJ3|Ss=B9pt$ zlX-vhPU=C(5d&+bY~XrvzcS)dFG?Telxr{G+H>ItACmMlvNoj0QRC4MU*jRm_kend z9rQhLUzEY13BS|lsCn)R>^Y9SW|P7(h*NzR`8Af$nmz}{qL3D~kufXg z*5L223fDmWrGoi2apXDO3ms{whR>bb_Ny)UeK{76zuOS&>TUBww!)_l*{kX6OYjA< zj&TUF|JC*Jj)#_ac6<--EJNSx^6*PTp74W(I`;&;7X5%;8@eRy_YX$;5(9QV=pGT( z`6sn_o;m^JVci`EhWFu)H@_$af9<1RV?}?*s+0l$pPfgL1l|>m_54R^1mBHyyZ`uY zfjG!Y&q~}ay~?^Z_W4$!`4IS5+o|s&#Trgd1(P9;`9ZkpjNGfcR;qrW1dAMQI2AM%?s_weDem zeW7QqM_92_tUc4vS=HZ>N=Ig(UIe|PZ;-K6dmJM>&SMzo1#6t2TH~nv2*N;(b3EeuOf^3z#6jzNbW#P8=z$ zSnEZ+4F5ao@q4DBt19%tZsbv1jddKT+6j1g#S7cOm&W7nKTc5hsxN&07GXTPxNipe z!Mqgw#a%w}WLu~Erj!@*n)xg)arLh54o^xL2ce^phHvV4Dt@pHKX({dj}N#>-nQ@3 zitr8YKgL;qQzrI2(_9jaE)mZ>1Kp>4^Sma=waS1IJO~@T7xA_j`bpG6JqUQe^~qJpzaB#Vb;?X+eZQKYhyeH2DL-faS}^=R z?1lv!)%&;Mero6YH^`m>d{@1%^0S(7N2cOEofBJeuJ-q*W*l668)Pf-&-=ZZQNQ04 zosJJ77Z3L@UUlz-nN)6f@Vk@0egRhg&Y(6Q%Lto#!!B~!->50ce+0@ zwnW^UrAy6A$cM;FG#?>v(R_sbMe`E!muDw>SIm)g&=?{fbs}#=!;f(9bgXwO`*Z}b zpAKHU527;*qsGwI(O|gM@wa!l1^Q(y-77!Cei5T)uVD=j=<7K;pM6)mI*+N=^T`XG z-&D`%-zCU3Z+{QQ0Nhfef7bf)Jw>YQ8p&Xrs2AMA=s z=#ow0MBaUy`u-5qkLSQ%-nX5T-)!GEyA02A9_C7|%=&uOezN<;yed}Fkn-Uf`k_kH zv&t69^S=~|1s&8+a9%fP-!E-z>g}|P^f_q1MFwY19gjXO<_QaT6Z;8C*{oo%)`Psk zF0YscgRdz-9^h?ifKD;=c;dYZ6&uKq#ZD$>8gT0yW2U2^*g4CKCL;8K% zEVMoPGJDYfq&>ntYnz4k3T+kIE}E`rOOxg}=LXE#?Pe^ZV(D#{P)~duHp=rOv{zc) z=*{dJs+V>OXp?pdbp;_FMGe5MUp=?&y)FE%AN03}b*mk-_PQWjh##WX<1*wx!5wbxjJn(2LWs`8nT- zLXJHX`s*sp_a^kc0e`ccFNk+$jrDwHW(4D)x8I?dw`jNF$NL8El`MlUD$pM;H=p>; z$PjWieRu}XjXBpsIMFU6j0l%^p`V_Vw$DLXYsq|V{5{6Ldm1;490iKm0XV=Pw@iPY&pM$5fE+nwA-_pXV7h=)n;x~Ts zOyCgW^tX}c>%;z z_ArCr0cW@fdsR9g@M;`3H}GKq|M&Z!E{Nl&Q}1gG1>Ik&fx0Pkqrl&?J|5%b-dHEr zs_#W0zR`ZyI0b&%L4JM%)+8MI>M}9Et6ZFo!)FbelzreZC+>5=nHE@b*jbatag6i< z_>0iTSoTh6%g(_y#AU98qN#WX?)Y@@^thWfWw(O{k=75o4`MCEbpv$~%){OzX4Uz{ zaf`1!nU=K_i)O+H(wXe*Nb()%uc@?O8~~2c&+yYUzQfPMRm`VkjZ}$v-#-9a9F#OX z2;UuS3o!?Ir>F4FAMh;eC_vASbv+AzOu~{Cv>PD<+XB`-Mte&F`@l<*c3ZTCN>7p<27r?}C^^>vT)fn#WR~ zE{C5k815Sce+^pv^|_nG|?=XK1^;=F`L#?0t)$wHBeZ^R^fjF~S z^FI1N{8rwp;M>b%sEi-2#0Wmyq=6+vFf zm=EL9$P?t*zUa`w8KbTRZ#FO=bmF+q;lOh_xz-u6Kjahp<=wZKKd9Ew7~*^R&vM;4 zXI;Q0D|kECtMP1!TiG(qA#_<|`>b&tV}*FW7x>&H~7KgLr6Yf6Z3+_EM09(C2_)~x zCQZ4`^`O2VbUjFW3bL_5#-0c-#~S7NIOkUHm4Ywv9rZr_wtRsmtoUIrl|)TQHXAGu8U_{syf5F|Tc^J@!x9V=DVSy zM@=!~h)MZCSUe3F{N#a*NjcUc&$cqP>9XhB_ANc#cJA?Sv^9gS%$hf0>(2@dwN-@O zofTpBK{iKFzw^h6=wEfNYFjQAt)-lR{nb+}E+1oF4(6ZIH%I=+{e^P)&=&!BC9k|# z1HO~FIGg2JHiq~&ZB^oM$a%hb{wC6+#NQdaP3}#eFYr_IIKRSO-3;OhxQI(s+nl%wgupf-WcE()-9kgpHZb&r(M7B0`UOE zHj_&nHKx{hlkhFyKdb$)#65HI6Eatq@Bv(L_Cw%X3H(?2B;*@Y<(DBYnX{K>>1R4n zbrO4IKBNKJn0X=Iz&gfErgtOtTKXzx0xrjjdg0gXwR}yz8@(c0b9T|H@F?sU+JcPl z&@Sv7h0n6NT-j=G+y10OcnIeX8XAE@PB51Gud(7A2L(D(BgSP1oh5eR*1QTW>A znf-2aw=*H2ZeO59kNe_{e?Bn86$0kTC)U@`^o}PvK+lMm?{l5%Z77WX~gfj#?o4 z3rQcj`If|Mna=?lVmx4`)VJ4X`|9NOpZW0E82ig|Jjy~3{E6%}!#*=}#JnA4;!8XJ zJNwPt&Hez$ZFv?yRV|dVw?fvrOs4}l&MSnY!haP%ch=K?Sic#(2N=Zty5CYZK4rzj zp2~}dk)G}bJ%R5|cz*-`jA8j_rj5s`enV;Cyt5vXFgJg;5IwFsk!v}BMEihh^XAjO zn!zl6(O0twH2=B0{z7*Ajd4#oKE@u(%m2uar~j$&X8heNX;z(?p=dCB9vYt9;~K1m z>*8G{^!2P%Yg6=Egp-iElTB}w9hA4cUzRf0Y4=g~PNJi1@9uNtTkz*krXweh)iRbm zmb#9U&vG@nxvRPQK)$@2k~d)8IlKXM`;mDA_cVdrR=F4O2iPi8^9J}mByWgL;tjWD zeU!um_PTnumM0S+E5E0?)|4?-p?S*3bt@NA@v zoQ7tIGddR#^;rgagGt`t$m4bXe(`)_GJlZ$Djof(S|;gBia#`4@>Kgb_enf&3{Bz( z+Fv^jY!_Pn$4Jk){GiU_2j9ry2f=Ch0pUv+sy=F#?=~kMZ_C@wk{@7v$lJF*gdg{F{7R^H~#pEb{4{d@!E}YQN<=(0{A@ z40u|*vDB!QT*cl_(9LHT#YQ9c;Q+#?u!81s%`{1L1XYl)^=kHYuUnfB}$K2g@DZI0F~ zziv-s|0AeLeMI|Nv^_kPf5rRGE6AaCAzt4h=jzGAUctW@K2!6h8Ckz!G473U?qj9% zJZ4fX*z$(wL73B5Mwr9*+}(-0c)KwMYkfBVwO!+bJ5>zaF*ea7q9X=j4qx!5%j#9V z&tI#0AKnkjdY@|eK5+*b#;!yx~w5QJ?ytcb`tjQp#Eokd9+j9 zK7siWOI^YF0S|RIFV>pwL9HUz?k~g{yq~f2<+Pnj_-fdC-)Vtgx5Lk|^f-Kv<9yh= z#CPP_<LsX^n<{^LCg{@n>?rc4Nn6>NA#zMKozZVuEps91%Tcwyq%RxCcaM-? z6eADO2Y=_y?)clS;{Bv44v+Md#-oUnpr6Y&)QfM6HYYy^I<)bjQ{uz?iMXhhbzcU~ zym@dD=x{k|{}04Ean~a5^Z_oo6dwFS)qhnp{}DKl78k1j`Y~wFjL={29Y%idJN{^^ zn1l15kMnoo+*XWWjhuUobjR~dXKb4p{ii@*4Tu%SK$CSleA0JYH`a>JkdJvM@@Jy$ zzpg+Gv2K@!1>^Pf&6WTUB6!Xx>UV6xd*#Td_2Ty)5sTZ;&d2BN>2jQuV0?;HI9OoQEP`j=~rgyy%qgi zo%DVp&tKpjeiA^KpM{zAy~0lq@YLc5#LsoW&yWK@5jQ}eT;}vAlOEg;Eszhp46r(y>y8E?+JGyJ;SBj9 zi^fC1fgZ@D%$cEvZpbd-8o)CX!b|1v^IAe?f9RvPU?osavys3kB^PGZ55kL3< z&%|p=#0zouMdh3a%tZyY@wYJ#}uq!oM{<1B|(Eeh+!)4xZ6#U(~rIevWtEg`qMSe0uP6Qha<#Y;3;~fbc_HO zM}U{m>s3CAjmrxD8eWQTPxhy`A};N`-@(eU3F-60Pwq(W$#*_r*m=({+P?GK@T?pY z<2{HPP>s8DAlEv@*MV;~{q*58S^p|OSMji&_)PDU>j`2Ej)z7~(nk&j@p`~S@uS)N zMd@e7;&`i1Y`sDIx@e=2H^IO4fDk{D`NupX>h8X5&XsNwq3VwDgavJ_1V^_c%^wzu&ch2quU2cK=w)JAo7ghYK4L$DPSUwYZ$ILP4 zwqjS=d=17`biT%zFI!`_4$l?2j@>(795+iqC*|n#Smdg_XEyQU`eVqQe7$=PKD)tv zdxzwIpj+w=0=+oN6RO2?;D<*g?Q1_F^{IS6VMgYFeDQ)gAWvcbYj+M<4%x5w@-NH#Ycx%gt~E^)*ECJzoF~z>#v7ea(hRzF=98E|D~}-|Ae(Qo zS?Y1hU&DM7$UNvLj(n17&PCTJAO>i#N3mY32fBu=Pk5;aIZH1N^Q=o8`6PGac}1f> zJD-Gisp@=^F`GtVw?JNDJdCC8jL|ya&S0J>TnJn_p=8tNnu+ z@!MAVMUPx|Y)!w_H_E*Jn&{!8Gi%tNdBEyZUtgHH#kM2E(vD2vPH`z;;RC^%(tWJu zu1TX8|7Eha+q~)4=v9#E=ERvu5;sj@BAbDaDN;1 ziRZ`5;UlSr&y9QH{>+yOp>xVo%(Md{?LLj(++h ztVxCb(+wYQ3UeiEai@j!M>=4;9rkIp`0X(LD9!zY?VIPl-fo;c5G#glKp!91NL`p` z_^$i;tljZ!(et?b_~OsdfZrt~R*d__8qD>#;TGH*+1wq(d^fclJ@9WxpC|9?p0E4| z-@Xu>r|Wn04B&iEG%hcPZ}UEcAy89L#zvHm=IN3C_zeCFk> zoQE$uNqt}AXi)Moo8C@X^a@%T27L^J#y+&xm9)(`BlTYI!IlWurPt)kTTi*znKU2% zY<4~6pbO`Ee9B*-_|2tc2HHPbwgmdO%rVz-5%#ww9q-BU0qw1#--q>pA!{#Oo8~{T z31QE^FhU!$1^rA7;80NevmN-;ZTYjC9sX>IOOF0kN9EZnf3~C{tA|yucWraWR(68_k9 zKK-hA!hG<#GR8J0*k@Vx4;w6pZ?0DM4?CBIziT1{KI=S#srlG+^u@C!lZ#8vw1NJ~5~_8a0l^cn!K^mfPjaZabdSM@=*>ATuVPaa@FmY(jY z6XNeuQU+fA|3oM^&70OmyKxT;d<-(rQ;452e_&z-?s?fGuB(fqrs3?OrtlK<5=@A% z)Wya1^6xqL+a*@ku|IsFfnH!W??lS#o5CjU*{N)PB64=olV%#d_Rt?S;9dO$K0AgO z&wa^e-){5{-3~osAMS8m894eEwEu8-p6e`ntb9Gv?b*Fzwm6+I(*G3O?s-)Dn(0p} zL>?sLAB2xf{2spYVRPx~YokW`{+O4v=X)}i#QlF}&F>-iMPpg%esgL0X^_D`Rh_`+ z#LWS$U5Mk|obM#&HL4HB`o-eZ370E9I_pt`_e1u$)P1ept`)G++t5G5Xb8DF#yef} zCwO-x`$;BT9pEQ%_z~M+e<%1;-sjqnJdb{{yXKInuQ9LnMz!C=TcqtMNA71i{DVUd zpV3*{KX~#I_R&Dj%-+s+`p@D8ysNJsbaS9;Gk$M%y*OU&dU4F}Iy+{#T;oC4{PA_J z4dX+oxfm3uhfl%}kj~s3;2mHm@H@w#Zcq$8;UxSChgchfyJtLZ*O+-d{DQa($AkNH zG|u94;kc<&Xn z0C!XD!~H@t@bfVAl`Br4G9T|fVH(Na*lp-Nk`cX&ck+(NwsF89gt3md4nhaqUv%7j z3O-u&9SInN-;MRb=g4(%{z0tYBYriE^MK#;2eI2`azDSiX3b2}hbzTcpVE^buhnOy zd$;McBA;OGJ^ix|LcGYwS0(CgMOvl z20hE(tcaD!JZkb2!b!i2vmY_cA0ck^DE8oo54B6yrSOgq_SI!i-OAuy4qbM^68ho! zY`J?ys#uhOehz|eSK-;~!r6DK2hoFf5d3W24&qt4dp@4KGo8S>4T`hym8m>5(u`h< z$7SC=1URLD%PGKTIOv)`47dyfF2jJwa1V4>o)6E8^ev3;#f6{&o*~cd2J{f;xtUuh zVw*){!#hfrVb8dKs7?q^D*4w<;e)G#QQm99SeCCa ze&d5Pgm|@32%q(Twv=m1ev%dlZ@qS|4QG?&IpC~Da8|Nz2xm2dvl`*KkiTE(T!8Z- z^`G|H=W8q-2%j~Ez6|{91MCv$3*9?otHIoa&FJw--5Q^#Tk`ZP?Q0a`Qoy|;<^FPE zcqwulh9KMQ?-cJ>xVRDe*W`!|I*3P)= zf6pEb?6Ed)k8`j`2$o>}{@~}Het*>mz*}}3_Sq|Z(>*#es5i)1yy5|iN9eulXM{22 z7lz^|59U2Xmdr@S}T39 z&96kf2j7W2TZB7*c%Ki>Bt8Du)>mzqirXj+z4A?+gV4v4(w%Wvl@_Pu>|`Zq@KiBNMd`v$p^~Oh?}> z%3SlAqwVZ*M1G-VZg+aC6>He;-;Q_eSc6r!Gi2DYhO>6v&LKQ2$HaJs>@k_}KZ|}S z9`X0d64#4q_m?-C`V5L)8`1)wyMJqchG(D;ei!ug`Bbs1Bk994lwaeQ99t8LtP11q z))t?+f6ZobEaGk2A7Oustv|Q#nBsYLj#0+_aB+ML_bRy{cW_3V@w*SdQ?9n)`y_fZ z4be_UjjQgL(=7Y7ke~d0Qp~W|Bt#YHlk3@#_U&y7yT803{JU2x!X>U1V;D0lA2_#p z`TrI1V0_|-kn_7zhVlK_yXoE)c)r8uIvX!*S+&-CaCOwXydo-nBaIcnlY_AnY4X^r z)TnTEoIg{!Ry23U4ySj62R&2uEPvwt^Z#BUacCd@&hFvfm$Q3#P{JHAb-^8Hu{YvO#Y%kdukc=X7>R<5mX9#**fsivrb9%HpwlXE>w@NSy8Y^`Gs z*Cn2<^5SQ!)SDZ@gY)NyKjZRE5uT&V@}-;uPBi1rIwAfesdCX~2ACVL75#og;El|M z=?5PxE4?(_9Av)QBHWGD7kf+EFT-Xr=-Rv7=@+;zY*br4%g|@6tn_lwZo*&UI-3R# zjH!NTw*18BN#cfi`CSqA&FZ5av*oUc_cwRNAUDP+C;Aa*qAwX zd%{vDfee=Vq`nUuvRLXUpslQ40y&qblMK~tX3rptzDb9L|1)zv*TZ$t79~xMzMHu| zVc{%sQNxmYf>SprcCAP)lV?F0Mcxk{XYs*@@_3vcgS9T*7@s(6Ss&*w%Ktz;j{ZhzCtdw3z}ej(M9Ih@^sT?**uQV#nrKTgE+|}ydUL@pY5&sp zr47v9K023$HE6s8v>3h%=x4AkdN*c}hd^7a2YvBf;=KmesnTEhbJ$*mMy7_fs%7=e zKj_`an!$71zK=OeQk7}wE}t5VdB>A6-xaH5uRiLl&RETBL*>Xpm>KPxCMI+k&kJ!9 z{U{Ul*fnw+zJCYzbFAq5=sh{)Pl(eE`0OkE{M@#kTjH>5Iz{{PIL=Y?*uLzX4!g!r zyGGb`9}c@_-G|J%Cx6b4dFXqIIXmn*y*a$xQAao6n9~t|KZ-ef9Jv;kICM~RWWT&i zl(_-WZL<0uV}Xd*;Vw`m)6AchA!fQCI0C=7>~E)Kow^T0<}*0*7@U2yp)V!-VAnjp z{bl%b&$XK)2V;o!L${($G(Ql6K4rfC73!Dl_n6g>sWVg05b(wD&W%ZP@NQ2zXCnKK z%z1FE&$$j~eAAf=p=Afw6LQAzX;-`6y$=tK5)%h5aR z`02BlOOB7R6Dl7e3oo6!py^Ir?Ea>q3B5m0{{BE`Q|+&Nn*Fs*wZCa{IF3R;CLI%Y z%kuZcGgL1-d3L1-~Mc=>UYqBF`Yc`n@RLLm?l1b1D=&*W8D1y^BTT9 z(;i1pK>qEOJ-^qddSsuyRZ)}QBSy`BKXi`|C2Q_bV6 z+g{idKDP}$lUHw-y-9^IYTyT5(U|_WNtx=TY4Vg3j3IEp)H?VXLN3=tkL&D2b>VKn z#t5JnTh)=vDsDMknT&B%e1|=szaFfqZWWLz#S>gKaS0Te+e~ifpb<5 z>sH(irq@T_+KIcYvwu5!e9)(M0_ItMsyTsDE0o;LIXy87ldiLaAjeD4{b--A`H7<58H}`IHeE#*}J>p*6k#p~I zC+~#s39`;LZr*zoy1obU^hqfPW#5h0@8X^UiS1Xm0km0p#&cW)ymF4?oXfc$?n$p7 zdrV<(!`SmM_BV|E4Lkd&IAt4f0rrZ9mpad4*Usgw0`$sUtem}l2KZc2=XcG7ugc2V zUsxIKhit;LID>NJ^S>zlAQESx52MFS(x~3A@b&7KBg7#CeSeFECr}GICBJBO8I6=_ z{0x1!QU?4262EZ|h6g?w-p8xP8;%&w2Vy4>=hS=!yrF|Omnq7!zuF(@ z0)DnV@UxwTpUpJ_9ss|UlJVeE!^}$p51Q2TOUKhrh%ZGu#O}rZ=2x(;p_*l)332i! z#L1hYhv8Fj@)6BL$UlzC?|cEqUKw*eDS2ySh`emTrFhvgeD&I%iiCO zdx(buOY-GS&Y8Y9k`S4OVpk@I?ls@=yEZ2c(0p@nLG&MS*5DU7Yufm%-PnV(JrIkd zenE(Wlu_On+l2T&?ZDas6}v!RIGpK_zc!0w)K?s54P20Cz4(ASYs4hvSzrB%JnMJe zy@<2C>3SAJhtDm1$83%lv~OPcv3A~7E(&^4XHmI@bj>;r z@BL0Yb5)prIyoos^W4I#!?ZI=W0V(~hJ<(;zJR}v41iyHzg-peKJ@nyzw2GtiW`Ov z*XDH4wQP*{>$SqR9ED#}zvrYa!q7>FolsEf;!xe$Q`GPO{ zZf2{o#3gQUj)lFaf?D5O+!wKXBmkbElXy0!jlUhbE8i=gRrSSPT;&@Bg^}rPFlYseqfO2I(2IJ%CJB79&AVrp^x_e%ijAyM|GU} zf+e9p4c0#QyrZ|##Mrb!0SOUW855_4gt!tU7BV|WiAB)bPTU^kSax{3*d}joN8NM_ z2_s?7tcblcIF><GRF+!9QZ!V4a3$LMO=oanGiRjY~|Pp z%CcU&ea@EoVj=d4AvPin8!7oS;N;5o!w)XRJBdTU2Uhuuaet0l!&+S470tmOXF0CM z`_{m*_)+*9?U(jJXToP@Jd?Hqbc=3N+A{+KoAP8P`8$)WrCjECm^?v#^3Gb(`gHyZ zVxEtbZN@k+k+MX+U-+F3QSxXQ;~vUF>_L03s~b30$sv=G}tR|L1EPKS(Yf0{HLEc)D_1zFNL3NV1K*`a=vfrY~%@iEzUC*z3)CB zJTA|PzDD{Pd*FNEccYESetPw(HcoB(dg*iHnI3_x9cVxDKL_^9_A4JapR@hmbF=;Q z`~JGye_Hyq5+NVPGYk3nDdQN=QJytttZ(Umwi~P*&~LUppZ;z9-u$VB5kLA`SU(t@ zC0;0_%-uS1%CkNz}P_-cMUkaa#;l6B%D+A&#@_3&tbvKDcc!=}tM#{qmyjHY=~%X!Lj;#p$k zCIh?cu_}DDBU+NRBiRGLSq^mGMmZm}|7>4K`}1^pj+?zIHb zSpi=oe_tYfa^MixPp0Rq=P#o_YyRL_n|4e}>@8zl744Y6M7$31agG>iXFU4+!Bi{q zA#W0vg}ENUTv@#s%VcpSMYNgiS0>8OEIT$tNQG*lXgKx-nPK`^@vano# z!MrGkUuB8-NjK|2Oc~B zo3vnjMREQaoAhC_;;6dVH-39~WjlG5SSz^2;*~A*h613rp z^G8~Re|Y6cd#bhYQb&~eviolAumj?Ny&1H&96I6K)8*DeJDu^%8F2OYbl*H8@y)S> z`8|;{P?`D7r8)KM_K5wB_MP?e?7Ql`mm1rUlXd=JuiY!o!5$SA0m!#x>dY5}80pTz znESCFluYI9x{QB}e;1;-jdO@+CZ2*U3pFi>3DF*Gk-XzQgC29Ab>kWM#(l5Xc*eO1 zesZ667|)L2nIHMImZwVBEnU+WZ2^DJA6yU-MG2m>UDJ2t2K(g>oVWPtSagZl&}-GT z$D_dBl#?8{EC!oIZb))(VMP~OHlq^ zl-KP8-4&nC;ze!Pt)~e50HniRtv;S&=*c02Yuw#d8ze%H=b!N znMm5jh!INnQQYqGx(^syh`DXZvD#+;%TIBB!0foN>L0Ktp$D-JiM{lZX2gT!;5mQi zZ`fl6zk+wa8utap{W9Fs7qJ95-7liRT{j?4`Rq;1QJ94_H`<>8;8L!?@ywV)T<3@n z9!{nHwA}wU8=~1*hc4pzHP+vRL~d(qk*Jy+&fnkqi_{CP4JG~2RD55VkaP5gvA!D@ zN18u%*3J^X`?uo!RZ&zLvF}<8AJUrGgOxajX%~^)uSe$o1zw z3mMM@o)s9+7{84JX;5cp@F09Aeo^Jji#^dzjvN6`d}LfGb$abp{CbRu07ZxWlVJ& z_Tswb5bK3{`-8)XLFqN-r$C%p-_p`Z^X)^nPn01>@ukq#q56mjAwKR-_z+i>#xAUQ z$o~7>#p_@@BiDA>MZB|1&CN38t=2qoG|60XS&p2coTwg5G*UiwGZww+aqN5KUh2|y z*2%7TSniG7-pw|e<8ED%vH9pvU|mS4{v^?Mj(>sCAFkEQK9_HhGMBQG{S)Zl1llow zums<4ZxmL0yc~RIg&vO|$20x?BUgGbj(Z^2uOME}~yiEQ?g<#T!M_-uP~o7mvr^H~KLu`?0;7 zv@z#M68;3m6N-06anF7wF!rIkHRwlI@U-m5L-zMN?tss%3OO4}pR&e6$@chKv?p|OImYh0LF+Q> z_eG@ss-25=_@1-skmvL=)}_sHz!)Ycy>Ykz`**r=czY7#V7`a(>oeZlJ;QqmyvKZ` zp}ITJ@9n{-W@uLw?Mgd)aE{=AVN+jeZ1Q*1EoCoaUMjyhW6tOoF9J_ee--EN0M?k* zM*YOt(Zc%r*p~dR#=aZtBjt7bu=ish-dzlxv9CEGUb1mc&;wQp#t8M~;P)Ic2QfA3 zH_UO!ti_o3I}op^e(S++1^BH%oN&u^;y22Z1meF-WS*1v5YNkVBhFS%-1x?0o8a#* zf{#e#cG*QZ(?eLkTML)_VySq4S*Mg^sm^8MT;nWp4t-ATR{c(mE-A~8*p;Kvg5Ht{ zdr0X7DTQOYFhG zdY*oV_<2amuX*Ta3OGH5eEL4@LGj&>Z#r^m9^{g4!+UZ~zdEmZU3K2db)mpHIkpXG zOO807U_1ibyovF8!1mDhjiF=$G*1L~q72R(aLWwH_5<&2*bxgs{^&Mwt|(ctWu2JV z9%nf#fVd*e>(olIf-(nZ>D_N3{%B|FSquIo$Q`d<>Y6Nkn{m^m1;>KpV$xv#;ILgi zi2B8z_?wic$&PrlTmLzvBWC^E;|-`k2lbonCRStp)p=JMLldfR;0wr9uMPL&-oEY4 zXn?e}R(@*)`plbK@3}JWP0VFEUaRtA_Fb#t2fO-Mao=-w-me-%fdNTV;#le~%3_|G zplPUZ?SUwDNcOAY2y8CM%7R9b+=;kn^mn2Iebe;x`dfwm`p{pqFD=j^@|*B2QO-3< zox=VL$lh_xw^%gucuHEnbXUN~d*H!~$*>_4aZQ;x%5PI9ZjyYW z_VZ6ymS@s5O>=3tyo zpr0oUxje^_%X1)?H7(C352GE`dBecCUkBD3f?VzlD!H7~Ml5GT#vl(U#?->xy#-}n zN11Iw`U`x*E5mp)$W*KWG=mPn2cSvcmG9Ij3{VHm@nNGFMSLIUJmjY*m+Kw5yu*>p z#qjHR^(wh+Nx3|KFxRPPTl`I@o~V=^16A4J8=mc8m3PKlr2M6C$g5|Ql)p|NCUT?f z!)eq}V3eUew(r>hy`shjeV7az<1MVOe`{3A6yl`%b%nL_6i!0i;z=!&5nsu%oNj#d zIPU!LJ2mt*+c=v<=2N$P-#RSo?T7q%-FE9O>5TWF-hQ;FI&T(e|A1__lHUh{JyL$l zIX1pLRljcOmy2WNsGD&v*{}Z6o$IVGL6 zOUdt1^!KM;fAJpW_Yuw`(4<+?q-6?C)`BL6OrDjPh1n|S{`KL%I*I=*;J+>h|J5t} z_Z8&!%HIL}M}LLJe{0%^{j7#=5t4`!!g{$DHe`;JuQIYubn(3d9)B zO5TR`Y9$v>OS#B%Z;15mjzlk&Q**XXtrXhia@>o%bMc*lO6cofzBB;9-=t)&-Av zWzZkg4f(L4E7oJ+F#QcF+YCI(HBHNyOSn$Mlg-rYA`dkD739{hq};;2BeU`#vveQd zOU^~v`Gb@x#Cn~|CJS{S_l4?jT3_V67Zr>Toj+KQcfyD>PGCPVhDCyJqauTGN& zDVx!TP>yUvw?p%%g{|JFZ=}HBrNdIjG)LYBU1=xDd5ryaOGG{F z*B$XD%;O^W*>Ss2KSQ0c`z_MVo;5p4IjG)GFY^>|*C~_{{LjT*>GPXDa_0Y{|B>fR z5QhRI9|j6zubBfcVSJ$yx6$F*yolQ$i{GS?FV+SYXN)It%8 zl^{OJ)U&v6!@a~-fvgbrT=}A%iWkrZ4_{sFU5&N$`&D?qI&WOzoF;{HM$tFoTrKx{ zC4X?y1bvVbKBG*D#G8c6-F@drg_p$xN zev|_m`vo#+fqO*@hYp93??dGkNym5?&uQ@;ai)@$z+cw0aqerhn)bwfQdSacdHpYO z=D)zaWgE>gQL^(&qnOx%JqfI1TO9od{fM)?Iz}AdU3K27b)ljMAmg?L8&RG-tm%w7 zW7)H2MXBdyxh92csvO$(!Y4-CL1UVuA8xJTITgf90Z7O;qzFW#U zVj1sy4QP{UPYc@98MK@>Dmk~WQIzb6Z*<;INI6%$s}A3s>&hlzvaj5yWE;v(KsL!S z1lB`rtd!%#djZ7QnKZ+_Gj>gqhu^=vwPpx7$di{&osgG4$jgJSyiEVzamdSV`D`lg zw9uB#ct&icus>!g<>f5=m2tk-X7uXd(xy@Y*+muMf_Wq%cAKM<#ViTenK^WV1n zu|I)pIbz~xSX0>X)g#VY4t-;=29KJzU%XKXfzt7$6Dusvd$c0rTf~3v%XWK?a@ZW zyyW0FeGl6hvdX((hWi5Jz8Lp@@!t@maR<)rtbb%P=68|!{3VfF|82i`5w_wT7lpWE zEOfFyX8*W87CME$uhqu_v*4@$+xpm7^S%Th{UG$s9T#(agP{FSyZz#aNw!P#e-(8F z&YLd*&hm@BA@F(|ZH8u}-L%0AjdsERf_8ZA?#2CF~`9ys|`jXBPZ{c_N>?CbjhJHEHmDg)=O`6iTYvG#oJS?#m`C$?Gq4bev z$OZC4-_obP{pc-&>qYKYG+$gIUu+#(gLNCsmFJhm?AyAw6!eyU`>UY4TDMsQo~XYc z<*<(Z!(@}x8@1pOH4aUXK|DN__E=Q;2n7-*e!1)jYLR zzI!xy2(pu9`%zXn^FJjPJyMQ+EgW;{({a8RmN?(S9{L53^dh#OM1|}s|KVqYu92fYA-FCuOLY+s0KG{y>hH~1A z#M#hOcL1N~;JoLKc)*z>eUQf~u?_q3xo%Xy&N{Rsz8f))Lac=D^5)bLxwg_9>Vzy* z^~^#&?eW##Ttht_Wj>>x%aAF^jSv0h)w9W|hwVoW3-Eh9Q6Ss@JaqmyqQKELDe>T@ z({gXpKDln<7wa5dwK7(Yeq_1pZ;R2NeApY?*EBlhnnt}^Yx&ALrB|>P zy%B2~YTY_FX3D_Bk~Uliy8(TAB2K?WO0<_XU`*)Owsv>LvAzSEw-p#;9DvT}_@9#fIS{Nv+nC>S{vg|)i?(m$9&LPYdl}Z{-0vO!kl)L}81!N7 z&XX5D=X(di7fN5}?0O%uMWNkl{W*#{sQ=_TlhOBP=&>A(U8wFM(5Nej{p%<-Ui;)k9~ z9zS$rKlF4ou`l&F>!=c6Xk(r6y{Z|$SB&owTg@MQ80#FE zhYcOlw&r{-MBm8+1^AmS9&Y436ySjZ%%3XkBc`v3^UlJYJ0#`C(I9LmIp;Rxub#Ut zm~*fdfX}=+cNzP1Dc9b|9&A}h(e`+ee0N*fF!tH%ci+bTU4HLP#2$u6gx?Z~gVg+8DA#1C^7m!% z1!a)nf3wA`#EtSQjQ`_bE&h4&Yd-Or3Szz^z>UP4#n=-h{MHKYi6wSysQV0ld&MS( zgsz`tJp4#Iuv6;Yi-}a$rNXbI;u@nempkzy@u_{=Dd0_>|U&E{v~3M{!{DxX9`;n=Y4BEaO(0`QsL!h9y%e`w^2r1 zhJVjom(j5&#kq*p`@ic^@5(m&uGixM(Qk(&-cxJDr=g4GIW5kb@te5EJOOT1&yV6B zyzky0#Jyj9;NlYEROpt@BJqXEzNNp4JbKGR>$&&z--X-1y-ai50BWCi>H=;`_XSV{gv_fXVpZKRqwpZhUq@3434EixA6ef8Q z;k&gM|3kqG`0bE^`7oYi7|-(`h5d;6z!z!zM~L|_mTnB9hy4`45$`Jex3Z1b3je8V zh5yv`Fl4%JA2AWP489M!3f$byHDu5?tm#j`KqlSryh5Fc zrs^mFjTzTV-Bq1;2fn!gJ_O~P%z=HO@T-SUN95i_`fC_>^&Z;R9!xrYH*sun4(o-_ zW^yEcFWSeLXM8)X{t?f93Vy;8iSL)dMi-)_OUCtN`9$4h z4s1`9d0O?Y1ehN(j+nm{YpRu{F>el)U=IC5atY`t=e9GJCxMX!Vy0EQ6-_sz@0{-n zD?4K@>G8v0FLZ)H{;rx3lu-&Vt3J?< zGRrKJe9{+u6S~IZwO67?q1&!{|?_j{6zfgZ)wm>)5gn+_;Nw z=-?wR-LCJwM8-TPaFk3I8L-r^*Hsz z1}MNdZIW1%eN$t5RPz!3@|}diBb&h^$VZ5E0dH)}ffePL6)AsN0QdZU7I>Dtg0%p& zy%ad4E4U2bS2%shF0B88!s&>ynG2tlq&eoCsV7eZV`cKlFvcw)F^kuRH}P9P%Ifd* z%dyq=fb$*1$#r9FcT3tb*3p80qdiW%X*F$UoSLG|Xjl9K@(aNSGsQky3(N+-gA8G; z<9kwu(7vLKH0`8;NzKQq40Rx73NW9={o&cKt^#Is;tJ6QGT>t3^9+6mlDzEhdbIBML(2p{)5AP_xzY{r>p5PiJ{GB)(81L))hcB^y?u!_y zG<5^=-^f0ma@wil8Mgr6?on%JSRdlLu&yV^X=f(B4WJ%1mz7NRJN5cNf95|XKXl0c zJOrHkn#T`CIBx^}i4y0Is`&h6vYd`L^ycbZlxviDSk-4s{$f01dVOK=*AkR7WzuGh zH}lG9o;f7HF_mX_;~UN3w@i7v4DWN_zU~WbWAOHD2eW%T=fk%TL4H7gC_MZJ@+yq~ z<6kZQDLfo0I}p|RXu0Q5#%D7w_0D2okgVjpz^LFo8D9rKKm34R4s6t={J8SsH&Y*d zzs!ZFQv z{!9J++=q;~MR^{0epc!+-EWPR?e`v+Ia3(3i)ZlX4g;q?1bl1k6}{;pxv!@LYnb+3 zDV*6l_N1>fi21}m1H?u#=JT$7kOjqU z#OcJC#E1_5K%Tj6@euBnzpPo_m*8H>jOGeHFTy?T0YB!FA9*%?h!N$!0pzs+7OX~G z=g!t5@$zKDC}Oa%XFe6*Up6Gy`cGi3f3OkxNy0*$aB%twto1L9kcSF-yMS9416SMv zZ0`A86n5(C?giFBj2*Dk63DY1kTE-g0`kz52gqrFwpoyQh-()Y(9fMtyt-E()*&sf zanb+BoQZvy5Eyg;&ZvUC2g*r=+ zb4ril{6XZ87%V`(ubuHi%5caf#;e1}1nl9p?WkP8Vf%>>^U+3NQnc5^wRLR&JzoNwc->r+nN4>{Q*V>E+N#*b7Py zt*B@c?_R>X9CB!-%cBSA%s^85#N(+$>H$UqkoP)DCQUv*c^8#@W zPTeEOd1Bdjm12Fode>a+k4UAuf^VbGYqRfbV_rqIzVijSFL=AN?;N-U?_)28Rr)O( zd!>YUAy{}~5a*tq={}5i&F`9h2aV2yM&o+jCetQ2?eTP(T8r^Liu?(I%FU1yn$|p5 z34@PkcrN8_ALQ+Q8S-}j6nQHK7-QdWqx~|*J`DR*%U%5&ZB{LN^>0|~apkZ6tr)*i z{sD_Z2H)q(;1SRT_Bdql%aFl)CmV)68Qe09Ylun)V=pG!Kb;JI1AUurYj<) z*(=A2a#rEoiCZsn4|xgp_I7}OxX;}F+eOGFz_?Vzq-H&YSd2F4;{_-?^?aqw{yO~k z0Qr{wWSu*Z?IVBa+{-aGiel(0wN{8aLf?(|Id#mHwh;E&4GdQatR)n<7{se%NZO6*^uahn zS9@g`f5~`au2*S&+6|jl#iA&h_M(jR@iBKQWRk`dE$&(b?aE7y;v{T+lw}`#-1ZGr ziE_qGb6kiqylFYr`!T%TsGn*IQ`UJ5@WWh5sk6POPjk1>| z1|k07I)Z)MY3$c%!#cgfA4ieLN82g_GKl=h9BaVcaxdAv$SbYzMs*tAK<-AI3+mZG zo3m*H9Z#E&yyu!Z@j>crV5R17(lV8**udOoB1^cxyE0$y{pUOv70hQ$oPzQX@~l3- zH_~3zYGM}3-4t?lG8d6gJYPx7f-^&x>pX$J9GxF8BR}V;@bYtxdFKu=_i;jWJ+@Hn z8SepBLEh0yA$o$vV$YMIeCpo$&`lN4R~1rU?S>9iGA&VQ_EBH!a>UNi6X%IXKtG8| zxQ~Q>H)Bhn5^Z(||!uqk&U zK3DqT{z=&I7j<9cnSjs{)SK6(BdG6qMxY_DKQS#N{^DMsO#Jo6N8+zW*jkzRi}7=r z_-hG%)Ap~%Uq$#$+Q3*}HSrg5sls3H0Dr|NQU2D#e?&|dY~T^O7yhI0*Zyhom*wEE z%zT)p?%;e(K%YP;gw;Q+=g5329#0myx>n;e<{K$pdaYw#E?$r9KBHDsnK9Ut%JUz8>~@cn0jF z`TJ~=esPWiWPr3`$-kPuF8(>WBYu+DWi%o8XPWp2>n~^zeH^R74{FaG^2AI017+ah zpOf3;un*yLc{Yx9PX`Yu{1d>v^1*m@RJnKpv>43?#@H_RjhPrk;~&O6Yy6Wl1OB;y zI1dy5oOZCs{J{+TgFaph{^^mvYQ`Wd{IgT~syTMoj(?gyA^s`44*bL1ur|tP;XIor zVn4A0c<9++Vg@|a0-VE`V2!U7ZkmdRh?`nGJTxmI_sLJiL-f564-xxFpA7sj^vTdq zL%*<%{IePlF}7lD&Q{C?&-apvhYlM4mrcOz3D}>R{+IqK{ugD-g1%gYIpbmHxjzsE!L(q#DgK><(xEZ5C9}n>G__RKA7f028BL5BJ z3p4RU!8HDxy8hjW7RNeDKvY zjM@JeaS{0Nf3vgi8(SuhAr9u<MDy_$<9z@y8gK3YB|bJ63BN9L5Lzv61= z^-ApOl>NoIMZj7E@G-1dYQ8s}9|-LSX8*}~wEcXcOGD;s6%~blv>5t)HuSuxpugOt z7iEW*5ff6EE4f0N=)R}*8*|Y9HDT+IKQFxT_6ejqg&acPq|es|R&%k2J~P0;8fpF) zaRNAEM{qaB$<)!yT&&^wUyh)Ri8V&$*iPqv(d#cW;S0~VA}|)@JI!-?9CTk4#+VBq zOONugVDC0!=H*(k_OW1X4E&#tF-jaC3yeYsW1x;ukLzQ>`dJ#r!1~z~j4|S3437pg z`B;($#yF@khO=&?eJoF9_*gp9d@Pq6#qjm{SXQHbrjKQr+um!(7{Y18$MvxcTnEO; z7Rtx6dj?FA09NQVFvU|d_*kMSXZToVC2qiMHsqh_Z(;shu6z5P^=`-`U{CriDO0>T zgZZ7g{vB3z*5dC+mNnMOS>D4p#4nKrJ#vpI@eQ#JeL%!EHhezBI~v!t0oNR!#?R9L z>|*+Q7$c>9J(-v$=Og?(dS02j8vasXhGXMSE=PrZ+;yiId>-Z+IDIx7D$Sg^dTmJI zlND+BWHWS{)>HJqXy4JJV!6Zy?@LUh>|1R!B8PL0S^sHZ3A4TCwXWx+tS3`$w`KT5 zR(w3UP5*U{a)^s>-V=D2j6n!lw{=3U`>7yT`JmA~Z|%HMKW?hF2S{+7AGzLfj^41KQgQs;-$<0aZE z!jKnO>&WnDC_6y$R_W4~55I$0vJD=lH+1P{e4F@zbChc-Tt6}~mBJ6x^CA5-lr7im zrx`KzJADZm>nj4!U0;GYAoV-e)zb8Pz}4@bFM)nfQ@_7$==Xz&O(L!PBtFvmeWtY& z&ws!i0$S#{F%YMAIJ*2<8J}SK3+|mpmzPf}e?g8eNV! zHR*GZzLSse7Zl(-+Fx*3`ek6pXXtY5gGuuj>_j;ggF%16ByyfSqt;8V(O<9@?K5>b z_Q*Kxy>?yhbK3B6b@`CA`94g%4E)0PhV3XM-X>LpTl(en)+Pp>qnrkS5M=IXo8O{oT0NV z*B?{lG>IxyYLTC4+>uh3u87mUKMxD)lC|$u#(6>6K19Pf|@-qwZ z6!43Gi~a!9=FHUJevF6K+f9gznMqD+Jxx3S`iz4<fp&MW;^bWQ$%F4(wJ<2jZ&{(zAT{k9PPWcqlC zr&7ox_QU+eF|IG+ENF?f=89Y7`chLm-g-iazX>v)1rzL#r|PKZGO$vW#7aC1f_mzD zb(F~m_loaW@4J0qe%+OA@MBj>-w@=-N9kX4Jps1fj67z}56y3|A<*AUTsVDSuhz$D z<0+6sBoh~Y9Nt#zLrP{OrG8cTL+yF1g?v)@crA3PYu8in^ZN!C;T{I1_p6|%tIKz#2Wl@C+EDE(1f{E6YvA5UVpWL_Rpt!1tzpr|pf{CFsu9 zag?dxx&w8(+|P+vbLxM&-XLSp-;w!4?6May*2Cc6Ui?eYPatDLQAe7djliZafUUz= zSiN4h2{=IWF7|dKHglD0N8o&f$B-|nJs?tBdA4B*-p}%vSdMPJx55MtB_Z&8}Ez}K{ zAqUJjUg6AVo@9oFn=@bL}87OT0Smcow=cSHS z>-5EKQfJ~EkmJ%uv9Q+5y#4baJN5?YE9dy=GR*6x_ct7cTssM#z}a+|M~FG)H+hDy z@!j2$Zfmfw;SI!3l|pCIPFv&bYgmJQ4SFojBsZfj(p9(F)R|n5vBX}vPOo&N*QRB_ zO5A%;XV|}7|JU*MW~@E-m7qU}w=>%KKIo_RP|U*~ioNku{1*1>`CNP4`xf#U$Zwf@ zC|0Aqxle(6O1OuD@r!1;9{kQ&0_HI>_d#sN_q}}(DeQyT%lvgR#;_l4$lM39I%6Ni zvT61~gq-*FJ_tX)q4qSS?^`HF93kTj`27LUZ@PUCYq{?MWu|+d`L_PZQ_ZX>l^4s2tJ_kFLSh`8_-NG@y_|h29sq3#Bj*H=yQO5Cqe~lM6 zXJ6VI55xA_EaX`z<6HkO1-s?LXHcigL7cH)iTfs)%Md(;Jkqa3%c0Xk*f*o%_uhaU zIk5@rHpv#)LEy8&c#DB(T=$X!T*jtACvNYAWO~>L#AuqIFqCgK*{kUtcC85A4Qui@pK%y zV$q(iAkR?Bl;=Z^JZGG_rkUDvk2(gn$BFk?N1;(=4aA?Y)eAN6b=kA_N4 zt2lF0PFFc}L%e31oGwRSw12gjV<>apEP&rM3BM`&#&!)Un}>aS3hm02-Q2Tg?qNIa z>J$1)k(bZHIS8x=d)T5*|2Cr@#+4tEdcG^jeK}r^CvQ(%4rDp`${g3I^G-SN6ZYgz z+0#~py6Jaidq-rw+=HC1Bi=;4{Z1LIVWJ)#XYTD`W4sh|BakM`WLcr~fe(LO`&#RR zRazgkPt^xITzya=zSPEfUn2FvJgE;pYv=>mAFZ5&_NA^ka!kZH2eD2$zUAko>u}!K z)6@$AS0||ar`Mtn)c&vQ*9YZS(FXjho|(xf4B~P z(DWPB2PIM;IDC<&4|=3NAb+g=7&-wq?MLVY=1%l<0(mb}Cy)m~_YJsm|k`{?%>r{FsC~JBGQl6rNw*1`H!}l`A~Ix{YVX@VUbCtJ`>9 z4DS`5?{x6I-k7mcMfpsO z0Ke(9=i3Ug5OzY|Sbv=r`~Dh%7$~o8uvIU5*dkM&&l@{RSzxSj5F2Uveh|+;aTHl?%MPEl3}N z85co(%9v;RZV)g$ru4hP4l=SF{D%4zPC@PXEy!4WB^ zNq?U6atHQ_Zo|QcCXQD$f?dArh?KcIg3S_d9{}D?&s)yi6gKj&N-S^iklKH>gEkW| z_|)};LeOsrG@!q9Sl0dUl)8sdcb`*cKw|l+xzYQ9;LdOD6dN(uRr_o<@J-lL3!O)0(t$}sqz|mA#^VEPcE;m-w}B& zZG_*;>)*@k-;liKx--|6r^DFY9}{DTX2jSr7h{`inI68Tzg(Zo_<%f@@wbbww_FFl z)@KJ^KfZ>(Rk7{#m&-W0On*7?HFD1xd-F15U6lWPAYS-Zb?o~;55(Sgu&nuxiC4{Q zg|XjpF*f!q!$z7OW1IN;YHR0eJvI;c`d6c}ZI%@)T)sH={Ti=r=@`2)~tesriKXnm+%G*yri-^`1|TuaWoU+VHj4 zuYVJK?c`%2R(%S%73&shXAk`zU)KU>Yk&E*t z`x}Ir{Zfp9{;xT+V#QzUS9v+ACh@i z+(-CBPG%eaYvhHXY^ML3er&mq68Sqdw%+CXuhm)S$3GUfem)tU5nDe4Y|Yrw(zNq8 ztFR|i#iDdbY#lO5j#H4sWZ1^655m&oD><$@|;`y+F zuWINw+bCmFJRf!g_K~WyINyN}8+#IR_qZ6lL&l_B&4;aJM7qodO)UB*iD^@3t(6)l zx;|{|KXEZO@HKNPr&4!spdWiM|8C?E>s^Wa2S?hE;S7|!H<XOrxAb;cR--5GWT*2mE{`i*IOybeCx7Nnov^xKc%UiM z;hx3^Fdw!BOB}kC$aqT6zh8uYY5#r!uIa}%{qpbQJ;v7@clvo0{iI)h7<)ySPiVFC zj>@6*Bbh@IYi^P@h))Jhb_B!I*et!1T)Xww1iEn#x>RuOhwm(z!QWpvgTKE)?p@gt ze18UC{%O3Y{rv}L@a1zqqxSc|E$f-OZg3R!(BCikA9Fv-n4Q{irv33dsL!U@9@nDJ zuEhrVx7KIZV}tzvM4vtRJEG5Ij2ZNqVY?`Or)3)bP5-0lv#Z%%zbpDo+GM}iXYM-l z@AVntRdr5f(__dlzB1N}~n z(aW&QV&e+uJ9~_9P6D)Xg}Hw(Gp;6b)3>9&!1%=f++*Mq%e}o~M(lip_%8CKn|amL zw^A~%-rZNttM?{iAtfds8jcE`OYe>JTzYQ;D-)k$KYm&+J;uyy8!OZ9?4(WRo^PPn zboNcVreiPI4!q~YO${(^>NALwu77}MXB>3x&gPK*&4{0>(7$>1XO3HLlVgLnxHf2g z<;0D3kCn)M5h{*K==6LzU!YTHd&W~6Qdnhxv++1L5Q{RPQJLr2} zXWDOJ;6>ZXk54JSwfx`?4zNrulAdHv1N#}uOW}CGU^OD#@?8= z&xE8MVwUcCFg74#mKN<&dk|{FJ`urw1utg??VilIs^KZ?^m>fWCK>C>d87NOY@wsb zXVw`%PTM8)tdkek%kgeW{GT4@RD#?DsG~yVg+(0EAnGXU;W;C+4lgh4fXqA3eczdO z5OX%N4wdKSJ@9+`^m$=t-4Nw|E&HYiQD)ID#*$U%-RYj=NE&l4G6xyg?UtwN*Dd{W zag4Ode)V~K{@|UF>bxkI^fr=Z@{=*==9M8Nux; zFFwwXOQ3()H|3rKunG6HuY}Wvsd-))1C=hrnHQfiP~jreKZW2#(33_t4}6Arar;>qtoe=_J2ctBENMl`sDO==o7~Onqz-8eFB|2 zqdv*B_pYW-;CpfWn4Ugie6HimboB}Sn~Xs$5S~6sIQqoS&?lj*=#xW^K3N7|(xMPMix8JfTSeI`j()+q&u>(}NP7wTWs1F|^-EwH{Zf#jUm73_wA|(ON9h-d`G3p$ zWwUIj_W!B4-SAcPOT+K=%kTBeuR*_1r_c_Gl>J!h7M0io)`HS(n`OiXDFB~hZKNscw#{6e3tNfMtNPbU^ z6?!H9W-ff4H?4rpv!aAu6iMO*rAaH+K?_edCyvC z_xZ$4U&FfxDl10E;tly*t%}h#XxHMHAGrGv?hBDW>m+g)@@!>m;#j;YhwZ^WU&d(i zj1nV83+G)ewPC{*GEbdsbra z%h;itj*a%;^v-DUy!ULBNuIj-^628CmS{uCeyls-oQTj^bn&e%QJmvUa5H@|(f` zIS&8hEON>J+2sF9kN}}X#5E3Xh_bERWvLD@0VgOwBUTp z)_AC{HU3l%*UuFH4_MD4M@V}-%RLWH@qYmPZ=HHso|{*NymO3kG;`fBX8_;h`}$pl zZ37jF;EJcoJIA4$kzYj0nGooa{lKNxKyH2O4;m;_x`K6Bi^+bz33BZZTMJKAL55T~ za&3Pw2|E3|AU^m_kLMV3{ub)vtuH-CTY?O5;JI`Os0TWgNR3%_zKPI>Y6 zbN0Wy6F+X`FOzhT=k%$3>Ew6%&?!&JSL7#6AL6N*cz9^Xw`snQ-045SAJeRUq-vv z&%X;>?Nc9;MjJvRD_psC;vu^?e}jEHcnH_6Z~b9utneQniXWC3OyOP41C&<-H&;D9 zUH-O*;2%iO-{#2+>aud=ICJR@+G<|abfkQyoNmTAkf%5YjyQOAzPJb)t!OPge-!Vn zaQUeb`PO_QCTY}x+>-MjNVfi9K+z~9pLu0_Xty|d=QxgL?z#UfqwTtF<~-2t<616r zNgT&tuk8;-i-AFP|MYj5*Y2kobu0Y+%PDg#5q#&F9;d&gx284Q+U?e@#>1?CXqx)T zXQZE&A*x<)JXHU`SH&|LO*)ijO*e*KeA#ZCUC#FF@7t5-;BVR&dLyF^l;L$4M?F{g zJxwdVp9scW`7(lha9)2;@9vW{nA*0_P1`n)KTUe+?>0H~)ZaddZ<+09yL2C($moL_ zOI5#qzZkjfr@Rk*L>lb8%KQ9|Zd0dWpV>Gsd;s%8^Kduj^$!NKx6ic}~7qVpW&^VE1*|EW1+i`Ps-?=O;=!GCJ;#R-h7{aQ{MW@<*eber{fE4~@VJRiWneW8EM z=(Ea)<>{SGm?I+l2M z;%U&)kH3Auyc4O}&>i`a-u%4C?V$&wTPH^Cw?5}X+`KOq5P6Y5zwMV%VLe_J5a;Y= zC=XvKe9d!!&A5M{w8GEpocfB}Ss#3I95=M<{8~AWYs1yz#WG^+YV!aZ7k%h-vsTYsF&s@Xr#1FrZ@nMcJLmxNG`J}$X zw$b;Dw$WENOPyn>=8N{%(VjwF%M!o4rn9x?-v>T}`Lds9Fj{Ywc0}#lUI)fidRF`5 zz4M!$H5%ksX)ym-E6?<1A3g_r56>Pf60cQq4$!yH zvLo$1Si7i6ZbFHjJ3GMN?wZcB8!MhokOq z5%(v1C2o4Y9XN3X^7-B$5Ty}OcMNexN8`ws3>}zCSfQiw-N2li#A_hI3qhXsTn^hJ zBvPQ&8zC$70^+sKCJVt=wCxzrglEa)*i(;oLx=VS-^3i~7JDl`#e!WfZgb0o14E>;KAHiDCQP72B7MA|xUsMb6!TI8ONn40NmE%%~F-)c2 z3sn@2MejwOh0BZLC&h+nsHg~i-wM3d8)AP1Vo!CwP2kl!*z5L9e;O^Gx6jtU*TH^o z!0-CLLCl*Z?|?^ur|b~(o0)iowB46MJ3eQ>HX8cX#C*49Cm>JFyvwy1b2T3JYk6|K z{#yq23WyQg)C)G`LneNpoKST1@FQrHR5?G*@m5&kuQR@p*@k5q?Nl`R6VTIZyQULk z3!}>3Q0qvuF`CABn)-?Qfbj^F|I`K40jaYCD~oXcFm(ZSMk;ki>Vv`jGpzxfZG-y< zDgUVx=mS)G;EdD*<>I+C9q@iy46LC8Mu$BeV4PXZe7sGN5p@_dE7TXy$?CC+=XKbN z18-m~UJjDKHp#P7_Xk6`&H=^<<8O&L1O9s<*nzdsa>zo;aq?OT@+DIKQoi&2Kg!TU z_V=y~MW4V4>u26?xj=lg>^=Z*Zd8#-FeAxP#kU>+` zHl?qoD}U-Lthzqx1YH3Y|SCbt22K;Q@&lnH&+A06n?rMw%UeJsNp~qvc;Zm?sdZF#WubP zTSADJ5EBhQ&pj=%CW*ga3LeGp_Np6VhjCBY*CAy+D8d+Hxp&6H!x7|Tq1<{Gaw{a~ zoP)7}!x{I~D>hWM7&0~BjG2eYryq~iQ|YU|k7j6jOZghX*(tZ;+jGIo!>AiFs*-#{ zY!#4kHnrga(KdM!xnv8(D%evZ&9`hL2Rrv*FUb;XwT~Hgv-LlT>Movj!QZk(S6L_I z5Ai=S-Vx-Hnn0gXR~;G?jvz-8baRb>t~4iGn8VkhQRH|7)cftBG8I{TVVhPc^vSIX&I1$YNzJC3m( z=h&x@yC8fC->UY- z!g&iL;A=~jRrAq8&irNI^@JDQ1#Kql{w5Y zKl~!)_R%7Le)>#&81!u*e_-ySj!}H`YB|J|oXN#kB#+dF&Gr)8X}eyCUtqqZWV`N% z4AQjKv6GZ5z5aM;LX@^`x>6jo>${>2bsf>_ybjo{T6SQ47yQ-h$VJpYC9heHNUaQG zouCD>12#MC>6%HK`LHKB&qZY?))RDnC;clc0y!1yffcZ)tu^|e|5!vZcv4R3{-jb1 zFsDmnE%+|tVpq_fpsWiOEr=C`qx-%Vg2&huwTU|Qigz@HJP&F zAZV=H!1~F%{6;VMUi(?}bNyGh$Gca$1F?{8{0{dCq2I7=Z-gKQZdBuc z)2iXBhEr!i3-$iiGv~sEuWpDA=AW|*fAL!Mum9m(GkrX4$3HDQ7vB0;+gks9=t^|! zUk%#i>#dv5*}4rpV;t>LJmBL+ZP*-t@}x8F94G7t-6HiLaXZhzmNFJ}yVs?;vR6#K zPz2qgWZ3@T2^{alvv5Eii z9YtTW{~qtZ3f>Q3oX>#Ic($m*0Y8y+crDrM-x4AQguZwEBe)(b5b9 zej0Vusl8LRVg61%G=$#={8zvyFTzj8aru*~L;gJ(GV%G~fPYJ}O4b{wIO4Ac9!-P} zp}(w?G&8?57vpi*c-De@%3i*=Nsg74p~?>Em|}0EM&d4aOgR1?{-VrOaxyE~2HNv% z3(h_GgOl(Pw{wmB5cGHeSfLzeG=$*KwjfLDAWIq`N9Yr4f-DIGBW(gkqW|wRpC7K` zy#H?1xiDirIFA_X@qe5-*Q|A9|Jrlmw<=QcJN{z0YUf{_3-=8URI%KXFAj$9_=|JR zgZYCtfB(CC2Ah+>@&D)8VAx)ME>3+;8hQVyf6tG<^|@4h_=&MryFL}?wY^;ajgBBz zWQn-7?XAxt9^r|V5&P20nDHF%Txqp0oxwZU2k^uh+y1X-qJdd&wDMf~=1(n;;B0#6 zgV4&tw<=;M{ax)_L=W~yM^@e{_O_n#w^r7OWOX^@;8C|-wc(NlqpgLtt73~Sto=>w zk2hef;R~0vWc*-uhmN!P0_37vQze!*^)Bn+`>cm`49Iz|<`c%@JjUTX#sR*UTanwc z2J0;Mk7EoV=YBG7`fL-<93h^?I7p z6yk3rFD4d0P?8MCMcqv*7xzVP-|}Jf-8zLctwg+a2z?{JAeOtv5*Mp$#O{@+{2weY zcWI;AU$THY0raT@ed=D02f$yNK8)A*=u?$WpC7;H`hAZ|-dFWeSA7&sF1RwE{PGvU z9;{pm4$3EAH(2A4((u$J01oT-?QYoku^4--+!x_bChX+*kAdzyJBp{$IKIiRjP|b&aRJP|{I2Ui31x2>Z3s+#*L%;@ zOP+t8F@tHcOJbN>=zb5s(4L|kBbH>JXbYGN3Yk7Btz$pJE=0SPeo3Xm zsN1VQm1^A(5Us5Wd)J2fP0m|OyzAP8xR!hQm}g$MS=Yg`0%zGgCrVdzw=wUnhnY<* zz&e(hx6bmIyk>fsk&+{JMVh&^k`;~r0B zuOJV&eZX36hV6s3tYNfgE5@S-xc7VbOMijF!ua4t#47A|`(?x)Xd8|`BY~XjZW;I; z^tJvA`wZ)N(EZ3I)r&DoWIYtp&ocjNyZBMDLiT9{_(GTAnMwM3roScdy=6Z0`mF5Y zL$Xda4jenMrQ4p!P2Y$HvbMV4RO7|*eL(syb=~X}t}A-Q8jQj0rw?YSF(4k&W%Rtb z%9w_geY_WEFZQfVWJTR}*jdq}&%r;szQg&=(M(@J2xYGJ+~X0>J&hL^w~=3xunYCO z*Vb13zP7o@JNrW4&n68$yoK)=yjmO9{F=_2^9|mN%J~JmHfh5j?ab@SFT+;7ruio4 z|K-Wv;1!n-Ey(8G*&HJaJfFRSvX(2jVRr#*Q=pZINOqju$oQeNC|$P4C6qR)diJkAt^kF&Ib^P>4vizCqKA)eXC zGu4>q2YK?_?H`?3UsC)=>*9vHVK2;y71r;F7v%J}E?zSymM1PBTAN*gy;xQ5nvUjm zpNK-1tDIM~zk*nov=Lj<3%a~InrdZ?bMvQCt)$DJHLr{a>&$~XzC!b>5NDs%^zvxL z_z_iyC=RU9b&Mc)R%RXcohgaE_^w%(Lu>Gb;wSpzI8Fia?UgO35V!u0HDzA~<7aZj zJ>c5|!2(>vuZ0+|o5pkCi}#CXMn&C`IQIkU{?i9`IG=HM`^$>q_mK0(FV_pJ?ALN3 zvpjy4?@JjSuF~^ivzU!CQodF!4Ck)j`gh!`@p>pA7Db-^s)(M;dLcHl5PkON-};TL z{OHbE9e?oh#GG~9JHmChfbd1Qc0@n*lMg@l&o9hc6Wf)2>jdVRKhcuq_lq?ZiSVud zo!Q|(_`@|K`iEZ*#{&3mXZD6a*qNQ}=Y2WuE%?;`@XI3lChYj-V)i<#t`oM@B9twO zyp3_qLYcyPti$?uAePt{Sz6N$US1u+9#^b^%&r(&*kKEQXIbG_z7$(}>ngmL6Y0UT zS$I!9+fi0nn}=t!@N9L2x<6-z_nPr6cZT=id#lNt;XTGC>u2qtbvVCh- z#R?ZM!kEokajQ`CVIno!T|6(pHA@s>?@i?{jQjZFif;pB-E=Vl48t>o>>sUJS5kaO zWN{th$X3n9`#$hC>a4HET)O2VXuWGC@DXEwmWCF_SWlHONqPSLVlWO>CwMhj&)MgkFgg1fAXs0 zaqYYLlPcjKz}hv}6g)oEyoY(AJj(*GdsZ{k2;UE&tv zK(%(#7qpQMZZ(RA-~6=V$)--!S#d0CdZ~ z&|4WcJ}IN|kR+4*Vfz0WvRxMVP2W?-tM%)yWahWn0LCQ#arQ%_(>`kiwom*DJR{k@^2vECvC zI;{Rvcty|CzXbl!Sb#EsSYR2jfWk%_+OovhrtOVWtfT&p2{cs+_d4@1EB zh%vKZ41>_6S&zkY9KpaRwwg;(0PReI}n79uyCBKp{P5RFtoQFIpa~nmn zN99tP=!icBtdNa72Ub&Oyc1^_!S+B*)`?1!HakJLEZNSv>q5h-olDRk@t(kLdj#Ww;gTgeW|OS%onpNKXr#+g+IDl^B9 zZQ%N_s$(Adu`M3p*fh<k1b?A6+8$^;*`p_+{h@(Y(m~CH7sb zA;&zP)HK!fByV0IRvO2iVYE8{oMivY33*+J>+DzOA$MhJ{ro`@5y?cn5B;=8JLK87 zx*s@$8~v!>#e4%SKY#FMQ^k89#!4v;CYGA&au$iQpzl zBOh|R9QVowI^#`j+4ZktMw!{;*cwq%UqQ+&@EL&UG)y{Tik3GY>9yk{Bj;k@-}-N$a)A~#0{||_s|AjWZ5WcbOi4%>~XZD@-v6MWI zwPY+H?ueLq_^YsAe>ndQ*gay!NIT@5*uS(me?P{eG{&>s@xiu(S%0o{RzqhzfISVc zd6bUAJ>(DMv3D=Sr*lDZ}!hBk@ZetS57z!no{ z8&T$B_JnBkizh1VSt;0*H;f%zI%Ge3%TPl>Z>Rm$JOP<2AaifHnBya6xS<{wg8HPG?Kj#)ThQ#oaon4IIE;I<513DQ|E1t?{*Yac{shG9 zo3bZ->%_$CjrOX3$jSW)C7b)A6VPd!QNB9wTw^Ho5}rK~EP{+itg~CD5zqCrwX-Q- zy=NigSqq*Oh=1(P=)xXem?@4N!qZ?L0s#1dvUGbeIM^CEL9s`EoJJOT{^x&>XJK` z0RP+&drCfAyNmNn^KzCU=P1|eq>elX{nXn?9T5`al4ghvkTlB?Z$R%*@AXBwmzcc6 z_EzV;(iln(qiiB*gNI2&pBQt?=HPwOZ2)_#wH!T-cJLc1amyneh%sb8b3_;VuK0$$ zi@ApSMJOe1exx5|*ngi z%RT@{_bt64!g=uMEoZ^=Z$if%1okW#-8z(Oi_kvXzUL+Qy&s4b^lk(1_kr&ZCYOnh z#vETqScskA{nuERY{y1?pXdFO9y>vI$=^=D)Hx~Y*;??8QQFgYeKE$kdi&1eH2q1w;$CNtWp&=M#t`H8K^OSE z(7*kO0)tN=&!nDV>>zX)pG1v8~(V-T0d=_BB#>cg&(5T?0Ju2JnD4Z+o!k zmGY(q^$_!<#N0>d8z(&r4F17hZ|res8$XJ2Y@eddhoH@~an6^N*i+VlzfuoFXEINe z`d$}&I*_x@*!Y3HFqcA%$>jIu58eVAUj~lpi4)tU5Yr3$!L8?ltYG=|UW?M}wy@o*FCZ`RJ2- zf7{0EWZOs4_D-kmL%YXnSX~lrX|V_QDd14%$2bD%*Cc+ zTl~nS9yvcbPEUb`)p;*BhPdYw^9TAz%2d9i$FlPx{A1Xg&Nf4i0DB#@ML2;4KD2jY zd;Fxt^NJS7B?i53m-&7j-<97`a=#9GhVzK+KLi@vlVg%LY!Bx_5z6zLd+)WpQ2m)I zFHGLl?HvL=I5!!?4_haw>BQ%6ez3=y>+ofD-WlNOn&tpR=vfmb&yF3oY_|f~P2m1-Mq02(Gz;rY!|?f)V_zNZ0{Xk?_sX6aZluqP{w;gM9LR*vY$#re0m7 zaU8iJwFFtWv~gY~V>9pf+xzU9GmP_P6CoNNN`vLM82-pt4K)qi;CetpMzHeaC0DN(x#hUOcXmkmm4Zc)409#_9xuW(o zd{liFp25HK2K2qp^__y=PJUobm>z!xvgePg3lo>1|Dmrd=o@k2@5_5ojC5=?`&rUz ziru!p{kcAVH>AF;zAJrOeRl!3EYEg%e+y%y*_L(B`M49#(x(VmJK?NhEa7d#dH?lq znf+K-a?B5IPjKAO`_V`Jlgsd&x>=vY*M;vmQ?6t$>or2|HbZZypZE;;_OurFz;-F; zmqC{<5KlZ>Abtd0`jsl{mj{#kpm#HGkSSw$1^h!#Kj1#U4dwr=st-Bb3Q@k$QT_tp z$8j-l2kJoP`{2{tapfgxbJRb11bjzGJSlj5D04v?o+7c?Q;l3;c;^{zEK~Hgwj6Y| z5r+#SqueG>X7VZrZ5@SSkr zci1Nq2K-(C8r+p`TftMe@1%3$Aa5KT^n>P<-N(ABK6#!HtDdYzyIi~V6R8Kl*En1d z=iEwRZ*aYW55U%X5j3S>Yl5aoe_Yq#wYJZ3I_ey(azn2p96?v<@_szyIbiFTPb4{3 z(vx17FT-9?v0qDC6;1DlU+@cP>)9$7WVhr&_S)unS=XTavdfqlqvT6=8J;=O?+Wp5 zs`$~P0_T^l-~592!QkDyp#A+-`+!r}M1yRvCM8-b^X4X~U(ils?)Iy?Z(U)lN6oCC3cj$MUxhCI1a$GtT7=#XSw|YAuUOF_{Tf`a zm}i;>`>>XjZ(Nmu?IdZE_;=!<^drCmaL7O7joENjzSfJ+CXxRLdVHU}_ehURNIiZ7 z^!O*B$7ja%W3;d5NPWX?y1*}XRb7(y@mT-rk73J<9*c$_{YQXlBiAiu0bv+Nn;fI^ z9Yfb0K7c$c3T~8FdVJHQ-oD{U&XMiwbyp|HM1GC1 z5b{RBP4R>ZspI##IX7DtU3rRnt35xZGtplAg~c*Xoid2_rlCFS%8NhOlqx=YKJJa_|-~*_C*}}ZZj}5HvCq}Qu44JK`s00osbXsQgsrX>)YkATP5ap8e8z?HP8w6J>{E9OJgHW3B}5 z#bjKtj=f@j8peNfUy8YDkT(;$(xbJ^Pm@aVp3L{`J2c;G)44=~@YOJWOyweTAs1O= z%? zbb;RGeUonczR4T(HCtH70n_`yKJ-bLG2cL|!|r12Gk&Wx0l#?@eh;5IS2wdf_Qt@< zm}^x3I{y>SS7gokzYI3Ujt!fc`zJ?4Lf=1$`~aqm8%O&;#yV1SQS;IBWxproyTwDt z@X1^ohg8{d{RuoLL7b&tJ1y~txSVUR+c+csh%X_Q;*9NKnN!HdUEBL}nqnL5vFC|$ zj~hABB%Yczo{aRkOHs}Qo}96BHeCT1di+zMx14jc-Io9>=I03lKL%_E#2YSR`=pH< z^)XxQ1Ag{Dfcvc#eh`D-oP{6n5PlEJ_&dN4?MnQxzdH2y{(ovh9Md^>1|NpUTHBbo z@2U&+5+S*ywu)U`2hg^vRH4gXW?mGF<< zbudmG{20CpwLafK{0h#kAV%5+S;2hWoE!3`HHcC9H4w9b_~}R89-}jkd_`vQ%v4h4 z_M#7OXB~79H)LMcJt{@w2ZI9fKGq!x_$ZX_Scu;|3<1DjYS(kP6`Nr{cZP_rL zK$vFurRGT%;HqIz1o+W!R*2Xt=b016h%SI!0|(~5GR9W_G<`TIZ=YvUzLnAR%XZb7 zn@r9$w#9wc8@=2ADeu6WZ&(lhCNs}5K6NH^{QfV>J_xrWWQxzc2>=2>yb+s`FPS{>$JL z@J!*6e7R&Gp3WEghi01hGcV)G)J~KBAjX){x6_YL>KK_d#QT_Cu?qBaS6gWegY{4b zxLxHqH!$G7@9Jf1ztWFd@eco%@Y5rp2h*PrZ1K^CiGiV zu_i{BXIYyT6fDtM8h*GZkMb~;I@fyX(Q_6*Q>k){MR;02KPR>n`7(XC{E;`|NI>mc?*@!6x`4R57+zvh2MB}vKai~g`JPMJbD@y;)MEDBa2 z2=$lY7q`-1{=aj7|D)%J*y7#vmo!S6KLeVf{5t0*oGI^|=lyRDzQ2n$fEn5e5=S@2 z4{`?&j;04xX+-VTTN|shA4LtHmHvKL^iU{f4bcX{zE;(*!Glfc9(jdlYa8KPp>0%J z|BGHXbQ0=5#n^A`fUdXYld)&5xL3(@&1|Oy?UdH@%yXHic;E0*Ei@{wJl zbY!nMGR!qk9ip`Uz20yC)1n0WxPrc~pkMgboV-u1-}b!Q;-&R(_X;r!zFzRxHH)AR zo1SJNuI{^cGI(2)yf@|6+Eo0IG{?Dd&RXB%ytU5tJ@8NJ1le|s8V~sd^%>}E!_Z-e zon>g};Q1h)OI|eS)MqDT;~R3Og7T(S$_#TrLI5^S%m#w(AGwL zZpP=%I_U6&BA;^T@A2;g=;`@*R|xyF!E*@tk+8_|Y$l$S4N*q50_VujJc9F9BYnVS zH{{ALoFm_h+#%Oo;-&Te_U*wKh z)i$oa?<{{2vb%VGS%P)U#upIFf1sg=x#^mZ%D8VyTR7{jXtE7=d}LzvHJ?%A*K^mf zxH$}fTg-dq&;a1Txf2$L#0k>?OGCxF3_y!&XG zO=jvt&A}rpPFx($80>BJOFydunThg^G^+}z0706LigI(m2*xiojtMu|d}@BHheRRJE? zM;v3_qwY=Y9q6(+d+xL;Zc+@#8GU|NQaCa33*k^$QMLoi;Az3GH0u zWV*(@_RYYBvey+Ymxwo~^X@CcANnwKYUJZ~cg6=nXT>$wrGDiuNnwp}y(@d2w!2;* z$YF@O2Vk>rkC%v})AV!X=)&{Nd4Kc^yZsZ61H9ztV{CV&yJhlgU`)gGMM~Nm$6n`r zG;h7J&Ay~n^HuW6(Y89*k3C*R6H;c3M-SU^R`VeKJsO_{Sw(s#tV`gB(DT*s({Li} zrH`X1lfOU|0e-*->6&>cbY1v8b|Kf&p!1n1>XUgZn8QJrLz`F3PhA&`2e#XSovrJ! z4%ZR=XrOWFXP~ddVT+8JKjH&+P{(KmO$bpi^giaxoS%L8eI1|2@HtB~-pMoaLi}>j z5T!9UVss4Lw{U58InE5f882_X7x`C@F2uPerAE^WzOF*N3!yF zw0gMD#Cm+svsPMOW^kI3uR6zZHE^Tn{b}WOj$>!}>*$+2m*>P~p5eybaYN=A9y_OM z_%k@xAA_$l?t49cTZlnzmgBVZ4Bzvk_{%r2fBv=WwRHM*$dcd9dUfW{|6hH*GVenk zXwm(n?B)^?Jjf|CJgbW z#Ws*{*IXGh5|^Ecx5W?VB%z7H52FwYF`?==U$pR^_( zXlTB881>t%;?Jvg1bDfwi#phMRB+>Y$Ko@dM4!m}XqTArk!bvGa<6FkXrJ(XbV%&@ z=$Lr!qm#%tc?$cnt(ebnY9Dehf7e|+^J(lEwYr`7HHTkK_JQW$cL&`p_VkHH;P>8` zg*Y7(_tLcDT^`=?Y;2!s`r5I&#+X%Gm}tBWbTjC+>89MihjdA6b)KddFX&|s+FOD4 zR^aZXb8+Us;CWF^F9z~n7cc2eP8NY{rg1bG1+S_`u1t;zva^PF;*g(XF9%~gi2fDr zb)at(`-`V=J_TdO*!XS^#0Z^xDG^yhU-Hy?YC0rNsk!kRLXfBM(B(}Zzl3*B>Y z_8aR3u`qglkzVoL!~3o%53JfjoZnb%*KPXR0Ac}oZxvzA{SkSu)W8pri+`I3`c6%G zwFh)LPzzeA5u#=Uv4#>h%)tqtAf7P?r%~$`zFOQT0a(@nmeYWjIl#;8*dg3`Ynrbn z*CWm-5AP5oAmMzht`xZHkMAkausk#_e=zc$@cf}$<7lCa{Nab-5B+fk&#%ul^8wG9 zf4jYS%@^_R+%{2tJjpvS2-ji61rV-g^dnLG!}%NzQFJ zbq=&#<7uw`N^&^$InSBFuk6e?A&#Zg{;;P2k3Qre}LI;7J;_{$>@{dBYItr(ec<($3EC*U|9cSu&2Z5%&n` zasC?XWIT9O+$ua8pU;8^;>?DeFd^L(0#1Y15153-Fz?X?EXK?~b->iRjrAw@Zns{1 zemnKn(Ra!?=f^cnK2~DuN9y`j;EhNzqJlOy4`wW@pkLc;&j>b7_$>Tl)EKP ze(>T8+m9iRLX`nOcyJqH96wZTIdo>q1MvUL;QyDw`!9p{Uk2~L4Bmeky#F$I|K($d z!+^X4d^;6<8yPP*cVwyqzK~IFC;hTr$|;^Tu$KPEG!Gm8$jQV0cKaaW3kg3xU&znl z^XM-vlc<~gEOtY=G!6ARw;<+D7+jR?DSoQyYP3D{2cUtE0l!S2-NU36-RF&DpejFi zi2W6zKKrYX^l10@OuM9G?bFJ%Z@*s!zHOJ$zARnF`q{(DX21&gQZ@>llG%UCUd!0- z+d(6yhrZU1tMH-zcB~Ke$FM7SPf+p9>)?IKLFFSo%zO6Id9=CT+6-HT_7ZI+r2{E{ zCViP$r;GJ{60NW~sN48aU+16S2R*C+`RA$A&_*JCldhSE-f2IxZ;W9WZ4A;k%ipxi zgw*fGjzPnP``J$c#?q&Qe1_1E*hbp+VSCh>*jBN!L0TR3G{)ZheS{zL_y4Z~Kb#BS zf%CFe)lvtz)JJ={P@El1r5>w#7j$tQpQU&=OH8_RmRND8Ku*(CY7h5NJ)o@^M3(y; z&d2cVfwgu@;@qUh7|&)jH#a7Bu4{@}D_16t1e@$kZ_}N{YYGyT&C6hyKgO74(Cg!JKjJz*xu1_ah=ynf z3ptM^t;JtqY(8Xkp8cg=qoYnLDR zhV|E2H?4W}Uq7E*hPa}cqTec={PFM(0aNtHL?FL1uYckt5JVSjc?-b}tLDPT;j zBcEpchkEa0U&{B9Rr?#nAHZhBJ*n2*zrwvtkI4IB$ajlGYn^q^&(wZ6{0&98=SKP% zKau-|Y5O(?A8QBv4Kr{D0Pp=mE`>$-9C_-tohI#{{J<}ITl2Wr@mlho+X%a}y&^yF zT4DZ-Ys~*%l;3czc;!OCQRVe7n88g#K53r+LDDSPZvvjziqE{49L#&}BR)Ho_x{M~yu6R-S2&+H z-dG4qvA7PN60ba5GUarq+d?g2eWeIw(WWgacH=gs+4 ziPz@thkngFEXo_-O{~ZH$3pCzv7 z0~@}}z~p7vGxe?ixXx&}ny3f9luiS^74YZXPn-|$?e2#y=3jTBw|LE;!e{)S(dY3h zoVAB+8gdt1EE+1Ue-(E!EW(}AuO`d?=wGnU{c3ITng<~JUhU<4j;`y#bMU99TU928io%)vfufY#x0@mT+&2f~GKb#}ycSzbHOIn5bIC9;YwFRFX zXs8Dr(l3Hv@G=zNkHk`u=sX zZIF$%#c%&->VQ}W0{)1;8raS?Q-KWg>TAjBPYyueMV{KmSCXGjFYkd~P9(>p7q+A5 zDEt0*eA@C($KU4_egpJp zdMMXmH(e{O$KB4zw+!BP?McXX?h_VYek0yd4cqLCV{J1P--7jhd3&;auwL?lAm~Zj zIoCdrca-#H$?d~cFM+4)vZ&usTK^BdD1-gR-ofJe?}1;Ot0O<%D^`G?Gbj6rDtsSt zquqV@thVt>e#E-YdZX)Hko!Jmo?T+LBMxSN@3-HtPjo}?AP*n!902Ku?Q>k@D;&>h z(4CyuJ#S!-_PJsBu7?fi9?to(JpJEzH;8xAo*QuZ7c@;c@zpSjZi%JL8UBoZqH)H1 zA~n9a|3MsaKZQ6W?y$CopOf}Xsg#FxunqFW_QjI^Ed?0QH8uFpqVeo z{mHZVURpoYn^n|&5x z{Pb-WU9279xRl=@Grz(D-qQ*HpJ)XS?}L5?UDQ0}MmPfUp|*PBXwwOgFG6O}uTX@~ zm!(cN*|YQNB~`Asguro*4VqJ->X*+l+J*r8Lv ze+2q1^Az!W!Aj3Uv{#3H4z_;;`T^oFt`&;MWjWeGY79$S>%|Lmu{Q{LHGna`={|D% z2f!osi*pw9H{cF};i=HIprd#Wsd}D$j`|A?*Sbry=fu9X^tObFv!p+kcICqu(`Dcl z`V_`e^zp+ZC9=+vR<4cGap>E?{+tW@I@%8Wmr*n>@4w)ANcciD9TLATw59777CdCb zUI6w+t;hqcCG7h=7{42^_YfYm*9q?&a3=j>Jjnk8|03kX zXMyiY8@|Ur1-{VLur{fuK8$fdM+JO2r=pLi4AV{rJpj+;fTQprU>JB-{9eO|YkDDY zO}>9}6pVG7#C55xtMJI*N0gqT_)H;MPyZ=?Ls<|*tncgKBiN$^-Mu#VEc8tmd}&;p z)vyPYY{1=HgY=Q%{y@wnm1;ulVhZ{nboR^Fkyw--@5DThzSAhA}?olxx@6y;0$OUblds_`3ukY@Hf{9f4dYdD7a4`&=tJN&*6Up zzbqYc@_F)i;^J$-!;<0mdQIGM#`SHjs!#aWy=^r&UQg22E)mDk$5F`1XHDEcBX#WZ z##iHfMtLicpMcK`#SdXyGN1cb6V-T5J(G9hkt>gtUE8zybi_71WbWn`@2F<}ABs~KO{dS%^@HBSBi!q1dHIF7e7m-H}`#PQh_yPFr?|+Vc$HPfK{=^yg{XKdS%7=uPT$FMLZ*j%PA^Ydl<2s@`O)|U(x_+A z-aFnJOeLS6TZev5-qAF4>W(3d`5W$CnE#e>9el|?m#d`#Jp8(?|%kK_g zey822GlFs>`|fyaUm;^p5sQm9Q2sD2ELEr*~q}1 z#|H_=fji&2ruGy}&*?jxo@OiqaDn}#9ajMND+Lbu2HL=0c@j9goV*0OxgfkaYl8b~ zp+n$|%_6h;c+!nK)6Hhsarm@WElP;ISLbd3-ftJLy7S*ZYGrIh(8u2&Og0bfk~rwY z-nQoNPW^E67`~q2XSzIThq%@CNH3HLUmjJL2)rOPaTHS;nVVBw4SNvf7@g8-v{iac4<@(X(^}INzBy}+KtLZx`j$@rF zy1Sk_?&e)3)wsWYVa2f|ee%4&!rlBT@`N8p4wd7{L-5-dFF6|D{!`wkUe;N>@@TwR z?m3R%Utr9*GVs^){7~*uj$c3cDfO*8Hi1WL8}6uk%b2p6cU@!NErCiv*>CFv1s}8! zKL2q{xy*Pq%=+YfZT>lFEdQiDip~8&oHpPz#J+Z#oJ-!Yr}3?%0sd7Wl6B2j-%M)$a3j9J96s<95AM1nIaoUVF{|AD zM%=vmyv*4E*#&;lG-Ng(N$$zp554Rt_UTr7)L!!9{6jPk=M58g5K%*8vGgBQ#iYHln{4BUB}v=dL? z`KxC}pJm0I26e6uz(MkP+K{v*40-N;NoynGxMqr<^_EUg_VQc^&weQ0a=hw1cFOoblL+{MV!+FVktKh?g193xo-18~) zsA*T%*X!I_ziiZc2epDPWb+eUpJ%Gsr>_6RsJ;!@?RpL1`=H9hn`uw$hip%ce`B2< z6Wjd@yFJpkZpS$usqY~E#XvlxvkYm6{pmf4LK}YL_2<+_wNCGBOZGwi6LQM=oP7}Y z)IZq1o|YV6*E;Jo<&Bh(m0;`>DL;$iseO?lkC`QRsPj z;BTeVSH^b!^-<_Q{qgIdKWo)&#J~K~p_eY+k%zq->;;(26>uH8NF&yAdE>+2d0G#@ zs{&_n$a{7aiRtjC{Gf_K#><-q!AHEve?=H>ALhOs#yj454mEFiCPV4l zTBo4BDD1n^rlK95O*%j6SyL35$R~N+y7VY=^_gN3_rO*D_@*83xyyT-5trV_+~viH zeJjFQS=i+=C;U{IBW=oVH)PKw@gj0O{>V~!(O$IRA8}XXK8Qlt&!wW!2YdNxr8i6& zs;E7WJZQTtJR3pIwc!EiYm=bg3vqHgpM}a&)$T5ifXcRwVJRfte?}I;0i07*s@gDQOVgeVGF{CTllWE?A@5;vr9z98X z-Ca7V-)c6#4xRl-QpM*9 zXcMvp_w?EPkA0-XLtmr)Qy_EMn;xCdek%4mX{V<|;%j?hpCIn>QS61{J#+1yO};E) zhu8qyS8x__2rtWaGyI%(D&qlo&Y5GXMt)8A(ho4-U-=~-<(v;$%mq2#oTsMejDGF; z4cmB?dBW{y^nGOJydv>o0r7fV&R60OW8hqvOTB*LSCL2Vb8+VWFT&c8G-T7mhnO=+ z0rbZ*Dn}vn<4L-*%izugwEd!-H*;EQn3jT{=AS9B*w4&!tB~vLK#LfBA{j*=%(c7+ zpQ**C>+;3Qbv%D=RzIG!CLKWA$M;G)mF=%c(1%e!an(Ba`az6wSCtF(G>kcyDEgUs zZaZ=x?@6`*2h1hz2ki63X5`~W{zb%1A{ROM$XkzUTyZT>M^A~LM_$1?oQik2yC98A z=E>x{ZoDJi6rsHClXshtAL!pTsg>(0|7ddJ9X#he#ri$TtFS4V8~qiT&u=Bh!JL=m ziIZ`kqlw(;ouEf`Pr^$mLzppt^~`fW>Sg@__)R#Ee)u5r#d{AR_j1z0ekk&ZsOl&?T}UKOhqI3C zr--_ixw)tKlby)@^dsbcde$n|Iqt7Mk^J~$mEVj!faP_5`v$cqDg7?w37j8sMcH+h zwu$-kt;epjP3Ad9elJIxdyzBmCE4#oJ$uq+R<28zX?`NP2m9{qubb=3d~d61mm57k z7uuqq5__AV!H1B)ZW{6}KAU_B>w$R|s}TPVoPdY69Zd63b$`J_xRXegfeit?zgSg(m;jAC=BmfNHdqt92d5Fa40lO9 zFuxgdkEIq1_$aw93Vr15rzP%>@749mv(93_jcugoHu2*Jn0x&c`s3Vi#%j#mo`QVI zUSG@X^~LcP%Jt<(J*$B|7(+wZ!?~k<>3c={*GPwX zww_TxaT4z7KrUSOE;+9S;0+nxwjzPtmf&py_{7}ZXOoDltm51=cwdn?gx}VKoxts} zs?*4)M>^gE`o;S7@H=JYyNIh5=0iOfMl?NV)9NYYtJ89lc;|R$o?8Z5yc7JeAHF!? z%l)j(H#(Xh?#&-fiz^ZZ*AyLLo@(q@FJXTDRZk(0XJ)OhNI>5)nU8)MV5Rt{Di_Cd zdp;)lm|mNTj~$PfVm{3Ae*t(>V{KGpH4h|rp|0ufPg?jKO{0FP^Bv#ogzE? z>;sM|59%lOBd3%%9!KQgVKIW@uJ9Uy)mf5sY z2>twBAU$B&a%SiW2Go0UCN6%FGafj2X>g?>H+kI?v8hO*3?%X$OokMt#F7x~8e z{mFig7i(+3oPRdo*fnPU%Mzz>Pl%@VR{+{GvkzbzW>QGL@eXqT?RND_@4dd=A-8T5$JGeWG^F0eW zni<36>W(W%xtHv6q+zU^aeUo;nDKW@djn@ii?AmDEA;Sc>`$YgVeV05Y*IFGPa4l4 zA8w9e1|#?$*-sRP|a@Ba{d9=^OC)P)9dmdL61<4iN& zP1#Ldf0B3sdjFf&)Z1Qg==_(53vQzGpR{%Ul<4qL-)AlerSDIY`hNYyOD)v*sozuI zrw(U=rW-LXt}A}8!*}v1e&?PE*F3+M%CS?QuRuNO^Jd}_=oEMKjM3+h+4?-rGn&-p z0W+z$8_?+iUWpqx&Y;8J=3(A_=G^CgE$>&P{<3}2QRwhPeayArTzwuo{7O%?YdP!_ z=x7fXEzhCfJZuY zcFGd28|v3=Dh`g#EVEY9zc1sz}F1vCuXglY1 zI%|$A67Zv8EEyTkIr=e{nder5|3Y_eK9Jmi9NuQ@W7w;qEOY88W?~uo0PY|YRzsdq zA30bx4Ky$H6Yw-W=U33LEYr$!`3I}cLRY0cSb)2y$Okkm2;Ua)1U`FL>e#DeqP0I+ zaT|EQI5_tyz)I<}1GO2RZzlHQImgaiq`JNRvOa9>=Kf?e#!lThigHRX*ZQfMPEA>wg2EH~9fn-tym`Kcceeg{{}(bm9rB_?=5NJW{RtE0eN(1GALn?d zV!Vp3KG!1F;|?~=%`_fM7C{bY)76SZ32X*MSG2*D4zUNYA#M~+t$=@3=^B?X9_tGB zoFu-fH?V#1EVd850e2bzZ`nG+DZrBL_oJ>;Pbozm!g?R-IOQhCuXPp5Yw8qoE)$={ zy$FvdU&dIdQ?z0(*}5+9jJ}+x8qDKK7^UW$PXW^xE^_FXOez`)Ftf9l3q1j_hWSjx`8fSG9j< z22X>JC;RMr3}WWNZriEfQ^yGCv8nMy z?na*1KWFu!UHWBtpU|b*z1VwuB~D%G(rm`m+?6mJkJVX8est*dJItzb3-rWS+q;D8?m?jM!ejdkTBiHsILMhe_l5_PHNt`durTIKE`}5 z(AR{!0P|Av@E?HR74YYIcTiX69sy~Xd8)|sHSU%HW-^Cx$?kX~bid-6z0l1bjk^th zR=g=_0DEB#@J~GlzxL}_XnTORWE^g`{jsDKu_bZpznOE)_d+jz0q0K+;2d)kz8_D% zi~V3j41tD@LqA#k7V3{&4CzVtI){vG)BoO}G%Z_c3|#OjUPXQn>;qOPsm)8kRJckmkJzmw+Z z2PVDoT$ZLe?thJ?x1}RkyKd5(^1(Z41V;%5Z;V4=& zUyyeRk$!j{LEx^Ovxu>$OnOD}GQczwzo+q{=<=wWyg{EgCXdkbR(SmLI%jzc=Z{&Q zaMb6Iopltf^!mx3-{{y8O%K-JtdMy5i&1!S@-IXDgQaD!hRCQoP1P>?^i+BfzAJo!CB&0(`Jcf;IqB8dDt&EL~AeD z1IF@!rOy6dMy`8(&bR5`e)jjG^X%_0Bh(erb62-Ouywl7?k_ z?1SfTnU9b@^$qBYW%qe;R!hv@QG`31xUWpueuak87BF@O2*_0Nf8(@g8{nj?bAV zB3s_5@?+%9&)U(>jpdD!C$C+zKu=tQdi}vyfb}hwDmUu^s#iL1Tu%~ZyIEpqQ&v~^Jw{#nX@YIln2Di&E!X>{`TQGCws+s?z_DcMS#OsSyZs420c~2PNHAbHFrSd*Hmcm(F7vkZNU(CSTJ%zK%r&D== z3C?WZ^?$}0|I9c(b$+=!-ko}V#7ezCBJ-xz4##(;W_+|a)$ozE^v=XSoOwQ!+VRmz zoOwQ*DEnWuqtY zNoseM;%B?7nr|l$E(L!)UNu-qI56J35d8O?+if0$o^%c}qA+&a!GB4ACdO<6U#-Yd zhZr09id9T4Wci)d;@mXEY78Eeb3a_w_a7+FpSR`tiR3rez7hZR?FZnC%7Z=h7VM$2 z8P$keG{ht+&++`pg^eqr`=3Z2!T6LsUlBY12dbUHKhW~rl{g6;4u5W^c?f#}#VgCD zT-P>HX5Ab{etF;U>d(>tHDiYm-_4TePhor|;w#fnBBv91i3>O?{>gXahyGx!OsBu} z#1yee$@D^>lIex;!&9ag23|Z-==({-XkJqOO~`NX4_khphmG{3isZ+V?pE($K8!wm zr%ZHD;TYfV;~BPoJS!Aahe#{4#QA9_u@90;ec*-+2dxZPl;OnBIh>QX?jhaGw&~_v zeCN8iENkVt_>tgSpqq2f^Mw8Tr@G#3Y{&-x! z=UIT#>C0nFhRb55(_OK0Glj9ffEd~RChe*6vK0K8<%#l!U&Ogj&heR$XQ%MJbo%Dr zRO)B$;;$qVy1kLq=RgO{cW!!cf9?qLD;>GL3F~wUY}n&ClLou7`e+h&m7#r{-<!bs(#|}2YTvXO}0)fkMZ6K6Zz~ITh}L6`uYpZC48SJ-oqJzho08u zknaucy;}7yV8-(A;J118RI&x}2|_&dG|N-xtN>j+nQE;cPA#srewKjTHYKkFFRd}e z`yRJ=-P0%d9Ny1>Wk3ct}(JoEW@o@n&c z6y3YdbUlXHI^6jtUhlg;_*hG`aW39mO`i66(gfak4g~eUH=A~F{m11xYLa>?^kWl? zTkfZkzEq#5-R#p4XDzGumsn%!y%qUk!upeC+nvuKlR&%2tB%Rokv!Sy%D0*U^KkJtVlIF$lCEo$BARJtPr+M-Dq=dy}zzKQUoO{6LslQDA8hcVg zd~xU#=yjkqKFlNn?BMNg4 zS4rGy-0(@ts4W4!i^TbzMR;dj`z>J_XX(!2|DsIKra?Aw-sUdq=M&wNwz*N#b~nfF06kAr4Dh&O`|^B(AyNe2MmV^#0K z4q;u^!zbv+1>Ehf>cChk@SNv(@cCr(>4y@{C+iaX{yS})UEh@Z!{2#lyNU-bU)NJ# zme_YMa6J+C%%yRs=)n{#ZGKSb^GkkEjx#3Y2VVd`z&T~qQT*Vz%@0?AMv)=eZ@@46p(DI^lNUT4RwBU=$=q4R$ z-DKG)dBOTJF2R-`N@t_~HcUL!g~w zkfojroybAi1lhp+h$~swvskR0!Mo@dHckSM`Cjr+!G4Sp`AM5y7&HAMkQMIlCtKl% z=DkE{cacC|0-l*bthw~NFu!FgwG@8l#>5fYxNATo(5vWcc9-yc2Xcw8x(hm2X5H{E zm(uC8dXGWB(rXFthmK)A>9uLCT7Vo$-ZalD7^M%4XOI3rqkMR}jP;{ANz1keN9U;I zS;xKb$uftq9?LGoiCEA0w>zI<{{-`Wp=uZSAaTC{G)Fy)em~+->tDP6Kll{dNBb0r zk2m3efZyj|p2eDcu?l(_;^3K!dsBktiEFOWBC%SoQ_uk7FK587u*YMz9!*X~yT>Gt z?v!x1ux50A;tKej>2Icw%59V;oH>*^m%Yg2$oc5`aV`r0PmZ5{&SjvHefVu6o?h)| z7?7jX?^bxMd)|tBAcLAeB;C9PS|96^4q~r?&!zrdeF8D5^h;lcI68rNhlVHp*q?wO zb425Vc8fkAKiY?I66G+@G>^q^&;{50!^8WeKeey6f;J=8>pNKQh2n)l#Be7M{g!aO zRX@W8#7h)iD-wIJ32|mI{fX4^apvI){fQ-FXgc}sdg*)O9!h!Qe2PB6#kQ>g7(4wp zSbxpTL;dK4?XWe6U~3M+PQ45}^D@^YY|YECGcUu=ybRkloks~a>lN6XS739Fn;XJF zjEvO7PVRT;VY{J+?H^YUyNDd!^%HkH^e|OU@!eO(=wZh|e;GYY!{ow8+)F(LJe+jI zPvJXlvmrbmqFn}CZMfr~DPIm(9sB2JP2x?{7t0ZEEVJjIi6fWfMNi?L-Tg8qQ|l?) zhsnD&-t-zBo$r&lhQno*@>OdbXYQWS{VF?b#;K3H|xp)_IwU$mw zj2^f4-RpL)Ll&RDN}aJ3>+yKi%lJ-S^AbMU&XKFPhL0%E-Htj}Id;EA!;fol?7l|^ z7n^|Nqwa;H&XMUct2Nm<9LE~u`C|k4xend;sbS8e6Z3enY8SqvjjBF;%KN{iY*O+$ z-Ot(;kP$dvHfsMtzgN6s?AcfH(DVO$d`Pm%`L|Q{42!2&*2}BCYIpeAL1YXrZhKq`r(Du ze{H^CFyQyLheKPu!Oo5PvCwc#KgfN_K_CZ#90YO@$Uz_nfgA*K5XeCw2Z0;}auCQt zAP0dQ1ac6_K_CZ#90YO@$Uz_nfgA*K5XeCw2Z0;}auCQtAP0dQ1ac6_K_CZ#90YO@ z$Uz_nfgA*K5XeCw2Z0;}auCQtAP0dQ1ac6_K_CZ#90YO@$Uz_nfgA*K5XeCw2Z0;} zauCQtAP0dQ1ac6_K_CZ#90YO@$Uz_nfgA*K5XeCw2Z0;}auCQtAP0dQ1ac6_K_CZ# z90YO@$Uz_nfgA*K5XeCw2Z0;}auCQtAP0fpTL{dzM;5T!f<2MWNA!gU%h#;Ae@%_i z)b)rj*y%U$|DJ%+9ts=k0tKVP*X0ie!bYe&+8OGqG3LyQ%;60V)pmPbA@!x*7mTpY zyY1((Ktz6vhI?dJH|%F)C=?vix)3)k-`N!%r?{BqR~_H5UQc&)>?|-3Yt}a27vXX> zMH+&*G$P=4bypbOzD)sdq;p%qTUJ(P%vfZ&s>@^tE>~MePuJ#%_rXrT^;NuEgmArhwj9HNyV`*s1#!mEPUp@h7<8}yMLje#Qp+^GY z_F!mhjUmToY>Y(%5o2p-w8MS?L~ZKY5&#^+fv@$*TQ{bN%E~JI7x8scQ`PGmMr+91MkMbrcZ%#Ha^0E z2<{Kjv(83{6K}HI4KU|&;jJ+jWW6l_^wbk;_BbT&M!m1o?*mS@-p9 zSt`lEf%k9#q!|czhXYY>n=cZrBgNIT+cIOe;YyF+m}lJ0IY`2()(w0H`~kI+dWb%; zBIw)HsMcsx7nZi)Uf3>|JyV-@)4xfWuDjQ*UTxIjYfm>|!r^4-S3}5IuBTg6L*E^a#hU}q$X5xZO)=hZI_^>jsL3-#zl!r-R$GxXaX?%V?Ey=OiFFb4md z*910U8LgFg&I}RjHt35)yq!R&T%4PULp}n2F!|5WKUZoHC~oTrNEFz7p)0Tz54(MB zozWQjNY6|yfSb0j7Hqmfg)eX)Ly}^4<7l#pw1yjQxLUs)Xp4sIn`%}xv^1nc zE(Kvl#-y20yK6~L+vY&DrOYTd0A2M8m6PnQyue$s;w%K}}I zz?XQ#j{0-ijiMPRxuHGRra&~)i%TxD(T~(pbFMYe?+Q?#|I5B$R*Nnd7H)f|g}Z^k zJNf z#Jbv?PuAVH>c0CQxX)PIbnkr)tHHOLm&+C#maJ*vm$l39{W3q7tXsL9I0EW<)K)-)_t zU=(_Qv#`vg#w_3@X0V+tK3vANDHIO%;PS0NjV>nAkBnJj_#Tj4EEF*%a+yD$f`|Hs9dwU%j{uf#@9|R!b$XWg`rSw>H>NB zjdqA*SEMWhXVMAVrrKxgrm`!k1~x8Vy2@q*QZYnpGiOC+LfNENTA?^Wnc<3d`WMaW zkz;VVaHHA0dT4-P8D0`u#EZq?mE=SwIacn3qrs{u)~gp^D%-jhYt3$lt2MhW_@w>N zA>=_%;CIgUyy||nbhB7*b~VX1yLy5_XhBk5$Z>NOL)}nPBlC7_yDXS#mGXm6=GCK> z@v7tf*!EdNFZgll%ci(S_=j=#bb~&?O+(PzqtxM@Gk4D0Q8J>(2)Ss?o^8zB(uo#8 zhR^^5GaYT9{V+i+MW{a#)#J))7g)%&7ulwZQ$cdM%2CU^B@p%DaYlEP_6GFJ%~S-} zDl|IBP5r1jv^5aEza63^qlJ!A-#&x>qeh7NU>s77#yD?5f3o$P4E>EAmvc-vm8+^f z-lf;(4|Hp=0Zv_B*k@g#tzBL&#)wp*3NP4~LxFsLVGz9whg`<&q^;Ec|UL*BNtVP)z z;1;l8I)ZZJao*WDuf82NjF&PsP#NeBwRJ$l0@-a|&hM-7&K^?QF1FkMqnebEZa=gVT@dJ=MR`5;Xg*juG;HaBmsK7S12^Dk> z5I~+|?k!4(lfTy}xlL$|UtonT(6dHCJ|jIPcq-ShAM2UQuSNsjJ9}|7B8#i8SQz{+ z!=#i6B@szJv^Z;|OKtgDll9adza9r0n^&J{e$+VZHf~s2@=p*J3P`fryp~#13uyq$ z?w0ri`fl5-sD_}=&^>TU`|5+C8Hw<8qV>?I5(+l7_xc!E)+S>R3a9*J$)7z(0& zwY;n848mU>g;Tu{aD{F0MW=|3xDAvBz$Un1>Wylx4q%)!r0LMsNx?yeSWTJ;2HKTB%nB(9K%|y9$c&n)uUM! zr0)&`hPE-w^DSf8kchKPR;&iiVn(1ywlC>z1! zwkgfw&?B9G>NB#n8r(cA`&9s7$C$T#vbEC>h>V@F0|gSElIl^Ba3qaLcmi!2kS>=m z8rss?<_(5?e%EYLV!&HrYzb@$g=5}O*bkppI1uz%Tr2kCA@jN^{1hLgt3>|Iid6Ey zZ9R_P{9)^6OMP8)=wA$U8ST(2F>(9PfFs8jp$Bx9pDfcC-0F+L#>kRl8>th*H33b{ z6%9q*j zl%RIMH(EB2zNgG;y#+m@I~3`((#rw;wJYYJ8ihj(>Ly#|VDXoEpRE{6x0B+*a2kXq z3V>ob8fWu|J=$9x&lokt0SAMk*Y+mE|6!{F@WCz6bS!muFFZ9}A;-AO{l2KrTM4ca zhOc+-TwQw3Jn)a3(>;}65LX04>*~n>jC$k^+BMiN^~L+U0{6F%Dpz5kU;HoZWL^@! zpI(0JXDn~sdie;)(>FN{;a> zT5p5(>!+Ru56mp%?uB*>dK}Oo{0)!5-RFao=u48DuJLtk3K*Rcqbn3OeEOYZjB4FP zsF!%LIDGANPQc|`4cI_XV!UnLJ=jKwVgX~lENxx~ZQ2GZpv&qvr%wsD@zxCn9MC%` zwo=v!BX^W$cvHNAMlpZQ@vn!fr#Xx z#3Q|;WTBMBwguV30t5x@5p4r2T-sC8h`xn+0JE@gLQ%=|)3=Xv!#u<7K6fMW)ri>wK0I!TvRgp&TL>0`9tXh{I7Q(#>e{Y>y5 zRTx|O4bH|gLp}?@qeJEA)9S&82=33#+9@|Hhs9{XUOrhq6mXWjK~+dXpMG+4~`5 zs`YfSg3_G7{G|p19_3BcqU`c=j{qJ}KPJFstqLw!hAn^;)o#Q>J%&F-ZMF@5Si=Y1Gz!B$0QFMt2}NXyExs7#U8YN{v=|ia zXivBc{4E$Q7Ze`z4gZ}6&JzWxhm>@eCC6rK3yP_o#$$I*U-%BeH_{u!6btkXnj}dBy4qZ_>E@<={urUI5 zPyr}A9NI!a8Jn>1lo^12I_=HXTPkn3fPl`Z0hdZ78j%!l*Y|d|d(~5W0z|wG!+_O| z1qV`|vuF;80pJ33oDW$g{W}tX!v!`If*Qg`AQZIQqYDbr3*Z_c6Sbouw{GA=3WTBj zOIJG_9C$5jG{MDSs5@gR~o1_Z}>X-ChfX2Czr^?DvqRp7GF+dRexiW*nN4CsM*M*g(8pK)$@oRNV!%2?I zn{H981?sv1+zu3nvVk2-g&=|&c#n2ONIGhjg`qXT=O>#Y%Dd&vy{eiGcg#QCXNC&s z`$N0FErEI6A<38K(eUJE$5!fRAiAy$zgn8!$LN9jqed>hhpM!f4)u;e+h%t8Z|JWb zc1zG^UK%`NR6nxJzp)>f#~|0L_HZCjIl6uIj`QGpYJ>VE1%ir_GCD(T(V&jXQGify zyz&jl1vSxt`cLbcn`V-3B%mY4X0}GT8h}esb1^uTu;pp9H2lyLR|COTHO67VPYb=A z&8vMz>~3w63vedBNTgSGclu{m!UKq<4KC9ux9%Wav0Dh%H!~9TLp;osbKwur4@v`9 z5R)uUCsu{w548Jwf>G77E+u;vLU&~U6kmejLx)%wXoxcnSkPsZY~0!bwyJ28OiIxz z#i~#G9-KvGZLBmo9~XA;K--x)p-nGK$jOx{$Z#C`Img2FVhc>wx@t`cXjX`y3O-(-7ED7!n)d6r4Ir zY{D2a<3osns)+G@IS}3mk46+blHBIU)*mET1dF)~O!;m~Gw=tg0jORpjQMl%R7os3 z4mEKEjj48Q1U%3YkfXqG!m#=tQQSSlzonF0_Q$K2d7JKAyL?THcXiW}H4ST;mapXu ze2;_>4A_n67y=LdWzw$H2f5!ovudjZ#gQV#RJB{a{gG3L0&R!t5Hl+Fva&r?8B^pS31v?6B1 zHPfHJGa^+b=^$p4Y9U2>pg4s)v9d=|^A{ z-g3KKYT8O4mc*)*Oxcd2SoxKbG=~2HhBl0KdxRa_Z1X|Is-&+StW+^Q#T7`=@|9Qh zP3zB|zF0~@qAEgig*Wxk!va<-X$GPV!m6ERmx3{dLqQ-KPIxMGP#O>dh42$bnrLED z%grB>3cT9-34}q_K&4F%YD)T*^NnPdMAueI_Ar--ZH1}H={i}>$x13*Mplx`khDe) zfrVC9X{ed1?%`zFq*m08=YxnDJ=ovh=?Fca&P^M8xZrO*A4UZI{!hrB56r5tbZwmXk=LbfXem!4FC1rPS^^#{vp5#>} z!qn%r{m1}QX>3IyBa~tbLFhb303N5?Lre6#qlPS+ZU?%qbU$UZ1xo9H)F%9>Y|DCG z%#QLCLWZszkq)09{Ftma1m%mmEjD&T^I#oO+T-8@xGWtDuKVs^vmAQQmzP5u$jE0% zV$8+`F5E%`iwX`z0bRBc#+OO=H|45~$(K`UgJJ-X$bRK+pNxo-r6nU@8VZKOP|j_I z7uG&vaJY3C?}EM;jx)ZJ@~(~LP($fW5iMk;J>ZW)QSEFq5E>Fzq8)}Pqu1o206c{g zSo$UASI)2eqJnS`8-r~zul2>M_&f~PRt6Di!a#MRLcxtFFut_0R&7W~X*#bR zanvZl&LlC@NfUuaLHh{jA!MYA#0}&+iGY2;&9636@w?F%_8V)~t_9FIAlZRj09~Q3 zd87$=@(}3Uws{jmBVl{k5Cp~}-99){W#A%66J8Ct^*TCXk#z^cogoAQL*~bTPDI|x z4y5HmF`$S=t2xj6xqYRK0GqPxUgX+WMpzVl$}xjV!3M{JJNQ_J zGR909p{$#z;;}X9dZE3o0AT~b-sLe|fQha4f6Ap6qqoLy|QUSN6W`?Hlwf#k^0!j_&8 zsbwk${V4iZ9;~!K9-M`By{fA15Ag@Kz(l7Csmf*ef_|gtr}`(v0UCSHgWAWJJ0sj4 zSsR7o14ltLh5{~l9%~GV9@pK~6$|ELi?Fg%(Me`JkC4@%xatAxkP%Rf`GO#jo)bw@ z6uLfJ?UvI7&yR$(hXqiCf`Zq!Gjua}xN_)&8sw_Y_@r%^N%By;ER1C7Y$qxDd+<%o zibyA#^d^I`-10Hv1xJLJEnl{-+1qmes^$0LoKq--y@T*P9z>aw20c~lYR*))37(D- z+3{#p~*8(pVeFEK{iBv^*pPls5=*ogIp~W3Y-fJGIwJ zV;y9leX5DlNODix!KsQ%gve&Ss$KP1jdLmZF=IaLG08v;HWNXZrmgVG`sCXzr^d&? zjga&k0H5@ss+}#{d;x5vZbRP^NDi%G{sxzWJeLdxE<{(z%Lj1oZ$cyrMr7L{YE*ii zDOajm>NfJzJ~L?@K^{TRfE1+uG7lov-Xat%jU#WWl5%`XPKEJi>^+Tx2Ke&OF_t5S!O-JYnBzr3zW%YwPw9`wT}v)W&GI0(0J+M_nY;_wzK*}rO(n|7ueIyI>~CE73>af30@sg zzDZ;qVJsK0Uqy5LeY0+}=YEF6 z_y~CHDub|~PXhdvR;}&d(2jeuF1Q^aV7l*?bMA&$2w)(8NOzV6KOX{NBukJB24(Oc zwq0(p^yN^q#*gBT@qaqML0J^2!be+oj308d3(aA~k}Edq?Co9k_|B8!0vikT4#Yc#^!Y=R1~eVNb00Z z5RW3E9&G2Qbv6tDPS9YcC1tU5GYong4RGku!5A$t^`|v@FT5tON@1F)=Sm;M5`qHh zhbIHEHBh;fhhV&Rq%!Ai+u~^D#_Hf`T}}Xd_n5|cQ3S~w1CX8^sRx$31O|K)0&m6qs=FEF@0QHusT#` zumdRbDCL!|QAwAM_N5<4+6f322Kaf#iVA}a1+X{dxIGWmMmaEa7>u%3jP(*#IMkPh zx9m6FkfT4W`%UoGplx56C#zK-IxugZBMw2TP8f{Lp`x6{8+Rm-9li z0~dqojz+XU*w8LuUl%k(6-k9XZeS?96%H4o3SJ+WdR?J;Az1i`6O$fu91TvFSN$=V zQR=Hcggk=a71?n0ZVk+V%IXVp9@x26F%CXdXE1}atn@mQI3nN}kcZH>ArI_!ZTgo_ zxdeU({YlcZd$V&SjOovQ4hClbwIC>s1lJDt)h2tE#4Q|ZaE(CWb%Bnx-)Cc>tE~gO z=9^K%UeXFKUQ||1u93?NfR<=xG(g(0U(7D;^6GsitU=iI;4jxJgocxkjD{Y3c{+&= z*!5+(PzCgE zmBSRn;@NF`$7Wu{*B(Gv3XRlC+l2})Og60|&R}igBm=#Z7y$f|3UKy3)GM6CWh)ql zo(JiO{@v)-0F^^|f0izk&h7NzSIS(wYHtbxf z1`rCuGi#&}E#Cvc4(+L+4;liZxW?IIKofeRz-Z8CI}05mZ>vuo#brsK8jyrLxJi0L z2Xu&&xk8O6vyovR$cO)!ZeQsiXzzqYW-kGdoD_^{KAI)uFpsstK%kq_PbQAA$=#0N zpbY04;;@t+>FbIaaG2?}gz>>SfN9SJ99ep%WE}7X3k(*&y%9D~pRI;h)~1SbE80W= zB}2MV(5UQ8da)1}BA?nUlKGE%5MpB+&UQ_1ti>QRwtx|~^Sxb~{o3WzF`^hSwq@XA zb<`n!sd{NIOj!Gw*90Qag19Xrd9>c&!T!|}>bJhmEg;8AN>?yQ3|5BFkoKT_GnNKC zTGf;mf0xk$fo<=ojGYOvqzY$tiT;1y-Udpl>pBy?T?Ghrp?1q*GRm05Wd+4;8%b@O zIM^Xh{q-L-P|yuR0-2W7NJv7cEVU%$V7u)Qha|*mOGrYffp(%yGD?3BXinJ;nQ*I@ngj+o8s|!36C9|5}CSkwr&2<8^Ti z#ir>u_`&9NyEfgn^DfxXxR(dA!#%z*rMb`yhPH_8B81&h9A(K8gS?b|FqeM4{xgmKtZz4a^GIT?@J#F+>860^LR2y$ex zLTOh#vmH;=?tg%G28IC0v@geSJ1o#`q3MiYSWiX(y^uUDL30N}$=!giAKXTxiemw} z|K2T1KRu@%XiP0m4{LQv5^WSi2?jAl;3^^?Sg=1DGQ&M+w)#Nb1Mw$;XNN%tWRD-w}w~Sg!42F_;|)_5ryZw>@ZM#RxLzM zoIgVK(__884=YvJ_<0w0c=LiAKcbPKv#5T)sUK#_yPa-ocD{-6P&x7GCOe-sa{cFZ zGzzDd;*75K#r{yv=J|kIk>i||y4iUtOBc2x#O%7^>py>;&B*R$3EzdUPSJ4V;at9X z_R%@j0OkI`qjL{?HAp9pUt1k$FFP<+a~2KJf!i@J;C6;J9Jid4|0-X2M-oTF>|B^? z{(eeREt@C^0TdyI6E5*ERp<|z`51g2(082o+KEQQ@wsqT(=KVi*-*oA?aGbR_xK(I zTRL$PEVSbd?{#0Lbr1|wNU?g_o8`Bz97{-nxfno7-L@JK*n`e|^*4;%c2_7QIF8_g zfje-vL3cA+p!csZ>cD79Uc(m7H`(zN^l`W<(9d^a+2*=CYX4#3hH~WF;_a_3bk^J} z;8$H$7iV$3K%?_h=*#Mg4bD-)vI;r84hOJ0I3%qKaA6br-5BpZKZ67Lwc7@6UQ<}t-*-#bhHYgW z6=DeQ<@(9%aL5YB(gw2Et#N9MA2z{*Q3g{N+k|*3FU-8miDAaC2I*|aeOMmgD)E-i z8*cd2tvt=P(pJbnANjGx)~I|_$yl$&`pUreN;eh;^A9|58@F!QQzy^2J%EKABn<1p z?=VP|v+5K=%mfav1nbiVW*%pULx7h)c0BMfFEgOuj`s?vr_+RE{nM3!>As&3)1kyz z*@J)epdU?v+QV_Y1Nd`tzJ>9j?w%=@q2{2kw>NTOik-oJ7az_YqrX)zW;J!x_i4FaIYx)Ma4GiXstL2eVu7 z<<`&H1}&b6T~qj+rd+t#k4~?V+w6sQr6XWvFWjDFFXl$FH^`}}Hz$NyPYuo+0=c-3 z&UX7fcz*~3C|m{hhPnU&@)LIH@%^D2@gMz7dj9&)+x1g7l<%)}qwo9WvL;K!Ar5o; z^%|WUh7AyOn%Tx3I4Q-ETSuD_jIL})F|BIm*jaJ?`-$gmTd-(_OM*H+*6`SKG_Y~a zn*4^FF@D&&X6!G}DGQ%YqTZlkp#2}w+3G8=t6YCwg{PxEp)Q!@m_US?rG_m;(|xTv zxICQYEgxoG9pv?0=;HezT~l$6Z8M+_Q)}R;Bg8k!Wg=%` zs2|0uQiq(n++R0*JB^K9OaDU zda-Ojuw5?y?Zeje(34mkz*K%GZ#2Q4?rn+h**)2OskC9++I8DDPejF zyzw)i{G>@OX4u%I%Z-?DNAWsl@%}jl7)7B)N_ncJRTP3y~U-2=~$57Z0JMX>?+iGYu z`8Dg|Tf=+Sc^}Jt*l~+E@GT)i@@s<_xNn*6Eh+bq${cJ?OxOp0CLlyfew{ zPz_dsB?uGuue*Cjz4kiqQ*5YWd=Cc24$^IIoS4ooet>Tc`r0)x{WOp|EGOQz0~^zP zB>`6v+vJ9KihXH!wsMDF9<2BaL~R3<#KYU+9V^0!pxe8{Ir;dWz%?!m+=1RXJU|oT zCiI=2hv4pKeo;Rf@z&m-w~NeVh}}gB7dYHMr*CeqCQU=g#lxZQDT&>FF@_x;ptiE> z)LBARLH!6+H(r^w6B9QbwUYG=TaNXNZWn49R#Sa4QQoM~ZZ&ja6vTLz95+oB)A;fX z@WeOMV0r2pSKFH#=Hi9e_iFZpeNfd0?{l^biSS$`Zw~QpML#*ro$v+i3(@D6>jZ2% z(Qj71-sB5g3a}PruL2-nu*dP!6xr*tJ=;gtfJqMqG_2p^UKjhxgE{^Z(06eB>a#63hj2IH6PCq{XeH}C$A0dA9SPRV=caXo5{L2@VD0bp-)_V>0w zxGg-~{>yZ!QmYJnUdYoBmW1ZF!9K%ZYD1hH^>{di7T*WvmtQUK{H$Gl=60M3a=e?J zi@tW+!E{oMc^7vC)IvgeyoXXj{dTLrKZFHBKl0+e@Ii5;dG9)t<~om-VExONADvJw zg>lmyv*C6^##@CeH{LxK>kld#7g{M*I#L1) z{oA+;k{Px&f)CEi1z*PfG+ljw3ik(X+!f!D!%N!cTp)y-+Ty$gm!X&aAxj4<0&Wh6 zug)In!Wj;80i(pHKgA0sd8a3SYs7l6L7sK58{Ha--~DLf{NOHa zYM4)cYDFl&jXVB(9~2v|pWJ^3FaN>54BKAA-9r9TLgqBZ1%s?`+)IV2^v8J{71#4^ zZiiV2Ty^yLV!Z~p)L^#{YR|~G;r3g$^GEF7NTgkLf&hQde$Sa0l-PsVq{Lq&3MwG@ z;o$$m$|dql*G_^r3sfB;EWBo(9uytv*xNZq)y(5b>D z4JV z3lhpE+^+|&KQqejw=jUEhNmi;(RX4F!#-)w&vlM}WAE2`t(Zd@xgU@9Wi!^3ei zI7M6zs-8H%s^&TJ5KA#+!oBTSy~DYlhcKnYFKp1lrz!kTjc4i!5jpNBe;NY)y=I-j zmfJ$7Mu{MITmiS0y+-RxbHZyzEymx41J!W$@kh1UK(PZ?C1V~4(=67<^>p-- zRLNkF=?hh!B3b_C#ACBm0!8xoq?5PsRJ&5(F~K#>58llk1h?(lj$ft0y1SVT)n9~x4+5KCcHgmmI~GM@ z@Kfzji3GdEMN&TxIGB`Mw_8~2wA#=CpoRHs3ntc#{~q>*c*gBH$DT2zADjGdD>yLZQS?n2^yo>+WEK5y_9_uAHAyulsY{g&iEW zzJ&S+wPE#X^`Sf>Z7ZHD<@YR)MQvEBs+~k53j1!%l+rIU`M8i>eYfpR;%I?aA0jrw zO=n)Wd%54seDK&zL`!SCt@v|zG2Xan0$xfTzJ)W~nIwiCV-JIYD+Snc{~wQLxNqn>sC zTS_12lii?ScW~EO9c}jEPh*pY?Tx^l&3urj&|fSsxD5F2UEW#ha@pd5@oWx|^Gxu>Nn~eP@p?D_|%u7IB+JY5VPWV+-4g8$NwQ z=k=fYn7>3(yR(m4zO*5lw>#hRp+zl*T_Ze%^Y5|-Sgrv!*Z>O`IVSn-X+SsD0DDf@ z68+`E@QZq%x)Lt~-~8ZXSC6%S>jRIsJ#p26MNej)YJK|3gA1Rz;?RO;=a0`joIa8| z+LGRux^RAW=G^qzsWYcvKlR$HKREgQ?^#*r=?B-6WxhsOhtjd~3rp5RPT2AU-JmdE zQT96CAuN=E{PqY-raLBVaf07-!jg6OVgu}z2H3?0*kxfM4d!Vfe^3sOExPx%Wv|YE zrPLM`7UY33-42B(^RTi3R&Ia|3rnWATi6H_UE9`)^tzMj9aMO-4qs@1oe=gC`QTyx zP6^8rz(ed!Vfzhn>>Xjb1lFGRFG+b_Dl91rD;i+^!jg3~)Bqc4fbA2uGLe_@26U6c zlJ)XZ9Ua?qO4thW>$3JNhWcgr+X`PoStuNBxwG{`DN|^@P{<%Ipljyg1J8>K@X^&) zzUN4)Fg~yAXiNUt`2&a3eY5M%u1-BVRuMHOudH}NMs*7 z`L@bFX74?mUZrUH+2|z7ds$_B2W5@=+REFHwrsiZC6ptd89Lh1eId^Ff_&*ns_$sa z8kQ4zIg;uHGi0@Nq0e$RZ~@sq+OpN7G|2h6nc4Hm>d{SQ#)~KYO9z z9FMl3AvnK{s~{koAJzM)0!Z=6s!@>XcIkbLU}RBm9-s3A9~FQm?_XZpQK zgZeEYle6b9tPPZLF1-$%EDy2Bbf4>DR1&Vj%XzE20xA%RXI3G#t=16!)v*ft@ynD` zJeRJ*M{ir@J{09h3evU3%h48<+A8a;jms)2c&iX4t5b(v{#HM8MgGu&{ACk4w^1xNl4F1)Fg34vt+MJPOdW%*2=RfH-)?W2NMn>?S- z&mKvY&Py0kv0dj-@U9?Jvps<`%U?}$K^}>QlI4+7rhBT(+r4T-bhn;C3D2ya$`k88 z(=|mMzmm2Gp3VLzT8h7AVUxsI80%DRLr`NkwME?v@)yqAc(hw|VN4{y{lb#t$Aqwh z<$My^B6vlCCLRgMi&)jkBgu+)ayl$LhIu{jgb`8Fh z=Vf6l@g8;8@?@OF92f9p?bGwtAuMSFtQ5v}=fk+=26V#>`0Z{$x4!}1gs?$N!P7V< zten7Ju8T_>bw=1Y>Dbm(5k(4QkG1w%3FPby>^qPwT0}y~AwPm_l!9!msgZ{jqRo*O z56j*!>pM>J-KcOPv@ZMqFZTnb7lN(g&$AYj*Hqz97SXP$LcXFtW1pQg?fZF$<&qs#zeuMy`g;6 zDa9Z+sY0w&@)?t}kz_hS&brzzwH$3hU91abw)y6SXpb|6Udiy0R1dR3jWv*vVYbuB zkQd95x6>QKMibcE!a^H&B5ctIoWOK#>2MmBQd^F)gJGtKv|t8eJVI%T7hqmG@0{Xn z7H`Vnps*2QsE0yZC&&E)SfG8;rWj4zI<2q;mqzEcU-5z*vu-DZRmdwT$6d?^8X%uR z^|K|Si1AK}{!P+{x{dYwrdY&E88o0vTT}w+LRKE0#i0$UD`5SGR_u*q&Xh24w?!~w zIh`(LFm036GX1jnTqZN7ALL~aahT0ghB@b(4KaLSlzoa9>M;jwTv&U^6Gv_3sf@~8 zeK@@aMvEk1<{UD{ZxbEq!xxF{ZQYj}QWPIb4L4G0!}u;7li48S%*lQ8D_*>lsy z3=AQDM;ZCOjHn$~;{(qd{IE97L6a6K9I)Lf95k%r*3G#s2)x^IWEphDk8WE4cn!-EMgyH=bzFN^Oovgz5Fr59FDxu598yE!ay>8F;if%XQ z@R0XbVf_SF%^idGDBSV^5-Y#39OK}z@(a@+!(ObT%Yyb5VFwt|+ro3Y(N!gRT@nr7 z`S9<&e`T+cf(*N+4r3md38OsL+nNmTf0uBkvs2-F86Qs;|3`%l5=f4(((2^AGAXMH3qfzvf4cG_rivg_GwBh4Y;c|MoY) zhJ>v&DyJI}c1+l2{M{#P1^cLvnFEk#juM=#+VHDkgF|PY&JBVkOg#0Fsr%YTX|>PrvyKVt+03_`Jd|<2{~3*jx_A4A`-=$P7!GWXAgq#kIO}{SotKUCsM9WD47j zAKusF@a2G(DtwaRG)&yM=`sVH)|?N#MOvc%>h-o&@suuoATeL2yQenYIpO09xACJd z)Cr7U#AW>BN&fLXzS_n!?-BmayYOGiG(Ln6JiGbf{kVq>2{$K;8jrCh(OEeg1CNETVn=aT$;Lp@Y=^-Bu3@gc4!52rl7p>S(Ij^SoUn*r4};gc>*qhvju z^LfNIOc>7#{7B3r+}c`$YH&Xh^lzAfne3Mp@1K&^-hW0~jB;G@8rc`i5I&>u=R+Ad zr|E7RYoQGTVH}LRjLXxaA15J92YxiD=Vk8^-v2J)l&75vA0q#*wn^qe0%bNUC7W43 zAi5msdTQHyC7@#pU+QB3rW2-L;OXU1iTMJ}O4_qwhPXbwLWd##WyL>5{-JF#=6c(5 zj_7U6wIJqa=}(ZbdA*br-bnr!e^}u;GN~&M!}q=i|K}9WvP0L`^dFYzC51o7aLn6L z0i0t|B^EJ9g)hO(YXW5P4Tb`-0I@5aE_$l@~5xeZ$(%GfGzYKOuTs$HgQP9*J%; zKab)5Xv^&v&}>+`vvI_mpGFayk0T9-8N5c6|2M^F($@13_*Cn`h48#%m8I<@bim_n zAm04V59S}cIzQH)|JDccPh6Ehuqgjz1}<-{RoH4rYT|qO@8?hEe~^DIe=7fa{*1Zi zxp3erWcJ+D=~s*3`F_^qk!EW0d*46#gV#>Ie&+1-jE{u}vdA!=QGTp#tAMIs>el4( zSe5}^KeC5w#+6f93yvf&S;VgizpQZ9Z=?8&KjQHl$@5|aEmyedYnNxsSHEzVL)5X& zlx#L_bBmn{-`fHvsjVh>~nt_)*vQ*q3q&?`L>C_V^f` z1vI4aQM{wBN13OiEoe>{EA&~B$6nEtoTjFKGyFM)4>G*YHe&yKN#Xk$ZvAgY_i#kR6lD_vUo%<5<7uTlT$IS1#-Eziy`Vq9c#cIfgNVcE7+h+9@1(8u4Iwr@|Zc4ThKBBfO$;%fsrqWgJs@iJ53H22UzH$M9Gl zUEWx4Clx-)_F-S3tz#>*(3B;pCCJ~MXslrE6tPX9Em}oC2HZSozP6}OUraW$*D)c8 z9X}ehNlxK8hS$x#Ssz315k9JL)%P4-HKFiEwjpKzMBpFFdlc4<59A{#n7Y2p-&>-! zx{b$Sue)~eTJ%%+z*8bGJjAlXsHgZ4TP}?6eE7Gw0o~TX�WP(je|$VVw!OgAM3j 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 literal 624648 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 m|Bv2BvB$WVB>!02pD&^TcDDa6{if{~Z Date: Wed, 2 Mar 2022 16:32:16 +0800 Subject: [PATCH 118/125] cmd/compile: use shlx&shrx instruction for GOAMD64>=v3 The SHRX/SHLX instruction can take any general register as the shift count operand, and can read source from memory. This CL introduces some operators to combine load and shift to one instruction. For #47120 Change-Id: I13b48f53c7d30067a72eb2c8382242045dead36a Reviewed-on: https://go-review.googlesource.com/c/go/+/385174 Reviewed-by: Keith Randall Trust: Cherry Mui --- src/cmd/compile/internal/amd64/ssa.go | 17 ++ .../compile/internal/ssa/addressingmodes.go | 16 ++ src/cmd/compile/internal/ssa/gen/AMD64.rules | 3 + src/cmd/compile/internal/ssa/gen/AMD64Ops.go | 29 +- src/cmd/compile/internal/ssa/opGen.go | 272 ++++++++++++++++++ src/cmd/compile/internal/ssa/rewriteAMD64.go | 88 ++++++ test/codegen/bmi.go | 16 ++ 7 files changed, 436 insertions(+), 5 deletions(-) diff --git a/src/cmd/compile/internal/amd64/ssa.go b/src/cmd/compile/internal/amd64/ssa.go index 27acd8c899..d34fdc611b 100644 --- a/src/cmd/compile/internal/amd64/ssa.go +++ b/src/cmd/compile/internal/amd64/ssa.go @@ -280,6 +280,23 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) { p.To.Reg = v.Reg() p.SetFrom3Reg(v.Args[1].Reg()) + case ssa.OpAMD64SHLXLload, ssa.OpAMD64SHLXQload, + ssa.OpAMD64SHRXLload, ssa.OpAMD64SHRXQload: + p := opregreg(s, v.Op.Asm(), v.Reg(), v.Args[1].Reg()) + m := obj.Addr{Type: obj.TYPE_MEM, Reg: v.Args[0].Reg()} + ssagen.AddAux(&m, v) + p.SetFrom3(m) + + case ssa.OpAMD64SHLXLloadidx1, ssa.OpAMD64SHLXLloadidx4, ssa.OpAMD64SHLXLloadidx8, + ssa.OpAMD64SHRXLloadidx1, ssa.OpAMD64SHRXLloadidx4, ssa.OpAMD64SHRXLloadidx8, + ssa.OpAMD64SHLXQloadidx1, ssa.OpAMD64SHLXQloadidx8, + ssa.OpAMD64SHRXQloadidx1, ssa.OpAMD64SHRXQloadidx8: + p := opregreg(s, v.Op.Asm(), v.Reg(), v.Args[2].Reg()) + m := obj.Addr{Type: obj.TYPE_MEM} + memIdx(&m, v) + ssagen.AddAux(&m, v) + p.SetFrom3(m) + case ssa.OpAMD64DIVQU, ssa.OpAMD64DIVLU, ssa.OpAMD64DIVWU: // Arg[0] (the dividend) is in AX. // Arg[1] (the divisor) can be in any other register. diff --git a/src/cmd/compile/internal/ssa/addressingmodes.go b/src/cmd/compile/internal/ssa/addressingmodes.go index 1baf143869..28fa86cd64 100644 --- a/src/cmd/compile/internal/ssa/addressingmodes.go +++ b/src/cmd/compile/internal/ssa/addressingmodes.go @@ -340,6 +340,22 @@ var combine = map[[2]Op]Op{ [2]Op{OpAMD64DIVSDload, OpAMD64LEAQ1}: OpAMD64DIVSDloadidx1, [2]Op{OpAMD64DIVSDload, OpAMD64LEAQ8}: OpAMD64DIVSDloadidx8, + [2]Op{OpAMD64SHLXLload, OpAMD64ADDQ}: OpAMD64SHLXLloadidx1, + [2]Op{OpAMD64SHLXQload, OpAMD64ADDQ}: OpAMD64SHLXQloadidx1, + [2]Op{OpAMD64SHRXLload, OpAMD64ADDQ}: OpAMD64SHRXLloadidx1, + [2]Op{OpAMD64SHRXQload, OpAMD64ADDQ}: OpAMD64SHRXQloadidx1, + + [2]Op{OpAMD64SHLXLload, OpAMD64LEAQ1}: OpAMD64SHLXLloadidx1, + [2]Op{OpAMD64SHLXLload, OpAMD64LEAQ4}: OpAMD64SHLXLloadidx4, + [2]Op{OpAMD64SHLXLload, OpAMD64LEAQ8}: OpAMD64SHLXLloadidx8, + [2]Op{OpAMD64SHLXQload, OpAMD64LEAQ1}: OpAMD64SHLXQloadidx1, + [2]Op{OpAMD64SHLXQload, OpAMD64LEAQ8}: OpAMD64SHLXQloadidx8, + [2]Op{OpAMD64SHRXLload, OpAMD64LEAQ1}: OpAMD64SHRXLloadidx1, + [2]Op{OpAMD64SHRXLload, OpAMD64LEAQ4}: OpAMD64SHRXLloadidx4, + [2]Op{OpAMD64SHRXLload, OpAMD64LEAQ8}: OpAMD64SHRXLloadidx8, + [2]Op{OpAMD64SHRXQload, OpAMD64LEAQ1}: OpAMD64SHRXQloadidx1, + [2]Op{OpAMD64SHRXQload, OpAMD64LEAQ8}: OpAMD64SHRXQloadidx8, + // 386 [2]Op{Op386MOVBload, Op386ADDL}: Op386MOVBloadidx1, [2]Op{Op386MOVWload, Op386ADDL}: Op386MOVWloadidx1, diff --git a/src/cmd/compile/internal/ssa/gen/AMD64.rules b/src/cmd/compile/internal/ssa/gen/AMD64.rules index d70ccb99e2..d50bdf2a17 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64.rules +++ b/src/cmd/compile/internal/ssa/gen/AMD64.rules @@ -2251,3 +2251,6 @@ && mergePoint(b,x0,x1) != nil && clobber(x0, x1, sh) => @mergePoint(b,x0,x1) (MOVBEQload [i] {s} p1 mem) + +(SHL(Q|L) l:(MOV(Q|L)load [off] {sym} ptr mem) x) && buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l) => (SHLX(Q|L)load [off] {sym} ptr x mem) +(SHR(Q|L) l:(MOV(Q|L)load [off] {sym} ptr mem) x) && buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l) => (SHRX(Q|L)load [off] {sym} ptr x mem) diff --git a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go index 8cd930ffa6..d760d7d79e 100644 --- a/src/cmd/compile/internal/ssa/gen/AMD64Ops.go +++ b/src/cmd/compile/internal/ssa/gen/AMD64Ops.go @@ -141,11 +141,13 @@ func init() { readflags = regInfo{inputs: nil, outputs: gponly} flagsgpax = regInfo{inputs: nil, clobbers: ax, outputs: []regMask{gp &^ ax}} - gpload = regInfo{inputs: []regMask{gpspsbg, 0}, outputs: gponly} - gp21load = regInfo{inputs: []regMask{gp, gpspsbg, 0}, outputs: gponly} - gploadidx = regInfo{inputs: []regMask{gpspsbg, gpsp, 0}, outputs: gponly} - gp21loadidx = regInfo{inputs: []regMask{gp, gpspsbg, gpsp, 0}, outputs: gponly} - gp21pax = regInfo{inputs: []regMask{gp &^ ax, gp}, outputs: []regMask{gp &^ ax}, clobbers: ax} + gpload = regInfo{inputs: []regMask{gpspsbg, 0}, outputs: gponly} + gp21load = regInfo{inputs: []regMask{gp, gpspsbg, 0}, outputs: gponly} + gploadidx = regInfo{inputs: []regMask{gpspsbg, gpsp, 0}, outputs: gponly} + gp21loadidx = regInfo{inputs: []regMask{gp, gpspsbg, gpsp, 0}, outputs: gponly} + gp21pax = regInfo{inputs: []regMask{gp &^ ax, gp}, outputs: []regMask{gp &^ ax}, clobbers: ax} + gp21shxload = regInfo{inputs: []regMask{gpspsbg, gp, 0}, outputs: gponly} + gp21shxloadidx = regInfo{inputs: []regMask{gpspsbg, gpsp, gp, 0}, outputs: gponly} gpstore = regInfo{inputs: []regMask{gpspsbg, gpsp, 0}} gpstoreconst = regInfo{inputs: []regMask{gpspsbg, 0}} @@ -935,6 +937,23 @@ func init() { {name: "MOVBELstore", argLength: 3, reg: gpstore, asm: "MOVBEL", aux: "SymOff", typ: "Mem", faultOnNilArg0: true, symEffect: "Write"}, // swap and store 4 bytes in arg1 to arg0+auxint+aux. arg2=mem {name: "MOVBEQload", argLength: 2, reg: gpload, asm: "MOVBEQ", aux: "SymOff", typ: "UInt64", faultOnNilArg0: true, symEffect: "Read"}, // load and swap 8 bytes from arg0+auxint+aux. arg1=mem {name: "MOVBEQstore", argLength: 3, reg: gpstore, asm: "MOVBEQ", aux: "SymOff", typ: "Mem", faultOnNilArg0: true, symEffect: "Write"}, // swap and store 8 bytes in arg1 to arg0+auxint+aux. arg2=mem + + // CPUID feature: BMI2. + {name: "SHLXLload", argLength: 3, reg: gp21shxload, asm: "SHLXL", aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // *(arg0+auxint+aux) << arg1, arg2=mem, shift amount is mod 32 + {name: "SHLXQload", argLength: 3, reg: gp21shxload, asm: "SHLXQ", aux: "SymOff", typ: "Uint64", faultOnNilArg0: true, symEffect: "Read"}, // *(arg0+auxint+aux) << arg1, arg2=mem, shift amount is mod 64 + {name: "SHRXLload", argLength: 3, reg: gp21shxload, asm: "SHRXL", aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // unsigned *(arg0+auxint+aux) >> arg1, arg2=mem, shift amount is mod 32 + {name: "SHRXQload", argLength: 3, reg: gp21shxload, asm: "SHRXQ", aux: "SymOff", typ: "Uint64", faultOnNilArg0: true, symEffect: "Read"}, // unsigned *(arg0+auxint+aux) >> arg1, arg2=mem, shift amount is mod 64 + + {name: "SHLXLloadidx1", argLength: 4, reg: gp21shxloadidx, asm: "SHLXL", scale: 1, aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // *(arg0+1*arg1+auxint+aux) << arg2, arg3=mem, shift amount is mod 32 + {name: "SHLXLloadidx4", argLength: 4, reg: gp21shxloadidx, asm: "SHLXL", scale: 4, aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // *(arg0+4*arg1+auxint+aux) << arg2, arg3=mem, shift amount is mod 32 + {name: "SHLXLloadidx8", argLength: 4, reg: gp21shxloadidx, asm: "SHLXL", scale: 8, aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // *(arg0+8*arg1+auxint+aux) << arg2, arg3=mem, shift amount is mod 32 + {name: "SHLXQloadidx1", argLength: 4, reg: gp21shxloadidx, asm: "SHLXQ", scale: 1, aux: "SymOff", typ: "Uint64", faultOnNilArg0: true, symEffect: "Read"}, // *(arg0+1*arg1+auxint+aux) << arg2, arg3=mem, shift amount is mod 64 + {name: "SHLXQloadidx8", argLength: 4, reg: gp21shxloadidx, asm: "SHLXQ", scale: 8, aux: "SymOff", typ: "Uint64", faultOnNilArg0: true, symEffect: "Read"}, // *(arg0+8*arg1+auxint+aux) << arg2, arg3=mem, shift amount is mod 64 + {name: "SHRXLloadidx1", argLength: 4, reg: gp21shxloadidx, asm: "SHRXL", scale: 1, aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // unsigned *(arg0+1*arg1+auxint+aux) >> arg2, arg3=mem, shift amount is mod 32 + {name: "SHRXLloadidx4", argLength: 4, reg: gp21shxloadidx, asm: "SHRXL", scale: 4, aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // unsigned *(arg0+4*arg1+auxint+aux) >> arg2, arg3=mem, shift amount is mod 32 + {name: "SHRXLloadidx8", argLength: 4, reg: gp21shxloadidx, asm: "SHRXL", scale: 8, aux: "SymOff", typ: "Uint32", faultOnNilArg0: true, symEffect: "Read"}, // unsigned *(arg0+8*arg1+auxint+aux) >> arg2, arg3=mem, shift amount is mod 32 + {name: "SHRXQloadidx1", argLength: 4, reg: gp21shxloadidx, asm: "SHRXQ", scale: 1, aux: "SymOff", typ: "Uint64", faultOnNilArg0: true, symEffect: "Read"}, // unsigned *(arg0+1*arg1+auxint+aux) >> arg2, arg3=mem, shift amount is mod 64 + {name: "SHRXQloadidx8", argLength: 4, reg: gp21shxloadidx, asm: "SHRXQ", scale: 8, aux: "SymOff", typ: "Uint64", faultOnNilArg0: true, symEffect: "Read"}, // unsigned *(arg0+8*arg1+auxint+aux) >> arg2, arg3=mem, shift amount is mod 64 } var AMD64blocks = []blockData{ diff --git a/src/cmd/compile/internal/ssa/opGen.go b/src/cmd/compile/internal/ssa/opGen.go index 9e18d2af90..005a033a40 100644 --- a/src/cmd/compile/internal/ssa/opGen.go +++ b/src/cmd/compile/internal/ssa/opGen.go @@ -1050,6 +1050,20 @@ const ( OpAMD64MOVBELstore OpAMD64MOVBEQload OpAMD64MOVBEQstore + OpAMD64SHLXLload + OpAMD64SHLXQload + OpAMD64SHRXLload + OpAMD64SHRXQload + OpAMD64SHLXLloadidx1 + OpAMD64SHLXLloadidx4 + OpAMD64SHLXLloadidx8 + OpAMD64SHLXQloadidx1 + OpAMD64SHLXQloadidx8 + OpAMD64SHRXLloadidx1 + OpAMD64SHRXLloadidx4 + OpAMD64SHRXLloadidx8 + OpAMD64SHRXQloadidx1 + OpAMD64SHRXQloadidx8 OpARMADD OpARMADDconst @@ -13896,6 +13910,264 @@ var opcodeTable = [...]opInfo{ }, }, }, + { + name: "SHLXLload", + auxType: auxSymOff, + argLen: 3, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHLXL, + reg: regInfo{ + inputs: []inputInfo{ + {1, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHLXQload", + auxType: auxSymOff, + argLen: 3, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHLXQ, + reg: regInfo{ + inputs: []inputInfo{ + {1, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHRXLload", + auxType: auxSymOff, + argLen: 3, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHRXL, + reg: regInfo{ + inputs: []inputInfo{ + {1, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHRXQload", + auxType: auxSymOff, + argLen: 3, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHRXQ, + reg: regInfo{ + inputs: []inputInfo{ + {1, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHLXLloadidx1", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHLXL, + scale: 1, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHLXLloadidx4", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHLXL, + scale: 4, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHLXLloadidx8", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHLXL, + scale: 8, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHLXQloadidx1", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHLXQ, + scale: 1, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHLXQloadidx8", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHLXQ, + scale: 8, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHRXLloadidx1", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHRXL, + scale: 1, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHRXLloadidx4", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHRXL, + scale: 4, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHRXLloadidx8", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHRXL, + scale: 8, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHRXQloadidx1", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHRXQ, + scale: 1, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, + { + name: "SHRXQloadidx8", + auxType: auxSymOff, + argLen: 4, + faultOnNilArg0: true, + symEffect: SymRead, + asm: x86.ASHRXQ, + scale: 8, + reg: regInfo{ + inputs: []inputInfo{ + {2, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + {1, 49151}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 R15 + {0, 4295032831}, // AX CX DX BX SP BP SI DI R8 R9 R10 R11 R12 R13 g R15 SB + }, + outputs: []outputInfo{ + {0, 49135}, // AX CX DX BX BP SI DI R8 R9 R10 R11 R12 R13 R15 + }, + }, + }, { name: "ADD", diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index 92a8594ff1..addfaaa3a8 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -24641,6 +24641,28 @@ func rewriteValueAMD64_OpAMD64SHLL(v *Value) bool { v.AddArg2(x, v0) return true } + // match: (SHLL l:(MOVLload [off] {sym} ptr mem) x) + // cond: buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l) + // result: (SHLXLload [off] {sym} ptr x mem) + for { + l := v_0 + if l.Op != OpAMD64MOVLload { + break + } + off := auxIntToInt32(l.AuxInt) + sym := auxToSym(l.Aux) + mem := l.Args[1] + ptr := l.Args[0] + x := v_1 + if !(buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l)) { + break + } + v.reset(OpAMD64SHLXLload) + v.AuxInt = int32ToAuxInt(off) + v.Aux = symToAux(sym) + v.AddArg3(ptr, x, mem) + return true + } return false } func rewriteValueAMD64_OpAMD64SHLLconst(v *Value) bool { @@ -24875,6 +24897,28 @@ func rewriteValueAMD64_OpAMD64SHLQ(v *Value) bool { v.AddArg2(x, v0) return true } + // match: (SHLQ l:(MOVQload [off] {sym} ptr mem) x) + // cond: buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l) + // result: (SHLXQload [off] {sym} ptr x mem) + for { + l := v_0 + if l.Op != OpAMD64MOVQload { + break + } + off := auxIntToInt32(l.AuxInt) + sym := auxToSym(l.Aux) + mem := l.Args[1] + ptr := l.Args[0] + x := v_1 + if !(buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l)) { + break + } + v.reset(OpAMD64SHLXQload) + v.AuxInt = int32ToAuxInt(off) + v.Aux = symToAux(sym) + v.AddArg3(ptr, x, mem) + return true + } return false } func rewriteValueAMD64_OpAMD64SHLQconst(v *Value) bool { @@ -25204,6 +25248,28 @@ func rewriteValueAMD64_OpAMD64SHRL(v *Value) bool { v.AddArg2(x, v0) return true } + // match: (SHRL l:(MOVLload [off] {sym} ptr mem) x) + // cond: buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l) + // result: (SHRXLload [off] {sym} ptr x mem) + for { + l := v_0 + if l.Op != OpAMD64MOVLload { + break + } + off := auxIntToInt32(l.AuxInt) + sym := auxToSym(l.Aux) + mem := l.Args[1] + ptr := l.Args[0] + x := v_1 + if !(buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l)) { + break + } + v.reset(OpAMD64SHRXLload) + v.AuxInt = int32ToAuxInt(off) + v.Aux = symToAux(sym) + v.AddArg3(ptr, x, mem) + return true + } return false } func rewriteValueAMD64_OpAMD64SHRLconst(v *Value) bool { @@ -25426,6 +25492,28 @@ func rewriteValueAMD64_OpAMD64SHRQ(v *Value) bool { v.AddArg2(x, v0) return true } + // match: (SHRQ l:(MOVQload [off] {sym} ptr mem) x) + // cond: buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l) + // result: (SHRXQload [off] {sym} ptr x mem) + for { + l := v_0 + if l.Op != OpAMD64MOVQload { + break + } + off := auxIntToInt32(l.AuxInt) + sym := auxToSym(l.Aux) + mem := l.Args[1] + ptr := l.Args[0] + x := v_1 + if !(buildcfg.GOAMD64 >= 3 && canMergeLoad(v, l) && clobber(l)) { + break + } + v.reset(OpAMD64SHRXQload) + v.AuxInt = int32ToAuxInt(off) + v.Aux = symToAux(sym) + v.AddArg3(ptr, x, mem) + return true + } return false } func rewriteValueAMD64_OpAMD64SHRQconst(v *Value) bool { diff --git a/test/codegen/bmi.go b/test/codegen/bmi.go index 0c25e0b796..2908d1b796 100644 --- a/test/codegen/bmi.go +++ b/test/codegen/bmi.go @@ -45,3 +45,19 @@ func blsr32(x int32) int32 { // amd64/v3:"BLSRL" return x & (x - 1) } + +func shlrx64(x []uint64, i int, s uint64) uint64 { + // amd64/v3: `SHRXQ\t[A-Z]+[0-9]*, \([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*8\), [A-Z]+[0-9]*` + s = x[i] >> i + // amd64/v3: `SHLXQ\t[A-Z]+[0-9]*, 8\([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*8\), [A-Z]+[0-9]*` + s = x[i+1] << s + return s +} + +func shlrx32(x []uint32, i int, s uint32) uint32 { + // amd64/v3: `SHRXL\t[A-Z]+[0-9]*, \([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*4\), [A-Z]+[0-9]*` + s = x[i] >> i + // amd64/v3: `SHLXL\t[A-Z]+[0-9]*, 4\([A-Z]+[0-9]*\)\([A-Z]+[0-9]*\*4\), [A-Z]+[0-9]*` + s = x[i+1] << s + return s +} From 11ec59a60e0d18e805b7f0c3a2c5ee8c10481877 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 31 Mar 2022 20:41:12 -0700 Subject: [PATCH 119/125] unsafe: document that Sizeof includes field alignment Fixes #52018 Change-Id: I6d06d5b5279b9bdc899b0ad43488577d3c0b94be Reviewed-on: https://go-review.googlesource.com/c/go/+/397516 Trust: Ian Lance Taylor Reviewed-by: Emmanuel Odeke Reviewed-by: Rob Pike --- src/unsafe/unsafe.go | 1 + 1 file changed, 1 insertion(+) diff --git a/src/unsafe/unsafe.go b/src/unsafe/unsafe.go index 4a3d7feda7..ae69dea4af 100644 --- a/src/unsafe/unsafe.go +++ b/src/unsafe/unsafe.go @@ -187,6 +187,7 @@ type Pointer *ArbitraryType // The size does not include any memory possibly referenced by x. // For instance, if x is a slice, Sizeof returns the size of the slice // descriptor, not the size of the memory referenced by the slice. +// For a struct, the size includes any padding introduced by field alignment. // The return value of Sizeof is a Go constant. func Sizeof(x ArbitraryType) uintptr From ef5505335432572678c19e202e0edde61b7c5b95 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 25 Mar 2022 13:22:55 -0400 Subject: [PATCH 120/125] make.bash: disable GOEXPERIMENT when using bootstrap toolchain When using Go 1.4 this doesn't matter, but when using Go 1.17, the bootstrap toolchain will complain about unknown GOEXPERIMENT settings. Clearly GOEXPERIMENT is for the toolchain being built, not the bootstrap. Already submitted as CL 395879 on the dev.boringcrypto branch, but needed on master to set up GOEXPERIMENT=boringcrypto builder ahead of merge. For #51940. Change-Id: Ib6a4099cca799b4d5df1974cdb5471adb0fd557d Reviewed-on: https://go-review.googlesource.com/c/go/+/397894 Trust: Russ Cox Run-TryBot: Russ Cox TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/make.bash | 4 ++-- src/make.bat | 1 + src/make.rc | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/make.bash b/src/make.bash index 31387da33c..e517a1bda9 100755 --- a/src/make.bash +++ b/src/make.bash @@ -193,7 +193,7 @@ fi # Get the exact bootstrap toolchain version to help with debugging. # We clear GOOS and GOARCH to avoid an ominous but harmless warning if # the bootstrap doesn't support them. -GOROOT_BOOTSTRAP_VERSION=$(GOOS= GOARCH= $GOROOT_BOOTSTRAP/bin/go version | sed 's/go version //') +GOROOT_BOOTSTRAP_VERSION=$(GOOS= GOARCH= GOEXPERIMENT= $GOROOT_BOOTSTRAP/bin/go version | sed 's/go version //') echo "Building Go cmd/dist using $GOROOT_BOOTSTRAP. ($GOROOT_BOOTSTRAP_VERSION)" if $verbose; then echo cmd/dist @@ -204,7 +204,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then exit 1 fi rm -f cmd/dist/dist -GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist +GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist # -e doesn't propagate out of eval, so check success by hand. eval $(./cmd/dist/dist env -p || echo FAIL=true) diff --git a/src/make.bat b/src/make.bat index 56da417dd1..c2f87ace75 100644 --- a/src/make.bat +++ b/src/make.bat @@ -100,6 +100,7 @@ set GOROOT=%GOROOT_BOOTSTRAP% set GOOS= set GOARCH= set GOBIN= +set GOEXPERIMENT= set GO111MODULE=off "%GOROOT_BOOTSTRAP%\bin\go.exe" build -o cmd\dist\dist.exe .\cmd\dist endlocal diff --git a/src/make.rc b/src/make.rc index 066c3ab323..273d151190 100755 --- a/src/make.rc +++ b/src/make.rc @@ -88,7 +88,7 @@ if(~ $GOROOT_BOOTSTRAP $GOROOT){ echo 'Building Go cmd/dist using '^$GOROOT_BOOTSTRAP if(~ $#vflag 1) echo cmd/dist -GOROOT=$GOROOT_BOOTSTRAP GOOS='' GOARCH='' GO111MODULE=off $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist +GOROOT=$GOROOT_BOOTSTRAP GOOS='' GOARCH='' GOEXPERIMENT='' GO111MODULE=off $GOROOT_BOOTSTRAP/bin/go build -o cmd/dist/dist ./cmd/dist eval `{./cmd/dist/dist env -9} if(~ $#vflag 1) From 5c4ed73f1c3f2052d8f60ce5ed45d9d4f9686331 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Fri, 25 Mar 2022 13:22:57 -0400 Subject: [PATCH 121/125] internal/goexperiment: add GOEXPERIMENT=boringcrypto Not hooked up to everything else yet. Copy of CL 395880, for setting up GOEXPERIMENT=boringcrypto builder ahead of merge. For #51940. Change-Id: If842761f77d07329d88748990b95f4b39c2f153a Reviewed-on: https://go-review.googlesource.com/c/go/+/397895 Trust: Russ Cox Run-TryBot: Russ Cox TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- src/internal/goexperiment/exp_boringcrypto_off.go | 9 +++++++++ src/internal/goexperiment/exp_boringcrypto_on.go | 9 +++++++++ src/internal/goexperiment/flags.go | 1 + 3 files changed, 19 insertions(+) create mode 100644 src/internal/goexperiment/exp_boringcrypto_off.go create mode 100644 src/internal/goexperiment/exp_boringcrypto_on.go diff --git a/src/internal/goexperiment/exp_boringcrypto_off.go b/src/internal/goexperiment/exp_boringcrypto_off.go new file mode 100644 index 0000000000..020c75bd53 --- /dev/null +++ b/src/internal/goexperiment/exp_boringcrypto_off.go @@ -0,0 +1,9 @@ +// Code generated by mkconsts.go. DO NOT EDIT. + +//go:build !goexperiment.boringcrypto +// +build !goexperiment.boringcrypto + +package goexperiment + +const BoringCrypto = false +const BoringCryptoInt = 0 diff --git a/src/internal/goexperiment/exp_boringcrypto_on.go b/src/internal/goexperiment/exp_boringcrypto_on.go new file mode 100644 index 0000000000..1454329a46 --- /dev/null +++ b/src/internal/goexperiment/exp_boringcrypto_on.go @@ -0,0 +1,9 @@ +// Code generated by mkconsts.go. DO NOT EDIT. + +//go:build goexperiment.boringcrypto +// +build goexperiment.boringcrypto + +package goexperiment + +const BoringCrypto = true +const BoringCryptoInt = 1 diff --git a/src/internal/goexperiment/flags.go b/src/internal/goexperiment/flags.go index 558b02607e..20d9c2da5d 100644 --- a/src/internal/goexperiment/flags.go +++ b/src/internal/goexperiment/flags.go @@ -58,6 +58,7 @@ type Flags struct { FieldTrack bool PreemptibleLoops bool StaticLockRanking bool + BoringCrypto bool // Unified enables the compiler's unified IR construction // experiment. From 0b3cb1a56cde72066645a182c93bd710708c45f5 Mon Sep 17 00:00:00 2001 From: Jared Horvat Date: Mon, 4 Apr 2022 18:07:01 +0000 Subject: [PATCH 122/125] doc/go_spec.html: update type identity example In the Type identity section, the example provides various types as givens. The example refers to the type *T5, but it is not provided in the givens. I am assuming this was a typo, and was meant to refer to *A1 or *B1. *B1 seems to be in alignment with the rest of the provided examples. Change-Id: I554319ee8bca185c3643559321417e8b2a544ba0 GitHub-Last-Rev: e80560d32abcb36c51554606beb09a53d45f0062 GitHub-Pull-Request: golang/go#52143 Reviewed-on: https://go-review.googlesource.com/c/go/+/398075 Reviewed-by: Robert Griesemer Trust: Ian Lance Taylor --- doc/go_spec.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/go_spec.html b/doc/go_spec.html index 9da1f6ad99..b496e9e48f 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1880,7 +1880,7 @@ A4, func(int, float64) *[]string, and A5 B0 and C0 D0[int, string] and E0 []int and []int -struct{ a, b *T5 } and struct{ a, b *T5 } +struct{ a, b *B5 } and struct{ a, b *B5 } func(x int, y float64) *[]string, func(int, float64) (result *[]string), and A5
From cd33b4089caf362203cd749ee1b3680b72a8c502 Mon Sep 17 00:00:00 2001 From: Xiaodong Liu Date: Wed, 30 Mar 2022 16:52:59 +0800 Subject: [PATCH 123/125] debug: define ELF relocation for loong64 Contributors to the loong64 port are: Weining Lu Lei Wang Lingqin Gong Xiaolin Zhao Meidan Li Xiaojuan Zhai Qiyuan Pu Guoqi Chen This port has been updated to Go 1.15.6: https://github.com/loongson/go For #46229 Change-Id: I0c58305754c20d2a59328adbd82caa527de254ec Reviewed-on: https://go-review.googlesource.com/c/go/+/396735 Reviewed-by: Ian Lance Taylor Trust: Cherry Mui --- api/next/46229.txt | 105 ++++++++++++++++++++++++++++++++++++++ src/debug/elf/elf.go | 114 ++++++++++++++++++++++++++++++++++++++++++ src/debug/elf/file.go | 50 ++++++++++++++++++ 3 files changed, 269 insertions(+) create mode 100644 api/next/46229.txt diff --git a/api/next/46229.txt b/api/next/46229.txt new file mode 100644 index 0000000000..ebaaefda55 --- /dev/null +++ b/api/next/46229.txt @@ -0,0 +1,105 @@ +pkg debug/elf, const EM_LOONGARCH = 258 #46229 +pkg debug/elf, const EM_LOONGARCH Machine #46229 +pkg debug/elf, const R_LARCH_32 = 1 #46229 +pkg debug/elf, const R_LARCH_32 R_LARCH #46229 +pkg debug/elf, const R_LARCH_64 = 2 #46229 +pkg debug/elf, const R_LARCH_64 R_LARCH #46229 +pkg debug/elf, const R_LARCH_ADD16 = 48 #46229 +pkg debug/elf, const R_LARCH_ADD16 R_LARCH #46229 +pkg debug/elf, const R_LARCH_ADD24 = 49 #46229 +pkg debug/elf, const R_LARCH_ADD24 R_LARCH #46229 +pkg debug/elf, const R_LARCH_ADD32 = 50 #46229 +pkg debug/elf, const R_LARCH_ADD32 R_LARCH #46229 +pkg debug/elf, const R_LARCH_ADD64 = 51 #46229 +pkg debug/elf, const R_LARCH_ADD64 R_LARCH #46229 +pkg debug/elf, const R_LARCH_ADD8 = 47 #46229 +pkg debug/elf, const R_LARCH_ADD8 R_LARCH #46229 +pkg debug/elf, const R_LARCH_COPY = 4 #46229 +pkg debug/elf, const R_LARCH_COPY R_LARCH #46229 +pkg debug/elf, const R_LARCH_IRELATIVE = 12 #46229 +pkg debug/elf, const R_LARCH_IRELATIVE R_LARCH #46229 +pkg debug/elf, const R_LARCH_JUMP_SLOT = 5 #46229 +pkg debug/elf, const R_LARCH_JUMP_SLOT R_LARCH #46229 +pkg debug/elf, const R_LARCH_MARK_LA = 20 #46229 +pkg debug/elf, const R_LARCH_MARK_LA R_LARCH #46229 +pkg debug/elf, const R_LARCH_MARK_PCREL = 21 #46229 +pkg debug/elf, const R_LARCH_MARK_PCREL R_LARCH #46229 +pkg debug/elf, const R_LARCH_NONE = 0 #46229 +pkg debug/elf, const R_LARCH_NONE R_LARCH #46229 +pkg debug/elf, const R_LARCH_RELATIVE = 3 #46229 +pkg debug/elf, const R_LARCH_RELATIVE R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_ADD = 35 #46229 +pkg debug/elf, const R_LARCH_SOP_ADD R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_AND = 36 #46229 +pkg debug/elf, const R_LARCH_SOP_AND R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_ASSERT = 30 #46229 +pkg debug/elf, const R_LARCH_SOP_ASSERT R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_IF_ELSE = 37 #46229 +pkg debug/elf, const R_LARCH_SOP_IF_ELSE R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_NOT = 31 #46229 +pkg debug/elf, const R_LARCH_SOP_NOT R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_0_10_10_16_S2 = 45 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_0_10_10_16_S2 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_0_5_10_16_S2 = 44 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_0_5_10_16_S2 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_12 = 40 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_12 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_16 = 41 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_16 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_16_S2 = 42 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_16_S2 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_5 = 38 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_10_5 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_5_20 = 43 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_S_5_20 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_U = 46 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_U R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_U_10_12 = 39 #46229 +pkg debug/elf, const R_LARCH_SOP_POP_32_U_10_12 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_ABSOLUTE = 23 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_ABSOLUTE R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_DUP = 24 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_DUP R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_GPREL = 25 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_GPREL R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_PCREL = 22 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_PCREL R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_PLT_PCREL = 29 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_PLT_PCREL R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_TLS_GD = 28 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_TLS_GD R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_TLS_GOT = 27 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_TLS_GOT R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_TLS_TPREL = 26 #46229 +pkg debug/elf, const R_LARCH_SOP_PUSH_TLS_TPREL R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_SL = 33 #46229 +pkg debug/elf, const R_LARCH_SOP_SL R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_SR = 34 #46229 +pkg debug/elf, const R_LARCH_SOP_SR R_LARCH #46229 +pkg debug/elf, const R_LARCH_SOP_SUB = 32 #46229 +pkg debug/elf, const R_LARCH_SOP_SUB R_LARCH #46229 +pkg debug/elf, const R_LARCH_SUB16 = 53 #46229 +pkg debug/elf, const R_LARCH_SUB16 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SUB24 = 54 #46229 +pkg debug/elf, const R_LARCH_SUB24 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SUB32 = 55 #46229 +pkg debug/elf, const R_LARCH_SUB32 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SUB64 = 56 #46229 +pkg debug/elf, const R_LARCH_SUB64 R_LARCH #46229 +pkg debug/elf, const R_LARCH_SUB8 = 52 #46229 +pkg debug/elf, const R_LARCH_SUB8 R_LARCH #46229 +pkg debug/elf, const R_LARCH_TLS_DTPMOD32 = 6 #46229 +pkg debug/elf, const R_LARCH_TLS_DTPMOD32 R_LARCH #46229 +pkg debug/elf, const R_LARCH_TLS_DTPMOD64 = 7 #46229 +pkg debug/elf, const R_LARCH_TLS_DTPMOD64 R_LARCH #46229 +pkg debug/elf, const R_LARCH_TLS_DTPREL32 = 8 #46229 +pkg debug/elf, const R_LARCH_TLS_DTPREL32 R_LARCH #46229 +pkg debug/elf, const R_LARCH_TLS_DTPREL64 = 9 #46229 +pkg debug/elf, const R_LARCH_TLS_DTPREL64 R_LARCH #46229 +pkg debug/elf, const R_LARCH_TLS_TPREL32 = 10 #46229 +pkg debug/elf, const R_LARCH_TLS_TPREL32 R_LARCH #46229 +pkg debug/elf, const R_LARCH_TLS_TPREL64 = 11 #46229 +pkg debug/elf, const R_LARCH_TLS_TPREL64 R_LARCH #46229 +pkg debug/elf, method (R_LARCH) GoString() string #46229 +pkg debug/elf, method (R_LARCH) String() string #46229 +pkg debug/elf, type R_LARCH int #46229 diff --git a/src/debug/elf/elf.go b/src/debug/elf/elf.go index 4c51bc4de2..5b2e6d9d3f 100644 --- a/src/debug/elf/elf.go +++ b/src/debug/elf/elf.go @@ -384,6 +384,7 @@ const ( EM_RISCV Machine = 243 /* RISC-V */ EM_LANAI Machine = 244 /* Lanai 32-bit processor */ EM_BPF Machine = 247 /* Linux BPF – in-kernel virtual machine */ + EM_LOONGARCH Machine = 258 /* LoongArch */ /* Non-standard or deprecated. */ EM_486 Machine = 6 /* Intel i486. */ @@ -575,6 +576,7 @@ var machineStrings = []intName{ {243, "EM_RISCV"}, {244, "EM_LANAI"}, {247, "EM_BPF"}, + {258, "EM_LOONGARCH"}, /* Non-standard or deprecated. */ {6, "EM_486"}, @@ -2150,6 +2152,118 @@ var rmipsStrings = []intName{ func (i R_MIPS) String() string { return stringName(uint32(i), rmipsStrings, false) } func (i R_MIPS) GoString() string { return stringName(uint32(i), rmipsStrings, true) } +// Relocation types for LARCH. +type R_LARCH int + +const ( + R_LARCH_NONE R_LARCH = 0 + R_LARCH_32 R_LARCH = 1 + R_LARCH_64 R_LARCH = 2 + R_LARCH_RELATIVE R_LARCH = 3 + R_LARCH_COPY R_LARCH = 4 + R_LARCH_JUMP_SLOT R_LARCH = 5 + R_LARCH_TLS_DTPMOD32 R_LARCH = 6 + R_LARCH_TLS_DTPMOD64 R_LARCH = 7 + R_LARCH_TLS_DTPREL32 R_LARCH = 8 + R_LARCH_TLS_DTPREL64 R_LARCH = 9 + R_LARCH_TLS_TPREL32 R_LARCH = 10 + R_LARCH_TLS_TPREL64 R_LARCH = 11 + R_LARCH_IRELATIVE R_LARCH = 12 + R_LARCH_MARK_LA R_LARCH = 20 + R_LARCH_MARK_PCREL R_LARCH = 21 + R_LARCH_SOP_PUSH_PCREL R_LARCH = 22 + R_LARCH_SOP_PUSH_ABSOLUTE R_LARCH = 23 + R_LARCH_SOP_PUSH_DUP R_LARCH = 24 + R_LARCH_SOP_PUSH_GPREL R_LARCH = 25 + R_LARCH_SOP_PUSH_TLS_TPREL R_LARCH = 26 + R_LARCH_SOP_PUSH_TLS_GOT R_LARCH = 27 + R_LARCH_SOP_PUSH_TLS_GD R_LARCH = 28 + R_LARCH_SOP_PUSH_PLT_PCREL R_LARCH = 29 + R_LARCH_SOP_ASSERT R_LARCH = 30 + R_LARCH_SOP_NOT R_LARCH = 31 + R_LARCH_SOP_SUB R_LARCH = 32 + R_LARCH_SOP_SL R_LARCH = 33 + R_LARCH_SOP_SR R_LARCH = 34 + R_LARCH_SOP_ADD R_LARCH = 35 + R_LARCH_SOP_AND R_LARCH = 36 + R_LARCH_SOP_IF_ELSE R_LARCH = 37 + R_LARCH_SOP_POP_32_S_10_5 R_LARCH = 38 + R_LARCH_SOP_POP_32_U_10_12 R_LARCH = 39 + R_LARCH_SOP_POP_32_S_10_12 R_LARCH = 40 + R_LARCH_SOP_POP_32_S_10_16 R_LARCH = 41 + R_LARCH_SOP_POP_32_S_10_16_S2 R_LARCH = 42 + R_LARCH_SOP_POP_32_S_5_20 R_LARCH = 43 + R_LARCH_SOP_POP_32_S_0_5_10_16_S2 R_LARCH = 44 + R_LARCH_SOP_POP_32_S_0_10_10_16_S2 R_LARCH = 45 + R_LARCH_SOP_POP_32_U R_LARCH = 46 + R_LARCH_ADD8 R_LARCH = 47 + R_LARCH_ADD16 R_LARCH = 48 + R_LARCH_ADD24 R_LARCH = 49 + R_LARCH_ADD32 R_LARCH = 50 + R_LARCH_ADD64 R_LARCH = 51 + R_LARCH_SUB8 R_LARCH = 52 + R_LARCH_SUB16 R_LARCH = 53 + R_LARCH_SUB24 R_LARCH = 54 + R_LARCH_SUB32 R_LARCH = 55 + R_LARCH_SUB64 R_LARCH = 56 +) + +var rlarchStrings = []intName{ + {0, "R_LARCH_NONE"}, + {1, "R_LARCH_32"}, + {2, "R_LARCH_64"}, + {3, "R_LARCH_RELATIVE"}, + {4, "R_LARCH_COPY"}, + {5, "R_LARCH_JUMP_SLOT"}, + {6, "R_LARCH_TLS_DTPMOD32"}, + {7, "R_LARCH_TLS_DTPMOD64"}, + {8, "R_LARCH_TLS_DTPREL32"}, + {9, "R_LARCH_TLS_DTPREL64"}, + {10, "R_LARCH_TLS_TPREL32"}, + {11, "R_LARCH_TLS_TPREL64"}, + {12, "R_LARCH_IRELATIVE"}, + {20, "R_LARCH_MARK_LA"}, + {21, "R_LARCH_MARK_PCREL"}, + {22, "R_LARCH_SOP_PUSH_PCREL"}, + {23, "R_LARCH_SOP_PUSH_ABSOLUTE"}, + {24, "R_LARCH_SOP_PUSH_DUP"}, + {25, "R_LARCH_SOP_PUSH_GPREL"}, + {26, "R_LARCH_SOP_PUSH_TLS_TPREL"}, + {27, "R_LARCH_SOP_PUSH_TLS_GOT"}, + {28, "R_LARCH_SOP_PUSH_TLS_GD"}, + {29, "R_LARCH_SOP_PUSH_PLT_PCREL"}, + {30, "R_LARCH_SOP_ASSERT"}, + {31, "R_LARCH_SOP_NOT"}, + {32, "R_LARCH_SOP_SUB"}, + {33, "R_LARCH_SOP_SL"}, + {34, "R_LARCH_SOP_SR"}, + {35, "R_LARCH_SOP_ADD"}, + {36, "R_LARCH_SOP_AND"}, + {37, "R_LARCH_SOP_IF_ELSE"}, + {38, "R_LARCH_SOP_POP_32_S_10_5"}, + {39, "R_LARCH_SOP_POP_32_U_10_12"}, + {40, "R_LARCH_SOP_POP_32_S_10_12"}, + {41, "R_LARCH_SOP_POP_32_S_10_16"}, + {42, "R_LARCH_SOP_POP_32_S_10_16_S2"}, + {43, "R_LARCH_SOP_POP_32_S_5_20"}, + {44, "R_LARCH_SOP_POP_32_S_0_5_10_16_S2"}, + {45, "R_LARCH_SOP_POP_32_S_0_10_10_16_S2"}, + {46, "R_LARCH_SOP_POP_32_U"}, + {47, "R_LARCH_ADD8"}, + {48, "R_LARCH_ADD16"}, + {49, "R_LARCH_ADD24"}, + {50, "R_LARCH_ADD32"}, + {51, "R_LARCH_ADD64"}, + {52, "R_LARCH_SUB8"}, + {53, "R_LARCH_SUB16"}, + {54, "R_LARCH_SUB24"}, + {55, "R_LARCH_SUB32"}, + {56, "R_LARCH_SUB64"}, +} + +func (i R_LARCH) String() string { return stringName(uint32(i), rlarchStrings, false) } +func (i R_LARCH) GoString() string { return stringName(uint32(i), rlarchStrings, true) } + // Relocation types for PowerPC. // // Values that are shared by both R_PPC and R_PPC64 are prefixed with diff --git a/src/debug/elf/file.go b/src/debug/elf/file.go index 5f339596a7..6bfcd2a3f8 100644 --- a/src/debug/elf/file.go +++ b/src/debug/elf/file.go @@ -633,6 +633,8 @@ func (f *File) applyRelocations(dst []byte, rels []byte) error { return f.applyRelocationsMIPS(dst, rels) case f.Class == ELFCLASS64 && f.Machine == EM_MIPS: return f.applyRelocationsMIPS64(dst, rels) + case f.Class == ELFCLASS64 && f.Machine == EM_LOONGARCH: + return f.applyRelocationsLOONG64(dst, rels) case f.Class == ELFCLASS64 && f.Machine == EM_RISCV: return f.applyRelocationsRISCV64(dst, rels) case f.Class == ELFCLASS64 && f.Machine == EM_S390: @@ -1006,6 +1008,54 @@ func (f *File) applyRelocationsMIPS64(dst []byte, rels []byte) error { return nil } +func (f *File) applyRelocationsLOONG64(dst []byte, rels []byte) error { + // 24 is the size of Rela64. + if len(rels)%24 != 0 { + return errors.New("length of relocation section is not a multiple of 24") + } + + symbols, _, err := f.getSymbols(SHT_SYMTAB) + if err != nil { + return err + } + + b := bytes.NewReader(rels) + var rela Rela64 + + for b.Len() > 0 { + binary.Read(b, f.ByteOrder, &rela) + var symNo uint64 + var t R_LARCH + symNo = rela.Info >> 32 + t = R_LARCH(rela.Info & 0xffff) + + if symNo == 0 || symNo > uint64(len(symbols)) { + continue + } + sym := &symbols[symNo-1] + if !canApplyRelocation(sym) { + continue + } + + switch t { + case R_LARCH_64: + if rela.Off+8 >= uint64(len(dst)) || rela.Addend < 0 { + continue + } + val64 := sym.Value + uint64(rela.Addend) + f.ByteOrder.PutUint64(dst[rela.Off:rela.Off+8], val64) + case R_LARCH_32: + if rela.Off+4 >= uint64(len(dst)) || rela.Addend < 0 { + continue + } + val32 := uint32(sym.Value) + uint32(rela.Addend) + f.ByteOrder.PutUint32(dst[rela.Off:rela.Off+4], val32) + } + } + + return nil +} + func (f *File) applyRelocationsRISCV64(dst []byte, rels []byte) error { // 24 is the size of Rela64. if len(rels)%24 != 0 { From 4aacb7ff0f103d95a724a91736823f44aa599634 Mon Sep 17 00:00:00 2001 From: Roland Shoemaker Date: Wed, 2 Mar 2022 11:01:18 -0800 Subject: [PATCH 124/125] crypto/x509: add CertPool.Equal Fixes #46057 Change-Id: Id3af101c54108d6fd5b65946c4358872358eefcc Reviewed-on: https://go-review.googlesource.com/c/go/+/388915 Trust: Roland Shoemaker Run-TryBot: Roland Shoemaker TryBot-Result: Gopher Robot Reviewed-by: Damien Neil --- src/crypto/x509/cert_pool.go | 13 +++++++ src/crypto/x509/cert_pool_test.go | 58 +++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 src/crypto/x509/cert_pool_test.go diff --git a/src/crypto/x509/cert_pool.go b/src/crypto/x509/cert_pool.go index 873ffeee1d..ae43c84424 100644 --- a/src/crypto/x509/cert_pool.go +++ b/src/crypto/x509/cert_pool.go @@ -249,3 +249,16 @@ func (s *CertPool) Subjects() [][]byte { } return res } + +// Equal reports whether s and other are equal. +func (s *CertPool) Equal(other *CertPool) bool { + if s.systemPool != other.systemPool || len(s.haveSum) != len(other.haveSum) { + return false + } + for h := range s.haveSum { + if !other.haveSum[h] { + return false + } + } + return true +} diff --git a/src/crypto/x509/cert_pool_test.go b/src/crypto/x509/cert_pool_test.go new file mode 100644 index 0000000000..d1ec9aaefd --- /dev/null +++ b/src/crypto/x509/cert_pool_test.go @@ -0,0 +1,58 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package x509 + +import "testing" + +func TestCertPoolEqual(t *testing.T) { + a, b := NewCertPool(), NewCertPool() + if !a.Equal(b) { + t.Error("two empty pools not equal") + } + + tc := &Certificate{Raw: []byte{1, 2, 3}, RawSubject: []byte{2}} + a.AddCert(tc) + if a.Equal(b) { + t.Error("empty pool equals non-empty pool") + } + + b.AddCert(tc) + if !a.Equal(b) { + t.Error("two non-empty pools not equal") + } + + otherTC := &Certificate{Raw: []byte{9, 8, 7}, RawSubject: []byte{8}} + a.AddCert(otherTC) + if a.Equal(b) { + t.Error("non-equal pools equal") + } + + systemA, err := SystemCertPool() + if err != nil { + t.Fatalf("unable to load system cert pool: %s", err) + } + systemB, err := SystemCertPool() + if err != nil { + t.Fatalf("unable to load system cert pool: %s", err) + } + if !systemA.Equal(systemB) { + t.Error("two empty system pools not equal") + } + + systemA.AddCert(tc) + if systemA.Equal(systemB) { + t.Error("empty system pool equals non-empty system pool") + } + + systemB.AddCert(tc) + if !systemA.Equal(systemB) { + t.Error("two non-empty system pools not equal") + } + + systemA.AddCert(otherTC) + if systemA.Equal(systemB) { + t.Error("non-equal system pools equal") + } +} From c18f398f32c45afe2e9a81a6d885a4e0183cd649 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Thu, 10 Mar 2022 11:43:43 -0500 Subject: [PATCH 125/125] crypto/rand: make Prime not deterministic for a fixed input stream rand.Prime does not guarantee the precise prime selection algorithm as part of its contract. For example, it changed slightly in CL 387554. We want to ensure that no tests come to rely on it staying the same, so just like other cryptographic functions that use randomness in an unspecified way (ECDSA signing, RSA PKCS #1 v1.5 encryption, RSA key generation), make it randomly read an extra byte or not. Change-Id: Ib9079c03360812d412b7c21d5a06caadabb4a8bf Reviewed-on: https://go-review.googlesource.com/c/go/+/391554 Run-TryBot: Filippo Valsorda Auto-Submit: Filippo Valsorda Trust: Filippo Valsorda TryBot-Result: Gopher Robot Reviewed-by: Roland Shoemaker --- src/crypto/rand/util.go | 3 +++ src/crypto/rand/util_test.go | 19 +++++++++++++++++++ src/go/build/deps_test.go | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/crypto/rand/util.go b/src/crypto/rand/util.go index 0f143a3830..11b1a28ec5 100644 --- a/src/crypto/rand/util.go +++ b/src/crypto/rand/util.go @@ -5,6 +5,7 @@ package rand import ( + "crypto/internal/randutil" "errors" "io" "math/big" @@ -17,6 +18,8 @@ func Prime(rand io.Reader, bits int) (*big.Int, error) { return nil, errors.New("crypto/rand: prime size must be at least 2-bit") } + randutil.MaybeReadByte(rand) + b := uint(bits % 8) if b == 0 { b = 8 diff --git a/src/crypto/rand/util_test.go b/src/crypto/rand/util_test.go index e76ce2018a..9caf8e91cc 100644 --- a/src/crypto/rand/util_test.go +++ b/src/crypto/rand/util_test.go @@ -38,6 +38,25 @@ func TestPrimeBitsLt2(t *testing.T) { } } +func TestPrimeNondeterministic(t *testing.T) { + r := mathrand.New(mathrand.NewSource(42)) + p0, err := rand.Prime(r, 32) + if err != nil { + t.Fatal(err) + } + for i := 0; i < 128; i++ { + r.Seed(42) + p, err := rand.Prime(r, 32) + if err != nil { + t.Fatal(err) + } + if p.Cmp(p0) != 0 { + return + } + } + t.Error("Prime always generated the same prime given the same input") +} + func TestInt(t *testing.T) { // start at 128 so the case of (max.BitLen() % 8) == 0 is covered for n := 128; n < 140; n++ { diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go index c4fb2fe0b4..052e7ad9c0 100644 --- a/src/go/build/deps_test.go +++ b/src/go/build/deps_test.go @@ -416,8 +416,8 @@ var depsRules = ` # CRYPTO-MATH is core bignum-based crypto - no cgo, net; fmt now ok. CRYPTO, FMT, math/big, embed - < crypto/rand < crypto/internal/randutil + < crypto/rand < crypto/ed25519 < encoding/asn1 < golang.org/x/crypto/cryptobyte/asn1