website: merge x.go.dev branch

The x.go.dev branch was created out-of-band by rewriting the
x/go.dev history to have this repo's first commit as its initial commit
and moving all the work into a go.dev/ subdirectory.

This merge brings the go.dev/ subdirectory into the main branch
of x/website.

After this merge, all work on go.dev will happen here in x/website,
first in the go.dev/ directory and then eventually merged into the website
proper.

Change-Id: I179988072340535ac835fe14a0d7614cc74c3db1
diff --git a/go.dev/.eslintrc.json b/go.dev/.eslintrc.json
new file mode 100644
index 0000000..3f74d8b
--- /dev/null
+++ b/go.dev/.eslintrc.json
@@ -0,0 +1,11 @@
+{
+  "extends": "google",
+  "parserOptions": {
+    "ecmaVersion": 6
+  },
+  "rules": {
+    "require-jsdoc": "off",
+    "indent": "off",
+    "arrow-parens": "off"
+  }
+}
\ No newline at end of file
diff --git a/go.dev/.firebaserc b/go.dev/.firebaserc
new file mode 100644
index 0000000..663d35d
--- /dev/null
+++ b/go.dev/.firebaserc
@@ -0,0 +1,6 @@
+{
+  "projects": {
+    "staging": "go-dev-staging",
+    "prod": "go-dev-prod"
+  }
+}
diff --git a/go.dev/.gcloudignore b/go.dev/.gcloudignore
new file mode 100644
index 0000000..864ce18
--- /dev/null
+++ b/go.dev/.gcloudignore
@@ -0,0 +1,20 @@
+.gcloudignore
+# If you would like to upload your .git directory, .gitignore file or
+# files from your .gitignore file, remove the corresponding line below:
+.git
+.gitignore
+#!include:.gitignore
+
+# Include public
+!public/
+
+.idea/
+archetypes/
+content/
+resources/
+themes/
+
+.firebaserc
+cloudbuild.yaml
+config.toml
+firebase.json
diff --git a/go.dev/.gitignore b/go.dev/.gitignore
new file mode 100644
index 0000000..5c0aa57
--- /dev/null
+++ b/go.dev/.gitignore
@@ -0,0 +1,20 @@
+# Binaries for programs and plugins
+*.exe
+*.exe~
+*.dll
+*.so
+*.dylib
+
+# Test binary, build with `go test -c`
+*.test
+
+# Output of the go coverage tool, specifically when used with LiteIDE
+*.out
+
+.DS_Store
+
+.firebase/*
+
+# Ignore Hugo output
+public/
+resources/
\ No newline at end of file
diff --git a/go.dev/.prettierrc.yaml b/go.dev/.prettierrc.yaml
new file mode 100644
index 0000000..98282f3
--- /dev/null
+++ b/go.dev/.prettierrc.yaml
@@ -0,0 +1,4 @@
+arrowParens: avoid
+singleQuote: true
+bracketSpacing: false
+quoteProps: consistent
diff --git a/go.dev/.stylelintrc.json b/go.dev/.stylelintrc.json
new file mode 100644
index 0000000..8374c48
--- /dev/null
+++ b/go.dev/.stylelintrc.json
@@ -0,0 +1,14 @@
+{
+  "plugins": [
+      "stylelint-order"
+  ],
+  "rules": {
+      "color-hex-case": "lower",
+      "selector-list-comma-newline-after": "always",
+      "order/order": [
+          "custom-properties",
+          "declarations"
+      ],
+      "order/properties-alphabetical-order": true
+  }
+}
\ No newline at end of file
diff --git a/go.dev/LICENSE b/go.dev/LICENSE
new file mode 100644
index 0000000..6a66aea
--- /dev/null
+++ b/go.dev/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+   * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+   * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+   * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/go.dev/README.md b/go.dev/README.md
new file mode 100644
index 0000000..ae44e73
--- /dev/null
+++ b/go.dev/README.md
@@ -0,0 +1,48 @@
+# go.dev
+
+## Contributing
+
+```
+git clone sso://partner-code/go.dev && (cd go.dev && f=`git rev-parse --git-dir`/hooks/commit-msg ; mkdir -p $(dirname $f) ; curl -Lo $f https://gerrit-review.googlesource.com/tools/hooks/commit-msg ; chmod +x $f)
+```
+
+- `data/learn` contains links for the Learn pages, as all content is currently external.
+- `content/solutions` contains Use Cases and Case Studies.
+  - Please include relevant resources using the same `name` attribute for images.
+- `themes/default` contains the site layout.
+
+### Style Guides
+
+- [CSS](https://golang.org/wiki/CSSStyleGuide)
+- [JavaScript](https://google.github.io/styleguide/jsguide.html)
+
+## Installation/Usage
+
+To serve the go.dev pages, run
+
+	go run ./cmd/frontend
+
+## Deploying
+
+All commits targeting `master` will trigger a CI test defined in `cloudbuild.ci.yaml`.
+All commits pushed to `master` will be automatically deployed to https://dev.go.dev.
+
+## Code repo
+
+https://partner-code.git.corp.google.com/go.dev
+
+## Commands
+
+- Running the server: `go run ./cmd/frontend`
+- Pushing to staging: `git push -f origin HEAD:staging`
+
+## Where things live
+
+- Javascript:
+- Carousels: /static/js/carousels.js
+- Tab navigation, filtering, listeners: /static/js/site.js
+- Solutions page template: /layouts/solutions/single.html
+- Home page template: /layouts/index.html
+- Site wide styles: /assets/css/styles.css
+- Site configuration: /config.toml
+- Promotional components (modal, snackbar, etc) are in this branch: `messaging-components`
diff --git a/go.dev/_content/about.md b/go.dev/_content/about.md
new file mode 100644
index 0000000..15c9fbc
--- /dev/null
+++ b/go.dev/_content/about.md
@@ -0,0 +1,135 @@
+---
+title: 'About'
+layout: article
+date: 2019-06-25T17:51:23-04:00
+---
+
+[Go.dev](https://go.dev) is a companion website to [golang.org](https://golang.org). [Golang.org](https://golang.org) is the home of the open source project and distribution, while [go.dev](https://go.dev) is the hub for Go users providing centralized and curated resources from across the Go ecosystem.
+
+{{gopher `
+  color: pink
+  align: right
+`}}
+Go.dev provides:
+
+1. Centralized information for Go packages and modules published on index.golang.org.
+2. Essential learning resources
+3. Critical use cases & case studies
+
+Go.dev is currently in [MVP](https://en.wikipedia.org/wiki/Minimum_viable_product) status. We're proud of what we've built and excited to share it with the community. We hope you find value and joy in using go.dev. Go.dev only has a small portion of features we intend to build, and we are actively seeking feedback. If you have any ideas, suggestions or issues, please let us know.
+
+## Adding a package
+Data for the site is downloaded from [proxy.golang.org](https://proxy.golang.org/). We monitor the [Go Module Index](https://index.golang.org/index) regularly for new packages to add to pkg.go.dev. If you don’t see a package on pkg.go.dev, you can add it by doing one of the following:
+
+* Visiting that page on pkg.go.dev, and clicking the "Request" button. For example: <br /> https://<span></span>pkg.go.dev/example.com/my/module
+
+*  Making a request to proxy.golang.org for the module version, to any endpoint specified by the [Module proxy protocol](https://golang.org/cmd/go/#hdr-Module_proxy_protocol). For example: <br /> https://<span></span>proxy.golang.org/example.com/my/module/@v/v1.0.0.info
+
+*  Downloading the package via the [go command](https://golang.org/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them). For example:  <br /> GOPROXY=https://<span></span>proxy.golang.org GO111MODULE=on go get example.com/my/module@v1.0.0
+
+## Removing a package
+If you are the author of a package and would like to have it removed from pkg.go.dev, please [file an issue](https://golang.org/s/pkgsite-feedback) on the Go Issue Tracker with the path that you want to remove.
+
+Note that we can only remove a module entirely from the site. We cannot remove it just for specific versions.
+
+## Documentation
+
+Documentation is generated based on Go source code downloaded from the Go Module Mirror at `proxy.golang.org/<module>/@v/<version>.zip`. New module versions are fetched from index.golang.org and added to pkg.go.dev site every few minutes.
+
+The [guidelines for writing documentation](https://blog.golang.org/godoc) for the godoc tool apply to pkg.go.dev.
+
+It’s important to write a good summary of the package in the first sentence of the package comment. The go.dev site indexes the first sentence and displays it in search results.
+
+### Build Context
+
+Most Go packages look and behave the same regardless of the machine architecture
+or operating system. But some have different documentation, even different
+exported symbols, for different architectures or OSes. Some packages may not even
+exist for some architectures.
+
+Go calls an OS/architecture pair a "build context" and writes it with a slash,
+like `linux/amd64`. You may also see the terms `GOOS` and `GOARCH` for the OS
+and architecture respectively, because those are the names of the environment
+variables that the go command uses. (See the [go command
+documentation](https://golang.org/cmd/go) for more information.)
+
+If a package exists at only one build context, pkg.go.dev displays that build
+context at the upper right corner of the documentation. For example,
+https://pkg.go.dev/syscall/js displays "js/wasm".
+
+If a package is different in different build contexts, then pkg.go.dev will
+display one by default and provide a dropdown control at the upper right so you
+can select a different one.
+
+For packages that are the same across all build contexts, pkg.go.dev does not
+display any build context information.
+
+Although there are many possible OS/architecture pairs, pkg.go.dev considers
+only a
+[handful](https://go.googlesource.com/pkgsite/+/master/internal/build_context.go#29)
+of them. So if a package only exists for unsupported build contexts, pkg.go.dev
+will not display documentation for it.
+
+### Source Links
+
+Most of the time, pkg.go.dev can determine the location of a package's source
+files, and provide links from symbols in the documentation to their definitions
+in the source. If your package's source is not linked, try one of the following
+two approaches.
+
+If pkg.go.dev finds a `go-source` meta tag on your site that follows the
+[specified format](https://github.com/golang/gddo/wiki/Source-Code-Links), it
+can often determine the right links, even though the format doesn't take
+versioning into account.
+
+If that doesn't work, you will need to add your repo or code-hosting site to
+pkg.go.dev's list of patterns (see  [Go Issue 40477](https://golang.org/issues/40477) for context).
+Read about how to [contribute to pkg.go.dev](https://go.googlesource.com/pkgsite#contributing),
+then produce a CL that adds a pattern to the
+[`internal/source`](https://go.googlesource.com/pkgsite/+/refs/heads/master/internal/source/source.go)
+package.
+
+## Best practices
+
+Pkg.go.dev surfaces details about Go packages and modules in order to help provide guidelines for best practices with Go.
+
+Here are the details we surface:
+
+* Has go.mod file
+  * The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go. A module version is defined by a tree of source files, with a go.mod file in its root. [More information about the go.mod file](https://golang.org/cmd/go/#hdr-The_go_mod_file).
+
+* Redistributable license
+  * Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed. For more information on how pkg.go.dev determines if a license is redistributable, see our [license policy](http://pkg.go.dev/license-policy).
+
+* Tagged version
+  * When the go get command resolves modules by default it prioritizes tagged versions. When no tagged versions exist, go get looks up the latest known commit. Modules with tagged versions give importers more predictable builds. See [semver.org](https://semver.org) and [Keeping Your Modules Compatible](https://blog.golang.org/module-compatibility) for more information.
+
+* Stable version
+  * Projects at v0 are assumed to be experimental. When a project reaches a stable version — major version v1 or higher — breaking changes must be done in a new major version. Stable versions give developers the confidence that breaking changes won’t occur when they upgrade a package to the latest minor version. See [Go Modules: v2 and Beyond](https://blog.golang.org/v2-go-modules) for more information.
+
+## Creating a badge
+
+The pkg.go.dev badge provides a way for Go users to learn about the pkg.go.dev page associated with a given Go package or module. You can create a badge using the [badge generation tool](https://pkg.go.dev/badge). The tool will generate html and markdown snippets that you can use on your project website or in a README file.
+
+[![PkgGoDev](https://pkg.go.dev/badge/golang.org/x/pkgsite)](https://pkg.go.dev/golang.org/x/pkgsite)
+
+## Adding links
+
+You can add links to your README files and package documentation that will be
+shown on the right side of the pkg.go.dev page. For details, see [this
+issue](https://golang.org/issue/42968).
+
+## Keyboard Shortcuts
+
+There are keyboard shortcuts for navigating package documentation pages. Type '?' on a package page for help.
+
+## Bookmarklet
+
+The pkg.go.dev bookmarklet navigates from pages on source code hosts, such as GitHub, Bitbucket, Launchpad etc., to the package documentation. To install the bookmarklet, click and drag the following link to your bookmark bar: <a href="javascript:(function(){ const pathRegex = window.location.pathname.match(/([^\/]+)(?:\/([^\/]+))?/); const host = window.location.hostname; if (pathRegex) { window.location='https://pkg.go.dev/'+host+'/'+pathRegex[0]; } else { alert('There was an error navigating to pkg.go.dev!'); } })()">Pkg.go.dev Doc</a>
+
+## License policy
+Information for a given package or module may be limited if we are not able to detect a suitable license. See our [license policy](https://pkg.go.dev/license-policy) for more information.
+
+## Feedback
+
+Share your ideas, feature requests, and bugs on the [Go Issue Tracker](https://golang.org/s/discovery-feedback) For questions, please post on the #tools slack channel on the [Gophers Slack](https://invite.slack.golangbridge.org/), or email the [golang-dev mailing list](https://groups.google.com/group/golang-dev).
diff --git a/go.dev/_content/copyright.md b/go.dev/_content/copyright.md
new file mode 100644
index 0000000..dd1befe
--- /dev/null
+++ b/go.dev/_content/copyright.md
@@ -0,0 +1,9 @@
+---
+title: "Copyright"
+layout: article
+date: 2019-11-05T15:50:08-05:00
+---
+
+Except as <a href="https://developers.google.com/terms/site-policies#restrictions">noted</a>, the contents of this site
+are licensed under the <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0
+License</a>, and code is licensed under a <a href="https://golang.org/LICENSE">BSD license</a>.
diff --git a/go.dev/_content/css/styles.css b/go.dev/_content/css/styles.css
new file mode 100644
index 0000000..ab6525d
--- /dev/null
+++ b/go.dev/_content/css/styles.css
@@ -0,0 +1,3485 @@
+*,
+:before,
+:after {
+  box-sizing: border-box;
+}
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,
+  'Apple Color Emoji', 'Segoe UI Emoji';
+  max-height: 100%;
+}
+button,
+input,
+select,
+textarea {
+  font: inherit;
+}
+code,
+pre {
+  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
+}
+html,
+.Site {
+  max-height: 100%;
+  scroll-behavior: smooth;
+  scroll-padding-top: 4.6875rem;
+}
+a,
+a:link,
+a:visited {
+  color: #007d9c;
+  text-decoration: none;
+}
+a:hover {
+  text-decoration: underline;
+}
+.Site {
+  display: flex;
+  flex-direction: column;
+  margin: 0;
+}
+.bluebg {
+  background: #007d9c;
+}
+.SiteContent {
+  flex: 1;
+}
+.SiteContent--default {
+  margin-top: 3.5rem;
+}
+.SiteContent--lower {
+  margin-top: calc(3.5rem + 9.75rem);
+}
+.Site-footer {
+  border-top: 0.0625rem solid #dcdee0;
+  color: #fff;
+  font-size: 0.875rem;
+}
+.Site-header {
+  background: #007d9c;
+  border-bottom: none;
+  box-shadow: 0 0.0625rem 0.125rem rgba(171, 171, 171, 0.3);
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 10;
+}
+.CaseStudy-aboutBlock {
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.25rem;
+  box-sizing: border-box;
+  padding: 3.75rem 2rem 3.75rem;
+}
+.CaseStudy-aboutBlockTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 3rem;
+  margin-bottom: 0.6875rem;
+}
+.CaseStudy-aboutBlockImg {
+  display: block;
+  margin: 0 auto;
+  max-height: 3.125rem;
+}
+.CaseStudy-aboutBlockBody {
+  color: #464a4d;
+  font-size: 1rem;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+}
+/**
+ * Only show on wide viewports so the
+ * text never wraps or gets cut off.
+ */
+.Banner {
+  background-color: #202224;
+  display: none;
+}
+.Banner-inner {
+  align-items: center;
+  display: flex;
+  justify-content: space-between;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  min-height: 2.5rem;
+  padding: 0.5rem 1.5rem;
+}
+.Banner-message {
+  color: #fff;
+  margin-right: 1.25rem;
+}
+.Banner-action:link,
+.Banner-action:visited {
+  color: #fff;
+  text-decoration: underline;
+  white-space: nowrap;
+}
+@media only screen and (min-width: 48rem) {
+  .Banner {
+    display: block;
+  }
+  .SiteContent--default {
+    /* fixed header height + banner height */
+    margin-top: calc(3.5rem + 2.475rem);
+  }
+  .SiteContent--lower {
+    margin-top: calc(3.5rem + 4.875rem);
+  }
+}
+.UseCase-halfColumn {
+  color: #3e4042;
+  display: inline-block;
+  font-size: 1rem;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+  width: 100%;
+}
+@media only screen and (min-width: 48rem) {
+  .UseCase-halfColumn {
+    padding-right: 1.25rem;
+    width: 50%;
+  }
+}
+.UseCase-halfColumn > h2 {
+  line-height: 1.55;
+}
+.Header,
+.Container {
+  margin: 0 auto;
+  max-width: 75.75rem;
+}
+.Container--padded {
+  padding: 0 1.5rem;
+}
+.Footer {
+  background-color: #253443;
+}
+.Footer-links {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  padding: 2rem 1.5rem 2.625rem 1.5rem;
+}
+.Footer-linkColumn {
+  flex: 0 0 9.5rem;
+}
+a.Footer-link {
+  color: #fff;
+  display: flex;
+  flex: 1;
+  font-size: 0.875rem;
+  line-height: 2rem;
+}
+a.Footer-link--primary {
+  font-size: 1.125rem;
+  line-height: 1.75rem;
+  margin-bottom: 0.5rem;
+  margin-top: 0.75rem;
+}
+.Footer-bottom {
+  align-items: center;
+  border-top: 0.0625rem solid #dcdee0;
+  display: flex;
+  margin: 0 1.5rem;
+  min-height: 4.125rem;
+}
+.Footer-gopher {
+  align-self: flex-end;
+  width: 5rem;
+}
+.Footer-listRow {
+  display: flex;
+  flex: 1;
+  flex-wrap: wrap;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  text-align: center;
+}
+.Footer-listItem {
+  align-items: center;
+  display: flex;
+  flex: 1 100%;
+  justify-content: center;
+  margin: 0.4rem 0;
+  padding: 0 1rem;
+}
+.Footer-listItem a:link,
+.Footer-listItem a:visited {
+  color: #fff;
+}
+@media only screen and (min-width: 52rem) {
+  .Footer-listItem {
+    flex: initial;
+  }
+  .Footer-listItem + .Footer-listItem {
+    border-left: 0.0625rem solid #c6c8ca;
+  }
+}
+.Footer-feedbackButton {
+  background: none;
+  border: none;
+  color: #fff;
+  font-size: 0.875rem;
+  padding: 0;
+}
+.Footer-feedbackButton:hover {
+  cursor: pointer;
+  text-decoration: underline;
+}
+.Footer-googleLogo {
+  align-self: flex-end;
+  height: 1.5rem;
+  margin-bottom: 1.3rem;
+  text-align: right;
+}
+.Footer-googleLogoImg {
+  height: 1.5rem;
+}
+.Container--fullBleed {
+  margin: 0;
+  max-width: none;
+}
+.Header-nav {
+  align-items: center;
+  display: flex;
+  height: 3.5rem;
+  justify-content: space-between;
+}
+.Header-rightContent {
+  align-items: center;
+  display: flex;
+  height: 100%;
+  justify-content: flex-end;
+  width: 100%;
+}
+.Header--dark {
+  border-bottom: none;
+  color: #fff;
+}
+.Header-logo {
+  display: block;
+  height: 2rem;
+  margin-right: 2.25rem;
+  width: 5.125rem;
+}
+.Header-logo--hidden {
+  display: none;
+}
+.Header-logo--hidden {
+  display: none;
+}
+.Header-menuItem {
+  display: none;
+}
+.Header-menu {
+  align-items: stretch;
+  display: flex;
+  height: 100%;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+h1,
+h2 {
+  font-weight: 600;
+  letter-spacing: 0.03rem;
+}
+
+h3 {
+  font-size: 1.125rem;
+}
+
+h3,
+h4 {
+  letter-spacing: 0.08rem;
+}
+h5,
+h6 {
+  font-weight: 500;
+  letter-spacing: 0.08rem;
+}
+
+@media only screen and (min-width: 57.7rem) {
+  .Header {
+    padding: 0 1.5rem;
+  }
+  .Header-menuItem {
+    align-items: stretch;
+    display: inline-flex;
+    flex: none;
+  }
+  .Header-menu {
+    justify-content: flex-end;
+  }
+  .Header-navOpen {
+    display: none;
+  }
+}
+.Header-menuItem a:link,
+.Header-menuItem a:visited {
+  align-items: center;
+  border-bottom: 0.1875rem solid transparent;
+  border-top: 0.1875rem solid transparent; /* To ensure the text remains centered. */
+  color: #3e4042;
+  display: inline-flex;
+  margin: 0 0.3125rem;
+  padding: 0 0.9375rem;
+  text-align: center;
+  text-decoration: none;
+  width: 100%;
+}
+.Header--dark .Header-menuItem a:link,
+.Header--dark .Header-menuItem a:visited {
+  color: #fff;
+}
+.Header-menuItem--active a:link,
+.Header-menuItem--active a:visited {
+  border-bottom-color: #00add8;
+  font-weight: bold;
+}
+.Header-menuItem a:hover {
+  border-bottom-color: #fff;
+  color: #3e4042;
+}
+.Header-navOpen {
+  background: no-repeat center/2rem url('/images/menu-24px.svg');
+  border: none;
+  height: 2.5rem;
+  margin: auto 1rem;
+  width: 2.5rem;
+}
+.Header-navOpen--white {
+  background: no-repeat center/2rem url('/images/menu-24px-white.svg');
+}
+.NavigationDrawer {
+  background: #fff;
+  height: 100%;
+  left: auto;
+  max-width: 27rem;
+  position: fixed;
+  right: 0;
+  top: 0;
+  transform: translateX(100%);
+  transition: transform 100ms ease-in-out;
+  width: 85%;
+  z-index: 20;
+}
+.NavigationDrawer.is-active {
+  transform: translateX(0);
+}
+.NavigationDrawer-header {
+  align-items: center;
+  display: flex;
+  justify-content: space-between;
+}
+.NavigationDrawer-logo {
+  display: block;
+  height: 2rem;
+  margin: 1rem 1rem;
+  width: 5.125rem;
+}
+.NavigationDrawer-list {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+.NavigationDrawer-listItem {
+  font-size: 1.125rem;
+  margin: 0 0.5rem;
+}
+.NavigationDrawer-listItem a:link,
+.NavigationDrawer-listItem a:visited {
+  display: block;
+  margin: 0 1rem;
+  padding: 0.5rem;
+}
+.NavigationDrawer-listItem--active {
+  background-color: #bfeaf4;
+  border-radius: 0.4rem;
+}
+.NavigationDrawer-scrim {
+  display: none;
+  height: 100%;
+  left: 0;
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 5;
+}
+.NavigationDrawer.is-active + .NavigationDrawer-scrim {
+  background-color: rgba(0, 0, 0, 0.32);
+  display: block;
+}
+.Article {
+  color: #202224;
+  margin: 0 auto 1.875rem;
+  max-width: 45rem;
+  padding: 0 1.5rem;
+}
+.Article--solutions {
+  max-width: 75.75rem;
+}
+.Article-author,
+.Article-date {
+  font-size: 0.875rem;
+  line-height: 1.375rem;
+}
+.Article-date {
+  color: #6e7072;
+}
+.Article h1,
+.Article h2,
+.Article h3,
+.Article h4,
+.Article h5,
+.Article h6 {
+  color: #202224;
+}
+.Article h1 {
+  font-size: 2.25rem;
+  font-weight: 400;
+  line-height: 3rem;
+  margin: 1rem 0 1rem;
+}
+.Article h2 {
+  font-size: 1.4rem;
+  font-weight: normal;
+  line-height: 2rem;
+  margin-top: 2.25rem;
+}
+.Article h3 {
+  font-size: 1.125rem;
+  font-weight: 500;
+}
+.Article h4,
+.Article h5,
+.Article h6 {
+  font-size: 1rem;
+}
+.Article p,
+.Article ul,
+.Article ol {
+  color: #3e4042;
+  font-size: 1rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.75rem;
+}
+.Article p:last-of-type {
+  margin-bottom: 0;
+}
+.Article ol .Article pre {
+  background-color: #fafafa;
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.375rem;
+  color: #3e4042;
+  font-size: 1rem;
+  line-height: 1.45;
+  overflow-x: auto;
+  padding: 1.5rem;
+}
+.Article pre,
+.Article code {
+  color: #3e4042;
+}
+@media only screen and (min-width: 57.7rem) {
+  .Article h1,
+  .Article h2,
+  .Article h4,
+  .Article h5,
+  .Article h6 {
+    margin: initial;
+  }
+  .Article h2 + h3 {
+    margin-top: 1.5rem;
+  }
+  .Article h3 {
+    margin-top: 1.875rem;
+  }
+  .Article h2 {
+    font-size: 1.5rem;
+    font-weight: 500;
+    line-height: 2.25rem;
+  }
+}
+.BreadcrumbNav-inner {
+  display: flex;
+  justify-content: start;
+  list-style: none;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  padding: 0 0 1rem;
+}
+.BreadcrumbNav-li {
+  align-items: center;
+  display: flex;
+  white-space: nowrap;
+}
+a.BreadcrumbNav-link {
+  color: #202224;
+  font-size: 0.875rem;
+  text-decoration: none;
+}
+.BreadcrumbNav-li:last-child {
+  padding-right: 0.812rem;
+  white-space: normal;
+}
+.BreadcrumbNav-li:not(:last-child):after {
+  background: url('/images/icons/arrow-forward.svg') no-repeat;
+  content: ' ';
+  display: block;
+  height: 1rem;
+  margin: 0 0.8125rem;
+  width: 1rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .BreadcrumbNav-inner {
+    margin-top: 0;
+  }
+}
+.SubHero-gridContainer,
+.WhoUses-gridContainer,
+.WhoUsesHero-gridContainer,
+.WhoUsesCaseStudyList-gridContainer,
+.WhyGo-gridContainer,
+.UseCases-gridContainer,
+.LearnGo-gridContainer {
+  display: flex;
+  flex-direction: column;
+  flex-wrap: wrap;
+  margin: 0 auto;
+  max-width: 75.75rem;
+}
+.SubHero-gridContainer,
+.WhoUses-gridContainer,
+.WhoUsesHero-gridContainer,
+.WhyGo-gridContainer,
+.UseCases-gridContainer,
+.LearnGo-gridContainer {
+  padding: 3rem 1.5rem 1rem;
+}
+.WhoUsesHero-gridContainer {
+  align-items: center;
+}
+@media only screen and (min-width: 28rem) {
+  .WhoUses-gridContainer,
+  .WhoUsesHero-gridContainer,
+  .WhoUsesCaseStudyList-gridContainer,
+  .WhyGo-gridContainer,
+  .UseCases-gridContainer,
+  .LearnGo-gridContainer {
+    flex-direction: row;
+    justify-content: space-between;
+  }
+  .WhoUsesHero-gridContainer {
+    align-items: start;
+  }
+}
+.WhyGo,
+.WhoUses {
+  background-color: #fff;
+}
+.LearnGo,
+.UseCases {
+  background-color: #fafafa;
+}
+.WhoUses-header,
+.WhyGo-header,
+.LearnGo-header {
+  flex: 0 0 100%;
+  text-align: center;
+}
+.WhoUses-headerH2,
+.WhyGo-headerH2,
+.GettingStartedGo-headerH2,
+.LearnGo-header h2 {
+  font-size: 1.25rem;
+  font-style: normal;
+  font-weight: 500;
+  letter-spacing: 0.188rem;
+  line-height: 1.75rem;
+  margin-bottom: 1.5rem;
+  margin-bottom: 0.5rem;
+  margin-top: 0;
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUses-headerH2,
+  .WhyGo-headerH2,
+  .GettingStartedGo-headerH2,
+  .LearnGo-header h2 {
+    font-size: 2.25rem;
+    line-height: 2.625rem;
+    margin-bottom: 1.5rem;
+  }
+}
+.GoCarousel {
+  background-color: #fafafa;
+  display: flex;
+  justify-items: center;
+  overflow-x: hidden;
+  position: relative;
+}
+.GoCarousel-wrapper {
+  margin: auto;
+  max-width: 62.5rem;
+  overflow: hidden;
+  position: relative;
+  width: 90vw;
+  z-index: 1;
+}
+.GoCarousel-slide {
+  border-radius: 0.125rem;
+  cursor: pointer;
+  display: flex;
+  position: relative;
+  transition: all 1s;
+}
+.GoCarousel-controlPrev,
+.GoCarousel-controlNext {
+  background-color: #fff;
+  border-radius: 1.25rem;
+  border-width: 0;
+  box-shadow: 0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15),
+    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3);
+  color: #848688;
+  display: inline-block;
+  font-size: 2.5rem;
+  height: 2rem;
+  line-height: 2.5rem;
+  outline: none;
+  padding: 0 0.375rem 0 0.25rem;
+  position: absolute;
+  transition: transform 100ms;
+  width: 2rem;
+  z-index: 2;
+}
+.GoCarousel-controlPrev:focus,
+.GoCarousel-controlNext:focus {
+  box-shadow: 0 0.0625rem 0.5rem rgba(60, 64, 67, 0.25),
+    0 0.0625rem 0.25rem rgba(60, 64, 67, 0.4);
+  color: #555759;
+}
+.GoCarousel-controlPrev[hidden],
+.GoCarousel-controlNext[hidden] {
+  display: none;
+}
+.GoCarousel-icon {
+  user-select: none;
+}
+.GoCarousel-controlPrev,
+.GoCarousel-controlNext {
+  cursor: pointer;
+  font-size: 1.6875rem;
+  text-align: center;
+  top: 50%;
+  transform: translateY(-50%);
+}
+.GoCarousel-controlPrev {
+  left: 1rem;
+}
+.GoCarousel-controlNext {
+  right: 1rem;
+}
+.GoCarousel-controlPrev:active,
+.GoCarousel-controlNext:active {
+  transform: translateY(-50%) scale(0.9);
+}
+.GoCarousel-controlsContainer {
+  display: block;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  position: relative;
+  width: auto;
+  width: 100%;
+}
+.GettingStartedGo-gridContainer {
+  display: flex;
+  flex-direction: column;
+  flex-wrap: wrap;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  padding: 3.75rem 1.5rem 2.625rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .GettingStartedGo-gridContainer {
+    flex-direction: row;
+  }
+  .GoCarousel-controlPrev,
+  .GoCarousel-controlNext {
+    top: 50%;
+  }
+}
+.GettingStartedGo-header {
+  border-right: 0;
+  flex: 0 37%;
+  margin-bottom: 2rem;
+  padding-right: 0;
+}
+@media only screen and (min-width: 57.7rem) {
+  .GettingStartedGo-header {
+    border-right: 0.0133rem solid #f0f1f2;
+    margin-bottom: 0;
+    padding-right: 3.375rem;
+  }
+}
+.GettingStartedGo-headerDesc {
+  color: #3e4042;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+}
+.GettingStartedGo-ctas {
+  font-size: 0.875rem;
+  font-weight: normal;
+  letter-spacing: 0.0164rem;
+  line-height: 1rem;
+  margin-top: 1rem;
+}
+a.GettingStartedGo-primaryCta {
+  background: #007d9c;
+  border-radius: 0.125rem;
+  color: #fff;
+  display: inline-block;
+  margin-right: 1.3125rem;
+  padding: 0.4375rem 1.3125rem;
+  text-decoration: none;
+}
+.GettingStartedGo-resourcesSection {
+  display: flex;
+  flex: 1;
+  flex-direction: column;
+}
+@media only screen and (min-width: 38rem) {
+  .GettingStartedGo-resourcesSection {
+    flex-direction: row;
+  }
+}
+.GettingStartedGo-resourcesList {
+  flex: 50%;
+  list-style: none;
+  margin: 0;
+  padding-left: 0;
+  padding-right: 2.375rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .GettingStartedGo-resourcesList {
+    padding-left: 3.375rem;
+    padding-right: 0;
+  }
+}
+.GettingStartedGo-resourcesHeader {
+  color: #555759;
+  font-size: 0.6875rem;
+  letter-spacing: 0.0625rem;
+  margin-bottom: 1rem;
+  text-transform: uppercase;
+}
+.GettingStartedGo-resourceItem {
+  margin-bottom: 1rem;
+}
+a.GettingStartedGo-resourceItemTitle {
+  color: #202224;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.GettingStartedGo-resourceItemDescription {
+  color: #555759;
+  font-size: 0.8125rem;
+  line-height: 1.5rem;
+}
+.WhoUses-header h4,
+.WhyGo-headerH4,
+.LearnGo-header h4,
+.WhoUses-subheader {
+  color: #3e4042;
+  font-size: 0.875rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.006rem;
+  line-height: 1.125rem;
+  margin-bottom: 1.5rem;
+  margin-top: 0;
+}
+@media only screen and (min-width: 38rem) {
+  .WhoUses-header h4,
+  .WhyGo-headerH4,
+  .LearnGo-header h4,
+  .WhoUses-subheader {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
+.Hero {
+  color: #fff;
+}
+.Hero h1 {
+  font-size: 2.625rem;
+  font-weight: 500;
+  letter-spacing: 0.3rem;
+  margin: 1rem 0;
+}
+.Hero h2 {
+  font-size: 1.5rem;
+  font-weight: 400;
+  letter-spacing: 0.011rem;
+  max-width: 40rem;
+}
+.Hero-gridContainer {
+  column-gap: 1rem;
+  display: grid;
+  grid-template-columns: 3fr minmax(6.25rem, 1fr);
+  margin: 0 auto;
+  max-width: 40rem;
+  padding: 1rem 1.5rem 0;
+}
+.Hero-actions {
+  display: flex;
+  flex: 3 1;
+  flex-direction: column;
+  flex-wrap: wrap;
+  grid-column: 1 / 3;
+  margin-top: 1rem;
+}
+.Hero-actions > div {
+  display: flex;
+  width: 100%;
+}
+.Hero-actions a,
+.Hero-actions a:visited,
+.Hero-actions a:hover {
+  color: #fff;
+  margin: 0.5rem 0;
+  max-width: 13.75rem;
+  padding: 1rem 0;
+  text-align: center;
+  text-decoration: underline;
+}
+.Hero-actions a.Primary,
+.Hero-actions a.Secondary {
+  align-items: center;
+  border-radius: 0.25rem;
+  display: flex;
+  flex-wrap: nowrap;
+  font-size: 0.875rem;
+  height: 2.5rem;
+  justify-content: center;
+  line-height: 1.3125rem;
+  margin: 0;
+  text-decoration: none;
+  width: 100%;
+}
+.Hero-actions a.Primary {
+  margin: 0 1.3125rem 0 0;
+}
+.Hero-actions a.Primary {
+  background-color: #fddd00;
+  border: 0.0625rem solid #fddd00;
+  box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
+  color: #202224;
+}
+.Hero-actions a.Secondary {
+  border: 0.0625rem solid #fff;
+  color: #fff;
+}
+.DownloadBtn-versionNum {
+  font-size: 0.6875rem;
+  font-weight: 300;
+}
+.Hero-gopher {
+  align-items: flex-end;
+  display: flex;
+  grid-column: 2 / 3;
+  grid-row: 1 / 2;
+  justify-content: flex-end;
+}
+.Hero-gopherLadder {
+  bottom: 0;
+  height: 15rem;
+  max-width: 8rem;
+  object-fit: cover;
+  object-position: 100% 0;
+  right: 0;
+  width: 100%;
+}
+.Hero-blurb {
+  grid-column: 1 / 2;
+  margin: 0 auto;
+}
+.Hero-blurb h1 {
+  font-size: 1.375rem;
+  font-weight: 500;
+  letter-spacing: 0.0019rem;
+  margin-top: 0;
+}
+.Hero-blurbList {
+  font-size: 0.8125rem;
+  list-style: none;
+  margin-bottom: 0;
+  margin-top: 1rem;
+  padding: 0;
+}
+.Hero-blurbList li {
+  line-height: 1.125rem;
+  margin-bottom: 0.5rem;
+  padding-left: 1.5rem;
+  position: relative;
+}
+.Hero-blurbList svg {
+  left: 0;
+  margin-right: 0.6875rem;
+  position: absolute;
+  top: 0.3125rem;
+}
+.Hero-footnote {
+  flex-direction: column;
+  font-size: 0.8125rem;
+  letter-spacing: 0.007rem;
+  margin: 0.5rem 0 1.5rem;
+}
+.Hero-footnote p {
+  margin: 0;
+}
+.Hero-footnote p + p {
+  margin-top: 0.75rem;
+}
+.Hero-footnote a {
+  color: #fff;
+  text-decoration: underline;
+}
+.SubHero-gridContainer {
+  display: grid;
+  gap: 0 5vw;
+  grid-template-columns: 1fr;
+}
+.SubHero-blurb {
+  margin: 0 auto 0;
+  max-width: 25rem;
+}
+.SubHero-blurb:not(:last-of-type) {
+  margin: 0 auto 4rem;
+}
+.SubHero-blurb h3 {
+  margin-top: 0;
+  text-align: center;
+}
+.SubHero-blurb p {
+  margin-bottom: 0;
+}
+@media only screen and (min-width: 38rem) {
+  .Hero-blurb {
+    margin: auto;
+  }
+}
+@media only screen and (min-width: 48rem) {
+  .Hero-gridContainer {
+    gap: 0 5vw;
+    grid-template-columns: 2.5fr minmax(auto, 16.25rem);
+    max-width: 75.75rem;
+  }
+  .Hero-gopherLadder {
+    height: 23rem;
+    max-width: 11.5rem;
+  }
+  .Hero-actions {
+    align-items: flex-start;
+    flex: 1 1;
+    flex-direction: row;
+    grid-column: 1 / 2;
+    justify-content: initial;
+  }
+  .Hero-actions a,
+  .Hero-actions a:visited,
+  .Hero-actions a:hover {
+    max-width: 17.5rem;
+  }
+  .Hero-actions a.Primary,
+  .Hero-actions a.Secondary {
+    font-size: 1.5rem;
+    height: 4rem;
+    line-height: 1.75rem;
+  }
+  .Hero-actions a.Secondary {
+    margin: 0;
+  }
+  .Hero-footnote {
+    margin: 1rem 0 1.5rem;
+  }
+  .Hero-blurb {
+    grid-column: 1 / 2;
+    margin: 2.5rem auto 0;
+  }
+  .Hero-gopher {
+    grid-row: 1 / 3;
+  }
+  .Hero-blurb h1 {
+    font-size: 2.45rem;
+    font-weight: 500;
+  }
+  .Hero-blurbList {
+    font-size: 1rem;
+  }
+  .SubHero-gridContainer {
+    grid-template-columns: 1fr 1fr 1fr;
+  }
+  .SubHero-blurb {
+    margin: 0 auto;
+  }
+  .DownloadBtn-versionNum {
+    font-size: 1rem;
+    font-weight: 300;
+  }
+}
+.WhoUsesHero {
+  background-color: #fafafa;
+}
+.WhoUses-subheader {
+  color: #3e4042;
+  margin-bottom: 0;
+  margin-left: auto;
+  margin-right: auto;
+  max-width: 25rem;
+}
+.WhoUsesHero-gridContainer {
+  display: flex;
+  justify-content: space-between;
+  width: 100%;
+}
+.WhoUses-heroImg {
+  max-width: 38.75rem;
+  width: 100%;
+}
+.WhoUses-heroInnerLeft {
+  line-height: 1.5rem;
+  margin-bottom: 2rem;
+  margin-right: 0;
+  max-width: 19.625rem;
+  text-align: center;
+  width: 90%;
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUses-heroInnerLeft {
+    margin-right: 2rem;
+    text-align: start;
+    width: 19.625rem;
+  }
+  .WhoUses-subheader {
+    max-width: none;
+  }
+}
+.WhoUses-heroInnerLeft h3 {
+  font-size: 1.5rem;
+  font-weight: normal;
+  margin: 1.375rem 0;
+}
+.WhoUses-heroInnerLeft p {
+  color: #6e7072;
+  font-size: 0.875rem;
+  margin-bottom: 1.188rem;
+}
+.WhoUsesCaseStudyList {
+  align-content: center;
+  display: flex;
+  flex: 0 0 100%;
+  justify-content: space-evenly;
+  list-style: none;
+}
+.WhoUsesCaseStudyList-gridContainer {
+  display: grid;
+  gap: 0.8rem;
+  grid-template-columns: repeat(3, minmax(0, 33.333%));
+  margin: 1.5rem auto 3.75rem;
+  padding: 0;
+  width: 100%;
+}
+.WhoUsesCaseStudyList-caseStudy {
+  align-items: center;
+  display: flex;
+  flex: 0 1 50%;
+  height: 3.8512rem;
+  justify-content: center;
+  position: relative;
+}
+.WhoUsesCaseStudyList-caseStudy p {
+  display: none;
+}
+.WhoUsesCaseStudyList-caseStudyLink:link,
+.WhoUsesCaseStudyList-caseStudyLink:visited {
+  color: #6e7072;
+  flex-direction: column;
+  text-align: center;
+  text-decoration: none;
+  transition: box-shadow 0.2s ease-in-out;
+}
+.WhoUsesCaseStudyList-caseStudyLink:link:hover {
+  box-shadow: 0 -0.0625rem 0.3125rem rgba(128, 134, 139, 0.09),
+    0 0.1875rem 0.3125rem rgba(128, 134, 139, 0.06),
+    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3),
+    0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15);
+}
+.WhoUsesCaseStudyList-caseStudyLink img {
+  height: auto;
+}
+@media only screen and (max-width: 38rem) {
+  .WhoUsesCaseStudyList-caseStudyLink img {
+    max-height: 2rem;
+    max-width: 100%;
+  }
+}
+.WhoUsesCaseStudyList-logo {
+  margin: auto;
+  max-height: 4rem;
+  max-width: 9.375rem;
+  width: auto;
+}
+.WhoUsesCaseStudyList-caseStudyLink:link,
+.WhoUsesCaseStudyList-caseStudyLink:visited {
+  border-radius: 0.25rem;
+  box-shadow: #f0f1f2 0 0.0625rem 0.25rem;
+  display: flex;
+  height: 100%;
+  padding: 0 0.3rem;
+  width: 100%;
+}
+.WhoUsesCaseStudyList-seeAll {
+  display: inline-block;
+  margin-left: 1rem;
+}
+.WhoUsesCaseStudyList-seeAll:hover {
+  text-decoration: none;
+}
+@media only screen and (min-width: 32rem) {
+  .WhoUsesCaseStudyList-gridContainer {
+    gap: 1rem 1.125rem;
+  }
+  .WhoUsesCaseStudyList-caseStudyLink {
+    padding: 0 1.5rem;
+  }
+  .WhoUsesCaseStudyList-caseStudy {
+    height: 5.9375rem;
+  }
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUsesCaseStudyList-gridContainer {
+    grid-template-columns: repeat(4, minmax(0, 25%));
+  }
+  .WhoUsesCaseStudyList-caseStudyLink:link,
+  .WhoUsesCaseStudyList-caseStudyLink:visited {
+    color: transparent;
+  }
+  .WhoUses-caseStudy a:link:hover,
+  .WhoUses-caseStudy a:visited:hover {
+    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  }
+  .WhoUsesCaseStudyList-caseStudyLink:link:hover
+    .WhoUsesCaseStudyList-caseStudyLink:visited:hover {
+    color: #6e7072;
+    transition: all 0.2s ease-in-out;
+  }
+}
+@media only screen and (min-width: 66.75rem) {
+  .WhoUsesCaseStudyList-gridContainer {
+    grid-template-columns: repeat(6, 1fr);
+  }
+  .WhoUsesCaseStudyList-caseStudy {
+    flex: 0 1 1fr;
+  }
+}
+.FeaturedUsers {
+  margin: 2.375rem auto 3.75rem;
+}
+.FeaturedUsers table {
+  border-collapse: collapse;
+  margin-bottom: 1.5rem;
+}
+.FeaturedUsers table thead {
+  background-color: #fafafa;
+}
+.FeaturedUsers table thead th {
+  color: #555759;
+  font-size: 1rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+  padding: 0.75rem 0;
+}
+.FeaturedUsers table thead th:not(:nth-child(1)) {
+  text-align: left;
+}
+.FeaturedUsers table td th:not(:nth-child(1)) {
+  text-align: left;
+}
+.FeaturedUsers table tr td,
+.FeaturedUsers table tr th {
+  padding: 1rem 0.3rem;
+  width: 30%;
+}
+.FeaturedUsers table tr td:first-of-type {
+  padding-left: 1rem;
+}
+.FeaturedUsers table tr td:first-of-type,
+.FeaturedUsers table tr th:first-of-type {
+  width: 15%;
+}
+.FeaturedUsers table tr td:nth-of-type(2),
+.FeaturedUsers table tr th:nth-of-type(2) {
+  width: 40%;
+}
+.FeaturedUsers table td {
+  color: #3e4042;
+  font-size: 0.875rem;
+  letter-spacing: 0.0117rem;
+  line-height: 1.5rem;
+  vertical-align: top;
+}
+.FeaturedUsers table td ul {
+  margin-top: 0;
+  padding-left: 1rem;
+}
+.FeaturedUsers table td ul li {
+  font-size: 0.875rem;
+  letter-spacing: 0.0117rem;
+  line-height: 1.5rem;
+}
+.FeaturedUsers table thead {
+  color: #555759;
+  font-size: 1rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.FeaturedUsers table tbody tr {
+  border-bottom: 0.0625rem solid #dcdee0;
+}
+.FeaturedUsers table tbody tr td {
+  margin: 0;
+}
+.FeaturedUsers table tbody tr td img {
+  width: 5rem;
+}
+.FeaturedUsers-moreProjectsBtn {
+  background: transparent;
+  border: none;
+  color: #5dc9e2;
+  cursor: pointer;
+  font-size: 0.875rem;
+  padding: 0.5rem 0;
+  position: relative;
+}
+.FeaturedUsers--hiddenDesktop {
+  display: block;
+  height: 3rem;
+  margin-bottom: 1rem;
+  width: auto;
+}
+.FeaturedUsers--hiddenMobile,
+.FeaturedUsers--hiddenMobile {
+  display: none;
+}
+@media only screen and (max-width: 48rem) {
+  .FeaturedUsers table tbody tr td:last-of-type {
+    padding-left: 1rem;
+    padding-top: 5rem;
+  }
+}
+@media only screen and (min-width: 48rem) {
+  .FeaturedUsers--hiddenMobile,
+  .FeaturedUsers--hiddenMobile {
+    display: table-cell;
+  }
+  .FeaturedUsers table tr td {
+    padding: 1rem 2rem 1rem 0;
+    width: 30%;
+  }
+  .FeaturedUsers--hiddenDesktop {
+    display: none;
+  }
+}
+.WhoUsesCaseStudy-librariesWrapper {
+  margin-bottom: 2.25rem;
+  margin-top: 1.875rem;
+}
+a.WhoUsesCaseStudy-librariesViewMoreLink {
+  color: #007d9c;
+  font-size: 0.875rem;
+}
+.WhoUsesCaseStudy-libraryTitle {
+  font-weight: 400;
+}
+.WhoUsesCaseStudy-librariesList {
+  column-gap: 7.375rem;
+  display: grid;
+  grid-template-columns: 1fr;
+  list-style: none;
+  margin: 1.5rem 0 0;
+  padding: 0;
+}
+.WhoUsesCaseStudy-librariesList h3 {
+  font-weight: 500;
+}
+.WhoUsesCaseStudy-library {
+  margin: 0 0 1.5rem;
+}
+.WhoUsesCaseStudy-library p {
+  color: #3e4042;
+  font-size: 1rem;
+  letter-spacing: 0.0111rem;
+  line-height: 1.1875rem;
+  margin: 0.5rem 0 0;
+}
+.WhoUsesCaseStudy-view-more {
+  margin-bottom: 2.5rem;
+}
+.WhoUsesCaseStudy-view-more a {
+  color: #3e4042;
+  font-size: 0.875rem;
+  font-style: normal;
+  font-weight: 500;
+  letter-spacing: 0.0156rem;
+  line-height: 1rem;
+  margin-bottom: 2.5rem;
+  text-align: center;
+}
+@media only screen and (min-width: 38rem) {
+  .WhoUsesCaseStudy-librariesList {
+    column-gap: 4rem;
+    grid-template-columns: 1fr 1fr;
+  }
+}
+.UseCases-gridContainer {
+  flex-direction: row;
+  justify-content: space-around;
+  margin: -1rem 0 0 -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
+}
+.UseCase {
+  flex: 1 0 15.625rem;
+  margin-top: 1rem;
+  max-width: 15.625rem;
+  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
+}
+.UseCase-logo {
+  align-items: center;
+  background: linear-gradient(10.64deg, #007d9c 0%, #00a29c 100%);
+  border-radius: 50%;
+  display: flex;
+  height: 3.75rem;
+  justify-content: center;
+  margin: auto;
+  width: 3.75rem;
+}
+.UseCase-logo img {
+  height: 2.625rem;
+  width: 2.625rem;
+}
+.UseCase-title {
+  text-align: center;
+}
+.UseCase-action {
+  font-size: 1.125rem;
+  line-height: 2.5rem;
+  text-align: center;
+}
+.WhyGo-gridContainer {
+  align-items: center;
+  justify-content: center;
+}
+.WhyGo-reasons {
+  column-gap: 3.313rem;
+  display: grid;
+  grid-template-columns: repeat(1, 1fr);
+  justify-content: space-between;
+  list-style: none;
+  padding-left: 0;
+  row-gap: 2rem;
+}
+.WhyGo-forwardArrowIcon,
+.Solutions-forwardArrowIcon {
+  font-size: 1rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhyGo-reasons {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+@media only screen and (min-width: 72.75rem) {
+  .WhyGo-reasons {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+.WhyGo-reason {
+  border: 0.063rem solid #dcdee0;
+  border-radius: 0.25rem;
+  display: flex;
+  flex: 0 30%;
+  flex-direction: column;
+  height: 100%;
+  justify-content: space-between;
+  margin-bottom: 1.5rem;
+  margin-top: 0;
+  max-width: 40rem;
+}
+.WhyGo-reasonDetails {
+  padding: 2rem 2rem 0.188rem;
+}
+.WhyGo-reasonFooter {
+  background-color: rgba(246, 248, 248, 0.35);
+  padding: 1rem 2rem 2rem;
+}
+.WhyGo-reasonIcon {
+  margin-bottom: 1rem;
+  text-align: left;
+}
+.WhyGo-reasonIcon img {
+  height: 2.25rem;
+}
+.WhyGo-reasonLearnMoreLink {
+  margin-top: 1.5rem;
+}
+.WhyGo-reasonLearnMoreLink a {
+  align-items: center;
+  display: flex;
+  font-size: 0.875rem;
+  letter-spacing: 0.016rem;
+  text-decoration: none;
+}
+.WhyGo-reasonPackages {
+  color: #3e4042;
+  font-size: 0.875rem;
+  letter-spacing: 0.055rem;
+}
+.WhyGo-reasonPackagesHeader {
+  margin-bottom: 0.688rem;
+}
+.WhyGo-reasonPackagesHeader img {
+  height: 0.938rem;
+  margin-right: 0.376rem;
+  padding: 0.063rem 0 0.063rem;
+  vertical-align: bottom;
+}
+.WhyGo-reasonPackagesList {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  padding: 0;
+}
+.WhyGo-reasonPackage {
+  border: 0.063rem solid #bfeaf4;
+  border-radius: 0.125rem;
+  box-sizing: border-box;
+  color: #007d9c;
+  font-size: 0.688rem;
+  letter-spacing: 0.0129rem;
+  line-height: 0.813rem;
+  list-style: none;
+  margin: 0.125rem 0.5rem 0.5rem 0;
+  padding: 0.188rem 0.188rem;
+
+  text-align: center;
+}
+.WhyGo-reasonShowMoreImgWrapper {
+  align-items: center;
+  background-color: #fafafa;
+  border-radius: 50%;
+  display: flex;
+  height: 14.313rem;
+  margin: 2.5rem auto 1.375rem;
+  width: 14.313rem;
+}
+.WhyGo-reasonShowMoreImg {
+  margin-left: 5%;
+  width: 100%;
+}
+.WhyGo-reasonShowMoreLink {
+  font-size: 0.875rem;
+  letter-spacing: 0.0164rem;
+  text-align: center;
+}
+.WhyGo-reasonShowMoreLink a {
+  border: 0.063rem solid #bfeaf4;
+  border-radius: 0.125rem;
+  box-sizing: border-box;
+  display: inline-block;
+  padding: 0.275rem 1.063rem 0.275rem 0.275rem;
+  text-decoration: none;
+}
+.WhyGo-reasonShowMoreLink a i {
+  padding-bottom: 0.063rem;
+  vertical-align: middle;
+}
+.WhyGo-reasonText p {
+  color: #3e4042;
+  font-size: 1rem;
+  font-weight: normal;
+  letter-spacing: 0.006rem;
+  line-height: 1.5rem;
+}
+.WhyGo-reasonTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.WhyGo-gopher {
+  flex: 1;
+  max-width: 28.4375rem;
+  text-align: center;
+}
+.WhyGo-gopher img {
+  width: 100%;
+}
+
+.headerWithLink {
+  display: flex;
+  justify-content: space-between;
+  width: 100%;
+}
+
+.headerWithLink h3 {
+  font-weight: 500;
+  margin-bottom: 0;
+}
+.headerLink {
+  align-self: center;
+  font-size: 1.125rem;
+  font-weight: 600;
+  margin: 0;
+}
+.LearnGo-subHeader {
+  display: flex;
+  justify-content: space-between;
+  width: 100%;
+}
+.LearnGo-subHeader h3 {
+  color: #6e7072;
+  font-size: 1rem;
+  font-weight: normal;
+}
+.LearnGo-courses {
+  display: flex;
+  flex: 1 0 100%;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: space-around;
+  list-style: none;
+  margin: 0 0 1rem -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
+  padding-left: 0;
+}
+@media only screen and (min-width: 72.75rem) {
+  .LearnGo-courses {
+    justify-content: space-between;
+  }
+}
+.LearnGo-courseItem {
+  align-items: center;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
+}
+.LearnGo-courseItem a {
+  color: #3e4042;
+}
+.LearnGo-courseTitle {
+  text-align: center;
+}
+.LearnGo-courseImage {
+  align-items: center;
+  background-color: #fff;
+  border-radius: 0.3125rem;
+  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  display: flex;
+  height: 11rem;
+  justify-content: center;
+  margin: auto;
+  max-width: 16.5rem;
+  width: 16.5rem;
+}
+.LearnGo-courseImage img {
+  max-height: 100%;
+  max-width: 100%;
+}
+.GoCarousel-eventsWrapper {
+  margin: auto;
+  max-width: 68rem;
+  overflow: hidden;
+  position: relative;
+  width: 84vw;
+}
+.GoCarousel-eventsSlides {
+  display: flex;
+  left: 0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  position: relative;
+  top: 0;
+  transition: left 0.2s ease-out;
+  width: 625rem;
+}
+.GoCarousel-eventGroup {
+  align-items: flex-start;
+  border-radius: 0.125rem;
+  cursor: pointer;
+  display: flex;
+  margin: 1rem 0;
+  padding: 1rem;
+  position: relative;
+  transition: all 1s;
+  width: 84vw;
+}
+.GoCarousel-eventsSlidesingleItem {
+  display: flex;
+  flex: 1;
+  margin-right: 2rem;
+}
+.GoCarousel-eventThumbnail {
+  background-color: #fff;
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.5rem;
+  display: flex;
+  height: 100%;
+  margin-right: 1.3125rem;
+  width: 6.625rem;
+}
+.GoCarousel-eventThumbnail img {
+  align-self: center;
+  height: auto;
+  object-fit: contain;
+  padding: 1rem;
+  width: 100%;
+}
+.GoCarousel-eventBody {
+  display: inline-flex;
+  flex: 1;
+  flex-direction: column;
+  height: 100%;
+  min-width: 0;
+  position: relative;
+}
+.GoCarousel-eventDate {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+}
+.GoCarousel-eventDate p {
+  color: #555759;
+  font-size: 0.8125rem;
+  font-style: normal;
+  line-height: 1rem;
+  margin: 0 0 1.5rem 0;
+}
+.GoCarousel-eventHeader {
+  color: #555759;
+  font-size: 0.6875rem;
+  font-weight: 500;
+  letter-spacing: 0.0625rem;
+  line-height: 1rem;
+  margin: 0 0 0.875rem;
+  text-transform: uppercase;
+}
+.GoCarousel-eventName {
+  margin: 0 0 0.25rem 0;
+  width: 100%;
+}
+.GoCarousel-eventName a {
+  -webkit-box-orient: vertical;
+  color: #202224;
+  display: -webkit-box;
+  font-weight: 500;
+  -webkit-line-clamp: 2;
+  line-height: 1.5rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.LearnGo-eventDescription {
+  -webkit-box-orient: vertical; /* See webkit-line-clamp */
+  display: -webkit-box; /* See webkit-line-clamp */
+  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
+}
+.GoCarousel-viewMore {
+  bottom: 0;
+  font-size: 0.875rem;
+  letter-spacing: 0.026rem;
+  line-height: 1rem;
+  margin: 0;
+  min-width: 6.25rem;
+  position: absolute;
+}
+@media only screen and (min-width: 48rem) {
+  .GoCarousel-eventGroup {
+    width: 42vw;
+  }
+}
+@media only screen and (min-width: 66.75rem) {
+  .GoCarousel-eventThumbnail img {
+    display: block;
+    margin: auto;
+  }
+  .GoCarousel-eventDate {
+    flex: 0;
+    flex-direction: row;
+    justify-content: flex-start;
+    min-width: 9rem;
+  }
+  .GoCarousel-eventText {
+    display: flex;
+    flex-direction: column;
+    height: 100%;
+    min-width: 0;
+    position: relative;
+  }
+  .GoCarousel-viewMore {
+    text-align: left;
+    width: 15.625rem;
+  }
+  .GoCarousel-eventBody {
+    display: flex;
+    flex-direction: column;
+  }
+  .GoCarousel-eventGroup {
+    max-width: 22.66rem;
+    width: 28vw;
+  }
+}
+
+.Learn-hero {
+  background-color: #fafafa;
+  background-image: radial-gradient(
+    60.0625rem 60.0625rem,
+    #bfeaf4 50%,
+    #fafafa 50%
+  );
+  background-position: top -50rem left -9rem;
+  background-repeat: no-repeat;
+  background-size: 75rem 75rem;
+  padding: 0 2.25rem 0;
+}
+
+.Learn-hero .Container {
+  max-width: 68.125rem;
+  position: relative;
+  z-index: 1;
+}
+
+.Learn-heroInner {
+  display: flex;
+  flex-direction: column-reverse;
+}
+
+.Learn-heroGopher {
+  display: flex;
+  justify-content: flex-end;
+  padding-top: 1.25rem;
+}
+
+.Learn-heroGopher img {
+  height: 13.5625rem;
+  width: auto;
+}
+
+.Learn-heroContent {
+  padding-top: 1.125rem;
+}
+
+.Learn-heroContent a:not(.js-downloadBtn) {
+  text-decoration: underline;
+}
+
+.Learn-heroContent h1 {
+  font-size: 1.5rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 2rem;
+}
+
+.Learn-heroContent p {
+  color: #6e7072;
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+  max-width: 27.1875rem;
+}
+
+.Learn-heroAction {
+  align-items: center;
+  background-color: #007d9c;
+  border-radius: 0.25rem;
+  display: flex;
+  height: 2.5rem;
+  justify-content: center;
+  width: 10.5rem;
+}
+
+.Learn-heroAction a,
+.Learn-heroAction a:hover,
+.Learn-heroAction a:visited {
+  color: #fff;
+  font-size: 0.875rem;
+  font-weight: 500;
+  line-height: 1rem;
+  text-decoration: none;
+}
+
+.Learn-heroAction span {
+  font-weight: normal;
+}
+
+/* Learn page grid rules */
+
+.LearnGo-gridContainer {
+  display: flex;
+  justify-content: center;
+  padding: 0rem 0rem 1rem;
+}
+
+.Learn-cardList {
+  column-gap: 3.313rem;
+  display: grid;
+  grid-template-columns: repeat(1, 1fr);
+  justify-content: space-between;
+  list-style: none;
+  padding-left: 0;
+  row-gap: 2rem;
+}
+
+.Learn-card {
+  height: 23.375rem;
+  max-width: 40rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-cardList {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+@media only screen and (min-width: 72.75rem) {
+  .Learn-cardList {
+    grid-template-columns: repeat(4, 1fr);
+  }
+}
+
+/* End Learn page grid rules */
+
+/* Learn quickstart grid */
+
+.Learn-hero .Learn-quickstarts {
+  margin: 0;
+  margin-top: 4rem;
+}
+
+.Learn-hero .Learn-quickstart {
+  height: auto;
+}
+
+.Learn-hero .LearnGo-gridContainer {
+  padding: 3rem 0rem 3rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-hero .Learn-cardList {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+
+@media only screen and (min-width: 57.7rem) {
+  .Learn-hero .Learn-cardList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+@media only screen and (min-width: 72.75rem) {
+  .Learn-hero .Learn-cardList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+
+/* Learn hero section */
+
+@media only screen and (min-width: 57.7rem) {
+  .Learn-hero {
+    background-position: top -35rem left 30rem;
+  }
+
+  .Learn-heroInner {
+    flex-direction: row;
+    justify-content: space-between;
+  }
+
+  .Learn-heroContent {
+    padding-top: 3.75rem;
+  }
+
+  .Learn-heroGopher {
+    flex: 1;
+    justify-content: center;
+    padding-top: 2.625rem;
+  }
+
+  .Learn-heroGopher img {
+    height: 21.0625rem;
+  }
+
+  .Learn-heroAction {
+    height: 4rem;
+    width: 16.5625rem;
+  }
+
+  .Learn-heroAction a,
+  .Learn-heroAction a:hover,
+  .Learn-heroAction a:visited {
+    font-size: 1.5rem;
+    line-height: 1.75rem;
+  }
+
+  .Learn-heroAction span {
+    font-size: 1rem;
+  }
+}
+
+@media only screen and (min-width: 91rem) {
+  .Learn-hero {
+    background-position: top -35rem left 50rem;
+  }
+}
+
+.Learn-guided,
+.Learn-online,
+.Learn-selfPaced,
+.Learn-books,
+.Learn-inPersonTraining,
+.Learn-meetups {
+  margin-top: 3.75rem;
+  padding: 0 1.5rem;
+}
+
+.Learn-learningResources {
+  align-items: center;
+  display: flex;
+  flex-direction: column;
+  margin: 3.75rem 0;
+}
+
+.Learn-learningResources h2,
+.Learn-learningResourcesHeader h3 {
+  margin: 0;
+}
+
+.Learn-learningResources h2 {
+  font-size: 2rem;
+  font-weight: 500;
+  letter-spacing: 0.1875rem;
+  line-height: 2.3125rem;
+}
+
+.Learn-learningResourcesHeader {
+  display: flex;
+  justify-content: center;
+}
+
+.Learn-learningResourcesHeader h3 {
+  font-size: 1.5rem;
+  font-weight: bold;
+  letter-spacing: normal;
+  line-height: 2.25rem;
+}
+
+.Learn-selfPaced .Learn-card .Card-content {
+  justify-content: space-between;
+}
+
+.Learn-online .Card-thumbnail {
+  background-position: 1.5rem center;
+  background-repeat: no-repeat;
+  background-size: auto 1.5rem;
+  height: 7.5625rem;
+}
+
+.Learn-selfPaced .Learn-card {
+  height: 20.3125rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-learningResourcesHeader {
+    display: flex;
+    justify-content: flex-start;
+  }
+
+  .Learn-learningResourcesHeader h2 {
+    font-size: 2.25rem;
+    line-height: 2.625rem;
+  }
+}
+
+.Learn-cardList.Learn-bookList {
+  grid-template-columns: repeat(1, 1fr);
+  width: 100%;
+}
+
+.Learn-card.Learn-book {
+  height: auto;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-cardList.Learn-bookList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+
+  .Learn-card.Learn-book {
+    max-width: 13.125rem;
+  }
+}
+
+@media only screen and (min-width: 57.7rem) {
+  .Learn-cardList.Learn-bookList {
+    grid-template-columns: repeat(4, 1fr);
+  }
+}
+
+@media only screen and (min-width: 72.75rem) {
+  .Learn-cardList.Learn-bookList {
+    grid-template-columns: repeat(5, 1fr);
+  }
+}
+
+.Learn-inPersonList {
+  display: flex;
+  flex: 1 0 100%;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  list-style: none;
+  margin: 1.875rem 0 1.875rem -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
+  padding-left: 0;
+}
+
+.Learn-inPerson {
+  border-bottom: 0.0625rem solid #dcdee0;
+  flex: 1 1 31.25rem;
+  margin: 0 0 0 1rem; /* Gutter between grid cells. */
+  max-width: 31rem;
+  padding-bottom: 1.25rem;
+}
+
+.Learn-inPerson:nth-child(1),
+.Learn-inPerson:nth-child(2) {
+  border-top: 0.0625rem solid #dcdee0;
+}
+.Learn-inPersonTitle {
+  font-size: 1.25rem;
+}
+.Learn-inPersonBlurb {
+  margin: 0;
+}
+
+.Learn-events {
+  flex: 1 0 100%;
+  list-style: none;
+  margin: 0.5rem 0 1.875rem;
+  padding: 0;
+  width: 100%;
+}
+.Learn-eventItem {
+  align-items: flex-start;
+  display: flex;
+  flex-direction: column;
+  padding: 1.875rem 0 0.175rem 0;
+}
+.Learn-eventItem + .Learn-eventItem {
+  border-top: 0.0625rem solid #dcdee0;
+}
+
+.Learn-eventThumbnail {
+  align-self: center;
+  display: flex;
+  flex: 0 0 3rem;
+  height: auto;
+  margin-bottom: 1rem;
+}
+.Learn-eventThumbnail--noimage {
+  background-color: #fff;
+}
+.Learn-eventThumbnail img {
+  height: auto;
+
+  object-fit: cover;
+  width: 100%;
+}
+.Learn-eventAttendees {
+  display: flex;
+}
+.Learn-eventAttendeesItem img {
+  border-radius: 100%;
+  height: 2rem;
+  width: 2rem;
+}
+.Learn-eventBody {
+  display: flex;
+  flex: 1;
+  flex-direction: column;
+  max-width: 100%;
+  min-width: 0;
+}
+.Learn-eventDate {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  margin-bottom: 1rem;
+}
+.Learn-eventDate p {
+  color: #6e7072;
+  margin: 0;
+}
+.Learn-eventName {
+  color: #202224;
+  font-size: 1.25rem;
+  font-weight: 500;
+  margin: 0;
+
+  margin-bottom: 1rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.Learn-eventName a {
+  color: #202224;
+  text-decoration: none;
+}
+.Learn-eventDescription {
+  -webkit-box-orient: vertical; /* See webkit-line-clamp */
+  display: -webkit-box; /* See webkit-line-clamp */
+  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
+  line-height: 24px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.Learn-eventText {
+  margin-bottom: 0.5rem;
+}
+.Learn-viewMore {
+  align-items: center;
+  display: flex;
+  font-size: 0.875rem;
+  margin: 0;
+  min-width: 6.25rem;
+}
+.Learn-viewMore:hover {
+  text-decoration: none;
+}
+.Learn-viewMore span {
+  font-size: 1rem;
+  margin-left: 0.48rem;
+}
+@media only screen and (min-width: 33.75rem) {
+  .Learn-eventItem {
+    flex-direction: row;
+  }
+
+  .Learn-eventBody {
+    max-width: 46.825rem;
+  }
+  .Learn-eventThumbnail {
+    height: 8rem;
+    margin-bottom: 0;
+    margin-right: 1rem;
+    min-width: 8rem;
+  }
+  .Learn-eventThumbnail img {
+    height: 8rem;
+    object-fit: contain;
+    width: 8rem;
+  }
+  .Learn-eventDate {
+    flex: 0;
+    flex-direction: column;
+    justify-content: center;
+    min-width: 9rem;
+  }
+  .Learn-eventText {
+    display: flex;
+    flex-direction: column;
+    min-width: 0;
+    padding-right: 2rem;
+  }
+  .Learn-eventDescription {
+    -webkit-line-clamp: 2; /* see non-media-query definition. */
+    margin: 0 0 0.5rem;
+  }
+  .Learn-viewMore {
+    align-self: center;
+    text-align: right;
+  }
+  .Learn-eventItem {
+    padding: 1.875rem 0;
+  }
+}
+
+.Learn-tile a {
+  width: 100%;
+}
+
+.Learn-tileList {
+  display: grid;
+  gap: 2rem;
+  grid-template-columns: repeat(2, minmax(0, 1fr));
+  list-style: none;
+  padding: 0;
+}
+@media only screen and (min-width: 38rem) {
+  .Learn-tileList {
+    grid-template-columns: repeat(4, minmax(0, 1fr));
+  }
+}
+@media only screen and (min-width: 48rem) {
+  .Learn-tileList {
+    justify-content: space-between;
+  }
+  .Learn-tileList {
+    column-gap: 3rem;
+  }
+}
+.Learn-tile {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+}
+.Learn-tile a {
+  color: #3e4042;
+}
+.Learn-tileTitle {
+  display: block;
+  font-size: 0.75rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.01rem;
+  line-height: 0.875rem;
+  margin: 1.5rem auto 0;
+  overflow-wrap: break-word;
+  text-align: center;
+}
+.Learn-tileThumbnail {
+  align-items: center;
+  background-color: #fff;
+  border-radius: 0.3125rem;
+  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  display: flex;
+  justify-content: center;
+  margin: auto;
+  width: 100%;
+}
+.Learn-tileThumbnail img {
+  max-height: 100%;
+  max-width: 100%;
+}
+.Learn-tileThumbnail--book img {
+  max-height: 100%;
+  max-width: 100%;
+}
+
+.Solutions-title,
+.Solutions-useCases,
+.Solutions-caseStudies {
+  margin: auto;
+  max-width: 75.75rem;
+}
+.Solutions-title,
+.Solutions-useCases,
+.Solutions-caseStudies {
+  padding: 0 1.5rem;
+}
+.SolutionsHeroCarousel-wrapper {
+  max-width: 68rem;
+  width: 76vw;
+}
+.SolutionsHeroCarousel-slides {
+  transition: left 0.2s ease-out;
+}
+.GoCarousel-controlNext-solutionsHero {
+  right: 0.5rem;
+}
+.GoCarousel-controlPrev-solutionsHero {
+  left: 0.5rem;
+}
+.SolutionsHeroCarousel-slides {
+  display: flex;
+  left: 0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  position: relative;
+  top: 0;
+  width: 625rem;
+}
+.SolutionsHeroCarousel-slide {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  max-width: 68rem;
+  padding: 0 0.2rem;
+  position: relative;
+  width: 76vw;
+}
+@media only screen and (min-width: 38rem) {
+  .SolutionsHeroCarousel-wrapper,
+  .SolutionsHeroCarousel-slide {
+    width: 82vw;
+  }
+  .GoCarousel-controlPrev-solutionsHero {
+    left: 2rem;
+  }
+  .GoCarousel-controlNext-solutionsHero {
+    right: 2rem;
+  }
+}
+.Solutions-headline .Container {
+  display: flex;
+}
+.Solutions-useCases,
+.Solutions-caseStudies {
+  margin-bottom: 6.25rem;
+}
+.Solutions-title {
+  padding: 5rem 1.5rem 3rem;
+}
+.Solutions-title h1,
+.WhoUsesSubPage-heroInner--caseStudy h1,
+.WhoUsesSubPage-heroInner--useCase h1 {
+  font-size: 1.5rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 2rem;
+  margin-bottom: 0.5rem;
+}
+.WhoUsesSubPage-heroInner--caseStudy h1 {
+  margin-top: 0;
+}
+.WhoUsesSubPage-heroInner--useCase h1 {
+  margin-top: 1rem;
+}
+.Solutions-title h1 {
+  text-align: center;
+}
+.Solutions-title h3 {
+  color: #3e4042;
+  font-size: 1rem;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+  margin-bottom: 0;
+  text-align: center;
+}
+.Solutions-headlineText {
+  display: inline-block;
+}
+.Solutions-headlineImg {
+  margin-top: 1.5rem;
+  position: relative;
+  width: 100%;
+}
+.Solutions-headlineImg img {
+  display: block;
+  width: 100%;
+}
+.Solutions-headlineBody {
+  align-items: flex-start;
+  color: #6e7072;
+  display: flex;
+  flex-direction: column;
+  font-size: 0.875rem;
+  font-weight: normal;
+  line-height: 1.5rem;
+  margin-bottom: 1.5rem;
+}
+.Solutions-headlineBody a {
+  align-items: center;
+  display: flex;
+  margin-top: 1rem;
+  text-decoration: none;
+}
+.Solutions-headlineBody a i,
+.WhyGo-reasonLearnMoreLink a i,
+.WhyGo-reasonShowMoreLink a i {
+  margin-left: 0.2rem;
+  text-decoration: none;
+  transition: transform 100ms ease-in-out;
+}
+.Solutions-headlineBody a:hover i,
+.WhyGo-reasonLearnMoreLink a:hover i,
+.WhyGo-reasonShowMoreLink a:hover i {
+  transform: translateX(0.2rem);
+}
+.Solutions-headlineNotification {
+  color: #6e7072;
+  font-size: 0.75rem;
+  font-style: normal;
+  font-weight: 500;
+  line-height: 2.25rem;
+  margin: 1.5rem 0;
+}
+.Solutions-headline {
+  background-color: #fafafa;
+}
+.Solutions-headline h2 {
+  color: #202224;
+  font-size: 1.5rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 2rem;
+  margin-bottom: 1rem;
+}
+@media only screen and (min-width: 66.75rem) {
+  .SolutionsHeroCarousel-slide {
+    align-items: center;
+    flex-direction: row-reverse;
+    justify-content: space-between;
+  }
+  .Solutions-headlineText {
+    width: 33%;
+  }
+  .Solutions-headlineImg {
+    height: 100%;
+    margin-bottom: 0;
+    width: 60%;
+  }
+  .Solutions-headlineImg img {
+    max-height: 100%;
+    position: absolute;
+    right: 0;
+    top: 50%;
+    transform: translate(0, -50%);
+  }
+}
+.SolutionsTabs-tabList {
+  margin-top: 4rem;
+  width: 100%;
+}
+.SolutionsTabs-tabList hr {
+  border: 0.0625rem solid #c6c8ca;
+  margin: -0.0625rem 0 2rem;
+}
+.SolutionsTabs-tab {
+  background-color: #fff;
+  border-style: none;
+  color: #202224;
+  cursor: pointer;
+  font-size: 1rem;
+  font-weight: 500;
+  line-height: 2.25rem;
+  margin-right: 1.625rem;
+  outline: none;
+  padding: 0.375rem 0;
+}
+.SolutionsTabs-tab:focus {
+  border-bottom: 0.25rem solid #c6c8ca;
+}
+.SolutionsTabs-tab:last-of-type {
+  margin-right: 0;
+}
+.SolutionsTabs-tab[aria-selected='true'] {
+  border-bottom: 0.25rem solid #007d9c;
+}
+@media only screen and (min-width: 48rem) {
+  .SolutionsTabs-tab {
+    font-size: 1.125rem;
+    margin-right: 4rem;
+  }
+}
+.Solutions-useCasesHeader h2,
+.Solutions-caseStudiesHeader h2 {
+  letter-spacing: 0.125rem;
+}
+.Solutions-cardList,
+.Solutions-caseStudyList {
+  display: grid;
+  grid-gap: 1.5rem;
+  grid-template-columns: repeat(1, 1fr);
+  list-style: none;
+  padding-left: 0;
+}
+.Solutions-cardList[hidden] {
+  display: none;
+}
+.Solutions-caseStudiesList {
+  margin: 0 0 1rem 0;
+}
+.Solutions-card {
+  background: #fff;
+  border: 0.0625rem solid #c6c8ca;
+  border-radius: 0.625rem;
+  box-sizing: border-box;
+  flex: 0 100%;
+}
+@media only screen and (min-width: 38rem) {
+  .Solutions-cardList {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+@media only screen and (min-width: 57.7rem) {
+  .Solutions-card {
+    box-shadow: none;
+    flex: 0 48%;
+  }
+  .Solutions-card:hover {
+    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+    transition: all 0.2s ease-in-out;
+  }
+  .Solutions-cardList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+@media only screen and (min-width: 62.5rem) {
+  .Solutions-card {
+    box-shadow: none;
+    flex: 0 30%;
+  }
+}
+.Solutions-useCaseLogo {
+  height: 5rem;
+  margin: 0 2rem;
+  width: 100%;
+}
+.Solutions-card a:link,
+.Solutions-card a:visited {
+  color: #202224;
+  display: block;
+  text-decoration: none;
+}
+.Solutions-useCaseAction {
+  bottom: 1rem;
+  color: #007d9c;
+  font-size: 1rem;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+  position: absolute;
+}
+.Solutions-useCaseAction {
+  align-items: center;
+  display: flex;
+}
+.Solutions-useCaseAction i {
+  margin-left: 0.5rem;
+}
+.Solutions-useCaseDescription {
+  color: #6e7072;
+  font-size: 1rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+}
+.Solutions-useCaseTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.Solutions-useCaseBody {
+  flex: 1;
+  justify-content: center;
+  margin-bottom: 2.5rem;
+}
+
+.Solutions-useCaseLogo {
+  display: flex;
+  flex: 1;
+  justify-content: center;
+  margin: 0;
+}
+
+.Solutions-useCaseLogo img {
+  align-self: center;
+  max-height: 4rem;
+  max-width: 11rem;
+}
+.Solutions-useCaseLink {
+  height: 100%;
+  padding: 2rem 2rem 3rem;
+  position: relative;
+}
+.Solutions-footer {
+  margin: 2rem 0 2.875rem;
+}
+.Solutions-footer p {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: normal;
+  letter-spacing: 0.007rem;
+  line-height: 1.5rem;
+}
+.TestimonialsGo-quotes {
+  display: flex;
+  left: 0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  position: relative;
+  top: 0;
+  transition: left 0.2s ease-out;
+  width: 625rem;
+}
+.TestimonialsGo-quoteGroup {
+  align-items: flex-start;
+  display: flex;
+  margin: 0 0;
+  max-width: 62.5rem;
+  padding: 3.75rem 2rem 2.25rem;
+  width: 90vw;
+}
+.TestimonialsGo-quoteSingleItem {
+  display: flex;
+  flex: 1;
+}
+.TestimonialsGo-quoteContainer {
+  display: inline-flex;
+  flex: 1;
+  flex-direction: column;
+  min-width: 0;
+}
+.TestimonialsGo-quoteSection {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+}
+.TestimonialsGo-quoteSection p {
+  color: #202224;
+  font-size: 0.875rem;
+  letter-spacing: 0.0082rem;
+  line-height: 1.5rem;
+  text-align: center;
+}
+.TestimonialsGo-author {
+  color: #3e4042;
+  font-size: 0.8rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1.5rem;
+  text-align: right;
+  width: 100%;
+}
+.PullQuote-title,
+.BackgroundQuote-title {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: flex-end;
+}
+.NoWrapSpan {
+  white-space: nowrap;
+}
+@media only screen and (min-width: 52rem) {
+  .TestimonialsGo-quote {
+    font-size: 1.3125rem;
+  }
+  .TestimonialsGo-author {
+    font-size: 1rem;
+  }
+  .TestimonialsGo-quoteSection p {
+    font-size: 1.3125rem;
+    letter-spacing: 0.0082rem;
+    line-height: 2.25rem;
+  }
+}
+.PullQuote {
+  color: #6e7072;
+  margin-bottom: 2rem;
+}
+.PullQuote-body {
+  margin: 1.5rem 0 1rem;
+}
+.PullQuote-link,
+p.PullQuote-body,
+p.BackgroundQuote-body {
+  color: inherit;
+}
+.PullQuote-author,
+.BackgroundQuote-author {
+  display: flex;
+  flex-wrap: wrap;
+  font-style: normal;
+  font-weight: 500;
+  justify-content: flex-end;
+  margin-left: auto;
+  margin-top: 1rem;
+}
+.PullQuote-author {
+  font-size: 0.875rem;
+}
+.BackgroundQuote {
+  background-color: #007d9c;
+  color: #fff;
+  margin: 1.5rem auto;
+  padding: 2rem 1.5rem;
+}
+p.BackgroundQuote-body {
+  font-size: 1.3125rem;
+  line-height: 2.25rem;
+}
+.QuoteBlock {
+  border-bottom: 0.25rem solid #007d9c;
+  border-top: 0.25rem solid #007d9c;
+  display: block;
+  float: none;
+  margin-bottom: 1.5rem;
+  margin-left: 0;
+  margin-right: 0;
+  margin-top: 1.5rem;
+  padding-bottom: 0.5rem;
+  width: 100%;
+}
+@media only screen and (min-width: 48rem) {
+  .QuoteBlock {
+    float: right;
+    margin-top: 0;
+    width: 46%;
+  }
+  .PullQuote-body {
+    font-size: 1.125rem;
+    line-height: 1.75rem;
+    margin: 1.5rem 0 1rem;
+  }
+  .BackgroundQuote-body {
+    margin-top: 0;
+  }
+  .BackgroundQuote {
+    padding: 3rem 4rem 2rem;
+  }
+  .PullQuote-author {
+    font-size: 1rem;
+  }
+}
+.QuoteBlock-body {
+  color: #3e4042;
+  font-size: 1.125rem;
+  letter-spacing: 0.007rem;
+  line-height: 2rem;
+}
+.QuoteBlock-author {
+  color: #3e4042;
+  font-size: 1rem;
+  font-style: normal;
+  font-weight: 500;
+  line-height: 3rem;
+}
+.QuoteBlock-link {
+  color: #6e7072;
+}
+.LargeMedia {
+  align-items: flex-start;
+  display: flex;
+  padding: 2.125rem 0.5rem;
+}
+.LargeMedia + .LargeMedia {
+  border-top: 0.0625rem solid #dcdee0;
+}
+.LargeMedia-image {
+  height: 5rem;
+  margin-right: 1rem;
+  object-fit: contain;
+  width: 5rem;
+}
+.LargeMedia-body {
+  flex: 1;
+}
+
+.SmallMedia-image {
+  height: 3rem;
+  margin-right: 1rem;
+  object-fit: contain;
+  width: 3rem;
+}
+
+.XLargeMedia-image {
+  height: 8rem;
+  margin-right: 1rem;
+  object-fit: contain;
+  width: 8rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .LargeMedia {
+    align-items: center;
+  }
+  .SmallMedia-image {
+    height: 9rem;
+    margin-right: 5.5rem;
+    width: 9rem;
+  }
+  .LargeMedia-image {
+    height: 12.5rem;
+    margin-right: 5.5rem;
+    width: 12.5rem;
+  }
+  .XLargeMedia-image {
+    height: 18rem;
+    margin-right: 1rem;
+    object-fit: contain;
+    width: 18rem;
+  }
+}
+.MediaList {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-around;
+  list-style: none;
+  padding: 0;
+}
+.MediaList-item {
+  flex: 0 1 14rem;
+  justify-content: space-around;
+  text-align: center;
+}
+.MediaList-itemImage {
+  height: 10rem;
+  object-fit: contain;
+  width: 10rem;
+}
+.MediaList-itemTitle {
+  color: #202224;
+}
+.MediaList-itemBody {
+  color: #555759;
+}
+@media only screen and (min-width: 48rem) {
+  .MediaList {
+    margin-left: -2rem; /* First item of each row should have no left gutter */
+  }
+  .MediaList-item {
+    flex: 0 0 12rem;
+    margin-left: 2rem; /* Gutter between items */
+  }
+}
+.MediaList-itemBox {
+  background-color: #f8f8f8;
+  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  flex: 0 1 33.125rem;
+  justify-content: space-around;
+  margin-top: 2rem;
+  padding: 1.5rem;
+}
+.MediaList-itemBoxHeader-top {
+  align-items: center;
+  flex-direction: column;
+  margin: auto;
+  text-align: center;
+  width: 10.75rem;
+}
+.MediaList-itemBoxHeader {
+  align-items: center;
+  display: flex;
+  flex-direction: column;
+  margin: auto;
+  text-align: center;
+  width: 10.75rem;
+}
+.MediaList-itemBoxImage {
+  height: 5.125rem;
+  object-fit: contain;
+  width: 5.125rem;
+}
+.MediaList-itemBox .MediaList-itemBoxTitle {
+  color: #202224;
+  font-size: 1.5rem;
+  font-weight: normal;
+  margin: 0.5rem 0 0 0;
+}
+.MediaList-itemBox .MediaList-itemBoxBody {
+  align-self: flex-end;
+  color: #555759;
+  flex: 1;
+}
+.MediaList-itemBox .MediaList-itemBoxBody-top {
+  align-self: flex-start;
+  color: #555759;
+  flex: 1;
+  margin: auto !important;
+}
+@media only screen and (min-width: 48rem) {
+  .MediaList-itemBoxHeader {
+    justify-content: flex-end;
+    margin: 0 1rem 1.5rem 0;
+  }
+  .MediaList-itemBox {
+    display: flex;
+    flex: 0 0 33.125rem;
+    margin: 2rem 0 0 2rem; /* Gutter between grid cells. */
+    min-height: 15.0625rem;
+  }
+  .MediaList-itemBox .MediaList-itemBoxBody {
+    margin: 0 1.3rem 2rem 0;
+  }
+}
+.StarItem {
+  align-items: flex-start;
+  display: flex;
+}
+.StarItem-icon {
+  align-items: center;
+  background: linear-gradient(10.64deg, #007d9c 0%, #00a29c 100%);
+  border-radius: 50%;
+  display: flex;
+  height: 1.5rem;
+  justify-content: center;
+  margin: 1.1rem 1.25rem 0 0;
+  width: 1.5rem;
+}
+.StarItem-image {
+  height: 1.25rem;
+  object-fit: contain;
+  width: 1.25rem;
+}
+.StarItem-body {
+  flex: 1;
+}
+.StarItem-title {
+  margin: 1rem 0;
+}
+
+.Right {
+  float: right;
+  margin-left: 1rem;
+}
+.Left {
+  float: left;
+  margin-right: 1rem;
+}
+.SearchForm {
+  align-items: center;
+  background-color: transparent;
+  border-radius: 0.25rem;
+  display: flex;
+  flex: 1;
+  font-size: 1rem;
+  height: 2rem;
+  margin: 0.6875rem 0;
+  max-width: 2rem;
+  transition: max-width 200ms;
+}
+.SearchForm--open {
+  background-color: #fff;
+  margin-left: 1.5rem;
+  max-width: 100%;
+}
+.SearchForm svg {
+  fill: #fff;
+}
+.SearchForm--open svg {
+  fill: #555759;
+  margin-right: 0.5rem;
+}
+.SearchForm-input {
+  height: 100%;
+  opacity: 0;
+  padding: 0;
+  transition: width 200ms, padding 200ms, opacity 200ms;
+  width: 0;
+}
+.SearchForm--open .SearchForm-input {
+  flex: 1;
+  opacity: 1;
+  padding: 0.5rem;
+  transition: width 200ms, padding 200ms;
+  width: 100%;
+}
+.SearchForm-input::placeholder {
+  color: #848688;
+}
+.SearchForm-input {
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  font: inherit;
+  opacity: 0;
+  outline: none;
+}
+.SearchForm-submit {
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  cursor: pointer;
+  display: flex;
+  outline: 0;
+  padding: 0;
+}
+.SearchForm svg {
+  box-sizing: border-box;
+  cursor: pointer;
+  margin-left: 0.5rem;
+  width: 1.4375rem;
+}
+@media only screen and (min-width: 32rem) {
+  .Header-rightContent {
+    width: 100%;
+  }
+  .SearchForm {
+    background-color: #fff;
+    margin: 0.6rem 1.4rem 0.6rem 0;
+    max-width: none;
+  }
+  .SearchForm-input {
+    opacity: 1;
+    padding: initial;
+    width: 100%;
+  }
+  .SearchForm svg {
+    fill: #555759;
+    margin-right: 0.5rem;
+  }
+}
+.Series-list {
+  list-style: none;
+  padding: 0;
+}
+.Series-listItem {
+  display: flex;
+}
+.Series-listItem a {
+  display: flex;
+  flex: 1;
+  padding: 1.25rem 0;
+}
+.Series-listItem + .Series-listItem {
+  border-top: 0.0625rem solid #dcdee0;
+}
+.Series-listItemIcon {
+  margin-right: 1rem;
+}
+.Series-listItemIcon img {
+  width: 4rem;
+}
+.Series-listItemText {
+  flex: 1;
+}
+.Series-listItemPrimary {
+  display: block;
+  font-size: 1.125rem;
+  margin: 0;
+}
+.Series-listItemSecondary {
+  color: #202224;
+  display: inline-block;
+  margin-bottom: 0;
+  text-decoration: none;
+}
+.UseCaseSubNav {
+  background-color: #fff;
+  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
+  position: fixed;
+  width: 100%;
+  z-index: 10;
+}
+.UseCaseSubNav--default {
+  top: 3.5rem;
+}
+.UseCaseSubNav--lower {
+  top: calc(3.5rem + 9.75rem);
+}
+.UseCaseSubNav-menu {
+  background-color: #fff;
+  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
+  max-height: 0;
+  overflow: hidden;
+  padding-left: 1rem;
+  position: absolute;
+  transition: max-height 100ms ease-in-out;
+  width: 100%;
+}
+.UseCaseSubNav-menuHeader {
+  align-items: center;
+  background: transparent;
+  border: none;
+  color: #555759;
+  cursor: pointer;
+  display: flex;
+  font-size: 0.875rem;
+  justify-content: space-between;
+  outline: none;
+  padding: 0.8125rem 1rem 0.8125rem 1.6875rem;
+  width: 100%;
+}
+.UseCaseSubNav-menuIcon {
+  pointer-events: none;
+  transition: transform 100ms ease-in-out;
+}
+.UseCaseSubNav-menuIcon--open {
+  transform: rotate(180deg);
+}
+.UseCaseSubNav-menu--open {
+  max-height: 25rem;
+  padding-bottom: 2rem;
+}
+.UseCase-content {
+  display: flex;
+  flex-direction: row;
+}
+.CaseStudy-content {
+  display: grid;
+  gap: 2rem;
+  grid-template-columns: 1fr;
+}
+.CaseStudy-contentBody img {
+  width: 100%;
+}
+.CaseStudy-contentBody hr {
+  border: 0.0625rem solid #c6c8ca;
+  margin: 2rem 0 2rem;
+}
+.CaseStudy-contentAside {
+  flex: 0 0 33.33%;
+  min-width: 18.75rem;
+}
+.UseCase-contentAside {
+  display: none;
+}
+.UseCase-content {
+  margin-top: 2rem;
+}
+.UseCase-contentBody {
+  flex: 0 0 100%;
+  margin-top: 1rem;
+  max-width: 47.8125rem;
+  width: 100%;
+}
+.UseCase-contentBody h2:first-of-type,
+.UseCase-contentBody h3:first-of-type {
+  margin-top: 0;
+}
+.UseCase-contentBody h2,
+.FeaturedUsers h2:first-of-type {
+  margin-bottom: 1.5rem;
+  margin-top: 3rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .CaseStudy-content {
+    grid-template-columns: 2fr 1fr;
+  }
+  .UseCase-contentAside {
+    display: block;
+    flex: 0 0 20%;
+    position: sticky;
+  }
+  .UseCaseSubNav {
+    display: none;
+  }
+  .UseCase-contentBody {
+    flex: 0 0 80%;
+    order: 1;
+    width: 80%;
+  }
+  .CaseStudy-contentAside {
+    order: 2;
+  }
+  .CaseStudy-contentBody {
+    order: 1;
+  }
+}
+.UseCaseSubNav-anchorLinks {
+  align-items: flex-start;
+  display: flex;
+  flex-direction: column;
+}
+.UseCaseSubNav-anchorLinks--sticky {
+  position: fixed;
+  top: 5.5rem;
+}
+a.UseCase-anchorLink {
+  background: transparent;
+  border: none;
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 400;
+  line-height: 1.5rem;
+  margin-top: 1rem;
+  padding-left: 0.5rem;
+  position: relative;
+}
+a.UseCase-anchorLink:first-of-type {
+  margin-top: 1.5rem;
+}
+a.UseCase-anchorLink.selected {
+  font-weight: 500;
+}
+a.UseCase-anchorLink.selected::before {
+  background-color: #007d9c;
+  border-radius: 1rem;
+  content: ' ';
+  display: inline-block;
+  height: 0.3rem;
+  left: -0.5rem;
+  position: absolute;
+  top: 0.5rem;
+  width: 0.3rem;
+}
+.WhoUsesSubPage-hero--useCase {
+  margin-top: 2.625rem;
+}
+.WhoUsesSubPage-heroInner--caseStudy,
+.WhoUsesSubPage-heroInner--useCase {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  margin-bottom: 1.5rem;
+  position: relative;
+}
+.WhoUsesSubPage-heroInner--useCase {
+  background-color: #fafafa;
+  padding-bottom: 2.5rem;
+  padding-top: 3.5rem;
+}
+.WhoUsesSubPage-heroInner--caseStudy > div {
+  justify-content: center;
+}
+.WhoUsesSubPage-heroContent--caseStudy {
+  display: flex;
+  flex-direction: column-reverse;
+  max-width: 75.75rem;
+  position: relative;
+  z-index: 1;
+}
+.WhoUsesSubPage-heroContent--useCase {
+  margin: auto;
+  max-width: 75.75rem;
+  width: 100%;
+}
+.WhoUsesSubPage-heroText--caseStudy,
+.WhoUsesSubPage-heroText--useCase {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  width: 100%;
+}
+.WhoUsesSubPage-heroText--caseStudy {
+  padding: 2rem 1.5rem;
+}
+.WhoUsesSubPage-heroText--useCase {
+  padding: 0 1.5rem;
+}
+.WhoUsesSubPage-heroImg {
+  background: -webkit-linear-gradient(0deg, #fafafa 50vw, #bfeaf4 50vw);
+  display: flex;
+  max-width: 75.75rem;
+  padding-left: 1.5rem;
+  position: relative;
+  width: 100%;
+  z-index: 1;
+}
+.WhoUsesSubPage-heroImg img {
+  height: auto;
+  max-height: 10.625rem;
+  min-height: 8rem;
+  width: auto;
+}
+@media only screen and (min-width: 38rem) {
+  .Solutions-title h1,
+  .WhoUsesSubPage-heroInner--caseStudy h1,
+  .WhoUsesSubPage-heroInner--useCase h1 {
+    font-size: 2.25rem;
+    line-height: 3rem;
+  }
+  .WhoUsesSubPage-heroImg {
+    background: -webkit-linear-gradient(0deg, #fafafa 40vw, #bfeaf4 40vw);
+  }
+  .WhoUsesSubPage-heroImg img {
+    max-height: 15.625rem;
+    min-height: 10.625rem;
+  }
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUsesSubPage-hero--useCase {
+    margin-top: 0;
+  }
+  .WhoUsesSubPage-heroInner--caseStudy {
+    background: -webkit-linear-gradient(0deg, #fafafa 70vw, #bfeaf4 70vw);
+    flex-direction: row;
+  }
+  .WhoUsesSubPage-heroContent--caseStudy {
+    align-items: center;
+    flex-direction: row;
+  }
+  .WhoUsesSubPage-heroImg {
+    background: transparent;
+    min-width: 37.75rem;
+    padding: 0;
+    width: 55%;
+  }
+  .WhoUsesSubPage-heroText--caseStudy {
+    width: 45%;
+  }
+  .WhoUsesSubPage-heroImg img {
+    max-height: none;
+    min-height: 18.75rem;
+    width: 100%;
+  }
+  .WhoUsesSubPage-heroInner--useCase h1 {
+    margin-top: 3rem;
+  }
+}
+.ToolsBlurbs {
+  display: grid;
+  gap: 2rem 3.4375rem;
+  grid-template-columns: 1fr;
+  margin-top: 1.5rem;
+}
+.ToolsBlurbs-blurb {
+  background-color: #fff;
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.25rem;
+  padding: 1.5rem 1rem;
+}
+.ToolsBlurbs-blurbHeader {
+  align-items: center;
+  display: flex;
+}
+.ToolsBlurbs-blurbIcon {
+  height: 1.5rem;
+  margin-right: 1rem;
+  width: 1.5rem;
+}
+@media only screen and (min-width: 48rem) {
+  .ToolsBlurbs {
+    grid-template-columns: 1fr 1fr;
+  }
+}
+img.PullQuote-image {
+  width: 2.625rem;
+}
+
+.Card {
+  background-color: #fff;
+  border: 0.0625rem solid #c6c8ca;
+  border-radius: 0.25rem;
+  height: 100%;
+}
+
+.Card a,
+.Card a:visited,
+.Card a:hover {
+  text-decoration: none;
+}
+
+.Card-inner {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
+
+.Card-thumbnail {
+  background-position: center;
+  background-size: cover;
+  height: 9.5625rem;
+}
+
+.Card-content {
+  display: flex;
+  flex: 1;
+  flex-direction: column;
+  padding: 1.5rem;
+}
+
+.Card-contentTitle,
+.Card-contentBody {
+  line-height: 1.5rem;
+}
+
+.Card-contentTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+}
+
+.Card-contentBody {
+  color: #6e7072;
+  flex: auto;
+  font-size: 0.875rem;
+  margin-top: 1rem;
+}
+
+.Card-contentCta {
+  align-items: center;
+  display: flex;
+}
+
+.Card-contentCta span {
+  margin-right: 0.6875rem;
+}
+
+.Card-selfPacedFooter {
+  display: flex;
+}
+
+.Card-selfPacedCredits {
+  color: #6e7072;
+  flex: 1;
+  font-size: 0.75rem;
+}
+
+.Card-selfPacedRating {
+  width: 5rem;
+}
+
+.Card-starRating {
+  background-image: url('/images/learn/star-rating.png');
+  background-position: left;
+  background-repeat: no-repeat;
+  height: 1rem;
+}
+
+.Book a,
+.Book a:visited,
+.Book a:hover {
+  text-decoration: none;
+}
+
+.Book-inner {
+  align-items: flex-start;
+  display: flex;
+  justify-content: space-between;
+}
+
+.Book-thumbnail {
+  width: 6.625rem;
+}
+
+.Book-thumbnail img {
+  width: 100%;
+}
+
+.Book-content {
+  flex: 1;
+  margin-left: 1.6875rem;
+}
+
+.Book-title {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+  margin: 0 0 0.5rem;
+}
+
+.Book-description {
+  color: #6e7072;
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+}
+
+.Book-cta {
+  align-items: center;
+  display: flex;
+  height: 1.5rem;
+}
+
+.Book-cta span {
+  margin-right: 0.6875rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Book-inner {
+    flex-direction: column;
+  }
+
+  .Book-thumbnail {
+    width: 100%;
+  }
+
+  .Book-content {
+    margin: 1rem 0 0;
+  }
+}
diff --git a/go.dev/_content/events.yaml b/go.dev/_content/events.yaml
new file mode 100644
index 0000000..a39cac5
--- /dev/null
+++ b/go.dev/_content/events.yaml
@@ -0,0 +1,290 @@
+# DO NOT EDIT: Autogenerated from cmd/events.
+# To update, run:
+#    go run github.com/godevsite/go.dev/cmd/events > _content/events.yaml
+all:
+- city: Lehi
+  country: USA
+  description: |-
+    Join us on <a href="http://bit.ly/forgeutahinvite" rel="nofollow">Slack</a>!<br/>
+    The Utah Go User Group (#UTGO) is a community of people interested in software development and Google&#39;s Go programming language (Golang). Everyone is welcome.  We currently meet in Lehi. To discuss and vote on topic ideas, go to <a href="https://github.com/forgeutah/utah-go" rel="nofollow">https://github.com/forgeutah/utah-go</a><br/>
+     <br>
+  id: fnpgxrybcpbfb
+  local_date: Nov 3, 2020
+  local_time: "2020-11-03T18:00:00-07:00"
+  localizedcountry: USA
+  localizedlocation: Lehi, UT
+  name: Utah Golang User Group (Reserve Mike Campbell)
+  photourl: https://secure.meetupstatic.com/photos/event/c/d/0/7/600_452692487.jpeg
+  state: UT
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/c/d/0/7/thumb_452692487.jpeg
+  url: https://www.meetup.com/utahgophers/events/fnpgxrybcpbfb
+- city: Eugene
+  country: USA
+  description: "All Gophers and curious software professionals are welcome to come
+    discuss Go and related topics.<br/>\nGo is a Google-funded language for massively-scalable
+    distributed systems that is statically typed and compiled. It has quickly stabilized
+    and is running head-to-head with C++, Java, C#, etc. (<a href=\"https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html\"
+    rel=\"nofollow\">The Computer Language Benchmarks Game - Go</a>). However, a larger-than-expected
+    portion of new Gophers is made up of dynamic/interpreted language users who tend
+    to be seeking relief from the cruft in their current languages and/or a more clear
+    future within the horizontally-growing landscape of modern computing.<br/>\nIf
+    you&#39;re building web apps, designing APIs, thrive on scalability, or you&#39;re
+    simply curious about this fun new(ish) language, let&#39;s meetup.<br/>\n• More
+    resources are available at <a href=\"http://www.euggo.org\" rel=\"nofollow\">www.euggo.org</a> "
+  id: vjdnrrybcnbkb
+  local_date: Oct 7, 2020
+  local_time: "2020-10-07T12:00:00-07:00"
+  localizedcountry: USA
+  localizedlocation: Eugene, OR
+  name: Book Club > Get Programming With Go
+  photourl: https://secure.meetupstatic.com/photos/event/2/8/1/600_453660641.jpeg
+  state: OR
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/2/8/1/thumb_453660641.jpeg
+  url: https://www.meetup.com/EUG-Go/events/vjdnrrybcnbkb
+- city: Berlin
+  country: Germany
+  description: |-
+    Join us on Slack: <a href="https://wwgberlin.herokuapp.com/" rel="nofollow">https://wwgberlin.herokuapp.com/</a> <br/>
+    Follow us on Twitter: <a href="https://twitter.com/wwgberlin" rel="nofollow">@WWGBerlin</a><br/>
+    Go (also known as Golang) is a great programming language to learn and develop in. We built this meetup to offer a better entry point to women who are interested in Go. We also want to provide a space for networking, learning and finding mentors. This group shall bring us together so we can continue to grow in Go. <br/>
+    You can become a WWG mentee if: <br/>
+    1. You identify as female, publicly or privately <br/>
+    2. You have some interest in Go<br/>
+    Supporters of Women Who Go are welcome to join, especially as mentors. For the Go Study Groups, the mentee/learners spots will be given to women.<br/>
+    Feel free to check out our learning resources: <a href="https://github.com/wwgberlin/GoStudyGroup" rel="nofollow">https://github.com/wwgberlin/GoStudyGroup</a> <br>Feel free to contribute to our resources by adding Go Tutorials to it!<br/>
+    For companies who want to host and sponsor Women Who Go Berlin: Please send us a msg through meetup or Twitter: <a href="https://twitter.com/wwgberlin" rel="nofollow">@WWGBerlin</a>
+  id: "273575858"
+  local_date: Oct 7, 2020
+  local_time: "2020-10-07T19:00:00+02:00"
+  localizedcountry: Germany
+  localizedlocation: Berlin, Germany
+  name: 'Women Who Go Book club - chapter 2.1: The Parser part 2'
+  photourl: https://secure.meetupstatic.com/photos/event/6/6/9/3/600_452906259.jpeg
+  state: ""
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/6/6/9/3/thumb_452906259.jpeg
+  url: https://www.meetup.com/Women-Who-Go-Berlin/events/273575858
+- city: Jacksonville
+  country: USA
+  description: GoJax represents the North Florida Go community located in Duval, Baker,
+    Nassau, <br>Clay, and St. Johns counties. There are a number of tech Meetup groups
+    in <br>Jacksonville, but none of them address the Go programming language. We
+    plan on <br>filling that gap.
+  id: "273628929"
+  local_date: Oct 7, 2020
+  local_time: "2020-10-07T19:00:00-04:00"
+  localizedcountry: USA
+  localizedlocation: Jacksonville, FL
+  name: Go and Web Assembly
+  photourl: ""
+  state: FL
+  thumbnailurl: ""
+  url: https://www.meetup.com/meetup-group-fuSlbVYy/events/273628929
+- city: Orlando
+  country: USA
+  description: Orlando&#39;s first meetup group dedicated to the Go Programming Language.
+    All skill levels are welcome - whether you&#39;re a beginner or a full-fledged
+    gopher.
+  id: "273460434"
+  local_date: Oct 7, 2020
+  local_time: "2020-10-07T19:00:00-04:00"
+  localizedcountry: USA
+  localizedlocation: Orlando, FL
+  name: Orlando Go Monthly Meetup (Online!)  - Go & Web Assembly
+  photourl: https://secure.meetupstatic.com/photos/event/9/7/c/4/600_441638852.jpeg
+  state: FL
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/9/7/c/4/thumb_441638852.jpeg
+  url: https://www.meetup.com/OrlanGo/events/273460434
+- city: Atlanta
+  country: USA
+  description: |-
+    Go Users Group Atlanta is a meeting place for people interested in developing and promoting the local Go development community.<br/>
+    Many of us hang out in <a href="https://tech404.slack.com/messages/golang" rel="nofollow">#golang</a> on <a href="http://tech404.io" rel="nofollow">Tech404</a>
+  id: "273303769"
+  local_date: Oct 8, 2020
+  local_time: "2020-10-08T18:30:00-04:00"
+  localizedcountry: USA
+  localizedlocation: Atlanta, GA
+  name: October Go Virtual Meetup ft. Bill Kennedy on Go Generics
+  photourl: https://secure.meetupstatic.com/photos/event/a/6/8/8/600_355422632.jpeg
+  state: GA
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/a/6/8/8/thumb_355422632.jpeg
+  url: https://www.meetup.com/Go-Users-Group-Atlanta/events/273303769
+- city: Berlin
+  country: Germany
+  description: |-
+    We are a group of Golang users. Our aim is to meet like minded people, share our experience with others and to promote the use of Go.<br/>
+    As Gophers and as Berliners, even if just visiting, we follow the Code of Conduct to make this a pleasant and inclusive environment for everyone: <br><br/>
+    <a href="https://golang.org/conduct" rel="nofollow">https://golang.org/conduct</a> <br><a href="http://berlincodeofconduct.org/" rel="nofollow">http://berlincodeofconduct.org</a><br/>
+    Follow us on twitter: <a href="https://twitter.com/gdgberlingolang" rel="nofollow">@GDGBerlinGolang</a><br/>
+    You can get our special group swag here: <a href="https://shop.spreadshirt.de/gdg-golang-berlin" rel="nofollow">https://shop.spreadshirt.de/gdg-golang-berlin</a><br>
+  id: "271795652"
+  local_date: Oct 14, 2020
+  local_time: "2020-10-14T19:00:00+02:00"
+  localizedcountry: Germany
+  localizedlocation: Berlin, Germany
+  name: '[online] October Golang meetup'
+  photourl: https://secure.meetupstatic.com/photos/event/9/8/b/1/600_465459089.jpeg
+  state: ""
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/9/8/b/1/thumb_465459089.jpeg
+  url: https://www.meetup.com/golang-users-berlin/events/271795652
+- city: Seattle
+  country: USA
+  description: |-
+    The Seattle Go User Group is a community for anyone interested in the Go programming language. <br><br/>
+    <br><br/>
+    We provide opportunities to:<br/>
+    • Discuss Go and related topics <br/>
+    • Socialize with people who are interested in Go<br/>
+    • Find or fill Go-related jobs <br/>
+    <br><br/>
+    If you want to chat all things Go, feel free to join us on the Gopher slack. <br/>
+    Invites can be found at <a href="https://invite.slack.golangbridge.org" rel="nofollow">https://invite.slack.golangbridge.org</a><br/>
+    There is a #seattle channel which can be joined by anyone, so come say hi!<br/>
+    <br><br/>
+    Our aim is to be a welcoming environment. As such all attendees, organizers and sponsors are required to follow the <a href="https://golang.org/conduct" rel="nofollow">code of conduct</a>.
+  id: rksdvrybcnbsb
+  local_date: Oct 14, 2020
+  local_time: "2020-10-14T13:00:00-07:00"
+  localizedcountry: USA
+  localizedlocation: Seattle, WA
+  name: Eastside Go Coffee
+  photourl: https://secure.meetupstatic.com/photos/event/a/4/b/e/600_450342174.jpeg
+  state: WA
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/a/4/b/e/thumb_450342174.jpeg
+  url: https://www.meetup.com/golang/events/rksdvrybcnbsb
+- city: Belfast
+  country: United Kingdom
+  description: |-
+    Belfast Gophers, aka The Go Belfast User Group (GBUG), are a Belfast-based community for anyone interested in the Go programming language. Belfast Gophers held their first Meet-up 2016, and since then the group has grown to over 300 gophers. <br><br/>
+    Membership of Belfast Gophers is managed via our <a href="https://www.meetup.com/Belfast-Gophers/" rel="nofollow">Meetup page</a>; everyone is welcome! We also have an active <a href="https://twitter.com/belfast_gopher" rel="nofollow">Twitter feed</a> and we&#39;ve recently set-up the #belfast channel on <a href="https://gophers.slack.com/" rel="nofollow">Gophers Slack</a> (<a href="https://invite.slack.golangbridge.org/" rel="nofollow">sign-up here</a>). <br><br/>
+    <br><br/>
+    Contact<br/>
+    Twitter: <a href="https://twitter.com/belfast_gopher" rel="nofollow">@belfast_gopher</a><br/>
+    Email: <a href="mailto:info@belfastgophers.com" rel="nofollow">info@belfastgophers.com</a><br/>
+     <br><br/>
+    Code of Conduct<br/>
+    Belfast Gophers operate under the <a href="https://golang.org/conduct" rel="nofollow">Go Community Code of Conduct</a>.<br/>
+     <br><br/>
+    Swag <br>We have swag on <a href="https://www.redbubble.com/people/belfastgophers/works/27394442-belfast-gophers" rel="nofollow">Redbubble</a> for anyone wanting a Belfast Gopher&#39;s t-shirt or other swag, you only pay Redbubble we don&#39;t take any fee for these. <br/>
+     <br><br/>
+     <br><br/>
+     <br><br/>
+     <br>
+  id: "273346208"
+  local_date: Oct 15, 2020
+  local_time: "2020-10-15T18:00:00+01:00"
+  localizedcountry: United Kingdom
+  localizedlocation: Belfast, United Kingdom
+  name: 'Oto: Pace’s lightweight JSON/HTTP RPC thing'
+  photourl: ""
+  state: ""
+  thumbnailurl: ""
+  url: https://www.meetup.com/Belfast-Gophers/events/273346208
+- city: Guadalajara
+  country: Mexico
+  description: Comunidad enfocada en dar a conocer el lenguaje Golang y generar un
+    espacio donde se pueda compartir conocimientos, proyectos y experiencias entorno
+    a este gran lenguaje. En las reuniones se presentan un par de pláticas o talleres
+    relacionados con Golang. Networking al finalizar. <br> <br>Síguenos en:<br><br><a
+    href="https://www.facebook.com/golang.guadalajara" rel="nofollow">Facebook</a><br>
+    <br><a href="https://www.youtube.com/channel/UCxpBz-Hw1p5S-v3vPpwi5oA" rel="nofollow">YouTube</a><br>
+  id: "273759040"
+  local_date: Oct 15, 2020
+  local_time: "2020-10-15T18:30:00-05:00"
+  localizedcountry: Mexico
+  localizedlocation: Guadalajara, Mexico
+  name: Golang Guadalajara Meetup - Octubre 2020
+  photourl: ""
+  state: ""
+  thumbnailurl: ""
+  url: https://www.meetup.com/Golang-Guadalajara/events/273759040
+- city: Leipzig
+  country: Germany
+  description: |-
+    We enjoy using Go and we are curious about the language, its features and applications, especially in the context of cloud computing and infrastructure.<br/>
+    Our goal is to establish a place, where people from all backgrounds interested in the Go programming language and various cloud technologies can meet, learn, share experiences, present, discuss and network.<br/>
+    We aim to be a welcoming community, respecting Gopher values, as outlined here: <a href="https://golang.org/conduct" rel="nofollow">https://golang.org/conduct</a>.<br/>
+     <br><br/>
+    Find out more on: <a href="https://golangleipzig.space/" rel="nofollow">https://golangleipzig.space/</a> and <a href="https://twitter.com/golang_leipzig" rel="nofollow">https://github.com/golang-leipzig<br></a><br/>
+     Since March 2019, we are part of the Go Developer Network:<br/>
+    <a href="https://blog.golang.org/go-developer-network" rel="nofollow">https://blog.golang.org/go-developer-network</a><br/>
+    <br>
+  id: "268785569"
+  local_date: Oct 16, 2020
+  local_time: "2020-10-16T19:00:00+02:00"
+  localizedcountry: Germany
+  localizedlocation: Leipzig, Germany
+  name: 'Leipzig Golang Meetup #13'
+  photourl: ""
+  state: ""
+  thumbnailurl: ""
+  url: https://www.meetup.com/Leipzig-Golang/events/268785569
+- city: Gurgaon
+  country: India
+  description: |-
+    This group is for people interested in learning both the programming language Go(lang), and how to build interesting things with it. We will aim the first few sessions at beginner-intermediate levels and maybe later introduce some high-level talks.<br/>
+     WE ARE ACTIVELY LOOKING FOR MEETUP VENUES.<br/>
+    Want to help organise/volunteer? - Come say hi and meet fellow gophers on <a href="https://join.slack.com/t/golang-gurgaon/shared_invite/enQtODgxMTIyODQ1MzQ4LTA2ZGNmZTgwOTBiMDJmMDJhOWNlMmRlZGI3YzZiZWQyNGMyOWE5NjgxMzc5OTAzOGIxMTA0OTBiZGU0ZGUxYjc" rel="nofollow">Slack</a>.
+  id: szcfmrybcnbwb
+  local_date: Oct 17, 2020
+  local_time: "2020-10-17T11:00:00+05:30"
+  localizedcountry: India
+  localizedlocation: Gurgaon, India
+  name: Golang Gurgaon Meetup
+  photourl: https://secure.meetupstatic.com/photos/event/c/e/4/5/600_473932805.jpeg
+  state: ""
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/c/e/4/5/thumb_473932805.jpeg
+  url: https://www.meetup.com/Gurgaon-Go-Meetup/events/szcfmrybcnbwb
+- city: Graz
+  country: Austria
+  description: |-
+    Die <a href="https://golang.org" rel="nofollow">Programmiersprache Go</a> hat einen Grazer &#34;Stammtisch&#34;. <br/>
+    Wir treffen uns jeden 2. Montag im Monat bei TAO Digital am Lendplatz.<br/>
+    Schau einfach vorbei oder besuche uns online unter <a href="https://gograz.org" rel="nofollow">GoGraz</a>! <br>
+  id: fxlkwrybcnbzb
+  local_date: Oct 19, 2020
+  local_time: "2020-10-19T19:00:00+02:00"
+  localizedcountry: Austria
+  localizedlocation: Graz, Austria
+  name: Go Language Usergroup Graz
+  photourl: https://secure.meetupstatic.com/photos/event/3/3/e/0/600_459373280.jpeg
+  state: ""
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/3/3/e/0/thumb_459373280.jpeg
+  url: https://www.meetup.com/Graz-Open-Source-Meetup/events/fxlkwrybcnbzb
+- city: Bournemouth
+  country: United Kingdom
+  description: |-
+    Golang Dorset<br/>
+     is a user group for people interested in the <br/>
+    <a href="https://golang.org/" rel="nofollow">Go programming language</a> and assorted related technologies and methodologies (kubernetes / docker / DevOps etc) <br><br/>
+    We aim to meet every month in central Bournemouth. <br>--- <br><br/>
+    We want to give everyone a chance to learn, or improve their skills with Go by practicing it, organizing workshops and talks, and mingling along like-minded individuals.<br/>
+    Any level of proficiency (or none at all) is welcome. <br/>
+    All code and slides from examples are available in the github repo <a href="https://github.com/golangdorset" rel="nofollow">github.com/golangdorset</a>  <br><br/>
+    <a href="https://join.slack.com/t/golangdorset/shared_invite/zt-49ut08ec-3E3a3JTt4XbxtZs2BnQdyw" rel="nofollow">Join us on Slack!</a> <br>
+  id: qfdjvrybcnbzb
+  local_date: Oct 19, 2020
+  local_time: "2020-10-19T19:00:00+01:00"
+  localizedcountry: United Kingdom
+  localizedlocation: Bournemouth, United Kingdom
+  name: Golang Dorset Monthly Meetup
+  photourl: ""
+  state: ""
+  thumbnailurl: ""
+  url: https://www.meetup.com/Golang-Dorset/events/qfdjvrybcnbzb
+- city: Reston
+  country: USA
+  description: |-
+    (from golang.org) <br><br/>
+     <br/>
+    The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It&#39;s a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
+  id: cmkwtrybcnbcc
+  local_date: Oct 21, 2020
+  local_time: "2020-10-21T19:00:00-04:00"
+  localizedcountry: USA
+  localizedlocation: Reston, VA
+  name: Golang Reston Monthly Meetup
+  photourl: https://secure.meetupstatic.com/photos/event/7/f/7/600_433982039.jpeg
+  state: VA
+  thumbnailurl: https://secure.meetupstatic.com/photos/event/7/f/7/thumb_433982039.jpeg
+  url: https://www.meetup.com/Golang-Reston/events/cmkwtrybcnbcc
diff --git a/go.dev/_content/images/SCN_magnifying_glass_cloud_site.png b/go.dev/_content/images/SCN_magnifying_glass_cloud_site.png
new file mode 100644
index 0000000..17c3136
--- /dev/null
+++ b/go.dev/_content/images/SCN_magnifying_glass_cloud_site.png
Binary files differ
diff --git a/go.dev/_content/images/adobe-logo.png b/go.dev/_content/images/adobe-logo.png
new file mode 100644
index 0000000..044c811
--- /dev/null
+++ b/go.dev/_content/images/adobe-logo.png
Binary files differ
diff --git a/go.dev/_content/images/books/building-microservices-with-go.jpg b/go.dev/_content/images/books/building-microservices-with-go.jpg
new file mode 100644
index 0000000..8891f28
--- /dev/null
+++ b/go.dev/_content/images/books/building-microservices-with-go.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/building-restful-web-services-with-go.jpg b/go.dev/_content/images/books/building-restful-web-services-with-go.jpg
new file mode 100644
index 0000000..52e65dd
--- /dev/null
+++ b/go.dev/_content/images/books/building-restful-web-services-with-go.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/go-in-action.jpg b/go.dev/_content/images/books/go-in-action.jpg
new file mode 100644
index 0000000..41f613b
--- /dev/null
+++ b/go.dev/_content/images/books/go-in-action.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/go-programming-for-network-operations.jpg b/go.dev/_content/images/books/go-programming-for-network-operations.jpg
new file mode 100644
index 0000000..5c0e61a
--- /dev/null
+++ b/go.dev/_content/images/books/go-programming-for-network-operations.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/go-web-development-cookbook.jpg b/go.dev/_content/images/books/go-web-development-cookbook.jpg
new file mode 100644
index 0000000..3243d62
--- /dev/null
+++ b/go.dev/_content/images/books/go-web-development-cookbook.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/go-web-programming.jpg b/go.dev/_content/images/books/go-web-programming.jpg
new file mode 100644
index 0000000..af352b6
--- /dev/null
+++ b/go.dev/_content/images/books/go-web-programming.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/hands-on-software-architecture-with-golang.jpg b/go.dev/_content/images/books/hands-on-software-architecture-with-golang.jpg
new file mode 100644
index 0000000..1b9d507
--- /dev/null
+++ b/go.dev/_content/images/books/hands-on-software-architecture-with-golang.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/mastering-go-web-services.jpg b/go.dev/_content/images/books/mastering-go-web-services.jpg
new file mode 100644
index 0000000..2772ea5
--- /dev/null
+++ b/go.dev/_content/images/books/mastering-go-web-services.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/powerful-command-line-applications-in-go.jpg b/go.dev/_content/images/books/powerful-command-line-applications-in-go.jpg
new file mode 100644
index 0000000..548e792
--- /dev/null
+++ b/go.dev/_content/images/books/powerful-command-line-applications-in-go.jpg
Binary files differ
diff --git a/go.dev/_content/images/books/web-development-with-go.jpg b/go.dev/_content/images/books/web-development-with-go.jpg
new file mode 100644
index 0000000..a93db9f
--- /dev/null
+++ b/go.dev/_content/images/books/web-development-with-go.jpg
Binary files differ
diff --git a/go.dev/_content/images/close-24px.svg b/go.dev/_content/images/close-24px.svg
new file mode 100644
index 0000000..dea8678
--- /dev/null
+++ b/go.dev/_content/images/close-24px.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/><path d="M0 0h24v24H0z" fill="none"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/companies-using-go-hero.svg b/go.dev/_content/images/companies-using-go-hero.svg
new file mode 100644
index 0000000..94a9d87
--- /dev/null
+++ b/go.dev/_content/images/companies-using-go-hero.svg
@@ -0,0 +1,9 @@
+<svg width="619" height="258" viewBox="0 0 619 258" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect width="619" height="258" fill="url(#pattern0)"/>
+<defs>
+<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
+<use xlink:href="#image0" transform="scale(0.00138889 0.00333333)"/>
+</pattern>
+<image id="image0" width="720" height="300" xlink:href="data:image/png;base64,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"/>
+</defs>
+</svg>
diff --git a/go.dev/_content/images/device-information.png b/go.dev/_content/images/device-information.png
new file mode 100644
index 0000000..d0a3331
--- /dev/null
+++ b/go.dev/_content/images/device-information.png
Binary files differ
diff --git a/go.dev/_content/images/empty_case_study.png b/go.dev/_content/images/empty_case_study.png
new file mode 100644
index 0000000..0b1fb45
--- /dev/null
+++ b/go.dev/_content/images/empty_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/empty_case_study_2.png b/go.dev/_content/images/empty_case_study_2.png
new file mode 100644
index 0000000..290d9a4
--- /dev/null
+++ b/go.dev/_content/images/empty_case_study_2.png
Binary files differ
diff --git a/go.dev/_content/images/go-logo-blue.svg b/go.dev/_content/images/go-logo-blue.svg
new file mode 100644
index 0000000..da6ea83
--- /dev/null
+++ b/go.dev/_content/images/go-logo-blue.svg
@@ -0,0 +1 @@
+<svg height="78" viewBox="0 0 207 78" width="207" xmlns="http://www.w3.org/2000/svg"><g fill="#00acd7" fill-rule="evenodd"><path d="m16.2 24.1c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h35.7c.4 0 .5.3.3.6l-1.7 2.6c-.2.3-.7.6-1 .6z"/><path d="m1.1 33.3c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h45.6c.4 0 .6.3.5.6l-.8 2.4c-.1.4-.5.6-.9.6z"/><path d="m25.3 42.5c-.4 0-.5-.3-.3-.6l1.4-2.5c.2-.3.6-.6 1-.6h20c.4 0 .6.3.6.7l-.2 2.4c0 .4-.4.7-.7.7z"/><g transform="translate(55)"><path d="m74.1 22.3c-6.3 1.6-10.6 2.8-16.8 4.4-1.5.4-1.6.5-2.9-1-1.5-1.7-2.6-2.8-4.7-3.8-6.3-3.1-12.4-2.2-18.1 1.5-6.8 4.4-10.3 10.9-10.2 19 .1 8 5.6 14.6 13.5 15.7 6.8.9 12.5-1.5 17-6.6.9-1.1 1.7-2.3 2.7-3.7-3.6 0-8.1 0-19.3 0-2.1 0-2.6-1.3-1.9-3 1.3-3.1 3.7-8.3 5.1-10.9.3-.6 1-1.6 2.5-1.6h36.4c-.2 2.7-.2 5.4-.6 8.1-1.1 7.2-3.8 13.8-8.2 19.6-7.2 9.5-16.6 15.4-28.5 17-9.8 1.3-18.9-.6-26.9-6.6-7.4-5.6-11.6-13-12.7-22.2-1.3-10.9 1.9-20.7 8.5-29.3 7.1-9.3 16.5-15.2 28-17.3 9.4-1.7 18.4-.6 26.5 4.9 5.3 3.5 9.1 8.3 11.6 14.1.6.9.2 1.4-1 1.7z"/><path d="m107.2 77.6c-9.1-.2-17.4-2.8-24.4-8.8-5.9-5.1-9.6-11.6-10.8-19.3-1.8-11.3 1.3-21.3 8.1-30.2 7.3-9.6 16.1-14.6 28-16.7 10.2-1.8 19.8-.8 28.5 5.1 7.9 5.4 12.8 12.7 14.1 22.3 1.7 13.5-2.2 24.5-11.5 33.9-6.6 6.7-14.7 10.9-24 12.8-2.7.5-5.4.6-8 .9zm23.8-40.4c-.1-1.3-.1-2.3-.3-3.3-1.8-9.9-10.9-15.5-20.4-13.3-9.3 2.1-15.3 8-17.5 17.4-1.8 7.8 2 15.7 9.2 18.9 5.5 2.4 11 2.1 16.3-.6 7.9-4.1 12.2-10.5 12.7-19.1z" fill-rule="nonzero"/></g></g></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/go-logo-white.svg b/go.dev/_content/images/go-logo-white.svg
new file mode 100644
index 0000000..727a62e
--- /dev/null
+++ b/go.dev/_content/images/go-logo-white.svg
@@ -0,0 +1 @@
+<svg height="78" viewBox="0 0 207 78" width="207" xmlns="http://www.w3.org/2000/svg"><g fill="#ffffff" fill-rule="evenodd"><path d="m16.2 24.1c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h35.7c.4 0 .5.3.3.6l-1.7 2.6c-.2.3-.7.6-1 .6z"/><path d="m1.1 33.3c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h45.6c.4 0 .6.3.5.6l-.8 2.4c-.1.4-.5.6-.9.6z"/><path d="m25.3 42.5c-.4 0-.5-.3-.3-.6l1.4-2.5c.2-.3.6-.6 1-.6h20c.4 0 .6.3.6.7l-.2 2.4c0 .4-.4.7-.7.7z"/><g transform="translate(55)"><path d="m74.1 22.3c-6.3 1.6-10.6 2.8-16.8 4.4-1.5.4-1.6.5-2.9-1-1.5-1.7-2.6-2.8-4.7-3.8-6.3-3.1-12.4-2.2-18.1 1.5-6.8 4.4-10.3 10.9-10.2 19 .1 8 5.6 14.6 13.5 15.7 6.8.9 12.5-1.5 17-6.6.9-1.1 1.7-2.3 2.7-3.7-3.6 0-8.1 0-19.3 0-2.1 0-2.6-1.3-1.9-3 1.3-3.1 3.7-8.3 5.1-10.9.3-.6 1-1.6 2.5-1.6h36.4c-.2 2.7-.2 5.4-.6 8.1-1.1 7.2-3.8 13.8-8.2 19.6-7.2 9.5-16.6 15.4-28.5 17-9.8 1.3-18.9-.6-26.9-6.6-7.4-5.6-11.6-13-12.7-22.2-1.3-10.9 1.9-20.7 8.5-29.3 7.1-9.3 16.5-15.2 28-17.3 9.4-1.7 18.4-.6 26.5 4.9 5.3 3.5 9.1 8.3 11.6 14.1.6.9.2 1.4-1 1.7z"/><path d="m107.2 77.6c-9.1-.2-17.4-2.8-24.4-8.8-5.9-5.1-9.6-11.6-10.8-19.3-1.8-11.3 1.3-21.3 8.1-30.2 7.3-9.6 16.1-14.6 28-16.7 10.2-1.8 19.8-.8 28.5 5.1 7.9 5.4 12.8 12.7 14.1 22.3 1.7 13.5-2.2 24.5-11.5 33.9-6.6 6.7-14.7 10.9-24 12.8-2.7.5-5.4.6-8 .9zm23.8-40.4c-.1-1.3-.1-2.3-.3-3.3-1.8-9.9-10.9-15.5-20.4-13.3-9.3 2.1-15.3 8-17.5 17.4-1.8 7.8 2 15.7 9.2 18.9 5.5 2.4 11 2.1 16.3-.6 7.9-4.1 12.2-10.5 12.7-19.1z" fill-rule="nonzero"/></g></g></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/go_amex_case_study.png b/go.dev/_content/images/go_amex_case_study.png
new file mode 100644
index 0000000..d6dba10
--- /dev/null
+++ b/go.dev/_content/images/go_amex_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/go_amex_case_study_logo.png b/go.dev/_content/images/go_amex_case_study_logo.png
new file mode 100644
index 0000000..d2f6a22
--- /dev/null
+++ b/go.dev/_content/images/go_amex_case_study_logo.png
Binary files differ
diff --git a/go.dev/_content/images/go_at&t_case_study.png b/go.dev/_content/images/go_at&t_case_study.png
new file mode 100644
index 0000000..a115a3e
--- /dev/null
+++ b/go.dev/_content/images/go_at&t_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/go_at_t_case_study_logo.png b/go.dev/_content/images/go_at_t_case_study_logo.png
new file mode 100644
index 0000000..bb57455
--- /dev/null
+++ b/go.dev/_content/images/go_at_t_case_study_logo.png
Binary files differ
diff --git a/go.dev/_content/images/go_chrome_case_study.png b/go.dev/_content/images/go_chrome_case_study.png
new file mode 100644
index 0000000..4e22e43
--- /dev/null
+++ b/go.dev/_content/images/go_chrome_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/go_core_data_case_study.png b/go.dev/_content/images/go_core_data_case_study.png
new file mode 100644
index 0000000..2da16d1
--- /dev/null
+++ b/go.dev/_content/images/go_core_data_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/go_firebase_case_study.png b/go.dev/_content/images/go_firebase_case_study.png
new file mode 100644
index 0000000..5b35bfd
--- /dev/null
+++ b/go.dev/_content/images/go_firebase_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/go_google_case_study_carousel.png b/go.dev/_content/images/go_google_case_study_carousel.png
new file mode 100644
index 0000000..885c400
--- /dev/null
+++ b/go.dev/_content/images/go_google_case_study_carousel.png
Binary files differ
diff --git a/go.dev/_content/images/go_mercadolibre_case_study.png b/go.dev/_content/images/go_mercadolibre_case_study.png
new file mode 100644
index 0000000..0767922
--- /dev/null
+++ b/go.dev/_content/images/go_mercadolibre_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/go_mercadolibre_case_study_logo.png b/go.dev/_content/images/go_mercadolibre_case_study_logo.png
new file mode 100644
index 0000000..822c6c3
--- /dev/null
+++ b/go.dev/_content/images/go_mercadolibre_case_study_logo.png
Binary files differ
diff --git a/go.dev/_content/images/go_paypal_case_study.png b/go.dev/_content/images/go_paypal_case_study.png
new file mode 100644
index 0000000..eb96d7d
--- /dev/null
+++ b/go.dev/_content/images/go_paypal_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/go_paypal_case_study_logo.png b/go.dev/_content/images/go_paypal_case_study_logo.png
new file mode 100644
index 0000000..b1dde6e
--- /dev/null
+++ b/go.dev/_content/images/go_paypal_case_study_logo.png
Binary files differ
diff --git a/go.dev/_content/images/go_sitereliability_case_study.png b/go.dev/_content/images/go_sitereliability_case_study.png
new file mode 100644
index 0000000..51241c5
--- /dev/null
+++ b/go.dev/_content/images/go_sitereliability_case_study.png
Binary files differ
diff --git a/go.dev/_content/images/google-grey.png b/go.dev/_content/images/google-grey.png
new file mode 100644
index 0000000..36b90cc
--- /dev/null
+++ b/go.dev/_content/images/google-grey.png
Binary files differ
diff --git a/go.dev/_content/images/google-logo.png b/go.dev/_content/images/google-logo.png
new file mode 100644
index 0000000..05764e7
--- /dev/null
+++ b/go.dev/_content/images/google-logo.png
Binary files differ
diff --git a/go.dev/_content/images/google-logo.svg b/go.dev/_content/images/google-logo.svg
new file mode 100644
index 0000000..796ed0c
--- /dev/null
+++ b/go.dev/_content/images/google-logo.svg
@@ -0,0 +1,38 @@
+<svg width="92" height="30" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M80.5 20.7a7.3 7.3 0 005.3 2.2c2.7 0 4.8-1.1 6.4-3.4l-2.6-1.7c-1 1.4-2.2 2.1-3.8 2.1-1.6 0-2.9-.7-3.7-2.3l10.2-4.1-.3-.9a8.2 8.2 0 00-2.6-3.4 6.4 6.4 0 00-4-1.3c-2 0-3.7.7-5 2a7.5 7.5 0 00-2.1 5.5c0 2 .7 3.9 2.2 5.3zm2-8.7a4.3 4.3 0 014.7-.7c.5.2.9.6 1.1 1l-7 2.6c0-1.2.4-2.1 1.2-2.9z"
+    fill="#EA4335"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M73 1h4v22h-4V1z"
+    fill="#34A853"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M62.2 29.5c.7.3 1.4.4 2.2.4 2.1 0 3.8-.7 5-2a8.5 8.5 0 001.9-6V8.4h-3v1.3H68a4.7 4.7 0 00-3.8-1.7c-1.9 0-3.5.7-5 2.2a7.6 7.6 0 00-2 5.4c0 2 .7 3.8 2 5.3 1.5 1.5 3.1 2.2 5 2.2 1.6 0 3-.5 3.8-1.7h.2v.8c0 3.2-1.3 4.8-4 4.8-.8 0-1.5-.3-2.2-.8a4.7 4.7 0 01-1.4-2l-2.8 1.3c.3.6.6 1.3 1 1.8a6.8 6.8 0 003.3 2.3zm-.7-11c-.8-.8-1.2-1.9-1.2-3.1 0-1.3.4-2.4 1.2-3.2.8-.9 1.8-1.3 2.9-1.3 1 0 2 .4 2.8 1.3.7.8 1.1 2 1.1 3.2 0 1.2-.4 2.3-1.1 3.2-.8.8-1.7 1.3-2.8 1.3-1.2 0-2.1-.5-3-1.3z"
+    fill="#4285F4"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M53.1 20.7a7.3 7.3 0 002.2-5.3c0-2.2-.7-4-2.2-5.4A7.2 7.2 0 0047.8 8c-2.1 0-4 .7-5.4 2.1a7.2 7.2 0 00-2.1 5.4c0 2 .7 3.8 2.2 5.3a7.2 7.2 0 005.3 2.2c2.1 0 3.9-.8 5.3-2.2zm-8.6-2.1c-.8-.9-1.2-2-1.2-3.2 0-1.3.4-2.4 1.2-3.2.7-.9 1.7-1.3 2.8-1.3 1.1 0 2 .4 2.8 1.3.8.8 1.2 1.9 1.2 3.2 0 1.2-.4 2.3-1.2 3.2-.8.8-1.7 1.3-2.8 1.3-1.1 0-2-.5-2.8-1.3z"
+    fill="#FBBC04"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M37.1 20.7a7.3 7.3 0 002.2-5.3c0-2.2-.7-4-2.2-5.4A7.2 7.2 0 0031.8 8c-2.1 0-4 .7-5.4 2.1a7.2 7.2 0 00-2.1 5.4c0 2 .7 3.8 2.2 5.3a7.2 7.2 0 005.3 2.2c2.1 0 3.9-.8 5.3-2.2zm-8.6-2.1c-.8-.9-1.2-2-1.2-3.2 0-1.3.4-2.4 1.2-3.2.7-.9 1.7-1.3 2.8-1.3 1.1 0 2 .4 2.8 1.3.8.8 1.2 1.9 1.2 3.2 0 1.2-.4 2.3-1.2 3.2-.8.8-1.7 1.3-2.8 1.3-1.1 0-2-.5-2.8-1.3z"
+    fill="#EA4335"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M12 23a12.1 12.1 0 01-10.4-5.8 11 11 0 010-11.4C2.6 4 4 2.6 6 1.6a12.1 12.1 0 0114 1.6l-2.2 2.2A8.4 8.4 0 0012 3c-2.4 0-4.4.9-6 2.5a8 8 0 00-2.5 5.9 8 8 0 002.5 6 8.2 8.2 0 006 2.4c2 0 3.8-.6 5.2-1.7a6.6 6.6 0 002.5-4.6H12v-3.1h10.8l.2 2c0 3.1-1 5.7-3.1 7.6-2.1 2-4.7 2.9-8 2.9z"
+    fill="#4285F4"
+  />
+</svg>
diff --git a/go.dev/_content/images/google-white.png b/go.dev/_content/images/google-white.png
new file mode 100644
index 0000000..c55ee30
--- /dev/null
+++ b/go.dev/_content/images/google-white.png
Binary files differ
diff --git a/go.dev/_content/images/gopher-footer.jpg b/go.dev/_content/images/gopher-footer.jpg
new file mode 100644
index 0000000..fafe104
--- /dev/null
+++ b/go.dev/_content/images/gopher-footer.jpg
Binary files differ
diff --git a/go.dev/_content/images/gophers/biplane.svg b/go.dev/_content/images/gophers/biplane.svg
new file mode 100644
index 0000000..e510140
--- /dev/null
+++ b/go.dev/_content/images/gophers/biplane.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 1200 945" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M811 927l-14-4a287 287 0 01-58-36c-14-7-29-20-40-31l-22-17-18-14c-24-17-46-36-67-57-4-3-10-7-12-10l-27-21c-9-9-10-9-24-4l-31 6c-2 0-4 0-6 2l-7 11c-4 8-4 9-3 13 0 2 3 6 6 9 5 7 20 21 20 32 4 6 4 16 4 23 0 11-1 23-9 32-10 12-22 21-32 22l-10 2c-12 2-13 2-15 0l-3-3h-1c-2 1-11-1-13-3l-8-5c-14-9-23-27-25-43l1-16v-8l-1-2 2-2 4-6c0-3 3-7 5-11 4-6 4-6 3-12 0-7-3-12-11-19-6-6-16-6-24-7-4 0-10-1-14 3l-5 4c-1 2-12 10-19 13-8 6-17 0-26 4s-12 17-24 17h-1v-1l5-6c9-11 11-15 7-18-7-7-20 13-25 13h-1v-1l7-8c10-9 11-12 6-19-2-2-4-7-4-9l-4-8c-10-7-22-8-33-12-7-3-7-5-13-9l-4-2h-1v2l6 9a63 63 0 0116 22c5 5 16 24 20 34l8 17c3 7 3 13 0 17l-2 5c-9 12-21 12-32 2-2-2-24-17-24-25l-4-6c-8-15-10-18-14-30-9-22-10-47-18-70-2-4-3-4-11-7-6-1-14-5-16-8-5-5-3-18 0-23 7-11-4-22-10-30a456 456 0 01-40-54c-7-10-19-33-22-41-4-13-4-18-3-24 2-8 6-16 16-12 2 0 3 2 5 3 19 9 30 29 38 47 3 6 7 12 9 19l13 37 4 14 5 12 5 10 2 1 3-1c3-2 10-19 13-33 4-17 6-22 9-23 7-7 9-18 13-27 1-3 3-10 7-12a322 322 0 0019-23l6-6 5-8c5-5 2-7-29-31-8-5-16-12-23-19-5-2-7-6-12-8l-7-6-10-7c-12-6-19-13-29-21-9-7-17-14-18-18l-3-10c0-10 3-24 15-24l12-3c4-1 25-3 21-13l-4-7-11-17-11-17-27-32c-7-7-9-13-8-22 1-10 3-13 18-24 5-4 15-11 19-12l10-5c11-5 30-12 38-13l12-3 33-3c17-3 37-2 51 2 13 5 35 17 56 33l12 8 13 9 33 24 13 10a447 447 0 0140 28l12 7 4 2 2-1c0-12 9-25 18-33 11-7 15-9 30-7l6 1v-1c0-2 23-19 26-19l8-4c7-3 8-4 11-10l6-7c6-5 12 4 14 8 3 4 3 4 14 7a234 234 0 0149 17c7 6 18 13 23 15l7 2 9-2c4 0 6 0 9 2 9 4 18 12 12 23l-9 10c-4 5-4 5-4 18 1 14 1 14-2 21-7 14-3 16-8 30-2 10 0 12 11 6 9-4 19-14 26-25 6-8 10-12 18-17 5-3 7-5 9-10 7-12 10-14 23-18 9-2 17 0 44 10 11 4 17 8 25 13l11 6c12 0 18-10 24-19 6-11 9-14 19-21 4-3 7-9 12-9l5-2c1-1 16-10 19-10 10-6 33-12 40-11 14 2 30 11 40 21 4 0 11 10 13 12 2 0 6 4 8 9l4 8c8 9 12 45 8 64l-3 17-3 17-3 11c-3 9-5 11-10 19-3 3-3 4-2 6l11 12c22 21 43 44 48 52l6 10c8 10 9 21 3 29-2 3-4 4-10 6l-21 7c-5 0-22-2-27-4l-28-13-25-12-7-5-4-2-5-2c-7-7-11 0-18 5-14 12-19 15-32 22l-16 9-26 19c-4 4-7 6-11 7l-8 3c-5 3-4 6 5 13l15 15 16 14 37 29 18 17c14 12 25 29 16 48-3 7-11 16-20 23-12 9-12 10-17 24-3 10-9 26 1 34l15 10c12 8 17 14 22 22 4 7 6 22 1 29-2 5-11 13-18 16-45 20-80 33-93 35l-20 2-18 1h-10zM83 700l-3-6-1-2c-3-2-9-27-11-45-4-37-2-62 7-80l4-9 1-4h2l-1 3-3 10c-8 18-9 34-7 64 1 26 4 30 10 55 1 3 1 8 4 11l2 6v2h-1l-3-5zm-30-62l-2-22c-2-24 1-44 9-60 6-14 10-20 13-20h1v3h-1l-4 7-6 11c-3 4-7 16-8 23-2 10-1 46 1 53l-1 4-1 2-1-1zm886-441c0-3 5-5 7-6 5-3 19-11 23-15l9-2 16-4a185 185 0 0183-11c11 2 27 3 37 10l10 5 9 6 8 5 5 4 1 2v1h-1l-8-4-8-5-3-1c-2-3-19-12-26-13l-11-3a193 193 0 00-58 1c-11 1-27 5-47 12-9 3-16 3-25 7-7 3-14 6-19 11l-2 1v-1zm-41-26c0-1 8-8 15-12l16-13c14-10 21-15 30-17l15-5 12-5 18-6c15-5 25-8 36-8l16-3c8-2 15-4 23-4 3 0 10 0 10 5v1l-2-1c-5-2-18-1-32 4l-15 3c-5 0-17 2-22 5l-16 5-13 5-3 2-1 1h-2c-1-1-19 5-26 8-14 7-27 16-39 25-10 8-15 11-18 11h-2v-1z" fill="#0e0e0e" fill-rule="nonzero"/><path d="M809 922c-7-2-18-8-22-11l-7-4-31-21-12-8c-12-8-12-7-23-17l-33-26-14-10-24-19a215 215 0 01-37-31l-8-8-15-13-17-15c-2-2-9-6-8-11s9-2 11 0c10 5 18 13 27 20l58 49c10 10 37 32 46 39l12 9 53 40c8 7 22 16 27 18l15 4c17 3 36 2 58-4l39-12 29-10c5-1 14-4 19-7l10-4h2l1 2c1 5-5 9-22 17a147 147 0 00-24 10l-5 2c-9 4-46 16-59 19-23 4-23 2-46 2zm9-17c-8 0-18-3-23-6-6-2-17-10-22-14l-12-9-14-12-17-13c-7-4-9-7-15-12-1-1-4-4-6-4l-7-6c-4-6-26-22-31-26l-38-30-36-30-11-10-9-9c-1-3 0-5 3-6 7-1 17-5 23-8l15-6 16-6c10-6 15 0 23 6a1831 1831 0 0058 47c11 13 26 21 41 30l30 16 21 6c3 1 9 9 14 18 23 39 32 52 36 54 2 0 9-3 9-6 1-2-1-12-3-18-6-14-13-28-18-43-4-10 2-14 11-17 10-3 18-6 28-2 9 4 14 8 16 13v11a184 184 0 00-1 40c2 11 11 2 12-3 3-4 7-21 10-25 3-9 7-9 15-1l9 6c7 3 14 9 16 14 6 12-8 26-19 28l-4 2c-3 2-14 7-37 14l-12 4c-3 2-8 3-10 3l-16 4c-14 5-34 7-45 6zm-369-28l-13-3-9-3c-5-3-15-13-19-20-5-8-6-15-6-28 1-10 1-11 4-18 4-10 9-17 18-23s29-12 35-10c3 0 21 9 27 13 7 5 16 18 18 26 3 10 2 15-3 30-3 11-5 15-8 18-8 10-22 17-31 18h-13zm19-33c3-2 10-5 10-10v-11c0-12 0-13-3-16-3-4-10-9-14-10l-9 3-10 6c-8 7-8 21-3 29 1 1 3 6 5 7l4 2c6 1 14 2 20 0zm386 22l-16-24-3-7c-5-7-14-22-17-30l2-4 7-1c5 0 6 1 8 5a276 276 0 0115 29c11 22 13 30 11 33-1 3-4 2-7-1zm50-19c-1-3 0-13 4-34l2-23c1-17 2-20 5-22 3-3 10-4 11-2 3 2 2 6-3 23l-6 26c-1 9-7 29-8 32l-3 2h-1l-1-2zm-652-29c-5-3-13-8-15-12l-3-3-5-6-7-10-3-6c-9-13-11-20-22-61l-4-17-3-19-3-14 1-1 1 1 7 12 9 15 13 16 14 17c7 9 12 17 23 38 8 16 11 21 14 39 1 3-1 6-3 8-3 4-9 5-14 3zm553-24l-18-3c-17-8-26-13-37-21l-16-11-16-13c-15-15-23-21-40-34l-12-9-42-32-14-10c-4-3-12-9-17-15-11-10-30-25-39-30-24-15-43-38-67-53l-30-23-14-11-15-12-12-9-16-12c-4-3-8-9-13-11l-3-1v-1l-9-8-11-9-10-8c-9-12-23-21-36-30l-16-12c-16-14-33-27-45-35s-22-19-35-25l-32-27c-14-10-29-23-32-27l-10-9c-12-11-27-27-31-34-3-6-4-12-1-13h1l1 2a352 352 0 0119 20c14 14 20 20 38 34l33 25 18 14 22 16c16 10 21 14 44 33l27 22 11 9c9 9 19 15 28 23 16 15 27 23 57 44l14 11 15 11 18 14 21 15 20 16c5 4 9 9 15 12 2 2 7 2 9 4l4 3 15 12 21 16 13 12 12 9 60 47c15 12 28 24 44 34l16 13 7 7 26 20c12 12 33 27 39 30 17 4 41 7 58-1 9-6 83-31 95-33l10-3c1 0 6-4 8-1h1l-1 3c-2 4-8 7-17 12l-9 5-7 3c-4 0-14 4-23 8l-22 8c-8 2-20 11-29 11l-16 5c-11 3-22 5-27 3zm89-7l-5-6-1-1 1-2c3-3 8-4 11-5 2 0 4 0 5 2 2 3 1 7 0 10-2 6-4 6-11 2zm-474-15l-4-5-15-18c-4-5-7-11-6-14 0-3 4-3 6-3l34-1 24-3c14-1 16-2 22-4 7-3 8-4 10-1 2 1 1 5-4 15-4 7-9 19-9 25l-3 5-1 1-5-2c-11-5-31-2-41 4-4 2-6 2-8 1zm383 0l-12-3-27-17-14-10-8-8-6-6-40-32-15-12c-30-20-31-21-44-33l-19-15-21-15-12-9-24-21-12-9-16-12-25-19-12-9-8-6-8-6c-11-11-26-19-39-29l-33-24-20-15-16-12-8-6-11-10-14-12-9-6-60-50c-7-6-24-16-31-23l-10-7c-13-8-34-24-42-32l-10-7-11-8c-16-13-27-29-41-43-4-5-5-11-2-17 3-5 12-12 27-19 13-7 20-9 35-13l18-5c5-2 8-2 58-5l16 1c16 8 17 4 33 13a254 254 0 0152 35l11 8c4 4 7 7 39 28l29 20 21 14c14 10 18 13 22 23 3 6 3 7 3 13-3 8-5 30-6 36-1 15-1 16 1 22l6 11c4 7 14 16 20 20l11 5c12 7 12 7 25 10 17 3 35 5 51 4l16-1c0-3 4-3 6-2 12 1 24 1 35 6a84 84 0 0125 16l12 9 6 4 6 6 18 13c17 14 34 29 52 41l22 18 18 14 32 25 14 11 27 24 41 35 20 16c7 6 14 14 16 19 4 4 1 19-3 21-9 5-25 10-35 13-3 1-7 1-9 3l-9 4-7 2c-7 2-14 3-20 7l-12 4-14 5c-7 3-12 5-29 9h-20zm-471-24c3-2 8-3 14-1 8 3 6 7-7 15l-13 5c-2 0-6 1-8-1l-1-5c1-3 1-6 4-8 4-3 8-2 11-5zm-30 11c-4-4-4-6-1-11 3-4 6-4 9 0l2 2c2 3 1 6-1 9-1 1-3 3-5 3l-4-3zm-13-12c-3-2-5-9-3-10 2-3 11-2 13 2 1 4-4 10-8 10l-2-2zm69-6h-9l-18-3c-4-2-4-4-3-14v-14l1-7-2-1h-1v3l-4 24c-3 5-7 4-12 2v-9l4-33v-9h-3v7l-4 33c-2 10-3 11-13 8-9-3-15-5-15-7l-1-2 2-2a120 120 0 0017-41c5-19 6-40 0-59-3-10-8-21-13-31-5-12-16-27-29-32-10-5-9-7-19-12-3-1-7 0-9-2-3-3 1-8 2-10l17-18a138 138 0 0138-26l8-5c14-9 33-20 50-20 4 0 9 4 12 6 12 10 21 16 24 17l26 22 12 8 7 6 21 15 27 22 10 8 18 16c7 7 16 15 21 17l18 15c11 10 12 11 7 15-8 5-18 8-22 17-4 6 2 11 8 11 7-1 25-6 32-10 6-3 7-3 12-3 5 1 17 7 20 11l18 13 8 6 11 10 4 6c-1 2-10 7-21 10l-13 5-28 10-17 3a449 449 0 01-45 13l-7 2c-9 2-7-9-10-14-3-3-4-3-14 1l-19 4-15 2-20 2c-11 0-24 0-35 2-4 1-3 10-5 12-3 1-22 2-29 0zm-102-22c-10-3-17-6-20-10-9-7-27-25-27-26v-2h4c5 0 14-2 19-4l15-15c6-18 5-38-12-49-10-7-17-10-26-10l-9-2v-5l1-7c1-8 14-37 18-40 7-5 23 1 28 6l10 7c13 9 20 18 27 31 3 7 7 15 7 19 3 11 6 39 4 43-1 1-2 7-2 15-2 17-5 24-12 35-5 8-6 9-11 11-7 4-11 4-14 3zm-90-49c-7-4-11-17-4-22s16-7 25-7l10 2c5 3 6 9 6 15l-2 7c-2 3-5 2-12-4l-8-6h-2v2l-1 2v8l-1 3c-1 3-6 3-11 0zm44 1c-4-9 1-19-5-27-3-6-8-11-10-12-7-1-8-8-3-14 4-6 10-9 17-9 7-1 12 1 22 7 9 6 12 10 13 20v15c-3 10-4 12-9 15-6 4-10 5-17 6l-8-1zm319-20l-2-1v-2c0-2 2-4 3-5 6-6 10-8 17-12 4-1 8-3 12-1 4 1 11 8 4 11a218 218 0 01-12 4c-16 6-19 7-22 6zm-368-22l-11-15-15-19-12-16c-7-8-10-19-18-27-10-15-18-29-20-48-1-15 20-6 25 0a197 197 0 0140 72c8 21 16 48 16 53v3h-1l-4-3zm683-38l-33-24-17-14-28-23-23-19-24-18-16-11c-2-3-8-7-12-10l-11-9-3-3 3-7 5-13c0-3 2-7 3-8l9-2 32-6 19-3 17-4 35-3c22-5 21-5 19 14v2l6 2c5 2 8 2 16 1l18-2 22-3 19-3 9-1c2 1 8 0 14-1 13-2 11-2 33 0 24 1 37 5 38 10v2l-2 1c-2 1-15 2-53 2l-55 2c-4 1-15 6-12 12 1 4 6 8 8 10l18 14 14 10 18 13 20 15c2 1 6 5 6 8 0 2-4 7-6 8-9 9-21 18-32 24-7 4-21 16-31 19l-9 5c-8 6-24 18-34 13zm205-37c-12-4-33-15-55-29-6-3-13-6-18-11l-22-16-25-17-5-4-5-4-26-21-6-6 1-1c0-1 1-2 3-2l8-1h82c11 0 15-1 26 3l12 6c6 5 31 28 37 36l14 15c10 9 16 18 22 31 4 9 4 11-1 16-2 3-4 4-11 6-12 3-20 3-31-1zm-27-2l-10-6-13-7-28-16-13-9c-4-2-10-6-13-10l-30-22c-8-6-9-4-15-10l-12-10c-7-5-8-6-8-8v-2h2c1-1 6 1 11 5l5 5c9 4 14 13 23 17l14 10c7 7 19 14 27 19 29 19 28 20 58 37 7 3 12 7 12 8v1h-3l-7-2zm-768-68c-7-4-14-10-28-22-9-9-13-10-22-17l-21-14-10-9-12-9c-2-1-9-3-9-7-8-8-24-16-24-30v-3l1-1c5 0 9 6 12 9a459 459 0 0060 47l17 14 14 11c17 13 33 26 34 29l2 2-1 2c-2 2-5 1-13-2zm17-8l-11-8-16-13-13-10-9-5-6-4c-1-2-9-9-16-13l-33-28-13-11c-7-4-30-24-10-28 10-3 19-5 29-6l3 2c2 3 16 30 24 18 1-3 1-3-3-13-2-8-3-10-2-11l1-2 2 1a559 559 0 0144 31c3 1 6 5 8 7a319 319 0 0139 30c10 7 24 19 27 23 3 3 6 18 4 20-1 3-6 6-8 7l-15 7c-7 4-17 13-26 6zm54-21l-2-5 1-6 2-1 2 2c2 2 3 6 0 9-1 2-3 3-3 1zm338-7l-8-4c-1-2-3-2-5-2h-7c-4-2-9-1-27 0h-23l-1-1 1-2 1-2-3-3c-5-5-14-8-19-5h-9l1 4c0 4-2 6-7 9-4 2-11 0-15-1-20-7-40-17-50-36-4-8-4-8-4-18 1-17 4-34 5-35 2-3 5-2 7 1 2 2 2 7 0 11 0 3 4 7 9 8 4 1 4 1 7-2 5-7 17-4 23 0 8 7 20 12 28 12 13 2 23-2 37-14 6-6 7-6 12-6 5 1 7 1 10 4 9 5 10 11 13 21 3 8 4 18 12 22l16 5 14 4c2 2 1 5-1 15-4 13-4 15-7 16-3 2-3 2-10-1zm-91-4c-3-2-2-4 2-9 3-4 4-4 7-4l6 2 3 2v1l-2 3-8 5-4 1-4-1zm441-3l-12-11c-6-5-9-7-14-9-12-5-25-3-38-3-11 0-24-4-34 1l-17 2-16 1c-3 2-41 4-46 3l-6-1c-2-2-1-8 2-13a234 234 0 0142-60c22-37 36-51 63-64 6-3 13-6 17-6 9-3 20-5 29-4 15 3 27 10 41 28 5 6 9 11 10 15l4 9c7 11 6 26 6 38 0 10 0 20-2 30l-2 14c0 6-6 22-8 26-2 3-7 7-11 8l-8-4zm-320-19l-2-2 1-3c1-1 6-5 15-9 7-4 15-8 16-10 4-3 8-9 15-19 6-8 21-27 34-20 5 3 6 7 11 11l16 16c6 5 14 14 14 16v2l-1 1c-12 0-24 0-35 5l-36 6-18 3-13 2-9 2c-4 1-5 1-8-1zm-30-13c-12-3-17-8-19-19l-3-13c0-2-3-8-1-10 1-3 6-2 8-2 11-1 20-2 30-6l8-3h2v7c-2 8-7 33 9 27 3-1 6-1 8-3 7-4 20-14 25-22 10-14 16-19 23-21 2-2 5-3 8-3 4 0 8 3 6 7l-9 6c-5 2-11 6-14 9-11 9-8 10-17 21-8 10-12 13-23 19-8 5-10 5-19 6h-22zm163-16c-15-9-27-20-39-32l3-6c7-8 6-14 0-21-5-7-12-4-19-2-11 4-8-6-2-10 9-5 21-5 31-3 11 3 33 12 39 17l11 8c10 5 10 8 4 20-7 13-21 31-24 31l-4-2zm-267-19c-11-4-18-8-21-13v-10l1-1 1 1 4 5c3 4 12 9 19 11 2 0 6 0 10-2 8-2 15-6 20-16 5-8 6-18 0-26-3-7-10-12-19-15-8-3-17-2-26 1l-7 5c-4 3-7 14-13 6l-5-4c-5-2-6-5-5-10l2-10c2-9-4-18-13-22l-6-2-1-1 2-2 8-1c10 1 19 6 30 15 8 7 8 8 21 12l19 5c7 2 14 7 22 14 9 10 14 25 6 37-5 9-16 19-23 22-8 3-19 4-26 1zm-52-7a5 5 0 01-1-1c-2-3 0-6 2-8l3-2 2 2c2 2 2 6-1 9-2 3-3 2-5 0zm-320-6c-1-4-2-4-4-7l-10-19-5-11-1-2 1-1c4-1 14 9 17 18l5 14 4 11c-2 2-4 1-7-3zm368-5c-6-4-10-8-11-13-1-10 2-22 9-27 3-2 7-2 11-2 12 1 25 6 26 20 2 9-2 16-12 22-7 3-16 5-23 0zm5-15c4-3 1-9-5-9h-3l-1 2c-1 3 1 7 3 8 3 1 4 1 6-1zm69 16c-2-1-11-1-13-6-1-2-1-12 3-12l6 2c7 3 13 3 28 2 14-1 20-3 34-9 5-2 7-3 8-2l2 1-1 2c-1 5-19 18-29 21-9 3-27 4-38 1zm-107-1l-6-3-7-4c-4-2-7-4-8-8v-3l1-3c2-5 6-3 10-1 2 2 6 3 9 4 6 1 9 4 10 9 1 6-3 10-9 9zm254-15l1-3 3-1c2 0 4 0 6 2a20 20 0 011 2l1 2-3 3-3 2-4-2-2-5zm-143-3c-8-2-11-4-17-14-4-9-13-18-21-22l-17-7-17-5-7-3c-3 0-16-13-19-18l-1-2 3-3c13-16 37-20 56-20 18-1 19-1 26 1 8 2 16 6 18 8l6 1 8 4 9 6 9 7c4 5 5 7 2 12l-1 3 4 5c4 4 5 6 7 12 1 4 4 13 10 10 5-1 8 5 5 10-3 3-21 13-27 14-8 1-31 2-36 1zm-116-7c-3-2-4-5-1-7 2-3 5-2 8 0 2 3 3 4 0 6-1 2-4 2-7 1zm-30-16c-5-5-8-13-6-19 3-8 9-14 17-16 6-1 9-1 12 3 3 3 4 17 2 22-3 7-10 14-18 13-4 0-4-1-7-3zm5-7l2-2c2-2 2-5 1-7s-3-5-6-3c-2 1-4 4-3 6l2 3c1 1 2 3 4 3zm197-3c-2 0-2-3-1-4 2-3 4-5 7-6l3-2v-4l-6-1-9-1h-2v-2c1-4 6-6 10-6 6-1 16-1 18 7v6c-2 5-13 15-18 15l-2-2zm-109-69c-2-1-1-5 1-7 2-1 6-3 7 0a6 6 0 011 3l-1 4h-8zM451 837l-8-6-3-4v-6l1-6c1-3 5-6 7-8 5-3 11-6 16-3 4 1 6 5 8 8 3 5 3 10-1 17-5 11-10 13-20 8z" fill="#fff" fill-rule="nonzero"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/blue.svg b/go.dev/_content/images/gophers/blue.svg
new file mode 100644
index 0000000..5505540
--- /dev/null
+++ b/go.dev/_content/images/gophers/blue.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="blue"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#6cd1ef;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#6cd1ef;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#6cd1ef;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/factory.png b/go.dev/_content/images/gophers/factory.png
new file mode 100644
index 0000000..d94dfb4
--- /dev/null
+++ b/go.dev/_content/images/gophers/factory.png
Binary files differ
diff --git a/go.dev/_content/images/gophers/front.svg b/go.dev/_content/images/gophers/front.svg
new file mode 100644
index 0000000..8d7b916
--- /dev/null
+++ b/go.dev/_content/images/gophers/front.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 465 619" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M102.644,615c-16.389,-8.194 -11.303,-20.62 -5.625,-34.5c9.389,-22.951 -3.981,-23.769 -19.412,-37.796c-19.506,-17.733 -39.122,-39.021 -50.963,-62.704c-14.001,-24.502 -18.382,-57.498 -20,-85c0,-40.155 -7.265,-79.822 -5.667,-120.037c1.352,-34.006 -0.349,-80.92 11.667,-112.963c3.38,-10.142 32.479,-78.041 29,-85c-23.681,-23.681 -21.452,-83.521 18,-49c31.165,24.932 62.114,-9.516 94.704,-16.444c61.596,-13.096 123.887,-18.285 183.296,5.444c21.327,0 43.03,22.728 60.125,32.625c11.841,6.855 72.516,-50.952 62.764,1.708c-2.815,15.201 -9.565,28.873 -23.389,37.167c-7.945,4.767 7.357,27.287 9.652,33.436c10.601,28.413 11.426,60.244 14.108,90.36c6.637,74.555 4.447,158.167 -10.26,231.704c-6.071,24.284 -14.758,44.697 -24.625,67.25c-6.954,15.895 -27.749,23.998 -39,36.5c-16.914,18.793 15.786,37.347 6.625,60.25c-13.391,26.781 -47.697,-17.093 -52,-30c-5.31,-15.929 -101.922,3.585 -124.487,3.491c-23.252,-0.096 -46.379,-3.491 -69.513,-3.491c-10.705,5.048 -20.592,55.306 -45,37c-2,-1 4,3 0,0" style="fill:#040404;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-116,-6c-8.185,-1.169 -14.513,-9.289 -6.625,-16.125c8.135,-7.05 21.481,-5.753 31.125,-4.375c7.732,1.104 12.184,13.158 3.5,17.5c-7.375,7.375 -18.768,3 -28,3c-7,-1 3,0 0,0m22,43c-8.952,-3.836 -40.005,2.874 -44.313,-3c-12.5,-17.047 6.06,-33 21.313,-33c19.882,9.941 37.782,-9.186 50.75,16.75c8.709,17.417 -17.018,21.396 -27.75,19.25c-7,-3 5,1 0,0m-23,33c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m71,-288c-8.052,-2.684 -16.558,-4.156 -25,-5c0.902,-0.431 1.235,-1.098 1,-2c9.566,1.579 21.608,3.746 29,9c-1.859,0.149 -3.526,-0.518 -5,-2c-6,-2 2,1 0,0m140,34c0,-6.759 -4.656,-12.427 -10,-16c9.953,2.648 14.333,15.051 9,21c0.333,-1.667 0.667,-3.333 1,-5c0,-3 0,0 0,0m-415,26c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m386,19c0,-8.832 -5.12,-15.191 -13,-21c11.589,-7.833 22.214,5.549 24,-12c-2.658,3.632 -4.363,3.688 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-27.2,-19.047 47.771,-58.078 39,-12c1.113,-0.759 2.759,-2.201 4,-3c-1.639,9.695 -18.896,42.654 -29,37c0,-2 0,0 0,0m22,62c-2.891,-17.346 -12.595,-33.034 -15,-50c7.54,19.051 16.513,37.267 17,58l-2,0l0,-8c-2,-12 0,0 0,0m3,29c-2.595,-5.189 -2.293,-13.281 -2,-19l2,0c0.091,4.941 3.354,26.196 0,19c-1,-2 0,0 0,0m-449,8c0.7,-6.304 0.035,-10.186 3,-15c-1.454,9.279 -1.572,18.812 -3,28l0,-13c1,-9 0,0 0,0m-7,110c-2.156,-21.562 1.681,-43.549 3,-65l2,0c-2.936,24.936 -3,49.932 -3,75l-2,0l0,-10c-1,-10 0,0 0,0m459,25c0,-46.173 -3.566,-93.095 -3,-139c7.609,51.055 8.016,105.523 3,151l0,-12c0,-7 0,0 0,0m-2,28l0,-7c-0.613,2.309 1.199,-3.583 1,-6c0.975,6.267 0.592,13.491 -1,20l0,-7Zm-422,144c-32.266,-32.266 -32.374,-112.71 -31,-156l2,0c0.831,53.07 2.159,116.523 34,160c-2.22,-0.612 -3.138,-2.139 -5,-4c-2,-2 2,2 0,0m65,70c4.703,-9.406 -18.285,-20.271 -24,-25c10.096,5.326 28.826,13.702 26,28c-3.707,0.621 -0.458,-2.091 -2,-3c2,-4 0,0 0,0m-1,7c0.333,-1 0.667,-2 1,-3c-0.283,2.917 -0.75,8.063 -1,3c0,-1 0,0 0,0m60,-558c6.514,0 14.005,-3.146 18,-7c-9.71,0 -23.197,3.677 -30,6l0,2c2.735,0.128 10.599,0.401 12,-1c1,0 -1,1 0,0m-56,166c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m276,54c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c69.461,9.556 100.323,-86.485 66.625,-135.5c-11.606,-16.881 -26.581,-29.494 -47.625,-32.5c-8.796,-1.759 -17.874,-3.043 -26.75,-4.375c-12.285,-1.843 -21.127,6.375 -32.25,6.375c-24.506,0 -53.077,50.867 -52,72c2.147,-20.885 18.596,-52.451 38,-62c0.236,0.902 -0.098,1.569 -1,2c23.08,-2.634 45.542,-17.783 70,-8c39.63,13.21 64.115,44.62 59.556,88.185c-3.302,31.551 -32.596,43.855 -51.556,62.815c-15.563,7.781 -42.37,-3.005 -52,3c-25.412,-11.924 -45.712,-20.88 -57,-49c-7.755,25.497 60.169,74.22 86,57c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-158,88c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.94,12.94 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.831,-5.415 27.846,-27.618 35,-37c-13.437,0.869 -41.83,47.284 -54,27c-8.005,-14.009 18.743,-37.997 30,-44c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-57.393,0 -105.271,-32.545 -138.037,-76.63c-36.214,-48.724 -39.467,-118.672 -40.889,-178.37c-1.424,-59.793 4.009,-117.322 15.815,-175.37c6.471,-31.819 22.706,-67.055 50.111,-86.63c11.923,-5.961 28.977,-17.872 37,-28c-11.593,3.652 -24.827,15.541 -36,6c19.395,9.352 59.102,-21.064 79.704,-25.444c35.946,-7.642 71.951,-10.633 108.296,-11.556c-15.012,4.121 -31.583,-2.78 -46,7c63.567,-0.565 115.891,7.941 170,42c-5.085,-12.088 -17.654,-14.626 -27,-23c9.715,3.034 17.032,7.654 24.5,14.375c13.825,12.443 16.022,6.625 29.5,6.625c-7.766,10.667 -17.295,6.242 -26,-1c14.6,22.518 35.633,38.988 48.333,64.037c16.812,33.155 17.24,71.161 20.042,107.588c2.346,30.5 1.084,62.069 0.683,92.697c-0.232,17.66 -0.564,35.321 -1.049,52.975c-0.143,5.195 -4.377,25.967 -2.009,30.703c0,65.132 -29.644,137.929 -93.5,161.875c-49.075,18.403 -120.854,26.706 -173.5,20.125c-3,0 8,1 0,0m183,28c-11.369,-4.548 -20.803,-24.277 -20,-22l2,0c-3.549,-17.578 18.132,-31.737 27,-14c5.01,11.688 22.229,53.845 -9,36c-5,-2 7,4 0,0m-265,5c-10.09,-3.363 -4.28,-20.73 -2,-27c0.722,-1.925 6.687,-16.722 10,-18c3.109,-1.199 2.519,7.481 8,2c4.404,-2.202 18,11.752 18,15c0,14.052 -20.109,33.557 -34,28c-3,-1 5,2 0,0" style="fill:#262927;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m117,-14c-8.185,-1.169 -14.513,-9.289 -6.625,-16.125c8.135,-7.05 21.481,-5.753 31.125,-4.375c7.732,1.104 12.184,13.158 3.5,17.5c-7.375,7.375 -18.768,3 -28,3c-7,-1 3,0 0,0m22,43c-8.952,-3.836 -40.005,2.874 -44.313,-3c-12.5,-17.047 6.06,-33 21.313,-33c19.882,9.941 37.782,-9.186 50.75,16.75c8.709,17.417 -17.018,21.396 -27.75,19.25c-7,-3 5,1 0,0m-23,33c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m-106,-284c17.881,-18.778 91.457,-15.301 119,-16c-20.912,5.741 -51.081,5.73 -74,8.375c-15.659,1.807 -31.215,4.752 -44,6.625c2.292,2.61 0.665,1 -1,1c0,0 1,0 0,0m-98,56c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m385,10c-2.355,-4.712 -6.955,-8.787 -11,-12c10.359,-5.318 22.308,4.591 23,-12c-2.701,3.692 -4.234,3.657 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-19.269,-12.681 12.614,-34 26,-34c25.862,0 7.327,55.542 -13,47c-1,-2 0,0 0,0m-430,218c-2.156,-21.562 1.681,-43.549 3,-65l2,0c-2.936,24.936 -3,49.932 -3,75l-2,0l0,-10c-1,-10 0,0 0,0m459,25c0,-46.173 5.016,-33.477 0,12l0,-12m-445,121c-10.642,-31.926 -11.062,-71.558 -10,-105l2,0c0.563,35.79 10,72.251 10,107.5c0,3.995 -1.323,-1.765 -2,-2.5c-1,-3 0,0 0,0m365,-210c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c32.971,4.536 72.312,-30.924 81.111,-63.185c17.361,-63.656 -34.461,-101.03 -88.861,-109.19c-51.383,-7.708 -88.209,54.57 -83.9,98.124c2.409,24.353 13.911,49.307 36.244,61.814c10.999,6.159 43.291,20.514 55.406,12.437c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-158,88c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.94,12.94 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.831,-5.415 27.846,-27.618 35,-37c-13.437,0.869 -41.83,47.284 -54,27c-8.005,-14.009 18.743,-37.997 30,-44c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-28.746,0 -65.768,-11.588 -90.33,-26.697c-22.783,-14.015 -36.122,-36.881 -52.966,-56.673c-14.129,-16.602 -14.603,-34.429 -23.704,-52.63c-7.097,-14.193 -4.2,-41.618 -5.963,-57.704c-2.594,-23.667 -6.037,-48.509 -6.037,-72.296c0,-43.075 -0.393,-88.627 6.6,-131.12c6.11,-37.133 19.082,-78.431 44.956,-106.769c18.725,-20.509 61.361,-54.111 89.444,-54.111c9.771,-9.771 49.434,-8.679 62.375,-9.125c23.517,-0.811 45.078,-0.566 68.625,2.125c40.228,0 73.513,16.922 107,38c-5.085,-12.088 -17.654,-14.626 -27,-23c9.715,3.034 17.032,7.654 24.5,14.375c13.825,12.443 16.022,6.625 29.5,6.625c-7.766,10.667 -17.295,6.242 -26,-1c12.91,19.913 32.305,35.095 44.417,56.671c17.901,31.891 24.547,196.046 23.799,234.041c-0.684,34.72 -3.153,66.215 -9.375,100.414c-11.078,60.896 -40.277,103.916 -101.341,122.999c-45.715,14.286 -110.25,21.906 -158.5,15.875c-3,0 8,1 0,0m183,28c-11.369,-4.548 -22.478,-15.096 -22,-29c0.798,2.296 1.197,4.723 2,7l2,0c-3.549,-17.578 18.132,-31.737 27,-14c5.01,11.688 22.229,53.845 -9,36c-5,-2 7,4 0,0m-265,5c-10.09,-3.363 -4.28,-20.73 -2,-27c0.722,-1.925 6.687,-16.722 10,-18c3.109,-1.199 2.519,7.481 8,2c4.404,-2.202 18,11.752 18,15c0,14.052 -20.109,33.557 -34,28c-3,-1 5,2 0,0" style="fill:#555768;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m139,29c-8.952,-3.836 -40.005,2.874 -44.313,-3c-12.5,-17.047 6.06,-33 21.313,-33c19.882,9.941 37.782,-9.186 50.75,16.75c8.709,17.417 -17.018,21.396 -27.75,19.25c-7,-3 5,1 0,0m-23,33c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m-204,-228c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m385,10c-2.355,-4.712 -6.955,-8.787 -11,-12c10.359,-5.318 22.308,4.591 23,-12c-2.701,3.692 -4.234,3.657 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-19.269,-12.681 12.614,-34 26,-34c25.862,0 7.327,55.542 -13,47c-1,-2 0,0 0,0m-51,154c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c32.971,4.536 72.312,-30.924 81.111,-63.185c17.361,-63.656 -34.461,-101.03 -88.861,-109.19c-51.383,-7.708 -88.209,54.57 -83.9,98.124c2.409,24.353 13.911,49.307 36.244,61.814c10.999,6.159 43.291,20.514 55.406,12.437c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-158,88c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.94,12.94 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.831,-5.415 27.846,-27.618 35,-37c-13.437,0.869 -41.83,47.284 -54,27c-8.005,-14.009 18.743,-37.997 30,-44c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-26.316,0 -51.793,-9.84 -75.5,-20c-10.401,-4.457 -19.48,-9.245 -28.13,-16.936c-15.683,-13.945 -26.484,-38.806 -43.37,-50.064c-19.35,-24.187 -20.598,-56.013 -23.448,-85.28c-3.759,-38.602 -8.682,-76.809 -8.529,-115.615c0.232,-58.564 1.239,-125.379 27.852,-178.605c27.022,-54.045 79.437,-86.049 138.312,-96.563c118.535,-21.166 266.532,17.433 277.891,157.204c6.474,79.652 13.744,166.477 -1.031,245.656c-11.81,63.289 -30.566,123.351 -100.047,143.203c-12.498,0 -27.67,7.823 -40.463,9.343c-9.057,1.075 -43.569,-0.311 -49.537,5.657c-19.412,6.471 -53.753,4.531 -74,2c-3,0 8,1 0,0m183,28c-11.369,-4.548 -22.478,-15.096 -22,-29c6.479,-11.373 22.132,-24.737 31,-7c5.01,11.688 22.229,53.845 -9,36c-5,-2 7,4 0,0m-265,5c-10.09,-3.363 -4.28,-20.73 -2,-27c0.722,-1.925 6.687,-16.722 10,-18c3.109,-1.199 2.306,-1.756 7.626,0.665c6.594,1.376 18.374,13.087 18.374,16.335c0,14.052 -20.109,33.557 -34,28c-3,-1 5,2 0,0" style="fill:#fdbc83;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m116,62c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m-204,-228c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m385,10c-2.355,-4.712 -6.955,-8.787 -11,-12c10.359,-5.318 22.308,4.591 23,-12c-2.701,3.692 -4.234,3.657 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-19.269,-12.681 12.614,-34 26,-34c25.862,0 7.327,55.542 -13,47c-1,-2 0,0 0,0m-51,154c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c32.971,4.536 72.312,-30.924 81.111,-63.185c17.361,-63.656 -34.461,-101.03 -88.861,-109.19c-51.383,-7.708 -88.209,54.57 -83.9,98.124c2.409,24.353 13.911,49.307 36.244,61.814c10.999,6.159 43.291,20.514 55.406,12.437c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-159,82c11.254,-16.882 -24.296,-36.22 -37.336,-42.03c-4.064,5.342 -13.968,5.93 -12.664,16.03c1.258,9.744 38.697,35.419 50,26c3.602,-7.739 0,0 0,0Zm1,6c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.539,13.541 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.434,-5.217 16.833,-20.361 26,-28c13.175,-7.904 6,-4.993 6,-16c-0.652,-5.314 -4.517,-9.299 -7,-11c-16.895,6.078 -43.244,15.387 -45.023,38.341c-2.498,32.227 46.719,-19.257 49.023,-21.341c-8.147,8.116 -36.889,45.818 -47.625,28.25c-8.586,-14.049 18.207,-38.161 29.625,-44.25c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-26.316,0 -51.793,-9.84 -75.5,-20c-10.401,-4.457 -19.48,-9.245 -28.13,-16.936c-15.683,-13.945 -26.484,-38.806 -43.37,-50.064c-19.35,-24.187 -20.598,-56.013 -23.448,-85.28c-3.759,-38.602 -8.682,-76.809 -8.529,-115.615c0.232,-58.564 1.239,-125.379 27.852,-178.605c27.022,-54.045 79.437,-86.049 138.312,-96.563c118.535,-21.166 266.532,17.433 277.891,157.204c6.474,79.652 13.744,166.477 -1.031,245.656c-11.81,63.289 -30.566,123.351 -100.047,143.203c-12.498,0 -27.67,7.823 -40.463,9.343c-9.057,1.075 -43.569,-0.311 -49.537,5.657c-19.412,6.471 -53.753,4.531 -74,2c-3,0 8,1 0,0" style="fill:#94dff7;fill-rule:nonzero;"/><path d="M399.543,158.596c-5.717,0 -11.423,-8.071 -5.899,-13.596c15.672,-15.672 20.076,15.613 8.376,14.647c-1.582,-0.51 0.313,0.354 -2.426,-1.024m-317.95,0.377c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m115.266,62.534c-11.711,-5.855 -5.129,-30.975 -5.129,-30.975c5.902,-2.342 19.497,-2.161 20.229,3.368c2.271,17.163 6.023,31.314 -14.366,28.007m20.808,0.608c-4.467,-2.767 -1.827,-24.375 -1.808,-29.542c6.511,-1.252 13.188,-2.57 14.024,0.764c7.624,30.373 -7.447,35.932 -12.216,28.778Z" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/graduate-colorized.svg b/go.dev/_content/images/gophers/graduate-colorized.svg
new file mode 100644
index 0000000..2ad4a30
--- /dev/null
+++ b/go.dev/_content/images/gophers/graduate-colorized.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 155 223" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M32.253,51.36c-4.207,5.634 -11.291,13.127 -12.008,20.498c-0.948,9.746 -2.254,19.458 -2.254,29.254c0,18.645 -1.123,37.119 5.046,55.15c3.012,8.805 8.989,17.37 13.274,25.649c1.425,2.755 7.814,5.624 10.302,7.393c3.028,2.152 6.295,5.435 9.857,6.641c17.64,5.974 34.591,13.16 53.592,8.04c5.583,-1.505 11.167,-3.01 16.75,-4.515c3.437,-0.927 5.943,-6.225 8.032,-8.9c1.78,-2.277 6.498,-6.294 6.721,-9.293c0.36,-4.845 1.393,-10.084 1.109,-14.929c-0.448,-7.674 -3.869,-15.132 -4.487,-22.827c-0.935,-11.651 -1.872,-23.301 -2.808,-34.952c-0.678,-8.447 -2.228,-15.171 -4.586,-23.39c-0.919,-3.202 -1.39,-8.967 -3.424,-11.662c-3.166,-4.194 -6.332,-8.387 -9.498,-12.581c-0.996,-1.32 3.414,-10.35 4.048,-12.174c1.417,-4.083 -4.95,-6.729 -7.96,-6.362c-2.652,0.323 -5.304,0.646 -7.956,0.969c-1.669,0.204 -2.438,3.187 -3.952,3.762c-3.143,1.195 -10.087,-0.725 -13.385,-0.962c-10.237,-0.736 -17.551,-1.515 -27.285,1.147l-19.379,5.299c-5.243,1.434 -5.652,2.337 -9.749,-1.255" style="fill:#7dd2f5;fill-rule:nonzero;"/><path d="M9.906,76.254c-1.084,-1.877 -5.602,-7.29 -5.181,-9.309c0.676,-3.237 0.695,-10.123 2.835,-12.602c5.897,-6.832 13.298,-9.089 22.363,-9.089c12.378,0 -4.815,13.393 -6.396,16.278c-0.779,1.421 -1.535,11.627 -2.742,11.396c-5.651,-1.079 -6.231,-0.178 -10.879,3.326" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M49.859,54.254c-5.491,5.184 -8.406,7.787 -10.882,14.838c-1.624,4.622 -1.947,13.56 0.438,17.904c2.095,3.816 9.113,8.509 13.395,9.499c8.823,2.04 11.511,2.928 19.787,-0.401c4.164,-1.675 9.851,-7.167 10.465,-11.791c0.494,-3.725 0.989,-7.45 1.483,-11.175c0.324,-2.442 -2.337,-5.47 -3.469,-7.532c-3.01,-5.492 -5.842,-9.632 -12.504,-11.342c-5.491,-1.41 -13.011,0 -18.713,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M9.867,76.254c-2.324,6.338 -2.344,9.744 1.314,15.556c1.141,1.81 13.873,0.444 16.399,0.444c1.767,0 3.094,-4.272 3.094,-5.855c0,-5.148 -0.254,-4.839 -4.816,-7.196c-2.082,-1.076 -6.326,-0.199 -8.65,-0.199c-2.556,0 -5.037,-1.719 -7.341,-2.75" style="fill:#e8d5a4;fill-rule:nonzero;"/><path d="M11.674,73.313c-2.25,7.422 10.308,5.94 14,5.94c-0.715,-4.63 -0.223,-4.762 -4.666,-5.94c-3.364,-0.892 -6.078,-1.293 -9.334,0" style="fill:#fff;fill-rule:nonzero;"/><path d="M12.674,94.254c0.68,2.663 1.592,4.92 2.747,7.401c2.063,4.433 2.184,3.441 6.84,1.999c0.912,-0.282 0.906,-7.301 -0.115,-7.854c-3.304,-1.79 -5.677,-1.546 -9.472,-1.546" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M136.85,112.199c-1.788,-8.085 -0.285,-15.644 -2.388,-23.637c-2.639,-10.033 -6.181,-18.06 -13.478,-26.4c-1.714,-1.959 -2.52,-1.16 -0.774,-4.3c1.487,-2.674 1.61,-5.326 2.917,-7.981c1.382,-2.848 -0.73,-10.51 -5.076,-9.707c-0.601,0.114 -7.703,0.692 -7.54,0.771c-2.157,-1.039 -3.99,0.885 -5.573,-1.921c-0.981,-1.739 14.2,-7.997 15.849,-9.119c1.706,-1.163 7.237,-2.957 7.301,-5.148c0.107,-3.632 -4.705,-3.135 -6.673,-4.035c-2.815,-1.287 -7.067,-3.88 -10.389,-4.622c-3.727,-0.839 -13.315,-1.692 -15.957,-4.715c-0.803,-0.933 -7.423,-0.016 -8.137,-2.947c-0.51,-2.105 -3.957,-6.286 -6.417,-3.443c-1.687,1.94 -0.813,3.798 -5.29,1.308c-2.547,-1.419 -23.636,-7.306 -23.89,-6.155c-0.349,1.594 3.077,4.455 -2.956,3.241c5.778,-5.673 -1.052,-1.928 -3.799,0.55c-2.092,1.881 -5.44,4.325 -7.954,5.517c-1.531,0.725 -8.227,3.995 -8.667,5.45c-1.126,3.77 -8.35,5.358 -11.015,7.812c-3.547,3.263 -8.697,6.197 -13.535,7.088c-0.11,-0.22 0.556,-0.919 0.185,-1.065c-2.002,-0.795 -3.8,2.007 -3.575,3.805c0.12,0.958 6.734,3.515 7.777,3.119c1.763,-0.681 7.728,1 9.838,1.437c3.245,0.671 6.346,2.202 9.605,2.844c8.717,1.715 5.206,5.176 -1.318,4.509c-6.224,-0.636 -15.25,3.911 -19.114,8.625c-1.15,1.405 -3.566,2.171 -4.371,3.931c-1.261,2.759 1.439,5.368 1.899,7.803c0.733,3.876 1.471,6.802 3.115,10.462c1.373,3.043 -1.638,4.697 -1.155,7.187c0.812,4.184 0.773,6.102 3.83,9.517c2.961,3.307 3.763,6.426 5.358,10.602c0.887,2.31 1.013,9.971 2.216,9.833c-0.573,0.233 -0.919,0.639 -1.038,1.22c-0.071,0.833 2.417,-0.054 1.229,1.419c0.361,-0.143 2.154,-2.05 0.474,-2.375c0.187,-0.157 0.403,-0.232 0.649,-0.225c0.256,-0.241 -1.187,-0.894 -1.243,-1.031c1.114,-0.268 1.017,-3.751 1.033,-5.061c0.05,-3.643 4.835,-1.251 4.776,-5.738c-0.08,-6.181 10.92,-7.568 8.936,-14.908c-1.203,-4.448 -4.391,-7.593 -5.713,-11.836c-0.501,-1.608 -4.112,-1.706 -4.443,-3.381c-0.552,-2.795 3.578,-8.62 4.649,-11.262c3.844,-9.545 8.36,1.149 12.411,-4.486c0.325,-0.456 4.733,-3.301 5.395,-3.124c3.529,0.916 8.355,-2.066 11.587,-3.137c2.595,-0.862 6.454,-1.507 8.761,-1.862c3.623,-0.557 7.405,-0.178 11.013,0.112c2.644,0.212 9.996,2.927 11.999,0.837c-0.117,1.448 0.814,0.52 1.478,1.417c0.969,1.31 0.776,4.528 1.068,6.085c0.484,2.576 1.087,5.126 1.671,7.681c0.99,4.331 0.239,5.596 -1.214,9.049c-1.526,3.629 2.243,11.579 2.673,15.564c0.654,6.065 0.777,11.45 2.98,16.902c0.123,-1.113 0.413,-2.362 0.219,-3.373c-0.37,-0.072 -0.725,-0.186 -1.064,-0.345c-0.469,-1.696 0.986,-5.414 0.11,-7.92c-0.652,-1.862 -1.399,-10.177 -0.354,-12.073c0.742,-1.279 1.13,-2.882 4.006,-1.803c1.8,0.675 1.699,4.572 2.355,4.806c2.583,0.908 -0.435,-5.072 -0.938,-5.604c-2.467,-2.609 1.713,-0.386 1.427,-4.042c-0.159,-2.035 -1.363,-2.967 -3.292,-3.314c-1.196,-0.216 -0.176,-3.03 -1.04,-3.828c-1.467,-1.344 -3.69,-18.535 -1.8,-19.244c6.919,-2.591 1.773,7.641 4.411,6.872c1.629,-0.475 1.257,-3.342 2.423,-3.954c2.705,-1.423 4.131,-5.351 6.786,-7.197c7.517,-5.231 11.361,2.288 10.26,8.797c-0.381,2.249 -2.007,8.537 -5.134,8.195c-0.586,-0.062 -2.042,2.65 -1.671,3.008c1.516,1.461 3.92,-0.951 6.344,1.972c2.528,3.048 4.537,5.844 6.954,8.982c2.778,3.594 4.568,11.341 4.745,14.687c0.133,2.536 1.601,5.344 1.921,7.958c0.364,2.974 0.018,6.116 0.887,9.093c0.59,2.002 -0.57,6.291 2.465,6.251m-106.192,-95.05c-0.21,-0.468 -0.231,-0.947 -0.064,-1.437c0.644,-0.421 0.869,0.919 0.04,1.41c-1.653,1.029 -2.925,2.073 -4.453,3.208c-1.069,0.795 -8.062,6.557 -9.404,5.495c0.255,0.201 12.219,-10.868 13.881,-8.676m-8.325,7.247c0.529,1.524 20.368,-12.461 22.912,-13.792c2.34,-1.227 3.793,-3.505 6.436,-4.359c3.226,-1.042 9.3,0.442 12.269,1.834c7.575,3.57 18.835,2.511 21.078,11.666c1.245,5.065 0.937,4.876 -4.089,3.863c-0.719,-0.146 -9.098,-1.329 -8.627,-0.051c0.893,2.425 9.563,0.549 10.95,3.237c0.035,0.068 1.928,0.861 2.205,1.055c1.793,1.262 2.145,4.255 2.485,6.164c0.264,1.486 2.196,9.051 0.794,10.311c-1.593,1.43 -10.285,0.247 -12.479,0.047c-5.147,-0.468 -10.042,-0.163 -15.054,0.742c-4.546,0.821 -8.388,1.548 -12.736,3.384c-2.21,0.932 -9.434,5.89 -11.648,4.975c-0.368,-0.152 0.487,-2.714 -0.892,-2.205c-1.493,0.552 -2.832,-1.117 -1.209,-2.267c0.279,-0.198 1.635,-7.463 1.604,-8.075c-0.123,-2.719 4.833,-8.384 7.167,-9.656c1.458,-0.794 12.905,-7.224 12.6,-7.528c-1.791,-1.8 -13.894,7.108 -16.387,8.354c-2.988,1.498 -4.24,4.831 -6.766,6.318c-1.357,0.799 -5.336,-1.654 -5.87,-1.206c-0.455,0.381 -16.724,-2.697 -16.763,-2.789c-0.534,-1.224 4.353,-3.453 4.762,-4.013c1.139,-1.56 -3.132,-0.311 1.958,-1.711c1.177,-0.327 5.128,-3.142 5.3,-4.298m5.312,21.588c3.445,0.889 5.177,1.612 3.145,5.303c-1.799,3.268 -4.596,6.785 -6.809,9.851c-1.2,1.662 -4.16,9.241 -6.409,9.375c-1.719,0.101 -3.97,-0.114 -5.598,0.536c-1.521,0.607 -1.624,2.463 -2.802,2.967c-1.315,0.562 -4.903,-8.555 -3.287,-9.719c3.291,-2.373 -0.201,2.158 3.073,-1.359c-0.348,0.373 2.183,-3.311 0.925,-2.355c2.761,-2.072 -2.177,-6.364 1.544,-8.892c5.521,-3.763 9.958,-4.13 16.218,-5.707m61.511,-27.998c1.191,-3.316 7.518,2.666 10.377,1.851c1.531,-0.437 20.974,7.19 20.972,7.502c0,3.08 -8.011,1.787 -8.751,2.253c-1.209,0.763 -8.546,6.7 -10.156,4.423c-1.486,-2.103 -2.125,-3.959 -4.894,-4.216c-5.518,-0.513 -7.843,-6.868 -7.548,-11.813m-80.903,65.548c-0.599,-10.303 7.63,-1.487 11.739,-2.617c3.232,-0.857 8.41,-0.822 9.71,2.364c2.594,6.36 -2.03,10.09 -8.214,7.924c-4.962,-1.737 -13.753,0.78 -13.235,-7.671m87.456,-37.941c-1.196,-0.717 -6.018,-13.778 -4.262,-15.058c1.695,-1.235 21.983,15.127 4.262,15.058m-7.334,-32.447c5.732,-1.505 12.678,2.414 18.537,3.752c3.919,0.895 3.09,2.113 5.345,3.843c1.019,0.78 4.477,0.099 4.572,2.412c0.029,0.764 -10.563,-3.007 -11.333,-3.268c-2.361,-0.807 -9.155,-4.53 -9.796,-2.224c-2.573,-2.068 -4.292,-2.991 -7.325,-4.515m-68.385,89.179c-4.576,0.731 -4.623,-5.72 -4.229,-7.746c1.011,-4.955 11.592,8.025 4.229,7.746m0.712,-24.438c-3.272,0.718 -9.718,-5.417 -3.274,-4.824c2.553,0.235 9.744,3.959 3.274,4.824m-10.63,-47.506c2.123,0.964 -2.871,4.026 -3.431,2.979c-0.592,-1.12 6.195,-5.386 7.039,-5.776c-0.497,0.917 -0.981,1.84 -1.452,2.771c-0.745,-1.667 -1.186,0.138 -2.156,0.026m85.884,38.814c-1.463,0.217 -2.02,-10.539 -1.975,-10.544c0.29,-0.032 3.23,10.35 1.975,10.544m-33.858,-64.315c-0.807,-0.18 -9.085,-1.581 -8.405,-2.737c0.789,-1.358 7.901,1.381 8.405,2.737m28.023,31.677c-0.053,-0.382 3.735,8.396 2.213,8.78c-1.646,0.417 -1.919,-7.84 -2.213,-8.78m-18.214,-28.672c0.754,-0.019 5.795,0.828 5.718,1.638c-0.132,1.404 -5.439,0.234 -5.718,-1.638m10.903,-2.076c0.616,-0.003 3.516,1.476 2.095,2.486c-0.327,0.229 -3.044,-1.412 -2.951,-1.992c0.16,-0.381 0.445,-0.545 0.856,-0.494m11.077,52.545c-0.321,-0.571 -1.61,-6.263 -0.977,-6.444c1.106,-0.316 1.178,5.592 0.977,6.444m1.733,15.469c-0.134,-1.407 2.586,0.558 0.69,0.956c-0.568,-0.018 -0.799,-0.337 -0.69,-0.956" style="fill:#231f20;fill-rule:nonzero;"/><path d="M61.993,99.721c7.082,0.381 14.8,-3.485 19.195,-9.024c2.097,-2.641 3.625,-5.877 4.666,-9.068c0.364,-1.113 0.59,-9.004 0.939,-9.125c-1.159,-1.938 -1.263,-5.517 -2.07,-7.715c-1.343,-3.667 -5.334,-7.951 -8.344,-10.39c-4.919,-3.988 -13.045,-4.857 -19.01,-3.653c-5.946,1.19 -12.506,1.507 -16.115,7.385c-3.107,5.06 -4.869,12.564 -5.167,18.473c-0.805,15.47 13.027,21.373 25.906,23.117m-6.75,-3.493c-0.057,1.705 -11.86,-8.989 -12.805,-9.852c-2.898,-2.648 -3.41,-8.209 -3.515,-12.312c-0.185,-7.21 7.972,-20.31 16.24,-20.381c8.251,-0.07 16.262,-0.442 22.245,6.37c6.607,7.521 6.486,12.394 5.185,22.096c-1.089,8.021 -7.002,9.547 -12.696,13.053c-1.94,1.186 -5.591,1.559 -7.827,1.866c-0.83,0.113 -8.759,-0.32 -6.827,-0.84" style="fill:#231f20;fill-rule:nonzero;"/><path d="M55.788,157.756c2.583,1.092 4.953,-10.505 3.162,-11.483c1.571,-0.6 0.881,-4.214 0.258,-3.961c-1.241,0.476 -1.677,5.85 -0.588,6.476c-2.224,2.047 -0.072,10.963 -5.902,8.317c-5.842,-2.652 -1.055,-16.192 -2.444,-16.681c-1.58,-0.553 -3.271,9.983 -3.126,11.55c0.36,3.879 5.424,10.886 8.64,5.782" style="fill:#231f20;fill-rule:nonzero;"/><path d="M101.835,100.086c1.075,1.684 0.615,5.636 2.533,6.618c0.962,0.499 0.252,-0.181 2.56,0.45c-1.844,-1.749 2.042,-7.648 -1.871,-7.931c-1.144,-0.083 0.189,2.415 0.353,2.552c-2.623,1.564 -1.726,-6.382 -3.931,-5.894c-0.527,0.118 0.313,4.034 0.356,4.205c0.722,1.13 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M101.866,100.119c-0.563,-0.349 -1.003,-0.219 -1.319,0.391c0.723,-1.277 -0.416,-2.667 -0.461,-3.349c-0.449,0.323 -3.641,4.039 0.309,4.073c-1.837,-0.068 -2.182,6.356 -1.586,6.614c0.688,0.301 0.043,-0.691 0.099,-0.788c-0.144,0.001 4.157,4.542 2.612,0.596c-0.478,-1.232 -0.037,-6.607 0.346,-7.537" style="fill:#231f20;fill-rule:nonzero;"/><path d="M109.961,51.683c0.315,0.787 -1.601,1.369 -1.599,2.447c0.009,4.032 3.464,-1.656 3.447,-1.635c4.865,-5.931 -1.848,-2.93 -1.848,-0.812" style="fill:#231f20;fill-rule:nonzero;"/><path d="M103.771,88.25c-0.027,0.027 0.646,10.229 1.312,10.507c1.46,0.598 -0.842,-9.757 -1.312,-10.507c-0.17,0.167 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M98.428,88.107c-0.04,-0.331 -0.472,-8.246 -2.151,-7.074c-0.488,0.344 1.311,8.499 1.723,8.412c0.62,-0.13 0.573,-0.917 0.428,-1.338" style="fill:#231f20;fill-rule:nonzero;"/><path d="M98.374,95.131c0.003,-0.77 1.304,-6.077 -0.828,-5.382c0.562,-0.185 -0.117,3.523 -0.057,2.934c0.194,0.848 0.489,1.665 0.885,2.448" style="fill:#231f20;fill-rule:nonzero;"/><path d="M103.771,88.25c0.359,-0.441 1.428,-2.715 -0.299,-2.948c-1.629,-0.218 1.521,4.286 0.299,2.948" style="fill:#231f20;fill-rule:nonzero;"/><path d="M98.901,96.648c0.862,-0.347 0.847,-0.71 -0.046,-1.092c-0.698,0.256 -0.683,0.62 0.046,1.092" style="fill:#231f20;fill-rule:nonzero;"/><path d="M57.876,24.033c-0.233,-0.623 13.54,-0.979 13.517,-0.858c0.305,-1.614 -10.331,-2.708 -9.145,-0.385c-2.226,-1.275 -3.325,0.453 -4.402,1.277l0.03,-0.034c0.128,0.342 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M57.846,24.066c-0.196,-1.171 -1.549,-0.145 -1.265,0.136c0.823,0.813 0.673,-0.177 1.265,-0.136" style="fill:#231f20;fill-rule:nonzero;"/><path d="M55.935,68.249c-8.122,-0.705 -6.998,10.708 0.307,11.77c9.055,1.315 7.856,-12.835 -0.307,-11.77m1.473,6.289c-0.381,-1.265 -2.255,-1.478 -2.353,-2.259c-0.116,-0.926 3.708,-1.728 2.353,2.259" style="fill:#231f20;fill-rule:nonzero;"/><path d="M144.457,172.079c0,0 0.597,0.386 4.807,1.017c2.779,0.416 4.622,3.41 4.434,4.536c-0.187,1.127 -2.659,1.745 -3.222,1.807c-0.563,0.063 -3.513,0.068 -5.917,0.145c-2.276,0.072 -3.919,-2.061 -0.102,-7.505Z" style="fill:#e1cb94;"/><path d="M103.974,205.302c0,0 2.735,4.907 2.193,10.613c-0.311,3.27 -4.566,5.92 -6.705,5.734c-2.14,-0.186 -4.079,-5.851 -4.229,-6.654c-0.15,-0.804 -1.749,-5.326 -1.067,-6.072c0.681,-0.746 -4.02,-8.107 9.808,-3.621Z" style="fill:#e1cb94;"/><path d="M44.861,190.344c0,0 -4.666,6.003 -5.605,9.687c-0.694,2.723 -5.129,1.798 -5.926,0.98c-0.797,-0.818 -0.3,-5.728 1.547,-7.587c0.4,-0.402 2.25,-5.17 2.849,-5.352c0.599,-0.181 5.005,-4.026 7.135,2.272Z" style="fill:#e1cb94;"/><path d="M50.551,141.416c0,0 -0.642,6.19 -0.995,10.357c-0.241,2.841 2.383,6.061 5.193,5.87c2.917,-0.198 2.962,-5.727 3.154,-6.261c0.192,-0.534 1.607,-10.307 0.63,-7.856c-0.24,0.604 -1.289,-4.504 -7.982,-2.11Z" style="fill:#e1cb94;"/><path d="M19.657,137.146c0,0 1.476,8.241 -1.433,10.655c-2.162,1.796 -2.446,2.395 -3.358,1.709c-0.912,-0.687 -1.519,-4.671 -1.314,-5.199c0.204,-0.529 1.012,-3.706 1.576,-3.977c0.564,-0.27 1.463,-9.088 4.529,-3.188Z" style="fill:#e1cb94;"/><path d="M17.861,127.475c0.698,0.75 0.574,1.243 -0.369,1.48c2.974,0.875 -2.793,8.226 -3.234,9.593c-1.083,3.353 -2.721,8.786 -0.923,12.135c1.754,3.27 4.826,-1.871 6.116,-2.882c1.194,-0.935 2.138,6.964 2.402,8.124c0.494,2.18 2.085,2.587 2.404,5.321c0.441,3.77 3.049,8.315 5.065,11.469c2.66,4.164 5.419,8.259 8.088,12.417c0.909,1.421 -2.343,3.331 -2.821,4.401c-0.069,0.152 -0.993,4.352 -0.752,4.053c-0.225,0.285 -2.622,-0.861 -1.814,0.884c0.606,1.306 -2.313,3.166 -0.012,3.407c-3.01,3.174 4.441,6.432 6.968,4.165c0.62,-0.556 2.179,-3.525 1.715,-3.465c1.027,-0.13 5.932,-6.336 5.466,-7.419c2.1,1.25 12.689,8.096 12.543,8.21c0.715,0.488 4.575,2.314 5.278,2.309c1.58,-0.014 6.042,1.15 8.25,2.189c2.966,1.401 6.497,1.697 9.684,2.197c2.525,0.397 5.376,1.809 7.851,1.906c5.107,0.198 1.101,5.284 4.081,7.879c1.957,1.772 2.075,5.055 4.613,6.247c2.631,1.235 4.536,-1.252 6.879,-1.875c-0.506,-0.106 -0.904,-0.385 -1.193,-0.839c2.003,0.5 0.966,-1.468 1.917,-2.304c0.183,0.27 0.428,0.448 0.733,0.532c0.054,-0.57 0.141,-4.634 -0.471,-4.864c-0.852,-0.323 1.236,-4.016 -0.884,-4.79c2.274,-1.602 2.349,-1.64 5.722,-1.992c2.623,-0.272 4.916,-0.212 7.032,-1.757c1.276,-0.939 10.306,-4.507 10.476,-4.231c-0.055,-0.801 0.293,-1.221 1.043,-1.258c-0.114,-0.277 -0.277,-0.52 -0.487,-0.728c1.931,-0.512 4.341,-3.914 5.543,-5.535c1.627,-2.193 4.482,-4.25 5.522,-6.808c0.562,-1.371 1.064,-2.972 2.004,-3.855c2.213,-2.084 17.287,0.295 10.41,-8.158c-1.408,-1.732 -7.617,-2.145 -8.087,-3.548c-0.274,-0.815 -0.92,-5.225 -0.762,-5.969c0.134,-0.634 -0.76,-0.453 -0.614,-1.408c0.138,-0.901 -1.545,-3.594 -1.81,-4.573c-0.496,-1.833 -1.968,-3.993 -1.027,-6.133c-1.579,-1.143 0.022,-5.644 -1.384,-7.075c-1.334,-1.364 -0.235,-7.905 -0.09,-9.739c0.146,-1.852 -0.247,-5.464 -0.636,-7.335c-0.298,-1.421 0.837,-4.675 -0.042,-5.971c-0.95,-1.401 -0.748,-4.075 -0.794,-6.595c-0.02,-1.156 -1.617,-6.493 -0.951,-7.018c-0.292,1.75 -0.78,0.095 -1.566,0.956c-0.495,0.551 1.057,5.944 0.523,6.89c-0.768,1.369 0.127,8.955 1.244,9.359c-1.784,0.303 1.172,9.718 -0.631,10.533c-1.582,0.697 1.292,6.536 0.624,7.504c-1.367,1.965 2.504,4.406 0.558,5.869c1.353,0.204 1.71,11.411 2.924,13.342c2.855,4.519 2.322,18.483 -2.513,21.685c-2.144,1.42 -4.122,5.81 -5.659,8.029c-2.928,4.227 -6.852,6.354 -11.042,8.906c-1.76,1.074 -5.162,1.846 -7.249,2.336c-1.624,0.381 -4.025,0.018 -5.691,-0.027c-0.088,-0.003 -3.781,-1.589 -3.734,-1.608c-1.302,0.511 -0.811,8.379 1.372,8.462c-0.187,0.317 -0.879,0.161 -1.174,0.329c-1.359,0.775 1.39,2.272 1.505,2.644c-0.524,0.219 -0.941,0.062 -1.251,-0.471c-0.901,1.661 0.22,3.648 -0.887,5.49c-0.711,1.194 -1.688,0.285 -1.35,2.132c-1.625,-0.954 -3.672,1.56 -4.034,-1.758c-0.278,0.227 -0.564,0.442 -0.856,0.645c0.453,-1.226 -0.07,-1.601 -1.223,-1.481c-0.389,-0.534 -0.417,-4.286 -0.737,-4.666c-0.725,-0.891 -0.45,-2.834 -1.08,-4.601c-0.599,-1.71 0.473,-3.935 -0.975,-5.326c-2.08,-1.995 -1.509,2.096 -1.999,2.865c0.003,-0.682 -8.667,-2.348 -10.26,-2.481c-2.451,-0.194 -4.387,-0.863 -6.76,-1.553c-1.017,-0.295 -4.521,-0.658 -5.049,-1.135c-0.36,-0.324 0.717,-0.726 -0.256,-1.023c-1.814,-0.571 -3.909,-0.868 -5.479,-1.561c-2.769,-1.221 -5.636,-2.372 -8.358,-4.071c-3.178,-1.983 -7.292,-5.923 -10.649,-7.086c-2.103,-0.729 -2.202,-0.19 -3.283,-2.807c-0.336,-0.813 -0.857,-3.226 -2.059,-1.817c0.599,-3.793 -3.68,-5.249 -5.221,-6.758c0.219,-0.147 0.763,0.123 0.854,-0.275c0.317,0.065 -3.233,-2.609 -2.934,-2.369c-0.376,-0.309 0.403,-0.472 0.379,-0.807c0.014,0.187 -0.853,-1.02 -0.962,-1.337c-0.224,0.11 -0.371,0.288 -0.437,0.538c-1.115,-1.781 -1.022,-3.973 -2.62,-5.496c-1.217,-1.161 -1.649,-1.67 -1.354,-3.75c-0.364,0.235 -0.759,0.342 -1.188,0.32c1.525,-1.526 -0.028,-4.549 -1.777,-4.779c0.176,-0.886 1.912,-2.652 -1.459,-2.887c2.121,-0.918 0.39,-7.092 -1.822,-6.934c2.981,-0.605 -0.496,-6.799 -0.945,-8.795c1.534,-1.98 0.022,-11.933 -0.872,-12.799c-0.203,-2.175 0.087,-18.158 -1.001,-15.902c0.626,1.033 -1.527,-0.617 -1.527,-0.617m21.386,89.92c-0.21,1.71 -2.855,1.22 -3.906,0.723c0.664,-0.947 -0.749,-3.975 -0.819,-4.68c0.02,0.204 2.165,-3.018 2.116,-2.89c0.684,-1.825 1.859,-2.522 1.222,-4.186c1.375,0.385 2.919,-1.981 3.903,-1.079c0.72,0.662 2.96,1.438 3.294,2.143c-0.336,-0.7 -1.732,2.86 -1.567,2.583c-1.792,2.995 -2.964,4.573 -3.691,8.246c-0.162,-0.302 -0.346,-0.588 -0.552,-0.86c-0.108,0.878 0,0 0,0m-17.625,-58.712c-0.263,0.101 -1.517,0.173 -1.5,0.557c0.487,0.698 0.845,1.467 1.072,2.307c-0.606,0.53 -1.084,1.159 -1.434,1.884c-0.204,0.559 -2.555,5.062 -3.492,3.93c-2.851,-3.422 0.592,-11.498 2.403,-14.914c-0.37,1.915 1.624,0.386 1.653,1.458c-0.353,0.27 -0.699,0.551 -1.035,0.843c0.359,0.512 0.677,1.051 0.955,1.617c0.334,2.672 0.039,0.921 1.378,2.318c-0.212,0.081 0,0 0,0m124.343,31.581c1.4,0 9.532,2.138 8.31,4.344c-0.79,1.425 -6.182,2.187 -8.938,1.709c-1.032,-0.179 -1.695,-0.533 -1.607,-1.09c0.157,-1.01 3.575,-0.855 0.817,-2.896c1.496,-0.092 2.204,-0.515 1.418,-2.067c0.503,0 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/graduate.svg b/go.dev/_content/images/gophers/graduate.svg
new file mode 100644
index 0000000..3aed2ea
--- /dev/null
+++ b/go.dev/_content/images/gophers/graduate.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 403 576" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M92.924,140.988c-4.045,-8.642 -7.174,-13.07 -5.692,-22.369c1.771,-11.111 5.365,-13.441 -5.424,-15.439c-21.494,-3.981 -42.988,-7.961 -64.482,-11.939c-2.788,-0.518 -2.814,-10.51 -0.793,-11.821c5.799,-3.759 11.597,-7.519 17.396,-11.281l64.417,-41.769c8.697,-5.642 17.395,-11.281 26.096,-16.924c1.438,-0.931 9.06,-7.419 10.816,-6.903c17.843,5.236 35.684,10.471 53.53,15.707c36.362,10.672 71.471,22.08 107.025,35.183l26.406,9.732c-19.22,11.52 -38.445,23.035 -57.664,34.552c4.322,6.886 11.868,12.384 5.689,18.736c-7.204,7.402 -10.79,5.846 -21.32,5.846c-19.649,0 -37.908,-2.133 -57.437,-4.726c-33.097,-4.399 -68.353,12.036 -98.563,23.415" style="fill:#898b8e;fill-rule:nonzero;"/><path d="M322.723,63.588c-28.309,-13.839 -57.066,-23.81 -87.847,-30.89c-10.297,-2.369 -9.393,-0.725 -12.148,-8.987c-1.7,-5.079 -0.881,-6.443 -6.243,-6.443c-7.334,0 -2.328,5.492 -7.148,7.127c-3.577,1.214 -15.068,-4.526 -18.559,-5.578c-10.893,-3.273 -21.783,-6.547 -32.676,-9.817c-9.534,-2.867 -20.298,-8.892 -28.966,-3.032c-16.662,11.261 -33.324,22.522 -49.983,33.783c-24.575,16.609 -49.181,31.857 -75.144,46.232c8.691,4.847 13.821,7.257 23.594,8.521c7.042,0.908 14.83,1.314 21.53,3.598c10.324,3.521 20.645,7.039 30.969,10.557c1.417,0.483 6.824,1.311 6.5,3.096c-0.825,4.526 0.283,10.366 -4.826,10.366c-19.774,0 -35.357,2.728 -52.646,12.089c-14.149,7.661 -18.029,29.075 -17.59,44.373c0.229,8.102 5.698,14.964 9.552,22c3.232,5.902 -6.966,17.431 -2.938,24.458c4.169,7.275 11.406,14.57 14.968,21.783c1.771,3.58 1.22,8.433 2.551,12.216c1.768,5.015 4.947,9.858 7.334,14.614c3.109,6.196 1.02,18.963 1.279,25.799c0.309,8.267 0.586,16.488 0.586,24.764c0,9.764 0.289,16.14 3.277,25.336c1.788,5.507 3.45,6.282 -0.979,10.015c-4.248,3.58 -6.529,7.961 -9.466,12.693c-3.937,6.332 -3.462,19.611 -1.518,26.756c5.28,-3.904 10.557,-7.808 15.834,-11.712c5.731,17.131 11.792,33.901 18.374,50.719c6.296,16.091 18.88,30.416 28.456,44.736c4.054,6.057 -28.474,41.467 -10.053,41.467c11.299,0 11.491,-1.102 18.132,-10.689c2.755,-3.978 10.333,-18.451 16.223,-15.021c16.862,9.82 32.186,20.233 50.958,25.53c16.623,4.691 33.453,10.115 50.61,12.296c5.41,0.686 10.819,1.373 16.232,2.059c1.779,0.23 2.519,8.919 3.117,10.763c3.229,9.971 6.482,17.193 14.013,24.202c6.691,6.229 15.722,-6.019 17.139,-11.476c1.977,-7.608 -1.832,-20.074 -2.554,-27.994c7.999,-0.165 17.198,1.005 25.032,-0.51c9.95,-1.921 20.439,-8.087 29.868,-11.818c14.956,-5.916 24.747,-23.164 33.061,-36.122c6.014,-9.37 6.203,-14.081 17.175,-14.367c6.373,-0.168 23.409,-0.471 19.49,-10.224c-3.641,-9.054 -15.439,-2.31 -21.455,-7.89c-5.086,-4.718 -6.783,-23.831 -8.701,-30.563c-4.838,-16.998 -6.624,-34.921 -9.502,-52.34c-2.178,-13.147 1.382,-27.779 -0.165,-41.418c-2.59,-22.825 -5.18,-45.651 -7.77,-68.474c-1.594,-14.051 -1.205,-29.098 -7.086,-42.033c-6.37,-14.007 -12.021,-26.191 -21.011,-38.595c-3.582,-4.941 -7.383,-8.886 -11.732,-13.22c-7.328,-7.301 -4.105,-8.088 0.925,-17.113c5.542,-9.941 10.015,-26.379 0.943,-34.47c-11.353,-10.124 -24.511,-2.292 -36.005,3.819c-2.266,-7.025 -4.526,-13.969 -6.323,-21.126c-0.754,-2.996 14.864,-7.778 17.549,-8.928c8.703,-3.733 17.41,-7.463 26.114,-11.193c5.71,-2.448 6.897,-8.247 9.649,-13.724" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M355.355,293.199c-2.873,-12.852 -1.194,-85.607 -15.982,-87.378c5.622,-5.106 -16.329,-30.601 -21.644,-35.215c-4.281,-3.721 -9.293,-11.824 -6.67,-17.036c3.809,-7.569 4.944,-15.224 8.556,-22.578c6.452,-13.289 -5.257,-23.451 -16.208,-24.444c-4.464,-0.403 -10.095,-4.581 -15.593,0.578c1.491,-1.391 -8.194,-0.298 -7.313,0.065c-1.343,-0.56 -11.591,-0.887 -8.232,-6.874c2.767,-4.936 21.011,-11.515 26.099,-13.763c9.682,-4.275 17.876,-10.557 27.316,-15.1c10.775,-5.189 6.046,-13.353 -4.743,-15.124c-11.697,-1.918 -20.946,-10.601 -32.841,-13.265c-14.343,-3.223 -31.623,-10 -44.255,-10.972c-3.061,-0.233 -17.578,-5.236 -18.488,-8.969c-1.429,-5.89 -10.478,-16.179 -16.712,-8.963c-2.06,2.363 0.132,3.589 -0.931,5.681c-0.908,1.785 -11.535,-1.547 -12.847,-2.275c-4.39,-2.448 -15.58,-4.299 -18.615,-3.868c-0.324,0.044 -13.768,-5.012 -15.354,-5.616c-5.78,-2.201 -14.422,-4.323 -19.387,-7.216c-4.29,-2.501 -11.906,1.102 -6.874,2.133c1.462,0.271 0.039,4.237 0.46,5.539c0.854,2.635 -9.655,1.538 -10.142,1.441c17.087,-16.759 -6.983,-0.53 -13.6,4.496c-4.897,3.719 -12.787,9.688 -18.371,11.871c-6.724,2.629 -12.328,11.465 -19.425,12.237c-4.523,0.477 -9.526,9.982 -13.725,12.145c-5.433,2.796 -12.345,5.518 -16.744,9.561c-9.284,8.539 -22.552,16.105 -35.251,18.453c-0.345,-0.701 1.612,-2.33 0.483,-2.775c-2.422,-0.964 -3.087,2.439 -6.496,0.819c0.698,8.842 -6.261,7.357 3.152,12.59c8.014,4.455 14.962,1.641 22.443,4.331c16.084,5.781 34.037,8.223 50.914,13.447c5.462,1.691 10.565,7.552 2.13,10.192c-3.462,1.084 -14.765,1.181 -18.421,0.837c-16.391,-1.509 -37.664,10.459 -46.968,23.403c-2.935,4.081 -10.708,4.243 -10.183,11.332c0.63,8.509 4.184,16.729 5.884,25.115c1.358,6.706 4.811,12.881 7.587,19.06c3.108,6.889 -2.578,16.529 -2.767,23.606c-0.247,9.149 5.071,15.154 11.126,21.368c6.835,7.009 6.532,13.176 10.636,21.771c2.622,5.492 6.718,15.901 6.235,22.074c-0.23,2.911 -5.095,8.606 1.461,7.849c-1.488,0.607 -2.389,1.668 -2.702,3.176c0.151,-1.75 3.713,4.827 3.118,3.622c0.875,0.321 1.738,0.318 2.592,-0.009c0.722,-1.202 0.375,-5.784 -1.275,-6.099c0.486,-0.41 1.048,-0.604 1.691,-0.59c0.666,-0.627 -3.094,-2.324 -3.235,-2.684c3.326,-0.795 2.643,-9.431 2.687,-13.173c0.132,-9.52 12.593,-3.215 12.439,-14.935c-0.197,-15.109 23.766,-17.57 23.742,-33.274c-0.014,-12.879 -9.675,-21.017 -12.887,-31.998c-1.889,-6.464 -13.032,-8.067 -14.034,-13.138c-1.432,-7.257 9.464,-22.796 12.11,-29.314c1.467,-3.638 10.106,-13.671 14.122,-12.793c4.06,0.875 1.753,3.209 3.886,5.31c1.524,1.496 13.256,-2.72 14.314,-4.193c1.128,-1.585 12.348,-8.583 14.048,-8.132c5.274,1.37 25.481,-3.486 29.096,-7.298c1.609,-1.695 11.859,-3.504 14.694,-3.757c5.801,-0.519 8.373,-2.015 14.543,-2.675c9.405,-1.008 21.671,0.557 31.011,2.233c5.845,1.049 18.942,5.79 23.577,0.955c-0.315,3.854 4.237,1.941 4.638,6.022c0.754,7.549 2.195,15.009 3.824,22.413c1.626,7.405 3.421,14.567 3.869,22.166c0.453,7.678 -5.731,10.242 -5.048,17.245c1.527,15.628 7.31,30.348 8.359,46.385c0.813,12.399 2.458,22.361 6.898,33.348c0.38,-3.456 1.134,-5.834 0.568,-8.781c-0.963,-0.182 -1.885,-0.483 -2.769,-0.895c-0.657,-2.387 0.751,-13.238 1.063,-17.304c0.719,-9.461 -2.657,-19.641 -2.858,-29.111c-0.167,-8.15 2.475,-13.739 11.595,-10.321c4.852,1.821 4.457,11.912 6.131,12.51c1.712,0.601 3.695,-4.838 3.683,-4.929c-0.413,-3.539 -10.987,-11.989 -7.976,-13.276c5.077,-2.207 6.957,-3.954 5.015,-10.033c-1.565,-4.903 -7.811,-3.235 -9.452,-6.229c-0.902,-1.655 -2.469,-10.179 -2.973,-12.678c-1.83,-9.042 -1.794,-18.819 -3.332,-28.014c-0.628,-3.745 -5.33,-16.5 0.338,-18.627c9.164,-3.43 9.146,-0.068 8.834,6.06c-0.089,1.68 -0.348,10.042 0.386,10.784c4.779,4.832 6.402,-8.099 8.58,-9.249c12.946,-6.812 14.119,-25.274 33.423,-21.986c19.8,3.371 11.371,27.632 5.767,39.606c-2.564,5.471 -3.079,7.649 -9.715,7.728c-0.274,0.003 -2.781,7.997 -2.802,7.976c2.372,2.281 7.057,-2.354 10.183,-1.296c3.421,1.155 6.196,6.358 8.427,8.895c5.663,6.438 8.709,10.424 13.497,17.463c3.942,5.799 17.463,33.922 14.862,37.384c-1.659,2.207 3.002,17.384 3.913,20.339c2.292,7.434 1.069,15.937 2.318,23.66c0.725,4.46 3.377,9.34 2.116,12.696c-1.6,4.198 0.748,8.851 5.401,8.252m-276.549,-247.402c-0.236,-0.94 -1.367,-2.953 -0.168,-3.739c1.193,-0.778 2.507,1.729 1.815,2.61c-2.245,2.873 -8.975,3.091 -10.51,6.385c-3.032,6.488 -16.084,12.973 -22.065,15.28c-12.908,4.979 1.228,-3.406 4.455,-5.869c3.418,-2.608 23.497,-18.583 26.473,-14.667m-21.68,18.862c1.208,3.495 62.193,-37.955 68.327,-42.778c10.752,-8.451 24.364,-4.34 35.935,-1.191c17.648,4.803 35.012,11.907 52.328,17.614c6.057,1.995 6.588,13.645 7.796,18.821c2.551,10.932 -3.115,7.225 -11.765,5.484c-5.861,-1.188 -11.742,-1.786 -16.98,-2.522c-4.246,-0.596 -7.375,3.208 -3.895,3.17c7.386,-0.1 8.6,2.325 14.231,4.57c1.373,0.548 2.221,-1.697 4.623,-0.027c2.943,2.075 9.304,1.638 11.915,3.884c6.561,5.648 7.687,13.367 8.96,21.585c0.922,5.928 3.391,14.991 2.722,20.834c-0.636,5.557 -13.618,3.347 -17.165,2.958c-18.077,-1.977 -37.982,-1.688 -55.782,1.523c-16.953,3.059 -31.941,7.52 -47.705,15.151c-1.803,0.872 -14.419,9.605 -16.196,6.264c-0.981,-1.839 2.071,-3.144 -0.415,-5.1c-2.039,-1.6 -2.779,2.321 -4.529,1.119c-5.695,-3.904 4.266,-8.748 1.146,-12.708c-2.843,-3.627 1.364,-10.017 2.578,-13.126c4.016,-10.274 9.39,-22.743 20.053,-28.194c3.577,-1.83 32.814,-17.976 31.751,-19.037c-2.163,-2.174 -13.183,6.645 -15.56,4.777c-0.313,2.36 -14.732,10.424 -17.876,12.08c-8.173,4.31 -21.803,9.066 -25.059,19.057c-2.001,6.132 -21.061,-1.376 -25.89,-2.454c-3.951,-0.881 -34.054,-3.786 -34.85,-5.666c-1.403,-3.218 11.229,-8.848 12.398,-10.448c-0.651,-0.743 -1.075,-1.594 -1.269,-2.555c4.036,-5.091 18.901,-4.57 20.173,-13.085m13.834,56.191c7.811,2.015 17.112,9.829 5.294,16.744c-6.573,3.848 -11.193,18.345 -16.152,24.42c-3.927,4.806 -9.06,22.298 -15.371,22.684c-4.266,0.248 -9.346,-0.173 -13.489,1.02c-4.729,1.358 -4.994,6.644 -8.391,8.097c-3.995,1.706 -10.793,-20.92 -9.148,-24.562c0.226,-0.497 7.251,-2.837 8.588,-4.275c-0.156,0.171 5.083,-8.161 2.41,-6.128c7.284,-5.466 -5.81,-16.471 4.022,-23.144c14.376,-9.794 25.973,-10.76 42.237,-14.856m160.186,-72.876c2.075,-5.704 2.693,-1.014 7.596,-1.031c2.057,-0.012 19.9,4.838 20.675,6.06c4.661,7.384 53.418,12.246 53.371,19.317c0,5.351 -22.157,7.817 -24.62,6.108c-2.608,4.635 -26.871,16.347 -24.906,9.148c1.134,-4.569 -11.025,-8.927 -13.441,-8.871c-14.14,0.324 -19.314,-19.921 -18.675,-30.731m-210.69,170.617c-0.289,-4.962 2.301,-12.567 7.422,-14.635c5.353,-2.16 15.283,9.982 23.149,7.82c7.582,-1.998 21.739,-2.708 24.762,4.855c6.62,16.565 -2.725,28.274 -20.866,21.925c-12.885,-4.508 -35.793,1.735 -34.467,-19.965m227.759,-98.76c-4.838,-2.897 -4.679,-5.115 -5.746,-12.036c-0.521,-3.392 -8.164,-25.11 -5.356,-27.154c4.225,-3.076 57.237,39.375 11.102,39.19m-19.102,-84.453c10.713,-2.802 32.599,2.446 43.074,7.973c4.352,2.289 15.289,1.582 17.386,6.836c2.304,5.786 3.613,4.573 9.302,7.224c5.819,2.717 5.383,4.924 -0.704,4.329c-5.695,-0.554 -10.81,-3.972 -16.391,-5.121c-7.392,-1.527 -17.887,-7.808 -23.509,-8.182c-3.4,-4.673 -8.816,-5.823 -10.083,-1.309c-6.685,-5.386 -10.91,-7.648 -19.075,-11.75m-178.091,232.12c-9.85,1.576 -18.33,-19.638 -9.352,-22.852c11.349,-4.06 21.517,23.315 9.352,22.852m1.856,-63.607c-11.585,2.319 -23.515,-16.65 -6.497,-12.195c6.123,1.606 22.652,10.03 6.497,12.195m-27.685,-123.651c5.484,2.481 -7.466,10.504 -8.933,7.752c-1.541,-2.911 16.134,-14.022 18.33,-15.036c-0.33,2.965 -3.498,4.22 -3.781,7.213c-1.938,-4.337 -3.09,0.36 -5.616,0.071m223.664,101.026c-3.715,0.557 -5.483,-27.407 -5.144,-27.446c0.695,-0.076 8.256,26.966 5.144,27.446m-88.174,-167.405c-2.1,-0.466 -23.659,-4.114 -21.891,-7.122c2.124,-3.642 20.571,3.583 21.891,7.122m72.977,82.452c0.356,2.589 8.208,16.11 6.659,22.112c-0.752,2.917 -3.619,-1.155 -3.625,-2.431c-0.017,-5.745 -1.317,-14.192 -3.034,-19.681m-47.431,-74.63c1.962,-0.047 15.088,2.154 14.888,4.264c-0.265,2.852 -14.149,0.686 -14.888,-4.264m28.391,-5.4c1.827,-0.012 9.087,3.909 5.454,6.467c-1.241,0.872 -11.565,-5.763 -5.454,-6.467m28.845,136.768c-0.834,-1.494 -4.095,-16.332 -2.542,-16.777c3.067,-0.878 3.099,14.435 2.542,16.777m4.517,40.26c-0.395,-3.657 6.765,1.449 1.797,2.489c-1.482,-0.044 -2.08,-0.875 -1.797,-2.489" style="fill:#231f20;fill-rule:nonzero;"/><path d="M46.711,340.658c1.815,1.856 1.494,3.076 -0.96,3.663c7.737,2.165 -7.266,20.353 -8.415,23.736c-2.817,8.297 -7.077,21.741 -2.401,30.026c4.563,8.091 12.557,-4.628 15.913,-7.13c3.105,-2.313 5.563,17.231 6.249,20.1c1.285,5.395 5.425,6.403 6.255,13.168c1.147,9.328 7.932,20.575 13.177,28.377c6.921,10.303 14.098,20.436 21.043,30.725c2.366,3.515 -6.096,8.241 -7.34,10.889c-0.179,0.378 -2.584,10.77 -1.956,10.03c-0.586,0.704 -6.821,-2.13 -4.72,2.186c1.576,3.232 -6.017,7.835 -0.03,8.43c-7.831,7.855 11.553,15.916 18.13,10.306c1.611,-1.376 5.668,-8.721 4.46,-8.574c2.673,-0.321 15.434,-15.677 14.223,-18.356c5.462,3.091 33.011,20.033 32.631,20.313c1.862,1.208 11.903,5.728 13.733,5.713c4.11,-0.033 15.719,2.846 21.465,5.418c7.716,3.465 16.903,4.199 25.194,5.436c6.571,0.981 13.987,4.476 20.428,4.715c13.285,0.492 2.864,13.076 10.615,19.496c5.092,4.384 5.401,12.507 12.004,15.457c6.845,3.055 11.8,-3.097 17.896,-4.638c-1.317,-0.262 -2.351,-0.955 -3.102,-2.077c5.209,1.237 2.513,-3.633 4.985,-5.701c0.478,0.668 1.114,1.107 1.909,1.317c0.139,-1.412 0.366,-11.468 -1.225,-12.036c-2.219,-0.799 3.214,-9.936 -2.301,-11.851c5.916,-3.966 6.11,-4.06 14.888,-4.929c6.824,-0.675 12.79,-0.525 18.294,-4.349c3.321,-2.322 26.815,-11.152 27.257,-10.469c-0.144,-1.983 0.76,-3.02 2.714,-3.111c-0.298,-0.686 -0.722,-1.288 -1.267,-1.803c5.023,-1.267 11.293,-9.685 14.419,-13.695c4.234,-5.427 11.662,-10.516 14.367,-16.845c1.464,-3.394 2.77,-7.354 5.215,-9.54c5.757,-5.156 44.977,0.731 27.083,-20.186c-3.662,-4.284 -19.817,-5.306 -21.04,-8.777c-0.713,-2.018 -2.392,-12.929 -1.983,-14.77c0.351,-1.568 -1.977,-1.12 -1.597,-3.483c0.36,-2.23 -4.019,-8.895 -4.708,-11.317c-1.291,-4.535 -5.121,-9.879 -2.672,-15.174c-4.108,-2.829 0.056,-13.966 -3.601,-17.507c-3.471,-3.374 -0.613,-19.559 -0.236,-24.096c0.38,-4.585 -0.642,-13.521 -1.653,-18.15c-0.774,-3.518 2.178,-11.567 -0.109,-14.776c-2.472,-3.465 -1.947,-10.083 -2.065,-16.317c-0.053,-2.861 -4.207,-16.067 -2.475,-17.366c-0.76,4.331 -2.03,0.236 -4.075,2.366c-1.287,1.364 2.749,14.708 1.361,17.048c-1.997,3.388 0.33,22.159 3.236,23.158c-4.641,0.749 3.049,24.046 -1.642,26.061c-4.116,1.727 3.362,16.173 1.624,18.568c-3.556,4.862 6.514,10.902 1.452,14.523c3.521,0.504 4.45,28.235 7.608,33.011c7.428,11.182 6.04,45.734 -6.538,53.657c-5.578,3.515 -10.725,14.376 -14.723,19.868c-7.62,10.459 -17.829,15.722 -28.73,22.036c-4.579,2.658 -13.43,4.567 -18.86,5.781c-4.225,0.943 -10.472,0.044 -14.806,-0.068c-0.23,-0.006 -9.838,-3.931 -9.714,-3.978c-3.389,1.264 -2.11,20.731 3.568,20.937c-0.486,0.784 -2.287,0.398 -3.053,0.814c-3.535,1.918 3.616,5.621 3.916,6.544c-1.364,0.542 -2.448,0.153 -3.256,-1.167c-2.345,4.11 0.572,9.027 -2.307,13.586c-1.85,2.952 -4.393,0.704 -3.512,5.274c-4.228,-2.36 -9.555,3.859 -10.495,-4.349c-0.725,0.56 -1.467,1.093 -2.227,1.594c1.178,-3.032 -0.183,-3.96 -3.182,-3.663c-1.014,-1.323 -1.085,-10.607 -1.918,-11.547c-1.886,-2.203 -1.17,-7.012 -2.811,-11.384c-1.559,-4.231 1.231,-9.735 -2.537,-13.177c-5.41,-4.938 -3.925,5.186 -5.201,7.089c0.009,-1.688 -22.548,-5.81 -26.694,-6.14c-6.376,-0.48 -11.411,-2.136 -17.587,-3.842c-2.646,-0.731 -11.762,-1.629 -13.135,-2.808c-0.937,-0.801 1.865,-1.797 -0.666,-2.531c-4.72,-1.414 -10.171,-2.148 -14.254,-3.863c-7.204,-3.023 -14.665,-5.869 -21.748,-10.073c-8.267,-4.906 -18.972,-14.656 -27.705,-17.534c-5.471,-1.804 -5.728,-0.469 -8.541,-6.945c-0.875,-2.012 -2.231,-7.982 -5.357,-4.496c1.559,-9.384 -9.576,-12.988 -13.583,-16.721c0.569,-0.365 1.983,0.303 2.222,-0.681c0.825,0.159 -8.412,-6.455 -7.634,-5.863c-0.978,-0.763 1.049,-1.167 0.987,-1.995c0.035,0.463 -2.222,-2.525 -2.505,-3.308c-0.583,0.271 -0.963,0.713 -1.137,1.331c-2.899,-4.407 -2.658,-9.832 -6.815,-13.6c-3.167,-2.873 -4.29,-4.131 -3.524,-9.278c-0.946,0.58 -1.974,0.845 -3.091,0.792c3.969,-3.777 -0.073,-11.258 -4.623,-11.827c0.457,-2.192 4.974,-6.561 -3.795,-7.142c5.519,-2.271 1.014,-17.548 -4.74,-17.157c7.755,-1.496 -1.291,-16.823 -2.46,-21.762c3.992,-4.9 0.057,-29.528 -2.267,-31.67c-0.53,-5.382 0.225,-44.928 -2.606,-39.346c1.63,2.555 -3.972,-1.528 -3.972,-1.528m55.639,222.495c-0.545,4.231 -7.428,3.017 -10.162,1.789c1.73,-2.343 -1.948,-9.835 -2.13,-11.58c0.053,0.504 5.633,-7.469 5.507,-7.151c1.779,-4.516 4.835,-6.24 3.179,-10.359c3.577,0.955 7.593,-4.9 10.153,-2.67c1.874,1.639 7.702,3.56 8.571,5.304c-0.875,-1.733 -4.508,7.077 -4.078,6.391c-4.661,7.41 -7.71,11.314 -9.602,20.403c-0.421,-0.748 -0.902,-1.455 -1.438,-2.127c-0.28,2.172 0,0 0,0m-45.855,-145.275c-0.683,0.251 -3.945,0.427 -3.901,1.379c1.267,1.727 2.198,3.63 2.788,5.707c-1.577,1.311 -2.82,2.867 -3.73,4.662c-0.531,1.384 -6.648,12.525 -9.087,9.726c-7.416,-8.468 1.541,-28.451 6.252,-36.904c-0.96,4.738 4.225,0.955 4.302,3.606c-0.919,0.669 -1.818,1.365 -2.693,2.086c0.934,1.267 1.762,2.602 2.484,4.002c0.869,6.611 0.103,2.28 3.585,5.736c-0.551,0.201 0,0 0,0m323.509,78.142c3.641,0 24.799,5.291 21.62,10.748c-2.825,4.847 -28.27,6.597 -27.437,1.532c0.41,-2.498 9.302,-2.115 2.128,-7.165c3.892,-0.227 5.733,-1.273 3.689,-5.115c1.308,0 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M160.406,260.721c41.447,2.222 65.991,-37.834 63.952,-73.297c-1.005,-17.449 -14.924,-37.723 -29.552,-46.851c-16.527,-10.315 -32.098,-7.133 -50.401,-7.042c-35.49,0.171 -49.924,36.612 -51.462,67.022c-2.101,40.33 33.692,55.598 67.463,60.168m-17.578,-9.089c-0.05,0.763 -13.111,-5.681 -14.145,-6.388c-8.018,-5.48 -12.302,-12.958 -19.202,-19.261c-7.066,-6.449 -3.471,-20.592 -10.15,-27.024c3.809,-6.347 1.237,-16.382 4.776,-23.229c2.475,-4.762 8.933,-10.18 10.645,-14.9c3.05,-8.389 18.704,-19.859 27.867,-19.941c18.792,-0.16 37.461,-1.798 52.953,11.432c15.197,12.978 26.482,31.29 20.875,51.995c-5.616,20.657 -9.823,33.238 -30.36,42.431c-4.711,2.094 -9.664,3.512 -14.587,4.982c-10.705,3.2 -19.676,-0.354 -30.148,0.881c-0.713,-0.804 -0.221,-1.132 1.476,-0.978" style="fill:#231f20;fill-rule:nonzero;"/><path d="M144.247,411.774c6.255,2.649 13.751,-26.877 8.235,-29.888c4.087,-1.553 2.313,-10.969 0.669,-10.309c-3.226,1.243 -4.363,15.224 -1.529,16.856c-6.108,5.622 -0.919,31.344 -17.717,20.371c-10.692,-6.982 -1.635,-41.299 -4.019,-42.142c-5.356,-1.856 -9.213,31.147 -6.187,35.513c2.384,3.383 0.996,10.094 7.658,12.699c6.332,2.478 10.71,0.38 12.89,-3.1" style="fill:#231f20;fill-rule:nonzero;"/><path d="M264.166,261.669c1.671,2.614 3.38,18.445 7.083,18.955c4.361,0.583 -4.584,-3.507 6.182,-0.557c-3.362,-3.182 2.725,-11.426 -1.842,-11.971c9.597,-7.823 -12.49,-10.746 -2.112,-2.028c-6.833,4.069 -4.491,-16.614 -10.239,-15.341c-1.662,0.371 0.84,10.268 0.928,10.942c1.883,2.944 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M264.247,261.757c-1.468,-0.91 -2.614,-0.571 -3.436,1.017c1.689,-2.97 0.625,-6.064 -2.307,-6.759c0.528,-0.56 0.896,-1.211 1.105,-1.957c0.024,-0.017 -6.974,-0.091 -3.459,2.676c2.475,1.927 -2.805,7.864 4.266,7.925c-8.123,-0.294 -2.248,15.949 -3.338,17.157c-0.059,-0.695 -0.238,-1.358 -0.536,-1.991c-0.757,0.003 11.019,12.366 6.803,1.549c-1.432,-3.691 -0.188,-16.043 0.902,-19.617" style="fill:#231f20;fill-rule:nonzero;"/><path d="M285.329,135.684c0.669,1.656 -4.166,3.706 -4.163,6.37c0.017,8.65 6.49,-0.987 7.598,-2.499c0.422,-0.568 12.773,-12.301 4.673,-11.844c-2.466,0.147 -8.108,5.498 -8.108,7.973" style="fill:#231f20;fill-rule:nonzero;"/><path d="M269.207,230.865c-1.417,1.381 2.844,29.832 5.254,26.258c2.678,-3.992 -1.827,-23.403 -5.254,-26.258c-0.442,0.43 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M255.292,230.492c-0.132,-1.075 -1.408,-21.352 -5.598,-18.412c-0.813,0.572 2.584,22.299 4.488,21.895c1.614,-0.342 1.485,-2.387 1.11,-3.483" style="fill:#231f20;fill-rule:nonzero;"/><path d="M255.154,248.772c0.009,-2.033 3.433,-15.828 -2.157,-14.007c-2.171,0.71 3.324,6.588 2.216,7.38c-0.795,0.03 -1.585,0.115 -2.366,0.254c0.507,2.21 1.276,4.334 2.307,6.373" style="fill:#231f20;fill-rule:nonzero;"/><path d="M269.207,230.865c11.3,-3.86 -11.644,-12.755 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M256.524,252.721c0.554,-0.436 1.102,-0.875 1.656,-1.314c-0.639,-1.255 -1.544,-1.753 -2.711,-1.491c-0.725,1.078 -0.368,2.012 1.055,2.805" style="fill:#231f20;fill-rule:nonzero;"/><path d="M149.687,63.715c-0.819,-2.172 35.174,-2.078 35.203,-2.234c0.784,-4.201 -26.944,-7.115 -23.815,-1.002c-3.804,-2.177 -11.073,-1.113 -11.388,3.236c0.336,0.889 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M149.608,63.801c-0.507,-3.05 -4.034,-0.377 -3.294,0.353c2.136,2.11 1.768,-0.459 3.294,-0.353" style="fill:#231f20;fill-rule:nonzero;"/><path d="M144.631,178.802c-21.267,-1.838 -18.034,27.902 0.802,30.637c23.547,3.418 21.025,-33.477 -0.802,-30.637m3.837,16.37c-0.993,-3.291 -5.873,-3.848 -6.129,-5.878c-0.48,-3.862 8.539,-1.172 6.129,5.878" style="fill:#231f20;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/green.svg b/go.dev/_content/images/gophers/green.svg
new file mode 100644
index 0000000..c1660ba
--- /dev/null
+++ b/go.dev/_content/images/gophers/green.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="green"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#78e6d0;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#78e6d0;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#78e6d0;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/grey.svg b/go.dev/_content/images/gophers/grey.svg
new file mode 100644
index 0000000..d88756e
--- /dev/null
+++ b/go.dev/_content/images/gophers/grey.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="grey"><path d="M224.534,107.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#bbbcbc;fill-rule:nonzero;"/><path d="M25.639,82.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#bbbcbc;fill-rule:nonzero;"/><path d="M294.231,74.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#bbbcbc;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/happy.svg b/go.dev/_content/images/gophers/happy.svg
new file mode 100644
index 0000000..91f670d
--- /dev/null
+++ b/go.dev/_content/images/gophers/happy.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 412 585" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M48.237,134.398c-33.695,-15.235 4.782,-32.81 16.879,-19.225c18.118,20.348 -9.696,22.417 -16.879,19.225c-9,-4 2,0 0,0" style="fill:#b8afa6;fill-rule:nonzero;"/><path d="M276.051,18.794c-3.908,-0.73 -7.388,-3.459 -10.814,-5.396c3.225,-5.562 10.376,-13.416 17,-9c3.37,1.685 4.419,4.103 4.667,7.741c0.67,9.835 -2.754,8.275 -10.853,6.655c-6,-2 0,0 0,0Zm113.87,94.607c-3.604,-7.209 1.485,-16.99 1.485,-25.515c0,-4.405 -12.196,2.366 -14.169,5.512c-13.403,-7.282 2.509,-18.465 12.903,-18.465c31.813,-4.544 4.894,48.695 -0.219,38.468c-1,-2 6.956,0.535 5.956,-1.465m-185.19,98.852c3,0 69.269,-3.884 71.591,-67.935c1.166,-32.136 -9.874,-68.655 -45.896,-77.647c2.921,2.881 -10.007,-3.594 -25.035,-3.594c-16.104,0 -38.675,8.373 -36.136,6.425c-32.207,3.555 -49.179,40.108 -52.728,68.501c-5.579,44.633 45.281,84.981 88.204,74.25Zm192.55,160.61c7.93,-15.859 -23.816,-42.715 -27,-57c-2.988,2.982 -8.563,8 -13,8c2.004,5.174 1.573,3.727 -2,6c1.044,0.78 1.898,1.299 3,2c-11.301,7.673 28.898,54.469 39,41c1,-2 -3,4 0,0m-167,149c-13.905,-3.477 -35.053,-6.07 -48.297,-10.79c-17.442,-6.216 -32.404,-10.63 -47.308,-17.928c-6.408,-3.138 -13.229,-5.383 -20.019,-9.458c-6.167,-3.7 -13.178,-8.095 -18.685,-12.639c-25.907,-21.377 -42.089,-53.522 -47.342,-87.625c-7.132,-46.304 0.558,-94.742 -11.168,-140.43c-3.004,-11.702 -9.419,-22.588 -11.81,-34.204c-0.713,-3.46 4.128,-10.427 8.629,-5.926c34.212,13.685 12.548,-22 35,-22c6.649,-6.649 14.927,-7.013 12.562,-18.953c-2.009,-10.149 -16.551,-16.918 -15.468,-27.563c1.198,-11.786 3.968,-16.272 -9.385,-23.902c-9.705,-3.204 -23.639,6.66 -26.187,2.313c-4.082,-6.965 2.445,-24.181 13.668,-38.142c7.441,-9.257 18.177,-16.331 24.81,-20.753c6.981,-5.984 16.166,-10.123 24.356,-14.119c3.991,-1.947 10.403,-6.057 16.442,-7.68c4.73,-1.27 9.785,-3.394 11.643,-5.252c46.191,-14.98 93.471,-14.631 135.966,-4.912c45.202,10.337 79.901,30.038 104.109,62.062c19.519,25.822 32.557,44.094 34.192,77.529c1.333,27.268 -12.031,68.662 -20.648,94.512c-7.559,22.675 -12.922,45.831 -0.653,66.934c8.599,14.789 21.249,28.082 23.926,45.482c3.017,19.602 -25.792,-1.473 -29.333,-8.556c-1.233,-2.466 -16.906,-25.6 -19,-25c-5.254,1.505 9.58,20.563 11.171,22.701c13.827,18.581 27.69,62.007 12.829,84.299c0,27.425 -33.13,50.339 -55.25,59.188c-8.005,3.202 -17.328,9.864 -24.75,14.812c-20.075,9.509 -42.481,10.483 -64,6c-8,-2 24,5 0,0" style="fill:#9eebff;fill-rule:nonzero;"/><path d="M49.237,172.398c-10.506,-3.232 -29.851,-9.17 -27.25,-24.125c1.257,-7.223 6.408,-14.731 11.245,-13.047c17.831,6.209 18.78,4.494 27.752,3.172c7.946,-1.171 17.607,5.964 21.565,21.016c4.663,17.736 -23.52,14.942 -33.312,12.984c-13,-4 10,2 0,0m344.501,202.718c-10.041,-2.511 -44.316,-38.696 -32.501,-46.718c-1.102,-0.701 1.044,0.78 0,0c3.573,-2.273 4.004,-0.826 2,-6c4.437,0 10.012,-5.018 13,-8c0.97,4.353 44.476,56.043 24.531,61.109c-2.829,0.718 0.329,0.843 -3.671,-0.157m-73.86,148.048c-8.721,-8.721 3.701,-22.894 12.376,-23.976c-0.677,5.019 -3.814,29.683 -12.376,23.976c-3,-3 3,2 0,0m-175.75,22.699c-15.749,-1.801 -24.664,-29.193 -26.912,-46.336c-0.85,-6.485 4.309,-13.278 12.336,-9.838c15.414,6.605 16.19,7.254 18.795,24.836c0.641,4.331 9.657,40.589 -4.219,31.338Zm74.232,21.677c-13.789,-8.044 -19.098,-49.984 5.222,-43.904c12.69,3.173 15.12,17.413 17.136,31.072c3.897,12.981 7.129,28.652 -11.263,20.314c-0.695,-0.314 -11.095,-7.482 -11.095,-7.482Z" style="fill:#e4d3b7;fill-rule:nonzero;"/><path d="M233.237,141.398c10.367,-6.911 6.242,-24.698 -6.984,-18.953c-13.321,5.786 -7.707,25.249 6.984,18.953c3,-2 -7,3 0,0m-11,29c-34.841,0 -19.998,-55.954 11.75,-57.234c37.557,-1.515 28.826,65.349 -11.75,57.234c-2,0 5,1 0,0m-44,40c-27.44,-6.098 -73.019,-46.963 -57,-79c3.546,-21.276 22.76,-59.883 46,-65c1.643,-0.362 4.105,1.827 6.519,1.37c9.307,-1.761 16.971,-7.391 26.74,-7.74c5.82,-0.208 49.741,2.342 49.741,9.37c7.629,3.54 14.391,11.391 20.444,17.444c2.977,2.977 -2.474,7.096 5.556,6.556c1.878,15.887 18.113,55.499 2.587,68.614c2.099,-37.78 -4.357,-77.05 -43.462,-93.304c-32.452,-13.488 -76.716,2.811 -96.125,28.69c-23.983,35.974 -9.367,80.4 26.309,102.297c29.037,17.822 84.599,-0.471 107.282,-23.376c-14.976,19.441 -33.427,28.289 -56.488,34.154c1.498,0.476 -1.512,-0.307 0,0c-9.454,4.664 -28.274,3.201 -38.103,-0.075c-9,-2 6,2 0,0m109,-196c0,-16.641 -16.097,-11.181 -22,-1c5.859,2.464 22,11.375 22,1c0,-6 0,3 0,0m110,95c10.397,-13.863 11.007,-41.157 -13.125,-31.875c-8.864,3.409 -17.139,8.272 -6.875,15.875c3.146,-5.019 14.334,-10.391 17,-5c-0.887,-1.33 -11.784,35.784 3,21c3,-4 -2,2 0,0m-337,25c22.433,0 5.525,-32.263 -17,-21c-19.771,9.886 6.514,21 17,21c4,0 -2,0 0,0m-35,-2c4.457,-6.685 2.482,-14.964 6,-22c3.178,-11.653 7.197,-23.407 13.594,-33.73c8.923,-14.403 26.027,-21.758 35.406,-34.27c-29.166,-5.279 -44.54,6.423 -59.292,30.954c-7.718,12.834 -8.53,25.487 -6.822,40.253c0.616,5.324 2.142,27.765 11.114,18.793c2,-3 -1,1 0,0m48,40c16.365,-2.728 8.637,-19.716 0.528,-27.456c-10.176,-9.714 -26.935,0.049 -34.528,-7.544c-13.521,-5.408 -22.293,14.654 -12.88,23.992c9.65,9.572 34.326,14.824 46.88,11.008m-31,15c0,-4.582 0.42,-12.25 -6.75,-12.25c-8.306,0 -0.183,16.151 0.75,18.25c4.109,3.775 7.829,3.551 6,-6c0,-7 0,0 0,0m17,12c3.189,-6.379 -1.659,-26.981 -12,-21c-8.559,4.951 -2.291,28.146 12,21c1,-2 -2,1 0,0m218,322c19.278,-4.284 30.967,-15.1 47.75,-21.812c20.938,-8.375 35.836,-21.567 48.25,-40.188c9.09,-15.149 15.869,-41.85 9.625,-58.5c-2.778,-7.409 -1.809,-15.481 -4.625,-22.875c-3.548,-9.314 -20,-24.338 -20,-33.625c0,-2.724 -6.214,-9.793 -2,-11c2.609,-0.747 10.59,14.59 12,16c8.583,8.583 12.195,18.876 24.024,24.232c14.67,6.643 12.354,-7.304 9.601,-16.482c-5.27,-17.563 -22.34,-30.478 -27.896,-48.146c-6.528,-20.759 5.271,-41.871 5.271,-61.604c3.919,-21.555 14.927,-41.042 19.875,-62.25c3.868,-16.577 3.122,-50.753 -9.875,-63.75c-4.287,-4.287 -8.414,-14.299 -12.519,-19.852c-5.253,-7.108 -8.311,-16.306 -13.481,-23.148c-8.52,-11.276 -25.022,-25.759 -38.171,-33.321c-72.906,-41.934 -172.087,-41.041 -244.012,3.294c-8.116,5.003 -46.16,29.92 -42.671,62.125c12.257,0 33.346,-9.145 36.854,11.902c0,6.065 -4.69,9.991 -1.407,15.926c2.25,4.068 5.831,8.086 8.407,12.074c0.59,0.005 0.739,0.087 0,0c8.525,8.624 7.718,19.521 -2,26c-7.306,4.871 -11.992,6.833 -15,13c-1.021,9.185 -3.404,19.347 -14.816,16.189c-4.462,-1.234 -21.164,-9.679 -18.813,1.737c2.839,13.795 10.215,26.683 13.407,40.778c2.471,10.915 2.888,22.315 4.004,33.422c3.351,33.349 0.459,67.269 5.567,100.434c3.038,19.729 11.948,36.034 20.651,53.44c9.423,15.077 20.561,30.637 36.111,39.852c7.589,4.497 19.714,7.973 25.889,14.148c9.344,4.672 20.16,8.2 30.111,11.296c11.489,3.575 26.664,12.704 38.889,12.704c25.22,0 44.87,14.532 71,8c9,-2 -4,1 0,0m52,0c3.201,-6.402 4.074,-12.135 5,-19c-21.173,2.641 -8.773,26.547 -5,19c1,-2 -2,4 0,0m-178,24c7.122,-2.374 -1,-30.431 -1,-36c-1.059,-9.533 -13.351,-20.447 -24,-19c-12.993,1.766 6.075,61.309 25,55c3,-1 -3,1 0,0m94,28c3.623,-3.623 -8,-28.585 -8,-35c0,-7.416 -9.883,-15.986 -18,-13c-21.197,7.8 5.726,61.517 26,48m-11,10c-8.023,-3.503 -19.896,-14.459 -24,-24c-8.379,-4.189 -3.027,-32.373 -6.828,-40.375c-3.704,-7.798 -23.604,-10.103 -31.172,-12.625c-27.713,-9.238 -7.436,21.589 -14,38c-9.029,18.058 -34,2.372 -34,-15c0,-7.96 -4.742,-13.19 -5.741,-20.186c-0.769,-5.385 -0.657,-19.745 -3.259,-23.814c-1.524,-2.384 -11.89,-8.297 -14,-10c-7.379,-5.956 -15.427,-12.854 -20,-22c-15.1,-22.649 -26.418,-42.654 -31.913,-69.633c-4.702,-23.093 -3.032,-43.268 -3.087,-66.367c-0.667,0.667 0.667,-0.667 0,0c-2.108,-37.703 -3.808,-77.616 -21,-112c-1.007,-4.53 -13.424,-54 -10,-54c0,-11.269 -4.12,-18.768 -5.359,-29.922c-0.836,-7.523 1.048,-25.107 -2.641,-32.078c-3.464,-6.546 -12.739,-9.259 -2.718,-20.769c8.324,-7.134 11.965,-0.941 18.644,-6.453c12.867,-10.617 18.802,-19.519 31.57,-23.209c5.598,-1.617 13.74,-4.075 22.504,-0.569c15.082,5.027 42.493,-12.569 58,-17c19.252,-3.851 37.711,-9.18 57.52,-10.152c12.571,-0.617 25.151,-1.364 37.739,-0.552c8.016,0.517 23.263,7.182 29.741,0.704c5.806,-7.257 13.964,-14.518 23,-10c10.918,6.551 4.508,16.72 10,24c3.777,5.007 20.314,9.357 26.064,12.232c12.297,6.149 22.069,15.074 32.38,23.953c3.542,3.05 16.343,20.354 18.962,19.19c8.706,-3.87 18.771,-10.968 28.586,-7.663c20.488,6.899 9.274,28.589 2.008,40.288c-1.404,2.26 -6,1.736 -6,9c-0.379,4.634 4,3.215 4,10c16.45,38.383 -6.211,86.358 -16.375,123.625c-3.765,13.803 -2.771,27.246 -5.125,41.375c-1.616,9.698 5.5,8.286 5.5,18c5.32,9.757 25,32.622 25,46c14.405,25.209 -21.604,13.406 -24,17c-3.799,1.899 3.986,26.431 4.111,31.556c0.594,24.35 -4.105,44.333 -17.111,62.444c-3.17,4.414 -33,27.882 -33,32c0,4.035 -2.564,13.533 -4.444,17.37c-4.946,10.096 -17.556,9.47 -17.556,-3.37c-4.688,-4.217 -5.702,-2.433 -13,0c-10.493,0 -23.891,8.58 -35.25,10c-8.071,1.009 -7.884,-0.976 -14.75,0c-4.646,0.66 -14.45,4.785 -8.111,16.407c5.543,10.163 15.125,47.264 -10.889,38.593c0,0 6,2 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M222.237,141.398c-10.44,-6.96 2.291,-25.012 12.375,-19.25c13.359,7.634 -1.389,24.743 -12.375,19.25c-3,-2 2,1 0,0m20,27c30.806,-12.322 15.919,-63.064 -19.875,-53.453c-36.479,9.795 -20.672,68.197 19.875,53.453c5,-2 -11,4 0,0m-59,37c-15.125,0 -29.492,-15.944 -38.955,-25.715c-14.028,-14.486 -17.712,-33.891 -14.67,-53.16c7.451,-47.188 52.434,-64.539 95.625,-60.273c46.982,4.64 53.58,56.701 47.309,94.203c-7.052,42.168 -53.457,48.928 -89.309,44.945" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/headlamp-colorized.svg b/go.dev/_content/images/gophers/headlamp-colorized.svg
new file mode 100644
index 0000000..47b3de6
--- /dev/null
+++ b/go.dev/_content/images/gophers/headlamp-colorized.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 150 263" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M87.2 252.834c-1.83-3.419-10.665-1.654-14.12-2.197-5.1-.803-9.844-2.02-14.436-4.331-8.345-4.203-17.331-11.128-23.519-19.057-3.617-4.636-4.187-10.462-6.541-15.728-1.393-3.118-3.042-6.536-3.23-10.191-.223-4.359-1.586-9.087-2.47-13.392-.183-.892-.933-1.071-1.166-1.836-.077-.252-.082-2.901-.025-3.314.157-1.142-.019-2.29.052-3.434.1-.758.249-1.506.451-2.245-.526.149-.749.052-.671-.29.476.096 1.017-.022 1.505 0-1.673-2.286-2.2-7.51-1.941-10.308.42-4.532-.757-9.081-.461-13.725.166-2.61-.716-10.411 4.139-8.678 1.508.538 1.912 5.025 2.271 6.381.476 1.795.961 3.626 3.174 3.857 4.341.451 6.02-4.754 7.893-7.609.871-1.327 2.772-2.725 4.173-3.479 1.836-.988 3.395-.589 4.858 1.186 1.415 1.718 2.72 3.609 4.311 5.172 1.633 1.606 3.768 1.982 5.546 3.249 1.94 1.381 5.005 1.988 7.352 1.976.631-.004 2.245 1.042 1.875-.64 1.358.101 2.882.93 3.182-.674-3.816-.729-7.353-1.2-11.11-2.538-2.711-.963-7.596-2.937-8.73-5.788-1.668-4.177-2.31-9.329-2.811-13.787-.449-3.998.817-6.988 2.536-10.408 1.547-3.078 3.589-7.557 6.713-9.348 3.408-1.954 7.783-3.752 11.715-3.899 8.993-.338 16.308 5.057 20.141 12.831 1.001-2.024-2.757-4.221-2.349-5.677.601-2.087-3.883-3.943-5.305-4.579-3.611-1.612-7.097-2.945-10.904-3.999-1.702-.474-1.615-.169-3.786.06-5.92.625-11.244 3.336-14.801 8.167-.932 1.265-2.841 5.558-4.007 6.141-.441 1.849-.396 7.046-3.192 6.789 2.614 3.527-4.176 2.317-4.023.253.167-2.285.916-6.233-.87-8.167-1.374-1.489-3.263-2.157-5.256-2.719-2.548-.718-5.707.386-8.259 1.031l1.003-1.371c.511-.143.91-.389 1.034-.985.254-1.224 2.426-2.288.942-2.783 1.897-2.315 4.861-5.14 7.272-7.084 2.408-1.942 4.954-4.949 7.751-6.036 7.102-2.759 16.318-2.929 23.837-.567 4.326 1.359 8.827 2.177 13.182 3.524 4.351 1.346 7.997 3.823 11.865 6.148 1.796 1.079 3.49 1.761 5.075 2.993.858.665 2.039 1.433 2.95 1.965 2.977 1.738 4.941 4.026 7.976 5.323-.204.708-1.091-.094-1.26.521l3.668 1.08c-1.645 1.273-.068 1.493 1.244 2.487 1.561 1.181 2.493 2.348 3.787 3.73 1.68 1.8 3.365 3.45 5.372 4.849 3.413 2.379 6.559 6.083 9.008 9.563 1.379 1.977 3.413 4.073 4.367 6.285.918 2.13-1.637 6.392-2.319 8.549-.903 2.86-2.25 5.581-3.199 8.438-.561 1.685-.824 3.389-1.266 5.097-.486 1.878-1.827 2.252-.394 3.857-2.221.84.079 1.145-1.299 1.57 2.368 1.184-1.404 13.64 1.966 14.486-.832.273-.556 1.115-.2 1.646.512.765.86 1.979.828 3.027-.036 1.397 1.35 3.439 2.108 4.611.442.685-.007 1.652.321 2.458.509 1.252 1.104 1.607 1.104 2.974.208.862-.088 4.103 1.078 5.003-1.868 1.22-1.428 5.609-1.752 7.733-.188 1.23-3.17 6.089-1.699 6.894-2.479 1.548-2.034 5.609-4.988 6.594-.897.299-5.576 4.227-2.932 5.049-.449.787-2.856 1.163-3.748 2.217-1.202 1.413-2.047 2.973-3.301 4.402-1.713 1.99-5.874 4.687-8.235 5.291-2.734.698-5.36 2.395-7.956 2.622-2.453.215-10.141-.14-11.094 2.784M62.127 133.477c3.687 1.518 9.709-3.116 9.95-6.883.081-1.256-1.038-3.776-1.859-4.748-.929-1.101-3.887-3.166-5.433-2.803-3.921.92-5.533 2.208-7.086 5.903-1.212 2.874.978 9.169 4.95 8.33l-.522.201m18.885 16.602c4.468-1.212 7.326-6.373 9.063-10.331 1.418-3.229 2.639-11.974-.471-14.435-.274.937-.856 3.948-.201 4.694 1.022 1.163.316 4.591-.027 6.355-1.036 5.351-5.319 9.468-9.352 12.749l.988.968m-4.342 61.278c.857-2.452 1.771-8.338-1.682-8.338.261 2.62.449 5.598-.379 7.981 1.736.256 2.33 3.529 4.951 2.971-2.437-.85 1.132-.162 1.636-.706.517-.558 1.213.159 1.938-.792 1.775-2.324 2.135-4.827 3.213-7.574-4.193-.863-.708 2.2-3.21 2.525.656 1.359-1.138 3.037-1.916 4.235-1.371 2.114-3.033 1.046-4.551-.302m-7.329-56.806c1.844.549 5.575-.122 6.343-2.211-2.237.54-4.542.742-6.343 2.211m16.015 47.824c2.895 1.594 2.013-5.357 0 0m3.965-77.19c1.29-.918.053-3.981-1.361-4.208l1.361 4.208m-9.361 25.762c-1.856-1.117-5.232 2.118 0 0m7 52.436c-2.845-1.746-2.39 3.075 0 0" fill="#01add8" fill-rule="nonzero"/><path d="M49.92 147.845c3.12 1.739 7.622 5.688 11.229 5.688 4.383 0 9.037.866 12.993-1.135 3.847-1.948 9.854-3.527 12.22-7.26l4.271-6.74c.694-1.096-.502-5.386-.632-6.645-.541-5.227-1.467-8.437-3.514-13.298-.662-1.572-1.299-4.738-2.513-5.966-1.528-1.546-5.118-2.45-7.07-3.383-4.486-2.147-8.616-1.786-13.616-1.939-4-.123-8.535 4.668-11.759 6.842-1.494 1.008-1.657 3.078-2.212 4.745-.809 2.431-2.951 8-3.759 10.431M51.131 38.689l-6.747-.499c-1.762-.129-5.076 2.31-6.689 3.064-3.748 1.751-6.559 5.683-8.415 9.217-1.034 1.97-1.543 3.229-1.936 5.396-.277 1.527-1.757 5.361-1.058 6.784 1.984 4.038 3.27 8.735 6.987 11.366 1.04.736 4.154 3.856 5.425 3.802l7.355-.312 8.707-.37c1.684-.071 1.743-.857 2.705-2.304l5.16-7.758c.94-1.413 3.087-3.558 3.481-5.233.428-1.822-.837-5.163-1.135-7.003-.315-1.942-.64-3.458-1.349-5.277-.556-1.431-1.927-7.523-3.392-7.988l-9.099-2.885" fill="#fefefe" fill-rule="nonzero"/><path d="M85.708 75.01l-2.701 5.724c-.529 1.119-1.914 5.917-3.047 6.453-1.3.616-5.532-.903-7.005-1.143-2.36-.385-4.751-.623-7.123-.927-8.686-1.112-17.534-4.6-26.264-3.558-2.076.248-5.155.028-7.088.846-2.095.887-4.247 3.517-6 4.968-1.491 1.235-2.608 2.621-3.849 4.12-.575.695 2.435 3.345 3.508 3.413 10.261.647 20.507 1.423 30.759 2.209 3.559.273 6.872.601 10.368 1.281 3.96.771 9.642.799 13.204 2.751 7.712 4.228 16.259 7.829 23.118 13.371 7.869 6.359 15.447 13.135 24.036 18.493 1.488.928 3.454 2.758 5.174 3.181 1.366.336 5.451 2.135 6.489 1.158 1.353-1.272 3.446-2.568 4.129-4.332l3.001-7.749c.894-2.307.083-4.239-1.382-5.807l-8.947-9.573c-4.51-4.824-8.721-10.22-14.024-14.189a1171.966 1171.966 0 01-18.12-13.831c-2.188-1.706-5.424-2.287-8.004-3.207L85.708 75.01M129.145 225.998l-4.772 7.158c2.214.697 4.588 1.875 6.926 1.875 4.031 0 5.178.06 8.412-2.301-3.256-3.139-6.175-5.624-10.566-6.732" fill="#fefefe" fill-rule="nonzero"/><use xlink:href="#_Image1" y="37" width="150" height="226"/><path d="M17.108 5.583l1.093-.08c.143.232.038.385-.315.459.927.369 1.05.908 2.417 1.638-1.183.771.626 1.561 1.911 2.242-.386 1.197 2.542 4.027 3.758 4.936 2.451 1.835 4.464 5.724 6.325 8.164 1.776 2.329 3.656 4.438 5.893 6.347-1.451.432-2.261-.946-3.614-.851.567-.791-1.172-1.898-2.016-1.861-.146-1.642 2.076 1.243-.088-1.541-.926-1.191-1.663-1.871-2.715-2.965-1.359-1.412-4.608-3.787-3.908-6.041-.97-.377-3.603-1.092-2.88-2.709.236-.527-1.815-1.15-2.16-1.724-.365-.604-2.347-2.572-2.347-3.001l-2.199-1.624c.009-.015.845-1.717.845-1.389M134.143 228.457c.813-.696 1.408-.515 1.785.545.788-1.389 1.055.563 2.162.906 1.143.356 2.622 1.848 2.421 3.141-.4 2.559-4.099 2.614-6.101 3.512-.153-.462-.304-.926-.456-1.389 1.742-.397 2.836-.956 4.071-2.338 1.571-1.749-2.834-3.68-3.882-4.377M10.282 23.576c2.021-.945 4.158 1.242 5.963 2.048 1.093.488.855 1.216 2.096 1.788 1.067.492 1.998.727 2.566 1.758-.751.308-1.713.55-2.063-.559-.274-.866-2.801-1.26-.702-.203-.61 0-5.434-3.222-5.557-3.031-.441.074-2.454-.566-3-1.1 1.278-.043.161-.211.697-.701 1.381-.646 0 0 0 0M93.012 94.839c-.971.038-4.896-1.173-4.813-2.441.159-2.379 4.412 1.981 4.813 2.441-.391.015 0 0 0 0" fill="#231f20" fill-rule="nonzero"/><path d="M17.108 5.583c0-.591-1.909.154-2.316-.63-.858-1.653 3.366-1.331 2.316.63M27.688 34.621l-1.528.188c-.101-.384-.099-1.105 0-1.489 1.206.306 2.216.76 2.92 1.812-.897.121-1.026-.174-1.392-.511-.501.062 0 0 0 0M23.872 31.302l-2.947-.476c.609-.361.572-.641-.112-.841.46-1.762 2.846 1.086 3.059 1.317M93.012 94.839c3.259.123 3.098 2.458 0 0M5.8 36.682l2.908 1.528c-.95.623-3.66-.239-2.908-1.528M12.35 2.009c1.11-.556 2.787-.071 3.162 1.2-1.486-.075-2.06-.129-3.162-1.2 1.167-.584 0 0 0 0M25.066 32.42c-.24 0-2.663.307-2.545-.319.153-.791 2.575-.75 2.545.319" fill="#231f20" fill-rule="nonzero"/><path d="M95.67 96.072c.34-.793 1.285.648 1.323.838-.105.252-.206.507-.3.764-.57.522-1.228-1.194-1.023-1.602" fill="#231f20" fill-rule="nonzero"/><path d="M98.089 98.496l-1.07-.381c.159-.178.732-1.959-.043-1.183 1.065-.425 1.272.47 1.945 1.241-.854.387-1.132.494-.832.323M1.56 35.162l2.577.956c-1.358.62-1.85.458-2.577-.956M10.282 23.576c.211.038-2.524-.307-2.265-.28 1.166-.783 1.152-.606 2.265.28M12.346 2.005C11.317.996 11.4 1.656 11.196.553c.365-.092 1.053-.099 1.416 0 .219 1.267.13 1.751-.266 1.452" fill="#231f20" fill-rule="nonzero"/><path d="M136.925 108.522c-2.682-2.439-5.05-6.811-8.413-8.253-2.269-.98-4.999-7.042-8.08-6.387-.55.126-.82-.074-.812-.602.007-1.136-.536-.696-1.387-1.341-1.557-1.178-.81-1.688-3.043-2.335.926-1.292-6.267-4.568-7.165-4.865.989-1.59-.486-1.013-1.559-1.507-1.56-.717-2.998-1.819-4.487-2.675-.885-.509-2.85-1.901-3.936-1.523-.229.08-2.533-1.225-3.226-1.525-3.422-1.486-6.943-2.582-9.956-4.796-.735-.541-.119-2.323-.299-3.097-.435-1.861-1.982-2.451-2.819-3.981-1.847-3.376-3.895-6.803-4.985-10.458-1.462-.65-1.124-2.572.403-2.641 1.361-.062 2.71-.31 4.082-.31 3.915 0 7.628-.451 11.609-.162 1.813.131 10.092 2.809 10.846 1.988 1.635 1.856 5.412 1.756 7.631 2.779 2.277 1.048 4.966 1.84 6.771 3.509v-.989c1.699.52 4.524 3.353 6.092 4.478.864.62 3.489 1.817 2.877 2.872.952.812 1.32.951 2.57 1.048-.669 1.712 3.932 4.787 4.941 5.941 1.854 2.116 3.068 3.307 4.391 5.907 2.412 4.739 5.88 9.029 7.151 14.21.278 1.121.037 2.352.59 3.422.499.963-.52 1.908.303 2.382 1.133.65.42 4.203.306 5.017-.601 4.285 2.043 10.025-1.033 13.99-1.754-2.862-6.093-9.458-9.363-10.096M26.107 116.518c-4.41.146-4.568 8.291-4.625 11.55-.031 1.706-2.652 3.882-3.262 5.624-.763 2.183-.472 4.155-1.46 6.218-1.088-1.756-3.281-1.796-5.042-2.318-1.828-.549-4.159-3.395-5.424-4.825-3.02-3.416-2.645-9.546-1.964-13.673 1.659 3.39 2.209 5.595 6.191 6.187 3.92.582 5.826-3.114 5.671-6.722-.092-2.159-3.473-5.505-5.855-4.931-2.477.598-4.626 3.862-4.437-.489.081-1.857 4.982-5.277 6.45-6.41 2.703-2.087 7.238-3.608 10.468-2.319 1.545.613 6.333 1.725 5.237 4.126-.68 1.494-.922 2.965-1.657 4.549-.701.208-1.047.681-1.038 1.416-.172 1.653-.789.659-.917 1.638.314.077 1.363.351 1.664.379M69.88 51.416c3.089 3.043 4.504 6.77 7.149 10.089 2.878 3.611.215 9.331-1.657 12.668-1.112 1.982-2.072 4-3.777 5.556-.461.42-1.624 1.807-2.333 1.683-.815-.142-.591-1.201-1.612-.7-2.552 1.254-4.179 2.309-7.138 2.146-2.326-.128-3.589-.661-5.965-.36.906-2.844 3.595-4.688 5.475-6.987 1.964-2.403 4.259-4.698 5.869-7.362 3.246-5.368 3.989-10.516 3.989-16.733M43.326 140.795c-4.818 2.144-10.543 1.731-15.792.906-3.053-.474-5.384-.323-6.771-3.427-1.013-2.267-.123-5.291 1.921-6.685 1.909-1.302 5.475-.443 7.683-.422 1.226.012 2.558.114 3.755-.218.56-.155 2.858-.382 3.199-.617 2.517-1.723 4.916 1.138 6.098 2.873 1.93 2.831.737 4.66-.093 7.59M37.593 122.63c1.439.104-.879 6.479-3.518 6.466-3.885-.026-6.819 1.874-9.38-2.327-1.855-3.043 2.331-7.101 5.079-7.903 2.719-.793 6.907 1.393 7.819 3.764M128.155 134.207c2.511 1.135 4.162 2.743 6.799 3.81-.618 1.421 3.616 4.791 3.525 6.881 2.124 2.424 4.695 4.864 5.347 8.186.767 3.904-4.431 2.479-6.468 1.372-1.292-.702-1.693-1.243-1.464-2.569.213-1.236 1.29-.738 1.511-1.408.333-1.035 1.925-.306 2.217-1.487.285-1.139-1.575-1.124-2.088-1.679-.65-.702-.891-2.304-1.772-2.743-1.239-.62-2.118-1.646-2.764-2.85-.719-1.337-.837-3.187-1.896-4.31-.942-.999-2.372-1.949-2.947-3.203M97.978 261.609c1.347-1.493-1.255-2.074-2.315-2.258-1.621-.277-.372-2.299-.402-3.256-.113-3.561 1.528-2.945 4.11-4.298.497-.26 3.589-1.188 4.039-.991 1.035.456.833 3.481.768 4.345-.234 3.148-3.026 6.31-6.2 6.458M18.759 164.611c-2.889-.918-5.708-2.112-8.23-3.812-2.025-1.365-4.875-4.725-.481-4.864 1.162-.037 6.004.572 6.562 1.793.463 1 1.933.144 2.126 1.848.185 1.639.023 3.389.023 5.035M45.588 250.707c-2.443.583-4.702.347-3.34-3.158.25-.644.183-3.393.902-3.51 2.163-.361 3.492-4.617 5.924-1.043 1.324 1.942 2.161 1.473.351 3.836-1.109 1.448-2.496 2.651-3.837 3.875M38.337 100.282c-2.669.613-6.555-1.887-7.726-4.234 2.693-.814 5.781.953 8.566.676.138-.61-.268-.768-1.216-.475.796-.409 3.621-.102 3.253 1.367-.212.845-3.655 1.145-2.877 2.666M27.55 147.535c.654-4.128 3.602-4.2 4.569.042 1.162 5.101-5.028 4.027-4.569-.042" fill="#fefefe" fill-rule="nonzero"/><path d="M79.252 69.378c1.199-.743 2.346-2.09 3.497-.761 1.264 1.459.375 1.782-.345 3.373-.771 1.706-1.849 2.285-3.513.684-.971-.932.029-2.3.361-3.296M84.265 75.125c-.519 4.024-3.703 7.21-5.399 10.852-1.008-2.674.496-3.489 1.555-5.789.514-1.115 2.421-5.481 3.844-5.063M67.219 54.73c-.481-3.002-2.061-4.187-1.315-7.186 1.008 1.283 2.852 6.141 1.315 7.186-.097-.606 0 0 0 0M62.861 43.462c1.859.216 2.315 1.969 3.245 3.497-1.271.074-3.428-2.39-3.245-3.497.4.046 0 0 0 0M67.193 54.75c.802.612.138 3.883-.77 4.216 0-1.35-.462-3.391.77-4.216M62.888 43.437c-.714-.537-4.58-2.936-4.141-3.678 1.334.799 4.013 2.01 4.141 3.678M57.764 40.078L54 39.099c.79-.859 4.197-.276 3.764.979M72.613 82.633l.581 1.631c-1.533.111-1.407-.565-.581-1.631M74.723 83.067l-1.685-1.164c.715-.365 2.607-.27 1.685 1.164M75.749 83.806c.078 1.041-.767 1.045-1.558.87.583-.953.65-1.591 1.558-.87.065.87 0 0 0 0M75.749 83.806c-.627-.505-.758-1.075.25-1.401.334.628.571 1.146-.25 1.401" fill="#fefefe" fill-rule="nonzero"/><path d="M62.127 133.476l.522-.2c-3.799.803-5.37-4.48-5.211-7.176.248-4.218 3.435-5.938 6.79-6.896 4.155-1.132 6.488 3.73 7.695 6.481.81 1.849-2.164 4.873-3.315 6.086-1.421 1.498-4.471 2.532-6.481 1.705m-.786-8.462a40.682 40.682 0 001.804-2.088c-2.745-.979-5.421 5.261-2.98 7.127.266-.319.242-2.54.032-3.177-.35-1.06 1.276-.854 1.144-1.862M81.012 150.08l-.988-.969c4.032-3.284 8.314-7.396 9.351-12.75.343-1.764 1.047-5.191.028-6.354-.657-.747-.073-3.757.201-4.695 2.504 1.982 2.222 10.226 1.076 13.01-1.816 4.412-4.668 10.393-9.668 11.758M76.671 211.357c1.453 1.292 1.9 1.387 3.848 1.387.865-1.334 3.318-3.856 2.619-5.321 2.504-.319-.986-3.381 3.209-2.525-.531 1.371-.762 2.702-1.172 4.103-.356 1.214-1.026 1.296-1.51 2.481-.315.774-1.133 2.362-2.226 1.556.75.586-5.054-.181-1.879.932-2.62.558-3.216-2.717-4.951-2.969.829-2.385.639-5.363.378-7.984 3.455 0 2.537 5.887 1.684 8.34M69.341 154.55c1.802-1.469 4.106-1.671 6.343-2.211-.768 2.089-4.498 2.76-6.343 2.211M85.357 202.375c2.006-5.358 2.897 1.595 0 0M89.321 125.184l-1.361-4.208c1.413.229 2.652 3.291 1.361 4.208M79.96 150.947c-5.233 2.116-1.854-1.116 0 0M86.96 203.382c-2.39 3.075-2.845-1.746 0 0" fill="#231f20" fill-rule="nonzero"/><path d="M61.341 125.014c.131 1.008-1.495.803-1.145 1.863.211.636.234 2.858-.031 3.176-2.442-1.866.235-8.105 2.98-7.127a41.18 41.18 0 01-1.804 2.088" fill="#fefefe" fill-rule="nonzero"/><path d="M76.939 202.675c1.712 4.283.928 5.16.857 6.959-.005.132-.466.993-.419 1.166.485 1.774 1.063 1.839 3.025 1.103 1.962-.735 4.289-9.274 3.648-8.492-.498.609-7.785-2.421-7.111-.736z" fill="#d2c0c0" stroke="#d2c0c0"/><path d="M76.939 202.675c1.712 4.283.928 5.16.857 6.959-.005.132-.466.993-.419 1.166.485 1.774 1.063 1.839 3.025 1.103 1.962-.735 4.289-9.274 3.648-8.492-.498.609-7.785-2.421-7.111-.736zM131.406 227.281c3.824 2.667 5.689 3.287 5.848 3.372 1.632.869 1.083 1.934-.665 3.329-2.277 1.818-10.59-1.827-9.685-2.345.705-.404 2.997-5.406 4.502-4.356zM95.517 253.881c.558 4.592-.544 4.12-.543 4.299.011 1.842 2.732 2.984 4.858 2.802 2.126-.182 5.743-8.397 3.941-9.703-.642-.465-8.476.795-8.256 2.602zM46.568 242.089c-4.584 2.744-3.297 4.223-3.84 5.939-.04.126-.722.833-.72 1.012.01 1.842.562 2.06 2.688 1.878 2.126-.182 6.506-7.031 5.669-6.448-.652.453-2.235-3.316-3.797-2.381zM17.739 158.005c-4.604-1.357-7.568-1.991-7.746-1.974-2.468.244-1.651 1.06-1.201 3.146.45 2.085 10.303 5.626 9.619 4.87-.532-.589 1.075-5.528-.672-6.042z" fill="#d2c0c0" stroke="#d2c0c0"/><defs><image id="_Image1" width="150" height="226" xlink:href="data:image/png;base64,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"/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/headlamp.svg b/go.dev/_content/images/gophers/headlamp.svg
new file mode 100644
index 0000000..3e815c9
--- /dev/null
+++ b/go.dev/_content/images/gophers/headlamp.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 150 263" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M87.201 252.833c-1.841-3.419-10.659-1.653-14.121-2.197-5.099-.803-9.844-2.019-14.436-4.331-8.344-4.203-17.331-11.127-23.519-19.057-3.617-4.636-4.188-10.461-6.541-15.728-1.392-3.117-3.045-6.538-3.23-10.191-.225-4.36-1.587-9.086-2.47-13.392-.183-.891-.933-1.072-1.166-1.836-.077-.253-.082-2.901-.025-3.314.158-1.142-.019-2.29.053-3.434.099-.758.248-1.506.45-2.245-.525.149-.748.052-.671-.29.476.096 1.016-.022 1.504 0-1.672-2.285-2.199-7.511-1.939-10.308.419-4.532-.758-9.081-.462-13.725.167-2.61-.716-10.412 4.139-8.678 1.507.538 1.912 5.025 2.272 6.381.474 1.796.96 3.626 3.174 3.857 4.342.452 6.017-4.754 7.892-7.609.871-1.327 2.771-2.725 4.173-3.479 1.836-.988 3.395-.589 4.857 1.186 1.416 1.718 2.721 3.609 4.312 5.172 1.633 1.606 3.769 1.981 5.546 3.249 1.94 1.381 5.005 1.988 7.352 1.976.63-.004 2.244 1.042 1.875-.64 1.359.101 2.88.929 3.182-.674-3.816-.73-7.353-1.199-11.11-2.538-2.711-.963-7.596-2.936-8.73-5.788-1.668-4.178-2.309-9.329-2.81-13.787-.45-3.999.817-6.987 2.535-10.408 1.547-3.078 3.589-7.558 6.712-9.348 3.409-1.954 7.783-3.752 11.716-3.899 8.989-.338 16.313 5.056 20.141 12.831.997-2.018-2.764-4.237-2.349-5.677.601-2.087-3.883-3.943-5.305-4.579-3.611-1.612-7.097-2.945-10.904-3.999-1.701-.474-1.616-.17-3.787.06-5.917.625-11.246 3.335-14.8 8.167-.926 1.258-2.848 5.567-4.006 6.141-.445 1.849-.394 7.046-3.193 6.789 2.616 3.524-4.176 2.32-4.023.253.166-2.285.917-6.233-.87-8.167-1.374-1.489-3.263-2.156-5.256-2.719-2.548-.718-5.708.387-8.26 1.031l1.004-1.371c.508-.142.91-.389 1.033-.985.254-1.225 2.429-2.288.943-2.783 1.897-2.315 4.861-5.14 7.272-7.084 2.409-1.942 4.954-4.949 7.751-6.036 7.102-2.759 16.318-2.93 23.836-.567 4.326 1.36 8.828 2.176 13.184 3.524 4.351 1.347 7.996 3.823 11.864 6.148 1.797 1.079 3.49 1.761 5.075 2.993.857.665 2.038 1.433 2.95 1.965 2.977 1.738 4.94 4.027 7.977 5.323-.21.703-1.103-.096-1.261.521l3.668 1.08c-1.645 1.273-.068 1.493 1.244 2.487 1.562 1.181 2.492 2.348 3.787 3.73 1.679 1.799 3.364 3.453 5.372 4.849 3.496 2.438 6.345 6.137 9.009 9.563 1.378 1.978 3.411 4.073 4.365 6.285.919 2.13-1.636 6.392-2.318 8.549-.903 2.86-2.25 5.581-3.199 8.438-.561 1.685-.824 3.389-1.266 5.097-.487 1.88-1.825 2.249-.394 3.857-2.216.84.076 1.146-1.298 1.57 2.363 1.187-1.403 13.64 1.965 14.486-.832.273-.556 1.115-.2 1.646.512.765.86 1.979.828 3.027-.04 1.394 1.352 3.442 2.108 4.611.442.685-.007 1.652.321 2.458.509 1.252 1.104 1.607 1.104 2.974-.06.004.274 4.382 1.078 5.003-1.868 1.22-1.427 5.609-1.752 7.733-.187 1.23-3.17 6.089-1.699 6.894-2.479 1.548-2.034 5.609-4.988 6.594-.896.299-5.575 4.224-2.933 5.049-.437.778-2.861 1.17-3.747 2.217-1.202 1.413-2.047 2.973-3.301 4.402-1.713 1.991-5.874 4.687-8.236 5.291-2.733.698-5.359 2.395-7.955 2.622-2.451.214-10.148-.138-11.093 2.784M62.127 133.476c3.687 1.517 9.71-3.115 9.951-6.883.08-1.255-1.039-3.776-1.86-4.748-.93-1.102-3.886-3.166-5.433-2.803-3.926.921-5.526 2.21-7.087 5.903-1.21 2.874.978 9.17 4.95 8.33l-.521.201m18.886 16.602c4.468-1.213 7.325-6.373 9.062-10.331 1.418-3.229 2.639-11.974-.471-14.435-.274.937-.857 3.948-.201 4.694 1.022 1.163.316 4.591-.027 6.355-1.036 5.347-5.318 9.477-9.354 12.749l.991.968m-4.343 61.278c.857-2.452 1.771-8.338-1.682-8.338.257 2.623.45 5.594-.379 7.981 1.735.256 2.33 3.53 4.95 2.971-2.436-.848 1.134-.164 1.637-.706.517-.558 1.213.159 1.938-.792 1.774-2.323 2.14-4.827 3.213-7.574-4.192-.865-.709 2.201-3.209 2.525.65 1.364-1.136 3.032-1.916 4.235-1.372 2.114-3.034 1.046-4.552-.302m-7.329-56.806c1.844.549 5.575-.122 6.343-2.211-2.237.54-4.541.742-6.343 2.211m16.015 47.824c2.894 1.594 2.013-5.357 0 0m3.965-77.19c1.29-.918.053-3.98-1.361-4.208l1.361 4.208m-9.361 25.762c-1.854-1.116-5.234 2.117 0 0m7 52.436c-2.837-1.741-2.4 3.067 0 0" fill="#fefefe" fill-rule="nonzero"/><path d="M49.92 147.845c3.12 1.739 7.623 5.688 11.23 5.688 4.382 0 9.036.866 12.991-1.135 3.847-1.948 9.855-3.527 12.221-7.26l4.271-6.74c.694-1.096-.502-5.386-.632-6.645-.541-5.227-1.467-8.437-3.514-13.298-.662-1.572-1.299-4.738-2.513-5.966-1.528-1.546-5.118-2.45-7.07-3.383-4.486-2.147-8.616-1.786-13.615-1.939-4.001-.123-8.536 4.668-11.76 6.842-1.494 1.008-1.657 3.078-2.212 4.745l-2.425 7.292M51.131 38.688l-6.746-.499c-1.763-.129-5.076 2.31-6.69 3.064-3.748 1.751-6.559 5.684-8.415 9.217-1.034 1.97-1.543 3.228-1.936 5.396-.277 1.527-1.757 5.361-1.058 6.784 1.984 4.038 3.27 8.735 6.987 11.366 1.04.736 4.155 3.856 5.426 3.802l7.354-.312 8.707-.37c1.684-.072 1.743-.857 2.705-2.304l5.161-7.758c.939-1.413 3.086-3.558 3.48-5.233.429-1.822-.837-5.163-1.136-7.003-.315-1.942-.64-3.458-1.349-5.277-.556-1.431-1.927-7.523-3.392-7.988l-9.098-2.885" fill="#fefefe" fill-rule="nonzero"/><path d="M85.708 75.01l-2.701 5.724c-.529 1.119-1.914 5.917-3.047 6.453-1.3.616-5.532-.903-7.005-1.143-2.361-.385-4.752-.623-7.124-.927-8.686-1.112-17.533-4.6-26.263-3.558-2.076.248-5.155.028-7.088.846-2.095.887-4.247 3.517-6 4.968-1.491 1.235-2.608 2.621-3.849 4.12-.575.695 2.435 3.345 3.508 3.413 10.261.647 20.506 1.423 30.758 2.209 3.559.273 6.873.601 10.368 1.281 3.96.771 9.643.799 13.205 2.751 7.712 4.228 16.259 7.829 23.118 13.371 7.869 6.359 15.447 13.135 24.038 18.493 1.487.928 3.453 2.758 5.173 3.181 1.366.336 5.45 2.135 6.488 1.158 1.354-1.272 3.447-2.568 4.13-4.332l3-7.749c.894-2.307.083-4.239-1.382-5.807l-8.947-9.573c-4.51-4.824-8.721-10.22-14.024-14.189a1171.885 1171.885 0 01-18.119-13.831c-2.188-1.706-5.425-2.287-8.004-3.207L85.708 75.01zM129.144 225.998l-4.772 7.158c2.214.697 4.588 1.875 6.927 1.875 4.031 0 5.178.06 8.412-2.301-3.255-3.14-6.176-5.624-10.567-6.732" fill="#fefefe" fill-rule="nonzero"/><use xlink:href="#_Image1" y="37" width="150" height="226"/><path d="M17.108 5.583l1.093-.08c.143.232.038.385-.316.459.928.367 1.052.908 2.418 1.638-1.183.772.626 1.56 1.911 2.242-.386 1.197 2.543 4.027 3.758 4.936 2.45 1.834 4.465 5.724 6.325 8.164 1.776 2.329 3.656 4.439 5.893 6.347-1.45.432-2.261-.946-3.614-.851.566-.79-1.171-1.898-2.016-1.861-.154-1.647 2.084 1.254-.089-1.541-.925-1.191-1.662-1.871-2.714-2.965-1.357-1.411-4.611-3.788-3.908-6.041-.97-.377-3.604-1.092-2.88-2.709.237-.526-1.815-1.151-2.16-1.724-.364-.603-2.347-2.572-2.347-3.001l-2.2-1.624c.01-.016.846-1.716.846-1.389M134.143 228.457c.813-.696 1.408-.515 1.785.545.501-.894 4.869 2.215 4.583 4.047-.399 2.559-4.098 2.614-6.1 3.512l-.457-1.389c1.742-.397 2.836-.956 4.071-2.338 1.571-1.749-2.834-3.68-3.882-4.377M10.281 23.576c2.021-.945 4.159 1.242 5.963 2.048 1.094.488.855 1.216 2.096 1.788 1.069.493 1.998.727 2.566 1.758-.751.308-1.713.55-2.063-.559-.273-.867-2.8-1.259-.702-.203-.611 0-5.433-3.222-5.557-3.031-.442.075-2.452-.566-3-1.1 1.272-.043.167-.216.697-.701 1.381-.646 0 0 0 0M93.012 94.839c-.973.038-4.894-1.172-4.813-2.441.154-2.38 4.413 1.982 4.813 2.441" fill="#231f20" fill-rule="nonzero"/><path d="M17.108 5.583c0-.589-1.909.152-2.316-.63-.858-1.652 3.366-1.332 2.316.63M27.688 34.621l-1.528.188c-.1-.384-.099-1.105 0-1.489 1.207.307 2.214.761 2.919 1.812-.897.121-1.025-.174-1.391-.511-.501.062 0 0 0 0M23.872 31.302l-2.947-.476c.609-.361.572-.642-.113-.841.466-1.76 2.844 1.083 3.06 1.317M93.012 94.839c1.319.05 2.018-.202 2.731 1.103-.858 1.184-2.049-.562-2.731-1.103M5.8 36.682l2.908 1.528c-.949.622-3.66-.239-2.908-1.528M12.349 2.009c1.11-.556 2.788-.072 3.163 1.2-1.488-.075-2.058-.127-3.163-1.2 1.167-.584 0 0 0 0M25.066 32.42c-.238 0-2.665.306-2.545-.319.151-.789 2.575-.752 2.545.319" fill="#231f20" fill-rule="nonzero"/><path d="M95.67 96.072c.341-.794 1.286.65 1.324.838-.106.252-.207.507-.301.764-.57.522-1.228-1.193-1.023-1.602" fill="#231f20" fill-rule="nonzero"/><path d="M98.089 98.496l-1.07-.381c.159-.178.732-1.959-.043-1.183 1.064-.425 1.272.47 1.945 1.241-.854.387-1.132.494-.832.323M1.56 35.162l2.577.956c-1.358.62-1.85.458-2.577-.956M10.281 23.576c.228.042-2.54-.308-2.265-.28 1.167-.783 1.151-.606 2.265.28M12.346 2.005c-1.025-1.002-.948-.354-1.15-1.452.365-.092 1.053-.099 1.415 0 .173 1.32.085 1.804-.265 1.452" fill="#231f20" fill-rule="nonzero"/><path d="M136.925 108.521c-2.683-2.44-5.05-6.809-8.413-8.253-2.27-.98-4.998-7.043-8.08-6.387-.55.126-.82-.074-.811-.602.007-1.136-.536-.696-1.388-1.341-1.556-1.177-.811-1.687-3.042-2.335.925-1.294-6.268-4.567-7.166-4.865.99-1.59-.486-1.013-1.56-1.507-1.559-.717-2.997-1.819-4.486-2.675-.885-.509-2.849-1.901-3.936-1.523-.23.08-2.533-1.226-3.227-1.525-3.422-1.487-6.942-2.582-9.955-4.796-.735-.541-.119-2.323-.299-3.097-.435-1.861-1.982-2.451-2.819-3.981-1.848-3.375-3.895-6.804-4.985-10.458-1.464-.65-1.125-2.572.403-2.641 1.362-.062 2.71-.31 4.082-.31 3.915 0 7.628-.451 11.609-.162 1.813.131 10.093 2.808 10.846 1.988 1.635 1.856 5.412 1.756 7.631 2.779 2.276 1.048 4.967 1.839 6.77 3.509v-.989c1.696.516 4.527 3.356 6.092 4.478.867.622 3.485 1.814 2.879 2.872.951.813 1.319.951 2.568 1.048-.668 1.711 3.933 4.787 4.942 5.941 1.853 2.117 3.068 3.307 4.391 5.907 2.412 4.739 5.879 9.029 7.151 14.21.278 1.121.037 2.353.591 3.422.499.963-.521 1.907.302 2.382 1.132.649.42 4.202.306 5.017-.601 4.285 2.044 10.025-1.033 13.99-1.75-2.862-6.096-9.459-9.363-10.096M26.107 116.518c-4.408.146-4.57 8.292-4.625 11.55-.029 1.706-2.652 3.882-3.261 5.624-.764 2.183-.473 4.155-1.461 6.218-1.086-1.755-3.281-1.797-5.042-2.318-1.828-.55-4.159-3.395-5.424-4.825-3.019-3.415-2.647-9.546-1.963-13.673 1.66 3.389 2.209 5.595 6.19 6.187 3.921.582 5.826-3.114 5.672-6.722-.092-2.159-3.473-5.505-5.856-4.931-2.481.599-4.62 3.861-4.437-.489.079-1.854 4.985-5.278 6.45-6.41 2.703-2.087 7.238-3.608 10.468-2.319 1.546.613 6.332 1.724 5.237 4.126-.68 1.493-.921 2.964-1.657 4.549-.701.208-1.047.681-1.037 1.416-.175 1.668-.782.645-.918 1.638.314.077 1.363.351 1.664.379M69.879 51.416c3.09 3.044 4.505 6.77 7.15 10.089 2.877 3.61.217 9.333-1.657 12.668-1.114 1.982-2.071 4-3.777 5.556-.461.42-1.625 1.807-2.334 1.683-.815-.142-.59-1.201-1.611-.7-2.552 1.253-4.179 2.309-7.138 2.146-2.326-.128-3.59-.661-5.966-.36.906-2.844 3.596-4.688 5.475-6.987 1.965-2.403 4.259-4.698 5.869-7.362 3.245-5.37 3.989-10.514 3.989-16.733M43.325 140.794c-4.816 2.146-10.546 1.73-15.792.906-3.056-.474-5.38-.324-6.771-3.427-1.014-2.267-.123-5.291 1.922-6.685 1.909-1.302 5.475-.443 7.683-.422 1.226.012 2.557.114 3.754-.218.571-.158 2.849-.378 3.2-.617 2.517-1.723 4.916 1.139 6.098 2.873 1.93 2.831.736 4.66-.094 7.59M37.593 122.63c1.438.104-.878 6.479-3.518 6.466-3.886-.026-6.819 1.874-9.38-2.327-1.855-3.043 2.331-7.1 5.08-7.903 2.72-.794 6.903 1.394 7.818 3.764M128.155 134.207c2.512 1.135 4.161 2.743 6.799 3.81-.618 1.42 3.616 4.792 3.525 6.881 2.124 2.425 4.693 4.863 5.347 8.186.768 3.904-4.431 2.479-6.468 1.372-1.292-.702-1.693-1.243-1.464-2.569.209-1.215 1.31-.764 1.509-1.408.335-1.035 1.927-.305 2.219-1.487.285-1.139-1.575-1.124-2.089-1.679-.649-.7-.89-2.306-1.771-2.743-1.239-.62-2.118-1.646-2.764-2.85-.717-1.336-.838-3.188-1.896-4.31-.942-.998-2.372-1.95-2.947-3.203M97.977 261.609c1.348-1.492-1.252-2.073-2.313-2.258-1.621-.277-.373-2.299-.403-3.256-.114-3.562 1.528-2.944 4.109-4.298.497-.26 3.591-1.188 4.04-.991 1.036.456.834 3.48.769 4.345-.236 3.149-3.027 6.31-6.202 6.458M18.759 164.611c-2.889-.918-5.708-2.113-8.23-3.812-2.027-1.365-4.875-4.725-.48-4.864 1.161-.037 6.003.572 6.561 1.793.447.994 1.934.149 2.126 1.848.184 1.639.023 3.389.023 5.035M45.588 250.707c-2.444.584-4.7.346-3.339-3.158.25-.644.183-3.393.901-3.51 2.163-.36 3.492-4.617 5.924-1.043 1.325 1.941 2.161 1.473.351 3.836-1.109 1.448-2.495 2.651-3.837 3.875M38.337 100.282c-2.672.614-6.55-1.888-7.726-4.234 2.692-.815 5.781.954 8.566.676.138-.609-.268-.768-1.216-.475.796-.408 3.623-.102 3.253 1.367-.213.85-3.649 1.138-2.877 2.666M27.55 147.535c.654-4.128 3.602-4.2 4.569.042 1.163 5.1-5.028 4.028-4.569-.042" fill="#fefefe" fill-rule="nonzero"/><path d="M79.251 69.378c1.2-.743 2.346-2.088 3.497-.761 1.267 1.459.376 1.781-.345 3.373-.771 1.706-1.847 2.285-3.512.684-.979-.939.042-2.291.36-3.296M84.265 75.125c-.513 4.022-3.704 7.213-5.399 10.852-1.009-2.676.496-3.488 1.556-5.789.514-1.115 2.421-5.481 3.843-5.063M67.218 54.729c-.481-3.002-2.059-4.187-1.315-7.186 1.008 1.283 2.854 6.137 1.315 7.186-.097-.606 0 0 0 0M62.861 43.462c1.86.216 2.314 1.969 3.245 3.497-1.271.074-3.428-2.389-3.245-3.497.399.046 0 0 0 0M67.193 54.75c.803.612.138 3.883-.771 4.216 0-1.35-.46-3.391.771-4.216M62.888 43.437c-.714-.537-4.58-2.936-4.141-3.678 1.333.798 4.014 2.01 4.141 3.678M57.763 40.078l-3.764-.979c.789-.857 4.201-.275 3.764.979M72.613 82.633l.581 1.631c-1.531.111-1.408-.565-.581-1.631M74.723 83.067l-1.685-1.164c.715-.365 2.606-.27 1.685 1.164M75.749 83.806c.078 1.041-.767 1.045-1.558.87.583-.953.651-1.591 1.558-.87.065.87 0 0 0 0M75.749 83.806c-.628-.505-.758-1.075.25-1.401.334.628.571 1.146-.25 1.401" fill="#fefefe" fill-rule="nonzero"/><path d="M62.127 133.476l.522-.2c-3.8.804-5.369-4.48-5.211-7.176.246-4.212 3.436-5.947 6.791-6.896 4.153-1.135 6.488 3.733 7.694 6.481.811 1.848-2.165 4.874-3.316 6.086-1.42 1.498-4.47 2.532-6.48 1.705m-.786-8.462a40.26 40.26 0 001.804-2.088c-2.746-.979-5.422 5.26-2.98 7.127.266-.313.241-2.543.031-3.177-.353-1.071 1.3-.844 1.145-1.862M81.011 150.08l-.987-.969c4.035-3.283 8.313-7.397 9.352-12.75.343-1.765 1.047-5.191.027-6.354-.659-.75-.07-3.753.201-4.695 2.506 1.977 2.221 10.229 1.076 13.01-1.816 4.412-4.668 10.394-9.669 11.758M76.671 211.357c1.453 1.293 1.9 1.387 3.849 1.387.865-1.334 3.317-3.855 2.618-5.321 2.505-.32-.987-3.38 3.21-2.525-.537 1.37-.762 2.701-1.173 4.103-.356 1.213-1.025 1.297-1.509 2.481-.315.773-1.134 2.363-2.226 1.556.741.561-5.046-.175-1.879.932-2.621.558-3.216-2.717-4.952-2.969.826-2.388.64-5.36.378-7.984 3.455 0 2.537 5.887 1.684 8.34M69.341 154.55c1.801-1.47 4.107-1.671 6.344-2.211-.768 2.089-4.499 2.761-6.344 2.211M85.357 202.374c2.006-5.358 2.897 1.595 0 0M89.321 125.184l-1.361-4.208c1.412.229 2.651 3.291 1.361 4.208M79.96 150.947c-5.233 2.116-1.854-1.116 0 0M86.96 203.382c-2.399 3.067-2.837-1.741 0 0" fill="#231f20" fill-rule="nonzero"/><path d="M61.341 125.014c.155 1.019-1.498.792-1.145 1.863.21.633.235 2.863-.031 3.176-2.442-1.866.235-8.105 2.98-7.127a40.26 40.26 0 01-1.804 2.088" fill="#fefefe" fill-rule="nonzero"/><defs><image id="_Image1" width="150" height="226" xlink:href="data:image/png;base64,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"/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/ladder.svg b/go.dev/_content/images/gophers/ladder.svg
new file mode 100644
index 0000000..be4d5d6
--- /dev/null
+++ b/go.dev/_content/images/gophers/ladder.svg
@@ -0,0 +1 @@
+<svg height="572" width="183" xmlns="http://www.w3.org/2000/svg"><mask id="a" fill="#fff"><path d="M0 .2h9.7V572H0z" fill-rule="evenodd"/></mask><mask id="b" fill="#fff"><path d="M.4.2h9.3V572H.4z" fill-rule="evenodd"/></mask><mask id="c" fill="#fff"><path d="M0 572h116V0H0z" fill-rule="evenodd"/></mask><mask id="d" fill="#fff"><path d="M.2.7h36.1v15H.3z" fill-rule="evenodd"/></mask><g fill="none"><g fill="#fff" opacity=".6"><path d="M9.7 572H0V.7h7.5l1.7 2.4V572z" mask="url(#a)"/><path d="M9.8 572H.3V2.6L2 .2h7.3V572z" mask="url(#b)" transform="translate(106)"/><path d="M0 373h115v-9H0zm0-82h115v-9H0zm0-164h115v-9H0zm0 82h115v-9H0zM0 46h115v-9H0zm0 408h115v-9H0zm0 82h115v-9H0z" mask="url(#c)"/></g><path d="M29.1 92.9c-3.8 17.4-3.6 35-2 52.6.5 6.6 3.4 12.5 6.4 18.2 1.4 2.5 2.1 4.4.7 7-1.4 2.5-2.3 5.4.3 7.7 2.5 2.4 5.3 1.7 8.2.4 2.7-1.2 5.5-3.4 8.6-.7 2.7-.4 2.4-2.6 2.7-4.4 0-1.1-.2-2.1-1.2-2.8-3.2-.9-5.5 1.5-8.2 2.4-1.7.5-4 2.1-5 .4-1.3-2 1.3-3.4 2.6-4.7 2-2 4.9-2.7 6.5-5 .8-2.1-.2-4-2-3.6-8.2 1.8-9.5-4.9-12.3-9.8C30 141.2 30.6 131 31 121c.3-7.7 1-15.5 2.7-23.1.6-3.1 1-6.2.8-9.4.2-5.7 3.2-10.5 4.6-15.9.6-2.2 2-4.4.2-6.7-2.2 1-2 3.2-2.8 4.7-.7 1.4-.4 3.8-2.6 3.6-2-.2-2.6-2.7-2.9-4.4l-.2-.5c-.4-1.7-4.3-3.2-3.7 1.4-.2 4.4 4 8 2.3 12.6-1.2 1.2-1.5 2.6-.5 4 1 1.8.7 3.6.3 5.5z" fill="#15293d"/><g fill="#132433"><path d="M80.6 22l-7.3.8c-4.9-.8-7 3.8-10.7 5.4-3.7 2.9-7 6.3-11.5 8.1-3.8 2.9-8.2 5.3-8.7 11.5-3.8-3.5-4.8-7.5-6-11.3-1-2.9 1.5-3.3 3.3-4.2 3.1-1.4 5.8-3.1 3.4-7.2-.5-1-3.8.3-2.2-2.9 1.4-2.7-.6-3.3-3-3.2-6.3.5-7.1 2.2-6.9 8.3.3 7.4 1 14.3 5.3 20.6 1.5 2.1 2.8 4.3 5 5.8 1.7 3.4 5 5.9 5 10.1 3.2-.1 2.9-3.3 4.7-4.4.7 0 1.2.3 1.5.9.1 2.9 1 4.8 4.3 3l2.3.2c3.7.3 3.5-1.4 1.9-3.9-2.7-3.4-5.2-7.2-9.5-9-1.8-.8-3-2.6-2-4.6 1.4-2.3 3-.6 4.2.4C57 49 61.3 49 65 50.7c1.2 0 2-.6 2.5-1.6.1-4.1 0-8.2-2.3-11.8-1.9-2.7-.8-4.4 1.5-6 3-1.9 6-3.4 9.6-4.2 2.3-.5 4.8-.8 5.7-3.6 0-.9-.3-1.6-1.4-1.4M131 152.9c1.5-11.6 2-23.5 11-32.6a83 83 0 0012.4-17.6 38.2 38.2 0 003.7-29.6c-.6-2.1-1.9-4.4 1.5-6 4-1.9 6.5-5.2 4.9-10-1.6-4.6-4.3-7.2-9.5-7-1.8.4-7.1-.8-9 0-.4.3 5.3 2.2 6 2.7 1.3 1 3 1.3 4.4 2 2.2 1.3 4.1 3 3.2 5.7-.8 2.5-3 3-5.4 2.4h-.3c-2.8.2-7.1-2.2-6.2 4 .3.6.7 1.5 1.3 1.6 6.4 1.2 6.7 6.2 7.2 11.3a36 36 0 01-6.4 24.6 184 184 0 01-11.5 14.7c-8.2 10.6-10.1 29.5-11.1 42-.1 1.4 2 .1 3-2.3l.9-6z"/><path d="M154.9 50.6c-8.1.8-11.8-6.5-17.7-9.9-3.2-1.8-6-4.4-9-6.4-2-1.2-2.3-2.4-1.6-4.6 1.6-5.2-1.9-9.5-6.8-7.3-7 3.2-13 .5-19.4-.6-6.6-1.1-13-1-19.4.3l.8 1.7c1.9 2 4.2 1.3 6.3 1 8.6-.8 16.3.8 23.7 5.7 7.8 5.2 16.9 8.4 24 14.7 2.8 2.4 5.7 4.3 6.4 8.2.4 2 1.7 2.8 3.6 2.6 2.6-.9 5.6-1 7.5-3.3-2.8-3.2 2.5-.4 1.6-2.1zm-24 101.4c-2.8.6-2.2 3.4-3.4 5.1h1.3c-1.2 4-2.4 8-4.4 11.7-8.7 11.5-19.1 19.4-34.5 18-.9-.2-5.1.2-6 .7-2.8 4.7 2.1 4.6 3.6 5.5 1.5 0 3.4.2 4.5 0 3.5-.9 10.1 5.3 12.5 2 4-1 4.3-5.2 6.6-7 4.5-3.3 8.8-7.6 11.7-12.6 1.5-5.8 5.5-5 9.7-3.7 3.3.7 5-1.6 5.7-4 .7-2.2-1-5.3-2.5-5.7-6.7-1.4-6.4-5.7-5.4-10.6"/></g><path d="M53.2 62.3c-.4-1.3.9-2.6-.2-3.8-1.2 0-1.6 1.4-2.6 2-.2-1.5.5-3-.4-4.2-2.6 1-2 3.8-3.8 6.2 2-6.1-3.1-8-6.1-9.8 1.3 2.3 1.8 4.8 0 7-2.4 2.8-3.7 6.3-5.3 9.6-.5 1.1-.4 3-1.9 3.2-2 .2-1.4-2.3-2.6-3-.8 2.6-.1 5.3 2.4 5.8 2.2.3 2.6-1.8 3.5-3.5.8-1.4-4.5 8.4-4.3 16.2 2.5-1.2 3-3.7 3.8-6 2.2-6.8 6.6-14.7 9.8-21.6-.8 5.3-.6 8.3 6 9l2.5-1.2c2.5-1.7 2.4-4 1.8-7.3-1.4-.5-1.5 1.3-2.6 1.4z" fill="#15293d"/><path d="M-.3 9.8c1.6-.5 4-1.3 5.2-2.2C14.8 0 25.5-1.5 36.3 6c-1 .8-4 0-2.5 2.3.9 1.3 3.5 1.7 2.2 3.9-1.4 2.3-3.3-1-5-.1-.5-.3-.6-.2-.7-.7 1.4-2.9-1.7-4.8-4.3-5.2a27 27 0 00-14.8 2.3c-4.6 2 .8 5-.7 7.3C6 15.2 4 10.4-.3 9.8z" fill="#132433" mask="url(#d)" transform="matrix(-1 0 0 1 73 13)"/><path d="M88 193c-.3-1.5-4.4.2-2.6-3.1-.4-1.5-1.6-2-2.8-2.4-6-1.1-11.7-3.2-17.1-6-4.8-2.1-8-6.7-13-8.5-.8 1.3 0 3.2-1.5 4.3A60.2 60.2 0 0088 193" fill="#15293d"/><path d="M170.9 85.3c1.2 1.1 2.3 2.5 3.6 3.4 2.6 1.5 5.5 2.1 7.6-.6 2-2.6.4-5-1.3-7.3-2.8-4-7.3-4-11-5.8-1.2.4-3-.7-3.3 1.2-.4 1.7.9 2.3 2.2 2.7 2.9 1 6 1.5 8.2 5-.3 5.3-5-3.7-7.6-4.3-1.4-.3-2.4-4.9-3-3-.5 1.5-.6 1.8 1.3 4.4.7 1 2.6 3 3.3 4.3" fill="#333"/><path d="M101.3 192.9c-3.1 2.6-6.2-2.3-9.3 0 3.2.4 5.4 2.1 7.2 5.2 1.6 3 4.2 6 7.9 4.5 3.5-1.5 3.2-5.4 2.4-8.7-.6-2.5.6-4 1.5-5.9-2.6 1.2-4 4.8-7.4 4.4.2 1.1 1.2 2 1 3.4-1.7-.2-2.5-1.5-3.3-3M28.4 86l2.6-2.2c.4-2.6-3.5-5.4-4-7.6-.6-2.1-1.3-3.8.5-5.7-1-2.5.4-2.9 2.5-2.1-3.5-3.2-6-3-7.9 1.1-3 7 1.3 13.5 6.7 18z" fill="#15293d"/><path d="M132.5 171.5c-7-3.3-9.6 1-9.7 4 2.3-4.5 6.1-4.8 10.2-4z" fill="#132433"/><path d="M45.7 60c-6.6 8.4-9 18.4-12.7 27.8-1.2 9.8-2.6 19.7-3.5 29.6-.8 8.9-1 17.8 1.3 26.5.6 2.3.7 4.8 2.8 6.4l.4-.3.2-.5a22 22 0 0013.9 9.4c3.6 1 6 3.8 6.9 8.4 1.6 8.7 8.6 12.8 16.3 15 4 1 8 1.9 11.8 3 15.4 5 26.3-1.5 36-12.9 5-5.7 5-12.5 6-19.1 1.5-9.5 3.3-19 5.3-28.3.6-2.6 2.8-4.3 4.4-6.4 3.2-4.4 2.9-8.9-.9-11.8-4.3-3.4-8.6-3-12.2 1.1a40 40 0 00-8.7 15.3c-1.1 4.1-5 7.7-4.8 12.6.1 3 .4 5.8.1 8.8-.2 3.7-1.5 4.4-5.4 3.6-6.4-1.3-9.7-6.3-14-10.4a3.5 3.5 0 01-.7-4.1c2.4-5.1 1.7-10.6 2-16 .3-3.6 1.4-6.7 4.7-8.9 3-2 4-5.3 4.5-8.6.6-3.7-1.3-6.1-4.7-7.2-2.3-.6-4.4 0-4.2 2.8.2 4.3-1.3 6.5-5.8 5.8-3.3-.6-6.9-5.6-5.4-8.5 4.2-8.6-4.7-12.7-6-19.3-.2-.6.2-.3-.4-.3-5.8 0-9.3-5.6-14.8-6.2-2-.6-3.5 1.2-5.5 1.2-4.2-1-8.6-2-6.9-8.5z" fill="#79d4fd"/><path d="M63.4 73.7c.5 1 1.7 1.7 2.9 1.2 5.4-2 6 2 7.2 5.5.5 1.6.8 3.8 1.9 4.5 4.2 2.7 3 4.6.8 8.4-1.9 3.2 1.3 7.5 4.4 9.7 3 2.2 6.8 2 9.9-.7 1-.9 1.1-2.2.9-3.6-.2-1.4-2.9-3.9.8-4 2.9-.2 5.2 2 5.2 4.8 0 2.9-.7 6.9-3.2 8-6.7 3.2-6.8 9-6.6 14.6a30 30 0 01-2.3 13c-.9 2.1-.5 3.3 1.6 5 4.8 4 8.6 9.3 15.4 11 4.3 1 6.7-.4 6.9-4.9 0-4.4-.7-8.7.2-13.2.5-2.5.6-4.7 3.3-5.8 1.2-.5 2.3-1.4 2-3-1.1-8.3 5.8-12.2 10.2-17.2 1.9-2.2 6.1.2 8.4 2.3 2.3 2.2 3.3 5.7.7 8-7 6.5-6.7 15.1-8.6 23.3-1.5 6.5-2.9 13-3 19.4-.4 11.5-8.9 17.8-16.1 22.7-5.3 3.7-11.7 4.9-17.5 3.7-7.8-1.6-17-4-23.2-6.5S55.7 173 55 165.6c-.6-5.2-5.3-6.4-8.6-7.5A23.6 23.6 0 0132 145.7v5.6c.4 4.2 3.6 6.9 5.8 10 1.5 2.1 3.2 1.2 4.9.6 1.9-.8 4-2 3.9 1.8.9 2.8 1.3 5.9 4.6 7.1 1 .8.8 1.8.4 2.9 3 4.2 7 7.3 11.9 9 6 2.9 12 5 18.4 6.5l3 1.2c16.8 2.9 28.3-5.1 37.4-18 4-6.8 4.8-8 5.6-12.4l.1-3.6c.6-8 1.3-14.3 3-20.7 1.2-4.8 2.8-9.7 6-14.8 3.9-5 6.6-10.5 9.2-15.4 4.8-9.6 10-19.2 6.8-30.7-.8-2.8-1.8-5.1-5.2-5.7-2.4-.4-1.8-1 .2-1.8-1.7-6.9 3.6-3.7 3.6-3.7-.4-1.3-1.9-1.5-2.2-2.9-.4-1.3 0-2.8-.7-4-.7-1.2-2-1.5-3.1-2-1.1-.3-3.5.5-2.9-1.4 1.8-5-2.8-6.2-5-8-10.6-8.7-23.2-14.4-35.3-20.7-5.2-2.8-11.3-1.1-17-1-1.7 0-3.3.2-5 .3-5.7 2.5-12.3 2.7-17 7.5-2.1 2-4.2 3.1-.9 5.8 3.3 2.8 1.8 7.5 3.5 11 .7 3.2.9 6.6 2.6 9.6 1.4.4 2.3-.5 2.4-1.5.6-3.5 3-5.4 5.5-7.3C86 39.4 99.4 37.2 108 45c11 9.7 15 20.9 6.7 33A19.2 19.2 0 0193.4 86a31.8 31.8 0 01-21.8-20c-1.6-2 .4-6-3.6-6.7-2.1.9-3 3-4.8 4.3-1.6 2.6-6.7.6-7 5 2.9 1.1 5.8 2 7.2 5.1z" fill="#79d4fd"/><path d="M46.7 163.4c-3.9 2-7.2 3.4-9.5 7.3-.6 1-1.8 2-.8 3.3.8 1.2 2.7 1.6 3.9 1.1 4-1.5 6.7-2.8 10.7-4.4-1-3.8-2.5-6.3-4.3-7.3zM24.9 77.5c.4 2.4 3 3.5 5.1 5.3 1.9-.6 2.9-3.6 2-4.8-2.3-3-3.3-4-4.7-7-5.2.9-2.8 4.4-2.4 6.5z" fill="#c9b8bc"/><path d="M62.9 28.7c.1-1.3 1.3-1.6 2.2-2.2 2.8-2 2.4-4-.5-5.3-6-2.6-12.2-4.1-18.7-2.6-3.1.7-5.4 2.1-2.7 5.6 1.9 2.8-.4 5.5 0 8.3 1.3 7.6 2 8 8.4 3.8 5-.8 7.6-5 11.3-7.6" fill="#f0f4fb"/><path d="M64.8 49.6a3.8 3.8 0 00-4.1-2.2c-2.8.4-4.5-1.1-6.4-2.5-1.9-1.3-3.6-5-6.2-1.3-2 2.7-1.4 6.4 1.7 7.5 4.7 1.7 7.3 5.2 10.5 8.3 4.4 1.5 6.4.3 6.7-4.1 0-2.2 0-4.4-2.2-5.7" fill="#c9b8bc"/><path d="M50.6 37c-2.3-.7-2.8 1.5-5.4 1.2-.4-3.8-2.3-7.5-1-11.7.3-1.3-.4-2-1.6-2.5h1c1.5 4.5-1.7 5.6-4.8 6-2.5.3-3.9.5-3.6 4.2.5 5 2.3 9 5.2 13 2 2.5 4.3 2.3 4.3.3-.2-6.3 4.5-8.7 7.7-12.2" fill="#f0f4fb"/><path d="M64.5 49c1.8 8.7 2.2 10.3-3.5 10.6 1.5 3-1.4 2.7-3 2.3 1 4.3 3.9 2.6 6.5 1.6 2.5-.3 2.7-2.1 3.5-4 .5-1.3 1-1.5.7-2.2.6-3.5-.9-7-3-9.8-.5 1 .3 2-1 2.1z" fill="#282b3a"/><path d="M65 63.7c-2-.8-5 .9-6.3-2.1L57 61c-1.7 2.4-1 6-4.1 7.6 1.7 1 3.2-.4 4.8-.5" fill="#67d3fd"/><path d="M59.5 44.4c1.4.8 3 1 3.4-.8.6-2.6-1-4.2-3.3-5-1.6-.7-4-1.2-4.5 1-.8 3.2 2.8 3.3 4.4 4.8" fill="#6b6e7f"/><path d="M50.9 57l-.2.5c-.3 2.6-3.7 6 0 7.4 2.8 1 1.8-3.9 3.3-5.6-.4-1.6-1.4-2.4-3.1-2.3" fill="#fff"/><path d="M142.7 60c-2.1 5.9-1 7.8 5.4 9.4 1.6.4 3.1 1.1 3.2 2.6.3 5.1 3.1 9.8 1 15.4-3.5 9-6.7 17.8-13.7 25-.8.8-3.6 3.8 0 6.4 4.7-4.3 7.5-9.4 11.2-14.4 7.1-9.5 7.5-20.8 5.3-31.5-1-4.9-5.6-4.3-8.3-6.5-3.9-.7.5-6.3-4.1-6.4zm9.4 3.8c4 2 8.1 1.8 9.6-2.6 1.4-4.5-2.1-6.7-6.4-7.6L153 53c-2.5.2-4.9.7-7.1 2 .3 1.4 1.7 1.7 2.8 2.2 1.4 1.8 3.8 1.2 6.4 2.6-2.8.4-5.3 0-6.8 1.7.6 1.6 2.4 1.6 3.7 2.3zm-28.6-35.3c.6-.3.7-1.1 0-1.6-2-1.5-4-.9-6.5.2 2.3 1.8 4.3 2.5 6.5 1.4z" fill="#79d4fd"/><path d="M129.2 164.1c-.7 2.8.6 3.7 2.3 4.4 1.7.7 3.3 1 4.2-1.2 1.2-2.9-1.2-2.8-2.5-3.4-1.4-.6-3-1.8-4 .2" fill="#c9b8bc"/><path d="M101.2 192.4c0 .8-.4 1.7 0 2.2a5.7 5.7 0 004.3 3.4c1 .1 1.3-1.2 1.4-2.1.4-2.6-1.2-3.4-3.2-3.9z" fill="#b5a4a8"/><path d="M83 189l-18-7a40 40 0 0018 7" fill="#67d3fd"/><path d="M70.7 66A31.6 31.6 0 0093 87.2c15.1 4.5 31.5-11 27.2-27-4.8-18-21.2-26.7-39.2-17.5A14 14 0 0076 48c-3.7 3.1-5.5 9.1-5.3 18z" fill="#132433"/><path d="M91.8 131.7c-2.9 1.4-1.6 4-.8 5.6 2 4.6 5.4 8.1 10.5 9.5 3.5 1 6.3-1.4 5.3-5-1.3-4.2-3.3-8.2-5-12.4-4.1-1.4-3.7 1.3-3.3 3.6.3 2.5 2.5 4.5 2.2 7.6-4.7-1.5-4.7-7.3-8.9-9" fill="#19364e"/><path d="M92 131.6c2.4 3.6 3.6 6.4 7 9.2 1.1.8 2.1 1.8 3.4.7 1-1 .5-2.2.1-3.2-.9-2.6-2.7-7-3.4-8.3-.2-.7-.3-.7-1-.7-.8 0-2.9.8-6.1 2.3z" fill="#c9b8bc"/><path d="M148.3 61.6h3.2c2.4-.2 6.2 1.9 6.5-1.8.2-2.6-3.9-3.4-6.5-3.8-1 0-1.9.2-2.8.4-1 1.6-.7 3.4-.4 5.2" fill="#132433"/><path d="M70.7 66A27.5 27.5 0 0176 48c-4.7 1.5-4.8 6.3-7.3 9.3l-.7 2.1c3.2 1.3.3 5 2.7 6.6" fill="#79d4fd"/><path d="M76.5 54.6c-5 13.8 2.8 22.7 15.7 29 9.5 4.5 21.4-2.2 25.1-12.8 3-8.7-5-24.3-14.2-27.6-10.4-3.8-23.1 1.7-26.6 11.4" fill="#f9fafa"/><path d="M84.4 54.8c-.8 3.1-.8 6.6 3.4 8.5 4 1.8 8.4 0 9.9-4 1.2-3.5-1.2-9-4.5-10-3.2-1-7.2 1.2-8.8 5.5" fill="#0e0c16"/></g></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/machine-colorized.svg b/go.dev/_content/images/gophers/machine-colorized.svg
new file mode 100644
index 0000000..cb8b983
--- /dev/null
+++ b/go.dev/_content/images/gophers/machine-colorized.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1196 796" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;"><path d="M933.112,266.472c-32.187,2.527 -66.271,6.794 -82.462,39.084c-17.26,34.415 -22.896,68.83 -30.263,106.528c-3.194,16.344 -9.994,30.567 -16.495,45.945c-2.651,6.28 -8.605,41.673 5.275,26.531c15.145,-16.519 18.188,-25.804 24.394,-47.588c4.941,-17.353 7.453,-32.693 9.288,-50.698c6.72,19.383 10.009,27.208 25.065,40.984c8.83,8.079 29.205,16.658 41.061,16.658c20.088,0 34.666,-1.454 54.007,-6.667c17.287,-4.654 25.735,-14.521 36.645,-27.641c23.94,-28.792 23.254,-58.517 12.471,-93.478c-9.965,-32.32 -49.22,-44.64 -78.986,-49.658" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M502.64,331.484c1.176,-21.531 2.08,-42.606 5.517,-63.877c2.509,-15.514 3.298,-50.434 16.102,-60.812c37.766,-30.612 82.837,-34.377 123.345,-4.992c9.291,6.741 12.462,18.594 17.4,28.81c3.912,8.091 11.501,17.275 12.258,26.108c1.784,20.886 9.063,47.547 2.299,67.405c-1.72,5.053 -49.176,2.858 -54.817,3.056c-31.758,1.119 -63.519,2.237 -95.281,3.356c-8.942,0.317 -17.881,0.633 -26.823,0.946" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M446.494,337.394c0.892,-27.275 -0.86,-55.978 2.76,-83.008c1.805,-13.513 0.809,-32.021 5.963,-44.565c5.792,-14.108 21.005,-21.632 29.678,-6.883c12.851,21.859 5.331,63.085 4.92,86.637c-0.109,6.271 3.777,36.658 -0.721,41.206c-5.904,5.966 -33.809,5.248 -42.6,6.613" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M514.11,618.389c-19.501,13.345 -38.999,26.687 -58.496,40.033c-0.21,0.141 30.257,50.67 34.072,57.369c10.31,18.097 25.925,29.392 42.763,40.281c18.638,12.054 37.033,30.293 60.115,29.902c22.172,-0.375 45.396,-16.093 65.538,-24.884c3.957,-1.726 21.66,9.054 25.502,10.709c13.014,5.603 26.034,11.206 39.048,16.811c4.628,1.989 19.315,8.443 23.614,6.546c10.178,-4.483 20.269,-9.249 30.648,-13.26c23.132,-8.939 42.952,-20.141 64.488,-32.591c6.283,-3.632 45.172,-21.327 22.669,-29.244c-23.833,-8.383 -47.672,-16.77 -71.504,-25.15c-14.918,-5.248 -29.873,-9.988 -44.959,-14.734c-9.947,-3.127 -19.87,-6.912 -30.089,-9.049c-10.458,-2.192 -15.265,3.464 -24.964,7.397c-6.427,2.603 -52.955,25.307 -55.78,22.148c-14.908,-16.666 -29.232,-31.897 -40.686,-51.055c-10.478,-17.517 -21.04,-34.988 -31.569,-52.476c-3.67,-6.096 -42.644,17.444 -50.41,21.247" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M679.945,322.619c1.282,-25.978 2.565,-51.953 3.85,-77.931c0.378,-7.704 -3.785,-64.084 14.87,-60.408c3.694,0.727 16.865,1.046 19.264,3.791c2.556,2.929 1.135,16.974 1.398,20.866c0.597,8.939 0.972,17.872 1.345,26.826c1.199,28.8 2.399,57.604 3.599,86.404c-14.775,0.15 -29.551,0.301 -44.326,0.452" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M562.358,3.832c-2.82,41.372 -5.636,82.743 -8.452,124.114c-7.063,-16.971 -14.128,-33.939 -21.191,-50.913c-3.481,-8.369 -9.075,13.927 -9.56,15.706c-2.331,8.587 -4.341,17.275 -6.51,25.904c-6.084,-4.237 -28.401,-6.338 -18.259,5.361c-20.715,5.36 -14.084,8.02 -15.165,26.046c-0.816,13.587 -9.067,29.471 -13.086,42.544c8.963,-0.621 10.778,1.197 13.044,-7.308c2.784,-10.461 5.573,-20.922 8.36,-31.38c1.596,-5.993 7.015,-4.58 10.361,-10.68c1.66,-3.026 -1.977,-7.452 1.35,-9.722c4.051,-2.763 4.678,-5.097 0.83,-9.619c6.844,1.726 14.306,7.205 16.83,-0.416c3.034,-9.167 6.069,-18.336 9.104,-27.506c9.974,19.509 19.947,39.019 29.92,58.525c3.142,-43.431 6.28,-86.867 9.418,-130.298c11.602,30.597 23.203,61.197 34.805,91.797c6.469,-20.704 12.943,-41.404 19.412,-62.104c6.383,34.592 12.76,69.184 19.14,103.776c11.856,-23.44 23.706,-46.879 35.561,-70.319c2.14,9.309 8.171,22.568 7.353,31.995c-0.491,5.667 -4.755,5.981 -2.775,11.971c1.802,5.452 5.677,8.377 9.725,12.482c5.473,5.541 4.273,26.604 5.245,34.178c1.989,15.464 1.776,13.272 17.589,11.992c-12.349,-12.704 -11.516,-31.279 -14.415,-48.487c-1.717,-10.162 8.644,-12.396 -0.836,-20.221c-1.404,-1.162 -8.011,0.076 -8.428,-1.779c-0.857,-3.821 -1.714,-7.639 -2.571,-11.457c-2.42,-10.772 -4.235,-47.542 -15.943,-25.766c-9.689,18.02 -19.379,36.041 -29.069,54.064c-4.625,-31.942 -9.249,-63.883 -13.874,-95.822c-1.817,-12.556 -6.814,-13.029 -10.972,-0.807c-5.523,16.236 -11.043,32.471 -16.566,48.703c-10.594,-28.159 -17.409,-65.192 -37.524,-87.872c-0.948,1.105 -1.9,2.213 -2.851,3.318" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M470.134,192.595c4.315,-14.036 8.632,-28.073 12.946,-42.109c1.505,-4.891 -3.383,-11.044 -1.622,-16.014c3.189,-9.001 7.692,-8.076 16.918,-10.473c-10.121,-11.708 12.193,-9.589 18.268,-5.36c2.172,-8.629 4.185,-17.317 6.513,-25.904c0.482,-1.779 6.064,-24.076 9.545,-15.707c7.066,16.974 14.128,33.951 21.194,50.925c1.501,-22.033 2.999,-44.069 4.501,-66.105c0.975,-14.323 1.95,-28.644 2.925,-42.97c0.405,-5.937 -1.008,-14.098 3.889,-18.363c20.106,22.684 26.924,59.711 37.521,87.867c5.195,-15.281 10.39,-30.562 15.588,-45.839c3.227,-9.498 9.456,-19.22 11.616,-4.288c4.734,32.689 9.468,65.375 14.202,98.064c9.205,-17.122 18.413,-34.243 27.618,-51.362c12.793,-23.783 13.242,4.545 16.611,19.545c2.225,9.902 0.387,14.878 10.487,16.539c11.708,1.927 2.5,13.254 2.06,19.965c-1.022,15.502 3.818,37.987 14.492,48.951c-15.819,1.294 -15.609,3.49 -17.595,-11.983c-0.969,-7.571 0.234,-28.653 -5.239,-34.191c-4.052,-4.101 -7.929,-7.024 -9.731,-12.479c-1.971,-5.984 2.284,-6.312 2.772,-11.974c0.812,-9.432 -5.204,-22.68 -7.341,-31.994c-11.859,23.439 -23.714,46.882 -35.573,70.322c-6.38,-34.596 -12.757,-69.191 -19.137,-103.786c-6.469,20.707 -12.937,41.413 -19.403,62.119c-11.608,-30.6 -23.212,-61.2 -34.817,-91.8c-3.138,43.434 -6.279,86.871 -9.418,130.305c-9.973,-19.513 -19.946,-39.025 -29.92,-58.538c-2.713,8.213 -5.428,16.422 -8.144,24.637c-3.505,10.597 -7.346,5.928 -17.778,3.298c5.677,6.672 -2.192,10.115 -2.192,17.967c0,7.568 -8.597,5.473 -9.802,9.994c-2.69,10.091 -5.379,20.18 -8.068,30.275c-2.857,10.718 -2.597,9.683 -13.886,10.466Z" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M405.123,383.052c-11.667,-2.618 -23.334,-5.236 -35,-7.855c-15.905,-3.572 -12.518,-6.504 -13.712,-23.108c-1.256,-17.444 -15.204,-44.069 -29.105,-54.622c-9.852,-7.482 -17.745,-10.748 -29.476,-15.047c-13.216,-4.844 -20.902,-2.482 -35.077,-0.059c-20.774,3.546 -40.532,9.648 -55.059,25.508c-15.6,17.03 -15.423,40.623 -14.356,62.642c0.783,16.17 16.67,42.092 32.172,47.29c10.55,3.54 19.249,9.338 29.456,13.082c12.902,4.731 23.425,3.552 37.24,3.023c24.938,-0.955 38.59,-19.465 54.303,-35.742c1.852,-1.921 6.879,-11.111 8.433,-10.541c8.889,3.266 17.778,6.531 26.667,9.797c4.199,1.542 11.303,4.219 15.576,3.162c9.595,-2.373 7.273,-8.724 7.938,-17.53" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M224.863,411.271c4.078,19.832 13.85,44.193 13.227,64.332c-0.34,10.919 -6.516,23.919 -9.392,34.477c-2.228,8.18 12.69,14.657 18.815,19.394c7.255,-24.633 9.856,-42.272 9.856,-67.931c0,-10.541 -4.217,-21.927 -6.398,-32.225c-1.179,-5.565 -21.058,-14.657 -26.108,-18.047" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M63.157,423.53c-7.491,4.125 -14.982,8.248 -22.473,12.373c-8.954,4.926 -8.064,5.248 -14.551,-3.39c-1.315,-1.749 -2.955,-6.013 -5.221,-4.701c-2.069,1.197 -10.299,4.347 -10.045,6.82c0.692,6.744 4.253,18.47 0.807,24.474c-18.945,32.997 1.868,59.592 4.317,93.434c1.179,16.294 1.661,32.367 1.555,48.717c-0.13,20.08 8.055,27.958 21.885,42.033c4.17,4.247 11.871,8.136 17.657,9.785c4.063,1.155 23.401,3.138 26.04,5.721c3.948,3.868 -0.692,17.077 8.883,17.077c9.228,0 12.411,-4.406 10.023,-14.034c12.382,3.632 29.696,-6.764 40.559,-12.458c13.909,-7.29 22.458,-18.28 29.846,-32.305c5.166,-9.796 6.9,-11.487 4.232,-21.933c-1.761,-6.885 -2.323,-9.763 -1.111,-16.53c3.36,-18.798 6.722,-37.595 10.082,-56.395c2.243,-12.536 -7.071,-33.67 -9.754,-46.215c-2.004,-9.364 -10.665,-29.462 -18.724,-34.29c-17.186,-10.293 -28.886,-15.136 -48.357,-19.699c-16.25,-3.809 -28.998,-0.969 -45.65,1.516" style="fill:#d7bad8;fill-rule:nonzero;"/><path d="M89.076,455.713c-7.29,10.939 -9.027,13.309 -8.088,26.149c1.135,15.517 2.288,17.739 12.982,29.161c13.191,14.084 37.905,11.146 49.258,-2.317c16.002,-18.98 9.891,-36.758 -3.847,-54.317c-14.061,-17.973 -34.947,-7.527 -50.305,1.324" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M488.351,650.502c-2.474,-0.927 -8.854,-12.272 -7.479,-13.235c-2.072,1.451 -7.424,6.634 -11.112,9.025c-16.38,10.629 -8.182,20.732 -0.168,34.234c16.454,27.719 -29.438,35.44 -49.125,36.711c-24.326,1.563 -62.831,0.426 -80.662,-19.122c-8.709,-9.545 -12.137,-22.264 -13.295,-34.844c-0.488,-5.298 -2.665,-14.267 0.068,-19.296c2.184,-2.066 4.707,-3.567 7.577,-4.504c1.513,-2.388 2.819,-4.882 3.921,-7.485c-2.677,4.436 -21.853,18.363 -16.853,4.725c5.89,-16.01 3.688,-24.406 0.586,-41.182c-0.784,-4.234 -3.479,-47.479 3.959,-40.549c9.714,9.075 19.693,7.842 31.555,10.446c-17.494,-0.913 -35.5,-6.451 -38.798,-26.067c-3.424,-20.408 8.23,-37.828 27.427,-44.979c13.306,-4.959 40.313,2.981 45.487,17.742c6.15,17.55 -2.071,37.852 -16.782,48.085c31.014,-21.666 23.236,-70.694 -19.37,-67.665c-4.362,0.31 -12.967,5.378 -17.025,3.75c-11.332,-4.551 6.729,-11.212 8.062,-11.865c21.288,-10.434 39.713,-13.921 64.093,-13.463c22.771,0.431 44.834,3.768 65.933,12.639c8.65,3.634 17.645,7.65 20.884,17.24c2.048,6.025 -2.152,5.735 -6.099,2.296c-9.507,-10.695 -36.307,-9.14 -46.496,-0.55c-18.035,15.21 -15.26,35.142 -2.55,52.057c-14.149,-12.376 -13.605,-34.746 -1.365,-48.215c9.79,-10.778 40.026,-16.531 50.366,-3.325c35.674,18.567 4.055,69.775 -30.248,61.28c12.692,4.435 23.422,-0.464 34.755,-5.724c12.379,-5.778 4.474,24.68 3.649,29.657c-2.192,13.221 -11.288,25.632 -7.231,38.88c1.005,3.286 4.87,36.253 -3.664,23.303" style="fill:#98d2dd;fill-rule:nonzero;"/><path d="M332.717,498.645c-9.852,11.531 -25.124,38.513 -8.197,50.786c13.809,10.006 37.81,24.562 53.342,7.946c12.624,-13.502 24.672,-34.882 8.641,-51.445c-16.318,-16.856 -33.611,-14.196 -53.786,-7.287" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M445.535,498.645c-9.852,11.531 -25.124,38.513 -8.197,50.786c13.803,10.003 41.967,24.687 57.493,8.064c12.621,-13.51 20.509,-34.994 4.493,-51.563c-16.306,-16.865 -33.623,-14.193 -53.789,-7.287" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M205.852,609.481c3.251,17.848 11.413,39.527 0.86,56.453c-12.6,20.219 -33.478,21.505 -55.842,21.076c-20.783,-0.399 -40.041,2.237 -60.564,5.768c-10.772,1.85 -21.333,3.919 -31.59,7.899c-9.264,3.6 -18.52,11.785 -28.729,11.983c8.165,6.091 18.348,17.651 29.208,13.384c13.277,-5.21 26.551,-10.367 39.92,-15.337c11.297,-4.199 24.09,-3.153 35.88,-2.663c14.04,0.583 26.785,-1.844 40.715,-4.075c24.182,-3.883 50.742,-16.64 57.893,-42.151c3.567,-12.719 1.165,-24.861 -1.69,-37.388c-0.721,-3.17 -2.006,-15.124 -4.45,-16.864c-3.085,-2.202 -17.521,1.551 -21.611,1.915" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M839.669,323.6c0,0.145 0.207,0.396 0,0c0,0.053 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M491.828,502.648c0.269,-0.139 0.314,-0.178 0,0c0.086,-0.045 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M526.321,750.386c-0.21,-0.065 -0.378,0.128 0,0c-0.062,-0.02 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M837.13,325.548c-3.094,18.977 -13.671,18.02 -28.875,23.59c-4.674,1.714 -16.589,10.733 -20.41,3.706c-3.617,-6.664 -8.771,-12.334 -15.048,-16.584c-13.463,-9.11 -30.227,-5.851 -43.436,-13.348c-5.893,-3.342 -5.036,-40.251 -4.072,-46.82c-0.819,9.799 4.967,45.86 -9.53,46.111c-6.629,0.112 -9.211,-0.34 -11.301,-6.998c-2.408,-7.692 10,-11.528 4.507,-19.294c0.75,6.481 -15.458,23.425 -16.543,14.584c-3.658,10.789 5.219,2.184 7.914,3.138c0.431,1.829 0.863,3.661 1.291,5.494c-1.037,3.543 -10.712,1.48 -12.896,0.602c-8.782,-3.531 1.339,-13.785 -4.205,-17.352c-4.22,-2.739 2.06,-14.71 2.09,-19.382c0.079,-11.959 0.029,-23.922 0.029,-35.881c-4.031,-0.145 -2.373,37.098 -3.094,42.772c-1.87,-13.901 0.482,-43.112 -10.883,-53.478c-4.25,5.426 4.19,34.3 4.725,41.921c0.594,8.416 6.33,33.566 -3.071,39.246c-8.439,5.104 -22.81,0.887 -32.106,1.924c-11.983,1.339 -31.073,4.719 -42.069,0.422c-2.258,-0.88 -3.57,3.523 -6.936,2.43c-5.567,-1.812 -8.342,-2.997 -14.376,-2.199c-18.109,2.397 -36.35,2.252 -54.5,4.702c-19.723,2.662 -19.235,-0.175 -19.359,-20.376c-0.083,-16.793 1.276,-34.341 3.147,-50.99c-4.279,15 -5.366,30.671 -7.766,46.023c-4.338,-12.426 -10.275,-25.121 -8.484,-38.644c-4.563,11.575 -2.698,24.081 -2.816,36.179c-0.065,6.649 2.704,22.887 -1.921,28.399c-3.632,4.323 -24.634,5.756 -30.488,6.843c-7.972,1.484 -9.459,1.129 -10.428,-7.118c-1.676,0.801 -2.373,2.118 -2.095,3.957c-1.758,7.635 -4.604,5.162 -10.538,6.702c-8.927,2.316 -21.56,6.749 -28.307,13.135c-6.078,5.756 -12.284,15.582 -15.029,23.481c-3.67,10.591 -17.899,-1.102 -19.418,4.377c8.771,0.718 26.989,4.048 31.699,12.325c7.784,13.555 -25.762,4.74 -29.415,5.31c16.708,3.396 3.656,43.635 2.952,55.343c-0.413,6.853 1.629,19.179 -6.604,22.24c-12.219,4.572 -15.872,8.655 -27.273,4.888c-7.021,-2.323 -17.399,-3.478 -21.977,3.762c-7.819,12.358 8.774,9.471 8.313,17.322c-0.437,7.414 -8.106,18.1 -10.148,25.869c-1.811,6.915 -4.211,33.596 -1.052,39.651c3.585,-1.761 0.517,-5.821 3.094,-8.25c0,20.868 2.757,39.929 4.303,60.661c0.697,9.392 -7.329,18.346 -5.452,26.83c1.214,2.219 3.103,3.643 5.665,4.273c1.711,2.42 0.455,10.484 0.582,12.801c0.544,10.077 2.721,20.109 7.328,29.143c6.073,11.909 0.621,10.281 -0.845,22.004c-0.567,4.53 0.907,16.474 9.019,12.443c4.3,-2.133 9.51,0.621 13.121,-3.909c-4.397,-1.859 -2.119,-9.879 2.116,-9.714c3.144,0.952 5.975,2.5 8.498,4.64c5.783,2.727 11.688,1.472 17.772,1.294c23.475,-0.682 44.533,3.697 68.062,-2.198c16.699,-4.182 15.898,12.656 33.294,11.049c16.759,-1.543 26.109,20.458 42.255,25.709c-0.467,-4.261 -21.46,-16.871 -25.461,-22.612c-3.327,-4.776 -23.626,-31.091 -19.078,-35.922c1.141,1.613 2.53,2.975 4.167,4.09c-3.174,-15.754 -18.422,-26.54 -21.894,-41.46c-1.085,-4.666 8.894,-9.406 11.755,-11.079c10.375,-6.072 4.202,2.997 11.445,3.691c-2.142,-5.827 -3.478,-11.841 -6.684,-17.249c0.221,10.127 -5.689,11.906 -13.322,17.657c-13.366,10.068 -7.001,17.565 0.133,29.388c8.138,13.499 10.517,17.16 -3.774,26.888c-11.315,7.698 -26.542,9.38 -39.802,10.656c-22.429,2.161 -57.219,1.407 -75.983,-13.105c-9.675,-7.483 -14.93,-19.687 -17.35,-31.386c-1.593,-7.689 -1.888,-15.55 -2.281,-23.363c-0.26,-5.369 6.282,-4.326 6.909,-6.283c-0.898,1.221 -0.695,2.229 0.615,3.021c2.633,-6.097 5.815,-11.735 6.672,-18.446c-5.762,6.578 -9.941,15.485 -19.574,16.882c1.049,-5.487 2.485,-11.081 5.555,-15.833c5.254,-8.174 -1.052,-13.443 -2.186,-21.67c-2.332,-16.888 -6.827,-33.318 -2.37,-50.328c6.507,4.471 33.655,20.361 40.836,9.616c-46.164,9.418 -58.422,-47.751 -19.628,-66.746c10.576,-5.18 42.929,-0.133 46.138,14.527c5.585,25.399 -5.668,34.297 -21.058,51.064c7.68,3.543 18.942,-11.655 22.116,-16.912c6.049,-10.015 9.039,-21.436 3.726,-32.335c-5.281,-10.827 -15.954,-18.557 -27.589,-21.326c-5.96,-1.416 -26.3,5.112 -28.563,3.8c-8.251,-4.773 5.874,-8.212 8.079,-9.057c6.259,-2.4 8.859,-9.436 16.229,-10.526c13.239,-1.951 26.516,-3.975 39.92,-4.27c30.278,-0.668 81.575,2.036 95.275,33.285c-1.974,-1.935 -4.323,-2.727 -7.051,-2.375c1.188,5.1 8.729,10.401 10.969,15.815c4.882,11.794 2.435,20.325 -3.032,31.188c-8.661,17.228 -27.101,12.255 -41.867,13.523c15.148,5.357 24.941,4.018 39.793,-3.236c9.681,-4.607 2.453,18.847 1.652,24.796c-1.699,12.63 -11.209,26.477 -8.579,38.832c1.62,7.616 5.178,15.305 4.968,23.207c-0.163,7.237 -2.146,3.49 -6.176,3.023c-0.529,3.321 3.206,4.669 5.724,3.336c5.487,-2.905 1.35,-11.049 0.679,-15.233c-1.022,-6.401 31.235,-22.494 37.305,-26.351c10.783,-6.862 26.785,-22.396 34.27,-8.182c3.966,7.532 9.01,14.406 13.487,21.628c2.24,3.617 12.598,15.919 12.84,16.631c-2.689,-6.218 -5.245,-8.537 3.366,-8.209c14.468,0.543 28.898,-0.893 43.342,-1.333c25.558,-0.78 51.746,-1.779 77.302,-3.93c7.456,-0.63 18.301,-3.588 25.668,-0.78c7.417,2.825 6.773,14.157 13.386,18.622c8.404,5.674 17.731,2.072 26.794,0.686c10.13,-1.545 23.768,1.448 32.127,-5.801c-6.128,0.683 -23.25,2.364 -28.457,-1.285c-3.516,-2.468 -9.772,-13.786 -3.626,-16.454c5.958,-2.589 16.091,-0.854 18.224,-8.862c3.195,-11.965 0.683,-24.74 -0.65,-36.838c-2.429,-21.927 1.534,-43.895 1.486,-65.529c-0.017,-8.28 -0.487,-17.893 6.079,-24.046c6.995,-6.563 16.087,-15.168 16.554,-25.537c-2.644,5.168 -18.451,31.208 -24.279,19.332c-3.439,-7.007 5.766,-21.082 3.612,-24.081c-4.409,-5.878 -4.864,-0.541 -5.801,-12.231c-0.975,-12.122 -1.968,-24.291 -1.295,-36.46c1.032,-18.458 -10.002,-34.761 10.083,-43.41c2.929,-1.262 16.918,-7.867 19.702,-5.053c2.523,2.55 -3.449,24.899 -4.046,28.992c-1.666,11.409 -3.912,22.914 -6.864,34.06c-1.342,5.056 -11.463,22.686 -7.057,27.08c11.176,-18.268 12.902,-42.671 15.872,-63.318c1.504,-10.458 3.646,-20.771 5.93,-31.082c2.084,-9.408 8.579,-22.827 8.109,-32.346c-1.407,-0.159 -2.249,0.441 -2.526,1.794m-367.6,346.704c-2.353,-4.072 -6.502,-6.95 -6.756,-12.08c1.989,3.555 6.868,16.546 12.882,15.118c-4.693,3.275 1.019,5.435 0.862,8.922c-2.494,-3.889 -4.822,-7.879 -6.988,-11.96m27.701,-345.569c-12.291,-6.035 -4.992,-23.292 -4.98,-35.727c5.222,5.012 4.649,35.564 4.98,35.727" style="fill:#020303;fill-rule:nonzero;"/><path d="M860.767,290.456c0.964,-0.975 -0.08,0.122 0,0c0.136,-0.136 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1188.16,308.174c23.851,-15.816 -20.47,-19.344 -22.331,-22.636c-9.495,-16.853 -30.597,-19.991 -44.646,-31.096c-1.997,-1.578 -13.327,-4.699 -11.223,-7.16c3.827,-4.48 1.105,-9.321 -4.737,-3.78c-8.546,8.103 1.64,7.299 -13.345,5.245c-9.501,-1.303 -17.902,3.786 -26.682,-1.926c-7.476,-4.865 -17.467,-5.426 -25.647,-2.01c-4.468,1.865 -19.716,3.709 -21.903,6.673c-6.471,8.77 3.422,8.862 3.685,16.912c0.198,6.241 4.329,24.264 1.578,29.027c-6.397,11.1 -5.948,17.181 -15.363,5.364c-6.407,-8.035 -15.408,-15.999 -23.718,-22.039c-14.636,-10.647 -43.64,-21.785 -61.835,-17.338c1.029,0.461 1.995,1.029 2.905,1.7c-24.834,2.074 -43.954,5.78 -63.714,24.964c14.025,-3.454 25.836,-15.712 40.603,-20.021c-3.399,3.91 -39.084,27.066 -33.31,32.53c-0.81,-0.766 17.893,-16.735 19.746,-18.165c8.912,-6.865 18.927,-11.696 30.422,-11.383c-3.354,-1.306 -6.782,-1.578 -10.283,-0.81c6.09,-6.858 10.679,-0.038 17.452,-0.597c10.636,-0.883 21.407,-1.838 31.903,0.751c24.247,5.984 40.331,20.742 50.585,42.281c9.726,20.506 12.686,43.271 7.917,65.878c-2.086,9.885 -6.209,19.787 -12.456,27.783c-4.092,5.243 -21.436,14.681 -21.666,20.982c8.038,-1.135 13.203,-7.66 18.67,-12.911c1.445,15.269 5.957,30.115 13.528,43.472c2.533,4.468 12.524,14.164 7.55,19.722c-4.923,5.508 -17.485,5.736 -24.101,8.422c-5.056,2.051 -11.052,5.044 -12.775,10.774c-1.844,6.138 3.726,10.113 1.031,16.082c-4.024,8.918 -8.696,32.813 -21.468,32.092c10.014,1.022 -10.062,33.454 -12.636,40.224c-2.24,5.881 -10.299,10.914 -5.065,17.719c5.292,6.906 16.838,-0.789 23.995,-1.398c-9.521,-0.295 -5.36,-14.509 -0.895,-19.054c4.113,-4.184 26.27,19.681 31.264,22.098c11.617,5.618 2.175,20.86 1.286,30.059c-1.844,19.031 13.481,12.846 27.163,11.407c-0.133,-1.995 -7.03,-0.972 -8.957,-0.931c7.104,-1.489 18.508,-101.596 24.767,-99.314c5.1,1.858 -8.443,40.313 -4.616,46.681c5.047,8.404 13.07,-1.395 15.103,-5.839c3.478,-7.604 5.887,-9.058 14.285,-3.121c12.852,9.126 36.746,14.022 45.993,26.658c4.471,6.108 6.885,14.016 11.256,20.425c5.898,8.656 8.874,-2.387 14.149,-0.316c-9.35,-3.968 -9.584,-37.198 -12.799,-45.393c-2.674,-6.817 -26.114,-44.018 -12.872,-43.357c-4.583,-3.555 -6.986,1.029 -9.976,-5.936c-2.45,-5.71 -1.587,-13.077 3.191,-17.367c8.333,-7.512 -14.761,-15.039 -17.716,-19.061c12.728,-0.561 24.347,-1.158 36.856,-4.01c6.59,-1.504 13.029,-3.779 18.283,-8.197c4.607,-3.871 5.553,1.93 9.046,3.936c7.349,4.226 18.705,1.593 11.536,-6.959c-11.229,-13.431 -3.635,-14.14 -4.589,-30.662c-1.646,-28.478 -0.703,-52.385 14.22,-77.299c6.628,-11.064 13.717,-24.019 15.26,-37.012c0.996,-8.372 -10.674,-28.263 -3.904,-32.763m-172.745,277.446c-0.984,2.828 -2.145,5.585 -3.484,8.266c-12.334,-11.25 -37.686,-17.394 -29.914,-36.496c5.381,-13.23 10.585,-2.981 18.661,3.609c9.279,7.576 18.567,11.202 14.737,24.621" style="fill:#020303;fill-rule:nonzero;"/><path d="M46.277,645.825c11.764,5.478 25.709,11.572 38.992,9.542c1.099,5.254 0.996,22.916 11.681,17.458c8.576,-4.341 -2.192,-14.172 3.558,-16.111c8.056,-2.719 17.565,0.7 26.623,-3.029c11.799,-4.852 23.516,-11.664 32.331,-21.008c6.457,-6.846 11.173,-15.215 13.747,-24.261c1.324,-4.66 -2.387,-22.674 -9.775,-22.068c-25.446,2.098 -51.67,16.465 -77.388,13.472c7.811,-2.411 16.383,-1.345 23.88,-4.932c-7.574,-6.611 -18.688,-4.208 -26.932,-0.432c0.777,-4.19 3.918,-4.94 7.588,-6.708c7.737,-2.597 -1.838,-9.385 0.559,-14.908c-0.771,-0.157 26.551,26.501 21.924,11.043c-6.481,-21.542 3.619,-3.871 13.939,-5.611c8.227,-1.386 16.176,-3.736 24.287,-5.612c13.854,-3.206 10.062,-6.75 11.703,-19.77c1.761,-14.004 19.822,-31.92 8.489,-44.414c7.542,-11.168 6.815,6.722 11.428,5.868c3.253,-0.591 -1.283,-20.602 7.325,-14.657c-12.216,26.684 37.415,6.351 37.382,7.497c0.337,-12.376 7.757,-21.374 6.091,-34.583c-1.797,-14.229 -4.699,-28.431 -8.109,-42.349c-5.308,-21.717 -29.043,-29.034 -30.975,-53.721c6.028,14.129 12.603,27.958 25.774,36.818c-6.711,-15.222 -24.48,-44.288 -16.513,-61.227c4.456,42.418 27.467,74.9 70.892,82.825c-8.109,0.636 -15.818,-1.941 -23.51,-4.054c-1.93,7.993 3.818,17.819 5,25.703c1.285,8.576 1.649,17.571 2.169,26.232c0.227,3.78 -5.201,38.003 -8.907,36.626c0.301,0.109 5.91,-49.064 5.313,-55.29c-0.957,-9.976 -2.961,-20.662 -6.761,-29.979c-4.291,-10.517 -16.903,-9.542 -22.021,-18.883c4.654,14.631 6.811,31.067 9.152,46.217c1.377,8.916 2.411,18.006 1.037,26.995c-0.656,4.282 -8.667,19.403 -6.75,22.739c1.992,3.461 10.006,5.192 13.263,7.03c7.181,4.052 11.093,11.369 14.852,18.411c7.249,13.584 1.817,26.069 19.489,26.069c-4.554,5.733 -13.135,-0.319 -13.502,10.919c-0.363,11.23 -3.602,20.042 -12.816,27.175c-6.105,4.725 -18.422,5.508 -16.968,14.932c2.21,14.329 5.455,28.984 2.591,43.475c-5.771,29.241 -27.786,39.14 -53.767,44.906c-13.407,2.972 -28.472,5.345 -42.228,4.477c-5.414,-0.346 -25.636,1.592 -29.477,-2.143c6.732,-3.265 14.684,-0.901 22.13,-0.91c13.464,-0.015 26.806,-2.015 40.142,-3.635c19.643,-2.393 43.431,-12.337 53.452,-30.307c6.114,-10.969 8.965,-20.895 6.297,-33.324c-1.158,-5.405 -2.881,-25.71 -9.973,-26.673c-22.941,-3.118 -2.861,28.83 -9.584,40.928c-4.645,-3.458 -4.651,-19.56 -6.025,-26.475c-3.28,-16.489 -11.572,-10.91 -22.202,-21.049c-7.766,-7.358 -37.396,52.172 -18.974,49.247c-3.632,4.784 -14.542,8.658 -20.384,7.192c-4.705,-1.194 -1.333,-7.494 -6.463,-8.688c-4.669,-1.084 -13.227,5.308 -17.66,6.578c-12.937,3.7 -15.047,-1.66 -19.397,9.666c-0.304,0.789 10.544,6.54 11.948,5.934c-4.867,4.232 -10.178,0.118 -15.872,1.25c-9.312,1.859 -13.712,-5.337 -14.849,-13.501c-1.667,-11.756 -33.499,-3.833 -37.246,-16.912" style="fill:#020303;fill-rule:nonzero;"/><use xlink:href="#_Image1" x="571.802" y="683.422" width="302px" height="111px"/><path d="M867.309,304.65c2.89,3.26 -13.88,35.145 -14.743,42.234c-2.503,20.588 6.017,42.024 17.825,58.508c10.63,14.849 27.057,24.822 44.208,30.431c8.564,2.799 17.559,4.35 26.584,4.155c8.189,-0.171 23.452,-7.999 30.748,-4.415c-36.596,23.079 -109.69,11.433 -127.101,-31.986c-6.995,15.012 -5.777,33.215 -16.463,46.602c14.805,-48.212 11.096,-101.894 38.942,-145.529" style="fill:#020303;fill-rule:nonzero;"/><path d="M192.782,449.468c5.364,3.336 12.695,22.517 9.797,28.617c-1.732,3.643 -8.812,4.627 -6.197,9.763c2.656,5.21 -1.815,10.381 -5.967,12.013c-1.335,-2.678 2.031,-6.073 1.874,-8.907c-0.402,-7.137 -8.939,-2.228 -12.27,-1.611c-4.819,0.896 -9.674,-0.333 -12.473,4.797c-3.579,6.56 4.119,9.329 2.441,14.391c-12.184,-3.981 -5.789,-14.055 -3.156,-21.761c1.936,-5.659 -2.252,-7.314 2.925,-12.054c4.342,-3.942 0.99,-10.05 -0.818,-14.202c-3.836,-8.783 -9.846,-16.404 -17.323,-22.376c-4.477,-3.579 -12.305,-5.715 -12.612,-10.653c4.164,2.565 11.513,8.652 16.324,7.275c4.704,-1.383 21.879,-4.74 23.564,3.36c-3.384,3.008 -10.089,-1.631 -14.176,-0.818c-8.445,1.649 2.955,12.107 5.104,15.806c6.61,11.404 15.233,16.549 23.017,26.197c8.466,-9.58 -5.237,-24.128 -0.054,-29.837" style="fill:#020303;fill-rule:nonzero;"/><path d="M169.987,508.535c-4.249,-4.619 -7.588,-9.507 -3.546,-15.704c4.66,-7.154 6.791,-2.724 13.88,-4.485c2.769,-0.683 8.478,-5.659 11.484,-2.707c5.543,5.458 1.179,12.822 -4.581,14.799c-4.949,1.696 3.517,13.649 -5.461,16.655c-3.351,1.114 -3.348,-7.264 -3.581,-8.198c-1.1,-4.462 -5.367,-0.408 -8.195,-0.36" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M22.226,619.5c6.8,9.894 14.48,19.347 24.238,26.481c-11.708,-1.629 -14.397,-17.03 -24.914,-18.75c-4.743,-0.775 -26.067,7.231 -20.686,-6.567c2.352,-6.028 8.629,-3.478 13.008,-5.978c3.827,-2.18 2.202,-10.316 2.175,-13.091c-0.074,-6.982 5.115,-37.754 -5.555,-37.836c12.931,-4.667 -3.396,-40.393 -4.956,-48.431c13.756,-5.269 10.053,101.412 16.69,104.172" style="fill:#020303;fill-rule:nonzero;"/><path d="M302.742,361.325c3.262,25.694 -48.475,28.67 -43.765,-1.442c4.454,-28.458 43.833,-28.824 43.765,1.442" style="fill:#020303;fill-rule:nonzero;"/><path d="M214.063,654.794c3.874,22.887 -31.936,33.809 -48.552,33.806c-14.149,0 -28.029,-2.411 -42.243,-1.599c-17.843,1.026 -34.672,8.082 -52.4,8.895c24.773,-12.287 55.671,-11.927 82.55,-10.987c11.924,0.417 25.89,0.721 36.98,-4.261c12.613,-5.665 13.848,-19.489 23.665,-25.854" style="fill:#020303;fill-rule:nonzero;"/><path d="M129.734,452.108c-12.594,-9.066 -33.064,-1.108 -43.094,8.682c-13.12,12.802 -4.249,29.474 -3.203,44.306c-4.356,-8.901 -6.557,-21.72 -5.863,-31.625c1.129,-16.132 12.757,-18.827 24.983,-25.284c26.982,-14.252 48.38,14.308 50.059,38.431c0.662,-0.961 1.415,-1.844 2.26,-2.648c0.751,7.018 -2.99,13.097 -4.882,19.548c-3.587,-7.994 2.264,-20.104 -0.981,-29.306c-2.958,-8.383 -10.942,-18.617 -19.279,-22.104" style="fill:#020303;fill-rule:nonzero;"/><path d="M5.691,515.166c-7.456,-17.949 -8.343,-40.735 4.083,-56.586c5.612,-7.149 -4.021,-17.539 0.003,-26.451c3.227,-7.143 18.62,-8.085 15.11,-3.071c-2.054,2.926 -11.067,-2.931 -13.469,8.753c-2.048,9.965 10.103,13.984 2.219,22.113c-16.067,16.558 -5.975,36.286 -7.946,55.242" style="fill:#020303;fill-rule:nonzero;"/><path d="M128.908,508.587c-14.196,-0.119 -14.518,-19.33 -2.178,-18.886c10.106,0.402 15.056,18.983 2.178,18.886" style="fill:#020303;fill-rule:nonzero;"/><path d="M489.912,156.116c-1.291,7.213 -12.255,32.219 -6.989,37.751c7.024,7.42 2.406,25.295 15.334,22.866c-5.086,0.018 -7.94,3.738 -8.135,7.914c-2.143,0.349 -3.384,-20.402 -5.777,-23.818c-5.018,-7.166 -19.628,-7.101 -24.711,0.071c2.208,-7.187 12.412,-8.399 10.733,-17.406c2.929,2.051 -0.535,16.9 8.688,7.663c7.134,-7.145 4.654,-26.123 10.857,-35.041c-0.538,3.002 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M354.768,343.946c0.984,7.202 0.461,18.28 3.818,24.776c2.506,4.852 8.694,2.893 11.598,7.665c-7.024,-3.221 -13.253,-0.612 -15.195,6.927c-1.758,6.802 7.296,3.1 8.694,7.834c0.018,-0.018 -7.435,-1.525 -8.974,-0.928c-5.349,2.08 -5.204,8.318 -11.014,9.882c4.016,-6.215 16.212,-56.448 11.073,-56.156" style="fill:#020303;fill-rule:nonzero;"/><path d="M845.579,714.138c-15.027,-3.738 -29.66,-11.168 -44.678,-15.568c-9.607,-2.819 -33.36,-4.81 -39.412,-13.099c7.084,-4.173 36.924,9.609 45.127,11.773c14.208,3.747 26.844,9.081 38.963,16.894c-7.929,-1.971 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M686.259,191.973c15.886,-10.895 3.073,-34.453 4.294,-49.689c7.662,2.825 4.143,45.605 12.662,42.225c-3.023,3.035 -14.716,8.327 -16.956,7.464c12.261,-8.41 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M29.164,442.014c1.3,-2.601 -1.886,-5.402 0.124,-7.527c4.772,4.699 2.485,22.74 -6.404,15.795c-16.028,-12.526 5.724,-18.05 6.28,-8.268" style="fill:#020303;fill-rule:nonzero;"/><path d="M557.939,245.345c-0.195,0.186 21.404,-13.227 11.073,-15.118c-1.803,-0.328 -4.202,5.742 -5.706,7.287c1.74,-3.502 -2.019,-5.538 -2.051,-8.809c-0.103,-6.111 -8.573,7.63 -7.621,7.243c-3.056,-15.213 22.905,-11.011 19.586,-7.231c0.559,0.727 0.05,11.457 -1.22,13.233c-1.484,2.074 -12.438,3.094 -14.061,3.395c3.032,-2.855 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M719.57,195.535c-2.302,-3.913 -3.706,-9.111 -9.377,-8.86c-6.788,0.26 -5.505,-13.658 -6.17,-17.547c-1.48,-8.694 -3.596,-17.275 -4.651,-26.043c-0.724,-5.851 4.039,-8.511 3.652,-14.938c7.013,3.768 -1.906,12.524 -1.486,18.047c0.606,7.848 2.825,15.821 4.376,23.513c0.99,4.888 0.39,13.579 7.09,14.87c5.96,1.129 6.152,5.949 6.566,10.958" style="fill:#020303;fill-rule:nonzero;"/><path d="M139.098,427.362c-3.759,3.733 -19.318,-6.317 -24.321,-7.299c-9.128,-1.79 -28.324,-5.404 -36.69,0.151c15.399,-12.89 46.132,0.774 61.011,7.148" style="fill:#020303;fill-rule:nonzero;"/><path d="M757.209,682.731c-18.519,-1.903 -34.627,-17.086 -53.809,-9.069c15.148,-11.436 39.072,2.698 53.809,9.069" style="fill:#020303;fill-rule:nonzero;"/><path d="M652.708,753.041c-9.311,-0.597 -18.374,-14.019 -28.277,-16.081c6.268,-0.692 0.331,-1.102 4.492,-3.257c6.282,4.675 12.006,10.204 19.11,13.673c6.233,3.044 13.242,3.845 18.715,7.82c-5.996,2.709 -8.419,-3.343 -14.04,-2.155" style="fill:#020303;fill-rule:nonzero;"/><path d="M474.855,174.175c-2.195,-6.994 3.842,-15.597 5.727,-22.13c1.995,-6.915 -5.913,-17.873 2.019,-22.571c-5.828,7.086 2.254,10.035 2.104,16.575c-0.207,8.841 -6.336,20.159 -9.85,28.126" style="fill:#020303;fill-rule:nonzero;"/><path d="M189.093,353.26c0.142,-2.763 1.451,-28.998 6.061,-27.872c1.933,0.458 -2.967,30.387 -4.775,30.582c-1.336,-0.437 -1.765,-1.341 -1.286,-2.71" style="fill:#020303;fill-rule:nonzero;"/><path d="M489.974,224.806c0.925,2.299 1.318,4.683 1.179,7.16c7.343,-1.723 11.871,-4.743 10.325,-12.828c4.997,4.515 2.078,12.13 -4.022,13.626c-8.992,2.219 -4.001,8.481 -7.207,14.225c-0.086,-7.449 -1.274,-15.275 -0.275,-22.183" style="fill:#020303;fill-rule:nonzero;"/><path d="M110.932,706.508c-1.232,3.351 -29.914,12.866 -33.844,9.775c11.586,-2.745 22.074,-10.615 33.844,-9.775c-1.64,4.462 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M307.326,430.167c-9.565,3.065 -18.859,7.329 -29.119,3.526c10.038,0.756 19.246,-4.258 29.119,-3.526" style="fill:#020303;fill-rule:nonzero;"/><path d="M512.085,735.66c4.046,-1.194 32.181,17.84 32.456,17.281c-1.233,2.506 -31.238,-14.03 -32.456,-17.281c3.904,-1.155 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M686.132,191.849c2.175,4.601 -1.17,46.995 -1.404,47.042c0.089,-15.798 -1.791,-31.533 1.404,-47.042" style="fill:#020303;fill-rule:nonzero;"/><path d="M543.844,754.513c5.221,-0.538 29.089,16.484 28.436,17.376c-1.808,2.459 -25.283,-15.254 -28.436,-17.376" style="fill:#020303;fill-rule:nonzero;"/><path d="M518.581,221.858c-2.967,9.417 -5.925,18.835 -8.883,28.25c0.928,-10.08 2.252,-20.021 8.883,-28.25" style="fill:#020303;fill-rule:nonzero;"/><path d="M572.092,780.364c-9.853,-2.003 -17.19,-8.847 -23.154,-15.957c7.79,1.185 16.865,11.782 23.154,15.957" style="fill:#020303;fill-rule:nonzero;"/><path d="M589.569,231.27c8.204,9.302 -0.744,21.01 -10.029,23.936c7.754,-5.624 13.797,-14.613 10.029,-23.936" style="fill:#020303;fill-rule:nonzero;"/><path d="M309.16,428.927c6.032,-3.863 11.46,-7.347 16.954,-10.875c0.053,5.807 -7.84,10.919 -16.954,10.875" style="fill:#020303;fill-rule:nonzero;"/><path d="M698.856,675.918c-6.886,3.741 -13.777,7.47 -20.659,11.214c-2.542,-7.384 20.664,-11.196 20.659,-11.214" style="fill:#020303;fill-rule:nonzero;"/><path d="M549.11,764.233c-9.187,-2.019 -17.051,-6.951 -22.952,-13.671c5.062,1.333 21.073,9.48 22.952,13.671c-9.187,-2.019 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M860.591,290.286c1.02,3.815 -11.767,16.56 -14.279,20.189c2.577,-8.363 7.571,-15.363 14.279,-20.189" style="fill:#020303;fill-rule:nonzero;"/><path d="M545.077,240.307c-4.683,0.41 -5.747,5.597 -9.545,7.18c1.641,-4.512 9.74,-15.162 15.881,-11.619c-0.083,0.047 -6.927,4.282 -6.336,4.439" style="fill:#020303;fill-rule:nonzero;"/><path d="M545.077,240.307c0.526,-0.526 2.302,-2.409 3.443,-1.176c-1.646,-1.776 -7.373,19.686 -7.494,21.019c-3.135,-7.264 -0.086,-13.839 4.051,-19.843" style="fill:#020303;fill-rule:nonzero;"/><path d="M178.887,438.124c6.179,1.773 12.166,4.509 13.892,11.35c-4.013,0.872 -15.098,-7.16 -13.892,-11.35c6.262,1.793 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M215.419,300.031l-13.174,12.964c3.407,-5.26 7.376,-9.982 13.174,-12.964" style="fill:#020303;fill-rule:nonzero;"/><path d="M337.922,310.068c-5.452,-4.45 -10.535,-9.332 -15.84,-13.992c6.862,2.884 11.706,8.041 15.84,13.992" style="fill:#020303;fill-rule:nonzero;"/><path d="M490.077,156.28c-0.154,-10.295 7.881,-3.348 8.829,-11.474c1.342,8.705 -6.04,5.307 -8.829,11.474c-0.054,-3.549 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.588,264.045c-1.924,4.028 0.393,-15.162 0.263,-14.066c0.408,-0.39 5.916,-2.857 5.916,-4.799c-0.727,6.693 -5.562,11.729 -6.179,18.865" style="fill:#020303;fill-rule:nonzero;"/><path d="M506.367,727.479c-4.888,0.777 -8.883,-9.714 -9.861,-13.017c2.846,5.189 8.324,7.417 9.861,13.017c-4.17,0.662 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M694.241,766.636c-4.096,0.089 -7.488,0.999 -10.946,-1.448c5.059,-4.881 8.384,1.448 10.946,1.448" style="fill:#020303;fill-rule:nonzero;"/><path d="M574.008,772.968c19.725,2.272 14.92,15.127 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M601.906,658.557c-1.51,-0.588 -6.058,-10.053 -4.231,-10.686c3.401,-1.173 7.361,11.407 4.231,10.686" style="fill:#020303;fill-rule:nonzero;"/><path d="M694.241,766.636c0.094,-3.294 12.136,5.281 13.933,5.973c-6.738,1.415 -8.59,-3.892 -13.933,-5.973" style="fill:#020303;fill-rule:nonzero;"/><path d="M604.276,661.336c4.089,1.312 7.213,6.002 8.229,9.409c-4.462,2.036 -6.176,-6.623 -8.229,-9.409c4.704,1.513 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M614.113,676.697c2.007,-1.073 9.631,7.542 11.173,9.01c-5.407,-0.201 -9.021,-4.76 -11.173,-9.01c3.638,-1.95 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.822,757.881c3.922,0.792 7.107,2.784 9.554,5.984c-1.894,0.222 -12.408,-2.536 -9.554,-5.984" style="fill:#020303;fill-rule:nonzero;"/><path d="M206.282,340.492c-1.716,-4.755 0.107,-7.707 1.969,-10.668c1.06,3.413 -0.21,6.425 -1.969,10.668" style="fill:#020303;fill-rule:nonzero;"/><path d="M250.189,284.884c-3.916,-0.181 -7.314,4.042 -11.534,1.134c5.133,0.589 6.206,-3.031 11.534,-1.134" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.822,757.881l-0.103,2.813c-3.194,-1.797 -6.135,-1.034 -6.135,-5.325c2.276,0.352 4.356,1.188 6.238,2.512" style="fill:#020303;fill-rule:nonzero;"/><path d="M512.266,735.484c-2.311,-2.577 -6.324,-3.697 -5.905,-7.999c0,0.168 5.849,5.402 5.905,7.999" style="fill:#020303;fill-rule:nonzero;"/><path d="M544.008,297.094c4.852,0.555 8.313,0.945 12.27,1.398c-6.345,1.456 -7.577,1.383 -12.27,-1.398" style="fill:#020303;fill-rule:nonzero;"/><path d="M43.675,721.924c-0.851,-0.192 -12.243,-3.951 -8.862,-7.14c0.44,-0.407 8.827,7.101 8.862,7.14" style="fill:#020303;fill-rule:nonzero;"/><path d="M204.499,349.893c-2.914,-0.819 -0.733,-8.029 1.2,-8.682c2.092,-0.686 -0.716,8.333 -1.2,8.682" style="fill:#020303;fill-rule:nonzero;"/><path d="M147.536,501.274c-0.316,5.281 -1.906,7.725 -5.05,9.879c0.041,-4.013 3.049,-5.851 5.05,-9.879" style="fill:#020303;fill-rule:nonzero;"/><path d="M622.967,766.227c0.907,5.845 -7.243,3.891 -6.873,2.822c0.215,-0.692 6.374,-2.666 6.873,-2.822c0.884,5.691 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M631.183,693.703c-3.295,-1.652 -6.324,-3.779 -5.904,-7.99c2.402,1.941 4.947,5.458 5.904,7.99c-3.316,-1.66 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M624.609,736.791c-2.133,-1.98 -4.613,-3.33 -7.432,-4.051c4.427,-0.668 6.959,-0.733 7.432,4.051" style="fill:#020303;fill-rule:nonzero;"/><path d="M681.745,134.287c2.524,2.181 5.051,4.362 7.574,6.54c-4.243,-1.147 -6.9,-2.335 -7.574,-6.54c2.524,2.184 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M839.836,323.77c-0.233,-3.502 0.713,-6.664 2.834,-9.489c1.126,3.742 -0.263,7.279 -2.834,9.489c-1.368,-3.611 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M530.637,293.685c3.64,-0.599 6.061,1.28 8.398,4.324c-3.735,-0.104 -5.493,-3.422 -8.398,-4.324" style="fill:#020303;fill-rule:nonzero;"/><path d="M605.935,775.346c-0.26,0.414 9.031,-7.807 7.396,-3.203c-0.39,1.093 -6.548,3.41 -7.396,3.203" style="fill:#020303;fill-rule:nonzero;"/><path d="M347.044,325.226c1.799,2.299 3.818,4.524 3.702,8.576c-3.419,-2.707 -2.683,-5.972 -3.702,-8.576" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.218,292.875c-1.965,2.618 6.611,5.803 -7.851,2.154c-1.339,0.322 10.026,-2.589 7.851,-2.154" style="fill:#020303;fill-rule:nonzero;"/><path d="M309.808,291.794c-3.726,-2.382 -5.913,-3.78 -8.451,-5.408c3.936,-0.334 3.936,-0.334 8.451,5.408" style="fill:#020303;fill-rule:nonzero;"/><path d="M229.103,290.077c1.945,-1.191 3.978,-2.196 6.106,-3.014c1.294,0.115 -2.58,4.036 -6.106,3.014" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.85,249.975c-2.833,0.671 -0.534,4.584 -3.726,5.039c-1.735,-4.306 1.72,-6.891 3.726,-5.039" style="fill:#020303;fill-rule:nonzero;"/><path d="M45.274,706.179c2.024,-2.642 6.055,-5.846 7.334,-1.794c-2.299,1.173 -4.746,1.77 -7.334,1.794" style="fill:#020303;fill-rule:nonzero;"/><path d="M845.406,714.311c2.423,-0.807 4.441,0.035 6.631,1.008c-0.095,0.732 -0.263,1.448 -0.505,2.148c1.253,1.084 -7.949,-4.066 -6.126,-3.156" style="fill:#020303;fill-rule:nonzero;"/><path d="M141.76,511.273c-2.536,4.327 -4.956,5.47 -8.23,5.272c2.263,-1.448 4.515,-2.887 8.23,-5.272" style="fill:#020303;fill-rule:nonzero;"/><path d="M715.181,773.153c3.336,-0.175 1.371,4.152 0.2,3.661c-2.136,-0.907 -3.02,-3.395 -0.2,-3.661" style="fill:#020303;fill-rule:nonzero;"/><path d="M623.036,766.325c2.326,-1.345 5.222,-0.189 7.515,-1.616c-2.459,2.621 -4.362,3.537 -7.515,1.616" style="fill:#020303;fill-rule:nonzero;"/><path d="M446.736,314.795c0.683,2.604 0.325,5.012 -1.073,7.223c-3.853,2.792 2.19,-9.613 1.073,-7.223" style="fill:#020303;fill-rule:nonzero;"/><path d="M702.887,283.182c-0.975,1.912 -2.509,2.944 -4.598,3.097c-0.562,-4.033 2.074,-2.488 4.598,-3.097" style="fill:#020303;fill-rule:nonzero;"/><path d="M449.125,288.734c-0.073,3.487 1.064,6.037 -1.926,8.167c-0.411,-2.665 -0.021,-4.87 1.926,-8.167" style="fill:#020303;fill-rule:nonzero;"/><path d="M553.181,245.186c-0.863,-2.845 0.009,-4.305 3.126,-5.165c-0.62,2.163 -0.978,3.853 -3.126,5.165" style="fill:#020303;fill-rule:nonzero;"/><path d="M595.879,782.015c-2.937,-2.929 1.785,-3.614 4.412,-4.072c-1.471,1.356 -2.943,2.713 -4.412,4.072" style="fill:#020303;fill-rule:nonzero;"/><path d="M614.315,731.51c-1.767,-2.612 -2.765,-4.104 -3.566,-5.277c2.337,-0.577 2.842,1.492 3.566,5.277" style="fill:#020303;fill-rule:nonzero;"/><path d="M858.857,732.053c-1.599,0.739 -3.201,1.474 -4.799,2.213c0.286,-6.291 2.287,-2.151 4.799,-2.213" style="fill:#020303;fill-rule:nonzero;"/><path d="M1113.43,245.367c2.527,0.739 3.794,2.426 3.797,5.059c-5.366,-0.198 -2.538,-1.933 -3.797,-5.059c2.166,1.016 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M192.588,366.916l0,7.148c-1.463,-2.822 -0.99,-4.923 0,-7.148" style="fill:#020303;fill-rule:nonzero;"/><path d="M977.193,431.599c0.809,-2.648 3.028,-2.397 5.094,-2.456c-0.863,2.539 -2.781,2.905 -5.094,2.456" style="fill:#020303;fill-rule:nonzero;"/><path d="M64.678,724.065c-0.925,3.18 -3.094,2.488 -5.913,2.181c2.187,-1.392 4.303,-0.872 5.913,-2.181" style="fill:#020303;fill-rule:nonzero;"/><path d="M94.154,584.189c0.854,3.221 -0.337,4.406 -3.57,3.555l3.57,-3.555Z" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M192.377,364.651c-2.527,-0.955 -2.074,-2.509 -1.569,-4.956c0.694,2.175 1.126,3.57 1.569,4.956" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.815,708.753c0.136,0.549 -2.269,-5.689 -1.282,-4.705c1.968,1.129 2.396,2.695 1.282,4.705" style="fill:#020303;fill-rule:nonzero;"/><path d="M684.175,242.638c-0.313,-1.418 0.157,-2.187 1.41,-2.308c0.845,0.789 1.2,1.72 1.064,2.793c-0.887,0.558 -1.711,0.396 -2.474,-0.485" style="fill:#020303;fill-rule:nonzero;"/><path d="M629.062,733.559c-2.16,1.676 -3.496,1.162 -4.001,-1.542c1.991,-1.167 2.934,1.271 4.001,1.542" style="fill:#020303;fill-rule:nonzero;"/><path d="M612.327,670.917c2.394,1.368 2.991,3.292 1.788,5.774c-0.662,0.887 -2.175,-6.82 -1.788,-5.774" style="fill:#020303;fill-rule:nonzero;"/><path d="M601.906,658.557c3.133,-3.115 3.189,1.95 2.536,2.603c-1.824,0.083 -2.669,-0.786 -2.536,-2.603" style="fill:#020303;fill-rule:nonzero;"/><path d="M428.046,551.109c-7.027,-1.699 -11.977,4.04 -20.059,2.403c-6.995,-1.422 -8.372,1.185 -10.872,7.559c-2.828,7.213 12.893,7.547 16.661,7.323c9.06,-0.538 12.857,-5.393 17.45,-11.963c0.549,4.336 -6.98,26.638 -12.208,27.701c-4.5,0.916 -9.997,-1.188 -9.958,-6.569c0.044,-6.906 -6.478,-6.554 -10.931,-9.589c-9.882,-6.732 13.723,-48.508 29.917,-16.865" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.004,502.472c-12.429,-9.761 -37.792,-6.262 -48.767,3.782c-6.954,6.365 -9.268,15.219 -8.978,24.477c0.423,13.455 9.3,18.195 15.047,28.549c-21.988,-7.234 -22.163,-40.071 -8.54,-54.456c8.986,-9.495 46.114,-18.428 51.238,-2.352c-4.104,-3.224 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M486.85,526.646c8.177,2.902 8.762,15.7 -1.43,15.957c-12.27,0.311 -8.839,-14.258 1.43,-15.957" style="fill:#020303;fill-rule:nonzero;"/><path d="M499.727,614.724l4.926,-0.641c-9.651,-5.819 -6.268,-8.215 -3.679,-19.031c3.114,-13.008 4.657,-24.846 6.835,-37.981c2.036,-12.27 3.141,-8.653 10.071,-5.124c3.9,1.988 7.568,0.591 11.66,1.456c6.029,1.274 9.959,6.247 14.569,9.847c4.211,3.28 8.502,6.477 13.07,9.252c2.663,1.596 1.431,5.6 3.029,6.611c6.983,4.444 16.72,20.724 23.969,22.068c11.664,2.166 25.576,-2.246 37.24,-3.197c16.028,-1.306 30.951,-1.868 46.95,-4.353c9.749,-1.51 76.407,-0.695 76.312,-13.236c-0.1,-10.257 -5.316,-13.847 -12.89,-21.058c-10.774,-10.26 -3.233,-10.815 6.684,-15.895c5.083,-2.601 0.899,-19.634 -5.895,-20.157c-13.23,-1.022 -27.479,-0.006 -40.768,0.387c-32.193,0.958 -64.519,1.055 -96.679,2.882c-14.997,0.851 -29.896,1.663 -44.92,1.258c-11.158,-0.304 -25.656,3.233 -36.078,1.886c-6.088,-0.786 -8.88,-23.877 -9.332,-29.226c-9.149,-4.116 -0.417,-18.531 -6.762,-26.48c-5.39,-6.753 -17.641,-5.976 -23.156,0.472c-7.627,8.922 -14.976,0.535 -26.805,-1.539c-15.405,-2.701 -11.936,-10.34 -11.306,-23.644c0.653,-13.824 -0.603,-32.538 3.599,-45.688c7.414,-23.183 8.806,-52.264 34.988,-61.534c12.813,-4.533 23.989,-5.576 37.219,-7.263c14.87,-1.901 27.926,-8.254 43.399,-8.807c28.983,-1.034 58.708,-3.673 87.683,-2.446c28.114,1.214 56.057,4.781 84.213,8.224c12.548,1.53 23.869,-0.216 35.385,6.784c6.616,4.022 10.478,7.752 12.739,15.19c1.442,4.745 5.612,1.932 5.904,6.179c1.04,15.274 7.663,29.373 8.52,44.914c0.895,16.247 4.497,32.695 1.448,48.868c-2.781,14.935 2.308,28.655 1.601,43.336c-0.653,13.511 5.884,32.051 1.711,44.696c-2.683,8.126 1.105,10.836 0.831,19.205c-0.175,5.31 -3.118,14.226 -0.048,19.181c4.758,7.657 -2.127,15.378 0.588,23.496c2.208,6.673 -4.763,6.141 -8.921,5.984c-4.802,-0.183 -6.59,3.729 -10.987,4.64c-8.348,1.734 -16.368,4.281 -24.701,6.037c-12.941,2.724 -34.613,-6.877 -45.772,-1.306c-5.183,2.585 -12.396,0.635 -17.91,0.715c-6.762,0.097 -13.635,5.198 -20.213,4.119c-14.767,-2.476 -30.033,2.485 -44.486,0.293c-9.932,-1.507 -31.861,4.001 -39.893,-2.019c-7.725,-5.786 -9.33,-28.327 -19.312,-29.258c-7.916,-0.736 -15.676,7.234 -23.46,8.729c-8.523,1.641 -13.189,6.915 -20.653,10.299c-11.566,5.245 -11.959,12.027 -20.517,2.875" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M585.724,590.359c18.7,5.42 46.995,-3.292 66.348,-4.477c9.737,-0.591 19.477,-1.285 29.146,-2.642c10.765,-1.507 25.768,-0.96 35.762,-4.84c-4.994,-4.465 -21.717,-0.7 -27.24,0.461c-13.259,2.801 -26.418,3.398 -39.894,4.767c-15.236,1.545 -30.641,1.069 -45.777,3.623c-15.945,2.695 -18.835,-1.741 -29.432,-12.725c-4.191,-4.344 -40.278,-40.21 -27.725,-40.7c10.133,-0.435 33.922,-5.772 42.417,0.212c9.944,7.007 5.677,-1.539 5.772,-2.532c17.798,-0.76 35.594,-1.803 53.416,-1.658c13.761,0.115 34.234,-3.59 47.284,0.641c12.494,4.055 22.778,23.121 32.742,31.236c16.528,13.46 1.82,8.82 -7.394,15.174c2.261,0.963 17.27,-0.071 17.113,2.5c-0.266,3.717 -74.462,10.485 -82.508,10.813c-9.59,0.393 -69.418,13.611 -70.03,0.147c6.631,1.921 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M422.641,469.53c-0.352,0 -6.156,0.934 -6.126,-1.226c0.038,-4.052 1.353,-3.487 -2.237,0.198c0.6,-0.612 -27.863,-1.357 -27.21,-0.497c-4.525,-5.966 0.328,-23.983 0.141,-31.743c-0.068,-2.89 2.237,-41.457 9.152,-26.457c7.949,17.346 27.633,-2.639 27.66,-14.353c0.032,-12.302 -19.315,-26.607 -25.898,-16.067c-0.751,1.197 -3.254,-2.048 -4.002,-0.854c-2.804,-6.335 3.594,-5.765 5.597,-9.302c6.123,-10.825 9.974,-16.741 21.806,-22.267c10.292,-4.796 29.619,-13.708 35.617,-6.994c3.088,3.454 -12.328,16.501 -14.163,19.834c-6.776,12.308 -5.763,24.767 -8.065,38.082c-2.302,13.345 3.57,71.646 -12.272,71.646" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M398.329,402.562c11.457,7.881 6.333,-8.6 7.991,-14.137c3.673,-12.255 13.348,-3.213 14.997,4.101c3.496,15.511 -14.607,28.706 -22.988,10.036" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M585.904,590.175c-5.57,4.961 -50.605,-40.34 -47.822,-51.643c13.948,17.018 37.979,33.224 47.822,51.643" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M827.508,346.157c5.541,0.148 2.252,8.091 0.118,10.142c-5.014,4.82 -21.312,6.273 -28.206,9.155c-6.336,2.668 -8.537,-4.276 -2.589,-6.753c10.187,-4.276 20.444,-8.38 30.677,-12.544" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M475.349,698.999c4.11,4.763 10.511,25.455 -2.654,21.583c-13.097,-3.85 -3.33,-17.006 2.654,-21.583" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M492.939,478.6c-2.187,-0.73 -16.129,7.157 -17.119,1.395c-1.323,-7.695 15.293,-8.682 19.235,-5.795c3.348,2.456 5.813,18.809 -1.04,14.867c-5.503,-3.162 -0.562,-7.799 -1.076,-10.467" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M334.32,715.679c-0.419,-14.962 17.97,-12.249 15.905,-7.683c-1.508,3.336 -16.927,19.926 -15.905,7.683" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M326.767,483.157c-0.432,-0.949 4.964,8.306 4.072,9.293c-2.506,2.784 -8.481,-1.527 -9.788,-3.865c-5.215,-9.344 18.18,-12.665 20.621,-7.195c1.342,3.002 -5.426,5.248 -6.791,6.377c-3.354,2.763 -5.378,-3.836 -8.114,-4.61" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M475.945,675.052c-2.329,3.156 6.075,12.861 2.653,13.523c-5.52,0.939 -17.163,-26.36 -16.344,-31.401c3.472,5.366 8.008,16.143 13.691,17.878" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M481.983,702.366c0.795,0.917 9.06,13.656 4.578,14.667c-2.223,0.449 -4.536,-12.864 -4.578,-14.667" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M688.521,622.253c1.596,-0.041 8.966,-0.795 8.966,0.692c-2.16,0.168 -8.966,2.328 -8.966,-0.692" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M950.028,351.124c0.854,11.45 -15.939,16.613 -21.043,6.031c-6.108,-12.666 19.9,-21.732 21.043,-6.031" style="fill:#020303;fill-rule:nonzero;"/><path d="M952.949,332.393c-11.628,-4.152 -25.435,-6.838 -32.899,6.15c-4.947,8.608 -2.146,30.209 9.385,32.766c-38.779,-1.836 -1.279,-71.185 23.514,-38.916c-7.054,-2.521 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M952.773,332.568c24.128,0.337 11.137,53.516 -21.374,40.017c7.497,-0.198 16.507,0.76 22.6,-4.636c2.485,-2.199 12.606,-14.329 6.256,-17.293c4.338,-6.998 -1.147,-14.77 -7.482,-18.088c5.987,0.082 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M960.258,350.652c0.931,2.133 0.441,3.906 -1.471,5.322c2.396,-2.237 2.887,-4.01 1.471,-5.322c0.6,1.891 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1032.84,308.34c-1.224,9.598 7.006,-1.463 7.852,-3.626c2.299,-5.881 10.582,-3.537 12.597,-12.695c1.732,-7.873 -5.337,-13.721 -3.611,-21.129c1.856,-7.961 16.194,-13.812 22.707,-16.025c21.321,-7.249 44.169,2.709 63.498,11.554c9.856,4.536 19.152,10.422 26.549,18.446c7.654,8.309 3.836,9.252 -2.943,15.842c9.051,-0.133 16.102,-10.875 25.124,-9.235c16.146,2.934 -10.514,22.698 -12.601,24.837c0.671,1.726 8.644,-1.131 12.146,4.808c7.884,13.369 4.391,25.848 -1.694,39.096c-5.564,12.11 -15.006,22.06 -18.776,34.985c-3.591,12.32 -5.839,28.221 -5.709,41.034c0.236,23.632 0.718,46.339 -25.352,56.36c-10.73,4.119 -25.603,5.848 -37.042,4.822c-12.976,-1.188 -15.907,-0.895 -8.83,-14.707c-5.478,5.192 -9.285,16.628 -16.909,19.48c-6.143,2.299 4.844,-23.871 2.512,-24.719c-3.496,-1.247 -5.009,12.969 -14.302,8.176c-11.602,-5.993 -25.615,-6.861 -33.993,-17.928c-10.783,-14.25 -28.135,-42.793 -16.796,-59.965c16.448,-25.138 15.653,-51.196 10.602,-79.583c-1.211,-6.779 -0.236,-30.283 10.337,-31.403c3.798,-0.399 3.993,8.927 4.634,11.575" style="fill:#edd4cf;fill-rule:nonzero;"/><path d="M1090.58,507.103c-12.695,1.011 -25.34,2.539 -37.94,4.374c-4.897,0.721 -9.784,1.471 -14.672,2.257c-5.641,0.902 -9.403,6.679 -14.081,7.388c-6.507,0.981 -51.563,-22.713 -27.521,-27.816c9.126,-1.936 17.32,-10.328 26.386,-3.224c6.351,4.973 18.626,2.284 26.519,4.973c7.069,2.409 7.547,6.889 14.125,10.384c9.418,5.015 16.188,-8.008 27.184,1.664" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1131.66,616.799c-0.414,0.7 -0.76,11.46 -5.107,5.192c-5.664,-8.165 -9.231,-19.79 -13.947,-28.72c-9.678,-18.319 -16.971,-39.025 -21.203,-59.3c-0.901,-4.409 3.502,-4.885 5.674,-1.894c6.672,9.211 10.596,19.956 14.985,30.343c7.512,17.783 12.461,36.832 19.598,54.379" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1053.92,516.148c13.632,0 24.4,-3.13 37.651,-5.541c6.867,-1.253 22.662,9.113 6.111,11.746c-18.75,3 -41.968,10.373 -60.955,8.053c-9.97,-1.221 -7.435,-6.702 -1.536,-11.297c5.065,-3.943 12.786,-3.035 18.729,-2.961" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1038.74,268.947c-5.727,-1.723 -4.2,7.996 -9.61,9.56c-8.307,2.399 -6.203,-6.002 -4.48,-13.006c4.054,-16.48 31.433,-30.156 43.286,-13.091c-7.06,5.429 -20.314,19.793 -29.196,16.537c-4.084,-1.229 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1037.8,540.411c-1.77,20.186 -7.884,40.051 -12.949,59.59c-2.237,8.634 -6.088,18.067 -6.354,27.033c-0.121,4.06 -7.636,11.385 -7.627,5.336c0.021,-18.498 8.469,-38.791 12.556,-56.702c2.154,-9.456 3.404,-19.098 5.94,-28.466c0.372,-1.383 9.14,-18.593 8.434,-6.791" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M994.966,517.368c2.11,6.832 -7.514,12.923 -9.438,18.895c-3.656,11.327 -8.248,21.472 -13.218,32.346c-2.979,6.519 -4.687,20.718 -10.591,25.21c-0.766,0.582 -13.212,9.672 -11.342,10.18c-4.314,-1.155 15.839,-40.419 18.292,-45.254c4.072,-8.026 7.113,-17.166 11.522,-24.861c0.819,-1.43 15.671,-25.239 15.957,-19.163c-0.478,0.845 -0.874,1.725 -1.182,2.647" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1012.57,543.86c-29.368,6.646 -15.414,-30.647 -5.842,-24.072c5.407,3.726 19.063,8.62 19.929,16.043c1.099,9.4 -7.536,8.029 -14.087,8.029" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1051.63,288.908c0.189,17.054 -32.518,7.376 -22.204,-6.637c5.011,-6.809 9.255,4.09 15.795,1.545c8.427,-3.265 2.337,4.259 6.409,5.092" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1003.52,594.722c-0.195,0.326 10.606,15.878 -4.394,5.784c-6.531,-4.395 -12.412,-10.027 -18.15,-15.37c1.465,1.368 -11.132,-14.825 -3.777,-11.649c4.116,1.779 27.55,17.282 26.321,21.235" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1020.3,568.107c-7.606,-4.832 -15.015,-10.021 -21.711,-16.07c-0.231,-0.21 -13.472,-12.521 -6.028,-11.268c10.381,1.744 25.57,17.412 27.739,27.338" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1064.1,534.022c9.069,0.467 11.141,1.693 16.232,-0.671c4.592,-2.127 8.667,15.317 10.582,17.361c-9.728,-4.175 -20.23,-7.863 -26.814,-16.69" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1085.7,561.648c-10.735,-2.751 -20.679,-8.194 -26.51,-17.952c4.347,1.244 30.207,11.422 26.51,17.952" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1164.06,488.207c0.851,8.055 -10.948,1.566 -11.389,-4.3c-0.792,-10.673 11.809,-1.693 11.389,4.3" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1009.25,545.121c6.289,0 18.144,-3.62 15.444,6.357c-2.444,9.015 -13.417,-1.451 -15.444,-6.357" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1032.84,308.34c-2.166,-3.532 1.203,-13.632 6.563,-8.685c3.26,3.005 -1.161,11.847 -6.563,8.685" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1113.62,245.217c-0.083,0.656 8.085,12.695 -0.346,8.652c-6.345,-3.049 -6.439,-12.689 0.346,-8.652" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1030.62,487.48c-15.322,-18.192 14.11,-6.289 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1056.7,553.911c0.057,1.416 -4.837,11.197 -6.557,9.433c-4.205,-4.306 4.492,-20.827 6.557,-9.433" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1047.46,588.864c-1.075,-4.255 -0.739,-8.404 1.011,-12.444c5.387,2.628 5.295,13.851 -1.011,12.444c-1.622,-4.157 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1038.57,268.788c-0.059,-0.768 10.555,13.115 3.537,9.501c-4.453,-2.284 -11.551,-1.844 -3.537,-9.501" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1085.7,561.648c-0.39,-1.779 -0.777,-3.555 -1.167,-5.334c10.568,4.392 3.585,9.572 1.167,5.334" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1068.77,578.374c6.735,-1.238 9.988,4.135 14.397,7.299c-4.893,-2.485 -10.156,-4.001 -14.397,-7.299c6.735,-1.238 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1020.29,256.141c-0.656,-3.295 0.621,-4.861 4.681,-4.356c-1.734,1.605 -3.209,2.994 -4.681,4.356" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1045,539.476c1.276,1.171 1.421,6.957 -0.009,5.523c-1.354,-1.79 -1.351,-3.631 0.009,-5.523" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1047.32,588.729c1.675,2.154 1.164,3.487 -1.546,3.992c-1.179,-2.007 1.274,-2.929 1.546,-3.992" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1068.91,578.25c-0.925,-0.727 -1.844,-1.454 -2.769,-2.181c1.261,-0.995 2.603,-1.108 4.03,-0.336c-1.687,2.473 -2.107,3.312 -1.261,2.517" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M185.275,575.636c-0.171,-19.122 9.01,-36.593 17.722,-52.931c6.879,-12.905 39.707,5.18 42.751,14.964c2.733,8.78 -4.53,14.267 -7.438,21.844c-3.558,9.264 -2.769,18.883 -5.216,28.209c-3.626,13.821 -49.819,6.575 -47.819,-12.086" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M181.93,577.408c-9.592,-19.784 -7.984,-48.52 18.124,-54.814c-10.13,16.673 -15.721,35.544 -18.124,54.814" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M256.894,549.294c6.46,3.933 -1.108,24.566 -2.639,29.548c-3.954,12.89 -13.791,15.428 -25.526,20.877c-9.968,4.631 -17.45,2.069 -27.683,0.19c-3.407,-0.627 -27.338,-7.4 -22.852,-14.143c10.432,10.103 41.277,14.849 53.505,7.636c18.324,-10.813 24.019,-24.223 25.195,-44.108c3.726,2.27 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M167.504,579.964c-9.045,3.674 -42.201,19.034 -51.442,12.5c8.053,-8.023 41.738,-25.582 51.442,-12.5" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M251.302,545.421c-1.572,7.465 2.471,13.936 -0.396,21.667c-1.953,5.263 -6.938,13.194 -10.797,17.417c-4.859,5.304 -1.729,-12.524 -1.856,-11.962c2.263,-9.944 6.681,-19.146 13.049,-27.122" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M257.064,549.127c-5.591,-9.829 -9.273,-18.109 -18.688,-24.459c-2.29,-1.549 -16.554,-8.99 -15.895,-10.42c21.052,-0.544 28.933,19.353 34.583,34.879" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M157.438,650.459c1.002,11.274 -14.949,9.829 -13.513,0.438c1.217,-7.89 12.328,-7.76 13.513,-0.438" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M257.66,587.075c-3.682,10.349 -12.444,15.694 -23.206,15.925c9.616,-1.956 16.004,-14.749 23.206,-15.925c-3.818,10.739 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M176.775,531.898c-6.153,21.924 -12.054,10.544 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M257.793,587.208c-3.473,-6.613 1.788,-11.811 2.893,-17.668c-0.574,5.975 -1.256,12.047 -2.893,17.668" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M169.324,562.026c0.718,0.978 5.357,12.488 2.358,13.209c-3.558,0.831 -2.734,-12.213 -2.358,-13.209" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M222.48,514.252c-4.778,0.608 -9.544,1.217 -14.314,1.826c5.038,-2.477 8.871,-3.357 14.314,-1.826" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M170.09,560.289c-2.683,-1.93 -2.388,-7.467 -0.842,-6.152c1.114,1.92 1.394,3.974 0.842,6.152" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M176.584,531.131c0.367,-3.688 1.504,-4.696 3.422,-3.02c-0.484,1.708 -1.628,2.712 -3.422,3.02" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M589.738,231.095c-0.124,0.041 -0.396,0.272 0,0c-0.062,0.021 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M615.683,241.029c-0.272,-1.406 -0.387,-2.833 -0.422,-4.273c-0.009,1.448 0.109,2.876 0.422,4.273" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.403,293.059c-0.009,-0.08 -0.369,-0.499 0,0c-0.009,-0.083 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M591.496,272.638c3.54,-1.708 6.14,-13.313 6.684,-13.354c13.487,-1.091 -3.859,32.062 -12.784,18.354c-8.33,-12.79 16.12,-23.664 6.1,-5" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M568.392,273.325c-5.42,11.196 -9.755,3.029 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M650.244,247.797c-5.31,-12.202 -15.452,-23.416 -26.005,-31.815c-5.957,-4.746 -13.487,-4.941 -20.455,-2.665c-2.727,0.889 -19.143,6.365 -19.264,9.421c0.139,-3.552 6.85,7.981 5.083,8.365c4.045,-17.659 9.027,-1.622 10.895,5.913c1.865,7.589 -2.441,19.61 -10.473,22.169c-7.012,2.255 -26.028,10.76 -28.247,-0.859c-1.156,-6.112 15.15,-7.155 17.154,-15.128c-5.127,4.835 -20.963,7.633 -19.512,16.115c2.08,11.909 14.976,1.82 20.333,8.374c13.981,17.11 -31.35,25.006 -39.559,17.169c11.64,7.264 19.737,-0.369 30.393,-3.676c17.11,-5.458 -13.413,-11.262 -13.041,-10.969c0.225,0.133 0.278,0.195 0.16,0.189c8.983,7.6 -5.943,15.83 -12.861,13.407c2.512,-1.885 12.958,-13.38 12.701,-13.596c-0.325,-0.857 -11.542,-13.31 -11.735,-13.345c0.521,3.306 3.987,11.436 2.125,14.107c-1.297,1.862 -9.261,4.575 -7.571,1.605c0.355,-0.621 -3.874,-16.962 -3.519,-16.803c-3.535,2.299 -5.405,5.55 -5.609,9.752c6.927,0.399 4.054,8.549 5.482,13.576c-1.555,-0.925 -8.177,-12.781 -5.482,-13.576c-3.011,0 -5.857,12.166 -5.231,14.542c1.735,-14.509 9.144,6.247 11.298,8.144c6.158,5.435 22.181,5.786 29.746,6.543c-0.222,-0.136 -0.281,-0.204 -0.178,-0.201c-2.068,-1.209 -4.137,-2.417 -6.208,-3.62c10.286,-2.184 19.683,-11.141 29.929,-8.537c-1.173,5.981 -22.926,14.406 -23.543,12.358c-0.73,2.142 25.52,-2.648 27.476,-2.559c9.669,0.443 15.269,8.593 26.016,6.433c-2.015,-3.715 -6.323,1.534 -8.162,-2.719c4.203,-2.772 9.055,-4.53 12.755,-8.064c2.284,3.611 -0.857,5.582 -1.129,8.986c7.91,-2.06 25.077,-6.075 30.168,-12.438c9.306,-11.622 5.565,-26.616 -3.93,-36.598m-107.231,28.933c4.563,-1.082 7.775,-4.773 9.462,-8.978c0.26,5.925 -11.448,18.339 -12.281,11.132c0.136,-1.749 1.075,-2.465 2.819,-2.154m39.382,-8.945c-6.075,-6.126 4.176,-4.303 0,0m20.618,24.178l-3.18,1.156c0.721,-4.294 -5.416,-4.061 -5.183,-8.026c0.399,-6.694 14.684,-7.353 18.963,-7.87c-0.754,0.913 -19.516,8.54 -12.881,10.438c11.394,3.256 17.44,-9.324 26.781,-9.924c-6.805,6.942 -13.838,14.823 -24.5,14.226m3.292,-23.57c0.777,0.855 4.796,9.607 -0.618,5.745c-2.819,-1.995 1.49,-3.543 0.618,-5.745m18.723,-8.847c-0.677,-2.358 5.278,2.541 5.822,3.584c2.999,5.745 -5.718,12.427 -10.665,10.136c-11.909,-5.529 -23.623,-16.554 -15.901,-29.742c0.39,9.769 8.752,13.111 15.209,18.56c1.088,-1.852 -12.547,-13.164 -13.43,-18.56c-0.881,-5.396 -4.516,-9.867 -5.08,-15.32c-0.207,-2.018 5.718,-18.602 8.962,-14.169c-0.78,-1.031 -0.31,5.558 1.573,3.159c2.455,-3.047 10.044,0.038 12.027,2.577c7.352,9.42 -3.49,22.771 8.283,29.169c2.157,-3.762 -8.221,-7.154 -1.652,-11.232c3.977,-2.482 -1.161,-4.486 1.631,-5.996c0.375,-0.201 12.509,18.177 6.008,23.842c-11.82,10.257 -15.966,-12.163 -20.786,-11.147c-0.588,6.605 6.368,9.415 7.999,15.139m11.117,25.393c-1.915,-1.989 0.952,-8.478 0.015,-11.983c-1.608,-6.016 -3.189,-12.136 3.528,-14.19c10.506,-3.198 2.113,32.012 -3.543,26.173m7.426,0.662c0.763,-5.39 4.835,-10.139 4.001,-15.801c-0.75,-4.961 -3.874,-8.646 -4.338,-13.561c-0.602,-6.344 1.112,-8.661 -4.092,-13.661c-4.35,-4.17 2.121,-2.231 2.769,-5.742c7.39,13.709 21.167,39.521 1.66,48.765" style="fill:#020303;fill-rule:nonzero;"/><path d="M847.463,380.891c1.12,-1.171 0.893,-10.955 3.579,-10.73c3.129,0.266 6.906,19.53 8.378,22.674c4.769,10.204 11.259,20.361 20.056,27.544c7.204,5.884 15.608,10.246 24.087,13.966c8.395,3.691 23.643,3.401 30.505,8.183c0.127,3.407 -19.368,0.502 -22.358,0.425c-13.334,-0.334 -23.437,-5.216 -34.524,-12.187c-17.645,-11.09 -34.25,-27.275 -29.723,-49.875c2.19,-2.288 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M847.57,380.762c-1.451,1.023 -2.278,2.426 -2.47,4.211c-4.501,-12.071 0.792,-3.614 2.47,-4.211" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M179.062,437.953c-0.275,2.223 1.194,3.706 4.409,4.442c5.597,5.021 6.929,5.304 9.432,11.2c4.362,10.272 8.372,20 -0.106,30.153c-1.247,-2.485 -2.465,-4.979 -3.653,-7.494c-2.771,-6.164 -7.364,-2.981 -11.3,-7.059c-8.676,-8.987 -12.789,-22.323 -21.389,-31.768c8.901,-1.572 14.235,0.361 22.607,0.526" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M180.039,481.599c-3.803,-1.292 -5.494,5.514 -9.315,1.666c-2.018,-2.033 8.662,-7.515 8.147,-5.269c-0.431,1.886 -3.002,3.73 1.168,3.603" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M9.513,625.765c-14.468,-0.582 3.363,-13.197 7.975,-8.017c4.794,5.387 -2.435,9.802 -7.975,8.017" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M280.07,378.83c-25.047,0 -20.635,-35.851 1.495,-37.29c24.483,-1.566 21.557,37.29 -1.495,37.29" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M122.402,503.568c-10.91,-2.062 13.165,-7.819 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M414.245,571.307c6.974,-0.65 3.176,14.619 -1.83,9.326c-1.985,-2.101 -2.907,-10.777 1.83,-9.326" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M419.383,580.588c0.014,-0.136 2.878,-16.652 4.648,-10.633c0.703,2.403 -2.11,9.817 -4.648,10.633" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M483.37,533.004c-0.783,0.919 -1.563,1.832 -2.346,2.751c-2.323,-3.136 1.708,-6.209 2.346,-2.751" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M706.03,440.862c0.933,12.816 6.214,53.39 -12.713,54.947c-26.164,2.125 -52.024,4.223 -78.18,6.377c-18.818,1.548 -47.526,5.721 -65.552,-0.491c-20.216,-6.962 -10.568,-41.001 -12.598,-57.127c-1.613,-12.864 1.265,-25.671 0.916,-38.54c-0.248,-9.483 -2.925,-24.974 6.54,-31.176c5.541,-3.629 19.598,-2.879 26.3,-3.815c14.826,-2.078 30.358,-2.663 45.319,-3.145c24.406,-0.786 49.297,1.079 73.664,2.548c19.726,1.17 15.349,57.718 16.304,70.422" style="fill:#020303;fill-rule:nonzero;"/><path d="M715.105,389.452c-1.799,-35.937 54.007,-29.155 52.592,0.856c-1.475,31.218 -55.316,31.679 -52.592,-0.856" style="fill:#020303;fill-rule:nonzero;"/><path d="M494.085,414.105c-28.336,0 -31.702,-50.387 -2.482,-46.111c15.23,2.228 27.842,6.262 29.639,23.318c1.835,17.394 -12.326,22.551 -27.157,22.793" style="fill:#020303;fill-rule:nonzero;"/><path d="M595.617,582.943c-4.746,-0.396 -9.395,-6.38 -2.435,-6.304c8.147,0.092 11.737,4.799 2.435,6.304" style="fill:#020303;fill-rule:nonzero;"/><path d="M725.293,565.328c-0.447,1.294 -8.866,11.533 -9.835,4.592c-0.709,-5.065 7.429,-2.949 9.835,-4.592" style="fill:#020303;fill-rule:nonzero;"/><path d="M713.244,564.012c-3.061,-1.082 -6.194,-4.353 0.083,-4.489c6.182,-0.13 5.945,4.71 -0.083,4.489" style="fill:#020303;fill-rule:nonzero;"/><path d="M690.094,573.188c0.762,-1.247 7.444,-3.451 8.673,-2.414c5.733,4.835 -8.83,2.352 -8.673,2.414" style="fill:#020303;fill-rule:nonzero;"/><path d="M700.474,550.893c1.413,-5.384 9.551,-2.719 8.877,-1.407c-2.118,2.618 -5.079,3.085 -8.877,1.407" style="fill:#020303;fill-rule:nonzero;"/><path d="M636.675,577.206c6.728,-7.356 15.425,4.214 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M603.433,551.617c3.02,-2.145 6.217,-2.134 10.071,-0.954c-3.464,3.327 -6.791,1.879 -10.071,0.954" style="fill:#020303;fill-rule:nonzero;"/><path d="M695.767,546.521c-0.369,-4.371 8.097,-6.762 8.213,-3.204c0.029,0.902 -7.559,3.003 -8.213,3.204" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.992,558.055c-3.948,0.934 -7.042,2.048 -12.03,-0.012c4.828,-0.218 7.786,-3.283 12.03,0.012" style="fill:#020303;fill-rule:nonzero;"/><path d="M575.637,566.667c2.843,-1.986 5.736,-1.23 8.652,-0.526c-2.695,2.541 -5.694,1.587 -8.652,0.526" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.672,576.49c-2.839,1.962 -5.735,1.279 -8.652,0.514c2.695,-2.544 5.697,-1.575 8.652,-0.514" style="fill:#020303;fill-rule:nonzero;"/><path d="M588.057,570.193c-2.84,1.962 -5.736,1.271 -8.649,0.514c2.692,-2.541 5.694,-1.575 8.649,-0.514" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.322,577.921c2.633,-2.027 5.482,-0.871 8.978,-1.539c-3.062,3.998 -6.052,2.769 -8.978,1.539" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.089,543.505c3.009,-1.353 5.934,-3.324 10.059,-1.217c-3.422,2.709 -6.873,1.081 -10.059,1.217" style="fill:#020303;fill-rule:nonzero;"/><path d="M682.755,549.767c-2.39,2.246 -4.864,1.563 -8.927,1.271c3.948,-3.121 6.463,-1.578 8.927,-1.271" style="fill:#020303;fill-rule:nonzero;"/><path d="M619.169,563.169c-3.014,2.163 -3.014,2.163 -8.02,1.723c2.157,-3.641 5.375,-1.552 8.02,-1.723" style="fill:#020303;fill-rule:nonzero;"/><path d="M689.569,553.79c-3.073,3.904 -6.02,2.341 -9.081,2.5c2.281,-3.865 5.493,-1.767 9.081,-2.5" style="fill:#020303;fill-rule:nonzero;"/><path d="M670.035,566.871c2.452,-4.166 5.097,-2.257 7.665,-3.055c-1.749,4.229 -4.696,2.048 -7.665,3.055" style="fill:#020303;fill-rule:nonzero;"/><path d="M934.849,347.848c1.687,2.852 5.615,0.331 6.714,3.842c-2.737,-0.825 -9.838,7.857 -6.714,-3.842" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1064.36,314.482c-12.429,-40.73 52.447,-61.099 70.957,-26.528c8.434,15.757 7.379,33.103 -5.671,46.138c-11.968,11.959 -44.412,11.049 -52.636,-5.742c7.35,-0.543 12.749,6.203 19.604,8.39c8.254,2.63 17.305,0.387 24.35,-4.315c16.38,-10.933 18.845,-32.881 6.333,-47.698c-13.038,-15.44 -39.368,-16.276 -51.288,1.342c-5.494,8.121 -6.496,16.791 -6.36,26.303c0.166,11.419 -3.132,2.11 -5.289,2.11" style="fill:#020303;fill-rule:nonzero;"/><path d="M1041.13,376.734c-1.3,1.522 -12.136,-2.187 -6.492,5.936c3.632,5.228 15.948,1.797 21.108,4.814c-4.991,0.201 -26.218,2.719 -25.689,-6.708c0.343,-6.321 7.356,-7.37 11.073,-4.042c-1.885,2.204 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1183.4,300.232c-8.434,14.43 -22.358,-5.81 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1066.75,316.953c1.691,3.566 8.88,5.738 10.263,11.4c-6.823,-0.925 -11.912,-7.257 -12.653,-13.868c1.492,0.118 1.371,2.021 2.39,2.468" style="fill:#020303;fill-rule:nonzero;"/><path d="M1041,376.856c3.398,-1.909 6.714,-0.304 10.059,0.095c-4.255,0.553 -5.91,1.117 -10.059,-0.095c3.398,-1.909 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M220.938,568.747c-0.692,7.228 -3.78,2.524 -7.385,0.414c-6.678,-3.921 0.839,6.773 0.535,5.771c-2.346,1.457 -4.193,6.487 -6.927,6.75c-8.286,0.824 -2.828,-17.518 -1.906,-20.724c-0.49,0.372 -8.035,8.543 -9.491,5.009c-3.898,-9.389 7.284,-12.985 13.377,-16.419c-13.392,-4.896 7.932,-19.489 12.577,-19.456c3.366,0 -0.52,9.362 0.177,11.596c3.056,9.781 2.574,2.381 -4.355,4.784c1.25,1.108 2.665,1.936 4.24,2.488c-0.408,2.196 -7.015,2.539 -5.437,4.406c1.081,1.277 4.296,-0.266 4.87,1.776c0.535,1.921 0.685,12.267 -0.464,13.791c-3.328,-2.5 -2.314,-7.284 -5.724,-9.864c-0.792,4.832 1.025,8.414 5.913,9.678" style="fill:#020303;fill-rule:nonzero;"/><path d="M221.776,548.956c-20.068,0 7.349,-7.325 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M180.737,553.709c0.78,-3.129 1.557,-6.259 2.518,-10.088c1.861,4.5 -0.476,7.263 -2.518,10.088" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.019,244.228c-2.098,-1.194 -6.332,-16.746 -4.997,-18.309c4.749,-5.509 5.104,18.649 4.997,18.309" style="fill:#020303;fill-rule:nonzero;"/><path d="M279.542,368.751c-11.475,0.086 -10.387,-20.118 -1.422,-20.144c12.376,-0.027 16.079,20.047 1.422,20.144" style="fill:#020303;fill-rule:nonzero;"/><path d="M543.958,458.489c0,-21.126 -2.545,-44.06 0.275,-64.991c2.89,-21.457 40.46,-19.524 56.941,-19.722c24.743,-0.299 49.834,-1.035 74.548,0.032c25.765,1.111 21.734,20.813 23.425,40.884c1.864,22.157 2.508,46.347 -1.023,68.427c-2.258,14.055 -48.744,10.843 -59.208,11.242c-24.698,0.936 -49.778,0.331 -74.385,2.647c-21.82,2.045 -20.573,-22.816 -20.573,-38.519" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M753.793,378.338c15.744,0.946 9.666,22.34 -1.759,21.383c-15.555,-1.253 -15.372,-22.423 1.759,-21.383" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M733.69,381.059c2.364,3.254 1.303,12.228 -2.337,13.839c-1.493,0.762 0.818,-12.323 2.337,-13.839" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M720.828,393.711c0.083,-0.65 -0.836,-8.387 2.736,-5.364c0.854,0.724 -2.266,5.095 -2.736,5.364" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M503.463,398.98c-13.978,0.311 -7.267,-19.145 2.337,-17.919c14.811,1.891 11.277,17.961 -2.337,17.919" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1076.83,328.528c-6.652,-9.797 -9.828,-12.669 -8.425,-25.571c0.981,-8.995 4.117,-17.727 11.23,-23.673c11.256,-9.403 33.566,-11.35 44.468,-0.346c13.8,13.934 18.67,34.885 3.856,50.47c-5.431,5.712 -13.168,9.82 -21.105,10.361c-9.182,0.623 -23.774,-13.02 -30.024,-11.241" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1066.75,316.953c-2.845,0.446 -2.278,-5.518 -2.243,-5.985c2.223,1.463 2.97,3.461 2.243,5.985" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M220.938,568.747c-8.904,5.701 -7.84,-10.505 -7.84,-14.456c4.521,3.756 7.281,9.3 7.84,14.456c-5.958,3.812 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M206.641,553.594c-2.189,4.864 -5.325,7.866 -9.051,10.417c1.023,-6.239 1.59,-6.918 9.051,-10.417" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M212.7,542.261c0.249,-1.587 -4.305,0.464 -3.694,-2.373c0.807,-3.8 3.629,1.014 3.694,2.373" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M278.862,363.769c-4.613,-0.272 -4.249,-4.725 -2.142,-7.698c3.54,-4.994 9.524,5.03 2.142,7.698" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M555.566,422.001c0.972,-13.786 -0.955,-30.526 14.961,-37.01c16.114,-6.563 44.445,-2.84 61.776,-2.651c11.93,0.13 44.903,-3.69 49.229,11.265c5.502,19.241 7.16,39.356 6.451,59.303c-1.433,39.878 -61.371,29.991 -88.118,30.579c-11.507,0.251 -38.504,-0.473 -42.08,-15.757c-3.413,-14.601 -2.742,-30.886 -2.219,-45.729" style="fill:#020303;fill-rule:nonzero;"/><path d="M1080.69,294.885c-0.171,-8.233 14.799,-9.666 14.64,-0.893c-0.178,10.526 -15.331,11.442 -14.64,0.893" style="fill:#020303;fill-rule:nonzero;"/><path d="M558.551,443.206c5.322,-14.477 -2.216,-30.352 5.946,-44.356c7.334,-12.589 23.212,-12.146 36.025,-12.506c19.058,-0.497 37.621,-1.519 56.655,0.508c20.003,2.131 23.602,14.474 26.102,33.073c1.676,12.438 4.595,30.458 -0.54,42.497c-7.332,17.181 -32.917,17.583 -48.313,18.165c-16.764,0.633 -35.848,2.58 -52.346,-1.043c-21.005,-4.619 -18.756,-19.509 -23.529,-36.338" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1089.33,290.983c-1.167,1.944 -5.913,2.261 -4.74,0.588c1.445,-1.185 3.026,-1.383 4.74,-0.588" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M626.903,429.004c-6.672,0.757 -2.012,-10.963 -0.496,-8.469c1.241,2.76 1.406,5.585 0.496,8.469" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M583.7,425.169c-1.442,-3.803 -0.919,-5.207 1.569,-4.208c0.756,1.797 0.23,3.198 -1.569,4.208" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M84.41,505.317c13.91,8.517 28.587,18.313 45.706,13.313c-15.718,9.359 -34.74,-1.835 -45.706,-13.313" style="fill:#231f20;fill-rule:nonzero;"/><path d="M70.212,695.501c-14.261,0.981 -25.047,16.815 -39.832,16.274c6.374,4.805 16.035,15.434 24.847,15.074c10.33,-0.379 23.303,-8.957 32.73,-12.923" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.2px;"/><path d="M33.311,438.73c6.85,-12.06 30.393,-19.453 43.129,-18.455c-10.742,4.483 -24.09,4.267 -33.268,11.912c-3.283,2.01 -6.791,4.838 -9.861,6.543c2.021,-3.558 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M446.814,313.476c-1.058,-19.411 2.062,-38.54 1.598,-57.898c-0.351,-19.01 1.12,-39.776 10.925,-56.564c-11.462,37.441 -5.301,76.847 -12.523,114.462c-0.526,-9.648 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M718.978,189.333c2.828,15.742 1.501,31.593 3.735,47.337c1.933,15.521 3.691,32.196 2.308,47.441c-2.636,-15.632 -3.59,-31.498 -3.741,-47.337c0.151,-15.863 -3.859,-31.909 -2.302,-47.441c1.41,7.843 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M482.862,146.18c-3.697,-10.417 -6.876,-19.421 8.419,-19.421c11.711,-0.053 13.124,20.898 2.63,24.282" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M699.785,140.286c4.228,-9.805 7.786,-22.497 -10.293,-17.775c-11.971,3.135 -7.784,23.977 1.939,21.796" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M207.125,333.397c-5.278,-32.379 51.401,-55.283 76.46,-52.816c-29.232,4.61 -71.968,17.84 -76.46,52.816c-1.389,-8.525 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M697.017,185.026c-0.762,5.316 19.028,34.781 -1.448,30.014c-6.197,-1.442 -2.677,-8.779 2.997,-8.256c9.586,0.892 10.783,12.258 9.352,19.512c-2.928,21.309 -23.099,-8.339 -7.293,-1.985c7.184,3.037 7.911,12.718 6.404,19.219c-2.145,9.235 -15.298,10.231 -12.066,3.709c7.376,-15.29 22.79,34.506 -0.357,25.355c-5.009,-1.516 -0.508,-9.01 3.948,-7.329c10.251,3.723 7.913,18.957 3.283,25.836c-16.457,22.805 -5.887,-30.52 3.839,-6.096c2.062,5.18 2.16,13.366 0.316,18.623c-2.406,6.873 -18.112,3.011 -16.419,11.767c2.323,0.496 7.624,-0.777 10.104,-3.307c-1.838,2.639 -7.982,6.043 -11.04,3.546c-2.784,-10.319 13.522,-5.842 15.647,-12.58c1.527,-4.849 1.235,-12.47 -0.822,-17.136c-3.8,-8.611 -12.473,3.537 -8.836,6.906c3.369,4.43 8.674,-12.55 8.721,-13.765c0.092,-2.582 -7.131,-17.133 -8.505,-9.825c-0.786,4.146 7.001,-0.713 7.341,-1.188c3.357,-4.397 3.546,-11.51 2.302,-16.649c-2.084,-9.111 -11.106,-2.878 -7.353,-0.441c7.158,5.343 9.746,-10.07 9.569,-13.495c-0.234,-4.59 -1.838,-10.03 -6.602,-11.9c-7.559,-3.585 -4.456,7.538 1.623,6.403c6.27,-1.028 5,-13.57 3.472,-17.284c-1.058,-2.568 -12.497,-9.27 -11.058,-3.144c1.217,5.177 14.025,-1.2 10.464,-6.268c-0.464,-6.897 -10.349,-10.393 -7.583,-20.242c-0.854,5.963 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M470.343,329.911c-0.014,-4.217 -2.771,-8.765 -5.591,-11.705c-2.754,-2.872 -12.369,-2.264 -8.309,1.924c7.287,7.512 17.517,-15.479 7.585,-23.425c-1.595,-1.271 -7.573,-2.997 -7.192,1.433c0.709,8.274 14.234,-1.111 15.718,-3.954c2.426,-4.264 0.718,-33.28 -8.969,-27.577c0.692,-1.001 10.322,1.57 10.576,-8.575c0.071,-2.766 -4.116,-19.439 -9.134,-18.221c-5.059,1.229 10.506,10.532 9.273,-2.63c-0.384,-7.406 -5.564,-12.822 -10.133,-15.949c13.659,2.013 0.639,-18.667 7.586,-26.897c-3.564,8.26 10.91,35.754 -8.871,30.854c-1.682,0.26 -3.904,-10.541 6.652,-5.836c7.051,3.25 12.325,16.09 9.019,23.218c-13.103,28.247 -28.91,-15.095 -10.745,-7.547c15.334,6.368 11.995,45.221 -5.095,35.877c-5.975,-3.138 2.648,-11.226 8.567,-3.076c5.21,7.237 6.871,19.161 2.873,27.222c-13.13,24.968 -28.555,-8.806 -10.786,-3.505c20.419,6.094 5.904,42.562 -8.34,32.474c-13.472,-9.545 23.526,-17.095 15.316,5.895c-0.008,-3.002 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M1106.45,589.785c-10.719,-0.207 -22.571,-9.223 -31.315,-14.619c-0.287,-0.18 -24.474,-16.974 -11.487,-17.813c5.576,-0.361 16.803,8.96 21.679,11.572c4.033,2.169 13.088,4.663 15.136,9.314c1.808,4.14 1.592,8.895 5.987,11.546" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M471.109,187.395c1.779,-6.111 3.558,-12.219 5.337,-18.33" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M516.439,222.248c4.583,-36.882 60.221,-49.314 89.934,-41.926c15.252,3.788 33.233,9.282 45.715,19.146c11.643,9.202 16.055,27.686 21.466,40.177c-10.88,-12.618 -14.134,-29.35 -28.658,-38.573c-13.75,-8.129 -30.047,-14.571 -45.296,-19.264c-32.177,-6.82 -68.111,13.351 -83.161,40.44c1.063,-8.557 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M187.546,502.013c-4.527,2.213 -8.945,4.648 -13.23,7.284" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M360.837,542.379c0.144,-9.317 17.627,-11.628 16.492,-2.361c-1.235,10.006 -16.702,14.923 -16.492,2.361" style="fill:#020303;fill-rule:nonzero;"/><path d="M195.312,326.437c3.712,-15.76 15.266,-29.309 29.772,-36.271c15.051,-7.225 41.729,-13.995 58.31,-11.27c19.016,2.606 37.464,11.776 51.495,24.728c12.855,11.861 14.849,30.653 19.548,45.591c-6.475,-9.247 -6.602,-20.314 -14.243,-28.585c-7.885,-8.676 -11.555,-16.282 -21.871,-23.014c-17.045,-11.126 -40.65,-22.624 -61.016,-14.244c-27.71,7.873 -45.881,19.418 -61.995,43.065c4.102,-17.409 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M168.343,489.718c0,0 9.183,-2.639 19.785,-4.808c8.136,-1.664 6.657,5.548 6.102,8.876c-0.555,3.328 -10.17,10.355 -11.834,10.539c-1.664,0.185 -9.615,5.363 -11.094,4.253c-1.479,-1.109 -14.053,-4.068 -2.959,-18.86Z" style="fill:#e1cb94;"/><path d="M82.362,591.601c0,0 9.368,-1.899 19.97,-4.068c8.136,-1.664 7.026,2.589 6.472,5.917c-0.555,3.328 -9.431,7.396 -11.095,7.581c-1.664,0.185 -2.739,0.927 -10.354,1.849c-2.523,0.306 -16.087,3.514 -4.993,-11.279Z" style="fill:#e1cb94;"/><path d="M1053.07,377.864c0,0 -7.267,-0.713 -15.493,-1.535c-6.313,-0.63 -5.144,2.499 -4.467,4.972c0.677,2.473 7.737,4.864 9.016,4.875c1.28,0.012 2.154,0.49 8.014,0.599c1.941,0.037 12.499,1.415 2.93,-8.911Z" style="fill:#e1cb94;"/><path d="M96.72,652.059c0,0 2.926,7.23 3.658,14.225c0.864,8.259 -5.882,8.188 -9.179,7.474c-3.298,-0.714 -4.901,-11.069 -5.006,-12.74c-0.104,-1.671 -6.674,-7.808 10.527,-8.959Z" style="fill:#e1cb94;"/><path d="M19.977,624.149c0,0 -5.005,2.457 -9.93,3.283c-5.815,0.974 -6.03,-4.019 -5.654,-6.488c0.377,-2.468 7.647,-4.073 8.826,-4.218c1.18,-0.146 5.268,-5.254 6.758,7.423Z" style="fill:#e1cb94;"/><path d="M340.675,628.776c0,0 -3.405,7.017 -8.107,12.248c-5.551,6.177 -10.019,1.122 -11.699,-1.804c-1.68,-2.927 4.932,-11.056 6.102,-12.253c1.17,-1.198 1.323,-10.187 13.704,1.809Z" style="fill:#e1cb94;"/><path d="M492.995,627.133c0,0 2.5,8.912 3.134,15.827c0.748,8.163 -1.924,9.658 -4.905,8.966c-2.981,-0.693 -8.886,-16.606 -8.974,-18.258c-0.088,-1.652 -4.823,-5.327 10.745,-6.535Z" style="fill:#e1cb94;"/><path d="M1156.8,476.699c0,0 4.928,3.761 8.267,8.25c3.943,5.299 -0.682,7.981 -3.219,8.828c-2.537,0.846 -7.833,-5.588 -8.583,-6.689c-0.75,-1.101 -7.717,-2.64 3.535,-10.389Z" style="fill:#e1cb94;"/><path d="M1085.82,483.172c0,0 -4.879,8.278 -8.244,15.452c-3.972,8.469 -7.863,4.031 -10.359,1.663c-2.497,-2.367 1.789,-12.658 2.655,-14.336c0.865,-1.678 -2.47,-14.056 15.948,-2.779Z" style="fill:#e1cb94;"/><path d="M1037.09,478.697c0,0 0.734,5.675 -0.448,10.257c-1.394,5.41 -7.452,2.447 -10.235,0.584c-2.782,-1.863 -1.502,-8.87 -1.156,-9.934c0.345,-1.064 -3.958,-7.65 11.839,-0.907Z" style="fill:#e1cb94;"/><path d="M475.27,698.993c0,0 5.903,6.886 8.132,13.656c2.632,7.993 -3.791,9.368 -7.08,9.367c-3.288,0 -8.501,-3.046 -8.967,-4.678c-0.466,-1.632 -8.169,-13.52 7.915,-18.345Z" style="fill:#e1cb94;"/><path d="M353.389,707.784c0,0 -3.959,6.721 -9.066,11.557c-6.03,5.71 -8.894,1.851 -10.333,-1.201c-1.439,-3.052 2.136,-12.398 5.884,-13.261c1.632,-0.376 2.138,-10.047 13.515,2.905Z" style="fill:#e1cb94;"/><path d="M153.671,640.595c0,0 3.481,-0.167 5.137,10.527c1.272,8.206 -8.1,7.633 -11.398,6.919c-3.298,-0.714 -4.161,-8.85 -4.266,-10.521c-0.104,-1.671 -1.311,-1.706 10.527,-6.925Z" style="fill:#e1cb94;"/><path d="M400.766,553.141c0,0 11.587,1.429 22.004,-2.774c7.701,-3.107 9.615,3.143 9.061,6.472c-0.555,3.328 -10.17,10.354 -11.834,10.539c-1.665,0.185 -11.095,2.404 -12.574,1.295c-1.479,-1.11 -17.936,0.554 -6.657,-15.532Z" style="fill:#e1cb94;"/><path d="M1031.31,278.73c3.561,-2.634 4.498,5.426 15.566,3.513c7.02,-1.214 5.223,9.505 3.759,12.606c-1.44,3.052 -6.989,2.933 -8.653,3.118c-1.664,0.185 -5.717,-0.399 -7.196,-1.508c-1.48,-1.11 -18.529,-6.594 -3.476,-17.729Z" style="fill:#e1cb94;"/><defs><image id="_Image1" width="302px" height="111px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAS4AAABvCAYAAABSMy0+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nO2deVzN2f/H37e6pUViSLYkWco6RTHzxYzsIYqEkkYYYxSyzyBbsoWQVGSLsVOETJaGFl++iKEUor1onRb3du/r94epn3Tby106z8fj9XhwP+fePvdz3ud13+d8zuccjlAoJFmAw+GI+xTqlefPn+PSpUvUvn17GjJkCGlra5d+QQDiPDWpRtbipLEiJ+4TqC9krTEf8Pamrdu2kaOTE92+fZuIPn1HWfueX5uSa8iuo3QjM8ZFJFvmNcDEhFpratLZM2fI1taWI0vfTVJgJia9cGSlq/g5kt4dyMrKwsOHD6moqIj4fD7xeDzi8/mkqKhILVu2JE1NTerRowcnJycHzZo1k+wvI4NIevwwiBTEfQINAQCJC77c3FycOHGCLly8SKGhoVRcXFyujLKyMtnZ2ZGjoyMRETHTEg+fZ2CSFkeMT8hkxlWCJASdQCCAn58frV6zhtLT00WWad26NS349VeaM2cOtWjRQvwnzRCJJMQT4xMybVxE4g22O6GhWOjkRFFPn4o8rqenR8uWLqXp06eTkpISaxVSBDMx8SKTXUVxk5OTg+UrVpCPj4/I43379qUVy5fTxIkTSV5enrUAKYR1J8WLzGdcRF83sIKCgvDzvHmUlJRU7lh/Y2PasG4dmZqaEodFu0zCqvXr0CiMi6jhA+r9+/dYtHgxnThxotwxbW1tctu8mSZPnswMqxHBqrrhaDTGRUR09+5dNFFWJsNvv623LhoAnDlzhhydnCgjI6PMMTU1Nfr999/p1/nzqUmTJiyKGzHMxOoXmZqAWhVdu3YlS0tLatuuHQUFBdV51uG9sDAMHjyYpk6bVsa0uFwu/Tp/PsW+fElLnJ05zLQYbLJr/dKojEtTU5Nz5vRpysnJofHm5rRhwwYIhcIaR1J0dDQsLC0xePBgCgsPL31dTk6OZsyYQS+eP6ddu3ZxWrVqxQyLUQ5mYnWnURkXEZGxsTHHycmJAJDLunU03tycMjMzqxVBqamp+GX+fPTq3ZsuXbpU5pj5hAn0+PFjOnTwIEdHR4cZFqNaMBOrHY1qjKuE+Ph4dNbTKx130NHRoc2urjRy5Mhys9WLiooQFBREx44fp6tXrxKfzy/zWT8OHUquGzdS//79mVkx6gU2HlY1jdK4iIgGDx6Mz7t5REQKCgo0aNAg0tXVpaSkJEpMSKA38fGUn59f7v39jIzI1dWVhg4dyqKM0WAwExNNozWuocOGIfTOnRq/z0Bfn9avX0/m5uZsagPjq8LC7f9plDPnASA9NbXa5Zs1a0aWFhY0bdo0GjRoEJvtzhALbLb+/9MojSswMJCiY2IqLaOkpERjzMxo+tSpNHr0aPYsIUOiaOwm1ui6iu/evYOpqSm9iY8vd4zD4dCQH36g6dOm0cQJE0hDQ6PxRQRDqmksJtaoMq4X0dEYPXo0JSYmlnldv3t3mmlvT9ZTplC7du0aR80zZJKSTEzWDaxRGNfHjx+xfccO2rx5MxUVFRHRp0X7rCZPJgcHBxowYAAbaGfIFLLelZRp4yooKMCJkydpx/btFBsXR0REffv0IYfZs2mqtTVbYZTRKJBFE5PJMa7ExER4eXmRt48PZWZmUtOmTWmqtTU5ODiQoaGhbNQcg1FHpNnEZCbjAoDIyEjas3cvnT17lgQCAZkYG5PD7Nk0edIkUlNTk95aYjAaAGnOxKQ+40pOTsZxf386euQIRcfEkIaGBtna2JCDgwP16NFDumqDwZAApMHEpNK4ioqKEBgYSIePHqUbwcEkFApJWVmZnBwdaenSpWzsisGoByTZwKTKuOLj47Fnzx46euwYZWVlEdGnpWRm2tnR2rVr2VQGBqOBkDQTk4oxrvv372PHzp104fx5+txox44bR66bNpGBvr5kXVUGQ8aQtPEwiTUugUCAwMBAcnd3py9XcVBVVaWjR46Qubm5+K8gg9HIkAQTk0jjunfvHubNm0fPX7wod6xDhw506eJF6t27NzMtBkPMiMvEJMq4cnJysHTpUjrk5yfyuImxMZ07d460tLSYaTEYEkZlJnbhwgUcPXaMiD6te2dkaEhWVlakq6tbq7YsMYPzCQkJGDt2LP39/LnI4+PGj6eT/v5stxwGQ8p49eoV9A0MSJTX9DMyIjs7O3JwcCBFRcVqt22JMK7omBgMHz6cUlJSRB7X1NSkv589o+bNmzPTYjCkjPz8fIwcOZIiIiMrLNOlSxfavm0bmZmZVeu5YbFvlsHj8TB92rQKTYuIaM2aNcy0GAwpRVVVlXPz5k3y9vYmXV1dkWViY2PJfMIEGjFyJEVHR1e5c4jYjWvjxo30JCqq0jJDhgz5SmfDYDAaAkVFRc5P9vacF8+f08kTJ6ifkZHIcjdv3iSTAQMoICCgUvMSa1dRKBSig7Y2ZWRkiOz/lvDh/Xs2G57BkDH++9//Yp+nJ50+fZp4PF654+vXraNVq1aJ7DqKNeN6/PgxpaWl0YP//pcS3r2j48eOkcOsWdSxY8cy5cLCwsR0hgwGo6Ho378/57CfHyf+zRtat24dtWnTpszxNWvXkvXUqcTj8cplX2I1rpIu4o0//6Q2bdpwrK2tOV5eXpzYly8p4NIlGjZ8OBER+Rw8SGA7ZjIYMsWTJ08wecoUdNTRobVr14oc5z579iz9umBBufYvVuPiKnyaRuZ//HiZ1+Xk5DhjxozhXAsK4kRFRVGb1q3pyNGj4jhFBoPRAMS8fIlhw4fThfPny22y/CUHDx6kPXv2lHlNrMalpKRERERRT5/Ss2fPRGZUBvr6nH379nEmT5r0Vc+NwWA0HLt37SpdKKE6LFq8mK5fv17qEWI1Lk1NzdJ/+/v7V1pWVVWVDc4zGDLC7du3a/yeadOnU2FhIYjEbFwDBgwgNTU1IiI6f/68OE+FwWB8RWrzXGN2djZdu3aNiMTfVeQMNTUlIqI38fHE5/PZADyD0QjgcrnVKsfhcKh9+/al/z93/jwBgNgnoE6ztiaiTw9o1qTPy2AwpJeqjGvCxIkUdOUKZaSn07HPbswlJydTfHy8+GfOW1paUj8jI1JXV6fg4GA27YHBaATo6umJfF1ZWZkOHDhAZ06dohEjRnA0NDQ4t27dKlPm9evX4jcuDofD2bZtG+Xk5NBMe3synziRkpKSmHkxGDLM9999V+61nj16UGRkJM366SdOyWz55ORk7PbwKFMuNzdX/MZFRDRo0CDO3DlziIgo6MoV6tW7Nx3y8wPLvhgM2eRL4/pl3jyKiIgoswx7dnY2xowZQzk5OWXK8vl8yTAuIqKdO3eWfpnc3FyaM2cOjTYzo5exscy8GAwpg8/n4/79+0hMTBTZfnv37k2rVq6kwIAAykhPJw8PD87na+0VFRXBwsKCnv39d7n3qqioSMZ6XCWkpaVh4Hff0bt370pfk5eXpzmzZ9Pq1atJU1OTzeViMCQQAHjw4AFdDw6m0L/+oojwcGrSpAm9ef26xnMwBQIBpk2bRudETJEaMmQIubm5SU7GRUTUunVrzl+hodS3T5/S1wQCAe338qJu3buT6+bNKCgoYBkYgyEhpKWlYYe7O/r06UMDv/uOXFxc6GZICBUUFND8X36psWkVFhbCbuZMkaZF9OluZK+ePSUr4yohPz8ftnZ2FHDpUrlj7dq1IxcXF7K1sSEFBQWWgTEYXxkAuHnzJu319KSrQUFUXFxcrky7du3o4YMH1LJly2q30cTERFhaWtLD//1P5HF5eXm6GhREpqamHInKuEpQVVXlnD19mpY4O5c7lpSURLNnz6YePXrQ4SNHwCatMhhfj7/++gtDhw6lkaNGUWBAgEjTatGiBV29erVGphUeHo7+xsYVmpa2tjadP3eOTE1NP32mUCiUaPn4+kJRSQly8vIipaenh4OHDuHjx48Q97kyMcmqwsPDMWzEiArbYYmaqqsjIiKiRm3Rx9cXXEVFkZ/XtVs3+Pn5gcfjAQCVSOwXpDoKCQlBay2tSi9Y586d4XvwIDMwJqZ61IMHDzBm7NgqDUtOXh7du3fHo0ePqt3+CgsLMX/+/HKfI6+ggEGDBuHkyZMoLi4uY1hSZVxCoZDev3+Pn3/+ucqLp6urCx9fXxQVFTEDY2KqpZ48eYIJFhbVMiw5eXnY2NoiJyen2m0uKioKvfv0KX2/opISRo4ahQMHDiAlJUWkWUmlcZUoLCwMfT77whWpk64uvH18mIExMdVAz1+8wBRr62obVtt27XD8+HEIBIJqtTM+n48tW7eiSZMmkJOXh6GhIQ4cOIDMzMwqzUqqjUsoFBKPx8MOd3c0VVev8sLqdOqEfZ6e+Oeff5iBMTFVoKysLCxevLjS8eTP1URZGStXrqxRlvXq9WsMHjwYyioqmGlvj4jISAiFwhoZllQbV4nevn0Li0mTqnWhW2lqYs2aNUhJSWEGxsT0r4qLi3Hw0CFotWlTrXbEVVSEja0tYuPiqt2OBAIBfH19od6sGaZNn453797Vyqw+l0TO46opoaGh2OjqSjdDQqosq6SkRLY2NrRw0SLq3q0bmwfGaLRERkbCycmJHjx8WGVZJSUlsp85kxY7O5Nup07VbjdpaWn4ed48SkpKop07d9J/vv++ftqcuB2/PhUREYFx5ubV7p+PHT8et2/frnb/nIlJFpScnAx7e/tqtZFmGhpYsWIFkpOTa9RGeDwe9u7bh+76+vDz84NAIKhzliVzGdeXREVFYbObG509e5aqs8CEkaEhOTs7k4WFBZuNz5BZ/jUT2rBhA+Xl5VVaVlNTkxwdHennuXNJQ0OjRm0iIiICS5YsocFDhtDKFStIXV293tuUTBpXCdExMdi6dSv5+/uTQCCosnzHjh3JycmJ7GfOpKZNmzIDY8gMwcHBWLRoEcW8fFlpOZ2OHcl5yRKaaWdHysrKNWoDGRkZWPXbb5SVlUVbt2yhzp07N1gbkmnjKuFNfDy2b9tGfocPi9zq+0s0NDTIccECcnR0rPGvDYMhSbx6/RrOS5bQ5cDASssZ6OvT8uXLycrKirhcbo1Xc/D19aVTp07R6tWraejQoQ3eZhqFcZWQnJwMd3d38vbxoYKCgirLN2vWjJwcHZmBMaSO/Px8uLm50Q5390p/rE2MjWnFihVkZmZGcnJyNY7x+/fvw8XFhcaPH0+zZ8/+akMtjcq4SsjIyMCePXto7759lJubW2V5ZmAMaQEATp8+TcuWL6ekpKQKy3Xt0oW2bt1KZmZmxKnFXmEfPnyAy7p1pKSkRL//9hs1b978q7aLRmlcJWRnZ8Nz/37as2cPZWRkVFm+xMAWLlzYIAOODEZdiIqKgqOjI929d6/CMt988w2tWbOG5syeXeMuIRGRUCjEoUOH6E5oKK1auZIMDAzE0g4atXGVUFhYiKPHjpH7jh306vXrKsu3bduWdu3cSRMnTqzVrxWDUZ98+PABa9euJW8fH6qoPXO5XFrw66+0cuXKWmdHDx8+hMeePWQ9ZQqNHj1arLHPjOszBAIBLl68SFu3bq1wXaDPmWhhQUcPH67x3RcGoz7Izc3Fbg8P2rlzZ6VDHhaWlrTZ1ZU66+rWKk6zsrKwbft20mrdmubNm0eKiopij3dmXCIAgNDQUHLbupVuBAdXWnbIDz/QlcBA+nyhfwajIcnPz4fn/v20bds2yszMrLCckaEhubu70/e1nK0uFApx7Ngxinv1ihwXLJCoPR+YcVXB3bt3sWLFCoqIjKywjOWkSXTS379Wd2UYjOpSVFQEH19fcnNzo7S0tArLtW/fnlw3bSJra+tax+SjR49w5uxZmjJlCvXt00fi4poZVzUAgMDAQPr999/p+YsXIssscXYmNzc3iatghvTD4/Fw+MgRcnV1pcTExArLqamp0bJly2ihkxOpqKjUKhZTUlJw7Ngx6tatG5mbm0vsGC4zrhogEAiwfv162uTqKvK4m5sbOS9eLLGVzZAuBAIBTpw4QevXr6c38fEVlpOTk6Of7O3JxcWFtLS0ahV7OTk58PT0JBUVFZo7d67Ej9sy46oGYWFh8Pf3pz///LPKu44TJk4kby8vatGihURXPENyEQqFOHv2LK1fv56iY2IqLWs6bBht37qVevXqVat4KyoqgqenJ71LSKBlS5dSu3btpCNuxf2kuqRKIBDg8uXLGDRoUIVPzis1aSJy4bWOOjoIDQ1lK04w1UgCgQCXLl2q1gq/Q4YMwa1bt2odYzweD74HD2KMmRnuhIbW68oNX0NiryxJVGZmJiwnTxYZMP/5z3/g7++Pt2/fgs/nIycnBxcuXMAkK6sy5RS4XCxevBipqanMwJgqlUAgwLVr12BsbFylYQ0aNAghISG1XopJIBDg3LlzGDhwIHbv3g0+ny91psWMS4Tu37+PTrq65QLmR1PTKrddOuTnBxVV1TLvU2vaFMuWLWMGxiRSt2/frjSrL9H333+PGzdu1GntuJs3b+K7776D/U8/ITU1VSoNixmXCEVFRaF5ixZlAqZfv34IDg6uVsAIBAJ4HTggMvCYgTF9ruruUzhw4EBcv369Tob16NEjjBo9GkZGRrgXFibVhsWM6wvFx8ejfYcOkJOXh6qaGiZYWODcuXMoLi6uMmDev3+PXbt3o2fPnlUGooqqKjOwRqqSLuGPpqZVxomJiQmuXr1aJ8OKi4vDtOnT0bJVK3h6ela4R6E0SuyVKSmKj4/Hw4cP8fjxY+Tl5VUru7pz5w5sbG2h9O9WSzWRqqoqli9fjrS0NGZgMi4ej4eTJ0/i22+/rTIu+vfvjytXrtTJsFJTU/HrggVQVlHBnLlzkZ6eLjOGxYyrlkpPT8f2HTugr69fY7MSaWBqaliwYAGePHnCDEzG9O+jOdDT06syDoyMjBAQEFAnw8rOzsbq1avRVF0dJiYmiLx/X+YMq0RsHlc1EAqFuHPnDvn4+tLFixdFLsymrKxMampqn6SqSqqqqpSTm0sJCQn0zz//VOvv9O/fn2bNmkVTrKzY0tFSTHZ2NvZ7edGePXsoPT290rJ9evemtWvX0rhx42o9cfnjx4/w8vIi182biYhos6sr2dvby/QjaMy4KiEtLQ1Hjh6lg76+ZSae9jAwIKN+/cjI0JAMjYyoT+/epKqqKjJIACAnJ4cSEhMpMSGBYmJi6Nbt2xQaGlrhE/3KTZrQ1KlTadasWWRsbMxm4ksJ0TEx8PH2pkN+fpVuRqGgoEDjzc1pjoMDmZqa1rp+BQIBjvv707p16yghIYHmzp1LG9avbxyTn8WdTkuaiouLce3aNVhOnlw6uVRdXR3WU6fi9OnTyM3NrZf0m8/nIzwiAq6urjAdNgxNlJVFdiF69eqFXbt3IyMjg3UlJVBFRUX4448/8MPQoVV2B/X09LDZza3OmxLz+XycOHECvXr1Kp0q8fB//5PZbqEoib3iJUWJiYnYuGkTdP+dw9W8RQvMcnDAlStXUFRU1OBBkZWVBS8vLwwYMEBk0DdRVsbUadMQEhJSrTudTA2rV69fY9WqVVXuAK2opIRJVlYIDg6uc719/PgRhw4dQrfu3SEnLw+tNm1w+PDhet+zUBok9gAQp/h8Pi5fvgzziRPBVVSEnLw8DA0N4ePri/z8fLEFw7O//8aSpUsrbBRdunSB6+bNSEpKYgb2FcXj8XDp0iWMNjODvIJCpYbVuXNnbHZzq/FGqqJUUFAAT0/P0onRClwunBYuRFZWVqMzrEZtXO/evYPLunXoqKNTms3MsLNDWHg4hEKhxAQDj8dDQEAAxpubQ4HLLdc4uIqKGD9hAgIDA8Hj8ZiJNYDy8vJw48YNrFq1CtodO1ZqVgpcLswnTsT169frJSvOy8uD+86daNe+fenf+PHHH/EkKkpiYpQZVwNLIBDgxo0bsJg0qTS76qSrC7ctW5CWlibxgZCQkIANGzZAp1MnkY2mfYcO+P333/HmzRtmYHVQVlYWLl++jOXLl2PgwIEiH6L/Uq00NbFy5cp6u/ZZWVlwdXWFZuvW/z8+1qULLly4IFE/rMy4GlAfPnzAzl270P3fcQF5BQWMNjNDYGCgVD5gWlxcjKtXr2KihQUURHRXSn716/pcW2PR+/fvceHCBSxatAiGhoYiM9uKZGxsjCNHjqCgoKBernNGRgZWr1lT5rEzjebNsX379q8yzipNEnvgNJQePnwIBwcHqKqpQU5eHi1btcLSpUsRGxcHoVAo9gtfH0pOToarq2uFWZiBgQH27N2L7OxsZmCfKTw8HE5OTujbt2+VY1VfSllFBXYzZyIyMrLermlycjKWLFuGpurqZX6A5v3yi1T0Bphx1VEFBQU4cuRImTtz3bt3xwFvb+Tn58uMYX0pgUCA4OBgWE6aBK6IjEG9WTPMnz8fz/7+u9EaWFFREY4fPw4TE5MaGVWJdDp1gtuWLUhPT6+3a/j27VsscHQst6LIiJEjEfX0KTMsWTeu2Lg4LF26FC1btSqt/EGDBuHixYulg6TivtBfS6mpqdiyZQt0O3cW2QCHDhuG8+fPN6rB/OvXr5c+QF9TDR85EpcuXQKfz6+36xUbG4vZc+aUe8ZV38AAV65cYeNY1ZDYg6q24vP5CAgIwKgxY0orXl5BAZaTJyP8091BakyG9aUEAgFCQkJgNWUKFP+9GfG5OurowHXzZpl+yJvP58PFxaXG3UGN5s3h5OSEF9HR9Xptnj9/Dhtb23LjaN+0bAkPDw/weDyIO26kRWIPrpoqJSUFm74Y11FVU8P8+fPxMja20RuWKKWlpWHrtm3o2rVruUbaRFkZtjNm4NatW3W+hZ+amgrP/fux38sLvgcP4sqVK/XataqJ8vLyyvyoVUc9e/aE14EDyM3NrddzfvToESZbWZUzUEUlJTgtXIgPHz5A3DEibRK7EVVHAoEAf/31F6ZNn14mvW6tpYV169eXNg5xX0xJl1AoxK3btzF16lSRt/k7d+6MdevX1+q2fkFBAVavXg0TE5NyXaAuXbpguo0Ndnt4ICIiAoWFhQ1qZtnZ2dVaVbREgwcPrvNSMl+q5NGxMWZm5f4eV1ERsxwc8OrVK4g7JqRVYjelypSTk4P9Xl7o3bt3mYrv1q0bvA4ckOkB94ZWRkYGduzYUfr4yOeSV1DAsBEj4O/vX3qNa2pi9+7dww53d0yysoJG8+blsjwTExMsWrQIAQEByMrKqjfDSEtLq/YA/Dhzc9y9e7deTTQ3Nxd79+6FvoGBSMP6adYsxMXFQdz1L+1qEMPh8/l1GjspKCjAlq1by8xn4SoqwnLyZNy4caN0oFTcF08WJPy0ZE+FCyI2b9EC8+bNQ2RkZK0zkvz8fPzxxx8YM3Zs6eTfLxv0gAED8NtvvyEkJKTW86L+/PNPtG3XrlKz4ioqwnbGDDx9+rReDSs2NhYLFy0qZ9Jy8p+mNsy0t0dsbCzEXd+yIjp9+jQ2btqER48e1SlV5vP58PbxwWgzM2g0bw4FLhduW7bU6PMEAgFOnjxZZrOKjjo62LBxIxITE5lZNbA+fPiAXbt2wUBEtlAyBrRt+/Y6rW6QkpKCnbt2wdDQsEJzUVZRwdBhw7DJ1RV3796tdEVagUCAp0+fYvHixZUOwquoqmLBggV4/fp1/XYHr1/H2HHjRP5tBS4XM+zs8PLlS4i7bmVNJBAIYDVlCuTk5dFBWxtz5szBxYsXazRA+fjxY5Hp+TctW1b7NnJYWBgGDhxY2lUZM3YsAgIC2J0WMUgoFOLu3buws7MTudxOyTOS58+fR1FRUa2N4OnTp1i+fDk6aGtXmiUpcLno2bMn7GbOhIuLC3a4u+OAtzfmzZtX4eTbz987d+7cen0gPTc3F3v37RPZHSz5m7YzZiA6OprFbgOJAFBhYSGG/PBDuXGIEaNGYbeHR+lsc1G/OC7r1olM/zvq6OCAt3eVwfLq9WtMsbaGvIICBg4ciG3btiE+Pp5VuIQoMzMTHh4e6FHBRiCtNDWxYMEC3L9/v9YZO4/HwyE/P5HbwtVF4ydMwN/Pn9fr/KtFixeL7A6W/OBOt7HBixcvWPw2sEr/UVRUhBUrV1aYbuvr68PZ2RkhISEoKipCXl5ehZumTp4ypcoJjpmZmVixYgVMhw3Dzp078fbtW1bZEiyhUIiwsDDMnDmz9DGqL9WjRw9sdnPDu3fvamUWhYWF2LtvX5XjVFXJxMQEd+7cqRfDEggEuH79OsaNH19h21BUUsJ0Gxs8f/6cxfBXUrkX/rp7F127das0MJqqq5cuuCdKffv2FWlcHz9+RFBQEPZ7eeHgwYNISkpiFS2FysrKgoeHB3p9cbf388xj2IgROHbsWLV2TPpS//zzD37++ecaG5aenh5OnTpVL9Ma8vLy4OnpCYMePSr8e5319ODm5ib1m6tKo0S+WFxcjKCgIEz4bIG9msrQyAhBQUFITU1Feno6Pn78iBcvXiAvL49VsoxIKBQiPDwc9vb2FWZh6s2awd7eHjdv3qzxBNc//vgDzTQ0qhVvc+fOrZdVGuLi4rDY2bncxsAl4ioqwsLSsnSTVnHXQWMVB0Cla9KnpKTg3r179OjxY3r06BHFxMSQnJwccblcUuRyifu5FBVJXV2dDL/9loyNjcnIyIi++eYb2V+4n0HZ2dnwP3GCfLy96emzZyLLaGtrk8306WRja0tdu3SpVlzEvXqFkSNH0tu3b0UeV1FRIc99+8jGxqbWcZaXl4dz587RsePH6c6dOyLLdOjQgWY7OJC9vT21bduWxbS4EbdzMsmWhEIhIiIi4ODgALWmTSvMkAYOHIj9Xl748OFDlVnSnTt3RI4v6evr49mzZ7W+IXD12jVMmz69wmxRgcvFeHNzXLlyRaZ2gZYFif0EmGRX2dnZ2L9/f6U7ODdRVsYkKysEBATg48ePFZrQ0qVLy7zvR1NT5OTk1Ni0njx5Amdn50pvALTv0AFrXVzw7t07iPsaMolWlV1FBqOuAMCDBw/I28eHTp06Rfn5+TUsCiUAAAF7SURBVCLLaWpq0lRra7K1taU+ffqU2W8wLS0N7dq3J6JPm+8+jYoiHR2dKrtsfD4fYWFhdDkoiIIuX6aYly9FlmvTpg2NHTuWzMePp+HDh5OCggLrDkowzLgYX5W8vDycOXOGjh49Sg8fPqywnIGBAU2dOpWmTJlCWlpanIKCAmhpaRERUevWrSk2NrZCY8nMzMSNGzfo2rVrdOPGDfqnAqPs07s3jRo1ikaNHk19+/SR6Z2fZQ1mXAyxkZaWhrCwMAoPD6fo6GiRZTgcDn377bfUsWNHunDhQunro0ePpn79+pGysjKlpqZSQkICJSYmUmJiIqWkpBAAkpOXL/M52tra1L1bN+ratSv17duXWrZsyYxKSmHGxZAI8vLyEBcXR2/fvqWsrCzKzs4moVBY48/hcDjE5XKpadOm1Lx5c2rTti210dKi1q1bk6KiIjMqGYEZF0PiAD7dneTxeFRYWEiFhYXE4/HKHC+Bw+GQkpJSGXG5XGZQMs7/AWHwOYILk2IdAAAAAElFTkSuQmCC"/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/machine.svg b/go.dev/_content/images/gophers/machine.svg
new file mode 100644
index 0000000..7fe82b7
--- /dev/null
+++ b/go.dev/_content/images/gophers/machine.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1202 798" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;"><path d="M935.125,266.226c-30.316,2.378 -65.653,5.999 -81.147,36.876c-17.879,35.627 -23.872,70.714 -31.498,109.77c-3.182,16.288 -10.436,30.778 -16.903,46.07c-2.766,6.547 -7.6,39.482 6.396,24.225c15.38,-16.766 18.274,-27.125 24.58,-49.259c4.69,-16.455 6.867,-31.181 8.602,-48.279c6.716,19.352 10.011,27.141 24.986,40.849c8.212,7.513 28.415,16.602 39.326,16.602c36.079,0 66.661,-3.781 90.658,-32.631c25.294,-30.41 24.439,-60.051 13.029,-96.994c-9.479,-30.688 -50.267,-42.536 -78.029,-47.229" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M502.89,323.85c1.351,-23.863 2.951,-46.682 6.892,-70.222c1.777,-10.602 3.397,-20.959 6.227,-31.315c4.706,-17.233 7.987,-19.691 22.274,-30.87c34.207,-26.767 103.176,-17.669 123.018,21.958c5.407,10.798 10.926,21.493 16.599,32.154c4.866,9.139 3.352,23.19 4.254,33.402c0.759,8.564 5.478,21.712 2.622,29.795c-3.976,11.256 -4.946,9.069 -16.416,9.46c-55.159,1.879 -110.315,3.758 -165.47,5.638" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M448.467,336.655c0.903,-27.727 -0.858,-56.885 2.798,-84.362c1.834,-13.788 0.871,-32.355 6.012,-45.206c5.788,-14.47 21.327,-21.823 30.016,-6.994c13.074,22.313 5.388,64.426 4.968,88.481c-0.121,7.04 3.979,35.887 -0.72,41.364c-4.962,5.785 -34.914,5.446 -43.074,6.717" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M520.406,619.954c-6.079,4.146 -59.695,39.434 -58.837,40.82c11.57,18.725 22.544,45.494 37.244,61.882c7.002,7.808 14.861,21.042 23.943,26.215c9.851,5.609 19.381,11.381 28.902,17.521c18.948,12.223 38.22,29.616 62.067,19.24c14.572,-6.338 29.145,-12.677 43.717,-19.016c10.795,-4.696 14.067,-1.059 25.256,3.743c14.614,6.271 29.228,12.542 43.842,18.811c6.425,2.762 21.983,10.638 27.656,8.144c15.059,-6.611 134.302,-57.73 125.178,-69.527c-9.264,-11.985 -33.306,-15.107 -47.101,-19.947c-17.565,-6.163 -35.041,-13.026 -52.841,-18.491c-17.098,-5.25 -34.606,-12.344 -52.089,-15.991c-15.456,-3.223 -34.263,9.745 -49.102,15.748c-10.318,4.174 -20.635,8.349 -30.95,12.523c-6.303,2.552 -11.794,-8.416 -15.792,-12.872c-13.132,-14.64 -22.781,-27.836 -32.923,-44.697c-4.446,-7.389 -8.919,-14.768 -13.375,-22.153c-2.471,-4.085 -11.048,-24.625 -15.667,-25.944c-3.944,-1.127 -19.013,9.284 -22.627,11.048l-26.501,12.943Z" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M682.164,320.648c1.319,-26.174 2.635,-52.348 3.954,-78.522c0.448,-8.852 -4.028,-62.259 15.641,-58.463c19.9,3.839 18.741,2.568 20.121,22.787c0.624,9.134 1.043,18.248 1.434,27.394c1.22,28.787 2.446,57.573 3.669,86.356c-14.941,0.15 -29.878,0.301 -44.819,0.448" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M563.562,3.833c-2.83,41.37 -5.663,82.741 -8.493,124.112c-7.091,-16.948 -14.179,-33.896 -21.267,-50.844c-3.588,-8.576 -9.149,13.827 -9.636,15.636c-2.321,8.592 -4.366,17.271 -6.546,25.902c-6.093,-4.239 -28.528,-6.333 -18.35,5.359c-20.7,5.333 -13.737,7.965 -15.239,26.062c-1.146,13.762 -9.056,29.285 -13.154,42.536c9.793,-0.679 10.881,1.011 13.324,-8.109c2.686,-10.03 5.372,-20.057 8.058,-30.086c1.584,-5.916 6.578,-5.923 10.542,-11.176c1.978,-2.622 -1.982,-7.446 1.354,-9.71c4.075,-2.766 4.706,-5.093 0.838,-9.623c7.709,1.93 14.349,7.286 17.137,-1.095c2.971,-8.948 5.945,-17.892 8.919,-26.84c10.027,19.516 20.053,39.028 30.08,58.54c3.153,-43.433 6.31,-86.872 9.463,-130.307c11.659,30.598 23.322,61.193 34.981,91.792c6.502,-20.703 13.01,-41.406 19.512,-62.109c6.412,34.596 12.821,69.19 19.233,103.787c11.913,-23.441 23.825,-46.877 35.74,-70.314c2.193,9.501 7.968,22.335 7.389,31.997c-0.237,3.976 -4.834,5.82 -3.419,10.062c2.186,6.582 5.474,9.408 10.404,14.39c5.289,5.343 4.149,25.476 5.09,32.759c2.116,16.375 1.191,14.758 17.857,13.404c-10.795,-11.048 -15.501,-33.345 -14.566,-48.961c0.669,-11.183 6.867,-11.375 -0.759,-19.74c-1.367,-1.501 -8.003,0.279 -8.496,-1.898c-1.05,-4.655 -2.1,-9.31 -3.15,-13.961c-2.92,-12.93 -3.88,-44.537 -16.144,-21.84l-28.502,52.749c-4.706,-32.324 -9.408,-64.645 -14.111,-96.968c-2.023,-13.894 -7.584,-9.249 -11.333,1.725l-16.179,47.306c-10.645,-28.143 -17.55,-65.214 -37.699,-87.854c-0.961,1.104 -1.918,2.212 -2.878,3.317" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M470.876,192.595l12.975,-41.995c1.63,-5.273 -3.249,-11.474 -1.303,-16.948c2.958,-8.31 8.33,-7.488 16.711,-9.655c-10.17,-11.717 12.281,-9.569 18.36,-5.346c2.18,-8.634 4.226,-17.319 6.547,-25.915c0.486,-1.809 6.044,-24.199 9.626,-15.635c7.088,16.948 14.175,33.895 21.263,50.843c1.521,-22.163 3.035,-44.325 4.553,-66.485c0.899,-13.148 -3.592,-51.25 6.822,-60.944c20.162,22.624 27.064,59.728 37.708,87.867l16.17,-47.315c3.752,-10.975 9.309,-15.623 11.333,-1.729c4.702,32.324 9.405,64.644 14.108,96.968l28.511,-52.748c12.271,-22.698 13.228,8.916 16.147,21.846l2.824,12.514c1.028,4.552 6.367,0.646 8.823,3.339c7.616,8.355 1.424,8.576 0.759,19.739c-0.932,15.626 3.761,37.917 14.566,48.961c-13.939,1.133 -15.575,4.357 -17.361,-9.479c-1.313,-10.187 -0.196,-26.401 -4.604,-35.695c-5.144,-10.843 -15.571,-10.558 -8.618,-24.189c3.374,-6.617 -5.032,-25.857 -6.739,-33.259c-11.918,23.441 -23.833,46.884 -35.749,70.324c-6.412,-34.597 -12.824,-69.19 -19.237,-103.787c-6.498,20.706 -13,41.416 -19.499,62.118c-11.662,-30.598 -23.325,-61.199 -34.99,-91.798c-3.154,43.433 -6.31,86.872 -9.467,130.307c-10.023,-19.512 -20.053,-39.021 -30.079,-58.53l-8.91,26.837c-2.782,8.381 -9.428,3.019 -17.133,1.089c6.025,7.055 -2.203,9.322 -2.203,17.047c0,8.125 -8.579,6.165 -9.914,11.147c-2.58,9.629 -5.158,19.265 -7.738,28.898c-3.041,11.355 -2.193,10.776 -14.262,11.608Z" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M403.648,380.754c-12.376,-2.804 -24.752,-5.608 -37.132,-8.413c-14.902,-3.377 -10.523,-12.526 -11.579,-27.326c-0.698,-9.771 -10.718,-22.999 -14.937,-31.754c-6.153,-12.767 -12.015,-16.996 -23.562,-25.835c-29.897,-22.896 -111.073,-6.348 -119.118,34.994c-3.82,19.621 -11.458,51.881 3.844,68.979c6.72,7.507 14.387,20.872 24.119,24.16c11.672,3.944 21.395,10.2 32.795,14.413c16.643,6.153 51.72,3.153 64.654,-10.353c8.195,-8.558 18.279,-16.83 25.05,-26.568c4.203,-6.041 3.672,-8.593 10.385,-6.105l24.039,8.906c16.996,6.297 20.293,0.259 21.442,-15.098" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M221.173,410.285c4.376,19.685 14.915,44.419 14.329,64.466c-0.314,10.654 -6.998,23.766 -10.014,34.007c-2.67,9.07 13.289,15.014 20.223,19.977c8.083,-25.397 10.676,-42.857 10.676,-69.492c0,-7.059 -2.971,-25.902 -7.068,-31.482c-5.289,-7.196 -20.444,-12.693 -28.146,-17.476" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M67.11,424.623c-7.324,4.033 -14.646,8.064 -21.97,12.094c-9.998,5.506 -8.996,4.725 -16.282,-4.972c-3.269,-4.357 -14.307,-0.761 -13.795,4.258c0.775,7.571 4.13,18.206 0.269,24.932c-18.571,32.353 2.459,59.804 4.853,92.88c1.191,16.494 1.742,32.833 1.473,49.384c-0.314,19.032 8.896,27.202 21.82,40.353c3.493,3.55 10.888,7.833 15.683,9.204c4.508,1.283 25.118,3.454 27.839,6.252c4.508,4.629 -0.947,16.986 9.697,16.986c8.378,0 11.973,-5.298 9.133,-13.967c12.825,3.745 31.137,-7.556 42.296,-13.408c13.392,-7.023 21.536,-19.256 28.572,-32.605c5.394,-10.235 5.795,-11.314 2.958,-22.425c-1.677,-6.57 -1.562,-9.099 -0.377,-15.716c3.271,-18.292 6.543,-36.584 9.812,-54.877c2.311,-12.927 -7.235,-34.549 -10.005,-47.514c-1.898,-8.88 -10.99,-28.338 -18.772,-32.999c-16.436,-9.841 -27.538,-14.63 -46.112,-18.987c-17.034,-3.999 -29.593,-1.483 -47.092,1.127" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M89.298,453.728c-11.688,16.865 -12.498,35.154 2.343,50.412c12.921,13.279 37.747,16.205 50.546,1.604c15.843,-18.072 12.248,-34.853 -1.93,-52.262c-14.672,-18.024 -34.581,-8.823 -50.959,0.246" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M494.205,651.092c-2.507,-0.958 -8.97,-12.479 -7.575,-13.459c-2.986,2.094 -11.505,9.018 -15.75,12.396c-12.386,9.863 -1.607,21.561 4.328,31.6c18.039,30.499 -37.516,37.523 -57.653,37.596c-23.878,0.093 -59.183,-1.399 -75.484,-21.737c-7.616,-9.495 -10.654,-21.506 -11.745,-33.405c-1.652,-18.024 3.044,-18.811 11.716,-31.825c-2.538,4.229 -22.185,18.827 -17.063,4.805c5.984,-16.253 3.73,-24.848 0.593,-41.87c-1.531,-8.295 -7.463,-35.717 0.477,-42.107c-2.037,1.636 33.136,10.923 35.48,11.486c-43.391,-2.282 -54.823,-51.442 -14.627,-70.906c13.948,-6.751 43.4,0.189 49.169,16.705c6.224,17.818 -2.065,38.464 -16.986,48.894c12.171,-8.545 24.023,-25.438 20.847,-41.23c-3.867,-19.234 -27.695,-30.573 -45.606,-26.866c-28.556,5.91 -2.984,-13.026 10.26,-17.325c20.806,-6.755 44.812,-6.07 66.348,-4.649c20.843,1.364 45.023,6.406 62.835,17.905c10.305,6.653 15.876,21.539 -0.077,11.205c-13.951,-9.034 -37.164,-5.106 -48.023,6.463c-14.607,15.594 -9.514,33.826 1.694,48.849c-14.329,-12.6 -13.785,-35.333 -1.383,-49.034c9.898,-10.958 40.529,-16.801 51,-3.39c36.201,18.967 2.581,69.421 -32.195,60.755c16.231,5.695 26.078,-5.507 40.359,-5.296c7.664,0.116 0.326,30.022 -0.356,33.806c-3.121,17.316 -8.499,25.883 -5.314,43.586c0.416,2.315 3.022,29.654 -5.269,17.048" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M336.613,496.662c-8.423,9.899 -25.876,38.867 -10.216,50.264c12.726,9.262 39.031,27.644 54.577,10.929c11.022,-11.854 27.931,-35.249 12.376,-51.416c-17.681,-18.382 -34.126,-17.556 -56.737,-9.777" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M450.852,496.662c-8.426,9.895 -19.616,38.867 -3.955,50.264c12.725,9.262 32.77,27.644 48.313,10.929c11.032,-11.857 27.915,-35.243 12.37,-51.416c-17.668,-18.385 -34.123,-17.553 -56.728,-9.777" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M208.156,609.38c3.451,19.026 11.41,40.433 0.298,58.338c-12.844,20.697 -35.618,20.895 -58.11,20.457c-20.758,-0.404 -40.273,2.631 -60.752,6.178c-10.334,1.793 -20.604,3.887 -30.419,7.764c-9.46,3.735 -18.686,11.768 -29.09,12.193c8.941,6.701 18.622,17.918 30.329,13.305c13.833,-5.455 27.679,-10.827 41.614,-16.026c11.086,-4.139 25.159,-2.362 36.658,-1.885c14.08,0.586 27.445,-2.389 41.368,-4.633c23.677,-3.816 49.336,-17.863 56.206,-42.462c3.611,-12.933 1.178,-25.284 -1.713,-38.025c-4.591,-20.255 -6.64,-16.971 -26.389,-15.204" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M843.643,323.066c0,0.145 0.215,0.401 0,0c0,0.055 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M494.16,503.712c0.265,-0.138 0.316,-0.183 0,0c0.083,-0.045 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M528.814,753.659c-0.211,-0.064 -0.39,0.144 0,0c-0.064,-0.019 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M841.095,325.036c-3.217,19.813 -13.538,18.084 -29.013,23.802c-4.7,1.732 -16.673,10.823 -20.505,3.726c-3.63,-6.716 -8.803,-12.434 -15.113,-16.724c-13.465,-9.149 -30.448,-5.916 -43.65,-13.471c-5.952,-3.403 -5.058,-40.599 -4.088,-47.242c-0.82,9.841 4.997,46.282 -9.576,46.525c-6.677,0.112 -9.261,-0.352 -11.355,-7.056c-2.42,-7.763 10.04,-11.63 4.53,-19.47c0.746,6.511 -15.529,23.635 -16.624,14.72c-3.688,10.878 5.247,2.205 7.952,3.169c-1.281,4.658 2.929,9.818 -7.719,7.254c-10.141,-2.423 -6.53,-7.907 -6.825,-15.83c-0.717,-2.165 -1.956,-3.976 -3.717,-5.443c-0.425,-2.506 4.377,-7.119 4.412,-9.664c0.17,-14.477 0.096,-28.953 0.096,-43.43c-4.072,-0.137 -2.385,37.43 -3.109,43.141c-1.885,-14.047 0.353,-43.618 -10.935,-53.955c-4.04,5.193 3.899,31.344 4.427,38.019c0.82,10.389 6.329,32.935 -0.89,42.207c-5.721,7.35 -24.752,2.922 -32.093,3.435c-4.933,0.342 -44.864,-0.561 -45.824,1.098c-2.51,4.347 -20.725,-0.116 -25.857,0.525c-18.235,2.282 -36.626,2.311 -54.922,4.798c-17.54,2.385 -14.131,-13.26 -13.065,-27.813c1.098,-15.024 1.226,-30.089 2.898,-45.036c-4.3,15.139 -5.391,30.947 -7.802,46.438c-4.36,-12.539 -10.321,-25.338 -8.522,-38.979c-3.992,10.148 -2.878,20.61 -2.817,31.226c0.045,7.737 3.422,27.496 -1.947,33.924c-3.624,4.338 -24.762,5.801 -30.63,6.896c-8.029,1.501 -9.505,1.12 -10.478,-7.181c-1.681,0.81 -2.388,2.139 -2.116,3.992c-1.735,7.706 -4.61,5.206 -10.574,6.765c-7.571,1.978 -17.319,5.714 -23.952,9.815c-8.628,5.337 -16.333,17.729 -19.589,27.125c-3.682,10.683 -18.008,-1.092 -19.512,4.427c8.656,0.711 27.333,4.485 31.85,12.425c7.817,13.708 -25.838,4.783 -29.555,5.359c16.807,3.448 3.675,44.044 2.965,55.837c-0.413,6.909 1.648,19.333 -6.634,22.445c-3.918,1.472 -18.961,10.42 -22.172,7.766c-6.259,-5.157 -20.789,-7.273 -26.469,-0.233c-9.565,11.873 4.572,9.988 7.299,17.207c1.604,4.248 -8.621,22.358 -9.985,27.557c-1.824,6.998 -4.248,33.87 -1.056,40.004c3.605,-1.764 0.531,-5.872 3.109,-8.324c0,10.564 -1.566,20.572 -0.317,31.197c1.402,11.941 5.656,24.375 4.651,36.489c-0.579,6.953 -7.027,13.605 -5.49,20.591c1.223,2.231 3.118,3.668 5.692,4.309c1.722,2.446 0.515,11.947 0.643,13.945c0.612,9.472 2.673,18.888 6.848,27.454c6.361,13.058 1.184,10.453 -0.391,23.123c-1.655,13.28 15.2,17.473 22.243,8.609c-4.408,-1.873 -2.135,-9.953 2.126,-9.799c7.235,0.262 11.342,7.135 19.88,6.437c22.912,-1.959 45.049,3.676 68.172,-1.12c5.868,-1.22 17.649,-7.594 21.356,0.336c2.814,5.999 6.054,9.646 12.995,9.614c7.74,-0.039 16.202,-2.408 21.394,5.397c6.403,9.633 15.92,16.618 26.888,20.197c-0.458,-4.245 -21.065,-16.499 -25.041,-22.057c-3.438,-4.805 -24.301,-32.09 -19.71,-37.014c1.143,1.63 2.538,3.006 4.19,4.13c-3.191,-15.888 -18.503,-26.776 -21.999,-41.825c-1.089,-4.693 8.935,-9.492 11.809,-11.186c10.334,-6.079 4.274,2.882 11.5,3.739c-2.149,-5.884 -3.493,-11.95 -6.714,-17.415c0.218,10.196 -5.772,12.056 -13.388,17.819c-13.432,10.164 -7.023,17.722 0.135,29.647c6.3,10.491 11.742,14.474 1.044,23.405c-10.712,8.942 -24.276,12.024 -37.84,13.712c-24.417,3.038 -61.213,3.486 -82.21,-11.618c-10.437,-7.507 -16.026,-20.245 -18.552,-32.503c-1.597,-7.76 -1.895,-15.693 -2.292,-23.578c-0.295,-6.217 6.153,-3.845 6.944,-6.335c-0.906,1.229 -0.698,2.244 0.617,3.041c2.661,-6.169 5.84,-11.8 6.704,-18.609c-5.782,6.63 -9.975,15.625 -19.666,17.04c1.053,-5.535 2.497,-11.179 5.583,-15.984c4.975,-7.773 0.192,-10.766 -1.588,-18.443c-3.963,-17.095 -7.497,-36.93 -2.993,-54.186c6.505,4.482 33.809,20.531 41.028,9.704c-41.985,8.598 -59.877,-42.661 -25.06,-64.337c12.162,-7.552 47.614,-7.101 51.699,11.652c5.602,25.573 -5.529,34.463 -21.161,51.51c7.552,3.492 18.248,-10.901 21.49,-15.888c7.985,-12.284 10.161,-26.322 1.592,-38.765c-5.712,-8.292 -15.095,-14.221 -24.833,-16.545c-6.044,-1.444 -26.376,5.164 -28.7,3.835c-9.121,-5.224 9.329,-9.613 11.089,-11.275c13.5,-12.699 35.721,-12.398 53.443,-12.795c30.691,-0.685 81.961,1.985 95.726,33.588c-1.981,-1.956 -4.341,-2.753 -7.084,-2.395c1.194,5.145 8.768,10.498 11.022,15.956c3.73,9.047 3.931,17.197 -0.323,26.055c-8.347,17.393 -20.195,17.923 -34.977,18.51c-3.14,0.125 -6.413,0.253 -9.813,0.545c15.229,5.404 25.05,4.033 39.981,-3.266c9.732,-4.651 2.462,19.02 1.659,25.019c-2.097,15.677 -11.16,28.508 -7.421,44.236c2.362,9.917 9.197,22.748 -2.414,21.394c-0.528,3.342 3.205,4.722 5.753,3.374c6.588,-3.486 -0.279,-12.757 0.679,-17.552c1.213,-6.096 31.443,-20.55 37.484,-24.407c3.47,-2.216 29.314,-19.717 31.667,-14.099c3.989,9.543 10.181,17.87 15.639,26.577c1.978,3.16 13.519,17.649 13.58,17.867c-2.699,-6.262 -5.282,-8.605 3.384,-8.285c13.839,0.522 27.653,-0.765 41.473,-1.271c24.084,-0.88 48.257,-2.007 72.369,-3.483c9.972,-0.611 21.43,-3.589 31.373,-1.822c7.76,1.38 7.491,10.847 11.576,15.924c6.976,8.679 17.067,6.415 26.498,4.725c10.849,-1.95 27.4,1.249 36.364,-6.54c-6.189,0.701 -45.386,1.78 -34.36,-16.285c3.255,-5.331 13.66,-2.392 18.17,-6.602c7.652,-7.132 3.173,-24.714 2.363,-33.489c-2.065,-22.467 -0.272,-44.93 0.65,-66.901c0.426,-10.129 -2.065,-23.306 6.198,-31.104c7.084,-6.681 16.16,-15.242 16.631,-25.761c-1.681,3.307 -15.94,26.065 -20.822,23.389c-13.471,-7.389 4.242,-22.387 0.058,-28.175c-4.636,-6.79 -4.838,0.096 -5.952,-13.817c-1.168,-14.646 -0.685,-29.039 -1.066,-43.679c-0.153,-5.967 -6.194,-25.633 -0.649,-29.516c3.87,-2.728 26.03,-15.527 30.463,-11.013c4.428,4.508 -6.341,42.517 -7.808,49.797c-1.344,6.678 -14.595,36.777 -10.244,41.14c11.23,-18.456 12.962,-43.051 15.943,-63.889c1.508,-10.551 3.662,-20.956 5.961,-31.36c2.09,-9.479 8.634,-23.034 8.147,-32.625c-1.418,-0.16 -2.263,0.442 -2.536,1.809m-369.34,349.803c-2.359,-4.114 -6.531,-7.024 -6.787,-12.194c1.991,3.582 6.89,16.669 12.94,15.257c-4.709,3.291 1.028,5.491 0.868,9.002c-2.497,-3.931 -4.841,-7.952 -7.021,-12.065m27.832,-348.67c-12.36,-6.082 -5.016,-23.514 -5.003,-36.034c5.765,5.558 4.424,35.746 5.003,36.034" style="fill:#020303;fill-rule:nonzero;"/><path d="M864.843,289.626c0.951,-0.96 -0.061,0.093 0,0c0.138,-0.138 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1193.79,307.496c23.587,-15.693 -16.817,-21.064 -20.772,-26.297c-13.126,-17.368 -40.561,-22.79 -52.71,-38.905c-0.098,-0.13 1.93,-9.497 -9.208,1.113c-8.599,8.185 1.027,6.199 -14.048,4.134c-9.546,-1.309 -16.927,1.702 -26.808,-1.936c-12.452,-4.585 -41.266,-4.478 -47.716,6.274c0.055,-2.404 -0.491,7.991 0.81,8.759c4.177,2.466 2.888,9.854 2.856,13.231c-0.103,10.747 3.71,18.184 -1.188,27.928c-5.365,10.687 -5.932,8.785 -12.687,0.269c-6.425,-8.105 -15.478,-16.134 -23.824,-22.236c-14.681,-10.731 -43.852,-21.977 -62.131,-17.486c1.037,0.458 2.01,1.028 2.916,1.713c-24.932,2.058 -44.457,6.102 -64.014,25.188c14.112,-3.515 25.931,-15.856 40.795,-20.21c-9.425,10.904 -28.976,16.964 -34.629,32.084c17.674,-5.593 26.926,-29.734 51.57,-29.075c-3.371,-1.312 -6.815,-1.584 -10.331,-0.816c6.205,-7.03 7.447,-0.487 13.356,-0.144c12.293,0.714 23.815,-2.779 36.23,0.298c17.204,4.264 44.469,18.491 49.233,37.439c2.295,9.14 8.224,16.743 10.174,26.059c2.548,12.165 1.975,28.393 0.243,40.657c-1.722,12.181 -6.428,24.589 -14.3,34.155c-4.085,4.962 -20.623,13.583 -20.857,20.015c8.09,-1.14 13.279,-7.735 18.76,-13.03c1.399,14.854 5.65,29.331 12.802,42.437c10.312,18.913 12.649,20.975 -9.389,27.589c-5.804,1.738 -12.831,4.018 -16.913,8.839c-5.916,6.979 1.088,10.615 -0.17,17.364c-1.696,9.143 -10.849,36.2 -22.739,35.506c10.075,1.034 -10.113,33.767 -12.693,40.586c-2.251,5.932 -10.343,11.019 -5.09,17.883c5.308,6.953 16.919,-0.807 24.109,-1.422c-9.575,-0.291 -5.385,-14.642 -0.903,-19.214c4.133,-4.213 26.395,19.845 31.418,22.288c11.679,5.689 2.183,21.058 1.29,30.339c-2.061,21.356 27.272,11.3 27.25,10.558c-2.897,0.413 -6.022,-0.052 -8.957,0c6.7,-1.386 19.112,-102.312 24.871,-100.192c3.918,1.405 -6.451,40.164 -5.202,45.622c1.475,6.444 11.272,4.648 13.471,0.243c4.222,-8.381 2.314,-12.549 11.806,-9.892c8.788,2.465 16.887,10.001 25.044,14.153c7.357,3.749 16.212,6.297 22.749,11.483c6.383,5.068 8.035,14.582 12.696,21.094c8.237,11.541 9.022,-0.247 16.074,2.532c-9.38,-3.931 -9.655,-37.606 -12.859,-45.801c-2.642,-6.745 -26.607,-44.403 -12.934,-43.743c-5.32,-4.111 -7.395,1.821 -10.455,-7.11c-1.899,-5.542 -0.868,-12.335 3.636,-16.394c8.369,-7.61 -14.809,-15.143 -17.796,-19.237c12.757,-0.567 24.516,-1.172 37.027,-4.04c6.626,-1.521 13.096,-3.826 18.369,-8.279c4.635,-3.909 5.586,1.956 9.092,3.983c7.414,4.289 18.76,1.584 11.592,-7.021c-10.373,-12.495 -5.295,-9.86 -4.537,-24.762c1.608,-31.556 -2.705,-55.793 14.214,-84.166c6.659,-11.173 13.779,-24.244 15.332,-37.347c0.957,-8.09 -10.075,-28.937 -3.925,-33.06m-173.56,279.924c-0.99,2.856 -2.158,5.634 -3.503,8.339c-7.852,-7.19 -17.117,-12.318 -25.489,-18.942c-11.796,-9.335 -3.687,-9.354 -3.639,-21.974c0,-10.98 17.063,7.117 17.821,7.741c9.339,7.648 18.651,11.323 14.81,24.836" style="fill:#020303;fill-rule:nonzero;"/><path d="M46.494,648.172c11.81,5.512 25.831,11.694 39.178,9.62c1.107,5.272 0.976,23.123 11.736,17.623c8.125,-4.13 -1.041,-13.414 2.177,-15.475c5.861,-3.804 18.932,-0.234 26.686,-3.253c10.766,-4.184 21.148,-10.18 29.843,-17.812c8.326,-7.328 14.463,-16.906 17.649,-27.531c3.617,-12.069 -3.615,-11.951 -7.223,-21.702c-1.802,-4.86 -70.57,13.231 -80.078,12.117c7.844,-2.446 16.462,-1.361 23.994,-4.978c-7.612,-6.672 -18.779,-4.255 -27.07,-0.433c0.791,-4.228 3.922,-4.978 7.635,-6.77c8.311,-2.862 -2.023,-9.089 0.551,-15.05c2.1,0.429 29.455,30.051 20.45,7.005c-6.092,-15.597 10.247,-0.621 15.581,-1.527c8.266,-1.406 16.259,-3.765 24.41,-5.66c10.769,-2.507 10.779,-2.44 11.227,-13.449c0.621,-15.267 20.143,-39.082 9.053,-51.311c7.984,-7.277 5.974,1.277 10.049,5.503c2.158,2.241 0.961,-14.752 8.055,-14.867c2.67,1.783 -4.06,12.898 2.9,14.649c4.284,1.079 11.099,-2.948 14.931,-3.585c4.997,-0.829 14.89,2.122 19.166,-0.512c2.862,-1.764 7.085,-20.575 7.572,-24.279c1.744,-13.18 -2.283,-27.986 -4.914,-40.823c-3.109,-15.162 -4.94,-24.151 -16.462,-34.575c-10.542,-9.53 -16.928,-20.456 -18.033,-34.622c6.051,14.243 12.642,28.194 25.893,37.148c-6.762,-15.389 -24.603,-44.668 -16.599,-61.782c4.462,42.686 27.493,75.548 71.236,83.567c-8.173,0.65 -15.895,-1.956 -23.633,-4.085c-1.94,8.058 3.848,17.976 5.033,25.925c1.29,8.65 1.652,17.722 2.174,26.462c0.23,3.8 -5.228,38.348 -8.951,36.965c0.698,0.26 5.788,-52.367 5.058,-58.414c-1.197,-9.969 -2.788,-23.296 -8.711,-31.799c-5.029,-7.222 -15.536,-6.835 -19.928,-14.88c8.48,26.811 17.886,66.348 4.136,92.477c-2.52,4.821 20.511,18.033 24.375,24.42c8.23,13.596 4.818,31.879 22.774,31.879c-3.301,4.187 -10.99,0.051 -13.039,7.212c-3.352,11.711 -1.028,20.373 -11.509,29.657c-6.197,5.497 -20.437,6.758 -18.945,16.631c2.225,14.461 5.48,29.244 2.612,43.871c-5.708,29.113 -28.008,39.514 -54.022,45.302c-13.472,2.997 -28.607,5.391 -42.434,4.514c-5.436,-0.349 -25.761,1.604 -29.619,-2.148c5.023,-2.459 8.58,-1.511 14.086,-1.165c13.526,0.854 27.026,-0.733 40.42,-2.417c21.897,-2.757 49.144,-9.873 61.094,-30.4c6.582,-11.304 9.777,-21.862 7.005,-34.805c-1.162,-5.442 -2.881,-25.953 -10.014,-26.923c-23.056,-3.144 -2.904,29.142 -9.639,41.307c-4.812,-3.608 -6.316,-25.406 -6.947,-32.833c-0.458,-5.305 -19.538,-17.3 -24.641,-16.08c-9.296,2.221 -31.193,53.094 -15.827,50.651c-3.649,4.808 -14.604,8.727 -20.482,7.248c-4.738,-1.198 -1.325,-7.559 -6.496,-8.762c-4.677,-1.092 -13.304,5.356 -17.751,6.633c-13.029,3.742 -15.126,-1.684 -19.486,9.761c-0.305,0.797 10.615,6.585 12.011,5.973c-6.944,6.077 -26.782,1.915 -29.737,-7.215c-3.243,-10.024 -1.185,-7.824 -11.999,-10.664c-6.508,-1.71 -24.263,-3.618 -26.561,-11.534" style="fill:#020303;fill-rule:nonzero;"/><use xlink:href="#_Image1" x="574.434" y="689.789" width="304px" height="111.442px" transform="matrix(1,0,0,0.995019,0,1.11022e-16)"/><path d="M871.418,303.941c2.388,2.722 -15.005,40.161 -15.226,48.088c-0.538,19.044 7.427,38.287 18.315,53.564c10.849,15.207 27.758,25.416 45.353,30.995c9.876,3.131 20.312,4.562 30.659,3.621c6.883,-0.627 19.381,-7.469 26.014,-4.174c-36.946,23.344 -110.25,11.409 -127.704,-32.273c-7.03,15.146 -5.791,33.502 -16.538,47.015c14.851,-48.654 11.163,-102.763 39.127,-146.836" style="fill:#020303;fill-rule:nonzero;"/><path d="M193.697,450.058c5.407,3.378 12.761,22.723 9.841,28.873c-1.745,3.682 -8.867,4.664 -6.223,9.851c2.689,5.298 -1.838,10.394 -5.996,12.117c-4.684,-9.428 7.494,-13.971 -10.443,-10.616c-4.85,0.912 -9.726,-0.32 -12.533,4.847c-3.592,6.611 4.139,9.415 2.452,14.518c-19.4,-6.387 4.447,-32.314 1.079,-42.789c-2.312,-7.149 -31.261,-40.506 -32.116,-39.098c4.809,2.196 10.565,9.114 16.308,7.456c4.715,-1.386 22.012,-4.77 23.664,3.393c-6.973,6.285 -24.878,-9.027 -12.524,9.55c8.465,12.728 17.505,20.745 26.546,32c8.515,-9.674 -5.286,-24.298 -0.055,-30.102" style="fill:#020303;fill-rule:nonzero;"/><path d="M170.794,509.649c-4.28,-4.665 -7.619,-9.598 -3.563,-15.847c4.684,-7.216 6.809,-2.744 13.942,-4.517c2.775,-0.688 8.528,-5.702 11.541,-2.737c5.56,5.493 1.203,12.943 -4.604,14.934c-5.023,1.725 3.618,13.804 -5.484,16.797c-3.364,1.15 -3.374,-7.36 -3.595,-8.266c-1.111,-4.526 -5.375,-0.364 -8.237,-0.364" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M22.336,621.61c6.825,9.973 14.54,19.513 24.352,26.712c-11.794,-1.639 -14.451,-17.165 -25.037,-18.916c-4.796,-0.794 -26.184,7.302 -20.783,-6.624c2.634,-6.787 10.209,-2.551 14.13,-6.867c3.496,-3.848 1.092,-15.51 1.095,-20.085c0.006,-6.265 4.661,-30.377 -5.548,-30.473c12.457,-4.463 -2.606,-41.166 -4.981,-48.853c13.782,-5.298 10.116,102.328 16.772,105.106" style="fill:#020303;fill-rule:nonzero;"/><path d="M304.179,361.121c3.009,23.841 -44.367,29.347 -44.402,4.239c-0.064,-32.353 44.476,-37.933 44.402,-4.239" style="fill:#020303;fill-rule:nonzero;"/><path d="M215.078,657.225c4.322,25.601 -36.53,34.901 -54.234,33.947c-14.972,-0.81 -29.458,-2.452 -44.479,-0.845c-15.241,1.633 -29.843,7.651 -45.155,8.352c27.954,-13.89 59.654,-9.876 89.529,-11.067c12.114,-0.502 24.727,-0.035 35.33,-6.908c8.947,-5.804 11.105,-18.344 19.009,-23.479" style="fill:#020303;fill-rule:nonzero;"/><path d="M130.352,452.715c-12.555,-9.079 -33.258,-1.078 -43.301,8.759c-13.055,12.793 -4.261,29.84 -3.214,44.71c-4.555,-9.338 -7.277,-24.007 -5.612,-34.35c2.465,-15.322 17.937,-21.523 31.181,-25.909c25.732,-8.563 42.194,21.161 43.935,41.608c0.669,-0.967 1.425,-1.853 2.273,-2.67c0.752,7.082 -3.009,13.212 -4.917,19.724c-3.595,-8.1 2.289,-20.265 -0.977,-29.565c-2.964,-8.448 -10.974,-18.779 -19.368,-22.307" style="fill:#020303;fill-rule:nonzero;"/><path d="M5.721,516.342c-4.047,-9.783 -5.974,-20.351 -5.234,-30.931c0.832,-11.913 10.186,-20.351 11.265,-30.551c0.832,-7.859 -5.807,-13.685 -1.93,-22.297c3.255,-7.232 18.718,-8.131 15.184,-3.099c-2.046,2.929 -11.125,-2.926 -13.529,8.829c-2.055,10.043 10.138,14.102 2.228,22.304c-16.122,16.711 -6.054,36.62 -7.984,55.745" style="fill:#020303;fill-rule:nonzero;"/><path d="M129.521,509.702c-14.035,-0.119 -14.832,-19.487 -2.19,-19.058c9.982,0.41 15.334,19.173 2.19,19.058" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.234,154.09c-1.307,7.328 -12.335,32.439 -7.021,38.09c7.037,7.465 2.414,25.514 15.408,23.059c-5.122,0.016 -7.987,3.787 -8.176,7.987c2.116,-0.391 -12.389,-49.867 -30.63,-23.949c2.221,-7.286 12.475,-8.442 10.785,-17.575c2.932,2.068 -0.541,17.059 8.724,7.74c7.186,-7.225 4.67,-26.343 10.91,-35.352c-0.538,3.029 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M356.449,343.589c0.99,7.267 0.455,18.446 3.832,25.005c2.517,4.892 8.743,2.917 11.66,7.725c-7.082,-3.252 -13.328,-0.586 -15.271,7.002c-1.793,6.969 7.312,3.044 8.733,7.888c-0.064,0.051 -7.385,-1.569 -9.018,-0.932c-5.378,2.103 -5.208,8.4 -11.06,9.979c4.037,-6.269 16.125,-57.042 11.124,-56.667" style="fill:#020303;fill-rule:nonzero;"/><path d="M849.583,717.094c-12.69,-3.173 -24.81,-9.755 -37.471,-13.513c-11.112,-3.294 -40.068,-5.951 -47.018,-15.405c6.828,-4.158 36.261,9.46 44.188,11.57c14.707,3.915 27.749,9.21 40.301,17.348c-7.961,-1.991 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M689.511,190.263c16.006,-11.025 3.076,-34.709 4.315,-50.133c7.677,2.849 4.187,46.006 12.719,42.594c-4.002,4.04 -13.577,6.444 -17.034,7.539c12.318,-8.484 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M29.306,442.536c1.309,-2.628 -1.905,-5.448 0.128,-7.603c4.773,4.735 2.506,22.966 -6.435,15.939c-15.735,-12.353 5.711,-18.807 6.307,-8.336" style="fill:#020303;fill-rule:nonzero;"/><path d="M560.582,244.112c-0.208,0.198 21.523,-13.391 11.125,-15.251c-1.802,-0.333 -4.229,5.797 -5.73,7.35c0.922,-1.87 -0.778,-10.02 -3.868,-10.039c-5.884,-0.039 -1.792,6.783 -5.852,8.461c-3.067,-15.331 23.021,-11.122 19.679,-7.299c8.16,11.035 -9.057,15.606 -15.354,16.778c3.045,-2.881 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M722.978,193.852c-2.315,-3.935 -3.72,-9.181 -9.422,-8.938c-7.171,0.336 -5.922,-16.282 -6.659,-20.329c-1.443,-7.875 -3.262,-15.686 -4.222,-23.641c-0.704,-5.904 4.069,-8.606 3.681,-15.082c6.621,3.595 0.112,8.503 -1.021,12.508c-1.946,6.886 1.111,16.48 2.577,23.254c1.127,5.206 1.053,13.58 4.053,18.126c4.933,7.478 10.116,3.131 11.013,14.102" style="fill:#020303;fill-rule:nonzero;"/><path d="M139.759,427.755c-3.768,3.756 -19.409,-6.373 -24.435,-7.366c-9.153,-1.805 -28.489,-5.452 -36.86,0.154c15.424,-12.972 46.412,0.739 61.295,7.212" style="fill:#020303;fill-rule:nonzero;"/><path d="M760.797,685.412c-18.607,-1.93 -34.78,-17.246 -54.068,-9.153c15.232,-11.55 39.207,2.674 54.068,9.153" style="fill:#020303;fill-rule:nonzero;"/><path d="M655.8,756.338c-9.306,-0.541 -18.507,-14.169 -28.412,-16.214c6.56,-0.762 0.055,-0.97 4.514,-3.298c12.066,9.034 26.632,13.401 38.003,21.686c-6.018,2.75 -8.451,-3.345 -14.105,-2.174" style="fill:#020303;fill-rule:nonzero;"/><path d="M477.105,172.305c-2.205,-7.059 3.861,-15.731 5.753,-22.329c2.004,-6.966 -5.951,-18.036 2.03,-22.771c-5.849,7.145 2.27,10.119 2.106,16.721c-0.217,8.938 -6.348,20.318 -9.889,28.379" style="fill:#020303;fill-rule:nonzero;"/><path d="M189.991,352.992c0.141,-2.779 1.457,-29.254 6.092,-28.124c1.947,0.467 -2.983,30.659 -4.802,30.857c-1.341,-0.445 -1.77,-1.354 -1.29,-2.733" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.296,223.383c0.928,2.321 1.322,4.731 1.185,7.225c7.401,-1.735 11.921,-4.799 10.372,-12.933c5.02,4.543 2.1,12.235 -4.04,13.746c-9.191,2.264 -4.011,8.554 -7.245,14.342c-0.083,-7.513 -1.277,-15.404 -0.272,-22.38" style="fill:#020303;fill-rule:nonzero;"/><path d="M111.46,709.397c-1.236,3.361 -30.051,12.978 -34.005,9.854c11.644,-2.769 22.173,-10.709 34.005,-9.854" style="fill:#020303;fill-rule:nonzero;"/><path d="M308.784,430.581c-9.61,3.103 -18.949,7.392 -29.26,3.57c10.087,0.752 19.339,-4.303 29.26,-3.57" style="fill:#020303;fill-rule:nonzero;"/><path d="M514.513,738.806c4.549,-1.354 32.234,18.2 32.612,17.434c-1.236,2.52 -31.392,-14.159 -32.612,-17.434c3.922,-1.165 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M689.379,190.138c2.187,4.626 -1.174,47.418 -1.402,47.463c0.083,-15.94 -1.802,-31.815 1.402,-47.463" style="fill:#020303;fill-rule:nonzero;"/><path d="M546.42,757.83c5.254,-0.548 29.238,16.614 28.572,17.527c-1.863,2.526 -25.457,-15.427 -28.572,-17.527" style="fill:#020303;fill-rule:nonzero;"/><path d="M521.039,220.415c-2.983,9.488 -5.954,19.003 -8.925,28.491c0.931,-10.157 2.263,-20.187 8.925,-28.491" style="fill:#020303;fill-rule:nonzero;"/><path d="M574.802,783.906c-9.761,-1.982 -17.29,-8.484 -23.094,-16.272c6.848,1.181 17.153,12.161 23.094,16.272c-10.068,-2.046 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M592.361,229.911c8.211,9.351 -0.692,21.209 -10.075,24.138c7.808,-5.676 13.859,-14.752 10.075,-24.138" style="fill:#020303;fill-rule:nonzero;"/><path d="M310.627,429.337c6.06,-3.909 11.515,-7.421 17.034,-10.974c0.055,5.849 -7.878,11.019 -17.034,10.974" style="fill:#020303;fill-rule:nonzero;"/><path d="M702.166,678.534c-6.925,3.762 -13.836,7.543 -20.758,11.311c-2.554,-7.453 20.764,-11.285 20.758,-11.311" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.713,767.634c-9.245,-2.027 -17.14,-7.024 -23.062,-13.792c7.356,1.944 18.391,9.409 23.062,13.792c-9.229,-2.024 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M864.668,289.449c0.973,3.679 -11.938,16.887 -14.345,20.38c2.554,-8.349 7.536,-15.632 14.345,-20.38c0.105,0.4 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M547.66,239.024c-4.706,0.413 -5.785,5.647 -9.591,7.257c1.613,-4.453 9.741,-15.334 15.955,-11.736c-0.083,0.048 -6.947,4.325 -6.364,4.479" style="fill:#020303;fill-rule:nonzero;"/><path d="M547.66,239.024c0.81,-0.461 2.193,-2.558 3.46,-1.188c-1.645,-1.776 -7.407,19.877 -7.529,21.219c-3.182,-7.395 -0.096,-13.958 4.069,-20.031" style="fill:#020303;fill-rule:nonzero;"/><path d="M179.732,438.607c6.214,1.802 12.236,4.568 13.968,11.451c-5.635,-1.031 -12.867,-6.381 -13.968,-11.451c6.291,1.821 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M216.441,299.286c-4.408,4.354 -8.829,8.718 -13.237,13.071c3.425,-5.295 7.411,-10.071 13.237,-13.071" style="fill:#020303;fill-rule:nonzero;"/><path d="M339.525,309.414c-5.478,-4.501 -10.584,-9.415 -15.914,-14.121c6.896,2.916 11.759,8.125 15.914,14.121" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.399,154.256c-0.154,-10.363 7.93,-3.413 8.871,-11.589c1.053,6.854 -4.93,7.85 -8.871,11.589" style="fill:#020303;fill-rule:nonzero;"/><path d="M554.201,262.981c-1.917,4.056 0.394,-15.315 0.266,-14.205c-0.621,0.593 6.435,-4.83 5.932,-4.83c-0.72,6.77 -5.625,11.809 -6.198,19.035" style="fill:#020303;fill-rule:nonzero;"/><path d="M508.766,730.549c-4.924,0.772 -8.932,-9.805 -9.908,-13.135c2.858,5.231 8.371,7.495 9.908,13.135c-4.188,0.657 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M697.526,770.054c-4.331,1.725 -7.993,1.238 -10.996,-1.463c5.084,-4.924 8.416,1.463 10.996,1.463" style="fill:#020303;fill-rule:nonzero;"/><path d="M576.728,776.447c19.835,2.308 14.982,15.254 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M604.757,661.021c-1.514,-0.602 -6.089,-10.155 -4.248,-10.792c3.425,-1.175 7.382,11.518 4.248,10.792" style="fill:#020303;fill-rule:nonzero;"/><path d="M697.526,770.054c0.103,-3.301 12.21,5.333 14.003,6.028c-6.78,1.437 -8.634,-3.928 -14.003,-6.028" style="fill:#020303;fill-rule:nonzero;"/><path d="M607.139,663.822c4.114,1.319 7.251,6.044 8.269,9.492c-4.216,1.889 -6.735,-6.592 -8.269,-9.492c4.729,1.517 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.018,679.319c2.177,-1.178 9.329,7.68 11.23,9.076c-5.15,-0.183 -9.437,-4.77 -11.23,-9.076c3.663,-1.982 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M676.008,761.222c3.941,0.803 7.143,2.817 9.601,6.037c-1.277,0.148 -12.959,-1.911 -9.601,-6.037" style="fill:#020303;fill-rule:nonzero;"/><path d="M207.262,340.113c-1.725,-4.809 0.096,-7.773 1.979,-10.773c1.066,3.454 -0.224,6.496 -1.979,10.773" style="fill:#020303;fill-rule:nonzero;"/><path d="M251.374,283.999c-3.934,-0.18 -7.347,4.088 -11.588,1.143c5.166,0.592 6.226,-3.064 11.588,-1.143" style="fill:#020303;fill-rule:nonzero;"/><path d="M676.008,761.222c-0.035,0.95 -0.067,1.898 -0.102,2.849c-3.214,-1.834 -6.166,-1.076 -6.166,-5.372c2.289,0.343 4.38,1.185 6.268,2.523" style="fill:#020303;fill-rule:nonzero;"/><path d="M514.693,738.628c-2.324,-2.603 -6.352,-3.733 -5.932,-8.071c0,-1.511 5.929,7.127 5.932,8.071" style="fill:#020303;fill-rule:nonzero;"/><path d="M546.586,296.327c4.872,0.561 8.352,0.954 12.328,1.409c-6.377,1.473 -7.613,1.389 -12.328,-1.409" style="fill:#020303;fill-rule:nonzero;"/><path d="M43.887,724.944c-0.314,-0.07 -12.425,-3.851 -8.903,-7.203c0.432,-0.406 8.877,7.178 8.903,7.203" style="fill:#020303;fill-rule:nonzero;"/><path d="M205.469,349.589c-3.24,-0.913 -0.701,-8.1 1.207,-8.75c2.065,-0.707 -0.704,8.388 -1.207,8.75" style="fill:#020303;fill-rule:nonzero;"/><path d="M148.91,502.156c-0.317,5.33 -3.124,8.662 -6.284,10.833c0.042,-4.037 4.24,-8.949 6.25,-13.018" style="fill:#020303;fill-rule:nonzero;"/><path d="M625.916,769.641c0.909,5.897 -7.271,3.918 -6.902,2.862c0.204,-0.692 6.418,-2.708 6.902,-2.862c0.886,5.753 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M634.172,696.467c-3.87,-1.29 -5.849,-3.976 -5.932,-8.061c0.663,-0.663 5.916,8.032 5.932,8.061c-3.329,-1.668 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M627.569,739.944c-2.144,-1.991 -4.632,-3.352 -7.465,-4.078c6.828,-1.034 4.187,0.566 7.465,4.078c-1.86,-2.427 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M684.965,132.058c2.539,2.199 5.077,4.401 7.616,6.601c-4.267,-1.162 -6.94,-2.372 -7.616,-6.601" style="fill:#020303;fill-rule:nonzero;"/><path d="M843.815,323.232c-0.237,-3.528 0.711,-6.716 2.846,-9.562c1.732,5.766 -0.864,5.497 -2.846,9.562" style="fill:#020303;fill-rule:nonzero;"/><path d="M533.152,292.884c3.659,-0.602 6.089,1.29 8.439,4.363c-3.755,-0.106 -5.519,-3.454 -8.439,-4.363" style="fill:#020303;fill-rule:nonzero;"/><path d="M608.808,778.845c-0.253,0.406 9.067,-7.872 7.427,-3.227c-0.384,1.091 -6.575,3.435 -7.427,3.227" style="fill:#020303;fill-rule:nonzero;"/><path d="M553.829,292.066c-1.959,2.632 6.608,5.897 -7.888,2.161c7.498,0.573 10.129,-0.15 7.888,-2.161" style="fill:#020303;fill-rule:nonzero;"/><path d="M311.277,290.97c-3.742,-2.404 -5.941,-3.803 -8.49,-5.455c3.954,-0.33 3.954,-0.33 8.49,5.455" style="fill:#020303;fill-rule:nonzero;"/><path d="M230.191,289.243c1.952,-1.2 3.998,-2.215 6.133,-3.041c1.354,0.128 -2.622,4.066 -6.133,3.041" style="fill:#020303;fill-rule:nonzero;"/><path d="M554.464,248.778c-2.849,0.688 -0.534,4.622 -3.742,5.083c-2.593,-6.45 3.518,-5.08 3.742,-5.083" style="fill:#020303;fill-rule:nonzero;"/><path d="M45.492,709.066c2.027,-2.664 6.083,-5.907 7.37,-1.819c-2.309,1.194 -4.764,1.799 -7.37,1.819" style="fill:#020303;fill-rule:nonzero;"/><path d="M849.412,717.26c3.095,-1.015 7.01,-0.468 6.156,3.198c1.312,1.146 -7.981,-4.187 -6.156,-3.198" style="fill:#020303;fill-rule:nonzero;"/><path d="M142.434,512.422c-2.548,4.35 -7.939,7.501 -11.227,7.287c2.273,-1.45 7.494,-4.883 11.227,-7.287" style="fill:#020303;fill-rule:nonzero;"/><path d="M718.563,776.631c3.391,-0.173 1.332,4.188 0.202,3.698c-2.154,-0.922 -3.028,-3.419 -0.202,-3.698" style="fill:#020303;fill-rule:nonzero;"/><path d="M625.991,769.744c2.333,-1.357 5.243,-0.192 7.545,-1.623c-2.471,2.638 -4.379,3.56 -7.545,1.623" style="fill:#020303;fill-rule:nonzero;"/><path d="M448.853,314.182c0.688,2.625 0.33,5.054 -1.079,7.286c-3.867,2.791 2.2,-9.691 1.079,-7.286" style="fill:#020303;fill-rule:nonzero;"/><path d="M706.218,282.292c-0.98,1.927 -2.516,2.964 -4.62,3.115c-0.57,-4.056 2.081,-2.513 4.62,-3.115" style="fill:#020303;fill-rule:nonzero;"/><path d="M451.254,287.888c-0.074,3.505 1.069,6.089 -1.934,8.24c-0.412,-2.689 -0.022,-4.924 1.934,-8.24" style="fill:#020303;fill-rule:nonzero;"/><path d="M555.802,243.957c-0.867,-2.868 0.01,-4.354 3.141,-5.221c-0.625,2.193 -0.983,3.896 -3.141,5.221" style="fill:#020303;fill-rule:nonzero;"/><path d="M598.701,785.582c-2.9,-2.968 1.719,-3.634 4.421,-4.111c-1.476,1.371 -2.948,2.741 -4.421,4.111" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.228,734.617c-1.777,-2.638 -2.779,-4.13 -3.586,-5.33c2.347,-0.583 2.856,1.517 3.586,5.33" style="fill:#020303;fill-rule:nonzero;"/><path d="M862.923,735.164c-1.607,0.743 -3.217,1.492 -4.824,2.234c0.343,-7.398 2.097,-1.898 4.824,-2.234" style="fill:#020303;fill-rule:nonzero;"/><path d="M193.502,366.769l0,7.213c-1.47,-2.859 -0.996,-4.966 0,-7.213" style="fill:#020303;fill-rule:nonzero;"/><path d="M981.813,432.029c0.817,-2.67 3.045,-2.417 5.119,-2.478c-0.867,2.561 -2.791,2.932 -5.119,2.478" style="fill:#020303;fill-rule:nonzero;"/><path d="M64.983,727.104c-0.932,3.211 -3.109,2.501 -5.932,2.206c2.189,-1.418 4.315,-0.88 5.932,-2.206" style="fill:#020303;fill-rule:nonzero;"/><path d="M94.598,585.986c0.868,3.253 -0.329,4.45 -3.576,3.592c1.185,-1.2 2.382,-2.407 3.576,-3.592" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M193.291,364.484c-2.539,-0.964 -2.084,-2.533 -1.575,-5.001c0.698,2.193 1.13,3.592 1.575,5.001" style="fill:#020303;fill-rule:nonzero;"/><path d="M495.15,711.654c0.122,0.493 -2.135,-5.698 -1.29,-4.735c1.979,1.137 2.408,2.712 1.29,4.735" style="fill:#020303;fill-rule:nonzero;"/><path d="M687.416,241.381c0.471,-0.778 0.944,-1.553 1.415,-2.33c0.701,0.092 2.676,4.376 -1.415,2.33" style="fill:#020303;fill-rule:nonzero;"/><path d="M632.034,736.684c-2.174,1.687 -3.512,1.168 -4.018,-1.556c2.017,-1.182 2.945,1.28 4.018,1.556" style="fill:#020303;fill-rule:nonzero;"/><path d="M615.23,673.482c2.401,1.386 3.003,3.33 1.796,5.827c-0.567,1.133 -2.292,-7.178 -1.796,-5.827c2.343,1.402 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M604.757,661.021c2.903,-2.977 2.606,0.544 2.391,2.795c-0.698,0.931 -2.455,-1.716 -2.391,-2.795" style="fill:#020303;fill-rule:nonzero;"/><path d="M430.075,552.607c-6.188,-1.53 -8.864,3.698 -15.254,3.198c-9.364,-0.73 -11.89,-3.214 -15.824,6.854c-2.424,6.195 7.603,6.63 11.163,7.133c11.252,1.591 17.213,-3.352 23.11,-11.813c0.659,5.215 -5.612,20.309 -8.567,25.303c-7.475,12.524 -15.062,-9.69 -20.091,-11.428c-17.604,-6.096 8.438,-52.662 25.463,-19.247" style="fill:#020303;fill-rule:nonzero;"/><path d="M494.336,503.537c-13.596,-10.719 -40.743,-5.856 -51.468,6.325c-16.423,18.655 -0.166,35.212 8.57,50.975c-22.163,-7.248 -22.223,-40.468 -8.583,-54.938c9.022,-9.569 46.352,-18.574 51.481,-2.362c-4.127,-3.253 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M489.156,527.928c8.333,2.968 8.576,15.843 -1.438,16.1c-12.347,0.304 -8.864,-14.371 1.438,-16.1" style="fill:#020303;fill-rule:nonzero;"/><path d="M502.096,616.79c1.648,-0.215 3.3,-0.429 4.949,-0.644c-10.459,-6.341 -6.031,-11.031 -2.756,-22.892c3.537,-12.799 2.516,-29.542 7.904,-41.31c4.408,-9.63 41.322,18.407 47.626,22.243c2.686,1.616 1.428,5.644 3.044,6.674c6.288,4.018 11.692,9.207 16.513,14.864c9.981,11.72 23.44,6.637 37.606,4.94c31.235,-3.736 63.479,-6.566 94.785,-8.448c5.628,-0.337 36.511,-1.745 36.437,-10.062c-0.093,-10.638 -7.446,-18.456 -16.957,-24.436c-10.299,-6.409 7.984,-11.445 10.721,-12.853c8.384,-4.309 -1.38,-21.071 -10.977,-20.149c-30.051,2.894 -62.535,2.375 -92.736,1.824c-33.301,-0.611 -66.585,2.523 -99.933,2.228c-5.148,-0.044 -25.902,6.198 -26.053,-2.647c-0.102,-6.374 -2.509,-12.319 -4.004,-18.414c-1.137,-4.639 -5.875,-8.41 -5.817,-12.517c0.128,-8.737 4.45,-17.051 -5.218,-23.3c-4.098,-2.65 -9.121,-2.25 -13.472,-0.499c-2.762,1.12 -9.28,9.47 -10.381,9.428c-4.94,-0.183 -31.13,-6.739 -33.89,-10.276c-5.093,-6.531 -0.285,-27.112 0.519,-34.712c1.437,-13.622 0.512,-26.27 4.869,-39.444c4.981,-15.053 6.006,-35.624 18.43,-46.944c18.18,-16.567 51.506,-15.539 73.845,-21.225c16.734,-4.258 34.325,-2.526 51.401,-3.211c19.377,-0.775 38.739,-2.814 58.155,-1.991c30.406,1.29 61.693,4.472 92.006,9.313c10.276,1.645 18.315,-0.193 28.162,5.82c5.606,3.422 8.958,6.303 11.765,12.174c0.343,0.717 6.985,10.35 7.427,7.77c-1.863,10.929 5.593,22.947 6.986,33.815c1.892,15.043 3.451,31.098 4.043,46.25c1.031,26.238 -3.083,52.655 -0.218,78.97c0.253,2.321 0.935,14.112 1.79,16.27c2.842,7.183 -4.927,12.789 -1.367,18.545c4.203,6.719 1.805,14.243 1.543,21.471c-0.164,5.359 2.823,9.972 2.753,15.04c-0.09,5.919 1.108,23.376 -6.473,23.357c-12.607,0 -26.911,7.891 -39.617,10.58c-23.405,4.95 -47.917,-5.721 -71.463,0.308c-26.715,6.828 -58.232,3.537 -85.914,2.849c-13.657,-0.34 -17.566,-8.189 -23.043,-20.258c-6.998,-15.411 -11.371,-8.871 -24.794,-3.714c-11.397,4.376 -20.876,8.372 -31.639,14.163c-10.664,5.737 -8.884,9.223 -16.557,1.05" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M588.5,592.205c16.999,4.971 41.832,-3.042 59.343,-4.079c11.406,-0.672 22.829,-1.3 34.168,-2.772c11.333,-1.47 27.807,-1.085 38.368,-5.218c-5.02,-4.489 -21.824,-0.705 -27.372,0.473c-13.307,2.821 -26.558,3.419 -40.08,4.806c-12.751,1.306 -25.601,1.181 -38.346,2.593c-18.839,2.09 -23.808,2.183 -37.221,-11.778c-8.891,-9.252 -16.836,-19.285 -25.605,-28.613c-9.665,-10.28 -7.808,-12.245 5.42,-12.771c8.708,-0.345 27.564,-4.696 34.946,0.538c9.988,7.082 5.705,-1.565 5.801,-2.551c17.242,-0.736 34.488,-1.751 51.752,-1.694c14.169,0.048 35.945,-3.726 49.422,0.666c12.569,4.098 22.893,23.322 32.897,31.511c16.602,13.586 1.825,8.88 -7.427,15.318c2.036,0.865 17.367,-0.345 17.195,2.523c-0.273,3.752 -74.809,10.564 -82.899,10.904c-10.369,0.438 -69.786,13.567 -70.362,0.144c6.662,1.946 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M424.645,470.301c-0.359,0 -1.724,-1.128 -3.897,-1.345c-2.936,-0.293 -1.819,-0.646 -4.507,0.308c0.621,-0.637 -28.005,-1.38 -27.339,-0.5c-4.14,-5.484 0.128,-22.694 0.173,-29.686c0.057,-9.037 -1.553,-19.143 1.764,-27.816c3.326,-8.756 5.403,-1.7 9.805,1.854c12.412,10.007 25.358,-5.577 25.387,-17.556c0.032,-12.358 -19.391,-26.866 -26.021,-16.212c-0.752,1.207 -3.271,-2.062 -4.02,-0.861c-2.821,-6.4 3.604,-5.794 5.624,-9.38c6.144,-10.92 10.001,-16.884 21.91,-22.467c4.021,-1.882 23.924,-12.485 27.804,-9.985c1.069,0.688 4.507,3.531 6.297,1.159c6.294,7.558 -8.625,14.621 -12.546,21.779c-6.81,12.418 -5.791,24.992 -8.103,38.419c-2.311,13.426 3.589,72.289 -12.331,72.289" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M400.217,402.735c6.989,4.825 11.464,-2.445 8.26,-9.776c-3.919,-8.996 9.216,-14.096 13.362,-4.713c7.097,15.981 -11.931,36.166 -21.622,14.489" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M588.681,592.017c-6.172,5.513 -50.581,-41.8 -48.048,-52.102c13.858,17.019 38.243,33.659 48.048,52.102" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M831.423,345.824c5.57,0.148 2.269,8.154 0.125,10.225c-5.033,4.86 -21.417,6.336 -28.345,9.252c-4.796,2.017 -9.562,-4.36 -4.789,-6.108c11.124,-4.075 22.031,-8.896 33.009,-13.369" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M477.603,701.819c4.113,4.783 10.574,25.69 -2.667,21.775c-13.18,-3.896 -3.333,-17.149 2.667,-21.775" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M495.276,479.445c-4.101,-1.373 -10.959,2.584 -15.988,2.222c-0.723,-0.051 8.993,-13.366 18.113,-6.662c3.352,2.481 5.83,18.984 -1.047,15.011c-5.528,-3.195 -0.56,-7.872 -1.078,-10.571" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M335.906,718.645c-0.419,-15.047 18.075,-12.405 15.981,-7.744c-1.517,3.38 -16.995,20.085 -15.981,7.744" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M328.316,484.047c4.155,9.153 0.083,15.94 -5.74,5.478c-5.25,-9.425 18.267,-12.767 20.712,-7.261c1.351,3.038 -5.429,5.276 -6.819,6.422c-3.367,2.801 -5.407,-3.858 -8.153,-4.639" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M478.2,677.665c-2.341,3.16 6.098,12.985 2.666,13.631c-5.439,1.025 -17.239,-26.644 -16.422,-31.67c3.633,5.621 7.961,15.632 13.756,18.039" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M484.266,705.208c0.756,0.87 9.114,13.881 4.6,14.799c-2.762,0.586 -4.574,-13.452 -4.6,-14.799" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M691.78,624.381c1.623,-0.042 9.009,-0.817 9.009,0.713c-2.18,0.167 -9.009,2.334 -9.009,-0.713" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M954.527,350.83c1.095,14.735 -21.683,15.42 -22.198,1.504c-0.378,-10.683 21.237,-14.825 22.198,-1.504" style="fill:#020303;fill-rule:nonzero;"/><path d="M957.459,331.942c-12.549,-4.52 -30.3,-6.246 -34.75,10.331c-2.267,8.439 0.826,26.641 11.128,28.924c-38.397,-1.803 -2.254,-71.377 23.622,-39.255c-7.084,-2.551 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M957.284,332.117c23.908,0.336 11.897,54.288 -21.477,40.378c8.032,-0.214 17.249,0.714 23.514,-5.442c2.25,-2.212 11.614,-13.82 5.48,-16.695c4.36,-7.043 -1.146,-14.883 -7.517,-18.241c6.016,0.083 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M964.806,350.354c0.935,2.152 0.445,3.944 -1.479,5.382c2.366,-2.222 2.862,-4.015 1.479,-5.382" style="fill:#020303;fill-rule:nonzero;"/><path d="M1037.73,307.665c-1.226,9.681 7.037,-1.463 7.888,-3.656c2.299,-5.91 10.638,-3.592 12.658,-12.805c1.755,-8.013 -6.482,-15.36 -3.156,-22.711c3.48,-7.683 16.823,-13.147 24.08,-15.337c22.23,-6.71 48.51,4.773 68.025,15.184c9.662,5.157 18.386,11.976 24.974,20.789c2.82,3.768 -4.981,8.66 -7.222,10.837c9.104,-0.122 16.166,-10.965 25.245,-9.316c16.247,2.942 -10.577,22.905 -12.661,25.066c0.682,1.735 8.679,-1.149 12.2,4.837c7.924,13.491 4.415,26.088 -1.7,39.457c-4.702,10.279 -12.398,18.84 -16.733,29.228c-5.183,12.418 -6.054,27.643 -7.568,40.913c-2.654,23.354 5.177,46.874 -20.082,60.764c-11.925,6.56 -29.542,8.718 -42.907,7.523c-13.062,-1.235 -15.978,-0.925 -8.871,-14.851c-5.493,5.244 -9.319,16.772 -16.986,19.657c-6.163,2.314 4.859,-24.094 2.519,-24.929c-3.745,-1.345 -4.674,13.253 -14.367,8.24c-11.666,-6.047 -25.742,-6.931 -34.152,-18.091c-10.821,-14.358 -28.277,-43.057 -16.878,-60.505c16.503,-25.306 15.697,-51.81 10.651,-80.283c-1.203,-6.796 -0.253,-30.592 10.389,-31.683c3.816,-0.394 4.008,9.005 4.654,11.672" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1095.74,508.201c-14.723,1.188 -53.497,-0.432 -63.748,11.672c-6.092,7.136 -54.906,-20.533 -30.909,-25.578c9.165,-1.96 17.402,-10.433 26.51,-3.263c7.251,5.692 14.822,-0.861 22.39,3.023c2.673,1.869 5.631,2.647 8.874,2.337c1.723,-0.401 7.514,9.037 9.572,10.138c9.566,5.125 16.109,-8.224 27.311,1.671" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1137.02,618.891c-0.41,0.694 -0.771,11.553 -5.131,5.234c-4.454,-6.454 -6.839,-15.616 -10.616,-22.637c-11.128,-20.661 -19.932,-43.144 -24.702,-66.178c-0.931,-4.446 3.528,-4.923 5.702,-1.898c6.704,9.293 10.651,20.124 15.059,30.598c7.539,17.957 12.524,37.164 19.688,54.881" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1058.91,517.336c13.705,0 24.509,-3.163 37.827,-5.586c3.809,-0.695 20.111,4.562 10.545,10.315c-7.661,4.609 -21.18,4.235 -29.875,5.554c-11.176,1.693 -24.41,5.487 -35.771,4.094c-8.34,-1.018 -8.449,-4.648 -3.384,-9.741c5.516,-5.542 13.429,-4.729 20.658,-4.636" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1043.66,267.925c-5.76,-1.738 -4.217,8.061 -9.659,9.639c-8.362,2.43 -6.736,-9.021 -5.01,-16.068c4.075,-16.621 20.087,-23.89 43.999,-10.244c-7.091,5.465 -20.421,19.951 -29.33,16.673c-4.101,-1.239 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1042.71,541.809c-1.77,20.363 -7.92,40.404 -13.007,60.121c-2.254,8.717 -6.118,18.231 -6.387,27.278c-0.121,4.082 -7.673,11.493 -7.664,5.382c0.023,-18.667 8.513,-39.127 12.617,-57.211c2.164,-9.534 3.422,-19.259 5.97,-28.71c0.375,-1.396 9.207,-18.75 8.471,-6.86" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M999.677,518.565c1.841,6.002 -9.828,20.789 -11.723,27.499c-2.904,10.286 -9.262,20.754 -13.929,30.378c-3.509,7.289 -2.177,18.692 -11.925,21.202c-2.763,0.717 -6.73,8.474 -7.223,8.34c-4.469,-1.223 16.049,-41.272 19.045,-46.97c5.129,-9.745 8.583,-20.223 14.419,-29.517c-0.211,0.34 12.181,-20.863 12.527,-13.602c-0.484,0.855 -0.877,1.741 -1.191,2.67" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1017.37,545.291c-6.336,1.441 -16.228,-4.02 -19.993,-8.912c-2.154,-2.795 7.434,-20.015 14.125,-15.373c11.614,8.042 32.983,24.285 5.868,24.285" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1056.61,288.064c0.195,17.192 -32.682,7.428 -22.313,-6.703c4.258,-5.801 7.718,1.037 13.004,1.725c2.33,-0.044 4.642,-0.294 6.934,-0.752c2.375,0.89 0.262,5.295 2.375,5.73" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1008.27,596.61c-0.198,0.333 10.651,16.022 -4.418,5.836c-6.566,-4.437 -12.463,-10.12 -18.235,-15.507c1.476,1.373 -11.172,-14.935 -3.796,-11.743c4.168,1.799 27.726,17.249 26.449,21.414" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1025.13,569.758c-3.947,-2.513 -33.511,-21.183 -29.545,-26.44c4.805,-6.386 28.101,19.797 29.545,26.44" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1069.14,535.375c1.457,0.07 15.491,1.636 14.547,2.442c7.933,-6.777 6.969,8.564 12.395,14.4c-9.777,-4.223 -20.328,-7.949 -26.942,-16.842" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1090.84,563.239c-10.802,-2.788 -20.796,-8.281 -26.636,-18.122c4.386,1.267 30.346,11.534 26.636,18.122" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1169.57,489.137c0.865,8.125 -11.003,1.585 -11.438,-4.335c-0.801,-10.766 11.861,-1.696 11.438,4.335" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1014.03,546.567c6.351,0 18.225,-3.64 15.513,6.415c-2.455,9.099 -13.48,-1.475 -15.513,-6.415" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1037.73,307.665c-5.119,-5.119 4.767,-13.023 7.024,-8.173c2.03,4.36 -2.103,11.06 -7.024,8.173" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1118.89,243.988c-0.08,0.653 8.125,12.796 -0.349,8.717c-6.416,-3.073 -7.704,-12.657 -0.933,-8.589" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1035.49,488.402c-15.123,-18.142 13.711,-6.092 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1061.71,555.43c0.016,0.391 -4.034,12.156 -6.595,9.521c-4.203,-4.332 4.504,-21.014 6.595,-9.521" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1052.42,590.691c-1.079,-4.293 -0.74,-8.473 1.015,-12.549c6.421,3.15 4.513,12.386 -1.015,12.549c-1.63,-4.197 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1043.49,267.759c0.192,2.571 7.792,6.604 6.432,8.919c-2.296,3.832 -15.338,-0.371 -6.432,-8.919" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1090.84,563.239c-0.391,-1.796 -0.782,-3.585 -1.172,-5.381c10.628,4.427 3.585,9.649 1.172,5.381" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1073.83,580.122c6.768,-1.252 10.037,4.174 14.467,7.35c-4.92,-2.494 -10.231,-4.05 -14.467,-7.35c6.768,-1.252 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1025.12,255.005c-0.653,-3.326 0.624,-4.914 4.706,-4.395c-1.745,1.62 -3.224,3.006 -4.706,4.395" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1049.94,540.877c1.325,1.213 1.386,6.982 -0.01,5.558c-1.357,-1.803 -1.354,-3.656 0.01,-5.558" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1052.27,590.557c1.693,2.18 1.178,3.521 -1.553,4.024c-1.162,-1.994 1.284,-2.955 1.553,-4.024" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1073.97,579.987c-0.928,-0.733 -1.853,-1.469 -2.782,-2.202c1.265,-1.006 2.616,-1.118 4.05,-0.34c-1.677,2.533 -2.1,3.381 -1.268,2.542" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M186.155,577.361c-0.109,-12.613 7.184,-49.829 20.143,-55.645c13.423,-6.025 42.299,6.569 41.348,22.912c-0.435,7.468 -8.231,15.107 -10.183,22.726c-1.185,4.613 -0.433,22.134 -5.193,24.157c-11.989,5.084 -48.449,7.709 -46.115,-14.15" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M182.794,579.137c-9.636,-19.948 -8.246,-48.888 18.209,-55.309c-10.18,16.832 -15.795,35.87 -18.209,55.309" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M258.113,550.775c6.496,3.995 -1.111,24.772 -2.651,29.814c-3.969,12.994 -11.163,13.263 -22.303,19.358c-12.031,6.582 -20.713,4.05 -33.329,1.473c-3.301,-0.675 -24.951,-7.562 -20.79,-13.849c10.469,10.184 41.47,14.976 53.757,7.699c18.453,-10.926 24.128,-24.503 25.316,-44.495c3.743,2.302 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M168.301,581.713c-9.044,3.698 -42.258,19.282 -51.686,12.626c8.065,-8.109 41.931,-25.796 51.686,-12.626" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M252.49,546.867c-1.562,7.536 2.488,14.057 -0.4,21.859c-0.723,1.959 -10.094,18.948 -12.924,18.03c-8.752,-2.853 10.629,-36.495 13.324,-39.889" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M258.283,550.6c-5.608,-9.908 -9.309,-18.267 -18.772,-24.676c-2.302,-1.556 -16.631,-9.066 -15.975,-10.5c20.908,0.297 29.452,18.769 34.747,35.176" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M158.182,652.836c1.002,11.355 -14.991,9.94 -13.576,0.458c1.216,-7.914 12.411,-7.888 13.576,-0.458" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M258.882,588.891c-3.688,10.417 -12.475,15.837 -23.315,16.07c9.793,-2.007 16.042,-14.847 23.315,-16.07c-3.838,10.836 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M177.615,533.224c-6.61,23.658 -11.492,10.097 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M259.017,589.028c-3.49,-6.684 1.799,-11.905 2.906,-17.837c-0.576,6.031 -1.261,12.155 -2.906,17.837c-3.49,-6.684 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M170.128,563.624c0.724,0.989 5.388,12.601 2.369,13.324c-3.579,0.836 -2.743,-12.325 -2.369,-13.324" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M223.536,515.423c-4.802,0.611 -9.591,1.226 -14.38,1.841c5.058,-2.504 8.906,-3.394 14.38,-1.841" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M170.899,561.864c-2.965,-2.129 -1.979,-7.177 -0.849,-6.204c1.121,1.94 1.403,4.005 0.849,6.204" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M177.425,532.445c0.362,-3.723 1.508,-4.737 3.435,-3.047c-0.483,1.719 -1.629,2.734 -3.435,3.047" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M592.532,229.734c-0.128,0.045 -0.397,0.272 0,0c-0.064,0.022 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M618.6,239.758c-0.275,-1.418 -0.391,-2.871 -0.426,-4.312c-0.006,1.45 0.106,2.904 0.426,4.312" style="fill:#020303;fill-rule:nonzero;"/><path d="M554.015,292.254c-0.009,-0.08 -0.371,-0.509 0,0c-0.009,-0.096 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M594.298,271.647c3.544,-1.726 6.175,-13.43 6.713,-13.471c13.929,-0.913 -4.271,31.731 -12.844,18.522c-8.374,-12.911 16.196,-23.878 6.131,-5.051" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M571.085,272.341c-5.449,11.304 -9.799,3.057 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M653.324,246.58c-5.071,-11.666 -18.472,-29.769 -30.755,-34.798c-14.422,-5.9 -24.839,7.801 -34.911,10.394c9.338,-2.26 0.397,8.522 4.738,7.575c2.696,-11.868 7.613,-8.686 9.694,0.595c2.026,9.031 2.318,18.398 -5.222,25.281c-4.033,3.685 -26.017,10.981 -30.451,6.166c-8.832,-9.595 13.161,-11.451 15.258,-19.852c-4.792,4.553 -16.577,6.499 -19.08,11.951c-6.297,13.727 13.939,8.621 18.709,11.701c5.749,3.707 3.23,17.136 -3.941,17.383c-10.76,0.365 -25.163,10.033 -34.613,1.005c11.701,7.306 19.851,-0.371 30.541,-3.72c17.236,-5.452 -13.513,-11.381 -13.113,-11.067c8.439,8.109 -5.138,16.407 -12.754,13.718c5.807,-4.364 8.89,-10.264 12.924,-13.516c-0.18,-0.202 -0.231,-0.266 -0.16,-0.192c-3.368,-1.582 -9.364,-13.039 -11.791,-13.462c0.525,3.336 4.011,11.525 2.135,14.227c-1.299,1.87 -9.319,4.635 -7.606,1.617c3.265,-5.76 -1.293,-3.461 -3.749,-7.267c-1.488,-2.309 2.987,-8.407 0.212,-9.688c-3.554,2.325 -5.433,5.603 -5.638,9.838c6.931,1.802 3.8,7.661 5.513,13.695c-1.582,-0.938 -7.949,-13.34 -5.513,-13.695c-0.663,-0.663 -5.865,12.351 -5.253,14.681c1.754,-14.63 9.178,6.297 11.352,8.218c6.104,5.407 22.726,5.871 29.887,6.592c-0.221,-0.132 -0.282,-0.196 -0.182,-0.192c-2.072,-1.23 -4.152,-2.449 -6.237,-3.666c10.334,-2.202 19.785,-11.237 30.074,-8.611c-1.182,6.05 -23.063,14.482 -23.655,12.469c-0.941,2.75 24.362,-2.443 24.967,-2.501c10.824,-1.059 17.265,8.746 28.78,6.41c-2.029,-3.746 -6.358,1.555 -8.205,-2.734c4.229,-2.798 9.105,-4.578 12.815,-8.145c0.97,3.202 0.592,6.224 -1.13,9.067c23.853,-6.237 51.199,-23.258 26.36,-49.477m-107.75,29.193c4.603,-1.079 7.827,-4.821 9.517,-9.057c0.263,5.952 -11.502,18.517 -12.341,11.227c0.134,-1.751 1.076,-2.477 2.824,-2.17m39.581,-9.015c-6.07,-6.153 4.152,-4.376 0,0m20.716,24.381c-1.067,0.394 -2.129,0.785 -3.195,1.178c0.714,-4.328 -5.443,-4.113 -5.209,-8.102c0.4,-6.745 14.733,-7.414 19.051,-7.946c0.714,-0.867 -23.088,13.03 -10.439,10.497c8.845,-1.696 16.576,-9.46 24.407,-9.969c-6.826,6.992 -13.891,14.957 -24.615,14.342m3.307,-23.766c0.374,0.416 4.971,9.764 -0.625,5.781c-2.827,-1.997 1.495,-3.569 0.625,-5.781m18.811,-8.929c-0.689,-2.404 5.317,2.584 5.852,3.611c2.967,5.721 -5.641,12.581 -10.715,10.222c-12.005,-5.593 -23.729,-16.708 -15.981,-30.009c0.393,9.844 8.775,13.225 15.283,18.728c1.082,-1.838 -12.613,-13.315 -13.494,-18.728c-0.89,-5.436 -4.539,-9.956 -5.106,-15.453c-0.205,-2.02 5.769,-18.747 9.009,-14.287c1.597,2.1 3.63,3.025 10.33,3.918c11.74,1.591 1.092,25.524 11.653,31.29c1.358,-2.369 -5.077,-14.63 -0.019,-17.371c0.33,-0.179 12.597,18.325 6.034,24.042c-11.848,10.373 -16.093,-12.264 -20.885,-11.249c-0.589,6.665 6.403,9.505 8.039,15.286m11.166,25.62c-3,-3.14 -1.956,-24.691 3.563,-26.414c10.539,-3.224 2.145,32.286 -3.563,26.414m7.462,0.66c0.772,-5.439 4.863,-10.235 4.021,-15.943c-0.983,-6.546 -5.708,-11.448 -3.986,-18.398c1.268,-5.093 -3.464,-7.216 -5.909,-10.443c-1.755,-2.317 3.832,-2.375 4.206,-4.417c7.427,13.794 21.283,39.888 1.668,49.201" style="fill:#020303;fill-rule:nonzero;"/><path d="M851.478,380.869c1.117,-1.172 0.896,-11.058 3.595,-10.814c3.112,0.243 6.953,19.726 8.416,22.867c4.79,10.286 11.304,20.533 20.153,27.79c7.232,5.932 15.677,10.328 24.199,14.086c8.419,3.714 23.782,3.445 30.649,8.256c0.128,3.311 -24.058,0.452 -27.397,0.196c-13.202,-1.012 -23.933,-8.253 -34.741,-15.219c-16.038,-10.331 -28.808,-27.506 -24.874,-47.162c2.199,-2.308 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M851.584,380.734c-1.459,1.037 -2.285,2.452 -2.481,4.248c-4.539,-12.19 0.794,-3.646 2.481,-4.248" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M179.912,438.441c-0.276,2.241 1.2,3.732 4.43,4.478c5.632,5.062 6.966,5.353 9.476,11.301c4.377,10.356 8.41,20.181 -0.105,30.416c-1.511,-4.123 -3.615,-7.898 -6.313,-11.323c-4.297,-3.602 -7.895,-1.489 -11.263,-7.098c-5.855,-9.757 -11.243,-19.819 -18.939,-28.312c8.951,-1.578 14.297,0.358 22.714,0.538" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M180.894,482.475c-3.823,-1.3 -5.519,5.564 -9.358,1.671c-2.017,-2.02 8.708,-7.61 8.186,-5.314c-0.432,1.895 -3.019,3.771 1.172,3.643" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M9.561,627.932c-14.562,-0.598 3.4,-13.311 8.013,-8.093c4.793,5.42 -2.404,9.902 -8.013,8.093" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M281.399,378.789c-25.181,0 -20.744,-36.171 1.502,-37.622c24.576,-1.587 21.686,37.622 -1.502,37.622" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M122.983,504.643c-10.996,-2.097 13.257,-7.897 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M416.207,572.984c7.02,-0.653 3.182,14.739 -1.834,9.409c-1.988,-2.11 -2.933,-10.875 1.834,-9.409" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M421.37,582.357c0.012,-0.144 2.897,-16.785 4.667,-10.741c0.711,2.417 -2.109,9.908 -4.667,10.741" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M485.662,534.337l-2.359,2.775c-2.327,-3.153 1.722,-6.265 2.359,-2.775" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M709.369,441.37c0.931,12.85 6.274,53.933 -12.773,55.438c-23.764,1.936 -47.255,3.864 -70.968,5.804c-21.906,1.786 -46.915,4.568 -68.706,1.293c-25.902,-3.931 -15.101,-40.583 -17.384,-58.799c-1.632,-12.975 1.259,-25.892 0.919,-38.874c-0.259,-9.552 -2.964,-25.191 6.56,-31.453c5.554,-3.649 19.694,-2.903 26.423,-3.848c12.505,-1.757 25.163,-1.514 37.715,-2.689c26.763,-2.532 55.079,0.471 81.845,2.088c19.82,1.142 15.421,58.293 16.369,71.04" style="fill:#020303;fill-rule:nonzero;"/><path d="M718.492,389.505c-1.819,-36.239 54.262,-29.414 52.841,0.861c-1.482,31.485 -55.578,31.94 -52.841,-0.861" style="fill:#020303;fill-rule:nonzero;"/><path d="M496.421,414.381c-28.469,-0.023 -31.558,-50.799 -2.494,-46.531c14.499,2.151 27.071,5.695 29.574,21.887c2.846,18.388 -11.265,24.343 -27.08,24.644" style="fill:#020303;fill-rule:nonzero;"/><path d="M598.439,584.727c-4.764,-0.407 -9.447,-6.441 -2.449,-6.358c8.189,0.093 11.793,4.837 2.449,6.358" style="fill:#020303;fill-rule:nonzero;"/><path d="M728.73,566.954c-0.448,1.29 -8.906,11.633 -9.882,4.632c-0.714,-5.103 7.452,-2.968 9.882,-4.632" style="fill:#020303;fill-rule:nonzero;"/><path d="M716.622,565.619c-3.07,-1.089 -6.226,-4.373 0.083,-4.521c6.24,-0.147 5.948,4.764 -0.083,4.521" style="fill:#020303;fill-rule:nonzero;"/><path d="M693.356,574.879c0.759,-1.239 7.498,-3.477 8.717,-2.427c5.76,4.869 -8.887,2.36 -8.717,2.427" style="fill:#020303;fill-rule:nonzero;"/><path d="M703.792,552.388c1.412,-5.429 9.604,-2.756 8.919,-1.418c-2.12,2.651 -5.094,3.121 -8.919,1.418" style="fill:#020303;fill-rule:nonzero;"/><path d="M639.69,578.93c6.835,-7.42 15.43,4.29 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M606.292,553.114c3.035,-2.152 6.249,-2.139 10.119,-0.964c-3.48,3.358 -6.822,1.908 -10.119,0.964" style="fill:#020303;fill-rule:nonzero;"/><path d="M699.062,547.974c-0.66,-7.709 7.82,-2.721 8.128,-2.981c-1.883,1.601 -5.734,2.251 -8.128,2.981" style="fill:#020303;fill-rule:nonzero;"/><path d="M620.92,559.61c-3.964,0.954 -7.075,2.065 -12.085,-0.013c4.85,-0.208 7.82,-3.313 12.085,0.013" style="fill:#020303;fill-rule:nonzero;"/><path d="M578.365,568.307c2.855,-2 5.762,-1.238 8.691,-0.537c-2.705,2.564 -5.72,1.61 -8.691,0.537" style="fill:#020303;fill-rule:nonzero;"/><path d="M675.861,578.218c-2.858,1.981 -5.765,1.28 -8.694,0.518c2.708,-2.564 5.72,-1.6 8.694,-0.518" style="fill:#020303;fill-rule:nonzero;"/><path d="M590.843,571.856c-2.855,1.981 -5.762,1.28 -8.691,0.518c2.705,-2.554 5.72,-1.587 8.691,-0.518" style="fill:#020303;fill-rule:nonzero;"/><path d="M620.248,579.665c2.641,-2.042 5.509,-0.89 9.018,-1.556c-3.077,4.024 -6.079,2.785 -9.018,1.556" style="fill:#020303;fill-rule:nonzero;"/><path d="M675.271,544.932c3.022,-1.367 5.96,-3.349 10.106,-1.229c-3.435,2.743 -6.902,1.091 -10.106,1.229" style="fill:#020303;fill-rule:nonzero;"/><path d="M685.99,551.25c-2.4,2.27 -4.885,1.569 -8.966,1.281c3.963,-3.144 6.492,-1.588 8.966,-1.281" style="fill:#020303;fill-rule:nonzero;"/><path d="M622.102,564.772c-3.026,2.183 -3.026,2.183 -8.061,1.735c2.17,-3.672 5.407,-1.556 8.061,-1.735" style="fill:#020303;fill-rule:nonzero;"/><path d="M692.837,555.317c-3.089,3.932 -6.054,2.36 -9.13,2.51c2.295,-3.899 5.522,-1.78 9.13,-2.51" style="fill:#020303;fill-rule:nonzero;"/><path d="M673.21,568.504c2.465,-4.193 5.119,-2.276 7.696,-3.073c-1.754,4.258 -4.712,2.071 -7.696,3.073" style="fill:#020303;fill-rule:nonzero;"/><path d="M939.277,347.53c1.694,2.878 5.644,0.326 6.745,3.867c-2.756,-0.823 -9.889,7.92 -6.745,-3.867" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1069.4,313.861c-12.953,-42.603 55.892,-61.898 72.731,-23.805c7.18,16.247 4.907,36.073 -10.92,46.771c-12.508,8.455 -41.665,6.262 -49.102,-8.973c4.959,-2.676 15.421,7.216 20.245,8.631c9.31,2.731 19.429,-0.592 26.712,-6.598c16.66,-13.747 14.083,-36.226 -0.349,-50.229c-15.11,-14.7 -41.893,-7.654 -50.431,10.526c-4.142,8.82 -1.616,17.21 -4.043,25.953c-2.529,4.837 -3.176,-2.193 -4.843,-2.276" style="fill:#020303;fill-rule:nonzero;"/><path d="M1046.05,376.668c-1.316,1.556 -12.191,-2.218 -6.522,5.996c3.64,5.276 16.033,1.806 21.209,4.85c-5.045,0.205 -26.34,2.747 -25.812,-6.767c0.336,-6.195 7.049,-7.555 11.125,-4.079c-1.892,2.235 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1189,299.483c-8.461,14.563 -22.476,-5.852 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1071.8,316.364c1.651,3.47 8.768,6.06 10.308,11.492c-6.883,-0.922 -11.976,-7.337 -12.709,-13.993c1.504,0.132 1.367,2.036 2.401,2.501" style="fill:#020303;fill-rule:nonzero;"/><path d="M1045.93,376.793c3.412,-1.93 6.742,-0.297 10.106,0.106c-4.27,0.557 -5.948,1.124 -10.106,-0.106" style="fill:#020303;fill-rule:nonzero;"/><path d="M221.987,570.396c-0.698,7.299 -3.787,2.551 -7.424,0.419c-6.697,-3.931 0.845,6.844 0.541,5.833c-2.407,1.479 -4.161,6.527 -6.959,6.809c-8.333,0.832 -2.837,-17.694 -1.915,-20.908c-0.477,0.362 -8.093,8.605 -9.537,5.042c-3.912,-9.453 7.299,-13.09 13.44,-16.567c-15.223,-5.531 7.92,-14.511 9.008,-18.356c2.356,-8.103 9.066,16.042 5.151,16.292c-1.828,-0.775 -3.733,-1.118 -5.721,-1.031c1.252,1.117 2.67,1.953 4.252,2.503c-0.445,2.449 -7.264,2.296 -5.452,4.447c2.314,2.753 9.588,8.813 4.424,15.712c-3.345,-2.529 -2.327,-7.344 -5.75,-9.959c-0.79,4.866 1.009,8.496 5.942,9.764" style="fill:#020303;fill-rule:nonzero;"/><path d="M222.823,550.434c-20.178,0 7.427,-7.405 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M181.595,555.233c0.785,-3.156 1.566,-6.313 2.529,-10.19c1.87,4.556 -0.477,7.331 -2.529,10.19" style="fill:#020303;fill-rule:nonzero;"/><path d="M619.945,242.985c-1.531,-0.88 -6.288,-16.98 -5.023,-18.462c4.709,-5.583 5.144,18.852 5.023,18.462c-1.819,-1.05 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M280.866,368.621c-11.56,0.087 -10.407,-20.328 -1.428,-20.328c12.447,-0.048 16.154,20.197 1.428,20.328" style="fill:#020303;fill-rule:nonzero;"/><path d="M546.534,459.162c0,-22.377 -4.28,-49.563 1.415,-71.297c4.117,-15.517 44.819,-14.044 56.997,-14.191c24.554,-0.295 49.451,-1.002 73.976,0.051c25.867,1.108 21.862,21.254 23.539,41.243c1.873,22.383 2.51,46.771 -1.027,69.043c-2.267,14.092 -47.294,10.878 -57.634,11.268c-25.428,0.958 -51.266,0.356 -76.592,2.744c-21.973,2.068 -20.674,-23.085 -20.674,-38.861" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M757.364,378.293c15.811,0.957 9.729,22.515 -1.767,21.577c-15.639,-1.303 -15.456,-22.627 1.767,-21.577" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M737.165,381.045c2.372,3.269 1.309,12.322 -2.347,13.948c-2.599,1.3 1.672,-13.272 2.347,-13.948" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M724.238,393.797c0.08,-0.646 -0.849,-8.464 2.746,-5.41c0.881,0.743 -2.263,5.138 -2.746,5.41" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M505.849,399.125c-14.048,0.278 -7.303,-19.33 2.346,-18.091c14.89,1.905 11.339,18.113 -2.346,18.091" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1081.93,328.033c-9.8,-14.49 -13.612,-32.548 0.377,-47.38c10.914,-11.576 35.343,-14.582 47.121,-2.647c14.297,14.492 18.913,36.831 2.535,52.252c-6.223,5.858 -15.392,10.138 -24.106,9.002c-6.354,-0.833 -21.247,-12.533 -25.927,-11.227" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1071.8,316.364c-2.862,0.435 -2.299,-5.568 -2.254,-6.048c2.231,1.486 2.987,3.502 2.254,6.048" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M221.987,570.396c-8.954,5.752 -7.878,-10.619 -7.878,-14.576c4.549,3.794 7.321,9.425 7.878,14.576" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M207.623,555.108c-2.199,4.917 -5.349,7.946 -9.095,10.51c1.025,-6.284 1.598,-6.973 9.095,-10.51" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M213.71,543.678c0.25,-1.588 -4.325,0.468 -3.71,-2.401c1.005,-4.757 3.675,1.748 3.71,2.401" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M280.185,363.594c-4.642,-0.275 -4.268,-4.773 -2.152,-7.769c3.544,-5.023 9.576,5.071 2.152,7.769" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M558.197,422.347c0.973,-13.849 -0.836,-30.851 15.033,-37.344c16.167,-6.611 44.665,-2.865 62.068,-2.673c11.982,0.131 45.155,-3.701 49.448,11.365c5.547,19.419 7.206,39.706 6.495,59.833c-1.444,40.317 -61.203,30.246 -88.536,30.851c-11.602,0.256 -38.694,-0.496 -42.277,-15.901c-3.428,-14.733 -2.756,-31.149 -2.231,-46.131" style="fill:#020303;fill-rule:nonzero;"/><path d="M1085.81,294.093c-0.169,-8.214 14.867,-9.773 14.711,-0.909c-0.18,10.613 -15.405,11.564 -14.711,0.909" style="fill:#020303;fill-rule:nonzero;"/><path d="M561.197,443.737c5.525,-15.085 -2.705,-31.745 6.774,-46.039c9.063,-13.672 29.442,-10.951 43.56,-11.643c19.128,-0.941 37.782,-0.659 56.801,1.79c14.448,1.84 16.682,21.196 18.187,32.404c1.678,12.558 4.616,30.723 -0.547,42.881c-6.224,14.646 -26.712,17.131 -40.356,17.934c-18.443,1.082 -38.589,2.564 -56.942,0.019c-24.228,-3.361 -22.16,-18.571 -27.477,-37.346" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1094.48,290.153c-1.249,2.097 -5.881,2.141 -4.757,0.602c1.444,-1.204 3.031,-1.406 4.757,-0.602" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M629.873,429.412c-6.678,0.759 -2.061,-11.051 -0.499,-8.56c1.245,2.791 1.412,5.647 0.499,8.56" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M586.465,425.542c-1.454,-3.836 -0.929,-5.254 1.575,-4.245c0.762,1.808 0.237,3.223 -1.575,4.245" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M84.815,506.4c13.932,8.593 28.655,18.507 45.923,13.443c-15.799,9.447 -34.933,-1.895 -45.923,-13.443" style="fill:#231f20;fill-rule:nonzero;"/><path d="M70.549,698.289c-14.37,0.98 -25.073,16.945 -40.023,16.417c6.416,4.834 16.093,15.574 24.964,15.212c10.382,-0.397 23.418,-9.043 32.887,-13.039" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.2px;"/><path d="M33.471,439.229c7.063,-12.524 30.135,-18.885 43.282,-18.885c-8.698,4.04 -19.854,4.174 -28.491,8.896c-5.049,2.76 -10.069,7.274 -14.791,9.989c2.03,-3.602 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M448.93,312.848c-1.063,-19.582 2.074,-38.877 1.607,-58.405c-0.352,-19.176 1.111,-40.125 10.977,-57.07c-11.541,37.757 -5.314,77.533 -12.584,115.475c-0.529,-9.735 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M722.384,187.593c5.256,29.366 8.695,66.258 6.07,95.627c-4.93,-29.417 -8.996,-66.335 -6.07,-95.627c1.415,7.914 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M485.149,144.056c-1.655,-4.274 -7.151,-14.46 -1.174,-17.402c18.202,-8.964 27.048,17.482 12.277,22.316" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M703.101,138.119c4.203,-9.857 7.875,-22.719 -10.341,-17.933c-12.033,3.121 -7.862,24.134 1.947,21.989" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M208.108,332.955c-5.302,-32.663 51.81,-55.761 76.822,-53.289c-29.471,4.587 -72.337,18.1 -76.822,53.289c-1.396,-8.602 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M700.315,183.26c-1.601,11.224 18.878,24.849 1.207,30.249c-7.401,1.915 -8.077,-9.075 0.352,-8.301c9.662,0.887 10.824,12.399 9.396,19.688c-1.056,7.77 -11.054,10.504 -14.249,2.312c-3.432,-6.944 8.304,-4.373 10.753,-1.406c4.953,6 3.791,15.885 0.452,22.301c-5.238,10.638 -16.132,-4.248 -5.689,-4.648c12.562,-0.596 9.796,33.85 -4.642,28.152c-5.023,-1.553 -0.515,-9.121 3.963,-7.392c10.334,3.733 7.939,19.154 3.304,26.069c-16.125,22.463 -5.615,-30.048 3.854,-6.157c2.072,5.231 2.177,13.481 0.321,18.789c-2.421,6.928 -18.194,3.051 -16.494,11.864c2.34,0.512 7.655,-0.775 10.148,-3.326c-1.847,2.667 -8.025,6.083 -11.092,3.573c-2.801,-10.385 13.586,-5.904 15.718,-12.694c1.54,-4.894 1.252,-12.578 -0.826,-17.293c-3.816,-8.669 -12.546,3.582 -8.874,6.969c3.381,4.46 8.714,-12.664 8.756,-13.881c0.096,-2.587 -7.155,-17.287 -8.544,-9.921c-0.785,4.184 7.039,-0.714 7.382,-1.197c3.371,-4.46 3.553,-11.598 2.314,-16.797c-2.106,-9.172 -11.169,-2.904 -7.391,-0.436c7.196,5.378 9.792,-10.196 9.616,-13.618c-0.237,-4.626 -1.84,-10.107 -6.633,-12.015c-7.577,-3.576 -4.501,7.555 1.627,6.473c6.303,-1.066 5.032,-13.692 3.489,-17.444c-2.827,-6.899 -12.789,-4.815 -10.651,-2.302c3.624,4.265 13.785,-3.419 8.503,-8.762c-5.052,-5.112 -7.959,-12.075 -6.07,-18.849c-0.858,6.006 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M472.572,329.428c-0.012,-4.244 -2.785,-8.842 -5.618,-11.809c-2.776,-2.907 -12.431,-2.286 -8.349,1.946c7.293,7.565 17.598,-15.613 7.626,-23.629c-1.614,-1.296 -7.61,-3.028 -7.229,1.434c0.711,8.34 14.3,-1.114 15.792,-3.976c2.407,-4.277 0.775,-33.562 -9.012,-27.826c0.724,-1.037 10.369,1.572 10.629,-8.656c0.067,-2.76 -4.146,-19.637 -9.185,-18.382c-4.818,1.197 14.438,11.15 8.448,-6.425c-1.981,-5.827 -5.195,-9.803 -9.306,-12.325c14.358,1.568 0.384,-18.542 7.623,-27.128c-4.13,9.578 11.284,32.269 -7.264,31.331c-3.787,-0.336 -5.868,-6.111 -1.079,-6.703c9.674,-2.69 15.533,10.932 16.24,18.241c2.67,29.359 -36.674,1.581 -15.584,-2.28c19.464,-3.335 18.197,47.521 -1.399,36.649c-5.679,-2.993 -0.128,-8.727 4.729,-6.483c7.76,3.861 9.751,17.256 8.65,24.715c-1.262,8.544 -9.207,17.245 -18.6,14.169c-7.309,-2.731 -3.502,-12.613 3.915,-11.954c23.415,2.084 8.861,44.009 -6.412,33.143c-11.483,-8.166 20.187,-18.452 15.385,5.948c-0.009,-3.018 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M1111.69,591.623c-11.49,-0.217 -49.038,-18.772 -44.662,-31.014c1.687,-4.764 18.347,7.212 20.45,8.359c4.607,2.503 15.876,5.704 18.197,11.002c1.815,4.175 1.597,8.974 6.015,11.653" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M473.341,185.639c1.787,-6.166 3.576,-12.331 5.363,-18.494" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M518.885,220.807c4.607,-37.206 60.637,-49.71 90.361,-42.303c15.619,3.89 34.507,9.592 46.97,20.178c10.779,9.156 15.331,27.631 20.53,39.674c-9.348,-10.878 -12.671,-26.635 -23.911,-35.48c-14.006,-11.019 -40.593,-23.286 -58.517,-23.789c-30.816,-0.861 -60.799,15.35 -75.433,41.72c1.07,-8.631 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M188.437,503.071c-4.546,2.234 -8.989,4.68 -13.292,7.35" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M362.547,543.794c0.144,-9.326 17.722,-11.803 16.57,-2.385c-1.255,10.235 -16.775,14.86 -16.57,2.385" style="fill:#020303;fill-rule:nonzero;"/><path d="M192.361,325.813c3.774,-16.266 15.517,-30.387 30.464,-37.664c15.296,-7.449 42.76,-14.527 59.656,-11.691c19.503,2.696 38.41,12.284 52.685,25.671c13.189,12.364 15.203,31.834 20.001,47.332c-12.049,-17.46 -13.695,-36.78 -32.298,-50.344c-17.956,-13.087 -44.649,-27.371 -67.087,-18.011c-3.887,1.121 -7.61,2.315 -11.183,3.607c-22.235,8.041 -38.629,19.859 -52.238,41.1c4.197,-18.081 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><defs><image id="_Image1" width="304px" height="112px" xlink:href="data:image/png;base64,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"/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/megaphone-gopher.svg b/go.dev/_content/images/gophers/megaphone-gopher.svg
new file mode 100644
index 0000000..5f79596
--- /dev/null
+++ b/go.dev/_content/images/gophers/megaphone-gopher.svg
@@ -0,0 +1,45 @@
+<svg width="84" height="63" viewBox="0 0 84 63" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M53.6575 4.36048H59.0102L60.9812 3.78335L64.1748 4.37397L65.1816 4.90303L67.8903 2.35736L69.6967 1.77466L71.4318 1.84676L71.2856 3.13821L69.8677 5.52091L69.6737 7.18608L73.2412 10.1377L74.8928 13.155L76.9406 20.0378V24.0804L76.6104 27.9967L77.0216 33.292L78.6571 40.0805L79.2498 42.3503L79.5317 46.1912V48.9535L78.9539 50.891L75.5701 54.6865L74.0339 56.5835L71.1272 58.1959L67.6258 59.3261L64.171 59.4507H58.2449L54.0981 58.934L51.7022 57.5974L47.7081 54.3934L44.0625 49.9838L40.6255 42.7443L39.4696 37.9372L38.4253 32.1034L38.6178 26.945L39.248 23.7539L38.9122 17.9254L40.0928 11.9148L41.9142 9.61802L47.0324 6.44568L50.5816 4.90303L53.6575 4.36048Z" fill="#FEFEFE"/>
+<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="84" height="63">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0.121582H83.9282V63H0V0.121582Z" fill="white"/>
+</mask>
+<g mask="url(#mask0)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M33.948 31.2259C33.6713 30.9343 33.4672 30.9197 33.3009 31.1591C33.5371 31.1834 33.7424 31.2048 33.948 31.2259ZM34.4252 27.0728C34.7703 27.4397 35.0646 27.5256 35.1701 27.3914C34.9043 27.2777 34.6646 27.1751 34.4252 27.0728ZM7.80369 23.3602C7.64627 23.7048 7.77814 24.0163 8.17494 24.397C8.04806 24.0427 7.93762 23.7347 7.80369 23.3602ZM44.3217 16.3324C44.3487 16.3476 44.512 16.2064 44.5035 16.1888C44.4459 16.0678 44.3745 15.9421 44.2732 15.8594C44.2424 15.8342 44.1046 15.9394 43.9463 16.02C44.1105 16.163 44.2054 16.2661 44.3217 16.3324ZM6.20358 34.186C6.8841 34.4368 7.16987 34.4137 7.30968 34.113C7.15372 34.1277 6.99013 34.1675 6.83241 34.1508C6.68408 34.135 6.54252 34.0591 6.35513 33.9949C6.35014 34.0011 6.27789 34.0922 6.20358 34.186ZM36.0386 30.9027C36.2468 30.7107 36.3596 30.4687 36.3414 30.1886C36.3038 30.1683 36.2659 30.1478 36.228 30.1273C36.0641 30.377 35.9002 30.6263 35.6758 30.9677C35.8485 30.9402 35.9778 30.9583 36.0386 30.9027ZM5.31629 33.0197C5.33421 33.0016 5.35242 32.9837 5.37034 32.9655C5.20615 32.931 4.9988 32.9465 4.88748 32.8504C4.71801 32.7048 4.61287 32.4838 4.48657 32.2907C4.4622 32.2538 4.47365 32.16 4.45662 32.1568C4.10622 32.0932 4.05894 31.7835 3.93734 31.5341C3.89094 31.4389 3.84365 31.3442 3.79343 31.2508C3.74937 31.169 3.70855 31.026 3.65274 31.0187C3.15315 30.9557 3.10439 30.4535 2.82214 30.1833C2.78836 30.1511 2.85034 30.0192 2.8753 29.8955C2.83506 29.9043 2.6838 29.9207 2.68351 29.9392C2.68145 30.0822 2.66148 30.2604 2.73608 30.362C2.9455 30.6463 3.20308 30.8945 3.42952 31.1667C3.48415 31.2323 3.48709 31.3384 3.52439 31.4213C3.62484 31.6452 3.73116 31.8664 3.83513 32.0885C3.87361 32.0812 3.91208 32.0742 3.95056 32.0671C3.88917 32.1102 3.8275 32.1533 3.8131 32.1635C4.13442 32.49 4.44898 32.8123 4.76618 33.132C5.0872 33.4552 5.17884 33.4933 5.68666 33.4042C5.56271 33.2756 5.43965 33.1475 5.31629 33.0197ZM34.5821 22.1861C34.5862 22.2107 34.5824 22.2473 34.597 22.2576C35.0679 22.5861 34.8837 23.093 34.8908 23.5141C34.899 23.9665 34.7351 24.4198 34.6825 24.8772C34.6696 24.9894 34.8047 25.2239 34.8584 25.2198C35.0335 25.2069 35.272 25.1579 35.3577 25.0346C35.4931 24.8391 35.5868 24.5725 35.5883 24.3351C35.5936 23.5996 35.8007 22.8671 35.6056 22.1266C35.5275 21.8307 35.5504 21.508 35.4714 21.2127C35.3448 20.7406 34.8963 20.4098 34.2851 20.5285C34.3873 21.0999 34.4846 21.6428 34.5821 22.1861ZM34.2146 30.471C34.3991 30.5109 34.595 30.5912 34.6247 30.2812C34.6276 30.2513 34.7583 30.1997 34.8159 30.2138C35.2676 30.3251 35.561 30.0904 35.4197 29.6632C35.2505 29.1513 35.2191 28.5579 34.7624 28.1819C34.4793 27.949 34.1615 27.7245 33.7547 27.8139C33.6672 27.8329 33.5388 27.9317 33.5321 28.0032C33.5056 28.2906 33.5277 28.5825 33.515 28.8717C33.5056 29.0909 33.4601 29.3086 33.4501 29.5278C33.4384 29.7895 33.4475 30.0523 33.4475 30.3125C33.7051 30.3655 33.9603 30.4168 34.2146 30.471ZM38.4528 29.8993C38.4655 29.8566 38.3897 29.7625 38.3333 29.7288C37.8916 29.4671 37.4445 29.2146 36.9523 28.9321C36.9523 29.6175 36.974 30.229 36.9347 30.8364C36.9267 30.9618 36.6926 31.0729 36.5349 31.2156C36.6045 31.3457 36.7 31.5239 36.7969 31.7041C37.3297 31.8978 37.8824 32.0988 38.5127 32.3279C38.5524 31.9133 38.5574 31.5918 38.6249 31.2836C38.6517 31.1629 38.8182 31.0726 38.9148 30.9744C38.8672 30.5921 38.3039 30.4095 38.4528 29.8993ZM82.9258 50.4707C82.3211 49.9205 81.625 49.5545 80.8147 49.4343C80.513 49.3895 80.2522 49.4402 80.1209 49.8141C80.0452 50.03 79.8087 50.1897 79.6445 50.3752C79.9065 50.5888 79.8772 50.7655 79.4219 51.0676C79.8598 51.4146 80.3136 51.6563 80.8675 51.7718C81.1607 51.833 81.427 51.9842 81.7504 51.9306C81.9657 51.8948 82.191 51.9177 82.4118 51.9162C82.5587 51.9151 82.7079 51.9004 82.8518 51.9209C83.2093 51.9722 83.6234 51.5602 83.5549 51.2077C83.5279 51.0676 83.4974 50.9282 83.4874 50.8798C83.2633 50.7181 83.0797 50.6105 82.9258 50.4707ZM51.1762 57.3128C50.9286 57.164 50.7004 57.0266 50.5139 56.9143C50.5673 56.7338 50.6114 56.5859 50.6554 56.4379C50.5277 56.447 50.4002 56.456 50.2416 56.4672C50.2525 56.4889 50.2304 56.4452 50.194 56.3722C50.0072 56.6201 49.8269 56.8502 49.6571 57.0875C49.4595 57.3632 49.2677 57.6437 49.0809 57.927C49.0318 58.0012 49.0242 58.1028 48.974 58.1758C48.8462 58.3616 48.7049 58.5383 48.5155 58.79C48.4817 58.906 48.4385 59.1431 48.3457 59.3593C48.0926 59.9489 48.2473 60.1927 48.8991 60.1464C49.2004 60.125 49.5335 60.2149 49.7937 59.96C49.8301 59.9243 49.9159 59.9175 49.9735 59.9281C50.4258 60.0095 50.5891 59.6336 50.8381 59.393C50.94 59.2949 51.0575 59.2084 51.1412 59.0968C51.4158 58.7293 51.6784 58.3528 51.9378 57.9906C51.7994 57.5944 51.0969 57.8435 51.1762 57.3128ZM9.70485 23.1246C9.81029 22.4516 9.80706 21.7621 9.87638 21.0823C9.92954 20.5598 9.71748 20.1288 9.46959 19.7036C9.36122 19.5181 9.23962 19.3397 9.11538 19.1639C8.94738 18.9259 8.71448 18.9042 8.50066 19.0865C8.08771 19.4387 7.87095 19.9201 7.78724 20.4198C7.69003 20.9991 7.60808 21.6056 7.8827 22.182C7.90766 22.2341 7.81838 22.3408 7.78343 22.4196C8.47305 22.8891 8.66366 23.718 9.0775 24.4424C9.50014 24.0342 9.63436 23.5727 9.70485 23.1246ZM39.8611 14.4485C39.5824 14.506 39.3187 14.7439 39.101 14.9549C38.9333 15.1175 39.1372 15.5942 39.3448 15.7551C39.6964 16.027 40.0103 16.3467 40.3619 16.6187C40.5064 16.7306 40.7017 16.7901 40.8832 16.8381C41.1872 16.9184 41.4968 17.0049 41.8078 17.0224C42.0325 17.035 42.2751 16.9697 42.4889 16.8859C42.8035 16.7631 43.1386 16.64 43.3944 16.4308C43.7143 16.1689 43.7061 15.8864 43.4872 15.5307C43.2676 15.1735 43.0405 14.8224 42.6252 14.6574C42.2927 14.5253 41.9591 14.3955 41.6498 14.2742C41.0166 14.3287 40.4271 14.3319 39.8611 14.4485ZM70.2844 62.0053C70.4997 61.7838 70.6918 61.5397 70.8939 61.3053C71.1091 61.0559 71.3092 60.7907 71.5453 60.5625C71.6569 60.4546 71.8372 60.4177 71.9797 60.3518C71.913 59.8545 71.8393 59.3224 71.7709 58.7897C71.7154 58.3554 71.6713 58.3654 71.2399 58.448C70.989 58.4961 70.7723 58.5415 70.5881 58.7182C70.3549 58.9421 70.1675 58.5951 69.9443 58.6613C69.8835 58.6792 69.8195 58.6877 69.7572 58.7006C69.7901 58.7654 69.823 58.8301 69.8586 58.8999C69.6688 58.9579 69.4494 59.0522 69.2206 59.0897C68.6743 59.1794 68.6103 59.5847 68.5516 60.0177C68.538 60.1168 68.4399 60.2041 68.3745 60.3064C68.4053 60.3685 68.4952 60.4734 68.506 60.5859C68.5316 60.8508 68.4846 61.1257 68.5333 61.3838C68.5739 61.5986 68.7084 61.7958 68.8018 62.0003C68.8582 62.1234 68.9155 62.2462 68.9768 62.3786C69.3989 62.3004 69.9129 62.3871 70.2844 62.0053ZM38.0886 15.5887C38.096 15.3068 38.1397 15.0252 38.1811 14.7454C38.1911 14.6783 38.2472 14.5684 38.2916 14.5637C38.8937 14.4978 39.0223 13.8707 39.4497 13.6011C39.5084 13.5642 39.5569 13.4903 39.581 13.4232C39.7586 12.9307 39.9272 12.4352 40.1035 11.942C40.1322 11.8617 40.1701 11.7744 40.2297 11.7167C40.4309 11.5215 40.4835 11.2962 40.532 11.0175C40.5922 10.6682 40.8183 10.3439 40.9928 10.0192C41.2031 9.62858 41.083 9.38098 40.6406 9.42581C40.1173 9.47885 39.5877 9.56089 39.0884 9.71825C38.859 9.79062 38.6928 10.0693 38.5033 10.2598C38.3832 10.3808 38.2842 10.5244 38.1568 10.636C37.8196 10.9317 37.4146 11.1426 37.3784 11.6962C37.362 11.9534 37.1082 12.1925 36.9725 12.4454C36.9088 12.5641 36.8601 12.6933 36.8219 12.8231C36.6874 13.2802 36.5182 13.7333 36.443 14.2006C36.3772 14.61 36.4483 15.0398 36.4075 15.4556C36.3599 15.9383 36.4107 16.3845 36.628 16.8249C36.8633 17.3008 36.962 17.3597 37.5165 17.2021C37.7415 17.1382 38.1547 16.5905 38.1394 16.3702C38.1206 16.1097 38.0819 15.8486 38.0886 15.5887ZM43.627 17.4385C43.5962 17.4757 43.5845 17.5048 43.5683 17.5074C43.0857 17.5853 42.5994 17.6428 42.1215 17.7412C41.7053 17.8271 41.3338 17.8704 40.9059 17.6765C40.5167 17.5001 40.0418 17.5115 39.5583 17.4327C39.5627 17.4078 39.5789 17.3111 39.5974 17.2015C39.5701 17.1997 39.5381 17.198 39.5061 17.1962C39.2884 17.1833 39.067 17.1912 38.8537 17.1525C38.5509 17.098 38.2834 17.0512 38.0331 17.324C37.6974 17.6899 37.5253 18.0776 37.5238 18.5892C37.5232 18.8421 37.4169 19.0912 37.5561 19.3414C37.661 19.5298 37.787 19.713 37.8522 19.9152C38.0187 20.43 38.4769 20.6756 38.8599 20.9583C39.0373 21.0896 39.3939 21.0081 39.6647 20.9788C40.2811 20.9123 40.7937 21.0612 41.2066 21.5529C41.3279 21.6976 41.5503 21.7592 41.7282 21.8556C41.9426 21.9719 42.1476 22.129 42.3776 22.1873C42.6461 22.2552 42.9389 22.2198 43.2167 22.2591C43.4714 22.2951 43.7727 22.303 43.9586 22.446C44.193 22.6265 44.3651 22.5664 44.5751 22.4841C44.6212 22.4659 44.6659 22.4199 44.7091 22.4229C45.2571 22.4577 45.6472 22.1067 45.9976 21.7949C46.2563 21.5652 46.3996 21.1711 46.513 20.8235C46.6152 20.5103 46.6869 20.1458 46.6273 19.8311C46.5515 19.4305 46.3503 19.0469 46.1644 18.6751C46.0213 18.3888 45.8322 18.1224 45.6372 17.8669C45.5461 17.7471 45.4063 17.6372 45.2659 17.5874C44.8589 17.4429 44.4447 17.3119 44.0241 17.2147C43.8185 17.1669 43.5927 17.2065 43.3762 17.2065C43.375 17.2407 43.3739 17.2753 43.373 17.3099C43.4558 17.3518 43.5386 17.3937 43.627 17.4385ZM34.1324 23.8921C34.2378 23.3799 34.1671 22.9134 33.9809 22.4129C33.7635 21.8283 33.7145 21.1834 33.5576 20.5733C33.491 20.3134 33.2583 20.0822 33.2387 19.8273C33.2069 19.4167 32.8574 19.3238 32.6518 19.0935C32.3631 18.7694 32.0512 18.4398 31.5968 18.3786C30.9436 18.2906 30.5069 17.7861 29.9227 17.5724C29.4475 17.3987 28.9884 17.3697 28.5176 17.6135C28.315 17.7184 28.2694 17.828 28.3358 18.0243C28.5684 18.7108 28.8043 19.3959 29.0225 20.0866C29.0539 20.1859 28.9729 20.3151 28.9837 20.4268C29.0187 20.7895 29.0528 21.1544 29.1256 21.5107C29.1744 21.7477 29.2375 22.0141 29.3855 22.1914C29.5891 22.4343 29.4249 22.6201 29.4017 22.8348C29.3708 23.1214 29.2924 23.4332 29.3714 23.6928C29.459 23.9794 29.3203 24.1183 29.2119 24.3231C29.0868 24.5599 29.0639 24.8514 28.9359 25.0859C28.757 25.4135 28.7711 25.7554 28.7599 26.1018C28.7585 26.1513 28.7593 26.2108 28.7335 26.2474C28.4043 26.7148 28.5664 27.4634 27.8844 27.7283C27.8312 28.1148 27.344 28.2338 27.3222 28.6722C27.3155 28.8105 27.0221 28.9347 26.8135 28.9983C26.7654 29.1633 26.7639 29.4238 26.6596 29.4745C26.3736 29.6139 26.0487 29.6901 25.7312 29.7446C25.3524 29.8097 24.9655 29.8258 24.4941 29.8718C24.6375 30.0447 24.7065 30.1839 24.819 30.2545C25.5703 30.7266 26.3935 31.0272 27.2802 30.91C27.6268 30.8643 27.9766 30.588 28.2545 30.3383C28.7529 29.8908 29.1893 29.3757 29.6704 28.908C29.8043 28.7779 30.0044 28.7155 30.2511 28.5799C30.2144 29.1583 29.8631 29.391 29.5961 29.662C29.1573 30.1068 28.6342 30.4798 28.2536 30.9665C28.0759 31.1939 28.1346 31.6159 28.1229 31.9508C28.1211 32.0003 28.3223 32.0979 28.4322 32.102C28.7358 32.1134 29.0413 32.0712 29.3453 32.0786C30.0011 32.0947 30.6582 32.1653 31.3119 32.1404C31.6541 32.1272 31.9919 31.9634 32.3276 31.8553C32.3652 31.843 32.3854 31.7513 32.3981 31.6932C32.4571 31.4213 32.522 31.1503 32.5637 30.8754C32.6888 30.0517 32.7767 29.2213 32.9347 28.404C33.0107 28.0105 33.219 27.6437 33.3544 27.2601C33.5274 26.7704 33.7142 26.2829 33.8452 25.7815C33.9685 25.31 34.022 24.8204 34.1201 24.3413C34.1342 24.2727 34.2246 24.2194 34.2467 24.1954C34.1944 24.0638 34.1168 23.9683 34.1324 23.8921ZM49.7834 22.075C50.0948 22.3924 50.4231 22.698 50.6957 23.0464C50.891 23.2961 51.2205 23.2946 51.4109 23.517C51.6329 23.7766 51.9598 23.7763 52.2473 23.8771C52.3334 23.9073 52.4012 23.9858 52.4811 24.0368C52.5739 24.0957 52.6841 24.2109 52.7637 24.1936C53.2729 24.0849 53.7373 24.2841 54.2213 24.3398C54.8684 24.4139 55.5389 24.2519 56.1991 24.2528C56.8585 24.2534 57.3537 23.82 57.9549 23.6793C58.2448 23.6114 58.5373 23.5369 58.8105 23.4224C59.0466 23.3233 59.2745 23.1859 59.4749 23.0262C59.9345 22.6593 60.3915 22.2857 60.8165 21.8802C61.0344 21.6727 61.1922 21.3982 61.3572 21.1415C61.628 20.7207 61.9194 20.3069 62.1338 19.858C62.3403 19.4258 62.4395 18.9502 62.3414 18.4591C62.3323 18.4117 62.3217 18.3381 62.3473 18.3138C62.8583 17.8303 62.5241 17.2446 62.5409 16.7045C62.55 16.41 62.5409 16.1064 62.4792 15.8199C62.4022 15.4624 62.315 15.0891 62.1382 14.7752C61.8724 14.3032 61.5237 13.8777 61.213 13.4309C61.0726 13.2287 60.9534 13.0098 60.7989 12.8196C60.3953 12.3232 59.9994 11.8183 59.5577 11.3568C59.2851 11.072 58.9368 10.8581 58.6158 10.6208C58.5826 10.5961 58.5044 10.6269 58.4483 10.6383C58.3685 10.655 58.2786 10.7128 58.2116 10.692C57.7987 10.5654 57.3945 10.4095 56.9801 10.2873C56.6747 10.1973 56.3616 10.122 56.0467 10.079C55.5589 10.0122 55.0651 9.93069 54.5758 9.94124C53.4656 9.96527 52.381 10.1408 51.4173 10.7509C51.3266 10.808 51.2896 10.9451 51.2029 11.0146C50.8828 11.2701 50.5526 11.5133 50.2257 11.7603C50.1961 11.7829 50.1544 11.7943 50.1329 11.8222C49.5816 12.5439 48.9772 13.2339 48.5037 14.0037C48.2459 14.4227 48.2097 14.9777 48.0758 15.4718C48.0535 15.5547 48.0456 15.6414 48.0276 15.7258C47.9313 16.1885 47.8094 16.6482 47.7486 17.1156C47.724 17.3049 47.8629 17.5097 47.8729 17.7102C47.8978 18.2133 48.1031 18.6473 48.3046 19.0959C48.6788 19.9289 49.0095 20.7813 49.354 21.6276C49.3634 21.6504 49.3261 21.6921 49.3343 21.6745C49.5047 21.8254 49.6527 21.9417 49.7834 22.075ZM4.86575 11.2932C4.8772 11.2994 4.9286 11.3287 5.01466 11.3779C4.86957 11.4881 4.72947 11.5948 4.6302 11.6704C4.58702 11.8793 4.60787 12.1105 4.50185 12.2309C4.14411 12.6379 4.06158 13.1244 3.97494 13.6257C3.93558 13.8519 3.90004 14.1555 3.5147 14.0339C3.49062 14.026 3.44362 14.0904 3.36579 14.1564C3.92383 14.2853 3.57843 14.7316 3.51088 14.8037C3.16724 15.1685 3.28855 15.6312 3.1602 16.0326C3.06738 16.3224 3.06298 16.6418 2.95754 16.9254C2.89087 17.1042 2.71053 17.2407 2.57631 17.4022C2.6794 17.4394 2.7772 17.4749 2.97457 17.5464C2.78866 17.5815 2.70319 17.5976 2.57102 17.6228C2.61508 17.8406 2.70789 18.0621 2.69173 18.2748C2.66618 18.6045 2.53813 18.9253 2.50523 19.2553C2.46558 19.6535 2.47997 20.0573 2.47028 20.4584C2.46764 20.5677 2.48496 20.6835 2.45501 20.7854C2.31373 21.2654 2.36484 21.7293 2.48585 22.2095C2.62477 22.7595 2.70378 23.3251 2.78983 23.8868C2.79982 23.9513 2.68968 24.0345 2.67441 24.0553C2.73667 24.2639 2.81685 24.4605 2.85298 24.6645C3.00424 25.5166 3.14199 26.3711 3.28473 27.2246C3.384 27.8171 3.47622 28.4111 3.58754 29.0012C3.61015 29.1208 3.70208 29.2289 3.76699 29.3394C4.13882 29.9717 4.50273 30.6093 4.89042 31.232C5.02464 31.4477 5.23141 31.617 5.38296 31.8236C5.46315 31.9326 5.49575 32.0759 5.59561 32.1486C5.86876 32.4583 6.17538 32.7449 6.40771 33.0828C6.74283 33.5703 7.06032 33.6735 7.60779 33.4903C7.93645 33.3802 8.30387 33.3828 8.65485 33.3415C9.03168 33.2975 9.38119 33.2413 9.55359 32.8179C9.61792 32.6596 9.78386 32.5075 9.94158 32.4284C10.586 32.1041 10.791 31.455 11.1088 30.8953C11.3766 30.4236 11.6245 29.9357 11.8266 29.4329C12.0436 28.8937 12.1967 28.3284 12.3788 27.7749C12.4137 27.6683 12.4542 27.5637 12.4921 27.4582C12.7588 26.7098 12.7083 26.7555 12.0178 26.3851C11.3734 26.0396 10.7202 25.7915 10.015 25.6388C9.86845 25.6071 9.72982 25.511 9.60235 25.4234C9.28397 25.2048 9.01934 25.2206 8.8534 25.5485C8.37554 25.2186 7.91618 24.9015 7.40748 24.5505C7.54993 24.5218 7.65067 24.5016 7.8175 24.4679C7.62952 24.3345 7.49354 24.2302 7.34962 24.1385C7.18867 24.0354 7.18104 23.7757 7.34257 23.6281C6.91582 23.425 6.6227 22.5374 6.85943 22.235C6.80039 22.1149 6.74635 22.0053 6.6926 21.8954C6.81302 21.8488 6.93138 21.7961 7.05445 21.7574C7.13434 21.7322 7.22069 21.7269 7.38927 21.6985C7.10173 21.6156 6.88762 21.598 6.73695 21.491C6.66176 21.438 6.70259 21.2215 6.68144 20.9589C6.94666 21.1125 7.09997 21.201 7.27561 21.3023C7.28765 21.2045 7.30469 21.065 7.31673 20.9683C7.11436 20.9068 6.93667 20.8525 6.75898 20.7986C6.83329 20.5935 6.90789 20.3887 6.9822 20.1836C7.01597 20.1894 7.04945 20.1953 7.08323 20.2014C7.02478 20.1358 6.96634 20.0699 6.90642 20.0025C7.29852 19.6066 7.54406 19.4164 7.70912 19.4074C7.55992 19.2629 7.18955 19.3719 7.29264 19.0156C7.38575 18.6936 7.60074 18.5526 7.92499 18.5412C8.0272 18.5377 8.12824 18.5098 8.22604 18.4269C8.11326 18.4064 8.00018 18.3862 7.8874 18.3657C7.88505 18.3369 7.8827 18.3085 7.88035 18.2798C8.05393 18.2531 8.23015 18.1925 8.4008 18.2054C9.19527 18.2663 9.95979 18.1846 10.7093 17.8869C10.9863 17.777 11.3202 17.8192 11.6163 17.745C11.9858 17.6527 12.3476 17.5232 12.7015 17.3826C12.7711 17.3547 12.8035 17.2056 12.8311 17.1062C12.8825 16.9216 12.9174 16.7323 12.9518 16.5791C12.8666 16.3705 12.7538 16.1724 12.7054 15.9599C12.5855 15.4345 12.498 14.9018 12.3893 14.3738C12.3729 14.2935 12.3265 14.2088 12.2695 14.1493C11.8237 13.6861 11.7188 13.0561 11.4518 12.5055C11.3687 12.3338 11.2832 12.1594 11.171 12.0065C10.7137 11.3823 10.2441 10.7673 9.78298 10.1464C9.65992 9.9805 9.5859 9.74931 9.42613 9.64675C9.18734 9.4935 8.90039 9.38391 8.6199 9.33292C7.94702 9.21103 7.36578 9.48061 6.81185 9.83165C6.53929 10.0048 6.24441 10.1437 5.97508 10.3216C5.85378 10.4019 5.78299 10.5554 5.66639 10.6468C5.52982 10.7541 5.36857 10.83 5.2179 10.9194C5.16386 10.8936 5.09631 10.8801 5.05901 10.8394C5.00173 10.7766 4.96531 10.6952 4.92008 10.6216H5.15945C5.05284 10.1938 5.74481 9.23066 6.1234 9.32237V8.99214H6.77513C6.77396 8.96723 6.76897 8.8717 6.76485 8.79347C7.00511 8.68505 7.23948 8.57927 7.48238 8.46938C7.5652 8.66395 7.73908 8.72578 8.00635 8.60974C8.2372 8.50982 8.47657 8.49341 8.58877 8.79405C9.07221 8.52652 9.07074 8.52799 9.51571 8.96166C9.60088 9.04488 9.69986 9.11638 9.79972 9.18231C9.9034 9.25088 10.0159 9.30596 10.1425 9.37717C10.1052 9.45365 10.0711 9.52368 10.0176 9.63386C10.1354 9.59811 10.2115 9.57525 10.2632 9.55943C10.4579 9.80469 10.6447 10.0374 10.8295 10.2715C11.2054 10.7485 11.6266 11.1983 11.9411 11.7126C12.1814 12.1058 12.2754 12.5858 12.4551 13.0189C12.575 13.3078 12.7447 13.5765 12.8619 13.8663C12.8983 13.9565 12.8358 14.0866 12.807 14.2756C12.8554 14.2947 13.0049 14.353 13.1192 14.3975C13.1318 14.5936 13.1212 14.777 13.1603 14.9496C13.224 15.2306 13.3448 15.5002 13.3959 15.7827C13.4461 16.0584 13.439 16.3447 13.4616 16.6948C13.7477 16.8607 13.7947 17.1508 13.6531 17.5672C13.5915 17.7483 13.7927 18.0073 13.8338 18.2382C13.857 18.3683 13.7971 18.513 13.7733 18.6593C13.8103 18.8099 13.8649 18.9792 13.8908 19.1524C13.9204 19.3493 13.9627 19.5577 13.9257 19.7467C13.9022 19.8668 13.7586 20.0309 13.6449 20.0535C13.3747 20.1065 13.2816 19.8762 13.2487 19.6637C13.1982 19.337 13.1647 19.005 13.1577 18.6748C13.15 18.3167 12.9362 18.3129 12.6769 18.3451C12.4346 18.3753 12.1911 18.3947 11.9496 18.4278C11.3669 18.5078 10.7822 18.5778 10.2059 18.6903C10.1081 18.7097 10.0476 18.9201 9.97036 19.0422C9.99973 19.0651 10.0294 19.088 10.0591 19.1108C9.95773 19.1665 9.8567 19.2225 9.81499 19.2453C10.0144 19.6262 10.1783 19.9996 10.398 20.3371C10.546 20.5645 10.4876 21.2218 10.3093 21.3691C10.3428 21.598 10.4015 21.7779 10.3889 21.9526C10.351 22.4759 10.3155 23.003 10.218 23.517C10.166 23.7922 9.98857 24.0436 9.85171 24.3401H9.47517C9.57327 24.4096 9.6655 24.4427 9.70427 24.5074C9.97036 24.9528 10.4497 24.9701 10.8712 25.1149C11.3951 25.2951 11.9085 25.5058 12.4293 25.6965C12.5653 25.7463 12.7106 25.7709 12.8525 25.8073C12.9532 25.2212 13.0748 24.6528 13.1412 24.0779C13.1917 23.6418 13.1583 23.1964 13.19 22.7572C13.2 22.6165 13.2983 22.4826 13.3392 22.3862C13.2816 22.1111 13.1888 21.8468 13.1803 21.5801C13.1685 21.2229 13.2267 20.864 13.2472 20.5053C13.2652 20.1924 13.5016 20.1856 13.7004 20.224C13.9219 20.2668 14.0197 20.4347 13.9422 20.6782C13.8488 20.97 13.6934 21.2449 13.8831 21.5801C13.9521 21.702 13.847 21.9271 13.8094 22.1026C13.7621 22.3244 13.6241 22.5269 13.8006 22.7727C13.8614 22.8574 13.7674 23.0526 13.7374 23.2369C13.926 23.2231 14.121 23.2093 14.3492 23.1929C14.3075 23.3394 14.2755 23.4531 14.2435 23.5665C14.2729 23.5566 14.3025 23.5466 14.3322 23.5366C14.3968 23.7239 14.4614 23.9108 14.5448 24.1529C14.4036 24.1259 14.3113 24.108 14.2576 24.0981C14.2417 24.5898 14.2391 25.0627 14.2068 25.5336C14.1806 25.9177 14.1953 26.3303 14.0549 26.6746C13.8678 27.1338 13.8678 27.6105 13.7601 28.0735C13.6943 28.3563 13.5515 28.5283 13.1897 28.3847C13.61 28.6267 13.3321 28.9514 13.3139 29.2163C13.2975 29.4566 13.1362 29.6907 13.0214 29.919C12.9568 30.0473 12.844 30.1511 12.7761 30.2779C12.6031 30.6014 12.2721 30.8687 12.4255 31.3111C12.5042 31.5385 12.0472 32.1093 11.8151 32.1597C11.6101 32.204 11.4204 32.3174 11.2401 32.4835C11.3323 32.4791 11.4242 32.4753 11.5217 32.4709C11.4856 32.795 11.273 32.9017 10.9816 32.9506C10.8882 32.9664 10.818 33.0951 10.7275 33.1584C10.5396 33.289 10.3451 33.4106 10.156 33.4461C10.0552 33.4256 9.9501 33.3767 9.85435 33.3904C9.58473 33.4297 9.56417 33.481 9.53333 34.0951C9.726 33.9633 9.85552 33.8748 10.0168 33.7649C10.0285 33.8575 10.0379 33.9313 10.0529 34.0483C11.5725 33.5009 12.5159 32.3306 13.3806 31.0518C13.5063 31.1078 13.6255 31.1605 13.7427 31.2124C13.5136 31.5822 13.2901 31.9435 13.039 32.3487C13.1489 32.3352 13.2202 32.3476 13.2616 32.318C13.7134 31.9948 14.1466 31.6431 14.6139 31.3442C14.9413 31.1347 15.3126 30.9938 15.6656 30.8244C15.8186 30.7512 15.9699 30.6694 16.13 30.6175C16.3485 30.5475 16.5726 30.4913 16.7982 30.4485C17.1853 30.3752 17.5756 30.3178 17.9642 30.2513C18.1818 30.2141 18.4 30.1786 18.6156 30.1308C19.6694 29.8964 20.7227 29.6602 21.7747 29.42C22.057 29.3555 22.3316 29.2441 22.6159 29.211C22.8805 29.18 23.156 29.2518 23.4224 29.2298C23.8838 29.1914 24.3411 29.0824 24.8022 29.066C25.162 29.0531 25.4584 28.8679 25.7953 28.8017C25.9424 28.7727 26.0687 28.6358 26.202 28.545C26.3615 28.4363 26.5192 28.3246 26.6767 28.2136C26.8385 28.0996 27.0776 28.0193 27.1478 27.8637C27.4377 27.2208 27.6844 26.5577 27.9299 25.8958C28.0327 25.618 28.1335 25.3288 28.164 25.0375C28.2574 24.1529 28.3402 23.2653 28.3808 22.3771C28.423 21.4591 28.3385 20.5428 28.0991 19.6535C27.9613 19.1416 27.7684 18.6628 27.2133 18.3938C26.9807 18.2813 26.8579 17.9431 26.6849 17.7078C26.6358 17.6413 26.5985 17.5431 26.5325 17.5156C26.0637 17.3213 25.5941 17.127 25.1142 16.963C24.8398 16.8689 24.5696 16.8484 24.3191 16.6219C24.0918 16.4165 23.702 16.396 23.3916 16.2746C23.1663 16.1864 22.961 16.0446 22.7334 15.9667C22.3748 15.8436 22.0017 15.763 21.6405 15.6476C21.4214 15.5778 21.2049 15.4908 21.0008 15.3853C20.7423 15.2514 20.5097 15.0633 20.2445 14.9472C19.5349 14.6364 18.8183 14.3398 18.0952 14.0617C17.7163 13.9161 17.3077 13.8469 16.9318 13.6957C16.6117 13.5671 16.3153 13.3758 16.0163 13.1991C15.9505 13.1601 15.8774 13.0657 15.8768 12.9966C15.8744 12.722 15.7558 12.5814 15.4791 12.5597C15.4368 12.5562 15.4019 12.4782 15.3605 12.4381C15.0618 12.1506 14.7581 11.8679 14.4644 11.5751C14.3105 11.4216 14.1795 11.2455 14.0264 11.0911C13.9836 11.0477 13.8999 11.0439 13.8626 11.0316C13.9865 11.404 14.1028 11.7536 14.2191 12.1029C14.1859 12.1125 14.1527 12.1222 14.1193 12.1316C14.0147 12.0273 13.8943 11.9344 13.8088 11.8163C13.6496 11.5968 13.526 11.351 13.3597 11.1377C13.2123 10.9489 13.0287 10.7878 12.8569 10.619C12.8137 10.5768 12.7374 10.5639 12.7036 10.5176C12.4692 10.1953 12.2636 9.84864 12.0046 9.548C11.8263 9.34113 11.5405 9.22568 11.3658 9.01704C10.8297 8.37767 10.1296 7.96597 9.42172 7.56658C9.22464 7.45552 8.97441 7.43853 8.70566 7.36674C8.61256 7.16602 8.06538 6.93335 7.73996 7.00163C7.27943 7.09774 6.81126 7.16631 6.35983 7.29436C6.11048 7.36469 5.86053 7.49801 5.66052 7.66298C5.27987 7.97681 4.92155 8.32111 4.58115 8.67889C4.44751 8.81955 4.42049 9.06158 4.28685 9.20282C3.85393 9.66082 3.58431 10.1924 3.33319 10.7705C3.01863 11.494 2.70172 12.2104 2.45559 12.9614C2.32901 13.3479 2.10902 13.7028 1.95248 14.0808C1.91606 14.169 2.00564 14.3099 1.96775 14.3958C1.93074 14.4805 1.80503 14.5262 1.68873 14.61C2.15073 14.9045 1.85232 15.2391 1.76891 15.5576C1.70547 15.7999 1.5545 16.035 1.55245 16.2741C1.5498 16.5726 1.50105 16.8249 1.32218 17.0629C1.21792 17.2009 1.46815 17.4239 1.22496 17.5443C1.40853 17.9249 1.02818 17.7225 1.00997 17.8376C0.980014 17.9601 0.944769 18.082 0.922154 18.206C0.898363 18.3352 0.839328 18.5637 0.876629 18.5819C1.1486 18.7126 0.96151 18.8749 0.947119 19.0346C0.910405 19.4416 0.89337 19.851 0.882503 20.2598C0.881916 20.2879 0.999398 20.3187 1.0928 20.3632C0.983832 20.5405 0.883091 20.7043 0.812014 20.82C0.893664 21.1113 0.985594 21.3565 1.02759 21.61C1.0834 21.9458 1.1348 22.2892 1.12364 22.6274C1.11306 22.9368 0.997636 23.241 0.965622 23.5516C0.946825 23.7365 0.982657 23.9328 1.02407 24.1171C1.1862 24.8365 1.33922 25.5588 1.54393 26.2661C1.59973 26.4595 1.82383 26.6043 1.97127 26.7722C1.62147 27.0424 2.01533 27.3647 1.96041 27.6662C1.87729 28.1242 2.3851 28.14 2.47263 28.4603C2.59129 28.3006 2.6838 28.1758 2.77456 28.0536C2.65238 27.7456 2.51845 27.4145 2.39157 27.0808C2.3713 27.0277 2.35544 26.9383 2.38364 26.9079C2.60098 26.6723 2.502 26.5671 2.23855 26.5088C2.19508 26.4994 2.13927 26.4622 2.12312 26.4235C1.88463 25.8547 1.66523 25.3001 1.89021 24.6472C1.96892 24.4192 1.79975 24.1066 1.73866 23.8068C1.89579 23.7464 2.01973 23.6322 1.84234 23.418C1.58505 23.1077 1.5965 22.8179 1.80827 22.4586C1.86143 22.3684 1.80915 22.1568 1.73102 22.0621C1.59856 21.9019 1.5592 21.8055 1.69989 21.617C2.03295 21.1719 1.96364 20.8865 1.46522 20.6615C1.57477 20.6219 1.66699 20.6161 1.71252 20.5671C1.81296 20.4584 1.97215 20.3201 1.96158 20.2079C1.92575 19.8331 1.81561 19.466 1.75687 19.0924C1.74042 18.986 1.81091 18.8691 1.82736 18.7548C1.85643 18.5532 1.87464 18.3501 1.90225 18.1037C2.22562 18.0246 2.17364 17.7846 2.08288 17.4889C2.03618 17.3366 2.0447 17.0872 2.13986 16.9861C2.44414 16.6629 2.54841 16.369 2.36131 15.9251C2.20506 15.5553 2.39392 15.3047 2.79159 15.1146C2.8662 15.0791 2.92347 15.0073 3.01041 14.9341C2.91994 14.864 2.84769 14.8081 2.7775 14.7533C3.27533 14.2885 3.16901 13.6345 3.49091 12.9951C3.83866 12.8123 3.84688 12.7853 3.53262 12.4721C3.7012 12.3012 3.8695 12.131 4.03926 11.9593C3.98874 11.8948 3.93352 11.8251 3.88829 11.7677C4.11592 11.4108 4.33326 11.0697 4.49127 10.8221C4.80848 10.8602 5.01789 10.8851 5.22701 10.9103C5.11217 11.0322 4.99704 11.1541 4.86575 11.2932ZM51.6731 2.50196C51.7034 2.79557 51.7237 3.05519 51.7586 3.31305C51.7827 3.49414 51.7956 3.68724 51.872 3.84694C51.9213 3.94979 52.067 4.02715 52.1862 4.0711C52.3246 4.1218 52.4829 4.11506 52.6294 4.14758C53.0773 4.24721 53.149 3.88621 53.2803 3.63303C53.3719 3.6805 53.458 3.72475 53.5438 3.76929C53.5661 3.68285 53.6072 3.5967 53.6081 3.51026C53.6139 2.7525 53.4971 2.01349 53.0847 1.36796C52.9663 1.18277 52.6794 1.10219 52.4656 0.981466C52.4277 0.960076 52.3343 0.960076 52.3231 0.980587C52.1069 1.38642 51.5477 1.16871 51.3204 1.59975H51.9633L51.9874 1.70318C51.7759 1.77204 51.5645 1.8412 51.2819 1.9335C51.4329 2.07122 51.5416 2.17026 51.5994 2.22301C51.5424 2.39501 51.4878 2.55969 51.4332 2.72408C51.2367 2.62503 51.1171 2.51017 51.328 2.30447C51.3483 2.28483 51.3148 2.2107 51.3066 2.16206C51.2514 2.18931 51.1521 2.21187 51.1489 2.2441C51.1362 2.36629 51.1597 2.49142 51.1612 2.61595C51.1668 3.08098 51.1788 3.5463 51.1694 4.01103C51.1627 4.35709 51.3037 4.29409 51.5095 4.15227C51.4581 4.07638 51.4135 4.00986 51.3665 3.94012C51.4649 3.86218 51.5492 3.79537 51.637 3.72592C51.264 3.43466 51.264 3.43466 51.4769 3.16449C51.2787 2.90985 51.2743 2.87147 51.4247 2.71822C51.5051 2.65258 51.5818 2.58372 51.6731 2.50196ZM39.6485 22.8135C39.6297 22.9468 39.6224 23.083 39.6256 23.2175C39.6379 23.793 39.9416 24.0916 40.5161 24.0802C40.7757 24.0749 41.0348 24.0401 41.2944 24.0181C41.6519 23.9876 41.5743 23.6776 41.6219 23.4728C41.7658 22.8542 41.5861 22.5908 41.0054 22.3991C40.8339 22.3426 40.702 22.1659 40.5067 22.0074C40.3654 22.0167 40.1137 22.0331 39.7915 22.0545C39.7213 22.1817 39.736 22.5152 39.3777 22.4949C39.0256 22.1345 38.6734 21.7735 38.3198 21.4143C38.3045 21.399 38.2728 21.3958 38.2484 21.3949C37.8551 21.38 37.6645 21.1435 37.4598 20.823C36.9725 20.0602 36.6054 19.2855 36.7326 18.3519C36.742 18.2836 36.7385 18.2045 36.7135 18.1415C36.4724 17.5326 36.1922 16.9363 35.9922 16.3145C35.8641 15.916 35.7895 15.4706 36.1872 15.0993H35.9137C35.9578 14.8582 35.9789 14.6337 36.0421 14.4224C36.1534 14.0515 36.0841 13.8751 35.7592 13.7086C34.9557 13.2969 34.8288 12.2523 35.5398 11.7178C35.7519 11.5584 36.0856 11.559 36.2938 11.397C36.5214 11.2197 36.7015 11.1974 36.9176 11.3478C37.2848 10.888 37.6072 10.4156 38.0002 10.0116C38.3809 9.62038 38.7213 9.13308 39.3055 9.01734C40.0726 8.86555 40.8483 8.75567 41.6207 8.63025C41.6677 8.62263 41.7373 8.61824 41.7647 8.6449C42.0199 8.89456 42.212 8.70087 42.4208 8.56755C42.5459 8.48784 42.691 8.4395 42.8182 8.36243C43.3703 8.02809 43.9199 7.68877 44.4697 7.34974C44.7205 7.19502 44.9713 7.04031 45.2186 6.88002C45.5723 6.65029 45.9153 6.40357 46.276 6.18585C46.7148 5.92096 47.1512 5.64317 47.6179 5.43659C48.0887 5.22796 48.5907 5.08203 49.0888 4.94402C49.3302 4.87721 49.4524 4.65012 49.7473 4.61115C50.0075 4.57686 50.3797 4.25776 50.4275 4.01133C50.5015 3.63157 50.7638 3.23745 50.5338 2.80612C50.4736 2.69302 50.5388 2.492 50.5888 2.34608C50.7139 1.98068 50.8566 1.62026 51.0058 1.26365C51.1336 0.957146 51.1788 0.587936 51.6135 0.508527C51.7568 0.482448 51.9137 0.389853 52.0106 0.280262C52.1724 0.0971223 52.4042 0.0616665 52.5798 0.230448C52.6606 0.308392 52.8112 0.437908 52.8527 0.413587C53.1308 0.248615 53.2879 0.497099 53.4783 0.581783C53.7229 0.690787 53.893 1.1523 53.8081 1.38818C54.1984 1.42628 54.2504 1.6226 54.0795 1.94434C54.0313 2.03518 54.0571 2.16528 54.0492 2.27722C54.1476 2.24147 54.246 2.20572 54.3271 2.17612C54.3946 2.60687 54.4631 3.04406 54.5321 3.48389C54.4816 3.48887 54.3879 3.49854 54.2942 3.50762C54.5121 3.58469 54.7206 3.64446 54.5291 3.85309C55.1538 3.85309 55.8082 3.85749 56.462 3.84401C56.5093 3.84313 56.5536 3.71274 56.5995 3.6427C56.8923 3.84958 57.7126 3.7813 57.9646 3.52989C57.9846 3.5756 58.0031 3.65882 58.0248 3.6597C58.5221 3.67962 59.0202 3.69662 59.518 3.69603C59.5809 3.69603 59.6387 3.55509 59.7078 3.54601C60.069 3.49766 60.4077 3.82467 60.7877 3.61809C60.8056 3.60842 60.8744 3.69135 60.9833 3.78716C60.9275 3.57619 60.8955 3.45429 60.8632 3.33239C61.0497 3.79566 61.3851 3.52286 61.6674 3.50498C61.8036 3.49648 61.9411 3.50352 62.078 3.50352C62.0791 3.53692 62.0803 3.57062 62.0815 3.60402C61.9828 3.63684 61.8841 3.66966 61.7851 3.70277C62.2054 3.83405 62.663 3.36521 63.0029 3.93631C63.0563 3.72827 63.0898 3.59846 63.123 3.46865C63.1858 3.71948 63.8346 3.30221 63.5192 3.90056H64.5272C64.3436 3.98642 64.2673 4.02217 64.1912 4.05762C64.3069 4.15725 64.4693 4.22523 64.5169 4.17806C64.756 3.941 64.9836 4.07989 65.2394 4.12004C65.4253 4.14934 65.6342 4.03242 65.8785 3.96913C65.7361 3.8487 65.6682 3.79127 65.603 3.73647C65.8092 3.69252 66.0371 3.7101 66.1602 3.6052C66.4774 3.33503 66.8915 3.15248 67.0495 2.71616C67.0748 2.64584 67.1858 2.61097 67.2413 2.54621C67.3861 2.37626 67.5151 2.19253 67.6649 2.02756C67.7318 1.95342 67.8334 1.91035 67.9195 1.85292C68.0179 1.8116 68.0725 1.65776 68.1636 1.63227C68.4611 1.54935 68.7718 1.5133 69.0247 1.46847C69.0808 1.37646 69.1122 1.25544 69.1704 1.24079C69.7787 1.08666 70.3907 1.14263 70.9999 1.24343C71.0915 1.25867 71.1782 1.3161 71.2622 1.36269C71.4446 1.46437 71.8625 1.0682 71.8358 1.6519C71.829 1.79461 72.0411 1.94698 72.1556 2.09935C72.1706 2.0929 72.2246 2.07005 72.3195 2.0299C72.311 2.63969 72.3474 3.20786 71.6058 3.42645C71.7412 3.49238 71.8328 3.53663 71.9025 3.57033C71.8443 3.75317 71.8275 3.9328 71.7362 4.0585C71.6449 4.18392 71.4792 4.25541 71.3168 4.37145C71.4542 4.71839 71.1056 4.85992 70.9027 5.08028C70.5975 5.41169 70.6369 5.55263 71.187 5.68947C70.9414 5.82162 70.7793 5.90924 70.6007 6.00564C70.6577 6.05223 70.732 6.11318 70.8034 6.17179C70.7106 6.25706 70.6248 6.33588 70.6063 6.35317C70.7106 6.52312 70.7743 6.62978 70.841 6.73468C70.9691 6.9357 71.068 7.16748 71.2346 7.32982C71.5961 7.6832 71.9941 7.99908 72.3744 8.33342C72.7239 8.64109 73.1087 8.91976 73.4083 9.2708C73.9757 9.93538 74.4838 10.6501 75.0337 11.3302C75.8023 12.2807 76.1674 13.415 76.5313 14.5499C76.5556 14.6267 76.4819 14.7345 76.4796 14.743C76.6018 15.0627 76.7219 15.3097 76.7909 15.5702C77.0958 16.7212 77.2112 17.9182 77.6391 19.0393C77.6479 19.0619 77.665 19.0953 77.6559 19.1079C77.3795 19.4985 77.7701 19.8091 77.8001 20.1669C77.8479 20.7438 78.127 21.305 78.1525 21.8796C78.1822 22.5392 78.06 23.2087 77.9707 23.8698C77.8418 24.8236 77.6794 25.773 77.5413 26.7256C77.521 26.8663 77.5751 27.0163 77.5654 27.1602C77.5296 27.6905 77.3768 28.2382 77.4647 28.7454C77.5722 29.3666 77.7067 29.9682 77.6209 30.6029C77.6012 30.7479 77.6438 30.912 77.6946 31.0541C77.7719 31.2692 77.8814 31.4729 77.988 31.7058C77.8723 31.7765 77.7751 31.8356 77.6779 31.8951L77.7369 31.9822H78.0347C78.0383 32.0071 78.0418 32.0317 78.0453 32.0566C77.9149 32.0888 77.7845 32.1213 77.6541 32.1536C77.6479 32.1943 77.6418 32.2353 77.6353 32.2761C77.7786 32.2969 77.922 32.3177 78.0579 32.337C77.9531 32.4097 77.8394 32.4885 77.6767 32.6013C77.8838 32.6587 78.0245 32.6974 78.2462 32.759C78.1508 32.9784 78.0641 33.178 77.9825 33.3661C78.6439 33.5396 78.1023 33.9223 78.0788 34.2252C78.2057 34.2077 78.3026 34.1945 78.3992 34.181C78.411 34.2138 78.4227 34.2463 78.4345 34.2789C78.3132 34.3392 78.1922 34.3999 77.9572 34.5168C78.1786 34.5833 78.3102 34.6229 78.3963 34.6487C78.3657 34.92 78.3349 35.1934 78.2923 35.5702C78.4171 35.4302 78.4683 35.373 78.5434 35.2886C78.6342 35.4961 78.7302 35.6848 78.7993 35.8829C78.8609 36.0607 78.8932 36.2489 78.9564 36.505C78.8589 36.4874 78.7238 36.4631 78.5778 36.437C78.3381 36.9085 79.0269 36.5516 79.0075 36.8393C78.9153 36.8991 78.8242 36.958 78.6727 37.0559C78.8921 37.1021 79.0292 37.1309 79.1846 37.1637C79.1223 37.2449 79.0786 37.3017 79.0342 37.3594C79.337 37.5499 79.3453 37.7896 79.0771 38.1154C79.1614 38.3709 79.3453 38.5989 79.4845 38.7756C79.8701 39.2652 79.972 39.7868 79.9832 40.3614C79.9847 40.4482 79.9253 40.5364 79.8907 40.6337C79.965 40.7564 80.1121 40.9079 80.1527 41.0838C80.2481 41.4966 80.2954 41.9209 80.3565 42.3414C80.4111 42.7171 80.4581 43.0939 80.5086 43.4704C80.5233 43.5668 80.6464 43.6638 80.6584 43.7728C80.7148 44.28 80.7454 44.7905 80.7741 45.3001C80.7815 45.4337 80.7471 45.5693 80.7339 45.7041C80.6769 46.2881 80.6194 46.8721 80.5644 47.4561C80.5271 47.8538 80.4895 48.2514 80.4637 48.6496C80.4602 48.7068 80.5107 48.8058 80.5577 48.8216C80.9354 48.9488 81.3146 49.1413 81.7005 49.1601C82.4309 49.1952 82.8791 49.7274 83.3931 50.0819C83.8824 50.4189 83.9852 51.0811 83.9024 51.6947C83.8833 51.8377 83.7782 52.039 83.661 52.0862C83.2727 52.2424 82.8633 52.4246 82.4577 52.4364C82.092 52.4466 81.6717 52.7185 81.3222 52.3443C81.2931 52.3127 81.1648 52.3766 81.0816 52.3912C80.9868 52.4082 80.8825 52.4513 80.7973 52.4281C80.2957 52.2919 79.7999 52.1334 79.2977 51.9992C79.2175 51.9778 79.0683 52.0126 79.0298 52.0721C78.833 52.378 78.6618 52.7001 78.4818 53.0165C78.3787 53.1982 78.307 53.4127 78.1619 53.5498C78.072 53.6342 77.8703 53.6005 77.719 53.6202C77.7275 53.5249 77.7357 53.4294 77.7528 53.2372C77.5833 53.396 77.4661 53.5059 77.4194 53.5498C77.4981 53.8054 77.6218 53.9938 77.5813 54.1347C77.5384 54.2833 77.3384 54.387 77.2071 54.5104C77.1865 54.4899 77.166 54.4691 77.1457 54.4482C77.166 54.3398 77.1865 54.2317 77.2174 54.0702C77.0699 54.1766 76.9759 54.2443 76.8819 54.312C76.9527 54.4187 77.01 54.5051 77.0388 54.5482C76.8593 54.6487 76.6857 54.7137 76.5533 54.8265C76.2851 55.056 76.0563 55.3329 75.7788 55.5488C75.5603 55.7194 75.3291 55.8463 75.241 56.1446C75.2137 56.2374 75.0269 56.2837 74.8874 56.3667C75.0777 56.7655 74.5672 56.7461 74.455 56.9885C74.2615 57.4072 73.8994 56.9688 73.6996 57.1725C73.6612 57.3298 73.6186 57.5432 73.507 57.5889C73.1155 57.7489 72.7001 57.8511 72.311 57.9701C72.2851 58.1137 72.185 58.3091 72.2437 58.4222C72.3683 58.6622 71.8384 58.996 72.3418 59.1111C72.2957 59.2881 72.1826 59.5301 72.2311 59.5685C72.4763 59.7619 72.2602 59.9292 72.2517 60.1056C72.2461 60.2182 72.2746 60.3336 72.2975 60.4458C72.3092 60.5033 72.365 60.5572 72.3624 60.6108C72.3536 60.8013 71.8217 61.2461 71.6008 61.264C71.5717 61.2663 71.5447 61.2968 71.451 61.3554C71.5735 61.4178 71.6675 61.4659 71.6898 61.477C71.5403 61.6393 71.4325 61.7513 71.33 61.8679C71.1415 62.0824 70.9873 62.4264 70.7605 62.4824C70.4924 62.5492 70.4336 62.6843 70.3484 62.87C70.3291 62.9122 70.2835 62.9427 70.2501 62.9784C70.2468 62.9506 70.2436 62.9228 70.2404 62.8949C69.734 62.9298 69.2277 62.965 68.7216 63.0001C68.7395 62.9579 68.7574 62.9154 68.7757 62.8733C68.7219 62.7968 68.672 62.7177 68.6144 62.6441C68.4664 62.456 68.2482 62.2922 68.1797 62.0795C68.0446 61.6598 67.9756 61.2162 67.9148 60.7775C67.8951 60.636 68.0167 60.4795 68.0197 60.3289C68.0252 60.04 67.9923 59.7502 67.9721 59.403C67.75 59.4317 67.4904 59.4651 67.357 59.4824C67.1702 59.4434 67.0868 59.4068 67.0075 59.4141C66.8789 59.4258 66.7541 59.4833 66.6257 59.4912C66.1813 59.5196 65.7355 59.5249 65.2917 59.5577C64.8597 59.5893 64.4303 59.6676 63.9982 59.6831C63.1847 59.7121 62.3702 59.7057 61.5561 59.7241C61.1328 59.7338 60.7093 59.7877 60.2875 59.7745C60.1143 59.7693 59.9489 59.5961 59.7724 59.5791C59.5964 59.5621 59.412 59.6688 59.2287 59.6781C58.9612 59.6919 58.6892 59.6846 58.4228 59.6529C58.2469 59.6318 58.0463 59.594 57.9123 59.4912C57.6727 59.3077 57.5329 59.3751 57.4001 59.5952C56.712 59.3573 55.884 59.4792 55.3621 58.7856C55.3001 58.8785 55.2487 58.9555 55.2038 59.0232C55.0516 58.9787 54.918 58.9544 54.7973 58.9013C54.5585 58.7961 54.2528 58.732 54.11 58.5471C53.9129 58.2912 53.6445 58.2051 53.401 58.1729C53.0248 58.1228 52.6309 58.2004 52.2218 58.225C52.4021 58.5459 52.2573 58.7258 52.0041 58.8808C51.909 58.9388 51.7815 59.0455 51.7786 59.134C51.7677 59.4628 51.5765 59.5515 51.3254 59.5448C51.2757 59.7162 51.2781 59.9064 51.1841 59.9966C50.8234 60.3433 50.377 60.5675 49.915 60.7526C49.4982 60.9197 49.0776 60.8734 48.6418 60.7931C48.1302 60.6987 47.7671 60.3178 47.8218 59.8082C47.8376 59.66 47.9569 59.5196 47.9607 59.374C47.9739 58.8585 48.22 58.4729 48.5801 58.1362C48.6603 58.0615 48.7484 57.9827 48.7957 57.8872C49.0562 57.3606 49.2879 56.8194 49.564 56.3019C49.777 55.9034 49.7056 55.7138 49.2724 55.548C49.0641 55.4683 48.8909 55.2966 48.7026 55.165C48.5945 55.0894 48.4882 55.0114 48.4653 54.995C48.2512 54.6639 48.1128 54.2138 47.9099 54.1825C47.4035 54.1048 47.3557 53.629 47.037 53.3928H47.2916C47.2925 53.3723 47.2934 53.3515 47.2946 53.331C47.0919 53.2882 46.8892 53.2454 46.6728 53.1997C46.7718 53.0409 46.8326 52.9436 46.8428 52.9266C46.6193 52.8659 46.3938 52.8656 46.2672 52.754C46.1171 52.6215 46.0522 52.3927 45.9277 52.1641C45.9291 52.1612 45.9682 52.0941 46.0243 51.9977C45.8504 51.9324 45.7041 51.8778 45.5593 51.8233C45.5737 51.7454 45.5875 51.673 45.601 51.6004C45.5637 51.6185 45.5264 51.6367 45.4894 51.6549C45.4002 51.5476 45.3029 51.4453 45.2236 51.3311C45.1158 51.1752 45.0468 50.8977 44.9176 50.8693C44.4856 50.774 44.5343 50.4962 44.5901 50.2208C44.4007 50.1581 44.2362 50.1036 44.0497 50.0418C44.1275 49.9287 44.1804 49.8513 44.2333 49.7742C44.1995 49.7862 44.1657 49.7983 44.1319 49.8103C43.9628 49.526 43.7912 49.2427 43.6247 48.957C43.5469 48.8231 43.4908 48.6751 43.4027 48.5491C43.2355 48.3097 43.0373 48.0905 42.8851 47.8426C42.8411 47.7708 42.9104 47.6302 42.9201 47.5675C42.8179 47.3448 42.7227 47.1382 42.6003 46.8721C42.7847 46.8484 43.0361 46.7687 43.0672 46.8203C43.2194 47.0749 43.3134 47.3641 43.4414 47.6738C43.4937 47.7272 43.6103 47.8019 43.6632 47.908C43.882 48.3487 44.0808 48.7993 44.2899 49.245C44.304 49.2752 44.3422 49.3057 44.3745 49.3142C44.7211 49.4041 44.6245 49.6087 44.472 49.8328C44.628 49.8443 44.7475 49.8531 44.8668 49.8618C44.8468 49.8932 44.8271 49.9246 44.8072 49.9562C44.8944 50.0397 44.9922 50.1147 45.0659 50.2085C45.1432 50.3072 45.1975 50.4239 45.2618 50.5323C45.2324 50.5519 45.2028 50.5713 45.1731 50.5906C45.3843 50.7532 45.6663 50.7866 45.7071 51.1857C45.7312 51.4225 46.1588 51.6024 46.367 51.8409C46.5556 52.0569 46.693 52.3174 46.8848 52.606C47.3286 52.6432 47.8526 53.2114 47.8737 53.7327C48.1134 53.876 48.4051 53.9589 48.5402 54.1508C48.8189 54.547 49.1158 54.891 49.5582 55.107C49.6859 55.1694 49.8284 55.2784 49.8818 55.4017C50.0354 55.7543 50.3159 55.9488 50.6337 56.1211C50.7515 56.185 50.9486 56.2876 50.9436 56.3611C50.9233 56.6576 51.1495 56.6008 51.2969 56.6615C51.4866 56.7397 51.7375 56.7602 51.684 57.1027H52.9317C52.9804 57.1942 52.9992 57.2938 53.0562 57.3254C53.3508 57.4898 53.6501 57.6469 53.9564 57.7875C54.7247 58.1403 55.4901 58.5005 56.272 58.8213C56.6479 58.9757 57.1217 58.7885 57.4641 59.1267C57.4938 59.1557 57.6019 59.0974 57.6741 59.0933C58.157 59.0645 58.6428 58.9948 59.1218 59.0256C59.7186 59.0634 60.3028 59.2377 60.914 59.1029C61.1281 59.0557 61.4148 59.047 61.5834 59.1539C61.7901 59.2852 61.8853 59.2688 62.0154 59.0502C62.033 59.1806 62.0439 59.2609 62.046 59.2749C62.8349 59.1618 63.6088 59.0508 64.3768 58.9409C64.4103 59.0935 64.4267 59.17 64.4435 59.2462C64.4667 59.2436 64.4899 59.2409 64.5131 59.2383C64.5222 59.1694 64.5313 59.1009 64.5522 58.945C64.6297 59.0686 64.6667 59.1272 64.6597 59.1158C64.8045 59.0522 64.914 58.9626 65.0224 58.9643C65.285 58.9678 65.5519 59.0616 65.8077 59.0326C66.2833 58.979 66.7611 58.8966 67.2214 58.7668C67.8966 58.5767 68.625 58.7155 69.2802 58.3885C69.6007 58.2285 69.966 58.1588 70.3144 58.0469C70.3587 58.1011 70.4081 58.162 70.5047 58.2807V57.9405C70.6128 57.9212 70.7041 57.9194 70.7834 57.888C71.6243 57.556 72.4714 57.2372 73.2996 56.8754C73.623 56.7338 73.9405 56.5325 74.1939 56.2893C74.6198 55.8803 74.9905 55.4143 75.3899 54.9774C75.431 54.9326 75.5153 54.9303 75.5714 54.8954C75.6898 54.821 75.8402 54.7621 75.9098 54.6537C76.0519 54.4318 76.1321 54.171 76.2719 53.9472C76.3448 53.83 76.4963 53.672 76.5997 53.6805C76.9213 53.7081 77.0082 53.4561 77.1536 53.2864C77.3859 53.0151 77.5877 52.7182 77.8065 52.4352C77.904 52.3089 78.0377 52.2037 78.1108 52.0657C78.5922 51.1555 79.0756 50.246 79.5274 49.3212C79.6854 48.9971 79.7491 48.6282 79.866 48.2833C79.9952 47.9021 79.812 47.5165 79.9197 47.1206C80.0178 46.7608 79.9729 46.3629 80.0046 45.9828C80.0105 45.911 80.0795 45.8445 80.0877 45.8298C80.0501 45.7185 79.9999 45.6344 79.9958 45.548C79.972 45.046 79.9732 44.5423 79.9362 44.0412C79.9195 43.8168 79.7573 43.5841 79.7935 43.3784C79.9015 42.7648 79.7409 42.1981 79.5887 41.6253C79.3435 40.7022 79.1074 39.7763 78.8363 38.8609C78.5822 38.0035 78.2867 37.1584 78.0112 36.3072C77.981 36.2134 77.954 36.1179 77.9384 36.0209C77.8711 35.596 77.7199 35.1597 77.7695 34.7483C77.8218 34.3134 77.5583 33.9911 77.5328 33.5744C77.4802 32.7282 77.161 31.8983 76.9536 31.0615C76.9328 30.9774 76.9154 30.8904 76.9113 30.8042C76.8632 29.8094 76.8115 28.8149 76.7753 27.8198C76.7615 27.4318 76.7539 27.0386 76.8003 26.6547C76.8414 26.3186 77.0168 25.9951 77.035 25.6611C77.0617 25.1705 76.9974 24.6756 76.9824 24.1822C76.9803 24.1142 77.0473 24.0471 77.0676 23.9756C77.1601 23.6474 77.3202 23.3201 77.1016 22.9734C77.1768 22.921 77.2523 22.8683 77.3504 22.7997C77.2541 22.727 77.1815 22.6722 77.0996 22.6107C77.2041 22.5128 77.297 22.4261 77.4247 22.3065C77.2714 22.2983 77.1704 22.293 77.0599 22.2872C77.0494 21.603 77.2285 20.9489 77.0297 20.2864C76.8781 19.7818 76.7985 19.2541 76.7128 18.7325C76.6931 18.6127 76.7792 18.4755 76.8238 18.322C76.7627 18.2382 76.6041 18.1131 76.5759 17.963C76.5078 17.602 76.5177 17.2296 76.4102 16.8698C76.358 16.6954 76.3729 16.5009 76.3544 16.2796C76.3201 16.2609 76.1944 16.2339 76.18 16.1782C76.0255 15.5825 75.8922 14.9812 75.7453 14.3835C75.6751 14.0987 75.5832 13.8194 75.5112 13.5349C75.3837 13.0318 75.1984 12.5486 74.8251 12.1823C74.3763 11.7416 74.3117 11.0565 73.7801 10.6559C73.6347 10.546 73.6033 10.253 73.3619 10.1302C73.1281 10.0116 72.8978 9.85509 72.7201 9.66462C72.365 9.28428 72.0508 8.86643 71.7107 8.47173C71.649 8.40023 71.5424 8.36829 71.4584 8.31467C71.3955 8.27452 71.2786 8.21914 71.2842 8.18779C71.3564 7.77462 70.9335 7.87923 70.7734 7.71075C70.6016 7.52966 70.3117 7.46724 70.1061 7.31018C69.8671 7.12704 69.7067 7.12646 69.5672 7.38783C69.685 7.37142 69.7948 7.35648 69.9044 7.34124C69.9205 7.37406 69.9367 7.40629 69.9525 7.43911C69.6171 7.6665 69.2817 7.89388 68.9463 8.12098L69.0147 8.19834C68.6508 8.37708 68.5706 8.0697 68.4902 7.86869C68.4558 7.78254 68.5965 7.61053 68.6825 7.49625C68.8987 7.2088 69.1633 6.95211 69.3443 6.64531C69.5443 6.3057 69.5105 5.81547 70.0072 5.67629C70.0166 5.67365 70.0216 5.65665 70.0286 5.6464C70.6366 4.77905 71.3186 3.96034 71.6883 2.94296C71.8493 2.49933 71.777 2.01642 71.4164 1.81893C70.698 1.4254 69.6127 1.4758 68.8 2.05042C68.7196 2.10726 68.6282 2.15004 68.5395 2.19546C68.3747 2.27956 68.1835 2.33201 68.047 2.44834C67.5759 2.85008 67.12 3.26969 66.6665 3.69164C66.5579 3.79244 66.4818 3.9284 66.3899 4.04737C66.2125 4.27651 66.0316 4.50273 65.8577 4.73422C65.6612 4.9953 65.4785 5.26693 65.2756 5.52274C65.075 5.77562 64.8708 6.02938 64.6385 6.25178C64.5627 6.32416 64.3936 6.29925 64.2673 6.31889C64.272 6.20373 64.2388 6.06776 64.2893 5.97839C64.3771 5.82426 64.5166 5.69943 64.6341 5.56201C64.8059 5.3607 65.0165 5.17727 64.9789 4.88014C64.7225 4.80923 64.4896 4.74389 64.2561 4.6803C63.7806 4.55108 63.3071 4.4113 62.8275 4.29908C62.6125 4.24897 62.384 4.25629 62.162 4.23549C60.9525 4.12062 59.7433 4.04737 58.5365 4.26362C58.3461 4.29761 58.13 4.49892 57.9858 4.18333C57.9781 4.16692 57.8935 4.1845 57.8451 4.18773C57.7079 4.1971 57.571 4.20707 57.4274 4.21732C57.4257 4.24633 57.4213 4.31373 57.418 4.36383C57.2459 4.319 56.981 4.2267 56.9701 4.25073C56.8062 4.60646 56.6582 4.34362 56.4908 4.26743C56.3951 4.22406 56.2696 4.22904 56.1595 4.23695C55.7269 4.26772 55.2939 4.30201 54.8625 4.34655C54.3814 4.39577 53.8962 4.42889 53.4227 4.52031C52.517 4.69524 51.6458 5.01581 50.7192 5.12833C50.4824 5.15675 50.056 5.1843 49.9635 5.59043C49.9608 5.60244 49.9235 5.60625 49.8886 5.61915C49.9018 5.54765 49.9135 5.48465 49.9426 5.32554C49.4392 5.52684 48.9981 5.70295 48.5449 5.88404C48.5816 5.82075 48.6159 5.76185 48.7046 5.60948C48.4409 5.66515 48.2535 5.70969 48.0641 5.74397C47.5947 5.82866 47.3653 6.30541 46.864 6.4021C46.2525 6.5199 45.7247 6.87211 45.2577 7.32776C44.8242 7.75089 44.2814 8.06003 43.8165 8.45415C43.4053 8.80255 43.0314 9.19491 42.6481 9.57496C42.301 9.91897 41.9632 10.2726 41.6093 10.6345C41.5432 11.0245 41.065 11.0667 40.8451 11.3436C40.9279 11.3982 41.0089 11.4512 41.0988 11.5101C40.92 11.6847 40.7105 11.8066 40.6286 11.9862C40.4509 12.3748 40.3516 12.7982 40.1939 13.1973C40.099 13.4376 40.1443 13.5431 40.4063 13.5598C40.7757 13.5838 41.1587 13.4739 41.5118 13.6729C41.5511 13.6949 41.6128 13.6934 41.6595 13.6831C42.1626 13.5733 42.6114 13.774 43.027 13.9885C43.3598 14.1605 43.7821 14.3981 43.892 14.7043C44.0444 15.1298 44.4682 15.1064 44.6019 15.4281C44.6086 15.5673 44.6389 15.7012 44.6879 15.8281C44.7878 16.0868 44.8973 16.3417 45.0321 16.6691C45.2401 16.7171 45.5632 16.7804 45.8777 16.8727C45.9538 16.895 46.0052 17.0107 46.0616 17.0881C46.3145 17.4338 46.5603 17.7849 46.8202 18.1254C46.8787 18.2022 46.9838 18.2441 47.0675 18.3021C47.0854 18.1802 47.1383 18.0515 47.1151 17.9378C47.0226 17.4834 46.9057 17.0336 46.8003 16.5817C46.7894 16.5351 46.7817 16.4806 46.795 16.4367C46.9729 15.8501 47.1439 15.2614 47.3383 14.6806C47.5322 14.1016 47.6555 13.4777 48.223 13.1038C48.2632 13.0772 48.3149 13.0364 48.3219 12.9954C48.4021 12.5333 48.764 12.2535 48.9892 11.8934C49.2454 11.4846 49.6245 11.2581 49.9179 10.9243C50.0804 10.7394 50.3459 10.6351 50.5785 10.5229C50.8716 10.3814 51.2467 10.3398 51.4658 10.1297C51.9886 9.628 52.6092 9.3968 53.2923 9.28868C53.8745 9.19667 54.461 9.1237 55.0484 9.07711C55.3641 9.05221 55.7313 9.20253 55.9915 9.08649C56.2441 8.97397 56.41 8.99272 56.6285 9.07213C56.8271 9.14421 57.0406 9.17821 57.2356 9.2582C57.6451 9.4264 58.0325 9.66257 58.4542 9.78125C59.0058 9.93655 59.5245 10.0731 59.9571 10.5123C60.4558 11.0187 61.0459 11.4365 61.6019 11.8863C62.112 12.2986 62.342 12.8946 62.5834 13.461C62.8633 14.1186 63.1277 14.8072 63.2352 15.5075C63.3559 16.2952 63.2695 17.1121 63.3195 17.9135C63.3597 18.557 63.1465 19.1258 62.9441 19.713C62.7456 20.2899 62.2275 20.7128 62.1755 21.3554C62.1725 21.3932 62.0953 21.428 62.0483 21.4582C61.9802 21.5019 61.8835 21.523 61.8421 21.5833C61.6735 21.8292 61.4362 22.0695 61.3813 22.3432C61.2779 22.8592 60.8106 22.9535 60.4981 23.1997C59.985 23.6046 59.3077 23.784 58.8801 24.3249C58.8393 24.3767 58.7532 24.4324 58.6957 24.4254C58.2601 24.3703 57.9617 24.9112 57.4929 24.6964C57.4744 24.6879 57.433 24.6941 57.4221 24.7087C57.1064 25.1307 56.7029 24.9566 56.3116 24.8763C56.2417 24.862 56.1495 24.8344 56.0993 24.8649C55.5721 25.1861 54.9776 25.1585 54.399 25.1916C54.0654 25.211 53.7285 25.1743 53.3931 25.1606C53.3722 25.1597 53.352 25.1363 53.3208 25.1166C53.3352 25.0404 53.3502 24.9604 53.3734 24.8371C53.0207 24.7662 52.6835 24.6982 52.2685 24.6147C52.3989 24.7735 52.4673 24.857 52.5443 24.9508C52.0987 24.9971 51.9407 24.876 51.9701 24.5587C51.7971 24.5707 51.5824 24.6542 51.4514 24.5833C50.8922 24.2806 50.3415 23.9554 49.8219 23.59C49.599 23.4335 49.4636 23.1557 49.2794 22.9406C48.9628 22.5702 48.593 22.2356 48.331 21.8309C48.0673 21.4234 47.9157 20.9448 47.6966 20.5062C47.6347 20.3817 47.5093 20.2888 47.3912 20.1569C47.3031 20.5938 47.2355 20.9311 47.1668 21.2722C47.1877 21.2777 47.2499 21.295 47.2564 21.2968C47.1647 21.484 47.0963 21.6516 47.0038 21.8043C46.9374 21.9139 46.8581 22.0469 46.7509 22.0947C46.3197 22.2866 45.9103 22.4891 45.6354 22.9025C45.5726 22.9975 45.4049 23.04 45.2768 23.0713C45.1023 23.1138 44.9191 23.1188 44.7408 23.1457C44.371 23.2014 44.0021 23.2606 43.5806 23.3268C43.6417 23.4297 43.7216 23.5642 43.788 23.6761C43.7457 23.8809 43.5971 24.1974 43.6799 24.2789C43.887 24.4822 43.7043 24.5816 43.6608 24.7222C43.625 24.8391 43.5877 24.9552 43.5507 25.0718C43.5069 25.1726 43.3275 25.2277 43.2922 25.3311C43.2552 25.4398 43.3918 25.5978 43.3821 25.7287C43.378 25.7847 43.193 25.8237 43.0957 25.8805C43.0831 25.8879 43.1048 25.9547 43.111 25.9945H42.5812C42.5817 26.0229 42.582 26.0517 42.5826 26.0801H42.9744C42.8487 26.325 42.7571 26.514 42.6516 26.6954C42.6364 26.7218 42.5547 26.7189 42.5051 26.7145C42.4375 26.7083 42.36 26.6573 42.3065 26.6778C41.6859 26.9155 41.5467 26.914 41.147 26.4235C40.9614 26.1955 40.8903 25.8744 40.7713 25.594C40.7197 25.4721 40.6404 25.3463 40.6395 25.2218C40.6374 24.8813 40.4292 24.792 40.1496 24.7383C39.9783 24.7055 39.8109 24.6393 39.6491 24.5719C39.4693 24.4966 39.3801 24.496 39.301 24.7246C39.0749 25.38 39.1339 26.0596 39.0708 26.7288C39.0602 26.8408 39.0141 26.9492 38.9968 27.0128C39.0532 27.1259 39.138 27.2214 39.1433 27.3216C39.1563 27.5534 39.1145 27.7884 39.1245 28.0208C39.1483 28.5719 39.1918 29.1222 39.2232 29.6734C39.2567 30.2645 39.289 30.8558 39.3151 31.4471C39.3469 32.1518 39.3707 32.8565 39.3997 33.5613C39.405 33.6925 39.4024 33.827 39.4315 33.9533C39.5119 34.3026 39.603 34.6493 39.6993 34.9944C39.744 35.1541 39.8241 35.3039 39.865 35.4641C39.9454 35.7815 40.03 36.1003 40.0758 36.4235C40.1381 36.8636 40.1319 37.3149 40.2162 37.7497C40.3414 38.3926 40.5208 39.0253 40.6747 39.6629C40.6982 39.7607 40.6915 39.8686 40.7282 39.96C40.8888 40.3617 41.0918 40.7547 40.8689 41.1828C41.3673 41.5034 41.5599 42.0182 41.3964 42.1943C41.5532 42.7215 41.693 43.185 41.8219 43.6515C41.8257 43.6647 41.7185 43.7084 41.6357 43.7523C41.7967 43.8698 41.9426 43.9768 42.0886 44.0834C42.0619 44.0562 42.0355 44.0286 42.009 44.0014C41.9189 44.0653 41.8287 44.1294 41.7382 44.1933C42.0669 44.3958 42.2807 44.5153 42.2716 44.6144C42.2196 45.1805 42.6804 45.5154 42.8396 45.9805C42.9122 46.1929 43.0238 46.3919 43.1169 46.5955C42.9644 46.616 42.8346 46.6503 42.706 46.6462C42.6049 46.6427 42.4452 46.6213 42.4143 46.558C42.2328 46.1844 42.0798 45.7967 41.9206 45.4123C41.8669 45.2819 41.8219 45.1477 41.7764 45.0141C41.7232 44.8567 41.6739 44.6982 41.6055 44.4858C41.609 44.4547 41.6381 44.2478 41.6319 44.2466C41.327 44.1945 41.3053 43.8892 41.1426 43.7157C40.8289 43.3822 40.8333 42.9477 40.7669 42.5369C40.7261 42.2831 40.6988 42.0273 40.6647 41.7656C40.6392 41.753 40.4923 41.7269 40.4697 41.6592C40.4312 41.5456 40.4718 41.4055 40.4738 41.3724C40.3323 40.9094 40.1875 40.5261 40.1046 40.13C40.0529 39.8826 40.0949 39.6163 40.0949 39.3696C39.9023 39.345 39.7816 39.3297 39.6118 39.3083C39.6118 38.7712 39.6391 38.249 39.6012 37.7316C39.5795 37.4371 39.4617 37.1467 39.3657 36.8616C39.3254 36.7417 39.1836 36.6468 39.1671 36.5293C39.0705 35.8401 38.9941 35.1477 38.9178 34.4559C38.8834 34.1444 38.894 33.8256 38.8297 33.5214C38.7903 33.3362 38.6893 33.1106 38.5424 33.0115C38.0634 32.6878 37.4701 32.6107 36.9875 32.2336C36.5108 31.8614 35.8538 31.976 35.2629 31.9432C34.7824 31.9162 34.2986 31.8752 33.827 31.7841C33.5335 31.7272 33.0304 31.9294 32.9262 32.2321C32.7778 32.6623 32.4133 32.8946 31.9196 32.8354C31.0135 32.727 30.1221 32.4481 29.1923 32.6473C29.0072 32.6869 28.7872 32.6001 28.6166 32.6623C27.9652 32.8999 27.4265 32.5697 27.3763 31.8699C27.3416 31.3876 27.2244 31.2185 26.7768 31.3035C26.2499 31.4031 25.8455 31.1353 25.4178 30.9771C24.96 30.8074 24.564 30.4792 24.125 30.2513C23.1672 29.7543 22.1918 29.7279 21.1861 30.1405C20.8848 30.2642 20.5323 30.2624 20.2049 30.3248C19.8662 30.3893 19.3966 30.3509 19.2227 30.5572C18.9725 30.8546 18.7125 30.7075 18.4696 30.7843C18.324 30.83 18.1624 30.8244 18.0135 30.8631C17.7703 30.9264 17.533 31.0122 17.2904 31.0785C16.9077 31.1831 16.5047 31.2379 16.1432 31.3905C15.7135 31.5725 15.3396 31.8951 14.9032 32.0493C14.2846 32.2676 13.7483 32.5729 13.3016 33.0499C13.2035 33.1548 13.0651 33.2398 12.9292 33.2893C12.3608 33.4965 11.8836 33.8089 11.6418 34.28C11.3528 34.3445 11.1226 34.3618 10.9229 34.4491C10.7014 34.5464 10.5234 34.753 10.2984 34.8312C9.8335 34.9927 9.35358 35.1163 8.87337 35.2259C8.44838 35.3226 7.99519 35.3253 7.58958 35.4683C7.1358 35.6282 6.76397 35.1738 6.33164 35.3792C6.30726 35.3906 6.26232 35.3592 6.22708 35.3466C5.79973 35.1946 5.37445 35.0358 4.94417 34.8922C4.70685 34.8131 4.46366 34.7729 4.48569 34.4268C4.49127 34.3395 4.37291 34.2396 4.30154 34.1535C4.21137 34.0447 4.10916 33.946 4.01606 33.8393C3.94527 33.7582 3.88506 33.6676 3.81252 33.5882C3.54906 33.2987 3.28238 33.0124 3.01687 32.7244C3.00894 32.7153 2.99866 32.7024 2.99954 32.6919C3.03008 32.3355 2.84064 32.0405 2.64973 31.7914C2.25088 31.271 1.96334 30.716 1.8394 30.0731C1.82148 29.9796 1.76215 29.8935 1.71957 29.805C1.55773 29.4712 1.35214 29.1516 1.24141 28.8017C1.00674 28.0624 0.786461 27.3146 0.627566 26.5562C0.500391 25.95 0.47014 25.3232 0.402881 24.7049C0.380266 24.4972 0.393189 24.2847 0.360881 24.0787C0.318294 23.808 0.150881 23.5191 0.20786 23.2779C0.32358 22.7891 0.14207 22.3625 0.0850908 21.9071C0.0213565 21.3979 -0.0435526 20.8654 0.0386852 20.367C0.159986 19.6301 0.414629 18.9204 0.359412 18.15C0.336797 17.8394 0.440182 17.515 0.514196 17.2035C0.697175 16.4332 0.890433 15.6652 1.09192 14.8995C1.15917 14.6443 1.26109 14.3975 1.35361 14.1496C1.43849 13.9217 1.59474 13.701 1.60943 13.4704C1.63997 12.9805 1.83117 12.567 2.06731 12.1559C2.24618 11.8447 2.50347 11.5297 2.53871 11.1968C2.586 10.7444 2.76399 10.3843 2.98603 10.0183C3.10674 9.81963 3.20983 9.61042 3.32731 9.40969C3.44832 9.20253 3.5661 8.99214 3.70943 8.80079C3.75143 8.74482 3.87537 8.74981 3.97464 8.72343C3.93206 8.66541 3.89006 8.60828 3.89094 8.60974C4.10593 8.32785 4.29684 8.05651 4.51095 7.80481C4.61404 7.68379 4.76089 7.59969 4.82668 7.54695C5.05284 7.37875 5.20087 7.26125 5.35653 7.15488C5.47255 7.07547 5.69576 6.93629 5.70545 6.94888C5.95217 7.27414 5.94218 6.81761 6.07964 6.83021C6.12369 6.83431 6.17039 6.78216 6.21768 6.77776C6.66147 6.73703 7.10555 6.67696 7.55022 6.67374C7.79106 6.67198 8.03073 6.79827 8.27509 6.81644C9.05517 6.87416 9.80794 6.99782 10.4465 7.50006C10.7108 7.70782 10.9922 7.89447 11.2509 8.10838C11.3552 8.19482 11.4022 8.34954 11.5059 8.43656C11.7631 8.65223 12.0519 8.83127 12.3024 9.05367C12.6877 9.39592 13.0463 9.76806 13.4264 10.1162C13.6972 10.3641 13.9815 10.5976 14.2655 10.8306C14.5616 11.0735 14.8585 11.3167 15.1675 11.5426C15.3058 11.6437 15.5282 11.6639 15.6201 11.7888C15.9905 12.291 16.5597 12.5157 17.0519 12.8363C17.5019 13.1293 18.0229 13.3128 18.5099 13.5507C18.9252 13.7538 19.332 13.9741 19.7508 14.1704C19.9567 14.2671 20.1799 14.3278 20.3961 14.4022C20.6011 14.4728 20.8028 14.5733 21.0137 14.5994C21.217 14.6249 21.3571 14.6378 21.3124 14.8957C21.3039 14.9446 21.3806 15.0085 21.4364 15.0932C21.4869 14.9821 21.5192 14.9115 21.5515 14.8409C21.5853 15.1875 22.269 14.7333 22.0972 15.1899C22.2822 15.2924 22.4165 15.3924 22.5671 15.4442C22.766 15.5125 22.9851 15.5219 23.1819 15.5931C23.6412 15.7601 24.0921 15.9503 24.5476 16.1281C24.9006 16.2659 25.2481 16.427 25.6123 16.5269C26.0323 16.6427 26.4646 16.7253 26.8972 16.7804C27.3378 16.8367 27.7845 16.8598 28.2289 16.8616C28.433 16.8624 28.6369 16.7751 28.8422 16.7347C28.8909 16.7253 28.9482 16.7564 28.9964 16.7455C29.0933 16.7241 29.1905 16.6532 29.2804 16.6635C29.4302 16.6808 29.5829 16.7285 29.7192 16.7951C29.95 16.9076 30.1697 17.0438 30.3932 17.1716C30.4658 17.2132 30.5316 17.2689 30.6073 17.3017C31.2127 17.5651 31.8303 17.8042 32.421 18.097C32.6292 18.2001 32.7737 18.4316 32.9914 18.649C33.2804 18.7091 33.4049 19.0607 33.6202 19.3022C33.7576 19.456 33.8431 19.6843 34.009 19.7786C34.3389 19.9662 34.6966 20.1601 35.0635 20.2164C36.1463 20.3822 36.3411 21.2692 36.0688 22.3306C36.0603 22.364 36.0753 22.4038 36.0791 22.441C36.1625 22.4217 36.2427 22.4032 36.364 22.3754C36.2113 22.8782 36.4862 23.4136 35.9907 23.8607C36.1508 23.8065 36.2286 23.7798 36.3537 23.7374C36.3223 23.8464 36.3014 23.902 36.2906 23.9595C36.2171 24.3539 35.8432 24.6621 35.9998 25.1348C36.0618 25.3217 35.5322 25.7847 35.3648 25.7434C35.1915 25.7006 35.0226 25.6411 34.8905 25.6007C34.7624 25.7384 34.6244 25.8375 34.5571 25.9717C34.4781 26.1287 34.4311 26.3174 34.4346 26.4909C34.4355 26.5442 34.6458 26.5996 34.7648 26.6427C35.0555 26.7488 35.3622 26.8214 35.6359 26.9597C35.808 27.0468 35.9117 27.3081 36.082 27.3512C36.4166 27.4365 36.4577 27.7357 36.6307 27.9355C36.7208 28.0401 36.7761 28.1802 36.8789 28.2675C36.9984 28.3692 37.1544 28.4281 37.2912 28.5107C37.6698 28.7387 38.0466 28.9693 38.4243 29.199C38.4472 29.1744 38.4699 29.1498 38.4931 29.1249C38.4375 29.005 38.3823 28.8849 38.3259 28.763C38.4995 28.7416 38.6725 28.7205 38.9483 28.6865C38.5095 28.5462 38.4217 28.341 38.563 27.988C38.6 28.0943 38.6349 28.1942 38.6693 28.2942L38.7971 28.2581C38.7113 27.915 38.6252 27.5722 38.5395 27.2293C38.4975 27.1543 38.5815 27.0008 38.5456 26.9641C38.3133 26.7277 38.412 26.5803 38.6396 26.4754C38.5727 26.2037 38.5122 25.9579 38.4546 25.7252C38.9504 25.4993 38.4725 24.9059 38.8147 24.719C38.7709 24.5086 38.6737 24.3316 38.7186 24.2044C38.9001 23.6881 39.1101 23.1847 39.1157 22.623C39.116 22.5793 39.2867 22.5371 39.378 22.4944C39.6221 22.4712 39.6788 22.5993 39.6485 22.8135Z" fill="#231F20"/>
+</g>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M64.1516 45.2852C64.2183 45.2142 64.302 45.1257 64.3818 45.0411C64.4068 44.8902 63.9096 44.7557 64.3742 44.6159C64.3281 44.4732 64.2884 44.3281 64.2344 44.1887C64.1724 44.0284 64.0185 43.9035 64.2391 43.706C64.3175 43.636 64.2127 43.3439 64.168 43.1584C64.0564 42.6939 63.9942 42.6309 63.6699 42.5369C63.6699 42.2081 63.6843 41.8981 63.6584 41.5916C63.6532 41.5274 63.5001 41.4756 63.4179 41.4202C63.7662 41.0146 63.084 41.0205 63.1177 40.7242C63.1389 41.1242 62.8886 41.4647 63.1747 41.9224C63.4975 42.4387 63.568 43.1165 63.7242 43.7301C63.8121 44.0744 63.8682 44.4289 63.9093 44.7823C63.9903 45.4744 63.4978 45.8823 62.8278 45.7097C62.5685 45.6432 62.3717 45.5325 62.1808 45.3271C61.9268 45.0534 61.5893 44.8579 61.2912 44.6244C61.2368 44.5816 61.1995 44.5174 61.1229 44.4257C61.0304 44.4055 60.8606 44.3683 60.6911 44.3311C60.695 44.3065 60.6988 44.2815 60.7026 44.2569C60.818 44.2839 60.9334 44.3108 61.0489 44.3378C61.0803 44.3114 61.1117 44.2851 61.1431 44.2587C60.3196 43.2885 59.9927 42.1416 59.9187 40.85C59.6737 41.1521 59.6687 41.4342 59.7856 41.9535C59.8843 42.3915 59.9407 42.839 60.0297 43.2794C60.0558 43.4078 60.1093 43.5405 60.1842 43.6477C60.5878 44.225 60.5839 45.0334 61.253 45.4659C61.554 45.6605 61.7855 45.9638 62.0889 46.1531C62.4026 46.3491 62.7553 46.5053 63.1116 46.5999C63.2587 46.6389 63.4722 46.4918 63.6344 46.3942C63.7633 46.3169 63.8602 46.1868 64.0021 46.0502C63.9674 46.0233 63.882 45.9565 63.8027 45.8941C63.8024 45.6423 64.4268 45.7367 64.1516 45.2852Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M68.8272 4.70703C68.6087 4.91684 68.4557 5.1577 68.2381 5.25704C67.3543 5.65965 66.8074 6.447 66.1069 7.05591C65.9651 7.17927 65.926 7.41984 65.8335 7.6191C66.0168 7.69528 66.1495 7.75066 66.2482 7.79169C66.7825 7.22439 67.295 6.67585 67.8137 6.13318C67.8889 6.05465 67.9875 5.9934 68.0853 5.9433C68.5641 5.69862 68.8155 5.3007 68.8272 4.70703Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16.8889 18.2885C16.8131 18.1511 16.7421 18.0213 16.6707 17.8918C16.7638 18.3369 16.7191 18.8271 17.0319 19.1969C17.0663 19.1872 17.1007 19.1782 17.135 19.1685C17.081 18.8435 17.0269 18.5183 16.9653 18.1482C16.9397 18.1956 16.9183 18.2346 16.8889 18.2885ZM16.955 23.1398C17.375 23.1425 17.565 22.9538 17.4928 22.516C17.4188 22.5069 17.3283 22.4958 17.18 22.4776C17.3168 22.3964 17.4132 22.3393 17.5515 22.257H17.3418C17.3089 21.8936 17.7342 21.5086 17.345 21.2047C17.345 20.7496 17.4173 20.3042 17.3151 19.9031C17.2631 19.6994 17.1791 19.3094 16.7479 19.2552C17.0566 20.5908 16.9949 21.8664 16.955 23.1398ZM13.9871 30.6872C13.9677 30.442 14.2059 30.1809 14.3102 29.9195C14.4185 29.6473 14.5037 29.366 14.6015 29.0891C14.6708 28.8922 14.7446 28.6967 14.8153 28.5004C14.9478 28.1344 15.0897 27.7714 15.2042 27.3998C15.2315 27.3113 15.1716 27.1935 15.1449 27.091C15.1299 27.0338 15.0744 26.9359 15.0823 26.9313C15.4221 26.7258 15.0468 26.4264 15.2409 26.2069C15.1969 26.1958 15.1531 26.1843 15.109 26.1729C15.0594 26.3461 15.0042 26.5178 14.9604 26.6927C14.7868 27.3843 14.6197 28.0779 14.4415 28.7685C14.4091 28.8948 14.3269 29.0076 14.284 29.1322C14.1986 29.3801 14.1237 29.6312 14.0473 29.882C14.03 29.9391 14.0429 30.037 14.0106 30.0528C13.637 30.2371 13.7251 30.631 13.5456 31.0172C13.7918 30.9398 14.0191 31.0863 13.9871 30.6872ZM15.6157 17.5967C15.5132 17.0171 15.4048 16.4387 15.2973 15.86C15.2556 15.6352 15.2306 15.4043 15.161 15.1881C15.065 14.8895 14.9237 14.6055 14.8227 14.3084C14.7819 14.1871 14.8168 14.0409 14.778 13.9187C14.7481 13.8258 14.6702 13.7273 14.5863 13.6802C14.5337 13.6506 14.43 13.7112 14.3495 13.7317C14.3812 13.8237 14.4262 13.9137 14.4415 14.0083C14.462 14.1326 14.4344 14.2686 14.4711 14.3861C14.645 14.9478 14.8703 15.496 15.0057 16.0662C15.1038 16.4812 15.0747 16.9248 15.134 17.3512C15.1584 17.5258 15.2668 17.6887 15.3367 17.8569C15.3035 18.0776 15.27 18.2982 15.2365 18.5189C15.2682 18.5288 15.3005 18.5388 15.3326 18.5487C15.4166 18.406 15.5009 18.2633 15.5531 18.1751C15.4662 18.048 15.3983 17.9486 15.3302 17.8493C15.5572 17.9152 15.6562 17.8253 15.6157 17.5967ZM16.8792 23.689C16.8522 23.7168 16.8249 23.7446 16.7976 23.7725C16.9664 23.9383 17.0766 24.079 16.8169 24.2363C16.7658 24.2674 16.8487 24.5191 16.8777 24.7248C16.9709 24.6137 17.0208 24.554 17.071 24.4942C17.0966 24.5097 17.1221 24.5255 17.1477 24.5411C17.098 24.6117 17.0634 24.7046 16.9961 24.7494C16.6651 24.9706 16.6472 25.0852 16.9471 25.3917C17.2936 24.8921 17.3142 24.3515 17.2223 23.7898C17.4452 23.6945 17.4983 23.5284 17.3359 23.3611C17.2701 23.2931 17.101 23.3247 16.9253 23.3054C17.0689 23.5354 17.1512 23.6673 17.2334 23.7991C17.1154 23.7625 16.9973 23.7259 16.8792 23.689ZM5.227 10.9105C5.01789 10.8853 4.80847 10.8601 4.49127 10.8223C4.33326 11.0696 4.11591 11.411 3.88829 11.7679C3.93352 11.825 3.98874 11.8948 4.03926 11.9592C3.86949 12.1309 3.7012 12.3012 3.53261 12.472C3.84688 12.7853 3.83865 12.8125 3.49091 12.9951C3.169 13.6344 3.27533 14.2888 2.77749 14.7535C2.84769 14.808 2.91994 14.864 3.0104 14.934C2.92347 15.0076 2.86619 15.0791 2.79159 15.1145C2.39391 15.3047 2.20506 15.5552 2.36131 15.925C2.5484 16.3689 2.44414 16.6631 2.13986 16.986C2.0447 17.0871 2.03618 17.3365 2.08288 17.4889C2.17363 17.7845 2.22562 18.0248 1.90225 18.1036C1.87464 18.3501 1.85643 18.5531 1.82735 18.7547C1.81091 18.869 1.74042 18.9862 1.75686 19.0923C1.81561 19.4662 1.92575 19.8331 1.96158 20.2081C1.97215 20.3204 1.81296 20.4584 1.71252 20.5671C1.66699 20.616 1.57477 20.6222 1.46521 20.6614C1.96363 20.8865 2.03295 21.1722 1.69989 21.617C1.5592 21.8054 1.59856 21.9021 1.73102 22.0621C1.80914 22.157 1.86142 22.3683 1.80826 22.4586C1.5965 22.8178 1.58534 23.1079 1.84233 23.4182C2.01973 23.6324 1.89579 23.7464 1.73866 23.807C1.79975 24.1065 1.96892 24.4195 1.89021 24.6474C1.66523 25.3 1.88463 25.8547 2.12312 26.4237C2.13927 26.4624 2.19507 26.4993 2.23854 26.509C2.502 26.567 2.60127 26.6722 2.38363 26.9081C2.35544 26.9383 2.3713 27.028 2.39156 27.0807C2.51845 27.4145 2.65238 27.7456 2.77456 28.0535C2.6838 28.1757 2.59128 28.3006 2.47263 28.4605C2.3851 28.1403 1.87728 28.1242 1.9604 27.6662C2.01533 27.3646 1.62147 27.0423 1.97127 26.7721C1.82383 26.6042 1.59973 26.4595 1.54393 26.2664C1.33921 25.559 1.18619 24.8364 1.02407 24.1174C0.982655 23.9328 0.946823 23.7364 0.96562 23.5515C0.997634 23.2412 1.11306 22.9368 1.12363 22.6276C1.13479 22.2895 1.0834 21.9458 1.02759 21.61C0.985592 21.3565 0.893662 21.1115 0.812012 20.8203C0.883089 20.7045 0.98383 20.5407 1.09279 20.3631C0.999396 20.3189 0.881914 20.2878 0.882501 20.26C0.893368 19.8512 0.910403 19.4419 0.947117 19.0346C0.961508 18.8749 1.1486 18.7125 0.876627 18.5819C0.839326 18.5637 0.898361 18.3354 0.922152 18.2059C0.944767 18.082 0.980012 17.9601 1.00997 17.8376C1.02818 17.7224 1.40853 17.9249 1.22496 17.5443C1.46815 17.4241 1.21791 17.2011 1.32218 17.0628C1.50105 16.8249 1.5498 16.5729 1.55245 16.274C1.5545 16.0349 1.70547 15.8002 1.76891 15.5579C1.85232 15.239 2.15073 14.9044 1.68872 14.6102C1.80503 14.5261 1.93074 14.4804 1.96775 14.396C2.00563 14.3099 1.91605 14.1689 1.95277 14.081C2.10902 13.703 2.329 13.3479 2.45559 12.9614C2.70172 12.2106 3.01863 11.4942 3.33319 10.7707C3.58431 10.1926 3.85393 9.66105 4.28685 9.20277C4.42049 9.06153 4.44751 8.81978 4.58114 8.67884C4.92155 8.32135 5.27987 7.97705 5.66081 7.66293C5.86053 7.49825 6.11047 7.36492 6.35983 7.2943C6.81126 7.16625 7.27942 7.09798 7.73996 7.00157C8.06538 6.93359 8.61256 7.16596 8.70566 7.36697C8.9744 7.43847 9.22464 7.45576 9.42172 7.56682C10.1295 7.96591 10.8297 8.37761 11.3658 9.01699C11.5405 9.22562 11.8263 9.34107 12.0046 9.54795C12.2636 9.84859 12.4692 10.1952 12.7036 10.5176C12.7374 10.5639 12.8137 10.5768 12.8569 10.6189C13.0287 10.7877 13.2123 10.9492 13.3597 11.1379C13.526 11.3509 13.6496 11.5968 13.8088 11.8162C13.8943 11.9343 14.0147 12.0275 14.1193 12.1318C14.1527 12.1222 14.1859 12.1125 14.2191 12.1031C14.1028 11.7535 13.9865 11.4042 13.8626 11.0315C13.8999 11.0441 13.9836 11.0476 14.0264 11.091C14.1795 11.2457 14.3105 11.4215 14.4644 11.5751C14.7581 11.8678 15.0618 12.1506 15.3605 12.4383C15.4022 12.4782 15.4368 12.5564 15.4791 12.5596C15.7558 12.5813 15.8744 12.722 15.8768 12.9965C15.8774 13.066 15.9505 13.1603 16.0163 13.199C16.3153 13.376 16.6116 13.5671 16.9318 13.696C17.3077 13.8472 17.7163 13.9163 18.0952 14.062C18.8183 14.3398 19.5349 14.6366 20.2445 14.9472C20.5097 15.0632 20.7423 15.2516 21.0008 15.3856C21.2049 15.491 21.4214 15.5778 21.6405 15.6478C22.0017 15.763 22.3748 15.8438 22.7334 15.9666C22.961 16.0446 23.1663 16.1867 23.3916 16.2746C23.702 16.3959 24.0918 16.4167 24.3191 16.6221C24.5696 16.8483 24.8398 16.8688 25.1142 16.9629C25.5941 17.1273 26.0637 17.3216 26.5325 17.5158C26.5985 17.5434 26.6358 17.6415 26.6849 17.7081C26.8579 17.9431 26.9807 18.2815 27.2133 18.394C27.7684 18.6627 27.9613 19.1418 28.0991 19.6537C28.3385 20.5428 28.423 21.459 28.3808 22.3771C28.3402 23.2655 28.2574 24.1528 28.164 25.0374C28.1335 25.329 28.0327 25.6182 27.9299 25.8957C27.6844 26.5577 27.4377 27.2208 27.1478 27.864C27.0776 28.0193 26.8385 28.0995 26.6767 28.2138C26.5192 28.3246 26.3615 28.4362 26.202 28.5449C26.0687 28.6361 25.9424 28.7726 25.7953 28.8016C25.4584 28.8678 25.162 29.0533 24.8022 29.0659C24.3411 29.0823 23.8838 29.1913 23.4224 29.2297C23.156 29.2517 22.8805 29.1799 22.6162 29.211C22.3316 29.2444 22.057 29.3557 21.7747 29.4199C20.7227 29.6602 19.6694 29.8964 18.6156 30.1308C18.4003 30.1788 18.1818 30.2143 17.9642 30.2515C17.5756 30.318 17.1853 30.3752 16.7982 30.4487C16.5726 30.4915 16.3485 30.5475 16.1303 30.6178C15.9699 30.6694 15.8186 30.7511 15.6656 30.8244C15.3126 30.9937 14.9413 31.1347 14.6139 31.3442C14.1466 31.6431 13.7134 31.9947 13.2616 32.3179C13.2202 32.3475 13.1489 32.3352 13.039 32.3487C13.2901 31.9434 13.5136 31.5824 13.7427 31.2123C13.6255 31.1605 13.5063 31.1077 13.3806 31.052C12.5159 32.3305 11.5725 33.5011 10.0529 34.0482C10.0379 33.9313 10.0285 33.8577 10.0168 33.7649C9.85552 33.8747 9.726 33.9635 9.53333 34.0951C9.56417 33.4812 9.58472 33.4296 9.85435 33.3907C9.9501 33.3766 10.0552 33.4258 10.156 33.446C10.3451 33.4106 10.5396 33.289 10.7275 33.1583C10.818 33.0953 10.8882 32.9664 10.9816 32.9508C11.2729 32.9016 11.4856 32.7949 11.5217 32.4709C11.4245 32.4753 11.3323 32.4794 11.2401 32.4835C11.4204 32.3173 11.6101 32.2042 11.8151 32.1597C12.0472 32.1093 12.5042 31.5388 12.4255 31.3111C12.2721 30.8686 12.6031 30.6017 12.7761 30.2782C12.844 30.151 12.9568 30.0473 13.0214 29.9189C13.1362 29.691 13.2975 29.4565 13.3139 29.2163C13.3321 28.9517 13.61 28.6267 13.1897 28.3849C13.5515 28.5282 13.6943 28.3562 13.7601 28.0738C13.8678 27.6105 13.8678 27.134 14.0549 26.6749C14.1953 26.3303 14.1806 25.9177 14.2068 25.5335C14.2391 25.0626 14.2417 24.5897 14.2576 24.098C14.3113 24.1083 14.4036 24.1259 14.5451 24.1528C14.4614 23.9108 14.3968 23.7238 14.3322 23.5369C14.3025 23.5468 14.2729 23.5568 14.2435 23.5668C14.2755 23.4531 14.3075 23.3397 14.3492 23.1929C14.121 23.2093 13.926 23.2233 13.7374 23.2368C13.7674 23.0525 13.8614 22.8574 13.8006 22.773C13.6241 22.5268 13.7621 22.3243 13.8094 22.1025C13.847 21.927 13.9521 21.702 13.8831 21.5801C13.6934 21.2451 13.8488 20.97 13.9422 20.6781C14.0197 20.4346 13.9219 20.2667 13.7007 20.224C13.5016 20.1859 13.2652 20.1923 13.2472 20.5053C13.2267 20.8639 13.1685 21.2232 13.1803 21.5801C13.1888 21.847 13.2816 22.111 13.3392 22.3862C13.2983 22.4826 13.2 22.6168 13.19 22.7571C13.1582 23.1967 13.1917 23.6418 13.1412 24.0781C13.0748 24.653 12.9532 25.2215 12.8525 25.8072C12.7106 25.7709 12.5653 25.7463 12.4293 25.6965C11.9085 25.5057 11.3951 25.295 10.8712 25.1148C10.4497 24.9701 9.97036 24.9528 9.70426 24.5077C9.66549 24.4426 9.57327 24.4095 9.47517 24.3403H9.852C9.98857 24.0435 10.166 23.7921 10.218 23.517C10.3155 23.003 10.351 22.4761 10.3889 21.9525C10.4015 21.7779 10.3428 21.5979 10.3093 21.3694C10.4876 21.2217 10.546 20.5647 10.398 20.3374C10.1783 19.9998 10.0144 19.6262 9.81499 19.2453C9.8567 19.2224 9.95773 19.1667 10.0591 19.1108C10.0294 19.0882 9.99973 19.065 9.97036 19.0425C10.0479 18.9203 10.1081 18.7096 10.2059 18.6906C10.7822 18.5778 11.3669 18.5077 11.9496 18.428C12.1911 18.3946 12.4346 18.3753 12.6769 18.3451C12.9362 18.3129 13.1503 18.3167 13.1577 18.6747C13.1647 19.0053 13.1982 19.3373 13.2487 19.664C13.2816 19.8761 13.3747 20.1067 13.6449 20.0534C13.7586 20.0311 13.9022 19.8671 13.9257 19.7466C13.9627 19.5576 13.9204 19.3496 13.8908 19.1524C13.8649 18.9792 13.8103 18.8101 13.7733 18.6595C13.7971 18.513 13.857 18.3682 13.8338 18.2384C13.7927 18.0075 13.5915 17.7482 13.6531 17.5671C13.7947 17.1507 13.7477 16.8606 13.4616 16.6948C13.439 16.3446 13.4461 16.0586 13.3959 15.7826C13.3448 15.5001 13.224 15.2305 13.1603 14.9495C13.1212 14.7772 13.1318 14.5935 13.1192 14.3978C13.0049 14.3532 12.8554 14.2946 12.807 14.2759C12.8358 14.0866 12.8983 13.9565 12.8619 13.8665C12.7447 13.5764 12.5749 13.3077 12.4551 13.0188C12.2754 12.586 12.1814 12.1057 11.9411 11.7128C11.6266 11.1983 11.2054 10.7488 10.8295 10.2717C10.6447 10.0373 10.4579 9.80464 10.2632 9.55937C10.2115 9.5752 10.1354 9.59835 10.0176 9.6338C10.0711 9.52392 10.1052 9.45389 10.1425 9.37711C10.0159 9.3062 9.9034 9.25082 9.79972 9.18225C9.69986 9.11632 9.60117 9.04512 9.5157 8.96161C9.07074 8.52793 9.07221 8.52647 8.58877 8.79429C8.47657 8.49336 8.2372 8.50977 8.00635 8.60998C7.73907 8.72572 7.5652 8.6639 7.48238 8.46962C7.23948 8.57921 7.0051 8.68529 6.76485 8.7937C6.76896 8.87194 6.77396 8.96717 6.77513 8.99208H6.1234V9.32261C5.74481 9.2309 5.05284 10.1938 5.15945 10.6216H4.92008C4.96531 10.6951 5.00173 10.7769 5.059 10.8396C5.09631 10.8803 5.16386 10.8938 5.2179 10.9193L5.227 10.9105Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.227 10.9104C5.11187 11.0323 4.99703 11.1542 4.86574 11.2931C4.8769 11.2996 4.9283 11.3289 5.01465 11.3781C4.86956 11.4883 4.72946 11.5947 4.6299 11.6703C4.58672 11.8792 4.60757 12.1104 4.50184 12.2308C4.14381 12.6381 4.06128 13.1245 3.97464 13.6259C3.93557 13.8521 3.89974 14.1557 3.5144 14.0338C3.49032 14.0262 3.44362 14.0906 3.36578 14.1566C3.92383 14.2852 3.57813 14.7318 3.51058 14.8038C3.16694 15.1687 3.28825 15.6313 3.1599 16.0325C3.06738 16.3226 3.06297 16.642 2.95724 16.9253C2.89057 17.1044 2.71023 17.2409 2.57601 17.4021C2.6791 17.4396 2.7772 17.4748 2.97457 17.5463C2.78865 17.5817 2.70318 17.5978 2.57101 17.6227C2.61478 17.8407 2.70788 18.062 2.69143 18.275C2.66618 18.6044 2.53783 18.9255 2.50493 19.2555C2.46528 19.6537 2.47967 20.0572 2.47027 20.4583C2.46734 20.5679 2.48496 20.6837 2.455 20.7853C2.31373 21.2656 2.36454 21.7292 2.48584 22.2097C2.62447 22.7597 2.70348 23.3253 2.78983 23.887C2.79952 23.9515 2.68967 24.0344 2.6744 24.0552C2.73666 24.2641 2.81655 24.4604 2.85297 24.6647C3.00394 25.5168 3.14169 26.3712 3.28472 27.2245C3.3837 27.8173 3.47622 28.411 3.58753 29.0011C3.61015 29.121 3.70178 29.2291 3.76669 29.3393C4.13852 29.9719 4.50243 30.6095 4.89041 31.2322C5.02464 31.4476 5.23111 31.6172 5.38296 31.8238C5.46285 31.9325 5.49574 32.0761 5.59531 32.1485C5.86875 32.4582 6.17538 32.7451 6.4077 33.0826C6.74252 33.5705 7.06032 33.6734 7.60778 33.4902C7.93644 33.3804 8.30387 33.3827 8.65485 33.3417C9.03138 33.2974 9.38118 33.2415 9.55329 32.8177C9.61762 32.6598 9.78356 32.5077 9.94128 32.4283C10.586 32.1039 10.7907 31.4552 11.1085 30.8955C11.3763 30.4237 11.6242 29.9356 11.8266 29.433C12.0436 28.8936 12.1964 28.3283 12.3785 27.7748C12.4134 27.6684 12.4542 27.5638 12.4918 27.4584C12.7588 26.71 12.708 26.7557 12.0175 26.3853C11.3734 26.0395 10.7202 25.7916 10.015 25.639C9.86815 25.607 9.72981 25.5112 9.60205 25.4236C9.28397 25.205 9.01904 25.2205 8.85339 25.5487C8.37524 25.2188 7.91618 24.9017 7.40748 24.5507C7.54963 24.522 7.65037 24.5015 7.8172 24.4681C7.62922 24.3347 7.49353 24.2304 7.34962 24.1384C7.18837 24.0355 7.18103 23.7756 7.34227 23.628C6.91581 23.4252 6.6224 22.5373 6.85913 22.2352C6.80009 22.1148 6.74634 22.0052 6.6923 21.8956C6.81272 21.8487 6.93138 21.7963 7.05415 21.7576C7.13433 21.7321 7.22068 21.7271 7.38897 21.6987C7.10173 21.6155 6.88732 21.5979 6.73665 21.4912C6.66146 21.4379 6.70258 21.2214 6.68143 20.9591C6.94665 21.1123 7.09967 21.2008 7.2756 21.3025C7.28764 21.2046 7.30468 21.0652 7.31643 20.9682C7.11436 20.9066 6.93637 20.8527 6.75868 20.7985C6.83328 20.5934 6.90788 20.3886 6.98219 20.1835C7.01597 20.1896 7.04945 20.1955 7.08293 20.2016C7.02478 20.1357 6.96633 20.0701 6.90612 20.0024C7.29822 19.6068 7.54376 19.4166 7.70911 19.4072C7.55991 19.2631 7.18925 19.3721 7.29264 19.0155C7.38574 18.6937 7.60073 18.5528 7.92499 18.5414C8.0269 18.5376 8.12794 18.51 8.22574 18.4271C8.11296 18.4066 8.00018 18.3864 7.88739 18.3658C7.88504 18.3371 7.88269 18.3084 7.88034 18.2797C8.05392 18.253 8.23015 18.1927 8.4005 18.2056C9.19527 18.2665 9.95978 18.1848 10.7093 17.887C10.986 17.7769 11.3199 17.8191 11.6163 17.7452C11.9855 17.6526 12.3473 17.5234 12.7015 17.3825C12.7711 17.3549 12.8034 17.2058 12.8311 17.1064C12.8822 16.9215 12.9174 16.7322 12.9518 16.579C12.8666 16.3704 12.7538 16.1726 12.7053 15.9598C12.5852 15.4344 12.498 14.902 12.3893 14.3737C12.3729 14.2937 12.3265 14.2087 12.2695 14.1495C11.8233 13.686 11.7188 13.056 11.4518 12.5057C11.3687 12.334 11.2832 12.1596 11.171 12.0064C10.7137 11.3825 10.2441 10.7675 9.78268 10.1462C9.65962 9.98069 9.5859 9.74949 9.42583 9.64693C9.18734 9.49368 8.90038 9.38409 8.6199 9.33311C7.94701 9.21091 7.36577 9.4805 6.81184 9.83183C6.53899 10.0047 6.24411 10.1439 5.97507 10.3218C5.85348 10.4018 5.78299 10.5553 5.66638 10.6467C5.52981 10.754 5.36827 10.8299 5.2176 10.9192L5.227 10.9104Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M55.7599 17.1534C56.0195 16.9828 56.3044 16.8764 56.3737 16.5729C56.4759 16.1269 56.5611 15.6654 56.5549 15.2118C56.5517 14.9733 56.3411 14.7362 56.2201 14.5006C56.1305 14.326 56.0462 14.1463 55.9384 13.9828C55.5657 13.4167 54.9583 13.4123 54.3736 13.3098C53.8628 13.2204 53.3726 13.2271 52.8572 13.2515C52.3805 13.2743 52.1949 13.5723 51.9185 13.8117C51.8542 13.8677 51.8198 13.9565 51.7587 14.0168C51.0118 14.7573 51.2289 15.4849 51.6468 16.2547C51.8621 16.6517 52.1737 16.9978 52.4545 17.357C52.5097 17.4276 52.619 17.4733 52.7115 17.495C53.1259 17.5908 53.5436 17.6735 53.7914 17.7256C54.6206 17.7022 55.1962 17.5234 55.7599 17.1534ZM49.3541 21.6278C49.0096 20.7816 48.6789 19.9289 48.3047 19.0958C48.1032 18.6472 47.8979 18.2132 47.873 17.7104C47.8633 17.51 47.7244 17.3051 47.749 17.1158C47.8098 16.6482 47.9314 16.1887 48.028 15.7257C48.0457 15.6414 48.0536 15.5546 48.0759 15.472C48.2098 14.9777 48.246 14.423 48.5038 14.0036C48.9776 13.2339 49.5818 12.5441 50.1333 11.8221C50.1545 11.7943 50.1962 11.7828 50.2258 11.7606C50.5527 11.5132 50.8832 11.2703 51.203 11.0145C51.2897 10.9451 51.327 10.8082 51.4177 10.7508C52.3811 10.141 53.4657 9.96549 54.5762 9.94117C55.0655 9.93062 55.559 10.0124 56.0471 10.0789C56.362 10.122 56.6751 10.1976 56.9802 10.2875C57.3946 10.4097 57.7988 10.5653 58.212 10.6922C58.279 10.7127 58.3686 10.655 58.4487 10.6386C58.5045 10.6268 58.5827 10.5964 58.6162 10.621C58.9369 10.858 59.2852 11.0719 59.5581 11.3571C59.9995 11.8183 60.3957 12.3235 60.799 12.8195C60.9538 13.0097 61.0727 13.2286 61.2131 13.4308C61.5238 13.8779 61.8725 14.3031 62.1383 14.7752C62.3151 15.0893 62.4026 15.4623 62.4793 15.8201C62.541 16.1067 62.5504 16.41 62.541 16.7047C62.5245 17.2445 62.8585 17.8302 62.3477 18.3137C62.3221 18.338 62.3324 18.4116 62.3418 18.4591C62.4399 18.9505 62.3404 19.426 62.1342 19.858C61.9198 20.3072 61.6281 20.7206 61.3576 21.1414C61.1923 21.3984 61.0345 21.6729 60.8169 21.8804C60.3919 22.2857 59.9346 22.6593 59.475 23.0261C59.2746 23.1858 59.0467 23.3235 58.8109 23.4226C58.5377 23.5372 58.2449 23.6116 57.955 23.6793C57.3538 23.8199 56.8589 24.2533 56.1995 24.2527C55.539 24.2518 54.8688 24.4142 54.2217 24.3397C53.7374 24.2841 53.2731 24.0851 52.7638 24.1938C52.6845 24.2108 52.574 24.0957 52.4812 24.0368C52.4013 23.9861 52.3335 23.9072 52.2477 23.8771C51.9599 23.7766 51.633 23.7766 51.411 23.5172C51.2206 23.2945 50.8911 23.2963 50.6958 23.0466C50.4232 22.6979 50.0949 22.3923 49.7835 22.075C49.6528 21.9419 49.5051 21.8253 49.3347 21.6744C49.3262 21.692 49.3635 21.6504 49.3541 21.6278Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M31.5522 21.0768C31.5076 21.0762 31.4626 21.0759 31.4177 21.0754C31.4703 21.0053 31.5228 20.9356 31.5839 20.8544C31.5158 20.8409 31.4559 20.8292 31.3807 20.8143C31.6917 20.5007 31.1152 19.0517 30.5477 18.7013C30.8731 19.7699 31.1918 20.816 31.5105 21.8624C31.5654 21.8404 31.6203 21.8185 31.675 21.7965C31.6341 21.5565 31.5933 21.3165 31.5522 21.0768ZM34.1201 24.3414C34.0223 24.8205 33.9685 25.3098 33.8452 25.7816C33.7142 26.283 33.5274 26.7706 33.3544 27.2602C33.219 27.6438 33.0107 28.0106 32.935 28.4042C32.7767 29.2211 32.6888 30.0518 32.5637 30.8755C32.522 31.1501 32.4571 31.4214 32.3981 31.6933C32.3854 31.7514 32.3652 31.8431 32.3276 31.8554C31.9919 31.9635 31.6544 32.1273 31.3119 32.1405C30.6584 32.1654 30.0014 32.0948 29.3453 32.0787C29.0413 32.0713 28.7358 32.1135 28.4322 32.1021C28.3223 32.098 28.1211 32.0001 28.1229 31.9506C28.1346 31.6157 28.0759 31.194 28.2539 30.9664C28.6342 30.4799 29.1573 30.1069 29.5961 29.6618C29.8631 29.3911 30.2144 29.1584 30.2511 28.58C30.0044 28.7156 29.8044 28.7778 29.6704 28.9082C29.1893 29.3755 28.7529 29.891 28.2545 30.3384C27.9769 30.5878 27.6268 30.8644 27.2805 30.9101C26.3938 31.0273 25.5703 30.7267 24.819 30.2546C24.7065 30.184 24.6375 30.0445 24.4941 29.8719C24.9655 29.8259 25.3526 29.8095 25.7312 29.7447C26.0487 29.6902 26.3736 29.6138 26.6596 29.4746C26.7639 29.4239 26.7654 29.1634 26.8138 28.9984C27.0224 28.9348 27.3155 28.8106 27.3225 28.672C27.344 28.2339 27.8315 28.1149 27.8844 27.7284C28.5664 27.4633 28.4043 26.7149 28.7335 26.2475C28.7593 26.2109 28.7585 26.1511 28.7599 26.1019C28.7711 25.7555 28.757 25.4136 28.9359 25.086C29.0639 24.8513 29.0868 24.56 29.2119 24.3232C29.3203 24.1181 29.4592 23.9795 29.3717 23.6926C29.2924 23.4333 29.3708 23.1215 29.4017 22.835C29.4249 22.6202 29.5891 22.4341 29.3858 22.1915C29.2375 22.0142 29.1744 21.7478 29.1256 21.5105C29.0528 21.1545 29.0187 20.7897 28.9837 20.4269C28.9729 20.3153 29.0539 20.1857 29.0225 20.0867C28.8043 19.396 28.5684 18.7107 28.3358 18.0244C28.2694 17.8281 28.315 17.7185 28.5176 17.6136C28.9884 17.3698 29.4475 17.3985 29.923 17.5726C30.5069 17.7862 30.9436 18.2908 31.5968 18.3787C32.0512 18.4396 32.3631 18.7696 32.6521 19.0933C32.8574 19.324 33.2069 19.4166 33.2387 19.8271C33.2583 20.082 33.491 20.3135 33.5576 20.5734C33.7145 21.1832 33.7635 21.8284 33.9809 22.413C34.1671 22.9135 34.2381 23.3797 34.1327 23.8922C34.1168 23.9684 34.1944 24.0636 34.2467 24.1955C34.2246 24.2195 34.1342 24.2725 34.1201 24.3414Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M43.3729 17.3098C43.4557 17.3517 43.5386 17.3939 43.627 17.4385C43.5961 17.4757 43.5844 17.505 43.5682 17.5073C43.0857 17.5853 42.5993 17.6427 42.1214 17.7415C41.7053 17.8273 41.3337 17.8704 40.9058 17.6764C40.5166 17.5 40.0417 17.5114 39.5583 17.4326C39.5627 17.4077 39.5791 17.311 39.5973 17.2014C39.57 17.2 39.538 17.1979 39.506 17.1961C39.2883 17.1833 39.0669 17.1912 38.8537 17.1525C38.5511 17.098 38.2833 17.0514 38.033 17.3239C37.6973 17.6899 37.5252 18.0779 37.5238 18.5895C37.5232 18.8421 37.4168 19.0911 37.5561 19.3417C37.6609 19.5298 37.7869 19.7132 37.8524 19.9151C38.0189 20.4299 38.4771 20.6755 38.8598 20.9586C39.0372 21.0895 39.3941 21.0081 39.6646 20.9788C40.2811 20.9123 40.7936 21.0611 41.2065 21.5528C41.3281 21.6976 41.5502 21.7594 41.7282 21.8555C41.9426 21.9718 42.1479 22.1289 42.3775 22.1872C42.646 22.2552 42.9388 22.2197 43.2167 22.2593C43.4713 22.295 43.7727 22.3032 43.9586 22.4459C44.1929 22.6265 44.3651 22.5664 44.5751 22.484C44.6212 22.4662 44.6658 22.4199 44.709 22.4228C45.257 22.4577 45.6471 22.1066 45.9978 21.7949C46.2562 21.5651 46.3996 21.171 46.5129 20.8238C46.6151 20.5102 46.6868 20.1457 46.6272 19.831C46.5514 19.4304 46.3502 19.0469 46.1643 18.675C46.0216 18.389 45.8321 18.1224 45.6371 17.8669C45.5461 17.7473 45.4062 17.6374 45.2659 17.5873C44.8588 17.4429 44.4447 17.3119 44.0241 17.2146C43.8185 17.1671 43.5929 17.2064 43.3761 17.2064C43.375 17.241 43.3738 17.2753 43.3729 17.3098Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M38.1395 16.3703C38.1207 16.1098 38.0819 15.8487 38.0887 15.5888C38.096 15.3069 38.1398 15.0253 38.1812 14.7455C38.1912 14.6784 38.2473 14.5685 38.2916 14.5635C38.8937 14.4979 39.0224 13.8708 39.4497 13.6012C39.5085 13.564 39.5569 13.4904 39.581 13.4231C39.7587 12.9308 39.9273 12.435 40.1035 11.9421C40.1323 11.8615 40.1702 11.7745 40.2298 11.7168C40.431 11.5216 40.4836 11.2963 40.532 11.0173C40.5922 10.6683 40.8184 10.344 40.9929 10.0193C41.2031 9.62869 41.083 9.3808 40.6407 9.42563C40.1173 9.47867 39.5878 9.56101 39.0885 9.71836C38.8591 9.79074 38.6928 10.0694 38.5034 10.2599C38.3833 10.3809 38.2843 10.5242 38.1568 10.6361C37.8197 10.9318 37.4146 11.1427 37.3785 11.6963C37.3621 11.9532 37.1083 12.1926 36.9726 12.4455C36.9089 12.5642 36.8601 12.6934 36.8219 12.8232C36.6874 13.2804 36.5182 13.7331 36.443 14.2007C36.3773 14.6101 36.4483 15.0397 36.4075 15.4555C36.3599 15.9384 36.4107 16.3846 36.6281 16.8251C36.8633 17.3009 36.962 17.3598 37.5165 17.2022C37.7415 17.1383 38.1548 16.5903 38.1395 16.3703Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M68.9769 62.3787C69.399 62.3004 69.9129 62.3872 70.2845 62.0053C70.4998 61.7838 70.6919 61.5397 70.8939 61.3053C71.1092 61.0559 71.3092 60.7908 71.5454 60.5625C71.657 60.4547 71.8373 60.4177 71.9798 60.3518C71.9131 59.8546 71.8394 59.3224 71.7709 58.7897C71.7154 58.3554 71.6714 58.3654 71.2399 58.448C70.9891 58.4961 70.7723 58.5415 70.5882 58.7182C70.355 58.9421 70.1676 58.5951 69.9444 58.6614C69.8833 58.6792 69.8195 58.6877 69.7573 58.7006C69.7902 58.7654 69.8231 58.8301 69.8586 58.8999C69.6689 58.9579 69.4495 59.0523 69.2207 59.0898C68.6744 59.1794 68.6101 59.5847 68.5516 60.0178C68.5381 60.1168 68.4397 60.2041 68.3745 60.3064C68.4054 60.3685 68.4949 60.4734 68.5058 60.5859C68.5316 60.8508 68.4847 61.1257 68.5334 61.3838C68.5739 61.5986 68.7085 61.7958 68.8019 62.0004C68.8582 62.1234 68.9155 62.2462 68.9769 62.3787Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M41.6498 14.2742C41.0165 14.3287 40.4271 14.3319 39.8611 14.4485C39.5821 14.5062 39.3186 14.7442 39.101 14.9549C38.9333 15.1175 39.1371 15.5942 39.3448 15.7551C39.6963 16.027 40.0103 16.3467 40.3619 16.6186C40.5064 16.7306 40.7017 16.7901 40.8832 16.8381C41.1872 16.9184 41.4968 17.0049 41.8078 17.0224C42.0325 17.035 42.2748 16.9697 42.4886 16.8862C42.8035 16.7631 43.1386 16.64 43.3941 16.4308C43.7142 16.1689 43.7057 15.8864 43.4872 15.5309C43.2675 15.1735 43.0405 14.8224 42.6252 14.6574C42.2927 14.5253 41.959 14.3955 41.6498 14.2742Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M9.07747 24.4423C9.50011 24.0341 9.63434 23.5729 9.70453 23.1245C9.81027 22.4515 9.80674 21.762 9.87606 21.0822C9.92922 20.5597 9.71746 20.1287 9.46928 19.7038C9.36119 19.518 9.2396 19.3396 9.11536 19.1638C8.94736 18.9261 8.71445 18.9044 8.50063 19.0867C8.08739 19.4386 7.87093 19.92 7.78693 20.4196C7.68971 20.9992 7.60806 21.6055 7.88267 22.1822C7.90764 22.2343 7.81835 22.3407 7.78311 22.4195C8.47302 22.8892 8.66335 23.7179 9.07747 24.4423Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.9378 57.9906C51.7992 57.5944 51.0966 57.8435 51.1762 57.3128C50.9286 57.1639 50.7001 57.0265 50.5136 56.9146C50.5674 56.7338 50.6114 56.5858 50.6552 56.4378C50.5277 56.4469 50.4 56.456 50.2416 56.4671C50.2522 56.4888 50.2305 56.4452 50.1941 56.3722C50.0073 56.6201 49.8269 56.8501 49.6569 57.0875C49.4595 57.3632 49.2674 57.6436 49.0806 57.927C49.0316 58.0011 49.0242 58.1028 48.974 58.1758C48.846 58.3618 48.705 58.5385 48.5155 58.7899C48.4818 58.9063 48.4383 59.1433 48.3458 59.3593C48.0926 59.9491 48.2474 60.1929 48.8991 60.1463C49.2002 60.1249 49.5335 60.2149 49.7935 59.96C49.8299 59.9245 49.9159 59.9175 49.9732 59.928C50.4258 60.0098 50.5888 59.6335 50.8379 59.3933C50.9398 59.2948 51.0573 59.2084 51.141 59.0967C51.4159 58.7293 51.6785 58.3527 51.9378 57.9906Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M83.4877 50.8798C83.2633 50.7183 83.0797 50.6108 82.9258 50.4707C82.321 49.9204 81.625 49.5547 80.8146 49.4343C80.5133 49.3895 80.2522 49.4402 80.1212 49.8141C80.0451 50.03 79.809 50.19 79.6448 50.3752C79.9068 50.5888 79.8774 50.7655 79.4219 51.0676C79.8598 51.4146 80.3136 51.6563 80.8675 51.7717C81.1606 51.833 81.427 51.9842 81.7507 51.9306C81.966 51.8948 82.1912 51.9177 82.4118 51.9162C82.5587 51.9153 82.7082 51.9004 82.8521 51.9212C83.2092 51.9725 83.6236 51.5602 83.5552 51.2077C83.5282 51.0676 83.4976 50.9281 83.4877 50.8798Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.4286 2.72104C51.5052 2.65248 51.5819 2.58391 51.6732 2.50186C51.7035 2.79547 51.7238 3.05509 51.7587 3.31324C51.7828 3.49404 51.7957 3.68714 51.8721 3.84684C51.9214 3.94969 52.0671 4.02734 52.1864 4.071C52.3247 4.12169 52.483 4.11525 52.6296 4.14777C53.0775 4.24711 53.1491 3.8864 53.2804 3.63293C53.372 3.6804 53.4581 3.72494 53.5439 3.76919C53.5662 3.68275 53.6073 3.5966 53.6079 3.51016C53.6141 2.7524 53.4969 2.01339 53.0848 1.36816C52.9664 1.18267 52.6795 1.10209 52.4657 0.981365C52.4278 0.959974 52.3341 0.959974 52.3232 0.980486C52.1071 1.38632 51.5478 1.16861 51.3205 1.59964H51.9634L51.9875 1.70308C51.776 1.77223 51.5646 1.84109 51.2817 1.9334C51.433 2.07112 51.5417 2.17045 51.5995 2.2229C51.5425 2.39491 51.4879 2.55959 51.4333 2.72427L51.4286 2.72104Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M38.9149 30.9743C38.867 30.5919 38.3037 30.4094 38.4529 29.8995C38.4655 29.8564 38.3897 29.7624 38.3333 29.729C37.8916 29.467 37.4446 29.2144 36.9523 28.9323C36.9523 29.6176 36.9741 30.2292 36.9347 30.8366C36.9268 30.962 36.6927 31.0728 36.5347 31.2155C36.6046 31.3459 36.7 31.5237 36.7969 31.7043C37.3297 31.8979 37.8822 32.0987 38.5128 32.3281C38.5524 31.9135 38.5574 31.5917 38.625 31.2838C38.6517 31.1627 38.8179 31.0725 38.9149 30.9743Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M33.4477 30.3126C33.7053 30.3656 33.9605 30.4166 34.2149 30.4711C34.3993 30.5107 34.5952 30.5913 34.6249 30.2813C34.6278 30.2514 34.7585 30.1995 34.8161 30.2139C35.2678 30.3249 35.5612 30.0905 35.4199 29.6633C35.2508 29.1514 35.2193 28.5577 34.7626 28.182C34.4795 27.9491 34.1617 27.7243 33.7549 27.814C33.6677 27.833 33.5393 27.9318 33.5326 28.0033C33.5059 28.2907 33.5279 28.5823 33.5153 28.8718C33.5059 29.091 33.4603 29.3084 33.4503 29.5276C33.4386 29.7896 33.4477 30.0524 33.4477 30.3126Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M34.2852 20.5284C34.3874 21.0998 34.4846 21.6431 34.5821 22.1863C34.5862 22.2106 34.5824 22.2473 34.5971 22.2575C35.0679 22.586 34.8837 23.0929 34.8911 23.514C34.899 23.9664 34.7351 24.42 34.6825 24.8772C34.6696 24.9897 34.8047 25.2238 34.8585 25.2197C35.0335 25.2071 35.272 25.1582 35.3578 25.0345C35.4932 24.8391 35.5869 24.5724 35.5883 24.3351C35.5936 23.5996 35.8007 22.867 35.6057 22.1265C35.5275 21.8306 35.5504 21.5083 35.4714 21.2126C35.3448 20.7408 34.8967 20.4097 34.2852 20.5284Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M39.3782 22.4945C39.6223 22.471 39.6787 22.5994 39.6487 22.8133C39.6299 22.9466 39.6226 23.0831 39.6255 23.2176C39.6382 23.7931 39.9416 24.0917 40.5163 24.0803C40.776 24.075 41.035 24.0401 41.2944 24.0182C41.6521 23.9877 41.5746 23.6777 41.6221 23.4726C41.7658 22.8543 41.5863 22.5909 41.0056 22.3992C40.8341 22.3427 40.7023 22.1657 40.5069 22.0074C40.3654 22.0168 40.114 22.0332 39.7918 22.0546C39.7216 22.1818 39.736 22.5153 39.3779 22.495L39.3782 22.4945Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.68693 33.4042C5.56298 33.2756 5.43963 33.1475 5.31627 33.0198C5.33448 33.0016 5.3524 32.9834 5.37031 32.9656C5.20613 32.931 4.99877 32.9465 4.88746 32.8504C4.71828 32.7048 4.61314 32.4838 4.48684 32.2907C4.46246 32.2538 4.47392 32.1598 4.45688 32.1568C4.10649 32.0932 4.05921 31.7835 3.93761 31.5342C3.89121 31.4389 3.84392 31.3443 3.7937 31.2508C3.74935 31.169 3.70881 31.0261 3.65301 31.0187C3.15342 30.9557 3.10466 30.4535 2.82241 30.1833C2.78834 30.1508 2.85031 30.0192 2.87557 29.8956C2.83533 29.9044 2.68378 29.9208 2.68349 29.9392C2.68172 30.0822 2.66146 30.2604 2.73635 30.3621C2.94577 30.6463 3.20305 30.8945 3.42979 31.1667C3.48442 31.2323 3.48736 31.3384 3.52437 31.4213C3.62511 31.6452 3.73143 31.8662 3.8354 32.0886C3.87388 32.0812 3.91235 32.0742 3.95083 32.0672C3.88915 32.1102 3.82777 32.1533 3.81337 32.1636C4.1344 32.49 4.44925 32.8123 4.76645 33.132C5.08718 33.4552 5.17911 33.4933 5.68693 33.4042Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.4335 2.72425C51.237 2.62521 51.1175 2.51034 51.3284 2.30435C51.3484 2.28472 51.3152 2.21087 51.3067 2.16223C51.2517 2.18919 51.1525 2.21175 51.1492 2.24428C51.1366 2.36647 51.1601 2.49159 51.1616 2.61583C51.1671 3.08086 51.1789 3.54618 51.1698 4.01121C51.163 4.35698 51.304 4.29427 51.5099 4.15245C51.4585 4.07626 51.4139 4.01004 51.3666 3.9403C51.465 3.86235 51.5495 3.79554 51.6371 3.7258C51.2644 3.43454 51.2644 3.43454 51.4773 3.16437C51.279 2.91003 51.2746 2.87135 51.4271 2.71985C51.4288 2.72103 51.4335 2.72425 51.4335 2.72425Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M35.6758 30.9678C35.8485 30.9402 35.9777 30.9584 36.0385 30.9027C36.2467 30.7108 36.3595 30.4685 36.3413 30.1886C36.3037 30.1681 36.2658 30.1479 36.2279 30.1274C36.0641 30.3767 35.9002 30.6261 35.6758 30.9678Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6.35517 33.995C6.35017 34.0011 6.27792 34.0923 6.20361 34.1858C6.88442 34.4366 7.16991 34.4137 7.30971 34.1128C7.15405 34.1277 6.99016 34.1676 6.83244 34.1509C6.68441 34.1351 6.54255 34.0592 6.35517 33.995Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M43.9463 16.02C44.1105 16.163 44.2053 16.2662 44.3216 16.3324C44.3487 16.3476 44.512 16.2064 44.5034 16.1888C44.4459 16.0678 44.3745 15.9421 44.2732 15.8595C44.2423 15.8343 44.1046 15.9395 43.9463 16.02Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M8.17525 24.3971C8.04837 24.0428 7.93794 23.7348 7.80401 23.3604C7.64658 23.7047 7.77845 24.0161 8.17525 24.3971Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M35.1699 27.3914C34.9041 27.2777 34.6645 27.1751 34.4248 27.0729C34.7702 27.4397 35.0645 27.5256 35.1699 27.3914Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M33.3013 31.1591C33.5374 31.1834 33.7427 31.2048 33.9483 31.2259C33.6713 30.9343 33.4672 30.9197 33.3013 31.1591Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.3288 17.8475C15.5573 17.9152 15.656 17.8253 15.6158 17.5967C15.5133 17.0171 15.4049 16.4387 15.2974 15.86C15.2554 15.6352 15.2304 15.4043 15.1608 15.1881C15.0648 14.8895 14.9235 14.6055 14.8228 14.3081C14.7817 14.1871 14.8169 14.0409 14.7778 13.9187C14.7482 13.8255 14.67 13.7273 14.586 13.6802C14.5335 13.6506 14.4301 13.7112 14.3496 13.7317C14.3813 13.8238 14.426 13.9137 14.4415 14.0084C14.4621 14.1326 14.4345 14.2686 14.4709 14.3861C14.6451 14.9478 14.8704 15.496 15.0055 16.0663C15.1038 16.4812 15.0745 16.9248 15.1338 17.3512C15.1582 17.5258 15.2666 17.6887 15.3368 17.8569L15.3288 17.8475Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M13.5459 31.0171C13.792 30.9398 14.0191 31.0863 13.9873 30.6872C13.968 30.4419 14.2062 30.1808 14.3104 29.9194C14.4188 29.6472 14.504 29.3659 14.6018 29.089C14.6711 28.8921 14.7448 28.6967 14.8156 28.5003C14.9481 28.1343 15.0899 27.7713 15.2045 27.3997C15.2318 27.3112 15.1719 27.1935 15.1451 27.0909C15.1302 27.0338 15.0746 26.9359 15.0823 26.9312C15.4224 26.7258 15.047 26.4263 15.2409 26.2068C15.1971 26.1957 15.1534 26.1843 15.1093 26.1729C15.0594 26.346 15.0044 26.518 14.9607 26.6927C14.7871 27.3842 14.62 28.0778 14.4417 28.7685C14.4091 28.8947 14.3272 29.0076 14.2843 29.1321C14.1988 29.38 14.1239 29.6314 14.0475 29.8819C14.0299 29.9391 14.0431 30.0369 14.0108 30.0528C13.6372 30.2371 13.7254 30.6309 13.5459 31.0171Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16.748 19.2553C17.057 20.5909 16.9951 21.8664 16.9554 23.1396C17.3751 23.1426 17.5651 22.9538 17.4932 22.5158C17.4189 22.5067 17.3287 22.4959 17.1804 22.4777C17.317 22.3965 17.4133 22.3394 17.5519 22.257H17.3419C17.3093 21.8937 17.7346 21.5087 17.3454 21.2048C17.3454 20.7497 17.4174 20.3043 17.3152 19.9029C17.2632 19.6995 17.1792 19.3095 16.748 19.2553Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2335 23.7991C17.1154 23.7625 16.9973 23.7259 16.8793 23.689C16.8522 23.7168 16.8249 23.7446 16.7979 23.7725C16.9665 23.9383 17.0766 24.079 16.8173 24.2363C16.7659 24.2674 16.8487 24.5191 16.8778 24.7248C16.9709 24.6137 17.0208 24.554 17.071 24.4942C17.0966 24.5097 17.1221 24.5255 17.1477 24.5411C17.0981 24.6117 17.0634 24.7046 16.9961 24.7494C16.6651 24.9706 16.6472 25.0852 16.9471 25.3917C17.294 24.8921 17.3142 24.3515 17.2223 23.7898L17.2335 23.7991Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16.9655 18.1483C16.9399 18.1955 16.9185 18.2347 16.8891 18.2887C16.8133 18.1509 16.742 18.0214 16.6709 17.8919C16.7637 18.337 16.7194 18.8272 17.0322 19.1967C17.0665 19.1874 17.1009 19.178 17.1352 19.1686C17.0812 18.8436 17.0272 18.5184 16.9655 18.1483Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2222 23.7897C17.4449 23.6945 17.498 23.5283 17.3359 23.361C17.2701 23.2931 17.1006 23.3247 16.9253 23.3054C17.0689 23.5354 17.1512 23.6672 17.2334 23.7991L17.2222 23.7897Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.3368 17.8568C15.3033 18.0775 15.2698 18.2981 15.2363 18.5188C15.2683 18.5287 15.3004 18.5387 15.3324 18.5487C15.4167 18.4059 15.501 18.2632 15.5532 18.175C15.4663 18.0479 15.3982 17.9485 15.3297 17.8483C15.3288 17.8474 15.3368 17.8568 15.3368 17.8568Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M55.2291 15.8236C55.3019 15.7957 55.3704 15.7181 55.4089 15.6463C55.6021 15.2832 55.2044 14.5671 54.7935 14.5263C54.4522 14.4924 54.3177 14.6488 54.363 14.9884C54.3979 15.2507 54.3991 15.5173 54.4211 15.8745C54.6382 16.031 54.9372 15.9346 55.2291 15.8236ZM52.7115 17.495C52.6189 17.4733 52.5097 17.4276 52.4545 17.3569C52.1737 16.9977 51.8621 16.6516 51.6468 16.2546C51.2288 15.4848 51.0121 14.7572 51.7587 14.0168C51.8198 13.9564 51.8541 13.8676 51.9184 13.8117C52.1948 13.5723 52.3804 13.2743 52.8571 13.2514C53.3726 13.2271 53.8628 13.2203 54.3735 13.3097C54.9586 13.4123 55.5657 13.4167 55.9387 13.9828C56.0462 14.1463 56.1305 14.3259 56.2204 14.5006C56.3411 14.7361 56.5517 14.9732 56.5549 15.2117C56.5611 15.6653 56.4759 16.1268 56.3737 16.5728C56.3044 16.8764 56.0195 16.9828 55.7598 17.1533C55.1962 17.5234 54.6205 17.7021 53.7914 17.7256C53.5435 17.6734 53.1259 17.5908 52.7115 17.495Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M31.6751 21.7965C31.6343 21.5565 31.5932 21.3165 31.5523 21.0768C31.5074 21.0762 31.4625 21.076 31.4178 21.0754C31.4704 21.0053 31.5227 20.9356 31.584 20.8544C31.5159 20.8409 31.4557 20.8292 31.3805 20.8143C31.6915 20.5007 31.115 19.0517 30.5479 18.7013C30.8733 19.7699 31.1919 20.816 31.5106 21.8624C31.5653 21.8405 31.6202 21.8185 31.6751 21.7965Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M54.4211 15.8747C54.6382 16.0311 54.9372 15.9347 55.2291 15.8237C55.302 15.7958 55.3704 15.7182 55.4089 15.6461C55.6021 15.283 55.2044 14.5672 54.7935 14.5262C54.4523 14.4925 54.3177 14.6486 54.363 14.9885C54.3979 15.2508 54.3991 15.5172 54.4211 15.8747Z" fill="#FEFEFE"/>
+</svg>
diff --git a/go.dev/_content/images/gophers/megaphone.svg b/go.dev/_content/images/gophers/megaphone.svg
new file mode 100644
index 0000000..c018845
--- /dev/null
+++ b/go.dev/_content/images/gophers/megaphone.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 486 365" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M484.729,133.358c0.201,-0.274 -1.123,1.531 0,0m-404.303,231.03c-9.975,0 -13.723,-16.675 -12.594,-23.45c2.193,-6.581 -8.526,-7.759 -11.942,-10.151c-7.308,-5.116 -17.087,-14.573 -22.854,-21.388c-5.249,-6.204 -4.402,-9.245 -13.408,-6.243c-4.245,2.124 -12.467,0.746 -16.502,-0.868c-5.899,0 -2.108,-10.269 0.489,-12.865c3.459,-3.46 10.994,-7.546 16.013,-7.546c1.738,-1.737 -1.056,-11.077 -1.205,-13.521c-0.502,-8.238 -0.126,-16.792 2.508,-24.694c0.769,-3.079 6.934,-24.123 6.948,-24.102c-3.288,-4.932 5.632,-13.299 4.343,-18.457c0,-7.261 2.215,-15.034 3.667,-21.81c2.438,-11.377 1.071,-23.163 -0.193,-34.536c-1.335,-12.019 -0.653,-20.832 1.031,-32.624c2.268,-15.873 4.684,-38.339 16.774,-50.43c1.203,-1.203 9.988,-11.259 9.988,-12.159c1.572,-1.339 3.271,-2.566 3.909,-3.909c15.234,-7.57 5.795,-16.953 2.171,-26.924c-4.483,-2.242 -1.128,-10.331 0.869,-11.725c2.439,-2.44 16.79,-2.465 18.239,0.434c3.746,3.746 9.378,8.048 13.494,11.661c7.92,6.95 13.523,4.018 23.527,2.197c6.776,-1.233 14.39,-2.096 21.285,-1.608c5.41,0.382 10.693,1.493 16.082,1.936c7.66,0.629 6.102,-0.132 7.634,-6.261c2.194,-8.776 15.065,-25.206 20.736,-7.382c1.72,5.403 -0.396,12.652 4.764,16.393c8.408,6.099 19.486,6.717 27.101,14.331c6.654,0 12.161,10.578 19.053,11.563c10.453,1.493 16.115,-0.702 24.699,8.359c3.069,3.24 4.147,4.586 8.021,6.127c2.943,1.172 6.1,2.524 7.179,5.761c2.246,6.738 -5.872,7.422 -3.8,13.788c-0.106,3.624 -0.212,6.295 -0.967,10.584c-2.152,2.568 -6.416,16.656 -6.416,21.986c-2.354,7.063 -15.407,8.27 -10.856,17.371c0,5.056 3.859,11.053 2.605,16.068c0,2.207 -1.095,19.114 1.52,17.371c6.182,-4.121 12.52,-12.304 19.759,-14.114c4.869,-1.217 -6.948,-8.41 -6.948,-11.074c-1.767,-3.579 -1.303,-9.653 -1.303,-14.765c0,-11.006 9.986,-12.364 16.448,-18.239c6.326,-5.751 15.591,-12.46 24.374,-13.478c7.383,-0.856 14.343,1.53 21.661,-1.11c11.695,-4.219 22.068,-8.444 33.056,-13.64c5.78,0 14.919,-7.432 19.784,-10.39c4.076,-2.478 11.149,-9.357 14.958,-9.586c-2.133,2.209 -4.459,4.576 -6.08,6.948c7.198,-5.356 10.695,-13.992 18.022,-19.487c7.712,-5.784 10.211,-6.94 18.891,-9.609l0,1.738c4.564,-5.616 26.49,-0.451 26.49,8.251c0,3.082 6.807,11.902 8.197,15.145c3.068,7.159 6.466,14.224 8.088,21.93c5.211,24.751 7.765,46.513 1.52,71.492c-6.364,19.092 -14.76,48.56 -39.502,47.222c-12.728,-0.688 -21.775,-6.277 -31.826,-13.187c-4.397,-3.022 -8.159,-5.954 -13.137,-8.088c-6.679,-2.862 -14.685,-3.217 -21.062,-6.405c-4.481,-2.988 -21.647,-5.896 -26.49,-3.474c-4.854,2.426 -9.118,5.21 -14.331,6.948c-2.373,1.186 -4.26,-0.489 -5.871,2.043c-1.903,2.991 -3.011,6.642 -7.157,6.642c-5.923,-1.184 -11.996,-0.988 -17.914,0.048c-7.642,1.337 -6.706,-5.373 -12.322,-5.748c-7.329,-0.488 -26.306,1.366 -30.318,9.29c-4.687,9.258 0.494,26.548 -5.889,35.06c-2.14,1.07 -4.777,11.673 -4.777,14.331c0,5.4 -5.211,10.408 -5.211,14.765c0,2.777 -3.747,10.459 -5.646,11.725c-1.134,2.789 -0.917,6.724 -3.04,9.554c-6.103,7.121 -10.315,15.854 -16.502,23.451c0,2.105 -9.474,11.264 -10.857,11.725c-1.9,0 -8.362,8.29 -9.988,9.554c-1.362,3.262 0.742,4.83 3.094,8.251c2.585,3.76 10.689,14.011 6.026,18.673c-2.115,2.115 -19.542,4.566 -19.542,-3.908c-7.937,-7.478 -7.752,-11.541 -19.542,-5.645c-8.649,5.765 -25.547,5.645 -35.61,5.645c-10.454,0 -24.771,1.587 -34.742,-1.737c-8.685,-1.241 -5.429,2.35 -6.031,8.573c-0.757,7.824 -4.723,12.123 -12.642,11.403c-1.303,0 4.777,0.435 0,0" style="fill:#010101;fill-rule:nonzero;"/><path d="M167.714,91.234c-4.66,-0.666 -1.913,-7.167 1.431,-7.431c2.669,-0.211 3.015,9.209 -1.431,7.431c-3.04,-0.435 2.171,0.868 0,0m264.035,47.769c-5.504,-7.338 0.093,-36.61 6.568,-26.436c3.44,5.406 3.973,11.867 3.474,17.859c-0.281,3.378 -6.111,12.509 -10.042,8.577c-1.303,-1.737 0.434,0.434 0,0m-20.411,8.685c-5.243,-7.864 -2.496,-28.474 -1.735,-37.937c0.508,-6.318 15.136,-4.831 17.369,-1.581c1.718,2.502 0.856,6.961 -1.303,9.12c-1.996,2.993 -0.169,13.168 0.466,16.518c0.567,2.987 3.514,6.205 2.139,8.669c-2.141,2.142 -15.187,6.96 -16.936,5.211c-0.869,-1.302 0.434,0.435 0,0m26.056,45.164c-11.936,0 -20.104,-21.353 -22.473,-30.833c-3.743,-14.971 6.68,-6.788 15.09,-15.199c7.783,-2.594 14.604,-5.761 16.367,-14.623c1.333,-6.696 0.814,-18.178 -3.23,-24.244c-4.173,-6.259 -16.951,-2.124 -22.69,-4.994c-4.973,-4.972 -8.251,-0.773 -8.251,-9.554c0,-5.237 3.069,-15.229 6.948,-19.108c0,-5.843 8.691,-14.748 12.512,-18.463c6.058,-5.889 17.748,0.8 22.175,6.032c9.549,11.286 13.022,25.903 16.394,40.061c2.853,11.985 0.628,23.367 -0.867,35.194c-0.749,5.923 0.34,23.417 -4.182,27.938c0,10.359 -16.41,33.484 -27.793,27.793c-0.868,0 0.869,0.435 0,0m-337.861,-175.878c0.42,0 -1.472,-2.099 0,-0.869c0.819,0 0.194,2.161 0,0.869c-0.434,0 0,0 0,0m88.591,5.645c0,-3.347 0.719,-6.784 -1.303,-8.685c0.605,9.079 -10.856,12.695 -10.856,3.04c0,-6.918 2.732,-13.833 10.422,-9.988c3.317,3.317 4.147,17.685 1.737,15.633c0,-0.434 0,0 0,0m-131.149,34.307c1.55,-1.651 1.413,-3.138 3.04,-3.039c1.137,-1.613 0.747,-1.74 2.606,-3.04c-1.661,2.287 -4.092,5.724 -5.646,6.079m-17.371,37.782c-0.399,-0.441 0.249,-1.349 0.435,0.434c-0.916,2.257 -0.15,-0.121 -0.435,-0.434m201.935,2.605c-6.749,0 -9.945,-6.34 -5.103,-11.182c3.36,-3.36 10.135,-3.904 14.44,-3.366c21.051,2.632 -3.604,20.281 -9.337,14.548c-0.434,0 0.434,0.435 0,0m25.622,0c-3.996,-3.996 0.147,-10.356 -4.614,-14.059c-2.907,-2.261 -7.111,-7.356 -7.111,-11.128c0,-3.703 -13.017,-19.627 -3.909,-17.805c7.281,2.427 8.536,2.021 14.331,7.817c3.447,3.446 5.406,7.967 6.948,12.593c0,2.699 2.789,33.828 -5.645,22.582c-1.737,-1.737 1.303,1.737 0,0m-38.65,32.136c-3.982,-3.982 -9.668,-2.52 -11.508,-9.879c-1.718,-6.872 0.954,-11.676 5.428,-17.045c0,-3.881 11.797,-2.702 14.277,-1.575c5.481,2.492 9.913,1.661 15.471,0.272c5.682,-1.421 12.449,-5.246 15.416,2.171c3.594,5.391 -2.09,13.399 -6.08,16.502c-4.642,3.095 -10.043,-0.379 -14.765,4.343c-3.371,2.248 -14.43,7.115 -18.239,5.211c-0.434,-0.434 0.869,0.434 0,0m17.371,8.686c0,-2.514 -2.781,-7.348 1.737,-8.252c2.45,-1.225 7.29,-4.951 8.396,-0.16c1.15,4.984 -4.349,14.196 -10.133,8.412c0,-0.435 0.434,0.434 0,0m-68.18,-36.479c1.872,-1.872 3.424,-0.263 5.645,-3.04c3.104,-3.724 5.646,-7.592 5.646,-12.594c0,-10.104 -11.843,-10.884 -18.835,-9.65c-18.895,3.334 -11.807,31.735 7.544,25.284c0.434,-0.434 -1.303,0.434 0,0m-15.634,38.216c-26.882,-4.481 -37.781,-22.797 -37.781,-47.77c2.62,-10.479 10.419,-21.325 18.945,-27.956c6.084,-4.732 14.97,-6.016 23.501,-6.93c25.36,-2.717 45.072,24.32 41.319,47.464c-3.598,22.194 -23.462,38.945 -45.984,35.192c-2.606,-0.435 2.606,0.434 0,0m321.358,0.868c0,-4.106 1.755,-7.49 0.435,-11.725c1.891,3.093 1.78,9.504 0.434,13.462c-1.467,0.123 -0.556,-0.7 -0.869,-1.737c0,-0.868 0,0 0,0m-201.5,3.909c-4.651,-6.202 -4.509,-24.854 5.211,-26.056c-0.806,4.084 -2.105,7.74 -3.155,11.691c-0.159,0.6 0.562,19.6 -2.056,14.365c-1.303,-1.737 0.434,0.868 0,0m2.171,30.398c-5.195,-3.463 -1.737,-14.522 5.813,-14.522c2.212,0 6.762,19.552 -5.813,14.522c-1.302,-0.868 2.172,0.869 0,0m21.28,-54.717c0,-4.023 2.59,-8.28 3.474,-12.16c-4.244,1.97 -5.28,13.966 -3.474,12.16c0,-0.435 -0.435,0.434 0,0m-4.343,64.706c-5.111,-2.045 -4.822,-15.945 -5.754,-20.14c-1.575,-7.085 -5.886,-14.019 -6.711,-21.244c-2.237,-19.573 5.696,-34.891 23.659,-41.948c14.02,-5.507 6.611,4.649 6.611,10.809c-2.981,4.471 -3.866,17.368 -3.056,22.534c1.65,10.517 4.848,20.91 11.307,29.307c1.329,1.727 2.407,4.573 4.126,5.862c3.088,2.317 8.984,0.137 11.508,2.66c0,5.533 -14.408,6.279 -17.371,3.908c-3.709,-1.236 -10.97,-12.938 -14.331,-10.856c-1.638,4.917 10.928,10.706 12.16,15.633c0,6.098 -18.493,5.302 -22.148,3.475c-2.171,-0.869 0.868,0.434 0,0m-37.781,0.434c-2.903,0 0.434,-10.824 0.434,-11.725c0,-2.81 4.804,-4.803 6.948,-5.646c3.162,6.911 4.49,20.363 -7.382,17.371c-0.435,0 0,0 0,0m134.188,-78.168c0,-4.416 5.397,-28.745 4.994,-28.879c-4.066,-1.356 -7.675,25.784 -7.165,30.181c0.988,0.205 1.712,-0.229 2.171,-1.302c0,-0.435 -0.434,0.434 0,0m-9.119,33.004c0,-8.498 2.236,-24.282 -0.435,-32.136c-3.543,4.84 -2.566,13.056 -2.895,19.076c-0.189,3.47 -0.507,17.971 3.33,13.06c0,-1.303 0,0 0,0m57.323,55.152c28.296,-4.716 28.438,-58.72 29.53,-77.3c1.278,-21.735 -9.633,-69.935 -38.379,-69.017c-6.276,0.2 -14.806,7.966 -16.773,13.865c-1.571,3.144 -5.645,5.479 -5.645,9.554c0,1.965 -2.363,8.443 -3.909,9.988c-7.135,14.272 -6.033,35.331 -6.569,50.876c-0.796,23.082 7.808,69.575 41.745,62.034c2.606,-0.434 -3.908,0.869 0,0m-10.422,3.474c-12.267,0 -23.681,-13.054 -28.662,-23.016c0,-3.58 -3.924,-8.324 -4.798,-11.868c-1.153,-4.676 -1.248,-9.689 -4.322,-13.32c1.545,11.816 3.861,26.192 12.594,35.176c-7.044,-1.79 -13.527,-10.422 -21.279,-10.422c-2.897,2.896 -22.794,-5.646 -27.359,-5.646c-8.683,0 -24.271,-0.627 -31.172,-7.138c-10.076,-9.506 -9.875,-33.766 -7.586,-45.897c3.982,-21.102 28.407,-19.245 43.101,-29.042c6.326,-3.162 13.035,-5.557 19.639,-7.881c8.294,-2.918 13.253,-12.149 20.748,-16.438c-0.937,1.413 -1.427,3.538 -2.172,4.777c6.038,-1.955 14.308,-14.307 19.108,-19.107c10.218,-10.219 25.425,-11.512 35.24,-0.226c10.848,12.475 15.028,29.907 18.664,45.661c4.098,17.759 6.561,41.146 -0.461,58.85c-6.406,16.146 -14.619,54.425 -41.283,45.537c-0.869,0 2.605,0.869 0,0m-430.794,100.75c-8.826,-4.412 18.239,-21.304 18.239,-9.554c9.552,9.552 -13.111,11.264 -18.239,9.554c-0.869,-0.434 1.303,0.435 0,0m99.447,-255.784c4.122,-4.122 -12.453,-13.985 -15.633,-16.502c-0.939,3.064 13.466,18.669 15.633,16.502c0.434,-0.434 -0.434,0.435 0,0m19.976,224.517c12.428,-4.142 17.921,-22.183 16.503,-33.873l-1.303,0c-0.328,7.83 -2.951,18.15 -8.685,23.885c-4.789,0 -7.79,10.999 -13.463,3.908c-1.901,-3.802 0.468,-10.957 1.737,-14.765c5.116,-7.673 1.608,-16.628 -1.52,-2.551c-0.919,4.134 -7.916,30.72 6.731,23.396c1.303,-0.434 -2.605,1.303 0,0m1.303,73.826c-10.433,-2.609 -22.411,-1.92 -33.113,-3.257c-9.325,-1.166 -19.326,-5.142 -27.877,-9.193c-17.54,-8.308 -31.837,-30.224 -39.163,-47.317c-3.899,-9.097 -1.982,-21.923 -1.031,-31.43c0.68,-11.561 8.251,-22.595 8.251,-33.873c3.927,-7.855 6.948,-21.632 6.948,-29.964c0,-11.925 5.77,-24.917 2.172,-36.913c-4.165,-10.411 -1.303,-22.3 -1.303,-33.004c1.794,-5.383 1.912,-11.732 3.04,-17.371c0.578,-4.048 2.868,-17.199 5.645,-19.976c3.063,-9.187 7.989,-17.44 15.362,-23.994c3.745,-3.329 6.717,-7.205 10.26,-10.748c4.933,-4.933 5.585,-0.434 9.554,-0.434c2.583,0 9.486,2.538 3.474,-3.474c-3.411,-3.411 -6.555,-9.049 -9.409,-13.012c-2.914,-4.047 -6.953,-9.352 -7.093,-14.449c-0.186,-6.733 10.797,-5.726 14.746,-3.78c7.63,3.761 18.817,11.7 21.298,20.384c0.761,1.522 6.862,7.929 7.383,4.343c0,-5.754 -9.226,-5.657 0.868,-8.686c17.636,-5.426 48.862,-5.125 66.887,0.889c4.664,1.556 16.311,1.536 19.967,5.191c0,-2.288 21.821,9.916 23.884,11.291c5.7,1.9 16.151,12.761 18.674,17.805c0,2.638 10.396,11.051 8.685,14.765c-3.323,7.215 -20.37,-0.93 -22.485,12.465c-0.997,6.317 -2.651,6.336 -8.782,8.38c-3.967,0.992 -5.845,6.174 -8.251,9.12c-1.268,-4.534 1.14,-9.043 0.434,-13.625c-1.179,-7.666 -4.92,-12.717 -8.251,-19.38c-2.41,-7.231 -18.357,-19.542 -26.49,-19.542c-7.098,-3.549 -19.745,-2.478 -25.622,-0.434c-14.288,0 -22.34,16.261 -30.399,24.319c-5.669,5.669 -6.202,26.246 -3.04,32.57c4.383,8.766 8.164,20.584 17.371,25.188c7.613,7.612 22.932,11.189 33.33,10.368c6.254,-0.494 23.07,-10.216 26.165,-8.631c4.611,-6.13 9.803,-14.572 14.331,-19.542c0.201,2.228 0.471,7.419 2.171,9.119c1.178,1.592 6.948,2.88 6.948,5.212c2.972,0 5.384,3.039 8.686,3.039c4.767,-1.192 2.064,1.524 3.04,3.475c2.756,2.756 1.759,15.435 8.088,16.339c11.184,1.598 7.199,-12.554 17.099,-12.431c3.601,8.211 1.746,20.832 0.862,29.499c-1.168,11.451 -1.325,22.743 -3.87,34.194c-2.293,10.322 -4.374,21.745 -5.84,32.009c-0.672,4.701 -5.049,9.3 -5.049,14.602c-1.337,5.348 -7.816,12.5 -7.816,17.805c0,7.935 -9.655,18.986 -14.541,24.618c-8.675,9.998 -17.227,22.183 -28.452,29.666c-9.393,4.696 -18.151,9.866 -28.227,13.896c-12.952,3.238 -25.897,3.909 -39.519,3.909c-1.737,-0.435 1.303,0 0,0m73.826,4.777c-3.701,0 -13.963,-7.221 -13.462,-11.291c0.363,-2.958 7.816,-3.155 7.816,-8.034c0,-3.744 6.476,5.174 6.949,5.862c0,2.47 4.339,7.373 5.211,9.988c2.709,4.515 -5.528,5.447 -6.514,3.475c-0.434,0 0.434,0.868 0,0m-118.555,12.159c-4.08,-1.36 -9.554,-8.895 -9.554,-13.028c-1.412,-11.292 3.803,-5.645 10.856,-5.645c5.097,5.096 6.848,2.299 7.383,10.856c0,3.576 -2.716,13.786 -8.685,7.817c-1.303,-0.434 0.868,0.869 0,0" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/motorcycle.svg b/go.dev/_content/images/gophers/motorcycle.svg
new file mode 100644
index 0000000..e05346e
--- /dev/null
+++ b/go.dev/_content/images/gophers/motorcycle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 337 325"><path fill="#90D8F7" d="M138.7 107.7l1.5-.9 3.4-2.2h.3l1-.6 1.5-1 1.3-.8.4-.3a1.4 1.4 0 00.6-.4h.8l.4-.3.8-.4 1.2-.9 1.3-.8 1.5-1 4-2.5 4-2.6v.1l-.6.6-1.6 1-1 .7-1.2.8-2.4 1.5a40.4 40.4 0 01-4.2 2.7l-1.7 1-1.7 1-1.6 1-1.8 1.2-1.8 1.4-.8.7-.6.2-1.6.5-1.4.5-.7.2.7-.4zm22.7-10.4l.3-.2-.2.2-.4.2.3-.2z"/><path fill="#FCDFD3" d="M144.2 200.1c-.5 0-1 0-1.4-.2l-1-.5-.8-.6-1.4-1.2-1.2-1.3-2-3c-.4-.6-.7-1.3-1.2-1.8l-.2-.3h.1l.1-.1h.1l.2-.1.2-.2h.2l.1-.2h.1l.1-.1h.1l.2-.1v-.1h.2l.1-.2h.2v-.1l.2-.1h.1l.2-.2h.1l.1-.1.2-.1.1-.1.2-.1h.1l.1-.2h.2l.1-.2h.2l.1-.2.2-.1.1-.1.2-.1.2-.2h.1l.2-.2.2-.2h.2l.1-.2.2-.1.2-.2.2-.1.2-.2.1-.1.2-.1.2-.2.1-.1.2-.2h.2l.1-.2.2-.2h.1l.2-.2.1-.1.2-.1v-.2h.2l.2-.2.1-.1.2-.1v-.1l.2-.1.2-.2.1-.1.6 1 2 2.8-.2-.1a17.7 17.7 0 011.5 2.9l.2.8.1.5.1 1v.8l-.2 1.8a8.6 8.6 0 01-.8 2.3l-.6.8-.6.4-.7.4-1.4.3h-.2z"/><path fill="#EE3F26" d="M60.9 226.4h.1l.2-.2.6-.5.7-.6 1.3-.7.7-.4.8-.5.8-.6.4-.3.7-.6 1-.9-.2.1-1.8 1-3 1.8-2.9 1.9-.4.2h.2c.3 0 .5.1.8.3zm69.8 21.6a9.3 9.3 0 01-2.9-1.4l-1-.8-1.8-1.5-1.7-1.5-1-.8-.8-.8-1.5-1.7-.8-.7-.7-.7-1.5-1-1.3-.7-1.2-.8-.4-.3-.2-.1h.1a36 36 0 00-2.6-1.4l-2.6-1.3a11 11 0 00-1.3-.4l-1.4-.4-1.3-.5-1.1-.3a43.6 43.6 0 00-3.8-1.3l-1.1-.2-1.2-.3-1.3-.3a72.7 72.7 0 01-3-.8l-3.3-.5-3.3-.3H82l-2.2.1h-1.2l-1 .1h-.5l-1.8.6-1.9.4a9.3 9.3 0 00-1.2.4 196.6 196.6 0 01-3.2 1.9l-.3.3-1.4 1.2-1.2.9a5 5 0 01-1.4.5l-1.7.4c-.6 0-1.2.1-1.7.3l-.5.1-2.1 1a1 1 0 00-.7-.3c-.5 0-1 0-1.4.2H56l-1.7.3-1.4.2a16 16 0 01-1-.6l-.6-.4h-.1l.6-.5.4-.2h.1l.2-.1v-.2c0-.3.2-.6.4-.8l.1-.2.6-.6.7-.7 1.1-1.4 1.3-1.5.2-.2 1-.6h.1c.4-.2.7-.4 1-.8v-.6c0-.2.1-.3 0-.4 0-.3-.3-.5-.6-.5l-.7.4-.3.3s-.2 0-.3.2l-.8.5-.3.2c-.3 0-.6-.2-.8-.3-.8-.5-1.4-1-2-1.8l-.8-1.5-.6-1-2.6-4.4a5 5 0 01-.6-1.7v-1.3l.7-.8.5-.2.6-.3 1-.3.9-.4 1.1-.5c.7-.2 1.4-.6 2-1l2-1 1.7-1 1.8-.6h.2l.2-.1h.1l.1-.1h.1l1.5-.8 1.4-.7 2.8-1.2 2-.8 1-.4 1-.5a35 35 0 014.5-1.6h-.2c.6 0 1.1-.3 1.6-.5l1.5-.5 1.4-.5.6-.2.6-.2 1-.5 1.2-.5 1.3-.5 1-.4 2.5-1 1.3-.7 1.6-.7.8-.6.9-.6.7-.8h.7l.1.1h.4l.1.1h.4v.1h.3l.1.1h.3v.1h.4v.1h.3v.1h.4v.1h.2v.1h.5l.1.1h.5l.1.1h.7v.1h.5v.1h.5v.1h.4l.1.1h.2l.1.1h.2v.1h.3v.1h.3v.1h.2v.1h.2l.1.1h.2v.1h.2l.1.1h.4l.1.1h.4l.1.1h.4l.1.1h.4l.1.1h.4v.1h.4v.1h.5l.1.1h.5l.1.1h.6l.1.1h.8l.2.1h4.7v-.1h.4l.1-.1h.3v-.1h.4v-.1h2.9l.4.7c0 .3.3.6.4.9l.5.7a316.4 316.4 0 011.4 2l1.2 1.3.9.7.4.3 1 .7c.5.2 1 .4 1.6.4h.3l.4.1.8.1h.2a2 2 0 001.1-.4l.7-1 .2-.3v-.1l1-1c.4-.8.6-1.9.6-2.8v-1l-.2-.7c0-.5-.2-1-.3-1.4a57 57 0 01-.5-1.2l-.5-1.5.1-.1h.2v-.1h.2l.1-.1h.2v-.1h.2v-.1h.2v-.1h.2v-.1h.2l.1-.1h.2l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.3l.1-.1h.2v-.1h.3l.1-.1h.2v-.1h.2l.1-.1h.1l.3.2.3.6c.2-.2.4-.3.7-.3h.4c.2 0 .4.2.6.4l1.3 1.8.4.6 1 1.2c.3.3.3.7.1 1v.1l.6.4.8.7.8.4.7.4.5.2.2.1 1.3.3 1.5.1h.1l1.1-.2h.2l.2-.2 1-.7.8-1a11.8 11.8 0 00.9-4.6 11.3 11.3 0 00-.2-2.3 53.6 53.6 0 01-.7-2.3l-.4-.8-.2-.4-.7-.8-.8-1.2c0-.2 0-.3-.2-.5a4 4 0 01-.3-1.2v-.6l.1-.1.2-.1v-.1l.2-.1.1-.1h.1l.1-.2h.2v-.2h.2v-.1l.2-.1.1-.1.1-.1.1-.1.1-.1h.2v-.1h.1l.1-.1 1-.8v-.1l.2-.1v-.1l.2-.1.1-.1.1-.1.2-.1.1-.1.1-.1.2-.1v-.1l.2-.1.2-.1v-.1l.2-.2h.2l.1-.2h.1l.2-.2.2-.1.1-.1.2-.2h.1l.1-.2.2-.1.1-.1.2-.1.1-.1.1-.2h.2l.1-.2h.2l.1-.2.1-.1.2-.1.1-.1.2-.1v-.2h.2l.1-.2h.2l.1-.2.1-.1.2-.1v-.1l.2-.1.2-.2.2-.2h.1l.2-.2.1-.1.1-.1.2-.1v-.1l.2-.1.1-.1.2-.1v-.1l.2-.1.1-.1h.1l.1-.2h.1l.1-.2h.1l.1-.1.1-.1h.1l.1-.2h.1v-.1l.2-.1.1-.2h.1v-.1h.2v-.1l.1-.1h.1v-.2h.2v-.2h.2v-.1h.1v-.2h.2v-.1h.1l.1-.2h.1v-.1l.1-.1h.1v-.1l.1-.1.1-.1.1-.1.1-.1v-.1h.1v-.2h.2v-.1l.1-.2.2-.1v-.1l.1-.1.1-.2h.1l.1-.2.2-.2.1-.2h.1l.1-.2h.1v-.2h.2v-.2h.1l.1-.1.1-.1.1-.1v-.1l.2-.1v-.1l.1-.1v-.1h.2v-.2h.1v-.1l.1-.1.1-.1.2-.2v-.1l.2-.1.1-.2.1-.1h.1v-.2h.1l.1-.1.1-.1.1-.1v-.1h.1v-.1h.1v-.1l.1-.1.1-.1v-.1l.1-.1.1-.1v-.1h.1v-.1l.1-.1v-.1h.1v-.2h.1v-.1l.1-.1v-.1h.1v-.1h.1v-.2h.1v-.1h.1v-.2h.1v-.1h.1v-.2h.1v-.1l.1-.1v-.1l.1-.1.1-.1v-.1l.1-.1v-.1h.1v-.2l.1-.1.1-.1v-.1l.1-.2h.1v-.2l.1-.1v-.1l.1-.1v-.2h.1l.1-.2v-.1h.1v-.2h.1v-.2h.1v-.1l.1-.1v-.1h.1v-.2l.1-.1v-.1l.1-.1v-.1h.1v-.2l.1-.1v-.1h.1v-.2h.1v-.2h.1v-.1l.1-.1v-.1h.1v-.2h.1v-.2h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.2h.1v-.2h.1v-.1h.1v-.2h.1v-.2h.1v-.2h.1v-.2h.1v-.4h.1v-.1l2.6-1.3 1.2-.6 1.2-.6h-.1l.7-.4c.5-.3 1.1-.7 1.8-.5.4.1.8.3 1 .7l.5.8c.5 1 .8 2 1.2 3.1v.1l.8-1.9.5-1 .3-1 .5-1.7c0-.6.2-1.2.3-1.7l.1-.9a10.5 10.5 0 01.7-2l.7-1.5.6-1.3a29.8 29.8 0 011.5-2.8l.8-1.2 1.7-2.6 1.6-2.4 2-2.6 1-1.1a60.5 60.5 0 012-2.2l1-1c1.4-1.5 3-2.8 4.5-4.1l2.2-2a52.9 52.9 0 013.7-2.7l.6-.4.6-.5.4-.2v-1.2h.8c.3 0 .5-.2.8-.3l.4-.4h.3l.2-.2.2-.3.3.2.8.6 1.3 1.2a19.4 19.4 0 002.9 2l1.7 1.5 2.1 2.2 2 1.9 1.8 1.7a70.2 70.2 0 003.2 2.6l1.2 1.2.2.2.2.2.4.4 2.3 2.3c.5.5 1 1 1.3 1.7.2.5.2 1.2-.2 1.6l-.4.5v.1l.4 1.2.4 1.4.7 2.5.7 2.5.3 1.4.2 1.4v-.1 2.7c0 .6-.1 1-.3 1.6l-.2.5-.2.3-.2.5-.4.4-.4.3-1 1a4 4 0 01-.7.5h-.5l-.7.4c-.7.2-1.3.6-2 .9l-3.6 1.6-1.9.8c-.6.1-1.1.3-1.7.6h-.2l-.2.2-2.1 1-1 .3-1.3.3-1.5.5-1.4.5-.9.4-.8.5c-.2.3-.3.6-.3 1v.1a41.6 41.6 0 01-1.7.7l-1.5.6-.8.3-.7.2-2.4 1.1-1.2.5-1.3.6c-.8.5-1.7.9-2.7 1.2l-2.6 1-3.8 1.7a64.4 64.4 0 01-3.7 1.7l-1.6 1-.7.3-1.3.6-.6.4-.6.3-.4.2a16.2 16.2 0 00-.7 2.3l-.5 3.8-.1.4v.5l-.6 3.5-.3 1.9-.3 1.5-.8 1.9a23.5 23.5 0 00-1 2 12.4 12.4 0 01-6 5c-1 .2-1.8.5-2.8.9l-3.4 1.4-2.1.6-1.4.5-1 .4-1.1.4-2.5.6-2.2.8-2.4.6-3.5 1-1.9.4-.9.2c-.3 0-.6 0-1 .2-.5 0-1 .2-1.5.4l-2 .5-2 .5a104.6 104.6 0 00-3.5 1l-1.8.6-1.9.6-1.8.7-3.7 1.2-1.8.6-1.8.6-2 .8-1 .3-1.3.4h-.8a8.7 8.7 0 01-2.2 0l-1.2-.3-.5-.2-.7-.5-.4-.4-1.5-1.6-1.4-1.6-1.4-1.7-.8-1a10.3 10.3 0 01-1.4-1.9l-1.4-2.2-.6-1.2h-.2l-.2.2-.2.2c-.3.3-.5.6-.9.8l-1 .6-1 .7-1.3.7-3 1.7c-2.2 1-4.2 2.2-6.3 3.1l-2.9 1.4-1.8.8-3.1 1.2-.4.1 2.7.5 3.2.6 3 .4 3.4.7 1.8.4 1.6.5 1.7.6 1.4.7 1.7.7 1.6.6 2.1.6 2 .7 1.2.4.6.1 1.3.5 2.5 1.2.7.3 1.2 1.2 2 1.9 2 2 2.2 2 .1.1.5.7.4.4.6.6.5.2.2.3 1 1.8 1 1.6a24.3 24.3 0 011.6 2.3c0 .3 0 .7.2 1l.2.9.2.6.2.4.3.4.2.4c0 .5.2 1 .3 1.4l.2.8v.5l-.1.4v.3l-.1.2h-.1l-.6.7v.1l-1.3-.3zM234 108.2c-.2 0-.2-.1-.3-.2l.2.2zm8.8 23c-.4 0-.8 0-1.1-.2l-.6-.4-2.6-2.1-1-1.1-1.3-1.2a20.2 20.2 0 00-2.4-2.2l-1.1-1-1.2-1.2-2.2-2-1-1-1.1-1-2.7-1.8-1.4-1a24.8 24.8 0 01-2-1.8c-.5-.6-1-1.3-.8-2 0-.4.2-.8.4-1l.2-.3 1-.8.6-.2c.2-.2.5-.2.8-.3l.8-.3.7-.3.5-.2a18.3 18.3 0 012-.6l1.3-.3 2.9-.7 1.3-.2h.3c.2-.4.6-.7 1-.8.5 0 .9 0 1.3.2.4.3.7.6.9 1l.6.8a87.3 87.3 0 003.8 5.2l1.6 3 1.3 3.2.6 1.6.5 1.5.5 1.5.6 1.5.6 1.6.4 1.8-.1 1c0 .4-.3.8-.5 1l-.4.5-.5.3-.7.3-1 .1h-.8z"/><path fill="#EE3F26" d="M113.4 227c-.3 0-.6-.3-.6-.7l.1-.5v-.7h-.1l-.2-.3h-.1l-.6-.5-1.2-.8-1.1-.9a7 7 0 00-2.2-.9l-2-.4-1-.3-1.1-.4-2.3-.6-1.7-.2-1.8-.3-2-.3-2-.2h-2l-.3.1c-.7 0-1.4-.5-1.6-1.2 0-.8.4-1.5 1-1.7l.7-.1h.5l1.2-.1 2.2.1 2.2.3 1.3.2 1 .3 1.5.2c.6 0 1.1.2 1.7.4l1.8.6 1.4.6 1.4.6c.5.2 1.1.5 1.6.9.5.2 1 .6 1.3 1l1.2 1.2.5.5 1.2.9c.3.2.6.6.7 1a4 4 0 01.1 1.6c0 .3-.3.6-.6.6h-.1zm11.5-10.4a.9.9 0 01-.9-.8v-.9c.2-.3.3-.6.6-.8.2-.2.4-.4.7-.4.2 0 .5 0 .7.2a4.4 4.4 0 001 0l.4-.2v-.3c0-.4.1-.9.5-1 .2-.3.5-.4.8-.5l.4-.1.2-.1 1.1-.6 2.2-1 1-.3c.2 0 .4 0 .6-.2l1.2-.4a24.1 24.1 0 012.9-.8l1.3-.2 1.3-.3 2.8-.8 2.8-.6 2.8-.6 2.7-.6 5-1a151.4 151.4 0 001.9-.7l2.8-.9a30.4 30.4 0 003.2-1.2l.2-.1a26.1 26.1 0 011-.6h.2c.3-.1.5-.1.8 0a1.4 1.4 0 01.5 2.3l-1 .6-.7.4-1 .4-.8.3-1.8.5-1.5.5-1.8.6c-1.2.4-2.4.6-3.6.8h-.2l-.2.1-.8.2-2 .5a20.5 20.5 0 01-3.8.7c-.2 0-.5 0-.7.2-.5 0-1 .2-1.4.4a13.4 13.4 0 01-2.2.6 18.2 18.2 0 00-3 .8l-2 .5-.3.1-.4.5-.6.3-.8.4-1.6.6-2.1.8a111.2 111.2 0 01-6.3 1.8l-1.1.1-.1.2a1 1 0 01-.9.6zm-73.8.2a.6.6 0 01-.5-.6l-.4-.7h-.5c-.6-.4-.8-1-.6-1.6.4-.7 1-1.1 1.7-1.5l1.3-.8 1.4-.5 1.3-.5 1.2-.4 1.4-.6 2.4-1 2.2-1a40 40 0 012.4-1l2.2-.9 2.3-.7.7-.2c.5-.3 1-.5 1.4-.5.7 0 1.3.4 1.5 1.1.1.7-.2 1.4-.9 1.6l-.3.1-.4.2h-.2c-.4 0-.8.2-1.1.3l-1.3.3-.6.2-.7.3-1.2.5a55.7 55.7 0 00-3.9 1.6l-1.1.5-1.8.7c0 .4-.4.8-.8.9l-1 .4-1 .3-1.5.6-3.4 1.1v.2a31.7 31.7 0 010 .2c.2.2.4.4.5.8 0 .3-.3.6-.6.6zm129.4-29.6a1 1 0 01-.2-1.3v-.1a1.4 1.4 0 01.1-.3l.6-2.7.4-1.6.5-2.6v-.8l.1-.3c0-.4.3-.9.8-1 .7-.3 1.6.2 1.6 1v1.2l-.2 1.4-.4 1.5-.5 2-.5 2v.4c0 .2 0 .5-.3.7l-.5.4-.2.2-.6.2a1 1 0 01-.7-.3z"/><path fill="#8B8986" d="M147.3 246.5l1-.4-1 .4zm-44 29c-.6 0-1-.3-1.3-.8-.3-.5-.2-1.2.2-1.6l.5-.6v-2.2l-.2-.6c0-.1 0-.3-.2-.5v-.1l-.2-.3-.6-.5-.8-.5-.5-.4a5 5 0 01-.8-.6l-.3-.3c-.5-.7-.2-1.8.6-2.2.2-.2.5-.2.8-.3l.8-.1 2-.4 1-.5 1.1-.4 2.2-.8 1.3-.6 1.4-.5 1.6-.9 2-1 1.8-.8 1.8-1 3.8-1.9 1.9-1 1.8-.9 4-1.6 3.7-1.7 3.9-1.6 3.7-1.7 3.9-1.7 3.8-1.6 4-1.6 4-1.8c1-.5 2.2-1 3.4-1.3.1-.4.4-.6.7-.8h.2a23.9 23.9 0 012-1.3 29 29 0 013.6-1.7l2-.6 1-.4 3-1 2.3-1 2.8-1.2a33 33 0 016-2h.6l.6.1.7.7 1.1-.6 3.8-1.7 3.7-1.8 2.6-1.3 1-.5c.3-.3.8-.5 1.2-.7l.5-.3.7-.7.8-.7a21.6 21.6 0 001.7-2.2l1-1.6v-.1l.4-1.4.2-.8.1-1.5.3-1.4a23 23 0 01.6-4l.3-2 .4-1.9.7-4 .8-4 .3-1.8c0-.6.2-1 .3-1.6l.2-1.7c.2-.5.2-1 .3-1.6l.5-3.5.3-1.7.2-1.5v-.2l.2-1.3c.2-.6.3-1 .3-1.6l.4-3 .3-2.3.2-2.3v.2l.6-4 .5-2 .1-.3-.1-.1c-.2-.3-.3-.6-.3-1 0-.3.2-.6.4-.9l.8-.5.9-.3 1.4-.6 1.5-.5a61.9 61.9 0 012.2-.6l2.1-1 .2-.1.2-.1 1.8-.6 1.8-.7 3.7-1.7 2-1 .7-.2h1c.7 0 1.2.6 1.3 1.2v2.1l-.5 2-1 4c0 .7-.2 1.3-.4 1.9l-.8 4.5-.2 1.9a84 84 0 01-1.3 8.5l-.4 2-.4 1.9-.3 2.1-.7 4.1-.4 2.3-.5 1.9-1 4-1.2 4.3-1.2 4-1.3 3.8-.1.3c.2.2.3.4.3.7.2.5.1 1.2 0 1.7l-.1 1.3-.5 2.4v-.1l-.1.5-.5 1.7-.2.8a5.2 5.2 0 01-1.8 2.8l-.6.5-1.1 1.1-.2.3-.8 1.2-.6.6-.1.3-.6 1-1 1-1.3 1.4-1.2 1.2-1.4 1-2.7 2.4a12.7 12.7 0 01-1.6 1.2l-1.6 1-2.6 1.6-1.4.8-1.5.7-1.4.6-1.7.5-3 .8-2.7.9-1.6.4-1.4.3-1.7.6-1.8.6-1.8.7-4.2 1.7-2.7 1-2.7.7-1.6.5-1.8.7-3.3 1-3.5 1.1a76 76 0 00-8.5 3l-2.4.8-2.2.6a97.6 97.6 0 01-6 2.2l-2 .6-2 .7-1.3.6h.1-.4v.1l-.2.1h-.2l-.3.2-.5.3.1-.1-.3.1h.2-.3.2l-2.5 1.1a13.9 13.9 0 00-.4.2 52.7 52.7 0 01-6 2.5l-1 .3-1.5.7-1.5.6-1.4.4h-3.5l-.6.3h-.1a1 1 0 01-1 .9h-.1a1 1 0 01-.3 0l-.7.3-2.3 1.2-2.2 1.2-2.5 1.1h.2l-1.3.4h-.1a11.3 11.3 0 00-1.7.6c-.4.2-.9.4-1.4.4h-.2z"/><path fill="#EE3F26" d="M240.7 191.8a3.9 3.9 0 01-.7-1.1l-.4-.8-.2-.9v-.2l-.4-1.1a31.7 31.7 0 01-1.1-12.2v-.7a25.8 25.8 0 01.3-2.5l.2-1 .2-1.1c.2-.6.3-1 .3-1.7l.2-1.1.1-.4v-.5c.2-.3.2-.7.3-1.1a44.7 44.7 0 011-3.5l.5-1.2.6-1.7.3-.5.4-.9.3-.6.4-.7.2-.5.5-1 .4-.7.3-.7 1.1-1.6v-.1l.2-.3.6-.7c0-.2.3-.4.4-.6l.3-.4.2-.3.1-.1h.1a2 2 0 001.2-.5l.6-.6.7-.8.6-.7 1.1-1 .7-.7.6-.8.3-.4.3-.4.5-.4v-.1a6 6 0 011.9-2 19.3 19.3 0 013.3-2 39 39 0 012.3-1l1.9-.9h.3c.5-.4 1-.6 1.5-.8l1.4-.4h.2l.4-.2 2.8-.7h.7l2.4-.5h.1l1.7-.3.7-.2.9-.2a51.1 51.1 0 018.3-1h1.7l1.4-.1 2.1-.2h1c.7 0 1.3 0 1.8.3.4.2.8.5 1 .9a2.3 2.3 0 01.4 1.4 2.1 2.1 0 01-.8 1.6l-.3.2-.6.3h-.1l-.5.3h-.2l-.5.2h-.5l-1 .1a54.8 54.8 0 00-1.9.2l-1.7.4-.7.2a55.4 55.4 0 00-3.8 1l-1.2.4-2.4.9h-.2a44.2 44.2 0 01-2.8 1l-.8.4-1.2.4-1.7.9-1.2.5-1.4.7-.9.6-.2.1-1 .7-1.4.9-.2.2-1 .6-1 .7v.1l-.2.1-.6.5-1 1a34.4 34.4 0 01-2.8 2.8l-2.1 2.4-.2.2a58 58 0 00-4.6 6.6l-.1.2-.8 1.4-.7 1.7-.1.3-.8 2.1-.4 1-.5 1.6-.2.5-.7 2.1c0 .2 0 .3-.2.5l-.3.9-.4 1.3-.5 2.3-.3 1a33.4 33.4 0 00-.5 2.6v.6l-.4 1.6c0 .6-.2 1-.3 1.6l-.3 2-.1 1.3-.2 1.2v.2l-.2.5-.2.7-.6.6c-.2.2-.5.3-.8.3-.5 0-1-.2-1.2-.5z"/><path fill="#8B8986" d="M247.3 149.3c-.5 0-.9-.3-1.2-.6l-.4-.7-.5-1-1-1.7a25.4 25.4 0 00-3-3.7l-1-1-1.2-1-2.3-2-1.1-.9-1.2-1-2.3-1.9-1-.8-1-1c-.4-.2-.8-.4-1-.7l-1-.8-2.2-1.6-2-1.8-2-1.7-1.9-1.9-2.1-2.1-3-2.9-1.4-1.5-1.4-1.4-1.5-1.5-1.5-1.7-2-1.8-2-1.7-2.3-1.8-2.2-1.8c-1-.8-2.2-1.4-3.4-2l-2.5-1.4-1.3-.6-1.4-.7-1-.4-1.2-.5-.6-.2a36.6 36.6 0 00-5.5-.3H179.1l-.7.2-1.2.3h-1a12.5 12.5 0 00-2.1.6c-.4.2-.8.4-1.3.4a2 2 0 01-.8-.3l-.8-.8-.2-.3-.4-.5-.7-1.1a18 18 0 00-.7-1c-.3-.4-.5-.7-.6-1.1l-.5-.4-.2-.4v-.7c0-.2 0-.4.2-.6l.1.2h.5c.5 0 .7-.4.7-.8v-.2c.2 0 .4 0 .5-.2a6 6 0 00.3-.4l.6-.2c.2-.2.4-.3.7-.3l3.6-1a41.5 41.5 0 017-.8h3.7c.5.1 1.1.3 1.7.3l1.7.3 1.7.4 1.8.5c1.1.4 2.2 1 3.2 1.5l1.6.8 1.5.9 2 1 1.7 1.2 1.8 1.4.9.8.6.7 1 .9 1.1 1 2 2 2.6 2.3 2.7 2.3 2.6 2.5 1.3 1.2a46.7 46.7 0 003 2.4l1.5 1.4 3.2 3v-.2l1.7 1.8 1.8 1.8 1 1 1 1 1 1 1 1 1.3 1.4c.3 0 .7.2 1 .4l1.2.9 1 .7 1.7 1.4.8.6.4.4.4.5.7.7.8.9.7.7.2.2.2.2c.2.2.3.4.2.7l1 1c.3.1.5.4.7.6l.3.1 2 1.6a24.2 24.2 0 003.7 2.1c.3.3.6.7.7 1.2.1.5 0 1-.2 1.4a7 7 0 01-.4.4l-.6.8-.7.7-1 1-.7.7-.7.8-.6.7c-.3.3-.7.4-1.2.4z"/><path fill="#EE3F26" d="M180 159a.8.8 0 01-.5-.5l.1-.6v-.1l-.1-.6v-.2l-.4-.6-.1-.3a1 1 0 01-.3-.7v-.1l.1-.3c0-.6.4-1 1-1.1.4-.1 1 .2 1.2.7l.4.9.4.7.2.4.1.4.1.5a1 1 0 01-1.2 1c-.1.3-.4.6-.8.6h-.2zm52-20.8l-.6-.3c-.4-.3-.5-.8-.3-1.2 0-.2.2-.4.4-.5l.2-.2.2-.2.6-.4.7-.1c.4 0 .7.3.9.7.1.4 0 1-.4 1.2h-.1l-.4.4-.6.5h-.5z"/><path fill="#8B8986" d="M280.2 177.5l-.4-.6-.7-1a22.5 22.5 0 00-2.5-2.4l-1-1-1-.8-2-1.7-1.1-1a.6.6 0 01-.5-.2v-.2l-.7-.7a1.4 1.4 0 01.7-2.1l.2-.1.1-1c.1-.3.3-.5.5-.6.3-.2.6-.3 1-.3l.8.2.1-.1c-.2-.3-.4-.6-.4-1l.3-1a1.4 1.4 0 012 0l.4.2h.3l.5-.2h.5l.8.4.8.8.7.7h-.1.1v.1l.1.1.3.4.4.4 1 1 1 1 .2.1.9.8a24 24 0 011.7 1.6l.4.3.6.6 1 1c.4.3.8.6 1 1 .2.6 0 1.3-.3 1.8l-.8.8-.2.1-.3.2c-.3.1-.7.2-1 .5l-1 .9-.4.3-1.1.8a10.4 10.4 0 00-.6.4c-.3.2-.5.3-.8.3h-.1c-.6 0-1-.3-1.4-.8z"/><path fill="#1994BB" d="M161.7 97.1l-.3.2-.3.2.4-.2.2-.2zm-28.9 23.3h.4v-.1h.3v-.1h.2v-.1h.1l.1-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.2v-.1h.1v-.1h.1l.1-.1.1-.1.1-.1.1-.1.1-.1.1-.1.1-.1v-.1h.1v-.1l.1-.1v-.1l.1-.1v-.1l.1-.1v-.1h.1v-.4h.1v-.4l.1-.1v-.4h.1v-.4h.1v-2.7l-.1-.1v-.2l-.1-.2v-.2l-.1-.1v-.2l-.1-.2v-.1l-.1-.1v-.2l-.1-.1v-.1h-.1v-.2h-.1v-.1l-.1-.1v-.1h-.1v-.1l-.1-.1-.1-.1v-.1h-.1v-.1h-.1v-.1l-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1 1.5-1.2h.1c.8 0 1.4-.4 2-.8h.1l.7-.3 1.5-.5 1.5-.5.7-.2.8-.7 1.7-1.4 1.8-1.2 1.6-1 1.8-1 1.7-1a76.8 76.8 0 014.2-2.7l2.3-1.5 1.2-.8 1-.7a25.3 25.3 0 003.5-2.4l.4-.3a1.8 1.8 0 01.4-.2 1.6 1.6 0 011.8.4c.3 0 .6.2.8.4l.1.2c.2.2.3.4.3.7l.1 1.2v.2l.5 1 .8 1.4 1 1.3.3.6.5.8c0 .2.2.3.3.5l.2.5.2.3.1.3.2.4.1.6v.8c-.1.4-.4.7-.7.9l-1 .5-.3.1-.7.4h-.4v.1h-.1l-.2.1-1.3.5-1.3.5-1.4.6-1 .5-1.2.4-1.4.7-1.7.8h.1l-1.7.8-1.7.8-1.6 1-1.6.9-1.3.8-1.4.7a41.6 41.6 0 01-4.5 2l-1.1.5-1.5.7-1 .5-.4.3-.4.1-1.8 1-1.8.8h-.1a1 1 0 00-.5-.2h-1.4l-1.4.2h-1.6z"/><path fill="#EE3F26" d="M141.5 202.6a.6.6 0 01-.8-.4v-.5c0-.2 0-.3.2-.5v-.5l-.2.1-1.5.9-.5-.1a.4.4 0 010-.6l.9-1 .5-.6.5-.5 1.2-1 .7-.6.9-.7h-.2l-1.2 1c-.6.4-1.1 1-1.8 1.3a6 6 0 01-.9.5h-.5l-.3.3-.3.3-.5.2c-.2 0-.5-.1-.6-.4v-.5l.2-.5.4-.5.5-.5.9-.8-.3.1-.7.7-.2.2-.2.1-.4.1c-.4 0-.7-.3-.7-.7l.1-.6.4-.5.4-.6.9-.9.6-.6 1-.8.5-.4 1.1-.9 1.5-1a29.3 29.3 0 013.4-2.3 68.8 68.8 0 015.8-3.2l.6-.2.3-.2h.3l.2-.1c.2-.1.4 0 .6.1v.6l-.1.4h.3v-.1h.6c.3.2.4.5.2.8l-.6.6c-.2.2-.5.3-.9.4l-.4.3-2.1 1.2-.3.1-1 .7-2.5 1.9.1-.1 2-1.2 1.7-1 1.5-.7.7-.4.3-.1.6-.4c.1-.1.3-.1.4 0l.7-.3.8-.3h.5l.2.2v.3l-.2.3a10 10 0 01-.8.6l-.3.2.2.6-.3.6h.6v.6l-.6.5-.7.4-1 .7s-.2 0-.3.2l-.7.5-1.8 1.5.7-.4.6-.3.6-.3h-.1l.3-.1h.1c.2-.2.5-.3.7-.2.3-.1.6 0 .7.1.3-.1.8 0 1 .3.2.3 0 .8-.2 1l-2.8 2-1.7 1.3-2 1.5c-.5.3-1 .6-1.3 1l-2.1 1.5a3 3 0 01-1.1.4h-.5c-.2 0-.4-.2-.6-.4l-.1-.2-1.1.7h-.3a.8.8 0 01-.4-.2zm22.9-38.8c-.3-.1-.5-.3-.7-.6l.8-1 .1-.3.1-.1v-.2h.1l.1-.2 1.5-2.2 1.4-2.2.3-.5.2-.2.4.2 1.8-.4 1-.1.8-.2h.7c.2 0 .3.3.3.5-.1.2-.3.3-.5.2h-.2l-1.1.7-.9.5-.8.5a8 8 0 01-.7.3l-.2.2-.6.7.1-.1-.8 1.2-.8 1.1-.3.7v.3l-.1.1-.2.5c-.3.4-.8.7-1.3.7a1 1 0 01-.5 0z"/><path fill="#EE3F26" d="M149.6 181.6l-1.1 1-1.5 1.3-.5.5 1.8-1.3 1.2-.8.7-.4v-.8l-.6.5zm1 3.6v.5l.8-1.3-.8.8zm-16.4 9l-.2.2-.4.2h.5l.4-.7-.3.3zm1.4 9c-.2-.4 0-.8 0-1.2l.8-1.5 1.2-1.8-.7.6c-.3.2-.6.2-.8 0h-.1c-.2.2-.6.2-.8.1-.4-.2-.5-.6-.3-.9v-.1l.3-.7.4-.7 1-1.5h.1c-.2 0-.4.3-.6.4-.1.1-.3.2-.5 0h-.1l-1 1-.6.7c-.2.2-.6.2-.8 0a.7.7 0 01-.3-.8l.5-1h-.1l-.7-.2c-.4-.1-.6-.4-.8-.8h-.2a1.5 1.5 0 01-1.2-.7l-.3.2c-.5.1-1 0-1.3-.4-.3-.3-.4-1-.1-1.4l.2-.3c0-.3.2-.7.4-1a8.3 8.3 0 012.8-1.5l.3-.2a11.5 11.5 0 011.9-.9l.7-.3h.3l.2-.2h.4l2-1.6h-.1l1-.7 2-1.4.7-.5 1-.6.4-.3.3-.2.5-.4.7-.5 1.5-1 .8-.7.3-.2.7-.4 1.3-.9.8-.6.7-.3 1.4-.9.2-.2.8-1 .8-.7.4-.4 3-3.6.1-.1a22.3 22.3 0 003.5-3.6l.1-.2.2-.1.5-.6 1-1.1 1.2-1.3.7-.8 2-2.2.6-.8 1-1.3.7-.8a64.3 64.3 0 011.3-1.7c.3-.1.7 0 1 .2l.2.5.3.7c.2.4 0 1-.5 1.1a1 1 0 01-1-.3l-.5.6-.3.4h.4c.4.1.6.6.6 1l-.1.4-.5.7-.3.4a29 29 0 00-1.2 1.1c0 .2-.2.3-.3.5l-.2.1c.3.2.3.6.2.9 0 .1-.1.4-.3.5l-.6.6-.6.7-2 1.8-1.5 1.5-1.1 1-.3.3-.8 1c-.6.5-1.1 1.1-1.6 1.8l-2.6 3-1 1.4-1.2 1.4-1.4 1.9v-.2l-.4.7-.1.1a1 1 0 01-.6.5h.1c.2 0 .3 0 .5-.2.4-.1.7 0 .9.2l.2.3.1.3v.7c0 .6-.3 1-.6 1.5l-.6 1c.2 0 .4.1.4.3.2.3 0 .6-.1.8l-1 1 .3-.1c.3-.1.7 0 .9.2.2.3.3.6.1 1l-.3.7-.5.6-1.2 1.2-2.1 2-1.6 1.7-2 1.8c-.6.7-1.2 1.3-2 1.9l-1 1-1.7 1.3a12.9 12.9 0 01-.6.5c-.2.2-.4.4-.6.3a1 1 0 01-.5-.1.7.7 0 01-.3-.5v-.6l-1.3 1.2c0 .2-.2.3-.3.4l-.3.3H136.2c-.3 0-.5 0-.6-.2zm-30.8 2.8c-.3 0-.5 0-.8-.2-.8-.5-.8-1.9 0-2.4l.9-.6 1-1 1.4-1 1.6-.6 1-.5.6-.4.8-.9h-1.8l-1.3-.1h-1.3l-1.3-.2h-1l-1-.1-1.3-.3a226.8 226.8 0 01-3.5-.8l-1-.3H97l-.9-.2c-.2 0-.4 0-.7-.2-.3-.1-.6-.5-.9-.7l-.2-.3c-.3-.4-.3-.9-.2-1.3.1-.4.4-.7.7-.9h.1l.1.1 1.4.6 1.6.5 1.6.4 1.6.3h.4l1.6.2.9.3h.3l.3-.1h.4a15.5 15.5 0 00.7 0h.1l.5.1h4.4l3-.2h.8l.8.4.4.2h.1l.3.1h.2l.7 1.6.3.7-.3.3-.5.3h-.5l-.4.1v.2h-.1l-.3.8-.7.5-1.1.5a5 5 0 00-.6.3l-1.8 1.2-1.4 1.1-.9.7-.3.3c-.2.6-.7 1-1.4 1l-.7.3-.9.2H104.9z"/><path fill="#90D8F7" d="M43.6 71.5c-.5 0-1-.4-1.2-.9h-.3l-.7-.1-.4-.2h-.2l-.2-.1-.4-.2h-.1l-1-.5-.3-.2-.2-.2-.4-.2-.3-.2-.6-.3-.3-.2-.4-.3-.7-.3-.6-.3h-.1l-.7-.4-.5-.5-.3-.2a4 4 0 01-.5-.5l-.1-.2-.2-.1-.4-.5-.2-.3-.1-.2-.1-.2-.3-.4-.3-.9v-.3l-.1-.4-.1-.3-.2-.6-.1-1a16.5 16.5 0 010-2.3l.2-1.1.3-.7V56l.1-.2.3-.5c.1-.4.3-.7.6-1l.5-.5.5-.5a2.5 2.5 0 012.3-.3l.6-.2h.2l.3.1h.4l1 .4c.2 0 .3.2.5.3l.2.2 1.1.7 1 .5 1.4 1 1.2.8.7.5h.1l.1.1.3.2.3.2.7.5.1.1.4.2c.3.2.4.6.5 1 0 .4-.2.7-.6 1l.1.3v3.8l-.3 1.7v.4l-.3 1.7a8.7 8.7 0 01-.8 1.9c0 .2-.2.5-.4.6-.3.3-.6.4-1 .4zm81.8 133.8h-.4l-.3-.1h.2l1-.1c.3 0 .7-.2 1.1-.4l1-.7c.2 0 .3-.2.4-.3l-.2.3-.7 1a2 2 0 01-1.2.4h-.9zm17.4-153.2c-.2.2-.2.4-.2.7h-.5a10.4 10.4 0 00-1.4.7l-1 .7-.7.6-.3.4-.1.3-.1.1-.1.2a4 4 0 00-.4 1v.5l.2.8.8 1.2c0 .2.2.4.4.6l.3.5.8 1.3.8 1.5a58 58 0 011.5 3 1.8 1.8 0 00.9.2h.5l.7-.5.5-.5h.1l.2-.2.5-.2a8 8 0 001.4-.8l.6-.3.4-.2.6-.4.1-.2.3-.5v-1.1l-.7-1.2-.4-.6-.6-1-.9-1.6-.4-.7-.3-.6c-.3-.8-.6-1.6-1.1-2.3l-.5-.7-.3-.4a2 2 0 00-.6-.5h-.4c-.2 0-.5 0-.6.2zm21 56l-.7.3-.6.2a33.4 33.4 0 00-3.6 1.5l-2.5 1.3-1.3.7-1 .6-.3.3 1.4-.6 3-1.1 1.4-.7 2-1 1-.5.8-.5 1.3-.7.6-.3-.6.2-.5.3H163.9zm-41.2 4.3c-.3 0-.5.2-.7.3l-.2.2-.4.2-.2.2c0 .2 0 .5.2.6l-.1.5v2.9l.1.7c0 .3.3.6.4.9l.3.8.4.5c.1.3.3.6.6.8l.5.2.8.1h.8l1.2-.4 1-.4 2.3-1a13.5 13.5 0 001.9-1.2l.4-.4.6-.4.7-.6c.3-.2.5-.6.7-1l.4-.5.2-.5v-.3l.1-.4.1-1v-.6l-.1-.4c0-.2-.1-.5-.3-.7l-.3-.4-.6-.5-.5-.1a4 4 0 00-1.1-.2l-1.8.2-.8.2-1 .2-1.5.5-1.2.4-1.1.4c-.5 0-1 .2-1.3.3h-.5zm-15.2 83.1h-1.6l-1.4-.2-3.2-.4-1.6-.3-1.6-.3-1.6-.6c-.5-.1-1-.4-1.4-.6l-1.4-.6-1.4-1c-.3 0-.5-.3-.8-.5l-.8-.6v.1l-1.4-1-1.2-.8a11 11 0 00-.8.7l-.1-.6v-.4c0-.5-.3-1-.7-1.2l-.8-.7c-.2-.3-.6-.5-.9-.7a14 14 0 01-2.5-2.5l-.5-.6v-.4l-.4-.4-.4-.2h-.2l-.3-.5-1.1-1.8c-.5-.7-.8-1.5-1.2-2.2v.2l-.8-1.6-.7-1.4-1.3-2.9-.8-1.7-.6-1.6-.6-1.5-.6-1.5-1-3-1-3-.8-3.3-1.4-5.8-.6-2.2-.5-2.5a86 86 0 01-.6-2.3l-.5-1.4-.4-1.5-.4-1c0-.4-.2-.7-.3-1v.1l-1-2.6-1-2-1-2.1a119.4 119.4 0 01-1.3-1.8l-.7-1a60.3 60.3 0 01-1.3-2.2l-.5-1v-.3c-.3 0-.5-.2-.6-.3-.4-.4-.5-1-.3-1.5l.6-.2 1-.6.7-.5.8-.7.1-.1.7-.3.8-.5 1.4-.9.2-.2.4-.5.6-.6v-.1l.3-.5.3-.6.1-.2.3-1v-.2a33.4 33.4 0 00.1-4 44.4 44.4 0 00-.8-3.5 19.9 19.9 0 00-1.4-3.5l-1.3-2.7-.7-1.4-.7-1.4-1.5-2.8L59 95l-.7-1.4-.8-1.7-1.2-3a47.1 47.1 0 01-2-6.1l-.7-3c0-.6-.2-1.1-.3-1.6l-.3-1.5-.2-1.5-.3-1.7a21.6 21.6 0 01-.2-6.5l.2-1.6.4-3.2a15.4 15.4 0 01.8-3.1l.4-.9.3-.7.7-1.4 1.4-2.7a16.2 16.2 0 011.2-1.4l1-.8h.3c.6-.3 1.4-.4 2-.6l1.6-.5 1.8-.3 2-.4.2-.2.2-.1 2.5-.6 1-.3.8-.4h.5l.2-.1-.6.7-1.3 2.2-.8 1.6-.8 1.6a23.7 23.7 0 00-1.8 3.6 18.2 18.2 0 00-1 2.7l-.4 1.5a34.4 34.4 0 00-.9 8.5l.1 1v1l.4 1.7.6 1.9.7 1.6.6 1.4v.1a34 34 0 001.6 2.7l1 1.2 1 1 .7 1.1.8 1.5a17.8 17.8 0 002.3 3.2c.5.5 1 .8 1.6 1.2l.9.7.8.5 1 .8 1.2.5 1 .5.9.2 1.5.4 1.4.2 1.5.2h4.4l1.6-.2a21.3 21.3 0 002.3-.3c.2 0 .5 0 .8-.2l.6-.1 1-.1.6-.2.6-.1a7.2 7.2 0 001.8-.5l.7-.1h.1a2.7 2.7 0 00.7 0 7.4 7.4 0 001.8-.5h.7l1.1-.5.7-.3.3-.1 1-.5.7-.4.6-.2c.1 0 .3.1.4 0l.5-.2h.3l.2-.3.2-.2.1-.2.8-.6.4-.2a8.7 8.7 0 002-1.8l1.3-1.5c.4-.5.7-1 1.2-1.4l1.2-1.5 1.2-1.3a28.6 28.6 0 001.8-2.5l.5-1c.4-.7.6-1.5.8-2.3l.3-.9.1-.6.2-.8.3-1.3.2-1.5v-2.7l.1-1a11.5 11.5 0 00-.2-3.5c0-.7-.2-1.4-.4-2.1l-.5-2.1c0-.8-.2-1.6-.4-2.3l-.5-2.3a43 43 0 01-.8-2.4l-1.1-2.3v.2l-.8-1.5L116 47a14 14 0 00-1-1l-.3-.5a4 4 0 00-.5-1l-.3-.4-.6-.7-.4-.4-.3-.3-.6-.5-.8-.5-.2-.1-.7-.5-.6-.4a4 4 0 00-.7-.4 4 4 0 01-.5-.2l-.6-.4-1.2-.4-1.1-.1-1.6-.4h-.1l-.6-.2c-.4 0-.7-.2-1-.3l-1-.3-.8-.3-1-.3-.2-.1v-.6c-.4-.5-1-.8-1.6-.5l-.3.2.3-.3.6-.5.6-.5 1.4-1.3.7-.6.7-.6 1.4-1.2 1.5-1.2 1.6-1.5 1.4-1.2 1.7-1.4-.1.1 1.1-1 1-1 1.2-1c.2 0 .3-.3.5-.4l.4-.4.3-.2.7-.8a3.5 3.5 0 011-.6l.6-.3h1.1l1.3.3 1.2.4 1 .5 1.8.6 1.5.8 1.6 1 1.5 1 2 1.5 1 .9 1 .8 1.7 1.6c.4.3.8.7 1 1.1l.7 1.1.7.9.6 1 .6.9.7 1 1 1.3 1.3 1.5.6.7c-.2 0-.2.1-.3.2l-1 .7-1 .6-.8.7-1.2.8-1 .7-.5.3-1 .4v-.2h-.1c-.3-.3-.6-.5-1-.5h-.1c-.4 0-.8.1-1 .4-.4.3-.7.7-.9 1.1l-.2.7-.3 1-.4 1.4v1l-.2 2.2V53l.2 1.3.2 1 .3.7c0 .3.2.5.4.6.5.7 1.3 1.2 2 1.4h1.6c.3 0 .7 0 1-.2l1.4-1c.6-.5 1-1.2 1.6-1.8l.6-.6a15 15 0 011-1l.3-.3.6-.3.7-.1.5-.2c.3 0 .5-.2.8-.3l.6-.2.7-.2.6-.3.4-.2 1-.5.7-.5v-.1l.2-.2h.2v-.1l.5-.6h.2l1 1 .6.8.7.8.6.8 1 1.2.9 1.4.5.6c0 .2.2.4.4.6l.7 1.4 1.2 2 .5.7.7 1.1.6.6 1 1 .6 1 1 1 .7 1 .6.7.7 1 .3.3.3.7.2.6.5 1.6c0 .4.3.8.4 1.3l.2.6c0 .5.2 1 .5 1.4l.8.5h.3l.6-.1.3-.2-.4.5-.7.9c0 .3-.3.6-.6.7l-.1.3.1.7.2.4.5 1c0 .4.2.6.4.9l.4 1 .6 1.3.5 1.3.5 1.3.4 1.4v-.2.3l.1.1.4 1.4.3.7.2.7.3.8v.3l.1.1.5 1 .2.9v.4c0 .5-.3.9-.7 1-.4 0-.7-.3-.9-.6l-.2-.3-.6-.7-.6-.5-.7-.6-.5-.4-.7-.2h-.5l-.5.1-.7.4-.3.3-.2.1-1 .8-1 1c-.5.3-1 .6-1.3 1l-1.4 1-1.5 1.1-1.6 1.1-1.4 1-3 2-3.2 1.8-1.5 1-1.5.7-1.1.7-.7.3-.6.4-1.4.7-1.4.6-1.2.7-1.5.7-1.2.7-.8.4-.8.4-.1.2 1 .7c0 .2.3.3.4.5.3.3.5.6.6 1l.2 1.3v.5c0 .2 0 .5-.2.8l-.2.5a5.1 5.1 0 01-.6 1.3l-.8 1.1-.8.9-.7.8v.7l.3.4v.1l.7 1 .4.6h.5l.5-.1.3-.2a20.3 20.3 0 002.9-1l-.2-.2h.2l1.7-.9 1.8-.9.4-.1-.8.4h.2l-1.4.8-.7.4 1.5-.7 2-1 2-1a70 70 0 012-.8l.5-.2.8-.5 1-.5-.6.2-.7.3 2.8-1.4 1.4-.7 1.3-.8 1.6-1 1.6-.9 1.6-.8a25 25 0 011.8-.9h-.1l1.6-.7 1.5-.6 1-.5 1.2-.5a38.3 38.3 0 012.6-1l1.4-.6h.1l-.2.1-.3.3-.3.2-2 1.1 2-1.1.3-.2.3-.3c.3-.2.7-.4 1.1-.4.5 0 1 .3 1.2.7l.3.6v1l.1.6v1.5l.1 1.5.1 1.7v3l-.1 1.6v12.8l-.5 6.7-.2 2v.2l-.1.8-.1 1.7-.1 1.4-.2 1.7v1.7l-.4 3.3-.1.8a8.5 8.5 0 01-.4 1.4c.3 0 .5-.1.8 0 .7 0 1.4.5 1.4 1.3.1.7-.4 1.4-1.1 1.6h-.7l-.4.2-.3.1-.5.8-.6 1.1-1.4 2.2-1.5 2.3a41.8 41.8 0 01-2.5 3.3l-.8 1.2-1 1.3-1.1 1.2-1.2 1.2-1.3 1.2-1.2 1.1-2.5 2.3-.8.7-1 .8-.8.8-.8.8-2 1.5-1.7 1.3-1.1 1-.6.5c-.2 0-.4.2-.6.4l-1.2.8-1.2.9-1.2.8-1.4.9-.7.3-.7.4c-.3.3-.8.4-1.2.7l-1 .6-.9.5-1 .6-1 .6-.9.5-.8.4-.8.5c-.3 0-.6.2-.8.3l-.7.4-.5.1h-.4l-.2.2v-.1l-.5-1v-.2l-.3-.7-.4-.7-.6-.9-.6-.4-.8-.1h-.2c-.3-.1-.6 0-.8 0l-1 .6h.1a21 21 0 00-2.4 1.7l-1.2.8-1 1-.6.6-.4.5v.1l-.3.3a3 3 0 00-.2.5l-.2.3-.3.1v.4l.3.7-2.2.1-3 .2h-1.6l-1.6.1h-.2z"/><path fill="#90D8F7" d="M86 42.5l1.5-.6 1.5-.5 1.5-.6.3-.2 1-.4.7-.3 1.1-.6 1.1-.8-.4.4-.8.5-1 .6a22.8 22.8 0 01-3.7 1.7h-.1l-1.8.5-1.1.3h.1zm-8.2 151.3a11 11 0 01-2.7-2.8 3 3 0 01-.3-.8c0 .2.2.3.3.5l.7.7.6.3.2.4.5.6c.2.4.4.8.8 1a3.2 3.2 0 00.9.5l.3.2c-.5-.1-.8-.4-1.3-.6zm3.7.1l.4-.2-.9.5-.4.1c.3 0 .6-.3.9-.4zm-3.8-9l.6-.7a11.3 11.3 0 011.2-1.1l.1.3-.7.6-1.2 1-.8.7.8-.8zm37.8 9.3l-.2-.1c-.1-.2-.2-.6 0-.8.1-.2.4-.3.7-.2l.2.1-.1.4-.1.3c-.2-.1-.4 0-.4.1v.4l.2.3a6 6 0 00-.3-.5z"/><path fill="#FCDFD3" d="M169.4 154.6a.8.8 0 010-.7c0-.2 0-.4.2-.5l.2-.3.1-.1c.1-.2.3-.3.5-.3.3 0 .5.1.7.4h.2l.2.6c0 .2-.1.5-.4.6l-.1.1c-.1.4-.5.7-1 .6a.5.5 0 01-.6-.4zM132.1 58c-.8-.2-1.6-.7-2.1-1.4l-.4-.6-.2-.7-.3-1-.1-1.3V48.7a36.7 36.7 0 01.5-2.5l.3-1 .3-.6c.2-.5.5-.8.8-1.1.6-.6 1.6-.5 2.2 0v.2l1-.4.5-.2 1-.7 1.2-.7v-.1l.9-.7 1-.6.9-.8 1-.5 1.6-.7.9.2h.6l.3-.1h.7l.5.1.8.2h.4l.8.2h-.2.3c0 .2.2.2.3.3l.8.3.1.1.3.3.3.5a7.5 7.5 0 01.5 1.5 15.3 15.3 0 01-.2 3.3v.4l-.8 1.7-.5.8-.6.7a7 7 0 01-1.4 1.5l-.7.5-1 .5-.4.2-.6.3-.7.2-.6.2-.8.3-.5.2-.7.1-.6.3-.4.3a6 6 0 00-.9 1 8 8 0 01-.6.6l-1.6 2-1.4.9-1 .3h-.4a9 9 0 01-1-.1zm32.3 17c-.4 0-.6-.3-.9-.6l-.5-1.3-.1-.6-.5-1.3a40.7 40.7 0 01-.6-2.2l-.4-.8-.5-1.6v-.2l-.1-.2-.5-.4v-.2l-.1.1h-.2l.1-.2c-.4-.4-.6-1-.3-1.5a1.2 1.2 0 011.6-.6l.4-.5a16.7 16.7 0 012.4-3l.9-.7 1-.8 1-.7 1-.4c.4-.2.9-.2 1.3 0 .2 0 .4.1.5.3l.3.6.2.5c.2.3.3.8.3 1.2l.1 1.2c.1.5 0 1 0 1.6v.6l-.2 1.2-.3 1.3-.4 1.2-1 2.4-.6 1-.6 1-1 1.6-.6 1-.5.5c0 .2-.2.2-.4.3l-.6.2h-.2zm-40.9 46.2a2 2 0 01-.5-.2 2 2 0 01-.7-.8c0-.2-.2-.4-.3-.5l-.3-.9-.4-.8v-.7l-.2-.7v-2.2l.2-.5c-.2-.1-.3-.4-.2-.6l.2-.2.4-.2.2-.2c.2-.2.4-.2.7-.3h.5l1.3-.2 1.1-.4 1.2-.4 1.6-.5.9-.2a22.4 22.4 0 012.6-.4c.3 0 .7 0 1 .2l.6.1a1.6 1.6 0 01.6.5l.3.4c.2.2.2.5.3.7v.4l.1.6v1l-.1.4-.1.3-.2.5-.4.6a4.7 4.7 0 01-1.4 1.5l-.6.4-.4.4-1 .6-1 .5-2.1 1.1-1.1.4a6.5 6.5 0 01-2 .4 3 3 0 01-.8-.1zm-44.7 73l-.3-.1-.6-.4c-.4-.2-.6-.6-.8-1l-.5-.6-.2-.4a3.7 3.7 0 01-1.9-2c-.2-.6 0-1.2.4-1.7.4-.7.9-1.3 1.5-1.9l1.3-1 1.2-1 .7-.7a1 1 0 01-.1-.6l.1-.5c.3-.5.8-.8 1.4-.6l.3.2.4.4v.4l.5.6 1.6 1.8 1 .7.9.7.8.7c.4.3.7.7.6 1.2l.1.7V188.8l-.1 1-.5.5-.8.7-1 .7-1 1-.9.6-1.4.6-1.1.5h-.5c-.4 0-.8 0-1.1-.2zm45.9 11c-.5 0-1-.2-1.6-.4l-1-.7-.4-.3-1-.8-1.1-1.2a14.2 14.2 0 01-1.4-2l-.5-.7-.4-.9-.4-.7-.6-1.5-.6-1.6c-.1 0-.2-.2-.1-.3 0-.3.2-.3.4-.2v-.3l.3-.5.3-.3.5-.6.5-.6 1-1 1.2-.8 1.2-.9 1.2-.8 1-.6h.7a1.2 1.2 0 01.2 0l.9.1c.2 0 .4.2.5.4.3.2.5.6.6.9l.4.7.3.7v.2l.5 1 .3 1c.3.3.5.8.7 1.2l.7 1.8.4 1.2.4 1.4v.7l.2 1c0 1-.2 2-.7 2.8l-.8 1-.5.4-1 .7-1.2.4h-1z"/><path fill="#fff" d="M152 53.4c-.5-.2-.7-.6-1-1l-.4-1-.1-.3-.6-.9-.4-.5-.1-.3c-.3-.3-.5-.7-.4-1l.2-1.2V47l.2-1.2v-.6a52 52 0 00.2-3.8l-.3-.6c0-.2 0-.3-.2-.5v-.1l-.2-.2-.4-.4h-.1l-.8-.4-.3-.2-.2-.1-.6-.2h-.5c-.3 0-.5 0-.8-.2l-.5-.1h-1.6c-.4 0-.8 0-1.1-.3-.4-.4-.5-1-.7-1.5l-.4-.7-.7-.8-.4-.4c-.2 0-.3-.2-.4-.3a9.8 9.8 0 00-1.4-1l-.4-.2a12.3 12.3 0 00-1.9-.6h-.2l-.7-.7-.5-.9-.5-.7a25.6 25.6 0 00-1.8-2.5l.1.1a9.9 9.9 0 00-.2-.2 37.4 37.4 0 01-2.3-2l-1-.9-.8-.6a8 8 0 00-.6-.4 22.9 22.9 0 00-2.4-1.5l-1.2-.6-.7-.3-1.1-.5c-.2 0-.3 0-.5-.2-.4.2-.9 0-1-.3v-1c0-.3.1-.7.3-1 0-.5.2-.8.3-1.2l1-2.4.6-1 .8-1.2 1.5-2 .8-1 .8-1 1.9-1.8 2-1.6 2.2-1.5h.1c.8-.5 1.7-.9 2.5-1.2l1.5-.4 1.3-.2 1.4-.2h1.2l1.9-.2 1 .1c.5 0 .9.2 1.3.3h.1l.9.1.6.2 1.1.4 1 .4 1.3.5 2 1.4.9.8.9.7.6.3.5.5.8.4 1 .9.6.5 1.1 1c.4.2.7.6 1 1l.8 1.2.8 1.4.7 1 .7 1.2 1.2 2.5.9 1.4.7 1.4a6.8 6.8 0 01.8 2.3l.4 1.6.7 3.1v.8l.1.8V32c0 1 0 1.8-.2 2.8-.1.9-.4 1.8-.7 2.7l-.4 1.2-.5 1.4a36.7 36.7 0 01-3 5.3l-1 1.4-1.4 1.7-1.6 1.4-1.3 1-1.4 1-.5.5a26.1 26.1 0 00-1.3.8l-.3.1-.3.2h-.5l-.6-.1zM88.6 94.7h-2.9l-1.5-.3-1.4-.1-1.5-.5c-.3 0-.6 0-.8-.2a18 18 0 01-1-.4l-1.3-.6-1-.7-.8-.6-1-.6-1.5-1.2-1.3-1.6-1-1.6-.7-1.5-.8-1-1-1.1a28.2 28.2 0 01-1.9-2.6 13 13 0 01-.6-1.3v-.1l-.7-1.5-.7-1.6-.6-1.8-.3-1.8v-1l-.1-.9v-1.9l.1-1.9.2-1.9.5-2.8.4-1.5.5-1.4.5-1.3a64.4 64.4 0 011.9-3.7l.7-1.5.9-1.6 1.3-2.3.5-.6.4-.1.7-.2c.3 0 .7-.2 1-.4l.4-.1 1-.3 1.2-.5 1.8-.8 2.1-.9.7-.2h-.2l1.1-.4 1.2-.4 1.9-.6 2-.6a85 85 0 011.6-.5h.2a32 32 0 003.6-1.6l1-.7c.4-.1.6-.3.9-.5l1-.9 1.2-.9c.2 0 .3-.2.4-.3l.8-.5c.6-.3 1.2 0 1.5.4.1.2.2.4.1.6l.3.1.9.3.9.3.9.3 1 .4.6.1h.1l1.6.4 1.1.2 1.2.3.6.4.5.3.7.3a7.7 7.7 0 011.3.9l.2.1.8.5.6.6.3.2.4.4.6.7.4.5a3.9 3.9 0 01.6 1.5l1.1 1 1.2 1.2.9 1.4-.1-.2a16.3 16.3 0 011.6 3.5l.3 1.2.5 2.3.4 2.3.5 2.1a30.2 30.2 0 01.7 4.4v1.1a14 14 0 00-.1 2.5v1.5l-.3 1.5-.3 1.3a11.4 11.4 0 00-.3 1.3l-.3 1-.7 2.2-.6 1-.5.8-1.3 1.7-1.2 1.4-1.2 1.4-1.2 1.4-1.3 1.5-1 1-1 .8-.4.2-.8.6-.1.2-.1.3-.3.1-.2.1h-.1a3 3 0 01-.5.3h-.4c-.2 0-.4 0-.6.2l-.7.3-1 .5-.3.2c-.2 0-.5.1-.7.3l-1 .4H102.7l-.6.2a7.6 7.6 0 01-1.6.4h-1.1l-.7.3-1.1.2-.5.1-.6.2-1.1.1a6 6 0 00-.6.2l-.8.1a26.9 26.9 0 00-2.3.3 19.2 19.2 0 01-3.1.3v-.1zm54.8-28.3l-.6-.3c-.4-.2-.5-.6-.7-1l-.1-.5-.7-1.4-.8-1.5a44 44 0 01-1.1-1.9l-.4-.5-.8-1.2c-.1-.2-.3-.5-.3-.8v-.6l.5-1 .1-.2.2-.3c0-.2.2-.3.3-.4l.7-.6 1-.7.8-.4.6-.2.5-.2c0-.2 0-.4.2-.6.2-.2.6-.4 1-.2l.6.5.3.4.5.7c.5.7.8 1.5 1 2.3l.4.5.4.8.8 1.5.7 1 .4.7c.2.3.5.7.6 1.1.1.4.2.8 0 1.2 0 .2 0 .3-.2.4l-.1.2a138.3 138.3 0 00-1 .6l-.6.4-.7.4a5 5 0 01-.7.4l-.5.2-.2.1-.1.1-.5.4-.8.5h-.7z"/><path fill="#9F94A4" d="M131.7 44a3.4 3.4 0 01-1.1-.5l-.5-.5-.6-1-.3-.7a5.3 5.3 0 010-1.7c0-.5.2-1 .4-1.4.2-.6.4-1.2.8-1.8l.5-.6.9-.9 1.4-1 1.5-.4a3 3 0 011-.2h.7a3.9 3.9 0 011.4.4c.5.2 1 .5 1.3.9.2 0 .3.2.5.3l.4.6.6.8.3.8.3 1v-.2.8a1.1 1.1 0 01-.7.7l-.4.3-.5.3-1 .4c.1.3 0 .5-.3.6-.3.1-.5 0-.7-.2l-.9.4-.5.3-.3.3-1 1.1-.2.2-.2.2-.3.2-1 .4-.5.1h-1z"/><path fill="#fff" d="M69 40l.5-.4-.5.4zM42.4 70.6c.2.5.7.8 1.2.9h.1c.4 0 .7-.1 1-.4.2-.1.3-.4.4-.6a15.6 15.6 0 00.7-1.9c.2-.5.3-1.1.3-1.7v-.4l.3-1.6v-1.6l.1-.5v-2.1a1.2 1.2 0 000-2c-.2 0-.3 0-.4-.2H46l-.7-.6-.3-.2-.2-.1-.2-.1-.1-.1-.7-.5-1.1-.8h-.1l-1.4-1-1-.5-1.1-.7-.2-.2-.5-.3-1-.3H37l-.3-.2h-.2a1 1 0 00-.6.2h-.4l-.6-.1h-.4a2.4 2.4 0 00-1.4.8l-.5.6a4 4 0 00-.7 1l-.2.5v.2l-.4.9-.2 1v.1a15.4 15.4 0 000 3.2l.1.6.1.3.1.4v.4l.4.8.2.3v.1l.1.2.1.2.2.3.4.4.1.1.1.2s.2 0 .2.2l.5.4.3.2.5.5.7.3.7.4.7.3.4.3.3.2.6.4h.2l.5.4h.1l.4.3 1 .5h.1l.4.2h.2l.2.1.4.2.6.1h.4zm12.5 53l-2-.6c-1-.4-2-.6-3-.8l-1.7-.4-1.4-.3-1.2-.3c-.5 0-1-.2-1.4-.4l-2.4-.7L37 119c-.4 0-1-.1-1.4-.3-.2 0-.4 0-.6-.2h-.1l-2.3-.9-2.3-1c-.3 0-.7-.3-1-.4a552.4 552.4 0 00-3.3-1.6l-1.1-.5-1-.6-1-.6-1-.6-1-.6-1.2-.7-.8-.7-.4-.8v-.5l-.2-.5-.3-1-.4-1.6-.4-1.8-.5-1.8a27.7 27.7 0 01-.4-1.9l-.3-1-.3-1.4-.1-.5-.5-1.3-.1-1.4-.2-2v-.1l.2-.1 1 .1.3.4.5.7.4-.1h1.1c.3 0 .6 0 1 .2h.6l.8.2h.9l1 .1H24l1.5.1h1.2a19.2 19.2 0 002.6.2h1.6c.6.1 1.1-.1 1.5-.6h.3l-.2-.3v-.1c.3-.7 0-1.6-.8-1.8l-1.3-.6-.4-.2-.6-.4.1.1-.9-.6h.2l-1-.6-.2-.2-1.4-1.5-1.5-1.4-1.2-1-2-1.2c-.4-.4-.9-.8-1-1.3a2 2 0 010-1.2l.7-1.3 1-1.5.5-.9c0-.3.2-.5.3-.7l.3-.6.6-1.2.7-2 .4-.7.3-1 .7-1.4V70l.3-.7c.3-.3.4-.8.3-1.3l.1-.7.1-1.5v-.4h-.1v-.1h-.2l-1.6.7-1.1.5-1.2.5a37.3 37.3 0 01-4.5 2l-4.5 2-.7.3-.8.5a4 4 0 01-2 .6l-1-.1-.9-.6-.7-.6a21 21 0 01-.7-.6l-.9-.7-.6-.7a14 14 0 00-.9-.8l-.7-.7c-.2-.3-.5-.4-.8-.6a1 1 0 00-.4-.2c-.4-.4-.8-.9-1-1.4L1 64.2l-.5-1.5c-.1-.6-.2-1.3-.1-1.9l.2-2 .4-2 .4-2 1-4 .6-2 .6-2L4 45l.5-1.7.6-1.6L6 40l1.3-3.2 1.3-3 .1-.2h.2l.4-.1c0-.2.2-.3.3-.4a9.3 9.3 0 01.7-1l.6-.8 1.5-2 .5-.7.6-.7 1.4-1.7 1.4-1.6 1.6-1.7.7-.7a24.3 24.3 0 011-1.1c.1-.1.2-.3.1-.4l1-.7a143.7 143.7 0 013.5-2l2.5-1 1.5-1 1.7-1 1.7-1 1.8-1 1.8-1.1 1.9-1 1.8-.8 1.8-.7 2-.7 1.9-.7a255.2 255.2 0 015.8-1.9l2.1-.5 2-.3 1-.1 1-.1h.3l1.1-.2h1.4l2.6-.1 1.8-.3h1l.8-.2 1.9-.3.8-.1.9-.1 1.7-.1 1.9-.1h2.2a50.7 50.7 0 013 0l1.8.2h2l1 .2 1 .2 2 .3 1.9.3c1.3.2 2.5.6 3.7 1.2l3.5 2 1.6 1 1.5 1.2.4.3 1 .7.8 1 .6.5.6.7.4.4.2.4a2 2 0 01-.1 1.8l-.4.4-.6.6-.6.6-.6.5-.9 1-1 .9-2 1.6-3 2.4-.9.7-.8.6c-.3.2-.5.5-.8.6l-.8.6a41.5 41.5 0 00-5.3 4.3L82.4 32l-1 1c-.5.4-1 .7-1.3 1.1l-2.2 2a55 55 0 01-2.5 2.2l-2.3 1.9-1.9 1.6-2.8 2.6-1.6 1.4-1.3 1-1 1-.2.1-.3.2v.1l-.5.2h-.2c-.2 0-.3.3-.2.4l-1.2.8-1.4.7-1.3.6-.4.2-1.1.8a9 9 0 00-.7.7l-1.3 1.7-.6 1a18.8 18.8 0 01-1 1.5l-.4 1-.6 1.3a29.9 29.9 0 00-1.4 10v4.5l.1 1.7.1 1 .2 1.3c0 .7.2 1.4.3 2l.5 2.4a40.3 40.3 0 002 5.9l1.6 3.8 1.5 3.7.9 2 .4.7c0 .4.2.7.3 1l.2.2.6 1.4.4 1 .4.7 1.1 2.6 1 2.6.8 2.7.4 1.5.2 1.5a5 5 0 01.1 2l-.5 1.5-.7 1.5-.8 1-.8.9-.9.8-1.2 1.2-.6.5a9.5 9.5 0 01-2.3 1l-.8.2c-.5 0-1-.2-1.3-.3z"/><path fill="#EE3F26" d="M16.1 107.6l-.6-.4-.3-.3-.6-.7A15.4 15.4 0 0112 103l-.8-1.4-1.2-2.2-1.4-2.2-.3-.5L8 96l-.6-1L6 92.6a121.7 121.7 0 01-2-5l-.3-1-.3-.9-.5-2-.5-2-.2-1-.2-1v.1l-.3-1.4a13.6 13.6 0 01-.2-2.7v-1.2l.2-1.3a6.8 6.8 0 010-.7V69.6c0-.1 0-.3-.2-.4h-.1c-.2-.3-.4-.5-.5-.9A1.2 1.2 0 013 67.1l.8.6.7.7.9.8.9 1L8 72l.7.6a5.7 5.7 0 00.8.4l.6.2.5.1.6.1h.6l.7-.2 3-1.2 1.1-.6 1-.8c.2 0 .3-.2.5-.3l.5-.3 1.8-1c.6-.4 1.2-.8 1.8-1l1-.5 1.4-.5c.7-.2 1.4.1 1.7.7.3.6.2 1.2-.2 1.7l-.3.7c0 .3-.2.6-.4.9a8 8 0 00-.3.7l-.3.9-.4.8-.6 1.9-.7 1.2c0 .2-.2.4-.3.5 0 .3-.2.5-.3.8l-.5.9-1 1.5-1 1.5-.6 1 .2.2 1 1a60.7 60.7 0 008 6h-.2l1 .6h-.2a12.5 12.5 0 011 .5l1.4.6c.7.2 1 1 .8 1.8-.2.7-1 1.1-1.6 1h-1.6a20.5 20.5 0 01-2.9-.3l-1.4-.2h-1.1l-1.4-.2-2.7-.4-2.5-.4-1.3-.2-1.2-.2h-.1v.2l.2 2 .2 1.7v1l.2.9a91.1 91.1 0 001.1 5l.2.7v.4l.2.8.2.3.3.5c0 .1 0 .3.2.4.1.3 0 .8-.3 1a1 1 0 01-.6.3l-.4-.1z"/><path fill="#EE3F26" d="M13.8 74l-.4-.4-.3-.6c-.1-.3-.1-.8.1-1a2 2 0 011.1-.8l.5-.1 1.3-.4 1.4-.4 1-.3.5-.3h.1c.5-.4 1.3 0 1.2.6l-.1.4-.4.3-.3.2.2.3c0 .3-.2.5-.4.6l-.6-.1H18.4l-1.9.8h.1l-1.1.5H15a.7.7 0 01-.7.9l-.5-.2zm50.3-24.7l-.1-.2a1.8 1.8 0 01-.7 0c0 .3-.3.2-.3 0V49c0-.2 0-.5.2-.5h.3l.4-.3.3-.3h.3l.6-.3.5-.4.7-.6.8-.7 1-1 .8-.8 2-1.8A60.5 60.5 0 0175 39l4.2-3.3 2-1.6 2-1.7 2-1.7 2-1.5 2-1.7 1-.8 1-.8 1.7-1.6 1.8-1.4 1.7-1.4 1-.7.8-.8 1.2-1.3 1.3-1.5.5-.7a11.6 11.6 0 011.4-1.6l.7-.7.5-.7.5-.5.5-.6c.3-.3.8-.5 1.2-.6h1l.8-.1 2.4-.4 1.2-.2c.5 0 .9-.2 1.3-.3a104.9 104.9 0 004.9-1l.8-.2.8-.2h.9l.7-.1h.2l.3-.2h.2c.2 0 .5 0 .6.2.2.3.2.6 0 .9l-.2.4-.6.7-1 1-1.3 1.3-2.6 2.4a79.9 79.9 0 00-2.4 2.4l-.8.7-.8 1-.7.8-.8.9-1.6 1.7-.8.7-.7.9-1.6 1.7-1.8 1.9-1.9 1.7-1.4 1.5-1.8 1.8-1 1c-.2.4-.6.8-1 1.1l-.4.4-.9.9-.9.7-1 .8-1.2.6-1 .6-1.2.5-.6.2-.6.2-1.2.4-.7.3-1.3.6-1.6.6-1.9.8-2 .9h.2c-.3 0-.5 0-.7.2l-2.2.9a40.6 40.6 0 00-2.9 1.3l-1 .3h-.4l-1 .5-.7.2H71.2l-.2.2-.9.3-1 .3-2.4.6a64.3 64.3 0 00-2 .6 1 1 0 01-.6-.3z"/><path fill="#EE3F26" d="M106.7 26.5a.8.8 0 01-.6-.8c-.2 0-.2-.3-.1-.4l.3-.3h.2l1.4-1.3.8-.7.4-.3 1-1.3 1.5-1.5 1.4-1.5 1-1 1-1.1 1-1 .6-.7c.3-.4.6-.9 1-1.1.4-.2.7-.2 1 0 .3.3.3.6.2 1l-.3.5a8 8 0 01-.4.5l-.7.9c.2.6-.2 1.3-.5 1.8a9.2 9.2 0 01-1.7 1.7l-.7.6-1.5 1.1-1 .9-.7.5-1.8 1.6-.9.8-.6.5-.6.5a.8.8 0 01-.7.1zM62.6 50.2c-.2 0-.3-.3-.3-.6l.3-.3.4-.2.2-.1 1.6-1h.1l.4-.2.6-.2.6-.2 1-.4.6-.3.7-.3c.2-.1.4 0 .5.2.1.2 0 .4-.2.5a1032.7 1032.7 0 01-1.2.6l-1 .4h-.2v.1c0 .3-.3.5-.5.7l-.5.2a12.7 12.7 0 01-1.5.7l-.5.2-.4.2a1 1 0 01-.4 0h-.3z"/><path fill="#fff" d="M91 286.4a24 24 0 01-5-1.1h.1l-.3-.1-2.5-.7-.7-.3-.6-.3-1.1-.8-.7-.4c-.5-.3-1-.7-1.4-1.2l-1.5-1.5-.4-.8-.5-1.1c-.2-.6-.3-1-.2-1.6 0-.3 0-.6.2-1l.8-3.2 1.6-3.2 1.4-1.9a26 26 0 011.8-2l1-.7c.7-.3 1.4-.6 2.1-.6a54.4 54.4 0 012.4-.2h1.9l1.3.1 1.3.2c.4 0 .8.2 1.2.4l1.2.3 1.5.7.7.3 1 .8.5.5.5.5.5.6.8 1c.1.3.3.5.3.8l.4.6c.2.5.2 1.1.2 1.7l.1 1c0 .3 0 .5-.2.7l-.3 1.5-.2.9-.2.9-.7 1.8-.1.2a52.6 52.6 0 00-1.1 2.4l-.7 1.2-.8 1.1-.5.5-.8 1c-.3.4-.8.5-1.3.7-.3.2-.7.3-1 .3h-2zM291.7 192h-.8l-2-.6-.8-.2c-.5 0-1-.2-1.5-.4-.8-.3-1.6-.8-2.3-1.3-.5-.3-1-.7-1.4-1.2l-.5-1-.2-.4c-.2-.6-.2-1-.2-1.6v-2.2l.1-1.5a15 15 0 011.2-3.3l.8-1.2.5-.5 1.1-1 1-.5.4-.2c.7-.4 1.5-.8 2.3-1h2.4l1 .5.3.2 1.2.5c.2 0 .3.2.5.4l.3.2c.4.3.8.5 1 .9h.1c.4-.3 1-.4 1.5-.2l.7.6.9 1c.4.6.7 1.4 1 2.1l.3 1.5.3 1.2c.2.6.2 1.2.2 1.8l-.1 1-.3.9c-.4 1-1 2-1.8 3l-.5.5-1 .7-1.1.5-2 .6-1.3.2a5.2 5.2 0 01-1.3 0z"/><path fill="#000" d="M168 99l1 1.6 1.1 1.6.7.8.2.4h.1v-.1h.1v-.1l.1-.1v-.5l-.2-.4-.2-.5-.3-.5-.5-1.1-.4-1.3-.5-.8-.4-.9-.5-.9-.5-1-1.2-2.2-.3-.3a6 6 0 00-.6-.4l-.5.2h.2-.2v.4l.1.6.8 1.9.3.6v.1h.1v.2l.3.4.2.5.3.5.7 1.3zm-4.8-5.2l-.7.4v1l.1.3.4 1 .3.6.6 1.3 1 2 .5 1 .9 1.5c0 .2.2.4.4.6l.5.5.7.5a12.5 12.5 0 011.2-.3l.5-.2-.2-.3-.7-1-1.3-1.8-.7-1.2-.2-.3-.5-.8-.5-1-.5-1.1-.5-1.3-.6-1.4-.1-.4-.6.4zm-1 9.1l.4.5.6.8.4.4.3.2.4.2.5.5v.3l1.2-.5a7.4 7.4 0 01-2-2.5 70.7 70.7 0 01-1.4-3l-.3-.7-.5-1.3-.5-1.3-.4-1.4a24.6 24.6 0 01-2 1v1.4l.3.6.2.4.5.7.5 1 .5 1 .5.7.8 1zm-7.5 3.8l.2.2.8.9.8.8 1.2 1 .8-.4 1.2-.7 1.4-.7 1.6-.8.4-.2-.4-.2-1-.8-1-1.2-1-1.7a24.9 24.9 0 01-1.3-2.8l-.2-.5-.1-.5-.4-1.2-.1-.9-1 .7h-.1l-1.7 1.2v.1l.1.4.4.7.3.5.4.7 1 1.6c.5.8 1 1.5 1.7 2.2l.9 1 .8.6c.3.3.4.8.2 1.2a1 1 0 01-.5.3 1 1 0 01-.3 0h-.3c-.8-.3-1.5-.9-2-1.5l-.6-.7-.4-.5-.5-.8-.2-.4-.2-.5-.2-.4-.2-.4a36.2 36.2 0 01-1-3.7l-2.4 1.4h-.1c.3.2.5.4.6.8v.7h.1l.6 1.4.6 1.2v-.1c.1.4.4.9.7 1.3l-.1-.1.5.8zm-1.2 4.9h.1l.7-.3 2-1.1h.2c0-.2-.2-.2-.3-.3l-.9-.7-.8-.6-1-.8-.3-.2-.2-.2-.3-.3-.3-.4-1-1.3-.8-1.6a3.8 3.8 0 01-.3-2.1l-1.6 1-1.1.9c.2 0 .3.3.3.5l.2.6v.2l.5.7c0 .2.2.4.4.5l.2.4.1.3v-.1l.5.8.5.7.7 1v-.1l.6 1 .8.7.5.5h.2v.1l.1.1h.3zM150 113l.2.2.1.1h.3a31.8 31.8 0 002.3-1.4l-.6-.3-.8-.5-.3-.2-.2-.2-.3-.1-.7-.8a33.7 33.7 0 01-.5-.4l-.6-.5c0-.2-.2-.3-.4-.4l-.8-.9-.3-.2a6 6 0 01-1.2-1.6c-.2-.3-.3-.8-.3-1.2l-1.2.9c-.1 0-.2 0-.3.2l.2.2.3.9.5 1 .4.4c0 .2.2.4.3.5.4.7.7 1.4 1.2 2 0 .2.2.3.3.5l.4.4.8.6.7.4h-.1.1v.1h.1l.4.3zm78.8 5.3l1 .9 1.1.8 1 1 1 1 1 .8 1 1 1.9 1.9 1.3 1.2 1 1 1 .9 1 .9.6.5.2-.1.9-.4.8-.3h.4a11 11 0 00.9-.7l.1-.2v-.3l-.1-1.4a74 74 0 00-.5-2.5l-1-3.4-1.2-3-.1-.2-.8-1.4-.5-1-.2-.3-.2-.4-.7-1.7-.3-.9-.3-.7-.6-1-.4-.8-1-2-.3-.3-.4-.3-.7-.5-.7-.4h-.2.1l-.2-.1h-.7.1l-1.4.6-.7.3-.7.3-.9.4-1 .4-2 .9c-.4 0-.7.2-1 .3l-1.1.5-2 1a14.2 14.2 0 01-2.3.6l1.3 1.2 1.5 1.3 1.6 1.5 2.2 1.9 1.2 1.2zm-21.2-7.6l1.5 1.4 1.4 1.4 2 1.7 1.9 1.8a41.6 41.6 0 012.7 2.4l1 .7 1 .8 1.7 1.6 1.8 1.6 1.5 1.3 1.6 1.3 1.6 1.4 1.6 1.4 2.3 1.9 2.3 2 1.1 1 1 1 1.9 1.5 1.7 1.7 1.7 1.8 1.6 1.7 1.6 1.8 1.6 2a53.7 53.7 0 012 2l1-1 .4-.5.3-.3.3-.3 1.1-1.1.8-.7.4-.3.5-.5.6-.5-.4-.4-.8-.5-1-.6-1.6-1.2a28 28 0 01-1.8-1.5l-.7-.7-.7-.7-1.7-1.5-1.6-1.5c-.4-.5-.9-1-1.4-1.3a1 1 0 01-.7-.3 1 1 0 01-.3-.8 27 27 0 00-.8-.8v.1a48.5 48.5 0 01-2.4-2.3l-1.6-1.5-.8-.8-.8-.8-1.6-1.5-.8-.8a62 62 0 00-.8-.8l-2.2-1.9-1.2-1-1.1-1.1-.5-.4-1.6-1.5-1.7-1.5v.1l-2-1.9-2-1.9-2-2-2-1.9-1.6-1.5-1.3-1.1-1.3-1.3-.7-.5-.8-.7-.8-.6-.7-.7a64 64 0 00-.9-.6l-.8-.6a16.6 16.6 0 01-1.6-1.2l-.5-.3-.5-.3-1.1-.8a32 32 0 00-1.2-.8l-.6-.4-.8-.5-1.2-.7-1.3-.7-1.4-.6-.3-.1-.5-.2-1-.3-1-.3-1-.3-1-.4-.5-.1-1-.2H188l-1.2-.1h-.8l-1 .1h-7.3l-.9.2-1.2.2-1 .2-1 .3c-.1 0-.3 0-.5.2a5 5 0 01-1 .4l-.8.2-1 .2a5 5 0 01-1.1 0h-.4l.6 1.2.3.6.4.6.8 1.3.7 1.3.5 1 .3.3h.2v-.1c.2 0 .3-.1.3-.2h.1a10 10 0 012.2-1c.4 0 .7-.2 1.1-.3a8 8 0 011.5-.4l1.4-.4 1.6-.2 1.6-.2h2.4a5.9 5.9 0 011.6.1l.9.3c.5.1 1 .4 1.6.7l1 .5 1.3.5 1.1.7a105.4 105.4 0 002.7 1.4l1.2.5 1.3.7a16.5 16.5 0 012.3 1.5l1.2.8 1.2 1 2.2 2 1.6 1.4 1.5 1.5zm-25.8 54.5l.1 1c0 .5.2 1 .3 1.4l.4 1.4.5 1.2.5 1.2a27.5 27.5 0 001.8 2.8l1-.4.7-.2 1.6-.7 1.4-.5 1.6-.8.9-.4 1.1-.6 1.2-.5 1.1-.4 2-1c.5 0 1-.2 1.4-.3l1-.3 1.1-.4 1.4-.5 1.1-.5 1.3-.5 1-.5h-.1a60.6 60.6 0 013.4-1.6l2.1-1 2.3-1 1.1-.6 1.3-.5a52.4 52.4 0 002.3-.8l.7-.2c.3 0 .5-.2.8-.3l1-.5.7-.3.9-.3.7-.3 1.6-.8 1.7-.7.8-.5.9-.4 1.7-.9 1.5-.8 1-.7.5-.5.5-.5.3-.5v-.5l.1-.7.1-1.7v-.5l-.4-1.5-.4-1-.2-.7-.4-1.5c0-.3-.2-.6-.4-1l-.3-.8-.3-.9-.2-.5v-.6a5.9 5.9 0 01-.1-1.4c0-.3 0-.6.2-.8l.4-.7.7-.5.3-.2-.3-.3-1.6-1.3-1.6-1.4-1.7-1.3-1-.8-.7-.8-.9-.7-1-.9-1-.9.2.1-2-1.8-1.6-1.6-1.7-1.7-1.8-1.8-.7-.6-2.2-2-2.2-2h-.1l-.6.5-.4.4-.5.5-1 .9-.2.1-.1.1-.1.1-.2.1-1.7 1.5v.1l-.3.1v.1l-1.7 1.4-.6.6-.8.6-1.4 1-1.8 1.6-.8.8-.8.8a95.7 95.7 0 00-3.5 3.4l-3 3.1-2 2.6-.4.5-.4.5-1 2-.6 1-.5 1-.3.6-.4 1-.6 1.5a37.1 37.1 0 00-1.3 4.5l-.7 2.4-.3 1.2-.4 1-.4 1.5-.4 2a49.8 49.8 0 00-.4 3.8v2.5l.2 1zm93.7-1.6a36.5 36.5 0 00-3 2.3l-1.2 1.4-.6.7.6.4 1.7 1.2 1.7 1.3c.6.4 1 1 1.6 1.5l.7.5 1.3 1 1.2 1 1.2.9 1 1h.2l1.4-1.4a40.2 40.2 0 013-2.2l.6-.3-1.4-1a41.7 41.7 0 01-3.2-3.2l-1.3-1.6-1.1-1.3-1-1.1a63.5 63.5 0 00-2-2.1l-1.4 1zm1.3-29l-4 .5-2 .4-2.1.7-1 .3-.8.4-1.6.7-1.9.8-.9.4-.8.3-1 .5-1.2.7-1.2.6-1 .6-.7.5-.6.5-1.5 1.3-1.4 1.3-1.7 1.7-.4.4-.6.8a32 32 0 01-2.7 3.1l-.7 1.1a13.4 13.4 0 00-1.3 2.4l-.6 1.1-.5 1.3-1.3 2.5-.5 1-.6 1.2-.7 1.5-.7 1.5c0 .4-.2.7-.3 1l-.3 1-.5 2.3-.3 1.6-.3 1.7-.2 1.6-.2 1.7-.1 2.3v1l-.1 1.6.1 1.6.2 1.3.5 2.3.7 2.4a24.7 24.7 0 001.2 2.6v.1h.1l.3.2h.3l.4-.1.1-.1h.1a10.7 10.7 0 00.5-.8l.2-.4.4-1.2v-.6l.2-2.2V185l.2-1.2.2-1.4.4-2.3.2-1.4.1-1 .3-1.5.2-1.1.5-2.6.2-.7.2-.7.5-1.4.7-1.8.8-1.6 1-1.9c.2-.6.6-1.1.9-1.7l.4-1 .6-1.3.6-1 .8-1.2 1.3-2c.5-.8 1-1.4 1.6-2v-.1c.6-.6 1-1.3 1.7-1.8a17.7 17.7 0 012-1.7l2-1.5 1.9-1.4a39 39 0 011-1 9.9 9.9 0 013-2.4l1-.5.9-.4.7-.3 1.6-.5 1.4-.5.7-.3 1.1-.6 2.4-1.2 1.2-.4 1.2-.5h.4a21.6 21.6 0 002.3-1l1.2-.2 1.3-.3 2.4-.6 1.3-.3 1.1-.1 1.3-.2a10.5 10.5 0 00.9-.2l.5-.4h.1l.4-.6v-.3l.2-.7v-.4l-.7-.2-.7-.2h-.6l-2-.2h-2.1l-1.8.1h-.4l-1.2.1-1.2.2a29.3 29.3 0 01-.8.2l-4.4.8zm8.6 55.4l.4.2 1.6.7 1.3.5.5.2.4.1 2.1.3h.7a12.9 12.9 0 001.6-.5l1.4-.9a36 36 0 002.7-2l.4-.4a11.7 11.7 0 001.1-1.7l.4-.8.3-.9v-1.4l-.1-1.5-.2-1.3c0-.2 0-.5-.2-.7 0-.3-.2-.6-.3-.8l-.4-.8-.3-.4-.2-.3-.2-.1-1-.5-.6-.4-.6-.4-.4-.3-.5-.5.1.1h-.2c-.5 0-1-.4-1.2-1l-1-.1-2.4-.1h-.2c-.2.2-.5.4-.9.4h-.5a25.9 25.9 0 00-2 1l-.7.5-2 2-.6.7-.1.2a1.3 1.3 0 01-.6 1.2l-.1.6a18.3 18.3 0 00-.3 2.5v2.3l.2.6a15 15 0 00.8 2l.2.2.3.3 1 1-.1-.1.4.3zm7.7 19a30.8 30.8 0 003.3-.6l1.5-.5 1.1-.5.5-.2 1.5-.8 1.7-.8.8-.5.9-.5 1.8-1a38.2 38.2 0 004.8-4c0-.2.2-.4.4-.6l.3-.5a102 102 0 002.1-3.6l.5-1 .4-1 .4-1.2.5-1.7.3-2.3.2-1.8v-1l-.2-1.6v-.2c-.2-1.1-.6-2.3-1-3.4l-.4-1.7-.5-1.6-.4-1-.8-1.6-.7-1.4-.5-.8-.7-1a36.2 36.2 0 01-1.6-2.5l-.3-.6-.3-.6-.3-.4a14.7 14.7 0 00-1.7-1.5c-.4-.2-.8-.5-1-.8l-.8-.7-.6-.4-.7-.7-.1-.1h-.2l-.8-.5-.9-.6-.2-.1a.7.7 0 01-.3-.6l-.3-.2h-.1l-.6-.3-1.8-.5-1.3-.3-2.2-.6-1-.1-.9-.2H291a51 51 0 00-3.5 0l-2.6.8-.9.2c-.4 0-.7.2-1 .3l-1.1.4-1.1.5-2 1c-.3 0-.5.2-.7.3h-.2l.4.4 1.7 1.3.7.6.8.7 1.6 1.4h-.1l1 .9 1 .8 1.3 1.2 1.3 1 1.5 1.2.7.6.2.2 1.5.2c.6 0 1.3.2 1.9.4l1.8.4h.7l1 .5 1 .7.6.4 1.2.7c.6.5 1 1 1.5 1.7l.5 1.2a9.5 9.5 0 01.5 3.7v2.4c0 .9-.4 1.6-.8 2.4a13.5 13.5 0 01-2.2 3.1 40.3 40.3 0 01-3.7 3.1c-.7.6-1.6 1-2.5 1.2l-1.3.2h-.8l-1-.1c-.7 0-1.5-.2-2.1-.4l-2-.8-1.8-.8-1.3-1.1-.6-.6a6 6 0 01-1.3-1.9l-.3-.9c-.3-.6-.5-1.3-.6-2v-2.5l.2-1.8.2-1.6.2-.4-.2-.1a41 41 0 01-2.7-2.4l-1.1-1-.8-.7a10 10 0 01-1.1-1l-1.3-1.3a215.5 215.5 0 00-3.7-3.5l-.3.6-1.2 2.1-.3.7-.2.7-.4 1.2-.4 1.4-.7 2.8-.1.5-.1.7v.9l-.2 1.3v2c0 1.1.2 2.2.4 3.3l.1.8.2.6 1 2.8.4 1 .4.7 1.4 2 1.3 1.8.6 1a11.2 11.2 0 001.7 2l1.1 1 .8.7 1.2 1 1.4.8h-.2l1 .6a32.7 32.7 0 004.3 2.2l1 .4h-.2l2 .6a20.4 20.4 0 003.5 1l1.6.1.9.2h1.5zm-140.4.5l-1.2.2-.8.2h.2l1-.2.8-.2h.2-.2zM131 247.3h.2l.2-.3.2-.2v-.1c-.2-.3-.3-.5-.3-.8l-.2-.7-.2-.6-.1-.6-.6-1.6-.1-.2-.8-1-.7-.9-1-1.2-.4-.5-.4-.7-.4-1-.2-.3-.2-.2-.3-.4-.3-.4-.8-1.6-.2-.3-.3-.4-.6-.7-.5-.5-.7-.8-1-1-1.1-1.2-1.4-1-1.2-1.3-.6-.4-1.5-1-1.3-1-.4-.3-.5-.3-.8-.4a23 23 0 01-1.8-1.2l-1-.6-2.4-1-1.1-.5-1.2-.5-1.6-.4-1.5-.5-.8-.3-.9-.3-1.4-.2-.5-.2-1.1-.3-1.3-.2H95l-1.6-.2-1.6-.2-3.1-.2-3.6-.2c-.3 0-.7 0-1 .2l-1.3.2-1 .3-2.7 1.2-1.9.8-1.8.6-2.2.7-1.2.4h-.4l-.9.5-4.6 2.4L64 225l-1 .7-1.1.6-2.2 1.4-1.5 1-1.3 1.2-.7.7-.7.8-.1.1-.4.4-.5.6-1.1 1.5-.4.6-.1.3v.5h1l.7-.2 1.5-.4 1.5-.3 1-.2h.4l.7-.3.8-.2.3-.1 2-.6 1-.6 1.6-1-.1.1 1.2-.7 1.1-.6 1.2-.7 1.3-.5 1.3-.4 1.3-.4a62 62 0 012.7-.5l1.6-.2 1.8-.3h.8l.8-.1 1.7-.1h-.2 3.5l2.4-.1 2.7-.1a36 36 0 015.2.3 29.4 29.4 0 014 .7l1.3.2 1.2.4 1.3.5 2.4 1 1.7.8 1.6.8 1.5.8a79.3 79.3 0 001.4 1l1.8 1 1.8 1.5 1 .6.9 1c.2 0 .4.3.6.4l1.1.8c.4.2.6.6 1 1l.6.5.4.5.4.5.1.2.3.1 1 .8.6.5.5.5.1.1 1 1 .5.5 1.4.8.6.3.7.3.7.4.5.4.6.2h.8zm-34.6-36.6l-1.4.6-1.3.4-1.4.6-2.3 1.1-2.2 1-.7.4h.6l2.6.1c.9 0 1.7 0 2.6.2l1.5.2 1.7.1.8.1 1.5.4 1.4.4 1.6.4 1.5.6 1.6.4 1.1.4 1 .4 1 .4 1.9.8 1.7 1 1 .7a16.5 16.5 0 001.1.7l.6.3.6.4 1 .7.5.4.5.4 1.3.9 1 .9.9.9 1 .7 1.1 1.1 1.3 1.3 1.3 1.4.8.8.7 1 .4 1 .2.4.3.4.6.6.4.8.4.9.2.3.1.2.6.7.3.5.6.7.5.6a18.6 18.6 0 011 1.5l.2.6a23 23 0 01.6 1.8l.2.9.2.7.3.2-.1.6a5.3 5.3 0 00-.4.4l-.1.2c-.2.3-.3.6-.6.8l-.5.2.4.7.1.1 2.1-.9 1-.6.6-.3 1.2-.7 1.2-.5 1.2-.5 1.6-.9.7-.4 1-.4.8-.4 1-.4 1.7-.6 3.2-1.5 1.8-.8 1.9-.7 1.5-.6.7-.3.7-.3 3.3-1.6 1-.5 1.3-.7.6-.3.6-.3 1.3-.3c1-.4 2.2-1 3.3-1.3l3.5-1.2 2-.6 1.6-.6 1.6-.6 2-.7 2.5-.8 1.2-.4 1.1-.4 1.4-.4.6-.2.5-.1 2.5-1 1.2-.4.6-.2.6-.3 1.8-1 1.3-.6 1.3-.5 1.2-.5 1.5-.6.3-.2.3-.3c.4-.3.8-.6 1-1l1-1.2a35.7 35.7 0 002.5-3.5l.4-.7a10.7 10.7 0 001-3l.5-3.4.3-1.8.2-1.8.7-3.4.8-3.6.5-2 .4-2.3.5-2.4.2-.9.1-.8.2-1.7.1-.8.2-1c.1-.5.3-1.1.3-1.7l.3-2 .3-1.8.2-1.7.3-1.7.3-1.9v-.6l.1-1.4.2-1.5.2-1.5.1-1.3.3-1.5.3-1.5.3-.7-1.2.6-2.2 1-1 .5-1 .5-1.1.4-1.2.5-2 .8-2.3.7-1.2.5-1.4.6-1.2.5-1.2.5-4.2 2.2-2.2.9-.9.3a26.5 26.5 0 00-1.5.6l-.8.1h-.2v.5l.1 1.2v4.1l-.2 1.4-.2 1.2c-.1.9-.3 1.8-.6 2.6 0 .2 0 .4-.2.6v.3l-.1.1-1.1 2.8-.5 1.4-.6 1-.5.7-.4.6-.6.7-1 1.1c-.5.6-1.2 1.1-1.8 1.6l-.9.7-1 .7-2.1 1.2-1 .6-1.2.5-.6.3-.7.4-1.2.7-.2.1-.3.2-2 .9-1 .5-.8.5-2 1.1-2 1-1.2.4-1.2.5-.2.2c-.2 0-.3.2-.4.3l-.5.1a1 1 0 01-.7-.2l-.3.1-1.5.5-1 .2c-.4 0-.7.2-1.1.3-.5 0-1 .2-1.4.3l-1 .2a14.6 14.6 0 01-2.3.3h-.8l-.3-.1-.5.1h-.3l-.6.2-.7.2-1.3.2a59.3 59.3 0 00-2 .4l-.4.2a28.1 28.1 0 01-2.2.5l-1.1.3-1.1.3h-.6c-.6.3-1.2.6-2 .8l-2 .4-1 .3-1.8.6-1.3.5-2.6.7-1.5.4-2 .5-2 .1a6.9 6.9 0 01-3.2-.7l-1.2-.8-.8-.5-.8-.7-1.2-1.5-1-1.5-.1-.2v-.1h-.1l-1-1.3-.9-1.2a26 26 0 00-1-1.4 7 7 0 01-1-1.7l-.1-.3-.4.2-1.1.6-2.3 1-2.2 1c-.8.2-1.6.5-2.3 1l-.5.1-1.5.8zm6.2 64l.3-.2 1.2-.4 2-1 1.9-.8 1.2-.4 1.1-.5 1-.4 1.4-.4 1.7-.5 1.8-.5 1.6-.5.7-.2.7-.3 1.3-.5 3-1 .5-.1.5-.2 1-.4 1-.5 1.2-.5 2.1-.8 2.3-.6a83.1 83.1 0 003.6-1.4l3.5-1.2 3.5-1.3 2-.7 1.8-.7h-.1c.4 0 .9-.2 1.3-.4l1.4-.6 1.6-.5.6-.1.6-.2 1.8-.7 1.8-.6 3.6-1.3 3.6-1.3 1.9-.6 2-.6 2.6-.8 2.8-.8c.3 0 .5-.2.8-.3.3 0 .5-.2.8-.3l1-.3 1-.4 2-.5 1.7-.5 1.7-.6 1-.3 1.1-.3a102.7 102.7 0 007-2.2l5.4-2 3-1.3 1.2-.6 1.7-.7 2-1.1 1-.6.8-.5 1.5-1 1.2-1 1.6-1.5 1.6-1.5 1.6-1.5 1.5-1.5.4-.5 1.7-2.9.6-1.3.6-1.3.5-2 .6-2.3.7-2.2.9-2.4v-.2l.1-.2.8-2.8.4-1.4.5-1.5.4-1.3.4-1.6.8-2.9.6-3 .8-3.2.6-3.3a111.6 111.6 0 011.4-6.8l.4-1.9.3-1.9.6-3.6.3-1.8.3-2 .1-1.5v-2l.1-2a35.5 35.5 0 01.8-5.7l.5-2a51.2 51.2 0 001.2-4.8l-.5.1-.9.3-1 .3-1 .3-1.2.4-1.3.4-.9.4-.8.4-.6.2-.5.2-.8.2-.5.2-1 .4c-.5.3-1 .4-1.6.6l-.5.1-2.1 1-1 .5-1 .5-1.1.6-.5.3v.4l-.2 1.4v1.5l-.2 1.1v1.4l-.3 2.5-.1 1.4-.2 1.3c0 .5-.2.9-.3 1.3l-.3 1.2-.2 1.1-.1 1-.6 2.4-.4 2a33 33 0 01-.4 2l-.2 1v.3l-.1.5-.3 2c0 .6-.2 1.2-.4 1.9l-.4 1.7-.4 1.8v.5l-.7 2.3a162.4 162.4 0 00-1 5l-.3 2.8-.3 2.8-.1 1.4-.2 1.4c0 .4 0 .9-.2 1.3l-.2 1.3-.3 1.3-.5 1.2a16 16 0 01-1.4 2.4l-1 1.1-.8 1c-.5.7-1.1 1.2-1.8 1.7a5 5 0 01-1 .7l-.7.2-.8.4-2 .7-1 .4-.8.4-2.3 1.2-2.4.9-2.2.8-2.3.7-3 1a266 266 0 00-4.6 1.5l-1.9.7-3.4 1.2-3.5 1.2-1.7.7-1.7.6a9 9 0 00-.6.2l-.5.4-1 .4-.7.4-1 .5-3.3 1.5a13.3 13.3 0 01-1.6.6l-2 .8a51.6 51.6 0 00-6.7 2.8l-1.5.6-.8.4-.8.3-1.1.6-1.2.8a27 27 0 01-3.7 1.9l-2.3 1.1c-.4.3-.9.4-1.3.6l-1 .4-1.6.6-1.9.8-1.6.7a153 153 0 01-4.7 2l-1.4.6-2.6 1.2c-.8.4-1.6.8-2.4 1a32.7 32.7 0 00-2.6 1.1l-.8.5a18 18 0 00-1.9 1.2l-1 .4-.7.4-1 .6-.8.4-1 .5-1.6.6-1 .4-2.7.7a4 4 0 00-1.2.4l-.6.4.6.5c.5.5 1 1 1.3 1.6 0 .2.2.3.3.5l.4.5.5.7.4 1v2.6l-.3 1.3v.4zm-16 10.2l2.7.5 1 .1 1.7.2h.6l.9-.3h.3l.8-.5 1-.4.4-.3 1-1.2a22.3 22.3 0 001.2-1.4 59 59 0 001-2l.3-.7.1-.6.1-.6v-2l.1-1.1c0-1 0-1.8.3-2.6 0-.3.1-.5.3-.6a6.6 6.6 0 00-.2-.7l-.8-1a4 4 0 01-.5-.9l-.2-.3a5 5 0 00-.2-.4 6.8 6.8 0 00-.8-.8l-.9-.5-.8-.6-1-.6-.4-.2-.9-.3-.9-.4-1.3-.2-1-.2c-.3 0-.7 0-1-.2l-1-.2h-1.8a6 6 0 00-.6.1l-.8.2-.4.1-1.5.7h.2l-.7.2-.8.5a19.5 19.5 0 00-2.1 1.6l-.7.9-.5.6-.6 1.2-.6 1.3-.4 1c0 .4-.2.7-.4 1.1l-.1.8-.2 1v1.8l.5 1.3.2.5.4.6.5.7.6.7.4.5h.2c0 .2.2.2.3.3l1 .6 1 .7 1 .5 1.1.5 2.8.9zm-6.3 14.7l.6.3.6.4 1.5.5.6.1 3.5.4 1.7.2h1.8l1.7-.3 1.9-.2 3.5-.3.5-.1.4-.2.7-.3 1-.5 1-.5c.3 0 .5-.2.7-.3l1.1-.8.6-.4.8-.5.2-.1.6-.7.5-.5.6-.6.5-.6.6-.6 1.3-1a9.9 9.9 0 001-1.3 3.8 3.8 0 01.3-.4v-.1l.6-.8.8-1.4a15.5 15.5 0 001-2.7l.4-1.6.5-1.9.3-1.3.4-1.4.3-1.3.5-1.3a11 11 0 00.3-2.3v-3h-.2l-1.3.4-1.3.3-1 .5c-.3 0-.5.2-.8.3l-.8.2-1.5.4c-1.2.4-2.3 1-3.5 1.5-.4.3-.9.4-1.4.6l-1 .2h-.1a15.6 15.6 0 01-.3 2.1l-.3 1.1-.3.7-.3.5-.7 1-1 1.2-1 1-1 .9-.6.4-.3.2a8 8 0 01-.8.5l-2 .8-.7.2a5.9 5.9 0 01-1.8 0c-.9 0-1.8-.2-2.7-.4-.8 0-1.5-.2-2.3-.3l-1-.3-1-.3-2-.6-1-.4-.4-.3c-.2 0-.4-.2-.5-.3l-1.3-.7-.5-.4a4 4 0 01-.8-.6l-.7-.8-1-1.3-.4-1-.4-1c-.2-.6-.4-1.2-.4-1.8v-1.4l.2-1.4v-.6l.3-.7.4-1.3.5-1.3.7-1.2.7-1.2a14.2 14.2 0 012.8-3l.8-.5.4-.2 1-.5h-.2l1.3-.4.9-.4c.3-.2.7-.2 1-.3l.8-.2h2.7l1.4.4 1.4.1c.6 0 1.2 0 1.7.2h.1l1.7.6c.6.1 1.1.5 1.7.8l.2.1.4.3a6.3 6.3 0 013.2-1.6h.7a17.5 17.5 0 004.7-1.8l2-1.2.4-.2c.2 0 .3-.2.5-.3l1-.4v-.8l-.2-.3v-.2l-.3-.3-.9-.9a14.7 14.7 0 00-1.5-1.2l-1.1-.6-1.2-.6-1.3-.7-1.2-.8-1.8-.9-1.5-.9-1.5-.7-1.4-.6a25.4 25.4 0 00-3-1l-1.4-.2-3-.5h-4.2l-2.8.5-1.4.4-1.5.3-.8.2-1 .4-1.9.5-.4.1-.8.5a53.1 53.1 0 00-3.1 2l-1.6 1.3a26.2 26.2 0 00-3 3l-1.2 1.5h.1l-1 1.4c-.3.4-.4.9-.6 1.3l-.5 1-.9 2.7-.9 2.9-.1.6-.1.6-.2 1.3-.2 2 .1 1.2.3 1.8.2 2 .2 1.7.1 1.7.2.8.5 1.6.2.4.8 1.1.6.9 1 1.8.5.7.6 1 .7 1 .8 1.2.4.6.6.8v.1l.3.2.7.5.6.5 1 1 1 .5.5.4.5.3 1.5 1 .5.2 1.3.6.6.3.7.3.4.2 1 .5h.1l.1.1h.2l.7.3zm10.9 24.2h-1.4l-3-.4-1.6-.2-1.5-.3-2.4-.4h-.7l-.7-.2-1.2-.4-.6-.1-.8-.2h-.2.1a36.7 36.7 0 01-4.3-1l-.7-.5-.4-.2h-.3l-.6-.2-1-.1-1.2-.5-1.6-.7-1.6-.9-1.6-.8-1.3-.5c-.5-.1-1-.4-1.4-.6l-2.4-1.6-1.3-1-1.2-.9-.6-.6a42.5 42.5 0 01-3.9-4.5l-1.2-1-1-1-.3-.2-.4-.3-1.4-1.3-1.3-1.4-.7-.7-.8-1.4-.6-1.2-.6-1.2-.4-1.1-.5-1.1-.4-1.1a26 26 0 00-.7-1.7l-.4-1.8-.4-1.7-.2-1.8-.2-1.4-.2-.8v-.8.1l-.4-1.6-.1-1.7-.1-.5-.3-1.2v-3.2l-.1-1.7v-.5l-.2-.7V270.1l.1-1 .2-1 .2-1 .4-2.1a19.3 19.3 0 01.3-1.6l.2-.8.2-.8.5-1.7.6-1.8.5-1.9.6-1.8.5-1 .4-1 .8-1.3.6-.8.6-1.1.8-1.4.8-1.2.8-1 1.9-2.3 1-1.2c0-.2.3-.3.4-.5l.5-.5.6-.5.7-.6 1.2-1.2 1.3-1.2 1.4-1 .6-.5.2-.2.4-.3.7-.4h-.1l-.1.1-1 .3-1.2.3h.1l-1 .3-.5.2a8 8 0 01-1.4.3l-.8.1h-.5c-.2 0-.5 0-.7-.2l-.6-.7V235c0-.4 0-.8.2-1.1l.7-1a27.7 27.7 0 011.7-2l.2-.3.3-.3a30.2 30.2 0 013.6-3.4l-1 .4-.6.1a2 2 0 01-.4 0h-.6l-.7-.2-.7-.5-.5-.3-.5-.7-.5-.7-.6-.8-.7-1.3-.6-1.2-.4-1a23 23 0 00-1.1-2.8l-.3-.9a4 4 0 01-.1-2.1v-.8l.2-.4c0-.2.2-.4.4-.5h.2l.3-.2.5-.3h.1v-.1l.8-.5.8-.3 1.8-.8a40.3 40.3 0 013.3-1.4 32.5 32.5 0 013.9-1.5l1.9-.8 1.8-.8 1.7-.7 1-.5c.4 0 .7-.2 1-.3h.2l2.2-1 2.3-.8 2-.8a24.8 24.8 0 013-1.2l1.3-.6 1.2-.6 1.4-.6 2-.6h.4l.1-.1h.4l.1-.1h.3v-.1h.2l.2-.1h.3l.1-.1h.2l.1-.1h.3v-.1h.4l.1-.1h.2l.2-.1h.2v-.1h.4l.1-.1h.2l.1-.1h.2l.1-.1h.2l.1-.1h.1l.1-.1h.1l.2-.1.2-.1.1-.1h.1l.2-.2h.2l.1-.2h.1l.2-.1.1-.1h.1l.1-.2h.1l.1-.1h.1l.1-.1.2-.1-1.3.7v-.1l.1-.1.1-.1.1-.1.1-.1h.1v-.1l.2-.1.1-.1h.1l.1-.1.1-.1.2-.1.2-.1.1-.1.2-.1.1-.1h.1v-.1h.2v-.1c.3 0 .5-.2.7-.3h.8l.1.1h.4l.1.1h.4l.1.1h.2v.1l-.2.4-.4-.2-.2.3-1 .9a28.2 28.2 0 01-4.4 2.6l-1.2.6-1.3.5-1.6.5-1.8.3-1.7.5-1.5.4-1.7.6-1 .3-1 .3-1.9.6-1 .4-.9.3-1 .4-1.3.5-1.2.5-1 .4a21.7 21.7 0 00-2.4 1l-2.2 1-1 .4-1 .5-1.2.5-2.1 1-1.5.7-1.7.7-1.6.6-1.6.7-1.4.8-.3.2v.2a12.3 12.3 0 00-.3 1.8v.2l.3.7.3 1 .5.9.6 1.9.3.6.3.6a10.2 10.2 0 001.2 2l.7 1.1.2.2.5.5c.2 0 .3.2.4.3h.2l.5.2h.7l.2-.1.8-.4.8-.4 1-.4 1-.3.9-.3 1-.4h.1l.2-.2 1.1-.6 1-.5A250.6 250.6 0 0174 218l2.5-1 2.4-1 2.2-.5 1-.5.6-.3.6-.3 1.2-.5 2.4-1 2.3-1 .7-.4 1-.5 1.4-.6 1.1-.4 1.2-.4 1-.5 1.4-.6 2.2-1 3.4-1.3 1.6-.6 1.6-.7.2-.1-.8-1.3-.4-1a14.1 14.1 0 00-.8-2l-.4-1.2-.4-1.3a17 17 0 00-.4-1.3l.1.1h.4l.1.1h.4l.1.1h.4l.1.1h.4v.1h.2l.3.8.3.8.3.8.8 1.5.5 1.4.6 1 .6 1.2.5 1.4c0 .2.2.3.3.5l.9 1.3.9 1.4.8 1 .8 1.3 1.5 1.9.5.5.5.4.5.4 1 .6 1 .4.5.2h.5a25.5 25.5 0 002.7 0l1.8-.5c.5 0 1-.2 1.4-.3l2.9-.9.7-.2 1-.4a12 12 0 012.2-.7c.5 0 .9-.2 1.3-.3l1.3-.6 1.6-.6 1.7-.5 1.7-.4a30 30 0 004-1.3 67.3 67.3 0 013.5-1l1.2-.4c.5 0 .9-.2 1.3-.3l1.3-.2h1l.8-.2c.5 0 1-.2 1.6-.4a7.8 7.8 0 011.6-.2h.7v-.1l.4-.1.8-.3.8-.3.7-.2.6-.2h.6l.8-.3 2.1-.8c.4 0 .7-.2 1-.3l.6-.2h.1l1.4-.7 1.6-.7 2-1 .4-.2.5-.2 1-.4 2.2-1.1 1-.6 1-.6h-.1l.9-.6a26.3 26.3 0 001.5-1.4l.7-.8a21.2 21.2 0 001.4-2l.2-.6.5-1.7c0-.5.3-1 .4-1.5l.4-1.5.4-1.5.2-1.5.4-1.7.5-2.1.3-2.2c0-.7.2-1.4.3-2l.1-1a8.3 8.3 0 01-1.5-2l-.6-1-.4-1.3-.4-1.2c-.3-.8-.4-1.7-.5-2.5a25.3 25.3 0 01-.3-3.7v-1.2a31.3 31.3 0 01.5-6v-.1l-.5-1v-.3l-.6-.6-.3-.3-.4-.3-.2-.2-.5-.2-.2-.1s-.2 0-.3-.2h-.7l-1.5.6a12.2 12.2 0 00-1.5.8l-1.2.7-2.3 1-.7.3v-.1h.1v-.1h.1v-.2h.1v-.2h.1v-.2h.1v-.2h.1v-.4h.1v-.3h.1v-.3h.1v-.3h.1v-.2h.1v-.2l.1-.1v-.2h.1v-.2l.1-.1 1-.6 1.4-1 1.5-.8.8-.2c.4-.2.9-.4 1.4-.4h1l.6.3a4.4 4.4 0 011.2.9l.3.4.4.4.5 1 .2.3.2-.7.7-2.5.6-2.2.6-2.3.3-1.2a71.5 71.5 0 011-2.3c0-.4.2-.8.4-1.2l.3-.5.4-.7.5-1c.4-.5.7-1.2 1-1.8v.1a16.4 16.4 0 011-1.9l1.4-1.8a32.1 32.1 0 012.8-3l3.3-3.9v.1l1.6-1.8 1.7-1.8.9-.8 1-1 2-1.3 1.8-1.4 2-1.4 2-1.2 1.3-.5.8-.2a39 39 0 00-1-.8l-1.5-1.3-1.7-1.4-1.8-1.6-2-1.8-2.3-2 .1.1-1-.7-.7-.5-1.3-1-1.8-1-.9-.4a12 12 0 01-1-.5l-1.6-.7-1.5-.8a16.7 16.7 0 00-2.5-1l-1-.5-1-.2-.7-.2h-.2l-1.3.2-1.5.1-1.4.2-1.5.1h.2l-1.3.2-.8.1h-.5l-1.4.4-1.5.3-1.2.2.2.4v1a2.5 2.5 0 01-.3 1.4c-.2.4-.6.7-1 .9h-.5v.1h-.1l-.2.1h-.1v.1h-.2v.1h-.2v.1h-.2v.1h-.1v.1h-.2v.1h-.1v.1h-.2v.1h-.1l-.1.1h-.1l-.1.1-.2.1-.2.1v.1h-.2v.1h-.1l-.1.1h-.1l-.1.1h-.2v.1h-.2l-.1.1h-.2v.1h-.1l-.2.1h-.1l-.1.1-.2.1h-.1l-.1.1-.2.1h-.1l-.1.1-.2.1h-.1l-.1.1-.2.1-.2.1-.1.1h-.1l-.1.1-.2.1-.2.1-.1.1h-.1l-.1.1h-.1l-.1.1-.2.1-.2.1-.1.1h-.1l-.1.1h-.1l-1.4.6-1.4.5-1.4.6-.8.3-.8.4-1.6.8-1.8.9-1.7 1-1 .5-.9.5-3 1.4-1.5.7-1.6.7-1.5.7c-.8.4-1.6.9-2.5 1.2l-2.4 1-2.3.9a5 5 0 01-1.2.2h-1c-.5 0-1-.1-1.3-.4l-.7-.9.1-.1.1-.1h.1v-.1h.2v-.1h.2v-.1h.2v-.1h.4v-.1h.3v-.1h.2v-.1h1.3l.6-.2 1.2-.4 1-.4v-.2l-.4-.4-.3-.4-.3-.6a.8.8 0 011.3-.6l.4.7.6 1 .5-.2.7-.3.7-.3.8-.4-.2-.2-.7-.6-.2-.2a1 1 0 01-.4-.2l-.2-.3-.5-.6a4 4 0 01-.5-1.1l-.3-.8v-1c0-.3.1-.6.4-.7.3 0 .7.1.8.4l.4 1.3.3.6.5.9.2.4.2.3v.1l.1.2.4.5.5.6 1.2-.6 1.3-.6.5-.2-.5-.5c-.1 0-.2 0-.3-.2l-.1-.2c-.1-.3 0-.5.1-.6.3-.2.6 0 .7.2v.1l.2.1.4.4.3.3h.1l1.4-.5 1.3-.7.3-.1-.5-.2-.4-.2-.6-.2-.4-.2-.6-.3-.5-.4-.6-.7-.4-.4a16 16 0 01-1.7-2.7l-.4-1.2v-.8l-.9.5-.8.4.3.4.2.5.5 1 .4.6.4.7c0 .2.2.4.4.6l.5.9v.1l.4.4c.2.3.2.8 0 1-.1.2-.4.4-.6.4l-.4-.1-.4-.2-.4-.4-.5-.6-.5-.7-.2-.4-.2-.4a2.3 2.3 0 01-.2-.8l-.3-1.4-.2-.7v-.4l-.5.3-1 .6-1.3.5-1.5.7c0 .4 0 .8.2 1.2a7.8 7.8 0 00.3 1.3l.2.3.2.2c.2.2.3.6 0 .8l-.3.1c-.2 0-.4 0-.5-.2l-.2-.5a11 11 0 01-.3-1.2V110.5l-.7.2-.5.2h-.4v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.2h-.1v-.1l.3.4.3-.3.7-.6 1.4-1 .7-.5.8-.5 1.5-.7 1.7-.8.8-.3.8-.4.9-.5 1-.6 2-1 1.9-1.2 1-.6.9-.5 1.7-1.1 1.8-1.1 1-.7 1-.8 1-.7 1-.8.9-.7 1-.8 1-.7a17.5 17.5 0 011.6-1.2l.8-.4c.2 0 .4-.2.5-.4l.3-.3h.2v-.1h.2v-.1h.2l.1-.1h.1l.1-.1h.1a16 16 0 011.2.1l.4.3.5.3a4.6 4.6 0 00.6.4c.2.2.5.5.6.8l.4.8.5-.2h.2l.2-.1.6-.3.4-.2.3-.2 1.3-.5 1.1-.5 1-.3.6-.1.5-.2 1-.1 1.3-.2 1.3-.1h2.6c.9 0 1.7 0 2.5.2h6.2l.5.1.6.2.7.2a518.7 518.7 0 001 .2l1.2.3.7.2c.4 0 .8.3 1.2.4l1 .3.5.3c.3 0 .6.2.9.4l1 .6.8.5h-.1l.8.4.3.2 1.4 1 1.4 1 1 .7 1.1.8 1 .8 1.1.8 2.2 1.9 1 .8 1 1h.1c.5.5 1 1 1.5 1.3l1.7 1.6 1.7 1.6.7.7.8.7 1.1 1h.4a29 29 0 002-1.2 37 37 0 014-2l2-.8 1.4-.4.8-.3 1.3-.4.9-.3 1-.3a2.2 2.2 0 011 .1l1.2.5.5.4 1.5 1.2.8 1.4.5 1 .5.9 1.1 2 1 2.1.3.6.3.6v-.1l.6 1 .6 1 .9 2 .8 2 .7 2.2.5 1.2.2.8.3 1.6c.1.6.2 1.2.1 1.8v.6c0 .2-.2.3-.3.5l-.3.4-.9.8a5 5 0 01-1 .5l-1.1.4h-.2l.7.8 2 1.8.3.4.7.6.9.8.5.6.8.7 2 1.5 1.7 1.2 1 .8.5.4.3-.2.6-.5 1-.7 1.2-.6 1.2-.5 2.2-1.1 1.2-.6a1101.7 1101.7 0 003.6-1.6l1.2-.5 1.1-.5.4-.1c.3 0 .5-.2.8-.3l1-.2 2-.5 2-.4 2.1-.4h.4l.5-.1 3.7-.8a33.1 33.1 0 013.9-.5l1.2-.1h3.7l1.1.1c.5 0 .9.1 1.3.3l.6.2.8.2c.4.2.8.6 1 1l.2.6v.4l-.2 1c0 .4-.1.7-.3 1l-.4.7c0 .2-.2.3-.4.5l-.3.2-1 .6a114.8 114.8 0 01-3.6.8l-1.6.5c-.6 0-1.1.2-1.6.3l-1.6.4c-.3 0-.5 0-.8.2l-.6.1 1.4-.2a26.7 26.7 0 003.4-.3l1.7-.2 3 .1h1.3l1.4.2c.4 0 .9 0 1.3.2.4 0 .8.2 1.1.3.7 0 1.3.2 2 .3.7 0 1.4.2 2 .4l1.4.6 3.3 1.2 3 1.5 2.7 1.2 1.3.7 1.3.6 2.6 1.6 2.4 1.6 1 .8 1 1 1 .8 1.3 1.2 1 1 1 1.1c.8.8 1.3 1.6 2 2.4l1.6 2.4 1 1.5 1 1.6.8 1.1.7 1.1.8 1.1c.5.7.8 1.4 1.1 2l.6 1.3.6 1.4a22.4 22.4 0 011.3 6l.1 1.5v1.6l-.4 2.9-.4 3-.4 1.5-.5 1.7-.2 1.2a17.7 17.7 0 01-.5 2.3l-1.1 3v-.1l-.7 2.1-.9 2-.8 2.3-1 1.8v.1l-.7 1.4-.8 1.8-1 1.6-.8 1.3-.2.3v.1h-.1v.1h-.1v.1l-.9 1.1-1 1.3-.8 1.1-.6.6-.6.6a41.7 41.7 0 01-3.4 3l-1 .8-1.4.9a35 35 0 01-2.6 1.4l-1.4.7-1.4.7-1.3.6-1.4.6-1.2.5-1.3.5-1.4.5a31.9 31.9 0 00-2.7.8l-1.2.2-1.4.4-.7.2h-.6l-.7.1-2.7.2a23.6 23.6 0 00-4.1.7l-2 .2-2 .2c-.9 0-1.7-.2-2.4-.4l-.8-.2-1.1-.1-2-.4-.8-.2h-.7l-1.5-.5-2-.8-1.4-.4-1.5-.6c-.9-.4-1.7-1-2.6-1.5l-2.4-1.5-1.4-1-1.5-1-.6-.6-1-1-1-.7-1-1-1-1-1.7-1.8-1.6-2-.4-.5v.1l-.5-.6-.2-.3-1.8-2.3-.9-1.2a19.2 19.2 0 01-1.5-2.5l-.5-1.4-1.3-2.7-.4-1.5-.4-1.4-.6-2.7-.3-1.5-.2-1.4-.3-3v-2.8l.1-3 .1-1.4.2-1.5.3-1.5.1-1.4c.1-.6.3-1.3.3-2v-.4l.2-1.6.2-1.4.2-1.4-.5 1.2-.2.7-.2 1v.1l-.2.4-.6 2.4-.2 1-.2 1-.4 2.2-.4 2.2-.2 1.1-.1.5v.7l-.2 1.5c0 .6-.1 1.1-.3 1.7 0 .4-.2.8-.4 1.2v-.1a5.1 5.1 0 01-1.4 2c-.2.3-.6.4-.9.5l-.5.1-1-.1c-.3-.2-.8-.4-1-.7l-.4-.6a6.8 6.8 0 01-.7-1.2l-1-2.2-.6-2.4-.2-1.1-.3-1.4v-1.2c-.2-.7-.2-1.4-.2-2l.4-5 .2-2.4.4-2.5.3-1.3.3-1.2.5-2.3.5-1.6v-.2l.1-.2.6-1.4v.2c0-.4.2-.7.3-1l.4-1 .3-1 .6-1.3.5-1.2.4-1 1.2-2.4.6-1 .8-1.1.7-1 .3-.3-.3-.3-.8-.9-.7-.7-1.6-1.8-1.7-2-1.8-1.8c-1.2-1.3-2.5-2.6-3.8-3.7l-1-1v.1l-.3.5-.3.5v.2l.1.2.3.8c0 .3.2.5.3.7l.9 2 .5 1.7.3 1 .5 1.7.4 1.7-.1 2.2-.2 1.2-.2 1-.2.6-.4.8-1 .9c-.2.3-.5.6-.9.8l-.4.3v.7l-.3 2.6-.1 1.3-.3 1.4-.2 1.3-.2 1.2-.3 3-.3 3.8-.2 1.7c0 .6-.2 1.2-.4 1.8a39.4 39.4 0 01-.8 3.6l-.5 2c0 .3 0 .5-.2.8 0 .7-.2 1.3-.3 1.9l-.4 2.2-.4 2-.3 2-.8 4.2-.7 4c0 .6-.2 1-.3 1.6v-.2l-.3 1.8-.3 1.7-.8 3.5-.5 2.2-.3 1-.4 1.3-.6 2-.7 2.3v.2l-.1.1a25.4 25.4 0 00-1 3l-.6 2.2a30.2 30.2 0 01-1 3.5l-.8 2-1 1.8-.5.9a346.2 346.2 0 01-1.4 2.1l-.9.9a96.5 96.5 0 01-3.5 3.3h-.1l-2.2 2.1-2.4 1.9-1.3.8-.7.4-.7.4-1.3.7-2 1c-.7.2-1.2.5-1.8.8l-2 .8-4 1.6c-1.2.5-2.4 1-3.7 1.3l-4.2 1.4-2.8.9-3.2 1-1.6.5-1.6.5-.8.2-1 .4-1.8.7-2 .5-1.8.6-1.8.6-2 .6-2.1.6-2 .6-.2.1h.2l-3.1 1.1-1.6.6-.8.2-.7.2-1 .3-1.2.4-1.1.4-1.2.3-1.7.6-2 .8-6 2h.2l-.7.2-.4.1-1.6.6-1.7.5-.4.2.3.6.4 1.3.4 1.5.2.9v.7c.2.7.4 1.4.4 2.1v1.1l.2 1.1v1.3l-.1 1.1-.3 2.3v.2a29.6 29.6 0 01-.6 2.8l-.1.3v.1l-.4 1c0 .4-.2.7-.4 1.1l-1 2-1.6 4.5-.7 2.3-.4 1.1c0 .4-.2.8-.4 1.1l-.9 2-1 1.9-1 2-1.2 1.8-.4.6-.4.6-1 1.1-1 1.2-.5.6-.6.6-.4.5-.5.5-1 1.1c-.2.4-.6.8-1 1.1l-1 1-.7.7a6 6 0 01-.7.5l-.4.3-.1.1-.7.9-.8.5-1 .7-1 .5-1.3.8-1.3.8-1.4.6a17.5 17.5 0 00-2.7 1.7 81.1 81.1 0 01-2.3 1.6l-.7.3-1.3.4-1.3.4-1.3.4-1.5.2-1.7.4H96a74.2 74.2 0 00-4.4.2l-.4-.3z"/><path fill="#000" d="M99.4 195.8c-.6 0-1-.2-1.6-.3h.7l.1.1h.7v.1h.5l.1.1h.4l.1.1a6 6 0 01-1 0zm4.6 3.6a1.3 1.3 0 01-.4-.6l-.7-1.8-.3-.8c-.2-.4-.3-.8-.1-1.1 0-.2.3-.4.6-.4l.3.1.3.4h.5c.3 0 .5.2.7.4l.2.5.3 1 .2 1.3c.1.4 0 .8-.4 1a1 1 0 01-.6.2c-.1 0-.3 0-.5-.2zM92.2 197a1 1 0 01-.5-.7c-.1-.3 0-.6.2-.9a2 2 0 01.7-.5l1.2-.6.6-.4h-.1l.7-.3h.4c.2 0 .3.2.3.4v.4l-.4.5h-.1l-.1.2-.3.4-.6.5-.6.4a1 1 0 01-1 .7c-.1 0-.3 0-.4-.2zm76.3-39.5c-.3 0-.5-.2-.6-.4 0-.2 0-.5.2-.7l-.2-.3c-.2-.4-.2-.9.1-1.2l.6-.5.6-.2h.2c.4-.1.8-.4 1.3-.4h.4l.5-.2.7-.1 1-.4h.4l.2.1-.1.2-.5.3-1 .6-.2.2h-.1c0 .2 0 .4-.2.5l-.3.4-.6.4-.4.3-.6.5-.4.3-.3.2v.1l-.2.1-.4.2zm-35.2-35.6h-.3l-.2-.2h-.4l-.3-.2a2.5 2.5 0 01-.9-1l-.1-.3a7.3 7.3 0 01-.3-1c0-.1 0-.3.2-.3 0-.1.2-.1.4 0l.1-.1h.3v-.1c0-.1 0-.3.2-.3v-.2l.3-.3c.2 0 .4.1.4.3v.1l.1.2.2.5.1.3.3.3.5.6.2.3.3.4v.5h-.4l-.1.1c0 .2 0 .4-.2.4h-.4zM87.8 95.5l-2-.1-1.8-.2a9.7 9.7 0 01-1.4-.2h-.2l-.3-.1-1.7-.6-1.8-.8a39 39 0 01-2.4-1.4l-.7-.5-.6-.4-.8-.6-.6-.6-1.3-1.3-1.1-1.6-1-1.7-.4-.8-.6-1-1-1.6-1.1-1.5-.5-.8-.5-.8a22.5 22.5 0 01-2-5.3l-.1-1a12 12 0 01-.3-2v-.8a37.2 37.2 0 01-.2-2l.1-2 .2-1.8c0-.3 0-.7.2-1l.2-.9c.3-1.2.5-2.5 1-3.7l.7-1.8.8-1.8.4-1 .5-.8c0-.2.2-.4.3-.5 0-.2.2-.4.3-.5l.3-.5.3-.3 1.2-1.5.5-.7.6-.7 1.2-1.4.9-1h.3l.6-.2.7-.1a9468.4 9468.4 0 00-2.3 2.5l-.9 1.2-.8 1-1 1.5-.5.7-.4.7-.8 1.6-.4.8-.3.7-.7 1.7a23.3 23.3 0 00-1.3 5.7l-.2 2.2v1.3l-.1 1.1v2.2l.3 2.2.8 3.6.2.8.3.7a18.4 18.4 0 001.8 3.1l1 1.6c.3.2.5.5.6.8l.5 1 .4.7.5.8.2.4.5.8.5.7 1.5 1.6.2.2a13.8 13.8 0 001.6 1.4l1.7 1c.7.5 1.5.9 2.2 1.2l1.3.4 1.2.4a13.8 13.8 0 002.6.4l1.3.1 1.4.2h3.9l1.6-.3a93.1 93.1 0 003.8-.6l2.3-.6 1-.3 1.4-.3 1.1-.3 1.3-.3.6-.2.6-.3c.3 0 .5-.2.8-.3l.7-.3a27 27 0 001.7-.5h.1l.2-.3 1-.8.4-.2.3-.3c.1 0 .2 0 .3-.2a24.1 24.1 0 001.5-1.8l.6-.9 1.2-1.5.6-.7.6-.7 1.3-1.4.7-.8.6-.6.3-.4.3-.3 1-1.6.6-1 .3-.9a40.3 40.3 0 00.5-1.5l.1-.5.1-1a108.9 108.9 0 00.3-3.7l.1-1.8v-6.3l-.3-1.8a43.7 43.7 0 00-1-3.8c0-.4-.2-.8-.4-1.3l-1.1-2.4-.6-1.2a14 14 0 00-.6-1l-.4-.7-.6-1-.9-1a18 18 0 01-.8-.9l-.2-.3-.5-.6-.5-.5-.5-.6-.5-.6-1.4-1.2a22.5 22.5 0 00-5.6-2.9c-.3 0-.5-.2-.8-.3l-.7-.2-1.5-.5-.8-.3-.7-.2h.1l-1.9-.5-1-.2-2.2-.2H94.6l.8-.8.1-.2a11.2 11.2 0 011.8.1c.6 0 1.2 0 1.9.2l1.8.4 1 .3.7.2 1.9.6.8.4.9.2a26.4 26.4 0 013.4 1.6l.9.5.8.5 1.5 1.2 1.3 1.4.6.7.6.7.6.7.7.8.8 1c.3.2.5.6.7 1l1 1.6.8 1.8.9 1.8.7 1.8a20.6 20.6 0 011.3 5.7l.1 2 .1 1.9a25 25 0 010 3.8l-.2 2-.2 1.8-.1 1.1-.2 1-.2.6c-.1.7-.4 1.3-.7 2l-.4.9-.8 1.3-.6.8-.7.9-.6.6-.6.7-.8 1-.7.7-.7.9-.3.4-.4.4-.7 1-.7.9-.5.7-.7.8-.7.8-.9.6-1.1.7c-.4.2-.8 0-1-.3l-.1-.1h-.2l-1 .4-1.2.4-1.4.6-1.4.4-1.5.4-1.4.4-1.9.6-.8.2a48 48 0 01-2.8.7l-1.8.2h-.3l-1.5.2h-1.6l-1 .1h-1z"/><path fill="#000" d="M123.6 122c-.2-.4 0-.8.2-1 .4-.3.8-.4 1.3-.6a40 40 0 003.1-1l2.4-1.2 1.3-.9a29.6 29.6 0 011.5-.9l.2-.2.2-.3.3-.7v-.2l.1-1.3v-.3a1.4 1.4 0 000-.4l-.2-.2a10.3 10.3 0 00-.6-.7l-.3-.3H130h.1-.8l-1.3.2-1.4.1a58.9 58.9 0 00-3.4.7c-.6.2-1.2.4-1.8.4-.3 0-.5-.3-.5-.6s.4-.5.7-.5h.6v-.1l1.4-.5 1.3-.4 1.4-.5 1.4-.3c.7-.2 1.4-.5 2.2-.6h1l1.2-.2h1c.4 0 .7 0 1 .2l.5.4.5.5c.5.6.8 1.3 1 2 .2.7 0 1.4 0 2v.2l-.1.6-.2.6-.3.6a4 4 0 01-1.4 1.6l-2 1.3-1.2.7-.6.2-.3.2h-.2l-.1.1h-.1l-.2.1a17.2 17.2 0 01-3.5 1.2l-1.2.2h-.1l-.1.1h-.3a.8.8 0 01-.6-.4zm46 31.4a1 1 0 01-.5-.4 1 1 0 010-.9v-.2l.4-2.1a22.3 22.3 0 00.4-3.8v-1l.2-1.2.2-2.1.2-2.3v-2.1l.2-2v-2.4a165.3 165.3 0 010-4.3 51.9 51.9 0 01-.2-7v-8.7l-.1-.8v-2.6l-.1-1.1v-1.2l-.2-1.3v-1.1c0-.2.2-.3.3-.2l.2.2.2.3.2.8a26.6 26.6 0 011.1 4.6v.2l.2 1 .2 1.1a27.2 27.2 0 01.4 4.7v4.6l.2 2.3a612.5 612.5 0 00.2 6.9v3.3l-.1 1.2v1l-.1 1v1.2l-.1 1-.2 2.3-.2 2.2-.2 2.1-.1 1.4-.3 1.5-.2 1.3-.2.9-.2.6a3 3 0 01-.5.9 1 1 0 01-.8.3 1 1 0 01-.5 0z"/><path fill="#000" d="M128 192.3c-.3-.4-.3-1.1 0-1.4l1-.8 1.2-.7a92.7 92.7 0 013.4-2l1.1-.7 1.1-.7 1-.7 1-.7h.1c.6-.5 1.2-1 1.8-1.3l1-.6.9-.7 1.8-1c.6-.5 1.2-1 1.8-1.3l.8-.6.8-.5a78.7 78.7 0 002.2-1.7l1-.8 1.2-.8 2.4-2 1.1-1 .6-.5.6-.6 1.5-1.6 1.4-1.6 1.4-1.7 1.4-1.7 2.2-3 1.3-1.7 1.2-1.8 1.2-1.8c.4-.5.7-1.2 1-1.8.2-.1.2-.2.3-.4l.2-.4.1-.5.2-.5.1-.5.1-.4.3-1.2c0-.2.3-.3.5-.2.2 0 .3.3.1.5l-.1.6-.3 1-.2 1c0 .4-.2.7-.3 1l-.4 1-.4 1.2-.5.9a42 42 0 01-1 1.8l-1.4 2.4a32.7 32.7 0 01-1.7 2.4v-.1a163 163 0 01-5.6 6.9l-1.4 1.5a32.8 32.8 0 01-3.4 3l-1.6 1.4-2.5 1.8-1.6 1.4-.5.3-.4.3-1 .6c-.5.5-1.2.9-1.8 1.3l-1 .6-.8.6-1.3.9a25.3 25.3 0 00-2.2 1.5l-.6.4-1.4.9-1.2.8-1.3.8-2.6 1.5-1.2.7h.1l-.8.5-.8.6-.5.1c-.2 0-.5 0-.7-.2z"/><path fill="#000" d="M124.6 206h-.5l-.8-.2-.6-.2c-.5-.1-.8-.4-1.2-.7l-1-1-.8-.6-.5-.7-.7-.9-.7-1-.6-1-.5-.8-.4-.6-.8-1.3-1-2.3v-.2a1 1 0 01.3-1.2c.5-.3 1.2 0 1.3.5l.2.5a18.2 18.2 0 001.2 3l.6.8.3.6.7 1 .6 1a26.7 26.7 0 00.6.8l.3.4.5.5 1.4 1.3c.1 0 .2 0 .3.2h.3l1 .3a10.7 10.7 0 001.4.1 5.1 5.1 0 002.2-.5h.1l.3-.3.5-.6v-.1l.1-.1v-.2l.1-1.2a19.7 19.7 0 000-2.5l-.4-2-.1-1.2-.3-1.1-.5-1.7-.3-.8-.4-1-.6-1.6-.6-1.7-.3-.7.2-.2.1.2.4.6.3.6.6 1 .3.4a16.2 16.2 0 01.9 1.4l.5 1 .4.8c.3.6.7 1.1.9 1.8l.3 1 .3 1.1.5 2 .1 2.2v1l-.1.5-.1.4-.2.8-.6.9-.5.4-.9.7-1.3.4-1.5.2-1.3-.1zm47.6-51.3l-.4-.4-.4-.4-.8-.7c-.1 0-.3 0-.3-.2v-.1h-.1v-.1a.5.5 0 01-.3-.4c0-.3.2-.5.4-.5h1.4l1 .3h.5c.5.1.9.5 1 1 .2.2.1.6 0 1a1.3 1.3 0 01-1.2.7c-.3 0-.6 0-.8-.2z"/><path fill="#000" d="M115.3 197a1.8 1.8 0 00-.4-.2 9 9 0 00-1 0l-2.4.1h-2.7l-2.5-.3h-2.7l-2.5-.3-2.5-.6-1.2-.3-1.1-.4-1.2-.5c-.4-.1-.7-.3-1.1-.6l-1.3-.7-1.2-.8-1.4-.8a36.5 36.5 0 01-2.4-1.8l-.5-.5-.6-.5-2-1.8-1.7-1.8-.9-1-.8-1-1.5-2.1-1.5-2.2-.6-1-.5-1-1.4-2.2c-.5-.7-.8-1.5-1.2-2.2-.5-.8-1-1.6-1.3-2.4l-1-2.6-.8-2-.8-2.2a53 53 0 01-.7-2.1l-.4-1.2-.5-1-.2-.7-.3-.8-.6-1.5-.8-3.1-.4-1.2a18 18 0 01-.3-1.3l-.5-2.5-.6-2.5-.5-2.3-.4-1.3-.3-.8-.2-.8c0-.1 0-.3.2-.4.1-.2.3-.2.5-.1.4 0 .6.4.8.8l.5 1c.3.6.6 1.2.7 1.9l1 4 .6 1.8.4 1.7.6 1.6.5 1.9c0 .4.2.7.3 1.1l.4 1.2.4 1.3.4 1.2.8 2.5.8 2.7 1.2 3 1 2.8 1 1.8.5 1 .5.9a165.2 165.2 0 013.2 5.1l1 1.4.8 1 1 1c.2.4.5.8.8 1 .3.4.6.8 1 1l1.4 1.5.3.3 1.2 1a25.7 25.7 0 012 2l.8.6 1.6 1 .8.5.8.6 1.3.7.8.4 1.2.4 1.2.4a27.4 27.4 0 005.4.8h3.4l3.4.5h-.1l2 .1 1.7.2c.5 0 1 0 1.6.2.4 0 .6.4.6.8-.1.4-.4.6-.8.6h-.1z"/><path fill="#000" d="M80 195.7h-.4l-.9-.3c-.3 0-.6-.2-.8-.3l-.5-.2-.1-.1-.7-.4-.8-.8-.6-.8-.5-.7-1.1-1.8-.3-.7v-1.9l.3-1 .6-.6.7-.8a12.9 12.9 0 001.5-1.3l.5-.4.6-.5.6-.5.6-.5.4-.4.4-.2.1-.2c.1-.4.7-.5 1-.1v.2l.2.3v.4l-.2.6-.6.6-.5.6-.6.6-.3.4-.4.4-.7.6-.6.6-.6.6-.8.8v.2l-.3 1.1a12.2 12.2 0 00.5 1.1l.5.8.6.8a9.6 9.6 0 001 1h.1l.1.1.6.3a10.8 10.8 0 001.2.3h.6l.8-.3.4-.2.5-.3.8-.4h-.1c.2 0 .4-.3.6-.4l.6-.4.4-.4.6-.4.5-.4.4-.2.2-.2.5-.5c.2-.3.4-.6.8-.7.2 0 .4 0 .6.2.2.1.3.4.2.7a3 3 0 01-.6 1c0 .2-.2.4-.3.5l-.3.2-.3.3-.4.4-.6.4-.3.4-.4.3-.9.6-.8.6-.4.3-.4.2a6.3 6.3 0 01-1.3.6h-.4l-.7.2zM74.5 66.9v.7l.1.1.1.2.1.2.4.4h.1l.3.3h.1l.4.2h.6l.3.1h.4l.6-.2.2-.3.1-.2.1-.4v-.6l.2-.4.1-.9v-.7l-.1-.4-.1-.2-.1-.1-.1-.1-.1-.1H78l-.2-.1h-1.3l-.1.1-.3.1-.3.2-.2.1-.2.2a1.7 1.7 0 00-.1.2c-.1.2-.4.3-.6.3l-.1.2v.4l-.1.7zm4.4 7.8h-1.2c-.5-.1-1.1-.1-1.6-.4l-1.3-.8a7.3 7.3 0 01-3.1-4.3 17.9 17.9 0 01.4-4.4c0-.4.4-1 .7-1.4a13 13 0 011.4-1.6l.6-.4 1.1-.6 1-.5.6-.2h1.9l.8.2.5.1.7.3h.3a5.7 5.7 0 011.4.4l.6.4.8 1 .5 1a16.1 16.1 0 011.1 4.6v.7l-.2.8a6.8 6.8 0 01-1.5 3l-1.3.9-1.4.9a10.5 10.5 0 01-2.7.4zm68.3-71.4l-.8.7v.4l.2.3.2.4.5.7a12.2 12.2 0 001 1 28.6 28.6 0 01.2-.7l-.1-.4-.3-.6-.3-.6-.1-.3-.3-.5v-.5h-.2zm-12.8 30.2a8.8 8.8 0 00-1.4.5l-.2.2a5 5 0 00-.4.3l-1 1-.5 1-.5.7-.3.6-.2.6v.2l-.1.8v1l.3 1.2a22.4 22.4 0 00.4.9l.2.4h.1l.1.1.2.1h.3l.8.1a2.8 2.8 0 00.7 0 10.8 10.8 0 001.5-.7c.2 0 .3-.2.5-.3l.8-.6 1-.5 1.2-1c.3 0 .5-.2.8-.3l.7-.4c.5-.2 1-.5 1.6-.6 0-.2.2-.3.4-.3v-.1a6.5 6.5 0 010-.2l-.3-.6a7.5 7.5 0 00-.7-1.2l-.4-.4-.5-.5-.5-.6-.5-.4-.6-.4-.3-.2-.9-.2h-.2l-1.8-.2h-.3zm10 4h1.1l1.2.3.6.2.8.3 1 1 .7.8.4.9.1.5.1 1.2v1l-.1 1-.2 1.1-.2 1v.5a4.6 4.6 0 01-.7 1.3l-.2.2.8.6 1 1.4.5.7.5.8.3.5.1-.1.5-.3h.2c.2-.2.5-.2.8-.3l1.1-.8 1-.8 1.5-1.3.6-.5.7-.7 1.7-1.9.9-.9.8-1 .6-.8.6-.9a33.7 33.7 0 002.3-5.2l.2-1 .2-2.9.1-2.6v-2.4l-.1-1.2-.2-1.3a69.2 69.2 0 00-.5-2.8 34.5 34.5 0 00-2.6-6.2l-1.4-2.5a14 14 0 00-.6-.8l-.5-.7-.7-.8-1-1-.5-.6-.3.3-.6.4a7.2 7.2 0 01-1.5.6H153l-.5-.1a12.8 12.8 0 01-3-.7c-.6-.3-1.1-.5-1.6-.9l-.9-.8-1-1a16.1 16.1 0 01-1.1-2 4.5 4.5 0 01-.3-2.2V2.6h-1.2l-1.7-.2h-1.8a37.2 37.2 0 00-2.2.2l-.3.1-1.1.3-1.2.3a19 19 0 00-2 .9l-.8.4-.8.5-.8.6-1.6 1.1-1 1-1.6 1.6a23.2 23.2 0 00-2.7 3.3l-.6 1-.4.6-1 2-.5.8-.5 1-.3.6-.2.7h.4l1.5.6 1.4.7 1.3.7 1.3.8c1 .6 1.9 1.4 2.8 2.2a10.5 10.5 0 011 .9l.2.3.5.5.7.5.2.2.8.7 1 1.2.5.7.6.8 1 1.5.5.7v-.1h.1l.6.2.7.1.6.3.7.4a7.7 7.7 0 011.4 1.2l.4.5.7.6.5.8.5.9.2.5.3-.2.5-.2h1.4zm-14.8 17l.1.3.6 1a5.4 5.4 0 00.6.7c0 .1 0 .2.2.2l.5.3.4.3a3.6 3.6 0 00.9.2h1.6l.5-.3c.2 0 .3-.2.5-.3l.2-.1.2-.2.7-.8.6-.5.6-.7.4-.4.5-.4.5-.4.5-.4.5-.4.4-.2.6-.3 1-.2.9-.3.3-.1v-.2c.3-.2.7-.2 1 0l.2-.2.6-.2.5-.4c.2 0 .3-.2.4-.3l.2-.1.7-.8.2-.3.5-.7.5-.6.1-.4.2-.3.3-1.7v-.2a25.4 25.4 0 00.2-3 6.4 6.4 0 00-.4-1v-.2l-.3-.4-.6-.6-.2-.2h-.2l-.5-.2-.5-.2h-.1l-.6-.1h-.8l-1.2-.2h-.2l-.4.3h-.2l-.4.2h-.8a4 4 0 00-.4.1l-.2.1-.4.2-.8.5-.8.6-1 .8-1.2 1-.7.6-.7.6-.8.4a7.5 7.5 0 01-2.2.6h-.7l-.5-.1-.5 1-.3.6-.3.8-.2 1.3-.2 1.3-.2 1.4-.1 1.6v.3l.1.9V54l.1.4zm11.2-.7l-.5.5-.3.3-.6.4-.1.1-.8 1h-.2l.7 1 .5 1 .5.7.4.8a9.5 9.5 0 01.8 1.8l.2 1 .3.6.3.8a10.7 10.7 0 00.6 1.4l.2.2h.1l.2.1a4.2 4.2 0 00.7 0h.3l.8-.3a30.5 30.5 0 003.2-1.8l.1-.1.2-.3.4-.5.2-.4v-.4a2 2 0 000-.6l-.7-1.2-1.3-2-.6-1-.6-1.1-.2-.3-.6-.7-.4-.7V54l-.9-1.3h-.1l-.6.3-.6.2-.5.1h-.1l-1 .5zm22.3 16.7l.2.4.7 1.6.6 1.7v.2l1.3-1.5 1.3-2c.4-.6.9-1.2 1.2-1.9l.7-1.1.5-1.1.4-1 .3-1 .4-1.4.2-1a16.8 16.8 0 000-2.2l-.2-.7-.1-.3a3.9 3.9 0 00-.5-.9l-.2-.1-.2-.2h-.3l-.2-.1H168.2a13.9 13.9 0 00-1 .7 25.6 25.6 0 00-2.4 2.2l-1 1-1 1-.5.4-.2.1-.3.2-.2.2-.5.4-.5.5-.5.3.2.3.3.5v-.1l.6 1.1.7 1.2.5 1.1.6 1.3v.2zm6 22.2a.7.7 0 01-.3-.4V92l-.1-.3-.5-1.6-.3-.7-.3-.9-.3-.8-.3-.7-.4-1-.2-.7-.3-.9-.2-.8-.6-1.7c0-.3-.2-.5-.3-.8l-.2-1-.6-1.6v-.2l-.2-.7-.3-.8-.6-1.5-.5-1.4-.6-1.4-.7-1.6-.8-1.6c0-.3-.2-.6-.4-.8l-.4-.8-.8-1.6-.7-1.2-.7-1.1a25.3 25.3 0 00-2-2.9l-.7-1-.6-.7-.6-.8-.4-.6-.5-.8-.5-.7-.6-.7-.4-.7-.5-.7a25 25 0 01-.6-1l-.5-1c-.4-.5-.7-1.2-1-1.8l-.4-.6v-.1l-.5.6-.5.4-.9.8-.6.4a4 4 0 01-.5.2l.3.5 1 1.3.7 1 .5.6 1 1.7a37.3 37.3 0 011.7 2.6c.3.5.4 1 .5 1.6 0 .9-.5 1.7-1 2.4l-.3.4-.9.6-.9.6-.9.4a43.2 43.2 0 01-3 1h-.9c-.3 0-.7-.1-1-.3a4 4 0 01-.4-.3l-.7-.8-.5-.8-.3-.6a6 6 0 01-.5-1l-.4-1c0-.4-.2-.7-.4-1 0-.4-.2-.7-.3-1l-.8-2-.3-.8v-.1l-.8.7c-.4.4-.9.5-1.3.8-.5.2-1 .2-1.5.2h-1.4l-1.7-.7a5.2 5.2 0 01-1.7-1.6l-1-1.5-.2-.8-.2-.5V51l.3-2.2c0-.4.2-.7.3-1l.4-1.1 1.1-2 .3-.3a2 2 0 01-.7-.6l-.4-.7a4.7 4.7 0 01-.7-1.8l-.1-1a7.1 7.1 0 010-2.6 7.4 7.4 0 011.2-2.2l.5-.8.4-.4c0-.2.2-.3.3-.4l1-1 1-.5.4-.2.7-.2h.3l-.4-.6-1-1.3-.7-.9-.6-.8-.3-.4-.2-.2-.8-.8-.3-.3-.3-.3-.4-.2h-.3l-.5-.4-.5-.3-.7-.5-.6-.4-.7-.4-1.3-.6-1.2-.6-1.8-.7-2.8-1-1.3-.3-1.3-.4-1-.2a11.5 11.5 0 01-1.4-.3h-.1l.5-.5 1.2-1.2.3-.3a9.8 9.8 0 012.2.4l1.5.4.1-.8.3-1 .1-.7.3-.7.5-1.4 1.3-2.6.8-1.1.9-1.2c.6-.8 1.2-1.5 2-2.2l2-2 2.5-1.6a22 22 0 012.4-1.3l2.7-1h.7l1.3-.4 1.5-.2 1.3-.2h1.4c1 0 1.9 0 2.8.2l1.4.1.4.1.3-.1 1.2-.6h1c.4-.2 1-.3 1.5-.3.4 0 1 0 1.4.2.4 0 .7 0 1 .2a8.6 8.6 0 012.7 1l.7.5a7.6 7.6 0 011.7 1.8l.5 1 .5 1 .3.6c.1.2.3.5.3.8v2l.8 1 1 .7.8 1v.1l1 1.1.7 1.3.7 1.2.7 1.1.7 1.4.6 1.3a66 66 0 011.7 5.5l.3 3c0 1.8.2 3.7 0 5.6l-.3 3-.3 1.5-.2.8-.5 1.3-1.2 2.8-.7 1.2-.8 1.3a35.4 35.4 0 01-2.7 3.4l-.9 1a37.8 37.8 0 01-4.5 4 4.5 4.5 0 01-1.9 1h-.4l.4.6.6.8.5.8v.2l1 1.4.5.7.5.7 1 1.6 1 1.6v.1l.6.8h.1l.1-.1 1-1.4a4.4 4.4 0 01.7-1l.5-.5.5-.6.8-1 .3-.4.5-.6.5-.6.5-.5a6 6 0 012.4-1.6c.5-.2 1.2-.2 1.7 0 .6 0 1.2.2 1.7.6l1 1.3c.3.4.5 1 .6 1.5.2.7.2 1.4.2 2 0 1 0 1.8-.2 2.7a58.4 58.4 0 01-.7 2.7l-.4 1.1-.5 1.3-.9 1.9a35.8 35.8 0 01-3.6 5.3 13.7 13.7 0 01-1 .9l.3.7.2.8.3.8.6 1.7.6 1.7.6 1.7.2.9.4 1.3.4 1.3.3 1 .4 1.2.2 1a8.4 8.4 0 01.1.7v.4c0 .3-.3.5-.6.6l-.4-.1zM63.4 135.6l-.2-.2-.4-.8-.5-.8-.4-1-.2-.2v-.2l-.4-.5-.2-.4-.3-.5-.2-.3v-.1l-.2-.2-.2-.6-.3-.5-.1-.2-.2-.3-.6-1.1-.8-1.3-.5-.6-.4-.6-.4-.4-.4-.6-.4-.4-.3-.3-.2-.2h.3v-.1h.1l.2.3.7.7.6.8a44.1 44.1 0 011 1.3l.2.4.3.4.2.4.6 1 .2.4.1.2.2.3.3.7.2.5v.1l.2.2v.2h.1l.2.3.2.4s0 .2.2.3l.1.4.2.4.4.8.2.4.2.4.6.9.1.1v.1zM42.3 72l-1-.3c-.5-.2-1-.4-1.7-.5l-.8-.4-.8-.4-.8-.4a12 12 0 01-.9-.5l-.7-.5-.7-.4-.5-.4-.4-.3-1.1-1-1.4-2-.3-.5-.2-.4a8.5 8.5 0 01-.4-1.2l-.1-.3-.1-.6-.1-1V60a22.7 22.7 0 010-1.7l.2-.9A6.5 6.5 0 0131 56l.2-.5.5-.6.6-.6.4-.4c.3-.3.6-.4.9-.5l.6-.3.4-.1 1-.4H37l1.1.1 1 .4.2.1.7.4.9.5.8.5.4.3c.2 0 .3.2.5.3l1.4.7.7.4.5.2v.2l.3.3.3.2.3.3.4.3.1.3.2.7h-.2l-1.4-.8-.7-.4-.7-.4-.4-.2-1-.5-.7-.4-.5-.4-.5-.3-.6-.4-.5-.4-.6-.3-1.2-.6h-.1l-.4-.1-1.1-.1h-.3l-.4.1-.6.3-1 .4-.2.2h-.1l-.2.2-.8.8a12.9 12.9 0 00-.7 1.2l-.2.7-.1.7-.2 2.2v1l.3 1 .3.7a22.5 22.5 0 001 1.8 15 15 0 001.8 1.8l.6.4.4.3 1.3.7 1.8.9.9.5.9.3.7.4c.1 0 .3 0 .5.2l.6.2 1 .6h-.1.2l.2.3.3.3v.1l.1.1c0 .1 0 .2-.2.2H42.3z"/><path fill="#000" d="M46 64.3a.5.5 0 01-.3-.4h-.1l-1-.4-1-.3-2.2-1c-.3 0-.6-.3-1-.4l-1-.5-.9-.5-1.1-.7a.9.9 0 01-.4-1c0-.2.2-.3.3-.4.2-.2.5-.2.7-.2l1.3.5 1 .5 2 1.1 2 1.3a21.4 21.4 0 012 1.5l.2.4c0 .3-.1.5-.4.5z"/><path fill="#000" d="M37.4 62c0-.2 0-.4.2-.5.2-.2.6-.2.8-.2a21.2 21.2 0 012.3-.3H42c.3.1.5.4.5.7 0 .3-.3.5-.6.5H41l-.5-.1c-.7 0-1.3 0-2 .2h-.7c-.2 0-.4 0-.5-.2zm59.9-43.3l.4-.4h.7l.9-.2h2.2c-.3 0-.4 0-.5.2l-.5.3h-1l-1 .1h-1.3z"/><path fill="#000" d="M54.2 122.8l.4.1.2.2.3.1h.8l.4-.2.4-.2.2-.1 1.2-.5.2-.1.8-.5.9-.5 1.3-1 .7-.6.5-.5a20.7 20.7 0 001.3-2.5l.4-1 .1-.7.2-2.3a16.1 16.1 0 00-.4-3l-.6-1.5-.2-.4v.2l-.7-1.7-.7-1.5-1.7-3.3-1.8-3.2-.9-1.7a54.5 54.5 0 01-3.5-8.8l-1.1-3.7-.9-3.7-.3-2a42.8 42.8 0 01-.8-5.6 49.8 49.8 0 01.2-11.1l.3-1.8.5-1.8.2-.8.3-.9.8-1.5.4-.8.7-.8.5-.6.6-.7.5-.4a17.8 17.8 0 011.7-1.6l1.7-1.3 2.8-2 1.5-1c.4-.4 1-.7 1.5-1l1.4-1.1 1.6-1.2 1.5-1L71 40a80.8 80.8 0 012.2-1.6l1-.8 1-.7 2-1.5 1-.9 1.4-1 2.3-2a127.2 127.2 0 005-4l1.3-1.2 1.3-1 2.1-1.8 2.5-2 1.2-1 1.2-1.2 1.1-.9 1-1L100 16l.6-.7.6-.6-.7-.8a34 34 0 00-1.3-1.2l-1.2-.9-1-.8-1.3-.9v.1l-.2-.2-.8-.4-1-.5a44 44 0 00-1.8-.9c-.2 0-.5-.1-.7-.3L89 7.2l-2.2-.8a27.2 27.2 0 01-2-.4l-1.3-.2-1.2-.2-1.5-.2-1.8-.1-1.7-.2H63.2l-1.6.2-3.3.5-1.7.4-1.8.4-1.7.3-1.7.5-3.5.9-1.4.4-1.3.3-1 .3-.9.4-2 .7c-.4 0-.7.2-1 .3l-1 .3-1.9.8-1.5.6-1.6.9-1.6.8-1.6.9c-1 .5-2.1 1-3.2 1.7l-1.5.9-1.5.8a30 30 0 00-2.8 2L20.4 22l-1.6 1.4h.1l-.7.7-1 1c-.4.6-1 1-1.5 1.6a46 46 0 00-6 8.3v-.1L9.1 36l-.3.7c0 .3-.2.5-.3.7l-1 2.5-.4.8c0 .3-.2.6-.3.8l-.6 2-.7 2-.5 1.8-.6 2a102 102 0 00-1.3 5.1L2.7 57l-.3 2.8-.3 3-.3 6.2a66.4 66.4 0 00.7 9l.6 3.4.4 1.7.2 1 .2.8L5 88.8l.8 2 .8 2a46.5 46.5 0 005.9 10.1l1 1.4 1 1.2 1.2 1.2a75.7 75.7 0 006.8 5.7l1.6 1 1.3.7 1.6.8c1.1.6 2.3 1.3 3.6 1.8h-.1l2.3.8 2.3.9 2.4.8 2.6.7 3 .7 1.6.3c.6 0 1.2.2 1.7.3l3.2.5 1.6.4a31.2 31.2 0 012.9.7zm-.3 1.7a.7.7 0 01-.6-.6H53l-1-.2-.9-.2-1.2-.1-1.3-.2-1.8-.2-2-.3-1.8-.2a57.5 57.5 0 01-3.6-.8l-1.9-.5-1.9-.6-1.7-.6-1.6-.6-1.8-.7a22.2 22.2 0 01-3.4-1.6c-.6-.2-1.2-.6-1.7-.9l-1.7-.8-1.6-1-1.6-1-1.5-1-1.5-1.2c-1-.8-1.8-1.7-2.7-2.6a28.7 28.7 0 01-4.8-5.8L9 101l-.9-1.5a118.6 118.6 0 01-3.4-7.1 67 67 0 01-1.4-3.6l-1.1-3.6-.2-.8-.3-1.2c0-.6-.2-1.1-.3-1.7l-.8-4-.2-1.9-.2-1.9A78.4 78.4 0 010 68v-2a61.7 61.7 0 01.6-7.5A39.4 39.4 0 012 51.3l.9-3.2v.1l1-3.6L5 40.8l.3-.8.4-.9.4-1 .4-.7.7-1.7a14.2 14.2 0 011-1.8l1.5-2.6a33.2 33.2 0 015.6-6.8l.6-.6.6-.7 1.5-1.5 1.3-1.2 1.5-1.4 1.5-1.1 1.6-1.1 1.5-.9 1.7-1 3.3-1.7 1.6-.8 1.7-1 1.7-.8A38.3 38.3 0 0142 8l1.5-.6 3.1-.8 4.4-1 2.1-.6 1-.2 1-.2 1.8-.4 1.9-.5 1.8-.3 1.9-.2h1.7L66 3h12.8l2.8.2 1.5.2 1.4.2 1 .1 1 .3 1.2.2 1 .4A63.6 63.6 0 0092.5 6L95 7l1.1.7 1.2.6 1.1.8 1 .7 1.2 1 .5.4.4.4.9.9 1 1.2.2.3.2.6c.1.5 0 1-.3 1.4l-.4.6-1 1.1-.6.4c-.2 0-.3 0-.5.2l-.7.6c-.2 0-.3.2-.4.3-.2 0-.3.2-.4.3l-.3.4a.7.7 0 000 .9l-.4.4-1 1-1.2 1L94 25l-2.2 1.8-1.2 1-1.1.7-5.8 4.9-2.8 2.4-1.5 1.2-1.4 1.2-1.5 1.1-1.5 1.2-1.4 1-1.6 1.1-1.5 1.2-1.5 1-1.5 1.2-1.4 1-2.5 1.9-2.5 1.8-1.1.8-1 .7-.8.7-.6.6-.5.5a18.1 18.1 0 00-1.5 2c-.3.3-.5.7-.6 1.1l-.3.8a22.7 22.7 0 00-1 3.8l-.3 1.2a60.5 60.5 0 00-.4 6.4l.2 3.3.4 3.5.7 4.2.6 2.2.4 1.8 1.5 4.2a119.9 119.9 0 003.1 7.4l.9 1.6.8 1.7 1.7 3.3.8 1.6a48.9 48.9 0 012 5.1 18.6 18.6 0 01.5 3.8v2l-.3 1.3a8 8 0 01-1.2 2.5c-.3.6-.7 1.1-1.2 1.6a11.3 11.3 0 01-2 1.4l-1 .6a11.9 11.9 0 01-1.3.6l-1 .6-1 .4-.8.2-.9.2-.8.1a6.4 6.4 0 01-1.3 0z"/><path fill="#000" d="M43.7 72.7a1 1 0 01-.5-.5 1 1 0 010-.9h.1l.4-.7.4-.7.3-1.2.5-1.1.2-.7.3-1.3.2-1c0-.6 0-1.1.2-1.7V62l.1-1v-.7l-.1-.7-.1-.6-.1-.7v-.2c0-.2.2-.3.4-.3l.3.2.2.3.2.4.2.5.2.7v.2l.3 1.4v2l-.2 2L47 67c0 .5-.2.9-.4 1.3l-.3.8-.2.7-.3 1-.3.6-.4.8a1 1 0 01-.6.5 1 1 0 01-.3 0h-.5zM57 52.2a.4.4 0 01-.3-.5c0-.2.2-.4.4-.3h.6l.6-.2c.3 0 .7-.2 1-.4l.7-.2 1.2-.5c.8-.3 1.7-.5 2.5-.9a29.6 29.6 0 012.3-.8l2.5-.7 3.8-1.4.8-.3.4-.2.5-.1 1.5-.3.7-.2h.4l.4-.2.4-.1.3-.5.7-.2 2.3-.9 2.3-.8 1.3-.5 1.3-.3.2-.1 1.2-.4 1-.3.3-.1 2.4-.8h-.1l.2-.1.5-.4h.4c.3 0 .5-.2.7-.4l.4-.4.7-.7 1-1 1-1 .4-.4.3-.3.3-.3.1-.2.6-.5 1.7-1.6 4-3.5a108.8 108.8 0 017.9-6.7 50.1 50.1 0 003.2-2.8l1.2-1.2.8-.7.8-.9c.1-.1.2-.3.1-.5l.5-.5 2.2-2.8.5-.7.6-1 .9-1.2h-3.1l-1 .2h-3.2l-.9.2c-.3 0-.7 0-1 .2l-1.2.2-2.1.6-2.3.7-1.2.5-1 .3c-.8.2-1.4.5-2.2.6-.4 0-.9-.2-1-.7a1 1 0 01.4-1.2l.7-.3a16.2 16.2 0 001.2-.5l.5-.1h.2a47.2 47.2 0 014.7-1.7l1.3-.3 1.2-.3 1.4-.2 1.1-.1h2.4l.6-.1 1-.1 1.3-.1h1.7l.7-.2.7-.1h.3l.5-.2h.5c.7.2 1.2 1 1 1.6l-1.4 2.3-.8 1.2-.7 1-.8 1-1 1.1-1.5 1.9-.8 1-1 1-.8.9-1 .9-2 1.8-1.8 1.5-4.1 3.4-3.8 3.2-2 1.8-1.8 1.7a35 35 0 01-2 1.7l-2 1.7-2.1 1.7L92 41l-.6.4-.4.2-.6.2-1.2.3-1.1.5-1.2.4-1.3.4a38.7 38.7 0 00-4.8 1.8l-2.3.8a56.7 56.7 0 01-2.5.8l-1 .2a30.1 30.1 0 00-2.6.7L69 48.8l-1.7.4A57.3 57.3 0 0058 52a4 4 0 01-.8.1H57zm-39.5 57.7c-.2-.2-.4-.5-.4-.8l-.1-.5-.1-1-.2-1-.2-1.1-.2-1.1-.3-1.2-.2-1.1a22.3 22.3 0 01-.4-2.3l-.3-1.2-.2-1-.2-1-.4-1.1-.4-1.2c-.2-.5-.4-1-.3-1.6 0-.3.2-.6.4-.8.3-.2.6-.3 1-.3l1.3.2a34.3 34.3 0 004 .1l1 .1 2.4.2 2.4.2h1.2l1.2.2h1.7l-1.4-1.2-3.1-2.6-1-.7a50 50 0 01-1.2-.8l-1-.7-1.1-.9-1-.6-1-1-.5-.6-.2-.4-.1-.4v-1l.4-.6a4.3 4.3 0 00.2-.3v-.1l.3-.4a18.2 18.2 0 00.8-1.7l.9-1.8.5-.9.4-1 .5-.9.4-.9 1-2.3.5-1.2a34.8 34.8 0 00.8-1.7v-.6l-.2.1-1.4.7-1.5.6-1 .5-1.3.5-1.8.8-1.8.8-1.5.8-1.5.8-1.3.5-1.2.5a3 3 0 01-.6.2h-.8c-.2 0-.4 0-.6-.2l-.3-.3-1-1-1-.8-.8-.7a28 28 0 01-1.8-1.7l-.8-.8a35 35 0 01-1.5-1.8c-.3-.3-.4-.6-.6-1a1 1 0 01-.2-.4c0-.1.1-.3.3-.3h.6l.5.3.5.3.4.4.9.8.8.8 1.8 1.5 1.9 1.5.5.4.4.4.5.6c.3 0 .5-.2.8-.3.3 0 .6-.2.8-.3.3 0 .6-.2.8-.3.3 0 .5-.2.8-.3l1-.5c.2 0 .4-.2.5-.3l.6-.3 1.2-.5 1.3-.5 1.4-.6 1.2-.5 1.5-.7 1.4-.6 1-.5 1.1-.4.6-.2c.5 0 1 .1 1.1.5.4.6.3 1.3.3 2s-.3 1.4-.5 2l-.4 1L26 72l-.4 1.2-.6 1.5-.6 1.5-.3.7-.4.8-.7 1.6-.8 1.5-.7 1.4v.1l-.1.2v-.2.3a25.3 25.3 0 001 1l.7.6.7.5.6.5 1.9 1.4L28 88l1.7 1.6 1.8 1.5 1 1 1 .9-.1-.1.2.2c.4.4.3 1 0 1.4l-.5.4h-.5.1l-1 .2h-1.4a18.6 18.6 0 01-2.6 0l-1-.1h-1.3l-1.1-.2H23l-2.3-.3h-1.5l-1.5-.2c-.6 0-1.1 0-1.6-.2h-.3l.2.7.3 1.2.3 1.1c0 .4.2.8.3 1.1l.2 1.2.2 1.1.3 1.2.2 1 .2 1.3.4 2 .2 1 .2 1.2a4.6 4.6 0 00.1.6v-.1.1c.2.4 0 .9-.3 1.1a1 1 0 01-1.2-.2z"/><path fill="#000" d="M59.4 51.3V51l.1-.2.2.1h.8l.6-.1 1-.3 1-.4 2-.8 1-.4 1.2-.5.7-.4.8-.3 1-.4 1-.4 1-.5.6-.2.8-.4 1.6-.6 1.6-.5 1.7-.5.7-.2 3.5-1.2 1.8-.7 1.7-.7c.3 0 .6-.2.8-.3l.9-.4 2.2-1.1 1-.6.6-.3c.2 0 .3-.2.5-.3l.2-.1.5-.3.9-.6 1-.7 1-.7 1-.7 1.3-1 1-.9 1-.8 2-1.6.9-.7a26.7 26.7 0 001.6-1.4l1.6-1.5 1.5-1.5 1.5-1.4 2.7-3a53 53 0 002-2.2l1-1a19.6 19.6 0 001.5-1.9l.6-.7.6-.6.5-.7L119 13l1.2-1.5.9-1.1.6-.8h-1l-1 .1h-2.4l-.6.1a46.6 46.6 0 01-3.5.4l-.6.1h-.6l-2 .5-1 .1-1 .1-1.4.3-1.5.4-1.4.3-1.2.5-.5.2-.5.2-.5.2c-.4.3-1 0-.9-.5 0-.2.2-.4.3-.5l.4-.1.7-.3.6-.3.7-.2.7-.2h.7l.8-.2.7-.2.8-.2 1-.2 1-.1h.8l1.2-.3.7-.2.6-.1.8-.2h1.4l.6-.2 1-.1 1-.2h-.1l1.5-.2h1.5l1.4-.2h.8l.7-.1.6-.1c.3 0 .6 0 .8.3.1.2.2.4.1.6v.2c0 .3-.2.6-.4.8l-1.3 1.7-1.3 1.7-.7.8-.7.9-1.4 1.6-.7.8-.7.7-.6.7-.6.7-1.6 1.8-1.7 1.7-2 2.2v-.1l-.1.1-1.2 1.1-1 1.1-1.6 1.6-1.5 1.4-1.6 1.5-1.6 1.5-2.3 2.1-1.7 1.6-1 .8-1 .8h.2a16 16 0 01-3.5 2l-2.2 1-.8.4-1 .4-2 .8-1.9.7-2 .7-1.1.4-1 .4a31.2 31.2 0 01-2.2.6l-1 .4-1.3.4-1.1.4-1.1.3-1.1.4-.7.3h-.5l-.6.3h.1l-1 .2c-.5 0-.9.1-1.3.3l-.8.2-.6.2-1.2.4-1.2.3-1.3.3-1 .3-1 .3a4 4 0 01-1 0h-.9z"/><path fill="#000" d="M96.7 22l.3-.3.4-.3.7-.6 1.3-1 .6-.5 1-1.2.2-.3.3-.3.3-.3.2-.3.3-.4.5-.8.2-.4v-1.2l-.2-1.3c0-.3.3-.5.6-.6.3 0 .6.1.8.4 0 .3 0 .5.2.7l.1.4v.3l.1.4v.8l-.1.3v.1l-.1.2-.8 1.2-.5.5-.9.8-.5.5-.6.4-.5.5-.3.2-.4.1-1.2.7-.7.6-.8.5-.2.1v.2l-.2.1v-.1zM66 148.7l-.5-1.6-.5-1.6-.2-2.2-.2-1.3v-.5l-.3-.7-.2-.9-.2-.5-.3-.8-.2-.8-.5-1.1-.5-1.4-.5-1.1-.5-1.2a10.7 10.7 0 00-.6-1l-.7-1.2-.8-1.2v.1l-.4-.7-.5-.9-.7-1.5-.7-1.5-.5-.8c-.2-.4-.4-.8-.1-1.1 0-.2.3-.3.6-.3.2 0 .4.2.5.4l.9 1.2.9 1.2.8 1 .6 1 .8 1.4.3.7.3.7.7 1.3.6 1.4.4.8.3.9.7 1.7.3.7.3.9v-.1c0 .2 0 .4.2.7l.2.5.2.7.5 1.4.2 1.6v2l.7 3.4c0 .4-.3.7-.6.7h-.1a.7.7 0 01-.7-.4z"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/newscasters.png b/go.dev/_content/images/gophers/newscasters.png
new file mode 100644
index 0000000..76a1739
--- /dev/null
+++ b/go.dev/_content/images/gophers/newscasters.png
Binary files differ
diff --git a/go.dev/_content/images/gophers/peach.svg b/go.dev/_content/images/gophers/peach.svg
new file mode 100644
index 0000000..a13a4d4
--- /dev/null
+++ b/go.dev/_content/images/gophers/peach.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="peach"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#ffcfd8;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#ffcfd8;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#ffcfd8;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/pilot-bust.svg b/go.dev/_content/images/gophers/pilot-bust.svg
new file mode 100644
index 0000000..a654dc7
--- /dev/null
+++ b/go.dev/_content/images/gophers/pilot-bust.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 1431 901" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M335.6 867.8c-.6-33-1.1-47.7-2.2-69.6-.6-10.6-.7-11.2-2.4-10-1 .7-5.7 4.6-10.6 8.6-15.4 12.5-25.1 16.2-47.4 17.7-12.7.9-17.2 2.1-32 9-7.5 3.5-15.5 6.8-17.8 7.5-3.1.8-15.6.9-45 .4l-40.7-.7-9.5 4c-18.4 7.8-31.9 11-41.5 9.8-9-1.2-21.4-4.4-26.4-7-11.5-5.8-23.1-18.3-38.8-42-19.7-29.6-24.6-42-19.2-48.9 1.2-1.5 4.9-4.1 8.3-5.8 11.3-5.6 11.9-6.4 14.1-17.1 1.2-6 7.3-8.4 13.3-5.3 3.7 2 9.4 8.1 13.4 14.6 4.4 7.1 4.6 7.5 6.9 20.5 2.8 15.5 8.5 38.9 10.8 44 1.8 4 2.4 4.5 7.7 6.1 8.5 2.4 23.5 1.5 32.9-2.1 3.9-1.4 12.2-4 18.5-5.6 11.1-2.9 12.5-3.1 36.5-3.4 35-.4 54.8-3.6 62.5-10.1 7-5.9 28-56.1 35.4-84.8 5.2-19.7 5.7-30.9 2.2-46.5-5.3-23.4-13.3-77.8-14.3-96.6-.6-11.5 1-23.3 6-46l2.2-10-5.1-5.2c-6.2-6.1-11.4-15.1-14.4-24.8-3-9.6-3.8-28.1-1.6-38.4.9-4.1 1.5-7.5 1.3-7.6-.1-.1-3.1-2.2-6.7-4.7-22-15.4-33.1-36.4-33.3-62.8-.1-13.6 1.3-22.8 5.9-37 4.6-14.5 10.8-24.6 21.3-35 10.1-10 18.1-14.9 30.8-19 13.1-4.2 20.8-5.3 38.3-5.3h15.6l2.3-11.1c3.4-16.3 8.6-32.9 13.7-43.4 7.5-15.5 20.5-27 45.1-39.9 8.5-4.4 12.6-7.4 19.3-13.8 5.3-5.1 14.5-12.1 24.5-18.8 18.3-12.1 35.8-26.7 47.2-39.4 11.3-12.7 14.6-15.6 26.8-23.7 18.8-12.5 55-31.8 79.1-42.1 14.6-6.3 23-8.3 62.4-14.9 18.4-3.2 39.1-6.9 46-8.4C689.2.6 690.3.5 723.5.5c35.9 0 51.2.9 82.5 5.1 21.1 2.8 34.6 6 44 10.2 6.9 3.2 34.5 13.3 62 22.7 43.7 15.1 57 19.9 62.5 22.7 14.2 7.1 36.1 24.7 70 56.3 20.2 18.8 22 20.2 42.9 34.5 32.3 22 35.4 26.2 48.7 67.5 12.3 38.2 11 35 14.5 34.8 5.6-.3 24.6 1.7 31.3 3.3 3.6.8 11.2 3.8 16.8 6.5 21.8 10.7 35.3 28.8 43.1 57.8 2.1 8.1 2.6 11.8 2.6 24.1.1 13.4-.1 15.2-2.8 23.3-4.6 14-14.3 27.1-25.6 34.8l-5.1 3.4.8 10c1.3 16.4.8 39-1.1 48.4-1.8 8.9-6.1 19.3-9.2 22.5-1.6 1.7-1.8 3.2-1.6 10.2.4 8.1-1.6 26.9-4.3 40.7-1.3 7-1.3 7.3 1 11.2 1.3 2.2 5.1 7.2 8.5 11 3.4 3.9 7 8.7 8.1 10.8 5.5 10.4 8.6 35.4 7.5 60-1.3 29.3-4.8 40.9-26.6 86.4-8.6 18-11.4 25.6-10.6 29.7.8 4.3 5.3 10.7 10.6 15.1 6.7 5.6 29 20.3 40.9 26.9 7.7 4.4 12.9 8.3 20.5 15.5 13.2 12.5 18.7 15.5 28.1 15.5 12.6-.1 19.7-5.3 28.4-21 7.6-13.7 11-18 26.9-34.5 15.4-15.9 23.6-22.5 35.2-28.4 19.8-10 37.8-9.9 49.2.3 5.7 5.2 7.8 9.2 7.8 15.1 0 5.5-1.3 8.4-6.2 13.7-8.2 8.9-22 16.5-44.2 24.3-13.7 4.9-18.2 7.7-29.8 19.1l-10.6 10.5-4.1 12.8c-2.2 7-5.3 14.6-7 17-6.8 9.8-24.2 23.7-31.5 25.1-2.5.5-5.8-.2-13-2.8-11.8-4.3-21-6.3-35.2-7.5-18.2-1.7-31.8-7.6-66.6-29.4-16.9-10.5-27.8-16.7-29.3-16.7-.3 0-.3 14.5.1 32.3.4 17.7.4 36.1 0 41l-.8 8.7H336.3l-.7-33.2z" fill="#0a0a0a" fill-rule="nonzero"/><g fill="#fefefe" fill-rule="nonzero"><path d="M348 874.8c0-14.5-.7-42.9-1.5-63.3l-1.4-37 3.7-3c13.5-10.9 22.7-22.5 31.7-39.8 6.6-12.9 6.9-15.6 2.8-35.8-4.9-24.8-3.7-39.6 5.9-75.9 1.7-6.3 3.3-12.5 3.6-13.7.2-1.3.8-2.3 1.1-2.3.4 0 5.4 2.4 11.2 5.4 12.3 6.5 27.3 11.8 41.3 14.8 8.1 1.7 13.6 2.1 27.6 2.2 36.6.1 71.3-8.2 103.4-24.6 10.3-5.3 29.9-17.9 31.3-20.1.4-.6 1.2 2.6 1.9 7.1 2.7 19.2 13 30 32 33.5l6.9 1.3-.3 7.5c-.1 4.1-.7 16.4-1.2 27.4-1.5 32-1.4 37.2 1.4 43.1 6.6 14.1 24 21.9 41 18.4 7.5-1.5 19.9-7.9 26.2-13.4l4.9-4.3 4.4 3.4c9.7 7.4 24.6 12.6 36.1 12.5 15.9-.1 29.1-10.4 33.7-26.4 2.3-8.3 2.8-35.4.9-53.4-.9-8.3-1.6-15.6-1.6-16.2 0-.7 1.2-1.2 2.8-1.2 4.6 0 15.6-2.7 20.5-5 11.2-5.3 19.3-16.8 21.8-31.2.7-4 1.3-7.4 1.5-7.6.1-.2 2.8 1.3 6 3.4 16 10.2 42.3 20.6 65.4 25.8 21.5 4.8 32.9 6 57 6 24.9.1 33.7-1.2 51.9-7.6 21.5-7.5 49.1-24.7 63-39.2 1.9-2 3.8-3.6 4.2-3.6.4 0 1 4.6 1.3 10.3 1.9 28.8 5.2 44.5 12.6 59.2 8 16.1 9.4 22.4 9.4 45.5l.1 19.5-5.1 17.5c-7.1 24.1-9.6 36.5-9.8 48.5-.1 8.7.2 10.6 2.3 14.4 4.8 9.1 17.7 20.5 33.8 30l7.3 4.3.2 43.7.3 43.6v14.95c4.5.9-86 3.267-390.7 3.367L348 914.264V874.8z"/><path d="M1288.5 863.9c-9.3-3.7-23.3-6.8-35.4-7.9-19.1-1.6-30.4-6.5-65.8-28.6-10.1-6.3-25.1-15-33.4-19.4-26.6-14.2-40.8-24.9-45.5-34.6-2.5-5-2.6-6.2-2.1-13.4.8-9.8 4.4-26.3 10.4-46.9 4.1-14.3 4.5-16.8 5-29.9.9-23.2-2.5-40.5-10.8-55.7-6.9-12.7-10.5-31.3-11.5-59.5l-.6-16.5 5.8-7c9.6-11.7 18.8-26.7 24.2-39.3l2.3-5.3 4.7.8c2.6.4 11.9.7 20.7.6 15.3-.1 23.9-1.3 32.9-4.9 1.8-.7 1.9-.3 1.2 8.2-.3 4.9-1.8 16.3-3.2 25.4-1.4 9-2.3 17.7-2 19.3.7 3.4 5 9.8 12.9 19 3.3 3.8 6.8 9.2 7.9 11.9 3.2 8.4 4.8 22.9 4.8 42.8 0 34-2.1 41.6-24.5 89.5-5.7 12.1-10.8 23.8-11.4 26-3.6 13.4 1.7 24.2 18.2 36.4 10.2 7.6 27 18.4 38.7 24.9 4.6 2.5 11.7 8.1 18.4 14.2 6.3 5.9 13.5 11.5 17 13.3 5.7 3 6.8 3.2 16.1 3.2 8.9 0 10.6-.3 15.7-2.8 7.4-3.6 15.4-12.4 21.3-23.2 2.6-4.7 6.3-10.7 8.3-13.4 4.6-6 28-30.7 28.5-30.1.2.3 2.3 6 4.5 12.8l4.1 12.2-5.7 3.6c-7.1 4.6-25.8 22.7-28.2 27.4-.9 1.9-3.1 8-4.8 13.5-3.6 11.5-7.2 17.5-14.5 24.1-6.4 5.8-15 11.4-17.4 11.4-1-.1-4-1-6.8-2.1zM77.5 833.4c-10.4-2.2-16.8-5.6-24.2-12.6-7.8-7.5-15.4-17.3-26.3-34-8.1-12.2-18-30.7-18-33.4 0-.7 3.5-3.1 7.8-5.3 10.6-5.3 14.7-10.2 16.4-19.6.4-1.7 1-1.4 4.6 2.4 6.5 7.1 8.7 12.3 11.7 27.6 5.4 28.8 10.4 45.2 14.8 49.4 8 7.5 31.7 8.7 48.8 2.5 19.8-7.2 22.1-7.6 52.9-8.4 46.7-1.3 64-5.5 71.8-17.8 11.3-17.5 31.6-70.9 36.2-94.9 2.9-15.5 2.5-29-1.8-48.8-6.4-30.2-13.7-85.3-12.7-96 .6-6.2 7-40.4 7.7-41 .2-.2 4.1 1 8.8 2.6 10.8 3.6 21.3 5.2 30.7 4.7 4.8-.2 7.3 0 7.3.8 0 .6 2 5.2 4.5 10.2 12.5 25.9 39.2 56.8 62.9 73.1 3.5 2.4 4.6 3.7 4.1 4.9-1.3 3.4-9.5 36.1-11.7 46.7-3.1 15.5-3 31.5.6 49.4 3.5 18.2 3.4 21.5-1 30.4-4.7 9.4-13.2 22.1-18.6 27.7-2.4 2.5-11.1 10.4-19.2 17.5-34.1 29.8-37.2 31.5-62.2 33.5-16.9 1.3-21.2 2.5-36.9 10.2l-13 6.3-44.5.1-44.5.2-12.5 5c-20.9 8.5-29.4 9.8-44.5 6.6zM1375.5 785.8c-3.7-10-4.4-13.2-3.3-13.9 1.9-1.2 2.6-.3 4.3 5.9.9 3.1 1.8 6.5 2.1 7.5.6 2-2.4 2.5-3.1.5zM1380.7 782.6c-.4-1 1.3-2 5.6-3.6 9.5-3.4 23.7-10.8 28.5-14.7 7.2-5.9 8.8-11.1 5.2-17.1-5.7-9.4-24.3-9.7-43.7-.7-8.6 4-10.7 2.9-3.1-1.5 11.9-6.8 25.5-10 34.3-8.1 9.4 2.1 17.5 9.3 17.5 15.5 0 8.6-11.6 18.1-33.3 27.4-5.4 2.3-9.9 4.2-10.1 4.2-.2 0-.6-.6-.9-1.4z"/><path d="M1378.2 774.3c-1.1-3.7-.9-5.3 1-5.3 1.7 0 18.1-7.9 20-9.7 2.5-2.2 2.3-5.1-.5-5.8-2.3-.6-10 1.5-19.5 5.4l-5.3 2.1-1.8-4.2-1.8-4.3 4.6-2.4c7.3-3.8 18-7.1 25.1-7.7 5.4-.5 7.5-.3 11.3 1.4 5.1 2.3 9 7.4 8.1 10.7-1 3.7-10.1 11.1-18.6 15.3-8.7 4.2-18.5 8.2-20.4 8.2-.6 0-1.6-1.6-2.2-3.7z"/><path d="M1369.6 769.3c-2.3-2.3 4.7-6.4 19.3-11.3 12.2-4.1 11.8-1.5-.6 4.3-10.9 5-18 7.7-18.7 7zM1365.6 756.5c-3.1-9.5-1.6-10.9 2.4-2.1 3.4 7.5 3.5 8.2 1.6 8.9-1.1.4-2.1-1.4-4-6.8zM672.3 707.4c-4.9-1.8-12-8.5-13-12.3-.7-2.6 1.3-60.3 2.3-67.7l.6-4.2 5.8-.6c3.3-.4 8.3-1.4 11.2-2.2 16.2-4.5 24.1-6.3 30.7-6.9l7.3-.7-.3 38.7-.4 38.7-6 5.6c-11.6 10.8-27.3 15.6-38.2 11.6zM754.1 705.5c-8.1-1.8-17.6-6.3-22.2-10.6l-3.7-3.4.5-39.4.6-39.4 7.8.7c9.7.8 44.1 6.5 45.1 7.4.4.4 1.4 8.1 2.3 17.2 2.1 20.4 1.7 45-.9 52.1-4.6 12.6-15.6 18.4-29.5 15.4zM453.8 616.5c-43.5-6.8-87.7-37.3-116.7-80.4-16.4-24.3-20-36.7-20.8-72.2-.6-25.1.4-39.1 4.2-58.4 11.4-57.3 38.8-101 81.4-129.6 49-33 132.7-53.8 248.6-61.9 31.8-2.2 107.8-3.3 140.9-2.1 138.2 5 222.7 27 270 70.2 33.4 30.6 55.2 72.2 63.6 121.3 6 35.2 4 78.4-4.7 99-3.5 8.5-12 22.7-18.8 31.6-26.9 34.8-59.3 57.1-97 66.7-10.5 2.7-12.1 2.8-34 2.8-28.6 0-44.5-2.2-70.4-9.7-18.9-5.4-39.3-14.7-52.6-23.9-6.4-4.4-7.2-5.4-9-10.6-5.2-15.2-21.8-29.7-44.9-38.9l-8-3.3-1.1-4.9c-1.3-5.7-4.1-9.9-9.3-14-17.4-13.8-52.1-18.1-79.7-10-20.3 5.9-32.2 18.1-29.5 30.2l.7 3.3-8.6 3.9c-18.5 8.3-35 22.2-41.9 35.2-2.6 4.9-5.1 7.7-11 12.4-19.6 15.7-43 27.7-68.4 35.4-27.3 8.2-60.7 11.3-83 7.9zm83.7-50.9c29.7-5.2 58.3-17.2 80.7-33.8 11.1-8.2 30.3-25.4 37-33.1 17.2-19.7 27.5-39.9 32.9-64.7 3.1-13.7 3.3-39.7.6-53.3-9.1-44.9-38-81.8-79.8-101.6-39.3-18.7-79.7-19.9-123.9-3.8-66.2 24.1-109.2 65.8-122.5 118.7-3.7 14.8-4.8 24.2-4.7 41 .1 16.9 1.6 28 5.7 40.9 13.5 42.7 49.3 74.4 97.5 86.6 8.3 2.1 12.5 2.8 27.5 4.9 6.1.9 41.3-.4 49-1.8zm413-18.6c37.9-3.7 70.6-17.5 93.5-39.6 18.4-17.7 29.5-39.4 33.7-65.8 2.4-15.5 1.4-48.9-2.1-65.3-14.4-68.2-64.7-110.1-147.6-122.8-14.5-2.2-48.3-3.1-59.1-1.6-47 6.8-86.5 33-109.3 72.8-13.1 22.8-18.3 44.6-17.3 73.1.6 18.3 2.7 29.3 8.7 44.7 9.5 24.5 27.9 48 49.7 63.7 10.4 7.5 35 20.7 48.3 26 32.7 12.8 68.2 18 101.5 14.8z"/><path d="M480.2 557.4c-24.5-3.5-48.5-13.1-67.2-26.7-14.4-10.5-30.4-30.5-37-46.3-11.8-28.3-12.8-63.9-2.8-95.3 7.1-22.5 17.4-38.9 35.7-57.1 10.8-10.7 22.1-20.2 22.1-18.7 0 .3-1.6 2.5-3.7 4.9-9.6 11.4-19.2 28.7-24.1 43.5-5.7 16.8-6.7 23.8-6.7 45.3.1 17 .4 20.7 2.4 29 7 28.4 20.6 52 41.3 71.5 26.5 24.9 59.6 38.6 96.8 40.2 13.1.5 30-.6 34.5-2.3.8-.3 1.5-.1 1.5.4 0 1.2-14.5 6.1-25.5 8.7-19.5 4.5-47.9 5.8-67.3 2.9z"/><path d="M527.5 535.4c-17.2-2.5-29.8-6.2-43.4-12.5-39.8-18.6-67.6-54.5-74.7-96.4-2.4-14.3-1.5-37.3 2-50.5 6.5-24.4 16.8-42.3 34.5-60.1 34.1-34 84.4-47.5 132.1-35.4 50.9 13 89.1 52.6 99.1 103 2.1 10.4 1.8 36.8-.5 47.3-5.4 25.2-17.3 47-35.6 65.2-18.8 18.9-42.4 31.5-70 37.5-7.3 1.6-36.9 2.9-43.5 1.9zm110.6-82.6c12.1-6 21.1-16.9 24.3-29.3 6.9-26.1-10.1-52-37.1-56.7-21.6-3.7-43.4 9.8-50.3 31.1-1.9 6.1-2.2 8.6-1.8 16.7.5 8.4 1 10.3 4.2 16.9 5.9 11.9 15.2 19.9 28.1 24.1 2.5.9 7.8 1.3 14.6 1.1 9.9-.2 11-.4 18-3.9z"/><path d="M627.8 428.4c-3.1-1.6-5.8-6.1-5.8-9.5 0-3.4 3.8-8.6 7.1-9.8 6-2.1 13 1.7 14.4 7.9.9 4-1.7 9.6-5.4 11.4-3.7 2-6.8 2-10.3 0zM912.5 538.4c-18.5-2.1-25.8-4.4-13.7-4.4 10.9 0 27.8-3.4 42.2-8.5 42.7-15.1 77-50.6 89.8-93 4.6-15 5.7-23.3 5.6-41-.1-12.5-.6-18.3-2.3-26.5-4-18.9-11.8-36.8-23.2-53-6.8-9.7-24.4-27.2-33.7-33.5-4-2.7-6.9-5.1-6.4-5.3 1.6-.5 19.7 7.4 28.7 12.5 30.2 17.2 52.1 43.1 62.5 74.1 8.9 26.7 11 65.2 5 90.1-11.9 48.9-53.3 80.6-115 88.1-7.8.9-32.4 1.2-39.5.4z"/><path d="M880 522.3c-51.6-3.7-96.5-34.8-116.1-80.3-6.8-15.7-9-26.1-9.6-45-.4-12.4-.1-18.7 1.1-25.5 8.4-48.5 46.6-90.1 95.1-103.6 18.9-5.2 43.3-6.6 62.2-3.3 50.5 8.5 92.4 44.5 106.7 91.4 7.5 24.7 7.2 51.4-.9 75.7-6.1 18.2-15.1 33.4-28.2 47.3-23.4 24.9-54.3 39.8-88.8 43-10.7 1-12.2 1-21.5.3zM980.2 441c12.3-4.6 23.2-15.9 27.4-28.2 2.8-8.2 2.5-21.5-.6-30.1-4.6-12.9-15.6-23.4-29-27.7-5.8-1.9-8.6-2.2-16.4-1.8-8.3.3-10.2.8-16.8 4.1-9.7 4.7-16.8 11.8-21.5 21.5-3.2 6.4-3.7 8.5-4.1 16.4-.6 11.1 1.5 19.5 6.7 27.6 6.5 9.9 17.7 17.9 28.4 20.2 6.7 1.4 19.5.5 25.9-2z"/><path d="M971.3 412.5c-3.2-3.2-3.5-3.9-3-7.8 1.5-11.3 16-13.4 20.4-3 2.8 6.9-2.3 14.3-9.9 14.3-3.2 0-4.7-.7-7.5-3.5zM646.5 610.9c-7.7-1.2-15.6-5.1-18.9-9.4-3.6-4.7-6-14.5-5.2-21.5 1.4-11.8 9.9-24.1 23.2-33.6 5.9-4.2 25.7-14.4 28-14.4.6 0 3.8 1.6 7 3.5 21.6 13 61.7 13.9 85.6 1.9 3.7-1.9 8.3-4.7 10.2-6.4l3.4-3.1 6.7 2.5c13 5 22.7 10.7 30.1 18.1 9.9 9.8 11.9 14.3 11.9 27 0 8.9-.4 10.7-2.9 16.3-7.8 17-23.1 20.3-62.1 13.3-30.8-5.5-58.7-5.2-77.3.9-14.3 4.7-29 6.5-39.7 4.9zM290.1 500.9c-22.4-4.4-35.5-15.2-41.9-34.7-2.1-6.5-2.5-9.6-2.6-20.2 0-6.9.2-13 .6-13.5.4-.7 5.1-.6 14.5.3 12 1.1 41.3 1.2 45 .1 1-.3 1.4 5.5 1.7 25.6.3 22.6 1 31.8 3.1 41.3.5 2.1.4 2.2-7.7 2.1-4.6-.1-10.3-.5-12.7-1zM1139 492.1c-3-.3-5.4-1-5.3-1.6 2.4-15 3.4-29.6 3.1-47.7l-.3-20.8 3.5.8c7.5 1.6 29.2.5 45.4-2.2 8.7-1.5 16.1-2.4 16.5-2.1 1.3 1.4.6 41.8-.8 47.5-2.1 8.5-5.5 15.3-8.9 18.2-8.5 7.2-30.1 10.4-53.2 7.9zM279.3 423.4c.3-1.1 1.8-7.3 3.2-13.9 3.6-16.3 10.1-42.3 13-52.1 5.4-17.8 20.8-45.6 47.9-86.6l1.8-2.8-2.8-1.1c-4.2-1.6-17.4-4.9-19.6-4.9-3 0-3-2-.3-14.1 3.6-16.2 8-30.1 12.5-39.5 6.1-12.8 18.3-23.5 39.1-34.8l8.6-4.6.7 3.1c.3 1.7.6 5.7.6 8.8 0 7.9 2.6 31.5 5 45.2 2.3 13.7 6.1 27.2 9.5 34.3l2.5 5.1-2.2 1.5c-16.6 11.1-37 30.2-47.9 45-20.7 28.1-34.8 62.8-40.5 100.2-1.4 8.9-2.2 11.7-3.4 11.7-.8 0-7.5.4-14.9.7-12.7.6-13.3.6-12.8-1.2z"/><path d="M256.5 416.7c-24.4-9.9-39.4-26.4-44.1-48.8-4.5-21 2.8-52 16.3-69.9 10.7-14.1 28.1-23.2 49.8-26.1 14.5-1.9 47.4.7 46.8 3.7-.1.6-4.2 7.4-9.1 15.3-5 7.8-11.2 18.3-13.8 23.2l-4.9 8.9-4.5-.7c-18.2-2.6-30.5 2.3-33.8 13.3-2.1 7.1-1.5 16.3 1.3 22.1 2.3 4.5 8.7 11.7 15.2 17l2.2 1.8-2.8 12c-1.6 6.6-3.9 16.4-5.1 21.8-1.7 7.5-2.5 9.7-3.8 9.7-.9 0-5.3-1.5-9.7-3.3zM1141 413.7c-4.7-1-5.5-1.5-5.8-3.7-.9-7.2-5.6-28.7-8.2-37.3-16.7-56.1-53.4-101.8-100.5-125.4-4.9-2.5-9.1-4.6-9.2-4.7-.2-.2 2.4-6.5 5.8-14.2 3.3-7.6 7.8-18.4 10.1-23.9 3.1-7.8 26.3-58 27.3-59.3.1-.2 4.7 2.8 10.1 6.6 5.5 3.8 15 10.4 21.2 14.7 11.5 8 20.7 17.6 25.1 26.3 1 2.1 5.9 16.3 10.9 31.7 5 15.4 9.4 28.8 9.7 29.7.5 1.3 0 1.9-2.2 2.4-7.5 1.6-18 4.6-19.2 5.4-1.1.6.9 5.7 9.8 25 22.5 48.6 29.9 67.4 32.7 83 1.8 10.1 4 41 3.1 43.4-.5 1.3-2 1.6-7.9 1.5-4 0-9.8-.6-12.8-1.2z"/><path d="M1173.6 399.3c-.3-4.3-1.1-12.9-1.7-19.1-.6-6.3-.9-11.5-.7-11.6.2-.2 2.8-1.7 5.8-3.4 6.7-3.7 13.5-10.3 16.3-15.7 4.8-9 1.6-22.9-7-30.5-6.5-5.7-12.3-7.3-24.9-6.9l-10.5.4-9.8-21.3c-5.4-11.7-9.6-21.4-9.2-21.6 1.4-.9 16.6-2.6 23.1-2.6 38 0 62.8 18.4 73.6 54.5 2.1 6.9 2.8 11.9 3.1 21.5.6 14.1-.6 20.9-5.4 30.8-3.9 8-15.9 19.8-24.8 24.4-6.3 3.3-22.7 8.8-26 8.8-.9 0-1.5-2.3-1.9-7.7zM402.2 254.3c-6-15.6-10.2-39.8-12.3-70.7l-1.3-17.9 8-7.6c4.7-4.6 14.3-11.9 23.9-18.3 19-12.5 33.2-24.5 51.5-43.5 17.6-18.2 29.4-26 72.5-47.8 36.7-18.6 41.3-20 95-28.9 14.9-2.5 32.8-5.7 39.9-7.1 7-1.4 12.9-2.5 13.1-2.5.7 0 1.5 5.5 3.9 26 5.6 47.8 5.9 52.8 6.1 105.5.1 27.5.5 52.5.9 55.6l.8 5.7-15.8.6c-122.7 5-210.4 22-270.4 52.7-6.4 3.2-12 5.9-12.3 5.9-.3 0-1.9-3.5-3.5-7.7zM1000.4 236c-35.5-13.7-89.9-24.5-147.9-29.4-36.8-3.2-54.1-3.9-98-4l-45-.1-.7-13.5c-.4-7.4-.6-31.7-.6-54 .2-43.2-.6-55.3-6.7-104.9-1.4-10.7-2.2-19.7-1.9-20 1-1.1 51.7-.4 66.4.8 33.4 2.7 58.8 6.4 70.5 10.1 3.3 1 11.4 4.1 18 6.8 10.7 4.4 43.9 16.3 70.5 25.3 20.3 6.8 41.7 14.7 46.6 17.2 11.3 5.7 37.8 27.4 68.6 56.1l15.7 14.6-2.8 6.3c-1.6 3.4-6.3 13.4-10.6 22.2-4.2 8.8-9.8 21.2-12.4 27.5-10 24-18.4 43-19 42.9-.3 0-5.2-1.8-10.7-3.9z"/></g></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/pink.svg b/go.dev/_content/images/gophers/pink.svg
new file mode 100644
index 0000000..51e456c
--- /dev/null
+++ b/go.dev/_content/images/gophers/pink.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="pink"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#f8aadd;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#f8aadd;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#f8aadd;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/running.svg b/go.dev/_content/images/gophers/running.svg
new file mode 100644
index 0000000..001245f
--- /dev/null
+++ b/go.dev/_content/images/gophers/running.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 554 485" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M30.107,87.983c-8.168,1.154 -31.899,-6.152 -21.963,-19.401c8.12,-10.827 37.911,2.115 40.998,-4.027c4.329,1.332 10.488,-0.044 16.106,0.732c-0.986,0.465 -1.935,1.014 -2.928,1.465c1.796,0.281 8.785,0.047 8.785,1.464c0,2.463 -1.345,3.477 -4.209,3.477c-10.253,0 -9.351,3.703 -17.022,8.236c-1.69,1 -17.312,7.11 -17.57,8.786c-0.816,0.109 -1.548,-0.135 -2.197,-0.732c0,0 0,0.732 0,0m50.516,53.443c-3.024,0.194 -5.102,-1.097 -8.786,-0.732c-1.83,-4.781 -6.687,-8.424 -8.785,-13.178c-0.378,-0.856 -0.334,-5.5 -1.464,-8.053c6.311,-6.285 27.605,-16.368 35.873,-6.589c3.644,-1.34 21.963,-2.74 21.963,2.196c0,-4.116 1.809,6.4 2.196,4.393c-0.416,2.157 -7.244,8.13 -8.785,6.589c-2.829,2.261 -4.241,8.857 -12.446,8.053c-1.54,3.393 -15.244,10.004 -19.766,7.321m420.226,8.785c2.069,-1.65 0.714,0.713 0,0c0,0 0.733,0.732 0,0m-391.674,142.028c0,-1.677 0.874,-0.101 0.732,0.732c-2.103,0.359 -0.609,-0.609 -0.732,-0.732c0,-0.732 0,0 0,0m-68.818,16.839c-6.869,0 -42.388,-3.115 -40.266,-11.714c22.091,4.21 49.237,8.24 71.026,3.151c11.446,-2.674 24.283,-3.656 34.397,-6.812c4.19,-1.306 8.21,-0.128 10.249,-4.392c0.905,0.394 2.745,1.38 2.929,1.464c-0.045,0.112 1.286,-3.025 0.732,-2.196c5.139,-1.313 10.589,-0.678 15.466,-2.929c4.464,-2.06 8.059,-5.212 13.086,-2.928c-2.746,0.157 -1.416,-0.172 -3.661,0.732c2.118,-0.53 2.946,-0.936 4.393,-1.464c1.45,1.495 0.324,0.686 2.929,1.464c-0.097,-0.308 6.947,-4.431 7.321,-0.732c3.427,-1.327 6.693,0.309 9.517,2.196l0,1.464c-2.933,0.828 -2.609,2.184 -5.125,0l0,1.465c-3.116,-2.12 -2.978,-2.105 -5.857,0c-0.615,-0.313 -0.461,-1.991 -0.732,-2.197c-3.535,-0.887 -0.933,4.327 -3.66,0c0.358,1.058 -0.662,-1.091 0,0c-13.071,1.177 -36.665,6.452 -47.587,14.642c-0.328,-0.721 -0.459,-1.551 -0.732,-2.196l-1.464,0c-0.918,8.104 -40.729,10.608 -49.783,10.249c-2.214,0.063 -11.362,0.27 -13.178,0.733c-0.732,0 0,0 0,0m87.12,34.408c2.438,1.937 -0.294,-0.233 0,0m-40.998,13.178c-0.074,-1.224 1.614,-1.969 -0.732,-2.196c1.432,-0.699 1.921,-1.777 3.661,-2.196c-0.043,1.142 0.094,1.946 0.732,2.928c1.272,-4.855 7.535,-5.869 11.714,-3.661c0.415,-1.152 0.563,-1.729 0.732,-2.928c1.405,0.676 3.684,0.813 5.124,1.464c-0.291,-5.98 13.809,-5.182 15.375,-2.196c0.992,-0.56 1.905,-1.565 2.928,-2.196c-2.612,3.525 -8.707,4.618 -13.178,5.856c0.814,-2.607 0.369,0.006 -0.732,-2.196c-0.77,3.186 -2.137,3.183 -5.125,5.125c-1.409,-1.376 -0.678,-0.663 -2.196,-1.464c0.66,0.315 0.905,0.804 0.732,1.464c-1.252,0.308 -1.891,-0.73 -2.928,-0.732l0,1.464c-1.256,-0.753 -2.486,-1.341 -3.661,-2.196c-0.022,0.408 0.231,1.88 0,2.196c-0.66,0.172 -1.149,-0.072 -1.464,-0.732c-0.149,0.914 -0.006,2 0,2.928c-2.236,-1.429 -3,-0.749 -4.393,-5.124c0.328,0.999 0.514,2.587 0.732,3.66c-0.66,0.172 -1.148,-0.072 -1.464,-0.732c-1.791,2.726 -5.187,6.005 -5.857,1.464m-14.642,2.196c-0.768,-0.818 -2.112,0.206 -1.464,-2.196c1.521,0.824 1.252,0.733 2.196,1.464c0.285,-1.831 1.762,-1.378 0.733,-4.392c1.036,0.932 2.916,1.55 3.66,2.196c1.177,-4.574 8.894,-4.57 8.785,1.464c-1.59,1.277 -0.357,0.268 -1.464,2.197c-0.477,-0.514 -2.234,-1.388 -2.928,-2.197c0.577,-0.02 2.484,0.325 2.928,0c-2.036,-1.325 -4.301,-1.762 -6.589,-2.196c0.878,0.849 0.527,1.921 0.732,2.928c0.737,0.17 2.079,-0.757 2.197,-0.732c-0.061,0.18 -0.119,2.089 0,2.197c-2.987,0.114 -5.859,-0.733 -8.786,-0.733c0,0 0.732,0 0,0m379.229,112.012c2.438,1.937 -0.293,-0.233 0,0m-182.293,1.464c0.381,0 0.718,-1.754 1.464,0c-0.746,1.755 -1.083,0 -1.464,0m-21.963,12.446c-2.617,-1.95 -9.57,-5.291 -12.446,-5.125c-1.884,-8.698 -4.439,-22.977 7.321,-26.355c-0.265,-4.006 6.027,-7.651 2.196,-13.178c-0.315,0.66 -0.803,0.904 -1.464,0.732c-0.57,-4.035 -10.145,-18.917 -16.106,-21.963c1.606,-2.662 -10.033,-27.231 -12.446,-30.748l1.464,0c-0.306,-1.905 -1.609,-4.651 -2.196,-6.589c-3.911,2.104 -6.698,3.005 -9.517,5.124c-5.728,-1.851 -19.32,-1.779 -17.571,-9.517c-4.301,-1.611 -1.79,-7.628 -1.464,-11.714c1.249,0.08 1.767,0.257 2.929,0.733c-1.076,-8.684 21.652,-7.536 25.623,-5.125c5.324,-4.656 9.493,-10.635 9.517,-20.499c0.316,0.66 0.804,0.904 1.465,0.732c0.225,-9.949 -2.71,-22.855 -2.197,-30.748c-1.809,-1.091 -4.074,-12.446 -5.124,-12.446c-1.727,-5.616 -5.487,-10.434 -8.053,-15.374c-1.588,-3.057 -9.185,-26.446 -13.91,-26.356c2.745,-2.368 0.118,-1.8 -0.733,-3.66c-1.617,-11.996 -14.936,-28.76 -19.034,-42.462c-0.316,0.66 -0.804,0.905 -1.464,0.732c0.137,-2.852 -4.624,-7.823 -2.197,-10.25c-2.32,0 -8.314,-47.479 -7.999,-53.795c0.577,-11.517 -1.667,-17.037 1.41,-26.736c5.239,-10.477 4.085,-25.315 10.982,-32.212c3.795,-5.693 -4.943,-8.825 -7.413,-13.27c-4.884,-8.792 -4.301,-13.334 -4.301,-23.336c0,-12.152 9.591,-22.292 21.963,-16.106c4.263,1.749 9.105,5.444 13.178,9.517c9.014,9.014 4.691,10.833 17.571,4.393c5.567,0 31.438,-15.148 32.944,-8.053c2.356,-5.308 9.252,-4.612 11.714,-7.321c4.377,0.242 19.857,-4.079 21.231,-7.321c3.733,-0.418 8.742,-1.616 10.981,-1.464c2.077,-5.762 1.142,-19.605 7.321,-22.695c6.496,-6.496 17.307,2.173 21.3,6.977c7.017,8.441 0.631,9.032 12.377,9.129c9.304,0 16.813,0.256 26.004,-0.556c13.528,-1.195 26.783,1.617 39.598,5.716c10.25,3.278 26.176,6.086 33.964,13.874c8.961,8.961 22.359,0.98 38.37,-0.951c7.082,0.943 10.732,1.348 15.205,3.167c-0.66,0.315 1.161,0.053 1.333,0.713c2.388,1.366 10.176,6.187 17.088,14.254c1.733,6.775 5.664,0.037 12.982,2.964c7.818,3.127 9.294,23.31 1.41,23.048c5.576,19.1 -6.406,29.833 -18.302,41.729c-5.071,5.071 -6.298,9.75 -2.197,20.499c-8.133,3.801 -0.793,11.409 2.197,17.388c0.981,1.962 2.946,11.174 3.66,11.53c6.17,3.085 6.181,26.173 12.446,22.329c-0.559,-1.099 -0.075,-2.785 0.732,-2.928c-0.064,-0.184 -0.513,-1.141 0.732,-1.464c4.256,-16.149 8.577,-17.478 14.204,-28.584c0.83,1.399 3.251,-1.205 4.099,0.032c-0.136,-0.901 15.028,1.848 10.249,9.517c5.127,1.982 5.734,11.365 2.929,13.91c2.691,5.554 -0.325,18.873 -4.393,21.231c1.188,5.728 -4.687,14.985 -7.321,19.035c-2.36,3.628 -12.457,8.658 -14.642,12.445c-1.265,2.192 2.697,9.119 -0.732,11.714c2.028,3.256 2.107,4.114 0,6.589c1.838,3.185 1.163,1.088 0.732,4.393c3.437,2.695 2.703,15.677 0,20.499c3.799,3.459 0.26,12.593 1.464,18.302c-0.258,-0.028 -2.947,22.385 -3.66,27.728c-1.002,7.513 -2.914,13.44 -5.857,18.395c0.642,0.325 1.501,0.187 2.196,0.732c-5.535,6.433 -10.072,17.142 -13.178,24.891c-3.516,8.771 -6.488,33.123 -16.838,36.605c-0.39,1.998 0.323,0.828 -0.732,2.929l0,-1.465l-1.465,0c0.304,3.727 -1.503,5.956 -5.124,5.857c0.249,1.15 0.784,1.651 0.732,2.929c-3.407,-0.361 -17.571,15.823 -17.571,19.309c0,1.44 8.027,6.813 8.786,7.778c0,4.559 5.322,10.12 5.856,15.375c-0.315,-0.661 -0.803,-0.905 -1.464,-0.732c1.604,2.942 2.153,4.908 2.197,8.053c-0.641,-0.547 -0.382,-1.709 -0.733,-2.197l-1.464,0c0.205,0.298 0.123,2.569 0,2.929c0.316,-0.661 0.804,-0.904 1.464,-0.732c-1.505,3.329 -3.456,4.46 -4.392,7.321c-1.046,-0.405 -1.934,-0.908 -2.929,-1.465c0.129,0.678 0.676,1.56 0.733,2.197c-3.25,0.394 -6.764,-0.133 -9.518,-1.464l0,1.464c-5.362,-6.919 -24.713,-10.032 -27.088,-16.106c-4.479,0.127 -3.334,1.607 -5.124,-1.465c-7.121,4.174 -18.623,8.169 -25.624,7.321c-1.018,5.24 -15.1,8.877 -19.767,7.321c-13.484,0 -38.7,10.047 -49.783,2.929c-0.68,1.087 -1.609,1.712 -2.196,2.928c-5.248,-2.7 -12.806,0.472 -14.642,-5.125c-8.407,4.859 -19.628,-10.307 -28.552,-8.053c-0.172,-0.66 0.072,-1.148 0.732,-1.464c-12.32,-0.653 -18.233,5.104 -25.623,11.714c-6.05,5.41 -15.319,8.318 -19.035,9.517" style="fill:#060606;fill-rule:nonzero;"/><path d="M381.517,104.089c-3.493,-3.494 -5.61,-10.692 2.038,-11.392c9.452,-0.864 7.892,14.702 -2.038,11.392c-0.732,-0.732 4.392,1.464 0,0m-73.943,-81.264c-6.362,0 -5.821,-17.57 0,-17.57c7.379,-3.69 20.334,22.653 0,17.57c-1.464,0 2.929,0.733 0,0m206.453,46.123c-4.282,-4.282 0.677,-8.072 5.125,-6.589c4.617,3.078 -0.725,9.522 -5.125,6.589c-1.464,-1.464 2.197,1.464 0,0m-335.303,7.321c-10.15,-10.151 -18.67,-44.33 4.759,-34.958c6.371,2.548 17.573,12.16 16.106,20.224c-1.442,7.931 -13.923,18.205 -20.865,14.734c-1.464,-1.464 1.465,0.732 0,0m-150.813,5.125c-2.651,-2.651 -8.349,-1.029 -11.713,-4.393c-6.131,-2.043 -1.479,-6.694 2.184,-6.958c11.08,-0.799 21.913,2.136 32.956,1.833c-3.317,3.041 -19.104,11.679 -23.427,9.518c-0.732,-0.732 1.464,0.732 0,0m459.761,38.069c-2.242,-4.484 0.675,-6.781 -2.929,-9.517c0.843,-5.321 -5.198,-10.852 -6.589,-13.91c-5.075,-11.158 -11.266,-22.644 -18.302,-32.945c-2.112,-3.092 -7.001,-9.402 -10.25,-14.276c-4.063,-6.094 24.591,-6.02 27.111,-5.759c6.885,0.71 3.425,0.162 9.494,3.197c14.175,0 16.704,10.866 14.913,20.471c-1.54,8.264 1.667,16.292 9.979,19.062c2.85,3.902 2.928,4.487 2.928,11.714c-1.946,5.838 -17.825,30.493 -26.355,21.963c-0.733,-1.464 0.732,0.732 0,0m-42.462,2.928c-26.409,-13.204 3.619,-28.758 19.93,-21.231c11.021,5.087 9.655,15.938 -0.987,18.303c-6.373,1.417 -12.302,2.928 -18.943,2.928c-2.929,-1.464 0.732,0 0,0m-368.98,10.25c-3.951,-3.951 -13.228,-13.426 -3.819,-15.221c14.53,-2.771 28.91,2.137 43.352,-0.153c-5.849,9.931 -28.502,22.729 -39.533,15.374c-1.464,-1.464 2.196,1.464 0,0m357.266,25.623c-9.93,0 -14.318,-11.122 -11.307,-18.818c3.807,-9.728 7.27,-12.311 16.432,-16.323c3.652,5.488 15.02,6.435 20.499,3.661c5.421,8.828 20.215,-14.734 29.284,8.694c1.228,3.173 1.227,7.833 -1.465,10.341c-6.502,0 -14.167,3.66 -19.766,3.66c-5.068,0 -8.695,4.29 -12.663,6.67c-5.821,3.493 -14.582,3.034 -21.014,2.115c-2.196,0 5.125,0.732 0,0m-40.998,-38.801c18.387,-6.129 1.34,-43.214 -18.577,-32.67c-16.66,8.82 -0.517,45.4 18.577,32.67c2.197,-0.732 -2.196,1.464 0,0m-41.73,43.926c-4.805,0 -15.908,-1.106 -16.838,-5.125c-0.863,0.806 -1.982,0.716 -2.928,1.465c-1.557,-4.225 -6.769,-7.219 -11.439,-10.616c-11.277,-8.201 -18.362,-18.561 -18.605,-32.876c-0.358,-21.171 2.581,-36.705 22.357,-48.57c11.864,-7.119 27.557,-12.862 41.409,-8.991c28.061,7.84 43.933,43.85 39.921,70.597c-3.561,23.748 -28.303,39.231 -53.877,34.116c-2.928,0 7.321,1.464 0,0m114.941,17.571c-2.7,-2.7 -3.399,-9.523 -4.077,-13.073c-0.995,-5.21 9.91,-10.939 13.045,-6.237c3.898,5.848 2.591,25.09 -8.968,19.31c-1.465,-1.465 1.464,0.732 0,0m56.371,47.586c-0.162,0.17 -2.412,-1.031 0.733,-0.732c-1.697,-6.122 -5.603,-10.796 -4.393,-16.838c1.023,0.159 1.812,-4.612 2.776,-4.462c2.196,-6.403 4.041,-17.729 8.205,-21.894c1.522,-6.146 3.985,-26.047 13.178,-13.178c10.428,13.035 -3.15,57.104 -20.499,57.104c0,0 0.733,0 0,0m-377.032,53.444c0.426,0.206 1.255,-0.992 2.196,0.732c-1.971,0.291 -2.625,-0.939 -2.196,-0.732m10.249,2.928c-0.021,-1.754 0,0 0,0m38.069,91.513c-3.158,-6.317 -6.829,-8.053 2.929,-8.053c5.625,0 20.226,1.263 18.302,8.785c-5.666,-7.939 -16.124,6.173 -21.231,-0.732c-0.732,-1.464 0,0 0,0m81.264,-44.658c17.23,-5.744 25.415,-22.933 35.141,-34.409c-0.088,-1.062 -0.984,-4.398 -1.465,-5.857c-6.367,5.754 -7.337,7.711 -11.988,13.91c-4.128,5.504 -10.279,12.222 -16.106,16.106c-7.846,5.231 -20.533,4.644 -14.642,-7.138c3.72,-7.439 11.448,-12.606 16.655,-18.76c7.402,-8.747 6.739,-16.135 -3.935,-7.595c-9.348,7.478 -33.512,53.693 -3.66,43.743c2.196,-0.732 -2.197,0.732 0,0m47.586,136.171c-4.761,-2.024 -9.78,-3.284 -14.55,-5.308c-2.843,-1.206 -12.824,-3.764 -14.734,-5.674c-8.799,0 -19.641,-11.178 -27.82,-13.91c3.214,-3.075 2.725,-5.381 -1.464,-5.857c1.474,-6.553 -23.763,-17.886 -28.735,-26.172c-8.756,-14.593 -13.208,-22.107 -8.637,-38.961c4.732,-17.449 7.2,-34.555 5.617,-52.918c-0.697,-8.095 -13.067,-35.391 -9.975,-38.618c-10.081,-5.597 -11.332,-25.975 -19.766,-34.409c-8.956,-8.956 -8.652,-26.954 -16.839,-35.141c-3.984,-6.973 -10.981,-25.789 -10.981,-34.409c-8.288,-14.504 -6.719,-46.465 -1.465,-62.229c1.383,-9.68 6.791,-22.281 13.552,-29.696c8.258,-9.056 20.605,-14.931 25.982,-24.479c-0.136,1.167 -0.038,2.479 0,3.66c3.184,-1.811 7.222,-5.125 10.982,-5.125c1.903,-1.437 -0.884,-2.949 1.464,-4.392c4.157,0 13.153,-4.508 17.408,-5.749c6.685,-1.949 13.826,-2.913 19.929,-5.965c2.114,0 19.767,-4.509 19.767,-7.321c0,-0.856 16.902,-2.737 19.345,-3.45c6.728,-1.962 14.773,-0.399 19.456,-0.942c5.486,-0.637 11.149,-4.177 16.839,-5.125c32.465,0 58.073,1.583 85.656,15.374c14.946,11.21 23.786,26.715 36.605,39.534c4.748,4.748 3.236,11.046 9.517,12.445l0,1.464c-12.75,1.177 -32.449,-4.378 -40.591,10.548c-3.365,6.169 -5.911,12.35 -10.656,19.469c-0.364,0.728 -6.777,10.857 -8.785,7.321c-0.908,-1.6 3.622,-18.335 3.877,-21.394c1.072,-12.856 -7.864,-21.293 -9.734,-32.782c1.243,0.233 1.897,1.043 2.928,1.464c-1.079,-3.663 -5.34,-3.858 -8.785,-7.321c-1.776,-1.785 -4.725,-6.928 -6.589,-10.249c-4.254,1.651 -3.472,-0.691 -6.497,-3.112c-4.41,-3.528 -17.211,-7.87 -22.787,-7.87c-5.079,-0.734 -22.528,0.565 -27.82,5.857c-10.268,0 -33.677,18.549 -33.677,29.284c0,3.588 -3.927,8.907 -4.484,13.361c-0.647,5.175 -2.253,9.952 -2.05,15.435c0.281,7.582 3.185,20.801 10.195,23.916c-3.715,7.869 11.944,19.614 17.57,23.427c0.214,-1.133 0.596,-1.842 0.732,-2.196c2.669,0 0.254,4.089 2.929,4.758c2.527,0.632 4.6,1.653 7.046,2.197c4.497,0.999 7.095,0.597 10.524,4.026c4.378,8.758 28.746,-2.196 31.481,-2.196c15.052,0 20.603,-13.68 30.748,-19.767c5.689,-1.089 7.343,8.43 13.91,11.714c2.677,5.353 15.484,9.381 20.622,10.577c9.955,2.318 13.255,16.879 23.064,17.871c9.812,0.993 19.085,-0.5 19.248,-11.691c0.056,-3.892 -2.73,-26.445 7.673,-22.234c7.58,3.067 8.699,14.127 11.205,20.393c4.745,11.863 7.22,22.018 10.433,34.867c1.96,5.881 3.223,29.782 8.785,30.748c-1.386,4.752 -3.02,13.252 2.929,14.642c-4.896,0.881 -3.86,7.655 -1.465,12.446c0.211,3.333 -1.201,11.97 -1.338,17.444c-0.581,23.147 -3.272,45.046 -13.304,66.015c-1.635,3.42 -3.967,6.547 -5.491,9.975c-2.041,4.594 -0.335,11.623 -2.562,15.649c-0.701,1.267 -5.04,2.326 -6.406,5.399c-2.784,6.263 -6.92,10.811 -10.524,16.473c-5.243,8.239 -6.544,13.442 -13.818,19.858c-0.773,0.681 -7.435,5.819 -6.589,8.785c-4.882,0.595 -11.192,-0.78 -5.857,4.393c-7.437,-2.656 -14.517,-11.516 -24.159,-13.91c2.141,2.49 -0.579,1.283 2.928,2.928l0,1.464c-10.348,1.388 6.071,10.949 10.341,12.263c12.018,3.698 28.217,17.399 29.193,29.467c-8.198,3.689 -20.537,-4.092 -25.624,-6.589c-4.371,0 -9.517,-5.089 -9.517,-9.151c0,-1.498 -17.312,-2.741 -20.499,-3.294c9.402,12.761 -26.551,16.588 -34.409,17.57c-4.136,0 -6.986,3.028 -11.225,3.444c-7.818,0.766 -15.879,0.217 -23.733,0.217c-4.382,0 -7.874,-1.805 -9.7,2.196c-1.148,-1.101 -3.888,-2.964 -4.393,-3.661c0.646,0.799 1.514,1.429 2.196,2.197c-2.113,1.205 -5.017,1.44 -8.053,0.732c0.473,-0.961 0.767,-1.954 1.465,-2.929c-3.628,-0.943 -4.373,-1.437 -6.589,0.732c-0.122,-0.121 4.019,2.434 3.66,2.197c-1.315,-0.062 -3.764,1.361 -5.125,0c0,0 0.733,0.732 0,0m-76.138,5.857c-15.065,0 -1.023,-11.767 0,-13.178c2.382,-3.287 3.315,-11.444 9.151,-12.904c6.904,-1.725 9.827,8.775 13.544,4.119c12.881,7.053 -13.73,24.951 -22.695,21.963c-2.929,0 4.392,1.464 0,0" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/shopping-cart.png b/go.dev/_content/images/gophers/shopping-cart.png
new file mode 100644
index 0000000..de8e0f2
--- /dev/null
+++ b/go.dev/_content/images/gophers/shopping-cart.png
Binary files differ
diff --git a/go.dev/_content/images/gophers/skateboarding.svg b/go.dev/_content/images/gophers/skateboarding.svg
new file mode 100644
index 0000000..c281a39
--- /dev/null
+++ b/go.dev/_content/images/gophers/skateboarding.svg
@@ -0,0 +1,227 @@
+<svg width="147" height="95" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <mask id="a" maskUnits="userSpaceOnUse" x="0" y="84" width="129" height="10">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M12.6 84.5H14.4l7.7.3h43.2c16.8 0 32 0 49 .4h.5c1.1 0 2.3 0 3.4-.2h8.6c.7.2 1.8.1 1.7.4l-.4.6c0 .1 0 .2-.2.2l-.8.2h-.5c-3.2.6-6.8.5-10.5.4H108.5l-12.7.1h-3.2c-2.8-.1-4.5-.1-4.5 1l-.1.2c-2.5 4.5-18.9 5.4-23.4 5.4h-.2c-9.9 0-39.6.5-41 .5h-.3c-3.5 0-7.3 0-9.3-.5-.7-.2-4.6-.5-7.6-1.6-.6-.1-5.9-.2-5.9-.6l.4-.2 5-.4h-.2c-.5-.6-.4-1-.8-1.5-.5-.8.4-1.4 1.5-2 0-.2-4-.7-3.7-.8.4-.2 3-1.2 4.8-1h.1l1-.4c2-.5 3.3-.5 4.2-.5z"
+      fill="#fff"
+    />
+  </mask>
+  <g mask="url(#a)">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M8.3 85l-1 .5c-1.8-.3-4.6.8-4.8.9-.2 0 4 .6 3.7.8-1.2.6-2 1.3-1.5 2 .4.6.3 1 1 1.5l-5 .4c-.3 0-.4.1-.4.2 0 .4 5.5.5 5.9.6 3.1 1.1 7 1.4 7.6 1.6 2 .5 6 .5 9.7.5 1.3 0 31.6-.5 41.1-.5 4.6 0 21.2-1 23.5-5.5 0-1.3 1.8-1.2 4.7-1.1h3l16-.2 4.3.1a61.6 61.6 0 0011.8-.6c.2 0 .2-.1.2-.2l.4-.6c.1-.3-1-.2-1.8-.4h-8.5l-4 .2c-17.6-.4-33.4-.3-51.1-.3a5409.3 5409.3 0 01-49.6-.4h-.9c-1 0-2.3 0-4.3.5z"
+      fill="url(#paint0_linear)"
+    />
+  </g>
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M83.6 77.4h.4c.2-.1.2-.2 0-.3 0-.2-.3-.2-.5-.1-.2 0-.4 0-.4.2 0 .3.2.2.4.2h.1zm-6-1.4l-.7.1V76.4c.3 0 .6.2.9 0 0 0 .2 0 .2-.2l-.3-.2h-.2zm-.2 1.7c.2 0 .4 0 .5-.2.2 0 .1-.3 0-.3H77l-.1.2.1.2h.4zm43-.6c-.4 0-.6 0-.6.2s.3.3.7.3c.3 0 .5-.1.5-.3l-.6-.2zm6.4 0h-.5c-.2 0-.2.2 0 .3.1.2.8.2 1 0v-.3h-.5zm-6.7-.5h.2c.2 0 .3 0 .3-.2s0-.3-.2-.3h-.9v.2c-.1 0 0 .2 0 .2h.6zm6.3 0h.2c.1 0 .3-.1.3-.3l-.2-.2h-1V76.5l.7.2zm-43-.1h.2c.1 0 .2 0 .3-.2 0-.2-.1-.3-.3-.3h-.9v.4h.6zm48.3 2.7l-2-.1c-1.4-.3-2.9-.3-4.3-.3h-3.6l-2-.1h-15.5c-2.3 0-4.6-.2-7-.1H79.2l-3.5.4c-1.4.1-2.9.2-4.3 0h-1c-.8 0-1.5-.1-2.2-.3-1.7-.5-3.5-1-5.1-1.8l-3-1.7c-.6-.3-1-.7-1.4-1.1-.4-.4-.3-.6.1-.9l.6-.1c1-.1 2.1 0 3.2.2l7 1.6 3.8.4c1.9 0 3.7-.2 5.6-.4 1.6-.1 3.3-.4 5-.3h26.3l4.5-.1 5 .1h2.3c1.1.1 2.3 0 3.3.3a18 18 0 007.7 0c2-.4 4.1-1 6.2-1.6 1.5-.3 3-.5 4.6-.5h1c.6 0 1 .3 1.3.7.4.4.4.7 0 1.1-.5.5-1 .8-1.7 1.1a57.5 57.5 0 01-11.4 3.4h-1.3z"
+    fill="#D5BBAC"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M124.4 89.1c0 .2.1.3.3.3l-.1-.2s-.1-.1-.2 0zm-.4-.4c0-.2-.1-.3-.4-.4 0 .2.2.4.4.4zm3.2-4.2c.2 0 .4.3.7.5-.2-.4-.4-.5-.7-.5zm1 .2l.4.8c0-.4-.1-.7-.4-.8zm-5 2.2h-.2c0 .4 0 .8.3 1h.1l-.3-1zm4.8-.8c0-.4-.3-.6-.6-.8-.1 0 0 .1 0 .1l.6.7zm-3.7.9c0-.4 0-.7.2-1l.5-.7c-.7.4-1 1.2-.7 1.7zm-1.1-.9c.2-.6.5-1.2 1-1.6.6-.4 1.2-.6 1.9-.7.6 0 1.3.2 1.9.6 0-.3-.2-.3-.3-.4-.6-.4-1.3-.4-2-.3-1.2.2-2 .8-2.5 2-.1 0-.2.2 0 .4zm1.5.8c0 .6.4 1.4 1.1 1.5.5 0 .8 0 1.2-.3.4-.1.6-.5.7-.9.1-.9-.5-1.7-1.4-1.8-.9 0-1.6.6-1.6 1.5zm1.3 3c-.8.1-1.4-.2-2-.7-.6-.5-1-1.2-1.3-2-.3-.9-.2-1.8.4-2.6 1-1.6 3-2 4.4-1.2 1.3.7 2.4 2.2 1.8 4.1-.4 1.1-1 2-2.2 2.3l-1.1.2zM80.9 88.2c-.2.1-.3.2-.3.4.2-.1.2-.1.3-.4zm-.8.9c-.1 0-.3 0-.4.2.2 0 .4 0 .4-.2zm-2.8-4.8c-.2.1-.4.1-.5.4.3 0 .4-.1.5-.4zm3.9 3.5c.2-.2.3-.5.3-1l-.1.3-.2.7zm-5.3-2.1l.4-1.1c-.3.3-.5.6-.4 1zm3.7-.3c.5.4.6 1 .7 1.7.2-.7-.1-1.5-.7-1.7zm-2.3-.1c-.6 0-1 .7-.9 1.1.2-.5.5-.8.9-1.1zm-.3-1.4c0 .1.1 0 .2 0l1.3-.1c1.6 0 2.8 1.2 3 2.4v.1c.2-.6-.4-1.6-1.3-2.2-1-.6-2.6-.7-3.2-.2zm1.1 1.4c-.5 0-1 .2-1.1.6-.5.8-.5 1.5.3 2.1l.4.3c.3.2.7.2 1 0 .6-.1 1-.6 1.2-1.2 0-.3 0-.7-.2-1-.4-.5-.8-.8-1.6-.8zm3.9 1c0 .8-.3 1.6-.8 2.3-.3.4-.7.7-1.2 1-1.6.6-3.2.1-4.3-1.1-.4-.6-.6-1.3-.6-2 0-1.2.5-2.1 1.3-2.9.6-.5 1.3-.6 2-.6.8 0 1.6.2 2.2.6.6.4 1 .8 1.2 1.4l.2 1.3z"
+    fill="#FBE900"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M58.3 74.7a28.4 28.4 0 009.3 4.4l2 .5h5.7l2-.3 5.4-.2H96l8.9.1a219.7 219.7 0 007.3 0h13.7c1.2 0 2.3.2 3.4.4 1.6.2 3.1.1 4.8 0 2-.4 3.8-1 5.7-1.6 2-.5 3.8-1.4 5.7-2.3h.2l-1.1.6c-2 1-4 1.7-6 2.3l-3.5 1-3 .3c-1 .1-2 0-2.9-.1-1.5-.3-3-.3-4.4-.3H108.1l-7.2-.1H81.7c-2 0-3.8 0-5.7.2-1.7.2-3.5.2-5.2.2a31.3 31.3 0 01-12-4.7c-.2 0-.4-.2-.5-.4z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M138.1 78.3c-1.2.4-2.3.8-3.6 1l-2 .2c-1 .1-2 0-3-.1a32 32 0 00-4.5-.3h-18.3l-11.5-.2H124l3.2.2c1.3 0 2.5.2 3.7.3 1 0 2.1 0 3.2-.3 1.3-.2 2.5-.4 3.8-.8h.1zM76 79.2l1.7-.2c1.5-.2 3-.2 4.5-.2h11.1l-.4.1H79.6l-3.3.3h-.4z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M125 80.8l-.1-.2h-.1l.1.2zm-.3-.4l.6.3v.2a2 2 0 01-.6.7c-.3.2-.7 0-.8-.4 0-.5.2-.8.8-.8z"
+    fill="#0781A8"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M69 79.2c1.7.2 3.3.1 5 .2-1.7 0-3.4.2-5-.2zM143.2 76.5c-.8.5-1.7.8-2.7 1l2.7-1z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M127 81.8v1l-.1.1-.1-.1c0-.3 0-.6.2-1zM77.6 81.9c.2.2.2.5.2.7l-.1.2c-.1 0-.2 0-.2-.2V82z"
+    fill="#0781A8"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M80.5 81.4c-.2.1-.4 0-.5.2h-.2l.1-.2h.6z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M138.7 78l.6-.1c0 .1 0 0-.1 0l-.5.2zM75.5 79.3a2 2 0 01-.8 0h.8zM63.1 77.2c.1 0 .3 0 .4.2l-.4-.2zM145.7 75.2l-.1.2v-.2h.1z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M122.6 84.8v-.1h.1z"
+    fill="#0781A8"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M83.6 76.2H83h.5zM126.2 76.3h.2-.2zM119.8 76.3h.5-.5zM126.7 77.3h0zM120 77.3h.6-.5zM77.7 77.4h-.2-.2c.1-.1.3 0 .4 0zM77.4 76.3h.1zM83.7 77.2h-.2.2z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M127.2 87.1c0-.7-.4-1.2-.9-1.3-.6 0-1.2.5-1.2 1 0 .7.4 1.1 1 1.1s1.1-.3 1.1-.8zm.3-.1c0 .7-.7 1.2-1.5 1.2-.6 0-1.1-.6-1.1-1.3 0-.7.5-1.3 1.3-1.3.7 0 1.3.6 1.3 1.4zM78.4 88c.6 0 1-.4 1-1s-.6-1.2-1.1-1.2c-.7 0-1.2.4-1.2 1 0 .7.6 1.2 1.3 1.2zm-.3-2.5c.7 0 1.1.3 1.4.7.2.3.2.6.2.9-.1.4-.4.7-.7 1-.5.2-.9.2-1.3 0l-.3-.3c-.6-.5-.6-1.2-.2-1.8.2-.4.6-.5 1-.5z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M126.1 87.5c.3 0 .5-.2.5-.4 0-.3-.2-.5-.4-.5s-.5.2-.5.5c0 .2.2.4.4.4zm1-.5c0 .4-.5.7-1 .7-.4 0-.8-.4-.8-.9 0-.3.6-.8 1-.8s.8.5.7 1zM78.7 87c0-.3-.2-.5-.4-.5-.3 0-.5.3-.5.5 0 .3.2.5.5.5s.4-.2.4-.5zm-.5-1c.5 0 1 .4 1 1 0 .4-.3.8-.8.8-.6 0-1-.4-1-.9s.3-1 .8-1z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M126.4 87c0 .2-.1.2-.2.2-.2 0-.3 0-.3-.2l.3-.2c.2 0 .2.1.2.3zM78 87c0-.2.2-.2.3-.2.2 0 .2 0 .2.2s0 .3-.2.2c-.2 0-.3 0-.3-.2z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M145.7 75.2s-.2 0-.1.2l.1-.2zm-82.6 2l.4.2a.7.7 0 00-.4-.2zm12.4 2h-.8c.3.1.5.1.8 0zm63.2-1.1l.5-.1s.1 0 0-.1l-.5.2zm4.5-1.6l-2.7 1c1-.2 1.9-.5 2.7-1zM69 79.2c1.6.4 3.3.1 5 .2-1.7 0-3.3 0-5-.2zm7 0h.3l3.3-.2h7.1c2-.2 4.1-.1 6.2-.1h.4v-.1H82.1c-1.5 0-3 0-4.5.2-.6 0-1.2 0-1.8.2zm62.1-1h-.1a32.5 32.5 0 01-7 1.2c-1.2 0-2.4-.3-3.7-.3l-3.2-.1h-8l-5.8-.1H95.2l11.5.1H125c1.5 0 3 .2 4.4.4 1 .1 2 .2 3 .1.8 0 1.4-.2 2.1-.3 1.3-.1 2.4-.5 3.6-1zm-79.8-3.5l.5.4a24.7 24.7 0 009 4.2c1 .3 2 .5 3 .5 1.7 0 3.5 0 5.2-.2l5.7-.3h19.2l7.2.2H124.8c1.5 0 3 0 4.4.3 1 .1 2 .2 3 .1 1 0 2-.2 2.9-.4 1.2-.2 2.3-.6 3.5-1 2-.5 4-1.2 6-2.2.4-.2.7-.3 1-.6h-.1c-1.9 1-3.7 1.8-5.7 2.3-2 .6-3.8 1.2-5.7 1.5-1.7.2-3.2.3-4.8 0l-3.4-.2h-13.7a88.8 88.8 0 01-7.3 0L96 79H82.8l-5.4.2-2.1.2c-1.8.2-3.5.1-5.3.1h-.4l-2-.5a29.8 29.8 0 01-9.3-4.4zM82 86.3c0-.5 0-1-.2-1.3-.3-.6-.6-1-1.2-1.4-.6-.4-1.4-.5-2.1-.6-.8 0-1.5.1-2 .6-1 .8-1.4 1.7-1.4 2.9 0 .7.2 1.4.6 2 1 1.2 2.7 1.7 4.3 1 .5-.2.9-.5 1.2-1 .5-.6.8-1.4.8-2.2zm44 3.7c.4 0 .8 0 1.1-.2 1.2-.4 1.8-1.2 2.2-2.3.6-1.9-.5-3.4-1.8-4a3.5 3.5 0 00-4.4 1.1c-.6.8-.7 1.7-.4 2.6.2.8.7 1.5 1.3 2 .6.5 1.2.8 2 .8zm5.7-10.8h1.3a42 42 0 0011.4-3.5c.6-.3 1.2-.6 1.7-1.1.4-.4.4-.7 0-1.1-.3-.4-.7-.6-1.2-.7h-1.1c-1.6 0-3.1.2-4.6.5L133 75a16.1 16.1 0 01-7.7-.1c-1-.2-2.2-.2-3.3-.2l-2.2-.1-5-.1-4.6.1H83.8l-4.9.3a46 46 0 01-9.3 0l-7.1-1.6c-1-.2-2.1-.3-3.2-.2l-.6.1c-.4.3-.5.5-.1.9s.8.8 1.4 1.1l3 1.7c1.6.8 3.4 1.3 5.1 1.8l2.1.4h1.1c1.4.1 2.9 0 4.3-.1l3.5-.4h29.6l5.2.1h11.5c1.4.1 3 .1 4.4.4h2zm-29.5.5c-3.4-.2-6.7-.1-10.1-.2h-7.2c-.2 0-.3.1-.3.3-.2.4-3.6 1.1-3.8 1.5 0 .2-.8.3-.8.5 0 .7.4.4.2 1-.3.5.4.4.9.8a7 7 0 011 1.8c.2 1.2 0 2.3-.7 3.3-.6.7-1.4 1.2-2.4 1.3a4 4 0 01-2.5-.5c-1.3-.8-1.7-2-1.6-3.5a4 4 0 012.2-3c.2-.1.2-.2.2-.5l.1-1V81l-.2-.1H77a1 1 0 01-.9-.6c-.1-.3-.3-.3-.5-.3l-3.3.1h-3c-2-.6-3.8-1.1-5.6-1.9a23.5 23.5 0 01-5-2.9c-.5-.3-.7-.7-.6-1.3 0-.6.4-.9 1-1a5 5 0 011.9 0c.8 0 1.6.2 2.4.4l6.4 1.4c2 .4 3.9.4 5.9.3l2.7-.2c1.6-.2 3.2-.4 4.8-.4h26l3.2-.1h6.5c1.5 0 3 0 4.5.2 1.1 0 2.2.2 3.4.4a15.4 15.4 0 006.8-.3l3.3-.8 3.2-.8a16 16 0 015-.3c.6 0 1 .3 1.4.7.2.2.2.4.2.7l-.1 1a2 2 0 01-.9 1l-2 .9c-1.7.9-3.6 1.3-5.4 2-2 .6-4 1-6.1 1.2l-2.2-.1-1-.2c-.3 0-.4 0-.5.2-.2.5-.5.7-1 .7-.3 0-.4 0-.3.4v.3c.2.4.2.8.1 1.3 0 .1 0 .2.2.3.7.3 1.2.8 1.7 1.5.7 1 .7 2 .3 3.1-.3 1.2-1.2 2-2.4 2.4-1.4.3-2.6 0-3.5-1.1-.5-.6-1-1.3-1.1-2-.1-.6-.1-1 0-1.6.2-1 .8-1.4.6-1.6 1-1.2 1.3-1.2 1-1.8-.2-.6-.3-1-.2-1.6l-3.6-.4c-.3-.4-.5-.3-.7-.3H102.2z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M83.6 76.3H83h.5zm-.3.4l-.5-.1-.2-.2.1-.2c.3-.3.6-.3 1-.2l.2.4c0 .2-.2.3-.3.3h-.3zM126.2 76.4h.1s.1.1.1 0h-.2zm.2.4c-.3 0-.5 0-.6-.2-.1 0-.2 0-.2-.2 0 0 0-.2.2-.2.3-.1.6-.2.9 0 0 0 .2 0 .2.3 0 .2-.2.2-.3.3h-.2zM119.8 76.5h.5c-.2-.2-.4-.2-.5 0zm.3.3h-.6l-.1-.4.1-.2c.3-.2.6-.2.9 0 .1 0 .2.1.2.3 0 .2-.1.3-.3.3h-.2zM126.7 77.4h0zm.1-.3h.4c.2.2.2.4 0 .5-.1.3-.8.2-1 0v-.4c.2-.2.4-.1.6-.1zM120 77.5h.6c-.1-.2-.3-.2-.5 0zm.4-.4c.3 0 .5.1.6.3 0 .3-.2.4-.5.5-.4 0-.7-.2-.7-.4 0-.3.2-.4.6-.4zM77.7 77.5c-.1 0-.3-.2-.4.1h.4zm-.3.4H77l-.1-.3.1-.3c.3-.2.6-.2.9-.1.1 0 .2.3 0 .5-.1.2-.3.2-.5.2zM77.4 76.4h.1zm.1-.4h.2c.2 0 .3.1.3.4 0 .2-.1.2-.2.3-.3.1-.6 0-.8 0l-.2-.3.1-.2c.2-.2.4-.1.6-.2zM83.7 77.4v-.1h-.2.2zm0 .3h-.2c-.2 0-.4 0-.4-.3s.2-.4.4-.4.4 0 .6.2c0 .1.1.3 0 .4h-.5zM127.5 87c0-.8-.6-1.4-1.3-1.4-.8 0-1.3.6-1.3 1.3 0 .7.5 1.3 1.1 1.3.8 0 1.5-.5 1.5-1.2zm-2.8-.1c0-.9.7-1.5 1.6-1.5.9 0 1.5 1 1.4 1.8 0 .4-.3.8-.7 1-.4.1-.7.3-1.2.2-.7 0-1.2-1-1.1-1.5zM123.2 86.1c-.2-.2-.1-.3 0-.5a3.2 3.2 0 012.6-2c.6 0 1.3 0 1.9.4 0 0 .2.1.3.4-.6-.4-1.3-.6-2-.6-.6.1-1.2.3-1.7.7-.6.4-.9 1-1.1 1.6z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M124.3 87c-.3-.5 0-1.3.7-1.7l-.5.8-.2.9zM128 86.1l-.7-.7.1-.1c.3.2.6.4.6.8zM123.1 87l.3 1c-.3-.3-.4-.7-.4-1h.1zM128.2 84.7c.3.1.5.4.4.8l-.4-.8zM127.2 84.5c.3 0 .5.1.7.5l-.7-.5zM124 88.7c-.2 0-.3-.2-.4-.4.3 0 .3.2.4.4zM124.4 89.1h.2v.3s-.2-.1-.2-.3zM78.1 85.5c-.3 0-.7 0-1 .5-.3.6-.3 1.3.3 1.8l.3.2c.4.3.8.3 1.3 0 .3-.2.6-.5.7-1 0-.2 0-.5-.2-.8-.3-.4-.7-.7-1.4-.7zm0-.2c.8 0 1.2.3 1.6.8.2.3.3.7.2 1-.2.6-.6 1-1.2 1.3-.3.1-.7.1-1-.1l-.4-.3c-.8-.6-.8-1.3-.3-2.1.2-.4.6-.6 1.1-.6zM77 84c.6-.6 2.3-.5 3.2 0 1 .7 1.5 1.7 1.3 2.3-.2-1.3-1.4-2.5-3-2.5-.5 0-1 0-1.3.2H77zM77.3 85.3c-.4.3-.7.6-.9 1.1-.2-.4.3-1 .9-1.1zM79.6 85.4c.6.2.9 1 .7 1.7 0-.7-.2-1.3-.7-1.7zM75.9 85.7c-.1-.5 0-.8.4-1.1 0 .4-.3.7-.4 1zM81.2 87.8l.2-.7.1-.2c0 .4 0 .7-.3.9zM77.3 84.3c-.1.3-.2.3-.5.4.1-.3.3-.3.5-.4zM80.1 89c0 .2-.2.3-.4.3.1-.2.3-.2.4-.2zM80.9 88.2l-.3.4c0-.2.1-.3.3-.4zM126.4 81.8c.2-.3 0-.6.3-.9 0 .6 0 1-.3 1.5v-.5-.1zM126.4 81.8v.1l-.3.3c0-.4.2-.7.3-1v.6zM125.9 82c0-.3 0-.4.2-.6l-.2.6zM77.9 81l.2.6c0 .2.1.4.3.5v.3l-.2-.2-.4-1V81zM78.3 81.2l.2.7c-.3-.1-.3-.4-.3-.6h.1zM78.5 81.3c.2.1.3.2.2.4-.2 0-.2-.2-.2-.4zM127 87c0-.5-.3-1-.7-1-.4 0-1 .4-1 .8 0 .5.4 1 .8 1 .5 0 1-.4 1-.8zm.2.1c0 .5-.5.8-1 .8-.7 0-1-.4-1-1s.5-1 1.1-1c.5 0 1 .5.9 1.2z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M78.2 86c-.5 0-.9.4-.9 1 0 .4.5.8 1.1.8.5 0 .8-.4.8-.9s-.5-1-1-1zm.2 2c-.7 0-1.3-.5-1.3-1.1 0-.7.5-1.1 1.2-1.1.5 0 1 .6 1 1.1 0 .7-.3 1.1-1 1zM126.5 87.1c0-.1 0-.3-.2-.3s-.3.1-.4.3c0 .2.1.2.3.2.1 0 .3 0 .3-.2zm-.3.5c-.3 0-.5-.2-.5-.5 0-.2.3-.5.6-.5.2 0 .4.3.4.6 0 .2-.2.4-.5.4z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M78 87c0 .2.1.3.3.3.2 0 .3 0 .3-.3 0-.1-.1-.2-.3-.2-.1 0-.2 0-.3.2zm.8 0c0 .3-.2.5-.5.5-.2 0-.5-.2-.5-.5 0-.2.2-.5.5-.5s.5.2.5.5z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M86.3 20.6c-3 6-1.1 13.2-3.3 19.5-1.8 5.1-5.2 9.6-6.7 14.8-.2.6-.4 1.3-.3 2 .2.6.6 1.2 1 1.8l6 8c.4.7.8 1.3 1.4 1.8.6.6 1.3 1 2 1.4 1.3.9 2.7 1.8 4.2 2.5 3.5 1.7 7.5 1.8 11.4 1.5 5.7-.5 11.7-2 16-6 1.5-1.5 2.8-3.2 4-5 6-9 9.7-19.4 10.7-30 .1-.8.2-1.6.6-2.3.4-.8 1.2-1.3 1.7-2 .5-.8.6-2-.2-2.4 1.8-.2 2.3-2.5 2.2-4.2a9.6 9.6 0 00-1.5-5.2c-1.1-1.5-3-1.3-4.8-1.9 0-.4-1-.3-1-.7-1.8-2-5.1-4.6-8.4-6.2a28.5 28.5 0 00-11.6-2.4c-.8 0-6.8-1.5-5.3.3C107 8.7 101.2 9.7 99 9c-1.1-.3.8-3.1 0-2.6-2.1 1.1-6.5 3.6-8 5.3-2.4 2.7-3 5.6-4.7 8.9z"
+    fill="#8CD0E4"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M99.1 9.2l-2.5-5-.2-1.7-.4-1.2 2.3-.3 1.6 1 2.1 2.4 1.8 3.6.2 1s-2.4 2.1-4.9.2zM117 6.4l1.7-3.1s.5-.4 1.2-.3c.7.2 1.8 1.5 1.8 1.5s.3.8.3 1.3-1.1 2.2-1.1 2.2-3-.3-3.9-1.6z"
+    fill="#BCB9C3"
+  />
+  <mask id="b" maskUnits="userSpaceOnUse" x="72" y="0" width="67" height="77">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M72.2.4h66.1v76H72.3V.4z"
+      fill="#fff"
+    />
+  </mask>
+  <g mask="url(#b)">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M127 23.5v-.2h-.5l-.2.3.2.2.5-.3zm6.5 18.5h-.1.1zm-.7-1.6l-1.6.6-.3.3c0 .6-.6.7-.7 1.1l.2.5v1.3l2.1-.5.5-.6c-.4-.1-.6-.4-.4-.8v-.2l.2-1.7zM77.5 57.9l-.4-.8c-.1-.5-.4-.6-.8-.6-1 0-1.9.3-2.7.8l-.8.4v.3c-.3.5 0 1 .6 1l.5.1.8.2c.4.2.7 0 1 0 .8 0 1.4-.2 2-.6-.6-.4-.6-.7-.2-.8zm35.7 16l-.4-.7v-.3l-1-2h-.2l-.5-.1v.6l-.8.3c0 .7-.8.3-1 .7l.7 1.4c0 .2.2.3.3.5.3.3.4.8 1 .8h.1c.3.4.7.4 1 .5.9.2 1-.1.9-.9l-.1-.7zm17.1-52h-1c-.6.3-1.1.4-1.5 1-.5.6-.5 1.3.3 1.7.6.2 1.1.6 1.7.5.6-.1 1.1.2 1.6-.4.3-.3.8-.4 1.2-.6.3-.2.6-.7.4-1-.2-.3-.5-.6-.8-.7-.6-.3-1.3-.4-1.9-.5zm-41.2 50c-.4-.2-.2-.5-.2-.8 0-.2 0-.4-.2-.5l-1.1-.6.2-.2-.2-.1c-.3-.2-.6.3-.8 0-.2-.3-.5-.4-.8-.5-.4-.2-.5-.2-.7.2l-.5 2s.2 0 .3.2l1 1.5.3.5c.4.5 1 .6 1.6.7l.3-.4.4-.7.2-.9.2-.4zM133.9 25c0 .3.3 1 .6 1.2.6.3.8.2 1.2-.4.3-.4.5-1 .5-1.5 0-.6.2-1.2 0-1.8L136 20l-.1-.9-.6-1-.5-.6-.6-.8a10 10 0 00-1.8-.6c-.5-.1-.7.1-.6.6l.4 1.4.1.7.2.6.4 1.7v.2c.5.4.6 1.2 1.3 1.4v1.3l-.2 1zm-6.4.1c-.3-.2-.6-.2-1-.1-1 0-2 0-2.5 1.1-.9.8-1 1.7-1 2.8 0 .3.1.8.3 1l1 1 1 .4h.3l1.2-.2h1c.2 0 .4 0 .7-.2.2 0 .5 0 .7-.2.6-.6 1.3-.6 2-.4.3.1.8.3 1 .1.4-.3 1-.4 1.3-.9.3-.5.7-1 .7-1.7 0-.6 0-1-.3-1.6-.3-.4-.6-.4-1-.4h-.8v.2h-1.8c-.5.2-.9.1-1.3 0l-1.9-.7.4-.2zm-8.1 4.7l1.6-2.3.8-1.3.2-.6v-1.1l-.3-1.6c-.1-.6-.5-1.2-1-1.8-.6-.5-.7-1.2-1.5-1.6a.6.6 0 01-.2-.2c-.4-.7-1-1-1.8-1.3-1.4-.7-3-.7-4.5-.9h-.3c-.8 0-1.5.4-2.4.1l-1.2.5L107 19l-.6.6-1.3 1a3.2 3.2 0 00-.8 1.9c0 .5-.6 1 0 1.6v.1c-.3.6-.1 1.1 0 1.7l.6 1 .7 1a17.4 17.4 0 002.2 1.9c.2.1.6.1.8.3.8.5 1.6 1 2.6 1.1l.5.1 1.7.2 1.2.1h.6l.3-.1c.8 0 1.5-.2 2-.5l1.3-.8.6-.3zM120.7 6c.1.2.1.3-.2.6.2.3.2.3-.3.6l.3.3-.2.2c.2.2.4.3.4 0 0-.6.2-1.2.3-1.7v-.5-.1l-.1.1c.2.3 0 .4-.3.5v-.6l.4-.3-.8-.4v-.1l.8.1c-.2-.6-.9-.4-1-1h-.2c-.3.1-.7.2-.9.4-.6.7-.9 1.5-1 2.5v.3l.4-.1c0 .3 0 .7.6.7h.6c.1 0 .3 0 .4-.2l.2-.6.3-1 .3.3zm11.5 38.3c-.6.4-1.4.4-2 .7-.2 0-.4.3-.4.5l-.3 1.1-.7 2.5-.3.3-.5 1-.3 2h-.6c0 .2 0 .5-.2.8-.1.5-.4 1-.7 1.4v.4h-.3l-.2 1c-.2.5-.3 1-.7 1.3-.2.2-.3.6-.7.6v.3l-.3.6-.3.4-.8 1.3h-.8l.4-.8c.3-.5 1-.8 1-1.5l.7-.4-.3-.3h-.1l.6-.2-.2-.2.8-1.6c-.2-.3.2-.9.8-1.2-.2-.5.1-1 .4-1.4l.1-.4 1-2.2.4-1.5.4-1.1.3-.6.5-1.2.2-.4.5-2.6.4-2 .5-2V38l.3-.3v-.4c0-.8.2-1.6.1-2.4 0-.3-.2-.4-.4-.3l-.6.1c-5.9-.5-5.8-1.6-6-1.7 0 0 1.8 0 1.8-.3l.3-.4-1.3-.4-.6-.2c-.2 0-.4-.1-.4-.3-.3-.5-.7-.8-1.2-1.2l-.3-.4c0-.2 0-.4-.2-.6h.1v-1.4l-.4.3-1 1.5-1.4 1.2c-.3.2-.5.5-.8.6l-2.1 1-.7-.2c0 .4-.2.5-.7.3l.4-.3H114v.4l-1.3-.1c-.7-.2-1.4-.3-2-.8h-.2c-.5 0-1 .2-1.3-.4h-.1c-.6.1-.9-.6-1.4-.6l-.2-.1c-.4-.8-1.2-1.1-1.7-1.7-.3-.4-.9-.6-1-1.2 0-.4-.2-.7-.3-1l-.2-.2-.2-.2c0-.7-.4-1.4-.6-2-.1-.8-.2-1.6 0-2.3l.3-1.5c.2-.8.5-.1 1-.9.3-.6.6-.6 1.3-1l2.2-1.3c.6-.5 1.3-.5 2-.6.5 0 1-.3 1.5-.4h.8c.3-.1.5-.1.8 0 .3.2.7.1 1.1.2l2 .6a4 4 0 012 1.4c.3.3.8.4 1 .6l.8.6c.3.5.7.8 1 1.4.1.5.5.9.5 1.4l.1.2c.6.6.6 1.3.7 2 .2.8.5.1.6.9v.1c-.3.6-.1-1-.3-.5v.4l.3-.1 1-1.1.3-.3h1.1l.6-1 .2-.5c.2-.3.7-.2 1-.7.1-.3.7-.5 1.1-.7.6-.2 1.1-.3 1.7 0h.2c.5-.2 1 0 1.4 0 .3 0 .3 0 .3-.4l-.3-1.5-.1-.6c.1 0-.1-.2 0-.2-.2-.4-.8-.6-.8-1l-1-1.5c-.4-.4 1 1-1.2-1.6-.5-.6-1.1-1-1.5-1.6-.5-.7-1-1.2-1.8-1.5-.6-.2-.8-.8-1.3-1l-.7-.3.1.4-1.6-1v.4c0-.5-.6-.7-.9-.7-1-.4-2-1-3-1.3l-1.8-.5a47.7 47.7 0 00-2-.4c-.1 0-.4.3-.5-.1h-.5v-.1l-.5-.2h-.2c-.2.4-.4 0-.7 0-1.4-.5-2.8-.6-4.3-.7l-.8-.1-1.8.2h-1c0 .4.2.7.4 1 0 .2.2.3.3.5V8l-.5-.2-.6-1-.5-1-.5-1-.3-.5-1.4-1.7-.6-.4-.2-.3a3.1 3.1 0 00-3.1-.8c-.5.2-.7.8-.6 1.3.3 1.3 1 2.5 1.5 3.6.6.3.4 1 .6 1.4l.6 1.1c.1.2.3.4.2.5-.1.2-.3.6-.7.3h.1l-1-1.1V8l.4.1c-.1-.3-.3-.4-.6-.2l-1 .4c-.1.1-.6 0-.6.4l-.3.2h-.3l-1.4 1.3-.9.5c-.3 0-.4.4-.6.5-.7.4-1 1.2-1.5 1.6-.6.4-.9 1-1.1 1.5l-.5 1-.8 2c0 .2-.2.2-.3.2 0 .2 0 .5-.2.7l-.4 1.3-.3.3v.6l-.7 1.8c-.3.7-.3 1.5-.4 2.4h-.4l.3.3-.3.2.2.3c-.3.4-.2.8-.1 1.2v.3c0 .5-.3 1.1-.3 1.7V30l-.1 1.4-.8 3.5v.3c-.5 1-1 2-1.3 3 0 .4-.5.8-.5 1.3s-.3 1-.4 1.5l-.2.3-1.5 3-1.4 3.1c-.3.7-.6 1.3-.6 2.1l-.3.8L78 52l-.1.3v1.5c0 .5-.3 1-.2 1.5 0 .4 0 .9.2 1.3l1.1 3.6c0 .2.2.3.3.5l.6 1.1c.2.3.2.6.6.6.2 0 .3.2.4.4l.3 1 .3.3.2.1L83 66c.3.4.6.7 1 .9l2.8 1.7.3.1v.4l.2-.2 1.2.6c.7.5 1.6.5 2.4.9l1.6.5 1 .1.4.3.1-.2v.3h.1l.2-.3 2.7.9v-.3c.2.3.3.3.6.2h.8c.7.4 1.4.3 2.1.3l1.8.4s.2.1.2 0c.5-.3 1 0 1.5 0l3-.8 1.1-.4.2-.3 1.5.3c0-.4.3-.4.6-.5.2 0 .4 0 .5-.3l.4-.2c.4-.1.8-.3 1-.7.1-.2.3-.3.5-.3.5-.2 1-.5 1.4-1 .2-.2.5-.2.9-.3 0-.7.8-1.2 1.4-1.2l.7-.8c.3-.3.9-.4 1-.7 0-.4.4-.4.7-.6l.2-.4.4-.3V64h.4c-.1-.3-.2-.5.2-.6h.1l1-1.5.4-.3.6-1 .5.2-.5.8v.4l-.8.7-.3.5-.8.9h-.1l.2.3h-.7c0 .4 0 .8-.5.8-.2 0-.3.3-.5.5l-.4.3h-.1v.2a226.3 226.3 0 01-.5.4l-.5.6-.7.1.1.4h-.8l.3.1c-.4.2-.5.8-1.2.8-.2 0-.5.5-.8.9l-.3.1-.8.4c-.5 0-.6.3-.5.8l.6 2c0 .2.2.3.3.4.3.5.5 1 .5 1.6v.6c0 .6-.5 1-1.1 1-.6 0-1 0-1.6-.3-.5-.3-1-.7-1.3-1.1l-.1-.6c-.3 0-.5-.2-.5-.6 0-.1 0-.3-.2-.3-.3-.3-.4-.5-.1-.9-.5 0-1-.3-1.4-.3-.3 0-.7 0-1 .3-.2.2-.5.3-.8.3l-.6.1-.1-.3c-.8.7-1.7.4-2.6.6-.1-.3-.3-.4-.6-.3l-.6.1h-1l-.6-.3-.7.1-1.5-.3-3-.5-1.5-.4-1.5-.4-.5-.1h-.4l-.7-.2-.3 1v.6l-.5 1.5c-.1.3-.4.4-.6.6l-.3.3v.1c-.5 0-1.1-.2-1.7-.4v.1l-.2-.1c0-.3 0-.4-.4-.6-.2 0-.4-.5-.6-.8l-.3-.6h.3l-.2-.2c-.2 0-.8-.7-.7-1v-.1l.2-.4c0-.2-.2-.5.1-.7v-.5c.6 0 0-.6.2-.8v-.6l-1.3-.7c-.2 0-.2-.3-.2-.5-.2-.3-.7.1-.8-.4-.1-.3-.7-.4-.4-.8-.2-.2-.4-.2-.4-.4 0-.3-.3-.5-.6-.8l-.7-1-.6-.4.3-.3-.4-.3v.4c-.2 0-.4-.3-.4-.4l.3-.7-.4-.5v.5c-.2 0-.4 0-.5-.2-.2-.2-.2-.5-.3-.7l-.5-1.2s-.2-.2-.3-.1l-1.9.2-.3-.1s-.2-.2-.3-.1c-.5.4-1 0-1.4-.1-.4-.1-.9-.4-1.3-.7-.2 0-.2-.4-.2-.6 0-.7.3-1.3.8-1.8.8-.1 1.4-.8 2.3-.7l1.4-.2.2-.2v-1.5l.2-2v-.4c0-.8.4-1.4.5-2l.2-.3.4-1.4.5-1.4.4-.5v-.4A3 3 0 0180 44l.6-.7c-.3-.4-.2-.7.2-.9l-.1-.3h.6l-.4-.3c0-.4.8.2.6-.4H81l.8-1.4.2.4v-1.1l.6-.1-.5-.4h.5c0-.3-.6-1 .2-1 0-.2 0-.5-.2-.8h.8l-.5-.4h.6v-.2l-.5-.2h.4V36l-.2-.3.4-.7.2-.5c0-.8.3-1.5.6-2.2.2-.6 0-1.3.1-2l.2-.5v-3.5c0-.8 0-1.7.2-2.4.1-.7.6-1.3.7-2 .1-.5.7-.8.4-1.3.8-1.3 1.1-2.7 1.7-4l.6-1s-.1-.2 0-.2c.6-1.3 1.3-2.6 2.4-3.6L93 9.6l1.4-1c.6-.2 1.1-.5 1.6-.9l.6-.6.4-.4-.2-.3.2-.2-.6-.5c.7 0 .7-.2.4-.6-.2-.3-.5-.6-.3-1-.7 0-.3-.7-.6-1l.4-.2c-.8-.4-.6-1-.6-1.7h.2l.5-.4c0-.7.5-.2.7-.3h.4c.7 0 1.5 0 2.2.3l.1.3c.3.3 1 0 1.2.6l.3.3.4.7.2.3c.1.5.6.8 1 1.2 0 .2.3.2.6.3l-.4.2.7.3c.3 0 .6-.1.9.2h.4l-.4-.3 1.2.2c-.2-.8.4-.2.6-.5v.6c.6-.6 1 0 1.5 0l-.3-.2V5h.5c.6.3.6.3 1 0l-.2.5.3-.1c.4.3.8 0 1.3.1a42 42 0 002 .5v-.2c.3.4 1.3.6 1.7.4l.1.3 2.3.4c-.1-.3 0-.4.4-.4h-.3l.5-1.6.3.2v-.4c-.1-.4 0-.7.5-.6 0-.3.2-.9.5-1 .3 0 .5-.3.8 0l.4-.2c.2-.2.5 0 .6.2.1.1.3.3.5.3.5.2.5.7.5 1l.3 1.4v.6c-.3.5-.1 1-.1 1.5 0 .3.4.7.7.8.3.1.5.4.7.6l1.7.8 1.5 1.2 1 1 .9.7 1.8 1.6.4.3c.2.2.4.5.8.2h.2l2.7 1c.6.2 1 .9 1.3 1.4l1 1.8c.4-.1 1 0 1.3.3l.4.4c.7.8.3 2-.7 2.4-.4.1-.5.3-.5.8v.8h-.3c.4.5.2 1 0 1.5-.3.7-.8 1.4-1.2 2v.3c-.1 1.1-.7 2-1.4 2.8-.3.4-.6.6-1 .6h-.2l-1.5 1c-.4 0-.3-.4-.4-.6l-.8-.1-.7.3c-.7.1-1 .4-1 1.2 0 .3 0 .6.3.7l1 .2c.7.2 1-.1 1.2-.8v-.5c0-.3.2-.4.4-.3l.3.2c0 .6 0 1.3.2 2l-.2.5c.4.3-.3 1 .2 1.3l-.3.9c.2.2.3.4 0 .6v.3l-.6 1.2h.2s0-.2.2-.3c0 .5 0 .7-.6.8l.4.1h.3l-.3.5v.1l1.6-.6c.2 0 1 0 .9.3.1 0 .4.4.5.3.2.8.3 2-.2 3.2m.9-9v-.4.3zm.2-2l.3.1v-.1"
+      fill="#020303"
+    />
+  </g>
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M98 42c.3-.4.7-.5 1.1-.6l1.6-.4h.5l2.1.1c.5.1 1 .4 1.4.7l.9.7c.5.4.5.5.2 1.2v.5l-.3-.2c-.3.2 0 .8-.5.7l-.2.4c-.2 0-.5-.4-.5.2h-.5c-.2 0-.4 0-.6.3l-.6.2c-.4 0-.8.2-1-.4l-.6.5h-.8c0 .2 0 .2-1-.2"
+    fill="#D8B8B9"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M102.6 41.7l-.4-.5.2.4v.2c-1.5-.5-3-.3-4.4.2.3-.4.7-.5 1.1-.6l1.6-.4h.5l2.1.1c.5.1 1 .4 1.4.7l.9.7c.5.4.5.5.2 1.2v.5l-.3-.2c-.3.2 0 .8-.5.7l-.2.4c-.2 0-.5-.4-.5.2h-.5c-.2 0-.4 0-.6.3l-.6.2c-.4 0-.8.2-1-.4l-.6.5h-.8c0 .2 0 .2-1-.2.6-.1.9-.6 1.5-.4l1.6-.1 2-.5c.8-.3 1-1 .5-1.7l-.7-.5-1.2-.7-.3-.1zM94.4 44.8l.2-.6-.2.6zM102.5 9L101 6.8l-.4-.3c-.5-.4-.6-.9-.6-1.4l.1-.1.3.5c1 .7 1.7 1.7 2.4 2.7.3.4.2.7-.3.8z"
+    fill="#020303"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M119.4 30.3l-.6.3-1.2.7c-.6.3-1.3.6-2 .6h-.4l-.6.1-1.3-.1-1.6-.2-.6-.1c-1-.2-1.7-.7-2.5-1.1l-.9-.3-.8-.6-1.3-1.2-.7-1-.6-1c-.2-.5-.3-1 0-1.6v-.1c-.6-.6 0-1 0-1.6 0-.3 0-.6.2-.8.1-.3.3-.7.6-1l1.3-1 .6-.5 1.7-1.2 1.2-.5h.1c.8.3 1.6 0 2.4 0l.3-.1c1.5.2 3 .2 4.5.8.7.3 1.4.7 1.8 1.3 0 0 0 .2.2.2.8.4 1 1.1 1.5 1.6s.9 1 1 1.7c.2.5.2 1 .2 1.6l.1 1-.2.6c-.1.5-.5.9-.8 1.3l-1.6 2.1v.1zM128.4 26.1l-.3.2 1.8.6c.4.2.8.3 1.3.2.5-.1 1 0 1.6 0v-.4h.1c.3.1.5.2.8.1.4 0 .7 0 1 .4.3.5.3 1 .3 1.5 0 .7-.4 1.1-.8 1.6-.3.5-.8.6-1.2.9-.2.1-.6 0-1-.1-.7-.3-1.3-.2-1.9.3-.2.2-.5.2-.7.3l-.8.2h-2c-.1.1-.3.1-.4 0-.3 0-.6-.1-.8-.3-.4-.3-.8-.5-1-.9a2 2 0 01-.4-1c0-1 .1-1.9 1-2.6.5-1 1.5-1 2.4-1h1zM134.4 25.7l.3-.9v-1-.2c-.9-.3-1-1-1.4-1.4l-.1-.2-.4-1.8-.2-.5-.1-.7-.4-1.3c-.2-.5 0-.8.6-.7l2 .7c.2.1.3.4.5.7l.6.6.6 1c.2.3.2.6.2.9l.4 2.3-.2 1.8c0 .5-.1 1-.5 1.5-.4.6-.6.6-1.2.3-.3-.1-.7-.8-.7-1z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M89 72.7l-.2.4c0 .3 0 .6-.2.9 0 .2-.2.4-.4.6l-.2.4c-.5-.1-1-.2-1.5-.7l-.3-.5-.9-1.4-.3-.2.5-1.9c.1-.4.3-.4.6-.2.3.1.6.2.8.5.2.3.5-.1.7 0l.2.1-.2.2 1 .6c.2 0 .2.2.2.4 0 .3-.1.7.2.8z"
+    fill="#D8B8B9"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M131 22l2 .5c.4.1.7.4 1 .7.1.2-.2.7-.5.8-.5.2-1 .4-1.3.7-.5.5-1.1.2-1.7.3-.6 0-1.2-.2-1.8-.5-.8-.3-1-1-.3-1.6.4-.5 1-.6 1.5-.8.3-.2.7 0 1.1 0V22z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M113.8 74.3l.1.8c.2.8 0 1-.8.8-.3 0-.7 0-1-.4h-.2c-.5 0-.6-.5-.9-.9l-.3-.4-.7-1.5c.2-.5 1 0 1-.7l.8-.3V71l.5.2V71h.1l1 2.1v.3l.4.8zM77.9 58.4c-.4.2-.4.4.1 1-.6.3-1.2.5-1.9.5-.3 0-.7.2-1 0l-.9-.1-.4-.1c-.6 0-1-.6-.7-1.1v-.4c.3 0 .6-.2.8-.3.8-.6 1.8-1 2.8-.9.3 0 .6.1.7.6 0 .3.3.5.5.8zM133.5 41c.3 0 .4.4.4 1l.1 1-.3 1-.4.6c-.7 0-1.3.2-2.1.4v-1.3l-.2-.5c.1-.5.8-.6.7-1.3l.3-.2 1.5-.7z"
+    fill="#D8B8B9"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M132 33c-.3-.1-.4 0-.4.4v.5c-.2.9-.6 1.2-1.3 1l-1-.2c-.4-.1-.3-.6-.3-.9 0-.9.2-1.2 1-1.4l.7-.4.9.2c0 .2 0 .7.4.8zM128 23.5l-.7.4-.3-.2c0-.2.1-.5.3-.6l.6.1v.3z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M116.8 24.8c0-.3 0-.6.2-.9.1-.4 0-.6-.6-.6-.5 0-1 .7-1 1.1l.3.2c.3.2.7.4 1 .2zm-2.8-.5c0-.5.4-1 .7-1.3.2-.4.7-.4.8-.8l.2-.1h2.5c.5 0 1.1.1 1.6.3.3.1.4.4.6.6 0 0 0 .2.2.3.8.9.4 1.7-.4 2.5l-1.3 1-.4.1c-1 .2-2.1 0-3-.4-.2 0-.4-.2-.5-.3-.4-.3-1-.4-1-1v-1z"
+    fill="#020303"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M114.9 22c-.3.1-.5 0-.8-.3v-.3c-.2-.5.2-1.3.5-1.4.3 0 .5.3.4.8l-.1 1.1z"
+    fill="#FEFEFE"
+  />
+  <defs>
+    <linearGradient
+      id="paint0_linear"
+      x1=".3"
+      y1="94"
+      x2="128.5"
+      y2="94"
+      gradientUnits="userSpaceOnUse"
+    >
+      <stop stop-color="#D7BB9E" />
+      <stop offset="1" stop-color="#AD8888" />
+    </linearGradient>
+  </defs>
+</svg>
diff --git a/go.dev/_content/images/gophers/slate.svg b/go.dev/_content/images/gophers/slate.svg
new file mode 100644
index 0000000..4930804
--- /dev/null
+++ b/go.dev/_content/images/gophers/slate.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="slate"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#bed1e8;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#bed1e8;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#bed1e8;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/violet.svg b/go.dev/_content/images/gophers/violet.svg
new file mode 100644
index 0000000..33e8bdc
--- /dev/null
+++ b/go.dev/_content/images/gophers/violet.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="violet"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#d6baeb;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#d6baeb;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#d6baeb;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/wrench.svg b/go.dev/_content/images/gophers/wrench.svg
new file mode 100644
index 0000000..fc5789b
--- /dev/null
+++ b/go.dev/_content/images/gophers/wrench.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1248 803" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M468.53,802.864c0,-0.459 -53.908,-5.907 -60.557,-7.907c-27.805,-8.354 -67.266,-7.871 -44.686,-46.618c7.77,-13.337 18.096,-16.817 33.518,-16.337c13.907,0.43 32.548,-4.856 45.457,0.703c16.021,6.892 12.448,38.794 20.423,41.436c7.559,2.512 48.098,-7.462 49.26,-17.444c0.641,-5.455 -24.15,-1.484 -26.551,-1.678c-15.025,-1.207 -14.491,-21.708 -15,-32.708c-1.398,-30.085 -0.839,-60.682 0.574,-90.757c1.34,-28.472 -3.57,-46.195 27.475,-53.435c13.204,-3.082 10.419,-25.766 11.43,-36.074c1.208,-12.372 -19.971,-24.271 -17.881,-31.949c0.953,-3.551 13.566,-1.139 13.903,-1.107c12.401,1.054 16.791,-4.649 24.805,-12.616c9.014,-8.971 18.043,-20.397 29.591,-26.261c7.462,-3.788 21.665,-3.559 27.074,-9.605c9.218,-10.308 3.401,-34.422 3.666,-47.178c0.19,-9.214 -8.899,-19.985 -2.609,-28.655c4.029,-5.548 13.91,-5.856 17.86,-0.014c5.114,7.559 -4.584,8.892 -4.513,15.43c0.176,15.684 2.943,29.998 5.369,45.389c1.334,8.458 -4.104,17.124 8.907,17.418c10.465,0.233 14.573,2.015 22.626,9.014c15.365,13.358 26.3,32.533 47.271,23.885c19.677,-8.111 0.075,32.267 3.179,42.041c6.079,19.139 3.326,32.3 24.702,39.296c12.72,4.162 12.207,4.208 12.709,17.756c0.534,14.476 1.218,28.96 2.609,43.382c2.032,21.053 0.699,42.31 0.366,63.528c-0.409,26.085 -8.212,28.709 -28.354,40.651c-19.003,11.279 -29.064,11.39 -50.661,10.659c-21.333,-0.72 -59.357,-8.014 -78.069,4.1c-33.988,21.996 -60.561,46.182 -103.893,45.655m597.452,-35.576c-13.068,-7.839 -7.917,-22.1 -13.81,-32.425c-3.118,-5.466 -30.049,-5.441 -36.149,-5.326c-32.393,0.598 -63.807,-27.505 -95.598,-32.379c-6.728,-1.029 -19.355,-12.315 -24.028,-5.964c-8.398,11.415 -10.301,20.877 -22.813,29.508c-11.849,8.175 -29.307,-0.251 -28.207,-16.007c0.936,-13.369 26.54,-32.952 16.838,-46.163c-16.419,-22.358 -31.769,-41.712 -41.468,-68.754c-14.265,-39.744 -18.63,-79.854 -27.626,-120.591c-1.269,-5.738 -8.892,-6.946 -13.587,-6.734c-6.531,0.297 -3.979,12.232 -3.886,15.39c0.205,6.914 -1.064,49.156 -19.97,32.293c-25.644,-22.867 -30.662,-71.743 -43.103,-102.559c-12.54,-31.064 -20.83,-63.432 -32.235,-94.932c-7.272,-20.071 -14.276,-40.124 -20.698,-60.482c-2.384,-7.548 -11.355,-44.113 -17.247,-46.077c-5.996,-8.452 24.813,-11.903 28.153,-12.964c14.29,-4.545 19.2,-28.587 2.674,-21.505c-11.089,4.749 -22.419,7.129 -34.16,9.868c-19.598,4.573 4.451,-33.049 8.369,-36.906c10.261,-10.096 25.64,-21.634 40.102,-23.823c20.799,-3.154 27.627,17.185 32.827,33.077c2.373,7.251 3.469,17.673 9.566,23.032c6.623,5.82 12.308,7.419 15.713,16.501c7.659,20.472 -18.673,16.885 -15.978,35.235c1.39,9.48 -4.222,12.849 -4.961,21.118c-0.641,7.143 5.165,12.867 7.556,19.02c6.157,15.867 -14.365,17.885 -7.638,32.852c5.957,13.254 3.466,26.799 9.466,41.028c6.849,16.235 10.239,33.568 16.185,50.116c6.108,17.024 10.667,26.583 27.351,33.167c14.906,5.857 11.806,-5.143 12.429,-17.601c0.807,-16.211 -0.609,-14.01 -11.028,-22.372c-12.394,-9.957 2.867,-23.214 -9.354,-30.401c-18.645,-10.953 -9.391,-27.4 -14.05,-43.421c-4.505,-15.498 -13.501,-27.727 -17.279,-44.543c-2.864,-12.734 -6.326,-30.694 10.362,-35.253c17.443,-4.764 26.149,-23.842 43.693,-27.444c23.698,-4.871 52.622,16.297 69.84,-2.871c6.351,-7.071 -3.455,-17.616 -3.093,-26.3c0.631,-15.286 11.942,-28.142 27.888,-21.107c11.616,5.129 22.049,25.587 35.705,24.186c12.583,-1.287 25.716,-4.315 39.776,-4.383c21.655,-0.101 43.522,1.548 64.704,6.211c8.906,1.964 16.73,7.448 25.461,9.161c4.936,0.968 21.086,8.906 25.3,7.763c17.982,-4.871 69.335,-44.5 61.091,5.287c-1.473,8.906 -16.013,26.407 -13.107,35.077c5.136,15.301 24.2,31.21 31.999,46.529c38.486,75.56 35.494,159.155 40.228,241.074c1,17.279 4.738,33.443 9.365,50.091c3.911,14.057 -0.953,33.823 19.114,29.698c20.093,-4.136 15.821,14.265 7.642,23.834c-11.369,13.276 -23.985,17.698 -32.938,33.637c-12.139,21.623 -42.715,48.651 -65.887,59.098c-10.709,4.835 -23.579,2.154 -34.418,5.348c-9.139,2.691 -3.695,14.698 -6.207,20.78c-2.481,6.014 -11.638,15.706 -17.046,19.118c-4.495,2.831 -13.064,-0.638 -11.828,0.186m-925.712,-15.436c-15.147,0 -19.032,-15.079 -17.892,-27.505c1.699,-18.505 -9.982,-19.322 -22.82,-28.992c-18.555,-13.974 -31.486,-30.429 -43.572,-49.79c-7.677,-12.301 -24.107,1.283 -36.647,-0.14c-13.627,-1.541 -26.709,-11.3 -14.469,-24.214c6.483,-6.842 26.11,-10.946 29.142,-18.906c2.846,-7.469 -3.104,-15.455 -4.53,-22.44c-2.99,-14.641 -1.456,-27.662 1.354,-42.138c10.599,-54.54 44.038,-110.115 31.394,-167.668c-4.703,-21.408 -17.505,-61.708 -7.158,-82.212c4.946,-9.803 7.541,-20.272 11.892,-30.29c7.136,-16.418 21.981,-28.389 28.175,-44.98c3.817,-10.233 -15.516,-17.143 -12.942,-30.619c3.082,-16.103 7.501,-31.536 27.708,-30.486c15.573,0.81 27.931,21.25 42.053,18.594c18.945,-3.555 37.4,-10.254 56.435,-13.949c18.734,-3.627 36.622,-5.262 55.557,-8.054c15.949,-2.347 10.297,-17.193 19.107,-27.934c8.684,-10.591 29.432,-4.251 31.174,9.139c2.903,22.372 7.022,18.602 27.881,26.831c21.845,8.627 45.697,21.924 63.578,37.163c13.548,11.545 16.907,12.154 34.694,8.19c20.785,-4.631 47.135,-0.824 64.769,11.924c23.716,17.15 31.561,67.41 7.447,87.764c-12.383,10.451 -17.318,22.419 -34.317,26.802c-25.634,6.606 -26.601,5.14 -25.386,31.192c0.512,11.018 -5.782,34.307 11.784,26.451c10.799,-4.828 22.978,-10.254 34.816,-4.76c18.272,8.48 4.122,31.641 -7.014,39.185c-10.14,6.871 -39.368,8.549 -42.654,21.129c-10.086,38.636 -7.004,81.004 -22.885,118.759c-12.655,30.192 -29.182,63.116 -51.443,88.821c-5.627,6.502 -30.307,28.608 -24.522,36.01c8.921,11.433 20.777,23.902 13.863,39.321c-7.662,17.114 -30.149,-4.713 -34.719,-11.935c-6.351,-10.05 -8.867,-18.695 -18.87,-13.319c-28.487,15.272 -69.973,24.075 -102.738,23.795c-8.903,-0.079 -41.35,-5.717 -45.217,4.161c-5.33,13.616 -3.671,26.856 -23.028,25.1c-3.355,0 7.383,0.67 0,0" style="fill:#010101;fill-rule:nonzero;"/><path d="M438.993,794.81c-16.383,-0.634 -38.332,-6.086 -46.106,-22.49c-6.147,-12.975 8.831,-36.393 24.218,-30.275c7.724,3.072 -1.53,10.806 -3.634,13.695c-6.355,8.727 5.483,22.293 11.429,27.483c14.631,12.766 29.935,-2.631 44.622,-0.993c24.659,2.753 68.07,-26.386 81.073,-45.905c26.246,-39.357 17.899,-81.463 4.419,-123.333c-4.688,-14.565 -2.068,-65.151 16.498,-64.395c14.297,0.577 21.716,1.781 10.469,18.644c-6.753,20.25 -3.996,42.379 3.408,62.231c18.301,49.099 4.161,84.653 -25.264,125.099c-29.572,40.651 -75.582,40.239 -121.132,40.239c-17.454,-0.674 5.373,0 0,0m-53.03,-10.741c-29.031,0 -35.318,-28.774 -10.355,-43.178c4.097,-2.358 27.465,-4.14 17.738,5.588c-3.878,6.458 -7.125,15.909 -5.312,23.522c-0.068,-0.28 5.427,12.053 4.642,13.394c-1.047,1.785 -6.66,0.674 -6.713,0.674m55.044,-5.369c-1.154,-0.638 -2.308,-1.28 -3.458,-1.914c0.699,-7.964 8.437,-10.896 6.863,-20.853c-0.778,-4.903 -16.29,-14.676 -16.974,-12.813c7.208,-19.662 52.181,35.58 13.569,35.58m-23.493,-10.738c-1.635,-2.9 -1.316,-5.459 0.949,-7.677c2.918,1.713 3.943,4.354 3.076,7.924c-1.362,0.541 -2.703,0.455 -4.025,-0.247c-2.015,-2.688 0.67,0 0,0m651.152,-6.717c-10.821,-5.412 -9.856,-42.224 -15.147,-42.801c-21.415,-2.319 -44.503,0.308 -66.628,-6.66c-40.4,-12.723 -93.706,-26.866 -122.243,-60.528c-13.971,-16.469 -24.185,-38.174 -31.934,-58.241c-6.86,-17.735 -18.261,-40.687 -20.957,-59.052c-3.189,-21.601 -31.002,-135.257 -8.924,-142.597c5.986,-2.993 4.624,-11.939 5.082,-17.297c1.258,-14.677 10.28,-6.788 20.896,-11.064c16.791,-6.742 15.82,-31.182 6.351,-44.737c-5.169,-7.394 -1.377,-15.368 -5.308,-22.906c-4.029,-7.724 -12.986,-8.254 -18.487,-14.247c-12.727,-13.863 28.336,-41.805 33.999,-49.854c29.884,-42.461 83.194,-45.067 129.583,-46.838c21.501,-0.82 49.364,3.886 69.675,10.835c4.698,1.606 21.594,7.057 24.415,11.319c4.279,6.483 -11.563,14.075 -7.753,21.053c0.083,0.15 24.318,-27.315 28.784,-29.63c8.283,-4.294 33.189,-19.938 40.694,-9.569c10.243,14.153 -21.096,69.047 -24.501,67.718c6.957,2.716 9.717,-13.792 18.526,-6.093c12.387,10.824 19.792,25.748 27.902,39.733c16.52,28.468 24.512,57.51 29.498,89.982c9.415,61.446 -2.624,127.641 14.185,187.406c3.835,13.641 8.961,27.415 9.699,41.704c0.889,17.233 -10.19,27.541 -12.494,43.103c-3.283,22.132 -28.243,45.801 -48.798,53.145c-12.282,4.387 -24.809,8.326 -37.715,10.412c-12.147,1.964 -20.003,-7.914 -20.139,8.705c-0.09,10.247 -4.588,45.214 -18.261,36.999m-147.683,-184.603c14.111,-4.709 11.573,-30.927 13.035,-42.02c2.893,-22.117 -8.093,-4.29 -9.591,9.258c-0.763,6.889 -11.265,47.074 -17.053,18.989c-0.867,-4.208 3.093,-37.87 -4.043,-38.336c-2.096,-0.136 -10.817,56.174 17.652,52.109c3.072,-1.025 -3.996,0.567 0,0m32.221,-198.706c42.819,-14.286 71.216,-47.611 61.6,-96.43c-7.584,-38.5 -55.747,-67.65 -93.975,-57.349c-45.629,12.297 -64.299,55.546 -63.31,98.964c1.011,43.683 62.22,59.593 95.685,54.815c3.075,-1.025 -3.996,0.574 0,0m132.916,-145.668c8.014,-8.014 13.975,-1.871 22.1,-3.703c-2.792,0.631 7.01,-17.533 7.021,-18.074c0.384,-16.15 -46.977,25.827 -33.819,25.16c3.014,-0.15 7.752,-7.957 4.698,-3.383m-948.539,511.526c-9.204,-4.609 -5.588,-26.469 -7.043,-34.802c-2.114,-12.071 -29.497,-15.003 -36.214,-25.88c-17.856,-28.935 -40.464,-45.307 -49.912,-80.431c-10.68,-39.705 -8.125,-74.897 8.717,-112.63c4.957,-11.108 11.229,-25.777 14.329,-37.497c3.627,-13.706 11.233,-42.805 7.649,-56.575c-7.821,-30.057 -17.412,-65.776 -14.308,-96.947c1.15,-11.533 30.192,-89.774 47.643,-75.216c11.778,9.817 14.881,3.108 5.638,-7.376c-9.946,-11.272 -19.268,-20.705 -21.623,-36.407c-2.315,-15.462 15.003,-29.092 29.031,-21.419c15.032,8.219 15.032,30.67 30.863,36.73c0.516,-10.067 -8.745,-15.322 6.53,-18.952c11.351,-2.696 22.738,-8.265 34.429,-11.212c30.838,-7.773 63.084,-12.856 94.947,-13.085c44.005,-0.316 104.175,24.888 129.629,62.596c4.247,6.29 25.58,35.304 8.448,38.099c-24.906,4.068 -25.297,24.465 -41.773,37.956c-7.899,6.469 -17.529,16.892 -15.684,28.149c2.62,15.975 21.34,13.426 28.695,24.982c3.136,4.931 6.376,20.522 10.211,22.974c4.437,2.827 25.515,3.265 25.78,-4.842c0.398,-12.118 8.34,-34.709 11.631,-9.817c4.394,33.188 1.071,67.915 -3.452,100.906c-8.387,61.203 -28.974,140.246 -70.574,187.592c-40.967,46.622 -92.685,67.704 -154.543,73.811c-11.717,1.161 -58.296,-7.089 -64.944,1.093c-4.222,5.208 5.953,19.079 -2.996,26.981c-3.409,3.015 -13.928,0.276 -11.104,1.219m20.139,-109.423c24.809,-9.304 51.145,-18.562 77.123,-24.121c9.68,-2.071 18.031,-5.175 27.465,-8.049c14.988,-4.567 21.106,5.24 35.758,2.544c10.236,-1.892 19.541,1.19 24.225,-10.616c4.251,-10.713 27.178,-10.86 36.558,-15.264c20.247,-9.502 6.616,-50.436 0.634,-67.281c-7.107,-20.032 -45.765,14.501 -60.815,2.752c-18.02,-14.067 -35.694,17.641 -47.048,22.261c-7.849,3.197 -15.519,-6.863 -21.419,-3.641c-6.236,3.412 2.118,27.074 2.57,32.271c2.746,31.777 -32.992,-28.196 -25.372,-28.196c-5.792,0 -2.107,10.831 -3.096,13.591c-3.126,8.698 -11.76,9.652 -18.978,12.63c-14.297,5.892 -29.902,10.917 -44.669,15.405c-21.164,6.408 -22.271,23.085 -7.1,38.26c5.129,15.39 10.086,20.429 25.487,16.888c-0.703,0.161 -6.584,2.147 -1.323,0.566m131.576,-266.502c37.5,-4.413 62.456,-22.964 71.94,-60.307c11.405,-44.912 -18.207,-94.243 -66.392,-96.143c-46.676,-1.849 -91.072,17.071 -97.355,69.141c-6.935,57.442 41.558,92.979 95.674,86.857c-0.193,0.021 -6.824,0.817 -3.867,0.452m-153.726,-166.482c4.126,-1.176 -13.229,-23.006 -21.067,-21.393c-2.627,0.541 7.512,30.429 21.067,21.393m510.853,543.077c-10.193,-2.548 -47.737,4.538 -46.543,-11.082c1.792,-23.433 4.308,-41.987 -0.531,-65.746c-4.659,-22.896 -11.623,-42.551 -12.616,-66.02c-0.566,-13.379 -4.258,-18.952 10.864,-20.673c12.935,-1.466 26.264,-0.62 39.264,-0.975c22.662,-0.616 45.987,-8.652 45.446,20.129c-0.495,26.418 0.365,52.969 0.365,79.402c0,12.401 -0.189,24.813 0.19,37.21c0.886,28.483 -13.168,27.755 -36.439,27.755c-2.685,-0.67 2.014,0 0,0m3.358,-83.914c21.297,-5.323 -4.91,-48.077 -24.787,-23.634c-7.391,9.082 3.551,21.383 12.186,23.795c3.774,1.057 19.859,-2.584 12.601,-0.161m-162.456,80.56c-16.946,-4.85 -7.405,-92.108 -7.387,-108.014c0.011,-10.022 -3.613,-32.616 4.043,-41.193c5.458,-6.118 47.718,-5.741 55.417,-4.372c8.036,1.426 12.932,31.934 15.143,39.038c6.785,21.791 11.777,45.253 8.075,68.04c-5.9,36.411 -41.081,56.278 -75.291,46.497c-4.699,-1.34 4.698,1.344 0,0m40.281,-76.528c20.953,-8.376 -6.397,-49.557 -23.02,-25.149c-12.763,18.748 15.49,25.149 23.02,25.149m165.808,63.772c-14.376,-9.573 -3.201,-84.223 -2.509,-100.011c0.366,-8.379 -5.175,-43.776 5.129,-46.489c9.215,-2.426 27.228,1.022 23.587,13.38c-3.075,10.465 1.419,28.995 0.814,40.446c-0.914,17.175 0.243,34.339 -0.542,51.554c-0.702,15.3 3.219,27.863 -10.368,37.683c-4.792,3.462 -11.935,7.613 -16.111,3.437m-345.715,-10.738c-6.082,-4.566 -12.204,-9.193 -15.813,-16.11c-2.652,-5.093 -2.394,-22.663 8.43,-15.441c5.383,5.38 20.382,17.018 19.856,26.025c-0.578,9.798 -9.799,7.533 -15.05,3.594c0.667,0.502 5.942,4.455 2.577,1.932m511.526,-1.344c-12.042,-12.039 11.122,-49.453 24.222,-37.64c9.598,8.641 -12.416,41.013 -24.222,37.64c-0.476,-0.473 5.007,1.43 0,0m-847.844,-78.542c-7.19,-3.595 24.383,-37.027 33.15,-13.67c5.609,14.95 -31.68,15.14 -33.15,13.67m1203.63,-4.699c-12.809,-12.806 10.799,-22.68 19.469,-22.103c9.58,0.638 -10.043,31.537 -19.469,22.103c0.717,0.721 2.864,2.864 0,0m-688.746,-57.058c-25.698,-1.85 -10.179,-44.049 -3.136,-60.113c10.892,-24.863 42.716,-42.529 68.704,-44.783c36.024,-3.101 63.679,11.458 78.467,45.306c3.498,8.011 12.178,29.87 9.135,39.164c-4.716,14.426 -19.21,11.985 -30.694,14.902c-10.297,2.624 -64.825,5.606 -57.066,-8.763c5.778,-10.698 25.48,0.993 26.505,-14.838c0.799,-12.383 2.487,-25.852 -14.215,-21.547c-19.591,5.05 -71.703,-10.742 -69.557,16.873c0.803,10.337 17.165,14.588 15.778,21.519c-2.595,12.961 -16.383,14.731 -27.318,11.996c0.089,0.022 5.451,0.284 3.397,0.284m20.139,-25.508c-4.096,-2.732 -4.139,-15.971 0.674,-18.125c5.91,-2.656 18.2,-0.649 24.007,-0.796c3.974,-0.097 59.04,-6.43 38.421,14.222c-2.122,1.304 -17.734,-3.699 -21.49,-3.581c-10.215,0.319 -20.035,-0.781 -30.117,-0.781c-8.262,0 -3.846,16.705 -11.495,9.061m-40.278,-30.881c-2.881,-2.885 -4.283,-6.606 1.341,-6.738c10.139,-0.24 2.326,9.49 -1.341,6.738m173.865,-4.699c-3.387,-3.953 -2.584,-12.236 4.627,-10.247c6.985,1.921 -3.097,11.778 -4.627,10.247m78.542,-10.068c-8.512,-5.677 -15.175,-27.805 -17.455,-36.923c-8.422,-16.849 -14.15,-36.533 -19.605,-54.546c-11.748,-38.798 -27.5,-76.496 -39.468,-115.219c-6.039,-19.526 -13.006,-38.783 -18.755,-58.399c-5.62,-19.171 -15.788,-30.992 5.365,-38.421c12.552,-4.405 21.576,-2.022 32.859,-2.602c2.631,-0.137 4.606,-6.61 8.498,-7.373c5.634,-1.111 18.336,-4.946 23.569,-4.276c17.204,2.204 -4.315,22.25 -9.523,24.275c-9.136,3.545 -36.568,4.126 -34.486,18.699c4.881,34.16 23.028,67.538 31.529,101.1c9.068,35.83 22.809,69.463 34.995,104.233c5.154,14.655 12.939,32.189 13.706,47.819c0.204,4.222 -2.86,28.974 -11.078,21.931c2.042,1.688 1.989,1.588 -0.151,-0.298m22.824,-48.335c-14.874,-4.96 -21.251,-34.583 0.519,-23.085c9.86,5.208 16.039,29.426 -1.183,22.895c0.85,0.323 6.839,2.437 0.664,0.19m-328.935,-33.565c-14.727,-22.103 35.185,-50.124 48.167,-33.902c14.609,18.265 -37.855,39.06 -48.167,33.902m140.3,-29.536c-4.975,-4.975 2.788,-13.172 7.906,-7.767c4.505,4.767 -5.706,11.064 -7.906,7.767m193.333,-12.082c-14.612,-7.305 5.541,-35.082 13.14,-20.573c7.544,14.419 -8.122,23.583 -13.14,20.573m-373.237,-20.14c-9.903,-9.902 10.573,-36.5 15.028,-20.651c2.129,7.587 -4.885,30.809 -15.028,20.651m400.76,-3.358c-11.595,-3.86 -34.128,-4.971 -43.493,-11.82c-8.165,-5.975 -7.319,-18.501 -1.595,-25.924c7.458,-9.684 15.888,-4.882 25.64,-3.003c18.806,3.623 39.372,-3.534 38.106,24.293c-0.67,14.877 -11.97,17.411 -18.658,16.454m-418.215,-26.848c-23.766,-2.972 -18.666,-29.064 -2.587,-38.372c10.967,-6.347 40.647,-4.713 52.575,-1.347c19.429,5.48 19.698,27.328 2.035,35.353c-9.512,4.326 -20.321,-2.491 -30.59,0.735c-7.369,2.315 -14.537,5.394 -22.476,3.631c3.022,0.634 3.369,0.634 1.043,0m75.184,-10.742c-4.699,-2.347 -0.011,-21.594 -8.071,-27.619c-11.979,-8.957 -3.972,-27.486 -16.552,-37.594c-8.939,-7.179 -8.716,-24.21 -15.329,-33.593c-8.681,-12.315 11.566,-17.588 21.619,-17.867c11.111,-0.312 35.318,2.437 43.078,11.921c5.756,7.035 24.214,19.314 10.16,24.196c-14.461,5.785 -22.83,12.91 -15.49,28.519c6.061,12.884 20.566,4.068 25.899,9.408c8.91,8.906 -33.422,48.564 -45.314,42.629m292.685,-11.415c-22.641,-16.971 -3.118,-59.231 9.089,-76.858c7.043,-10.175 18.817,-16.637 30.235,-19.637c2.879,-0.756 42.21,-1.104 35.659,9.071c-7.172,11.143 -19.645,18.082 -26.605,30.096c-8.118,14.018 -6.365,21.222 -20.856,28.465c-6.254,6.254 -17.451,8.623 -17.451,19.469c1.444,11.612 -8.706,10.422 -10.071,9.397m35.576,0.671c-5.115,-1.022 -16.498,-4.835 -14.728,-12.219c1.735,-7.236 17.365,-4.01 22.831,-4.075c21.931,-0.269 9.767,19.86 -9.989,15.917c0.631,0.126 6.925,1.384 1.886,0.377m-378.607,-29.537c-4.788,-1.914 -16.247,0.305 -12.806,-8.168c4.373,-10.767 12.634,-11.089 22.881,-10.828c23.537,0.595 11.53,26.852 -10.075,18.996c-3.358,-1.344 7.383,2.685 0,0m296.713,0.67c-2.494,-1.243 5.179,-6.44 6.713,-4.025c1.821,2.871 -5.791,4.95 -6.713,4.025m-7.386,-10.738c-3.445,-6.892 12.755,-7.863 12.755,-6.863c0,8.175 -12.254,7.609 -12.755,6.863m-205.972,-10.996c-6.161,-4.107 3.499,-11.748 6.774,-9.333c5.007,3.688 -0.476,13.534 -6.774,9.333m203.287,-10.487c0.412,-1.333 7.383,-6.204 7.383,-2.684c0,2.566 -6.25,6.659 -7.383,2.684m3.355,-14.096c-18.433,-4.609 17.931,-22.709 12.053,-4.039c-1.688,5.361 -13.05,3.788 -12.053,4.039m161.112,-42.292c-16.487,-16.491 0.083,-34.329 18.967,-26.616c32.275,13.189 -12.913,34.178 -18.967,26.616c-1.34,-1.341 2.688,3.358 0,0m-165.141,-8.054c0,-0.093 -11.931,-1.186 -13.354,-4.448c-5.505,-12.641 -7.218,-15.888 -22.103,-14.949c-19.111,1.201 -34.056,5.677 -14.093,-14.297c11.752,-11.756 37.608,-35.379 52.357,-11.985c6.394,10.171 10.143,26.171 9.254,38.195c-0.326,4.427 -8.62,10.914 -12.061,7.484m-415.53,-37.594c-19.02,0 -1.34,-27.64 11.118,-23.909c19.032,5.699 3.19,25.289 -11.501,23.974c1.516,0.133 3.136,0.075 4.638,0.193c-1.42,-0.086 -2.835,-0.172 -4.255,-0.258m955.923,-145.672c-0.226,-0.222 -0.448,-0.448 -0.67,-0.67c1.469,0.108 1.168,-0.068 1.34,1.34c-0.222,-0.222 -0.448,-0.444 -0.67,-0.67m-322.218,371.227c-42.016,-14.014 -71.689,-42.131 -57.191,-89.8c12.34,-40.564 54.89,-63.399 94.742,-48.604c80.75,29.974 35.834,153.099 -37.551,138.404m2.011,-52.36c27.859,-6.971 6.566,-56.152 -25.046,-39.655c-26.705,13.939 3.265,46.927 25.046,39.655m-779.37,307.451c-7.053,-7.053 128.157,-46.296 126.737,-39.88c-3.336,15.064 -49.474,17.211 -60.951,22.429c-8.716,3.735 -60.352,25.598 -65.786,17.451m-6.713,-14.1c-16.72,-12.537 33.142,-24.54 40.622,-28.146c8.125,-3.913 16.419,-7.677 25.279,-9.619c6.727,-1.47 8.716,8.523 15.096,9.412c17.849,2.483 23.612,-17.763 41.454,-20.419c6.516,-0.975 6.935,6.118 4.634,10.509c-3.161,6.035 -12.777,8.268 -18.383,10.014c-13.913,4.333 -28.583,5.275 -42.482,10.003c-11.254,3.835 -58.912,25.558 -66.22,18.246m-8.057,-19.465c0,-17.899 71.829,-22.899 71.829,-30.207c10.716,7.136 -33.063,19.559 -36.529,21.254c-5,2.444 -29.673,14.577 -35.3,8.953c0,-0.674 0.674,0.67 0,0m187.965,-13.429c-19.218,-9.588 39.521,-39.741 42.166,-20.071c2.079,15.49 -30.203,26.063 -42.166,20.071m-14.767,-2.011c-2.656,-3.979 -5.15,-15.075 -4.577,-20.236c0.48,-4.365 12.677,28.339 4.577,20.236m-18.128,-9.398c-3.581,-3.58 -1.563,-13.573 4.698,-9.397c6.455,3.222 -2.928,10.283 -4.698,9.397m-43.633,-8.057c-7.462,-4.974 11.121,-21.77 17.451,-15.44c12.161,12.161 -9.358,19.487 -17.451,15.44m71.829,-2.014c-12.369,-6.172 40.396,-45.583 43.378,-17.29c1.129,10.699 -36.318,19.648 -43.378,17.29m-17.455,-10.742c-1.043,-1.039 -6.48,-12.082 -3.358,-12.082c7.096,0 6.914,15.641 3.358,12.082m-16.11,-1.34c-3.344,-3.344 -2.488,-14.372 3.609,-10.068c7.695,5.434 -2.197,11.835 -3.609,10.068m28.196,-6.039c-22.619,-15.071 39.396,-32.766 41.816,-29.691c14.157,18.017 -34.25,29.691 -41.816,29.691m-39.612,-182.596c-97.416,0 -80.248,-140.937 10.319,-141.737c41.26,-0.362 73.241,27.024 73.08,68.923c-0.151,38.772 -38.64,87.731 -83.399,72.814c-1.34,0 2.018,0.674 0,0m39.612,-59.743c41.927,-20.967 -0.81,-59.679 -30.271,-39.648c-14.527,9.882 -2.194,31.956 9.551,39.049c6.466,3.907 13.996,3.957 20.72,0.599c7.046,-3.523 1.003,-0.502 0,0m327.587,359.141c-26.906,-13.458 12.207,-32.214 14.042,-14.738c1.115,10.591 -9.491,17.767 -14.042,14.738m-120.831,1.344c-16.939,-6.355 -3.523,-27.343 7.849,-16.498c9.258,8.835 1.581,18.412 -9.172,15.928c0.706,0.165 6.588,2.147 1.323,0.57m392.907,-356.976c-5.656,4.365 -11.032,-12.147 -1.857,-14.856c8.749,-2.574 10.846,13.3 1.857,14.856m-617.792,-24.992c-5.569,-5.566 7.394,-18.709 13.125,-7.964c5.807,10.888 -9.135,11.96 -13.125,7.964" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/gophers/yellow.svg b/go.dev/_content/images/gophers/yellow.svg
new file mode 100644
index 0000000..5ecf2f2
--- /dev/null
+++ b/go.dev/_content/images/gophers/yellow.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="yellow"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#f0f373;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#f0f373;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#f0f373;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/icons/arrow-forward.svg b/go.dev/_content/images/icons/arrow-forward.svg
new file mode 100644
index 0000000..25d6978
--- /dev/null
+++ b/go.dev/_content/images/icons/arrow-forward.svg
@@ -0,0 +1,8 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="2" width="7" height="12">
+<path d="M5.06 12.3934L6 13.3334L11.3333 8.00002L6 2.66669L5.06 3.60669L9.44666 8.00002" fill="white"/>
+</mask>
+<g mask="url(#mask0)">
+<rect width="16" height="16" fill="#5F6368"/>
+</g>
+</svg>
diff --git a/go.dev/_content/images/icons/chevron-down.svg b/go.dev/_content/images/icons/chevron-down.svg
new file mode 100644
index 0000000..8662fb7
--- /dev/null
+++ b/go.dev/_content/images/icons/chevron-down.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.0575 0.692505L0 1.75L6 7.75L12 1.75L10.9425 0.692505L6 5.6275" fill="#5F6368"/>
+</svg>
diff --git a/go.dev/_content/images/icons/code.svg b/go.dev/_content/images/icons/code.svg
new file mode 100644
index 0000000..1cdcc64
--- /dev/null
+++ b/go.dev/_content/images/icons/code.svg
@@ -0,0 +1,9 @@
+<svg width="36" height="24" viewBox="0 0 36 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7.76465 11.8273L14.8235 8.47058V9.78368L9.22436 12.3377V12.3669L14.8235 14.9359V16.2353L7.76465 12.8786V11.8273Z" fill="#007D9C"/>
+<path d="M16.2354 15.5294L19.3674 5.64709H20.4706L17.3391 15.5294H16.2354Z" fill="#007D9C"/>
+<path d="M28.2353 12.9078L21.1765 16.2353V14.9359L26.8657 12.3669V12.3383L21.1765 9.76937V8.47058L28.2353 11.7981V12.9078Z" fill="#007D9C"/>
+<path d="M34.2003 24H1.80031L0 22.5883H36L34.2003 24Z" fill="#007D9C"/>
+<path d="M33.8818 21.8824H32.755V1.44423C32.755 1.2637 32.6007 1.11095 32.417 1.11095H3.5825C3.3994 1.11095 3.24446 1.26315 3.24446 1.44423V21.8824H2.11768V1.44423C2.11768 0.647683 2.77459 0 3.5825 0H32.4176C33.2255 0 33.8824 0.647683 33.8824 1.44423V21.8824H33.8818Z" fill="#007D9C"/>
+<path d="M14.5089 21.8823H0V22.5882H15.5294C15.0095 22.5882 14.5935 22.2786 14.5089 21.8823Z" fill="#007D9C"/>
+<path d="M21.4905 21.8823C21.4059 22.2786 20.9905 22.5882 20.4706 22.5882H36V21.8823H21.4905Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/_content/images/icons/command-folder.svg b/go.dev/_content/images/icons/command-folder.svg
new file mode 100644
index 0000000..78c3558
--- /dev/null
+++ b/go.dev/_content/images/icons/command-folder.svg
@@ -0,0 +1,7 @@
+<svg width="36" height="35" viewBox="0 0 36 35" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M36 6.44739H0V35H36V6.44739ZM1.63636 8.12695H34.3636V33.3205H1.63636V8.12695Z" fill="#007D9C"/>
+<rect x="5.40002" y="3.6842" width="26.1" height="1.84211" fill="#007D9C"/>
+<rect x="8.09998" width="19.8" height="1.84211" fill="#007D9C"/>
+<path d="M12.5021 24.8684C12.2648 24.8684 12.067 24.7841 11.9088 24.5732C11.6319 24.2359 11.6715 23.6878 12.0274 23.3926L16.0223 19.8085L11.9879 16.2244C11.6715 15.9292 11.5923 15.3811 11.8692 15.0438C12.1461 14.7064 12.6603 14.6221 12.9767 14.9173L17.7231 19.1338C17.9208 19.3025 18 19.5133 18 19.7663C18 20.0193 17.8813 20.2723 17.7231 20.3988L12.9767 24.6154C12.858 24.7841 12.6998 24.8684 12.5021 24.8684Z" fill="#007D9C"/>
+<path d="M23.5125 26.7105H18.7875C18.3544 26.7105 18 26.296 18 25.7895C18 25.2829 18.3544 24.8684 18.7875 24.8684H23.5125C23.9456 24.8684 24.3 25.2829 24.3 25.7895C24.3 26.296 23.9456 26.7105 23.5125 26.7105Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/_content/images/icons/gear.svg b/go.dev/_content/images/icons/gear.svg
new file mode 100644
index 0000000..a509f45
--- /dev/null
+++ b/go.dev/_content/images/icons/gear.svg
@@ -0,0 +1,14 @@
+<svg width="36" height="36" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M18 13a5 5 0 100 10 5 5 0 000-10zm0 9c-2 0-4-2-4-4s2-4 4-4 4 2 4 4-2 4-4 4z"
+    fill="#007D9C"
+  />
+  <path
+    d="M31 22l-1-1-2-1a11 11 0 000-4l1-1c2-1 2-2 1-3l-1-2-2-1h-1l-1 1-4-2V6l-2-2h-2c-2 0-3 1-3 2v2l-4 2-1-1H8l-2 1-1 2v2l1 1 1 1a11 11 0 000 4l-1 1c-1 1-2 2-1 3l1 2 2 1h1l1-1 5 2v2c0 1 0 2 2 2h2l2-2v-2l4-2 1 1h2l1-1 1-2 1-2zm-2 1l-1 2v1h-1l-2-2v1l-5 2v3l-1 1h-2l-1-1v-2l-1-1-4-2-2 1H8l-1-1-1-2 1-1 1-1a9 9 0 010-5l1-1-3-1v-1l1-2 1-1h1l2 2v-1l4-2V6l2-1h2l1 1v3l4 2 1 1 2-2 1 1 1 2v1l-2 1v6l2 1 1 1h-1z"
+    fill="#007D9C"
+  />
+  <path
+    d="M8 4c5-4 12-4 18-1l-2 1 6 1-3-5v2C21-1 13-1 7 3v1h1zM3 9l1 2 1-6-5 3 2 1c-3 6-3 13 1 19h1v-1C0 22 0 15 3 9zM27 32c-5 4-12 4-18 1l2-1-6-1 3 5 1-2 9 2c3 0 7-1 10-3v-1h-1zM33 7h-1v1c4 5 4 12 1 18l-1-2-1 6 5-3h-2c3-6 3-14-1-20z"
+    fill="#007D9C"
+  />
+</svg>
diff --git a/go.dev/_content/images/icons/package.svg b/go.dev/_content/images/icons/package.svg
new file mode 100644
index 0000000..087fa09
--- /dev/null
+++ b/go.dev/_content/images/icons/package.svg
@@ -0,0 +1,10 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="12" height="12">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6816 1.49605L10.7568 0.37836C10.5772 0.152162 10.3044 0.0124512 9.99173 0.0124512H2.00826C1.69557 0.0124512 1.4228 0.152162 1.23652 0.37836L0.318423 1.49605C0.125489 1.72224 0.0123901 2.02162 0.0123901 2.34096V10.6571C0.0123901 11.3889 0.611151 11.9877 1.34297 11.9877H10.657C11.3888 11.9877 11.9876 11.3889 11.9876 10.6571V2.34096C11.9876 2.02162 11.8745 1.72224 11.6816 1.49605ZM2.16793 1.34303H9.83206L10.3842 2.00832H1.62239L2.16793 1.34303ZM1.34297 3.3389V10.6571H10.657V3.3389H1.34297Z" fill="white"/>
+</mask>
+<g mask="url(#mask0)">
+<rect x="-1.98346" y="-1.98352" width="15.9669" height="15.9669" fill="#80868B"/>
+</g>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.14288 2.0083H6.85717V7.71432H5.14288V2.0083Z" fill="#007D9C"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.6539 0.828125H6.30011L6.85717 2.00821H5.14288L5.6539 0.828125Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/_content/images/icons/sphere.svg b/go.dev/_content/images/icons/sphere.svg
new file mode 100644
index 0000000..91c18b7
--- /dev/null
+++ b/go.dev/_content/images/icons/sphere.svg
@@ -0,0 +1,3 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M35.9804 17.2372C35.9708 17.0072 35.9548 16.7792 35.9364 16.5516V16.5444H35.936C35.2328 7.7772 28.2225 0.7676 19.455 0.0636H19.453C19.2234 0.0452 18.993 0.0292 18.761 0.0192C18.5094 0.0072 18.257 0 18.0026 0H17.9998H17.997C17.7426 0 17.4898 0.0076 17.2386 0.0196C17.0062 0.0292 16.7754 0.0456 16.5454 0.0644H16.545C7.54745 0.79 0.398413 8.1508 0.0192006 17.2364C0.00760025 17.4876 0 17.7404 0 17.9948V17.9976V18.0008V18.0092C0 18.2632 0.00800027 18.5156 0.0200007 18.7668C0.406014 27.852 7.54985 35.2084 16.5446 35.9356L16.5468 35.9357L16.551 35.936C16.7794 35.9544 17.009 35.9708 17.2402 35.9804C17.491 35.992 17.743 36 17.997 36H17.9998H18.0026C18.2578 36 18.511 35.9924 18.7626 35.9808C18.9934 35.9712 19.2218 35.9548 19.4506 35.9368C19.4522 35.9364 19.4538 35.9364 19.455 35.9364C28.4469 35.2136 35.5936 27.8548 35.98 18.7672C35.992 18.516 36 18.2636 36 18.0092V18.0008V17.9976V17.9948C35.9996 17.7408 35.9924 17.4884 35.9804 17.2372ZM12.8064 2.312C11.4508 3.62 10.2975 5.4372 9.41471 7.6184C8.54548 7.7116 7.86586 8.4388 7.86586 9.3332C7.86586 9.33938 7.86677 9.34544 7.86768 9.35152C7.86848 9.35685 7.86928 9.36218 7.86946 9.3676C5.56059 10.2844 3.63172 11.5036 2.26488 12.9304C3.88053 7.9284 7.82186 3.9676 12.8064 2.312ZM7.59265 16.5104C7.68786 14.442 7.95987 12.476 8.41348 10.6796C4.95817 12.0228 2.49888 14.07 1.73446 16.4356C2.10007 16.608 2.39368 16.9024 2.56529 17.2684H6.89983C7.04904 16.95 7.29144 16.6876 7.59265 16.5104ZM2.56449 18.7328H6.90023C7.04943 19.0508 7.29184 19.3124 7.59265 19.4896C7.68426 21.48 7.94386 23.3716 8.36868 25.114C8.33873 25.1442 8.31251 25.1782 8.2863 25.2122L8.28622 25.2123L8.26842 25.2352L8.25548 25.2516C4.88416 23.9076 2.48648 21.8916 1.73406 19.5644C2.09927 19.392 2.39288 19.098 2.56449 18.7328ZM7.90666 26.7008C5.59459 25.8048 3.67852 24.6064 2.31328 23.1912C3.95533 28.1356 7.86426 32.0448 12.806 33.6864C11.3796 32.3084 10.1715 30.3708 9.27471 28.034C8.59269 27.9048 8.05267 27.3768 7.90666 26.7008ZM17.2678 33.4344C16.9022 33.606 16.6078 33.9 16.4353 34.2652C14.0885 33.5056 12.0544 31.0724 10.7084 27.6556C10.7165 27.6487 10.7248 27.6421 10.7331 27.6355L10.7331 27.6355C10.7459 27.6253 10.7586 27.6152 10.7708 27.604C12.5032 28.0336 14.3857 28.2976 16.3661 28.3972C16.5486 28.7876 16.8686 29.1004 17.2678 29.2668V33.4344ZM16.3633 26.9416C16.5454 26.5484 16.8666 26.234 17.2678 26.0668V19.6C16.8694 19.434 16.5502 19.122 16.3677 18.7328H10.0315C9.83793 19.1464 9.48752 19.4664 9.0551 19.6236C9.1483 21.3832 9.38871 23.0612 9.75752 24.6164C10.6028 24.694 11.2676 25.3724 11.3216 26.2248C12.8904 26.6012 14.5861 26.8472 16.3633 26.9416ZM17.2678 16.4C16.869 16.566 16.5494 16.8784 16.3669 17.2684H10.0319C9.83873 16.8548 9.48792 16.5336 9.0551 16.3764C9.15471 14.4876 9.42311 12.692 9.83993 11.0424C10.5312 10.9456 11.0864 10.446 11.2652 9.7848C12.9284 9.3808 14.7381 9.1276 16.6354 9.0432C16.7954 9.2772 17.015 9.464 17.2678 9.5964V16.4ZM16.4085 7.5888C16.541 7.1308 16.8534 6.754 17.2678 6.5372H17.2674V2.566C16.9014 2.3944 16.6074 2.1004 16.4349 1.7348C14.1453 2.4756 12.154 4.8104 10.81 8.0956C10.8932 8.1772 10.9692 8.2656 11.0344 8.362C12.7128 7.9508 14.5185 7.6844 16.4085 7.5888ZM33.7347 12.9304C32.3675 11.5012 30.4402 10.2856 28.1297 9.3664C28.1299 9.36117 28.1307 9.35604 28.1315 9.35091L28.1315 9.35088C28.1324 9.34502 28.1333 9.33917 28.1333 9.3332C28.1333 8.4176 27.4217 7.676 26.5221 7.6124C25.6181 5.4196 24.444 3.58 23.0704 2.2664C28.1149 3.8964 32.1047 7.8856 33.7347 12.9304ZM33.4343 17.2684C33.6059 16.9024 33.8995 16.6084 34.2647 16.436C33.4967 14.0612 31.023 12.006 27.5457 10.6624C28.0077 12.4356 28.3037 14.3612 28.4077 16.3824C28.8322 16.542 29.175 16.8608 29.3658 17.2684H33.4343ZM18.7318 2.566C19.0978 2.3944 19.3918 2.1004 19.5643 1.7348C21.8539 2.4756 23.8428 4.8104 25.1892 8.0956C25.1064 8.1768 25.0308 8.2652 24.9648 8.362C23.3256 7.9612 21.5671 7.6988 19.7271 7.5972C19.5827 7.086 19.2162 6.6688 18.7318 6.4668V2.566ZM19.4935 9.0484C19.3054 9.3212 19.0414 9.538 18.7318 9.6668V16.4708C19.0674 16.6464 19.3382 16.9248 19.4995 17.2688H26.2337C26.3865 16.9424 26.6377 16.6756 26.9493 16.4988C26.8545 14.566 26.5837 12.7268 26.1593 11.0424C25.4681 10.9452 24.9116 10.4448 24.7332 9.7832C23.1076 9.39 21.3435 9.1384 19.4935 9.0484ZM18.7318 19.5296C19.067 19.3544 19.3374 19.076 19.4986 18.7328H26.2345C26.3873 19.0584 26.6385 19.3244 26.9493 19.5016C26.8613 21.3048 26.6197 23.0248 26.2425 24.6164C25.3964 24.6936 24.7308 25.3732 24.6776 26.226C23.07 26.6104 21.3295 26.8572 19.5051 26.9468C19.345 26.5972 19.071 26.3148 18.7314 26.1372V19.5296H18.7318ZM18.7318 33.434C19.0978 33.6056 19.3918 33.8996 19.5643 34.2652C21.9115 33.5056 23.9452 31.0724 25.2912 27.6556C25.2843 27.6499 25.2773 27.6443 25.2702 27.6387C25.2561 27.6275 25.2419 27.6163 25.2288 27.604C23.4564 28.044 21.5271 28.3108 19.4958 28.404C19.335 28.7452 19.0654 29.0212 18.7318 29.1964V33.434ZM23.0732 33.732C24.518 32.348 25.7481 30.3892 26.6673 28.04C27.3757 27.9296 27.9417 27.396 28.0921 26.702C30.4022 25.806 32.3195 24.6068 33.6859 23.1912C32.0331 28.1784 28.0721 32.1164 23.0732 33.732ZM27.733 25.2377C27.7369 25.2425 27.7407 25.2472 27.7445 25.252C31.1158 23.9072 33.5119 21.8904 34.2651 19.564C33.9003 19.3916 33.6067 19.098 33.4351 18.7328H29.365C29.1742 19.14 28.8318 19.4584 28.4077 19.6176C28.3085 21.546 28.0317 23.3848 27.6045 25.0912C27.6517 25.1366 27.6922 25.1869 27.733 25.2377Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/_content/images/learn/clis.png b/go.dev/_content/images/learn/clis.png
new file mode 100644
index 0000000..267ff73
--- /dev/null
+++ b/go.dev/_content/images/learn/clis.png
Binary files differ
diff --git a/go.dev/_content/images/learn/codecademy.png b/go.dev/_content/images/learn/codecademy.png
new file mode 100644
index 0000000..8de4dbf
--- /dev/null
+++ b/go.dev/_content/images/learn/codecademy.png
Binary files differ
diff --git a/go.dev/_content/images/learn/codelabs.png b/go.dev/_content/images/learn/codelabs.png
new file mode 100644
index 0000000..c8dabae
--- /dev/null
+++ b/go.dev/_content/images/learn/codelabs.png
Binary files differ
diff --git a/go.dev/_content/images/learn/codelabs_2.png b/go.dev/_content/images/learn/codelabs_2.png
new file mode 100644
index 0000000..7dd71cb
--- /dev/null
+++ b/go.dev/_content/images/learn/codelabs_2.png
Binary files differ
diff --git a/go.dev/_content/images/learn/commandline.svg b/go.dev/_content/images/learn/commandline.svg
new file mode 100644
index 0000000..fd2dcb6
--- /dev/null
+++ b/go.dev/_content/images/learn/commandline.svg
@@ -0,0 +1 @@
+<svg height='100px' width='100px'  fill="#007d9c" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="-949.5 1000.5 100 100" enable-background="new -949.5 1000.5 100 100" xml:space="preserve"><path d="M-944.261,1015.331v70.338h89.521v-70.338H-944.261z M-925.077,1068.812l-6.394-6.396l12.788-12.788l-12.788-12.788  l6.394-6.395l19.183,19.183L-925.077,1068.812z M-870.436,1067.648H-899.5v-8.574h29.064V1067.648z"></path></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/learn/concurrency-in-go.png b/go.dev/_content/images/learn/concurrency-in-go.png
new file mode 100644
index 0000000..d2c140c
--- /dev/null
+++ b/go.dev/_content/images/learn/concurrency-in-go.png
Binary files differ
diff --git a/go.dev/_content/images/learn/coursera.png b/go.dev/_content/images/learn/coursera.png
new file mode 100644
index 0000000..c22729d
--- /dev/null
+++ b/go.dev/_content/images/learn/coursera.png
Binary files differ
diff --git a/go.dev/_content/images/learn/earth.png b/go.dev/_content/images/learn/earth.png
new file mode 100644
index 0000000..c39758e
--- /dev/null
+++ b/go.dev/_content/images/learn/earth.png
Binary files differ
diff --git a/go.dev/_content/images/learn/edureka.png b/go.dev/_content/images/learn/edureka.png
new file mode 100644
index 0000000..a047f5e
--- /dev/null
+++ b/go.dev/_content/images/learn/edureka.png
Binary files differ
diff --git a/go.dev/_content/images/learn/exercism.png b/go.dev/_content/images/learn/exercism.png
new file mode 100644
index 0000000..a2fd1c3
--- /dev/null
+++ b/go.dev/_content/images/learn/exercism.png
Binary files differ
diff --git a/go.dev/_content/images/learn/get-programming-with-go.jpeg b/go.dev/_content/images/learn/get-programming-with-go.jpeg
new file mode 100644
index 0000000..c73d3e2
--- /dev/null
+++ b/go.dev/_content/images/learn/get-programming-with-go.jpeg
Binary files differ
diff --git a/go.dev/_content/images/learn/go-programming-blueprints.png b/go.dev/_content/images/learn/go-programming-blueprints.png
new file mode 100644
index 0000000..7ad6838
--- /dev/null
+++ b/go.dev/_content/images/learn/go-programming-blueprints.png
Binary files differ
diff --git a/go.dev/_content/images/learn/go-programming-language-book.png b/go.dev/_content/images/learn/go-programming-language-book.png
new file mode 100644
index 0000000..1f5bd3a
--- /dev/null
+++ b/go.dev/_content/images/learn/go-programming-language-book.png
Binary files differ
diff --git a/go.dev/_content/images/learn/go_cdk_logo.png b/go.dev/_content/images/learn/go_cdk_logo.png
new file mode 100644
index 0000000..96155ec
--- /dev/null
+++ b/go.dev/_content/images/learn/go_cdk_logo.png
Binary files differ
diff --git a/go.dev/_content/images/learn/gobyexample.png b/go.dev/_content/images/learn/gobyexample.png
new file mode 100644
index 0000000..d4f2538
--- /dev/null
+++ b/go.dev/_content/images/learn/gobyexample.png
Binary files differ
diff --git a/go.dev/_content/images/learn/gohelloworld.png b/go.dev/_content/images/learn/gohelloworld.png
new file mode 100644
index 0000000..df131fe
--- /dev/null
+++ b/go.dev/_content/images/learn/gohelloworld.png
Binary files differ
diff --git a/go.dev/_content/images/learn/gophercises.png b/go.dev/_content/images/learn/gophercises.png
new file mode 100644
index 0000000..5adb476
--- /dev/null
+++ b/go.dev/_content/images/learn/gophercises.png
Binary files differ
diff --git a/go.dev/_content/images/learn/helloworld.png b/go.dev/_content/images/learn/helloworld.png
new file mode 100644
index 0000000..05fd362
--- /dev/null
+++ b/go.dev/_content/images/learn/helloworld.png
Binary files differ
diff --git a/go.dev/_content/images/learn/install.png b/go.dev/_content/images/learn/install.png
new file mode 100644
index 0000000..600cb2f
--- /dev/null
+++ b/go.dev/_content/images/learn/install.png
Binary files differ
diff --git a/go.dev/_content/images/learn/introducing-go-book.png b/go.dev/_content/images/learn/introducing-go-book.png
new file mode 100644
index 0000000..a24626d
--- /dev/null
+++ b/go.dev/_content/images/learn/introducing-go-book.png
Binary files differ
diff --git a/go.dev/_content/images/learn/qwiklabs.png b/go.dev/_content/images/learn/qwiklabs.png
new file mode 100644
index 0000000..dce0230
--- /dev/null
+++ b/go.dev/_content/images/learn/qwiklabs.png
Binary files differ
diff --git a/go.dev/_content/images/learn/star-rating.png b/go.dev/_content/images/learn/star-rating.png
new file mode 100644
index 0000000..4cd252b
--- /dev/null
+++ b/go.dev/_content/images/learn/star-rating.png
Binary files differ
diff --git a/go.dev/_content/images/learn/tour.png b/go.dev/_content/images/learn/tour.png
new file mode 100644
index 0000000..912f445
--- /dev/null
+++ b/go.dev/_content/images/learn/tour.png
Binary files differ
diff --git a/go.dev/_content/images/learn/web-dev.png b/go.dev/_content/images/learn/web-dev.png
new file mode 100644
index 0000000..989357a
--- /dev/null
+++ b/go.dev/_content/images/learn/web-dev.png
Binary files differ
diff --git a/go.dev/_content/images/logos/american-express.png b/go.dev/_content/images/logos/american-express.png
new file mode 100644
index 0000000..242d993
--- /dev/null
+++ b/go.dev/_content/images/logos/american-express.png
Binary files differ
diff --git a/go.dev/_content/images/logos/american-express.svg b/go.dev/_content/images/logos/american-express.svg
new file mode 100644
index 0000000..fd3a528
--- /dev/null
+++ b/go.dev/_content/images/logos/american-express.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 997.517"><path d="M0 0h997.517v538.49l-49.375 77.147 49.375 68.661v313.219H0v-507.63l30.859-35.488L0 420.454z" fill="#016fd0"/><path d="M193.64 695.099v-156.61h165.82l17.791 23.193 18.38-23.193h601.886V684.3s-15.74 10.643-33.945 10.8H630.295l-20.058-24.687v24.687h-65.73v-42.142s-8.979 5.883-28.39 5.883h-22.373v36.259h-99.52l-17.766-23.69-18.038 23.69zM0 420.454l37.393-87.177h64.668l21.22 48.833v-48.833h80.388l12.633 35.295 12.247-35.295h360.858v17.744s18.97-17.744 50.146-17.744l117.085.41 20.854 48.193v-48.603h67.273l18.515 27.684v-27.684h67.89v156.61h-67.89l-17.744-27.774v27.774h-98.838l-9.94-24.688h-26.57l-9.779 24.688h-67.028c-26.826 0-43.974-17.382-43.974-17.382v17.382H488.343l-20.058-24.688v24.688H92.481l-9.933-24.688H56.06L46.2 489.887H0z" fill="#fff"/><path d="M50.628 352.584L.193 469.848h32.836l9.306-23.482h54.1l9.257 23.482h33.56L88.863 352.584H50.628zm18.66 27.29l16.49 41.034H52.75l16.538-41.033zM142.723 469.828V352.564l46.661.173 27.14 75.605 26.49-75.778h46.289v117.264h-29.316v-86.405l-31.076 86.405h-25.71l-31.162-86.405v86.405zM309.361 469.828V352.564h95.663v26.23h-66.038v20.059h64.495v24.687h-64.495v20.83h66.038v25.458zM421.997 352.584v117.264h29.316v-41.66h12.343l35.15 41.66h35.826l-38.574-43.202c15.831-1.336 32.161-14.924 32.161-36.019 0-24.676-19.368-38.043-40.984-38.043h-65.238zm29.316 26.23h33.51c8.04 0 13.887 6.288 13.887 12.344 0 7.79-7.577 12.343-13.452 12.343h-33.945v-24.687zM570.12 469.828h-29.933V352.564h29.933zM641.095 469.828h-6.46c-31.262 0-50.243-24.629-50.243-58.15 0-34.348 18.768-59.114 58.246-59.114h32.402v27.773h-33.586c-16.026 0-27.36 12.507-27.36 31.63 0 22.71 12.96 32.248 31.63 32.248h7.715zM704.887 352.584l-50.435 117.264h32.836l9.305-23.482h54.1l9.258 23.482h33.559l-50.387-117.264h-38.236zm18.66 27.29l16.49 41.034h-33.029l16.539-41.033zM796.933 469.828V352.564h37.272l47.59 73.676v-73.676h29.317v117.264h-36.067l-48.796-75.604v75.604zM213.699 675.04V557.777h95.662v26.23h-66.038v20.059h64.495v24.687h-64.495v20.83h66.038v25.459zM682.447 675.04V557.777h95.662v26.23h-66.038v20.059h64.187v24.687H712.07v20.83h66.038v25.459zM313.074 675.04l46.578-57.908-47.687-59.356H348.9l28.4 36.694 28.497-36.694h35.488l-47.06 58.633 46.663 58.632H403.96l-27.576-36.115-26.905 36.115zM444.37 557.796V675.06h30.087v-37.03h30.859c26.111 0 45.903-13.853 45.903-40.792 0-22.317-15.523-39.442-42.094-39.442H444.37zm30.087 26.52h32.498c8.436 0 14.465 5.17 14.465 13.5 0 7.827-5.999 13.501-14.561 13.501h-32.402v-27.001zM563.948 557.776v117.265h29.316v-41.66h12.344l35.15 41.66h35.825l-38.573-43.203c15.83-1.336 32.16-14.923 32.16-36.018 0-24.677-19.368-38.044-40.984-38.044h-65.238zm29.316 26.23h33.511c8.039 0 13.887 6.289 13.887 12.344 0 7.79-7.577 12.344-13.453 12.344h-33.945v-24.687zM791.687 675.04v-25.458h58.671c8.681 0 12.44-4.691 12.44-9.836 0-4.93-3.747-9.914-12.44-9.914h-26.513c-23.045 0-35.88-14.04-35.88-35.121 0-18.803 11.753-36.935 46-36.935h57.088l-12.343 26.385h-49.375c-9.438 0-12.343 4.952-12.343 9.682 0 4.861 3.59 10.222 10.8 10.222h27.773c25.69 0 36.838 14.572 36.838 33.655 0 20.517-12.422 37.32-38.236 37.32zM899.284 675.04v-25.458h58.67c8.682 0 12.44-4.691 12.44-9.836 0-4.93-3.746-9.914-12.44-9.914h-26.512c-23.046 0-35.88-14.04-35.88-35.121 0-18.803 11.753-36.935 45.999-36.935h57.089l-12.344 26.385h-49.374c-9.438 0-12.344 4.952-12.344 9.682 0 4.861 3.59 10.222 10.801 10.222h27.773c25.69 0 36.838 14.572 36.838 33.655 0 20.517-12.422 37.32-38.236 37.32z" fill="#016fd0"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/amex-logo.png b/go.dev/_content/images/logos/amex-logo.png
new file mode 100644
index 0000000..26080b0
--- /dev/null
+++ b/go.dev/_content/images/logos/amex-logo.png
Binary files differ
diff --git a/go.dev/_content/images/logos/amex.svg b/go.dev/_content/images/logos/amex.svg
new file mode 100644
index 0000000..3f902cb
--- /dev/null
+++ b/go.dev/_content/images/logos/amex.svg
@@ -0,0 +1,34 @@
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	width="48px" height="48px" viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+	.st1{fill:#006FCF;}
+</style>
+<title>Amercian_express</title>
+<path id="logo-blue-box-small-45-9x45-a" class="st0" d="M48,48H0V0h48V48z"/>
+<path class="st1" d="M48,26V0H0v48h48V34C47.9,34,48,26,48,26"/>
+<path class="st0" d="M42.1,23.3h3.6v-8.4h-4V16L41,14.9h-3.4v1.5L37,14.9h-6.3c-0.2,0-0.4,0.1-0.6,0.1s-0.3,0.1-0.5,0.2
+	s-0.3,0.1-0.5,0.2v-0.5H10.9l-0.5,1.4l-0.5-1.4H5.6v1.5L5,14.9H1.5L0,18.5v4.8h2.5l0.4-1.2h0.8l0.4,1.2H23v-1.1l0.8,1.1H29v-0.6
+	c0.1,0.1,0.3,0.1,0.4,0.2s0.3,0.1,0.4,0.2c0.2,0.1,0.4,0.1,0.6,0.1h3.8l0.4-1.2h0.8l0.4,1.2H41v-1.1L42.1,23.3z M48,34v-7.9H18.6
+	l-0.7,1.1l-0.8-1.1H8.6v8.5h8.5l0.8-1.1l0.7,1.1H24v-1.8h-0.2c0.7,0,1.3-0.1,1.9-0.3v2.2h3.8v-1.1l0.8,1.1h15.9
+	C46.8,34.5,47.4,34.3,48,34z"/>
+<path class="st1" d="M46.2,32h-2.9v1.2h2.8c1,0.1,1.8-0.6,1.9-1.6c0-0.1,0-0.2,0-0.2c0.1-0.8-0.5-1.5-1.4-1.6c-0.1,0-0.2,0-0.4,0H45
+	c-0.3,0-0.5-0.2-0.5-0.5c0,0,0,0,0-0.1c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0.1,0h2.5l0.5-1.2h-2.9c-1-0.1-1.8,0.6-1.9,1.6v0.1
+	c-0.1,0.8,0.5,1.6,1.4,1.6c0.1,0,0.2,0,0.3,0h1.3c0.3,0,0.5,0.2,0.5,0.5c0,0,0,0,0,0.1C46.8,31.8,46.6,32,46.2,32z M40.9,32H38v1.2
+	h2.8c1,0.1,1.8-0.6,1.9-1.6c0-0.1,0-0.1,0-0.2c0.1-0.8-0.5-1.6-1.3-1.6c-0.1,0-0.3,0-0.4,0h-1.2c-0.3,0-0.5-0.2-0.5-0.5
+	c0,0,0,0,0-0.1c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0.1,0h2.5l0.5-1.2H40c-1-0.1-1.8,0.6-1.9,1.6v0.1c-0.1,0.8,0.5,1.6,1.4,1.6
+	c0.1,0,0.2,0,0.3,0h1.3c0.3,0,0.5,0.2,0.5,0.5c0,0,0,0,0,0.1c0.1,0.3,0,0.5-0.3,0.6C41.1,32,41,32,40.9,32z M37.2,28.5v-1.2h-4.5V33
+	h4.5v-1.1H34v-1.2h3.1v-1.2H34v-1.1L37.2,28.5L37.2,28.5z M29.9,28.5c0.5,0,0.8,0.3,0.8,0.6s-0.2,0.6-0.8,0.6h-1.6v-1.4L29.9,28.5z
+	 M28.3,31H29l1.7,2h1.6l-1.9-2.1c0.9-0.1,1.5-0.8,1.5-1.7c0-1-0.7-1.8-1.7-1.8c-0.1,0-0.1,0-0.2,0h-3V33h1.3L28.3,31z M24.9,29.3
+	c0,0.4-0.2,0.7-0.6,0.8h-0.1h-1.7v-1.5H24C24.5,28.5,24.8,28.8,24.9,29.3C24.9,29.2,24.9,29.3,24.9,29.3z M21.2,27.4V33h1.3v-1.9
+	h1.7c1,0.1,1.9-0.7,2-1.8c0-0.1,0-0.1,0-0.2c0-1-0.8-1.9-1.8-1.9h-0.1L21.2,27.4z M19.2,33h1.6l-2.3-2.9l2.2-2.8h-1.6l-1.4,1.8
+	l-1.4-1.8h-1.6l2.2,2.8l-2.2,2.8h1.6l1.4-1.8L19.2,33z M14.4,28.5v-1.1H10V33h4.5v-1.1h-3.3v-1.2h3.1v-1.2h-3.1v-1.1L14.4,28.5
+	L14.4,28.5z M40.4,18.5l2.2,3.4h1.6v-5.7H43V20l-0.3-0.5l-2-3.2h-1.8V22h1.3v-3.8L40.4,18.5z M34.9,18.4l0.4-1.2l0.4,1.2l0.5,1.3h-2
+	L34.9,18.4z M37.1,21.9h1.4L36,16.3h-1.7L31.8,22h1.4l0.5-1.2h2.8L37.1,21.9z M31.1,21.9l0.5-1.2h-0.3c-0.8,0-1.5-0.6-1.5-1.4
+	c0-0.1,0-0.2,0-0.2V19c-0.1-0.8,0.5-1.5,1.3-1.6c0.1,0,0.2,0,0.2,0h1.4v-1.1h-1.5c-1.4-0.1-2.6,1-2.7,2.4c0,0.1,0,0.2,0,0.3v0.1
+	c-0.2,1.4,0.8,2.6,2.1,2.8C30.8,21.9,31,21.9,31.1,21.9L31.1,21.9z M26.3,21.9h1.3v-5.6h-1.3V21.9z M23.5,17.4
+	c0.5,0,0.8,0.3,0.8,0.6s-0.2,0.6-0.8,0.6h-1.6v-1.4L23.5,17.4z M21.9,19.9h0.6l1.7,2h1.6L24,19.8c0.9-0.1,1.5-0.8,1.5-1.7
+	c0-1-0.7-1.8-1.7-1.8c-0.1,0-0.1,0-0.2,0h-3V22h1.3L21.9,19.9z M19.6,17.4v-1.2h-4.5v5.7h4.5v-1.2h-3.2v-1.2h3.1v-1.2h-3.1v-1.1h3.2
+	V17.4z M9.9,21.9H11l1.6-4.6v4.6h1.3v-5.7h-2.1l-1.3,3.9l-1.3-3.9H7.1v5.7h1.3v-4.6L9.9,21.9z M2.9,18.4l0.4-1.2l0.4,1.2l0.5,1.3
+	H2.4L2.9,18.4z M5.1,21.9h1.4L4,16.2H2.5L0,21.9h1.4l0.5-1.2h2.8L5.1,21.9z"/>
+</svg>
diff --git a/go.dev/_content/images/logos/armut.png b/go.dev/_content/images/logos/armut.png
new file mode 100644
index 0000000..83cc457
--- /dev/null
+++ b/go.dev/_content/images/logos/armut.png
Binary files differ
diff --git a/go.dev/_content/images/logos/caddy.svg b/go.dev/_content/images/logos/caddy.svg
new file mode 100644
index 0000000..d9b8a67
--- /dev/null
+++ b/go.dev/_content/images/logos/caddy.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 401 401" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><circle id="Icon" cx="200.47" cy="200.47" r="200.47" style="fill:#3dd0ff;"/><clipPath id="_clip1"><circle cx="200.47" cy="200.47" r="200.47"/></clipPath><g clip-path="url(#_clip1)"><g><g><g><clipPath id="_clip2"><path d="M76.817,172.777c0,-76.373 48.909,-111.192 121.629,-110.237c73.117,0.954 121.392,34.182 121.392,111.454l-0.122,73.357l-44.611,0l0,-54.15c-1.198,-18.797 4.977,-81.761 -76.147,-81.761c-81.684,0 -76.885,63.192 -76.59,82.134l0,53.777l-45.551,0l0,-74.574Z"/></clipPath><g clip-path="url(#_clip2)"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71" style="fill:url(#_Linear3);"/><clipPath id="_clip4"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71"/></clipPath><g clip-path="url(#_clip4)"><use xlink:href="#_Image5" x="77.126" y="62.579" width="243.021px" height="184.83px" transform="matrix(0.995989,0,0,0.999082,0,0)"/></g></g></g><g><clipPath id="_clip6"><path d="M83.937,172.777c0,-35.021 10.701,-61.186 30.936,-78.398c19.514,-16.597 48.002,-24.913 83.483,-24.447c36.093,0.471 64.414,8.995 83.686,25.429c20.139,17.173 30.676,43.192 30.676,78.633l-0.122,73.345l7.12,-7.38l-44.611,0l7.12,7.392l0,-54.15l0,-0.245l-0.016,-0.243c-0.072,-1.132 -0.116,-2.407 -0.177,-4.848c-0.191,-7.671 -0.322,-10.751 -0.788,-15.6c-0.667,-6.939 -1.836,-13.38 -3.703,-19.544c-4.193,-13.843 -11.647,-25.307 -23.181,-33.734c-13.404,-9.792 -31.692,-14.939 -55.402,-14.939c-23.875,0 -42.381,5.169 -56,14.981c-11.755,8.47 -19.412,20.023 -23.673,33.881c-2.07,6.731 -3.275,13.782 -3.823,21.248c-0.393,5.355 -0.428,9.804 -0.278,16.462c0.002,0.114 0.029,1.307 0.037,1.636c0.012,0.578 0.021,1.029 0.028,1.437l-0.001,-0.119l0,53.777l7.12,-7.392l-45.551,0l7.12,7.392l0,-74.574Zm-14.24,0l0,81.967l59.791,0l0,-7.393l0,-53.777l-0.001,-0.119c-0.007,-0.447 -0.016,-0.927 -0.03,-1.536c-0.007,-0.336 -0.034,-1.535 -0.037,-1.643c-0.139,-6.206 -0.108,-10.242 0.241,-14.994c0.469,-6.39 1.484,-12.329 3.19,-17.875c3.352,-10.904 9.2,-19.728 18.226,-26.231c11.05,-7.962 26.737,-12.343 47.881,-12.343c20.953,0 36.393,4.346 47.207,12.247c8.809,6.435 14.488,15.168 17.792,26.077c1.549,5.113 2.541,10.58 3.117,16.577c0.42,4.365 0.541,7.208 0.723,14.513c0.065,2.638 0.114,4.047 0.203,5.442l-0.015,-0.488l0,61.543l58.839,0l0.013,-7.38l0.121,-73.357c0,-39.667 -12.254,-69.927 -35.878,-90.072c-22.079,-18.828 -53.477,-28.277 -92.544,-28.787c-80.349,-1.055 -128.839,40.19 -128.839,117.629Z" clip-rule="nonzero"/></clipPath><g clip-path="url(#_clip6)"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71" style="fill:url(#_Linear7);"/><clipPath id="_clip8"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71"/></clipPath><g clip-path="url(#_clip8)"><use xlink:href="#_Image9" x="69.897" y="55.235" width="257.262px" height="199.615px" transform="matrix(0.997138,0,0,0.998077,0,0)"/></g></g></g><rect x="282.232" y="171.29" width="14.354" height="68.654" style="fill:url(#_Linear10);"/><g><clipPath id="_clip11"><path d="M83.608,177.164c2.359,-59.062 16.982,-103.539 114.522,-107.309c-63.158,9.995 -97.512,30.703 -97.512,92.45l-1.576,76.531l-15.435,0l0,-61.672l0.001,0Z"/></clipPath><g clip-path="url(#_clip11)"><rect x="-823.139" y="-161.522" width="1272.61" height="2570.86" style="fill:url(#_Linear12);"/><clipPath id="_clip13"><rect x="-823.139" y="-161.522" width="1272.61" height="2570.86"/></clipPath><g clip-path="url(#_clip13)"><use xlink:href="#_Image14" x="83.956" y="69.863" width="114.523px" height="168.981px" transform="matrix(0.995849,0,0,0.999887,0,0)"/></g></g></g></g><g><path d="M367.745,286.714c0,-27.082 -21.988,-49.07 -49.071,-49.07l-243.602,0c-27.082,0 -49.07,21.988 -49.07,49.07l0,146.934c0,27.083 21.988,49.071 49.07,49.071l243.602,0c27.083,0 49.071,-21.988 49.071,-49.071l0,-146.934Z" style="fill:#007c00;"/><path d="M351.521,287.596c0,-20.676 -16.786,-37.463 -37.462,-37.463l-234.898,0c-20.676,0 -37.462,16.787 -37.462,37.463l0,144.098c0,20.676 16.786,37.462 37.462,37.462l234.898,0c20.676,0 37.462,-16.786 37.462,-37.462l0,-144.098Z" style="fill:url(#_Linear15);"/><path d="M303.52,263.545c18.994,0 34.414,15.421 34.414,34.414l0,123.371c0,18.994 -15.42,34.415 -34.414,34.415l-213.82,0c-18.994,0 -34.414,-15.421 -34.414,-34.415l0,-123.371c0,-18.993 15.42,-34.414 34.414,-34.414l213.82,0Zm-6.086,17.866l-201.648,0c-11.105,0.001 -20.12,9.016 -20.12,20.121l0,118.08c0,11.105 9.015,20.121 20.12,20.121l201.648,0c11.105,0 20.121,-9.016 20.121,-20.121l0,-118.08c0,-11.105 -9.016,-20.12 -20.121,-20.121Z" style="fill:url(#_Linear16);"/></g></g></g><defs><linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.88722e-14,659.127,-634.831,4.03599e-14,76.8169,62.5212)"><stop offset="0" style="stop-color:#babdb6;stop-opacity:0"/><stop offset="0.5" style="stop-color:#eeeeec;stop-opacity:0"/><stop offset="1" style="stop-color:#babdb6;stop-opacity:0"/></linearGradient><image id="_Image5" width="244px" height="185px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPQAAAC5CAYAAAAf6RJMAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAa3ElEQVR4nO2d+Y7cRpKHgwafwNYtW5bvUz4k38d4DGN3gH3gXWAHuwv4kNSSLFuHJflezRjeMeYhcv8gmRkZGZEXkyxWd/xgtzIZLDLJzq/iYHZVB6pN6cbNqwagA4Dxp/sBXdfZ/YbNqO/ZuuklQT9ojwfDbdEGAC+9+Co6smpr0l/Oirp247KD1d553G8HMgvoDJDxeaDrvIlDbc8/+6LOqx1Jb/wCunr9K4PQ9GFNghy207Z5IHt4zgDZGxFznc88/bzOt4WlN3imrl770gytDhw7EsgC1GhjEcgUanfIMpDpfuTYHqwEatkWXqvUfur8MzoPG0lvZKGuHAwAe1BikJNQoz7aGIc1Zuu832LLfLkW5M7fUYbaXdx0GAAAePLc0zovK6U3LqHLB1+48JnAWg0ytvk7bCJfjoHsxoCveTwae52hDYOMbgXqe3cZnnjivM7TTOmNYnT54IvBC8P4k4U1ZmsHctIDu0NmgTw/X84H2R+7BHJ4P/CbCWc7e/aczltBemNGXb76uQlywFkg48lI+wLUnq0cZBHWnYHMeOrU/aD9RCHwzOnHdQ4jHembcfnq50NBqxjkXA9M+8LkLMmJ3SFDkJn9ZMgLilsRkDt2rBUgZxQC7U/vcof+6VNnj/RcnnTkbsJXVz836YkbTuJqkDdR3KoDeW5xi9qSHjhqk+5BaDt58vSRm9eTjsyF8yDzE8ObRsJEDWz+j00Ut1o+Q+ZsAaw7Btm91O134vipIzPHAY4A0DGQ1y1ukf1mgjw/J6a2uSCHb2yzQKb3yl6na0i/r/BeARw7dvLQz3WAQwy0zY8BZoIsQI02hhMwYhMmqu3ngkz3I8fOBpmmHeRaq8NstLHmXnnYSyB33H7Ma9D1P/bY8UM75wEOIdC40AXAwTr2M9/ti0AuCbPdIUOQE1CLtvGcPKwxW8t8ORfWmE26B64h/b4kkN0pXf/RR48duvl/aC5IBLnDFzkDZGzzd9hEvhwDeZ18ORdW3MfXbC+KuU7XaAGyMcazHSavvfcXkgaZAXRhkGsePVFb23w5fGOTQPbHnpMvrwUyvmZ01Nj9IH0KsusbMABw/BDk2Xt7AfXPkKmNebenNnSgAGrPVg6y/HhpVyDj60QjrwVZjFDo+BIgs/uVg+xDPYAMxvX2vSq+l4OvW9XFbLf9cBK7pjA5hYlK+0mQWc9UAbJ4P8ajd1ybAbnzLPn3Q7BhOGk/buNBDt94ZaijIBuvZ6GebPv6LHuvBp0EmUziapArcmLan58TY9suilvIhnYIYY3ZpHvA2+I5sXfGBiD73hnbjHPZcOrUmb1iZC8Gmw9yCMfSILcvbskgH5XFIGuCjL0zBhnvd/r0/iwr3fxAvT9fBAJo5JffprhF9psJ8vycmNrmghy+sc0Cmd4re52uIcIa3CvvjFUgB6H08A+xGbwL2c+3nTmz/T8E2fQArxx8wX8GVxJk/MtHNnSgcAJGbMJEtf1ckOl+5NjZINNoxRvujDAbbay5Vx6EEsgU1kqQ5Yo1nxOHNgZw2/dBdjaz+T/d3OTgskBOQo36aGMc1pgtAXICatE2npOHNWZrmS/nwhqz4Xvg+jm/r9DmT8v5IDNetxBk9BIAY+Dxx5/cJDubG9SVgy8NmhswC2Rs83fYSL4sg9w6zA72QxvSsOI+D254na6xLMhycasOZL/tH9q3bfGTVDY1oCvXvtxhvuy9iywK8tFZDELHmnE/SD8XZDlflnPiWpDxiM5tDOpNDGYeyHhiIBs6UAC1ZysHWa5KR2ywJMj4OtHIa0EWIxQ6PglkZnvqfpB+yWKQbJDpfsPBq6B2tuHnVj7YcOeDGD4GVwJZgFWYxK4pTE5hotJ+EmTWM1WATItbEZA7dqzhfSu6H4INw0n7cVs5yC0Xg9jtQwNY+KltOFEdyHgIYOD8k7v/OOKdDuDqta+EfJkB3PYFkCtyYtqXbFUg76S4hWxohxDWmC0X5PB3QkEOI6i5IOctBlkPZIPNAGDgqfPP7pSpnZ2cfrvEmiC3L27JIK9T3PJG1wBkBtANgZyzGKR9vhwHGduefuq5nXG1kxMfXP/KcL/8NsUtst+CIB+KxSCzQeahpvdgV4tBsvLlqC0H5HD7rr72Z/WTHly/bAA4kPEvH9ncBgbWmG0eyCLUUAkyzZe94RaATPcT7kHuvfIgJCCzbbupHOSiZ8jDP8TW5hlylnemIJN8WQLZ9Q08+8wLq/O16gkPrl82YnGLei20MZicJWG2O2QIcgJqz0aOLcMas7XMl3NhjdnwPXD9GpD3YTHIPJANMsdBRkOD555dF+rVThZ+laoAMrb5OzQvfNXlyzLIuhgkF+TWi0HmghzPiZ0tF2T09mAMPP/cS6txtsqJrt24IoTZtF8Gcs2jJ2prmy9jGMajCSD7Y8/Jl7cAsnA/SH/ri0HmgYxhRTY6Bi8KAXhhJagXP8m1G1fEMJv2g8m5EshixRqWBBlfJxrdzkBmtqfuB+nvfDFIzMYsBhFBLvHO9NhisQ/gxedfXpy3RU9w/esrfJjt/4iDXBJKu0NaW9WjJ3LeaHGrFmS0X9H9EGwhuHR8kq0c5KJHT8M/rseE2btcDFINciLM9vZG/RdfeGVR5volD+4muABy45wY96tA3klxC9nQDiGsMVsuyMw9ICCHEVQlyKwH9m27XAyyJsj4jez+g7vmpRdfXQzqxQ584+ZV409Ud7ptFLdkkHUxyH6DLHpgAB/QJMj4OpGNjiEDZNp/+aULi7C3iIe+cfPAAKRgBXaiDn1+osZsbYtb1FYHMu+BvdHtCGR8P7wzVoG8z4tBnE3ywLSf451lkMkVNFfzd4kbNw9MHNaYbR7IItRQCTLNl73hFoBM9xPuQdJG75W9btdg23YT753pPVhyMUgMZG+yZxW3iI2C7HHlg5zzDNnZeA8cvx8MyMT26suvN+ev6QG/vnlg8opbMVsC5BLvTI4twxqzJUAWoA5eQ68Z9eu9s+vXgKyLQdqD7F+nbJvaF155oymDbUPujpm4m8iXZZC3uxiE2qR74Bo+rOioTUA+WotBvL3FfLke5Omf23e/Ma+9+mYzqJsd6OY310wOyDWPnqitbb6MYRiPVgEy5mceyLwHDq+Tjl0CWbgfpN8W5MOxGGQpkLnXvH7hYhMWm3jom99eNwCMB0b91iCLFWtoD7IbDwYSjS6wrQUyvmZ01EqQ93oxiLVleGd67MxnyEGYja5VypdTILdWE6Bbg1z16AkiINOcuBZkwTuH1+zOy9oKc+LQxgCeuB+tF4PEQJ5d3NrYYpCawlcWyMj27e2vzRuvXZrtpWcD/c2tG/bytr4YJAZyWU6MbGiHMu+cCzJzDwjILR49ybD6tqWfITtbCOuaIGc9emoAMh3DXM16R5hg1sUgpB21SfeAt8WLW94Z9xpk0QO7l0ZsYTuw0TGsBLIfrURAHu/BxTfensXkrBd/e/tr552FiRqztS1uUVvL4pY3uh2BjO+Hd8bmILuJKhS3YrbhRAKsMVsOyAKsAbi0vwzIuR44B2TcvvTmO9VcVofcE8y7L24RW8kzZLtLhndGG4tAptGLvU7XEL1ucK+8M4og7/ViELc7sjHbbV8AuXFOjPtVIJe8sc1Q9TvBrTs3fe+MjjYrzIZcWGO2BMgC1MFr0LHdbnO9s+tLUMdArl0McuzYie6f//zDTUF2EueG0v5ERS+pB5lAvRWQa3LiGMiid/Z+JwbeuvheFZtVL5pgXjZfrgO5Xb6cC2vMJt0D14h7Z2zr4LHHjle/Ac/V7//3m5kPMgbANULvnAuyBCsZQ8NnyKKNjKEWZDzcty+VQ10cct+6c9PsPl/GMIxHqwAZ8zMPZN4Dh9dJx86DfPzYyZ2BK+nMaf6rVH/77SGaj1JYyQCaBBmDgmzoQCGsMds8kEWooRJkJsz2ahrejcxX8cS5ffcb553REdbJl/NBDp4hox+Bd0YvXB5kN/oTJ05tDtxWevi3Xw03UXNBDrwW2pjrnUNbAuQS70yOXV0IJNdK2+++/UHRHCn20BLI8uOlSpA3uhjEP4fsdSWQDzPEWE+ee8pe5/8+/BnxsnyYHdocrLQ/P1+WQa4JszlbiYom153vvrVnCECOeWfab74YZCbICy8GOSoQ5+iXX38yLKwLg7ybfBm/eY1HywTZXb6B9975KHv+FHnouuJWHcj7vBjk5MnTCrCgp5/yv/vpp59/8Ke8AHIArmdLeGB3yCyQq54he7Z8kPETBnddaHSFTjp74t397pYpAfkoLgZRkOv140/f+4H4ni0GQS+qA1nwztPPD979OGtuZXtoC2HMA+P9hs5KIAveGW0sArlwMYiCPF/TN0z88ON9NJ/ToTTt72wxSARk6Zm/f4k8yKXl7qyJ+N2923HvDBFYN7oYJGbzsJdA7gBOnlCQl9L3P9wb53M5yLtaDDKaWVsAq2DDbxhu89D+8P1PkvMty0Nj7zz8I3nruYtBaH+bi0EU5OX1wvih9A++/87svrhFbXUgI555GzqQoe1MJYG+d/+OmQPyYVoMoiCvr+mD6e89uOPN7nWKW8RW8gzZ7pLhndFGFuSCsDs5Qe8/uOuORkA+Ot/3pI+etqB79++E3rrEO0MurDFbAuSSMBttDEAWoP74w0+j8zCvKLYayFIojWxohyTIDRaDKMjb0fTh9Hfv3TJFIAfeug7kdvkyD2uuLaboZL3//V2z9cUgMVvogen4JO88tBXm7coucmqeL5vpP9tvly/XgIyjkOHnJx99Js7LqIcegNtFcQu10Q5lYXY6lMa2Do1HQd6+LrzyRjf9XUGbfDkfZL/ansiX0QvnguyHErxEoB/8cM/woTREQGYAjcG6MZChAzhxXGHeF02fZ23/Nj8X5JUWg2SDLC5XpeNLE/2IZJhmddd16LHV0J7gGGzT3kN76mNbN4Hd+W3WNp5netPocDtmm07e2aMC2E3jfsg27D4edWwrzPup1y9c7IwxIwwGzPg/ALg+bdt9HSzGTDC7thnfJMzUAbd9tIybRxuA3ddr0z5t23OA7bvx2YGAMQb+5/O/imTLQEsgdz6sUZC7CMjTa3JAtrDKNvT2IIJs2wTkDjo4fnx7f4Osytcbr13qHKwQBdlgUASQHaxpkE0MZEBeWADZwjodiQMZnTP2KaEs0NPyOxbkwWBhjYIMEZCtLRfWOMjWO3edDLL3BuTgV5gPh958/a3OZIBsfSAGNAAZHKwJkGVYYzYOZMgA2csPArET+cefHriXLJYvd+BvRn3R1uF0F8DrOwO24SPRfLkDgGMb/HQQ1Tzd/Oaan5UKOTG14Tw4yInpfmhjkBPHbDRfHg0GNfCRDBrDBPjU/uzTvwRzVwi5J6+Wzpc7Ykvny77XzcuXp9fZszuPLIbZUyAvh9kK8+HUxTff6VwuDZD0yIZ4XZwTU+8MIHtdm3Rn5MuMRw7ayCO7GgF6DaMA6B9//t50yLOlQPZhBQHkGKx8KB0D2Z4/BrI9TAgywPApmLUTRrV9Xbr4bodhjYIMGSBnF7fiIOPilgiy9wbEgWzEPDoAmgMZ58sByLaZAXJJcSsCssuXIyAT72xjja5TmI+IfO+cBpnPl31Y8/Jl+rowJxa9M5MvW6jt2AeY//rf/xFQHQIdLW4xIEM+yJN3zipuWQ/MgIzGkwLZvkWN++7yo3BV6+rtS+91BoGTAtl659kg27eRDJAxrBLI4IHM9ScxOXQ6JxZtEAdZzpc5kCECMg2l0yADgMJ8BPXOW+93/qOnGMgxWPlQOgayyQHZHmYeyJMYDw0ggSzmy9MLS0HuQljDUDoGMvHiAsjeM3XVkdO7b39gPTWbL0MM1nhOnLsYRASZeGcOZPsoLgLyJG+W//LrT8bN+wlUt1tgQxs7oR2z4Z8jo7bBtu0m5jV2OHz70UePKdFHXFeufTnyMmEDE+XOG0/tqM3YnYxriDaXy5P9qA0AqDfO0b9+9m92bntruZ13hjjI2bDGbB1mFAJ4CawdGk9o81ml3/ekobYKAKxnndoAa4OMYfXOWAUyJy/kDkLrjobgfiidly/T13Fhtl/4EnNiHI6DK4rZ8aN+boiiOjp6/92Pu7zilhSCx3JiZxNzYpovAx9az5H/11Yd453H7W4L6Ys23gNbm7cpxyPzoTTt0xui3lmFFXhd7BkFm+e/iUdm23YTH2YPh27jkamsh3748BfjF75iXpf3zr5HBs8j4+KW52k7/OgpUvgCyPbIJUUE1dHSh+/9qeO881qLQVp7ZCoXcksge7DGwuw4yDbMZkH2Q+kYyPbZcwTkQUYXkKh4sWE2ffacH2ZjkCECsjt9W5D/87/+3R7MAp3KifMWg0RARnl4yaou6dFTDGRjjK7TVon66IM/dyHIUACyiYBsVgOZk+ehi8LsjOKWDzINpUOQoQHItHqoUnH6+MNPu60sBmkpWxSzALkNru/ZOlSrsg3RJha38GvIGGgbQC4iTDcY9fSTR1RZkopboY0vbi316GmOegCAv//20GBwARiQKdTjPxhktm03lYNMb0oKZHXMqiIZw4DMwLoHIE96BKAyX/aKW0ybFreCMLsTQ+tYyIJzHi/MxvmQSpWhTz7+rKP5cry4hWwQS//W11QY6wG4MBuHzuPPRJjt+e8gzMY2PxrO88jUA0+5MrUZOHnyjIbbqmwlV3UR7zzsux2PTDUUxRLPkP3Cl+Cd2cJXB9QjT8rzyO5d076LosKXs6G2SlWgT//0L110VRds0yNLGj10jUcWcmJsg3yP7N8c3yPL+bLfPnXqrHpnVbHi+bJcx9mihip3pLg1tmAOyLkV6yTIpHARQq1S1cjsPciThqIYU9zyw+x1FoMExS1S+MLPB70wG+c8KlWhPvvzX7pdLgZpqSHknopYJMyOF7eQDWZ4ZPHRU55HnmxnTj+u4baqWvvqkan6f/zj9+AL3cXFINQGdSDHniE7m8G7kP1Cm0o1V/sKMVb3xx+/G+7RUzRfBhnk2sUgAcixItjYx2H22TNPqIdWzRL+I4d9VT8tGskBue4ZslzckivWQpg99p1t+Pfs2XMKs0oFAH1evrzsYpBakPf+7VSlaqw+ni+vBbKQLw8H9tr+obW2rVJhPRKu6gofN+V9MkjFqi7y6Mn2YWybsM3ZVKoWwp+eua/qpeJW68UgWWH2cPAi73zuifN7/0tQqVppfA6922fI1WG2emeVylOPV3VhbR1kRVmlCtW3ALl2MUgWrKINh/YqlQpgXMsd+3hRubjlbGJxKyh0gf3ztFjhC6ZjcjaYbCT3VqkaaN8LY3328kxct6IeORlKY1s6J455ZIPa588/s9c3X6VqrR4Ag7ziYpAskN1xMchkb5VKNap3z5ChIciVxS0CMh4DBVkL3CpVqB6H1kGYPfwTaaM+QF1xywM+F2SlWaXi1NuwuNY7A2TCGrNhcGlfoVapctV7+XMslG4YZjsbkxNngqwht0oV6pEBZPcYyHpr8iiKtcHYpo+bABK2sT1FB+N5bJ+1hW2Vagnt86Or3nueK+XLbL9+MUg8Xzb4MGQ/9ErlWaUK1POPrIRHTwB1+XIByN52kEBWmlUqTv3ai0HCfLkcZGMMPP/cS3sbFqlUS6lvD3JtcSsPZJVKJavH8GZ53QTIuc+Q6aOnEOSwzfVVKpVTv/ZikKh3pscWQFacVSpe/QRKuXdOgDwrzMaeW72zSpUrV+VedTHIPJA1l1apePVzQC4LswUbPY8YZhs0SJVKxamXQPawSoIsFLcCcGm/HGQFW6WSFSmK5YNc9OgJvSAeZssgGyVapWIVFsXE4hbuV4CcmRMnQVaWVSpRvfeHDizINTkxtpWD7K9eU++sUuWqBzBMKD22YYniFrUVgmwUapVKUm+hTIIsQI02FoFMoXaHTIOsPKtUrFBRrNA7o41xWGO2vHxZvbNKlSf7mWJzw+yhuVC+rN5ZpcpSnx1aV4Cc9eipAGT1zipVXONHEE1QknbQH9vGtQ0Ku/1v0fABnfr+Rxk5m/tGjXE/w7THE+nST9XS2tePIbJruVdbDEI8Mrt97PuflIJtCrRKxamPgrxGcasQZEVZpZLVW1xmglxb3KoBWUNulYpX5MvqQA6zZ4IsgkvGoCCrVGXqQ1hBBnnmYhDRO0MByBp2q1Si3N9Dl4TZdqfW+bL0l1+hTaVSheq3kS/LIKt3VqnyNXw/NAAKsx2ctL+bfNmAPySjDlqlEuSeQ1eALFellwZZiVapOPWzQE6G0pkge1DHQVbvrFLJ6sXweVZOjG3x4pYcSksgax6tUknq1wJZDrPDUDoKsvuhUqmIegvh4sUtaqsDWXlWqWT5RbGhkeedoRJkmi9DKchKs0olKQy5h0YdyEvlywhkLYqpVLJ6Cu+yi0Hq82UtiqlUaaGPIMoDudUzZIPPkxlmG/xClUoVCH1ZXYvCVw3IGFZrEUFWnFUqWX01yJWLQQKQY2E22kG9s0qVVs/nz2sWt/JBxmNQqVSh+hjIqxS3cJiNdoiBrDirVLzGothai0GEfBkdKAmyemeVSpT4EURLLAZhHz1JIAt/p61Qq1Syeuqd18mX07BmeW6VSuWpn+BYJ18ugFW0GSVapRLU1zxDLs+Xa0B2g6Eg61oxlYpXXwLy7MUgrUBWnlUqVr3kdQEiIMfCbLRDWb7MgyzaVCpVoH5ecQvZ0A61OXEcZLeThtwqFS/73VarLAYRQcaw8jaDxqM8q1S8vKJYOidGNoCdgKzeWaWSFXxZXdI7o41FIHu5NA8y27ab6GtUKhWVC7mHf0AEuclikHS+nAZZcVapJPXpCnYurDFbOsz29g7CbGxToFUqSW7pZxOQeQ+MjloIMooKFGSVKqkeQ7QuyBhWdNQEyAq2SiULFcUyQabFrUROHNqEnDgCskKsUuUJfS43VObErh/3zlJO7J1RQVapZqivB5kPpbEtXtzyzqggq1QN5P899AqLQRRklWo5hR66djEIRECm+TIoyCrVEkKfy12fL4vFrQB4H1wFWaVqq34Xi0EUZJVqGfVrLgZRkFWqZdWnHze5hi4GUam2LfRldQBsyBwrbkVAVohVqvXlln6y3lnKiV176CvIKtUWhIpiOcUtZAMFWaXamnpdDKJSHR71Isg0XwYFWaXautDncuszZJVq34VWiinIKtW+qw/zZQVZpdpXoaKYgqxS7bt6BVmlOjz6f6pOcYc3O8+nAAAAAElFTkSuQmCC"/><linearGradient id="_Linear7" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.88722e-14,659.127,-634.831,4.03599e-14,76.8169,62.5212)"><stop offset="0" style="stop-color:#333530;stop-opacity:0"/><stop offset="1" style="stop-color:#828282;stop-opacity:0"/></linearGradient><image id="_Image9" width="258px" height="200px" xlink:href="data:image/png;base64,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"/><linearGradient id="_Linear10" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.86481e-15,-69.2121,46.7859,4.23802e-15,289.702,241.741)"><stop offset="0" style="stop-color:#fff;stop-opacity:1"/><stop offset="1" style="stop-color:#fff;stop-opacity:0"/></linearGradient><linearGradient id="_Linear12" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.98975e-14,658.139,-651.576,4.02994e-14,83.6072,69.8551)"><stop offset="0" style="stop-color:#fff;stop-opacity:0"/><stop offset="1" style="stop-color:#fff;stop-opacity:0"/></linearGradient><image id="_Image14" width="115px" height="169px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAACpCAYAAAAY5gKvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC0klEQVR4nO3cwVLDMAwA0aT//8/lVKZAWtJEsuTNvjM0sXfkhg6wLmrlfr/fj37vGnkjeu9MqN/Wdf3TzpjBIoM9bIXb/LroC19FRrRl2R9u83sjb4SqY7jN14t8MYrKo/LUNbIvMINZJu/f6428WCezTt/b61defDRiwGdtbiRLdMBO8X5re2NnXCngsylucq+rRnyY6mZfyf6YbBbT3vjVp3DLdAsw4mtTLSQqJCngsykWZcR9Wi/OiJ9puUifTo9pt1Cn8bg2CzbieS0WbsgY5YuPCHn1iA+lm2DIWCUbYcQcwzfEkHmGboohcw3bGEPmG7I5hhwjfYPOhjTifqkbZcix0jbLkOOlbJgha4RvmiHr3KpvQHFCp8CprBW2eYasF7KBhuyh/D3TkHFOx8z6Q1V97tRUeLz2UnbMGjLe4Zger/2UTKZTmeNQTKeyp48nxIeevoYes4bM9VFMj9fehk2mU5lvd0ynsr/yz2YVZ0hMj9gxdsX0iJ1D+mQ6leP8G9OpnEfqZDqVY/k0C/I2pkfsXNIm0yN2PI9ZkJcxPWLnkzKZHrE1PGZBNmN6xM7JyQQxJkh4TB9+6vyJ6fvlvDxmQYwJEhrT98taP2L6fjk3j1kQY4IYE8SYIN8xffiZX9hk+mNJPY9ZEGOCGBPEmCDGBLktiz+WUDiZIMYEMSaIMUGMCWJMEGOCGBPEmCA3P/3hcDJBjAliTJCQmP7+Tw9OJogxQYwJYkwQY4IYE8SYIMYEMSaIMUGMCWJMEGOCGBPEmCDGBDEmiDFBjAliTBBjghgTxJggxgQxJogxQYwJYkwQY4IYE8SYIMYEMSaIMUGMCWJMEGOCGBPEmCDGBDEmiDFBjAliTBBjghgTxJggp2P6v2b7cDJBjAliTBBjghgTxJggxgQxJogxQYwJYkwQY4IYE8SYIMYEMSaIMUGMCWJMEGOCGBPEmCDGBPkCk9jZKJdIbpQAAAAASUVORK5CYII="/><linearGradient id="_Linear15" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(309.823,0,0,219.023,41.6987,359.645)"><stop offset="0" style="stop-color:#02c49a;stop-opacity:1"/><stop offset="0.21" style="stop-color:#009f00;stop-opacity:1"/><stop offset="0.85" style="stop-color:#01af17;stop-opacity:1"/><stop offset="1" style="stop-color:#40c965;stop-opacity:1"/></linearGradient><linearGradient id="_Linear16" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(83.9654,128.268,-128.268,83.9654,42.3484,247.947)"><stop offset="0" style="stop-color:#fff;stop-opacity:1"/><stop offset="0.53" style="stop-color:#fff;stop-opacity:0.77"/><stop offset="1" style="stop-color:#fff;stop-opacity:0"/></linearGradient></defs></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/capital-one.svg b/go.dev/_content/images/logos/capital-one.svg
new file mode 100644
index 0000000..af93603
--- /dev/null
+++ b/go.dev/_content/images/logos/capital-one.svg
@@ -0,0 +1,41 @@
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 100.4 48" style="enable-background:new 0 0 100.4 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#D03027;}
+	.st1{fill:#004977;}
+</style>
+<title>captial-one</title>
+<path class="st0" d="M68.1,32c-4.3,3-9.3,6.2-14.8,9.5l-0.2,0.1c-0.1,0.1-0.1,0.2,0,0.2c0.1,0.1,0.2,0.1,0.2,0c0,0,0,0,0,0l0,0
+	l0.2-0.1l15.2-8.2h0.1C68.6,33.2,68.3,32.6,68.1,32L68.1,32z M96.1,9.4c-6.7-7.4-50-0.8-68.4,3.3l-0.4,0.1c-0.1,0-0.1,0.1-0.1,0.2
+	c0,0.1,0.1,0.1,0.2,0.1l0,0l0.4-0.1c15.3-2.7,47-6.5,53.8,0.3c2.1,2.1,1.6,4.7-0.8,7.9c1.4,0.9,2.3,2.2,2.7,3.8
+	C92.9,18.7,99.2,12.7,96.1,9.4L96.1,9.4z"/>
+<path class="st1" d="M70.8,30.1c0.1,2.6,1.7,4.8,3.9,4.8c4.2,0,6-5.1,5.8-8.6c-0.1-2.6-1.8-4.8-3.9-4.8C73,21.6,70.7,26.7,70.8,30.1
+	z M68.6,30c-0.2-4.5,3.3-9,8.4-9c3.4,0,5.6,2.3,5.8,5.7c0.2,4.7-3.1,9-8.4,9C71,35.7,68.8,33.5,68.6,30L68.6,30z M20.6,28.8
+	c-0.2,0.1-0.5,0.1-0.7,0.2c-0.3,0.1-0.8,0.2-1.6,0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.2,0.1-0.3,0.3-0.4,0.5c0,0.2,0,0.4,0.2,0.6
+	c0.3,0.2,0.7,0.2,1,0.2c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.2,0.9-0.5c0.2-0.1,0.3-0.3,0.4-0.5C20.4,29.5,20.5,29.1,20.6,28.8
+	L20.6,28.8z M25.1,26.1c0,0.5-0.1,0.9-0.2,1.4l-0.7,4.2c-0.1,0.3,0.1,0.7,0.4,0.9v0.2h-4.3v-1.1c-0.6,0.4-1.3,0.7-2.1,0.9
+	c-0.7,0.2-1.3,0.3-2,0.2c-1,0.1-1.9-0.1-2.7-0.6c-0.5-0.3-0.8-0.9-0.8-1.5c0-0.5,0.2-0.9,0.5-1.2c0.3-0.3,0.7-0.6,1.1-0.8
+	c0.5-0.2,1.1-0.4,1.7-0.5c0.8-0.1,1.8-0.2,3.2-0.4c0.5,0,1-0.1,1.4-0.3c0.3-0.1,0.4-0.2,0.5-0.5c0.1-0.4-0.1-0.7-0.6-0.8
+	c-2-0.1-4,0-5.9,0.6l0.8-2.2c1.9-0.3,3.8-0.5,5.7-0.5C24.1,24,25.1,24.9,25.1,26.1L25.1,26.1z M37.4,32.7l1.5-8.4H43l-1.5,8.4H37.4z
+	 M39.1,22.4c0.1-0.7,1.2-1.2,2.4-1.2s2.1,0.6,2,1.2s-1.2,1.2-2.4,1.2S39,23,39.1,22.4L39.1,22.4z M57.5,28.8
+	c-0.2,0.1-0.5,0.1-0.7,0.2c-0.3,0.1-0.8,0.1-1.6,0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.2,0.1-0.3,0.3-0.3,0.5c-0.1,0.2,0,0.4,0.2,0.6
+	c0.3,0.2,0.7,0.2,1,0.2c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.2,0.9-0.5c0.2-0.2,0.3-0.3,0.4-0.5C57.3,29.4,57.4,29.1,57.5,28.8
+	L57.5,28.8z M61.9,26.1c0,0.5-0.1,0.9-0.2,1.4L61,31.6c-0.1,0.3,0.1,0.7,0.4,0.9v0.2h-4.3v-1.1c-0.6,0.4-1.3,0.7-2,0.9
+	c-0.7,0.2-1.4,0.3-2.1,0.3c-1.4,0-2.2-0.1-2.7-0.6s-0.9-0.8-0.9-1.5c0-0.5,0.2-0.9,0.5-1.2c0.3-0.4,0.7-0.6,1.1-0.8
+	c0.5-0.2,1.1-0.4,1.7-0.5l3.2-0.4c0.5,0,1-0.1,1.4-0.3c0.2-0.1,0.4-0.2,0.5-0.5c0.1-0.4-0.1-0.7-0.6-0.8c-2-0.1-4,0-5.9,0.5l0.8-2.2
+	C54,24.2,56,24,57.9,24C61,24,62,24.9,61.9,26.1L61.9,26.1z M11.9,29.6C10.8,29.9,9.7,30,8.5,30c-2,0-3.5-1-3.4-2.8
+	c0.1-1.2,1.5-3.7,5-3.7c1.1,0,2.2,0.3,3.2,0.9l0.5-2.9c-1.3-0.5-2.7-0.7-4-0.7c-4.7,0-9.1,2.2-9.7,6.5s4.8,5.5,7.2,5.5
+	c1.4,0,2.8-0.1,4.1-0.2L11.9,29.6z M45.2,24.2l0.3-1.7l4.3-0.9l-0.5,2.6h2.1L51,25.9h-2l-1.2,6.7h-4.1l1.2-6.7h-1.5l0.3-1.7
+	L45.2,24.2L45.2,24.2z M68,21.1l-2,11.5h-4.2L64,21L68,21.1z M32,26.2c-0.5,0-1,0.2-1.5,0.5c-0.4,0.4-0.7,0.9-0.8,1.4
+	c-0.2,0.5-0.1,1.1,0.2,1.6c0.3,0.3,0.8,0.5,1.3,0.5c0.3,0,0.7-0.1,1-0.2c0.3-0.2,0.6-0.4,0.8-0.7c0.2-0.3,0.4-0.7,0.5-1.1
+	c0.1-0.5,0-1-0.3-1.5C32.9,26.4,32.4,26.2,32,26.2L32,26.2z M24.6,35.5l2-11.2h3.6l-0.3,1.4c0.4-0.5,0.9-0.9,1.5-1.1
+	c0.7-0.3,1.5-0.5,2.3-0.5c0.8-0.1,1.5,0.1,2.2,0.4c0.7,0.3,1.2,0.9,1.5,1.6c0.3,0.7,0.3,1.5,0.2,2.3c-0.2,1.3-0.9,2.5-2,3.3
+	c-1,0.7-2.3,1.1-3.5,1c-0.4,0-0.8,0-1.3-0.1c-0.3-0.1-0.6-0.2-0.8-0.3c-0.3-0.2-0.5-0.4-0.7-0.6l-0.7,3.9L24.6,35.5z M98.8,27.3
+	c0.1-0.5-0.3-1-0.9-1.1h-0.2c-1.7,0-3.5,3.3-3.8,4.6C96.8,30.8,98.9,29.1,98.8,27.3z M99.2,32.4l0.3,0.2c-0.8,1.8-2.5,2.9-4.4,3
+	c-1.6,0.1-2.9-1.2-3-2.8c0-0.1,0-0.2,0-0.2c-0.1-3.6,3.2-6.9,6-6.9c1.2,0,2.3,0.5,2.3,1.8c0.1,2.9-3.9,3.7-6.5,3.8
+	c-0.1,0.3-0.1,0.7-0.1,1c-0.1,1.2,0.8,2.1,2,2.2H96C97.3,34.3,98.5,33.6,99.2,32.4z"/>
+<path class="st1" d="M82.7,27.2l0.9-0.1c0.3,0,0.6,0.1,0.6,0.4c-0.1,0.6-0.2,1.2-0.4,1.7L83.2,32l-0.8,3.3h1.7l0.9-4.5
+	c2.8-2.9,3.9-3.9,4.6-3.9c0.3,0,0.5,0.2,0.5,0.4v0.1c-0.1,0.7-0.2,1.4-0.4,2l-0.9,3.2c-0.2,0.6-0.3,1.2-0.3,1.9c0,0.6,0.4,1,1,1h0.1
+	c1.2,0,2.1-1.2,2.8-2.5l-0.2-0.4c-0.3,0.5-1,1.6-1.6,1.6c-0.2,0-0.3-0.1-0.3-0.4c0-0.4,0.1-0.9,0.2-1.3l1-3.8
+	c0.2-0.7,0.3-1.4,0.4-2.1c0-0.6-0.4-1-1-1h-0.1c-1.1,0-2.5,0.8-5.5,4.3l0,0l0.4-1.7l0.6-2.6c-1.1,0.4-2.3,0.7-3.5,1L82.7,27.2z"/>
+</svg>
diff --git a/go.dev/_content/images/logos/chrome.svg b/go.dev/_content/images/logos/chrome.svg
new file mode 100644
index 0000000..3a2a5a9
--- /dev/null
+++ b/go.dev/_content/images/logos/chrome.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 648.371 170.775"><g fill="#77787A"><path d="M247.189 119.998c-3.312 1.584-10.656 4.032-20.016 4.032-21.023 0-34.704-14.257-34.704-35.567 0-21.456 14.688-37.151 37.439-37.151 7.488 0 14.112 1.872 17.568 3.744l-2.88 9.648c-3.024-1.584-7.775-3.312-14.688-3.312-15.984 0-24.624 11.952-24.624 26.353 0 16.128 10.368 26.062 24.191 26.062 7.2 0 11.952-1.729 15.552-3.312l2.162 9.503zM262.021 20.208h12.672v43.631h.288c2.016-3.6 5.184-6.912 9.072-9.072a25.979 25.979 0 0112.959-3.456c9.36 0 24.336 5.76 24.336 29.664v41.471h-12.672v-40.03c0-11.232-4.176-20.592-16.128-20.592-8.208 0-14.543 5.76-16.992 12.527-.72 1.872-.864 3.744-.864 6.048v42.047H262.02l.001-102.238zM341.94 74.495c0-8.208-.145-15.265-.576-21.744h11.088l.576 13.824h.432c3.168-9.36 10.944-15.265 19.44-15.265 1.296 0 2.304.145 3.455.288V63.55c-1.297-.288-2.593-.288-4.319-.288-8.928 0-15.265 6.624-16.992 16.127-.288 1.729-.432 3.888-.432 5.904v37.15H341.94V74.495zM450.66 87.023c0 25.775-18 37.008-34.704 37.008-18.72 0-33.407-13.823-33.407-35.855 0-23.184 15.408-36.863 34.561-36.863 20.014-.001 33.55 14.542 33.55 35.71zm-55.151.72c0 15.264 8.641 26.782 21.023 26.782 12.096 0 21.168-11.376 21.168-27.07 0-11.809-5.904-26.641-20.88-26.641-14.832.001-21.311 13.825-21.311 26.929zM466.645 71.615c0-7.345-.287-13.104-.575-18.864h11.088l.576 11.376h.432c3.889-6.624 10.368-12.816 22.032-12.816 9.358 0 16.56 5.76 19.583 13.968h.288c2.16-4.031 5.04-6.911 7.92-9.071 4.176-3.168 8.64-4.896 15.264-4.896 9.36 0 23.04 6.048 23.04 30.24v40.895h-12.384V83.135c0-13.536-5.04-21.456-15.12-21.456-7.344 0-12.815 5.328-15.119 11.375-.576 1.872-1.009 4.032-1.009 6.336v43.055h-12.384V80.687c0-11.088-4.896-19.007-14.543-19.007-7.776 0-13.681 6.335-15.696 12.671-.72 1.729-1.008 4.032-1.008 6.192v41.902h-12.385v-50.83zM593.796 89.902c.288 17.138 11.088 24.191 23.903 24.191 9.072 0 14.688-1.584 19.296-3.6l2.304 9.071c-4.464 2.017-12.238 4.464-23.327 4.464-21.455 0-34.271-14.256-34.271-35.278 0-21.023 12.384-37.439 32.688-37.439 22.896 0 28.801 19.872 28.801 32.688 0 2.592-.146 4.464-.434 5.902h-48.96zm37.151-9.071c.145-7.92-3.312-20.448-17.567-20.448-12.96 0-18.432 11.664-19.438 20.448h37.005z"/></g><circle fill="#FFF" cx="85.314" cy="85.713" r="83.805"/><path fill-opacity=".1" d="M138.644 100.95c0-29.454-23.877-53.331-53.33-53.331-29.454 0-53.331 23.877-53.331 53.331H47.22c0-21.039 17.055-38.094 38.093-38.094 21.038 0 38.093 17.055 38.093 38.094"/><circle fill-opacity=".1" cx="89.123" cy="96.379" r="28.951"/><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-175.667" y1="582.197" x2="-175.667" y2="581.436" gradientTransform="matrix(82 0 0 -82 14489.97 47794.7)"><stop offset="0" stop-color="#81b4e0"/><stop offset="1" stop-color="#0c5a94"/></linearGradient><circle fill="url(#a)" cx="85.314" cy="85.712" r="31.236"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="-114.519" y1="250.392" x2="-114.519" y2="181.062" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-color="#f06b59"/><stop offset="1" stop-color="#df2227"/></linearGradient><path fill="url(#b)" d="M161.5 47.619C140.525 5.419 89.312-11.788 47.111 9.186a85.317 85.317 0 00-32.65 28.53l34.284 59.425c-6.314-20.068 4.837-41.456 24.905-47.769a38.093 38.093 0 0110.902-1.752"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="-181.738" y1="104.41" x2="-146.693" y2="162.311" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-color="#388b41"/><stop offset="1" stop-color="#4cb749"/></linearGradient><path fill="url(#c)" d="M14.461 37.716C-11.78 76.86-1.32 129.864 37.824 156.105a85.33 85.33 0 0040.633 14.175l35.808-60.948c-13.389 16.228-37.397 18.529-53.625 5.14a38.09 38.09 0 01-11.895-17.33"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="-64.337" y1="98.252" x2="-101.668" y2="188.151" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-color="#e4b022"/><stop offset=".3" stop-color="#fcd209"/></linearGradient><path fill="url(#d)" d="M78.457 170.28c46.991 3.552 87.965-31.662 91.518-78.653a85.321 85.321 0 00-8.476-44.007H84.552c21.037.097 38.014 17.23 37.917 38.268a38.098 38.098 0 01-8.205 23.444"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="-170.136" y1="155.92" x2="-170.136" y2="216.868" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-opacity=".15"/><stop offset=".3" stop-opacity=".06"/><stop offset="1" stop-opacity=".03"/></linearGradient><path fill="url(#e)" d="M14.461 37.716l34.284 59.425a38.094 38.094 0 011.523-25.904L15.984 35.43"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="-86.009" y1="136.238" x2="-127.911" y2="93.575" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-opacity=".15"/><stop offset=".3" stop-opacity=".06"/><stop offset="1" stop-opacity=".03"/></linearGradient><path fill="url(#f)" d="M78.457 170.28l35.808-60.948a38.106 38.106 0 01-22.094 12.951L76.933 170.28"/><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="-86.616" y1="123.964" x2="-80.521" y2="184.148" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-opacity=".15"/><stop offset=".3" stop-opacity=".06"/><stop offset="1" stop-opacity=".03"/></linearGradient><path fill="url(#g)" d="M161.5 47.619H84.552a38.093 38.093 0 0129.712 14.476l48.759-12.19"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/cloudflare-icon.svg b/go.dev/_content/images/logos/cloudflare-icon.svg
new file mode 100644
index 0000000..8ad9cd6
--- /dev/null
+++ b/go.dev/_content/images/logos/cloudflare-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 67 31" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M16.32 28.938h42.354v-11.72l-8.046-4.614-1.388-.6-32.92.226z"></path><path d="M44.024 27.382c.394-1.35.244-2.588-.412-3.508-.6-.844-1.614-1.332-2.832-1.388l-23.1-.3a.43.43 0 0 1-.356-.188c-.076-.112-.094-.26-.056-.412a.63.63 0 0 1 .544-.412l23.296-.3c2.76-.132 5.76-2.364 6.808-5.1l1.332-3.47a.76.76 0 0 0 .04-.45C47.798 5.064 41.738 0 34.498 0c-6.68 0-12.34 4.314-14.368 10.3a6.92 6.92 0 0 0-4.784-1.332c-3.208.32-5.8 2.888-6.096 6.096a7.16 7.16 0 0 0 .168 2.382A9.68 9.68 0 0 0 0 27.138c0 .468.04.94.094 1.406.04.226.226.394.45.394H43.16a.58.58 0 0 0 .544-.412l.32-1.144z" fill="#f38020"></path><path d="M51.376 12.544l-.64.02c-.15 0-.28.112-.34.26l-.9 3.132c-.394 1.35-.244 2.588.412 3.508.6.844 1.614 1.332 2.832 1.388l4.914.3a.43.43 0 0 1 .356.188.52.52 0 0 1 .056.412c-.076.226-.3.394-.544.412l-5.12.3c-2.776.132-5.76 2.364-6.808 5.1l-.376.956c-.076.188.056.376.26.376h17.594a.46.46 0 0 0 .45-.338A12.82 12.82 0 0 0 64 25.15c-.02-6.96-5.663-12.595-12.624-12.604" fill="#faae40"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/cloudflare.png b/go.dev/_content/images/logos/cloudflare.png
new file mode 100644
index 0000000..8cd4914
--- /dev/null
+++ b/go.dev/_content/images/logos/cloudflare.png
Binary files differ
diff --git a/go.dev/_content/images/logos/cloudflare.svg b/go.dev/_content/images/logos/cloudflare.svg
new file mode 100644
index 0000000..04648af
--- /dev/null
+++ b/go.dev/_content/images/logos/cloudflare.svg
@@ -0,0 +1,33 @@
+<svg version="1.1" id="Layer_2_1_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 134 48" style="enable-background:new 0 0 134 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+	.st1{fill:#F48120;}
+	.st2{fill:#FAAD3F;}
+	.st3{fill:#404041;}
+</style>
+<g>
+	<path class="st0" d="M125.2,15.8l-7.4-1.7l-1.3-0.5l-33.9,0.3v16.3l42.6,0.1L125.2,15.8z"/>
+	<path class="st1" d="M111.3,28.7c0.4-1.3,0.3-2.6-0.4-3.4s-1.6-1.3-2.8-1.4l-22.9-0.3c-0.1,0-0.3-0.1-0.4-0.1
+		c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.3,0.3-0.4,0.5-0.4l23.1-0.3c2.8-0.1,5.7-2.4,6.7-5l1.3-3.4c0-0.1,0.1-0.3,0-0.4
+		C115,6.9,109,1.9,101.9,1.9c-6.6,0-12.3,4.2-14.2,10.1c-1.3-0.9-2.9-1.4-4.7-1.3c-3.2,0.3-5.7,2.9-6.1,6.1c-0.1,0.8,0,1.6,0.1,2.4
+		c-5.1,0.1-9.4,4.3-9.4,9.6c0,0.5,0,0.9,0.1,1.4c0,0.3,0.3,0.4,0.4,0.4h42.3c0.3,0,0.5-0.1,0.5-0.4L111.3,28.7z"/>
+	<path class="st2" d="M118.6,14h-0.7c-0.1,0-0.3,0.1-0.4,0.3l-0.9,3.2c-0.4,1.3-0.3,2.6,0.4,3.4s1.6,1.3,2.8,1.4l4.9,0.3
+		c0.1,0,0.3,0.1,0.4,0.1c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.3-0.3,0.4-0.5,0.4l-5,0.3c-2.8,0.1-5.7,2.4-6.7,5l-0.3,1.2
+		c-0.1,0.1,0,0.4,0.3,0.4h17.4c0.3,0,0.4-0.1,0.4-0.4c0.3-1.1,0.5-2.2,0.5-3.4C131.1,19.6,125.4,14,118.6,14"/>
+	<path class="st3" d="M132.8,37.7c-0.7,0-1.2-0.5-1.2-1.2s0.5-1.2,1.2-1.2c0.7,0,1.2,0.5,1.2,1.2S133.5,37.7,132.8,37.7 M132.8,35.6
+		c-0.5,0-0.9,0.4-0.9,0.9c0,0.5,0.4,0.9,0.9,0.9s0.9-0.4,0.9-0.9S133.3,35.6,132.8,35.6 M133.3,37.2h-0.3l-0.3-0.4h-0.3v0.4h-0.3V36
+		h0.7c0.3,0,0.4,0.1,0.4,0.4c0,0.1-0.1,0.3-0.3,0.4L133.3,37.2L133.3,37.2z M132.9,36.5c0.1,0,0.1,0,0.1-0.1c0-0.1-0.1-0.1-0.1-0.1
+		h-0.4v0.4h0.4V36.5z M14.8,35.3h2.9v7.9h5v2.5h-7.9L14.8,35.3z M25.7,40.5c0-3,2.4-5.4,5.7-5.4s5.5,2.4,5.5,5.4s-2.4,5.4-5.7,5.4
+		C28.1,45.9,25.7,43.5,25.7,40.5 M34,40.5c0-1.6-1.1-2.9-2.6-2.9c-1.6,0-2.6,1.3-2.6,2.8c0,1.4,1.1,2.8,2.6,2.8
+		C32.9,43.4,34,42,34,40.5 M40.4,41.1v-5.8h2.9v5.8c0,1.4,0.8,2.2,2,2.2s2-0.7,2-2.1v-5.9h2.9v5.8c0,3.4-2,4.9-4.9,4.9
+		C42.3,45.9,40.4,44.4,40.4,41.1 M54.5,35.3h4.1c3.7,0,5.9,2.1,5.9,5.1s-2.2,5.3-5.9,5.3h-4V35.3H54.5z M58.6,43.1
+		c1.7,0,2.9-0.9,2.9-2.6s-1.2-2.6-2.9-2.6h-1.2v5.3H58.6z M68.6,35.3h8.3v2.5h-5.4v1.7h4.9v2.4h-4.9v3.8h-2.9L68.6,35.3z M81,35.3
+		h2.9v7.9h5v2.5H81V35.3z M96.4,35.2h2.9l4.5,10.5h-3.2l-0.8-1.8h-4.1L95,45.7h-3C92,45.7,96.4,35.2,96.4,35.2z M99.1,41.7l-1.2-2.9
+		l-1.2,2.9H99.1z M107.5,35.3h4.9c1.6,0,2.6,0.4,3.4,1.2c0.7,0.7,0.9,1.4,0.9,2.4c0,1.6-0.8,2.6-2.1,3.2l2.5,3.7h-3.3l-2.1-3.2h-1.3
+		v3.2h-2.9C107.5,45.7,107.5,35.3,107.5,35.3z M112.3,40.3c0.9,0,1.6-0.5,1.6-1.2c0-0.8-0.7-1.2-1.6-1.2h-1.8v2.5h1.8V40.3z
+		 M120.8,35.3h8.4v2.4h-5.5v1.6h5v2.4h-5v1.6h5.7v2.5h-8.6L120.8,35.3z M8.4,41.8c-0.4,0.9-1.3,1.6-2.4,1.6c-1.6,0-2.6-1.3-2.6-2.8
+		s1.1-2.8,2.6-2.8c1.2,0,2.1,0.8,2.5,1.7h3C11.1,37,9,35.2,6.1,35.2c-3.2,0-5.7,2.4-5.7,5.4S2.8,46,5.9,46c2.8,0,4.9-1.8,5.5-4.2
+		H8.4z"/>
+</g>
+</svg>
diff --git a/go.dev/_content/images/logos/cockroach.svg b/go.dev/_content/images/logos/cockroach.svg
new file mode 100644
index 0000000..0954963
--- /dev/null
+++ b/go.dev/_content/images/logos/cockroach.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48.1 48"><path d="M48 2h-1l-2-1a26 26 0 00-21 3A26 26 0 003 1L1 2H0v1l1 3h4l5-1 10 2-5 6-1 1v1l-1 2-1 9c0 7 3 14 8 19l1 1 1 1 1 1h2l1-1 1-1 1-1a26 26 0 006-29l-1-1v-2l-5-6a22 22 0 0115-1h4l1-2V2zM22 41c-4-4-6-9-6-15v-2l1-5 3 5c2 3 3 7 3 11l-1 6zm11-15l-2 7-4 8-1-2-1-4 2-9 5-7 1 7zm-4-12a21 21 0 01-10 0l5-5 5 5z" fill="#152849"/><path d="M17 19c3 2 8 10 5 23-3-3-9-12-5-23z" fill="#76de49"/><path d="M26 42c4-3 9-11 6-24-4 4-9 13-6 24z" fill="#37a806"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/comcast.svg b/go.dev/_content/images/logos/comcast.svg
new file mode 100644
index 0000000..f8ce7a1
--- /dev/null
+++ b/go.dev/_content/images/logos/comcast.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 width="1000.258px" height="353.502px" viewBox="0 0 1000.258 353.502" enable-background="new 0 0 1000.258 353.502"

+	 xml:space="preserve">

+<g>

+	<path fill="#FFFFFF" d="M500.044,17.759c3.688-6.022,9.807-12.323,16.396-14.988c11.341-5.16,26.542-2.941,35.795,5.224

+		c8.954,8.112,13.496,19.23,11.353,31.66c2.196-0.405,4.413-1.811,6.738-2.611c13.899-3.923,28.599,0.331,37.511,12.248

+		c6.694,8.507,8.443,21.724,4.425,32.001c-1.994,5.169-5.395,9.817-9.817,13.783l0.446,0.448

+		c12.931,0.628,25.639,10.67,29.561,22.982c4.253,12.419,0.512,25.69-8.57,34.773c-7.42,7.334-16.961,9.872-27.567,9.658H403.765

+		c-15.81,0.341-28.026-6.663-34.603-20.722c-5.16-12.068-2.612-27.503,7.024-36.702c6.076-6.354,13.688-8.956,21.896-10.266

+		c-9.295-8.624-13.773-20.424-11.161-33.078c1.866-10.254,10.607-20.637,20.648-24.219c8.847-3.518,20.83-2.9,28.932,1.875

+		l0.288-0.352c-2.441-13.954,3.742-26.543,15.317-34.261c10.32-6.981,26.821-6.801,36.926,0.62

+		C493.574,8.613,497.315,13.389,500.044,17.759"/>

+	<path fill="#645FAA" d="M554.558,22.972c4.137,8.347,1.707,19.284-2.611,26.778l-33.408,75.163l-0.289,0.352l-12.076-76.25

+		c-0.969-7.322,6.854-10.446,11.459-13.964c-0.234-1.076-1.418-1.023-2.163-1.524l-11.288-0.118l-0.343-0.341

+		c0.064-9.466,5.16-18.207,13.794-22.801c9.02-5.212,21.725-3.795,29.549,2.889C550.359,15.99,553.035,19.283,554.558,22.972"/>

+	<path fill="#C9234A" d="M493.008,20.36c2.73,5.053,4.308,10.789,3.348,17.141l-13.623,87.305c0.074,0.106-0.053,0.224-0.161,0.276

+		l-3.528-7.024L444.9,41.808c-3.177-9.818-0.234-20.083,6.918-27.12c7.206-7.312,19.06-9.295,28.484-5.329

+		C485.291,11.513,490.056,15.479,493.008,20.36"/>

+	<path fill="#0089CF" d="M603.978,57.115c4.594,7.834,3.561,19.689-1.547,26.959c-3.164,5.106-8.389,7.654-12.813,11.001

+		l-70.748,48.565h-0.162l0.79-2.323L557,56.668c5.618-9.978,16.342-15.031,27.684-13.507

+		C592.455,44.58,600.226,49.632,603.978,57.115"/>

+	<path fill="#F36F21" d="M443.259,56.668l39.026,86.963h-0.628l-78.68-54.227c-8.007-6.747-11.289-16.853-8.571-27.065

+		c2.036-7.654,8.389-14.806,15.947-17.643C422.728,40.166,436.67,44.984,443.259,56.668"/>

+	<path fill="#0DB14B" d="M624.509,118.505c3.922,8.283,2.377,19.625-3.23,26.67c-5.563,6.749-13.005,10.437-21.736,10.202

+		l-83.893,0.054l70.279-48.896c6.867-4.424,17.303-5.225,24.797-1.643C616.513,107.163,621.961,112.834,624.509,118.505"/>

+	<path fill="#FDB913" d="M376.08,118.505c-3.911,8.283-2.377,19.625,3.241,26.67c5.564,6.749,12.983,10.437,21.725,10.202

+		l83.893,0.054l-70.28-48.896c-6.865-4.424-17.3-5.225-24.784-1.643C384.085,107.163,378.639,112.834,376.08,118.505"/>

+	<path d="M225.435,205.65c-40.763,0-73.893,33.152-73.893,73.916c0,40.753,33.13,73.925,73.893,73.925

+		c40.764,0,73.916-33.172,73.916-73.925C299.351,238.803,266.199,205.65,225.435,205.65 M225.435,338.93

+		c-32.736,0-59.375-26.637-59.375-59.363c0-32.717,26.639-59.355,59.375-59.355c32.737,0,59.376,26.639,59.376,59.355

+		C284.811,312.293,258.172,338.93,225.435,338.93"/>

+	<path d="M862.724,280.504c-3.965-2.08-28.088-14.498-31.553-16.299c-12.653-6.471-17.141-12.185-17.141-21.864

+		c0-13.452,11.045-22.14,28.173-22.14c10.054,0,19.774,4.424,25.478,7.632c1.035,0.565,2.261,0.885,3.539,0.885

+		c3.987,0,7.26-3.272,7.26-7.259c0-2.686-1.473-5.043-3.635-6.301c-7.184-4.009-19.434-9.498-32.642-9.498

+		c-25.167,0-42.724,15.072-42.724,36.681c0,19.391,12.749,28.537,25.222,34.912c3.495,1.78,27.896,14.358,31.552,16.287

+		c9.637,5.042,14.967,12.611,14.967,21.321c0,11.672-9.891,24.08-28.194,24.08c-17.803,0-31.628-11.939-35.444-15.617l-1.142-1.088

+		l-10.755,9.807l1.257,1.258c4.775,4.735,22.237,20.19,46.084,20.19c26.735,0,42.714-19.646,42.714-38.63

+		C885.74,300.684,877.361,288.156,862.724,280.504"/>

+	<path d="M73.895,220.211c15.872,0,30.785,6.184,41.978,17.365c2.665,2.654,7.675,2.654,10.297,0

+		c1.386-1.354,2.121-3.176,2.121-5.127c0-1.93-0.735-3.774-2.121-5.128l-0.895-0.917c-13.837-13.389-32.097-20.754-51.38-20.754

+		C33.152,205.65,0,238.813,0,279.555c0,40.765,33.152,73.937,73.895,73.937c21.51,0,40.89-9.229,54.396-23.942l-10.287-10.297

+		c-10.873,12.067-26.607,19.678-44.11,19.678c-32.726,0-59.365-26.648-59.365-59.375C14.53,246.861,41.169,220.211,73.895,220.211"

+		/>

+	<path d="M574.941,220.211c15.852,0,30.785,6.184,41.977,17.365c2.654,2.654,7.666,2.654,10.288,0

+		c1.386-1.354,2.153-3.176,2.153-5.127c0-1.93-0.768-3.774-2.153-5.128l-0.885-0.917c-13.868-13.389-32.107-20.754-51.38-20.754

+		c-40.752,0-73.916,33.162-73.916,73.904c0,40.765,33.164,73.937,73.916,73.937c21.5,0,40.88-9.229,54.407-23.942l-10.298-10.297

+		c-10.873,12.067-26.629,19.678-44.109,19.678c-32.737,0-59.387-26.648-59.387-59.375

+		C515.554,246.861,542.204,220.211,574.941,220.211"/>

+	<path d="M449.741,205.65c-2.729,0-4.883,1.759-6.056,4.029c-1.194,2.27-43.492,106.897-43.502,106.897

+		c0,0-42.298-104.628-43.482-106.897c-1.183-2.271-3.335-4.029-6.064-4.029c-3.188,0-5.586,2.345-6.428,5.299

+		c-0.842,2.973-24.709,134.653-24.709,134.653c-0.086,0.428-0.128,0.876-0.128,1.333c0,3.623,2.953,6.556,6.556,6.556

+		c3.198,0,5.863-2.28,6.438-5.297l20.669-112.664c0,0,39.879,98.518,41.041,100.862c1.173,2.335,3.347,4.158,6.119,4.158

+		c2.771,0,4.936-1.823,6.097-4.158c1.173-2.345,41.051-100.862,41.051-100.862l21.479,117.151h13.348

+		c0,0-25.147-138.76-25.989-141.732C455.326,207.995,452.927,205.65,449.741,205.65"/>

+	<path d="M712.527,205.66c-2.761-0.01-4.902,1.791-6.107,4.136c-1.195,2.335-54.738,134.582-54.738,134.582

+		c-0.32,0.777-0.502,1.642-0.502,2.558c0,3.623,2.932,6.566,6.556,6.566c2.761,0,5.128-1.727,6.099-4.168L684.62,298.2h55.825

+		l22.174,54.481h14.166c0,0-56.987-140.551-58.159-142.886C717.462,207.451,715.298,205.65,712.527,205.66 M690.546,283.647

+		l21.98-54.046l22.002,54.046H690.546z"/>

+	<path d="M992.966,206.438h-82.293c-4.009,0-7.26,3.263-7.26,7.281c0,3.997,3.251,7.259,7.26,7.259h34.494V352.67h13.326V220.979

+		h34.473c4.009,0,7.292-3.262,7.292-7.259C1000.258,209.701,996.975,206.438,992.966,206.438"/>

+</g>

+</svg>

diff --git a/go.dev/_content/images/logos/curve.png b/go.dev/_content/images/logos/curve.png
new file mode 100644
index 0000000..8cfb618
--- /dev/null
+++ b/go.dev/_content/images/logos/curve.png
Binary files differ
diff --git a/go.dev/_content/images/logos/curve.svg b/go.dev/_content/images/logos/curve.svg
new file mode 100644
index 0000000..01fc55b
--- /dev/null
+++ b/go.dev/_content/images/logos/curve.svg
@@ -0,0 +1,34 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 134 48" style="enable-background:new 0 0 134 48;" xml:space="preserve">
+<g>
+	<path d="M21.3,34.4c-1-1.4-0.8-1.1-2.1-0.7c-8.2,3-15.4-3.9-14.3-11.1c0.4-2.7,1.3-5.1,3.5-6.8c2.8-2.3,6.1-3,9.6-1.9
+		c0.7,0.2,1.3,0.1,1.9-0.3c1-0.7,2.1-1.5,3.1-2.2c0.2-0.1,0.4-0.3,0.7-0.5c-1.2-0.5-2.2-1-3.2-1.4c-1.1-0.4-2.3-0.6-3.4-0.8
+		c-0.9,0-1.8,0-2.7,0c-1.3,0.3-2.8,0.4-4.1,1C4.4,11.8,1,16.1,0.1,22.3c0,0.1-0.1,0.3-0.1,0.4c0,0.9,0,1.8,0,2.7
+		c0.4,1.4,0.5,2.9,1.1,4.2c2.3,5.5,6.4,8.8,12.4,9.6c0.1,0,0.3,0.1,0.4,0.1c1,0,1.9,0,2.8,0c0.3,0.1,0.3,0.1,0.5,0
+		c1.9-0.2,3.7-0.8,5.4-1.7c0.5-0.2,0.5-0.5,0.2-1C22.2,35.9,21.8,35.2,21.3,34.4z"/>
+	<path d="M134,18.2c0-1.5,0-3,0-4.4c-0.1,0-0.3-0.1-0.4-0.1c-3.9,0-7.7,0-11.5,0c-0.1,0-0.2,0-0.4,0.1c0,6.7,0,13.3,0,19.9
+		c4.1,0,8.2,0,12.3,0c0-1.5,0-3,0-4.4c-2.6,0-5.1,0-7.8,0c0-1.2,0-2.2,0-3.4c2,0,4,0,6.1,0c0-1.5,0-2.9,0-4.3c-2,0-4,0-6.1,0
+		c0-1.1,0-2.2,0-3.3C128.8,18.2,131.4,18.2,134,18.2z"/>
+	<path d="M93.5,25.1c2.7-1.3,4-4,3.3-6.8s-3-4.6-6-4.6c-2.2,0-4.4,0-6.5,0c-0.2,0-0.4,0-0.7,0c0,6.7,0,13.2,0,19.9c1.5,0,3,0,4.5,0
+		c0-2.7,0-5.3,0-8.1c1.9,2.5,3.6,4.8,5.4,7.1c0.6,0.8,1.1,1.1,2.2,1c1.3-0.1,2.6,0,4,0c-2.2-2.9-4.3-5.7-6.5-8.5
+		C93.3,25.1,93.4,25.1,93.5,25.1z M92.6,20.1c-0.1,0.9-0.8,1.6-1.9,1.7c-0.1,0-0.3,0-0.4,0c-0.7,0-1.5,0-2.3,0c0-1.3,0-2.6,0-4
+		c1.1,0.1,2.2,0,3.2,0.2C92.2,18.2,92.7,19.1,92.6,20.1z"/>
+	<path d="M78,14.4c0-0.2,0-0.4,0-0.6c-1.6,0-3,0-4.5,0c0,0.3,0,0.5,0,0.8c0,3.6,0,7.1,0,10.6c0,0.4,0,0.9-0.1,1.3
+		c-0.4,2.5-2.9,3.8-5.2,2.8c-1.5-0.7-2.1-1.9-2.1-3.5c0-3.7,0-7.5,0-11.2c0-0.2,0-0.5,0-0.8c-1.6,0-3,0-4.5,0c0,1.3,0,2.5,0,3.7
+		c0,3.1-0.1,6.2,0.1,9.2c0.2,3.1,1.8,5.5,4.8,6.6c3.1,1.2,6.1,0.8,8.7-1.3c2-1.7,2.7-4,2.7-6.5C78,21.7,78,18.1,78,14.4z"/>
+	<path d="M54.3,26.9c-2.5,3.5-6.4,3.3-8.6,1.4c-2.5-2.1-2.8-6.1-0.5-8.6c1-1.2,2.4-1.9,3.9-1.9c2.2-0.1,3.9,1,5.2,2.8
+		c1.1-1,2.2-1.9,3.3-2.8c-2.3-3.6-7-5.2-11.2-3.9c-4.2,1.3-7.2,5.3-7.2,9.7s3,8.5,7.2,9.8s8.9-0.3,11.2-3.9
+		c-0.5-0.4-1.1-0.9-1.6-1.3C55.4,27.8,54.9,27.3,54.3,26.9z"/>
+	<path d="M113.8,13.7c-0.5,0-0.7,0.1-1,0.6c-1.3,2.9-2.5,5.7-3.8,8.6c-0.1,0.2-0.2,0.4-0.4,0.7c-0.1-0.3-0.2-0.4-0.3-0.7
+		c-1.3-2.9-2.5-5.8-3.8-8.7c-0.2-0.4-0.4-0.6-0.9-0.6c-1.2,0-2.5,0-3.6,0c-0.2,0-0.4,0-0.7,0.1c3.1,6.8,6.2,13.4,9.4,20.2
+		c3.1-6.8,6.2-13.5,9.4-20.2C116.6,13.8,115.2,13.8,113.8,13.7z"/>
+	<path d="M14.2,20.8c0.7,1,1.4,2,2.1,3.1c0.5,0.7,0.5,0.7,1.3,0.2c3.6-2.5,7.1-5,10.7-7.4c0.4-0.3,0.5-0.6,0.1-1
+		c-0.9-1-1.8-2.1-2.7-3.1c-0.1-0.1-0.3-0.2-0.4-0.4c-0.2,0.1-0.4,0.2-0.7,0.4c-3.3,2.4-6.8,4.7-10.1,7.1
+		C13.9,19.9,13.8,20.3,14.2,20.8z"/>
+	<path d="M30.4,20.8c-0.2-1-0.5-1.9-0.8-2.9c-0.4,0.2-0.6,0.4-0.8,0.5c-3.3,2.3-6.5,4.6-9.9,6.9c-1,0.7-1,0.9-0.3,1.9
+		s1.3,1.9,1.9,2.8c0.3,0.4,0.6,0.4,1,0.2c2.9-2,5.8-4,8.6-6c0.4-0.3,0.5-0.6,0.5-1.1C30.7,22.3,30.6,21.6,30.4,20.8z"/>
+	<path d="M22.5,31.7c-0.4,0.3-0.4,0.6-0.1,1c0.7,1,1.3,1.9,1.9,2.9c0.3,0.4,0.5,0.4,0.9,0.1c1.8-1.5,3.1-3.3,4-5.4
+		c0.5-1.3,1-2.5,1.1-3.9c-0.1,0-0.1,0-0.2,0C27.8,28,25.1,29.9,22.5,31.7z"/>
+</g>
+</svg>
diff --git a/go.dev/_content/images/logos/docker.svg b/go.dev/_content/images/logos/docker.svg
new file mode 100644
index 0000000..4242689
--- /dev/null
+++ b/go.dev/_content/images/logos/docker.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2100" viewBox="0 0 256 215" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M38.617 173.984v-16.362c0-2.15 1.344-3.877 3.57-3.877h.616c2.225 0 3.563 1.729 3.563 3.877v34.447c0 8.4-4.15 15.084-11.382 19.342a21.374 21.374 0 0 1-10.945 2.985h-1.537c-8.402 0-15.077-4.153-19.342-11.38a21.314 21.314 0 0 1-2.984-10.947v-1.535c0-8.403 4.152-15.083 11.378-19.349a21.298 21.298 0 0 1 10.948-2.985h1.537c5.686 0 10.51 2.204 14.578 5.784zM7.924 191.3c0 6.068 2.941 10.63 8.258 13.54 2.15 1.176 4.484 1.808 6.937 1.808 5.956 0 10.374-2.81 13.421-7.857 1.417-2.348 2.077-4.917 2.077-7.648 0-5.26-2.49-9.365-6.729-12.414-2.57-1.848-5.463-2.775-8.618-2.775-6.492 0-11.164 3.28-13.968 9.106-.946 1.97-1.378 4.061-1.378 6.24zm65.324-23.1h1.074c8.978 0 15.806 4.355 20.133 12.192 1.73 3.135 2.656 6.557 2.656 10.142v1.535c0 8.4-4.142 15.093-11.385 19.343-3.353 1.967-7.057 2.984-10.943 2.984h-1.535c-8.402 0-15.079-4.153-19.342-11.38a21.316 21.316 0 0 1-2.987-10.947v-1.535c0-8.404 4.169-15.062 11.377-19.347 3.351-1.991 7.058-2.987 10.952-2.987zm-14.58 23.1c0 5.89 2.89 10.223 7.865 13.27 2.336 1.43 4.909 2.078 7.638 2.078 5.82 0 10.122-2.951 13.116-7.863 1.428-2.342 2.074-4.915 2.074-7.642 0-5.477-2.638-9.661-7.148-12.693-2.471-1.663-5.222-2.496-8.198-2.496-6.492 0-11.164 3.28-13.967 9.106-.948 1.97-1.38 4.061-1.38 6.24zm70.656-14.727c-1.17-.548-3.36-.73-4.624-.778-6.474-.244-11.158 3.402-13.906 9.113-.949 1.97-1.382 4.055-1.382 6.235 0 6.637 3.485 11.284 9.409 14.117 2.164 1.034 4.958 1.23 7.323 1.23 2.08 0 5.02-1.274 6.866-2.151l.32-.152h1.433l.158.032c1.762.367 3.092 1.484 3.092 3.38v.767c0 4.718-8.622 5.798-11.912 6.028-11.61.803-20.293-5.573-23.603-16.647-.575-1.923-.834-3.833-.834-5.837v-1.533c0-8.403 4.17-15.059 11.377-19.34 3.351-1.99 7.057-2.99 10.95-2.99h1.536c4.13 0 7.934 1.173 11.344 3.502l.28.194.177.292c.368.61.685 1.316.685 2.042v.767c0 1.978-1.48 3.042-3.266 3.386l-.148.026h-.458c-1.156 0-3.785-1.197-4.817-1.683zm25.134 5.247c3.01-3.014 6.03-6.022 9.085-8.986.851-.827 4.074-4.327 5.343-4.327h1.388l.158.033c1.768.367 3.092 1.486 3.092 3.386v.766c0 1.296-1.518 2.802-2.355 3.689-1.78 1.887-3.654 3.712-5.476 5.56l-9.362 9.504c4.031 4.04 8.058 8.083 12.056 12.154a313.304 313.304 0 0 1 3.301 3.396c.385.405.953.909 1.276 1.47.347.526.56 1.119.56 1.752v.8l-.045.185c-.435 1.768-1.557 3.194-3.516 3.194h-.617c-1.282 0-2.73-1.45-3.608-2.279-1.81-1.706-3.557-3.5-5.331-5.243l-5.949-5.84v9.334c0 2.15-1.346 3.878-3.569 3.878h-.61c-2.226 0-3.57-1.728-3.57-3.878v-52.596c0-2.15 1.345-3.87 3.57-3.87h.61c2.223 0 3.569 1.72 3.569 3.87v24.048zm96.577-13.313h.77c2.324 0 3.875 1.566 3.875 3.877 0 3.208-3.067 4.029-5.72 4.029-3.48 0-6.803 2.107-9.202 4.47-2.991 2.949-4.3 6.726-4.3 10.878v18.759c0 2.15-1.343 3.876-3.57 3.876h-.612c-2.227 0-3.569-1.725-3.569-3.876v-19.836c0-7.617 3.708-13.835 9.89-18.196 3.691-2.605 7.919-3.98 12.438-3.98zm-55.074 37.176c2.82.985 6.035.844 8.928.34 1.48-.629 5.264-2.28 6.656-2.038l.217.037.2.098c.85.412 1.661.995 2.095 1.86 1.014 2.027.527 4.065-1.465 5.216l-.663.383c-7.35 4.242-15.168 3.654-22.495-.308-3.503-1.894-6.183-4.705-8.16-8.132l-.462-.801c-4.719-8.172-4.082-16.768 1.24-24.539 1.837-2.686 4.238-4.761 7.045-6.384l1.062-.613c6.922-3.996 14.341-3.722 21.45-.215 3.823 1.886 6.92 4.697 9.054 8.394l.384.666c1.55 2.686-.458 5.026-2.531 6.626-2.406 1.856-4.835 4.09-7.141 6.08-5.142 4.439-10.276 8.888-15.414 13.33zm-6.655-4.674c5.75-4.93 11.502-9.865 17.237-14.816 1.96-1.69 4.109-3.444 6.053-5.221-1.56-1.966-4.166-3.383-6.38-4.228-4.47-1.703-8.877-1.131-12.976 1.235-5.365 3.098-7.65 8.031-7.45 14.17.08 2.418.73 4.748 2.013 6.805.452.725.957 1.406 1.503 2.055zM147.488 45.732h22.866v23.375h11.561c5.34 0 10.831-.951 15.887-2.664 2.485-.843 5.273-2.015 7.724-3.49-3.228-4.214-4.876-9.535-5.36-14.78-.66-7.135.78-16.421 5.608-22.005l2.404-2.78 2.864 2.303c7.211 5.793 13.276 13.889 14.345 23.118 8.683-2.554 18.878-1.95 26.531 2.467l3.14 1.812-1.652 3.226C246.933 68.946 233.4 72.86 220.17 72.167c-19.797 49.309-62.898 72.653-115.157 72.653-27 0-51.77-10.093-65.876-34.047l-.231-.39-2.055-4.182c-4.768-10.544-6.352-22.095-5.278-33.637l.323-3.457H51.45V45.732h22.865V22.866h45.733V0h27.44v45.732" fill="#364548"/><path d="M221.57 54.38c1.533-11.916-7.384-21.275-12.914-25.719-6.373 7.368-7.363 26.678 2.635 34.808-5.58 4.956-17.337 9.448-29.376 9.448H35.37c-1.17 12.567 1.036 24.14 6.075 34.045l1.667 3.05a56.536 56.536 0 0 0 3.455 5.184c6.025.387 11.58.52 16.662.408h.002c9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.078 2.323-16.806 2.738.4.007-.416.06-.418.06-.229.015-.517.048-.747.06-2.648.149-5.506.18-8.428.18-3.196 0-6.343-.06-9.862-.24l-.09.06c12.21 13.724 31.302 21.955 55.234 21.955 50.648 0 93.608-22.452 112.632-72.857 13.496 1.385 26.467-2.057 32.367-13.575-9.398-5.423-21.484-3.694-28.443-.196" fill="#22A0C8"/><path d="M221.57 54.38c1.533-11.916-7.384-21.275-12.914-25.719-6.373 7.368-7.363 26.678 2.635 34.808-5.58 4.956-17.337 9.448-29.376 9.448H44.048c-.598 19.246 6.544 33.855 19.18 42.687h.003c9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.526 2.443-17.254 2.858-.002 0-.163-.155-.165-.155 17.237 8.842 42.23 8.81 70.885-2.197 32.13-12.344 62.029-35.86 82.89-62.757-.314.142-.62.287-.917.436" fill="#37B1D9"/><path d="M35.645 88.186c.91 6.732 2.88 13.035 5.8 18.776l1.667 3.05a56.432 56.432 0 0 0 3.455 5.184c6.026.387 11.581.52 16.664.408 9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.496 2.383-17.224 2.799-.231.014-.634.017-.867.03-2.646.148-5.475.239-8.398.239-3.195 0-6.463-.061-9.98-.24 12.21 13.724 31.42 21.985 55.352 21.985 43.36 0 81.084-16.458 102.979-52.822H35.645" fill="#1B81A5"/><path d="M45.367 88.186c2.592 11.82 8.821 21.099 17.864 27.418 9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.615 2.383-17.344 2.799 17.236 8.84 42.157 8.713 70.81-2.293 17.334-6.66 34.017-16.574 48.984-28.515H45.367" fill="#1D91B4"/><path d="M55.26 49.543h19.818v19.818H55.26V49.543zm1.651 1.652h1.564V67.71h-1.564V51.195zm2.94 0h1.627V67.71h-1.626V51.195zm3.002 0h1.627V67.71h-1.627V51.195zm3.004 0h1.626V67.71h-1.626V51.195zm3.003 0h1.626V67.71H68.86V51.195zm3.002 0h1.565V67.71h-1.565V51.195zM78.126 26.677h19.819v19.817h-19.82V26.677zm1.652 1.652h1.563v16.514h-1.563V28.329zm2.94 0h1.626v16.514h-1.625V28.329zm3.002 0h1.626v16.514H85.72V28.329zm3.003 0h1.626v16.514h-1.626V28.329zm3.003 0h1.627v16.514h-1.627V28.329zm3.002 0h1.566v16.514h-1.566V28.329z" fill="#23A3C2"/><path d="M78.126 49.543h19.819v19.818h-19.82V49.543zm1.652 1.652h1.563V67.71h-1.563V51.195zm2.94 0h1.626V67.71h-1.625V51.195zm3.002 0h1.626V67.71H85.72V51.195zm3.003 0h1.626V67.71h-1.626V51.195zm3.003 0h1.627V67.71h-1.627V51.195zm3.002 0h1.566V67.71h-1.566V51.195z" fill="#34BBDE"/><path d="M100.993 49.543h19.818v19.818h-19.818V49.543zm1.651 1.652h1.563V67.71h-1.563V51.195zm2.94 0h1.626V67.71h-1.626V51.195zm3.003 0h1.626V67.71h-1.626V51.195zm3.003 0h1.626V67.71h-1.626V51.195zm3.002 0h1.628V67.71h-1.628V51.195zm3.003 0h1.564V67.71h-1.564V51.195z" fill="#23A3C2"/><path d="M100.993 26.677h19.818v19.817h-19.818V26.677zm1.651 1.652h1.563v16.514h-1.563V28.329zm2.94 0h1.626v16.514h-1.626V28.329zm3.003 0h1.626v16.514h-1.626V28.329zm3.003 0h1.626v16.514h-1.626V28.329zm3.002 0h1.628v16.514h-1.628V28.329zm3.003 0h1.564v16.514h-1.564V28.329zM123.859 49.543h19.818v19.818h-19.818V49.543zm1.652 1.652h1.563V67.71h-1.563V51.195zm2.94 0h1.626V67.71h-1.626V51.195zm3.002 0h1.626V67.71h-1.626V51.195zm3.003 0h1.627V67.71h-1.627V51.195zm3.003 0h1.627V67.71h-1.627V51.195zm3.003 0h1.564V67.71h-1.564V51.195z" fill="#34BBDE"/><path d="M123.859 26.677h19.818v19.817h-19.818V26.677zm1.652 1.652h1.563v16.514h-1.563V28.329zm2.94 0h1.626v16.514h-1.626V28.329zm3.002 0h1.626v16.514h-1.626V28.329zm3.003 0h1.627v16.514h-1.627V28.329zm3.003 0h1.627v16.514h-1.627V28.329zm3.003 0h1.564v16.514h-1.564V28.329z" fill="#23A3C2"/><path d="M123.859 3.81h19.818V23.63h-19.818V3.81zm1.652 1.651h1.563v16.516h-1.563V5.46zm2.94 0h1.626v16.516h-1.626V5.46zm3.002 0h1.626v16.516h-1.626V5.46zm3.003 0h1.627v16.516h-1.627V5.46zm3.003 0h1.627v16.516h-1.627V5.46zm3.003 0h1.564v16.516h-1.564V5.46z" fill="#34BBDE"/><path d="M146.725 49.543h19.818v19.818h-19.818V49.543zm1.65 1.652h1.565V67.71h-1.564V51.195zm2.94 0h1.627V67.71h-1.626V51.195zm3.004 0h1.627V67.71h-1.627V51.195zm3.002 0h1.627V67.71h-1.627V51.195zm3.004 0h1.626V67.71h-1.626V51.195zm3.002 0h1.564V67.71h-1.564V51.195z" fill="#23A3C2"/><path d="M96.704 101.492a5.468 5.468 0 1 1-.002 10.935 5.468 5.468 0 0 1 .002-10.935" fill="#D3ECEC"/><path d="M96.704 103.043c.5 0 .977.094 1.417.265a1.598 1.598 0 0 0 .798 2.98c.605 0 1.13-.335 1.402-.831a3.915 3.915 0 1 1-3.617-2.414M0 90.162h254.327c-5.537-1.404-17.52-3.302-15.544-10.56-10.07 11.652-34.353 8.175-40.482 2.43-6.824 9.898-46.554 6.135-49.325-1.576-8.556 10.041-35.067 10.041-43.623 0-2.773 7.711-42.502 11.474-49.327 1.575-6.128 5.746-30.41 9.223-40.48-2.428C17.522 86.86 5.539 88.758 0 90.163" fill="#364548"/><path d="M111.237 140.89c-13.54-6.425-20.971-15.16-25.106-24.694-5.03 1.435-11.075 2.353-18.1 2.747-2.646.148-5.43.224-8.35.224-3.368 0-6.917-.1-10.643-.297 12.417 12.41 27.692 21.964 55.976 22.138 2.088 0 4.16-.04 6.223-.118" fill="#BDD9D7"/><path d="M91.16 124.994c-1.873-2.543-3.69-5.739-5.026-8.8-5.03 1.437-11.077 2.355-18.103 2.75 4.826 2.619 11.727 5.046 23.13 6.05" fill="#D3ECEC"/></g></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/drone.svg b/go.dev/_content/images/logos/drone.svg
new file mode 100644
index 0000000..179e6f8
--- /dev/null
+++ b/go.dev/_content/images/logos/drone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 104 40" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><path d="M22.688 0C5.622 0 0 14.88 0 20.32h13.83s1.952-7.1 8.86-7.1 8.86 7.1 8.86 7.1h13.747C45.297 14.865 39.742 0 22.692 0m17.533 23.856h-8.68s-1.518 7.1-8.86 7.1-8.86-7.1-8.86-7.1h-8.52c0 1.818 6.7 14.68 17.467 14.68s17.45-10.577 17.45-14.68m-23.39-1.618a5.81 5.81 0 0 1 5.822-5.822 5.81 5.81 0 0 1 5.822 5.822 5.81 5.81 0 0 1-5.822 5.822 5.81 5.81 0 0 1-5.822-5.822zm40.393-9.592a7.35 7.35 0 0 1 2.354.386c.738.28 1.37.667 1.897 1.194s.95 1.194 1.23 2.002c.316.808.457 1.757.457 2.846 0 .95-.105 1.827-.35 2.635s-.597 1.5-1.124 2.073c-.492.597-1.124 1.054-1.862 1.37-.738.35-1.616.492-2.6.492h-5.62V12.54h5.62zm-.176 10.68a3.42 3.42 0 0 0 1.194-.211c.386-.14.738-.35 1.054-.667a3.04 3.04 0 0 0 .738-1.23c.176-.492.28-1.124.28-1.827 0-.667-.07-1.265-.176-1.792a4.1 4.1 0 0 0-.632-1.37c-.28-.386-.667-.667-1.16-.878s-1.1-.316-1.792-.316h-2.038v8.256h2.53zm10.328-7.06v1.757h.035c.105-.28.28-.562.492-.808s.457-.457.703-.632c.28-.176.562-.316.878-.422a2.96 2.96 0 0 1 .949-.141c.176 0 .35.035.562.105v2.424c-.105-.035-.28-.035-.457-.07s-.35-.035-.492-.035c-.492 0-.878.07-1.194.246s-.597.386-.808.667-.35.597-.422.95-.14.773-.14 1.194v4.286h-2.6v-9.5h2.494zm4.4 2.705c.246-.632.562-1.16.984-1.58a4.74 4.74 0 0 1 1.546-1.019c.597-.246 1.265-.35 2.002-.35s1.405.105 2.038.35c.597.246 1.124.562 1.546 1.02a4.03 4.03 0 0 1 .984 1.581c.246.632.35 1.3.35 2.073s-.105 1.44-.35 2.038-.562 1.124-.984 1.58c-.422.422-.95.773-1.546.984-.597.246-1.265.35-2.038.35-.738 0-1.405-.105-2.002-.35s-1.124-.562-1.546-.984a4.03 4.03 0 0 1-.984-1.581c-.246-.597-.35-1.3-.35-2.038 0-.773.105-1.475.35-2.073zm2.354 3.162c.07.35.2.667.386.984.176.28.422.527.703.703s.667.246 1.1.246c.457 0 .808-.07 1.124-.246a1.69 1.69 0 0 0 .703-.703c.176-.28.316-.597.386-.984.07-.35.105-.738.105-1.124s-.035-.738-.105-1.124a3.03 3.03 0 0 0-.386-.984c-.176-.28-.422-.527-.703-.703a2.22 2.22 0 0 0-1.124-.281c-.457 0-.808.105-1.1.28s-.527.422-.703.703a2.73 2.73 0 0 0-.386.984c-.07.35-.105.738-.105 1.124s.035.773.105 1.124zm11.242-5.867V17.6h.07c.316-.562.773-.95 1.3-1.194s1.054-.386 1.616-.386c.703 0 1.265.105 1.72.28a2.43 2.43 0 0 1 1.054.773 3.26 3.26 0 0 1 .527 1.23c.105.492.14 1.02.14 1.616v5.832h-2.6v-5.34c0-.773-.105-1.37-.35-1.757s-.667-.562-1.3-.562c-.703 0-1.23.2-1.546.632s-.492 1.124-.492 2.073v4.953h-2.6v-9.485zm11.207 7.202c.386.386.95.562 1.686.562.527 0 .984-.14 1.37-.386s.597-.527.703-.843h2.284c-.35 1.124-.913 1.932-1.686 2.424s-1.686.738-2.74.738c-.738 0-1.405-.105-2.002-.35s-1.1-.562-1.5-1.02-.738-.95-.95-1.58a6.14 6.14 0 0 1-.351-2.002c0-.703.105-1.37.35-1.967s.562-1.124.984-1.58.95-.808 1.546-1.054a5.17 5.17 0 0 1 1.967-.386c.808 0 1.5.14 2.108.457a4.29 4.29 0 0 1 1.475 1.265c.386.527.667 1.124.843 1.792a5.99 5.99 0 0 1 .176 2.108h-6.85c-.035.843.176 1.475.597 1.827zm2.915-5c-.316-.35-.773-.527-1.405-.527-.422 0-.773.07-1.02.2a2.02 2.02 0 0 0-.667.527 1.75 1.75 0 0 0-.351.667c-.07.246-.105.457-.105.632h4.25c-.176-.667-.386-1.16-.703-1.5z" stroke="none" fill="#252728" fill-rule="nonzero"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/dropbox-icon.svg b/go.dev/_content/images/logos/dropbox-icon.svg
new file mode 100644
index 0000000..135a794
--- /dev/null
+++ b/go.dev/_content/images/logos/dropbox-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 67 62" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><path d="M18.874.02L0 12.18l13.066 10.526L32 11.032m-32 22l18.874 12.4 13.126-11-18.934-11.736M32 34.422l13.188 11L64 33.152 50.994 22.686M64 12.28L45.188 0 32 11l18.994 11.674M32.06 36.778L18.872 47.726l-5.686-3.7V48.2L32.06 59.522 50.934 48.2v-4.174l-5.686 3.7" stroke="none" fill="#007ee5" fill-rule="nonzero"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/dropbox.png b/go.dev/_content/images/logos/dropbox.png
new file mode 100644
index 0000000..d17804a
--- /dev/null
+++ b/go.dev/_content/images/logos/dropbox.png
Binary files differ
diff --git a/go.dev/_content/images/logos/dropbox.svg b/go.dev/_content/images/logos/dropbox.svg
new file mode 100644
index 0000000..ec63303
--- /dev/null
+++ b/go.dev/_content/images/logos/dropbox.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 48"><defs><style>.cls-1{fill:none;}.cls-2{fill:#0061ff;}</style></defs><title>Dropbox</title><rect class="cls-1" width="134" height="48"/><path class="cls-2" d="M15.55,14.53l-7.78,5,7.78,5-7.78,5L0,24.42l7.78-5L0,14.53l7.78-5ZM7.73,31l7.78-5,7.77,5-7.77,5Zm7.82-6.57,7.77-5L15.55,14.5l7.73-5,7.78,5-7.78,5,7.78,5-7.78,5-7.73-5Z" transform="translate(0 -0.22)"/><path d="M37.14,14.26h6.28c4,0,7.32,2.32,7.32,7.61V23c0,5.33-3.1,7.73-7.2,7.73h-6.4Zm3.51,3V27.71h2.69c2.28,0,3.81-1.48,3.81-4.79v-.87c0-3.31-1.61-4.8-3.93-4.8Zm12,.16h2.81l.46,3.1c.53-2.11,1.9-3.22,4.38-3.22h.87v3.55H59.68c-2.85,0-3.56,1-3.56,3.81v6.12H52.65V17.41Zm9.22,7V24c0-4.46,2.85-6.9,6.74-6.9s6.74,2.44,6.74,6.9v.37c0,4.38-2.68,6.74-6.74,6.74-4.34,0-6.78-2.36-6.78-6.74Zm9.93,0V24c0-2.49-1.24-4-3.23-4s-3.23,1.36-3.23,4v.33c0,2.4,1.25,3.77,3.23,3.77s3.19-1.37,3.19-3.77Zm5.37-6.91H80L80.33,20a4.5,4.5,0,0,1,4.38-2.85c3.39,0,5.63,2.44,5.63,7v.36c0,4.39-2.48,6.7-5.63,6.7a4.35,4.35,0,0,1-4.26-2.48V35.5H77.09V17.55Zm9.72,6.91v-.29c0-2.64-1.36-4-3.18-4s-3.23,1.49-3.23,4v.25c0,2.36,1.24,3.85,3.19,3.85S86.89,26.9,86.89,24.42Zm8.65,4-.29,2.44h-3V12.94h3.4v6.83A4.36,4.36,0,0,1,100,17.08c3.18,0,5.54,2.23,5.54,6.66v.42c0,4.42-2.23,6.94-5.62,6.94a4.42,4.42,0,0,1-4.39-2.81ZM102,24.16v-.33c0-2.44-1.32-3.81-3.19-3.81s-3.22,1.53-3.22,3.85v.29c0,2.48,1.28,3.93,3.18,3.93S102,26.8,102,24.16Zm5,.2V24c0-4.47,2.86-6.91,6.75-6.91s6.74,2.44,6.74,6.91v.36c0,4.39-2.73,6.75-6.74,6.75C109.44,31.06,107,28.75,107,24.36Zm10,0V24c0-2.48-1.24-4-3.22-4s-3.23,1.37-3.23,4v.33c0,2.4,1.24,3.77,3.23,3.77S117,26.73,117,24.32Zm8.07-.49-4.68-6.41h4l2.69,4,2.73-4h4L129,23.78l5,6.94h-3.93L127,26.3l-3,4.42h-4.1l5.09-6.9Z" transform="translate(0 -0.22)"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/economist.svg b/go.dev/_content/images/logos/economist.svg
new file mode 100644
index 0000000..666cef8
--- /dev/null
+++ b/go.dev/_content/images/logos/economist.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="250"
+   height="127.55556"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     transform="translate(-35.81662,-618.39722)"
+     id="layer1">
+    <path
+       d="M 35.81662,682.17501 L 35.81662,618.39722 L 160.81662,618.39722 L 285.81662,618.39722 L 285.81662,682.17501 L 285.81662,745.95278 L 160.81662,745.95278 L 35.81662,745.95278 L 35.81662,682.17501 z M 89.69602,710.02401 C 90.855184,709.62034 92.416414,708.60572 93.331837,707.66115 L 94.069269,706.90022 L 93.715395,706.05327 L 93.361512,705.20632 L 92.533514,706.00044 C 90.927667,707.54055 88.775596,708.22901 87.036538,707.75895 C 84.23187,707.00085 82.705504,703.5339 82.705504,697.92154 C 82.705504,692.2949 84.269487,689.65189 87.60982,689.63362 C 89.615437,689.62265 90.507377,690.53458 91.146483,693.24949 C 91.393108,694.29712 91.480666,694.42031 91.89889,694.30808 C 92.15919,694.23823 92.59718,694.17971 92.87218,694.17804 C 93.362554,694.17507 93.37217,694.12406 93.37217,691.52615 L 93.37217,688.87729 L 91.761057,688.50134 C 89.283538,687.92321 86.423536,687.8282 84.710981,688.26711 C 80.034371,689.46569 77.384482,693.45344 77.375463,699.30612 C 77.367904,704.20944 79.243102,707.87508 82.605889,709.53058 C 84.783438,710.60258 87.493065,710.79115 89.69602,710.02401 z M 112.25438,710.02868 C 113.93272,709.56068 115.01937,708.97034 116.20691,707.88144 C 119.00092,705.31948 120.2532,701.22488 119.52726,697.02481 C 118.55511,691.40028 114.52714,687.95278 108.92774,687.95278 C 102.5098,687.95278 98.474626,692.32503 98.486568,699.26611 C 98.495576,704.50102 100.79286,708.2485 104.96054,709.82687 C 107.12154,710.64527 109.77943,710.71881 112.25438,710.02868 z M 107.48329,708.30392 C 105.15,706.90341 103.95847,703.38076 103.94444,697.84168 C 103.93532,694.24657 104.32059,692.52102 105.43397,691.1703 C 107.6281,688.50844 111.38592,689.63836 113.08019,693.46939 C 113.95725,695.45261 114.31042,697.39509 114.31956,700.28611 C 114.333,704.54219 113.37234,707.26096 111.47542,708.33535 C 110.26028,709.02359 108.6613,709.011 107.48329,708.30392 z M 166.81662,710.13787 C 169.17371,709.63088 171.78891,707.73225 173.01724,705.63625 C 174.34365,703.3729 174.93993,699.96469 174.49215,697.20599 C 173.61107,691.77787 169.9262,688.31662 164.7055,688.01326 C 161.10865,687.80426 158.34854,688.76637 156.28471,690.94855 C 154.35533,692.98859 153.38047,695.8234 153.37931,699.39722 C 153.3768,707.19106 159.13153,711.79092 166.81662,710.13787 z M 162.5308,708.38239 C 160.14891,707.172 158.85194,703.42889 158.84,697.73056 C 158.83141,693.63998 159.48203,691.59536 161.19629,690.32559 C 162.09951,689.65656 163.95732,689.56656 165.07665,690.13762 C 167.70758,691.47981 169.17846,695.04573 169.21687,700.175 C 169.24756,704.27038 168.38662,706.97794 166.66363,708.20482 C 165.63546,708.93694 163.77902,709.0167 162.5308,708.38239 z M 247.36529,709.88831 C 248.96922,709.29663 250.71182,707.57495 251.22189,706.07797 C 251.64294,704.84224 251.71081,702.73654 251.35975,701.80058 C 250.73585,700.1372 249.21808,698.72005 244.87387,695.74467 C 243.92758,695.09657 242.95258,694.24144 242.70721,693.84442 C 242.17371,692.9812 242.12651,691.57711 242.60788,690.88984 C 243.31956,689.87379 245.06215,689.34789 246.46528,689.72571 C 247.49637,690.00336 247.93339,690.54846 248.48743,692.24797 C 248.74411,693.03535 248.97737,693.39139 249.22823,693.3787 C 249.42962,693.36852 249.94439,693.34352 250.37218,693.32314 L 251.14995,693.28611 L 251.14995,691.30198 C 251.14995,689.90128 251.05883,689.22673 250.84005,689.00795 C 250.6696,688.8375 249.56947,688.51722 248.39532,688.29621 C 242.10637,687.11242 238.47839,689.38083 238.48545,694.49237 C 238.48937,697.33555 239.4784,698.7061 243.52279,701.47298 C 246.93678,703.80857 248.07981,705.45539 247.3378,706.96945 C 246.78728,708.09278 245.95341,708.50834 244.24982,708.50834 C 242.9008,708.50834 242.64707,708.43979 242.14778,707.94051 C 241.83549,707.62821 241.33912,706.77821 241.04477,706.05162 C 240.47834,704.65349 240.05128,704.40081 238.78977,704.71744 C 238.28009,704.84536 238.26106,704.92499 238.26106,706.9298 C 238.26106,708.33089 238.3517,709.07952 238.53883,709.22415 C 238.69161,709.34223 239.46662,709.61758 240.26106,709.83604 C 243.34403,710.68381 245.17232,710.69727 247.36529,709.88831 z M 268.39206,709.69494 C 269.59939,709.217 269.71131,709.11422 269.77738,708.42274 C 269.83933,707.77448 269.79362,707.69184 269.44679,707.82492 C 269.22544,707.90986 268.44308,708.02992 267.70823,708.0917 C 265.99713,708.23558 264.9989,707.7618 264.37217,706.50833 C 263.96039,705.6848 263.92244,705.09254 263.85584,698.45278 L 263.78393,691.28612 L 266.21695,691.28612 L 268.64994,691.28612 L 268.7781,690.64537 C 268.84857,690.29297 268.97192,689.74296 269.05219,689.42314 L 269.19812,688.84167 L 266.50738,688.84167 L 263.81662,688.84167 L 263.81662,685.95278 L 263.81662,683.06389 L 262.72505,683.06389 L 261.63346,683.06389 L 261.48723,683.92932 C 261.26583,685.23988 260.18788,687.34341 259.39646,688.00935 C 258.68477,688.6082 257.45801,689.06037 256.53883,689.06265 C 256.08715,689.06377 256.03884,689.17125 256.03884,690.175 L 256.03884,691.28612 L 257.35142,691.28612 L 258.664,691.28612 L 258.75897,698.45278 C 258.86162,706.19794 258.96775,706.97814 260.12499,708.49538 C 260.43744,708.90501 261.22088,709.50902 261.86595,709.83761 C 262.95111,710.39037 263.1899,710.42681 265.05872,710.32497 C 266.44231,710.24956 267.49237,710.05109 268.39206,709.69494 z M 70.278314,710.03858 L 71.073339,709.90706 L 71.463384,706.87436 C 71.677913,705.20638 71.907648,703.56667 71.973916,703.23056 C 72.091411,702.63462 72.068892,702.61945 71.066618,702.61945 C 70.087213,702.61945 70.03884,702.64896 70.03884,703.24652 C 70.03884,704.35933 69.363269,705.91456 68.581855,706.60065 C 67.54716,707.50912 66.574536,707.72787 63.563463,707.72931 C 59.667975,707.73118 59.943515,708.23587 59.85851,700.94328 L 59.789291,695.00498 L 62.747397,695.10787 C 66.77664,695.24801 67.291641,695.5497 67.698769,698.00834 C 67.824777,698.76932 67.898596,698.84165 68.54891,698.8414 L 69.261066,698.84114 L 69.285045,693.95252 L 69.309017,689.06389 L 68.586566,689.06389 C 67.875104,689.06389 67.860409,689.08489 67.621064,690.44369 C 67.484572,691.21857 67.196594,692.0049 66.964198,692.2373 C 66.219072,692.98243 63.80125,693.25837 60.98329,692.91989 L 59.816619,692.77976 L 59.816619,687.14405 L 59.816619,681.50833 L 62.538845,681.52541 C 64.036066,681.5348 65.658816,681.66238 66.144953,681.80891 C 67.250262,682.14206 67.943415,683.11774 68.151942,684.63393 L 68.306094,685.75469 L 69.11691,685.68708 L 69.927734,685.61944 L 69.927734,682.39723 L 69.927734,679.17501 L 59.98374,679.17501 L 50.039744,679.17501 L 50.03929,679.73527 C 50.038882,680.24437 50.161684,680.31888 51.38395,680.55116 C 54.153376,681.07747 54.038839,680.47055 54.038839,694.61945 C 54.038839,707.492 54.028121,707.60793 52.778567,708.2425 C 52.432826,708.41807 51.674951,708.63084 51.094395,708.71532 C 50.16762,708.85016 50.038843,708.93463 50.038843,709.40768 L 50.038843,709.94645 L 56.983288,710.00845 C 60.802732,710.04256 65.177733,710.09288 66.705506,710.12028 C 68.233287,710.14769 69.84105,710.11092 70.278314,710.03858 z M 135.81322,709.675 C 135.80739,709.19958 135.51494,708.94156 134.5944,708.59969 C 133.25627,708.10275 133.17706,707.675 133.16249,700.86744 C 133.14856,694.35635 133.23493,693.78607 134.44992,692.36663 C 135.37875,691.28149 136.31884,690.84167 137.7094,690.84167 C 140.81421,690.84167 141.51485,693.05686 141.31752,702.2494 C 141.19474,707.96883 141.09883,708.31332 139.51755,708.71419 C 138.87502,708.87708 138.70551,709.02784 138.70551,709.43642 L 138.70551,709.95278 L 144.27652,709.95278 L 149.84753,709.95278 L 149.77651,709.45812 C 149.72,709.06444 149.50676,708.92968 148.73223,708.79811 C 147.38391,708.56907 146.7529,708.09808 146.58333,707.19415 C 146.50471,706.77506 146.42051,703.4993 146.39622,699.9147 C 146.35954,694.50007 146.28921,693.20891 145.98061,692.28435 C 145.44943,690.69308 144.46231,689.46802 143.10565,688.71645 C 142.03429,688.12293 141.73674,688.06391 139.81662,688.06406 C 137.21079,688.06426 136.1678,688.48548 134.25472,690.31025 L 132.92773,691.57599 L 132.92528,690.48661 C 132.92393,689.88744 132.8632,689.03669 132.79031,688.59603 L 132.65779,687.79483 L 131.24663,688.09064 C 130.13926,688.32276 125.7437,688.84051 124.87218,688.84148 C 124.78051,688.84158 124.70551,689.09166 124.70551,689.39722 C 124.70551,689.86767 124.80874,689.95278 125.37931,689.95278 C 126.64739,689.95278 127.54025,690.49949 127.80003,691.43503 C 128.14077,692.66213 128.09645,706.48989 127.74852,707.50255 C 127.44127,708.39682 126.71852,708.83375 125.53883,708.83839 C 124.79898,708.84129 124.70551,708.90398 124.70551,709.39723 L 124.70551,709.95278 L 130.26106,709.95278 C 134.55917,709.95278 135.81585,709.88992 135.81322,709.675 z M 190.66541,709.47018 C 190.61465,709.12528 190.3242,708.89784 189.6474,708.67304 C 189.12656,708.50004 188.57656,708.1422 188.42517,707.87785 C 188.22931,707.53581 188.12951,705.59312 188.07909,701.14065 C 188.01085,695.11452 188.02615,694.84245 188.49455,693.75362 C 189.40077,691.64706 191.08467,690.62537 193.18587,690.90719 C 194.37377,691.06652 195.08119,691.77656 195.54579,693.27582 C 195.86978,694.32134 195.92772,695.48612 195.92772,700.95278 C 195.92772,705.66968 195.85394,707.52606 195.65249,707.87785 C 195.50112,708.1422 194.95112,708.50004 194.43028,708.67304 C 193.75347,708.89784 193.46303,709.12528 193.41228,709.47018 L 193.34126,709.95278 L 198.46783,709.95278 L 203.59439,709.95278 L 203.59439,709.40729 C 203.59439,708.96179 203.45448,708.83555 202.83114,708.71862 C 201.26435,708.42469 201.2686,708.44448 201.19588,701.11841 L 201.13069,694.55222 L 201.71776,693.35228 C 202.46479,691.8254 203.6091,691.02498 205.23809,690.8899 C 206.84247,690.75685 207.71316,691.23176 208.3361,692.57967 C 208.79661,693.57616 208.81662,693.91217 208.81662,700.6514 C 208.81662,707.23144 208.78967,707.71317 208.39722,708.14706 C 208.16655,708.40209 207.64155,708.67384 207.23055,708.75094 C 206.63002,708.86359 206.48328,708.99536 206.48328,709.42196 L 206.48328,709.95278 L 212.00803,709.95278 L 217.53277,709.95278 L 217.43162,709.42369 C 217.35063,708.99999 217.15586,708.87118 216.45397,708.77703 C 215.22544,708.61225 214.54354,708.09457 214.27333,707.12155 C 214.13718,706.63134 214.0408,703.66271 214.04008,699.93756 C 214.03873,693.00624 213.93868,692.2648 212.7527,690.39723 C 212.32761,689.72782 211.71894,689.17682 210.91158,688.73055 C 209.82246,688.12854 209.51156,688.0639 207.70551,688.0639 C 205.95979,688.0639 205.54266,688.14386 204.4247,688.69283 C 203.72024,689.03874 202.55943,689.88874 201.8451,690.58172 L 200.54634,691.84166 L 199.75796,690.58553 C 199.22054,689.72924 198.62693,689.12797 197.89311,688.69664 C 196.9139,688.12107 196.62585,688.0639 194.7055,688.0639 C 192.15621,688.0639 191.14137,688.47808 189.13162,690.33875 L 187.81662,691.55621 L 187.81357,690.14338 C 187.81191,689.36633 187.75388,688.51945 187.68462,688.26143 C 187.5623,687.80568 187.51831,687.80078 186.14153,688.08937 C 185.02961,688.32245 180.6347,688.8405 179.76106,688.84148 C 179.66939,688.84158 179.59439,689.09166 179.59439,689.39722 C 179.59439,689.85989 179.7003,689.95278 180.2279,689.95278 C 181.41006,689.95278 182.28944,690.41085 182.61829,691.19794 C 183.07941,692.30153 183.06803,706.52017 182.60514,707.628 C 182.2519,708.47343 181.57,708.84167 180.3577,708.84167 C 179.69166,708.84167 179.59439,708.91245 179.59439,709.39723 L 179.59439,709.95278 L 185.16541,709.95278 L 190.73642,709.95278 L 190.66541,709.47018 z M 233.28483,709.60128 C 233.21065,709.40794 233.14994,709.17093 233.14994,709.07461 C 233.14994,708.97829 232.68875,708.84748 232.12506,708.78394 C 230.55811,708.60733 230.22392,708.13378 230.01967,705.80054 C 229.92537,704.72316 229.8411,700.23109 229.83241,695.81816 L 229.81662,687.79466 L 228.2055,688.07462 C 227.3194,688.22861 225.44778,688.46912 224.04637,688.60911 C 222.64495,688.74911 221.46082,688.90117 221.41497,688.94702 C 221.15404,689.20795 221.68487,689.95278 222.13176,689.95278 C 223.0599,689.95278 224.04855,690.43808 224.3643,691.04867 C 224.77884,691.8503 225.02671,700.25651 224.76301,704.57039 C 224.54025,708.21435 224.36933,708.56027 222.68256,708.78064 C 221.71619,708.90689 221.38218,709.13544 221.37557,709.675 C 221.37293,709.89047 222.72326,709.95278 227.39595,709.95278 C 232.79754,709.95278 233.40579,709.91647 233.28483,709.60128 z M 228.50415,683.38643 C 230.72841,682.23623 230.46341,678.78743 228.08715,677.95963 C 224.82479,676.82315 222.70197,681.49104 225.66074,683.29512 C 226.51818,683.81792 227.6024,683.85275 228.50415,683.38643 z M 189.26106,671.91211 C 190.4289,671.62587 191.89017,670.76563 193.09484,669.65521 C 194.36602,668.48348 194.54975,668.11957 194.22735,667.412 L 193.96939,666.84582 L 192.89021,667.85527 C 190.25809,670.3173 186.94618,670.65018 184.85146,668.66321 C 183.57972,667.45692 182.49695,664.40922 182.48714,662.00833 L 182.48329,661.06389 L 188.61696,661.06389 L 194.75062,661.06389 L 194.58934,659.45804 C 194.38685,657.4417 194.01639,656.37352 193.0095,654.90277 C 191.50106,652.69943 189.36959,651.80578 186.07739,651.99636 C 181.9433,652.23568 178.8902,655.09403 177.9308,659.62333 C 177.51269,661.59718 177.51245,663.46621 177.93007,665.23755 C 178.37328,667.11744 178.98376,668.24812 180.31632,669.65709 C 182.51904,671.98614 185.6937,672.78649 189.26106,671.91211 z M 182.37365,658.48809 C 182.73401,656.34377 183.19851,655.18528 184.03216,654.35161 C 184.80283,653.58096 184.98011,653.50834 186.09094,653.50834 C 186.97958,653.50834 187.50949,653.64279 188.06153,654.00834 C 188.91632,654.57435 189.9301,656.44801 190.14874,657.86584 L 190.28952,658.77889 L 189.44196,658.92346 C 188.9758,659.00299 187.16188,659.133 185.41104,659.21239 L 182.22768,659.35674 L 182.37365,658.48809 z M 146.48329,671.23056 C 146.48329,670.67313 146.41011,670.61916 145.64995,670.61618 C 144.50141,670.61166 143.7752,670.19667 143.31696,669.28302 C 142.96232,668.57594 142.92839,667.52263 142.92807,657.21183 L 142.92773,645.91532 L 145.42772,646.07357 C 146.80273,646.1606 148.29503,646.3768 148.74394,646.55401 C 149.71015,646.93544 150.26106,647.91958 150.26106,649.26414 C 150.26106,650.15698 150.27646,650.175 151.03885,650.175 L 151.81662,650.175 L 151.81662,647.0791 L 151.81662,643.98321 L 140.14995,643.98159 L 128.48328,643.97998 L 128.4817,645.57749 C 128.48084,646.45612 128.41573,647.85694 128.33702,648.69042 L 128.19391,650.20583 L 129.06082,650.13486 C 129.92499,650.06412 129.92811,650.06038 130.04727,648.95278 C 130.11302,648.34167 130.28511,647.6287 130.42967,647.36839 C 130.84551,646.61971 132.16926,646.24205 134.98329,646.06926 L 137.59439,645.90894 L 137.59439,657.38634 C 137.59439,670.2535 137.62765,669.96548 136.0931,670.38588 C 135.63548,670.51124 135.01106,670.64009 134.70551,670.67219 C 134.29804,670.715 134.13263,670.87865 134.08499,671.28612 L 134.02004,671.84167 L 140.25166,671.84167 L 146.48329,671.84167 L 146.48329,671.23056 z M 162.48335,671.33612 C 162.4833,670.95106 162.32277,670.79846 161.80983,670.69587 C 161.43942,670.62179 160.93942,670.3108 160.69872,670.00479 C 160.28892,669.4838 160.26106,669.08215 160.26106,663.69346 C 160.26106,659.00179 160.32461,657.78642 160.605,657.11535 C 161.29889,655.45463 162.58464,654.56816 164.29947,654.56816 C 166.37179,654.56816 167.02768,655.48172 167.39919,658.88557 C 167.68894,661.54037 167.54647,668.88056 167.18782,669.77492 C 167.01388,670.20868 166.69833,670.44186 166.0486,670.61683 C 165.34241,670.80698 165.14995,670.96405 165.14995,671.35023 L 165.14995,671.84167 L 170.14995,671.84167 L 175.14995,671.84167 L 175.14995,671.34167 C 175.14995,671.0141 175.01584,670.84125 174.76106,670.84043 C 174.54718,670.83975 174.01309,670.73945 173.5742,670.61753 C 172.25244,670.25036 172.19552,669.95085 172.05414,662.61944 C 171.93284,656.32903 171.90671,656.02122 171.40819,655.00893 C 170.78497,653.74343 169.47174,652.56398 168.29252,652.21069 C 167.81908,652.06884 166.79332,651.95287 166.01305,651.95296 C 164.34238,651.95317 162.4489,652.75363 161.09439,654.03232 L 160.26106,654.81901 L 160.26106,648.93722 L 160.26106,643.05542 L 159.76106,643.16486 C 158.33687,643.47657 156.59058,643.71218 154.647,643.85485 C 153.29777,643.95389 152.48456,644.10678 152.48668,644.26101 C 152.49347,644.75413 152.83377,644.99785 153.7055,645.13388 C 154.7848,645.30231 155.30265,645.88337 155.48366,647.12902 C 155.55837,647.64321 155.58885,652.86843 155.55139,658.74064 C 155.47379,670.90603 155.54388,670.44325 153.73785,670.7141 C 152.83544,670.84943 152.31853,671.28457 152.57258,671.69506 C 152.62248,671.7757 154.87283,671.84167 157.57336,671.84167 L 162.48341,671.84167 L 162.48335,671.33612 z "
+       style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-opacity:1"
+       id="path2270" />
+  </g>
+</svg>
diff --git a/go.dev/_content/images/logos/etcd.svg b/go.dev/_content/images/logos/etcd.svg
new file mode 100644
index 0000000..4f38f91
--- /dev/null
+++ b/go.dev/_content/images/logos/etcd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="2500" height="887" viewBox="0 0 288 102.17"><title>etcd</title><path d="M41.14 53.94a5.86 5.86 0 1 1-5.86-5.86 5.86 5.86 0 0 1 5.86 5.86zM48.72 53.94a5.86 5.86 0 1 0 5.86-5.86 5.86 5.86 0 0 0-5.86 5.86z" fill="#419eda"/><path d="M88.62 60.3h-1.29a16.92 16.92 0 0 1-7.44-1.73 69.1 69.1 0 0 0 1-13.16 68.11 68.11 0 0 0-8.52-10.1 16.92 16.92 0 0 1 6-6.43l1.1-.68-.86-1a44.86 44.86 0 0 0-15.66-11.35l-1.19-.52-.3 1.26a16.88 16.88 0 0 1-4.25 7.71 68.13 68.13 0 0 0-12.27-5.06 67.89 67.89 0 0 0-12.26 5 16.84 16.84 0 0 1-4.23-7.69l-.31-1.26-1.19.52a45.29 45.29 0 0 0-15.67 11.46l-.86 1 1.1.68a16.9 16.9 0 0 1 6 6.4A68.62 68.62 0 0 0 9 45.38a69 69 0 0 0 1 13.25 16.87 16.87 0 0 1-7.4 1.72H1.3L0 60.19l.12 1.29a44.59 44.59 0 0 0 6 18.44L6.8 81l1-.84a16.86 16.86 0 0 1 8-3.74 68.5 68.5 0 0 0 6.8 11.18 69.19 69.19 0 0 0 12.95 3.18 16.83 16.83 0 0 1-1.08 8.83l-.47 1.2 1.26.28a45.13 45.13 0 0 0 9.7 1.07l9.7-1.07 1.26-.28-.49-1.2a16.81 16.81 0 0 1-1.07-8.85 69.2 69.2 0 0 0 12.9-3.17 68.2 68.2 0 0 0 6.84-11.14 16.9 16.9 0 0 1 8 3.74l1 .83.66-1.11a44.48 44.48 0 0 0 6-18.44l.12-1.29zm-29.8 15.76a52.37 52.37 0 0 1-27.78 0 53.14 53.14 0 0 1-8.45-26.26 52.88 52.88 0 0 1 10.07-9.58 53.68 53.68 0 0 1 12.28-6.68 53.85 53.85 0 0 1 12.25 6.66 53.28 53.28 0 0 1 10.11 9.64 53.53 53.53 0 0 1-2.53 13.68 53.8 53.8 0 0 1-5.95 12.54z" fill="#419eda"/><path d="M125.55 25.41c14.73 0 23 10.57 23 27.07a34.44 34.44 0 0 1-.36 5.34h-39c.71 12.47 8.2 20.31 19.24 20.31a26.08 26.08 0 0 0 14.37-4.51l3.53 6.38a34.36 34.36 0 0 1-19 5.94C111.9 86 99.67 74.69 99.67 55.81s12.7-30.4 25.88-30.4zm14.49 26c0-11.76-5.23-18.29-14.25-18.29-8.08 0-15.44 6.65-16.62 18.29H140zM159.63 34.79h-8.55v-7.36l9-.59 1.19-16.15h8.19v16.15H185v8h-15.51v32.02c0 7.13 2.26 11.16 8.91 11.16a20.92 20.92 0 0 0 6.53-1.55l1.9 7.36A35.63 35.63 0 0 1 176.14 86c-12.35 0-16.51-7.84-16.51-19.24V34.79zM216.87 25.41a23.79 23.79 0 0 1 16.86 6.89l-4.87 6.29c-3.44-3-7-5.1-11.64-5.1-10.45 0-18 9-18 22.32S206.42 77.9 217 77.9c5.46 0 10.1-2.73 13.54-5.82l4.39 6.41A28.58 28.58 0 0 1 216.16 86c-15.32 0-27.07-11-27.07-30.16-.01-19.39 12.91-30.43 27.78-30.43zM262.47 25.41c6.65 0 11 2.49 16.15 6.65l-.48-9.86V0H288v84.55h-8.07l-.83-6.77h-.36c-4.51 4.39-10.69 8.22-17.46 8.22-14.48 0-23.86-11-23.86-30.19 0-18.81 11.87-30.4 25.05-30.4zm.95 52.37c5.34 0 10-2.61 14.73-8V39.66c-4.87-4.39-9.26-6.06-14-6.06-9.26 0-16.62 8.9-16.62 22.09-.02 13.78 5.8 22.09 15.89 22.09z"/></svg>
diff --git a/go.dev/_content/images/logos/facebook.png b/go.dev/_content/images/logos/facebook.png
new file mode 100644
index 0000000..5936268
--- /dev/null
+++ b/go.dev/_content/images/logos/facebook.png
Binary files differ
diff --git a/go.dev/_content/images/logos/firebase.svg b/go.dev/_content/images/logos/firebase.svg
new file mode 100644
index 0000000..421d452
--- /dev/null
+++ b/go.dev/_content/images/logos/firebase.svg
@@ -0,0 +1,2 @@
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="23 6 469 132"><defs><linearGradient id="a" x1="-3.49%" x2="100.83%" y1="17.02%" y2="92.9%"><stop offset="0%" stop-color="#fff" stop-opacity=".1"/><stop offset="14%" stop-color="#fff" stop-opacity=".08"/><stop offset="61%" stop-color="#fff" stop-opacity=".02"/><stop offset="100%" stop-color="#fff" stop-opacity="0"/></linearGradient><path id="b" d="M106.687 35.274c-.186-1.098-.967-2-2.024-2.338s-2.215-.057-3 .73l-15.416 15.5-12.12-23.145c-.513-.98-1.525-1.592-2.627-1.592s-2.114.613-2.627 1.591l-6.628 12.656L45.62 7.573a2.966 2.966 0 00-5.552.953L24 111.7l42.973 24.165a8.882 8.882 0 008.683 0L119 111.701l-12.313-76.427z"/></defs><path opacity=".54" d="M163.773 106.518H155V38.765h39.844v8.324h-31.07v22.244H191.8v8.132h-28.025v29.053zm47.568-58.002c-2.092 2.085-5.376 2.413-7.843.782s-3.431-4.764-2.3-7.483 4.039-4.268 6.947-3.697 5.004 3.102 5.006 6.044a5.892 5.892 0 01-1.818 4.354h.008zm0 58.002h-8.774V60.152h8.774v46.366zm19.251 0h-8.773V60.152h8.386v7.57h.38a11.908 11.908 0 015.481-6.247 15.767 15.767 0 018.059-2.461 16.822 16.822 0 016.576 1.138l-3.337 8.132a13.355 13.355 0 00-4.67-.666 11.5 11.5 0 00-8.437 3.741c-2.448 2.494-3.672 5.759-3.672 9.795l.007 25.364zm44.15 1.478c-7.056 0-12.79-2.333-17.204-7s-6.624-10.554-6.629-17.66a25.415 25.415 0 016.435-17.41 20.925 20.925 0 0116.444-7.29c6.926 0 12.472 2.24 16.638 6.72s6.246 10.473 6.24 17.978l-.097 1.612h-36.903c.254 4.667 1.827 8.363 4.722 11.089a14.362 14.362 0 0010.15 4.066c6.29 0 10.548-2.65 12.773-7.947l7.82 3.215a20.823 20.823 0 01-7.53 9.034c-3.5 2.395-7.787 3.593-12.862 3.593zm12.586-30.31c-.19-2.65-1.413-5.174-3.672-7.57s-5.618-3.567-10.076-3.518a12.635 12.635 0 00-8.438 3.031 15.445 15.445 0 00-4.908 8.132l27.094-.074zm41.035 30.31a19.962 19.962 0 01-9.547-2.218 16.135 16.135 0 01-6.338-5.677h-.38v6.417h-8.393V38.765h8.773v21.387l-.38 6.431h.38a16.133 16.133 0 016.338-5.677 19.968 19.968 0 019.547-2.27c6.038 0 11.251 2.366 15.64 7.097s6.581 10.599 6.576 17.602-2.192 12.87-6.576 17.601-9.597 7.085-15.64 7.06zm-1.43-7.947a13.996 13.996 0 0010.486-4.59c2.925-3.061 4.387-7.115 4.387-12.161s-1.462-9.1-4.387-12.161c-2.702-2.915-6.507-4.578-10.498-4.587s-7.804 1.639-10.518 4.542c-2.89 3.026-4.335 7.095-4.335 12.205s1.46 9.192 4.379 12.242a14.02 14.02 0 0010.516 4.547l-.03-.037zm45.981 7.947c-4.965 0-9.11-1.42-12.437-4.258s-4.995-6.591-5.005-11.259c0-5.046 1.971-9.004 5.914-11.872s8.803-4.303 14.582-4.303c5.149 0 9.37.947 12.66 2.84V77.82a10.314 10.314 0 00-3.53-8.184 12.719 12.719 0 00-8.66-3.038 13.53 13.53 0 00-6.912 1.797 9.29 9.29 0 00-4.245 4.923l-8.006-3.408c1.082-2.784 3.212-5.367 6.4-7.747s7.373-3.564 12.586-3.549c5.958 0 10.923 1.725 14.895 5.175s5.943 8.339 5.913 14.667v28.062h-8.415v-6.432h-.38c-3.5 5.273-8.617 7.9-15.35 7.9zm1.43-7.947a14.333 14.333 0 009.876-3.985 12.441 12.441 0 004.468-9.506c-2.482-2.02-6.206-3.031-11.171-3.031-4.26 0-7.47.914-9.63 2.742a8.215 8.215 0 00-3.24 6.432 6.182 6.182 0 002.98 5.396 11.845 11.845 0 006.718 1.989v-.037zm48.521 7.947c-5.213 0-9.518-1.262-12.914-3.785a22.417 22.417 0 01-7.447-9.462l7.82-3.216c2.482 5.806 6.702 8.708 12.66 8.708 2.367.097 4.707-.53 6.703-1.796a5.498 5.498 0 002.622-4.731c0-3.026-2.13-5.076-6.4-6.15l-9.436-2.27a22.516 22.516 0 01-8.483-4.303 10.32 10.32 0 01-4.007-8.56c0-4.1 1.827-7.427 5.482-9.98a22.132 22.132 0 0113.01-3.83 21.82 21.82 0 0111.052 2.802 15.774 15.774 0 016.956 7.999l-7.618 3.09c-1.713-4.1-5.273-6.15-10.68-6.15-2.3-.077-4.576.481-6.576 1.611a4.897 4.897 0 00-2.667 4.354c0 2.652 2.066 4.45 6.197 5.397l9.242 2.18c4.384.986 7.626 2.711 9.727 5.175a12.513 12.513 0 013.142 8.324 12.866 12.866 0 01-5.146 10.409c-3.43 2.79-7.847 4.184-13.249 4.184zm47.187 0c-7.055 0-12.79-2.333-17.203-7s-6.624-10.567-6.629-17.698a25.415 25.415 0 016.435-17.41 20.959 20.959 0 0116.466-7.252c6.95 0 12.497 2.24 16.638 6.72S491.98 75.83 492 83.335l-.097 1.611H454.97c.253 4.667 1.827 8.364 4.722 11.09a14.363 14.363 0 0010.173 4.05c6.29 0 10.548-2.65 12.773-7.947l7.82 3.216a20.815 20.815 0 01-7.53 9.033c-3.5 2.405-7.793 3.608-12.877 3.608zm12.587-30.31c-.189-2.65-1.413-5.174-3.672-7.57s-5.613-3.567-10.061-3.518a12.643 12.643 0 00-8.438 3.031 15.445 15.445 0 00-4.908 8.132l27.079-.074z"/><path fill="#ffa000" d="M23.833 111.719L39.966 8.49a2.98 2.98 0 015.57-.946L62.22 38.662 68.87 26a2.98 2.98 0 015.273 0l45.023 85.719H23.833z"/><path fill="#f57c00" d="M79.566 71.507l-17.354-32.86-38.379 73.072 55.733-40.212z"/><path fill="#ffca28" d="M119.167 111.719l-12.356-76.46c-.187-1.099-.97-2-2.032-2.34s-2.222-.058-3.01.73l-77.936 78.069L66.957 135.9a8.937 8.937 0 008.714 0l43.496-24.183z"/><path fill="#fff" fill-opacity=".2" d="M106.81 35.258c-.186-1.098-.97-2-2.031-2.34s-2.223-.057-3.01.73L86.3 49.157 74.137 26a2.98 2.98 0 00-5.274 0l-6.65 12.662L45.53 7.545a2.98 2.98 0 00-5.571.953l-16.125 103.22h-.052l.052.06.425.209 77.488-77.578a2.98 2.98 0 015.05 1.609l12.251 75.775.12-.074-12.356-76.46zm-82.835 76.32l15.99-102.35a2.98 2.98 0 015.572-.953L62.22 39.392l6.65-12.662a2.98 2.98 0 015.273 0L86.06 49.395l-62.086 62.182z"/><path fill="#a52714" opacity=".2" d="M75.67 135.172a8.937 8.937 0 01-8.713 0l-43.02-24.116-.104.663 43.124 24.176a8.937 8.937 0 008.714 0l43.495-24.176-.111-.685-43.384 24.138z"/><use fill="url(#a)" xlink:href="#b"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/github.svg b/go.dev/_content/images/logos/github.svg
new file mode 100644
index 0000000..977cf9d
--- /dev/null
+++ b/go.dev/_content/images/logos/github.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 width="438.549px" height="438.549px" viewBox="0 0 438.549 438.549" style="enable-background:new 0 0 438.549 438.549;"

+	 xml:space="preserve">

+<g>

+	<path d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365

+		c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63

+		c0,47.78,13.94,90.745,41.827,128.906c27.884,38.164,63.906,64.572,108.063,79.227c5.14,0.954,8.945,0.283,11.419-1.996

+		c2.475-2.282,3.711-5.14,3.711-8.562c0-0.571-0.049-5.708-0.144-15.417c-0.098-9.709-0.144-18.179-0.144-25.406l-6.567,1.136

+		c-4.187,0.767-9.469,1.092-15.846,1c-6.374-0.089-12.991-0.757-19.842-1.999c-6.854-1.231-13.229-4.086-19.13-8.559

+		c-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559

+		c-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-0.951-2.568-2.098-3.711-3.429c-1.142-1.331-1.997-2.663-2.568-3.997

+		c-0.572-1.335-0.098-2.43,1.427-3.289c1.525-0.859,4.281-1.276,8.28-1.276l5.708,0.853c3.807,0.763,8.516,3.042,14.133,6.851

+		c5.614,3.806,10.229,8.754,13.846,14.842c4.38,7.806,9.657,13.754,15.846,17.847c6.184,4.093,12.419,6.136,18.699,6.136

+		c6.28,0,11.704-0.476,16.274-1.423c4.565-0.952,8.848-2.383,12.847-4.285c1.713-12.758,6.377-22.559,13.988-29.41

+		c-10.848-1.14-20.601-2.857-29.264-5.14c-8.658-2.286-17.605-5.996-26.835-11.14c-9.235-5.137-16.896-11.516-22.985-19.126

+		c-6.09-7.614-11.088-17.61-14.987-29.979c-3.901-12.374-5.852-26.648-5.852-42.826c0-23.035,7.52-42.637,22.557-58.817

+		c-7.044-17.318-6.379-36.732,1.997-58.24c5.52-1.715,13.706-0.428,24.554,3.853c10.85,4.283,18.794,7.952,23.84,10.994

+		c5.046,3.041,9.089,5.618,12.135,7.708c17.705-4.947,35.976-7.421,54.818-7.421s37.117,2.474,54.823,7.421l10.849-6.849

+		c7.419-4.57,16.18-8.758,26.262-12.565c10.088-3.805,17.802-4.853,23.134-3.138c8.562,21.509,9.325,40.922,2.279,58.24

+		c15.036,16.18,22.559,35.787,22.559,58.817c0,16.178-1.958,30.497-5.853,42.966c-3.9,12.471-8.941,22.457-15.125,29.979

+		c-6.191,7.521-13.901,13.85-23.131,18.986c-9.232,5.14-18.182,8.85-26.84,11.136c-8.662,2.286-18.415,4.004-29.263,5.146

+		c9.894,8.562,14.842,22.077,14.842,40.539v60.237c0,3.422,1.19,6.279,3.572,8.562c2.379,2.279,6.136,2.95,11.276,1.995

+		c44.163-14.653,80.185-41.062,108.068-79.226c27.88-38.161,41.825-81.126,41.825-128.906

+		C438.536,184.851,428.728,148.168,409.132,114.573z"/>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+</svg>

diff --git a/go.dev/_content/images/logos/gokit.png b/go.dev/_content/images/logos/gokit.png
new file mode 100644
index 0000000..4c47041
--- /dev/null
+++ b/go.dev/_content/images/logos/gokit.png
Binary files differ
diff --git a/go.dev/_content/images/logos/google-cloud.png b/go.dev/_content/images/logos/google-cloud.png
new file mode 100644
index 0000000..80a4782
--- /dev/null
+++ b/go.dev/_content/images/logos/google-cloud.png
Binary files differ
diff --git a/go.dev/_content/images/logos/google-cloud.svg b/go.dev/_content/images/logos/google-cloud.svg
new file mode 100644
index 0000000..49cd9f5
--- /dev/null
+++ b/go.dev/_content/images/logos/google-cloud.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 113 54" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M60.644 7.94l1.144.02 3.108-3.108.15-1.317C62.576 1.337 59.326 0 55.77 0c-6.44 0-11.876 4.382-13.486 10.318.34-.237 1.065-.06 1.065-.06l6.212-1.022s.32-.53.48-.497a7.76 7.76 0 0 1 10.605-.8z" fill="#ea4335"></path><path d="M69.274 10.33a13.99 13.99 0 0 0-4.216-6.796l-4.402 4.402a7.75 7.75 0 0 1 2.895 6.039v.777c2.142 0 3.88 1.743 3.88 3.88a3.89 3.89 0 0 1-3.88 3.88H55.79l-.777.78v4.658l.777.773h7.762c5.565-.015 10.072-4.525 10.083-10.1-.004-3.436-1.736-6.48-4.37-8.303z" fill="#4285f4"></path><path d="M48.008 28.73h7.76v-6.212h-7.76a3.84 3.84 0 0 1-1.597-.347l-1.12.343-3.108 3.108-.272 1.05a9.96 9.96 0 0 0 6.098 2.06z" fill="#34a853"></path><path d="M48.008 8.542c-5.57.01-10.085 4.523-10.094 10.094a10.08 10.08 0 0 0 4 8.04l4.5-4.5a3.88 3.88 0 0 1-2.288-3.538c0-2.142 1.743-3.88 3.88-3.88a3.89 3.89 0 0 1 3.538 2.288l4.5-4.5c-1.846-2.43-4.76-4-8.04-4z" fill="#fbbc05"></path><path d="M7.774 48.304c-2.12 0-3.94-.75-5.474-2.25S0 42.75 0 40.646s.765-3.908 2.3-5.408 3.357-2.25 5.474-2.25a7.32 7.32 0 0 1 5.249 2.11l-1.477 1.477a5.32 5.32 0 0 0-3.773-1.495c-1.53 0-2.83.54-3.896 1.627a5.41 5.41 0 0 0-1.597 3.941c0 1.546.53 2.857 1.597 3.94a5.25 5.25 0 0 0 3.896 1.627c1.558 0 2.845-.5 3.87-1.534.6-.6 1-1.5 1.14-2.635H7.777v-2.092h7.044c.075.372.1.8.1 1.3 0 2.056-.603 3.686-1.813 4.895-1.372 1.435-3.15 2.15-5.345 2.15zm16.37-1.4c-.96.94-2.13 1.4-3.512 1.4s-2.554-.47-3.512-1.4-1.438-2.113-1.438-3.52.48-2.58 1.438-3.52 2.13-1.4 3.512-1.4 2.554.47 3.512 1.4 1.438 2.116 1.438 3.52-.48 2.58-1.438 3.52zm-5.474-1.38a2.63 2.63 0 0 0 1.963.849c.76 0 1.414-.282 1.963-.85s.822-1.28.822-2.14c0-.87-.27-1.588-.813-2.15s-1.198-.84-1.972-.84a2.64 2.64 0 0 0-1.972.84c-.543.56-.813 1.276-.813 2.15 0 .858.273 1.573.822 2.14zm16.273 1.38c-.96.94-2.13 1.4-3.512 1.4s-2.554-.47-3.512-1.4-1.438-2.113-1.438-3.52.48-2.58 1.438-3.52 2.13-1.4 3.512-1.4 2.554.47 3.512 1.4 1.438 2.116 1.438 3.52-.48 2.58-1.438 3.52zm-5.474-1.38a2.63 2.63 0 0 0 1.963.849c.76 0 1.414-.282 1.963-.85s.822-1.28.822-2.14c0-.87-.27-1.588-.813-2.15s-1.198-.84-1.972-.84a2.64 2.64 0 0 0-1.972.84c-.543.56-.813 1.276-.813 2.15 0 .858.273 1.573.822 2.14zm12.573 7.22c-1.095 0-2.017-.294-2.764-.88s-1.282-1.264-1.606-2.038l1.888-.783c.198.474.5.885.933 1.234s.94.522 1.552.522c.822 0 1.468-.25 1.933-.747s.7-1.216.7-2.15v-.7h-.075c-.6.747-1.477 1.122-2.596 1.122-1.258 0-2.36-.48-3.307-1.438a4.76 4.76 0 0 1-1.42-3.476 4.82 4.82 0 0 1 1.42-3.503c.945-.963 2.05-1.447 3.307-1.447.56 0 1.068.105 1.522.318s.813.474 1.074.783h.075v-.794h2.056v8.857c0 1.72-.438 3.004-1.318 3.86-.88.85-2.002 1.28-3.373 1.28zm.15-6.372a2.41 2.41 0 0 0 1.879-.849c.504-.567.756-1.273.756-2.122 0-.858-.252-1.576-.756-2.15a2.4 2.4 0 0 0-1.879-.858c-.76 0-1.408.288-1.942.858s-.804 1.288-.804 2.15c0 .846.267 1.555.804 2.122s1.183.85 1.942.85zm8.202-12.865v14.5h-2.167v-14.5zm5.94 14.796c-1.396 0-2.56-.474-3.494-1.42s-1.402-2.116-1.402-3.512c0-1.444.45-2.63 1.354-3.55a4.45 4.45 0 0 1 3.298-1.384c.597 0 1.153.108 1.663.327a3.92 3.92 0 0 1 1.27.84 5.84 5.84 0 0 1 .804.999 6.12 6.12 0 0 1 .486.972l.225.56-6.594 2.732c.5.996 1.3 1.495 2.392 1.495.996 0 1.807-.453 2.428-1.363l1.68 1.122c-.375.56-.903 1.065-1.588 1.513s-1.528.67-2.524.67zm-2.746-5.08l4.4-1.83c-.126-.312-.354-.564-.7-.756a2.26 2.26 0 0 0-1.14-.288c-.636 0-1.23.26-1.783.783s-.82 1.222-.795 2.092zm18.33 5.08c-1.97 0-3.62-.666-4.952-2s-2-2.995-2-4.988.666-3.656 2-4.988 2.983-2 4.952-2c2.017 0 3.656.73 4.913 2.185l-1.195 1.16c-.9-1.134-2.15-1.7-3.72-1.7-1.46 0-2.686.492-3.7 1.477s-1.504 2.272-1.504 3.866.5 2.884 1.504 3.87 2.233 1.477 3.7 1.477c1.606 0 2.977-.648 4.1-1.942l1.195 1.195a6.51 6.51 0 0 1-2.3 1.747 7.02 7.02 0 0 1-3.004.642zm8.556-.296h-1.72V34.63h1.72zm2.803-8.06c.885-.927 2-1.393 3.382-1.393s2.497.465 3.382 1.393 1.327 2.1 1.327 3.485-.44 2.557-1.327 3.485-2 1.393-3.382 1.393-2.497-.465-3.382-1.393-1.327-2.1-1.327-3.485.44-2.557 1.327-3.485zm1.28 5.883c.6.603 1.294.906 2.1.906s1.5-.303 2.1-.906.888-1.405.888-2.4-.297-1.798-.888-2.4-1.294-.906-2.1-.906-1.5.303-2.1.906-.888 1.405-.888 2.4.297 1.798.888 2.4zm16.32 2.177h-1.645v-1.27h-.075c-.26.435-.66.807-1.195 1.1s-1.1.46-1.7.46c-1.147 0-2.014-.348-2.605-1.047s-.888-1.633-.888-2.803V38.84h1.72v5.324c0 1.708.753 2.56 2.26 2.56a2.1 2.1 0 0 0 1.738-.858 3.13 3.13 0 0 0 .672-1.981V38.84h1.72v9.157zm5.828.297c-1.183 0-2.206-.468-3.064-1.402s-1.288-2.092-1.288-3.476.43-2.542 1.288-3.476 1.882-1.402 3.064-1.402c.696 0 1.324.15 1.88.447s.97.672 1.243 1.122h.075l-.075-1.27v-4.22h1.72v13.38h-1.645v-1.27h-.075c-.273.447-.687.822-1.243 1.122-.555.294-1.183.444-1.88.444zm.28-1.57a2.74 2.74 0 0 0 2.065-.897c.567-.597.85-1.402.85-2.4s-.282-1.813-.85-2.4a2.74 2.74 0 0 0-2.065-.897c-.798 0-1.483.303-2.056.906s-.858 1.405-.858 2.4.285 1.798.858 2.4a2.73 2.73 0 0 0 2.056.906z" fill="#5f6368"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/google-fourcolor.svg b/go.dev/_content/images/logos/google-fourcolor.svg
new file mode 100644
index 0000000..95f5e7d
--- /dev/null
+++ b/go.dev/_content/images/logos/google-fourcolor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 109 37" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M26.383 12.424h-12.52v3.715h8.88c-.44 5.2-4.773 7.432-8.865 7.432a9.76 9.76 0 0 1-9.802-9.891c0-5.624 4.354-9.954 9.814-9.954 4.212 0 6.694 2.685 6.694 2.685l2.6-2.694S19.844 0 13.754 0C6 0 0 6.545 0 13.614c0 6.927 5.643 13.682 13.95 13.682 7.307 0 12.656-5.006 12.656-12.408 0-1.562-.227-2.464-.227-2.464z" fill="#4885ed"></path><use xlink:href="#C" fill="#db3236"></use><use xlink:href="#C" x="19.18" fill="#f4c20d"></use><path d="M74.634 9.743c-4.716 0-8.422 4.13-8.422 8.766 0 5.28 4.297 8.782 8.34 8.782 2.5 0 3.83-.993 4.8-2.132v1.73c0 3.027-1.838 4.84-4.612 4.84-2.68 0-4.024-1.993-4.5-3.123l-3.372 1.4c1.196 2.53 3.604 5.167 7.9 5.167 4.7 0 8.262-2.953 8.262-9.147V10.27h-3.664v1.486c-1.13-1.22-2.678-2.013-4.73-2.013zm.34 3.44c2.312 0 4.686 1.974 4.686 5.345 0 3.427-2.37 5.315-4.737 5.315-2.514 0-4.853-2.04-4.853-5.283 0-3.368 2.43-5.378 4.904-5.378z" fill="#4885ed"></path><path d="M99.406 9.722c-4.448 0-8.183 3.54-8.183 8.76 0 5.526 4.163 8.803 8.6 8.803 3.712 0 6-2.03 7.35-3.85l-3.033-2.018c-.787 1.22-2.103 2.415-4.298 2.415-2.466 0-3.6-1.35-4.303-2.66l11.763-4.88-.6-1.43c-1.136-2.8-3.787-5.14-7.295-5.14zm.153 3.374c1.603 0 2.756.852 3.246 1.874l-7.856 3.283c-.34-2.542 2.07-5.157 4.6-5.157z" fill="#db3236"></path><path d="M85.606 26.765h3.864V.908h-3.864z" fill="#3cba54"></path></g></symbol><defs><style type="text/css"></style><path id="C" d="M36.64 9.733c-5.138 0-8.82 4.017-8.82 8.7 0 4.754 3.57 8.845 8.88 8.845 4.806 0 8.743-3.673 8.743-8.743 0-5.8-4.58-8.803-8.803-8.803zm.05 3.446c2.526 0 4.92 2.043 4.92 5.334 0 3.22-2.384 5.322-4.932 5.322-2.8 0-5-2.242-5-5.348 0-3.04 2.18-5.308 5.02-5.308z"></path></defs></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/google-g.svg b/go.dev/_content/images/logos/google-g.svg
new file mode 100644
index 0000000..9cdb8e4
--- /dev/null
+++ b/go.dev/_content/images/logos/google-g.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 85 85" fill="#fff" fill-rule="evenodd" width="300" height="300" stroke="#000" stroke-linecap="round" stroke-linejoin="round" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="2.5" y="2.5"></use><symbol id="A" overflow="visible"><path d="M62.1 47.672H40V32.603h39.323A40.53 40.53 0 0 1 80 40a40.51 40.51 0 0 1-.729 7.671 39.85 39.85 0 0 1-12.692 22.27L52.675 59.34a23.53 23.53 0 0 0 9.425-11.668z" fill="#4285f4"></path><path d="M54.95 21.214L66.327 9.837C59.302 3.706 50.1 0 40 0A39.91 39.91 0 0 0 4.143 22.197L17.485 32.46A23.51 23.51 0 0 1 40 15.89c5.686 0 10.89 1.994 14.95 5.323z" fill="#ea4335"></path><path d="M17.708 47.13L3.965 57.438C1.423 52.173 0 46.26 0 40c0-6.404 1.5-12.447 4.143-17.803L17.485 32.46c-.68 2.208-1.047 4.556-1.047 6.992 0 2.69.446 5.273 1.27 7.678z" fill="#fbbc05"></path><path d="M17.71 47.13L3.965 57.438A39.91 39.91 0 0 0 40.001 80a39.87 39.87 0 0 0 26.579-10.059L52.675 59.34C49.02 61.667 44.673 63.014 40 63.014A23.51 23.51 0 0 1 17.709 47.13z" fill="#34a853"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/google.svg b/go.dev/_content/images/logos/google.svg
new file mode 100644
index 0000000..3b2e94b
--- /dev/null
+++ b/go.dev/_content/images/logos/google.svg
@@ -0,0 +1,26 @@
+<svg version="1.1" id="GoogleLogo_x5F_FullColor_x5F_rgb_21_"

+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="359.4px"

+	 height="118.38px" viewBox="0 0 359.4 118.38" enable-background="new 0 0 359.4 118.38" xml:space="preserve">

+<g id="_x33_60x119px">

+	<path fill="#4285F4" d="M88.77,41.5c0.45,2.79,0.64,5.55,0.64,8.12c0,9.41-2.58,21.06-10.86,29.34

+		c-8.06,8.4-18.37,12.88-32.03,12.88C21.2,91.84,0,71.23,0,45.92S21.2,0,46.51,0c14,0,23.97,5.49,31.47,12.66l-8.85,8.85

+		c-5.38-5.04-12.66-8.96-22.62-8.96c-18.48,0-32.84,14.9-32.84,33.38c0,18.48,14.36,33.38,32.84,33.38

+		c11.98,0,18.82-4.82,23.18-9.18c3.58-3.58,6.02-9.01,6.91-16.06h-30.1V41.5L88.77,41.5z"/>

+	<path fill="#E94235" d="M153.08,62.27c0,17.02-13.33,29.57-29.68,29.57c-16.35,0-29.68-12.54-29.68-29.57

+		c0-17.14,13.33-29.57,29.68-29.57C139.76,32.7,153.08,45.14,153.08,62.27z M140.09,62.27c0-10.64-7.73-17.92-16.69-17.92

+		s-16.69,7.28-16.69,17.92c0,10.53,7.73,17.92,16.69,17.92S140.09,72.8,140.09,62.27z"/>

+	<path fill="#FABB05" d="M217.08,62.27c0,17.02-13.33,29.57-29.68,29.57c-16.35,0-29.68-12.54-29.68-29.57

+		c0-17.14,13.33-29.57,29.68-29.57C203.76,32.7,217.08,45.14,217.08,62.27z M204.09,62.27c0-10.64-7.73-17.92-16.69-17.92

+		s-16.69,7.28-16.69,17.92c0,10.53,7.73,17.92,16.69,17.92S204.09,72.8,204.09,62.27z"/>

+	<path fill="#4285F4" d="M278.4,34.5v53.09c0,21.84-12.88,30.8-28.11,30.8c-14.34,0-22.96-9.63-26.21-17.47l11.31-4.7

+		c2.02,4.82,6.94,10.53,14.9,10.53c9.74,0,15.79-6.05,15.79-17.36v-4.26h-0.45c-2.91,3.58-8.51,6.72-15.57,6.72

+		c-14.78,0-28.34-12.88-28.34-29.46c0-16.69,13.55-29.68,28.34-29.68c7.06,0,12.66,3.14,15.57,6.61h0.45V34.5H278.4z M266.98,62.38

+		c0-10.42-6.94-18.03-15.79-18.03c-8.96,0-16.46,7.62-16.46,18.03c0,10.3,7.5,17.81,16.46,17.81

+		C260.04,80.19,266.98,72.69,266.98,62.38z"/>

+	<path fill="#34A853" d="M300.15,3.14v86.91H287.4V3.14H300.15z"/>

+	<path fill="#E94235" d="M348.76,72.02l10.08,6.72c-3.25,4.82-11.09,13.1-24.64,13.1c-16.8,0-29-12.99-29-29.57

+		c0-17.58,12.31-29.57,27.54-29.57c15.34,0,22.85,12.21,25.31,18.82l1.34,3.36l-39.54,16.35c3.02,5.94,7.73,8.96,14.34,8.96

+		C340.81,80.19,345.4,76.94,348.76,72.02z M317.74,61.38l26.43-10.98c-1.46-3.7-5.82-6.27-10.98-6.27

+		C326.59,44.13,317.4,49.95,317.74,61.38z"/>

+</g>

+</svg>

diff --git a/go.dev/_content/images/logos/govuk.svg b/go.dev/_content/images/logos/govuk.svg
new file mode 100644
index 0000000..2814f3d
--- /dev/null
+++ b/go.dev/_content/images/logos/govuk.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 46 50" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M40.686 8.85c1.303.038 2.337 1.1 2.337 2.414s-1.073 2.375-2.375 2.337-2.337-1.1-2.337-2.414 1.073-2.337 2.375-2.337zm-5.44-3.14c1.303 0 2.375 1.034 2.375 2.337a2.36 2.36 0 0 1-2.375 2.375c-1.34 0-2.375-1.034-2.375-2.337.038-1.303 1.073-2.375 2.375-2.375zM29.27 7.625A2.39 2.39 0 0 1 31.645 10a2.39 2.39 0 0 1-2.375 2.375A2.39 2.39 0 0 1 26.895 10c0-1.34 1.073-2.414 2.375-2.375zM18.045 5.403V3.18l1.494.46 1.15.345c.153.038.383.038.46-.038a.73.73 0 0 0 .077-.498L20.23.268C20.192.19 20.192.115 20.153 0h4.3L23.37 3.37c-.038.153-.077.46.038.536.077.115.383.115.536.038l2.567-.805v4.406l-3.103-1.6c-.038.306-.115.575-.038.766l1.532 4.712c.536 1.647-.345 3.218-1.992 3.64-2.03.536-3.946-1.34-3.37-3.37l1.6-4.98c.077-.192 0-.46-.038-.766l-3.096 1.638.038-2.184zm-2.682 2.222A2.39 2.39 0 0 1 17.738 10c0 1.303-1.1 2.375-2.375 2.375A2.39 2.39 0 0 1 12.988 10c0-1.34 1.073-2.375 2.375-2.375zM9.348 5.71a2.36 2.36 0 0 1 2.375 2.375 2.36 2.36 0 0 1-2.375 2.375 2.39 2.39 0 0 1-2.375-2.375c0-1.303 1.073-2.337 2.375-2.375zM7.892 26.052c-.843-.42-1.494-.996-2.5-.996.766 1.532 1.57 2.912 3.18 3.6 1.762.728 3.525-.613 3.295-2.414-.115-.7-.536-1.303-1.1-1.417-.498-.115-.996.153-1.417.843-.038.077-.115.153-.192.306-.383-.88-.65-1.686-.153-2.5.575-.92 1.494-.843 2.605-.575-2.222-2.26-2.528-4.56-.575-7 1.034.843 1.916 1.724 2.222 3.027s-.153 2.5-.575 3.793c.88-.613 1.724-1.073 2.643-.306.613.498.766 1.532.345 2.605l-.46-.536c-.65-.575-1.417-.383-1.8.383-.42.88-.153 1.916.7 2.605.996.843 2.222 1.073 3.486 1.034.306 0 .575-.038.88-.115 1.916-.383 2.873-1.532 3.027-3.525l.077-1.1c-1.686.115-2.643 1.264-3.678 2.452l-.46-5.325c.65.42 1.226.88 1.916 1.188.65.268 1.417.383 2.145.46-.536-1.532-1.532-2.643-2.528-3.908h6.78l-1.42 1.884-1.264 1.992c1.724.038 3.027-.575 4.214-1.762l-.46 5.478c-1.034-1.188-1.992-2.337-3.64-2.452-.115 3.4 1.456 4.827 4.597 4.75.88-.038 1.724-.268 2.5-.766.805-.536 1.303-1.264 1.188-2.26-.077-.575-.268-1.073-.843-1.264-.575-.23-.996.115-1.34.536-.038.077-.115.115-.192.192-.46-.766-.306-1.992.306-2.528.65-.613 1.532-.498 2.758.42-1.226-2.797-.958-5.134 1.57-6.896 1.532 1.916 2.107 4.176-.536 7 .996-.268 1.916-.345 2.528.575.536.805.268 1.647-.115 2.528-.192-.23-.306-.46-.46-.613-.65-.766-1.532-.7-2.03.192-.42.728-.345 1.762.153 2.452.575.766 1.6 1.1 2.567.843.88-.268 1.57-.805 2.107-1.532.498-.65.92-1.38 1.34-2.107-.958-.077-1.647.46-2.452.958l1.494-5.02 1.303 2.72.192-.077c.46-1.073.153-2.184 0-3.333l3.18 1.1c-.115.153-.153.268-.23.383-1.992 2.835-3.14 6.053-4.06 9.348-.115.383-.23.766-.306 1.15-.038.42-.268.46-.65.42-5.708-.805-11.416-1.1-17.2-.996-4.52.077-9.04.345-13.562.996-.42.077-.613 0-.728-.46C5.527 29.455 4.57 26.506 3 23.786c-.383-.7-.843-1.38-1.303-2.145l3.18-1.15c-.153 1.15-.42 2.26.038 3.4.728-.805 1.073-1.762 1.456-2.72.498 1.494.996 3.14 1.532 4.865zm-3.908-17.2c1.303 0 2.337 1.073 2.337 2.375a2.39 2.39 0 0 1-2.375 2.375 2.39 2.39 0 0 1-2.375-2.375c.038-1.303 1.1-2.375 2.414-2.375zM0 17.204a2.39 2.39 0 0 1 2.375-2.375 2.36 2.36 0 0 1 2.375 2.375c0 1.303-1.034 2.337-2.375 2.337C1.072 19.58 0 18.507 0 17.204zm8.8 30.763H7.393c0-.23-.038-.498-.038-.805-.843.843-1.8 1.073-2.873.92-1.686-.268-2.873-1.494-3.14-3.256-.153-.996-.077-1.954.306-2.912.65-1.417 1.762-2.184 3.295-2.3C6.63 39.5 7.93 40.19 8.66 41.49l-1.38.766c-.345-.345-.613-.7-.996-.92-1.034-.613-2.375-.23-2.912.843a3.65 3.65 0 0 0 0 3.333c.536 1.034 1.8 1.417 2.835.92.613-.306.92-.805.92-1.647h-2.07v-1.34h3.716c.038 1.494.038 2.988.038 4.52zm6.896-.306c-1.417.728-2.835.65-4.176-.23-1.188-.805-1.647-1.992-1.724-3.37-.115-1.992.958-3.716 2.682-4.3 2.797-.92 5.325.996 5.287 4.52-.038 1.188-.575 2.605-2.07 3.37zm4.98.345c-.115 0-.306-.115-.306-.23l-2.3-8.083c.575 0 1.1-.038 1.647 0 .115 0 .306.23.345.383l1.417 5.402c.038.077.038.192.192.306l1.532-6.053H25.1l-2.337 8.275zm5.363.115c-.613 0-1.073-.498-1.073-1.1s.498-1.1 1.073-1.073c.575 0 1.073.536 1.034 1.1 0 .575-.46 1.073-1.034 1.073zm8.735-7.547v4.252c0 1.877-1.073 3.103-2.912 3.218-.728.038-1.494-.077-2.184-.345-.996-.383-1.647-1.188-1.686-2.3-.077-1.762-.038-3.563-.038-5.325 0-.115 0-.23.038-.383h1.686v5.134c0 1.38 1.034 2.107 2.337 1.686.7-.23 1.073-.805 1.073-1.647v-5.172h1.686zm6.474 7.432c-.153 0-.306-.192-.383-.306l-1.992-3.37c-.498.613-1.226.996-1.073 1.954.077.575 0 1.15 0 1.724h-1.684v-8.275h1.647v3.4l.115.038c.65-.766 1.38-1.494 1.916-2.337.613-.92 1.34-1.303 2.414-1.1.153.038.345 0 .613 0l-2.3 2.605c-.613.7-.613.7-.115 1.494l2.605 4.214zm.998-28.43c-1.34 0-2.375-.996-2.375-2.337s1.034-2.375 2.337-2.375a2.39 2.39 0 0 1 2.414 2.337 2.39 2.39 0 0 1-2.375 2.375z" fill="#000"></path><path d="M15.976 43.213c-.153-1.226-.958-2.07-2.03-2.145-1.1-.077-1.992.575-2.3 1.762-.192.766-.192 1.532.077 2.3.306.958 1.073 1.532 2.03 1.532.996 0 1.724-.536 2.07-1.494.115-.383.153-.805.23-1.226h-.038c0-.268 0-.498-.038-.728z"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/grail.png b/go.dev/_content/images/logos/grail.png
new file mode 100644
index 0000000..026099c
--- /dev/null
+++ b/go.dev/_content/images/logos/grail.png
Binary files differ
diff --git a/go.dev/_content/images/logos/grail.svg b/go.dev/_content/images/logos/grail.svg
new file mode 100644
index 0000000..5a3bd62
--- /dev/null
+++ b/go.dev/_content/images/logos/grail.svg
@@ -0,0 +1,18 @@
+<svg
+  id="Layer_1"
+  data-name="Layer 1"
+  xmlns="http://www.w3.org/2000/svg"
+  viewBox="0 0 571.3 108"
+>
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #612b5c;
+      }
+    </style>
+  </defs>
+  <path
+    class="cls-1"
+    d="M57 64h23v19c-6 5-15 8-25 8-21 0-36-15-36-37 0-20 15-37 36-37 12 0 18 4 26 10a2 2 0 003-1l9-10a2 2 0 00-1-3C82 5 72 0 55 0 21 0 0 25 0 54c0 31 22 54 54 54a67 67 0 0042-15 4 4 0 002-3V50a2 2 0 00-2-2H56a2 2 0 00-2 2v12a3 3 0 003 2zM231 35c0-20-15-32-38-32h-44a2 2 0 00-2 2v99a2 2 0 002 2h14a2 2 0 002-2V70h23l24 34a4 4 0 003 2h16a2 2 0 001-3l-25-36c14-4 24-15 24-32zm-66 19V19h26c14 0 22 6 22 17s-8 18-21 18zM313 5l-43 98a2 2 0 002 3h13a4 4 0 003-3l10-22h48l10 22a4 4 0 003 3h14a2 2 0 002-3L332 5a3 3 0 00-3-2h-13a3 3 0 00-3 2zm-8 60l17-41 18 41zM513 89V5a2 2 0 00-2-2h-14a2 2 0 00-2 2v99a2 2 0 002 2h72a2 2 0 002-2V92a2 2 0 00-2-3h-56zM421 63h20a2 2 0 002-2V47a2 2 0 00-2-2h-20a2 2 0 00-2 2v14a2 2 0 002 2zM421 20h20a2 2 0 002-2V5a2 2 0 00-2-2h-20a2 2 0 00-2 2v13a2 2 0 002 2zM420 36h21a1 1 0 002-2v-3a1 1 0 00-2-1h-21a1 1 0 00-1 1v3a1 1 0 001 2zM421 106h20a2 2 0 002-2V90a2 2 0 00-2-2h-20a2 2 0 00-2 2v14a2 2 0 002 2zM420 79h21a1 1 0 002-2v-3a1 1 0 00-2-1h-21a1 1 0 00-1 1v3a1 1 0 001 2z"
+  />
+</svg>
diff --git a/go.dev/_content/images/logos/hugo.svg b/go.dev/_content/images/logos/hugo.svg
new file mode 100644
index 0000000..8a1a9bb
--- /dev/null
+++ b/go.dev/_content/images/logos/hugo.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="346px" height="388px" viewBox="0 0 346 388" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
+    <title>Slice 1</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Logo_of_Hugo_the_static_website_generator">
+            <path d="M332.1,248.86 L332.1,126.606 C332.1,110.708 323.68,96 309.974,87.946 C280.557,70.663 228.587,40.128 196.759,21.426 C179.949,11.554 159.069,11.776 142.479,22.006 C114.309,39.376 70.359,66.476 41.989,83.973 C24.879,94.523 14.459,113.183 14.459,133.283 L14.459,258.455 C14.459,278.393 25.039,296.831 42.249,306.892 L146.969,368.104 C160.889,376.244 178.079,376.421 192.169,368.574 C222.749,351.538 276.909,321.378 308.109,303.999 C322.909,295.749 332.079,280.139 332.079,263.199 L332.079,248.859 L332.1,248.86 Z" id="Path" fill="#FF4088"></path>
+            <path d="M170.24,0.676 L170.517,0.676 L170.764,0.676 L172.178,0.676 L172.425,0.689 L172.455,0.689 L172.702,0.699 L172.729,0.699 L172.979,0.709 L172.999,0.709 L173.249,0.719 L173.279,0.719 L173.519,0.729 L173.549,0.729 L173.789,0.739 L173.809,0.739 L174.059,0.749 L174.089,0.749 L174.339,0.769 L174.369,0.769 L174.609,0.789 L174.629,0.789 L174.869,0.809 L174.899,0.809 L175.149,0.829 L175.169,0.829 L175.409,0.849 L175.439,0.849 L175.689,0.869 L175.719,0.869 L175.969,0.889 L175.999,0.889 L176.249,0.909 L176.279,0.909 L176.519,0.929 L176.549,0.929 L176.789,0.949 L176.819,0.949 L177.069,0.969 L177.099,0.969 L177.349,0.999 L177.379,0.999 L177.629,1.029 L177.649,1.029 L177.889,1.059 L177.919,1.059 L178.159,1.089 L178.189,1.089 L178.439,1.119 L178.469,1.119 L178.719,1.149 L178.739,1.149 L178.979,1.179 L179.009,1.179 L179.259,1.209 L179.289,1.209 L179.529,1.249 L179.559,1.259 L179.809,1.299 L179.839,1.299 L180.079,1.339 L180.099,1.339 L180.349,1.379 L180.379,1.379 L180.619,1.419 L180.649,1.419 L180.889,1.459 L180.909,1.459 L181.159,1.499 L181.189,1.499 L181.429,1.539 L181.459,1.549 L181.699,1.589 L181.729,1.599 L181.969,1.649 L181.999,1.649 L182.239,1.689 L182.269,1.689 L182.509,1.739 L182.539,1.739 L182.789,1.789 L182.809,1.789 L183.049,1.839 L183.079,1.839 L183.319,1.889 L183.339,1.889 L183.589,1.939 L183.619,1.949 L183.869,1.999 L183.889,1.999 L184.129,2.059 L184.159,2.069 L184.399,2.129 L184.429,2.129 L184.679,2.189 L184.699,2.199 L184.939,2.249 L184.969,2.259 L185.209,2.309 L185.229,2.319 L185.469,2.379 L185.499,2.379 L185.739,2.439 L185.769,2.449 L186.009,2.509 L186.029,2.519 L186.279,2.579 L186.299,2.589 L186.539,2.649 L186.569,2.659 L186.809,2.719 L186.829,2.719 L187.069,2.789 L187.099,2.789 L187.349,2.849 L187.379,2.859 L187.619,2.919 L187.649,2.919 L187.889,2.989 L187.919,2.999 L188.159,3.069 L188.189,3.079 L188.429,3.149 L188.459,3.159 L188.699,3.229 L188.719,3.239 L188.959,3.309 L188.989,3.319 L189.229,3.389 L189.259,3.399 L189.499,3.469 L189.529,3.479 L189.769,3.559 L189.789,3.569 L190.029,3.649 L190.059,3.649 L190.299,3.729 L190.329,3.729 L190.569,3.809 L190.599,3.819 L190.839,3.899 L190.869,3.909 L191.109,3.989 L191.129,3.999 L191.369,4.079 L191.399,4.089 L191.639,4.169 L191.659,4.179 L191.899,4.259 L191.919,4.269 L192.149,4.349 L192.179,4.359 L192.409,4.439 L192.439,4.449 L192.669,4.539 L192.699,4.549 L192.939,4.639 L192.969,4.649 L193.199,4.739 L193.219,4.749 L193.459,4.829 L193.479,4.839 L193.719,4.929 L193.749,4.939 L193.989,5.029 L194.019,5.039 L194.249,5.129 L194.279,5.139 L194.509,5.239 L194.529,5.249 L194.769,5.339 L194.799,5.349 L195.029,5.449 L195.059,5.459 L195.299,5.559 L195.329,5.569 L195.569,5.669 L195.589,5.679 L195.829,5.779 L195.849,5.789 L196.079,5.889 L196.099,5.899 L196.329,5.999 L196.349,6.009 L196.589,6.109 L196.609,6.119 L196.839,6.219 L196.869,6.229 L197.099,6.329 L197.129,6.339 L197.359,6.439 L197.379,6.449 L197.609,6.559 L197.639,6.569 L197.869,6.679 L197.899,6.689 L198.129,6.799 L198.149,6.809 L198.379,6.919 L198.399,6.929 L198.629,7.039 L198.659,7.049 L198.889,7.159 L198.919,7.169 L199.149,7.279 L199.179,7.289 L199.409,7.399 L199.429,7.409 L199.659,7.529 L199.679,7.549 L199.909,7.659 L199.929,7.669 L200.149,7.789 L200.179,7.799 L200.409,7.909 L200.429,7.919 L200.659,8.039 L200.689,8.049 L200.909,8.169 L200.939,8.189 L201.169,8.309 L201.199,8.319 L201.429,8.439 L201.449,8.449 L201.669,8.569 L201.699,8.589 L201.929,8.709 L201.949,8.729 L202.169,8.859 L202.189,8.879 L202.409,9.009 L202.439,9.019 L202.659,9.149 L202.679,9.159 L202.899,9.289 L202.919,9.309 L203.139,9.439 L203.169,9.459 L203.379,9.589 L203.399,9.589 L316.699,76.159 L316.889,76.269 L316.909,76.289 L317.099,76.399 L317.129,76.409 L317.309,76.529 L317.329,76.549 L317.509,76.659 L317.529,76.679 L317.709,76.789 L317.729,76.799 L317.909,76.909 L317.929,76.919 L318.109,77.029 L318.129,77.039 L318.309,77.149 L318.339,77.159 L318.519,77.279 L318.539,77.289 L318.719,77.409 L318.749,77.419 L318.929,77.529 L318.949,77.539 L319.129,77.659 L319.149,77.679 L319.329,77.799 L319.349,77.819 L319.519,77.929 L319.549,77.939 L319.729,78.059 L319.749,78.069 L319.929,78.189 L319.949,78.199 L320.119,78.319 L320.139,78.329 L320.309,78.449 L320.329,78.459 L320.499,78.579 L320.519,78.599 L320.689,78.719 L320.709,78.729 L320.879,78.859 L320.909,78.879 L321.079,78.999 L321.099,79.009 L321.269,79.129 L321.289,79.139 L321.459,79.259 L321.479,79.279 L321.649,79.399 L321.669,79.409 L321.839,79.529 L321.859,79.549 L322.029,79.669 L322.049,79.689 L322.219,79.819 L322.249,79.839 L322.409,79.969 L322.439,79.989 L322.609,80.119 L322.639,80.129 L322.809,80.259 L322.829,80.279 L322.999,80.409 L323.019,80.429 L323.179,80.559 L323.209,80.579 L323.379,80.719 L323.409,80.749 L323.729,81.009 L323.769,81.039 L324.089,81.309 L324.129,81.339 L324.459,81.609 L324.499,81.639 L324.829,81.909 L324.869,81.939 L325.189,82.209 L325.229,82.249 L325.549,82.519 L325.589,82.549 L325.899,82.829 L325.939,82.859 L326.249,83.139 L326.289,83.169 L326.599,83.459 L326.639,83.489 L326.939,83.769 L326.979,83.799 L327.289,84.089 L327.329,84.129 L327.629,84.419 L327.669,84.459 L327.969,84.749 L328.009,84.789 L328.299,85.079 L328.339,85.119 L328.629,85.419 L328.669,85.459 L328.959,85.759 L328.989,85.799 L329.279,86.099 L329.319,86.139 L329.599,86.439 L329.639,86.479 L329.919,86.779 L329.959,86.819 L330.239,87.119 L330.279,87.159 L330.559,87.469 L330.599,87.509 L330.869,87.829 L330.899,87.869 L331.179,88.179 L331.219,88.219 L331.489,88.539 L331.529,88.579 L331.799,88.899 L331.829,88.939 L332.099,89.259 L332.139,89.299 L332.399,89.619 L332.429,89.659 L332.689,89.979 L332.729,90.019 L332.989,90.349 L333.019,90.389 L333.269,90.719 L333.299,90.759 L333.549,91.089 L333.579,91.129 L333.829,91.459 L333.859,91.509 L334.109,91.849 L334.139,91.889 L334.389,92.219 L334.419,92.269 L334.659,92.609 L334.689,92.649 L334.929,92.989 L334.959,93.029 L335.199,93.369 L335.229,93.419 L335.459,93.759 L335.489,93.809 L335.719,94.159 L335.749,94.209 L335.969,94.549 L335.999,94.589 L336.219,94.929 L336.249,94.969 L336.479,95.319 L336.509,95.359 L336.729,95.709 L336.759,95.759 L336.969,96.109 L336.999,96.159 L337.219,96.509 L337.249,96.559 L337.459,96.909 L337.489,96.959 L337.699,97.319 L337.729,97.359 L337.929,97.719 L337.959,97.769 L338.159,98.129 L338.189,98.179 L338.389,98.539 L338.419,98.589 L338.619,98.949 L338.639,98.999 L338.839,99.369 L338.859,99.419 L339.049,99.789 L339.069,99.839 L339.259,100.209 L339.289,100.249 L339.469,100.629 L339.489,100.679 L339.679,101.049 L339.699,101.099 L339.879,101.469 L339.909,101.519 L340.079,101.899 L340.099,101.949 L340.269,102.329 L340.289,102.379 L340.459,102.759 L340.479,102.809 L340.649,103.189 L340.669,103.239 L340.829,103.619 L340.849,103.669 L341.009,104.049 L341.029,104.099 L341.179,104.489 L341.199,104.539 L341.349,104.919 L341.369,104.969 L341.519,105.359 L341.539,105.409 L341.689,105.799 L341.709,105.849 L341.859,106.239 L341.879,106.289 L342.019,106.679 L342.039,106.729 L342.169,107.119 L342.189,107.169 L342.319,107.559 L342.339,107.609 L342.469,107.999 L342.489,108.049 L342.619,108.449 L342.629,108.499 L342.749,108.889 L342.769,108.939 L342.889,109.339 L342.899,109.389 L343.019,109.789 L343.039,109.839 L343.159,110.239 L343.179,110.289 L343.289,110.689 L343.309,110.739 L343.419,111.139 L343.429,111.189 L343.529,111.589 L343.549,111.649 L343.659,112.059 L343.669,112.109 L343.769,112.519 L343.789,112.569 L343.879,112.979 L343.899,113.029 L343.999,113.439 L344.009,113.499 L344.099,113.909 L344.109,113.959 L344.199,114.369 L344.209,114.419 L344.289,114.829 L344.299,114.879 L344.379,115.289 L344.389,115.339 L344.469,115.749 L344.479,115.799 L344.549,116.219 L344.559,116.269 L344.629,116.679 L344.639,116.739 L344.709,117.159 L344.719,117.219 L344.779,117.639 L344.789,117.699 L344.849,118.109 L344.849,118.149 L344.879,118.369 L344.879,118.389 L344.899,118.599 L344.899,118.629 L344.929,118.839 L344.929,118.859 L344.959,119.069 L344.959,119.099 L344.989,119.309 L344.999,119.339 L345.029,119.549 L345.029,119.579 L345.049,119.789 L345.059,119.809 L345.079,120.019 L345.089,120.049 L345.109,120.259 L345.109,120.289 L345.129,120.499 L345.139,120.529 L345.159,120.739 L345.169,120.769 L345.189,120.979 L345.189,121.009 L345.209,121.219 L345.209,121.249 L345.229,121.459 L345.229,121.489 L345.249,121.699 L345.249,121.729 L345.269,121.939 L345.269,121.969 L345.279,122.179 L345.279,122.209 L345.289,122.429 L345.289,122.459 L345.309,122.679 L345.309,122.699 L345.319,122.909 L345.319,122.939 L345.329,123.149 L345.329,123.179 L345.339,123.389 L345.339,123.419 L345.349,123.629 L345.349,123.659 L345.359,123.879 L345.359,123.909 L345.369,124.119 L345.369,124.149 L345.379,124.359 L345.379,124.379 L345.389,124.589 L345.389,264.189 L345.379,264.419 L345.379,264.709 L345.369,264.939 L345.369,264.969 L345.359,265.189 L345.359,265.209 L345.349,265.439 L345.349,265.469 L345.339,265.689 L345.339,265.709 L345.329,265.929 L345.329,265.959 L345.319,266.179 L345.309,266.209 L345.299,266.429 L345.299,266.459 L345.289,266.679 L345.289,266.699 L345.279,266.929 L345.279,266.959 L345.259,267.189 L345.259,267.209 L345.239,267.439 L345.239,267.469 L345.219,267.689 L345.219,267.719 L345.209,267.939 L345.209,267.969 L345.189,268.189 L345.189,268.219 L345.169,268.439 L345.169,268.469 L345.149,268.689 L345.149,268.719 L345.129,268.939 L345.119,268.959 L345.099,269.189 L345.089,269.219 L345.069,269.439 L345.069,269.469 L345.049,269.689 L345.039,269.719 L345.009,269.939 L345.009,269.969 L344.979,270.189 L344.979,270.209 L344.949,270.429 L344.949,270.459 L344.919,270.679 L344.909,270.709 L344.879,270.939 L344.869,270.969 L344.839,271.189 L344.829,271.219 L344.799,271.439 L344.799,271.469 L344.769,271.689 L344.769,271.719 L344.739,271.939 L344.729,271.969 L344.699,272.189 L344.689,272.219 L344.649,272.439 L344.649,272.459 L344.619,272.679 L344.619,272.699 L344.579,272.919 L344.569,272.949 L344.539,273.169 L344.529,273.199 L344.499,273.419 L344.499,273.439 L344.459,273.659 L344.459,273.679 L344.419,273.899 L344.419,273.919 L344.379,274.139 L344.379,274.169 L344.339,274.379 L344.329,274.409 L344.289,274.619 L344.279,274.649 L344.239,274.869 L344.229,274.899 L344.179,275.119 L344.179,275.139 L344.129,275.359 L344.129,275.379 L344.089,275.589 L344.089,275.619 L344.039,275.839 L344.039,275.859 L343.999,276.079 L343.989,276.099 L343.939,276.309 L343.939,276.329 L343.889,276.539 L343.889,276.569 L343.839,276.779 L343.829,276.809 L343.779,277.019 L343.769,277.049 L343.719,277.259 L343.709,277.279 L343.659,277.489 L343.649,277.509 L343.599,277.719 L343.589,277.749 L343.529,277.959 L343.519,277.989 L343.469,278.199 L343.459,278.229 L343.399,278.439 L343.399,278.469 L343.339,278.689 L343.329,278.719 L343.269,278.929 L343.269,278.959 L343.209,279.169 L343.199,279.199 L343.139,279.409 L343.129,279.439 L343.069,279.659 L343.059,279.679 L342.999,279.889 L342.989,279.909 L342.929,280.119 L342.919,280.149 L342.849,280.359 L342.839,280.389 L342.779,280.599 L342.769,280.619 L342.709,280.829 L342.699,280.859 L342.639,281.069 L342.629,281.089 L342.559,281.299 L342.549,281.329 L342.479,281.539 L342.469,281.569 L342.399,281.779 L342.389,281.809 L342.319,282.019 L342.309,282.049 L342.239,282.259 L342.229,282.279 L342.159,282.489 L342.149,282.519 L342.079,282.729 L342.069,282.759 L341.999,282.969 L341.989,282.989 L341.919,283.199 L341.909,283.229 L341.839,283.439 L341.829,283.469 L341.749,283.669 L341.739,283.699 L341.669,283.899 L341.659,283.929 L341.589,284.129 L341.579,284.159 L341.509,284.369 L341.499,284.399 L341.419,284.609 L341.409,284.639 L341.329,284.839 L341.319,284.869 L341.239,285.069 L341.229,285.099 L341.149,285.299 L341.139,285.329 L341.059,285.529 L341.049,285.559 L340.969,285.759 L340.959,285.789 L340.879,285.989 L340.869,286.009 L340.779,286.209 L340.769,286.239 L340.679,286.449 L340.669,286.479 L340.589,286.679 L340.579,286.709 L340.489,286.909 L340.479,286.939 L340.389,287.139 L340.379,287.169 L340.289,287.369 L340.279,287.389 L340.189,287.589 L340.179,287.619 L340.089,287.819 L340.079,287.839 L339.989,288.039 L339.979,288.059 L339.889,288.259 L339.879,288.279 L339.789,288.479 L339.779,288.499 L339.679,288.699 L339.669,288.719 L339.569,288.909 L339.559,288.939 L339.469,289.139 L339.459,289.159 L339.359,289.349 L339.349,289.379 L339.259,289.579 L339.249,289.599 L339.149,289.799 L339.139,289.829 L339.039,290.029 L339.029,290.049 L338.929,290.239 L338.919,290.259 L338.819,290.459 L338.809,290.489 L338.709,290.689 L338.699,290.719 L338.599,290.919 L338.579,290.949 L338.479,291.139 L338.469,291.159 L338.369,291.359 L338.359,291.389 L338.259,291.589 L338.249,291.619 L338.139,291.809 L338.119,291.829 L338.009,292.019 L337.999,292.039 L337.889,292.229 L337.879,292.249 L337.769,292.439 L337.759,292.459 L337.649,292.649 L337.639,292.669 L337.529,292.859 L337.519,292.889 L337.409,293.079 L337.399,293.099 L337.289,293.289 L337.279,293.319 L337.169,293.509 L337.149,293.529 L337.039,293.719 L337.019,293.739 L336.909,293.929 L336.899,293.949 L336.789,294.139 L336.779,294.169 L336.659,294.359 L336.649,294.379 L336.539,294.559 L336.529,294.589 L336.419,294.769 L336.399,294.789 L336.279,294.979 L336.269,295.009 L336.149,295.189 L336.129,295.209 L336.009,295.389 L335.999,295.409 L335.879,295.599 L335.859,295.629 L335.739,295.809 L335.719,295.829 L335.599,296.009 L335.589,296.029 L335.469,296.219 L335.459,296.239 L335.339,296.419 L335.319,296.439 L335.189,296.619 L335.179,296.639 L335.059,296.819 L335.049,296.839 L334.919,297.019 L334.909,297.039 L334.789,297.219 L334.769,297.239 L334.649,297.419 L334.629,297.439 L334.499,297.619 L334.479,297.639 L334.359,297.819 L334.349,297.839 L334.219,298.019 L334.199,298.049 L334.079,298.229 L334.059,298.249 L333.929,298.429 L333.909,298.449 L333.779,298.629 L333.759,298.649 L333.629,298.829 L333.609,298.849 L333.479,299.029 L333.469,299.049 L333.339,299.219 L333.319,299.239 L333.189,299.409 L333.179,299.429 L333.039,299.599 L333.019,299.619 L332.889,299.789 L332.879,299.809 L332.749,299.989 L332.729,300.009 L332.589,300.189 L332.569,300.209 L332.429,300.379 L332.409,300.399 L332.269,300.569 L332.259,300.589 L332.119,300.759 L332.099,300.779 L331.959,300.949 L331.939,300.969 L331.799,301.139 L331.779,301.159 L331.639,301.329 L331.619,301.349 L331.479,301.519 L331.469,301.539 L331.329,301.709 L331.309,301.729 L331.159,301.899 L331.139,301.919 L330.999,302.089 L330.979,302.109 L330.839,302.279 L330.819,302.299 L330.679,302.469 L330.659,302.489 L330.519,302.659 L330.499,302.679 L330.359,302.839 L330.339,302.859 L330.189,303.029 L330.169,303.049 L330.029,303.219 L330.009,303.239 L329.859,303.409 L329.839,303.429 L329.699,303.599 L329.679,303.619 L329.529,303.779 L329.509,303.799 L329.359,303.959 L329.339,303.979 L329.189,304.139 L329.169,304.159 L329.019,304.319 L328.999,304.339 L328.849,304.499 L328.829,304.519 L328.679,304.679 L328.659,304.699 L328.509,304.859 L328.489,304.879 L328.339,305.039 L328.319,305.059 L328.159,305.219 L328.139,305.239 L327.989,305.399 L327.969,305.419 L327.819,305.569 L327.799,305.589 L327.639,305.749 L327.609,305.769 L327.449,305.929 L327.429,305.949 L327.269,306.099 L327.249,306.119 L327.089,306.279 L327.069,306.299 L326.909,306.449 L326.889,306.469 L326.729,306.619 L326.709,306.639 L326.549,306.789 L326.529,306.809 L326.369,306.959 L326.349,306.979 L326.189,307.129 L326.169,307.149 L326.009,307.299 L325.989,307.319 L325.819,307.469 L325.799,307.479 L325.639,307.629 L325.619,307.649 L325.449,307.799 L325.429,307.819 L325.259,307.969 L325.239,307.979 L325.069,308.129 L325.049,308.149 L324.879,308.289 L324.849,308.309 L324.679,308.449 L324.659,308.469 L324.489,308.619 L324.469,308.639 L324.299,308.789 L324.279,308.809 L324.109,308.959 L324.089,308.979 L323.919,309.119 L323.899,309.139 L323.719,309.279 L323.699,309.289 L323.529,309.429 L323.509,309.449 L323.339,309.589 L323.309,309.609 L323.139,309.749 L323.119,309.769 L322.949,309.909 L322.929,309.929 L322.759,310.069 L322.739,310.089 L322.559,310.229 L322.539,310.249 L322.369,310.379 L322.349,310.399 L322.169,310.539 L322.149,310.559 L321.969,310.699 L321.949,310.719 L321.769,310.859 L321.749,310.879 L321.569,311.019 L321.549,311.029 L321.369,311.159 L321.349,311.169 L321.169,311.299 L321.149,311.309 L320.969,311.439 L320.939,311.449 L320.759,311.579 L320.739,311.599 L320.559,311.729 L320.539,311.749 L320.359,311.879 L320.339,311.899 L320.159,312.029 L320.129,312.049 L319.949,312.179 L319.929,312.189 L319.739,312.319 L319.709,312.329 L319.519,312.459 L319.499,312.479 L319.309,312.609 L319.289,312.629 L319.099,312.749 L319.079,312.769 L318.889,312.899 L318.869,312.919 L318.689,313.049 L318.659,313.069 L318.469,313.189 L318.449,313.199 L318.259,313.319 L318.229,313.329 L318.039,313.449 L318.019,313.469 L317.829,313.589 L317.809,313.609 L317.619,313.729 L317.599,313.739 L317.409,313.859 L317.379,313.869 L317.189,313.989 L317.169,314.009 L316.979,314.129 L316.949,314.139 L316.759,314.259 L316.729,314.279 L316.539,314.399 L316.509,314.419 L316.309,314.539 L316.289,314.559 L316.099,314.669 L316.069,314.679 L315.879,314.789 L315.859,314.809 L315.659,314.929 L315.629,314.949 L315.429,315.059 L315.409,315.079 L315.219,315.189 L315.189,315.199 L314.989,315.309 L314.959,315.319 L314.759,315.429 L314.739,315.439 L314.549,315.549 L314.539,315.559 L198.609,380.159 L198.599,380.159 L198.419,380.269 L198.389,380.279 L198.199,380.389 L198.169,380.409 L197.979,380.509 L197.949,380.519 L197.759,380.619 L197.739,380.629 L197.549,380.729 L197.519,380.739 L197.329,380.839 L197.299,380.849 L197.109,380.949 L197.079,380.959 L196.889,381.059 L196.869,381.069 L196.679,381.169 L196.659,381.179 L196.469,381.269 L196.449,381.279 L196.249,381.379 L196.229,381.399 L196.039,381.499 L196.019,381.509 L195.829,381.599 L195.809,381.609 L195.619,381.699 L195.599,381.709 L195.409,381.809 L195.389,381.819 L195.189,381.909 L195.169,381.919 L194.979,382.009 L194.959,382.019 L194.759,382.109 L194.739,382.119 L194.549,382.209 L194.529,382.219 L194.339,382.309 L194.309,382.329 L194.109,382.419 L194.089,382.429 L193.889,382.509 L193.869,382.519 L193.669,382.609 L193.649,382.629 L193.449,382.719 L193.419,382.729 L193.229,382.809 L193.209,382.819 L193.009,382.909 L192.989,382.919 L192.789,382.999 L192.769,383.009 L192.569,383.089 L192.549,383.099 L192.349,383.179 L192.319,383.189 L192.119,383.269 L192.089,383.279 L191.889,383.359 L191.859,383.369 L191.669,383.449 L191.649,383.459 L191.449,383.529 L191.429,383.539 L191.229,383.619 L191.199,383.629 L190.999,383.709 L190.969,383.719 L190.769,383.799 L190.739,383.809 L190.539,383.879 L190.509,383.889 L190.309,383.969 L190.279,383.979 L190.079,384.049 L190.059,384.059 L189.859,384.129 L189.829,384.139 L189.629,384.209 L189.599,384.219 L189.399,384.289 L189.369,384.299 L189.169,384.369 L189.149,384.379 L188.949,384.449 L188.749,384.519 L188.719,384.529 L188.509,384.589 L188.479,384.599 L188.279,384.659 L188.259,384.669 L188.059,384.739 L188.039,384.749 L187.829,384.809 L187.799,384.819 L187.599,384.879 L187.569,384.889 L187.369,384.949 L187.339,384.959 L187.129,385.029 L187.089,385.039 L186.689,385.159 L186.639,385.179 L186.229,385.299 L186.179,385.309 L185.769,385.429 L185.719,385.439 L185.309,385.549 L185.259,385.569 L184.849,385.679 L184.799,385.689 L184.389,385.799 L184.329,385.809 L183.919,385.909 L183.869,385.919 L183.459,386.019 L183.399,386.029 L182.989,386.129 L182.939,386.139 L182.529,386.229 L182.479,386.239 L182.059,386.329 L181.999,386.339 L181.579,386.429 L181.529,386.439 L181.109,386.519 L181.059,386.529 L180.649,386.599 L180.599,386.609 L180.189,386.689 L180.139,386.699 L179.719,386.769 L179.669,386.779 L179.249,386.849 L179.199,386.859 L178.779,386.919 L178.729,386.929 L178.309,386.989 L178.259,386.999 L177.839,387.059 L177.789,387.069 L177.369,387.129 L177.309,387.139 L176.889,387.189 L176.839,387.199 L176.419,387.249 L176.369,387.259 L175.949,387.309 L175.529,387.349 L175.479,387.349 L175.059,387.379 L175.009,387.389 L174.589,387.419 L174.539,387.419 L174.119,387.449 L174.069,387.449 L173.649,387.479 L173.589,387.489 L173.169,387.519 L173.119,387.519 L172.699,387.539 L172.649,387.539 L172.229,387.559 L172.169,387.559 L171.749,387.569 L171.699,387.569 L171.279,387.579 L171.229,387.579 L170.809,387.589 L169.329,387.589 L168.909,387.579 L168.489,387.569 L168.429,387.569 L168.009,387.559 L168,387.559 L167.58,387.539 L167.53,387.529 L167.11,387.509 L167.06,387.509 L166.64,387.489 L166.59,387.479 L166.17,387.459 L166.12,387.459 L165.7,387.429 L165.65,387.419 L165.23,387.379 L165.17,387.369 L164.75,387.329 L164.69,387.319 L164.27,387.279 L164.22,387.269 L163.8,387.229 L163.75,387.229 L163.33,387.189 L163.28,387.179 L162.86,387.129 L162.8,387.129 L162.38,387.079 L162.32,387.069 L161.9,387.009 L161.85,386.999 L161.43,386.939 L161.38,386.929 L160.96,386.869 L160.91,386.859 L160.49,386.799 L160.44,386.789 L160.03,386.719 L160,386.719 L159.58,386.639 L159.526,386.629 L159.116,386.549 L159.066,386.539 L158.656,386.459 L158.606,386.449 L158.196,386.369 L158.136,386.359 L157.72,386.279 L157.67,386.269 L157.26,386.179 L157.2,386.159 L156.79,386.069 L156.74,386.059 L156.33,385.959 L156.274,385.939 L155.864,385.839 L155.814,385.819 L155.404,385.709 L155.354,385.699 L154.944,385.589 L154.894,385.569 L154.484,385.459 L154.434,385.439 L154.024,385.329 L153.974,385.309 L153.564,385.189 L153.504,385.169 L153.094,385.049 L153.044,385.029 L152.634,384.909 L152.584,384.889 L152.174,384.769 L152.124,384.759 L151.726,384.629 L151.686,384.619 L151.476,384.549 L151.449,384.549 L151.249,384.489 L151.219,384.479 L151.019,384.409 L150.989,384.399 L150.789,384.329 L150.759,384.319 L150.559,384.249 L150.529,384.239 L150.329,384.169 L150.299,384.159 L150.099,384.089 L150.079,384.079 L149.879,384.009 L149.859,383.999 L149.659,383.929 L149.639,383.919 L149.439,383.839 L149.409,383.829 L149.209,383.749 L149.179,383.739 L148.979,383.659 L148.959,383.649 L148.759,383.569 L148.729,383.559 L148.529,383.479 L148.509,383.469 L148.309,383.389 L148.279,383.379 L148.079,383.299 L148.059,383.289 L147.859,383.209 L147.839,383.199 L147.639,383.119 L147.609,383.109 L147.409,383.029 L147.379,383.019 L147.179,382.939 L147.149,382.929 L146.949,382.849 L146.919,382.839 L146.719,382.759 L146.699,382.749 L146.499,382.659 L146.469,382.649 L146.279,382.559 L146.259,382.549 L146.059,382.459 L146.039,382.449 L145.839,382.359 L145.819,382.349 L145.619,382.269 L145.589,382.259 L145.399,382.169 L145.369,382.159 L145.169,382.069 L145.139,382.059 L144.949,381.969 L144.929,381.949 L144.739,381.859 L144.719,381.849 L144.529,381.759 L144.509,381.749 L144.309,381.659 L144.289,381.639 L144.089,381.539 L144.069,381.519 L143.879,381.429 L143.849,381.419 L143.649,381.329 L143.629,381.309 L143.439,381.209 L143.409,381.199 L143.209,381.099 L143.189,381.089 L142.999,380.989 L142.969,380.979 L142.779,380.879 L142.759,380.869 L142.569,380.769 L142.539,380.749 L142.349,380.649 L142.329,380.639 L142.139,380.539 L142.119,380.529 L141.929,380.429 L141.899,380.409 L141.709,380.309 L141.689,380.299 L141.499,380.189 L141.469,380.169 L141.279,380.069 L141.249,380.059 L141.059,379.959 L141.029,379.949 L140.839,379.849 L140.809,379.839 L140.619,379.729 L140.589,379.719 L140.409,379.609 L140.379,379.599 L140.199,379.489 L140.189,379.479 L35.389,318.309 L35.379,318.299 L35.159,318.169 L35.139,318.159 L34.919,318.029 L34.889,318.019 L34.659,317.889 L34.629,317.879 L34.409,317.739 L34.389,317.729 L34.169,317.589 L34.149,317.569 L33.929,317.429 L33.909,317.409 L33.689,317.269 L33.659,317.259 L33.439,317.129 L33.409,317.109 L33.189,316.969 L33.169,316.949 L32.949,316.809 L33,316.809 L32.78,316.669 L32.75,316.649 L32.53,316.509 L32.51,316.489 L32.29,316.349 L32.262,316.329 L32.042,316.179 L32.012,316.159 L31.792,316.009 L31.772,315.989 L31.552,315.849 L31.532,315.829 L31.312,315.679 L31.292,315.659 L31.072,315.509 L31.052,315.489 L30.842,315.339 L30.812,315.319 L30.597,315.169 L30.577,315.149 L30.367,314.999 L30.342,314.979 L30.132,314.829 L30.105,314.809 L29.895,314.659 L29.875,314.649 L29.665,314.499 L29.645,314.479 L29.438,314.329 L29.418,314.309 L29.212,314.159 L29.182,314.149 L28.972,313.999 L28.952,313.979 L28.742,313.819 L28.722,313.799 L28.512,313.649 L28.486,313.629 L28.276,313.469 L28.25,313.449 L28.05,313.289 L28.03,313.269 L27.83,313.109 L27.81,313.099 L27.61,312.939 L27.59,312.919 L27.39,312.759 L27.37,312.739 L27.17,312.579 L27.15,312.559 L26.95,312.399 L26.93,312.379 L26.73,312.219 L26.71,312.199 L26.51,312.039 L26.49,312.019 L26.29,311.849 L26.27,311.839 L26.07,311.679 L26.05,311.659 L25.856,311.499 L25.836,311.479 L25.636,311.309 L25.616,311.289 L25.416,311.129 L25.396,311.109 L25.196,310.939 L25.176,310.929 L24.98,310.769 L24.96,310.749 L24.77,310.589 L24.75,310.569 L24.56,310.399 L24.54,310.379 L24.35,310.209 L24.33,310.189 L24.14,310.019 L24.12,309.999 L23.93,309.829 L23.91,309.809 L23.72,309.639 L23.7,309.619 L23.51,309.439 L23.49,309.429 L23.3,309.259 L23.27,309.239 L23.085,309.059 L23.065,309.039 L22.875,308.869 L22.855,308.849 L22.669,308.669 L22.649,308.649 L22.469,308.469 L22.449,308.449 L22.269,308.269 L22.249,308.249 L22.059,308.069 L22.039,308.049 L21.849,307.869 L21.829,307.859 L21.649,307.679 L21.629,307.659 L21.449,307.479 L21.429,307.459 L21.249,307.279 L21.229,307.259 L21.049,307.079 L21.029,307.059 L20.849,306.879 L20.829,306.859 L20.649,306.679 L20.629,306.659 L20.459,306.479 L20.439,306.459 L20.259,306.279 L20.239,306.259 L20.059,306.069 L20.039,306.049 L19.869,305.859 L19.849,305.839 L19.679,305.649 L19.659,305.629 L19.479,305.439 L19.459,305.419 L19.289,305.229 L19.269,305.209 L19.099,305.019 L19.079,304.999 L18.909,304.809 L18.889,304.789 L18.719,304.599 L18.699,304.579 L18.529,304.389 L18.519,304.369 L18.359,304.179 L18.339,304.159 L18.169,303.969 L18.149,303.949 L17.969,303.749 L17.949,303.729 L17.779,303.539 L17.759,303.519 L17.589,303.319 L17.569,303.299 L17.409,303.109 L17.399,303.089 L17.239,302.899 L17.219,302.879 L17.059,302.679 L17.039,302.659 L16.869,302.459 L16.849,302.439 L16.689,302.249 L16.669,302.229 L16.499,302.039 L16.479,302.019 L16.319,301.829 L16.299,301.809 L16.139,301.609 L16.119,301.589 L15.959,301.389 L15.939,301.369 L15.779,301.169 L15.759,301.149 L15.599,300.949 L15.579,300.929 L15.419,300.729 L15.409,300.709 L15.259,300.509 L15.239,300.489 L15.089,300.289 L15.079,300.269 L14.929,300.069 L14.909,300.049 L14.759,299.839 L14.739,299.819 L14.589,299.619 L14.569,299.599 L14.419,299.399 L14.409,299.379 L14.259,299.169 L14.249,299.149 L14.099,298.939 L14.089,298.919 L13.939,298.719 L13.929,298.699 L13.779,298.499 L13.759,298.479 L13.609,298.269 L13.589,298.249 L13.439,298.039 L13.419,298.009 L13.279,297.799 L13.259,297.779 L13.119,297.569 L13.099,297.549 L12.959,297.339 L12.939,297.319 L12.799,297.109 L12.789,297.089 L12.649,296.879 L12.629,296.849 L12.489,296.639 L12.469,296.619 L12.329,296.409 L12.309,296.389 L12.169,296.179 L12.149,296.159 L12.009,295.949 L11.989,295.929 L11.859,295.719 L11.849,295.699 L11.719,295.489 L11.699,295.459 L11.559,295.249 L11.539,295.219 L11.399,295.009 L11.389,294.989 L11.249,294.769 L11.239,294.739 L11.109,294.529 L11.089,294.509 L10.959,294.299 L10.939,294.279 L10.809,294.059 L10.789,294.029 L10.659,293.819 L10.649,293.799 L10.519,293.579 L10.509,293.559 L10.379,293.349 L10.359,293.319 L10.229,293.099 L10.209,293.069 L10.079,292.849 L10.059,292.819 L9.939,292.599 L9.919,292.579 L9.789,292.359 L9.779,292.339 L9.659,292.119 L9.649,292.099 L9.529,291.879 L9.519,291.849 L9.399,291.629 L9.379,291.599 L9.259,291.379 L9.249,291.349 L9.129,291.119 L9.119,291.099 L8.999,290.879 L8.989,290.849 L8.869,290.629 L8.859,290.599 L8.739,290.379 L8.729,290.349 L8.619,290.119 L8.609,290.099 L8.489,289.869 L8.479,289.839 L8.359,289.609 L8.339,289.589 L8.229,289.359 L8.219,289.339 L8.109,289.119 L8.099,289.089 L7.989,288.859 L7.989,288.869 L7.879,288.639 L7.859,288.609 L7.749,288.379 L7.739,288.349 L7.629,288.129 L7.619,288.099 L7.509,287.869 L7.499,287.849 L7.389,287.619 L7.379,287.599 L7.279,287.369 L7.269,287.349 L7.159,287.119 L7.149,287.099 L7.039,286.869 L7.029,286.849 L6.919,286.619 L6.909,286.589 L6.809,286.359 L6.799,286.339 L6.689,286.109 L6.679,286.079 L6.569,285.849 L6.559,285.829 L6.459,285.599 L6.449,285.579 L6.349,285.349 L6.339,285.319 L6.239,285.089 L6.229,285.069 L6.139,284.839 L6.129,284.819 L6.029,284.589 L6.019,284.559 L5.929,284.319 L5.919,284.299 L5.819,284.069 L5.809,284.039 L5.719,283.819 L5.709,283.789 L5.609,283.549 L5.599,283.529 L5.509,283.289 L5.499,283.259 L5.409,283.019 L5.399,282.999 L5.309,282.759 L5.299,282.729 L5.209,282.489 L5.199,282.469 L5.109,282.229 L5.099,282.209 L5.019,281.969 L5.009,281.939 L4.919,281.699 L4.909,281.679 L4.829,281.439 L4.819,281.409 L4.739,281.169 L4.729,281.139 L4.639,280.899 L4.629,280.869 L4.549,280.629 L4.539,280.609 L4.459,280.369 L4.449,280.349 L4.369,280.109 L4.359,280.079 L4.279,279.839 L4.269,279.809 L4.189,279.569 L4.179,279.539 L4.099,279.299 L4.089,279.269 L4.009,279.029 L4,279 L3.93,278.76 L3.92,278.74 L3.84,278.49 L3.83,278.46 L3.76,278.21 L3.75,278.18 L3.68,277.94 L3.67,277.91 L3.6,277.67 L3.59,277.64 L3.52,277.39 L3.51,277.36 L3.44,277.11 L3.43,277.09 L3.36,276.84 L3.35,276.83 L3.28,276.58 L3.27,276.56 L3.21,276.32 L3.2,276.3 L3.14,276.06 L3.14,276.04 L3.07,275.79 L3.07,275.76 L3.01,275.52 L3,275.49 L2.94,275.25 L2.93,275.22 L2.87,274.97 L2.88,274.97 L2.82,274.72 L2.81,274.7 L2.75,274.45 L2.74,274.43 L2.68,274.18 L2.67,274.16 L2.61,273.91 L2.62,273.9 L2.56,273.65 L2.55,273.62 L2.49,273.37 L2.48,273.34 L2.43,273.09 L2.42,273.06 L2.36,272.81 L2.35,272.79 L2.3,272.54 L2.29,272.51 L2.24,272.26 L2.23,272.23 L2.18,271.98 L2.13,271.73 L2.13,271.7 L2.08,271.44 L2.08,271.41 L2.03,271.16 L2.02,271.13 L1.96,270.89 L1.96,270.86 L1.91,270.59 L1.9,270.56 L1.85,270.3 L1.84,270.27 L1.8,270.02 L1.79,269.99 L1.75,269.74 L1.75,269.71 L1.71,269.46 L1.71,269.43 L1.67,269.18 L1.66,269.15 L1.62,268.9 L1.62,268.91 L1.58,268.66 L1.58,268.64 L1.54,268.39 L1.54,268.36 L1.5,268.11 L1.5,268.08 L1.46,267.83 L1.46,267.81 L1.43,267.55 L1.43,267.52 L1.4,267.27 L1.4,267.25 L1.36,266.99 L1.35,266.96 L1.32,266.71 L1.32,266.68 L1.29,266.42 L1.28,266.39 L1.25,266.13 L1.25,266.1 L1.22,265.84 L1.21,265.81 L1.18,265.55 L1.18,265.52 L1.15,265.26 L1.14,265.24 L1.11,264.98 L1.09,264.72 L1.09,264.69 L1.06,264.43 L1.05,264.4 L1.02,264.14 L1.02,264.11 L1,263.85 L0.99,263.82 L0.97,263.56 L0.97,263.53 L0.95,263.27 L0.95,263.24 L0.93,262.98 L0.91,262.72 L0.91,262.69 L0.89,262.43 L0.89,262.4 L0.87,262.14 L0.87,261.817 L0.86,261.557 L0.86,261.527 L0.85,261.267 L0.85,261.237 L0.84,260.977 L0.83,260.947 L0.82,260.687 L0.82,260.407 L0.81,260.147 L0.81,260.117 L0.8,259.857 L0.8,133.257 L0.81,133.007 L0.81,132.687 L0.82,132.427 L0.82,131.507 L0.83,131.247 L0.83,131.227 L0.84,130.967 L0.84,130.937 L0.85,130.677 L0.85,130.647 L0.86,130.387 L0.86,130.367 L0.87,130.107 L0.87,130.077 L0.88,129.817 L0.88,129.787 L0.9,129.517 L0.9,129.487 L0.92,129.227 L0.92,129.207 L0.93,128.947 L0.93,128.917 L0.95,128.657 L0.95,128.627 L0.96,128.367 L0.96,128.337 L0.97,128.077 L0.97,128.047 L0.99,127.787 L0.99,127.757 L1.01,127.497 L1.01,127.467 L1.04,127.207 L1.04,127.177 L1.06,126.917 L1.07,126.897 L1.09,126.637 L1.09,126.617 L1.12,126.357 L1.12,126.337 L1.15,126.077 L1.16,126.047 L1.19,125.787 L1.19,125.757 L1.22,125.497 L1.22,125.477 L1.25,125.217 L1.25,125.197 L1.28,124.937 L1.29,124.907 L1.32,124.647 L1.32,124.617 L1.35,124.367 L1.35,124.337 L1.38,124.077 L1.38,124.047 L1.41,123.787 L1.42,123.757 L1.45,123.507 L1.45,123.477 L1.49,123.217 L1.49,123.187 L1.52,122.927 L1.53,122.897 L1.56,122.647 L1.57,122.617 L1.61,122.357 L1.62,122.337 L1.66,122.077 L1.66,122.057 L1.7,121.797 L1.7,121.777 L1.74,121.527 L1.75,121.497 L1.79,121.247 L1.79,121.217 L1.86,120.957 L1.87,120.927 L1.91,120.677 L1.91,120.647 L1.96,120.397 L1.96,120.377 L2.01,120.127 L2.01,120.107 L2.06,119.847 L2.07,119.827 L2.12,119.577 L2.13,119.557 L2.18,119.307 L2.19,119.277 L2.24,119.027 L2.25,118.997 L2.3,118.747 L2.3,118.717 L2.35,118.467 L2.35,118.447 L2.4,118.197 L2.41,118.177 L2.46,117.927 L2.47,117.907 L2.53,117.657 L2.53,117.627 L2.59,117.377 L2.6,117.347 L2.65,117.097 L2.66,117.067 L2.72,116.817 L2.72,116.787 L2.78,116.537 L2.79,116.507 L2.85,116.257 L2.85,116.227 L2.91,115.977 L2.92,115.957 L2.98,115.707 L2.98,115.687 L3.04,115.437 L3.05,115.407 L3.12,115.157 L3.12,115.137 L3.19,114.887 L3.19,114.867 L3.26,114.617 L3.27,114.587 L3.34,114.337 L3.34,114.307 L3.41,114.057 L3.42,114.027 L3.49,113.787 L3.5,113.767 L3.57,113.517 L3.58,113.492 L3.65,113.242 L3.66,113.212 L3.73,112.968 L3.74,112.948 L3.82,112.698 L3.83,112.678 L3.9,112.438 L3.91,112.418 L3.98,112.175 L3.99,112.155 L4.06,111.907 L4.07,111.877 L4.15,111.633 L4.16,111.603 L4.24,111.363 L4.24,111.343 L4.32,111.103 L4.32,111.073 L4.4,110.833 L4.41,110.813 L4.49,110.573 L4.5,110.543 L4.58,110.303 L4.59,110.273 L4.67,110.033 L4.68,110.003 L4.76,109.763 L4.77,109.743 L4.86,109.503 L4.87,109.483 L4.95,109.243 L4.96,109.218 L5.04,108.978 L5.05,108.958 L5.14,108.718 L5.15,108.698 L5.24,108.458 L5.24,108.438 L5.33,108.198 L5.34,108.178 L5.43,107.938 L5.44,107.908 L5.53,107.668 L5.54,107.648 L5.63,107.408 L5.64,107.378 L5.74,107.148 L5.75,107.128 L5.85,106.888 L5.86,106.868 L5.96,106.628 L5.97,106.598 L6.07,106.358 L6.08,106.328 L6.18,106.088 L6.19,106.058 L6.29,105.818 L6.3,105.788 L6.4,105.548 L6.41,105.518 L6.51,105.278 L6.52,105.253 L6.62,105.023 L6.63,104.993 L6.73,104.763 L6.74,104.733 L6.84,104.493 L6.85,104.473 L6.96,104.233 L6.97,104.213 L7.08,103.983 L7.09,103.963 L7.19,103.733 L7.2,103.703 L7.31,103.473 L7.32,103.453 L7.43,103.223 L7.44,103.203 L7.55,102.973 L7.56,102.953 L7.67,102.723 L7.68,102.693 L7.79,102.463 L7.8,102.443 L7.91,102.213 L7.92,102.183 L8.03,101.953 L8.04,101.933 L8.15,101.703 L8.16,101.683 L8.27,101.453 L8.28,101.433 L8.39,101.203 L8.4,101.183 L8.52,100.963 L8.53,100.943 L8.65,100.713 L8.67,100.683 L8.79,100.453 L8.8,100.433 L8.92,100.203 L8.93,100.173 L9.05,99.953 L9.06,99.933 L9.18,99.713 L9.19,99.693 L9.31,99.473 L9.32,99.443 L9.44,99.223 L9.46,99.203 L9.58,98.983 L9.59,98.953 L9.71,98.733 L9.73,98.713 L9.85,98.493 L9.86,98.473 L9.98,98.253 L10,98.223 L10.13,98.003 L10.14,97.983 L10.26,97.763 L10.27,97.743 L10.4,97.523 L10.41,97.503 L10.54,97.283 L10.55,97.263 L10.68,97.043 L10.7,97.023 L10.83,96.803 L10.84,96.783 L10.97,96.563 L10.99,96.543 L11.12,96.323 L11.13,96.303 L11.26,96.083 L11.28,96.063 L11.41,95.843 L11.42,95.823 L11.56,95.603 L11.58,95.573 L11.72,95.353 L11.73,95.333 L11.86,95.123 L11.88,95.103 L12.02,94.893 L12.04,94.873 L12.17,94.653 L12.18,94.633 L12.32,94.423 L12.33,94.403 L12.47,94.193 L12.49,94.173 L12.63,93.953 L12.65,93.933 L12.79,93.723 L12.8,93.693 L12.94,93.483 L12.95,93.463 L13.09,93.253 L13.1,93.233 L13.25,93.023 L13.27,93.003 L13.41,92.793 L13.43,92.773 L13.58,92.563 L13.59,92.543 L13.74,92.333 L13.75,92.313 L13.9,92.103 L13.91,92.083 L14.06,91.873 L14.08,91.853 L14.23,91.643 L14.24,91.623 L14.39,91.413 L14.41,91.393 L14.56,91.193 L14.57,91.173 L14.72,90.963 L14.74,90.943 L14.89,90.743 L14.91,90.723 L15.06,90.523 L15.08,90.503 L15.23,90.303 L15.25,90.283 L15.4,90.083 L15.41,90.063 L15.56,89.863 L15.58,89.843 L15.74,89.643 L15.76,89.623 L15.92,89.423 L15.94,89.403 L16.1,89.203 L16.12,89.183 L16.28,88.983 L16.3,88.963 L16.46,88.763 L16.48,88.733 L16.64,88.533 L16.65,88.513 L16.81,88.313 L16.83,88.293 L16.99,88.093 L17.01,88.073 L17.17,87.883 L17.19,87.863 L17.35,87.663 L17.37,87.643 L17.53,87.443 L17.55,87.423 L17.72,87.233 L17.74,87.213 L17.9,87.013 L17.92,86.993 L18.08,86.803 L18.1,86.783 L18.26,86.583 L18.28,86.563 L18.45,86.363 L18.46,86.343 L18.63,86.153 L18.65,86.133 L18.82,85.943 L18.84,85.923 L19.01,85.733 L19.03,85.713 L19.2,85.523 L19.21,85.503 L19.38,85.313 L19.4,85.293 L19.57,85.103 L19.59,85.083 L19.76,84.893 L19.77,84.873 L19.94,84.683 L19.96,84.663 L20.14,84.473 L20.15,84.453 L20.33,84.263 L20.35,84.243 L20.54,84.063 L20.56,84.043 L20.74,83.853 L20.76,83.833 L20.94,83.643 L20.96,83.623 L21.14,83.443 L21.16,83.423 L21.34,83.243 L21.36,83.223 L21.54,83.043 L21.56,83.023 L21.75,82.843 L21.77,82.823 L21.95,82.643 L21.97,82.623 L22.15,82.443 L22.17,82.423 L22.35,82.243 L22.37,82.223 L22.55,82.043 L22.57,82.023 L22.75,81.843 L22.77,81.823 L22.95,81.643 L22.97,81.623 L23.15,81.443 L23.17,81.423 L23.36,81.253 L23.38,81.233 L23.57,81.063 L23.59,81.043 L23.78,80.863 L23.8,80.843 L23.99,80.663 L24.01,80.653 L24.2,80.483 L24.22,80.473 L24.41,80.303 L24.43,80.283 L24.62,80.113 L24.64,80.093 L24.83,79.923 L24.85,79.903 L25.04,79.733 L25.06,79.723 L25.26,79.553 L25.28,79.533 L25.48,79.363 L25.5,79.343 L25.7,79.173 L25.72,79.153 L25.92,78.993 L25.94,78.973 L26.14,78.813 L26.16,78.793 L26.35,78.633 L26.37,78.613 L26.57,78.453 L26.59,78.433 L26.79,78.273 L26.81,78.263 L27.01,78.103 L27.03,78.083 L27.23,77.923 L27.25,77.903 L27.45,77.743 L27.47,77.723 L27.68,77.563 L27.7,77.543 L27.9,77.383 L27.92,77.363 L28.13,77.203 L28.15,77.183 L28.36,77.023 L28.38,77.003 L28.58,76.843 L28.6,76.833 L28.81,76.673 L28.83,76.653 L29.03,76.493 L29.05,76.473 L29.26,76.323 L29.28,76.303 L29.49,76.143 L29.51,76.123 L29.72,75.973 L29.74,75.963 L29.95,75.813 L29.98,75.793 L30.19,75.643 L30.21,75.633 L30.42,75.483 L30.44,75.463 L30.65,75.303 L30.67,75.293 L30.89,75.143 L30.91,75.123 L31.12,74.973 L31.15,74.963 L31.36,74.813 L31.38,74.803 L31.59,74.653 L31.61,74.643 L31.83,74.493 L31.85,74.473 L32.06,74.323 L32.08,74.313 L32.3,74.173 L32.32,74.163 L32.53,74.013 L32.56,73.993 L32.78,73.853 L32.8,73.833 L33.02,73.683 L33.04,73.663 L33.26,73.523 L33.29,73.513 L33.51,73.373 L33.53,73.353 L33.75,73.213 L33.77,73.203 L33.99,73.063 L34.01,73.053 L34.23,72.913 L34.25,72.903 L34.47,72.763 L34.5,72.753 L34.72,72.623 L34.73,72.623 L135.24,10.623 L135.25,10.613 L135.46,10.483 L135.48,10.473 L135.7,10.333 L135.73,10.313 L135.95,10.183 L135.98,10.163 L136.2,10.033 L136.23,10.013 L136.45,9.883 L136.48,9.873 L136.71,9.743 L136.73,9.723 L136.95,9.593 L136.98,9.583 L137.2,9.453 L137.22,9.443 L137.45,9.323 L137.47,9.303 L137.7,9.183 L137.72,9.163 L137.94,9.043 L137.97,9.033 L138.2,8.913 L138.22,8.893 L138.44,8.773 L138.47,8.753 L138.69,8.633 L138.72,8.613 L138.94,8.493 L138.96,8.473 L139.19,8.353 L139.21,8.343 L139.43,8.223 L139.46,8.213 L139.68,8.093 L139.71,8.083 L139.94,7.963 L139.97,7.953 L140.2,7.833 L140.22,7.823 L140.45,7.713 L140.48,7.703 L140.71,7.593 L140.74,7.583 L140.96,7.473 L140.99,7.463 L141.22,7.353 L141.24,7.343 L141.47,7.233 L141.5,7.223 L141.73,7.113 L141.76,7.093 L141.99,6.983 L142.02,6.973 L142.25,6.863 L142.28,6.853 L142.51,6.753 L142.54,6.743 L142.77,6.643 L142.79,6.623 L143.02,6.523 L143.04,6.513 L143.27,6.413 L143.3,6.393 L143.53,6.293 L143.56,6.283 L143.79,6.183 L143.82,6.173 L144.05,6.073 L144.08,6.063 L144.31,5.963 L144.34,5.953 L144.57,5.853 L144.6,5.843 L144.83,5.753 L144.86,5.743 L145.09,5.643 L145.12,5.633 L145.36,5.533 L145.39,5.523 L145.63,5.423 L145.66,5.403 L145.89,5.313 L145.91,5.303 L146.15,5.213 L146.18,5.203 L146.41,5.113 L146.43,5.103 L146.67,5.013 L146.7,5.003 L146.94,4.923 L146.97,4.913 L147.21,4.823 L147.24,4.813 L147.48,4.723 L147.51,4.713 L147.75,4.633 L147.78,4.623 L148.02,4.543 L148.05,4.533 L148.28,4.453 L148.31,4.443 L148.55,4.363 L148.58,4.353 L148.81,4.273 L148.84,4.263 L149.08,4.183 L149.1,4.173 L149.34,4.093 L149.37,4.083 L149.61,4.003 L149.64,3.993 L149.88,3.913 L149.91,3.903 L150.15,3.833 L150.17,3.823 L150.41,3.753 L150.44,3.743 L150.68,3.673 L150.71,3.673 L150.95,3.603 L150.98,3.593 L151.22,3.523 L151.24,3.513 L151.48,3.443 L151.5,3.433 L151.74,3.363 L151.77,3.353 L152.01,3.283 L152.04,3.273 L152.28,3.203 L152.31,3.193 L152.55,3.133 L152.58,3.123 L152.82,3.063 L152.84,3.053 L153.08,2.983 L153.104,2.973 L153.354,2.913 L153.374,2.913 L153.614,2.843 L153.644,2.843 L153.891,2.783 L153.921,2.773 L154.171,2.713 L154.201,2.703 L154.441,2.643 L154.471,2.643 L154.721,2.583 L154.751,2.583 L154.991,2.523 L155.021,2.513 L155.261,2.463 L155.291,2.453 L155.531,2.393 L155.561,2.383 L155.801,2.333 L155.831,2.333 L156.071,2.283 L156.101,2.273 L156.341,2.223 L156.361,2.223 L156.601,2.173 L156.631,2.163 L156.881,2.113 L156.901,2.113 L157.151,2.063 L157.171,2.053 L157.421,2.003 L157.451,1.993 L157.701,1.943 L157.731,1.933 L157.981,1.893 L158.011,1.893 L158.251,1.853 L158.281,1.843 L158.531,1.793 L158.561,1.783 L158.811,1.743 L158.841,1.743 L159.081,1.703 L159.111,1.693 L159.361,1.653 L159.391,1.643 L159.631,1.603 L159.651,1.603 L159.891,1.563 L159.921,1.563 L160.171,1.523 L160.201,1.513 L160.451,1.473 L160.481,1.473 L160.731,1.433 L160.761,1.433 L161.011,1.393 L161.041,1.393 L161.291,1.363 L161.321,1.363 L161.561,1.333 L161.591,1.333 L161.841,1.303 L161.871,1.293 L162.121,1.263 L162.141,1.253 L162.391,1.233 L162.421,1.233 L162.661,1.203 L162.691,1.203 L162.931,1.173 L162.961,1.173 L163.211,1.143 L163.241,1.143 L163.491,1.113 L163.521,1.113 L163.761,1.093 L163.791,1.093 L164.041,1.063 L164.071,1.053 L164.321,1.033 L164.351,1.023 L164.601,1.003 L164.631,1.003 L164.877,0.983 L164.907,0.983 L165.157,0.963 L165.187,0.963 L165.437,0.953 L165.467,0.943 L165.717,0.923 L165.737,0.913 L165.987,0.903 L166.017,0.903 L166.267,0.883 L166.287,0.883 L166.537,0.873 L166.567,0.873 L166.817,0.863 L166.847,0.863 L167.097,0.853 L167.127,0.853 L167.377,0.843 L167.407,0.833 L167.657,0.823 L167.687,0.823 L167.937,0.813 L167.967,0.813 L168.217,0.803 L168.247,0.803 L168.497,0.793 L168.527,0.793 L168.777,0.783 L168.797,0.783 L169.047,0.773 L169.357,0.773 L169.607,0.763 L170.187,0.763 L170.24,0.676 Z M170.01,27.676 L169.846,27.676 L169.682,27.678 L169.519,27.678 L169.349,27.682 L169.179,27.686 L169.009,27.691 L168.839,27.701 L168.669,27.711 L168.499,27.721 L168.339,27.731 L168.169,27.741 L168.009,27.751 L167.849,27.761 L167.689,27.771 L167.519,27.781 L167.359,27.791 L167.189,27.811 L167.019,27.831 L166.859,27.851 L166.689,27.871 L166.519,27.891 L166.349,27.911 L166.189,27.931 L166.019,27.951 L165.859,27.971 L165.699,27.991 L165.529,28.011 L165.369,28.031 L165.209,28.051 L165.049,28.071 L164.889,28.091 L164.719,28.111 L164.559,28.141 L164.399,28.161 L164.229,28.191 L164.069,28.221 L163.909,28.251 L163.749,28.281 L163.589,28.311 L163.429,28.341 L163.269,28.371 L163.109,28.391 L162.939,28.421 L162.779,28.451 L162.609,28.481 L162.449,28.511 L162.289,28.541 L162.129,28.571 L161.969,28.611 L161.809,28.651 L161.649,28.691 L161.489,28.721 L161.329,28.751 L161.169,28.791 L161.009,28.831 L160.849,28.871 L160.689,28.911 L160.529,28.951 L160.369,28.991 L160.209,29.031 L160.049,29.071 L159.889,29.111 L159.729,29.151 L159.569,29.201 L159.409,29.241 L159.249,29.291 L159.099,29.341 L158.939,29.391 L158.779,29.441 L158.619,29.491 L158.459,29.541 L158.299,29.591 L158.149,29.641 L157.989,29.691 L157.829,29.751 L157.669,29.801 L157.509,29.851 L157.349,29.911 L157.189,29.961 L157.029,30.011 L156.879,30.061 L156.719,30.121 L156.559,30.181 L156.399,30.241 L156.249,30.301 L156.089,30.361 L155.939,30.421 L155.789,30.481 L155.629,30.551 L155.469,30.611 L155.309,30.671 L155.149,30.731 L154.999,30.801 L154.849,30.861 L154.689,30.931 L154.539,31.001 L154.389,31.071 L154.239,31.141 L154.079,31.211 L153.929,31.281 L153.769,31.351 L153.619,31.421 L153.469,31.491 L153.319,31.561 L153.159,31.631 L153.009,31.701 L152.859,31.771 L152.709,31.851 L152.559,31.931 L152.409,32.001 L152.259,32.081 L152.109,32.151 L151.959,32.231 L151.809,32.311 L151.659,32.391 L151.509,32.471 L151.359,32.551 L151.209,32.641 L151.069,32.721 L150.919,32.801 L150.779,32.881 L150.629,32.971 L150.479,33.061 L150.329,33.151 L150.189,33.231 L150.039,33.321 L149.899,33.411 L149.749,33.501 L149.599,33.591 L149.439,33.691 L49.039,95.571 L48.869,95.681 L48.709,95.781 L48.559,95.881 L48.409,95.981 L48.259,96.081 L48.109,96.181 L47.959,96.281 L47.809,96.381 L47.659,96.481 L47.509,96.581 L47.359,96.681 L47.209,96.781 L47.059,96.891 L46.919,96.991 L46.779,97.091 L46.629,97.191 L46.489,97.291 L46.349,97.391 L46.209,97.491 L46.069,97.591 L45.929,97.691 L45.789,97.791 L45.649,97.901 L45.509,98.001 L45.369,98.111 L45.229,98.221 L45.089,98.331 L44.949,98.441 L44.809,98.551 L44.669,98.661 L44.539,98.771 L44.399,98.881 L44.259,98.991 L44.129,99.101 L43.989,99.211 L43.849,99.321 L43.719,99.431 L43.579,99.541 L43.449,99.651 L43.319,99.761 L43.189,99.881 L43.059,100.001 L42.929,100.111 L42.799,100.221 L42.669,100.341 L42.539,100.461 L42.409,100.581 L42.279,100.701 L42.149,100.821 L42.019,100.941 L41.889,101.061 L41.759,101.181 L41.629,101.301 L41.499,101.421 L41.369,101.541 L41.249,101.661 L41.119,101.781 L40.999,101.911 L40.869,102.031 L40.749,102.161 L40.629,102.281 L40.509,102.411 L40.389,102.531 L40.269,102.661 L40.149,102.791 L40.019,102.921 L39.899,103.041 L39.779,103.171 L39.659,103.301 L39.539,103.431 L39.429,103.561 L39.309,103.691 L39.189,103.821 L39.069,103.951 L38.949,104.091 L38.829,104.221 L38.719,104.351 L38.609,104.481 L38.489,104.621 L38.379,104.751 L38.259,104.881 L38.149,105.021 L38.039,105.151 L37.929,105.291 L37.819,105.431 L37.709,105.571 L37.599,105.711 L37.489,105.851 L37.379,105.991 L37.279,106.131 L37.169,106.271 L37.059,106.411 L36.949,106.551 L36.839,106.691 L36.739,106.831 L36.639,106.971 L36.539,107.111 L36.439,107.261 L36.339,107.401 L36.239,107.541 L36.139,107.691 L36.039,107.831 L35.939,107.971 L35.839,108.111 L35.739,108.251 L35.649,108.401 L35.549,108.551 L35.449,108.691 L35.349,108.841 L35.259,108.991 L35.169,109.131 L35.079,109.281 L34.989,109.431 L34.899,109.581 L34.809,109.731 L34.709,109.881 L34.609,110.031 L34.519,110.181 L34.429,110.331 L34.339,110.481 L34.249,110.631 L34.159,110.781 L34.069,110.931 L33.979,111.081 L33.889,111.231 L33.799,111.381 L33.709,111.531 L33.619,111.691 L33.529,111.841 L33.439,111.991 L33.349,112.151 L33.269,112.301 L33.189,112.461 L33.109,112.621 L33.029,112.781 L32.949,112.931 L32.869,113.081 L32.789,113.241 L32.709,113.391 L32.629,113.551 L32.559,113.701 L32.479,113.861 L32.399,114.021 L32.319,114.181 L32.239,114.341 L32.159,114.501 L32.089,114.661 L32.019,114.821 L31.949,114.981 L31.879,115.141 L31.809,115.301 L31.739,115.461 L31.669,115.621 L31.599,115.781 L31.529,115.941 L31.469,116.101 L31.399,116.261 L31.329,116.431 L31.259,116.591 L31.189,116.751 L31.119,116.911 L31.059,117.071 L30.989,117.241 L30.919,117.401 L30.859,117.561 L30.799,117.731 L30.739,117.891 L30.679,118.061 L30.619,118.221 L30.559,118.391 L30.499,118.561 L30.439,118.731 L30.389,118.901 L30.329,119.061 L30.269,119.231 L30.219,119.401 L30.169,119.561 L30.119,119.731 L30.059,119.901 L30.009,120.061 L29.959,120.221 L29.909,120.391 L29.849,120.561 L29.799,120.731 L29.749,120.891 L29.699,121.061 L29.649,121.231 L29.599,121.401 L29.549,121.571 L29.499,121.741 L29.459,121.911 L29.419,122.081 L29.369,122.251 L29.329,122.421 L29.279,122.591 L29.239,122.761 L29.199,122.931 L29.159,123.111 L29.119,123.281 L29.079,123.451 L29.039,123.621 L28.999,123.791 L28.959,123.961 L28.919,124.131 L28.889,124.301 L28.849,124.471 L28.819,124.641 L28.789,124.821 L28.759,125.001 L28.729,125.181 L28.699,125.361 L28.669,125.531 L28.639,125.701 L28.609,125.881 L28.579,126.061 L28.549,126.231 L28.519,126.401 L28.489,126.571 L28.459,126.751 L28.439,126.931 L28.419,127.111 L28.399,127.281 L28.369,127.461 L28.339,127.631 L28.319,127.811 L28.299,127.991 L28.279,128.171 L28.259,128.351 L28.239,128.531 L28.219,128.711 L28.199,128.881 L28.179,129.061 L28.159,129.241 L28.149,129.421 L28.129,129.601 L28.109,129.781 L28.099,129.961 L28.089,130.141 L28.079,130.321 L28.069,130.501 L28.059,130.681 L28.049,130.861 L28.039,131.041 L28.029,131.221 L28.019,131.401 L28.009,131.581 L28.009,131.761 L27.999,131.941 L27.989,132.121 L27.989,132.301 L27.979,132.481 L27.979,259.281 L27.989,259.461 L27.989,260.001 L27.999,260.171 L28.009,260.351 L28.019,260.531 L28.029,260.711 L28.039,260.891 L28.049,261.071 L28.059,261.251 L28.069,261.431 L28.079,261.611 L28.099,261.791 L28.109,261.971 L28.119,262.151 L28.129,262.331 L28.149,262.501 L28.169,262.681 L28.189,262.851 L28.199,263.031 L28.219,263.201 L28.239,263.371 L28.259,263.541 L28.279,263.711 L28.299,263.891 L28.319,264.061 L28.339,264.231 L28.359,264.411 L28.379,264.591 L28.399,264.761 L28.419,264.941 L28.449,265.111 L28.479,265.281 L28.509,265.451 L28.539,265.621 L28.569,265.801 L28.599,265.971 L28.629,266.141 L28.659,266.311 L28.689,266.481 L28.729,266.651 L28.759,266.821 L28.789,266.991 L28.819,267.161 L28.859,267.331 L28.899,267.501 L28.929,267.671 L28.969,267.841 L29.009,268.011 L29.049,268.181 L29.089,268.351 L29.129,268.521 L29.169,268.691 L29.209,268.861 L29.249,269.021 L29.299,269.181 L29.339,269.351 L29.379,269.521 L29.419,269.691 L29.469,269.861 L29.509,270.021 L29.549,270.191 L29.589,270.351 L29.639,270.521 L29.679,270.681 L29.729,270.851 L29.779,271.021 L29.829,271.181 L29.879,271.351 L29.929,271.521 L29.979,271.681 L30.029,271.851 L30.089,272.011 L30.149,272.171 L30.209,272.331 L30.269,272.491 L30.319,272.651 L30.379,272.821 L30.439,272.981 L30.499,273.141 L30.559,273.301 L30.619,273.461 L30.679,273.621 L30.739,273.781 L30.799,273.941 L30.859,274.101 L30.919,274.261 L30.989,274.421 L31.059,274.581 L31.119,274.741 L31.179,274.901 L31.239,275.061 L31.299,275.221 L31.359,275.381 L31.429,275.541 L31.499,275.701 L31.569,275.861 L31.639,276.021 L31.709,276.181 L31.779,276.341 L31.849,276.501 L31.919,276.661 L31.989,276.821 L32.059,276.981 L32.129,277.141 L32.199,277.291 L32.279,277.451 L32.359,277.601 L32.439,277.761 L32.519,277.911 L32.599,278.061 L32.679,278.211 L32.759,278.361 L32.839,278.511 L32.919,278.661 L33.009,278.811 L33.089,278.961 L33.169,279.111 L33.249,279.261 L33.339,279.411 L33.429,279.561 L33.509,279.711 L33.589,279.861 L33.669,280.011 L33.759,280.161 L33.839,280.311 L33.929,280.451 L34.019,280.601 L34.109,280.741 L34.199,280.891 L34.289,281.041 L34.379,281.181 L34.469,281.321 L34.559,281.461 L34.649,281.601 L34.739,281.751 L34.829,281.901 L34.929,282.041 L35.019,282.181 L35.109,282.331 L35.199,282.471 L35.289,282.611 L35.389,282.751 L35.489,282.891 L35.589,283.041 L35.689,283.181 L35.789,283.321 L35.889,283.461 L35.989,283.601 L36.089,283.741 L36.189,283.881 L36.289,284.021 L36.399,284.161 L36.509,284.301 L36.609,284.441 L36.709,284.581 L36.809,284.721 L36.909,284.861 L37.019,284.991 L37.129,285.121 L37.239,285.261 L37.349,285.391 L37.459,285.531 L37.569,285.661 L37.679,285.791 L37.789,285.921 L37.899,286.051 L38.009,286.181 L38.119,286.311 L38.229,286.441 L38.339,286.571 L38.449,286.701 L38.559,286.831 L38.669,286.961 L38.789,287.091 L38.909,287.221 L39.019,287.351 L39.139,287.471 L39.259,287.601 L39.379,287.721 L39.499,287.851 L39.609,287.981 L39.729,288.111 L39.849,288.231 L39.969,288.351 L40.089,288.471 L40.209,288.591 L40.329,288.721 L40.449,288.841 L40.569,288.961 L40.689,289.081 L40.809,289.201 L40.929,289.321 L41.059,289.441 L41.179,289.561 L41.299,289.681 L41.429,289.801 L41.549,289.921 L41.669,290.041 L41.799,290.161 L41.929,290.271 L42.059,290.381 L42.189,290.501 L42.319,290.621 L42.449,290.731 L42.579,290.841 L42.709,290.961 L42.839,291.081 L42.969,291.191 L43.109,291.301 L43.249,291.411 L43.389,291.521 L43.519,291.631 L43.649,291.741 L43.789,291.851 L43.919,291.961 L44.059,292.061 L44.189,292.171 L44.329,292.281 L44.469,292.391 L44.609,292.501 L44.739,292.601 L44.879,292.711 L45.019,292.811 L45.159,292.921 L45.299,293.031 L45.439,293.131 L45.579,293.231 L45.729,293.331 L45.869,293.431 L46.009,293.531 L46.149,293.631 L46.289,293.731 L46.429,293.831 L46.569,293.931 L46.719,294.031 L46.869,294.121 L47.019,294.221 L47.159,294.321 L47.309,294.421 L47.459,294.521 L47.599,294.611 L47.749,294.701 L47.899,294.791 L48.049,294.881 L48.199,294.971 L48.349,295.061 L48.509,295.151 L48.659,295.241 L48.809,295.331 L48.979,295.431 L153.659,356.631 L153.789,356.711 L153.899,356.771 L154.019,356.831 L154.139,356.891 L154.259,356.951 L154.369,357.021 L154.489,357.081 L154.609,357.141 L154.729,357.201 L154.849,357.271 L154.969,357.331 L155.089,357.391 L155.209,357.451 L155.329,357.511 L155.449,357.571 L155.569,357.631 L155.689,357.691 L155.809,357.751 L155.919,357.811 L156.039,357.871 L156.159,357.931 L156.279,357.981 L156.399,358.041 L156.519,358.091 L156.639,358.141 L156.759,358.191 L156.879,358.251 L156.999,358.311 L157.119,358.361 L157.239,358.421 L157.359,358.471 L157.479,358.521 L157.599,358.571 L157.719,358.621 L157.839,358.671 L157.959,358.721 L158.079,358.771 L158.199,358.821 L158.319,358.871 L158.439,358.911 L158.569,358.961 L158.689,359.011 L158.809,359.061 L158.929,359.111 L159.049,359.161 L159.169,359.201 L159.289,359.251 L159.409,359.291 L159.529,359.331 L159.659,359.371 L159.779,359.411 L159.889,359.451 L160.149,359.531 L160.399,359.611 L160.649,359.681 L160.899,359.751 L161.149,359.821 L161.399,359.891 L161.649,359.961 L161.899,360.031 L162.149,360.101 L162.399,360.161 L162.649,360.221 L162.899,360.281 L163.149,360.331 L163.399,360.391 L163.649,360.441 L163.899,360.491 L164.149,360.541 L164.399,360.581 L164.649,360.631 L164.899,360.671 L165.149,360.711 L165.409,360.751 L165.659,360.791 L165.919,360.821 L166.179,360.851 L166.439,360.881 L166.699,360.901 L166.949,360.921 L167.209,360.941 L167.459,360.961 L167.719,360.981 L167.979,361.001 L168.229,361.021 L168.479,361.031 L168.729,361.041 L168.989,361.051 L170.269,361.051 L170.529,361.041 L170.789,361.041 L171.049,361.031 L171.309,361.021 L171.569,361.001 L171.829,360.981 L172.089,360.971 L172.349,360.951 L172.609,360.931 L172.869,360.911 L173.119,360.891 L173.379,360.861 L173.639,360.831 L173.889,360.801 L174.149,360.771 L174.399,360.731 L174.659,360.691 L174.909,360.651 L175.169,360.611 L175.419,360.571 L175.669,360.521 L175.919,360.481 L176.179,360.431 L176.429,360.381 L176.679,360.321 L176.929,360.271 L177.179,360.211 L177.429,360.151 L177.679,360.091 L177.929,360.031 L178.179,359.961 L178.429,359.891 L178.679,359.821 L178.929,359.751 L179.189,359.671 L179.309,359.631 L179.429,359.591 L179.549,359.551 L179.679,359.511 L179.799,359.471 L179.929,359.431 L180.049,359.391 L180.169,359.351 L180.299,359.311 L180.419,359.271 L180.539,359.231 L180.669,359.181 L180.789,359.141 L180.919,359.101 L181.039,359.051 L181.159,359.011 L181.279,358.971 L181.399,358.931 L181.529,358.881 L181.649,358.841 L181.769,358.791 L181.889,358.741 L182.009,358.691 L182.129,358.641 L182.249,358.591 L182.369,358.541 L182.489,358.491 L182.609,358.441 L182.729,358.391 L182.849,358.341 L182.969,358.281 L183.089,358.221 L183.209,358.171 L183.329,358.111 L183.449,358.051 L183.569,358.001 L183.689,357.941 L183.809,357.881 L183.929,357.821 L184.039,357.761 L184.159,357.701 L184.279,357.641 L184.399,357.581 L184.519,357.521 L184.639,357.461 L184.759,357.401 L184.879,357.341 L184.999,357.281 L185.109,357.221 L185.229,357.161 L185.349,357.101 L185.479,357.031 L301.449,292.401 L301.589,292.331 L301.719,292.261 L301.839,292.191 L301.959,292.121 L302.079,292.051 L302.199,291.971 L302.329,291.901 L302.449,291.831 L302.569,291.761 L302.689,291.691 L302.809,291.611 L302.929,291.531 L303.049,291.461 L303.169,291.391 L303.289,291.321 L303.409,291.241 L303.529,291.161 L303.649,291.091 L303.769,291.011 L303.889,290.941 L303.999,290.861 L304.109,290.781 L304.219,290.701 L304.329,290.621 L304.439,290.541 L304.559,290.461 L304.669,290.381 L304.789,290.301 L304.899,290.221 L305.009,290.141 L305.119,290.061 L305.229,289.981 L305.339,289.901 L305.459,289.821 L305.569,289.731 L305.679,289.651 L305.789,289.561 L305.899,289.481 L306.009,289.391 L306.119,289.301 L306.229,289.211 L306.339,289.131 L306.449,289.051 L306.559,288.961 L306.659,288.871 L306.769,288.781 L306.879,288.691 L306.979,288.611 L307.089,288.521 L307.199,288.421 L307.299,288.331 L307.409,288.241 L307.509,288.151 L307.609,288.061 L307.709,287.961 L307.819,287.871 L307.919,287.771 L308.019,287.681 L308.119,287.581 L308.219,287.481 L308.319,287.391 L308.419,287.291 L308.519,287.201 L308.619,287.101 L308.719,287.001 L308.819,286.901 L308.919,286.801 L309.009,286.701 L309.109,286.601 L309.199,286.501 L309.299,286.401 L309.399,286.301 L309.499,286.201 L309.589,286.101 L309.679,286.001 L309.769,285.901 L309.859,285.801 L309.959,285.701 L310.049,285.601 L310.139,285.501 L310.229,285.401 L310.319,285.301 L310.409,285.201 L310.499,285.101 L310.589,285.001 L310.679,284.891 L310.769,284.781 L310.859,284.671 L310.949,284.571 L311.039,284.471 L311.129,284.371 L311.219,284.261 L311.309,284.161 L311.399,284.051 L311.479,283.951 L311.559,283.841 L311.639,283.731 L311.719,283.631 L311.809,283.521 L311.889,283.411 L311.969,283.301 L312.049,283.191 L312.129,283.081 L312.209,282.971 L312.289,282.861 L312.369,282.751 L312.449,282.641 L312.529,282.531 L312.609,282.421 L312.689,282.311 L312.769,282.201 L312.839,282.091 L312.909,281.971 L312.989,281.851 L313.069,281.741 L313.139,281.631 L313.209,281.521 L313.289,281.401 L313.369,281.291 L313.439,281.181 L313.509,281.061 L313.579,280.941 L313.649,280.821 L313.719,280.701 L313.789,280.591 L313.859,280.471 L313.929,280.351 L313.999,280.241 L314.069,280.121 L314.139,280.001 L314.209,279.881 L314.269,279.761 L314.329,279.641 L314.399,279.521 L314.469,279.401 L314.529,279.281 L314.599,279.161 L314.669,279.041 L314.729,278.921 L314.789,278.801 L314.849,278.671 L314.909,278.551 L314.979,278.431 L315.049,278.311 L315.109,278.191 L315.169,278.071 L315.229,277.951 L315.289,277.821 L315.349,277.701 L315.409,277.581 L315.469,277.451 L315.529,277.331 L315.589,277.211 L315.649,277.081 L315.709,276.951 L315.769,276.821 L315.829,276.701 L315.879,276.581 L315.929,276.451 L315.979,276.321 L316.029,276.191 L316.079,276.071 L316.129,275.941 L316.179,275.811 L316.229,275.681 L316.279,275.561 L316.329,275.431 L316.379,275.301 L316.429,275.171 L316.479,275.041 L316.529,274.911 L316.569,274.781 L316.609,274.651 L316.649,274.521 L316.689,274.391 L316.739,274.261 L316.789,274.131 L316.839,274.001 L316.889,273.871 L316.929,273.741 L316.979,273.611 L317.019,273.481 L317.059,273.351 L317.109,273.221 L317.149,273.091 L317.189,272.961 L317.229,272.831 L317.269,272.701 L317.299,272.571 L317.339,272.441 L317.379,272.311 L317.419,272.181 L317.459,272.051 L317.489,271.921 L317.519,271.781 L317.559,271.651 L317.589,271.521 L317.619,271.381 L317.659,271.251 L317.689,271.121 L317.719,270.991 L317.749,270.861 L317.779,270.721 L317.809,270.591 L317.839,270.461 L317.859,270.321 L317.889,270.181 L317.919,270.051 L317.939,269.911 L317.969,269.781 L317.999,269.641 L318.029,269.501 L318.059,269.371 L318.089,269.231 L318.109,269.091 L318.139,268.951 L318.159,268.821 L318.189,268.691 L318.209,268.551 L318.229,268.411 L318.249,268.271 L318.269,268.131 L318.289,267.991 L318.309,267.851 L318.329,267.711 L318.339,267.571 L318.359,267.441 L318.369,267.301 L318.389,267.161 L318.409,267.031 L318.429,266.891 L318.439,266.751 L318.449,266.611 L318.459,266.471 L318.469,266.331 L318.489,266.191 L318.499,266.051 L318.509,265.911 L318.519,265.771 L318.529,265.631 L318.539,265.491 L318.549,265.351 L318.559,265.211 L318.569,265.071 L318.579,264.931 L318.589,264.791 L318.599,264.651 L318.599,264.371 L318.609,264.231 L318.609,125.8 L318.599,125.677 L318.589,125.547 L318.589,125.417 L318.579,125.287 L318.579,125.157 L318.569,125.027 L318.569,124.897 L318.559,124.767 L318.549,124.647 L318.539,124.517 L318.529,124.387 L318.519,124.257 L318.509,124.137 L318.499,124.007 L318.489,123.887 L318.479,123.757 L318.459,123.627 L318.449,123.507 L318.439,123.387 L318.419,123.267 L318.409,123.147 L318.389,123.017 L318.379,122.897 L318.359,122.777 L318.339,122.647 L318.329,122.517 L318.319,122.397 L318.299,122.287 L318.259,122.024 L318.229,121.769 L318.189,121.509 L318.149,121.259 L318.099,121.009 L318.049,120.759 L318.009,120.509 L317.959,120.259 L317.899,120.009 L317.839,119.759 L317.779,119.509 L317.719,119.259 L317.659,119.009 L317.599,118.759 L317.539,118.509 L317.469,118.259 L317.399,118.009 L317.329,117.759 L317.249,117.509 L317.179,117.269 L317.099,117.029 L317.019,116.789 L316.939,116.549 L316.859,116.309 L316.769,116.069 L316.679,115.829 L316.589,115.599 L316.499,115.359 L316.409,115.119 L316.319,114.879 L316.219,114.649 L316.129,114.409 L316.029,114.179 L315.929,113.949 L315.829,113.719 L315.719,113.489 L315.619,113.259 L315.509,113.029 L315.399,112.799 L315.289,112.579 L315.169,112.349 L315.059,112.119 L314.939,111.889 L314.819,111.669 L314.699,111.449 L314.579,111.229 L314.459,111.009 L314.339,110.789 L314.209,110.569 L314.079,110.349 L313.949,110.129 L313.809,109.909 L313.679,109.699 L313.549,109.489 L313.409,109.279 L313.269,109.069 L313.129,108.859 L312.989,108.649 L312.849,108.439 L312.709,108.229 L312.559,108.029 L312.409,107.829 L312.259,107.629 L312.109,107.429 L311.959,107.229 L311.799,107.029 L311.639,106.829 L311.479,106.629 L311.319,106.429 L311.159,106.239 L310.989,106.049 L310.829,105.859 L310.659,105.669 L310.489,105.479 L310.319,105.289 L310.149,105.099 L309.979,104.909 L309.799,104.729 L309.619,104.549 L309.439,104.369 L309.259,104.189 L309.079,104.009 L308.889,103.829 L308.699,103.649 L308.509,103.479 L308.319,103.309 L308.129,103.139 L307.939,102.969 L307.749,102.799 L307.549,102.629 L307.349,102.469 L307.149,102.309 L306.959,102.149 L306.749,101.979 L306.659,101.909 L306.559,101.829 L306.459,101.749 L306.359,101.669 L306.259,101.589 L306.159,101.519 L306.059,101.439 L305.959,101.359 L305.849,101.279 L305.739,101.199 L305.639,101.119 L305.539,101.039 L305.439,100.959 L305.339,100.889 L305.239,100.809 L305.129,100.729 L305.029,100.659 L304.929,100.589 L304.819,100.509 L304.709,100.439 L304.599,100.369 L304.499,100.299 L304.389,100.229 L304.279,100.159 L304.169,100.089 L304.059,100.019 L303.949,99.949 L303.839,99.879 L303.729,99.809 L303.619,99.739 L303.509,99.669 L303.399,99.609 L303.289,99.549 L303.159,99.479 L190,33.09 L189.84,32.992 L189.695,32.912 L189.545,32.822 L189.395,32.732 L189.248,32.649 L189.098,32.569 L188.953,32.489 L188.803,32.409 L188.653,32.329 L188.503,32.249 L188.356,32.169 L188.206,32.089 L188.056,32.009 L187.906,31.929 L187.756,31.849 L187.606,31.769 L187.456,31.689 L187.303,31.619 L187.153,31.539 L187.003,31.469 L186.853,31.399 L186.703,31.319 L186.548,31.249 L186.398,31.179 L186.248,31.109 L186.092,31.039 L185.942,30.969 L185.792,30.909 L185.637,30.839 L185.485,30.769 L185.335,30.699 L185.18,30.639 L185.03,30.579 L184.87,30.519 L184.716,30.449 L184.558,30.389 L184.398,30.319 L184.238,30.259 L184.083,30.199 L183.928,30.139 L183.771,30.079 L183.611,30.019 L183.451,29.959 L183.301,29.899 L183.151,29.849 L183.001,29.799 L182.841,29.739 L182.681,29.689 L182.531,29.639 L182.371,29.589 L182.211,29.539 L182.061,29.489 L181.901,29.439 L181.741,29.389 L181.581,29.339 L181.431,29.289 L181.271,29.239 L181.111,29.189 L180.951,29.139 L180.791,29.099 L180.631,29.049 L180.471,29.009 L180.311,28.959 L180.151,28.919 L179.991,28.879 L179.831,28.839 L179.671,28.789 L179.511,28.749 L179.351,28.709 L179.191,28.679 L179.031,28.639 L178.871,28.599 L178.711,28.559 L178.551,28.529 L178.391,28.489 L178.231,28.459 L178.071,28.429 L177.911,28.389 L177.751,28.359 L177.591,28.329 L177.431,28.299 L177.271,28.269 L177.111,28.239 L176.951,28.209 L176.781,28.179 L176.621,28.159 L176.461,28.139 L176.301,28.119 L176.141,28.099 L175.981,28.069 L175.821,28.039 L175.661,28.019 L175.491,27.989 L175.331,27.969 L175.171,27.939 L175.011,27.919 L174.851,27.899 L174.691,27.879 L174.531,27.859 L174.371,27.839 L174.201,27.819 L174.041,27.809 L173.881,27.789 L173.721,27.769 L173.561,27.759 L173.401,27.749 L173.241,27.739 L173.081,27.729 L172.921,27.719 L172.751,27.709 L172.581,27.699 L172.421,27.689 L172.261,27.679 L172.101,27.679 L171.941,27.669 L171.781,27.659 L171.611,27.659 L171.451,27.649 L171.291,27.639 L171.141,27.629 L170.981,27.619 L170.651,27.619 L170.491,27.609 L170.171,27.609 L170.01,27.676 Z" id="Shape" fill="#C9177E"></path>
+            <polygon id="Path" fill="#FFFFFF" fill-rule="nonzero" points="93.91 296.916 93.91 89.696 137.264 89.696 137.264 165.176 209.18 165.176 209.18 89.696 252.66 89.696 252.66 296.916 209.18 296.916 209.18 206.31 137.264 206.31 137.264 296.916"></polygon>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/ibm.svg b/go.dev/_content/images/logos/ibm.svg
new file mode 100644
index 0000000..ad0cb64
--- /dev/null
+++ b/go.dev/_content/images/logos/ibm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="400"><clipPath id="b"><path d="M0-1v83h55.937v236H1.523v82h194.65v-82h-55.938V82h54.414V-1zm554.02 1v82h55.938v236h-54.414v82h138.71V171.84l82.656 228.08 1.68.04 81.172-228.12V400h140.23v-82h-55.938V82h54.415V0h-156.33l-64.726 182.89L711.866 0z"/><path id="a" d="M222.23 0v82h55.937v130h215.31v-24.928s18.011-14.042 23.75-27.367l11.523-25.855s5.352-14.472 5.352-27.405l-2.305-25.855s-3.616-21.063-9.922-27.328l-22.266-25.895S471.276 0 433.75 0zm140.23 82h81.992v76H362.46z"/><use transform="matrix(1 0 0 -1 0 400)" xlink:href="#a"/></clipPath><path fill="none" stroke="#1f70c1" stroke-width="27.37" d="M0 13.683h1030v53.232H0m0 53.232h975v53.242H0v53.222h975v53.222H0m0 53.242h1030v53.242H0" clip-path="url(#b)"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/kubernetes.svg b/go.dev/_content/images/logos/kubernetes.svg
new file mode 100644
index 0000000..7d21699
--- /dev/null
+++ b/go.dev/_content/images/logos/kubernetes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 67 65" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g fill-rule="nonzero"><path d="M31.8.004a4.28 4.28 0 0 0-1.646.436l-22.3 10.612a4.22 4.22 0 0 0-2.3 2.864L.11 37.798a4.12 4.12 0 0 0 .6 3.254q.114.174.24.336l15.4 19.148a4.26 4.26 0 0 0 3.324 1.568h24.7c1.292.002 2.516-.6 3.328-1.586l15.392-19.152c.808-1 1.1-2.32.8-3.572L58.4 13.912c-.3-1.256-1.14-2.3-2.3-2.864L33.847.442a4.28 4.28 0 0 0-2.066-.438z" stroke="none" fill="#326ce5"></path><path d="M32.006 8.135a1.41 1.41 0 0 0-1.31 1.48v.376c.037.425.1.848.184 1.266.123.8.167 1.61.132 2.42a1.46 1.46 0 0 1-.436.69l-.03.564a17.44 17.44 0 0 0-2.406.372 17.13 17.13 0 0 0-8.708 4.97l-.48-.34c-.264.08-.548.05-.8-.08a12.44 12.44 0 0 1-1.794-1.62c-.273-.326-.565-.637-.874-.93l-.296-.236a1.6 1.6 0 0 0-.926-.35 1.28 1.28 0 0 0-1.062.472 1.41 1.41 0 0 0 .328 1.966l.276.2c.355.236.724.452 1.104.646.713.394 1.382.864 1.996 1.4a1.48 1.48 0 0 1 .266.768l.436.4A17.24 17.24 0 0 0 14.9 34.581l-.56.16a1.83 1.83 0 0 1-.572.576c-.78.21-1.58.34-2.388.394-.428.01-.856.042-1.28.1l-.354.08h-.04a1.34 1.34 0 0 0-.774 2.264 1.34 1.34 0 0 0 1.368.33h.026l.36-.04a10.69 10.69 0 0 0 1.196-.436c.75-.3 1.528-.53 2.324-.68a1.46 1.46 0 0 1 .764.27l.6-.1c1.3 4.034 4.032 7.452 7.68 9.606l-.244.5c.112.234.154.494.12.752-.33.764-.734 1.496-1.206 2.184a11.16 11.16 0 0 0-.716 1.066l-.17.36a1.34 1.34 0 0 0 1.3 2.002 1.34 1.34 0 0 0 1.106-.864l.166-.34c.152-.4.28-.808.384-1.2.354-.874.546-1.812 1.03-2.392a1.08 1.08 0 0 1 .572-.28l.3-.546a17.24 17.24 0 0 0 12.292.03l.266.5a1.04 1.04 0 0 1 .68.41 12.59 12.59 0 0 1 .912 2.24c.106.415.235.822.388 1.222l.166.34a1.34 1.34 0 0 0 2.374.262 1.34 1.34 0 0 0 .032-1.402l-.174-.36c-.218-.367-.457-.722-.716-1.062a14.17 14.17 0 0 1-1.2-2.114 1.04 1.04 0 0 1 .136-.8c-.085-.174-.16-.354-.222-.538a17.35 17.35 0 0 0 7.646-9.64l.568.1a1.06 1.06 0 0 1 .746-.276 14.54 14.54 0 0 1 2.324.68c.4.2.8.332 1.196.46.096.026.236.048.344.074h.026a1.34 1.34 0 0 0 1.682-1.702 1.34 1.34 0 0 0-1.088-.892l-.388-.092c-.424-.058-.852-.09-1.28-.1a12.2 12.2 0 0 1-2.388-.394 1.5 1.5 0 0 1-.576-.576l-.54-.16a17.3 17.3 0 0 0-2.772-11.986l.472-.436c-.02-.274.07-.546.248-.756a12.57 12.57 0 0 1 1.98-1.392 11.13 11.13 0 0 0 1.104-.646l.292-.236a1.34 1.34 0 0 0-.265-2.404 1.34 1.34 0 0 0-1.393.322l-.296.236a11.15 11.15 0 0 0-.874.93c-.528.604-1.112 1.154-1.746 1.646a1.48 1.48 0 0 1-.808.088l-.506.36c-2.92-3.06-6.854-4.96-11.07-5.34 0-.2-.026-.5-.03-.594a1.05 1.05 0 0 1-.436-.664c-.028-.808.023-1.616.152-2.414.086-.4.146-.84.184-1.266v-.4a1.41 1.41 0 0 0-1.31-1.48zm-1.668 10.332l-.4 6.986h-.03c-.02.432-.274.8-.664 1.008s-.852.146-1.2-.108l-5.73-4.06a13.72 13.72 0 0 1 6.606-3.598c.468-.1.94-.176 1.414-.228zm3.336 0c3 .374 5.812 1.726 8 3.848l-5.676 4.034a1.18 1.18 0 0 1-1.908-.904zm-13.44 6.454l5.24 4.676v.03a1.18 1.18 0 0 1-.462 2.018v.02L18.288 33.6a13.72 13.72 0 0 1 1.948-8.68zm23.506 0a13.96 13.96 0 0 1 2.004 8.654L39 31.635v-.026a1.16 1.16 0 0 1-.834-.87 1.18 1.18 0 0 1 .372-1.148l5.2-4.654zm-12.808 5.04h2.144l1.3 1.664-.476 2.08-1.926.926-1.93-.926-.454-2.08zm6.868 5.676c.1-.01.2-.01.27 0l6.934 1.17c-1 2.88-2.974 5.34-5.55 6.986l-2.68-6.488a1.18 1.18 0 0 1 1.018-1.638zm-11.646.03a1.18 1.18 0 0 1 .968.536 1.17 1.17 0 0 1 .094 1.1v.026l-2.664 6.436a13.76 13.76 0 0 1-5.516-6.914l6.874-1.166c.077-.008.155-.008.232 0zm5.808 2.8a1.18 1.18 0 0 1 1.074.616h.026l3.388 6.114-1.354.4a13.79 13.79 0 0 1-7.516-.388l3.4-6.114a1.18 1.18 0 0 1 1-.59z" stroke="#fff" stroke-width=".11"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/lets-encrypt-icon.svg b/go.dev/_content/images/logos/lets-encrypt-icon.svg
new file mode 100644
index 0000000..6fc1ff9
--- /dev/null
+++ b/go.dev/_content/images/logos/lets-encrypt-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 63 66" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M43.606 34.42h-7.66v-3.95a5.76 5.76 0 0 0-5.72-5.72c-3.12 0-5.72 2.6-5.72 5.72v3.95h-7.64v-3.95c0-7.416 6.046-13.4 13.4-13.4 7.416 0 13.4 6.046 13.4 13.4z" fill="#ffa400"></path><path d="M46.77 34.4H13.722a2.54 2.54 0 0 0-2.58 2.58v24.4a2.54 2.54 0 0 0 2.58 2.6H46.77a2.54 2.54 0 0 0 2.58-2.58V37c-.08-1.45-1.2-2.6-2.6-2.6zM31.858 50.44v3.304c0 .886-.726 1.692-1.692 1.692-.886 0-1.692-.726-1.692-1.692V50.46c-1.048-.564-1.692-1.692-1.692-3a3.41 3.41 0 0 1 3.386-3.386 3.41 3.41 0 0 1 3.386 3.386c.08 1.3-.644 2.4-1.692 3z" fill="#003a70"></path><path d="M10.338 30.8h-8A2.34 2.34 0 0 1 0 28.452a2.34 2.34 0 0 1 2.338-2.338h8a2.34 2.34 0 0 1 2.338 2.338 2.34 2.34 0 0 1-2.338 2.338zm5.64-12.574a2.06 2.06 0 0 1-1.45-.564l-6.288-5.16c-.968-.806-1.128-2.256-.32-3.304.806-.968 2.256-1.128 3.304-.32l6.288 5.16c.968.806 1.128 2.256.32 3.304-.564.564-1.2.886-1.854.886zm14.268-5.48a2.34 2.34 0 0 1-2.338-2.338V2.34A2.34 2.34 0 0 1 30.246 0a2.34 2.34 0 0 1 2.338 2.338V10.4a2.34 2.34 0 0 1-2.338 2.338zm14.186 5.48c-.644 0-1.37-.32-1.774-.886-.806-.968-.644-2.5.32-3.304l6.288-5.16c.968-.806 2.5-.644 3.304.32s.644 2.5-.32 3.304l-6.288 5.16a2.26 2.26 0 0 1-1.532.564zm13.6 12.574h-8.06a2.34 2.34 0 0 1-2.338-2.338 2.34 2.34 0 0 1 2.338-2.338h8.06a2.34 2.34 0 0 1 2.338 2.338 2.34 2.34 0 0 1-2.338 2.338z" fill="#ffa400"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/lets-encrypt.svg b/go.dev/_content/images/logos/lets-encrypt.svg
new file mode 100644
index 0000000..c54550e
--- /dev/null
+++ b/go.dev/_content/images/logos/lets-encrypt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 83 52" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M47.52 17.24h-3.836v-1.98a2.88 2.88 0 0 0-2.867-2.867 2.88 2.88 0 0 0-2.867 2.867v1.98h-3.836v-1.98c0-3.715 3.028-6.703 6.703-6.703 3.715 0 6.703 3.028 6.703 6.703z" fill="#ffa400"></path><path d="M49.095 17.24H32.54c-.727 0-1.292.565-1.292 1.292v12.234c0 .727.565 1.292 1.292 1.292h16.555c.727 0 1.292-.565 1.292-1.292V18.533c-.04-.727-.606-1.292-1.292-1.292zm-7.47 8.035v1.656c0 .444-.363.848-.848.848-.444 0-.848-.363-.848-.848v-1.655c-.525-.283-.848-.848-.848-1.494 0-.93.767-1.696 1.696-1.696s1.696.767 1.696 1.696c.04.646-.323 1.2-.848 1.494z" fill="#003a70"></path><path d="M30.844 15.424h-3.997a1.17 1.17 0 1 1 0-2.342h3.997a1.17 1.17 0 1 1 0 2.342zm2.826-6.3c-.242 0-.525-.08-.727-.283l-3.15-2.584c-.485-.404-.565-1.13-.162-1.656.404-.485 1.13-.565 1.656-.162l3.15 2.584c.485.404.565 1.13.162 1.656-.283.283-.606.444-.93.444zm7.147-2.745a1.17 1.17 0 0 1-1.171-1.171V1.17a1.17 1.17 0 1 1 2.342 0v4.046a1.17 1.17 0 0 1-1.171 1.171zm7.107 2.746a1.13 1.13 0 0 1-.888-.444c-.404-.485-.323-1.252.162-1.656l3.15-2.584c.485-.404 1.252-.323 1.656.162s.323 1.252-.162 1.656l-3.15 2.584a1.13 1.13 0 0 1-.767.283zm6.823 6.3H50.71a1.17 1.17 0 1 1 0-2.342h4.038a1.17 1.17 0 1 1 0 2.342z" fill="#ffa400"></path><path d="M31.713 46.777v-9.884h6.64v2.02h-4.346v1.867h4.1v1.897h-4.1v2.05h4.6v2.05zm12.913 0v-3.794c0-.184-.03-.367-.06-.55a1.66 1.66 0 0 0-.153-.46c-.07-.13-.176-.237-.306-.306-.122-.092-.306-.122-.52-.122s-.398.03-.55.122a1.4 1.4 0 0 0-.398.337c-.092.153-.184.306-.245.5s-.092.367-.092.55v3.764h-2.295v-6.946H42.2v.95h.03c.092-.153.184-.306.337-.428.122-.153.306-.275.46-.367.184-.092.367-.184.58-.245s.428-.092.673-.092a2.86 2.86 0 0 1 1.193.245c.337.153.58.398.796.643.214.275.337.58.428.918s.122.673.122 1.04v4.284h-2.202zm8.2-4.712c-.122-.153-.306-.306-.52-.398a1.79 1.79 0 0 0-.673-.153c-.223 0-.443.052-.643.153-.184.092-.367.214-.5.398s-.245.337-.337.55-.122.428-.122.673.03.46.122.673a1.28 1.28 0 0 0 .337.551c.153.153.306.306.52.398s.428.153.673.153a1.89 1.89 0 0 0 .704-.122c.214-.092.398-.214.55-.398l1.255 1.56c-.275.275-.673.5-1.102.643a4.59 4.59 0 0 1-1.438.245 4.86 4.86 0 0 1-1.53-.245 3.24 3.24 0 0 1-1.255-.734c-.337-.306-.612-.704-.826-1.163s-.306-.98-.306-1.56.092-1.07.306-1.53.5-.857.826-1.163a3.33 3.33 0 0 1 1.255-.734c.5-.184.98-.245 1.53-.245.245 0 .5.03.734.06l.704.184.643.306c.184.122.367.245.5.398zm6.67-.337c-.092-.03-.214-.06-.306-.06h-.275a1.89 1.89 0 0 0-.765.153 1.83 1.83 0 0 0-.5.398 1.7 1.7 0 0 0-.275.52c-.06.184-.092.337-.092.5v3.55h-2.295v-6.946h2.203v1h.03c.184-.367.428-.643.765-.857a2.05 2.05 0 0 1 1.132-.337h.275c.092 0 .153.03.214.03zm5.386 6.1l-.46.98a3.55 3.55 0 0 1-.612.734c-.245.214-.52.337-.826.46-.306.092-.704.153-1.132.153-.214 0-.428 0-.673-.03-.214-.03-.428-.06-.58-.122l.245-1.928.367.092a1.49 1.49 0 0 0 .367.031c.367 0 .612-.092.765-.245s.306-.398.398-.704l.214-.58-2.907-6.824h2.54l1.56 4.468h.03l1.377-4.468h2.417zm11.445-4.53c0 .5-.06.95-.214 1.408s-.367.826-.643 1.193c-.275.337-.643.612-1.04.826s-.887.306-1.408.306a3.36 3.36 0 0 1-1.224-.245c-.367-.184-.673-.398-.887-.704h-.03v4.13h-2.284V39.92h2.173v.857h.03c.214-.275.52-.52.887-.734s.826-.306 1.346-.306c.5 0 .95.092 1.377.306.398.184.765.46 1.04.796a3.91 3.91 0 0 1 .643 1.163c.153.337.245.796.245 1.285zm-2.234 0a2.33 2.33 0 0 0-.092-.643c-.06-.214-.184-.398-.306-.55s-.306-.306-.52-.398a1.7 1.7 0 0 0-1.408 0c-.214.092-.367.245-.52.398s-.245.367-.337.58a1.59 1.59 0 0 0-.122.643c0 .215.03.428.122.643s.184.398.337.58c.153.153.306.306.52.398a1.7 1.7 0 0 0 .704.153c.275 0 .52-.06.704-.153.214-.092.367-.245.52-.398.122-.153.245-.367.306-.58.06-.22.1-.446.092-.673zm5.875-1.744v2.662c0 .337.06.58.184.734s.337.245.673.245c.122 0 .245 0 .367-.03l.306-.092.03 1.683c-.153.06-.367.092-.612.153l-.734.06c-.46 0-.857-.06-1.163-.184s-.58-.275-.765-.5a1.78 1.78 0 0 1-.398-.796c-.06-.306-.122-.643-.122-1V41.54h-1.102v-1.714h1.102V37.99h2.234v1.836H81.6v1.714zM0 46.44v-9.884h2.387v7.803h3.825v2.08zm14.107-3.397v.55h-5.05c.03.184.092.367.184.52a1.15 1.15 0 0 0 .367.398 1.7 1.7 0 0 0 .52.275 1.92 1.92 0 0 0 .581.092c.367 0 .673-.06.918-.214a1.69 1.69 0 0 0 .612-.52l1.6 1c-.337.5-.765.826-1.285 1.102-.52.245-1.163.398-1.867.398a4.62 4.62 0 0 1-1.469-.245c-.46-.153-.857-.398-1.224-.704-.337-.306-.612-.704-.826-1.163s-.306-.98-.306-1.56.092-1.07.306-1.53a3.15 3.15 0 0 1 .796-1.163c.337-.306.734-.58 1.193-.734a3.92 3.92 0 0 1 1.47-.275c.52 0 .98.092 1.408.245.428.184.796.428 1.102.734a3.35 3.35 0 0 1 .704 1.193c.184.5.275 1 .275 1.6zm-2.1-.857c0-.367-.122-.673-.337-.95s-.58-.398-1.04-.398c-.214 0-.428.03-.612.092s-.337.153-.5.275-.245.275-.337.428-.122.337-.153.52h2.98zm5.783-.98v2.662c0 .337.06.58.184.734s.337.245.673.245c.122 0 .245 0 .367-.03l.306-.092.03 1.683c-.153.06-.367.092-.612.153l-.734.06c-.46 0-.857-.06-1.163-.184s-.58-.275-.765-.5a1.78 1.78 0 0 1-.398-.796c-.06-.306-.122-.643-.122-1v-2.934h-1.132v-1.714h1.102v-1.836h2.264v1.836h1.622v1.714zm9.027.337a2.45 2.45 0 0 0-.643-.459 1.79 1.79 0 0 0-.796-.184 1.23 1.23 0 0 0-.58.122c-.182.092-.275.214-.275.428 0 .184.092.337.306.428s.52.184.98.275c.275.06.52.122.796.245s.5.245.704.398c.22.16.4.37.52.612s.184.52.184.857c0 .428-.092.796-.275 1.102s-.398.55-.704.734c-.275.184-.612.306-.95.398a4.25 4.25 0 0 1-1.07.122 4.93 4.93 0 0 1-1.652-.275 3.51 3.51 0 0 1-1.346-.796l1.285-1.346c.214.214.46.398.765.55a2.05 2.05 0 0 0 .949.214 1.2 1.2 0 0 0 .551-.122c.184-.092.275-.245.275-.46s-.122-.367-.337-.5a5.54 5.54 0 0 0-1.04-.306l-.734-.214a2.2 2.2 0 0 1-.643-.367c-.184-.153-.337-.367-.46-.58-.122-.245-.184-.52-.184-.826 0-.428.092-.765.275-1.07a2.12 2.12 0 0 1 .673-.704c.275-.184.58-.337.918-.398a3.77 3.77 0 0 1 1-.122c.52 0 1.04.092 1.53.245s.918.398 1.255.734zm-5.294-5.17c-.673 0-1.224.5-1.224 1.132 0 .673.46 1.102 1.132 1.102.06 0 .122 0 .153-.03-.122.5-.58.857-1.04.918h-.092v1.07h.122a2.61 2.61 0 0 0 1.469-.673c.52-.5.796-1.224.796-2.08 0-.826-.55-1.438-1.316-1.438z" fill="#003a70"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/mattermost.png b/go.dev/_content/images/logos/mattermost.png
new file mode 100644
index 0000000..3a8116c
--- /dev/null
+++ b/go.dev/_content/images/logos/mattermost.png
Binary files differ
diff --git a/go.dev/_content/images/logos/medium.svg b/go.dev/_content/images/logos/medium.svg
new file mode 100644
index 0000000..76f49a3
--- /dev/null
+++ b/go.dev/_content/images/logos/medium.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 54" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><path d="M59.158 47.432L64 52.107v.155H39.44v-.155l4.93-4.675c.526-.433.778-1.12.657-1.795V15.752c0-1.263 0-2.97.22-4.43L28.68 52.86h-.197L11.328 14.644l-.723-1.662V38.03a8.79 8.79 0 0 0 .811 4.896l6.902 9.172v.155H0v-.155l6.902-9.194c.73-1.512 1-3.204.8-4.874V10.346c.112-1.364-.295-2.72-1.14-3.788L1.687.155V0h17.528l14.68 32.368L46.822 0h17.156v.155l-4.82 5.428c-.578.427-.866 1.148-.745 1.86v38.194a1.78 1.78 0 0 0 .745 1.795z" stroke="none" fill="#1c1b1a" fill-rule="nonzero"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/mercado-libre.png b/go.dev/_content/images/logos/mercado-libre.png
new file mode 100644
index 0000000..93657b3
--- /dev/null
+++ b/go.dev/_content/images/logos/mercado-libre.png
Binary files differ
diff --git a/go.dev/_content/images/logos/mercadoLibre.svg b/go.dev/_content/images/logos/mercadoLibre.svg
new file mode 100644
index 0000000..24964f4
--- /dev/null
+++ b/go.dev/_content/images/logos/mercadoLibre.svg
@@ -0,0 +1,95 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="55.2px" height="48.5px" viewBox="0 0 55.2 48.5" style="enable-background:new 0 0 55.2 48.5;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#2D3277;}
+	.st1{fill:#FFE600;}
+	.st2{fill:#FFFFFF;}
+</style>
+<title>mercadoLibre</title>
+<path class="st0" d="M15,38.1h0.5V48h-1.9v-8.7C13.8,38.7,14.4,38.2,15,38.1z"/>
+<path class="st0" d="M25.3,40.3c-0.9,0-1.7,0.4-2.1,1.2v-3.4h-0.2c-0.7,0-1.3,0.3-1.7,0.9v5.6c0,2.2,1.2,3.4,3.5,3.4
+	s3.5-1.3,3.5-3.8S27.3,40.4,25.3,40.3z M24.7,46.4c-1.1,0-1.6-0.8-1.6-2.3s0.6-2.2,1.6-2.2s1.5,0.7,1.6,2.2S25.8,46.4,24.7,46.4z"/>
+<path class="st0" d="M29.4,44.1c0.1-2.4,1.2-3.7,3.7-3.7h0.6v1.9h-0.9c-1.1,0-1.5,0.7-1.5,1.8V48h-1.9V44.1z"/>
+<path class="st0" d="M36.6,46.1c0.4,0.3,0.8,0.5,1.3,0.4c0.4,0,0.7-0.1,1-0.3c0.2-0.2,0.4-0.4,0.5-0.6h1.8c-0.2,0.8-0.7,1.4-1.3,1.9
+	c-0.6,0.4-1.4,0.6-2.1,0.6c-0.5,0-1.1-0.1-1.6-0.3c-0.4-0.2-0.8-0.4-1.1-0.8c-0.3-0.4-0.6-0.8-0.7-1.2c-0.3-1-0.3-2.1,0-3.1
+	c0.2-0.4,0.4-0.9,0.7-1.2c0.7-0.7,1.7-1.1,2.7-1.1c0.6,0,1.1,0.1,1.6,0.4c0.4,0.2,0.8,0.6,1.1,1c0.3,0.4,0.5,0.9,0.6,1.4
+	c0.1,0.5,0.2,1.1,0.2,1.6h-5.3C36.1,45.2,36.3,45.7,36.6,46.1z M38.9,42.2c-0.3-0.3-0.7-0.4-1.1-0.4c-0.3,0-0.6,0.1-0.8,0.2
+	c-0.2,0.1-0.4,0.2-0.5,0.4c-0.1,0.1-0.2,0.3-0.3,0.5c0,0.2-0.1,0.3-0.1,0.5h3.3C39.4,43,39.2,42.6,38.9,42.2z"/>
+<rect x="17.5" y="38.1" class="st0" width="1.9" height="1.7"/>
+<rect x="17.5" y="40.7" class="st0" width="1.9" height="7.3"/>
+<path id="path96" class="st0" d="M51.7,34.2c-0.6,0.7-1.7,0.8-2.4,0.1l-0.1-0.1c-0.3-0.5-0.5-1.1-0.4-1.7c0-0.6,0.1-1.1,0.4-1.6
+	c0.6-0.7,1.7-0.8,2.4-0.1c0,0,0,0,0,0l0.1,0.1c0.3,0.5,0.5,1.1,0.4,1.6C52.2,33.1,52,33.7,51.7,34.2z M53.2,29.8
+	c-0.7-0.8-1.7-1.2-2.8-1.2c-1.1-0.1-2.1,0.3-2.8,1.2c-0.6,0.8-0.9,1.7-0.9,2.7c0,1,0.3,1.9,0.9,2.7c0.7,0.8,1.7,1.2,2.8,1.1
+	c1,0.1,2.1-0.3,2.8-1.1c0.6-0.8,0.9-1.7,0.9-2.7C54.2,31.5,53.8,30.6,53.2,29.8"/>
+<path id="path108" class="st0" d="M44,34.2c-0.3,0.4-0.7,0.6-1.2,0.6c-0.5,0-0.9-0.2-1.2-0.6c-0.3-0.5-0.4-1.1-0.4-1.7
+	c0-0.5,0.1-1.1,0.4-1.5c0.2-0.4,0.7-0.7,1.2-0.6c0.4,0,0.7,0.1,1,0.3c0.5,0.5,0.7,1.3,0.7,2C44.5,33.2,44.3,33.7,44,34.2z
+	 M46.2,26.5c0,0-1.9-0.2-1.9,1.3v2c-0.2-0.3-0.5-0.6-0.8-0.8c-0.4-0.2-0.8-0.3-1.2-0.2c-0.9,0-1.7,0.4-2.3,1.1
+	c-0.6,0.9-0.9,1.9-0.8,3c-0.1,0.9,0.2,1.9,0.8,2.6c0.7,0.7,1.7,1,2.7,1c3.5,0,3.4-3,3.4-3L46.2,26.5"/>
+<path id="path98" class="st0" d="M36.8,33.3c0,0.5-0.2,1-0.5,1.3c-0.3,0.2-0.7,0.3-1.1,0.3c-0.4,0-0.8-0.3-0.9-0.7
+	c0-0.1,0-0.1,0-0.2c0-0.3,0.1-0.6,0.4-0.8c0.3-0.1,0.6-0.2,0.8-0.2l0.4-0.1c0.2-0.1,0.4-0.1,0.5-0.1l0.3-0.1L36.8,33.3L36.8,33.3z
+	 M37.8,29.2c-0.7-0.3-1.4-0.5-2.1-0.5c-1-0.1-1.9,0.3-2.6,1c-0.3,0.5-0.5,1-0.5,1.5h1.8c0-0.2,0.1-0.4,0.2-0.6
+	c0.3-0.2,0.6-0.4,1-0.3c0.3,0,0.6,0,0.9,0.1c0.2,0.1,0.3,0.4,0.3,0.6c0,0.3-0.2,0.5-0.4,0.5c-0.2,0.1-0.5,0.1-0.8,0.1H35
+	c-0.6,0.1-1.1,0.2-1.7,0.5c-1.1,0.7-1.3,2.1-0.7,3.2c0,0,0,0,0,0c0.1,0.1,0.2,0.2,0.3,0.3c0.5,0.4,1,0.6,1.6,0.6
+	c4.1,0.1,4.1-2.2,4.1-2.7v-2.7C38.8,30.2,38.4,29.6,37.8,29.2"/>
+<path id="path100" class="st0" d="M28.4,30.3c0.4,0,0.8,0.1,1.1,0.4c0.2,0.2,0.2,0.5,0.2,0.8h2c0-0.8-0.4-1.6-1.1-2.1
+	c-0.7-0.4-1.5-0.6-2.2-0.6c-1-0.1-2,0.3-2.7,1c-0.7,0.8-1,1.8-1,2.9c-0.1,1,0.2,1.9,0.8,2.6c1.6,1.4,4,1.4,5.4-0.2
+	c0.3-0.5,0.6-1.1,0.6-1.7h-2c0,0.3-0.1,0.7-0.3,0.9c-0.3,0.2-0.6,0.4-1,0.3c-0.6,0-1.1-0.3-1.3-0.9c-0.1-0.4-0.2-0.8-0.2-1.3
+	c0-0.5,0-0.9,0.2-1.3C27.2,30.7,27.8,30.3,28.4,30.3"/>
+<path id="path102" class="st0" d="M24.2,28.7c-4.2,0-3.9,3.7-3.9,3.7v3.8h1.9v-3.5c0-0.4,0-0.9,0.2-1.3c0.3-0.5,0.9-0.8,1.5-0.8h0.2
+	c0.1,0,0.2,0,0.3,0v-1.9L24.2,28.7C24.3,28.7,24.3,28.7,24.2,28.7"/>
+<path id="path104" class="st0" d="M14.7,30.7c0.3-0.3,0.7-0.4,1.1-0.4c0.4,0,0.8,0.1,1.1,0.4c0.3,0.3,0.5,0.7,0.5,1.1h-3.3
+	C14.3,31.3,14.4,31,14.7,30.7z M17.3,34.2c0,0.1-0.1,0.2-0.2,0.2c-0.3,0.2-0.7,0.3-1.1,0.2c-0.4,0-0.7-0.1-1-0.2
+	c-0.5-0.3-0.8-0.9-0.8-1.5h5.2v-1.4c-0.1-0.5-0.3-1-0.6-1.5c-0.3-0.5-0.7-0.8-1.2-1.1c-0.5-0.2-1.1-0.3-1.7-0.3
+	c-1-0.1-1.9,0.3-2.5,1c-0.7,0.8-1.1,1.8-1,2.9c-0.1,1.1,0.3,2.1,1.1,2.9c0.7,0.6,1.6,0.9,2.5,0.9c1,0.1,2-0.3,2.7-1.1
+	c0.3-0.3,0.5-0.7,0.7-1.1L17.3,34.2"/>
+<path id="path106" class="st0" d="M11.5,36.2H9.8v-4.4c0.1-0.6-0.4-1.2-1-1.3H8.5c-0.7,0-1.3,0.5-1.3,1.2c0,0,0,0,0,0v4.4H5.4v-4.4
+	c0.1-0.6-0.4-1.2-1-1.3H4.1c-0.7,0-1.3,0.5-1.3,1.2c0,0,0,0,0,0v4.5H1.1v-4.3c-0.1-1.7,1.2-3.1,2.8-3.2h0.2c0.8,0,1.7,0.3,2.2,1
+	c0.5-0.6,1.3-1,2.2-1c1.6-0.1,2.9,1.2,3,2.8c0,0.1,0,0.3,0,0.4L11.5,36.2"/>
+<path class="st0" d="M44.5,11c0-6-7.5-11-16.8-11S10.9,5,10.9,11v0.6c0,6.4,6.5,11.6,16.8,11.6s16.9-5.2,16.9-11.6V11z"/>
+<path class="st1" d="M43.9,11c0,5.7-7.2,10.3-16.2,10.3S11.6,16.7,11.6,11S18.8,0.7,27.8,0.7S43.9,5.3,43.9,11z"/>
+<path class="st2" d="M22.4,7.7c0,0-0.2,0.2-0.1,0.3c0.5,0.4,1.2,0.5,1.8,0.3c0.6-0.2,1.2-0.6,1.7-1.1c0.6-0.5,1.2-0.9,1.9-1.2
+	c0.4-0.1,0.9-0.1,1.4,0c0.5,0.2,0.9,0.4,1.3,0.7c1.1,0.8,5.6,4.7,6.3,5.4c2.3-1,4.7-1.8,7.1-2.3c-0.4-2.1-1.6-4-3.3-5.3
+	c-2.8,1.3-6,1.4-8.8,0.1c-1-0.5-2.2-0.7-3.3-0.7c-1.8,0-3.5,0.8-4.6,2.2L22.4,7.7z"/>
+<path class="st2" d="M36.5,12.6c0,0-5.2-4.6-6.4-5.4c-0.4-0.4-0.9-0.6-1.4-0.7c-0.2,0-0.5,0-0.7,0.1c-0.7,0.3-1.3,0.6-1.9,1.1
+	c-0.5,0.5-1.2,0.9-1.8,1.1c-0.7,0.2-1.4,0-2-0.3c-0.2-0.1-0.3-0.2-0.4-0.4c-0.1-0.2,0-0.5,0.2-0.7l1.4-1.5L24,5.4
+	c-0.5,0.1-0.9,0.2-1.3,0.3c-0.5,0.1-1,0.2-1.5,0.2c-0.5,0-1.1-0.1-1.6-0.3c-1.4-0.3-2.8-0.8-4.1-1.4c-1.9,1.3-3.2,3.2-3.8,5.5
+	c0.3,0.1,0.8,0.2,1,0.2c4.6,1,6,2.1,6.3,2.3c0.3-0.3,0.7-0.5,1.1-0.5c0.5,0,0.9,0.2,1.2,0.6c0.3-0.3,0.7-0.4,1.1-0.4
+	c0.2,0,0.5,0,0.7,0.1c0.4,0.1,0.8,0.4,0.9,0.9c0.2-0.1,0.4-0.1,0.6-0.1c0.3,0,0.5,0.1,0.8,0.2c0.7,0.3,1.1,1.1,0.9,1.8h0.2
+	c1,0,1.8,0.8,1.8,1.8c0,0.3-0.1,0.6-0.2,0.9c0.5,0.3,1,0.4,1.6,0.4c0.5-0.1,0.7-0.2,0.8-0.3s0.1-0.1,0-0.2L29.1,16
+	c0,0-0.2-0.2-0.1-0.3s0.2,0,0.3,0.1c0.7,0.6,1.4,1.4,1.4,1.4c0.1,0.1,0.2,0.2,0.3,0.2c0.4,0,0.7,0,1-0.2c0.1-0.1,0.2-0.1,0.2-0.2
+	l0,0c0.2-0.3,0.2-0.6,0-0.9l-1.5-1.7c0,0-0.2-0.2-0.2-0.3s0.2,0,0.3,0.1c0.5,0.4,1.2,1.1,1.8,1.7c0.4,0.3,1,0.3,1.4,0
+	c0.4-0.2,0.6-0.6,0.5-1c0-0.2-0.1-0.5-0.3-0.6l-2-2.1c0,0-0.2-0.2-0.1-0.3s0.2,0,0.3,0.1c0.7,0.6,2.4,2.2,2.4,2.2
+	c0.4,0.3,1,0.3,1.4,0c0.3-0.1,0.5-0.4,0.5-0.7C37,13.1,36.8,12.8,36.5,12.6z"/>
+<path class="st2" d="M26.5,15.2c-0.2,0-0.5,0.1-0.7,0.2v-0.2c0-0.1,0.5-1.4-0.6-1.8c-0.5-0.3-1-0.2-1.4,0.2h-0.1
+	c0-0.5-0.3-0.9-0.8-1.1c-0.7-0.2-1.4,0-1.8,0.6c-0.1-0.6-0.6-1.1-1.3-1s-1.1,0.6-1,1.3c0.1,0.6,0.5,1,1.1,1c0.3,0,0.6-0.1,0.8-0.3
+	l0,0c-0.2,0.7,0.2,1.4,0.9,1.7c0.4,0.1,0.8,0.1,1.1-0.2c0.1-0.1,0.1,0,0.1,0c0,0.5,0.3,1,0.8,1.1c0.4,0.2,0.9,0.1,1.2-0.2
+	c0.1-0.1,0.2-0.1,0.2,0.1c0,0.8,0.7,1.4,1.4,1.4s1.4-0.7,1.4-1.4C27.9,15.8,27.3,15.2,26.5,15.2L26.5,15.2z"/>
+<path class="st0" d="M36.7,12.1c-1.6-1.4-5.3-4.6-6.3-5.3c-0.4-0.3-0.8-0.6-1.3-0.7c-0.2-0.1-0.4-0.1-0.6-0.1c-0.3,0-0.6,0-0.8,0.1
+	c-0.7,0.3-1.3,0.7-1.9,1.2l0,0c-0.5,0.4-1,0.8-1.6,1c-0.2,0-0.4,0.1-0.6,0.1c-0.4,0.1-0.8,0-1.2-0.3c0-0.1,0-0.1,0.1-0.2l0,0
+	l1.4-1.5C25,5,26.6,4.1,28.4,4.1h0.1c1.1,0.1,2.2,0.3,3.2,0.8c1.3,0.6,2.8,1,4.3,1c1.6,0,3.2-0.4,4.7-1.1c-0.2-0.1-0.4-0.3-0.6-0.5
+	c-1.3,0.6-2.7,0.9-4.1,0.9c-1.4,0-2.8-0.4-4-1c-1.1-0.5-2.2-0.8-3.4-0.8h-0.1c-1.4,0-2.8,0.4-3.9,1.4c-0.7,0.1-1.3,0.2-1.9,0.4
+	c-0.4,0.1-0.9,0.2-1.4,0.2h-0.5c-1.7-0.3-3.3-0.7-4.9-1.4l-0.6,0.4c1.7,0.7,3.5,1.2,5.3,1.6h0.7c0.5,0,1-0.1,1.5-0.3
+	c0.3-0.1,0.6-0.2,1-0.2l-0.3,0.3L22,7.4c-0.2,0.2-0.3,0.5-0.2,0.8c0.1,0.2,0.2,0.3,0.4,0.4c0.5,0.3,1,0.4,1.5,0.4
+	c0.2,0,0.4,0,0.6-0.1c0.7-0.3,1.3-0.7,1.9-1.2c0.6-0.5,1.2-0.9,1.8-1.1c0.2,0,0.4-0.1,0.6-0.1h0.1c0.5,0.1,1,0.3,1.4,0.7
+	c1.2,0.9,6.4,5.4,6.4,5.4c0.2,0.2,0.3,0.5,0.3,0.8c0,0.3-0.2,0.5-0.4,0.7c-0.2,0.1-0.4,0.2-0.7,0.2c-0.2,0-0.4-0.1-0.6-0.2l-2.4-2.2
+	c-0.1-0.1-0.2-0.2-0.3-0.2c-0.1,0-0.1,0-0.2,0.1c-0.1,0.1,0,0.3,0.2,0.4l2,2.1c0.1,0.2,0.2,0.4,0.3,0.6c0,0.4-0.2,0.7-0.5,0.9
+	C33.9,16,33.6,16,33.4,16c-0.2,0-0.4-0.1-0.6-0.2l-0.2-0.3c-0.5-0.5-1-1-1.5-1.4c-0.1-0.1-0.2-0.2-0.3-0.2c-0.1,0-0.1,0-0.1,0.1
+	c0,0.1,0,0.2,0,0.3c0,0,0.1,0.1,0.1,0.1l1.5,1.7c0.2,0.2,0.2,0.5,0,0.7v0.1l-0.1,0.1c-0.2,0.2-0.5,0.3-0.7,0.2h-0.2
+	c-0.1,0-0.2-0.1-0.3-0.1l0,0c-0.5-0.5-1-0.9-1.5-1.4c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.1,0-0.1,0.1c-0.1,0.1,0.1,0.4,0.1,0.4
+	l1.3,1.4v0.1c0,0.1-0.2,0.2-0.7,0.3h-0.2c-0.4,0-0.9-0.2-1.3-0.4c0.1-0.3,0.2-0.5,0.2-0.8c0-1-0.9-1.9-1.9-1.9l0,0h-0.1
+	c0.1-0.8-0.3-1.5-1-1.8c-0.3-0.1-0.5-0.2-0.8-0.2c-0.2,0-0.4,0-0.6,0.1c-0.2-0.4-0.6-0.7-1-0.8c-0.2-0.1-0.5-0.1-0.7-0.1
+	c-0.4,0-0.8,0.1-1.1,0.4c-0.6-0.7-1.6-0.8-2.3-0.2l-0.1,0.1c-0.4-0.3-2-1.3-6.2-2.3c-0.3-0.1-0.7-0.2-1-0.3c0,0.2-0.1,0.5-0.1,0.7
+	l1,0.2c4.3,1,5.8,2,6,2.1c-0.1,0.2-0.1,0.4-0.1,0.6c0,0.9,0.7,1.6,1.6,1.6c0,0,0,0,0,0l0,0c0.1,0,0.2,0,0.3,0
+	c0.1,0.7,0.6,1.2,1.3,1.4c0.2,0.1,0.4,0.1,0.6,0.1c0.1,0,0.3,0,0.4,0c0.2,0.5,0.5,0.8,1,1c0.2,0.1,0.4,0.1,0.6,0.1
+	c0.2,0,0.3,0,0.5-0.1c0.3,0.7,1,1.2,1.8,1.2c0.5,0,1-0.2,1.4-0.6c0.5,0.3,1,0.5,1.6,0.5h0.2c0.4,0,0.8-0.2,1.1-0.5
+	c0,0,0-0.1,0.1-0.1c0.2,0,0.4,0.1,0.5,0.1c0.4,0,0.8-0.1,1.1-0.4c0.3-0.2,0.6-0.5,0.6-0.9l0,0c0.1,0,0.2,0,0.3,0
+	c0.4,0,0.8-0.1,1.1-0.4c0.5-0.3,0.8-0.8,0.8-1.4c0.1,0,0.2,0,0.4,0c0.4,0,0.7-0.1,1-0.3c0.5-0.2,0.8-0.7,0.8-1.2
+	c0-0.3-0.1-0.6-0.2-0.9c2.2-0.9,4.4-1.6,6.7-2.1c0-0.2,0-0.5-0.1-0.7C41.4,10.3,39,11.1,36.7,12.1z M26.5,18c-0.7,0-1.3-0.6-1.3-1.3
+	c0-0.1,0-0.2-0.1-0.2c-0.1,0-0.1,0-0.2,0.1c-0.2,0.2-0.4,0.3-0.6,0.3c-0.1,0-0.3,0-0.4-0.1c-0.7-0.3-0.8-0.8-0.7-1c0,0,0-0.1,0-0.1
+	l0,0c-0.1,0-0.1,0-0.1,0.1c-0.2,0.1-0.4,0.2-0.6,0.2c-0.1,0-0.2,0-0.4-0.1c-0.7-0.2-1.1-0.9-0.9-1.6v-0.1l-0.2-0.2L20.8,14
+	c-0.2,0.2-0.4,0.3-0.7,0.3c-0.6,0-1-0.4-1-1s0.4-1,1-1c0.5,0,0.9,0.4,1,0.9v0.3l0.1-0.2c0.3-0.4,0.7-0.7,1.2-0.6
+	c0.2,0,0.3,0,0.4,0.1c0.4,0.1,0.7,0.5,0.7,1c0,0.1,0.1,0.1,0.1,0.1s0.1,0,0.1-0.1c0.2-0.2,0.5-0.3,0.8-0.3c0.2,0,0.4,0,0.6,0.1
+	c1,0.4,0.5,1.6,0.5,1.7c-0.1,0.2-0.1,0.3,0,0.4h0.2c0.2-0.1,0.3-0.1,0.5-0.1l0,0c0.7,0,1.3,0.6,1.3,1.3C27.7,17.4,27.2,18,26.5,18z"
+	/>
+</svg>
diff --git a/go.dev/_content/images/logos/microsoft.png b/go.dev/_content/images/logos/microsoft.png
new file mode 100644
index 0000000..5ff7c6b
--- /dev/null
+++ b/go.dev/_content/images/logos/microsoft.png
Binary files differ
diff --git a/go.dev/_content/images/logos/microsoft.svg b/go.dev/_content/images/logos/microsoft.svg
new file mode 100644
index 0000000..28ec5f1
--- /dev/null
+++ b/go.dev/_content/images/logos/microsoft.svg
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="1910.1121"
+   height="2590.2581"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Microsoft_2012 Vertical.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="256"
+     inkscape:cx="1001.0885"
+     inkscape:cy="2590.1554"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="705"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0.1"
+     fit-margin-left="0.1"
+     fit-margin-right="0.1"
+     fit-margin-bottom="0.1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2996"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(1160.1,-214.2043)">
+    <rect
+       ry="0"
+       rx="0"
+       y="214.20401"
+       x="-1160.1"
+       height="908.34149"
+       width="908.34149"
+       id="rect3056"
+       style="fill:#f44e24;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <rect
+       style="fill:#81b900;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="rect3058"
+       width="908.34149"
+       height="908.34149"
+       x="-158.32906"
+       y="214.20401"
+       rx="0"
+       ry="0" />
+    <rect
+       style="fill:#01a4ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="rect3060"
+       width="908.34149"
+       height="908.34149"
+       x="-1160.1"
+       y="1215.9747"
+       rx="0"
+       ry="0" />
+    <rect
+       ry="0"
+       rx="0"
+       y="1215.9747"
+       x="-158.32906"
+       height="908.34149"
+       width="908.34149"
+       id="rect3062"
+       style="fill:#ffb902;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <g
+       id="g4172"
+       transform="matrix(0.65908602,0,0,0.65908602,-1125.9019,1063.1602)"
+       style="fill:#737373;fill-opacity:1">
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 32.872062,2632.7113 -82.393988,0 0,-511.7711 125.331699,0 133.458927,334.7081 18.27366,53.6171 24.65901,-68.1786 131.13526,-320.1466 120.68978,0 0,511.7711 -88.19638,0 0,-322.613 c 0,-35.2727 3.6265,-96.0296 3.6265,-96.0296 l -11.16961,40.3266 -153.76343,378.316 -58.02393,0 -154.343669,-374.8346 -12.330086,-43.2278 c 0,0 3.463309,47.2555 3.046257,85.0051 z"
+         id="path3034"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccccccccccccccccccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 587.58088,2632.7113 0,-366.7112 85.87542,0 0,366.7112 z"
+         id="path3036"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 579.45753,2160.3965 c 0,-27.9031 19.36919,-49.9006 51.70868,-49.9006 29.18961,0 52.7344,20.6951 52.7344,48.7401 0,33.6099 -26.20751,49.9006 -52.70875,49.9006 -27.16534,0 -51.73433,-15.5671 -51.73433,-48.7401 z"
+         id="path3038"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 1020.4394,2536.3916 0,80.073 c 0,0 -33.40075,25.2405 -103.28257,25.2405 -125.72457,0 -184.51611,-88.0643 -184.51611,-184.226 0,-120.6702 75.88334,-200.7629 197.28138,-200.7629 55.55637,0 90.5173,18.5677 90.5173,18.5677 l 0,85.8754 c 0,0 -33.12321,-32.4934 -87.03587,-32.4934 -72.79386,0 -111.40595,57.5973 -111.40595,121.8503 0,69.986 38.92244,119.5293 110.24547,119.5293 53.47829,-3.5149 88.19635,-33.6539 88.19635,-33.6539 z"
+         id="path3040"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 1171.3017,2632.7113 -85.8755,0 0,-366.7112 85.8755,0 0,64.9868 c 0,0 20.2001,-71.9497 92.8383,-71.9497 21.7856,0 34.8143,5.8024 34.8143,5.8024 l 0,88.1964 c 0,0 -19.4435,-15.0862 -51.061,-15.0862 -63.0198,0 -76.5916,73.5318 -76.5916,103.2826 z"
+         id="path3042"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccc" />
+      <path
+         id="path3044"
+         d="m 1497.3962,2256.7311 c -112.3272,0 -194.9604,64.9299 -194.9604,194.9604 0,122.7074 76.9595,189.9559 186.837,189.9559 114.1651,0 191.479,-72.5563 191.479,-199.2397 0,-107.5512 -62.7714,-185.6766 -183.3556,-185.6766 z m -8.5585,71.9497 c 0.9136,-0.021 1.8328,0 2.7561,0 59.8718,0 98.6407,36.1547 98.6407,121.8502 0,76.461 -33.0297,119.5293 -96.3198,119.5293 -75.9237,0 -100.9616,-60.4133 -100.9616,-119.5293 0,-78.8247 38.3256,-120.566 95.8846,-121.8502 z"
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path3048"
+         d="m 2197.2374,2256.7311 c -112.3272,0 -194.9605,64.9299 -194.9605,194.9604 0,122.7074 76.9596,189.9559 186.8371,189.9559 114.1651,0 191.479,-72.5563 191.479,-199.2397 0,-107.5512 -62.7715,-185.6766 -183.3556,-185.6766 z m -8.5222,71.9497 c 0.9135,-0.021 1.7965,0 2.7198,0 59.8717,0 98.6407,36.1547 98.6407,121.8502 0,76.461 -33.0297,119.5293 -96.3198,119.5293 -75.9237,0 -100.9616,-60.4133 -100.9616,-119.5293 0,-78.8247 38.3618,-120.566 95.9209,-121.8502 z"
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 1721.3686,2621.1066 0,-85.8755 c 0,0 43.3276,37.1354 102.1221,37.1354 32.6852,0 54.9528,-9.7359 54.9528,-37.1354 0,-65.5674 -157.0749,-39.3765 -157.0749,-164.7879 0,-66.7012 55.864,-113.727 140.4179,-113.727 41.8689,0 84.7149,15.0863 84.7149,15.0863 l 0,81.5734 c 0,0 -37.3972,-27.576 -86.523,-27.576 -33.7158,0 -50.4134,15.249 -50.4134,36.6546 0,31.0177 25.0762,38.8104 55.1221,51.9432 44.8986,19.625 100.8948,40.809 100.8948,112.4023 0,70.1411 -57.788,115.1952 -144.4122,115.1952 -57.6213,0 -99.8011,-20.8886 -99.8011,-20.8886 z"
+         id="path3052"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccsccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 2536.0246,2632.7113 -87.0359,0 0,-297.0825 -60.3449,0 0,-69.6287 60.3449,0 0,-49.9006 c 0,-82.6049 57.5864,-133.4551 134.6155,-133.4551 31.7542,0 48.7401,6.9629 48.7401,6.9629 l 0,75.4311 c 0,0 -20.8651,-10.4443 -40.6167,-10.4443 -44.3663,0 -55.703,33.6353 -55.703,69.6287 l 0,41.7773 129.9736,0 0,-83.5545 87.0359,-26.1975 0,109.752 87.0359,0 0,69.6287 -87.0359,0 0,172.9113 c 0,37.1573 8.4957,61.5054 47.5797,61.5054 23.8652,0 39.4562,-13.9258 39.4562,-13.9258 l 0,73.1102 c 0,0 -30.3112,12.7653 -63.8263,12.7653 -66.5692,0 -110.2455,-29.6542 -110.2455,-120.6898 l 0,-185.6766 -129.9736,0 z"
+         id="path3054"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccccccccccccccccccccc" />
+    </g>
+  </g>
+</svg>
diff --git a/go.dev/_content/images/logos/mongodb.svg b/go.dev/_content/images/logos/mongodb.svg
new file mode 100644
index 0000000..e4fe5c6
--- /dev/null
+++ b/go.dev/_content/images/logos/mongodb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 31 67" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M14.174.175l1.708 3.208c.37.58.804 1.117 1.3 1.604 1.43 1.43 2.788 2.928 4.008 4.532 2.894 3.8 4.846 8 6.24 12.584a30.94 30.94 0 0 1 1.324 8.54c.14 8.646-2.824 16.07-8.8 22.24-.972.978-2.022 1.876-3.14 2.684-.592 0-.872-.454-1.116-.872-.454-.766-.732-1.64-.872-2.5-.2-1.046-.348-2.092-.28-3.172v-.488C14.488 48.4 13.966.4 14.174.175z" fill="#599636"></path><path d="M14.174.07c-.07-.14-.14-.034-.2.034.034.7-.2 1.324-.592 1.92-.4.592-.976 1.046-1.534 1.534-3.1 2.684-5.54 5.926-7.494 9.552-2.6 4.88-3.94 10.1-4.32 15.616C-.15 30.71.652 37.72 1.278 39.74c1.708 5.368 4.776 9.866 8.75 13.77a35.08 35.08 0 0 0 3.1 2.65c.314 0 .348-.28.4-.488a9.57 9.57 0 0 0 .314-1.36l.7-5.228L14.174.07z" fill="#6cac48"></path><path d="M15.882 57.69c.07-.8.454-1.464.872-2.126-.4-.174-.732-.52-.976-.906a6.47 6.47 0 0 1-.52-1.15c-.488-1.464-.592-3-.732-4.496v-.906c-.174.14-.2 1.324-.2 1.5-.102 1.58-.312 3.154-.628 4.706-.104.628-.174 1.254-.56 1.812 0 .07 0 .14.034.244.628 1.848.8 3.73.906 5.648v.7c0 .836-.034.66.66.94.28.104.592.14.872.348.2 0 .244-.174.244-.314l-.104-1.15v-3.208c-.034-.56.07-1.116.14-1.64z" fill="#c2bfbf"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/netflix.svg b/go.dev/_content/images/logos/netflix.svg
new file mode 100644
index 0000000..75f2a20
--- /dev/null
+++ b/go.dev/_content/images/logos/netflix.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 48"><defs><style>.cls-1{fill:none;}.cls-2{fill:#d81f26;}</style></defs><title>netfix</title><rect class="cls-1" width="134" height="48"/><path class="cls-2" d="M18.63,39.77c-2,.36-4.07.46-6.19.75L6,21.52V41.33c-2,.21-3.85.49-5.76.78V5.89H5.58l7.35,20.54V5.89h5.7ZM29.77,19.15c2.19,0,5.55-.11,7.56-.11V24.7c-2.51,0-5.44,0-7.56.11v8.42c3.32-.21,6.64-.5,10-.6v5.44L24.11,39.31V5.89H39.77v5.65h-10Zm31.05-7.61H55v26c-1.91,0-3.82,0-5.66.07V11.55H43.42V5.89h17.4ZM70,18.76h7.75v5.65H70V37.25H64.46V5.89H80.27v5.65H70ZM89.46,32.31c3.22.07,6.47.32,9.62.5v5.57C94,38.07,89,37.75,83.8,37.64V5.89h5.66Zm14.4,6.47c1.8.11,3.71.22,5.55.43V5.89h-5.55ZM134.2,5.89,127,23.11l7.18,19c-2.12-.29-4.24-.66-6.37-1l-4.06-10.47-4.14,9.62c-2-.35-4-.46-6.08-.74l7.28-16.59-6.58-17h6.09l3.71,9.52,4-9.52Z" transform="translate(-0.2)"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/paypal.svg b/go.dev/_content/images/logos/paypal.svg
new file mode 100644
index 0000000..6528aee
--- /dev/null
+++ b/go.dev/_content/images/logos/paypal.svg
@@ -0,0 +1 @@
+<svg width="2119" height="2500" viewBox="0 0 256 302" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M217.168 23.507C203.234 7.625 178.046.816 145.823.816h-93.52A13.393 13.393 0 0 0 39.076 12.11L.136 259.077c-.774 4.87 2.997 9.28 7.933 9.28h57.736l14.5-91.971-.45 2.88c1.033-6.501 6.593-11.296 13.177-11.296h27.436c53.898 0 96.101-21.892 108.429-85.221.366-1.873.683-3.696.957-5.477-1.556-.824-1.556-.824 0 0 3.671-23.407-.025-39.34-12.686-53.765" fill="#27346A"/><path d="M102.397 68.84a11.737 11.737 0 0 1 5.053-1.14h73.318c8.682 0 16.78.565 24.18 1.756a101.6 101.6 0 0 1 6.177 1.182 89.928 89.928 0 0 1 8.59 2.347c3.638 1.215 7.026 2.63 10.14 4.287 3.67-23.416-.026-39.34-12.687-53.765C203.226 7.625 178.046.816 145.823.816H52.295C45.71.816 40.108 5.61 39.076 12.11L.136 259.068c-.774 4.878 2.997 9.282 7.925 9.282h57.744L95.888 77.58a11.717 11.717 0 0 1 6.509-8.74z" fill="#27346A"/><path d="M228.897 82.749c-12.328 63.32-54.53 85.221-108.429 85.221H93.024c-6.584 0-12.145 4.795-13.168 11.296L61.817 293.621c-.674 4.262 2.622 8.124 6.934 8.124h48.67a11.71 11.71 0 0 0 11.563-9.88l.474-2.48 9.173-58.136.591-3.213a11.71 11.71 0 0 1 11.562-9.88h7.284c47.147 0 84.064-19.154 94.852-74.55 4.503-23.15 2.173-42.478-9.739-56.054-3.613-4.112-8.1-7.508-13.327-10.28-.283 1.79-.59 3.604-.957 5.477z" fill="#2790C3"/><path d="M216.952 72.128a89.928 89.928 0 0 0-5.818-1.49 109.904 109.904 0 0 0-6.177-1.174c-7.408-1.199-15.5-1.765-24.19-1.765h-73.309a11.57 11.57 0 0 0-5.053 1.149 11.683 11.683 0 0 0-6.51 8.74l-15.582 98.798-.45 2.88c1.025-6.501 6.585-11.296 13.17-11.296h27.444c53.898 0 96.1-21.892 108.428-85.221.367-1.873.675-3.688.958-5.477-3.122-1.648-6.501-3.072-10.14-4.279a83.26 83.26 0 0 0-2.77-.865" fill="#1F264F"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/prometheus.svg b/go.dev/_content/images/logos/prometheus.svg
new file mode 100644
index 0000000..5c51f66
--- /dev/null
+++ b/go.dev/_content/images/logos/prometheus.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="115.333px"
+   height="114px"
+   viewBox="0 0 115.333 114"
+   enable-background="new 0 0 115.333 114"
+   xml:space="preserve"
+   sodipodi:docname="prometheus_logo_orange.svg"
+   inkscape:version="0.92.1 r15371"><metadata
+     id="metadata4495"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs4493" /><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1484"
+     inkscape:window-height="886"
+     id="namedview4491"
+     showgrid="false"
+     inkscape:zoom="5.2784901"
+     inkscape:cx="60.603667"
+     inkscape:cy="60.329656"
+     inkscape:window-x="54"
+     inkscape:window-y="7"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="Layer_1" /><g
+     id="Layer_2" /><path
+     style="fill:#e6522c;fill-opacity:1"
+     inkscape:connector-curvature="0"
+     id="path4486"
+     d="M 56.667,0.667 C 25.372,0.667 0,26.036 0,57.332 c 0,31.295 25.372,56.666 56.667,56.666 31.295,0 56.666,-25.371 56.666,-56.666 0,-31.296 -25.372,-56.665 -56.666,-56.665 z m 0,106.055 c -8.904,0 -16.123,-5.948 -16.123,-13.283 H 72.79 c 0,7.334 -7.219,13.283 -16.123,13.283 z M 83.297,89.04 H 30.034 V 79.382 H 83.298 V 89.04 Z M 83.106,74.411 H 30.186 C 30.01,74.208 29.83,74.008 29.66,73.802 24.208,67.182 22.924,63.726 21.677,60.204 c -0.021,-0.116 6.611,1.355 11.314,2.413 0,0 2.42,0.56 5.958,1.205 -3.397,-3.982 -5.414,-9.044 -5.414,-14.218 0,-11.359 8.712,-21.285 5.569,-29.308 3.059,0.249 6.331,6.456 6.552,16.161 3.252,-4.494 4.613,-12.701 4.613,-17.733 0,-5.21 3.433,-11.262 6.867,-11.469 -3.061,5.045 0.793,9.37 4.219,20.099 1.285,4.03 1.121,10.812 2.113,15.113 C 63.797,33.534 65.333,20.5 71,16 c -2.5,5.667 0.37,12.758 2.333,16.167 3.167,5.5 5.087,9.667 5.087,17.548 0,5.284 -1.951,10.259 -5.242,14.148 3.742,-0.702 6.326,-1.335 6.326,-1.335 l 12.152,-2.371 c 10e-4,-10e-4 -1.765,7.261 -8.55,14.254 z" /></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/riotgames.png b/go.dev/_content/images/logos/riotgames.png
new file mode 100644
index 0000000..facb585
--- /dev/null
+++ b/go.dev/_content/images/logos/riotgames.png
Binary files differ
diff --git a/go.dev/_content/images/logos/salesforce.svg b/go.dev/_content/images/logos/salesforce.svg
new file mode 100644
index 0000000..a2469a8
--- /dev/null
+++ b/go.dev/_content/images/logos/salesforce.svg
@@ -0,0 +1,62 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 68.6 48" style="enable-background:new 0 0 68.6 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#00A1E0;}
+	.st1{fill:#FFFFFF;}
+</style>
+<title>salesforce</title>
+<path class="st0" d="M28.6,5.2c2.3-2.4,5.4-3.7,8.7-3.7c4.4,0,8.4,2.4,10.6,6.3c7.5-3.3,16.2,0.1,19.5,7.5c0.9,1.9,1.3,4,1.3,6.1
+	c0,8.2-6.6,14.9-14.8,14.9c-1,0-2-0.1-2.9-0.2c-2.8,5-9,6.9-14.2,4.4c-2.7,6.3-9.9,9.2-16.2,6.5c-3.1-1.3-5.6-3.9-6.8-7.1
+	c-0.8,0.2-1.6,0.2-2.3,0.2C5.1,40.1-0.1,34.9,0,28.5c0-4.1,2.2-7.8,5.7-9.9c-0.7-1.7-1.1-3.5-1.1-5.3C4.7,5.9,10.6,0,18,0
+	C22.1,0,26,1.9,28.6,5.2"/>
+<path class="st1" d="M10,24.9c0,0.1,0,0.1,0,0.2c0.1,0.1,0.3,0.2,0.4,0.2c0.6,0.3,1.3,0.5,2,0.5c1.4,0,2.3-0.8,2.3-2l0,0
+	c0-1.1-1-1.5-1.9-1.8h-0.1c-0.7-0.2-1.3-0.4-1.3-0.9l0,0c0-0.4,0.3-0.7,0.9-0.7c0.6,0,1.2,0.2,1.8,0.5c0,0,0.1,0.1,0.2,0l0.3-0.8
+	c0-0.1,0-0.1-0.1-0.1c-0.6-0.4-1.3-0.5-2-0.5h-0.1c-1.1-0.1-2,0.7-2.2,1.8l0,0c0,1.2,1,1.6,1.9,1.8h0.1c0.7,0.2,1.3,0.4,1.3,0.9l0,0
+	c0,0.4-0.4,0.8-1,0.8c-0.6,0-1.3-0.2-1.8-0.5c-0.1,0-0.2-0.1-0.2-0.1c0,0-0.1,0-0.2,0c0,0,0,0,0,0.1L10,24.9L10,24.9z"/>
+<path class="st1" d="M30.5,24.9c0,0,0,0.1,0,0.2c0.1,0.1,0.3,0.2,0.4,0.2c0.6,0.3,1.3,0.5,2,0.5c1.4,0,2.3-0.8,2.3-2l0,0
+	c0-1.1-1-1.5-1.9-1.8h-0.1c-0.7-0.2-1.3-0.4-1.3-0.9l0,0c0-0.4,0.4-0.7,0.9-0.7c0.6,0,1.2,0.2,1.8,0.5c0,0,0.1,0.1,0.2,0l0.3-0.9
+	c0-0.1,0-0.1-0.1-0.1c0,0,0,0,0,0c-0.6-0.4-1.3-0.6-2-0.5h-0.1c-1.1-0.1-2.1,0.7-2.2,1.8c0,0,0,0.1,0,0.1l0,0c0,1.2,1,1.6,1.9,1.8
+	h0.2c0.7,0.2,1.3,0.4,1.3,0.9l0,0c0,0.4-0.4,0.8-1,0.8c-0.6,0-1.3-0.2-1.8-0.5H31c-0.1,0-0.1,0-0.2,0c0,0,0,0,0,0L30.5,24.9
+	L30.5,24.9z"/>
+<path class="st1" d="M44.6,22.5c0,0.6-0.1,1.1-0.4,1.6c-0.5,0.6-1.4,0.7-2,0.3c-0.1-0.1-0.2-0.2-0.3-0.3c-0.3-0.5-0.4-1-0.4-1.6
+	c0-0.6,0.1-1.1,0.4-1.6c0.5-0.6,1.4-0.7,2.1-0.2c0.1,0.1,0.2,0.1,0.2,0.2C44.5,21.4,44.6,22,44.6,22.5 M45.8,21.3
+	c-0.1-0.4-0.3-0.7-0.5-1c-0.2-0.3-0.6-0.5-0.9-0.7c-0.8-0.3-1.7-0.3-2.5,0c-0.3,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,1
+	c-0.1,0.4-0.2,0.8-0.2,1.3c0,0.4,0.1,0.8,0.2,1.3c0.1,0.4,0.3,0.7,0.5,1c0.2,0.3,0.6,0.5,0.9,0.7c0.8,0.3,1.7,0.3,2.5,0
+	c0.3-0.2,0.7-0.4,0.9-0.7c0.2-0.3,0.4-0.6,0.5-1c0.1-0.4,0.2-0.8,0.2-1.3C46,22.1,45.9,21.7,45.8,21.3"/>
+<path class="st1" d="M55.4,24.5c0-0.1-0.1-0.1-0.1-0.1c0,0,0,0,0,0c-0.2,0.1-0.4,0.1-0.6,0.2c-0.2,0-0.4,0-0.6,0
+	c-0.5,0-1-0.2-1.3-0.5c-0.4-0.4-0.5-1-0.5-1.6c0-0.6,0.1-1.1,0.4-1.5c0.3-0.4,0.8-0.6,1.3-0.6c0.4,0,0.8,0,1.2,0.2
+	c0,0,0.1,0,0.1-0.1l0.3-0.8c0-0.1,0-0.1-0.1-0.1c0,0,0,0,0,0c-0.3-0.1-0.5-0.1-0.8-0.2c-0.3,0-0.6-0.1-0.9-0.1
+	c-0.4,0-0.9,0.1-1.3,0.2c-0.7,0.3-1.3,1-1.5,1.7c-0.1,0.4-0.2,0.8-0.2,1.3c0,0.8,0.2,1.7,0.8,2.3c0.6,0.6,1.4,0.9,2.3,0.9
+	c0.6,0,1.1-0.1,1.7-0.3c0,0,0-0.1,0-0.1L55.4,24.5L55.4,24.5z"/>
+<path class="st1" d="M57.5,21.9c0-0.3,0.1-0.7,0.3-0.9c0.3-0.4,0.7-0.6,1.1-0.6c0.4,0,0.9,0.2,1.1,0.6c0.2,0.3,0.3,0.6,0.3,0.9H57.5
+	z M61.5,21.1c-0.1-0.3-0.3-0.7-0.5-0.9c-0.2-0.2-0.5-0.4-0.8-0.6c-0.4-0.2-0.7-0.2-1.1-0.2c-0.5,0-0.9,0.1-1.3,0.3
+	c-0.4,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,1c-0.2,0.8-0.2,1.7,0,2.5c0.2,0.8,0.8,1.4,1.6,1.7c0.5,0.2,1,0.2,1.4,0.2
+	c0.7,0,1.4-0.1,2-0.4c0,0,0.1-0.1,0-0.2l-0.2-0.7c0-0.1-0.1-0.1-0.1-0.1c0,0,0,0,0,0c-0.5,0.2-1.1,0.3-1.6,0.3c-0.5,0-1-0.1-1.4-0.5
+	c-0.3-0.4-0.5-0.8-0.5-1.3h4c0.1,0,0.1,0,0.1-0.1C61.7,22.2,61.6,21.6,61.5,21.1L61.5,21.1z"/>
+<path class="st1" d="M25.6,21.9c0-0.3,0.1-0.7,0.3-0.9c0.2-0.4,0.7-0.6,1.1-0.6c0.4,0,0.9,0.2,1.1,0.6c0.2,0.3,0.2,0.6,0.3,0.9H25.6
+	z M29.6,21.1c-0.1-0.4-0.3-0.7-0.5-1c-0.2-0.2-0.5-0.4-0.8-0.6c-0.4-0.2-0.7-0.2-1.1-0.2c-0.5,0-0.9,0.1-1.3,0.3
+	c-0.4,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,1c-0.1,0.4-0.2,0.8-0.2,1.3c0,0.4,0.1,0.9,0.2,1.3c0.1,0.4,0.3,0.7,0.6,1
+	c0.3,0.3,0.6,0.5,1,0.7c0.5,0.2,1,0.2,1.5,0.2c0.7,0,1.4-0.1,2-0.4c0,0,0.1-0.1,0-0.2l-0.3-0.7c0-0.1-0.1-0.1-0.1-0.1c0,0,0,0,0,0
+	c-0.5,0.2-1.1,0.3-1.6,0.3c-0.9,0.1-1.7-0.5-1.8-1.4c0-0.1,0-0.2,0-0.4h4c0,0,0.1,0,0.1-0.1C29.8,22.2,29.7,21.6,29.6,21.1
+	L29.6,21.1z"/>
+<path class="st1" d="M17.1,24.5c-0.1-0.1-0.2-0.1-0.2-0.2c-0.1-0.2-0.1-0.3-0.1-0.5c0-0.3,0.1-0.6,0.3-0.8c0.3-0.2,0.8-0.3,1.2-0.3
+	c0.4,0,0.7,0,1.1,0.1v1.8l0,0c-0.4,0.1-0.7,0.1-1.1,0.1C17.8,24.8,17.4,24.7,17.1,24.5 M18.7,21.7h-0.6c-0.3,0-0.7,0-1,0.1
+	c-0.3,0.1-0.6,0.2-0.8,0.4c-0.2,0.2-0.4,0.4-0.6,0.7c-0.1,0.3-0.2,0.6-0.2,0.9c0,0.3,0.1,0.6,0.2,0.9c0.1,0.2,0.3,0.5,0.5,0.6
+	c0.2,0.2,0.5,0.3,0.8,0.4c0.3,0.1,0.7,0.1,1,0.1c0.4,0,0.8,0,1.2-0.1l1-0.2l0.3-0.1c0.1,0,0.1-0.1,0.1-0.1v-3.7
+	c0.1-0.6-0.2-1.3-0.6-1.8c-0.5-0.4-1.2-0.6-1.8-0.6c-0.4,0-0.7,0-1.1,0.1c-0.4,0.1-0.8,0.2-1.2,0.5c0,0,0,0.1,0,0.2l0.3,0.8
+	c0,0.1,0.1,0.1,0.1,0.1c0,0,0,0,0,0h0.1c0.5-0.3,1.1-0.4,1.7-0.4c0.4,0,0.7,0.1,1,0.2c0.2,0.2,0.3,0.4,0.3,1v0.2L18.7,21.7"/>
+<path class="st1" d="M50.7,19.6c0-0.1,0-0.1-0.1-0.1c-0.2-0.1-0.4-0.1-0.7-0.1c-0.3,0-0.7,0-1,0.2c-0.3,0.1-0.5,0.3-0.7,0.5v-0.5
+	c0-0.1,0-0.1-0.1-0.1c0,0,0,0,0,0h-1.1c-0.1,0-0.1,0-0.1,0.1c0,0,0,0,0,0v5.9c0,0.1,0.1,0.1,0.1,0.1l0,0h1c0.1,0,0.1-0.1,0.1-0.1
+	c0,0,0,0,0,0v-3c0-0.3,0-0.7,0.1-1c0.1-0.2,0.2-0.4,0.3-0.6c0.1-0.1,0.3-0.2,0.5-0.3c0.2,0,0.4-0.1,0.5-0.1c0.1,0,0.3,0,0.4,0
+	c0.1,0,0.1,0,0.2-0.1L50.7,19.6"/>
+<path class="st1" d="M40.9,16.9c-0.1,0-0.3-0.1-0.4-0.1c-0.2,0-0.4,0-0.5,0c-0.6,0-1.2,0.2-1.7,0.6c-0.4,0.5-0.7,1.1-0.8,1.8v0.3
+	h-0.9c-0.1,0-0.1,0.1-0.1,0.1l-0.2,0.8c0,0.1,0,0.1,0.1,0.1h0.9l-0.9,5c-0.1,0.3-0.1,0.7-0.2,1c-0.1,0.2-0.2,0.4-0.3,0.6
+	c-0.1,0.1-0.2,0.2-0.4,0.3c-0.1,0-0.3,0.1-0.5,0.1c-0.1,0-0.2,0-0.3,0c-0.1,0-0.1,0-0.2-0.1c-0.1,0-0.1,0-0.1,0.1l-0.3,0.8
+	c0,0.1,0,0.1,0.1,0.2l0.4,0.1c0.2,0,0.4,0.1,0.6,0c0.3,0,0.7,0,1-0.1c0.3-0.1,0.5-0.3,0.7-0.5c0.2-0.3,0.4-0.6,0.5-0.9
+	c0.2-0.4,0.3-0.9,0.3-1.3l0.9-5.1h1.3c0.1,0,0.1-0.1,0.1-0.1l0.1-0.8c0-0.1,0-0.1-0.1-0.1h-1.3c0.1-0.3,0.1-0.6,0.2-0.9
+	c0-0.2,0.1-0.4,0.3-0.6c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.3-0.1,0.4-0.1c0.1,0,0.2,0,0.3,0l0.2,0c0.1,0,0.2,0,0.2-0.1L40.9,16.9
+	C41,16.9,40.9,16.9,40.9,16.9C40.9,16.8,40.9,16.8,40.9,16.9"/>
+<path class="st1" d="M23.1,25.5c0,0.1-0.1,0.1-0.1,0.1h-1c-0.1,0-0.1,0-0.1-0.1c0,0,0,0,0,0V17c0-0.1,0-0.1,0.1-0.1c0,0,0,0,0,0h1
+	c0.1,0,0.1,0.1,0.1,0.1L23.1,25.5L23.1,25.5z"/>
+</svg>
diff --git a/go.dev/_content/images/logos/sitereliability.svg b/go.dev/_content/images/logos/sitereliability.svg
new file mode 100644
index 0000000..c549d69
--- /dev/null
+++ b/go.dev/_content/images/logos/sitereliability.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="400 200 5350 1470"><path d="M413.85 1464.55l43.15-17.64c10.29 38.71 40.67 69.58 80.85 69.58 37.24 0 70.07-21.07 70.07-58.31 0-32.34-22-49.49-75-68.11l-22-7.84c-39.21-13.72-84.29-37.73-84.29-95.55 0-50.48 44.6-93.6 107.81-93.6 66.15 0 100 43.12 108.78 71.06L601 1281.77c-5.39-18.62-25.48-45.57-65.66-45.57-33.82 0-62.73 21.07-62.73 50.48 0 27.93 24 42.14 63.71 55.86l22.54 7.84c51.94 18.13 95.06 46.06 95.06 107.8 0 72.52-65.17 101.43-117.11 101.43s-105.32-31.85-122.96-95.06zm269.55-235.7a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm133.29-14.7c-13.23-12.74-19.6-28.91-19.6-52.43v-131.81h-42.16v-41.16h42.14v-73.51h45.08v73.51h58.81v41.16h-58.81v119.56c0 12.74 2 23.52 7.35 30.38s14.21 10.78 21.56 10.78c10.78 0 14.7-1.47 21.57-4.41l14.21 40.18c-12.25 4.41-23.53 6.37-41.17 6.37-20.58 0-37.73-7.84-48.98-18.62zm95.09-105.35c0-69.58 45.57-127.89 118.58-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33H967.15c1.47 53.9 43.12 78.4 77.42 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.56 0-121.52-53.9-121.52-127.89zm117.6-86.73c-34.79 0-60.76 23.52-68.11 57.82h137.69c-1.47-21.07-16.66-57.81-69.58-57.81zm274.39-144.07h119.56c58.31 0 109.76 43.12 109.76 104.38 0 50-37.24 90.65-83.79 100.45l-1 1.47 98.49 142.59v2h-53.41l-94.57-142.1h-50v142.1h-45.08zm117.6 166.61c34.79 0 65.66-25.48 65.66-62.23 0-27.94-22.54-61.26-62.72-61.26h-75.46v123.49zm130.67 64.19c0-69.58 45.58-127.89 118.59-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33h-188.66c1.48 53.9 43.13 78.4 77.43 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.57 0-121.53-53.9-121.53-127.89zM1679 1345c-34.79 0-60.77 23.52-68.11 57.82h137.69c-1.51-21.08-16.7-57.82-69.58-57.82zm151.56 206.77v-350.85h45.08v350.85zm83.79-322.92a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm290.17-147.98v148h-43.12v-33.32h-2c-13.23 20.09-37.24 41.16-74.48 41.16-52.43 0-93.1-35.28-93.1-82.32 0-52.43 44.1-81.34 103.39-81.34 33.81 0 56.84 9.31 66.15 14.7v-10.29c0-33.32-31.36-56.35-62.23-56.35-25.48 0-44.59 9.31-59.78 31.85l-39.69-25c21.07-29.89 53.9-47 97-47 67.19-.05 107.86 38.17 107.86 99.91zm-43.12 45.08s-21.56-16.66-58.8-16.66c-38.22 0-64.19 21.07-64.19 46.06 0 26 27 41.16 50 41.16 36.28 0 72.99-31.36 72.99-70.56zm132.29 69.58h-2v33.32h-43.12v-350.85H2303v110.75l-2 33.32h2c13.72-22 43.61-41.16 81.83-41.16 60.76 0 114.17 54.39 114.17 127.89s-53.41 127.89-114.17 127.89c-38.26 0-68.15-19.11-81.83-41.16zm150.92-86.73c0-53.9-36.26-86.73-76.44-86.73s-76.44 31.85-76.44 86.73 36.26 86.73 76.44 86.73 76.4-32.83 76.4-86.73zm69.92-202.87a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm93.1 0v-350.85h45.08v350.85zm83.75-322.92a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm133.31-14.7c-13.23-12.74-19.6-28.91-19.6-52.43v-131.81h-42.14v-41.16H2833v-73.51h45.08v73.51h58.8v41.16h-58.8v119.56c0 12.74 2 23.52 7.35 30.38s14.21 10.78 21.56 10.78c10.78 0 14.7-1.47 21.56-4.41l14.21 40.18c-12.25 4.41-23.52 6.37-41.16 6.37-20.6 0-37.71-7.84-48.98-18.62zm142.63 120.54l55.86-121-99-224.91h49l71.54 172.48h1l69.58-172.48h49l-150.43 345.91zM3382.34 1244v111.24h144.06v42.14h-144.06v111.23h159.74v43.12h-204.82v-350.81h204.82V1244zm241.41 101h2c12.74-22 43.13-41.16 76-41.16 61.25 0 91.63 37.73 91.63 97v150.92h-45.08v-144.05c0-50-25-62.72-59.29-62.72-39.2 0-63.22 37.24-63.22 74v132.79h-45.08v-240.1h43.12zm210.06 250.38l42.63-17.64c9.31 26.46 33.81 46.55 67.62 46.55 50 0 77.92-32.34 77.92-82.81v-23h-2c-14.7 22-43.61 41.16-81.83 41.16-61.26 0-114.18-54.39-114.18-127.89s52.92-127.89 114.18-127.89c38.22 0 67.13 19.11 81.83 41.16h2v-33.32h43.12v229.81c0 84.28-54.88 124-121 124-64.72-.06-99.51-39.75-110.29-70.13zM4022 1431.72c0-54.88-36.26-86.73-76.45-86.73s-76.44 32.83-76.44 86.73 36.26 86.73 76.44 86.73 76.45-31.85 76.45-86.73zm82.63-202.87a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1H4159v240.1zM4250.45 1345h2c12.74-22 43.12-41.16 75.95-41.16 61.25 0 91.63 37.73 91.63 97v150.92h-45.08v-144.05c0-50-25-62.72-59.29-62.72-39.2 0-63.21 37.24-63.21 74v132.79h-45.08v-240.1h43.12zm201.19 86.72c0-69.58 45.57-127.89 118.58-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33H4497.7c1.47 53.9 43.12 78.4 77.42 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.56 0-121.52-53.9-121.52-127.89zm117.6-86.73c-34.79 0-60.76 23.52-68.11 57.82h137.69c-1.47-21.07-16.66-57.81-69.58-57.81zm137.49 86.73c0-69.58 45.57-127.89 118.58-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33h-188.65c1.47 53.9 43.12 78.4 77.42 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.56 0-121.52-53.9-121.52-127.89zm117.6-86.73c-34.79 0-60.76 23.52-68.11 57.82h137.69c-1.47-21.07-16.66-57.81-69.58-57.81zm151.02 206.78v-240.1h43.12v39.2h2c9.8-27.44 45.08-46.06 70.07-46.06 14.7 0 24.5 2 33.32 5.88l-13.72 43.61c-6.86-2.45-15.19-3.43-26.46-3.43-33.81 0-63.21 31.85-63.21 68.6v132.3zm161.45-322.92a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm136.5-206.77h2c12.74-22 43.12-41.16 76-41.16 61.26 0 91.64 37.73 91.64 97v150.92h-45.08v-144.05c0-50-25-62.72-59.3-62.72-39.2 0-63.21 37.24-63.21 74v132.79h-45.08v-240.1h43.12zm210.06 250.38l42.63-17.64c9.31 26.46 33.81 46.55 67.62 46.55 50 0 77.92-32.34 77.92-82.81v-23h-2c-14.7 22-43.61 41.16-81.84 41.16-61.25 0-114.17-54.39-114.17-127.89s52.92-127.89 114.17-127.89c38.23 0 67.14 19.11 81.84 41.16h2v-33.32H5724v229.81c0 84.28-54.89 124-121 124-64.76-.06-99.55-39.75-110.33-70.13zm188.17-163.66c0-54.88-36.27-86.73-76.45-86.73s-76.44 32.83-76.44 86.73 36.26 86.73 76.44 86.73 76.45-31.85 76.45-86.73z" fill="#5f6368"/><path fill="#ea4335" d="M3068.91 231.58l-98.04 56.61V403.2l-101.96 59.75V346.62l-98.05 57.5v.01l137.26 356.86 160.79-184.32 39.21-172.54-39.21-172.55z"/><path fill="#fbbc04" d="M3068.91 231.58l98.03 56.61V403.2l101.97 59.75V346.62l98.03 57.5v.01l-137.25 356.86-160.78-184.32V231.58z"/><path d="M3068.9 576.67l-98-57.51v115l-102-57.51V463l-98-58.82v317.87a47.06 47.06 0 0023.52 40.76l251 145.38a47 47 0 0023.52 6.3l58.83-184.87z" fill="#4285f4"/><path d="M3068.9 576.67l98-57.51v115l102-57.51V463l98-58.82v317.87a47.06 47.06 0 01-23.53 40.76l-251 145.38a47 47 0 01-23.53 6.3z" fill="#34a853"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/stripe.svg b/go.dev/_content/images/logos/stripe.svg
new file mode 100644
index 0000000..cfb5c25
--- /dev/null
+++ b/go.dev/_content/images/logos/stripe.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="362"
+   height="151.8"
+   viewBox="0 0 95.779166 40.163749"
+   version="1.1"
+   id="svg5512"
+   inkscape:version="0.92.0 r15299"
+   sodipodi:docname="stripe.svg">
+  <defs
+     id="defs5506" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.2277778"
+     inkscape:cx="180"
+     inkscape:cy="74.899999"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     units="px"
+     inkscape:window-width="1280"
+     inkscape:window-height="744"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5509">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(24.946428,-325.0345)">
+    <g
+       id="Stripe"
+       transform="matrix(0.26458333,0,0,0.26458333,-38.969344,315.77409)">
+	<path
+   id="path5516"
+   d="m 414,113.4 c 0,-25.6 -12.4,-45.8 -36.1,-45.8 -23.8,0 -38.2,20.2 -38.2,45.6 0,30.1 17,45.3 41.4,45.3 11.9,0 20.9,-2.7 27.7,-6.5 v -20 c -6.8,3.4 -14.6,5.5 -24.5,5.5 -9.7,0 -18.3,-3.4 -19.4,-15.2 h 48.9 c 0,-1.3 0.2,-6.5 0.2,-8.9 z m -49.4,-9.5 c 0,-11.3 6.9,-16 13.2,-16 6.1,0 12.6,4.7 12.6,16 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5518"
+   d="m 301.1,67.6 c -9.8,0 -16.1,4.6 -19.6,7.8 l -1.3,-6.2 h -22 v 116.6 l 25,-5.3 0.1,-28.3 c 3.6,2.6 8.9,6.3 17.7,6.3 17.9,0 34.2,-14.4 34.2,-46.1 -0.1,-29 -16.6,-44.8 -34.1,-44.8 z m -6,68.9 c -5.9,0 -9.4,-2.1 -11.8,-4.7 l -0.1,-37.1 c 2.6,-2.9 6.2,-4.9 11.9,-4.9 9.1,0 15.4,10.2 15.4,23.3 0,13.4 -6.2,23.4 -15.4,23.4 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<polygon
+   id="polygon5520"
+   points="248.9,56.3 248.9,36 223.8,41.3 223.8,61.7 "
+   class="st0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<rect
+   id="rect5522"
+   height="87.5"
+   width="25.1"
+   class="st0"
+   y="69.300003"
+   x="223.8"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5524"
+   d="m 196.9,76.7 -1.6,-7.4 h -21.6 v 87.5 h 25 V 97.5 c 5.9,-7.7 15.9,-6.3 19,-5.2 v -23 c -3.2,-1.2 -14.9,-3.4 -20.8,7.4 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5526"
+   d="m 146.9,47.6 -24.4,5.2 -0.1,80.1 c 0,14.8 11.1,25.7 25.9,25.7 8.2,0 14.2,-1.5 17.5,-3.3 V 135 c -3.2,1.3 -19,5.9 -19,-8.9 V 90.6 h 19 V 69.3 h -19 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5528"
+   d="m 79.3,94.7 c 0,-3.9 3.2,-5.4 8.5,-5.4 7.6,0 17.2,2.3 24.8,6.4 V 72.2 C 104.3,68.9 96.1,67.6 87.8,67.6 67.5,67.6 54,78.2 54,95.9 c 0,27.6 38,23.2 38,35.1 0,4.6 -4,6.1 -9.6,6.1 -8.3,0 -18.9,-3.4 -27.3,-8 v 23.8 c 9.3,4 18.7,5.7 27.3,5.7 20.8,0 35.1,-10.3 35.1,-28.2 -0.1,-29.8 -38.2,-24.5 -38.2,-35.7 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+</g>
+  </g>
+  <style
+     id="style5514"
+     type="text/css">
+	.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#6772E5;}
+</style>
+</svg>
diff --git a/go.dev/_content/images/logos/target.svg b/go.dev/_content/images/logos/target.svg
new file mode 100644
index 0000000..05974a0
--- /dev/null
+++ b/go.dev/_content/images/logos/target.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300"><path fill="#FFF" stroke="#E50024" stroke-width="50" d="M149 25a125 125 0 102 0zm2 100a25 25 0 11-2 0z"/></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/terraform-icon.svg b/go.dev/_content/images/logos/terraform-icon.svg
new file mode 100644
index 0000000..0627ba1
--- /dev/null
+++ b/go.dev/_content/images/logos/terraform-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 58 66" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none"><path d="M36.906 64V43.802L19.412 33.7v20.198zm0-22.405L19.412 31.49V11.285l17.494 10.103z" fill="#5c4ee5"></path><path d="M56.336 31.483V11.277L38.833 21.38v20.206z" fill="#4040b2"></path><path d="M17.494 30.31V10.103L0 0v20.206z" fill="#5c4ee5"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/terraform.png b/go.dev/_content/images/logos/terraform.png
new file mode 100644
index 0000000..56e7747
--- /dev/null
+++ b/go.dev/_content/images/logos/terraform.png
Binary files differ
diff --git a/go.dev/_content/images/logos/the-new-york-times-icon.svg b/go.dev/_content/images/logos/the-new-york-times-icon.svg
new file mode 100644
index 0000000..289ebd7
--- /dev/null
+++ b/go.dev/_content/images/logos/the-new-york-times-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 65 65" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><svg width="64" height="64" stroke="initial" fill="initial" fill-rule="initial"><g transform="matrix(1.662571 0 0 1.662571 5.095437 -18.288283)"><defs><path id="B" d="M2 61.8L1.3 11h374l.7 50.8z"></path></defs><clipPath id="C"><use xlink:href="#B"></use></clipPath><path clip-path="url(#C)" d="M13 39.2V25.5l-4.5 1.8s-1.1 2.3-.9 5.7c.1 2.7 1.7 5.8 2.9 7.2zM25.1 11c1 .1 2.7.6 3.9 1.6 1.3 1.2 1.6 3.1 1.2 4.8-.4 1.5-.9 2.3-2.5 3.4S24.9 22 24.9 22v6.6L28 31l-3.1 2.8v9s2.6-2.1 4.6-6.2c0 0 .1-.2.3-.7.2 1.1.1 3.4-1.2 6.2-1 2.2-2.7 4.2-5 5.4-3.9 2.1-6.9 2.3-10 1.7-3.7-.7-7.1-2.7-9.3-6.2C2.7 40.5 2 37.7 2 34.6c.1-6.1 4.8-11.3 10.2-13.3.7-.2.9-.4 1.8-.5-.4.3-.9.6-1.5 1-1.7 1.1-3.2 3.3-3.9 5L19 22.3v14.1l-8.3 4.1c1 1.3 3.9 3.2 6.4 3.5 4.2.5 7-1.1 7-1.1v-9.2L21 31l3.1-2.4V22c-1.8-.2-4.3-1-5.5-1.3-1.9-.4-8.1-2.1-9.1-2.3-1-.1-2.2-.1-2.9.5s-1.2 1.8-.9 2.8c.2.6.6.9.9 1.2 0 0-.4 0-1-.4-1.2-.7-2.1-2-2.2-3.7A6.2 6.2 0 0 1 6 13.4c1.6-1 3.4-1.6 5.5-1.3 3.1.4 7.2 2.1 10.9 3 1.4.3 2.5.4 3.5-.1.5-.3 1.3-1.2.6-2.3-.8-1.3-2.3-1.3-3.6-1.5 1.2-.2 1.4-.2 2.2-.2" fill="#251802"></path></g></svg></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/twitch.svg b/go.dev/_content/images/logos/twitch.svg
new file mode 100644
index 0000000..d684234
--- /dev/null
+++ b/go.dev/_content/images/logos/twitch.svg
@@ -0,0 +1,24 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 108.2 48" style="enable-background:new 0 0 108.2 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#9147FE;}
+	.st1{fill:#FFFFFF;}
+</style>
+<title>twitch</title>
+<g id="layer1">
+	<g id="g256">
+		<path id="path254" class="st0" d="M106.3,31.6h-7.6v-9.5h-1.9v9.5h-7.6V7.9h7.6v6.6h5.7l3.8,3.8L106.3,31.6 M87.3,22.1h-7.6V24
+			h7.6v7.6H76l-3.8-3.8v-9.5l3.8-3.8h11.4L87.3,22.1 M70.2,22.1h-6.6V24h6.7v7.6H59.8L56,27.8V7.9h7.6v6.6h6.7L70.2,22.1 M54.1,12.6
+			h-7.6V7.9h7.6V12.6 M54.1,31.6h-7.6v-17h7.6V31.6 M44.6,31.6H21.8L18,27.8V14.5h7.6V24h1.9v-9.5h7.6V24H37v-9.5h7.6L44.6,31.6
+			 M16.1,22.1H9.5V24h6.6v7.6H5.7l-3.8-3.8V7.9h7.6v6.6h6.6V22.1 M103.5,12.6h-4.8V6H88.3l-4.8,6.6H75l-2.9,2.8v-2.8h-6.6V6H44.6
+			v6.6H15.2L10.4,6H0v22.7L13.3,42h13.3v-3.8l3.8,3.8H56v-3.8l3.8,3.8h12.3v-3.8L76,42h23.7l8.6-8.5V17.4L103.5,12.6"/>
+	</g>
+	<g id="g262">
+		<path id="path260" class="st1" d="M89.2,31.6h7.6v-9.5h1.9v9.5h7.6V18.3l-3.8-3.8h-5.7V7.9h-7.6L89.2,31.6L89.2,31.6 M56,27.8
+			l3.8,3.8h10.5V24h-6.7v-1.9h6.7v-7.6h-6.7V7.9H56V27.8L56,27.8 M72.2,27.8l3.8,3.8h11.4V24h-7.6v-1.9h7.6v-7.6H76l-3.8,3.8
+			L72.2,27.8L72.2,27.8 M46.5,7.9h7.6v4.7h-7.6V7.9 M16.1,14.5H9.5V7.9H1.9v19.9l3.8,3.8h10.4V24H9.5v-1.9h6.6V14.5 M18,27.8
+			l3.8,3.8h22.8v-17H37V24h-1.9v-9.5h-7.6V24h-1.9v-9.5H18L18,27.8L18,27.8 M46.5,14.5h7.6v17h-7.6V14.5"/>
+	</g>
+</g>
+</svg>
diff --git a/go.dev/_content/images/logos/twitter.svg b/go.dev/_content/images/logos/twitter.svg
new file mode 100644
index 0000000..8c27bd2
--- /dev/null
+++ b/go.dev/_content/images/logos/twitter.svg
@@ -0,0 +1,12 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	width="59px" height="48px" viewBox="0 0 59 48" style="enable-background:new 0 0 59 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#1DA1F2;}
+</style>
+<title>twitter</title>
+<path class="st0" d="M18.5,48C40.8,48,53,29.6,53,13.6v-1.6c2.3-1.7,4.4-3.8,6-6.3c-2.2,1-4.6,1.6-7,1.9c2.6-1.5,4.5-3.9,5.4-6.7
+	c-2.4,1.4-5,2.4-7.7,2.9c-4.6-4.9-12.3-5.1-17.1-0.5c-3.1,2.9-4.5,7.3-3.5,11.5c-9.8-0.5-18.8-5.1-25-12.7
+	C0.9,7.7,2.5,14.8,7.8,18.3c-1.9-0.1-3.8-0.6-5.5-1.5V17c0,5.7,4.1,10.7,9.7,11.8c-1.8,0.5-3.7,0.5-5.5,0.2
+	c1.6,4.9,6.1,8.3,11.3,8.4c-4.3,3.4-9.6,5.2-15,5.2c-1,0-1.9-0.1-2.9-0.2C5.5,46.1,12,48,18.5,48"/>
+</svg>
diff --git a/go.dev/_content/images/logos/uber-app-icon.svg b/go.dev/_content/images/logos/uber-app-icon.svg
new file mode 100644
index 0000000..ca116d2
--- /dev/null
+++ b/go.dev/_content/images/logos/uber-app-icon.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="34px" height="34px" viewBox="0 0 34 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
+    <title>uber_rides_api_icon</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="uber_rides_api_icon">
+            <rect id="Rectangle-path" fill="#000000" x="0.5" y="0.5" width="33" height="33" rx="2.5"></rect>
+            <path d="M31,1 C32.1045695,1 33,1.8954305 33,3 L33,31 C33,32.1045695 32.1045695,33 31,33 L3,33 C1.8954305,33 1,32.1045695 1,31 L1,3 C1,1.8954305 1.8954305,1 3,1 L31,1 L31,1 Z M31,0 L3,0 C1.34314575,-4.4408921e-16 0,1.34314575 -2.22044605e-16,3 L-2.22044605e-16,31 C0,32.6568542 1.34314575,34 3,34 L31,34 C32.6568542,34 34,32.6568542 34,31 L34,3 C34,1.34314575 32.6568542,0 31,-2.22044605e-16 L31,-2.22044605e-16 L31,0 Z" id="Shape" fill="#FFFFFF"></path>
+            <path d="M17,7 C11.8643467,6.99993548 7.56356533,10.8900895 7.05,16 L14,16 L14,14.5 C14,14.2238576 14.2238576,14 14.5,14 L19.5,14 C19.7761424,14 20,14.2238576 20,14.5 L20,19.5 C20,19.7761424 19.7761424,20 19.5,20 L14.5,20 C14.2238576,20 14,19.7761424 14,19.5 L14,18 L7.05,18 C7.58928848,23.3658527 12.2862527,27.3375518 17.6671192,26.9777144 C23.0479857,26.6178769 27.1742887,22.0561349 26.9943035,16.6662543 C26.8143183,11.2763738 22.3928848,7.00006775 17,7 L17,7 Z" id="Shape" fill="#FFFFFF"></path>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/logos/uber.svg b/go.dev/_content/images/logos/uber.svg
new file mode 100644
index 0000000..4dfeea1
--- /dev/null
+++ b/go.dev/_content/images/logos/uber.svg
@@ -0,0 +1,23 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="103.7px" height="48px" viewBox="0 0 103.7 48" style="enable-background:new 0 0 103.7 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#010202;}
+</style>
+<title>uber</title>
+<path class="st0" d="M6,31.7c0.4,1.1,1,2.1,1.8,3c0.8,0.8,1.7,1.5,2.8,1.9c1.1,0.4,2.3,0.7,3.5,0.7c1.2,0,2.3-0.2,3.4-0.7
+	c1-0.4,2-1.1,2.8-1.9c0.8-0.9,1.4-1.9,1.8-3c0.4-1.2,0.7-2.5,0.7-3.9V6H28v35.4h-5.3v-3.3c-1.2,1.2-2.6,2.2-4.2,2.9
+	c-1.6,0.7-3.4,1-5.2,1c-1.8,0-3.6-0.3-5.3-1c-1.6-0.6-3.1-1.6-4.3-2.8C2.6,37,1.6,35.5,1,33.8c-0.7-1.8-1-3.7-1-5.7V6h5.3v21.8
+	C5.3,29.2,5.5,30.5,6,31.7z"/>
+<path class="st0" d="M37.2,6v12.9c1.2-1.2,2.6-2.1,4.1-2.8c1.6-0.7,3.3-1,5-1c7.3-0.2,13.4,5.6,13.6,12.9c0,0.2,0,0.3,0,0.5
+	c0,1.8-0.3,3.6-1,5.2c-1.4,3.2-3.9,5.8-7.2,7.2C50,41.7,48.1,42,46.3,42c-1.7,0-3.5-0.3-5.1-1c-1.5-0.7-2.9-1.6-4.1-2.8v3.2h-5V6
+	H37.2z M37.7,32c0.4,1.1,1.1,2,1.9,2.8c0.8,0.8,1.8,1.5,2.8,1.9c1.1,0.5,2.3,0.7,3.5,0.7c2.3,0,4.6-1,6.2-2.6
+	c0.8-0.8,1.4-1.8,1.9-2.8c0.5-1.1,0.7-2.3,0.7-3.5c0-1.2-0.2-2.4-0.7-3.5c-0.4-1.1-1.1-2-1.9-2.9c-0.8-0.8-1.8-1.5-2.8-1.9
+	c-4.5-1.9-9.7,0.2-11.6,4.7c0,0,0,0,0,0c-0.5,1.1-0.7,2.3-0.7,3.5C37.1,29.7,37.3,30.9,37.7,32z"/>
+<path class="st0" d="M62.8,23.3c0.6-1.6,1.6-3,2.8-4.3c3.8-3.9,9.6-5.1,14.6-3c1.5,0.6,2.9,1.6,4.1,2.8c1.2,1.2,2.1,2.7,2.7,4.2
+	c0.7,1.7,1,3.5,1,5.3v1.7H66.8c0.3,2.1,1.4,3.9,3,5.3c1.6,1.4,3.6,2.1,5.6,2.1c2.9,0,5.7-1.4,7.4-3.8l3.7,2.7
+	C84,40,79.8,42.1,75.4,42c-1.8,0-3.7-0.3-5.4-1C63.2,38.2,59.9,30.3,62.8,23.3C62.8,23.4,62.8,23.4,62.8,23.3L62.8,23.3z M69.9,21.3
+	c-1.5,1.2-2.5,2.9-2.9,4.8h15.7c-0.4-1.9-1.4-3.5-2.8-4.8C77,18.9,72.8,18.9,69.9,21.3L69.9,21.3z"/>
+<path class="st0" d="M97.4,21.9c-1.1,1.3-1.7,3.1-1.6,4.8v14.7h-5.1V15.6h5v3.2c0.6-1,1.5-1.9,2.5-2.5c1.1-0.6,2.4-0.9,3.7-0.9h1.8
+	v4.8h-2.1C100,20.1,98.5,20.8,97.4,21.9z"/>
+</svg>
diff --git a/go.dev/_content/images/logos/vitess.png b/go.dev/_content/images/logos/vitess.png
new file mode 100644
index 0000000..7de16d2
--- /dev/null
+++ b/go.dev/_content/images/logos/vitess.png
Binary files differ
diff --git a/go.dev/_content/images/logos/wildlife.svg b/go.dev/_content/images/logos/wildlife.svg
new file mode 100644
index 0000000..39d1870
--- /dev/null
+++ b/go.dev/_content/images/logos/wildlife.svg
@@ -0,0 +1,14 @@
+<svg
+  version="1.0"
+  xmlns="http://www.w3.org/2000/svg"
+  width="1600"
+  height="640"
+  viewBox="0 0 1200 480"
+>
+  <path
+    d="M11 9l94 109 113 131 20 24h76l-50 92-54 99-4 7h835l74-111 75-113-155-214-19-26H513C34 7 10 7 11 9zm262 86l27 35a777 777 0 00-18-69l42-1h42l26 35 27 35-17-68-1-2h66l15 76 15 77-48 1h-48l-24-29-25-28 11 55v2h-91l-46-55-67-77-19-22h107l26 35zm344 40l41 77c0 2-2 2-49 2h-48l-35-66-41-77-6-11h98l40 75zm111-19l30 56 41 1 40 1 5 8 11 20 6 12H684l-40-76-41-77 47-1h48l30 56zm226-55c23 2 41 8 55 17 15 10 33 34 44 57 9 18 11 24 11 37 0 11-1 12-3 17-5 9-18 18-32 21-12 4-26 4-90 4h-63l-36-67-41-77-5-10h75l85 1zM493 261a7487 7487 0 01-59 111l40 1h40l-11 20-10 20h-88l-88-1 74-139 7-14h48c44 0 47 0 47 2zm188 11l-41 77-34 64h-48l-49-1 41-77 40-76h98l-7 13zm211-12l-11 21-11 22h-86l-6 11-6 11 39 1h39l-11 20-10 20h-40l-39 1-13 23-12 23h-93l4-7 40-77 38-69a2836 2836 0 01178 0zm203 0l-10 19-10 19h-94l-5 9-5 9a814 814 0 0086 2l-10 19-9 18h-88l-5 9-5 10h49l48 1-10 19-11 19H830l4-7 37-70 37-70 4-7h92l91 1z"
+  />
+  <path
+    d="M907 100l20 37 20 37h9c15 0 19-3 17-11-2-6-24-48-29-53-2-3-6-6-10-8-5-2-7-3-16-3l-11 1z"
+  />
+</svg>
diff --git a/go.dev/_content/images/logos/youtube.svg b/go.dev/_content/images/logos/youtube.svg
new file mode 100644
index 0000000..aee9af3
--- /dev/null
+++ b/go.dev/_content/images/logos/youtube.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 111 26" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M34.1 3.826A4.39 4.39 0 0 0 31.011.738C28.304 0 17.407 0 17.407 0S6.51.022 3.804.76A4.39 4.39 0 0 0 .716 3.848C0 6.556 0 12.217 0 12.217s0 5.66.738 8.39a4.39 4.39 0 0 0 3.088 3.088c2.707.738 13.604.738 13.604.738s10.896 0 13.604-.738a4.39 4.39 0 0 0 3.088-3.088c.738-2.707.738-8.4.738-8.4s-.022-5.66-.76-8.4z" fill="red"></path><path d="M22.978 12.217L13.94 6.98v10.47z"></path><path d="M50.567 22.218c-.694-.47-1.186-1.186-1.477-2.17s-.425-2.282-.425-3.915v-2.215c0-1.633.157-2.976.492-3.96.336-1.007.85-1.723 1.566-2.17s1.633-.694 2.774-.694c1.12 0 2.036.224 2.707.694s1.186 1.186 1.5 2.17.47 2.305.47 3.938V16.1c0 1.633-.157 2.93-.47 3.916s-.806 1.7-1.5 2.17c-.694.448-1.633.694-2.797.694-1.208.022-2.148-.224-2.842-.67zm3.87-2.394c.2-.492.3-1.32.3-2.44V12.62c0-1.096-.1-1.902-.3-2.394-.2-.515-.537-.76-1.007-.76s-.783.246-.984.76-.3 1.298-.3 2.394v4.766c0 1.12.1 1.947.268 2.44s.515.738 1.007.738c.47 0 .806-.246 1.007-.738zm49.045-3.647v.783l.1 2.215c.067.492.18.85.358 1.074s.47.336.85.336c.515 0 .873-.2 1.052-.604.2-.403.3-1.074.313-2l2.976.18c.022.134.022.313.022.537 0 1.4-.38 2.46-1.163 3.155s-1.857 1.052-3.267 1.052c-1.7 0-2.886-.537-3.558-1.6s-1.03-2.707-1.03-4.922v-2.707c0-2.282.358-3.96 1.052-5.012.716-1.052 1.924-1.6 3.625-1.6 1.186 0 2.08.224 2.707.65s1.074 1.096 1.343 2.014.38 2.17.38 3.78v2.618h-5.75zm.447-6.444c-.18.224-.3.56-.358 1.052s-.1 1.23-.1 2.237v1.096h2.506v-1.096l-.1-2.237c-.067-.515-.18-.873-.358-1.074s-.447-.313-.805-.313c-.38.022-.65.134-.806.336zM42.2 15.886l-3.916-14.14h3.423l1.365 6.4.783 4.028h.1c.112-.806.38-2.126.783-4.005l1.4-6.42h3.423L45.6 15.863v6.78h-3.38v-6.757zm27.072-8.502v15.282h-2.685l-.3-1.88h-.067c-.738 1.4-1.835 2.126-3.3 2.126-1.007 0-1.768-.336-2.237-1.007-.492-.67-.716-1.7-.716-3.1V7.384h3.446v11.2c0 .67.067 1.163.224 1.454a.77.77 0 0 0 .738.425c.3 0 .582-.1.85-.27a1.73 1.73 0 0 0 .604-.694V7.384zm17.654 0v15.282H84.24l-.3-1.88h-.067c-.738 1.4-1.835 2.126-3.3 2.126-1.007 0-1.768-.336-2.238-1.007-.492-.67-.716-1.7-.716-3.1V7.384h3.446v11.2c0 .67.067 1.163.224 1.454a.77.77 0 0 0 .738.425c.3 0 .582-.1.85-.27a1.73 1.73 0 0 0 .604-.694V7.384zm-8.3-2.864h-3.423v18.146h-3.356V4.52h-3.423V1.745h10.18V4.52zm19.667 5.303c-.2-.962-.537-1.656-1.007-2.103-.47-.425-1.096-.65-1.924-.65a3.17 3.17 0 0 0-1.768.537c-.56.358-.962.828-1.275 1.4h-.022V.962h-3.3v21.68h2.842l.358-1.454h.067c.268.515.67.917 1.186 1.23a3.64 3.64 0 0 0 1.768.447c1.163 0 2.014-.537 2.573-1.6.537-1.074.828-2.752.828-5.012v-2.417c0-1.7-.112-3.043-.313-4.005zm-3.155 6.243c0 1.12-.045 2-.134 2.618s-.246 1.074-.47 1.342a1.08 1.08 0 0 1-.873.403 1.57 1.57 0 0 1-.783-.201c-.246-.134-.425-.336-.582-.604v-8.68c.112-.425.313-.76.604-1.03s.582-.403.917-.403c.358 0 .626.134.805.403.2.268.313.738.403 1.387.067.65.112 1.566.112 2.774z" fill="#282828"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/_content/images/meetup.svg b/go.dev/_content/images/meetup.svg
new file mode 100644
index 0000000..98af291
--- /dev/null
+++ b/go.dev/_content/images/meetup.svg
@@ -0,0 +1,47 @@
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 width="525px" height="500px" viewBox="0 0 525 500" enable-background="new 0 0 525 500" xml:space="preserve">

+<path fill="#F64060" d="M452.753,321.453c0.041,45.508-32.731,84.711-77.295,92.419c-5.611,0.963-11.277,1.533-16.971,1.479

+	c-1.92-0.021-2.674,0.747-3.283,2.506c-8.897,25.544-26.652,40.771-53.473,44.611c-17.743,2.538-33.844-2.22-47.958-13.313

+	c-1.966-1.546-3.168-1.572-5.218-0.107c-16.508,11.807-35.017,17.036-55.229,15.815c-39.441-2.381-72.627-32.526-78.835-71.398

+	c-0.427-2.687-0.881-5.394-0.922-8.102c-0.041-2.252-0.896-3.121-3.047-3.542c-11.941-2.328-22.777-7.246-32.337-14.729

+	c-17.594-13.775-28.15-31.761-30.607-54.009c-2.802-25.464,5.063-47.481,22.975-65.828c1.444-1.472,1.534-2.497,0.549-4.228

+	c-6.886-12.022-10.15-25.043-9.62-38.851c1.322-34.461,25.302-62.932,58.657-69.981c3.859-0.82,5.882-2.333,7.578-5.99

+	c16.452-35.445,44.076-57.002,82.409-64.112c26.909-4.994,52.294,0.353,75.85,14.208c1.98,1.168,3.638,1.262,5.781,0.638

+	c37.413-10.855,70.564-2.958,98.708,23.803c16.644,15.822,25.763,35.846,28.463,58.69c0.591,4.994,0.86,10.035,0.48,15.056

+	c-0.143,1.899,0.441,2.693,2.239,3.358c16.866,6.243,28.496,17.885,33.584,35.105c6.337,21.42,1.014,40.203-14.992,55.821

+	c-1.387,1.356-1.094,2.186-0.308,3.541C448.39,288.886,452.772,304.572,452.753,321.453z M285.814,314.146

+	c0.014,19.363,12.444,36.477,30.071,42.292c8.834,2.917,17.946,4.301,27.195,4.708c6.603,0.285,13.195-0.176,19.296-3.217

+	c4.797-2.395,7.057-6.351,6.84-11.622c-0.217-5.306-2.593-9.274-7.668-11.386c-1.764-0.733-3.555-1.33-5.428-1.655

+	c-5.598-0.999-11.223-1.84-16.793-2.944c-9.193-1.831-13.048-6.697-13.17-15.993c-0.107-8.223,2.124-15.979,4.654-23.652

+	c4.628-14.045,10.868-27.431,16.848-40.927c5.773-13.033,11.825-25.959,15.903-39.686c2.246-7.538,3.318-15.096,1.276-22.892

+	c-3.108-11.833-10.199-19.764-22.426-22.045c-11.194-2.083-22.336-2.32-32.459,4.356c-3.366,2.212-6.603,1.683-9.525-0.896

+	c-2.232-1.961-4.356-4.037-6.541-6.052c-10.326-9.533-23.978-10.001-35.064-1.295c-4.473,3.514-8.237,7.871-13.096,10.924

+	c-4.342,2.727-8.72,3.5-13.528,0.936c-4.58-2.443-9.322-4.593-14.052-6.737c-4.791-2.164-9.432-4.837-14.825-5.292

+	c-17.058-1.452-34.909,8.685-42.434,24.094c-3.339,6.819-6.065,13.903-8.65,21.033c-11.936,32.962-21.658,66.629-31.72,100.18

+	c-4.506,15.016,0.812,29.792,13.527,37.902c9.92,6.322,20.782,7.885,32.027,4.506c9.11-2.742,14.099-10.075,17.586-18.313

+	c11.588-27.329,22.024-55.122,33.07-82.668c3.04-7.58,5.983-15.192,9.208-22.69c3.256-7.571,12.612-10.15,18.162-5.129

+	c3.388,3.065,4.281,7.145,3.949,11.507c-0.365,4.662-2.171,8.962-3.867,13.244c-7.187,18.17-14.507,36.287-21.726,54.443

+	c-1.459,3.672-3.04,7.314-3.685,11.255c-1.105,6.767,1.574,12.765,7.109,15.152c5.647,2.437,11.509,2.844,17.363,0.719

+	c6.812-2.469,10.883-7.802,14.019-13.964c10.775-21.16,21.467-42.372,32.235-63.533c4.974-9.776,10.035-19.506,15.116-29.224

+	c1.888-3.602,4.1-7.015,7.627-9.254c3.184-2.015,6.615-2.165,9.879-0.332c3.185,1.784,3.398,5.042,3.264,8.258

+	c-0.073,1.729-0.557,3.419-1.222,5.027c-1.396,3.344-2.7,6.738-4.248,10.016c-8.956,18.841-18.048,37.609-26.924,56.491

+	C289.246,297.76,285.352,305.767,285.814,314.146z M411.438,453.001c0.021-12.498-10.455-22.948-23.056-22.982

+	c-12.912-0.047-23.387,10.286-23.443,23.104c-0.054,12.53,10.6,23.162,23.199,23.178

+	C400.915,476.314,411.418,465.812,411.438,453.001z M21.931,261.48c12.152,0.027,22.377-10.13,22.329-22.173

+	c-0.055-12.063-10.062-22.065-22.112-22.099C9.798,217.175-0.007,226.973,0,239.342C0.01,251.581,9.786,261.453,21.931,261.48z

+	 M294.038,13.766c-12.213-0.068-22.167,9.696-22.236,21.8c-0.074,12.091,9.845,22.025,21.997,22.038

+	c12.104,0.007,21.826-9.689,21.848-21.801C315.676,23.632,306.061,13.827,294.038,13.766z M473.854,150.79

+	c-0.054-10.036-8.61-18.571-18.686-18.639c-10.286-0.074-18.999,8.618-18.93,18.883c0.073,10.239,8.379,18.448,18.679,18.462

+	C465.528,169.517,473.914,161.226,473.854,150.79z M88.601,97.201c0,9.425,7.335,16.82,16.698,16.834

+	c9.484,0.013,16.841-7.422,16.807-16.983c-0.034-9.274-7.382-16.528-16.712-16.5C95.799,80.571,88.606,87.702,88.601,97.201z

+	 M264.007,485.922c0.081-7.85-6.378-14.315-14.317-14.343c-8.149-0.025-14.549,6.29-14.528,14.33

+	c0.021,7.931,6.388,14.214,14.394,14.214C257.555,500.13,263.938,493.86,264.007,485.922z M487.981,262.879

+	c-7.627-0.055-14.243,6.561-14.182,14.181c0.066,7.53,6.352,13.712,13.964,13.727c7.98,0.015,13.965-5.861,13.984-13.747

+	C501.769,269.236,495.641,262.933,487.981,262.879z M152.997-0.123c-6.724-0.027-11.914,5.109-11.914,11.8

+	c0,6.649,5.244,11.819,11.962,11.785c6.52-0.034,11.629-5.232,11.629-11.834C164.675,4.965,159.646-0.089,152.997-0.123z

+	 M514.591,199.506c-5.481-0.062-10.448,4.844-10.517,10.401c-0.074,5.747,4.709,10.53,10.544,10.544

+	c5.795,0.021,10.34-4.485,10.381-10.306C525.054,204.29,520.439,199.58,514.591,199.506z M99.538,406.504

+	c0.026-5.564-4.771-10.354-10.422-10.407c-5.728-0.049-10.437,4.77-10.396,10.632c0.047,5.727,4.695,10.251,10.484,10.211

+	C94.884,416.905,99.519,412.23,99.538,406.504z"/>

+</svg>

diff --git a/go.dev/_content/images/menu-24px-white.svg b/go.dev/_content/images/menu-24px-white.svg
new file mode 100644
index 0000000..b7e5807
--- /dev/null
+++ b/go.dev/_content/images/menu-24px-white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" fill="#FFFFFF"/></svg>
diff --git a/go.dev/_content/images/menu-24px.svg b/go.dev/_content/images/menu-24px.svg
new file mode 100644
index 0000000..14f99cd
--- /dev/null
+++ b/go.dev/_content/images/menu-24px.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
diff --git a/go.dev/_content/images/quote.svg b/go.dev/_content/images/quote.svg
new file mode 100644
index 0000000..1b5a812
--- /dev/null
+++ b/go.dev/_content/images/quote.svg
@@ -0,0 +1,3 @@
+<svg width="44" height="29" viewBox="0 0 44 29" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path opacity="0.269973" d="M0 19.3333C0 24.6722 4.477 29 9.99996 29C15.5229 29 19.9999 24.6722 19.9999 19.3333C19.9999 14.0601 15.63 9.77577 10.2008 9.67175C12.7256 7.27832 16.1834 5.79982 19.9999 5.79982V0C8.95448 0 0 8.65603 0 19.3333ZM44 0C32.9546 0 24.0001 8.65603 24.0001 19.3333C24.0001 24.6722 28.4776 29 34 29C39.523 29 44 24.6722 44 19.3333C44 14.0601 39.6301 9.77577 34.2009 9.67175C36.7257 7.27832 40.184 5.79982 44 5.79982V0Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/_content/images/sap-logo.png b/go.dev/_content/images/sap-logo.png
new file mode 100644
index 0000000..df5ce9a
--- /dev/null
+++ b/go.dev/_content/images/sap-logo.png
Binary files differ
diff --git a/go.dev/_content/images/star-24px.svg b/go.dev/_content/images/star-24px.svg
new file mode 100644
index 0000000..ead6a26
--- /dev/null
+++ b/go.dev/_content/images/star-24px.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z" fill="#ffffff"/><path d="M0 0h24v24H0z" fill="none"/></svg>
diff --git a/go.dev/_content/images/walmart-logo.png b/go.dev/_content/images/walmart-logo.png
new file mode 100644
index 0000000..16358bd
--- /dev/null
+++ b/go.dev/_content/images/walmart-logo.png
Binary files differ
diff --git a/go.dev/_content/index.md b/go.dev/_content/index.md
new file mode 100644
index 0000000..72d429c
--- /dev/null
+++ b/go.dev/_content/index.md
@@ -0,0 +1,328 @@
+---
+title: go.dev
+---
+
+<section class="Hero bluebg">
+  <div class="Hero-gridContainer">
+    <div class="Hero-blurb">
+      <h1>Build fast, reliable, and efficient software at scale</h1>
+      <ul class="Hero-blurbList">
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Go is an open source programming language supported by Google
+        </li>
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Easy to learn and get started with
+        </li>
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Built-in concurrency and a robust standard library
+        </li>
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Growing ecosystem of partners, communities, and tools
+        </li>
+      </ul>
+    </div>
+    <div class="Hero-actions">
+      <div
+        data-version=""
+        class="js-latestGoVersion">
+        <a class="Primary" href="/learn/">Get Started</a>
+        <a class="Secondary js-downloadBtn"
+          href="https://golang.org/dl"
+          target="_blank" rel="noopener"
+          >Download
+          <span
+            class="js-goVersion DownloadBtn-versionNum">
+          </span>
+        </a>
+      </div>
+      <div class="Hero-footnote">
+        <p>
+          Download packages for
+          <a class="js-downloadWin">Windows 64-bit</a>,
+          <a class="js-downloadMac">macOS</a>,
+          <a class="js-downloadLinux">Linux</a>, and
+          <a href="https://golang.org/dl/">more</a>
+        </p>
+        <p>
+          The <code>go</code> command by default downloads and authenticates
+          modules using the Go module mirror and Go checksum database run by
+          Google. <a href="https://golang.org/dl">Learn more.</a>
+        </p>
+      </div>
+    </div>
+    <div class="Hero-gopher">
+      <img class="Hero-gopherLadder" src="/images/gophers/ladder.svg" alt="Go Gopher climbing a ladder.">
+    </div>
+  </div>
+</section>
+<section class="WhoUses">
+  <div class="WhoUses-gridContainer">
+    <div class="WhoUses-header">
+      <h2 class="WhoUses-headerH2">Companies using Go</h2>
+      <p class="WhoUses-subheader">Organizations in every industry use Go to power their software and services
+        <a href="/solutions/" class="WhoUsesCaseStudyList-seeAll">
+        View all stories
+       </a>
+     </p>
+    </div>
+  <div class="WhoUsesCaseStudyList">
+    <ul class="WhoUsesCaseStudyList-gridContainer">
+    {{- range newest (pages "solutions/*")}}{{if eq .series "Case Studies"}}
+      {{- if .link }}
+        {{- if .inLandingPageGrid }}
+          <li class="WhoUsesCaseStudyList-caseStudy">
+            <a href="{{.link}}" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/{{.logoSrc}}"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+        {{- end}}
+      {{- else}}
+        <li class="WhoUsesCaseStudyList-caseStudy">
+          <a href="{{.Path}}" class="WhoUsesCaseStudyList-caseStudyLink">
+            <img
+              loading="lazy"
+              height="48"
+              width="30%"
+              src="/images/logos/{{.logoSrc}}"
+              class="WhoUsesCaseStudyList-logo"
+              alt="">
+            <p>View case study</p>
+          </a>
+        </li>
+      {{- end}}
+    {{- end}}
+    {{- end}}
+    </ul>
+  </div>
+</section>
+<section class="TestimonialsGo">
+  <div class="GoCarousel">
+    <div class="GoCarousel-controlsContainer">
+      <div class="GoCarousel-wrapper">
+        <ul class="js-testimonialsGoQuotes TestimonialsGo-quotes">
+          {{- range $index, $element := data "testimonials"}}
+            <li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide{{$index}}">
+              <div class="TestimonialsGo-quoteSingleItem">
+                <div class="TestimonialsGo-quoteSection">
+                  <p class="TestimonialsGo-quote">{{rawhtml .quote}}</p>
+                  <div class="TestimonialsGo-author">— {{.name}},
+                    <span class="NoWrapSpan">{{.title}}</span>
+                    <span class="NoWrapSpan"> at {{.company}}</span>
+                  </div>
+                </div>
+              </div>
+            </li>
+          {{- end}}
+        </ul>
+      </div>
+    <button class="js-testimonialsPrev GoCarousel-controlPrev" hidden>
+      <i class="GoCarousel-icon material-icons">navigate_before</i>
+    </button>
+    <button class="js-testimonialsNext GoCarousel-controlNext">
+      <i class="GoCarousel-icon material-icons">navigate_next</i>
+    </button>
+  </div>
+  </div>
+</section>
+
+<section class="WhyGo">
+  <div class="WhyGo-gridContainer">
+    <div class="WhyGo-header">
+      <h2 class="WhyGo-headerH2">What’s possible with Go</h2>
+      <h4 class="WhyGo-headerH4">
+        Use Go for a variety of software development purposes
+      </h4>
+    </div>
+    <ul class="WhyGo-reasons">
+      {{- range first 4 (data "resources")}}
+        <li class="WhyGo-reason">
+          <div class="WhyGo-reasonDetails">
+            <div class="WhyGo-reasonIcon" role="presentation">
+              <img src="{{.icon}}" alt="{{.iconName}}">
+            </div>
+            <div class="WhyGo-reasonText">
+              <h3 class="WhyGo-reasonTitle">{{.title}}</h3>
+              <p>
+                {{.description}}
+              </p>
+            </div>
+          </div>
+          <div class="WhyGo-reasonFooter">
+            <div class="WhyGo-reasonPackages">
+              <div class="WhyGo-reasonPackagesHeader">
+                <img src="/images/icons/package.svg" alt="Packages.">
+                Popular Packages:
+              </div>
+              <ul class="WhyGo-reasonPackagesList">
+                {{- range .packages }}
+                  <li class="WhyGo-reasonPackage">
+                    <a href="{{.url}}" target="_blank" rel="noopener">
+                      {{.title}}
+                    </a>
+                  </li>
+                  {{- end}}
+              </ul>
+            </div>
+            <div class="WhyGo-reasonLearnMoreLink">
+              <a href="{{.link}}">Learn More <i class="material-icons WhyGo-forwardArrowIcon">arrow_forward</i></a>
+            </div>
+          </div>
+        </li>
+      {{- end}}
+      {{- if gt (len (data "resources")) 3}}
+        <li class="WhyGo-reason">
+          <div class="WhyGo-reasonShowMore">
+            <div class="WhyGo-reasonShowMoreImgWrapper">
+              <img
+                class="WhyGo-reasonShowMoreImg"
+                loading="lazy"
+                height="148"
+                width="229"
+                src="/images/gophers/biplane.svg"
+                alt="Go Gopher is skateboarding.">
+            </div>
+            <div class="WhyGo-reasonShowMoreLink">
+              <a href="/solutions/#use-cases">More use cases <i
+              class="material-icons
+              WhyGo-forwardArrowIcon">arrow_forward</i></a>
+            </div>
+          </div>
+        </li>
+      {{- end}}
+    </ul>
+  </div>
+</section>
+<section class="LearnGo">
+  <div class="GoCarousel" id="LearnGo-carousel">
+    <div class="GoCarousel-controlsContainer">
+      <div class="GoCarousel-eventsWrapper">
+        <ul class="js-goCarouselEventsSlides GoCarousel-eventsSlides">
+          {{- range $index, $element := (data "events").all}}
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide{{$index}}">
+              <div class="GoCarousel-eventThumbnail">
+                {{- if .thumbnailurl}}
+                  <img
+                    loading="lazy"
+                    src="{{.thumbnailurl}}"
+                    alt="{{.name}} group photo">
+                {{- else}}
+                  <img
+                    loading="lazy"
+                    src="/images/meetup.svg"
+                    alt="meetup logo">
+                {{- end}}
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="{{.url}}">{{.name}}</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>{{.local_date}} | {{.city}}, {{.state}} {{.country}}</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="{{.url}}">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+          {{- end}}
+        </ul>
+      </div>
+      <button class="js-eventsCarouselPrev GoCarousel-controlPrev" hidden>
+        <i class="GoCarousel-icon material-icons">navigate_before</i>
+      </button>
+      <button class="js-eventsCarouselNext GoCarousel-controlNext">
+        <i class="GoCarousel-icon material-icons">navigate_next</i>
+      </button>
+    </div>
+  </div>
+</section>
+<section class="GettingStartedGo">
+  <div class="GettingStartedGo-gridContainer">
+    <div class="GettingStartedGo-header">
+      <h2 class="GettingStartedGo-headerH2">Get started with Go</h2>
+      <p class="GettingStartedGo-headerDesc">
+        Explore a wealth of learning resources, including guided journeys, courses, books, and more.
+      </p>
+      <div class="GettingStartedGo-ctas">
+        <a class="GettingStartedGo-primaryCta" href="/learn/">Get Started</a>
+        <a href="https://golang.org/dl" target="_blank" rel="noopener">Download Go</a>
+      </div>
+    </div>
+    <div class="GettingStartedGo-resourcesSection">
+      <ul class="GettingStartedGo-resourcesList">
+        <li class="GettingStartedGo-resourcesHeader">
+          Resources to start on your own
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#guided-learning-journeys" class="GettingStartedGo-resourceItemTitle">
+            Guided learning journeys
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Step-by-step tutorials to get your feet wet
+          </div>
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#online-learning" class="GettingStartedGo-resourceItemTitle">
+            Online learning
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Browse resources and learn at your own pace
+          </div>
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#featured-books" class="GettingStartedGo-resourceItemTitle">
+            Featured books
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Read through structured chapters and theories
+          </div>
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#self-paced-labs" class="GettingStartedGo-resourceItemTitle">
+            Cloud Self-paced labs
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Jump in to deploying Go apps on GCP
+          </div>
+        </li>
+      </ul>
+      <ul class="GettingStartedGo-resourcesList">
+        <li class="GettingStartedGo-resourcesHeader">
+          In-Person Trainings
+        </li>
+        {{- range first 4 (data "learn/training")}}
+          <li class="GettingStartedGo-resourceItem">
+            <a href="{{.url}}" class="GettingStartedGo-resourceItemTitle">
+              {{.title}}
+            </a>
+            <div class="GettingStartedGo-resourceItemDescription">
+              {{.blurb}}
+            </div>
+          </li>
+        {{- end}}
+      </ul>
+    </div>
+  </div>
+</section>
diff --git a/go.dev/_content/js/carousels.js b/go.dev/_content/js/carousels.js
new file mode 100644
index 0000000..c2d5d9f
--- /dev/null
+++ b/go.dev/_content/js/carousels.js
@@ -0,0 +1,183 @@
+// 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.
+
+/**
+ * Handles Carousel logic. Hides right/left buttons if user is at the end of the
+ * list of slides. Transitions the movement with CSS, and blocks slide changes
+ * during the transitions with `allowShift`.
+ */
+(() => {
+  'use strict';
+
+  /** TODO: refactor to slide container using transformX instead of left,
+   * in order to leverage GPU rendering
+   */
+
+  function initCarousel(container, prev, next, breakpoints) {
+    const slides = Array.from(container.children);
+    let posInitial;
+    const slidesCount = container.children.length;
+    let distanceToMove = Math.floor(
+      container.children[0].getBoundingClientRect().width
+    );
+    let index = 0;
+    let allowShift = true;
+    let groupCountAdjustment = getGroupCountAdjustment();
+
+    adjustTabbableSlides(breakpoints);
+
+    // Click events.
+    prev.addEventListener('click', () => {
+      shiftSlide(-1);
+    });
+    next.addEventListener('click', () => {
+      shiftSlide(1);
+    });
+
+    // Transition events.
+    container.addEventListener('transitionend', handleTransitionEnd);
+
+    window.addEventListener(
+      'resize',
+      debounce(() => {
+        // the next 3 lines reinitializes the slide container node
+        container.style.display = 'none';
+        container.offsetHeight;
+        container.style.display = 'flex';
+
+        groupCountAdjustment = getGroupCountAdjustment();
+        distanceToMove = Math.floor(
+          container.children[0].getBoundingClientRect().width
+        );
+        container.style.left = -(distanceToMove * index) + 'px';
+      })
+    );
+
+    function shiftSlide(dir, action) {
+      container.classList.add('shifting');
+      if (allowShift) {
+        if (!action) {
+          posInitial = container.offsetLeft;
+        }
+        if (dir === 1) {
+          prev.removeAttribute('hidden');
+          container.style.left = posInitial - distanceToMove + 'px';
+          index++;
+        } else if (dir === -1) {
+          next.removeAttribute('hidden');
+          container.style.left = posInitial + distanceToMove + 'px';
+          index--;
+        } else {
+          container.style.left = posInitial + 'px';
+        }
+        if (index === 0) {
+          prev.setAttribute('hidden', true);
+        } else if (index === slidesCount - 1 - groupCountAdjustment) {
+          next.setAttribute('hidden', true);
+        }
+      }
+      allowShift = false;
+      adjustTabbableSlides(breakpoints);
+    }
+
+    /**
+     * Only allow visible slides to be tabbable
+     */
+    function adjustTabbableSlides(breakpoints) {
+      let count = 1;
+      if (breakpoints) {
+        for (const bp of breakpoints) {
+          if (window.innerWidth > bp.px) {
+            count = bp.groupCount;
+          }
+        }
+      }
+      slides.forEach((slide, i) => {
+        const links = slide.querySelectorAll('a');
+        if (i >= index && i < index + count) {
+          links.forEach(link => (link.tabIndex = 0));
+        } else {
+          links.forEach(link => (link.tabIndex = -1));
+        }
+      });
+    }
+
+    function handleTransitionEnd() {
+      container.classList.remove('shifting');
+      allowShift = true;
+    }
+
+    function getGroupCountAdjustment() {
+      let groupCountAdjustment = 0;
+
+      if (breakpoints) {
+        for (const bp of breakpoints) {
+          if (window.innerWidth > bp.px) {
+            groupCountAdjustment = bp.groupCount - 1;
+          }
+        }
+      }
+      return groupCountAdjustment;
+    }
+  }
+
+  // Build quotes carousel.
+  const quotesSliderContainer = document.querySelector(
+    '.js-testimonialsGoQuotes'
+  );
+  const quotesPrev = document.querySelector('.js-testimonialsPrev');
+  const quotesNext = document.querySelector('.js-testimonialsNext');
+  // Build events carousel.
+  const eventsSliderContainer = document.querySelector(
+    '.js-goCarouselEventsSlides'
+  );
+  const eventsPrev = document.querySelector('.js-eventsCarouselPrev');
+  const eventsNext = document.querySelector('.js-eventsCarouselNext');
+
+  // Build Solutions hero carousel.
+  const solutionsCarouselSliderContainer = document.querySelector(
+    '.js-solutionsHeroCarouselSlides'
+  );
+  const solutionsCarouselPrev = document.querySelector(
+    '.js-solutionsHeroCarouselPrev'
+  );
+  const solutionsCarouselNext = document.querySelector(
+    '.js-solutionsHeroCarouselNext'
+  );
+
+  if (quotesSliderContainer) {
+    initCarousel(quotesSliderContainer, quotesPrev, quotesNext);
+  }
+  if (eventsSliderContainer) {
+    const breakpoints = [
+      {px: 768, groupCount: 2},
+      {px: 1068, groupCount: 3},
+    ];
+    initCarousel(eventsSliderContainer, eventsPrev, eventsNext, breakpoints);
+  }
+  if (solutionsCarouselSliderContainer) {
+    initCarousel(
+      solutionsCarouselSliderContainer,
+      solutionsCarouselPrev,
+      solutionsCarouselNext
+    );
+  }
+})();
+
+/**
+ * Debounce functions for better performance
+ * (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com
+ * @param  {Function} fn The function to debounce
+ */
+function debounce(fn) {
+  let timeout;
+  return (...args) => {
+    if (timeout) {
+      window.cancelAnimationFrame(timeout);
+    }
+    timeout = window.requestAnimationFrame(function () {
+      fn(args);
+    });
+  };
+}
diff --git a/go.dev/_content/js/hats.js b/go.dev/_content/js/hats.js
new file mode 100644
index 0000000..d4ac824
--- /dev/null
+++ b/go.dev/_content/js/hats.js
@@ -0,0 +1,74 @@
+function requestHaTs(cookieName, triggerId, bucketSample, promptSample) {
+  var inBucket;
+
+  var cookies = decodeURIComponent(document.cookie).split(';');
+
+  for (let i = 0; i < cookies.length; i++) {
+    var c = cookies[i];
+
+    while (c.charAt(0) == ' ') c = c.substring(1);
+
+    if (c.indexOf(cookieName + '=') == 0)
+      inBucket = c.substring((cookieName + '=').length, c.length);
+  }
+
+  if (typeof inBucket === 'undefined') {
+    inBucket = String(Math.random() < bucketSample);
+    document.cookie =
+      cookieName + '=' + inBucket + '; path=/; max-age=2592000;';
+  }
+
+  if (inBucket === 'true') {
+    var shouldPrompt = Math.random() < promptSample;
+    if (shouldPrompt) {
+      document.cookie = cookieName + '=false ; path=/; max-age=2592000;';
+
+      var tag = document.createElement('script');
+      tag.src =
+        'https://www.gstatic.com/feedback/js/help/prod/service/lazy.min.js';
+      tag.type = 'text/javascript';
+      document.head.appendChild(tag);
+
+      tag.onload = function () {
+        var helpApi = window.help.service.Lazy.create(0, {
+          apiKey: 'AIzaSyDfBPfajByU2G6RAjUf5sjkMSSLNTj7MMc',
+          locale: 'en-US',
+        });
+
+        helpApi.requestSurvey({
+          triggerId: triggerId,
+          callback: function (requestSurveyCallbackParam) {
+            if (!requestSurveyCallbackParam.surveyData) {
+              return;
+            }
+            helpApi.presentSurvey({
+              surveyData: requestSurveyCallbackParam.surveyData,
+              colorScheme: 1, // light
+              customZIndex: 10000,
+            });
+          },
+        });
+      };
+    }
+  }
+}
+
+(function () {
+  // HaTS - go.dev
+  requestHaTs('HaTS_BKT', 'RLVVv5Lf10njVvnD1rP0QUpmtosS', 0.4, 0.5);
+
+  // All download links on the go.dev homepage may trigger a survey.
+  [
+    document.querySelector('.js-downloadBtn'),
+    document.querySelector('.js-downloadWin'),
+    document.querySelector('.js-downloadMac'),
+    document.querySelector('.js-downloadLinux'),
+  ].forEach(function (el) {
+    if (el) {
+      el.addEventListener('click', () => {
+        // HaTS - Core Go distribution
+        requestHaTs('HaTS_BKT_DIST', 'dz6fkRxyz0njVvnD1rP0QxCXzhSX', 0.1, 1);
+      });
+    }
+  });
+})();
diff --git a/go.dev/_content/js/misc.js b/go.dev/_content/js/misc.js
new file mode 100644
index 0000000..c4455c8
--- /dev/null
+++ b/go.dev/_content/js/misc.js
@@ -0,0 +1,187 @@
+// 'More projects' button on use case pages
+(() => {
+  const button = document.querySelector('.js-moreProjectsBtn');
+  if (!button) return;
+  const hiddenProjects = document.querySelectorAll('.js-featuredUsersRow[hidden]');
+  button.addEventListener('click', () => {
+    button.setAttribute('hidden', true);
+    hiddenProjects.forEach(project => {
+      project.removeAttribute('hidden');
+    });
+  });
+})();
+
+/* Header tags generated with markdown - inner span needed for correct scroll
+  position */
+(() => {
+  const headingHashes = Array.from(document.querySelectorAll('h2[id]'));
+  headingHashes.forEach(h2 => {
+    const text = h2.textContent;
+    const id = h2.id;
+    h2.id = id + '-h2';
+    h2.textContent = '';
+    const span = document.createElement('span');
+    span.textContent = text;
+    span.id = id;
+    h2.appendChild(span);
+  });
+})();
+
+// Use case pages section navigation
+(() => {
+  const stickyNav = document.querySelector('.js-useCaseStickyNav');
+  if (stickyNav) {
+    const linkData = {
+      'overview': 'Overview',
+      'key-benefits': 'Key Benefits',
+      'use-case': 'Use Case',
+      'featured-users': 'Featured Users',
+      'get-started': 'Get Started',
+    };
+    const container = document.querySelector('.js-useCaseSubnav');
+    const subNavAnchorLinks = document.querySelector('.js-useCaseSubnavLinks');
+    const siteHeader = document.querySelector('.js-siteHeader');
+    const header = document.querySelector('.js-useCaseSubnavHeader');
+    const icon = document.querySelector('.js-useCaseSubnavMenuIcon');
+    const menu = document.querySelector('.js-useCaseSubnavMenu');
+    const contentBody = document.querySelector('.js-useCaseContentBody');
+    const headerHeightPx = 56;
+    const sectionHeadings = Array.from(
+      document.querySelectorAll('.sectionHeading')
+    ).map(h => h.firstChild);
+    let distanceFromTop =
+      window.pageYOffset +
+      contentBody.getBoundingClientRect().top -
+      headerHeightPx;
+    if (!header || !menu) return;
+    container.addEventListener('click', handleClick);
+    container.addEventListener('keydown', handleKeydown);
+    changeScrollPosition();
+
+    function handleClick(event) {
+      if (event.target === header) {
+        toggleMenu();
+      } else {
+        closeMenu();
+      }
+    }
+
+    function handleKeydown(event) {
+      if (event.key === 'Enter') {
+        closeMenu();
+      } else {
+        openMenu();
+      }
+    }
+
+    function openMenu() {
+      menu.classList.add('UseCaseSubNav-menu--open');
+      icon.classList.add('UseCaseSubNav-menuIcon--open');
+    }
+
+    function closeMenu() {
+      menu.classList.remove('UseCaseSubNav-menu--open');
+      icon.classList.remove('UseCaseSubNav-menuIcon--open');
+    }
+
+    function toggleMenu() {
+      menu.classList.toggle('UseCaseSubNav-menu--open');
+      icon.classList.toggle('UseCaseSubNav-menuIcon--open');
+    }
+
+    sectionHeadings.forEach(heading => {
+      let a = document.createElement('a');
+      a.classList.add('UseCase-anchorLink', 'anchor-link');
+      a.href = `${window.location.pathname}#${heading.id}`;
+      a.textContent = linkData[heading.id];
+      stickyNav.appendChild(a);
+      a = a.cloneNode();
+      a.textContent = linkData[heading.id];
+      subNavAnchorLinks.appendChild(a);
+    });
+
+    // Selected section styles
+    const anchorLinks = document.querySelectorAll('.anchor-link');
+    anchorLinks.forEach(link => {
+      link.addEventListener('click', () => {
+        document
+          .querySelectorAll('.anchor-link')
+          .forEach(el => el.classList.remove('selected'));
+        link.classList.add('selected');
+      });
+    });
+
+    window.addEventListener('scroll', () => {
+      // delay in case the user clicked the anchor link and we are autoscrolling
+      setTimeout(setSelectedAnchor, 500);
+    });
+
+    function setSelectedAnchor() {
+      for (heading of sectionHeadings) {
+        const {offsetTop} = heading;
+        if (offsetTop > window.scrollY) {
+          anchorLinks.forEach(link => {
+            const anchorId = link.href.slice(link.href.indexOf('#') + 1);
+            if (anchorId === heading.id) {
+              link.classList.add('selected');
+            } else {
+              link.classList.remove('selected');
+            }
+          });
+          break;
+        }
+      }
+    }
+
+    /* sticky nav logic -- uses content for y position because reloading page
+    when not scrolled to the top creates bug if using current y position of
+    sticky nav */
+    window.addEventListener('scroll', setStickyNav);
+
+    window.addEventListener('resize', () => {
+      distanceFromTop =
+        window.pageYOffset +
+        contentBody.getBoundingClientRect().top -
+        headerHeightPx;
+
+      changeScrollPosition()
+    });
+
+    /**
+     * Changes scroll position according to the size of the header and menu
+     * Also changes according to the user's browser
+     */
+    function changeScrollPosition() {
+      const SUPPORTS_SCROLL_BEHAVIOR = document.body.style.scrollBehavior !== undefined;
+      const WINDOW_WIDTH_BREAKPOINT_PX = 923;
+      let scrollPosition = headerHeightPx;
+
+      if (SUPPORTS_SCROLL_BEHAVIOR) {
+        if (window.innerWidth < WINDOW_WIDTH_BREAKPOINT_PX) {
+          scrollPosition += header.clientHeight;
+        }
+      } else {
+        if (window.innerWidth >= WINDOW_WIDTH_BREAKPOINT_PX) {
+          scrollPosition = siteHeader.clientHeight
+        } else {
+          scrollPosition = siteHeader.clientHeight + header.clientHeight;
+        }
+      }
+
+      sectionHeadings.forEach((sectionHeading) => {
+        sectionHeading.setAttribute('style', `
+          margin-bottom: -${scrollPosition}px;
+          padding-top: ${scrollPosition}px;
+        `)
+      });
+    }
+
+    function setStickyNav() {
+      if (window.scrollY > distanceFromTop) {
+        stickyNav.classList.add('UseCaseSubNav-anchorLinks--sticky');
+      } else {
+        stickyNav.classList.remove('UseCaseSubNav-anchorLinks--sticky');
+      }
+    }
+  }
+})();
diff --git a/go.dev/_content/js/searchBox.js b/go.dev/_content/js/searchBox.js
new file mode 100644
index 0000000..b6e64b6
--- /dev/null
+++ b/go.dev/_content/js/searchBox.js
@@ -0,0 +1,64 @@
+(() => {
+  'use strict';
+  const BREAKPOINT = 512;
+  const logo = document.querySelector('.js-headerLogo');
+  const form = document.querySelector('.js-searchForm');
+  const button = document.querySelector('.js-searchFormSubmit');
+  const input = form.querySelector('input');
+
+  renderForm();
+
+  window.addEventListener('resize', renderForm);
+
+  function renderForm() {
+    if (window.innerWidth > BREAKPOINT) {
+      logo.classList.remove('Header-logo--hidden');
+      form.classList.remove('SearchForm--open');
+      input.removeEventListener('focus', showSearchBox);
+      input.removeEventListener('keypress', handleKeypress);
+      input.removeEventListener('focusout', hideSearchBox);
+    } else {
+      button.addEventListener('click', handleSearchClick);
+      input.addEventListener('focus', showSearchBox);
+      input.addEventListener('keypress', handleKeypress);
+      input.addEventListener('focusout', hideSearchBox);
+    }
+  }
+
+  /**
+   * Submits form if Enter key is pressed
+   * @param {KeyboardEvent} e
+   */
+  function handleKeypress(e) {
+    if (e.key === 'Enter') form.submit();
+  }
+
+  /**
+   * Shows the search box when it receives focus (expands it from
+   * just the spyglass if we're on mobile).
+   */
+  function showSearchBox() {
+    logo.classList.add('Header-logo--hidden');
+    form.classList.add('SearchForm--open');
+  }
+
+  /**
+   * Hides the search box (shrinks to just the spyglass icon).
+   */
+  function hideSearchBox() {
+    logo.classList.remove('Header-logo--hidden');
+    form.classList.remove('SearchForm--open');
+  }
+
+  /**
+   * Expands the searchbox so input is visible and gives
+   * the input focus.
+   * @param {MouseEvent} e
+   */
+  function handleSearchClick(e) {
+    e.preventDefault();
+
+    showSearchBox();
+    input.focus();
+  }
+})();
diff --git a/go.dev/_content/js/site.js b/go.dev/_content/js/site.js
new file mode 100644
index 0000000..23e4480
--- /dev/null
+++ b/go.dev/_content/js/site.js
@@ -0,0 +1,183 @@
+// 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.
+
+/**
+ * A bit of navigation related code for handling dismissible elements.
+ */
+(() => {
+  'use strict';
+
+  function registerHeaderListeners() {
+    const header = document.querySelector('.js-header');
+    const menuButtons = document.querySelectorAll('.js-headerMenuButton');
+    menuButtons.forEach(button => {
+      button.addEventListener('click', e => {
+        e.preventDefault();
+        header.classList.toggle('is-active');
+        button.setAttribute(
+          'aria-expanded',
+          header.classList.contains('is-active')
+        );
+      });
+    });
+
+    const scrim = document.querySelector('.js-scrim');
+    scrim.addEventListener('click', e => {
+      e.preventDefault();
+      header.classList.remove('is-active');
+      menuButtons.forEach(button => {
+        button.setAttribute(
+          'aria-expanded',
+          header.classList.contains('is-active')
+        );
+      });
+    });
+  }
+
+  function registerSolutionsTabs() {
+    // Handle tab navigation on Solutions page.
+    const tabList = document.querySelector('.js-solutionsTabs');
+
+    if (tabList) {
+      const tabs = tabList.querySelectorAll('[role="tab"]');
+      let tabFocus = getTabFocus();
+
+      changeTabs({ target: tabs[tabFocus] })
+
+      tabs.forEach(tab => {
+        tab.addEventListener('click', changeTabs);
+      });
+
+      // Enable arrow navigation between tabs in the tab list
+      tabList.addEventListener('keydown', e => {
+        // Move right
+        if (e.keyCode === 39 || e.keyCode === 37) {
+          tabs[tabFocus].setAttribute('tabindex', -1);
+          if (e.keyCode === 39) {
+            tabFocus++;
+            // If we're at the end, go to the start
+            if (tabFocus >= tabs.length) {
+              tabFocus = 0;
+            }
+            // Move left
+          } else if (e.keyCode === 37) {
+            tabFocus--;
+            // If we're at the start, move to the end
+            if (tabFocus < 0) {
+              tabFocus = tabs.length - 1;
+            }
+          }
+          tabs[tabFocus].setAttribute('tabindex', 0);
+          tabs[tabFocus].focus();
+          setTabFocus(tabs[tabFocus].id);
+        }
+      });
+
+      function getTabFocus() {
+        const hash = window.location.hash;
+
+        switch (hash) {
+          case '#use-cases':
+            return 1;
+          case '#case-studies':
+          default:
+            return 0;
+        }
+      }
+
+      function setTabFocus(id) {
+        switch (id) {
+          case 'btn-tech':
+            tabFocus = 1;
+            window.location.hash = '#use-cases';
+            break;
+          case 'btn-companies':
+          default:
+            window.location.hash = '#case-studies';
+            tabFocus = 0;
+        }
+      }
+
+      function changeTabs(e) {
+        const target = e.target;
+        const parent = target.parentNode;
+        const grandparent = parent.parentNode;
+
+        // Remove all current selected tabs
+        parent
+          .querySelectorAll('[aria-selected="true"]')
+          .forEach(t => t.setAttribute('aria-selected', false));
+
+        // Set this tab as selected
+        target.setAttribute('aria-selected', true);
+        setTabFocus(target.id)
+
+        // Hide all tab panels
+        grandparent
+          .querySelectorAll('[role="tabpanel"]')
+          .forEach(panel => panel.setAttribute('hidden', true));
+
+        // Show the selected panel
+        grandparent.parentNode
+          .querySelector(`#${target.getAttribute('aria-controls')}`)
+          .removeAttribute('hidden');
+      }
+    }
+  }
+
+  /**
+   * Attempts to detect user's operating system and sets the download
+   * links accordingly
+   */
+  async function setDownloadLinks() {
+    const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
+    const versionElement = document.querySelector('.js-latestGoVersion');
+    if (versionElement) {
+      const downloadBtn = document.querySelector('.js-downloadBtn');
+      const goVersionEl = document.querySelector('.js-goVersion');
+      const anchorTagWindows = document.querySelector('.js-downloadWin');
+      const anchorTagMac = document.querySelector('.js-downloadMac');
+      const anchorTagLinux = document.querySelector('.js-downloadLinux');
+      const version = await getLatestVersion();
+
+      const macDownloadUrl = `https://dl.google.com/go/${version}.darwin-amd64.pkg`;
+      const windowsDownloadUrl = `https://dl.google.com/go/${version}.windows-amd64.msi`;
+      const linuxDownloadUrl = `https://dl.google.com/go/${version}.linux-amd64.tar.gz`;
+      goVersionEl.textContent = `\u00a0(${version.replace('go', '')})`;
+
+      anchorTagWindows.href = windowsDownloadUrl;
+      anchorTagMac.href = macDownloadUrl;
+      anchorTagLinux.href = linuxDownloadUrl;
+      downloadBtn.href = isMac ? macDownloadUrl : windowsDownloadUrl;
+    }
+  }
+
+  /**
+   * Retrieves list of Go versions & returns the latest
+   */
+  async function getLatestVersion() {
+    let version = 'go1.15'; // fallback version if fetch fails
+    try {
+      const versionData = await (
+        await fetch('https://golang.org/dl/?mode=json')
+      ).json();
+      if (!versionData.length) {
+        return version;
+      }
+      versionData.sort((v1, v2) => {
+        return v2.version - v1.version;
+      });
+      version = versionData[0].version;
+    } catch (err) {
+      console.error(err);
+    }
+    return version;
+  }
+
+  window.addEventListener('DOMContentLoaded', () => {
+    registerHeaderListeners();
+    registerSolutionsTabs();
+    setDownloadLinks();
+  });
+})();
diff --git a/go.dev/_content/learn/books.yaml b/go.dev/_content/learn/books.yaml
new file mode 100644
index 0000000..21d59bd
--- /dev/null
+++ b/go.dev/_content/learn/books.yaml
@@ -0,0 +1,25 @@
+  - title: The Go Programming Language
+    description: Alan A. A. Donovan, Brian W. Kernighan
+    cta: View
+    url: https://www.gopl.io/
+    thumbnail: /images/learn/go-programming-language-book.png
+  - title: Get Programming with Go
+    description: Nathan Youngman, Roger Peppé
+    cta: Manning.com
+    url: https://www.manning.com/books/get-programming-with-go
+    thumbnail: /images/learn/get-programming-with-go.jpeg
+  - title: Go Programming Blueprints
+    description: This is the official source code repository for the book.
+    cta: View on Github
+    url: https://github.com/matryer/goblueprints
+    thumbnail: /images/learn/go-programming-blueprints.png
+  - title: Introducing Go
+    description: Caleb Doxsey
+    cta: View on O’Reilly.com
+    url: http://shop.oreilly.com/product/0636920046516.do
+    thumbnail: /images/learn/introducing-go-book.png
+  - title: Concurrency in Go
+    description: Katherine Cox-Buday
+    cta: View on O’Reilly.com
+    url: https://www.oreilly.com/library/view/concurrency-in-go/9781491941294/
+    thumbnail: /images/learn/concurrency-in-go.png
diff --git a/go.dev/_content/learn/cloud.yaml b/go.dev/_content/learn/cloud.yaml
new file mode 100644
index 0000000..81491ce
--- /dev/null
+++ b/go.dev/_content/learn/cloud.yaml
@@ -0,0 +1,25 @@
+
+  - title: Deploy Go Apps on Google Cloud Serverless Platforms
+    url: https://google.qwiklabs.com/focuses/10532?parent=catalog
+    thumbnail: /images/learn/qwiklabs.png
+    length: 1h 10m
+    credits: 5
+    rating: 4.25
+  - title: Use Go Code to Work with Google Cloud Data Sources
+    url: https://google.qwiklabs.com/focuses/10531?parent=catalog
+    thumbnail: /images/learn/qwiklabs.png
+    length: 1h 10m
+    credits: 5
+    rating: 4.25
+  - title: Getting Started with Go on App Engine
+    url: https://google.qwiklabs.com/focuses/2754?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=5407947
+    thumbnail: /images/learn/qwiklabs.png
+    length:  20m
+    credits: 1
+    rating: 4.15
+  - title: HTTP Google Cloud Functions in Go
+    url: https://google.qwiklabs.com/focuses/5171?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&parent=catalog&search_id=5407953
+    thumbnail: /images/learn/qwiklabs.png
+    length: 40m
+    credits: 5
+    rating: 4.5
diff --git a/go.dev/_content/learn/courses.yaml b/go.dev/_content/learn/courses.yaml
new file mode 100644
index 0000000..838f8ce
--- /dev/null
+++ b/go.dev/_content/learn/courses.yaml
@@ -0,0 +1,24 @@
+  - title: Codecademy
+    content: This course covers setting up a Go environment, the fundamentals of
+      Go, and will walk you through building a few sample projects.
+    url: https://www.codecademy.com/learn/learn-go?utm_source=customer_io&utm_campaign=oct_21_golaunch&utm_medium=email&utm_content=header_img
+    thumbnail: /images/learn/codecademy.png
+    cta: Learn more
+  - title: Exercism.io
+    content: Tackle community-sourced Go challenges in this interactive course,
+      working with other participants and mentors along the way.
+    url: https://exercism.io/tracks/go
+    thumbnail: /images/learn/exercism.png
+    cta: Learn more
+  - title: Google Developers Codelabs
+    content: Get started with a free codelab that walks you through using Go to
+      build and publish a Google Cloud Function.
+    url: https://codelabs.developers.google.com/codelabs/cloud-functions-go-http/#0
+    thumbnail: /images/learn/codelabs.png
+    cta: Learn more
+  - title: Gophercises
+    content: Build your confidence in using Go with this course, where you’ll
+      build roughly twenty different Go applications.
+    url: https://gophercises.com/
+    thumbnail: /images/learn/gophercises.png
+    cta: Learn more
diff --git a/go.dev/_content/learn/guided.yaml b/go.dev/_content/learn/guided.yaml
new file mode 100644
index 0000000..7af9c2b
--- /dev/null
+++ b/go.dev/_content/learn/guided.yaml
@@ -0,0 +1,25 @@
+  - title: Web Dev
+    content: Go Web Examples provides easy to understand code snippets on
+      how to use Go for web development.
+    url: https://gowebexamples.com
+    thumbnail: /images/learn/web-dev.png
+    cta: Learn more
+  - title: CLIs
+    content: This workshop will walk you through building a CLI app with Go,
+      introducing you to basic Go principles and CLI frameworks along the way.
+    url: https://spf13.com/presentation/building-an-awesome-cli-app-in-go-oscon/
+    thumbnail: /images/learn/clis.png
+    cta: Learn more
+  - title: New to coding?
+    content: Get started with this introductory course covering basic
+      programming principles and Go fundamentals.
+    url: https://www.youtube.com/watch?v=Q0sKAMal4WQ
+    thumbnail: /images/learn/edureka.png
+    cta: Learn more
+  - title: Go by example
+    content: <i>Go by Example</i> is a hands-on introduction to Go using annotated
+      example programs. It’s a great starting point to use when tackling any Go
+      project.
+    url: https://gobyexample.com/
+    thumbnail: /images/learn/gobyexample.png
+    cta: Learn more
diff --git a/go.dev/_content/learn/index.md b/go.dev/_content/learn/index.md
new file mode 100644
index 0000000..fe84ce3
--- /dev/null
+++ b/go.dev/_content/learn/index.md
@@ -0,0 +1,293 @@
+---
+title: "Getting Started"
+---
+
+<section class="Learn-hero">
+  <div class="Container">
+    <div class="Learn-heroInner">
+      <div class="Learn-heroContent">
+        {{breadcrumbs .}}
+        <h1>Install the latest version of Go</h1>
+        <p>
+          Install the latest version of Go. For instructions to download and install
+          the Go compilers, tools, and libraries,
+          <a href="https://golang.org/doc/install" target="_blank" rel="noopener">
+            view the install documentation.
+          </a>
+        </p>
+        <div class="Learn-heroAction">
+          <div
+            data-version=""
+            class="js-latestGoVersion"
+          >
+            <a
+              class="js-downloadBtn"
+              href="https://golang.org/dl"
+              target="_blank"
+              rel="noopener"
+            >
+              Download
+              <span class="js-goVersion"></span>
+            </a>
+          </div>
+        </div>
+        <p>
+          Download packages for
+          <a class="js-downloadWin">Windows 64-bit</a>,
+          <a class="js-downloadMac">macOS</a>,
+          <a class="js-downloadLinux">Linux</a>, and
+          <a href="https://golang.org/dl/">more</a>.
+        </p>
+      </div>
+      <div class="Learn-heroGopher">
+        <img src="/images/gophers/motorcycle.svg" alt="Go Gopher riding a motorcycle">
+      </div>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-quickstarts Learn-cardList">
+        {{- range first 3 (data "learn/quickstart")}}
+          <li class="Learn-quickstart Learn-card">
+            {{- template "learn-card" .}}
+          </li>
+        {{- end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-learningResources">
+  <h2>Learning Resources</h2>
+</section>
+
+<section id="guided-learning-journeys" class="Learn-guided">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Guided learning journeys</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+        {{- range first 4 (data "learn/guided")}}
+          <li class="Learn-card">
+            {{- template "learn-card" .}}
+          </li>
+        {{- end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="online-learning" class="Learn-online">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Online learning</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+        {{- range first 4 (data "learn/courses") }}
+          <li class="Learn-card">
+            {{- template "learn-card" .}}
+          </li>
+        {{- end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="self-paced-labs" class="Learn-selfPaced">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Google Cloud Self-Paced Labs</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+        {{- range first 4 (data "learn/cloud")}}
+        <li class="Learn-card">
+          {{- template "learn-self-paced-card" .}}
+        </li>
+        </li>
+        {{- end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="featured-books" class="Learn-books">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Featured books</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList Learn-bookList">
+        {{- range first 5 (data "learn/books")}}
+          <li class="Learn-card Learn-book">
+            {{template "learn-book" .}}
+          </li>
+        {{- end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-inPersonTraining">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>In-person training</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-inPersonList">
+        {{- range first 4 (data "learn/training")}}
+        <li class="Learn-inPerson">
+          <p class="Learn-inPersonTitle">
+            <a href="{{.url}}">{{.title}} </a>
+          </p>
+          <p class="Learn-inPersonBlurb">{{.blurb}}</p>
+        </li>
+        {{- end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-meetups">
+  <div class="Container">
+    <div class="Learn-subHeader">
+      <h2>Meetups</h2>
+      <p class="Learn-viewMore">
+        <a href="https://www.meetup.com/pro/go">View more events &gt;</a>
+      </p>
+    </div>
+    <ul class="Learn-events">
+      {{- range first 3 (data "events").all}}
+      <li class="Learn-eventItem">
+        <div
+          class="Learn-eventThumbnail {{if not .photourl}}Learn-eventThumbnail--noimage{{end}}"
+        >
+          {{- if .photourl}}
+          <img alt="{{.name}} group photo" src="{{.photourl}}" />
+          {{- else}}
+          <img src="/images/meetup.svg" alt="meetup logo" />
+          {{- end}}
+        </div>
+        <div class="Learn-eventBody">
+          <div class="Learn-eventDate">
+            <p>{{.local_date}} &#183 {{.city}}, {{.state}} {{.country}}</p>
+          </div>
+          <div class="Learn-eventText">
+            <h4 class="Learn-eventName">
+              <a href="{{.url}}">{{.name}}</a>
+            </h4>
+            <p class="Learn-eventDescription">{{rawhtml .description}}</p>
+          </div>
+          <div class="Learn-eventAttendees">
+            {{- with .attendees }}
+              {{- range first 5 .}}
+              <div class="Learn-eventAttendeesItem">
+                <img src="{{.thumb_link}}" alt="{{.name}}"/>
+              </div>
+              {{- end}}
+            {{- end}}
+          </div>
+        </div>
+      </li>
+      {{- end}}
+    </ul>
+  </div>
+</section>
+
+{{define "learn-card"}}
+<div class="Card">
+  <div class="Card-inner">
+    {{- if .thumbnail}}
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('{{.thumbnail}}')"
+    ></div>
+    {{- end}}
+    <div class="Card-content">
+      <div class="Card-contentTitle">{{.title}}</div>
+      <p class="Card-contentBody">{{rawhtml .content}}</p>
+      <div class="Card-contentCta">
+        <a href="{{.url}}" target="_blank">
+          <span>{{.cta}}</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+{{- end}}
+
+{{define "learn-self-paced-card"}}
+<div class="Card">
+  <a href="{{.url}}" target="_blank" rel="noopener">
+    <div class="Card-inner">
+      {{- if .thumbnail}}
+      <div
+        class="Card-thumbnail"
+        style="background-image: url('{{.thumbnail}}')"
+      ></div>
+      {{- end}}
+      <div class="Card-content">
+        <div class="Card-contentTitle">{{.title}}</div>
+        <div class="Card-selfPacedFooter">
+          <div class="Card-selfPacedCredits">
+            <span>{{ .length }}</span> •
+            <span>{{.credits}} Credits</span>
+          </div>
+          <div class="Card-selfPacedRating">
+            <div class="Card-starRating" style="width: {{ .rating }}rem"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+{{- end}}
+
+{{define "learn-book"}}
+<div class="Book">
+  <a href="{{.url}}" target="_blank" rel="noopener">
+    <div class="Book-inner">
+      {{- if .thumbnail}}
+      <div class="Book-thumbnail">
+        <img alt="{{.title}} thumbnail." src="{{.thumbnail}}" />
+      </div>
+      {{- end}}
+      <div class="Book-content">
+        <p class="Book-title">{{.title}}</p>
+        <p class="Book-description">{{.description}}</p>
+        <div class="Book-cta">
+          <span>{{.cta}}</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+{{- end}}
diff --git a/go.dev/_content/learn/quickstart.yaml b/go.dev/_content/learn/quickstart.yaml
new file mode 100644
index 0000000..b1c232f
--- /dev/null
+++ b/go.dev/_content/learn/quickstart.yaml
@@ -0,0 +1,15 @@
+  - title: Documentation
+    content: Everything there is to know about Go. Get started on a new project
+      or brush up for your existing Go code.
+    cta: View documentation
+    url: https://golang.org/doc/install
+  - title: Tour of Go
+    content: An interactive introduction to Go in three sections. Each section
+      concludes with a few exercises so you can practice what you've learned.
+    cta: Take a tour
+    url: https://tour.golang.org
+  - title: Playground
+    content: The Playground allows anyone with a web browser to write Go code
+      that we immediately compile, link, and run on our servers.
+    cta: Go to playground
+    url: https://play.golang.org
diff --git a/go.dev/_content/learn/training.yaml b/go.dev/_content/learn/training.yaml
new file mode 100644
index 0000000..8e24f8b
--- /dev/null
+++ b/go.dev/_content/learn/training.yaml
@@ -0,0 +1,20 @@
+  - title: Ardan Labs
+    url: https://www.ardanlabs.com/
+    thumbnail:
+    blurb: Offering customized on-site live training classes.
+  - title: Gopher Guides
+    url: https://www.gopherguides.com/
+    thumbnail:
+    blurb: Customized In-person, remote, and online training classes. Training for Developers by Developers.
+  - title: Boss Sauce Creative
+    url: https://bosssauce.it/services/training
+    thumbnail:
+    blurb: Personalized or track-based Go training for teams.
+  - title: Shiju Varghese
+    url: https://github.com/shijuvar/gokit/tree/master/training
+    thumbnail:
+    blurb: On-site classroom training on Go and consulting on distributed systems architectures, in India.
+  - title: kkoehler
+    url: https://golang.kkoehler.com/
+    thumbnail:
+    blurb: In-Person class trainings for Go in Germany, Austria and Switzerland.
diff --git a/go.dev/_content/menus.yaml b/go.dev/_content/menus.yaml
new file mode 100644
index 0000000..801f150
--- /dev/null
+++ b/go.dev/_content/menus.yaml
@@ -0,0 +1,63 @@
+main:
+  - name: Why Go
+    url: /solutions/
+  - name: Getting Started
+    url: /learn/
+  - name: Discover Packages
+    url: https://pkg.go.dev
+  - name: About
+    url: /about
+
+footer:
+  - name: Why Go
+    url: /solutions/
+    children:
+    - name: Use Cases
+      url: /solutions/#use-cases
+    - name: Case Studies
+      url: /solutions/#case-studies
+
+  - name: Getting Started
+    url: /learn/
+    children:
+    - name: Playground
+      url: https://play.golang.org
+    - name: Tour
+      url: https://tour.golang.org
+    - name: Stack Overflow
+      url: https://stackoverflow.com/questions/tagged/go?tab=Newest
+
+  - name: Discover Packages
+    url: https://pkg.go.dev
+
+  - name: About
+    url: /about
+    children:
+    - name: Download
+      url: https://golang.org/dl/
+    - name: Blog
+      url: https://blog.golang.org
+    - name: Issue Tracker
+      url: https://github.com/golang/go/issues
+    - name: Release Notes
+      url: https://golang.org/doc/devel/release.html
+    - name: Brand Guidelines
+      url: https://blog.golang.org/go-brand
+    - name: Code of Conduct
+      url: https://golang.org/conduct
+
+  - name: Connect
+    url: https://www.twitter.com/golang
+    children:
+    - name: Twitter
+      url: https://www.twitter.com/golang
+    - name: Github
+      url: https://github.com/golang
+    - name: Slack
+      url: https://invite.slack.golangbridge.org/
+    - name: r/golang
+      url: https://reddit.com/r/golang
+    - name: Meetup
+      url: https://www.meetup.com/pro/go
+    - name: Golang Weekly
+      url: https://golangweekly.com/
diff --git a/go.dev/_content/resources.yaml b/go.dev/_content/resources.yaml
new file mode 100644
index 0000000..bc0e795
--- /dev/null
+++ b/go.dev/_content/resources.yaml
@@ -0,0 +1,56 @@
+  - title: Cloud & Network Services
+    description: "With a strong ecosystem of tools and APIs on major cloud providers, it is easier than ever to build services with Go."
+    link: /solutions/cloud/
+    icon: /images/icons/sphere.svg
+    iconName: Sphere
+    packages:
+    - title: cloud.google.com/go
+      url: https://cloud.google.com/go/home
+    - title: aws/client
+      url: https://aws.amazon.com/sdk-for-go/
+    - title: Azure/azure-sdk-for-go
+      url: https://github.com/Azure/azure-sdk-for-go
+  - title: Command-line Interfaces
+    description: "With popular open source packages and a robust standard library, use Go to create fast and elegant CLIs."
+    link: /solutions/clis/
+    icon: /images/icons/command-folder.svg
+    iconName: Command Line
+    packages:
+    - title: spf13/cobra
+      url: https://github.com/spf13/cobra
+    - title: spf13/viper
+      url: https://github.com/spf13/viper
+    - title: urfave/cli
+      url: https://github.com/urfave/cli
+    - title: delve
+      url: https://github.com/go-delve/delve
+    - title: chzyer/readline
+      url: https://github.com/chzyer/readline
+  - title: Web Development
+    description: "With enhanced memory performance and support for several IDEs, Go powers fast and scalable web applications."
+    link: /solutions/webdev/
+    icon: /images/icons/code.svg
+    iconName: Code
+    packages:
+    - title: net/http
+      url: https://golang.org/pkg/net/http/
+    - title: html/template
+      url: https://golang.org/pkg/html/template/
+    - title: flosch/pongo2
+      url: https://github.com/flosch/pongo2
+    - title: database/sql
+      url: https://golang.org/pkg/database/sql/
+    - title: olivere/elastic
+      url: https://github.com/olivere/elastic
+  - title: DevOps & Site Reliability
+    description: "With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE."
+    link: /solutions/devops/
+    icon: /images/icons/gear.svg
+    iconName: Sphere
+    packages:
+    - title: opentracing/opentracing-go
+      url: https://github.com/opentracing/opentracing-go
+    - title: istio/istio
+      url: https://github.com/istio/istio
+    - title: urfave/cli
+      url: https://github.com/urfave/cli
\ No newline at end of file
diff --git a/go.dev/_content/robots.txt b/go.dev/_content/robots.txt
new file mode 100644
index 0000000..c2a49f4
--- /dev/null
+++ b/go.dev/_content/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Allow: /
diff --git a/go.dev/_content/site.yaml b/go.dev/_content/site.yaml
new file mode 100644
index 0000000..6878875
--- /dev/null
+++ b/go.dev/_content/site.yaml
@@ -0,0 +1,2 @@
+url: https://go.dev/
+title: go.dev
diff --git a/go.dev/_content/solutions/americanexpress.md b/go.dev/_content/solutions/americanexpress.md
new file mode 100644
index 0000000..c72064f
--- /dev/null
+++ b/go.dev/_content/solutions/americanexpress.md
@@ -0,0 +1,83 @@
+---
+title: "American Express Uses Go for Payments & Rewards"
+layout: solution
+company: American Express
+logoSrc: american-express.svg
+heroImgSrc: go_amex_case_study_logo.png
+carouselImgSrc: go_amex_case_study.png
+date: 2019-12-19
+series: Case Studies
+quote: Go provides American Express with the speed and scalability it needs for both its payment and rewards networks.
+---
+
+{{pullquote `
+  author: Glen Balliet
+  title: Engineering Director of loyalty platforms
+  company: American Express
+  quote: |
+    What makes Go different from other programming languages is cognitive load. You can do more with less code, which makes it easier to reason about and understand the code that you do end up writing.
+
+    The majority of Go code ends up looking quite similar, so, even if you’re working with a completely new codebase, you can get up and running pretty quickly.
+`}}
+
+## Go Improves Microservices and Speeds Productivity
+
+Founded in 1850, American Express is a globally integrated payments company offering charge and credit card products, merchant acquisition and processing services, network services, and travel-related services.
+
+American Express’ payment processing systems have been developed over its long history and have been updated across multiple architectural evolutions. Foremost in any update, payment processing needs to be fast, especially at very large transaction volumes, with resilience built across systems that must all be compliant with security and regulatory standards. With Go, American Express gains the speed and scalability it needs for both its payment and rewards networks.
+
+### Modernizing American Express systems
+
+American Express understands that the programming language landscape is changing drastically. The company's existing systems were purpose-built for high concurrency and low latency, but knowing that those systems would be re-platformed in the near future. The payments platform team decided to take the time to identify what languages were ideal for American Express's evolving needs.
+
+The payments and rewards platform teams at American Express were among the first to start evaluating Go. These teams were focused on microservices, transaction routing, and load-balancing use cases, and they needed to modernize their architecture. Many American Express developers were familiar with the language’s capabilities and wanted to pilot Go for their high concurrency and low latency applications (such as custom transactional load balancers). With this goal in mind, the teams began lobbying senior leadership to deploy Go on the American Express payment platform.
+
+"We wanted to find the optimal language for writing fast and efficient applications for payment processing," says Benjamin Cane, vice president and principal engineer at American Express. "To do so, we started an internal programming language showdown with the goal of seeing which language best fit our design and performance needs."
+
+### Comparing languages
+
+For their assessment, Cane's team chose to build a microservice in four different programming languages. They then compared the four languages for speed/performance, tooling, testing, and ease of development.
+
+For the service, they decided on an ISO8583 to JSON converter. ISO8583 is an international standard for financial transactions, and it’s commonly used within American Express's payment network. For the programming languages, they chose to compare C++, Go, Java and Node.js. With the exception of Go, all of these languages were already in use within American Express.
+
+From a speed perspective, Go achieved the second-best performance at 140,000 requests per second. Go showed that it excels when used for backend microservices.
+
+While Go may not have been the fastest language tested, its powerful tooling helped bolster its overall results. Go's built-in testing framework, profiling capabilities, and benchmarking tools impressed the team. "It is easy to write effective tests in Go," says Cane. "The benchmarking and profiling features make it simple to tune our application. Coupled with its fast build times, Go makes it easy to write well-tested and optimized code."
+
+Ultimately, Go was selected by the team as the preferred language for building high-performance microservices. The tooling, testing frameworks, performance, and language simplicity were all key contributors.
+
+### Go for infrastructure
+
+"Many of our services are running in Docker containers within our Kubernetes-based internal cloud platform" says Cane. Kubernetes is an open-source container-orchestration system written in Go. It provides clusters of hosts to run container based workloads, most notably Docker containers. Docker is a software product, also written in Go, that uses operating system level virtualization to provide portable software runtimes called containers.
+
+American Express also collects application metrics via Prometheus, an open-source monitoring and alerting toolkit written in Go. Prometheus collects and aggregates real-time events and metrics for monitoring and alerts.
+
+This triumvirate of Go solutions—Kubernetes, Docker, and Prometheus—has helped modernize American Express infrastructure.
+
+### Improving performance with Go
+
+Today, scores of developers are programming with Go at American Express, with most working on platforms designed for high availability and performance.
+
+"Tooling has always been a critical area of need for our legacy code base," says Cane. "We have found that Go has excellent tooling, plus built-in testing, benchmarking, and profiling frameworks. It is easy to write efficient and resilient applications."
+
+{{backgroundquote `
+  author: Benjamin Cane
+  title: Vice President and Principal Engineer
+  company: American Express
+  quote: |
+    After working on Go, most of our developers don't want to go back to other languages.
+`}}
+
+American Express is just beginning to see the benefits of Go. For example, Go was designed from the ground up with concurrency in mind – using lightweight “goroutines” rather than heavier-weight operating system threads – making it practical to create hundreds of thousands of goroutines in the same address space. Using goroutines, American Express has seen improved performance numbers in its real-time transaction processing.
+
+Go’s garbage collection is also a major improvement over other languages, both in terms of performance and ease of development. “We saw far better results of garbage collection in Go than we did in other languages, and garbage collection for real time transaction processing is a big deal.” says Cane. “Tuning garbage collection in other languages can be very complicated. With Go you don’t tune anything.”
+
+To learn more, read ["Choosing Go at American Express"](https://americanexpress.io/choosing-go/) which goes into more depth about American Express's Go adoption.
+
+### Getting your enterprise started with Go
+
+Just as American Express is using Go to modernize its payment and rewards networks, dozens of other large enterprises are adopting Go as well.
+
+There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as [PayPal](https://go.dev/solutions/paypal), [Mercado Libre](https://go.dev/solutions/mercadolibre), Capital One, Dropbox, IBM, Mercado Libre, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.
+
+To learn more about how Go can help your enterprise build reliable, scalable software as it does at American Express, visit [go.dev](https://go.dev) today.
diff --git a/go.dev/_content/solutions/armut.md b/go.dev/_content/solutions/armut.md
new file mode 100644
index 0000000..08d3a58
--- /dev/null
+++ b/go.dev/_content/solutions/armut.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "How Armut Labs use Go "
+description: "Learn about how Armut Labs reduced resource consumption and API response time after moving from C# and .net core to Go."
+layout: solution
+company: Armut
+logoSrc: armut.png
+series: Case Studies
+link: https://labs.armut.com/how-we-decreased-one-of-our-apis-response-time-by-87-and-used-less-resources-ce847e83308
+inLandingPageGrid: false
+---
diff --git a/go.dev/_content/solutions/capital-one.md b/go.dev/_content/solutions/capital-one.md
new file mode 100644
index 0000000..2f0e7af
--- /dev/null
+++ b/go.dev/_content/solutions/capital-one.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "Capital One - A Serverless and Go Journey"
+description: "At the time, no single team member knew Go, but within a month, everyone was writing in Go and we were building out the endpoints. It was the flexibility, how easy it was to use, and the really cool concept behind Go (how Go handles native concurrency, garbage collection, and of course safety+speed.) that helped engage us during the build. Also, who can beat that cute mascot!"
+layout: solution
+company: Capital One
+logoSrc: capital-one.svg
+series: Case Studies
+link: https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/chrome.md b/go.dev/_content/solutions/chrome.md
new file mode 100644
index 0000000..3420414
--- /dev/null
+++ b/go.dev/_content/solutions/chrome.md
@@ -0,0 +1,3 @@
+---
+redirect: /solutions/google/chrome
+---
diff --git a/go.dev/_content/solutions/clis-green.svg b/go.dev/_content/solutions/clis-green.svg
new file mode 100644
index 0000000..01fed5b
--- /dev/null
+++ b/go.dev/_content/solutions/clis-green.svg
@@ -0,0 +1,13 @@
+<svg width="62px" height="59px" viewBox="0 0 62 59" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-840.000000, -448.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="noun_Command-Folder_1628426-Copy" transform="translate(840.000000, 448.000000)">
+                <path d="M0,11 L62,11 L62,59 L0,59 L0,11 Z M59.1818182,13.8235294 L2.81818182,13.8235294 L2.81818182,56.1764706 L59.1818182,56.1764706 L59.1818182,13.8235294 Z" id="Shape"></path>
+                <rect id="Rectangle" x="9" y="6" width="45" height="3"></rect>
+                <rect id="Rectangle" x="14" y="0" width="34" height="3"></rect>
+                <path d="M21.4005257,42 C20.9861599,42 20.6408551,41.8584982 20.3646112,41.5047435 C19.8811845,40.9387362 19.9502454,40.0189742 20.5717941,39.5237177 L27.5469517,33.5098894 L20.5027332,27.4960611 C19.9502454,27.0008046 19.8121235,26.0810427 20.2955503,25.5150353 C20.778977,24.9490279 21.6767696,24.8075261 22.2292573,25.3027825 L30.5165732,32.3778747 C30.8618781,32.6608784 31,33.014633 31,33.4391385 C31,33.863644 30.7928171,34.2881496 30.5165732,34.5004023 L22.2292573,41.5754945 C22.0220744,41.8584982 21.7458306,42 21.4005257,42 Z" id="Path"></path>
+                <path d="M40.625,45 L32.375,45 C31.61875,45 31,44.325 31,43.5 C31,42.675 31.61875,42 32.375,42 L40.625,42 C41.38125,42 42,42.675 42,43.5 C42,44.325 41.38125,45 40.625,45 Z" id="Path"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/clis-white.svg b/go.dev/_content/solutions/clis-white.svg
new file mode 100644
index 0000000..a08127d
--- /dev/null
+++ b/go.dev/_content/solutions/clis-white.svg
@@ -0,0 +1,19 @@
+<svg width="34px" height="32px" viewBox="0 0 34 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-537.000000, -1068.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group-2" transform="translate(320.000000, 67.000000)">
+                    <g id="Group-6" transform="translate(99.000000, 0.000000)">
+                        <g id="noun_Command-Folder_1628426-Copy" transform="translate(13.000000, 14.000000)">
+                            <path d="M0,6 L34,6 L34,32 L0,32 L0,6 Z M32.4545455,7.52941176 L1.54545455,7.52941176 L1.54545455,30.4705882 L32.4545455,30.4705882 L32.4545455,7.52941176 Z" id="Shape"></path>
+                            <rect id="Rectangle" x="5" y="3" width="25" height="2"></rect>
+                            <rect id="Rectangle" x="8" y="0" width="19" height="2"></rect>
+                            <path d="M11.7639231,22 C11.5379054,22 11.3495573,21.9250873 11.1988789,21.7378054 C10.9351915,21.4381544 10.9728611,20.9512216 11.3118877,20.689027 L15.1165191,17.5052356 L11.2742181,14.3214441 C10.9728611,14.0592495 10.8975219,13.5723167 11.1612092,13.2726657 C11.4248966,12.9730148 11.9146016,12.898102 12.2159585,13.1602966 L16.7363127,16.9059337 C16.9246608,17.0557591 17,17.243041 17,17.4677792 C17,17.6925174 16.8869911,17.9172556 16.7363127,18.0296248 L12.2159585,21.7752618 C12.1029497,21.9250873 11.9522712,22 11.7639231,22 Z" id="Path"></path>
+                            <path d="M22.25,25 L17.75,25 C17.3375,25 17,24.55 17,24 C17,23.45 17.3375,23 17.75,23 L22.25,23 C22.6625,23 23,23.45 23,24 C23,24.55 22.6625,25 22.25,25 Z" id="Path"></path>
+                        </g>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/clis.md b/go.dev/_content/solutions/clis.md
new file mode 100644
index 0000000..8699f0b
--- /dev/null
+++ b/go.dev/_content/solutions/clis.md
@@ -0,0 +1,172 @@
+---
+title: "Command-line Interfaces (CLIs)"
+linkTitle: "Command-line Interfaces (CLIs)"
+description: "With popular open source packages and a robust standard library, use Go to create fast and elegant CLIs."
+date: 2019-10-04T15:26:31-04:00
+layout: solution
+series: Use Cases
+icon:
+  file: clis-green.svg
+  alt: CLI icon
+icon-white:
+  file: clis-white.svg
+  alt: CLI icon
+---
+
+## Overview {#overview .sectionHeading}
+
+### CLI developers prefer Go for portability, performance, and ease of creation
+
+Command line interfaces (CLIs), unlike graphical user interfaces (GUIs), are text-only. Cloud and infrastructure applications are primarily CLI-based due to their easy automation and remote capabilities.
+
+## Key benefits {#key-benefits .sectionHeading}
+
+### Leverage fast compile times to build programs that start quickly and run on any system
+
+Developers of CLIs find Go to be ideal for designing their applications. Go compiles very quickly into a single binary, works across platforms with a consistent style, and brings a strong development community. From a single Windows or Mac laptop, developers can build a Go program for every one of the dozens of architectures and operating systems Go supports in a matter of seconds, no complicated build farms are needed. No other compiled language can be built as portably or quickly. Go applications are built into a single self contained binary making installing Go applications trivial.
+
+Specifically, **programs written in Go run on any system without requiring any existing libraries, runtimes, or dependencies**. And **programs written in Go have an immediate startup time**—similar to C or C++ but unobtainable with other programming languages.
+
+## Use Case {#use-case .sectionHeading}
+
+### Use Go for building elegant CLIs
+
+{{backgroundquote `
+  author: Steve Domino
+  title: senior engineer and architect at Strala
+  link: https://medium.com/@skdomino/writing-better-clis-one-snake-at-a-time-d22e50e60056
+  quote: |
+    I was tasked with building our CLI tool and found two really great projects, Cobra and Viper, which make building CLI’s easy. Individually they are very powerful, very flexible and very good at what they do. But together they will help you show your next CLI who is boss!
+`}}
+
+{{backgroundquote `
+  author: Francesc Campoy
+  title: VP of product at DGraph Labs and producer of Just For Func videos
+  link: https://www.youtube.com/watch?v=WvWPGVKLvR4
+  quote: |
+    Cobra is a great product to write small tools or even large ones. It’s more of a framework than a library, because when you call the binary that would create a skeleton, then you would be adding code in between.”
+`}}
+
+When developing CLIs in Go, two tools are widely used: Cobra & Viper.
+
+{{pkg "github.com/spf13/cobra" "Cobra"}} is both a library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go. Cobra powers most of the popular Go applications including CoreOS, Delve, Docker, Dropbox, Git Lfs, Hugo, Kubernetes, and [many more](https://pkg.go.dev/github.com/spf13/cobra?tab=importedby). With integrated command help, autocomplete and documentation “[it] makes documenting each command really simple,” says [Alex Ellis](https://blog.alexellis.io/5-keys-to-a-killer-go-cli/), founder of OpenFaaS.
+
+
+{{pkg "github.com/spf13/viper" "Viper"}} is a complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats. Cobra and Viper are designed to work together.
+
+Viper [supports nested structures](https://scene-si.org/2017/04/20/managing-configuration-with-viper/) in the configuration, allowing CLI developers to manage the configuration for multiple parts of a large application. Viper also provides all of the tooling need to easily build twelve factor apps.
+
+"If you don’t want to pollute your command line, or if you’re working with sensitive data which you don’t want to show up in the history, it’s a good idea to work with environment variables. To do this, you can use Viper," [suggests Geudens](https://ordina-jworks.github.io/development/2018/10/20/make-your-own-cli-with-golang-and-cobra.html).
+
+{{projects `
+  - company: Comcast
+    url: https://xfinity.com/
+    logoSrc: comcast.svg
+    desc: Comcast uses Go for a CLI client used to publish and subscribe to it’s high-traffic sites. The company also supports an open source client library which is written in Go - designed for working with Apache Pulsar.
+    ctas:
+      - text: Client library for Apache Pulsar
+        url: https://github.com/Comcast/pulsar-client-go
+      - text: Pulsar CLI Client
+        url: https://github.com/Comcast/pulsar-client-go/blob/master/cli/main.go
+  - company: GitHub
+    url: https://github.com/
+    logoSrc: github.svg
+    desc: GitHub uses Go for a command-line tool that makes it easier to work with GitHub, wrapping git in order to extend it with extra features and commands.
+    ctas:
+      - text: GitHub command-line tool
+        url: https://github.com/github/hub
+  - company: Hugo
+    url: http://gohugo.io/
+    logoSrc: hugo.svg
+    desc: Hugo is one of the most popular Go CLI applications powering thousands of sites, including this one. One reason for it’s popularity is it’s ease of install thanks to Go. Hugo author Bjørn Erik Pedersen writes “The single binary takes most of the pain out of installation and upgrades.”
+    ctas:
+      - text: Hugo Website
+        url: https://gohugo.io/
+  - company: Kubernetes
+    url: https://kubernetes.com/
+    logoSrc: kubernetes.svg
+    desc: Kubernetes is one of the most popular Go CLI applications. Kubernetes Creator, Joe Beda, said that for writing Kubernetes, “Go was the only logical choice”. Calling Go “the sweet spot” between low level languages like C++ and high level languages like Python.
+    ctas:
+      - text: Kubernetes + Go
+        url: https://blog.gopheracademy.com/birthday-bash-2014/kubernetes-go-crazy-delicious/
+  - company: MongoDB
+    url: https://mongodb.com/
+    logoSrc: mongodb.svg
+    desc: MongoDB chose to implement their Backup CLI Tool in Go citing Go’s “C-like syntax, strong standard library, the resolution of concurrency problems via goroutines, and painless multi-platform distribution” as reasons.
+    ctas:
+      - text: MongoDB Backup Service
+        url: https://www.mongodb.com/blog/post/go-agent-go
+  - company: Netflix
+    url: http://netflix.com/
+    logoSrc: netflix.svg
+    desc: Netflix uses Go to build the CLI application ChaosMonkey, an application responsible for randomly terminating instances in production to ensure that engineers implement their services to be resilient to instance failures.
+    ctas:
+      - text: Netflix Techblog Article
+        url: https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef
+  - company: Stripe
+    url: https://stripe.com/
+    logoSrc: stripe.svg
+    desc: Stripe uses Go for the Stripe CLI aimed to help build, test, and manage a Stripe integration right from the terminal.
+    ctas:
+      - text: Stripe CLI
+        url: https://github.com/stripe/stripe-cli
+  - company: Uber
+    url: https://uber.com/
+    logoSrc: uber.svg
+    desc: Uber uses Go for several CLI tools, including the CLI API for Jaeger, a distributed tracing system used for monitoring microservice distributed systems.
+    ctas:
+      - text: CLI API for Jaeger
+        url: https://www.jaegertracing.io/docs/1.14/cli/
+`}}
+
+## Get Started {#get-started .sectionHeading}
+
+### Go books for creating CLIs
+
+{{books `
+  - title: Powerful Command-Line Applications in Go
+    url: https://www.amazon.com/Powerful-Command-Line-Applications-Go-Maintainable/dp/168050696X
+    thumbnail: /images/books/powerful-command-line-applications-in-go.jpg
+  - title: Go in Action
+    url: https://www.amazon.com/Go-Action-William-Kennedy/dp/1617291781
+    thumbnail: /images/books/go-in-action.jpg
+  - title: The Go Programming Language
+    url: https://www.gopl.io/
+    thumbnail: /images/learn/go-programming-language-book.png
+  - title: Go Programming Blueprints
+    url: https://github.com/matryer/goblueprints
+    thumbnail: /images/learn/go-programming-blueprints.png
+`}}
+
+{{libraries `
+  - title: CLI Libraries
+    viewMoreUrl: https://pkg.go.dev/search?q=command%20line%20OR%20CLI
+    items:
+      - text: spf13/cobra
+        url: https://pkg.go.dev/github.com/spf13/cobra?tab=overview
+        desc: A library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go
+      - text: spf13/viper
+        url: https://pkg.go.dev/github.com/spf13/viper?tab=overview
+        desc: A complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats
+      - text: urfave/cli
+        url: https://pkg.go.dev/github.com/urfave/cli?tab=overview
+        desc: A minimal framework for creating and organizing command line Go applications
+      - text: delve
+        url: https://pkg.go.dev/github.com/go-delve/delve?tab=overview
+        desc: A simple and powerful tool built for programmers used to using a source-level debugger in a compiled language
+      - text: chzyer/readline
+        url: https://pkg.go.dev/github.com/chzyer/readline?tab=overview
+        desc: A pure Golang implementation that provides most features in GNU Readline (under MIT license)
+      - text: dixonwille/wmenu
+        url: https://pkg.go.dev/github.com/dixonwille/wmenu?tab=overview
+        desc: An easy-to-use menu structure for CLI applications that prompts users to make choices
+      - text: spf13/pflag
+        url: https://pkg.go.dev/github.com/spf13/pflag?tab=overview
+        desc: A drop-in replacement for Go’s flag package, implementing POSIX/GNU-style flags
+      - text: golang/glog
+        url: https://pkg.go.dev/github.com/golang/glog?tab=overview
+        desc: Leveled execution logs for Go
+      - text: go-prompt
+        url: https://pkg.go.dev/github.com/c-bata/go-prompt?tab=overview
+        desc: A library for building powerful interactive prompts, making it easier to build cross-platform command line tools using Go.
+`}}
diff --git a/go.dev/_content/solutions/cloud-green.svg b/go.dev/_content/solutions/cloud-green.svg
new file mode 100644
index 0000000..b143a1d
--- /dev/null
+++ b/go.dev/_content/solutions/cloud-green.svg
@@ -0,0 +1,9 @@
+<svg width="59px" height="59px" viewBox="0 0 59 59" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-250.000000, -645.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="noun_Network_58995-Copy" transform="translate(250.000000, 645.000000)">
+                <path d="M58.9678767,28.2498556 C58.9521428,27.8729111 58.9259198,27.4992444 58.8957632,27.1262333 C58.8957632,27.1223 58.8957632,27.1183667 58.8957632,27.1144333 C58.8957632,27.1144333 58.8957632,27.1144333 58.8951076,27.1144333 C57.7426025,12.7459667 46.2536085,1.25801111 31.8846628,0.104233333 C31.8833517,0.104233333 31.8820405,0.104233333 31.8813849,0.104233333 C31.5050835,0.0740777778 31.1274709,0.0478555556 30.747236,0.0314666667 C30.3348778,0.0118 29.9212085,0 29.5042613,0 C29.5042613,0 29.5042613,0 29.4996722,0 C29.4950832,0 29.4950832,0 29.4950832,0 C29.0781359,0 28.663811,0.0124555556 28.2521084,0.0321222222 C27.8712179,0.0478555556 27.4929498,0.0747333333 27.1159928,0.105544444 L27.1153372,0.105544444 C12.3694345,1.29472222 0.652955099,13.3582556 0.0314677156,28.2485444 C0.0124559708,28.6602333 0,29.0745444 0,29.4914778 L0,29.4960667 C0,29.5013111 0,29.5013111 0,29.5013111 C0,29.5059 0,29.5104889 0,29.5150778 C0,29.9313556 0.0131115482,30.3450111 0.0327788704,30.7567 C0.665411069,45.6463333 12.373368,57.7026556 27.1146816,58.8944556 C27.1179595,58.8944556 27.121893,58.8951111 27.1251708,58.8951111 C27.4995055,58.9252667 27.875807,58.9521444 28.2547307,58.9678778 C28.6657777,58.9868889 29.0787915,59 29.4950832,59 C29.4950832,59 29.4950832,59 29.4996722,59 C29.5042613,59 29.5042613,59 29.5042613,59 C29.9225196,59 30.3375001,58.9875444 30.7498583,58.9685333 C31.1281265,58.9528 31.5024612,58.9259222 31.8774515,58.8964222 C31.8800738,58.8957667 31.8826961,58.8957667 31.8846628,58.8957667 C46.6213874,57.7111778 58.3339334,45.6509222 58.9672211,30.7573556 C58.9868885,30.3456667 59,29.9320111 59,29.5150778 C59,29.5098333 59,29.5052444 59,29.5013111 C59,29.5013111 59,29.5013111 59,29.4960667 L59,29.4914778 C58.9993444,29.0752 58.987544,28.6615444 58.9678767,28.2498556 Z M20.9883107,3.78911111 C18.7665589,5.93277778 16.8765292,8.91096667 15.4296699,12.4857111 C14.0051002,12.6384556 12.8912742,13.8302556 12.8912742,15.2960778 C12.8912742,15.3150889 12.8965188,15.3334444 12.8971744,15.3524556 C9.11318155,16.8549889 5.95198729,18.8531222 3.71187928,21.1914889 C6.35975644,12.9937667 12.8191606,6.50245556 20.9883107,3.78911111 Z M13.7887596,17.5026778 C13.0453348,20.4467778 12.5995422,23.6688333 12.4435148,27.0587111 C11.949865,27.3491222 11.5525851,27.7791667 11.3080547,28.3009889 L4.20421792,28.3009889 C3.92297521,27.7011556 3.44178139,27.2186667 2.84258364,26.9361222 C4.09539207,23.0591667 8.12588197,19.7040333 13.7887596,17.5026778 Z M4.20290676,30.7009778 L11.3087103,30.7009778 C11.5532407,31.2221444 11.9505206,31.6508778 12.4435148,31.9412889 C12.593642,35.2033333 13.0191117,38.3034556 13.715335,41.1590556 C13.6471549,41.2278889 13.5907752,41.3085222 13.5298065,41.3845667 C8.00460015,39.1819 4.07506917,35.8779 2.84192806,32.0638778 C3.44047024,31.7813333 3.92166406,31.2995 4.20290676,30.7009778 Z M3.79120415,38.0078 C6.02868985,40.3271556 9.16890563,42.2912 12.958143,43.7596444 C13.1974288,44.8675333 14.0824583,45.7328667 15.2002178,45.9446111 C16.6700223,49.7743667 18.6498661,52.9498778 20.9876551,55.2082667 C12.8886518,52.5178667 6.48234941,46.1111222 3.79120415,38.0078 Z M28.2999656,54.7952667 C27.7007678,55.0765 27.2182628,55.5583333 26.935709,56.1568556 C23.0894363,54.9119556 19.7558252,50.9242111 17.5498072,45.3244556 C17.5838972,45.2956111 17.6192984,45.2700444 17.6520773,45.2398889 C20.491383,45.9439556 23.5765303,46.3766222 26.8222941,46.5398556 C27.1212374,47.1796778 27.6456993,47.6923222 28.2999656,47.9650333 L28.2999656,54.7952667 L28.2999656,54.7952667 Z M28.2999656,42.7205889 C27.6424214,42.9946111 27.1159928,43.5098778 26.817705,44.1542889 C23.9049746,43.9995778 21.125982,43.5964111 18.5548074,42.9795333 C18.4663044,41.5825444 17.3767348,40.4707222 15.9914997,40.3435444 C15.3870573,37.7947444 14.9930553,35.0446889 14.8403058,32.1609 C15.548985,31.9032667 16.1232708,31.3788222 16.4405702,30.7009778 L26.8249164,30.7009778 C27.1238597,31.3388333 27.6470105,31.8501667 28.2999656,32.1222222 L28.2999656,42.7205889 Z M28.2999656,26.8777778 C27.6463549,27.1498333 27.1225485,27.6618222 26.8236052,28.3009889 L16.4412258,28.3009889 C16.1245819,27.6231444 15.5496405,27.0967333 14.8403058,26.8391 C15.0035446,23.7435667 15.443437,20.8007778 16.1265487,18.0972667 C17.2593864,17.9386222 18.1693279,17.1198333 18.462371,16.0362 C21.1882618,15.3740889 24.154094,14.9591222 27.2634977,14.8208 C27.5257286,15.2043 27.8856406,15.5104444 28.2999656,15.7274333 L28.2999656,26.8777778 Z M28.2999656,10.7137444 C27.6207874,11.0690556 27.1087814,11.6865889 26.8917853,12.4372 C23.794182,12.5938778 20.8349056,13.0304778 18.0841028,13.7043889 C17.9772437,13.5464 17.852684,13.4015222 17.7163239,13.2677889 C19.919064,7.88371111 23.1825283,4.05723333 26.9350534,2.84314444 C27.2176073,3.44232222 27.6994566,3.92415556 28.29931,4.20538889 L28.29931,10.7137444 L28.2999656,10.7137444 Z M55.2874651,21.1914889 C53.0467016,18.8491889 49.8881296,16.8569556 46.1015145,15.3504889 C46.1021701,15.3321333 46.1074147,15.3144333 46.1074147,15.2960778 C46.1074147,13.7955111 44.9411425,12.5801111 43.4667489,12.4758778 C41.9851439,8.88212222 40.0610243,5.86722222 37.8097714,3.71437778 C46.0772581,6.38576667 52.6159872,12.9236222 55.2874651,21.1914889 Z M56.1561052,26.9367778 C55.557563,27.2193222 55.0763692,27.7011556 54.7951265,28.3009889 L48.1272487,28.3009889 C47.8145383,27.6329778 47.2527084,27.1105 46.5571408,26.8489333 C46.3866907,23.5364111 45.9015634,20.3805667 45.1443715,17.4744889 C50.8433059,19.6765 54.8973966,23.0447444 56.1561052,26.9367778 Z M30.6993789,4.20538889 C31.2992322,3.92415556 31.7810816,3.44232222 32.0636355,2.84314444 C35.8161605,4.05723333 39.0756914,7.88371111 41.282365,13.2677889 C41.1466604,13.4008667 41.0227563,13.5457444 40.914586,13.7043889 C38.2280298,13.0475222 35.3461115,12.6174778 32.3304555,12.4509667 C32.093792,11.6131667 31.4932831,10.9294222 30.6993789,10.5983667 L30.6993789,4.20538889 L30.6993789,4.20538889 Z M30.6993789,15.8428111 C31.2067958,15.6317222 31.6394769,15.2764111 31.9475983,14.8293222 C34.9796438,14.9768222 37.8707401,15.3891667 40.5350067,16.0335778 C40.8273942,17.1178667 41.7393024,17.9379667 42.8721402,18.0972667 C43.5677078,20.8578111 44.0115337,23.8720556 44.1669056,27.0397 C43.6562108,27.3294556 43.2445082,27.7667111 42.9940776,28.3016444 L31.9574319,28.3016444 C31.6932342,27.7378667 31.2494083,27.2816 30.6993789,26.9938111 L30.6993789,15.8428111 L30.6993789,15.8428111 Z M30.6993789,32.0068444 C31.2487527,31.7197111 31.6919231,31.2634444 31.9561208,30.7009778 L42.9953887,30.7009778 C43.2458193,31.2346 43.6575219,31.6705444 44.1669056,31.9609556 C44.0226785,34.9162 43.6267098,37.7350889 43.0085003,40.3435444 C41.6219541,40.4700667 40.5310733,41.5838556 40.4438815,42.9815 C37.8091159,43.6114889 34.9566986,44.0159667 31.96661,44.1628111 C31.704379,43.5898556 31.2553085,43.1270333 30.6987233,42.8359667 L30.6987233,32.0068444 L30.6993789,32.0068444 Z M32.0636355,56.1568556 C31.7810816,55.5576778 31.2992322,55.0758444 30.6993789,54.7946111 L30.6993789,47.8496556 C31.2461304,47.5625222 31.6879896,47.1101889 31.9515317,46.551 C35.2805538,46.3982556 38.4424036,45.961 41.3472671,45.2398889 C41.3793904,45.2700444 41.4154472,45.2962667 41.4495372,45.3244556 C39.2435192,50.9242111 35.9105637,54.9119556 32.0636355,56.1568556 Z M37.8143605,55.283 C40.1823061,53.0147778 42.1982066,49.8045222 43.7047235,45.9544444 C44.8657511,45.7735111 45.7933931,44.899 46.0398902,43.7616111 C49.8258498,42.2931667 52.9680323,40.3278111 55.2074847,38.0078 C52.4986388,46.1812667 46.0071113,52.6352111 37.8143605,55.283 Z M45.4701935,41.3852222 C45.3967688,41.2941 45.3253108,41.2029778 45.2407414,41.1216889 C45.940898,38.3250889 46.3945576,35.3115 46.5571408,32.1510667 C47.2520528,31.8901556 47.8132271,31.3683333 48.1259375,30.7009778 L54.7964377,30.7009778 C55.0776804,31.2995 55.5588742,31.7806778 56.1567608,32.0632222 C54.9223085,35.8759333 50.9953998,39.1812444 45.4701935,41.3852222 Z" id="Shape"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/cloud-white.svg b/go.dev/_content/solutions/cloud-white.svg
new file mode 100644
index 0000000..6dfc4f2
--- /dev/null
+++ b/go.dev/_content/solutions/cloud-white.svg
@@ -0,0 +1,13 @@
+<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-862.000000, -1063.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group" transform="translate(644.000000, 67.000000)">
+                    <g id="noun_Network_58995-Copy" transform="translate(113.000000, 9.000000)">
+                        <path d="M40.977677,19.6312556 C40.9667433,19.3693111 40.9485205,19.1096444 40.9275643,18.8504333 C40.9275643,18.8477 40.9275643,18.8449667 40.9275643,18.8422333 C40.9275643,18.8422333 40.9275643,18.8422333 40.9271087,18.8422333 C40.1262153,8.85736667 32.1423381,0.874211111 22.1571386,0.0724333333 C22.1562274,0.0724333333 22.1553163,0.0724333333 22.1548607,0.0724333333 C21.8933631,0.0514777778 21.6309544,0.0332555556 21.3667233,0.0218666667 C21.0801693,0.0082 20.7927042,0 20.5029612,0 C20.5029612,0 20.5029612,0 20.4997722,0 C20.4965832,0 20.4965832,0 20.4965832,0 C20.2068402,0 19.9189195,0.00865555556 19.6328211,0.0223222222 C19.3681345,0.0332555556 19.1052702,0.0519333333 18.843317,0.0733444444 L18.8428614,0.0733444444 C8.59570875,0.899722222 0.453748458,9.28285556 0.0218673956,19.6303444 C0.00865584408,19.9164333 0,20.2043444 0,20.4940778 L0,20.4972667 C0,20.5009111 0,20.5009111 0,20.5009111 C0,20.5041 0,20.5072889 0,20.5104778 C0,20.7997556 0.00911141482,21.0872111 0.0227785371,21.3733 C0.462404302,31.7203333 8.59844217,40.0984556 18.8424059,40.9266556 C18.8446837,40.9266556 18.8474171,40.9271111 18.849695,40.9271111 C19.1098259,40.9480667 19.3713235,40.9667444 19.6346434,40.9776778 C19.9202862,40.9908889 20.2072958,41 20.4965832,41 C20.4965832,41 20.4965832,41 20.4997722,41 C20.5029612,41 20.5029612,41 20.5029612,41 C20.7936153,41 21.0819916,40.9913444 21.3685456,40.9781333 C21.6314099,40.9672 21.8915408,40.9485222 22.1521273,40.9280222 C22.1539496,40.9275667 22.1557719,40.9275667 22.1571386,40.9275667 C32.3979133,40.1043778 40.5371401,31.7235222 40.9772215,21.3737556 C40.9908886,21.0876667 41,20.8002111 41,20.5104778 C41,20.5068333 41,20.5036444 41,20.5009111 C41,20.5009111 41,20.5009111 41,20.4972667 L41,20.4940778 C40.9995444,20.2048 40.9913442,19.9173444 40.977677,19.6312556 Z M14.5850973,2.63311111 C13.041168,4.12277778 11.7277576,6.19236667 10.722313,8.67651111 C9.73235775,8.78265556 8.95834306,9.61085556 8.95834306,10.6294778 C8.95834306,10.6426889 8.96198762,10.6554444 8.96244319,10.6686556 C6.33288887,11.7127889 4.13612676,13.1013222 2.57944154,14.7262889 C4.41949176,9.02956667 8.90823027,4.51865556 14.5850973,2.63311111 Z M9.5820194,12.1628778 C9.06540218,14.2087778 8.75561408,16.4478333 8.64718824,18.8035111 C8.30414347,19.0053222 8.0280676,19.3041667 7.85813972,19.6667889 L2.92157516,19.6667889 C2.72613532,19.2499556 2.39174639,18.9146667 1.97535473,18.7183222 C2.84595042,16.0241667 5.64679934,13.6926333 9.5820194,12.1628778 Z M2.92066402,21.3345778 L7.85859529,21.3345778 C8.02852317,21.6967444 8.30459904,21.9946778 8.64718824,22.1964889 C8.75151394,24.4633333 9.04717935,26.6176556 9.53099548,28.6020556 C9.48361612,28.6498889 9.44443704,28.7059222 9.40206896,28.7587667 C5.56251875,27.2281 2.83182773,24.9321 1.97489916,22.2816778 C2.39083525,22.0853333 2.72522417,21.7505 2.92066402,21.3345778 Z M2.6345656,26.4122 C4.18942854,28.0239556 6.37161239,29.3888 9.00481127,30.4092444 C9.17109459,31.1791333 9.78611509,31.7804667 10.5628632,31.9276111 C11.5842528,34.5889667 12.9600764,36.7956778 14.5846417,38.3650667 C8.95652077,36.4954667 4.50468349,32.0433222 2.6345656,26.4122 Z M19.6660778,38.0780667 C19.2496861,38.2735 18.914386,38.6083333 18.718035,39.0242556 C16.0452015,38.1591556 13.7286243,35.3880111 12.1956287,31.4966556 C12.2193184,31.4766111 12.2439192,31.4588444 12.2666978,31.4378889 C14.2397747,31.9271556 16.3836906,32.2278222 18.6392213,32.3412556 C18.8469616,32.7858778 19.2114182,33.1421222 19.6660778,33.3316333 L19.6660778,38.0780667 L19.6660778,38.0780667 Z M19.6660778,29.6871889 C19.2091403,29.8776111 18.843317,30.2356778 18.6360323,30.6834889 C16.6119315,30.5759778 14.6807671,30.2958111 12.8940187,29.8671333 C12.8325166,28.8963444 12.0753581,28.1237222 11.1127371,28.0353444 C10.6927009,26.2641444 10.4189029,24.3530889 10.3127549,22.3491 C10.8052268,22.1700667 11.2043068,21.8056222 11.424803,21.3345778 L18.6410436,21.3345778 C18.8487838,21.7778333 19.2123293,22.1331667 19.6660778,22.3222222 L19.6660778,29.6871889 Z M19.6660778,18.6777778 C19.2118737,18.8668333 18.8478727,19.2226222 18.6401324,19.6667889 L11.4252586,19.6667889 C11.205218,19.1957444 10.8056824,18.8299333 10.3127549,18.6509 C10.426192,16.4997667 10.73188,14.4547778 11.2065847,12.5760667 C11.9938109,12.4658222 12.6261431,11.8968333 12.8297832,11.1438 C14.7240464,10.6836889 16.7850484,10.3953222 18.9458204,10.2992 C19.1280487,10.5657 19.378157,10.7784444 19.6660778,10.9292333 L19.6660778,18.6777778 Z M19.6660778,7.44514444 C19.1941065,7.69205556 18.8383057,8.12118889 18.6875118,8.6428 C16.5349401,8.75167778 14.4784937,9.05507778 12.5669189,9.52338889 C12.4926609,9.4136 12.4061024,9.31292222 12.3113437,9.21998889 C13.8420614,5.47851111 16.1098926,2.81943333 18.7175795,1.97574444 C18.9139305,2.39212222 19.248775,2.72695556 19.6656222,2.92238889 L19.6656222,7.44514444 L19.6660778,7.44514444 Z M38.4201029,14.7262889 C36.8629621,13.0985889 34.6680223,11.7141556 32.0366457,10.6672889 C32.0371012,10.6545333 32.0407458,10.6422333 32.0407458,10.6294778 C32.0407458,9.58671111 31.2302855,8.74211111 30.2057069,8.66967778 C29.176117,6.17232222 27.8390169,4.07722222 26.2745869,2.58117778 C32.0197895,4.43756667 36.5636521,8.98082222 38.4201029,14.7262889 Z M39.0237341,18.7187778 C38.607798,18.9151222 38.2734091,19.2499556 38.0779693,19.6667889 L33.4443593,19.6667889 C33.227052,19.2025778 32.8366279,18.8395 32.3532673,18.6577333 C32.2348189,16.3558111 31.8976966,14.1627667 31.3715124,12.1432889 C35.3317888,13.6735 38.1490383,16.0141444 39.0237341,18.7187778 Z M21.3334667,2.92238889 C21.7503139,2.72695556 22.0851584,2.39212222 22.2815094,1.97574444 C24.8891963,2.81943333 27.154294,5.47851111 28.6877451,9.21998889 C28.593442,9.31246667 28.5073391,9.41314444 28.43217,9.52338889 C26.5652411,9.06692222 24.5625521,8.76807778 22.4669267,8.65236667 C22.3024656,8.07016667 21.8851628,7.59502222 21.3334667,7.36496667 L21.3334667,2.92238889 L21.3334667,2.92238889 Z M21.3334667,11.0094111 C21.6860784,10.8627222 21.9867551,10.6158111 22.2008734,10.3051222 C24.307888,10.4076222 26.316955,10.6941667 28.1683945,11.1419778 C28.3715791,11.8954667 29.005278,12.4653667 29.7925042,12.5760667 C30.2758648,14.4944111 30.5842861,16.5890556 30.6922564,18.7903 C30.3373668,18.9916556 30.0512684,19.2955111 29.8772404,19.6672444 L22.2077069,19.6672444 C22.0241119,19.2754667 21.7156905,18.9584 21.3334667,18.7584111 L21.3334667,11.0094111 L21.3334667,11.0094111 Z M21.3334667,22.2420444 C21.715235,22.0425111 22.0232008,21.7254444 22.2067958,21.3345778 L29.8781515,21.3345778 C30.0521795,21.7054 30.3382779,22.0083444 30.6922564,22.2101556 C30.5920308,24.2638 30.3168661,26.2226889 29.8872629,28.0353444 C28.9237308,28.1232667 28.1656611,28.8972556 28.1050702,29.8685 C26.2741314,30.3062889 24.2919431,30.5873667 22.2140849,30.6894111 C22.0318566,30.2912556 21.7197907,29.9696333 21.3330111,29.7673667 L21.3330111,22.2420444 L21.3334667,22.2420444 Z M22.2815094,39.0242556 C22.0851584,38.6078778 21.7503139,38.2730444 21.3334667,38.0776111 L21.3334667,33.2514556 C21.7134127,33.0519222 22.0204673,32.7375889 22.2036068,32.349 C24.516995,32.2428556 26.7142127,31.939 28.7328467,31.4378889 C28.7551696,31.4588444 28.780226,31.4770667 28.8039157,31.4966556 C27.2709201,35.3880111 24.9547985,38.1591556 22.2815094,39.0242556 Z M26.2777759,38.417 C27.9232974,36.8407778 29.3241775,34.6099222 30.371079,31.9344444 C31.1778948,31.8087111 31.8225274,31.201 31.993822,30.4106111 C34.624743,29.3901667 36.8082936,28.0244111 38.3645233,26.4122 C36.482105,32.0920667 31.9710435,36.5770111 26.2777759,38.417 Z M31.597931,28.7592222 C31.5469071,28.6959 31.4972499,28.6325778 31.4384813,28.5760889 C31.9250308,26.6326889 32.2402858,24.5385 32.3532673,22.3422667 C32.8361723,22.1609556 33.2261409,21.7983333 33.4434481,21.3345778 L38.0788804,21.3345778 C38.2743203,21.7505 38.6087092,22.0848778 39.0241897,22.2812222 C38.16635,24.9307333 35.4374812,27.2276444 31.597931,28.7592222 Z" id="Shape"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/cloud.md b/go.dev/_content/solutions/cloud.md
new file mode 100644
index 0000000..fe64ba7
--- /dev/null
+++ b/go.dev/_content/solutions/cloud.md
@@ -0,0 +1,227 @@
+---
+title: "Go for Cloud & Network Services"
+linkTitle: "Cloud & Network Services"
+description: "With a strong ecosystem of tools and APIs on major cloud providers, it is easier than ever to build services with Go."
+date: 2019-10-04T15:26:31-04:00
+layout: solution
+series: Use Cases
+icon:
+  file: cloud-green.svg
+  alt: cloud icon
+icon-white:
+  file: cloud-white.svg
+  alt: cloud icon
+---
+
+## Overview {#overview .sectionHeading}
+
+<div class="UseCase-halfColumn">
+    <h3>Go helps enterprises build and scale cloud computing systems</h3>
+    <p>As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “explicitly geared to develop highly reliable concurrent applications.”</p>
+  </div>
+
+{{quote `
+  author: Ruchi Malik
+  title: developer at Choozle
+  link: https://builtin.com/software-engineering-perspectives/golang-advantages
+  quote: |
+    Go makes it very easy to scale as a company. This is very important because, as our engineering team grows, each service can be managed by a different unit.
+`}}
+
+## Key Benefits {#key-benefits .sectionHeading}
+
+### Address tradeoff between development cycle time and server performance
+
+Go was created to address exactly these concurrency needs for scaled applications, microservices, and cloud development. In fact, over 75 percent of projects in the Cloud Native Computing Foundation are written in Go.
+
+Go helps reduce the need to make this tradeoff, with its fast build times that enable iterative development, lower memory and CPU utilization. Servers built with Go experience instant start up times and are cheaper to run in pay-as-you-go and serverless deployments.
+
+### Address challenges with the modern cloud, delivering standard idiomatic APIs
+
+Go addresses many challenges developers face with the modern cloud, delivering standard idiomatic APIs, and built in concurrency to take advantage of multicore processors. Go’s low-latency and “no knob” tuning make Go a great balance between performance and productivity - granting engineering teams the power to choose and the power to move.
+
+## Use Case {#use-case .sectionHeading}
+
+### Use Go for Cloud Computing
+
+Go's strengths shine when it comes to building services. Its speed and built-in support for concurrency results in fast and efficient services, while static typing, robust tooling, and emphasis on simplicity and readability help build reliable and maintainable code.
+
+Go has a strong ecosystem supporting service development. The [standard library](https://golang.org/pkg/) includes packages for common needs like HTTP servers and clients, JSON/XML parsing, SQL databases, and a range of security/encryption functionality, while the Go runtime includes tools for [race detection](https://golang.org/doc/articles/race_detector.html), [benchmarking](https://golang.org/pkg/testing/#hdr-Benchmarks)/profiling, code generation, and static code analysis.
+
+The major Cloud providers ([GCP](https://cloud.google.com/go/home), [AWS](https://aws.amazon.com/sdk-for-go/), [Azure](https://docs.microsoft.com/en-us/azure/go/)) have Go APIs for their services, and popular open source libraries provide support for API tooling ([Swagger](https://github.com/go-swagger/go-swagger)), transport ([protocol buffers](https://github.com/golang/protobuf), [gRPC](https://grpc.io/docs/quickstart/go/)), monitoring ([OpenCensus](https://godoc.org/go.opencensus.io)), Object-Relational Mapping ([gORM](https://gorm.io/)), and authentication ([JWT](https://github.com/dgrijalva/jwt-go)). The open source community has also provided several service frameworks, including [Go Kit](https://gokit.io/), [Go Micro](https://micro.mu/docs/go-micro.html), and [Gizmo](https://github.com/nytimes/gizmo), which can be a great way to get started quickly.
+
+### Go tools for Cloud Computing
+
+{{toolsblurbs `
+  - title: Docker
+    url: https://www.docker.com/
+    iconSrc: /images/logos/docker.svg
+    paragraphs:
+      - Docker is a platform-as-a-service that delivers software in containers. Containers bundle software, libraries, and config files, are hosted by a Docker Engine, and are run by a single operating-system kernel (utilizing less system resources than virtual machines).
+      - Cloud developers use Docker to manage their Go code and support multiple platforms, as Docker supports the development workflow and deployment process.
+  - title: Kubernetes
+    url: https://kubernetes.io/
+    iconSrc: /images/logos/kubernetes.svg
+    paragraphs:
+      - Kubernetes is an open-source container-orchestration system, written in Go, for automating web app deployment. Web apps are often built using containers (as noted above) packaged with their dependencies and configurations. Kubernetes helps deploying and managing those containers at scale. Cloud programmers use Kubernetes to build, deliver, and scale containerized apps quickly—managing the growing complexity via APIs that controls how the containers will run.
+`}}
+
+{{projects `
+  - company: Google
+    url: http://cloud.google.com/go
+    logoSrc: google-cloud.svg
+    desc: Google Cloud uses Go across its ecosystem of products and tools, including Kubernetes, gVisor, Knative, Istio, and Anthos. Go is fully supported on Google Cloud across all APIs and runtimes.
+    ctas:
+      - text: Go on Google Cloud Platform
+        url: http://cloud.google.com/go
+  - company: Capital One
+    url: https://www.capitalone.com/
+    logoSrc: capital-one.svg
+    desc: Capital One uses Go to power the Credit Offers API, a critical service. The engineering team is also building their serverless architecture with Go, citing Go’s speed and simplicity, and mentioning that “[they] didn’t want to go serverless without Go.”
+    ctas:
+      - text: Credit Offers API
+        url: https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f
+  - company: Dropbox
+    url: https://www.dropbox.com/
+    logoSrc: dropbox.svg
+    desc: Dropbox was built on Python, but in 2013 decided to migrate their performance-critical packends to Go. Today, most of the company’s infrastructure is written in Go.
+    ctas:
+      - text: Dropbox libraries
+        url: https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/
+  - company: Mercado Libre
+    url: https://www.mercadolibre.com.ar/
+    logoSrc: mercadoLibre.svg
+    desc: MercadoLibre uses Go to scale its eCommerce platform. Go produces efficient code that readily scales as MercadoLibre’s online commerce grows. Go improves their productivity while streamlining and expanding MercadoLibre services.
+    ctas:
+      - text: MercadoLibre & Go
+        url: http://go.dev/solutions/mercadolibre
+  - company: The New York Times
+    url: https://www.nytimes.com/
+    logoSrc: the-new-york-times-icon.svg
+    desc: The New York Times adopted Go “to build better back-end services”. As the usage of Go expanded with in the company they felt the need to create a toolkit to “to help developers quickly configure and build microservice APIs and pubsub daemons”, which they have open sourced.
+    ctas:
+      - text: NYTimes - Gizmo
+        url: https://open.nytimes.com/introducing-gizmo-aa7ea463b208
+      - text: Gizmo Github
+        url: https://github.com/nytimes/gizmo
+  - company: Twitch
+    url: https://www.twitch.tv/
+    logoSrc: twitch.svg
+    desc: Twitch uses Go to power many of its busiest systems that serve live video and chat to millions of users.
+    ctas:
+      - text: Go’s march to low-latency GC
+        url: https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/
+  - company: Uber
+    url: https://www.uber.com/
+    logoSrc: uber.svg
+    desc: Uber uses Go to power several of its critical services that impact the experience of millions of drivers and passengers around the world. From their real-time analytics engine, AresDB, to their microservice for Geo-querying, Geofence, and their resource scheduler, Peloton.
+    ctas:
+      - text: AresDB
+        url: https://eng.uber.com/aresdb/
+      - text: Geofence
+        url: https://eng.uber.com/go-geofence/
+      - text: Peloton
+        url:  https://eng.uber.com/open-sourcing-peloton/
+`}}
+
+## Get Started {#get-started .sectionHeading}
+
+### Go books for cloud computing
+
+{{books `
+  - title: Building Microservices with Go
+    url: https://www.amazon.com/Building-Microservices-Go-efficient-microservices/dp/1786468662/
+    thumbnail: /images/books/building-microservices-with-go.jpg
+  - title: Hands-On Software Architecture with Golang
+    url: https://www.amazon.com/dp/1788622596/ref=cm_sw_r_tw_dp_U_x_-aZWDbS8PD7R4
+    thumbnail: /images/books/hands-on-software-architecture-with-golang.jpg
+  - title: Building RESTful Web services with Go
+    url: https://www.amazon.com/Building-RESTful-Web-services-gracefully-ebook/dp/B072QB8KL1
+    thumbnail: /images/books/building-restful-web-services-with-go.jpg
+  - title: Mastering Go Web Services
+    url: https://www.amazon.com/Mastering-Web-Services-Nathan-Kozyra-ebook/dp/B00W5GUKL6
+    thumbnail: /images/books/mastering-go-web-services.jpg
+`}}
+
+{{libraries `
+  - title: Web frameworks
+    viewMoreUrl: https://pkg.go.dev/search?q=web+framework
+    items:
+      - text: Buffalo
+        url: https://gobuffalo.io/en/
+        desc: A framework for rapid web development in Go, curating Go and JS libraries together.
+      - text: Echo
+        url: https://echo.labstack.com/
+        desc: A high performance, extensible, and minimalist Go web framework
+      - text: Flamingo
+        url: https://www.flamingo.me/
+        desc: A fast open-source framework based on Go with clean and scalable architecture
+      - text: Gin
+        url: https://gin-gonic.com/
+        desc: A web framework written in Go, with a martini-like API.
+      - text: Gorilla
+        url: http://www.gorillatoolkit.org/
+        desc: A web toolkit for the Go programming language.
+  - title: Routers
+    viewMoreUrl: https://pkg.go.dev/search?q=http%20router
+    items:
+      - text: julienschmidt/httprouter
+        url: https://pkg.go.dev/github.com/julienschmidt/httprouter?tab=overview
+        desc: A lightweight high performance HTTP request router
+      - text: gorilla/mux
+        url: https://pkg.go.dev/github.com/gorilla/mux?tab=overview
+        desc: A powerful HTTP router and URL matcher for building Go web servers with 🦍
+      - text: Chi
+        url: https://pkg.go.dev/github.com/go-chi/chi?tab=overview
+        desc: A lightweight, idiomatic and composable router for building Go HTTP services.
+      - text: net/http
+        url: https://pkg.go.dev/net/http
+        desc: A standard library HTTP package
+  - title: Template Engines
+    viewMoreUrl: https://pkg.go.dev/search?q=templates
+    items:
+      - text: html/template
+        url: https://pkg.go.dev/html/template
+        desc: A standard library HTML template engine
+      - text: flosch/pongo2
+        url: https://pkg.go.dev/github.com/flosch/pongo2?tab=overview
+        desc: A Django-syntax like templating-language
+  - title: Databases & Drivers
+    viewMoreUrl: https://pkg.go.dev/search?q=database%20OR%20sql
+    items:
+      - text: database/sql
+        url: https://pkg.go.dev/database/sql
+        desc: A standard library interface with driver support for MySQL, Postgres, Oracle, MS SQL, BigQuery and most SQL databases
+      - text: mongo-driver/mongo
+        url: https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo?tab=overview
+        desc: The MongoDB supported driver for Go
+      - text: olivere/elastic
+        url: https://pkg.go.dev/github.com/olivere/elastic?tab=overview
+        desc: A Elasticsearch client for Go
+      - text: GORM
+        url: https://gorm.io/
+        desc: An ORM library for Go
+      - text: Bleve
+        url: http://blevesearch.com/
+        desc: Full-text search and indexing for Go
+      - text: CockroachDB
+        url: https://www.cockroachlabs.com/
+        desc: An evolution of the database—architected for the cloud to deliver resilient, consistent, distributed SQL at scale
+  - title: Web Libraries
+    viewMoreUrl: https://pkg.go.dev/search?q=web
+    items:
+      - text: markbates/goth
+        url: https://pkg.go.dev/github.com/markbates/goth?tab=overview
+        desc: Authentication for web apps
+      - text: jinzhu/gorm
+        url: https://pkg.go.dev/github.com/jinzhu/gorm?tab=overview
+        desc: An ORM library for Go
+      - text: dgrijalva/jwt-go
+        url: https://pkg.go.dev/github.com/dgrijalva/jwt-go?tab=overview
+        desc: A Go implementation of json web tokens
+  - title: Other Projects
+    items:
+      - text: gopherjs
+        url: https://pkg.go.dev/github.com/gopherjs/gopherjs?tab=overview
+        desc: A compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.
+`}}
diff --git a/go.dev/_content/solutions/cloudflare.md b/go.dev/_content/solutions/cloudflare.md
new file mode 100644
index 0000000..a754ca1
--- /dev/null
+++ b/go.dev/_content/solutions/cloudflare.md
@@ -0,0 +1,13 @@
+---
+linkTitle: Graceful upgrades in Go
+description: Cloudflare speeds up and protects millions of websites, APIs, SaaS services,
+  and other properties connected to the Internet. “Go is at the heart of CloudFlare’s
+  services including handling compression for high-latency HTTP connections, our
+  entire DNS infrastructure, SSL, load testing and more.”
+layout: solution
+company: Cloudflare
+series: Case Studies
+logoSrc: cloudflare.svg
+link: https://blog.cloudflare.com/graceful-upgrades-in-go/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/cockroachlabs.md b/go.dev/_content/solutions/cockroachlabs.md
new file mode 100644
index 0000000..884e4a9
--- /dev/null
+++ b/go.dev/_content/solutions/cockroachlabs.md
@@ -0,0 +1,12 @@
+---
+linkTitle: Cockroach Labs - Why We Chose to Build Our Database with Go
+description: Go's performance benefits, garbage collection, and low barrier to entry
+  made it a great fit for CockroachDB.
+layout: solution
+company: Cockroach Labs
+logoSrc: cockroach.svg
+series: Case Studies
+link:
+  https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/coredata.md b/go.dev/_content/solutions/coredata.md
new file mode 100644
index 0000000..6f5663e
--- /dev/null
+++ b/go.dev/_content/solutions/coredata.md
@@ -0,0 +1,3 @@
+---
+redirect: /solutions/google/coredata
+---
diff --git a/go.dev/_content/solutions/curve.md b/go.dev/_content/solutions/curve.md
new file mode 100644
index 0000000..d52ca14
--- /dev/null
+++ b/go.dev/_content/solutions/curve.md
@@ -0,0 +1,10 @@
+---
+linkTitle: How Curve is getting ahead with Golang
+description: Curve shares how Go's efficiency, standard library, and thriving community
+  help them move banking to the cloud.
+layout: solution
+company: Curve
+logoSrc: curve.png
+series: Case Studies
+link: https://jaxenter.com/golang-curve-163187.html
+---
diff --git a/go.dev/_content/solutions/devops-green.svg b/go.dev/_content/solutions/devops-green.svg
new file mode 100644
index 0000000..d84348e
--- /dev/null
+++ b/go.dev/_content/solutions/devops-green.svg
@@ -0,0 +1,14 @@
+<svg width="61px" height="61px" viewBox="0 0 61 61" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-842.000000, -643.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="noun_operations_1361408-copy" transform="translate(842.000000, 643.000000)">
+                <path d="M30.5,22 C25.8323699,22 22,25.783237 22,30.5 C22,35.1676301 25.8323699,39 30.5,39 C35.1676301,39 39,35.216763 39,30.5 C39,25.8323699 35.1676301,22 30.5,22 Z M30.5,37.0346821 C26.9132948,37.0346821 23.9653179,34.0867052 23.9653179,30.5 C23.9653179,26.9132948 26.9132948,23.9653179 30.5,23.9653179 C34.0867052,23.9653179 37.0346821,26.9132948 37.0346821,30.5 C37.0346821,34.0867052 34.0867052,37.0346821 30.5,37.0346821 Z" id="Shape"></path>
+                <path d="M51.8862378,37.8050315 C51.6435452,36.7477932 51.0125442,35.8827801 50.1388507,35.4022172 L47.9546168,34.1527538 C48.1487709,33.0474592 48.2458479,31.9421646 48.2458479,30.8849263 C48.2458479,29.2990688 48.1002323,27.9054365 47.7119241,26.5118042 L49.896158,25.2142845 C51.8376993,24.1089899 52.4687002,22.0425696 51.449391,20.264487 L49.6534654,17.1888847 C48.9253874,15.9874775 47.5663085,15.1705207 46.1586911,15.1705207 C45.5276902,15.1705207 44.8966893,15.3146895 44.3142269,15.6510835 L41.8387618,17.0927721 C39.945759,15.4588584 37.7615251,14.2574512 35.3345985,13.5366069 L35.3345985,10.7973986 C35.3345985,8.58680946 33.829904,7.00095201 31.7912857,7.00095201 L28.1994344,7.00095201 C26.0152004,6.95289573 24.1707362,8.73097832 24.1707362,10.7973986 L24.1707362,13.6807758 C21.8408867,14.4496764 19.6566528,15.6991398 17.7636501,17.4291661 L15.4338005,16.0835901 C14.7542611,15.6991398 14.0261831,15.5069147 13.2981051,15.5069147 C12.0361033,15.5069147 10.9682556,16.1316464 10.3372547,17.236941 L8.54132905,20.3125433 C8.05594373,21.1775565 7.8617896,22.2347948 8.10448226,23.2439768 C8.34717492,24.3012151 8.97817583,25.1662282 9.90040793,25.6948474 L12.1817189,26.9443108 C11.8904877,28.2418306 11.7448721,29.5393503 11.7448721,30.8849263 C11.7448721,32.1343897 11.8904877,33.4319095 12.1331804,34.6333166 L10.0945621,35.7866675 C8.15302079,36.8919621 7.52201988,38.9583824 8.54132905,40.736465 L10.3372547,43.8120673 C11.0653327,45.0134745 12.4244116,45.8304313 13.832029,45.8304313 C14.4630299,45.8304313 15.0940308,45.6862625 15.6764932,45.3498685 L17.666573,44.1965176 C19.6566528,46.0226565 22.0835794,47.3682325 24.6561216,48.1371331 L24.6561216,50.2035534 C24.6561216,52.4141426 26.160816,54 28.1994344,54 L31.7912857,54 C33.9755196,54 35.8199838,52.2699737 35.8199838,50.1554971 L35.7714453,47.9449079 C38.3439875,47.0798948 40.7223755,45.6862625 42.6639168,43.8120673 L44.5569195,44.9173619 C45.236459,45.3018122 45.964537,45.4940373 46.6926149,45.4940373 C47.9546168,45.4940373 49.0224644,44.8693056 49.6534654,43.764011 L51.449391,40.6884087 C51.9833149,39.8714518 52.1289305,38.7661572 51.8862378,37.8050315 Z M49.799081,39.7753393 L48.0031553,42.8509416 C47.6633856,43.4756733 47.0809232,43.6198422 46.6926149,43.6198422 C46.3043067,43.6198422 45.9159984,43.5237296 45.5276902,43.2834482 L42.3241471,41.4573093 L41.7902232,41.9859284 C39.8001434,44.0523487 37.2761398,45.5901499 34.5094435,46.3590505 L33.7813655,46.5512756 L33.8784426,50.2035534 C33.8784426,51.2127354 32.9076719,52.0777485 31.7912857,52.0777485 L28.1994344,52.0777485 C27.0345096,52.0777485 26.5976628,51.0685665 26.5976628,50.2035534 L26.5976628,46.6954445 L25.8695848,46.5032193 C23.1028885,45.782375 20.5303464,44.3406865 18.491728,42.3223224 L17.9578042,41.7937033 L14.7057226,43.6678984 C14.4630299,43.8120673 14.1717987,43.9081799 13.832029,43.9081799 C13.103951,43.9081799 12.375873,43.4756733 11.9875648,42.8509416 L10.1916391,39.7753393 C9.60917674,38.7661572 10.2887162,37.9011441 11.0653327,37.4686375 L14.3659528,35.5944424 L14.1717987,34.8735981 C13.832029,33.5760783 13.6864134,32.2305023 13.6864134,30.8849263 C13.6864134,29.491294 13.8805675,28.0976617 14.2203372,26.7040294 L14.4144914,25.9831851 L10.82264,24.0128774 C10.3857932,23.7725959 10.0945621,23.3400893 9.997485,22.8114702 C9.8518694,22.2828511 9.94894646,21.7061756 10.2401777,21.273669 L12.0361033,18.1980667 C12.375873,17.573335 12.9583354,17.4291661 13.3466437,17.4291661 C13.7349519,17.4291661 14.1232602,17.5252787 14.5115684,17.7655601 L18.1034198,19.8319805 L18.6373436,19.3033613 C20.675962,17.3330536 22.9087344,16.0355338 25.4812766,15.3146895 L26.1122775,15.1224644 L26.1122775,10.7973986 C26.1122775,9.78821662 27.0830481,8.92320346 28.1994344,8.92320346 L31.7912857,8.92320346 C32.9562105,8.92320346 33.3930573,9.93238548 33.3930573,10.8454549 L33.4415958,15.0744081 L34.1696738,15.2666333 C36.7907545,15.9394213 39.1691425,17.236941 41.1106838,19.0150236 L41.6446076,19.4955864 L45.333536,17.3330536 C45.5762287,17.1888847 45.8674599,17.0927721 46.2072296,17.0927721 C46.9353076,17.0927721 47.6633856,17.5252787 48.0516938,18.1500104 L49.8476195,21.2256128 C50.4300819,22.2347948 49.7505424,23.0998079 48.9739259,23.5323145 L45.4791516,25.5506785 L45.7218443,26.2715228 C46.1586911,27.7132114 46.3528452,29.1549 46.3528452,30.83687 C46.3528452,32.0382772 46.2072296,33.2396843 45.964537,34.3930352 L45.8189214,35.0658232 L49.2166186,36.9880747 C49.6534654,37.2283561 49.9446966,37.6608627 50.0417736,38.1894818 C50.1388507,38.7661572 50.0417736,39.2947764 49.799081,39.7753393 Z" id="Shape"></path>
+                <path d="M12.9892329,7.00604685 C13.1829183,7.00604685 13.3766038,6.95967585 13.5702892,6.82056284 C22.3829766,0.792332397 34.5367378,0.189509353 44.0757456,5.15120672 L40.9767786,6.40322381 L51,9 L45.7220718,0.42136437 L45.2862796,3.71370561 C35.0209514,-1.75807279 21.9471844,-1.15524975 12.4081766,5.33669073 C11.9723843,5.61491675 11.8755416,6.2177398 12.1660698,6.63507883 C12.3597552,6.86693384 12.6987047,7.00604685 12.9892329,7.00604685 Z" id="Path"></path>
+                <path d="M5.17093534,15.9279503 L6.41653468,19.0285714 L9,9 L0.419204489,14.2807453 L3.69466944,14.7167702 C-1.74906104,24.9875776 -1.14932802,38.068323 5.30933526,47.6124224 C5.4938685,47.8546584 5.77066836,48 6.04746821,48 C6.23200145,48 6.41653468,47.9515528 6.60106792,47.8062112 C7.0162677,47.515528 7.10853432,46.8857143 6.83173447,46.4496894 C0.834404272,37.6322981 0.188537943,25.5204969 5.17093534,15.9279503 Z" id="Path"></path>
+                <path d="M46.4781322,54.1804124 C37.6654447,60.2113402 25.5116835,60.814433 15.9242544,55.8505155 L19.0232214,54.5979381 L9,52 L14.2779282,60.5824742 L14.7137204,57.2886598 C19.3621709,59.7938144 24.5916777,61 29.8211845,61 C36.1159612,61 42.3623166,59.1907216 47.5918234,55.6649485 C48.0276157,55.3865979 48.1244584,54.7835052 47.8339302,54.3659794 C47.4949807,53.9948454 46.9139244,53.9020619 46.4781322,54.1804124 Z" id="Path"></path>
+                <path d="M55.693745,12.408684 C55.4167141,11.97235 54.8164805,11.8753869 54.4009342,12.1662762 C53.9853879,12.4571655 53.8930443,13.0874257 54.1700752,13.5237597 C60.1724107,22.3474023 60.7726443,34.5162721 55.8322604,44.067138 L54.5856215,40.9643186 L52,51 L60.5417852,45.7155107 L57.2635866,45.2791768 C62.7580322,35.0495691 62.1577987,21.9595499 55.693745,12.408684 Z" id="Path"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/devops-white.svg b/go.dev/_content/solutions/devops-white.svg
new file mode 100644
index 0000000..c98d873
--- /dev/null
+++ b/go.dev/_content/solutions/devops-white.svg
@@ -0,0 +1,18 @@
+<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-1183.000000, -1062.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group-4" transform="translate(964.000000, 65.000000)">
+                    <g id="noun_operations_1361408-copy" transform="translate(114.000000, 10.000000)">
+                        <path d="M20.5,15 C17.4797688,15 15,17.4479769 15,20.5 C15,23.5202312 17.4797688,26 20.5,26 C23.5202312,26 26,23.5520231 26,20.5 C26,17.4797688 23.5202312,15 20.5,15 Z M20.5,24.7283237 C18.1791908,24.7283237 16.2716763,22.8208092 16.2716763,20.5 C16.2716763,18.1791908 18.1791908,16.2716763 20.5,16.2716763 C22.8208092,16.2716763 24.7283237,18.1791908 24.7283237,20.5 C24.7283237,22.8208092 22.8208092,24.7283237 20.5,24.7283237 Z" id="Shape"></path>
+                        <path d="M34.9224349,25.9736385 C34.7569626,25.2538167 34.3267347,24.6648715 33.7310346,24.3376798 L32.2417841,23.4869813 C32.374162,22.7344403 32.4403509,21.9818993 32.4403509,21.2620775 C32.4403509,20.1823447 32.3410675,19.2334887 32.0763119,18.2846327 L33.5655623,17.401215 C34.8893404,16.648674 35.3195683,15.2417495 34.6245848,14.0311401 L33.40009,11.937113 C32.9036732,11.1191336 31.9770285,10.5629077 31.0172894,10.5629077 C30.5870615,10.5629077 30.1568336,10.6610652 29.7597001,10.8900994 L28.071883,11.8716746 C26.7811993,10.7592227 25.2919489,9.9412434 23.6372263,9.45045579 L23.6372263,7.5854629 C23.6372263,6.08038091 22.6112982,5.00064818 21.2213312,5.00064818 L18.7723416,5.00064818 C17.2830912,4.967929 16.025502,6.17853843 16.025502,7.5854629 L16.025502,9.54861331 C14.4369682,10.0721201 12.9477178,10.9228186 11.6570341,12.1007089 L10.0685004,11.184572 C9.60517802,10.9228186 9.10876122,10.7919419 8.61234442,10.7919419 C7.75188863,10.7919419 7.02381066,11.2172912 6.59358276,11.9698322 L5.36908799,14.0638593 C5.03814345,14.6528044 4.90576564,15.3726262 5.0712379,16.0597289 C5.23671017,16.7795507 5.66693807,17.3684958 6.29573268,17.7284067 L7.85117199,18.5791052 C7.65260527,19.4625229 7.55332191,20.3459406 7.55332191,21.2620775 C7.55332191,22.112776 7.65260527,22.9961937 7.81807754,23.814173 L6.42811049,24.5994332 C5.10433236,25.3519742 4.67410446,26.7588987 5.36908799,27.9695081 L6.59358276,30.0635352 C7.08999956,30.8815145 8.01664426,31.4377405 8.97638341,31.4377405 C9.4066113,31.4377405 9.83683919,31.339583 10.2339726,31.1105487 L11.5908452,30.3252886 C12.9477178,31.5686172 14.6024405,32.484754 16.3564465,33.0082608 L16.3564465,34.4151853 C16.3564465,35.9202673 17.3823746,37 18.7723416,37 L21.2213312,37 C22.7105816,37 23.9681708,35.8221097 23.9681708,34.3824661 L23.9350763,32.8773841 C25.6890824,32.288439 27.3107106,31.339583 28.6344887,30.0635352 L29.9251724,30.8160762 C30.3884948,31.0778296 30.8849116,31.2087063 31.3813284,31.2087063 C32.2417841,31.2087063 32.9698621,30.783357 33.40009,30.030816 L34.6245848,27.9367889 C34.9886238,27.3805629 35.0879071,26.628022 34.9224349,25.9736385 Z M33.4993734,27.3151246 L32.2748786,29.4091517 C32.0432174,29.834501 31.646084,29.9326585 31.3813284,29.9326585 C31.1165727,29.9326585 30.8518171,29.8672201 30.5870615,29.7036243 L28.4028276,28.4602957 L28.0387886,28.8202066 C26.681916,30.2271311 24.9610044,31.2741446 23.0746206,31.7976514 L22.5782038,31.9285281 L22.6443927,34.4151853 C22.6443927,35.1022879 21.9825036,35.6912331 21.2213312,35.6912331 L18.7723416,35.6912331 C17.9780747,35.6912331 17.6802247,35.0041304 17.6802247,34.4151853 L17.6802247,32.0266856 L17.1838079,31.8958089 C15.297424,31.4050213 13.543418,30.4234461 12.1534509,29.0492408 L11.7894119,28.6893299 L9.57208357,29.9653777 C9.4066113,30.0635352 9.20804458,30.1289735 8.97638341,30.1289735 C8.47996661,30.1289735 7.9835498,29.834501 7.71879418,29.4091517 L6.4942994,27.3151246 C6.09716596,26.628022 6.56048831,26.0390768 7.08999956,25.7446043 L9.34042239,24.4685565 L9.20804458,23.9777689 C8.97638341,23.0943512 8.87710005,22.1782143 8.87710005,21.2620775 C8.87710005,20.3132214 9.00947786,19.3643654 9.24113903,18.4155094 L9.37351685,17.9247218 L6.9245273,16.5832356 C6.62667721,16.4196398 6.42811049,16.1251672 6.36192159,15.7652563 C6.26263823,15.4053454 6.32882713,15.0127153 6.52739385,14.7182427 L7.75188863,12.6242156 C7.9835498,12.1988664 8.38068325,12.1007089 8.64543887,12.1007089 C8.9101945,12.1007089 9.17495013,12.1661472 9.43970575,12.3297431 L11.8886953,13.7366675 L12.2527343,13.3767566 C13.6427013,12.0352705 15.1650462,11.1518528 16.9190522,10.6610652 L17.3492801,10.5301885 L17.3492801,7.5854629 C17.3492801,6.89836025 18.0111692,6.30941512 18.7723416,6.30941512 L21.2213312,6.30941512 C22.015598,6.30941512 22.3134481,6.99651777 22.3134481,7.61818207 L22.3465426,10.4974694 L22.8429594,10.628346 C24.6300599,11.0864145 26.2516881,11.9698322 27.5754662,13.1804416 L27.9395052,13.5076333 L30.4546837,12.0352705 C30.6201559,11.937113 30.8187227,11.8716746 31.0503838,11.8716746 C31.5468006,11.8716746 32.0432174,12.1661472 32.3079731,12.5914965 L33.5324678,14.6855236 C33.9296013,15.3726262 33.4662789,15.9615713 32.9367677,16.2560439 L30.553967,17.6302492 L30.7194393,18.1210368 C31.0172894,19.102612 31.1496672,20.0841872 31.1496672,21.2293583 C31.1496672,22.0473376 31.0503838,22.865317 30.8849116,23.6505772 L30.7856282,24.1086456 L33.1022399,25.4174125 C33.40009,25.5810084 33.5986567,25.875481 33.6648456,26.2353919 C33.7310346,26.628022 33.6648456,26.9879329 33.4993734,27.3151246 Z" id="Shape"></path>
+                        <path d="M8.65948859,4.6706979 C8.78861222,4.6706979 8.91773584,4.6397839 9.04685947,4.54704189 C14.9219844,0.528221598 23.0244919,0.126339569 29.3838304,3.43413781 L27.3178524,4.26881587 L34,6 L30.4813812,0.28090958 L30.1908531,2.47580374 C23.3473009,-1.17204853 14.6314563,-0.770166497 8.27211772,3.55779382 C7.98158956,3.74327783 7.91702775,4.14515986 8.11071319,4.42338588 C8.23983681,4.5779559 8.46580316,4.6706979 8.65948859,4.6706979 Z" id="Path"></path>
+                        <path d="M3.44729022,10.6186335 L4.27768979,12.6857143 L6,6 L0.279469659,9.52049689 L2.46311296,9.81118012 C-1.1660407,16.6583851 -0.766218683,25.378882 3.53955684,31.7416149 C3.662579,31.9031056 3.84711224,32 4.03164547,32 C4.15466763,32 4.27768979,31.9677019 4.40071195,31.8708075 C4.6775118,31.6770186 4.73902288,31.2571429 4.55448965,30.9664596 C0.556269514,25.0881988 0.125691962,17.0136646 3.44729022,10.6186335 Z" id="Path"></path>
+                        <path d="M30.9854214,36.4536082 C25.1102965,40.4742268 17.007789,40.8762887 10.6161696,37.5670103 L12.6821476,36.7319588 L6,35 L9.51861878,40.7216495 L9.80914694,38.5257732 C12.9081139,40.1958763 16.3944518,41 19.8807897,41 C24.0773075,41 28.2415444,39.7938144 31.7278823,37.443299 C32.0184104,37.257732 32.0829722,36.8556701 31.8892868,36.5773196 C31.6633205,36.3298969 31.2759496,36.2680412 30.9854214,36.4536082 Z" id="Path"></path>
+                        <path d="M37.4624966,8.27245599 C37.2778094,7.98156668 36.8776537,7.91692461 36.6006228,8.11085082 C36.3235919,8.30477703 36.2620295,8.72495049 36.4467168,9.0158398 C40.4482738,14.8982682 40.8484295,23.010848 37.5548403,29.378092 L36.7237477,27.3095457 L35,34 L40.6945235,30.4770072 L38.5090577,30.1861178 C42.1720215,23.3663794 41.7718658,14.6396999 37.4624966,8.27245599 Z" id="Path"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/devops.md b/go.dev/_content/solutions/devops.md
new file mode 100644
index 0000000..4453e80
--- /dev/null
+++ b/go.dev/_content/solutions/devops.md
@@ -0,0 +1,169 @@
+---
+title: "Development Operations & Site reliability Engineering"
+linkTitle: "Development Operations & Site reliability Engineering"
+description: "With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE."
+date: 2019-10-03T17:16:43-04:00
+layout: solution
+series: Use Cases
+books:
+icon:
+  file: devops-green.svg
+  alt: ops icon
+icon-white:
+  file: devops-white.svg
+  alt: ops icon
+---
+
+## Overview {#overview .sectionHeading}
+
+### Go helps enterprises automate and scale
+
+Development Operations (DevOps) teams help engineering organizations automate tasks and improve their continuous
+integration and continuous delivery and deployment (CI/CD) process. DevOps can topple developmental silos and implement
+tooling and automation to enhance software development, deployment, and support.
+
+Site Reliability Engineering (SRE) was born at Google to make the company’s “large-scale sites more reliable, efficient,
+and scalable,”[ writes Silvia Fressard](https://opensource.com/article/18/10/what-site-reliability-engineer), an
+independent DevOps consultant. “And the practices they developed responded so well to Google’s needs that other big tech
+companies, such as Amazon and Netflix, also adopted them.” SRE requires a mix of development and operations skills, and
+“[empowers software developers](https://stackify.com/site-reliability-engineering/) to own the ongoing daily operation
+of their applications in production.”
+
+Go serves both siblings, DevOps and SRE, from its fast build times and lean syntax to its security and reliability support. Go's concurrency and networking features also make it ideal for tools that manage cloud deployment—readily supporting automation while
+scaling for speed and code maintainability as development infrastructure grows over time.
+
+DevOps/SRE teams write software ranging from small scripts, to command-line interfaces (CLI), to complex automation and services, and Go’s feature set has benefits for every situation.
+
+## Key Benefits {#key-benefits .sectionHeading}
+
+### Easily build small scripts with Go’s robust standard library and static typing
+Go’s fast build and startup times. Go’s extensive standard library—including packages for
+common needs like HTTP, file I/O, time, regular expressions, exec, and JSON/CSV formats—lets DevOps/SREs get right into their business logic. Plus, Go’s static type system and explicit error handling make even small scripts more robust.
+
+### Quickly deploy CLIs with Go’s fast build times
+Every site reliability engineer has written “one-time use” scripts that turned into CLIs used by dozens of other engineers every day. And small deployment automation scripts turn into rollout management services. With Go, DevOps/SREs are in a great position to be successful when software scope inevitably creeps. Starting with Go puts you in a great position to be successful when that happens.
+
+### Scale and maintain larger applications with Go’s low memory footprint and doc generator
+Go’s garbage collector means DevOps/SRE teams don’t have to worry about memory management. And Go’s automatic documentation generator (godoc) makes code self-documenting–lowering maintenance overhead and establishing best practices from the get-go.
+
+{{projects `
+  - company: Docker
+    url: https://docker.com/
+    logoSrc: docker.svg
+    desc: Docker is a software-as-a-service (SaaS) product, written in Go, that DevOps/SRE teams leverage to “drive secure automation and deployment at massive scale,” supporting their CI/CD efforts.
+    ctas:
+      - text: Docker CI/CD
+        url: https://www.docker.com/solutions/cicd
+  - company: Drone
+    url: https://github.com/drone
+    logoSrc: drone.svg
+    desc: Drone is a Continuous Delivery system built on container technology, written in Go, that uses a simple YAML configuration file, a superset of docker-compose, to define and execute Pipelines inside Docker containers.
+    ctas:
+      - text: Drone
+        url: https://github.com/drone
+  - company: etcd
+    url: https://github.com/etcd-io/etcd
+    logoSrc: etcd.svg
+    desc: etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines, and it's written in Go.
+    ctas:
+      - text: etcd
+        url: https://github.com/etcd-io/etcd
+  - company: IBM
+    url: https://ibm.com/
+    logoSrc: ibm.svg
+    desc: IBM’s DevOps teams use Go through Docker and Kubernetes, plus other DevOps and CI/CD tools written in Go. The company also supports connection to it’s messaging middleware through a Go-specific API.
+    ctas:
+      - text: IBM Applications in Golang
+        url: https://developer.ibm.com/messaging/2019/02/05/simplified-ibm-mq-applications-golang/
+  - company: Netflix
+    url: http://netflix.com/
+    logoSrc: netflix.svg
+    desc: Netflix uses Go to handle large scale data caching, with a service called Rend, which manages globally replicated storage for personalization data.
+    ctas:
+      - text: Application Data Caching
+        url: https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef
+      - text: Rend
+        url: https://github.com/netflix/rend
+  - company: Microsoft
+    url: https://microsoft.com/
+    logoSrc: microsoft.svg
+    desc: Microsoft uses Go in Azure Red Hat OpenShift services. This Microsoft solution provides DevOps teams with OpenShift clusters to maintain regulatory compliance and focus on application development.
+    ctas:
+      - text: OpenShift
+        url: https://azure.microsoft.com/en-us/services/openshift/
+  - company: Terraform
+    url: https://terraform.io/
+    logoSrc: terraform-icon.svg
+    desc: Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. It supports a number of cloud providers such as AWS, IBM Cloud, GCP, and Microsoft Azure - and it’s written in Go.
+    ctas:
+      - text: Terraform
+        url: https://www.terraform.io/intro/index.html
+  - company: Prometheus
+    url: https://github.com/prometheus/prometheus
+    logoSrc: prometheus.svg
+    desc: Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Most Prometheus components are written in Go, making them easy to build and deploy as static binaries.
+    ctas:
+      - text: Prometheus
+        url: https://github.com/prometheus/prometheus
+  - company: YouTube
+    url: https://youtube.com/
+    logoSrc: youtube.svg
+    desc: YouTube uses Go with Vitess (now part of PlanetScale), its database clustering system for horizontal scaling of MySQL through generalized sharding. Since 2011 it’s been a core component of YouTube’s database infrastructure, and has grown to encompass tens of thousands of MySQL nodes.
+    ctas:
+      - text: Vitess
+        url: https://github.com/vitessio/vitess
+`}}
+
+## Get Started {#get-started .sectionHeading}
+
+### Go books on DevOps & SRE
+
+{{books `
+  - title: Go Programming for Network Operations
+    url: https://www.amazon.com/Go-Programming-Network-Operations-Automation-ebook/dp/B07JKKN34L/ref=sr_1_16
+    thumbnail: /images/books/go-programming-for-network-operations.jpg
+  - title: Go Programming Blueprints
+    url: https://github.com/matryer/goblueprints
+    thumbnail: /images/learn/go-programming-blueprints.png
+  - title: Go in Action
+    url: https://www.amazon.com/Go-Action-William-Kennedy/dp/1617291781
+    thumbnail: /images/books/go-in-action.jpg
+  - title: The Go Programming Language
+    url: https://www.gopl.io/
+    thumbnail: /images/learn/go-programming-language-book.png
+`}}
+
+{{libraries `
+  - title: Monitoring and tracing
+    viewMoreUrl: https://pkg.go.dev/search?q=tracing
+    items:
+      - text: opentracing/opentracing-go
+        url: https://pkg.go.dev/github.com/opentracing/opentracing-go?tab=overview
+        desc: Vendor-neutral APIs and instrumentation for distributed tracing
+      - text: jaegertracing/jaeger-client-go
+        url: https://pkg.go.dev/github.com/jaegertracing/jaeger-client-go?tab=overview
+        desc: An open source distributed tracing system developed by Uber formats
+      - text: grafana/grafana
+        url: https://pkg.go.dev/github.com/grafana/grafana?tab=overview
+        desc: An open-source platform for monitoring and observability
+      - text: istio/istio
+        url: https://pkg.go.dev/github.com/istio/istio?tab=overview
+        desc: An open-source service mesh and integratable platform
+  - title: CLI Libraries
+    viewMoreUrl: https://pkg.go.dev/search?q=command%20line%20OR%20CLI
+    items:
+      - text: spf13/cobra
+        url: https://pkg.go.dev/github.com/spf13/cobra?tab=overview
+        desc: A library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go
+      - text: spf13/viper
+        url: https://pkg.go.dev/github.com/spf13/viper?tab=overview
+        desc: A complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats
+      - text: urfave/cli
+        url: https://pkg.go.dev/github.com/urfave/cli?tab=overview
+        desc: A minimal framework for creating and organizing command line Go applications
+  - title: Other projects
+    items:
+      - text: golang-migrate/migrate
+        url: https://pkg.go.dev/github.com/golang-migrate/migrate?tab=overview
+        desc: A database migration tool written in Go
+`}}
diff --git a/go.dev/_content/solutions/dropbox.md b/go.dev/_content/solutions/dropbox.md
new file mode 100644
index 0000000..1503ff2
--- /dev/null
+++ b/go.dev/_content/solutions/dropbox.md
@@ -0,0 +1,10 @@
+---
+title: "Dropbox - Open sourcing our Go libraries"
+description: "About a year ago, we decided to migrate our performance-critical backends from Python to Go to leverage better concurrency support and faster execution speed. ... At this point, we have successfully moved major parts of our infrastructure to Go."
+layout: solution
+company: Dropbox
+logoSrc: dropbox.png
+series: Case Studies
+link: https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/facebook.md b/go.dev/_content/solutions/facebook.md
new file mode 100644
index 0000000..59eb318
--- /dev/null
+++ b/go.dev/_content/solutions/facebook.md
@@ -0,0 +1,12 @@
+---
+linkTitle: How Facebook built an entity framework in Go
+description: 
+  Learn about a Facebook engineering team's decision to write a new entity
+  framework (ORM) in Go.
+layout: solution
+company: Facebook
+series: Case Studies
+logoSrc: facebook.png
+link: https://entgo.io/blog/2019/10/03/introducing-ent/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/firebase.md b/go.dev/_content/solutions/firebase.md
new file mode 100644
index 0000000..968708b
--- /dev/null
+++ b/go.dev/_content/solutions/firebase.md
@@ -0,0 +1,3 @@
+---
+redirect: /solutions/google/firebase
+---
diff --git a/go.dev/_content/solutions/google/chrome.md b/go.dev/_content/solutions/google/chrome.md
new file mode 100644
index 0000000..6a77f2c
--- /dev/null
+++ b/go.dev/_content/solutions/google/chrome.md
@@ -0,0 +1,62 @@
+---
+title: "Chrome Content Optimization Service Runs on Go"
+layout: solution
+company: Chrome
+logoSrc: chrome.svg
+heroImgSrc: go_chrome_case_study.png
+series: Case Studies
+quote: |
+  Google Chrome is a more simple, secure, and faster web browser than ever,
+  with Google's smarts built-in.
+
+  In this case study, the Chrome Optimization Guide
+  team shared how they experimented with Go, ramped up quickly, and their plans to
+  use Go going forward.
+---
+
+When the product Chrome comes to mind, you probably think solely of the
+user-installed browser. But behind the scenes, Chrome has an extensive fleet of
+backends. Among these is the Chrome Optimization Guide service. This service
+forms an important basis for Chrome's user experience strategy, operating in the
+critical path for users, and is implemented in Go.
+
+The Chrome Optimization Guide service is designed to bring the power of Google
+to Chrome by providing hints to the installed browser about what optimizations
+may be performed on a page load, as well as when they can be applied most
+effectively. It comprises a conjunction of real-time servers and batch logs
+analysis.
+
+All Lite mode users of Chrome receive data via the service through the following
+mechanisms: a data blob push that provides hints for well-known sites in their
+geography, a check-in to Google servers to retrieve hints for hosts that the
+specific user visits often, and on demand for page loads for which a hint is not
+already on the device. Were the Chrome Optimization Guide service to suddenly
+disappear, users might notice a dramatic change in the speed of their page loads
+and the amount of data consumed while browsing the web.
+
+{{backgroundquote `
+  author: Sophie Chang
+  title: Software Engineer
+  quote: |
+    Given that Go was a success for us, we plan to continue to use
+    it where appropriate
+`}}
+
+When the Chrome engineering team started building the service, only a few
+members had comfort with Go. Most of the team was more familiar with C++, but
+they found the complex boilerplate required to stand up a C++ server to be too
+much. The team shared that “[they] were pretty motivated to learn Go due to its
+simplicity, fast ramp-up, and ecosystem.” and that “[their] sense of adventure
+was rewarded.” Millions of users rely on this service to make their Chrome
+experience better, and choosing Go was no small decision. After their experience
+so far, the team also shared that “given that Go was a success for us, we plan
+to continue to use it where appropriate.”
+
+In addition to the Chrome Optimization Guide team, engineering teams across
+Google have adopted Go in their development process. Read about how the [Core
+Data Solutions](/solutions/google/coredata/) and [Firebase
+Hosting](/solutions/google/firebase/) teams use Go to build fast, reliable,
+and efficient software at scale.
+
+*Editorial note: The Go team would like to thank Sophie Chang for her
+contributions to this story.*
diff --git a/go.dev/_content/solutions/google/coredata.md b/go.dev/_content/solutions/google/coredata.md
new file mode 100644
index 0000000..4c1f7d6
--- /dev/null
+++ b/go.dev/_content/solutions/google/coredata.md
@@ -0,0 +1,85 @@
+---
+title: "How Google's Core Data Solutions Team Uses Go"
+layout: solution
+company: Core Data
+logoSrc: google.svg
+heroImgSrc: go_core_data_case_study.png
+series: Case Studies
+quote: |
+  Google is a technology company whose mission is to organize the world’s
+  information and make it universally accessible and useful.
+
+  In this case study, Google’s Core Data Solutions team shares their journey
+  with Go, including their decision to rewrite web indexing services in Go,
+  taking advantage of Go’s built-in concurrency, and observing how Go helps to
+  improve the development process.
+authors:
+  - Prasanna Meda, Software Engineer, Core Data Solutions
+---
+
+Google's mission is “to organize the world's information and make it universally
+accessible and useful.”  One of the teams responsible for organizing that
+information is Google’s Core Data Solutions team. The team, among other things,
+maintains services to index web pages across the globe. These web indexing
+services help support products like Google Search by keeping search results
+updated and comprehensive, and they’re written in Go.
+
+In 2015, to keep up with Google’s scale, our team needed to rewrite our indexing
+stack from a single monolithic binary written in C++ to multiple components in a
+microservices architecture. We decided to rewrite many indexing services in Go,
+which we now use to power the majority of our architecture.
+
+{{backgroundquote `
+  author: Minjae Hwang
+  title: Software Engineer
+  quote: |
+    Go’s built-in concurrency is a natural fit because engineers on the team are
+    encouraged to use concurrency and parallel algorithms.
+`}}
+
+When choosing a language, our team found that several of Go’s features made it
+particularly suitable. For instance, Go’s built-in concurrency is a natural fit
+because engineers on the team are encouraged to use concurrency and parallel
+algorithms. Engineers have also found that “Go code is more natural,” allowing
+them to spend their time focusing on business logic and analysis rather than on
+managing memory and optimizing performance.
+
+Writing code is much simpler when writing in Go, as it helps lessen cognitive
+burden during the development process. For example, when working with C++,
+sophisticated IDEs might, “show that the source code has no compile error when
+there actually is one” whereas “in Go, [the code] will always compile when [the
+IDE] says the code has no compile error,” said MinJae Hwang, a software engineer
+on the Core Data Solutions team. Reducing small friction points along the
+development process, such as shortening the cycle of fixing compile errors,
+helped our team ship faster during the original rewrite, and has helped keep our
+maintenance costs low.
+
+“When I’m in C++ and I want to use more packages, I have to write pieces such as
+headers. When I'm writing in Go, **built-in tools allow me to use packages more
+easily. My development velocity is much faster,**” Hwang also shared.
+
+With simple language syntax and support of Go tools, several members of our team
+find it much easier to write in Go code. We’ve also found that Go does a really
+good job of static type checking and that certain Go fundamentals, such as the
+godoc command, have helped the team build a more disciplined culture around
+writing documentation.
+
+{{backgroundquote `
+  author: Prasanna Meda
+  title: Software Engineer
+  quote: |
+    ...Google’s web indexing was re-architected within a year. More impressively,
+    most developers on the team were rewriting in Go while also learning it.
+`}}
+
+Working on a product used so heavily around the world is no small task and our
+team’s decision to use Go wasn’t a simple one, but doing so helped us move
+faster. As a result, Google’s web indexing was re-architected within a year.
+More impressively, most developers on the team were rewriting in Go while also
+learning it.
+
+In addition to the Core Data Solutions team, engineering teams across Google
+have adopted Go in their development process. Read about how the
+[Chrome](/solutions/google/chrome/) and [Firebase
+Hosting](/solutions/google/firebase/) teams use Go to build fast, reliable, and
+efficient software at scale.
diff --git a/go.dev/_content/solutions/google/firebase.md b/go.dev/_content/solutions/google/firebase.md
new file mode 100644
index 0000000..aa6cf60
--- /dev/null
+++ b/go.dev/_content/solutions/google/firebase.md
@@ -0,0 +1,77 @@
+---
+title: "How the Firebase Hosting Team Scaled With Go"
+layout: solution
+company: Firebase
+logoSrc: firebase.svg
+heroImgSrc: go_firebase_case_study.png
+series: Case Studies
+quote: |
+  Firebase is Google’s mobile platform that helps you quickly develop high-quality
+  apps and grow your business.
+
+  The Firebase Hosting team shared their journey with Go, including their
+  backend migration from Node.js, the ease of onboarding new Go developers, and
+  how Go has helped them scale.
+---
+
+The Firebase Hosting team provides static web hosting services for Google Cloud
+customers. They provide a static web host that sits behind a global content
+delivery network, and offer users tools that are easy to use. The team also
+develops features that range from uploading site files to registering domains to
+tracking usage.
+
+Before joining Google, Firebase Hosting’s tech stack was written in Node.js. The
+team started to use Go when they needed to interoperate with several other
+Google services. They decided to use Go to help them scale easily and
+efficiently, knowing that “concurrency would continue to be a big need.” They
+“were confident Go would be more performant,” and “liked that Go is more terse”
+than other languages they were considering, said Michael Bleigh, a software
+engineer on the team.
+
+Starting with one small service written in Go, the team migrated their entire
+backend in a series of moves. The team progressively identified large features
+they wanted to implement and, in the process, rewrote them in Go and moved to
+Google Cloud and Google’s internal cluster management system. **Now the Firebase
+Hosting team has replaced 100% of backend Node.js code with Go.**
+
+The team’s experience writing in Go began with one engineer. “Through
+peer-to-peer learning and Go being generally easy to get started with, everyone
+on the team now has Go dev experience,” said Bleigh. They’ve found that while a
+majority of people who are new to the team haven’t had any experience with Go,
+“most of them are productive within a couple weeks.”
+
+"Using Go, it's easy to see how the code is organized and what the code does,"
+said Bleigh, speaking for the team. “Go is generally very readable and
+understandable. The language’s error handling, receivers, and interfaces are all
+easy to understand due to the idioms in the language.”
+
+Concurrency continues to be a focus for the team as they scale. Robert Rossney,
+a software engineer, shared that “Go makes it very easy to put all of the hard
+concurrency stuff in one place, and everywhere else it's abstracted.” Rossney
+also spoke to the benefits of using a language built with concurrency in mind,
+saying that “there are also a lot of ways to do concurrency in Go. We’ve had to
+learn when each route is best, how to determine when a problem is a concurrency
+problem, how to debug–but that comes out of the fact that you actually can write
+these patterns in Go code.”
+
+{{backgroundquote `
+  author: Robert Rossney
+  title: Software Engineer
+  quote: |
+    Generally speaking, there’s not a time on the team where we’re feeling
+    frustrated with Go, it just kind of gets out of the way and lets you do work.
+`}}
+
+Hundreds of thousands of customers host their websites with Firebase Hosting,
+which means Go code is used to serve billions of requests per day. “Our customer
+base and traffic have doubled multiple times since migrating to Go without ever
+requiring fine-tuned optimizations” shared Bleigh.  With Go, the team has seen
+performance improvements both in the software and on the team, with excellent
+productivity gains. “Generally speaking,” Rossney mentioned, “...there’s not a
+time on the team where we’re feeling frustrated with Go, it just kind of gets
+out of the way and lets you do work.”
+
+In addition to the Firebase Hosting team, engineering teams across Google have
+adopted Go in their development process. Read about how the [Core Data
+Solutions](/solutions/google/coredata/) and [Chrome](/solutions/google/chrome/)
+teams use Go to build fast, reliable, and efficient software at scale.
diff --git a/go.dev/_content/solutions/google/index.md b/go.dev/_content/solutions/google/index.md
new file mode 100644
index 0000000..33d3e4e
--- /dev/null
+++ b/go.dev/_content/solutions/google/index.md
@@ -0,0 +1,78 @@
+---
+title: 'Using Go at Google'
+date: 2020-08-27
+layout: solution
+company: Google
+logoSrc: google.svg
+heroImgSrc: go_core_data_case_study.png
+carouselImgSrc: go_google_case_study_carousel.png
+series: Case Studies
+type: solutions
+description: |-
+  Google is a technology company whose mission is to organize the world’s
+  information and make it universally accessible and useful.
+
+  Go was created at Google in 2007 to improve programming productivity in an
+  era of multi-core networked machines and large codebases. Today, over 10
+  years since its public announcement in 2009, Go's use inside Google has grown
+  tremendously.
+quote: Go was created at Google in 2007, and since then, engineering teams
+  across Google have adopted Go to build products and services at massive scale.
+
+---
+
+{{pullquote `
+  author: Rob Pike
+  quote: |
+    Go started in September 2007 when Robert Griesemer, Ken Thompson, and I began
+    discussing a new language to address the engineering challenges we and our
+    colleagues at Google were facing in our daily work.
+
+    When we first released Go to the public in November 2009, we didn’t know if the
+    language would be widely adopted or if it might influence future languages.
+    Looking back from 2020, Go has succeeded in both ways: it is widely used both
+    inside and outside Google, and its approaches to network concurrency and
+    software engineering have had a noticeable effect on other languages and their
+    tools.
+
+    Go has turned out to have a much broader reach than we had ever expected. Its
+    growth in the industry has been phenomenal, and it has powered many projects at
+    Google.
+`}}
+
+The following stories are a small sample of the many ways that Go is used at Google.
+
+### How Google's Core Data Solutions Team Uses Go
+
+Google's mission is “to organize the world's information and make it universally
+accessible and useful.”  One of the teams responsible for organizing that
+information is Google’s Core Data Solutions team. The team, among other things,
+maintains services to index web pages across the globe. These web indexing
+services help support products like Google Search by keeping search results
+updated and comprehensive, and they’re written in Go.
+
+[Learn more](/solutions/google/coredata/)
+
+---
+
+### Chrome Content Optimization Service Runs on Go
+
+When the product Chrome comes to mind, you probably think solely of the user-installed browser. But behind the scenes, Chrome has an extensive fleet of backends. Among these is the Chrome Optimization Guide service. This service forms an important basis for Chrome’s user experience strategy, operating in the critical path for users, and is implemented in Go.
+
+[Learn more](/solutions/google/chrome/)
+
+---
+
+### How the Firebase Hosting Team Scaled With Go
+
+The Firebase Hosting team provides static web hosting services for Google Cloud customers. They provide a static web host that sits behind a global content delivery network, and offer users tools that are easy to use. The team also develops features that range from uploading site files to registering domains to tracking usage.
+
+[Learn more](/solutions/google/firebase/)
+
+---
+
+### Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go
+
+Google runs a small number of very large services. Those services are powered by a global infrastructure covering everything one needs: storage systems, load balancers, network, logging, monitoring, and many more. Nevertheless, it is not a static system - it cannot be. Architecture evolves, new products and ideas are created, new versions must be rolled out, configs pushed, database schema updated, and more. We end up deploying changes to our systems dozens of times per second.
+
+[Learn more](/solutions/google/sitereliability/)
\ No newline at end of file
diff --git a/go.dev/_content/solutions/google/sitereliability.md b/go.dev/_content/solutions/google/sitereliability.md
new file mode 100644
index 0000000..593e994
--- /dev/null
+++ b/go.dev/_content/solutions/google/sitereliability.md
@@ -0,0 +1,112 @@
+---
+title: "Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go"
+layout: solution
+company: Google Site Reliability Engineering (SRE)
+logoSrc: sitereliability.svg
+heroImgSrc: go_sitereliability_case_study.png
+series: Case Studies
+quote: |
+  Google’s Site Reliability Engineering team has a mission to protect, provide for, and progress the software and systems behind all of Google’s public services — Google Search, Ads, Gmail, Android, YouTube, and App Engine, to name just a few — with an ever-watchful eye on their availability, latency, performance, and capacity.
+
+  They shared their experience building core production management systems with Go, coming from experience with Python and C++.
+authors:
+  - Pierre Palatin, Site Reliability Engineer
+---
+
+Google runs a small number of very large services. Those services are powered
+by a global infrastructure covering everything a developer needs: storage
+systems, load balancers, network, logging, monitoring, and much more.
+Nevertheless, it is not a static system—it cannot be. Architecture evolves,
+new products and ideas are created, new versions must be rolled out, configs
+pushed, database schema updated, and more. We end up deploying changes to our
+systems dozens of times per second.
+
+Because of this scale and critical need for reliability, Google pioneered Site
+Reliability Engineering (SRE), a role that many other companies have since adopted.
+“SRE is what you get when you treat operations as if it’s a software problem.
+Our mission is to protect, provide for, and progress the software and systems
+behind all of Google’s public services with an ever-watchful eye on their
+availability, latency, performance, and capacity.”
+— [Site Reliability Engineering (SRE)](https://sre.google/).
+
+{{backgroundquote `
+  quote: |
+    Go promised a sweet spot between performance and readability that neither of
+    the other languages [Python and C++] were able to offer.
+`}}
+
+In 2013-2014, Google’s SRE team realized that our approach to production
+management was not cutting it anymore in many ways. We had advanced far beyond
+shell scripts, but our scale had so many moving pieces and complexities that a
+new approach was needed. We determined that we needed to move toward a
+declarative model of our production, called "Prodspec", driving a dedicated
+control plane, called "Annealing".
+
+When we started those projects, Go was just becoming a viable option for
+critical services at Google. Most engineers were more familiar with Python
+and C++, either of which would have been valid choices. Nevertheless, Go
+captured our interest. The appeal of novelty was certainly a factor of
+course. But, more importantly, Go promised a sweet spot between performance
+and readability that neither of the other languages were able to offer. We
+started a small experiment with Go for some initial parts of Annealing and
+Prodspec. As the projects progressed, those initial parts written in Go found
+themselves at the core. We were happy with Go—its simplicity grew on us, the
+performance was there, and concurrency primitives would have been hard to
+replace.
+
+{{backgroundquote `
+  quote: |
+    Now the majority of Google production is managed and maintained by our systems
+    written in Go.
+`}}
+
+At no point was there ever a mandate or requirement to use Go, but we had no
+desire to return to Python or C++. Go grew organically in Annealing and
+Prodspec. It was the right choice, and thus is now our language of choice.
+Now the majority of Google production is managed and maintained by our systems
+written in Go.
+
+The power of having a simple language in those projects is hard to overstate.
+There have been cases where some feature was indeed missing, such as the
+ability to enforce in the code that some complex structure should not be
+mutated. But for each one of those cases, there have undoubtedly been tens or
+hundred of cases where the simplicity helped.
+
+{{backgroundquote `
+  quote: |
+    Go’s simplicity means that the code is easy to follow, whether it is to spot
+    bugs during review or when trying to determine exactly what happened during a
+    service disruption.
+`}}
+
+For example, Annealing impacts a wide variety of teams and services meaning
+that we relied heavily on contributions across the company. The simplicity of
+Go made it possible for people outside our team to see why some part or another
+was not working for them, and often provide fixes or features themselves. This
+allowed us to quickly grow.
+
+Prodspec and Annealing are in charge of some quite critical components. Go’s
+simplicity means that the code is easy to follow, whether it is to spot bugs
+during review or when trying to determine exactly what happened during a
+service disruption.
+
+Go performance and concurrency support have also been key for our work. As our
+model of production is declarative, we tend to manipulate a lot of structured
+data, which describes what production is and what it should be. We have large
+services so the data can grow large, often making purely sequential processing
+not efficient enough.
+
+We are manipulating this data in many ways and many places. It is not a matter
+of having a smart person come up with a parallel version of our algorithm. It
+is a matter of casual parallelism, finding the next bottleneck and
+parallelising that code section. And Go enables exactly that.
+
+As a result of our success with Go, we now use Go for every new development for
+Prodspec and Annealing.
+
+In addition to the Site Reliability Engineering team, engineering teams across
+Google have adopted Go in their development process. Read about how the
+[Core Data Solutions](/solutions/google/coredata/),
+[Firebase Hosting](/solutions/google/firebase/), and
+[Chrome](/solutions/google/chrome/) teams use Go to build fast, reliable,
+and efficient software at scale.
\ No newline at end of file
diff --git a/go.dev/_content/solutions/grail.md b/go.dev/_content/solutions/grail.md
new file mode 100644
index 0000000..b6be2ea
--- /dev/null
+++ b/go.dev/_content/solutions/grail.md
@@ -0,0 +1,15 @@
+---
+linkTitle: Bigslice - A cluster computing system in Go
+description: At GRAIL, we use the Go programming language for most of our bioinformatics,
+  data processing, and machine learning tasks. Go’s simplicity makes it easy for
+  newcomers to learn; its transparent runtime semantics makes it easy to reason
+  about performance; and its ability to control data layout and allocation makes
+  it possible to write highly performant data processing code.
+layout: solution
+company: GRAIL
+logoSrc: grail.png
+series: Case Studies
+link:
+  https://medium.com/grail-eng/bigslice-a-cluster-computing-system-for-go-7e03acd2419b
+inLandingPageGrid: false
+---
\ No newline at end of file
diff --git a/go.dev/_content/solutions/index.md b/go.dev/_content/solutions/index.md
new file mode 100644
index 0000000..854f294
--- /dev/null
+++ b/go.dev/_content/solutions/index.md
@@ -0,0 +1,190 @@
+---
+title: Why Go
+---
+
+{{$solutions := pages "solutions/*"}}
+<section class="Solutions-headline">
+  <div class="GoCarousel" id="SolutionsHeroCarousel-carousel">
+    <div class="GoCarousel-controlsContainer">
+      <div class="GoCarousel-wrapper SolutionsHeroCarousel-wrapper">
+        <ul class="js-solutionsHeroCarouselSlides SolutionsHeroCarousel-slides">
+          {{- $n := 0}}
+          {{- range newest $solutions}}
+            {{- if eq .series "Case Studies"}}
+              {{- $n = add $n 1}}
+              {{- if le $n 3}}
+              <li class="SolutionsHeroCarousel-slide">
+                <div class="Solutions-headlineImg">
+                  <img
+                    src="/images/{{.carouselImgSrc}}"
+                    alt="{{.linkTitle}}"
+                  />
+                </div>
+                <div class="Solutions-headlineText">
+                  <p class="Solutions-headlineNotification">RECENTLY UPDATED</p>
+                  <h2>
+                    {{.linkTitle}}
+                  </h2>
+                  <p class="Solutions-headlineBody">
+                    {{with .quote}}{{.}}{{end}}
+                    <a href="{{.Path}}"
+                      >Learn more
+                      <i class="material-icons Solutions-forwardArrowIcon"
+                        >arrow_forward</i
+                      >
+                    </a>
+                  </p>
+                </div>
+              </li>
+              {{- end}}
+            {{- end}}
+          {{- end}}
+        </ul>
+      </div>
+      <button
+        class="js-solutionsHeroCarouselPrev GoCarousel-controlPrev GoCarousel-controlPrev-solutionsHero"
+        hidden
+      >
+        <i class="GoCarousel-icon material-icons">navigate_before</i>
+      </button>
+      <button
+        class="js-solutionsHeroCarouselNext GoCarousel-controlNext GoCarousel-controlNext-solutionsHero"
+      >
+        <i class="GoCarousel-icon material-icons">navigate_next</i>
+      </button>
+    </div>
+  </div>
+</section>
+<section class="Solutions-useCases">
+  <div class="Container">
+    <div class="SolutionsTabs-tabList js-solutionsTabs" role="tablist">
+      <button
+        role="tab"
+        aria-selected="true"
+        class="SolutionsTabs-tab"
+        id="btn-companies"
+        aria-controls="tab-companies"
+      >
+        Case studies
+      </button>
+      <button
+        role="tab"
+        aria-selected="false"
+        class="SolutionsTabs-tab"
+        id="btn-tech"
+        aria-controls="tab-tech"
+      >
+        Use cases
+      </button>
+      <hr />
+    </div>
+    <ul
+      class="js-solutionsList Solutions-cardList"
+      aria-expanded="true"
+      aria-labelledby="btn-companies"
+      id="tab-companies"
+      role="tabpanel"
+      tabindex="0"
+    >
+      {{- range $solutions}}
+      {{- if eq .series "Case Studies"}}
+      <li class="Solutions-card">
+        {{- if .link}}
+        <a
+          href="{{.link}}"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--{{.company}}"
+          >
+            <img
+              loading="lazy"
+              alt="{{.company}}"
+              src="/images/logos/{{.logoSrc}}"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">{{.linkTitle}}</h3>
+            <p class="Solutions-useCaseDescription">
+              {{.description}}
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+        {{- else}}
+        <a href="{{.Path}}" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            <img
+              loading="lazy"
+              alt="{{.company}}"
+              src="/images/logos/{{.logoSrc}}"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">{{.linkTitle}}</h3>
+            <p class="Solutions-useCaseDescription">
+              {{with .quote}}{{.}}{{end}}
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">View case study</p>
+        </a>
+        {{- end}}
+      </li>
+      {{- end}}
+      {{- end}}
+    </ul>
+    <ul
+      class="js-solutionsList Solutions-cardList"
+      aria-expanded="false"
+      aria-labelledby="btn-tech"
+      id="tab-tech"
+      role="tabpanel"
+      tabindex="0"
+      hidden
+    >
+      {{- range newest $solutions}}{{if eq .series "Use Cases"}}
+      <li class="Solutions-card">
+        <a href="{{.Path}}" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            {{- $icon := .icon}}
+            {{- if $icon}}
+            <img
+              loading="lazy"
+              alt="{{$icon.alt}}"
+              src="{{.Dir}}/{{$icon.file}}"
+            />
+            {{- end}}
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">{{.linkTitle}}</h3>
+            <p class="Solutions-useCaseDescription">
+              {{.description}}
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            Learn More
+          </p>
+        </a>
+      </li>
+      {{- end}}
+      {{- end}}
+    </ul>
+    <div class="Solutions-footer">
+      <p>
+        Interested in sharing your stories?
+        <a
+          target="_blank"
+          rel="noopener"
+          href="https://docs.google.com/forms/d/e/1FAIpQLSdRomKkA2zWQF4UTIYWLVYfjKvOHGA32RjnfavVhqY06yrZTQ/viewform"
+        >
+          Start here.
+        </a>
+      </p>
+    </div>
+  </div>
+</section>
diff --git a/go.dev/_content/solutions/mercadolibre.md b/go.dev/_content/solutions/mercadolibre.md
new file mode 100644
index 0000000..f104448
--- /dev/null
+++ b/go.dev/_content/solutions/mercadolibre.md
@@ -0,0 +1,171 @@
+---
+title: "MercadoLibre Grows with Go"
+layout: solution
+company: MercadoLibre
+logoSrc: mercado-libre.png
+heroImgSrc: go_mercadolibre_case_study_logo.png
+carouselImgSrc: go_mercadolibre_case_study.png
+date: 2019-11-10T16:26:31-04:00
+series: Case Studies
+quote: Go provides clean, efficient code that readily scales as MercadoLibre’s online commerce grows, and increases developer productivity by allowing their engineers to serve their ever-increasing audience while writing less code.
+---
+
+{{pullquote `
+  author: Eric Kohan
+  title: Software Engineering Manager
+  company: MercadoLibre
+  quote: |
+    I think that **the tour of Go is by far the best introduction to a language that I’ve seen**, It’s really simple and it gives you a fair overview of probably 80 percent of the language. When we want to get developers to learn Go, and to get to production fast, we tell them to start with the tour of Go.
+`}}
+
+## Go helps integrated ecosystem attract developers and scale eCommerce
+
+MercadoLibre, Inc. hosts the largest online commerce ecosystem in Latin America and is present in 18 countries. Founded
+in 1999 and headquartered in Argentina, the company has turned to Go to help it scale and modernize its ecosystem. Go
+provides clean, efficient code that readily scales as MercadoLibre’s online commerce grows, and increases developer
+productivity by allowing their engineers to serve their ever-increasing audience while writing less code.
+
+### MercadoLibre taps Go for scale
+
+Back in 2015, there was a growing sense within MercadoLibre that their existing API framework, on Groovy and Grails, was
+reaching its limits and the company needed a different platform to continue scaling. MercadoLibre’s platform was (and
+continues) to expand exponentially, which created a lot of extra work for its developers: Both Groovy and Grails require
+a lot of decisions from developers and Groovy is a dynamic programming language. This was not a good combination for
+quickly scaling growth, as MercadoLibre needed very experienced developers in this very resource intensive environment
+to develop and tune to achieve desired performance. Test execution times were slow, and build and deploy times were
+slow. Thus, the need for code efficiency and scalability became as important as the need for speed in code development.
+
+
+### Go improves system efficiency
+
+As one example of Go’s contributions to network efficiency, the core API team builds and maintains the largest APIs at
+the center of the company’s microservices solutions. This team creates user APIs, which in turn are used by the
+MercadoLibre Marketplace, by the MercadoPago FinTech platform, by MercadoLibre’s shipping and logistics solutions, and
+other hosted solutions. With the high service levels demanded by these solutions—the average user API has between eight
+and ten million requests per minute—the team employs Go to serve them at less than ten milliseconds per request.
+
+The API team also deploys Docker containers—a software-as-a-service (SaaS) product, also written in Go—to virtualize
+their development and readily deploy their microservices via the Docker Engine. This system supports larger,
+mission-critical APIs that handle **more than 20 million requests per minute in Go.**
+
+One API made important use of Go’s concurrency primitives to efficiently multiplex IDs from several services. The team
+was able to accomplish this with just a few lines of Go code, and the success of this API convinced the core API team to
+migrate more and more microservices to Go. The end result for MercadoLibre has been improved cost-efficiencies and
+system response times.
+
+### Go for scalability
+
+Historically, much of the company’s stack was based on Grails and Groovy backed by relational  databases. However this
+big framework with multiple layers was soon found encountering scalability issues.
+
+Converting that legacy architecture to Go as a new, very thin framework for building APIs streamlined those intermediate
+layers and yielded great performance benefits. For example, one large Go service is now able to **run 70,000 requests
+per machine with just 20 MB of RAM.**
+
+{{backgroundquote `
+  author: Eric Kohan
+  title: Software Engineering Manager
+  company: MercadoLibre
+  quote: |
+    Go was just marvelous for us. It’s very powerful
+    and very easy to learn, and with backend infrastructure, has been great for us in terms of scalability.
+`}}
+
+Using **Go allowed MercadoLibre to cut the number of servers** they use for this service to one-eighth the original
+number (from 32 servers down to four), plus each server can operate with less power (originally four CPU cores, now down
+to two CPU cores). With Go, the company **obviated 88 percent of their servers and cut CPU on the remaining ones in
+half**—producing a tremendous cost-savings.
+
+Sitting between developers and the cloud providers, MercadoLibre uses a platform called Fury—a platform-as-a-service
+tool for building, deploying, monitoring, and managing services in a cloud-agnostic way. As a result, any team that
+wants to create a new service in Go has access to proven templates for a variety of service types, and can quickly spin
+up a repository in GitHub with starter code, a Docker image for the service, and a deployment pipeline. The end result
+is a system that allows engineers to focus on building innovative services while avoiding the tedious stages of setting
+up a new project—all while effectively standardizing the build and deployment pipelines.
+
+Today, **roughly half of Mercadolibre's traffic is handled by Go applications.**
+
+
+### MercadoLibre uses Go for developers
+
+The programming _lingua francas_ for MercadoLibre’s infrastructure are currently Go and Java. Every app, every program,
+every microservice is hosted on its own GitHub repository, plus the company uses an additional GitHub repository of
+toolkits to solve new problems and allow clients to interact with its services.
+
+These extensive and well-curated Go and Java toolkits allow programmers to develop new apps quickly and with great
+support. Plus, in a community of more than 2,800 developers, MercadoLibre has multiple internal groups available for
+chat and guidance on deploying Go, whether across different development centers or different countries. The company also
+fosters internal working groups to provide training sessions for new MercadoLibre Go developers, and hosts Go meetups
+for external developers to help build a broader community of Latin American Go developers.
+
+
+### Go as a recruiting tool
+
+MercadoLibre’s Go advocacy has also become a strong recruiting tool for the company. MercadoLibre was among the first
+companies using Go in Argentina, and is perhaps the largest in Latin America using the language so widely in production.
+Headquartered in Buenos Aires, with many start-ups and emerging technology companies nearby, MercadoLibre's adoption of
+Go has shaped the market for developers across the Pampas.
+
+{{backgroundquote `
+  author: Eric Kohan
+  title: Software Engineering Manager
+  company: MercadoLibre
+  quote: |
+    We really see eye-to-eye with the larger philosophy of the language. We love Go's simplicity, and we find that having its very explicit error handling has been a gain for developers because it results in safer, more stable code in production.
+`}}
+
+Buenos Aires is today a very competitive market for programmers, offering computer programmers many employment options,
+and the high demand for technology in the region drives great salaries, great benefits, and the ability to be selective
+when choosing an employer. As such, MercadoLibre—like all employers of engineers and programmers in the region—strives
+to provide an exciting workplace and strong career path. Go has proven to be a key differentiator for MercadoLibre: the
+company organizes Go workshops for external developers so they can come and learn Go, and when they enjoy what they are
+doing and the people they talk to, they quickly recognize MercadoLibre as an enticing place to work.
+
+### Go enabling developers
+
+MercadoLibre employs Go for its simplicity with systems at scale, but that simplicity is also why the company's
+developers love Go.
+
+The company also uses web pages like[ Go by Example](https://gobyexample.com/) and[ Effective
+Go](https://golang.org/doc/effective_go.html) to educate new programmers, and shares representative internal APIs
+written in Go to speed understanding and proficiency. MercadoLibre developers get the resources they need to embrace the
+language, then leverage their own skills and enthusiasm to start programming.
+
+{{backgroundquote `
+  author: Federico Martin Roasio
+  title: Technical Project Lead
+  company: MercadoLibre
+  quote: |
+    Go has been great for writing business logic, and we are the team that writes those APIs.
+`}}
+
+MercadoLibre leverages Go’s expressive and clean syntax to make it easier for developers to write programs that run
+efficiently on modern cloud platforms. And while speed in development yields cost efficiency for the company, developers
+individually benefit from the swift learning curve Go delivers. Not only are MercadoLibre's experienced engineers able
+to build highly critical applications very quickly with Go, but even entry-level engineers have been able to write
+services that, in other languages, MercadoLibre would only trust to more senior developers. For example, a key set of
+user APIs—handling almost ten million requests per minute—were developed by entry-level software engineers, many of whom
+only knew about programming from recent courses at university. Similarly, MercadoLibre has seen developers already
+proficient with other programming languages (such as Java or .NET or Ruby) learn Go fast enough start writing production
+services in just a few weeks.
+
+With Go, MercadoLibre’s **build times are three times (3x) faster** and their **test suite runs an amazing 24 times
+faster**. This means the company’s developers can make a change, then build and test that change much faster than they
+could before.
+
+And dropping MercadoLibre’s test suite runtimes from 90-seconds to **just 3-seconds with Go** was a huge boon for its
+developers—allowing them to keep focus (and context) while the much faster tests complete.
+
+Leveraging this success, MercadoLibre is committed not only to ongoing education for its programmers, but ongoing Go
+education. The company sends key engineering leaders to GopherCon and other Go events each year, MercadoLibre’s
+infrastructure and security teams encourage all the development teams to keep Go versions up to date, and the company
+has a team developing a _Go-meli-toolkit_: A complete Go library to interface all the services provided by Fury.
+
+### Getting your enterprise started with Go
+
+Just as MercadoLibre started with a proof-of-concept project to implement Go, dozens of other large enterprises are
+adopting Go as well.
+
+There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as [American Express](https://go.dev/solutions/americanexpress), [PayPal](https://go.dev/solutions/paypal), Capital One, Dropbox, IBM, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.
+
+To learn more about how Go can help your enterprise build reliable, scalable software as it does at MercadoLibre, visit [go.dev](https://go.dev) today.
diff --git a/go.dev/_content/solutions/microsoft.md b/go.dev/_content/solutions/microsoft.md
new file mode 100644
index 0000000..ddcd77e
--- /dev/null
+++ b/go.dev/_content/solutions/microsoft.md
@@ -0,0 +1,12 @@
+---
+linkTitle: How Microsoft Embraces Go
+description: 
+  Learn about how Microsoft has helped support Go and how it uses Go to power
+  pieces of it's cloud infrastructure.
+layout: solution
+company: Microsoft
+series: Case Studies
+logoSrc: microsoft.png
+link: https://cloudblogs.microsoft.com/opensource/2018/02/21/go-lang-brian-ketelsen-explains-fast-growth/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/netflix.md b/go.dev/_content/solutions/netflix.md
new file mode 100644
index 0000000..1a72407
--- /dev/null
+++ b/go.dev/_content/solutions/netflix.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "Netflix - Application data caching using SSDs"
+description: "The decision to use Go was deliberate, because we needed something that had lower latency than Java (where garbage collection pauses are an issue) and is more productive for developers than C, while also handling tens of thousands of client connections. Go fits this space well."
+layout: solution
+company: Netflix
+logoSrc: netflix.svg
+series: Case Studies
+link: https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/paypal.md b/go.dev/_content/solutions/paypal.md
new file mode 100644
index 0000000..9680331
--- /dev/null
+++ b/go.dev/_content/solutions/paypal.md
@@ -0,0 +1,88 @@
+---
+title: PayPal Taps Go to Modernize and Scale
+date: 2020-06-01
+layout: solution
+company: PayPal
+logoSrc: paypal.svg
+heroImgSrc: go_paypal_case_study_logo.png
+carouselImgSrc: go_paypal_case_study.png
+series: Case Studies
+quote: Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s goals.
+---
+
+{{pullquote `
+  author: Bala Natarajan
+  title: <span class="NoWrapSpan">Sr. Director of Engineering,</span>&nbsp;<span class="NoWrapSpan">Developer Experience</span>
+  company: PayPal
+  quote: |
+    Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.
+`}}
+
+## New code infrastructure built on Go
+
+PayPal was created to democratize financial services and empower people and businesses to join and thrive in the global economy. Central to this effort is PayPal’s Payments Platform, which uses a combination of proprietary and third-party technologies to efficiently and securely facilitate transactions between millions of merchants and consumers worldwide. As the Payments Platform grew larger and more complicated, PayPal sought to modernize its systems and reduce time-to-market for new applications.
+
+Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s goals.
+
+Central to the Payment Processing Platform is a proprietary NoSQL database that PayPal had developed in C++. The complexity of the code, however, was substantially decreasing its developers’ ability to evolve the platform. Go’s simple code layouts, goroutines (lightweight threads of execution) and channels (which serve as the pipes that connect concurrent goroutines), made Go a natural choice for the NoSQL development team to simplify and modernize the platform.
+
+As a proof of concept, a development team spent six months learning Go and reimplementing the NoSQL system from the ground up in Go, during which they also provided insights on how Go could be implemented more broadly at PayPal. As of today, thirty percent of the clusters have been migrated to use the new NoSQL database.
+
+
+## Using Go to simplify for scale
+
+As PayPal’s platform becomes more intricate, Go provides a way to readily simplify the complexity of creating and running software at scale. The language provides PayPal with great libraries and fast tools, plus concurrency, garbage collection, and type safety.
+
+With Go, PayPal enables its developers to spend more time looking at code and thinking strategically, by freeing them from the noise of C++ and Java development.
+
+After the success of this newly re-written NoSQL system, more platform and content teams within PayPal began adopting Go. Natarajan’s current team is responsible for PayPal’s build, test, and release pipelines—all built in Go. The company has a large build and test farm which is completely managed using Go infrastructure to support builds-as-a-service (and tests-as-a-service) for developers across the company.
+
+  <img
+    loading="lazy"
+    width="607"
+    height="289"
+    class=""
+    alt="Go gopher factory"
+    src="/images/gophers/factory.png">
+
+## Modernizing PayPal systems with Go
+
+With the distributed computing capabilities required by PayPal, Go was the right language to refresh their systems. PayPal needed programming that is concurrent and parallel, compiled for high performance and highly portable, and that brings developers the benefits of a modular, composable open-source architecture—Go has delivered all that and more to help PayPal modernize its systems.
+
+Security and supportability are key matters at PayPal, and the company’s operational pipelines are increasingly dominated by Go because the language’s cleanliness and modularity help them achieve these goals. PayPal’s deployment of Go engenders a platform of creativity for developers, allowing them to produce simple, efficient, and reliable software at scale for PayPal’s worldwide markets.
+
+As PayPal continues to modernize their software-defined networking (SDN) infrastructure with Go, they are seeing performance benefits in addition to more maintainable code. For example, Go now powers routers, load balances, and an increasing number of production systems.
+
+{{backgroundquote `
+  author: Bala Natarajan
+  title: Sr. Director of Engineering
+  quote: |
+    In our tightly managed environments where we run Go code, we have seen a CPU reduction of approximately ten percent with cleaner and maintainable code.
+`}}
+
+## Go increases developer productivity
+
+As a global operation, PayPal needs its development teams to be effective at managing two kinds of scale: production scale, especially concurrent systems interacting with many other servers (such as cloud services); and development scale, especially large codebases developed by many programmers in coordination (such as open-source development)
+
+PayPal leverages Go to address these issues of scale. The company’s developers benefit from Go’s ability to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. As PayPal modernizes its system, support for networked and multicore computing is critical. Go not only delivers such support but delivers quickly—it takes at most a few seconds to compile a large executable on a single computer.
+
+There are currently over 100 Go developers at PayPal, and future developers who choose to adopt Go will have an easier time getting the language approved thanks to the many successful implementations already in production at the company.
+
+Most importantly, PayPal developers have increased their productivity with Go. Go’s concurrency mechanisms have made it easy to write programs that get the most out of PayPal’s multicore and networked machines. Developers using Go also benefit from the fact that it compiles quickly to machine code and their apps gain the convenience of garbage collection and the power of run-time reflection.
+
+## Speeding PayPal’s time to market
+
+The first-class languages at PayPal today are Java and Node, with Go primarily used as an infrastructure language. While Go may never replace Node.js for certain applications, Natarajan is pushing to make Go a first-class language at PayPal.
+
+Through his efforts, PayPal is also evaluating moving to the Google Kubernetes Engine (GKE) to speed their new products’ time-to-market. The GKE is a managed, production-ready environment for deploying containerized applications, and brings Google's latest innovations in developer productivity, automated operations, and open source flexibility.
+
+For PayPal, deploying to GKE would enable rapid development and iteration by making it easier for PayPal to deploy, update, and manage its applications and services. Plus PayPal will find it easier to run Machine Learning, General Purpose GPU, High-Performance Computing, and other workloads that benefit from specialized hardware accelerators supported by the GKE.
+
+Most importantly for PayPal, the combination of Go development and the GKE allows the company to scale effortless to meet demand, as Kubernetes autoscaling will allow PayPal to handle increased user demand for services—keeping them available when it matters most, then scale back in the quiet periods to save money.
+
+
+## Getting your enterprise started with Go
+
+PayPal’s story is not unique; dozens of other large enterprises are discovering how Go can help them ship reliable software faster. There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as [American Express](https://go.dev/solutions/americanexpress), [Mercado Libre](https://go.dev/solutions/mercadolibre), Capital One, Dropbox, IBM, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.
+
+To learn more about how Go can help your enterprise build reliable, scalable software as it does at PayPal, visit [go.dev](https://go.dev) today.
diff --git a/go.dev/_content/solutions/riotgames.md b/go.dev/_content/solutions/riotgames.md
new file mode 100644
index 0000000..c595fd2
--- /dev/null
+++ b/go.dev/_content/solutions/riotgames.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "Riot Games - Leveraging Golang for Game Development and Operations"
+description: "Learn how Riot uses Go to develop, deploy, and operate backend microserves at scale–globally. They share thier experience across use cases, with specific examples, and speak to the value of the gopher community."
+layout: solution
+company: Riot Games
+logoSrc: riotgames.png
+series: Case Studies
+link: https://technology.riotgames.com/news/leveraging-golang-game-development-and-operations
+inLandingPageGrid: true
+---
\ No newline at end of file
diff --git a/go.dev/_content/solutions/salesforce.md b/go.dev/_content/solutions/salesforce.md
new file mode 100644
index 0000000..5dbfe05
--- /dev/null
+++ b/go.dev/_content/solutions/salesforce.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "Salesforce - From Python/C to Go"
+description: "One of the big advantages is that Go's cross-platform features make porting code easy."
+layout: solution
+company: Salesforce
+logoSrc: salesforce.svg
+series: Case Studies
+link: https://www.zdnet.com/article/salesforce-why-we-ditched-python-for-googles-go-language-in-einstein-analytics/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/sitereliability.md b/go.dev/_content/solutions/sitereliability.md
new file mode 100644
index 0000000..b3c80b5
--- /dev/null
+++ b/go.dev/_content/solutions/sitereliability.md
@@ -0,0 +1,3 @@
+---
+redirect: /solutions/google/sitereliability
+---
diff --git a/go.dev/_content/solutions/target.md b/go.dev/_content/solutions/target.md
new file mode 100644
index 0000000..3b7d54d
--- /dev/null
+++ b/go.dev/_content/solutions/target.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "Target - Recommending Go"
+layout: solution
+company: Target
+logoSrc: target.svg
+series: Case Studies
+link: https://tech.target.com/infrastructure/2018/06/18/Recommending-GoLang-at-Target.html
+description: "We loved the simplified syntax, strong standard library, great external community, and well-built and maintained libraries. We loved the fast compile times and incredibly small images we could build when deploying containers. As we continue to grow and scale our technical solutions to our guests, we find the concurrency primitives in Go particularly useful."
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/twitch.md b/go.dev/_content/solutions/twitch.md
new file mode 100644
index 0000000..40b34db
--- /dev/null
+++ b/go.dev/_content/solutions/twitch.md
@@ -0,0 +1,10 @@
+---
+linkTitle: "Twitch - Go’s march to low latency GC"
+description: "We use Go at Twitch for many of our busiest systems. Its simplicity, safety, performance, and readability make it a good tool for the problems we encounter with serving live video and chat to our  millions of users."
+layout: solution
+company: Twitch
+logoSrc: twitch.svg
+series: Case Studies
+link: https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/twitter.md b/go.dev/_content/solutions/twitter.md
new file mode 100644
index 0000000..6e0cd1e
--- /dev/null
+++ b/go.dev/_content/solutions/twitter.md
@@ -0,0 +1,10 @@
+---
+title: "Twitter - 5 billion sessions a day in realtime"
+description: "We now see about five billion sessions per day, and growing. Hundreds of millions of devices send millions of events every second to the Answers endpoint. During the time that it took you to read to here, the Answers back-end will have received and processed about 10,000,000 analytics events."
+layout: solution
+company: Twitter
+logoSrc: twitter.svg
+series: Case Studies
+link: https://blog.twitter.com/engineering/en_us/a/2015/handling-five-billion-sessions-a-day-in-real-time.html
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/uber.md b/go.dev/_content/solutions/uber.md
new file mode 100644
index 0000000..50485fd
--- /dev/null
+++ b/go.dev/_content/solutions/uber.md
@@ -0,0 +1,10 @@
+---
+title: "Uber - GPU-power analytics engine in Go"
+description: "AresDB [,written in Go,] is widely used at Uber to power our real-time data analytics dashboards, enabling us to make data-driven decisions at scale about myriad aspects of our business."
+layout: solution
+company: Uber
+logoSrc: uber.svg
+series: Case Studies
+link: https://eng.uber.com/aresdb/
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/solutions/webdev-green.svg b/go.dev/_content/solutions/webdev-green.svg
new file mode 100644
index 0000000..b4e73ef
--- /dev/null
+++ b/go.dev/_content/solutions/webdev-green.svg
@@ -0,0 +1,15 @@
+<svg width="75px" height="50px" viewBox="0 0 75 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-248.000000, -457.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="Group-Copy" transform="translate(248.000000, 457.000000)">
+                <polygon id="Path" points="17 24.484525 31 18 31 20.5366715 19.8950953 25.4706244 19.8950953 25.5270717 31 30.4898241 31 33 17 26.515475"></polygon>
+                <polygon id="Path" points="33 33 39.6555652 13 42 13 35.3455491 33"></polygon>
+                <polygon id="Path" points="58 26.5719223 44 33 44 30.4898241 55.28351 25.5270717 55.28351 25.4717764 44 20.5090239 44 18 58 24.4280777"></polygon>
+                <polygon id="Path" points="71.2505274 50 3.75064464 50 0 47 75 47"></polygon>
+                <path d="M70.9988294,46 L68.6576152,46 L68.6576152,3.03599533 C68.6576152,2.65649591 68.3368688,2.33538102 67.9552509,2.33538102 L8.04357851,2.33538102 C7.6631312,2.33538102 7.34121424,2.65532822 7.34121424,3.03599533 L7.34121424,46 L5,46 L5,3.03599533 C5,1.36152714 6.3649279,0 8.04357851,0 L67.9564215,0 C69.6350721,0 71,1.36152714 71,3.03599533 L71,46 L70.9988294,46 Z" id="Path"></path>
+                <path d="M30.8314219,45 L0,45 L0,47 L33,47 C31.8951418,47 31.0112552,46.1226667 30.8314219,45 Z" id="Path"></path>
+                <path d="M44.1674028,45 C43.9875695,46.1226667 43.1048582,47 42,47 L75,47 L75,45 L44.1674028,45 Z" id="Path"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/webdev-white.svg b/go.dev/_content/solutions/webdev-white.svg
new file mode 100644
index 0000000..370f57e
--- /dev/null
+++ b/go.dev/_content/solutions/webdev-white.svg
@@ -0,0 +1,19 @@
+<svg width="37px" height="24px" viewBox="0 0 37 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-221.000000, -1072.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group-5" transform="translate(104.000000, 67.000000)">
+                    <g id="Group-Copy" transform="translate(12.000000, 18.000000)">
+                        <polygon id="Path" points="8 12.0261117 15 9 15 10.18378 9.44754763 12.4862914 9.44754763 12.5126334 15 14.8285846 15 16 8 12.9738883"></polygon>
+                        <polygon id="Path" points="17 16 19.958029 6 21 6 18.0424663 16"></polygon>
+                        <polygon id="Path" points="29 13.0002304 22 16 22 14.8285846 27.641755 12.5126334 27.641755 12.486829 22 10.1708778 22 9 29 11.9997696"></polygon>
+                        <polygon id="Path" points="35.1502602 24 1.85031802 24 0 23 37 23"></polygon>
+                        <path d="M34.9994147,22 L33.8288076,22 L33.8288076,1.45199777 C33.8288076,1.27049805 33.6684344,1.11692136 33.4776254,1.11692136 L3.52178926,1.11692136 C3.3315656,1.11692136 3.17060712,1.26993958 3.17060712,1.45199777 L3.17060712,22 L2,22 L2,1.45199777 C2,0.651165152 2.68246395,0 3.52178926,0 L33.4782107,0 C34.317536,0 35,0.651165152 35,1.45199777 L35,22 L34.9994147,22 Z" id="Path"></path>
+                        <path d="M14.9485682,22 L0,22 L0,23 L16,23 C15.4643112,23 15.0357601,22.5613333 14.9485682,22 Z" id="Path"></path>
+                        <path d="M22.0508619,22 C21.96367,22.5613333 21.5356888,23 21,23 L37,23 L37,22 L22.0508619,22 Z" id="Path"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/_content/solutions/webdev.md b/go.dev/_content/solutions/webdev.md
new file mode 100644
index 0000000..c2bf0d2
--- /dev/null
+++ b/go.dev/_content/solutions/webdev.md
@@ -0,0 +1,211 @@
+---
+title: "Go for Web Development"
+linkTitle: "Web Development"
+description: "With enhanced memory performance and support for several IDEs, Go powers fast and scalable web applications."
+date: 2019-10-04T15:26:31-04:00
+layout: solution
+series: Use Cases
+books:
+icon:
+  file: webdev-green.svg
+  alt: web dev icon
+icon-white:
+  file: webdev-white.svg
+  alt: web dev icon
+---
+
+## Overview {#overview .sectionHeading}
+
+### Go delivers speed, security, and developer-friendly tools for Web Applications
+
+Go is designed to enable developers to rapidly develop scalable and secure web applications. Go ships with an easy to use, secure and performant web server and includes it own web templating library. Go has excellent support for all of the latest technologies from [HTTP/2](https://pkg.go.dev/net/http), to databases like [MySQL](https://pkg.go.dev/mod/github.com/go-sql-driver/mysql), [MongoDB](https://pkg.go.dev/mod/go.mongodb.org/mongo-driver) and [ElasticSearch](https://pkg.go.dev/mod/github.com/elastic/go-elasticsearch/v7), to the latest encryption standards including [TLS 1.3](https://pkg.go.dev/crypto/tls). Go web applications run natively on [Google App Engine](https://cloud.google.com/appengine/) and [Google Cloud Run](https://cloud.google.com/run/) (for easy scaling) or on any environment, cloud, or operating system thanks to Go’s extreme portability.
+
+## Key Benefits {#key-benefits .sectionHeading}
+
+### Deploy across platforms in record speed
+
+For enterprises, Go is preferred for providing rapid cross-platform deployment. With its goroutines, native compilation, and the URI-based package namespacing, Go code compiles to a single, small binary—with zero dependencies—making it very fast.
+
+### Leverage Go’s out-of-the-box performance to scale with ease
+
+Tigran Bayburtsyan, Co-Founder and CTO at Hexact Inc., summarizes five key reasons his company switched to Go:
+
+-   **Compiles into a single binary** — “Using static linking, Go actually combining all dependency libraries and modules into one single binary file based on OS type and architecture.”
+
+-   **Static type system** — “Type system is really important for large scale applications.”
+
+-   **Performance** — “Go performed better because of its concurrency model and CPU scalability. Whenever we need to process some internal request, we are doing it with separate Goroutines which are 10x cheaper in resources than Python Threads.”
+
+-   **No need for a web framework** — “In most of the cases you really don’t need any third-party library.”
+
+-   **Great IDE support and debugging** — “After rewriting all projects to Go, we got 64 percent less code than we had earlier.”
+
+
+{{projects `
+  - company: Caddy
+    url: https://caddyserver.com/
+    logoSrc: caddy.svg
+    desc: Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go. Caddy offers greater memory safety than servers written in C. A hardened TLS stack powered by the Go standard library serves a significant portion of all Internet traffic.
+    ctas:
+      - text: Caddy 2
+        url: https://caddyserver.com/
+  - company: Cloudflare
+    url: https://www.cloudflare.com/en-gb/
+    logoSrc: cloudflare-icon.svg
+    desc: Cloudflare speeds up and protects millions of websites, APIs, SaaS services, and other properties connected to the Internet. “Go is at the heart of CloudFlare’s services including handling compression for high-latency HTTP connections, our entire DNS infrastructure, SSL, load testing and more.”
+    ctas:
+      - text: Cloudflare and Go
+        url: https://blog.cloudflare.com/what-weve-been-doing-with-go/
+  - company: gov.uk
+    url: https://gov.uk/
+    logoSrc: govuk.svg
+    desc: The simplicity and safety of the Go language were a good fit for the United Kingdom’s government’s HTTP infrastructure, and some brief experiments with the excellent net/http package convinced web developers they were on the right track. “In particular, Go’s concurrency model makes it absurdly easy to build performant I/O-bound applications.”
+    ctas:
+      - text: Building a new router for gov.uk
+        url: https://technology.blog.gov.uk/2013/12/05/building-a-new-router-for-gov-uk/
+      - text: Using Go in government
+        url: https://technology.blog.gov.uk/2013/12/05/building-a-new-router-for-gov-uk/
+  - company: Hugo
+    url: http://gohugo.io/
+    logoSrc: hugo.svg
+    desc: Hugo is a fast and modern website engine written in Go, and designed to make website creation fun again. Websites built with Hugo are extremely fast and secure and can be hosted anywhere without any dependencies.
+    ctas:
+      - text: Hugo
+        url: http://gohugo.io/
+  - company: Mattermost
+    url: https://mattermost.com/
+    logoSrc: mattermost.png
+    desc: Mattermost is a flexible, open source messaging platform that enables secure team collaboration. It’s written in Go and React.
+    ctas:
+      - text: Mattermost
+        url: https://mattermost.com/
+  - company: Medium
+    url: https://medium.org/
+    logoSrc: medium.svg
+    desc: Medium uses Go to power their social graph, their image server and several auxiliary services. “We’ve found Go very easy to build, package, and deploy. We like the type-safety without the verbosity and JVM tuning of Java.”
+    ctas:
+      - text: Medium's Go Services
+        url: https://medium.engineering/how-medium-goes-social-b7dbefa6d413
+  - company: The Economist
+    url: https://economist.com/
+    logoSrc: economist.svg
+    desc: The Economist needed more flexibility to deliver content to increasingly diverse digital channels. Services written in Go were a key component of the new system that would enable The Economist to deliver scalable, high performing services and quickly iterate new products. “Overall, it was determined that Go was the language best designed for usability and efficiency in a distributed, cloud-based system.”
+    ctas:
+      - text: The Economist's Go microservices
+        url: https://www.infoq.com/articles/golang-the-economist/
+`}}
+
+## Get Started {#get-started .sectionHeading}
+
+### Go books on web development
+
+{{books `
+  - title: Web Development with Go
+    url: https://www.amazon.com/Web-Development-Go-Building-Scalable-ebook/dp/B01JCOC6Z6
+    thumbnail: /images/books/web-development-with-go.jpg
+  - title: Go Web Programming
+    url: https://www.amazon.com/Web-Programming-Sau-Sheong-Chang/dp/1617292567
+    thumbnail: /images/books/go-web-programming.jpg
+  - title: "Web Development Cookbook: Build full-stack web applications with Go"
+    url: https://www.amazon.com/Web-Development-Cookbook-full-stack-applications-ebook/dp/B077TVQ28W
+    thumbnail: /images/books/go-web-development-cookbook.jpg
+  - title: Building RESTful Web services with Go
+    url: https://www.amazon.com/Building-RESTful-Web-services-gracefully-ebook/dp/B072QB8KL1
+    thumbnail: /images/books/building-restful-web-services-with-go.jpg
+  - title: Mastering Go Web Services
+    url: https://www.amazon.com/Mastering-Web-Services-Nathan-Kozyra-ebook/dp/B00W5GUKL6
+    thumbnail: /images/books/mastering-go-web-services.jpg
+`}}
+
+{{libraries `
+  - title: Web frameworks
+    viewMoreUrl: https://pkg.go.dev/search?q=web+framework
+    items:
+      - text: Buffalo
+        url: https://gobuffalo.io/en/
+        desc: A framework for rapid web development in Go, curating Go and JS libraries together.
+      - text: Echo
+        url: https://echo.labstack.com/
+        desc: A high performance, extensible, and minimalist Go web framework
+      - text: Flamingo
+        url: https://www.flamingo.me/
+        desc: A fast open-source framework based on Go with clean and scalable architecture
+      - text: Gin
+        url: https://gin-gonic.com/
+        desc: A web framework written in Go, with a martini-like API.
+      - text: Gorilla
+        url: http://www.gorillatoolkit.org/
+        desc: A web toolkit for the Go programming language.
+  - title: Routers
+    viewMoreUrl: https://pkg.go.dev/search?q=http%20router
+    items:
+      - text: julienschmidt/httprouter
+        url: https://pkg.go.dev/github.com/julienschmidt/httprouter?tab=overview
+        desc: A lightweight high performance HTTP request router
+      - text: gorilla/mux
+        url: https://pkg.go.dev/github.com/gorilla/mux?tab=overview
+        desc: A powerful HTTP router and URL matcher for building Go web servers with 🦍
+      - text: Chi
+        url: https://pkg.go.dev/github.com/go-chi/chi?tab=overview
+        desc: A lightweight, idiomatic and composable router for building Go HTTP services.
+      - text: net/http
+        url: https://pkg.go.dev/net/http
+        desc: A standard library HTTP package
+  - title: Template Engines
+    viewMoreUrl: https://pkg.go.dev/search?q=templates
+    items:
+      - text: html/template
+        url: https://pkg.go.dev/html/template
+        desc: A standard library HTML template engine
+      - text: flosch/pongo2
+        url: https://pkg.go.dev/github.com/flosch/pongo2?tab=overview
+        desc: A Django-syntax like templating-language
+  - title: Databases & Drivers
+    viewMoreUrl: https://pkg.go.dev/search?q=database%20OR%20sql
+    items:
+      - text: database/sql
+        url: https://pkg.go.dev/database/sql
+        desc: A standard library interface with driver support for MySQL, Postgres, Oracle, MS SQL, BigQuery and most SQL databases
+      - text: mongo-driver/mongo
+        url: https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo?tab=overview
+        desc: The MongoDB supported driver for Go
+      - text: olivere/elastic
+        url: https://pkg.go.dev/github.com/olivere/elastic?tab=overview
+        desc: A Elasticsearch client for Go
+      - text: GORM
+        url: https://gorm.io/
+        desc: An ORM library for Go
+      - text: Bleve
+        url: http://blevesearch.com/
+        desc: Full-text search and indexing for Go
+      - text: CockroachDB
+        url: https://www.cockroachlabs.com/
+        desc: An evolution of the database—architected for the cloud to deliver resilient, consistent, distributed SQL at scale
+  - title: Web Libraries
+    viewMoreUrl: https://pkg.go.dev/search?q=web
+    items:
+      - text: markbates/goth
+        url: https://pkg.go.dev/github.com/markbates/goth?tab=overview
+        desc: Authentication for web apps
+      - text: jinzhu/gorm
+        url: https://pkg.go.dev/github.com/jinzhu/gorm?tab=overview
+        desc: An ORM library for Go
+      - text: dgrijalva/jwt-go
+        url: https://pkg.go.dev/github.com/dgrijalva/jwt-go?tab=overview
+        desc: A Go implementation of json web tokens
+  - title: Other Projects
+    items:
+      - text: gopherjs
+        url: https://pkg.go.dev/github.com/gopherjs/gopherjs?tab=overview
+        desc: A compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.
+`}}
+
+### Courses
+* [Learn to Create Web Applications using Go](https://www.usegolang.com), a paid online course
+
+### Projects
+*   {{pkg "github.com/gopherjs/gopherjs" "gopherjs"}}, a compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.
+*   [Hugo](https://gohugo.io/), The world’s fastest framework for building websites
+*   [Mattermost](https://mattermost.com/), a flexible, open source messaging platform
+that enables secure team collaboration
+*   [Caddy](https://caddyserver.com/), a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go
diff --git a/go.dev/_content/solutions/wildlifestudios.md b/go.dev/_content/solutions/wildlifestudios.md
new file mode 100644
index 0000000..2f6b617
--- /dev/null
+++ b/go.dev/_content/solutions/wildlifestudios.md
@@ -0,0 +1,15 @@
+---
+linkTitle: How Wildlife Studios builds backend systems in Go
+description: Wildlife is a Brazilian native global company focused on mobile
+  gaming. We aim to develop games that will make billions of people happy. We
+  have almost 40 million daily active users, and we rely on Go as the main
+  language for our core platform, given its features to scale our backend
+  services.
+logoSrc: wildlife.svg
+layout: solution
+company: Wildlife Studios
+series: Case Studies
+link:
+  https://medium.com/tech-at-wildlife-studios/pitaya-wildlifes-golang-go-af57865f7a11
+inLandingPageGrid: true
+---
diff --git a/go.dev/_content/testimonials.yaml b/go.dev/_content/testimonials.yaml
new file mode 100644
index 0000000..6264641
--- /dev/null
+++ b/go.dev/_content/testimonials.yaml
@@ -0,0 +1,54 @@
+- name: Jaime Enrique Garcia Lopez
+  title: Senior Software Development Manager
+  company: Capital One
+  quote: |-
+    “At the time, no single team member knew Go, but
+    <strong>within a month, everyone was writing in Go</strong> and we were
+    building out the endpoints. It was the flexibility, how easy it was to use,
+    and the really cool concept behind Go (how Go handles native concurrency,
+    garbage collection, and of course safety+speed.) that helped engage us
+    during the build. Also, who can beat that cute mascot!”
+- name: Clayton Coleman
+  title: Lead Engineer, Open Shift
+  company: RedHat
+  quote: |-
+    "<strong>A small language that compiles fast makes for a happy developer.</strong>
+    The Go language is small, compiles really fast, and as a result it lets your
+    mind focus on the actual problem and less on the tool you are using to solve
+    it. Code, test, debug cycles are so quick that you forget you are not
+    working with an interpreted language. Looking at our code, you see
+    <strong>less boilerplate and more business logic.</strong>"
+- name: Matt Boyle
+  title: Lead Software Engineer
+  company: Curve
+  quote: |-
+    “<strong>Go has excellent characteristics for scalability and services
+    written using it typically have very small memory footprints.</strong>
+    Because code is compiled into a single static binary, services can also be
+    containerised with ease, making it much simpler to build and deploy. These
+    attributes make <strong>Go an ideal choice for companies building
+    microservices</strong>, as you can easily deploy into a highly available and
+    scalable environment such as Kubernetes.”
+- name: Bala Natarajan
+  title: Sr. Director of Engineering, Developer Experience
+  company: PayPal
+  quote: |-
+    "In our tightly managed environments where we run Go code,
+    <strong>we have seen a CPU reduction of approximately 10%</strong>
+    with cleaner and maintainable code."
+- name: Benjamin Cane
+  title: Vice President and Principal Engineer
+  company: American Express
+  quote: |-
+    "Tooling has always been a problem with our legacy code base... but we have
+     found that Go has excellent tooling, plus built-in testing, benchmarking,
+     and profiling frameworks. It is easy to write efficient and resilient
+     applications. <strong>After working on Go, most of our developers don't want
+     to go back to other languages.</strong>"
+- name: John Biggs and Ben Popper
+  title:
+  company: Stack Overflow
+  quote: |-
+    "...when a programming language is designed for exactly the environment most
+     of us use right now—scalable, cloud-based servers that are optimized for
+      performance—a lot can go right."
\ No newline at end of file
diff --git a/go.dev/_content/tos.md b/go.dev/_content/tos.md
new file mode 100644
index 0000000..7054d11
--- /dev/null
+++ b/go.dev/_content/tos.md
@@ -0,0 +1,9 @@
+---
+title: "Terms of Service"
+layout: article
+date: 2019-11-05T15:47:16-05:00
+---
+
+The Go website (the "Website") is hosted by Google. By using and/or visiting the Website, you consent to be bound by
+Google's general <a href="//www.google.com/intl/en/policies/terms/">Terms of Service</a> and Google's general
+<a href="//www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a>.
diff --git a/go.dev/_templates/backgroundquote.tmpl b/go.dev/_templates/backgroundquote.tmpl
new file mode 100644
index 0000000..5784f97
--- /dev/null
+++ b/go.dev/_templates/backgroundquote.tmpl
@@ -0,0 +1,26 @@
+{{define "backgroundquote info" -}}
+{{- with (yaml .info)}}
+<div class="BackgroundQuote">
+{{- with .link}}
+<a href="{{.}}" target="_blank" rel="noopener">
+{{- end}}
+    <p class="BackgroundQuote-body">
+      “{{markdown .quote}}”
+    </p>
+    {{- if .author}}
+    <div class="BackgroundQuote-author">
+      <span>&mdash; {{.author}}</span>
+      {{if .title}},&nbsp;
+      <span class="BackgroundQuote-title">{{rawhtml .title}}</span>
+      {{- end}}
+      {{- if .company}}
+      <span class="BackgroundQuote-title">&nbsp;at {{.company}}</span>
+      {{- end}}
+    </div>
+    {{- end}}
+{{- if .link}}
+</a>
+{{- end}}
+</div>
+{{- end}}
+{{end}}
diff --git a/go.dev/_templates/books.tmpl b/go.dev/_templates/books.tmpl
new file mode 100644
index 0000000..4a9ddff
--- /dev/null
+++ b/go.dev/_templates/books.tmpl
@@ -0,0 +1,20 @@
+{{define "books"}}
+{{- with (yaml .)}}
+<ul class="Learn-tileList">
+    {{- range .}}
+    <li class="Learn-tile">
+        <a href="{{.url}}">
+            {{- if .thumbnail}}
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="{{.title}} thumbnail." src="{{.thumbnail}}">
+            {{- end}}
+            <span class="Learn-tileTitle">
+                {{.title}}
+            </span>
+        </a>
+    </li>
+    {{- end}}
+</ul>
+{{- end}}
+{{- end}}
diff --git a/go.dev/_templates/breadcrumbs.tmpl b/go.dev/_templates/breadcrumbs.tmpl
new file mode 100644
index 0000000..8aaea97
--- /dev/null
+++ b/go.dev/_templates/breadcrumbs.tmpl
@@ -0,0 +1,20 @@
+{{define "breadcrumbnav"}}
+{{- if .p1.Parent}}
+  {{- template "breadcrumbnav" (dict "p1" (page .p1.Parent) "p2" .p2 )}}
+{{- end}}
+{{- if not (eq .p1.title "go.dev")}}
+<li class="BreadcrumbNav-li {{if eq .p1.Path .p2.Path}}active{{end}}">
+  <a class="BreadcrumbNav-link" href="{{.p1.Path}}">
+  {{or .p1.company .p1.title}}
+  </a>
+</li>
+{{- end}}
+{{- end}}
+
+{{define "breadcrumbs"}}
+<div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+      {{template "breadcrumbnav" (dict "p1" . "p2" .)}}
+    </ol>
+</div>
+{{- end}}
diff --git a/go.dev/_templates/gopher.tmpl b/go.dev/_templates/gopher.tmpl
new file mode 100644
index 0000000..5fcd14a
--- /dev/null
+++ b/go.dev/_templates/gopher.tmpl
@@ -0,0 +1,116 @@
+{{define "gopher info" -}}
+{{- with (yaml .info)}}
+{{- $src := "/images/gophers/wrench.svg"}}
+{{- $alt := "Go gophers with wrench"}}
+{{- $size := "Large"}}
+{{- $align := "Left"}}
+{{- $gopher := .color}}
+{{- $sizeIn := (or .size "")}}
+
+{{- if eq (.align) "right" "Right"}}
+   {{- $align = "Right"}}
+{{- end}}
+
+{{- if eq $sizeIn "XLarge" "xl" "xlarge"}}
+    {{- $size = "XLarge"}}
+{{- end}}
+
+{{- if eq $gopher "plane"}}
+    {{- $src = "/images/gophers/biplane.svg"}}
+    {{- $alt = "Go gopher in a plane"}}
+{{- end}}
+{{- if eq $gopher "blue"}}
+    {{- $src = "/images/gophers/blue.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "front" "sticker1"}}
+    {{- $src = "/images/gophers/front.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "graduate"}}
+    {{- $src = "/images/gophers/graduate.svg"}}
+    {{- $alt = "Go gopher graduating"}}
+{{- end}}
+{{- if eq $gopher "graduate-colorized"}}
+    {{- $src = "/images/gophers/graduate-colorized.svg"}}
+    {{- $alt = "Go gopher graduating"}}
+{{- end}}
+{{- if eq $gopher "green"}}
+    {{- $src = "/images/gophers/green.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "grey" "gray"}}
+    {{- $src = "/images/gophers/grey.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "happy" "sticker2"}}
+    {{- $src = "/images/gophers/happy.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "headlamp"}}
+    {{- $src = "/images/gophers/headlamp.svg"}}
+    {{- $alt = "Go gopher with headlamp"}}
+{{- end}}
+{{- if eq $gopher "headlamp-colorized"}}
+    {{- $src = "/images/gophers/headlamp-colorized.svg"}}
+    {{- $alt = "Go gopher with headlamp"}}
+{{- end}}
+{{- if eq $gopher "ladder"}}
+    {{- $src = "/images/gophers/ladder.svg"}}
+    {{- $alt = "Go gopher with ladder"}}
+{{- end}}
+{{- if eq $gopher "machine"}}
+    {{- $src = "/images/gophers/machine.svg"}}
+    {{- $alt = "Go gophers with a machine"}}
+{{- end}}
+{{- if eq $gopher "machine-colorized"}}
+    {{- $src = "/images/gophers/machine-colorized.svg"}}
+    {{- $alt = "Go gopher with a machine"}}
+{{- end}}
+{{- if eq $gopher "megaphone"}}
+    {{- $src = "/images/gophers/megaphone.svg"}}
+    {{- $alt = "Go gopher with a megaphone"}}
+{{- end}}
+{{- if eq $gopher "peach"}}
+    {{- $src = "/images/gophers/peach.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "pilot-bust"}}
+    {{- $src = "/images/gophers/pilot-bust.svg"}}
+    {{- $alt = "Go gopher pilot"}}
+{{- end}}
+{{- if eq $gopher "pink"}}
+    {{- $src = "/images/gophers/pink.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "running"}}
+    {{- $src = "/images/gophers/running.svg"}}
+    {{- $alt = "Go gopher running"}}
+{{- end}}
+{{- if eq $gopher "slate"}}
+    {{- $src = "/images/gophers/slate.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "wrench"}}
+    {{- $src = "/images/gophers/wrench.svg"}}
+    {{- $alt = "gopher with a wrench"}}
+{{- end}}
+{{- if eq $gopher "yellow"}}
+    {{- $src = "/images/gophers/yellow.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "violet"}}
+    {{- $src = "/images/gophers/violet.svg"}}
+    {{- $alt = "Go gopher"}}
+{{- end}}
+{{- if eq $gopher "factory"}}
+    {{- $src = "/images/gophers/factory.png"}}
+    {{- $alt = "Go gopher factory"}}
+{{- end}}
+<img
+  loading="lazy"
+  class="{{$size}}Media-image {{$align}}"
+  alt="{{$alt}}"
+  src="{{$src}}">
+{{- end}}
+{{- end}}
diff --git a/go.dev/_templates/layouts/article.tmpl b/go.dev/_templates/layouts/article.tmpl
new file mode 100644
index 0000000..6b6d7a3
--- /dev/null
+++ b/go.dev/_templates/layouts/article.tmpl
@@ -0,0 +1,6 @@
+{{define "layout"}}
+  <article class="Article {{if ne .Section "/"}}Article--{{trim .Section "/"}}{{end -}}">
+    <h1>{{.title}}</h1>
+    {{.Content}}
+  </article>
+{{end}}
\ No newline at end of file
diff --git a/go.dev/_templates/layouts/default.tmpl b/go.dev/_templates/layouts/default.tmpl
new file mode 100644
index 0000000..ae82f43
--- /dev/null
+++ b/go.dev/_templates/layouts/default.tmpl
@@ -0,0 +1,3 @@
+{{define "layout"}}
+{{.Content}}
+{{end}}
diff --git a/go.dev/_templates/layouts/site.tmpl b/go.dev/_templates/layouts/site.tmpl
new file mode 100644
index 0000000..96b6af9
--- /dev/null
+++ b/go.dev/_templates/layouts/site.tmpl
@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<!-- Google Tag Manager -->
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+  <!-- End Google Tag Manager -->
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+  <!-- Google Tag Manager -->
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+  <!-- End Google Tag Manager -->
+<script src="/js/site.js"></script>
+<title>{{.title}}{{if .Parent}} - go.dev{{end}}</title>
+{{if .link -}}
+<meta http-equiv="refresh" content="0; url={{.link}}">
+{{end -}}
+</head>
+<body class="Site">
+  <!-- Google Tag Manager (noscript) -->
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+  <!-- End Google Tag Manager (noscript) -->
+
+{{$menus := data "menus"}}
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+        {{template "search-form" .}}
+        <ul class="Header-menu">
+          {{- $currentPage := .}}
+          {{- range $menus.main}}
+          <li class="Header-menuItem {{if eq $currentPage.title .name}} Header-menuItem--active{{end}}">
+            <a href="{{.url}}">{{.name}}</a>
+          </li>
+          {{- end}}
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+    {{ if (eq .series "Use Cases") }}
+    <div class="UseCaseSubNav js-useCaseSubnav">
+      <button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader">
+        Jump to
+        <img
+          class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon"
+          alt="Open menu icon" src="/images/icons/chevron-down.svg">
+      </button>
+      <div class="UseCaseSubNav-menu js-useCaseSubnavMenu">
+        <div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks">
+        </div>
+      </div>
+    </div>
+    {{end}}
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+      {{- range $menus.main}}
+        <li class="NavigationDrawer-listItem {{if eq .url $currentPage.Section}} NavigationDrawer-listItem--active{{end}}">
+          <a href="{{.url}}">{{.name}}</a>
+        </li>
+      {{- end}}
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+  {{- block "layout" . -}}{{- end -}}
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+        {{- range $menus.footer}}
+          <div class="Footer-linkColumn">
+            <a href="{{.url}}" class="Footer-link Footer-link--primary">
+              {{.name}}
+            </a>
+            {{- range .children}}
+              <a href="{{.url}}" class="Footer-link">
+                {{.name}}
+              </a>
+            {{- end}}
+          </div>
+        {{- end}}
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
+
+{{define "search-form"}}
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+{{end}}
diff --git a/go.dev/_templates/layouts/solution.tmpl b/go.dev/_templates/layouts/solution.tmpl
new file mode 100644
index 0000000..580be32
--- /dev/null
+++ b/go.dev/_templates/layouts/solution.tmpl
@@ -0,0 +1,82 @@
+{{define "layout"}}
+<div>
+  <div class="WhoUsesSubPage-hero{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
+    <div class="WhoUsesSubPage-heroInner{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
+      <div class="WhoUsesSubPage-heroContent{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
+        <div class="WhoUsesSubPage-heroText{{if (eq .series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
+          {{breadcrumbs .}}
+          <h1>{{.title}}</h1>
+          {{range .authors}}
+            <div class="Article-author">{{.}}</div>
+          {{end}}
+          {{if .date}}
+            <div class="Article-date">{{.Date.Format "2 January 2006"}}</div>
+          {{end}}
+        </div>
+          {{if .company}}
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/{{ .heroImgSrc }}" alt="{{.company }}">
+            </div>
+          {{end}}
+        </div>
+      </div>
+
+  </div>
+  <article class="Article {{if ne .Section "/"}}Article--{{trim .Section "/"}}{{end -}}">
+    {{if (eq .series "Case Studies") }}
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+          {{.Content}}
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+            <img src="/images/logos/{{.logoSrc}}" class="CaseStudy-aboutBlockImg" alt="{{.company}}">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About {{.company}}
+            </h3>
+            {{if .description}}
+              <p class="CaseStudy-aboutBlockBody">{{markdown .description}}</p>
+            {{ else }}
+              <p class="CaseStudy-aboutBlockBody">{{markdown .quote}}</p>
+            {{end}}
+          </div>
+        </div>
+      </div>
+    {{else if (eq .series "Use Cases") }}
+      <div class="UseCase-content">
+        <div class="UseCase-contentAside">
+          <div
+            class="js-useCaseStickyNav UseCaseSubNav-anchorLinks">
+          </div>
+        </div>
+        <div class="UseCase-contentBody js-useCaseContentBody">
+          <!-- Messaging -->
+          {{ if .inlineMessage }}
+            <div class="InlineMessage">
+              <span class="InlineMessage-imageWrap">
+                <img
+                  loading="lazy"
+                  class="InlineMessage-img"
+                  src="/images/gophers/megaphone-gopher.svg"
+                  alt="Gopher with megaphone">
+              </span>
+              <span class="InlineMessage-description">
+                <p class="InlineMessage-descParagraph">{{ .inlineMessage.description }}</p>
+              </span>
+              <span class="InlineMessage-ctas">
+                <a href="{{ .inlineMessage.ctas.primary.url }}" class="InlineMessage-cta">
+                  {{ .inlineMessage.ctas.primary.title }}
+                </a>
+                <a href="{{ .inlineMessage.ctas.secondary.url }}" class="InlineMessage-cta">
+                  {{ .inlineMessage.ctas.secondary.title }}
+                </a>
+              </span>
+            </div>
+          {{ end }}
+          {{rawhtml (replace .Content ` .sectionHeading">` `" class="sectionHeading">`)}}
+        </div>
+      </div>
+    {{end}}
+  </article>
+</div>
+{{end}}
diff --git a/go.dev/_templates/libraries.tmpl b/go.dev/_templates/libraries.tmpl
new file mode 100644
index 0000000..dd67702
--- /dev/null
+++ b/go.dev/_templates/libraries.tmpl
@@ -0,0 +1,18 @@
+{{define "libraries"}}
+{{- range (yaml .)}}
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>{{.title}}</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+    {{- range .items}}
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="{{.url}}">{{.text}}</a>
+      <p>{{.desc}}</p>
+    </li>
+    {{- end}}
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="{{.viewMoreUrl}}">View More</a>
+</div>
+{{- end}}
+{{- end}}
diff --git a/go.dev/_templates/pkg.tmpl b/go.dev/_templates/pkg.tmpl
new file mode 100644
index 0000000..19d7630
--- /dev/null
+++ b/go.dev/_templates/pkg.tmpl
@@ -0,0 +1,3 @@
+{{define "pkg path name?" -}}
+<a href="https://pkg.go.dev/{{.path}}?tab=overview">{{or .name .path}}</a>
+{{- end}}
diff --git a/go.dev/_templates/projects.tmpl b/go.dev/_templates/projects.tmpl
new file mode 100644
index 0000000..b21d5a6
--- /dev/null
+++ b/go.dev/_templates/projects.tmpl
@@ -0,0 +1,47 @@
+{{define "projects"}}
+<div class="FeaturedUsers">
+
+<h2 id="featured-users" class="sectionHeading">Featured users</h2>
+
+<table>
+  <thead>
+    <tr>
+      <th class="FeaturedUsers--hiddenMobile">Customer</th>
+      <th>Brief introduction</th>
+      <th>Projects using go</th>
+    </tr>
+  </thead>
+  <tbody>
+    {{- range $index, $project := (yaml .)}}
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+      {{- if (gt $index 2) }}
+      hidden {{end}}
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/{{.logoSrc}}" alt="{{.company}}" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/{{.logoSrc}}" alt="{{.company}}" />
+        {{.desc}}
+      </td>
+      <td>
+        <ul>
+          {{- range .ctas}}
+          <li><a href="{{.url}}">{{.text}}</a></li>
+          {{- end}}
+        </ul>
+      </td>
+    </tr>
+    {{- end}}
+  </tbody>
+</table>
+<button
+  class="js-moreProjectsBtn FeaturedUsers-moreProjectsBtn"
+  type="button">
+ More projects
+</button>
+</div>
+{{end}}
diff --git a/go.dev/_templates/pullquote.tmpl b/go.dev/_templates/pullquote.tmpl
new file mode 100644
index 0000000..aa64dd6
--- /dev/null
+++ b/go.dev/_templates/pullquote.tmpl
@@ -0,0 +1,34 @@
+{{define "pullquote info" -}}
+{{- with (yaml .info)}}
+<div class="PullQuote">
+  <div class="PullQuote-quoteHeader">
+    <img class="PullQuote-image" src="/images/quote.svg" alt="Quotation mark.">
+  </div>
+  <p class="PullQuote-body">
+    {{markdown .quote}}
+  </p>
+  {{- if .author}}
+  <div class="PullQuote-author">
+    {{- with .link}}
+    <a
+      class="PullQuote-link"
+      href="{{.}}"
+      target="_blank"
+      rel="noopener">
+    {{- end}}
+    <span>
+      &mdash; {{.author -}}
+    </span>
+    {{if .title}},&nbsp;
+      <span class="PullQuote-title">{{rawhtml .title}}</span>
+    {{- end}}
+    {{- if .company}}
+      <span class="PullQuote-title">&nbsp;at {{.company -}}</span>
+    {{- end}}
+    {{- with .link}}</a>{{end}}
+  </div>
+  {{- end}}
+</div>
+{{- end}}
+{{end}}
+
diff --git a/go.dev/_templates/quote.tmpl b/go.dev/_templates/quote.tmpl
new file mode 100644
index 0000000..1355467
--- /dev/null
+++ b/go.dev/_templates/quote.tmpl
@@ -0,0 +1,21 @@
+{{define "quote info" -}}
+{{- with (yaml .info)}}
+<div class="QuoteBlock">
+  <p class="QuoteBlock-body">
+    {{markdown .quote}}
+  </p>
+  {{- if .author}}
+    <div class="QuoteBlock-author">
+      {{- with .link}}
+        <a class="QuoteBlock-link" href="{{.}}" target="_blank" rel="noopener">
+      {{- end}}
+      &mdash; {{.author}}
+      {{- if .title}},&nbsp;<span>{{.title}}</span>{{end}}
+      {{- with .link}}
+      </a>
+      {{- end -}}
+    </div>
+  {{- end}}
+</div>
+{{- end}}
+{{end}}
diff --git a/go.dev/_templates/toolsblurbs.tmpl b/go.dev/_templates/toolsblurbs.tmpl
new file mode 100644
index 0000000..299858c
--- /dev/null
+++ b/go.dev/_templates/toolsblurbs.tmpl
@@ -0,0 +1,18 @@
+{{define "toolsblurbs"}}
+<div class="ToolsBlurbs">
+  {{- range (yaml .)}}
+  <div class="ToolsBlurbs-blurb">
+    <a class="ToolsBlurbs-blurbHeader" href="{{.url}}">
+      <img class="ToolsBlurbs-blurbIcon" src="{{.iconSrc}}" alt="{{.title}}">
+      <span>{{.title}}</span>
+    </a>
+    {{- range .paragraphs}}
+      <p class="ToolsBlurbs-blurbBody">
+        {{.}}
+      </p>
+    {{- end}}
+  </div>
+  {{- end}}
+</div>
+
+{{end}}
diff --git a/go.dev/app.learn.yaml b/go.dev/app.learn.yaml
new file mode 100644
index 0000000..115fb42
--- /dev/null
+++ b/go.dev/app.learn.yaml
@@ -0,0 +1,8 @@
+runtime: go113
+service: learn-go-dev
+main: ./cmd/frontend
+
+handlers:
+  - url: /.*
+    secure: always
+    script: auto
diff --git a/go.dev/app.staging.learn.yaml b/go.dev/app.staging.learn.yaml
new file mode 100644
index 0000000..d207f22
--- /dev/null
+++ b/go.dev/app.staging.learn.yaml
@@ -0,0 +1,8 @@
+runtime: go113
+service: staging-learn-go-dev
+main: ./cmd/frontend
+
+handlers:
+  - url: /.*
+    secure: always
+    script: auto
diff --git a/go.dev/app.staging.yaml b/go.dev/app.staging.yaml
new file mode 100644
index 0000000..4430cea
--- /dev/null
+++ b/go.dev/app.staging.yaml
@@ -0,0 +1,8 @@
+runtime: go113
+service: staging-go-dev
+main: ./cmd/frontend
+
+handlers:
+  - url: /.*
+    secure: always
+    script: auto
diff --git a/go.dev/app.yaml b/go.dev/app.yaml
new file mode 100644
index 0000000..c21497d
--- /dev/null
+++ b/go.dev/app.yaml
@@ -0,0 +1,8 @@
+runtime: go113
+service: go-dev
+main: ./cmd/frontend
+
+handlers:
+  - url: /.*
+    secure: always
+    script: auto
diff --git a/go.dev/cloudbuild.ci.yaml b/go.dev/cloudbuild.ci.yaml
new file mode 100644
index 0000000..3c494ef
--- /dev/null
+++ b/go.dev/cloudbuild.ci.yaml
@@ -0,0 +1,11 @@
+steps:
+  - name: 'mirror.gcr.io/library/golang'
+    entrypoint: bash
+    args:
+      - -c
+      - go test ./...
+  - name: 'mirror.gcr.io/library/golang'
+    entrypoint: bash
+    args:
+      - -c
+      - go run ./cmd/events/ > ./_content/events.yaml
diff --git a/go.dev/cloudbuild.staging.yaml b/go.dev/cloudbuild.staging.yaml
new file mode 100644
index 0000000..f6f473d
--- /dev/null
+++ b/go.dev/cloudbuild.staging.yaml
@@ -0,0 +1,14 @@
+steps:
+  - name: 'mirror.gcr.io/library/golang'
+    entrypoint: bash
+    args:
+      - -c
+      - go run ./cmd/events/ > ./_content/events.yaml
+  - name: "gcr.io/cloud-builders/gcloud"
+    args: ["app", "deploy", "app.staging.yaml"]
+  - name: "gcr.io/cloud-builders/gcloud"
+    args: ["app", "deploy", "app.staging.learn.yaml"]
+  - name: 'mirror.gcr.io/library/golang'
+    args: ["go", "run", "./cmd/versionprune", "--project=$PROJECT_ID", "--service=staging-go-dev", "--dry_run=false"]
+  - name: 'mirror.gcr.io/library/golang'
+    args: ["go", "run", "./cmd/versionprune", "--project=$PROJECT_ID", "--service=staging-learn-go-dev", "--dry_run=false"]
diff --git a/go.dev/cloudbuild.yaml b/go.dev/cloudbuild.yaml
new file mode 100644
index 0000000..bdf18ad
--- /dev/null
+++ b/go.dev/cloudbuild.yaml
@@ -0,0 +1,14 @@
+steps:
+  - name: 'mirror.gcr.io/library/golang'
+    entrypoint: bash
+    args:
+      - -c
+      - go run ./cmd/events/ > ./_content/events.yaml
+  - name: "gcr.io/cloud-builders/gcloud"
+    args: ["app", "deploy"]
+  - name: "gcr.io/cloud-builders/gcloud"
+    args: ["app", "deploy", "app.learn.yaml"]
+  - name: 'mirror.gcr.io/library/golang'
+    args: ["go", "run", "./cmd/versionprune", "--project=$PROJECT_ID", "--service=go-dev", "--dry_run=false"]
+  - name: 'mirror.gcr.io/library/golang'
+    args: ["go", "run", "./cmd/versionprune", "--project=$PROJECT_ID", "--service=learn-go-dev", "--dry_run=false"]
diff --git a/go.dev/cmd/events/main.go b/go.dev/cmd/events/main.go
new file mode 100644
index 0000000..1b1e7a0
--- /dev/null
+++ b/go.dev/cmd/events/main.go
@@ -0,0 +1,304 @@
+// 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 main
+
+import (
+	"encoding/json"
+	"fmt"
+	"log"
+	"net/http"
+	"os"
+	"path"
+	"strings"
+	"time"
+
+	"github.com/microcosm-cc/bluemonday"
+	"gopkg.in/yaml.v2"
+)
+
+const (
+	// eventLimit is the maximum number of events that will be output.
+	eventLimit = 15
+	// groupsSummaryPath is an API endpoint that returns global Go groups.
+	// Fetching from this API path allows to sort groups by next upcoming event.
+	groupsSummaryPath = "/pro/go/es_groups_summary?location=global&order=next_event&desc=false"
+	// eventsHeader is a header comment for the output content.
+	eventsHeader = `# DO NOT EDIT: Autogenerated from cmd/events.
+# To update, run:
+#    go run github.com/godevsite/go.dev/cmd/events > _content/events.yaml`
+)
+
+func main() {
+	c := &meetupAPI{
+		baseURL: "https://api.meetup.com",
+	}
+	ue, err := getUpcomingEvents(c)
+	if err != nil {
+		log.Fatal(err)
+	}
+	printYAML(ue)
+}
+
+type client interface {
+	getGroupsSummary() (*GroupsSummary, error)
+	getGroup(urlName string) (*Group, error)
+}
+
+// getUpcomingEvents returns upcoming events globally.
+func getUpcomingEvents(c client) (*UpcomingEvents, error) {
+	summary, err := c.getGroupsSummary()
+	if err != nil {
+		return nil, err
+	}
+	p := bluemonday.NewPolicy()
+	p.AllowStandardURLs()
+	p.AllowAttrs("href").OnElements("a")
+	p.AllowElements("br")
+	// Work around messy newlines in content.
+	r := strings.NewReplacer("\n", "<br/>\n", "&lt;br&gt;", "<br/>\n")
+	var events []EventData
+	for _, chapter := range summary.Chapters {
+		if len(events) >= eventLimit {
+			break
+		}
+		group, err := c.getGroup(chapter.URLName)
+		if err != nil || group.NextEvent == nil {
+			continue
+		}
+		tz, err := time.LoadLocation(group.Timezone)
+		if err != nil {
+			tz = time.UTC
+		}
+		// group.NextEvent.Time is in milliseconds since UTC epoch.
+		nextEventTime := time.Unix(group.NextEvent.Time/1000, 0).In(tz)
+		events = append(events, EventData{
+			City:              chapter.City,
+			Country:           chapter.Country,
+			Description:       r.Replace(p.Sanitize(chapter.Description)), // Event descriptions are often blank, use Group description.
+			ID:                group.NextEvent.ID,
+			LocalDate:         nextEventTime.Format("Jan 2, 2006"),
+			LocalTime:         nextEventTime.Format(time.RFC3339),
+			LocalizedCountry:  group.LocalizedCountryName,
+			LocalizedLocation: group.LocalizedLocation,
+			Name:              group.NextEvent.Name,
+			PhotoURL:          chapter.GroupPhoto.PhotoLink,
+			State:             chapter.State,
+			ThumbnailURL:      chapter.GroupPhoto.ThumbLink,
+			URL:               "https://www.meetup.com/" + path.Join(chapter.URLName, "events", group.NextEvent.ID),
+		})
+	}
+	return &UpcomingEvents{All: events}, nil
+}
+
+type meetupAPI struct {
+	baseURL string
+}
+
+func (c *meetupAPI) getGroupsSummary() (*GroupsSummary, error) {
+	resp, err := http.Get(c.baseURL + groupsSummaryPath)
+	if err != nil {
+		return nil, fmt.Errorf("failed to get events from %q: %v", groupsSummaryPath, err)
+	}
+	defer resp.Body.Close()
+	if resp.StatusCode != http.StatusOK {
+		return nil, fmt.Errorf("failed to get events from %q: %v", groupsSummaryPath, resp.Status)
+	}
+	var summary *GroupsSummary
+	d := json.NewDecoder(resp.Body)
+	if err := d.Decode(&summary); err != nil {
+		return summary, fmt.Errorf("failed to decode events from %q: %w", groupsSummaryPath, err)
+	}
+	return summary, nil
+}
+
+// getGroup fetches group details, which are useful for getting details of the next upcoming event, and timezones.
+func (c *meetupAPI) getGroup(urlName string) (*Group, error) {
+	u := c.baseURL + "/" + urlName
+	resp, err := http.Get(u)
+	if err != nil {
+		return nil, fmt.Errorf("failed to fetch group details from %q: %w", u, err)
+	}
+	defer resp.Body.Close()
+	if resp.StatusCode != http.StatusOK {
+		return nil, fmt.Errorf("failed to fetch group details from %q: %v", u, resp.Status)
+	}
+
+	var group Group
+	d := json.NewDecoder(resp.Body)
+	if err := d.Decode(&group); err != nil {
+		return nil, fmt.Errorf("failed to decode group from %q: %w", u, err)
+	}
+	return &group, nil
+}
+
+func printYAML(v interface{}) {
+	fmt.Println(eventsHeader)
+	e := yaml.NewEncoder(os.Stdout)
+	defer e.Close()
+	if err := e.Encode(v); err != nil {
+		log.Fatalf("failed to encode event yaml: %v", err)
+	}
+}
+
+// UpcomingEvents is a list of EventData written out to YAML for rendering in Hugo.
+type UpcomingEvents struct {
+	All []EventData
+}
+
+// EventData is the structure written out to YAML for rendering in Hugo.
+type EventData struct {
+	City              string
+	Country           string
+	Description       string
+	ID                string
+	LocalDate         string `yaml:"local_date"`
+	LocalTime         string `yaml:"local_time"`
+	LocalizedCountry  string
+	LocalizedLocation string
+	Name              string
+	PhotoURL          string
+	State             string
+	ThumbnailURL      string
+	URL               string
+}
+
+// GroupsSummary is the structure returned from /pro/go/es_groups_summary.
+type GroupsSummary struct {
+	Chapters []*Chapter
+}
+
+type Event struct {
+	Created       int    `json:"created"`
+	Description   string `json:"description"`
+	Duration      int    `json:"duration"`
+	Fee           *Fee   `json:"fee"`
+	Group         *Group `json:"group"`
+	LocalDate     string `json:"local_date"`
+	LocalTime     string `json:"local_time"`
+	ID            string `json:"id"`
+	Link          string `json:"link"`
+	Name          string `json:"name"`
+	RSVPLimit     int    `json:"rsvp_limit"`
+	Status        string `json:"status"`
+	Time          int64  `json:"time"`
+	UTCOffset     int    `json:"utc_offset"`
+	Updated       int    `json:"updated"`
+	Venue         *Venue `json:"venue"`
+	WaitlistCount int    `json:"waitlist_count"`
+	YesRSVPCount  int    `json:"yes_rsvp_count"`
+}
+
+type Venue struct {
+	Address1             string  `json:"address_1"`
+	Address2             string  `json:"address_2"`
+	Address3             string  `json:"address_3"`
+	City                 string  `json:"city"`
+	Country              string  `json:"country"`
+	ID                   int     `json:"id"`
+	Lat                  float64 `json:"lat"`
+	LocalizedCountryName string  `json:"localized_country_name"`
+	Lon                  float64 `json:"lon"`
+	Name                 string  `json:"name"`
+	Repinned             bool    `json:"repinned"`
+	State                string  `json:"state"`
+	Zip                  string  `json:"zip"`
+}
+
+type Group struct {
+	Country              string  `json:"country"`
+	Created              int     `json:"created"`
+	Description          string  `json:"description"`
+	ID                   int     `json:"id"`
+	JoinMode             string  `json:"join_mode"`
+	Lat                  float64 `json:"lat"`
+	LocalizedLocation    string  `json:"localized_location"`
+	LocalizedCountryName string  `json:"localized_country_name"`
+	Lon                  float64 `json:"lon"`
+	Name                 string  `json:"name"`
+	NextEvent            *Event  `json:"next_event"`
+	Region               string  `json:"region"`
+	Timezone             string  `json:"timezone"`
+	URLName              string  `json:"urlname"`
+	Who                  string  `json:"who"`
+}
+
+type Fee struct {
+	Accepts     string  `json:"accepts"`
+	Amount      float64 `json:"amount"`
+	Currency    string  `json:"currency"`
+	Description string  `json:"description"`
+	Label       string  `json:"label"`
+	Required    bool    `json:"required"`
+}
+
+type Chapter struct {
+	AverageAge     float64        `json:"average_age"`
+	Category       []Category     `json:"category"`
+	City           string         `json:"city"`
+	Country        string         `json:"country"`
+	Description    string         `json:"description"`
+	FoundedDate    int64          `json:"founded_date"`
+	GenderFemale   float64        `json:"gender_female"`
+	GenderMale     float64        `json:"gender_male"`
+	GenderOther    float64        `json:"gender_other"`
+	GenderUnknown  float64        `json:"gender_unknown"`
+	GroupPhoto     GroupPhoto     `json:"group_photo"`
+	ID             int            `json:"id"`
+	LastEvent      int64          `json:"last_event"`
+	Lat            float64        `json:"lat"`
+	Lon            float64        `json:"lon"`
+	MemberCount    int            `json:"member_count"`
+	Name           string         `json:"name"`
+	NextEvent      int64          `json:"next_event"`
+	OrganizerPhoto OrganizerPhoto `json:"organizer_photo"`
+	Organizers     []Organizer    `json:"organizers"`
+	PastEvents     int            `json:"past_events"`
+	PastRSVPs      int            `json:"past_rsvps"`
+	ProJoinDate    int64          `json:"pro_join_date"`
+	RSVPsPerEvent  float64        `json:"rsvps_per_event"`
+	RepeatRSVPers  int            `json:"repeat_rsvpers"`
+	State          string         `json:"state"`
+	Status         string         `json:"status"`
+	Topics         []Topic        `json:"topics"`
+	URLName        string         `json:"urlname"`
+	UpcomingEvents int            `json:"upcoming_events"`
+}
+
+type Topic struct {
+	ID     int    `json:"id"`
+	Name   string `json:"name"`
+	URLkey string `json:"urlkey"`
+	Lang   string `json:"lang"`
+}
+
+type Category struct {
+	ID        int    `json:"id"`
+	Name      string `json:"name"`
+	Shortname string `json:"shortname"`
+	SortName  string `json:"sort_name"`
+}
+
+type Organizer struct {
+	Name       string `json:"name"`
+	MemberID   int    `json:"member_id"`
+	Permission string `json:"permission"`
+}
+
+type OrganizerPhoto struct {
+	BaseURL     string `json:"base_url"`
+	HighresLink string `json:"highres_link"`
+	ID          int    `json:"id"`
+	PhotoLink   string `json:"photo_link"`
+	ThumbLink   string `json:"thumb_link"`
+	Type        string `json:"type"`
+}
+
+type GroupPhoto struct {
+	BaseURL     string `json:"base_url"`
+	HighresLink string `json:"highres_link"`
+	ID          int    `json:"id"`
+	PhotoLink   string `json:"photo_link"`
+	ThumbLink   string `json:"thumb_link"`
+	Type        string `json:"type"`
+}
diff --git a/go.dev/cmd/events/main_test.go b/go.dev/cmd/events/main_test.go
new file mode 100644
index 0000000..949887e
--- /dev/null
+++ b/go.dev/cmd/events/main_test.go
@@ -0,0 +1,66 @@
+package main
+
+import (
+	"fmt"
+	"testing"
+
+	"github.com/google/go-cmp/cmp"
+)
+
+var (
+	noEventGroup       = &Group{Name: "no event group"}
+	upcomingEventGroup = &Group{
+		Name:     "Upcoming Event Group",
+		Timezone: "Europe/Oslo",
+		NextEvent: &Event{
+			ID:   "12345",
+			Name: "Upcoming Event",
+			Time: 1262976000000,
+		},
+	}
+	fakeGroups = map[string]*Group{
+		"noEvent": noEventGroup,
+		"ueg":     upcomingEventGroup,
+	}
+)
+
+type fakeClient struct{}
+
+func (f fakeClient) getGroupsSummary() (*GroupsSummary, error) {
+	return &GroupsSummary{Chapters: []*Chapter{
+		{URLName: "noEvent"},
+		{
+			URLName:     "ueg",
+			Description: "We host our own events\n",
+		},
+	}}, nil
+}
+
+func (f fakeClient) getGroup(urlName string) (*Group, error) {
+	g, ok := fakeGroups[urlName]
+	if !ok {
+		return nil, fmt.Errorf("no group %q", urlName)
+	}
+	return g, nil
+}
+
+func TestGetUpcomingEvents(t *testing.T) {
+	want := &UpcomingEvents{All: []EventData{
+		{
+			Name:        "Upcoming Event",
+			ID:          "12345",
+			Description: "We host our own events<br/>\n",
+			LocalDate:   "Jan 8, 2010",
+			LocalTime:   "2010-01-08T19:40:00+01:00",
+			URL:         "https://www.meetup.com/ueg/events/12345",
+		},
+	}}
+	f := fakeClient{}
+	got, err := getUpcomingEvents(f)
+	if err != nil {
+		t.Fatalf("getUpcomingEvents(%v) error = %v, wanted no error", f, err)
+	}
+	if diff := cmp.Diff(want, got); diff != "" {
+		t.Errorf("getUpcomingEvents(%v) mismatch (-want +got):\n%s", f, diff)
+	}
+}
diff --git a/go.dev/cmd/frontend/csp.go b/go.dev/cmd/frontend/csp.go
new file mode 100644
index 0000000..e67f07f
--- /dev/null
+++ b/go.dev/cmd/frontend/csp.go
@@ -0,0 +1,104 @@
+// 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 main
+
+import (
+	"net/http"
+	"sort"
+	"strings"
+)
+
+// addCSP returns a handler that adds the appropriate Content-Security-Policy header
+// to the response and then invokes h.
+func addCSP(h http.Handler) http.Handler {
+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+		var ks []string
+		for k := range csp {
+			ks = append(ks, k)
+		}
+		sort.Strings(ks)
+
+		var sb strings.Builder
+		for _, k := range ks {
+			sb.WriteString(k)
+			sb.WriteString(" ")
+			sb.WriteString(strings.Join(csp[k], " "))
+			sb.WriteString("; ")
+		}
+
+		w.Header().Set("Content-Security-Policy", sb.String())
+
+		h.ServeHTTP(w, r)
+	})
+}
+
+const (
+	self         = "'self'"
+	none         = "'none'"
+	unsafeInline = "'unsafe-inline'"
+)
+
+var csp = map[string][]string{
+	"connect-src": {
+		"https://golang.org",
+		"www.google-analytics.com",
+		"stats.g.doubleclick.net",
+	},
+	"default-src": {
+		self,
+	},
+	"font-src": {
+		self,
+		"fonts.googleapis.com",
+		"fonts.gstatic.com",
+		"data:",
+	},
+	"style-src": {
+		self,
+		unsafeInline,
+		"fonts.googleapis.com",
+		"feedback.googleusercontent.com",
+		"www.gstatic.com",
+		"gstatic.com",
+		"tagmanager.google.com",
+	},
+	"frame-src": {
+		self,
+		"www.google.com",
+		"feedback.googleusercontent.com",
+		"www.googletagmanager.com",
+		"scone-pa.clients6.google.com",
+	},
+	"img-src": {
+		self,
+		"www.google.com",
+		"www.google-analytics.com",
+		"ssl.gstatic.com",
+		"www.gstatic.com",
+		"gstatic.com",
+		"data: *",
+	},
+	"object-src": {
+		none,
+	},
+	"script-src": {
+		self,
+		"'sha256-n6OdwTrm52KqKm6aHYgD0TFUdMgww4a0GQlIAVrMzck='", // Google Tag Manager main snippet
+		"'sha256-4ryYrf7Y5daLOBv0CpYtyBIcJPZkRD2eBPdfqsN3r1M='", // Google Tag Manager Preview mode
+		"'sha256-sVKX08+SqOmnWhiySYk3xC7RDUgKyAkmbXV2GWts4fo='", // Google Tag Manager Preview mode
+		"www.google.com",
+		"apis.google.com",
+		"www.gstatic.com",
+		"gstatic.com",
+		"support.google.com",
+		"www.googletagmanager.com",
+		"www.google-analytics.com",
+		"ssl.google-analytics.com",
+		"tagmanager.google.com",
+	},
+	"frame-ancestors": {
+		none,
+	},
+}
diff --git a/go.dev/cmd/frontend/main.go b/go.dev/cmd/frontend/main.go
new file mode 100644
index 0000000..93572e4
--- /dev/null
+++ b/go.dev/cmd/frontend/main.go
@@ -0,0 +1,70 @@
+// 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 main
+
+import (
+	"log"
+	"net"
+	"net/http"
+	"net/url"
+	"os"
+
+	"golang.org/x/go.dev/cmd/internal/site"
+)
+
+var discoveryHosts = map[string]string{
+	"":               "pkg.go.dev",
+	"dev.go.dev":     "dev-pkg.go.dev",
+	"staging.go.dev": "staging-pkg.go.dev",
+}
+
+func main() {
+	dir := "../.."
+	if _, err := os.Stat("_content"); err == nil {
+		// Running in repo root.
+		dir = "."
+	}
+	godev, err := site.Load(dir)
+	if err != nil {
+		log.Fatal(err)
+	}
+	http.Handle("/", addCSP(http.FileServer(godev)))
+	http.Handle("/explore/", http.StripPrefix("/explore/", redirectHosts(discoveryHosts)))
+	http.Handle("/learn/", http.StripPrefix("/learn/", redirectHosts(map[string]string{"": "learn.go.dev"})))
+
+	addr := ":" + listenPort()
+	if addr == ":0" {
+		addr = "localhost:0"
+	}
+	l, err := net.Listen("tcp", addr)
+	if err != nil {
+		log.Fatalf("net.Listen(%q, %q) = _, %v", "tcp", addr, err)
+	}
+	defer l.Close()
+	log.Printf("Listening on http://%v/\n", l.Addr().String())
+	log.Print(http.Serve(l, nil))
+}
+
+func listenPort() string {
+	if p := os.Getenv("PORT"); p != "" {
+		return p
+	}
+	return "0"
+}
+
+type redirectHosts map[string]string
+
+func (rh redirectHosts) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+	u := &url.URL{Scheme: "https", Path: r.URL.Path, RawQuery: r.URL.RawQuery}
+	if h, ok := rh[r.Host]; ok {
+		u.Host = h
+	} else if h, ok := rh[""]; ok {
+		u.Host = h
+	} else {
+		http.NotFound(w, r)
+		return
+	}
+	http.Redirect(w, r, u.String(), http.StatusFound)
+}
diff --git a/go.dev/cmd/frontend/main_test.go b/go.dev/cmd/frontend/main_test.go
new file mode 100644
index 0000000..8f25d39
--- /dev/null
+++ b/go.dev/cmd/frontend/main_test.go
@@ -0,0 +1,108 @@
+// 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 main
+
+import (
+	"bytes"
+	"net/http"
+	"net/http/httptest"
+	"strings"
+	"testing"
+
+	"golang.org/x/go.dev/cmd/internal/site"
+)
+
+var testHosts = map[string]string{
+	"":                     "foo.example.test",
+	"dev.example.test":     "foo-dev.example.test",
+	"staging.example.test": "foo-staging.example.test",
+}
+
+func TestRedirect(t *testing.T) {
+	tests := []struct {
+		desc     string
+		target   string
+		hosts    map[string]string
+		want     string
+		wantCode int
+	}{
+		{
+			desc:     "basic redirect",
+			target:   "/",
+			hosts:    testHosts,
+			want:     "https://foo.example.test/",
+			wantCode: http.StatusFound,
+		},
+		{
+			desc:     "redirect keeps query and path",
+			target:   "/github.com/golang/glog?tab=overview",
+			hosts:    testHosts,
+			want:     "https://foo.example.test/github.com/golang/glog?tab=overview",
+			wantCode: http.StatusFound,
+		},
+		{
+			desc:     "redirects to the correct host",
+			target:   "https://dev.example.test/",
+			hosts:    testHosts,
+			want:     "https://foo-dev.example.test/",
+			wantCode: http.StatusFound,
+		},
+		{
+			desc:     "renders 404 if hosts are missing",
+			target:   "https://dev.example.test/",
+			hosts:    nil,
+			wantCode: http.StatusNotFound,
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.desc, func(t *testing.T) {
+			req := httptest.NewRequest("GET", tt.target, nil)
+			w := httptest.NewRecorder()
+			redirectHosts(tt.hosts).ServeHTTP(w, req)
+			resp := w.Result()
+			if resp.StatusCode != tt.wantCode {
+				t.Errorf("w.Result().StatusCode = %v, wanted %v", resp.StatusCode, tt.wantCode)
+			}
+			l, err := resp.Location()
+			if resp.StatusCode == http.StatusFound && (l == nil || l.String() != tt.want || err != nil) {
+				t.Errorf("resp.Location() = %v, %v, wanted %v, no error", l, err, tt.want)
+			}
+		})
+	}
+}
+
+var siteTests = []struct {
+	target string
+	want   []string
+}{
+	{"/", []string{"Go is an open source programming language supported by Google"}},
+	{"/solutions/", []string{"Using Go at Google"}},
+	{"/solutions/dropbox/", []string{"About Dropbox"}},
+}
+
+func TestSite(t *testing.T) {
+	godev, err := site.Load("../..")
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	for _, tt := range siteTests {
+		t.Run(tt.target, func(t *testing.T) {
+			r := httptest.NewRequest("GET", tt.target, nil)
+			resp := httptest.NewRecorder()
+			resp.Body = new(bytes.Buffer)
+			http.FileServer(godev).ServeHTTP(resp, r)
+			if resp.Code != 200 {
+				t.Fatalf("Code = %d, want 200", resp.Code)
+			}
+			body := resp.Body.String()
+			for _, str := range tt.want {
+				if !strings.Contains(body, str) {
+					t.Fatalf("Body does not contain %q:\n%s", str, body)
+				}
+			}
+		})
+	}
+}
diff --git a/go.dev/cmd/internal/README.md b/go.dev/cmd/internal/README.md
new file mode 100644
index 0000000..9530049
--- /dev/null
+++ b/go.dev/cmd/internal/README.md
@@ -0,0 +1,9 @@
+internal/fmtsort, internal/html/template, internal/text/template,
+and internal/text/template/parse are copied from the standard library
+as of May 2021. The text/template code contains various bug fixes
+that the site depends on, as well as two features planned for Go 1.18:
+break and continue in range loops and short-circuit and/or
+(CL 321491 and CL 321490).
+
+internal/tmplfunc is a copy of rsc.io/tmplfunc, which may some day
+make it into the standard library.
diff --git a/go.dev/cmd/internal/fmtsort/export_test.go b/go.dev/cmd/internal/fmtsort/export_test.go
new file mode 100644
index 0000000..25cbb5d
--- /dev/null
+++ b/go.dev/cmd/internal/fmtsort/export_test.go
@@ -0,0 +1,11 @@
+// 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 fmtsort
+
+import "reflect"
+
+func Compare(a, b reflect.Value) int {
+	return compare(a, b)
+}
diff --git a/go.dev/cmd/internal/fmtsort/sort.go b/go.dev/cmd/internal/fmtsort/sort.go
new file mode 100644
index 0000000..7127ba6
--- /dev/null
+++ b/go.dev/cmd/internal/fmtsort/sort.go
@@ -0,0 +1,220 @@
+// 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 fmtsort provides a general stable ordering mechanism
+// for maps, on behalf of the fmt and text/template packages.
+// It is not guaranteed to be efficient and works only for types
+// that are valid map keys.
+package fmtsort
+
+import (
+	"reflect"
+	"sort"
+)
+
+// Note: Throughout this package we avoid calling reflect.Value.Interface as
+// it is not always legal to do so and it's easier to avoid the issue than to face it.
+
+// SortedMap represents a map's keys and values. The keys and values are
+// aligned in index order: Value[i] is the value in the map corresponding to Key[i].
+type SortedMap struct {
+	Key   []reflect.Value
+	Value []reflect.Value
+}
+
+func (o *SortedMap) Len() int           { return len(o.Key) }
+func (o *SortedMap) Less(i, j int) bool { return compare(o.Key[i], o.Key[j]) < 0 }
+func (o *SortedMap) Swap(i, j int) {
+	o.Key[i], o.Key[j] = o.Key[j], o.Key[i]
+	o.Value[i], o.Value[j] = o.Value[j], o.Value[i]
+}
+
+// Sort accepts a map and returns a SortedMap that has the same keys and
+// values but in a stable sorted order according to the keys, modulo issues
+// raised by unorderable key values such as NaNs.
+//
+// The ordering rules are more general than with Go's < operator:
+//
+//  - when applicable, nil compares low
+//  - ints, floats, and strings order by <
+//  - NaN compares less than non-NaN floats
+//  - bool compares false before true
+//  - complex compares real, then imag
+//  - pointers compare by machine address
+//  - channel values compare by machine address
+//  - structs compare each field in turn
+//  - arrays compare each element in turn.
+//    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
+	}
+	// Note: this code is arranged to not panic even in the presence
+	// of a concurrent map update. The runtime is responsible for
+	// yelling loudly if that happens. See issue 33275.
+	n := mapValue.Len()
+	key := make([]reflect.Value, 0, n)
+	value := make([]reflect.Value, 0, n)
+	iter := mapValue.MapRange()
+	for iter.Next() {
+		key = append(key, iter.Key())
+		value = append(value, iter.Value())
+	}
+	sorted := &SortedMap{
+		Key:   key,
+		Value: value,
+	}
+	sort.Stable(sorted)
+	return sorted
+}
+
+// compare compares two values of the same type. It returns -1, 0, 1
+// according to whether a > b (1), a == b (0), or a < b (-1).
+// If the types differ, it returns -1.
+// See the comment on Sort for the comparison rules.
+func compare(aVal, bVal reflect.Value) int {
+	aType, bType := aVal.Type(), bVal.Type()
+	if aType != bType {
+		return -1 // No good answer possible, but don't return 0: they're not equal.
+	}
+	switch aVal.Kind() {
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		a, b := aVal.Int(), bVal.Int()
+		switch {
+		case a < b:
+			return -1
+		case a > b:
+			return 1
+		default:
+			return 0
+		}
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		a, b := aVal.Uint(), bVal.Uint()
+		switch {
+		case a < b:
+			return -1
+		case a > b:
+			return 1
+		default:
+			return 0
+		}
+	case reflect.String:
+		a, b := aVal.String(), bVal.String()
+		switch {
+		case a < b:
+			return -1
+		case a > b:
+			return 1
+		default:
+			return 0
+		}
+	case reflect.Float32, reflect.Float64:
+		return floatCompare(aVal.Float(), bVal.Float())
+	case reflect.Complex64, reflect.Complex128:
+		a, b := aVal.Complex(), bVal.Complex()
+		if c := floatCompare(real(a), real(b)); c != 0 {
+			return c
+		}
+		return floatCompare(imag(a), imag(b))
+	case reflect.Bool:
+		a, b := aVal.Bool(), bVal.Bool()
+		switch {
+		case a == b:
+			return 0
+		case a:
+			return 1
+		default:
+			return -1
+		}
+	case reflect.Ptr, reflect.UnsafePointer:
+		a, b := aVal.Pointer(), bVal.Pointer()
+		switch {
+		case a < b:
+			return -1
+		case a > b:
+			return 1
+		default:
+			return 0
+		}
+	case reflect.Chan:
+		if c, ok := nilCompare(aVal, bVal); ok {
+			return c
+		}
+		ap, bp := aVal.Pointer(), bVal.Pointer()
+		switch {
+		case ap < bp:
+			return -1
+		case ap > bp:
+			return 1
+		default:
+			return 0
+		}
+	case reflect.Struct:
+		for i := 0; i < aVal.NumField(); i++ {
+			if c := compare(aVal.Field(i), bVal.Field(i)); c != 0 {
+				return c
+			}
+		}
+		return 0
+	case reflect.Array:
+		for i := 0; i < aVal.Len(); i++ {
+			if c := compare(aVal.Index(i), bVal.Index(i)); c != 0 {
+				return c
+			}
+		}
+		return 0
+	case reflect.Interface:
+		if c, ok := nilCompare(aVal, bVal); ok {
+			return c
+		}
+		c := compare(reflect.ValueOf(aVal.Elem().Type()), reflect.ValueOf(bVal.Elem().Type()))
+		if c != 0 {
+			return c
+		}
+		return compare(aVal.Elem(), bVal.Elem())
+	default:
+		// Certain types cannot appear as keys (maps, funcs, slices), but be explicit.
+		panic("bad type in compare: " + aType.String())
+	}
+}
+
+// nilCompare checks whether either value is nil. If not, the boolean is false.
+// If either value is nil, the boolean is true and the integer is the comparison
+// value. The comparison is defined to be 0 if both are nil, otherwise the one
+// nil value compares low. Both arguments must represent a chan, func,
+// interface, map, pointer, or slice.
+func nilCompare(aVal, bVal reflect.Value) (int, bool) {
+	if aVal.IsNil() {
+		if bVal.IsNil() {
+			return 0, true
+		}
+		return -1, true
+	}
+	if bVal.IsNil() {
+		return 1, true
+	}
+	return 0, false
+}
+
+// floatCompare compares two floating-point values. NaNs compare low.
+func floatCompare(a, b float64) int {
+	switch {
+	case isNaN(a):
+		return -1 // No good answer if b is a NaN so don't bother checking.
+	case isNaN(b):
+		return 1
+	case a < b:
+		return -1
+	case a > b:
+		return 1
+	}
+	return 0
+}
+
+func isNaN(a float64) bool {
+	return a != a
+}
diff --git a/go.dev/cmd/internal/fmtsort/sort_test.go b/go.dev/cmd/internal/fmtsort/sort_test.go
new file mode 100644
index 0000000..93b7b3f
--- /dev/null
+++ b/go.dev/cmd/internal/fmtsort/sort_test.go
@@ -0,0 +1,269 @@
+// 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 fmtsort_test
+
+import (
+	"fmt"
+	"math"
+	"reflect"
+	"strings"
+	"testing"
+	"unsafe"
+
+	"golang.org/x/go.dev/cmd/internal/fmtsort"
+)
+
+var compareTests = [][]reflect.Value{
+	ct(reflect.TypeOf(int(0)), -1, 0, 1),
+	ct(reflect.TypeOf(int8(0)), -1, 0, 1),
+	ct(reflect.TypeOf(int16(0)), -1, 0, 1),
+	ct(reflect.TypeOf(int32(0)), -1, 0, 1),
+	ct(reflect.TypeOf(int64(0)), -1, 0, 1),
+	ct(reflect.TypeOf(uint(0)), 0, 1, 5),
+	ct(reflect.TypeOf(uint8(0)), 0, 1, 5),
+	ct(reflect.TypeOf(uint16(0)), 0, 1, 5),
+	ct(reflect.TypeOf(uint32(0)), 0, 1, 5),
+	ct(reflect.TypeOf(uint64(0)), 0, 1, 5),
+	ct(reflect.TypeOf(uintptr(0)), 0, 1, 5),
+	ct(reflect.TypeOf(string("")), "", "a", "ab"),
+	ct(reflect.TypeOf(float32(0)), math.NaN(), math.Inf(-1), -1e10, 0, 1e10, math.Inf(1)),
+	ct(reflect.TypeOf(float64(0)), math.NaN(), math.Inf(-1), -1e10, 0, 1e10, math.Inf(1)),
+	ct(reflect.TypeOf(complex64(0+1i)), -1-1i, -1+0i, -1+1i, 0-1i, 0+0i, 0+1i, 1-1i, 1+0i, 1+1i),
+	ct(reflect.TypeOf(complex128(0+1i)), -1-1i, -1+0i, -1+1i, 0-1i, 0+0i, 0+1i, 1-1i, 1+0i, 1+1i),
+	ct(reflect.TypeOf(false), false, true),
+	ct(reflect.TypeOf(&ints[0]), &ints[0], &ints[1], &ints[2]),
+	ct(reflect.TypeOf(unsafe.Pointer(&ints[0])), unsafe.Pointer(&ints[0]), unsafe.Pointer(&ints[1]), unsafe.Pointer(&ints[2])),
+	ct(reflect.TypeOf(chans[0]), chans[0], chans[1], chans[2]),
+	ct(reflect.TypeOf(toy{}), toy{0, 1}, toy{0, 2}, toy{1, -1}, toy{1, 1}),
+	ct(reflect.TypeOf([2]int{}), [2]int{1, 1}, [2]int{1, 2}, [2]int{2, 0}),
+	ct(reflect.TypeOf(interface{}(interface{}(0))), iFace, 1, 2, 3),
+}
+
+var iFace interface{}
+
+func ct(typ reflect.Type, args ...interface{}) []reflect.Value {
+	value := make([]reflect.Value, len(args))
+	for i, v := range args {
+		x := reflect.ValueOf(v)
+		if !x.IsValid() { // Make it a typed nil.
+			x = reflect.Zero(typ)
+		} else {
+			x = x.Convert(typ)
+		}
+		value[i] = x
+	}
+	return value
+}
+
+func TestCompare(t *testing.T) {
+	for _, test := range compareTests {
+		for i, v0 := range test {
+			for j, v1 := range test {
+				c := fmtsort.Compare(v0, v1)
+				var expect int
+				switch {
+				case i == j:
+					expect = 0
+					// NaNs are tricky.
+					if typ := v0.Type(); (typ.Kind() == reflect.Float32 || typ.Kind() == reflect.Float64) && math.IsNaN(v0.Float()) {
+						expect = -1
+					}
+				case i < j:
+					expect = -1
+				case i > j:
+					expect = 1
+				}
+				if c != expect {
+					t.Errorf("%s: compare(%v,%v)=%d; expect %d", v0.Type(), v0, v1, c, expect)
+				}
+			}
+		}
+	}
+}
+
+type sortTest struct {
+	data  interface{} // Always a map.
+	print string      // Printed result using our custom printer.
+}
+
+var sortTests = []sortTest{
+	{
+		map[int]string{7: "bar", -3: "foo"},
+		"-3:foo 7:bar",
+	},
+	{
+		map[uint8]string{7: "bar", 3: "foo"},
+		"3:foo 7:bar",
+	},
+	{
+		map[string]string{"7": "bar", "3": "foo"},
+		"3:foo 7:bar",
+	},
+	{
+		map[float64]string{7: "bar", -3: "foo", math.NaN(): "nan", math.Inf(0): "inf"},
+		"NaN:nan -3:foo 7:bar +Inf:inf",
+	},
+	{
+		map[complex128]string{7 + 2i: "bar2", 7 + 1i: "bar", -3: "foo", complex(math.NaN(), 0i): "nan", complex(math.Inf(0), 0i): "inf"},
+		"(NaN+0i):nan (-3+0i):foo (7+1i):bar (7+2i):bar2 (+Inf+0i):inf",
+	},
+	{
+		map[bool]string{true: "true", false: "false"},
+		"false:false true:true",
+	},
+	{
+		chanMap(),
+		"CHAN0:0 CHAN1:1 CHAN2:2",
+	},
+	{
+		pointerMap(),
+		"PTR0:0 PTR1:1 PTR2:2",
+	},
+	{
+		unsafePointerMap(),
+		"UNSAFEPTR0:0 UNSAFEPTR1:1 UNSAFEPTR2:2",
+	},
+	{
+		map[toy]string{{7, 2}: "72", {7, 1}: "71", {3, 4}: "34"},
+		"{3 4}:34 {7 1}:71 {7 2}:72",
+	},
+	{
+		map[[2]int]string{{7, 2}: "72", {7, 1}: "71", {3, 4}: "34"},
+		"[3 4]:34 [7 1]:71 [7 2]:72",
+	},
+}
+
+func sprint(data interface{}) string {
+	om := fmtsort.Sort(reflect.ValueOf(data))
+	if om == nil {
+		return "nil"
+	}
+	b := new(strings.Builder)
+	for i, key := range om.Key {
+		if i > 0 {
+			b.WriteRune(' ')
+		}
+		b.WriteString(sprintKey(key))
+		b.WriteRune(':')
+		b.WriteString(fmt.Sprint(om.Value[i]))
+	}
+	return b.String()
+}
+
+// sprintKey formats a reflect.Value but gives reproducible values for some
+// problematic types such as pointers. Note that it only does special handling
+// for the troublesome types used in the test cases; it is not a general
+// printer.
+func sprintKey(key reflect.Value) string {
+	switch str := key.Type().String(); str {
+	case "*int":
+		ptr := key.Interface().(*int)
+		for i := range ints {
+			if ptr == &ints[i] {
+				return fmt.Sprintf("PTR%d", i)
+			}
+		}
+		return "PTR???"
+	case "unsafe.Pointer":
+		ptr := key.Interface().(unsafe.Pointer)
+		for i := range ints {
+			if ptr == unsafe.Pointer(&ints[i]) {
+				return fmt.Sprintf("UNSAFEPTR%d", i)
+			}
+		}
+		return "UNSAFEPTR???"
+	case "chan int":
+		c := key.Interface().(chan int)
+		for i := range chans {
+			if c == chans[i] {
+				return fmt.Sprintf("CHAN%d", i)
+			}
+		}
+		return "CHAN???"
+	default:
+		return fmt.Sprint(key)
+	}
+}
+
+var (
+	ints  [3]int
+	chans = [3]chan int{make(chan int), make(chan int), make(chan int)}
+)
+
+func pointerMap() map[*int]string {
+	m := make(map[*int]string)
+	for i := 2; i >= 0; i-- {
+		m[&ints[i]] = fmt.Sprint(i)
+	}
+	return m
+}
+
+func unsafePointerMap() map[unsafe.Pointer]string {
+	m := make(map[unsafe.Pointer]string)
+	for i := 2; i >= 0; i-- {
+		m[unsafe.Pointer(&ints[i])] = fmt.Sprint(i)
+	}
+	return m
+}
+
+func chanMap() map[chan int]string {
+	m := make(map[chan int]string)
+	for i := 2; i >= 0; i-- {
+		m[chans[i]] = fmt.Sprint(i)
+	}
+	return m
+}
+
+type toy struct {
+	A int // Exported.
+	b int // Unexported.
+}
+
+func TestOrder(t *testing.T) {
+	for _, test := range sortTests {
+		got := sprint(test.data)
+		if got != test.print {
+			t.Errorf("%s: got %q, want %q", reflect.TypeOf(test.data), got, test.print)
+		}
+	}
+}
+
+func TestInterface(t *testing.T) {
+	// A map containing multiple concrete types should be sorted by type,
+	// then value. However, the relative ordering of types is unspecified,
+	// so test this by checking the presence of sorted subgroups.
+	m := map[interface{}]string{
+		[2]int{1, 0}:             "",
+		[2]int{0, 1}:             "",
+		true:                     "",
+		false:                    "",
+		3.1:                      "",
+		2.1:                      "",
+		1.1:                      "",
+		math.NaN():               "",
+		3:                        "",
+		2:                        "",
+		1:                        "",
+		"c":                      "",
+		"b":                      "",
+		"a":                      "",
+		struct{ x, y int }{1, 0}: "",
+		struct{ x, y int }{0, 1}: "",
+	}
+	got := sprint(m)
+	typeGroups := []string{
+		"NaN: 1.1: 2.1: 3.1:", // float64
+		"false: true:",        // bool
+		"1: 2: 3:",            // int
+		"a: b: c:",            // string
+		"[0 1]: [1 0]:",       // [2]int
+		"{0 1}: {1 0}:",       // struct{ x int; y int }
+	}
+	for _, g := range typeGroups {
+		if !strings.Contains(got, g) {
+			t.Errorf("sorted map should contain %q", g)
+		}
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/attr.go b/go.dev/cmd/internal/html/template/attr.go
new file mode 100644
index 0000000..22922e6
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/attr.go
@@ -0,0 +1,175 @@
+// Copyright 2011 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 template
+
+import (
+	"strings"
+)
+
+// attrTypeMap[n] describes the value of the given attribute.
+// If an attribute affects (or can mask) the encoding or interpretation of
+// other content, or affects the contents, idempotency, or credentials of a
+// network message, then the value in this map is contentTypeUnsafe.
+// This map is derived from HTML5, specifically
+// https://www.w3.org/TR/html5/Overview.html#attributes-1
+// as well as "%URI"-typed attributes from
+// https://www.w3.org/TR/html4/index/attributes.html
+var attrTypeMap = map[string]contentType{
+	"accept":          contentTypePlain,
+	"accept-charset":  contentTypeUnsafe,
+	"action":          contentTypeURL,
+	"alt":             contentTypePlain,
+	"archive":         contentTypeURL,
+	"async":           contentTypeUnsafe,
+	"autocomplete":    contentTypePlain,
+	"autofocus":       contentTypePlain,
+	"autoplay":        contentTypePlain,
+	"background":      contentTypeURL,
+	"border":          contentTypePlain,
+	"checked":         contentTypePlain,
+	"cite":            contentTypeURL,
+	"challenge":       contentTypeUnsafe,
+	"charset":         contentTypeUnsafe,
+	"class":           contentTypePlain,
+	"classid":         contentTypeURL,
+	"codebase":        contentTypeURL,
+	"cols":            contentTypePlain,
+	"colspan":         contentTypePlain,
+	"content":         contentTypeUnsafe,
+	"contenteditable": contentTypePlain,
+	"contextmenu":     contentTypePlain,
+	"controls":        contentTypePlain,
+	"coords":          contentTypePlain,
+	"crossorigin":     contentTypeUnsafe,
+	"data":            contentTypeURL,
+	"datetime":        contentTypePlain,
+	"default":         contentTypePlain,
+	"defer":           contentTypeUnsafe,
+	"dir":             contentTypePlain,
+	"dirname":         contentTypePlain,
+	"disabled":        contentTypePlain,
+	"draggable":       contentTypePlain,
+	"dropzone":        contentTypePlain,
+	"enctype":         contentTypeUnsafe,
+	"for":             contentTypePlain,
+	"form":            contentTypeUnsafe,
+	"formaction":      contentTypeURL,
+	"formenctype":     contentTypeUnsafe,
+	"formmethod":      contentTypeUnsafe,
+	"formnovalidate":  contentTypeUnsafe,
+	"formtarget":      contentTypePlain,
+	"headers":         contentTypePlain,
+	"height":          contentTypePlain,
+	"hidden":          contentTypePlain,
+	"high":            contentTypePlain,
+	"href":            contentTypeURL,
+	"hreflang":        contentTypePlain,
+	"http-equiv":      contentTypeUnsafe,
+	"icon":            contentTypeURL,
+	"id":              contentTypePlain,
+	"ismap":           contentTypePlain,
+	"keytype":         contentTypeUnsafe,
+	"kind":            contentTypePlain,
+	"label":           contentTypePlain,
+	"lang":            contentTypePlain,
+	"language":        contentTypeUnsafe,
+	"list":            contentTypePlain,
+	"longdesc":        contentTypeURL,
+	"loop":            contentTypePlain,
+	"low":             contentTypePlain,
+	"manifest":        contentTypeURL,
+	"max":             contentTypePlain,
+	"maxlength":       contentTypePlain,
+	"media":           contentTypePlain,
+	"mediagroup":      contentTypePlain,
+	"method":          contentTypeUnsafe,
+	"min":             contentTypePlain,
+	"multiple":        contentTypePlain,
+	"name":            contentTypePlain,
+	"novalidate":      contentTypeUnsafe,
+	// Skip handler names from
+	// https://www.w3.org/TR/html5/webappapis.html#event-handlers-on-elements,-document-objects,-and-window-objects
+	// since we have special handling in attrType.
+	"open":        contentTypePlain,
+	"optimum":     contentTypePlain,
+	"pattern":     contentTypeUnsafe,
+	"placeholder": contentTypePlain,
+	"poster":      contentTypeURL,
+	"profile":     contentTypeURL,
+	"preload":     contentTypePlain,
+	"pubdate":     contentTypePlain,
+	"radiogroup":  contentTypePlain,
+	"readonly":    contentTypePlain,
+	"rel":         contentTypeUnsafe,
+	"required":    contentTypePlain,
+	"reversed":    contentTypePlain,
+	"rows":        contentTypePlain,
+	"rowspan":     contentTypePlain,
+	"sandbox":     contentTypeUnsafe,
+	"spellcheck":  contentTypePlain,
+	"scope":       contentTypePlain,
+	"scoped":      contentTypePlain,
+	"seamless":    contentTypePlain,
+	"selected":    contentTypePlain,
+	"shape":       contentTypePlain,
+	"size":        contentTypePlain,
+	"sizes":       contentTypePlain,
+	"span":        contentTypePlain,
+	"src":         contentTypeURL,
+	"srcdoc":      contentTypeHTML,
+	"srclang":     contentTypePlain,
+	"srcset":      contentTypeSrcset,
+	"start":       contentTypePlain,
+	"step":        contentTypePlain,
+	"style":       contentTypeCSS,
+	"tabindex":    contentTypePlain,
+	"target":      contentTypePlain,
+	"title":       contentTypePlain,
+	"type":        contentTypeUnsafe,
+	"usemap":      contentTypeURL,
+	"value":       contentTypeUnsafe,
+	"width":       contentTypePlain,
+	"wrap":        contentTypePlain,
+	"xmlns":       contentTypeURL,
+}
+
+// attrType returns a conservative (upper-bound on authority) guess at the
+// type of the lowercase named attribute.
+func attrType(name string) contentType {
+	if strings.HasPrefix(name, "data-") {
+		// Strip data- so that custom attribute heuristics below are
+		// widely applied.
+		// Treat data-action as URL below.
+		name = name[5:]
+	} else if colon := strings.IndexRune(name, ':'); colon != -1 {
+		if name[:colon] == "xmlns" {
+			return contentTypeURL
+		}
+		// Treat svg:href and xlink:href as href below.
+		name = name[colon+1:]
+	}
+	if t, ok := attrTypeMap[name]; ok {
+		return t
+	}
+	// Treat partial event handler names as script.
+	if strings.HasPrefix(name, "on") {
+		return contentTypeJS
+	}
+
+	// Heuristics to prevent "javascript:..." injection in custom
+	// data attributes and custom attributes like g:tweetUrl.
+	// https://www.w3.org/TR/html5/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes
+	// "Custom data attributes are intended to store custom data
+	//  private to the page or application, for which there are no
+	//  more appropriate attributes or elements."
+	// Developers seem to store URL content in data URLs that start
+	// or end with "URI" or "URL".
+	if strings.Contains(name, "src") ||
+		strings.Contains(name, "uri") ||
+		strings.Contains(name, "url") {
+		return contentTypeURL
+	}
+	return contentTypePlain
+}
diff --git a/go.dev/cmd/internal/html/template/attr_string.go b/go.dev/cmd/internal/html/template/attr_string.go
new file mode 100644
index 0000000..babe70c
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/attr_string.go
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type attr"; DO NOT EDIT.
+
+package template
+
+import "strconv"
+
+const _attr_name = "attrNoneattrScriptattrScriptTypeattrStyleattrURLattrSrcset"
+
+var _attr_index = [...]uint8{0, 8, 18, 32, 41, 48, 58}
+
+func (i attr) String() string {
+	if i >= attr(len(_attr_index)-1) {
+		return "attr(" + strconv.FormatInt(int64(i), 10) + ")"
+	}
+	return _attr_name[_attr_index[i]:_attr_index[i+1]]
+}
diff --git a/go.dev/cmd/internal/html/template/clone_test.go b/go.dev/cmd/internal/html/template/clone_test.go
new file mode 100644
index 0000000..ef68dc7
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/clone_test.go
@@ -0,0 +1,280 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+	"io/ioutil"
+	"strings"
+	"sync"
+	"testing"
+
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+func TestAddParseTreeHTML(t *testing.T) {
+	root := Must(New("root").Parse(`{{define "a"}} {{.}} {{template "b"}} {{.}} "></a>{{end}}`))
+	tree, err := parse.Parse("t", `{{define "b"}}<a href="{{end}}`, "", "", nil, nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+	added := Must(root.AddParseTree("b", tree["b"]))
+	b := new(bytes.Buffer)
+	err = added.ExecuteTemplate(b, "a", "1>0")
+	if err != nil {
+		t.Fatal(err)
+	}
+	if got, want := b.String(), ` 1&gt;0 <a href=" 1%3e0 "></a>`; got != want {
+		t.Errorf("got %q want %q", got, want)
+	}
+}
+
+func TestClone(t *testing.T) {
+	// The {{.}} will be executed with data "<i>*/" in different contexts.
+	// In the t0 template, it will be in a text context.
+	// In the t1 template, it will be in a URL context.
+	// In the t2 template, it will be in a JavaScript context.
+	// In the t3 template, it will be in a CSS context.
+	const tmpl = `{{define "a"}}{{template "lhs"}}{{.}}{{template "rhs"}}{{end}}`
+	b := new(bytes.Buffer)
+
+	// Create an incomplete template t0.
+	t0 := Must(New("t0").Parse(tmpl))
+
+	// Clone t0 as t1.
+	t1 := Must(t0.Clone())
+	Must(t1.Parse(`{{define "lhs"}} <a href=" {{end}}`))
+	Must(t1.Parse(`{{define "rhs"}} "></a> {{end}}`))
+
+	// Execute t1.
+	b.Reset()
+	if err := t1.ExecuteTemplate(b, "a", "<i>*/"); err != nil {
+		t.Fatal(err)
+	}
+	if got, want := b.String(), ` <a href=" %3ci%3e*/ "></a> `; got != want {
+		t.Errorf("t1: got %q want %q", got, want)
+	}
+
+	// Clone t0 as t2.
+	t2 := Must(t0.Clone())
+	Must(t2.Parse(`{{define "lhs"}} <p onclick="javascript: {{end}}`))
+	Must(t2.Parse(`{{define "rhs"}} "></p> {{end}}`))
+
+	// Execute t2.
+	b.Reset()
+	if err := t2.ExecuteTemplate(b, "a", "<i>*/"); err != nil {
+		t.Fatal(err)
+	}
+	if got, want := b.String(), ` <p onclick="javascript: &#34;\u003ci\u003e*/&#34; "></p> `; got != want {
+		t.Errorf("t2: got %q want %q", got, want)
+	}
+
+	// Clone t0 as t3, but do not execute t3 yet.
+	t3 := Must(t0.Clone())
+	Must(t3.Parse(`{{define "lhs"}} <style> {{end}}`))
+	Must(t3.Parse(`{{define "rhs"}} </style> {{end}}`))
+
+	// Complete t0.
+	Must(t0.Parse(`{{define "lhs"}} ( {{end}}`))
+	Must(t0.Parse(`{{define "rhs"}} ) {{end}}`))
+
+	// Clone t0 as t4. Redefining the "lhs" template should not fail.
+	t4 := Must(t0.Clone())
+	if _, err := t4.Parse(`{{define "lhs"}} OK {{end}}`); err != nil {
+		t.Errorf(`redefine "lhs": got err %v want nil`, err)
+	}
+	// Cloning t1 should fail as it has been executed.
+	if _, err := t1.Clone(); err == nil {
+		t.Error("cloning t1: got nil err want non-nil")
+	}
+	// Redefining the "lhs" template in t1 should fail as it has been executed.
+	if _, err := t1.Parse(`{{define "lhs"}} OK {{end}}`); err == nil {
+		t.Error(`redefine "lhs": got nil err want non-nil`)
+	}
+
+	// Execute t0.
+	b.Reset()
+	if err := t0.ExecuteTemplate(b, "a", "<i>*/"); err != nil {
+		t.Fatal(err)
+	}
+	if got, want := b.String(), ` ( &lt;i&gt;*/ ) `; got != want {
+		t.Errorf("t0: got %q want %q", got, want)
+	}
+
+	// Clone t0. This should fail, as t0 has already executed.
+	if _, err := t0.Clone(); err == nil {
+		t.Error(`t0.Clone(): got nil err want non-nil`)
+	}
+
+	// Similarly, cloning sub-templates should fail.
+	if _, err := t0.Lookup("a").Clone(); err == nil {
+		t.Error(`t0.Lookup("a").Clone(): got nil err want non-nil`)
+	}
+	if _, err := t0.Lookup("lhs").Clone(); err == nil {
+		t.Error(`t0.Lookup("lhs").Clone(): got nil err want non-nil`)
+	}
+
+	// Execute t3.
+	b.Reset()
+	if err := t3.ExecuteTemplate(b, "a", "<i>*/"); err != nil {
+		t.Fatal(err)
+	}
+	if got, want := b.String(), ` <style> ZgotmplZ </style> `; got != want {
+		t.Errorf("t3: got %q want %q", got, want)
+	}
+}
+
+func TestTemplates(t *testing.T) {
+	names := []string{"t0", "a", "lhs", "rhs"}
+	// Some template definitions borrowed from TestClone.
+	const tmpl = `
+		{{define "a"}}{{template "lhs"}}{{.}}{{template "rhs"}}{{end}}
+		{{define "lhs"}} <a href=" {{end}}
+		{{define "rhs"}} "></a> {{end}}`
+	t0 := Must(New("t0").Parse(tmpl))
+	templates := t0.Templates()
+	if len(templates) != len(names) {
+		t.Errorf("expected %d templates; got %d", len(names), len(templates))
+	}
+	for _, name := range names {
+		found := false
+		for _, tmpl := range templates {
+			if name == tmpl.text.Name() {
+				found = true
+				break
+			}
+		}
+		if !found {
+			t.Error("could not find template", name)
+		}
+	}
+}
+
+// This used to crash; https://golang.org/issue/3281
+func TestCloneCrash(t *testing.T) {
+	t1 := New("all")
+	Must(t1.New("t1").Parse(`{{define "foo"}}foo{{end}}`))
+	t1.Clone()
+}
+
+// Ensure that this guarantee from the docs is upheld:
+// "Further calls to Parse in the copy will add templates
+// to the copy but not to the original."
+func TestCloneThenParse(t *testing.T) {
+	t0 := Must(New("t0").Parse(`{{define "a"}}{{template "embedded"}}{{end}}`))
+	t1 := Must(t0.Clone())
+	Must(t1.Parse(`{{define "embedded"}}t1{{end}}`))
+	if len(t0.Templates())+1 != len(t1.Templates()) {
+		t.Error("adding a template to a clone added it to the original")
+	}
+	// double check that the embedded template isn't available in the original
+	err := t0.ExecuteTemplate(ioutil.Discard, "a", nil)
+	if err == nil {
+		t.Error("expected 'no such template' error")
+	}
+}
+
+// https://golang.org/issue/5980
+func TestFuncMapWorksAfterClone(t *testing.T) {
+	funcs := FuncMap{"customFunc": func() (string, error) {
+		return "", errors.New("issue5980")
+	}}
+
+	// get the expected error output (no clone)
+	uncloned := Must(New("").Funcs(funcs).Parse("{{customFunc}}"))
+	wantErr := uncloned.Execute(ioutil.Discard, nil)
+
+	// toClone must be the same as uncloned. It has to be recreated from scratch,
+	// since cloning cannot occur after execution.
+	toClone := Must(New("").Funcs(funcs).Parse("{{customFunc}}"))
+	cloned := Must(toClone.Clone())
+	gotErr := cloned.Execute(ioutil.Discard, nil)
+
+	if wantErr.Error() != gotErr.Error() {
+		t.Errorf("clone error message mismatch want %q got %q", wantErr, gotErr)
+	}
+}
+
+// https://golang.org/issue/16101
+func TestTemplateCloneExecuteRace(t *testing.T) {
+	const (
+		input   = `<title>{{block "a" .}}a{{end}}</title><body>{{block "b" .}}b{{end}}<body>`
+		overlay = `{{define "b"}}A{{end}}`
+	)
+	outer := Must(New("outer").Parse(input))
+	tmpl := Must(Must(outer.Clone()).Parse(overlay))
+
+	var wg sync.WaitGroup
+	for i := 0; i < 10; i++ {
+		wg.Add(1)
+		go func() {
+			defer wg.Done()
+			for i := 0; i < 100; i++ {
+				if err := tmpl.Execute(ioutil.Discard, "data"); err != nil {
+					panic(err)
+				}
+			}
+		}()
+	}
+	wg.Wait()
+}
+
+func TestTemplateCloneLookup(t *testing.T) {
+	// Template.escape makes an assumption that the template associated
+	// with t.Name() is t. Check that this holds.
+	tmpl := Must(New("x").Parse("a"))
+	tmpl = Must(tmpl.Clone())
+	if tmpl.Lookup(tmpl.Name()) != tmpl {
+		t.Error("after Clone, tmpl.Lookup(tmpl.Name()) != tmpl")
+	}
+}
+
+func TestCloneGrowth(t *testing.T) {
+	tmpl := Must(New("root").Parse(`<title>{{block "B". }}Arg{{end}}</title>`))
+	tmpl = Must(tmpl.Clone())
+	Must(tmpl.Parse(`{{define "B"}}Text{{end}}`))
+	for i := 0; i < 10; i++ {
+		tmpl.Execute(ioutil.Discard, nil)
+	}
+	if len(tmpl.DefinedTemplates()) > 200 {
+		t.Fatalf("too many templates: %v", len(tmpl.DefinedTemplates()))
+	}
+}
+
+// https://golang.org/issue/17735
+func TestCloneRedefinedName(t *testing.T) {
+	const base = `
+{{ define "a" -}}<title>{{ template "b" . -}}</title>{{ end -}}
+{{ define "b" }}{{ end -}}
+`
+	const page = `{{ template "a" . }}`
+
+	t1 := Must(New("a").Parse(base))
+
+	for i := 0; i < 2; i++ {
+		t2 := Must(t1.Clone())
+		t2 = Must(t2.New(fmt.Sprintf("%d", i)).Parse(page))
+		err := t2.Execute(ioutil.Discard, nil)
+		if err != nil {
+			t.Fatal(err)
+		}
+	}
+}
+
+// Issue 24791.
+func TestClonePipe(t *testing.T) {
+	a := Must(New("a").Parse(`{{define "a"}}{{range $v := .A}}{{$v}}{{end}}{{end}}`))
+	data := struct{ A []string }{A: []string{"hi"}}
+	b := Must(a.Clone())
+	var buf strings.Builder
+	if err := b.Execute(&buf, &data); err != nil {
+		t.Fatal(err)
+	}
+	if got, want := buf.String(), "hi"; got != want {
+		t.Errorf("got %q want %q", got, want)
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/content.go b/go.dev/cmd/internal/html/template/content.go
new file mode 100644
index 0000000..6ba87a9
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/content.go
@@ -0,0 +1,185 @@
+// Copyright 2011 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 template
+
+import (
+	"fmt"
+	"reflect"
+)
+
+// Strings of content from a trusted source.
+type (
+	// CSS encapsulates known safe content that matches any of:
+	//   1. The CSS3 stylesheet production, such as `p { color: purple }`.
+	//   2. The CSS3 rule production, such as `a[href=~"https:"].foo#bar`.
+	//   3. CSS3 declaration productions, such as `color: red; margin: 2px`.
+	//   4. The CSS3 value production, such as `rgba(0, 0, 255, 127)`.
+	// See https://www.w3.org/TR/css3-syntax/#parsing and
+	// https://web.archive.org/web/20090211114933/http://w3.org/TR/css3-syntax#style
+	//
+	// Use of this type presents a security risk:
+	// the encapsulated content should come from a trusted source,
+	// as it will be included verbatim in the template output.
+	CSS string
+
+	// HTML encapsulates a known safe HTML document fragment.
+	// It should not be used for HTML from a third-party, or HTML with
+	// unclosed tags or comments. The outputs of a sound HTML sanitizer
+	// and a template escaped by this package are fine for use with HTML.
+	//
+	// Use of this type presents a security risk:
+	// the encapsulated content should come from a trusted source,
+	// as it will be included verbatim in the template output.
+	HTML string
+
+	// HTMLAttr encapsulates an HTML attribute from a trusted source,
+	// for example, ` dir="ltr"`.
+	//
+	// Use of this type presents a security risk:
+	// the encapsulated content should come from a trusted source,
+	// as it will be included verbatim in the template output.
+	HTMLAttr string
+
+	// JS encapsulates a known safe EcmaScript5 Expression, for example,
+	// `(x + y * z())`.
+	// Template authors are responsible for ensuring that typed expressions
+	// do not break the intended precedence and that there is no
+	// statement/expression ambiguity as when passing an expression like
+	// "{ foo: bar() }\n['foo']()", which is both a valid Expression and a
+	// valid Program with a very different meaning.
+	//
+	// Use of this type presents a security risk:
+	// the encapsulated content should come from a trusted source,
+	// as it will be included verbatim in the template output.
+	//
+	// Using JS to include valid but untrusted JSON is not safe.
+	// A safe alternative is to parse the JSON with json.Unmarshal and then
+	// pass the resultant object into the template, where it will be
+	// converted to sanitized JSON when presented in a JavaScript context.
+	JS string
+
+	// JSStr encapsulates a sequence of characters meant to be embedded
+	// between quotes in a JavaScript expression.
+	// The string must match a series of StringCharacters:
+	//   StringCharacter :: SourceCharacter but not `\` or LineTerminator
+	//                    | EscapeSequence
+	// Note that LineContinuations are not allowed.
+	// JSStr("foo\\nbar") is fine, but JSStr("foo\\\nbar") is not.
+	//
+	// Use of this type presents a security risk:
+	// the encapsulated content should come from a trusted source,
+	// as it will be included verbatim in the template output.
+	JSStr string
+
+	// URL encapsulates a known safe URL or URL substring (see RFC 3986).
+	// A URL like `javascript:checkThatFormNotEditedBeforeLeavingPage()`
+	// from a trusted source should go in the page, but by default dynamic
+	// `javascript:` URLs are filtered out since they are a frequently
+	// exploited injection vector.
+	//
+	// Use of this type presents a security risk:
+	// the encapsulated content should come from a trusted source,
+	// as it will be included verbatim in the template output.
+	URL string
+
+	// Srcset encapsulates a known safe srcset attribute
+	// (see https://w3c.github.io/html/semantics-embedded-content.html#element-attrdef-img-srcset).
+	//
+	// Use of this type presents a security risk:
+	// the encapsulated content should come from a trusted source,
+	// as it will be included verbatim in the template output.
+	Srcset string
+)
+
+type contentType uint8
+
+const (
+	contentTypePlain contentType = iota
+	contentTypeCSS
+	contentTypeHTML
+	contentTypeHTMLAttr
+	contentTypeJS
+	contentTypeJSStr
+	contentTypeURL
+	contentTypeSrcset
+	// contentTypeUnsafe is used in attr.go for values that affect how
+	// embedded content and network messages are formed, vetted,
+	// or interpreted; or which credentials network messages carry.
+	contentTypeUnsafe
+)
+
+// indirect returns the value, after dereferencing as many times
+// as necessary to reach the base type (or nil).
+func indirect(a interface{}) interface{} {
+	if a == nil {
+		return nil
+	}
+	if t := reflect.TypeOf(a); t.Kind() != reflect.Ptr {
+		// Avoid creating a reflect.Value if it's not a pointer.
+		return a
+	}
+	v := reflect.ValueOf(a)
+	for v.Kind() == reflect.Ptr && !v.IsNil() {
+		v = v.Elem()
+	}
+	return v.Interface()
+}
+
+var (
+	errorType       = reflect.TypeOf((*error)(nil)).Elem()
+	fmtStringerType = reflect.TypeOf((*fmt.Stringer)(nil)).Elem()
+)
+
+// indirectToStringerOrError returns the value, after dereferencing as many times
+// as necessary to reach the base type (or nil) or an implementation of fmt.Stringer
+// or error,
+func indirectToStringerOrError(a interface{}) interface{} {
+	if a == nil {
+		return nil
+	}
+	v := reflect.ValueOf(a)
+	for !v.Type().Implements(fmtStringerType) && !v.Type().Implements(errorType) && v.Kind() == reflect.Ptr && !v.IsNil() {
+		v = v.Elem()
+	}
+	return v.Interface()
+}
+
+// stringify converts its arguments to a string and the type of the content.
+// All pointers are dereferenced, as in the text/template package.
+func stringify(args ...interface{}) (string, contentType) {
+	if len(args) == 1 {
+		switch s := indirect(args[0]).(type) {
+		case string:
+			return s, contentTypePlain
+		case CSS:
+			return string(s), contentTypeCSS
+		case HTML:
+			return string(s), contentTypeHTML
+		case HTMLAttr:
+			return string(s), contentTypeHTMLAttr
+		case JS:
+			return string(s), contentTypeJS
+		case JSStr:
+			return string(s), contentTypeJSStr
+		case URL:
+			return string(s), contentTypeURL
+		case Srcset:
+			return string(s), contentTypeSrcset
+		}
+	}
+	i := 0
+	for _, arg := range args {
+		// We skip untyped nil arguments for backward compatibility.
+		// Without this they would be output as <nil>, escaped.
+		// See issue 25875.
+		if arg == nil {
+			continue
+		}
+
+		args[i] = indirectToStringerOrError(arg)
+		i++
+	}
+	return fmt.Sprint(args[:i]...), contentTypePlain
+}
diff --git a/go.dev/cmd/internal/html/template/content_test.go b/go.dev/cmd/internal/html/template/content_test.go
new file mode 100644
index 0000000..bb1667b
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/content_test.go
@@ -0,0 +1,458 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"fmt"
+	"strings"
+	"testing"
+)
+
+func TestTypedContent(t *testing.T) {
+	data := []interface{}{
+		`<b> "foo%" O'Reilly &bar;`,
+		CSS(`a[href =~ "//example.com"]#foo`),
+		HTML(`Hello, <b>World</b> &amp;tc!`),
+		HTMLAttr(` dir="ltr"`),
+		JS(`c && alert("Hello, World!");`),
+		JSStr(`Hello, World & O'Reilly\u0021`),
+		URL(`greeting=H%69,&addressee=(World)`),
+		Srcset(`greeting=H%69,&addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`),
+		URL(`,foo/,`),
+	}
+
+	// For each content sensitive escaper, see how it does on
+	// each of the typed strings above.
+	tests := []struct {
+		// A template containing a single {{.}}.
+		input string
+		want  []string
+	}{
+		{
+			`<style>{{.}} { color: blue }</style>`,
+			[]string{
+				`ZgotmplZ`,
+				// Allowed but not escaped.
+				`a[href =~ "//example.com"]#foo`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+			},
+		},
+		{
+			`<div style="{{.}}">`,
+			[]string{
+				`ZgotmplZ`,
+				// Allowed and HTML escaped.
+				`a[href =~ &#34;//example.com&#34;]#foo`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+			},
+		},
+		{
+			`{{.}}`,
+			[]string{
+				`&lt;b&gt; &#34;foo%&#34; O&#39;Reilly &amp;bar;`,
+				`a[href =~ &#34;//example.com&#34;]#foo`,
+				// Not escaped.
+				`Hello, <b>World</b> &amp;tc!`,
+				` dir=&#34;ltr&#34;`,
+				`c &amp;&amp; alert(&#34;Hello, World!&#34;);`,
+				`Hello, World &amp; O&#39;Reilly\u0021`,
+				`greeting=H%69,&amp;addressee=(World)`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`,foo/,`,
+			},
+		},
+		{
+			`<a{{.}}>`,
+			[]string{
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				// Allowed and HTML escaped.
+				` dir="ltr"`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+				`ZgotmplZ`,
+			},
+		},
+		{
+			`<a title={{.}}>`,
+			[]string{
+				`&lt;b&gt;&#32;&#34;foo%&#34;&#32;O&#39;Reilly&#32;&amp;bar;`,
+				`a[href&#32;&#61;~&#32;&#34;//example.com&#34;]#foo`,
+				// Tags stripped, spaces escaped, entity not re-escaped.
+				`Hello,&#32;World&#32;&amp;tc!`,
+				`&#32;dir&#61;&#34;ltr&#34;`,
+				`c&#32;&amp;&amp;&#32;alert(&#34;Hello,&#32;World!&#34;);`,
+				`Hello,&#32;World&#32;&amp;&#32;O&#39;Reilly\u0021`,
+				`greeting&#61;H%69,&amp;addressee&#61;(World)`,
+				`greeting&#61;H%69,&amp;addressee&#61;(World)&#32;2x,&#32;https://golang.org/favicon.ico&#32;500.5w`,
+				`,foo/,`,
+			},
+		},
+		{
+			`<a title='{{.}}'>`,
+			[]string{
+				`&lt;b&gt; &#34;foo%&#34; O&#39;Reilly &amp;bar;`,
+				`a[href =~ &#34;//example.com&#34;]#foo`,
+				// Tags stripped, entity not re-escaped.
+				`Hello, World &amp;tc!`,
+				` dir=&#34;ltr&#34;`,
+				`c &amp;&amp; alert(&#34;Hello, World!&#34;);`,
+				`Hello, World &amp; O&#39;Reilly\u0021`,
+				`greeting=H%69,&amp;addressee=(World)`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`,foo/,`,
+			},
+		},
+		{
+			`<textarea>{{.}}</textarea>`,
+			[]string{
+				`&lt;b&gt; &#34;foo%&#34; O&#39;Reilly &amp;bar;`,
+				`a[href =~ &#34;//example.com&#34;]#foo`,
+				// Angle brackets escaped to prevent injection of close tags, entity not re-escaped.
+				`Hello, &lt;b&gt;World&lt;/b&gt; &amp;tc!`,
+				` dir=&#34;ltr&#34;`,
+				`c &amp;&amp; alert(&#34;Hello, World!&#34;);`,
+				`Hello, World &amp; O&#39;Reilly\u0021`,
+				`greeting=H%69,&amp;addressee=(World)`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`,foo/,`,
+			},
+		},
+		{
+			`<script>alert({{.}})</script>`,
+			[]string{
+				`"\u003cb\u003e \"foo%\" O'Reilly \u0026bar;"`,
+				`"a[href =~ \"//example.com\"]#foo"`,
+				`"Hello, \u003cb\u003eWorld\u003c/b\u003e \u0026amp;tc!"`,
+				`" dir=\"ltr\""`,
+				// Not escaped.
+				`c && alert("Hello, World!");`,
+				// Escape sequence not over-escaped.
+				`"Hello, World & O'Reilly\u0021"`,
+				`"greeting=H%69,\u0026addressee=(World)"`,
+				`"greeting=H%69,\u0026addressee=(World) 2x, https://golang.org/favicon.ico 500.5w"`,
+				`",foo/,"`,
+			},
+		},
+		{
+			`<button onclick="alert({{.}})">`,
+			[]string{
+				`&#34;\u003cb\u003e \&#34;foo%\&#34; O&#39;Reilly \u0026bar;&#34;`,
+				`&#34;a[href =~ \&#34;//example.com\&#34;]#foo&#34;`,
+				`&#34;Hello, \u003cb\u003eWorld\u003c/b\u003e \u0026amp;tc!&#34;`,
+				`&#34; dir=\&#34;ltr\&#34;&#34;`,
+				// Not JS escaped but HTML escaped.
+				`c &amp;&amp; alert(&#34;Hello, World!&#34;);`,
+				// Escape sequence not over-escaped.
+				`&#34;Hello, World &amp; O&#39;Reilly\u0021&#34;`,
+				`&#34;greeting=H%69,\u0026addressee=(World)&#34;`,
+				`&#34;greeting=H%69,\u0026addressee=(World) 2x, https://golang.org/favicon.ico 500.5w&#34;`,
+				`&#34;,foo/,&#34;`,
+			},
+		},
+		{
+			`<script>alert("{{.}}")</script>`,
+			[]string{
+				`\u003cb\u003e \u0022foo%\u0022 O\u0027Reilly \u0026bar;`,
+				`a[href =~ \u0022\/\/example.com\u0022]#foo`,
+				`Hello, \u003cb\u003eWorld\u003c\/b\u003e \u0026amp;tc!`,
+				` dir=\u0022ltr\u0022`,
+				`c \u0026\u0026 alert(\u0022Hello, World!\u0022);`,
+				// Escape sequence not over-escaped.
+				`Hello, World \u0026 O\u0027Reilly\u0021`,
+				`greeting=H%69,\u0026addressee=(World)`,
+				`greeting=H%69,\u0026addressee=(World) 2x, https:\/\/golang.org\/favicon.ico 500.5w`,
+				`,foo\/,`,
+			},
+		},
+		{
+			`<script type="text/javascript">alert("{{.}}")</script>`,
+			[]string{
+				`\u003cb\u003e \u0022foo%\u0022 O\u0027Reilly \u0026bar;`,
+				`a[href =~ \u0022\/\/example.com\u0022]#foo`,
+				`Hello, \u003cb\u003eWorld\u003c\/b\u003e \u0026amp;tc!`,
+				` dir=\u0022ltr\u0022`,
+				`c \u0026\u0026 alert(\u0022Hello, World!\u0022);`,
+				// Escape sequence not over-escaped.
+				`Hello, World \u0026 O\u0027Reilly\u0021`,
+				`greeting=H%69,\u0026addressee=(World)`,
+				`greeting=H%69,\u0026addressee=(World) 2x, https:\/\/golang.org\/favicon.ico 500.5w`,
+				`,foo\/,`,
+			},
+		},
+		{
+			`<script type="text/javascript">alert({{.}})</script>`,
+			[]string{
+				`"\u003cb\u003e \"foo%\" O'Reilly \u0026bar;"`,
+				`"a[href =~ \"//example.com\"]#foo"`,
+				`"Hello, \u003cb\u003eWorld\u003c/b\u003e \u0026amp;tc!"`,
+				`" dir=\"ltr\""`,
+				// Not escaped.
+				`c && alert("Hello, World!");`,
+				// Escape sequence not over-escaped.
+				`"Hello, World & O'Reilly\u0021"`,
+				`"greeting=H%69,\u0026addressee=(World)"`,
+				`"greeting=H%69,\u0026addressee=(World) 2x, https://golang.org/favicon.ico 500.5w"`,
+				`",foo/,"`,
+			},
+		},
+		{
+			// Not treated as JS. The output is same as for <div>{{.}}</div>
+			`<script type="golang.org/x/go.dev/cmd/internal/text/template">{{.}}</script>`,
+			[]string{
+				`&lt;b&gt; &#34;foo%&#34; O&#39;Reilly &amp;bar;`,
+				`a[href =~ &#34;//example.com&#34;]#foo`,
+				// Not escaped.
+				`Hello, <b>World</b> &amp;tc!`,
+				` dir=&#34;ltr&#34;`,
+				`c &amp;&amp; alert(&#34;Hello, World!&#34;);`,
+				`Hello, World &amp; O&#39;Reilly\u0021`,
+				`greeting=H%69,&amp;addressee=(World)`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`,foo/,`,
+			},
+		},
+		{
+			`<button onclick='alert("{{.}}")'>`,
+			[]string{
+				`\u003cb\u003e \u0022foo%\u0022 O\u0027Reilly \u0026bar;`,
+				`a[href =~ \u0022\/\/example.com\u0022]#foo`,
+				`Hello, \u003cb\u003eWorld\u003c\/b\u003e \u0026amp;tc!`,
+				` dir=\u0022ltr\u0022`,
+				`c \u0026\u0026 alert(\u0022Hello, World!\u0022);`,
+				// Escape sequence not over-escaped.
+				`Hello, World \u0026 O\u0027Reilly\u0021`,
+				`greeting=H%69,\u0026addressee=(World)`,
+				`greeting=H%69,\u0026addressee=(World) 2x, https:\/\/golang.org\/favicon.ico 500.5w`,
+				`,foo\/,`,
+			},
+		},
+		{
+			`<a href="?q={{.}}">`,
+			[]string{
+				`%3cb%3e%20%22foo%25%22%20O%27Reilly%20%26bar%3b`,
+				`a%5bhref%20%3d~%20%22%2f%2fexample.com%22%5d%23foo`,
+				`Hello%2c%20%3cb%3eWorld%3c%2fb%3e%20%26amp%3btc%21`,
+				`%20dir%3d%22ltr%22`,
+				`c%20%26%26%20alert%28%22Hello%2c%20World%21%22%29%3b`,
+				`Hello%2c%20World%20%26%20O%27Reilly%5cu0021`,
+				// Quotes and parens are escaped but %69 is not over-escaped. HTML escaping is done.
+				`greeting=H%69,&amp;addressee=%28World%29`,
+				`greeting%3dH%2569%2c%26addressee%3d%28World%29%202x%2c%20https%3a%2f%2fgolang.org%2ffavicon.ico%20500.5w`,
+				`,foo/,`,
+			},
+		},
+		{
+			`<style>body { background: url('?img={{.}}') }</style>`,
+			[]string{
+				`%3cb%3e%20%22foo%25%22%20O%27Reilly%20%26bar%3b`,
+				`a%5bhref%20%3d~%20%22%2f%2fexample.com%22%5d%23foo`,
+				`Hello%2c%20%3cb%3eWorld%3c%2fb%3e%20%26amp%3btc%21`,
+				`%20dir%3d%22ltr%22`,
+				`c%20%26%26%20alert%28%22Hello%2c%20World%21%22%29%3b`,
+				`Hello%2c%20World%20%26%20O%27Reilly%5cu0021`,
+				// Quotes and parens are escaped but %69 is not over-escaped. HTML escaping is not done.
+				`greeting=H%69,&addressee=%28World%29`,
+				`greeting%3dH%2569%2c%26addressee%3d%28World%29%202x%2c%20https%3a%2f%2fgolang.org%2ffavicon.ico%20500.5w`,
+				`,foo/,`,
+			},
+		},
+		{
+			`<img srcset="{{.}}">`,
+			[]string{
+				`#ZgotmplZ`,
+				`#ZgotmplZ`,
+				// Commas are not esacped
+				`Hello,#ZgotmplZ`,
+				// Leading spaces are not percent escapes.
+				` dir=%22ltr%22`,
+				// Spaces after commas are not percent escaped.
+				`#ZgotmplZ, World!%22%29;`,
+				`Hello,#ZgotmplZ`,
+				`greeting=H%69%2c&amp;addressee=%28World%29`,
+				// Metadata is not escaped.
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`%2cfoo/%2c`,
+			},
+		},
+		{
+			`<img srcset={{.}}>`,
+			[]string{
+				`#ZgotmplZ`,
+				`#ZgotmplZ`,
+				`Hello,#ZgotmplZ`,
+				// Spaces are HTML escaped not %-escaped
+				`&#32;dir&#61;%22ltr%22`,
+				`#ZgotmplZ,&#32;World!%22%29;`,
+				`Hello,#ZgotmplZ`,
+				`greeting&#61;H%69%2c&amp;addressee&#61;%28World%29`,
+				`greeting&#61;H%69,&amp;addressee&#61;(World)&#32;2x,&#32;https://golang.org/favicon.ico&#32;500.5w`,
+				// Commas are escaped.
+				`%2cfoo/%2c`,
+			},
+		},
+		{
+			`<img srcset="{{.}} 2x, https://golang.org/ 500.5w">`,
+			[]string{
+				`#ZgotmplZ`,
+				`#ZgotmplZ`,
+				`Hello,#ZgotmplZ`,
+				` dir=%22ltr%22`,
+				`#ZgotmplZ, World!%22%29;`,
+				`Hello,#ZgotmplZ`,
+				`greeting=H%69%2c&amp;addressee=%28World%29`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`%2cfoo/%2c`,
+			},
+		},
+		{
+			`<img srcset="http://godoc.org/ {{.}}, https://golang.org/ 500.5w">`,
+			[]string{
+				`#ZgotmplZ`,
+				`#ZgotmplZ`,
+				`Hello,#ZgotmplZ`,
+				` dir=%22ltr%22`,
+				`#ZgotmplZ, World!%22%29;`,
+				`Hello,#ZgotmplZ`,
+				`greeting=H%69%2c&amp;addressee=%28World%29`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`%2cfoo/%2c`,
+			},
+		},
+		{
+			`<img srcset="http://godoc.org/?q={{.}} 2x, https://golang.org/ 500.5w">`,
+			[]string{
+				`#ZgotmplZ`,
+				`#ZgotmplZ`,
+				`Hello,#ZgotmplZ`,
+				` dir=%22ltr%22`,
+				`#ZgotmplZ, World!%22%29;`,
+				`Hello,#ZgotmplZ`,
+				`greeting=H%69%2c&amp;addressee=%28World%29`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`%2cfoo/%2c`,
+			},
+		},
+		{
+			`<img srcset="http://godoc.org/ 2x, {{.}} 500.5w">`,
+			[]string{
+				`#ZgotmplZ`,
+				`#ZgotmplZ`,
+				`Hello,#ZgotmplZ`,
+				` dir=%22ltr%22`,
+				`#ZgotmplZ, World!%22%29;`,
+				`Hello,#ZgotmplZ`,
+				`greeting=H%69%2c&amp;addressee=%28World%29`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`%2cfoo/%2c`,
+			},
+		},
+		{
+			`<img srcset="http://godoc.org/ 2x, https://golang.org/ {{.}}">`,
+			[]string{
+				`#ZgotmplZ`,
+				`#ZgotmplZ`,
+				`Hello,#ZgotmplZ`,
+				` dir=%22ltr%22`,
+				`#ZgotmplZ, World!%22%29;`,
+				`Hello,#ZgotmplZ`,
+				`greeting=H%69%2c&amp;addressee=%28World%29`,
+				`greeting=H%69,&amp;addressee=(World) 2x, https://golang.org/favicon.ico 500.5w`,
+				`%2cfoo/%2c`,
+			},
+		},
+	}
+
+	for _, test := range tests {
+		tmpl := Must(New("x").Parse(test.input))
+		pre := strings.Index(test.input, "{{.}}")
+		post := len(test.input) - (pre + 5)
+		var b bytes.Buffer
+		for i, x := range data {
+			b.Reset()
+			if err := tmpl.Execute(&b, x); err != nil {
+				t.Errorf("%q with %v: %s", test.input, x, err)
+				continue
+			}
+			if want, got := test.want[i], b.String()[pre:b.Len()-post]; want != got {
+				t.Errorf("%q with %v:\nwant\n\t%q,\ngot\n\t%q\n", test.input, x, want, got)
+				continue
+			}
+		}
+	}
+}
+
+// Test that we print using the String method. Was issue 3073.
+type myStringer struct {
+	v int
+}
+
+func (s *myStringer) String() string {
+	return fmt.Sprintf("string=%d", s.v)
+}
+
+type errorer struct {
+	v int
+}
+
+func (s *errorer) Error() string {
+	return fmt.Sprintf("error=%d", s.v)
+}
+
+func TestStringer(t *testing.T) {
+	s := &myStringer{3}
+	b := new(bytes.Buffer)
+	tmpl := Must(New("x").Parse("{{.}}"))
+	if err := tmpl.Execute(b, s); err != nil {
+		t.Fatal(err)
+	}
+	var expect = "string=3"
+	if b.String() != expect {
+		t.Errorf("expected %q got %q", expect, b.String())
+	}
+	e := &errorer{7}
+	b.Reset()
+	if err := tmpl.Execute(b, e); err != nil {
+		t.Fatal(err)
+	}
+	expect = "error=7"
+	if b.String() != expect {
+		t.Errorf("expected %q got %q", expect, b.String())
+	}
+}
+
+// https://golang.org/issue/5982
+func TestEscapingNilNonemptyInterfaces(t *testing.T) {
+	tmpl := Must(New("x").Parse("{{.E}}"))
+
+	got := new(bytes.Buffer)
+	testData := struct{ E error }{} // any non-empty interface here will do; error is just ready at hand
+	tmpl.Execute(got, testData)
+
+	// A non-empty interface should print like an empty interface.
+	want := new(bytes.Buffer)
+	data := struct{ E interface{} }{}
+	tmpl.Execute(want, data)
+
+	if !bytes.Equal(want.Bytes(), got.Bytes()) {
+		t.Errorf("expected %q got %q", string(want.Bytes()), string(got.Bytes()))
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/context.go b/go.dev/cmd/internal/html/template/context.go
new file mode 100644
index 0000000..850022a
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/context.go
@@ -0,0 +1,265 @@
+// Copyright 2011 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 template
+
+import (
+	"fmt"
+
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+// context describes the state an HTML parser must be in when it reaches the
+// portion of HTML produced by evaluating a particular template node.
+//
+// The zero value of type context is the start context for a template that
+// produces an HTML fragment as defined at
+// https://www.w3.org/TR/html5/syntax.html#the-end
+// where the context element is null.
+type context struct {
+	state   state
+	delim   delim
+	urlPart urlPart
+	jsCtx   jsCtx
+	attr    attr
+	element element
+	n       parse.Node // for range break/continue
+	err     *Error
+}
+
+func (c context) String() string {
+	var err error
+	if c.err != nil {
+		err = c.err
+	}
+	return fmt.Sprintf("{%v %v %v %v %v %v %v}", c.state, c.delim, c.urlPart, c.jsCtx, c.attr, c.element, err)
+}
+
+// eq reports whether two contexts are equal.
+func (c context) eq(d context) bool {
+	return c.state == d.state &&
+		c.delim == d.delim &&
+		c.urlPart == d.urlPart &&
+		c.jsCtx == d.jsCtx &&
+		c.attr == d.attr &&
+		c.element == d.element &&
+		c.err == d.err
+}
+
+// mangle produces an identifier that includes a suffix that distinguishes it
+// from template names mangled with different contexts.
+func (c context) mangle(templateName string) string {
+	// The mangled name for the default context is the input templateName.
+	if c.state == stateText {
+		return templateName
+	}
+	s := templateName + "$htmltemplate_" + c.state.String()
+	if c.delim != delimNone {
+		s += "_" + c.delim.String()
+	}
+	if c.urlPart != urlPartNone {
+		s += "_" + c.urlPart.String()
+	}
+	if c.jsCtx != jsCtxRegexp {
+		s += "_" + c.jsCtx.String()
+	}
+	if c.attr != attrNone {
+		s += "_" + c.attr.String()
+	}
+	if c.element != elementNone {
+		s += "_" + c.element.String()
+	}
+	return s
+}
+
+// state describes a high-level HTML parser state.
+//
+// It bounds the top of the element stack, and by extension the HTML insertion
+// mode, but also contains state that does not correspond to anything in the
+// HTML5 parsing algorithm because a single token production in the HTML
+// grammar may contain embedded actions in a template. For instance, the quoted
+// HTML attribute produced by
+//     <div title="Hello {{.World}}">
+// is a single token in HTML's grammar but in a template spans several nodes.
+type state uint8
+
+//go:generate stringer -type state
+
+const (
+	// stateText is parsed character data. An HTML parser is in
+	// this state when its parse position is outside an HTML tag,
+	// directive, comment, and special element body.
+	stateText state = iota
+	// stateTag occurs before an HTML attribute or the end of a tag.
+	stateTag
+	// stateAttrName occurs inside an attribute name.
+	// It occurs between the ^'s in ` ^name^ = value`.
+	stateAttrName
+	// stateAfterName occurs after an attr name has ended but before any
+	// equals sign. It occurs between the ^'s in ` name^ ^= value`.
+	stateAfterName
+	// stateBeforeValue occurs after the equals sign but before the value.
+	// It occurs between the ^'s in ` name =^ ^value`.
+	stateBeforeValue
+	// stateHTMLCmt occurs inside an <!-- HTML comment -->.
+	stateHTMLCmt
+	// stateRCDATA occurs inside an RCDATA element (<textarea> or <title>)
+	// as described at https://www.w3.org/TR/html5/syntax.html#elements-0
+	stateRCDATA
+	// stateAttr occurs inside an HTML attribute whose content is text.
+	stateAttr
+	// stateURL occurs inside an HTML attribute whose content is a URL.
+	stateURL
+	// stateSrcset occurs inside an HTML srcset attribute.
+	stateSrcset
+	// stateJS occurs inside an event handler or script element.
+	stateJS
+	// stateJSDqStr occurs inside a JavaScript double quoted string.
+	stateJSDqStr
+	// stateJSSqStr occurs inside a JavaScript single quoted string.
+	stateJSSqStr
+	// stateJSRegexp occurs inside a JavaScript regexp literal.
+	stateJSRegexp
+	// stateJSBlockCmt occurs inside a JavaScript /* block comment */.
+	stateJSBlockCmt
+	// stateJSLineCmt occurs inside a JavaScript // line comment.
+	stateJSLineCmt
+	// stateCSS occurs inside a <style> element or style attribute.
+	stateCSS
+	// stateCSSDqStr occurs inside a CSS double quoted string.
+	stateCSSDqStr
+	// stateCSSSqStr occurs inside a CSS single quoted string.
+	stateCSSSqStr
+	// stateCSSDqURL occurs inside a CSS double quoted url("...").
+	stateCSSDqURL
+	// stateCSSSqURL occurs inside a CSS single quoted url('...').
+	stateCSSSqURL
+	// stateCSSURL occurs inside a CSS unquoted url(...).
+	stateCSSURL
+	// stateCSSBlockCmt occurs inside a CSS /* block comment */.
+	stateCSSBlockCmt
+	// stateCSSLineCmt occurs inside a CSS // line comment.
+	stateCSSLineCmt
+	// stateError is an infectious error state outside any valid
+	// HTML/CSS/JS construct.
+	stateError
+	// stateDead marks unreachable code after a {{break}} or {{continue}}.
+	stateDead
+)
+
+// isComment is true for any state that contains content meant for template
+// authors & maintainers, not for end-users or machines.
+func isComment(s state) bool {
+	switch s {
+	case stateHTMLCmt, stateJSBlockCmt, stateJSLineCmt, stateCSSBlockCmt, stateCSSLineCmt:
+		return true
+	}
+	return false
+}
+
+// isInTag return whether s occurs solely inside an HTML tag.
+func isInTag(s state) bool {
+	switch s {
+	case stateTag, stateAttrName, stateAfterName, stateBeforeValue, stateAttr:
+		return true
+	}
+	return false
+}
+
+// delim is the delimiter that will end the current HTML attribute.
+type delim uint8
+
+//go:generate stringer -type delim
+
+const (
+	// delimNone occurs outside any attribute.
+	delimNone delim = iota
+	// delimDoubleQuote occurs when a double quote (") closes the attribute.
+	delimDoubleQuote
+	// delimSingleQuote occurs when a single quote (') closes the attribute.
+	delimSingleQuote
+	// delimSpaceOrTagEnd occurs when a space or right angle bracket (>)
+	// closes the attribute.
+	delimSpaceOrTagEnd
+)
+
+// urlPart identifies a part in an RFC 3986 hierarchical URL to allow different
+// encoding strategies.
+type urlPart uint8
+
+//go:generate stringer -type urlPart
+
+const (
+	// urlPartNone occurs when not in a URL, or possibly at the start:
+	// ^ in "^http://auth/path?k=v#frag".
+	urlPartNone urlPart = iota
+	// urlPartPreQuery occurs in the scheme, authority, or path; between the
+	// ^s in "h^ttp://auth/path^?k=v#frag".
+	urlPartPreQuery
+	// urlPartQueryOrFrag occurs in the query portion between the ^s in
+	// "http://auth/path?^k=v#frag^".
+	urlPartQueryOrFrag
+	// urlPartUnknown occurs due to joining of contexts both before and
+	// after the query separator.
+	urlPartUnknown
+)
+
+// jsCtx determines whether a '/' starts a regular expression literal or a
+// division operator.
+type jsCtx uint8
+
+//go:generate stringer -type jsCtx
+
+const (
+	// jsCtxRegexp occurs where a '/' would start a regexp literal.
+	jsCtxRegexp jsCtx = iota
+	// jsCtxDivOp occurs where a '/' would start a division operator.
+	jsCtxDivOp
+	// jsCtxUnknown occurs where a '/' is ambiguous due to context joining.
+	jsCtxUnknown
+)
+
+// element identifies the HTML element when inside a start tag or special body.
+// Certain HTML element (for example <script> and <style>) have bodies that are
+// treated differently from stateText so the element type is necessary to
+// transition into the correct context at the end of a tag and to identify the
+// end delimiter for the body.
+type element uint8
+
+//go:generate stringer -type element
+
+const (
+	// elementNone occurs outside a special tag or special element body.
+	elementNone element = iota
+	// elementScript corresponds to the raw text <script> element
+	// with JS MIME type or no type attribute.
+	elementScript
+	// elementStyle corresponds to the raw text <style> element.
+	elementStyle
+	// elementTextarea corresponds to the RCDATA <textarea> element.
+	elementTextarea
+	// elementTitle corresponds to the RCDATA <title> element.
+	elementTitle
+)
+
+//go:generate stringer -type attr
+
+// attr identifies the current HTML attribute when inside the attribute,
+// that is, starting from stateAttrName until stateTag/stateText (exclusive).
+type attr uint8
+
+const (
+	// attrNone corresponds to a normal attribute or no attribute.
+	attrNone attr = iota
+	// attrScript corresponds to an event handler attribute.
+	attrScript
+	// attrScriptType corresponds to the type attribute in script HTML element
+	attrScriptType
+	// attrStyle corresponds to the style attribute whose value is CSS.
+	attrStyle
+	// attrURL corresponds to an attribute whose value is a URL.
+	attrURL
+	// attrSrcset corresponds to a srcset attribute.
+	attrSrcset
+)
diff --git a/go.dev/cmd/internal/html/template/css.go b/go.dev/cmd/internal/html/template/css.go
new file mode 100644
index 0000000..eb92fc9
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/css.go
@@ -0,0 +1,260 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"fmt"
+	"strings"
+	"unicode"
+	"unicode/utf8"
+)
+
+// endsWithCSSKeyword reports whether b ends with an ident that
+// case-insensitively matches the lower-case kw.
+func endsWithCSSKeyword(b []byte, kw string) bool {
+	i := len(b) - len(kw)
+	if i < 0 {
+		// Too short.
+		return false
+	}
+	if i != 0 {
+		r, _ := utf8.DecodeLastRune(b[:i])
+		if isCSSNmchar(r) {
+			// Too long.
+			return false
+		}
+	}
+	// Many CSS keywords, such as "!important" can have characters encoded,
+	// but the URI production does not allow that according to
+	// https://www.w3.org/TR/css3-syntax/#TOK-URI
+	// This does not attempt to recognize encoded keywords. For example,
+	// given "\75\72\6c" and "url" this return false.
+	return string(bytes.ToLower(b[i:])) == kw
+}
+
+// isCSSNmchar reports whether rune is allowed anywhere in a CSS identifier.
+func isCSSNmchar(r rune) bool {
+	// Based on the CSS3 nmchar production but ignores multi-rune escape
+	// sequences.
+	// https://www.w3.org/TR/css3-syntax/#SUBTOK-nmchar
+	return 'a' <= r && r <= 'z' ||
+		'A' <= r && r <= 'Z' ||
+		'0' <= r && r <= '9' ||
+		r == '-' ||
+		r == '_' ||
+		// Non-ASCII cases below.
+		0x80 <= r && r <= 0xd7ff ||
+		0xe000 <= r && r <= 0xfffd ||
+		0x10000 <= r && r <= 0x10ffff
+}
+
+// decodeCSS decodes CSS3 escapes given a sequence of stringchars.
+// If there is no change, it returns the input, otherwise it returns a slice
+// backed by a new array.
+// https://www.w3.org/TR/css3-syntax/#SUBTOK-stringchar defines stringchar.
+func decodeCSS(s []byte) []byte {
+	i := bytes.IndexByte(s, '\\')
+	if i == -1 {
+		return s
+	}
+	// The UTF-8 sequence for a codepoint is never longer than 1 + the
+	// number hex digits need to represent that codepoint, so len(s) is an
+	// upper bound on the output length.
+	b := make([]byte, 0, len(s))
+	for len(s) != 0 {
+		i := bytes.IndexByte(s, '\\')
+		if i == -1 {
+			i = len(s)
+		}
+		b, s = append(b, s[:i]...), s[i:]
+		if len(s) < 2 {
+			break
+		}
+		// https://www.w3.org/TR/css3-syntax/#SUBTOK-escape
+		// escape ::= unicode | '\' [#x20-#x7E#x80-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF]
+		if isHex(s[1]) {
+			// https://www.w3.org/TR/css3-syntax/#SUBTOK-unicode
+			//   unicode ::= '\' [0-9a-fA-F]{1,6} wc?
+			j := 2
+			for j < len(s) && j < 7 && isHex(s[j]) {
+				j++
+			}
+			r := hexDecode(s[1:j])
+			if r > unicode.MaxRune {
+				r, j = r/16, j-1
+			}
+			n := utf8.EncodeRune(b[len(b):cap(b)], r)
+			// The optional space at the end allows a hex
+			// sequence to be followed by a literal hex.
+			// string(decodeCSS([]byte(`\A B`))) == "\nB"
+			b, s = b[:len(b)+n], skipCSSSpace(s[j:])
+		} else {
+			// `\\` decodes to `\` and `\"` to `"`.
+			_, n := utf8.DecodeRune(s[1:])
+			b, s = append(b, s[1:1+n]...), s[1+n:]
+		}
+	}
+	return b
+}
+
+// isHex reports whether the given character is a hex digit.
+func isHex(c byte) bool {
+	return '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F'
+}
+
+// hexDecode decodes a short hex digit sequence: "10" -> 16.
+func hexDecode(s []byte) rune {
+	n := '\x00'
+	for _, c := range s {
+		n <<= 4
+		switch {
+		case '0' <= c && c <= '9':
+			n |= rune(c - '0')
+		case 'a' <= c && c <= 'f':
+			n |= rune(c-'a') + 10
+		case 'A' <= c && c <= 'F':
+			n |= rune(c-'A') + 10
+		default:
+			panic(fmt.Sprintf("Bad hex digit in %q", s))
+		}
+	}
+	return n
+}
+
+// skipCSSSpace returns a suffix of c, skipping over a single space.
+func skipCSSSpace(c []byte) []byte {
+	if len(c) == 0 {
+		return c
+	}
+	// wc ::= #x9 | #xA | #xC | #xD | #x20
+	switch c[0] {
+	case '\t', '\n', '\f', ' ':
+		return c[1:]
+	case '\r':
+		// This differs from CSS3's wc production because it contains a
+		// probable spec error whereby wc contains all the single byte
+		// sequences in nl (newline) but not CRLF.
+		if len(c) >= 2 && c[1] == '\n' {
+			return c[2:]
+		}
+		return c[1:]
+	}
+	return c
+}
+
+// isCSSSpace reports whether b is a CSS space char as defined in wc.
+func isCSSSpace(b byte) bool {
+	switch b {
+	case '\t', '\n', '\f', '\r', ' ':
+		return true
+	}
+	return false
+}
+
+// cssEscaper escapes HTML and CSS special characters using \<hex>+ escapes.
+func cssEscaper(args ...interface{}) string {
+	s, _ := stringify(args...)
+	var b strings.Builder
+	r, w, written := rune(0), 0, 0
+	for i := 0; i < len(s); i += w {
+		// See comment in htmlEscaper.
+		r, w = utf8.DecodeRuneInString(s[i:])
+		var repl string
+		switch {
+		case int(r) < len(cssReplacementTable) && cssReplacementTable[r] != "":
+			repl = cssReplacementTable[r]
+		default:
+			continue
+		}
+		if written == 0 {
+			b.Grow(len(s))
+		}
+		b.WriteString(s[written:i])
+		b.WriteString(repl)
+		written = i + w
+		if repl != `\\` && (written == len(s) || isHex(s[written]) || isCSSSpace(s[written])) {
+			b.WriteByte(' ')
+		}
+	}
+	if written == 0 {
+		return s
+	}
+	b.WriteString(s[written:])
+	return b.String()
+}
+
+var cssReplacementTable = []string{
+	0:    `\0`,
+	'\t': `\9`,
+	'\n': `\a`,
+	'\f': `\c`,
+	'\r': `\d`,
+	// Encode HTML specials as hex so the output can be embedded
+	// in HTML attributes without further encoding.
+	'"':  `\22`,
+	'&':  `\26`,
+	'\'': `\27`,
+	'(':  `\28`,
+	')':  `\29`,
+	'+':  `\2b`,
+	'/':  `\2f`,
+	':':  `\3a`,
+	';':  `\3b`,
+	'<':  `\3c`,
+	'>':  `\3e`,
+	'\\': `\\`,
+	'{':  `\7b`,
+	'}':  `\7d`,
+}
+
+var expressionBytes = []byte("expression")
+var mozBindingBytes = []byte("mozbinding")
+
+// cssValueFilter allows innocuous CSS values in the output including CSS
+// quantities (10px or 25%), ID or class literals (#foo, .bar), keyword values
+// (inherit, blue), and colors (#888).
+// It filters out unsafe values, such as those that affect token boundaries,
+// and anything that might execute scripts.
+func cssValueFilter(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeCSS {
+		return s
+	}
+	b, id := decodeCSS([]byte(s)), make([]byte, 0, 64)
+
+	// CSS3 error handling is specified as honoring string boundaries per
+	// https://www.w3.org/TR/css3-syntax/#error-handling :
+	//     Malformed declarations. User agents must handle unexpected
+	//     tokens encountered while parsing a declaration by reading until
+	//     the end of the declaration, while observing the rules for
+	//     matching pairs of (), [], {}, "", and '', and correctly handling
+	//     escapes. For example, a malformed declaration may be missing a
+	//     property, colon (:) or value.
+	// So we need to make sure that values do not have mismatched bracket
+	// or quote characters to prevent the browser from restarting parsing
+	// inside a string that might embed JavaScript source.
+	for i, c := range b {
+		switch c {
+		case 0, '"', '\'', '(', ')', '/', ';', '@', '[', '\\', ']', '`', '{', '}':
+			return filterFailsafe
+		case '-':
+			// Disallow <!-- or -->.
+			// -- should not appear in valid identifiers.
+			if i != 0 && b[i-1] == '-' {
+				return filterFailsafe
+			}
+		default:
+			if c < utf8.RuneSelf && isCSSNmchar(rune(c)) {
+				id = append(id, c)
+			}
+		}
+	}
+	id = bytes.ToLower(id)
+	if bytes.Contains(id, expressionBytes) || bytes.Contains(id, mozBindingBytes) {
+		return filterFailsafe
+	}
+	return string(b)
+}
diff --git a/go.dev/cmd/internal/html/template/css_test.go b/go.dev/cmd/internal/html/template/css_test.go
new file mode 100644
index 0000000..a735638
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/css_test.go
@@ -0,0 +1,281 @@
+// Copyright 2011 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 template
+
+import (
+	"strconv"
+	"strings"
+	"testing"
+)
+
+func TestEndsWithCSSKeyword(t *testing.T) {
+	tests := []struct {
+		css, kw string
+		want    bool
+	}{
+		{"", "url", false},
+		{"url", "url", true},
+		{"URL", "url", true},
+		{"Url", "url", true},
+		{"url", "important", false},
+		{"important", "important", true},
+		{"image-url", "url", false},
+		{"imageurl", "url", false},
+		{"image url", "url", true},
+	}
+	for _, test := range tests {
+		got := endsWithCSSKeyword([]byte(test.css), test.kw)
+		if got != test.want {
+			t.Errorf("want %t but got %t for css=%v, kw=%v", test.want, got, test.css, test.kw)
+		}
+	}
+}
+
+func TestIsCSSNmchar(t *testing.T) {
+	tests := []struct {
+		rune rune
+		want bool
+	}{
+		{0, false},
+		{'0', true},
+		{'9', true},
+		{'A', true},
+		{'Z', true},
+		{'a', true},
+		{'z', true},
+		{'_', true},
+		{'-', true},
+		{':', false},
+		{';', false},
+		{' ', false},
+		{0x7f, false},
+		{0x80, true},
+		{0x1234, true},
+		{0xd800, false},
+		{0xdc00, false},
+		{0xfffe, false},
+		{0x10000, true},
+		{0x110000, false},
+	}
+	for _, test := range tests {
+		got := isCSSNmchar(test.rune)
+		if got != test.want {
+			t.Errorf("%q: want %t but got %t", string(test.rune), test.want, got)
+		}
+	}
+}
+
+func TestDecodeCSS(t *testing.T) {
+	tests := []struct {
+		css, want string
+	}{
+		{``, ``},
+		{`foo`, `foo`},
+		{`foo\`, `foo`},
+		{`foo\\`, `foo\`},
+		{`\`, ``},
+		{`\A`, "\n"},
+		{`\a`, "\n"},
+		{`\0a`, "\n"},
+		{`\00000a`, "\n"},
+		{`\000000a`, "\u0000a"},
+		{`\1234 5`, "\u1234" + "5"},
+		{`\1234\20 5`, "\u1234" + " 5"},
+		{`\1234\A 5`, "\u1234" + "\n5"},
+		{"\\1234\t5", "\u1234" + "5"},
+		{"\\1234\n5", "\u1234" + "5"},
+		{"\\1234\r\n5", "\u1234" + "5"},
+		{`\12345`, "\U00012345"},
+		{`\\`, `\`},
+		{`\\ `, `\ `},
+		{`\"`, `"`},
+		{`\'`, `'`},
+		{`\.`, `.`},
+		{`\. .`, `. .`},
+		{
+			`The \3c i\3equick\3c/i\3e,\d\A\3cspan style=\27 color:brown\27\3e brown\3c/span\3e  fox jumps\2028over the \3c canine class=\22lazy\22 \3e dog\3c/canine\3e`,
+			"The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>",
+		},
+	}
+	for _, test := range tests {
+		got1 := string(decodeCSS([]byte(test.css)))
+		if got1 != test.want {
+			t.Errorf("%q: want\n\t%q\nbut got\n\t%q", test.css, test.want, got1)
+		}
+		recoded := cssEscaper(got1)
+		if got2 := string(decodeCSS([]byte(recoded))); got2 != test.want {
+			t.Errorf("%q: escape & decode not dual for %q", test.css, recoded)
+		}
+	}
+}
+
+func TestHexDecode(t *testing.T) {
+	for i := 0; i < 0x200000; i += 101 /* coprime with 16 */ {
+		s := strconv.FormatInt(int64(i), 16)
+		if got := int(hexDecode([]byte(s))); got != i {
+			t.Errorf("%s: want %d but got %d", s, i, got)
+		}
+		s = strings.ToUpper(s)
+		if got := int(hexDecode([]byte(s))); got != i {
+			t.Errorf("%s: want %d but got %d", s, i, got)
+		}
+	}
+}
+
+func TestSkipCSSSpace(t *testing.T) {
+	tests := []struct {
+		css, want string
+	}{
+		{"", ""},
+		{"foo", "foo"},
+		{"\n", ""},
+		{"\r\n", ""},
+		{"\r", ""},
+		{"\t", ""},
+		{" ", ""},
+		{"\f", ""},
+		{" foo", "foo"},
+		{"  foo", " foo"},
+		{`\20`, `\20`},
+	}
+	for _, test := range tests {
+		got := string(skipCSSSpace([]byte(test.css)))
+		if got != test.want {
+			t.Errorf("%q: want %q but got %q", test.css, test.want, got)
+		}
+	}
+}
+
+func TestCSSEscaper(t *testing.T) {
+	input := ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f" +
+		"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+		` !"#$%&'()*+,-./` +
+		`0123456789:;<=>?` +
+		`@ABCDEFGHIJKLMNO` +
+		`PQRSTUVWXYZ[\]^_` +
+		"`abcdefghijklmno" +
+		"pqrstuvwxyz{|}~\x7f" +
+		"\u00A0\u0100\u2028\u2029\ufeff\U0001D11E")
+
+	want := ("\\0\x01\x02\x03\x04\x05\x06\x07" +
+		"\x08\\9 \\a\x0b\\c \\d\x0E\x0F" +
+		"\x10\x11\x12\x13\x14\x15\x16\x17" +
+		"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+		` !\22#$%\26\27\28\29*\2b,-.\2f ` +
+		`0123456789\3a\3b\3c=\3e?` +
+		`@ABCDEFGHIJKLMNO` +
+		`PQRSTUVWXYZ[\\]^_` +
+		"`abcdefghijklmno" +
+		`pqrstuvwxyz\7b|\7d~` + "\u007f" +
+		"\u00A0\u0100\u2028\u2029\ufeff\U0001D11E")
+
+	got := cssEscaper(input)
+	if got != want {
+		t.Errorf("encode: want\n\t%q\nbut got\n\t%q", want, got)
+	}
+
+	got = string(decodeCSS([]byte(got)))
+	if input != got {
+		t.Errorf("decode: want\n\t%q\nbut got\n\t%q", input, got)
+	}
+}
+
+func TestCSSValueFilter(t *testing.T) {
+	tests := []struct {
+		css, want string
+	}{
+		{"", ""},
+		{"foo", "foo"},
+		{"0", "0"},
+		{"0px", "0px"},
+		{"-5px", "-5px"},
+		{"1.25in", "1.25in"},
+		{"+.33em", "+.33em"},
+		{"100%", "100%"},
+		{"12.5%", "12.5%"},
+		{".foo", ".foo"},
+		{"#bar", "#bar"},
+		{"corner-radius", "corner-radius"},
+		{"-moz-corner-radius", "-moz-corner-radius"},
+		{"#000", "#000"},
+		{"#48f", "#48f"},
+		{"#123456", "#123456"},
+		{"U+00-FF, U+980-9FF", "U+00-FF, U+980-9FF"},
+		{"color: red", "color: red"},
+		{"<!--", "ZgotmplZ"},
+		{"-->", "ZgotmplZ"},
+		{"<![CDATA[", "ZgotmplZ"},
+		{"]]>", "ZgotmplZ"},
+		{"</style", "ZgotmplZ"},
+		{`"`, "ZgotmplZ"},
+		{`'`, "ZgotmplZ"},
+		{"`", "ZgotmplZ"},
+		{"\x00", "ZgotmplZ"},
+		{"/* foo */", "ZgotmplZ"},
+		{"//", "ZgotmplZ"},
+		{"[href=~", "ZgotmplZ"},
+		{"expression(alert(1337))", "ZgotmplZ"},
+		{"-expression(alert(1337))", "ZgotmplZ"},
+		{"expression", "ZgotmplZ"},
+		{"Expression", "ZgotmplZ"},
+		{"EXPRESSION", "ZgotmplZ"},
+		{"-moz-binding", "ZgotmplZ"},
+		{"-expr\x00ession(alert(1337))", "ZgotmplZ"},
+		{`-expr\0ession(alert(1337))`, "ZgotmplZ"},
+		{`-express\69on(alert(1337))`, "ZgotmplZ"},
+		{`-express\69 on(alert(1337))`, "ZgotmplZ"},
+		{`-exp\72 ession(alert(1337))`, "ZgotmplZ"},
+		{`-exp\52 ession(alert(1337))`, "ZgotmplZ"},
+		{`-exp\000052 ession(alert(1337))`, "ZgotmplZ"},
+		{`-expre\0000073sion`, "-expre\x073sion"},
+		{`@import url evil.css`, "ZgotmplZ"},
+	}
+	for _, test := range tests {
+		got := cssValueFilter(test.css)
+		if got != test.want {
+			t.Errorf("%q: want %q but got %q", test.css, test.want, got)
+		}
+	}
+}
+
+func BenchmarkCSSEscaper(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		cssEscaper("The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>")
+	}
+}
+
+func BenchmarkCSSEscaperNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		cssEscaper("The quick, brown fox jumps over the lazy dog.")
+	}
+}
+
+func BenchmarkDecodeCSS(b *testing.B) {
+	s := []byte(`The \3c i\3equick\3c/i\3e,\d\A\3cspan style=\27 color:brown\27\3e brown\3c/span\3e fox jumps\2028over the \3c canine class=\22lazy\22 \3edog\3c/canine\3e`)
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		decodeCSS(s)
+	}
+}
+
+func BenchmarkDecodeCSSNoSpecials(b *testing.B) {
+	s := []byte("The quick, brown fox jumps over the lazy dog.")
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		decodeCSS(s)
+	}
+}
+
+func BenchmarkCSSValueFilter(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		cssValueFilter(`  e\78preS\0Sio/**/n(alert(1337))`)
+	}
+}
+
+func BenchmarkCSSValueFilterOk(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		cssValueFilter(`Times New Roman`)
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/delim_string.go b/go.dev/cmd/internal/html/template/delim_string.go
new file mode 100644
index 0000000..6d80e09
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/delim_string.go
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type delim"; DO NOT EDIT.
+
+package template
+
+import "strconv"
+
+const _delim_name = "delimNonedelimDoubleQuotedelimSingleQuotedelimSpaceOrTagEnd"
+
+var _delim_index = [...]uint8{0, 9, 25, 41, 59}
+
+func (i delim) String() string {
+	if i >= delim(len(_delim_index)-1) {
+		return "delim(" + strconv.FormatInt(int64(i), 10) + ")"
+	}
+	return _delim_name[_delim_index[i]:_delim_index[i+1]]
+}
diff --git a/go.dev/cmd/internal/html/template/doc.go b/go.dev/cmd/internal/html/template/doc.go
new file mode 100644
index 0000000..2abc215
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/doc.go
@@ -0,0 +1,241 @@
+// Copyright 2011 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 template (html/template) implements data-driven templates for
+generating HTML output safe against code injection. It provides the
+same interface as package text/template and should be used instead of
+text/template whenever the output is HTML.
+
+The documentation here focuses on the security features of the package.
+For information about how to program the templates themselves, see the
+documentation for text/template.
+
+Introduction
+
+This package wraps package text/template so you can share its template API
+to parse and execute HTML templates safely.
+
+  tmpl, err := template.New("name").Parse(...)
+  // Error checking elided
+  err = tmpl.Execute(out, data)
+
+If successful, tmpl will now be injection-safe. Otherwise, err is an error
+defined in the docs for ErrorCode.
+
+HTML templates treat data values as plain text which should be encoded so they
+can be safely embedded in an HTML document. The escaping is contextual, so
+actions can appear within JavaScript, CSS, and URI contexts.
+
+The security model used by this package assumes that template authors are
+trusted, while Execute's data parameter is not. More details are
+provided below.
+
+Example
+
+  import "golang.org/x/go.dev/cmd/internal/text/template"
+  ...
+  t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
+  err = t.ExecuteTemplate(out, "T", "<script>alert('you have been pwned')</script>")
+
+produces
+
+  Hello, <script>alert('you have been pwned')</script>!
+
+but the contextual autoescaping in html/template
+
+  import "golang.org/x/go.dev/cmd/internal/html/template"
+  ...
+  t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
+  err = t.ExecuteTemplate(out, "T", "<script>alert('you have been pwned')</script>")
+
+produces safe, escaped HTML output
+
+  Hello, &lt;script&gt;alert(&#39;you have been pwned&#39;)&lt;/script&gt;!
+
+
+Contexts
+
+This package understands HTML, CSS, JavaScript, and URIs. It adds sanitizing
+functions to each simple action pipeline, so given the excerpt
+
+  <a href="/search?q={{.}}">{{.}}</a>
+
+At parse time each {{.}} is overwritten to add escaping functions as necessary.
+In this case it becomes
+
+  <a href="/search?q={{. | urlescaper | attrescaper}}">{{. | htmlescaper}}</a>
+
+where urlescaper, attrescaper, and htmlescaper are aliases for internal escaping
+functions.
+
+For these internal escaping functions, if an action pipeline evaluates to
+a nil interface value, it is treated as though it were an empty string.
+
+Namespaced and data- attributes
+
+Attributes with a namespace are treated as if they had no namespace.
+Given the excerpt
+
+  <a my:href="{{.}}"></a>
+
+At parse time the attribute will be treated as if it were just "href".
+So at parse time the template becomes:
+
+  <a my:href="{{. | urlescaper | attrescaper}}"></a>
+
+Similarly to attributes with namespaces, attributes with a "data-" prefix are
+treated as if they had no "data-" prefix. So given
+
+  <a data-href="{{.}}"></a>
+
+At parse time this becomes
+
+  <a data-href="{{. | urlescaper | attrescaper}}"></a>
+
+If an attribute has both a namespace and a "data-" prefix, only the namespace
+will be removed when determining the context. For example
+
+  <a my:data-href="{{.}}"></a>
+
+This is handled as if "my:data-href" was just "data-href" and not "href" as
+it would be if the "data-" prefix were to be ignored too. Thus at parse
+time this becomes just
+
+  <a my:data-href="{{. | attrescaper}}"></a>
+
+As a special case, attributes with the namespace "xmlns" are always treated
+as containing URLs. Given the excerpts
+
+  <a xmlns:title="{{.}}"></a>
+  <a xmlns:href="{{.}}"></a>
+  <a xmlns:onclick="{{.}}"></a>
+
+At parse time they become:
+
+  <a xmlns:title="{{. | urlescaper | attrescaper}}"></a>
+  <a xmlns:href="{{. | urlescaper | attrescaper}}"></a>
+  <a xmlns:onclick="{{. | urlescaper | attrescaper}}"></a>
+
+Errors
+
+See the documentation of ErrorCode for details.
+
+
+A fuller picture
+
+The rest of this package comment may be skipped on first reading; it includes
+details necessary to understand escaping contexts and error messages. Most users
+will not need to understand these details.
+
+
+Contexts
+
+Assuming {{.}} is `O'Reilly: How are <i>you</i>?`, the table below shows
+how {{.}} appears when used in the context to the left.
+
+  Context                          {{.}} After
+  {{.}}                            O'Reilly: How are &lt;i&gt;you&lt;/i&gt;?
+  <a title='{{.}}'>                O&#39;Reilly: How are you?
+  <a href="/{{.}}">                O&#39;Reilly: How are %3ci%3eyou%3c/i%3e?
+  <a href="?q={{.}}">              O&#39;Reilly%3a%20How%20are%3ci%3e...%3f
+  <a onx='f("{{.}}")'>             O\x27Reilly: How are \x3ci\x3eyou...?
+  <a onx='f({{.}})'>               "O\x27Reilly: How are \x3ci\x3eyou...?"
+  <a onx='pattern = /{{.}}/;'>     O\x27Reilly: How are \x3ci\x3eyou...\x3f
+
+If used in an unsafe context, then the value might be filtered out:
+
+  Context                          {{.}} After
+  <a href="{{.}}">                 #ZgotmplZ
+
+since "O'Reilly:" is not an allowed protocol like "http:".
+
+
+If {{.}} is the innocuous word, `left`, then it can appear more widely,
+
+  Context                              {{.}} After
+  {{.}}                                left
+  <a title='{{.}}'>                    left
+  <a href='{{.}}'>                     left
+  <a href='/{{.}}'>                    left
+  <a href='?dir={{.}}'>                left
+  <a style="border-{{.}}: 4px">        left
+  <a style="align: {{.}}">             left
+  <a style="background: '{{.}}'>       left
+  <a style="background: url('{{.}}')>  left
+  <style>p.{{.}} {color:red}</style>   left
+
+Non-string values can be used in JavaScript contexts.
+If {{.}} is
+
+  struct{A,B string}{ "foo", "bar" }
+
+in the escaped template
+
+  <script>var pair = {{.}};</script>
+
+then the template output is
+
+  <script>var pair = {"A": "foo", "B": "bar"};</script>
+
+See package json to understand how non-string content is marshaled for
+embedding in JavaScript contexts.
+
+
+Typed Strings
+
+By default, this package assumes that all pipelines produce a plain text string.
+It adds escaping pipeline stages necessary to correctly and safely embed that
+plain text string in the appropriate context.
+
+When a data value is not plain text, you can make sure it is not over-escaped
+by marking it with its type.
+
+Types HTML, JS, URL, and others from content.go can carry safe content that is
+exempted from escaping.
+
+The template
+
+  Hello, {{.}}!
+
+can be invoked with
+
+  tmpl.Execute(out, template.HTML(`<b>World</b>`))
+
+to produce
+
+  Hello, <b>World</b>!
+
+instead of the
+
+  Hello, &lt;b&gt;World&lt;b&gt;!
+
+that would have been produced if {{.}} was a regular string.
+
+
+Security Model
+
+https://rawgit.com/mikesamuel/sanitized-jquery-templates/trunk/safetemplate.html#problem_definition defines "safe" as used by this package.
+
+This package assumes that template authors are trusted, that Execute's data
+parameter is not, and seeks to preserve the properties below in the face
+of untrusted data:
+
+Structure Preservation Property:
+"... when a template author writes an HTML tag in a safe templating language,
+the browser will interpret the corresponding portion of the output as a tag
+regardless of the values of untrusted data, and similarly for other structures
+such as attribute boundaries and JS and CSS string boundaries."
+
+Code Effect Property:
+"... only code specified by the template author should run as a result of
+injecting the template output into a page and all code specified by the
+template author should run as a result of the same."
+
+Least Surprise Property:
+"A developer (or code reviewer) familiar with HTML, CSS, and JavaScript, who
+knows that contextual autoescaping happens should be able to look at a {{.}}
+and correctly infer what sanitization happens."
+*/
+package template
diff --git a/go.dev/cmd/internal/html/template/element_string.go b/go.dev/cmd/internal/html/template/element_string.go
new file mode 100644
index 0000000..4573e08
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/element_string.go
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type element"; DO NOT EDIT.
+
+package template
+
+import "strconv"
+
+const _element_name = "elementNoneelementScriptelementStyleelementTextareaelementTitle"
+
+var _element_index = [...]uint8{0, 11, 24, 36, 51, 63}
+
+func (i element) String() string {
+	if i >= element(len(_element_index)-1) {
+		return "element(" + strconv.FormatInt(int64(i), 10) + ")"
+	}
+	return _element_name[_element_index[i]:_element_index[i+1]]
+}
diff --git a/go.dev/cmd/internal/html/template/error.go b/go.dev/cmd/internal/html/template/error.go
new file mode 100644
index 0000000..49f0a43
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/error.go
@@ -0,0 +1,234 @@
+// Copyright 2011 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 template
+
+import (
+	"fmt"
+
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+// Error describes a problem encountered during template Escaping.
+type Error struct {
+	// ErrorCode describes the kind of error.
+	ErrorCode ErrorCode
+	// Node is the node that caused the problem, if known.
+	// If not nil, it overrides Name and Line.
+	Node parse.Node
+	// Name is the name of the template in which the error was encountered.
+	Name string
+	// Line is the line number of the error in the template source or 0.
+	Line int
+	// Description is a human-readable description of the problem.
+	Description string
+}
+
+// ErrorCode is a code for a kind of error.
+type ErrorCode int
+
+// We define codes for each error that manifests while escaping templates, but
+// escaped templates may also fail at runtime.
+//
+// Output: "ZgotmplZ"
+// Example:
+//   <img src="{{.X}}">
+//   where {{.X}} evaluates to `javascript:...`
+// Discussion:
+//   "ZgotmplZ" is a special value that indicates that unsafe content reached a
+//   CSS or URL context at runtime. The output of the example will be
+//     <img src="#ZgotmplZ">
+//   If the data comes from a trusted source, use content types to exempt it
+//   from filtering: URL(`javascript:...`).
+const (
+	// OK indicates the lack of an error.
+	OK ErrorCode = iota
+
+	// ErrAmbigContext: "... appears in an ambiguous context within a URL"
+	// Example:
+	//   <a href="
+	//      {{if .C}}
+	//        /path/
+	//      {{else}}
+	//        /search?q=
+	//      {{end}}
+	//      {{.X}}
+	//   ">
+	// Discussion:
+	//   {{.X}} is in an ambiguous URL context since, depending on {{.C}},
+	//  it may be either a URL suffix or a query parameter.
+	//   Moving {{.X}} into the condition removes the ambiguity:
+	//   <a href="{{if .C}}/path/{{.X}}{{else}}/search?q={{.X}}">
+	ErrAmbigContext
+
+	// ErrBadHTML: "expected space, attr name, or end of tag, but got ...",
+	//   "... in unquoted attr", "... in attribute name"
+	// Example:
+	//   <a href = /search?q=foo>
+	//   <href=foo>
+	//   <form na<e=...>
+	//   <option selected<
+	// Discussion:
+	//   This is often due to a typo in an HTML element, but some runes
+	//   are banned in tag names, attribute names, and unquoted attribute
+	//   values because they can tickle parser ambiguities.
+	//   Quoting all attributes is the best policy.
+	ErrBadHTML
+
+	// ErrBranchEnd: "{{if}} branches end in different contexts"
+	// Example:
+	//   {{if .C}}<a href="{{end}}{{.X}}
+	// Discussion:
+	//   Package html/template statically examines each path through an
+	//   {{if}}, {{range}}, or {{with}} to escape any following pipelines.
+	//   The example is ambiguous since {{.X}} might be an HTML text node,
+	//   or a URL prefix in an HTML attribute. The context of {{.X}} is
+	//   used to figure out how to escape it, but that context depends on
+	//   the run-time value of {{.C}} which is not statically known.
+	//
+	//   The problem is usually something like missing quotes or angle
+	//   brackets, or can be avoided by refactoring to put the two contexts
+	//   into different branches of an if, range or with. If the problem
+	//   is in a {{range}} over a collection that should never be empty,
+	//   adding a dummy {{else}} can help.
+	ErrBranchEnd
+
+	// ErrEndContext: "... ends in a non-text context: ..."
+	// Examples:
+	//   <div
+	//   <div title="no close quote>
+	//   <script>f()
+	// Discussion:
+	//   Executed templates should produce a DocumentFragment of HTML.
+	//   Templates that end without closing tags will trigger this error.
+	//   Templates that should not be used in an HTML context or that
+	//   produce incomplete Fragments should not be executed directly.
+	//
+	//   {{define "main"}} <script>{{template "helper"}}</script> {{end}}
+	//   {{define "helper"}} document.write(' <div title=" ') {{end}}
+	//
+	//   "helper" does not produce a valid document fragment, so should
+	//   not be Executed directly.
+	ErrEndContext
+
+	// ErrNoSuchTemplate: "no such template ..."
+	// Examples:
+	//   {{define "main"}}<div {{template "attrs"}}>{{end}}
+	//   {{define "attrs"}}href="{{.URL}}"{{end}}
+	// Discussion:
+	//   Package html/template looks through template calls to compute the
+	//   context.
+	//   Here the {{.URL}} in "attrs" must be treated as a URL when called
+	//   from "main", but you will get this error if "attrs" is not defined
+	//   when "main" is parsed.
+	ErrNoSuchTemplate
+
+	// ErrOutputContext: "cannot compute output context for template ..."
+	// Examples:
+	//   {{define "t"}}{{if .T}}{{template "t" .T}}{{end}}{{.H}}",{{end}}
+	// Discussion:
+	//   A recursive template does not end in the same context in which it
+	//   starts, and a reliable output context cannot be computed.
+	//   Look for typos in the named template.
+	//   If the template should not be called in the named start context,
+	//   look for calls to that template in unexpected contexts.
+	//   Maybe refactor recursive templates to not be recursive.
+	ErrOutputContext
+
+	// ErrPartialCharset: "unfinished JS regexp charset in ..."
+	// Example:
+	//     <script>var pattern = /foo[{{.Chars}}]/</script>
+	// Discussion:
+	//   Package html/template does not support interpolation into regular
+	//   expression literal character sets.
+	ErrPartialCharset
+
+	// ErrPartialEscape: "unfinished escape sequence in ..."
+	// Example:
+	//   <script>alert("\{{.X}}")</script>
+	// Discussion:
+	//   Package html/template does not support actions following a
+	//   backslash.
+	//   This is usually an error and there are better solutions; for
+	//   example
+	//     <script>alert("{{.X}}")</script>
+	//   should work, and if {{.X}} is a partial escape sequence such as
+	//   "xA0", mark the whole sequence as safe content: JSStr(`\xA0`)
+	ErrPartialEscape
+
+	// ErrRangeLoopReentry: "on range loop re-entry: ..."
+	// Example:
+	//   <script>var x = [{{range .}}'{{.}},{{end}}]</script>
+	// Discussion:
+	//   If an iteration through a range would cause it to end in a
+	//   different context than an earlier pass, there is no single context.
+	//   In the example, there is missing a quote, so it is not clear
+	//   whether {{.}} is meant to be inside a JS string or in a JS value
+	//   context. The second iteration would produce something like
+	//
+	//     <script>var x = ['firstValue,'secondValue]</script>
+	ErrRangeLoopReentry
+
+	// ErrSlashAmbig: '/' could start a division or regexp.
+	// Example:
+	//   <script>
+	//     {{if .C}}var x = 1{{end}}
+	//     /-{{.N}}/i.test(x) ? doThis : doThat();
+	//   </script>
+	// Discussion:
+	//   The example above could produce `var x = 1/-2/i.test(s)...`
+	//   in which the first '/' is a mathematical division operator or it
+	//   could produce `/-2/i.test(s)` in which the first '/' starts a
+	//   regexp literal.
+	//   Look for missing semicolons inside branches, and maybe add
+	//   parentheses to make it clear which interpretation you intend.
+	ErrSlashAmbig
+
+	// ErrPredefinedEscaper: "predefined escaper ... disallowed in template"
+	// Example:
+	//   <div class={{. | html}}>Hello<div>
+	// Discussion:
+	//   Package html/template already contextually escapes all pipelines to
+	//   produce HTML output safe against code injection. Manually escaping
+	//   pipeline output using the predefined escapers "html" or "urlquery" is
+	//   unnecessary, and may affect the correctness or safety of the escaped
+	//   pipeline output in Go 1.8 and earlier.
+	//
+	//   In most cases, such as the given example, this error can be resolved by
+	//   simply removing the predefined escaper from the pipeline and letting the
+	//   contextual autoescaper handle the escaping of the pipeline. In other
+	//   instances, where the predefined escaper occurs in the middle of a
+	//   pipeline where subsequent commands expect escaped input, e.g.
+	//     {{.X | html | makeALink}}
+	//   where makeALink does
+	//     return `<a href="`+input+`">link</a>`
+	//   consider refactoring the surrounding template to make use of the
+	//   contextual autoescaper, i.e.
+	//     <a href="{{.X}}">link</a>
+	//
+	//   To ease migration to Go 1.9 and beyond, "html" and "urlquery" will
+	//   continue to be allowed as the last command in a pipeline. However, if the
+	//   pipeline occurs in an unquoted attribute value context, "html" is
+	//   disallowed. Avoid using "html" and "urlquery" entirely in new templates.
+	ErrPredefinedEscaper
+)
+
+func (e *Error) Error() string {
+	switch {
+	case e.Node != nil:
+		loc, _ := (*parse.Tree)(nil).ErrorContext(e.Node)
+		return fmt.Sprintf("golang.org/x/go.dev/cmd/internal/html/template:%s: %s", loc, e.Description)
+	case e.Line != 0:
+		return fmt.Sprintf("golang.org/x/go.dev/cmd/internal/html/template:%s:%d: %s", e.Name, e.Line, e.Description)
+	case e.Name != "":
+		return fmt.Sprintf("golang.org/x/go.dev/cmd/internal/html/template:%s: %s", e.Name, e.Description)
+	}
+	return "golang.org/x/go.dev/cmd/internal/html/template: " + e.Description
+}
+
+// errorf creates an error given a format string f and args.
+// The template Name still needs to be supplied.
+func errorf(k ErrorCode, node parse.Node, line int, f string, args ...interface{}) *Error {
+	return &Error{k, node, "", line, fmt.Sprintf(f, args...)}
+}
diff --git a/go.dev/cmd/internal/html/template/escape.go b/go.dev/cmd/internal/html/template/escape.go
new file mode 100644
index 0000000..2ad5996
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/escape.go
@@ -0,0 +1,962 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"fmt"
+	"html"
+	"io"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+// escapeTemplate rewrites the named template, which must be
+// associated with t, to guarantee that the output of any of the named
+// templates is properly escaped. If no error is returned, then the named templates have
+// been modified. Otherwise the named templates have been rendered
+// unusable.
+func escapeTemplate(tmpl *Template, node parse.Node, name string) error {
+	c, _ := tmpl.esc.escapeTree(context{}, node, name, 0)
+	var err error
+	if c.err != nil {
+		err, c.err.Name = c.err, name
+	} else if c.state != stateText {
+		err = &Error{ErrEndContext, nil, name, 0, fmt.Sprintf("ends in a non-text context: %v", c)}
+	}
+	if err != nil {
+		// Prevent execution of unsafe templates.
+		if t := tmpl.set[name]; t != nil {
+			t.escapeErr = err
+			t.text.Tree = nil
+			t.Tree = nil
+		}
+		return err
+	}
+	tmpl.esc.commit()
+	if t := tmpl.set[name]; t != nil {
+		t.escapeErr = escapeOK
+		t.Tree = t.text.Tree
+	}
+	return nil
+}
+
+// evalArgs formats the list of arguments into a string. It is equivalent to
+// fmt.Sprint(args...), except that it deferences all pointers.
+func evalArgs(args ...interface{}) string {
+	// Optimization for simple common case of a single string argument.
+	if len(args) == 1 {
+		if s, ok := args[0].(string); ok {
+			return s
+		}
+	}
+	for i, arg := range args {
+		args[i] = indirectToStringerOrError(arg)
+	}
+	return fmt.Sprint(args...)
+}
+
+// funcMap maps command names to functions that render their inputs safe.
+var funcMap = template.FuncMap{
+	"_html_template_attrescaper":     attrEscaper,
+	"_html_template_commentescaper":  commentEscaper,
+	"_html_template_cssescaper":      cssEscaper,
+	"_html_template_cssvaluefilter":  cssValueFilter,
+	"_html_template_htmlnamefilter":  htmlNameFilter,
+	"_html_template_htmlescaper":     htmlEscaper,
+	"_html_template_jsregexpescaper": jsRegexpEscaper,
+	"_html_template_jsstrescaper":    jsStrEscaper,
+	"_html_template_jsvalescaper":    jsValEscaper,
+	"_html_template_nospaceescaper":  htmlNospaceEscaper,
+	"_html_template_rcdataescaper":   rcdataEscaper,
+	"_html_template_srcsetescaper":   srcsetFilterAndEscaper,
+	"_html_template_urlescaper":      urlEscaper,
+	"_html_template_urlfilter":       urlFilter,
+	"_html_template_urlnormalizer":   urlNormalizer,
+	"_eval_args_":                    evalArgs,
+}
+
+// escaper collects type inferences about templates and changes needed to make
+// templates injection safe.
+type escaper struct {
+	// ns is the nameSpace that this escaper is associated with.
+	ns *nameSpace
+	// output[templateName] is the output context for a templateName that
+	// has been mangled to include its input context.
+	output map[string]context
+	// derived[c.mangle(name)] maps to a template derived from the template
+	// named name templateName for the start context c.
+	derived map[string]*template.Template
+	// called[templateName] is a set of called mangled template names.
+	called map[string]bool
+	// xxxNodeEdits are the accumulated edits to apply during commit.
+	// Such edits are not applied immediately in case a template set
+	// executes a given template in different escaping contexts.
+	actionNodeEdits   map[*parse.ActionNode][]string
+	templateNodeEdits map[*parse.TemplateNode]string
+	textNodeEdits     map[*parse.TextNode][]byte
+	// rangeContext holds context about the current range loop.
+	rangeContext *rangeContext
+}
+
+// rangeContext holds information about the current range loop.
+type rangeContext struct {
+	outer     *rangeContext // outer loop
+	breaks    []context     // context at each break action
+	continues []context     // context at each continue action
+}
+
+// makeEscaper creates a blank escaper for the given set.
+func makeEscaper(n *nameSpace) escaper {
+	return escaper{
+		n,
+		map[string]context{},
+		map[string]*template.Template{},
+		map[string]bool{},
+		map[*parse.ActionNode][]string{},
+		map[*parse.TemplateNode]string{},
+		map[*parse.TextNode][]byte{},
+		nil,
+	}
+}
+
+// filterFailsafe is an innocuous word that is emitted in place of unsafe values
+// by sanitizer functions. It is not a keyword in any programming language,
+// contains no special characters, is not empty, and when it appears in output
+// it is distinct enough that a developer can find the source of the problem
+// via a search engine.
+const filterFailsafe = "ZgotmplZ"
+
+// escape escapes a template node.
+func (e *escaper) escape(c context, n parse.Node) context {
+	switch n := n.(type) {
+	case *parse.ActionNode:
+		return e.escapeAction(c, n)
+	case *parse.BreakNode:
+		c.n = n
+		e.rangeContext.breaks = append(e.rangeContext.breaks, c)
+		return context{state: stateDead}
+	case *parse.CommentNode:
+		return c
+	case *parse.ContinueNode:
+		c.n = n
+		e.rangeContext.continues = append(e.rangeContext.breaks, c)
+		return context{state: stateDead}
+	case *parse.IfNode:
+		return e.escapeBranch(c, &n.BranchNode, "if")
+	case *parse.ListNode:
+		return e.escapeList(c, n)
+	case *parse.RangeNode:
+		return e.escapeBranch(c, &n.BranchNode, "range")
+	case *parse.TemplateNode:
+		return e.escapeTemplate(c, n)
+	case *parse.TextNode:
+		return e.escapeText(c, n)
+	case *parse.WithNode:
+		return e.escapeBranch(c, &n.BranchNode, "with")
+	}
+	panic("escaping " + n.String() + " is unimplemented")
+}
+
+// escapeAction escapes an action template node.
+func (e *escaper) escapeAction(c context, n *parse.ActionNode) context {
+	if len(n.Pipe.Decl) != 0 {
+		// A local variable assignment, not an interpolation.
+		return c
+	}
+	c = nudge(c)
+	// Check for disallowed use of predefined escapers in the pipeline.
+	for pos, idNode := range n.Pipe.Cmds {
+		node, ok := idNode.Args[0].(*parse.IdentifierNode)
+		if !ok {
+			// A predefined escaper "esc" will never be found as an identifier in a
+			// Chain or Field node, since:
+			// - "esc.x ..." is invalid, since predefined escapers return strings, and
+			//   strings do not have methods, keys or fields.
+			// - "... .esc" is invalid, since predefined escapers are global functions,
+			//   not methods or fields of any types.
+			// Therefore, it is safe to ignore these two node types.
+			continue
+		}
+		ident := node.Ident
+		if _, ok := predefinedEscapers[ident]; ok {
+			if pos < len(n.Pipe.Cmds)-1 ||
+				c.state == stateAttr && c.delim == delimSpaceOrTagEnd && ident == "html" {
+				return context{
+					state: stateError,
+					err:   errorf(ErrPredefinedEscaper, n, n.Line, "predefined escaper %q disallowed in template", ident),
+				}
+			}
+		}
+	}
+	s := make([]string, 0, 3)
+	switch c.state {
+	case stateError:
+		return c
+	case stateURL, stateCSSDqStr, stateCSSSqStr, stateCSSDqURL, stateCSSSqURL, stateCSSURL:
+		switch c.urlPart {
+		case urlPartNone:
+			s = append(s, "_html_template_urlfilter")
+			fallthrough
+		case urlPartPreQuery:
+			switch c.state {
+			case stateCSSDqStr, stateCSSSqStr:
+				s = append(s, "_html_template_cssescaper")
+			default:
+				s = append(s, "_html_template_urlnormalizer")
+			}
+		case urlPartQueryOrFrag:
+			s = append(s, "_html_template_urlescaper")
+		case urlPartUnknown:
+			return context{
+				state: stateError,
+				err:   errorf(ErrAmbigContext, n, n.Line, "%s appears in an ambiguous context within a URL", n),
+			}
+		default:
+			panic(c.urlPart.String())
+		}
+	case stateJS:
+		s = append(s, "_html_template_jsvalescaper")
+		// A slash after a value starts a div operator.
+		c.jsCtx = jsCtxDivOp
+	case stateJSDqStr, stateJSSqStr:
+		s = append(s, "_html_template_jsstrescaper")
+	case stateJSRegexp:
+		s = append(s, "_html_template_jsregexpescaper")
+	case stateCSS:
+		s = append(s, "_html_template_cssvaluefilter")
+	case stateText:
+		s = append(s, "_html_template_htmlescaper")
+	case stateRCDATA:
+		s = append(s, "_html_template_rcdataescaper")
+	case stateAttr:
+		// Handled below in delim check.
+	case stateAttrName, stateTag:
+		c.state = stateAttrName
+		s = append(s, "_html_template_htmlnamefilter")
+	case stateSrcset:
+		s = append(s, "_html_template_srcsetescaper")
+	default:
+		if isComment(c.state) {
+			s = append(s, "_html_template_commentescaper")
+		} else {
+			panic("unexpected state " + c.state.String())
+		}
+	}
+	switch c.delim {
+	case delimNone:
+		// No extra-escaping needed for raw text content.
+	case delimSpaceOrTagEnd:
+		s = append(s, "_html_template_nospaceescaper")
+	default:
+		s = append(s, "_html_template_attrescaper")
+	}
+	e.editActionNode(n, s)
+	return c
+}
+
+// ensurePipelineContains ensures that the pipeline ends with the commands with
+// the identifiers in s in order. If the pipeline ends with a predefined escaper
+// (i.e. "html" or "urlquery"), merge it with the identifiers in s.
+func ensurePipelineContains(p *parse.PipeNode, s []string) {
+	if len(s) == 0 {
+		// Do not rewrite pipeline if we have no escapers to insert.
+		return
+	}
+	// Precondition: p.Cmds contains at most one predefined escaper and the
+	// escaper will be present at p.Cmds[len(p.Cmds)-1]. This precondition is
+	// always true because of the checks in escapeAction.
+	pipelineLen := len(p.Cmds)
+	if pipelineLen > 0 {
+		lastCmd := p.Cmds[pipelineLen-1]
+		if idNode, ok := lastCmd.Args[0].(*parse.IdentifierNode); ok {
+			if esc := idNode.Ident; predefinedEscapers[esc] {
+				// Pipeline ends with a predefined escaper.
+				if len(p.Cmds) == 1 && len(lastCmd.Args) > 1 {
+					// Special case: pipeline is of the form {{ esc arg1 arg2 ... argN }},
+					// where esc is the predefined escaper, and arg1...argN are its arguments.
+					// Convert this into the equivalent form
+					// {{ _eval_args_ arg1 arg2 ... argN | esc }}, so that esc can be easily
+					// merged with the escapers in s.
+					lastCmd.Args[0] = parse.NewIdentifier("_eval_args_").SetTree(nil).SetPos(lastCmd.Args[0].Position())
+					p.Cmds = appendCmd(p.Cmds, newIdentCmd(esc, p.Position()))
+					pipelineLen++
+				}
+				// If any of the commands in s that we are about to insert is equivalent
+				// to the predefined escaper, use the predefined escaper instead.
+				dup := false
+				for i, escaper := range s {
+					if escFnsEq(esc, escaper) {
+						s[i] = idNode.Ident
+						dup = true
+					}
+				}
+				if dup {
+					// The predefined escaper will already be inserted along with the
+					// escapers in s, so do not copy it to the rewritten pipeline.
+					pipelineLen--
+				}
+			}
+		}
+	}
+	// Rewrite the pipeline, creating the escapers in s at the end of the pipeline.
+	newCmds := make([]*parse.CommandNode, pipelineLen, pipelineLen+len(s))
+	insertedIdents := make(map[string]bool)
+	for i := 0; i < pipelineLen; i++ {
+		cmd := p.Cmds[i]
+		newCmds[i] = cmd
+		if idNode, ok := cmd.Args[0].(*parse.IdentifierNode); ok {
+			insertedIdents[normalizeEscFn(idNode.Ident)] = true
+		}
+	}
+	for _, name := range s {
+		if !insertedIdents[normalizeEscFn(name)] {
+			// When two templates share an underlying parse tree via the use of
+			// AddParseTree and one template is executed after the other, this check
+			// ensures that escapers that were already inserted into the pipeline on
+			// the first escaping pass do not get inserted again.
+			newCmds = appendCmd(newCmds, newIdentCmd(name, p.Position()))
+		}
+	}
+	p.Cmds = newCmds
+}
+
+// predefinedEscapers contains template predefined escapers that are equivalent
+// to some contextual escapers. Keep in sync with equivEscapers.
+var predefinedEscapers = map[string]bool{
+	"html":     true,
+	"urlquery": true,
+}
+
+// equivEscapers matches contextual escapers to equivalent predefined
+// template escapers.
+var equivEscapers = map[string]string{
+	// The following pairs of HTML escapers provide equivalent security
+	// guarantees, since they all escape '\000', '\'', '"', '&', '<', and '>'.
+	"_html_template_attrescaper":   "html",
+	"_html_template_htmlescaper":   "html",
+	"_html_template_rcdataescaper": "html",
+	// These two URL escapers produce URLs safe for embedding in a URL query by
+	// percent-encoding all the reserved characters specified in RFC 3986 Section
+	// 2.2
+	"_html_template_urlescaper": "urlquery",
+	// These two functions are not actually equivalent; urlquery is stricter as it
+	// escapes reserved characters (e.g. '#'), while _html_template_urlnormalizer
+	// does not. It is therefore only safe to replace _html_template_urlnormalizer
+	// with urlquery (this happens in ensurePipelineContains), but not the otherI've
+	// way around. We keep this entry around to preserve the behavior of templates
+	// written before Go 1.9, which might depend on this substitution taking place.
+	"_html_template_urlnormalizer": "urlquery",
+}
+
+// escFnsEq reports whether the two escaping functions are equivalent.
+func escFnsEq(a, b string) bool {
+	return normalizeEscFn(a) == normalizeEscFn(b)
+}
+
+// normalizeEscFn(a) is equal to normalizeEscFn(b) for any pair of names of
+// escaper functions a and b that are equivalent.
+func normalizeEscFn(e string) string {
+	if norm := equivEscapers[e]; norm != "" {
+		return norm
+	}
+	return e
+}
+
+// redundantFuncs[a][b] implies that funcMap[b](funcMap[a](x)) == funcMap[a](x)
+// for all x.
+var redundantFuncs = map[string]map[string]bool{
+	"_html_template_commentescaper": {
+		"_html_template_attrescaper":    true,
+		"_html_template_nospaceescaper": true,
+		"_html_template_htmlescaper":    true,
+	},
+	"_html_template_cssescaper": {
+		"_html_template_attrescaper": true,
+	},
+	"_html_template_jsregexpescaper": {
+		"_html_template_attrescaper": true,
+	},
+	"_html_template_jsstrescaper": {
+		"_html_template_attrescaper": true,
+	},
+	"_html_template_urlescaper": {
+		"_html_template_urlnormalizer": true,
+	},
+}
+
+// appendCmd appends the given command to the end of the command pipeline
+// unless it is redundant with the last command.
+func appendCmd(cmds []*parse.CommandNode, cmd *parse.CommandNode) []*parse.CommandNode {
+	if n := len(cmds); n != 0 {
+		last, okLast := cmds[n-1].Args[0].(*parse.IdentifierNode)
+		next, okNext := cmd.Args[0].(*parse.IdentifierNode)
+		if okLast && okNext && redundantFuncs[last.Ident][next.Ident] {
+			return cmds
+		}
+	}
+	return append(cmds, cmd)
+}
+
+// newIdentCmd produces a command containing a single identifier node.
+func newIdentCmd(identifier string, pos parse.Pos) *parse.CommandNode {
+	return &parse.CommandNode{
+		NodeType: parse.NodeCommand,
+		Args:     []parse.Node{parse.NewIdentifier(identifier).SetTree(nil).SetPos(pos)}, // TODO: SetTree.
+	}
+}
+
+// nudge returns the context that would result from following empty string
+// transitions from the input context.
+// For example, parsing:
+//     `<a href=`
+// will end in context{stateBeforeValue, attrURL}, but parsing one extra rune:
+//     `<a href=x`
+// will end in context{stateURL, delimSpaceOrTagEnd, ...}.
+// There are two transitions that happen when the 'x' is seen:
+// (1) Transition from a before-value state to a start-of-value state without
+//     consuming any character.
+// (2) Consume 'x' and transition past the first value character.
+// In this case, nudging produces the context after (1) happens.
+func nudge(c context) context {
+	switch c.state {
+	case stateTag:
+		// In `<foo {{.}}`, the action should emit an attribute.
+		c.state = stateAttrName
+	case stateBeforeValue:
+		// In `<foo bar={{.}}`, the action is an undelimited value.
+		c.state, c.delim, c.attr = attrStartStates[c.attr], delimSpaceOrTagEnd, attrNone
+	case stateAfterName:
+		// In `<foo bar {{.}}`, the action is an attribute name.
+		c.state, c.attr = stateAttrName, attrNone
+	}
+	return c
+}
+
+// join joins the two contexts of a branch template node. The result is an
+// error context if either of the input contexts are error contexts, or if the
+// input contexts differ.
+func join(a, b context, node parse.Node, nodeName string) context {
+	if a.state == stateError {
+		return a
+	}
+	if b.state == stateError {
+		return b
+	}
+	if a.state == stateDead {
+		return b
+	}
+	if b.state == stateDead {
+		return a
+	}
+	if a.eq(b) {
+		return a
+	}
+
+	c := a
+	c.urlPart = b.urlPart
+	if c.eq(b) {
+		// The contexts differ only by urlPart.
+		c.urlPart = urlPartUnknown
+		return c
+	}
+
+	c = a
+	c.jsCtx = b.jsCtx
+	if c.eq(b) {
+		// The contexts differ only by jsCtx.
+		c.jsCtx = jsCtxUnknown
+		return c
+	}
+
+	// Allow a nudged context to join with an unnudged one.
+	// This means that
+	//   <p title={{if .C}}{{.}}{{end}}
+	// ends in an unquoted value state even though the else branch
+	// ends in stateBeforeValue.
+	if c, d := nudge(a), nudge(b); !(c.eq(a) && d.eq(b)) {
+		if e := join(c, d, node, nodeName); e.state != stateError {
+			return e
+		}
+	}
+
+	return context{
+		state: stateError,
+		err:   errorf(ErrBranchEnd, node, 0, "{{%s}} branches end in different contexts: %v, %v", nodeName, a, b),
+	}
+}
+
+// escapeBranch escapes a branch template node: "if", "range" and "with".
+func (e *escaper) escapeBranch(c context, n *parse.BranchNode, nodeName string) context {
+	if nodeName == "range" {
+		e.rangeContext = &rangeContext{outer: e.rangeContext}
+	}
+	c0 := e.escapeList(c, n.List)
+	if nodeName == "range" {
+		if c0.state != stateError {
+			c0 = joinRange(c0, e.rangeContext)
+		}
+		e.rangeContext = e.rangeContext.outer
+		if c0.state == stateError {
+			return c0
+		}
+
+		// The "true" branch of a "range" node can execute multiple times.
+		// We check that executing n.List once results in the same context
+		// as executing n.List twice.
+		e.rangeContext = &rangeContext{outer: e.rangeContext}
+		c1, _ := e.escapeListConditionally(c0, n.List, nil)
+		c0 = join(c0, c1, n, nodeName)
+		if c0.state == stateError {
+			e.rangeContext = e.rangeContext.outer
+			// Make clear that this is a problem on loop re-entry
+			// since developers tend to overlook that branch when
+			// debugging templates.
+			c0.err.Line = n.Line
+			c0.err.Description = "on range loop re-entry: " + c0.err.Description
+			return c0
+		}
+		c0 = joinRange(c0, e.rangeContext)
+		e.rangeContext = e.rangeContext.outer
+		if c0.state == stateError {
+			return c0
+		}
+	}
+	c1 := e.escapeList(c, n.ElseList)
+	return join(c0, c1, n, nodeName)
+}
+
+func joinRange(c0 context, rc *rangeContext) context {
+	// Merge contexts at break and continue statements into overall body context.
+	// In theory we could treat breaks differently from continues, but for now it is
+	// enough to treat them both as going back to the start of the loop (which may then stop).
+	for _, c := range rc.breaks {
+		c0 = join(c0, c, c.n, "range")
+		if c0.state == stateError {
+			c0.err.Line = c.n.(*parse.BreakNode).Line
+			c0.err.Description = "at range loop break: " + c0.err.Description
+			return c0
+		}
+	}
+	for _, c := range rc.continues {
+		c0 = join(c0, c, c.n, "range")
+		if c0.state == stateError {
+			c0.err.Line = c.n.(*parse.ContinueNode).Line
+			c0.err.Description = "at range loop continue: " + c0.err.Description
+			return c0
+		}
+	}
+	return c0
+}
+
+// escapeList escapes a list template node.
+func (e *escaper) escapeList(c context, n *parse.ListNode) context {
+	if n == nil {
+		return c
+	}
+	for _, m := range n.Nodes {
+		c = e.escape(c, m)
+		if c.state == stateDead {
+			break
+		}
+	}
+	return c
+}
+
+// escapeListConditionally escapes a list node but only preserves edits and
+// inferences in e if the inferences and output context satisfy filter.
+// It returns the best guess at an output context, and the result of the filter
+// which is the same as whether e was updated.
+func (e *escaper) escapeListConditionally(c context, n *parse.ListNode, filter func(*escaper, context) bool) (context, bool) {
+	e1 := makeEscaper(e.ns)
+	e1.rangeContext = e.rangeContext
+	// Make type inferences available to f.
+	for k, v := range e.output {
+		e1.output[k] = v
+	}
+	c = e1.escapeList(c, n)
+	ok := filter != nil && filter(&e1, c)
+	if ok {
+		// Copy inferences and edits from e1 back into e.
+		for k, v := range e1.output {
+			e.output[k] = v
+		}
+		for k, v := range e1.derived {
+			e.derived[k] = v
+		}
+		for k, v := range e1.called {
+			e.called[k] = v
+		}
+		for k, v := range e1.actionNodeEdits {
+			e.editActionNode(k, v)
+		}
+		for k, v := range e1.templateNodeEdits {
+			e.editTemplateNode(k, v)
+		}
+		for k, v := range e1.textNodeEdits {
+			e.editTextNode(k, v)
+		}
+	}
+	return c, ok
+}
+
+// escapeTemplate escapes a {{template}} call node.
+func (e *escaper) escapeTemplate(c context, n *parse.TemplateNode) context {
+	c, name := e.escapeTree(c, n, n.Name, n.Line)
+	if name != n.Name {
+		e.editTemplateNode(n, name)
+	}
+	return c
+}
+
+// escapeTree escapes the named template starting in the given context as
+// necessary and returns its output context.
+func (e *escaper) escapeTree(c context, node parse.Node, name string, line int) (context, string) {
+	// Mangle the template name with the input context to produce a reliable
+	// identifier.
+	dname := c.mangle(name)
+	e.called[dname] = true
+	if out, ok := e.output[dname]; ok {
+		// Already escaped.
+		return out, dname
+	}
+	t := e.template(name)
+	if t == nil {
+		// Two cases: The template exists but is empty, or has never been mentioned at
+		// all. Distinguish the cases in the error messages.
+		if e.ns.set[name] != nil {
+			return context{
+				state: stateError,
+				err:   errorf(ErrNoSuchTemplate, node, line, "%q is an incomplete or empty template", name),
+			}, dname
+		}
+		return context{
+			state: stateError,
+			err:   errorf(ErrNoSuchTemplate, node, line, "no such template %q", name),
+		}, dname
+	}
+	if dname != name {
+		// Use any template derived during an earlier call to escapeTemplate
+		// with different top level templates, or clone if necessary.
+		dt := e.template(dname)
+		if dt == nil {
+			dt = template.New(dname)
+			dt.Tree = &parse.Tree{Name: dname, Root: t.Root.CopyList()}
+			e.derived[dname] = dt
+		}
+		t = dt
+	}
+	return e.computeOutCtx(c, t), dname
+}
+
+// computeOutCtx takes a template and its start context and computes the output
+// context while storing any inferences in e.
+func (e *escaper) computeOutCtx(c context, t *template.Template) context {
+	// Propagate context over the body.
+	c1, ok := e.escapeTemplateBody(c, t)
+	if !ok {
+		// Look for a fixed point by assuming c1 as the output context.
+		if c2, ok2 := e.escapeTemplateBody(c1, t); ok2 {
+			c1, ok = c2, true
+		}
+		// Use c1 as the error context if neither assumption worked.
+	}
+	if !ok && c1.state != stateError {
+		return context{
+			state: stateError,
+			err:   errorf(ErrOutputContext, t.Tree.Root, 0, "cannot compute output context for template %s", t.Name()),
+		}
+	}
+	return c1
+}
+
+// escapeTemplateBody escapes the given template assuming the given output
+// context, and returns the best guess at the output context and whether the
+// assumption was correct.
+func (e *escaper) escapeTemplateBody(c context, t *template.Template) (context, bool) {
+	filter := func(e1 *escaper, c1 context) bool {
+		if c1.state == stateError {
+			// Do not update the input escaper, e.
+			return false
+		}
+		if !e1.called[t.Name()] {
+			// If t is not recursively called, then c1 is an
+			// accurate output context.
+			return true
+		}
+		// c1 is accurate if it matches our assumed output context.
+		return c.eq(c1)
+	}
+	// We need to assume an output context so that recursive template calls
+	// take the fast path out of escapeTree instead of infinitely recursing.
+	// Naively assuming that the input context is the same as the output
+	// works >90% of the time.
+	e.output[t.Name()] = c
+	return e.escapeListConditionally(c, t.Tree.Root, filter)
+}
+
+// delimEnds maps each delim to a string of characters that terminate it.
+var delimEnds = [...]string{
+	delimDoubleQuote: `"`,
+	delimSingleQuote: "'",
+	// Determined empirically by running the below in various browsers.
+	// var div = document.createElement("DIV");
+	// for (var i = 0; i < 0x10000; ++i) {
+	//   div.innerHTML = "<span title=x" + String.fromCharCode(i) + "-bar>";
+	//   if (div.getElementsByTagName("SPAN")[0].title.indexOf("bar") < 0)
+	//     document.write("<p>U+" + i.toString(16));
+	// }
+	delimSpaceOrTagEnd: " \t\n\f\r>",
+}
+
+var doctypeBytes = []byte("<!DOCTYPE")
+
+// escapeText escapes a text template node.
+func (e *escaper) escapeText(c context, n *parse.TextNode) context {
+	s, written, i, b := n.Text, 0, 0, new(bytes.Buffer)
+	for i != len(s) {
+		c1, nread := contextAfterText(c, s[i:])
+		i1 := i + nread
+		if c.state == stateText || c.state == stateRCDATA {
+			end := i1
+			if c1.state != c.state {
+				for j := end - 1; j >= i; j-- {
+					if s[j] == '<' {
+						end = j
+						break
+					}
+				}
+			}
+			for j := i; j < end; j++ {
+				if s[j] == '<' && !bytes.HasPrefix(bytes.ToUpper(s[j:]), doctypeBytes) {
+					b.Write(s[written:j])
+					b.WriteString("&lt;")
+					written = j + 1
+				}
+			}
+		} else if isComment(c.state) && c.delim == delimNone {
+			switch c.state {
+			case stateJSBlockCmt:
+				// https://es5.github.com/#x7.4:
+				// "Comments behave like white space and are
+				// discarded except that, if a MultiLineComment
+				// contains a line terminator character, then
+				// the entire comment is considered to be a
+				// LineTerminator for purposes of parsing by
+				// the syntactic grammar."
+				if bytes.ContainsAny(s[written:i1], "\n\r\u2028\u2029") {
+					b.WriteByte('\n')
+				} else {
+					b.WriteByte(' ')
+				}
+			case stateCSSBlockCmt:
+				b.WriteByte(' ')
+			}
+			written = i1
+		}
+		if c.state != c1.state && isComment(c1.state) && c1.delim == delimNone {
+			// Preserve the portion between written and the comment start.
+			cs := i1 - 2
+			if c1.state == stateHTMLCmt {
+				// "<!--" instead of "/*" or "//"
+				cs -= 2
+			}
+			b.Write(s[written:cs])
+			written = i1
+		}
+		if i == i1 && c.state == c1.state {
+			panic(fmt.Sprintf("infinite loop from %v to %v on %q..%q", c, c1, s[:i], s[i:]))
+		}
+		c, i = c1, i1
+	}
+
+	if written != 0 && c.state != stateError {
+		if !isComment(c.state) || c.delim != delimNone {
+			b.Write(n.Text[written:])
+		}
+		e.editTextNode(n, b.Bytes())
+	}
+	return c
+}
+
+// contextAfterText starts in context c, consumes some tokens from the front of
+// s, then returns the context after those tokens and the unprocessed suffix.
+func contextAfterText(c context, s []byte) (context, int) {
+	if c.delim == delimNone {
+		c1, i := tSpecialTagEnd(c, s)
+		if i == 0 {
+			// A special end tag (`</script>`) has been seen and
+			// all content preceding it has been consumed.
+			return c1, 0
+		}
+		// Consider all content up to any end tag.
+		return transitionFunc[c.state](c, s[:i])
+	}
+
+	// We are at the beginning of an attribute value.
+
+	i := bytes.IndexAny(s, delimEnds[c.delim])
+	if i == -1 {
+		i = len(s)
+	}
+	if c.delim == delimSpaceOrTagEnd {
+		// https://www.w3.org/TR/html5/syntax.html#attribute-value-(unquoted)-state
+		// lists the runes below as error characters.
+		// Error out because HTML parsers may differ on whether
+		// "<a id= onclick=f("     ends inside id's or onclick's value,
+		// "<a class=`foo "        ends inside a value,
+		// "<a style=font:'Arial'" needs open-quote fixup.
+		// IE treats '`' as a quotation character.
+		if j := bytes.IndexAny(s[:i], "\"'<=`"); j >= 0 {
+			return context{
+				state: stateError,
+				err:   errorf(ErrBadHTML, nil, 0, "%q in unquoted attr: %q", s[j:j+1], s[:i]),
+			}, len(s)
+		}
+	}
+	if i == len(s) {
+		// Remain inside the attribute.
+		// Decode the value so non-HTML rules can easily handle
+		//     <button onclick="alert(&quot;Hi!&quot;)">
+		// without having to entity decode token boundaries.
+		for u := []byte(html.UnescapeString(string(s))); len(u) != 0; {
+			c1, i1 := transitionFunc[c.state](c, u)
+			c, u = c1, u[i1:]
+		}
+		return c, len(s)
+	}
+
+	element := c.element
+
+	// If this is a non-JS "type" attribute inside "script" tag, do not treat the contents as JS.
+	if c.state == stateAttr && c.element == elementScript && c.attr == attrScriptType && !isJSType(string(s[:i])) {
+		element = elementNone
+	}
+
+	if c.delim != delimSpaceOrTagEnd {
+		// Consume any quote.
+		i++
+	}
+	// On exiting an attribute, we discard all state information
+	// except the state and element.
+	return context{state: stateTag, element: element}, i
+}
+
+// editActionNode records a change to an action pipeline for later commit.
+func (e *escaper) editActionNode(n *parse.ActionNode, cmds []string) {
+	if _, ok := e.actionNodeEdits[n]; ok {
+		panic(fmt.Sprintf("node %s shared between templates", n))
+	}
+	e.actionNodeEdits[n] = cmds
+}
+
+// editTemplateNode records a change to a {{template}} callee for later commit.
+func (e *escaper) editTemplateNode(n *parse.TemplateNode, callee string) {
+	if _, ok := e.templateNodeEdits[n]; ok {
+		panic(fmt.Sprintf("node %s shared between templates", n))
+	}
+	e.templateNodeEdits[n] = callee
+}
+
+// editTextNode records a change to a text node for later commit.
+func (e *escaper) editTextNode(n *parse.TextNode, text []byte) {
+	if _, ok := e.textNodeEdits[n]; ok {
+		panic(fmt.Sprintf("node %s shared between templates", n))
+	}
+	e.textNodeEdits[n] = text
+}
+
+// commit applies changes to actions and template calls needed to contextually
+// autoescape content and adds any derived templates to the set.
+func (e *escaper) commit() {
+	for name := range e.output {
+		e.template(name).Funcs(funcMap)
+	}
+	// Any template from the name space associated with this escaper can be used
+	// to add derived templates to the underlying text/template name space.
+	tmpl := e.arbitraryTemplate()
+	for _, t := range e.derived {
+		if _, err := tmpl.text.AddParseTree(t.Name(), t.Tree); err != nil {
+			panic("error adding derived template")
+		}
+	}
+	for n, s := range e.actionNodeEdits {
+		ensurePipelineContains(n.Pipe, s)
+	}
+	for n, name := range e.templateNodeEdits {
+		n.Name = name
+	}
+	for n, s := range e.textNodeEdits {
+		n.Text = s
+	}
+	// Reset state that is specific to this commit so that the same changes are
+	// not re-applied to the template on subsequent calls to commit.
+	e.called = make(map[string]bool)
+	e.actionNodeEdits = make(map[*parse.ActionNode][]string)
+	e.templateNodeEdits = make(map[*parse.TemplateNode]string)
+	e.textNodeEdits = make(map[*parse.TextNode][]byte)
+}
+
+// template returns the named template given a mangled template name.
+func (e *escaper) template(name string) *template.Template {
+	// Any template from the name space associated with this escaper can be used
+	// to look up templates in the underlying text/template name space.
+	t := e.arbitraryTemplate().text.Lookup(name)
+	if t == nil {
+		t = e.derived[name]
+	}
+	return t
+}
+
+// arbitraryTemplate returns an arbitrary template from the name space
+// associated with e and panics if no templates are found.
+func (e *escaper) arbitraryTemplate() *Template {
+	for _, t := range e.ns.set {
+		return t
+	}
+	panic("no templates in name space")
+}
+
+// Forwarding functions so that clients need only import this package
+// to reach the general escaping functions of text/template.
+
+// HTMLEscape writes to w the escaped HTML equivalent of the plain text data b.
+func HTMLEscape(w io.Writer, b []byte) {
+	template.HTMLEscape(w, b)
+}
+
+// HTMLEscapeString returns the escaped HTML equivalent of the plain text data s.
+func HTMLEscapeString(s string) string {
+	return template.HTMLEscapeString(s)
+}
+
+// HTMLEscaper returns the escaped HTML equivalent of the textual
+// representation of its arguments.
+func HTMLEscaper(args ...interface{}) string {
+	return template.HTMLEscaper(args...)
+}
+
+// JSEscape writes to w the escaped JavaScript equivalent of the plain text data b.
+func JSEscape(w io.Writer, b []byte) {
+	template.JSEscape(w, b)
+}
+
+// JSEscapeString returns the escaped JavaScript equivalent of the plain text data s.
+func JSEscapeString(s string) string {
+	return template.JSEscapeString(s)
+}
+
+// JSEscaper returns the escaped JavaScript equivalent of the textual
+// representation of its arguments.
+func JSEscaper(args ...interface{}) string {
+	return template.JSEscaper(args...)
+}
+
+// URLQueryEscaper returns the escaped value of the textual representation of
+// its arguments in a form suitable for embedding in a URL query.
+func URLQueryEscaper(args ...interface{}) string {
+	return template.URLQueryEscaper(args...)
+}
diff --git a/go.dev/cmd/internal/html/template/escape_test.go b/go.dev/cmd/internal/html/template/escape_test.go
new file mode 100644
index 0000000..8ead4f7
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/escape_test.go
@@ -0,0 +1,1994 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"encoding/json"
+	"fmt"
+	"os"
+	"strings"
+	"testing"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+type badMarshaler struct{}
+
+func (x *badMarshaler) MarshalJSON() ([]byte, error) {
+	// Keys in valid JSON must be double quoted as must all strings.
+	return []byte("{ foo: 'not quite valid JSON' }"), nil
+}
+
+type goodMarshaler struct{}
+
+func (x *goodMarshaler) MarshalJSON() ([]byte, error) {
+	return []byte(`{ "<foo>": "O'Reilly" }`), nil
+}
+
+func TestEscape(t *testing.T) {
+	data := struct {
+		F, T    bool
+		C, G, H string
+		A, E    []string
+		B, M    json.Marshaler
+		N       int
+		U       interface{} // untyped nil
+		Z       *int        // typed nil
+		W       HTML
+	}{
+		F: false,
+		T: true,
+		C: "<Cincinnati>",
+		G: "<Goodbye>",
+		H: "<Hello>",
+		A: []string{"<a>", "<b>"},
+		E: []string{},
+		N: 42,
+		B: &badMarshaler{},
+		M: &goodMarshaler{},
+		U: nil,
+		Z: nil,
+		W: HTML(`&iexcl;<b class="foo">Hello</b>, <textarea>O'World</textarea>!`),
+	}
+	pdata := &data
+
+	tests := []struct {
+		name   string
+		input  string
+		output string
+	}{
+		{
+			"if",
+			"{{if .T}}Hello{{end}}, {{.C}}!",
+			"Hello, &lt;Cincinnati&gt;!",
+		},
+		{
+			"else",
+			"{{if .F}}{{.H}}{{else}}{{.G}}{{end}}!",
+			"&lt;Goodbye&gt;!",
+		},
+		{
+			"overescaping1",
+			"Hello, {{.C | html}}!",
+			"Hello, &lt;Cincinnati&gt;!",
+		},
+		{
+			"overescaping2",
+			"Hello, {{html .C}}!",
+			"Hello, &lt;Cincinnati&gt;!",
+		},
+		{
+			"overescaping3",
+			"{{with .C}}{{$msg := .}}Hello, {{$msg}}!{{end}}",
+			"Hello, &lt;Cincinnati&gt;!",
+		},
+		{
+			"assignment",
+			"{{if $x := .H}}{{$x}}{{end}}",
+			"&lt;Hello&gt;",
+		},
+		{
+			"withBody",
+			"{{with .H}}{{.}}{{end}}",
+			"&lt;Hello&gt;",
+		},
+		{
+			"withElse",
+			"{{with .E}}{{.}}{{else}}{{.H}}{{end}}",
+			"&lt;Hello&gt;",
+		},
+		{
+			"rangeBody",
+			"{{range .A}}{{.}}{{end}}",
+			"&lt;a&gt;&lt;b&gt;",
+		},
+		{
+			"rangeElse",
+			"{{range .E}}{{.}}{{else}}{{.H}}{{end}}",
+			"&lt;Hello&gt;",
+		},
+		{
+			"nonStringValue",
+			"{{.T}}",
+			"true",
+		},
+		{
+			"untypedNilValue",
+			"{{.U}}",
+			"",
+		},
+		{
+			"typedNilValue",
+			"{{.Z}}",
+			"&lt;nil&gt;",
+		},
+		{
+			"constant",
+			`<a href="/search?q={{"'a<b'"}}">`,
+			`<a href="/search?q=%27a%3cb%27">`,
+		},
+		{
+			"multipleAttrs",
+			"<a b=1 c={{.H}}>",
+			"<a b=1 c=&lt;Hello&gt;>",
+		},
+		{
+			"urlStartRel",
+			`<a href='{{"/foo/bar?a=b&c=d"}}'>`,
+			`<a href='/foo/bar?a=b&amp;c=d'>`,
+		},
+		{
+			"urlStartAbsOk",
+			`<a href='{{"http://example.com/foo/bar?a=b&c=d"}}'>`,
+			`<a href='http://example.com/foo/bar?a=b&amp;c=d'>`,
+		},
+		{
+			"protocolRelativeURLStart",
+			`<a href='{{"//example.com:8000/foo/bar?a=b&c=d"}}'>`,
+			`<a href='//example.com:8000/foo/bar?a=b&amp;c=d'>`,
+		},
+		{
+			"pathRelativeURLStart",
+			`<a href="{{"/javascript:80/foo/bar"}}">`,
+			`<a href="/javascript:80/foo/bar">`,
+		},
+		{
+			"dangerousURLStart",
+			`<a href='{{"javascript:alert(%22pwned%22)"}}'>`,
+			`<a href='#ZgotmplZ'>`,
+		},
+		{
+			"dangerousURLStart2",
+			`<a href='  {{"javascript:alert(%22pwned%22)"}}'>`,
+			`<a href='  #ZgotmplZ'>`,
+		},
+		{
+			"nonHierURL",
+			`<a href={{"mailto:Muhammed \"The Greatest\" Ali <m.ali@example.com>"}}>`,
+			`<a href=mailto:Muhammed%20%22The%20Greatest%22%20Ali%20%3cm.ali@example.com%3e>`,
+		},
+		{
+			"urlPath",
+			`<a href='http://{{"javascript:80"}}/foo'>`,
+			`<a href='http://javascript:80/foo'>`,
+		},
+		{
+			"urlQuery",
+			`<a href='/search?q={{.H}}'>`,
+			`<a href='/search?q=%3cHello%3e'>`,
+		},
+		{
+			"urlFragment",
+			`<a href='/faq#{{.H}}'>`,
+			`<a href='/faq#%3cHello%3e'>`,
+		},
+		{
+			"urlBranch",
+			`<a href="{{if .F}}/foo?a=b{{else}}/bar{{end}}">`,
+			`<a href="/bar">`,
+		},
+		{
+			"urlBranchConflictMoot",
+			`<a href="{{if .T}}/foo?a={{else}}/bar#{{end}}{{.C}}">`,
+			`<a href="/foo?a=%3cCincinnati%3e">`,
+		},
+		{
+			"jsStrValue",
+			"<button onclick='alert({{.H}})'>",
+			`<button onclick='alert(&#34;\u003cHello\u003e&#34;)'>`,
+		},
+		{
+			"jsNumericValue",
+			"<button onclick='alert({{.N}})'>",
+			`<button onclick='alert( 42 )'>`,
+		},
+		{
+			"jsBoolValue",
+			"<button onclick='alert({{.T}})'>",
+			`<button onclick='alert( true )'>`,
+		},
+		{
+			"jsNilValueTyped",
+			"<button onclick='alert(typeof{{.Z}})'>",
+			`<button onclick='alert(typeof null )'>`,
+		},
+		{
+			"jsNilValueUntyped",
+			"<button onclick='alert(typeof{{.U}})'>",
+			`<button onclick='alert(typeof null )'>`,
+		},
+		{
+			"jsObjValue",
+			"<button onclick='alert({{.A}})'>",
+			`<button onclick='alert([&#34;\u003ca\u003e&#34;,&#34;\u003cb\u003e&#34;])'>`,
+		},
+		{
+			"jsObjValueScript",
+			"<script>alert({{.A}})</script>",
+			`<script>alert(["\u003ca\u003e","\u003cb\u003e"])</script>`,
+		},
+		{
+			"jsObjValueNotOverEscaped",
+			"<button onclick='alert({{.A | html}})'>",
+			`<button onclick='alert([&#34;\u003ca\u003e&#34;,&#34;\u003cb\u003e&#34;])'>`,
+		},
+		{
+			"jsStr",
+			"<button onclick='alert(&quot;{{.H}}&quot;)'>",
+			`<button onclick='alert(&quot;\u003cHello\u003e&quot;)'>`,
+		},
+		{
+			"badMarshaler",
+			`<button onclick='alert(1/{{.B}}in numbers)'>`,
+			`<button onclick='alert(1/ /* json: error calling MarshalJSON for type *template.badMarshaler: invalid character &#39;f&#39; looking for beginning of object key string */null in numbers)'>`,
+		},
+		{
+			"jsMarshaler",
+			`<button onclick='alert({{.M}})'>`,
+			`<button onclick='alert({&#34;\u003cfoo\u003e&#34;:&#34;O&#39;Reilly&#34;})'>`,
+		},
+		{
+			"jsStrNotUnderEscaped",
+			"<button onclick='alert({{.C | urlquery}})'>",
+			// URL escaped, then quoted for JS.
+			`<button onclick='alert(&#34;%3CCincinnati%3E&#34;)'>`,
+		},
+		{
+			"jsRe",
+			`<button onclick='alert(/{{"foo+bar"}}/.test(""))'>`,
+			`<button onclick='alert(/foo\u002bbar/.test(""))'>`,
+		},
+		{
+			"jsReBlank",
+			`<script>alert(/{{""}}/.test(""));</script>`,
+			`<script>alert(/(?:)/.test(""));</script>`,
+		},
+		{
+			"jsReAmbigOk",
+			`<script>{{if true}}var x = 1{{end}}</script>`,
+			// The {if} ends in an ambiguous jsCtx but there is
+			// no slash following so we shouldn't care.
+			`<script>var x = 1</script>`,
+		},
+		{
+			"styleBidiKeywordPassed",
+			`<p style="dir: {{"ltr"}}">`,
+			`<p style="dir: ltr">`,
+		},
+		{
+			"styleBidiPropNamePassed",
+			`<p style="border-{{"left"}}: 0; border-{{"right"}}: 1in">`,
+			`<p style="border-left: 0; border-right: 1in">`,
+		},
+		{
+			"styleExpressionBlocked",
+			`<p style="width: {{"expression(alert(1337))"}}">`,
+			`<p style="width: ZgotmplZ">`,
+		},
+		{
+			"styleTagSelectorPassed",
+			`<style>{{"p"}} { color: pink }</style>`,
+			`<style>p { color: pink }</style>`,
+		},
+		{
+			"styleIDPassed",
+			`<style>p{{"#my-ID"}} { font: Arial }</style>`,
+			`<style>p#my-ID { font: Arial }</style>`,
+		},
+		{
+			"styleClassPassed",
+			`<style>p{{".my_class"}} { font: Arial }</style>`,
+			`<style>p.my_class { font: Arial }</style>`,
+		},
+		{
+			"styleQuantityPassed",
+			`<a style="left: {{"2em"}}; top: {{0}}">`,
+			`<a style="left: 2em; top: 0">`,
+		},
+		{
+			"stylePctPassed",
+			`<table style=width:{{"100%"}}>`,
+			`<table style=width:100%>`,
+		},
+		{
+			"styleColorPassed",
+			`<p style="color: {{"#8ff"}}; background: {{"#000"}}">`,
+			`<p style="color: #8ff; background: #000">`,
+		},
+		{
+			"styleObfuscatedExpressionBlocked",
+			`<p style="width: {{"  e\\78preS\x00Sio/**/n(alert(1337))"}}">`,
+			`<p style="width: ZgotmplZ">`,
+		},
+		{
+			"styleMozBindingBlocked",
+			`<p style="{{"-moz-binding(alert(1337))"}}: ...">`,
+			`<p style="ZgotmplZ: ...">`,
+		},
+		{
+			"styleObfuscatedMozBindingBlocked",
+			`<p style="{{"  -mo\\7a-B\x00I/**/nding(alert(1337))"}}: ...">`,
+			`<p style="ZgotmplZ: ...">`,
+		},
+		{
+			"styleFontNameString",
+			`<p style='font-family: "{{"Times New Roman"}}"'>`,
+			`<p style='font-family: "Times New Roman"'>`,
+		},
+		{
+			"styleFontNameString",
+			`<p style='font-family: "{{"Times New Roman"}}", "{{"sans-serif"}}"'>`,
+			`<p style='font-family: "Times New Roman", "sans-serif"'>`,
+		},
+		{
+			"styleFontNameUnquoted",
+			`<p style='font-family: {{"Times New Roman"}}'>`,
+			`<p style='font-family: Times New Roman'>`,
+		},
+		{
+			"styleURLQueryEncoded",
+			`<p style="background: url(/img?name={{"O'Reilly Animal(1)<2>.png"}})">`,
+			`<p style="background: url(/img?name=O%27Reilly%20Animal%281%29%3c2%3e.png)">`,
+		},
+		{
+			"styleQuotedURLQueryEncoded",
+			`<p style="background: url('/img?name={{"O'Reilly Animal(1)<2>.png"}}')">`,
+			`<p style="background: url('/img?name=O%27Reilly%20Animal%281%29%3c2%3e.png')">`,
+		},
+		{
+			"styleStrQueryEncoded",
+			`<p style="background: '/img?name={{"O'Reilly Animal(1)<2>.png"}}'">`,
+			`<p style="background: '/img?name=O%27Reilly%20Animal%281%29%3c2%3e.png'">`,
+		},
+		{
+			"styleURLBadProtocolBlocked",
+			`<a style="background: url('{{"javascript:alert(1337)"}}')">`,
+			`<a style="background: url('#ZgotmplZ')">`,
+		},
+		{
+			"styleStrBadProtocolBlocked",
+			`<a style="background: '{{"vbscript:alert(1337)"}}'">`,
+			`<a style="background: '#ZgotmplZ'">`,
+		},
+		{
+			"styleStrEncodedProtocolEncoded",
+			`<a style="background: '{{"javascript\\3a alert(1337)"}}'">`,
+			// The CSS string 'javascript\\3a alert(1337)' does not contain a colon.
+			`<a style="background: 'javascript\\3a alert\28 1337\29 '">`,
+		},
+		{
+			"styleURLGoodProtocolPassed",
+			`<a style="background: url('{{"http://oreilly.com/O'Reilly Animals(1)<2>;{}.html"}}')">`,
+			`<a style="background: url('http://oreilly.com/O%27Reilly%20Animals%281%29%3c2%3e;%7b%7d.html')">`,
+		},
+		{
+			"styleStrGoodProtocolPassed",
+			`<a style="background: '{{"http://oreilly.com/O'Reilly Animals(1)<2>;{}.html"}}'">`,
+			`<a style="background: 'http\3a\2f\2foreilly.com\2fO\27Reilly Animals\28 1\29\3c 2\3e\3b\7b\7d.html'">`,
+		},
+		{
+			"styleURLEncodedForHTMLInAttr",
+			`<a style="background: url('{{"/search?img=foo&size=icon"}}')">`,
+			`<a style="background: url('/search?img=foo&amp;size=icon')">`,
+		},
+		{
+			"styleURLNotEncodedForHTMLInCdata",
+			`<style>body { background: url('{{"/search?img=foo&size=icon"}}') }</style>`,
+			`<style>body { background: url('/search?img=foo&size=icon') }</style>`,
+		},
+		{
+			"styleURLMixedCase",
+			`<p style="background: URL(#{{.H}})">`,
+			`<p style="background: URL(#%3cHello%3e)">`,
+		},
+		{
+			"stylePropertyPairPassed",
+			`<a style='{{"color: red"}}'>`,
+			`<a style='color: red'>`,
+		},
+		{
+			"styleStrSpecialsEncoded",
+			`<a style="font-family: '{{"/**/'\";:// \\"}}', &quot;{{"/**/'\";:// \\"}}&quot;">`,
+			`<a style="font-family: '\2f**\2f\27\22\3b\3a\2f\2f  \\', &quot;\2f**\2f\27\22\3b\3a\2f\2f  \\&quot;">`,
+		},
+		{
+			"styleURLSpecialsEncoded",
+			`<a style="border-image: url({{"/**/'\";:// \\"}}), url(&quot;{{"/**/'\";:// \\"}}&quot;), url('{{"/**/'\";:// \\"}}'), 'http://www.example.com/?q={{"/**/'\";:// \\"}}''">`,
+			`<a style="border-image: url(/**/%27%22;://%20%5c), url(&quot;/**/%27%22;://%20%5c&quot;), url('/**/%27%22;://%20%5c'), 'http://www.example.com/?q=%2f%2a%2a%2f%27%22%3b%3a%2f%2f%20%5c''">`,
+		},
+		{
+			"HTML comment",
+			"<b>Hello, <!-- name of world -->{{.C}}</b>",
+			"<b>Hello, &lt;Cincinnati&gt;</b>",
+		},
+		{
+			"HTML comment not first < in text node.",
+			"<<!-- -->!--",
+			"&lt;!--",
+		},
+		{
+			"HTML normalization 1",
+			"a < b",
+			"a &lt; b",
+		},
+		{
+			"HTML normalization 2",
+			"a << b",
+			"a &lt;&lt; b",
+		},
+		{
+			"HTML normalization 3",
+			"a<<!-- --><!-- -->b",
+			"a&lt;b",
+		},
+		{
+			"HTML doctype not normalized",
+			"<!DOCTYPE html>Hello, World!",
+			"<!DOCTYPE html>Hello, World!",
+		},
+		{
+			"HTML doctype not case-insensitive",
+			"<!doCtYPE htMl>Hello, World!",
+			"<!doCtYPE htMl>Hello, World!",
+		},
+		{
+			"No doctype injection",
+			`<!{{"DOCTYPE"}}`,
+			"&lt;!DOCTYPE",
+		},
+		{
+			"Split HTML comment",
+			"<b>Hello, <!-- name of {{if .T}}city -->{{.C}}{{else}}world -->{{.W}}{{end}}</b>",
+			"<b>Hello, &lt;Cincinnati&gt;</b>",
+		},
+		{
+			"JS line comment",
+			"<script>for (;;) { if (c()) break// foo not a label\n" +
+				"foo({{.T}});}</script>",
+			"<script>for (;;) { if (c()) break\n" +
+				"foo( true );}</script>",
+		},
+		{
+			"JS multiline block comment",
+			"<script>for (;;) { if (c()) break/* foo not a label\n" +
+				" */foo({{.T}});}</script>",
+			// Newline separates break from call. If newline
+			// removed, then break will consume label leaving
+			// code invalid.
+			"<script>for (;;) { if (c()) break\n" +
+				"foo( true );}</script>",
+		},
+		{
+			"JS single-line block comment",
+			"<script>for (;;) {\n" +
+				"if (c()) break/* foo a label */foo;" +
+				"x({{.T}});}</script>",
+			// Newline separates break from call. If newline
+			// removed, then break will consume label leaving
+			// code invalid.
+			"<script>for (;;) {\n" +
+				"if (c()) break foo;" +
+				"x( true );}</script>",
+		},
+		{
+			"JS block comment flush with mathematical division",
+			"<script>var a/*b*//c\nd</script>",
+			"<script>var a /c\nd</script>",
+		},
+		{
+			"JS mixed comments",
+			"<script>var a/*b*///c\nd</script>",
+			"<script>var a \nd</script>",
+		},
+		{
+			"CSS comments",
+			"<style>p// paragraph\n" +
+				`{border: 1px/* color */{{"#00f"}}}</style>`,
+			"<style>p\n" +
+				"{border: 1px #00f}</style>",
+		},
+		{
+			"JS attr block comment",
+			`<a onclick="f(&quot;&quot;); /* alert({{.H}}) */">`,
+			// Attribute comment tests should pass if the comments
+			// are successfully elided.
+			`<a onclick="f(&quot;&quot;); /* alert() */">`,
+		},
+		{
+			"JS attr line comment",
+			`<a onclick="// alert({{.G}})">`,
+			`<a onclick="// alert()">`,
+		},
+		{
+			"CSS attr block comment",
+			`<a style="/* color: {{.H}} */">`,
+			`<a style="/* color:  */">`,
+		},
+		{
+			"CSS attr line comment",
+			`<a style="// color: {{.G}}">`,
+			`<a style="// color: ">`,
+		},
+		{
+			"HTML substitution commented out",
+			"<p><!-- {{.H}} --></p>",
+			"<p></p>",
+		},
+		{
+			"Comment ends flush with start",
+			"<!--{{.}}--><script>/*{{.}}*///{{.}}\n</script><style>/*{{.}}*///{{.}}\n</style><a onclick='/*{{.}}*///{{.}}' style='/*{{.}}*///{{.}}'>",
+			"<script> \n</script><style> \n</style><a onclick='/**///' style='/**///'>",
+		},
+		{
+			"typed HTML in text",
+			`{{.W}}`,
+			`&iexcl;<b class="foo">Hello</b>, <textarea>O'World</textarea>!`,
+		},
+		{
+			"typed HTML in attribute",
+			`<div title="{{.W}}">`,
+			`<div title="&iexcl;Hello, O&#39;World!">`,
+		},
+		{
+			"typed HTML in script",
+			`<button onclick="alert({{.W}})">`,
+			`<button onclick="alert(&#34;\u0026iexcl;\u003cb class=\&#34;foo\&#34;\u003eHello\u003c/b\u003e, \u003ctextarea\u003eO&#39;World\u003c/textarea\u003e!&#34;)">`,
+		},
+		{
+			"typed HTML in RCDATA",
+			`<textarea>{{.W}}</textarea>`,
+			`<textarea>&iexcl;&lt;b class=&#34;foo&#34;&gt;Hello&lt;/b&gt;, &lt;textarea&gt;O&#39;World&lt;/textarea&gt;!</textarea>`,
+		},
+		{
+			"range in textarea",
+			"<textarea>{{range .A}}{{.}}{{end}}</textarea>",
+			"<textarea>&lt;a&gt;&lt;b&gt;</textarea>",
+		},
+		{
+			"No tag injection",
+			`{{"10$"}}<{{"script src,evil.org/pwnd.js"}}...`,
+			`10$&lt;script src,evil.org/pwnd.js...`,
+		},
+		{
+			"No comment injection",
+			`<{{"!--"}}`,
+			`&lt;!--`,
+		},
+		{
+			"No RCDATA end tag injection",
+			`<textarea><{{"/textarea "}}...</textarea>`,
+			`<textarea>&lt;/textarea ...</textarea>`,
+		},
+		{
+			"optional attrs",
+			`<img class="{{"iconClass"}}"` +
+				`{{if .T}} id="{{"<iconId>"}}"{{end}}` +
+				// Double quotes inside if/else.
+				` src=` +
+				`{{if .T}}"?{{"<iconPath>"}}"` +
+				`{{else}}"images/cleardot.gif"{{end}}` +
+				// Missing space before title, but it is not a
+				// part of the src attribute.
+				`{{if .T}}title="{{"<title>"}}"{{end}}` +
+				// Quotes outside if/else.
+				` alt="` +
+				`{{if .T}}{{"<alt>"}}` +
+				`{{else}}{{if .F}}{{"<title>"}}{{end}}` +
+				`{{end}}"` +
+				`>`,
+			`<img class="iconClass" id="&lt;iconId&gt;" src="?%3ciconPath%3e"title="&lt;title&gt;" alt="&lt;alt&gt;">`,
+		},
+		{
+			"conditional valueless attr name",
+			`<input{{if .T}} checked{{end}} name=n>`,
+			`<input checked name=n>`,
+		},
+		{
+			"conditional dynamic valueless attr name 1",
+			`<input{{if .T}} {{"checked"}}{{end}} name=n>`,
+			`<input checked name=n>`,
+		},
+		{
+			"conditional dynamic valueless attr name 2",
+			`<input {{if .T}}{{"checked"}} {{end}}name=n>`,
+			`<input checked name=n>`,
+		},
+		{
+			"dynamic attribute name",
+			`<img on{{"load"}}="alert({{"loaded"}})">`,
+			// Treated as JS since quotes are inserted.
+			`<img onload="alert(&#34;loaded&#34;)">`,
+		},
+		{
+			"bad dynamic attribute name 1",
+			// Allow checked, selected, disabled, but not JS or
+			// CSS attributes.
+			`<input {{"onchange"}}="{{"doEvil()"}}">`,
+			`<input ZgotmplZ="doEvil()">`,
+		},
+		{
+			"bad dynamic attribute name 2",
+			`<div {{"sTyle"}}="{{"color: expression(alert(1337))"}}">`,
+			`<div ZgotmplZ="color: expression(alert(1337))">`,
+		},
+		{
+			"bad dynamic attribute name 3",
+			// Allow title or alt, but not a URL.
+			`<img {{"src"}}="{{"javascript:doEvil()"}}">`,
+			`<img ZgotmplZ="javascript:doEvil()">`,
+		},
+		{
+			"bad dynamic attribute name 4",
+			// Structure preservation requires values to associate
+			// with a consistent attribute.
+			`<input checked {{""}}="Whose value am I?">`,
+			`<input checked ZgotmplZ="Whose value am I?">`,
+		},
+		{
+			"dynamic element name",
+			`<h{{3}}><table><t{{"head"}}>...</h{{3}}>`,
+			`<h3><table><thead>...</h3>`,
+		},
+		{
+			"bad dynamic element name",
+			// Dynamic element names are typically used to switch
+			// between (thead, tfoot, tbody), (ul, ol), (th, td),
+			// and other replaceable sets.
+			// We do not currently easily support (ul, ol).
+			// If we do change to support that, this test should
+			// catch failures to filter out special tag names which
+			// would violate the structure preservation property --
+			// if any special tag name could be substituted, then
+			// the content could be raw text/RCDATA for some inputs
+			// and regular HTML content for others.
+			`<{{"script"}}>{{"doEvil()"}}</{{"script"}}>`,
+			`&lt;script>doEvil()&lt;/script>`,
+		},
+		{
+			"srcset bad URL in second position",
+			`<img srcset="{{"/not-an-image#,javascript:alert(1)"}}">`,
+			// The second URL is also filtered.
+			`<img srcset="/not-an-image#,#ZgotmplZ">`,
+		},
+		{
+			"srcset buffer growth",
+			`<img srcset={{",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"}}>`,
+			`<img srcset=,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>`,
+		},
+	}
+
+	for _, test := range tests {
+		tmpl := New(test.name)
+		tmpl = Must(tmpl.Parse(test.input))
+		// Check for bug 6459: Tree field was not set in Parse.
+		if tmpl.Tree != tmpl.text.Tree {
+			t.Errorf("%s: tree not set properly", test.name)
+			continue
+		}
+		b := new(bytes.Buffer)
+		if err := tmpl.Execute(b, data); err != nil {
+			t.Errorf("%s: template execution failed: %s", test.name, err)
+			continue
+		}
+		if w, g := test.output, b.String(); w != g {
+			t.Errorf("%s: escaped output: want\n\t%q\ngot\n\t%q", test.name, w, g)
+			continue
+		}
+		b.Reset()
+		if err := tmpl.Execute(b, pdata); err != nil {
+			t.Errorf("%s: template execution failed for pointer: %s", test.name, err)
+			continue
+		}
+		if w, g := test.output, b.String(); w != g {
+			t.Errorf("%s: escaped output for pointer: want\n\t%q\ngot\n\t%q", test.name, w, g)
+			continue
+		}
+		if tmpl.Tree != tmpl.text.Tree {
+			t.Errorf("%s: tree mismatch", test.name)
+			continue
+		}
+	}
+}
+
+func TestEscapeMap(t *testing.T) {
+	data := map[string]string{
+		"html":     `<h1>Hi!</h1>`,
+		"urlquery": `http://www.foo.com/index.html?title=main`,
+	}
+	for _, test := range [...]struct {
+		desc, input, output string
+	}{
+		// covering issue 20323
+		{
+			"field with predefined escaper name 1",
+			`{{.html | print}}`,
+			`&lt;h1&gt;Hi!&lt;/h1&gt;`,
+		},
+		// covering issue 20323
+		{
+			"field with predefined escaper name 2",
+			`{{.urlquery | print}}`,
+			`http://www.foo.com/index.html?title=main`,
+		},
+	} {
+		tmpl := Must(New("").Parse(test.input))
+		b := new(bytes.Buffer)
+		if err := tmpl.Execute(b, data); err != nil {
+			t.Errorf("%s: template execution failed: %s", test.desc, err)
+			continue
+		}
+		if w, g := test.output, b.String(); w != g {
+			t.Errorf("%s: escaped output: want\n\t%q\ngot\n\t%q", test.desc, w, g)
+			continue
+		}
+	}
+}
+
+func TestEscapeSet(t *testing.T) {
+	type dataItem struct {
+		Children []*dataItem
+		X        string
+	}
+
+	data := dataItem{
+		Children: []*dataItem{
+			{X: "foo"},
+			{X: "<bar>"},
+			{
+				Children: []*dataItem{
+					{X: "baz"},
+				},
+			},
+		},
+	}
+
+	tests := []struct {
+		inputs map[string]string
+		want   string
+	}{
+		// The trivial set.
+		{
+			map[string]string{
+				"main": ``,
+			},
+			``,
+		},
+		// A template called in the start context.
+		{
+			map[string]string{
+				"main": `Hello, {{template "helper"}}!`,
+				// Not a valid top level HTML template.
+				// "<b" is not a full tag.
+				"helper": `{{"<World>"}}`,
+			},
+			`Hello, &lt;World&gt;!`,
+		},
+		// A template called in a context other than the start.
+		{
+			map[string]string{
+				"main": `<a onclick='a = {{template "helper"}};'>`,
+				// Not a valid top level HTML template.
+				// "<b" is not a full tag.
+				"helper": `{{"<a>"}}<b`,
+			},
+			`<a onclick='a = &#34;\u003ca\u003e&#34;<b;'>`,
+		},
+		// A recursive template that ends in its start context.
+		{
+			map[string]string{
+				"main": `{{range .Children}}{{template "main" .}}{{else}}{{.X}} {{end}}`,
+			},
+			`foo &lt;bar&gt; baz `,
+		},
+		// A recursive helper template that ends in its start context.
+		{
+			map[string]string{
+				"main":   `{{template "helper" .}}`,
+				"helper": `{{if .Children}}<ul>{{range .Children}}<li>{{template "main" .}}</li>{{end}}</ul>{{else}}{{.X}}{{end}}`,
+			},
+			`<ul><li>foo</li><li>&lt;bar&gt;</li><li><ul><li>baz</li></ul></li></ul>`,
+		},
+		// Co-recursive templates that end in its start context.
+		{
+			map[string]string{
+				"main":   `<blockquote>{{range .Children}}{{template "helper" .}}{{end}}</blockquote>`,
+				"helper": `{{if .Children}}{{template "main" .}}{{else}}{{.X}}<br>{{end}}`,
+			},
+			`<blockquote>foo<br>&lt;bar&gt;<br><blockquote>baz<br></blockquote></blockquote>`,
+		},
+		// A template that is called in two different contexts.
+		{
+			map[string]string{
+				"main":   `<button onclick="title='{{template "helper"}}'; ...">{{template "helper"}}</button>`,
+				"helper": `{{11}} of {{"<100>"}}`,
+			},
+			`<button onclick="title='11 of \u003c100\u003e'; ...">11 of &lt;100&gt;</button>`,
+		},
+		// A non-recursive template that ends in a different context.
+		// helper starts in jsCtxRegexp and ends in jsCtxDivOp.
+		{
+			map[string]string{
+				"main":   `<script>var x={{template "helper"}}/{{"42"}};</script>`,
+				"helper": "{{126}}",
+			},
+			`<script>var x= 126 /"42";</script>`,
+		},
+		// A recursive template that ends in a similar context.
+		{
+			map[string]string{
+				"main":      `<script>var x=[{{template "countdown" 4}}];</script>`,
+				"countdown": `{{.}}{{if .}},{{template "countdown" . | pred}}{{end}}`,
+			},
+			`<script>var x=[ 4 , 3 , 2 , 1 , 0 ];</script>`,
+		},
+		// A recursive template that ends in a different context.
+		/*
+			{
+				map[string]string{
+					"main":   `<a href="/foo{{template "helper" .}}">`,
+					"helper": `{{if .Children}}{{range .Children}}{{template "helper" .}}{{end}}{{else}}?x={{.X}}{{end}}`,
+				},
+				`<a href="/foo?x=foo?x=%3cbar%3e?x=baz">`,
+			},
+		*/
+	}
+
+	// pred is a template function that returns the predecessor of a
+	// natural number for testing recursive templates.
+	fns := FuncMap{"pred": func(a ...interface{}) (interface{}, error) {
+		if len(a) == 1 {
+			if i, _ := a[0].(int); i > 0 {
+				return i - 1, nil
+			}
+		}
+		return nil, fmt.Errorf("undefined pred(%v)", a)
+	}}
+
+	for _, test := range tests {
+		source := ""
+		for name, body := range test.inputs {
+			source += fmt.Sprintf("{{define %q}}%s{{end}} ", name, body)
+		}
+		tmpl, err := New("root").Funcs(fns).Parse(source)
+		if err != nil {
+			t.Errorf("error parsing %q: %v", source, err)
+			continue
+		}
+		var b bytes.Buffer
+
+		if err := tmpl.ExecuteTemplate(&b, "main", data); err != nil {
+			t.Errorf("%q executing %v", err.Error(), tmpl.Lookup("main"))
+			continue
+		}
+		if got := b.String(); test.want != got {
+			t.Errorf("want\n\t%q\ngot\n\t%q", test.want, got)
+		}
+	}
+
+}
+
+func TestErrors(t *testing.T) {
+	tests := []struct {
+		input string
+		err   string
+	}{
+		// Non-error cases.
+		{
+			"{{if .Cond}}<a>{{else}}<b>{{end}}",
+			"",
+		},
+		{
+			"{{if .Cond}}<a>{{end}}",
+			"",
+		},
+		{
+			"{{if .Cond}}{{else}}<b>{{end}}",
+			"",
+		},
+		{
+			"{{with .Cond}}<div>{{end}}",
+			"",
+		},
+		{
+			"{{range .Items}}<a>{{end}}",
+			"",
+		},
+		{
+			"<a href='/foo?{{range .Items}}&{{.K}}={{.V}}{{end}}'>",
+			"",
+		},
+		{
+			"{{range .Items}}<a{{if .X}}{{end}}>{{end}}",
+			"",
+		},
+		{
+			"{{range .Items}}<a{{if .X}}{{end}}>{{continue}}{{end}}",
+			"",
+		},
+		{
+			"{{range .Items}}<a{{if .X}}{{end}}>{{break}}{{end}}",
+			"",
+		},
+		{
+			"{{range .Items}}<a{{if .X}}{{end}}>{{if .X}}{{break}}{{end}}{{end}}",
+			"",
+		},
+		// Error cases.
+		{
+			"{{if .Cond}}<a{{end}}",
+			"z:1:5: {{if}} branches",
+		},
+		{
+			"{{if .Cond}}\n{{else}}\n<a{{end}}",
+			"z:1:5: {{if}} branches",
+		},
+		{
+			// Missing quote in the else branch.
+			`{{if .Cond}}<a href="foo">{{else}}<a href="bar>{{end}}`,
+			"z:1:5: {{if}} branches",
+		},
+		{
+			// Different kind of attribute: href implies a URL.
+			"<a {{if .Cond}}href='{{else}}title='{{end}}{{.X}}'>",
+			"z:1:8: {{if}} branches",
+		},
+		{
+			"\n{{with .X}}<a{{end}}",
+			"z:2:7: {{with}} branches",
+		},
+		{
+			"\n{{with .X}}<a>{{else}}<a{{end}}",
+			"z:2:7: {{with}} branches",
+		},
+		{
+			"{{range .Items}}<a{{end}}",
+			`z:1: on range loop re-entry: "<" in attribute name: "<a"`,
+		},
+		{
+			"\n{{range .Items}} x='<a{{end}}",
+			"z:2:8: on range loop re-entry: {{range}} branches",
+		},
+		{
+			"{{range .Items}}<a{{if .X}}{{break}}{{end}}>{{end}}",
+			"z:1:29: at range loop break: {{range}} branches end in different contexts",
+		},
+		{
+			"{{range .Items}}<a{{if .X}}{{continue}}{{end}}>{{end}}",
+			"z:1:29: at range loop continue: {{range}} branches end in different contexts",
+		},
+		{
+			"<a b=1 c={{.H}}",
+			"z: ends in a non-text context: {stateAttr delimSpaceOrTagEnd",
+		},
+		{
+			"<script>foo();",
+			"z: ends in a non-text context: {stateJS",
+		},
+		{
+			`<a href="{{if .F}}/foo?a={{else}}/bar/{{end}}{{.H}}">`,
+			"z:1:47: {{.H}} appears in an ambiguous context within a URL",
+		},
+		{
+			`<a onclick="alert('Hello \`,
+			`unfinished escape sequence in JS string: "Hello \\"`,
+		},
+		{
+			`<a onclick='alert("Hello\, World\`,
+			`unfinished escape sequence in JS string: "Hello\\, World\\"`,
+		},
+		{
+			`<a onclick='alert(/x+\`,
+			`unfinished escape sequence in JS string: "x+\\"`,
+		},
+		{
+			`<a onclick="/foo[\]/`,
+			`unfinished JS regexp charset: "foo[\\]/"`,
+		},
+		{
+			// It is ambiguous whether 1.5 should be 1\.5 or 1.5.
+			// Either `var x = 1/- 1.5 /i.test(x)`
+			// where `i.test(x)` is a method call of reference i,
+			// or `/-1\.5/i.test(x)` which is a method call on a
+			// case insensitive regular expression.
+			`<script>{{if false}}var x = 1{{end}}/-{{"1.5"}}/i.test(x)</script>`,
+			`'/' could start a division or regexp: "/-"`,
+		},
+		{
+			`{{template "foo"}}`,
+			"z:1:11: no such template \"foo\"",
+		},
+		{
+			`<div{{template "y"}}>` +
+				// Illegal starting in stateTag but not in stateText.
+				`{{define "y"}} foo<b{{end}}`,
+			`"<" in attribute name: " foo<b"`,
+		},
+		{
+			`<script>reverseList = [{{template "t"}}]</script>` +
+				// Missing " after recursive call.
+				`{{define "t"}}{{if .Tail}}{{template "t" .Tail}}{{end}}{{.Head}}",{{end}}`,
+			`: cannot compute output context for template t$htmltemplate_stateJS_elementScript`,
+		},
+		{
+			`<input type=button value=onclick=>`,
+			`html/template:z: "=" in unquoted attr: "onclick="`,
+		},
+		{
+			`<input type=button value= onclick=>`,
+			`html/template:z: "=" in unquoted attr: "onclick="`,
+		},
+		{
+			`<input type=button value= 1+1=2>`,
+			`html/template:z: "=" in unquoted attr: "1+1=2"`,
+		},
+		{
+			"<a class=`foo>",
+			"golang.org/x/go.dev/cmd/internal/html/template:z: \"`\" in unquoted attr: \"`foo\"",
+		},
+		{
+			`<a style=font:'Arial'>`,
+			`html/template:z: "'" in unquoted attr: "font:'Arial'"`,
+		},
+		{
+			`<a=foo>`,
+			`: expected space, attr name, or end of tag, but got "=foo>"`,
+		},
+		{
+			`Hello, {{. | urlquery | print}}!`,
+			// urlquery is disallowed if it is not the last command in the pipeline.
+			`predefined escaper "urlquery" disallowed in template`,
+		},
+		{
+			`Hello, {{. | html | print}}!`,
+			// html is disallowed if it is not the last command in the pipeline.
+			`predefined escaper "html" disallowed in template`,
+		},
+		{
+			`Hello, {{html . | print}}!`,
+			// A direct call to html is disallowed if it is not the last command in the pipeline.
+			`predefined escaper "html" disallowed in template`,
+		},
+		{
+			`<div class={{. | html}}>Hello<div>`,
+			// html is disallowed in a pipeline that is in an unquoted attribute context,
+			// even if it is the last command in the pipeline.
+			`predefined escaper "html" disallowed in template`,
+		},
+		{
+			`Hello, {{. | urlquery | html}}!`,
+			// html is allowed since it is the last command in the pipeline, but urlquery is not.
+			`predefined escaper "urlquery" disallowed in template`,
+		},
+	}
+	for _, test := range tests {
+		buf := new(bytes.Buffer)
+		tmpl, err := New("z").Parse(test.input)
+		if err != nil {
+			t.Errorf("input=%q: unexpected parse error %s\n", test.input, err)
+			continue
+		}
+		err = tmpl.Execute(buf, nil)
+		var got string
+		if err != nil {
+			got = err.Error()
+		}
+		if test.err == "" {
+			if got != "" {
+				t.Errorf("input=%q: unexpected error %q", test.input, got)
+			}
+			continue
+		}
+		if !strings.Contains(got, test.err) {
+			t.Errorf("input=%q: error\n\t%q\ndoes not contain expected string\n\t%q", test.input, got, test.err)
+			continue
+		}
+		// Check that we get the same error if we call Execute again.
+		if err := tmpl.Execute(buf, nil); err == nil || err.Error() != got {
+			t.Errorf("input=%q: unexpected error on second call %q", test.input, err)
+
+		}
+	}
+}
+
+func TestEscapeText(t *testing.T) {
+	tests := []struct {
+		input  string
+		output context
+	}{
+		{
+			``,
+			context{},
+		},
+		{
+			`Hello, World!`,
+			context{},
+		},
+		{
+			// An orphaned "<" is OK.
+			`I <3 Ponies!`,
+			context{},
+		},
+		{
+			`<a`,
+			context{state: stateTag},
+		},
+		{
+			`<a `,
+			context{state: stateTag},
+		},
+		{
+			`<a>`,
+			context{state: stateText},
+		},
+		{
+			`<a href`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a on`,
+			context{state: stateAttrName, attr: attrScript},
+		},
+		{
+			`<a href `,
+			context{state: stateAfterName, attr: attrURL},
+		},
+		{
+			`<a style  =  `,
+			context{state: stateBeforeValue, attr: attrStyle},
+		},
+		{
+			`<a href=`,
+			context{state: stateBeforeValue, attr: attrURL},
+		},
+		{
+			`<a href=x`,
+			context{state: stateURL, delim: delimSpaceOrTagEnd, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a href=x `,
+			context{state: stateTag},
+		},
+		{
+			`<a href=>`,
+			context{state: stateText},
+		},
+		{
+			`<a href=x>`,
+			context{state: stateText},
+		},
+		{
+			`<a href ='`,
+			context{state: stateURL, delim: delimSingleQuote, attr: attrURL},
+		},
+		{
+			`<a href=''`,
+			context{state: stateTag},
+		},
+		{
+			`<a href= "`,
+			context{state: stateURL, delim: delimDoubleQuote, attr: attrURL},
+		},
+		{
+			`<a href=""`,
+			context{state: stateTag},
+		},
+		{
+			`<a title="`,
+			context{state: stateAttr, delim: delimDoubleQuote},
+		},
+		{
+			`<a HREF='http:`,
+			context{state: stateURL, delim: delimSingleQuote, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a Href='/`,
+			context{state: stateURL, delim: delimSingleQuote, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a href='"`,
+			context{state: stateURL, delim: delimSingleQuote, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a href="'`,
+			context{state: stateURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a href='&apos;`,
+			context{state: stateURL, delim: delimSingleQuote, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a href="&quot;`,
+			context{state: stateURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a href="&#34;`,
+			context{state: stateURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<a href=&quot;`,
+			context{state: stateURL, delim: delimSpaceOrTagEnd, urlPart: urlPartPreQuery, attr: attrURL},
+		},
+		{
+			`<img alt="1">`,
+			context{state: stateText},
+		},
+		{
+			`<img alt="1>"`,
+			context{state: stateTag},
+		},
+		{
+			`<img alt="1>">`,
+			context{state: stateText},
+		},
+		{
+			`<input checked type="checkbox"`,
+			context{state: stateTag},
+		},
+		{
+			`<a onclick="`,
+			context{state: stateJS, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="//foo`,
+			context{state: stateJSLineCmt, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			"<a onclick='//\n",
+			context{state: stateJS, delim: delimSingleQuote, attr: attrScript},
+		},
+		{
+			"<a onclick='//\r\n",
+			context{state: stateJS, delim: delimSingleQuote, attr: attrScript},
+		},
+		{
+			"<a onclick='//\u2028",
+			context{state: stateJS, delim: delimSingleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="/*`,
+			context{state: stateJSBlockCmt, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="/*/`,
+			context{state: stateJSBlockCmt, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="/**/`,
+			context{state: stateJS, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onkeypress="&quot;`,
+			context{state: stateJSDqStr, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick='&quot;foo&quot;`,
+			context{state: stateJS, delim: delimSingleQuote, jsCtx: jsCtxDivOp, attr: attrScript},
+		},
+		{
+			`<a onclick=&#39;foo&#39;`,
+			context{state: stateJS, delim: delimSpaceOrTagEnd, jsCtx: jsCtxDivOp, attr: attrScript},
+		},
+		{
+			`<a onclick=&#39;foo`,
+			context{state: stateJSSqStr, delim: delimSpaceOrTagEnd, attr: attrScript},
+		},
+		{
+			`<a onclick="&quot;foo'`,
+			context{state: stateJSDqStr, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="'foo&quot;`,
+			context{state: stateJSSqStr, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<A ONCLICK="'`,
+			context{state: stateJSSqStr, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="/`,
+			context{state: stateJSRegexp, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="'foo'`,
+			context{state: stateJS, delim: delimDoubleQuote, jsCtx: jsCtxDivOp, attr: attrScript},
+		},
+		{
+			`<a onclick="'foo\'`,
+			context{state: stateJSSqStr, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="'foo\'`,
+			context{state: stateJSSqStr, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="/foo/`,
+			context{state: stateJS, delim: delimDoubleQuote, jsCtx: jsCtxDivOp, attr: attrScript},
+		},
+		{
+			`<script>/foo/ /=`,
+			context{state: stateJS, element: elementScript},
+		},
+		{
+			`<a onclick="1 /foo`,
+			context{state: stateJS, delim: delimDoubleQuote, jsCtx: jsCtxDivOp, attr: attrScript},
+		},
+		{
+			`<a onclick="1 /*c*/ /foo`,
+			context{state: stateJS, delim: delimDoubleQuote, jsCtx: jsCtxDivOp, attr: attrScript},
+		},
+		{
+			`<a onclick="/foo[/]`,
+			context{state: stateJSRegexp, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="/foo\/`,
+			context{state: stateJSRegexp, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<a onclick="/foo/`,
+			context{state: stateJS, delim: delimDoubleQuote, jsCtx: jsCtxDivOp, attr: attrScript},
+		},
+		{
+			`<input checked style="`,
+			context{state: stateCSS, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="//`,
+			context{state: stateCSSLineCmt, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="//</script>`,
+			context{state: stateCSSLineCmt, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			"<a style='//\n",
+			context{state: stateCSS, delim: delimSingleQuote, attr: attrStyle},
+		},
+		{
+			"<a style='//\r",
+			context{state: stateCSS, delim: delimSingleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="/*`,
+			context{state: stateCSSBlockCmt, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="/*/`,
+			context{state: stateCSSBlockCmt, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="/**/`,
+			context{state: stateCSS, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="background: '`,
+			context{state: stateCSSSqStr, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="background: &quot;`,
+			context{state: stateCSSDqStr, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="background: '/foo?img=`,
+			context{state: stateCSSSqStr, delim: delimDoubleQuote, urlPart: urlPartQueryOrFrag, attr: attrStyle},
+		},
+		{
+			`<a style="background: '/`,
+			context{state: stateCSSSqStr, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrStyle},
+		},
+		{
+			`<a style="background: url(&#x22;/`,
+			context{state: stateCSSDqURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrStyle},
+		},
+		{
+			`<a style="background: url('/`,
+			context{state: stateCSSSqURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrStyle},
+		},
+		{
+			`<a style="background: url('/)`,
+			context{state: stateCSSSqURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrStyle},
+		},
+		{
+			`<a style="background: url('/ `,
+			context{state: stateCSSSqURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrStyle},
+		},
+		{
+			`<a style="background: url(/`,
+			context{state: stateCSSURL, delim: delimDoubleQuote, urlPart: urlPartPreQuery, attr: attrStyle},
+		},
+		{
+			`<a style="background: url( `,
+			context{state: stateCSSURL, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="background: url( /image?name=`,
+			context{state: stateCSSURL, delim: delimDoubleQuote, urlPart: urlPartQueryOrFrag, attr: attrStyle},
+		},
+		{
+			`<a style="background: url(x)`,
+			context{state: stateCSS, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="background: url('x'`,
+			context{state: stateCSS, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<a style="background: url( x `,
+			context{state: stateCSS, delim: delimDoubleQuote, attr: attrStyle},
+		},
+		{
+			`<!-- foo`,
+			context{state: stateHTMLCmt},
+		},
+		{
+			`<!-->`,
+			context{state: stateHTMLCmt},
+		},
+		{
+			`<!--->`,
+			context{state: stateHTMLCmt},
+		},
+		{
+			`<!-- foo -->`,
+			context{state: stateText},
+		},
+		{
+			`<script`,
+			context{state: stateTag, element: elementScript},
+		},
+		{
+			`<script `,
+			context{state: stateTag, element: elementScript},
+		},
+		{
+			`<script src="foo.js" `,
+			context{state: stateTag, element: elementScript},
+		},
+		{
+			`<script src='foo.js' `,
+			context{state: stateTag, element: elementScript},
+		},
+		{
+			`<script type=text/javascript `,
+			context{state: stateTag, element: elementScript},
+		},
+		{
+			`<script>`,
+			context{state: stateJS, jsCtx: jsCtxRegexp, element: elementScript},
+		},
+		{
+			`<script>foo`,
+			context{state: stateJS, jsCtx: jsCtxDivOp, element: elementScript},
+		},
+		{
+			`<script>foo</script>`,
+			context{state: stateText},
+		},
+		{
+			`<script>foo</script><!--`,
+			context{state: stateHTMLCmt},
+		},
+		{
+			`<script>document.write("<p>foo</p>");`,
+			context{state: stateJS, element: elementScript},
+		},
+		{
+			`<script>document.write("<p>foo<\/script>");`,
+			context{state: stateJS, element: elementScript},
+		},
+		{
+			`<script>document.write("<script>alert(1)</script>");`,
+			context{state: stateText},
+		},
+		{
+			`<script type="golang.org/x/go.dev/cmd/internal/text/template">`,
+			context{state: stateText},
+		},
+		// covering issue 19968
+		{
+			`<script type="TEXT/JAVASCRIPT">`,
+			context{state: stateJS, element: elementScript},
+		},
+		// covering issue 19965
+		{
+			`<script TYPE="golang.org/x/go.dev/cmd/internal/text/template">`,
+			context{state: stateText},
+		},
+		{
+			`<script type="notjs">`,
+			context{state: stateText},
+		},
+		{
+			`<Script>`,
+			context{state: stateJS, element: elementScript},
+		},
+		{
+			`<SCRIPT>foo`,
+			context{state: stateJS, jsCtx: jsCtxDivOp, element: elementScript},
+		},
+		{
+			`<textarea>value`,
+			context{state: stateRCDATA, element: elementTextarea},
+		},
+		{
+			`<textarea>value</TEXTAREA>`,
+			context{state: stateText},
+		},
+		{
+			`<textarea name=html><b`,
+			context{state: stateRCDATA, element: elementTextarea},
+		},
+		{
+			`<title>value`,
+			context{state: stateRCDATA, element: elementTitle},
+		},
+		{
+			`<style>value`,
+			context{state: stateCSS, element: elementStyle},
+		},
+		{
+			`<a xlink:href`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a xmlns`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a xmlns:foo`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a xmlnsxyz`,
+			context{state: stateAttrName},
+		},
+		{
+			`<a data-url`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a data-iconUri`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a data-urlItem`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a g:`,
+			context{state: stateAttrName},
+		},
+		{
+			`<a g:url`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a g:iconUri`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a g:urlItem`,
+			context{state: stateAttrName, attr: attrURL},
+		},
+		{
+			`<a g:value`,
+			context{state: stateAttrName},
+		},
+		{
+			`<a svg:style='`,
+			context{state: stateCSS, delim: delimSingleQuote, attr: attrStyle},
+		},
+		{
+			`<svg:font-face`,
+			context{state: stateTag},
+		},
+		{
+			`<svg:a svg:onclick="`,
+			context{state: stateJS, delim: delimDoubleQuote, attr: attrScript},
+		},
+		{
+			`<svg:a svg:onclick="x()">`,
+			context{},
+		},
+	}
+
+	for _, test := range tests {
+		b, e := []byte(test.input), makeEscaper(nil)
+		c := e.escapeText(context{}, &parse.TextNode{NodeType: parse.NodeText, Text: b})
+		if !test.output.eq(c) {
+			t.Errorf("input %q: want context\n\t%v\ngot\n\t%v", test.input, test.output, c)
+			continue
+		}
+		if test.input != string(b) {
+			t.Errorf("input %q: text node was modified: want %q got %q", test.input, test.input, b)
+			continue
+		}
+	}
+}
+
+func TestEnsurePipelineContains(t *testing.T) {
+	tests := []struct {
+		input, output string
+		ids           []string
+	}{
+		{
+			"{{.X}}",
+			".X",
+			[]string{},
+		},
+		{
+			"{{.X | html}}",
+			".X | html",
+			[]string{},
+		},
+		{
+			"{{.X}}",
+			".X | html",
+			[]string{"html"},
+		},
+		{
+			"{{html .X}}",
+			"_eval_args_ .X | html | urlquery",
+			[]string{"html", "urlquery"},
+		},
+		{
+			"{{html .X .Y .Z}}",
+			"_eval_args_ .X .Y .Z | html | urlquery",
+			[]string{"html", "urlquery"},
+		},
+		{
+			"{{.X | print}}",
+			".X | print | urlquery",
+			[]string{"urlquery"},
+		},
+		{
+			"{{.X | print | urlquery}}",
+			".X | print | urlquery",
+			[]string{"urlquery"},
+		},
+		{
+			"{{.X | urlquery}}",
+			".X | html | urlquery",
+			[]string{"html", "urlquery"},
+		},
+		{
+			"{{.X | print 2 | .f 3}}",
+			".X | print 2 | .f 3 | urlquery | html",
+			[]string{"urlquery", "html"},
+		},
+		{
+			// covering issue 10801
+			"{{.X | println.x }}",
+			".X | println.x | urlquery | html",
+			[]string{"urlquery", "html"},
+		},
+		{
+			// covering issue 10801
+			"{{.X | (print 12 | println).x }}",
+			".X | (print 12 | println).x | urlquery | html",
+			[]string{"urlquery", "html"},
+		},
+		// The following test cases ensure that the merging of internal escapers
+		// with the predefined "html" and "urlquery" escapers is correct.
+		{
+			"{{.X | urlquery}}",
+			".X | _html_template_urlfilter | urlquery",
+			[]string{"_html_template_urlfilter", "_html_template_urlnormalizer"},
+		},
+		{
+			"{{.X | urlquery}}",
+			".X | urlquery | _html_template_urlfilter | _html_template_cssescaper",
+			[]string{"_html_template_urlfilter", "_html_template_cssescaper"},
+		},
+		{
+			"{{.X | urlquery}}",
+			".X | urlquery",
+			[]string{"_html_template_urlnormalizer"},
+		},
+		{
+			"{{.X | urlquery}}",
+			".X | urlquery",
+			[]string{"_html_template_urlescaper"},
+		},
+		{
+			"{{.X | html}}",
+			".X | html",
+			[]string{"_html_template_htmlescaper"},
+		},
+		{
+			"{{.X | html}}",
+			".X | html",
+			[]string{"_html_template_rcdataescaper"},
+		},
+	}
+	for i, test := range tests {
+		tmpl := template.Must(template.New("test").Parse(test.input))
+		action, ok := (tmpl.Tree.Root.Nodes[0].(*parse.ActionNode))
+		if !ok {
+			t.Errorf("First node is not an action: %s", test.input)
+			continue
+		}
+		pipe := action.Pipe
+		originalIDs := make([]string, len(test.ids))
+		copy(originalIDs, test.ids)
+		ensurePipelineContains(pipe, test.ids)
+		got := pipe.String()
+		if got != test.output {
+			t.Errorf("#%d: %s, %v: want\n\t%s\ngot\n\t%s", i, test.input, originalIDs, test.output, got)
+		}
+	}
+}
+
+func TestEscapeMalformedPipelines(t *testing.T) {
+	tests := []string{
+		"{{ 0 | $ }}",
+		"{{ 0 | $ | urlquery }}",
+		"{{ 0 | (nil) }}",
+		"{{ 0 | (nil) | html }}",
+	}
+	for _, test := range tests {
+		var b bytes.Buffer
+		tmpl, err := New("test").Parse(test)
+		if err != nil {
+			t.Errorf("failed to parse set: %q", err)
+		}
+		err = tmpl.Execute(&b, nil)
+		if err == nil {
+			t.Errorf("Expected error for %q", test)
+		}
+	}
+}
+
+func TestEscapeErrorsNotIgnorable(t *testing.T) {
+	var b bytes.Buffer
+	tmpl, _ := New("dangerous").Parse("<a")
+	err := tmpl.Execute(&b, nil)
+	if err == nil {
+		t.Errorf("Expected error")
+	} else if b.Len() != 0 {
+		t.Errorf("Emitted output despite escaping failure")
+	}
+}
+
+func TestEscapeSetErrorsNotIgnorable(t *testing.T) {
+	var b bytes.Buffer
+	tmpl, err := New("root").Parse(`{{define "t"}}<a{{end}}`)
+	if err != nil {
+		t.Errorf("failed to parse set: %q", err)
+	}
+	err = tmpl.ExecuteTemplate(&b, "t", nil)
+	if err == nil {
+		t.Errorf("Expected error")
+	} else if b.Len() != 0 {
+		t.Errorf("Emitted output despite escaping failure")
+	}
+}
+
+func TestRedundantFuncs(t *testing.T) {
+	inputs := []interface{}{
+		"\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f" +
+			"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+			` !"#$%&'()*+,-./` +
+			`0123456789:;<=>?` +
+			`@ABCDEFGHIJKLMNO` +
+			`PQRSTUVWXYZ[\]^_` +
+			"`abcdefghijklmno" +
+			"pqrstuvwxyz{|}~\x7f" +
+			"\u00A0\u0100\u2028\u2029\ufeff\ufdec\ufffd\uffff\U0001D11E" +
+			"&amp;%22\\",
+		CSS(`a[href =~ "//example.com"]#foo`),
+		HTML(`Hello, <b>World</b> &amp;tc!`),
+		HTMLAttr(` dir="ltr"`),
+		JS(`c && alert("Hello, World!");`),
+		JSStr(`Hello, World & O'Reilly\x21`),
+		URL(`greeting=H%69&addressee=(World)`),
+	}
+
+	for n0, m := range redundantFuncs {
+		f0 := funcMap[n0].(func(...interface{}) string)
+		for n1 := range m {
+			f1 := funcMap[n1].(func(...interface{}) string)
+			for _, input := range inputs {
+				want := f0(input)
+				if got := f1(want); want != got {
+					t.Errorf("%s %s with %T %q: want\n\t%q,\ngot\n\t%q", n0, n1, input, input, want, got)
+				}
+			}
+		}
+	}
+}
+
+func TestIndirectPrint(t *testing.T) {
+	a := 3
+	ap := &a
+	b := "hello"
+	bp := &b
+	bpp := &bp
+	tmpl := Must(New("t").Parse(`{{.}}`))
+	var buf bytes.Buffer
+	err := tmpl.Execute(&buf, ap)
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+	} else if buf.String() != "3" {
+		t.Errorf(`Expected "3"; got %q`, buf.String())
+	}
+	buf.Reset()
+	err = tmpl.Execute(&buf, bpp)
+	if err != nil {
+		t.Errorf("Unexpected error: %s", err)
+	} else if buf.String() != "hello" {
+		t.Errorf(`Expected "hello"; got %q`, buf.String())
+	}
+}
+
+// This is a test for issue 3272.
+func TestEmptyTemplateHTML(t *testing.T) {
+	page := Must(New("page").ParseFiles(os.DevNull))
+	if err := page.ExecuteTemplate(os.Stdout, "page", "nothing"); err == nil {
+		t.Fatal("expected error")
+	}
+}
+
+type Issue7379 int
+
+func (Issue7379) SomeMethod(x int) string {
+	return fmt.Sprintf("<%d>", x)
+}
+
+// This is a test for issue 7379: type assertion error caused panic, and then
+// the code to handle the panic breaks escaping. It's hard to see the second
+// problem once the first is fixed, but its fix is trivial so we let that go. See
+// the discussion for issue 7379.
+func TestPipeToMethodIsEscaped(t *testing.T) {
+	tmpl := Must(New("x").Parse("<html>{{0 | .SomeMethod}}</html>\n"))
+	tryExec := func() string {
+		defer func() {
+			panicValue := recover()
+			if panicValue != nil {
+				t.Errorf("panicked: %v\n", panicValue)
+			}
+		}()
+		var b bytes.Buffer
+		tmpl.Execute(&b, Issue7379(0))
+		return b.String()
+	}
+	for i := 0; i < 3; i++ {
+		str := tryExec()
+		const expect = "<html>&lt;0&gt;</html>\n"
+		if str != expect {
+			t.Errorf("expected %q got %q", expect, str)
+		}
+	}
+}
+
+// Unlike text/template, html/template crashed if given an incomplete
+// template, that is, a template that had been named but not given any content.
+// This is issue #10204.
+func TestErrorOnUndefined(t *testing.T) {
+	tmpl := New("undefined")
+
+	err := tmpl.Execute(nil, nil)
+	if err == nil {
+		t.Error("expected error")
+	} else if !strings.Contains(err.Error(), "incomplete") {
+		t.Errorf("expected error about incomplete template; got %s", err)
+	}
+}
+
+// This covers issue #20842.
+func TestIdempotentExecute(t *testing.T) {
+	tmpl := Must(New("").
+		Parse(`{{define "main"}}<body>{{template "hello"}}</body>{{end}}`))
+	Must(tmpl.
+		Parse(`{{define "hello"}}Hello, {{"Ladies & Gentlemen!"}}{{end}}`))
+	got := new(bytes.Buffer)
+	var err error
+	// Ensure that "hello" produces the same output when executed twice.
+	want := "Hello, Ladies &amp; Gentlemen!"
+	for i := 0; i < 2; i++ {
+		err = tmpl.ExecuteTemplate(got, "hello", nil)
+		if err != nil {
+			t.Errorf("unexpected error: %s", err)
+		}
+		if got.String() != want {
+			t.Errorf("after executing template \"hello\", got:\n\t%q\nwant:\n\t%q\n", got.String(), want)
+		}
+		got.Reset()
+	}
+	// Ensure that the implicit re-execution of "hello" during the execution of
+	// "main" does not cause the output of "hello" to change.
+	err = tmpl.ExecuteTemplate(got, "main", nil)
+	if err != nil {
+		t.Errorf("unexpected error: %s", err)
+	}
+	// If the HTML escaper is added again to the action {{"Ladies & Gentlemen!"}},
+	// we would expected to see the ampersand overescaped to "&amp;amp;".
+	want = "<body>Hello, Ladies &amp; Gentlemen!</body>"
+	if got.String() != want {
+		t.Errorf("after executing template \"main\", got:\n\t%q\nwant:\n\t%q\n", got.String(), want)
+	}
+}
+
+func BenchmarkEscapedExecute(b *testing.B) {
+	tmpl := Must(New("t").Parse(`<a onclick="alert('{{.}}')">{{.}}</a>`))
+	var buf bytes.Buffer
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		tmpl.Execute(&buf, "foo & 'bar' & baz")
+		buf.Reset()
+	}
+}
+
+// Covers issue 22780.
+func TestOrphanedTemplate(t *testing.T) {
+	t1 := Must(New("foo").Parse(`<a href="{{.}}">link1</a>`))
+	t2 := Must(t1.New("foo").Parse(`bar`))
+
+	var b bytes.Buffer
+	const wantError = `template: "foo" is an incomplete or empty template`
+	if err := t1.Execute(&b, "javascript:alert(1)"); err == nil {
+		t.Fatal("expected error executing t1")
+	} else if gotError := err.Error(); gotError != wantError {
+		t.Fatalf("got t1 execution error:\n\t%s\nwant:\n\t%s", gotError, wantError)
+	}
+	b.Reset()
+	if err := t2.Execute(&b, nil); err != nil {
+		t.Fatalf("error executing t2: %s", err)
+	}
+	const want = "bar"
+	if got := b.String(); got != want {
+		t.Fatalf("t2 rendered %q, want %q", got, want)
+	}
+}
+
+// Covers issue 21844.
+func TestAliasedParseTreeDoesNotOverescape(t *testing.T) {
+	const (
+		tmplText = `{{.}}`
+		data     = `<baz>`
+		want     = `&lt;baz&gt;`
+	)
+	// Templates "foo" and "bar" both alias the same underlying parse tree.
+	tpl := Must(New("foo").Parse(tmplText))
+	if _, err := tpl.AddParseTree("bar", tpl.Tree); err != nil {
+		t.Fatalf("AddParseTree error: %v", err)
+	}
+	var b1, b2 bytes.Buffer
+	if err := tpl.ExecuteTemplate(&b1, "foo", data); err != nil {
+		t.Fatalf(`ExecuteTemplate failed for "foo": %v`, err)
+	}
+	if err := tpl.ExecuteTemplate(&b2, "bar", data); err != nil {
+		t.Fatalf(`ExecuteTemplate failed for "foo": %v`, err)
+	}
+	got1, got2 := b1.String(), b2.String()
+	if got1 != want {
+		t.Fatalf(`Template "foo" rendered %q, want %q`, got1, want)
+	}
+	if got1 != got2 {
+		t.Fatalf(`Template "foo" and "bar" rendered %q and %q respectively, expected equal values`, got1, got2)
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/example_test.go b/go.dev/cmd/internal/html/template/example_test.go
new file mode 100644
index 0000000..f8f7af9
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/example_test.go
@@ -0,0 +1,182 @@
+// Copyright 2015 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 template_test
+
+import (
+	"fmt"
+	"log"
+	"os"
+	"strings"
+
+	"golang.org/x/go.dev/cmd/internal/html/template"
+)
+
+func Example() {
+	const tpl = `
+<!DOCTYPE html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title>{{.Title}}</title>
+	</head>
+	<body>
+		{{range .Items}}<div>{{ . }}</div>{{else}}<div><strong>no rows</strong></div>{{end}}
+	</body>
+</html>`
+
+	check := func(err error) {
+		if err != nil {
+			log.Fatal(err)
+		}
+	}
+	t, err := template.New("webpage").Parse(tpl)
+	check(err)
+
+	data := struct {
+		Title string
+		Items []string
+	}{
+		Title: "My page",
+		Items: []string{
+			"My photos",
+			"My blog",
+		},
+	}
+
+	err = t.Execute(os.Stdout, data)
+	check(err)
+
+	noItems := struct {
+		Title string
+		Items []string
+	}{
+		Title: "My another page",
+		Items: []string{},
+	}
+
+	err = t.Execute(os.Stdout, noItems)
+	check(err)
+
+	// Output:
+	// <!DOCTYPE html>
+	// <html>
+	// 	<head>
+	// 		<meta charset="UTF-8">
+	// 		<title>My page</title>
+	// 	</head>
+	// 	<body>
+	// 		<div>My photos</div><div>My blog</div>
+	// 	</body>
+	// </html>
+	// <!DOCTYPE html>
+	// <html>
+	// 	<head>
+	// 		<meta charset="UTF-8">
+	// 		<title>My another page</title>
+	// 	</head>
+	// 	<body>
+	// 		<div><strong>no rows</strong></div>
+	// 	</body>
+	// </html>
+
+}
+
+func Example_autoescaping() {
+	check := func(err error) {
+		if err != nil {
+			log.Fatal(err)
+		}
+	}
+	t, err := template.New("foo").Parse(`{{define "T"}}Hello, {{.}}!{{end}}`)
+	check(err)
+	err = t.ExecuteTemplate(os.Stdout, "T", "<script>alert('you have been pwned')</script>")
+	check(err)
+	// Output:
+	// Hello, &lt;script&gt;alert(&#39;you have been pwned&#39;)&lt;/script&gt;!
+}
+
+func Example_escape() {
+	const s = `"Fran & Freddie's Diner" <tasty@example.com>`
+	v := []interface{}{`"Fran & Freddie's Diner"`, ' ', `<tasty@example.com>`}
+
+	fmt.Println(template.HTMLEscapeString(s))
+	template.HTMLEscape(os.Stdout, []byte(s))
+	fmt.Fprintln(os.Stdout, "")
+	fmt.Println(template.HTMLEscaper(v...))
+
+	fmt.Println(template.JSEscapeString(s))
+	template.JSEscape(os.Stdout, []byte(s))
+	fmt.Fprintln(os.Stdout, "")
+	fmt.Println(template.JSEscaper(v...))
+
+	fmt.Println(template.URLQueryEscaper(v...))
+
+	// Output:
+	// &#34;Fran &amp; Freddie&#39;s Diner&#34; &lt;tasty@example.com&gt;
+	// &#34;Fran &amp; Freddie&#39;s Diner&#34; &lt;tasty@example.com&gt;
+	// &#34;Fran &amp; Freddie&#39;s Diner&#34;32&lt;tasty@example.com&gt;
+	// \"Fran \u0026 Freddie\'s Diner\" \u003Ctasty@example.com\u003E
+	// \"Fran \u0026 Freddie\'s Diner\" \u003Ctasty@example.com\u003E
+	// \"Fran \u0026 Freddie\'s Diner\"32\u003Ctasty@example.com\u003E
+	// %22Fran+%26+Freddie%27s+Diner%2232%3Ctasty%40example.com%3E
+
+}
+
+func ExampleTemplate_Delims() {
+	const text = "<<.Greeting>> {{.Name}}"
+
+	data := struct {
+		Greeting string
+		Name     string
+	}{
+		Greeting: "Hello",
+		Name:     "Joe",
+	}
+
+	t := template.Must(template.New("tpl").Delims("<<", ">>").Parse(text))
+
+	err := t.Execute(os.Stdout, data)
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	// Output:
+	// Hello {{.Name}}
+}
+
+// The following example is duplicated in text/template; keep them in sync.
+
+func ExampleTemplate_block() {
+	const (
+		master  = `Names:{{block "list" .}}{{"\n"}}{{range .}}{{println "-" .}}{{end}}{{end}}`
+		overlay = `{{define "list"}} {{join . ", "}}{{end}} `
+	)
+	var (
+		funcs     = template.FuncMap{"join": strings.Join}
+		guardians = []string{"Gamora", "Groot", "Nebula", "Rocket", "Star-Lord"}
+	)
+	masterTmpl, err := template.New("master").Funcs(funcs).Parse(master)
+	if err != nil {
+		log.Fatal(err)
+	}
+	overlayTmpl, err := template.Must(masterTmpl.Clone()).Parse(overlay)
+	if err != nil {
+		log.Fatal(err)
+	}
+	if err := masterTmpl.Execute(os.Stdout, guardians); err != nil {
+		log.Fatal(err)
+	}
+	if err := overlayTmpl.Execute(os.Stdout, guardians); err != nil {
+		log.Fatal(err)
+	}
+	// Output:
+	// Names:
+	// - Gamora
+	// - Groot
+	// - Nebula
+	// - Rocket
+	// - Star-Lord
+	// Names: Gamora, Groot, Nebula, Rocket, Star-Lord
+}
diff --git a/go.dev/cmd/internal/html/template/examplefiles_test.go b/go.dev/cmd/internal/html/template/examplefiles_test.go
new file mode 100644
index 0000000..82f1676
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/examplefiles_test.go
@@ -0,0 +1,227 @@
+// Copyright 2016 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 template_test
+
+import (
+	"io"
+	"io/ioutil"
+	"log"
+	"os"
+	"path/filepath"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+// templateFile defines the contents of a template to be stored in a file, for testing.
+type templateFile struct {
+	name     string
+	contents string
+}
+
+func createTestDir(files []templateFile) string {
+	dir, err := ioutil.TempDir("", "template")
+	if err != nil {
+		log.Fatal(err)
+	}
+	for _, file := range files {
+		f, err := os.Create(filepath.Join(dir, file.name))
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer f.Close()
+		_, err = io.WriteString(f, file.contents)
+		if err != nil {
+			log.Fatal(err)
+		}
+	}
+	return dir
+}
+
+// The following example is duplicated in text/template; keep them in sync.
+
+// Here we demonstrate loading a set of templates from a directory.
+func ExampleTemplate_glob() {
+	// Here we create a temporary directory and populate it with our sample
+	// template definition files; usually the template files would already
+	// exist in some location known to the program.
+	dir := createTestDir([]templateFile{
+		// T0.tmpl is a plain template file that just invokes T1.
+		{"T0.tmpl", `T0 invokes T1: ({{template "T1"}})`},
+		// T1.tmpl defines a template, T1 that invokes T2.
+		{"T1.tmpl", `{{define "T1"}}T1 invokes T2: ({{template "T2"}}){{end}}`},
+		// T2.tmpl defines a template T2.
+		{"T2.tmpl", `{{define "T2"}}This is T2{{end}}`},
+	})
+	// Clean up after the test; another quirk of running as an example.
+	defer os.RemoveAll(dir)
+
+	// pattern is the glob pattern used to find all the template files.
+	pattern := filepath.Join(dir, "*.tmpl")
+
+	// Here starts the example proper.
+	// T0.tmpl is the first name matched, so it becomes the starting template,
+	// the value returned by ParseGlob.
+	tmpl := template.Must(template.ParseGlob(pattern))
+
+	err := tmpl.Execute(os.Stdout, nil)
+	if err != nil {
+		log.Fatalf("template execution: %s", err)
+	}
+	// Output:
+	// T0 invokes T1: (T1 invokes T2: (This is T2))
+}
+
+// Here we demonstrate loading a set of templates from files in different directories
+func ExampleTemplate_parsefiles() {
+	// Here we create different temporary directories and populate them with our sample
+	// template definition files; usually the template files would already
+	// exist in some location known to the program.
+	dir1 := createTestDir([]templateFile{
+		// T1.tmpl is a plain template file that just invokes T2.
+		{"T1.tmpl", `T1 invokes T2: ({{template "T2"}})`},
+	})
+
+	dir2 := createTestDir([]templateFile{
+		// T2.tmpl defines a template T2.
+		{"T2.tmpl", `{{define "T2"}}This is T2{{end}}`},
+	})
+
+	// Clean up after the test; another quirk of running as an example.
+	defer func(dirs ...string) {
+		for _, dir := range dirs {
+			os.RemoveAll(dir)
+		}
+	}(dir1, dir2)
+
+	// Here starts the example proper.
+	// Let's just parse only dir1/T0 and dir2/T2
+	paths := []string{
+		filepath.Join(dir1, "T1.tmpl"),
+		filepath.Join(dir2, "T2.tmpl"),
+	}
+	tmpl := template.Must(template.ParseFiles(paths...))
+
+	err := tmpl.Execute(os.Stdout, nil)
+	if err != nil {
+		log.Fatalf("template execution: %s", err)
+	}
+	// Output:
+	// T1 invokes T2: (This is T2)
+}
+
+// The following example is duplicated in text/template; keep them in sync.
+
+// This example demonstrates one way to share some templates
+// and use them in different contexts. In this variant we add multiple driver
+// templates by hand to an existing bundle of templates.
+func ExampleTemplate_helpers() {
+	// Here we create a temporary directory and populate it with our sample
+	// template definition files; usually the template files would already
+	// exist in some location known to the program.
+	dir := createTestDir([]templateFile{
+		// T1.tmpl defines a template, T1 that invokes T2.
+		{"T1.tmpl", `{{define "T1"}}T1 invokes T2: ({{template "T2"}}){{end}}`},
+		// T2.tmpl defines a template T2.
+		{"T2.tmpl", `{{define "T2"}}This is T2{{end}}`},
+	})
+	// Clean up after the test; another quirk of running as an example.
+	defer os.RemoveAll(dir)
+
+	// pattern is the glob pattern used to find all the template files.
+	pattern := filepath.Join(dir, "*.tmpl")
+
+	// Here starts the example proper.
+	// Load the helpers.
+	templates := template.Must(template.ParseGlob(pattern))
+	// Add one driver template to the bunch; we do this with an explicit template definition.
+	_, err := templates.Parse("{{define `driver1`}}Driver 1 calls T1: ({{template `T1`}})\n{{end}}")
+	if err != nil {
+		log.Fatal("parsing driver1: ", err)
+	}
+	// Add another driver template.
+	_, err = templates.Parse("{{define `driver2`}}Driver 2 calls T2: ({{template `T2`}})\n{{end}}")
+	if err != nil {
+		log.Fatal("parsing driver2: ", err)
+	}
+	// We load all the templates before execution. This package does not require
+	// that behavior but html/template's escaping does, so it's a good habit.
+	err = templates.ExecuteTemplate(os.Stdout, "driver1", nil)
+	if err != nil {
+		log.Fatalf("driver1 execution: %s", err)
+	}
+	err = templates.ExecuteTemplate(os.Stdout, "driver2", nil)
+	if err != nil {
+		log.Fatalf("driver2 execution: %s", err)
+	}
+	// Output:
+	// Driver 1 calls T1: (T1 invokes T2: (This is T2))
+	// Driver 2 calls T2: (This is T2)
+}
+
+// The following example is duplicated in text/template; keep them in sync.
+
+// This example demonstrates how to use one group of driver
+// templates with distinct sets of helper templates.
+func ExampleTemplate_share() {
+	// Here we create a temporary directory and populate it with our sample
+	// template definition files; usually the template files would already
+	// exist in some location known to the program.
+	dir := createTestDir([]templateFile{
+		// T0.tmpl is a plain template file that just invokes T1.
+		{"T0.tmpl", "T0 ({{.}} version) invokes T1: ({{template `T1`}})\n"},
+		// T1.tmpl defines a template, T1 that invokes T2. Note T2 is not defined
+		{"T1.tmpl", `{{define "T1"}}T1 invokes T2: ({{template "T2"}}){{end}}`},
+	})
+	// Clean up after the test; another quirk of running as an example.
+	defer os.RemoveAll(dir)
+
+	// pattern is the glob pattern used to find all the template files.
+	pattern := filepath.Join(dir, "*.tmpl")
+
+	// Here starts the example proper.
+	// Load the drivers.
+	drivers := template.Must(template.ParseGlob(pattern))
+
+	// We must define an implementation of the T2 template. First we clone
+	// the drivers, then add a definition of T2 to the template name space.
+
+	// 1. Clone the helper set to create a new name space from which to run them.
+	first, err := drivers.Clone()
+	if err != nil {
+		log.Fatal("cloning helpers: ", err)
+	}
+	// 2. Define T2, version A, and parse it.
+	_, err = first.Parse("{{define `T2`}}T2, version A{{end}}")
+	if err != nil {
+		log.Fatal("parsing T2: ", err)
+	}
+
+	// Now repeat the whole thing, using a different version of T2.
+	// 1. Clone the drivers.
+	second, err := drivers.Clone()
+	if err != nil {
+		log.Fatal("cloning drivers: ", err)
+	}
+	// 2. Define T2, version B, and parse it.
+	_, err = second.Parse("{{define `T2`}}T2, version B{{end}}")
+	if err != nil {
+		log.Fatal("parsing T2: ", err)
+	}
+
+	// Execute the templates in the reverse order to verify the
+	// first is unaffected by the second.
+	err = second.ExecuteTemplate(os.Stdout, "T0.tmpl", "second")
+	if err != nil {
+		log.Fatalf("second execution: %s", err)
+	}
+	err = first.ExecuteTemplate(os.Stdout, "T0.tmpl", "first")
+	if err != nil {
+		log.Fatalf("first: execution: %s", err)
+	}
+
+	// Output:
+	// T0 (second version) invokes T1: (T1 invokes T2: (T2, version B))
+	// T0 (first version) invokes T1: (T1 invokes T2: (T2, version A))
+}
diff --git a/go.dev/cmd/internal/html/template/exec_test.go b/go.dev/cmd/internal/html/template/exec_test.go
new file mode 100644
index 0000000..f85a130
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/exec_test.go
@@ -0,0 +1,1834 @@
+// Copyright 2011 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.
+
+// Tests for template execution, copied from text/template.
+
+package template
+
+import (
+	"bytes"
+	"errors"
+	"flag"
+	"fmt"
+	"io/ioutil"
+	"reflect"
+	"strings"
+	"sync"
+	"testing"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+var debug = flag.Bool("debug", false, "show the errors produced by the tests")
+
+// T has lots of interesting pieces to use to test execution.
+type T struct {
+	// Basics
+	True        bool
+	I           int
+	U16         uint16
+	X, S        string
+	FloatZero   float64
+	ComplexZero complex128
+	// Nested structs.
+	U *U
+	// Struct with String method.
+	V0     V
+	V1, V2 *V
+	// Struct with Error method.
+	W0     W
+	W1, W2 *W
+	// Slices
+	SI      []int
+	SICap   []int
+	SIEmpty []int
+	SB      []bool
+	// Arrays
+	AI [3]int
+	// Maps
+	MSI      map[string]int
+	MSIone   map[string]int // one element, for deterministic output
+	MSIEmpty map[string]int
+	MXI      map[interface{}]int
+	MII      map[int]int
+	MI32S    map[int32]string
+	MI64S    map[int64]string
+	MUI32S   map[uint32]string
+	MUI64S   map[uint64]string
+	MI8S     map[int8]string
+	MUI8S    map[uint8]string
+	SMSI     []map[string]int
+	// Empty interfaces; used to see if we can dig inside one.
+	Empty0 interface{} // nil
+	Empty1 interface{}
+	Empty2 interface{}
+	Empty3 interface{}
+	Empty4 interface{}
+	// Non-empty interfaces.
+	NonEmptyInterface         I
+	NonEmptyInterfacePtS      *I
+	NonEmptyInterfaceNil      I
+	NonEmptyInterfaceTypedNil I
+	// Stringer.
+	Str fmt.Stringer
+	Err error
+	// Pointers
+	PI  *int
+	PS  *string
+	PSI *[]int
+	NIL *int
+	// Function (not method)
+	BinaryFunc      func(string, string) string
+	VariadicFunc    func(...string) string
+	VariadicFuncInt func(int, ...string) string
+	NilOKFunc       func(*int) bool
+	ErrFunc         func() (string, error)
+	PanicFunc       func() string
+	// Template to test evaluation of templates.
+	Tmpl *Template
+	// Unexported field; cannot be accessed by template.
+	unexported int
+}
+
+type S []string
+
+func (S) Method0() string {
+	return "M0"
+}
+
+type U struct {
+	V string
+}
+
+type V struct {
+	j int
+}
+
+func (v *V) String() string {
+	if v == nil {
+		return "nilV"
+	}
+	return fmt.Sprintf("<%d>", v.j)
+}
+
+type W struct {
+	k int
+}
+
+func (w *W) Error() string {
+	if w == nil {
+		return "nilW"
+	}
+	return fmt.Sprintf("[%d]", w.k)
+}
+
+var siVal = I(S{"a", "b"})
+
+var tVal = &T{
+	True:   true,
+	I:      17,
+	U16:    16,
+	X:      "x",
+	S:      "xyz",
+	U:      &U{"v"},
+	V0:     V{6666},
+	V1:     &V{7777}, // leave V2 as nil
+	W0:     W{888},
+	W1:     &W{999}, // leave W2 as nil
+	SI:     []int{3, 4, 5},
+	SICap:  make([]int, 5, 10),
+	AI:     [3]int{3, 4, 5},
+	SB:     []bool{true, false},
+	MSI:    map[string]int{"one": 1, "two": 2, "three": 3},
+	MSIone: map[string]int{"one": 1},
+	MXI:    map[interface{}]int{"one": 1},
+	MII:    map[int]int{1: 1},
+	MI32S:  map[int32]string{1: "one", 2: "two"},
+	MI64S:  map[int64]string{2: "i642", 3: "i643"},
+	MUI32S: map[uint32]string{2: "u322", 3: "u323"},
+	MUI64S: map[uint64]string{2: "ui642", 3: "ui643"},
+	MI8S:   map[int8]string{2: "i82", 3: "i83"},
+	MUI8S:  map[uint8]string{2: "u82", 3: "u83"},
+	SMSI: []map[string]int{
+		{"one": 1, "two": 2},
+		{"eleven": 11, "twelve": 12},
+	},
+	Empty1:                    3,
+	Empty2:                    "empty2",
+	Empty3:                    []int{7, 8},
+	Empty4:                    &U{"UinEmpty"},
+	NonEmptyInterface:         &T{X: "x"},
+	NonEmptyInterfacePtS:      &siVal,
+	NonEmptyInterfaceTypedNil: (*T)(nil),
+	Str:                       bytes.NewBuffer([]byte("foozle")),
+	Err:                       errors.New("erroozle"),
+	PI:                        newInt(23),
+	PS:                        newString("a string"),
+	PSI:                       newIntSlice(21, 22, 23),
+	BinaryFunc:                func(a, b string) string { return fmt.Sprintf("[%s=%s]", a, b) },
+	VariadicFunc:              func(s ...string) string { return fmt.Sprint("<", strings.Join(s, "+"), ">") },
+	VariadicFuncInt:           func(a int, s ...string) string { return fmt.Sprint(a, "=<", strings.Join(s, "+"), ">") },
+	NilOKFunc:                 func(s *int) bool { return s == nil },
+	ErrFunc:                   func() (string, error) { return "bla", nil },
+	PanicFunc:                 func() string { panic("test panic") },
+	Tmpl:                      Must(New("x").Parse("test template")), // "x" is the value of .X
+}
+
+var tSliceOfNil = []*T{nil}
+
+// A non-empty interface.
+type I interface {
+	Method0() string
+}
+
+var iVal I = tVal
+
+// Helpers for creation.
+func newInt(n int) *int {
+	return &n
+}
+
+func newString(s string) *string {
+	return &s
+}
+
+func newIntSlice(n ...int) *[]int {
+	p := new([]int)
+	*p = make([]int, len(n))
+	copy(*p, n)
+	return p
+}
+
+// Simple methods with and without arguments.
+func (t *T) Method0() string {
+	return "M0"
+}
+
+func (t *T) Method1(a int) int {
+	return a
+}
+
+func (t *T) Method2(a uint16, b string) string {
+	return fmt.Sprintf("Method2: %d %s", a, b)
+}
+
+func (t *T) Method3(v interface{}) string {
+	return fmt.Sprintf("Method3: %v", v)
+}
+
+func (t *T) Copy() *T {
+	n := new(T)
+	*n = *t
+	return n
+}
+
+func (t *T) MAdd(a int, b []int) []int {
+	v := make([]int, len(b))
+	for i, x := range b {
+		v[i] = x + a
+	}
+	return v
+}
+
+var myError = errors.New("my error")
+
+// MyError returns a value and an error according to its argument.
+func (t *T) MyError(error bool) (bool, error) {
+	if error {
+		return true, myError
+	}
+	return false, nil
+}
+
+// A few methods to test chaining.
+func (t *T) GetU() *U {
+	return t.U
+}
+
+func (u *U) TrueFalse(b bool) string {
+	if b {
+		return "true"
+	}
+	return ""
+}
+
+func typeOf(arg interface{}) string {
+	return fmt.Sprintf("%T", arg)
+}
+
+type execTest struct {
+	name   string
+	input  string
+	output string
+	data   interface{}
+	ok     bool
+}
+
+// bigInt and bigUint are hex string representing numbers either side
+// of the max int boundary.
+// We do it this way so the test doesn't depend on ints being 32 bits.
+var (
+	bigInt  = fmt.Sprintf("0x%x", int(1<<uint(reflect.TypeOf(0).Bits()-1)-1))
+	bigUint = fmt.Sprintf("0x%x", uint(1<<uint(reflect.TypeOf(0).Bits()-1)))
+)
+
+var execTests = []execTest{
+	// Trivial cases.
+	{"empty", "", "", nil, true},
+	{"text", "some text", "some text", nil, true},
+	{"nil action", "{{nil}}", "", nil, false},
+
+	// Ideal constants.
+	{"ideal int", "{{typeOf 3}}", "int", 0, true},
+	{"ideal float", "{{typeOf 1.0}}", "float64", 0, true},
+	{"ideal exp float", "{{typeOf 1e1}}", "float64", 0, true},
+	{"ideal complex", "{{typeOf 1i}}", "complex128", 0, true},
+	{"ideal int", "{{typeOf " + bigInt + "}}", "int", 0, true},
+	{"ideal too big", "{{typeOf " + bigUint + "}}", "", 0, false},
+	{"ideal nil without type", "{{nil}}", "", 0, false},
+
+	// Fields of structs.
+	{".X", "-{{.X}}-", "-x-", tVal, true},
+	{".U.V", "-{{.U.V}}-", "-v-", tVal, true},
+	{".unexported", "{{.unexported}}", "", tVal, false},
+
+	// Fields on maps.
+	{"map .one", "{{.MSI.one}}", "1", tVal, true},
+	{"map .two", "{{.MSI.two}}", "2", tVal, true},
+	{"map .NO", "{{.MSI.NO}}", "", tVal, true}, // NOTE: <no value> in text/template
+	{"map .one interface", "{{.MXI.one}}", "1", tVal, true},
+	{"map .WRONG args", "{{.MSI.one 1}}", "", tVal, false},
+	{"map .WRONG type", "{{.MII.one}}", "", tVal, false},
+
+	// Dots of all kinds to test basic evaluation.
+	{"dot int", "<{{.}}>", "&lt;13>", 13, true},
+	{"dot uint", "<{{.}}>", "&lt;14>", uint(14), true},
+	{"dot float", "<{{.}}>", "&lt;15.1>", 15.1, true},
+	{"dot bool", "<{{.}}>", "&lt;true>", true, true},
+	{"dot complex", "<{{.}}>", "&lt;(16.2-17i)>", 16.2 - 17i, true},
+	{"dot string", "<{{.}}>", "&lt;hello>", "hello", true},
+	{"dot slice", "<{{.}}>", "&lt;[-1 -2 -3]>", []int{-1, -2, -3}, true},
+	{"dot map", "<{{.}}>", "&lt;map[two:22]>", map[string]int{"two": 22}, true},
+	{"dot struct", "<{{.}}>", "&lt;{7 seven}>", struct {
+		a int
+		b string
+	}{7, "seven"}, true},
+
+	// Variables.
+	{"$ int", "{{$}}", "123", 123, true},
+	{"$.I", "{{$.I}}", "17", tVal, true},
+	{"$.U.V", "{{$.U.V}}", "v", tVal, true},
+	{"declare in action", "{{$x := $.U.V}}{{$x}}", "v", tVal, true},
+	{"simple assignment", "{{$x := 2}}{{$x = 3}}{{$x}}", "3", tVal, true},
+	{"nested assignment",
+		"{{$x := 2}}{{if true}}{{$x = 3}}{{end}}{{$x}}",
+		"3", tVal, true},
+	{"nested assignment changes the last declaration",
+		"{{$x := 1}}{{if true}}{{$x := 2}}{{if true}}{{$x = 3}}{{end}}{{end}}{{$x}}",
+		"1", tVal, true},
+
+	// Type with String method.
+	{"V{6666}.String()", "-{{.V0}}-", "-{6666}-", tVal, true}, //  NOTE: -<6666>- in text/template
+	{"&V{7777}.String()", "-{{.V1}}-", "-&lt;7777&gt;-", tVal, true},
+	{"(*V)(nil).String()", "-{{.V2}}-", "-nilV-", tVal, true},
+
+	// Type with Error method.
+	{"W{888}.Error()", "-{{.W0}}-", "-{888}-", tVal, true}, // NOTE: -[888] in text/template
+	{"&W{999}.Error()", "-{{.W1}}-", "-[999]-", tVal, true},
+	{"(*W)(nil).Error()", "-{{.W2}}-", "-nilW-", tVal, true},
+
+	// Pointers.
+	{"*int", "{{.PI}}", "23", tVal, true},
+	{"*string", "{{.PS}}", "a string", tVal, true},
+	{"*[]int", "{{.PSI}}", "[21 22 23]", tVal, true},
+	{"*[]int[1]", "{{index .PSI 1}}", "22", tVal, true},
+	{"NIL", "{{.NIL}}", "&lt;nil&gt;", tVal, true},
+
+	// Empty interfaces holding values.
+	{"empty nil", "{{.Empty0}}", "", tVal, true}, // NOTE: <no value> in text/template
+	{"empty with int", "{{.Empty1}}", "3", tVal, true},
+	{"empty with string", "{{.Empty2}}", "empty2", tVal, true},
+	{"empty with slice", "{{.Empty3}}", "[7 8]", tVal, true},
+	{"empty with struct", "{{.Empty4}}", "{UinEmpty}", tVal, true},
+	{"empty with struct, field", "{{.Empty4.V}}", "UinEmpty", tVal, true},
+
+	// Edge cases with <no value> with an interface value
+	{"field on interface", "{{.foo}}", "", nil, true},                  // NOTE: <no value> in text/template
+	{"field on parenthesized interface", "{{(.).foo}}", "", nil, true}, // NOTE: <no value> in text/template
+
+	// Issue 31810: Parenthesized first element of pipeline with arguments.
+	// See also TestIssue31810.
+	{"unparenthesized non-function", "{{1 2}}", "", nil, false},
+	{"parenthesized non-function", "{{(1) 2}}", "", nil, false},
+	{"parenthesized non-function with no args", "{{(1)}}", "1", nil, true}, // This is fine.
+
+	// Method calls.
+	{".Method0", "-{{.Method0}}-", "-M0-", tVal, true},
+	{".Method1(1234)", "-{{.Method1 1234}}-", "-1234-", tVal, true},
+	{".Method1(.I)", "-{{.Method1 .I}}-", "-17-", tVal, true},
+	{".Method2(3, .X)", "-{{.Method2 3 .X}}-", "-Method2: 3 x-", tVal, true},
+	{".Method2(.U16, `str`)", "-{{.Method2 .U16 `str`}}-", "-Method2: 16 str-", tVal, true},
+	{".Method2(.U16, $x)", "{{if $x := .X}}-{{.Method2 .U16 $x}}{{end}}-", "-Method2: 16 x-", tVal, true},
+	{".Method3(nil constant)", "-{{.Method3 nil}}-", "-Method3: &lt;nil&gt;-", tVal, true},
+	{".Method3(nil value)", "-{{.Method3 .MXI.unset}}-", "-Method3: &lt;nil&gt;-", tVal, true},
+	{"method on var", "{{if $x := .}}-{{$x.Method2 .U16 $x.X}}{{end}}-", "-Method2: 16 x-", tVal, true},
+	{"method on chained var",
+		"{{range .MSIone}}{{if $.U.TrueFalse $.True}}{{$.U.TrueFalse $.True}}{{else}}WRONG{{end}}{{end}}",
+		"true", tVal, true},
+	{"chained method",
+		"{{range .MSIone}}{{if $.GetU.TrueFalse $.True}}{{$.U.TrueFalse $.True}}{{else}}WRONG{{end}}{{end}}",
+		"true", tVal, true},
+	{"chained method on variable",
+		"{{with $x := .}}{{with .SI}}{{$.GetU.TrueFalse $.True}}{{end}}{{end}}",
+		"true", tVal, true},
+	{".NilOKFunc not nil", "{{call .NilOKFunc .PI}}", "false", tVal, true},
+	{".NilOKFunc nil", "{{call .NilOKFunc nil}}", "true", tVal, true},
+	{"method on nil value from slice", "-{{range .}}{{.Method1 1234}}{{end}}-", "-1234-", tSliceOfNil, true},
+	{"method on typed nil interface value", "{{.NonEmptyInterfaceTypedNil.Method0}}", "M0", tVal, true},
+
+	// Function call builtin.
+	{".BinaryFunc", "{{call .BinaryFunc `1` `2`}}", "[1=2]", tVal, true},
+	{".VariadicFunc0", "{{call .VariadicFunc}}", "&lt;&gt;", tVal, true},
+	{".VariadicFunc2", "{{call .VariadicFunc `he` `llo`}}", "&lt;he&#43;llo&gt;", tVal, true},
+	{".VariadicFuncInt", "{{call .VariadicFuncInt 33 `he` `llo`}}", "33=&lt;he&#43;llo&gt;", tVal, true},
+	{"if .BinaryFunc call", "{{ if .BinaryFunc}}{{call .BinaryFunc `1` `2`}}{{end}}", "[1=2]", tVal, true},
+	{"if not .BinaryFunc call", "{{ if not .BinaryFunc}}{{call .BinaryFunc `1` `2`}}{{else}}No{{end}}", "No", tVal, true},
+	{"Interface Call", `{{stringer .S}}`, "foozle", map[string]interface{}{"S": bytes.NewBufferString("foozle")}, true},
+	{".ErrFunc", "{{call .ErrFunc}}", "bla", tVal, true},
+	{"call nil", "{{call nil}}", "", tVal, false},
+
+	// Erroneous function calls (check args).
+	{".BinaryFuncTooFew", "{{call .BinaryFunc `1`}}", "", tVal, false},
+	{".BinaryFuncTooMany", "{{call .BinaryFunc `1` `2` `3`}}", "", tVal, false},
+	{".BinaryFuncBad0", "{{call .BinaryFunc 1 3}}", "", tVal, false},
+	{".BinaryFuncBad1", "{{call .BinaryFunc `1` 3}}", "", tVal, false},
+	{".VariadicFuncBad0", "{{call .VariadicFunc 3}}", "", tVal, false},
+	{".VariadicFuncIntBad0", "{{call .VariadicFuncInt}}", "", tVal, false},
+	{".VariadicFuncIntBad`", "{{call .VariadicFuncInt `x`}}", "", tVal, false},
+	{".VariadicFuncNilBad", "{{call .VariadicFunc nil}}", "", tVal, false},
+
+	// Pipelines.
+	{"pipeline", "-{{.Method0 | .Method2 .U16}}-", "-Method2: 16 M0-", tVal, true},
+	{"pipeline func", "-{{call .VariadicFunc `llo` | call .VariadicFunc `he` }}-", "-&lt;he&#43;&lt;llo&gt;&gt;-", tVal, true},
+
+	// Nil values aren't missing arguments.
+	{"nil pipeline", "{{ .Empty0 | call .NilOKFunc }}", "true", tVal, true},
+	{"nil call arg", "{{ call .NilOKFunc .Empty0 }}", "true", tVal, true},
+	{"bad nil pipeline", "{{ .Empty0 | .VariadicFunc }}", "", tVal, false},
+
+	// Parenthesized expressions
+	{"parens in pipeline", "{{printf `%d %d %d` (1) (2 | add 3) (add 4 (add 5 6))}}", "1 5 15", tVal, true},
+
+	// Parenthesized expressions with field accesses
+	{"parens: $ in paren", "{{($).X}}", "x", tVal, true},
+	{"parens: $.GetU in paren", "{{($.GetU).V}}", "v", tVal, true},
+	{"parens: $ in paren in pipe", "{{($ | echo).X}}", "x", tVal, true},
+	{"parens: spaces and args", `{{(makemap "up" "down" "left" "right").left}}`, "right", tVal, true},
+
+	// If.
+	{"if true", "{{if true}}TRUE{{end}}", "TRUE", tVal, true},
+	{"if false", "{{if false}}TRUE{{else}}FALSE{{end}}", "FALSE", tVal, true},
+	{"if nil", "{{if nil}}TRUE{{end}}", "", tVal, false},
+	{"if on typed nil interface value", "{{if .NonEmptyInterfaceTypedNil}}TRUE{{ end }}", "", tVal, true},
+	{"if 1", "{{if 1}}NON-ZERO{{else}}ZERO{{end}}", "NON-ZERO", tVal, true},
+	{"if 0", "{{if 0}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if 1.5", "{{if 1.5}}NON-ZERO{{else}}ZERO{{end}}", "NON-ZERO", tVal, true},
+	{"if 0.0", "{{if .FloatZero}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if 1.5i", "{{if 1.5i}}NON-ZERO{{else}}ZERO{{end}}", "NON-ZERO", tVal, true},
+	{"if 0.0i", "{{if .ComplexZero}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if emptystring", "{{if ``}}NON-EMPTY{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"if string", "{{if `notempty`}}NON-EMPTY{{else}}EMPTY{{end}}", "NON-EMPTY", tVal, true},
+	{"if emptyslice", "{{if .SIEmpty}}NON-EMPTY{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"if slice", "{{if .SI}}NON-EMPTY{{else}}EMPTY{{end}}", "NON-EMPTY", tVal, true},
+	{"if emptymap", "{{if .MSIEmpty}}NON-EMPTY{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"if map", "{{if .MSI}}NON-EMPTY{{else}}EMPTY{{end}}", "NON-EMPTY", tVal, true},
+	{"if map unset", "{{if .MXI.none}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if map not unset", "{{if not .MXI.none}}ZERO{{else}}NON-ZERO{{end}}", "ZERO", tVal, true},
+	{"if $x with $y int", "{{if $x := true}}{{with $y := .I}}{{$x}},{{$y}}{{end}}{{end}}", "true,17", tVal, true},
+	{"if $x with $x int", "{{if $x := true}}{{with $x := .I}}{{$x}},{{end}}{{$x}}{{end}}", "17,true", tVal, true},
+	{"if else if", "{{if false}}FALSE{{else if true}}TRUE{{end}}", "TRUE", tVal, true},
+	{"if else chain", "{{if eq 1 3}}1{{else if eq 2 3}}2{{else if eq 3 3}}3{{end}}", "3", tVal, true},
+
+	// Print etc.
+	{"print", `{{print "hello, print"}}`, "hello, print", tVal, true},
+	{"print 123", `{{print 1 2 3}}`, "1 2 3", tVal, true},
+	{"print nil", `{{print nil}}`, "&lt;nil&gt;", tVal, true},
+	{"println", `{{println 1 2 3}}`, "1 2 3\n", tVal, true},
+	{"printf int", `{{printf "%04x" 127}}`, "007f", tVal, true},
+	{"printf float", `{{printf "%g" 3.5}}`, "3.5", tVal, true},
+	{"printf complex", `{{printf "%g" 1+7i}}`, "(1&#43;7i)", tVal, true},
+	{"printf string", `{{printf "%s" "hello"}}`, "hello", tVal, true},
+	{"printf function", `{{printf "%#q" zeroArgs}}`, "`zeroArgs`", tVal, true},
+	{"printf field", `{{printf "%s" .U.V}}`, "v", tVal, true},
+	{"printf method", `{{printf "%s" .Method0}}`, "M0", tVal, true},
+	{"printf dot", `{{with .I}}{{printf "%d" .}}{{end}}`, "17", tVal, true},
+	{"printf var", `{{with $x := .I}}{{printf "%d" $x}}{{end}}`, "17", tVal, true},
+	{"printf lots", `{{printf "%d %s %g %s" 127 "hello" 7-3i .Method0}}`, "127 hello (7-3i) M0", tVal, true},
+
+	// HTML.
+	{"html", `{{html "<script>alert(\"XSS\");</script>"}}`,
+		"&lt;script&gt;alert(&#34;XSS&#34;);&lt;/script&gt;", nil, true},
+	{"html pipeline", `{{printf "<script>alert(\"XSS\");</script>" | html}}`,
+		"&lt;script&gt;alert(&#34;XSS&#34;);&lt;/script&gt;", nil, true},
+	{"html", `{{html .PS}}`, "a string", tVal, true},
+	{"html typed nil", `{{html .NIL}}`, "&lt;nil&gt;", tVal, true},
+	{"html untyped nil", `{{html .Empty0}}`, "&lt;nil&gt;", tVal, true}, // NOTE: "&lt;no value&gt;" in text/template
+
+	// JavaScript.
+	{"js", `{{js .}}`, `It\&#39;d be nice.`, `It'd be nice.`, true},
+
+	// URL query.
+	{"urlquery", `{{"http://www.example.org/"|urlquery}}`, "http%3A%2F%2Fwww.example.org%2F", nil, true},
+
+	// Booleans
+	{"not", "{{not true}} {{not false}}", "false true", nil, true},
+	{"and", "{{and false 0}} {{and 1 0}} {{and 0 true}} {{and 1 1}}", "false 0 0 1", nil, true},
+	{"or", "{{or 0 0}} {{or 1 0}} {{or 0 true}} {{or 1 1}}", "0 1 true 1", nil, true},
+	{"boolean if", "{{if and true 1 `hi`}}TRUE{{else}}FALSE{{end}}", "TRUE", tVal, true},
+	{"boolean if not", "{{if and true 1 `hi` | not}}TRUE{{else}}FALSE{{end}}", "FALSE", nil, true},
+
+	// Indexing.
+	{"slice[0]", "{{index .SI 0}}", "3", tVal, true},
+	{"slice[1]", "{{index .SI 1}}", "4", tVal, true},
+	{"slice[HUGE]", "{{index .SI 10}}", "", tVal, false},
+	{"slice[WRONG]", "{{index .SI `hello`}}", "", tVal, false},
+	{"slice[nil]", "{{index .SI nil}}", "", tVal, false},
+	{"map[one]", "{{index .MSI `one`}}", "1", tVal, true},
+	{"map[two]", "{{index .MSI `two`}}", "2", tVal, true},
+	{"map[NO]", "{{index .MSI `XXX`}}", "0", tVal, true},
+	{"map[nil]", "{{index .MSI nil}}", "", tVal, false},
+	{"map[``]", "{{index .MSI ``}}", "0", tVal, true},
+	{"map[WRONG]", "{{index .MSI 10}}", "", tVal, false},
+	{"double index", "{{index .SMSI 1 `eleven`}}", "11", tVal, true},
+	{"nil[1]", "{{index nil 1}}", "", tVal, false},
+	{"map MI64S", "{{index .MI64S 2}}", "i642", tVal, true},
+	{"map MI32S", "{{index .MI32S 2}}", "two", tVal, true},
+	{"map MUI64S", "{{index .MUI64S 3}}", "ui643", tVal, true},
+	{"map MI8S", "{{index .MI8S 3}}", "i83", tVal, true},
+	{"map MUI8S", "{{index .MUI8S 2}}", "u82", tVal, true},
+	{"index of an interface field", "{{index .Empty3 0}}", "7", tVal, true},
+
+	// Slicing.
+	{"slice[:]", "{{slice .SI}}", "[3 4 5]", tVal, true},
+	{"slice[1:]", "{{slice .SI 1}}", "[4 5]", tVal, true},
+	{"slice[1:2]", "{{slice .SI 1 2}}", "[4]", tVal, true},
+	{"slice[-1:]", "{{slice .SI -1}}", "", tVal, false},
+	{"slice[1:-2]", "{{slice .SI 1 -2}}", "", tVal, false},
+	{"slice[1:2:-1]", "{{slice .SI 1 2 -1}}", "", tVal, false},
+	{"slice[2:1]", "{{slice .SI 2 1}}", "", tVal, false},
+	{"slice[2:2:1]", "{{slice .SI 2 2 1}}", "", tVal, false},
+	{"out of range", "{{slice .SI 4 5}}", "", tVal, false},
+	{"out of range", "{{slice .SI 2 2 5}}", "", tVal, false},
+	{"len(s) < indexes < cap(s)", "{{slice .SICap 6 10}}", "[0 0 0 0]", tVal, true},
+	{"len(s) < indexes < cap(s)", "{{slice .SICap 6 10 10}}", "[0 0 0 0]", tVal, true},
+	{"indexes > cap(s)", "{{slice .SICap 10 11}}", "", tVal, false},
+	{"indexes > cap(s)", "{{slice .SICap 6 10 11}}", "", tVal, false},
+	{"array[:]", "{{slice .AI}}", "[3 4 5]", tVal, true},
+	{"array[1:]", "{{slice .AI 1}}", "[4 5]", tVal, true},
+	{"array[1:2]", "{{slice .AI 1 2}}", "[4]", tVal, true},
+	{"string[:]", "{{slice .S}}", "xyz", tVal, true},
+	{"string[0:1]", "{{slice .S 0 1}}", "x", tVal, true},
+	{"string[1:]", "{{slice .S 1}}", "yz", tVal, true},
+	{"string[1:2]", "{{slice .S 1 2}}", "y", tVal, true},
+	{"out of range", "{{slice .S 1 5}}", "", tVal, false},
+	{"3-index slice of string", "{{slice .S 1 2 2}}", "", tVal, false},
+	{"slice of an interface field", "{{slice .Empty3 0 1}}", "[7]", tVal, true},
+
+	// Len.
+	{"slice", "{{len .SI}}", "3", tVal, true},
+	{"map", "{{len .MSI }}", "3", tVal, true},
+	{"len of int", "{{len 3}}", "", tVal, false},
+	{"len of nothing", "{{len .Empty0}}", "", tVal, false},
+	{"len of an interface field", "{{len .Empty3}}", "2", tVal, true},
+
+	// With.
+	{"with true", "{{with true}}{{.}}{{end}}", "true", tVal, true},
+	{"with false", "{{with false}}{{.}}{{else}}FALSE{{end}}", "FALSE", tVal, true},
+	{"with 1", "{{with 1}}{{.}}{{else}}ZERO{{end}}", "1", tVal, true},
+	{"with 0", "{{with 0}}{{.}}{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"with 1.5", "{{with 1.5}}{{.}}{{else}}ZERO{{end}}", "1.5", tVal, true},
+	{"with 0.0", "{{with .FloatZero}}{{.}}{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"with 1.5i", "{{with 1.5i}}{{.}}{{else}}ZERO{{end}}", "(0&#43;1.5i)", tVal, true},
+	{"with 0.0i", "{{with .ComplexZero}}{{.}}{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"with emptystring", "{{with ``}}{{.}}{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"with string", "{{with `notempty`}}{{.}}{{else}}EMPTY{{end}}", "notempty", tVal, true},
+	{"with emptyslice", "{{with .SIEmpty}}{{.}}{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"with slice", "{{with .SI}}{{.}}{{else}}EMPTY{{end}}", "[3 4 5]", tVal, true},
+	{"with emptymap", "{{with .MSIEmpty}}{{.}}{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"with map", "{{with .MSIone}}{{.}}{{else}}EMPTY{{end}}", "map[one:1]", tVal, true},
+	{"with empty interface, struct field", "{{with .Empty4}}{{.V}}{{end}}", "UinEmpty", tVal, true},
+	{"with $x int", "{{with $x := .I}}{{$x}}{{end}}", "17", tVal, true},
+	{"with $x struct.U.V", "{{with $x := $}}{{$x.U.V}}{{end}}", "v", tVal, true},
+	{"with variable and action", "{{with $x := $}}{{$y := $.U.V}}{{$y}}{{end}}", "v", tVal, true},
+	{"with on typed nil interface value", "{{with .NonEmptyInterfaceTypedNil}}TRUE{{ end }}", "", tVal, true},
+
+	// Range.
+	{"range []int", "{{range .SI}}-{{.}}-{{end}}", "-3--4--5-", tVal, true},
+	{"range empty no else", "{{range .SIEmpty}}-{{.}}-{{end}}", "", tVal, true},
+	{"range []int else", "{{range .SI}}-{{.}}-{{else}}EMPTY{{end}}", "-3--4--5-", tVal, true},
+	{"range empty else", "{{range .SIEmpty}}-{{.}}-{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"range []int break else", "{{range .SI}}-{{.}}-{{break}}NOTREACHED{{else}}EMPTY{{end}}", "-3-", tVal, true},
+	{"range []int continue else", "{{range .SI}}-{{.}}-{{continue}}NOTREACHED{{else}}EMPTY{{end}}", "-3--4--5-", tVal, true},
+	{"range []bool", "{{range .SB}}-{{.}}-{{end}}", "-true--false-", tVal, true},
+	{"range []int method", "{{range .SI | .MAdd .I}}-{{.}}-{{end}}", "-20--21--22-", tVal, true},
+	{"range map", "{{range .MSI}}-{{.}}-{{end}}", "-1--3--2-", tVal, true},
+	{"range empty map no else", "{{range .MSIEmpty}}-{{.}}-{{end}}", "", tVal, true},
+	{"range map else", "{{range .MSI}}-{{.}}-{{else}}EMPTY{{end}}", "-1--3--2-", tVal, true},
+	{"range empty map else", "{{range .MSIEmpty}}-{{.}}-{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"range empty interface", "{{range .Empty3}}-{{.}}-{{else}}EMPTY{{end}}", "-7--8-", tVal, true},
+	{"range empty nil", "{{range .Empty0}}-{{.}}-{{end}}", "", tVal, true},
+	{"range $x SI", "{{range $x := .SI}}<{{$x}}>{{end}}", "&lt;3>&lt;4>&lt;5>", tVal, true},
+	{"range $x $y SI", "{{range $x, $y := .SI}}<{{$x}}={{$y}}>{{end}}", "&lt;0=3>&lt;1=4>&lt;2=5>", tVal, true},
+	{"range $x MSIone", "{{range $x := .MSIone}}<{{$x}}>{{end}}", "&lt;1>", tVal, true},
+	{"range $x $y MSIone", "{{range $x, $y := .MSIone}}<{{$x}}={{$y}}>{{end}}", "&lt;one=1>", tVal, true},
+	{"range $x PSI", "{{range $x := .PSI}}<{{$x}}>{{end}}", "&lt;21>&lt;22>&lt;23>", tVal, true},
+	{"declare in range", "{{range $x := .PSI}}<{{$foo:=$x}}{{$x}}>{{end}}", "&lt;21>&lt;22>&lt;23>", tVal, true},
+	{"range count", `{{range $i, $x := count 5}}[{{$i}}]{{$x}}{{end}}`, "[0]a[1]b[2]c[3]d[4]e", tVal, true},
+	{"range nil count", `{{range $i, $x := count 0}}{{else}}empty{{end}}`, "empty", tVal, true},
+
+	// Cute examples.
+	{"or as if true", `{{or .SI "slice is empty"}}`, "[3 4 5]", tVal, true},
+	{"or as if false", `{{or .SIEmpty "slice is empty"}}`, "slice is empty", tVal, true},
+
+	// Error handling.
+	{"error method, error", "{{.MyError true}}", "", tVal, false},
+	{"error method, no error", "{{.MyError false}}", "false", tVal, true},
+
+	// Numbers
+	{"decimal", "{{print 1234}}", "1234", tVal, true},
+	{"decimal _", "{{print 12_34}}", "1234", tVal, true},
+	{"binary", "{{print 0b101}}", "5", tVal, true},
+	{"binary _", "{{print 0b_1_0_1}}", "5", tVal, true},
+	{"BINARY", "{{print 0B101}}", "5", tVal, true},
+	{"octal0", "{{print 0377}}", "255", tVal, true},
+	{"octal", "{{print 0o377}}", "255", tVal, true},
+	{"octal _", "{{print 0o_3_7_7}}", "255", tVal, true},
+	{"OCTAL", "{{print 0O377}}", "255", tVal, true},
+	{"hex", "{{print 0x123}}", "291", tVal, true},
+	{"hex _", "{{print 0x1_23}}", "291", tVal, true},
+	{"HEX", "{{print 0X123ABC}}", "1194684", tVal, true},
+	{"float", "{{print 123.4}}", "123.4", tVal, true},
+	{"float _", "{{print 0_0_1_2_3.4}}", "123.4", tVal, true},
+	{"hex float", "{{print +0x1.ep+2}}", "7.5", tVal, true},
+	{"hex float _", "{{print +0x_1.e_0p+0_2}}", "7.5", tVal, true},
+	{"HEX float", "{{print +0X1.EP+2}}", "7.5", tVal, true},
+	{"print multi", "{{print 1_2_3_4 7.5_00_00_00}}", "1234 7.5", tVal, true},
+	{"print multi2", "{{print 1234 0x0_1.e_0p+02}}", "1234 7.5", tVal, true},
+
+	// Fixed bugs.
+	// Must separate dot and receiver; otherwise args are evaluated with dot set to variable.
+	{"bug0", "{{range .MSIone}}{{if $.Method1 .}}X{{end}}{{end}}", "X", tVal, true},
+	// Do not loop endlessly in indirect for non-empty interfaces.
+	// The bug appears with *interface only; looped forever.
+	{"bug1", "{{.Method0}}", "M0", &iVal, true},
+	// Was taking address of interface field, so method set was empty.
+	{"bug2", "{{$.NonEmptyInterface.Method0}}", "M0", tVal, true},
+	// Struct values were not legal in with - mere oversight.
+	{"bug3", "{{with $}}{{.Method0}}{{end}}", "M0", tVal, true},
+	// Nil interface values in if.
+	{"bug4", "{{if .Empty0}}non-nil{{else}}nil{{end}}", "nil", tVal, true},
+	// Stringer.
+	{"bug5", "{{.Str}}", "foozle", tVal, true},
+	{"bug5a", "{{.Err}}", "erroozle", tVal, true},
+	// Args need to be indirected and dereferenced sometimes.
+	{"bug6a", "{{vfunc .V0 .V1}}", "vfunc", tVal, true},
+	{"bug6b", "{{vfunc .V0 .V0}}", "vfunc", tVal, true},
+	{"bug6c", "{{vfunc .V1 .V0}}", "vfunc", tVal, true},
+	{"bug6d", "{{vfunc .V1 .V1}}", "vfunc", tVal, true},
+	// Legal parse but illegal execution: non-function should have no arguments.
+	{"bug7a", "{{3 2}}", "", tVal, false},
+	{"bug7b", "{{$x := 1}}{{$x 2}}", "", tVal, false},
+	{"bug7c", "{{$x := 1}}{{3 | $x}}", "", tVal, false},
+	// Pipelined arg was not being type-checked.
+	{"bug8a", "{{3|oneArg}}", "", tVal, false},
+	{"bug8b", "{{4|dddArg 3}}", "", tVal, false},
+	// A bug was introduced that broke map lookups for lower-case names.
+	{"bug9", "{{.cause}}", "neglect", map[string]string{"cause": "neglect"}, true},
+	// Field chain starting with function did not work.
+	{"bug10", "{{mapOfThree.three}}-{{(mapOfThree).three}}", "3-3", 0, true},
+	// Dereferencing nil pointer while evaluating function arguments should not panic. Issue 7333.
+	{"bug11", "{{valueString .PS}}", "", T{}, false},
+	// 0xef gave constant type float64. Issue 8622.
+	{"bug12xe", "{{printf `%T` 0xef}}", "int", T{}, true},
+	{"bug12xE", "{{printf `%T` 0xEE}}", "int", T{}, true},
+	{"bug12Xe", "{{printf `%T` 0Xef}}", "int", T{}, true},
+	{"bug12XE", "{{printf `%T` 0XEE}}", "int", T{}, true},
+	// Chained nodes did not work as arguments. Issue 8473.
+	{"bug13", "{{print (.Copy).I}}", "17", tVal, true},
+	// Didn't protect against nil or literal values in field chains.
+	{"bug14a", "{{(nil).True}}", "", tVal, false},
+	{"bug14b", "{{$x := nil}}{{$x.anything}}", "", tVal, false},
+	{"bug14c", `{{$x := (1.0)}}{{$y := ("hello")}}{{$x.anything}}{{$y.true}}`, "", tVal, false},
+	// Didn't call validateType on function results. Issue 10800.
+	{"bug15", "{{valueString returnInt}}", "", tVal, false},
+	// Variadic function corner cases. Issue 10946.
+	{"bug16a", "{{true|printf}}", "", tVal, false},
+	{"bug16b", "{{1|printf}}", "", tVal, false},
+	{"bug16c", "{{1.1|printf}}", "", tVal, false},
+	{"bug16d", "{{'x'|printf}}", "", tVal, false},
+	{"bug16e", "{{0i|printf}}", "", tVal, false},
+	{"bug16f", "{{true|twoArgs \"xxx\"}}", "", tVal, false},
+	{"bug16g", "{{\"aaa\" |twoArgs \"bbb\"}}", "twoArgs=bbbaaa", tVal, true},
+	{"bug16h", "{{1|oneArg}}", "", tVal, false},
+	{"bug16i", "{{\"aaa\"|oneArg}}", "oneArg=aaa", tVal, true},
+	{"bug16j", "{{1+2i|printf \"%v\"}}", "(1&#43;2i)", tVal, true},
+	{"bug16k", "{{\"aaa\"|printf }}", "aaa", tVal, true},
+	{"bug17a", "{{.NonEmptyInterface.X}}", "x", tVal, true},
+	{"bug17b", "-{{.NonEmptyInterface.Method1 1234}}-", "-1234-", tVal, true},
+	{"bug17c", "{{len .NonEmptyInterfacePtS}}", "2", tVal, true},
+	{"bug17d", "{{index .NonEmptyInterfacePtS 0}}", "a", tVal, true},
+	{"bug17e", "{{range .NonEmptyInterfacePtS}}-{{.}}-{{end}}", "-a--b-", tVal, true},
+
+	// More variadic function corner cases. Some runes would get evaluated
+	// as constant floats instead of ints. Issue 34483.
+	{"bug18a", "{{eq . '.'}}", "true", '.', true},
+	{"bug18b", "{{eq . 'e'}}", "true", 'e', true},
+	{"bug18c", "{{eq . 'P'}}", "true", 'P', true},
+}
+
+func zeroArgs() string {
+	return "zeroArgs"
+}
+
+func oneArg(a string) string {
+	return "oneArg=" + a
+}
+
+func twoArgs(a, b string) string {
+	return "twoArgs=" + a + b
+}
+
+func dddArg(a int, b ...string) string {
+	return fmt.Sprintln(a, b)
+}
+
+// count returns a channel that will deliver n sequential 1-letter strings starting at "a"
+func count(n int) chan string {
+	if n == 0 {
+		return nil
+	}
+	c := make(chan string)
+	go func() {
+		for i := 0; i < n; i++ {
+			c <- "abcdefghijklmnop"[i : i+1]
+		}
+		close(c)
+	}()
+	return c
+}
+
+// vfunc takes a *V and a V
+func vfunc(V, *V) string {
+	return "vfunc"
+}
+
+// valueString takes a string, not a pointer.
+func valueString(v string) string {
+	return "value is ignored"
+}
+
+// returnInt returns an int
+func returnInt() int {
+	return 7
+}
+
+func add(args ...int) int {
+	sum := 0
+	for _, x := range args {
+		sum += x
+	}
+	return sum
+}
+
+func echo(arg interface{}) interface{} {
+	return arg
+}
+
+func makemap(arg ...string) map[string]string {
+	if len(arg)%2 != 0 {
+		panic("bad makemap")
+	}
+	m := make(map[string]string)
+	for i := 0; i < len(arg); i += 2 {
+		m[arg[i]] = arg[i+1]
+	}
+	return m
+}
+
+func stringer(s fmt.Stringer) string {
+	return s.String()
+}
+
+func mapOfThree() interface{} {
+	return map[string]int{"three": 3}
+}
+
+func testExecute(execTests []execTest, template *Template, t *testing.T) {
+	b := new(bytes.Buffer)
+	funcs := FuncMap{
+		"add":         add,
+		"count":       count,
+		"dddArg":      dddArg,
+		"echo":        echo,
+		"makemap":     makemap,
+		"mapOfThree":  mapOfThree,
+		"oneArg":      oneArg,
+		"returnInt":   returnInt,
+		"stringer":    stringer,
+		"twoArgs":     twoArgs,
+		"typeOf":      typeOf,
+		"valueString": valueString,
+		"vfunc":       vfunc,
+		"zeroArgs":    zeroArgs,
+	}
+	for _, test := range execTests {
+		var tmpl *Template
+		var err error
+		if template == nil {
+			tmpl, err = New(test.name).Funcs(funcs).Parse(test.input)
+		} else {
+			tmpl, err = template.Clone()
+			if err != nil {
+				t.Errorf("%s: clone error: %s", test.name, err)
+				continue
+			}
+			tmpl, err = tmpl.New(test.name).Funcs(funcs).Parse(test.input)
+		}
+		if err != nil {
+			t.Errorf("%s: parse error: %s", test.name, err)
+			continue
+		}
+		b.Reset()
+		err = tmpl.Execute(b, test.data)
+		switch {
+		case !test.ok && err == nil:
+			t.Errorf("%s: expected error; got none", test.name)
+			continue
+		case test.ok && err != nil:
+			t.Errorf("%s: unexpected execute error: %s", test.name, err)
+			continue
+		case !test.ok && err != nil:
+			// expected error, got one
+			if *debug {
+				fmt.Printf("%s: %s\n\t%s\n", test.name, test.input, err)
+			}
+		}
+		result := b.String()
+		if result != test.output {
+			t.Errorf("%s: expected\n\t%q\ngot\n\t%q", test.name, test.output, result)
+		}
+	}
+}
+
+func TestExecute(t *testing.T) {
+	testExecute(execTests, nil, t)
+}
+
+var delimPairs = []string{
+	"", "", // default
+	"{{", "}}", // same as default
+	"|", "|", // same
+	"(日)", "(本)", // peculiar
+}
+
+func TestDelims(t *testing.T) {
+	const hello = "Hello, world"
+	var value = struct{ Str string }{hello}
+	for i := 0; i < len(delimPairs); i += 2 {
+		text := ".Str"
+		left := delimPairs[i+0]
+		trueLeft := left
+		right := delimPairs[i+1]
+		trueRight := right
+		if left == "" { // default case
+			trueLeft = "{{"
+		}
+		if right == "" { // default case
+			trueRight = "}}"
+		}
+		text = trueLeft + text + trueRight
+		// Now add a comment
+		text += trueLeft + "/*comment*/" + trueRight
+		// Now add  an action containing a string.
+		text += trueLeft + `"` + trueLeft + `"` + trueRight
+		// At this point text looks like `{{.Str}}{{/*comment*/}}{{"{{"}}`.
+		tmpl, err := New("delims").Delims(left, right).Parse(text)
+		if err != nil {
+			t.Fatalf("delim %q text %q parse err %s", left, text, err)
+		}
+		var b = new(bytes.Buffer)
+		err = tmpl.Execute(b, value)
+		if err != nil {
+			t.Fatalf("delim %q exec err %s", left, err)
+		}
+		if b.String() != hello+trueLeft {
+			t.Errorf("expected %q got %q", hello+trueLeft, b.String())
+		}
+	}
+}
+
+// Check that an error from a method flows back to the top.
+func TestExecuteError(t *testing.T) {
+	b := new(bytes.Buffer)
+	tmpl := New("error")
+	_, err := tmpl.Parse("{{.MyError true}}")
+	if err != nil {
+		t.Fatalf("parse error: %s", err)
+	}
+	err = tmpl.Execute(b, tVal)
+	if err == nil {
+		t.Errorf("expected error; got none")
+	} else if !strings.Contains(err.Error(), myError.Error()) {
+		if *debug {
+			fmt.Printf("test execute error: %s\n", err)
+		}
+		t.Errorf("expected myError; got %s", err)
+	}
+}
+
+const execErrorText = `line 1
+line 2
+line 3
+{{template "one" .}}
+{{define "one"}}{{template "two" .}}{{end}}
+{{define "two"}}{{template "three" .}}{{end}}
+{{define "three"}}{{index "hi" $}}{{end}}`
+
+// Check that an error from a nested template contains all the relevant information.
+func TestExecError(t *testing.T) {
+	tmpl, err := New("top").Parse(execErrorText)
+	if err != nil {
+		t.Fatal("parse error:", err)
+	}
+	var b bytes.Buffer
+	err = tmpl.Execute(&b, 5) // 5 is out of range indexing "hi"
+	if err == nil {
+		t.Fatal("expected error")
+	}
+	const want = `template: top:7:20: executing "three" at <index "hi" $>: error calling index: index out of range: 5`
+	got := err.Error()
+	if got != want {
+		t.Errorf("expected\n%q\ngot\n%q", want, got)
+	}
+}
+
+func TestJSEscaping(t *testing.T) {
+	testCases := []struct {
+		in, exp string
+	}{
+		{`a`, `a`},
+		{`'foo`, `\'foo`},
+		{`Go "jump" \`, `Go \"jump\" \\`},
+		{`Yukihiro says "今日は世界"`, `Yukihiro says \"今日は世界\"`},
+		{"unprintable \uFDFF", `unprintable \uFDFF`},
+		{`<html>`, `\u003Chtml\u003E`},
+		{`no = in attributes`, `no \u003D in attributes`},
+		{`&#x27; does not become HTML entity`, `\u0026#x27; does not become HTML entity`},
+	}
+	for _, tc := range testCases {
+		s := JSEscapeString(tc.in)
+		if s != tc.exp {
+			t.Errorf("JS escaping [%s] got [%s] want [%s]", tc.in, s, tc.exp)
+		}
+	}
+}
+
+// A nice example: walk a binary tree.
+
+type Tree struct {
+	Val         int
+	Left, Right *Tree
+}
+
+// Use different delimiters to test Set.Delims.
+// Also test the trimming of leading and trailing spaces.
+const treeTemplate = `
+	(- define "tree" -)
+	[
+		(- .Val -)
+		(- with .Left -)
+			(template "tree" . -)
+		(- end -)
+		(- with .Right -)
+			(- template "tree" . -)
+		(- end -)
+	]
+	(- end -)
+`
+
+func TestTree(t *testing.T) {
+	var tree = &Tree{
+		1,
+		&Tree{
+			2, &Tree{
+				3,
+				&Tree{
+					4, nil, nil,
+				},
+				nil,
+			},
+			&Tree{
+				5,
+				&Tree{
+					6, nil, nil,
+				},
+				nil,
+			},
+		},
+		&Tree{
+			7,
+			&Tree{
+				8,
+				&Tree{
+					9, nil, nil,
+				},
+				nil,
+			},
+			&Tree{
+				10,
+				&Tree{
+					11, nil, nil,
+				},
+				nil,
+			},
+		},
+	}
+	tmpl, err := New("root").Delims("(", ")").Parse(treeTemplate)
+	if err != nil {
+		t.Fatal("parse error:", err)
+	}
+	var b bytes.Buffer
+	const expect = "[1[2[3[4]][5[6]]][7[8[9]][10[11]]]]"
+	// First by looking up the template.
+	err = tmpl.Lookup("tree").Execute(&b, tree)
+	if err != nil {
+		t.Fatal("exec error:", err)
+	}
+	result := b.String()
+	if result != expect {
+		t.Errorf("expected %q got %q", expect, result)
+	}
+	// Then direct to execution.
+	b.Reset()
+	err = tmpl.ExecuteTemplate(&b, "tree", tree)
+	if err != nil {
+		t.Fatal("exec error:", err)
+	}
+	result = b.String()
+	if result != expect {
+		t.Errorf("expected %q got %q", expect, result)
+	}
+}
+
+func TestExecuteOnNewTemplate(t *testing.T) {
+	// This is issue 3872.
+	New("Name").Templates()
+	// This is issue 11379.
+	// new(Template).Templates() // TODO: crashes
+	// new(Template).Parse("") // TODO: crashes
+	// new(Template).New("abc").Parse("") // TODO: crashes
+	// new(Template).Execute(nil, nil)                // TODO: crashes; returns an error (but does not crash)
+	// new(Template).ExecuteTemplate(nil, "XXX", nil) // TODO: crashes; returns an error (but does not crash)
+}
+
+const testTemplates = `{{define "one"}}one{{end}}{{define "two"}}two{{end}}`
+
+func TestMessageForExecuteEmpty(t *testing.T) {
+	// Test a truly empty template.
+	tmpl := New("empty")
+	var b bytes.Buffer
+	err := tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected initial error")
+	}
+	got := err.Error()
+	want := `template: "empty" is an incomplete or empty template` // NOTE: text/template has extra "empty: " in message
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+
+	// Add a non-empty template to check that the error is helpful.
+	tmpl = New("empty")
+	tests, err := New("").Parse(testTemplates)
+	if err != nil {
+		t.Fatal(err)
+	}
+	tmpl.AddParseTree("secondary", tests.Tree)
+	err = tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected second error")
+	}
+	got = err.Error()
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+	// Make sure we can execute the secondary.
+	err = tmpl.ExecuteTemplate(&b, "secondary", 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+func TestFinalForPrintf(t *testing.T) {
+	tmpl, err := New("").Parse(`{{"x" | printf}}`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	var b bytes.Buffer
+	err = tmpl.Execute(&b, 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+type cmpTest struct {
+	expr  string
+	truth string
+	ok    bool
+}
+
+var cmpTests = []cmpTest{
+	{"eq true true", "true", true},
+	{"eq true false", "false", true},
+	{"eq 1+2i 1+2i", "true", true},
+	{"eq 1+2i 1+3i", "false", true},
+	{"eq 1.5 1.5", "true", true},
+	{"eq 1.5 2.5", "false", true},
+	{"eq 1 1", "true", true},
+	{"eq 1 2", "false", true},
+	{"eq `xy` `xy`", "true", true},
+	{"eq `xy` `xyz`", "false", true},
+	{"eq .Uthree .Uthree", "true", true},
+	{"eq .Uthree .Ufour", "false", true},
+	{"eq 3 4 5 6 3", "true", true},
+	{"eq 3 4 5 6 7", "false", true},
+	{"ne true true", "false", true},
+	{"ne true false", "true", true},
+	{"ne 1+2i 1+2i", "false", true},
+	{"ne 1+2i 1+3i", "true", true},
+	{"ne 1.5 1.5", "false", true},
+	{"ne 1.5 2.5", "true", true},
+	{"ne 1 1", "false", true},
+	{"ne 1 2", "true", true},
+	{"ne `xy` `xy`", "false", true},
+	{"ne `xy` `xyz`", "true", true},
+	{"ne .Uthree .Uthree", "false", true},
+	{"ne .Uthree .Ufour", "true", true},
+	{"lt 1.5 1.5", "false", true},
+	{"lt 1.5 2.5", "true", true},
+	{"lt 1 1", "false", true},
+	{"lt 1 2", "true", true},
+	{"lt `xy` `xy`", "false", true},
+	{"lt `xy` `xyz`", "true", true},
+	{"lt .Uthree .Uthree", "false", true},
+	{"lt .Uthree .Ufour", "true", true},
+	{"le 1.5 1.5", "true", true},
+	{"le 1.5 2.5", "true", true},
+	{"le 2.5 1.5", "false", true},
+	{"le 1 1", "true", true},
+	{"le 1 2", "true", true},
+	{"le 2 1", "false", true},
+	{"le `xy` `xy`", "true", true},
+	{"le `xy` `xyz`", "true", true},
+	{"le `xyz` `xy`", "false", true},
+	{"le .Uthree .Uthree", "true", true},
+	{"le .Uthree .Ufour", "true", true},
+	{"le .Ufour .Uthree", "false", true},
+	{"gt 1.5 1.5", "false", true},
+	{"gt 1.5 2.5", "false", true},
+	{"gt 1 1", "false", true},
+	{"gt 2 1", "true", true},
+	{"gt 1 2", "false", true},
+	{"gt `xy` `xy`", "false", true},
+	{"gt `xy` `xyz`", "false", true},
+	{"gt .Uthree .Uthree", "false", true},
+	{"gt .Uthree .Ufour", "false", true},
+	{"gt .Ufour .Uthree", "true", true},
+	{"ge 1.5 1.5", "true", true},
+	{"ge 1.5 2.5", "false", true},
+	{"ge 2.5 1.5", "true", true},
+	{"ge 1 1", "true", true},
+	{"ge 1 2", "false", true},
+	{"ge 2 1", "true", true},
+	{"ge `xy` `xy`", "true", true},
+	{"ge `xy` `xyz`", "false", true},
+	{"ge `xyz` `xy`", "true", true},
+	{"ge .Uthree .Uthree", "true", true},
+	{"ge .Uthree .Ufour", "false", true},
+	{"ge .Ufour .Uthree", "true", true},
+	// Mixing signed and unsigned integers.
+	{"eq .Uthree .Three", "true", true},
+	{"eq .Three .Uthree", "true", true},
+	{"le .Uthree .Three", "true", true},
+	{"le .Three .Uthree", "true", true},
+	{"ge .Uthree .Three", "true", true},
+	{"ge .Three .Uthree", "true", true},
+	{"lt .Uthree .Three", "false", true},
+	{"lt .Three .Uthree", "false", true},
+	{"gt .Uthree .Three", "false", true},
+	{"gt .Three .Uthree", "false", true},
+	{"eq .Ufour .Three", "false", true},
+	{"lt .Ufour .Three", "false", true},
+	{"gt .Ufour .Three", "true", true},
+	{"eq .NegOne .Uthree", "false", true},
+	{"eq .Uthree .NegOne", "false", true},
+	{"ne .NegOne .Uthree", "true", true},
+	{"ne .Uthree .NegOne", "true", true},
+	{"lt .NegOne .Uthree", "true", true},
+	{"lt .Uthree .NegOne", "false", true},
+	{"le .NegOne .Uthree", "true", true},
+	{"le .Uthree .NegOne", "false", true},
+	{"gt .NegOne .Uthree", "false", true},
+	{"gt .Uthree .NegOne", "true", true},
+	{"ge .NegOne .Uthree", "false", true},
+	{"ge .Uthree .NegOne", "true", true},
+	{"eq (index `x` 0) 'x'", "true", true}, // The example that triggered this rule.
+	{"eq (index `x` 0) 'y'", "false", true},
+	{"eq .V1 .V2", "true", true},
+	{"eq .Ptr .Ptr", "true", true},
+	{"eq .Ptr .NilPtr", "false", true},
+	{"eq .NilPtr .NilPtr", "true", true},
+	{"eq .Iface1 .Iface1", "true", true},
+	{"eq .Iface1 .Iface2", "false", true},
+	{"eq .Iface2 .Iface2", "true", true},
+	// 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.
+}
+
+func TestComparison(t *testing.T) {
+	b := new(bytes.Buffer)
+	var cmpStruct = struct {
+		Uthree, Ufour  uint
+		NegOne, Three  int
+		Ptr, NilPtr    *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,
+	}
+	for _, test := range cmpTests {
+		text := fmt.Sprintf("{{if %s}}true{{else}}false{{end}}", test.expr)
+		tmpl, err := New("empty").Parse(text)
+		if err != nil {
+			t.Fatalf("%q: %s", test.expr, err)
+		}
+		b.Reset()
+		err = tmpl.Execute(b, &cmpStruct)
+		if test.ok && err != nil {
+			t.Errorf("%s errored incorrectly: %s", test.expr, err)
+			continue
+		}
+		if !test.ok && err == nil {
+			t.Errorf("%s did not error", test.expr)
+			continue
+		}
+		if b.String() != test.truth {
+			t.Errorf("%s: want %s; got %s", test.expr, test.truth, b.String())
+		}
+	}
+}
+
+func TestMissingMapKey(t *testing.T) {
+	data := map[string]int{
+		"x": 99,
+	}
+	tmpl, err := New("t1").Parse("{{.x}} {{.y}}")
+	if err != nil {
+		t.Fatal(err)
+	}
+	var b bytes.Buffer
+	// By default, just get "<no value>" // NOTE: not in html/template, get empty string
+	err = tmpl.Execute(&b, data)
+	if err != nil {
+		t.Fatal(err)
+	}
+	want := "99 "
+	got := b.String()
+	if got != want {
+		t.Errorf("got %q; expected %q", got, want)
+	}
+	// Same if we set the option explicitly to the default.
+	tmpl.Option("missingkey=default")
+	b.Reset()
+	err = tmpl.Execute(&b, data)
+	if err != nil {
+		t.Fatal("default:", err)
+	}
+	got = b.String()
+	if got != want {
+		t.Errorf("got %q; expected %q", got, want)
+	}
+	// Next we ask for a zero value
+	tmpl.Option("missingkey=zero")
+	b.Reset()
+	err = tmpl.Execute(&b, data)
+	if err != nil {
+		t.Fatal("zero:", err)
+	}
+	want = "99 0"
+	got = b.String()
+	if got != want {
+		t.Errorf("got %q; expected %q", got, want)
+	}
+	// Now we ask for an error.
+	tmpl.Option("missingkey=error")
+	err = tmpl.Execute(&b, data)
+	if err == nil {
+		t.Errorf("expected error; got none")
+	}
+	// same Option, but now a nil interface: ask for an error
+	err = tmpl.Execute(&b, nil)
+	t.Log(err)
+	if err == nil {
+		t.Errorf("expected error for nil-interface; got none")
+	}
+}
+
+// Test that the error message for multiline unterminated string
+// refers to the line number of the opening quote.
+func TestUnterminatedStringError(t *testing.T) {
+	_, err := New("X").Parse("hello\n\n{{`unterminated\n\n\n\n}}\n some more\n\n")
+	if err == nil {
+		t.Fatal("expected error")
+	}
+	str := err.Error()
+	if !strings.Contains(str, "X:3: unterminated raw quoted string") {
+		t.Fatalf("unexpected error: %s", str)
+	}
+}
+
+const alwaysErrorText = "always be failing"
+
+var alwaysError = errors.New(alwaysErrorText)
+
+type ErrorWriter int
+
+func (e ErrorWriter) Write(p []byte) (int, error) {
+	return 0, alwaysError
+}
+
+func TestExecuteGivesExecError(t *testing.T) {
+	// First, a non-execution error shouldn't be an ExecError.
+	tmpl, err := New("X").Parse("hello")
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = tmpl.Execute(ErrorWriter(0), 0)
+	if err == nil {
+		t.Fatal("expected error; got none")
+	}
+	if err.Error() != alwaysErrorText {
+		t.Errorf("expected %q error; got %q", alwaysErrorText, err)
+	}
+	// This one should be an ExecError.
+	tmpl, err = New("X").Parse("hello, {{.X.Y}}")
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = tmpl.Execute(ioutil.Discard, 0)
+	if err == nil {
+		t.Fatal("expected error; got none")
+	}
+	eerr, ok := err.(template.ExecError)
+	if !ok {
+		t.Fatalf("did not expect ExecError %s", eerr)
+	}
+	expect := "field X in type int"
+	if !strings.Contains(err.Error(), expect) {
+		t.Errorf("expected %q; got %q", expect, err)
+	}
+}
+
+func funcNameTestFunc() int {
+	return 0
+}
+
+func TestGoodFuncNames(t *testing.T) {
+	names := []string{
+		"_",
+		"a",
+		"a1",
+		"a1",
+		"Ӵ",
+	}
+	for _, name := range names {
+		tmpl := New("X").Funcs(
+			FuncMap{
+				name: funcNameTestFunc,
+			},
+		)
+		if tmpl == nil {
+			t.Fatalf("nil result for %q", name)
+		}
+	}
+}
+
+func TestBadFuncNames(t *testing.T) {
+	names := []string{
+		"",
+		"2",
+		"a-b",
+	}
+	for _, name := range names {
+		testBadFuncName(name, t)
+	}
+}
+
+func testBadFuncName(name string, t *testing.T) {
+	t.Helper()
+	defer func() {
+		recover()
+	}()
+	New("X").Funcs(
+		FuncMap{
+			name: funcNameTestFunc,
+		},
+	)
+	// If we get here, the name did not cause a panic, which is how Funcs
+	// reports an error.
+	t.Errorf("%q succeeded incorrectly as function name", name)
+}
+
+func TestBlock(t *testing.T) {
+	const (
+		input   = `a({{block "inner" .}}bar({{.}})baz{{end}})b`
+		want    = `a(bar(hello)baz)b`
+		overlay = `{{define "inner"}}foo({{.}})bar{{end}}`
+		want2   = `a(foo(goodbye)bar)b`
+	)
+	tmpl, err := New("outer").Parse(input)
+	if err != nil {
+		t.Fatal(err)
+	}
+	tmpl2, err := Must(tmpl.Clone()).Parse(overlay)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	var buf bytes.Buffer
+	if err := tmpl.Execute(&buf, "hello"); err != nil {
+		t.Fatal(err)
+	}
+	if got := buf.String(); got != want {
+		t.Errorf("got %q, want %q", got, want)
+	}
+
+	buf.Reset()
+	if err := tmpl2.Execute(&buf, "goodbye"); err != nil {
+		t.Fatal(err)
+	}
+	if got := buf.String(); got != want2 {
+		t.Errorf("got %q, want %q", got, want2)
+	}
+}
+
+func TestEvalFieldErrors(t *testing.T) {
+	tests := []struct {
+		name, src string
+		value     interface{}
+		want      string
+	}{
+		{
+			// Check that calling an invalid field on nil pointer
+			// prints a field error instead of a distracting nil
+			// pointer error. https://golang.org/issue/15125
+			"MissingFieldOnNil",
+			"{{.MissingField}}",
+			(*T)(nil),
+			"can't evaluate field MissingField in type *template.T",
+		},
+		{
+			"MissingFieldOnNonNil",
+			"{{.MissingField}}",
+			&T{},
+			"can't evaluate field MissingField in type *template.T",
+		},
+		{
+			"ExistingFieldOnNil",
+			"{{.X}}",
+			(*T)(nil),
+			"nil pointer evaluating *template.T.X",
+		},
+		{
+			"MissingKeyOnNilMap",
+			"{{.MissingKey}}",
+			(*map[string]string)(nil),
+			"nil pointer evaluating *map[string]string.MissingKey",
+		},
+		{
+			"MissingKeyOnNilMapPtr",
+			"{{.MissingKey}}",
+			(*map[string]string)(nil),
+			"nil pointer evaluating *map[string]string.MissingKey",
+		},
+		{
+			"MissingKeyOnMapPtrToNil",
+			"{{.MissingKey}}",
+			&map[string]string{},
+			"<nil>",
+		},
+	}
+	for _, tc := range tests {
+		t.Run(tc.name, func(t *testing.T) {
+			tmpl := Must(New("tmpl").Parse(tc.src))
+			err := tmpl.Execute(ioutil.Discard, tc.value)
+			got := "<nil>"
+			if err != nil {
+				got = err.Error()
+			}
+			if !strings.HasSuffix(got, tc.want) {
+				t.Fatalf("got error %q, want %q", got, tc.want)
+			}
+		})
+	}
+}
+
+func TestMaxExecDepth(t *testing.T) {
+	if testing.Short() {
+		t.Skip("skipping in -short mode")
+	}
+	tmpl := Must(New("tmpl").Parse(`{{template "tmpl" .}}`))
+	err := tmpl.Execute(ioutil.Discard, nil)
+	got := "<nil>"
+	if err != nil {
+		got = err.Error()
+	}
+	const want = "exceeded maximum template depth"
+	if !strings.Contains(got, want) {
+		t.Errorf("got error %q; want %q", got, want)
+	}
+}
+
+func TestAddrOfIndex(t *testing.T) {
+	// golang.org/issue/14916.
+	// Before index worked on reflect.Values, the .String could not be
+	// found on the (incorrectly unaddressable) V value,
+	// in contrast to range, which worked fine.
+	// Also testing that passing a reflect.Value to tmpl.Execute works.
+	texts := []string{
+		`{{range .}}{{.String}}{{end}}`,
+		`{{with index . 0}}{{.String}}{{end}}`,
+	}
+	for _, text := range texts {
+		tmpl := Must(New("tmpl").Parse(text))
+		var buf bytes.Buffer
+		err := tmpl.Execute(&buf, reflect.ValueOf([]V{{1}}))
+		if err != nil {
+			t.Fatalf("%s: Execute: %v", text, err)
+		}
+		if buf.String() != "&lt;1&gt;" {
+			t.Fatalf("%s: template output = %q, want %q", text, &buf, "&lt;1&gt;")
+		}
+	}
+}
+
+func TestInterfaceValues(t *testing.T) {
+	// golang.org/issue/17714.
+	// Before index worked on reflect.Values, interface values
+	// were always implicitly promoted to the underlying value,
+	// except that nil interfaces were promoted to the zero reflect.Value.
+	// Eliminating a round trip to interface{} and back to reflect.Value
+	// eliminated this promotion, breaking these cases.
+	tests := []struct {
+		text string
+		out  string
+	}{
+		{`{{index .Nil 1}}`, "ERROR: index of untyped nil"},
+		{`{{index .Slice 2}}`, "2"},
+		{`{{index .Slice .Two}}`, "2"},
+		{`{{call .Nil 1}}`, "ERROR: call of nil"},
+		{`{{call .PlusOne 1}}`, "2"},
+		{`{{call .PlusOne .One}}`, "2"},
+		{`{{and (index .Slice 0) true}}`, "0"},
+		{`{{and .Zero true}}`, "0"},
+		{`{{and (index .Slice 1) false}}`, "false"},
+		{`{{and .One false}}`, "false"},
+		{`{{or (index .Slice 0) false}}`, "false"},
+		{`{{or .Zero false}}`, "false"},
+		{`{{or (index .Slice 1) true}}`, "1"},
+		{`{{or .One true}}`, "1"},
+		{`{{not (index .Slice 0)}}`, "true"},
+		{`{{not .Zero}}`, "true"},
+		{`{{not (index .Slice 1)}}`, "false"},
+		{`{{not .One}}`, "false"},
+		{`{{eq (index .Slice 0) .Zero}}`, "true"},
+		{`{{eq (index .Slice 1) .One}}`, "true"},
+		{`{{ne (index .Slice 0) .Zero}}`, "false"},
+		{`{{ne (index .Slice 1) .One}}`, "false"},
+		{`{{ge (index .Slice 0) .One}}`, "false"},
+		{`{{ge (index .Slice 1) .Zero}}`, "true"},
+		{`{{gt (index .Slice 0) .One}}`, "false"},
+		{`{{gt (index .Slice 1) .Zero}}`, "true"},
+		{`{{le (index .Slice 0) .One}}`, "true"},
+		{`{{le (index .Slice 1) .Zero}}`, "false"},
+		{`{{lt (index .Slice 0) .One}}`, "true"},
+		{`{{lt (index .Slice 1) .Zero}}`, "false"},
+	}
+
+	for _, tt := range tests {
+		tmpl := Must(New("tmpl").Parse(tt.text))
+		var buf bytes.Buffer
+		err := tmpl.Execute(&buf, map[string]interface{}{
+			"PlusOne": func(n int) int {
+				return n + 1
+			},
+			"Slice": []int{0, 1, 2, 3},
+			"One":   1,
+			"Two":   2,
+			"Nil":   nil,
+			"Zero":  0,
+		})
+		if strings.HasPrefix(tt.out, "ERROR:") {
+			e := strings.TrimSpace(strings.TrimPrefix(tt.out, "ERROR:"))
+			if err == nil || !strings.Contains(err.Error(), e) {
+				t.Errorf("%s: Execute: %v, want error %q", tt.text, err, e)
+			}
+			continue
+		}
+		if err != nil {
+			t.Errorf("%s: Execute: %v", tt.text, err)
+			continue
+		}
+		if buf.String() != tt.out {
+			t.Errorf("%s: template output = %q, want %q", tt.text, &buf, tt.out)
+		}
+	}
+}
+
+// Check that panics during calls are recovered and returned as errors.
+func TestExecutePanicDuringCall(t *testing.T) {
+	funcs := map[string]interface{}{
+		"doPanic": func() string {
+			panic("custom panic string")
+		},
+	}
+	tests := []struct {
+		name    string
+		input   string
+		data    interface{}
+		wantErr string
+	}{
+		{
+			"direct func call panics",
+			"{{doPanic}}", (*T)(nil),
+			`template: t:1:2: executing "t" at <doPanic>: error calling doPanic: custom panic string`,
+		},
+		{
+			"indirect func call panics",
+			"{{call doPanic}}", (*T)(nil),
+			`template: t:1:7: executing "t" at <doPanic>: error calling doPanic: custom panic string`,
+		},
+		{
+			"direct method call panics",
+			"{{.GetU}}", (*T)(nil),
+			`template: t:1:2: executing "t" at <.GetU>: error calling GetU: runtime error: invalid memory address or nil pointer dereference`,
+		},
+		{
+			"indirect method call panics",
+			"{{call .GetU}}", (*T)(nil),
+			`template: t:1:7: executing "t" at <.GetU>: error calling GetU: runtime error: invalid memory address or nil pointer dereference`,
+		},
+		{
+			"func field call panics",
+			"{{call .PanicFunc}}", tVal,
+			`template: t:1:2: executing "t" at <call .PanicFunc>: error calling call: test panic`,
+		},
+		{
+			"method call on nil interface",
+			"{{.NonEmptyInterfaceNil.Method0}}", tVal,
+			`template: t:1:23: executing "t" at <.NonEmptyInterfaceNil.Method0>: nil pointer evaluating template.I.Method0`,
+		},
+	}
+	for _, tc := range tests {
+		b := new(bytes.Buffer)
+		tmpl, err := New("t").Funcs(funcs).Parse(tc.input)
+		if err != nil {
+			t.Fatalf("parse error: %s", err)
+		}
+		err = tmpl.Execute(b, tc.data)
+		if err == nil {
+			t.Errorf("%s: expected error; got none", tc.name)
+		} else if !strings.Contains(err.Error(), tc.wantErr) {
+			if *debug {
+				fmt.Printf("%s: test execute error: %s\n", tc.name, err)
+			}
+			t.Errorf("%s: expected error:\n%s\ngot:\n%s", tc.name, tc.wantErr, err)
+		}
+	}
+}
+
+// Issue 31810. Check that a parenthesized first argument behaves properly.
+func TestIssue31810(t *testing.T) {
+	t.Skip("broken in html/template")
+
+	// A simple value with no arguments is fine.
+	var b bytes.Buffer
+	const text = "{{ (.)  }}"
+	tmpl, err := New("").Parse(text)
+	if err != nil {
+		t.Error(err)
+	}
+	err = tmpl.Execute(&b, "result")
+	if err != nil {
+		t.Error(err)
+	}
+	if b.String() != "result" {
+		t.Errorf("%s got %q, expected %q", text, b.String(), "result")
+	}
+
+	// Even a plain function fails - need to use call.
+	f := func() string { return "result" }
+	b.Reset()
+	err = tmpl.Execute(&b, f)
+	if err == nil {
+		t.Error("expected error with no call, got none")
+	}
+
+	// Works if the function is explicitly called.
+	const textCall = "{{ (call .)  }}"
+	tmpl, err = New("").Parse(textCall)
+	b.Reset()
+	err = tmpl.Execute(&b, f)
+	if err != nil {
+		t.Error(err)
+	}
+	if b.String() != "result" {
+		t.Errorf("%s got %q, expected %q", textCall, b.String(), "result")
+	}
+}
+
+// Issue 39807. There was a race applying escapeTemplate.
+
+const raceText = `
+{{- define "jstempl" -}}
+var v = "v";
+{{- end -}}
+<script type="application/javascript">
+{{ template "jstempl" $ }}
+</script>
+`
+
+func TestEscapeRace(t *testing.T) {
+	tmpl := New("")
+	_, err := tmpl.New("templ.html").Parse(raceText)
+	if err != nil {
+		t.Fatal(err)
+	}
+	const count = 20
+	for i := 0; i < count; i++ {
+		_, err := tmpl.New(fmt.Sprintf("x%d.html", i)).Parse(`{{ template "templ.html" .}}`)
+		if err != nil {
+			t.Fatal(err)
+		}
+	}
+
+	var wg sync.WaitGroup
+	for i := 0; i < 10; i++ {
+		wg.Add(1)
+		go func() {
+			defer wg.Done()
+			for j := 0; j < count; j++ {
+				sub := tmpl.Lookup(fmt.Sprintf("x%d.html", j))
+				if err := sub.Execute(ioutil.Discard, nil); err != nil {
+					t.Error(err)
+				}
+			}
+		}()
+	}
+	wg.Wait()
+}
+
+func TestRecursiveExecute(t *testing.T) {
+	tmpl := New("")
+
+	recur := func() (HTML, error) {
+		var sb strings.Builder
+		if err := tmpl.ExecuteTemplate(&sb, "subroutine", nil); err != nil {
+			t.Fatal(err)
+		}
+		return HTML(sb.String()), nil
+	}
+
+	m := FuncMap{
+		"recur": recur,
+	}
+
+	top, err := tmpl.New("x.html").Funcs(m).Parse(`{{recur}}`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	_, err = tmpl.New("subroutine").Parse(`<a href="/x?p={{"'a<b'"}}">`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if err := top.Execute(ioutil.Discard, nil); err != nil {
+		t.Fatal(err)
+	}
+}
+
+// recursiveInvoker is for TestRecursiveExecuteViaMethod.
+type recursiveInvoker struct {
+	t    *testing.T
+	tmpl *Template
+}
+
+func (r *recursiveInvoker) Recur() (string, error) {
+	var sb strings.Builder
+	if err := r.tmpl.ExecuteTemplate(&sb, "subroutine", nil); err != nil {
+		r.t.Fatal(err)
+	}
+	return sb.String(), nil
+}
+
+func TestRecursiveExecuteViaMethod(t *testing.T) {
+	tmpl := New("")
+	top, err := tmpl.New("x.html").Parse(`{{.Recur}}`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	_, err = tmpl.New("subroutine").Parse(`<a href="/x?p={{"'a<b'"}}">`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	r := &recursiveInvoker{
+		t:    t,
+		tmpl: tmpl,
+	}
+	if err := top.Execute(ioutil.Discard, r); err != nil {
+		t.Fatal(err)
+	}
+}
+
+// Issue 43295.
+func TestTemplateFuncsAfterClone(t *testing.T) {
+	s := `{{ f . }}`
+	want := "test"
+	orig := New("orig").Funcs(map[string]interface{}{
+		"f": func(in string) string {
+			return in
+		},
+	}).New("child")
+
+	overviewTmpl := Must(Must(orig.Clone()).Parse(s))
+	var out strings.Builder
+	if err := overviewTmpl.Execute(&out, want); err != nil {
+		t.Fatal(err)
+	}
+	if got := out.String(); got != want {
+		t.Fatalf("got %q; want %q", got, want)
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/html.go b/go.dev/cmd/internal/html/template/html.go
new file mode 100644
index 0000000..356b829
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/html.go
@@ -0,0 +1,265 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"fmt"
+	"strings"
+	"unicode/utf8"
+)
+
+// htmlNospaceEscaper escapes for inclusion in unquoted attribute values.
+func htmlNospaceEscaper(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeHTML {
+		return htmlReplacer(stripTags(s), htmlNospaceNormReplacementTable, false)
+	}
+	return htmlReplacer(s, htmlNospaceReplacementTable, false)
+}
+
+// attrEscaper escapes for inclusion in quoted attribute values.
+func attrEscaper(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeHTML {
+		return htmlReplacer(stripTags(s), htmlNormReplacementTable, true)
+	}
+	return htmlReplacer(s, htmlReplacementTable, true)
+}
+
+// rcdataEscaper escapes for inclusion in an RCDATA element body.
+func rcdataEscaper(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeHTML {
+		return htmlReplacer(s, htmlNormReplacementTable, true)
+	}
+	return htmlReplacer(s, htmlReplacementTable, true)
+}
+
+// htmlEscaper escapes for inclusion in HTML text.
+func htmlEscaper(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeHTML {
+		return s
+	}
+	return htmlReplacer(s, htmlReplacementTable, true)
+}
+
+// htmlReplacementTable contains the runes that need to be escaped
+// inside a quoted attribute value or in a text node.
+var htmlReplacementTable = []string{
+	// https://www.w3.org/TR/html5/syntax.html#attribute-value-(unquoted)-state
+	// U+0000 NULL Parse error. Append a U+FFFD REPLACEMENT
+	// CHARACTER character to the current attribute's value.
+	// "
+	// and similarly
+	// https://www.w3.org/TR/html5/syntax.html#before-attribute-value-state
+	0:    "\uFFFD",
+	'"':  "&#34;",
+	'&':  "&amp;",
+	'\'': "&#39;",
+	'+':  "&#43;",
+	'<':  "&lt;",
+	'>':  "&gt;",
+}
+
+// htmlNormReplacementTable is like htmlReplacementTable but without '&' to
+// avoid over-encoding existing entities.
+var htmlNormReplacementTable = []string{
+	0:    "\uFFFD",
+	'"':  "&#34;",
+	'\'': "&#39;",
+	'+':  "&#43;",
+	'<':  "&lt;",
+	'>':  "&gt;",
+}
+
+// htmlNospaceReplacementTable contains the runes that need to be escaped
+// inside an unquoted attribute value.
+// The set of runes escaped is the union of the HTML specials and
+// those determined by running the JS below in browsers:
+// <div id=d></div>
+// <script>(function () {
+// var a = [], d = document.getElementById("d"), i, c, s;
+// for (i = 0; i < 0x10000; ++i) {
+//   c = String.fromCharCode(i);
+//   d.innerHTML = "<span title=" + c + "lt" + c + "></span>"
+//   s = d.getElementsByTagName("SPAN")[0];
+//   if (!s || s.title !== c + "lt" + c) { a.push(i.toString(16)); }
+// }
+// document.write(a.join(", "));
+// })()</script>
+var htmlNospaceReplacementTable = []string{
+	0:    "&#xfffd;",
+	'\t': "&#9;",
+	'\n': "&#10;",
+	'\v': "&#11;",
+	'\f': "&#12;",
+	'\r': "&#13;",
+	' ':  "&#32;",
+	'"':  "&#34;",
+	'&':  "&amp;",
+	'\'': "&#39;",
+	'+':  "&#43;",
+	'<':  "&lt;",
+	'=':  "&#61;",
+	'>':  "&gt;",
+	// A parse error in the attribute value (unquoted) and
+	// before attribute value states.
+	// Treated as a quoting character by IE.
+	'`': "&#96;",
+}
+
+// htmlNospaceNormReplacementTable is like htmlNospaceReplacementTable but
+// without '&' to avoid over-encoding existing entities.
+var htmlNospaceNormReplacementTable = []string{
+	0:    "&#xfffd;",
+	'\t': "&#9;",
+	'\n': "&#10;",
+	'\v': "&#11;",
+	'\f': "&#12;",
+	'\r': "&#13;",
+	' ':  "&#32;",
+	'"':  "&#34;",
+	'\'': "&#39;",
+	'+':  "&#43;",
+	'<':  "&lt;",
+	'=':  "&#61;",
+	'>':  "&gt;",
+	// A parse error in the attribute value (unquoted) and
+	// before attribute value states.
+	// Treated as a quoting character by IE.
+	'`': "&#96;",
+}
+
+// htmlReplacer returns s with runes replaced according to replacementTable
+// and when badRunes is true, certain bad runes are allowed through unescaped.
+func htmlReplacer(s string, replacementTable []string, badRunes bool) string {
+	written, b := 0, new(strings.Builder)
+	r, w := rune(0), 0
+	for i := 0; i < len(s); i += w {
+		// Cannot use 'for range s' because we need to preserve the width
+		// of the runes in the input. If we see a decoding error, the input
+		// width will not be utf8.Runelen(r) and we will overrun the buffer.
+		r, w = utf8.DecodeRuneInString(s[i:])
+		if int(r) < len(replacementTable) {
+			if repl := replacementTable[r]; len(repl) != 0 {
+				if written == 0 {
+					b.Grow(len(s))
+				}
+				b.WriteString(s[written:i])
+				b.WriteString(repl)
+				written = i + w
+			}
+		} else if badRunes {
+			// No-op.
+			// IE does not allow these ranges in unquoted attrs.
+		} else if 0xfdd0 <= r && r <= 0xfdef || 0xfff0 <= r && r <= 0xffff {
+			if written == 0 {
+				b.Grow(len(s))
+			}
+			fmt.Fprintf(b, "%s&#x%x;", s[written:i], r)
+			written = i + w
+		}
+	}
+	if written == 0 {
+		return s
+	}
+	b.WriteString(s[written:])
+	return b.String()
+}
+
+// stripTags takes a snippet of HTML and returns only the text content.
+// For example, `<b>&iexcl;Hi!</b> <script>...</script>` -> `&iexcl;Hi! `.
+func stripTags(html string) string {
+	var b bytes.Buffer
+	s, c, i, allText := []byte(html), context{}, 0, true
+	// Using the transition funcs helps us avoid mangling
+	// `<div title="1>2">` or `I <3 Ponies!`.
+	for i != len(s) {
+		if c.delim == delimNone {
+			st := c.state
+			// Use RCDATA instead of parsing into JS or CSS styles.
+			if c.element != elementNone && !isInTag(st) {
+				st = stateRCDATA
+			}
+			d, nread := transitionFunc[st](c, s[i:])
+			i1 := i + nread
+			if c.state == stateText || c.state == stateRCDATA {
+				// Emit text up to the start of the tag or comment.
+				j := i1
+				if d.state != c.state {
+					for j1 := j - 1; j1 >= i; j1-- {
+						if s[j1] == '<' {
+							j = j1
+							break
+						}
+					}
+				}
+				b.Write(s[i:j])
+			} else {
+				allText = false
+			}
+			c, i = d, i1
+			continue
+		}
+		i1 := i + bytes.IndexAny(s[i:], delimEnds[c.delim])
+		if i1 < i {
+			break
+		}
+		if c.delim != delimSpaceOrTagEnd {
+			// Consume any quote.
+			i1++
+		}
+		c, i = context{state: stateTag, element: c.element}, i1
+	}
+	if allText {
+		return html
+	} else if c.state == stateText || c.state == stateRCDATA {
+		b.Write(s[i:])
+	}
+	return b.String()
+}
+
+// htmlNameFilter accepts valid parts of an HTML attribute or tag name or
+// a known-safe HTML attribute.
+func htmlNameFilter(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeHTMLAttr {
+		return s
+	}
+	if len(s) == 0 {
+		// Avoid violation of structure preservation.
+		// <input checked {{.K}}={{.V}}>.
+		// Without this, if .K is empty then .V is the value of
+		// checked, but otherwise .V is the value of the attribute
+		// named .K.
+		return filterFailsafe
+	}
+	s = strings.ToLower(s)
+	if t := attrType(s); t != contentTypePlain {
+		// TODO: Split attr and element name part filters so we can recognize known attributes.
+		return filterFailsafe
+	}
+	for _, r := range s {
+		switch {
+		case '0' <= r && r <= '9':
+		case 'a' <= r && r <= 'z':
+		default:
+			return filterFailsafe
+		}
+	}
+	return s
+}
+
+// commentEscaper returns the empty string regardless of input.
+// Comment content does not correspond to any parsed structure or
+// human-readable content, so the simplest and most secure policy is to drop
+// content interpolated into comments.
+// This approach is equally valid whether or not static comment content is
+// removed from the template.
+func commentEscaper(args ...interface{}) string {
+	return ""
+}
diff --git a/go.dev/cmd/internal/html/template/html_test.go b/go.dev/cmd/internal/html/template/html_test.go
new file mode 100644
index 0000000..f04ee04
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/html_test.go
@@ -0,0 +1,97 @@
+// Copyright 2011 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 template
+
+import (
+	"html"
+	"strings"
+	"testing"
+)
+
+func TestHTMLNospaceEscaper(t *testing.T) {
+	input := ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f" +
+		"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+		` !"#$%&'()*+,-./` +
+		`0123456789:;<=>?` +
+		`@ABCDEFGHIJKLMNO` +
+		`PQRSTUVWXYZ[\]^_` +
+		"`abcdefghijklmno" +
+		"pqrstuvwxyz{|}~\x7f" +
+		"\u00A0\u0100\u2028\u2029\ufeff\ufdec\U0001D11E" +
+		"erroneous\x960") // keep at the end
+
+	want := ("&#xfffd;\x01\x02\x03\x04\x05\x06\x07" +
+		"\x08&#9;&#10;&#11;&#12;&#13;\x0E\x0F" +
+		"\x10\x11\x12\x13\x14\x15\x16\x17" +
+		"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+		`&#32;!&#34;#$%&amp;&#39;()*&#43;,-./` +
+		`0123456789:;&lt;&#61;&gt;?` +
+		`@ABCDEFGHIJKLMNO` +
+		`PQRSTUVWXYZ[\]^_` +
+		`&#96;abcdefghijklmno` +
+		`pqrstuvwxyz{|}~` + "\u007f" +
+		"\u00A0\u0100\u2028\u2029\ufeff&#xfdec;\U0001D11E" +
+		"erroneous&#xfffd;0") // keep at the end
+
+	got := htmlNospaceEscaper(input)
+	if got != want {
+		t.Errorf("encode: want\n\t%q\nbut got\n\t%q", want, got)
+	}
+
+	r := strings.NewReplacer("\x00", "\ufffd", "\x96", "\ufffd")
+	got, want = html.UnescapeString(got), r.Replace(input)
+	if want != got {
+		t.Errorf("decode: want\n\t%q\nbut got\n\t%q", want, got)
+	}
+}
+
+func TestStripTags(t *testing.T) {
+	tests := []struct {
+		input, want string
+	}{
+		{"", ""},
+		{"Hello, World!", "Hello, World!"},
+		{"foo&amp;bar", "foo&amp;bar"},
+		{`Hello <a href="www.example.com/">World</a>!`, "Hello World!"},
+		{"Foo <textarea>Bar</textarea> Baz", "Foo Bar Baz"},
+		{"Foo <!-- Bar --> Baz", "Foo  Baz"},
+		{"<", "<"},
+		{"foo < bar", "foo < bar"},
+		{`Foo<script type="text/javascript">alert(1337)</script>Bar`, "FooBar"},
+		{`Foo<div title="1>2">Bar`, "FooBar"},
+		{`I <3 Ponies!`, `I <3 Ponies!`},
+		{`<script>foo()</script>`, ``},
+	}
+
+	for _, test := range tests {
+		if got := stripTags(test.input); got != test.want {
+			t.Errorf("%q: want %q, got %q", test.input, test.want, got)
+		}
+	}
+}
+
+func BenchmarkHTMLNospaceEscaper(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		htmlNospaceEscaper("The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>")
+	}
+}
+
+func BenchmarkHTMLNospaceEscaperNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		htmlNospaceEscaper("The_quick,_brown_fox_jumps_over_the_lazy_dog.")
+	}
+}
+
+func BenchmarkStripTags(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		stripTags("The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>")
+	}
+}
+
+func BenchmarkStripTagsNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		stripTags("The quick, brown fox jumps over the lazy dog.")
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/js.go b/go.dev/cmd/internal/html/template/js.go
new file mode 100644
index 0000000..ea9c183
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/js.go
@@ -0,0 +1,431 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"encoding/json"
+	"fmt"
+	"reflect"
+	"strings"
+	"unicode/utf8"
+)
+
+// nextJSCtx returns the context that determines whether a slash after the
+// given run of tokens starts a regular expression instead of a division
+// operator: / or /=.
+//
+// This assumes that the token run does not include any string tokens, comment
+// tokens, regular expression literal tokens, or division operators.
+//
+// This fails on some valid but nonsensical JavaScript programs like
+// "x = ++/foo/i" which is quite different than "x++/foo/i", but is not known to
+// fail on any known useful programs. It is based on the draft
+// JavaScript 2.0 lexical grammar and requires one token of lookbehind:
+// https://www.mozilla.org/js/language/js20-2000-07/rationale/syntax.html
+func nextJSCtx(s []byte, preceding jsCtx) jsCtx {
+	s = bytes.TrimRight(s, "\t\n\f\r \u2028\u2029")
+	if len(s) == 0 {
+		return preceding
+	}
+
+	// All cases below are in the single-byte UTF-8 group.
+	switch c, n := s[len(s)-1], len(s); c {
+	case '+', '-':
+		// ++ and -- are not regexp preceders, but + and - are whether
+		// they are used as infix or prefix operators.
+		start := n - 1
+		// Count the number of adjacent dashes or pluses.
+		for start > 0 && s[start-1] == c {
+			start--
+		}
+		if (n-start)&1 == 1 {
+			// Reached for trailing minus signs since "---" is the
+			// same as "-- -".
+			return jsCtxRegexp
+		}
+		return jsCtxDivOp
+	case '.':
+		// Handle "42."
+		if n != 1 && '0' <= s[n-2] && s[n-2] <= '9' {
+			return jsCtxDivOp
+		}
+		return jsCtxRegexp
+	// Suffixes for all punctuators from section 7.7 of the language spec
+	// that only end binary operators not handled above.
+	case ',', '<', '>', '=', '*', '%', '&', '|', '^', '?':
+		return jsCtxRegexp
+	// Suffixes for all punctuators from section 7.7 of the language spec
+	// that are prefix operators not handled above.
+	case '!', '~':
+		return jsCtxRegexp
+	// Matches all the punctuators from section 7.7 of the language spec
+	// that are open brackets not handled above.
+	case '(', '[':
+		return jsCtxRegexp
+	// Matches all the punctuators from section 7.7 of the language spec
+	// that precede expression starts.
+	case ':', ';', '{':
+		return jsCtxRegexp
+	// CAVEAT: the close punctuators ('}', ']', ')') precede div ops and
+	// are handled in the default except for '}' which can precede a
+	// division op as in
+	//    ({ valueOf: function () { return 42 } } / 2
+	// which is valid, but, in practice, developers don't divide object
+	// literals, so our heuristic works well for code like
+	//    function () { ... }  /foo/.test(x) && sideEffect();
+	// The ')' punctuator can precede a regular expression as in
+	//     if (b) /foo/.test(x) && ...
+	// but this is much less likely than
+	//     (a + b) / c
+	case '}':
+		return jsCtxRegexp
+	default:
+		// Look for an IdentifierName and see if it is a keyword that
+		// can precede a regular expression.
+		j := n
+		for j > 0 && isJSIdentPart(rune(s[j-1])) {
+			j--
+		}
+		if regexpPrecederKeywords[string(s[j:])] {
+			return jsCtxRegexp
+		}
+	}
+	// Otherwise is a punctuator not listed above, or
+	// a string which precedes a div op, or an identifier
+	// which precedes a div op.
+	return jsCtxDivOp
+}
+
+// regexpPrecederKeywords is a set of reserved JS keywords that can precede a
+// regular expression in JS source.
+var regexpPrecederKeywords = map[string]bool{
+	"break":      true,
+	"case":       true,
+	"continue":   true,
+	"delete":     true,
+	"do":         true,
+	"else":       true,
+	"finally":    true,
+	"in":         true,
+	"instanceof": true,
+	"return":     true,
+	"throw":      true,
+	"try":        true,
+	"typeof":     true,
+	"void":       true,
+}
+
+var jsonMarshalType = reflect.TypeOf((*json.Marshaler)(nil)).Elem()
+
+// indirectToJSONMarshaler returns the value, after dereferencing as many times
+// as necessary to reach the base type (or nil) or an implementation of json.Marshal.
+func indirectToJSONMarshaler(a interface{}) interface{} {
+	// text/template now supports passing untyped nil as a func call
+	// argument, so we must support it. Otherwise we'd panic below, as one
+	// cannot call the Type or Interface methods on an invalid
+	// reflect.Value. See golang.org/issue/18716.
+	if a == nil {
+		return nil
+	}
+
+	v := reflect.ValueOf(a)
+	for !v.Type().Implements(jsonMarshalType) && v.Kind() == reflect.Ptr && !v.IsNil() {
+		v = v.Elem()
+	}
+	return v.Interface()
+}
+
+// jsValEscaper escapes its inputs to a JS Expression (section 11.14) that has
+// neither side-effects nor free variables outside (NaN, Infinity).
+func jsValEscaper(args ...interface{}) string {
+	var a interface{}
+	if len(args) == 1 {
+		a = indirectToJSONMarshaler(args[0])
+		switch t := a.(type) {
+		case JS:
+			return string(t)
+		case JSStr:
+			// TODO: normalize quotes.
+			return `"` + string(t) + `"`
+		case json.Marshaler:
+			// Do not treat as a Stringer.
+		case fmt.Stringer:
+			a = t.String()
+		}
+	} else {
+		for i, arg := range args {
+			args[i] = indirectToJSONMarshaler(arg)
+		}
+		a = fmt.Sprint(args...)
+	}
+	// TODO: detect cycles before calling Marshal which loops infinitely on
+	// cyclic data. This may be an unacceptable DoS risk.
+	b, err := json.Marshal(a)
+	if err != nil {
+		// Put a space before comment so that if it is flush against
+		// a division operator it is not turned into a line comment:
+		//     x/{{y}}
+		// turning into
+		//     x//* error marshaling y:
+		//          second line of error message */null
+		return fmt.Sprintf(" /* %s */null ", strings.ReplaceAll(err.Error(), "*/", "* /"))
+	}
+
+	// TODO: maybe post-process output to prevent it from containing
+	// "<!--", "-->", "<![CDATA[", "]]>", or "</script"
+	// in case custom marshalers produce output containing those.
+	// Note: Do not use \x escaping to save bytes because it is not JSON compatible and this escaper
+	// supports ld+json content-type.
+	if len(b) == 0 {
+		// In, `x=y/{{.}}*z` a json.Marshaler that produces "" should
+		// not cause the output `x=y/*z`.
+		return " null "
+	}
+	first, _ := utf8.DecodeRune(b)
+	last, _ := utf8.DecodeLastRune(b)
+	var buf strings.Builder
+	// Prevent IdentifierNames and NumericLiterals from running into
+	// keywords: in, instanceof, typeof, void
+	pad := isJSIdentPart(first) || isJSIdentPart(last)
+	if pad {
+		buf.WriteByte(' ')
+	}
+	written := 0
+	// Make sure that json.Marshal escapes codepoints U+2028 & U+2029
+	// so it falls within the subset of JSON which is valid JS.
+	for i := 0; i < len(b); {
+		rune, n := utf8.DecodeRune(b[i:])
+		repl := ""
+		if rune == 0x2028 {
+			repl = `\u2028`
+		} else if rune == 0x2029 {
+			repl = `\u2029`
+		}
+		if repl != "" {
+			buf.Write(b[written:i])
+			buf.WriteString(repl)
+			written = i + n
+		}
+		i += n
+	}
+	if buf.Len() != 0 {
+		buf.Write(b[written:])
+		if pad {
+			buf.WriteByte(' ')
+		}
+		return buf.String()
+	}
+	return string(b)
+}
+
+// jsStrEscaper produces a string that can be included between quotes in
+// JavaScript source, in JavaScript embedded in an HTML5 <script> element,
+// or in an HTML5 event handler attribute such as onclick.
+func jsStrEscaper(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeJSStr {
+		return replace(s, jsStrNormReplacementTable)
+	}
+	return replace(s, jsStrReplacementTable)
+}
+
+// jsRegexpEscaper behaves like jsStrEscaper but escapes regular expression
+// specials so the result is treated literally when included in a regular
+// expression literal. /foo{{.X}}bar/ matches the string "foo" followed by
+// the literal text of {{.X}} followed by the string "bar".
+func jsRegexpEscaper(args ...interface{}) string {
+	s, _ := stringify(args...)
+	s = replace(s, jsRegexpReplacementTable)
+	if s == "" {
+		// /{{.X}}/ should not produce a line comment when .X == "".
+		return "(?:)"
+	}
+	return s
+}
+
+// replace replaces each rune r of s with replacementTable[r], provided that
+// r < len(replacementTable). If replacementTable[r] is the empty string then
+// no replacement is made.
+// It also replaces runes U+2028 and U+2029 with the raw strings `\u2028` and
+// `\u2029`.
+func replace(s string, replacementTable []string) string {
+	var b strings.Builder
+	r, w, written := rune(0), 0, 0
+	for i := 0; i < len(s); i += w {
+		// See comment in htmlEscaper.
+		r, w = utf8.DecodeRuneInString(s[i:])
+		var repl string
+		switch {
+		case int(r) < len(lowUnicodeReplacementTable):
+			repl = lowUnicodeReplacementTable[r]
+		case int(r) < len(replacementTable) && replacementTable[r] != "":
+			repl = replacementTable[r]
+		case r == '\u2028':
+			repl = `\u2028`
+		case r == '\u2029':
+			repl = `\u2029`
+		default:
+			continue
+		}
+		if written == 0 {
+			b.Grow(len(s))
+		}
+		b.WriteString(s[written:i])
+		b.WriteString(repl)
+		written = i + w
+	}
+	if written == 0 {
+		return s
+	}
+	b.WriteString(s[written:])
+	return b.String()
+}
+
+var lowUnicodeReplacementTable = []string{
+	0: `\u0000`, 1: `\u0001`, 2: `\u0002`, 3: `\u0003`, 4: `\u0004`, 5: `\u0005`, 6: `\u0006`,
+	'\a': `\u0007`,
+	'\b': `\u0008`,
+	'\t': `\t`,
+	'\n': `\n`,
+	'\v': `\u000b`, // "\v" == "v" on IE 6.
+	'\f': `\f`,
+	'\r': `\r`,
+	0xe:  `\u000e`, 0xf: `\u000f`, 0x10: `\u0010`, 0x11: `\u0011`, 0x12: `\u0012`, 0x13: `\u0013`,
+	0x14: `\u0014`, 0x15: `\u0015`, 0x16: `\u0016`, 0x17: `\u0017`, 0x18: `\u0018`, 0x19: `\u0019`,
+	0x1a: `\u001a`, 0x1b: `\u001b`, 0x1c: `\u001c`, 0x1d: `\u001d`, 0x1e: `\u001e`, 0x1f: `\u001f`,
+}
+
+var jsStrReplacementTable = []string{
+	0:    `\u0000`,
+	'\t': `\t`,
+	'\n': `\n`,
+	'\v': `\u000b`, // "\v" == "v" on IE 6.
+	'\f': `\f`,
+	'\r': `\r`,
+	// Encode HTML specials as hex so the output can be embedded
+	// in HTML attributes without further encoding.
+	'"':  `\u0022`,
+	'&':  `\u0026`,
+	'\'': `\u0027`,
+	'+':  `\u002b`,
+	'/':  `\/`,
+	'<':  `\u003c`,
+	'>':  `\u003e`,
+	'\\': `\\`,
+}
+
+// jsStrNormReplacementTable is like jsStrReplacementTable but does not
+// overencode existing escapes since this table has no entry for `\`.
+var jsStrNormReplacementTable = []string{
+	0:    `\u0000`,
+	'\t': `\t`,
+	'\n': `\n`,
+	'\v': `\u000b`, // "\v" == "v" on IE 6.
+	'\f': `\f`,
+	'\r': `\r`,
+	// Encode HTML specials as hex so the output can be embedded
+	// in HTML attributes without further encoding.
+	'"':  `\u0022`,
+	'&':  `\u0026`,
+	'\'': `\u0027`,
+	'+':  `\u002b`,
+	'/':  `\/`,
+	'<':  `\u003c`,
+	'>':  `\u003e`,
+}
+var jsRegexpReplacementTable = []string{
+	0:    `\u0000`,
+	'\t': `\t`,
+	'\n': `\n`,
+	'\v': `\u000b`, // "\v" == "v" on IE 6.
+	'\f': `\f`,
+	'\r': `\r`,
+	// Encode HTML specials as hex so the output can be embedded
+	// in HTML attributes without further encoding.
+	'"':  `\u0022`,
+	'$':  `\$`,
+	'&':  `\u0026`,
+	'\'': `\u0027`,
+	'(':  `\(`,
+	')':  `\)`,
+	'*':  `\*`,
+	'+':  `\u002b`,
+	'-':  `\-`,
+	'.':  `\.`,
+	'/':  `\/`,
+	'<':  `\u003c`,
+	'>':  `\u003e`,
+	'?':  `\?`,
+	'[':  `\[`,
+	'\\': `\\`,
+	']':  `\]`,
+	'^':  `\^`,
+	'{':  `\{`,
+	'|':  `\|`,
+	'}':  `\}`,
+}
+
+// isJSIdentPart reports whether the given rune is a JS identifier part.
+// It does not handle all the non-Latin letters, joiners, and combining marks,
+// but it does handle every codepoint that can occur in a numeric literal or
+// a keyword.
+func isJSIdentPart(r rune) bool {
+	switch {
+	case r == '$':
+		return true
+	case '0' <= r && r <= '9':
+		return true
+	case 'A' <= r && r <= 'Z':
+		return true
+	case r == '_':
+		return true
+	case 'a' <= r && r <= 'z':
+		return true
+	}
+	return false
+}
+
+// isJSType reports whether the given MIME type should be considered JavaScript.
+//
+// It is used to determine whether a script tag with a type attribute is a javascript container.
+func isJSType(mimeType string) bool {
+	// per
+	//   https://www.w3.org/TR/html5/scripting-1.html#attr-script-type
+	//   https://tools.ietf.org/html/rfc7231#section-3.1.1
+	//   https://tools.ietf.org/html/rfc4329#section-3
+	//   https://www.ietf.org/rfc/rfc4627.txt
+	// discard parameters
+	if i := strings.Index(mimeType, ";"); i >= 0 {
+		mimeType = mimeType[:i]
+	}
+	mimeType = strings.ToLower(mimeType)
+	mimeType = strings.TrimSpace(mimeType)
+	switch mimeType {
+	case
+		"application/ecmascript",
+		"application/javascript",
+		"application/json",
+		"application/ld+json",
+		"application/x-ecmascript",
+		"application/x-javascript",
+		"module",
+		"text/ecmascript",
+		"text/javascript",
+		"text/javascript1.0",
+		"text/javascript1.1",
+		"text/javascript1.2",
+		"text/javascript1.3",
+		"text/javascript1.4",
+		"text/javascript1.5",
+		"text/jscript",
+		"text/livescript",
+		"text/x-ecmascript",
+		"text/x-javascript":
+		return true
+	default:
+		return false
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/js_test.go b/go.dev/cmd/internal/html/template/js_test.go
new file mode 100644
index 0000000..d7ee47b
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/js_test.go
@@ -0,0 +1,423 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"math"
+	"strings"
+	"testing"
+)
+
+func TestNextJsCtx(t *testing.T) {
+	tests := []struct {
+		jsCtx jsCtx
+		s     string
+	}{
+		// Statement terminators precede regexps.
+		{jsCtxRegexp, ";"},
+		// This is not airtight.
+		//     ({ valueOf: function () { return 1 } } / 2)
+		// is valid JavaScript but in practice, devs do not do this.
+		// A block followed by a statement starting with a RegExp is
+		// much more common:
+		//     while (x) {...} /foo/.test(x) || panic()
+		{jsCtxRegexp, "}"},
+		// But member, call, grouping, and array expression terminators
+		// precede div ops.
+		{jsCtxDivOp, ")"},
+		{jsCtxDivOp, "]"},
+		// At the start of a primary expression, array, or expression
+		// statement, expect a regexp.
+		{jsCtxRegexp, "("},
+		{jsCtxRegexp, "["},
+		{jsCtxRegexp, "{"},
+		// Assignment operators precede regexps as do all exclusively
+		// prefix and binary operators.
+		{jsCtxRegexp, "="},
+		{jsCtxRegexp, "+="},
+		{jsCtxRegexp, "*="},
+		{jsCtxRegexp, "*"},
+		{jsCtxRegexp, "!"},
+		// Whether the + or - is infix or prefix, it cannot precede a
+		// div op.
+		{jsCtxRegexp, "+"},
+		{jsCtxRegexp, "-"},
+		// An incr/decr op precedes a div operator.
+		// This is not airtight. In (g = ++/h/i) a regexp follows a
+		// pre-increment operator, but in practice devs do not try to
+		// increment or decrement regular expressions.
+		// (g++/h/i) where ++ is a postfix operator on g is much more
+		// common.
+		{jsCtxDivOp, "--"},
+		{jsCtxDivOp, "++"},
+		{jsCtxDivOp, "x--"},
+		// When we have many dashes or pluses, then they are grouped
+		// left to right.
+		{jsCtxRegexp, "x---"}, // A postfix -- then a -.
+		// return followed by a slash returns the regexp literal or the
+		// slash starts a regexp literal in an expression statement that
+		// is dead code.
+		{jsCtxRegexp, "return"},
+		{jsCtxRegexp, "return "},
+		{jsCtxRegexp, "return\t"},
+		{jsCtxRegexp, "return\n"},
+		{jsCtxRegexp, "return\u2028"},
+		// Identifiers can be divided and cannot validly be preceded by
+		// a regular expressions. Semicolon insertion cannot happen
+		// between an identifier and a regular expression on a new line
+		// because the one token lookahead for semicolon insertion has
+		// to conclude that it could be a div binary op and treat it as
+		// such.
+		{jsCtxDivOp, "x"},
+		{jsCtxDivOp, "x "},
+		{jsCtxDivOp, "x\t"},
+		{jsCtxDivOp, "x\n"},
+		{jsCtxDivOp, "x\u2028"},
+		{jsCtxDivOp, "preturn"},
+		// Numbers precede div ops.
+		{jsCtxDivOp, "0"},
+		// Dots that are part of a number are div preceders.
+		{jsCtxDivOp, "0."},
+	}
+
+	for _, test := range tests {
+		if nextJSCtx([]byte(test.s), jsCtxRegexp) != test.jsCtx {
+			t.Errorf("want %s got %q", test.jsCtx, test.s)
+		}
+		if nextJSCtx([]byte(test.s), jsCtxDivOp) != test.jsCtx {
+			t.Errorf("want %s got %q", test.jsCtx, test.s)
+		}
+	}
+
+	if nextJSCtx([]byte("   "), jsCtxRegexp) != jsCtxRegexp {
+		t.Error("Blank tokens")
+	}
+
+	if nextJSCtx([]byte("   "), jsCtxDivOp) != jsCtxDivOp {
+		t.Error("Blank tokens")
+	}
+}
+
+func TestJSValEscaper(t *testing.T) {
+	tests := []struct {
+		x  interface{}
+		js string
+	}{
+		{int(42), " 42 "},
+		{uint(42), " 42 "},
+		{int16(42), " 42 "},
+		{uint16(42), " 42 "},
+		{int32(-42), " -42 "},
+		{uint32(42), " 42 "},
+		{int16(-42), " -42 "},
+		{uint16(42), " 42 "},
+		{int64(-42), " -42 "},
+		{uint64(42), " 42 "},
+		{uint64(1) << 53, " 9007199254740992 "},
+		// ulp(1 << 53) > 1 so this loses precision in JS
+		// but it is still a representable integer literal.
+		{uint64(1)<<53 + 1, " 9007199254740993 "},
+		{float32(1.0), " 1 "},
+		{float32(-1.0), " -1 "},
+		{float32(0.5), " 0.5 "},
+		{float32(-0.5), " -0.5 "},
+		{float32(1.0) / float32(256), " 0.00390625 "},
+		{float32(0), " 0 "},
+		{math.Copysign(0, -1), " -0 "},
+		{float64(1.0), " 1 "},
+		{float64(-1.0), " -1 "},
+		{float64(0.5), " 0.5 "},
+		{float64(-0.5), " -0.5 "},
+		{float64(0), " 0 "},
+		{math.Copysign(0, -1), " -0 "},
+		{"", `""`},
+		{"foo", `"foo"`},
+		// Newlines.
+		{"\r\n\u2028\u2029", `"\r\n\u2028\u2029"`},
+		// "\v" == "v" on IE 6 so use "\u000b" instead.
+		{"\t\x0b", `"\t\u000b"`},
+		{struct{ X, Y int }{1, 2}, `{"X":1,"Y":2}`},
+		{[]interface{}{}, "[]"},
+		{[]interface{}{42, "foo", nil}, `[42,"foo",null]`},
+		{[]string{"<!--", "</script>", "-->"}, `["\u003c!--","\u003c/script\u003e","--\u003e"]`},
+		{"<!--", `"\u003c!--"`},
+		{"-->", `"--\u003e"`},
+		{"<![CDATA[", `"\u003c![CDATA["`},
+		{"]]>", `"]]\u003e"`},
+		{"</script", `"\u003c/script"`},
+		{"\U0001D11E", "\"\U0001D11E\""}, // or "\uD834\uDD1E"
+		{nil, " null "},
+	}
+
+	for _, test := range tests {
+		if js := jsValEscaper(test.x); js != test.js {
+			t.Errorf("%+v: want\n\t%q\ngot\n\t%q", test.x, test.js, js)
+		}
+		// Make sure that escaping corner cases are not broken
+		// by nesting.
+		a := []interface{}{test.x}
+		want := "[" + strings.TrimSpace(test.js) + "]"
+		if js := jsValEscaper(a); js != want {
+			t.Errorf("%+v: want\n\t%q\ngot\n\t%q", a, want, js)
+		}
+	}
+}
+
+func TestJSStrEscaper(t *testing.T) {
+	tests := []struct {
+		x   interface{}
+		esc string
+	}{
+		{"", ``},
+		{"foo", `foo`},
+		{"\u0000", `\u0000`},
+		{"\t", `\t`},
+		{"\n", `\n`},
+		{"\r", `\r`},
+		{"\u2028", `\u2028`},
+		{"\u2029", `\u2029`},
+		{"\\", `\\`},
+		{"\\n", `\\n`},
+		{"foo\r\nbar", `foo\r\nbar`},
+		// Preserve attribute boundaries.
+		{`"`, `\u0022`},
+		{`'`, `\u0027`},
+		// Allow embedding in HTML without further escaping.
+		{`&amp;`, `\u0026amp;`},
+		// Prevent breaking out of text node and element boundaries.
+		{"</script>", `\u003c\/script\u003e`},
+		{"<![CDATA[", `\u003c![CDATA[`},
+		{"]]>", `]]\u003e`},
+		// https://dev.w3.org/html5/markup/aria/syntax.html#escaping-text-span
+		//   "The text in style, script, title, and textarea elements
+		//   must not have an escaping text span start that is not
+		//   followed by an escaping text span end."
+		// Furthermore, spoofing an escaping text span end could lead
+		// to different interpretation of a </script> sequence otherwise
+		// masked by the escaping text span, and spoofing a start could
+		// allow regular text content to be interpreted as script
+		// allowing script execution via a combination of a JS string
+		// injection followed by an HTML text injection.
+		{"<!--", `\u003c!--`},
+		{"-->", `--\u003e`},
+		// From https://code.google.com/p/doctype/wiki/ArticleUtf7
+		{"+ADw-script+AD4-alert(1)+ADw-/script+AD4-",
+			`\u002bADw-script\u002bAD4-alert(1)\u002bADw-\/script\u002bAD4-`,
+		},
+		// Invalid UTF-8 sequence
+		{"foo\xA0bar", "foo\xA0bar"},
+		// Invalid unicode scalar value.
+		{"foo\xed\xa0\x80bar", "foo\xed\xa0\x80bar"},
+	}
+
+	for _, test := range tests {
+		esc := jsStrEscaper(test.x)
+		if esc != test.esc {
+			t.Errorf("%q: want %q got %q", test.x, test.esc, esc)
+		}
+	}
+}
+
+func TestJSRegexpEscaper(t *testing.T) {
+	tests := []struct {
+		x   interface{}
+		esc string
+	}{
+		{"", `(?:)`},
+		{"foo", `foo`},
+		{"\u0000", `\u0000`},
+		{"\t", `\t`},
+		{"\n", `\n`},
+		{"\r", `\r`},
+		{"\u2028", `\u2028`},
+		{"\u2029", `\u2029`},
+		{"\\", `\\`},
+		{"\\n", `\\n`},
+		{"foo\r\nbar", `foo\r\nbar`},
+		// Preserve attribute boundaries.
+		{`"`, `\u0022`},
+		{`'`, `\u0027`},
+		// Allow embedding in HTML without further escaping.
+		{`&amp;`, `\u0026amp;`},
+		// Prevent breaking out of text node and element boundaries.
+		{"</script>", `\u003c\/script\u003e`},
+		{"<![CDATA[", `\u003c!\[CDATA\[`},
+		{"]]>", `\]\]\u003e`},
+		// Escaping text spans.
+		{"<!--", `\u003c!\-\-`},
+		{"-->", `\-\-\u003e`},
+		{"*", `\*`},
+		{"+", `\u002b`},
+		{"?", `\?`},
+		{"[](){}", `\[\]\(\)\{\}`},
+		{"$foo|x.y", `\$foo\|x\.y`},
+		{"x^y", `x\^y`},
+	}
+
+	for _, test := range tests {
+		esc := jsRegexpEscaper(test.x)
+		if esc != test.esc {
+			t.Errorf("%q: want %q got %q", test.x, test.esc, esc)
+		}
+	}
+}
+
+func TestEscapersOnLower7AndSelectHighCodepoints(t *testing.T) {
+	input := ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f" +
+		"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+		` !"#$%&'()*+,-./` +
+		`0123456789:;<=>?` +
+		`@ABCDEFGHIJKLMNO` +
+		`PQRSTUVWXYZ[\]^_` +
+		"`abcdefghijklmno" +
+		"pqrstuvwxyz{|}~\x7f" +
+		"\u00A0\u0100\u2028\u2029\ufeff\U0001D11E")
+
+	tests := []struct {
+		name    string
+		escaper func(...interface{}) string
+		escaped string
+	}{
+		{
+			"jsStrEscaper",
+			jsStrEscaper,
+			`\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007` +
+				`\u0008\t\n\u000b\f\r\u000e\u000f` +
+				`\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017` +
+				`\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f` +
+				` !\u0022#$%\u0026\u0027()*\u002b,-.\/` +
+				`0123456789:;\u003c=\u003e?` +
+				`@ABCDEFGHIJKLMNO` +
+				`PQRSTUVWXYZ[\\]^_` +
+				"`abcdefghijklmno" +
+				"pqrstuvwxyz{|}~\u007f" +
+				"\u00A0\u0100\\u2028\\u2029\ufeff\U0001D11E",
+		},
+		{
+			"jsRegexpEscaper",
+			jsRegexpEscaper,
+			`\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007` +
+				`\u0008\t\n\u000b\f\r\u000e\u000f` +
+				`\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017` +
+				`\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f` +
+				` !\u0022#\$%\u0026\u0027\(\)\*\u002b,\-\.\/` +
+				`0123456789:;\u003c=\u003e\?` +
+				`@ABCDEFGHIJKLMNO` +
+				`PQRSTUVWXYZ\[\\\]\^_` +
+				"`abcdefghijklmno" +
+				`pqrstuvwxyz\{\|\}~` + "\u007f" +
+				"\u00A0\u0100\\u2028\\u2029\ufeff\U0001D11E",
+		},
+	}
+
+	for _, test := range tests {
+		if s := test.escaper(input); s != test.escaped {
+			t.Errorf("%s once: want\n\t%q\ngot\n\t%q", test.name, test.escaped, s)
+			continue
+		}
+
+		// Escape it rune by rune to make sure that any
+		// fast-path checking does not break escaping.
+		var buf bytes.Buffer
+		for _, c := range input {
+			buf.WriteString(test.escaper(string(c)))
+		}
+
+		if s := buf.String(); s != test.escaped {
+			t.Errorf("%s rune-wise: want\n\t%q\ngot\n\t%q", test.name, test.escaped, s)
+			continue
+		}
+	}
+}
+
+func TestIsJsMimeType(t *testing.T) {
+	tests := []struct {
+		in  string
+		out bool
+	}{
+		{"application/javascript;version=1.8", true},
+		{"application/javascript;version=1.8;foo=bar", true},
+		{"application/javascript/version=1.8", false},
+		{"text/javascript", true},
+		{"application/json", true},
+		{"application/ld+json", true},
+		{"module", true},
+	}
+
+	for _, test := range tests {
+		if isJSType(test.in) != test.out {
+			t.Errorf("isJSType(%q) = %v, want %v", test.in, !test.out, test.out)
+		}
+	}
+}
+
+func BenchmarkJSValEscaperWithNum(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		jsValEscaper(3.141592654)
+	}
+}
+
+func BenchmarkJSValEscaperWithStr(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		jsValEscaper("The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>")
+	}
+}
+
+func BenchmarkJSValEscaperWithStrNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		jsValEscaper("The quick, brown fox jumps over the lazy dog")
+	}
+}
+
+func BenchmarkJSValEscaperWithObj(b *testing.B) {
+	o := struct {
+		S string
+		N int
+	}{
+		"The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>\u2028",
+		42,
+	}
+	for i := 0; i < b.N; i++ {
+		jsValEscaper(o)
+	}
+}
+
+func BenchmarkJSValEscaperWithObjNoSpecials(b *testing.B) {
+	o := struct {
+		S string
+		N int
+	}{
+		"The quick, brown fox jumps over the lazy dog",
+		42,
+	}
+	for i := 0; i < b.N; i++ {
+		jsValEscaper(o)
+	}
+}
+
+func BenchmarkJSStrEscaperNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		jsStrEscaper("The quick, brown fox jumps over the lazy dog.")
+	}
+}
+
+func BenchmarkJSStrEscaper(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		jsStrEscaper("The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>")
+	}
+}
+
+func BenchmarkJSRegexpEscaperNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		jsRegexpEscaper("The quick, brown fox jumps over the lazy dog")
+	}
+}
+
+func BenchmarkJSRegexpEscaper(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		jsRegexpEscaper("The <i>quick</i>,\r\n<span style='color:brown'>brown</span> fox jumps\u2028over the <canine class=\"lazy\">dog</canine>")
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/jsctx_string.go b/go.dev/cmd/internal/html/template/jsctx_string.go
new file mode 100644
index 0000000..dd1d87e
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/jsctx_string.go
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type jsCtx"; DO NOT EDIT.
+
+package template
+
+import "strconv"
+
+const _jsCtx_name = "jsCtxRegexpjsCtxDivOpjsCtxUnknown"
+
+var _jsCtx_index = [...]uint8{0, 11, 21, 33}
+
+func (i jsCtx) String() string {
+	if i >= jsCtx(len(_jsCtx_index)-1) {
+		return "jsCtx(" + strconv.FormatInt(int64(i), 10) + ")"
+	}
+	return _jsCtx_name[_jsCtx_index[i]:_jsCtx_index[i+1]]
+}
diff --git a/go.dev/cmd/internal/html/template/multi_test.go b/go.dev/cmd/internal/html/template/multi_test.go
new file mode 100644
index 0000000..e6c1167
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/multi_test.go
@@ -0,0 +1,247 @@
+// Copyright 2011 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.
+
+// Tests for multiple-template execution, copied from text/template.
+
+package template
+
+import (
+	"bytes"
+	"testing"
+
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+var multiExecTests = []execTest{
+	{"empty", "", "", nil, true},
+	{"text", "some text", "some text", nil, true},
+	{"invoke x", `{{template "x" .SI}}`, "TEXT", tVal, true},
+	{"invoke x no args", `{{template "x"}}`, "TEXT", tVal, true},
+	{"invoke dot int", `{{template "dot" .I}}`, "17", tVal, true},
+	{"invoke dot []int", `{{template "dot" .SI}}`, "[3 4 5]", tVal, true},
+	{"invoke dotV", `{{template "dotV" .U}}`, "v", tVal, true},
+	{"invoke nested int", `{{template "nested" .I}}`, "17", tVal, true},
+	{"variable declared by template", `{{template "nested" $x:=.SI}},{{index $x 1}}`, "[3 4 5],4", tVal, true},
+
+	// User-defined function: test argument evaluator.
+	{"testFunc literal", `{{oneArg "joe"}}`, "oneArg=joe", tVal, true},
+	{"testFunc .", `{{oneArg .}}`, "oneArg=joe", "joe", true},
+}
+
+// These strings are also in testdata/*.
+const multiText1 = `
+	{{define "x"}}TEXT{{end}}
+	{{define "dotV"}}{{.V}}{{end}}
+`
+
+const multiText2 = `
+	{{define "dot"}}{{.}}{{end}}
+	{{define "nested"}}{{template "dot" .}}{{end}}
+`
+
+func TestMultiExecute(t *testing.T) {
+	// Declare a couple of templates first.
+	template, err := New("root").Parse(multiText1)
+	if err != nil {
+		t.Fatalf("parse error for 1: %s", err)
+	}
+	_, err = template.Parse(multiText2)
+	if err != nil {
+		t.Fatalf("parse error for 2: %s", err)
+	}
+	testExecute(multiExecTests, template, t)
+}
+
+func TestParseFiles(t *testing.T) {
+	_, err := ParseFiles("DOES NOT EXIST")
+	if err == nil {
+		t.Error("expected error for non-existent file; got none")
+	}
+	template := New("root")
+	_, err = template.ParseFiles("testdata/file1.tmpl", "testdata/file2.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(multiExecTests, template, t)
+}
+
+func TestParseGlob(t *testing.T) {
+	_, err := ParseGlob("DOES NOT EXIST")
+	if err == nil {
+		t.Error("expected error for non-existent file; got none")
+	}
+	_, err = New("error").ParseGlob("[x")
+	if err == nil {
+		t.Error("expected error for bad pattern; got none")
+	}
+	template := New("root")
+	_, err = template.ParseGlob("testdata/file*.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(multiExecTests, template, t)
+}
+
+// In these tests, actual content (not just template definitions) comes from the parsed files.
+
+var templateFileExecTests = []execTest{
+	{"test", `{{template "tmpl1.tmpl"}}{{template "tmpl2.tmpl"}}`, "template1\n\ny\ntemplate2\n\nx\n", 0, true},
+}
+
+func TestParseFilesWithData(t *testing.T) {
+	template, err := New("root").ParseFiles("testdata/tmpl1.tmpl", "testdata/tmpl2.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(templateFileExecTests, template, t)
+}
+
+func TestParseGlobWithData(t *testing.T) {
+	template, err := New("root").ParseGlob("testdata/tmpl*.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(templateFileExecTests, template, t)
+}
+
+const (
+	cloneText1 = `{{define "a"}}{{template "b"}}{{template "c"}}{{end}}`
+	cloneText2 = `{{define "b"}}b{{end}}`
+	cloneText3 = `{{define "c"}}root{{end}}`
+	cloneText4 = `{{define "c"}}clone{{end}}`
+)
+
+// Issue 7032
+func TestAddParseTreeToUnparsedTemplate(t *testing.T) {
+	master := "{{define \"master\"}}{{end}}"
+	tmpl := New("master")
+	tree, err := parse.Parse("master", master, "", "", nil)
+	if err != nil {
+		t.Fatalf("unexpected parse err: %v", err)
+	}
+	masterTree := tree["master"]
+	tmpl.AddParseTree("master", masterTree) // used to panic
+}
+
+func TestRedefinition(t *testing.T) {
+	var tmpl *Template
+	var err error
+	if tmpl, err = New("tmpl1").Parse(`{{define "test"}}foo{{end}}`); err != nil {
+		t.Fatalf("parse 1: %v", err)
+	}
+	if _, err = tmpl.Parse(`{{define "test"}}bar{{end}}`); err != nil {
+		t.Fatalf("got error %v, expected nil", err)
+	}
+	if _, err = tmpl.New("tmpl2").Parse(`{{define "test"}}bar{{end}}`); err != nil {
+		t.Fatalf("got error %v, expected nil", err)
+	}
+}
+
+// Issue 10879
+func TestEmptyTemplateCloneCrash(t *testing.T) {
+	t1 := New("base")
+	t1.Clone() // used to panic
+}
+
+// Issue 10910, 10926
+func TestTemplateLookUp(t *testing.T) {
+	t.Skip("broken on html/template") // TODO
+	t1 := New("foo")
+	if t1.Lookup("foo") != nil {
+		t.Error("Lookup returned non-nil value for undefined template foo")
+	}
+	t1.New("bar")
+	if t1.Lookup("bar") != nil {
+		t.Error("Lookup returned non-nil value for undefined template bar")
+	}
+	t1.Parse(`{{define "foo"}}test{{end}}`)
+	if t1.Lookup("foo") == nil {
+		t.Error("Lookup returned nil value for defined template")
+	}
+}
+
+func TestParse(t *testing.T) {
+	// In multiple calls to Parse with the same receiver template, only one call
+	// can contain text other than space, comments, and template definitions
+	t1 := New("test")
+	if _, err := t1.Parse(`{{define "test"}}{{end}}`); err != nil {
+		t.Fatalf("parsing test: %s", err)
+	}
+	if _, err := t1.Parse(`{{define "test"}}{{/* this is a comment */}}{{end}}`); err != nil {
+		t.Fatalf("parsing test: %s", err)
+	}
+	if _, err := t1.Parse(`{{define "test"}}foo{{end}}`); err != nil {
+		t.Fatalf("parsing test: %s", err)
+	}
+}
+
+func TestEmptyTemplate(t *testing.T) {
+	cases := []struct {
+		defn []string
+		in   string
+		want string
+	}{
+		{[]string{"x", "y"}, "", "y"},
+		{[]string{""}, "once", ""},
+		{[]string{"", ""}, "twice", ""},
+		{[]string{"{{.}}", "{{.}}"}, "twice", "twice"},
+		{[]string{"{{/* a comment */}}", "{{/* a comment */}}"}, "comment", ""},
+		{[]string{"{{.}}", ""}, "twice", "twice"}, // TODO: should want "" not "twice"
+	}
+
+	for i, c := range cases {
+		root := New("root")
+
+		var (
+			m   *Template
+			err error
+		)
+		for _, d := range c.defn {
+			m, err = root.New(c.in).Parse(d)
+			if err != nil {
+				t.Fatal(err)
+			}
+		}
+		buf := &bytes.Buffer{}
+		if err := m.Execute(buf, c.in); err != nil {
+			t.Error(i, err)
+			continue
+		}
+		if buf.String() != c.want {
+			t.Errorf("expected string %q: got %q", c.want, buf.String())
+		}
+	}
+}
+
+// Issue 19249 was a regression in 1.8 caused by the handling of empty
+// templates added in that release, which got different answers depending
+// on the order templates appeared in the internal map.
+func TestIssue19294(t *testing.T) {
+	// The empty block in "xhtml" should be replaced during execution
+	// by the contents of "stylesheet", but if the internal map associating
+	// names with templates is built in the wrong order, the empty block
+	// looks non-empty and this doesn't happen.
+	var inlined = map[string]string{
+		"stylesheet": `{{define "stylesheet"}}stylesheet{{end}}`,
+		"xhtml":      `{{block "stylesheet" .}}{{end}}`,
+	}
+	all := []string{"stylesheet", "xhtml"}
+	for i := 0; i < 100; i++ {
+		res, err := New("title.xhtml").Parse(`{{template "xhtml" .}}`)
+		if err != nil {
+			t.Fatal(err)
+		}
+		for _, name := range all {
+			_, err := res.New(name).Parse(inlined[name])
+			if err != nil {
+				t.Fatal(err)
+			}
+		}
+		var buf bytes.Buffer
+		res.Execute(&buf, 0)
+		if buf.String() != "stylesheet" {
+			t.Fatalf("iteration %d: got %q; expected %q", i, buf.String(), "stylesheet")
+		}
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/state_string.go b/go.dev/cmd/internal/html/template/state_string.go
new file mode 100644
index 0000000..05104be
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/state_string.go
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type state"; DO NOT EDIT.
+
+package template
+
+import "strconv"
+
+const _state_name = "stateTextstateTagstateAttrNamestateAfterNamestateBeforeValuestateHTMLCmtstateRCDATAstateAttrstateURLstateSrcsetstateJSstateJSDqStrstateJSSqStrstateJSRegexpstateJSBlockCmtstateJSLineCmtstateCSSstateCSSDqStrstateCSSSqStrstateCSSDqURLstateCSSSqURLstateCSSURLstateCSSBlockCmtstateCSSLineCmtstateError"
+
+var _state_index = [...]uint16{0, 9, 17, 30, 44, 60, 72, 83, 92, 100, 111, 118, 130, 142, 155, 170, 184, 192, 205, 218, 231, 244, 255, 271, 286, 296}
+
+func (i state) String() string {
+	if i >= state(len(_state_index)-1) {
+		return "state(" + strconv.FormatInt(int64(i), 10) + ")"
+	}
+	return _state_name[_state_index[i]:_state_index[i+1]]
+}
diff --git a/go.dev/cmd/internal/html/template/template.go b/go.dev/cmd/internal/html/template/template.go
new file mode 100644
index 0000000..f3375f5
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/template.go
@@ -0,0 +1,496 @@
+// Copyright 2011 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 template
+
+import (
+	"fmt"
+	"io"
+	"io/ioutil"
+	"path/filepath"
+	"sync"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+// Template is a specialized Template from "golang.org/x/go.dev/cmd/internal/text/template" that produces a safe
+// HTML document fragment.
+type Template struct {
+	// Sticky error if escaping fails, or escapeOK if succeeded.
+	escapeErr error
+	// We could embed the text/template field, but it's safer not to because
+	// we need to keep our version of the name space and the underlying
+	// template's in sync.
+	text *template.Template
+	// The underlying template's parse tree, updated to be HTML-safe.
+	Tree       *parse.Tree
+	*nameSpace // common to all associated templates
+}
+
+// escapeOK is a sentinel value used to indicate valid escaping.
+var escapeOK = fmt.Errorf("template escaped correctly")
+
+// nameSpace is the data structure shared by all templates in an association.
+type nameSpace struct {
+	mu      sync.Mutex
+	set     map[string]*Template
+	escaped bool
+	esc     escaper
+}
+
+// Templates returns a slice of the templates associated with t, including t
+// itself.
+func (t *Template) Templates() []*Template {
+	ns := t.nameSpace
+	ns.mu.Lock()
+	defer ns.mu.Unlock()
+	// Return a slice so we don't expose the map.
+	m := make([]*Template, 0, len(ns.set))
+	for _, v := range ns.set {
+		m = append(m, v)
+	}
+	return m
+}
+
+// Option sets options for the template. Options are described by
+// strings, either a simple string or "key=value". There can be at
+// most one equals sign in an option string. If the option string
+// is unrecognized or otherwise invalid, Option panics.
+//
+// Known options:
+//
+// missingkey: Control the behavior during execution if a map is
+// indexed with a key that is not present in the map.
+//	"missingkey=default" or "missingkey=invalid"
+//		The default behavior: Do nothing and continue execution.
+//		If printed, the result of the index operation is the string
+//		"<no value>".
+//	"missingkey=zero"
+//		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
+}
+
+// checkCanParse checks whether it is OK to parse templates.
+// If not, it returns an error.
+func (t *Template) checkCanParse() error {
+	if t == nil {
+		return nil
+	}
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	if t.nameSpace.escaped {
+		return fmt.Errorf("golang.org/x/go.dev/cmd/internal/html/template: cannot Parse after Execute")
+	}
+	return nil
+}
+
+// escape escapes all associated templates.
+func (t *Template) escape() error {
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	t.nameSpace.escaped = true
+	if t.escapeErr == nil {
+		if t.Tree == nil {
+			return fmt.Errorf("template: %q is an incomplete or empty template", t.Name())
+		}
+		if err := escapeTemplate(t, t.text.Root, t.Name()); err != nil {
+			return err
+		}
+	} else if t.escapeErr != escapeOK {
+		return t.escapeErr
+	}
+	return nil
+}
+
+// Execute applies a parsed template to the specified data object,
+// writing the output to wr.
+// If an error occurs executing the template or writing its output,
+// execution stops, but partial results may already have been written to
+// the output writer.
+// A template may be executed safely in parallel, although if parallel
+// executions share a Writer the output may be interleaved.
+func (t *Template) Execute(wr io.Writer, data interface{}) error {
+	if err := t.escape(); err != nil {
+		return err
+	}
+	return t.text.Execute(wr, data)
+}
+
+// ExecuteTemplate applies the template associated with t that has the given
+// name to the specified data object and writes the output to wr.
+// If an error occurs executing the template or writing its output,
+// execution stops, but partial results may already have been written to
+// the output writer.
+// A template may be executed safely in parallel, although if parallel
+// executions share a Writer the output may be interleaved.
+func (t *Template) ExecuteTemplate(wr io.Writer, name string, data interface{}) error {
+	tmpl, err := t.lookupAndEscapeTemplate(name)
+	if err != nil {
+		return err
+	}
+	return tmpl.text.Execute(wr, data)
+}
+
+// lookupAndEscapeTemplate guarantees that the template with the given name
+// is escaped, or returns an error if it cannot be. It returns the named
+// template.
+func (t *Template) lookupAndEscapeTemplate(name string) (tmpl *Template, err error) {
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	t.nameSpace.escaped = true
+	tmpl = t.set[name]
+	if tmpl == nil {
+		return nil, fmt.Errorf("golang.org/x/go.dev/cmd/internal/html/template: %q is undefined", name)
+	}
+	if tmpl.escapeErr != nil && tmpl.escapeErr != escapeOK {
+		return nil, tmpl.escapeErr
+	}
+	if tmpl.text.Tree == nil || tmpl.text.Root == nil {
+		return nil, fmt.Errorf("golang.org/x/go.dev/cmd/internal/html/template: %q is an incomplete template", name)
+	}
+	if t.text.Lookup(name) == nil {
+		panic("golang.org/x/go.dev/cmd/internal/html/template internal error: template escaping out of sync")
+	}
+	if tmpl.escapeErr == nil {
+		err = escapeTemplate(tmpl, tmpl.text.Root, name)
+	}
+	return tmpl, err
+}
+
+// DefinedTemplates returns a string listing the defined templates,
+// prefixed by the string "; defined templates are: ". If there are none,
+// it returns the empty string. Used to generate an error message.
+func (t *Template) DefinedTemplates() string {
+	return t.text.DefinedTemplates()
+}
+
+// Parse parses text as a template body for t.
+// Named template definitions ({{define ...}} or {{block ...}} statements) in text
+// define additional templates associated with t and are removed from the
+// definition of t itself.
+//
+// Templates can be redefined in successive calls to Parse,
+// before the first use of Execute on t or any associated template.
+// A template definition with a body containing only white space and comments
+// is considered empty and will not replace an existing template's body.
+// This allows using Parse to add new named template definitions without
+// overwriting the main template body.
+func (t *Template) Parse(text string) (*Template, error) {
+	if err := t.checkCanParse(); err != nil {
+		return nil, err
+	}
+
+	ret, err := t.text.Parse(text)
+	if err != nil {
+		return nil, err
+	}
+
+	// In general, all the named templates might have changed underfoot.
+	// Regardless, some new ones may have been defined.
+	// The template.Template set has been updated; update ours.
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	for _, v := range ret.Templates() {
+		name := v.Name()
+		tmpl := t.set[name]
+		if tmpl == nil {
+			tmpl = t.new(name)
+		}
+		tmpl.text = v
+		tmpl.Tree = v.Tree
+	}
+	return t, nil
+}
+
+// AddParseTree creates a new template with the name and parse tree
+// and associates it with t.
+//
+// It returns an error if t or any associated template has already been executed.
+func (t *Template) AddParseTree(name string, tree *parse.Tree) (*Template, error) {
+	if err := t.checkCanParse(); err != nil {
+		return nil, err
+	}
+
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	text, err := t.text.AddParseTree(name, tree)
+	if err != nil {
+		return nil, err
+	}
+	ret := &Template{
+		nil,
+		text,
+		text.Tree,
+		t.nameSpace,
+	}
+	t.set[name] = ret
+	return ret, nil
+}
+
+// Clone returns a duplicate of the template, including all associated
+// templates. The actual representation is not copied, but the name space of
+// associated templates is, so further calls to Parse in the copy will add
+// templates to the copy but not to the original. Clone can be used to prepare
+// common templates and use them with variant definitions for other templates
+// by adding the variants after the clone is made.
+//
+// It returns an error if t has already been executed.
+func (t *Template) Clone() (*Template, error) {
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	if t.escapeErr != nil {
+		return nil, fmt.Errorf("golang.org/x/go.dev/cmd/internal/html/template: cannot Clone %q after it has executed", t.Name())
+	}
+	textClone, err := t.text.Clone()
+	if err != nil {
+		return nil, err
+	}
+	ns := &nameSpace{set: make(map[string]*Template)}
+	ns.esc = makeEscaper(ns)
+	ret := &Template{
+		nil,
+		textClone,
+		textClone.Tree,
+		ns,
+	}
+	ret.set[ret.Name()] = ret
+	for _, x := range textClone.Templates() {
+		name := x.Name()
+		src := t.set[name]
+		if src == nil || src.escapeErr != nil {
+			return nil, fmt.Errorf("golang.org/x/go.dev/cmd/internal/html/template: cannot Clone %q after it has executed", t.Name())
+		}
+		x.Tree = x.Tree.Copy()
+		ret.set[name] = &Template{
+			nil,
+			x,
+			x.Tree,
+			ret.nameSpace,
+		}
+	}
+	// Return the template associated with the name of this template.
+	return ret.set[ret.Name()], nil
+}
+
+// New allocates a new HTML template with the given name.
+func New(name string) *Template {
+	ns := &nameSpace{set: make(map[string]*Template)}
+	ns.esc = makeEscaper(ns)
+	tmpl := &Template{
+		nil,
+		template.New(name),
+		nil,
+		ns,
+	}
+	tmpl.set[name] = tmpl
+	return tmpl
+}
+
+// New allocates a new HTML template associated with the given one
+// and with the same delimiters. The association, which is transitive,
+// allows one template to invoke another with a {{template}} action.
+//
+// If a template with the given name already exists, the new HTML template
+// will replace it. The existing template will be reset and disassociated with
+// t.
+func (t *Template) New(name string) *Template {
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	return t.new(name)
+}
+
+// new is the implementation of New, without the lock.
+func (t *Template) new(name string) *Template {
+	tmpl := &Template{
+		nil,
+		t.text.New(name),
+		nil,
+		t.nameSpace,
+	}
+	if existing, ok := tmpl.set[name]; ok {
+		emptyTmpl := New(existing.Name())
+		*existing = *emptyTmpl
+	}
+	tmpl.set[name] = tmpl
+	return tmpl
+}
+
+// Name returns the name of the template.
+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 "golang.org/x/go.dev/cmd/internal/text/template", copied here so clients need not import
+// "golang.org/x/go.dev/cmd/internal/text/template".
+type FuncMap map[string]interface{}
+
+// Funcs adds the elements of the argument map to the template's function map.
+// It must be called before the template is parsed.
+// It panics if a value in the map is not a function with appropriate return
+// type. However, it is legal to overwrite elements of the map. The return
+// value is the template, so calls can be chained.
+func (t *Template) Funcs(funcMap FuncMap) *Template {
+	t.text.Funcs(template.FuncMap(funcMap))
+	return t
+}
+
+// Delims sets the action delimiters to the specified strings, to be used in
+// subsequent calls to Parse, ParseFiles, or ParseGlob. Nested template
+// definitions will inherit the settings. An empty delimiter stands for the
+// corresponding default: {{ or }}.
+// The return value is the template, so calls can be chained.
+func (t *Template) Delims(left, right string) *Template {
+	t.text.Delims(left, right)
+	return t
+}
+
+// Lookup returns the template with the given name that is associated with t,
+// or nil if there is no such template.
+func (t *Template) Lookup(name string) *Template {
+	t.nameSpace.mu.Lock()
+	defer t.nameSpace.mu.Unlock()
+	return t.set[name]
+}
+
+// Must is a helper that wraps a call to a function returning (*Template, error)
+// and panics if the error is non-nil. It is intended for use in variable initializations
+// such as
+//	var t = template.Must(template.New("name").Parse("html"))
+func Must(t *Template, err error) *Template {
+	if err != nil {
+		panic(err)
+	}
+	return t
+}
+
+// ParseFiles creates a new Template and parses the template definitions from
+// the named files. The returned template's name will have the (base) name and
+// (parsed) contents of the first file. There must be at least one file.
+// If an error occurs, parsing stops and the returned *Template is nil.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+// For instance, ParseFiles("a/foo", "b/foo") stores "b/foo" as the template
+// named "foo", while "a/foo" is unavailable.
+func ParseFiles(filenames ...string) (*Template, error) {
+	return parseFiles(nil, readFileOS, filenames...)
+}
+
+// ParseFiles parses the named files and associates the resulting templates with
+// t. If an error occurs, parsing stops and the returned template is nil;
+// otherwise it is t. There must be at least one file.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+//
+// ParseFiles returns an error if t or any associated template has already been executed.
+func (t *Template) ParseFiles(filenames ...string) (*Template, error) {
+	return parseFiles(t, readFileOS, filenames...)
+}
+
+// parseFiles is the helper for the method and function. If the argument
+// template is nil, it is created from the first file.
+func parseFiles(t *Template, readFile func(string) (string, []byte, error), filenames ...string) (*Template, error) {
+	if err := t.checkCanParse(); err != nil {
+		return nil, err
+	}
+
+	if len(filenames) == 0 {
+		// Not really a problem, but be consistent.
+		return nil, fmt.Errorf("golang.org/x/go.dev/cmd/internal/html/template: no files named in call to ParseFiles")
+	}
+	for _, filename := range filenames {
+		name, b, err := readFile(filename)
+		if err != nil {
+			return nil, err
+		}
+		s := string(b)
+		// First template becomes return value if not already defined,
+		// and we use that one for subsequent New calls to associate
+		// all the templates together. Also, if this file has the same name
+		// as t, this file becomes the contents of t, so
+		//  t, err := New(name).Funcs(xxx).ParseFiles(name)
+		// works. Otherwise we create a new template associated with t.
+		var tmpl *Template
+		if t == nil {
+			t = New(name)
+		}
+		if name == t.Name() {
+			tmpl = t
+		} else {
+			tmpl = t.New(name)
+		}
+		_, err = tmpl.Parse(s)
+		if err != nil {
+			return nil, err
+		}
+	}
+	return t, nil
+}
+
+// ParseGlob creates a new Template and parses the template definitions from
+// the files identified by the pattern. The files are matched according to the
+// semantics of filepath.Match, and the pattern must match at least one file.
+// The returned template will have the (base) name and (parsed) contents of the
+// first file matched by the pattern. ParseGlob is equivalent to calling
+// ParseFiles with the list of files matched by the pattern.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+func ParseGlob(pattern string) (*Template, error) {
+	return parseGlob(nil, pattern)
+}
+
+// ParseGlob parses the template definitions in the files identified by the
+// pattern and associates the resulting templates with t. The files are matched
+// according to the semantics of filepath.Match, and the pattern must match at
+// least one file. ParseGlob is equivalent to calling t.ParseFiles with the
+// list of files matched by the pattern.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+//
+// ParseGlob returns an error if t or any associated template has already been executed.
+func (t *Template) ParseGlob(pattern string) (*Template, error) {
+	return parseGlob(t, pattern)
+}
+
+// parseGlob is the implementation of the function and method ParseGlob.
+func parseGlob(t *Template, pattern string) (*Template, error) {
+	if err := t.checkCanParse(); err != nil {
+		return nil, err
+	}
+	filenames, err := filepath.Glob(pattern)
+	if err != nil {
+		return nil, err
+	}
+	if len(filenames) == 0 {
+		return nil, fmt.Errorf("golang.org/x/go.dev/cmd/internal/html/template: pattern matches no files: %#q", pattern)
+	}
+	return parseFiles(t, readFileOS, filenames...)
+}
+
+// IsTrue reports whether the value is 'true', in the sense of not the zero of its type,
+// and whether the value has a meaningful truth value. This is the definition of
+// truth used by if and other such actions.
+func IsTrue(val interface{}) (truth, ok bool) {
+	return template.IsTrue(val)
+}
+
+func readFileOS(file string) (name string, b []byte, err error) {
+	name = filepath.Base(file)
+	b, err = ioutil.ReadFile(file)
+	return
+}
diff --git a/go.dev/cmd/internal/html/template/template_test.go b/go.dev/cmd/internal/html/template/template_test.go
new file mode 100644
index 0000000..5df2d02
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/template_test.go
@@ -0,0 +1,219 @@
+// Copyright 2016 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 template_test
+
+import (
+	"bytes"
+	"encoding/json"
+	"strings"
+	"testing"
+
+	. "golang.org/x/go.dev/cmd/internal/html/template"
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+func TestTemplateClone(t *testing.T) {
+	// https://golang.org/issue/12996
+	orig := New("name")
+	clone, err := orig.Clone()
+	if err != nil {
+		t.Fatal(err)
+	}
+	if len(clone.Templates()) != len(orig.Templates()) {
+		t.Fatalf("Invalid length of t.Clone().Templates()")
+	}
+
+	const want = "stuff"
+	parsed := Must(clone.Parse(want))
+	var buf bytes.Buffer
+	err = parsed.Execute(&buf, nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if got := buf.String(); got != want {
+		t.Fatalf("got %q; want %q", got, want)
+	}
+}
+
+func TestRedefineNonEmptyAfterExecution(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `foo`)
+	c.mustExecute(c.root, nil, "foo")
+	c.mustNotParse(c.root, `bar`)
+}
+
+func TestRedefineEmptyAfterExecution(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, ``)
+	c.mustExecute(c.root, nil, "")
+	c.mustNotParse(c.root, `foo`)
+	c.mustExecute(c.root, nil, "")
+}
+
+func TestRedefineAfterNonExecution(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `{{if .}}<{{template "X"}}>{{end}}{{define "X"}}foo{{end}}`)
+	c.mustExecute(c.root, 0, "")
+	c.mustNotParse(c.root, `{{define "X"}}bar{{end}}`)
+	c.mustExecute(c.root, 1, "&lt;foo>")
+}
+
+func TestRedefineAfterNamedExecution(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `<{{template "X" .}}>{{define "X"}}foo{{end}}`)
+	c.mustExecute(c.root, nil, "&lt;foo>")
+	c.mustNotParse(c.root, `{{define "X"}}bar{{end}}`)
+	c.mustExecute(c.root, nil, "&lt;foo>")
+}
+
+func TestRedefineNestedByNameAfterExecution(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `{{define "X"}}foo{{end}}`)
+	c.mustExecute(c.lookup("X"), nil, "foo")
+	c.mustNotParse(c.root, `{{define "X"}}bar{{end}}`)
+	c.mustExecute(c.lookup("X"), nil, "foo")
+}
+
+func TestRedefineNestedByTemplateAfterExecution(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `{{define "X"}}foo{{end}}`)
+	c.mustExecute(c.lookup("X"), nil, "foo")
+	c.mustNotParse(c.lookup("X"), `bar`)
+	c.mustExecute(c.lookup("X"), nil, "foo")
+}
+
+func TestRedefineSafety(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `<html><a href="{{template "X"}}">{{define "X"}}{{end}}`)
+	c.mustExecute(c.root, nil, `<html><a href="">`)
+	// Note: Every version of Go prior to Go 1.8 accepted the redefinition of "X"
+	// on the next line, but luckily kept it from being used in the outer template.
+	// Now we reject it, which makes clearer that we're not going to use it.
+	c.mustNotParse(c.root, `{{define "X"}}" bar="baz{{end}}`)
+	c.mustExecute(c.root, nil, `<html><a href="">`)
+}
+
+func TestRedefineTopUse(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `{{template "X"}}{{.}}{{define "X"}}{{end}}`)
+	c.mustExecute(c.root, 42, `42`)
+	c.mustNotParse(c.root, `{{define "X"}}<script>{{end}}`)
+	c.mustExecute(c.root, 42, `42`)
+}
+
+func TestRedefineOtherParsers(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, ``)
+	c.mustExecute(c.root, nil, ``)
+	if _, err := c.root.ParseFiles("no.template"); err == nil || !strings.Contains(err.Error(), "Execute") {
+		t.Errorf("ParseFiles: %v\nwanted error about already having Executed", err)
+	}
+	if _, err := c.root.ParseGlob("*.no.template"); err == nil || !strings.Contains(err.Error(), "Execute") {
+		t.Errorf("ParseGlob: %v\nwanted error about already having Executed", err)
+	}
+	if _, err := c.root.AddParseTree("t1", c.root.Tree); err == nil || !strings.Contains(err.Error(), "Execute") {
+		t.Errorf("AddParseTree: %v\nwanted error about already having Executed", err)
+	}
+}
+
+func TestNumbers(t *testing.T) {
+	c := newTestCase(t)
+	c.mustParse(c.root, `{{print 1_2.3_4}} {{print 0x0_1.e_0p+02}}`)
+	c.mustExecute(c.root, nil, "12.34 7.5")
+}
+
+func TestStringsInScriptsWithJsonContentTypeAreCorrectlyEscaped(t *testing.T) {
+	// See #33671 and #37634 for more context on this.
+	tests := []struct{ name, in string }{
+		{"empty", ""},
+		{"invalid", string(rune(-1))},
+		{"null", "\u0000"},
+		{"unit separator", "\u001F"},
+		{"tab", "\t"},
+		{"gt and lt", "<>"},
+		{"quotes", `'"`},
+		{"ASCII letters", "ASCII letters"},
+		{"Unicode", "ʕ⊙ϖ⊙ʔ"},
+		{"Pizza", "🍕"},
+	}
+	const (
+		prefix = `<script type="application/ld+json">`
+		suffix = `</script>`
+		templ  = prefix + `"{{.}}"` + suffix
+	)
+	tpl := Must(New("JS string is JSON string").Parse(templ))
+	for _, tt := range tests {
+		t.Run(tt.name, func(t *testing.T) {
+			var buf bytes.Buffer
+			if err := tpl.Execute(&buf, tt.in); err != nil {
+				t.Fatalf("Cannot render template: %v", err)
+			}
+			trimmed := bytes.TrimSuffix(bytes.TrimPrefix(buf.Bytes(), []byte(prefix)), []byte(suffix))
+			var got string
+			if err := json.Unmarshal(trimmed, &got); err != nil {
+				t.Fatalf("Cannot parse JS string %q as JSON: %v", trimmed[1:len(trimmed)-1], err)
+			}
+			if got != tt.in {
+				t.Errorf("Serialization changed the string value: got %q want %q", got, tt.in)
+			}
+		})
+	}
+}
+
+func TestSkipEscapeComments(t *testing.T) {
+	c := newTestCase(t)
+	tr := parse.New("root")
+	tr.Mode = parse.ParseComments
+	newT, err := tr.Parse("{{/* A comment */}}{{ 1 }}{{/* Another comment */}}", "", "", make(map[string]*parse.Tree))
+	if err != nil {
+		t.Fatalf("Cannot parse template text: %v", err)
+	}
+	c.root, err = c.root.AddParseTree("root", newT)
+	if err != nil {
+		t.Fatalf("Cannot add parse tree to template: %v", err)
+	}
+	c.mustExecute(c.root, nil, "1")
+}
+
+type testCase struct {
+	t    *testing.T
+	root *Template
+}
+
+func newTestCase(t *testing.T) *testCase {
+	return &testCase{
+		t:    t,
+		root: New("root"),
+	}
+}
+
+func (c *testCase) lookup(name string) *Template {
+	return c.root.Lookup(name)
+}
+
+func (c *testCase) mustParse(t *Template, text string) {
+	_, err := t.Parse(text)
+	if err != nil {
+		c.t.Fatalf("parse: %v", err)
+	}
+}
+
+func (c *testCase) mustNotParse(t *Template, text string) {
+	_, err := t.Parse(text)
+	if err == nil {
+		c.t.Fatalf("parse: unexpected success")
+	}
+}
+
+func (c *testCase) mustExecute(t *Template, val interface{}, want string) {
+	var buf bytes.Buffer
+	err := t.Execute(&buf, val)
+	if err != nil {
+		c.t.Fatalf("execute: %v", err)
+	}
+	if buf.String() != want {
+		c.t.Fatalf("template output:\n%s\nwant:\n%s", buf.String(), want)
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/testdata/file1.tmpl b/go.dev/cmd/internal/html/template/testdata/file1.tmpl
new file mode 100644
index 0000000..febf9d9
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/testdata/file1.tmpl
@@ -0,0 +1,2 @@
+{{define "x"}}TEXT{{end}}
+{{define "dotV"}}{{.V}}{{end}}
diff --git a/go.dev/cmd/internal/html/template/testdata/file2.tmpl b/go.dev/cmd/internal/html/template/testdata/file2.tmpl
new file mode 100644
index 0000000..39bf6fb
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/testdata/file2.tmpl
@@ -0,0 +1,2 @@
+{{define "dot"}}{{.}}{{end}}
+{{define "nested"}}{{template "dot" .}}{{end}}
diff --git a/go.dev/cmd/internal/html/template/testdata/fs.zip b/go.dev/cmd/internal/html/template/testdata/fs.zip
new file mode 100644
index 0000000..8581313
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/testdata/fs.zip
Binary files differ
diff --git a/go.dev/cmd/internal/html/template/testdata/tmpl1.tmpl b/go.dev/cmd/internal/html/template/testdata/tmpl1.tmpl
new file mode 100644
index 0000000..b72b3a3
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/testdata/tmpl1.tmpl
@@ -0,0 +1,3 @@
+template1
+{{define "x"}}x{{end}}
+{{template "y"}}
diff --git a/go.dev/cmd/internal/html/template/testdata/tmpl2.tmpl b/go.dev/cmd/internal/html/template/testdata/tmpl2.tmpl
new file mode 100644
index 0000000..16beba6
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/testdata/tmpl2.tmpl
@@ -0,0 +1,3 @@
+template2
+{{define "y"}}y{{end}}
+{{template "x"}}
diff --git a/go.dev/cmd/internal/html/template/transition.go b/go.dev/cmd/internal/html/template/transition.go
new file mode 100644
index 0000000..06df679
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/transition.go
@@ -0,0 +1,592 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"strings"
+)
+
+// transitionFunc is the array of context transition functions for text nodes.
+// A transition function takes a context and template text input, and returns
+// the updated context and the number of bytes consumed from the front of the
+// input.
+var transitionFunc = [...]func(context, []byte) (context, int){
+	stateText:        tText,
+	stateTag:         tTag,
+	stateAttrName:    tAttrName,
+	stateAfterName:   tAfterName,
+	stateBeforeValue: tBeforeValue,
+	stateHTMLCmt:     tHTMLCmt,
+	stateRCDATA:      tSpecialTagEnd,
+	stateAttr:        tAttr,
+	stateURL:         tURL,
+	stateSrcset:      tURL,
+	stateJS:          tJS,
+	stateJSDqStr:     tJSDelimited,
+	stateJSSqStr:     tJSDelimited,
+	stateJSRegexp:    tJSDelimited,
+	stateJSBlockCmt:  tBlockCmt,
+	stateJSLineCmt:   tLineCmt,
+	stateCSS:         tCSS,
+	stateCSSDqStr:    tCSSStr,
+	stateCSSSqStr:    tCSSStr,
+	stateCSSDqURL:    tCSSStr,
+	stateCSSSqURL:    tCSSStr,
+	stateCSSURL:      tCSSStr,
+	stateCSSBlockCmt: tBlockCmt,
+	stateCSSLineCmt:  tLineCmt,
+	stateError:       tError,
+}
+
+var commentStart = []byte("<!--")
+var commentEnd = []byte("-->")
+
+// tText is the context transition function for the text state.
+func tText(c context, s []byte) (context, int) {
+	k := 0
+	for {
+		i := k + bytes.IndexByte(s[k:], '<')
+		if i < k || i+1 == len(s) {
+			return c, len(s)
+		} else if i+4 <= len(s) && bytes.Equal(commentStart, s[i:i+4]) {
+			return context{state: stateHTMLCmt}, i + 4
+		}
+		i++
+		end := false
+		if s[i] == '/' {
+			if i+1 == len(s) {
+				return c, len(s)
+			}
+			end, i = true, i+1
+		}
+		j, e := eatTagName(s, i)
+		if j != i {
+			if end {
+				e = elementNone
+			}
+			// We've found an HTML tag.
+			return context{state: stateTag, element: e}, j
+		}
+		k = j
+	}
+}
+
+var elementContentType = [...]state{
+	elementNone:     stateText,
+	elementScript:   stateJS,
+	elementStyle:    stateCSS,
+	elementTextarea: stateRCDATA,
+	elementTitle:    stateRCDATA,
+}
+
+// tTag is the context transition function for the tag state.
+func tTag(c context, s []byte) (context, int) {
+	// Find the attribute name.
+	i := eatWhiteSpace(s, 0)
+	if i == len(s) {
+		return c, len(s)
+	}
+	if s[i] == '>' {
+		return context{
+			state:   elementContentType[c.element],
+			element: c.element,
+		}, i + 1
+	}
+	j, err := eatAttrName(s, i)
+	if err != nil {
+		return context{state: stateError, err: err}, len(s)
+	}
+	state, attr := stateTag, attrNone
+	if i == j {
+		return context{
+			state: stateError,
+			err:   errorf(ErrBadHTML, nil, 0, "expected space, attr name, or end of tag, but got %q", s[i:]),
+		}, len(s)
+	}
+
+	attrName := strings.ToLower(string(s[i:j]))
+	if c.element == elementScript && attrName == "type" {
+		attr = attrScriptType
+	} else {
+		switch attrType(attrName) {
+		case contentTypeURL:
+			attr = attrURL
+		case contentTypeCSS:
+			attr = attrStyle
+		case contentTypeJS:
+			attr = attrScript
+		case contentTypeSrcset:
+			attr = attrSrcset
+		}
+	}
+
+	if j == len(s) {
+		state = stateAttrName
+	} else {
+		state = stateAfterName
+	}
+	return context{state: state, element: c.element, attr: attr}, j
+}
+
+// tAttrName is the context transition function for stateAttrName.
+func tAttrName(c context, s []byte) (context, int) {
+	i, err := eatAttrName(s, 0)
+	if err != nil {
+		return context{state: stateError, err: err}, len(s)
+	} else if i != len(s) {
+		c.state = stateAfterName
+	}
+	return c, i
+}
+
+// tAfterName is the context transition function for stateAfterName.
+func tAfterName(c context, s []byte) (context, int) {
+	// Look for the start of the value.
+	i := eatWhiteSpace(s, 0)
+	if i == len(s) {
+		return c, len(s)
+	} else if s[i] != '=' {
+		// Occurs due to tag ending '>', and valueless attribute.
+		c.state = stateTag
+		return c, i
+	}
+	c.state = stateBeforeValue
+	// Consume the "=".
+	return c, i + 1
+}
+
+var attrStartStates = [...]state{
+	attrNone:       stateAttr,
+	attrScript:     stateJS,
+	attrScriptType: stateAttr,
+	attrStyle:      stateCSS,
+	attrURL:        stateURL,
+	attrSrcset:     stateSrcset,
+}
+
+// tBeforeValue is the context transition function for stateBeforeValue.
+func tBeforeValue(c context, s []byte) (context, int) {
+	i := eatWhiteSpace(s, 0)
+	if i == len(s) {
+		return c, len(s)
+	}
+	// Find the attribute delimiter.
+	delim := delimSpaceOrTagEnd
+	switch s[i] {
+	case '\'':
+		delim, i = delimSingleQuote, i+1
+	case '"':
+		delim, i = delimDoubleQuote, i+1
+	}
+	c.state, c.delim = attrStartStates[c.attr], delim
+	return c, i
+}
+
+// tHTMLCmt is the context transition function for stateHTMLCmt.
+func tHTMLCmt(c context, s []byte) (context, int) {
+	if i := bytes.Index(s, commentEnd); i != -1 {
+		return context{}, i + 3
+	}
+	return c, len(s)
+}
+
+// specialTagEndMarkers maps element types to the character sequence that
+// case-insensitively signals the end of the special tag body.
+var specialTagEndMarkers = [...][]byte{
+	elementScript:   []byte("script"),
+	elementStyle:    []byte("style"),
+	elementTextarea: []byte("textarea"),
+	elementTitle:    []byte("title"),
+}
+
+var (
+	specialTagEndPrefix = []byte("</")
+	tagEndSeparators    = []byte("> \t\n\f/")
+)
+
+// tSpecialTagEnd is the context transition function for raw text and RCDATA
+// element states.
+func tSpecialTagEnd(c context, s []byte) (context, int) {
+	if c.element != elementNone {
+		if i := indexTagEnd(s, specialTagEndMarkers[c.element]); i != -1 {
+			return context{}, i
+		}
+	}
+	return c, len(s)
+}
+
+// indexTagEnd finds the index of a special tag end in a case insensitive way, or returns -1
+func indexTagEnd(s []byte, tag []byte) int {
+	res := 0
+	plen := len(specialTagEndPrefix)
+	for len(s) > 0 {
+		// Try to find the tag end prefix first
+		i := bytes.Index(s, specialTagEndPrefix)
+		if i == -1 {
+			return i
+		}
+		s = s[i+plen:]
+		// Try to match the actual tag if there is still space for it
+		if len(tag) <= len(s) && bytes.EqualFold(tag, s[:len(tag)]) {
+			s = s[len(tag):]
+			// Check the tag is followed by a proper separator
+			if len(s) > 0 && bytes.IndexByte(tagEndSeparators, s[0]) != -1 {
+				return res + i
+			}
+			res += len(tag)
+		}
+		res += i + plen
+	}
+	return -1
+}
+
+// tAttr is the context transition function for the attribute state.
+func tAttr(c context, s []byte) (context, int) {
+	return c, len(s)
+}
+
+// tURL is the context transition function for the URL state.
+func tURL(c context, s []byte) (context, int) {
+	if bytes.ContainsAny(s, "#?") {
+		c.urlPart = urlPartQueryOrFrag
+	} else if len(s) != eatWhiteSpace(s, 0) && c.urlPart == urlPartNone {
+		// HTML5 uses "Valid URL potentially surrounded by spaces" for
+		// attrs: https://www.w3.org/TR/html5/index.html#attributes-1
+		c.urlPart = urlPartPreQuery
+	}
+	return c, len(s)
+}
+
+// tJS is the context transition function for the JS state.
+func tJS(c context, s []byte) (context, int) {
+	i := bytes.IndexAny(s, `"'/`)
+	if i == -1 {
+		// Entire input is non string, comment, regexp tokens.
+		c.jsCtx = nextJSCtx(s, c.jsCtx)
+		return c, len(s)
+	}
+	c.jsCtx = nextJSCtx(s[:i], c.jsCtx)
+	switch s[i] {
+	case '"':
+		c.state, c.jsCtx = stateJSDqStr, jsCtxRegexp
+	case '\'':
+		c.state, c.jsCtx = stateJSSqStr, jsCtxRegexp
+	case '/':
+		switch {
+		case i+1 < len(s) && s[i+1] == '/':
+			c.state, i = stateJSLineCmt, i+1
+		case i+1 < len(s) && s[i+1] == '*':
+			c.state, i = stateJSBlockCmt, i+1
+		case c.jsCtx == jsCtxRegexp:
+			c.state = stateJSRegexp
+		case c.jsCtx == jsCtxDivOp:
+			c.jsCtx = jsCtxRegexp
+		default:
+			return context{
+				state: stateError,
+				err:   errorf(ErrSlashAmbig, nil, 0, "'/' could start a division or regexp: %.32q", s[i:]),
+			}, len(s)
+		}
+	default:
+		panic("unreachable")
+	}
+	return c, i + 1
+}
+
+// tJSDelimited is the context transition function for the JS string and regexp
+// states.
+func tJSDelimited(c context, s []byte) (context, int) {
+	specials := `\"`
+	switch c.state {
+	case stateJSSqStr:
+		specials = `\'`
+	case stateJSRegexp:
+		specials = `\/[]`
+	}
+
+	k, inCharset := 0, false
+	for {
+		i := k + bytes.IndexAny(s[k:], specials)
+		if i < k {
+			break
+		}
+		switch s[i] {
+		case '\\':
+			i++
+			if i == len(s) {
+				return context{
+					state: stateError,
+					err:   errorf(ErrPartialEscape, nil, 0, "unfinished escape sequence in JS string: %q", s),
+				}, len(s)
+			}
+		case '[':
+			inCharset = true
+		case ']':
+			inCharset = false
+		default:
+			// end delimiter
+			if !inCharset {
+				c.state, c.jsCtx = stateJS, jsCtxDivOp
+				return c, i + 1
+			}
+		}
+		k = i + 1
+	}
+
+	if inCharset {
+		// This can be fixed by making context richer if interpolation
+		// into charsets is desired.
+		return context{
+			state: stateError,
+			err:   errorf(ErrPartialCharset, nil, 0, "unfinished JS regexp charset: %q", s),
+		}, len(s)
+	}
+
+	return c, len(s)
+}
+
+var blockCommentEnd = []byte("*/")
+
+// tBlockCmt is the context transition function for /*comment*/ states.
+func tBlockCmt(c context, s []byte) (context, int) {
+	i := bytes.Index(s, blockCommentEnd)
+	if i == -1 {
+		return c, len(s)
+	}
+	switch c.state {
+	case stateJSBlockCmt:
+		c.state = stateJS
+	case stateCSSBlockCmt:
+		c.state = stateCSS
+	default:
+		panic(c.state.String())
+	}
+	return c, i + 2
+}
+
+// tLineCmt is the context transition function for //comment states.
+func tLineCmt(c context, s []byte) (context, int) {
+	var lineTerminators string
+	var endState state
+	switch c.state {
+	case stateJSLineCmt:
+		lineTerminators, endState = "\n\r\u2028\u2029", stateJS
+	case stateCSSLineCmt:
+		lineTerminators, endState = "\n\f\r", stateCSS
+		// Line comments are not part of any published CSS standard but
+		// are supported by the 4 major browsers.
+		// This defines line comments as
+		//     LINECOMMENT ::= "//" [^\n\f\d]*
+		// since https://www.w3.org/TR/css3-syntax/#SUBTOK-nl defines
+		// newlines:
+		//     nl ::= #xA | #xD #xA | #xD | #xC
+	default:
+		panic(c.state.String())
+	}
+
+	i := bytes.IndexAny(s, lineTerminators)
+	if i == -1 {
+		return c, len(s)
+	}
+	c.state = endState
+	// Per section 7.4 of EcmaScript 5 : https://es5.github.com/#x7.4
+	// "However, the LineTerminator at the end of the line is not
+	// considered to be part of the single-line comment; it is
+	// recognized separately by the lexical grammar and becomes part
+	// of the stream of input elements for the syntactic grammar."
+	return c, i
+}
+
+// tCSS is the context transition function for the CSS state.
+func tCSS(c context, s []byte) (context, int) {
+	// CSS quoted strings are almost never used except for:
+	// (1) URLs as in background: "/foo.png"
+	// (2) Multiword font-names as in font-family: "Times New Roman"
+	// (3) List separators in content values as in inline-lists:
+	//    <style>
+	//    ul.inlineList { list-style: none; padding:0 }
+	//    ul.inlineList > li { display: inline }
+	//    ul.inlineList > li:before { content: ", " }
+	//    ul.inlineList > li:first-child:before { content: "" }
+	//    </style>
+	//    <ul class=inlineList><li>One<li>Two<li>Three</ul>
+	// (4) Attribute value selectors as in a[href="http://example.com/"]
+	//
+	// We conservatively treat all strings as URLs, but make some
+	// allowances to avoid confusion.
+	//
+	// In (1), our conservative assumption is justified.
+	// In (2), valid font names do not contain ':', '?', or '#', so our
+	// conservative assumption is fine since we will never transition past
+	// urlPartPreQuery.
+	// In (3), our protocol heuristic should not be tripped, and there
+	// should not be non-space content after a '?' or '#', so as long as
+	// we only %-encode RFC 3986 reserved characters we are ok.
+	// In (4), we should URL escape for URL attributes, and for others we
+	// have the attribute name available if our conservative assumption
+	// proves problematic for real code.
+
+	k := 0
+	for {
+		i := k + bytes.IndexAny(s[k:], `("'/`)
+		if i < k {
+			return c, len(s)
+		}
+		switch s[i] {
+		case '(':
+			// Look for url to the left.
+			p := bytes.TrimRight(s[:i], "\t\n\f\r ")
+			if endsWithCSSKeyword(p, "url") {
+				j := len(s) - len(bytes.TrimLeft(s[i+1:], "\t\n\f\r "))
+				switch {
+				case j != len(s) && s[j] == '"':
+					c.state, j = stateCSSDqURL, j+1
+				case j != len(s) && s[j] == '\'':
+					c.state, j = stateCSSSqURL, j+1
+				default:
+					c.state = stateCSSURL
+				}
+				return c, j
+			}
+		case '/':
+			if i+1 < len(s) {
+				switch s[i+1] {
+				case '/':
+					c.state = stateCSSLineCmt
+					return c, i + 2
+				case '*':
+					c.state = stateCSSBlockCmt
+					return c, i + 2
+				}
+			}
+		case '"':
+			c.state = stateCSSDqStr
+			return c, i + 1
+		case '\'':
+			c.state = stateCSSSqStr
+			return c, i + 1
+		}
+		k = i + 1
+	}
+}
+
+// tCSSStr is the context transition function for the CSS string and URL states.
+func tCSSStr(c context, s []byte) (context, int) {
+	var endAndEsc string
+	switch c.state {
+	case stateCSSDqStr, stateCSSDqURL:
+		endAndEsc = `\"`
+	case stateCSSSqStr, stateCSSSqURL:
+		endAndEsc = `\'`
+	case stateCSSURL:
+		// Unquoted URLs end with a newline or close parenthesis.
+		// The below includes the wc (whitespace character) and nl.
+		endAndEsc = "\\\t\n\f\r )"
+	default:
+		panic(c.state.String())
+	}
+
+	k := 0
+	for {
+		i := k + bytes.IndexAny(s[k:], endAndEsc)
+		if i < k {
+			c, nread := tURL(c, decodeCSS(s[k:]))
+			return c, k + nread
+		}
+		if s[i] == '\\' {
+			i++
+			if i == len(s) {
+				return context{
+					state: stateError,
+					err:   errorf(ErrPartialEscape, nil, 0, "unfinished escape sequence in CSS string: %q", s),
+				}, len(s)
+			}
+		} else {
+			c.state = stateCSS
+			return c, i + 1
+		}
+		c, _ = tURL(c, decodeCSS(s[:i+1]))
+		k = i + 1
+	}
+}
+
+// tError is the context transition function for the error state.
+func tError(c context, s []byte) (context, int) {
+	return c, len(s)
+}
+
+// eatAttrName returns the largest j such that s[i:j] is an attribute name.
+// It returns an error if s[i:] does not look like it begins with an
+// attribute name, such as encountering a quote mark without a preceding
+// equals sign.
+func eatAttrName(s []byte, i int) (int, *Error) {
+	for j := i; j < len(s); j++ {
+		switch s[j] {
+		case ' ', '\t', '\n', '\f', '\r', '=', '>':
+			return j, nil
+		case '\'', '"', '<':
+			// These result in a parse warning in HTML5 and are
+			// indicative of serious problems if seen in an attr
+			// name in a template.
+			return -1, errorf(ErrBadHTML, nil, 0, "%q in attribute name: %.32q", s[j:j+1], s)
+		default:
+			// No-op.
+		}
+	}
+	return len(s), nil
+}
+
+var elementNameMap = map[string]element{
+	"script":   elementScript,
+	"style":    elementStyle,
+	"textarea": elementTextarea,
+	"title":    elementTitle,
+}
+
+// asciiAlpha reports whether c is an ASCII letter.
+func asciiAlpha(c byte) bool {
+	return 'A' <= c && c <= 'Z' || 'a' <= c && c <= 'z'
+}
+
+// asciiAlphaNum reports whether c is an ASCII letter or digit.
+func asciiAlphaNum(c byte) bool {
+	return asciiAlpha(c) || '0' <= c && c <= '9'
+}
+
+// eatTagName returns the largest j such that s[i:j] is a tag name and the tag type.
+func eatTagName(s []byte, i int) (int, element) {
+	if i == len(s) || !asciiAlpha(s[i]) {
+		return i, elementNone
+	}
+	j := i + 1
+	for j < len(s) {
+		x := s[j]
+		if asciiAlphaNum(x) {
+			j++
+			continue
+		}
+		// Allow "x-y" or "x:y" but not "x-", "-y", or "x--y".
+		if (x == ':' || x == '-') && j+1 < len(s) && asciiAlphaNum(s[j+1]) {
+			j += 2
+			continue
+		}
+		break
+	}
+	return j, elementNameMap[strings.ToLower(string(s[i:j]))]
+}
+
+// eatWhiteSpace returns the largest j such that s[i:j] is white space.
+func eatWhiteSpace(s []byte, i int) int {
+	for j := i; j < len(s); j++ {
+		switch s[j] {
+		case ' ', '\t', '\n', '\f', '\r':
+			// No-op.
+		default:
+			return j
+		}
+	}
+	return len(s)
+}
diff --git a/go.dev/cmd/internal/html/template/transition_test.go b/go.dev/cmd/internal/html/template/transition_test.go
new file mode 100644
index 0000000..412a4c7
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/transition_test.go
@@ -0,0 +1,60 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"strings"
+	"testing"
+)
+
+func TestFindEndTag(t *testing.T) {
+	tests := []struct {
+		s, tag string
+		want   int
+	}{
+		{"", "tag", -1},
+		{"hello </textarea> hello", "textarea", 6},
+		{"hello </TEXTarea> hello", "textarea", 6},
+		{"hello </textAREA>", "textarea", 6},
+		{"hello </textarea", "textareax", -1},
+		{"hello </textarea>", "tag", -1},
+		{"hello tag </textarea", "tag", -1},
+		{"hello </tag> </other> </textarea> <other>", "textarea", 22},
+		{"</textarea> <other>", "textarea", 0},
+		{"<div> </div> </TEXTAREA>", "textarea", 13},
+		{"<div> </div> </TEXTAREA\t>", "textarea", 13},
+		{"<div> </div> </TEXTAREA >", "textarea", 13},
+		{"<div> </div> </TEXTAREAfoo", "textarea", -1},
+		{"</TEXTAREAfoo </textarea>", "textarea", 14},
+		{"<</script >", "script", 1},
+		{"</script>", "textarea", -1},
+	}
+	for _, test := range tests {
+		if got := indexTagEnd([]byte(test.s), []byte(test.tag)); test.want != got {
+			t.Errorf("%q/%q: want\n\t%d\nbut got\n\t%d", test.s, test.tag, test.want, got)
+		}
+	}
+}
+
+func BenchmarkTemplateSpecialTags(b *testing.B) {
+
+	r := struct {
+		Name, Gift string
+	}{"Aunt Mildred", "bone china tea set"}
+
+	h1 := "<textarea> Hello Hello Hello </textarea> "
+	h2 := "<textarea> <p> Dear {{.Name}},\n{{with .Gift}}Thank you for the lovely {{.}}. {{end}}\nBest wishes. </p>\n</textarea>"
+	html := strings.Repeat(h1, 100) + h2 + strings.Repeat(h1, 100) + h2
+
+	var buf bytes.Buffer
+	for i := 0; i < b.N; i++ {
+		tmpl := Must(New("foo").Parse(html))
+		if err := tmpl.Execute(&buf, r); err != nil {
+			b.Fatal(err)
+		}
+		buf.Reset()
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/url.go b/go.dev/cmd/internal/html/template/url.go
new file mode 100644
index 0000000..6f8185a
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/url.go
@@ -0,0 +1,219 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"fmt"
+	"strings"
+)
+
+// urlFilter returns its input unless it contains an unsafe scheme in which
+// case it defangs the entire URL.
+//
+// Schemes that cause unintended side effects that are irreversible without user
+// interaction are considered unsafe. For example, clicking on a "javascript:"
+// link can immediately trigger JavaScript code execution.
+//
+// This filter conservatively assumes that all schemes other than the following
+// are unsafe:
+//    * http:   Navigates to a new website, and may open a new window or tab.
+//              These side effects can be reversed by navigating back to the
+//              previous website, or closing the window or tab. No irreversible
+//              changes will take place without further user interaction with
+//              the new website.
+//    * https:  Same as http.
+//    * mailto: Opens an email program and starts a new draft. This side effect
+//              is not irreversible until the user explicitly clicks send; it
+//              can be undone by closing the email program.
+//
+// To allow URLs containing other schemes to bypass this filter, developers must
+// explicitly indicate that such a URL is expected and safe by encapsulating it
+// in a template.URL value.
+func urlFilter(args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeURL {
+		return s
+	}
+	if !isSafeURL(s) {
+		return "#" + filterFailsafe
+	}
+	return s
+}
+
+// isSafeURL is true if s is a relative URL or if URL has a protocol in
+// (http, https, mailto).
+func isSafeURL(s string) bool {
+	if i := strings.IndexRune(s, ':'); i >= 0 && !strings.ContainsRune(s[:i], '/') {
+
+		protocol := s[:i]
+		if !strings.EqualFold(protocol, "http") && !strings.EqualFold(protocol, "https") && !strings.EqualFold(protocol, "mailto") {
+			return false
+		}
+	}
+	return true
+}
+
+// urlEscaper produces an output that can be embedded in a URL query.
+// The output can be embedded in an HTML attribute without further escaping.
+func urlEscaper(args ...interface{}) string {
+	return urlProcessor(false, args...)
+}
+
+// urlNormalizer normalizes URL content so it can be embedded in a quote-delimited
+// string or parenthesis delimited url(...).
+// The normalizer does not encode all HTML specials. Specifically, it does not
+// encode '&' so correct embedding in an HTML attribute requires escaping of
+// '&' to '&amp;'.
+func urlNormalizer(args ...interface{}) string {
+	return urlProcessor(true, args...)
+}
+
+// urlProcessor normalizes (when norm is true) or escapes its input to produce
+// a valid hierarchical or opaque URL part.
+func urlProcessor(norm bool, args ...interface{}) string {
+	s, t := stringify(args...)
+	if t == contentTypeURL {
+		norm = true
+	}
+	var b bytes.Buffer
+	if processURLOnto(s, norm, &b) {
+		return b.String()
+	}
+	return s
+}
+
+// processURLOnto appends a normalized URL corresponding to its input to b
+// and reports whether the appended content differs from s.
+func processURLOnto(s string, norm bool, b *bytes.Buffer) bool {
+	b.Grow(len(s) + 16)
+	written := 0
+	// The byte loop below assumes that all URLs use UTF-8 as the
+	// content-encoding. This is similar to the URI to IRI encoding scheme
+	// defined in section 3.1 of  RFC 3987, and behaves the same as the
+	// EcmaScript builtin encodeURIComponent.
+	// It should not cause any misencoding of URLs in pages with
+	// Content-type: text/html;charset=UTF-8.
+	for i, n := 0, len(s); i < n; i++ {
+		c := s[i]
+		switch c {
+		// Single quote and parens are sub-delims in RFC 3986, but we
+		// escape them so the output can be embedded in single
+		// quoted attributes and unquoted CSS url(...) constructs.
+		// Single quotes are reserved in URLs, but are only used in
+		// the obsolete "mark" rule in an appendix in RFC 3986
+		// so can be safely encoded.
+		case '!', '#', '$', '&', '*', '+', ',', '/', ':', ';', '=', '?', '@', '[', ']':
+			if norm {
+				continue
+			}
+		// Unreserved according to RFC 3986 sec 2.3
+		// "For consistency, percent-encoded octets in the ranges of
+		// ALPHA (%41-%5A and %61-%7A), DIGIT (%30-%39), hyphen (%2D),
+		// period (%2E), underscore (%5F), or tilde (%7E) should not be
+		// created by URI producers
+		case '-', '.', '_', '~':
+			continue
+		case '%':
+			// When normalizing do not re-encode valid escapes.
+			if norm && i+2 < len(s) && isHex(s[i+1]) && isHex(s[i+2]) {
+				continue
+			}
+		default:
+			// Unreserved according to RFC 3986 sec 2.3
+			if 'a' <= c && c <= 'z' {
+				continue
+			}
+			if 'A' <= c && c <= 'Z' {
+				continue
+			}
+			if '0' <= c && c <= '9' {
+				continue
+			}
+		}
+		b.WriteString(s[written:i])
+		fmt.Fprintf(b, "%%%02x", c)
+		written = i + 1
+	}
+	b.WriteString(s[written:])
+	return written != 0
+}
+
+// Filters and normalizes srcset values which are comma separated
+// URLs followed by metadata.
+func srcsetFilterAndEscaper(args ...interface{}) string {
+	s, t := stringify(args...)
+	switch t {
+	case contentTypeSrcset:
+		return s
+	case contentTypeURL:
+		// Normalizing gets rid of all HTML whitespace
+		// which separate the image URL from its metadata.
+		var b bytes.Buffer
+		if processURLOnto(s, true, &b) {
+			s = b.String()
+		}
+		// Additionally, commas separate one source from another.
+		return strings.ReplaceAll(s, ",", "%2c")
+	}
+
+	var b bytes.Buffer
+	written := 0
+	for i := 0; i < len(s); i++ {
+		if s[i] == ',' {
+			filterSrcsetElement(s, written, i, &b)
+			b.WriteString(",")
+			written = i + 1
+		}
+	}
+	filterSrcsetElement(s, written, len(s), &b)
+	return b.String()
+}
+
+// Derived from https://play.golang.org/p/Dhmj7FORT5
+const htmlSpaceAndASCIIAlnumBytes = "\x00\x36\x00\x00\x01\x00\xff\x03\xfe\xff\xff\x07\xfe\xff\xff\x07"
+
+// isHTMLSpace is true iff c is a whitespace character per
+// https://infra.spec.whatwg.org/#ascii-whitespace
+func isHTMLSpace(c byte) bool {
+	return (c <= 0x20) && 0 != (htmlSpaceAndASCIIAlnumBytes[c>>3]&(1<<uint(c&0x7)))
+}
+
+func isHTMLSpaceOrASCIIAlnum(c byte) bool {
+	return (c < 0x80) && 0 != (htmlSpaceAndASCIIAlnumBytes[c>>3]&(1<<uint(c&0x7)))
+}
+
+func filterSrcsetElement(s string, left int, right int, b *bytes.Buffer) {
+	start := left
+	for start < right && isHTMLSpace(s[start]) {
+		start++
+	}
+	end := right
+	for i := start; i < right; i++ {
+		if isHTMLSpace(s[i]) {
+			end = i
+			break
+		}
+	}
+	if url := s[start:end]; isSafeURL(url) {
+		// If image metadata is only spaces or alnums then
+		// we don't need to URL normalize it.
+		metadataOk := true
+		for i := end; i < right; i++ {
+			if !isHTMLSpaceOrASCIIAlnum(s[i]) {
+				metadataOk = false
+				break
+			}
+		}
+		if metadataOk {
+			b.WriteString(s[left:start])
+			processURLOnto(url, true, b)
+			b.WriteString(s[end:right])
+			return
+		}
+	}
+	b.WriteString("#")
+	b.WriteString(filterFailsafe)
+}
diff --git a/go.dev/cmd/internal/html/template/url_test.go b/go.dev/cmd/internal/html/template/url_test.go
new file mode 100644
index 0000000..75c354e
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/url_test.go
@@ -0,0 +1,169 @@
+// Copyright 2011 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 template
+
+import (
+	"testing"
+)
+
+func TestURLNormalizer(t *testing.T) {
+	tests := []struct {
+		url, want string
+	}{
+		{"", ""},
+		{
+			"http://example.com:80/foo/bar?q=foo%20&bar=x+y#frag",
+			"http://example.com:80/foo/bar?q=foo%20&bar=x+y#frag",
+		},
+		{" ", "%20"},
+		{"%7c", "%7c"},
+		{"%7C", "%7C"},
+		{"%2", "%252"},
+		{"%", "%25"},
+		{"%z", "%25z"},
+		{"/foo|bar/%5c\u1234", "/foo%7cbar/%5c%e1%88%b4"},
+	}
+	for _, test := range tests {
+		if got := urlNormalizer(test.url); test.want != got {
+			t.Errorf("%q: want\n\t%q\nbut got\n\t%q", test.url, test.want, got)
+		}
+		if test.want != urlNormalizer(test.want) {
+			t.Errorf("not idempotent: %q", test.want)
+		}
+	}
+}
+
+func TestURLFilters(t *testing.T) {
+	input := ("\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f" +
+		"\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+		` !"#$%&'()*+,-./` +
+		`0123456789:;<=>?` +
+		`@ABCDEFGHIJKLMNO` +
+		`PQRSTUVWXYZ[\]^_` +
+		"`abcdefghijklmno" +
+		"pqrstuvwxyz{|}~\x7f" +
+		"\u00A0\u0100\u2028\u2029\ufeff\U0001D11E")
+
+	tests := []struct {
+		name    string
+		escaper func(...interface{}) string
+		escaped string
+	}{
+		{
+			"urlEscaper",
+			urlEscaper,
+			"%00%01%02%03%04%05%06%07%08%09%0a%0b%0c%0d%0e%0f" +
+				"%10%11%12%13%14%15%16%17%18%19%1a%1b%1c%1d%1e%1f" +
+				"%20%21%22%23%24%25%26%27%28%29%2a%2b%2c-.%2f" +
+				"0123456789%3a%3b%3c%3d%3e%3f" +
+				"%40ABCDEFGHIJKLMNO" +
+				"PQRSTUVWXYZ%5b%5c%5d%5e_" +
+				"%60abcdefghijklmno" +
+				"pqrstuvwxyz%7b%7c%7d~%7f" +
+				"%c2%a0%c4%80%e2%80%a8%e2%80%a9%ef%bb%bf%f0%9d%84%9e",
+		},
+		{
+			"urlNormalizer",
+			urlNormalizer,
+			"%00%01%02%03%04%05%06%07%08%09%0a%0b%0c%0d%0e%0f" +
+				"%10%11%12%13%14%15%16%17%18%19%1a%1b%1c%1d%1e%1f" +
+				"%20!%22#$%25&%27%28%29*+,-./" +
+				"0123456789:;%3c=%3e?" +
+				"@ABCDEFGHIJKLMNO" +
+				"PQRSTUVWXYZ[%5c]%5e_" +
+				"%60abcdefghijklmno" +
+				"pqrstuvwxyz%7b%7c%7d~%7f" +
+				"%c2%a0%c4%80%e2%80%a8%e2%80%a9%ef%bb%bf%f0%9d%84%9e",
+		},
+	}
+
+	for _, test := range tests {
+		if s := test.escaper(input); s != test.escaped {
+			t.Errorf("%s: want\n\t%q\ngot\n\t%q", test.name, test.escaped, s)
+			continue
+		}
+	}
+}
+
+func TestSrcsetFilter(t *testing.T) {
+	tests := []struct {
+		name  string
+		input string
+		want  string
+	}{
+		{
+			"one ok",
+			"http://example.com/img.png",
+			"http://example.com/img.png",
+		},
+		{
+			"one ok with metadata",
+			" /img.png 200w",
+			" /img.png 200w",
+		},
+		{
+			"one bad",
+			"javascript:alert(1) 200w",
+			"#ZgotmplZ",
+		},
+		{
+			"two ok",
+			"foo.png, bar.png",
+			"foo.png, bar.png",
+		},
+		{
+			"left bad",
+			"javascript:alert(1), /foo.png",
+			"#ZgotmplZ, /foo.png",
+		},
+		{
+			"right bad",
+			"/bogus#, javascript:alert(1)",
+			"/bogus#,#ZgotmplZ",
+		},
+	}
+
+	for _, test := range tests {
+		if got := srcsetFilterAndEscaper(test.input); got != test.want {
+			t.Errorf("%s: srcsetFilterAndEscaper(%q) want %q != %q", test.name, test.input, test.want, got)
+		}
+	}
+}
+
+func BenchmarkURLEscaper(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		urlEscaper("http://example.com:80/foo?q=bar%20&baz=x+y#frag")
+	}
+}
+
+func BenchmarkURLEscaperNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		urlEscaper("TheQuickBrownFoxJumpsOverTheLazyDog.")
+	}
+}
+
+func BenchmarkURLNormalizer(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		urlNormalizer("The quick brown fox jumps over the lazy dog.\n")
+	}
+}
+
+func BenchmarkURLNormalizerNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		urlNormalizer("http://example.com:80/foo?q=bar%20&baz=x+y#frag")
+	}
+}
+
+func BenchmarkSrcsetFilter(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		srcsetFilterAndEscaper(" /foo/bar.png 200w, /baz/boo(1).png")
+	}
+}
+
+func BenchmarkSrcsetFilterNoSpecials(b *testing.B) {
+	for i := 0; i < b.N; i++ {
+		srcsetFilterAndEscaper("http://example.com:80/foo?q=bar%20&baz=x+y#frag")
+	}
+}
diff --git a/go.dev/cmd/internal/html/template/urlpart_string.go b/go.dev/cmd/internal/html/template/urlpart_string.go
new file mode 100644
index 0000000..813eea9
--- /dev/null
+++ b/go.dev/cmd/internal/html/template/urlpart_string.go
@@ -0,0 +1,16 @@
+// Code generated by "stringer -type urlPart"; DO NOT EDIT.
+
+package template
+
+import "strconv"
+
+const _urlPart_name = "urlPartNoneurlPartPreQueryurlPartQueryOrFragurlPartUnknown"
+
+var _urlPart_index = [...]uint8{0, 11, 26, 44, 58}
+
+func (i urlPart) String() string {
+	if i >= urlPart(len(_urlPart_index)-1) {
+		return "urlPart(" + strconv.FormatInt(int64(i), 10) + ")"
+	}
+	return _urlPart_name[_urlPart_index[i]:_urlPart_index[i+1]]
+}
diff --git a/go.dev/cmd/internal/site/md.go b/go.dev/cmd/internal/site/md.go
new file mode 100644
index 0000000..72ac255
--- /dev/null
+++ b/go.dev/cmd/internal/site/md.go
@@ -0,0 +1,96 @@
+// 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 site
+
+import (
+	"bytes"
+	"regexp"
+	"strings"
+
+	"github.com/yuin/goldmark"
+	"github.com/yuin/goldmark/ast"
+	"github.com/yuin/goldmark/extension"
+	"github.com/yuin/goldmark/parser"
+	"github.com/yuin/goldmark/renderer/html"
+	"github.com/yuin/goldmark/text"
+	"github.com/yuin/goldmark/util"
+	"golang.org/x/go.dev/cmd/internal/html/template"
+	"golang.org/x/go.dev/cmd/internal/tmplfunc"
+)
+
+// markdownToHTML converts markdown to HTML using the renderer and settings that Hugo uses.
+func markdownToHTML(markdown string) (template.HTML, error) {
+	// parser.WithHeadingAttribute allows custom ids on headings.
+	// html.WithUnsafe allows use of raw HTML, which we need for tables.
+	md := goldmark.New(
+		goldmark.WithParserOptions(
+			parser.WithHeadingAttribute(),
+			parser.WithAutoHeadingID(),
+			parser.WithASTTransformers(util.Prioritized(mdTransformFunc(mdLink), 1)),
+		),
+		goldmark.WithRendererOptions(html.WithUnsafe()),
+		goldmark.WithExtensions(
+			extension.NewTypographer(),
+			extension.NewLinkify(
+				extension.WithLinkifyAllowedProtocols([][]byte{[]byte("http"), []byte("https")}),
+				extension.WithLinkifyEmailRegexp(regexp.MustCompile(`[^\x00-\x{10FFFF}]`)), // impossible
+			),
+		),
+	)
+	var buf bytes.Buffer
+	if err := md.Convert([]byte(markdown), &buf); err != nil {
+		return "", err
+	}
+	return template.HTML(buf.Bytes()), nil
+}
+
+// mdTransformFunc is a func implementing parser.ASTTransformer.
+type mdTransformFunc func(*ast.Document, text.Reader, parser.Context)
+
+func (f mdTransformFunc) Transform(node *ast.Document, reader text.Reader, pc parser.Context) {
+	f(node, reader, pc)
+}
+
+// mdLink walks doc, adding rel=noreferrer target=_blank to non-relative links.
+func mdLink(doc *ast.Document, _ text.Reader, _ parser.Context) {
+	mdLinkWalk(doc)
+}
+
+func mdLinkWalk(n ast.Node) {
+	switch n := n.(type) {
+	case *ast.Link:
+		dest := string(n.Destination)
+		if strings.HasPrefix(dest, "https://") || strings.HasPrefix(dest, "http://") {
+			n.SetAttributeString("rel", []byte("noreferrer"))
+			n.SetAttributeString("target", []byte("_blank"))
+		}
+		return
+	case *ast.AutoLink:
+		// All autolinks are non-relative.
+		n.SetAttributeString("rel", []byte("noreferrer"))
+		n.SetAttributeString("target", []byte("_blank"))
+		return
+	}
+
+	for child := n.FirstChild(); child != nil; child = child.NextSibling() {
+		mdLinkWalk(child)
+	}
+}
+
+// markdownTemplateToHTML converts a markdown template to HTML,
+// first applying the template execution engine and then interpreting
+// the result as markdown to be converted to HTML.
+// This is the same logic used by the Go web site.
+func (site *Site) markdownTemplateToHTML(markdown string, p *page) (template.HTML, error) {
+	t := site.clone().New(p.file)
+	if err := tmplfunc.Parse(t, string(p.data)); err != nil {
+		return "", err
+	}
+	var buf bytes.Buffer
+	if err := t.Execute(&buf, p.params); err != nil {
+		return "", err
+	}
+	return markdownToHTML(buf.String())
+}
diff --git a/go.dev/cmd/internal/site/page.go b/go.dev/cmd/internal/site/page.go
new file mode 100644
index 0000000..5c9a7da
--- /dev/null
+++ b/go.dev/cmd/internal/site/page.go
@@ -0,0 +1,183 @@
+// 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 site
+
+import (
+	"bytes"
+	"fmt"
+	"io/ioutil"
+	"path"
+	"strings"
+	"time"
+
+	"golang.org/x/go.dev/cmd/internal/tmplfunc"
+	"gopkg.in/yaml.v3"
+)
+
+// A page is a single web page.
+// It corresponds to some .md file in the content tree.
+type page struct {
+	id     string // page ID (url path excluding site.BaseURL and trailing slash)
+	file   string // .md file for page
+	data   []byte // page data (markdown)
+	html   []byte // rendered page (HTML)
+	params tPage  // parameters passed to templates
+}
+
+// A tPage is the template form of the page, the data passed to rendering templates.
+type tPage map[string]interface{}
+
+// loadPage loads the site's page from the given file.
+// It returns the page but also adds the page to site.pages and site.pagesByID.
+func (site *Site) loadPage(file string) (*page, error) {
+	id := strings.TrimPrefix(file, "_content/")
+	if id == "index.md" {
+		id = ""
+	} else if strings.HasSuffix(id, "/index.md") {
+		id = strings.TrimSuffix(id, "/index.md")
+	} else {
+		id = strings.TrimSuffix(id, ".md")
+	}
+
+	p := site.newPage(id)
+	p.file = file
+
+	urlPath := "/" + p.id
+	if strings.HasSuffix(p.file, "/index.md") && p.id != "" {
+		urlPath += "/"
+	}
+
+	// Load content, including leading yaml.
+	data, err := ioutil.ReadFile(site.file(file))
+	if err != nil {
+		return nil, err
+	}
+	if bytes.HasPrefix(data, []byte("---\n")) {
+		i := bytes.Index(data, []byte("\n---\n"))
+		if i < 0 {
+			if bytes.HasSuffix(data, []byte("\n---")) {
+				i = len(data) - 4
+			}
+		}
+		if i >= 0 {
+			meta := data[4 : i+1]
+			err := yaml.Unmarshal(meta, p.params)
+			if err != nil {
+				return nil, fmt.Errorf("load %s: %v", file, err)
+			}
+
+			// Drop YAML but insert the right number of newlines to keep line numbers correct in template errors.
+			nl := 0
+			for _, c := range data[:i+4] {
+				if c == '\n' {
+					nl++
+				}
+			}
+			i += 4
+			for ; nl > 0; nl-- {
+				i--
+				data[i] = '\n'
+			}
+			data = data[i:]
+		}
+	}
+	p.data = data
+
+	// Default linkTitle to title
+	if _, ok := p.params["linkTitle"]; !ok {
+		p.params["linkTitle"] = p.params["title"]
+	}
+
+	// Parse date to Date.
+	// Note that YAML parser may have done it for us (!)
+	p.params["Date"] = time.Time{}
+	if d, ok := p.params["date"].(string); ok {
+		t, err := parseDate(d)
+		if err != nil {
+			return nil, err
+		}
+		p.params["Date"] = t
+	} else if d, ok := p.params["date"].(time.Time); ok {
+		p.params["Date"] = d
+	}
+
+	// Path, Dir, URL
+	p.params["Path"] = urlPath
+	p.params["Dir"] = path.Dir(urlPath)
+	p.params["URL"] = strings.TrimRight(site.URL, "/") + urlPath
+
+	// Parent
+	if p.id != "" {
+		parent := path.Dir("/" + p.id)
+		if parent != "/" {
+			parent += "/"
+		}
+		p.params["Parent"] = parent
+	}
+
+	// Section
+	section := "/"
+	if i := strings.Index(p.id, "/"); i >= 0 {
+		section = "/" + p.id[:i+1]
+	} else if strings.HasSuffix(p.file, "/index.md") {
+		section = "/" + p.id + "/"
+	}
+	p.params["Section"] = section
+
+	return p, nil
+}
+
+// renderHTML renders the HTML for the page, leaving it in p.html.
+func (site *Site) renderHTML(p *page) error {
+	content, err := site.markdownTemplateToHTML(string(p.data), p)
+	if err != nil {
+		return err
+	}
+	p.params["Content"] = content
+
+	// Load base template.
+	base, err := ioutil.ReadFile(site.file("_templates/layouts/site.tmpl"))
+	if err != nil {
+		return err
+	}
+	t := site.clone().New("_templates/layouts/site.tmpl")
+	if err := tmplfunc.Parse(t, string(base)); err != nil {
+		return err
+	}
+
+	// Load page-specific layout template.
+	layout, _ := p.params["layout"].(string)
+	if layout == "" {
+		layout = "default"
+	}
+	data, err := ioutil.ReadFile(site.file("_templates/layouts/" + layout + ".tmpl"))
+	if err != nil {
+		return err
+	}
+	if err := tmplfunc.Parse(t.New(layout), string(data)); err != nil {
+		return err
+	}
+
+	var buf bytes.Buffer
+	if err := t.Execute(&buf, p.params); err != nil {
+		return err
+	}
+	p.html = buf.Bytes()
+	return nil
+}
+
+var dateFormats = []string{
+	"2006-01-02",
+	time.RFC3339,
+}
+
+func parseDate(d string) (time.Time, error) {
+	for _, f := range dateFormats {
+		if tt, err := time.Parse(f, d); err == nil {
+			return tt, nil
+		}
+	}
+	return time.Time{}, fmt.Errorf("invalid date: %s", d)
+}
diff --git a/go.dev/cmd/internal/site/site.go b/go.dev/cmd/internal/site/site.go
new file mode 100644
index 0000000..f54077e
--- /dev/null
+++ b/go.dev/cmd/internal/site/site.go
@@ -0,0 +1,251 @@
+// 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 site implements generation of content for serving from go.dev.
+// It is meant to support a transition from being a Hugo-based web site
+// to being a site compatible with x/website.
+package site
+
+import (
+	"bytes"
+	"fmt"
+	"io"
+	"io/ioutil"
+	"net/http"
+	"os"
+	"path"
+	"path/filepath"
+	"sort"
+	"strings"
+	"time"
+
+	"golang.org/x/go.dev/cmd/internal/html/template"
+	"gopkg.in/yaml.v3"
+)
+
+// A Site holds metadata about the entire site.
+type Site struct {
+	URL   string
+	Title string
+
+	pagesByID map[string]*page
+	dir       string
+	base      *template.Template
+}
+
+// Load loads and returns the site in the directory rooted at dir.
+func Load(dir string) (*Site, error) {
+	dir, err := filepath.Abs(dir)
+	if err != nil {
+		return nil, err
+	}
+	site := &Site{
+		dir:       dir,
+		pagesByID: make(map[string]*page),
+	}
+	if err := site.initTemplate(); err != nil {
+		return nil, err
+	}
+
+	// Read site config.
+	data, err := ioutil.ReadFile(site.file("_content/site.yaml"))
+	if err != nil {
+		return nil, err
+	}
+	if err := yaml.Unmarshal(data, &site); err != nil {
+		return nil, fmt.Errorf("parsing _content/site.yaml: %v", err)
+	}
+
+	// Load site pages from md files.
+	err = filepath.Walk(site.file("_content"), func(name string, info os.FileInfo, err error) error {
+		if err != nil {
+			return err
+		}
+		if strings.HasSuffix(name, ".md") {
+			_, err := site.loadPage(name[len(site.file("."))+1:])
+			return err
+		}
+		return nil
+	})
+	if err != nil {
+		return nil, fmt.Errorf("loading pages: %v", err)
+	}
+
+	// Now that all pages are loaded and set up, can render all.
+	// (Pages can refer to other pages.)
+	for _, p := range site.pagesByID {
+		if err := site.renderHTML(p); err != nil {
+			return nil, err
+		}
+	}
+
+	return site, nil
+}
+
+// file returns the full path to the named file within the site.
+func (site *Site) file(name string) string { return filepath.Join(site.dir, name) }
+
+// newPage returns a new page belonging to site.
+func (site *Site) newPage(short string) *page {
+	p := &page{
+		id:     short,
+		params: make(tPage),
+	}
+	site.pagesByID[p.id] = p
+	return p
+}
+
+// data parses the named yaml file and returns its structured data.
+func (site *Site) data(name string) (interface{}, error) {
+	data, err := ioutil.ReadFile(site.file("_content/" + name + ".yaml"))
+	if err != nil {
+		return nil, err
+	}
+	var d interface{}
+	if err := yaml.Unmarshal(data, &d); err != nil {
+		return nil, err
+	}
+	return d, nil
+}
+
+// pageByID returns the page with a given path.
+func (site *Site) pageByPath(path string) (tPage, error) {
+	p := site.pagesByID[strings.Trim(path, "/")]
+	if p == nil {
+		return nil, fmt.Errorf("no such page with path %q", path)
+	}
+	return p.params, nil
+}
+
+// pagesGlob returns the pages with IDs matching glob.
+func (site *Site) pagesGlob(glob string) ([]tPage, error) {
+	_, err := path.Match(glob, "")
+	if err != nil {
+		return nil, err
+	}
+	glob = strings.Trim(glob, "/")
+	var out []tPage
+	for _, p := range site.pagesByID {
+		if ok, _ := path.Match(glob, p.id); ok {
+			out = append(out, p.params)
+		}
+	}
+
+	sort.Slice(out, func(i, j int) bool {
+		return out[i]["Path"].(string) < out[j]["Path"].(string)
+	})
+	return out, nil
+}
+
+// newest returns the pages sorted newest first,
+// breaking ties by .linkTitle or else .title.
+func newest(pages []tPage) []tPage {
+	out := make([]tPage, len(pages))
+	copy(out, pages)
+
+	sort.Slice(out, func(i, j int) bool {
+		pi := out[i]
+		pj := out[j]
+		di, _ := pi["Date"].(time.Time)
+		dj, _ := pj["Date"].(time.Time)
+		if !di.Equal(dj) {
+			return di.After(dj)
+		}
+		ti, _ := pi["linkTitle"].(string)
+		tj, _ := pj["linkTitle"].(string)
+		if ti != tj {
+			return ti < tj
+		}
+		return false
+	})
+	return out
+}
+
+// Open returns the content to serve at the given path.
+// This function makes Site an http.FileServer, for easy HTTP serving.
+func (site *Site) Open(name string) (http.File, error) {
+	name = strings.TrimPrefix(name, "/")
+	switch ext := path.Ext(name); ext {
+	case ".css", ".jpeg", ".jpg", ".js", ".png", ".svg", ".txt":
+		if f, err := os.Open(site.file("_content/" + name)); err == nil {
+			return f, nil
+		}
+
+	case ".html":
+		id := strings.TrimSuffix(name, "/index.html")
+		if name == "index.html" {
+			id = ""
+		}
+		if p := site.pagesByID[id]; p != nil {
+			if redir, ok := p.params["redirect"].(string); ok {
+				s := fmt.Sprintf(redirectFmt, redir)
+				return &httpFile{strings.NewReader(s), int64(len(s))}, nil
+			}
+			return &httpFile{bytes.NewReader(p.html), int64(len(p.html))}, nil
+		}
+	}
+
+	if !strings.HasSuffix(name, ".html") {
+		if f, err := site.Open(name + "/index.html"); err == nil {
+			size, err := f.Seek(0, io.SeekEnd)
+			f.Close()
+			if err == nil {
+				return &httpDir{httpFileInfo{"index.html", size, false}, 0}, nil
+			}
+		}
+	}
+
+	return nil, &os.PathError{Op: "open", Path: name, Err: os.ErrNotExist}
+}
+
+type httpFile struct {
+	io.ReadSeeker
+	size int64
+}
+
+func (*httpFile) Close() error                 { return nil }
+func (f *httpFile) Stat() (os.FileInfo, error) { return &httpFileInfo{".", f.size, false}, nil }
+func (*httpFile) Readdir(count int) ([]os.FileInfo, error) {
+	return nil, fmt.Errorf("readdir not available")
+}
+
+const redirectFmt = `<!DOCTYPE html><html><head><title>%s</title><link rel="canonical" href="%[1]s"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=%[1]s" /></head></html>`
+
+type httpDir struct {
+	info httpFileInfo
+	off  int // 0 or 1
+}
+
+func (*httpDir) Close() error                   { return nil }
+func (*httpDir) Read([]byte) (int, error)       { return 0, fmt.Errorf("read not available") }
+func (*httpDir) Seek(int64, int) (int64, error) { return 0, fmt.Errorf("seek not available") }
+func (*httpDir) Stat() (os.FileInfo, error)     { return &httpFileInfo{".", 0, true}, nil }
+func (d *httpDir) Readdir(count int) ([]os.FileInfo, error) {
+	if count == 0 {
+		return nil, nil
+	}
+	if d.off > 0 {
+		return nil, io.EOF
+	}
+	d.off = 1
+	return []os.FileInfo{&d.info}, nil
+}
+
+type httpFileInfo struct {
+	name string
+	size int64
+	dir  bool
+}
+
+func (info *httpFileInfo) Name() string { return info.name }
+func (info *httpFileInfo) Size() int64  { return info.size }
+func (info *httpFileInfo) Mode() os.FileMode {
+	if info.dir {
+		return os.ModeDir | 0555
+	}
+	return 0444
+}
+func (info *httpFileInfo) ModTime() time.Time { return time.Time{} }
+func (info *httpFileInfo) IsDir() bool        { return info.dir }
+func (info *httpFileInfo) Sys() interface{}   { return nil }
diff --git a/go.dev/cmd/internal/site/site_test.go b/go.dev/cmd/internal/site/site_test.go
new file mode 100644
index 0000000..f19b95c
--- /dev/null
+++ b/go.dev/cmd/internal/site/site_test.go
@@ -0,0 +1,122 @@
+// 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 site
+
+import (
+	"bytes"
+	"io/ioutil"
+	"os"
+	"path"
+	"path/filepath"
+	"regexp"
+	"testing"
+	"time"
+
+	"rsc.io/rf/diff"
+)
+
+func TestGolden(t *testing.T) {
+	start := time.Now()
+	site, err := Load("../../..")
+	if err != nil {
+		t.Fatal(err)
+	}
+	total := time.Since(start)
+	t.Logf("Load %v\n", total)
+
+	root := "../../../testdata/golden"
+	err = filepath.Walk(root, func(name string, info os.FileInfo, err error) error {
+		if err != nil {
+			return err
+		}
+		if info.IsDir() {
+			return nil
+		}
+		name = filepath.ToSlash(name[len(root)+1:])
+		switch name {
+		case "index.xml",
+			"categories/index.html",
+			"categories/index.xml",
+			"learn/index.xml",
+			"series/index.html",
+			"series/index.xml",
+			"series/case-studies/index.html",
+			"series/case-studies/index.xml",
+			"series/use-cases/index.html",
+			"series/use-cases/index.xml",
+			"sitemap.xml",
+			"solutions/google/index.xml",
+			"solutions/index.xml",
+			"tags/index.html",
+			"tags/index.xml":
+			t.Logf("%s <- SKIP\n", name)
+			return nil
+		}
+
+		want, err := ioutil.ReadFile(site.file("testdata/golden/" + name))
+		if err != nil {
+			t.Fatal(err)
+		}
+
+		start := time.Now()
+		f, err := site.Open(name)
+		if err != nil {
+			t.Fatal(err)
+		}
+		have, err := ioutil.ReadAll(f)
+		if err != nil {
+			t.Fatalf("%v: %v", name, err)
+		}
+		total += time.Since(start)
+
+		if path.Ext(name) == ".html" {
+			have = canonicalize(have)
+			want = canonicalize(want)
+			if !bytes.Equal(have, want) {
+				d, err := diff.Diff("hugo", want, "newgo", have)
+				if err != nil {
+					panic(err)
+				}
+				t.Fatalf("%s: diff:\n%s", name, d)
+			}
+			t.Logf("%s <- OK!\n", name)
+			return nil
+		}
+
+		if !bytes.Equal(have, want) {
+			t.Fatalf("%s: wrong bytes", name)
+		}
+		return nil
+	})
+	t.Logf("total %v", total)
+
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+// canonicalize trims trailing spaces and tabs at the ends of lines,
+// removes blank lines, and removes leading spaces before HTML tags.
+// This gives us a little more leeway in cases where it is difficult
+// to match Hugo's whitespace heuristics exactly or where we are
+// refactoring templates a little which changes spacing in inconsequential ways.
+func canonicalize(data []byte) []byte {
+	data = bytes.ReplaceAll(data, []byte("<li>"), []byte("<li>\n"))
+	data = bytes.ReplaceAll(data, []byte("</p>"), []byte("</p>\n"))
+	data = bytes.ReplaceAll(data, []byte("</ul>"), []byte("</ul>\n"))
+	data = regexp.MustCompile(`(<(img|hr)([^<>]*[^ <>])?) */>`).ReplaceAll(data, []byte("$1>")) // <img/> to <img>
+
+	lines := bytes.Split(data, []byte("\n"))
+	for i, line := range lines {
+		lines[i] = bytes.Trim(line, " \t")
+	}
+	var out [][]byte
+	for _, line := range lines {
+		if len(line) > 0 {
+			out = append(out, line)
+		}
+	}
+	return bytes.Join(out, []byte("\n"))
+}
diff --git a/go.dev/cmd/internal/site/tmpl.go b/go.dev/cmd/internal/site/tmpl.go
new file mode 100644
index 0000000..e245fd0
--- /dev/null
+++ b/go.dev/cmd/internal/site/tmpl.go
@@ -0,0 +1,118 @@
+// 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 site
+
+import (
+	"fmt"
+	"reflect"
+	"strings"
+
+	"golang.org/x/go.dev/cmd/internal/html/template"
+	"golang.org/x/go.dev/cmd/internal/tmplfunc"
+	"gopkg.in/yaml.v3"
+)
+
+func (site *Site) initTemplate() error {
+	funcs := template.FuncMap{
+		"add":      func(i, j int) int { return i + j },
+		"data":     site.data,
+		"dict":     dict,
+		"first":    first,
+		"markdown": markdown,
+		"newest":   newest,
+		"page":     site.pageByPath,
+		"pages":    site.pagesGlob,
+		"replace":  replace,
+		"rawhtml":  rawhtml,
+		"trim":     strings.Trim,
+		"yaml":     yamlFn,
+	}
+
+	site.base = template.New("site").Funcs(funcs)
+	if err := tmplfunc.ParseGlob(site.base, site.file("_templates/*.tmpl")); err != nil && !strings.Contains(err.Error(), "pattern matches no files") {
+		return err
+	}
+	return nil
+}
+
+func (site *Site) clone() *template.Template {
+	t := template.Must(site.base.Clone())
+	if err := tmplfunc.Funcs(t); err != nil {
+		panic(err)
+	}
+	return t
+}
+
+func toString(x interface{}) string {
+	switch x := x.(type) {
+	case string:
+		return x
+	case template.HTML:
+		return string(x)
+	case nil:
+		return ""
+	default:
+		panic(fmt.Sprintf("cannot toString %T", x))
+	}
+}
+
+func first(n int, list reflect.Value) reflect.Value {
+	if !list.IsValid() {
+		return list
+	}
+	if list.Kind() == reflect.Interface {
+		if list.IsNil() {
+			return list
+		}
+		list = list.Elem()
+	}
+
+	if list.Len() < n {
+		return list
+	}
+	return list.Slice(0, n)
+}
+
+func dict(args ...interface{}) map[string]interface{} {
+	m := make(map[string]interface{})
+	for i := 0; i < len(args); i += 2 {
+		m[args[i].(string)] = args[i+1]
+	}
+	m["Identifier"] = "IDENT"
+	return m
+}
+
+func list(args ...interface{}) []interface{} {
+	return args
+}
+
+// markdown is the function provided to templates.
+func markdown(data interface{}) (template.HTML, error) {
+	h, err := markdownToHTML(toString(data))
+	if err != nil {
+		return "", err
+	}
+	s := strings.TrimSpace(string(h))
+	if strings.HasPrefix(s, "<p>") && strings.HasSuffix(s, "</p>") && strings.Count(s, "<p>") == 1 {
+		h = template.HTML(strings.TrimSpace(s[len("<p>") : len(s)-len("</p>")]))
+	}
+	return h, nil
+}
+
+func replace(input, x, y interface{}) string {
+	return strings.ReplaceAll(toString(input), toString(x), toString(y))
+}
+
+func rawhtml(s interface{}) template.HTML {
+	return template.HTML(toString(s))
+}
+
+func yamlFn(s string) (interface{}, error) {
+	var d interface{}
+	if err := yaml.Unmarshal([]byte(s), &d); err != nil {
+		return nil, err
+	}
+	return d, nil
+}
diff --git a/go.dev/cmd/internal/text/template/doc.go b/go.dev/cmd/internal/text/template/doc.go
new file mode 100644
index 0000000..5332002
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/doc.go
@@ -0,0 +1,463 @@
+// Copyright 2011 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 template implements data-driven templates for generating textual output.
+
+To generate HTML output, see package html/template, which has the same interface
+as this package but automatically secures HTML output against certain attacks.
+
+Templates are executed by applying them to a data structure. Annotations in the
+template refer to elements of the data structure (typically a field of a struct
+or a key in a map) to control execution and derive values to be displayed.
+Execution of the template walks the structure and sets the cursor, represented
+by a period '.' and called "dot", to the value at the current location in the
+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.
+
+Here is a trivial example that prints "17 items are made of wool".
+
+	type Inventory struct {
+		Material string
+		Count    uint
+	}
+	sweaters := Inventory{"wool", 17}
+	tmpl, err := template.New("test").Parse("{{.Count}} items are made of {{.Material}}")
+	if err != nil { panic(err) }
+	err = tmpl.Execute(os.Stdout, sweaters)
+	if err != nil { panic(err) }
+
+More intricate examples appear below.
+
+Text and spaces
+
+By default, all text between actions is copied verbatim when the template is
+executed. For example, the string " items are made of " in the example above
+appears on standard output when the program is run.
+
+However, to aid in formatting template source code, if an action's left
+delimiter (by default "{{") is followed immediately by a minus sign and white
+space, all trailing white space is trimmed from the immediately preceding text.
+Similarly, if the right delimiter ("}}") is preceded by white space and a minus
+sign, all leading white space is trimmed from the immediately following text.
+In these trim markers, the white space must be present:
+"{{- 3}}" is like "{{3}}" but trims the immediately preceding text, while
+"{{-3}}" parses as an action containing the number -3.
+
+For instance, when executing the template whose source is
+
+	"{{23 -}} < {{- 45}}"
+
+the generated output would be
+
+	"23<45"
+
+For this trimming, the definition of white space characters is the same as in Go:
+space, horizontal tab, carriage return, and newline.
+
+Actions
+
+Here is the list of actions. "Arguments" and "pipelines" are evaluations of
+data, defined in detail in the corresponding sections that follow.
+
+*/
+//	{{/* a comment */}}
+//	{{- /* a comment with white space trimmed from preceding and following text */ -}}
+//		A comment; discarded. May contain newlines.
+//		Comments do not nest and must start and end at the
+//		delimiters, as shown here.
+/*
+
+	{{pipeline}}
+		The default textual representation (the same as would be
+		printed by fmt.Print) of the value of the pipeline is copied
+		to the output.
+
+	{{if pipeline}} T1 {{end}}
+		If the value of the pipeline is empty, no output is generated;
+		otherwise, T1 is executed. The empty values are false, 0, any
+		nil pointer or interface value, and any array, slice, map, or
+		string of length zero.
+		Dot is unaffected.
+
+	{{if pipeline}} T1 {{else}} T0 {{end}}
+		If the value of the pipeline is empty, T0 is executed;
+		otherwise, T1 is executed. Dot is unaffected.
+
+	{{if pipeline}} T1 {{else if pipeline}} T0 {{end}}
+		To simplify the appearance of if-else chains, the else action
+		of an if may include another if directly; the effect is exactly
+		the same as writing
+			{{if pipeline}} T1 {{else}}{{if pipeline}} T0 {{end}}{{end}}
+
+	{{range pipeline}} T1 {{end}}
+		The value of the pipeline must be an array, slice, map, or channel.
+		If the value of the pipeline has length zero, nothing is output;
+		otherwise, dot is set to the successive elements of the array,
+		slice, or map and T1 is executed. If the value is a map and the
+		keys are of basic type with a defined order, the elements will be
+		visited in sorted key order.
+
+	{{range pipeline}} T1 {{else}} T0 {{end}}
+		The value of the pipeline must be an array, slice, map, or channel.
+		If the value of the pipeline has length zero, dot is unaffected and
+		T0 is executed; otherwise, dot is set to the successive elements
+		of the array, slice, or map and T1 is executed.
+
+	{{break}}
+		The innermost {{range pipeline}} loop is ended early, stopping the
+		current iteration and bypassing all remaining iterations.
+
+	{{continue}}
+		The current iteration of the innermost {{range pipeline}} loop is
+		stopped, and the loop starts the next iteration.
+
+	{{template "name"}}
+		The template with the specified name is executed with nil data.
+
+	{{template "name" pipeline}}
+		The template with the specified name is executed with dot set
+		to the value of the pipeline.
+
+	{{block "name" pipeline}} T1 {{end}}
+		A block is shorthand for defining a template
+			{{define "name"}} T1 {{end}}
+		and then executing it in place
+			{{template "name" pipeline}}
+		The typical use is to define a set of root templates that are
+		then customized by redefining the block templates within.
+
+	{{with pipeline}} T1 {{end}}
+		If the value of the pipeline is empty, no output is generated;
+		otherwise, dot is set to the value of the pipeline and T1 is
+		executed.
+
+	{{with pipeline}} T1 {{else}} T0 {{end}}
+		If the value of the pipeline is empty, dot is unaffected and T0
+		is executed; otherwise, dot is set to the value of the pipeline
+		and T1 is executed.
+
+Arguments
+
+An argument is a simple value, denoted by one of the following.
+
+	- A boolean, string, character, integer, floating-point, imaginary
+	  or complex constant in Go syntax. These behave like Go's untyped
+	  constants. Note that, as in Go, whether a large integer constant
+	  overflows when assigned or passed to a function can depend on whether
+	  the host machine's ints are 32 or 64 bits.
+	- The keyword nil, representing an untyped Go nil.
+	- The character '.' (period):
+		.
+	  The result is the value of dot.
+	- A variable name, which is a (possibly empty) alphanumeric string
+	  preceded by a dollar sign, such as
+		$piOver2
+	  or
+		$
+	  The result is the value of the variable.
+	  Variables are described below.
+	- The name of a field of the data, which must be a struct, preceded
+	  by a period, such as
+		.Field
+	  The result is the value of the field. Field invocations may be
+	  chained:
+	    .Field1.Field2
+	  Fields can also be evaluated on variables, including chaining:
+	    $x.Field1.Field2
+	- The name of a key of the data, which must be a map, preceded
+	  by a period, such as
+		.Key
+	  The result is the map element value indexed by the key.
+	  Key invocations may be chained and combined with fields to any
+	  depth:
+	    .Field1.Key1.Field2.Key2
+	  Although the key must be an alphanumeric identifier, unlike with
+	  field names they do not need to start with an upper case letter.
+	  Keys can also be evaluated on variables, including chaining:
+	    $x.key1.key2
+	- The name of a niladic method of the data, preceded by a period,
+	  such as
+		.Method
+	  The result is the value of invoking the method with dot as the
+	  receiver, dot.Method(). Such a method must have one return value (of
+	  any type) or two return values, the second of which is an error.
+	  If it has two and the returned error is non-nil, execution terminates
+	  and an error is returned to the caller as the value of Execute.
+	  Method invocations may be chained and combined with fields and keys
+	  to any depth:
+	    .Field1.Key1.Method1.Field2.Key2.Method2
+	  Methods can also be evaluated on variables, including chaining:
+	    $x.Method1.Field
+	- The name of a niladic function, such as
+		fun
+	  The result is the value of invoking the function, fun(). The return
+	  types and values behave as in methods. Functions and function
+	  names are described below.
+	- A parenthesized instance of one the above, for grouping. The result
+	  may be accessed by a field or map key invocation.
+		print (.F1 arg1) (.F2 arg2)
+		(.StructValuedMethod "arg").Field
+
+Arguments may evaluate to any type; if they are pointers the implementation
+automatically indirects to the base type when required.
+If an evaluation yields a function value, such as a function-valued
+field of a struct, the function is not invoked automatically, but it
+can be used as a truth value for an if action and the like. To invoke
+it, use the call function, defined below.
+
+Pipelines
+
+A pipeline is a possibly chained sequence of "commands". A command is a simple
+value (argument) or a function or method call, possibly with multiple arguments:
+
+	Argument
+		The result is the value of evaluating the argument.
+	.Method [Argument...]
+		The method can be alone or the last element of a chain but,
+		unlike methods in the middle of a chain, it can take arguments.
+		The result is the value of calling the method with the
+		arguments:
+			dot.Method(Argument1, etc.)
+	functionName [Argument...]
+		The result is the value of calling the function associated
+		with the name:
+			function(Argument1, etc.)
+		Functions and function names are described below.
+
+A pipeline may be "chained" by separating a sequence of commands with pipeline
+characters '|'. In a chained pipeline, the result of each command is
+passed as the last argument of the following command. The output of the final
+command in the pipeline is the value of the pipeline.
+
+The output of a command will be either one value or two values, the second of
+which has type error. If that second value is present and evaluates to
+non-nil, execution terminates and the error is returned to the caller of
+Execute.
+
+Variables
+
+A pipeline inside an action may initialize a variable to capture the result.
+The initialization has syntax
+
+	$variable := pipeline
+
+where $variable is the name of the variable. An action that declares a
+variable produces no output.
+
+Variables previously declared can also be assigned, using the syntax
+
+	$variable = pipeline
+
+If a "range" action initializes a variable, the variable is set to the
+successive elements of the iteration. Also, a "range" may declare two
+variables, separated by a comma:
+
+	range $index, $element := pipeline
+
+in which case $index and $element are set to the successive values of the
+array/slice index or map key and element, respectively. Note that if there is
+only one variable, it is assigned the element; this is opposite to the
+convention in Go range clauses.
+
+A variable's scope extends to the "end" action of the control structure ("if",
+"with", or "range") in which it is declared, or to the end of the template if
+there is no such control structure. A template invocation does not inherit
+variables from the point of its invocation.
+
+When execution begins, $ is set to the data argument passed to Execute, that is,
+to the starting value of dot.
+
+Examples
+
+Here are some example one-line templates demonstrating pipelines and variables.
+All produce the quoted word "output":
+
+	{{"\"output\""}}
+		A string constant.
+	{{`"output"`}}
+		A raw string constant.
+	{{printf "%q" "output"}}
+		A function call.
+	{{"output" | printf "%q"}}
+		A function call whose final argument comes from the previous
+		command.
+	{{printf "%q" (print "out" "put")}}
+		A parenthesized argument.
+	{{"put" | printf "%s%s" "out" | printf "%q"}}
+		A more elaborate call.
+	{{"output" | printf "%s" | printf "%q"}}
+		A longer chain.
+	{{with "output"}}{{printf "%q" .}}{{end}}
+		A with action using dot.
+	{{with $x := "output" | printf "%q"}}{{$x}}{{end}}
+		A with action that creates and uses a variable.
+	{{with $x := "output"}}{{printf "%q" $x}}{{end}}
+		A with action that uses the variable in another action.
+	{{with $x := "output"}}{{$x | printf "%q"}}{{end}}
+		The same, but pipelined.
+
+Functions
+
+During execution functions are found in two function maps: first in the
+template, then in the global function map. By default, no functions are defined
+in the template but the Funcs method can be used to add them.
+
+Predefined global functions are named as follows.
+
+	and
+		Returns the boolean AND of its arguments by returning the
+		first empty argument or the last argument, that is,
+		"and x y" behaves as "if x then y else x." Only those
+		arguments necessary to determine the answer are evaluated.
+	call
+		Returns the result of calling the first argument, which
+		must be a function, with the remaining arguments as parameters.
+		Thus "call .X.Y 1 2" is, in Go notation, dot.X.Y(1, 2) where
+		Y is a func-valued field, map entry, or the like.
+		The first argument must be the result of an evaluation
+		that yields a value of function type (as distinct from
+		a predefined function such as print). The function must
+		return either one or two result values, the second of which
+		is of type error. If the arguments don't match the function
+		or the returned error value is non-nil, execution stops.
+	html
+		Returns the escaped HTML equivalent of the textual
+		representation of its arguments. This function is unavailable
+		in html/template, with a few exceptions.
+	index
+		Returns the result of indexing its first argument by the
+		following arguments. Thus "index x 1 2 3" is, in Go syntax,
+		x[1][2][3]. Each indexed item must be a map, slice, or array.
+	slice
+		slice returns the result of slicing its first argument by the
+		remaining arguments. Thus "slice x 1 2" is, in Go syntax, x[1:2],
+		while "slice x" is x[:], "slice x 1" is x[1:], and "slice x 1 2 3"
+		is x[1:2:3]. The first argument must be a string, slice, or array.
+	js
+		Returns the escaped JavaScript equivalent of the textual
+		representation of its arguments.
+	len
+		Returns the integer length of its argument.
+	not
+		Returns the boolean negation of its single argument.
+	or
+		Returns the boolean OR of its arguments by returning the
+		first non-empty argument or the last argument, that is,
+		"or x y" behaves as "if x then x else y". Only those
+		arguments necessary to determine the answer are evaluated.
+	print
+		An alias for fmt.Sprint
+	printf
+		An alias for fmt.Sprintf
+	println
+		An alias for fmt.Sprintln
+	urlquery
+		Returns the escaped value of the textual representation of
+		its arguments in a form suitable for embedding in a URL query.
+		This function is unavailable in html/template, with a few
+		exceptions.
+
+The boolean functions take any zero value to be false and a non-zero
+value to be true.
+
+There is also a set of binary comparison operators defined as
+functions:
+
+	eq
+		Returns the boolean truth of arg1 == arg2
+	ne
+		Returns the boolean truth of arg1 != arg2
+	lt
+		Returns the boolean truth of arg1 < arg2
+	le
+		Returns the boolean truth of arg1 <= arg2
+	gt
+		Returns the boolean truth of arg1 > arg2
+	ge
+		Returns the boolean truth of arg1 >= arg2
+
+For simpler multi-way equality tests, eq (only) accepts two or more
+arguments and compares the second and subsequent to the first,
+returning in effect
+
+	arg1==arg2 || arg1==arg3 || arg1==arg4 ...
+
+(Unlike with || in Go, however, eq is a function call and all the
+arguments will be evaluated.)
+
+The comparison functions work on any values whose type Go defines as
+comparable. For basic types such as integers, the rules are relaxed:
+size and exact type are ignored, so any integer value, signed or unsigned,
+may be compared with any other integer value. (The arithmetic value is compared,
+not the bit pattern, so all negative integers are less than all unsigned integers.)
+However, as usual, one may not compare an int with a float32 and so on.
+
+Associated templates
+
+Each template is named by a string specified when it is created. Also, each
+template is associated with zero or more other templates that it may invoke by
+name; such associations are transitive and form a name space of templates.
+
+A template may use a template invocation to instantiate another associated
+template; see the explanation of the "template" action above. The name must be
+that of a template associated with the template that contains the invocation.
+
+Nested template definitions
+
+When parsing a template, another template may be defined and associated with the
+template being parsed. Template definitions must appear at the top level of the
+template, much like global variables in a Go program.
+
+The syntax of such definitions is to surround each template declaration with a
+"define" and "end" action.
+
+The define action names the template being created by providing a string
+constant. Here is a simple example:
+
+	`{{define "T1"}}ONE{{end}}
+	{{define "T2"}}TWO{{end}}
+	{{define "T3"}}{{template "T1"}} {{template "T2"}}{{end}}
+	{{template "T3"}}`
+
+This defines two templates, T1 and T2, and a third T3 that invokes the other two
+when it is executed. Finally it invokes T3. If executed this template will
+produce the text
+
+	ONE TWO
+
+By construction, a template may reside in only one association. If it's
+necessary to have a template addressable from multiple associations, the
+template definition must be parsed multiple times to create distinct *Template
+values, or must be copied with the Clone or AddParseTree method.
+
+Parse may be called multiple times to assemble the various associated templates;
+see the ParseFiles and ParseGlob functions and methods for simple ways to parse
+related templates stored in files.
+
+A template may be executed directly or through ExecuteTemplate, which executes
+an associated template identified by name. To invoke our example above, we
+might write,
+
+	err := tmpl.Execute(os.Stdout, "no data needed")
+	if err != nil {
+		log.Fatalf("execution failed: %s", err)
+	}
+
+or to invoke a particular template explicitly by name,
+
+	err := tmpl.ExecuteTemplate(os.Stdout, "T2", "no data needed")
+	if err != nil {
+		log.Fatalf("execution failed: %s", err)
+	}
+
+*/
+package template
diff --git a/go.dev/cmd/internal/text/template/example_test.go b/go.dev/cmd/internal/text/template/example_test.go
new file mode 100644
index 0000000..48a136a
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/example_test.go
@@ -0,0 +1,111 @@
+// Copyright 2011 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 template_test
+
+import (
+	"log"
+	"os"
+	"strings"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+func ExampleTemplate() {
+	// Define a template.
+	const letter = `
+Dear {{.Name}},
+{{if .Attended}}
+It was a pleasure to see you at the wedding.
+{{- else}}
+It is a shame you couldn't make it to the wedding.
+{{- end}}
+{{with .Gift -}}
+Thank you for the lovely {{.}}.
+{{end}}
+Best wishes,
+Josie
+`
+
+	// Prepare some data to insert into the template.
+	type Recipient struct {
+		Name, Gift string
+		Attended   bool
+	}
+	var recipients = []Recipient{
+		{"Aunt Mildred", "bone china tea set", true},
+		{"Uncle John", "moleskin pants", false},
+		{"Cousin Rodney", "", false},
+	}
+
+	// Create a new template and parse the letter into it.
+	t := template.Must(template.New("letter").Parse(letter))
+
+	// Execute the template for each recipient.
+	for _, r := range recipients {
+		err := t.Execute(os.Stdout, r)
+		if err != nil {
+			log.Println("executing template:", err)
+		}
+	}
+
+	// Output:
+	// Dear Aunt Mildred,
+	//
+	// It was a pleasure to see you at the wedding.
+	// Thank you for the lovely bone china tea set.
+	//
+	// Best wishes,
+	// Josie
+	//
+	// Dear Uncle John,
+	//
+	// It is a shame you couldn't make it to the wedding.
+	// Thank you for the lovely moleskin pants.
+	//
+	// Best wishes,
+	// Josie
+	//
+	// Dear Cousin Rodney,
+	//
+	// It is a shame you couldn't make it to the wedding.
+	//
+	// Best wishes,
+	// Josie
+}
+
+// The following example is duplicated in html/template; keep them in sync.
+
+func ExampleTemplate_block() {
+	const (
+		master  = `Names:{{block "list" .}}{{"\n"}}{{range .}}{{println "-" .}}{{end}}{{end}}`
+		overlay = `{{define "list"}} {{join . ", "}}{{end}} `
+	)
+	var (
+		funcs     = template.FuncMap{"join": strings.Join}
+		guardians = []string{"Gamora", "Groot", "Nebula", "Rocket", "Star-Lord"}
+	)
+	masterTmpl, err := template.New("master").Funcs(funcs).Parse(master)
+	if err != nil {
+		log.Fatal(err)
+	}
+	overlayTmpl, err := template.Must(masterTmpl.Clone()).Parse(overlay)
+	if err != nil {
+		log.Fatal(err)
+	}
+	if err := masterTmpl.Execute(os.Stdout, guardians); err != nil {
+		log.Fatal(err)
+	}
+	if err := overlayTmpl.Execute(os.Stdout, guardians); err != nil {
+		log.Fatal(err)
+	}
+	// Output:
+	// Names:
+	// - Gamora
+	// - Groot
+	// - Nebula
+	// - Rocket
+	// - Star-Lord
+	// Names: Gamora, Groot, Nebula, Rocket, Star-Lord
+}
diff --git a/go.dev/cmd/internal/text/template/examplefiles_test.go b/go.dev/cmd/internal/text/template/examplefiles_test.go
new file mode 100644
index 0000000..bb90c6b
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/examplefiles_test.go
@@ -0,0 +1,183 @@
+// Copyright 2012 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 template_test
+
+import (
+	"io"
+	"io/ioutil"
+	"log"
+	"os"
+	"path/filepath"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+// templateFile defines the contents of a template to be stored in a file, for testing.
+type templateFile struct {
+	name     string
+	contents string
+}
+
+func createTestDir(files []templateFile) string {
+	dir, err := ioutil.TempDir("", "template")
+	if err != nil {
+		log.Fatal(err)
+	}
+	for _, file := range files {
+		f, err := os.Create(filepath.Join(dir, file.name))
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer f.Close()
+		_, err = io.WriteString(f, file.contents)
+		if err != nil {
+			log.Fatal(err)
+		}
+	}
+	return dir
+}
+
+// Here we demonstrate loading a set of templates from a directory.
+func ExampleTemplate_glob() {
+	// Here we create a temporary directory and populate it with our sample
+	// template definition files; usually the template files would already
+	// exist in some location known to the program.
+	dir := createTestDir([]templateFile{
+		// T0.tmpl is a plain template file that just invokes T1.
+		{"T0.tmpl", `T0 invokes T1: ({{template "T1"}})`},
+		// T1.tmpl defines a template, T1 that invokes T2.
+		{"T1.tmpl", `{{define "T1"}}T1 invokes T2: ({{template "T2"}}){{end}}`},
+		// T2.tmpl defines a template T2.
+		{"T2.tmpl", `{{define "T2"}}This is T2{{end}}`},
+	})
+	// Clean up after the test; another quirk of running as an example.
+	defer os.RemoveAll(dir)
+
+	// pattern is the glob pattern used to find all the template files.
+	pattern := filepath.Join(dir, "*.tmpl")
+
+	// Here starts the example proper.
+	// T0.tmpl is the first name matched, so it becomes the starting template,
+	// the value returned by ParseGlob.
+	tmpl := template.Must(template.ParseGlob(pattern))
+
+	err := tmpl.Execute(os.Stdout, nil)
+	if err != nil {
+		log.Fatalf("template execution: %s", err)
+	}
+	// Output:
+	// T0 invokes T1: (T1 invokes T2: (This is T2))
+}
+
+// This example demonstrates one way to share some templates
+// and use them in different contexts. In this variant we add multiple driver
+// templates by hand to an existing bundle of templates.
+func ExampleTemplate_helpers() {
+	// Here we create a temporary directory and populate it with our sample
+	// template definition files; usually the template files would already
+	// exist in some location known to the program.
+	dir := createTestDir([]templateFile{
+		// T1.tmpl defines a template, T1 that invokes T2.
+		{"T1.tmpl", `{{define "T1"}}T1 invokes T2: ({{template "T2"}}){{end}}`},
+		// T2.tmpl defines a template T2.
+		{"T2.tmpl", `{{define "T2"}}This is T2{{end}}`},
+	})
+	// Clean up after the test; another quirk of running as an example.
+	defer os.RemoveAll(dir)
+
+	// pattern is the glob pattern used to find all the template files.
+	pattern := filepath.Join(dir, "*.tmpl")
+
+	// Here starts the example proper.
+	// Load the helpers.
+	templates := template.Must(template.ParseGlob(pattern))
+	// Add one driver template to the bunch; we do this with an explicit template definition.
+	_, err := templates.Parse("{{define `driver1`}}Driver 1 calls T1: ({{template `T1`}})\n{{end}}")
+	if err != nil {
+		log.Fatal("parsing driver1: ", err)
+	}
+	// Add another driver template.
+	_, err = templates.Parse("{{define `driver2`}}Driver 2 calls T2: ({{template `T2`}})\n{{end}}")
+	if err != nil {
+		log.Fatal("parsing driver2: ", err)
+	}
+	// We load all the templates before execution. This package does not require
+	// that behavior but html/template's escaping does, so it's a good habit.
+	err = templates.ExecuteTemplate(os.Stdout, "driver1", nil)
+	if err != nil {
+		log.Fatalf("driver1 execution: %s", err)
+	}
+	err = templates.ExecuteTemplate(os.Stdout, "driver2", nil)
+	if err != nil {
+		log.Fatalf("driver2 execution: %s", err)
+	}
+	// Output:
+	// Driver 1 calls T1: (T1 invokes T2: (This is T2))
+	// Driver 2 calls T2: (This is T2)
+}
+
+// This example demonstrates how to use one group of driver
+// templates with distinct sets of helper templates.
+func ExampleTemplate_share() {
+	// Here we create a temporary directory and populate it with our sample
+	// template definition files; usually the template files would already
+	// exist in some location known to the program.
+	dir := createTestDir([]templateFile{
+		// T0.tmpl is a plain template file that just invokes T1.
+		{"T0.tmpl", "T0 ({{.}} version) invokes T1: ({{template `T1`}})\n"},
+		// T1.tmpl defines a template, T1 that invokes T2. Note T2 is not defined
+		{"T1.tmpl", `{{define "T1"}}T1 invokes T2: ({{template "T2"}}){{end}}`},
+	})
+	// Clean up after the test; another quirk of running as an example.
+	defer os.RemoveAll(dir)
+
+	// pattern is the glob pattern used to find all the template files.
+	pattern := filepath.Join(dir, "*.tmpl")
+
+	// Here starts the example proper.
+	// Load the drivers.
+	drivers := template.Must(template.ParseGlob(pattern))
+
+	// We must define an implementation of the T2 template. First we clone
+	// the drivers, then add a definition of T2 to the template name space.
+
+	// 1. Clone the helper set to create a new name space from which to run them.
+	first, err := drivers.Clone()
+	if err != nil {
+		log.Fatal("cloning helpers: ", err)
+	}
+	// 2. Define T2, version A, and parse it.
+	_, err = first.Parse("{{define `T2`}}T2, version A{{end}}")
+	if err != nil {
+		log.Fatal("parsing T2: ", err)
+	}
+
+	// Now repeat the whole thing, using a different version of T2.
+	// 1. Clone the drivers.
+	second, err := drivers.Clone()
+	if err != nil {
+		log.Fatal("cloning drivers: ", err)
+	}
+	// 2. Define T2, version B, and parse it.
+	_, err = second.Parse("{{define `T2`}}T2, version B{{end}}")
+	if err != nil {
+		log.Fatal("parsing T2: ", err)
+	}
+
+	// Execute the templates in the reverse order to verify the
+	// first is unaffected by the second.
+	err = second.ExecuteTemplate(os.Stdout, "T0.tmpl", "second")
+	if err != nil {
+		log.Fatalf("second execution: %s", err)
+	}
+	err = first.ExecuteTemplate(os.Stdout, "T0.tmpl", "first")
+	if err != nil {
+		log.Fatalf("first: execution: %s", err)
+	}
+
+	// Output:
+	// T0 (second version) invokes T1: (T1 invokes T2: (T2, version B))
+	// T0 (first version) invokes T1: (T1 invokes T2: (T2, version A))
+}
diff --git a/go.dev/cmd/internal/text/template/examplefunc_test.go b/go.dev/cmd/internal/text/template/examplefunc_test.go
new file mode 100644
index 0000000..03babf3
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/examplefunc_test.go
@@ -0,0 +1,55 @@
+// Copyright 2012 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 template_test
+
+import (
+	"log"
+	"os"
+	"strings"
+
+	"golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+// This example demonstrates a custom function to process template text.
+// It installs the strings.Title function and uses it to
+// Make Title Text Look Good In Our Template's Output.
+func ExampleTemplate_func() {
+	// First we create a FuncMap with which to register the function.
+	funcMap := template.FuncMap{
+		// The name "title" is what the function will be called in the template text.
+		"title": strings.Title,
+	}
+
+	// A simple template definition to test our function.
+	// We print the input text several ways:
+	// - the original
+	// - title-cased
+	// - title-cased and then printed with %q
+	// - printed with %q and then title-cased.
+	const templateText = `
+Input: {{printf "%q" .}}
+Output 0: {{title .}}
+Output 1: {{title . | printf "%q"}}
+Output 2: {{printf "%q" . | title}}
+`
+
+	// Create a template, add the function map, and parse the text.
+	tmpl, err := template.New("titleTest").Funcs(funcMap).Parse(templateText)
+	if err != nil {
+		log.Fatalf("parsing: %s", err)
+	}
+
+	// Run the template to verify the output.
+	err = tmpl.Execute(os.Stdout, "the go programming language")
+	if err != nil {
+		log.Fatalf("execution: %s", err)
+	}
+
+	// Output:
+	// Input: "the go programming language"
+	// Output 0: The Go Programming Language
+	// Output 1: "The Go Programming Language"
+	// Output 2: "The Go Programming Language"
+}
diff --git a/go.dev/cmd/internal/text/template/exec.go b/go.dev/cmd/internal/text/template/exec.go
new file mode 100644
index 0000000..35fbecb
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/exec.go
@@ -0,0 +1,1028 @@
+// Copyright 2011 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 template
+
+import (
+	"errors"
+	"fmt"
+	"io"
+	"reflect"
+	"runtime"
+	"strings"
+
+	"golang.org/x/go.dev/cmd/internal/fmtsort"
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+// maxExecDepth specifies the maximum stack depth of templates within
+// templates. This limit is only practically reached by accidentally
+// recursive template invocations. This limit allows us to return
+// an error instead of triggering a stack overflow.
+var maxExecDepth = initMaxExecDepth()
+
+func initMaxExecDepth() int {
+	if runtime.GOARCH == "wasm" {
+		return 1000
+	}
+	return 100000
+}
+
+// state represents the state of an execution. It's not part of the
+// template so that multiple executions of the same template
+// can execute in parallel.
+type state struct {
+	tmpl  *Template
+	wr    io.Writer
+	node  parse.Node // current node, for errors
+	vars  []variable // push-down stack of variable values.
+	depth int        // the height of the stack of executing templates.
+}
+
+// variable holds the dynamic value of a variable such as $, $x etc.
+type variable struct {
+	name  string
+	value reflect.Value
+}
+
+// push pushes a new variable on the stack.
+func (s *state) push(name string, value reflect.Value) {
+	s.vars = append(s.vars, variable{name, value})
+}
+
+// mark returns the length of the variable stack.
+func (s *state) mark() int {
+	return len(s.vars)
+}
+
+// pop pops the variable stack up to the mark.
+func (s *state) pop(mark int) {
+	s.vars = s.vars[0:mark]
+}
+
+// setVar overwrites the last declared variable with the given name.
+// Used by variable assignments.
+func (s *state) setVar(name string, value reflect.Value) {
+	for i := s.mark() - 1; i >= 0; i-- {
+		if s.vars[i].name == name {
+			s.vars[i].value = value
+			return
+		}
+	}
+	s.errorf("undefined variable: %s", name)
+}
+
+// setTopVar overwrites the top-nth variable on the stack. Used by range iterations.
+func (s *state) setTopVar(n int, value reflect.Value) {
+	s.vars[len(s.vars)-n].value = value
+}
+
+// varValue returns the value of the named variable.
+func (s *state) varValue(name string) reflect.Value {
+	for i := s.mark() - 1; i >= 0; i-- {
+		if s.vars[i].name == name {
+			return s.vars[i].value
+		}
+	}
+	s.errorf("undefined variable: %s", name)
+	return zero
+}
+
+var zero reflect.Value
+
+type missingValType struct{}
+
+var missingVal = reflect.ValueOf(missingValType{})
+
+// at marks the state to be on node n, for error reporting.
+func (s *state) at(node parse.Node) {
+	s.node = node
+}
+
+// doublePercent returns the string with %'s replaced by %%, if necessary,
+// so it can be used safely inside a Printf format string.
+func doublePercent(str string) string {
+	return strings.ReplaceAll(str, "%", "%%")
+}
+
+// TODO: It would be nice if ExecError was more broken down, but
+// the way ErrorContext embeds the template name makes the
+// processing too clumsy.
+
+// ExecError is the custom error type returned when Execute has an
+// error evaluating its template. (If a write error occurs, the actual
+// error is returned; it will not be of type ExecError.)
+type ExecError struct {
+	Name string // Name of template.
+	Err  error  // Pre-formatted error.
+}
+
+func (e ExecError) Error() string {
+	return e.Err.Error()
+}
+
+func (e ExecError) Unwrap() error {
+	return e.Err
+}
+
+// errorf records an ExecError and terminates processing.
+func (s *state) errorf(format string, args ...interface{}) {
+	name := doublePercent(s.tmpl.Name())
+	if s.node == nil {
+		format = fmt.Sprintf("template: %s: %s", name, format)
+	} else {
+		location, context := s.tmpl.ErrorContext(s.node)
+		format = fmt.Sprintf("template: %s: executing %q at <%s>: %s", location, name, doublePercent(context), format)
+	}
+	panic(ExecError{
+		Name: s.tmpl.Name(),
+		Err:  fmt.Errorf(format, args...),
+	})
+}
+
+// writeError is the wrapper type used internally when Execute has an
+// error writing to its output. We strip the wrapper in errRecover.
+// Note that this is not an implementation of error, so it cannot escape
+// from the package as an error value.
+type writeError struct {
+	Err error // Original error.
+}
+
+func (s *state) writeError(err error) {
+	panic(writeError{
+		Err: err,
+	})
+}
+
+// errRecover is the handler that turns panics into returns from the top
+// level of Parse.
+func errRecover(errp *error) {
+	e := recover()
+	if e != nil {
+		switch err := e.(type) {
+		case runtime.Error:
+			panic(e)
+		case writeError:
+			*errp = err.Err // Strip the wrapper.
+		case ExecError:
+			*errp = err // Keep the wrapper.
+		default:
+			panic(e)
+		}
+	}
+}
+
+// ExecuteTemplate applies the template associated with t that has the given name
+// to the specified data object and writes the output to wr.
+// If an error occurs executing the template or writing its output,
+// execution stops, but partial results may already have been written to
+// the output writer.
+// A template may be executed safely in parallel, although if parallel
+// executions share a Writer the output may be interleaved.
+func (t *Template) ExecuteTemplate(wr io.Writer, name string, data interface{}) error {
+	tmpl := t.Lookup(name)
+	if tmpl == nil {
+		return fmt.Errorf("template: no template %q associated with template %q", name, t.name)
+	}
+	return tmpl.Execute(wr, data)
+}
+
+// Execute applies a parsed template to the specified data object,
+// and writes the output to wr.
+// If an error occurs executing the template or writing its output,
+// execution stops, but partial results may already have been written to
+// the output writer.
+// A template may be executed safely in parallel, although if parallel
+// executions share a Writer the output may be interleaved.
+//
+// If data is a reflect.Value, the template applies to the concrete
+// value that the reflect.Value holds, as in fmt.Print.
+func (t *Template) Execute(wr io.Writer, data interface{}) error {
+	return t.execute(wr, data)
+}
+
+func (t *Template) execute(wr io.Writer, data interface{}) (err error) {
+	defer errRecover(&err)
+	value, ok := data.(reflect.Value)
+	if !ok {
+		value = reflect.ValueOf(data)
+	}
+	state := &state{
+		tmpl: t,
+		wr:   wr,
+		vars: []variable{{"$", value}},
+	}
+	if t.Tree == nil || t.Root == nil {
+		state.errorf("%q is an incomplete or empty template", t.Name())
+	}
+	state.walk(value, t.Root)
+	return
+}
+
+// DefinedTemplates returns a string listing the defined templates,
+// prefixed by the string "; defined templates are: ". If there are none,
+// it returns the empty string. For generating an error message here
+// and in html/template.
+func (t *Template) DefinedTemplates() string {
+	if t.common == nil {
+		return ""
+	}
+	var b strings.Builder
+	t.muTmpl.RLock()
+	defer t.muTmpl.RUnlock()
+	for name, tmpl := range t.tmpl {
+		if tmpl.Tree == nil || tmpl.Root == nil {
+			continue
+		}
+		if b.Len() == 0 {
+			b.WriteString("; defined templates are: ")
+		} else {
+			b.WriteString(", ")
+		}
+		fmt.Fprintf(&b, "%q", name)
+	}
+	return b.String()
+}
+
+// Sentinel errors for use with panic to signal early exits from range loops.
+var (
+	walkBreak    = errors.New("break")
+	walkContinue = errors.New("continue")
+)
+
+// Walk functions step through the major pieces of the template structure,
+// generating output as they go.
+func (s *state) walk(dot reflect.Value, node parse.Node) {
+	s.at(node)
+	switch node := node.(type) {
+	case *parse.ActionNode:
+		// Do not pop variables so they persist until next end.
+		// Also, if the action declares variables, don't print the result.
+		val := s.evalPipeline(dot, node.Pipe)
+		if len(node.Pipe.Decl) == 0 {
+			s.printValue(node, val)
+		}
+	case *parse.BreakNode:
+		panic(walkBreak)
+	case *parse.CommentNode:
+	case *parse.ContinueNode:
+		panic(walkContinue)
+	case *parse.IfNode:
+		s.walkIfOrWith(parse.NodeIf, dot, node.Pipe, node.List, node.ElseList)
+	case *parse.ListNode:
+		for _, node := range node.Nodes {
+			s.walk(dot, node)
+		}
+	case *parse.RangeNode:
+		s.walkRange(dot, node)
+	case *parse.TemplateNode:
+		s.walkTemplate(dot, node)
+	case *parse.TextNode:
+		if _, err := s.wr.Write(node.Text); err != nil {
+			s.writeError(err)
+		}
+	case *parse.WithNode:
+		s.walkIfOrWith(parse.NodeWith, dot, node.Pipe, node.List, node.ElseList)
+	default:
+		s.errorf("unknown node: %s", node)
+	}
+}
+
+// walkIfOrWith walks an 'if' or 'with' node. The two control structures
+// are identical in behavior except that 'with' sets dot.
+func (s *state) walkIfOrWith(typ parse.NodeType, dot reflect.Value, pipe *parse.PipeNode, list, elseList *parse.ListNode) {
+	defer s.pop(s.mark())
+	val := s.evalPipeline(dot, pipe)
+	truth, ok := isTrue(indirectInterface(val))
+	if !ok {
+		s.errorf("if/with can't use %v", val)
+	}
+	if truth {
+		if typ == parse.NodeWith {
+			s.walk(val, list)
+		} else {
+			s.walk(dot, list)
+		}
+	} else if elseList != nil {
+		s.walk(dot, elseList)
+	}
+}
+
+// IsTrue reports whether the value is 'true', in the sense of not the zero of its type,
+// and whether the value has a meaningful truth value. This is the definition of
+// truth used by if and other such actions.
+func IsTrue(val interface{}) (truth, ok bool) {
+	return isTrue(reflect.ValueOf(val))
+}
+
+func isTrue(val reflect.Value) (truth, ok bool) {
+	if !val.IsValid() {
+		// Something like var x interface{}, never set. It's a form of nil.
+		return false, true
+	}
+	switch val.Kind() {
+	case reflect.Array, reflect.Map, reflect.Slice, reflect.String:
+		truth = val.Len() > 0
+	case reflect.Bool:
+		truth = val.Bool()
+	case reflect.Complex64, reflect.Complex128:
+		truth = val.Complex() != 0
+	case reflect.Chan, reflect.Func, reflect.Ptr, reflect.Interface:
+		truth = !val.IsNil()
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		truth = val.Int() != 0
+	case reflect.Float32, reflect.Float64:
+		truth = val.Float() != 0
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		truth = val.Uint() != 0
+	case reflect.Struct:
+		truth = true // Struct values are always true.
+	default:
+		return
+	}
+	return truth, true
+}
+
+func (s *state) walkRange(dot reflect.Value, r *parse.RangeNode) {
+	s.at(r)
+	defer func() {
+		if r := recover(); r != nil && r != walkBreak {
+			panic(r)
+		}
+	}()
+	defer s.pop(s.mark())
+	val, _ := indirect(s.evalPipeline(dot, r.Pipe))
+	// mark top of stack before any variables in the body are pushed.
+	mark := s.mark()
+	oneIteration := func(index, elem reflect.Value) {
+		// Set top var (lexically the second if there are two) to the element.
+		if len(r.Pipe.Decl) > 0 {
+			s.setTopVar(1, elem)
+		}
+		// Set next var (lexically the first if there are two) to the index.
+		if len(r.Pipe.Decl) > 1 {
+			s.setTopVar(2, index)
+		}
+		defer s.pop(mark)
+		defer func() {
+			// Consume panic(walkContinue)
+			if r := recover(); r != nil && r != walkContinue {
+				panic(r)
+			}
+		}()
+		s.walk(elem, r.List)
+	}
+	switch val.Kind() {
+	case reflect.Array, reflect.Slice:
+		if val.Len() == 0 {
+			break
+		}
+		for i := 0; i < val.Len(); i++ {
+			oneIteration(reflect.ValueOf(i), val.Index(i))
+		}
+		return
+	case reflect.Map:
+		if val.Len() == 0 {
+			break
+		}
+		om := fmtsort.Sort(val)
+		for i, key := range om.Key {
+			oneIteration(key, om.Value[i])
+		}
+		return
+	case reflect.Chan:
+		if val.IsNil() {
+			break
+		}
+		if val.Type().ChanDir() == reflect.SendDir {
+			s.errorf("range over send-only channel %v", val)
+			break
+		}
+		i := 0
+		for ; ; i++ {
+			elem, ok := val.Recv()
+			if !ok {
+				break
+			}
+			oneIteration(reflect.ValueOf(i), elem)
+		}
+		if i == 0 {
+			break
+		}
+		return
+	case reflect.Invalid:
+		break // An invalid value is likely a nil map, etc. and acts like an empty map.
+	default:
+		s.errorf("range can't iterate over %v", val)
+	}
+	if r.ElseList != nil {
+		s.walk(dot, r.ElseList)
+	}
+}
+
+func (s *state) walkTemplate(dot reflect.Value, t *parse.TemplateNode) {
+	s.at(t)
+	tmpl := s.tmpl.Lookup(t.Name)
+	if tmpl == nil {
+		s.errorf("template %q not defined", t.Name)
+	}
+	if s.depth == maxExecDepth {
+		s.errorf("exceeded maximum template depth (%v)", maxExecDepth)
+	}
+	// Variables declared by the pipeline persist.
+	dot = s.evalPipeline(dot, t.Pipe)
+	newState := *s
+	newState.depth++
+	newState.tmpl = tmpl
+	// No dynamic scoping: template invocations inherit no variables.
+	newState.vars = []variable{{"$", dot}}
+	newState.walk(dot, tmpl.Root)
+}
+
+// Eval functions evaluate pipelines, commands, and their elements and extract
+// values from the data structure by examining fields, calling methods, and so on.
+// The printing of those values happens only through walk functions.
+
+// evalPipeline returns the value acquired by evaluating a pipeline. If the
+// pipeline has a variable declaration, the variable will be pushed on the
+// stack. Callers should therefore pop the stack after they are finished
+// executing commands depending on the pipeline value.
+func (s *state) evalPipeline(dot reflect.Value, pipe *parse.PipeNode) (value reflect.Value) {
+	if pipe == nil {
+		return
+	}
+	s.at(pipe)
+	value = missingVal
+	for _, cmd := range pipe.Cmds {
+		value = s.evalCommand(dot, cmd, value) // previous value is this one's final arg.
+		// If the object has type interface{}, dig down one level to the thing inside.
+		if value.Kind() == reflect.Interface && value.Type().NumMethod() == 0 {
+			value = reflect.ValueOf(value.Interface()) // lovely!
+		}
+	}
+	for _, variable := range pipe.Decl {
+		if pipe.IsAssign {
+			s.setVar(variable.Ident[0], value)
+		} else {
+			s.push(variable.Ident[0], value)
+		}
+	}
+	return value
+}
+
+func (s *state) notAFunction(args []parse.Node, final reflect.Value) {
+	if len(args) > 1 || final != missingVal {
+		s.errorf("can't give argument to non-function %s", args[0])
+	}
+}
+
+func (s *state) evalCommand(dot reflect.Value, cmd *parse.CommandNode, final reflect.Value) reflect.Value {
+	firstWord := cmd.Args[0]
+	switch n := firstWord.(type) {
+	case *parse.FieldNode:
+		return s.evalFieldNode(dot, n, cmd.Args, final)
+	case *parse.ChainNode:
+		return s.evalChainNode(dot, n, cmd.Args, final)
+	case *parse.IdentifierNode:
+		// Must be a function.
+		return s.evalFunction(dot, n, cmd, cmd.Args, final)
+	case *parse.PipeNode:
+		// Parenthesized pipeline. The arguments are all inside the pipeline; final must be absent.
+		s.notAFunction(cmd.Args, final)
+		return s.evalPipeline(dot, n)
+	case *parse.VariableNode:
+		return s.evalVariableNode(dot, n, cmd.Args, final)
+	}
+	s.at(firstWord)
+	s.notAFunction(cmd.Args, final)
+	switch word := firstWord.(type) {
+	case *parse.BoolNode:
+		return reflect.ValueOf(word.True)
+	case *parse.DotNode:
+		return dot
+	case *parse.NilNode:
+		s.errorf("nil is not a command")
+	case *parse.NumberNode:
+		return s.idealConstant(word)
+	case *parse.StringNode:
+		return reflect.ValueOf(word.Text)
+	}
+	s.errorf("can't evaluate command %q", firstWord)
+	panic("not reached")
+}
+
+// idealConstant is called to return the value of a number in a context where
+// we don't know the type. In that case, the syntax of the number tells us
+// its type, and we use Go rules to resolve. Note there is no such thing as
+// a uint ideal constant in this situation - the value must be of int type.
+func (s *state) idealConstant(constant *parse.NumberNode) reflect.Value {
+	// These are ideal constants but we don't know the type
+	// and we have no context.  (If it was a method argument,
+	// we'd know what we need.) The syntax guides us to some extent.
+	s.at(constant)
+	switch {
+	case constant.IsComplex:
+		return reflect.ValueOf(constant.Complex128) // incontrovertible.
+
+	case constant.IsFloat &&
+		!isHexInt(constant.Text) && !isRuneInt(constant.Text) &&
+		strings.ContainsAny(constant.Text, ".eEpP"):
+		return reflect.ValueOf(constant.Float64)
+
+	case constant.IsInt:
+		n := int(constant.Int64)
+		if int64(n) != constant.Int64 {
+			s.errorf("%s overflows int", constant.Text)
+		}
+		return reflect.ValueOf(n)
+
+	case constant.IsUint:
+		s.errorf("%s overflows int", constant.Text)
+	}
+	return zero
+}
+
+func isRuneInt(s string) bool {
+	return len(s) > 0 && s[0] == '\''
+}
+
+func isHexInt(s string) bool {
+	return len(s) > 2 && s[0] == '0' && (s[1] == 'x' || s[1] == 'X') && !strings.ContainsAny(s, "pP")
+}
+
+func (s *state) evalFieldNode(dot reflect.Value, field *parse.FieldNode, args []parse.Node, final reflect.Value) reflect.Value {
+	s.at(field)
+	return s.evalFieldChain(dot, dot, field, field.Ident, args, final)
+}
+
+func (s *state) evalChainNode(dot reflect.Value, chain *parse.ChainNode, args []parse.Node, final reflect.Value) reflect.Value {
+	s.at(chain)
+	if len(chain.Field) == 0 {
+		s.errorf("internal error: no fields in evalChainNode")
+	}
+	if chain.Node.Type() == parse.NodeNil {
+		s.errorf("indirection through explicit nil in %s", chain)
+	}
+	// (pipe).Field1.Field2 has pipe as .Node, fields as .Field. Eval the pipeline, then the fields.
+	pipe := s.evalArg(dot, nil, chain.Node)
+	return s.evalFieldChain(dot, pipe, chain, chain.Field, args, final)
+}
+
+func (s *state) evalVariableNode(dot reflect.Value, variable *parse.VariableNode, args []parse.Node, final reflect.Value) reflect.Value {
+	// $x.Field has $x as the first ident, Field as the second. Eval the var, then the fields.
+	s.at(variable)
+	value := s.varValue(variable.Ident[0])
+	if len(variable.Ident) == 1 {
+		s.notAFunction(args, final)
+		return value
+	}
+	return s.evalFieldChain(dot, value, variable, variable.Ident[1:], args, final)
+}
+
+// evalFieldChain evaluates .X.Y.Z possibly followed by arguments.
+// dot is the environment in which to evaluate arguments, while
+// receiver is the value being walked along the chain.
+func (s *state) evalFieldChain(dot, receiver reflect.Value, node parse.Node, ident []string, args []parse.Node, final reflect.Value) reflect.Value {
+	n := len(ident)
+	for i := 0; i < n-1; i++ {
+		receiver = s.evalField(dot, ident[i], node, nil, missingVal, receiver)
+	}
+	// Now if it's a method, it gets the arguments.
+	return s.evalField(dot, ident[n-1], node, args, final, receiver)
+}
+
+func (s *state) evalFunction(dot reflect.Value, node *parse.IdentifierNode, cmd parse.Node, args []parse.Node, final reflect.Value) reflect.Value {
+	s.at(node)
+	name := node.Ident
+	function, isBuiltin, ok := findFunction(name, s.tmpl)
+	if !ok {
+		s.errorf("%q is not a defined function", name)
+	}
+	return s.evalCall(dot, function, isBuiltin, cmd, name, args, final)
+}
+
+// evalField evaluates an expression like (.Field) or (.Field arg1 arg2).
+// The 'final' argument represents the return value from the preceding
+// value of the pipeline, if any.
+func (s *state) evalField(dot reflect.Value, fieldName string, node parse.Node, args []parse.Node, final, receiver reflect.Value) reflect.Value {
+	if !receiver.IsValid() {
+		if s.tmpl.option.missingKey == mapError { // Treat invalid value as missing map key.
+			s.errorf("nil data; no entry for key %q", fieldName)
+		}
+		return zero
+	}
+	typ := receiver.Type()
+	receiver, isNil := indirect(receiver)
+	if receiver.Kind() == reflect.Interface && isNil {
+		// Calling a method on a nil interface can't work. The
+		// MethodByName method call below would panic.
+		s.errorf("nil pointer evaluating %s.%s", typ, fieldName)
+		return zero
+	}
+
+	// Unless it's an interface, need to get to a value of type *T to guarantee
+	// we see all methods of T and *T.
+	ptr := receiver
+	if ptr.Kind() != reflect.Interface && ptr.Kind() != reflect.Ptr && ptr.CanAddr() {
+		ptr = ptr.Addr()
+	}
+	if method := ptr.MethodByName(fieldName); method.IsValid() {
+		return s.evalCall(dot, method, false, node, fieldName, args, final)
+	}
+	hasArgs := len(args) > 1 || final != missingVal
+	// It's not a method; must be a field of a struct or an element of a map.
+	switch receiver.Kind() {
+	case reflect.Struct:
+		tField, ok := receiver.Type().FieldByName(fieldName)
+		if ok {
+			field := receiver.FieldByIndex(tField.Index)
+			if tField.PkgPath != "" {
+				s.errorf("%s is an unexported field of struct type %s", fieldName, typ)
+			}
+			// If it's a function, we must call it.
+			if hasArgs {
+				s.errorf("%s has arguments but cannot be invoked as function", fieldName)
+			}
+			return field
+		}
+	case reflect.Map:
+		// If it's a map, attempt to use the field name as a key.
+		nameVal := reflect.ValueOf(fieldName)
+		if nameVal.Type().AssignableTo(receiver.Type().Key()) {
+			if hasArgs {
+				s.errorf("%s is not a method but has arguments", fieldName)
+			}
+			result := receiver.MapIndex(nameVal)
+			if !result.IsValid() {
+				switch s.tmpl.option.missingKey {
+				case mapInvalid:
+					// Just use the invalid value.
+				case mapZeroValue:
+					result = reflect.Zero(receiver.Type().Elem())
+				case mapError:
+					s.errorf("map has no entry for key %q", fieldName)
+				}
+			}
+			return result
+		}
+	case reflect.Ptr:
+		etyp := receiver.Type().Elem()
+		if etyp.Kind() == reflect.Struct {
+			if _, ok := etyp.FieldByName(fieldName); !ok {
+				// If there's no such field, say "can't evaluate"
+				// instead of "nil pointer evaluating".
+				break
+			}
+		}
+		if isNil {
+			s.errorf("nil pointer evaluating %s.%s", typ, fieldName)
+		}
+	}
+	s.errorf("can't evaluate field %s in type %s", fieldName, typ)
+	panic("not reached")
+}
+
+var (
+	errorType        = reflect.TypeOf((*error)(nil)).Elem()
+	fmtStringerType  = reflect.TypeOf((*fmt.Stringer)(nil)).Elem()
+	reflectValueType = reflect.TypeOf((*reflect.Value)(nil)).Elem()
+)
+
+// evalCall executes a function or method call. If it's a method, fun already has the receiver bound, so
+// it looks just like a function call. The arg list, if non-nil, includes (in the manner of the shell), arg[0]
+// as the function itself.
+func (s *state) evalCall(dot, fun reflect.Value, isBuiltin bool, node parse.Node, name string, args []parse.Node, final reflect.Value) reflect.Value {
+	if args != nil {
+		args = args[1:] // Zeroth arg is function name/node; not passed to function.
+	}
+	typ := fun.Type()
+	numIn := len(args)
+	if final != missingVal {
+		numIn++
+	}
+	numFixed := len(args)
+	if typ.IsVariadic() {
+		numFixed = typ.NumIn() - 1 // last arg is the variadic one.
+		if numIn < numFixed {
+			s.errorf("wrong number of args for %s: want at least %d got %d", name, typ.NumIn()-1, len(args))
+		}
+	} else if numIn != typ.NumIn() {
+		s.errorf("wrong number of args for %s: want %d got %d", name, typ.NumIn(), numIn)
+	}
+	if !goodFunc(typ) {
+		// TODO: This could still be a confusing error; maybe goodFunc should provide info.
+		s.errorf("can't call method/function %q with %d results", name, typ.NumOut())
+	}
+
+	// Special case for builtin and/or, which short-circuit.
+	if isBuiltin && (name == "and" || name == "or") {
+		argType := typ.In(0)
+		var v reflect.Value
+		for _, arg := range args {
+			v = s.evalArg(dot, argType, arg).Interface().(reflect.Value)
+			if truth(v) == (name == "or") {
+				break
+			}
+		}
+		return v
+	}
+
+	// Build the arg list.
+	argv := make([]reflect.Value, numIn)
+	// Args must be evaluated. Fixed args first.
+	i := 0
+	for ; i < numFixed && i < len(args); i++ {
+		argv[i] = s.evalArg(dot, typ.In(i), args[i])
+	}
+	// Now the ... args.
+	if typ.IsVariadic() {
+		argType := typ.In(typ.NumIn() - 1).Elem() // Argument is a slice.
+		for ; i < len(args); i++ {
+			argv[i] = s.evalArg(dot, argType, args[i])
+		}
+	}
+	// Add final value if necessary.
+	if final != missingVal {
+		t := typ.In(typ.NumIn() - 1)
+		if typ.IsVariadic() {
+			if numIn-1 < numFixed {
+				// The added final argument corresponds to a fixed parameter of the function.
+				// Validate against the type of the actual parameter.
+				t = typ.In(numIn - 1)
+			} else {
+				// The added final argument corresponds to the variadic part.
+				// Validate against the type of the elements of the variadic slice.
+				t = t.Elem()
+			}
+		}
+		argv[i] = s.validateType(final, t)
+	}
+	v, err := safeCall(fun, argv)
+	// If we have an error that is not nil, stop execution and return that
+	// error to the caller.
+	if err != nil {
+		s.at(node)
+		s.errorf("error calling %s: %w", name, err)
+	}
+	if v.Type() == reflectValueType {
+		v = v.Interface().(reflect.Value)
+	}
+	return v
+}
+
+// canBeNil reports whether an untyped nil can be assigned to the type. See reflect.Zero.
+func canBeNil(typ reflect.Type) bool {
+	switch typ.Kind() {
+	case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:
+		return true
+	case reflect.Struct:
+		return typ == reflectValueType
+	}
+	return false
+}
+
+// validateType guarantees that the value is valid and assignable to the type.
+func (s *state) validateType(value reflect.Value, typ reflect.Type) reflect.Value {
+	if !value.IsValid() {
+		if typ == nil {
+			// An untyped nil interface{}. Accept as a proper nil value.
+			return reflect.ValueOf(nil)
+		}
+		if canBeNil(typ) {
+			// Like above, but use the zero value of the non-nil type.
+			return reflect.Zero(typ)
+		}
+		s.errorf("invalid value; expected %s", typ)
+	}
+	if typ == reflectValueType && value.Type() != typ {
+		return reflect.ValueOf(value)
+	}
+	if typ != nil && !value.Type().AssignableTo(typ) {
+		if value.Kind() == reflect.Interface && !value.IsNil() {
+			value = value.Elem()
+			if value.Type().AssignableTo(typ) {
+				return value
+			}
+			// fallthrough
+		}
+		// Does one dereference or indirection work? We could do more, as we
+		// do with method receivers, but that gets messy and method receivers
+		// are much more constrained, so it makes more sense there than here.
+		// Besides, one is almost always all you need.
+		switch {
+		case value.Kind() == reflect.Ptr && value.Type().Elem().AssignableTo(typ):
+			value = value.Elem()
+			if !value.IsValid() {
+				s.errorf("dereference of nil pointer of type %s", typ)
+			}
+		case reflect.PtrTo(value.Type()).AssignableTo(typ) && value.CanAddr():
+			value = value.Addr()
+		default:
+			s.errorf("wrong type for value; expected %s; got %s", typ, value.Type())
+		}
+	}
+	return value
+}
+
+func (s *state) evalArg(dot reflect.Value, typ reflect.Type, n parse.Node) reflect.Value {
+	s.at(n)
+	switch arg := n.(type) {
+	case *parse.DotNode:
+		return s.validateType(dot, typ)
+	case *parse.NilNode:
+		if canBeNil(typ) {
+			return reflect.Zero(typ)
+		}
+		s.errorf("cannot assign nil to %s", typ)
+	case *parse.FieldNode:
+		return s.validateType(s.evalFieldNode(dot, arg, []parse.Node{n}, missingVal), typ)
+	case *parse.VariableNode:
+		return s.validateType(s.evalVariableNode(dot, arg, nil, missingVal), typ)
+	case *parse.PipeNode:
+		return s.validateType(s.evalPipeline(dot, arg), typ)
+	case *parse.IdentifierNode:
+		return s.validateType(s.evalFunction(dot, arg, arg, nil, missingVal), typ)
+	case *parse.ChainNode:
+		return s.validateType(s.evalChainNode(dot, arg, nil, missingVal), typ)
+	}
+	switch typ.Kind() {
+	case reflect.Bool:
+		return s.evalBool(typ, n)
+	case reflect.Complex64, reflect.Complex128:
+		return s.evalComplex(typ, n)
+	case reflect.Float32, reflect.Float64:
+		return s.evalFloat(typ, n)
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		return s.evalInteger(typ, n)
+	case reflect.Interface:
+		if typ.NumMethod() == 0 {
+			return s.evalEmptyInterface(dot, n)
+		}
+	case reflect.Struct:
+		if typ == reflectValueType {
+			return reflect.ValueOf(s.evalEmptyInterface(dot, n))
+		}
+	case reflect.String:
+		return s.evalString(typ, n)
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		return s.evalUnsignedInteger(typ, n)
+	}
+	s.errorf("can't handle %s for arg of type %s", n, typ)
+	panic("not reached")
+}
+
+func (s *state) evalBool(typ reflect.Type, n parse.Node) reflect.Value {
+	s.at(n)
+	if n, ok := n.(*parse.BoolNode); ok {
+		value := reflect.New(typ).Elem()
+		value.SetBool(n.True)
+		return value
+	}
+	s.errorf("expected bool; found %s", n)
+	panic("not reached")
+}
+
+func (s *state) evalString(typ reflect.Type, n parse.Node) reflect.Value {
+	s.at(n)
+	if n, ok := n.(*parse.StringNode); ok {
+		value := reflect.New(typ).Elem()
+		value.SetString(n.Text)
+		return value
+	}
+	s.errorf("expected string; found %s", n)
+	panic("not reached")
+}
+
+func (s *state) evalInteger(typ reflect.Type, n parse.Node) reflect.Value {
+	s.at(n)
+	if n, ok := n.(*parse.NumberNode); ok && n.IsInt {
+		value := reflect.New(typ).Elem()
+		value.SetInt(n.Int64)
+		return value
+	}
+	s.errorf("expected integer; found %s", n)
+	panic("not reached")
+}
+
+func (s *state) evalUnsignedInteger(typ reflect.Type, n parse.Node) reflect.Value {
+	s.at(n)
+	if n, ok := n.(*parse.NumberNode); ok && n.IsUint {
+		value := reflect.New(typ).Elem()
+		value.SetUint(n.Uint64)
+		return value
+	}
+	s.errorf("expected unsigned integer; found %s", n)
+	panic("not reached")
+}
+
+func (s *state) evalFloat(typ reflect.Type, n parse.Node) reflect.Value {
+	s.at(n)
+	if n, ok := n.(*parse.NumberNode); ok && n.IsFloat {
+		value := reflect.New(typ).Elem()
+		value.SetFloat(n.Float64)
+		return value
+	}
+	s.errorf("expected float; found %s", n)
+	panic("not reached")
+}
+
+func (s *state) evalComplex(typ reflect.Type, n parse.Node) reflect.Value {
+	if n, ok := n.(*parse.NumberNode); ok && n.IsComplex {
+		value := reflect.New(typ).Elem()
+		value.SetComplex(n.Complex128)
+		return value
+	}
+	s.errorf("expected complex; found %s", n)
+	panic("not reached")
+}
+
+func (s *state) evalEmptyInterface(dot reflect.Value, n parse.Node) reflect.Value {
+	s.at(n)
+	switch n := n.(type) {
+	case *parse.BoolNode:
+		return reflect.ValueOf(n.True)
+	case *parse.DotNode:
+		return dot
+	case *parse.FieldNode:
+		return s.evalFieldNode(dot, n, nil, missingVal)
+	case *parse.IdentifierNode:
+		return s.evalFunction(dot, n, n, nil, missingVal)
+	case *parse.NilNode:
+		// NilNode is handled in evalArg, the only place that calls here.
+		s.errorf("evalEmptyInterface: nil (can't happen)")
+	case *parse.NumberNode:
+		return s.idealConstant(n)
+	case *parse.StringNode:
+		return reflect.ValueOf(n.Text)
+	case *parse.VariableNode:
+		return s.evalVariableNode(dot, n, nil, missingVal)
+	case *parse.PipeNode:
+		return s.evalPipeline(dot, n)
+	}
+	s.errorf("can't handle assignment of %s to empty interface argument", n)
+	panic("not reached")
+}
+
+// indirect returns the item at the end of indirection, and a bool to indicate
+// if it's nil. If the returned bool is true, the returned value's kind will be
+// either a pointer or interface.
+func indirect(v reflect.Value) (rv reflect.Value, isNil bool) {
+	for ; v.Kind() == reflect.Ptr || v.Kind() == reflect.Interface; v = v.Elem() {
+		if v.IsNil() {
+			return v, true
+		}
+	}
+	return v, false
+}
+
+// indirectInterface returns the concrete value in an interface value,
+// or else the zero reflect.Value.
+// That is, if v represents the interface value x, the result is the same as reflect.ValueOf(x):
+// the fact that x was an interface value is forgotten.
+func indirectInterface(v reflect.Value) reflect.Value {
+	if v.Kind() != reflect.Interface {
+		return v
+	}
+	if v.IsNil() {
+		return reflect.Value{}
+	}
+	return v.Elem()
+}
+
+// printValue writes the textual representation of the value to the output of
+// the template.
+func (s *state) printValue(n parse.Node, v reflect.Value) {
+	s.at(n)
+	iface, ok := printableValue(v)
+	if !ok {
+		s.errorf("can't print %s of type %s", n, v.Type())
+	}
+	_, err := fmt.Fprint(s.wr, iface)
+	if err != nil {
+		s.writeError(err)
+	}
+}
+
+// printableValue returns the, possibly indirected, interface value inside v that
+// is best for a call to formatted printer.
+func printableValue(v reflect.Value) (interface{}, bool) {
+	if v.Kind() == reflect.Ptr {
+		v, _ = indirect(v) // fmt.Fprint handles nil.
+	}
+	if !v.IsValid() {
+		return "<no value>", true
+	}
+
+	if !v.Type().Implements(errorType) && !v.Type().Implements(fmtStringerType) {
+		if v.CanAddr() && (reflect.PtrTo(v.Type()).Implements(errorType) || reflect.PtrTo(v.Type()).Implements(fmtStringerType)) {
+			v = v.Addr()
+		} else {
+			switch v.Kind() {
+			case reflect.Chan, reflect.Func:
+				return nil, false
+			}
+		}
+	}
+	return v.Interface(), true
+}
diff --git a/go.dev/cmd/internal/text/template/exec_test.go b/go.dev/cmd/internal/text/template/exec_test.go
new file mode 100644
index 0000000..dbf2631
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/exec_test.go
@@ -0,0 +1,1782 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"errors"
+	"flag"
+	"fmt"
+	"io/ioutil"
+	"reflect"
+	"strings"
+	"sync"
+	"testing"
+)
+
+var debug = flag.Bool("debug", false, "show the errors produced by the tests")
+
+// T has lots of interesting pieces to use to test execution.
+type T struct {
+	// Basics
+	True        bool
+	I           int
+	U16         uint16
+	X, S        string
+	FloatZero   float64
+	ComplexZero complex128
+	// Nested structs.
+	U *U
+	// Struct with String method.
+	V0     V
+	V1, V2 *V
+	// Struct with Error method.
+	W0     W
+	W1, W2 *W
+	// Slices
+	SI      []int
+	SICap   []int
+	SIEmpty []int
+	SB      []bool
+	// Arrays
+	AI [3]int
+	// Maps
+	MSI      map[string]int
+	MSIone   map[string]int // one element, for deterministic output
+	MSIEmpty map[string]int
+	MXI      map[interface{}]int
+	MII      map[int]int
+	MI32S    map[int32]string
+	MI64S    map[int64]string
+	MUI32S   map[uint32]string
+	MUI64S   map[uint64]string
+	MI8S     map[int8]string
+	MUI8S    map[uint8]string
+	SMSI     []map[string]int
+	// Empty interfaces; used to see if we can dig inside one.
+	Empty0 interface{} // nil
+	Empty1 interface{}
+	Empty2 interface{}
+	Empty3 interface{}
+	Empty4 interface{}
+	// Non-empty interfaces.
+	NonEmptyInterface         I
+	NonEmptyInterfacePtS      *I
+	NonEmptyInterfaceNil      I
+	NonEmptyInterfaceTypedNil I
+	// Stringer.
+	Str fmt.Stringer
+	Err error
+	// Pointers
+	PI  *int
+	PS  *string
+	PSI *[]int
+	NIL *int
+	// Function (not method)
+	BinaryFunc      func(string, string) string
+	VariadicFunc    func(...string) string
+	VariadicFuncInt func(int, ...string) string
+	NilOKFunc       func(*int) bool
+	ErrFunc         func() (string, error)
+	PanicFunc       func() string
+	// Template to test evaluation of templates.
+	Tmpl *Template
+	// Unexported field; cannot be accessed by template.
+	unexported int
+}
+
+type S []string
+
+func (S) Method0() string {
+	return "M0"
+}
+
+type U struct {
+	V string
+}
+
+type V struct {
+	j int
+}
+
+func (v *V) String() string {
+	if v == nil {
+		return "nilV"
+	}
+	return fmt.Sprintf("<%d>", v.j)
+}
+
+type W struct {
+	k int
+}
+
+func (w *W) Error() string {
+	if w == nil {
+		return "nilW"
+	}
+	return fmt.Sprintf("[%d]", w.k)
+}
+
+var siVal = I(S{"a", "b"})
+
+var tVal = &T{
+	True:   true,
+	I:      17,
+	U16:    16,
+	X:      "x",
+	S:      "xyz",
+	U:      &U{"v"},
+	V0:     V{6666},
+	V1:     &V{7777}, // leave V2 as nil
+	W0:     W{888},
+	W1:     &W{999}, // leave W2 as nil
+	SI:     []int{3, 4, 5},
+	SICap:  make([]int, 5, 10),
+	AI:     [3]int{3, 4, 5},
+	SB:     []bool{true, false},
+	MSI:    map[string]int{"one": 1, "two": 2, "three": 3},
+	MSIone: map[string]int{"one": 1},
+	MXI:    map[interface{}]int{"one": 1},
+	MII:    map[int]int{1: 1},
+	MI32S:  map[int32]string{1: "one", 2: "two"},
+	MI64S:  map[int64]string{2: "i642", 3: "i643"},
+	MUI32S: map[uint32]string{2: "u322", 3: "u323"},
+	MUI64S: map[uint64]string{2: "ui642", 3: "ui643"},
+	MI8S:   map[int8]string{2: "i82", 3: "i83"},
+	MUI8S:  map[uint8]string{2: "u82", 3: "u83"},
+	SMSI: []map[string]int{
+		{"one": 1, "two": 2},
+		{"eleven": 11, "twelve": 12},
+	},
+	Empty1:                    3,
+	Empty2:                    "empty2",
+	Empty3:                    []int{7, 8},
+	Empty4:                    &U{"UinEmpty"},
+	NonEmptyInterface:         &T{X: "x"},
+	NonEmptyInterfacePtS:      &siVal,
+	NonEmptyInterfaceTypedNil: (*T)(nil),
+	Str:                       bytes.NewBuffer([]byte("foozle")),
+	Err:                       errors.New("erroozle"),
+	PI:                        newInt(23),
+	PS:                        newString("a string"),
+	PSI:                       newIntSlice(21, 22, 23),
+	BinaryFunc:                func(a, b string) string { return fmt.Sprintf("[%s=%s]", a, b) },
+	VariadicFunc:              func(s ...string) string { return fmt.Sprint("<", strings.Join(s, "+"), ">") },
+	VariadicFuncInt:           func(a int, s ...string) string { return fmt.Sprint(a, "=<", strings.Join(s, "+"), ">") },
+	NilOKFunc:                 func(s *int) bool { return s == nil },
+	ErrFunc:                   func() (string, error) { return "bla", nil },
+	PanicFunc:                 func() string { panic("test panic") },
+	Tmpl:                      Must(New("x").Parse("test template")), // "x" is the value of .X
+}
+
+var tSliceOfNil = []*T{nil}
+
+// A non-empty interface.
+type I interface {
+	Method0() string
+}
+
+var iVal I = tVal
+
+// Helpers for creation.
+func newInt(n int) *int {
+	return &n
+}
+
+func newString(s string) *string {
+	return &s
+}
+
+func newIntSlice(n ...int) *[]int {
+	p := new([]int)
+	*p = make([]int, len(n))
+	copy(*p, n)
+	return p
+}
+
+// Simple methods with and without arguments.
+func (t *T) Method0() string {
+	return "M0"
+}
+
+func (t *T) Method1(a int) int {
+	return a
+}
+
+func (t *T) Method2(a uint16, b string) string {
+	return fmt.Sprintf("Method2: %d %s", a, b)
+}
+
+func (t *T) Method3(v interface{}) string {
+	return fmt.Sprintf("Method3: %v", v)
+}
+
+func (t *T) Copy() *T {
+	n := new(T)
+	*n = *t
+	return n
+}
+
+func (t *T) MAdd(a int, b []int) []int {
+	v := make([]int, len(b))
+	for i, x := range b {
+		v[i] = x + a
+	}
+	return v
+}
+
+var myError = errors.New("my error")
+
+// MyError returns a value and an error according to its argument.
+func (t *T) MyError(error bool) (bool, error) {
+	if error {
+		return true, myError
+	}
+	return false, nil
+}
+
+// A few methods to test chaining.
+func (t *T) GetU() *U {
+	return t.U
+}
+
+func (u *U) TrueFalse(b bool) string {
+	if b {
+		return "true"
+	}
+	return ""
+}
+
+func typeOf(arg interface{}) string {
+	return fmt.Sprintf("%T", arg)
+}
+
+type execTest struct {
+	name   string
+	input  string
+	output string
+	data   interface{}
+	ok     bool
+}
+
+// bigInt and bigUint are hex string representing numbers either side
+// of the max int boundary.
+// We do it this way so the test doesn't depend on ints being 32 bits.
+var (
+	bigInt  = fmt.Sprintf("0x%x", int(1<<uint(reflect.TypeOf(0).Bits()-1)-1))
+	bigUint = fmt.Sprintf("0x%x", uint(1<<uint(reflect.TypeOf(0).Bits()-1)))
+)
+
+var execTests = []execTest{
+	// Trivial cases.
+	{"empty", "", "", nil, true},
+	{"text", "some text", "some text", nil, true},
+	{"nil action", "{{nil}}", "", nil, false},
+
+	// Ideal constants.
+	{"ideal int", "{{typeOf 3}}", "int", 0, true},
+	{"ideal float", "{{typeOf 1.0}}", "float64", 0, true},
+	{"ideal exp float", "{{typeOf 1e1}}", "float64", 0, true},
+	{"ideal complex", "{{typeOf 1i}}", "complex128", 0, true},
+	{"ideal int", "{{typeOf " + bigInt + "}}", "int", 0, true},
+	{"ideal too big", "{{typeOf " + bigUint + "}}", "", 0, false},
+	{"ideal nil without type", "{{nil}}", "", 0, false},
+
+	// Fields of structs.
+	{".X", "-{{.X}}-", "-x-", tVal, true},
+	{".U.V", "-{{.U.V}}-", "-v-", tVal, true},
+	{".unexported", "{{.unexported}}", "", tVal, false},
+
+	// Fields on maps.
+	{"map .one", "{{.MSI.one}}", "1", tVal, true},
+	{"map .two", "{{.MSI.two}}", "2", tVal, true},
+	{"map .NO", "{{.MSI.NO}}", "<no value>", tVal, true},
+	{"map .one interface", "{{.MXI.one}}", "1", tVal, true},
+	{"map .WRONG args", "{{.MSI.one 1}}", "", tVal, false},
+	{"map .WRONG type", "{{.MII.one}}", "", tVal, false},
+
+	// Dots of all kinds to test basic evaluation.
+	{"dot int", "<{{.}}>", "<13>", 13, true},
+	{"dot uint", "<{{.}}>", "<14>", uint(14), true},
+	{"dot float", "<{{.}}>", "<15.1>", 15.1, true},
+	{"dot bool", "<{{.}}>", "<true>", true, true},
+	{"dot complex", "<{{.}}>", "<(16.2-17i)>", 16.2 - 17i, true},
+	{"dot string", "<{{.}}>", "<hello>", "hello", true},
+	{"dot slice", "<{{.}}>", "<[-1 -2 -3]>", []int{-1, -2, -3}, true},
+	{"dot map", "<{{.}}>", "<map[two:22]>", map[string]int{"two": 22}, true},
+	{"dot struct", "<{{.}}>", "<{7 seven}>", struct {
+		a int
+		b string
+	}{7, "seven"}, true},
+
+	// Variables.
+	{"$ int", "{{$}}", "123", 123, true},
+	{"$.I", "{{$.I}}", "17", tVal, true},
+	{"$.U.V", "{{$.U.V}}", "v", tVal, true},
+	{"declare in action", "{{$x := $.U.V}}{{$x}}", "v", tVal, true},
+	{"simple assignment", "{{$x := 2}}{{$x = 3}}{{$x}}", "3", tVal, true},
+	{"nested assignment",
+		"{{$x := 2}}{{if true}}{{$x = 3}}{{end}}{{$x}}",
+		"3", tVal, true},
+	{"nested assignment changes the last declaration",
+		"{{$x := 1}}{{if true}}{{$x := 2}}{{if true}}{{$x = 3}}{{end}}{{end}}{{$x}}",
+		"1", tVal, true},
+
+	// Type with String method.
+	{"V{6666}.String()", "-{{.V0}}-", "-<6666>-", tVal, true},
+	{"&V{7777}.String()", "-{{.V1}}-", "-<7777>-", tVal, true},
+	{"(*V)(nil).String()", "-{{.V2}}-", "-nilV-", tVal, true},
+
+	// Type with Error method.
+	{"W{888}.Error()", "-{{.W0}}-", "-[888]-", tVal, true},
+	{"&W{999}.Error()", "-{{.W1}}-", "-[999]-", tVal, true},
+	{"(*W)(nil).Error()", "-{{.W2}}-", "-nilW-", tVal, true},
+
+	// Pointers.
+	{"*int", "{{.PI}}", "23", tVal, true},
+	{"*string", "{{.PS}}", "a string", tVal, true},
+	{"*[]int", "{{.PSI}}", "[21 22 23]", tVal, true},
+	{"*[]int[1]", "{{index .PSI 1}}", "22", tVal, true},
+	{"NIL", "{{.NIL}}", "<nil>", tVal, true},
+
+	// Empty interfaces holding values.
+	{"empty nil", "{{.Empty0}}", "<no value>", tVal, true},
+	{"empty with int", "{{.Empty1}}", "3", tVal, true},
+	{"empty with string", "{{.Empty2}}", "empty2", tVal, true},
+	{"empty with slice", "{{.Empty3}}", "[7 8]", tVal, true},
+	{"empty with struct", "{{.Empty4}}", "{UinEmpty}", tVal, true},
+	{"empty with struct, field", "{{.Empty4.V}}", "UinEmpty", tVal, true},
+
+	// Edge cases with <no value> with an interface value
+	{"field on interface", "{{.foo}}", "<no value>", nil, true},
+	{"field on parenthesized interface", "{{(.).foo}}", "<no value>", nil, true},
+
+	// Issue 31810: Parenthesized first element of pipeline with arguments.
+	// See also TestIssue31810.
+	{"unparenthesized non-function", "{{1 2}}", "", nil, false},
+	{"parenthesized non-function", "{{(1) 2}}", "", nil, false},
+	{"parenthesized non-function with no args", "{{(1)}}", "1", nil, true}, // This is fine.
+
+	// Method calls.
+	{".Method0", "-{{.Method0}}-", "-M0-", tVal, true},
+	{".Method1(1234)", "-{{.Method1 1234}}-", "-1234-", tVal, true},
+	{".Method1(.I)", "-{{.Method1 .I}}-", "-17-", tVal, true},
+	{".Method2(3, .X)", "-{{.Method2 3 .X}}-", "-Method2: 3 x-", tVal, true},
+	{".Method2(.U16, `str`)", "-{{.Method2 .U16 `str`}}-", "-Method2: 16 str-", tVal, true},
+	{".Method2(.U16, $x)", "{{if $x := .X}}-{{.Method2 .U16 $x}}{{end}}-", "-Method2: 16 x-", tVal, true},
+	{".Method3(nil constant)", "-{{.Method3 nil}}-", "-Method3: <nil>-", tVal, true},
+	{".Method3(nil value)", "-{{.Method3 .MXI.unset}}-", "-Method3: <nil>-", tVal, true},
+	{"method on var", "{{if $x := .}}-{{$x.Method2 .U16 $x.X}}{{end}}-", "-Method2: 16 x-", tVal, true},
+	{"method on chained var",
+		"{{range .MSIone}}{{if $.U.TrueFalse $.True}}{{$.U.TrueFalse $.True}}{{else}}WRONG{{end}}{{end}}",
+		"true", tVal, true},
+	{"chained method",
+		"{{range .MSIone}}{{if $.GetU.TrueFalse $.True}}{{$.U.TrueFalse $.True}}{{else}}WRONG{{end}}{{end}}",
+		"true", tVal, true},
+	{"chained method on variable",
+		"{{with $x := .}}{{with .SI}}{{$.GetU.TrueFalse $.True}}{{end}}{{end}}",
+		"true", tVal, true},
+	{".NilOKFunc not nil", "{{call .NilOKFunc .PI}}", "false", tVal, true},
+	{".NilOKFunc nil", "{{call .NilOKFunc nil}}", "true", tVal, true},
+	{"method on nil value from slice", "-{{range .}}{{.Method1 1234}}{{end}}-", "-1234-", tSliceOfNil, true},
+	{"method on typed nil interface value", "{{.NonEmptyInterfaceTypedNil.Method0}}", "M0", tVal, true},
+
+	// Function call builtin.
+	{".BinaryFunc", "{{call .BinaryFunc `1` `2`}}", "[1=2]", tVal, true},
+	{".VariadicFunc0", "{{call .VariadicFunc}}", "<>", tVal, true},
+	{".VariadicFunc2", "{{call .VariadicFunc `he` `llo`}}", "<he+llo>", tVal, true},
+	{".VariadicFuncInt", "{{call .VariadicFuncInt 33 `he` `llo`}}", "33=<he+llo>", tVal, true},
+	{"if .BinaryFunc call", "{{ if .BinaryFunc}}{{call .BinaryFunc `1` `2`}}{{end}}", "[1=2]", tVal, true},
+	{"if not .BinaryFunc call", "{{ if not .BinaryFunc}}{{call .BinaryFunc `1` `2`}}{{else}}No{{end}}", "No", tVal, true},
+	{"Interface Call", `{{stringer .S}}`, "foozle", map[string]interface{}{"S": bytes.NewBufferString("foozle")}, true},
+	{".ErrFunc", "{{call .ErrFunc}}", "bla", tVal, true},
+	{"call nil", "{{call nil}}", "", tVal, false},
+
+	// Erroneous function calls (check args).
+	{".BinaryFuncTooFew", "{{call .BinaryFunc `1`}}", "", tVal, false},
+	{".BinaryFuncTooMany", "{{call .BinaryFunc `1` `2` `3`}}", "", tVal, false},
+	{".BinaryFuncBad0", "{{call .BinaryFunc 1 3}}", "", tVal, false},
+	{".BinaryFuncBad1", "{{call .BinaryFunc `1` 3}}", "", tVal, false},
+	{".VariadicFuncBad0", "{{call .VariadicFunc 3}}", "", tVal, false},
+	{".VariadicFuncIntBad0", "{{call .VariadicFuncInt}}", "", tVal, false},
+	{".VariadicFuncIntBad`", "{{call .VariadicFuncInt `x`}}", "", tVal, false},
+	{".VariadicFuncNilBad", "{{call .VariadicFunc nil}}", "", tVal, false},
+
+	// Pipelines.
+	{"pipeline", "-{{.Method0 | .Method2 .U16}}-", "-Method2: 16 M0-", tVal, true},
+	{"pipeline func", "-{{call .VariadicFunc `llo` | call .VariadicFunc `he` }}-", "-<he+<llo>>-", tVal, true},
+
+	// Nil values aren't missing arguments.
+	{"nil pipeline", "{{ .Empty0 | call .NilOKFunc }}", "true", tVal, true},
+	{"nil call arg", "{{ call .NilOKFunc .Empty0 }}", "true", tVal, true},
+	{"bad nil pipeline", "{{ .Empty0 | .VariadicFunc }}", "", tVal, false},
+
+	// Parenthesized expressions
+	{"parens in pipeline", "{{printf `%d %d %d` (1) (2 | add 3) (add 4 (add 5 6))}}", "1 5 15", tVal, true},
+
+	// Parenthesized expressions with field accesses
+	{"parens: $ in paren", "{{($).X}}", "x", tVal, true},
+	{"parens: $.GetU in paren", "{{($.GetU).V}}", "v", tVal, true},
+	{"parens: $ in paren in pipe", "{{($ | echo).X}}", "x", tVal, true},
+	{"parens: spaces and args", `{{(makemap "up" "down" "left" "right").left}}`, "right", tVal, true},
+
+	// If.
+	{"if true", "{{if true}}TRUE{{end}}", "TRUE", tVal, true},
+	{"if false", "{{if false}}TRUE{{else}}FALSE{{end}}", "FALSE", tVal, true},
+	{"if nil", "{{if nil}}TRUE{{end}}", "", tVal, false},
+	{"if on typed nil interface value", "{{if .NonEmptyInterfaceTypedNil}}TRUE{{ end }}", "", tVal, true},
+	{"if 1", "{{if 1}}NON-ZERO{{else}}ZERO{{end}}", "NON-ZERO", tVal, true},
+	{"if 0", "{{if 0}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if 1.5", "{{if 1.5}}NON-ZERO{{else}}ZERO{{end}}", "NON-ZERO", tVal, true},
+	{"if 0.0", "{{if .FloatZero}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if 1.5i", "{{if 1.5i}}NON-ZERO{{else}}ZERO{{end}}", "NON-ZERO", tVal, true},
+	{"if 0.0i", "{{if .ComplexZero}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if emptystring", "{{if ``}}NON-EMPTY{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"if string", "{{if `notempty`}}NON-EMPTY{{else}}EMPTY{{end}}", "NON-EMPTY", tVal, true},
+	{"if emptyslice", "{{if .SIEmpty}}NON-EMPTY{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"if slice", "{{if .SI}}NON-EMPTY{{else}}EMPTY{{end}}", "NON-EMPTY", tVal, true},
+	{"if emptymap", "{{if .MSIEmpty}}NON-EMPTY{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"if map", "{{if .MSI}}NON-EMPTY{{else}}EMPTY{{end}}", "NON-EMPTY", tVal, true},
+	{"if map unset", "{{if .MXI.none}}NON-ZERO{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"if map not unset", "{{if not .MXI.none}}ZERO{{else}}NON-ZERO{{end}}", "ZERO", tVal, true},
+	{"if $x with $y int", "{{if $x := true}}{{with $y := .I}}{{$x}},{{$y}}{{end}}{{end}}", "true,17", tVal, true},
+	{"if $x with $x int", "{{if $x := true}}{{with $x := .I}}{{$x}},{{end}}{{$x}}{{end}}", "17,true", tVal, true},
+	{"if else if", "{{if false}}FALSE{{else if true}}TRUE{{end}}", "TRUE", tVal, true},
+	{"if else chain", "{{if eq 1 3}}1{{else if eq 2 3}}2{{else if eq 3 3}}3{{end}}", "3", tVal, true},
+
+	// Print etc.
+	{"print", `{{print "hello, print"}}`, "hello, print", tVal, true},
+	{"print 123", `{{print 1 2 3}}`, "1 2 3", tVal, true},
+	{"print nil", `{{print nil}}`, "<nil>", tVal, true},
+	{"println", `{{println 1 2 3}}`, "1 2 3\n", tVal, true},
+	{"printf int", `{{printf "%04x" 127}}`, "007f", tVal, true},
+	{"printf float", `{{printf "%g" 3.5}}`, "3.5", tVal, true},
+	{"printf complex", `{{printf "%g" 1+7i}}`, "(1+7i)", tVal, true},
+	{"printf string", `{{printf "%s" "hello"}}`, "hello", tVal, true},
+	{"printf function", `{{printf "%#q" zeroArgs}}`, "`zeroArgs`", tVal, true},
+	{"printf field", `{{printf "%s" .U.V}}`, "v", tVal, true},
+	{"printf method", `{{printf "%s" .Method0}}`, "M0", tVal, true},
+	{"printf dot", `{{with .I}}{{printf "%d" .}}{{end}}`, "17", tVal, true},
+	{"printf var", `{{with $x := .I}}{{printf "%d" $x}}{{end}}`, "17", tVal, true},
+	{"printf lots", `{{printf "%d %s %g %s" 127 "hello" 7-3i .Method0}}`, "127 hello (7-3i) M0", tVal, true},
+
+	// HTML.
+	{"html", `{{html "<script>alert(\"XSS\");</script>"}}`,
+		"&lt;script&gt;alert(&#34;XSS&#34;);&lt;/script&gt;", nil, true},
+	{"html pipeline", `{{printf "<script>alert(\"XSS\");</script>" | html}}`,
+		"&lt;script&gt;alert(&#34;XSS&#34;);&lt;/script&gt;", nil, true},
+	{"html", `{{html .PS}}`, "a string", tVal, true},
+	{"html typed nil", `{{html .NIL}}`, "&lt;nil&gt;", tVal, true},
+	{"html untyped nil", `{{html .Empty0}}`, "&lt;no value&gt;", tVal, true},
+
+	// JavaScript.
+	{"js", `{{js .}}`, `It\'d be nice.`, `It'd be nice.`, true},
+
+	// URL query.
+	{"urlquery", `{{"http://www.example.org/"|urlquery}}`, "http%3A%2F%2Fwww.example.org%2F", nil, true},
+
+	// Booleans
+	{"not", "{{not true}} {{not false}}", "false true", nil, true},
+	{"and", "{{and false 0}} {{and 1 0}} {{and 0 true}} {{and 1 1}}", "false 0 0 1", nil, true},
+	{"or", "{{or 0 0}} {{or 1 0}} {{or 0 true}} {{or 1 1}}", "0 1 true 1", nil, true},
+	{"or short-circuit", "{{or 0 1 (die)}}", "1", nil, true},
+	{"and short-circuit", "{{and 1 0 (die)}}", "0", nil, true},
+	{"or short-circuit2", "{{or 0 0 (die)}}", "", nil, false},
+	{"and short-circuit2", "{{and 1 1 (die)}}", "", nil, false},
+	{"boolean if", "{{if and true 1 `hi`}}TRUE{{else}}FALSE{{end}}", "TRUE", tVal, true},
+	{"boolean if not", "{{if and true 1 `hi` | not}}TRUE{{else}}FALSE{{end}}", "FALSE", nil, true},
+
+	// Indexing.
+	{"slice[0]", "{{index .SI 0}}", "3", tVal, true},
+	{"slice[1]", "{{index .SI 1}}", "4", tVal, true},
+	{"slice[HUGE]", "{{index .SI 10}}", "", tVal, false},
+	{"slice[WRONG]", "{{index .SI `hello`}}", "", tVal, false},
+	{"slice[nil]", "{{index .SI nil}}", "", tVal, false},
+	{"map[one]", "{{index .MSI `one`}}", "1", tVal, true},
+	{"map[two]", "{{index .MSI `two`}}", "2", tVal, true},
+	{"map[NO]", "{{index .MSI `XXX`}}", "0", tVal, true},
+	{"map[nil]", "{{index .MSI nil}}", "", tVal, false},
+	{"map[``]", "{{index .MSI ``}}", "0", tVal, true},
+	{"map[WRONG]", "{{index .MSI 10}}", "", tVal, false},
+	{"double index", "{{index .SMSI 1 `eleven`}}", "11", tVal, true},
+	{"nil[1]", "{{index nil 1}}", "", tVal, false},
+	{"map MI64S", "{{index .MI64S 2}}", "i642", tVal, true},
+	{"map MI32S", "{{index .MI32S 2}}", "two", tVal, true},
+	{"map MUI64S", "{{index .MUI64S 3}}", "ui643", tVal, true},
+	{"map MI8S", "{{index .MI8S 3}}", "i83", tVal, true},
+	{"map MUI8S", "{{index .MUI8S 2}}", "u82", tVal, true},
+	{"index of an interface field", "{{index .Empty3 0}}", "7", tVal, true},
+
+	// Slicing.
+	{"slice[:]", "{{slice .SI}}", "[3 4 5]", tVal, true},
+	{"slice[1:]", "{{slice .SI 1}}", "[4 5]", tVal, true},
+	{"slice[1:2]", "{{slice .SI 1 2}}", "[4]", tVal, true},
+	{"slice[-1:]", "{{slice .SI -1}}", "", tVal, false},
+	{"slice[1:-2]", "{{slice .SI 1 -2}}", "", tVal, false},
+	{"slice[1:2:-1]", "{{slice .SI 1 2 -1}}", "", tVal, false},
+	{"slice[2:1]", "{{slice .SI 2 1}}", "", tVal, false},
+	{"slice[2:2:1]", "{{slice .SI 2 2 1}}", "", tVal, false},
+	{"out of range", "{{slice .SI 4 5}}", "", tVal, false},
+	{"out of range", "{{slice .SI 2 2 5}}", "", tVal, false},
+	{"len(s) < indexes < cap(s)", "{{slice .SICap 6 10}}", "[0 0 0 0]", tVal, true},
+	{"len(s) < indexes < cap(s)", "{{slice .SICap 6 10 10}}", "[0 0 0 0]", tVal, true},
+	{"indexes > cap(s)", "{{slice .SICap 10 11}}", "", tVal, false},
+	{"indexes > cap(s)", "{{slice .SICap 6 10 11}}", "", tVal, false},
+	{"array[:]", "{{slice .AI}}", "[3 4 5]", tVal, true},
+	{"array[1:]", "{{slice .AI 1}}", "[4 5]", tVal, true},
+	{"array[1:2]", "{{slice .AI 1 2}}", "[4]", tVal, true},
+	{"string[:]", "{{slice .S}}", "xyz", tVal, true},
+	{"string[0:1]", "{{slice .S 0 1}}", "x", tVal, true},
+	{"string[1:]", "{{slice .S 1}}", "yz", tVal, true},
+	{"string[1:2]", "{{slice .S 1 2}}", "y", tVal, true},
+	{"out of range", "{{slice .S 1 5}}", "", tVal, false},
+	{"3-index slice of string", "{{slice .S 1 2 2}}", "", tVal, false},
+	{"slice of an interface field", "{{slice .Empty3 0 1}}", "[7]", tVal, true},
+
+	// Len.
+	{"slice", "{{len .SI}}", "3", tVal, true},
+	{"map", "{{len .MSI }}", "3", tVal, true},
+	{"len of int", "{{len 3}}", "", tVal, false},
+	{"len of nothing", "{{len .Empty0}}", "", tVal, false},
+	{"len of an interface field", "{{len .Empty3}}", "2", tVal, true},
+
+	// With.
+	{"with true", "{{with true}}{{.}}{{end}}", "true", tVal, true},
+	{"with false", "{{with false}}{{.}}{{else}}FALSE{{end}}", "FALSE", tVal, true},
+	{"with 1", "{{with 1}}{{.}}{{else}}ZERO{{end}}", "1", tVal, true},
+	{"with 0", "{{with 0}}{{.}}{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"with 1.5", "{{with 1.5}}{{.}}{{else}}ZERO{{end}}", "1.5", tVal, true},
+	{"with 0.0", "{{with .FloatZero}}{{.}}{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"with 1.5i", "{{with 1.5i}}{{.}}{{else}}ZERO{{end}}", "(0+1.5i)", tVal, true},
+	{"with 0.0i", "{{with .ComplexZero}}{{.}}{{else}}ZERO{{end}}", "ZERO", tVal, true},
+	{"with emptystring", "{{with ``}}{{.}}{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"with string", "{{with `notempty`}}{{.}}{{else}}EMPTY{{end}}", "notempty", tVal, true},
+	{"with emptyslice", "{{with .SIEmpty}}{{.}}{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"with slice", "{{with .SI}}{{.}}{{else}}EMPTY{{end}}", "[3 4 5]", tVal, true},
+	{"with emptymap", "{{with .MSIEmpty}}{{.}}{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"with map", "{{with .MSIone}}{{.}}{{else}}EMPTY{{end}}", "map[one:1]", tVal, true},
+	{"with empty interface, struct field", "{{with .Empty4}}{{.V}}{{end}}", "UinEmpty", tVal, true},
+	{"with $x int", "{{with $x := .I}}{{$x}}{{end}}", "17", tVal, true},
+	{"with $x struct.U.V", "{{with $x := $}}{{$x.U.V}}{{end}}", "v", tVal, true},
+	{"with variable and action", "{{with $x := $}}{{$y := $.U.V}}{{$y}}{{end}}", "v", tVal, true},
+	{"with on typed nil interface value", "{{with .NonEmptyInterfaceTypedNil}}TRUE{{ end }}", "", tVal, true},
+
+	// Range.
+	{"range []int", "{{range .SI}}-{{.}}-{{end}}", "-3--4--5-", tVal, true},
+	{"range empty no else", "{{range .SIEmpty}}-{{.}}-{{end}}", "", tVal, true},
+	{"range []int else", "{{range .SI}}-{{.}}-{{else}}EMPTY{{end}}", "-3--4--5-", tVal, true},
+	{"range empty else", "{{range .SIEmpty}}-{{.}}-{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"range []int break else", "{{range .SI}}-{{.}}-{{break}}NOTREACHED{{else}}EMPTY{{end}}", "-3-", tVal, true},
+	{"range []int continue else", "{{range .SI}}-{{.}}-{{continue}}NOTREACHED{{else}}EMPTY{{end}}", "-3--4--5-", tVal, true},
+	{"range []bool", "{{range .SB}}-{{.}}-{{end}}", "-true--false-", tVal, true},
+	{"range []int method", "{{range .SI | .MAdd .I}}-{{.}}-{{end}}", "-20--21--22-", tVal, true},
+	{"range map", "{{range .MSI}}-{{.}}-{{end}}", "-1--3--2-", tVal, true},
+	{"range empty map no else", "{{range .MSIEmpty}}-{{.}}-{{end}}", "", tVal, true},
+	{"range map else", "{{range .MSI}}-{{.}}-{{else}}EMPTY{{end}}", "-1--3--2-", tVal, true},
+	{"range empty map else", "{{range .MSIEmpty}}-{{.}}-{{else}}EMPTY{{end}}", "EMPTY", tVal, true},
+	{"range empty interface", "{{range .Empty3}}-{{.}}-{{else}}EMPTY{{end}}", "-7--8-", tVal, true},
+	{"range empty nil", "{{range .Empty0}}-{{.}}-{{end}}", "", tVal, true},
+	{"range $x SI", "{{range $x := .SI}}<{{$x}}>{{end}}", "<3><4><5>", tVal, true},
+	{"range $x $y SI", "{{range $x, $y := .SI}}<{{$x}}={{$y}}>{{end}}", "<0=3><1=4><2=5>", tVal, true},
+	{"range $x MSIone", "{{range $x := .MSIone}}<{{$x}}>{{end}}", "<1>", tVal, true},
+	{"range $x $y MSIone", "{{range $x, $y := .MSIone}}<{{$x}}={{$y}}>{{end}}", "<one=1>", tVal, true},
+	{"range $x PSI", "{{range $x := .PSI}}<{{$x}}>{{end}}", "<21><22><23>", tVal, true},
+	{"declare in range", "{{range $x := .PSI}}<{{$foo:=$x}}{{$x}}>{{end}}", "<21><22><23>", tVal, true},
+	{"range count", `{{range $i, $x := count 5}}[{{$i}}]{{$x}}{{end}}`, "[0]a[1]b[2]c[3]d[4]e", tVal, true},
+	{"range nil count", `{{range $i, $x := count 0}}{{else}}empty{{end}}`, "empty", tVal, true},
+
+	// Cute examples.
+	{"or as if true", `{{or .SI "slice is empty"}}`, "[3 4 5]", tVal, true},
+	{"or as if false", `{{or .SIEmpty "slice is empty"}}`, "slice is empty", tVal, true},
+
+	// Error handling.
+	{"error method, error", "{{.MyError true}}", "", tVal, false},
+	{"error method, no error", "{{.MyError false}}", "false", tVal, true},
+
+	// Numbers
+	{"decimal", "{{print 1234}}", "1234", tVal, true},
+	{"decimal _", "{{print 12_34}}", "1234", tVal, true},
+	{"binary", "{{print 0b101}}", "5", tVal, true},
+	{"binary _", "{{print 0b_1_0_1}}", "5", tVal, true},
+	{"BINARY", "{{print 0B101}}", "5", tVal, true},
+	{"octal0", "{{print 0377}}", "255", tVal, true},
+	{"octal", "{{print 0o377}}", "255", tVal, true},
+	{"octal _", "{{print 0o_3_7_7}}", "255", tVal, true},
+	{"OCTAL", "{{print 0O377}}", "255", tVal, true},
+	{"hex", "{{print 0x123}}", "291", tVal, true},
+	{"hex _", "{{print 0x1_23}}", "291", tVal, true},
+	{"HEX", "{{print 0X123ABC}}", "1194684", tVal, true},
+	{"float", "{{print 123.4}}", "123.4", tVal, true},
+	{"float _", "{{print 0_0_1_2_3.4}}", "123.4", tVal, true},
+	{"hex float", "{{print +0x1.ep+2}}", "7.5", tVal, true},
+	{"hex float _", "{{print +0x_1.e_0p+0_2}}", "7.5", tVal, true},
+	{"HEX float", "{{print +0X1.EP+2}}", "7.5", tVal, true},
+	{"print multi", "{{print 1_2_3_4 7.5_00_00_00}}", "1234 7.5", tVal, true},
+	{"print multi2", "{{print 1234 0x0_1.e_0p+02}}", "1234 7.5", tVal, true},
+
+	// Fixed bugs.
+	// Must separate dot and receiver; otherwise args are evaluated with dot set to variable.
+	{"bug0", "{{range .MSIone}}{{if $.Method1 .}}X{{end}}{{end}}", "X", tVal, true},
+	// Do not loop endlessly in indirect for non-empty interfaces.
+	// The bug appears with *interface only; looped forever.
+	{"bug1", "{{.Method0}}", "M0", &iVal, true},
+	// Was taking address of interface field, so method set was empty.
+	{"bug2", "{{$.NonEmptyInterface.Method0}}", "M0", tVal, true},
+	// Struct values were not legal in with - mere oversight.
+	{"bug3", "{{with $}}{{.Method0}}{{end}}", "M0", tVal, true},
+	// Nil interface values in if.
+	{"bug4", "{{if .Empty0}}non-nil{{else}}nil{{end}}", "nil", tVal, true},
+	// Stringer.
+	{"bug5", "{{.Str}}", "foozle", tVal, true},
+	{"bug5a", "{{.Err}}", "erroozle", tVal, true},
+	// Args need to be indirected and dereferenced sometimes.
+	{"bug6a", "{{vfunc .V0 .V1}}", "vfunc", tVal, true},
+	{"bug6b", "{{vfunc .V0 .V0}}", "vfunc", tVal, true},
+	{"bug6c", "{{vfunc .V1 .V0}}", "vfunc", tVal, true},
+	{"bug6d", "{{vfunc .V1 .V1}}", "vfunc", tVal, true},
+	// Legal parse but illegal execution: non-function should have no arguments.
+	{"bug7a", "{{3 2}}", "", tVal, false},
+	{"bug7b", "{{$x := 1}}{{$x 2}}", "", tVal, false},
+	{"bug7c", "{{$x := 1}}{{3 | $x}}", "", tVal, false},
+	// Pipelined arg was not being type-checked.
+	{"bug8a", "{{3|oneArg}}", "", tVal, false},
+	{"bug8b", "{{4|dddArg 3}}", "", tVal, false},
+	// A bug was introduced that broke map lookups for lower-case names.
+	{"bug9", "{{.cause}}", "neglect", map[string]string{"cause": "neglect"}, true},
+	// Field chain starting with function did not work.
+	{"bug10", "{{mapOfThree.three}}-{{(mapOfThree).three}}", "3-3", 0, true},
+	// Dereferencing nil pointer while evaluating function arguments should not panic. Issue 7333.
+	{"bug11", "{{valueString .PS}}", "", T{}, false},
+	// 0xef gave constant type float64. Issue 8622.
+	{"bug12xe", "{{printf `%T` 0xef}}", "int", T{}, true},
+	{"bug12xE", "{{printf `%T` 0xEE}}", "int", T{}, true},
+	{"bug12Xe", "{{printf `%T` 0Xef}}", "int", T{}, true},
+	{"bug12XE", "{{printf `%T` 0XEE}}", "int", T{}, true},
+	// Chained nodes did not work as arguments. Issue 8473.
+	{"bug13", "{{print (.Copy).I}}", "17", tVal, true},
+	// Didn't protect against nil or literal values in field chains.
+	{"bug14a", "{{(nil).True}}", "", tVal, false},
+	{"bug14b", "{{$x := nil}}{{$x.anything}}", "", tVal, false},
+	{"bug14c", `{{$x := (1.0)}}{{$y := ("hello")}}{{$x.anything}}{{$y.true}}`, "", tVal, false},
+	// Didn't call validateType on function results. Issue 10800.
+	{"bug15", "{{valueString returnInt}}", "", tVal, false},
+	// Variadic function corner cases. Issue 10946.
+	{"bug16a", "{{true|printf}}", "", tVal, false},
+	{"bug16b", "{{1|printf}}", "", tVal, false},
+	{"bug16c", "{{1.1|printf}}", "", tVal, false},
+	{"bug16d", "{{'x'|printf}}", "", tVal, false},
+	{"bug16e", "{{0i|printf}}", "", tVal, false},
+	{"bug16f", "{{true|twoArgs \"xxx\"}}", "", tVal, false},
+	{"bug16g", "{{\"aaa\" |twoArgs \"bbb\"}}", "twoArgs=bbbaaa", tVal, true},
+	{"bug16h", "{{1|oneArg}}", "", tVal, false},
+	{"bug16i", "{{\"aaa\"|oneArg}}", "oneArg=aaa", tVal, true},
+	{"bug16j", "{{1+2i|printf \"%v\"}}", "(1+2i)", tVal, true},
+	{"bug16k", "{{\"aaa\"|printf }}", "aaa", tVal, true},
+	{"bug17a", "{{.NonEmptyInterface.X}}", "x", tVal, true},
+	{"bug17b", "-{{.NonEmptyInterface.Method1 1234}}-", "-1234-", tVal, true},
+	{"bug17c", "{{len .NonEmptyInterfacePtS}}", "2", tVal, true},
+	{"bug17d", "{{index .NonEmptyInterfacePtS 0}}", "a", tVal, true},
+	{"bug17e", "{{range .NonEmptyInterfacePtS}}-{{.}}-{{end}}", "-a--b-", tVal, true},
+
+	// More variadic function corner cases. Some runes would get evaluated
+	// as constant floats instead of ints. Issue 34483.
+	{"bug18a", "{{eq . '.'}}", "true", '.', true},
+	{"bug18b", "{{eq . 'e'}}", "true", 'e', true},
+	{"bug18c", "{{eq . 'P'}}", "true", 'P', true},
+}
+
+func zeroArgs() string {
+	return "zeroArgs"
+}
+
+func oneArg(a string) string {
+	return "oneArg=" + a
+}
+
+func twoArgs(a, b string) string {
+	return "twoArgs=" + a + b
+}
+
+func dddArg(a int, b ...string) string {
+	return fmt.Sprintln(a, b)
+}
+
+// count returns a channel that will deliver n sequential 1-letter strings starting at "a"
+func count(n int) chan string {
+	if n == 0 {
+		return nil
+	}
+	c := make(chan string)
+	go func() {
+		for i := 0; i < n; i++ {
+			c <- "abcdefghijklmnop"[i : i+1]
+		}
+		close(c)
+	}()
+	return c
+}
+
+// vfunc takes a *V and a V
+func vfunc(V, *V) string {
+	return "vfunc"
+}
+
+// valueString takes a string, not a pointer.
+func valueString(v string) string {
+	return "value is ignored"
+}
+
+// returnInt returns an int
+func returnInt() int {
+	return 7
+}
+
+func add(args ...int) int {
+	sum := 0
+	for _, x := range args {
+		sum += x
+	}
+	return sum
+}
+
+func echo(arg interface{}) interface{} {
+	return arg
+}
+
+func makemap(arg ...string) map[string]string {
+	if len(arg)%2 != 0 {
+		panic("bad makemap")
+	}
+	m := make(map[string]string)
+	for i := 0; i < len(arg); i += 2 {
+		m[arg[i]] = arg[i+1]
+	}
+	return m
+}
+
+func stringer(s fmt.Stringer) string {
+	return s.String()
+}
+
+func mapOfThree() interface{} {
+	return map[string]int{"three": 3}
+}
+
+func testExecute(execTests []execTest, template *Template, t *testing.T) {
+	b := new(bytes.Buffer)
+	funcs := FuncMap{
+		"add":         add,
+		"count":       count,
+		"dddArg":      dddArg,
+		"die":         func() bool { panic("die") },
+		"echo":        echo,
+		"makemap":     makemap,
+		"mapOfThree":  mapOfThree,
+		"oneArg":      oneArg,
+		"returnInt":   returnInt,
+		"stringer":    stringer,
+		"twoArgs":     twoArgs,
+		"typeOf":      typeOf,
+		"valueString": valueString,
+		"vfunc":       vfunc,
+		"zeroArgs":    zeroArgs,
+	}
+	for _, test := range execTests {
+		var tmpl *Template
+		var err error
+		if template == nil {
+			tmpl, err = New(test.name).Funcs(funcs).Parse(test.input)
+		} else {
+			tmpl, err = template.New(test.name).Funcs(funcs).Parse(test.input)
+		}
+		if err != nil {
+			t.Errorf("%s: parse error: %s", test.name, err)
+			continue
+		}
+		b.Reset()
+		err = tmpl.Execute(b, test.data)
+		switch {
+		case !test.ok && err == nil:
+			t.Errorf("%s: expected error; got none", test.name)
+			continue
+		case test.ok && err != nil:
+			t.Errorf("%s: unexpected execute error: %s", test.name, err)
+			continue
+		case !test.ok && err != nil:
+			// expected error, got one
+			if *debug {
+				fmt.Printf("%s: %s\n\t%s\n", test.name, test.input, err)
+			}
+		}
+		result := b.String()
+		if result != test.output {
+			t.Errorf("%s: expected\n\t%q\ngot\n\t%q", test.name, test.output, result)
+		}
+	}
+}
+
+func TestExecute(t *testing.T) {
+	testExecute(execTests, nil, t)
+}
+
+var delimPairs = []string{
+	"", "", // default
+	"{{", "}}", // same as default
+	"<<", ">>", // distinct
+	"|", "|", // same
+	"(日)", "(本)", // peculiar
+}
+
+func TestDelims(t *testing.T) {
+	const hello = "Hello, world"
+	var value = struct{ Str string }{hello}
+	for i := 0; i < len(delimPairs); i += 2 {
+		text := ".Str"
+		left := delimPairs[i+0]
+		trueLeft := left
+		right := delimPairs[i+1]
+		trueRight := right
+		if left == "" { // default case
+			trueLeft = "{{"
+		}
+		if right == "" { // default case
+			trueRight = "}}"
+		}
+		text = trueLeft + text + trueRight
+		// Now add a comment
+		text += trueLeft + "/*comment*/" + trueRight
+		// Now add  an action containing a string.
+		text += trueLeft + `"` + trueLeft + `"` + trueRight
+		// At this point text looks like `{{.Str}}{{/*comment*/}}{{"{{"}}`.
+		tmpl, err := New("delims").Delims(left, right).Parse(text)
+		if err != nil {
+			t.Fatalf("delim %q text %q parse err %s", left, text, err)
+		}
+		var b = new(bytes.Buffer)
+		err = tmpl.Execute(b, value)
+		if err != nil {
+			t.Fatalf("delim %q exec err %s", left, err)
+		}
+		if b.String() != hello+trueLeft {
+			t.Errorf("expected %q got %q", hello+trueLeft, b.String())
+		}
+	}
+}
+
+// Check that an error from a method flows back to the top.
+func TestExecuteError(t *testing.T) {
+	b := new(bytes.Buffer)
+	tmpl := New("error")
+	_, err := tmpl.Parse("{{.MyError true}}")
+	if err != nil {
+		t.Fatalf("parse error: %s", err)
+	}
+	err = tmpl.Execute(b, tVal)
+	if err == nil {
+		t.Errorf("expected error; got none")
+	} else if !strings.Contains(err.Error(), myError.Error()) {
+		if *debug {
+			fmt.Printf("test execute error: %s\n", err)
+		}
+		t.Errorf("expected myError; got %s", err)
+	}
+}
+
+const execErrorText = `line 1
+line 2
+line 3
+{{template "one" .}}
+{{define "one"}}{{template "two" .}}{{end}}
+{{define "two"}}{{template "three" .}}{{end}}
+{{define "three"}}{{index "hi" $}}{{end}}`
+
+// Check that an error from a nested template contains all the relevant information.
+func TestExecError(t *testing.T) {
+	tmpl, err := New("top").Parse(execErrorText)
+	if err != nil {
+		t.Fatal("parse error:", err)
+	}
+	var b bytes.Buffer
+	err = tmpl.Execute(&b, 5) // 5 is out of range indexing "hi"
+	if err == nil {
+		t.Fatal("expected error")
+	}
+	const want = `template: top:7:20: executing "three" at <index "hi" $>: error calling index: index out of range: 5`
+	got := err.Error()
+	if got != want {
+		t.Errorf("expected\n%q\ngot\n%q", want, got)
+	}
+}
+
+type CustomError struct{}
+
+func (*CustomError) Error() string { return "heyo !" }
+
+// Check that a custom error can be returned.
+func TestExecError_CustomError(t *testing.T) {
+	failingFunc := func() (string, error) {
+		return "", &CustomError{}
+	}
+	tmpl := Must(New("top").Funcs(FuncMap{
+		"err": failingFunc,
+	}).Parse("{{ err }}"))
+
+	var b bytes.Buffer
+	err := tmpl.Execute(&b, nil)
+
+	var e *CustomError
+	if !errors.As(err, &e) {
+		t.Fatalf("expected custom error; got %s", err)
+	}
+}
+
+func TestJSEscaping(t *testing.T) {
+	testCases := []struct {
+		in, exp string
+	}{
+		{`a`, `a`},
+		{`'foo`, `\'foo`},
+		{`Go "jump" \`, `Go \"jump\" \\`},
+		{`Yukihiro says "今日は世界"`, `Yukihiro says \"今日は世界\"`},
+		{"unprintable \uFDFF", `unprintable \uFDFF`},
+		{`<html>`, `\u003Chtml\u003E`},
+		{`no = in attributes`, `no \u003D in attributes`},
+		{`&#x27; does not become HTML entity`, `\u0026#x27; does not become HTML entity`},
+	}
+	for _, tc := range testCases {
+		s := JSEscapeString(tc.in)
+		if s != tc.exp {
+			t.Errorf("JS escaping [%s] got [%s] want [%s]", tc.in, s, tc.exp)
+		}
+	}
+}
+
+// A nice example: walk a binary tree.
+
+type Tree struct {
+	Val         int
+	Left, Right *Tree
+}
+
+// Use different delimiters to test Set.Delims.
+// Also test the trimming of leading and trailing spaces.
+const treeTemplate = `
+	(- define "tree" -)
+	[
+		(- .Val -)
+		(- with .Left -)
+			(template "tree" . -)
+		(- end -)
+		(- with .Right -)
+			(- template "tree" . -)
+		(- end -)
+	]
+	(- end -)
+`
+
+func TestTree(t *testing.T) {
+	var tree = &Tree{
+		1,
+		&Tree{
+			2, &Tree{
+				3,
+				&Tree{
+					4, nil, nil,
+				},
+				nil,
+			},
+			&Tree{
+				5,
+				&Tree{
+					6, nil, nil,
+				},
+				nil,
+			},
+		},
+		&Tree{
+			7,
+			&Tree{
+				8,
+				&Tree{
+					9, nil, nil,
+				},
+				nil,
+			},
+			&Tree{
+				10,
+				&Tree{
+					11, nil, nil,
+				},
+				nil,
+			},
+		},
+	}
+	tmpl, err := New("root").Delims("(", ")").Parse(treeTemplate)
+	if err != nil {
+		t.Fatal("parse error:", err)
+	}
+	var b bytes.Buffer
+	const expect = "[1[2[3[4]][5[6]]][7[8[9]][10[11]]]]"
+	// First by looking up the template.
+	err = tmpl.Lookup("tree").Execute(&b, tree)
+	if err != nil {
+		t.Fatal("exec error:", err)
+	}
+	result := b.String()
+	if result != expect {
+		t.Errorf("expected %q got %q", expect, result)
+	}
+	// Then direct to execution.
+	b.Reset()
+	err = tmpl.ExecuteTemplate(&b, "tree", tree)
+	if err != nil {
+		t.Fatal("exec error:", err)
+	}
+	result = b.String()
+	if result != expect {
+		t.Errorf("expected %q got %q", expect, result)
+	}
+}
+
+func TestExecuteOnNewTemplate(t *testing.T) {
+	// This is issue 3872.
+	New("Name").Templates()
+	// This is issue 11379.
+	new(Template).Templates()
+	new(Template).Parse("")
+	new(Template).New("abc").Parse("")
+	new(Template).Execute(nil, nil)                // returns an error (but does not crash)
+	new(Template).ExecuteTemplate(nil, "XXX", nil) // returns an error (but does not crash)
+}
+
+const testTemplates = `{{define "one"}}one{{end}}{{define "two"}}two{{end}}`
+
+func TestMessageForExecuteEmpty(t *testing.T) {
+	// Test a truly empty template.
+	tmpl := New("empty")
+	var b bytes.Buffer
+	err := tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected initial error")
+	}
+	got := err.Error()
+	want := `template: empty: "empty" is an incomplete or empty template`
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+	// Add a non-empty template to check that the error is helpful.
+	tests, err := New("").Parse(testTemplates)
+	if err != nil {
+		t.Fatal(err)
+	}
+	tmpl.AddParseTree("secondary", tests.Tree)
+	err = tmpl.Execute(&b, 0)
+	if err == nil {
+		t.Fatal("expected second error")
+	}
+	got = err.Error()
+	want = `template: empty: "empty" is an incomplete or empty template`
+	if got != want {
+		t.Errorf("expected error %s got %s", want, got)
+	}
+	// Make sure we can execute the secondary.
+	err = tmpl.ExecuteTemplate(&b, "secondary", 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+func TestFinalForPrintf(t *testing.T) {
+	tmpl, err := New("").Parse(`{{"x" | printf}}`)
+	if err != nil {
+		t.Fatal(err)
+	}
+	var b bytes.Buffer
+	err = tmpl.Execute(&b, 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+}
+
+type cmpTest struct {
+	expr  string
+	truth string
+	ok    bool
+}
+
+var cmpTests = []cmpTest{
+	{"eq true true", "true", true},
+	{"eq true false", "false", true},
+	{"eq 1+2i 1+2i", "true", true},
+	{"eq 1+2i 1+3i", "false", true},
+	{"eq 1.5 1.5", "true", true},
+	{"eq 1.5 2.5", "false", true},
+	{"eq 1 1", "true", true},
+	{"eq 1 2", "false", true},
+	{"eq `xy` `xy`", "true", true},
+	{"eq `xy` `xyz`", "false", true},
+	{"eq .Uthree .Uthree", "true", true},
+	{"eq .Uthree .Ufour", "false", true},
+	{"eq 3 4 5 6 3", "true", true},
+	{"eq 3 4 5 6 7", "false", true},
+	{"ne true true", "false", true},
+	{"ne true false", "true", true},
+	{"ne 1+2i 1+2i", "false", true},
+	{"ne 1+2i 1+3i", "true", true},
+	{"ne 1.5 1.5", "false", true},
+	{"ne 1.5 2.5", "true", true},
+	{"ne 1 1", "false", true},
+	{"ne 1 2", "true", true},
+	{"ne `xy` `xy`", "false", true},
+	{"ne `xy` `xyz`", "true", true},
+	{"ne .Uthree .Uthree", "false", true},
+	{"ne .Uthree .Ufour", "true", true},
+	{"lt 1.5 1.5", "false", true},
+	{"lt 1.5 2.5", "true", true},
+	{"lt 1 1", "false", true},
+	{"lt 1 2", "true", true},
+	{"lt `xy` `xy`", "false", true},
+	{"lt `xy` `xyz`", "true", true},
+	{"lt .Uthree .Uthree", "false", true},
+	{"lt .Uthree .Ufour", "true", true},
+	{"le 1.5 1.5", "true", true},
+	{"le 1.5 2.5", "true", true},
+	{"le 2.5 1.5", "false", true},
+	{"le 1 1", "true", true},
+	{"le 1 2", "true", true},
+	{"le 2 1", "false", true},
+	{"le `xy` `xy`", "true", true},
+	{"le `xy` `xyz`", "true", true},
+	{"le `xyz` `xy`", "false", true},
+	{"le .Uthree .Uthree", "true", true},
+	{"le .Uthree .Ufour", "true", true},
+	{"le .Ufour .Uthree", "false", true},
+	{"gt 1.5 1.5", "false", true},
+	{"gt 1.5 2.5", "false", true},
+	{"gt 1 1", "false", true},
+	{"gt 2 1", "true", true},
+	{"gt 1 2", "false", true},
+	{"gt `xy` `xy`", "false", true},
+	{"gt `xy` `xyz`", "false", true},
+	{"gt .Uthree .Uthree", "false", true},
+	{"gt .Uthree .Ufour", "false", true},
+	{"gt .Ufour .Uthree", "true", true},
+	{"ge 1.5 1.5", "true", true},
+	{"ge 1.5 2.5", "false", true},
+	{"ge 2.5 1.5", "true", true},
+	{"ge 1 1", "true", true},
+	{"ge 1 2", "false", true},
+	{"ge 2 1", "true", true},
+	{"ge `xy` `xy`", "true", true},
+	{"ge `xy` `xyz`", "false", true},
+	{"ge `xyz` `xy`", "true", true},
+	{"ge .Uthree .Uthree", "true", true},
+	{"ge .Uthree .Ufour", "false", true},
+	{"ge .Ufour .Uthree", "true", true},
+	// Mixing signed and unsigned integers.
+	{"eq .Uthree .Three", "true", true},
+	{"eq .Three .Uthree", "true", true},
+	{"le .Uthree .Three", "true", true},
+	{"le .Three .Uthree", "true", true},
+	{"ge .Uthree .Three", "true", true},
+	{"ge .Three .Uthree", "true", true},
+	{"lt .Uthree .Three", "false", true},
+	{"lt .Three .Uthree", "false", true},
+	{"gt .Uthree .Three", "false", true},
+	{"gt .Three .Uthree", "false", true},
+	{"eq .Ufour .Three", "false", true},
+	{"lt .Ufour .Three", "false", true},
+	{"gt .Ufour .Three", "true", true},
+	{"eq .NegOne .Uthree", "false", true},
+	{"eq .Uthree .NegOne", "false", true},
+	{"ne .NegOne .Uthree", "true", true},
+	{"ne .Uthree .NegOne", "true", true},
+	{"lt .NegOne .Uthree", "true", true},
+	{"lt .Uthree .NegOne", "false", true},
+	{"le .NegOne .Uthree", "true", true},
+	{"le .Uthree .NegOne", "false", true},
+	{"gt .NegOne .Uthree", "false", true},
+	{"gt .Uthree .NegOne", "true", true},
+	{"ge .NegOne .Uthree", "false", true},
+	{"ge .Uthree .NegOne", "true", true},
+	{"eq (index `x` 0) 'x'", "true", true}, // The example that triggered this rule.
+	{"eq (index `x` 0) 'y'", "false", true},
+	{"eq .V1 .V2", "true", true},
+	{"eq .Ptr .Ptr", "true", true},
+	{"eq .Ptr .NilPtr", "false", true},
+	{"eq .NilPtr .NilPtr", "true", true},
+	{"eq .Iface1 .Iface1", "true", true},
+	{"eq .Iface1 .NilIface", "false", true},
+	{"eq .NilIface .NilIface", "true", true},
+	{"eq .NilIface .Iface1", "false", true},
+	{"eq .NilIface 0", "false", true},
+	{"eq 0 .NilIface", "false", true},
+	// 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.
+}
+
+func TestComparison(t *testing.T) {
+	b := new(bytes.Buffer)
+	var cmpStruct = struct {
+		Uthree, Ufour    uint
+		NegOne, Three    int
+		Ptr, NilPtr      *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,
+	}
+	for _, test := range cmpTests {
+		text := fmt.Sprintf("{{if %s}}true{{else}}false{{end}}", test.expr)
+		tmpl, err := New("empty").Parse(text)
+		if err != nil {
+			t.Fatalf("%q: %s", test.expr, err)
+		}
+		b.Reset()
+		err = tmpl.Execute(b, &cmpStruct)
+		if test.ok && err != nil {
+			t.Errorf("%s errored incorrectly: %s", test.expr, err)
+			continue
+		}
+		if !test.ok && err == nil {
+			t.Errorf("%s did not error", test.expr)
+			continue
+		}
+		if b.String() != test.truth {
+			t.Errorf("%s: want %s; got %s", test.expr, test.truth, b.String())
+		}
+	}
+}
+
+func TestMissingMapKey(t *testing.T) {
+	data := map[string]int{
+		"x": 99,
+	}
+	tmpl, err := New("t1").Parse("{{.x}} {{.y}}")
+	if err != nil {
+		t.Fatal(err)
+	}
+	var b bytes.Buffer
+	// By default, just get "<no value>"
+	err = tmpl.Execute(&b, data)
+	if err != nil {
+		t.Fatal(err)
+	}
+	want := "99 <no value>"
+	got := b.String()
+	if got != want {
+		t.Errorf("got %q; expected %q", got, want)
+	}
+	// Same if we set the option explicitly to the default.
+	tmpl.Option("missingkey=default")
+	b.Reset()
+	err = tmpl.Execute(&b, data)
+	if err != nil {
+		t.Fatal("default:", err)
+	}
+	want = "99 <no value>"
+	got = b.String()
+	if got != want {
+		t.Errorf("got %q; expected %q", got, want)
+	}
+	// Next we ask for a zero value
+	tmpl.Option("missingkey=zero")
+	b.Reset()
+	err = tmpl.Execute(&b, data)
+	if err != nil {
+		t.Fatal("zero:", err)
+	}
+	want = "99 0"
+	got = b.String()
+	if got != want {
+		t.Errorf("got %q; expected %q", got, want)
+	}
+	// Now we ask for an error.
+	tmpl.Option("missingkey=error")
+	err = tmpl.Execute(&b, data)
+	if err == nil {
+		t.Errorf("expected error; got none")
+	}
+	// same Option, but now a nil interface: ask for an error
+	err = tmpl.Execute(&b, nil)
+	t.Log(err)
+	if err == nil {
+		t.Errorf("expected error for nil-interface; got none")
+	}
+}
+
+// Test that the error message for multiline unterminated string
+// refers to the line number of the opening quote.
+func TestUnterminatedStringError(t *testing.T) {
+	_, err := New("X").Parse("hello\n\n{{`unterminated\n\n\n\n}}\n some more\n\n")
+	if err == nil {
+		t.Fatal("expected error")
+	}
+	str := err.Error()
+	if !strings.Contains(str, "X:3: unterminated raw quoted string") {
+		t.Fatalf("unexpected error: %s", str)
+	}
+}
+
+const alwaysErrorText = "always be failing"
+
+var alwaysError = errors.New(alwaysErrorText)
+
+type ErrorWriter int
+
+func (e ErrorWriter) Write(p []byte) (int, error) {
+	return 0, alwaysError
+}
+
+func TestExecuteGivesExecError(t *testing.T) {
+	// First, a non-execution error shouldn't be an ExecError.
+	tmpl, err := New("X").Parse("hello")
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = tmpl.Execute(ErrorWriter(0), 0)
+	if err == nil {
+		t.Fatal("expected error; got none")
+	}
+	if err.Error() != alwaysErrorText {
+		t.Errorf("expected %q error; got %q", alwaysErrorText, err)
+	}
+	// This one should be an ExecError.
+	tmpl, err = New("X").Parse("hello, {{.X.Y}}")
+	if err != nil {
+		t.Fatal(err)
+	}
+	err = tmpl.Execute(ioutil.Discard, 0)
+	if err == nil {
+		t.Fatal("expected error; got none")
+	}
+	eerr, ok := err.(ExecError)
+	if !ok {
+		t.Fatalf("did not expect ExecError %s", eerr)
+	}
+	expect := "field X in type int"
+	if !strings.Contains(err.Error(), expect) {
+		t.Errorf("expected %q; got %q", expect, err)
+	}
+}
+
+func funcNameTestFunc() int {
+	return 0
+}
+
+func TestGoodFuncNames(t *testing.T) {
+	names := []string{
+		"_",
+		"a",
+		"a1",
+		"a1",
+		"Ӵ",
+	}
+	for _, name := range names {
+		tmpl := New("X").Funcs(
+			FuncMap{
+				name: funcNameTestFunc,
+			},
+		)
+		if tmpl == nil {
+			t.Fatalf("nil result for %q", name)
+		}
+	}
+}
+
+func TestBadFuncNames(t *testing.T) {
+	names := []string{
+		"",
+		"2",
+		"a-b",
+	}
+	for _, name := range names {
+		testBadFuncName(name, t)
+	}
+}
+
+func testBadFuncName(name string, t *testing.T) {
+	t.Helper()
+	defer func() {
+		recover()
+	}()
+	New("X").Funcs(
+		FuncMap{
+			name: funcNameTestFunc,
+		},
+	)
+	// If we get here, the name did not cause a panic, which is how Funcs
+	// reports an error.
+	t.Errorf("%q succeeded incorrectly as function name", name)
+}
+
+func TestBlock(t *testing.T) {
+	const (
+		input   = `a({{block "inner" .}}bar({{.}})baz{{end}})b`
+		want    = `a(bar(hello)baz)b`
+		overlay = `{{define "inner"}}foo({{.}})bar{{end}}`
+		want2   = `a(foo(goodbye)bar)b`
+	)
+	tmpl, err := New("outer").Parse(input)
+	if err != nil {
+		t.Fatal(err)
+	}
+	tmpl2, err := Must(tmpl.Clone()).Parse(overlay)
+	if err != nil {
+		t.Fatal(err)
+	}
+
+	var buf bytes.Buffer
+	if err := tmpl.Execute(&buf, "hello"); err != nil {
+		t.Fatal(err)
+	}
+	if got := buf.String(); got != want {
+		t.Errorf("got %q, want %q", got, want)
+	}
+
+	buf.Reset()
+	if err := tmpl2.Execute(&buf, "goodbye"); err != nil {
+		t.Fatal(err)
+	}
+	if got := buf.String(); got != want2 {
+		t.Errorf("got %q, want %q", got, want2)
+	}
+}
+
+func TestEvalFieldErrors(t *testing.T) {
+	tests := []struct {
+		name, src string
+		value     interface{}
+		want      string
+	}{
+		{
+			// Check that calling an invalid field on nil pointer
+			// prints a field error instead of a distracting nil
+			// pointer error. https://golang.org/issue/15125
+			"MissingFieldOnNil",
+			"{{.MissingField}}",
+			(*T)(nil),
+			"can't evaluate field MissingField in type *template.T",
+		},
+		{
+			"MissingFieldOnNonNil",
+			"{{.MissingField}}",
+			&T{},
+			"can't evaluate field MissingField in type *template.T",
+		},
+		{
+			"ExistingFieldOnNil",
+			"{{.X}}",
+			(*T)(nil),
+			"nil pointer evaluating *template.T.X",
+		},
+		{
+			"MissingKeyOnNilMap",
+			"{{.MissingKey}}",
+			(*map[string]string)(nil),
+			"nil pointer evaluating *map[string]string.MissingKey",
+		},
+		{
+			"MissingKeyOnNilMapPtr",
+			"{{.MissingKey}}",
+			(*map[string]string)(nil),
+			"nil pointer evaluating *map[string]string.MissingKey",
+		},
+		{
+			"MissingKeyOnMapPtrToNil",
+			"{{.MissingKey}}",
+			&map[string]string{},
+			"<nil>",
+		},
+	}
+	for _, tc := range tests {
+		t.Run(tc.name, func(t *testing.T) {
+			tmpl := Must(New("tmpl").Parse(tc.src))
+			err := tmpl.Execute(ioutil.Discard, tc.value)
+			got := "<nil>"
+			if err != nil {
+				got = err.Error()
+			}
+			if !strings.HasSuffix(got, tc.want) {
+				t.Fatalf("got error %q, want %q", got, tc.want)
+			}
+		})
+	}
+}
+
+func TestMaxExecDepth(t *testing.T) {
+	if testing.Short() {
+		t.Skip("skipping in -short mode")
+	}
+	tmpl := Must(New("tmpl").Parse(`{{template "tmpl" .}}`))
+	err := tmpl.Execute(ioutil.Discard, nil)
+	got := "<nil>"
+	if err != nil {
+		got = err.Error()
+	}
+	const want = "exceeded maximum template depth"
+	if !strings.Contains(got, want) {
+		t.Errorf("got error %q; want %q", got, want)
+	}
+}
+
+func TestAddrOfIndex(t *testing.T) {
+	// golang.org/issue/14916.
+	// Before index worked on reflect.Values, the .String could not be
+	// found on the (incorrectly unaddressable) V value,
+	// in contrast to range, which worked fine.
+	// Also testing that passing a reflect.Value to tmpl.Execute works.
+	texts := []string{
+		`{{range .}}{{.String}}{{end}}`,
+		`{{with index . 0}}{{.String}}{{end}}`,
+	}
+	for _, text := range texts {
+		tmpl := Must(New("tmpl").Parse(text))
+		var buf bytes.Buffer
+		err := tmpl.Execute(&buf, reflect.ValueOf([]V{{1}}))
+		if err != nil {
+			t.Fatalf("%s: Execute: %v", text, err)
+		}
+		if buf.String() != "<1>" {
+			t.Fatalf("%s: template output = %q, want %q", text, &buf, "<1>")
+		}
+	}
+}
+
+func TestInterfaceValues(t *testing.T) {
+	// golang.org/issue/17714.
+	// Before index worked on reflect.Values, interface values
+	// were always implicitly promoted to the underlying value,
+	// except that nil interfaces were promoted to the zero reflect.Value.
+	// Eliminating a round trip to interface{} and back to reflect.Value
+	// eliminated this promotion, breaking these cases.
+	tests := []struct {
+		text string
+		out  string
+	}{
+		{`{{index .Nil 1}}`, "ERROR: index of untyped nil"},
+		{`{{index .Slice 2}}`, "2"},
+		{`{{index .Slice .Two}}`, "2"},
+		{`{{call .Nil 1}}`, "ERROR: call of nil"},
+		{`{{call .PlusOne 1}}`, "2"},
+		{`{{call .PlusOne .One}}`, "2"},
+		{`{{and (index .Slice 0) true}}`, "0"},
+		{`{{and .Zero true}}`, "0"},
+		{`{{and (index .Slice 1) false}}`, "false"},
+		{`{{and .One false}}`, "false"},
+		{`{{or (index .Slice 0) false}}`, "false"},
+		{`{{or .Zero false}}`, "false"},
+		{`{{or (index .Slice 1) true}}`, "1"},
+		{`{{or .One true}}`, "1"},
+		{`{{not (index .Slice 0)}}`, "true"},
+		{`{{not .Zero}}`, "true"},
+		{`{{not (index .Slice 1)}}`, "false"},
+		{`{{not .One}}`, "false"},
+		{`{{eq (index .Slice 0) .Zero}}`, "true"},
+		{`{{eq (index .Slice 1) .One}}`, "true"},
+		{`{{ne (index .Slice 0) .Zero}}`, "false"},
+		{`{{ne (index .Slice 1) .One}}`, "false"},
+		{`{{ge (index .Slice 0) .One}}`, "false"},
+		{`{{ge (index .Slice 1) .Zero}}`, "true"},
+		{`{{gt (index .Slice 0) .One}}`, "false"},
+		{`{{gt (index .Slice 1) .Zero}}`, "true"},
+		{`{{le (index .Slice 0) .One}}`, "true"},
+		{`{{le (index .Slice 1) .Zero}}`, "false"},
+		{`{{lt (index .Slice 0) .One}}`, "true"},
+		{`{{lt (index .Slice 1) .Zero}}`, "false"},
+	}
+
+	for _, tt := range tests {
+		tmpl := Must(New("tmpl").Parse(tt.text))
+		var buf bytes.Buffer
+		err := tmpl.Execute(&buf, map[string]interface{}{
+			"PlusOne": func(n int) int {
+				return n + 1
+			},
+			"Slice": []int{0, 1, 2, 3},
+			"One":   1,
+			"Two":   2,
+			"Nil":   nil,
+			"Zero":  0,
+		})
+		if strings.HasPrefix(tt.out, "ERROR:") {
+			e := strings.TrimSpace(strings.TrimPrefix(tt.out, "ERROR:"))
+			if err == nil || !strings.Contains(err.Error(), e) {
+				t.Errorf("%s: Execute: %v, want error %q", tt.text, err, e)
+			}
+			continue
+		}
+		if err != nil {
+			t.Errorf("%s: Execute: %v", tt.text, err)
+			continue
+		}
+		if buf.String() != tt.out {
+			t.Errorf("%s: template output = %q, want %q", tt.text, &buf, tt.out)
+		}
+	}
+}
+
+// Check that panics during calls are recovered and returned as errors.
+func TestExecutePanicDuringCall(t *testing.T) {
+	funcs := map[string]interface{}{
+		"doPanic": func() string {
+			panic("custom panic string")
+		},
+	}
+	tests := []struct {
+		name    string
+		input   string
+		data    interface{}
+		wantErr string
+	}{
+		{
+			"direct func call panics",
+			"{{doPanic}}", (*T)(nil),
+			`template: t:1:2: executing "t" at <doPanic>: error calling doPanic: custom panic string`,
+		},
+		{
+			"indirect func call panics",
+			"{{call doPanic}}", (*T)(nil),
+			`template: t:1:7: executing "t" at <doPanic>: error calling doPanic: custom panic string`,
+		},
+		{
+			"direct method call panics",
+			"{{.GetU}}", (*T)(nil),
+			`template: t:1:2: executing "t" at <.GetU>: error calling GetU: runtime error: invalid memory address or nil pointer dereference`,
+		},
+		{
+			"indirect method call panics",
+			"{{call .GetU}}", (*T)(nil),
+			`template: t:1:7: executing "t" at <.GetU>: error calling GetU: runtime error: invalid memory address or nil pointer dereference`,
+		},
+		{
+			"func field call panics",
+			"{{call .PanicFunc}}", tVal,
+			`template: t:1:2: executing "t" at <call .PanicFunc>: error calling call: test panic`,
+		},
+		{
+			"method call on nil interface",
+			"{{.NonEmptyInterfaceNil.Method0}}", tVal,
+			`template: t:1:23: executing "t" at <.NonEmptyInterfaceNil.Method0>: nil pointer evaluating template.I.Method0`,
+		},
+	}
+	for _, tc := range tests {
+		b := new(bytes.Buffer)
+		tmpl, err := New("t").Funcs(funcs).Parse(tc.input)
+		if err != nil {
+			t.Fatalf("parse error: %s", err)
+		}
+		err = tmpl.Execute(b, tc.data)
+		if err == nil {
+			t.Errorf("%s: expected error; got none", tc.name)
+		} else if !strings.Contains(err.Error(), tc.wantErr) {
+			if *debug {
+				fmt.Printf("%s: test execute error: %s\n", tc.name, err)
+			}
+			t.Errorf("%s: expected error:\n%s\ngot:\n%s", tc.name, tc.wantErr, err)
+		}
+	}
+}
+
+// Issue 31810. Check that a parenthesized first argument behaves properly.
+func TestIssue31810(t *testing.T) {
+	// A simple value with no arguments is fine.
+	var b bytes.Buffer
+	const text = "{{ (.)  }}"
+	tmpl, err := New("").Parse(text)
+	if err != nil {
+		t.Error(err)
+	}
+	err = tmpl.Execute(&b, "result")
+	if err != nil {
+		t.Error(err)
+	}
+	if b.String() != "result" {
+		t.Errorf("%s got %q, expected %q", text, b.String(), "result")
+	}
+
+	// Even a plain function fails - need to use call.
+	f := func() string { return "result" }
+	b.Reset()
+	err = tmpl.Execute(&b, f)
+	if err == nil {
+		t.Error("expected error with no call, got none")
+	}
+
+	// Works if the function is explicitly called.
+	const textCall = "{{ (call .)  }}"
+	tmpl, err = New("").Parse(textCall)
+	b.Reset()
+	err = tmpl.Execute(&b, f)
+	if err != nil {
+		t.Error(err)
+	}
+	if b.String() != "result" {
+		t.Errorf("%s got %q, expected %q", textCall, b.String(), "result")
+	}
+}
+
+// Issue 43065, range over send only channel
+func TestIssue43065(t *testing.T) {
+	var b bytes.Buffer
+	tmp := Must(New("").Parse(`{{range .}}{{end}}`))
+	ch := make(chan<- int)
+	err := tmp.Execute(&b, ch)
+	if err == nil {
+		t.Error("expected err got nil")
+	} else if !strings.Contains(err.Error(), "range over send-only channel") {
+		t.Errorf("%s", err)
+	}
+}
+
+// Issue 39807: data race in html/template & text/template
+func TestIssue39807(t *testing.T) {
+	var wg sync.WaitGroup
+
+	tplFoo, err := New("foo").Parse(`{{ template "bar" . }}`)
+	if err != nil {
+		t.Error(err)
+	}
+
+	tplBar, err := New("bar").Parse("bar")
+	if err != nil {
+		t.Error(err)
+	}
+
+	gofuncs := 10
+	numTemplates := 10
+
+	for i := 1; i <= gofuncs; i++ {
+		wg.Add(1)
+		go func() {
+			defer wg.Done()
+			for j := 0; j < numTemplates; j++ {
+				_, err := tplFoo.AddParseTree(tplBar.Name(), tplBar.Tree)
+				if err != nil {
+					t.Error(err)
+				}
+				err = tplFoo.Execute(ioutil.Discard, nil)
+				if err != nil {
+					t.Error(err)
+				}
+			}
+		}()
+	}
+
+	wg.Wait()
+}
diff --git a/go.dev/cmd/internal/text/template/funcs.go b/go.dev/cmd/internal/text/template/funcs.go
new file mode 100644
index 0000000..11e2e90
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/funcs.go
@@ -0,0 +1,753 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+	"io"
+	"net/url"
+	"reflect"
+	"strings"
+	"sync"
+	"unicode"
+	"unicode/utf8"
+)
+
+// 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)
+// return value evaluates to non-nil during execution, execution terminates and
+// Execute returns that error.
+//
+// Errors returned by Execute wrap the underlying error; call errors.As to
+// uncover them.
+//
+// When template execution invokes a function with an argument list, that list
+// must be assignable to the function's parameter types. Functions meant to
+// apply to arguments of arbitrary type can use parameters of type interface{} or
+// of type reflect.Value. Similarly, functions meant to return a result of arbitrary
+// type can return interface{} or reflect.Value.
+type FuncMap map[string]interface{}
+
+// builtins returns the FuncMap.
+// It is not a global variable so the linker can dead code eliminate
+// more when this isn't called. See golang.org/issue/36021.
+// TODO: revert this back to a global map once golang.org/issue/2559 is fixed.
+func builtins() FuncMap {
+	return FuncMap{
+		"and":      and,
+		"call":     call,
+		"html":     HTMLEscaper,
+		"index":    index,
+		"slice":    slice,
+		"js":       JSEscaper,
+		"len":      length,
+		"not":      not,
+		"or":       or,
+		"print":    fmt.Sprint,
+		"printf":   fmt.Sprintf,
+		"println":  fmt.Sprintln,
+		"urlquery": URLQueryEscaper,
+
+		// Comparisons
+		"eq": eq, // ==
+		"ge": ge, // >=
+		"gt": gt, // >
+		"le": le, // <=
+		"lt": lt, // <
+		"ne": ne, // !=
+	}
+}
+
+var builtinFuncsOnce struct {
+	sync.Once
+	v map[string]reflect.Value
+}
+
+// builtinFuncsOnce lazily computes & caches the builtinFuncs map.
+// TODO: revert this back to a global map once golang.org/issue/2559 is fixed.
+func builtinFuncs() map[string]reflect.Value {
+	builtinFuncsOnce.Do(func() {
+		builtinFuncsOnce.v = createValueFuncs(builtins())
+	})
+	return builtinFuncsOnce.v
+}
+
+// createValueFuncs turns a FuncMap into a map[string]reflect.Value
+func createValueFuncs(funcMap FuncMap) map[string]reflect.Value {
+	m := make(map[string]reflect.Value)
+	addValueFuncs(m, funcMap)
+	return m
+}
+
+// addValueFuncs adds to values the functions in funcs, converting them to reflect.Values.
+func addValueFuncs(out map[string]reflect.Value, in FuncMap) {
+	for name, fn := range in {
+		if !goodName(name) {
+			panic(fmt.Errorf("function name %q is not a valid identifier", name))
+		}
+		v := reflect.ValueOf(fn)
+		if v.Kind() != reflect.Func {
+			panic("value for " + name + " not a function")
+		}
+		if !goodFunc(v.Type()) {
+			panic(fmt.Errorf("can't install method/function %q with %d results", name, v.Type().NumOut()))
+		}
+		out[name] = v
+	}
+}
+
+// addFuncs adds to values the functions in funcs. It does no checking of the input -
+// call addValueFuncs first.
+func addFuncs(out, in FuncMap) {
+	for name, fn := range in {
+		out[name] = fn
+	}
+}
+
+// goodFunc reports whether the function or method has the right result signature.
+func goodFunc(typ reflect.Type) bool {
+	// We allow functions with 1 result or 2 results where the second is an error.
+	switch {
+	case typ.NumOut() == 1:
+		return true
+	case typ.NumOut() == 2 && typ.Out(1) == errorType:
+		return true
+	}
+	return false
+}
+
+// goodName reports whether the function name is a valid identifier.
+func goodName(name string) bool {
+	if name == "" {
+		return false
+	}
+	for i, r := range name {
+		switch {
+		case r == '_':
+		case i == 0 && !unicode.IsLetter(r):
+			return false
+		case !unicode.IsLetter(r) && !unicode.IsDigit(r):
+			return false
+		}
+	}
+	return true
+}
+
+// findFunction looks for a function in the template, and global map.
+func findFunction(name string, tmpl *Template) (v reflect.Value, isBuiltin, ok bool) {
+	if tmpl != nil && tmpl.common != nil {
+		tmpl.muFuncs.RLock()
+		defer tmpl.muFuncs.RUnlock()
+		if fn := tmpl.execFuncs[name]; fn.IsValid() {
+			return fn, false, true
+		}
+	}
+	if fn := builtinFuncs()[name]; fn.IsValid() {
+		return fn, true, true
+	}
+	return reflect.Value{}, false, false
+}
+
+// prepareArg checks if value can be used as an argument of type argType, and
+// converts an invalid value to appropriate zero if possible.
+func prepareArg(value reflect.Value, argType reflect.Type) (reflect.Value, error) {
+	if !value.IsValid() {
+		if !canBeNil(argType) {
+			return reflect.Value{}, fmt.Errorf("value is nil; should be of type %s", argType)
+		}
+		value = reflect.Zero(argType)
+	}
+	if value.Type().AssignableTo(argType) {
+		return value, nil
+	}
+	if intLike(value.Kind()) && intLike(argType.Kind()) && value.Type().ConvertibleTo(argType) {
+		value = value.Convert(argType)
+		return value, nil
+	}
+	return reflect.Value{}, fmt.Errorf("value has type %s; should be %s", value.Type(), argType)
+}
+
+func intLike(typ reflect.Kind) bool {
+	switch typ {
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		return true
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		return true
+	}
+	return false
+}
+
+// indexArg checks if a reflect.Value can be used as an index, and converts it to int if possible.
+func indexArg(index reflect.Value, cap int) (int, error) {
+	var x int64
+	switch index.Kind() {
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		x = index.Int()
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		x = int64(index.Uint())
+	case reflect.Invalid:
+		return 0, fmt.Errorf("cannot index slice/array with nil")
+	default:
+		return 0, fmt.Errorf("cannot index slice/array with type %s", index.Type())
+	}
+	if x < 0 || int(x) < 0 || int(x) > cap {
+		return 0, fmt.Errorf("index out of range: %d", x)
+	}
+	return int(x), nil
+}
+
+// Indexing.
+
+// index returns the result of indexing its first argument by the following
+// arguments. Thus "index x 1 2 3" is, in Go syntax, x[1][2][3]. Each
+// indexed item must be a map, slice, or array.
+func index(item reflect.Value, indexes ...reflect.Value) (reflect.Value, error) {
+	item = indirectInterface(item)
+	if !item.IsValid() {
+		return reflect.Value{}, fmt.Errorf("index of untyped nil")
+	}
+	for _, index := range indexes {
+		index = indirectInterface(index)
+		var isNil bool
+		if item, isNil = indirect(item); isNil {
+			return reflect.Value{}, fmt.Errorf("index of nil pointer")
+		}
+		switch item.Kind() {
+		case reflect.Array, reflect.Slice, reflect.String:
+			x, err := indexArg(index, item.Len())
+			if err != nil {
+				return reflect.Value{}, err
+			}
+			item = item.Index(x)
+		case reflect.Map:
+			index, err := prepareArg(index, item.Type().Key())
+			if err != nil {
+				return reflect.Value{}, err
+			}
+			if x := item.MapIndex(index); x.IsValid() {
+				item = x
+			} else {
+				item = reflect.Zero(item.Type().Elem())
+			}
+		case reflect.Invalid:
+			// the loop holds invariant: item.IsValid()
+			panic("unreachable")
+		default:
+			return reflect.Value{}, fmt.Errorf("can't index item of type %s", item.Type())
+		}
+	}
+	return item, nil
+}
+
+// Slicing.
+
+// slice returns the result of slicing its first argument by the remaining
+// arguments. Thus "slice x 1 2" is, in Go syntax, x[1:2], while "slice x"
+// is x[:], "slice x 1" is x[1:], and "slice x 1 2 3" is x[1:2:3]. The first
+// argument must be a string, slice, or array.
+func slice(item reflect.Value, indexes ...reflect.Value) (reflect.Value, error) {
+	item = indirectInterface(item)
+	if !item.IsValid() {
+		return reflect.Value{}, fmt.Errorf("slice of untyped nil")
+	}
+	if len(indexes) > 3 {
+		return reflect.Value{}, fmt.Errorf("too many slice indexes: %d", len(indexes))
+	}
+	var cap int
+	switch item.Kind() {
+	case reflect.String:
+		if len(indexes) == 3 {
+			return reflect.Value{}, fmt.Errorf("cannot 3-index slice a string")
+		}
+		cap = item.Len()
+	case reflect.Array, reflect.Slice:
+		cap = item.Cap()
+	default:
+		return reflect.Value{}, fmt.Errorf("can't slice item of type %s", item.Type())
+	}
+	// set default values for cases item[:], item[i:].
+	idx := [3]int{0, item.Len()}
+	for i, index := range indexes {
+		x, err := indexArg(index, cap)
+		if err != nil {
+			return reflect.Value{}, err
+		}
+		idx[i] = x
+	}
+	// given item[i:j], make sure i <= j.
+	if idx[0] > idx[1] {
+		return reflect.Value{}, fmt.Errorf("invalid slice index: %d > %d", idx[0], idx[1])
+	}
+	if len(indexes) < 3 {
+		return item.Slice(idx[0], idx[1]), nil
+	}
+	// given item[i:j:k], make sure i <= j <= k.
+	if idx[1] > idx[2] {
+		return reflect.Value{}, fmt.Errorf("invalid slice index: %d > %d", idx[1], idx[2])
+	}
+	return item.Slice3(idx[0], idx[1], idx[2]), nil
+}
+
+// Length
+
+// length returns the length of the item, with an error if it has no defined length.
+func length(item reflect.Value) (int, error) {
+	item, isNil := indirect(item)
+	if isNil {
+		return 0, fmt.Errorf("len of nil pointer")
+	}
+	switch item.Kind() {
+	case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice, reflect.String:
+		return item.Len(), nil
+	}
+	return 0, fmt.Errorf("len of type %s", item.Type())
+}
+
+// Function invocation
+
+// call returns the result of evaluating the first argument as a function.
+// The function must return 1 result, or 2 results, the second of which is an error.
+func call(fn reflect.Value, args ...reflect.Value) (reflect.Value, error) {
+	fn = indirectInterface(fn)
+	if !fn.IsValid() {
+		return reflect.Value{}, fmt.Errorf("call of nil")
+	}
+	typ := fn.Type()
+	if typ.Kind() != reflect.Func {
+		return reflect.Value{}, fmt.Errorf("non-function of type %s", typ)
+	}
+	if !goodFunc(typ) {
+		return reflect.Value{}, fmt.Errorf("function called with %d args; should be 1 or 2", typ.NumOut())
+	}
+	numIn := typ.NumIn()
+	var dddType reflect.Type
+	if typ.IsVariadic() {
+		if len(args) < numIn-1 {
+			return reflect.Value{}, fmt.Errorf("wrong number of args: got %d want at least %d", len(args), numIn-1)
+		}
+		dddType = typ.In(numIn - 1).Elem()
+	} else {
+		if len(args) != numIn {
+			return reflect.Value{}, fmt.Errorf("wrong number of args: got %d want %d", len(args), numIn)
+		}
+	}
+	argv := make([]reflect.Value, len(args))
+	for i, arg := range args {
+		arg = indirectInterface(arg)
+		// Compute the expected type. Clumsy because of variadics.
+		argType := dddType
+		if !typ.IsVariadic() || i < numIn-1 {
+			argType = typ.In(i)
+		}
+
+		var err error
+		if argv[i], err = prepareArg(arg, argType); err != nil {
+			return reflect.Value{}, fmt.Errorf("arg %d: %w", i, err)
+		}
+	}
+	return safeCall(fn, argv)
+}
+
+// safeCall runs fun.Call(args), and returns the resulting value and error, if
+// any. If the call panics, the panic value is returned as an error.
+func safeCall(fun reflect.Value, args []reflect.Value) (val reflect.Value, err error) {
+	defer func() {
+		if r := recover(); r != nil {
+			if e, ok := r.(error); ok {
+				err = e
+			} else {
+				err = fmt.Errorf("%v", r)
+			}
+		}
+	}()
+	ret := fun.Call(args)
+	if len(ret) == 2 && !ret[1].IsNil() {
+		return ret[0], ret[1].Interface().(error)
+	}
+	return ret[0], nil
+}
+
+// Boolean logic.
+
+func truth(arg reflect.Value) bool {
+	t, _ := isTrue(indirectInterface(arg))
+	return t
+}
+
+// and computes the Boolean AND of its arguments, returning
+// the first false argument it encounters, or the last argument.
+func and(arg0 reflect.Value, args ...reflect.Value) reflect.Value {
+	panic("unreachable") // implemented as a special case in evalCall
+}
+
+// or computes the Boolean OR of its arguments, returning
+// the first true argument it encounters, or the last argument.
+func or(arg0 reflect.Value, args ...reflect.Value) reflect.Value {
+	panic("unreachable") // implemented as a special case in evalCall
+}
+
+// not returns the Boolean negation of its argument.
+func not(arg reflect.Value) bool {
+	return !truth(arg)
+}
+
+// Comparison.
+
+// TODO: Perhaps allow comparison between signed and unsigned integers.
+
+var (
+	errBadComparisonType = errors.New("invalid type for comparison")
+	errBadComparison     = errors.New("incompatible types for comparison")
+	errNoComparison      = errors.New("missing argument for comparison")
+)
+
+type kind int
+
+const (
+	invalidKind kind = iota
+	boolKind
+	complexKind
+	intKind
+	floatKind
+	stringKind
+	uintKind
+)
+
+func basicKind(v reflect.Value) (kind, error) {
+	switch v.Kind() {
+	case reflect.Bool:
+		return boolKind, nil
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		return intKind, nil
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		return uintKind, nil
+	case reflect.Float32, reflect.Float64:
+		return floatKind, nil
+	case reflect.Complex64, reflect.Complex128:
+		return complexKind, nil
+	case reflect.String:
+		return stringKind, nil
+	}
+	return invalidKind, errBadComparisonType
+}
+
+// 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
+	}
+	k1, _ := basicKind(arg1)
+	for _, arg := range arg2 {
+		arg = indirectInterface(arg)
+		k2, _ := basicKind(arg)
+		truth := false
+		if k1 != k2 {
+			// Special case: Can compare integer values regardless of type's sign.
+			switch {
+			case k1 == intKind && k2 == uintKind:
+				truth = arg1.Int() >= 0 && uint64(arg1.Int()) == arg.Uint()
+			case k1 == uintKind && k2 == intKind:
+				truth = arg.Int() >= 0 && arg1.Uint() == uint64(arg.Int())
+			default:
+				if arg1 != zero && arg != zero {
+					return false, errBadComparison
+				}
+			}
+		} else {
+			switch k1 {
+			case boolKind:
+				truth = arg1.Bool() == arg.Bool()
+			case complexKind:
+				truth = arg1.Complex() == arg.Complex()
+			case floatKind:
+				truth = arg1.Float() == arg.Float()
+			case intKind:
+				truth = arg1.Int() == arg.Int()
+			case stringKind:
+				truth = arg1.String() == arg.String()
+			case uintKind:
+				truth = arg1.Uint() == arg.Uint()
+			default:
+				if arg == zero || arg1 == zero {
+					truth = arg1 == arg
+				} else {
+					if t2 := arg.Type(); !t2.Comparable() {
+						return false, fmt.Errorf("uncomparable type %s: %v", t2, arg)
+					}
+					truth = arg1.Interface() == arg.Interface()
+				}
+			}
+		}
+		if truth {
+			return true, nil
+		}
+	}
+	return false, nil
+}
+
+// ne evaluates the comparison a != b.
+func ne(arg1, arg2 reflect.Value) (bool, error) {
+	// != is the inverse of ==.
+	equal, err := eq(arg1, arg2)
+	return !equal, err
+}
+
+// lt evaluates the comparison a < b.
+func lt(arg1, arg2 reflect.Value) (bool, error) {
+	arg1 = indirectInterface(arg1)
+	k1, err := basicKind(arg1)
+	if err != nil {
+		return false, err
+	}
+	arg2 = indirectInterface(arg2)
+	k2, err := basicKind(arg2)
+	if err != nil {
+		return false, err
+	}
+	truth := false
+	if k1 != k2 {
+		// Special case: Can compare integer values regardless of type's sign.
+		switch {
+		case k1 == intKind && k2 == uintKind:
+			truth = arg1.Int() < 0 || uint64(arg1.Int()) < arg2.Uint()
+		case k1 == uintKind && k2 == intKind:
+			truth = arg2.Int() >= 0 && arg1.Uint() < uint64(arg2.Int())
+		default:
+			return false, errBadComparison
+		}
+	} else {
+		switch k1 {
+		case boolKind, complexKind:
+			return false, errBadComparisonType
+		case floatKind:
+			truth = arg1.Float() < arg2.Float()
+		case intKind:
+			truth = arg1.Int() < arg2.Int()
+		case stringKind:
+			truth = arg1.String() < arg2.String()
+		case uintKind:
+			truth = arg1.Uint() < arg2.Uint()
+		default:
+			panic("invalid kind")
+		}
+	}
+	return truth, nil
+}
+
+// le evaluates the comparison <= b.
+func le(arg1, arg2 reflect.Value) (bool, error) {
+	// <= is < or ==.
+	lessThan, err := lt(arg1, arg2)
+	if lessThan || err != nil {
+		return lessThan, err
+	}
+	return eq(arg1, arg2)
+}
+
+// gt evaluates the comparison a > b.
+func gt(arg1, arg2 reflect.Value) (bool, error) {
+	// > is the inverse of <=.
+	lessOrEqual, err := le(arg1, arg2)
+	if err != nil {
+		return false, err
+	}
+	return !lessOrEqual, nil
+}
+
+// ge evaluates the comparison a >= b.
+func ge(arg1, arg2 reflect.Value) (bool, error) {
+	// >= is the inverse of <.
+	lessThan, err := lt(arg1, arg2)
+	if err != nil {
+		return false, err
+	}
+	return !lessThan, nil
+}
+
+// HTML escaping.
+
+var (
+	htmlQuot = []byte("&#34;") // shorter than "&quot;"
+	htmlApos = []byte("&#39;") // shorter than "&apos;" and apos was not in HTML until HTML5
+	htmlAmp  = []byte("&amp;")
+	htmlLt   = []byte("&lt;")
+	htmlGt   = []byte("&gt;")
+	htmlNull = []byte("\uFFFD")
+)
+
+// HTMLEscape writes to w the escaped HTML equivalent of the plain text data b.
+func HTMLEscape(w io.Writer, b []byte) {
+	last := 0
+	for i, c := range b {
+		var html []byte
+		switch c {
+		case '\000':
+			html = htmlNull
+		case '"':
+			html = htmlQuot
+		case '\'':
+			html = htmlApos
+		case '&':
+			html = htmlAmp
+		case '<':
+			html = htmlLt
+		case '>':
+			html = htmlGt
+		default:
+			continue
+		}
+		w.Write(b[last:i])
+		w.Write(html)
+		last = i + 1
+	}
+	w.Write(b[last:])
+}
+
+// HTMLEscapeString returns the escaped HTML equivalent of the plain text data s.
+func HTMLEscapeString(s string) string {
+	// Avoid allocation if we can.
+	if !strings.ContainsAny(s, "'\"&<>\000") {
+		return s
+	}
+	var b bytes.Buffer
+	HTMLEscape(&b, []byte(s))
+	return b.String()
+}
+
+// HTMLEscaper returns the escaped HTML equivalent of the textual
+// representation of its arguments.
+func HTMLEscaper(args ...interface{}) string {
+	return HTMLEscapeString(evalArgs(args))
+}
+
+// JavaScript escaping.
+
+var (
+	jsLowUni = []byte(`\u00`)
+	hex      = []byte("0123456789ABCDEF")
+
+	jsBackslash = []byte(`\\`)
+	jsApos      = []byte(`\'`)
+	jsQuot      = []byte(`\"`)
+	jsLt        = []byte(`\u003C`)
+	jsGt        = []byte(`\u003E`)
+	jsAmp       = []byte(`\u0026`)
+	jsEq        = []byte(`\u003D`)
+)
+
+// JSEscape writes to w the escaped JavaScript equivalent of the plain text data b.
+func JSEscape(w io.Writer, b []byte) {
+	last := 0
+	for i := 0; i < len(b); i++ {
+		c := b[i]
+
+		if !jsIsSpecial(rune(c)) {
+			// fast path: nothing to do
+			continue
+		}
+		w.Write(b[last:i])
+
+		if c < utf8.RuneSelf {
+			// Quotes, slashes and angle brackets get quoted.
+			// Control characters get written as \u00XX.
+			switch c {
+			case '\\':
+				w.Write(jsBackslash)
+			case '\'':
+				w.Write(jsApos)
+			case '"':
+				w.Write(jsQuot)
+			case '<':
+				w.Write(jsLt)
+			case '>':
+				w.Write(jsGt)
+			case '&':
+				w.Write(jsAmp)
+			case '=':
+				w.Write(jsEq)
+			default:
+				w.Write(jsLowUni)
+				t, b := c>>4, c&0x0f
+				w.Write(hex[t : t+1])
+				w.Write(hex[b : b+1])
+			}
+		} else {
+			// Unicode rune.
+			r, size := utf8.DecodeRune(b[i:])
+			if unicode.IsPrint(r) {
+				w.Write(b[i : i+size])
+			} else {
+				fmt.Fprintf(w, "\\u%04X", r)
+			}
+			i += size - 1
+		}
+		last = i + 1
+	}
+	w.Write(b[last:])
+}
+
+// JSEscapeString returns the escaped JavaScript equivalent of the plain text data s.
+func JSEscapeString(s string) string {
+	// Avoid allocation if we can.
+	if strings.IndexFunc(s, jsIsSpecial) < 0 {
+		return s
+	}
+	var b bytes.Buffer
+	JSEscape(&b, []byte(s))
+	return b.String()
+}
+
+func jsIsSpecial(r rune) bool {
+	switch r {
+	case '\\', '\'', '"', '<', '>', '&', '=':
+		return true
+	}
+	return r < ' ' || utf8.RuneSelf <= r
+}
+
+// JSEscaper returns the escaped JavaScript equivalent of the textual
+// representation of its arguments.
+func JSEscaper(args ...interface{}) string {
+	return JSEscapeString(evalArgs(args))
+}
+
+// URLQueryEscaper returns the escaped value of the textual representation of
+// its arguments in a form suitable for embedding in a URL query.
+func URLQueryEscaper(args ...interface{}) string {
+	return url.QueryEscape(evalArgs(args))
+}
+
+// evalArgs formats the list of arguments into a string. It is therefore equivalent to
+//	fmt.Sprint(args...)
+// except that each argument is indirected (if a pointer), as required,
+// using the same rules as the default string evaluation during template
+// execution.
+func evalArgs(args []interface{}) string {
+	ok := false
+	var s string
+	// Fast path for simple common case.
+	if len(args) == 1 {
+		s, ok = args[0].(string)
+	}
+	if !ok {
+		for i, arg := range args {
+			a, ok := printableValue(reflect.ValueOf(arg))
+			if ok {
+				args[i] = a
+			} // else let fmt do its thing
+		}
+		s = fmt.Sprint(args...)
+	}
+	return s
+}
diff --git a/go.dev/cmd/internal/text/template/funcs.go.save b/go.dev/cmd/internal/text/template/funcs.go.save
new file mode 100644
index 0000000..c3f6d47
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/funcs.go.save
@@ -0,0 +1,771 @@
+// Copyright 2011 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 template
+
+import (
+	"bytes"
+	"errors"
+	"fmt"
+	"io"
+	"net/url"
+	"reflect"
+	"strings"
+	"sync"
+	"unicode"
+	"unicode/utf8"
+)
+
+// 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)
+// return value evaluates to non-nil during execution, execution terminates and
+// Execute returns that error.
+//
+// Errors returned by Execute wrap the underlying error; call errors.As to
+// uncover them.
+//
+// When template execution invokes a function with an argument list, that list
+// must be assignable to the function's parameter types. Functions meant to
+// apply to arguments of arbitrary type can use parameters of type interface{} or
+// of type reflect.Value. Similarly, functions meant to return a result of arbitrary
+// type can return interface{} or reflect.Value.
+type FuncMap map[string]interface{}
+
+// builtins returns the FuncMap.
+// It is not a global variable so the linker can dead code eliminate
+// more when this isn't called. See golang.org/issue/36021.
+// TODO: revert this back to a global map once golang.org/issue/2559 is fixed.
+func builtins() FuncMap {
+	return FuncMap{
+		"and":      and,
+		"call":     call,
+		"html":     HTMLEscaper,
+		"index":    index,
+		"slice":    slice,
+		"js":       JSEscaper,
+		"len":      length,
+		"not":      not,
+		"or":       or,
+		"print":    fmt.Sprint,
+		"printf":   fmt.Sprintf,
+		"println":  fmt.Sprintln,
+		"urlquery": URLQueryEscaper,
+
+		// Comparisons
+		"eq": eq, // ==
+		"ge": ge, // >=
+		"gt": gt, // >
+		"le": le, // <=
+		"lt": lt, // <
+		"ne": ne, // !=
+	}
+}
+
+var builtinFuncsOnce struct {
+	sync.Once
+	v map[string]reflect.Value
+}
+
+// builtinFuncsOnce lazily computes & caches the builtinFuncs map.
+// TODO: revert this back to a global map once golang.org/issue/2559 is fixed.
+func builtinFuncs() map[string]reflect.Value {
+	builtinFuncsOnce.Do(func() {
+		builtinFuncsOnce.v = createValueFuncs(builtins())
+	})
+	return builtinFuncsOnce.v
+}
+
+// createValueFuncs turns a FuncMap into a map[string]reflect.Value
+func createValueFuncs(funcMap FuncMap) map[string]reflect.Value {
+	m := make(map[string]reflect.Value)
+	addValueFuncs(m, funcMap)
+	return m
+}
+
+// addValueFuncs adds to values the functions in funcs, converting them to reflect.Values.
+func addValueFuncs(out map[string]reflect.Value, in FuncMap) {
+	for name, fn := range in {
+		if !goodName(name) {
+			panic(fmt.Errorf("function name %q is not a valid identifier", name))
+		}
+		v := reflect.ValueOf(fn)
+		if v.Kind() != reflect.Func {
+			panic("value for " + name + " not a function")
+		}
+		if !goodFunc(v.Type()) {
+			panic(fmt.Errorf("can't install method/function %q with %d results", name, v.Type().NumOut()))
+		}
+		out[name] = v
+	}
+}
+
+// addFuncs adds to values the functions in funcs. It does no checking of the input -
+// call addValueFuncs first.
+func addFuncs(out, in FuncMap) {
+	for name, fn := range in {
+		out[name] = fn
+	}
+}
+
+// goodFunc reports whether the function or method has the right result signature.
+func goodFunc(typ reflect.Type) bool {
+	// We allow functions with 1 result or 2 results where the second is an error.
+	switch {
+	case typ.NumOut() == 1:
+		return true
+	case typ.NumOut() == 2 && typ.Out(1) == errorType:
+		return true
+	}
+	return false
+}
+
+// goodName reports whether the function name is a valid identifier.
+func goodName(name string) bool {
+	if name == "" {
+		return false
+	}
+	for i, r := range name {
+		switch {
+		case r == '_':
+		case i == 0 && !unicode.IsLetter(r):
+			return false
+		case !unicode.IsLetter(r) && !unicode.IsDigit(r):
+			return false
+		}
+	}
+	return true
+}
+
+// findFunction looks for a function in the template, and global map.
+func findFunction(name string, tmpl *Template) (reflect.Value, bool) {
+	if tmpl != nil && tmpl.common != nil {
+		tmpl.muFuncs.RLock()
+		defer tmpl.muFuncs.RUnlock()
+		if fn := tmpl.execFuncs[name]; fn.IsValid() {
+			return fn, true
+		}
+	}
+	if fn := builtinFuncs()[name]; fn.IsValid() {
+		return fn, true
+	}
+	return reflect.Value{}, false
+}
+
+// prepareArg checks if value can be used as an argument of type argType, and
+// converts an invalid value to appropriate zero if possible.
+func prepareArg(value reflect.Value, argType reflect.Type) (reflect.Value, error) {
+	if !value.IsValid() {
+		if !canBeNil(argType) {
+			return reflect.Value{}, fmt.Errorf("value is nil; should be of type %s", argType)
+		}
+		value = reflect.Zero(argType)
+	}
+	if value.Type().AssignableTo(argType) {
+		return value, nil
+	}
+	if intLike(value.Kind()) && intLike(argType.Kind()) && value.Type().ConvertibleTo(argType) {
+		value = value.Convert(argType)
+		return value, nil
+	}
+	return reflect.Value{}, fmt.Errorf("value has type %s; should be %s", value.Type(), argType)
+}
+
+func intLike(typ reflect.Kind) bool {
+	switch typ {
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		return true
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		return true
+	}
+	return false
+}
+
+// indexArg checks if a reflect.Value can be used as an index, and converts it to int if possible.
+func indexArg(index reflect.Value, cap int) (int, error) {
+	var x int64
+	switch index.Kind() {
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		x = index.Int()
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		x = int64(index.Uint())
+	case reflect.Invalid:
+		return 0, fmt.Errorf("cannot index slice/array with nil")
+	default:
+		return 0, fmt.Errorf("cannot index slice/array with type %s", index.Type())
+	}
+	if x < 0 || int(x) < 0 || int(x) > cap {
+		return 0, fmt.Errorf("index out of range: %d", x)
+	}
+	return int(x), nil
+}
+
+// Indexing.
+
+// index returns the result of indexing its first argument by the following
+// arguments. Thus "index x 1 2 3" is, in Go syntax, x[1][2][3]. Each
+// indexed item must be a map, slice, or array.
+func index(item reflect.Value, indexes ...reflect.Value) (reflect.Value, error) {
+	item = indirectInterface(item)
+	if !item.IsValid() {
+		return reflect.Value{}, fmt.Errorf("index of untyped nil")
+	}
+	for _, index := range indexes {
+		index = indirectInterface(index)
+		var isNil bool
+		if item, isNil = indirect(item); isNil {
+			return reflect.Value{}, fmt.Errorf("index of nil pointer")
+		}
+		switch item.Kind() {
+		case reflect.Array, reflect.Slice, reflect.String:
+			x, err := indexArg(index, item.Len())
+			if err != nil {
+				return reflect.Value{}, err
+			}
+			item = item.Index(x)
+		case reflect.Map:
+			index, err := prepareArg(index, item.Type().Key())
+			if err != nil {
+				return reflect.Value{}, err
+			}
+			if x := item.MapIndex(index); x.IsValid() {
+				item = x
+			} else {
+				item = reflect.Zero(item.Type().Elem())
+			}
+		case reflect.Invalid:
+			// the loop holds invariant: item.IsValid()
+			panic("unreachable")
+		default:
+			return reflect.Value{}, fmt.Errorf("can't index item of type %s", item.Type())
+		}
+	}
+	return item, nil
+}
+
+// Slicing.
+
+// slice returns the result of slicing its first argument by the remaining
+// arguments. Thus "slice x 1 2" is, in Go syntax, x[1:2], while "slice x"
+// is x[:], "slice x 1" is x[1:], and "slice x 1 2 3" is x[1:2:3]. The first
+// argument must be a string, slice, or array.
+func slice(item reflect.Value, indexes ...reflect.Value) (reflect.Value, error) {
+	item = indirectInterface(item)
+	if !item.IsValid() {
+		return reflect.Value{}, fmt.Errorf("slice of untyped nil")
+	}
+	if len(indexes) > 3 {
+		return reflect.Value{}, fmt.Errorf("too many slice indexes: %d", len(indexes))
+	}
+	var cap int
+	switch item.Kind() {
+	case reflect.String:
+		if len(indexes) == 3 {
+			return reflect.Value{}, fmt.Errorf("cannot 3-index slice a string")
+		}
+		cap = item.Len()
+	case reflect.Array, reflect.Slice:
+		cap = item.Cap()
+	default:
+		return reflect.Value{}, fmt.Errorf("can't slice item of type %s", item.Type())
+	}
+	// set default values for cases item[:], item[i:].
+	idx := [3]int{0, item.Len()}
+	for i, index := range indexes {
+		x, err := indexArg(index, cap)
+		if err != nil {
+			return reflect.Value{}, err
+		}
+		idx[i] = x
+	}
+	// given item[i:j], make sure i <= j.
+	if idx[0] > idx[1] {
+		return reflect.Value{}, fmt.Errorf("invalid slice index: %d > %d", idx[0], idx[1])
+	}
+	if len(indexes) < 3 {
+		return item.Slice(idx[0], idx[1]), nil
+	}
+	// given item[i:j:k], make sure i <= j <= k.
+	if idx[1] > idx[2] {
+		return reflect.Value{}, fmt.Errorf("invalid slice index: %d > %d", idx[1], idx[2])
+	}
+	return item.Slice3(idx[0], idx[1], idx[2]), nil
+}
+
+// Length
+
+// length returns the length of the item, with an error if it has no defined length.
+func length(item reflect.Value) (int, error) {
+	item, isNil := indirect(item)
+	if isNil {
+		return 0, fmt.Errorf("len of nil pointer")
+	}
+	switch item.Kind() {
+	case reflect.Array, reflect.Chan, reflect.Map, reflect.Slice, reflect.String:
+		return item.Len(), nil
+	}
+	return 0, fmt.Errorf("len of type %s", item.Type())
+}
+
+// Function invocation
+
+// call returns the result of evaluating the first argument as a function.
+// The function must return 1 result, or 2 results, the second of which is an error.
+func call(fn reflect.Value, args ...reflect.Value) (reflect.Value, error) {
+	fn = indirectInterface(fn)
+	if !fn.IsValid() {
+		return reflect.Value{}, fmt.Errorf("call of nil")
+	}
+	typ := fn.Type()
+	if typ.Kind() != reflect.Func {
+		return reflect.Value{}, fmt.Errorf("non-function of type %s", typ)
+	}
+	if !goodFunc(typ) {
+		return reflect.Value{}, fmt.Errorf("function called with %d args; should be 1 or 2", typ.NumOut())
+	}
+	numIn := typ.NumIn()
+	var dddType reflect.Type
+	if typ.IsVariadic() {
+		if len(args) < numIn-1 {
+			return reflect.Value{}, fmt.Errorf("wrong number of args: got %d want at least %d", len(args), numIn-1)
+		}
+		dddType = typ.In(numIn - 1).Elem()
+	} else {
+		if len(args) != numIn {
+			return reflect.Value{}, fmt.Errorf("wrong number of args: got %d want %d", len(args), numIn)
+		}
+	}
+	argv := make([]reflect.Value, len(args))
+	for i, arg := range args {
+		arg = indirectInterface(arg)
+		// Compute the expected type. Clumsy because of variadics.
+		argType := dddType
+		if !typ.IsVariadic() || i < numIn-1 {
+			argType = typ.In(i)
+		}
+
+		var err error
+		if argv[i], err = prepareArg(arg, argType); err != nil {
+			return reflect.Value{}, fmt.Errorf("arg %d: %w", i, err)
+		}
+	}
+	return safeCall(fn, argv)
+}
+
+// safeCall runs fun.Call(args), and returns the resulting value and error, if
+// any. If the call panics, the panic value is returned as an error.
+func safeCall(fun reflect.Value, args []reflect.Value) (val reflect.Value, err error) {
+	defer func() {
+		if r := recover(); r != nil {
+			if e, ok := r.(error); ok {
+				err = e
+			} else {
+				err = fmt.Errorf("%v", r)
+			}
+		}
+	}()
+	ret := fun.Call(args)
+	if len(ret) == 2 && !ret[1].IsNil() {
+		return ret[0], ret[1].Interface().(error)
+	}
+	return ret[0], nil
+}
+
+// Boolean logic.
+
+func truth(arg reflect.Value) bool {
+	t, _ := isTrue(indirectInterface(arg))
+	return t
+}
+
+// and computes the Boolean AND of its arguments, returning
+// the first false argument it encounters, or the last argument.
+func and(arg0 reflect.Value, args ...reflect.Value) reflect.Value {
+	if !truth(arg0) {
+		return arg0
+	}
+	for i := range args {
+		arg0 = args[i]
+		if !truth(arg0) {
+			break
+		}
+	}
+	return arg0
+}
+
+// or computes the Boolean OR of its arguments, returning
+// the first true argument it encounters, or the last argument.
+func or(arg0 reflect.Value, args ...reflect.Value) reflect.Value {
+	if truth(arg0) {
+		return arg0
+	}
+	for i := range args {
+		arg0 = args[i]
+		if truth(arg0) {
+			break
+		}
+	}
+	return arg0
+}
+
+// not returns the Boolean negation of its argument.
+func not(arg reflect.Value) bool {
+	return !truth(arg)
+}
+
+// Comparison.
+
+// TODO: Perhaps allow comparison between signed and unsigned integers.
+
+var (
+	errBadComparisonType = errors.New("invalid type for comparison")
+	errBadComparison     = errors.New("incompatible types for comparison")
+	errNoComparison      = errors.New("missing argument for comparison")
+)
+
+type kind int
+
+const (
+	invalidKind kind = iota
+	boolKind
+	complexKind
+	intKind
+	floatKind
+	stringKind
+	uintKind
+)
+
+func basicKind(v reflect.Value) (kind, error) {
+	switch v.Kind() {
+	case reflect.Bool:
+		return boolKind, nil
+	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+		return intKind, nil
+	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+		return uintKind, nil
+	case reflect.Float32, reflect.Float64:
+		return floatKind, nil
+	case reflect.Complex64, reflect.Complex128:
+		return complexKind, nil
+	case reflect.String:
+		return stringKind, nil
+	}
+	return invalidKind, errBadComparisonType
+}
+
+// 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
+	}
+	k1, _ := basicKind(arg1)
+	for _, arg := range arg2 {
+		arg = indirectInterface(arg)
+		k2, _ := basicKind(arg)
+		truth := false
+		if k1 != k2 {
+			// Special case: Can compare integer values regardless of type's sign.
+			switch {
+			case k1 == intKind && k2 == uintKind:
+				truth = arg1.Int() >= 0 && uint64(arg1.Int()) == arg.Uint()
+			case k1 == uintKind && k2 == intKind:
+				truth = arg.Int() >= 0 && arg1.Uint() == uint64(arg.Int())
+			default:
+				if arg1 != zero && arg != zero {
+					return false, errBadComparison
+				}
+			}
+		} else {
+			switch k1 {
+			case boolKind:
+				truth = arg1.Bool() == arg.Bool()
+			case complexKind:
+				truth = arg1.Complex() == arg.Complex()
+			case floatKind:
+				truth = arg1.Float() == arg.Float()
+			case intKind:
+				truth = arg1.Int() == arg.Int()
+			case stringKind:
+				truth = arg1.String() == arg.String()
+			case uintKind:
+				truth = arg1.Uint() == arg.Uint()
+			default:
+				if arg == zero {
+					truth = arg1 == arg
+				} else {
+					if t2 := arg.Type(); !t2.Comparable() {
+						return false, fmt.Errorf("uncomparable type %s: %v", t2, arg)
+					}
+					truth = arg1.Interface() == arg.Interface()
+				}
+			}
+		}
+		if truth {
+			return true, nil
+		}
+	}
+	return false, nil
+}
+
+// ne evaluates the comparison a != b.
+func ne(arg1, arg2 reflect.Value) (bool, error) {
+	// != is the inverse of ==.
+	equal, err := eq(arg1, arg2)
+	return !equal, err
+}
+
+// lt evaluates the comparison a < b.
+func lt(arg1, arg2 reflect.Value) (bool, error) {
+	arg1 = indirectInterface(arg1)
+	k1, err := basicKind(arg1)
+	if err != nil {
+		return false, err
+	}
+	arg2 = indirectInterface(arg2)
+	k2, err := basicKind(arg2)
+	if err != nil {
+		return false, err
+	}
+	truth := false
+	if k1 != k2 {
+		// Special case: Can compare integer values regardless of type's sign.
+		switch {
+		case k1 == intKind && k2 == uintKind:
+			truth = arg1.Int() < 0 || uint64(arg1.Int()) < arg2.Uint()
+		case k1 == uintKind && k2 == intKind:
+			truth = arg2.Int() >= 0 && arg1.Uint() < uint64(arg2.Int())
+		default:
+			return false, errBadComparison
+		}
+	} else {
+		switch k1 {
+		case boolKind, complexKind:
+			return false, errBadComparisonType
+		case floatKind:
+			truth = arg1.Float() < arg2.Float()
+		case intKind:
+			truth = arg1.Int() < arg2.Int()
+		case stringKind:
+			truth = arg1.String() < arg2.String()
+		case uintKind:
+			truth = arg1.Uint() < arg2.Uint()
+		default:
+			panic("invalid kind")
+		}
+	}
+	return truth, nil
+}
+
+// le evaluates the comparison <= b.
+func le(arg1, arg2 reflect.Value) (bool, error) {
+	// <= is < or ==.
+	lessThan, err := lt(arg1, arg2)
+	if lessThan || err != nil {
+		return lessThan, err
+	}
+	return eq(arg1, arg2)
+}
+
+// gt evaluates the comparison a > b.
+func gt(arg1, arg2 reflect.Value) (bool, error) {
+	// > is the inverse of <=.
+	lessOrEqual, err := le(arg1, arg2)
+	if err != nil {
+		return false, err
+	}
+	return !lessOrEqual, nil
+}
+
+// ge evaluates the comparison a >= b.
+func ge(arg1, arg2 reflect.Value) (bool, error) {
+	// >= is the inverse of <.
+	lessThan, err := lt(arg1, arg2)
+	if err != nil {
+		return false, err
+	}
+	return !lessThan, nil
+}
+
+// HTML escaping.
+
+var (
+	htmlQuot = []byte("&#34;") // shorter than "&quot;"
+	htmlApos = []byte("&#39;") // shorter than "&apos;" and apos was not in HTML until HTML5
+	htmlAmp  = []byte("&amp;")
+	htmlLt   = []byte("&lt;")
+	htmlGt   = []byte("&gt;")
+	htmlNull = []byte("\uFFFD")
+)
+
+// HTMLEscape writes to w the escaped HTML equivalent of the plain text data b.
+func HTMLEscape(w io.Writer, b []byte) {
+	last := 0
+	for i, c := range b {
+		var html []byte
+		switch c {
+		case '\000':
+			html = htmlNull
+		case '"':
+			html = htmlQuot
+		case '\'':
+			html = htmlApos
+		case '&':
+			html = htmlAmp
+		case '<':
+			html = htmlLt
+		case '>':
+			html = htmlGt
+		default:
+			continue
+		}
+		w.Write(b[last:i])
+		w.Write(html)
+		last = i + 1
+	}
+	w.Write(b[last:])
+}
+
+// HTMLEscapeString returns the escaped HTML equivalent of the plain text data s.
+func HTMLEscapeString(s string) string {
+	// Avoid allocation if we can.
+	if !strings.ContainsAny(s, "'\"&<>\000") {
+		return s
+	}
+	var b bytes.Buffer
+	HTMLEscape(&b, []byte(s))
+	return b.String()
+}
+
+// HTMLEscaper returns the escaped HTML equivalent of the textual
+// representation of its arguments.
+func HTMLEscaper(args ...interface{}) string {
+	return HTMLEscapeString(evalArgs(args))
+}
+
+// JavaScript escaping.
+
+var (
+	jsLowUni = []byte(`\u00`)
+	hex      = []byte("0123456789ABCDEF")
+
+	jsBackslash = []byte(`\\`)
+	jsApos      = []byte(`\'`)
+	jsQuot      = []byte(`\"`)
+	jsLt        = []byte(`\u003C`)
+	jsGt        = []byte(`\u003E`)
+	jsAmp       = []byte(`\u0026`)
+	jsEq        = []byte(`\u003D`)
+)
+
+// JSEscape writes to w the escaped JavaScript equivalent of the plain text data b.
+func JSEscape(w io.Writer, b []byte) {
+	last := 0
+	for i := 0; i < len(b); i++ {
+		c := b[i]
+
+		if !jsIsSpecial(rune(c)) {
+			// fast path: nothing to do
+			continue
+		}
+		w.Write(b[last:i])
+
+		if c < utf8.RuneSelf {
+			// Quotes, slashes and angle brackets get quoted.
+			// Control characters get written as \u00XX.
+			switch c {
+			case '\\':
+				w.Write(jsBackslash)
+			case '\'':
+				w.Write(jsApos)
+			case '"':
+				w.Write(jsQuot)
+			case '<':
+				w.Write(jsLt)
+			case '>':
+				w.Write(jsGt)
+			case '&':
+				w.Write(jsAmp)
+			case '=':
+				w.Write(jsEq)
+			default:
+				w.Write(jsLowUni)
+				t, b := c>>4, c&0x0f
+				w.Write(hex[t : t+1])
+				w.Write(hex[b : b+1])
+			}
+		} else {
+			// Unicode rune.
+			r, size := utf8.DecodeRune(b[i:])
+			if unicode.IsPrint(r) {
+				w.Write(b[i : i+size])
+			} else {
+				fmt.Fprintf(w, "\\u%04X", r)
+			}
+			i += size - 1
+		}
+		last = i + 1
+	}
+	w.Write(b[last:])
+}
+
+// JSEscapeString returns the escaped JavaScript equivalent of the plain text data s.
+func JSEscapeString(s string) string {
+	// Avoid allocation if we can.
+	if strings.IndexFunc(s, jsIsSpecial) < 0 {
+		return s
+	}
+	var b bytes.Buffer
+	JSEscape(&b, []byte(s))
+	return b.String()
+}
+
+func jsIsSpecial(r rune) bool {
+	switch r {
+	case '\\', '\'', '"', '<', '>', '&', '=':
+		return true
+	}
+	return r < ' ' || utf8.RuneSelf <= r
+}
+
+// JSEscaper returns the escaped JavaScript equivalent of the textual
+// representation of its arguments.
+func JSEscaper(args ...interface{}) string {
+	return JSEscapeString(evalArgs(args))
+}
+
+// URLQueryEscaper returns the escaped value of the textual representation of
+// its arguments in a form suitable for embedding in a URL query.
+func URLQueryEscaper(args ...interface{}) string {
+	return url.QueryEscape(evalArgs(args))
+}
+
+// evalArgs formats the list of arguments into a string. It is therefore equivalent to
+//	fmt.Sprint(args...)
+// except that each argument is indirected (if a pointer), as required,
+// using the same rules as the default string evaluation during template
+// execution.
+func evalArgs(args []interface{}) string {
+	ok := false
+	var s string
+	// Fast path for simple common case.
+	if len(args) == 1 {
+		s, ok = args[0].(string)
+	}
+	if !ok {
+		for i, arg := range args {
+			a, ok := printableValue(reflect.ValueOf(arg))
+			if ok {
+				args[i] = a
+			} // else let fmt do its thing
+		}
+		s = fmt.Sprint(args...)
+	}
+	return s
+}
diff --git a/go.dev/cmd/internal/text/template/helper.go b/go.dev/cmd/internal/text/template/helper.go
new file mode 100644
index 0000000..e2ce480
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/helper.go
@@ -0,0 +1,135 @@
+// Copyright 2011 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.
+
+// Helper functions to make constructing templates easier.
+
+package template
+
+import (
+	"fmt"
+	"io/ioutil"
+	"path/filepath"
+)
+
+// Functions and methods to parse templates.
+
+// Must is a helper that wraps a call to a function returning (*Template, error)
+// and panics if the error is non-nil. It is intended for use in variable
+// initializations such as
+//	var t = template.Must(template.New("name").Parse("text"))
+func Must(t *Template, err error) *Template {
+	if err != nil {
+		panic(err)
+	}
+	return t
+}
+
+// ParseFiles creates a new Template and parses the template definitions from
+// the named files. The returned template's name will have the base name and
+// parsed contents of the first file. There must be at least one file.
+// If an error occurs, parsing stops and the returned *Template is nil.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+// For instance, ParseFiles("a/foo", "b/foo") stores "b/foo" as the template
+// named "foo", while "a/foo" is unavailable.
+func ParseFiles(filenames ...string) (*Template, error) {
+	return parseFiles(nil, readFileOS, filenames...)
+}
+
+// ParseFiles parses the named files and associates the resulting templates with
+// t. If an error occurs, parsing stops and the returned template is nil;
+// otherwise it is t. There must be at least one file.
+// Since the templates created by ParseFiles are named by the base
+// names of the argument files, t should usually have the name of one
+// of the (base) names of the files. If it does not, depending on t's
+// contents before calling ParseFiles, t.Execute may fail. In that
+// case use t.ExecuteTemplate to execute a valid template.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+func (t *Template) ParseFiles(filenames ...string) (*Template, error) {
+	t.init()
+	return parseFiles(t, readFileOS, filenames...)
+}
+
+// parseFiles is the helper for the method and function. If the argument
+// template is nil, it is created from the first file.
+func parseFiles(t *Template, readFile func(string) (string, []byte, error), filenames ...string) (*Template, error) {
+	if len(filenames) == 0 {
+		// Not really a problem, but be consistent.
+		return nil, fmt.Errorf("template: no files named in call to ParseFiles")
+	}
+	for _, filename := range filenames {
+		name, b, err := readFile(filename)
+		if err != nil {
+			return nil, err
+		}
+		s := string(b)
+		// First template becomes return value if not already defined,
+		// and we use that one for subsequent New calls to associate
+		// all the templates together. Also, if this file has the same name
+		// as t, this file becomes the contents of t, so
+		//  t, err := New(name).Funcs(xxx).ParseFiles(name)
+		// works. Otherwise we create a new template associated with t.
+		var tmpl *Template
+		if t == nil {
+			t = New(name)
+		}
+		if name == t.Name() {
+			tmpl = t
+		} else {
+			tmpl = t.New(name)
+		}
+		_, err = tmpl.Parse(s)
+		if err != nil {
+			return nil, err
+		}
+	}
+	return t, nil
+}
+
+// ParseGlob creates a new Template and parses the template definitions from
+// the files identified by the pattern. The files are matched according to the
+// semantics of filepath.Match, and the pattern must match at least one file.
+// The returned template will have the (base) name and (parsed) contents of the
+// first file matched by the pattern. ParseGlob is equivalent to calling
+// ParseFiles with the list of files matched by the pattern.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+func ParseGlob(pattern string) (*Template, error) {
+	return parseGlob(nil, pattern)
+}
+
+// ParseGlob parses the template definitions in the files identified by the
+// pattern and associates the resulting templates with t. The files are matched
+// according to the semantics of filepath.Match, and the pattern must match at
+// least one file. ParseGlob is equivalent to calling t.ParseFiles with the
+// list of files matched by the pattern.
+//
+// When parsing multiple files with the same name in different directories,
+// the last one mentioned will be the one that results.
+func (t *Template) ParseGlob(pattern string) (*Template, error) {
+	t.init()
+	return parseGlob(t, pattern)
+}
+
+// parseGlob is the implementation of the function and method ParseGlob.
+func parseGlob(t *Template, pattern string) (*Template, error) {
+	filenames, err := filepath.Glob(pattern)
+	if err != nil {
+		return nil, err
+	}
+	if len(filenames) == 0 {
+		return nil, fmt.Errorf("template: pattern matches no files: %#q", pattern)
+	}
+	return parseFiles(t, readFileOS, filenames...)
+}
+
+func readFileOS(file string) (name string, b []byte, err error) {
+	name = filepath.Base(file)
+	b, err = ioutil.ReadFile(file)
+	return
+}
diff --git a/go.dev/cmd/internal/text/template/multi_test.go b/go.dev/cmd/internal/text/template/multi_test.go
new file mode 100644
index 0000000..b917e72
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/multi_test.go
@@ -0,0 +1,425 @@
+// Copyright 2011 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 template
+
+// Tests for multiple-template parsing and execution.
+
+import (
+	"bytes"
+	"fmt"
+	"testing"
+
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+const (
+	noError  = true
+	hasError = false
+)
+
+type multiParseTest struct {
+	name    string
+	input   string
+	ok      bool
+	names   []string
+	results []string
+}
+
+var multiParseTests = []multiParseTest{
+	{"empty", "", noError,
+		nil,
+		nil},
+	{"one", `{{define "foo"}} FOO {{end}}`, noError,
+		[]string{"foo"},
+		[]string{" FOO "}},
+	{"two", `{{define "foo"}} FOO {{end}}{{define "bar"}} BAR {{end}}`, noError,
+		[]string{"foo", "bar"},
+		[]string{" FOO ", " BAR "}},
+	// errors
+	{"missing end", `{{define "foo"}} FOO `, hasError,
+		nil,
+		nil},
+	{"malformed name", `{{define "foo}} FOO `, hasError,
+		nil,
+		nil},
+}
+
+func TestMultiParse(t *testing.T) {
+	for _, test := range multiParseTests {
+		template, err := New("root").Parse(test.input)
+		switch {
+		case err == nil && !test.ok:
+			t.Errorf("%q: expected error; got none", test.name)
+			continue
+		case err != nil && test.ok:
+			t.Errorf("%q: unexpected error: %v", test.name, err)
+			continue
+		case err != nil && !test.ok:
+			// expected error, got one
+			if *debug {
+				fmt.Printf("%s: %s\n\t%s\n", test.name, test.input, err)
+			}
+			continue
+		}
+		if template == nil {
+			continue
+		}
+		if len(template.tmpl) != len(test.names)+1 { // +1 for root
+			t.Errorf("%s: wrong number of templates; wanted %d got %d", test.name, len(test.names), len(template.tmpl))
+			continue
+		}
+		for i, name := range test.names {
+			tmpl, ok := template.tmpl[name]
+			if !ok {
+				t.Errorf("%s: can't find template %q", test.name, name)
+				continue
+			}
+			result := tmpl.Root.String()
+			if result != test.results[i] {
+				t.Errorf("%s=(%q): got\n\t%v\nexpected\n\t%v", test.name, test.input, result, test.results[i])
+			}
+		}
+	}
+}
+
+var multiExecTests = []execTest{
+	{"empty", "", "", nil, true},
+	{"text", "some text", "some text", nil, true},
+	{"invoke x", `{{template "x" .SI}}`, "TEXT", tVal, true},
+	{"invoke x no args", `{{template "x"}}`, "TEXT", tVal, true},
+	{"invoke dot int", `{{template "dot" .I}}`, "17", tVal, true},
+	{"invoke dot []int", `{{template "dot" .SI}}`, "[3 4 5]", tVal, true},
+	{"invoke dotV", `{{template "dotV" .U}}`, "v", tVal, true},
+	{"invoke nested int", `{{template "nested" .I}}`, "17", tVal, true},
+	{"variable declared by template", `{{template "nested" $x:=.SI}},{{index $x 1}}`, "[3 4 5],4", tVal, true},
+
+	// User-defined function: test argument evaluator.
+	{"testFunc literal", `{{oneArg "joe"}}`, "oneArg=joe", tVal, true},
+	{"testFunc .", `{{oneArg .}}`, "oneArg=joe", "joe", true},
+}
+
+// These strings are also in testdata/*.
+const multiText1 = `
+	{{define "x"}}TEXT{{end}}
+	{{define "dotV"}}{{.V}}{{end}}
+`
+
+const multiText2 = `
+	{{define "dot"}}{{.}}{{end}}
+	{{define "nested"}}{{template "dot" .}}{{end}}
+`
+
+func TestMultiExecute(t *testing.T) {
+	// Declare a couple of templates first.
+	template, err := New("root").Parse(multiText1)
+	if err != nil {
+		t.Fatalf("parse error for 1: %s", err)
+	}
+	_, err = template.Parse(multiText2)
+	if err != nil {
+		t.Fatalf("parse error for 2: %s", err)
+	}
+	testExecute(multiExecTests, template, t)
+}
+
+func TestParseFiles(t *testing.T) {
+	_, err := ParseFiles("DOES NOT EXIST")
+	if err == nil {
+		t.Error("expected error for non-existent file; got none")
+	}
+	template := New("root")
+	_, err = template.ParseFiles("testdata/file1.tmpl", "testdata/file2.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(multiExecTests, template, t)
+}
+
+func TestParseGlob(t *testing.T) {
+	_, err := ParseGlob("DOES NOT EXIST")
+	if err == nil {
+		t.Error("expected error for non-existent file; got none")
+	}
+	_, err = New("error").ParseGlob("[x")
+	if err == nil {
+		t.Error("expected error for bad pattern; got none")
+	}
+	template := New("root")
+	_, err = template.ParseGlob("testdata/file*.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(multiExecTests, template, t)
+}
+
+// In these tests, actual content (not just template definitions) comes from the parsed files.
+
+var templateFileExecTests = []execTest{
+	{"test", `{{template "tmpl1.tmpl"}}{{template "tmpl2.tmpl"}}`, "template1\n\ny\ntemplate2\n\nx\n", 0, true},
+}
+
+func TestParseFilesWithData(t *testing.T) {
+	template, err := New("root").ParseFiles("testdata/tmpl1.tmpl", "testdata/tmpl2.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(templateFileExecTests, template, t)
+}
+
+func TestParseGlobWithData(t *testing.T) {
+	template, err := New("root").ParseGlob("testdata/tmpl*.tmpl")
+	if err != nil {
+		t.Fatalf("error parsing files: %v", err)
+	}
+	testExecute(templateFileExecTests, template, t)
+}
+
+const (
+	cloneText1 = `{{define "a"}}{{template "b"}}{{template "c"}}{{end}}`
+	cloneText2 = `{{define "b"}}b{{end}}`
+	cloneText3 = `{{define "c"}}root{{end}}`
+	cloneText4 = `{{define "c"}}clone{{end}}`
+)
+
+func TestClone(t *testing.T) {
+	// Create some templates and clone the root.
+	root, err := New("root").Parse(cloneText1)
+	if err != nil {
+		t.Fatal(err)
+	}
+	_, err = root.Parse(cloneText2)
+	if err != nil {
+		t.Fatal(err)
+	}
+	clone := Must(root.Clone())
+	// Add variants to both.
+	_, err = root.Parse(cloneText3)
+	if err != nil {
+		t.Fatal(err)
+	}
+	_, err = clone.Parse(cloneText4)
+	if err != nil {
+		t.Fatal(err)
+	}
+	// Verify that the clone is self-consistent.
+	for k, v := range clone.tmpl {
+		if k == clone.name && v.tmpl[k] != clone {
+			t.Error("clone does not contain root")
+		}
+		if v != v.tmpl[v.name] {
+			t.Errorf("clone does not contain self for %q", k)
+		}
+	}
+	// Execute root.
+	var b bytes.Buffer
+	err = root.ExecuteTemplate(&b, "a", 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if b.String() != "broot" {
+		t.Errorf("expected %q got %q", "broot", b.String())
+	}
+	// Execute copy.
+	b.Reset()
+	err = clone.ExecuteTemplate(&b, "a", 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if b.String() != "bclone" {
+		t.Errorf("expected %q got %q", "bclone", b.String())
+	}
+}
+
+func TestAddParseTree(t *testing.T) {
+	// Create some templates.
+	root, err := New("root").Parse(cloneText1)
+	if err != nil {
+		t.Fatal(err)
+	}
+	_, err = root.Parse(cloneText2)
+	if err != nil {
+		t.Fatal(err)
+	}
+	// Add a new parse tree.
+	tree, err := parse.Parse("cloneText3", cloneText3, "", "", nil, builtins())
+	if err != nil {
+		t.Fatal(err)
+	}
+	added, err := root.AddParseTree("c", tree["c"])
+	if err != nil {
+		t.Fatal(err)
+	}
+	// Execute.
+	var b bytes.Buffer
+	err = added.ExecuteTemplate(&b, "a", 0)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if b.String() != "broot" {
+		t.Errorf("expected %q got %q", "broot", b.String())
+	}
+}
+
+// Issue 7032
+func TestAddParseTreeToUnparsedTemplate(t *testing.T) {
+	master := "{{define \"master\"}}{{end}}"
+	tmpl := New("master")
+	tree, err := parse.Parse("master", master, "", "", nil)
+	if err != nil {
+		t.Fatalf("unexpected parse err: %v", err)
+	}
+	masterTree := tree["master"]
+	tmpl.AddParseTree("master", masterTree) // used to panic
+}
+
+func TestRedefinition(t *testing.T) {
+	var tmpl *Template
+	var err error
+	if tmpl, err = New("tmpl1").Parse(`{{define "test"}}foo{{end}}`); err != nil {
+		t.Fatalf("parse 1: %v", err)
+	}
+	if _, err = tmpl.Parse(`{{define "test"}}bar{{end}}`); err != nil {
+		t.Fatalf("got error %v, expected nil", err)
+	}
+	if _, err = tmpl.New("tmpl2").Parse(`{{define "test"}}bar{{end}}`); err != nil {
+		t.Fatalf("got error %v, expected nil", err)
+	}
+}
+
+// Issue 10879
+func TestEmptyTemplateCloneCrash(t *testing.T) {
+	t1 := New("base")
+	t1.Clone() // used to panic
+}
+
+// Issue 10910, 10926
+func TestTemplateLookUp(t *testing.T) {
+	t1 := New("foo")
+	if t1.Lookup("foo") != nil {
+		t.Error("Lookup returned non-nil value for undefined template foo")
+	}
+	t1.New("bar")
+	if t1.Lookup("bar") != nil {
+		t.Error("Lookup returned non-nil value for undefined template bar")
+	}
+	t1.Parse(`{{define "foo"}}test{{end}}`)
+	if t1.Lookup("foo") == nil {
+		t.Error("Lookup returned nil value for defined template")
+	}
+}
+
+func TestNew(t *testing.T) {
+	// template with same name already exists
+	t1, _ := New("test").Parse(`{{define "test"}}foo{{end}}`)
+	t2 := t1.New("test")
+
+	if t1.common != t2.common {
+		t.Errorf("t1 & t2 didn't share common struct; got %v != %v", t1.common, t2.common)
+	}
+	if t1.Tree == nil {
+		t.Error("defined template got nil Tree")
+	}
+	if t2.Tree != nil {
+		t.Error("undefined template got non-nil Tree")
+	}
+
+	containsT1 := false
+	for _, tmpl := range t1.Templates() {
+		if tmpl == t2 {
+			t.Error("Templates included undefined template")
+		}
+		if tmpl == t1 {
+			containsT1 = true
+		}
+	}
+	if !containsT1 {
+		t.Error("Templates didn't include defined template")
+	}
+}
+
+func TestParse(t *testing.T) {
+	// In multiple calls to Parse with the same receiver template, only one call
+	// can contain text other than space, comments, and template definitions
+	t1 := New("test")
+	if _, err := t1.Parse(`{{define "test"}}{{end}}`); err != nil {
+		t.Fatalf("parsing test: %s", err)
+	}
+	if _, err := t1.Parse(`{{define "test"}}{{/* this is a comment */}}{{end}}`); err != nil {
+		t.Fatalf("parsing test: %s", err)
+	}
+	if _, err := t1.Parse(`{{define "test"}}foo{{end}}`); err != nil {
+		t.Fatalf("parsing test: %s", err)
+	}
+}
+
+func TestEmptyTemplate(t *testing.T) {
+	cases := []struct {
+		defn []string
+		in   string
+		want string
+	}{
+		{[]string{"x", "y"}, "", "y"},
+		{[]string{""}, "once", ""},
+		{[]string{"", ""}, "twice", ""},
+		{[]string{"{{.}}", "{{.}}"}, "twice", "twice"},
+		{[]string{"{{/* a comment */}}", "{{/* a comment */}}"}, "comment", ""},
+		{[]string{"{{.}}", ""}, "twice", ""},
+	}
+
+	for i, c := range cases {
+		root := New("root")
+
+		var (
+			m   *Template
+			err error
+		)
+		for _, d := range c.defn {
+			m, err = root.New(c.in).Parse(d)
+			if err != nil {
+				t.Fatal(err)
+			}
+		}
+		buf := &bytes.Buffer{}
+		if err := m.Execute(buf, c.in); err != nil {
+			t.Error(i, err)
+			continue
+		}
+		if buf.String() != c.want {
+			t.Errorf("expected string %q: got %q", c.want, buf.String())
+		}
+	}
+}
+
+// Issue 19249 was a regression in 1.8 caused by the handling of empty
+// templates added in that release, which got different answers depending
+// on the order templates appeared in the internal map.
+func TestIssue19294(t *testing.T) {
+	// The empty block in "xhtml" should be replaced during execution
+	// by the contents of "stylesheet", but if the internal map associating
+	// names with templates is built in the wrong order, the empty block
+	// looks non-empty and this doesn't happen.
+	var inlined = map[string]string{
+		"stylesheet": `{{define "stylesheet"}}stylesheet{{end}}`,
+		"xhtml":      `{{block "stylesheet" .}}{{end}}`,
+	}
+	all := []string{"stylesheet", "xhtml"}
+	for i := 0; i < 100; i++ {
+		res, err := New("title.xhtml").Parse(`{{template "xhtml" .}}`)
+		if err != nil {
+			t.Fatal(err)
+		}
+		for _, name := range all {
+			_, err := res.New(name).Parse(inlined[name])
+			if err != nil {
+				t.Fatal(err)
+			}
+		}
+		var buf bytes.Buffer
+		res.Execute(&buf, 0)
+		if buf.String() != "stylesheet" {
+			t.Fatalf("iteration %d: got %q; expected %q", i, buf.String(), "stylesheet")
+		}
+	}
+}
diff --git a/go.dev/cmd/internal/text/template/option.go b/go.dev/cmd/internal/text/template/option.go
new file mode 100644
index 0000000..addce2d
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/option.go
@@ -0,0 +1,74 @@
+// Copyright 2015 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.
+
+// This file contains the code to handle template options.
+
+package template
+
+import "strings"
+
+// missingKeyAction defines how to respond to indexing a map with a key that is not present.
+type missingKeyAction int
+
+const (
+	mapInvalid   missingKeyAction = iota // Return an invalid reflect.Value.
+	mapZeroValue                         // Return the zero value for the map element.
+	mapError                             // Error out
+)
+
+type option struct {
+	missingKey missingKeyAction
+}
+
+// Option sets options for the template. Options are described by
+// strings, either a simple string or "key=value". There can be at
+// most one equals sign in an option string. If the option string
+// is unrecognized or otherwise invalid, Option panics.
+//
+// Known options:
+//
+// missingkey: Control the behavior during execution if a map is
+// indexed with a key that is not present in the map.
+//	"missingkey=default" or "missingkey=invalid"
+//		The default behavior: Do nothing and continue execution.
+//		If printed, the result of the index operation is the string
+//		"<no value>".
+//	"missingkey=zero"
+//		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 {
+		t.setOption(s)
+	}
+	return t
+}
+
+func (t *Template) setOption(opt string) {
+	if opt == "" {
+		panic("empty option string")
+	}
+	elems := strings.Split(opt, "=")
+	switch len(elems) {
+	case 2:
+		// key=value
+		switch elems[0] {
+		case "missingkey":
+			switch elems[1] {
+			case "invalid", "default":
+				t.option.missingKey = mapInvalid
+				return
+			case "zero":
+				t.option.missingKey = mapZeroValue
+				return
+			case "error":
+				t.option.missingKey = mapError
+				return
+			}
+		}
+	}
+	panic("unrecognized option: " + opt)
+}
diff --git a/go.dev/cmd/internal/text/template/parse/lex.go b/go.dev/cmd/internal/text/template/parse/lex.go
new file mode 100644
index 0000000..95e3377
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/parse/lex.go
@@ -0,0 +1,682 @@
+// Copyright 2011 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 parse
+
+import (
+	"fmt"
+	"strings"
+	"unicode"
+	"unicode/utf8"
+)
+
+// item represents a token or text string returned from the scanner.
+type item struct {
+	typ  itemType // The type of this item.
+	pos  Pos      // The starting position, in bytes, of this item in the input string.
+	val  string   // The value of this item.
+	line int      // The line number at the start of this item.
+}
+
+func (i item) String() string {
+	switch {
+	case i.typ == itemEOF:
+		return "EOF"
+	case i.typ == itemError:
+		return i.val
+	case i.typ > itemKeyword:
+		return fmt.Sprintf("<%s>", i.val)
+	case len(i.val) > 10:
+		return fmt.Sprintf("%.10q...", i.val)
+	}
+	return fmt.Sprintf("%q", i.val)
+}
+
+// itemType identifies the type of lex items.
+type itemType int
+
+const (
+	itemError        itemType = iota // error occurred; value is text of error
+	itemBool                         // boolean constant
+	itemChar                         // printable ASCII character; grab bag for comma etc.
+	itemCharConstant                 // character constant
+	itemComment                      // comment text
+	itemComplex                      // complex constant (1+2i); imaginary is just a number
+	itemAssign                       // equals ('=') introducing an assignment
+	itemDeclare                      // colon-equals (':=') introducing a declaration
+	itemEOF
+	itemField      // alphanumeric identifier starting with '.'
+	itemIdentifier // alphanumeric identifier not starting with '.'
+	itemLeftDelim  // left action delimiter
+	itemLeftParen  // '(' inside action
+	itemNumber     // simple number, including imaginary
+	itemPipe       // pipe symbol
+	itemRawString  // raw quoted string (includes quotes)
+	itemRightDelim // right action delimiter
+	itemRightParen // ')' inside action
+	itemSpace      // run of spaces separating arguments
+	itemString     // quoted string (includes quotes)
+	itemText       // plain text
+	itemVariable   // variable starting with '$', such as '$' or  '$1' or '$hello'
+	// Keywords appear after all the rest.
+	itemKeyword  // used only to delimit the keywords
+	itemBlock    // block keyword
+	itemBreak    // break keyword
+	itemContinue // continue keyword
+	itemDot      // the cursor, spelled '.'
+	itemDefine   // define keyword
+	itemElse     // else keyword
+	itemEnd      // end keyword
+	itemIf       // if keyword
+	itemNil      // the untyped nil constant, easiest to treat as a keyword
+	itemRange    // range keyword
+	itemTemplate // template keyword
+	itemWith     // with keyword
+)
+
+var key = map[string]itemType{
+	".":        itemDot,
+	"block":    itemBlock,
+	"break":    itemBreak,
+	"continue": itemContinue,
+	"define":   itemDefine,
+	"else":     itemElse,
+	"end":      itemEnd,
+	"if":       itemIf,
+	"range":    itemRange,
+	"nil":      itemNil,
+	"template": itemTemplate,
+	"with":     itemWith,
+}
+
+const eof = -1
+
+// Trimming spaces.
+// If the action begins "{{- " rather than "{{", then all space/tab/newlines
+// preceding the action are trimmed; conversely if it ends " -}}" the
+// leading spaces are trimmed. This is done entirely in the lexer; the
+// parser never sees it happen. We require an ASCII space (' ', \t, \r, \n)
+// to be present to avoid ambiguity with things like "{{-3}}". It reads
+// better with the space present anyway. For simplicity, only ASCII
+// does the job.
+const (
+	spaceChars    = " \t\r\n"  // These are the space characters defined by Go itself.
+	trimMarker    = '-'        // Attached to left/right delimiter, trims trailing spaces from preceding/following text.
+	trimMarkerLen = Pos(1 + 1) // marker plus space before or after
+)
+
+// stateFn represents the state of the scanner as a function that returns the next state.
+type stateFn func(*lexer) stateFn
+
+// lexer holds the state of the scanner.
+type lexer struct {
+	name        string    // the name of the input; used only for error reports
+	input       string    // the string being scanned
+	leftDelim   string    // start of action
+	rightDelim  string    // end of action
+	emitComment bool      // emit itemComment tokens.
+	pos         Pos       // current position in the input
+	start       Pos       // start position of this item
+	width       Pos       // width of last rune read from input
+	items       chan item // channel of scanned items
+	parenDepth  int       // nesting depth of ( ) exprs
+	line        int       // 1+number of newlines seen
+	startLine   int       // start line of this item
+	breakOK     bool      // break keyword allowed
+	continueOK  bool      // continue keyword allowed
+}
+
+// next returns the next rune in the input.
+func (l *lexer) next() rune {
+	if int(l.pos) >= len(l.input) {
+		l.width = 0
+		return eof
+	}
+	r, w := utf8.DecodeRuneInString(l.input[l.pos:])
+	l.width = Pos(w)
+	l.pos += l.width
+	if r == '\n' {
+		l.line++
+	}
+	return r
+}
+
+// peek returns but does not consume the next rune in the input.
+func (l *lexer) peek() rune {
+	r := l.next()
+	l.backup()
+	return r
+}
+
+// backup steps back one rune. Can only be called once per call of next.
+func (l *lexer) backup() {
+	l.pos -= l.width
+	// Correct newline count.
+	if l.width == 1 && l.input[l.pos] == '\n' {
+		l.line--
+	}
+}
+
+// emit passes an item back to the client.
+func (l *lexer) emit(t itemType) {
+	l.items <- item{t, l.start, l.input[l.start:l.pos], l.startLine}
+	l.start = l.pos
+	l.startLine = l.line
+}
+
+// ignore skips over the pending input before this point.
+func (l *lexer) ignore() {
+	l.line += strings.Count(l.input[l.start:l.pos], "\n")
+	l.start = l.pos
+	l.startLine = l.line
+}
+
+// accept consumes the next rune if it's from the valid set.
+func (l *lexer) accept(valid string) bool {
+	if strings.ContainsRune(valid, l.next()) {
+		return true
+	}
+	l.backup()
+	return false
+}
+
+// acceptRun consumes a run of runes from the valid set.
+func (l *lexer) acceptRun(valid string) {
+	for strings.ContainsRune(valid, l.next()) {
+	}
+	l.backup()
+}
+
+// errorf returns an error token and terminates the scan by passing
+// back a nil pointer that will be the next state, terminating l.nextItem.
+func (l *lexer) errorf(format string, args ...interface{}) stateFn {
+	l.items <- item{itemError, l.start, fmt.Sprintf(format, args...), l.startLine}
+	return nil
+}
+
+// nextItem returns the next item from the input.
+// Called by the parser, not in the lexing goroutine.
+func (l *lexer) nextItem() item {
+	return <-l.items
+}
+
+// drain drains the output so the lexing goroutine will exit.
+// Called by the parser, not in the lexing goroutine.
+func (l *lexer) drain() {
+	for range l.items {
+	}
+}
+
+// lex creates a new scanner for the input string.
+func lex(name, input, left, right string, emitComment bool) *lexer {
+	if left == "" {
+		left = leftDelim
+	}
+	if right == "" {
+		right = rightDelim
+	}
+	l := &lexer{
+		name:        name,
+		input:       input,
+		leftDelim:   left,
+		rightDelim:  right,
+		emitComment: emitComment,
+		items:       make(chan item),
+		line:        1,
+		startLine:   1,
+	}
+	go l.run()
+	return l
+}
+
+// run runs the state machine for the lexer.
+func (l *lexer) run() {
+	for state := lexText; state != nil; {
+		state = state(l)
+	}
+	close(l.items)
+}
+
+// state functions
+
+const (
+	leftDelim    = "{{"
+	rightDelim   = "}}"
+	leftComment  = "/*"
+	rightComment = "*/"
+)
+
+// lexText scans until an opening action delimiter, "{{".
+func lexText(l *lexer) stateFn {
+	l.width = 0
+	if x := strings.Index(l.input[l.pos:], l.leftDelim); x >= 0 {
+		ldn := Pos(len(l.leftDelim))
+		l.pos += Pos(x)
+		trimLength := Pos(0)
+		if hasLeftTrimMarker(l.input[l.pos+ldn:]) {
+			trimLength = rightTrimLength(l.input[l.start:l.pos])
+		}
+		l.pos -= trimLength
+		if l.pos > l.start {
+			l.line += strings.Count(l.input[l.start:l.pos], "\n")
+			l.emit(itemText)
+		}
+		l.pos += trimLength
+		l.ignore()
+		return lexLeftDelim
+	}
+	l.pos = Pos(len(l.input))
+	// Correctly reached EOF.
+	if l.pos > l.start {
+		l.line += strings.Count(l.input[l.start:l.pos], "\n")
+		l.emit(itemText)
+	}
+	l.emit(itemEOF)
+	return nil
+}
+
+// rightTrimLength returns the length of the spaces at the end of the string.
+func rightTrimLength(s string) Pos {
+	return Pos(len(s) - len(strings.TrimRight(s, spaceChars)))
+}
+
+// atRightDelim reports whether the lexer is at a right delimiter, possibly preceded by a trim marker.
+func (l *lexer) atRightDelim() (delim, trimSpaces bool) {
+	if hasRightTrimMarker(l.input[l.pos:]) && strings.HasPrefix(l.input[l.pos+trimMarkerLen:], l.rightDelim) { // With trim marker.
+		return true, true
+	}
+	if strings.HasPrefix(l.input[l.pos:], l.rightDelim) { // Without trim marker.
+		return true, false
+	}
+	return false, false
+}
+
+// leftTrimLength returns the length of the spaces at the beginning of the string.
+func leftTrimLength(s string) Pos {
+	return Pos(len(s) - len(strings.TrimLeft(s, spaceChars)))
+}
+
+// lexLeftDelim scans the left delimiter, which is known to be present, possibly with a trim marker.
+func lexLeftDelim(l *lexer) stateFn {
+	l.pos += Pos(len(l.leftDelim))
+	trimSpace := hasLeftTrimMarker(l.input[l.pos:])
+	afterMarker := Pos(0)
+	if trimSpace {
+		afterMarker = trimMarkerLen
+	}
+	if strings.HasPrefix(l.input[l.pos+afterMarker:], leftComment) {
+		l.pos += afterMarker
+		l.ignore()
+		return lexComment
+	}
+	l.emit(itemLeftDelim)
+	l.pos += afterMarker
+	l.ignore()
+	l.parenDepth = 0
+	return lexInsideAction
+}
+
+// lexComment scans a comment. The left comment marker is known to be present.
+func lexComment(l *lexer) stateFn {
+	l.pos += Pos(len(leftComment))
+	i := strings.Index(l.input[l.pos:], rightComment)
+	if i < 0 {
+		return l.errorf("unclosed comment")
+	}
+	l.pos += Pos(i + len(rightComment))
+	delim, trimSpace := l.atRightDelim()
+	if !delim {
+		return l.errorf("comment ends before closing delimiter")
+	}
+	if l.emitComment {
+		l.emit(itemComment)
+	}
+	if trimSpace {
+		l.pos += trimMarkerLen
+	}
+	l.pos += Pos(len(l.rightDelim))
+	if trimSpace {
+		l.pos += leftTrimLength(l.input[l.pos:])
+	}
+	l.ignore()
+	return lexText
+}
+
+// lexRightDelim scans the right delimiter, which is known to be present, possibly with a trim marker.
+func lexRightDelim(l *lexer) stateFn {
+	trimSpace := hasRightTrimMarker(l.input[l.pos:])
+	if trimSpace {
+		l.pos += trimMarkerLen
+		l.ignore()
+	}
+	l.pos += Pos(len(l.rightDelim))
+	l.emit(itemRightDelim)
+	if trimSpace {
+		l.pos += leftTrimLength(l.input[l.pos:])
+		l.ignore()
+	}
+	return lexText
+}
+
+// lexInsideAction scans the elements inside action delimiters.
+func lexInsideAction(l *lexer) stateFn {
+	// Either number, quoted string, or identifier.
+	// Spaces separate arguments; runs of spaces turn into itemSpace.
+	// Pipe symbols separate and are emitted.
+	delim, _ := l.atRightDelim()
+	if delim {
+		if l.parenDepth == 0 {
+			return lexRightDelim
+		}
+		return l.errorf("unclosed left paren")
+	}
+	switch r := l.next(); {
+	case r == eof:
+		return l.errorf("unclosed action")
+	case isSpace(r):
+		l.backup() // Put space back in case we have " -}}".
+		return lexSpace
+	case r == '=':
+		l.emit(itemAssign)
+	case r == ':':
+		if l.next() != '=' {
+			return l.errorf("expected :=")
+		}
+		l.emit(itemDeclare)
+	case r == '|':
+		l.emit(itemPipe)
+	case r == '"':
+		return lexQuote
+	case r == '`':
+		return lexRawQuote
+	case r == '$':
+		return lexVariable
+	case r == '\'':
+		return lexChar
+	case r == '.':
+		// special look-ahead for ".field" so we don't break l.backup().
+		if l.pos < Pos(len(l.input)) {
+			r := l.input[l.pos]
+			if r < '0' || '9' < r {
+				return lexField
+			}
+		}
+		fallthrough // '.' can start a number.
+	case r == '+' || r == '-' || ('0' <= r && r <= '9'):
+		l.backup()
+		return lexNumber
+	case isAlphaNumeric(r):
+		l.backup()
+		return lexIdentifier
+	case r == '(':
+		l.emit(itemLeftParen)
+		l.parenDepth++
+	case r == ')':
+		l.emit(itemRightParen)
+		l.parenDepth--
+		if l.parenDepth < 0 {
+			return l.errorf("unexpected right paren %#U", r)
+		}
+	case r <= unicode.MaxASCII && unicode.IsPrint(r):
+		l.emit(itemChar)
+	default:
+		return l.errorf("unrecognized character in action: %#U", r)
+	}
+	return lexInsideAction
+}
+
+// lexSpace scans a run of space characters.
+// We have not consumed the first space, which is known to be present.
+// Take care if there is a trim-marked right delimiter, which starts with a space.
+func lexSpace(l *lexer) stateFn {
+	var r rune
+	var numSpaces int
+	for {
+		r = l.peek()
+		if !isSpace(r) {
+			break
+		}
+		l.next()
+		numSpaces++
+	}
+	// Be careful about a trim-marked closing delimiter, which has a minus
+	// after a space. We know there is a space, so check for the '-' that might follow.
+	if hasRightTrimMarker(l.input[l.pos-1:]) && strings.HasPrefix(l.input[l.pos-1+trimMarkerLen:], l.rightDelim) {
+		l.backup() // Before the space.
+		if numSpaces == 1 {
+			return lexRightDelim // On the delim, so go right to that.
+		}
+	}
+	l.emit(itemSpace)
+	return lexInsideAction
+}
+
+// lexIdentifier scans an alphanumeric.
+func lexIdentifier(l *lexer) stateFn {
+Loop:
+	for {
+		switch r := l.next(); {
+		case isAlphaNumeric(r):
+			// absorb.
+		default:
+			l.backup()
+			word := l.input[l.start:l.pos]
+			if !l.atTerminator() {
+				return l.errorf("bad character %#U", r)
+			}
+			switch {
+			case key[word] > itemKeyword:
+				item := key[word]
+				if item == itemBreak && !l.breakOK || item == itemContinue && !l.continueOK {
+					l.emit(itemIdentifier)
+				} else {
+					l.emit(item)
+				}
+			case word[0] == '.':
+				l.emit(itemField)
+			case word == "true", word == "false":
+				l.emit(itemBool)
+			default:
+				l.emit(itemIdentifier)
+			}
+			break Loop
+		}
+	}
+	return lexInsideAction
+}
+
+// lexField scans a field: .Alphanumeric.
+// The . has been scanned.
+func lexField(l *lexer) stateFn {
+	return lexFieldOrVariable(l, itemField)
+}
+
+// lexVariable scans a Variable: $Alphanumeric.
+// The $ has been scanned.
+func lexVariable(l *lexer) stateFn {
+	if l.atTerminator() { // Nothing interesting follows -> "$".
+		l.emit(itemVariable)
+		return lexInsideAction
+	}
+	return lexFieldOrVariable(l, itemVariable)
+}
+
+// lexVariable scans a field or variable: [.$]Alphanumeric.
+// The . or $ has been scanned.
+func lexFieldOrVariable(l *lexer, typ itemType) stateFn {
+	if l.atTerminator() { // Nothing interesting follows -> "." or "$".
+		if typ == itemVariable {
+			l.emit(itemVariable)
+		} else {
+			l.emit(itemDot)
+		}
+		return lexInsideAction
+	}
+	var r rune
+	for {
+		r = l.next()
+		if !isAlphaNumeric(r) {
+			l.backup()
+			break
+		}
+	}
+	if !l.atTerminator() {
+		return l.errorf("bad character %#U", r)
+	}
+	l.emit(typ)
+	return lexInsideAction
+}
+
+// atTerminator reports whether the input is at valid termination character to
+// appear after an identifier. Breaks .X.Y into two pieces. Also catches cases
+// like "$x+2" not being acceptable without a space, in case we decide one
+// day to implement arithmetic.
+func (l *lexer) atTerminator() bool {
+	r := l.peek()
+	if isSpace(r) {
+		return true
+	}
+	switch r {
+	case eof, '.', ',', '|', ':', ')', '(':
+		return true
+	}
+	// Does r start the delimiter? This can be ambiguous (with delim=="//", $x/2 will
+	// succeed but should fail) but only in extremely rare cases caused by willfully
+	// bad choice of delimiter.
+	if rd, _ := utf8.DecodeRuneInString(l.rightDelim); rd == r {
+		return true
+	}
+	return false
+}
+
+// lexChar scans a character constant. The initial quote is already
+// scanned. Syntax checking is done by the parser.
+func lexChar(l *lexer) stateFn {
+Loop:
+	for {
+		switch l.next() {
+		case '\\':
+			if r := l.next(); r != eof && r != '\n' {
+				break
+			}
+			fallthrough
+		case eof, '\n':
+			return l.errorf("unterminated character constant")
+		case '\'':
+			break Loop
+		}
+	}
+	l.emit(itemCharConstant)
+	return lexInsideAction
+}
+
+// lexNumber scans a number: decimal, octal, hex, float, or imaginary. This
+// isn't a perfect number scanner - for instance it accepts "." and "0x0.2"
+// and "089" - but when it's wrong the input is invalid and the parser (via
+// strconv) will notice.
+func lexNumber(l *lexer) stateFn {
+	if !l.scanNumber() {
+		return l.errorf("bad number syntax: %q", l.input[l.start:l.pos])
+	}
+	if sign := l.peek(); sign == '+' || sign == '-' {
+		// Complex: 1+2i. No spaces, must end in 'i'.
+		if !l.scanNumber() || l.input[l.pos-1] != 'i' {
+			return l.errorf("bad number syntax: %q", l.input[l.start:l.pos])
+		}
+		l.emit(itemComplex)
+	} else {
+		l.emit(itemNumber)
+	}
+	return lexInsideAction
+}
+
+func (l *lexer) scanNumber() bool {
+	// Optional leading sign.
+	l.accept("+-")
+	// Is it hex?
+	digits := "0123456789_"
+	if l.accept("0") {
+		// Note: Leading 0 does not mean octal in floats.
+		if l.accept("xX") {
+			digits = "0123456789abcdefABCDEF_"
+		} else if l.accept("oO") {
+			digits = "01234567_"
+		} else if l.accept("bB") {
+			digits = "01_"
+		}
+	}
+	l.acceptRun(digits)
+	if l.accept(".") {
+		l.acceptRun(digits)
+	}
+	if len(digits) == 10+1 && l.accept("eE") {
+		l.accept("+-")
+		l.acceptRun("0123456789_")
+	}
+	if len(digits) == 16+6+1 && l.accept("pP") {
+		l.accept("+-")
+		l.acceptRun("0123456789_")
+	}
+	// Is it imaginary?
+	l.accept("i")
+	// Next thing mustn't be alphanumeric.
+	if isAlphaNumeric(l.peek()) {
+		l.next()
+		return false
+	}
+	return true
+}
+
+// lexQuote scans a quoted string.
+func lexQuote(l *lexer) stateFn {
+Loop:
+	for {
+		switch l.next() {
+		case '\\':
+			if r := l.next(); r != eof && r != '\n' {
+				break
+			}
+			fallthrough
+		case eof, '\n':
+			return l.errorf("unterminated quoted string")
+		case '"':
+			break Loop
+		}
+	}
+	l.emit(itemString)
+	return lexInsideAction
+}
+
+// lexRawQuote scans a raw quoted string.
+func lexRawQuote(l *lexer) stateFn {
+Loop:
+	for {
+		switch l.next() {
+		case eof:
+			return l.errorf("unterminated raw quoted string")
+		case '`':
+			break Loop
+		}
+	}
+	l.emit(itemRawString)
+	return lexInsideAction
+}
+
+// isSpace reports whether r is a space character.
+func isSpace(r rune) bool {
+	return r == ' ' || r == '\t' || r == '\r' || r == '\n'
+}
+
+// isAlphaNumeric reports whether r is an alphabetic, digit, or underscore.
+func isAlphaNumeric(r rune) bool {
+	return r == '_' || unicode.IsLetter(r) || unicode.IsDigit(r)
+}
+
+func hasLeftTrimMarker(s string) bool {
+	return len(s) >= 2 && s[0] == trimMarker && isSpace(rune(s[1]))
+}
+
+func hasRightTrimMarker(s string) bool {
+	return len(s) >= 2 && isSpace(rune(s[0])) && s[1] == trimMarker
+}
diff --git a/go.dev/cmd/internal/text/template/parse/lex_test.go b/go.dev/cmd/internal/text/template/parse/lex_test.go
new file mode 100644
index 0000000..df6aabf
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/parse/lex_test.go
@@ -0,0 +1,559 @@
+// Copyright 2011 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 parse
+
+import (
+	"fmt"
+	"testing"
+)
+
+// Make the types prettyprint.
+var itemName = map[itemType]string{
+	itemError:        "error",
+	itemBool:         "bool",
+	itemChar:         "char",
+	itemCharConstant: "charconst",
+	itemComment:      "comment",
+	itemComplex:      "complex",
+	itemDeclare:      ":=",
+	itemEOF:          "EOF",
+	itemField:        "field",
+	itemIdentifier:   "identifier",
+	itemLeftDelim:    "left delim",
+	itemLeftParen:    "(",
+	itemNumber:       "number",
+	itemPipe:         "pipe",
+	itemRawString:    "raw string",
+	itemRightDelim:   "right delim",
+	itemRightParen:   ")",
+	itemSpace:        "space",
+	itemString:       "string",
+	itemVariable:     "variable",
+
+	// keywords
+	itemDot:      ".",
+	itemBlock:    "block",
+	itemBreak:    "break",
+	itemContinue: "continue",
+	itemDefine:   "define",
+	itemElse:     "else",
+	itemIf:       "if",
+	itemEnd:      "end",
+	itemNil:      "nil",
+	itemRange:    "range",
+	itemTemplate: "template",
+	itemWith:     "with",
+}
+
+func (i itemType) String() string {
+	s := itemName[i]
+	if s == "" {
+		return fmt.Sprintf("item%d", int(i))
+	}
+	return s
+}
+
+type lexTest struct {
+	name  string
+	input string
+	items []item
+}
+
+func mkItem(typ itemType, text string) item {
+	return item{
+		typ: typ,
+		val: text,
+	}
+}
+
+var (
+	tDot        = mkItem(itemDot, ".")
+	tBlock      = mkItem(itemBlock, "block")
+	tEOF        = mkItem(itemEOF, "")
+	tFor        = mkItem(itemIdentifier, "for")
+	tLeft       = mkItem(itemLeftDelim, "{{")
+	tLpar       = mkItem(itemLeftParen, "(")
+	tPipe       = mkItem(itemPipe, "|")
+	tQuote      = mkItem(itemString, `"abc \n\t\" "`)
+	tRange      = mkItem(itemRange, "range")
+	tRight      = mkItem(itemRightDelim, "}}")
+	tRpar       = mkItem(itemRightParen, ")")
+	tSpace      = mkItem(itemSpace, " ")
+	raw         = "`" + `abc\n\t\" ` + "`"
+	rawNL       = "`now is{{\n}}the time`" // Contains newline inside raw quote.
+	tRawQuote   = mkItem(itemRawString, raw)
+	tRawQuoteNL = mkItem(itemRawString, rawNL)
+)
+
+var lexTests = []lexTest{
+	{"empty", "", []item{tEOF}},
+	{"spaces", " \t\n", []item{mkItem(itemText, " \t\n"), tEOF}},
+	{"text", `now is the time`, []item{mkItem(itemText, "now is the time"), tEOF}},
+	{"text with comment", "hello-{{/* this is a comment */}}-world", []item{
+		mkItem(itemText, "hello-"),
+		mkItem(itemComment, "/* this is a comment */"),
+		mkItem(itemText, "-world"),
+		tEOF,
+	}},
+	{"punctuation", "{{,@% }}", []item{
+		tLeft,
+		mkItem(itemChar, ","),
+		mkItem(itemChar, "@"),
+		mkItem(itemChar, "%"),
+		tSpace,
+		tRight,
+		tEOF,
+	}},
+	{"parens", "{{((3))}}", []item{
+		tLeft,
+		tLpar,
+		tLpar,
+		mkItem(itemNumber, "3"),
+		tRpar,
+		tRpar,
+		tRight,
+		tEOF,
+	}},
+	{"empty action", `{{}}`, []item{tLeft, tRight, tEOF}},
+	{"for", `{{for}}`, []item{tLeft, tFor, tRight, tEOF}},
+	{"block", `{{block "foo" .}}`, []item{
+		tLeft, tBlock, tSpace, mkItem(itemString, `"foo"`), tSpace, tDot, tRight, tEOF,
+	}},
+	{"quote", `{{"abc \n\t\" "}}`, []item{tLeft, tQuote, tRight, tEOF}},
+	{"raw quote", "{{" + raw + "}}", []item{tLeft, tRawQuote, tRight, tEOF}},
+	{"raw quote with newline", "{{" + rawNL + "}}", []item{tLeft, tRawQuoteNL, tRight, tEOF}},
+	{"numbers", "{{1 02 0x14 0X14 -7.2i 1e3 1E3 +1.2e-4 4.2i 1+2i 1_2 0x1.e_fp4 0X1.E_FP4}}", []item{
+		tLeft,
+		mkItem(itemNumber, "1"),
+		tSpace,
+		mkItem(itemNumber, "02"),
+		tSpace,
+		mkItem(itemNumber, "0x14"),
+		tSpace,
+		mkItem(itemNumber, "0X14"),
+		tSpace,
+		mkItem(itemNumber, "-7.2i"),
+		tSpace,
+		mkItem(itemNumber, "1e3"),
+		tSpace,
+		mkItem(itemNumber, "1E3"),
+		tSpace,
+		mkItem(itemNumber, "+1.2e-4"),
+		tSpace,
+		mkItem(itemNumber, "4.2i"),
+		tSpace,
+		mkItem(itemComplex, "1+2i"),
+		tSpace,
+		mkItem(itemNumber, "1_2"),
+		tSpace,
+		mkItem(itemNumber, "0x1.e_fp4"),
+		tSpace,
+		mkItem(itemNumber, "0X1.E_FP4"),
+		tRight,
+		tEOF,
+	}},
+	{"characters", `{{'a' '\n' '\'' '\\' '\u00FF' '\xFF' '本'}}`, []item{
+		tLeft,
+		mkItem(itemCharConstant, `'a'`),
+		tSpace,
+		mkItem(itemCharConstant, `'\n'`),
+		tSpace,
+		mkItem(itemCharConstant, `'\''`),
+		tSpace,
+		mkItem(itemCharConstant, `'\\'`),
+		tSpace,
+		mkItem(itemCharConstant, `'\u00FF'`),
+		tSpace,
+		mkItem(itemCharConstant, `'\xFF'`),
+		tSpace,
+		mkItem(itemCharConstant, `'本'`),
+		tRight,
+		tEOF,
+	}},
+	{"bools", "{{true false}}", []item{
+		tLeft,
+		mkItem(itemBool, "true"),
+		tSpace,
+		mkItem(itemBool, "false"),
+		tRight,
+		tEOF,
+	}},
+	{"dot", "{{.}}", []item{
+		tLeft,
+		tDot,
+		tRight,
+		tEOF,
+	}},
+	{"nil", "{{nil}}", []item{
+		tLeft,
+		mkItem(itemNil, "nil"),
+		tRight,
+		tEOF,
+	}},
+	{"dots", "{{.x . .2 .x.y.z}}", []item{
+		tLeft,
+		mkItem(itemField, ".x"),
+		tSpace,
+		tDot,
+		tSpace,
+		mkItem(itemNumber, ".2"),
+		tSpace,
+		mkItem(itemField, ".x"),
+		mkItem(itemField, ".y"),
+		mkItem(itemField, ".z"),
+		tRight,
+		tEOF,
+	}},
+	{"keywords", "{{range if else end with}}", []item{
+		tLeft,
+		mkItem(itemRange, "range"),
+		tSpace,
+		mkItem(itemIf, "if"),
+		tSpace,
+		mkItem(itemElse, "else"),
+		tSpace,
+		mkItem(itemEnd, "end"),
+		tSpace,
+		mkItem(itemWith, "with"),
+		tRight,
+		tEOF,
+	}},
+	{"variables", "{{$c := printf $ $hello $23 $ $var.Field .Method}}", []item{
+		tLeft,
+		mkItem(itemVariable, "$c"),
+		tSpace,
+		mkItem(itemDeclare, ":="),
+		tSpace,
+		mkItem(itemIdentifier, "printf"),
+		tSpace,
+		mkItem(itemVariable, "$"),
+		tSpace,
+		mkItem(itemVariable, "$hello"),
+		tSpace,
+		mkItem(itemVariable, "$23"),
+		tSpace,
+		mkItem(itemVariable, "$"),
+		tSpace,
+		mkItem(itemVariable, "$var"),
+		mkItem(itemField, ".Field"),
+		tSpace,
+		mkItem(itemField, ".Method"),
+		tRight,
+		tEOF,
+	}},
+	{"variable invocation", "{{$x 23}}", []item{
+		tLeft,
+		mkItem(itemVariable, "$x"),
+		tSpace,
+		mkItem(itemNumber, "23"),
+		tRight,
+		tEOF,
+	}},
+	{"pipeline", `intro {{echo hi 1.2 |noargs|args 1 "hi"}} outro`, []item{
+		mkItem(itemText, "intro "),
+		tLeft,
+		mkItem(itemIdentifier, "echo"),
+		tSpace,
+		mkItem(itemIdentifier, "hi"),
+		tSpace,
+		mkItem(itemNumber, "1.2"),
+		tSpace,
+		tPipe,
+		mkItem(itemIdentifier, "noargs"),
+		tPipe,
+		mkItem(itemIdentifier, "args"),
+		tSpace,
+		mkItem(itemNumber, "1"),
+		tSpace,
+		mkItem(itemString, `"hi"`),
+		tRight,
+		mkItem(itemText, " outro"),
+		tEOF,
+	}},
+	{"declaration", "{{$v := 3}}", []item{
+		tLeft,
+		mkItem(itemVariable, "$v"),
+		tSpace,
+		mkItem(itemDeclare, ":="),
+		tSpace,
+		mkItem(itemNumber, "3"),
+		tRight,
+		tEOF,
+	}},
+	{"2 declarations", "{{$v , $w := 3}}", []item{
+		tLeft,
+		mkItem(itemVariable, "$v"),
+		tSpace,
+		mkItem(itemChar, ","),
+		tSpace,
+		mkItem(itemVariable, "$w"),
+		tSpace,
+		mkItem(itemDeclare, ":="),
+		tSpace,
+		mkItem(itemNumber, "3"),
+		tRight,
+		tEOF,
+	}},
+	{"field of parenthesized expression", "{{(.X).Y}}", []item{
+		tLeft,
+		tLpar,
+		mkItem(itemField, ".X"),
+		tRpar,
+		mkItem(itemField, ".Y"),
+		tRight,
+		tEOF,
+	}},
+	{"trimming spaces before and after", "hello- {{- 3 -}} -world", []item{
+		mkItem(itemText, "hello-"),
+		tLeft,
+		mkItem(itemNumber, "3"),
+		tRight,
+		mkItem(itemText, "-world"),
+		tEOF,
+	}},
+	{"trimming spaces before and after comment", "hello- {{- /* hello */ -}} -world", []item{
+		mkItem(itemText, "hello-"),
+		mkItem(itemComment, "/* hello */"),
+		mkItem(itemText, "-world"),
+		tEOF,
+	}},
+	// errors
+	{"badchar", "#{{\x01}}", []item{
+		mkItem(itemText, "#"),
+		tLeft,
+		mkItem(itemError, "unrecognized character in action: U+0001"),
+	}},
+	{"unclosed action", "{{", []item{
+		tLeft,
+		mkItem(itemError, "unclosed action"),
+	}},
+	{"EOF in action", "{{range", []item{
+		tLeft,
+		tRange,
+		mkItem(itemError, "unclosed action"),
+	}},
+	{"unclosed quote", "{{\"\n\"}}", []item{
+		tLeft,
+		mkItem(itemError, "unterminated quoted string"),
+	}},
+	{"unclosed raw quote", "{{`xx}}", []item{
+		tLeft,
+		mkItem(itemError, "unterminated raw quoted string"),
+	}},
+	{"unclosed char constant", "{{'\n}}", []item{
+		tLeft,
+		mkItem(itemError, "unterminated character constant"),
+	}},
+	{"bad number", "{{3k}}", []item{
+		tLeft,
+		mkItem(itemError, `bad number syntax: "3k"`),
+	}},
+	{"unclosed paren", "{{(3}}", []item{
+		tLeft,
+		tLpar,
+		mkItem(itemNumber, "3"),
+		mkItem(itemError, `unclosed left paren`),
+	}},
+	{"extra right paren", "{{3)}}", []item{
+		tLeft,
+		mkItem(itemNumber, "3"),
+		tRpar,
+		mkItem(itemError, `unexpected right paren U+0029 ')'`),
+	}},
+
+	// Fixed bugs
+	// Many elements in an action blew the lookahead until
+	// we made lexInsideAction not loop.
+	{"long pipeline deadlock", "{{|||||}}", []item{
+		tLeft,
+		tPipe,
+		tPipe,
+		tPipe,
+		tPipe,
+		tPipe,
+		tRight,
+		tEOF,
+	}},
+	{"text with bad comment", "hello-{{/*/}}-world", []item{
+		mkItem(itemText, "hello-"),
+		mkItem(itemError, `unclosed comment`),
+	}},
+	{"text with comment close separated from delim", "hello-{{/* */ }}-world", []item{
+		mkItem(itemText, "hello-"),
+		mkItem(itemError, `comment ends before closing delimiter`),
+	}},
+	// This one is an error that we can't catch because it breaks templates with
+	// minimized JavaScript. Should have fixed it before Go 1.1.
+	{"unmatched right delimiter", "hello-{.}}-world", []item{
+		mkItem(itemText, "hello-{.}}-world"),
+		tEOF,
+	}},
+}
+
+// collect gathers the emitted items into a slice.
+func collect(t *lexTest, left, right string) (items []item) {
+	l := lex(t.name, t.input, left, right, true)
+	for {
+		item := l.nextItem()
+		items = append(items, item)
+		if item.typ == itemEOF || item.typ == itemError {
+			break
+		}
+	}
+	return
+}
+
+func equal(i1, i2 []item, checkPos bool) bool {
+	if len(i1) != len(i2) {
+		return false
+	}
+	for k := range i1 {
+		if i1[k].typ != i2[k].typ {
+			return false
+		}
+		if i1[k].val != i2[k].val {
+			return false
+		}
+		if checkPos && i1[k].pos != i2[k].pos {
+			return false
+		}
+		if checkPos && i1[k].line != i2[k].line {
+			return false
+		}
+	}
+	return true
+}
+
+func TestLex(t *testing.T) {
+	for _, test := range lexTests {
+		items := collect(&test, "", "")
+		if !equal(items, test.items, false) {
+			t.Errorf("%s: got\n\t%+v\nexpected\n\t%v", test.name, items, test.items)
+		}
+	}
+}
+
+// Some easy cases from above, but with delimiters $$ and @@
+var lexDelimTests = []lexTest{
+	{"punctuation", "$$,@%{{}}@@", []item{
+		tLeftDelim,
+		mkItem(itemChar, ","),
+		mkItem(itemChar, "@"),
+		mkItem(itemChar, "%"),
+		mkItem(itemChar, "{"),
+		mkItem(itemChar, "{"),
+		mkItem(itemChar, "}"),
+		mkItem(itemChar, "}"),
+		tRightDelim,
+		tEOF,
+	}},
+	{"empty action", `$$@@`, []item{tLeftDelim, tRightDelim, tEOF}},
+	{"for", `$$for@@`, []item{tLeftDelim, tFor, tRightDelim, tEOF}},
+	{"quote", `$$"abc \n\t\" "@@`, []item{tLeftDelim, tQuote, tRightDelim, tEOF}},
+	{"raw quote", "$$" + raw + "@@", []item{tLeftDelim, tRawQuote, tRightDelim, tEOF}},
+}
+
+var (
+	tLeftDelim  = mkItem(itemLeftDelim, "$$")
+	tRightDelim = mkItem(itemRightDelim, "@@")
+)
+
+func TestDelims(t *testing.T) {
+	for _, test := range lexDelimTests {
+		items := collect(&test, "$$", "@@")
+		if !equal(items, test.items, false) {
+			t.Errorf("%s: got\n\t%v\nexpected\n\t%v", test.name, items, test.items)
+		}
+	}
+}
+
+var lexPosTests = []lexTest{
+	{"empty", "", []item{{itemEOF, 0, "", 1}}},
+	{"punctuation", "{{,@%#}}", []item{
+		{itemLeftDelim, 0, "{{", 1},
+		{itemChar, 2, ",", 1},
+		{itemChar, 3, "@", 1},
+		{itemChar, 4, "%", 1},
+		{itemChar, 5, "#", 1},
+		{itemRightDelim, 6, "}}", 1},
+		{itemEOF, 8, "", 1},
+	}},
+	{"sample", "0123{{hello}}xyz", []item{
+		{itemText, 0, "0123", 1},
+		{itemLeftDelim, 4, "{{", 1},
+		{itemIdentifier, 6, "hello", 1},
+		{itemRightDelim, 11, "}}", 1},
+		{itemText, 13, "xyz", 1},
+		{itemEOF, 16, "", 1},
+	}},
+	{"trimafter", "{{x -}}\n{{y}}", []item{
+		{itemLeftDelim, 0, "{{", 1},
+		{itemIdentifier, 2, "x", 1},
+		{itemRightDelim, 5, "}}", 1},
+		{itemLeftDelim, 8, "{{", 2},
+		{itemIdentifier, 10, "y", 2},
+		{itemRightDelim, 11, "}}", 2},
+		{itemEOF, 13, "", 2},
+	}},
+	{"trimbefore", "{{x}}\n{{- y}}", []item{
+		{itemLeftDelim, 0, "{{", 1},
+		{itemIdentifier, 2, "x", 1},
+		{itemRightDelim, 3, "}}", 1},
+		{itemLeftDelim, 6, "{{", 2},
+		{itemIdentifier, 10, "y", 2},
+		{itemRightDelim, 11, "}}", 2},
+		{itemEOF, 13, "", 2},
+	}},
+}
+
+// The other tests don't check position, to make the test cases easier to construct.
+// This one does.
+func TestPos(t *testing.T) {
+	for _, test := range lexPosTests {
+		items := collect(&test, "", "")
+		if !equal(items, test.items, true) {
+			t.Errorf("%s: got\n\t%v\nexpected\n\t%v", test.name, items, test.items)
+			if len(items) == len(test.items) {
+				// Detailed print; avoid item.String() to expose the position value.
+				for i := range items {
+					if !equal(items[i:i+1], test.items[i:i+1], true) {
+						i1 := items[i]
+						i2 := test.items[i]
+						t.Errorf("\t#%d: got {%v %d %q %d} expected {%v %d %q %d}",
+							i, i1.typ, i1.pos, i1.val, i1.line, i2.typ, i2.pos, i2.val, i2.line)
+					}
+				}
+			}
+		}
+	}
+}
+
+// Test that an error shuts down the lexing goroutine.
+func TestShutdown(t *testing.T) {
+	// We need to duplicate template.Parse here to hold on to the lexer.
+	const text = "erroneous{{define}}{{else}}1234"
+	lexer := lex("foo", text, "{{", "}}", false)
+	_, err := New("root").parseLexer(lexer)
+	if err == nil {
+		t.Fatalf("expected error")
+	}
+	// The error should have drained the input. Therefore, the lexer should be shut down.
+	token, ok := <-lexer.items
+	if ok {
+		t.Fatalf("input was not drained; got %v", token)
+	}
+}
+
+// parseLexer is a local version of parse that lets us pass in the lexer instead of building it.
+// We expect an error, so the tree set and funcs list are explicitly nil.
+func (t *Tree) parseLexer(lex *lexer) (tree *Tree, err error) {
+	defer t.recover(&err)
+	t.ParseName = t.Name
+	t.startParse(nil, lex, map[string]*Tree{})
+	t.parse()
+	t.add()
+	t.stopParse()
+	return t, nil
+}
diff --git a/go.dev/cmd/internal/text/template/parse/node.go b/go.dev/cmd/internal/text/template/parse/node.go
new file mode 100644
index 0000000..a2da634
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/parse/node.go
@@ -0,0 +1,1008 @@
+// Copyright 2011 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.
+
+// Parse nodes.
+
+package parse
+
+import (
+	"fmt"
+	"strconv"
+	"strings"
+)
+
+var textFormat = "%s" // Changed to "%q" in tests for better error messages.
+
+// A Node is an element in the parse tree. The interface is trivial.
+// The interface contains an unexported method so that only
+// types local to this package can satisfy it.
+type Node interface {
+	Type() NodeType
+	String() string
+	// Copy does a deep copy of the Node and all its components.
+	// To avoid type assertions, some XxxNodes also have specialized
+	// CopyXxx methods that return *XxxNode.
+	Copy() Node
+	Position() Pos // byte position of start of node in full original input string
+	// tree returns the containing *Tree.
+	// It is unexported so all implementations of Node are in this package.
+	tree() *Tree
+	// writeTo writes the String output to the builder.
+	writeTo(*strings.Builder)
+}
+
+// NodeType identifies the type of a parse tree node.
+type NodeType int
+
+// Pos represents a byte position in the original input text from which
+// this template was parsed.
+type Pos int
+
+func (p Pos) Position() Pos {
+	return p
+}
+
+// Type returns itself and provides an easy default implementation
+// for embedding in a Node. Embedded in all non-trivial Nodes.
+func (t NodeType) Type() NodeType {
+	return t
+}
+
+const (
+	NodeText       NodeType = iota // Plain text.
+	NodeAction                     // A non-control action such as a field evaluation.
+	NodeBool                       // A boolean constant.
+	NodeBreak                      // A break action.
+	NodeChain                      // A sequence of field accesses.
+	NodeCommand                    // An element of a pipeline.
+	NodeContinue                   // A continue action.
+	NodeDot                        // The cursor, dot.
+	nodeElse                       // An else action. Not added to tree.
+	nodeEnd                        // An end action. Not added to tree.
+	NodeField                      // A field or method name.
+	NodeIdentifier                 // An identifier; always a function name.
+	NodeIf                         // An if action.
+	NodeList                       // A list of Nodes.
+	NodeNil                        // An untyped nil constant.
+	NodeNumber                     // A numerical constant.
+	NodePipe                       // A pipeline of commands.
+	NodeRange                      // A range action.
+	NodeString                     // A string constant.
+	NodeTemplate                   // A template invocation action.
+	NodeVariable                   // A $ variable.
+	NodeWith                       // A with action.
+	NodeComment                    // A comment.
+)
+
+// Nodes.
+
+// ListNode holds a sequence of nodes.
+type ListNode struct {
+	NodeType
+	Pos
+	tr    *Tree
+	Nodes []Node // The element nodes in lexical order.
+}
+
+func (t *Tree) newList(pos Pos) *ListNode {
+	return &ListNode{tr: t, NodeType: NodeList, Pos: pos}
+}
+
+func (l *ListNode) append(n Node) {
+	l.Nodes = append(l.Nodes, n)
+}
+
+func (l *ListNode) tree() *Tree {
+	return l.tr
+}
+
+func (l *ListNode) String() string {
+	var sb strings.Builder
+	l.writeTo(&sb)
+	return sb.String()
+}
+
+func (l *ListNode) writeTo(sb *strings.Builder) {
+	for _, n := range l.Nodes {
+		n.writeTo(sb)
+	}
+}
+
+func (l *ListNode) CopyList() *ListNode {
+	if l == nil {
+		return l
+	}
+	n := l.tr.newList(l.Pos)
+	for _, elem := range l.Nodes {
+		n.append(elem.Copy())
+	}
+	return n
+}
+
+func (l *ListNode) Copy() Node {
+	return l.CopyList()
+}
+
+// TextNode holds plain text.
+type TextNode struct {
+	NodeType
+	Pos
+	tr   *Tree
+	Text []byte // The text; may span newlines.
+}
+
+func (t *Tree) newText(pos Pos, text string) *TextNode {
+	return &TextNode{tr: t, NodeType: NodeText, Pos: pos, Text: []byte(text)}
+}
+
+func (t *TextNode) String() string {
+	return fmt.Sprintf(textFormat, t.Text)
+}
+
+func (t *TextNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(t.String())
+}
+
+func (t *TextNode) tree() *Tree {
+	return t.tr
+}
+
+func (t *TextNode) Copy() Node {
+	return &TextNode{tr: t.tr, NodeType: NodeText, Pos: t.Pos, Text: append([]byte{}, t.Text...)}
+}
+
+// CommentNode holds a comment.
+type CommentNode struct {
+	NodeType
+	Pos
+	tr   *Tree
+	Text string // Comment text.
+}
+
+func (t *Tree) newComment(pos Pos, text string) *CommentNode {
+	return &CommentNode{tr: t, NodeType: NodeComment, Pos: pos, Text: text}
+}
+
+func (c *CommentNode) String() string {
+	var sb strings.Builder
+	c.writeTo(&sb)
+	return sb.String()
+}
+
+func (c *CommentNode) writeTo(sb *strings.Builder) {
+	sb.WriteString("{{")
+	sb.WriteString(c.Text)
+	sb.WriteString("}}")
+}
+
+func (c *CommentNode) tree() *Tree {
+	return c.tr
+}
+
+func (c *CommentNode) Copy() Node {
+	return &CommentNode{tr: c.tr, NodeType: NodeComment, Pos: c.Pos, Text: c.Text}
+}
+
+// PipeNode holds a pipeline with optional declaration
+type PipeNode struct {
+	NodeType
+	Pos
+	tr       *Tree
+	Line     int             // The line number in the input. Deprecated: Kept for compatibility.
+	IsAssign bool            // The variables are being assigned, not declared.
+	Decl     []*VariableNode // Variables in lexical order.
+	Cmds     []*CommandNode  // The commands in lexical order.
+}
+
+func (t *Tree) newPipeline(pos Pos, line int, vars []*VariableNode) *PipeNode {
+	return &PipeNode{tr: t, NodeType: NodePipe, Pos: pos, Line: line, Decl: vars}
+}
+
+func (p *PipeNode) append(command *CommandNode) {
+	p.Cmds = append(p.Cmds, command)
+}
+
+func (p *PipeNode) String() string {
+	var sb strings.Builder
+	p.writeTo(&sb)
+	return sb.String()
+}
+
+func (p *PipeNode) writeTo(sb *strings.Builder) {
+	if len(p.Decl) > 0 {
+		for i, v := range p.Decl {
+			if i > 0 {
+				sb.WriteString(", ")
+			}
+			v.writeTo(sb)
+		}
+		sb.WriteString(" := ")
+	}
+	for i, c := range p.Cmds {
+		if i > 0 {
+			sb.WriteString(" | ")
+		}
+		c.writeTo(sb)
+	}
+}
+
+func (p *PipeNode) tree() *Tree {
+	return p.tr
+}
+
+func (p *PipeNode) CopyPipe() *PipeNode {
+	if p == nil {
+		return p
+	}
+	vars := make([]*VariableNode, len(p.Decl))
+	for i, d := range p.Decl {
+		vars[i] = d.Copy().(*VariableNode)
+	}
+	n := p.tr.newPipeline(p.Pos, p.Line, vars)
+	n.IsAssign = p.IsAssign
+	for _, c := range p.Cmds {
+		n.append(c.Copy().(*CommandNode))
+	}
+	return n
+}
+
+func (p *PipeNode) Copy() Node {
+	return p.CopyPipe()
+}
+
+// ActionNode holds an action (something bounded by delimiters).
+// Control actions have their own nodes; ActionNode represents simple
+// ones such as field evaluations and parenthesized pipelines.
+type ActionNode struct {
+	NodeType
+	Pos
+	tr   *Tree
+	Line int       // The line number in the input. Deprecated: Kept for compatibility.
+	Pipe *PipeNode // The pipeline in the action.
+}
+
+func (t *Tree) newAction(pos Pos, line int, pipe *PipeNode) *ActionNode {
+	return &ActionNode{tr: t, NodeType: NodeAction, Pos: pos, Line: line, Pipe: pipe}
+}
+
+func (a *ActionNode) String() string {
+	var sb strings.Builder
+	a.writeTo(&sb)
+	return sb.String()
+}
+
+func (a *ActionNode) writeTo(sb *strings.Builder) {
+	sb.WriteString("{{")
+	a.Pipe.writeTo(sb)
+	sb.WriteString("}}")
+}
+
+func (a *ActionNode) tree() *Tree {
+	return a.tr
+}
+
+func (a *ActionNode) Copy() Node {
+	return a.tr.newAction(a.Pos, a.Line, a.Pipe.CopyPipe())
+
+}
+
+// CommandNode holds a command (a pipeline inside an evaluating action).
+type CommandNode struct {
+	NodeType
+	Pos
+	tr   *Tree
+	Args []Node // Arguments in lexical order: Identifier, field, or constant.
+}
+
+func (t *Tree) newCommand(pos Pos) *CommandNode {
+	return &CommandNode{tr: t, NodeType: NodeCommand, Pos: pos}
+}
+
+func (c *CommandNode) append(arg Node) {
+	c.Args = append(c.Args, arg)
+}
+
+func (c *CommandNode) String() string {
+	var sb strings.Builder
+	c.writeTo(&sb)
+	return sb.String()
+}
+
+func (c *CommandNode) writeTo(sb *strings.Builder) {
+	for i, arg := range c.Args {
+		if i > 0 {
+			sb.WriteByte(' ')
+		}
+		if arg, ok := arg.(*PipeNode); ok {
+			sb.WriteByte('(')
+			arg.writeTo(sb)
+			sb.WriteByte(')')
+			continue
+		}
+		arg.writeTo(sb)
+	}
+}
+
+func (c *CommandNode) tree() *Tree {
+	return c.tr
+}
+
+func (c *CommandNode) Copy() Node {
+	if c == nil {
+		return c
+	}
+	n := c.tr.newCommand(c.Pos)
+	for _, c := range c.Args {
+		n.append(c.Copy())
+	}
+	return n
+}
+
+// IdentifierNode holds an identifier.
+type IdentifierNode struct {
+	NodeType
+	Pos
+	tr    *Tree
+	Ident string // The identifier's name.
+}
+
+// NewIdentifier returns a new IdentifierNode with the given identifier name.
+func NewIdentifier(ident string) *IdentifierNode {
+	return &IdentifierNode{NodeType: NodeIdentifier, Ident: ident}
+}
+
+// SetPos sets the position. NewIdentifier is a public method so we can't modify its signature.
+// Chained for convenience.
+// TODO: fix one day?
+func (i *IdentifierNode) SetPos(pos Pos) *IdentifierNode {
+	i.Pos = pos
+	return i
+}
+
+// SetTree sets the parent tree for the node. NewIdentifier is a public method so we can't modify its signature.
+// Chained for convenience.
+// TODO: fix one day?
+func (i *IdentifierNode) SetTree(t *Tree) *IdentifierNode {
+	i.tr = t
+	return i
+}
+
+func (i *IdentifierNode) String() string {
+	return i.Ident
+}
+
+func (i *IdentifierNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(i.String())
+}
+
+func (i *IdentifierNode) tree() *Tree {
+	return i.tr
+}
+
+func (i *IdentifierNode) Copy() Node {
+	return NewIdentifier(i.Ident).SetTree(i.tr).SetPos(i.Pos)
+}
+
+// VariableNode holds a list of variable names, possibly with chained field
+// accesses. The dollar sign is part of the (first) name.
+type VariableNode struct {
+	NodeType
+	Pos
+	tr    *Tree
+	Ident []string // Variable name and fields in lexical order.
+}
+
+func (t *Tree) newVariable(pos Pos, ident string) *VariableNode {
+	return &VariableNode{tr: t, NodeType: NodeVariable, Pos: pos, Ident: strings.Split(ident, ".")}
+}
+
+func (v *VariableNode) String() string {
+	var sb strings.Builder
+	v.writeTo(&sb)
+	return sb.String()
+}
+
+func (v *VariableNode) writeTo(sb *strings.Builder) {
+	for i, id := range v.Ident {
+		if i > 0 {
+			sb.WriteByte('.')
+		}
+		sb.WriteString(id)
+	}
+}
+
+func (v *VariableNode) tree() *Tree {
+	return v.tr
+}
+
+func (v *VariableNode) Copy() Node {
+	return &VariableNode{tr: v.tr, NodeType: NodeVariable, Pos: v.Pos, Ident: append([]string{}, v.Ident...)}
+}
+
+// DotNode holds the special identifier '.'.
+type DotNode struct {
+	NodeType
+	Pos
+	tr *Tree
+}
+
+func (t *Tree) newDot(pos Pos) *DotNode {
+	return &DotNode{tr: t, NodeType: NodeDot, Pos: pos}
+}
+
+func (d *DotNode) Type() NodeType {
+	// Override method on embedded NodeType for API compatibility.
+	// TODO: Not really a problem; could change API without effect but
+	// api tool complains.
+	return NodeDot
+}
+
+func (d *DotNode) String() string {
+	return "."
+}
+
+func (d *DotNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(d.String())
+}
+
+func (d *DotNode) tree() *Tree {
+	return d.tr
+}
+
+func (d *DotNode) Copy() Node {
+	return d.tr.newDot(d.Pos)
+}
+
+// NilNode holds the special identifier 'nil' representing an untyped nil constant.
+type NilNode struct {
+	NodeType
+	Pos
+	tr *Tree
+}
+
+func (t *Tree) newNil(pos Pos) *NilNode {
+	return &NilNode{tr: t, NodeType: NodeNil, Pos: pos}
+}
+
+func (n *NilNode) Type() NodeType {
+	// Override method on embedded NodeType for API compatibility.
+	// TODO: Not really a problem; could change API without effect but
+	// api tool complains.
+	return NodeNil
+}
+
+func (n *NilNode) String() string {
+	return "nil"
+}
+
+func (n *NilNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(n.String())
+}
+
+func (n *NilNode) tree() *Tree {
+	return n.tr
+}
+
+func (n *NilNode) Copy() Node {
+	return n.tr.newNil(n.Pos)
+}
+
+// FieldNode holds a field (identifier starting with '.').
+// The names may be chained ('.x.y').
+// The period is dropped from each ident.
+type FieldNode struct {
+	NodeType
+	Pos
+	tr    *Tree
+	Ident []string // The identifiers in lexical order.
+}
+
+func (t *Tree) newField(pos Pos, ident string) *FieldNode {
+	return &FieldNode{tr: t, NodeType: NodeField, Pos: pos, Ident: strings.Split(ident[1:], ".")} // [1:] to drop leading period
+}
+
+func (f *FieldNode) String() string {
+	var sb strings.Builder
+	f.writeTo(&sb)
+	return sb.String()
+}
+
+func (f *FieldNode) writeTo(sb *strings.Builder) {
+	for _, id := range f.Ident {
+		sb.WriteByte('.')
+		sb.WriteString(id)
+	}
+}
+
+func (f *FieldNode) tree() *Tree {
+	return f.tr
+}
+
+func (f *FieldNode) Copy() Node {
+	return &FieldNode{tr: f.tr, NodeType: NodeField, Pos: f.Pos, Ident: append([]string{}, f.Ident...)}
+}
+
+// ChainNode holds a term followed by a chain of field accesses (identifier starting with '.').
+// The names may be chained ('.x.y').
+// The periods are dropped from each ident.
+type ChainNode struct {
+	NodeType
+	Pos
+	tr    *Tree
+	Node  Node
+	Field []string // The identifiers in lexical order.
+}
+
+func (t *Tree) newChain(pos Pos, node Node) *ChainNode {
+	return &ChainNode{tr: t, NodeType: NodeChain, Pos: pos, Node: node}
+}
+
+// Add adds the named field (which should start with a period) to the end of the chain.
+func (c *ChainNode) Add(field string) {
+	if len(field) == 0 || field[0] != '.' {
+		panic("no dot in field")
+	}
+	field = field[1:] // Remove leading dot.
+	if field == "" {
+		panic("empty field")
+	}
+	c.Field = append(c.Field, field)
+}
+
+func (c *ChainNode) String() string {
+	var sb strings.Builder
+	c.writeTo(&sb)
+	return sb.String()
+}
+
+func (c *ChainNode) writeTo(sb *strings.Builder) {
+	if _, ok := c.Node.(*PipeNode); ok {
+		sb.WriteByte('(')
+		c.Node.writeTo(sb)
+		sb.WriteByte(')')
+	} else {
+		c.Node.writeTo(sb)
+	}
+	for _, field := range c.Field {
+		sb.WriteByte('.')
+		sb.WriteString(field)
+	}
+}
+
+func (c *ChainNode) tree() *Tree {
+	return c.tr
+}
+
+func (c *ChainNode) Copy() Node {
+	return &ChainNode{tr: c.tr, NodeType: NodeChain, Pos: c.Pos, Node: c.Node, Field: append([]string{}, c.Field...)}
+}
+
+// BoolNode holds a boolean constant.
+type BoolNode struct {
+	NodeType
+	Pos
+	tr   *Tree
+	True bool // The value of the boolean constant.
+}
+
+func (t *Tree) newBool(pos Pos, true bool) *BoolNode {
+	return &BoolNode{tr: t, NodeType: NodeBool, Pos: pos, True: true}
+}
+
+func (b *BoolNode) String() string {
+	if b.True {
+		return "true"
+	}
+	return "false"
+}
+
+func (b *BoolNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(b.String())
+}
+
+func (b *BoolNode) tree() *Tree {
+	return b.tr
+}
+
+func (b *BoolNode) Copy() Node {
+	return b.tr.newBool(b.Pos, b.True)
+}
+
+// NumberNode holds a number: signed or unsigned integer, float, or complex.
+// The value is parsed and stored under all the types that can represent the value.
+// This simulates in a small amount of code the behavior of Go's ideal constants.
+type NumberNode struct {
+	NodeType
+	Pos
+	tr         *Tree
+	IsInt      bool       // Number has an integral value.
+	IsUint     bool       // Number has an unsigned integral value.
+	IsFloat    bool       // Number has a floating-point value.
+	IsComplex  bool       // Number is complex.
+	Int64      int64      // The signed integer value.
+	Uint64     uint64     // The unsigned integer value.
+	Float64    float64    // The floating-point value.
+	Complex128 complex128 // The complex value.
+	Text       string     // The original textual representation from the input.
+}
+
+func (t *Tree) newNumber(pos Pos, text string, typ itemType) (*NumberNode, error) {
+	n := &NumberNode{tr: t, NodeType: NodeNumber, Pos: pos, Text: text}
+	switch typ {
+	case itemCharConstant:
+		rune, _, tail, err := strconv.UnquoteChar(text[1:], text[0])
+		if err != nil {
+			return nil, err
+		}
+		if tail != "'" {
+			return nil, fmt.Errorf("malformed character constant: %s", text)
+		}
+		n.Int64 = int64(rune)
+		n.IsInt = true
+		n.Uint64 = uint64(rune)
+		n.IsUint = true
+		n.Float64 = float64(rune) // odd but those are the rules.
+		n.IsFloat = true
+		return n, nil
+	case itemComplex:
+		// fmt.Sscan can parse the pair, so let it do the work.
+		if _, err := fmt.Sscan(text, &n.Complex128); err != nil {
+			return nil, err
+		}
+		n.IsComplex = true
+		n.simplifyComplex()
+		return n, nil
+	}
+	// Imaginary constants can only be complex unless they are zero.
+	if len(text) > 0 && text[len(text)-1] == 'i' {
+		f, err := strconv.ParseFloat(text[:len(text)-1], 64)
+		if err == nil {
+			n.IsComplex = true
+			n.Complex128 = complex(0, f)
+			n.simplifyComplex()
+			return n, nil
+		}
+	}
+	// Do integer test first so we get 0x123 etc.
+	u, err := strconv.ParseUint(text, 0, 64) // will fail for -0; fixed below.
+	if err == nil {
+		n.IsUint = true
+		n.Uint64 = u
+	}
+	i, err := strconv.ParseInt(text, 0, 64)
+	if err == nil {
+		n.IsInt = true
+		n.Int64 = i
+		if i == 0 {
+			n.IsUint = true // in case of -0.
+			n.Uint64 = u
+		}
+	}
+	// If an integer extraction succeeded, promote the float.
+	if n.IsInt {
+		n.IsFloat = true
+		n.Float64 = float64(n.Int64)
+	} else if n.IsUint {
+		n.IsFloat = true
+		n.Float64 = float64(n.Uint64)
+	} else {
+		f, err := strconv.ParseFloat(text, 64)
+		if err == nil {
+			// If we parsed it as a float but it looks like an integer,
+			// it's a huge number too large to fit in an int. Reject it.
+			if !strings.ContainsAny(text, ".eEpP") {
+				return nil, fmt.Errorf("integer overflow: %q", text)
+			}
+			n.IsFloat = true
+			n.Float64 = f
+			// If a floating-point extraction succeeded, extract the int if needed.
+			if !n.IsInt && float64(int64(f)) == f {
+				n.IsInt = true
+				n.Int64 = int64(f)
+			}
+			if !n.IsUint && float64(uint64(f)) == f {
+				n.IsUint = true
+				n.Uint64 = uint64(f)
+			}
+		}
+	}
+	if !n.IsInt && !n.IsUint && !n.IsFloat {
+		return nil, fmt.Errorf("illegal number syntax: %q", text)
+	}
+	return n, nil
+}
+
+// simplifyComplex pulls out any other types that are represented by the complex number.
+// These all require that the imaginary part be zero.
+func (n *NumberNode) simplifyComplex() {
+	n.IsFloat = imag(n.Complex128) == 0
+	if n.IsFloat {
+		n.Float64 = real(n.Complex128)
+		n.IsInt = float64(int64(n.Float64)) == n.Float64
+		if n.IsInt {
+			n.Int64 = int64(n.Float64)
+		}
+		n.IsUint = float64(uint64(n.Float64)) == n.Float64
+		if n.IsUint {
+			n.Uint64 = uint64(n.Float64)
+		}
+	}
+}
+
+func (n *NumberNode) String() string {
+	return n.Text
+}
+
+func (n *NumberNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(n.String())
+}
+
+func (n *NumberNode) tree() *Tree {
+	return n.tr
+}
+
+func (n *NumberNode) Copy() Node {
+	nn := new(NumberNode)
+	*nn = *n // Easy, fast, correct.
+	return nn
+}
+
+// StringNode holds a string constant. The value has been "unquoted".
+type StringNode struct {
+	NodeType
+	Pos
+	tr     *Tree
+	Quoted string // The original text of the string, with quotes.
+	Text   string // The string, after quote processing.
+}
+
+func (t *Tree) newString(pos Pos, orig, text string) *StringNode {
+	return &StringNode{tr: t, NodeType: NodeString, Pos: pos, Quoted: orig, Text: text}
+}
+
+func (s *StringNode) String() string {
+	return s.Quoted
+}
+
+func (s *StringNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(s.String())
+}
+
+func (s *StringNode) tree() *Tree {
+	return s.tr
+}
+
+func (s *StringNode) Copy() Node {
+	return s.tr.newString(s.Pos, s.Quoted, s.Text)
+}
+
+// endNode represents an {{end}} action.
+// It does not appear in the final parse tree.
+type endNode struct {
+	NodeType
+	Pos
+	tr *Tree
+}
+
+func (t *Tree) newEnd(pos Pos) *endNode {
+	return &endNode{tr: t, NodeType: nodeEnd, Pos: pos}
+}
+
+func (e *endNode) String() string {
+	return "{{end}}"
+}
+
+func (e *endNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(e.String())
+}
+
+func (e *endNode) tree() *Tree {
+	return e.tr
+}
+
+func (e *endNode) Copy() Node {
+	return e.tr.newEnd(e.Pos)
+}
+
+// elseNode represents an {{else}} action. Does not appear in the final tree.
+type elseNode struct {
+	NodeType
+	Pos
+	tr   *Tree
+	Line int // The line number in the input. Deprecated: Kept for compatibility.
+}
+
+func (t *Tree) newElse(pos Pos, line int) *elseNode {
+	return &elseNode{tr: t, NodeType: nodeElse, Pos: pos, Line: line}
+}
+
+func (e *elseNode) Type() NodeType {
+	return nodeElse
+}
+
+func (e *elseNode) String() string {
+	return "{{else}}"
+}
+
+func (e *elseNode) writeTo(sb *strings.Builder) {
+	sb.WriteString(e.String())
+}
+
+func (e *elseNode) tree() *Tree {
+	return e.tr
+}
+
+func (e *elseNode) Copy() Node {
+	return e.tr.newElse(e.Pos, e.Line)
+}
+
+// BranchNode is the common representation of if, range, and with.
+type BranchNode struct {
+	NodeType
+	Pos
+	tr       *Tree
+	Line     int       // The line number in the input. Deprecated: Kept for compatibility.
+	Pipe     *PipeNode // The pipeline to be evaluated.
+	List     *ListNode // What to execute if the value is non-empty.
+	ElseList *ListNode // What to execute if the value is empty (nil if absent).
+}
+
+func (b *BranchNode) String() string {
+	var sb strings.Builder
+	b.writeTo(&sb)
+	return sb.String()
+}
+
+func (b *BranchNode) writeTo(sb *strings.Builder) {
+	name := ""
+	switch b.NodeType {
+	case NodeIf:
+		name = "if"
+	case NodeRange:
+		name = "range"
+	case NodeWith:
+		name = "with"
+	default:
+		panic("unknown branch type")
+	}
+	sb.WriteString("{{")
+	sb.WriteString(name)
+	sb.WriteByte(' ')
+	b.Pipe.writeTo(sb)
+	sb.WriteString("}}")
+	b.List.writeTo(sb)
+	if b.ElseList != nil {
+		sb.WriteString("{{else}}")
+		b.ElseList.writeTo(sb)
+	}
+	sb.WriteString("{{end}}")
+}
+
+func (b *BranchNode) tree() *Tree {
+	return b.tr
+}
+
+func (b *BranchNode) Copy() Node {
+	switch b.NodeType {
+	case NodeIf:
+		return b.tr.newIf(b.Pos, b.Line, b.Pipe, b.List, b.ElseList)
+	case NodeRange:
+		return b.tr.newRange(b.Pos, b.Line, b.Pipe, b.List, b.ElseList)
+	case NodeWith:
+		return b.tr.newWith(b.Pos, b.Line, b.Pipe, b.List, b.ElseList)
+	default:
+		panic("unknown branch type")
+	}
+}
+
+// IfNode represents an {{if}} action and its commands.
+type IfNode struct {
+	BranchNode
+}
+
+func (t *Tree) newIf(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *IfNode {
+	return &IfNode{BranchNode{tr: t, NodeType: NodeIf, Pos: pos, Line: line, Pipe: pipe, List: list, ElseList: elseList}}
+}
+
+func (i *IfNode) Copy() Node {
+	return i.tr.newIf(i.Pos, i.Line, i.Pipe.CopyPipe(), i.List.CopyList(), i.ElseList.CopyList())
+}
+
+// BreakNode represents a {{break}} action.
+type BreakNode struct {
+	tr *Tree
+	NodeType
+	Pos
+	Line int
+}
+
+func (t *Tree) newBreak(pos Pos, line int) *BreakNode {
+	return &BreakNode{tr: t, NodeType: NodeBreak, Pos: pos, Line: line}
+}
+
+func (b *BreakNode) Copy() Node                  { return b.tr.newBreak(b.Pos, b.Line) }
+func (b *BreakNode) String() string              { return "{{break}}" }
+func (b *BreakNode) tree() *Tree                 { return b.tr }
+func (b *BreakNode) writeTo(sb *strings.Builder) { sb.WriteString("{{break}}") }
+
+// ContinueNode represents a {{continue}} action.
+type ContinueNode struct {
+	tr *Tree
+	NodeType
+	Pos
+	Line int
+}
+
+func (t *Tree) newContinue(pos Pos, line int) *ContinueNode {
+	return &ContinueNode{tr: t, NodeType: NodeContinue, Pos: pos, Line: line}
+}
+
+func (c *ContinueNode) Copy() Node                  { return c.tr.newContinue(c.Pos, c.Line) }
+func (c *ContinueNode) String() string              { return "{{continue}}" }
+func (c *ContinueNode) tree() *Tree                 { return c.tr }
+func (c *ContinueNode) writeTo(sb *strings.Builder) { sb.WriteString("{{continue}}") }
+
+// RangeNode represents a {{range}} action and its commands.
+type RangeNode struct {
+	BranchNode
+}
+
+func (t *Tree) newRange(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *RangeNode {
+	return &RangeNode{BranchNode{tr: t, NodeType: NodeRange, Pos: pos, Line: line, Pipe: pipe, List: list, ElseList: elseList}}
+}
+
+func (r *RangeNode) Copy() Node {
+	return r.tr.newRange(r.Pos, r.Line, r.Pipe.CopyPipe(), r.List.CopyList(), r.ElseList.CopyList())
+}
+
+// WithNode represents a {{with}} action and its commands.
+type WithNode struct {
+	BranchNode
+}
+
+func (t *Tree) newWith(pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) *WithNode {
+	return &WithNode{BranchNode{tr: t, NodeType: NodeWith, Pos: pos, Line: line, Pipe: pipe, List: list, ElseList: elseList}}
+}
+
+func (w *WithNode) Copy() Node {
+	return w.tr.newWith(w.Pos, w.Line, w.Pipe.CopyPipe(), w.List.CopyList(), w.ElseList.CopyList())
+}
+
+// TemplateNode represents a {{template}} action.
+type TemplateNode struct {
+	NodeType
+	Pos
+	tr   *Tree
+	Line int       // The line number in the input. Deprecated: Kept for compatibility.
+	Name string    // The name of the template (unquoted).
+	Pipe *PipeNode // The command to evaluate as dot for the template.
+}
+
+func (t *Tree) newTemplate(pos Pos, line int, name string, pipe *PipeNode) *TemplateNode {
+	return &TemplateNode{tr: t, NodeType: NodeTemplate, Pos: pos, Line: line, Name: name, Pipe: pipe}
+}
+
+func (t *TemplateNode) String() string {
+	var sb strings.Builder
+	t.writeTo(&sb)
+	return sb.String()
+}
+
+func (t *TemplateNode) writeTo(sb *strings.Builder) {
+	sb.WriteString("{{template ")
+	sb.WriteString(strconv.Quote(t.Name))
+	if t.Pipe != nil {
+		sb.WriteByte(' ')
+		t.Pipe.writeTo(sb)
+	}
+	sb.WriteString("}}")
+}
+
+func (t *TemplateNode) tree() *Tree {
+	return t.tr
+}
+
+func (t *TemplateNode) Copy() Node {
+	return t.tr.newTemplate(t.Pos, t.Line, t.Name, t.Pipe.CopyPipe())
+}
diff --git a/go.dev/cmd/internal/text/template/parse/parse.go b/go.dev/cmd/internal/text/template/parse/parse.go
new file mode 100644
index 0000000..d92bed5
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/parse/parse.go
@@ -0,0 +1,796 @@
+// Copyright 2011 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 parse builds parse trees for templates as defined by text/template
+// and html/template. Clients should use those packages to construct templates
+// rather than this one, which provides shared internal data structures not
+// intended for general use.
+package parse
+
+import (
+	"bytes"
+	"fmt"
+	"runtime"
+	"strconv"
+	"strings"
+)
+
+// Tree is the representation of a single parsed template.
+type Tree struct {
+	Name      string    // name of the template represented by the tree.
+	ParseName string    // name of the top-level template during parsing, for error messages.
+	Root      *ListNode // top-level root of the tree.
+	Mode      Mode      // parsing mode.
+	text      string    // text parsed to create the template (or its parent)
+	// Parsing only; cleared after parse.
+	funcs      []map[string]interface{}
+	lex        *lexer
+	token      [3]item // three-token lookahead for parser.
+	peekCount  int
+	vars       []string // variables defined at the moment.
+	treeSet    map[string]*Tree
+	actionLine int // line of left delim starting action
+	rangeDepth int
+	mode       Mode
+}
+
+// A mode value is a set of flags (or 0). Modes control parser behavior.
+type Mode uint
+
+const (
+	ParseComments Mode = 1 << iota // parse comments and add them to AST
+	SkipFuncCheck                  // do not check that functions are defined
+)
+
+// Copy returns a copy of the Tree. Any parsing state is discarded.
+func (t *Tree) Copy() *Tree {
+	if t == nil {
+		return nil
+	}
+	return &Tree{
+		Name:      t.Name,
+		ParseName: t.ParseName,
+		Root:      t.Root.CopyList(),
+		text:      t.text,
+	}
+}
+
+// Parse returns a map from template name to parse.Tree, created by parsing the
+// templates described in the argument string. The top-level template will be
+// given the specified name. If an error is encountered, parsing stops and an
+// empty map is returned with the error.
+func Parse(name, text, leftDelim, rightDelim string, funcs ...map[string]interface{}) (map[string]*Tree, error) {
+	treeSet := make(map[string]*Tree)
+	t := New(name)
+	t.text = text
+	_, err := t.Parse(text, leftDelim, rightDelim, treeSet, funcs...)
+	return treeSet, err
+}
+
+// next returns the next token.
+func (t *Tree) next() item {
+	if t.peekCount > 0 {
+		t.peekCount--
+	} else {
+		t.token[0] = t.lex.nextItem()
+	}
+	return t.token[t.peekCount]
+}
+
+// backup backs the input stream up one token.
+func (t *Tree) backup() {
+	t.peekCount++
+}
+
+// backup2 backs the input stream up two tokens.
+// The zeroth token is already there.
+func (t *Tree) backup2(t1 item) {
+	t.token[1] = t1
+	t.peekCount = 2
+}
+
+// backup3 backs the input stream up three tokens
+// The zeroth token is already there.
+func (t *Tree) backup3(t2, t1 item) { // Reverse order: we're pushing back.
+	t.token[1] = t1
+	t.token[2] = t2
+	t.peekCount = 3
+}
+
+// peek returns but does not consume the next token.
+func (t *Tree) peek() item {
+	if t.peekCount > 0 {
+		return t.token[t.peekCount-1]
+	}
+	t.peekCount = 1
+	t.token[0] = t.lex.nextItem()
+	return t.token[0]
+}
+
+// nextNonSpace returns the next non-space token.
+func (t *Tree) nextNonSpace() (token item) {
+	for {
+		token = t.next()
+		if token.typ != itemSpace {
+			break
+		}
+	}
+	return token
+}
+
+// peekNonSpace returns but does not consume the next non-space token.
+func (t *Tree) peekNonSpace() item {
+	token := t.nextNonSpace()
+	t.backup()
+	return token
+}
+
+// Parsing.
+
+// New allocates a new parse tree with the given name.
+func New(name string, funcs ...map[string]interface{}) *Tree {
+	return &Tree{
+		Name:  name,
+		funcs: funcs,
+	}
+}
+
+// ErrorContext returns a textual representation of the location of the node in the input text.
+// The receiver is only used when the node does not have a pointer to the tree inside,
+// which can occur in old code.
+func (t *Tree) ErrorContext(n Node) (location, context string) {
+	pos := int(n.Position())
+	tree := n.tree()
+	if tree == nil {
+		tree = t
+	}
+	text := tree.text[:pos]
+	byteNum := strings.LastIndex(text, "\n")
+	if byteNum == -1 {
+		byteNum = pos // On first line.
+	} else {
+		byteNum++ // After the newline.
+		byteNum = pos - byteNum
+	}
+	lineNum := 1 + strings.Count(text, "\n")
+	context = n.String()
+	return fmt.Sprintf("%s:%d:%d", tree.ParseName, lineNum, byteNum), context
+}
+
+// errorf formats the error and terminates processing.
+func (t *Tree) errorf(format string, args ...interface{}) {
+	t.Root = nil
+	format = fmt.Sprintf("template: %s:%d: %s", t.ParseName, t.token[0].line, format)
+	panic(fmt.Errorf(format, args...))
+}
+
+// error terminates processing.
+func (t *Tree) error(err error) {
+	t.errorf("%s", err)
+}
+
+// expect consumes the next token and guarantees it has the required type.
+func (t *Tree) expect(expected itemType, context string) item {
+	token := t.nextNonSpace()
+	if token.typ != expected {
+		t.unexpected(token, context)
+	}
+	return token
+}
+
+// expectOneOf consumes the next token and guarantees it has one of the required types.
+func (t *Tree) expectOneOf(expected1, expected2 itemType, context string) item {
+	token := t.nextNonSpace()
+	if token.typ != expected1 && token.typ != expected2 {
+		t.unexpected(token, context)
+	}
+	return token
+}
+
+// unexpected complains about the token and terminates processing.
+func (t *Tree) unexpected(token item, context string) {
+	if token.typ == itemError {
+		extra := ""
+		if t.actionLine != 0 && t.actionLine != token.line {
+			extra = fmt.Sprintf(" in action started at %s:%d", t.ParseName, t.actionLine)
+			if strings.HasSuffix(token.val, " action") {
+				extra = extra[len(" in action"):] // avoid "action in action"
+			}
+		}
+		t.errorf("%s%s", token, extra)
+	}
+	t.errorf("unexpected %s in %s", token, context)
+}
+
+// recover is the handler that turns panics into returns from the top level of Parse.
+func (t *Tree) recover(errp *error) {
+	e := recover()
+	if e != nil {
+		if _, ok := e.(runtime.Error); ok {
+			panic(e)
+		}
+		if t != nil {
+			t.lex.drain()
+			t.stopParse()
+		}
+		*errp = e.(error)
+	}
+}
+
+// startParse initializes the parser, using the lexer.
+func (t *Tree) startParse(funcs []map[string]interface{}, lex *lexer, treeSet map[string]*Tree) {
+	t.Root = nil
+	t.lex = lex
+	t.vars = []string{"$"}
+	t.funcs = funcs
+	t.treeSet = treeSet
+	lex.breakOK = !t.hasFunction("break")
+	lex.continueOK = !t.hasFunction("continue")
+}
+
+// stopParse terminates parsing.
+func (t *Tree) stopParse() {
+	t.lex = nil
+	t.vars = nil
+	t.funcs = nil
+	t.treeSet = nil
+}
+
+// Parse parses the template definition string to construct a representation of
+// the template for execution. If either action delimiter string is empty, the
+// default ("{{" or "}}") is used. Embedded template definitions are added to
+// the treeSet map.
+func (t *Tree) Parse(text, leftDelim, rightDelim string, treeSet map[string]*Tree, funcs ...map[string]interface{}) (tree *Tree, err error) {
+	defer t.recover(&err)
+	t.ParseName = t.Name
+	emitComment := t.Mode&ParseComments != 0
+	t.startParse(funcs, lex(t.Name, text, leftDelim, rightDelim, emitComment), treeSet)
+	t.text = text
+	t.parse()
+	t.add()
+	t.stopParse()
+	return t, nil
+}
+
+// add adds tree to t.treeSet.
+func (t *Tree) add() {
+	tree := t.treeSet[t.Name]
+	if tree == nil || IsEmptyTree(tree.Root) {
+		t.treeSet[t.Name] = t
+		return
+	}
+	if !IsEmptyTree(t.Root) {
+		t.errorf("template: multiple definition of template %q", t.Name)
+	}
+}
+
+// IsEmptyTree reports whether this tree (node) is empty of everything but space or comments.
+func IsEmptyTree(n Node) bool {
+	switch n := n.(type) {
+	case nil:
+		return true
+	case *ActionNode:
+	case *CommentNode:
+		return true
+	case *IfNode:
+	case *ListNode:
+		for _, node := range n.Nodes {
+			if !IsEmptyTree(node) {
+				return false
+			}
+		}
+		return true
+	case *RangeNode:
+	case *TemplateNode:
+	case *TextNode:
+		return len(bytes.TrimSpace(n.Text)) == 0
+	case *WithNode:
+	default:
+		panic("unknown node: " + n.String())
+	}
+	return false
+}
+
+// parse is the top-level parser for a template, essentially the same
+// as itemList except it also parses {{define}} actions.
+// It runs to EOF.
+func (t *Tree) parse() {
+	t.Root = t.newList(t.peek().pos)
+	for t.peek().typ != itemEOF {
+		if t.peek().typ == itemLeftDelim {
+			delim := t.next()
+			if t.nextNonSpace().typ == itemDefine {
+				newT := New("definition") // name will be updated once we know it.
+				newT.text = t.text
+				newT.Mode = t.Mode
+				newT.ParseName = t.ParseName
+				newT.startParse(t.funcs, t.lex, t.treeSet)
+				newT.parseDefinition()
+				continue
+			}
+			t.backup2(delim)
+		}
+		switch n := t.textOrAction(); n.Type() {
+		case nodeEnd, nodeElse:
+			t.errorf("unexpected %s", n)
+		default:
+			t.Root.append(n)
+		}
+	}
+}
+
+// parseDefinition parses a {{define}} ...  {{end}} template definition and
+// installs the definition in t.treeSet. The "define" keyword has already
+// been scanned.
+func (t *Tree) parseDefinition() {
+	const context = "define clause"
+	name := t.expectOneOf(itemString, itemRawString, context)
+	var err error
+	t.Name, err = strconv.Unquote(name.val)
+	if err != nil {
+		t.error(err)
+	}
+	t.expect(itemRightDelim, context)
+	var end Node
+	t.Root, end = t.itemList()
+	if end.Type() != nodeEnd {
+		t.errorf("unexpected %s in %s", end, context)
+	}
+	t.add()
+	t.stopParse()
+}
+
+// itemList:
+//	textOrAction*
+// Terminates at {{end}} or {{else}}, returned separately.
+func (t *Tree) itemList() (list *ListNode, next Node) {
+	list = t.newList(t.peekNonSpace().pos)
+	for t.peekNonSpace().typ != itemEOF {
+		n := t.textOrAction()
+		switch n.Type() {
+		case nodeEnd, nodeElse:
+			return list, n
+		}
+		list.append(n)
+	}
+	t.errorf("unexpected EOF")
+	return
+}
+
+// textOrAction:
+//	text | comment | action
+func (t *Tree) textOrAction() Node {
+	switch token := t.nextNonSpace(); token.typ {
+	case itemText:
+		return t.newText(token.pos, token.val)
+	case itemLeftDelim:
+		t.actionLine = token.line
+		defer t.clearActionLine()
+		return t.action()
+	case itemComment:
+		return t.newComment(token.pos, token.val)
+	default:
+		t.unexpected(token, "input")
+	}
+	return nil
+}
+
+func (t *Tree) clearActionLine() {
+	t.actionLine = 0
+}
+
+// Action:
+//	control
+//	command ("|" command)*
+// Left delim is past. Now get actions.
+// First word could be a keyword such as range.
+func (t *Tree) action() (n Node) {
+	switch token := t.nextNonSpace(); token.typ {
+	case itemBlock:
+		return t.blockControl()
+	case itemBreak:
+		return t.breakControl(token.pos, token.line)
+	case itemContinue:
+		return t.continueControl(token.pos, token.line)
+	case itemElse:
+		return t.elseControl()
+	case itemEnd:
+		return t.endControl()
+	case itemIf:
+		return t.ifControl()
+	case itemRange:
+		return t.rangeControl()
+	case itemTemplate:
+		return t.templateControl()
+	case itemWith:
+		return t.withControl()
+	}
+	t.backup()
+	token := t.peek()
+	// Do not pop variables; they persist until "end".
+	return t.newAction(token.pos, token.line, t.pipeline("command", itemRightDelim))
+}
+
+// Break:
+//	{{break}}
+// Break keyword is past.
+func (t *Tree) breakControl(pos Pos, line int) Node {
+	if token := t.next(); token.typ != itemRightDelim {
+		t.unexpected(token, "in {{break}}")
+	}
+	if t.rangeDepth == 0 {
+		t.errorf("{{break}} outside {{range}}")
+	}
+	return t.newBreak(pos, line)
+}
+
+// Continue:
+//	{{continue}}
+// Continue keyword is past.
+func (t *Tree) continueControl(pos Pos, line int) Node {
+	if token := t.next(); token.typ != itemRightDelim {
+		t.unexpected(token, "in {{continue}}")
+	}
+	if t.rangeDepth == 0 {
+		t.errorf("{{continue}} outside {{range}}")
+	}
+	return t.newContinue(pos, line)
+}
+
+// Pipeline:
+//	declarations? command ('|' command)*
+func (t *Tree) pipeline(context string, end itemType) (pipe *PipeNode) {
+	token := t.peekNonSpace()
+	pipe = t.newPipeline(token.pos, token.line, nil)
+	// Are there declarations or assignments?
+decls:
+	if v := t.peekNonSpace(); v.typ == itemVariable {
+		t.next()
+		// Since space is a token, we need 3-token look-ahead here in the worst case:
+		// in "$x foo" we need to read "foo" (as opposed to ":=") to know that $x is an
+		// argument variable rather than a declaration. So remember the token
+		// adjacent to the variable so we can push it back if necessary.
+		tokenAfterVariable := t.peek()
+		next := t.peekNonSpace()
+		switch {
+		case next.typ == itemAssign, next.typ == itemDeclare:
+			pipe.IsAssign = next.typ == itemAssign
+			t.nextNonSpace()
+			pipe.Decl = append(pipe.Decl, t.newVariable(v.pos, v.val))
+			t.vars = append(t.vars, v.val)
+		case next.typ == itemChar && next.val == ",":
+			t.nextNonSpace()
+			pipe.Decl = append(pipe.Decl, t.newVariable(v.pos, v.val))
+			t.vars = append(t.vars, v.val)
+			if context == "range" && len(pipe.Decl) < 2 {
+				switch t.peekNonSpace().typ {
+				case itemVariable, itemRightDelim, itemRightParen:
+					// second initialized variable in a range pipeline
+					goto decls
+				default:
+					t.errorf("range can only initialize variables")
+				}
+			}
+			t.errorf("too many declarations in %s", context)
+		case tokenAfterVariable.typ == itemSpace:
+			t.backup3(v, tokenAfterVariable)
+		default:
+			t.backup2(v)
+		}
+	}
+	for {
+		switch token := t.nextNonSpace(); token.typ {
+		case end:
+			// At this point, the pipeline is complete
+			t.checkPipeline(pipe, context)
+			return
+		case itemBool, itemCharConstant, itemComplex, itemDot, itemField, itemIdentifier,
+			itemNumber, itemNil, itemRawString, itemString, itemVariable, itemLeftParen:
+			t.backup()
+			pipe.append(t.command())
+		default:
+			t.unexpected(token, context)
+		}
+	}
+}
+
+func (t *Tree) checkPipeline(pipe *PipeNode, context string) {
+	// Reject empty pipelines
+	if len(pipe.Cmds) == 0 {
+		t.errorf("missing value for %s", context)
+	}
+	// Only the first command of a pipeline can start with a non executable operand
+	for i, c := range pipe.Cmds[1:] {
+		switch c.Args[0].Type() {
+		case NodeBool, NodeDot, NodeNil, NodeNumber, NodeString:
+			// With A|B|C, pipeline stage 2 is B
+			t.errorf("non executable command in pipeline stage %d", i+2)
+		}
+	}
+}
+
+func (t *Tree) parseControl(allowElseIf bool, context string) (pos Pos, line int, pipe *PipeNode, list, elseList *ListNode) {
+	defer t.popVars(len(t.vars))
+	pipe = t.pipeline(context, itemRightDelim)
+	if context == "range" {
+		t.rangeDepth++
+	}
+	var next Node
+	list, next = t.itemList()
+	if context == "range" {
+		t.rangeDepth--
+	}
+	switch next.Type() {
+	case nodeEnd: //done
+	case nodeElse:
+		if allowElseIf {
+			// Special case for "else if". If the "else" is followed immediately by an "if",
+			// the elseControl will have left the "if" token pending. Treat
+			//	{{if a}}_{{else if b}}_{{end}}
+			// as
+			//	{{if a}}_{{else}}{{if b}}_{{end}}{{end}}.
+			// To do this, parse the if as usual and stop at it {{end}}; the subsequent{{end}}
+			// is assumed. This technique works even for long if-else-if chains.
+			// TODO: Should we allow else-if in with and range?
+			if t.peek().typ == itemIf {
+				t.next() // Consume the "if" token.
+				elseList = t.newList(next.Position())
+				elseList.append(t.ifControl())
+				// Do not consume the next item - only one {{end}} required.
+				break
+			}
+		}
+		elseList, next = t.itemList()
+		if next.Type() != nodeEnd {
+			t.errorf("expected end; found %s", next)
+		}
+	}
+	return pipe.Position(), pipe.Line, pipe, list, elseList
+}
+
+// If:
+//	{{if pipeline}} itemList {{end}}
+//	{{if pipeline}} itemList {{else}} itemList {{end}}
+// If keyword is past.
+func (t *Tree) ifControl() Node {
+	return t.newIf(t.parseControl(true, "if"))
+}
+
+// Range:
+//	{{range pipeline}} itemList {{end}}
+//	{{range pipeline}} itemList {{else}} itemList {{end}}
+// Range keyword is past.
+func (t *Tree) rangeControl() Node {
+	r := t.newRange(t.parseControl(false, "range"))
+	return r
+}
+
+// With:
+//	{{with pipeline}} itemList {{end}}
+//	{{with pipeline}} itemList {{else}} itemList {{end}}
+// If keyword is past.
+func (t *Tree) withControl() Node {
+	return t.newWith(t.parseControl(false, "with"))
+}
+
+// End:
+//	{{end}}
+// End keyword is past.
+func (t *Tree) endControl() Node {
+	return t.newEnd(t.expect(itemRightDelim, "end").pos)
+}
+
+// Else:
+//	{{else}}
+// Else keyword is past.
+func (t *Tree) elseControl() Node {
+	// Special case for "else if".
+	peek := t.peekNonSpace()
+	if peek.typ == itemIf {
+		// We see "{{else if ... " but in effect rewrite it to {{else}}{{if ... ".
+		return t.newElse(peek.pos, peek.line)
+	}
+	token := t.expect(itemRightDelim, "else")
+	return t.newElse(token.pos, token.line)
+}
+
+// Block:
+//	{{block stringValue pipeline}}
+// Block keyword is past.
+// The name must be something that can evaluate to a string.
+// The pipeline is mandatory.
+func (t *Tree) blockControl() Node {
+	const context = "block clause"
+
+	token := t.nextNonSpace()
+	name := t.parseTemplateName(token, context)
+	pipe := t.pipeline(context, itemRightDelim)
+
+	block := New(name) // name will be updated once we know it.
+	block.text = t.text
+	block.Mode = t.Mode
+	block.ParseName = t.ParseName
+	block.startParse(t.funcs, t.lex, t.treeSet)
+	var end Node
+	block.Root, end = block.itemList()
+	if end.Type() != nodeEnd {
+		t.errorf("unexpected %s in %s", end, context)
+	}
+	block.add()
+	block.stopParse()
+
+	return t.newTemplate(token.pos, token.line, name, pipe)
+}
+
+// Template:
+//	{{template stringValue pipeline}}
+// Template keyword is past. The name must be something that can evaluate
+// to a string.
+func (t *Tree) templateControl() Node {
+	const context = "template clause"
+	token := t.nextNonSpace()
+	name := t.parseTemplateName(token, context)
+	var pipe *PipeNode
+	if t.nextNonSpace().typ != itemRightDelim {
+		t.backup()
+		// Do not pop variables; they persist until "end".
+		pipe = t.pipeline(context, itemRightDelim)
+	}
+	return t.newTemplate(token.pos, token.line, name, pipe)
+}
+
+func (t *Tree) parseTemplateName(token item, context string) (name string) {
+	switch token.typ {
+	case itemString, itemRawString:
+		s, err := strconv.Unquote(token.val)
+		if err != nil {
+			t.error(err)
+		}
+		name = s
+	default:
+		t.unexpected(token, context)
+	}
+	return
+}
+
+// command:
+//	operand (space operand)*
+// space-separated arguments up to a pipeline character or right delimiter.
+// we consume the pipe character but leave the right delim to terminate the action.
+func (t *Tree) command() *CommandNode {
+	cmd := t.newCommand(t.peekNonSpace().pos)
+	for {
+		t.peekNonSpace() // skip leading spaces.
+		operand := t.operand()
+		if operand != nil {
+			cmd.append(operand)
+		}
+		switch token := t.next(); token.typ {
+		case itemSpace:
+			continue
+		case itemRightDelim, itemRightParen:
+			t.backup()
+		case itemPipe:
+			// nothing here; break loop below
+		default:
+			t.unexpected(token, "operand")
+		}
+		break
+	}
+	if len(cmd.Args) == 0 {
+		t.errorf("empty command")
+	}
+	return cmd
+}
+
+// operand:
+//	term .Field*
+// An operand is a space-separated component of a command,
+// a term possibly followed by field accesses.
+// A nil return means the next item is not an operand.
+func (t *Tree) operand() Node {
+	node := t.term()
+	if node == nil {
+		return nil
+	}
+	if t.peek().typ == itemField {
+		chain := t.newChain(t.peek().pos, node)
+		for t.peek().typ == itemField {
+			chain.Add(t.next().val)
+		}
+		// Compatibility with original API: If the term is of type NodeField
+		// or NodeVariable, just put more fields on the original.
+		// Otherwise, keep the Chain node.
+		// Obvious parsing errors involving literal values are detected here.
+		// More complex error cases will have to be handled at execution time.
+		switch node.Type() {
+		case NodeField:
+			node = t.newField(chain.Position(), chain.String())
+		case NodeVariable:
+			node = t.newVariable(chain.Position(), chain.String())
+		case NodeBool, NodeString, NodeNumber, NodeNil, NodeDot:
+			t.errorf("unexpected . after term %q", node.String())
+		default:
+			node = chain
+		}
+	}
+	return node
+}
+
+// term:
+//	literal (number, string, nil, boolean)
+//	function (identifier)
+//	.
+//	.Field
+//	$
+//	'(' pipeline ')'
+// A term is a simple "expression".
+// A nil return means the next item is not a term.
+func (t *Tree) term() Node {
+	switch token := t.nextNonSpace(); token.typ {
+	case itemIdentifier:
+		checkFunc := t.Mode&SkipFuncCheck == 0
+		if checkFunc && !t.hasFunction(token.val) {
+			t.errorf("function %q not defined", token.val)
+		}
+		return NewIdentifier(token.val).SetTree(t).SetPos(token.pos)
+	case itemDot:
+		return t.newDot(token.pos)
+	case itemNil:
+		return t.newNil(token.pos)
+	case itemVariable:
+		return t.useVar(token.pos, token.val)
+	case itemField:
+		return t.newField(token.pos, token.val)
+	case itemBool:
+		return t.newBool(token.pos, token.val == "true")
+	case itemCharConstant, itemComplex, itemNumber:
+		number, err := t.newNumber(token.pos, token.val, token.typ)
+		if err != nil {
+			t.error(err)
+		}
+		return number
+	case itemLeftParen:
+		return t.pipeline("parenthesized pipeline", itemRightParen)
+	case itemString, itemRawString:
+		s, err := strconv.Unquote(token.val)
+		if err != nil {
+			t.error(err)
+		}
+		return t.newString(token.pos, token.val, s)
+	}
+	t.backup()
+	return nil
+}
+
+// hasFunction reports if a function name exists in the Tree's maps.
+func (t *Tree) hasFunction(name string) bool {
+	for _, funcMap := range t.funcs {
+		if funcMap == nil {
+			continue
+		}
+		if funcMap[name] != nil {
+			return true
+		}
+	}
+	return false
+}
+
+// popVars trims the variable list to the specified length
+func (t *Tree) popVars(n int) {
+	t.vars = t.vars[:n]
+}
+
+// useVar returns a node for a variable reference. It errors if the
+// variable is not defined.
+func (t *Tree) useVar(pos Pos, name string) Node {
+	v := t.newVariable(pos, name)
+	for _, varName := range t.vars {
+		if varName == v.Ident[0] {
+			return v
+		}
+	}
+	t.errorf("undefined variable %q", v.Ident[0])
+	return nil
+}
diff --git a/go.dev/cmd/internal/text/template/parse/parse_test.go b/go.dev/cmd/internal/text/template/parse/parse_test.go
new file mode 100644
index 0000000..c3679a0
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/parse/parse_test.go
@@ -0,0 +1,676 @@
+// Copyright 2011 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 parse
+
+import (
+	"flag"
+	"fmt"
+	"strings"
+	"testing"
+)
+
+var debug = flag.Bool("debug", false, "show the errors produced by the main tests")
+
+type numberTest struct {
+	text      string
+	isInt     bool
+	isUint    bool
+	isFloat   bool
+	isComplex bool
+	int64
+	uint64
+	float64
+	complex128
+}
+
+var numberTests = []numberTest{
+	// basics
+	{"0", true, true, true, false, 0, 0, 0, 0},
+	{"-0", true, true, true, false, 0, 0, 0, 0}, // check that -0 is a uint.
+	{"73", true, true, true, false, 73, 73, 73, 0},
+	{"7_3", true, true, true, false, 73, 73, 73, 0},
+	{"0b10_010_01", true, true, true, false, 73, 73, 73, 0},
+	{"0B10_010_01", true, true, true, false, 73, 73, 73, 0},
+	{"073", true, true, true, false, 073, 073, 073, 0},
+	{"0o73", true, true, true, false, 073, 073, 073, 0},
+	{"0O73", true, true, true, false, 073, 073, 073, 0},
+	{"0x73", true, true, true, false, 0x73, 0x73, 0x73, 0},
+	{"0X73", true, true, true, false, 0x73, 0x73, 0x73, 0},
+	{"0x7_3", true, true, true, false, 0x73, 0x73, 0x73, 0},
+	{"-73", true, false, true, false, -73, 0, -73, 0},
+	{"+73", true, false, true, false, 73, 0, 73, 0},
+	{"100", true, true, true, false, 100, 100, 100, 0},
+	{"1e9", true, true, true, false, 1e9, 1e9, 1e9, 0},
+	{"-1e9", true, false, true, false, -1e9, 0, -1e9, 0},
+	{"-1.2", false, false, true, false, 0, 0, -1.2, 0},
+	{"1e19", false, true, true, false, 0, 1e19, 1e19, 0},
+	{"1e1_9", false, true, true, false, 0, 1e19, 1e19, 0},
+	{"1E19", false, true, true, false, 0, 1e19, 1e19, 0},
+	{"-1e19", false, false, true, false, 0, 0, -1e19, 0},
+	{"0x_1p4", true, true, true, false, 16, 16, 16, 0},
+	{"0X_1P4", true, true, true, false, 16, 16, 16, 0},
+	{"0x_1p-4", false, false, true, false, 0, 0, 1 / 16., 0},
+	{"4i", false, false, false, true, 0, 0, 0, 4i},
+	{"-1.2+4.2i", false, false, false, true, 0, 0, 0, -1.2 + 4.2i},
+	{"073i", false, false, false, true, 0, 0, 0, 73i}, // not octal!
+	// complex with 0 imaginary are float (and maybe integer)
+	{"0i", true, true, true, true, 0, 0, 0, 0},
+	{"-1.2+0i", false, false, true, true, 0, 0, -1.2, -1.2},
+	{"-12+0i", true, false, true, true, -12, 0, -12, -12},
+	{"13+0i", true, true, true, true, 13, 13, 13, 13},
+	// funny bases
+	{"0123", true, true, true, false, 0123, 0123, 0123, 0},
+	{"-0x0", true, true, true, false, 0, 0, 0, 0},
+	{"0xdeadbeef", true, true, true, false, 0xdeadbeef, 0xdeadbeef, 0xdeadbeef, 0},
+	// character constants
+	{`'a'`, true, true, true, false, 'a', 'a', 'a', 0},
+	{`'\n'`, true, true, true, false, '\n', '\n', '\n', 0},
+	{`'\\'`, true, true, true, false, '\\', '\\', '\\', 0},
+	{`'\''`, true, true, true, false, '\'', '\'', '\'', 0},
+	{`'\xFF'`, true, true, true, false, 0xFF, 0xFF, 0xFF, 0},
+	{`'パ'`, true, true, true, false, 0x30d1, 0x30d1, 0x30d1, 0},
+	{`'\u30d1'`, true, true, true, false, 0x30d1, 0x30d1, 0x30d1, 0},
+	{`'\U000030d1'`, true, true, true, false, 0x30d1, 0x30d1, 0x30d1, 0},
+	// some broken syntax
+	{text: "+-2"},
+	{text: "0x123."},
+	{text: "1e."},
+	{text: "0xi."},
+	{text: "1+2."},
+	{text: "'x"},
+	{text: "'xx'"},
+	{text: "'433937734937734969526500969526500'"}, // Integer too large - issue 10634.
+	// Issue 8622 - 0xe parsed as floating point. Very embarrassing.
+	{"0xef", true, true, true, false, 0xef, 0xef, 0xef, 0},
+}
+
+func TestNumberParse(t *testing.T) {
+	for _, test := range numberTests {
+		// If fmt.Sscan thinks it's complex, it's complex. We can't trust the output
+		// because imaginary comes out as a number.
+		var c complex128
+		typ := itemNumber
+		var tree *Tree
+		if test.text[0] == '\'' {
+			typ = itemCharConstant
+		} else {
+			_, err := fmt.Sscan(test.text, &c)
+			if err == nil {
+				typ = itemComplex
+			}
+		}
+		n, err := tree.newNumber(0, test.text, typ)
+		ok := test.isInt || test.isUint || test.isFloat || test.isComplex
+		if ok && err != nil {
+			t.Errorf("unexpected error for %q: %s", test.text, err)
+			continue
+		}
+		if !ok && err == nil {
+			t.Errorf("expected error for %q", test.text)
+			continue
+		}
+		if !ok {
+			if *debug {
+				fmt.Printf("%s\n\t%s\n", test.text, err)
+			}
+			continue
+		}
+		if n.IsComplex != test.isComplex {
+			t.Errorf("complex incorrect for %q; should be %t", test.text, test.isComplex)
+		}
+		if test.isInt {
+			if !n.IsInt {
+				t.Errorf("expected integer for %q", test.text)
+			}
+			if n.Int64 != test.int64 {
+				t.Errorf("int64 for %q should be %d Is %d", test.text, test.int64, n.Int64)
+			}
+		} else if n.IsInt {
+			t.Errorf("did not expect integer for %q", test.text)
+		}
+		if test.isUint {
+			if !n.IsUint {
+				t.Errorf("expected unsigned integer for %q", test.text)
+			}
+			if n.Uint64 != test.uint64 {
+				t.Errorf("uint64 for %q should be %d Is %d", test.text, test.uint64, n.Uint64)
+			}
+		} else if n.IsUint {
+			t.Errorf("did not expect unsigned integer for %q", test.text)
+		}
+		if test.isFloat {
+			if !n.IsFloat {
+				t.Errorf("expected float for %q", test.text)
+			}
+			if n.Float64 != test.float64 {
+				t.Errorf("float64 for %q should be %g Is %g", test.text, test.float64, n.Float64)
+			}
+		} else if n.IsFloat {
+			t.Errorf("did not expect float for %q", test.text)
+		}
+		if test.isComplex {
+			if !n.IsComplex {
+				t.Errorf("expected complex for %q", test.text)
+			}
+			if n.Complex128 != test.complex128 {
+				t.Errorf("complex128 for %q should be %g Is %g", test.text, test.complex128, n.Complex128)
+			}
+		} else if n.IsComplex {
+			t.Errorf("did not expect complex for %q", test.text)
+		}
+	}
+}
+
+type parseTest struct {
+	name   string
+	input  string
+	ok     bool
+	result string // what the user would see in an error message.
+}
+
+const (
+	noError  = true
+	hasError = false
+)
+
+var parseTests = []parseTest{
+	{"empty", "", noError,
+		``},
+	{"comment", "{{/*\n\n\n*/}}", noError,
+		``},
+	{"spaces", " \t\n", noError,
+		`" \t\n"`},
+	{"text", "some text", noError,
+		`"some text"`},
+	{"emptyAction", "{{}}", hasError,
+		`{{}}`},
+	{"field", "{{.X}}", noError,
+		`{{.X}}`},
+	{"simple command", "{{printf}}", noError,
+		`{{printf}}`},
+	{"$ invocation", "{{$}}", noError,
+		"{{$}}"},
+	{"variable invocation", "{{with $x := 3}}{{$x 23}}{{end}}", noError,
+		"{{with $x := 3}}{{$x 23}}{{end}}"},
+	{"variable with fields", "{{$.I}}", noError,
+		"{{$.I}}"},
+	{"multi-word command", "{{printf `%d` 23}}", noError,
+		"{{printf `%d` 23}}"},
+	{"pipeline", "{{.X|.Y}}", noError,
+		`{{.X | .Y}}`},
+	{"pipeline with decl", "{{$x := .X|.Y}}", noError,
+		`{{$x := .X | .Y}}`},
+	{"nested pipeline", "{{.X (.Y .Z) (.A | .B .C) (.E)}}", noError,
+		`{{.X (.Y .Z) (.A | .B .C) (.E)}}`},
+	{"field applied to parentheses", "{{(.Y .Z).Field}}", noError,
+		`{{(.Y .Z).Field}}`},
+	{"simple if", "{{if .X}}hello{{end}}", noError,
+		`{{if .X}}"hello"{{end}}`},
+	{"if with else", "{{if .X}}true{{else}}false{{end}}", noError,
+		`{{if .X}}"true"{{else}}"false"{{end}}`},
+	{"if with else if", "{{if .X}}true{{else if .Y}}false{{end}}", noError,
+		`{{if .X}}"true"{{else}}{{if .Y}}"false"{{end}}{{end}}`},
+	{"if else chain", "+{{if .X}}X{{else if .Y}}Y{{else if .Z}}Z{{end}}+", noError,
+		`"+"{{if .X}}"X"{{else}}{{if .Y}}"Y"{{else}}{{if .Z}}"Z"{{end}}{{end}}{{end}}"+"`},
+	{"simple range", "{{range .X}}hello{{end}}", noError,
+		`{{range .X}}"hello"{{end}}`},
+	{"chained field range", "{{range .X.Y.Z}}hello{{end}}", noError,
+		`{{range .X.Y.Z}}"hello"{{end}}`},
+	{"nested range", "{{range .X}}hello{{range .Y}}goodbye{{end}}{{end}}", noError,
+		`{{range .X}}"hello"{{range .Y}}"goodbye"{{end}}{{end}}`},
+	{"range with else", "{{range .X}}true{{else}}false{{end}}", noError,
+		`{{range .X}}"true"{{else}}"false"{{end}}`},
+	{"range over pipeline", "{{range .X|.M}}true{{else}}false{{end}}", noError,
+		`{{range .X | .M}}"true"{{else}}"false"{{end}}`},
+	{"range []int", "{{range .SI}}{{.}}{{end}}", noError,
+		`{{range .SI}}{{.}}{{end}}`},
+	{"range 1 var", "{{range $x := .SI}}{{.}}{{end}}", noError,
+		`{{range $x := .SI}}{{.}}{{end}}`},
+	{"range 2 vars", "{{range $x, $y := .SI}}{{.}}{{end}}", noError,
+		`{{range $x, $y := .SI}}{{.}}{{end}}`},
+	{"range with break", "{{range .SI}}{{.}}{{break}}{{end}}", noError,
+		`{{range .SI}}{{.}}{{break}}{{end}}`},
+	{"range with continue", "{{range .SI}}{{.}}{{continue}}{{end}}", noError,
+		`{{range .SI}}{{.}}{{continue}}{{end}}`},
+	{"constants", "{{range .SI 1 -3.2i true false 'a' nil}}{{end}}", noError,
+		`{{range .SI 1 -3.2i true false 'a' nil}}{{end}}`},
+	{"template", "{{template `x`}}", noError,
+		`{{template "x"}}`},
+	{"template with arg", "{{template `x` .Y}}", noError,
+		`{{template "x" .Y}}`},
+	{"with", "{{with .X}}hello{{end}}", noError,
+		`{{with .X}}"hello"{{end}}`},
+	{"with with else", "{{with .X}}hello{{else}}goodbye{{end}}", noError,
+		`{{with .X}}"hello"{{else}}"goodbye"{{end}}`},
+	// Trimming spaces.
+	{"trim left", "x \r\n\t{{- 3}}", noError, `"x"{{3}}`},
+	{"trim right", "{{3 -}}\n\n\ty", noError, `{{3}}"y"`},
+	{"trim left and right", "x \r\n\t{{- 3 -}}\n\n\ty", noError, `"x"{{3}}"y"`},
+	{"trim with extra spaces", "x\n{{-  3   -}}\ny", noError, `"x"{{3}}"y"`},
+	{"comment trim left", "x \r\n\t{{- /* hi */}}", noError, `"x"`},
+	{"comment trim right", "{{/* hi */ -}}\n\n\ty", noError, `"y"`},
+	{"comment trim left and right", "x \r\n\t{{- /* */ -}}\n\n\ty", noError, `"x""y"`},
+	{"block definition", `{{block "foo" .}}hello{{end}}`, noError,
+		`{{template "foo" .}}`},
+
+	{"newline in assignment", "{{ $x \n := \n 1 \n }}", noError, "{{$x := 1}}"},
+	{"newline in empty action", "{{\n}}", hasError, "{{\n}}"},
+	{"newline in pipeline", "{{\n\"x\"\n|\nprintf\n}}", noError, `{{"x" | printf}}`},
+	{"newline in comment", "{{/*\nhello\n*/}}", noError, ""},
+	{"newline in comment", "{{-\n/*\nhello\n*/\n-}}", noError, ""},
+
+	// Errors.
+	{"unclosed action", "hello{{range", hasError, ""},
+	{"unmatched end", "{{end}}", hasError, ""},
+	{"unmatched else", "{{else}}", hasError, ""},
+	{"unmatched else after if", "{{if .X}}hello{{end}}{{else}}", hasError, ""},
+	{"multiple else", "{{if .X}}1{{else}}2{{else}}3{{end}}", hasError, ""},
+	{"missing end", "hello{{range .x}}", hasError, ""},
+	{"missing end after else", "hello{{range .x}}{{else}}", hasError, ""},
+	{"undefined function", "hello{{undefined}}", hasError, ""},
+	{"undefined variable", "{{$x}}", hasError, ""},
+	{"variable undefined after end", "{{with $x := 4}}{{end}}{{$x}}", hasError, ""},
+	{"variable undefined in template", "{{template $v}}", hasError, ""},
+	{"declare with field", "{{with $x.Y := 4}}{{end}}", hasError, ""},
+	{"template with field ref", "{{template .X}}", hasError, ""},
+	{"template with var", "{{template $v}}", hasError, ""},
+	{"invalid punctuation", "{{printf 3, 4}}", hasError, ""},
+	{"multidecl outside range", "{{with $v, $u := 3}}{{end}}", hasError, ""},
+	{"too many decls in range", "{{range $u, $v, $w := 3}}{{end}}", hasError, ""},
+	{"dot applied to parentheses", "{{printf (printf .).}}", hasError, ""},
+	{"adjacent args", "{{printf 3`x`}}", hasError, ""},
+	{"adjacent args with .", "{{printf `x`.}}", hasError, ""},
+	{"extra end after if", "{{if .X}}a{{else if .Y}}b{{end}}{{end}}", hasError, ""},
+	{"break outside range", "{{range .}}{{end}} {{break}}", hasError, ""},
+	{"continue outside range", "{{range .}}{{end}} {{continue}}", hasError, ""},
+	{"break in range else", "{{range .}}{{else}}{{break}}{{end}}", hasError, ""},
+	{"continue in range else", "{{range .}}{{else}}{{continue}}{{end}}", hasError, ""},
+	// Other kinds of assignments and operators aren't available yet.
+	{"bug0a", "{{$x := 0}}{{$x}}", noError, "{{$x := 0}}{{$x}}"},
+	{"bug0b", "{{$x += 1}}{{$x}}", hasError, ""},
+	{"bug0c", "{{$x ! 2}}{{$x}}", hasError, ""},
+	{"bug0d", "{{$x % 3}}{{$x}}", hasError, ""},
+	// Check the parse fails for := rather than comma.
+	{"bug0e", "{{range $x := $y := 3}}{{end}}", hasError, ""},
+	// Another bug: variable read must ignore following punctuation.
+	{"bug1a", "{{$x:=.}}{{$x!2}}", hasError, ""},                     // ! is just illegal here.
+	{"bug1b", "{{$x:=.}}{{$x+2}}", hasError, ""},                     // $x+2 should not parse as ($x) (+2).
+	{"bug1c", "{{$x:=.}}{{$x +2}}", noError, "{{$x := .}}{{$x +2}}"}, // It's OK with a space.
+	// dot following a literal value
+	{"dot after integer", "{{1.E}}", hasError, ""},
+	{"dot after float", "{{0.1.E}}", hasError, ""},
+	{"dot after boolean", "{{true.E}}", hasError, ""},
+	{"dot after char", "{{'a'.any}}", hasError, ""},
+	{"dot after string", `{{"hello".guys}}`, hasError, ""},
+	{"dot after dot", "{{..E}}", hasError, ""},
+	{"dot after nil", "{{nil.E}}", hasError, ""},
+	// Wrong pipeline
+	{"wrong pipeline dot", "{{12|.}}", hasError, ""},
+	{"wrong pipeline number", "{{.|12|printf}}", hasError, ""},
+	{"wrong pipeline string", "{{.|printf|\"error\"}}", hasError, ""},
+	{"wrong pipeline char", "{{12|printf|'e'}}", hasError, ""},
+	{"wrong pipeline boolean", "{{.|true}}", hasError, ""},
+	{"wrong pipeline nil", "{{'c'|nil}}", hasError, ""},
+	{"empty pipeline", `{{printf "%d" ( ) }}`, hasError, ""},
+	// Missing pipeline in block
+	{"block definition", `{{block "foo"}}hello{{end}}`, hasError, ""},
+}
+
+var builtins = map[string]interface{}{
+	"printf":   fmt.Sprintf,
+	"contains": strings.Contains,
+}
+
+func testParse(doCopy bool, t *testing.T) {
+	textFormat = "%q"
+	defer func() { textFormat = "%s" }()
+	for _, test := range parseTests {
+		tmpl, err := New(test.name).Parse(test.input, "", "", make(map[string]*Tree), builtins)
+		switch {
+		case err == nil && !test.ok:
+			t.Errorf("%q: expected error; got none", test.name)
+			continue
+		case err != nil && test.ok:
+			t.Errorf("%q: unexpected error: %v", test.name, err)
+			continue
+		case err != nil && !test.ok:
+			// expected error, got one
+			if *debug {
+				fmt.Printf("%s: %s\n\t%s\n", test.name, test.input, err)
+			}
+			continue
+		}
+		var result string
+		if doCopy {
+			result = tmpl.Root.Copy().String()
+		} else {
+			result = tmpl.Root.String()
+		}
+		if result != test.result {
+			t.Errorf("%s=(%q): got\n\t%v\nexpected\n\t%v", test.name, test.input, result, test.result)
+		}
+	}
+}
+
+func TestParse(t *testing.T) {
+	testParse(false, t)
+}
+
+// Same as TestParse, but we copy the node first
+func TestParseCopy(t *testing.T) {
+	testParse(true, t)
+}
+
+func TestParseWithComments(t *testing.T) {
+	textFormat = "%q"
+	defer func() { textFormat = "%s" }()
+	tests := [...]parseTest{
+		{"comment", "{{/*\n\n\n*/}}", noError, "{{/*\n\n\n*/}}"},
+		{"comment trim left", "x \r\n\t{{- /* hi */}}", noError, `"x"{{/* hi */}}`},
+		{"comment trim right", "{{/* hi */ -}}\n\n\ty", noError, `{{/* hi */}}"y"`},
+		{"comment trim left and right", "x \r\n\t{{- /* */ -}}\n\n\ty", noError, `"x"{{/* */}}"y"`},
+	}
+	for _, test := range tests {
+		t.Run(test.name, func(t *testing.T) {
+			tr := New(test.name)
+			tr.Mode = ParseComments
+			tmpl, err := tr.Parse(test.input, "", "", make(map[string]*Tree))
+			if err != nil {
+				t.Errorf("%q: expected error; got none", test.name)
+			}
+			if result := tmpl.Root.String(); result != test.result {
+				t.Errorf("%s=(%q): got\n\t%v\nexpected\n\t%v", test.name, test.input, result, test.result)
+			}
+		})
+	}
+}
+
+func TestSkipFuncCheck(t *testing.T) {
+	oldTextFormat := textFormat
+	textFormat = "%q"
+	defer func() { textFormat = oldTextFormat }()
+	tr := New("skip func check")
+	tr.Mode = SkipFuncCheck
+	tmpl, err := tr.Parse("{{fn 1 2}}", "", "", make(map[string]*Tree))
+	if err != nil {
+		t.Fatalf("unexpected error: %v", err)
+	}
+	expected := "{{fn 1 2}}"
+	if result := tmpl.Root.String(); result != expected {
+		t.Errorf("got\n\t%v\nexpected\n\t%v", result, expected)
+	}
+}
+
+type isEmptyTest struct {
+	name  string
+	input string
+	empty bool
+}
+
+var isEmptyTests = []isEmptyTest{
+	{"empty", ``, true},
+	{"nonempty", `hello`, false},
+	{"spaces only", " \t\n \t\n", true},
+	{"comment only", "{{/* comment */}}", true},
+	{"definition", `{{define "x"}}something{{end}}`, true},
+	{"definitions and space", "{{define `x`}}something{{end}}\n\n{{define `y`}}something{{end}}\n\n", true},
+	{"definitions and text", "{{define `x`}}something{{end}}\nx\n{{define `y`}}something{{end}}\ny\n", false},
+	{"definition and action", "{{define `x`}}something{{end}}{{if 3}}foo{{end}}", false},
+}
+
+func TestIsEmpty(t *testing.T) {
+	if !IsEmptyTree(nil) {
+		t.Errorf("nil tree is not empty")
+	}
+	for _, test := range isEmptyTests {
+		tree, err := New("root").Parse(test.input, "", "", make(map[string]*Tree), nil)
+		if err != nil {
+			t.Errorf("%q: unexpected error: %v", test.name, err)
+			continue
+		}
+		if empty := IsEmptyTree(tree.Root); empty != test.empty {
+			t.Errorf("%q: expected %t got %t", test.name, test.empty, empty)
+		}
+	}
+}
+
+func TestErrorContextWithTreeCopy(t *testing.T) {
+	tree, err := New("root").Parse("{{if true}}{{end}}", "", "", make(map[string]*Tree), nil)
+	if err != nil {
+		t.Fatalf("unexpected tree parse failure: %v", err)
+	}
+	treeCopy := tree.Copy()
+	wantLocation, wantContext := tree.ErrorContext(tree.Root.Nodes[0])
+	gotLocation, gotContext := treeCopy.ErrorContext(treeCopy.Root.Nodes[0])
+	if wantLocation != gotLocation {
+		t.Errorf("wrong error location want %q got %q", wantLocation, gotLocation)
+	}
+	if wantContext != gotContext {
+		t.Errorf("wrong error location want %q got %q", wantContext, gotContext)
+	}
+}
+
+// All failures, and the result is a string that must appear in the error message.
+var errorTests = []parseTest{
+	// Check line numbers are accurate.
+	{"unclosed1",
+		"line1\n{{",
+		hasError, `unclosed1:2: unclosed action`},
+	{"unclosed2",
+		"line1\n{{define `x`}}line2\n{{",
+		hasError, `unclosed2:3: unclosed action`},
+	{"unclosed3",
+		"line1\n{{\"x\"\n\"y\"\n",
+		hasError, `unclosed3:4: unclosed action started at unclosed3:2`},
+	{"unclosed4",
+		"{{\n\n\n\n\n",
+		hasError, `unclosed4:6: unclosed action started at unclosed4:1`},
+	{"var1",
+		"line1\n{{\nx\n}}",
+		hasError, `var1:3: function "x" not defined`},
+	// Specific errors.
+	{"function",
+		"{{foo}}",
+		hasError, `function "foo" not defined`},
+	{"comment1",
+		"{{/*}}",
+		hasError, `comment1:1: unclosed comment`},
+	{"comment2",
+		"{{/*\nhello\n}}",
+		hasError, `comment2:1: unclosed comment`},
+	{"lparen",
+		"{{.X (1 2 3}}",
+		hasError, `unclosed left paren`},
+	{"rparen",
+		"{{.X 1 2 3 ) }}",
+		hasError, `unexpected ")" in command`},
+	{"rparen2",
+		"{{(.X 1 2 3",
+		hasError, `unclosed action`},
+	{"space",
+		"{{`x`3}}",
+		hasError, `in operand`},
+	{"idchar",
+		"{{a#}}",
+		hasError, `'#'`},
+	{"charconst",
+		"{{'a}}",
+		hasError, `unterminated character constant`},
+	{"stringconst",
+		`{{"a}}`,
+		hasError, `unterminated quoted string`},
+	{"rawstringconst",
+		"{{`a}}",
+		hasError, `unterminated raw quoted string`},
+	{"number",
+		"{{0xi}}",
+		hasError, `number syntax`},
+	{"multidefine",
+		"{{define `a`}}a{{end}}{{define `a`}}b{{end}}",
+		hasError, `multiple definition of template`},
+	{"eof",
+		"{{range .X}}",
+		hasError, `unexpected EOF`},
+	{"variable",
+		// Declare $x so it's defined, to avoid that error, and then check we don't parse a declaration.
+		"{{$x := 23}}{{with $x.y := 3}}{{$x 23}}{{end}}",
+		hasError, `unexpected ":="`},
+	{"multidecl",
+		"{{$a,$b,$c := 23}}",
+		hasError, `too many declarations`},
+	{"undefvar",
+		"{{$a}}",
+		hasError, `undefined variable`},
+	{"wrongdot",
+		"{{true.any}}",
+		hasError, `unexpected . after term`},
+	{"wrongpipeline",
+		"{{12|false}}",
+		hasError, `non executable command in pipeline`},
+	{"emptypipeline",
+		`{{ ( ) }}`,
+		hasError, `missing value for parenthesized pipeline`},
+	{"multilinerawstring",
+		"{{ $v := `\n` }} {{",
+		hasError, `multilinerawstring:2: unclosed action`},
+	{"rangeundefvar",
+		"{{range $k}}{{end}}",
+		hasError, `undefined variable`},
+	{"rangeundefvars",
+		"{{range $k, $v}}{{end}}",
+		hasError, `undefined variable`},
+	{"rangemissingvalue1",
+		"{{range $k,}}{{end}}",
+		hasError, `missing value for range`},
+	{"rangemissingvalue2",
+		"{{range $k, $v := }}{{end}}",
+		hasError, `missing value for range`},
+	{"rangenotvariable1",
+		"{{range $k, .}}{{end}}",
+		hasError, `range can only initialize variables`},
+	{"rangenotvariable2",
+		"{{range $k, 123 := .}}{{end}}",
+		hasError, `range can only initialize variables`},
+}
+
+func TestErrors(t *testing.T) {
+	for _, test := range errorTests {
+		t.Run(test.name, func(t *testing.T) {
+			_, err := New(test.name).Parse(test.input, "", "", make(map[string]*Tree))
+			if err == nil {
+				t.Fatalf("expected error %q, got nil", test.result)
+			}
+			if !strings.Contains(err.Error(), test.result) {
+				t.Fatalf("error %q does not contain %q", err, test.result)
+			}
+		})
+	}
+}
+
+func TestBlock(t *testing.T) {
+	const (
+		input = `a{{block "inner" .}}bar{{.}}baz{{end}}b`
+		outer = `a{{template "inner" .}}b`
+		inner = `bar{{.}}baz`
+	)
+	treeSet := make(map[string]*Tree)
+	tmpl, err := New("outer").Parse(input, "", "", treeSet, nil)
+	if err != nil {
+		t.Fatal(err)
+	}
+	if g, w := tmpl.Root.String(), outer; g != w {
+		t.Errorf("outer template = %q, want %q", g, w)
+	}
+	inTmpl := treeSet["inner"]
+	if inTmpl == nil {
+		t.Fatal("block did not define template")
+	}
+	if g, w := inTmpl.Root.String(), inner; g != w {
+		t.Errorf("inner template = %q, want %q", g, w)
+	}
+}
+
+func TestLineNum(t *testing.T) {
+	const count = 100
+	text := strings.Repeat("{{printf 1234}}\n", count)
+	tree, err := New("bench").Parse(text, "", "", make(map[string]*Tree), builtins)
+	if err != nil {
+		t.Fatal(err)
+	}
+	// Check the line numbers. Each line is an action containing a template, followed by text.
+	// That's two nodes per line.
+	nodes := tree.Root.Nodes
+	for i := 0; i < len(nodes); i += 2 {
+		line := 1 + i/2
+		// Action first.
+		action := nodes[i].(*ActionNode)
+		if action.Line != line {
+			t.Fatalf("line %d: action is line %d", line, action.Line)
+		}
+		pipe := action.Pipe
+		if pipe.Line != line {
+			t.Fatalf("line %d: pipe is line %d", line, pipe.Line)
+		}
+	}
+}
+
+func BenchmarkParseLarge(b *testing.B) {
+	text := strings.Repeat("{{1234}}\n", 10000)
+	for i := 0; i < b.N; i++ {
+		_, err := New("bench").Parse(text, "", "", make(map[string]*Tree), builtins)
+		if err != nil {
+			b.Fatal(err)
+		}
+	}
+}
+
+var sinkv, sinkl string
+
+func BenchmarkVariableString(b *testing.B) {
+	v := &VariableNode{
+		Ident: []string{"$", "A", "BB", "CCC", "THIS_IS_THE_VARIABLE_BEING_PROCESSED"},
+	}
+	b.ResetTimer()
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		sinkv = v.String()
+	}
+	if sinkv == "" {
+		b.Fatal("Benchmark was not run")
+	}
+}
+
+func BenchmarkListString(b *testing.B) {
+	text := `
+{{(printf .Field1.Field2.Field3).Value}}
+{{$x := (printf .Field1.Field2.Field3).Value}}
+{{$y := (printf $x.Field1.Field2.Field3).Value}}
+{{$z := $y.Field1.Field2.Field3}}
+{{if contains $y $z}}
+	{{printf "%q" $y}}
+{{else}}
+	{{printf "%q" $x}}
+{{end}}
+{{with $z.Field1 | contains "boring"}}
+	{{printf "%q" . | printf "%s"}}
+{{else}}
+	{{printf "%d %d %d" 11 11 11}}
+	{{printf "%d %d %s" 22 22 $x.Field1.Field2.Field3 | printf "%s"}}
+	{{printf "%v" (contains $z.Field1.Field2 $y)}}
+{{end}}
+`
+	tree, err := New("bench").Parse(text, "", "", make(map[string]*Tree), builtins)
+	if err != nil {
+		b.Fatal(err)
+	}
+	b.ResetTimer()
+	b.ReportAllocs()
+	for i := 0; i < b.N; i++ {
+		sinkl = tree.Root.String()
+	}
+	if sinkl == "" {
+		b.Fatal("Benchmark was not run")
+	}
+}
diff --git a/go.dev/cmd/internal/text/template/template.go b/go.dev/cmd/internal/text/template/template.go
new file mode 100644
index 0000000..877674e
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/template.go
@@ -0,0 +1,239 @@
+// Copyright 2011 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 template
+
+import (
+	"reflect"
+	"sync"
+
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+)
+
+// common holds the information shared by related templates.
+type common struct {
+	tmpl   map[string]*Template // Map from name to defined templates.
+	muTmpl sync.RWMutex         // protects tmpl
+	option option
+	// We use two maps, one for parsing and one for execution.
+	// This separation makes the API cleaner since it doesn't
+	// expose reflection to the client.
+	muFuncs    sync.RWMutex // protects parseFuncs and execFuncs
+	parseFuncs FuncMap
+	execFuncs  map[string]reflect.Value
+}
+
+// Template is the representation of a parsed template. The *parse.Tree
+// field is exported only for use by html/template and should be treated
+// as unexported by all other clients.
+type Template struct {
+	name string
+	*parse.Tree
+	*common
+	leftDelim  string
+	rightDelim string
+}
+
+// New allocates a new, undefined template with the given name.
+func New(name string) *Template {
+	t := &Template{
+		name: name,
+	}
+	t.init()
+	return t
+}
+
+// Name returns the name of the template.
+func (t *Template) Name() string {
+	return t.name
+}
+
+// New allocates a new, undefined template associated with the given one and with the same
+// delimiters. The association, which is transitive, allows one template to
+// invoke another with a {{template}} action.
+//
+// Because associated templates share underlying data, template construction
+// cannot be done safely in parallel. Once the templates are constructed, they
+// can be executed in parallel.
+func (t *Template) New(name string) *Template {
+	t.init()
+	nt := &Template{
+		name:       name,
+		common:     t.common,
+		leftDelim:  t.leftDelim,
+		rightDelim: t.rightDelim,
+	}
+	return nt
+}
+
+// init guarantees that t has a valid common structure.
+func (t *Template) init() {
+	if t.common == nil {
+		c := new(common)
+		c.tmpl = make(map[string]*Template)
+		c.parseFuncs = make(FuncMap)
+		c.execFuncs = make(map[string]reflect.Value)
+		t.common = c
+	}
+}
+
+// Clone returns a duplicate of the template, including all associated
+// templates. The actual representation is not copied, but the name space of
+// associated templates is, so further calls to Parse in the copy will add
+// templates to the copy but not to the original. Clone can be used to prepare
+// common templates and use them with variant definitions for other templates
+// by adding the variants after the clone is made.
+func (t *Template) Clone() (*Template, error) {
+	nt := t.copy(nil)
+	nt.init()
+	if t.common == nil {
+		return nt, nil
+	}
+	t.muTmpl.RLock()
+	defer t.muTmpl.RUnlock()
+	for k, v := range t.tmpl {
+		if k == t.name {
+			nt.tmpl[t.name] = nt
+			continue
+		}
+		// The associated templates share nt's common structure.
+		tmpl := v.copy(nt.common)
+		nt.tmpl[k] = tmpl
+	}
+	t.muFuncs.RLock()
+	defer t.muFuncs.RUnlock()
+	for k, v := range t.parseFuncs {
+		nt.parseFuncs[k] = v
+	}
+	for k, v := range t.execFuncs {
+		nt.execFuncs[k] = v
+	}
+	return nt, nil
+}
+
+// copy returns a shallow copy of t, with common set to the argument.
+func (t *Template) copy(c *common) *Template {
+	return &Template{
+		name:       t.name,
+		Tree:       t.Tree,
+		common:     c,
+		leftDelim:  t.leftDelim,
+		rightDelim: t.rightDelim,
+	}
+}
+
+// AddParseTree associates the argument parse tree with the template t, giving
+// it the specified name. If the template has not been defined, this tree becomes
+// its definition. If it has been defined and already has that name, the existing
+// definition is replaced; otherwise a new template is created, defined, and returned.
+func (t *Template) AddParseTree(name string, tree *parse.Tree) (*Template, error) {
+	t.muTmpl.Lock()
+	defer t.muTmpl.Unlock()
+	t.init()
+	nt := t
+	if name != t.name {
+		nt = t.New(name)
+	}
+	// Even if nt == t, we need to install it in the common.tmpl map.
+	if t.associate(nt, tree) || nt.Tree == nil {
+		nt.Tree = tree
+	}
+	return nt, nil
+}
+
+// Templates returns a slice of defined templates associated with t.
+func (t *Template) Templates() []*Template {
+	if t.common == nil {
+		return nil
+	}
+	// Return a slice so we don't expose the map.
+	t.muTmpl.RLock()
+	defer t.muTmpl.RUnlock()
+	m := make([]*Template, 0, len(t.tmpl))
+	for _, v := range t.tmpl {
+		m = append(m, v)
+	}
+	return m
+}
+
+// Delims sets the action delimiters to the specified strings, to be used in
+// subsequent calls to Parse, ParseFiles, or ParseGlob. Nested template
+// definitions will inherit the settings. An empty delimiter stands for the
+// corresponding default: {{ or }}.
+// The return value is the template, so calls can be chained.
+func (t *Template) Delims(left, right string) *Template {
+	t.init()
+	t.leftDelim = left
+	t.rightDelim = right
+	return t
+}
+
+// Funcs adds the elements of the argument map to the template's function map.
+// It must be called before the template is parsed.
+// It panics if a value in the map is not a function with appropriate return
+// type or if the name cannot be used syntactically as a function in a template.
+// It is legal to overwrite elements of the map. The return value is the template,
+// so calls can be chained.
+func (t *Template) Funcs(funcMap FuncMap) *Template {
+	t.init()
+	t.muFuncs.Lock()
+	defer t.muFuncs.Unlock()
+	addValueFuncs(t.execFuncs, funcMap)
+	addFuncs(t.parseFuncs, funcMap)
+	return t
+}
+
+// Lookup returns the template with the given name that is associated with t.
+// It returns nil if there is no such template or the template has no definition.
+func (t *Template) Lookup(name string) *Template {
+	if t.common == nil {
+		return nil
+	}
+	t.muTmpl.RLock()
+	defer t.muTmpl.RUnlock()
+	return t.tmpl[name]
+}
+
+// Parse parses text as a template body for t.
+// Named template definitions ({{define ...}} or {{block ...}} statements) in text
+// define additional templates associated with t and are removed from the
+// definition of t itself.
+//
+// Templates can be redefined in successive calls to Parse.
+// A template definition with a body containing only white space and comments
+// is considered empty and will not replace an existing template's body.
+// This allows using Parse to add new named template definitions without
+// overwriting the main template body.
+func (t *Template) Parse(text string) (*Template, error) {
+	t.init()
+	t.muFuncs.RLock()
+	trees, err := parse.Parse(t.name, text, t.leftDelim, t.rightDelim, t.parseFuncs, builtins())
+	t.muFuncs.RUnlock()
+	if err != nil {
+		return nil, err
+	}
+	// Add the newly parsed trees, including the one for t, into our common structure.
+	for name, tree := range trees {
+		if _, err := t.AddParseTree(name, tree); err != nil {
+			return nil, err
+		}
+	}
+	return t, nil
+}
+
+// associate installs the new template into the group of templates associated
+// with t. The two are already known to share the common structure.
+// The boolean return value reports whether to store this tree as t.Tree.
+func (t *Template) associate(new *Template, tree *parse.Tree) bool {
+	if new.common != t.common {
+		panic("internal error: associate not common")
+	}
+	if old := t.tmpl[new.name]; old != nil && parse.IsEmptyTree(tree.Root) && old.Tree != nil {
+		// If a template by that name exists,
+		// don't replace it with an empty template.
+		return false
+	}
+	t.tmpl[new.name] = new
+	return true
+}
diff --git a/go.dev/cmd/internal/text/template/testdata/file1.tmpl b/go.dev/cmd/internal/text/template/testdata/file1.tmpl
new file mode 100644
index 0000000..febf9d9
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/testdata/file1.tmpl
@@ -0,0 +1,2 @@
+{{define "x"}}TEXT{{end}}
+{{define "dotV"}}{{.V}}{{end}}
diff --git a/go.dev/cmd/internal/text/template/testdata/file2.tmpl b/go.dev/cmd/internal/text/template/testdata/file2.tmpl
new file mode 100644
index 0000000..39bf6fb
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/testdata/file2.tmpl
@@ -0,0 +1,2 @@
+{{define "dot"}}{{.}}{{end}}
+{{define "nested"}}{{template "dot" .}}{{end}}
diff --git a/go.dev/cmd/internal/text/template/testdata/tmpl1.tmpl b/go.dev/cmd/internal/text/template/testdata/tmpl1.tmpl
new file mode 100644
index 0000000..b72b3a3
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/testdata/tmpl1.tmpl
@@ -0,0 +1,3 @@
+template1
+{{define "x"}}x{{end}}
+{{template "y"}}
diff --git a/go.dev/cmd/internal/text/template/testdata/tmpl2.tmpl b/go.dev/cmd/internal/text/template/testdata/tmpl2.tmpl
new file mode 100644
index 0000000..16beba6
--- /dev/null
+++ b/go.dev/cmd/internal/text/template/testdata/tmpl2.tmpl
@@ -0,0 +1,3 @@
+template2
+{{define "y"}}y{{end}}
+{{template "x"}}
diff --git a/go.dev/cmd/internal/tmplfunc/func.go b/go.dev/cmd/internal/tmplfunc/func.go
new file mode 100644
index 0000000..92b62be
--- /dev/null
+++ b/go.dev/cmd/internal/tmplfunc/func.go
@@ -0,0 +1,202 @@
+// 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 tmplfunc
+
+import (
+	"bytes"
+	"fmt"
+	"reflect"
+	"regexp"
+	"strings"
+
+	"golang.org/x/go.dev/cmd/internal/text/template/parse"
+
+	htmltemplate "golang.org/x/go.dev/cmd/internal/html/template"
+	texttemplate "golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+var validNameRE = regexp.MustCompile(`\A[_\pL][_\pL\p{Nd}]*\z`)
+var validArgNameRE = regexp.MustCompile(`\A[_\pL][_\pL\p{Nd}]*(\.\.\.|\?)?\z`)
+
+func funcs(t Template, names, texts []string) error {
+	var leftDelim, rightDelim string
+	switch t := t.(type) {
+	case nil:
+		return fmt.Errorf("tmplfunc: nil Template")
+	default:
+		return fmt.Errorf("tmplfunc: non-template type %T", t)
+	case *texttemplate.Template:
+		leftDelim = reflect.ValueOf(t).Elem().FieldByName("leftDelim").String()
+		rightDelim = reflect.ValueOf(t).Elem().FieldByName("rightDelim").String()
+	case *htmltemplate.Template:
+		leftDelim = reflect.ValueOf(t).Elem().FieldByName("text").Elem().FieldByName("leftDelim").String()
+		rightDelim = reflect.ValueOf(t).Elem().FieldByName("text").Elem().FieldByName("rightDelim").String()
+	}
+
+	trees := make(map[string]*parse.Tree)
+	for i, text := range texts {
+		t := parse.New(names[i], nil)
+		t.Mode = parse.SkipFuncCheck
+		_, err := t.Parse(text, leftDelim, rightDelim, trees)
+		if err != nil {
+			return err
+		}
+	}
+
+	// Install functions for named templates as appropriate.
+	funcs := make(map[string]interface{})
+	for name := range trees {
+		if err := addFunc(t, name, funcs); err != nil {
+			return err
+		}
+	}
+
+	switch t := t.(type) {
+	case *texttemplate.Template:
+		t.Funcs(funcs)
+	case *htmltemplate.Template:
+		t.Funcs(funcs)
+	}
+
+	return nil
+}
+
+func Funcs(t Template) error {
+	funcs := make(map[string]interface{})
+	switch t := t.(type) {
+	case *texttemplate.Template:
+		for _, t1 := range t.Templates() {
+			if err := addFunc(t, t1.Name(), funcs); err != nil {
+				return err
+			}
+		}
+		t.Funcs(funcs)
+	case *htmltemplate.Template:
+		for _, t1 := range t.Templates() {
+			if err := addFunc(t, t1.Name(), funcs); err != nil {
+				return err
+			}
+		}
+		t.Funcs(funcs)
+	}
+	return nil
+}
+
+func addFunc(t Template, name string, funcs map[string]interface{}) error {
+	fn, bundle, err := bundler(name)
+	if err != nil {
+		return err
+	}
+	if fn == "" {
+		return nil
+	}
+	switch t := t.(type) {
+	case *texttemplate.Template:
+		funcs[fn] = func(args ...interface{}) (string, error) {
+			t := t.Lookup(name)
+			if t == nil {
+				return "", fmt.Errorf("lost template %q", name)
+			}
+			arg, err := bundle(args)
+			if err != nil {
+				return "", err
+			}
+			var buf bytes.Buffer
+			err = t.Execute(&buf, arg)
+			if err != nil {
+				return "", err
+			}
+			return buf.String(), nil
+		}
+	case *htmltemplate.Template:
+		funcs[fn] = func(args ...interface{}) (htmltemplate.HTML, error) {
+			t := t.Lookup(name)
+			if t == nil {
+				return "", fmt.Errorf("lost template %q", name)
+			}
+			arg, err := bundle(args)
+			if err != nil {
+				return "", err
+			}
+			var buf bytes.Buffer
+			err = t.Execute(&buf, arg)
+			if err != nil {
+				return "", err
+			}
+			return htmltemplate.HTML(buf.String()), nil
+		}
+	}
+	return nil
+}
+
+func bundler(name string) (fn string, bundle func(args []interface{}) (interface{}, error), err error) {
+	f := strings.Fields(name)
+	if len(f) == 0 || !validNameRE.MatchString(f[0]) {
+		return "", nil, nil
+	}
+
+	fn = f[0]
+	if len(f) == 1 {
+		bundle = func(args []interface{}) (interface{}, error) {
+			if len(args) == 0 {
+				return nil, nil
+			}
+			if len(args) == 1 {
+				return args[0], nil
+			}
+			return nil, fmt.Errorf("too many arguments in call to template %s", fn)
+		}
+	} else {
+		sawQ := false
+		for i, argName := range f[1:] {
+			if !validArgNameRE.MatchString(argName) {
+				return "", nil, fmt.Errorf("invalid template name %q: invalid argument name %s", name, argName)
+			}
+			if strings.HasSuffix(argName, "...") {
+				if i != len(f)-2 {
+					return "", nil, fmt.Errorf("invalid template name %q: %s is not last argument", name, argName)
+				}
+				break
+			}
+			if strings.HasSuffix(argName, "?") {
+				sawQ = true
+				continue
+			}
+			if sawQ {
+				return "", nil, fmt.Errorf("invalid template name %q: required %s after optional %s", name, argName, f[i])
+			}
+		}
+
+		bundle = func(args []interface{}) (interface{}, error) {
+			m := make(map[string]interface{})
+			for _, argName := range f[1:] {
+				if strings.HasSuffix(argName, "...") {
+					m[strings.TrimSuffix(argName, "...")] = args
+					args = nil
+					break
+				}
+				if strings.HasSuffix(argName, "?") {
+					prefix := strings.TrimSuffix(argName, "?")
+					if len(args) == 0 {
+						m[prefix] = nil
+					} else {
+						m[prefix], args = args[0], args[1:]
+					}
+					continue
+				}
+				if len(args) == 0 {
+					return nil, fmt.Errorf("too few arguments in call to template %s", fn)
+				}
+				m[argName], args = args[0], args[1:]
+			}
+			if len(args) > 0 {
+				return nil, fmt.Errorf("too many arguments in call to template %s", fn)
+			}
+			return m, nil
+		}
+	}
+
+	return fn, bundle, nil
+}
diff --git a/go.dev/cmd/internal/tmplfunc/testdata/x.tmpl b/go.dev/cmd/internal/tmplfunc/testdata/x.tmpl
new file mode 100644
index 0000000..f334fe5
--- /dev/null
+++ b/go.dev/cmd/internal/tmplfunc/testdata/x.tmpl
@@ -0,0 +1,3 @@
+{{define "x"}}
+{{if len .}}{{y (slice . 1 (len .))}}{{else}}x{{end}}
+{{end}}
diff --git a/go.dev/cmd/internal/tmplfunc/testdata/y.tmpl b/go.dev/cmd/internal/tmplfunc/testdata/y.tmpl
new file mode 100644
index 0000000..12bbdbb
--- /dev/null
+++ b/go.dev/cmd/internal/tmplfunc/testdata/y.tmpl
@@ -0,0 +1,3 @@
+{{define "y"}}
+{{if len .}}{{x (slice . 1 (len .))}}{{else}}y{{end}}
+{{end}}
diff --git a/go.dev/cmd/internal/tmplfunc/tmpl.go b/go.dev/cmd/internal/tmplfunc/tmpl.go
new file mode 100644
index 0000000..534fc43
--- /dev/null
+++ b/go.dev/cmd/internal/tmplfunc/tmpl.go
@@ -0,0 +1,213 @@
+// 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 tmplfunc provides an extension of Go templates
+// in which templates can be invoked as if they were functions.
+//
+// For example, after parsing
+//
+//	{{define "link url text"}}<a href="{{.url}}">{{.text}}</a>{{end}}
+//
+// this package installs a function named link allowing the template
+// to be invoked as
+//
+//	{{link "https://golang.org" "the Go language"}}
+//
+// instead of the longer-form (assuming an appropriate function named dict)
+//
+//	{{template "link" (dict "url" "https://golang.org" "text" "the Go language")}}
+//
+// Function Definitions
+//
+// The function installed for a given template depends on the name of the
+// defined template, which can include not just a function name but also
+// a list of parameter names. The function name and parameter names must
+// consist only of letters, digits, and underscores, with a leading non-digit.
+//
+// If there is no parameter list, then the function is expected to take
+// at most one argument, made available in the template body as “.” (dot).
+// If such a function is called with no arguments, dot will be a nil interface value.
+//
+// If there is a parameter list, then the function requires an argument for
+// each parameter, except for optional and variadic parameters, explained below.
+// Inside the template, the top-level value “.” is a map[string]interface{} in which
+// each parameter name is mapped to the corresponding argument value.
+// A parameter x can therefore be accessed as {{(index . "x")}} or, more concisely, {{.x}}.
+//
+// The first special case in parameter handling is that
+// a parameter can be made optional by adding a “?” suffix after its name.
+// If the argument list ends before that parameter, the corresponding map entry
+// will be present and set to a nil value.
+// The second special case is that a parameter can be made variadic
+// by adding a “...” suffix after its name.
+// The corresponding map entry contains a []interface{} holding the
+// zero or more arguments corresponding to that parameter.
+//
+// In the parameter list, required parameters must precede optional parameters,
+// which must in turn precede any variadic parameter.
+//
+// For example, we can revise the link template given earlier to make the
+// link text optional, substituting the URL when the text is omitted:
+//
+//	{{define "link url text?"}}<a href="{{.url}}">{{or .text .url}}</a>{{end}}
+//
+// 	The Go home page is {{link "https://golang.org"}}.
+//
+// Usage
+//
+// This package is meant to be used with templates from either the
+// text/template or html/template packages. Given a *template.Template
+// variable t, substitute:
+//
+//	t.Parse(text) -> tmplfunc.Parse(t, text)
+//	t.ParseFiles(list) -> tmplfunc.ParseFiles(t, list)
+//	t.ParseGlob(pattern) -> tmplfunc.ParseGlob(t, pattern)
+//
+// Parse, ParseFiles, and ParseGlob parse the new templates but also add
+// functions that invoke them, named according to the function signatures.
+// Templates can only invoke functions for templates that have already been
+// defined or that are being defined in the same Parse, ParseFiles, or ParseGlob call.
+// For example, templates in two files x.tmpl and y.tmpl can call each other
+// only if ParseFiles or ParseGlob is used to parse both files in a single call.
+// Otherwise, the parsing of the first file will report that calls to templates in
+// the second file are calling unknown functions.
+//
+// When used with the html/template package, all function-invoked template
+// calls are treated as invoking templates producing HTML. In order to use a
+// template that produces some other kind of text fragment, the template must
+// be invoked directly using the {{template "name"}} form, not as a function call.
+package tmplfunc
+
+import (
+	"fmt"
+	"io/ioutil"
+	"path/filepath"
+
+	htmltemplate "golang.org/x/go.dev/cmd/internal/html/template"
+	texttemplate "golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+// A Template is a *template.Template, where template refers to either
+// the html/template or text/template package.
+type Template interface {
+	// Method here only to make most types that are not a *template.Template
+	// not implement the interface. The requirement here is to be one of the two
+	// template types, not just to have this single method.
+	DefinedTemplates() string
+	Name() string
+}
+
+// Parse is like t.Parse(text), adding functions for the templates defined in text.
+func Parse(t Template, text string) error {
+	if err := funcs(t, []string{t.Name()}, []string{text}); err != nil {
+		return err
+	}
+	var err error
+	switch t := t.(type) {
+	case *texttemplate.Template:
+		_, err = t.Parse(text)
+	case *htmltemplate.Template:
+		_, err = t.Parse(text)
+	}
+	return err
+}
+
+// ParseFiles is like t.ParseFiles(filenames...), adding functions for the parsed templates.
+func ParseFiles(t Template, filenames ...string) error {
+	return parseFiles(t, readFileOS, filenames...)
+}
+
+// parseFiles is the helper for the method and function. If the argument
+// template is nil, it is created from the first file.
+func parseFiles(t Template, readFile func(string) (string, []byte, error), filenames ...string) error {
+	if len(filenames) == 0 {
+		// Not really a problem, but be consistent.
+		return fmt.Errorf("tmplfunc: no files named in call to ParseFiles")
+	}
+
+	var names []string
+	var texts []string
+	for _, filename := range filenames {
+		name, b, err := readFile(filename)
+		if err != nil {
+			return err
+		}
+		names = append(names, name)
+		texts = append(texts, string(b))
+	}
+
+	err := funcs(t, names, texts)
+	if err != nil {
+		return err
+	}
+
+	switch t := t.(type) {
+	case *texttemplate.Template:
+		for i, name := range names {
+			var tmpl *texttemplate.Template
+			if name == t.Name() {
+				tmpl = t
+			} else {
+				tmpl = t.New(name)
+			}
+			if _, err := tmpl.Parse(texts[i]); err != nil {
+				return err
+			}
+		}
+
+	case *htmltemplate.Template:
+		for i, name := range names {
+			var tmpl *htmltemplate.Template
+			if name == t.Name() {
+				tmpl = t
+			} else {
+				tmpl = t.New(name)
+			}
+			if _, err := tmpl.Parse(texts[i]); err != nil {
+				return err
+			}
+		}
+	}
+
+	return nil
+}
+
+// ParseGlob is like t.ParseGlob(pattern), adding functions for the parsed templates.
+func ParseGlob(t Template, pattern string) error {
+	filenames, err := filepath.Glob(pattern)
+	if err != nil {
+		return err
+	}
+	if len(filenames) == 0 {
+		return fmt.Errorf("tmplfunc: pattern matches no files: %#q", pattern)
+	}
+	return parseFiles(t, readFileOS, filenames...)
+}
+
+func must(err error) {
+	if err != nil {
+		panic(err)
+	}
+}
+
+// MustParse is like Parse but panics on error.
+func MustParse(t Template, text string) {
+	must(Parse(t, text))
+}
+
+// MustParseFiles is like ParseFiles but panics on error.
+func MustParseFiles(t Template, filenames ...string) {
+	must(ParseFiles(t, filenames...))
+}
+
+// MustParseGlob is like ParseGlob but panics on error.
+func MustParseGlob(t Template, pattern string) {
+	must(ParseGlob(t, pattern))
+}
+
+func readFileOS(file string) (name string, b []byte, err error) {
+	name = filepath.Base(file)
+	b, err = ioutil.ReadFile(file)
+	return
+}
diff --git a/go.dev/cmd/internal/tmplfunc/tmplfunc_test.go b/go.dev/cmd/internal/tmplfunc/tmplfunc_test.go
new file mode 100644
index 0000000..161a49c
--- /dev/null
+++ b/go.dev/cmd/internal/tmplfunc/tmplfunc_test.go
@@ -0,0 +1,111 @@
+// 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 tmplfunc
+
+import (
+	"bytes"
+	"fmt"
+	"strings"
+	"testing"
+
+	htmltemplate "golang.org/x/go.dev/cmd/internal/html/template"
+	texttemplate "golang.org/x/go.dev/cmd/internal/text/template"
+)
+
+var tests = []struct {
+	in  string
+	out string
+}{
+	{`{{define "hello"}}hello {{.}}{{end}}{{template "hello" "world"}}`, "hello world"},
+	{`{{define "hello"}}hello {{.}}{{end}}{{hello "world"}}`, "hello world"},
+	{`{{define "hello who"}}hello {{.who}}{{end}}{{hello "world"}}`, "hello world"},
+	{`{{define "hello who"}}hello {{.who}}{{end}}{{hello}}`,
+		"EXEC: template: :1:45: executing \"\" at <hello>: error calling hello: too few arguments in call to template hello",
+	},
+	{`{{define "hello who?"}}hello {{.who}}{{end}}{{hello}}`, "hello"},
+	{`{{define "hello who?"}}hello {{.who}}{{end}}{{hello "world"}}`, "hello world"},
+	{`{{define "hello who..."}}hello {{.who}}{{end}}{{hello}}`, "hello []"},
+	{`{{define "hello who..."}}hello {{.who}}{{end}}{{hello "world"}}`, "hello [world]"},
+}
+
+func TestText(t *testing.T) {
+	for i, tt := range tests {
+		t.Run(fmt.Sprint(i), func(t *testing.T) {
+			tmpl := texttemplate.New("")
+			err := Parse(tmpl, tt.in)
+			var out string
+			if err != nil {
+				out = "PARSE: " + err.Error()
+			} else {
+				var buf bytes.Buffer
+				err := tmpl.Execute(&buf, nil)
+				if err != nil {
+					out = "EXEC: " + err.Error()
+				} else {
+					out = strings.ReplaceAll(buf.String(), "<no value>", "") // text generates these but html does not
+					out = strings.TrimSpace(out)
+				}
+			}
+			if out != tt.out {
+				t.Errorf("have: %s\nwant: %s", out, tt.out)
+			}
+		})
+	}
+}
+
+func TestHTML(t *testing.T) {
+	for i, tt := range tests {
+		t.Run(fmt.Sprint(i), func(t *testing.T) {
+			tmpl := htmltemplate.New("")
+			err := Parse(tmpl, tt.in)
+			var out string
+			if err != nil {
+				out = "PARSE: " + err.Error()
+			} else {
+				var buf bytes.Buffer
+				err := tmpl.Execute(&buf, nil)
+				if err != nil {
+					out = "EXEC: " + err.Error()
+				} else {
+					out = strings.TrimSpace(buf.String())
+				}
+			}
+			if out != tt.out {
+				t.Errorf("have: %s\nwant: %s", out, tt.out)
+			}
+		})
+	}
+}
+
+func TestGlob(t *testing.T) {
+	tmpl := texttemplate.New("")
+	MustParseGlob(tmpl, "testdata/*.tmpl")
+	texttemplate.Must(tmpl.Parse("{{x .}}"))
+
+	var buf bytes.Buffer
+	must(tmpl.Execute(&buf, []int{1, 2, 3}))
+	out := strings.TrimSpace(buf.String())
+	if out != "y" {
+		t.Fatalf("out = %q, want %q", out, "y")
+	}
+}
+
+func TestFuncs(t *testing.T) {
+	tmpl := htmltemplate.New("")
+	MustParseGlob(tmpl, "testdata/*.tmpl")
+	htmltemplate.Must(tmpl.Parse("{{x .}}"))
+
+	tmpl2 := htmltemplate.Must(tmpl.Clone())
+	if err := Funcs(tmpl2); err != nil {
+		t.Fatal(err)
+	}
+	tmpl2.Execute(new(bytes.Buffer), nil)
+
+	if _, err := tmpl.Clone(); err != nil {
+		// Happens if you forget to call Funcs above:
+		//	cannot Clone "" after it has executed
+		t.Fatal(err)
+	}
+}
diff --git a/go.dev/cmd/versionprune/doc.go b/go.dev/cmd/versionprune/doc.go
new file mode 100644
index 0000000..194df55
--- /dev/null
+++ b/go.dev/cmd/versionprune/doc.go
@@ -0,0 +1,42 @@
+/*
+Binary versionprune prunes stale AppEngine versions for a specified service.
+
+The command by default will:
+- keep the latest 5 versions
+- keep any version that is serving traffic
+- keep any version that is younger than 24h
+- ignore versions with invalid dates (doesn't seem to be a real thing)
+
+	Sample output:
+
+	target project:	[go-discovery]
+	target service:	[go-dev]
+	versions:	(18)
+
+	versions to keep (11): [
+		20191101t013408: version is serving traffic. split: 100%
+		20191031t211924: keeping the latest 5 versions (2)
+		20191031t211903: keeping the latest 5 versions (3)
+		20191031t205920: keeping the latest 5 versions (4)
+		20191031t232247: keeping the latest 5 versions (5)
+		20191031t232028: keeping recent versions (2h56m4.73591512s)
+		20191031t220312: keeping recent versions (4h13m20.735921508s)
+		20191031t211935: keeping recent versions (4h56m55.73592447s)
+		20191031t211824: keeping recent versions (4h58m10.735928067s)
+		20191031t200353: keeping recent versions (6h12m38.735932792s)
+		20191031t150644: keeping recent versions (11h9m44.735935312s)
+	]
+	versions to delete (7): [
+		20191030t225128: bye
+		20191030t214823: bye
+		20191030t214355: bye
+		20191030t204338: bye
+		20191030t202841: bye
+		20191030t195403: bye
+		20191030t192250: bye
+	]
+	deleting go-discovery/go-dev/20191030t225128
+	...
+
+*/
+package main
diff --git a/go.dev/cmd/versionprune/main.go b/go.dev/cmd/versionprune/main.go
new file mode 100644
index 0000000..f8018cd
--- /dev/null
+++ b/go.dev/cmd/versionprune/main.go
@@ -0,0 +1,175 @@
+package main
+
+import (
+	"context"
+	"flag"
+	"fmt"
+	"os"
+	"sort"
+	"time"
+
+	"google.golang.org/api/appengine/v1"
+)
+
+var (
+	dryRun       = flag.Bool("dry_run", true, "When true, just print intended modifications and quit")
+	keepDuration = flag.Duration("keep_duration", 24*time.Hour, "Versions older than this will be deleted")
+	keepNumber   = flag.Int("keep_number", 5, "Minimum number of versions to keep")
+	project      = flag.String("project", "", "GCP Project (required)")
+	service      = flag.String("service", "", "AppEngine service (required)")
+)
+
+func main() {
+	flag.Parse()
+
+	if *project == "" {
+		fmt.Println("-project flag is required.")
+		flag.Usage()
+		os.Exit(1)
+	}
+	if *service == "" {
+		fmt.Println("-service flag is required.")
+		flag.Usage()
+		os.Exit(1)
+	}
+	if *keepDuration < 0 {
+		fmt.Printf("-keep_duration must be greater or equal to 0, got %s\n", *keepDuration)
+		flag.Usage()
+		os.Exit(1)
+	}
+	if *keepNumber < 0 {
+		fmt.Printf("-keep_number must be greater or equal to 0, got %d\n", *keepNumber)
+		flag.Usage()
+		os.Exit(1)
+	}
+
+	if err := run(context.Background()); err != nil {
+		fmt.Fprintln(os.Stderr, err)
+		os.Exit(2)
+	}
+}
+
+// version is an intermediate representation of an AppEngine version.
+type version struct {
+	AEVersion *appengine.Version
+	// Message is a human-readable message of why a version was bucketed.
+	Message string
+	// Created is a parsed time of the AppEngine Version CreateTime.
+	Created time.Time
+}
+
+// run fetches, processes, and (if DryRun is false) deletes stale AppEngine versions for the specified Service.
+func run(ctx context.Context) error {
+	aes, err := appengine.NewService(ctx)
+	if err != nil {
+		return fmt.Errorf("creating appengine client: %w", err)
+	}
+	ass := appengine.NewAppsServicesService(aes)
+	asvs := appengine.NewAppsServicesVersionsService(aes)
+
+	s, err := ass.Get(*project, *service).Do()
+	if err != nil {
+		return fmt.Errorf("fetching service: %w", err)
+	}
+
+	vs, err := getVersions(ctx, asvs)
+	if err != nil {
+		return fmt.Errorf("fetching versions: %w", err)
+	}
+
+	bs, err := bucket(s.Split.Allocations, vs, *keepNumber, *keepDuration)
+	if err != nil {
+		return fmt.Errorf("bucketing versions: %w", err)
+	}
+	printIntent(bs)
+	if err := act(asvs, bs, *dryRun); err != nil {
+		return fmt.Errorf("executing: %w", err)
+	}
+	return nil
+}
+
+func getVersions(ctx context.Context, asvs *appengine.AppsServicesVersionsService) ([]*appengine.Version, error) {
+	var versions []*appengine.Version
+	err := asvs.List(*project, *service).Pages(ctx, func(r *appengine.ListVersionsResponse) error {
+		versions = append(versions, r.Versions...)
+		return nil
+	})
+	if err != nil {
+		return nil, err
+	}
+	sort.Slice(versions, func(i, j int) bool {
+		// Sort by create time, descending.
+		return versions[i].CreateTime > versions[j].CreateTime
+	})
+	return versions, nil
+}
+
+type buckets struct {
+	keep   []version
+	delete []version
+}
+
+// bucket splits c.versions into intended actions.
+func bucket(allocs map[string]float64, versions []*appengine.Version, keepNumber int, keepDuration time.Duration) (buckets, error) {
+	var bs buckets
+	for _, av := range versions {
+		v := version{AEVersion: av}
+		created, err := time.Parse(time.RFC3339, av.CreateTime)
+		if err != nil {
+			return bs, fmt.Errorf("failed to parse time %q for version %s: %v", av.CreateTime, av.Id, err)
+		}
+		v.Created = created
+		if s, ok := allocs[av.Id]; ok {
+			v.Message = fmt.Sprintf("version is serving traffic. split: %v%%", s*100)
+			bs.keep = append(bs.keep, v)
+			continue
+		}
+		if len(bs.keep) < keepNumber {
+			v.Message = fmt.Sprintf("keeping the latest %d versions (%d)", keepNumber, len(bs.keep))
+			bs.keep = append(bs.keep, v)
+			continue
+		}
+		if dur := time.Since(v.Created); dur < keepDuration {
+			v.Message = fmt.Sprintf("keeping recent versions (%s)", dur)
+			bs.keep = append(bs.keep, v)
+			continue
+		}
+		v.Message = "bye"
+		bs.delete = append(bs.delete, v)
+	}
+	return bs, nil
+}
+
+func printIntent(bs buckets) {
+	fmt.Printf("target project:\t[%v]\n", *project)
+	fmt.Printf("target service:\t[%v]\n", *service)
+	fmt.Printf("versions:\t(%v)\n", len(bs.delete)+len(bs.keep))
+	fmt.Println()
+
+	fmt.Printf("versions to keep (%v): [\n", len(bs.keep))
+	for _, v := range bs.keep {
+		fmt.Printf("\t%v: %v\n", v.AEVersion.Id, v.Message)
+	}
+	fmt.Println("]")
+
+	fmt.Printf("versions to delete (%v): [\n", len(bs.delete))
+	for _, v := range bs.delete {
+		fmt.Printf("\t%v: %v\n", v.AEVersion.Id, v.Message)
+	}
+	fmt.Println("]")
+}
+
+// act performs delete requests for AppEngine services to be deleted. No deletions are performed if DryRun is true.
+func act(asvs *appengine.AppsServicesVersionsService, bs buckets, dryRun bool) error {
+	for _, v := range bs.delete {
+		if dryRun {
+			fmt.Printf("dry-run: skipping delete %v: %v\n", v.AEVersion.Id, v.Message)
+			continue
+		}
+		fmt.Printf("deleting %v/%v/%v\n", *project, *service, v.AEVersion.Id)
+		if _, err := asvs.Delete(*project, *service, v.AEVersion.Id).Do(); err != nil {
+			return fmt.Errorf("error deleting %v/%v/%v: %w", *project, *service, v.AEVersion.Id, err)
+		}
+	}
+	return nil
+}
diff --git a/go.dev/cmd/versionprune/main_test.go b/go.dev/cmd/versionprune/main_test.go
new file mode 100644
index 0000000..60ae2b7
--- /dev/null
+++ b/go.dev/cmd/versionprune/main_test.go
@@ -0,0 +1,118 @@
+package main
+
+import (
+	"testing"
+	"time"
+
+	"github.com/google/go-cmp/cmp"
+	"github.com/google/go-cmp/cmp/cmpopts"
+	"google.golang.org/api/appengine/v1"
+)
+
+func TestDecide(t *testing.T) {
+	recentTime := time.Now()
+	recentTime = recentTime.Truncate(time.Minute)
+	allocs := map[string]float64{"currentlyServingID": 1.0}
+
+	tests := []struct {
+		desc       string
+		versions   []*appengine.Version
+		keepNumber int
+		wantKeep   []version
+		wantDelete []version
+		wantErr    bool
+	}{
+		{
+			desc: "no versions",
+		},
+		{
+			desc:     "invalid Version time",
+			versions: []*appengine.Version{{Id: "invalid time", CreateTime: "abc123"}},
+			wantErr:  true,
+		},
+		{
+			desc:     "old versions",
+			versions: []*appengine.Version{{Id: "old one", CreateTime: "2018-01-02T15:04:05Z"}},
+			wantDelete: []version{{
+				AEVersion: &appengine.Version{Id: "old one", CreateTime: "2018-01-02T15:04:05Z"},
+				Created:   time.Date(2018, 1, 2, 15, 4, 5, 0, time.UTC),
+			}},
+		},
+		{
+			desc:     "versions serving",
+			versions: []*appengine.Version{{Id: "currentlyServingID", CreateTime: "2018-01-02T15:04:05Z"}},
+			wantKeep: []version{{
+				AEVersion: &appengine.Version{Id: "currentlyServingID", CreateTime: "2018-01-02T15:04:05Z"},
+				Created:   time.Date(2018, 1, 2, 15, 4, 5, 0, time.UTC),
+			}},
+		},
+		{
+			desc:     "within 24h",
+			versions: []*appengine.Version{{Id: "some id", CreateTime: recentTime.Format(time.RFC3339)}},
+			wantKeep: []version{{
+				AEVersion: &appengine.Version{Id: "some id", CreateTime: recentTime.Format(time.RFC3339)},
+				Created:   recentTime,
+			}},
+		},
+		{
+			desc: "keeps KeepNumber versions",
+			versions: []*appengine.Version{
+				{Id: "some id", CreateTime: recentTime.Format(time.RFC3339)},
+				{Id: "currentlyServingID", CreateTime: "2018-01-02T15:04:05Z"},
+				{Id: "not serving", CreateTime: "2019-01-02T15:04:05Z"},
+				{Id: "this one should be deleted", CreateTime: "2019-01-02T15:04:05Z"},
+			},
+			keepNumber: 3,
+			wantKeep: []version{
+				{
+					AEVersion: &appengine.Version{Id: "some id", CreateTime: recentTime.Format(time.RFC3339)},
+					Created:   recentTime,
+				},
+				{
+					AEVersion: &appengine.Version{Id: "currentlyServingID", CreateTime: "2018-01-02T15:04:05Z"},
+					Created:   time.Date(2018, 1, 2, 15, 4, 5, 0, time.UTC),
+				},
+				{
+					AEVersion: &appengine.Version{Id: "not serving", CreateTime: "2019-01-02T15:04:05Z"},
+					Created:   time.Date(2019, 1, 2, 15, 4, 5, 0, time.UTC),
+				},
+			},
+			wantDelete: []version{{
+				AEVersion: &appengine.Version{Id: "this one should be deleted", CreateTime: "2019-01-02T15:04:05Z"},
+				Created:   time.Date(2019, 1, 2, 15, 4, 5, 0, time.UTC),
+			}},
+		},
+	}
+	for _, tt := range tests {
+		t.Run(tt.desc, func(t *testing.T) {
+			bs, err := bucket(allocs, tt.versions, tt.keepNumber, 24*time.Hour)
+			if (err != nil) != tt.wantErr {
+				t.Errorf("bucket(%v, %v, %v, %v) = %v, %v, wantErr %v", allocs, tt.versions, tt.keepNumber, 24*time.Hour, bs, err, tt.wantErr)
+				return
+			}
+			ignoreFields := cmpopts.IgnoreFields(version{}, "Message")
+			if diff := cmp.Diff(tt.wantKeep, bs.keep, ignoreFields); diff != "" {
+				t.Errorf("c.Keep mismatch (-want +got):\n%s", diff)
+			}
+			if diff := cmp.Diff(tt.wantDelete, bs.delete, ignoreFields); diff != "" {
+				t.Errorf("c.Delete mismatch (-want +got):\n%s", diff)
+			}
+		})
+	}
+}
+
+func TestAct(t *testing.T) {
+	bs := buckets{delete: []version{{AEVersion: &appengine.Version{Id: "test ID"}}}}
+	if err := act(nil, bs, true); err != nil {
+		t.Errorf("c.act() = %v, wanted no error", err)
+	}
+	defer func(t *testing.T) {
+		t.Helper()
+		if recover() == nil {
+			// c.act() should panic with no asvs set, showing that the DryRun flag worked.
+			// faking out the appengine admin client is hard.
+			t.Errorf("recover() = nil, wanted panic")
+		}
+	}(t)
+	act(nil, bs, false)
+}
diff --git a/go.dev/go.mod b/go.dev/go.mod
new file mode 100644
index 0000000..91e27b1
--- /dev/null
+++ b/go.dev/go.mod
@@ -0,0 +1,13 @@
+module golang.org/x/go.dev
+
+go 1.13
+
+require (
+	github.com/google/go-cmp v0.3.1
+	github.com/microcosm-cc/bluemonday v1.0.2
+	github.com/yuin/goldmark v1.2.1
+	google.golang.org/api v0.13.0
+	gopkg.in/yaml.v2 v2.2.2
+	gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
+	rsc.io/rf v0.0.0-20210401221041-ba8df2a1fd6c
+)
diff --git a/go.dev/go.sum b/go.dev/go.sum
new file mode 100644
index 0000000..e2f0231
--- /dev/null
+++ b/go.dev/go.sum
@@ -0,0 +1,113 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo=
+cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1 h1:Xye71clBPdm5HgqGwUkwhbynsUJZhDbS20FvLhQ2izg=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM=
+github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
+github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
+github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
+github.com/microcosm-cc/bluemonday v1.0.2 h1:5lPfLTTAvAbtS0VqT+94yOtFnGfUWYyx0+iToC3Os3s=
+github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc=
+github.com/yuin/goldmark v1.2.1 h1:ruQGxdhGHe7FWOJPT0mKs5+pD2Xs1Bm/kdGlHO04FmM=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+go.opencensus.io v0.21.0 h1:mU6zScU4U1YAFPHEHYk+3JC4SY7JxgkqS10ZOSyksNg=
+go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974 h1:IX6qOQeG5uLjB/hjjwjedwfjND0hgjPMMyO1RoIXQNI=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0=
+golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20201111224557-41a3a589386c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+google.golang.org/api v0.13.0 h1:Q3Ui3V3/CVinFWFiW39Iw0kMuVrRzYX0wN6OPFp0lTA=
+google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
+google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873 h1:nfPFGzJkUDX6uBmpN/pSw7MbOAWegH5QDQuoXFHedLg=
+google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.20.1 h1:Hz2g2wirWK7H0qIIhGIqRGTuMwTE8HEKFnDZZ7lm9NU=
+google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+rsc.io/rf v0.0.0-20210401221041-ba8df2a1fd6c h1:lZl/oVdEEh5FuRJIt6ms8oLEkycLohVgloElXrnx+uw=
+rsc.io/rf v0.0.0-20210401221041-ba8df2a1fd6c/go.mod h1:4rdFt/SlKutY8W9onF7XZvD3H0hD+Xpz/uodEcQLuM4=
diff --git a/go.dev/testdata/golden/about/index.html b/go.dev/testdata/golden/about/index.html
new file mode 100644
index 0000000..46b05eb
--- /dev/null
+++ b/go.dev/testdata/golden/about/index.html
@@ -0,0 +1,466 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>About - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem  Header-menuItem--active">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+  <article class="Article ">
+    <h1>About</h1>
+
+
+<p><a href="https://go.dev" rel="noreferrer" target="_blank">Go.dev</a> is a companion website to <a href="https://golang.org" rel="noreferrer" target="_blank">golang.org</a>. <a href="https://golang.org" rel="noreferrer" target="_blank">Golang.org</a> is the home of the open source project and distribution, while <a href="https://go.dev" rel="noreferrer" target="_blank">go.dev</a> is the hub for Go users providing centralized and curated resources from across the Go ecosystem.</p>
+
+<p><img
+  loading="lazy"
+  class="LargeMedia-image Right"
+  alt="Go gopher"
+  src="/images/gophers/pink.svg">
+Go.dev provides:</p>
+
+<ol>
+<li>Centralized information for Go packages and modules published on index.golang.org.</li>
+<li>Essential learning resources</li>
+<li>Critical use cases &amp; case studies</li>
+</ol>
+
+<p>Go.dev is currently in <a href="https://en.wikipedia.org/wiki/Minimum_viable_product" rel="noreferrer" target="_blank">MVP</a> status. We&rsquo;re proud of what we&rsquo;ve built and excited to share it with the community. We hope you find value and joy in using go.dev. Go.dev only has a small portion of features we intend to build, and we are actively seeking feedback. If you have any ideas, suggestions or issues, please let us know.</p>
+
+<h2 id="adding-a-package">Adding a package</h2>
+
+<p>Data for the site is downloaded from <a href="https://proxy.golang.org/" rel="noreferrer" target="_blank">proxy.golang.org</a>. We monitor the <a href="https://index.golang.org/index" rel="noreferrer" target="_blank">Go Module Index</a> regularly for new packages to add to pkg.go.dev. If you don’t see a package on pkg.go.dev, you can add it by doing one of the following:</p>
+
+<ul>
+<li><p>Visiting that page on pkg.go.dev, and clicking the &ldquo;Request&rdquo; button. For example: <br /> https://<span></span>pkg.go.dev/example.com/my/module</p></li>
+
+<li><p>Making a request to proxy.golang.org for the module version, to any endpoint specified by the <a href="https://golang.org/cmd/go/#hdr-Module_proxy_protocol" rel="noreferrer" target="_blank">Module proxy protocol</a>. For example: <br /> https://<span></span>proxy.golang.org/example.com/my/module/@v/v1.0.0.info</p></li>
+
+<li><p>Downloading the package via the <a href="https://golang.org/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them" rel="noreferrer" target="_blank">go command</a>. For example:  <br /> GOPROXY=https://<span></span>proxy.golang.org GO111MODULE=on go get example.com/my/module@v1.0.0</p></li>
+</ul>
+
+<h2 id="removing-a-package">Removing a package</h2>
+
+<p>If you are the author of a package and would like to have it removed from pkg.go.dev, please <a href="https://golang.org/s/pkgsite-feedback" rel="noreferrer" target="_blank">file an issue</a> on the Go Issue Tracker with the path that you want to remove.</p>
+
+<p>Note that we can only remove a module entirely from the site. We cannot remove it just for specific versions.</p>
+
+<h2 id="documentation">Documentation</h2>
+
+<p>Documentation is generated based on Go source code downloaded from the Go Module Mirror at <code>proxy.golang.org/&lt;module&gt;/@v/&lt;version&gt;.zip</code>. New module versions are fetched from index.golang.org and added to pkg.go.dev site every few minutes.</p>
+
+<p>The <a href="https://blog.golang.org/godoc" rel="noreferrer" target="_blank">guidelines for writing documentation</a> for the godoc tool apply to pkg.go.dev.</p>
+
+<p>It’s important to write a good summary of the package in the first sentence of the package comment. The go.dev site indexes the first sentence and displays it in search results.</p>
+
+<h3 id="build-context">Build Context</h3>
+
+<p>Most Go packages look and behave the same regardless of the machine architecture
+or operating system. But some have different documentation, even different
+exported symbols, for different architectures or OSes. Some packages may not even
+exist for some architectures.</p>
+
+<p>Go calls an OS/architecture pair a &ldquo;build context&rdquo; and writes it with a slash,
+like <code>linux/amd64</code>. You may also see the terms <code>GOOS</code> and <code>GOARCH</code> for the OS
+and architecture respectively, because those are the names of the environment
+variables that the go command uses. (See the <a href="https://golang.org/cmd/go" rel="noreferrer" target="_blank">go command
+documentation</a> for more information.)</p>
+
+<p>If a package exists at only one build context, pkg.go.dev displays that build
+context at the upper right corner of the documentation. For example,
+<a href="https://pkg.go.dev/syscall/js" rel="noreferrer" target="_blank">https://pkg.go.dev/syscall/js</a> displays &ldquo;js/wasm&rdquo;.</p>
+
+<p>If a package is different in different build contexts, then pkg.go.dev will
+display one by default and provide a dropdown control at the upper right so you
+can select a different one.</p>
+
+<p>For packages that are the same across all build contexts, pkg.go.dev does not
+display any build context information.</p>
+
+<p>Although there are many possible OS/architecture pairs, pkg.go.dev considers
+only a
+<a href="https://go.googlesource.com/pkgsite/+/master/internal/build_context.go#29" rel="noreferrer" target="_blank">handful</a>
+of them. So if a package only exists for unsupported build contexts, pkg.go.dev
+will not display documentation for it.</p>
+
+<h3 id="source-links">Source Links</h3>
+
+<p>Most of the time, pkg.go.dev can determine the location of a package&rsquo;s source
+files, and provide links from symbols in the documentation to their definitions
+in the source. If your package&rsquo;s source is not linked, try one of the following
+two approaches.</p>
+
+<p>If pkg.go.dev finds a <code>go-source</code> meta tag on your site that follows the
+<a href="https://github.com/golang/gddo/wiki/Source-Code-Links" rel="noreferrer" target="_blank">specified format</a>, it
+can often determine the right links, even though the format doesn&rsquo;t take
+versioning into account.</p>
+
+<p>If that doesn&rsquo;t work, you will need to add your repo or code-hosting site to
+pkg.go.dev&rsquo;s list of patterns (see  <a href="https://golang.org/issues/40477" rel="noreferrer" target="_blank">Go Issue 40477</a> for context).
+Read about how to <a href="https://go.googlesource.com/pkgsite#contributing" rel="noreferrer" target="_blank">contribute to pkg.go.dev</a>,
+then produce a CL that adds a pattern to the
+<a href="https://go.googlesource.com/pkgsite/+/refs/heads/master/internal/source/source.go" rel="noreferrer" target="_blank"><code>internal/source</code></a>
+package.</p>
+
+<h2 id="best-practices">Best practices</h2>
+
+<p>Pkg.go.dev surfaces details about Go packages and modules in order to help provide guidelines for best practices with Go.</p>
+
+<p>Here are the details we surface:</p>
+
+<ul>
+<li><p>Has go.mod file</p>
+
+<ul>
+<li>The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go. A module version is defined by a tree of source files, with a go.mod file in its root. <a href="https://golang.org/cmd/go/#hdr-The_go_mod_file" rel="noreferrer" target="_blank">More information about the go.mod file</a>.</li>
+</ul></li>
+
+<li><p>Redistributable license</p>
+
+<ul>
+<li>Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed. For more information on how pkg.go.dev determines if a license is redistributable, see our <a href="http://pkg.go.dev/license-policy" rel="noreferrer" target="_blank">license policy</a>.</li>
+</ul></li>
+
+<li><p>Tagged version</p>
+
+<ul>
+<li>When the go get command resolves modules by default it prioritizes tagged versions. When no tagged versions exist, go get looks up the latest known commit. Modules with tagged versions give importers more predictable builds. See <a href="https://semver.org" rel="noreferrer" target="_blank">semver.org</a> and <a href="https://blog.golang.org/module-compatibility" rel="noreferrer" target="_blank">Keeping Your Modules Compatible</a> for more information.</li>
+</ul></li>
+
+<li><p>Stable version</p>
+
+<ul>
+<li>Projects at v0 are assumed to be experimental. When a project reaches a stable version — major version v1 or higher — breaking changes must be done in a new major version. Stable versions give developers the confidence that breaking changes won’t occur when they upgrade a package to the latest minor version. See <a href="https://blog.golang.org/v2-go-modules" rel="noreferrer" target="_blank">Go Modules: v2 and Beyond</a> for more information.</li>
+</ul></li>
+</ul>
+
+<h2 id="creating-a-badge">Creating a badge</h2>
+
+<p>The pkg.go.dev badge provides a way for Go users to learn about the pkg.go.dev page associated with a given Go package or module. You can create a badge using the <a href="https://pkg.go.dev/badge" rel="noreferrer" target="_blank">badge generation tool</a>. The tool will generate html and markdown snippets that you can use on your project website or in a README file.</p>
+
+<p><a href="https://pkg.go.dev/golang.org/x/pkgsite" rel="noreferrer" target="_blank"><img src="https://pkg.go.dev/badge/golang.org/x/pkgsite" alt="PkgGoDev" /></a></p>
+
+<h2 id="adding-links">Adding links</h2>
+
+<p>You can add links to your README files and package documentation that will be
+shown on the right side of the pkg.go.dev page. For details, see <a href="https://golang.org/issue/42968" rel="noreferrer" target="_blank">this
+issue</a>.</p>
+
+<h2 id="keyboard-shortcuts">Keyboard Shortcuts</h2>
+
+<p>There are keyboard shortcuts for navigating package documentation pages. Type &lsquo;?&rsquo; on a package page for help.</p>
+
+<h2 id="bookmarklet">Bookmarklet</h2>
+
+<p>The pkg.go.dev bookmarklet navigates from pages on source code hosts, such as GitHub, Bitbucket, Launchpad etc., to the package documentation. To install the bookmarklet, click and drag the following link to your bookmark bar: <a href="javascript:(function(){ const pathRegex = window.location.pathname.match(/([^\/]+)(?:\/([^\/]+))?/); const host = window.location.hostname; if (pathRegex) { window.location='https://pkg.go.dev/'+host+'/'+pathRegex[0]; } else { alert('There was an error navigating to pkg.go.dev!'); } })()">Pkg.go.dev Doc</a></p>
+
+<h2 id="license-policy">License policy</h2>
+
+<p>Information for a given package or module may be limited if we are not able to detect a suitable license. See our <a href="https://pkg.go.dev/license-policy" rel="noreferrer" target="_blank">license policy</a> for more information.</p>
+
+<h2 id="feedback">Feedback</h2>
+
+<p>Share your ideas, feature requests, and bugs on the <a href="https://golang.org/s/discovery-feedback" rel="noreferrer" target="_blank">Go Issue Tracker</a> For questions, please post on the #tools slack channel on the <a href="https://invite.slack.golangbridge.org/" rel="noreferrer" target="_blank">Gophers Slack</a>, or email the <a href="https://groups.google.com/group/golang-dev" rel="noreferrer" target="_blank">golang-dev mailing list</a>.</p>
+
+  </article>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/categories/index.html b/go.dev/testdata/golden/categories/index.html
new file mode 100644
index 0000000..5116b7a
--- /dev/null
+++ b/go.dev/testdata/golden/categories/index.html
@@ -0,0 +1,314 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Categories - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default"><div class="Container Container--padded">
+    <h1>Categories</h1>
+    <ul class="Series-list">
+
+    </ul>
+  </div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/categories/index.xml b/go.dev/testdata/golden/categories/index.xml
new file mode 100644
index 0000000..da46ce5
--- /dev/null
+++ b/go.dev/testdata/golden/categories/index.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Categories on go.dev</title>
+    <link>https://go.dev/categories/</link>
+    <description>Recent content in Categories on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    
+	<atom:link href="https://go.dev/categories/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/copyright/index.html b/go.dev/testdata/golden/copyright/index.html
new file mode 100644
index 0000000..950cdfb
--- /dev/null
+++ b/go.dev/testdata/golden/copyright/index.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Copyright - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+  <article class="Article ">
+    <h1>Copyright</h1>
+    <p>Except as <a href="https://developers.google.com/terms/site-policies#restrictions">noted</a>, the contents of this site
+are licensed under the <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0
+License</a>, and code is licensed under a <a href="https://golang.org/LICENSE">BSD license</a>.</p>
+
+  </article>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/css/styles.css b/go.dev/testdata/golden/css/styles.css
new file mode 100644
index 0000000..ab6525d
--- /dev/null
+++ b/go.dev/testdata/golden/css/styles.css
@@ -0,0 +1,3485 @@
+*,
+:before,
+:after {
+  box-sizing: border-box;
+}
+body {
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif,
+  'Apple Color Emoji', 'Segoe UI Emoji';
+  max-height: 100%;
+}
+button,
+input,
+select,
+textarea {
+  font: inherit;
+}
+code,
+pre {
+  font-family: SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
+}
+html,
+.Site {
+  max-height: 100%;
+  scroll-behavior: smooth;
+  scroll-padding-top: 4.6875rem;
+}
+a,
+a:link,
+a:visited {
+  color: #007d9c;
+  text-decoration: none;
+}
+a:hover {
+  text-decoration: underline;
+}
+.Site {
+  display: flex;
+  flex-direction: column;
+  margin: 0;
+}
+.bluebg {
+  background: #007d9c;
+}
+.SiteContent {
+  flex: 1;
+}
+.SiteContent--default {
+  margin-top: 3.5rem;
+}
+.SiteContent--lower {
+  margin-top: calc(3.5rem + 9.75rem);
+}
+.Site-footer {
+  border-top: 0.0625rem solid #dcdee0;
+  color: #fff;
+  font-size: 0.875rem;
+}
+.Site-header {
+  background: #007d9c;
+  border-bottom: none;
+  box-shadow: 0 0.0625rem 0.125rem rgba(171, 171, 171, 0.3);
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 10;
+}
+.CaseStudy-aboutBlock {
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.25rem;
+  box-sizing: border-box;
+  padding: 3.75rem 2rem 3.75rem;
+}
+.CaseStudy-aboutBlockTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 3rem;
+  margin-bottom: 0.6875rem;
+}
+.CaseStudy-aboutBlockImg {
+  display: block;
+  margin: 0 auto;
+  max-height: 3.125rem;
+}
+.CaseStudy-aboutBlockBody {
+  color: #464a4d;
+  font-size: 1rem;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+}
+/**
+ * Only show on wide viewports so the
+ * text never wraps or gets cut off.
+ */
+.Banner {
+  background-color: #202224;
+  display: none;
+}
+.Banner-inner {
+  align-items: center;
+  display: flex;
+  justify-content: space-between;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  min-height: 2.5rem;
+  padding: 0.5rem 1.5rem;
+}
+.Banner-message {
+  color: #fff;
+  margin-right: 1.25rem;
+}
+.Banner-action:link,
+.Banner-action:visited {
+  color: #fff;
+  text-decoration: underline;
+  white-space: nowrap;
+}
+@media only screen and (min-width: 48rem) {
+  .Banner {
+    display: block;
+  }
+  .SiteContent--default {
+    /* fixed header height + banner height */
+    margin-top: calc(3.5rem + 2.475rem);
+  }
+  .SiteContent--lower {
+    margin-top: calc(3.5rem + 4.875rem);
+  }
+}
+.UseCase-halfColumn {
+  color: #3e4042;
+  display: inline-block;
+  font-size: 1rem;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+  width: 100%;
+}
+@media only screen and (min-width: 48rem) {
+  .UseCase-halfColumn {
+    padding-right: 1.25rem;
+    width: 50%;
+  }
+}
+.UseCase-halfColumn > h2 {
+  line-height: 1.55;
+}
+.Header,
+.Container {
+  margin: 0 auto;
+  max-width: 75.75rem;
+}
+.Container--padded {
+  padding: 0 1.5rem;
+}
+.Footer {
+  background-color: #253443;
+}
+.Footer-links {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  padding: 2rem 1.5rem 2.625rem 1.5rem;
+}
+.Footer-linkColumn {
+  flex: 0 0 9.5rem;
+}
+a.Footer-link {
+  color: #fff;
+  display: flex;
+  flex: 1;
+  font-size: 0.875rem;
+  line-height: 2rem;
+}
+a.Footer-link--primary {
+  font-size: 1.125rem;
+  line-height: 1.75rem;
+  margin-bottom: 0.5rem;
+  margin-top: 0.75rem;
+}
+.Footer-bottom {
+  align-items: center;
+  border-top: 0.0625rem solid #dcdee0;
+  display: flex;
+  margin: 0 1.5rem;
+  min-height: 4.125rem;
+}
+.Footer-gopher {
+  align-self: flex-end;
+  width: 5rem;
+}
+.Footer-listRow {
+  display: flex;
+  flex: 1;
+  flex-wrap: wrap;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  text-align: center;
+}
+.Footer-listItem {
+  align-items: center;
+  display: flex;
+  flex: 1 100%;
+  justify-content: center;
+  margin: 0.4rem 0;
+  padding: 0 1rem;
+}
+.Footer-listItem a:link,
+.Footer-listItem a:visited {
+  color: #fff;
+}
+@media only screen and (min-width: 52rem) {
+  .Footer-listItem {
+    flex: initial;
+  }
+  .Footer-listItem + .Footer-listItem {
+    border-left: 0.0625rem solid #c6c8ca;
+  }
+}
+.Footer-feedbackButton {
+  background: none;
+  border: none;
+  color: #fff;
+  font-size: 0.875rem;
+  padding: 0;
+}
+.Footer-feedbackButton:hover {
+  cursor: pointer;
+  text-decoration: underline;
+}
+.Footer-googleLogo {
+  align-self: flex-end;
+  height: 1.5rem;
+  margin-bottom: 1.3rem;
+  text-align: right;
+}
+.Footer-googleLogoImg {
+  height: 1.5rem;
+}
+.Container--fullBleed {
+  margin: 0;
+  max-width: none;
+}
+.Header-nav {
+  align-items: center;
+  display: flex;
+  height: 3.5rem;
+  justify-content: space-between;
+}
+.Header-rightContent {
+  align-items: center;
+  display: flex;
+  height: 100%;
+  justify-content: flex-end;
+  width: 100%;
+}
+.Header--dark {
+  border-bottom: none;
+  color: #fff;
+}
+.Header-logo {
+  display: block;
+  height: 2rem;
+  margin-right: 2.25rem;
+  width: 5.125rem;
+}
+.Header-logo--hidden {
+  display: none;
+}
+.Header-logo--hidden {
+  display: none;
+}
+.Header-menuItem {
+  display: none;
+}
+.Header-menu {
+  align-items: stretch;
+  display: flex;
+  height: 100%;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+h1,
+h2 {
+  font-weight: 600;
+  letter-spacing: 0.03rem;
+}
+
+h3 {
+  font-size: 1.125rem;
+}
+
+h3,
+h4 {
+  letter-spacing: 0.08rem;
+}
+h5,
+h6 {
+  font-weight: 500;
+  letter-spacing: 0.08rem;
+}
+
+@media only screen and (min-width: 57.7rem) {
+  .Header {
+    padding: 0 1.5rem;
+  }
+  .Header-menuItem {
+    align-items: stretch;
+    display: inline-flex;
+    flex: none;
+  }
+  .Header-menu {
+    justify-content: flex-end;
+  }
+  .Header-navOpen {
+    display: none;
+  }
+}
+.Header-menuItem a:link,
+.Header-menuItem a:visited {
+  align-items: center;
+  border-bottom: 0.1875rem solid transparent;
+  border-top: 0.1875rem solid transparent; /* To ensure the text remains centered. */
+  color: #3e4042;
+  display: inline-flex;
+  margin: 0 0.3125rem;
+  padding: 0 0.9375rem;
+  text-align: center;
+  text-decoration: none;
+  width: 100%;
+}
+.Header--dark .Header-menuItem a:link,
+.Header--dark .Header-menuItem a:visited {
+  color: #fff;
+}
+.Header-menuItem--active a:link,
+.Header-menuItem--active a:visited {
+  border-bottom-color: #00add8;
+  font-weight: bold;
+}
+.Header-menuItem a:hover {
+  border-bottom-color: #fff;
+  color: #3e4042;
+}
+.Header-navOpen {
+  background: no-repeat center/2rem url('/images/menu-24px.svg');
+  border: none;
+  height: 2.5rem;
+  margin: auto 1rem;
+  width: 2.5rem;
+}
+.Header-navOpen--white {
+  background: no-repeat center/2rem url('/images/menu-24px-white.svg');
+}
+.NavigationDrawer {
+  background: #fff;
+  height: 100%;
+  left: auto;
+  max-width: 27rem;
+  position: fixed;
+  right: 0;
+  top: 0;
+  transform: translateX(100%);
+  transition: transform 100ms ease-in-out;
+  width: 85%;
+  z-index: 20;
+}
+.NavigationDrawer.is-active {
+  transform: translateX(0);
+}
+.NavigationDrawer-header {
+  align-items: center;
+  display: flex;
+  justify-content: space-between;
+}
+.NavigationDrawer-logo {
+  display: block;
+  height: 2rem;
+  margin: 1rem 1rem;
+  width: 5.125rem;
+}
+.NavigationDrawer-list {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+.NavigationDrawer-listItem {
+  font-size: 1.125rem;
+  margin: 0 0.5rem;
+}
+.NavigationDrawer-listItem a:link,
+.NavigationDrawer-listItem a:visited {
+  display: block;
+  margin: 0 1rem;
+  padding: 0.5rem;
+}
+.NavigationDrawer-listItem--active {
+  background-color: #bfeaf4;
+  border-radius: 0.4rem;
+}
+.NavigationDrawer-scrim {
+  display: none;
+  height: 100%;
+  left: 0;
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 5;
+}
+.NavigationDrawer.is-active + .NavigationDrawer-scrim {
+  background-color: rgba(0, 0, 0, 0.32);
+  display: block;
+}
+.Article {
+  color: #202224;
+  margin: 0 auto 1.875rem;
+  max-width: 45rem;
+  padding: 0 1.5rem;
+}
+.Article--solutions {
+  max-width: 75.75rem;
+}
+.Article-author,
+.Article-date {
+  font-size: 0.875rem;
+  line-height: 1.375rem;
+}
+.Article-date {
+  color: #6e7072;
+}
+.Article h1,
+.Article h2,
+.Article h3,
+.Article h4,
+.Article h5,
+.Article h6 {
+  color: #202224;
+}
+.Article h1 {
+  font-size: 2.25rem;
+  font-weight: 400;
+  line-height: 3rem;
+  margin: 1rem 0 1rem;
+}
+.Article h2 {
+  font-size: 1.4rem;
+  font-weight: normal;
+  line-height: 2rem;
+  margin-top: 2.25rem;
+}
+.Article h3 {
+  font-size: 1.125rem;
+  font-weight: 500;
+}
+.Article h4,
+.Article h5,
+.Article h6 {
+  font-size: 1rem;
+}
+.Article p,
+.Article ul,
+.Article ol {
+  color: #3e4042;
+  font-size: 1rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.75rem;
+}
+.Article p:last-of-type {
+  margin-bottom: 0;
+}
+.Article ol .Article pre {
+  background-color: #fafafa;
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.375rem;
+  color: #3e4042;
+  font-size: 1rem;
+  line-height: 1.45;
+  overflow-x: auto;
+  padding: 1.5rem;
+}
+.Article pre,
+.Article code {
+  color: #3e4042;
+}
+@media only screen and (min-width: 57.7rem) {
+  .Article h1,
+  .Article h2,
+  .Article h4,
+  .Article h5,
+  .Article h6 {
+    margin: initial;
+  }
+  .Article h2 + h3 {
+    margin-top: 1.5rem;
+  }
+  .Article h3 {
+    margin-top: 1.875rem;
+  }
+  .Article h2 {
+    font-size: 1.5rem;
+    font-weight: 500;
+    line-height: 2.25rem;
+  }
+}
+.BreadcrumbNav-inner {
+  display: flex;
+  justify-content: start;
+  list-style: none;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  padding: 0 0 1rem;
+}
+.BreadcrumbNav-li {
+  align-items: center;
+  display: flex;
+  white-space: nowrap;
+}
+a.BreadcrumbNav-link {
+  color: #202224;
+  font-size: 0.875rem;
+  text-decoration: none;
+}
+.BreadcrumbNav-li:last-child {
+  padding-right: 0.812rem;
+  white-space: normal;
+}
+.BreadcrumbNav-li:not(:last-child):after {
+  background: url('/images/icons/arrow-forward.svg') no-repeat;
+  content: ' ';
+  display: block;
+  height: 1rem;
+  margin: 0 0.8125rem;
+  width: 1rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .BreadcrumbNav-inner {
+    margin-top: 0;
+  }
+}
+.SubHero-gridContainer,
+.WhoUses-gridContainer,
+.WhoUsesHero-gridContainer,
+.WhoUsesCaseStudyList-gridContainer,
+.WhyGo-gridContainer,
+.UseCases-gridContainer,
+.LearnGo-gridContainer {
+  display: flex;
+  flex-direction: column;
+  flex-wrap: wrap;
+  margin: 0 auto;
+  max-width: 75.75rem;
+}
+.SubHero-gridContainer,
+.WhoUses-gridContainer,
+.WhoUsesHero-gridContainer,
+.WhyGo-gridContainer,
+.UseCases-gridContainer,
+.LearnGo-gridContainer {
+  padding: 3rem 1.5rem 1rem;
+}
+.WhoUsesHero-gridContainer {
+  align-items: center;
+}
+@media only screen and (min-width: 28rem) {
+  .WhoUses-gridContainer,
+  .WhoUsesHero-gridContainer,
+  .WhoUsesCaseStudyList-gridContainer,
+  .WhyGo-gridContainer,
+  .UseCases-gridContainer,
+  .LearnGo-gridContainer {
+    flex-direction: row;
+    justify-content: space-between;
+  }
+  .WhoUsesHero-gridContainer {
+    align-items: start;
+  }
+}
+.WhyGo,
+.WhoUses {
+  background-color: #fff;
+}
+.LearnGo,
+.UseCases {
+  background-color: #fafafa;
+}
+.WhoUses-header,
+.WhyGo-header,
+.LearnGo-header {
+  flex: 0 0 100%;
+  text-align: center;
+}
+.WhoUses-headerH2,
+.WhyGo-headerH2,
+.GettingStartedGo-headerH2,
+.LearnGo-header h2 {
+  font-size: 1.25rem;
+  font-style: normal;
+  font-weight: 500;
+  letter-spacing: 0.188rem;
+  line-height: 1.75rem;
+  margin-bottom: 1.5rem;
+  margin-bottom: 0.5rem;
+  margin-top: 0;
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUses-headerH2,
+  .WhyGo-headerH2,
+  .GettingStartedGo-headerH2,
+  .LearnGo-header h2 {
+    font-size: 2.25rem;
+    line-height: 2.625rem;
+    margin-bottom: 1.5rem;
+  }
+}
+.GoCarousel {
+  background-color: #fafafa;
+  display: flex;
+  justify-items: center;
+  overflow-x: hidden;
+  position: relative;
+}
+.GoCarousel-wrapper {
+  margin: auto;
+  max-width: 62.5rem;
+  overflow: hidden;
+  position: relative;
+  width: 90vw;
+  z-index: 1;
+}
+.GoCarousel-slide {
+  border-radius: 0.125rem;
+  cursor: pointer;
+  display: flex;
+  position: relative;
+  transition: all 1s;
+}
+.GoCarousel-controlPrev,
+.GoCarousel-controlNext {
+  background-color: #fff;
+  border-radius: 1.25rem;
+  border-width: 0;
+  box-shadow: 0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15),
+    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3);
+  color: #848688;
+  display: inline-block;
+  font-size: 2.5rem;
+  height: 2rem;
+  line-height: 2.5rem;
+  outline: none;
+  padding: 0 0.375rem 0 0.25rem;
+  position: absolute;
+  transition: transform 100ms;
+  width: 2rem;
+  z-index: 2;
+}
+.GoCarousel-controlPrev:focus,
+.GoCarousel-controlNext:focus {
+  box-shadow: 0 0.0625rem 0.5rem rgba(60, 64, 67, 0.25),
+    0 0.0625rem 0.25rem rgba(60, 64, 67, 0.4);
+  color: #555759;
+}
+.GoCarousel-controlPrev[hidden],
+.GoCarousel-controlNext[hidden] {
+  display: none;
+}
+.GoCarousel-icon {
+  user-select: none;
+}
+.GoCarousel-controlPrev,
+.GoCarousel-controlNext {
+  cursor: pointer;
+  font-size: 1.6875rem;
+  text-align: center;
+  top: 50%;
+  transform: translateY(-50%);
+}
+.GoCarousel-controlPrev {
+  left: 1rem;
+}
+.GoCarousel-controlNext {
+  right: 1rem;
+}
+.GoCarousel-controlPrev:active,
+.GoCarousel-controlNext:active {
+  transform: translateY(-50%) scale(0.9);
+}
+.GoCarousel-controlsContainer {
+  display: block;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  position: relative;
+  width: auto;
+  width: 100%;
+}
+.GettingStartedGo-gridContainer {
+  display: flex;
+  flex-direction: column;
+  flex-wrap: wrap;
+  margin: 0 auto;
+  max-width: 75.75rem;
+  padding: 3.75rem 1.5rem 2.625rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .GettingStartedGo-gridContainer {
+    flex-direction: row;
+  }
+  .GoCarousel-controlPrev,
+  .GoCarousel-controlNext {
+    top: 50%;
+  }
+}
+.GettingStartedGo-header {
+  border-right: 0;
+  flex: 0 37%;
+  margin-bottom: 2rem;
+  padding-right: 0;
+}
+@media only screen and (min-width: 57.7rem) {
+  .GettingStartedGo-header {
+    border-right: 0.0133rem solid #f0f1f2;
+    margin-bottom: 0;
+    padding-right: 3.375rem;
+  }
+}
+.GettingStartedGo-headerDesc {
+  color: #3e4042;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+}
+.GettingStartedGo-ctas {
+  font-size: 0.875rem;
+  font-weight: normal;
+  letter-spacing: 0.0164rem;
+  line-height: 1rem;
+  margin-top: 1rem;
+}
+a.GettingStartedGo-primaryCta {
+  background: #007d9c;
+  border-radius: 0.125rem;
+  color: #fff;
+  display: inline-block;
+  margin-right: 1.3125rem;
+  padding: 0.4375rem 1.3125rem;
+  text-decoration: none;
+}
+.GettingStartedGo-resourcesSection {
+  display: flex;
+  flex: 1;
+  flex-direction: column;
+}
+@media only screen and (min-width: 38rem) {
+  .GettingStartedGo-resourcesSection {
+    flex-direction: row;
+  }
+}
+.GettingStartedGo-resourcesList {
+  flex: 50%;
+  list-style: none;
+  margin: 0;
+  padding-left: 0;
+  padding-right: 2.375rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .GettingStartedGo-resourcesList {
+    padding-left: 3.375rem;
+    padding-right: 0;
+  }
+}
+.GettingStartedGo-resourcesHeader {
+  color: #555759;
+  font-size: 0.6875rem;
+  letter-spacing: 0.0625rem;
+  margin-bottom: 1rem;
+  text-transform: uppercase;
+}
+.GettingStartedGo-resourceItem {
+  margin-bottom: 1rem;
+}
+a.GettingStartedGo-resourceItemTitle {
+  color: #202224;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.GettingStartedGo-resourceItemDescription {
+  color: #555759;
+  font-size: 0.8125rem;
+  line-height: 1.5rem;
+}
+.WhoUses-header h4,
+.WhyGo-headerH4,
+.LearnGo-header h4,
+.WhoUses-subheader {
+  color: #3e4042;
+  font-size: 0.875rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.006rem;
+  line-height: 1.125rem;
+  margin-bottom: 1.5rem;
+  margin-top: 0;
+}
+@media only screen and (min-width: 38rem) {
+  .WhoUses-header h4,
+  .WhyGo-headerH4,
+  .LearnGo-header h4,
+  .WhoUses-subheader {
+    font-size: 1rem;
+    line-height: 1.5rem;
+  }
+}
+.Hero {
+  color: #fff;
+}
+.Hero h1 {
+  font-size: 2.625rem;
+  font-weight: 500;
+  letter-spacing: 0.3rem;
+  margin: 1rem 0;
+}
+.Hero h2 {
+  font-size: 1.5rem;
+  font-weight: 400;
+  letter-spacing: 0.011rem;
+  max-width: 40rem;
+}
+.Hero-gridContainer {
+  column-gap: 1rem;
+  display: grid;
+  grid-template-columns: 3fr minmax(6.25rem, 1fr);
+  margin: 0 auto;
+  max-width: 40rem;
+  padding: 1rem 1.5rem 0;
+}
+.Hero-actions {
+  display: flex;
+  flex: 3 1;
+  flex-direction: column;
+  flex-wrap: wrap;
+  grid-column: 1 / 3;
+  margin-top: 1rem;
+}
+.Hero-actions > div {
+  display: flex;
+  width: 100%;
+}
+.Hero-actions a,
+.Hero-actions a:visited,
+.Hero-actions a:hover {
+  color: #fff;
+  margin: 0.5rem 0;
+  max-width: 13.75rem;
+  padding: 1rem 0;
+  text-align: center;
+  text-decoration: underline;
+}
+.Hero-actions a.Primary,
+.Hero-actions a.Secondary {
+  align-items: center;
+  border-radius: 0.25rem;
+  display: flex;
+  flex-wrap: nowrap;
+  font-size: 0.875rem;
+  height: 2.5rem;
+  justify-content: center;
+  line-height: 1.3125rem;
+  margin: 0;
+  text-decoration: none;
+  width: 100%;
+}
+.Hero-actions a.Primary {
+  margin: 0 1.3125rem 0 0;
+}
+.Hero-actions a.Primary {
+  background-color: #fddd00;
+  border: 0.0625rem solid #fddd00;
+  box-shadow: 0 0.125rem 0.3125rem 0 rgba(0, 0, 0, 0.2);
+  color: #202224;
+}
+.Hero-actions a.Secondary {
+  border: 0.0625rem solid #fff;
+  color: #fff;
+}
+.DownloadBtn-versionNum {
+  font-size: 0.6875rem;
+  font-weight: 300;
+}
+.Hero-gopher {
+  align-items: flex-end;
+  display: flex;
+  grid-column: 2 / 3;
+  grid-row: 1 / 2;
+  justify-content: flex-end;
+}
+.Hero-gopherLadder {
+  bottom: 0;
+  height: 15rem;
+  max-width: 8rem;
+  object-fit: cover;
+  object-position: 100% 0;
+  right: 0;
+  width: 100%;
+}
+.Hero-blurb {
+  grid-column: 1 / 2;
+  margin: 0 auto;
+}
+.Hero-blurb h1 {
+  font-size: 1.375rem;
+  font-weight: 500;
+  letter-spacing: 0.0019rem;
+  margin-top: 0;
+}
+.Hero-blurbList {
+  font-size: 0.8125rem;
+  list-style: none;
+  margin-bottom: 0;
+  margin-top: 1rem;
+  padding: 0;
+}
+.Hero-blurbList li {
+  line-height: 1.125rem;
+  margin-bottom: 0.5rem;
+  padding-left: 1.5rem;
+  position: relative;
+}
+.Hero-blurbList svg {
+  left: 0;
+  margin-right: 0.6875rem;
+  position: absolute;
+  top: 0.3125rem;
+}
+.Hero-footnote {
+  flex-direction: column;
+  font-size: 0.8125rem;
+  letter-spacing: 0.007rem;
+  margin: 0.5rem 0 1.5rem;
+}
+.Hero-footnote p {
+  margin: 0;
+}
+.Hero-footnote p + p {
+  margin-top: 0.75rem;
+}
+.Hero-footnote a {
+  color: #fff;
+  text-decoration: underline;
+}
+.SubHero-gridContainer {
+  display: grid;
+  gap: 0 5vw;
+  grid-template-columns: 1fr;
+}
+.SubHero-blurb {
+  margin: 0 auto 0;
+  max-width: 25rem;
+}
+.SubHero-blurb:not(:last-of-type) {
+  margin: 0 auto 4rem;
+}
+.SubHero-blurb h3 {
+  margin-top: 0;
+  text-align: center;
+}
+.SubHero-blurb p {
+  margin-bottom: 0;
+}
+@media only screen and (min-width: 38rem) {
+  .Hero-blurb {
+    margin: auto;
+  }
+}
+@media only screen and (min-width: 48rem) {
+  .Hero-gridContainer {
+    gap: 0 5vw;
+    grid-template-columns: 2.5fr minmax(auto, 16.25rem);
+    max-width: 75.75rem;
+  }
+  .Hero-gopherLadder {
+    height: 23rem;
+    max-width: 11.5rem;
+  }
+  .Hero-actions {
+    align-items: flex-start;
+    flex: 1 1;
+    flex-direction: row;
+    grid-column: 1 / 2;
+    justify-content: initial;
+  }
+  .Hero-actions a,
+  .Hero-actions a:visited,
+  .Hero-actions a:hover {
+    max-width: 17.5rem;
+  }
+  .Hero-actions a.Primary,
+  .Hero-actions a.Secondary {
+    font-size: 1.5rem;
+    height: 4rem;
+    line-height: 1.75rem;
+  }
+  .Hero-actions a.Secondary {
+    margin: 0;
+  }
+  .Hero-footnote {
+    margin: 1rem 0 1.5rem;
+  }
+  .Hero-blurb {
+    grid-column: 1 / 2;
+    margin: 2.5rem auto 0;
+  }
+  .Hero-gopher {
+    grid-row: 1 / 3;
+  }
+  .Hero-blurb h1 {
+    font-size: 2.45rem;
+    font-weight: 500;
+  }
+  .Hero-blurbList {
+    font-size: 1rem;
+  }
+  .SubHero-gridContainer {
+    grid-template-columns: 1fr 1fr 1fr;
+  }
+  .SubHero-blurb {
+    margin: 0 auto;
+  }
+  .DownloadBtn-versionNum {
+    font-size: 1rem;
+    font-weight: 300;
+  }
+}
+.WhoUsesHero {
+  background-color: #fafafa;
+}
+.WhoUses-subheader {
+  color: #3e4042;
+  margin-bottom: 0;
+  margin-left: auto;
+  margin-right: auto;
+  max-width: 25rem;
+}
+.WhoUsesHero-gridContainer {
+  display: flex;
+  justify-content: space-between;
+  width: 100%;
+}
+.WhoUses-heroImg {
+  max-width: 38.75rem;
+  width: 100%;
+}
+.WhoUses-heroInnerLeft {
+  line-height: 1.5rem;
+  margin-bottom: 2rem;
+  margin-right: 0;
+  max-width: 19.625rem;
+  text-align: center;
+  width: 90%;
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUses-heroInnerLeft {
+    margin-right: 2rem;
+    text-align: start;
+    width: 19.625rem;
+  }
+  .WhoUses-subheader {
+    max-width: none;
+  }
+}
+.WhoUses-heroInnerLeft h3 {
+  font-size: 1.5rem;
+  font-weight: normal;
+  margin: 1.375rem 0;
+}
+.WhoUses-heroInnerLeft p {
+  color: #6e7072;
+  font-size: 0.875rem;
+  margin-bottom: 1.188rem;
+}
+.WhoUsesCaseStudyList {
+  align-content: center;
+  display: flex;
+  flex: 0 0 100%;
+  justify-content: space-evenly;
+  list-style: none;
+}
+.WhoUsesCaseStudyList-gridContainer {
+  display: grid;
+  gap: 0.8rem;
+  grid-template-columns: repeat(3, minmax(0, 33.333%));
+  margin: 1.5rem auto 3.75rem;
+  padding: 0;
+  width: 100%;
+}
+.WhoUsesCaseStudyList-caseStudy {
+  align-items: center;
+  display: flex;
+  flex: 0 1 50%;
+  height: 3.8512rem;
+  justify-content: center;
+  position: relative;
+}
+.WhoUsesCaseStudyList-caseStudy p {
+  display: none;
+}
+.WhoUsesCaseStudyList-caseStudyLink:link,
+.WhoUsesCaseStudyList-caseStudyLink:visited {
+  color: #6e7072;
+  flex-direction: column;
+  text-align: center;
+  text-decoration: none;
+  transition: box-shadow 0.2s ease-in-out;
+}
+.WhoUsesCaseStudyList-caseStudyLink:link:hover {
+  box-shadow: 0 -0.0625rem 0.3125rem rgba(128, 134, 139, 0.09),
+    0 0.1875rem 0.3125rem rgba(128, 134, 139, 0.06),
+    0 0.0625rem 0.125rem rgba(60, 64, 67, 0.3),
+    0 0.0625rem 0.1875rem rgba(60, 64, 67, 0.15);
+}
+.WhoUsesCaseStudyList-caseStudyLink img {
+  height: auto;
+}
+@media only screen and (max-width: 38rem) {
+  .WhoUsesCaseStudyList-caseStudyLink img {
+    max-height: 2rem;
+    max-width: 100%;
+  }
+}
+.WhoUsesCaseStudyList-logo {
+  margin: auto;
+  max-height: 4rem;
+  max-width: 9.375rem;
+  width: auto;
+}
+.WhoUsesCaseStudyList-caseStudyLink:link,
+.WhoUsesCaseStudyList-caseStudyLink:visited {
+  border-radius: 0.25rem;
+  box-shadow: #f0f1f2 0 0.0625rem 0.25rem;
+  display: flex;
+  height: 100%;
+  padding: 0 0.3rem;
+  width: 100%;
+}
+.WhoUsesCaseStudyList-seeAll {
+  display: inline-block;
+  margin-left: 1rem;
+}
+.WhoUsesCaseStudyList-seeAll:hover {
+  text-decoration: none;
+}
+@media only screen and (min-width: 32rem) {
+  .WhoUsesCaseStudyList-gridContainer {
+    gap: 1rem 1.125rem;
+  }
+  .WhoUsesCaseStudyList-caseStudyLink {
+    padding: 0 1.5rem;
+  }
+  .WhoUsesCaseStudyList-caseStudy {
+    height: 5.9375rem;
+  }
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUsesCaseStudyList-gridContainer {
+    grid-template-columns: repeat(4, minmax(0, 25%));
+  }
+  .WhoUsesCaseStudyList-caseStudyLink:link,
+  .WhoUsesCaseStudyList-caseStudyLink:visited {
+    color: transparent;
+  }
+  .WhoUses-caseStudy a:link:hover,
+  .WhoUses-caseStudy a:visited:hover {
+    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  }
+  .WhoUsesCaseStudyList-caseStudyLink:link:hover
+    .WhoUsesCaseStudyList-caseStudyLink:visited:hover {
+    color: #6e7072;
+    transition: all 0.2s ease-in-out;
+  }
+}
+@media only screen and (min-width: 66.75rem) {
+  .WhoUsesCaseStudyList-gridContainer {
+    grid-template-columns: repeat(6, 1fr);
+  }
+  .WhoUsesCaseStudyList-caseStudy {
+    flex: 0 1 1fr;
+  }
+}
+.FeaturedUsers {
+  margin: 2.375rem auto 3.75rem;
+}
+.FeaturedUsers table {
+  border-collapse: collapse;
+  margin-bottom: 1.5rem;
+}
+.FeaturedUsers table thead {
+  background-color: #fafafa;
+}
+.FeaturedUsers table thead th {
+  color: #555759;
+  font-size: 1rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+  padding: 0.75rem 0;
+}
+.FeaturedUsers table thead th:not(:nth-child(1)) {
+  text-align: left;
+}
+.FeaturedUsers table td th:not(:nth-child(1)) {
+  text-align: left;
+}
+.FeaturedUsers table tr td,
+.FeaturedUsers table tr th {
+  padding: 1rem 0.3rem;
+  width: 30%;
+}
+.FeaturedUsers table tr td:first-of-type {
+  padding-left: 1rem;
+}
+.FeaturedUsers table tr td:first-of-type,
+.FeaturedUsers table tr th:first-of-type {
+  width: 15%;
+}
+.FeaturedUsers table tr td:nth-of-type(2),
+.FeaturedUsers table tr th:nth-of-type(2) {
+  width: 40%;
+}
+.FeaturedUsers table td {
+  color: #3e4042;
+  font-size: 0.875rem;
+  letter-spacing: 0.0117rem;
+  line-height: 1.5rem;
+  vertical-align: top;
+}
+.FeaturedUsers table td ul {
+  margin-top: 0;
+  padding-left: 1rem;
+}
+.FeaturedUsers table td ul li {
+  font-size: 0.875rem;
+  letter-spacing: 0.0117rem;
+  line-height: 1.5rem;
+}
+.FeaturedUsers table thead {
+  color: #555759;
+  font-size: 1rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.FeaturedUsers table tbody tr {
+  border-bottom: 0.0625rem solid #dcdee0;
+}
+.FeaturedUsers table tbody tr td {
+  margin: 0;
+}
+.FeaturedUsers table tbody tr td img {
+  width: 5rem;
+}
+.FeaturedUsers-moreProjectsBtn {
+  background: transparent;
+  border: none;
+  color: #5dc9e2;
+  cursor: pointer;
+  font-size: 0.875rem;
+  padding: 0.5rem 0;
+  position: relative;
+}
+.FeaturedUsers--hiddenDesktop {
+  display: block;
+  height: 3rem;
+  margin-bottom: 1rem;
+  width: auto;
+}
+.FeaturedUsers--hiddenMobile,
+.FeaturedUsers--hiddenMobile {
+  display: none;
+}
+@media only screen and (max-width: 48rem) {
+  .FeaturedUsers table tbody tr td:last-of-type {
+    padding-left: 1rem;
+    padding-top: 5rem;
+  }
+}
+@media only screen and (min-width: 48rem) {
+  .FeaturedUsers--hiddenMobile,
+  .FeaturedUsers--hiddenMobile {
+    display: table-cell;
+  }
+  .FeaturedUsers table tr td {
+    padding: 1rem 2rem 1rem 0;
+    width: 30%;
+  }
+  .FeaturedUsers--hiddenDesktop {
+    display: none;
+  }
+}
+.WhoUsesCaseStudy-librariesWrapper {
+  margin-bottom: 2.25rem;
+  margin-top: 1.875rem;
+}
+a.WhoUsesCaseStudy-librariesViewMoreLink {
+  color: #007d9c;
+  font-size: 0.875rem;
+}
+.WhoUsesCaseStudy-libraryTitle {
+  font-weight: 400;
+}
+.WhoUsesCaseStudy-librariesList {
+  column-gap: 7.375rem;
+  display: grid;
+  grid-template-columns: 1fr;
+  list-style: none;
+  margin: 1.5rem 0 0;
+  padding: 0;
+}
+.WhoUsesCaseStudy-librariesList h3 {
+  font-weight: 500;
+}
+.WhoUsesCaseStudy-library {
+  margin: 0 0 1.5rem;
+}
+.WhoUsesCaseStudy-library p {
+  color: #3e4042;
+  font-size: 1rem;
+  letter-spacing: 0.0111rem;
+  line-height: 1.1875rem;
+  margin: 0.5rem 0 0;
+}
+.WhoUsesCaseStudy-view-more {
+  margin-bottom: 2.5rem;
+}
+.WhoUsesCaseStudy-view-more a {
+  color: #3e4042;
+  font-size: 0.875rem;
+  font-style: normal;
+  font-weight: 500;
+  letter-spacing: 0.0156rem;
+  line-height: 1rem;
+  margin-bottom: 2.5rem;
+  text-align: center;
+}
+@media only screen and (min-width: 38rem) {
+  .WhoUsesCaseStudy-librariesList {
+    column-gap: 4rem;
+    grid-template-columns: 1fr 1fr;
+  }
+}
+.UseCases-gridContainer {
+  flex-direction: row;
+  justify-content: space-around;
+  margin: -1rem 0 0 -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
+}
+.UseCase {
+  flex: 1 0 15.625rem;
+  margin-top: 1rem;
+  max-width: 15.625rem;
+  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
+}
+.UseCase-logo {
+  align-items: center;
+  background: linear-gradient(10.64deg, #007d9c 0%, #00a29c 100%);
+  border-radius: 50%;
+  display: flex;
+  height: 3.75rem;
+  justify-content: center;
+  margin: auto;
+  width: 3.75rem;
+}
+.UseCase-logo img {
+  height: 2.625rem;
+  width: 2.625rem;
+}
+.UseCase-title {
+  text-align: center;
+}
+.UseCase-action {
+  font-size: 1.125rem;
+  line-height: 2.5rem;
+  text-align: center;
+}
+.WhyGo-gridContainer {
+  align-items: center;
+  justify-content: center;
+}
+.WhyGo-reasons {
+  column-gap: 3.313rem;
+  display: grid;
+  grid-template-columns: repeat(1, 1fr);
+  justify-content: space-between;
+  list-style: none;
+  padding-left: 0;
+  row-gap: 2rem;
+}
+.WhyGo-forwardArrowIcon,
+.Solutions-forwardArrowIcon {
+  font-size: 1rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhyGo-reasons {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+@media only screen and (min-width: 72.75rem) {
+  .WhyGo-reasons {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+.WhyGo-reason {
+  border: 0.063rem solid #dcdee0;
+  border-radius: 0.25rem;
+  display: flex;
+  flex: 0 30%;
+  flex-direction: column;
+  height: 100%;
+  justify-content: space-between;
+  margin-bottom: 1.5rem;
+  margin-top: 0;
+  max-width: 40rem;
+}
+.WhyGo-reasonDetails {
+  padding: 2rem 2rem 0.188rem;
+}
+.WhyGo-reasonFooter {
+  background-color: rgba(246, 248, 248, 0.35);
+  padding: 1rem 2rem 2rem;
+}
+.WhyGo-reasonIcon {
+  margin-bottom: 1rem;
+  text-align: left;
+}
+.WhyGo-reasonIcon img {
+  height: 2.25rem;
+}
+.WhyGo-reasonLearnMoreLink {
+  margin-top: 1.5rem;
+}
+.WhyGo-reasonLearnMoreLink a {
+  align-items: center;
+  display: flex;
+  font-size: 0.875rem;
+  letter-spacing: 0.016rem;
+  text-decoration: none;
+}
+.WhyGo-reasonPackages {
+  color: #3e4042;
+  font-size: 0.875rem;
+  letter-spacing: 0.055rem;
+}
+.WhyGo-reasonPackagesHeader {
+  margin-bottom: 0.688rem;
+}
+.WhyGo-reasonPackagesHeader img {
+  height: 0.938rem;
+  margin-right: 0.376rem;
+  padding: 0.063rem 0 0.063rem;
+  vertical-align: bottom;
+}
+.WhyGo-reasonPackagesList {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  padding: 0;
+}
+.WhyGo-reasonPackage {
+  border: 0.063rem solid #bfeaf4;
+  border-radius: 0.125rem;
+  box-sizing: border-box;
+  color: #007d9c;
+  font-size: 0.688rem;
+  letter-spacing: 0.0129rem;
+  line-height: 0.813rem;
+  list-style: none;
+  margin: 0.125rem 0.5rem 0.5rem 0;
+  padding: 0.188rem 0.188rem;
+
+  text-align: center;
+}
+.WhyGo-reasonShowMoreImgWrapper {
+  align-items: center;
+  background-color: #fafafa;
+  border-radius: 50%;
+  display: flex;
+  height: 14.313rem;
+  margin: 2.5rem auto 1.375rem;
+  width: 14.313rem;
+}
+.WhyGo-reasonShowMoreImg {
+  margin-left: 5%;
+  width: 100%;
+}
+.WhyGo-reasonShowMoreLink {
+  font-size: 0.875rem;
+  letter-spacing: 0.0164rem;
+  text-align: center;
+}
+.WhyGo-reasonShowMoreLink a {
+  border: 0.063rem solid #bfeaf4;
+  border-radius: 0.125rem;
+  box-sizing: border-box;
+  display: inline-block;
+  padding: 0.275rem 1.063rem 0.275rem 0.275rem;
+  text-decoration: none;
+}
+.WhyGo-reasonShowMoreLink a i {
+  padding-bottom: 0.063rem;
+  vertical-align: middle;
+}
+.WhyGo-reasonText p {
+  color: #3e4042;
+  font-size: 1rem;
+  font-weight: normal;
+  letter-spacing: 0.006rem;
+  line-height: 1.5rem;
+}
+.WhyGo-reasonTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.WhyGo-gopher {
+  flex: 1;
+  max-width: 28.4375rem;
+  text-align: center;
+}
+.WhyGo-gopher img {
+  width: 100%;
+}
+
+.headerWithLink {
+  display: flex;
+  justify-content: space-between;
+  width: 100%;
+}
+
+.headerWithLink h3 {
+  font-weight: 500;
+  margin-bottom: 0;
+}
+.headerLink {
+  align-self: center;
+  font-size: 1.125rem;
+  font-weight: 600;
+  margin: 0;
+}
+.LearnGo-subHeader {
+  display: flex;
+  justify-content: space-between;
+  width: 100%;
+}
+.LearnGo-subHeader h3 {
+  color: #6e7072;
+  font-size: 1rem;
+  font-weight: normal;
+}
+.LearnGo-courses {
+  display: flex;
+  flex: 1 0 100%;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: space-around;
+  list-style: none;
+  margin: 0 0 1rem -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
+  padding-left: 0;
+}
+@media only screen and (min-width: 72.75rem) {
+  .LearnGo-courses {
+    justify-content: space-between;
+  }
+}
+.LearnGo-courseItem {
+  align-items: center;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  padding: 1rem 0 0 1rem; /* Gutter between grid cells. */
+}
+.LearnGo-courseItem a {
+  color: #3e4042;
+}
+.LearnGo-courseTitle {
+  text-align: center;
+}
+.LearnGo-courseImage {
+  align-items: center;
+  background-color: #fff;
+  border-radius: 0.3125rem;
+  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  display: flex;
+  height: 11rem;
+  justify-content: center;
+  margin: auto;
+  max-width: 16.5rem;
+  width: 16.5rem;
+}
+.LearnGo-courseImage img {
+  max-height: 100%;
+  max-width: 100%;
+}
+.GoCarousel-eventsWrapper {
+  margin: auto;
+  max-width: 68rem;
+  overflow: hidden;
+  position: relative;
+  width: 84vw;
+}
+.GoCarousel-eventsSlides {
+  display: flex;
+  left: 0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  position: relative;
+  top: 0;
+  transition: left 0.2s ease-out;
+  width: 625rem;
+}
+.GoCarousel-eventGroup {
+  align-items: flex-start;
+  border-radius: 0.125rem;
+  cursor: pointer;
+  display: flex;
+  margin: 1rem 0;
+  padding: 1rem;
+  position: relative;
+  transition: all 1s;
+  width: 84vw;
+}
+.GoCarousel-eventsSlidesingleItem {
+  display: flex;
+  flex: 1;
+  margin-right: 2rem;
+}
+.GoCarousel-eventThumbnail {
+  background-color: #fff;
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.5rem;
+  display: flex;
+  height: 100%;
+  margin-right: 1.3125rem;
+  width: 6.625rem;
+}
+.GoCarousel-eventThumbnail img {
+  align-self: center;
+  height: auto;
+  object-fit: contain;
+  padding: 1rem;
+  width: 100%;
+}
+.GoCarousel-eventBody {
+  display: inline-flex;
+  flex: 1;
+  flex-direction: column;
+  height: 100%;
+  min-width: 0;
+  position: relative;
+}
+.GoCarousel-eventDate {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+}
+.GoCarousel-eventDate p {
+  color: #555759;
+  font-size: 0.8125rem;
+  font-style: normal;
+  line-height: 1rem;
+  margin: 0 0 1.5rem 0;
+}
+.GoCarousel-eventHeader {
+  color: #555759;
+  font-size: 0.6875rem;
+  font-weight: 500;
+  letter-spacing: 0.0625rem;
+  line-height: 1rem;
+  margin: 0 0 0.875rem;
+  text-transform: uppercase;
+}
+.GoCarousel-eventName {
+  margin: 0 0 0.25rem 0;
+  width: 100%;
+}
+.GoCarousel-eventName a {
+  -webkit-box-orient: vertical;
+  color: #202224;
+  display: -webkit-box;
+  font-weight: 500;
+  -webkit-line-clamp: 2;
+  line-height: 1.5rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.LearnGo-eventDescription {
+  -webkit-box-orient: vertical; /* See webkit-line-clamp */
+  display: -webkit-box; /* See webkit-line-clamp */
+  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
+}
+.GoCarousel-viewMore {
+  bottom: 0;
+  font-size: 0.875rem;
+  letter-spacing: 0.026rem;
+  line-height: 1rem;
+  margin: 0;
+  min-width: 6.25rem;
+  position: absolute;
+}
+@media only screen and (min-width: 48rem) {
+  .GoCarousel-eventGroup {
+    width: 42vw;
+  }
+}
+@media only screen and (min-width: 66.75rem) {
+  .GoCarousel-eventThumbnail img {
+    display: block;
+    margin: auto;
+  }
+  .GoCarousel-eventDate {
+    flex: 0;
+    flex-direction: row;
+    justify-content: flex-start;
+    min-width: 9rem;
+  }
+  .GoCarousel-eventText {
+    display: flex;
+    flex-direction: column;
+    height: 100%;
+    min-width: 0;
+    position: relative;
+  }
+  .GoCarousel-viewMore {
+    text-align: left;
+    width: 15.625rem;
+  }
+  .GoCarousel-eventBody {
+    display: flex;
+    flex-direction: column;
+  }
+  .GoCarousel-eventGroup {
+    max-width: 22.66rem;
+    width: 28vw;
+  }
+}
+
+.Learn-hero {
+  background-color: #fafafa;
+  background-image: radial-gradient(
+    60.0625rem 60.0625rem,
+    #bfeaf4 50%,
+    #fafafa 50%
+  );
+  background-position: top -50rem left -9rem;
+  background-repeat: no-repeat;
+  background-size: 75rem 75rem;
+  padding: 0 2.25rem 0;
+}
+
+.Learn-hero .Container {
+  max-width: 68.125rem;
+  position: relative;
+  z-index: 1;
+}
+
+.Learn-heroInner {
+  display: flex;
+  flex-direction: column-reverse;
+}
+
+.Learn-heroGopher {
+  display: flex;
+  justify-content: flex-end;
+  padding-top: 1.25rem;
+}
+
+.Learn-heroGopher img {
+  height: 13.5625rem;
+  width: auto;
+}
+
+.Learn-heroContent {
+  padding-top: 1.125rem;
+}
+
+.Learn-heroContent a:not(.js-downloadBtn) {
+  text-decoration: underline;
+}
+
+.Learn-heroContent h1 {
+  font-size: 1.5rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 2rem;
+}
+
+.Learn-heroContent p {
+  color: #6e7072;
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+  max-width: 27.1875rem;
+}
+
+.Learn-heroAction {
+  align-items: center;
+  background-color: #007d9c;
+  border-radius: 0.25rem;
+  display: flex;
+  height: 2.5rem;
+  justify-content: center;
+  width: 10.5rem;
+}
+
+.Learn-heroAction a,
+.Learn-heroAction a:hover,
+.Learn-heroAction a:visited {
+  color: #fff;
+  font-size: 0.875rem;
+  font-weight: 500;
+  line-height: 1rem;
+  text-decoration: none;
+}
+
+.Learn-heroAction span {
+  font-weight: normal;
+}
+
+/* Learn page grid rules */
+
+.LearnGo-gridContainer {
+  display: flex;
+  justify-content: center;
+  padding: 0rem 0rem 1rem;
+}
+
+.Learn-cardList {
+  column-gap: 3.313rem;
+  display: grid;
+  grid-template-columns: repeat(1, 1fr);
+  justify-content: space-between;
+  list-style: none;
+  padding-left: 0;
+  row-gap: 2rem;
+}
+
+.Learn-card {
+  height: 23.375rem;
+  max-width: 40rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-cardList {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+@media only screen and (min-width: 72.75rem) {
+  .Learn-cardList {
+    grid-template-columns: repeat(4, 1fr);
+  }
+}
+
+/* End Learn page grid rules */
+
+/* Learn quickstart grid */
+
+.Learn-hero .Learn-quickstarts {
+  margin: 0;
+  margin-top: 4rem;
+}
+
+.Learn-hero .Learn-quickstart {
+  height: auto;
+}
+
+.Learn-hero .LearnGo-gridContainer {
+  padding: 3rem 0rem 3rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-hero .Learn-cardList {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+
+@media only screen and (min-width: 57.7rem) {
+  .Learn-hero .Learn-cardList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+@media only screen and (min-width: 72.75rem) {
+  .Learn-hero .Learn-cardList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+
+/* Learn hero section */
+
+@media only screen and (min-width: 57.7rem) {
+  .Learn-hero {
+    background-position: top -35rem left 30rem;
+  }
+
+  .Learn-heroInner {
+    flex-direction: row;
+    justify-content: space-between;
+  }
+
+  .Learn-heroContent {
+    padding-top: 3.75rem;
+  }
+
+  .Learn-heroGopher {
+    flex: 1;
+    justify-content: center;
+    padding-top: 2.625rem;
+  }
+
+  .Learn-heroGopher img {
+    height: 21.0625rem;
+  }
+
+  .Learn-heroAction {
+    height: 4rem;
+    width: 16.5625rem;
+  }
+
+  .Learn-heroAction a,
+  .Learn-heroAction a:hover,
+  .Learn-heroAction a:visited {
+    font-size: 1.5rem;
+    line-height: 1.75rem;
+  }
+
+  .Learn-heroAction span {
+    font-size: 1rem;
+  }
+}
+
+@media only screen and (min-width: 91rem) {
+  .Learn-hero {
+    background-position: top -35rem left 50rem;
+  }
+}
+
+.Learn-guided,
+.Learn-online,
+.Learn-selfPaced,
+.Learn-books,
+.Learn-inPersonTraining,
+.Learn-meetups {
+  margin-top: 3.75rem;
+  padding: 0 1.5rem;
+}
+
+.Learn-learningResources {
+  align-items: center;
+  display: flex;
+  flex-direction: column;
+  margin: 3.75rem 0;
+}
+
+.Learn-learningResources h2,
+.Learn-learningResourcesHeader h3 {
+  margin: 0;
+}
+
+.Learn-learningResources h2 {
+  font-size: 2rem;
+  font-weight: 500;
+  letter-spacing: 0.1875rem;
+  line-height: 2.3125rem;
+}
+
+.Learn-learningResourcesHeader {
+  display: flex;
+  justify-content: center;
+}
+
+.Learn-learningResourcesHeader h3 {
+  font-size: 1.5rem;
+  font-weight: bold;
+  letter-spacing: normal;
+  line-height: 2.25rem;
+}
+
+.Learn-selfPaced .Learn-card .Card-content {
+  justify-content: space-between;
+}
+
+.Learn-online .Card-thumbnail {
+  background-position: 1.5rem center;
+  background-repeat: no-repeat;
+  background-size: auto 1.5rem;
+  height: 7.5625rem;
+}
+
+.Learn-selfPaced .Learn-card {
+  height: 20.3125rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-learningResourcesHeader {
+    display: flex;
+    justify-content: flex-start;
+  }
+
+  .Learn-learningResourcesHeader h2 {
+    font-size: 2.25rem;
+    line-height: 2.625rem;
+  }
+}
+
+.Learn-cardList.Learn-bookList {
+  grid-template-columns: repeat(1, 1fr);
+  width: 100%;
+}
+
+.Learn-card.Learn-book {
+  height: auto;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Learn-cardList.Learn-bookList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+
+  .Learn-card.Learn-book {
+    max-width: 13.125rem;
+  }
+}
+
+@media only screen and (min-width: 57.7rem) {
+  .Learn-cardList.Learn-bookList {
+    grid-template-columns: repeat(4, 1fr);
+  }
+}
+
+@media only screen and (min-width: 72.75rem) {
+  .Learn-cardList.Learn-bookList {
+    grid-template-columns: repeat(5, 1fr);
+  }
+}
+
+.Learn-inPersonList {
+  display: flex;
+  flex: 1 0 100%;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  list-style: none;
+  margin: 1.875rem 0 1.875rem -1rem; /* Offset gutters for the leftmost and top cells in the grid. */
+  padding-left: 0;
+}
+
+.Learn-inPerson {
+  border-bottom: 0.0625rem solid #dcdee0;
+  flex: 1 1 31.25rem;
+  margin: 0 0 0 1rem; /* Gutter between grid cells. */
+  max-width: 31rem;
+  padding-bottom: 1.25rem;
+}
+
+.Learn-inPerson:nth-child(1),
+.Learn-inPerson:nth-child(2) {
+  border-top: 0.0625rem solid #dcdee0;
+}
+.Learn-inPersonTitle {
+  font-size: 1.25rem;
+}
+.Learn-inPersonBlurb {
+  margin: 0;
+}
+
+.Learn-events {
+  flex: 1 0 100%;
+  list-style: none;
+  margin: 0.5rem 0 1.875rem;
+  padding: 0;
+  width: 100%;
+}
+.Learn-eventItem {
+  align-items: flex-start;
+  display: flex;
+  flex-direction: column;
+  padding: 1.875rem 0 0.175rem 0;
+}
+.Learn-eventItem + .Learn-eventItem {
+  border-top: 0.0625rem solid #dcdee0;
+}
+
+.Learn-eventThumbnail {
+  align-self: center;
+  display: flex;
+  flex: 0 0 3rem;
+  height: auto;
+  margin-bottom: 1rem;
+}
+.Learn-eventThumbnail--noimage {
+  background-color: #fff;
+}
+.Learn-eventThumbnail img {
+  height: auto;
+
+  object-fit: cover;
+  width: 100%;
+}
+.Learn-eventAttendees {
+  display: flex;
+}
+.Learn-eventAttendeesItem img {
+  border-radius: 100%;
+  height: 2rem;
+  width: 2rem;
+}
+.Learn-eventBody {
+  display: flex;
+  flex: 1;
+  flex-direction: column;
+  max-width: 100%;
+  min-width: 0;
+}
+.Learn-eventDate {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  margin-bottom: 1rem;
+}
+.Learn-eventDate p {
+  color: #6e7072;
+  margin: 0;
+}
+.Learn-eventName {
+  color: #202224;
+  font-size: 1.25rem;
+  font-weight: 500;
+  margin: 0;
+
+  margin-bottom: 1rem;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.Learn-eventName a {
+  color: #202224;
+  text-decoration: none;
+}
+.Learn-eventDescription {
+  -webkit-box-orient: vertical; /* See webkit-line-clamp */
+  display: -webkit-box; /* See webkit-line-clamp */
+  -webkit-line-clamp: 4; /* Elide flex text. webkit-line-clamp is broadly compatible with browsers. */
+  line-height: 24px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.Learn-eventText {
+  margin-bottom: 0.5rem;
+}
+.Learn-viewMore {
+  align-items: center;
+  display: flex;
+  font-size: 0.875rem;
+  margin: 0;
+  min-width: 6.25rem;
+}
+.Learn-viewMore:hover {
+  text-decoration: none;
+}
+.Learn-viewMore span {
+  font-size: 1rem;
+  margin-left: 0.48rem;
+}
+@media only screen and (min-width: 33.75rem) {
+  .Learn-eventItem {
+    flex-direction: row;
+  }
+
+  .Learn-eventBody {
+    max-width: 46.825rem;
+  }
+  .Learn-eventThumbnail {
+    height: 8rem;
+    margin-bottom: 0;
+    margin-right: 1rem;
+    min-width: 8rem;
+  }
+  .Learn-eventThumbnail img {
+    height: 8rem;
+    object-fit: contain;
+    width: 8rem;
+  }
+  .Learn-eventDate {
+    flex: 0;
+    flex-direction: column;
+    justify-content: center;
+    min-width: 9rem;
+  }
+  .Learn-eventText {
+    display: flex;
+    flex-direction: column;
+    min-width: 0;
+    padding-right: 2rem;
+  }
+  .Learn-eventDescription {
+    -webkit-line-clamp: 2; /* see non-media-query definition. */
+    margin: 0 0 0.5rem;
+  }
+  .Learn-viewMore {
+    align-self: center;
+    text-align: right;
+  }
+  .Learn-eventItem {
+    padding: 1.875rem 0;
+  }
+}
+
+.Learn-tile a {
+  width: 100%;
+}
+
+.Learn-tileList {
+  display: grid;
+  gap: 2rem;
+  grid-template-columns: repeat(2, minmax(0, 1fr));
+  list-style: none;
+  padding: 0;
+}
+@media only screen and (min-width: 38rem) {
+  .Learn-tileList {
+    grid-template-columns: repeat(4, minmax(0, 1fr));
+  }
+}
+@media only screen and (min-width: 48rem) {
+  .Learn-tileList {
+    justify-content: space-between;
+  }
+  .Learn-tileList {
+    column-gap: 3rem;
+  }
+}
+.Learn-tile {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+}
+.Learn-tile a {
+  color: #3e4042;
+}
+.Learn-tileTitle {
+  display: block;
+  font-size: 0.75rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.01rem;
+  line-height: 0.875rem;
+  margin: 1.5rem auto 0;
+  overflow-wrap: break-word;
+  text-align: center;
+}
+.Learn-tileThumbnail {
+  align-items: center;
+  background-color: #fff;
+  border-radius: 0.3125rem;
+  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  display: flex;
+  justify-content: center;
+  margin: auto;
+  width: 100%;
+}
+.Learn-tileThumbnail img {
+  max-height: 100%;
+  max-width: 100%;
+}
+.Learn-tileThumbnail--book img {
+  max-height: 100%;
+  max-width: 100%;
+}
+
+.Solutions-title,
+.Solutions-useCases,
+.Solutions-caseStudies {
+  margin: auto;
+  max-width: 75.75rem;
+}
+.Solutions-title,
+.Solutions-useCases,
+.Solutions-caseStudies {
+  padding: 0 1.5rem;
+}
+.SolutionsHeroCarousel-wrapper {
+  max-width: 68rem;
+  width: 76vw;
+}
+.SolutionsHeroCarousel-slides {
+  transition: left 0.2s ease-out;
+}
+.GoCarousel-controlNext-solutionsHero {
+  right: 0.5rem;
+}
+.GoCarousel-controlPrev-solutionsHero {
+  left: 0.5rem;
+}
+.SolutionsHeroCarousel-slides {
+  display: flex;
+  left: 0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  position: relative;
+  top: 0;
+  width: 625rem;
+}
+.SolutionsHeroCarousel-slide {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  max-width: 68rem;
+  padding: 0 0.2rem;
+  position: relative;
+  width: 76vw;
+}
+@media only screen and (min-width: 38rem) {
+  .SolutionsHeroCarousel-wrapper,
+  .SolutionsHeroCarousel-slide {
+    width: 82vw;
+  }
+  .GoCarousel-controlPrev-solutionsHero {
+    left: 2rem;
+  }
+  .GoCarousel-controlNext-solutionsHero {
+    right: 2rem;
+  }
+}
+.Solutions-headline .Container {
+  display: flex;
+}
+.Solutions-useCases,
+.Solutions-caseStudies {
+  margin-bottom: 6.25rem;
+}
+.Solutions-title {
+  padding: 5rem 1.5rem 3rem;
+}
+.Solutions-title h1,
+.WhoUsesSubPage-heroInner--caseStudy h1,
+.WhoUsesSubPage-heroInner--useCase h1 {
+  font-size: 1.5rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 2rem;
+  margin-bottom: 0.5rem;
+}
+.WhoUsesSubPage-heroInner--caseStudy h1 {
+  margin-top: 0;
+}
+.WhoUsesSubPage-heroInner--useCase h1 {
+  margin-top: 1rem;
+}
+.Solutions-title h1 {
+  text-align: center;
+}
+.Solutions-title h3 {
+  color: #3e4042;
+  font-size: 1rem;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+  margin-bottom: 0;
+  text-align: center;
+}
+.Solutions-headlineText {
+  display: inline-block;
+}
+.Solutions-headlineImg {
+  margin-top: 1.5rem;
+  position: relative;
+  width: 100%;
+}
+.Solutions-headlineImg img {
+  display: block;
+  width: 100%;
+}
+.Solutions-headlineBody {
+  align-items: flex-start;
+  color: #6e7072;
+  display: flex;
+  flex-direction: column;
+  font-size: 0.875rem;
+  font-weight: normal;
+  line-height: 1.5rem;
+  margin-bottom: 1.5rem;
+}
+.Solutions-headlineBody a {
+  align-items: center;
+  display: flex;
+  margin-top: 1rem;
+  text-decoration: none;
+}
+.Solutions-headlineBody a i,
+.WhyGo-reasonLearnMoreLink a i,
+.WhyGo-reasonShowMoreLink a i {
+  margin-left: 0.2rem;
+  text-decoration: none;
+  transition: transform 100ms ease-in-out;
+}
+.Solutions-headlineBody a:hover i,
+.WhyGo-reasonLearnMoreLink a:hover i,
+.WhyGo-reasonShowMoreLink a:hover i {
+  transform: translateX(0.2rem);
+}
+.Solutions-headlineNotification {
+  color: #6e7072;
+  font-size: 0.75rem;
+  font-style: normal;
+  font-weight: 500;
+  line-height: 2.25rem;
+  margin: 1.5rem 0;
+}
+.Solutions-headline {
+  background-color: #fafafa;
+}
+.Solutions-headline h2 {
+  color: #202224;
+  font-size: 1.5rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 2rem;
+  margin-bottom: 1rem;
+}
+@media only screen and (min-width: 66.75rem) {
+  .SolutionsHeroCarousel-slide {
+    align-items: center;
+    flex-direction: row-reverse;
+    justify-content: space-between;
+  }
+  .Solutions-headlineText {
+    width: 33%;
+  }
+  .Solutions-headlineImg {
+    height: 100%;
+    margin-bottom: 0;
+    width: 60%;
+  }
+  .Solutions-headlineImg img {
+    max-height: 100%;
+    position: absolute;
+    right: 0;
+    top: 50%;
+    transform: translate(0, -50%);
+  }
+}
+.SolutionsTabs-tabList {
+  margin-top: 4rem;
+  width: 100%;
+}
+.SolutionsTabs-tabList hr {
+  border: 0.0625rem solid #c6c8ca;
+  margin: -0.0625rem 0 2rem;
+}
+.SolutionsTabs-tab {
+  background-color: #fff;
+  border-style: none;
+  color: #202224;
+  cursor: pointer;
+  font-size: 1rem;
+  font-weight: 500;
+  line-height: 2.25rem;
+  margin-right: 1.625rem;
+  outline: none;
+  padding: 0.375rem 0;
+}
+.SolutionsTabs-tab:focus {
+  border-bottom: 0.25rem solid #c6c8ca;
+}
+.SolutionsTabs-tab:last-of-type {
+  margin-right: 0;
+}
+.SolutionsTabs-tab[aria-selected='true'] {
+  border-bottom: 0.25rem solid #007d9c;
+}
+@media only screen and (min-width: 48rem) {
+  .SolutionsTabs-tab {
+    font-size: 1.125rem;
+    margin-right: 4rem;
+  }
+}
+.Solutions-useCasesHeader h2,
+.Solutions-caseStudiesHeader h2 {
+  letter-spacing: 0.125rem;
+}
+.Solutions-cardList,
+.Solutions-caseStudyList {
+  display: grid;
+  grid-gap: 1.5rem;
+  grid-template-columns: repeat(1, 1fr);
+  list-style: none;
+  padding-left: 0;
+}
+.Solutions-cardList[hidden] {
+  display: none;
+}
+.Solutions-caseStudiesList {
+  margin: 0 0 1rem 0;
+}
+.Solutions-card {
+  background: #fff;
+  border: 0.0625rem solid #c6c8ca;
+  border-radius: 0.625rem;
+  box-sizing: border-box;
+  flex: 0 100%;
+}
+@media only screen and (min-width: 38rem) {
+  .Solutions-cardList {
+    grid-template-columns: repeat(2, 1fr);
+  }
+}
+@media only screen and (min-width: 57.7rem) {
+  .Solutions-card {
+    box-shadow: none;
+    flex: 0 48%;
+  }
+  .Solutions-card:hover {
+    box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+    transition: all 0.2s ease-in-out;
+  }
+  .Solutions-cardList {
+    grid-template-columns: repeat(3, 1fr);
+  }
+}
+@media only screen and (min-width: 62.5rem) {
+  .Solutions-card {
+    box-shadow: none;
+    flex: 0 30%;
+  }
+}
+.Solutions-useCaseLogo {
+  height: 5rem;
+  margin: 0 2rem;
+  width: 100%;
+}
+.Solutions-card a:link,
+.Solutions-card a:visited {
+  color: #202224;
+  display: block;
+  text-decoration: none;
+}
+.Solutions-useCaseAction {
+  bottom: 1rem;
+  color: #007d9c;
+  font-size: 1rem;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+  position: absolute;
+}
+.Solutions-useCaseAction {
+  align-items: center;
+  display: flex;
+}
+.Solutions-useCaseAction i {
+  margin-left: 0.5rem;
+}
+.Solutions-useCaseDescription {
+  color: #6e7072;
+  font-size: 1rem;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: 0.0063rem;
+  line-height: 1.5rem;
+}
+.Solutions-useCaseTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+}
+.Solutions-useCaseBody {
+  flex: 1;
+  justify-content: center;
+  margin-bottom: 2.5rem;
+}
+
+.Solutions-useCaseLogo {
+  display: flex;
+  flex: 1;
+  justify-content: center;
+  margin: 0;
+}
+
+.Solutions-useCaseLogo img {
+  align-self: center;
+  max-height: 4rem;
+  max-width: 11rem;
+}
+.Solutions-useCaseLink {
+  height: 100%;
+  padding: 2rem 2rem 3rem;
+  position: relative;
+}
+.Solutions-footer {
+  margin: 2rem 0 2.875rem;
+}
+.Solutions-footer p {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: normal;
+  letter-spacing: 0.007rem;
+  line-height: 1.5rem;
+}
+.TestimonialsGo-quotes {
+  display: flex;
+  left: 0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+  position: relative;
+  top: 0;
+  transition: left 0.2s ease-out;
+  width: 625rem;
+}
+.TestimonialsGo-quoteGroup {
+  align-items: flex-start;
+  display: flex;
+  margin: 0 0;
+  max-width: 62.5rem;
+  padding: 3.75rem 2rem 2.25rem;
+  width: 90vw;
+}
+.TestimonialsGo-quoteSingleItem {
+  display: flex;
+  flex: 1;
+}
+.TestimonialsGo-quoteContainer {
+  display: inline-flex;
+  flex: 1;
+  flex-direction: column;
+  min-width: 0;
+}
+.TestimonialsGo-quoteSection {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+}
+.TestimonialsGo-quoteSection p {
+  color: #202224;
+  font-size: 0.875rem;
+  letter-spacing: 0.0082rem;
+  line-height: 1.5rem;
+  text-align: center;
+}
+.TestimonialsGo-author {
+  color: #3e4042;
+  font-size: 0.8rem;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1.5rem;
+  text-align: right;
+  width: 100%;
+}
+.PullQuote-title,
+.BackgroundQuote-title {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: flex-end;
+}
+.NoWrapSpan {
+  white-space: nowrap;
+}
+@media only screen and (min-width: 52rem) {
+  .TestimonialsGo-quote {
+    font-size: 1.3125rem;
+  }
+  .TestimonialsGo-author {
+    font-size: 1rem;
+  }
+  .TestimonialsGo-quoteSection p {
+    font-size: 1.3125rem;
+    letter-spacing: 0.0082rem;
+    line-height: 2.25rem;
+  }
+}
+.PullQuote {
+  color: #6e7072;
+  margin-bottom: 2rem;
+}
+.PullQuote-body {
+  margin: 1.5rem 0 1rem;
+}
+.PullQuote-link,
+p.PullQuote-body,
+p.BackgroundQuote-body {
+  color: inherit;
+}
+.PullQuote-author,
+.BackgroundQuote-author {
+  display: flex;
+  flex-wrap: wrap;
+  font-style: normal;
+  font-weight: 500;
+  justify-content: flex-end;
+  margin-left: auto;
+  margin-top: 1rem;
+}
+.PullQuote-author {
+  font-size: 0.875rem;
+}
+.BackgroundQuote {
+  background-color: #007d9c;
+  color: #fff;
+  margin: 1.5rem auto;
+  padding: 2rem 1.5rem;
+}
+p.BackgroundQuote-body {
+  font-size: 1.3125rem;
+  line-height: 2.25rem;
+}
+.QuoteBlock {
+  border-bottom: 0.25rem solid #007d9c;
+  border-top: 0.25rem solid #007d9c;
+  display: block;
+  float: none;
+  margin-bottom: 1.5rem;
+  margin-left: 0;
+  margin-right: 0;
+  margin-top: 1.5rem;
+  padding-bottom: 0.5rem;
+  width: 100%;
+}
+@media only screen and (min-width: 48rem) {
+  .QuoteBlock {
+    float: right;
+    margin-top: 0;
+    width: 46%;
+  }
+  .PullQuote-body {
+    font-size: 1.125rem;
+    line-height: 1.75rem;
+    margin: 1.5rem 0 1rem;
+  }
+  .BackgroundQuote-body {
+    margin-top: 0;
+  }
+  .BackgroundQuote {
+    padding: 3rem 4rem 2rem;
+  }
+  .PullQuote-author {
+    font-size: 1rem;
+  }
+}
+.QuoteBlock-body {
+  color: #3e4042;
+  font-size: 1.125rem;
+  letter-spacing: 0.007rem;
+  line-height: 2rem;
+}
+.QuoteBlock-author {
+  color: #3e4042;
+  font-size: 1rem;
+  font-style: normal;
+  font-weight: 500;
+  line-height: 3rem;
+}
+.QuoteBlock-link {
+  color: #6e7072;
+}
+.LargeMedia {
+  align-items: flex-start;
+  display: flex;
+  padding: 2.125rem 0.5rem;
+}
+.LargeMedia + .LargeMedia {
+  border-top: 0.0625rem solid #dcdee0;
+}
+.LargeMedia-image {
+  height: 5rem;
+  margin-right: 1rem;
+  object-fit: contain;
+  width: 5rem;
+}
+.LargeMedia-body {
+  flex: 1;
+}
+
+.SmallMedia-image {
+  height: 3rem;
+  margin-right: 1rem;
+  object-fit: contain;
+  width: 3rem;
+}
+
+.XLargeMedia-image {
+  height: 8rem;
+  margin-right: 1rem;
+  object-fit: contain;
+  width: 8rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .LargeMedia {
+    align-items: center;
+  }
+  .SmallMedia-image {
+    height: 9rem;
+    margin-right: 5.5rem;
+    width: 9rem;
+  }
+  .LargeMedia-image {
+    height: 12.5rem;
+    margin-right: 5.5rem;
+    width: 12.5rem;
+  }
+  .XLargeMedia-image {
+    height: 18rem;
+    margin-right: 1rem;
+    object-fit: contain;
+    width: 18rem;
+  }
+}
+.MediaList {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-around;
+  list-style: none;
+  padding: 0;
+}
+.MediaList-item {
+  flex: 0 1 14rem;
+  justify-content: space-around;
+  text-align: center;
+}
+.MediaList-itemImage {
+  height: 10rem;
+  object-fit: contain;
+  width: 10rem;
+}
+.MediaList-itemTitle {
+  color: #202224;
+}
+.MediaList-itemBody {
+  color: #555759;
+}
+@media only screen and (min-width: 48rem) {
+  .MediaList {
+    margin-left: -2rem; /* First item of each row should have no left gutter */
+  }
+  .MediaList-item {
+    flex: 0 0 12rem;
+    margin-left: 2rem; /* Gutter between items */
+  }
+}
+.MediaList-itemBox {
+  background-color: #f8f8f8;
+  box-shadow: 0 0.125rem 0.5rem 0 rgba(0, 0, 0, 0.22);
+  flex: 0 1 33.125rem;
+  justify-content: space-around;
+  margin-top: 2rem;
+  padding: 1.5rem;
+}
+.MediaList-itemBoxHeader-top {
+  align-items: center;
+  flex-direction: column;
+  margin: auto;
+  text-align: center;
+  width: 10.75rem;
+}
+.MediaList-itemBoxHeader {
+  align-items: center;
+  display: flex;
+  flex-direction: column;
+  margin: auto;
+  text-align: center;
+  width: 10.75rem;
+}
+.MediaList-itemBoxImage {
+  height: 5.125rem;
+  object-fit: contain;
+  width: 5.125rem;
+}
+.MediaList-itemBox .MediaList-itemBoxTitle {
+  color: #202224;
+  font-size: 1.5rem;
+  font-weight: normal;
+  margin: 0.5rem 0 0 0;
+}
+.MediaList-itemBox .MediaList-itemBoxBody {
+  align-self: flex-end;
+  color: #555759;
+  flex: 1;
+}
+.MediaList-itemBox .MediaList-itemBoxBody-top {
+  align-self: flex-start;
+  color: #555759;
+  flex: 1;
+  margin: auto !important;
+}
+@media only screen and (min-width: 48rem) {
+  .MediaList-itemBoxHeader {
+    justify-content: flex-end;
+    margin: 0 1rem 1.5rem 0;
+  }
+  .MediaList-itemBox {
+    display: flex;
+    flex: 0 0 33.125rem;
+    margin: 2rem 0 0 2rem; /* Gutter between grid cells. */
+    min-height: 15.0625rem;
+  }
+  .MediaList-itemBox .MediaList-itemBoxBody {
+    margin: 0 1.3rem 2rem 0;
+  }
+}
+.StarItem {
+  align-items: flex-start;
+  display: flex;
+}
+.StarItem-icon {
+  align-items: center;
+  background: linear-gradient(10.64deg, #007d9c 0%, #00a29c 100%);
+  border-radius: 50%;
+  display: flex;
+  height: 1.5rem;
+  justify-content: center;
+  margin: 1.1rem 1.25rem 0 0;
+  width: 1.5rem;
+}
+.StarItem-image {
+  height: 1.25rem;
+  object-fit: contain;
+  width: 1.25rem;
+}
+.StarItem-body {
+  flex: 1;
+}
+.StarItem-title {
+  margin: 1rem 0;
+}
+
+.Right {
+  float: right;
+  margin-left: 1rem;
+}
+.Left {
+  float: left;
+  margin-right: 1rem;
+}
+.SearchForm {
+  align-items: center;
+  background-color: transparent;
+  border-radius: 0.25rem;
+  display: flex;
+  flex: 1;
+  font-size: 1rem;
+  height: 2rem;
+  margin: 0.6875rem 0;
+  max-width: 2rem;
+  transition: max-width 200ms;
+}
+.SearchForm--open {
+  background-color: #fff;
+  margin-left: 1.5rem;
+  max-width: 100%;
+}
+.SearchForm svg {
+  fill: #fff;
+}
+.SearchForm--open svg {
+  fill: #555759;
+  margin-right: 0.5rem;
+}
+.SearchForm-input {
+  height: 100%;
+  opacity: 0;
+  padding: 0;
+  transition: width 200ms, padding 200ms, opacity 200ms;
+  width: 0;
+}
+.SearchForm--open .SearchForm-input {
+  flex: 1;
+  opacity: 1;
+  padding: 0.5rem;
+  transition: width 200ms, padding 200ms;
+  width: 100%;
+}
+.SearchForm-input::placeholder {
+  color: #848688;
+}
+.SearchForm-input {
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  font: inherit;
+  opacity: 0;
+  outline: none;
+}
+.SearchForm-submit {
+  background-color: transparent;
+  border: none;
+  box-sizing: border-box;
+  cursor: pointer;
+  display: flex;
+  outline: 0;
+  padding: 0;
+}
+.SearchForm svg {
+  box-sizing: border-box;
+  cursor: pointer;
+  margin-left: 0.5rem;
+  width: 1.4375rem;
+}
+@media only screen and (min-width: 32rem) {
+  .Header-rightContent {
+    width: 100%;
+  }
+  .SearchForm {
+    background-color: #fff;
+    margin: 0.6rem 1.4rem 0.6rem 0;
+    max-width: none;
+  }
+  .SearchForm-input {
+    opacity: 1;
+    padding: initial;
+    width: 100%;
+  }
+  .SearchForm svg {
+    fill: #555759;
+    margin-right: 0.5rem;
+  }
+}
+.Series-list {
+  list-style: none;
+  padding: 0;
+}
+.Series-listItem {
+  display: flex;
+}
+.Series-listItem a {
+  display: flex;
+  flex: 1;
+  padding: 1.25rem 0;
+}
+.Series-listItem + .Series-listItem {
+  border-top: 0.0625rem solid #dcdee0;
+}
+.Series-listItemIcon {
+  margin-right: 1rem;
+}
+.Series-listItemIcon img {
+  width: 4rem;
+}
+.Series-listItemText {
+  flex: 1;
+}
+.Series-listItemPrimary {
+  display: block;
+  font-size: 1.125rem;
+  margin: 0;
+}
+.Series-listItemSecondary {
+  color: #202224;
+  display: inline-block;
+  margin-bottom: 0;
+  text-decoration: none;
+}
+.UseCaseSubNav {
+  background-color: #fff;
+  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
+  position: fixed;
+  width: 100%;
+  z-index: 10;
+}
+.UseCaseSubNav--default {
+  top: 3.5rem;
+}
+.UseCaseSubNav--lower {
+  top: calc(3.5rem + 9.75rem);
+}
+.UseCaseSubNav-menu {
+  background-color: #fff;
+  box-shadow: 0 0.125rem 0.125rem rgba(171, 171, 171, 0.405239);
+  max-height: 0;
+  overflow: hidden;
+  padding-left: 1rem;
+  position: absolute;
+  transition: max-height 100ms ease-in-out;
+  width: 100%;
+}
+.UseCaseSubNav-menuHeader {
+  align-items: center;
+  background: transparent;
+  border: none;
+  color: #555759;
+  cursor: pointer;
+  display: flex;
+  font-size: 0.875rem;
+  justify-content: space-between;
+  outline: none;
+  padding: 0.8125rem 1rem 0.8125rem 1.6875rem;
+  width: 100%;
+}
+.UseCaseSubNav-menuIcon {
+  pointer-events: none;
+  transition: transform 100ms ease-in-out;
+}
+.UseCaseSubNav-menuIcon--open {
+  transform: rotate(180deg);
+}
+.UseCaseSubNav-menu--open {
+  max-height: 25rem;
+  padding-bottom: 2rem;
+}
+.UseCase-content {
+  display: flex;
+  flex-direction: row;
+}
+.CaseStudy-content {
+  display: grid;
+  gap: 2rem;
+  grid-template-columns: 1fr;
+}
+.CaseStudy-contentBody img {
+  width: 100%;
+}
+.CaseStudy-contentBody hr {
+  border: 0.0625rem solid #c6c8ca;
+  margin: 2rem 0 2rem;
+}
+.CaseStudy-contentAside {
+  flex: 0 0 33.33%;
+  min-width: 18.75rem;
+}
+.UseCase-contentAside {
+  display: none;
+}
+.UseCase-content {
+  margin-top: 2rem;
+}
+.UseCase-contentBody {
+  flex: 0 0 100%;
+  margin-top: 1rem;
+  max-width: 47.8125rem;
+  width: 100%;
+}
+.UseCase-contentBody h2:first-of-type,
+.UseCase-contentBody h3:first-of-type {
+  margin-top: 0;
+}
+.UseCase-contentBody h2,
+.FeaturedUsers h2:first-of-type {
+  margin-bottom: 1.5rem;
+  margin-top: 3rem;
+}
+@media only screen and (min-width: 57.7rem) {
+  .CaseStudy-content {
+    grid-template-columns: 2fr 1fr;
+  }
+  .UseCase-contentAside {
+    display: block;
+    flex: 0 0 20%;
+    position: sticky;
+  }
+  .UseCaseSubNav {
+    display: none;
+  }
+  .UseCase-contentBody {
+    flex: 0 0 80%;
+    order: 1;
+    width: 80%;
+  }
+  .CaseStudy-contentAside {
+    order: 2;
+  }
+  .CaseStudy-contentBody {
+    order: 1;
+  }
+}
+.UseCaseSubNav-anchorLinks {
+  align-items: flex-start;
+  display: flex;
+  flex-direction: column;
+}
+.UseCaseSubNav-anchorLinks--sticky {
+  position: fixed;
+  top: 5.5rem;
+}
+a.UseCase-anchorLink {
+  background: transparent;
+  border: none;
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 400;
+  line-height: 1.5rem;
+  margin-top: 1rem;
+  padding-left: 0.5rem;
+  position: relative;
+}
+a.UseCase-anchorLink:first-of-type {
+  margin-top: 1.5rem;
+}
+a.UseCase-anchorLink.selected {
+  font-weight: 500;
+}
+a.UseCase-anchorLink.selected::before {
+  background-color: #007d9c;
+  border-radius: 1rem;
+  content: ' ';
+  display: inline-block;
+  height: 0.3rem;
+  left: -0.5rem;
+  position: absolute;
+  top: 0.5rem;
+  width: 0.3rem;
+}
+.WhoUsesSubPage-hero--useCase {
+  margin-top: 2.625rem;
+}
+.WhoUsesSubPage-heroInner--caseStudy,
+.WhoUsesSubPage-heroInner--useCase {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  margin-bottom: 1.5rem;
+  position: relative;
+}
+.WhoUsesSubPage-heroInner--useCase {
+  background-color: #fafafa;
+  padding-bottom: 2.5rem;
+  padding-top: 3.5rem;
+}
+.WhoUsesSubPage-heroInner--caseStudy > div {
+  justify-content: center;
+}
+.WhoUsesSubPage-heroContent--caseStudy {
+  display: flex;
+  flex-direction: column-reverse;
+  max-width: 75.75rem;
+  position: relative;
+  z-index: 1;
+}
+.WhoUsesSubPage-heroContent--useCase {
+  margin: auto;
+  max-width: 75.75rem;
+  width: 100%;
+}
+.WhoUsesSubPage-heroText--caseStudy,
+.WhoUsesSubPage-heroText--useCase {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  width: 100%;
+}
+.WhoUsesSubPage-heroText--caseStudy {
+  padding: 2rem 1.5rem;
+}
+.WhoUsesSubPage-heroText--useCase {
+  padding: 0 1.5rem;
+}
+.WhoUsesSubPage-heroImg {
+  background: -webkit-linear-gradient(0deg, #fafafa 50vw, #bfeaf4 50vw);
+  display: flex;
+  max-width: 75.75rem;
+  padding-left: 1.5rem;
+  position: relative;
+  width: 100%;
+  z-index: 1;
+}
+.WhoUsesSubPage-heroImg img {
+  height: auto;
+  max-height: 10.625rem;
+  min-height: 8rem;
+  width: auto;
+}
+@media only screen and (min-width: 38rem) {
+  .Solutions-title h1,
+  .WhoUsesSubPage-heroInner--caseStudy h1,
+  .WhoUsesSubPage-heroInner--useCase h1 {
+    font-size: 2.25rem;
+    line-height: 3rem;
+  }
+  .WhoUsesSubPage-heroImg {
+    background: -webkit-linear-gradient(0deg, #fafafa 40vw, #bfeaf4 40vw);
+  }
+  .WhoUsesSubPage-heroImg img {
+    max-height: 15.625rem;
+    min-height: 10.625rem;
+  }
+}
+@media only screen and (min-width: 57.7rem) {
+  .WhoUsesSubPage-hero--useCase {
+    margin-top: 0;
+  }
+  .WhoUsesSubPage-heroInner--caseStudy {
+    background: -webkit-linear-gradient(0deg, #fafafa 70vw, #bfeaf4 70vw);
+    flex-direction: row;
+  }
+  .WhoUsesSubPage-heroContent--caseStudy {
+    align-items: center;
+    flex-direction: row;
+  }
+  .WhoUsesSubPage-heroImg {
+    background: transparent;
+    min-width: 37.75rem;
+    padding: 0;
+    width: 55%;
+  }
+  .WhoUsesSubPage-heroText--caseStudy {
+    width: 45%;
+  }
+  .WhoUsesSubPage-heroImg img {
+    max-height: none;
+    min-height: 18.75rem;
+    width: 100%;
+  }
+  .WhoUsesSubPage-heroInner--useCase h1 {
+    margin-top: 3rem;
+  }
+}
+.ToolsBlurbs {
+  display: grid;
+  gap: 2rem 3.4375rem;
+  grid-template-columns: 1fr;
+  margin-top: 1.5rem;
+}
+.ToolsBlurbs-blurb {
+  background-color: #fff;
+  border: 0.0625rem solid #dcdee0;
+  border-radius: 0.25rem;
+  padding: 1.5rem 1rem;
+}
+.ToolsBlurbs-blurbHeader {
+  align-items: center;
+  display: flex;
+}
+.ToolsBlurbs-blurbIcon {
+  height: 1.5rem;
+  margin-right: 1rem;
+  width: 1.5rem;
+}
+@media only screen and (min-width: 48rem) {
+  .ToolsBlurbs {
+    grid-template-columns: 1fr 1fr;
+  }
+}
+img.PullQuote-image {
+  width: 2.625rem;
+}
+
+.Card {
+  background-color: #fff;
+  border: 0.0625rem solid #c6c8ca;
+  border-radius: 0.25rem;
+  height: 100%;
+}
+
+.Card a,
+.Card a:visited,
+.Card a:hover {
+  text-decoration: none;
+}
+
+.Card-inner {
+  display: flex;
+  flex-direction: column;
+  height: 100%;
+}
+
+.Card-thumbnail {
+  background-position: center;
+  background-size: cover;
+  height: 9.5625rem;
+}
+
+.Card-content {
+  display: flex;
+  flex: 1;
+  flex-direction: column;
+  padding: 1.5rem;
+}
+
+.Card-contentTitle,
+.Card-contentBody {
+  line-height: 1.5rem;
+}
+
+.Card-contentTitle {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+}
+
+.Card-contentBody {
+  color: #6e7072;
+  flex: auto;
+  font-size: 0.875rem;
+  margin-top: 1rem;
+}
+
+.Card-contentCta {
+  align-items: center;
+  display: flex;
+}
+
+.Card-contentCta span {
+  margin-right: 0.6875rem;
+}
+
+.Card-selfPacedFooter {
+  display: flex;
+}
+
+.Card-selfPacedCredits {
+  color: #6e7072;
+  flex: 1;
+  font-size: 0.75rem;
+}
+
+.Card-selfPacedRating {
+  width: 5rem;
+}
+
+.Card-starRating {
+  background-image: url('/images/learn/star-rating.png');
+  background-position: left;
+  background-repeat: no-repeat;
+  height: 1rem;
+}
+
+.Book a,
+.Book a:visited,
+.Book a:hover {
+  text-decoration: none;
+}
+
+.Book-inner {
+  align-items: flex-start;
+  display: flex;
+  justify-content: space-between;
+}
+
+.Book-thumbnail {
+  width: 6.625rem;
+}
+
+.Book-thumbnail img {
+  width: 100%;
+}
+
+.Book-content {
+  flex: 1;
+  margin-left: 1.6875rem;
+}
+
+.Book-title {
+  color: #202224;
+  font-size: 1.125rem;
+  font-weight: 500;
+  line-height: 1.5rem;
+  margin: 0 0 0.5rem;
+}
+
+.Book-description {
+  color: #6e7072;
+  font-size: 0.875rem;
+  line-height: 1.5rem;
+}
+
+.Book-cta {
+  align-items: center;
+  display: flex;
+  height: 1.5rem;
+}
+
+.Book-cta span {
+  margin-right: 0.6875rem;
+}
+
+@media only screen and (min-width: 48rem) {
+  .Book-inner {
+    flex-direction: column;
+  }
+
+  .Book-thumbnail {
+    width: 100%;
+  }
+
+  .Book-content {
+    margin: 1rem 0 0;
+  }
+}
diff --git a/go.dev/testdata/golden/images/SCN_magnifying_glass_cloud_site.png b/go.dev/testdata/golden/images/SCN_magnifying_glass_cloud_site.png
new file mode 100644
index 0000000..17c3136
--- /dev/null
+++ b/go.dev/testdata/golden/images/SCN_magnifying_glass_cloud_site.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/adobe-logo.png b/go.dev/testdata/golden/images/adobe-logo.png
new file mode 100644
index 0000000..044c811
--- /dev/null
+++ b/go.dev/testdata/golden/images/adobe-logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/building-microservices-with-go.jpg b/go.dev/testdata/golden/images/books/building-microservices-with-go.jpg
new file mode 100644
index 0000000..8891f28
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/building-microservices-with-go.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/building-restful-web-services-with-go.jpg b/go.dev/testdata/golden/images/books/building-restful-web-services-with-go.jpg
new file mode 100644
index 0000000..52e65dd
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/building-restful-web-services-with-go.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/go-in-action.jpg b/go.dev/testdata/golden/images/books/go-in-action.jpg
new file mode 100644
index 0000000..41f613b
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/go-in-action.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/go-programming-for-network-operations.jpg b/go.dev/testdata/golden/images/books/go-programming-for-network-operations.jpg
new file mode 100644
index 0000000..5c0e61a
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/go-programming-for-network-operations.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/go-web-development-cookbook.jpg b/go.dev/testdata/golden/images/books/go-web-development-cookbook.jpg
new file mode 100644
index 0000000..3243d62
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/go-web-development-cookbook.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/go-web-programming.jpg b/go.dev/testdata/golden/images/books/go-web-programming.jpg
new file mode 100644
index 0000000..af352b6
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/go-web-programming.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/hands-on-software-architecture-with-golang.jpg b/go.dev/testdata/golden/images/books/hands-on-software-architecture-with-golang.jpg
new file mode 100644
index 0000000..1b9d507
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/hands-on-software-architecture-with-golang.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/mastering-go-web-services.jpg b/go.dev/testdata/golden/images/books/mastering-go-web-services.jpg
new file mode 100644
index 0000000..2772ea5
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/mastering-go-web-services.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/powerful-command-line-applications-in-go.jpg b/go.dev/testdata/golden/images/books/powerful-command-line-applications-in-go.jpg
new file mode 100644
index 0000000..548e792
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/powerful-command-line-applications-in-go.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/books/web-development-with-go.jpg b/go.dev/testdata/golden/images/books/web-development-with-go.jpg
new file mode 100644
index 0000000..a93db9f
--- /dev/null
+++ b/go.dev/testdata/golden/images/books/web-development-with-go.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/close-24px.svg b/go.dev/testdata/golden/images/close-24px.svg
new file mode 100644
index 0000000..dea8678
--- /dev/null
+++ b/go.dev/testdata/golden/images/close-24px.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/><path d="M0 0h24v24H0z" fill="none"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/companies-using-go-hero.svg b/go.dev/testdata/golden/images/companies-using-go-hero.svg
new file mode 100644
index 0000000..94a9d87
--- /dev/null
+++ b/go.dev/testdata/golden/images/companies-using-go-hero.svg
@@ -0,0 +1,9 @@
+<svg width="619" height="258" viewBox="0 0 619 258" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect width="619" height="258" fill="url(#pattern0)"/>
+<defs>
+<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
+<use xlink:href="#image0" transform="scale(0.00138889 0.00333333)"/>
+</pattern>
+<image id="image0" width="720" height="300" xlink:href="data:image/png;base64,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"/>
+</defs>
+</svg>
diff --git a/go.dev/testdata/golden/images/device-information.png b/go.dev/testdata/golden/images/device-information.png
new file mode 100644
index 0000000..d0a3331
--- /dev/null
+++ b/go.dev/testdata/golden/images/device-information.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/empty_case_study.png b/go.dev/testdata/golden/images/empty_case_study.png
new file mode 100644
index 0000000..0b1fb45
--- /dev/null
+++ b/go.dev/testdata/golden/images/empty_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/empty_case_study_2.png b/go.dev/testdata/golden/images/empty_case_study_2.png
new file mode 100644
index 0000000..290d9a4
--- /dev/null
+++ b/go.dev/testdata/golden/images/empty_case_study_2.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go-logo-blue.svg b/go.dev/testdata/golden/images/go-logo-blue.svg
new file mode 100644
index 0000000..da6ea83
--- /dev/null
+++ b/go.dev/testdata/golden/images/go-logo-blue.svg
@@ -0,0 +1 @@
+<svg height="78" viewBox="0 0 207 78" width="207" xmlns="http://www.w3.org/2000/svg"><g fill="#00acd7" fill-rule="evenodd"><path d="m16.2 24.1c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h35.7c.4 0 .5.3.3.6l-1.7 2.6c-.2.3-.7.6-1 .6z"/><path d="m1.1 33.3c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h45.6c.4 0 .6.3.5.6l-.8 2.4c-.1.4-.5.6-.9.6z"/><path d="m25.3 42.5c-.4 0-.5-.3-.3-.6l1.4-2.5c.2-.3.6-.6 1-.6h20c.4 0 .6.3.6.7l-.2 2.4c0 .4-.4.7-.7.7z"/><g transform="translate(55)"><path d="m74.1 22.3c-6.3 1.6-10.6 2.8-16.8 4.4-1.5.4-1.6.5-2.9-1-1.5-1.7-2.6-2.8-4.7-3.8-6.3-3.1-12.4-2.2-18.1 1.5-6.8 4.4-10.3 10.9-10.2 19 .1 8 5.6 14.6 13.5 15.7 6.8.9 12.5-1.5 17-6.6.9-1.1 1.7-2.3 2.7-3.7-3.6 0-8.1 0-19.3 0-2.1 0-2.6-1.3-1.9-3 1.3-3.1 3.7-8.3 5.1-10.9.3-.6 1-1.6 2.5-1.6h36.4c-.2 2.7-.2 5.4-.6 8.1-1.1 7.2-3.8 13.8-8.2 19.6-7.2 9.5-16.6 15.4-28.5 17-9.8 1.3-18.9-.6-26.9-6.6-7.4-5.6-11.6-13-12.7-22.2-1.3-10.9 1.9-20.7 8.5-29.3 7.1-9.3 16.5-15.2 28-17.3 9.4-1.7 18.4-.6 26.5 4.9 5.3 3.5 9.1 8.3 11.6 14.1.6.9.2 1.4-1 1.7z"/><path d="m107.2 77.6c-9.1-.2-17.4-2.8-24.4-8.8-5.9-5.1-9.6-11.6-10.8-19.3-1.8-11.3 1.3-21.3 8.1-30.2 7.3-9.6 16.1-14.6 28-16.7 10.2-1.8 19.8-.8 28.5 5.1 7.9 5.4 12.8 12.7 14.1 22.3 1.7 13.5-2.2 24.5-11.5 33.9-6.6 6.7-14.7 10.9-24 12.8-2.7.5-5.4.6-8 .9zm23.8-40.4c-.1-1.3-.1-2.3-.3-3.3-1.8-9.9-10.9-15.5-20.4-13.3-9.3 2.1-15.3 8-17.5 17.4-1.8 7.8 2 15.7 9.2 18.9 5.5 2.4 11 2.1 16.3-.6 7.9-4.1 12.2-10.5 12.7-19.1z" fill-rule="nonzero"/></g></g></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/go-logo-white.svg b/go.dev/testdata/golden/images/go-logo-white.svg
new file mode 100644
index 0000000..727a62e
--- /dev/null
+++ b/go.dev/testdata/golden/images/go-logo-white.svg
@@ -0,0 +1 @@
+<svg height="78" viewBox="0 0 207 78" width="207" xmlns="http://www.w3.org/2000/svg"><g fill="#ffffff" fill-rule="evenodd"><path d="m16.2 24.1c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h35.7c.4 0 .5.3.3.6l-1.7 2.6c-.2.3-.7.6-1 .6z"/><path d="m1.1 33.3c-.4 0-.5-.2-.3-.5l2.1-2.7c.2-.3.7-.5 1.1-.5h45.6c.4 0 .6.3.5.6l-.8 2.4c-.1.4-.5.6-.9.6z"/><path d="m25.3 42.5c-.4 0-.5-.3-.3-.6l1.4-2.5c.2-.3.6-.6 1-.6h20c.4 0 .6.3.6.7l-.2 2.4c0 .4-.4.7-.7.7z"/><g transform="translate(55)"><path d="m74.1 22.3c-6.3 1.6-10.6 2.8-16.8 4.4-1.5.4-1.6.5-2.9-1-1.5-1.7-2.6-2.8-4.7-3.8-6.3-3.1-12.4-2.2-18.1 1.5-6.8 4.4-10.3 10.9-10.2 19 .1 8 5.6 14.6 13.5 15.7 6.8.9 12.5-1.5 17-6.6.9-1.1 1.7-2.3 2.7-3.7-3.6 0-8.1 0-19.3 0-2.1 0-2.6-1.3-1.9-3 1.3-3.1 3.7-8.3 5.1-10.9.3-.6 1-1.6 2.5-1.6h36.4c-.2 2.7-.2 5.4-.6 8.1-1.1 7.2-3.8 13.8-8.2 19.6-7.2 9.5-16.6 15.4-28.5 17-9.8 1.3-18.9-.6-26.9-6.6-7.4-5.6-11.6-13-12.7-22.2-1.3-10.9 1.9-20.7 8.5-29.3 7.1-9.3 16.5-15.2 28-17.3 9.4-1.7 18.4-.6 26.5 4.9 5.3 3.5 9.1 8.3 11.6 14.1.6.9.2 1.4-1 1.7z"/><path d="m107.2 77.6c-9.1-.2-17.4-2.8-24.4-8.8-5.9-5.1-9.6-11.6-10.8-19.3-1.8-11.3 1.3-21.3 8.1-30.2 7.3-9.6 16.1-14.6 28-16.7 10.2-1.8 19.8-.8 28.5 5.1 7.9 5.4 12.8 12.7 14.1 22.3 1.7 13.5-2.2 24.5-11.5 33.9-6.6 6.7-14.7 10.9-24 12.8-2.7.5-5.4.6-8 .9zm23.8-40.4c-.1-1.3-.1-2.3-.3-3.3-1.8-9.9-10.9-15.5-20.4-13.3-9.3 2.1-15.3 8-17.5 17.4-1.8 7.8 2 15.7 9.2 18.9 5.5 2.4 11 2.1 16.3-.6 7.9-4.1 12.2-10.5 12.7-19.1z" fill-rule="nonzero"/></g></g></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/go_amex_case_study.png b/go.dev/testdata/golden/images/go_amex_case_study.png
new file mode 100644
index 0000000..d6dba10
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_amex_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_amex_case_study_logo.png b/go.dev/testdata/golden/images/go_amex_case_study_logo.png
new file mode 100644
index 0000000..d2f6a22
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_amex_case_study_logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_at&t_case_study.png b/go.dev/testdata/golden/images/go_at&t_case_study.png
new file mode 100644
index 0000000..a115a3e
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_at&t_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_at_t_case_study_logo.png b/go.dev/testdata/golden/images/go_at_t_case_study_logo.png
new file mode 100644
index 0000000..bb57455
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_at_t_case_study_logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_chrome_case_study.png b/go.dev/testdata/golden/images/go_chrome_case_study.png
new file mode 100644
index 0000000..4e22e43
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_chrome_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_core_data_case_study.png b/go.dev/testdata/golden/images/go_core_data_case_study.png
new file mode 100644
index 0000000..2da16d1
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_core_data_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_firebase_case_study.png b/go.dev/testdata/golden/images/go_firebase_case_study.png
new file mode 100644
index 0000000..5b35bfd
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_firebase_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_google_case_study_carousel.png b/go.dev/testdata/golden/images/go_google_case_study_carousel.png
new file mode 100644
index 0000000..885c400
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_google_case_study_carousel.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_mercadolibre_case_study.png b/go.dev/testdata/golden/images/go_mercadolibre_case_study.png
new file mode 100644
index 0000000..0767922
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_mercadolibre_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_mercadolibre_case_study_logo.png b/go.dev/testdata/golden/images/go_mercadolibre_case_study_logo.png
new file mode 100644
index 0000000..822c6c3
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_mercadolibre_case_study_logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_paypal_case_study.png b/go.dev/testdata/golden/images/go_paypal_case_study.png
new file mode 100644
index 0000000..eb96d7d
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_paypal_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_paypal_case_study_logo.png b/go.dev/testdata/golden/images/go_paypal_case_study_logo.png
new file mode 100644
index 0000000..b1dde6e
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_paypal_case_study_logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/go_sitereliability_case_study.png b/go.dev/testdata/golden/images/go_sitereliability_case_study.png
new file mode 100644
index 0000000..51241c5
--- /dev/null
+++ b/go.dev/testdata/golden/images/go_sitereliability_case_study.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/google-grey.png b/go.dev/testdata/golden/images/google-grey.png
new file mode 100644
index 0000000..36b90cc
--- /dev/null
+++ b/go.dev/testdata/golden/images/google-grey.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/google-logo.png b/go.dev/testdata/golden/images/google-logo.png
new file mode 100644
index 0000000..05764e7
--- /dev/null
+++ b/go.dev/testdata/golden/images/google-logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/google-logo.svg b/go.dev/testdata/golden/images/google-logo.svg
new file mode 100644
index 0000000..796ed0c
--- /dev/null
+++ b/go.dev/testdata/golden/images/google-logo.svg
@@ -0,0 +1,38 @@
+<svg width="92" height="30" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M80.5 20.7a7.3 7.3 0 005.3 2.2c2.7 0 4.8-1.1 6.4-3.4l-2.6-1.7c-1 1.4-2.2 2.1-3.8 2.1-1.6 0-2.9-.7-3.7-2.3l10.2-4.1-.3-.9a8.2 8.2 0 00-2.6-3.4 6.4 6.4 0 00-4-1.3c-2 0-3.7.7-5 2a7.5 7.5 0 00-2.1 5.5c0 2 .7 3.9 2.2 5.3zm2-8.7a4.3 4.3 0 014.7-.7c.5.2.9.6 1.1 1l-7 2.6c0-1.2.4-2.1 1.2-2.9z"
+    fill="#EA4335"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M73 1h4v22h-4V1z"
+    fill="#34A853"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M62.2 29.5c.7.3 1.4.4 2.2.4 2.1 0 3.8-.7 5-2a8.5 8.5 0 001.9-6V8.4h-3v1.3H68a4.7 4.7 0 00-3.8-1.7c-1.9 0-3.5.7-5 2.2a7.6 7.6 0 00-2 5.4c0 2 .7 3.8 2 5.3 1.5 1.5 3.1 2.2 5 2.2 1.6 0 3-.5 3.8-1.7h.2v.8c0 3.2-1.3 4.8-4 4.8-.8 0-1.5-.3-2.2-.8a4.7 4.7 0 01-1.4-2l-2.8 1.3c.3.6.6 1.3 1 1.8a6.8 6.8 0 003.3 2.3zm-.7-11c-.8-.8-1.2-1.9-1.2-3.1 0-1.3.4-2.4 1.2-3.2.8-.9 1.8-1.3 2.9-1.3 1 0 2 .4 2.8 1.3.7.8 1.1 2 1.1 3.2 0 1.2-.4 2.3-1.1 3.2-.8.8-1.7 1.3-2.8 1.3-1.2 0-2.1-.5-3-1.3z"
+    fill="#4285F4"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M53.1 20.7a7.3 7.3 0 002.2-5.3c0-2.2-.7-4-2.2-5.4A7.2 7.2 0 0047.8 8c-2.1 0-4 .7-5.4 2.1a7.2 7.2 0 00-2.1 5.4c0 2 .7 3.8 2.2 5.3a7.2 7.2 0 005.3 2.2c2.1 0 3.9-.8 5.3-2.2zm-8.6-2.1c-.8-.9-1.2-2-1.2-3.2 0-1.3.4-2.4 1.2-3.2.7-.9 1.7-1.3 2.8-1.3 1.1 0 2 .4 2.8 1.3.8.8 1.2 1.9 1.2 3.2 0 1.2-.4 2.3-1.2 3.2-.8.8-1.7 1.3-2.8 1.3-1.1 0-2-.5-2.8-1.3z"
+    fill="#FBBC04"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M37.1 20.7a7.3 7.3 0 002.2-5.3c0-2.2-.7-4-2.2-5.4A7.2 7.2 0 0031.8 8c-2.1 0-4 .7-5.4 2.1a7.2 7.2 0 00-2.1 5.4c0 2 .7 3.8 2.2 5.3a7.2 7.2 0 005.3 2.2c2.1 0 3.9-.8 5.3-2.2zm-8.6-2.1c-.8-.9-1.2-2-1.2-3.2 0-1.3.4-2.4 1.2-3.2.7-.9 1.7-1.3 2.8-1.3 1.1 0 2 .4 2.8 1.3.8.8 1.2 1.9 1.2 3.2 0 1.2-.4 2.3-1.2 3.2-.8.8-1.7 1.3-2.8 1.3-1.1 0-2-.5-2.8-1.3z"
+    fill="#EA4335"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M12 23a12.1 12.1 0 01-10.4-5.8 11 11 0 010-11.4C2.6 4 4 2.6 6 1.6a12.1 12.1 0 0114 1.6l-2.2 2.2A8.4 8.4 0 0012 3c-2.4 0-4.4.9-6 2.5a8 8 0 00-2.5 5.9 8 8 0 002.5 6 8.2 8.2 0 006 2.4c2 0 3.8-.6 5.2-1.7a6.6 6.6 0 002.5-4.6H12v-3.1h10.8l.2 2c0 3.1-1 5.7-3.1 7.6-2.1 2-4.7 2.9-8 2.9z"
+    fill="#4285F4"
+  />
+</svg>
diff --git a/go.dev/testdata/golden/images/google-white.png b/go.dev/testdata/golden/images/google-white.png
new file mode 100644
index 0000000..c55ee30
--- /dev/null
+++ b/go.dev/testdata/golden/images/google-white.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/gopher-footer.jpg b/go.dev/testdata/golden/images/gopher-footer.jpg
new file mode 100644
index 0000000..fafe104
--- /dev/null
+++ b/go.dev/testdata/golden/images/gopher-footer.jpg
Binary files differ
diff --git a/go.dev/testdata/golden/images/gophers/biplane.svg b/go.dev/testdata/golden/images/gophers/biplane.svg
new file mode 100644
index 0000000..e510140
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/biplane.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 1200 945" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M811 927l-14-4a287 287 0 01-58-36c-14-7-29-20-40-31l-22-17-18-14c-24-17-46-36-67-57-4-3-10-7-12-10l-27-21c-9-9-10-9-24-4l-31 6c-2 0-4 0-6 2l-7 11c-4 8-4 9-3 13 0 2 3 6 6 9 5 7 20 21 20 32 4 6 4 16 4 23 0 11-1 23-9 32-10 12-22 21-32 22l-10 2c-12 2-13 2-15 0l-3-3h-1c-2 1-11-1-13-3l-8-5c-14-9-23-27-25-43l1-16v-8l-1-2 2-2 4-6c0-3 3-7 5-11 4-6 4-6 3-12 0-7-3-12-11-19-6-6-16-6-24-7-4 0-10-1-14 3l-5 4c-1 2-12 10-19 13-8 6-17 0-26 4s-12 17-24 17h-1v-1l5-6c9-11 11-15 7-18-7-7-20 13-25 13h-1v-1l7-8c10-9 11-12 6-19-2-2-4-7-4-9l-4-8c-10-7-22-8-33-12-7-3-7-5-13-9l-4-2h-1v2l6 9a63 63 0 0116 22c5 5 16 24 20 34l8 17c3 7 3 13 0 17l-2 5c-9 12-21 12-32 2-2-2-24-17-24-25l-4-6c-8-15-10-18-14-30-9-22-10-47-18-70-2-4-3-4-11-7-6-1-14-5-16-8-5-5-3-18 0-23 7-11-4-22-10-30a456 456 0 01-40-54c-7-10-19-33-22-41-4-13-4-18-3-24 2-8 6-16 16-12 2 0 3 2 5 3 19 9 30 29 38 47 3 6 7 12 9 19l13 37 4 14 5 12 5 10 2 1 3-1c3-2 10-19 13-33 4-17 6-22 9-23 7-7 9-18 13-27 1-3 3-10 7-12a322 322 0 0019-23l6-6 5-8c5-5 2-7-29-31-8-5-16-12-23-19-5-2-7-6-12-8l-7-6-10-7c-12-6-19-13-29-21-9-7-17-14-18-18l-3-10c0-10 3-24 15-24l12-3c4-1 25-3 21-13l-4-7-11-17-11-17-27-32c-7-7-9-13-8-22 1-10 3-13 18-24 5-4 15-11 19-12l10-5c11-5 30-12 38-13l12-3 33-3c17-3 37-2 51 2 13 5 35 17 56 33l12 8 13 9 33 24 13 10a447 447 0 0140 28l12 7 4 2 2-1c0-12 9-25 18-33 11-7 15-9 30-7l6 1v-1c0-2 23-19 26-19l8-4c7-3 8-4 11-10l6-7c6-5 12 4 14 8 3 4 3 4 14 7a234 234 0 0149 17c7 6 18 13 23 15l7 2 9-2c4 0 6 0 9 2 9 4 18 12 12 23l-9 10c-4 5-4 5-4 18 1 14 1 14-2 21-7 14-3 16-8 30-2 10 0 12 11 6 9-4 19-14 26-25 6-8 10-12 18-17 5-3 7-5 9-10 7-12 10-14 23-18 9-2 17 0 44 10 11 4 17 8 25 13l11 6c12 0 18-10 24-19 6-11 9-14 19-21 4-3 7-9 12-9l5-2c1-1 16-10 19-10 10-6 33-12 40-11 14 2 30 11 40 21 4 0 11 10 13 12 2 0 6 4 8 9l4 8c8 9 12 45 8 64l-3 17-3 17-3 11c-3 9-5 11-10 19-3 3-3 4-2 6l11 12c22 21 43 44 48 52l6 10c8 10 9 21 3 29-2 3-4 4-10 6l-21 7c-5 0-22-2-27-4l-28-13-25-12-7-5-4-2-5-2c-7-7-11 0-18 5-14 12-19 15-32 22l-16 9-26 19c-4 4-7 6-11 7l-8 3c-5 3-4 6 5 13l15 15 16 14 37 29 18 17c14 12 25 29 16 48-3 7-11 16-20 23-12 9-12 10-17 24-3 10-9 26 1 34l15 10c12 8 17 14 22 22 4 7 6 22 1 29-2 5-11 13-18 16-45 20-80 33-93 35l-20 2-18 1h-10zM83 700l-3-6-1-2c-3-2-9-27-11-45-4-37-2-62 7-80l4-9 1-4h2l-1 3-3 10c-8 18-9 34-7 64 1 26 4 30 10 55 1 3 1 8 4 11l2 6v2h-1l-3-5zm-30-62l-2-22c-2-24 1-44 9-60 6-14 10-20 13-20h1v3h-1l-4 7-6 11c-3 4-7 16-8 23-2 10-1 46 1 53l-1 4-1 2-1-1zm886-441c0-3 5-5 7-6 5-3 19-11 23-15l9-2 16-4a185 185 0 0183-11c11 2 27 3 37 10l10 5 9 6 8 5 5 4 1 2v1h-1l-8-4-8-5-3-1c-2-3-19-12-26-13l-11-3a193 193 0 00-58 1c-11 1-27 5-47 12-9 3-16 3-25 7-7 3-14 6-19 11l-2 1v-1zm-41-26c0-1 8-8 15-12l16-13c14-10 21-15 30-17l15-5 12-5 18-6c15-5 25-8 36-8l16-3c8-2 15-4 23-4 3 0 10 0 10 5v1l-2-1c-5-2-18-1-32 4l-15 3c-5 0-17 2-22 5l-16 5-13 5-3 2-1 1h-2c-1-1-19 5-26 8-14 7-27 16-39 25-10 8-15 11-18 11h-2v-1z" fill="#0e0e0e" fill-rule="nonzero"/><path d="M809 922c-7-2-18-8-22-11l-7-4-31-21-12-8c-12-8-12-7-23-17l-33-26-14-10-24-19a215 215 0 01-37-31l-8-8-15-13-17-15c-2-2-9-6-8-11s9-2 11 0c10 5 18 13 27 20l58 49c10 10 37 32 46 39l12 9 53 40c8 7 22 16 27 18l15 4c17 3 36 2 58-4l39-12 29-10c5-1 14-4 19-7l10-4h2l1 2c1 5-5 9-22 17a147 147 0 00-24 10l-5 2c-9 4-46 16-59 19-23 4-23 2-46 2zm9-17c-8 0-18-3-23-6-6-2-17-10-22-14l-12-9-14-12-17-13c-7-4-9-7-15-12-1-1-4-4-6-4l-7-6c-4-6-26-22-31-26l-38-30-36-30-11-10-9-9c-1-3 0-5 3-6 7-1 17-5 23-8l15-6 16-6c10-6 15 0 23 6a1831 1831 0 0058 47c11 13 26 21 41 30l30 16 21 6c3 1 9 9 14 18 23 39 32 52 36 54 2 0 9-3 9-6 1-2-1-12-3-18-6-14-13-28-18-43-4-10 2-14 11-17 10-3 18-6 28-2 9 4 14 8 16 13v11a184 184 0 00-1 40c2 11 11 2 12-3 3-4 7-21 10-25 3-9 7-9 15-1l9 6c7 3 14 9 16 14 6 12-8 26-19 28l-4 2c-3 2-14 7-37 14l-12 4c-3 2-8 3-10 3l-16 4c-14 5-34 7-45 6zm-369-28l-13-3-9-3c-5-3-15-13-19-20-5-8-6-15-6-28 1-10 1-11 4-18 4-10 9-17 18-23s29-12 35-10c3 0 21 9 27 13 7 5 16 18 18 26 3 10 2 15-3 30-3 11-5 15-8 18-8 10-22 17-31 18h-13zm19-33c3-2 10-5 10-10v-11c0-12 0-13-3-16-3-4-10-9-14-10l-9 3-10 6c-8 7-8 21-3 29 1 1 3 6 5 7l4 2c6 1 14 2 20 0zm386 22l-16-24-3-7c-5-7-14-22-17-30l2-4 7-1c5 0 6 1 8 5a276 276 0 0115 29c11 22 13 30 11 33-1 3-4 2-7-1zm50-19c-1-3 0-13 4-34l2-23c1-17 2-20 5-22 3-3 10-4 11-2 3 2 2 6-3 23l-6 26c-1 9-7 29-8 32l-3 2h-1l-1-2zm-652-29c-5-3-13-8-15-12l-3-3-5-6-7-10-3-6c-9-13-11-20-22-61l-4-17-3-19-3-14 1-1 1 1 7 12 9 15 13 16 14 17c7 9 12 17 23 38 8 16 11 21 14 39 1 3-1 6-3 8-3 4-9 5-14 3zm553-24l-18-3c-17-8-26-13-37-21l-16-11-16-13c-15-15-23-21-40-34l-12-9-42-32-14-10c-4-3-12-9-17-15-11-10-30-25-39-30-24-15-43-38-67-53l-30-23-14-11-15-12-12-9-16-12c-4-3-8-9-13-11l-3-1v-1l-9-8-11-9-10-8c-9-12-23-21-36-30l-16-12c-16-14-33-27-45-35s-22-19-35-25l-32-27c-14-10-29-23-32-27l-10-9c-12-11-27-27-31-34-3-6-4-12-1-13h1l1 2a352 352 0 0119 20c14 14 20 20 38 34l33 25 18 14 22 16c16 10 21 14 44 33l27 22 11 9c9 9 19 15 28 23 16 15 27 23 57 44l14 11 15 11 18 14 21 15 20 16c5 4 9 9 15 12 2 2 7 2 9 4l4 3 15 12 21 16 13 12 12 9 60 47c15 12 28 24 44 34l16 13 7 7 26 20c12 12 33 27 39 30 17 4 41 7 58-1 9-6 83-31 95-33l10-3c1 0 6-4 8-1h1l-1 3c-2 4-8 7-17 12l-9 5-7 3c-4 0-14 4-23 8l-22 8c-8 2-20 11-29 11l-16 5c-11 3-22 5-27 3zm89-7l-5-6-1-1 1-2c3-3 8-4 11-5 2 0 4 0 5 2 2 3 1 7 0 10-2 6-4 6-11 2zm-474-15l-4-5-15-18c-4-5-7-11-6-14 0-3 4-3 6-3l34-1 24-3c14-1 16-2 22-4 7-3 8-4 10-1 2 1 1 5-4 15-4 7-9 19-9 25l-3 5-1 1-5-2c-11-5-31-2-41 4-4 2-6 2-8 1zm383 0l-12-3-27-17-14-10-8-8-6-6-40-32-15-12c-30-20-31-21-44-33l-19-15-21-15-12-9-24-21-12-9-16-12-25-19-12-9-8-6-8-6c-11-11-26-19-39-29l-33-24-20-15-16-12-8-6-11-10-14-12-9-6-60-50c-7-6-24-16-31-23l-10-7c-13-8-34-24-42-32l-10-7-11-8c-16-13-27-29-41-43-4-5-5-11-2-17 3-5 12-12 27-19 13-7 20-9 35-13l18-5c5-2 8-2 58-5l16 1c16 8 17 4 33 13a254 254 0 0152 35l11 8c4 4 7 7 39 28l29 20 21 14c14 10 18 13 22 23 3 6 3 7 3 13-3 8-5 30-6 36-1 15-1 16 1 22l6 11c4 7 14 16 20 20l11 5c12 7 12 7 25 10 17 3 35 5 51 4l16-1c0-3 4-3 6-2 12 1 24 1 35 6a84 84 0 0125 16l12 9 6 4 6 6 18 13c17 14 34 29 52 41l22 18 18 14 32 25 14 11 27 24 41 35 20 16c7 6 14 14 16 19 4 4 1 19-3 21-9 5-25 10-35 13-3 1-7 1-9 3l-9 4-7 2c-7 2-14 3-20 7l-12 4-14 5c-7 3-12 5-29 9h-20zm-471-24c3-2 8-3 14-1 8 3 6 7-7 15l-13 5c-2 0-6 1-8-1l-1-5c1-3 1-6 4-8 4-3 8-2 11-5zm-30 11c-4-4-4-6-1-11 3-4 6-4 9 0l2 2c2 3 1 6-1 9-1 1-3 3-5 3l-4-3zm-13-12c-3-2-5-9-3-10 2-3 11-2 13 2 1 4-4 10-8 10l-2-2zm69-6h-9l-18-3c-4-2-4-4-3-14v-14l1-7-2-1h-1v3l-4 24c-3 5-7 4-12 2v-9l4-33v-9h-3v7l-4 33c-2 10-3 11-13 8-9-3-15-5-15-7l-1-2 2-2a120 120 0 0017-41c5-19 6-40 0-59-3-10-8-21-13-31-5-12-16-27-29-32-10-5-9-7-19-12-3-1-7 0-9-2-3-3 1-8 2-10l17-18a138 138 0 0138-26l8-5c14-9 33-20 50-20 4 0 9 4 12 6 12 10 21 16 24 17l26 22 12 8 7 6 21 15 27 22 10 8 18 16c7 7 16 15 21 17l18 15c11 10 12 11 7 15-8 5-18 8-22 17-4 6 2 11 8 11 7-1 25-6 32-10 6-3 7-3 12-3 5 1 17 7 20 11l18 13 8 6 11 10 4 6c-1 2-10 7-21 10l-13 5-28 10-17 3a449 449 0 01-45 13l-7 2c-9 2-7-9-10-14-3-3-4-3-14 1l-19 4-15 2-20 2c-11 0-24 0-35 2-4 1-3 10-5 12-3 1-22 2-29 0zm-102-22c-10-3-17-6-20-10-9-7-27-25-27-26v-2h4c5 0 14-2 19-4l15-15c6-18 5-38-12-49-10-7-17-10-26-10l-9-2v-5l1-7c1-8 14-37 18-40 7-5 23 1 28 6l10 7c13 9 20 18 27 31 3 7 7 15 7 19 3 11 6 39 4 43-1 1-2 7-2 15-2 17-5 24-12 35-5 8-6 9-11 11-7 4-11 4-14 3zm-90-49c-7-4-11-17-4-22s16-7 25-7l10 2c5 3 6 9 6 15l-2 7c-2 3-5 2-12-4l-8-6h-2v2l-1 2v8l-1 3c-1 3-6 3-11 0zm44 1c-4-9 1-19-5-27-3-6-8-11-10-12-7-1-8-8-3-14 4-6 10-9 17-9 7-1 12 1 22 7 9 6 12 10 13 20v15c-3 10-4 12-9 15-6 4-10 5-17 6l-8-1zm319-20l-2-1v-2c0-2 2-4 3-5 6-6 10-8 17-12 4-1 8-3 12-1 4 1 11 8 4 11a218 218 0 01-12 4c-16 6-19 7-22 6zm-368-22l-11-15-15-19-12-16c-7-8-10-19-18-27-10-15-18-29-20-48-1-15 20-6 25 0a197 197 0 0140 72c8 21 16 48 16 53v3h-1l-4-3zm683-38l-33-24-17-14-28-23-23-19-24-18-16-11c-2-3-8-7-12-10l-11-9-3-3 3-7 5-13c0-3 2-7 3-8l9-2 32-6 19-3 17-4 35-3c22-5 21-5 19 14v2l6 2c5 2 8 2 16 1l18-2 22-3 19-3 9-1c2 1 8 0 14-1 13-2 11-2 33 0 24 1 37 5 38 10v2l-2 1c-2 1-15 2-53 2l-55 2c-4 1-15 6-12 12 1 4 6 8 8 10l18 14 14 10 18 13 20 15c2 1 6 5 6 8 0 2-4 7-6 8-9 9-21 18-32 24-7 4-21 16-31 19l-9 5c-8 6-24 18-34 13zm205-37c-12-4-33-15-55-29-6-3-13-6-18-11l-22-16-25-17-5-4-5-4-26-21-6-6 1-1c0-1 1-2 3-2l8-1h82c11 0 15-1 26 3l12 6c6 5 31 28 37 36l14 15c10 9 16 18 22 31 4 9 4 11-1 16-2 3-4 4-11 6-12 3-20 3-31-1zm-27-2l-10-6-13-7-28-16-13-9c-4-2-10-6-13-10l-30-22c-8-6-9-4-15-10l-12-10c-7-5-8-6-8-8v-2h2c1-1 6 1 11 5l5 5c9 4 14 13 23 17l14 10c7 7 19 14 27 19 29 19 28 20 58 37 7 3 12 7 12 8v1h-3l-7-2zm-768-68c-7-4-14-10-28-22-9-9-13-10-22-17l-21-14-10-9-12-9c-2-1-9-3-9-7-8-8-24-16-24-30v-3l1-1c5 0 9 6 12 9a459 459 0 0060 47l17 14 14 11c17 13 33 26 34 29l2 2-1 2c-2 2-5 1-13-2zm17-8l-11-8-16-13-13-10-9-5-6-4c-1-2-9-9-16-13l-33-28-13-11c-7-4-30-24-10-28 10-3 19-5 29-6l3 2c2 3 16 30 24 18 1-3 1-3-3-13-2-8-3-10-2-11l1-2 2 1a559 559 0 0144 31c3 1 6 5 8 7a319 319 0 0139 30c10 7 24 19 27 23 3 3 6 18 4 20-1 3-6 6-8 7l-15 7c-7 4-17 13-26 6zm54-21l-2-5 1-6 2-1 2 2c2 2 3 6 0 9-1 2-3 3-3 1zm338-7l-8-4c-1-2-3-2-5-2h-7c-4-2-9-1-27 0h-23l-1-1 1-2 1-2-3-3c-5-5-14-8-19-5h-9l1 4c0 4-2 6-7 9-4 2-11 0-15-1-20-7-40-17-50-36-4-8-4-8-4-18 1-17 4-34 5-35 2-3 5-2 7 1 2 2 2 7 0 11 0 3 4 7 9 8 4 1 4 1 7-2 5-7 17-4 23 0 8 7 20 12 28 12 13 2 23-2 37-14 6-6 7-6 12-6 5 1 7 1 10 4 9 5 10 11 13 21 3 8 4 18 12 22l16 5 14 4c2 2 1 5-1 15-4 13-4 15-7 16-3 2-3 2-10-1zm-91-4c-3-2-2-4 2-9 3-4 4-4 7-4l6 2 3 2v1l-2 3-8 5-4 1-4-1zm441-3l-12-11c-6-5-9-7-14-9-12-5-25-3-38-3-11 0-24-4-34 1l-17 2-16 1c-3 2-41 4-46 3l-6-1c-2-2-1-8 2-13a234 234 0 0142-60c22-37 36-51 63-64 6-3 13-6 17-6 9-3 20-5 29-4 15 3 27 10 41 28 5 6 9 11 10 15l4 9c7 11 6 26 6 38 0 10 0 20-2 30l-2 14c0 6-6 22-8 26-2 3-7 7-11 8l-8-4zm-320-19l-2-2 1-3c1-1 6-5 15-9 7-4 15-8 16-10 4-3 8-9 15-19 6-8 21-27 34-20 5 3 6 7 11 11l16 16c6 5 14 14 14 16v2l-1 1c-12 0-24 0-35 5l-36 6-18 3-13 2-9 2c-4 1-5 1-8-1zm-30-13c-12-3-17-8-19-19l-3-13c0-2-3-8-1-10 1-3 6-2 8-2 11-1 20-2 30-6l8-3h2v7c-2 8-7 33 9 27 3-1 6-1 8-3 7-4 20-14 25-22 10-14 16-19 23-21 2-2 5-3 8-3 4 0 8 3 6 7l-9 6c-5 2-11 6-14 9-11 9-8 10-17 21-8 10-12 13-23 19-8 5-10 5-19 6h-22zm163-16c-15-9-27-20-39-32l3-6c7-8 6-14 0-21-5-7-12-4-19-2-11 4-8-6-2-10 9-5 21-5 31-3 11 3 33 12 39 17l11 8c10 5 10 8 4 20-7 13-21 31-24 31l-4-2zm-267-19c-11-4-18-8-21-13v-10l1-1 1 1 4 5c3 4 12 9 19 11 2 0 6 0 10-2 8-2 15-6 20-16 5-8 6-18 0-26-3-7-10-12-19-15-8-3-17-2-26 1l-7 5c-4 3-7 14-13 6l-5-4c-5-2-6-5-5-10l2-10c2-9-4-18-13-22l-6-2-1-1 2-2 8-1c10 1 19 6 30 15 8 7 8 8 21 12l19 5c7 2 14 7 22 14 9 10 14 25 6 37-5 9-16 19-23 22-8 3-19 4-26 1zm-52-7a5 5 0 01-1-1c-2-3 0-6 2-8l3-2 2 2c2 2 2 6-1 9-2 3-3 2-5 0zm-320-6c-1-4-2-4-4-7l-10-19-5-11-1-2 1-1c4-1 14 9 17 18l5 14 4 11c-2 2-4 1-7-3zm368-5c-6-4-10-8-11-13-1-10 2-22 9-27 3-2 7-2 11-2 12 1 25 6 26 20 2 9-2 16-12 22-7 3-16 5-23 0zm5-15c4-3 1-9-5-9h-3l-1 2c-1 3 1 7 3 8 3 1 4 1 6-1zm69 16c-2-1-11-1-13-6-1-2-1-12 3-12l6 2c7 3 13 3 28 2 14-1 20-3 34-9 5-2 7-3 8-2l2 1-1 2c-1 5-19 18-29 21-9 3-27 4-38 1zm-107-1l-6-3-7-4c-4-2-7-4-8-8v-3l1-3c2-5 6-3 10-1 2 2 6 3 9 4 6 1 9 4 10 9 1 6-3 10-9 9zm254-15l1-3 3-1c2 0 4 0 6 2a20 20 0 011 2l1 2-3 3-3 2-4-2-2-5zm-143-3c-8-2-11-4-17-14-4-9-13-18-21-22l-17-7-17-5-7-3c-3 0-16-13-19-18l-1-2 3-3c13-16 37-20 56-20 18-1 19-1 26 1 8 2 16 6 18 8l6 1 8 4 9 6 9 7c4 5 5 7 2 12l-1 3 4 5c4 4 5 6 7 12 1 4 4 13 10 10 5-1 8 5 5 10-3 3-21 13-27 14-8 1-31 2-36 1zm-116-7c-3-2-4-5-1-7 2-3 5-2 8 0 2 3 3 4 0 6-1 2-4 2-7 1zm-30-16c-5-5-8-13-6-19 3-8 9-14 17-16 6-1 9-1 12 3 3 3 4 17 2 22-3 7-10 14-18 13-4 0-4-1-7-3zm5-7l2-2c2-2 2-5 1-7s-3-5-6-3c-2 1-4 4-3 6l2 3c1 1 2 3 4 3zm197-3c-2 0-2-3-1-4 2-3 4-5 7-6l3-2v-4l-6-1-9-1h-2v-2c1-4 6-6 10-6 6-1 16-1 18 7v6c-2 5-13 15-18 15l-2-2zm-109-69c-2-1-1-5 1-7 2-1 6-3 7 0a6 6 0 011 3l-1 4h-8zM451 837l-8-6-3-4v-6l1-6c1-3 5-6 7-8 5-3 11-6 16-3 4 1 6 5 8 8 3 5 3 10-1 17-5 11-10 13-20 8z" fill="#fff" fill-rule="nonzero"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/blue.svg b/go.dev/testdata/golden/images/gophers/blue.svg
new file mode 100644
index 0000000..5505540
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/blue.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="blue"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#6cd1ef;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#6cd1ef;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#6cd1ef;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/factory.png b/go.dev/testdata/golden/images/gophers/factory.png
new file mode 100644
index 0000000..d94dfb4
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/factory.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/gophers/front.svg b/go.dev/testdata/golden/images/gophers/front.svg
new file mode 100644
index 0000000..8d7b916
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/front.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 465 619" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M102.644,615c-16.389,-8.194 -11.303,-20.62 -5.625,-34.5c9.389,-22.951 -3.981,-23.769 -19.412,-37.796c-19.506,-17.733 -39.122,-39.021 -50.963,-62.704c-14.001,-24.502 -18.382,-57.498 -20,-85c0,-40.155 -7.265,-79.822 -5.667,-120.037c1.352,-34.006 -0.349,-80.92 11.667,-112.963c3.38,-10.142 32.479,-78.041 29,-85c-23.681,-23.681 -21.452,-83.521 18,-49c31.165,24.932 62.114,-9.516 94.704,-16.444c61.596,-13.096 123.887,-18.285 183.296,5.444c21.327,0 43.03,22.728 60.125,32.625c11.841,6.855 72.516,-50.952 62.764,1.708c-2.815,15.201 -9.565,28.873 -23.389,37.167c-7.945,4.767 7.357,27.287 9.652,33.436c10.601,28.413 11.426,60.244 14.108,90.36c6.637,74.555 4.447,158.167 -10.26,231.704c-6.071,24.284 -14.758,44.697 -24.625,67.25c-6.954,15.895 -27.749,23.998 -39,36.5c-16.914,18.793 15.786,37.347 6.625,60.25c-13.391,26.781 -47.697,-17.093 -52,-30c-5.31,-15.929 -101.922,3.585 -124.487,3.491c-23.252,-0.096 -46.379,-3.491 -69.513,-3.491c-10.705,5.048 -20.592,55.306 -45,37c-2,-1 4,3 0,0" style="fill:#040404;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-116,-6c-8.185,-1.169 -14.513,-9.289 -6.625,-16.125c8.135,-7.05 21.481,-5.753 31.125,-4.375c7.732,1.104 12.184,13.158 3.5,17.5c-7.375,7.375 -18.768,3 -28,3c-7,-1 3,0 0,0m22,43c-8.952,-3.836 -40.005,2.874 -44.313,-3c-12.5,-17.047 6.06,-33 21.313,-33c19.882,9.941 37.782,-9.186 50.75,16.75c8.709,17.417 -17.018,21.396 -27.75,19.25c-7,-3 5,1 0,0m-23,33c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m71,-288c-8.052,-2.684 -16.558,-4.156 -25,-5c0.902,-0.431 1.235,-1.098 1,-2c9.566,1.579 21.608,3.746 29,9c-1.859,0.149 -3.526,-0.518 -5,-2c-6,-2 2,1 0,0m140,34c0,-6.759 -4.656,-12.427 -10,-16c9.953,2.648 14.333,15.051 9,21c0.333,-1.667 0.667,-3.333 1,-5c0,-3 0,0 0,0m-415,26c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m386,19c0,-8.832 -5.12,-15.191 -13,-21c11.589,-7.833 22.214,5.549 24,-12c-2.658,3.632 -4.363,3.688 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-27.2,-19.047 47.771,-58.078 39,-12c1.113,-0.759 2.759,-2.201 4,-3c-1.639,9.695 -18.896,42.654 -29,37c0,-2 0,0 0,0m22,62c-2.891,-17.346 -12.595,-33.034 -15,-50c7.54,19.051 16.513,37.267 17,58l-2,0l0,-8c-2,-12 0,0 0,0m3,29c-2.595,-5.189 -2.293,-13.281 -2,-19l2,0c0.091,4.941 3.354,26.196 0,19c-1,-2 0,0 0,0m-449,8c0.7,-6.304 0.035,-10.186 3,-15c-1.454,9.279 -1.572,18.812 -3,28l0,-13c1,-9 0,0 0,0m-7,110c-2.156,-21.562 1.681,-43.549 3,-65l2,0c-2.936,24.936 -3,49.932 -3,75l-2,0l0,-10c-1,-10 0,0 0,0m459,25c0,-46.173 -3.566,-93.095 -3,-139c7.609,51.055 8.016,105.523 3,151l0,-12c0,-7 0,0 0,0m-2,28l0,-7c-0.613,2.309 1.199,-3.583 1,-6c0.975,6.267 0.592,13.491 -1,20l0,-7Zm-422,144c-32.266,-32.266 -32.374,-112.71 -31,-156l2,0c0.831,53.07 2.159,116.523 34,160c-2.22,-0.612 -3.138,-2.139 -5,-4c-2,-2 2,2 0,0m65,70c4.703,-9.406 -18.285,-20.271 -24,-25c10.096,5.326 28.826,13.702 26,28c-3.707,0.621 -0.458,-2.091 -2,-3c2,-4 0,0 0,0m-1,7c0.333,-1 0.667,-2 1,-3c-0.283,2.917 -0.75,8.063 -1,3c0,-1 0,0 0,0m60,-558c6.514,0 14.005,-3.146 18,-7c-9.71,0 -23.197,3.677 -30,6l0,2c2.735,0.128 10.599,0.401 12,-1c1,0 -1,1 0,0m-56,166c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m276,54c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c69.461,9.556 100.323,-86.485 66.625,-135.5c-11.606,-16.881 -26.581,-29.494 -47.625,-32.5c-8.796,-1.759 -17.874,-3.043 -26.75,-4.375c-12.285,-1.843 -21.127,6.375 -32.25,6.375c-24.506,0 -53.077,50.867 -52,72c2.147,-20.885 18.596,-52.451 38,-62c0.236,0.902 -0.098,1.569 -1,2c23.08,-2.634 45.542,-17.783 70,-8c39.63,13.21 64.115,44.62 59.556,88.185c-3.302,31.551 -32.596,43.855 -51.556,62.815c-15.563,7.781 -42.37,-3.005 -52,3c-25.412,-11.924 -45.712,-20.88 -57,-49c-7.755,25.497 60.169,74.22 86,57c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-158,88c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.94,12.94 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.831,-5.415 27.846,-27.618 35,-37c-13.437,0.869 -41.83,47.284 -54,27c-8.005,-14.009 18.743,-37.997 30,-44c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-57.393,0 -105.271,-32.545 -138.037,-76.63c-36.214,-48.724 -39.467,-118.672 -40.889,-178.37c-1.424,-59.793 4.009,-117.322 15.815,-175.37c6.471,-31.819 22.706,-67.055 50.111,-86.63c11.923,-5.961 28.977,-17.872 37,-28c-11.593,3.652 -24.827,15.541 -36,6c19.395,9.352 59.102,-21.064 79.704,-25.444c35.946,-7.642 71.951,-10.633 108.296,-11.556c-15.012,4.121 -31.583,-2.78 -46,7c63.567,-0.565 115.891,7.941 170,42c-5.085,-12.088 -17.654,-14.626 -27,-23c9.715,3.034 17.032,7.654 24.5,14.375c13.825,12.443 16.022,6.625 29.5,6.625c-7.766,10.667 -17.295,6.242 -26,-1c14.6,22.518 35.633,38.988 48.333,64.037c16.812,33.155 17.24,71.161 20.042,107.588c2.346,30.5 1.084,62.069 0.683,92.697c-0.232,17.66 -0.564,35.321 -1.049,52.975c-0.143,5.195 -4.377,25.967 -2.009,30.703c0,65.132 -29.644,137.929 -93.5,161.875c-49.075,18.403 -120.854,26.706 -173.5,20.125c-3,0 8,1 0,0m183,28c-11.369,-4.548 -20.803,-24.277 -20,-22l2,0c-3.549,-17.578 18.132,-31.737 27,-14c5.01,11.688 22.229,53.845 -9,36c-5,-2 7,4 0,0m-265,5c-10.09,-3.363 -4.28,-20.73 -2,-27c0.722,-1.925 6.687,-16.722 10,-18c3.109,-1.199 2.519,7.481 8,2c4.404,-2.202 18,11.752 18,15c0,14.052 -20.109,33.557 -34,28c-3,-1 5,2 0,0" style="fill:#262927;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m117,-14c-8.185,-1.169 -14.513,-9.289 -6.625,-16.125c8.135,-7.05 21.481,-5.753 31.125,-4.375c7.732,1.104 12.184,13.158 3.5,17.5c-7.375,7.375 -18.768,3 -28,3c-7,-1 3,0 0,0m22,43c-8.952,-3.836 -40.005,2.874 -44.313,-3c-12.5,-17.047 6.06,-33 21.313,-33c19.882,9.941 37.782,-9.186 50.75,16.75c8.709,17.417 -17.018,21.396 -27.75,19.25c-7,-3 5,1 0,0m-23,33c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m-106,-284c17.881,-18.778 91.457,-15.301 119,-16c-20.912,5.741 -51.081,5.73 -74,8.375c-15.659,1.807 -31.215,4.752 -44,6.625c2.292,2.61 0.665,1 -1,1c0,0 1,0 0,0m-98,56c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m385,10c-2.355,-4.712 -6.955,-8.787 -11,-12c10.359,-5.318 22.308,4.591 23,-12c-2.701,3.692 -4.234,3.657 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-19.269,-12.681 12.614,-34 26,-34c25.862,0 7.327,55.542 -13,47c-1,-2 0,0 0,0m-430,218c-2.156,-21.562 1.681,-43.549 3,-65l2,0c-2.936,24.936 -3,49.932 -3,75l-2,0l0,-10c-1,-10 0,0 0,0m459,25c0,-46.173 5.016,-33.477 0,12l0,-12m-445,121c-10.642,-31.926 -11.062,-71.558 -10,-105l2,0c0.563,35.79 10,72.251 10,107.5c0,3.995 -1.323,-1.765 -2,-2.5c-1,-3 0,0 0,0m365,-210c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c32.971,4.536 72.312,-30.924 81.111,-63.185c17.361,-63.656 -34.461,-101.03 -88.861,-109.19c-51.383,-7.708 -88.209,54.57 -83.9,98.124c2.409,24.353 13.911,49.307 36.244,61.814c10.999,6.159 43.291,20.514 55.406,12.437c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-158,88c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.94,12.94 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.831,-5.415 27.846,-27.618 35,-37c-13.437,0.869 -41.83,47.284 -54,27c-8.005,-14.009 18.743,-37.997 30,-44c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-28.746,0 -65.768,-11.588 -90.33,-26.697c-22.783,-14.015 -36.122,-36.881 -52.966,-56.673c-14.129,-16.602 -14.603,-34.429 -23.704,-52.63c-7.097,-14.193 -4.2,-41.618 -5.963,-57.704c-2.594,-23.667 -6.037,-48.509 -6.037,-72.296c0,-43.075 -0.393,-88.627 6.6,-131.12c6.11,-37.133 19.082,-78.431 44.956,-106.769c18.725,-20.509 61.361,-54.111 89.444,-54.111c9.771,-9.771 49.434,-8.679 62.375,-9.125c23.517,-0.811 45.078,-0.566 68.625,2.125c40.228,0 73.513,16.922 107,38c-5.085,-12.088 -17.654,-14.626 -27,-23c9.715,3.034 17.032,7.654 24.5,14.375c13.825,12.443 16.022,6.625 29.5,6.625c-7.766,10.667 -17.295,6.242 -26,-1c12.91,19.913 32.305,35.095 44.417,56.671c17.901,31.891 24.547,196.046 23.799,234.041c-0.684,34.72 -3.153,66.215 -9.375,100.414c-11.078,60.896 -40.277,103.916 -101.341,122.999c-45.715,14.286 -110.25,21.906 -158.5,15.875c-3,0 8,1 0,0m183,28c-11.369,-4.548 -22.478,-15.096 -22,-29c0.798,2.296 1.197,4.723 2,7l2,0c-3.549,-17.578 18.132,-31.737 27,-14c5.01,11.688 22.229,53.845 -9,36c-5,-2 7,4 0,0m-265,5c-10.09,-3.363 -4.28,-20.73 -2,-27c0.722,-1.925 6.687,-16.722 10,-18c3.109,-1.199 2.519,7.481 8,2c4.404,-2.202 18,11.752 18,15c0,14.052 -20.109,33.557 -34,28c-3,-1 5,2 0,0" style="fill:#555768;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m139,29c-8.952,-3.836 -40.005,2.874 -44.313,-3c-12.5,-17.047 6.06,-33 21.313,-33c19.882,9.941 37.782,-9.186 50.75,16.75c8.709,17.417 -17.018,21.396 -27.75,19.25c-7,-3 5,1 0,0m-23,33c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m-204,-228c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m385,10c-2.355,-4.712 -6.955,-8.787 -11,-12c10.359,-5.318 22.308,4.591 23,-12c-2.701,3.692 -4.234,3.657 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-19.269,-12.681 12.614,-34 26,-34c25.862,0 7.327,55.542 -13,47c-1,-2 0,0 0,0m-51,154c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c32.971,4.536 72.312,-30.924 81.111,-63.185c17.361,-63.656 -34.461,-101.03 -88.861,-109.19c-51.383,-7.708 -88.209,54.57 -83.9,98.124c2.409,24.353 13.911,49.307 36.244,61.814c10.999,6.159 43.291,20.514 55.406,12.437c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-158,88c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.94,12.94 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.831,-5.415 27.846,-27.618 35,-37c-13.437,0.869 -41.83,47.284 -54,27c-8.005,-14.009 18.743,-37.997 30,-44c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-26.316,0 -51.793,-9.84 -75.5,-20c-10.401,-4.457 -19.48,-9.245 -28.13,-16.936c-15.683,-13.945 -26.484,-38.806 -43.37,-50.064c-19.35,-24.187 -20.598,-56.013 -23.448,-85.28c-3.759,-38.602 -8.682,-76.809 -8.529,-115.615c0.232,-58.564 1.239,-125.379 27.852,-178.605c27.022,-54.045 79.437,-86.049 138.312,-96.563c118.535,-21.166 266.532,17.433 277.891,157.204c6.474,79.652 13.744,166.477 -1.031,245.656c-11.81,63.289 -30.566,123.351 -100.047,143.203c-12.498,0 -27.67,7.823 -40.463,9.343c-9.057,1.075 -43.569,-0.311 -49.537,5.657c-19.412,6.471 -53.753,4.531 -74,2c-3,0 8,1 0,0m183,28c-11.369,-4.548 -22.478,-15.096 -22,-29c6.479,-11.373 22.132,-24.737 31,-7c5.01,11.688 22.229,53.845 -9,36c-5,-2 7,4 0,0m-265,5c-10.09,-3.363 -4.28,-20.73 -2,-27c0.722,-1.925 6.687,-16.722 10,-18c3.109,-1.199 2.306,-1.756 7.626,0.665c6.594,1.376 18.374,13.087 18.374,16.335c0,14.052 -20.109,33.557 -34,28c-3,-1 5,2 0,0" style="fill:#fdbc83;fill-rule:nonzero;"/><path d="M399.644,158c-5.717,0 -11.524,-7.475 -6,-13c15.672,-15.672 17.905,21.929 6,13c-1,0 4,3 0,0m-318,1c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m116,62c-11.711,-5.855 -10.426,-32.273 5.75,-31.375c14.864,0.826 12.964,40.732 -5.75,31.375c-4,-2 4,2 0,0m21,1c-4.932,-2.466 -2.019,-23.833 -2,-29c28.481,-5.476 8.183,38.274 2,29c-2,-1 2,3 0,0m-204,-228c-10.764,-8.073 -25.045,-33.466 -11,-44c18.327,0 27.721,7.989 43,18c-6.109,11.275 -12.838,3.226 -23,1l0,4c-12.313,-17.119 -17.435,1.3 6,11l-3,3c-3.124,-2.548 -7.028,-4.485 -10,-7c6.609,4.5 10.378,20.189 -2,14c-4,-3 2,1 0,0m385,10c-2.355,-4.712 -6.955,-8.787 -11,-12c10.359,-5.318 22.308,4.591 23,-12c-2.701,3.692 -4.234,3.657 -7,6c11.609,-19.193 -17.286,-4.613 -18,5c-19.269,-12.681 12.614,-34 26,-34c25.862,0 7.327,55.542 -13,47c-1,-2 0,0 0,0m-51,154c42.567,-8.961 72.793,-64.725 61,-106c-14.458,-38.555 -55.384,-64.154 -96,-54c-44.011,0 -87.912,55.177 -67,97c10.459,20.918 15.489,39.691 36.667,52.296c19.407,11.553 43.226,13.862 65.333,10.704c19,-4 -7,1 0,0m-254,8c32.971,4.536 72.312,-30.924 81.111,-63.185c17.361,-63.656 -34.461,-101.03 -88.861,-109.19c-51.383,-7.708 -88.209,54.57 -83.9,98.124c2.409,24.353 13.911,49.307 36.244,61.814c10.999,6.159 43.291,20.514 55.406,12.437c0,0 -3,2 0,0m135,61c12.732,-5.093 -0.854,-27.063 8.531,-32.625c12.125,-7.185 25.253,-18.13 14.21,-34.005c-3.482,-5.005 -8.509,-8.138 -12.741,-12.37c-7.27,-2.423 0.328,-12.644 -0.375,-16.625c-3.447,-19.537 -33.433,-14.782 -46.721,-12.543c-18.625,3.138 -10.904,15.033 -10.904,26.168c0,12.175 -18.212,17.758 -13,36c1.704,10.225 7.96,9.062 14.111,14.333c4.222,3.619 2.968,14.482 4.139,19.167c3.608,14.434 31.649,19.9 42.75,12.5c5,-2 -3,2 0,0m-159,82c11.254,-16.882 -24.296,-36.22 -37.336,-42.03c-4.064,5.342 -13.968,5.93 -12.664,16.03c1.258,9.744 38.697,35.419 50,26c3.602,-7.739 0,0 0,0Zm1,6c13.787,-13.786 7.959,-28.216 -9,-35c-10.781,-3.08 -22.977,-21.737 -31,-14c11.694,7.029 53.227,25.928 39,43c-12.539,13.541 -33.545,-11.045 -46,-17c2.634,11.998 34.664,31.225 47,23c1,-1 -3,2 0,0m277,2c10.434,-5.217 16.833,-20.361 26,-28c13.175,-7.904 6,-4.993 6,-16c-0.652,-5.314 -4.517,-9.299 -7,-11c-16.895,6.078 -43.244,15.387 -45.023,38.341c-2.498,32.227 46.719,-19.257 49.023,-21.341c-8.147,8.116 -36.889,45.818 -47.625,28.25c-8.586,-14.049 18.207,-38.161 29.625,-44.25c-31.186,-4.397 -49.63,73.315 -11,54c4,-2 -6,3 0,0m-193,181c-26.316,0 -51.793,-9.84 -75.5,-20c-10.401,-4.457 -19.48,-9.245 -28.13,-16.936c-15.683,-13.945 -26.484,-38.806 -43.37,-50.064c-19.35,-24.187 -20.598,-56.013 -23.448,-85.28c-3.759,-38.602 -8.682,-76.809 -8.529,-115.615c0.232,-58.564 1.239,-125.379 27.852,-178.605c27.022,-54.045 79.437,-86.049 138.312,-96.563c118.535,-21.166 266.532,17.433 277.891,157.204c6.474,79.652 13.744,166.477 -1.031,245.656c-11.81,63.289 -30.566,123.351 -100.047,143.203c-12.498,0 -27.67,7.823 -40.463,9.343c-9.057,1.075 -43.569,-0.311 -49.537,5.657c-19.412,6.471 -53.753,4.531 -74,2c-3,0 8,1 0,0" style="fill:#94dff7;fill-rule:nonzero;"/><path d="M399.543,158.596c-5.717,0 -11.423,-8.071 -5.899,-13.596c15.672,-15.672 20.076,15.613 8.376,14.647c-1.582,-0.51 0.313,0.354 -2.426,-1.024m-317.95,0.377c-4.125,-8.25 3.537,-24.284 12,-13c8.011,4.005 -4.125,20.875 -12,13c-1,-2 3,3 0,0m332,23c28.397,-14.198 10.59,-60.683 -21.512,-50.776c-34.523,10.654 -13.735,68.4 21.512,50.776c8,-4 -10,5 0,0m-68,47c-31.783,0 -50.685,-25.282 -59,-53c-15.67,-54.845 18.24,-81.56 68,-94c35.292,-13.234 80.646,27.986 81.926,63.185c1.828,50.268 -38.042,97.036 -90.926,83.815c-4,0 8,2 0,0m-242,-47c25.325,-21.708 -3.595,-59.536 -32.593,-44.741c-34.432,17.568 -0.173,61.124 32.593,44.741c7,-6 -6,3 0,0m9,55c-5.428,-2.714 -13.275,-2.985 -16,-1c-34.772,-16.315 -57.675,-30.998 -59.935,-74.139c-2.195,-41.898 33.803,-79.79 75.31,-81.658c50.07,-2.253 107.174,42.023 86.403,98.278c-12.221,33.1 -48.119,66.051 -85.778,58.519c-2,-1 5,1 0,0m115.266,62.534c-11.711,-5.855 -5.129,-30.975 -5.129,-30.975c5.902,-2.342 19.497,-2.161 20.229,3.368c2.271,17.163 6.023,31.314 -14.366,28.007m20.808,0.608c-4.467,-2.767 -1.827,-24.375 -1.808,-29.542c6.511,-1.252 13.188,-2.57 14.024,0.764c7.624,30.373 -7.447,35.932 -12.216,28.778Z" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/graduate-colorized.svg b/go.dev/testdata/golden/images/gophers/graduate-colorized.svg
new file mode 100644
index 0000000..2ad4a30
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/graduate-colorized.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 155 223" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M32.253,51.36c-4.207,5.634 -11.291,13.127 -12.008,20.498c-0.948,9.746 -2.254,19.458 -2.254,29.254c0,18.645 -1.123,37.119 5.046,55.15c3.012,8.805 8.989,17.37 13.274,25.649c1.425,2.755 7.814,5.624 10.302,7.393c3.028,2.152 6.295,5.435 9.857,6.641c17.64,5.974 34.591,13.16 53.592,8.04c5.583,-1.505 11.167,-3.01 16.75,-4.515c3.437,-0.927 5.943,-6.225 8.032,-8.9c1.78,-2.277 6.498,-6.294 6.721,-9.293c0.36,-4.845 1.393,-10.084 1.109,-14.929c-0.448,-7.674 -3.869,-15.132 -4.487,-22.827c-0.935,-11.651 -1.872,-23.301 -2.808,-34.952c-0.678,-8.447 -2.228,-15.171 -4.586,-23.39c-0.919,-3.202 -1.39,-8.967 -3.424,-11.662c-3.166,-4.194 -6.332,-8.387 -9.498,-12.581c-0.996,-1.32 3.414,-10.35 4.048,-12.174c1.417,-4.083 -4.95,-6.729 -7.96,-6.362c-2.652,0.323 -5.304,0.646 -7.956,0.969c-1.669,0.204 -2.438,3.187 -3.952,3.762c-3.143,1.195 -10.087,-0.725 -13.385,-0.962c-10.237,-0.736 -17.551,-1.515 -27.285,1.147l-19.379,5.299c-5.243,1.434 -5.652,2.337 -9.749,-1.255" style="fill:#7dd2f5;fill-rule:nonzero;"/><path d="M9.906,76.254c-1.084,-1.877 -5.602,-7.29 -5.181,-9.309c0.676,-3.237 0.695,-10.123 2.835,-12.602c5.897,-6.832 13.298,-9.089 22.363,-9.089c12.378,0 -4.815,13.393 -6.396,16.278c-0.779,1.421 -1.535,11.627 -2.742,11.396c-5.651,-1.079 -6.231,-0.178 -10.879,3.326" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M49.859,54.254c-5.491,5.184 -8.406,7.787 -10.882,14.838c-1.624,4.622 -1.947,13.56 0.438,17.904c2.095,3.816 9.113,8.509 13.395,9.499c8.823,2.04 11.511,2.928 19.787,-0.401c4.164,-1.675 9.851,-7.167 10.465,-11.791c0.494,-3.725 0.989,-7.45 1.483,-11.175c0.324,-2.442 -2.337,-5.47 -3.469,-7.532c-3.01,-5.492 -5.842,-9.632 -12.504,-11.342c-5.491,-1.41 -13.011,0 -18.713,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M9.867,76.254c-2.324,6.338 -2.344,9.744 1.314,15.556c1.141,1.81 13.873,0.444 16.399,0.444c1.767,0 3.094,-4.272 3.094,-5.855c0,-5.148 -0.254,-4.839 -4.816,-7.196c-2.082,-1.076 -6.326,-0.199 -8.65,-0.199c-2.556,0 -5.037,-1.719 -7.341,-2.75" style="fill:#e8d5a4;fill-rule:nonzero;"/><path d="M11.674,73.313c-2.25,7.422 10.308,5.94 14,5.94c-0.715,-4.63 -0.223,-4.762 -4.666,-5.94c-3.364,-0.892 -6.078,-1.293 -9.334,0" style="fill:#fff;fill-rule:nonzero;"/><path d="M12.674,94.254c0.68,2.663 1.592,4.92 2.747,7.401c2.063,4.433 2.184,3.441 6.84,1.999c0.912,-0.282 0.906,-7.301 -0.115,-7.854c-3.304,-1.79 -5.677,-1.546 -9.472,-1.546" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M136.85,112.199c-1.788,-8.085 -0.285,-15.644 -2.388,-23.637c-2.639,-10.033 -6.181,-18.06 -13.478,-26.4c-1.714,-1.959 -2.52,-1.16 -0.774,-4.3c1.487,-2.674 1.61,-5.326 2.917,-7.981c1.382,-2.848 -0.73,-10.51 -5.076,-9.707c-0.601,0.114 -7.703,0.692 -7.54,0.771c-2.157,-1.039 -3.99,0.885 -5.573,-1.921c-0.981,-1.739 14.2,-7.997 15.849,-9.119c1.706,-1.163 7.237,-2.957 7.301,-5.148c0.107,-3.632 -4.705,-3.135 -6.673,-4.035c-2.815,-1.287 -7.067,-3.88 -10.389,-4.622c-3.727,-0.839 -13.315,-1.692 -15.957,-4.715c-0.803,-0.933 -7.423,-0.016 -8.137,-2.947c-0.51,-2.105 -3.957,-6.286 -6.417,-3.443c-1.687,1.94 -0.813,3.798 -5.29,1.308c-2.547,-1.419 -23.636,-7.306 -23.89,-6.155c-0.349,1.594 3.077,4.455 -2.956,3.241c5.778,-5.673 -1.052,-1.928 -3.799,0.55c-2.092,1.881 -5.44,4.325 -7.954,5.517c-1.531,0.725 -8.227,3.995 -8.667,5.45c-1.126,3.77 -8.35,5.358 -11.015,7.812c-3.547,3.263 -8.697,6.197 -13.535,7.088c-0.11,-0.22 0.556,-0.919 0.185,-1.065c-2.002,-0.795 -3.8,2.007 -3.575,3.805c0.12,0.958 6.734,3.515 7.777,3.119c1.763,-0.681 7.728,1 9.838,1.437c3.245,0.671 6.346,2.202 9.605,2.844c8.717,1.715 5.206,5.176 -1.318,4.509c-6.224,-0.636 -15.25,3.911 -19.114,8.625c-1.15,1.405 -3.566,2.171 -4.371,3.931c-1.261,2.759 1.439,5.368 1.899,7.803c0.733,3.876 1.471,6.802 3.115,10.462c1.373,3.043 -1.638,4.697 -1.155,7.187c0.812,4.184 0.773,6.102 3.83,9.517c2.961,3.307 3.763,6.426 5.358,10.602c0.887,2.31 1.013,9.971 2.216,9.833c-0.573,0.233 -0.919,0.639 -1.038,1.22c-0.071,0.833 2.417,-0.054 1.229,1.419c0.361,-0.143 2.154,-2.05 0.474,-2.375c0.187,-0.157 0.403,-0.232 0.649,-0.225c0.256,-0.241 -1.187,-0.894 -1.243,-1.031c1.114,-0.268 1.017,-3.751 1.033,-5.061c0.05,-3.643 4.835,-1.251 4.776,-5.738c-0.08,-6.181 10.92,-7.568 8.936,-14.908c-1.203,-4.448 -4.391,-7.593 -5.713,-11.836c-0.501,-1.608 -4.112,-1.706 -4.443,-3.381c-0.552,-2.795 3.578,-8.62 4.649,-11.262c3.844,-9.545 8.36,1.149 12.411,-4.486c0.325,-0.456 4.733,-3.301 5.395,-3.124c3.529,0.916 8.355,-2.066 11.587,-3.137c2.595,-0.862 6.454,-1.507 8.761,-1.862c3.623,-0.557 7.405,-0.178 11.013,0.112c2.644,0.212 9.996,2.927 11.999,0.837c-0.117,1.448 0.814,0.52 1.478,1.417c0.969,1.31 0.776,4.528 1.068,6.085c0.484,2.576 1.087,5.126 1.671,7.681c0.99,4.331 0.239,5.596 -1.214,9.049c-1.526,3.629 2.243,11.579 2.673,15.564c0.654,6.065 0.777,11.45 2.98,16.902c0.123,-1.113 0.413,-2.362 0.219,-3.373c-0.37,-0.072 -0.725,-0.186 -1.064,-0.345c-0.469,-1.696 0.986,-5.414 0.11,-7.92c-0.652,-1.862 -1.399,-10.177 -0.354,-12.073c0.742,-1.279 1.13,-2.882 4.006,-1.803c1.8,0.675 1.699,4.572 2.355,4.806c2.583,0.908 -0.435,-5.072 -0.938,-5.604c-2.467,-2.609 1.713,-0.386 1.427,-4.042c-0.159,-2.035 -1.363,-2.967 -3.292,-3.314c-1.196,-0.216 -0.176,-3.03 -1.04,-3.828c-1.467,-1.344 -3.69,-18.535 -1.8,-19.244c6.919,-2.591 1.773,7.641 4.411,6.872c1.629,-0.475 1.257,-3.342 2.423,-3.954c2.705,-1.423 4.131,-5.351 6.786,-7.197c7.517,-5.231 11.361,2.288 10.26,8.797c-0.381,2.249 -2.007,8.537 -5.134,8.195c-0.586,-0.062 -2.042,2.65 -1.671,3.008c1.516,1.461 3.92,-0.951 6.344,1.972c2.528,3.048 4.537,5.844 6.954,8.982c2.778,3.594 4.568,11.341 4.745,14.687c0.133,2.536 1.601,5.344 1.921,7.958c0.364,2.974 0.018,6.116 0.887,9.093c0.59,2.002 -0.57,6.291 2.465,6.251m-106.192,-95.05c-0.21,-0.468 -0.231,-0.947 -0.064,-1.437c0.644,-0.421 0.869,0.919 0.04,1.41c-1.653,1.029 -2.925,2.073 -4.453,3.208c-1.069,0.795 -8.062,6.557 -9.404,5.495c0.255,0.201 12.219,-10.868 13.881,-8.676m-8.325,7.247c0.529,1.524 20.368,-12.461 22.912,-13.792c2.34,-1.227 3.793,-3.505 6.436,-4.359c3.226,-1.042 9.3,0.442 12.269,1.834c7.575,3.57 18.835,2.511 21.078,11.666c1.245,5.065 0.937,4.876 -4.089,3.863c-0.719,-0.146 -9.098,-1.329 -8.627,-0.051c0.893,2.425 9.563,0.549 10.95,3.237c0.035,0.068 1.928,0.861 2.205,1.055c1.793,1.262 2.145,4.255 2.485,6.164c0.264,1.486 2.196,9.051 0.794,10.311c-1.593,1.43 -10.285,0.247 -12.479,0.047c-5.147,-0.468 -10.042,-0.163 -15.054,0.742c-4.546,0.821 -8.388,1.548 -12.736,3.384c-2.21,0.932 -9.434,5.89 -11.648,4.975c-0.368,-0.152 0.487,-2.714 -0.892,-2.205c-1.493,0.552 -2.832,-1.117 -1.209,-2.267c0.279,-0.198 1.635,-7.463 1.604,-8.075c-0.123,-2.719 4.833,-8.384 7.167,-9.656c1.458,-0.794 12.905,-7.224 12.6,-7.528c-1.791,-1.8 -13.894,7.108 -16.387,8.354c-2.988,1.498 -4.24,4.831 -6.766,6.318c-1.357,0.799 -5.336,-1.654 -5.87,-1.206c-0.455,0.381 -16.724,-2.697 -16.763,-2.789c-0.534,-1.224 4.353,-3.453 4.762,-4.013c1.139,-1.56 -3.132,-0.311 1.958,-1.711c1.177,-0.327 5.128,-3.142 5.3,-4.298m5.312,21.588c3.445,0.889 5.177,1.612 3.145,5.303c-1.799,3.268 -4.596,6.785 -6.809,9.851c-1.2,1.662 -4.16,9.241 -6.409,9.375c-1.719,0.101 -3.97,-0.114 -5.598,0.536c-1.521,0.607 -1.624,2.463 -2.802,2.967c-1.315,0.562 -4.903,-8.555 -3.287,-9.719c3.291,-2.373 -0.201,2.158 3.073,-1.359c-0.348,0.373 2.183,-3.311 0.925,-2.355c2.761,-2.072 -2.177,-6.364 1.544,-8.892c5.521,-3.763 9.958,-4.13 16.218,-5.707m61.511,-27.998c1.191,-3.316 7.518,2.666 10.377,1.851c1.531,-0.437 20.974,7.19 20.972,7.502c0,3.08 -8.011,1.787 -8.751,2.253c-1.209,0.763 -8.546,6.7 -10.156,4.423c-1.486,-2.103 -2.125,-3.959 -4.894,-4.216c-5.518,-0.513 -7.843,-6.868 -7.548,-11.813m-80.903,65.548c-0.599,-10.303 7.63,-1.487 11.739,-2.617c3.232,-0.857 8.41,-0.822 9.71,2.364c2.594,6.36 -2.03,10.09 -8.214,7.924c-4.962,-1.737 -13.753,0.78 -13.235,-7.671m87.456,-37.941c-1.196,-0.717 -6.018,-13.778 -4.262,-15.058c1.695,-1.235 21.983,15.127 4.262,15.058m-7.334,-32.447c5.732,-1.505 12.678,2.414 18.537,3.752c3.919,0.895 3.09,2.113 5.345,3.843c1.019,0.78 4.477,0.099 4.572,2.412c0.029,0.764 -10.563,-3.007 -11.333,-3.268c-2.361,-0.807 -9.155,-4.53 -9.796,-2.224c-2.573,-2.068 -4.292,-2.991 -7.325,-4.515m-68.385,89.179c-4.576,0.731 -4.623,-5.72 -4.229,-7.746c1.011,-4.955 11.592,8.025 4.229,7.746m0.712,-24.438c-3.272,0.718 -9.718,-5.417 -3.274,-4.824c2.553,0.235 9.744,3.959 3.274,4.824m-10.63,-47.506c2.123,0.964 -2.871,4.026 -3.431,2.979c-0.592,-1.12 6.195,-5.386 7.039,-5.776c-0.497,0.917 -0.981,1.84 -1.452,2.771c-0.745,-1.667 -1.186,0.138 -2.156,0.026m85.884,38.814c-1.463,0.217 -2.02,-10.539 -1.975,-10.544c0.29,-0.032 3.23,10.35 1.975,10.544m-33.858,-64.315c-0.807,-0.18 -9.085,-1.581 -8.405,-2.737c0.789,-1.358 7.901,1.381 8.405,2.737m28.023,31.677c-0.053,-0.382 3.735,8.396 2.213,8.78c-1.646,0.417 -1.919,-7.84 -2.213,-8.78m-18.214,-28.672c0.754,-0.019 5.795,0.828 5.718,1.638c-0.132,1.404 -5.439,0.234 -5.718,-1.638m10.903,-2.076c0.616,-0.003 3.516,1.476 2.095,2.486c-0.327,0.229 -3.044,-1.412 -2.951,-1.992c0.16,-0.381 0.445,-0.545 0.856,-0.494m11.077,52.545c-0.321,-0.571 -1.61,-6.263 -0.977,-6.444c1.106,-0.316 1.178,5.592 0.977,6.444m1.733,15.469c-0.134,-1.407 2.586,0.558 0.69,0.956c-0.568,-0.018 -0.799,-0.337 -0.69,-0.956" style="fill:#231f20;fill-rule:nonzero;"/><path d="M61.993,99.721c7.082,0.381 14.8,-3.485 19.195,-9.024c2.097,-2.641 3.625,-5.877 4.666,-9.068c0.364,-1.113 0.59,-9.004 0.939,-9.125c-1.159,-1.938 -1.263,-5.517 -2.07,-7.715c-1.343,-3.667 -5.334,-7.951 -8.344,-10.39c-4.919,-3.988 -13.045,-4.857 -19.01,-3.653c-5.946,1.19 -12.506,1.507 -16.115,7.385c-3.107,5.06 -4.869,12.564 -5.167,18.473c-0.805,15.47 13.027,21.373 25.906,23.117m-6.75,-3.493c-0.057,1.705 -11.86,-8.989 -12.805,-9.852c-2.898,-2.648 -3.41,-8.209 -3.515,-12.312c-0.185,-7.21 7.972,-20.31 16.24,-20.381c8.251,-0.07 16.262,-0.442 22.245,6.37c6.607,7.521 6.486,12.394 5.185,22.096c-1.089,8.021 -7.002,9.547 -12.696,13.053c-1.94,1.186 -5.591,1.559 -7.827,1.866c-0.83,0.113 -8.759,-0.32 -6.827,-0.84" style="fill:#231f20;fill-rule:nonzero;"/><path d="M55.788,157.756c2.583,1.092 4.953,-10.505 3.162,-11.483c1.571,-0.6 0.881,-4.214 0.258,-3.961c-1.241,0.476 -1.677,5.85 -0.588,6.476c-2.224,2.047 -0.072,10.963 -5.902,8.317c-5.842,-2.652 -1.055,-16.192 -2.444,-16.681c-1.58,-0.553 -3.271,9.983 -3.126,11.55c0.36,3.879 5.424,10.886 8.64,5.782" style="fill:#231f20;fill-rule:nonzero;"/><path d="M101.835,100.086c1.075,1.684 0.615,5.636 2.533,6.618c0.962,0.499 0.252,-0.181 2.56,0.45c-1.844,-1.749 2.042,-7.648 -1.871,-7.931c-1.144,-0.083 0.189,2.415 0.353,2.552c-2.623,1.564 -1.726,-6.382 -3.931,-5.894c-0.527,0.118 0.313,4.034 0.356,4.205c0.722,1.13 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M101.866,100.119c-0.563,-0.349 -1.003,-0.219 -1.319,0.391c0.723,-1.277 -0.416,-2.667 -0.461,-3.349c-0.449,0.323 -3.641,4.039 0.309,4.073c-1.837,-0.068 -2.182,6.356 -1.586,6.614c0.688,0.301 0.043,-0.691 0.099,-0.788c-0.144,0.001 4.157,4.542 2.612,0.596c-0.478,-1.232 -0.037,-6.607 0.346,-7.537" style="fill:#231f20;fill-rule:nonzero;"/><path d="M109.961,51.683c0.315,0.787 -1.601,1.369 -1.599,2.447c0.009,4.032 3.464,-1.656 3.447,-1.635c4.865,-5.931 -1.848,-2.93 -1.848,-0.812" style="fill:#231f20;fill-rule:nonzero;"/><path d="M103.771,88.25c-0.027,0.027 0.646,10.229 1.312,10.507c1.46,0.598 -0.842,-9.757 -1.312,-10.507c-0.17,0.167 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M98.428,88.107c-0.04,-0.331 -0.472,-8.246 -2.151,-7.074c-0.488,0.344 1.311,8.499 1.723,8.412c0.62,-0.13 0.573,-0.917 0.428,-1.338" style="fill:#231f20;fill-rule:nonzero;"/><path d="M98.374,95.131c0.003,-0.77 1.304,-6.077 -0.828,-5.382c0.562,-0.185 -0.117,3.523 -0.057,2.934c0.194,0.848 0.489,1.665 0.885,2.448" style="fill:#231f20;fill-rule:nonzero;"/><path d="M103.771,88.25c0.359,-0.441 1.428,-2.715 -0.299,-2.948c-1.629,-0.218 1.521,4.286 0.299,2.948" style="fill:#231f20;fill-rule:nonzero;"/><path d="M98.901,96.648c0.862,-0.347 0.847,-0.71 -0.046,-1.092c-0.698,0.256 -0.683,0.62 0.046,1.092" style="fill:#231f20;fill-rule:nonzero;"/><path d="M57.876,24.033c-0.233,-0.623 13.54,-0.979 13.517,-0.858c0.305,-1.614 -10.331,-2.708 -9.145,-0.385c-2.226,-1.275 -3.325,0.453 -4.402,1.277l0.03,-0.034c0.128,0.342 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M57.846,24.066c-0.196,-1.171 -1.549,-0.145 -1.265,0.136c0.823,0.813 0.673,-0.177 1.265,-0.136" style="fill:#231f20;fill-rule:nonzero;"/><path d="M55.935,68.249c-8.122,-0.705 -6.998,10.708 0.307,11.77c9.055,1.315 7.856,-12.835 -0.307,-11.77m1.473,6.289c-0.381,-1.265 -2.255,-1.478 -2.353,-2.259c-0.116,-0.926 3.708,-1.728 2.353,2.259" style="fill:#231f20;fill-rule:nonzero;"/><path d="M144.457,172.079c0,0 0.597,0.386 4.807,1.017c2.779,0.416 4.622,3.41 4.434,4.536c-0.187,1.127 -2.659,1.745 -3.222,1.807c-0.563,0.063 -3.513,0.068 -5.917,0.145c-2.276,0.072 -3.919,-2.061 -0.102,-7.505Z" style="fill:#e1cb94;"/><path d="M103.974,205.302c0,0 2.735,4.907 2.193,10.613c-0.311,3.27 -4.566,5.92 -6.705,5.734c-2.14,-0.186 -4.079,-5.851 -4.229,-6.654c-0.15,-0.804 -1.749,-5.326 -1.067,-6.072c0.681,-0.746 -4.02,-8.107 9.808,-3.621Z" style="fill:#e1cb94;"/><path d="M44.861,190.344c0,0 -4.666,6.003 -5.605,9.687c-0.694,2.723 -5.129,1.798 -5.926,0.98c-0.797,-0.818 -0.3,-5.728 1.547,-7.587c0.4,-0.402 2.25,-5.17 2.849,-5.352c0.599,-0.181 5.005,-4.026 7.135,2.272Z" style="fill:#e1cb94;"/><path d="M50.551,141.416c0,0 -0.642,6.19 -0.995,10.357c-0.241,2.841 2.383,6.061 5.193,5.87c2.917,-0.198 2.962,-5.727 3.154,-6.261c0.192,-0.534 1.607,-10.307 0.63,-7.856c-0.24,0.604 -1.289,-4.504 -7.982,-2.11Z" style="fill:#e1cb94;"/><path d="M19.657,137.146c0,0 1.476,8.241 -1.433,10.655c-2.162,1.796 -2.446,2.395 -3.358,1.709c-0.912,-0.687 -1.519,-4.671 -1.314,-5.199c0.204,-0.529 1.012,-3.706 1.576,-3.977c0.564,-0.27 1.463,-9.088 4.529,-3.188Z" style="fill:#e1cb94;"/><path d="M17.861,127.475c0.698,0.75 0.574,1.243 -0.369,1.48c2.974,0.875 -2.793,8.226 -3.234,9.593c-1.083,3.353 -2.721,8.786 -0.923,12.135c1.754,3.27 4.826,-1.871 6.116,-2.882c1.194,-0.935 2.138,6.964 2.402,8.124c0.494,2.18 2.085,2.587 2.404,5.321c0.441,3.77 3.049,8.315 5.065,11.469c2.66,4.164 5.419,8.259 8.088,12.417c0.909,1.421 -2.343,3.331 -2.821,4.401c-0.069,0.152 -0.993,4.352 -0.752,4.053c-0.225,0.285 -2.622,-0.861 -1.814,0.884c0.606,1.306 -2.313,3.166 -0.012,3.407c-3.01,3.174 4.441,6.432 6.968,4.165c0.62,-0.556 2.179,-3.525 1.715,-3.465c1.027,-0.13 5.932,-6.336 5.466,-7.419c2.1,1.25 12.689,8.096 12.543,8.21c0.715,0.488 4.575,2.314 5.278,2.309c1.58,-0.014 6.042,1.15 8.25,2.189c2.966,1.401 6.497,1.697 9.684,2.197c2.525,0.397 5.376,1.809 7.851,1.906c5.107,0.198 1.101,5.284 4.081,7.879c1.957,1.772 2.075,5.055 4.613,6.247c2.631,1.235 4.536,-1.252 6.879,-1.875c-0.506,-0.106 -0.904,-0.385 -1.193,-0.839c2.003,0.5 0.966,-1.468 1.917,-2.304c0.183,0.27 0.428,0.448 0.733,0.532c0.054,-0.57 0.141,-4.634 -0.471,-4.864c-0.852,-0.323 1.236,-4.016 -0.884,-4.79c2.274,-1.602 2.349,-1.64 5.722,-1.992c2.623,-0.272 4.916,-0.212 7.032,-1.757c1.276,-0.939 10.306,-4.507 10.476,-4.231c-0.055,-0.801 0.293,-1.221 1.043,-1.258c-0.114,-0.277 -0.277,-0.52 -0.487,-0.728c1.931,-0.512 4.341,-3.914 5.543,-5.535c1.627,-2.193 4.482,-4.25 5.522,-6.808c0.562,-1.371 1.064,-2.972 2.004,-3.855c2.213,-2.084 17.287,0.295 10.41,-8.158c-1.408,-1.732 -7.617,-2.145 -8.087,-3.548c-0.274,-0.815 -0.92,-5.225 -0.762,-5.969c0.134,-0.634 -0.76,-0.453 -0.614,-1.408c0.138,-0.901 -1.545,-3.594 -1.81,-4.573c-0.496,-1.833 -1.968,-3.993 -1.027,-6.133c-1.579,-1.143 0.022,-5.644 -1.384,-7.075c-1.334,-1.364 -0.235,-7.905 -0.09,-9.739c0.146,-1.852 -0.247,-5.464 -0.636,-7.335c-0.298,-1.421 0.837,-4.675 -0.042,-5.971c-0.95,-1.401 -0.748,-4.075 -0.794,-6.595c-0.02,-1.156 -1.617,-6.493 -0.951,-7.018c-0.292,1.75 -0.78,0.095 -1.566,0.956c-0.495,0.551 1.057,5.944 0.523,6.89c-0.768,1.369 0.127,8.955 1.244,9.359c-1.784,0.303 1.172,9.718 -0.631,10.533c-1.582,0.697 1.292,6.536 0.624,7.504c-1.367,1.965 2.504,4.406 0.558,5.869c1.353,0.204 1.71,11.411 2.924,13.342c2.855,4.519 2.322,18.483 -2.513,21.685c-2.144,1.42 -4.122,5.81 -5.659,8.029c-2.928,4.227 -6.852,6.354 -11.042,8.906c-1.76,1.074 -5.162,1.846 -7.249,2.336c-1.624,0.381 -4.025,0.018 -5.691,-0.027c-0.088,-0.003 -3.781,-1.589 -3.734,-1.608c-1.302,0.511 -0.811,8.379 1.372,8.462c-0.187,0.317 -0.879,0.161 -1.174,0.329c-1.359,0.775 1.39,2.272 1.505,2.644c-0.524,0.219 -0.941,0.062 -1.251,-0.471c-0.901,1.661 0.22,3.648 -0.887,5.49c-0.711,1.194 -1.688,0.285 -1.35,2.132c-1.625,-0.954 -3.672,1.56 -4.034,-1.758c-0.278,0.227 -0.564,0.442 -0.856,0.645c0.453,-1.226 -0.07,-1.601 -1.223,-1.481c-0.389,-0.534 -0.417,-4.286 -0.737,-4.666c-0.725,-0.891 -0.45,-2.834 -1.08,-4.601c-0.599,-1.71 0.473,-3.935 -0.975,-5.326c-2.08,-1.995 -1.509,2.096 -1.999,2.865c0.003,-0.682 -8.667,-2.348 -10.26,-2.481c-2.451,-0.194 -4.387,-0.863 -6.76,-1.553c-1.017,-0.295 -4.521,-0.658 -5.049,-1.135c-0.36,-0.324 0.717,-0.726 -0.256,-1.023c-1.814,-0.571 -3.909,-0.868 -5.479,-1.561c-2.769,-1.221 -5.636,-2.372 -8.358,-4.071c-3.178,-1.983 -7.292,-5.923 -10.649,-7.086c-2.103,-0.729 -2.202,-0.19 -3.283,-2.807c-0.336,-0.813 -0.857,-3.226 -2.059,-1.817c0.599,-3.793 -3.68,-5.249 -5.221,-6.758c0.219,-0.147 0.763,0.123 0.854,-0.275c0.317,0.065 -3.233,-2.609 -2.934,-2.369c-0.376,-0.309 0.403,-0.472 0.379,-0.807c0.014,0.187 -0.853,-1.02 -0.962,-1.337c-0.224,0.11 -0.371,0.288 -0.437,0.538c-1.115,-1.781 -1.022,-3.973 -2.62,-5.496c-1.217,-1.161 -1.649,-1.67 -1.354,-3.75c-0.364,0.235 -0.759,0.342 -1.188,0.32c1.525,-1.526 -0.028,-4.549 -1.777,-4.779c0.176,-0.886 1.912,-2.652 -1.459,-2.887c2.121,-0.918 0.39,-7.092 -1.822,-6.934c2.981,-0.605 -0.496,-6.799 -0.945,-8.795c1.534,-1.98 0.022,-11.933 -0.872,-12.799c-0.203,-2.175 0.087,-18.158 -1.001,-15.902c0.626,1.033 -1.527,-0.617 -1.527,-0.617m21.386,89.92c-0.21,1.71 -2.855,1.22 -3.906,0.723c0.664,-0.947 -0.749,-3.975 -0.819,-4.68c0.02,0.204 2.165,-3.018 2.116,-2.89c0.684,-1.825 1.859,-2.522 1.222,-4.186c1.375,0.385 2.919,-1.981 3.903,-1.079c0.72,0.662 2.96,1.438 3.294,2.143c-0.336,-0.7 -1.732,2.86 -1.567,2.583c-1.792,2.995 -2.964,4.573 -3.691,8.246c-0.162,-0.302 -0.346,-0.588 -0.552,-0.86c-0.108,0.878 0,0 0,0m-17.625,-58.712c-0.263,0.101 -1.517,0.173 -1.5,0.557c0.487,0.698 0.845,1.467 1.072,2.307c-0.606,0.53 -1.084,1.159 -1.434,1.884c-0.204,0.559 -2.555,5.062 -3.492,3.93c-2.851,-3.422 0.592,-11.498 2.403,-14.914c-0.37,1.915 1.624,0.386 1.653,1.458c-0.353,0.27 -0.699,0.551 -1.035,0.843c0.359,0.512 0.677,1.051 0.955,1.617c0.334,2.672 0.039,0.921 1.378,2.318c-0.212,0.081 0,0 0,0m124.343,31.581c1.4,0 9.532,2.138 8.31,4.344c-0.79,1.425 -6.182,2.187 -8.938,1.709c-1.032,-0.179 -1.695,-0.533 -1.607,-1.09c0.157,-1.01 3.575,-0.855 0.817,-2.896c1.496,-0.092 2.204,-0.515 1.418,-2.067c0.503,0 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/graduate.svg b/go.dev/testdata/golden/images/gophers/graduate.svg
new file mode 100644
index 0000000..3aed2ea
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/graduate.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 403 576" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M92.924,140.988c-4.045,-8.642 -7.174,-13.07 -5.692,-22.369c1.771,-11.111 5.365,-13.441 -5.424,-15.439c-21.494,-3.981 -42.988,-7.961 -64.482,-11.939c-2.788,-0.518 -2.814,-10.51 -0.793,-11.821c5.799,-3.759 11.597,-7.519 17.396,-11.281l64.417,-41.769c8.697,-5.642 17.395,-11.281 26.096,-16.924c1.438,-0.931 9.06,-7.419 10.816,-6.903c17.843,5.236 35.684,10.471 53.53,15.707c36.362,10.672 71.471,22.08 107.025,35.183l26.406,9.732c-19.22,11.52 -38.445,23.035 -57.664,34.552c4.322,6.886 11.868,12.384 5.689,18.736c-7.204,7.402 -10.79,5.846 -21.32,5.846c-19.649,0 -37.908,-2.133 -57.437,-4.726c-33.097,-4.399 -68.353,12.036 -98.563,23.415" style="fill:#898b8e;fill-rule:nonzero;"/><path d="M322.723,63.588c-28.309,-13.839 -57.066,-23.81 -87.847,-30.89c-10.297,-2.369 -9.393,-0.725 -12.148,-8.987c-1.7,-5.079 -0.881,-6.443 -6.243,-6.443c-7.334,0 -2.328,5.492 -7.148,7.127c-3.577,1.214 -15.068,-4.526 -18.559,-5.578c-10.893,-3.273 -21.783,-6.547 -32.676,-9.817c-9.534,-2.867 -20.298,-8.892 -28.966,-3.032c-16.662,11.261 -33.324,22.522 -49.983,33.783c-24.575,16.609 -49.181,31.857 -75.144,46.232c8.691,4.847 13.821,7.257 23.594,8.521c7.042,0.908 14.83,1.314 21.53,3.598c10.324,3.521 20.645,7.039 30.969,10.557c1.417,0.483 6.824,1.311 6.5,3.096c-0.825,4.526 0.283,10.366 -4.826,10.366c-19.774,0 -35.357,2.728 -52.646,12.089c-14.149,7.661 -18.029,29.075 -17.59,44.373c0.229,8.102 5.698,14.964 9.552,22c3.232,5.902 -6.966,17.431 -2.938,24.458c4.169,7.275 11.406,14.57 14.968,21.783c1.771,3.58 1.22,8.433 2.551,12.216c1.768,5.015 4.947,9.858 7.334,14.614c3.109,6.196 1.02,18.963 1.279,25.799c0.309,8.267 0.586,16.488 0.586,24.764c0,9.764 0.289,16.14 3.277,25.336c1.788,5.507 3.45,6.282 -0.979,10.015c-4.248,3.58 -6.529,7.961 -9.466,12.693c-3.937,6.332 -3.462,19.611 -1.518,26.756c5.28,-3.904 10.557,-7.808 15.834,-11.712c5.731,17.131 11.792,33.901 18.374,50.719c6.296,16.091 18.88,30.416 28.456,44.736c4.054,6.057 -28.474,41.467 -10.053,41.467c11.299,0 11.491,-1.102 18.132,-10.689c2.755,-3.978 10.333,-18.451 16.223,-15.021c16.862,9.82 32.186,20.233 50.958,25.53c16.623,4.691 33.453,10.115 50.61,12.296c5.41,0.686 10.819,1.373 16.232,2.059c1.779,0.23 2.519,8.919 3.117,10.763c3.229,9.971 6.482,17.193 14.013,24.202c6.691,6.229 15.722,-6.019 17.139,-11.476c1.977,-7.608 -1.832,-20.074 -2.554,-27.994c7.999,-0.165 17.198,1.005 25.032,-0.51c9.95,-1.921 20.439,-8.087 29.868,-11.818c14.956,-5.916 24.747,-23.164 33.061,-36.122c6.014,-9.37 6.203,-14.081 17.175,-14.367c6.373,-0.168 23.409,-0.471 19.49,-10.224c-3.641,-9.054 -15.439,-2.31 -21.455,-7.89c-5.086,-4.718 -6.783,-23.831 -8.701,-30.563c-4.838,-16.998 -6.624,-34.921 -9.502,-52.34c-2.178,-13.147 1.382,-27.779 -0.165,-41.418c-2.59,-22.825 -5.18,-45.651 -7.77,-68.474c-1.594,-14.051 -1.205,-29.098 -7.086,-42.033c-6.37,-14.007 -12.021,-26.191 -21.011,-38.595c-3.582,-4.941 -7.383,-8.886 -11.732,-13.22c-7.328,-7.301 -4.105,-8.088 0.925,-17.113c5.542,-9.941 10.015,-26.379 0.943,-34.47c-11.353,-10.124 -24.511,-2.292 -36.005,3.819c-2.266,-7.025 -4.526,-13.969 -6.323,-21.126c-0.754,-2.996 14.864,-7.778 17.549,-8.928c8.703,-3.733 17.41,-7.463 26.114,-11.193c5.71,-2.448 6.897,-8.247 9.649,-13.724" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M355.355,293.199c-2.873,-12.852 -1.194,-85.607 -15.982,-87.378c5.622,-5.106 -16.329,-30.601 -21.644,-35.215c-4.281,-3.721 -9.293,-11.824 -6.67,-17.036c3.809,-7.569 4.944,-15.224 8.556,-22.578c6.452,-13.289 -5.257,-23.451 -16.208,-24.444c-4.464,-0.403 -10.095,-4.581 -15.593,0.578c1.491,-1.391 -8.194,-0.298 -7.313,0.065c-1.343,-0.56 -11.591,-0.887 -8.232,-6.874c2.767,-4.936 21.011,-11.515 26.099,-13.763c9.682,-4.275 17.876,-10.557 27.316,-15.1c10.775,-5.189 6.046,-13.353 -4.743,-15.124c-11.697,-1.918 -20.946,-10.601 -32.841,-13.265c-14.343,-3.223 -31.623,-10 -44.255,-10.972c-3.061,-0.233 -17.578,-5.236 -18.488,-8.969c-1.429,-5.89 -10.478,-16.179 -16.712,-8.963c-2.06,2.363 0.132,3.589 -0.931,5.681c-0.908,1.785 -11.535,-1.547 -12.847,-2.275c-4.39,-2.448 -15.58,-4.299 -18.615,-3.868c-0.324,0.044 -13.768,-5.012 -15.354,-5.616c-5.78,-2.201 -14.422,-4.323 -19.387,-7.216c-4.29,-2.501 -11.906,1.102 -6.874,2.133c1.462,0.271 0.039,4.237 0.46,5.539c0.854,2.635 -9.655,1.538 -10.142,1.441c17.087,-16.759 -6.983,-0.53 -13.6,4.496c-4.897,3.719 -12.787,9.688 -18.371,11.871c-6.724,2.629 -12.328,11.465 -19.425,12.237c-4.523,0.477 -9.526,9.982 -13.725,12.145c-5.433,2.796 -12.345,5.518 -16.744,9.561c-9.284,8.539 -22.552,16.105 -35.251,18.453c-0.345,-0.701 1.612,-2.33 0.483,-2.775c-2.422,-0.964 -3.087,2.439 -6.496,0.819c0.698,8.842 -6.261,7.357 3.152,12.59c8.014,4.455 14.962,1.641 22.443,4.331c16.084,5.781 34.037,8.223 50.914,13.447c5.462,1.691 10.565,7.552 2.13,10.192c-3.462,1.084 -14.765,1.181 -18.421,0.837c-16.391,-1.509 -37.664,10.459 -46.968,23.403c-2.935,4.081 -10.708,4.243 -10.183,11.332c0.63,8.509 4.184,16.729 5.884,25.115c1.358,6.706 4.811,12.881 7.587,19.06c3.108,6.889 -2.578,16.529 -2.767,23.606c-0.247,9.149 5.071,15.154 11.126,21.368c6.835,7.009 6.532,13.176 10.636,21.771c2.622,5.492 6.718,15.901 6.235,22.074c-0.23,2.911 -5.095,8.606 1.461,7.849c-1.488,0.607 -2.389,1.668 -2.702,3.176c0.151,-1.75 3.713,4.827 3.118,3.622c0.875,0.321 1.738,0.318 2.592,-0.009c0.722,-1.202 0.375,-5.784 -1.275,-6.099c0.486,-0.41 1.048,-0.604 1.691,-0.59c0.666,-0.627 -3.094,-2.324 -3.235,-2.684c3.326,-0.795 2.643,-9.431 2.687,-13.173c0.132,-9.52 12.593,-3.215 12.439,-14.935c-0.197,-15.109 23.766,-17.57 23.742,-33.274c-0.014,-12.879 -9.675,-21.017 -12.887,-31.998c-1.889,-6.464 -13.032,-8.067 -14.034,-13.138c-1.432,-7.257 9.464,-22.796 12.11,-29.314c1.467,-3.638 10.106,-13.671 14.122,-12.793c4.06,0.875 1.753,3.209 3.886,5.31c1.524,1.496 13.256,-2.72 14.314,-4.193c1.128,-1.585 12.348,-8.583 14.048,-8.132c5.274,1.37 25.481,-3.486 29.096,-7.298c1.609,-1.695 11.859,-3.504 14.694,-3.757c5.801,-0.519 8.373,-2.015 14.543,-2.675c9.405,-1.008 21.671,0.557 31.011,2.233c5.845,1.049 18.942,5.79 23.577,0.955c-0.315,3.854 4.237,1.941 4.638,6.022c0.754,7.549 2.195,15.009 3.824,22.413c1.626,7.405 3.421,14.567 3.869,22.166c0.453,7.678 -5.731,10.242 -5.048,17.245c1.527,15.628 7.31,30.348 8.359,46.385c0.813,12.399 2.458,22.361 6.898,33.348c0.38,-3.456 1.134,-5.834 0.568,-8.781c-0.963,-0.182 -1.885,-0.483 -2.769,-0.895c-0.657,-2.387 0.751,-13.238 1.063,-17.304c0.719,-9.461 -2.657,-19.641 -2.858,-29.111c-0.167,-8.15 2.475,-13.739 11.595,-10.321c4.852,1.821 4.457,11.912 6.131,12.51c1.712,0.601 3.695,-4.838 3.683,-4.929c-0.413,-3.539 -10.987,-11.989 -7.976,-13.276c5.077,-2.207 6.957,-3.954 5.015,-10.033c-1.565,-4.903 -7.811,-3.235 -9.452,-6.229c-0.902,-1.655 -2.469,-10.179 -2.973,-12.678c-1.83,-9.042 -1.794,-18.819 -3.332,-28.014c-0.628,-3.745 -5.33,-16.5 0.338,-18.627c9.164,-3.43 9.146,-0.068 8.834,6.06c-0.089,1.68 -0.348,10.042 0.386,10.784c4.779,4.832 6.402,-8.099 8.58,-9.249c12.946,-6.812 14.119,-25.274 33.423,-21.986c19.8,3.371 11.371,27.632 5.767,39.606c-2.564,5.471 -3.079,7.649 -9.715,7.728c-0.274,0.003 -2.781,7.997 -2.802,7.976c2.372,2.281 7.057,-2.354 10.183,-1.296c3.421,1.155 6.196,6.358 8.427,8.895c5.663,6.438 8.709,10.424 13.497,17.463c3.942,5.799 17.463,33.922 14.862,37.384c-1.659,2.207 3.002,17.384 3.913,20.339c2.292,7.434 1.069,15.937 2.318,23.66c0.725,4.46 3.377,9.34 2.116,12.696c-1.6,4.198 0.748,8.851 5.401,8.252m-276.549,-247.402c-0.236,-0.94 -1.367,-2.953 -0.168,-3.739c1.193,-0.778 2.507,1.729 1.815,2.61c-2.245,2.873 -8.975,3.091 -10.51,6.385c-3.032,6.488 -16.084,12.973 -22.065,15.28c-12.908,4.979 1.228,-3.406 4.455,-5.869c3.418,-2.608 23.497,-18.583 26.473,-14.667m-21.68,18.862c1.208,3.495 62.193,-37.955 68.327,-42.778c10.752,-8.451 24.364,-4.34 35.935,-1.191c17.648,4.803 35.012,11.907 52.328,17.614c6.057,1.995 6.588,13.645 7.796,18.821c2.551,10.932 -3.115,7.225 -11.765,5.484c-5.861,-1.188 -11.742,-1.786 -16.98,-2.522c-4.246,-0.596 -7.375,3.208 -3.895,3.17c7.386,-0.1 8.6,2.325 14.231,4.57c1.373,0.548 2.221,-1.697 4.623,-0.027c2.943,2.075 9.304,1.638 11.915,3.884c6.561,5.648 7.687,13.367 8.96,21.585c0.922,5.928 3.391,14.991 2.722,20.834c-0.636,5.557 -13.618,3.347 -17.165,2.958c-18.077,-1.977 -37.982,-1.688 -55.782,1.523c-16.953,3.059 -31.941,7.52 -47.705,15.151c-1.803,0.872 -14.419,9.605 -16.196,6.264c-0.981,-1.839 2.071,-3.144 -0.415,-5.1c-2.039,-1.6 -2.779,2.321 -4.529,1.119c-5.695,-3.904 4.266,-8.748 1.146,-12.708c-2.843,-3.627 1.364,-10.017 2.578,-13.126c4.016,-10.274 9.39,-22.743 20.053,-28.194c3.577,-1.83 32.814,-17.976 31.751,-19.037c-2.163,-2.174 -13.183,6.645 -15.56,4.777c-0.313,2.36 -14.732,10.424 -17.876,12.08c-8.173,4.31 -21.803,9.066 -25.059,19.057c-2.001,6.132 -21.061,-1.376 -25.89,-2.454c-3.951,-0.881 -34.054,-3.786 -34.85,-5.666c-1.403,-3.218 11.229,-8.848 12.398,-10.448c-0.651,-0.743 -1.075,-1.594 -1.269,-2.555c4.036,-5.091 18.901,-4.57 20.173,-13.085m13.834,56.191c7.811,2.015 17.112,9.829 5.294,16.744c-6.573,3.848 -11.193,18.345 -16.152,24.42c-3.927,4.806 -9.06,22.298 -15.371,22.684c-4.266,0.248 -9.346,-0.173 -13.489,1.02c-4.729,1.358 -4.994,6.644 -8.391,8.097c-3.995,1.706 -10.793,-20.92 -9.148,-24.562c0.226,-0.497 7.251,-2.837 8.588,-4.275c-0.156,0.171 5.083,-8.161 2.41,-6.128c7.284,-5.466 -5.81,-16.471 4.022,-23.144c14.376,-9.794 25.973,-10.76 42.237,-14.856m160.186,-72.876c2.075,-5.704 2.693,-1.014 7.596,-1.031c2.057,-0.012 19.9,4.838 20.675,6.06c4.661,7.384 53.418,12.246 53.371,19.317c0,5.351 -22.157,7.817 -24.62,6.108c-2.608,4.635 -26.871,16.347 -24.906,9.148c1.134,-4.569 -11.025,-8.927 -13.441,-8.871c-14.14,0.324 -19.314,-19.921 -18.675,-30.731m-210.69,170.617c-0.289,-4.962 2.301,-12.567 7.422,-14.635c5.353,-2.16 15.283,9.982 23.149,7.82c7.582,-1.998 21.739,-2.708 24.762,4.855c6.62,16.565 -2.725,28.274 -20.866,21.925c-12.885,-4.508 -35.793,1.735 -34.467,-19.965m227.759,-98.76c-4.838,-2.897 -4.679,-5.115 -5.746,-12.036c-0.521,-3.392 -8.164,-25.11 -5.356,-27.154c4.225,-3.076 57.237,39.375 11.102,39.19m-19.102,-84.453c10.713,-2.802 32.599,2.446 43.074,7.973c4.352,2.289 15.289,1.582 17.386,6.836c2.304,5.786 3.613,4.573 9.302,7.224c5.819,2.717 5.383,4.924 -0.704,4.329c-5.695,-0.554 -10.81,-3.972 -16.391,-5.121c-7.392,-1.527 -17.887,-7.808 -23.509,-8.182c-3.4,-4.673 -8.816,-5.823 -10.083,-1.309c-6.685,-5.386 -10.91,-7.648 -19.075,-11.75m-178.091,232.12c-9.85,1.576 -18.33,-19.638 -9.352,-22.852c11.349,-4.06 21.517,23.315 9.352,22.852m1.856,-63.607c-11.585,2.319 -23.515,-16.65 -6.497,-12.195c6.123,1.606 22.652,10.03 6.497,12.195m-27.685,-123.651c5.484,2.481 -7.466,10.504 -8.933,7.752c-1.541,-2.911 16.134,-14.022 18.33,-15.036c-0.33,2.965 -3.498,4.22 -3.781,7.213c-1.938,-4.337 -3.09,0.36 -5.616,0.071m223.664,101.026c-3.715,0.557 -5.483,-27.407 -5.144,-27.446c0.695,-0.076 8.256,26.966 5.144,27.446m-88.174,-167.405c-2.1,-0.466 -23.659,-4.114 -21.891,-7.122c2.124,-3.642 20.571,3.583 21.891,7.122m72.977,82.452c0.356,2.589 8.208,16.11 6.659,22.112c-0.752,2.917 -3.619,-1.155 -3.625,-2.431c-0.017,-5.745 -1.317,-14.192 -3.034,-19.681m-47.431,-74.63c1.962,-0.047 15.088,2.154 14.888,4.264c-0.265,2.852 -14.149,0.686 -14.888,-4.264m28.391,-5.4c1.827,-0.012 9.087,3.909 5.454,6.467c-1.241,0.872 -11.565,-5.763 -5.454,-6.467m28.845,136.768c-0.834,-1.494 -4.095,-16.332 -2.542,-16.777c3.067,-0.878 3.099,14.435 2.542,16.777m4.517,40.26c-0.395,-3.657 6.765,1.449 1.797,2.489c-1.482,-0.044 -2.08,-0.875 -1.797,-2.489" style="fill:#231f20;fill-rule:nonzero;"/><path d="M46.711,340.658c1.815,1.856 1.494,3.076 -0.96,3.663c7.737,2.165 -7.266,20.353 -8.415,23.736c-2.817,8.297 -7.077,21.741 -2.401,30.026c4.563,8.091 12.557,-4.628 15.913,-7.13c3.105,-2.313 5.563,17.231 6.249,20.1c1.285,5.395 5.425,6.403 6.255,13.168c1.147,9.328 7.932,20.575 13.177,28.377c6.921,10.303 14.098,20.436 21.043,30.725c2.366,3.515 -6.096,8.241 -7.34,10.889c-0.179,0.378 -2.584,10.77 -1.956,10.03c-0.586,0.704 -6.821,-2.13 -4.72,2.186c1.576,3.232 -6.017,7.835 -0.03,8.43c-7.831,7.855 11.553,15.916 18.13,10.306c1.611,-1.376 5.668,-8.721 4.46,-8.574c2.673,-0.321 15.434,-15.677 14.223,-18.356c5.462,3.091 33.011,20.033 32.631,20.313c1.862,1.208 11.903,5.728 13.733,5.713c4.11,-0.033 15.719,2.846 21.465,5.418c7.716,3.465 16.903,4.199 25.194,5.436c6.571,0.981 13.987,4.476 20.428,4.715c13.285,0.492 2.864,13.076 10.615,19.496c5.092,4.384 5.401,12.507 12.004,15.457c6.845,3.055 11.8,-3.097 17.896,-4.638c-1.317,-0.262 -2.351,-0.955 -3.102,-2.077c5.209,1.237 2.513,-3.633 4.985,-5.701c0.478,0.668 1.114,1.107 1.909,1.317c0.139,-1.412 0.366,-11.468 -1.225,-12.036c-2.219,-0.799 3.214,-9.936 -2.301,-11.851c5.916,-3.966 6.11,-4.06 14.888,-4.929c6.824,-0.675 12.79,-0.525 18.294,-4.349c3.321,-2.322 26.815,-11.152 27.257,-10.469c-0.144,-1.983 0.76,-3.02 2.714,-3.111c-0.298,-0.686 -0.722,-1.288 -1.267,-1.803c5.023,-1.267 11.293,-9.685 14.419,-13.695c4.234,-5.427 11.662,-10.516 14.367,-16.845c1.464,-3.394 2.77,-7.354 5.215,-9.54c5.757,-5.156 44.977,0.731 27.083,-20.186c-3.662,-4.284 -19.817,-5.306 -21.04,-8.777c-0.713,-2.018 -2.392,-12.929 -1.983,-14.77c0.351,-1.568 -1.977,-1.12 -1.597,-3.483c0.36,-2.23 -4.019,-8.895 -4.708,-11.317c-1.291,-4.535 -5.121,-9.879 -2.672,-15.174c-4.108,-2.829 0.056,-13.966 -3.601,-17.507c-3.471,-3.374 -0.613,-19.559 -0.236,-24.096c0.38,-4.585 -0.642,-13.521 -1.653,-18.15c-0.774,-3.518 2.178,-11.567 -0.109,-14.776c-2.472,-3.465 -1.947,-10.083 -2.065,-16.317c-0.053,-2.861 -4.207,-16.067 -2.475,-17.366c-0.76,4.331 -2.03,0.236 -4.075,2.366c-1.287,1.364 2.749,14.708 1.361,17.048c-1.997,3.388 0.33,22.159 3.236,23.158c-4.641,0.749 3.049,24.046 -1.642,26.061c-4.116,1.727 3.362,16.173 1.624,18.568c-3.556,4.862 6.514,10.902 1.452,14.523c3.521,0.504 4.45,28.235 7.608,33.011c7.428,11.182 6.04,45.734 -6.538,53.657c-5.578,3.515 -10.725,14.376 -14.723,19.868c-7.62,10.459 -17.829,15.722 -28.73,22.036c-4.579,2.658 -13.43,4.567 -18.86,5.781c-4.225,0.943 -10.472,0.044 -14.806,-0.068c-0.23,-0.006 -9.838,-3.931 -9.714,-3.978c-3.389,1.264 -2.11,20.731 3.568,20.937c-0.486,0.784 -2.287,0.398 -3.053,0.814c-3.535,1.918 3.616,5.621 3.916,6.544c-1.364,0.542 -2.448,0.153 -3.256,-1.167c-2.345,4.11 0.572,9.027 -2.307,13.586c-1.85,2.952 -4.393,0.704 -3.512,5.274c-4.228,-2.36 -9.555,3.859 -10.495,-4.349c-0.725,0.56 -1.467,1.093 -2.227,1.594c1.178,-3.032 -0.183,-3.96 -3.182,-3.663c-1.014,-1.323 -1.085,-10.607 -1.918,-11.547c-1.886,-2.203 -1.17,-7.012 -2.811,-11.384c-1.559,-4.231 1.231,-9.735 -2.537,-13.177c-5.41,-4.938 -3.925,5.186 -5.201,7.089c0.009,-1.688 -22.548,-5.81 -26.694,-6.14c-6.376,-0.48 -11.411,-2.136 -17.587,-3.842c-2.646,-0.731 -11.762,-1.629 -13.135,-2.808c-0.937,-0.801 1.865,-1.797 -0.666,-2.531c-4.72,-1.414 -10.171,-2.148 -14.254,-3.863c-7.204,-3.023 -14.665,-5.869 -21.748,-10.073c-8.267,-4.906 -18.972,-14.656 -27.705,-17.534c-5.471,-1.804 -5.728,-0.469 -8.541,-6.945c-0.875,-2.012 -2.231,-7.982 -5.357,-4.496c1.559,-9.384 -9.576,-12.988 -13.583,-16.721c0.569,-0.365 1.983,0.303 2.222,-0.681c0.825,0.159 -8.412,-6.455 -7.634,-5.863c-0.978,-0.763 1.049,-1.167 0.987,-1.995c0.035,0.463 -2.222,-2.525 -2.505,-3.308c-0.583,0.271 -0.963,0.713 -1.137,1.331c-2.899,-4.407 -2.658,-9.832 -6.815,-13.6c-3.167,-2.873 -4.29,-4.131 -3.524,-9.278c-0.946,0.58 -1.974,0.845 -3.091,0.792c3.969,-3.777 -0.073,-11.258 -4.623,-11.827c0.457,-2.192 4.974,-6.561 -3.795,-7.142c5.519,-2.271 1.014,-17.548 -4.74,-17.157c7.755,-1.496 -1.291,-16.823 -2.46,-21.762c3.992,-4.9 0.057,-29.528 -2.267,-31.67c-0.53,-5.382 0.225,-44.928 -2.606,-39.346c1.63,2.555 -3.972,-1.528 -3.972,-1.528m55.639,222.495c-0.545,4.231 -7.428,3.017 -10.162,1.789c1.73,-2.343 -1.948,-9.835 -2.13,-11.58c0.053,0.504 5.633,-7.469 5.507,-7.151c1.779,-4.516 4.835,-6.24 3.179,-10.359c3.577,0.955 7.593,-4.9 10.153,-2.67c1.874,1.639 7.702,3.56 8.571,5.304c-0.875,-1.733 -4.508,7.077 -4.078,6.391c-4.661,7.41 -7.71,11.314 -9.602,20.403c-0.421,-0.748 -0.902,-1.455 -1.438,-2.127c-0.28,2.172 0,0 0,0m-45.855,-145.275c-0.683,0.251 -3.945,0.427 -3.901,1.379c1.267,1.727 2.198,3.63 2.788,5.707c-1.577,1.311 -2.82,2.867 -3.73,4.662c-0.531,1.384 -6.648,12.525 -9.087,9.726c-7.416,-8.468 1.541,-28.451 6.252,-36.904c-0.96,4.738 4.225,0.955 4.302,3.606c-0.919,0.669 -1.818,1.365 -2.693,2.086c0.934,1.267 1.762,2.602 2.484,4.002c0.869,6.611 0.103,2.28 3.585,5.736c-0.551,0.201 0,0 0,0m323.509,78.142c3.641,0 24.799,5.291 21.62,10.748c-2.825,4.847 -28.27,6.597 -27.437,1.532c0.41,-2.498 9.302,-2.115 2.128,-7.165c3.892,-0.227 5.733,-1.273 3.689,-5.115c1.308,0 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M160.406,260.721c41.447,2.222 65.991,-37.834 63.952,-73.297c-1.005,-17.449 -14.924,-37.723 -29.552,-46.851c-16.527,-10.315 -32.098,-7.133 -50.401,-7.042c-35.49,0.171 -49.924,36.612 -51.462,67.022c-2.101,40.33 33.692,55.598 67.463,60.168m-17.578,-9.089c-0.05,0.763 -13.111,-5.681 -14.145,-6.388c-8.018,-5.48 -12.302,-12.958 -19.202,-19.261c-7.066,-6.449 -3.471,-20.592 -10.15,-27.024c3.809,-6.347 1.237,-16.382 4.776,-23.229c2.475,-4.762 8.933,-10.18 10.645,-14.9c3.05,-8.389 18.704,-19.859 27.867,-19.941c18.792,-0.16 37.461,-1.798 52.953,11.432c15.197,12.978 26.482,31.29 20.875,51.995c-5.616,20.657 -9.823,33.238 -30.36,42.431c-4.711,2.094 -9.664,3.512 -14.587,4.982c-10.705,3.2 -19.676,-0.354 -30.148,0.881c-0.713,-0.804 -0.221,-1.132 1.476,-0.978" style="fill:#231f20;fill-rule:nonzero;"/><path d="M144.247,411.774c6.255,2.649 13.751,-26.877 8.235,-29.888c4.087,-1.553 2.313,-10.969 0.669,-10.309c-3.226,1.243 -4.363,15.224 -1.529,16.856c-6.108,5.622 -0.919,31.344 -17.717,20.371c-10.692,-6.982 -1.635,-41.299 -4.019,-42.142c-5.356,-1.856 -9.213,31.147 -6.187,35.513c2.384,3.383 0.996,10.094 7.658,12.699c6.332,2.478 10.71,0.38 12.89,-3.1" style="fill:#231f20;fill-rule:nonzero;"/><path d="M264.166,261.669c1.671,2.614 3.38,18.445 7.083,18.955c4.361,0.583 -4.584,-3.507 6.182,-0.557c-3.362,-3.182 2.725,-11.426 -1.842,-11.971c9.597,-7.823 -12.49,-10.746 -2.112,-2.028c-6.833,4.069 -4.491,-16.614 -10.239,-15.341c-1.662,0.371 0.84,10.268 0.928,10.942c1.883,2.944 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M264.247,261.757c-1.468,-0.91 -2.614,-0.571 -3.436,1.017c1.689,-2.97 0.625,-6.064 -2.307,-6.759c0.528,-0.56 0.896,-1.211 1.105,-1.957c0.024,-0.017 -6.974,-0.091 -3.459,2.676c2.475,1.927 -2.805,7.864 4.266,7.925c-8.123,-0.294 -2.248,15.949 -3.338,17.157c-0.059,-0.695 -0.238,-1.358 -0.536,-1.991c-0.757,0.003 11.019,12.366 6.803,1.549c-1.432,-3.691 -0.188,-16.043 0.902,-19.617" style="fill:#231f20;fill-rule:nonzero;"/><path d="M285.329,135.684c0.669,1.656 -4.166,3.706 -4.163,6.37c0.017,8.65 6.49,-0.987 7.598,-2.499c0.422,-0.568 12.773,-12.301 4.673,-11.844c-2.466,0.147 -8.108,5.498 -8.108,7.973" style="fill:#231f20;fill-rule:nonzero;"/><path d="M269.207,230.865c-1.417,1.381 2.844,29.832 5.254,26.258c2.678,-3.992 -1.827,-23.403 -5.254,-26.258c-0.442,0.43 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M255.292,230.492c-0.132,-1.075 -1.408,-21.352 -5.598,-18.412c-0.813,0.572 2.584,22.299 4.488,21.895c1.614,-0.342 1.485,-2.387 1.11,-3.483" style="fill:#231f20;fill-rule:nonzero;"/><path d="M255.154,248.772c0.009,-2.033 3.433,-15.828 -2.157,-14.007c-2.171,0.71 3.324,6.588 2.216,7.38c-0.795,0.03 -1.585,0.115 -2.366,0.254c0.507,2.21 1.276,4.334 2.307,6.373" style="fill:#231f20;fill-rule:nonzero;"/><path d="M269.207,230.865c11.3,-3.86 -11.644,-12.755 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M256.524,252.721c0.554,-0.436 1.102,-0.875 1.656,-1.314c-0.639,-1.255 -1.544,-1.753 -2.711,-1.491c-0.725,1.078 -0.368,2.012 1.055,2.805" style="fill:#231f20;fill-rule:nonzero;"/><path d="M149.687,63.715c-0.819,-2.172 35.174,-2.078 35.203,-2.234c0.784,-4.201 -26.944,-7.115 -23.815,-1.002c-3.804,-2.177 -11.073,-1.113 -11.388,3.236c0.336,0.889 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M149.608,63.801c-0.507,-3.05 -4.034,-0.377 -3.294,0.353c2.136,2.11 1.768,-0.459 3.294,-0.353" style="fill:#231f20;fill-rule:nonzero;"/><path d="M144.631,178.802c-21.267,-1.838 -18.034,27.902 0.802,30.637c23.547,3.418 21.025,-33.477 -0.802,-30.637m3.837,16.37c-0.993,-3.291 -5.873,-3.848 -6.129,-5.878c-0.48,-3.862 8.539,-1.172 6.129,5.878" style="fill:#231f20;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/green.svg b/go.dev/testdata/golden/images/gophers/green.svg
new file mode 100644
index 0000000..c1660ba
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/green.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="green"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#78e6d0;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#78e6d0;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#78e6d0;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/grey.svg b/go.dev/testdata/golden/images/gophers/grey.svg
new file mode 100644
index 0000000..d88756e
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/grey.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="grey"><path d="M224.534,107.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#bbbcbc;fill-rule:nonzero;"/><path d="M25.639,82.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#bbbcbc;fill-rule:nonzero;"/><path d="M294.231,74.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#bbbcbc;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/happy.svg b/go.dev/testdata/golden/images/gophers/happy.svg
new file mode 100644
index 0000000..91f670d
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/happy.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 412 585" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M48.237,134.398c-33.695,-15.235 4.782,-32.81 16.879,-19.225c18.118,20.348 -9.696,22.417 -16.879,19.225c-9,-4 2,0 0,0" style="fill:#b8afa6;fill-rule:nonzero;"/><path d="M276.051,18.794c-3.908,-0.73 -7.388,-3.459 -10.814,-5.396c3.225,-5.562 10.376,-13.416 17,-9c3.37,1.685 4.419,4.103 4.667,7.741c0.67,9.835 -2.754,8.275 -10.853,6.655c-6,-2 0,0 0,0Zm113.87,94.607c-3.604,-7.209 1.485,-16.99 1.485,-25.515c0,-4.405 -12.196,2.366 -14.169,5.512c-13.403,-7.282 2.509,-18.465 12.903,-18.465c31.813,-4.544 4.894,48.695 -0.219,38.468c-1,-2 6.956,0.535 5.956,-1.465m-185.19,98.852c3,0 69.269,-3.884 71.591,-67.935c1.166,-32.136 -9.874,-68.655 -45.896,-77.647c2.921,2.881 -10.007,-3.594 -25.035,-3.594c-16.104,0 -38.675,8.373 -36.136,6.425c-32.207,3.555 -49.179,40.108 -52.728,68.501c-5.579,44.633 45.281,84.981 88.204,74.25Zm192.55,160.61c7.93,-15.859 -23.816,-42.715 -27,-57c-2.988,2.982 -8.563,8 -13,8c2.004,5.174 1.573,3.727 -2,6c1.044,0.78 1.898,1.299 3,2c-11.301,7.673 28.898,54.469 39,41c1,-2 -3,4 0,0m-167,149c-13.905,-3.477 -35.053,-6.07 -48.297,-10.79c-17.442,-6.216 -32.404,-10.63 -47.308,-17.928c-6.408,-3.138 -13.229,-5.383 -20.019,-9.458c-6.167,-3.7 -13.178,-8.095 -18.685,-12.639c-25.907,-21.377 -42.089,-53.522 -47.342,-87.625c-7.132,-46.304 0.558,-94.742 -11.168,-140.43c-3.004,-11.702 -9.419,-22.588 -11.81,-34.204c-0.713,-3.46 4.128,-10.427 8.629,-5.926c34.212,13.685 12.548,-22 35,-22c6.649,-6.649 14.927,-7.013 12.562,-18.953c-2.009,-10.149 -16.551,-16.918 -15.468,-27.563c1.198,-11.786 3.968,-16.272 -9.385,-23.902c-9.705,-3.204 -23.639,6.66 -26.187,2.313c-4.082,-6.965 2.445,-24.181 13.668,-38.142c7.441,-9.257 18.177,-16.331 24.81,-20.753c6.981,-5.984 16.166,-10.123 24.356,-14.119c3.991,-1.947 10.403,-6.057 16.442,-7.68c4.73,-1.27 9.785,-3.394 11.643,-5.252c46.191,-14.98 93.471,-14.631 135.966,-4.912c45.202,10.337 79.901,30.038 104.109,62.062c19.519,25.822 32.557,44.094 34.192,77.529c1.333,27.268 -12.031,68.662 -20.648,94.512c-7.559,22.675 -12.922,45.831 -0.653,66.934c8.599,14.789 21.249,28.082 23.926,45.482c3.017,19.602 -25.792,-1.473 -29.333,-8.556c-1.233,-2.466 -16.906,-25.6 -19,-25c-5.254,1.505 9.58,20.563 11.171,22.701c13.827,18.581 27.69,62.007 12.829,84.299c0,27.425 -33.13,50.339 -55.25,59.188c-8.005,3.202 -17.328,9.864 -24.75,14.812c-20.075,9.509 -42.481,10.483 -64,6c-8,-2 24,5 0,0" style="fill:#9eebff;fill-rule:nonzero;"/><path d="M49.237,172.398c-10.506,-3.232 -29.851,-9.17 -27.25,-24.125c1.257,-7.223 6.408,-14.731 11.245,-13.047c17.831,6.209 18.78,4.494 27.752,3.172c7.946,-1.171 17.607,5.964 21.565,21.016c4.663,17.736 -23.52,14.942 -33.312,12.984c-13,-4 10,2 0,0m344.501,202.718c-10.041,-2.511 -44.316,-38.696 -32.501,-46.718c-1.102,-0.701 1.044,0.78 0,0c3.573,-2.273 4.004,-0.826 2,-6c4.437,0 10.012,-5.018 13,-8c0.97,4.353 44.476,56.043 24.531,61.109c-2.829,0.718 0.329,0.843 -3.671,-0.157m-73.86,148.048c-8.721,-8.721 3.701,-22.894 12.376,-23.976c-0.677,5.019 -3.814,29.683 -12.376,23.976c-3,-3 3,2 0,0m-175.75,22.699c-15.749,-1.801 -24.664,-29.193 -26.912,-46.336c-0.85,-6.485 4.309,-13.278 12.336,-9.838c15.414,6.605 16.19,7.254 18.795,24.836c0.641,4.331 9.657,40.589 -4.219,31.338Zm74.232,21.677c-13.789,-8.044 -19.098,-49.984 5.222,-43.904c12.69,3.173 15.12,17.413 17.136,31.072c3.897,12.981 7.129,28.652 -11.263,20.314c-0.695,-0.314 -11.095,-7.482 -11.095,-7.482Z" style="fill:#e4d3b7;fill-rule:nonzero;"/><path d="M233.237,141.398c10.367,-6.911 6.242,-24.698 -6.984,-18.953c-13.321,5.786 -7.707,25.249 6.984,18.953c3,-2 -7,3 0,0m-11,29c-34.841,0 -19.998,-55.954 11.75,-57.234c37.557,-1.515 28.826,65.349 -11.75,57.234c-2,0 5,1 0,0m-44,40c-27.44,-6.098 -73.019,-46.963 -57,-79c3.546,-21.276 22.76,-59.883 46,-65c1.643,-0.362 4.105,1.827 6.519,1.37c9.307,-1.761 16.971,-7.391 26.74,-7.74c5.82,-0.208 49.741,2.342 49.741,9.37c7.629,3.54 14.391,11.391 20.444,17.444c2.977,2.977 -2.474,7.096 5.556,6.556c1.878,15.887 18.113,55.499 2.587,68.614c2.099,-37.78 -4.357,-77.05 -43.462,-93.304c-32.452,-13.488 -76.716,2.811 -96.125,28.69c-23.983,35.974 -9.367,80.4 26.309,102.297c29.037,17.822 84.599,-0.471 107.282,-23.376c-14.976,19.441 -33.427,28.289 -56.488,34.154c1.498,0.476 -1.512,-0.307 0,0c-9.454,4.664 -28.274,3.201 -38.103,-0.075c-9,-2 6,2 0,0m109,-196c0,-16.641 -16.097,-11.181 -22,-1c5.859,2.464 22,11.375 22,1c0,-6 0,3 0,0m110,95c10.397,-13.863 11.007,-41.157 -13.125,-31.875c-8.864,3.409 -17.139,8.272 -6.875,15.875c3.146,-5.019 14.334,-10.391 17,-5c-0.887,-1.33 -11.784,35.784 3,21c3,-4 -2,2 0,0m-337,25c22.433,0 5.525,-32.263 -17,-21c-19.771,9.886 6.514,21 17,21c4,0 -2,0 0,0m-35,-2c4.457,-6.685 2.482,-14.964 6,-22c3.178,-11.653 7.197,-23.407 13.594,-33.73c8.923,-14.403 26.027,-21.758 35.406,-34.27c-29.166,-5.279 -44.54,6.423 -59.292,30.954c-7.718,12.834 -8.53,25.487 -6.822,40.253c0.616,5.324 2.142,27.765 11.114,18.793c2,-3 -1,1 0,0m48,40c16.365,-2.728 8.637,-19.716 0.528,-27.456c-10.176,-9.714 -26.935,0.049 -34.528,-7.544c-13.521,-5.408 -22.293,14.654 -12.88,23.992c9.65,9.572 34.326,14.824 46.88,11.008m-31,15c0,-4.582 0.42,-12.25 -6.75,-12.25c-8.306,0 -0.183,16.151 0.75,18.25c4.109,3.775 7.829,3.551 6,-6c0,-7 0,0 0,0m17,12c3.189,-6.379 -1.659,-26.981 -12,-21c-8.559,4.951 -2.291,28.146 12,21c1,-2 -2,1 0,0m218,322c19.278,-4.284 30.967,-15.1 47.75,-21.812c20.938,-8.375 35.836,-21.567 48.25,-40.188c9.09,-15.149 15.869,-41.85 9.625,-58.5c-2.778,-7.409 -1.809,-15.481 -4.625,-22.875c-3.548,-9.314 -20,-24.338 -20,-33.625c0,-2.724 -6.214,-9.793 -2,-11c2.609,-0.747 10.59,14.59 12,16c8.583,8.583 12.195,18.876 24.024,24.232c14.67,6.643 12.354,-7.304 9.601,-16.482c-5.27,-17.563 -22.34,-30.478 -27.896,-48.146c-6.528,-20.759 5.271,-41.871 5.271,-61.604c3.919,-21.555 14.927,-41.042 19.875,-62.25c3.868,-16.577 3.122,-50.753 -9.875,-63.75c-4.287,-4.287 -8.414,-14.299 -12.519,-19.852c-5.253,-7.108 -8.311,-16.306 -13.481,-23.148c-8.52,-11.276 -25.022,-25.759 -38.171,-33.321c-72.906,-41.934 -172.087,-41.041 -244.012,3.294c-8.116,5.003 -46.16,29.92 -42.671,62.125c12.257,0 33.346,-9.145 36.854,11.902c0,6.065 -4.69,9.991 -1.407,15.926c2.25,4.068 5.831,8.086 8.407,12.074c0.59,0.005 0.739,0.087 0,0c8.525,8.624 7.718,19.521 -2,26c-7.306,4.871 -11.992,6.833 -15,13c-1.021,9.185 -3.404,19.347 -14.816,16.189c-4.462,-1.234 -21.164,-9.679 -18.813,1.737c2.839,13.795 10.215,26.683 13.407,40.778c2.471,10.915 2.888,22.315 4.004,33.422c3.351,33.349 0.459,67.269 5.567,100.434c3.038,19.729 11.948,36.034 20.651,53.44c9.423,15.077 20.561,30.637 36.111,39.852c7.589,4.497 19.714,7.973 25.889,14.148c9.344,4.672 20.16,8.2 30.111,11.296c11.489,3.575 26.664,12.704 38.889,12.704c25.22,0 44.87,14.532 71,8c9,-2 -4,1 0,0m52,0c3.201,-6.402 4.074,-12.135 5,-19c-21.173,2.641 -8.773,26.547 -5,19c1,-2 -2,4 0,0m-178,24c7.122,-2.374 -1,-30.431 -1,-36c-1.059,-9.533 -13.351,-20.447 -24,-19c-12.993,1.766 6.075,61.309 25,55c3,-1 -3,1 0,0m94,28c3.623,-3.623 -8,-28.585 -8,-35c0,-7.416 -9.883,-15.986 -18,-13c-21.197,7.8 5.726,61.517 26,48m-11,10c-8.023,-3.503 -19.896,-14.459 -24,-24c-8.379,-4.189 -3.027,-32.373 -6.828,-40.375c-3.704,-7.798 -23.604,-10.103 -31.172,-12.625c-27.713,-9.238 -7.436,21.589 -14,38c-9.029,18.058 -34,2.372 -34,-15c0,-7.96 -4.742,-13.19 -5.741,-20.186c-0.769,-5.385 -0.657,-19.745 -3.259,-23.814c-1.524,-2.384 -11.89,-8.297 -14,-10c-7.379,-5.956 -15.427,-12.854 -20,-22c-15.1,-22.649 -26.418,-42.654 -31.913,-69.633c-4.702,-23.093 -3.032,-43.268 -3.087,-66.367c-0.667,0.667 0.667,-0.667 0,0c-2.108,-37.703 -3.808,-77.616 -21,-112c-1.007,-4.53 -13.424,-54 -10,-54c0,-11.269 -4.12,-18.768 -5.359,-29.922c-0.836,-7.523 1.048,-25.107 -2.641,-32.078c-3.464,-6.546 -12.739,-9.259 -2.718,-20.769c8.324,-7.134 11.965,-0.941 18.644,-6.453c12.867,-10.617 18.802,-19.519 31.57,-23.209c5.598,-1.617 13.74,-4.075 22.504,-0.569c15.082,5.027 42.493,-12.569 58,-17c19.252,-3.851 37.711,-9.18 57.52,-10.152c12.571,-0.617 25.151,-1.364 37.739,-0.552c8.016,0.517 23.263,7.182 29.741,0.704c5.806,-7.257 13.964,-14.518 23,-10c10.918,6.551 4.508,16.72 10,24c3.777,5.007 20.314,9.357 26.064,12.232c12.297,6.149 22.069,15.074 32.38,23.953c3.542,3.05 16.343,20.354 18.962,19.19c8.706,-3.87 18.771,-10.968 28.586,-7.663c20.488,6.899 9.274,28.589 2.008,40.288c-1.404,2.26 -6,1.736 -6,9c-0.379,4.634 4,3.215 4,10c16.45,38.383 -6.211,86.358 -16.375,123.625c-3.765,13.803 -2.771,27.246 -5.125,41.375c-1.616,9.698 5.5,8.286 5.5,18c5.32,9.757 25,32.622 25,46c14.405,25.209 -21.604,13.406 -24,17c-3.799,1.899 3.986,26.431 4.111,31.556c0.594,24.35 -4.105,44.333 -17.111,62.444c-3.17,4.414 -33,27.882 -33,32c0,4.035 -2.564,13.533 -4.444,17.37c-4.946,10.096 -17.556,9.47 -17.556,-3.37c-4.688,-4.217 -5.702,-2.433 -13,0c-10.493,0 -23.891,8.58 -35.25,10c-8.071,1.009 -7.884,-0.976 -14.75,0c-4.646,0.66 -14.45,4.785 -8.111,16.407c5.543,10.163 15.125,47.264 -10.889,38.593c0,0 6,2 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M222.237,141.398c-10.44,-6.96 2.291,-25.012 12.375,-19.25c13.359,7.634 -1.389,24.743 -12.375,19.25c-3,-2 2,1 0,0m20,27c30.806,-12.322 15.919,-63.064 -19.875,-53.453c-36.479,9.795 -20.672,68.197 19.875,53.453c5,-2 -11,4 0,0m-59,37c-15.125,0 -29.492,-15.944 -38.955,-25.715c-14.028,-14.486 -17.712,-33.891 -14.67,-53.16c7.451,-47.188 52.434,-64.539 95.625,-60.273c46.982,4.64 53.58,56.701 47.309,94.203c-7.052,42.168 -53.457,48.928 -89.309,44.945" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/headlamp-colorized.svg b/go.dev/testdata/golden/images/gophers/headlamp-colorized.svg
new file mode 100644
index 0000000..47b3de6
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/headlamp-colorized.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 150 263" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M87.2 252.834c-1.83-3.419-10.665-1.654-14.12-2.197-5.1-.803-9.844-2.02-14.436-4.331-8.345-4.203-17.331-11.128-23.519-19.057-3.617-4.636-4.187-10.462-6.541-15.728-1.393-3.118-3.042-6.536-3.23-10.191-.223-4.359-1.586-9.087-2.47-13.392-.183-.892-.933-1.071-1.166-1.836-.077-.252-.082-2.901-.025-3.314.157-1.142-.019-2.29.052-3.434.1-.758.249-1.506.451-2.245-.526.149-.749.052-.671-.29.476.096 1.017-.022 1.505 0-1.673-2.286-2.2-7.51-1.941-10.308.42-4.532-.757-9.081-.461-13.725.166-2.61-.716-10.411 4.139-8.678 1.508.538 1.912 5.025 2.271 6.381.476 1.795.961 3.626 3.174 3.857 4.341.451 6.02-4.754 7.893-7.609.871-1.327 2.772-2.725 4.173-3.479 1.836-.988 3.395-.589 4.858 1.186 1.415 1.718 2.72 3.609 4.311 5.172 1.633 1.606 3.768 1.982 5.546 3.249 1.94 1.381 5.005 1.988 7.352 1.976.631-.004 2.245 1.042 1.875-.64 1.358.101 2.882.93 3.182-.674-3.816-.729-7.353-1.2-11.11-2.538-2.711-.963-7.596-2.937-8.73-5.788-1.668-4.177-2.31-9.329-2.811-13.787-.449-3.998.817-6.988 2.536-10.408 1.547-3.078 3.589-7.557 6.713-9.348 3.408-1.954 7.783-3.752 11.715-3.899 8.993-.338 16.308 5.057 20.141 12.831 1.001-2.024-2.757-4.221-2.349-5.677.601-2.087-3.883-3.943-5.305-4.579-3.611-1.612-7.097-2.945-10.904-3.999-1.702-.474-1.615-.169-3.786.06-5.92.625-11.244 3.336-14.801 8.167-.932 1.265-2.841 5.558-4.007 6.141-.441 1.849-.396 7.046-3.192 6.789 2.614 3.527-4.176 2.317-4.023.253.167-2.285.916-6.233-.87-8.167-1.374-1.489-3.263-2.157-5.256-2.719-2.548-.718-5.707.386-8.259 1.031l1.003-1.371c.511-.143.91-.389 1.034-.985.254-1.224 2.426-2.288.942-2.783 1.897-2.315 4.861-5.14 7.272-7.084 2.408-1.942 4.954-4.949 7.751-6.036 7.102-2.759 16.318-2.929 23.837-.567 4.326 1.359 8.827 2.177 13.182 3.524 4.351 1.346 7.997 3.823 11.865 6.148 1.796 1.079 3.49 1.761 5.075 2.993.858.665 2.039 1.433 2.95 1.965 2.977 1.738 4.941 4.026 7.976 5.323-.204.708-1.091-.094-1.26.521l3.668 1.08c-1.645 1.273-.068 1.493 1.244 2.487 1.561 1.181 2.493 2.348 3.787 3.73 1.68 1.8 3.365 3.45 5.372 4.849 3.413 2.379 6.559 6.083 9.008 9.563 1.379 1.977 3.413 4.073 4.367 6.285.918 2.13-1.637 6.392-2.319 8.549-.903 2.86-2.25 5.581-3.199 8.438-.561 1.685-.824 3.389-1.266 5.097-.486 1.878-1.827 2.252-.394 3.857-2.221.84.079 1.145-1.299 1.57 2.368 1.184-1.404 13.64 1.966 14.486-.832.273-.556 1.115-.2 1.646.512.765.86 1.979.828 3.027-.036 1.397 1.35 3.439 2.108 4.611.442.685-.007 1.652.321 2.458.509 1.252 1.104 1.607 1.104 2.974.208.862-.088 4.103 1.078 5.003-1.868 1.22-1.428 5.609-1.752 7.733-.188 1.23-3.17 6.089-1.699 6.894-2.479 1.548-2.034 5.609-4.988 6.594-.897.299-5.576 4.227-2.932 5.049-.449.787-2.856 1.163-3.748 2.217-1.202 1.413-2.047 2.973-3.301 4.402-1.713 1.99-5.874 4.687-8.235 5.291-2.734.698-5.36 2.395-7.956 2.622-2.453.215-10.141-.14-11.094 2.784M62.127 133.477c3.687 1.518 9.709-3.116 9.95-6.883.081-1.256-1.038-3.776-1.859-4.748-.929-1.101-3.887-3.166-5.433-2.803-3.921.92-5.533 2.208-7.086 5.903-1.212 2.874.978 9.169 4.95 8.33l-.522.201m18.885 16.602c4.468-1.212 7.326-6.373 9.063-10.331 1.418-3.229 2.639-11.974-.471-14.435-.274.937-.856 3.948-.201 4.694 1.022 1.163.316 4.591-.027 6.355-1.036 5.351-5.319 9.468-9.352 12.749l.988.968m-4.342 61.278c.857-2.452 1.771-8.338-1.682-8.338.261 2.62.449 5.598-.379 7.981 1.736.256 2.33 3.529 4.951 2.971-2.437-.85 1.132-.162 1.636-.706.517-.558 1.213.159 1.938-.792 1.775-2.324 2.135-4.827 3.213-7.574-4.193-.863-.708 2.2-3.21 2.525.656 1.359-1.138 3.037-1.916 4.235-1.371 2.114-3.033 1.046-4.551-.302m-7.329-56.806c1.844.549 5.575-.122 6.343-2.211-2.237.54-4.542.742-6.343 2.211m16.015 47.824c2.895 1.594 2.013-5.357 0 0m3.965-77.19c1.29-.918.053-3.981-1.361-4.208l1.361 4.208m-9.361 25.762c-1.856-1.117-5.232 2.118 0 0m7 52.436c-2.845-1.746-2.39 3.075 0 0" fill="#01add8" fill-rule="nonzero"/><path d="M49.92 147.845c3.12 1.739 7.622 5.688 11.229 5.688 4.383 0 9.037.866 12.993-1.135 3.847-1.948 9.854-3.527 12.22-7.26l4.271-6.74c.694-1.096-.502-5.386-.632-6.645-.541-5.227-1.467-8.437-3.514-13.298-.662-1.572-1.299-4.738-2.513-5.966-1.528-1.546-5.118-2.45-7.07-3.383-4.486-2.147-8.616-1.786-13.616-1.939-4-.123-8.535 4.668-11.759 6.842-1.494 1.008-1.657 3.078-2.212 4.745-.809 2.431-2.951 8-3.759 10.431M51.131 38.689l-6.747-.499c-1.762-.129-5.076 2.31-6.689 3.064-3.748 1.751-6.559 5.683-8.415 9.217-1.034 1.97-1.543 3.229-1.936 5.396-.277 1.527-1.757 5.361-1.058 6.784 1.984 4.038 3.27 8.735 6.987 11.366 1.04.736 4.154 3.856 5.425 3.802l7.355-.312 8.707-.37c1.684-.071 1.743-.857 2.705-2.304l5.16-7.758c.94-1.413 3.087-3.558 3.481-5.233.428-1.822-.837-5.163-1.135-7.003-.315-1.942-.64-3.458-1.349-5.277-.556-1.431-1.927-7.523-3.392-7.988l-9.099-2.885" fill="#fefefe" fill-rule="nonzero"/><path d="M85.708 75.01l-2.701 5.724c-.529 1.119-1.914 5.917-3.047 6.453-1.3.616-5.532-.903-7.005-1.143-2.36-.385-4.751-.623-7.123-.927-8.686-1.112-17.534-4.6-26.264-3.558-2.076.248-5.155.028-7.088.846-2.095.887-4.247 3.517-6 4.968-1.491 1.235-2.608 2.621-3.849 4.12-.575.695 2.435 3.345 3.508 3.413 10.261.647 20.507 1.423 30.759 2.209 3.559.273 6.872.601 10.368 1.281 3.96.771 9.642.799 13.204 2.751 7.712 4.228 16.259 7.829 23.118 13.371 7.869 6.359 15.447 13.135 24.036 18.493 1.488.928 3.454 2.758 5.174 3.181 1.366.336 5.451 2.135 6.489 1.158 1.353-1.272 3.446-2.568 4.129-4.332l3.001-7.749c.894-2.307.083-4.239-1.382-5.807l-8.947-9.573c-4.51-4.824-8.721-10.22-14.024-14.189a1171.966 1171.966 0 01-18.12-13.831c-2.188-1.706-5.424-2.287-8.004-3.207L85.708 75.01M129.145 225.998l-4.772 7.158c2.214.697 4.588 1.875 6.926 1.875 4.031 0 5.178.06 8.412-2.301-3.256-3.139-6.175-5.624-10.566-6.732" fill="#fefefe" fill-rule="nonzero"/><use xlink:href="#_Image1" y="37" width="150" height="226"/><path d="M17.108 5.583l1.093-.08c.143.232.038.385-.315.459.927.369 1.05.908 2.417 1.638-1.183.771.626 1.561 1.911 2.242-.386 1.197 2.542 4.027 3.758 4.936 2.451 1.835 4.464 5.724 6.325 8.164 1.776 2.329 3.656 4.438 5.893 6.347-1.451.432-2.261-.946-3.614-.851.567-.791-1.172-1.898-2.016-1.861-.146-1.642 2.076 1.243-.088-1.541-.926-1.191-1.663-1.871-2.715-2.965-1.359-1.412-4.608-3.787-3.908-6.041-.97-.377-3.603-1.092-2.88-2.709.236-.527-1.815-1.15-2.16-1.724-.365-.604-2.347-2.572-2.347-3.001l-2.199-1.624c.009-.015.845-1.717.845-1.389M134.143 228.457c.813-.696 1.408-.515 1.785.545.788-1.389 1.055.563 2.162.906 1.143.356 2.622 1.848 2.421 3.141-.4 2.559-4.099 2.614-6.101 3.512-.153-.462-.304-.926-.456-1.389 1.742-.397 2.836-.956 4.071-2.338 1.571-1.749-2.834-3.68-3.882-4.377M10.282 23.576c2.021-.945 4.158 1.242 5.963 2.048 1.093.488.855 1.216 2.096 1.788 1.067.492 1.998.727 2.566 1.758-.751.308-1.713.55-2.063-.559-.274-.866-2.801-1.26-.702-.203-.61 0-5.434-3.222-5.557-3.031-.441.074-2.454-.566-3-1.1 1.278-.043.161-.211.697-.701 1.381-.646 0 0 0 0M93.012 94.839c-.971.038-4.896-1.173-4.813-2.441.159-2.379 4.412 1.981 4.813 2.441-.391.015 0 0 0 0" fill="#231f20" fill-rule="nonzero"/><path d="M17.108 5.583c0-.591-1.909.154-2.316-.63-.858-1.653 3.366-1.331 2.316.63M27.688 34.621l-1.528.188c-.101-.384-.099-1.105 0-1.489 1.206.306 2.216.76 2.92 1.812-.897.121-1.026-.174-1.392-.511-.501.062 0 0 0 0M23.872 31.302l-2.947-.476c.609-.361.572-.641-.112-.841.46-1.762 2.846 1.086 3.059 1.317M93.012 94.839c3.259.123 3.098 2.458 0 0M5.8 36.682l2.908 1.528c-.95.623-3.66-.239-2.908-1.528M12.35 2.009c1.11-.556 2.787-.071 3.162 1.2-1.486-.075-2.06-.129-3.162-1.2 1.167-.584 0 0 0 0M25.066 32.42c-.24 0-2.663.307-2.545-.319.153-.791 2.575-.75 2.545.319" fill="#231f20" fill-rule="nonzero"/><path d="M95.67 96.072c.34-.793 1.285.648 1.323.838-.105.252-.206.507-.3.764-.57.522-1.228-1.194-1.023-1.602" fill="#231f20" fill-rule="nonzero"/><path d="M98.089 98.496l-1.07-.381c.159-.178.732-1.959-.043-1.183 1.065-.425 1.272.47 1.945 1.241-.854.387-1.132.494-.832.323M1.56 35.162l2.577.956c-1.358.62-1.85.458-2.577-.956M10.282 23.576c.211.038-2.524-.307-2.265-.28 1.166-.783 1.152-.606 2.265.28M12.346 2.005C11.317.996 11.4 1.656 11.196.553c.365-.092 1.053-.099 1.416 0 .219 1.267.13 1.751-.266 1.452" fill="#231f20" fill-rule="nonzero"/><path d="M136.925 108.522c-2.682-2.439-5.05-6.811-8.413-8.253-2.269-.98-4.999-7.042-8.08-6.387-.55.126-.82-.074-.812-.602.007-1.136-.536-.696-1.387-1.341-1.557-1.178-.81-1.688-3.043-2.335.926-1.292-6.267-4.568-7.165-4.865.989-1.59-.486-1.013-1.559-1.507-1.56-.717-2.998-1.819-4.487-2.675-.885-.509-2.85-1.901-3.936-1.523-.229.08-2.533-1.225-3.226-1.525-3.422-1.486-6.943-2.582-9.956-4.796-.735-.541-.119-2.323-.299-3.097-.435-1.861-1.982-2.451-2.819-3.981-1.847-3.376-3.895-6.803-4.985-10.458-1.462-.65-1.124-2.572.403-2.641 1.361-.062 2.71-.31 4.082-.31 3.915 0 7.628-.451 11.609-.162 1.813.131 10.092 2.809 10.846 1.988 1.635 1.856 5.412 1.756 7.631 2.779 2.277 1.048 4.966 1.84 6.771 3.509v-.989c1.699.52 4.524 3.353 6.092 4.478.864.62 3.489 1.817 2.877 2.872.952.812 1.32.951 2.57 1.048-.669 1.712 3.932 4.787 4.941 5.941 1.854 2.116 3.068 3.307 4.391 5.907 2.412 4.739 5.88 9.029 7.151 14.21.278 1.121.037 2.352.59 3.422.499.963-.52 1.908.303 2.382 1.133.65.42 4.203.306 5.017-.601 4.285 2.043 10.025-1.033 13.99-1.754-2.862-6.093-9.458-9.363-10.096M26.107 116.518c-4.41.146-4.568 8.291-4.625 11.55-.031 1.706-2.652 3.882-3.262 5.624-.763 2.183-.472 4.155-1.46 6.218-1.088-1.756-3.281-1.796-5.042-2.318-1.828-.549-4.159-3.395-5.424-4.825-3.02-3.416-2.645-9.546-1.964-13.673 1.659 3.39 2.209 5.595 6.191 6.187 3.92.582 5.826-3.114 5.671-6.722-.092-2.159-3.473-5.505-5.855-4.931-2.477.598-4.626 3.862-4.437-.489.081-1.857 4.982-5.277 6.45-6.41 2.703-2.087 7.238-3.608 10.468-2.319 1.545.613 6.333 1.725 5.237 4.126-.68 1.494-.922 2.965-1.657 4.549-.701.208-1.047.681-1.038 1.416-.172 1.653-.789.659-.917 1.638.314.077 1.363.351 1.664.379M69.88 51.416c3.089 3.043 4.504 6.77 7.149 10.089 2.878 3.611.215 9.331-1.657 12.668-1.112 1.982-2.072 4-3.777 5.556-.461.42-1.624 1.807-2.333 1.683-.815-.142-.591-1.201-1.612-.7-2.552 1.254-4.179 2.309-7.138 2.146-2.326-.128-3.589-.661-5.965-.36.906-2.844 3.595-4.688 5.475-6.987 1.964-2.403 4.259-4.698 5.869-7.362 3.246-5.368 3.989-10.516 3.989-16.733M43.326 140.795c-4.818 2.144-10.543 1.731-15.792.906-3.053-.474-5.384-.323-6.771-3.427-1.013-2.267-.123-5.291 1.921-6.685 1.909-1.302 5.475-.443 7.683-.422 1.226.012 2.558.114 3.755-.218.56-.155 2.858-.382 3.199-.617 2.517-1.723 4.916 1.138 6.098 2.873 1.93 2.831.737 4.66-.093 7.59M37.593 122.63c1.439.104-.879 6.479-3.518 6.466-3.885-.026-6.819 1.874-9.38-2.327-1.855-3.043 2.331-7.101 5.079-7.903 2.719-.793 6.907 1.393 7.819 3.764M128.155 134.207c2.511 1.135 4.162 2.743 6.799 3.81-.618 1.421 3.616 4.791 3.525 6.881 2.124 2.424 4.695 4.864 5.347 8.186.767 3.904-4.431 2.479-6.468 1.372-1.292-.702-1.693-1.243-1.464-2.569.213-1.236 1.29-.738 1.511-1.408.333-1.035 1.925-.306 2.217-1.487.285-1.139-1.575-1.124-2.088-1.679-.65-.702-.891-2.304-1.772-2.743-1.239-.62-2.118-1.646-2.764-2.85-.719-1.337-.837-3.187-1.896-4.31-.942-.999-2.372-1.949-2.947-3.203M97.978 261.609c1.347-1.493-1.255-2.074-2.315-2.258-1.621-.277-.372-2.299-.402-3.256-.113-3.561 1.528-2.945 4.11-4.298.497-.26 3.589-1.188 4.039-.991 1.035.456.833 3.481.768 4.345-.234 3.148-3.026 6.31-6.2 6.458M18.759 164.611c-2.889-.918-5.708-2.112-8.23-3.812-2.025-1.365-4.875-4.725-.481-4.864 1.162-.037 6.004.572 6.562 1.793.463 1 1.933.144 2.126 1.848.185 1.639.023 3.389.023 5.035M45.588 250.707c-2.443.583-4.702.347-3.34-3.158.25-.644.183-3.393.902-3.51 2.163-.361 3.492-4.617 5.924-1.043 1.324 1.942 2.161 1.473.351 3.836-1.109 1.448-2.496 2.651-3.837 3.875M38.337 100.282c-2.669.613-6.555-1.887-7.726-4.234 2.693-.814 5.781.953 8.566.676.138-.61-.268-.768-1.216-.475.796-.409 3.621-.102 3.253 1.367-.212.845-3.655 1.145-2.877 2.666M27.55 147.535c.654-4.128 3.602-4.2 4.569.042 1.162 5.101-5.028 4.027-4.569-.042" fill="#fefefe" fill-rule="nonzero"/><path d="M79.252 69.378c1.199-.743 2.346-2.09 3.497-.761 1.264 1.459.375 1.782-.345 3.373-.771 1.706-1.849 2.285-3.513.684-.971-.932.029-2.3.361-3.296M84.265 75.125c-.519 4.024-3.703 7.21-5.399 10.852-1.008-2.674.496-3.489 1.555-5.789.514-1.115 2.421-5.481 3.844-5.063M67.219 54.73c-.481-3.002-2.061-4.187-1.315-7.186 1.008 1.283 2.852 6.141 1.315 7.186-.097-.606 0 0 0 0M62.861 43.462c1.859.216 2.315 1.969 3.245 3.497-1.271.074-3.428-2.39-3.245-3.497.4.046 0 0 0 0M67.193 54.75c.802.612.138 3.883-.77 4.216 0-1.35-.462-3.391.77-4.216M62.888 43.437c-.714-.537-4.58-2.936-4.141-3.678 1.334.799 4.013 2.01 4.141 3.678M57.764 40.078L54 39.099c.79-.859 4.197-.276 3.764.979M72.613 82.633l.581 1.631c-1.533.111-1.407-.565-.581-1.631M74.723 83.067l-1.685-1.164c.715-.365 2.607-.27 1.685 1.164M75.749 83.806c.078 1.041-.767 1.045-1.558.87.583-.953.65-1.591 1.558-.87.065.87 0 0 0 0M75.749 83.806c-.627-.505-.758-1.075.25-1.401.334.628.571 1.146-.25 1.401" fill="#fefefe" fill-rule="nonzero"/><path d="M62.127 133.476l.522-.2c-3.799.803-5.37-4.48-5.211-7.176.248-4.218 3.435-5.938 6.79-6.896 4.155-1.132 6.488 3.73 7.695 6.481.81 1.849-2.164 4.873-3.315 6.086-1.421 1.498-4.471 2.532-6.481 1.705m-.786-8.462a40.682 40.682 0 001.804-2.088c-2.745-.979-5.421 5.261-2.98 7.127.266-.319.242-2.54.032-3.177-.35-1.06 1.276-.854 1.144-1.862M81.012 150.08l-.988-.969c4.032-3.284 8.314-7.396 9.351-12.75.343-1.764 1.047-5.191.028-6.354-.657-.747-.073-3.757.201-4.695 2.504 1.982 2.222 10.226 1.076 13.01-1.816 4.412-4.668 10.393-9.668 11.758M76.671 211.357c1.453 1.292 1.9 1.387 3.848 1.387.865-1.334 3.318-3.856 2.619-5.321 2.504-.319-.986-3.381 3.209-2.525-.531 1.371-.762 2.702-1.172 4.103-.356 1.214-1.026 1.296-1.51 2.481-.315.774-1.133 2.362-2.226 1.556.75.586-5.054-.181-1.879.932-2.62.558-3.216-2.717-4.951-2.969.829-2.385.639-5.363.378-7.984 3.455 0 2.537 5.887 1.684 8.34M69.341 154.55c1.802-1.469 4.106-1.671 6.343-2.211-.768 2.089-4.498 2.76-6.343 2.211M85.357 202.375c2.006-5.358 2.897 1.595 0 0M89.321 125.184l-1.361-4.208c1.413.229 2.652 3.291 1.361 4.208M79.96 150.947c-5.233 2.116-1.854-1.116 0 0M86.96 203.382c-2.39 3.075-2.845-1.746 0 0" fill="#231f20" fill-rule="nonzero"/><path d="M61.341 125.014c.131 1.008-1.495.803-1.145 1.863.211.636.234 2.858-.031 3.176-2.442-1.866.235-8.105 2.98-7.127a41.18 41.18 0 01-1.804 2.088" fill="#fefefe" fill-rule="nonzero"/><path d="M76.939 202.675c1.712 4.283.928 5.16.857 6.959-.005.132-.466.993-.419 1.166.485 1.774 1.063 1.839 3.025 1.103 1.962-.735 4.289-9.274 3.648-8.492-.498.609-7.785-2.421-7.111-.736z" fill="#d2c0c0" stroke="#d2c0c0"/><path d="M76.939 202.675c1.712 4.283.928 5.16.857 6.959-.005.132-.466.993-.419 1.166.485 1.774 1.063 1.839 3.025 1.103 1.962-.735 4.289-9.274 3.648-8.492-.498.609-7.785-2.421-7.111-.736zM131.406 227.281c3.824 2.667 5.689 3.287 5.848 3.372 1.632.869 1.083 1.934-.665 3.329-2.277 1.818-10.59-1.827-9.685-2.345.705-.404 2.997-5.406 4.502-4.356zM95.517 253.881c.558 4.592-.544 4.12-.543 4.299.011 1.842 2.732 2.984 4.858 2.802 2.126-.182 5.743-8.397 3.941-9.703-.642-.465-8.476.795-8.256 2.602zM46.568 242.089c-4.584 2.744-3.297 4.223-3.84 5.939-.04.126-.722.833-.72 1.012.01 1.842.562 2.06 2.688 1.878 2.126-.182 6.506-7.031 5.669-6.448-.652.453-2.235-3.316-3.797-2.381zM17.739 158.005c-4.604-1.357-7.568-1.991-7.746-1.974-2.468.244-1.651 1.06-1.201 3.146.45 2.085 10.303 5.626 9.619 4.87-.532-.589 1.075-5.528-.672-6.042z" fill="#d2c0c0" stroke="#d2c0c0"/><defs><image id="_Image1" width="150" height="226" xlink:href="data:image/png;base64,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"/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/headlamp.svg b/go.dev/testdata/golden/images/gophers/headlamp.svg
new file mode 100644
index 0000000..3e815c9
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/headlamp.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 150 263" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M87.201 252.833c-1.841-3.419-10.659-1.653-14.121-2.197-5.099-.803-9.844-2.019-14.436-4.331-8.344-4.203-17.331-11.127-23.519-19.057-3.617-4.636-4.188-10.461-6.541-15.728-1.392-3.117-3.045-6.538-3.23-10.191-.225-4.36-1.587-9.086-2.47-13.392-.183-.891-.933-1.072-1.166-1.836-.077-.253-.082-2.901-.025-3.314.158-1.142-.019-2.29.053-3.434.099-.758.248-1.506.45-2.245-.525.149-.748.052-.671-.29.476.096 1.016-.022 1.504 0-1.672-2.285-2.199-7.511-1.939-10.308.419-4.532-.758-9.081-.462-13.725.167-2.61-.716-10.412 4.139-8.678 1.507.538 1.912 5.025 2.272 6.381.474 1.796.96 3.626 3.174 3.857 4.342.452 6.017-4.754 7.892-7.609.871-1.327 2.771-2.725 4.173-3.479 1.836-.988 3.395-.589 4.857 1.186 1.416 1.718 2.721 3.609 4.312 5.172 1.633 1.606 3.769 1.981 5.546 3.249 1.94 1.381 5.005 1.988 7.352 1.976.63-.004 2.244 1.042 1.875-.64 1.359.101 2.88.929 3.182-.674-3.816-.73-7.353-1.199-11.11-2.538-2.711-.963-7.596-2.936-8.73-5.788-1.668-4.178-2.309-9.329-2.81-13.787-.45-3.999.817-6.987 2.535-10.408 1.547-3.078 3.589-7.558 6.712-9.348 3.409-1.954 7.783-3.752 11.716-3.899 8.989-.338 16.313 5.056 20.141 12.831.997-2.018-2.764-4.237-2.349-5.677.601-2.087-3.883-3.943-5.305-4.579-3.611-1.612-7.097-2.945-10.904-3.999-1.701-.474-1.616-.17-3.787.06-5.917.625-11.246 3.335-14.8 8.167-.926 1.258-2.848 5.567-4.006 6.141-.445 1.849-.394 7.046-3.193 6.789 2.616 3.524-4.176 2.32-4.023.253.166-2.285.917-6.233-.87-8.167-1.374-1.489-3.263-2.156-5.256-2.719-2.548-.718-5.708.387-8.26 1.031l1.004-1.371c.508-.142.91-.389 1.033-.985.254-1.225 2.429-2.288.943-2.783 1.897-2.315 4.861-5.14 7.272-7.084 2.409-1.942 4.954-4.949 7.751-6.036 7.102-2.759 16.318-2.93 23.836-.567 4.326 1.36 8.828 2.176 13.184 3.524 4.351 1.347 7.996 3.823 11.864 6.148 1.797 1.079 3.49 1.761 5.075 2.993.857.665 2.038 1.433 2.95 1.965 2.977 1.738 4.94 4.027 7.977 5.323-.21.703-1.103-.096-1.261.521l3.668 1.08c-1.645 1.273-.068 1.493 1.244 2.487 1.562 1.181 2.492 2.348 3.787 3.73 1.679 1.799 3.364 3.453 5.372 4.849 3.496 2.438 6.345 6.137 9.009 9.563 1.378 1.978 3.411 4.073 4.365 6.285.919 2.13-1.636 6.392-2.318 8.549-.903 2.86-2.25 5.581-3.199 8.438-.561 1.685-.824 3.389-1.266 5.097-.487 1.88-1.825 2.249-.394 3.857-2.216.84.076 1.146-1.298 1.57 2.363 1.187-1.403 13.64 1.965 14.486-.832.273-.556 1.115-.2 1.646.512.765.86 1.979.828 3.027-.04 1.394 1.352 3.442 2.108 4.611.442.685-.007 1.652.321 2.458.509 1.252 1.104 1.607 1.104 2.974-.06.004.274 4.382 1.078 5.003-1.868 1.22-1.427 5.609-1.752 7.733-.187 1.23-3.17 6.089-1.699 6.894-2.479 1.548-2.034 5.609-4.988 6.594-.896.299-5.575 4.224-2.933 5.049-.437.778-2.861 1.17-3.747 2.217-1.202 1.413-2.047 2.973-3.301 4.402-1.713 1.991-5.874 4.687-8.236 5.291-2.733.698-5.359 2.395-7.955 2.622-2.451.214-10.148-.138-11.093 2.784M62.127 133.476c3.687 1.517 9.71-3.115 9.951-6.883.08-1.255-1.039-3.776-1.86-4.748-.93-1.102-3.886-3.166-5.433-2.803-3.926.921-5.526 2.21-7.087 5.903-1.21 2.874.978 9.17 4.95 8.33l-.521.201m18.886 16.602c4.468-1.213 7.325-6.373 9.062-10.331 1.418-3.229 2.639-11.974-.471-14.435-.274.937-.857 3.948-.201 4.694 1.022 1.163.316 4.591-.027 6.355-1.036 5.347-5.318 9.477-9.354 12.749l.991.968m-4.343 61.278c.857-2.452 1.771-8.338-1.682-8.338.257 2.623.45 5.594-.379 7.981 1.735.256 2.33 3.53 4.95 2.971-2.436-.848 1.134-.164 1.637-.706.517-.558 1.213.159 1.938-.792 1.774-2.323 2.14-4.827 3.213-7.574-4.192-.865-.709 2.201-3.209 2.525.65 1.364-1.136 3.032-1.916 4.235-1.372 2.114-3.034 1.046-4.552-.302m-7.329-56.806c1.844.549 5.575-.122 6.343-2.211-2.237.54-4.541.742-6.343 2.211m16.015 47.824c2.894 1.594 2.013-5.357 0 0m3.965-77.19c1.29-.918.053-3.98-1.361-4.208l1.361 4.208m-9.361 25.762c-1.854-1.116-5.234 2.117 0 0m7 52.436c-2.837-1.741-2.4 3.067 0 0" fill="#fefefe" fill-rule="nonzero"/><path d="M49.92 147.845c3.12 1.739 7.623 5.688 11.23 5.688 4.382 0 9.036.866 12.991-1.135 3.847-1.948 9.855-3.527 12.221-7.26l4.271-6.74c.694-1.096-.502-5.386-.632-6.645-.541-5.227-1.467-8.437-3.514-13.298-.662-1.572-1.299-4.738-2.513-5.966-1.528-1.546-5.118-2.45-7.07-3.383-4.486-2.147-8.616-1.786-13.615-1.939-4.001-.123-8.536 4.668-11.76 6.842-1.494 1.008-1.657 3.078-2.212 4.745l-2.425 7.292M51.131 38.688l-6.746-.499c-1.763-.129-5.076 2.31-6.69 3.064-3.748 1.751-6.559 5.684-8.415 9.217-1.034 1.97-1.543 3.228-1.936 5.396-.277 1.527-1.757 5.361-1.058 6.784 1.984 4.038 3.27 8.735 6.987 11.366 1.04.736 4.155 3.856 5.426 3.802l7.354-.312 8.707-.37c1.684-.072 1.743-.857 2.705-2.304l5.161-7.758c.939-1.413 3.086-3.558 3.48-5.233.429-1.822-.837-5.163-1.136-7.003-.315-1.942-.64-3.458-1.349-5.277-.556-1.431-1.927-7.523-3.392-7.988l-9.098-2.885" fill="#fefefe" fill-rule="nonzero"/><path d="M85.708 75.01l-2.701 5.724c-.529 1.119-1.914 5.917-3.047 6.453-1.3.616-5.532-.903-7.005-1.143-2.361-.385-4.752-.623-7.124-.927-8.686-1.112-17.533-4.6-26.263-3.558-2.076.248-5.155.028-7.088.846-2.095.887-4.247 3.517-6 4.968-1.491 1.235-2.608 2.621-3.849 4.12-.575.695 2.435 3.345 3.508 3.413 10.261.647 20.506 1.423 30.758 2.209 3.559.273 6.873.601 10.368 1.281 3.96.771 9.643.799 13.205 2.751 7.712 4.228 16.259 7.829 23.118 13.371 7.869 6.359 15.447 13.135 24.038 18.493 1.487.928 3.453 2.758 5.173 3.181 1.366.336 5.45 2.135 6.488 1.158 1.354-1.272 3.447-2.568 4.13-4.332l3-7.749c.894-2.307.083-4.239-1.382-5.807l-8.947-9.573c-4.51-4.824-8.721-10.22-14.024-14.189a1171.885 1171.885 0 01-18.119-13.831c-2.188-1.706-5.425-2.287-8.004-3.207L85.708 75.01zM129.144 225.998l-4.772 7.158c2.214.697 4.588 1.875 6.927 1.875 4.031 0 5.178.06 8.412-2.301-3.255-3.14-6.176-5.624-10.567-6.732" fill="#fefefe" fill-rule="nonzero"/><use xlink:href="#_Image1" y="37" width="150" height="226"/><path d="M17.108 5.583l1.093-.08c.143.232.038.385-.316.459.928.367 1.052.908 2.418 1.638-1.183.772.626 1.56 1.911 2.242-.386 1.197 2.543 4.027 3.758 4.936 2.45 1.834 4.465 5.724 6.325 8.164 1.776 2.329 3.656 4.439 5.893 6.347-1.45.432-2.261-.946-3.614-.851.566-.79-1.171-1.898-2.016-1.861-.154-1.647 2.084 1.254-.089-1.541-.925-1.191-1.662-1.871-2.714-2.965-1.357-1.411-4.611-3.788-3.908-6.041-.97-.377-3.604-1.092-2.88-2.709.237-.526-1.815-1.151-2.16-1.724-.364-.603-2.347-2.572-2.347-3.001l-2.2-1.624c.01-.016.846-1.716.846-1.389M134.143 228.457c.813-.696 1.408-.515 1.785.545.501-.894 4.869 2.215 4.583 4.047-.399 2.559-4.098 2.614-6.1 3.512l-.457-1.389c1.742-.397 2.836-.956 4.071-2.338 1.571-1.749-2.834-3.68-3.882-4.377M10.281 23.576c2.021-.945 4.159 1.242 5.963 2.048 1.094.488.855 1.216 2.096 1.788 1.069.493 1.998.727 2.566 1.758-.751.308-1.713.55-2.063-.559-.273-.867-2.8-1.259-.702-.203-.611 0-5.433-3.222-5.557-3.031-.442.075-2.452-.566-3-1.1 1.272-.043.167-.216.697-.701 1.381-.646 0 0 0 0M93.012 94.839c-.973.038-4.894-1.172-4.813-2.441.154-2.38 4.413 1.982 4.813 2.441" fill="#231f20" fill-rule="nonzero"/><path d="M17.108 5.583c0-.589-1.909.152-2.316-.63-.858-1.652 3.366-1.332 2.316.63M27.688 34.621l-1.528.188c-.1-.384-.099-1.105 0-1.489 1.207.307 2.214.761 2.919 1.812-.897.121-1.025-.174-1.391-.511-.501.062 0 0 0 0M23.872 31.302l-2.947-.476c.609-.361.572-.642-.113-.841.466-1.76 2.844 1.083 3.06 1.317M93.012 94.839c1.319.05 2.018-.202 2.731 1.103-.858 1.184-2.049-.562-2.731-1.103M5.8 36.682l2.908 1.528c-.949.622-3.66-.239-2.908-1.528M12.349 2.009c1.11-.556 2.788-.072 3.163 1.2-1.488-.075-2.058-.127-3.163-1.2 1.167-.584 0 0 0 0M25.066 32.42c-.238 0-2.665.306-2.545-.319.151-.789 2.575-.752 2.545.319" fill="#231f20" fill-rule="nonzero"/><path d="M95.67 96.072c.341-.794 1.286.65 1.324.838-.106.252-.207.507-.301.764-.57.522-1.228-1.193-1.023-1.602" fill="#231f20" fill-rule="nonzero"/><path d="M98.089 98.496l-1.07-.381c.159-.178.732-1.959-.043-1.183 1.064-.425 1.272.47 1.945 1.241-.854.387-1.132.494-.832.323M1.56 35.162l2.577.956c-1.358.62-1.85.458-2.577-.956M10.281 23.576c.228.042-2.54-.308-2.265-.28 1.167-.783 1.151-.606 2.265.28M12.346 2.005c-1.025-1.002-.948-.354-1.15-1.452.365-.092 1.053-.099 1.415 0 .173 1.32.085 1.804-.265 1.452" fill="#231f20" fill-rule="nonzero"/><path d="M136.925 108.521c-2.683-2.44-5.05-6.809-8.413-8.253-2.27-.98-4.998-7.043-8.08-6.387-.55.126-.82-.074-.811-.602.007-1.136-.536-.696-1.388-1.341-1.556-1.177-.811-1.687-3.042-2.335.925-1.294-6.268-4.567-7.166-4.865.99-1.59-.486-1.013-1.56-1.507-1.559-.717-2.997-1.819-4.486-2.675-.885-.509-2.849-1.901-3.936-1.523-.23.08-2.533-1.226-3.227-1.525-3.422-1.487-6.942-2.582-9.955-4.796-.735-.541-.119-2.323-.299-3.097-.435-1.861-1.982-2.451-2.819-3.981-1.848-3.375-3.895-6.804-4.985-10.458-1.464-.65-1.125-2.572.403-2.641 1.362-.062 2.71-.31 4.082-.31 3.915 0 7.628-.451 11.609-.162 1.813.131 10.093 2.808 10.846 1.988 1.635 1.856 5.412 1.756 7.631 2.779 2.276 1.048 4.967 1.839 6.77 3.509v-.989c1.696.516 4.527 3.356 6.092 4.478.867.622 3.485 1.814 2.879 2.872.951.813 1.319.951 2.568 1.048-.668 1.711 3.933 4.787 4.942 5.941 1.853 2.117 3.068 3.307 4.391 5.907 2.412 4.739 5.879 9.029 7.151 14.21.278 1.121.037 2.353.591 3.422.499.963-.521 1.907.302 2.382 1.132.649.42 4.202.306 5.017-.601 4.285 2.044 10.025-1.033 13.99-1.75-2.862-6.096-9.459-9.363-10.096M26.107 116.518c-4.408.146-4.57 8.292-4.625 11.55-.029 1.706-2.652 3.882-3.261 5.624-.764 2.183-.473 4.155-1.461 6.218-1.086-1.755-3.281-1.797-5.042-2.318-1.828-.55-4.159-3.395-5.424-4.825-3.019-3.415-2.647-9.546-1.963-13.673 1.66 3.389 2.209 5.595 6.19 6.187 3.921.582 5.826-3.114 5.672-6.722-.092-2.159-3.473-5.505-5.856-4.931-2.481.599-4.62 3.861-4.437-.489.079-1.854 4.985-5.278 6.45-6.41 2.703-2.087 7.238-3.608 10.468-2.319 1.546.613 6.332 1.724 5.237 4.126-.68 1.493-.921 2.964-1.657 4.549-.701.208-1.047.681-1.037 1.416-.175 1.668-.782.645-.918 1.638.314.077 1.363.351 1.664.379M69.879 51.416c3.09 3.044 4.505 6.77 7.15 10.089 2.877 3.61.217 9.333-1.657 12.668-1.114 1.982-2.071 4-3.777 5.556-.461.42-1.625 1.807-2.334 1.683-.815-.142-.59-1.201-1.611-.7-2.552 1.253-4.179 2.309-7.138 2.146-2.326-.128-3.59-.661-5.966-.36.906-2.844 3.596-4.688 5.475-6.987 1.965-2.403 4.259-4.698 5.869-7.362 3.245-5.37 3.989-10.514 3.989-16.733M43.325 140.794c-4.816 2.146-10.546 1.73-15.792.906-3.056-.474-5.38-.324-6.771-3.427-1.014-2.267-.123-5.291 1.922-6.685 1.909-1.302 5.475-.443 7.683-.422 1.226.012 2.557.114 3.754-.218.571-.158 2.849-.378 3.2-.617 2.517-1.723 4.916 1.139 6.098 2.873 1.93 2.831.736 4.66-.094 7.59M37.593 122.63c1.438.104-.878 6.479-3.518 6.466-3.886-.026-6.819 1.874-9.38-2.327-1.855-3.043 2.331-7.1 5.08-7.903 2.72-.794 6.903 1.394 7.818 3.764M128.155 134.207c2.512 1.135 4.161 2.743 6.799 3.81-.618 1.42 3.616 4.792 3.525 6.881 2.124 2.425 4.693 4.863 5.347 8.186.768 3.904-4.431 2.479-6.468 1.372-1.292-.702-1.693-1.243-1.464-2.569.209-1.215 1.31-.764 1.509-1.408.335-1.035 1.927-.305 2.219-1.487.285-1.139-1.575-1.124-2.089-1.679-.649-.7-.89-2.306-1.771-2.743-1.239-.62-2.118-1.646-2.764-2.85-.717-1.336-.838-3.188-1.896-4.31-.942-.998-2.372-1.95-2.947-3.203M97.977 261.609c1.348-1.492-1.252-2.073-2.313-2.258-1.621-.277-.373-2.299-.403-3.256-.114-3.562 1.528-2.944 4.109-4.298.497-.26 3.591-1.188 4.04-.991 1.036.456.834 3.48.769 4.345-.236 3.149-3.027 6.31-6.202 6.458M18.759 164.611c-2.889-.918-5.708-2.113-8.23-3.812-2.027-1.365-4.875-4.725-.48-4.864 1.161-.037 6.003.572 6.561 1.793.447.994 1.934.149 2.126 1.848.184 1.639.023 3.389.023 5.035M45.588 250.707c-2.444.584-4.7.346-3.339-3.158.25-.644.183-3.393.901-3.51 2.163-.36 3.492-4.617 5.924-1.043 1.325 1.941 2.161 1.473.351 3.836-1.109 1.448-2.495 2.651-3.837 3.875M38.337 100.282c-2.672.614-6.55-1.888-7.726-4.234 2.692-.815 5.781.954 8.566.676.138-.609-.268-.768-1.216-.475.796-.408 3.623-.102 3.253 1.367-.213.85-3.649 1.138-2.877 2.666M27.55 147.535c.654-4.128 3.602-4.2 4.569.042 1.163 5.1-5.028 4.028-4.569-.042" fill="#fefefe" fill-rule="nonzero"/><path d="M79.251 69.378c1.2-.743 2.346-2.088 3.497-.761 1.267 1.459.376 1.781-.345 3.373-.771 1.706-1.847 2.285-3.512.684-.979-.939.042-2.291.36-3.296M84.265 75.125c-.513 4.022-3.704 7.213-5.399 10.852-1.009-2.676.496-3.488 1.556-5.789.514-1.115 2.421-5.481 3.843-5.063M67.218 54.729c-.481-3.002-2.059-4.187-1.315-7.186 1.008 1.283 2.854 6.137 1.315 7.186-.097-.606 0 0 0 0M62.861 43.462c1.86.216 2.314 1.969 3.245 3.497-1.271.074-3.428-2.389-3.245-3.497.399.046 0 0 0 0M67.193 54.75c.803.612.138 3.883-.771 4.216 0-1.35-.46-3.391.771-4.216M62.888 43.437c-.714-.537-4.58-2.936-4.141-3.678 1.333.798 4.014 2.01 4.141 3.678M57.763 40.078l-3.764-.979c.789-.857 4.201-.275 3.764.979M72.613 82.633l.581 1.631c-1.531.111-1.408-.565-.581-1.631M74.723 83.067l-1.685-1.164c.715-.365 2.606-.27 1.685 1.164M75.749 83.806c.078 1.041-.767 1.045-1.558.87.583-.953.651-1.591 1.558-.87.065.87 0 0 0 0M75.749 83.806c-.628-.505-.758-1.075.25-1.401.334.628.571 1.146-.25 1.401" fill="#fefefe" fill-rule="nonzero"/><path d="M62.127 133.476l.522-.2c-3.8.804-5.369-4.48-5.211-7.176.246-4.212 3.436-5.947 6.791-6.896 4.153-1.135 6.488 3.733 7.694 6.481.811 1.848-2.165 4.874-3.316 6.086-1.42 1.498-4.47 2.532-6.48 1.705m-.786-8.462a40.26 40.26 0 001.804-2.088c-2.746-.979-5.422 5.26-2.98 7.127.266-.313.241-2.543.031-3.177-.353-1.071 1.3-.844 1.145-1.862M81.011 150.08l-.987-.969c4.035-3.283 8.313-7.397 9.352-12.75.343-1.765 1.047-5.191.027-6.354-.659-.75-.07-3.753.201-4.695 2.506 1.977 2.221 10.229 1.076 13.01-1.816 4.412-4.668 10.394-9.669 11.758M76.671 211.357c1.453 1.293 1.9 1.387 3.849 1.387.865-1.334 3.317-3.855 2.618-5.321 2.505-.32-.987-3.38 3.21-2.525-.537 1.37-.762 2.701-1.173 4.103-.356 1.213-1.025 1.297-1.509 2.481-.315.773-1.134 2.363-2.226 1.556.741.561-5.046-.175-1.879.932-2.621.558-3.216-2.717-4.952-2.969.826-2.388.64-5.36.378-7.984 3.455 0 2.537 5.887 1.684 8.34M69.341 154.55c1.801-1.47 4.107-1.671 6.344-2.211-.768 2.089-4.499 2.761-6.344 2.211M85.357 202.374c2.006-5.358 2.897 1.595 0 0M89.321 125.184l-1.361-4.208c1.412.229 2.651 3.291 1.361 4.208M79.96 150.947c-5.233 2.116-1.854-1.116 0 0M86.96 203.382c-2.399 3.067-2.837-1.741 0 0" fill="#231f20" fill-rule="nonzero"/><path d="M61.341 125.014c.155 1.019-1.498.792-1.145 1.863.21.633.235 2.863-.031 3.176-2.442-1.866.235-8.105 2.98-7.127a40.26 40.26 0 01-1.804 2.088" fill="#fefefe" fill-rule="nonzero"/><defs><image id="_Image1" width="150" height="226" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAADiCAYAAACssj41AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOyddVhU2RvHv3cGaSRFBRWUEFBAVAxQUcQGTMDubtTVdXWNde3udm0FLBQbFQVFwMBGkAbplhxm3t8fOLMiITEzwP74PM994NY55977nZPveQ9DRKhL8Hg8ioqMwqePHxESEoLc3Bzk5+cjPz8fBQUFKMgvgIamBlrp6EBXVxc6urpo2LAhU9Pp/n9DoqYTUBHi4uLo1s2b8PN9jgB/f2RlZf3ynsZNmkBbWxvRUVFgsVjkNGokxk+cCDk5uXqRiQGmtuZYRETPnj7DmVOn8O79e7Q3M4OhkREMDQ2hoqaKgoIC5OflISsrC19jv+Lr16+IjY5BwIsAZKSnw9jYGN169EBXi6547PUYp0+ehLyCPKZMnYpxEybUC0zE1Dph5WTnkJurK14GBKCtiTF69OwJfX19MAxTISHweDz68OEDnnh54Yb7dYSGhgIA2Gw21q1fjzOnTiEuPh7Tpk/H1GlTwZaQqBeYKCCiWrM9efyYLDp3oYP79xOXyyUej4fqbJwCDp07c4batzMjHS1tMm3Tlh4/8qJNGzaQjpY2TZsyhXJycqimn/u/uNWKHCsjI4M2rPsbXo8eYYSTI6ZNnw5FRUWh5SQZGRm0asVK3Lp5E0SEaTNmIO7rV9z08ECHjh1x5PgxocZXTy0oCu/fu0erVqxEKz097Nm7ByoqKiL5wBwOhyaMHY8Afz8AgJqaGkzN2uGh5wPo6evhn1On0LhJk3pxCYuazC6PHTlCOlra5DRiBOXl5VW76PvVlpaaSr2trEhHS5t0tLQp6FMQXTh3nnS0tGnE0GHE4/Hqi0UhbTUW8Yljx0hHS5usrXpSakqKyEXF3z5+/CgQlv0gW/r27RtNGDuWdLS06diRI1RYWFgvrroqLN9nzwSV6dDQULGJir+NHzNOIC7b/gPozKlTpKvdknS0tGmwrR29CXxTL65qbmKvY+Vk59DAfv0QExODP1evxviJE8Rer3ns5UVTJ00W7MvIyCA/Px88Hg8AwDAMDhw+hD59+9bXuaoIS9wRHjt6FDExMWjVSgejx44Rd/QAgO49eqBR48aCfS0tLdja2Qn2iQgrl/+B9LS0Sv/qiIh4PF7NN7VrGLEO6fB4PLrs5gYAWPbH75Cooc5JFovFdLO0pKtXrgAA5OTlMWPWLFx3dxdck5KSgrWr12DH7l1UVudsZmYmuV+9BteLFxEWFoZCbiG4hVywWCyoN1YnDQ1NNG3aFBqaGtDQ0ERTjabQ1NREs+bNoaCg8J/ODcUqLL/nzxEbGwsLS0v0srYWZ9QlsOhmCb6wgj59gq6eLqx7W+Phg4eCa25cvw7tltqYO38+sdlshogoKysLz319ceP6dTz0fID8/PwSYfN4PMTHxSM+Lr7M+BUVFalZ8+Zo3rw5mrdojjZt26KdmRk0NTUrPMpQmxFrHevwwUO0fetW3PG8j5YtW9boy4uLi6MeFpaC/UtXryAkOBjLl/0OJSUlMCwGaalpAABJSUk0btIEycnJyM3JEWm6VFVV0a69Gdq1a4euFhYwbdeuTgpNrDnW19hYzJs/v8ZFBQDq6upgGAb8H5bnvfsY5jACAKChqYnVa9dg7KjR4HA4KCgoQHRUFABAR0cHffr2halZO0hISIBhGDAMAxaLBWlpGcjKykBGVhayMrKQkZWBZIMGKOBwisx6fjDvifsaBz8/Pzz39cXHDx8E6UhJScGD+554cN8TANCsWTPY2tnRIHs7GBgY1BmRiTXH8n7yhCwsLcFisWrFy+lo1p4y0tMBALp6ejh89Ch69+wJC0tLnD53lrnu7k6LFiwUXK+qqgqf575o0KCBUNOfkZFBL/wD4O/vjzeBr/H+3Xvk5eWVuE5HVxe2dnYYPGQwWmhp1Yp3WBZiaxXGxsZSq1atao2oAEBJsaHg/y8hIXj18iUAQFFJEQBgP3gwM3/hv8JKz0hHZmam0NOhqKjI9O5jwyxf8Qdz0c2NefP+HXwD/PH8RQBGjh4luC70yxfs3rkTvXv2wvy5c+nTx4+1tvUpNmEdP3q01F9hTaKopCL4v2nTpkhITCg6rqgoOD5vwXzYDx4MAOAWcnH44CGRp4stIcE0atSIUVNTY/7esIG5cesm5s6fB0MjIwBF3SG3PG7CbuAgTJ00mV6+eFHrBCYWYWVlZZHrRRcUFHDEEV2FUVFREvw/3GEE3rwOBAAoKf57nGEYZuOWzWjTti0A4NyZM0hMSBDrhzQ0MmIWLlrE3Lh1k/F/9RK79u6Bg5MT1NXV4fXoEZxGOGCUoxN5PXpUa/rQxCKs9+/eIS8vD/LycuKIrsI0/CFnUm/cGOnpRa1ARSWlYtdJSUkxa/5aCwDIz8/HwQMHxJfIn1BRUWFs7eyYjZs3MU+ePcXe/fth3skcAf7+mDppMnr37IWjh49QWmrlO3eFiViEFfTpE9gSbDTV0BBHdBVGXl5e8H9EeATCQsMAFC8K+Zi1b8/Y2dsDAC6ev4CvX7/WeM4gISHBDBg0kLng6spcv+kBy26WiI6KwuaNG2HZpQsWOzvT61evaiSdYhHW56DPaNFCC2w2u9ZU3AEUm5Rx4tgxpKSkAABUVFVKvf6335dBWloaHA4HB/ftF0saK4pRmzbMyTNnsGP3LqiqqsK8kzncr16Dw7DhGDtqNAX4B4hVYGIRlqSkJNgSbHFEVWGio6LI38+v1HNm7duXelxDQ4OZNmM6AMDV1QUx0dE1nmv9CMMwjP3gwcy9hw9w+NgxrFy1CmwJNp77+mKUoyMWzptPubm5YkmzWISl1qgRIsMjwOVya82HmD1rNhLiE0ocNzQ0hKqqapk56/QZM6DeuDG4hVzs27NXpGmsKoqKioy0tDQzcfIk5qKrK5o1awYA8LhxA2NGjkRiYqLIv4NYhNVIvRE4HA6+xsaKI7oKIdlAstTjXS0tSz3OR0ZWlpk6bSoA4OqVK4gIj6g1P5bSMGvfnrlx+xaGDBsKAHj75i1GOToiIT5epOkWj7AaNQIAhIWFiSO6CpGfV/qYX89ePX95r4lpOwAAl8vF3t27hZkskaCgoMBs27GD2blnNxQUFBAZEYnRI0eKVFxiFZaP91NxRPdLcnNz6cuX0BLH27Rti64WFr+838DQQPD/dXd3vAkMrNW5Fh87e3vG485tmLZrh8iISIwZNUpk4hJbHQsALpw7i9TU1Br/CE99fMDlckscn7dgfoUGeeXl5RmN710nRIS5s2ajpvuNKoqmpiZz8sxpGJsYIyI8AmNHjRZJh694hKWmBqCoc/HEsWPiiLJcrl29WuKYgYEBetvYVOh+IqL0jHTBflxcHJwXzK9VjZPyUFBQYP45dQpGbdogPDwcY0aOErq4xCIsKSkpxtTUFABw+uSpKpn8Cot7d+7S3dt3ih1jGAbLV66ssElKfHw8crKL19F8vH1woJb1bZWHkrIy4+LmiqW//46GiooY5eSEuLg4oX0XsQ1CjxwzGgCQm5uLtWvWgMQ9iwPAndu3ad6cOSWOL3B2hmU3ywp33oZ++QKgSJATJ0+C56NHWODsjEMHDoilKS8sZGRlmekzZzDbdu5AZEQkRjk4Cq9vTlzTgXKys6ldW2PBtKsL58+LddpXRkYGdeloLoifv02eMJG4XG6lpnutWvkn6Whpk9ejR4L7eDweOQ4fQXdu365UWLVlGzNyFOloaZNF5y4UFhZW7WcQW44lIyvLjBk3TrC/bs1aBAUFie3XvW3LFiQlJRU7pqmpie07d1TKRiwtNY0uu7nBqE0bWPXsKbiPiJCVlVmunXttZt/BA9DR1UVCfDxGOTgiJDi4Wt9GrNO/5i9cIDA/yc/Px7zZc5CTkyNycR09fJjOnz1X7FiDBg2w7+BBKCkrV2r88szp08jLy4Nlt+Idqbdv3ULw52AkJSZWP8E1gJKSEnPi1Ek0a94cycnJGD1yJII/V0Nc4s5yw8PCydjISFAUOc+bLxSXRWVt/Kn8P28Xzp2vdHafk5NDHc2KXCLZDRxE2d+yif9M5mbtSUdLm4ba21NeXl6dLA6JCAnx8TSgb1/S0dKmruadKCoyskrPIvYJq9ottZl169cL9q9fv45VK1aAWyjcpnpeXh79/dc6Wr/u7xLnhg0fDqdRIysd5pXLlwUzdz5++AC7QQNxcP9+mjh+PFJTUwEUDZksnDcfhYWFdaYS/yPqjRsz511c0M7MDImJiZgwbjySkpIq/Sw15sZoy6ZNdOTQYcG+dW8b7NyzC7KystU2rQl8/Zr++P13hASHlDjX1tgYF1xdICMjU6l4uFwu9bHujajIyApd30JLC3PmzcWQIUPqpNfAnOwcmjl9Op49fQoDAwOcd3WplJNgsedYfJYsXYrBQ4cI9h8+8ESfnr1w5fLlKpvXRkZG0oK588hh2PBSRaWrV+QHq7KiAoo6VcsTFVuCjRV/rkTjJk0AAFGRkVi25Df07GGF3Tt3Unh4eJ3KwWTlZJkDhw9BV08PQUFBmDZ5CgoKCir8DDXqeI3D4dC0yZPh4+1T7LiBkRFGjBgOmz59oNms2S9FEBIcQgcP7MfNGx4Cxx4/07xFC7i4uUK9ceNKiyo1NZX69rZBelpamdes+HMl+vTti57dewiOKSsrQ0VVBWGhYSAimJqaYvDQoRhkZ1uuaU5tIjoqioYOHoL0tDRMmzEdy5Yvr1C6a9yjX3Z2No1ydMLHDx9KPa/fujXMO5mjceMmaNykMRo3boy8vHxER0UiOioGwV+C8fzps3LjUG/cGK6X3NCsefMqfcwlixbRtSslh4H4mJia4PK1azh/9ixW/7kKrVvrY++BA9Bu2RIMwzB5eXn0OSgIz32f4+rlywgLC4NlN0sMHTYcg+xsa8yHRUW55XGT5s+dC4ZhcO7iBXTq3PmX6a1xYQFAUlISOQwdhpiYGKGHLScnh0tXr0BPX79KH8/lwkVasXx5udecOHUS3bp3h93AgYgIi4D7zRvQ0dUtNT4iondv38LNxRUeN26gYcOGmDFrJoYNHw4ZIdQvRQER0ZSJk/Dk8WN06NgRLpfc6oawACAsLIwch48ot7ipLAzD4PDRo7C26V2lD3btylX6bfFilPeO2nfoAJdLbrh+zR2LnZ2x7I/lmDptWoXiy8vLI89793Hyn5MIDQuFvb0dhjs4wNTUtNYJLDoqivr36Yv8/Hzcvnf3lz/UGqu8/wiXy6U3rwMhJSUl1HAnTJpYKVFlZ2dTZmYm8Xg8unj+Ai1dsqRcUQHAkqW/gcPhYOf27ZCTk8PIUaPKvf5HpKWlGVt7O8btyiUcOHgQYaFhGD54CKZNnkJRkZG14xf/neYtWvxr73/R5ZfX12iORUR07+5d7Ni2XTCwKyykpaXh5eMNNTW1coWVkZFBt2/egvu1a3j54gVYLBZUVFWRmPCvPXyTpk3A4/KQ+FOvet9+/XDg8CHm0IEDtG3LVkydNg3L/qhY5bYsXr54SQf378ezp08xfeYMzJw9u0qtWFGQm5NDNta9kZ+Xh6d+zyElJVVmumpEWFwul27fuoVD+w8gKCio2Dn1Jk3Q06oHdHT1kJSUhMTEBCQmJCIhPgEJCfHIqaAbIR1dXQwdNhRSUlJQUVFFk6ZNICEhgeTkZKSkpCA5KRmfPn6E16NH4HDKnqEtJyeH1gYGmDl7Ng7u34+PHz4gPz8fEhISuOvpCUkpSfS17g2AgZfPE6G5E3/79i1tWLcO0TGxWOi8EP0HDKgVi025X7tGixc6Y/uunRg8ZEjtEdadW7dp65bNiIwo3idk3qkznBc7o6O5ebl2Ubm5uZSSnIxk/paUhJDgEAS8eIHPnz6V2d1QVQ4cPoS5s2ajeYvmmDlrFrZt2YqUlBR0694NJ8+cYebNmUO3b97CnHnzsHCRs1A/PBHRTQ8PbFy/AcnJyejXvx82bNpUo94AiUhQF/a4c7vMXEuswsrPz6d+vW0ErT8ZGRn0698fDk6OMO/Uqdq+n759+0aBr1/j5YuXeP3qNb58CS51ildlUFBQQH5+PkY4OCA7Oxvu164BAEaOHoWBgwZh/JixUFZWxsMnjyEvLy+SD56cnCxoNV92vwYTE5Ma9ZP19s1bGjZ4MGbOno0lS3+rOWHFx8XTt29Z2LVjJ+7cvo0uXbti6PBh6Ne/v8hX4fr27RuFBAcj6NMnvH33Do/ueyLl+7geAKipqmK4owPy8vNx7fIVZGRkVChcYxNj5OTkIvTLFyxfuRKTp0wW6XMkJiTQqpV/4oGnJzQ0NDDC0QHTZ86EtLR0jQhs6eIl5H7tGtyuXIGJqUmJNIhcWDnZOeQ0YgQ+ffoEi27dsOavtTXq0Y/L5dLLFy/w6MFDKKsoY9SYMYKipaCggDzv34fLhQvwfeb7yxYhH3ePGzBq00bkz0RE9NjrMY4cOoQAf380a94cO3fvgln79mJ/n4mJidTbqieaNm0K95seJRsYojTB+PLlC40ZOYoMdPXoyuXLIjWPEfYW9/UrnTh2jEY6OFGXTp1p6uTJdO/uXfr06RO5uLiQw9ChAhOcSeMniHV1DR6Ph6TEJFq1ciUZ6unTLY+bNWKms3XTZtLR0qa1q1eXiF9kkV5ycyP9VjpkpN+aHj9+XGcEVZnt3du3NG70aNLR0qZ2bdrSvj17KD4uTmzPWlhYSJMnTCQdLW06ffKU2MWVlpZGpm3ako6WNnk/8S4Wv8givXzpEuloadO9O3f/k6Lib1wul7wePaKB343jBvbtSx8/fqSPHz6I5bnz8vJo1YqVpKOlTZs3bqy0/X51t7279whs5XNzcwVxiySygoIC6mvdm8aOHPWfFtWPG4fDITcXVxrUbwA5DR9OOlra9M/x42J7/ktubqSvo0Ozps8o9oHFkWu11tElHS1tunLpsmiF5XrxIuloadOMKdPqVL1KWNvHDx/o1MmT9OTxY+JwOGJ7/pcvXpC5WXsaNngIJcTHi01c06dOJR0tbRo2eIhohTV21GhBxXbGlGkUFhZGnALxveD/5y0mJoZs+/Unc7P2FPQpSCzi8rhxQ/C9P378SEQiWv3rqc9T+v233xAXFyc4xmKz0LxZM2hpt0QLrRbQ0NCAgoIC5OUVIK+gAHkFecjLy38/Jg95OXmwJWqXB8C6Qm5ODi1ZtBhZWZk4efq0yE2jc3NzqVOHjsjNycHS33/H9JkzGJH1Y+Xn55PrRRfs37sXycnJVQpDRkamSHRy8lBQkINCw4ZQUlSGoooSlBSVoKysBCVlZSgpKkFJ8L8iFBo2rHVuKcUNj8ejXdt3wP3aNUyeNhWOjk6QlROdvdfEcePIx9sH3Xv0wD+nT4lOWHzy8vLo/NmzOHjggGCGCx9JSUmoqqoiKSkJhYWFQouTYRg0bNgQSkqKUG/cFIZGhjAyMoKhkSH09PWFvrJEbebEseO0cf16yMnJwXnxYkyYNFEkw0G7d+6kvbv3QEZGBq/fvRXfWGFycjItWrAQz54W+chSb9wYN2/fhrKKMsPj8ehrbCyioqIQGxODmJgYREVGoU/fvjh18iRevnghtHSw2Wzo6ekXCa2NIQyNjGBgaPifXsX+4oULtHL5H2AYBnb29tiweZPQTXGePH5MkydMBAA8fOwl3kFoLpdL+/fuw97du0FE6GFlhSPHj5Vr852SkkKWnbuUm6MpKStDW1sbcrKykFNQgJycHOTl5SAvJw8e8ZCUlISkxEQkJCQiKTERaaVYqWo2awYjIyO079gBPXv2hI6ubp1ZEKkieD3yos0bN+JLSAjaGhvj7IXzQh00z8jIoA7fPR1edHOrGXuspz5PaemSJUiIj4dZ+/bYs38fmjZtWuwhiYg8btzA7p07EREeUex+dXV1dOrSBZ06d0Knzp3RqlWrSomgsLCQYmJi8PrVK7wMeIkXAf4IDS3u4a+phgaselqhl7U1unbtKnJ79JcvXpKqmiq0tLREJmiPGzdo9co/kZmZCQtLSxw/+Y/QqgVfv34lK8tuICLsO3Cg5ixIc7JzaN/ePThx7Djk5eUxacoUOI50QqNGjRigaG3DrZs3C65v0KABxowbi7HjxqF5ixZCX+wpNTWVXr18CX8/Pzz1eYbgz/8aILIl2OjStSt69uwJq169RDKInpycTJPGTUBaeirWb9yIBg0awMKy4q6VKkpiQgI5jnBAbEwMBtnaYseunUJpNQa+fk2Ow0eAx+NhzV9ra34yRWhoKC1dtBhv3rwBW4KNtm3aQlpGBqFfvghak33798fqtWugrq4utqIpKSmJfJ89g4/3Uzz1flLMLLmZlhZ6WVnBqldPdOnatVwT3cqQlZVFa1atgsf1G2jevBmOnjghmEImjPD5JCYk0MoVK/DowUMMsrXF9l07hTIFbe7s2XTn1m3MnjtXuMIqKCig/Pz8Sls4fvv2jUaOcChhpiwhIYE/V6/CqDFjarS+Q0QUFhqKpz4+eOrzFL6+voKVVqWkpNCtezf0tLZGr1690LhJk2qlk4jI5cIFbFy/Ad2temD4iBHoZW0tkmf38famKRMnwaZPH+zYvavatl2bNmygY0eOwsHJqerCIiL6+OEDbt+8hfv37iE2NlawbJxVz56YMGkiuvfoUWFBjBs9hnyf/TvxVElJCQcOH4Z5J/NaV4EuLCykN4GBeOrzFE+9vREYGAger8gk2sDICNbW1rDubQ1jE5MqF9n8XCX4czDad2gPS8tuGGg7SOituctubvT70mUwa98eh48drZbN/qGDB2nb5i3oZW1deWERET3w9MSu7TtK5DA/06VrV/y1/m+0atWq3MS+e/uORjo4CBbubtmyJY6cOA5tbe1aJ6rSSE5KoqNHjuLs6dMoKCgQHFdWVkavXtbo2bsXunXvXumcPDc3l7pbWOJbVhZa6bRCYmISXNxcy5wMW1X27dlLu3fuRPMWLXDqzOkqr966ft3f9M/x4+jUuXPlhPXs6VPavmUr3rx5IzhmamoKi27dYN7JHKqqqmCxWMjJyUHg69cI8A9AgL8/xk0YjxmzZpX6a4uMiCSHYcMEboA6d+2Kffv3VdohWm0gIT6Bjhw8hPPnz5XoHpGWlcW0adMwZdrUSplj3751i7p07YoAP39s3LgRTdQb4cyFC0Kdlk9EtHL5H3B1cYGGhgYuuLlCU1Oz0uHPnzuXbnncRKfOnSs2CB34+jXxfVTytzkzZ9GbwDe/HORMSkqiv/9aR9ZWVuTq4kKFhYX047me3XsIwly6ZAkVFBTU+cHqmOhoWr7sd9JrpVPC4VvHdmZ06uRJys/Pr/RzrvvrL9LR0qa2BobkMGwYJSYmCu1dcQo49Ptvv5GOljZZdetOcV/jKj2APWv6DNLR0qaRDo70yxzrpocHLVqwUOBwX0lZGVu2bq30tPXEhARaMG8e0tLSMcjWFi1atMCJ48fx4f17AMCiJUswc/YssVXSORwOfQn5gjdvAvHh3TuEhYXja2wsVNXU0LZtGwweOhTtzMyqlZ6I8HDatGEjHnh6ljjXrEULLF6yGAMHDapwPYyIKPD1a/g+88WTx16Ij0/AkqW/waZPH6FNqrh6+TKtW/sXVNVUcf7ixUp555k7azbduX27aMZVecK65XGTnBcsEIiqS9eu2L5zR5VbPs99fWnsqNHFjklISGDL9u2ws7cTuaAyMzLp4oXzePjgIT5++IDc3Nxi55VVVaGh0RTSUtJIS0+HUkNFdO/ZA4OHDEHzKnqqAYCnPj60Yd3fCA4OLnHOspslNm3diiaVeKfh4eE0sG8/FBYWoqN5R+zas6fardEfSU9NpTVr1iDo4yecc7n4y9nkfPjdDeadOpVdFAYGBgosA/Vb6dCBffuKFWNV2byfeBcrFkyM2pCfn5/Ii764uDja8Pd6amNgWCx++0G2tGvHTgoMDKTc3NxS05Genk4PPD3pzp079PDBA0pPT69SevPz8+nM6dNkZmxSong0MzYh96vXKmUU+fXrV1owd54gjNFOIynw9WuhvcuszEzqbmlJ/fv0rbBd17Ilv30vCh1KvyAtNZW6d7UgHS1tMtTTJ89796slKP7Gt4/m1xNevnwpUlHl5eXR5g2bBD8QHS1t6ta5C+3Ytp0iwiMqHXdOTg6dOvEPrVz+Bz3w9KxSPSk1NZX+WvNXqfWvubNmV2q2T0pKCk2dPLlYGGtXrxGa1W5YWBjZD7IlvZataPmyZZSQkFCuDnZu3162sLK/ZdMoRydBjvLc11coosrPz6eunToLxPrs6VORiurr16/kMKzI9txIvzUtmDePvJ88EYqpcEZGBm3fuo2sLLvR9i1bKTU1tdJhhgQH06Tx40uIq0tHc/Lx9qlweFwul3bv3EntTUwFEzp2bNsuNHHl5ubSSAcHgRfliPCIMvVw/tw5QeW92InMzEwaMXRYUevFzIzevX0rFFEREVwuXBQUqw89H4hUVD7e3mRu1p70WrairZs3V7n4+tWWmJhIc2fNJtM2bWn3zp2UkZFR6XgePXhAFp27FBOXfisdOnHsWKXEUVhYSPv27BWE0cOym1BmCt2+eYsG9R8gCLd7VwuKjY0tVRcP7nuSjpY2TZ86tfiJv9cWNWf1dXToy5cvQhNVIYdDvXpYkY6WNrlevChSUXnev0+62i1p+ODB9Dnos8jrbxwOh/5Y9jvpaGlTp/Yd6E1gYKXjTElJoemTp5TIvX5zXlxm3a+0Le7rV+rR1bJYHfapT/VLBg6HQ1s3bxaEa21lRUlJSSX04fXoEeloadOyJb/9ezAhPp4M9fRJR0ubBtvalbgpIyODCjmcKont7p07gkSdPnVKZB87wN+fDPX0aWDfvvTt2zex9YdxuVwS9DG1NqCI8PBKx83lcunEsWOk/1Pdy2mEI2VnZ1c4vNzcXLp65Uqx3O+6u7tQ3sWHDx+IX0GfPGEi8Xi8YnrwvHefdLS0adOGDSTw6HfxwkXBcAS/e4HH49GRQ4fJyrIbtTcxRTtjEziNcCCPG2xw3IkAACAASURBVDeIiCrcZf8mMBBA0ZqADo6OlWj4VpyQ4BCaPmUKZOTkcOjoUaH4i68oDMMwf6xYgbnz5yM3Lw/eP3mBrmgYEydPZlwuXxIsDg4ALwL8MX/OHHA4nAq9bykpKcbO3l6wBDGXy4Xz/AX45/iJalsbGBoaMl0sugIAHnt54fy54svIcAqL/IwpKSkXuYokIvK4fl1wwaePH7Fj23Ya6eCILZs2Ifb7IuG5ubl4+eIFFs6bjzEjRyE3N/eXiY0IjyDfZ8/AMAw2bd0iNBOTH0lMSKDJEyYgMzML23dsr7J35OrAMAyzwHkhs3CRM3x/4cW5PExNTRl3jxvoP3Cg4JjXIy+MHz0a6//+m+IrsNQui8ViDhw+jAE/hLHh77+xecPGSmUIP1NYWEjRMTFgs9kAgI1/r0dYWJggvKTEokWwlJW/C+vjhw8lFgI/sG8fXr18WWYk/n5+2L516y8Tw+Vx0bJVKxw6chht2rZlkhIT6fWrV3Tvzj06e/oMedy4QdVZqImIaPmyZYiPj4dlt+7FVuSqCWbNmYPMzAyEfP5c5WdqqKjI7Nm3F+s2rIekpCQA4MWLlzh5/AT6WveG5/37vwy7QYMGzM49uzHC6d8S4tjRo/hrzRrwqrhAg4SEBDN37lzm3sMHMDY2Rl5eHhYvXIjv/Zt08cJ5AICyinJRz/vG9Rvo+NGjlY6IzWbjU0hwmUMSUZGRNGHceHTu0gVqaqrweuSFoE+fSlwnJSWFXtbWcBo9ChYWFpUyNTl16hT9vWYtAPG5E/oVX0JCaNHCRXC55FptM5fY2FjauX0H3H9YblhNVRV3Hz6okOtIIqLNGzfi+NF/l0wePW4s1v71V7XStdjZma5fcwcAzJ0/D5bdumGUoxOA7zbvPB6PultYVHmdvZdvAsuc4TJp/ATyfvKk1PuaNW8OeTm5EqY3FpYWWLJ0KYxNSjrz+pmY6Gjq29sGHA4H9kMGY/vOnTUuKj57du8h8AjznRcIJU3v372jjes3wN/PDwBgbNwWy/74A527dKmQuA7uP4Cd27cLjj3ze45GVbTIJSLKzMiAo4Mjwr58AYvFgoGhoWARiMdPfcBKS0srJqrOXbpUKpLcnNxSj4eFhZUQFYvFwsxZs+Dl/QRe3k8Yjzu3GS8fb6xY9WfR+BKAZ0+fYdjgIfC44fHL7PrEsePgcDho0KABnBctqlS6Rc3MWTMR9Ll8e7XKoKunB1OzduCPib979x5jR43GiWPH6dnTZ1RefZdhGGb23DnM5m1bIS0rCwD4c8VKZGdnV6lIZBiGUVRSYsaPHw8A4PF4AlGpqqpCQ0MDeBP4pljzNjAwkDq0Myt1jb/Sxrh+bnLyt7WrVxe71sqyGwX4B5TbXeF5775ged/WOroUGRlZZjM5LTWV2n4f+1u39q9aaWoTEx0t9HQlJyfT1atXqYeFpaA7YaidHdlY9aTXr179Mr6I8AhBJ/iAPn0oqpx3XJHtx/FKHS1tmjNrFhERWFlZWcXUqK+nhxkzZ1ZIuSampmWaldy9c1fwf6NGjeB29Qo6mncsN+vt3ceGOXvhPNgSbBQWFuKxl1eZ115yu4Tc3FxISEhg+swZFUqvuNHQ1BS6FZCKigrT18ZGsAwxl8vF27fvEB4RAacRDjhx7Hi5Lb8WWi2YCy4ucF68GF9CQzFk8BD4+/lVuaHR1ti42H6nTp0BACw9PV1By0NeXh4ysrLMpCmTYWpq+stA+/bvV+rxnOwcSogvKl5ZLBZ27d0jmNb1K9q0bcvMX7AQwL/9X6Xx+mXR7Ghbe7sKh/1fQUZOjvl9+XJBs58Pl8vFxvXrsWrFn+UuxMmWYDOz585h3K5cQcOGChg3ZgwuXrhQJXGNmzAerVvrC/bNOxdVaVi5uXmQlpYGUGQb9f0vs33XLqioqJQZoLGJMZxGlr5KaWRkhOB/ByfHClUwf2Tm7FlgS7DB5Zbtsz3oc5Ft05SpUysTtNghIojCdnHcxAnM9Zs3YWxiUuLcxQvnMWXiRKSlpZUrFhMTE+a6hwds7ezw5x8rsG7NWqrsSreSkpKMvIICAEBNTQ36+kUiY3F5XCgqKZW4QbulNnPX0xNDhg0Fi1V8yR11dXVs2Ly5TI8uP85cbt3aoDLpBABkZGSAW8gFm136Uj95eXkUFRmJzl06w8DQ8P8qt/oR/db6jOvlS7Cx6VPi3LOnz2A3cCACX78uVyjy8vLM9p07ma07tsPVzQ2TJ05ARkZGpcSVlZkJALAfMkSgCVZ6Whqio6JKvUFZRZnZtmMH8+7TR3jcuY3d+/bi8NGjuPvAE4blfNCUlH/dFmloalQmjQCARw8fAgBYLHap5/2e+4GIMMLBodJh1wTV6Oz+JRISEsyufXvQqZTWfEJ8ApwcHHD65Mlf9rgPGTqUOXP2DJ77PofDkKH4+vVrhRPNn101dPgwwTGWzPfmJwBkZ2eXWjZLSUkxBgYGzCBbW6Z3HxvmV9OYcnPzBP9fu1r2ApJlccvjZlHiWCVzLB6PRwcP7AcAtDaofG5YEzAMI5LikI+UlBRz8PAhtGnbpsQ5HpeHdWv/wsJ583/ZvdDOzIyZMWsmwiMiMNppJGKioyskLi6PYGBgUCyzYRkYGGDDpk0AAA6Hg9AvoWUGUFFyc/9dSOnOrdvwe/68wuo/fPAQ8VuD/DofnwB/f7Ky7IaXAUUVd21t7Wqn9b9Cw4YNmWP//AMdPd1Sz9+6eRND7QYjIiKi3G8xd/58GLRujdiYGIx2dEJkBZa3s7WzLZZbAQCrqLNLUXDgw4f3FXqQ8vD38y+2v8R5Ee7fu1dudhweHk6bNmwo5gjE56kPXr96JbhHR0cH8d9bm40bN661K5L+jCiLwh9RU1Njzl24AL0fWmk/Eh4ehhFDhyHA37/MBElKSjJbdmwHi8VCXHw8Rjk6ISw0tMzriYhs+vTB6LFjix1niIrcZw/o2xeREZEYN2E8Vq9dW+UPVtpMHD7mnTqhZ69eUFdXh7KKMqIio/Dp40e8fv0aX0JKrjrPx6qnFQbZ2UFCogEWLVgAAOhq0RWnz52rE8ICiopDcQksNTWVJo4di0+fSu/5Z7PZ2LB5E4YNH17m+/tr9Wo6c/oMAEBVRQVHThyHSSkrvx46cJC2b92KTyHBxVwiCaZ/LV28hK5cvgw5OTk8fPK4Squsp6Sk0DD7wQIzG6DIj6iSkhIkpSTBLeQiIyMDP3bKMgyDZs2bQ7+1Plq3NoBRGyMYGRlBQ1MTX2Nj8fLFS2zeuLGEH9Ne1r1w5PjxemGVQWZmJq1Z+Sdu3LhR5jWz587BAmfnUgf9MzIyyKZXL6SnpQMoMhTYvnMn+g3oL7j2sZcXTZ00GS1btsS9hw+Kd5bzh1NevXxJHc2KhnJWrVhZJUvRCWPHCbr2h9rb0/179yg/P79EWIUcDqWmpFJEeATlZGf/Mq601FTqa9272NCBbf8BtXIYp6yNiGok3uvu7oJhstK2ubNmU05OTqnv8rq7ewmL1uVLl1JqSgqlpKRQpw4dSUdLm7Zu3lLiGxabsMo3n2Gz2bh+8yZaG7SucI7w6dMnshtQZFim3rgxrt/0qPBEx4rw8cMHGj5kqGA1VAUFBbx6+6Y+x6oACfHxNG3yFHwqxWQJAExM2+HwsSOlfq8vISG0YvlyvHr5SnBMUUkJ2i1b4s3r12CxWHj45DGaNWtW7N5i7XlbOzvIysmCy+Vi8sSJCA8Pr/CbuHiuyMiLLcHG3v37hCoqADBq04ZZ+vsywX5WVhaysrJq1YLctZXGTZowp8+fg0kpvfQA8PZNIIbbD0ZQUFCJ96mrp8dccHXF5m1b0bBhQwBARno63rx+DaBoXeyfRQX8JCxjE2Nm8ZLfAAAJ8fEY4zQSoeW0CPjkZOcQv7/K0rIbOnQsf7C5qkyYNAlm7dsL9vktxLpATeVWfJSUlJiTZ07DtF27YsdNTE3QvHlzfI2Lg8PQYbh+zb1EQlksFjN02DDIyMqUCHfy1CmlxleiB3Ls+HFYtWYNZOVkkZiYiDFOI/ElJKTct/Lhw3tkZ2cDKOoGEBUsFosZaDtIsP819qvI4vovotCwIbPvwH4oKv7bvfTu7TssXvob7Ozti0yNnZ2xbs1ays3JoQ/v3xO/q8Hfz6/EMsh/rFyB9h06lJqJlBAWm81mxk+cwNz19ISFpSWSk5MxZuQoBH8OLlNcX758Efyv1qhRpR+4MqipqQn+//q1XliVpUnTpsz2XbsE+0SE3xYtxphx4zBuwnhISUnh9KlTsOjcBUPs7NHPpg/6WtvQqj9XFQtn1pw5mDx1apklU+mjvACaNm3KHDl+DB3NOyIlJQUjhg3F4oXOdP/ePcrLyysmsqAf+kv47iJFRUjwv/1dn4NKr4zWUz5WPa2YeQsXCPY5HA6WLlmC35Yuw/MXAViybGkxz4Th4WEI+yHzmDFrJhYtWVxuHGUKCwCkpaWZEydPYf7CBSAewf3aNcyaPgPm7Ttg8UJnevniBQHAUx9vwT0e16+DW44tUHUgIrp3918DwgD/AFFE83/BvPnzMcjOTrAfFRmJnTt2QEFBgZk5axZz7cYNyMnJlXrvIFvbX/oNq7CryOTkZLp+7Rquu1/H+3fvABT14DovWYxtm7cUu9Z58WLMmTdX6BX49+/e0RA7+2LHAl6/gpKSUp3pdqhN5Ofn05hRowUtPBlZWfj6+wlWrLhy+TItXbykxH0ttLRw5drVct15lptj/YiamhozeepU5tqN68y9hw8wb8F8tGnbBju3bS9x7c7t27F+3d+UmJgotJyLw+HQuTNnSxx//UP/Sj2VQ0pKijl05DA0NTUBALk5Objk6iY4P3TYMPQfMKDEfQ0aNIBsGbkZn2r7ec/OzqaHDx7g/NmzJYomtgQbHTuaQ09fH9ra2lBRVYGqqtr3v6pQUVEp10lrYmIiPfbygtfDR/Dx9ha0PH9k+oyZ+O33pfU5VjX4EhxMI4YNR3Z2NuTl5eFx+5ZgNnl6WhoN7Ne/2AIKALBr7x7Y2pXthVFoCwjEREdTz+49Kn2foqIiVFRUoKqmCgDIyMhERkYGMjMySjQEWmhpISYmBrzvviUAwMzMDK5XLtdaYdVkj3tl4I/7AYBpu3ZwueQm+NH/uLIXnwYNGuDM+fNlTpCpcFH4K1R/6AaoDBkZGQgPD8eLgBd4EfACIcHBSExIKCaqrhZdcfW6Ox54PWI+BgXh1LmzkP1uoPj27VvkZFd9ir4oqSuiAgCrnj2Z+c7/TmL5cXJrDysr5ufZOBwOB9u2bEZZCE1YP1p7dujYAafPnsWLwNdw97iB5s2bC86xJdgYNXo0WrZsWaFwHZwccersWbQ1Nma+389YWFgw510uQklJCVwuF3yfAbWNuiIqPnPmzkWPXr0AAIcPHsLdO3cEDzBx0qQS15e3cq7QisLQ0FDq19sGAHDF/VqxKfK3b96i+XPnAgD2HzqIfv37M4WFheQ4fDjevnlbZpgDBg3Czt27ypy0ERoaSqMdncAlHp74+IjVddGvqEu51Y+kpaVRPxsbpKWmQUZWFpeuXEFrg9YMl8ulIbZ2xQaytVtqw/PRI9EWhXHfe8EbNGgAozbFba87dy0y9FdVVUVvmyLxSUhIMBMnTy4zvLYmxti+c0e5azvr6OgwZ86fA0PAmj9XlTuXTpzUVVEBgLKyMvPnqtUAilqJM6ZNQ1JSErHZbGbH7l34cY5EVGQU4uLiSn1QoQmL/yI1mjUrIQYVFRWmZatWsLaxKdYKHDBwYLFxKz7yCgrYt39/hRZp1G/dmjl19gzu37+HGVOnVdkfgbCoy6LiM9B2EBp9H5qLiY7GiCFDERIcTHr6+sy2Hf/WvXg8Hk6e+KfUMIQmLP6sXLkfFP0jnTqZg8MpKHasQYMGTNOmTUtcu2XrVmiWYopRFkZt2jCnzpzBi4AA9LHujbOnz1BBQYFYvy5/Jk5dFxVQNF7c3cpKsB8bGwvH4SMQFhZG/fr3Z+bMmys4d+7MGSQnJ5e0iBBWYvgzahr8NLOGT4eOHeH1yKuYDRWPx6PM75Md+UyaPBl9+vWtdF3JxNSUOXHqJL5lZWHt6tXo26s3Lrm6VXpmb1XgC+q/ICo+nz5+LLbfqUtnwf8LnJ3R47vw8vLycNntUon7hdgqLMqxJCQblHq+o3knpKelYbCtHW7fvEVZWVl06MCBYhYKpu3aYcmypVVOQ4eOHZkLrq4wbdcOsV9jsXzZMvTvYwNXF5dy3fxUl/+SoAAgISGB+MJSUFDA4aNHcfjoUYa/PCCLxWL+WLlCcP3LFyXHbIWYY30XlkTpwmrWvBk6d+mMqMhIzJszB2bGJtjxw3BQs2bNsP/AfkhKSlarZdembRvG5ZIbNm3dAhUVFURERGLF78vRrUtXrF/3N70JDBRLLlaXueRWNKwjKSkJd48b6N3HpsQ30dXTY/r17w8AePXyFX6e2ifEOtb3opBdelHIMAyzdt26EpNQAaBxkyY4c+E8Gv+0kn3V08Jmho8YwXh6PcLEyVPAYrGQmZmJkydOYMTQYTAzNcHUSZNp/969dO/uXYqIiCAut15sQNEQ3YnvbiUNjYzKXRTTpk+Rz4icnJwS50pXQRXg51jsBmUHqaOryyxZupS2bNoEHo8HFosFO3t7LFy8qFS76eqioKDArPhzBRycHOj0yZP4+O4Dgj4HITcnF4+9vIr535KUlISuni7p67fGtJkzoK+vzwDAzzOa/utcdnMDv9779s0b+D57Rl0tLEr9Nrp6egCKMoafzWjKFVZaaho9eOCJb1nfoKysDCVlJbTQ0kLLli1LRMTPsSTYpTvy4DNl2lTG2qY3RUVEooV26WEJG319febvDRsAFLmUjggPR2hoKMLDw/HgvicCX7/G+k0boaCggIiwsGLum/4fxPQjfHu3YcOHw7xzJxzcfwDbtmyl8RMmYMCggcWqKrLfbeD1SpnWX2bP+907d2jRgoXIz8+HhoYG4uLiBC/ZwMAAtoPtYWtnJ8hpQr98oX42fdBvQH/sO3Cg1vSAV4S0tDRSVFSs8sLg/xUy0tOpU0dzNG/eDPcfPgSLxWKIiO7fu4fNGzfiW9Y32A22R6NG6pCTk4X7NXekpaXiyPHjJdb9LjXHio6Konmz54DH42Hjls1wcHRk8vLyKCw0FEFBQfj04SO8Hz/BwX37od+6NdnZ2wt62yXKqGPVZpTr4PrTosDH2xs8LheOTiMFPzKGYZi+/fqhT9++FBUZBX+/54iOjkEj9UZY8edKtGnbttSO7FJV8OrVK/B4Rd70+nyvoElLSzNGbdoUCWj4cABFReW6tWvx15o1gnvZEuUXhfXUXu7duwcAsOlb0pEbwzCMlrYWtLS1KhRWqa1CXd1/y8y3b8seJFZWUWZ27N7FnD53VhBhWd0N9dRuMtLT6f7dImE99/WtdnilCqtN27ZMVwsLAMCihc6IiYkptwZrYWnJTJ9R5Gm5vkypm9y+dQscDgdsNhv8b18dyuzHWrjIGZKSkkhPS4PTCAfcvnmrXP9WfG+5dWl2cj3/cvnSJcjLy+PkmdMlKuJVoUxhdejYkTl97hwUFRWREB+PeXPmYOK4cWVOuee79I6JialumuoRM2FhYRT4OhCOI0eirD6rylJuz3tH846Mx53b2Lt/P+YtmI8A/wAM6tcfWzZtorTU4q6e83KLlj6JiY4u0b1fT+3m6uXLAADfZ1VfDu9nKmVBGuAfQDOnTUNGRgYaNGiAPv36wtFpJCwsLfDh/QcMtS+a8xfw6mW5c87qqT0UFhaSlWU3JCYmYuee3bCztxfKd6tUp5N5J3Pmqd9zeu7ri4eeD+D77BkmjhsHTU1NdOjYUXBdYmIilJSVhZG+ekSM3/PnSExMRKtWrTBw0KBf31BBKt2bKS0tzfTs1Qs9vxvdJyYm0pXLl7F/7z7BNVlZ34SWwHpEy5XvxeCcefPKNQOvLNW2blBXV2dmzprFPHj0EKqqqt+P1lex6gI8Ho8eP/SClrYWbO1shRq20Mxm1Bs3Zvg9trz6unudICQ4GBmZGZg5ezbY5cxIrwpCExYAgbkq6oVVJwjwD4CkpCQGDRJubgUIWVj8SatcXtmrdtVTe/Dz84Nlt26QlRP+fEyhCuvb90o7VW2R9HrESEFBAT339UWfvn1FEr5whfWtSFjpaWnCDLYeEeB60QXpaWmwtuktkvCFKqyMjAwAwKd6F461nqTkJCgpKQndbTof4QorvWh5jKCf5qTVU/swMTYudwXd6iJUYfFXan0R8AI5ObXTtVA9RfWrRQudBT7JRIFQhTVk6BAARatGXClldmw9tYOsrCxISklBRaWOCEv9++IBioqK8PH2rrdyqKWoqqoyvW1sRDoDSajC4i8Xx7BYOHTsKPMrl8311BwaTTVK+BUVJsIVVmbWry+qp1bAAw9JdUZY33OsslwZ1VN7yPn2DYmJiSKrrghVWPxFxuUUFIQZbD0iIDs7BxwOR9D3KGyEKqwmTZoAAORkpIUZbD0iIDu7aJREVMWhUIWlqakJCQkJMIxQg61HBOTmFrk7T0xMEkn4QlUAW0KC0dLSEsyirqf2wrdAqRM5FgBot2qJXBEvLVdP9SFe0eoeoupyELqwWrVqhc9BQUhJSanvHK3F8L6bNtWZHIvvdeaBp6ewg65HiPCrK3Umx2rTti0A4P7tO8IOuh4h0kRDA4Dolj8Wfh1LWxuycrLw9vEp5nq7ntpF797WAIDPn4PA4wnf5FfowmKxWIyhoRG4XC4SEhJ+fUM9NULffv2YYcOHIyc7B1GRUUIPXyQdTjq6OgCAlHJWh6qn5vkSUrRw+4cP74UetkiEpapatHZhWGiYKIKvR0j8sepPsCXY+PRR+KbkIhGWimqRyWtISLAogq9HSCgqKoLFsATGA8JENMJS/i6s4BBRBF+PkGikpgYWi1Vi8SxhINIc6/WrVxDlGjb1VA9FJSVmkL09OnXq/OuLK4lIhKWlVeToNj8/H75Pn4oiinqERL9+fZGfny/0kRKRCKtZ8+aClTg9HzwQRRT1CImuFhbYtGEDhg8ZiszMTKGJSyTCYrFYTOvWrQEAPk+8RRFFPUJCRkaG+e33ZYiJjsbVy1eEFq7IDKcMDQ0BFK0VzeFw6utZtRinkSNhbGwMr0ePhBamyITVvkMHwf9xcXGiiqYeIcBisZhBdrbwe/4cuUKaaCwyYfFXrgdEN9BZj/AwM2uPgoICeHsLp+oiMmEpKylBXl4eABAVESGqaGotdW1KZVsTY0hLS+PuHeFYpYhMWDKyssyoMaMBAO/eCX8sqrZT1yaBS0pKMrZ2dnjo+UAodWKRznpISy3yk/Xu7RtRRiM2KpoL1bXcio+DoyOysrLg9/x5tcMSqbD4y6AEfQpCXl5e3foJl0FFRFPXcis+yt9HTF4ElFyVvrKIVFitDYr6srhcLj4HBYkyqloDwzB1NsdSUyuySgl8/braYYlUWL169xY4vH3s9ViUUdUjBOTl5SEnJ4fA14HVtioVqbA0NDQY695FPi5dL15EYWFh3SwjKgg/p6qrRSHDMEyv3tb49u0bkqtppCnyKct//b0Oevr6SEhIwGMvL1FHV081sfm+VDO/flxVRC4s9caNGaueRQsLnD93XtTR1VNNpKWL/G7IyMhUKxyxOFlo1qwZAOCJlxe+xsbWzXLiF9T1YhAA0tPTacXvy8EwTO3PsQCg/8CBghd/y+OmOKIUK3W1Ffgzz319kZKSAgUFBVTXG6NYhKWmpsbwB6WvX78ujihFAhGBiIoJ6cf/63JuBQAR4REAANN27aodltj8DfXtV7S0xqePH/ElJKROfwG+uBiGEYitrosKAGJjYwEA5p3Mqx2W2IRlbWMj+P+6e93Ntfj8V8T0I7nZ2QCAjuZ1SFja2tpo8d0W3v3aNZFM666nenzLzgabzYaJqWm1wxKbsBiGYXp/z7W+xsbiTWCguKKup4KEfPkCHV0dSEtLV7s1IlafjjNmzUSTpkV+Sm/cuCHOqOv5BZmZmRQVEQFDIyOhhCdWYampqTGbt26DjKwsbrhfr7eFr0Xcvn0bAGBoWAeFBQAdzTvC0NAQ6WlpQjODrad6EBGdPnECAIS2fqHYhSUlJcXMWzAfAHDJ1U3c0ddTCr6+vggODsGw4cPRqlUrofT2MjXRZCYi6mNtjaioaPj4PkOjRo3+G13XdZQVy5dTXm4etu3cARaLJZRvUSMO2RmGYRydRoLH5eL61Ws1kYR6fiDAPwB379wRqqO8GvP0P9xhBCQkJHDu7Nn/jNlyXaVVq1ZgS7ChrKwstDBrTFiqqqrMrDmzER0djZPfK471iJ+PHz6S77Nn6NKli1D6r/jUSB2LD4fDoWH2gxEeHo47nvehqalZX9cSI5mZmdSnlzVSU1OhpKSEq9fd0bxFi7pbx+LToEEDZsv2beAUcrBh/fqaTMr/JS4XLiA1NRUAkJ6ejv59+uLkiX+Iy+XW7nmFFcHQyIiZO28+7t2+g2tXrtbXtcRETnYOHT96DACgIC+PTVu2YOHiRTh25DDW//139SP40eyjpjYOh0N2AweRfisd8nniTTweD/WbaLdDBw6QjpY29ejWnUKCgwXvnMvlUn5+PvF4vGp90xqtY/3I56DPNNjWFg0kJXHB1QVt2rSpr2+JiIcPHpDzvPmQlZPDjdu3oKamVua7rqohaY0XhXxaG7Rm1vz1F3JzcjB5/ARER0fXDsX/h+BwOLRx/XqaMXUacnJzsXHz5nJFBVTdKrbW5Fh8du3YQfv27IVWy5ZwveQGFRWV+pxLCGRkZNDCefPg4+0DANDU0MQjnycVtm2vbM5Va3IsPgucnTHCwQGR4eGYPmUqcrKF4wjs/5no6GhyGD5CICoASE5JRoC/f4XDqGwGVOtyLAAoLCykGVOn4bGXFzqYd8ShI0egpKRUn3NVASKiiWPH4dmzZ6We3PrclwAAB+pJREFUt7Hpg6EjhqFb9+6QlZUVWl2rVgoLKGoOjxk1Eu/evoOOri6O//MPNJvVd6BWls9BQWQ7YKBgX1VVFYPsbKGuro6I8AhERIQjMTEJGRnp6N6jB/r17w/r3r0hKSnJANWY2lbTXQ3lbcnJydTPpg/paGlTl47m9OnDh/quiEpuaWlp1Me6N+loaVPXTp0pPi6OynrfAf4BZKCrR19CQsq8ps51N5RFcnIyjRs9BiHBwZCVlcWho0fQ1cKiPuf6BZGRkbRuzVoEBPgjJzsHbDYbF1xd0L5Dh3LfXfDnYNJspgk5OblqveNaLywASElJofFjxuBz0GdISEhg2/ZtGGRvXy+uMoiMiCDHEQ5ITUkBAOjq6eGPlSvQw8pKbO+s1rUKS0NVVZW56OaGHlZWKCwsxMIFC7F96zYqKCio/b8KMcPlcmn578sFogKAqdOniVVUQB0RFgAoKCgwx0/+g6MnjkNRURGHDhzAKEcnREVG1ovrBy65uiLAz0+wr99aH7Z2dmJPR50RFlBkeRr8ORgZGRkAgLdv3sB24KD6wevvJCQk0OaNmwT76o0b49CRI0K1s6oodaKOxef8uXO0asXKUs/ZDR6Mtev+goKCwv9l3SsjI4PGjhyFoO++XlVVVXHe1QU6Ojo18j7qTI515/ZtWr3yTzAMg5mzZuGZ33NccXdH5y5FK2DccHeH3YCBCPDzrzu/FCERExNDk8aNF4iqSdMmOHvhfI2JCkDt7sfibwnx8WRmbELmZu3J+8mTYn0shRwObd20mXS0tAXb/DlzKDoq+v+iz+va5atkbGgkeHbbAQMpIT6+2v1Q//l+LCKiKRMn4cnjx/DyfoJmzZuX+iucOG4c/TgWJiUlhWkzpmPq9OnV7pOpjWRkZNCqlX/iloeH4Fj/gQOweevWWvG8tb4odL3ogiePH2P+woXQ/O5y8meIiPLy8gT7WtpaYLHZ2LdnL/pa94b7tWtEtf0XVEF4PB7du3uXBvXrLxCVvLw8tu3Ygb3799cKUQGo3UUhl8ulHhaWpKOlTZs3biwze7998xbpaGlTh3Zm9PDBA+LxeJT9LZsuubnRSAdH0tHSpiG2dnTl0mX6lvWtThaR2dnZdOb0aept1bNYsT/Y1o5iYmJqvOj7eavxBJS3vQgIELzA6+7upb68qMhI6mreiTq0M6NPnz6Vek1kRATt3L6dune1IBOjNvTnihX07u3bOiGw2NhY2rZlK7U3MS0mKB0tbVrs7Ey5ubm1TlS1XliuLi6Cl5iQkFDiBQZ//kxdzTtRR7OyRfXjxuVyycfbhxbMnUetdXTJfuAgOn3yFCUnJ9cqkaWlpdGFc+dojNPIEmLS0dKm9iamdO7sWeLxeLVSVEQEiZouistDgv1v8hQVFYude/vmLU2eMAGSkpK44OICXT29X9YtWCwWY9nNEpbdLJGSkkKX3S7hnxMnsHb1aujo6lKHDh3R3rwDOnToAC0trWp7Dq4ohYWFFBgYCP/nfnj+3Bf+z/3A5XJLXMcwDEaOGoVFS5ZAWUW5dtSlyqBWtwojwiPIplcvAMDho0fRu48Nw+Vy6YGnJ5YsWgQlRSWcOX8eWtpaVX7JPB6Pnj19hgvnzsHz/n3BB1VRUUEH847Q1dUFmy0BCQk2WCw2JFgssBpIgM1igc1iQ0paGk2aNoGGhgaaNG0KeXn5UtOSm5tLfn5+iI2JQVJiIpKSkpGYmICkxESEfgnFj40PAJCRlQWbxcK3b98Ex2bOmoUly5bWakHxqdXCysjIoAvnz+PVy5cIDvoMy+7dIC0tjebNW0BGRga29nZCbQUlJiSQm6sb7t+7hw/v36Mq70ZVVRXDHEZgytSpUFVVZUK/hNLePbvx8MFD5ObklHtvW2Nj9LLuBauePWFsYoL3799j+OAhAIr8K3jcuS0wwKvt1Gph/Qh9TyjDMAwRkaiLqbTUNHr27Cl8vH3w1Nu7zHWtGYaBiooKZOXkkJiQgPz8fABAVwsLTJoyGZ+DgrB96zYoKSmBYTGCxUH5tGnbFmPHj4NVz55QV1cv9kxcLpeMWrcGt5CLZcuXY9qM6XVCVEAdElZNQkQUERGB576+YDEsNFJXh7p6IzRq1AiqamqQkJBg+Nelp6VDWloK0jIyiI+Ph5qaGpKTk9GkSRPwuFwsmD8fd24VuWW06dMHe/bvKzcX6tXDiqKjouBx5zYMDAzqjLBqvPXw/7YlxMeTga4e6Whp0y2Pm/Sr63v1+F97587SMBSG4Te0rpEsdklIIeBlsNKAurR0EGe7GA2FKuqkePk9xQsqxU39E3VtMhrHRlKy2CRLO5jPQSuIV0rtSTUPfNsZ3uGBc8534DsFUuQ0HVYq366NUkW+8/7XGEuluIXF57HkP5lQ/PAytGN2bv5Xc/WbWCwG8DyPRCIBUfr4iaqL67oUBAGWNQ2ZmczwbIOIxWICx3EQBOH1bPYZF9UqACCrqgPJ1U9isRggiiKSI0mEX3z7YjcadH56BgB4DN83S6NOLBYDJian0HSa0LUVXF9eked5bwTzfZ+2NjbRarWwVCxiVddZRe0d1reH/1hhGNLJ0TGNKwopcpqy0xm6sywiItzUalTI5UmR01QulajdbhPrvL1U3MdiiFGv0+72DhzHQXl9DaZhwjQMZFUVewf7yOXzA3uv7DexWIzpdDpk3Vq4t23wozwkSYIoSUMrVJcnyL/hP8cT0EoAAAAASUVORK5CYII="/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/ladder.svg b/go.dev/testdata/golden/images/gophers/ladder.svg
new file mode 100644
index 0000000..be4d5d6
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/ladder.svg
@@ -0,0 +1 @@
+<svg height="572" width="183" xmlns="http://www.w3.org/2000/svg"><mask id="a" fill="#fff"><path d="M0 .2h9.7V572H0z" fill-rule="evenodd"/></mask><mask id="b" fill="#fff"><path d="M.4.2h9.3V572H.4z" fill-rule="evenodd"/></mask><mask id="c" fill="#fff"><path d="M0 572h116V0H0z" fill-rule="evenodd"/></mask><mask id="d" fill="#fff"><path d="M.2.7h36.1v15H.3z" fill-rule="evenodd"/></mask><g fill="none"><g fill="#fff" opacity=".6"><path d="M9.7 572H0V.7h7.5l1.7 2.4V572z" mask="url(#a)"/><path d="M9.8 572H.3V2.6L2 .2h7.3V572z" mask="url(#b)" transform="translate(106)"/><path d="M0 373h115v-9H0zm0-82h115v-9H0zm0-164h115v-9H0zm0 82h115v-9H0zM0 46h115v-9H0zm0 408h115v-9H0zm0 82h115v-9H0z" mask="url(#c)"/></g><path d="M29.1 92.9c-3.8 17.4-3.6 35-2 52.6.5 6.6 3.4 12.5 6.4 18.2 1.4 2.5 2.1 4.4.7 7-1.4 2.5-2.3 5.4.3 7.7 2.5 2.4 5.3 1.7 8.2.4 2.7-1.2 5.5-3.4 8.6-.7 2.7-.4 2.4-2.6 2.7-4.4 0-1.1-.2-2.1-1.2-2.8-3.2-.9-5.5 1.5-8.2 2.4-1.7.5-4 2.1-5 .4-1.3-2 1.3-3.4 2.6-4.7 2-2 4.9-2.7 6.5-5 .8-2.1-.2-4-2-3.6-8.2 1.8-9.5-4.9-12.3-9.8C30 141.2 30.6 131 31 121c.3-7.7 1-15.5 2.7-23.1.6-3.1 1-6.2.8-9.4.2-5.7 3.2-10.5 4.6-15.9.6-2.2 2-4.4.2-6.7-2.2 1-2 3.2-2.8 4.7-.7 1.4-.4 3.8-2.6 3.6-2-.2-2.6-2.7-2.9-4.4l-.2-.5c-.4-1.7-4.3-3.2-3.7 1.4-.2 4.4 4 8 2.3 12.6-1.2 1.2-1.5 2.6-.5 4 1 1.8.7 3.6.3 5.5z" fill="#15293d"/><g fill="#132433"><path d="M80.6 22l-7.3.8c-4.9-.8-7 3.8-10.7 5.4-3.7 2.9-7 6.3-11.5 8.1-3.8 2.9-8.2 5.3-8.7 11.5-3.8-3.5-4.8-7.5-6-11.3-1-2.9 1.5-3.3 3.3-4.2 3.1-1.4 5.8-3.1 3.4-7.2-.5-1-3.8.3-2.2-2.9 1.4-2.7-.6-3.3-3-3.2-6.3.5-7.1 2.2-6.9 8.3.3 7.4 1 14.3 5.3 20.6 1.5 2.1 2.8 4.3 5 5.8 1.7 3.4 5 5.9 5 10.1 3.2-.1 2.9-3.3 4.7-4.4.7 0 1.2.3 1.5.9.1 2.9 1 4.8 4.3 3l2.3.2c3.7.3 3.5-1.4 1.9-3.9-2.7-3.4-5.2-7.2-9.5-9-1.8-.8-3-2.6-2-4.6 1.4-2.3 3-.6 4.2.4C57 49 61.3 49 65 50.7c1.2 0 2-.6 2.5-1.6.1-4.1 0-8.2-2.3-11.8-1.9-2.7-.8-4.4 1.5-6 3-1.9 6-3.4 9.6-4.2 2.3-.5 4.8-.8 5.7-3.6 0-.9-.3-1.6-1.4-1.4M131 152.9c1.5-11.6 2-23.5 11-32.6a83 83 0 0012.4-17.6 38.2 38.2 0 003.7-29.6c-.6-2.1-1.9-4.4 1.5-6 4-1.9 6.5-5.2 4.9-10-1.6-4.6-4.3-7.2-9.5-7-1.8.4-7.1-.8-9 0-.4.3 5.3 2.2 6 2.7 1.3 1 3 1.3 4.4 2 2.2 1.3 4.1 3 3.2 5.7-.8 2.5-3 3-5.4 2.4h-.3c-2.8.2-7.1-2.2-6.2 4 .3.6.7 1.5 1.3 1.6 6.4 1.2 6.7 6.2 7.2 11.3a36 36 0 01-6.4 24.6 184 184 0 01-11.5 14.7c-8.2 10.6-10.1 29.5-11.1 42-.1 1.4 2 .1 3-2.3l.9-6z"/><path d="M154.9 50.6c-8.1.8-11.8-6.5-17.7-9.9-3.2-1.8-6-4.4-9-6.4-2-1.2-2.3-2.4-1.6-4.6 1.6-5.2-1.9-9.5-6.8-7.3-7 3.2-13 .5-19.4-.6-6.6-1.1-13-1-19.4.3l.8 1.7c1.9 2 4.2 1.3 6.3 1 8.6-.8 16.3.8 23.7 5.7 7.8 5.2 16.9 8.4 24 14.7 2.8 2.4 5.7 4.3 6.4 8.2.4 2 1.7 2.8 3.6 2.6 2.6-.9 5.6-1 7.5-3.3-2.8-3.2 2.5-.4 1.6-2.1zm-24 101.4c-2.8.6-2.2 3.4-3.4 5.1h1.3c-1.2 4-2.4 8-4.4 11.7-8.7 11.5-19.1 19.4-34.5 18-.9-.2-5.1.2-6 .7-2.8 4.7 2.1 4.6 3.6 5.5 1.5 0 3.4.2 4.5 0 3.5-.9 10.1 5.3 12.5 2 4-1 4.3-5.2 6.6-7 4.5-3.3 8.8-7.6 11.7-12.6 1.5-5.8 5.5-5 9.7-3.7 3.3.7 5-1.6 5.7-4 .7-2.2-1-5.3-2.5-5.7-6.7-1.4-6.4-5.7-5.4-10.6"/></g><path d="M53.2 62.3c-.4-1.3.9-2.6-.2-3.8-1.2 0-1.6 1.4-2.6 2-.2-1.5.5-3-.4-4.2-2.6 1-2 3.8-3.8 6.2 2-6.1-3.1-8-6.1-9.8 1.3 2.3 1.8 4.8 0 7-2.4 2.8-3.7 6.3-5.3 9.6-.5 1.1-.4 3-1.9 3.2-2 .2-1.4-2.3-2.6-3-.8 2.6-.1 5.3 2.4 5.8 2.2.3 2.6-1.8 3.5-3.5.8-1.4-4.5 8.4-4.3 16.2 2.5-1.2 3-3.7 3.8-6 2.2-6.8 6.6-14.7 9.8-21.6-.8 5.3-.6 8.3 6 9l2.5-1.2c2.5-1.7 2.4-4 1.8-7.3-1.4-.5-1.5 1.3-2.6 1.4z" fill="#15293d"/><path d="M-.3 9.8c1.6-.5 4-1.3 5.2-2.2C14.8 0 25.5-1.5 36.3 6c-1 .8-4 0-2.5 2.3.9 1.3 3.5 1.7 2.2 3.9-1.4 2.3-3.3-1-5-.1-.5-.3-.6-.2-.7-.7 1.4-2.9-1.7-4.8-4.3-5.2a27 27 0 00-14.8 2.3c-4.6 2 .8 5-.7 7.3C6 15.2 4 10.4-.3 9.8z" fill="#132433" mask="url(#d)" transform="matrix(-1 0 0 1 73 13)"/><path d="M88 193c-.3-1.5-4.4.2-2.6-3.1-.4-1.5-1.6-2-2.8-2.4-6-1.1-11.7-3.2-17.1-6-4.8-2.1-8-6.7-13-8.5-.8 1.3 0 3.2-1.5 4.3A60.2 60.2 0 0088 193" fill="#15293d"/><path d="M170.9 85.3c1.2 1.1 2.3 2.5 3.6 3.4 2.6 1.5 5.5 2.1 7.6-.6 2-2.6.4-5-1.3-7.3-2.8-4-7.3-4-11-5.8-1.2.4-3-.7-3.3 1.2-.4 1.7.9 2.3 2.2 2.7 2.9 1 6 1.5 8.2 5-.3 5.3-5-3.7-7.6-4.3-1.4-.3-2.4-4.9-3-3-.5 1.5-.6 1.8 1.3 4.4.7 1 2.6 3 3.3 4.3" fill="#333"/><path d="M101.3 192.9c-3.1 2.6-6.2-2.3-9.3 0 3.2.4 5.4 2.1 7.2 5.2 1.6 3 4.2 6 7.9 4.5 3.5-1.5 3.2-5.4 2.4-8.7-.6-2.5.6-4 1.5-5.9-2.6 1.2-4 4.8-7.4 4.4.2 1.1 1.2 2 1 3.4-1.7-.2-2.5-1.5-3.3-3M28.4 86l2.6-2.2c.4-2.6-3.5-5.4-4-7.6-.6-2.1-1.3-3.8.5-5.7-1-2.5.4-2.9 2.5-2.1-3.5-3.2-6-3-7.9 1.1-3 7 1.3 13.5 6.7 18z" fill="#15293d"/><path d="M132.5 171.5c-7-3.3-9.6 1-9.7 4 2.3-4.5 6.1-4.8 10.2-4z" fill="#132433"/><path d="M45.7 60c-6.6 8.4-9 18.4-12.7 27.8-1.2 9.8-2.6 19.7-3.5 29.6-.8 8.9-1 17.8 1.3 26.5.6 2.3.7 4.8 2.8 6.4l.4-.3.2-.5a22 22 0 0013.9 9.4c3.6 1 6 3.8 6.9 8.4 1.6 8.7 8.6 12.8 16.3 15 4 1 8 1.9 11.8 3 15.4 5 26.3-1.5 36-12.9 5-5.7 5-12.5 6-19.1 1.5-9.5 3.3-19 5.3-28.3.6-2.6 2.8-4.3 4.4-6.4 3.2-4.4 2.9-8.9-.9-11.8-4.3-3.4-8.6-3-12.2 1.1a40 40 0 00-8.7 15.3c-1.1 4.1-5 7.7-4.8 12.6.1 3 .4 5.8.1 8.8-.2 3.7-1.5 4.4-5.4 3.6-6.4-1.3-9.7-6.3-14-10.4a3.5 3.5 0 01-.7-4.1c2.4-5.1 1.7-10.6 2-16 .3-3.6 1.4-6.7 4.7-8.9 3-2 4-5.3 4.5-8.6.6-3.7-1.3-6.1-4.7-7.2-2.3-.6-4.4 0-4.2 2.8.2 4.3-1.3 6.5-5.8 5.8-3.3-.6-6.9-5.6-5.4-8.5 4.2-8.6-4.7-12.7-6-19.3-.2-.6.2-.3-.4-.3-5.8 0-9.3-5.6-14.8-6.2-2-.6-3.5 1.2-5.5 1.2-4.2-1-8.6-2-6.9-8.5z" fill="#79d4fd"/><path d="M63.4 73.7c.5 1 1.7 1.7 2.9 1.2 5.4-2 6 2 7.2 5.5.5 1.6.8 3.8 1.9 4.5 4.2 2.7 3 4.6.8 8.4-1.9 3.2 1.3 7.5 4.4 9.7 3 2.2 6.8 2 9.9-.7 1-.9 1.1-2.2.9-3.6-.2-1.4-2.9-3.9.8-4 2.9-.2 5.2 2 5.2 4.8 0 2.9-.7 6.9-3.2 8-6.7 3.2-6.8 9-6.6 14.6a30 30 0 01-2.3 13c-.9 2.1-.5 3.3 1.6 5 4.8 4 8.6 9.3 15.4 11 4.3 1 6.7-.4 6.9-4.9 0-4.4-.7-8.7.2-13.2.5-2.5.6-4.7 3.3-5.8 1.2-.5 2.3-1.4 2-3-1.1-8.3 5.8-12.2 10.2-17.2 1.9-2.2 6.1.2 8.4 2.3 2.3 2.2 3.3 5.7.7 8-7 6.5-6.7 15.1-8.6 23.3-1.5 6.5-2.9 13-3 19.4-.4 11.5-8.9 17.8-16.1 22.7-5.3 3.7-11.7 4.9-17.5 3.7-7.8-1.6-17-4-23.2-6.5S55.7 173 55 165.6c-.6-5.2-5.3-6.4-8.6-7.5A23.6 23.6 0 0132 145.7v5.6c.4 4.2 3.6 6.9 5.8 10 1.5 2.1 3.2 1.2 4.9.6 1.9-.8 4-2 3.9 1.8.9 2.8 1.3 5.9 4.6 7.1 1 .8.8 1.8.4 2.9 3 4.2 7 7.3 11.9 9 6 2.9 12 5 18.4 6.5l3 1.2c16.8 2.9 28.3-5.1 37.4-18 4-6.8 4.8-8 5.6-12.4l.1-3.6c.6-8 1.3-14.3 3-20.7 1.2-4.8 2.8-9.7 6-14.8 3.9-5 6.6-10.5 9.2-15.4 4.8-9.6 10-19.2 6.8-30.7-.8-2.8-1.8-5.1-5.2-5.7-2.4-.4-1.8-1 .2-1.8-1.7-6.9 3.6-3.7 3.6-3.7-.4-1.3-1.9-1.5-2.2-2.9-.4-1.3 0-2.8-.7-4-.7-1.2-2-1.5-3.1-2-1.1-.3-3.5.5-2.9-1.4 1.8-5-2.8-6.2-5-8-10.6-8.7-23.2-14.4-35.3-20.7-5.2-2.8-11.3-1.1-17-1-1.7 0-3.3.2-5 .3-5.7 2.5-12.3 2.7-17 7.5-2.1 2-4.2 3.1-.9 5.8 3.3 2.8 1.8 7.5 3.5 11 .7 3.2.9 6.6 2.6 9.6 1.4.4 2.3-.5 2.4-1.5.6-3.5 3-5.4 5.5-7.3C86 39.4 99.4 37.2 108 45c11 9.7 15 20.9 6.7 33A19.2 19.2 0 0193.4 86a31.8 31.8 0 01-21.8-20c-1.6-2 .4-6-3.6-6.7-2.1.9-3 3-4.8 4.3-1.6 2.6-6.7.6-7 5 2.9 1.1 5.8 2 7.2 5.1z" fill="#79d4fd"/><path d="M46.7 163.4c-3.9 2-7.2 3.4-9.5 7.3-.6 1-1.8 2-.8 3.3.8 1.2 2.7 1.6 3.9 1.1 4-1.5 6.7-2.8 10.7-4.4-1-3.8-2.5-6.3-4.3-7.3zM24.9 77.5c.4 2.4 3 3.5 5.1 5.3 1.9-.6 2.9-3.6 2-4.8-2.3-3-3.3-4-4.7-7-5.2.9-2.8 4.4-2.4 6.5z" fill="#c9b8bc"/><path d="M62.9 28.7c.1-1.3 1.3-1.6 2.2-2.2 2.8-2 2.4-4-.5-5.3-6-2.6-12.2-4.1-18.7-2.6-3.1.7-5.4 2.1-2.7 5.6 1.9 2.8-.4 5.5 0 8.3 1.3 7.6 2 8 8.4 3.8 5-.8 7.6-5 11.3-7.6" fill="#f0f4fb"/><path d="M64.8 49.6a3.8 3.8 0 00-4.1-2.2c-2.8.4-4.5-1.1-6.4-2.5-1.9-1.3-3.6-5-6.2-1.3-2 2.7-1.4 6.4 1.7 7.5 4.7 1.7 7.3 5.2 10.5 8.3 4.4 1.5 6.4.3 6.7-4.1 0-2.2 0-4.4-2.2-5.7" fill="#c9b8bc"/><path d="M50.6 37c-2.3-.7-2.8 1.5-5.4 1.2-.4-3.8-2.3-7.5-1-11.7.3-1.3-.4-2-1.6-2.5h1c1.5 4.5-1.7 5.6-4.8 6-2.5.3-3.9.5-3.6 4.2.5 5 2.3 9 5.2 13 2 2.5 4.3 2.3 4.3.3-.2-6.3 4.5-8.7 7.7-12.2" fill="#f0f4fb"/><path d="M64.5 49c1.8 8.7 2.2 10.3-3.5 10.6 1.5 3-1.4 2.7-3 2.3 1 4.3 3.9 2.6 6.5 1.6 2.5-.3 2.7-2.1 3.5-4 .5-1.3 1-1.5.7-2.2.6-3.5-.9-7-3-9.8-.5 1 .3 2-1 2.1z" fill="#282b3a"/><path d="M65 63.7c-2-.8-5 .9-6.3-2.1L57 61c-1.7 2.4-1 6-4.1 7.6 1.7 1 3.2-.4 4.8-.5" fill="#67d3fd"/><path d="M59.5 44.4c1.4.8 3 1 3.4-.8.6-2.6-1-4.2-3.3-5-1.6-.7-4-1.2-4.5 1-.8 3.2 2.8 3.3 4.4 4.8" fill="#6b6e7f"/><path d="M50.9 57l-.2.5c-.3 2.6-3.7 6 0 7.4 2.8 1 1.8-3.9 3.3-5.6-.4-1.6-1.4-2.4-3.1-2.3" fill="#fff"/><path d="M142.7 60c-2.1 5.9-1 7.8 5.4 9.4 1.6.4 3.1 1.1 3.2 2.6.3 5.1 3.1 9.8 1 15.4-3.5 9-6.7 17.8-13.7 25-.8.8-3.6 3.8 0 6.4 4.7-4.3 7.5-9.4 11.2-14.4 7.1-9.5 7.5-20.8 5.3-31.5-1-4.9-5.6-4.3-8.3-6.5-3.9-.7.5-6.3-4.1-6.4zm9.4 3.8c4 2 8.1 1.8 9.6-2.6 1.4-4.5-2.1-6.7-6.4-7.6L153 53c-2.5.2-4.9.7-7.1 2 .3 1.4 1.7 1.7 2.8 2.2 1.4 1.8 3.8 1.2 6.4 2.6-2.8.4-5.3 0-6.8 1.7.6 1.6 2.4 1.6 3.7 2.3zm-28.6-35.3c.6-.3.7-1.1 0-1.6-2-1.5-4-.9-6.5.2 2.3 1.8 4.3 2.5 6.5 1.4z" fill="#79d4fd"/><path d="M129.2 164.1c-.7 2.8.6 3.7 2.3 4.4 1.7.7 3.3 1 4.2-1.2 1.2-2.9-1.2-2.8-2.5-3.4-1.4-.6-3-1.8-4 .2" fill="#c9b8bc"/><path d="M101.2 192.4c0 .8-.4 1.7 0 2.2a5.7 5.7 0 004.3 3.4c1 .1 1.3-1.2 1.4-2.1.4-2.6-1.2-3.4-3.2-3.9z" fill="#b5a4a8"/><path d="M83 189l-18-7a40 40 0 0018 7" fill="#67d3fd"/><path d="M70.7 66A31.6 31.6 0 0093 87.2c15.1 4.5 31.5-11 27.2-27-4.8-18-21.2-26.7-39.2-17.5A14 14 0 0076 48c-3.7 3.1-5.5 9.1-5.3 18z" fill="#132433"/><path d="M91.8 131.7c-2.9 1.4-1.6 4-.8 5.6 2 4.6 5.4 8.1 10.5 9.5 3.5 1 6.3-1.4 5.3-5-1.3-4.2-3.3-8.2-5-12.4-4.1-1.4-3.7 1.3-3.3 3.6.3 2.5 2.5 4.5 2.2 7.6-4.7-1.5-4.7-7.3-8.9-9" fill="#19364e"/><path d="M92 131.6c2.4 3.6 3.6 6.4 7 9.2 1.1.8 2.1 1.8 3.4.7 1-1 .5-2.2.1-3.2-.9-2.6-2.7-7-3.4-8.3-.2-.7-.3-.7-1-.7-.8 0-2.9.8-6.1 2.3z" fill="#c9b8bc"/><path d="M148.3 61.6h3.2c2.4-.2 6.2 1.9 6.5-1.8.2-2.6-3.9-3.4-6.5-3.8-1 0-1.9.2-2.8.4-1 1.6-.7 3.4-.4 5.2" fill="#132433"/><path d="M70.7 66A27.5 27.5 0 0176 48c-4.7 1.5-4.8 6.3-7.3 9.3l-.7 2.1c3.2 1.3.3 5 2.7 6.6" fill="#79d4fd"/><path d="M76.5 54.6c-5 13.8 2.8 22.7 15.7 29 9.5 4.5 21.4-2.2 25.1-12.8 3-8.7-5-24.3-14.2-27.6-10.4-3.8-23.1 1.7-26.6 11.4" fill="#f9fafa"/><path d="M84.4 54.8c-.8 3.1-.8 6.6 3.4 8.5 4 1.8 8.4 0 9.9-4 1.2-3.5-1.2-9-4.5-10-3.2-1-7.2 1.2-8.8 5.5" fill="#0e0c16"/></g></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/machine-colorized.svg b/go.dev/testdata/golden/images/gophers/machine-colorized.svg
new file mode 100644
index 0000000..cb8b983
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/machine-colorized.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1196 796" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;"><path d="M933.112,266.472c-32.187,2.527 -66.271,6.794 -82.462,39.084c-17.26,34.415 -22.896,68.83 -30.263,106.528c-3.194,16.344 -9.994,30.567 -16.495,45.945c-2.651,6.28 -8.605,41.673 5.275,26.531c15.145,-16.519 18.188,-25.804 24.394,-47.588c4.941,-17.353 7.453,-32.693 9.288,-50.698c6.72,19.383 10.009,27.208 25.065,40.984c8.83,8.079 29.205,16.658 41.061,16.658c20.088,0 34.666,-1.454 54.007,-6.667c17.287,-4.654 25.735,-14.521 36.645,-27.641c23.94,-28.792 23.254,-58.517 12.471,-93.478c-9.965,-32.32 -49.22,-44.64 -78.986,-49.658" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M502.64,331.484c1.176,-21.531 2.08,-42.606 5.517,-63.877c2.509,-15.514 3.298,-50.434 16.102,-60.812c37.766,-30.612 82.837,-34.377 123.345,-4.992c9.291,6.741 12.462,18.594 17.4,28.81c3.912,8.091 11.501,17.275 12.258,26.108c1.784,20.886 9.063,47.547 2.299,67.405c-1.72,5.053 -49.176,2.858 -54.817,3.056c-31.758,1.119 -63.519,2.237 -95.281,3.356c-8.942,0.317 -17.881,0.633 -26.823,0.946" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M446.494,337.394c0.892,-27.275 -0.86,-55.978 2.76,-83.008c1.805,-13.513 0.809,-32.021 5.963,-44.565c5.792,-14.108 21.005,-21.632 29.678,-6.883c12.851,21.859 5.331,63.085 4.92,86.637c-0.109,6.271 3.777,36.658 -0.721,41.206c-5.904,5.966 -33.809,5.248 -42.6,6.613" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M514.11,618.389c-19.501,13.345 -38.999,26.687 -58.496,40.033c-0.21,0.141 30.257,50.67 34.072,57.369c10.31,18.097 25.925,29.392 42.763,40.281c18.638,12.054 37.033,30.293 60.115,29.902c22.172,-0.375 45.396,-16.093 65.538,-24.884c3.957,-1.726 21.66,9.054 25.502,10.709c13.014,5.603 26.034,11.206 39.048,16.811c4.628,1.989 19.315,8.443 23.614,6.546c10.178,-4.483 20.269,-9.249 30.648,-13.26c23.132,-8.939 42.952,-20.141 64.488,-32.591c6.283,-3.632 45.172,-21.327 22.669,-29.244c-23.833,-8.383 -47.672,-16.77 -71.504,-25.15c-14.918,-5.248 -29.873,-9.988 -44.959,-14.734c-9.947,-3.127 -19.87,-6.912 -30.089,-9.049c-10.458,-2.192 -15.265,3.464 -24.964,7.397c-6.427,2.603 -52.955,25.307 -55.78,22.148c-14.908,-16.666 -29.232,-31.897 -40.686,-51.055c-10.478,-17.517 -21.04,-34.988 -31.569,-52.476c-3.67,-6.096 -42.644,17.444 -50.41,21.247" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M679.945,322.619c1.282,-25.978 2.565,-51.953 3.85,-77.931c0.378,-7.704 -3.785,-64.084 14.87,-60.408c3.694,0.727 16.865,1.046 19.264,3.791c2.556,2.929 1.135,16.974 1.398,20.866c0.597,8.939 0.972,17.872 1.345,26.826c1.199,28.8 2.399,57.604 3.599,86.404c-14.775,0.15 -29.551,0.301 -44.326,0.452" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M562.358,3.832c-2.82,41.372 -5.636,82.743 -8.452,124.114c-7.063,-16.971 -14.128,-33.939 -21.191,-50.913c-3.481,-8.369 -9.075,13.927 -9.56,15.706c-2.331,8.587 -4.341,17.275 -6.51,25.904c-6.084,-4.237 -28.401,-6.338 -18.259,5.361c-20.715,5.36 -14.084,8.02 -15.165,26.046c-0.816,13.587 -9.067,29.471 -13.086,42.544c8.963,-0.621 10.778,1.197 13.044,-7.308c2.784,-10.461 5.573,-20.922 8.36,-31.38c1.596,-5.993 7.015,-4.58 10.361,-10.68c1.66,-3.026 -1.977,-7.452 1.35,-9.722c4.051,-2.763 4.678,-5.097 0.83,-9.619c6.844,1.726 14.306,7.205 16.83,-0.416c3.034,-9.167 6.069,-18.336 9.104,-27.506c9.974,19.509 19.947,39.019 29.92,58.525c3.142,-43.431 6.28,-86.867 9.418,-130.298c11.602,30.597 23.203,61.197 34.805,91.797c6.469,-20.704 12.943,-41.404 19.412,-62.104c6.383,34.592 12.76,69.184 19.14,103.776c11.856,-23.44 23.706,-46.879 35.561,-70.319c2.14,9.309 8.171,22.568 7.353,31.995c-0.491,5.667 -4.755,5.981 -2.775,11.971c1.802,5.452 5.677,8.377 9.725,12.482c5.473,5.541 4.273,26.604 5.245,34.178c1.989,15.464 1.776,13.272 17.589,11.992c-12.349,-12.704 -11.516,-31.279 -14.415,-48.487c-1.717,-10.162 8.644,-12.396 -0.836,-20.221c-1.404,-1.162 -8.011,0.076 -8.428,-1.779c-0.857,-3.821 -1.714,-7.639 -2.571,-11.457c-2.42,-10.772 -4.235,-47.542 -15.943,-25.766c-9.689,18.02 -19.379,36.041 -29.069,54.064c-4.625,-31.942 -9.249,-63.883 -13.874,-95.822c-1.817,-12.556 -6.814,-13.029 -10.972,-0.807c-5.523,16.236 -11.043,32.471 -16.566,48.703c-10.594,-28.159 -17.409,-65.192 -37.524,-87.872c-0.948,1.105 -1.9,2.213 -2.851,3.318" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M470.134,192.595c4.315,-14.036 8.632,-28.073 12.946,-42.109c1.505,-4.891 -3.383,-11.044 -1.622,-16.014c3.189,-9.001 7.692,-8.076 16.918,-10.473c-10.121,-11.708 12.193,-9.589 18.268,-5.36c2.172,-8.629 4.185,-17.317 6.513,-25.904c0.482,-1.779 6.064,-24.076 9.545,-15.707c7.066,16.974 14.128,33.951 21.194,50.925c1.501,-22.033 2.999,-44.069 4.501,-66.105c0.975,-14.323 1.95,-28.644 2.925,-42.97c0.405,-5.937 -1.008,-14.098 3.889,-18.363c20.106,22.684 26.924,59.711 37.521,87.867c5.195,-15.281 10.39,-30.562 15.588,-45.839c3.227,-9.498 9.456,-19.22 11.616,-4.288c4.734,32.689 9.468,65.375 14.202,98.064c9.205,-17.122 18.413,-34.243 27.618,-51.362c12.793,-23.783 13.242,4.545 16.611,19.545c2.225,9.902 0.387,14.878 10.487,16.539c11.708,1.927 2.5,13.254 2.06,19.965c-1.022,15.502 3.818,37.987 14.492,48.951c-15.819,1.294 -15.609,3.49 -17.595,-11.983c-0.969,-7.571 0.234,-28.653 -5.239,-34.191c-4.052,-4.101 -7.929,-7.024 -9.731,-12.479c-1.971,-5.984 2.284,-6.312 2.772,-11.974c0.812,-9.432 -5.204,-22.68 -7.341,-31.994c-11.859,23.439 -23.714,46.882 -35.573,70.322c-6.38,-34.596 -12.757,-69.191 -19.137,-103.786c-6.469,20.707 -12.937,41.413 -19.403,62.119c-11.608,-30.6 -23.212,-61.2 -34.817,-91.8c-3.138,43.434 -6.279,86.871 -9.418,130.305c-9.973,-19.513 -19.946,-39.025 -29.92,-58.538c-2.713,8.213 -5.428,16.422 -8.144,24.637c-3.505,10.597 -7.346,5.928 -17.778,3.298c5.677,6.672 -2.192,10.115 -2.192,17.967c0,7.568 -8.597,5.473 -9.802,9.994c-2.69,10.091 -5.379,20.18 -8.068,30.275c-2.857,10.718 -2.597,9.683 -13.886,10.466Z" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M405.123,383.052c-11.667,-2.618 -23.334,-5.236 -35,-7.855c-15.905,-3.572 -12.518,-6.504 -13.712,-23.108c-1.256,-17.444 -15.204,-44.069 -29.105,-54.622c-9.852,-7.482 -17.745,-10.748 -29.476,-15.047c-13.216,-4.844 -20.902,-2.482 -35.077,-0.059c-20.774,3.546 -40.532,9.648 -55.059,25.508c-15.6,17.03 -15.423,40.623 -14.356,62.642c0.783,16.17 16.67,42.092 32.172,47.29c10.55,3.54 19.249,9.338 29.456,13.082c12.902,4.731 23.425,3.552 37.24,3.023c24.938,-0.955 38.59,-19.465 54.303,-35.742c1.852,-1.921 6.879,-11.111 8.433,-10.541c8.889,3.266 17.778,6.531 26.667,9.797c4.199,1.542 11.303,4.219 15.576,3.162c9.595,-2.373 7.273,-8.724 7.938,-17.53" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M224.863,411.271c4.078,19.832 13.85,44.193 13.227,64.332c-0.34,10.919 -6.516,23.919 -9.392,34.477c-2.228,8.18 12.69,14.657 18.815,19.394c7.255,-24.633 9.856,-42.272 9.856,-67.931c0,-10.541 -4.217,-21.927 -6.398,-32.225c-1.179,-5.565 -21.058,-14.657 -26.108,-18.047" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M63.157,423.53c-7.491,4.125 -14.982,8.248 -22.473,12.373c-8.954,4.926 -8.064,5.248 -14.551,-3.39c-1.315,-1.749 -2.955,-6.013 -5.221,-4.701c-2.069,1.197 -10.299,4.347 -10.045,6.82c0.692,6.744 4.253,18.47 0.807,24.474c-18.945,32.997 1.868,59.592 4.317,93.434c1.179,16.294 1.661,32.367 1.555,48.717c-0.13,20.08 8.055,27.958 21.885,42.033c4.17,4.247 11.871,8.136 17.657,9.785c4.063,1.155 23.401,3.138 26.04,5.721c3.948,3.868 -0.692,17.077 8.883,17.077c9.228,0 12.411,-4.406 10.023,-14.034c12.382,3.632 29.696,-6.764 40.559,-12.458c13.909,-7.29 22.458,-18.28 29.846,-32.305c5.166,-9.796 6.9,-11.487 4.232,-21.933c-1.761,-6.885 -2.323,-9.763 -1.111,-16.53c3.36,-18.798 6.722,-37.595 10.082,-56.395c2.243,-12.536 -7.071,-33.67 -9.754,-46.215c-2.004,-9.364 -10.665,-29.462 -18.724,-34.29c-17.186,-10.293 -28.886,-15.136 -48.357,-19.699c-16.25,-3.809 -28.998,-0.969 -45.65,1.516" style="fill:#d7bad8;fill-rule:nonzero;"/><path d="M89.076,455.713c-7.29,10.939 -9.027,13.309 -8.088,26.149c1.135,15.517 2.288,17.739 12.982,29.161c13.191,14.084 37.905,11.146 49.258,-2.317c16.002,-18.98 9.891,-36.758 -3.847,-54.317c-14.061,-17.973 -34.947,-7.527 -50.305,1.324" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M488.351,650.502c-2.474,-0.927 -8.854,-12.272 -7.479,-13.235c-2.072,1.451 -7.424,6.634 -11.112,9.025c-16.38,10.629 -8.182,20.732 -0.168,34.234c16.454,27.719 -29.438,35.44 -49.125,36.711c-24.326,1.563 -62.831,0.426 -80.662,-19.122c-8.709,-9.545 -12.137,-22.264 -13.295,-34.844c-0.488,-5.298 -2.665,-14.267 0.068,-19.296c2.184,-2.066 4.707,-3.567 7.577,-4.504c1.513,-2.388 2.819,-4.882 3.921,-7.485c-2.677,4.436 -21.853,18.363 -16.853,4.725c5.89,-16.01 3.688,-24.406 0.586,-41.182c-0.784,-4.234 -3.479,-47.479 3.959,-40.549c9.714,9.075 19.693,7.842 31.555,10.446c-17.494,-0.913 -35.5,-6.451 -38.798,-26.067c-3.424,-20.408 8.23,-37.828 27.427,-44.979c13.306,-4.959 40.313,2.981 45.487,17.742c6.15,17.55 -2.071,37.852 -16.782,48.085c31.014,-21.666 23.236,-70.694 -19.37,-67.665c-4.362,0.31 -12.967,5.378 -17.025,3.75c-11.332,-4.551 6.729,-11.212 8.062,-11.865c21.288,-10.434 39.713,-13.921 64.093,-13.463c22.771,0.431 44.834,3.768 65.933,12.639c8.65,3.634 17.645,7.65 20.884,17.24c2.048,6.025 -2.152,5.735 -6.099,2.296c-9.507,-10.695 -36.307,-9.14 -46.496,-0.55c-18.035,15.21 -15.26,35.142 -2.55,52.057c-14.149,-12.376 -13.605,-34.746 -1.365,-48.215c9.79,-10.778 40.026,-16.531 50.366,-3.325c35.674,18.567 4.055,69.775 -30.248,61.28c12.692,4.435 23.422,-0.464 34.755,-5.724c12.379,-5.778 4.474,24.68 3.649,29.657c-2.192,13.221 -11.288,25.632 -7.231,38.88c1.005,3.286 4.87,36.253 -3.664,23.303" style="fill:#98d2dd;fill-rule:nonzero;"/><path d="M332.717,498.645c-9.852,11.531 -25.124,38.513 -8.197,50.786c13.809,10.006 37.81,24.562 53.342,7.946c12.624,-13.502 24.672,-34.882 8.641,-51.445c-16.318,-16.856 -33.611,-14.196 -53.786,-7.287" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M445.535,498.645c-9.852,11.531 -25.124,38.513 -8.197,50.786c13.803,10.003 41.967,24.687 57.493,8.064c12.621,-13.51 20.509,-34.994 4.493,-51.563c-16.306,-16.865 -33.623,-14.193 -53.789,-7.287" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M205.852,609.481c3.251,17.848 11.413,39.527 0.86,56.453c-12.6,20.219 -33.478,21.505 -55.842,21.076c-20.783,-0.399 -40.041,2.237 -60.564,5.768c-10.772,1.85 -21.333,3.919 -31.59,7.899c-9.264,3.6 -18.52,11.785 -28.729,11.983c8.165,6.091 18.348,17.651 29.208,13.384c13.277,-5.21 26.551,-10.367 39.92,-15.337c11.297,-4.199 24.09,-3.153 35.88,-2.663c14.04,0.583 26.785,-1.844 40.715,-4.075c24.182,-3.883 50.742,-16.64 57.893,-42.151c3.567,-12.719 1.165,-24.861 -1.69,-37.388c-0.721,-3.17 -2.006,-15.124 -4.45,-16.864c-3.085,-2.202 -17.521,1.551 -21.611,1.915" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M839.669,323.6c0,0.145 0.207,0.396 0,0c0,0.053 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M491.828,502.648c0.269,-0.139 0.314,-0.178 0,0c0.086,-0.045 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M526.321,750.386c-0.21,-0.065 -0.378,0.128 0,0c-0.062,-0.02 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M837.13,325.548c-3.094,18.977 -13.671,18.02 -28.875,23.59c-4.674,1.714 -16.589,10.733 -20.41,3.706c-3.617,-6.664 -8.771,-12.334 -15.048,-16.584c-13.463,-9.11 -30.227,-5.851 -43.436,-13.348c-5.893,-3.342 -5.036,-40.251 -4.072,-46.82c-0.819,9.799 4.967,45.86 -9.53,46.111c-6.629,0.112 -9.211,-0.34 -11.301,-6.998c-2.408,-7.692 10,-11.528 4.507,-19.294c0.75,6.481 -15.458,23.425 -16.543,14.584c-3.658,10.789 5.219,2.184 7.914,3.138c0.431,1.829 0.863,3.661 1.291,5.494c-1.037,3.543 -10.712,1.48 -12.896,0.602c-8.782,-3.531 1.339,-13.785 -4.205,-17.352c-4.22,-2.739 2.06,-14.71 2.09,-19.382c0.079,-11.959 0.029,-23.922 0.029,-35.881c-4.031,-0.145 -2.373,37.098 -3.094,42.772c-1.87,-13.901 0.482,-43.112 -10.883,-53.478c-4.25,5.426 4.19,34.3 4.725,41.921c0.594,8.416 6.33,33.566 -3.071,39.246c-8.439,5.104 -22.81,0.887 -32.106,1.924c-11.983,1.339 -31.073,4.719 -42.069,0.422c-2.258,-0.88 -3.57,3.523 -6.936,2.43c-5.567,-1.812 -8.342,-2.997 -14.376,-2.199c-18.109,2.397 -36.35,2.252 -54.5,4.702c-19.723,2.662 -19.235,-0.175 -19.359,-20.376c-0.083,-16.793 1.276,-34.341 3.147,-50.99c-4.279,15 -5.366,30.671 -7.766,46.023c-4.338,-12.426 -10.275,-25.121 -8.484,-38.644c-4.563,11.575 -2.698,24.081 -2.816,36.179c-0.065,6.649 2.704,22.887 -1.921,28.399c-3.632,4.323 -24.634,5.756 -30.488,6.843c-7.972,1.484 -9.459,1.129 -10.428,-7.118c-1.676,0.801 -2.373,2.118 -2.095,3.957c-1.758,7.635 -4.604,5.162 -10.538,6.702c-8.927,2.316 -21.56,6.749 -28.307,13.135c-6.078,5.756 -12.284,15.582 -15.029,23.481c-3.67,10.591 -17.899,-1.102 -19.418,4.377c8.771,0.718 26.989,4.048 31.699,12.325c7.784,13.555 -25.762,4.74 -29.415,5.31c16.708,3.396 3.656,43.635 2.952,55.343c-0.413,6.853 1.629,19.179 -6.604,22.24c-12.219,4.572 -15.872,8.655 -27.273,4.888c-7.021,-2.323 -17.399,-3.478 -21.977,3.762c-7.819,12.358 8.774,9.471 8.313,17.322c-0.437,7.414 -8.106,18.1 -10.148,25.869c-1.811,6.915 -4.211,33.596 -1.052,39.651c3.585,-1.761 0.517,-5.821 3.094,-8.25c0,20.868 2.757,39.929 4.303,60.661c0.697,9.392 -7.329,18.346 -5.452,26.83c1.214,2.219 3.103,3.643 5.665,4.273c1.711,2.42 0.455,10.484 0.582,12.801c0.544,10.077 2.721,20.109 7.328,29.143c6.073,11.909 0.621,10.281 -0.845,22.004c-0.567,4.53 0.907,16.474 9.019,12.443c4.3,-2.133 9.51,0.621 13.121,-3.909c-4.397,-1.859 -2.119,-9.879 2.116,-9.714c3.144,0.952 5.975,2.5 8.498,4.64c5.783,2.727 11.688,1.472 17.772,1.294c23.475,-0.682 44.533,3.697 68.062,-2.198c16.699,-4.182 15.898,12.656 33.294,11.049c16.759,-1.543 26.109,20.458 42.255,25.709c-0.467,-4.261 -21.46,-16.871 -25.461,-22.612c-3.327,-4.776 -23.626,-31.091 -19.078,-35.922c1.141,1.613 2.53,2.975 4.167,4.09c-3.174,-15.754 -18.422,-26.54 -21.894,-41.46c-1.085,-4.666 8.894,-9.406 11.755,-11.079c10.375,-6.072 4.202,2.997 11.445,3.691c-2.142,-5.827 -3.478,-11.841 -6.684,-17.249c0.221,10.127 -5.689,11.906 -13.322,17.657c-13.366,10.068 -7.001,17.565 0.133,29.388c8.138,13.499 10.517,17.16 -3.774,26.888c-11.315,7.698 -26.542,9.38 -39.802,10.656c-22.429,2.161 -57.219,1.407 -75.983,-13.105c-9.675,-7.483 -14.93,-19.687 -17.35,-31.386c-1.593,-7.689 -1.888,-15.55 -2.281,-23.363c-0.26,-5.369 6.282,-4.326 6.909,-6.283c-0.898,1.221 -0.695,2.229 0.615,3.021c2.633,-6.097 5.815,-11.735 6.672,-18.446c-5.762,6.578 -9.941,15.485 -19.574,16.882c1.049,-5.487 2.485,-11.081 5.555,-15.833c5.254,-8.174 -1.052,-13.443 -2.186,-21.67c-2.332,-16.888 -6.827,-33.318 -2.37,-50.328c6.507,4.471 33.655,20.361 40.836,9.616c-46.164,9.418 -58.422,-47.751 -19.628,-66.746c10.576,-5.18 42.929,-0.133 46.138,14.527c5.585,25.399 -5.668,34.297 -21.058,51.064c7.68,3.543 18.942,-11.655 22.116,-16.912c6.049,-10.015 9.039,-21.436 3.726,-32.335c-5.281,-10.827 -15.954,-18.557 -27.589,-21.326c-5.96,-1.416 -26.3,5.112 -28.563,3.8c-8.251,-4.773 5.874,-8.212 8.079,-9.057c6.259,-2.4 8.859,-9.436 16.229,-10.526c13.239,-1.951 26.516,-3.975 39.92,-4.27c30.278,-0.668 81.575,2.036 95.275,33.285c-1.974,-1.935 -4.323,-2.727 -7.051,-2.375c1.188,5.1 8.729,10.401 10.969,15.815c4.882,11.794 2.435,20.325 -3.032,31.188c-8.661,17.228 -27.101,12.255 -41.867,13.523c15.148,5.357 24.941,4.018 39.793,-3.236c9.681,-4.607 2.453,18.847 1.652,24.796c-1.699,12.63 -11.209,26.477 -8.579,38.832c1.62,7.616 5.178,15.305 4.968,23.207c-0.163,7.237 -2.146,3.49 -6.176,3.023c-0.529,3.321 3.206,4.669 5.724,3.336c5.487,-2.905 1.35,-11.049 0.679,-15.233c-1.022,-6.401 31.235,-22.494 37.305,-26.351c10.783,-6.862 26.785,-22.396 34.27,-8.182c3.966,7.532 9.01,14.406 13.487,21.628c2.24,3.617 12.598,15.919 12.84,16.631c-2.689,-6.218 -5.245,-8.537 3.366,-8.209c14.468,0.543 28.898,-0.893 43.342,-1.333c25.558,-0.78 51.746,-1.779 77.302,-3.93c7.456,-0.63 18.301,-3.588 25.668,-0.78c7.417,2.825 6.773,14.157 13.386,18.622c8.404,5.674 17.731,2.072 26.794,0.686c10.13,-1.545 23.768,1.448 32.127,-5.801c-6.128,0.683 -23.25,2.364 -28.457,-1.285c-3.516,-2.468 -9.772,-13.786 -3.626,-16.454c5.958,-2.589 16.091,-0.854 18.224,-8.862c3.195,-11.965 0.683,-24.74 -0.65,-36.838c-2.429,-21.927 1.534,-43.895 1.486,-65.529c-0.017,-8.28 -0.487,-17.893 6.079,-24.046c6.995,-6.563 16.087,-15.168 16.554,-25.537c-2.644,5.168 -18.451,31.208 -24.279,19.332c-3.439,-7.007 5.766,-21.082 3.612,-24.081c-4.409,-5.878 -4.864,-0.541 -5.801,-12.231c-0.975,-12.122 -1.968,-24.291 -1.295,-36.46c1.032,-18.458 -10.002,-34.761 10.083,-43.41c2.929,-1.262 16.918,-7.867 19.702,-5.053c2.523,2.55 -3.449,24.899 -4.046,28.992c-1.666,11.409 -3.912,22.914 -6.864,34.06c-1.342,5.056 -11.463,22.686 -7.057,27.08c11.176,-18.268 12.902,-42.671 15.872,-63.318c1.504,-10.458 3.646,-20.771 5.93,-31.082c2.084,-9.408 8.579,-22.827 8.109,-32.346c-1.407,-0.159 -2.249,0.441 -2.526,1.794m-367.6,346.704c-2.353,-4.072 -6.502,-6.95 -6.756,-12.08c1.989,3.555 6.868,16.546 12.882,15.118c-4.693,3.275 1.019,5.435 0.862,8.922c-2.494,-3.889 -4.822,-7.879 -6.988,-11.96m27.701,-345.569c-12.291,-6.035 -4.992,-23.292 -4.98,-35.727c5.222,5.012 4.649,35.564 4.98,35.727" style="fill:#020303;fill-rule:nonzero;"/><path d="M860.767,290.456c0.964,-0.975 -0.08,0.122 0,0c0.136,-0.136 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1188.16,308.174c23.851,-15.816 -20.47,-19.344 -22.331,-22.636c-9.495,-16.853 -30.597,-19.991 -44.646,-31.096c-1.997,-1.578 -13.327,-4.699 -11.223,-7.16c3.827,-4.48 1.105,-9.321 -4.737,-3.78c-8.546,8.103 1.64,7.299 -13.345,5.245c-9.501,-1.303 -17.902,3.786 -26.682,-1.926c-7.476,-4.865 -17.467,-5.426 -25.647,-2.01c-4.468,1.865 -19.716,3.709 -21.903,6.673c-6.471,8.77 3.422,8.862 3.685,16.912c0.198,6.241 4.329,24.264 1.578,29.027c-6.397,11.1 -5.948,17.181 -15.363,5.364c-6.407,-8.035 -15.408,-15.999 -23.718,-22.039c-14.636,-10.647 -43.64,-21.785 -61.835,-17.338c1.029,0.461 1.995,1.029 2.905,1.7c-24.834,2.074 -43.954,5.78 -63.714,24.964c14.025,-3.454 25.836,-15.712 40.603,-20.021c-3.399,3.91 -39.084,27.066 -33.31,32.53c-0.81,-0.766 17.893,-16.735 19.746,-18.165c8.912,-6.865 18.927,-11.696 30.422,-11.383c-3.354,-1.306 -6.782,-1.578 -10.283,-0.81c6.09,-6.858 10.679,-0.038 17.452,-0.597c10.636,-0.883 21.407,-1.838 31.903,0.751c24.247,5.984 40.331,20.742 50.585,42.281c9.726,20.506 12.686,43.271 7.917,65.878c-2.086,9.885 -6.209,19.787 -12.456,27.783c-4.092,5.243 -21.436,14.681 -21.666,20.982c8.038,-1.135 13.203,-7.66 18.67,-12.911c1.445,15.269 5.957,30.115 13.528,43.472c2.533,4.468 12.524,14.164 7.55,19.722c-4.923,5.508 -17.485,5.736 -24.101,8.422c-5.056,2.051 -11.052,5.044 -12.775,10.774c-1.844,6.138 3.726,10.113 1.031,16.082c-4.024,8.918 -8.696,32.813 -21.468,32.092c10.014,1.022 -10.062,33.454 -12.636,40.224c-2.24,5.881 -10.299,10.914 -5.065,17.719c5.292,6.906 16.838,-0.789 23.995,-1.398c-9.521,-0.295 -5.36,-14.509 -0.895,-19.054c4.113,-4.184 26.27,19.681 31.264,22.098c11.617,5.618 2.175,20.86 1.286,30.059c-1.844,19.031 13.481,12.846 27.163,11.407c-0.133,-1.995 -7.03,-0.972 -8.957,-0.931c7.104,-1.489 18.508,-101.596 24.767,-99.314c5.1,1.858 -8.443,40.313 -4.616,46.681c5.047,8.404 13.07,-1.395 15.103,-5.839c3.478,-7.604 5.887,-9.058 14.285,-3.121c12.852,9.126 36.746,14.022 45.993,26.658c4.471,6.108 6.885,14.016 11.256,20.425c5.898,8.656 8.874,-2.387 14.149,-0.316c-9.35,-3.968 -9.584,-37.198 -12.799,-45.393c-2.674,-6.817 -26.114,-44.018 -12.872,-43.357c-4.583,-3.555 -6.986,1.029 -9.976,-5.936c-2.45,-5.71 -1.587,-13.077 3.191,-17.367c8.333,-7.512 -14.761,-15.039 -17.716,-19.061c12.728,-0.561 24.347,-1.158 36.856,-4.01c6.59,-1.504 13.029,-3.779 18.283,-8.197c4.607,-3.871 5.553,1.93 9.046,3.936c7.349,4.226 18.705,1.593 11.536,-6.959c-11.229,-13.431 -3.635,-14.14 -4.589,-30.662c-1.646,-28.478 -0.703,-52.385 14.22,-77.299c6.628,-11.064 13.717,-24.019 15.26,-37.012c0.996,-8.372 -10.674,-28.263 -3.904,-32.763m-172.745,277.446c-0.984,2.828 -2.145,5.585 -3.484,8.266c-12.334,-11.25 -37.686,-17.394 -29.914,-36.496c5.381,-13.23 10.585,-2.981 18.661,3.609c9.279,7.576 18.567,11.202 14.737,24.621" style="fill:#020303;fill-rule:nonzero;"/><path d="M46.277,645.825c11.764,5.478 25.709,11.572 38.992,9.542c1.099,5.254 0.996,22.916 11.681,17.458c8.576,-4.341 -2.192,-14.172 3.558,-16.111c8.056,-2.719 17.565,0.7 26.623,-3.029c11.799,-4.852 23.516,-11.664 32.331,-21.008c6.457,-6.846 11.173,-15.215 13.747,-24.261c1.324,-4.66 -2.387,-22.674 -9.775,-22.068c-25.446,2.098 -51.67,16.465 -77.388,13.472c7.811,-2.411 16.383,-1.345 23.88,-4.932c-7.574,-6.611 -18.688,-4.208 -26.932,-0.432c0.777,-4.19 3.918,-4.94 7.588,-6.708c7.737,-2.597 -1.838,-9.385 0.559,-14.908c-0.771,-0.157 26.551,26.501 21.924,11.043c-6.481,-21.542 3.619,-3.871 13.939,-5.611c8.227,-1.386 16.176,-3.736 24.287,-5.612c13.854,-3.206 10.062,-6.75 11.703,-19.77c1.761,-14.004 19.822,-31.92 8.489,-44.414c7.542,-11.168 6.815,6.722 11.428,5.868c3.253,-0.591 -1.283,-20.602 7.325,-14.657c-12.216,26.684 37.415,6.351 37.382,7.497c0.337,-12.376 7.757,-21.374 6.091,-34.583c-1.797,-14.229 -4.699,-28.431 -8.109,-42.349c-5.308,-21.717 -29.043,-29.034 -30.975,-53.721c6.028,14.129 12.603,27.958 25.774,36.818c-6.711,-15.222 -24.48,-44.288 -16.513,-61.227c4.456,42.418 27.467,74.9 70.892,82.825c-8.109,0.636 -15.818,-1.941 -23.51,-4.054c-1.93,7.993 3.818,17.819 5,25.703c1.285,8.576 1.649,17.571 2.169,26.232c0.227,3.78 -5.201,38.003 -8.907,36.626c0.301,0.109 5.91,-49.064 5.313,-55.29c-0.957,-9.976 -2.961,-20.662 -6.761,-29.979c-4.291,-10.517 -16.903,-9.542 -22.021,-18.883c4.654,14.631 6.811,31.067 9.152,46.217c1.377,8.916 2.411,18.006 1.037,26.995c-0.656,4.282 -8.667,19.403 -6.75,22.739c1.992,3.461 10.006,5.192 13.263,7.03c7.181,4.052 11.093,11.369 14.852,18.411c7.249,13.584 1.817,26.069 19.489,26.069c-4.554,5.733 -13.135,-0.319 -13.502,10.919c-0.363,11.23 -3.602,20.042 -12.816,27.175c-6.105,4.725 -18.422,5.508 -16.968,14.932c2.21,14.329 5.455,28.984 2.591,43.475c-5.771,29.241 -27.786,39.14 -53.767,44.906c-13.407,2.972 -28.472,5.345 -42.228,4.477c-5.414,-0.346 -25.636,1.592 -29.477,-2.143c6.732,-3.265 14.684,-0.901 22.13,-0.91c13.464,-0.015 26.806,-2.015 40.142,-3.635c19.643,-2.393 43.431,-12.337 53.452,-30.307c6.114,-10.969 8.965,-20.895 6.297,-33.324c-1.158,-5.405 -2.881,-25.71 -9.973,-26.673c-22.941,-3.118 -2.861,28.83 -9.584,40.928c-4.645,-3.458 -4.651,-19.56 -6.025,-26.475c-3.28,-16.489 -11.572,-10.91 -22.202,-21.049c-7.766,-7.358 -37.396,52.172 -18.974,49.247c-3.632,4.784 -14.542,8.658 -20.384,7.192c-4.705,-1.194 -1.333,-7.494 -6.463,-8.688c-4.669,-1.084 -13.227,5.308 -17.66,6.578c-12.937,3.7 -15.047,-1.66 -19.397,9.666c-0.304,0.789 10.544,6.54 11.948,5.934c-4.867,4.232 -10.178,0.118 -15.872,1.25c-9.312,1.859 -13.712,-5.337 -14.849,-13.501c-1.667,-11.756 -33.499,-3.833 -37.246,-16.912" style="fill:#020303;fill-rule:nonzero;"/><use xlink:href="#_Image1" x="571.802" y="683.422" width="302px" height="111px"/><path d="M867.309,304.65c2.89,3.26 -13.88,35.145 -14.743,42.234c-2.503,20.588 6.017,42.024 17.825,58.508c10.63,14.849 27.057,24.822 44.208,30.431c8.564,2.799 17.559,4.35 26.584,4.155c8.189,-0.171 23.452,-7.999 30.748,-4.415c-36.596,23.079 -109.69,11.433 -127.101,-31.986c-6.995,15.012 -5.777,33.215 -16.463,46.602c14.805,-48.212 11.096,-101.894 38.942,-145.529" style="fill:#020303;fill-rule:nonzero;"/><path d="M192.782,449.468c5.364,3.336 12.695,22.517 9.797,28.617c-1.732,3.643 -8.812,4.627 -6.197,9.763c2.656,5.21 -1.815,10.381 -5.967,12.013c-1.335,-2.678 2.031,-6.073 1.874,-8.907c-0.402,-7.137 -8.939,-2.228 -12.27,-1.611c-4.819,0.896 -9.674,-0.333 -12.473,4.797c-3.579,6.56 4.119,9.329 2.441,14.391c-12.184,-3.981 -5.789,-14.055 -3.156,-21.761c1.936,-5.659 -2.252,-7.314 2.925,-12.054c4.342,-3.942 0.99,-10.05 -0.818,-14.202c-3.836,-8.783 -9.846,-16.404 -17.323,-22.376c-4.477,-3.579 -12.305,-5.715 -12.612,-10.653c4.164,2.565 11.513,8.652 16.324,7.275c4.704,-1.383 21.879,-4.74 23.564,3.36c-3.384,3.008 -10.089,-1.631 -14.176,-0.818c-8.445,1.649 2.955,12.107 5.104,15.806c6.61,11.404 15.233,16.549 23.017,26.197c8.466,-9.58 -5.237,-24.128 -0.054,-29.837" style="fill:#020303;fill-rule:nonzero;"/><path d="M169.987,508.535c-4.249,-4.619 -7.588,-9.507 -3.546,-15.704c4.66,-7.154 6.791,-2.724 13.88,-4.485c2.769,-0.683 8.478,-5.659 11.484,-2.707c5.543,5.458 1.179,12.822 -4.581,14.799c-4.949,1.696 3.517,13.649 -5.461,16.655c-3.351,1.114 -3.348,-7.264 -3.581,-8.198c-1.1,-4.462 -5.367,-0.408 -8.195,-0.36" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M22.226,619.5c6.8,9.894 14.48,19.347 24.238,26.481c-11.708,-1.629 -14.397,-17.03 -24.914,-18.75c-4.743,-0.775 -26.067,7.231 -20.686,-6.567c2.352,-6.028 8.629,-3.478 13.008,-5.978c3.827,-2.18 2.202,-10.316 2.175,-13.091c-0.074,-6.982 5.115,-37.754 -5.555,-37.836c12.931,-4.667 -3.396,-40.393 -4.956,-48.431c13.756,-5.269 10.053,101.412 16.69,104.172" style="fill:#020303;fill-rule:nonzero;"/><path d="M302.742,361.325c3.262,25.694 -48.475,28.67 -43.765,-1.442c4.454,-28.458 43.833,-28.824 43.765,1.442" style="fill:#020303;fill-rule:nonzero;"/><path d="M214.063,654.794c3.874,22.887 -31.936,33.809 -48.552,33.806c-14.149,0 -28.029,-2.411 -42.243,-1.599c-17.843,1.026 -34.672,8.082 -52.4,8.895c24.773,-12.287 55.671,-11.927 82.55,-10.987c11.924,0.417 25.89,0.721 36.98,-4.261c12.613,-5.665 13.848,-19.489 23.665,-25.854" style="fill:#020303;fill-rule:nonzero;"/><path d="M129.734,452.108c-12.594,-9.066 -33.064,-1.108 -43.094,8.682c-13.12,12.802 -4.249,29.474 -3.203,44.306c-4.356,-8.901 -6.557,-21.72 -5.863,-31.625c1.129,-16.132 12.757,-18.827 24.983,-25.284c26.982,-14.252 48.38,14.308 50.059,38.431c0.662,-0.961 1.415,-1.844 2.26,-2.648c0.751,7.018 -2.99,13.097 -4.882,19.548c-3.587,-7.994 2.264,-20.104 -0.981,-29.306c-2.958,-8.383 -10.942,-18.617 -19.279,-22.104" style="fill:#020303;fill-rule:nonzero;"/><path d="M5.691,515.166c-7.456,-17.949 -8.343,-40.735 4.083,-56.586c5.612,-7.149 -4.021,-17.539 0.003,-26.451c3.227,-7.143 18.62,-8.085 15.11,-3.071c-2.054,2.926 -11.067,-2.931 -13.469,8.753c-2.048,9.965 10.103,13.984 2.219,22.113c-16.067,16.558 -5.975,36.286 -7.946,55.242" style="fill:#020303;fill-rule:nonzero;"/><path d="M128.908,508.587c-14.196,-0.119 -14.518,-19.33 -2.178,-18.886c10.106,0.402 15.056,18.983 2.178,18.886" style="fill:#020303;fill-rule:nonzero;"/><path d="M489.912,156.116c-1.291,7.213 -12.255,32.219 -6.989,37.751c7.024,7.42 2.406,25.295 15.334,22.866c-5.086,0.018 -7.94,3.738 -8.135,7.914c-2.143,0.349 -3.384,-20.402 -5.777,-23.818c-5.018,-7.166 -19.628,-7.101 -24.711,0.071c2.208,-7.187 12.412,-8.399 10.733,-17.406c2.929,2.051 -0.535,16.9 8.688,7.663c7.134,-7.145 4.654,-26.123 10.857,-35.041c-0.538,3.002 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M354.768,343.946c0.984,7.202 0.461,18.28 3.818,24.776c2.506,4.852 8.694,2.893 11.598,7.665c-7.024,-3.221 -13.253,-0.612 -15.195,6.927c-1.758,6.802 7.296,3.1 8.694,7.834c0.018,-0.018 -7.435,-1.525 -8.974,-0.928c-5.349,2.08 -5.204,8.318 -11.014,9.882c4.016,-6.215 16.212,-56.448 11.073,-56.156" style="fill:#020303;fill-rule:nonzero;"/><path d="M845.579,714.138c-15.027,-3.738 -29.66,-11.168 -44.678,-15.568c-9.607,-2.819 -33.36,-4.81 -39.412,-13.099c7.084,-4.173 36.924,9.609 45.127,11.773c14.208,3.747 26.844,9.081 38.963,16.894c-7.929,-1.971 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M686.259,191.973c15.886,-10.895 3.073,-34.453 4.294,-49.689c7.662,2.825 4.143,45.605 12.662,42.225c-3.023,3.035 -14.716,8.327 -16.956,7.464c12.261,-8.41 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M29.164,442.014c1.3,-2.601 -1.886,-5.402 0.124,-7.527c4.772,4.699 2.485,22.74 -6.404,15.795c-16.028,-12.526 5.724,-18.05 6.28,-8.268" style="fill:#020303;fill-rule:nonzero;"/><path d="M557.939,245.345c-0.195,0.186 21.404,-13.227 11.073,-15.118c-1.803,-0.328 -4.202,5.742 -5.706,7.287c1.74,-3.502 -2.019,-5.538 -2.051,-8.809c-0.103,-6.111 -8.573,7.63 -7.621,7.243c-3.056,-15.213 22.905,-11.011 19.586,-7.231c0.559,0.727 0.05,11.457 -1.22,13.233c-1.484,2.074 -12.438,3.094 -14.061,3.395c3.032,-2.855 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M719.57,195.535c-2.302,-3.913 -3.706,-9.111 -9.377,-8.86c-6.788,0.26 -5.505,-13.658 -6.17,-17.547c-1.48,-8.694 -3.596,-17.275 -4.651,-26.043c-0.724,-5.851 4.039,-8.511 3.652,-14.938c7.013,3.768 -1.906,12.524 -1.486,18.047c0.606,7.848 2.825,15.821 4.376,23.513c0.99,4.888 0.39,13.579 7.09,14.87c5.96,1.129 6.152,5.949 6.566,10.958" style="fill:#020303;fill-rule:nonzero;"/><path d="M139.098,427.362c-3.759,3.733 -19.318,-6.317 -24.321,-7.299c-9.128,-1.79 -28.324,-5.404 -36.69,0.151c15.399,-12.89 46.132,0.774 61.011,7.148" style="fill:#020303;fill-rule:nonzero;"/><path d="M757.209,682.731c-18.519,-1.903 -34.627,-17.086 -53.809,-9.069c15.148,-11.436 39.072,2.698 53.809,9.069" style="fill:#020303;fill-rule:nonzero;"/><path d="M652.708,753.041c-9.311,-0.597 -18.374,-14.019 -28.277,-16.081c6.268,-0.692 0.331,-1.102 4.492,-3.257c6.282,4.675 12.006,10.204 19.11,13.673c6.233,3.044 13.242,3.845 18.715,7.82c-5.996,2.709 -8.419,-3.343 -14.04,-2.155" style="fill:#020303;fill-rule:nonzero;"/><path d="M474.855,174.175c-2.195,-6.994 3.842,-15.597 5.727,-22.13c1.995,-6.915 -5.913,-17.873 2.019,-22.571c-5.828,7.086 2.254,10.035 2.104,16.575c-0.207,8.841 -6.336,20.159 -9.85,28.126" style="fill:#020303;fill-rule:nonzero;"/><path d="M189.093,353.26c0.142,-2.763 1.451,-28.998 6.061,-27.872c1.933,0.458 -2.967,30.387 -4.775,30.582c-1.336,-0.437 -1.765,-1.341 -1.286,-2.71" style="fill:#020303;fill-rule:nonzero;"/><path d="M489.974,224.806c0.925,2.299 1.318,4.683 1.179,7.16c7.343,-1.723 11.871,-4.743 10.325,-12.828c4.997,4.515 2.078,12.13 -4.022,13.626c-8.992,2.219 -4.001,8.481 -7.207,14.225c-0.086,-7.449 -1.274,-15.275 -0.275,-22.183" style="fill:#020303;fill-rule:nonzero;"/><path d="M110.932,706.508c-1.232,3.351 -29.914,12.866 -33.844,9.775c11.586,-2.745 22.074,-10.615 33.844,-9.775c-1.64,4.462 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M307.326,430.167c-9.565,3.065 -18.859,7.329 -29.119,3.526c10.038,0.756 19.246,-4.258 29.119,-3.526" style="fill:#020303;fill-rule:nonzero;"/><path d="M512.085,735.66c4.046,-1.194 32.181,17.84 32.456,17.281c-1.233,2.506 -31.238,-14.03 -32.456,-17.281c3.904,-1.155 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M686.132,191.849c2.175,4.601 -1.17,46.995 -1.404,47.042c0.089,-15.798 -1.791,-31.533 1.404,-47.042" style="fill:#020303;fill-rule:nonzero;"/><path d="M543.844,754.513c5.221,-0.538 29.089,16.484 28.436,17.376c-1.808,2.459 -25.283,-15.254 -28.436,-17.376" style="fill:#020303;fill-rule:nonzero;"/><path d="M518.581,221.858c-2.967,9.417 -5.925,18.835 -8.883,28.25c0.928,-10.08 2.252,-20.021 8.883,-28.25" style="fill:#020303;fill-rule:nonzero;"/><path d="M572.092,780.364c-9.853,-2.003 -17.19,-8.847 -23.154,-15.957c7.79,1.185 16.865,11.782 23.154,15.957" style="fill:#020303;fill-rule:nonzero;"/><path d="M589.569,231.27c8.204,9.302 -0.744,21.01 -10.029,23.936c7.754,-5.624 13.797,-14.613 10.029,-23.936" style="fill:#020303;fill-rule:nonzero;"/><path d="M309.16,428.927c6.032,-3.863 11.46,-7.347 16.954,-10.875c0.053,5.807 -7.84,10.919 -16.954,10.875" style="fill:#020303;fill-rule:nonzero;"/><path d="M698.856,675.918c-6.886,3.741 -13.777,7.47 -20.659,11.214c-2.542,-7.384 20.664,-11.196 20.659,-11.214" style="fill:#020303;fill-rule:nonzero;"/><path d="M549.11,764.233c-9.187,-2.019 -17.051,-6.951 -22.952,-13.671c5.062,1.333 21.073,9.48 22.952,13.671c-9.187,-2.019 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M860.591,290.286c1.02,3.815 -11.767,16.56 -14.279,20.189c2.577,-8.363 7.571,-15.363 14.279,-20.189" style="fill:#020303;fill-rule:nonzero;"/><path d="M545.077,240.307c-4.683,0.41 -5.747,5.597 -9.545,7.18c1.641,-4.512 9.74,-15.162 15.881,-11.619c-0.083,0.047 -6.927,4.282 -6.336,4.439" style="fill:#020303;fill-rule:nonzero;"/><path d="M545.077,240.307c0.526,-0.526 2.302,-2.409 3.443,-1.176c-1.646,-1.776 -7.373,19.686 -7.494,21.019c-3.135,-7.264 -0.086,-13.839 4.051,-19.843" style="fill:#020303;fill-rule:nonzero;"/><path d="M178.887,438.124c6.179,1.773 12.166,4.509 13.892,11.35c-4.013,0.872 -15.098,-7.16 -13.892,-11.35c6.262,1.793 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M215.419,300.031l-13.174,12.964c3.407,-5.26 7.376,-9.982 13.174,-12.964" style="fill:#020303;fill-rule:nonzero;"/><path d="M337.922,310.068c-5.452,-4.45 -10.535,-9.332 -15.84,-13.992c6.862,2.884 11.706,8.041 15.84,13.992" style="fill:#020303;fill-rule:nonzero;"/><path d="M490.077,156.28c-0.154,-10.295 7.881,-3.348 8.829,-11.474c1.342,8.705 -6.04,5.307 -8.829,11.474c-0.054,-3.549 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.588,264.045c-1.924,4.028 0.393,-15.162 0.263,-14.066c0.408,-0.39 5.916,-2.857 5.916,-4.799c-0.727,6.693 -5.562,11.729 -6.179,18.865" style="fill:#020303;fill-rule:nonzero;"/><path d="M506.367,727.479c-4.888,0.777 -8.883,-9.714 -9.861,-13.017c2.846,5.189 8.324,7.417 9.861,13.017c-4.17,0.662 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M694.241,766.636c-4.096,0.089 -7.488,0.999 -10.946,-1.448c5.059,-4.881 8.384,1.448 10.946,1.448" style="fill:#020303;fill-rule:nonzero;"/><path d="M574.008,772.968c19.725,2.272 14.92,15.127 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M601.906,658.557c-1.51,-0.588 -6.058,-10.053 -4.231,-10.686c3.401,-1.173 7.361,11.407 4.231,10.686" style="fill:#020303;fill-rule:nonzero;"/><path d="M694.241,766.636c0.094,-3.294 12.136,5.281 13.933,5.973c-6.738,1.415 -8.59,-3.892 -13.933,-5.973" style="fill:#020303;fill-rule:nonzero;"/><path d="M604.276,661.336c4.089,1.312 7.213,6.002 8.229,9.409c-4.462,2.036 -6.176,-6.623 -8.229,-9.409c4.704,1.513 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M614.113,676.697c2.007,-1.073 9.631,7.542 11.173,9.01c-5.407,-0.201 -9.021,-4.76 -11.173,-9.01c3.638,-1.95 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.822,757.881c3.922,0.792 7.107,2.784 9.554,5.984c-1.894,0.222 -12.408,-2.536 -9.554,-5.984" style="fill:#020303;fill-rule:nonzero;"/><path d="M206.282,340.492c-1.716,-4.755 0.107,-7.707 1.969,-10.668c1.06,3.413 -0.21,6.425 -1.969,10.668" style="fill:#020303;fill-rule:nonzero;"/><path d="M250.189,284.884c-3.916,-0.181 -7.314,4.042 -11.534,1.134c5.133,0.589 6.206,-3.031 11.534,-1.134" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.822,757.881l-0.103,2.813c-3.194,-1.797 -6.135,-1.034 -6.135,-5.325c2.276,0.352 4.356,1.188 6.238,2.512" style="fill:#020303;fill-rule:nonzero;"/><path d="M512.266,735.484c-2.311,-2.577 -6.324,-3.697 -5.905,-7.999c0,0.168 5.849,5.402 5.905,7.999" style="fill:#020303;fill-rule:nonzero;"/><path d="M544.008,297.094c4.852,0.555 8.313,0.945 12.27,1.398c-6.345,1.456 -7.577,1.383 -12.27,-1.398" style="fill:#020303;fill-rule:nonzero;"/><path d="M43.675,721.924c-0.851,-0.192 -12.243,-3.951 -8.862,-7.14c0.44,-0.407 8.827,7.101 8.862,7.14" style="fill:#020303;fill-rule:nonzero;"/><path d="M204.499,349.893c-2.914,-0.819 -0.733,-8.029 1.2,-8.682c2.092,-0.686 -0.716,8.333 -1.2,8.682" style="fill:#020303;fill-rule:nonzero;"/><path d="M147.536,501.274c-0.316,5.281 -1.906,7.725 -5.05,9.879c0.041,-4.013 3.049,-5.851 5.05,-9.879" style="fill:#020303;fill-rule:nonzero;"/><path d="M622.967,766.227c0.907,5.845 -7.243,3.891 -6.873,2.822c0.215,-0.692 6.374,-2.666 6.873,-2.822c0.884,5.691 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M631.183,693.703c-3.295,-1.652 -6.324,-3.779 -5.904,-7.99c2.402,1.941 4.947,5.458 5.904,7.99c-3.316,-1.66 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M624.609,736.791c-2.133,-1.98 -4.613,-3.33 -7.432,-4.051c4.427,-0.668 6.959,-0.733 7.432,4.051" style="fill:#020303;fill-rule:nonzero;"/><path d="M681.745,134.287c2.524,2.181 5.051,4.362 7.574,6.54c-4.243,-1.147 -6.9,-2.335 -7.574,-6.54c2.524,2.184 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M839.836,323.77c-0.233,-3.502 0.713,-6.664 2.834,-9.489c1.126,3.742 -0.263,7.279 -2.834,9.489c-1.368,-3.611 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M530.637,293.685c3.64,-0.599 6.061,1.28 8.398,4.324c-3.735,-0.104 -5.493,-3.422 -8.398,-4.324" style="fill:#020303;fill-rule:nonzero;"/><path d="M605.935,775.346c-0.26,0.414 9.031,-7.807 7.396,-3.203c-0.39,1.093 -6.548,3.41 -7.396,3.203" style="fill:#020303;fill-rule:nonzero;"/><path d="M347.044,325.226c1.799,2.299 3.818,4.524 3.702,8.576c-3.419,-2.707 -2.683,-5.972 -3.702,-8.576" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.218,292.875c-1.965,2.618 6.611,5.803 -7.851,2.154c-1.339,0.322 10.026,-2.589 7.851,-2.154" style="fill:#020303;fill-rule:nonzero;"/><path d="M309.808,291.794c-3.726,-2.382 -5.913,-3.78 -8.451,-5.408c3.936,-0.334 3.936,-0.334 8.451,5.408" style="fill:#020303;fill-rule:nonzero;"/><path d="M229.103,290.077c1.945,-1.191 3.978,-2.196 6.106,-3.014c1.294,0.115 -2.58,4.036 -6.106,3.014" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.85,249.975c-2.833,0.671 -0.534,4.584 -3.726,5.039c-1.735,-4.306 1.72,-6.891 3.726,-5.039" style="fill:#020303;fill-rule:nonzero;"/><path d="M45.274,706.179c2.024,-2.642 6.055,-5.846 7.334,-1.794c-2.299,1.173 -4.746,1.77 -7.334,1.794" style="fill:#020303;fill-rule:nonzero;"/><path d="M845.406,714.311c2.423,-0.807 4.441,0.035 6.631,1.008c-0.095,0.732 -0.263,1.448 -0.505,2.148c1.253,1.084 -7.949,-4.066 -6.126,-3.156" style="fill:#020303;fill-rule:nonzero;"/><path d="M141.76,511.273c-2.536,4.327 -4.956,5.47 -8.23,5.272c2.263,-1.448 4.515,-2.887 8.23,-5.272" style="fill:#020303;fill-rule:nonzero;"/><path d="M715.181,773.153c3.336,-0.175 1.371,4.152 0.2,3.661c-2.136,-0.907 -3.02,-3.395 -0.2,-3.661" style="fill:#020303;fill-rule:nonzero;"/><path d="M623.036,766.325c2.326,-1.345 5.222,-0.189 7.515,-1.616c-2.459,2.621 -4.362,3.537 -7.515,1.616" style="fill:#020303;fill-rule:nonzero;"/><path d="M446.736,314.795c0.683,2.604 0.325,5.012 -1.073,7.223c-3.853,2.792 2.19,-9.613 1.073,-7.223" style="fill:#020303;fill-rule:nonzero;"/><path d="M702.887,283.182c-0.975,1.912 -2.509,2.944 -4.598,3.097c-0.562,-4.033 2.074,-2.488 4.598,-3.097" style="fill:#020303;fill-rule:nonzero;"/><path d="M449.125,288.734c-0.073,3.487 1.064,6.037 -1.926,8.167c-0.411,-2.665 -0.021,-4.87 1.926,-8.167" style="fill:#020303;fill-rule:nonzero;"/><path d="M553.181,245.186c-0.863,-2.845 0.009,-4.305 3.126,-5.165c-0.62,2.163 -0.978,3.853 -3.126,5.165" style="fill:#020303;fill-rule:nonzero;"/><path d="M595.879,782.015c-2.937,-2.929 1.785,-3.614 4.412,-4.072c-1.471,1.356 -2.943,2.713 -4.412,4.072" style="fill:#020303;fill-rule:nonzero;"/><path d="M614.315,731.51c-1.767,-2.612 -2.765,-4.104 -3.566,-5.277c2.337,-0.577 2.842,1.492 3.566,5.277" style="fill:#020303;fill-rule:nonzero;"/><path d="M858.857,732.053c-1.599,0.739 -3.201,1.474 -4.799,2.213c0.286,-6.291 2.287,-2.151 4.799,-2.213" style="fill:#020303;fill-rule:nonzero;"/><path d="M1113.43,245.367c2.527,0.739 3.794,2.426 3.797,5.059c-5.366,-0.198 -2.538,-1.933 -3.797,-5.059c2.166,1.016 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M192.588,366.916l0,7.148c-1.463,-2.822 -0.99,-4.923 0,-7.148" style="fill:#020303;fill-rule:nonzero;"/><path d="M977.193,431.599c0.809,-2.648 3.028,-2.397 5.094,-2.456c-0.863,2.539 -2.781,2.905 -5.094,2.456" style="fill:#020303;fill-rule:nonzero;"/><path d="M64.678,724.065c-0.925,3.18 -3.094,2.488 -5.913,2.181c2.187,-1.392 4.303,-0.872 5.913,-2.181" style="fill:#020303;fill-rule:nonzero;"/><path d="M94.154,584.189c0.854,3.221 -0.337,4.406 -3.57,3.555l3.57,-3.555Z" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M192.377,364.651c-2.527,-0.955 -2.074,-2.509 -1.569,-4.956c0.694,2.175 1.126,3.57 1.569,4.956" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.815,708.753c0.136,0.549 -2.269,-5.689 -1.282,-4.705c1.968,1.129 2.396,2.695 1.282,4.705" style="fill:#020303;fill-rule:nonzero;"/><path d="M684.175,242.638c-0.313,-1.418 0.157,-2.187 1.41,-2.308c0.845,0.789 1.2,1.72 1.064,2.793c-0.887,0.558 -1.711,0.396 -2.474,-0.485" style="fill:#020303;fill-rule:nonzero;"/><path d="M629.062,733.559c-2.16,1.676 -3.496,1.162 -4.001,-1.542c1.991,-1.167 2.934,1.271 4.001,1.542" style="fill:#020303;fill-rule:nonzero;"/><path d="M612.327,670.917c2.394,1.368 2.991,3.292 1.788,5.774c-0.662,0.887 -2.175,-6.82 -1.788,-5.774" style="fill:#020303;fill-rule:nonzero;"/><path d="M601.906,658.557c3.133,-3.115 3.189,1.95 2.536,2.603c-1.824,0.083 -2.669,-0.786 -2.536,-2.603" style="fill:#020303;fill-rule:nonzero;"/><path d="M428.046,551.109c-7.027,-1.699 -11.977,4.04 -20.059,2.403c-6.995,-1.422 -8.372,1.185 -10.872,7.559c-2.828,7.213 12.893,7.547 16.661,7.323c9.06,-0.538 12.857,-5.393 17.45,-11.963c0.549,4.336 -6.98,26.638 -12.208,27.701c-4.5,0.916 -9.997,-1.188 -9.958,-6.569c0.044,-6.906 -6.478,-6.554 -10.931,-9.589c-9.882,-6.732 13.723,-48.508 29.917,-16.865" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.004,502.472c-12.429,-9.761 -37.792,-6.262 -48.767,3.782c-6.954,6.365 -9.268,15.219 -8.978,24.477c0.423,13.455 9.3,18.195 15.047,28.549c-21.988,-7.234 -22.163,-40.071 -8.54,-54.456c8.986,-9.495 46.114,-18.428 51.238,-2.352c-4.104,-3.224 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M486.85,526.646c8.177,2.902 8.762,15.7 -1.43,15.957c-12.27,0.311 -8.839,-14.258 1.43,-15.957" style="fill:#020303;fill-rule:nonzero;"/><path d="M499.727,614.724l4.926,-0.641c-9.651,-5.819 -6.268,-8.215 -3.679,-19.031c3.114,-13.008 4.657,-24.846 6.835,-37.981c2.036,-12.27 3.141,-8.653 10.071,-5.124c3.9,1.988 7.568,0.591 11.66,1.456c6.029,1.274 9.959,6.247 14.569,9.847c4.211,3.28 8.502,6.477 13.07,9.252c2.663,1.596 1.431,5.6 3.029,6.611c6.983,4.444 16.72,20.724 23.969,22.068c11.664,2.166 25.576,-2.246 37.24,-3.197c16.028,-1.306 30.951,-1.868 46.95,-4.353c9.749,-1.51 76.407,-0.695 76.312,-13.236c-0.1,-10.257 -5.316,-13.847 -12.89,-21.058c-10.774,-10.26 -3.233,-10.815 6.684,-15.895c5.083,-2.601 0.899,-19.634 -5.895,-20.157c-13.23,-1.022 -27.479,-0.006 -40.768,0.387c-32.193,0.958 -64.519,1.055 -96.679,2.882c-14.997,0.851 -29.896,1.663 -44.92,1.258c-11.158,-0.304 -25.656,3.233 -36.078,1.886c-6.088,-0.786 -8.88,-23.877 -9.332,-29.226c-9.149,-4.116 -0.417,-18.531 -6.762,-26.48c-5.39,-6.753 -17.641,-5.976 -23.156,0.472c-7.627,8.922 -14.976,0.535 -26.805,-1.539c-15.405,-2.701 -11.936,-10.34 -11.306,-23.644c0.653,-13.824 -0.603,-32.538 3.599,-45.688c7.414,-23.183 8.806,-52.264 34.988,-61.534c12.813,-4.533 23.989,-5.576 37.219,-7.263c14.87,-1.901 27.926,-8.254 43.399,-8.807c28.983,-1.034 58.708,-3.673 87.683,-2.446c28.114,1.214 56.057,4.781 84.213,8.224c12.548,1.53 23.869,-0.216 35.385,6.784c6.616,4.022 10.478,7.752 12.739,15.19c1.442,4.745 5.612,1.932 5.904,6.179c1.04,15.274 7.663,29.373 8.52,44.914c0.895,16.247 4.497,32.695 1.448,48.868c-2.781,14.935 2.308,28.655 1.601,43.336c-0.653,13.511 5.884,32.051 1.711,44.696c-2.683,8.126 1.105,10.836 0.831,19.205c-0.175,5.31 -3.118,14.226 -0.048,19.181c4.758,7.657 -2.127,15.378 0.588,23.496c2.208,6.673 -4.763,6.141 -8.921,5.984c-4.802,-0.183 -6.59,3.729 -10.987,4.64c-8.348,1.734 -16.368,4.281 -24.701,6.037c-12.941,2.724 -34.613,-6.877 -45.772,-1.306c-5.183,2.585 -12.396,0.635 -17.91,0.715c-6.762,0.097 -13.635,5.198 -20.213,4.119c-14.767,-2.476 -30.033,2.485 -44.486,0.293c-9.932,-1.507 -31.861,4.001 -39.893,-2.019c-7.725,-5.786 -9.33,-28.327 -19.312,-29.258c-7.916,-0.736 -15.676,7.234 -23.46,8.729c-8.523,1.641 -13.189,6.915 -20.653,10.299c-11.566,5.245 -11.959,12.027 -20.517,2.875" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M585.724,590.359c18.7,5.42 46.995,-3.292 66.348,-4.477c9.737,-0.591 19.477,-1.285 29.146,-2.642c10.765,-1.507 25.768,-0.96 35.762,-4.84c-4.994,-4.465 -21.717,-0.7 -27.24,0.461c-13.259,2.801 -26.418,3.398 -39.894,4.767c-15.236,1.545 -30.641,1.069 -45.777,3.623c-15.945,2.695 -18.835,-1.741 -29.432,-12.725c-4.191,-4.344 -40.278,-40.21 -27.725,-40.7c10.133,-0.435 33.922,-5.772 42.417,0.212c9.944,7.007 5.677,-1.539 5.772,-2.532c17.798,-0.76 35.594,-1.803 53.416,-1.658c13.761,0.115 34.234,-3.59 47.284,0.641c12.494,4.055 22.778,23.121 32.742,31.236c16.528,13.46 1.82,8.82 -7.394,15.174c2.261,0.963 17.27,-0.071 17.113,2.5c-0.266,3.717 -74.462,10.485 -82.508,10.813c-9.59,0.393 -69.418,13.611 -70.03,0.147c6.631,1.921 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M422.641,469.53c-0.352,0 -6.156,0.934 -6.126,-1.226c0.038,-4.052 1.353,-3.487 -2.237,0.198c0.6,-0.612 -27.863,-1.357 -27.21,-0.497c-4.525,-5.966 0.328,-23.983 0.141,-31.743c-0.068,-2.89 2.237,-41.457 9.152,-26.457c7.949,17.346 27.633,-2.639 27.66,-14.353c0.032,-12.302 -19.315,-26.607 -25.898,-16.067c-0.751,1.197 -3.254,-2.048 -4.002,-0.854c-2.804,-6.335 3.594,-5.765 5.597,-9.302c6.123,-10.825 9.974,-16.741 21.806,-22.267c10.292,-4.796 29.619,-13.708 35.617,-6.994c3.088,3.454 -12.328,16.501 -14.163,19.834c-6.776,12.308 -5.763,24.767 -8.065,38.082c-2.302,13.345 3.57,71.646 -12.272,71.646" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M398.329,402.562c11.457,7.881 6.333,-8.6 7.991,-14.137c3.673,-12.255 13.348,-3.213 14.997,4.101c3.496,15.511 -14.607,28.706 -22.988,10.036" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M585.904,590.175c-5.57,4.961 -50.605,-40.34 -47.822,-51.643c13.948,17.018 37.979,33.224 47.822,51.643" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M827.508,346.157c5.541,0.148 2.252,8.091 0.118,10.142c-5.014,4.82 -21.312,6.273 -28.206,9.155c-6.336,2.668 -8.537,-4.276 -2.589,-6.753c10.187,-4.276 20.444,-8.38 30.677,-12.544" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M475.349,698.999c4.11,4.763 10.511,25.455 -2.654,21.583c-13.097,-3.85 -3.33,-17.006 2.654,-21.583" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M492.939,478.6c-2.187,-0.73 -16.129,7.157 -17.119,1.395c-1.323,-7.695 15.293,-8.682 19.235,-5.795c3.348,2.456 5.813,18.809 -1.04,14.867c-5.503,-3.162 -0.562,-7.799 -1.076,-10.467" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M334.32,715.679c-0.419,-14.962 17.97,-12.249 15.905,-7.683c-1.508,3.336 -16.927,19.926 -15.905,7.683" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M326.767,483.157c-0.432,-0.949 4.964,8.306 4.072,9.293c-2.506,2.784 -8.481,-1.527 -9.788,-3.865c-5.215,-9.344 18.18,-12.665 20.621,-7.195c1.342,3.002 -5.426,5.248 -6.791,6.377c-3.354,2.763 -5.378,-3.836 -8.114,-4.61" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M475.945,675.052c-2.329,3.156 6.075,12.861 2.653,13.523c-5.52,0.939 -17.163,-26.36 -16.344,-31.401c3.472,5.366 8.008,16.143 13.691,17.878" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M481.983,702.366c0.795,0.917 9.06,13.656 4.578,14.667c-2.223,0.449 -4.536,-12.864 -4.578,-14.667" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M688.521,622.253c1.596,-0.041 8.966,-0.795 8.966,0.692c-2.16,0.168 -8.966,2.328 -8.966,-0.692" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M950.028,351.124c0.854,11.45 -15.939,16.613 -21.043,6.031c-6.108,-12.666 19.9,-21.732 21.043,-6.031" style="fill:#020303;fill-rule:nonzero;"/><path d="M952.949,332.393c-11.628,-4.152 -25.435,-6.838 -32.899,6.15c-4.947,8.608 -2.146,30.209 9.385,32.766c-38.779,-1.836 -1.279,-71.185 23.514,-38.916c-7.054,-2.521 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M952.773,332.568c24.128,0.337 11.137,53.516 -21.374,40.017c7.497,-0.198 16.507,0.76 22.6,-4.636c2.485,-2.199 12.606,-14.329 6.256,-17.293c4.338,-6.998 -1.147,-14.77 -7.482,-18.088c5.987,0.082 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M960.258,350.652c0.931,2.133 0.441,3.906 -1.471,5.322c2.396,-2.237 2.887,-4.01 1.471,-5.322c0.6,1.891 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1032.84,308.34c-1.224,9.598 7.006,-1.463 7.852,-3.626c2.299,-5.881 10.582,-3.537 12.597,-12.695c1.732,-7.873 -5.337,-13.721 -3.611,-21.129c1.856,-7.961 16.194,-13.812 22.707,-16.025c21.321,-7.249 44.169,2.709 63.498,11.554c9.856,4.536 19.152,10.422 26.549,18.446c7.654,8.309 3.836,9.252 -2.943,15.842c9.051,-0.133 16.102,-10.875 25.124,-9.235c16.146,2.934 -10.514,22.698 -12.601,24.837c0.671,1.726 8.644,-1.131 12.146,4.808c7.884,13.369 4.391,25.848 -1.694,39.096c-5.564,12.11 -15.006,22.06 -18.776,34.985c-3.591,12.32 -5.839,28.221 -5.709,41.034c0.236,23.632 0.718,46.339 -25.352,56.36c-10.73,4.119 -25.603,5.848 -37.042,4.822c-12.976,-1.188 -15.907,-0.895 -8.83,-14.707c-5.478,5.192 -9.285,16.628 -16.909,19.48c-6.143,2.299 4.844,-23.871 2.512,-24.719c-3.496,-1.247 -5.009,12.969 -14.302,8.176c-11.602,-5.993 -25.615,-6.861 -33.993,-17.928c-10.783,-14.25 -28.135,-42.793 -16.796,-59.965c16.448,-25.138 15.653,-51.196 10.602,-79.583c-1.211,-6.779 -0.236,-30.283 10.337,-31.403c3.798,-0.399 3.993,8.927 4.634,11.575" style="fill:#edd4cf;fill-rule:nonzero;"/><path d="M1090.58,507.103c-12.695,1.011 -25.34,2.539 -37.94,4.374c-4.897,0.721 -9.784,1.471 -14.672,2.257c-5.641,0.902 -9.403,6.679 -14.081,7.388c-6.507,0.981 -51.563,-22.713 -27.521,-27.816c9.126,-1.936 17.32,-10.328 26.386,-3.224c6.351,4.973 18.626,2.284 26.519,4.973c7.069,2.409 7.547,6.889 14.125,10.384c9.418,5.015 16.188,-8.008 27.184,1.664" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1131.66,616.799c-0.414,0.7 -0.76,11.46 -5.107,5.192c-5.664,-8.165 -9.231,-19.79 -13.947,-28.72c-9.678,-18.319 -16.971,-39.025 -21.203,-59.3c-0.901,-4.409 3.502,-4.885 5.674,-1.894c6.672,9.211 10.596,19.956 14.985,30.343c7.512,17.783 12.461,36.832 19.598,54.379" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1053.92,516.148c13.632,0 24.4,-3.13 37.651,-5.541c6.867,-1.253 22.662,9.113 6.111,11.746c-18.75,3 -41.968,10.373 -60.955,8.053c-9.97,-1.221 -7.435,-6.702 -1.536,-11.297c5.065,-3.943 12.786,-3.035 18.729,-2.961" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1038.74,268.947c-5.727,-1.723 -4.2,7.996 -9.61,9.56c-8.307,2.399 -6.203,-6.002 -4.48,-13.006c4.054,-16.48 31.433,-30.156 43.286,-13.091c-7.06,5.429 -20.314,19.793 -29.196,16.537c-4.084,-1.229 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1037.8,540.411c-1.77,20.186 -7.884,40.051 -12.949,59.59c-2.237,8.634 -6.088,18.067 -6.354,27.033c-0.121,4.06 -7.636,11.385 -7.627,5.336c0.021,-18.498 8.469,-38.791 12.556,-56.702c2.154,-9.456 3.404,-19.098 5.94,-28.466c0.372,-1.383 9.14,-18.593 8.434,-6.791" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M994.966,517.368c2.11,6.832 -7.514,12.923 -9.438,18.895c-3.656,11.327 -8.248,21.472 -13.218,32.346c-2.979,6.519 -4.687,20.718 -10.591,25.21c-0.766,0.582 -13.212,9.672 -11.342,10.18c-4.314,-1.155 15.839,-40.419 18.292,-45.254c4.072,-8.026 7.113,-17.166 11.522,-24.861c0.819,-1.43 15.671,-25.239 15.957,-19.163c-0.478,0.845 -0.874,1.725 -1.182,2.647" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1012.57,543.86c-29.368,6.646 -15.414,-30.647 -5.842,-24.072c5.407,3.726 19.063,8.62 19.929,16.043c1.099,9.4 -7.536,8.029 -14.087,8.029" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1051.63,288.908c0.189,17.054 -32.518,7.376 -22.204,-6.637c5.011,-6.809 9.255,4.09 15.795,1.545c8.427,-3.265 2.337,4.259 6.409,5.092" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1003.52,594.722c-0.195,0.326 10.606,15.878 -4.394,5.784c-6.531,-4.395 -12.412,-10.027 -18.15,-15.37c1.465,1.368 -11.132,-14.825 -3.777,-11.649c4.116,1.779 27.55,17.282 26.321,21.235" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1020.3,568.107c-7.606,-4.832 -15.015,-10.021 -21.711,-16.07c-0.231,-0.21 -13.472,-12.521 -6.028,-11.268c10.381,1.744 25.57,17.412 27.739,27.338" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1064.1,534.022c9.069,0.467 11.141,1.693 16.232,-0.671c4.592,-2.127 8.667,15.317 10.582,17.361c-9.728,-4.175 -20.23,-7.863 -26.814,-16.69" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1085.7,561.648c-10.735,-2.751 -20.679,-8.194 -26.51,-17.952c4.347,1.244 30.207,11.422 26.51,17.952" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1164.06,488.207c0.851,8.055 -10.948,1.566 -11.389,-4.3c-0.792,-10.673 11.809,-1.693 11.389,4.3" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1009.25,545.121c6.289,0 18.144,-3.62 15.444,6.357c-2.444,9.015 -13.417,-1.451 -15.444,-6.357" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1032.84,308.34c-2.166,-3.532 1.203,-13.632 6.563,-8.685c3.26,3.005 -1.161,11.847 -6.563,8.685" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1113.62,245.217c-0.083,0.656 8.085,12.695 -0.346,8.652c-6.345,-3.049 -6.439,-12.689 0.346,-8.652" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1030.62,487.48c-15.322,-18.192 14.11,-6.289 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1056.7,553.911c0.057,1.416 -4.837,11.197 -6.557,9.433c-4.205,-4.306 4.492,-20.827 6.557,-9.433" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1047.46,588.864c-1.075,-4.255 -0.739,-8.404 1.011,-12.444c5.387,2.628 5.295,13.851 -1.011,12.444c-1.622,-4.157 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1038.57,268.788c-0.059,-0.768 10.555,13.115 3.537,9.501c-4.453,-2.284 -11.551,-1.844 -3.537,-9.501" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1085.7,561.648c-0.39,-1.779 -0.777,-3.555 -1.167,-5.334c10.568,4.392 3.585,9.572 1.167,5.334" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1068.77,578.374c6.735,-1.238 9.988,4.135 14.397,7.299c-4.893,-2.485 -10.156,-4.001 -14.397,-7.299c6.735,-1.238 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1020.29,256.141c-0.656,-3.295 0.621,-4.861 4.681,-4.356c-1.734,1.605 -3.209,2.994 -4.681,4.356" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1045,539.476c1.276,1.171 1.421,6.957 -0.009,5.523c-1.354,-1.79 -1.351,-3.631 0.009,-5.523" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1047.32,588.729c1.675,2.154 1.164,3.487 -1.546,3.992c-1.179,-2.007 1.274,-2.929 1.546,-3.992" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1068.91,578.25c-0.925,-0.727 -1.844,-1.454 -2.769,-2.181c1.261,-0.995 2.603,-1.108 4.03,-0.336c-1.687,2.473 -2.107,3.312 -1.261,2.517" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M185.275,575.636c-0.171,-19.122 9.01,-36.593 17.722,-52.931c6.879,-12.905 39.707,5.18 42.751,14.964c2.733,8.78 -4.53,14.267 -7.438,21.844c-3.558,9.264 -2.769,18.883 -5.216,28.209c-3.626,13.821 -49.819,6.575 -47.819,-12.086" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M181.93,577.408c-9.592,-19.784 -7.984,-48.52 18.124,-54.814c-10.13,16.673 -15.721,35.544 -18.124,54.814" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M256.894,549.294c6.46,3.933 -1.108,24.566 -2.639,29.548c-3.954,12.89 -13.791,15.428 -25.526,20.877c-9.968,4.631 -17.45,2.069 -27.683,0.19c-3.407,-0.627 -27.338,-7.4 -22.852,-14.143c10.432,10.103 41.277,14.849 53.505,7.636c18.324,-10.813 24.019,-24.223 25.195,-44.108c3.726,2.27 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M167.504,579.964c-9.045,3.674 -42.201,19.034 -51.442,12.5c8.053,-8.023 41.738,-25.582 51.442,-12.5" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M251.302,545.421c-1.572,7.465 2.471,13.936 -0.396,21.667c-1.953,5.263 -6.938,13.194 -10.797,17.417c-4.859,5.304 -1.729,-12.524 -1.856,-11.962c2.263,-9.944 6.681,-19.146 13.049,-27.122" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M257.064,549.127c-5.591,-9.829 -9.273,-18.109 -18.688,-24.459c-2.29,-1.549 -16.554,-8.99 -15.895,-10.42c21.052,-0.544 28.933,19.353 34.583,34.879" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M157.438,650.459c1.002,11.274 -14.949,9.829 -13.513,0.438c1.217,-7.89 12.328,-7.76 13.513,-0.438" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M257.66,587.075c-3.682,10.349 -12.444,15.694 -23.206,15.925c9.616,-1.956 16.004,-14.749 23.206,-15.925c-3.818,10.739 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M176.775,531.898c-6.153,21.924 -12.054,10.544 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M257.793,587.208c-3.473,-6.613 1.788,-11.811 2.893,-17.668c-0.574,5.975 -1.256,12.047 -2.893,17.668" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M169.324,562.026c0.718,0.978 5.357,12.488 2.358,13.209c-3.558,0.831 -2.734,-12.213 -2.358,-13.209" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M222.48,514.252c-4.778,0.608 -9.544,1.217 -14.314,1.826c5.038,-2.477 8.871,-3.357 14.314,-1.826" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M170.09,560.289c-2.683,-1.93 -2.388,-7.467 -0.842,-6.152c1.114,1.92 1.394,3.974 0.842,6.152" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M176.584,531.131c0.367,-3.688 1.504,-4.696 3.422,-3.02c-0.484,1.708 -1.628,2.712 -3.422,3.02" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M589.738,231.095c-0.124,0.041 -0.396,0.272 0,0c-0.062,0.021 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M615.683,241.029c-0.272,-1.406 -0.387,-2.833 -0.422,-4.273c-0.009,1.448 0.109,2.876 0.422,4.273" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.403,293.059c-0.009,-0.08 -0.369,-0.499 0,0c-0.009,-0.083 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M591.496,272.638c3.54,-1.708 6.14,-13.313 6.684,-13.354c13.487,-1.091 -3.859,32.062 -12.784,18.354c-8.33,-12.79 16.12,-23.664 6.1,-5" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M568.392,273.325c-5.42,11.196 -9.755,3.029 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M650.244,247.797c-5.31,-12.202 -15.452,-23.416 -26.005,-31.815c-5.957,-4.746 -13.487,-4.941 -20.455,-2.665c-2.727,0.889 -19.143,6.365 -19.264,9.421c0.139,-3.552 6.85,7.981 5.083,8.365c4.045,-17.659 9.027,-1.622 10.895,5.913c1.865,7.589 -2.441,19.61 -10.473,22.169c-7.012,2.255 -26.028,10.76 -28.247,-0.859c-1.156,-6.112 15.15,-7.155 17.154,-15.128c-5.127,4.835 -20.963,7.633 -19.512,16.115c2.08,11.909 14.976,1.82 20.333,8.374c13.981,17.11 -31.35,25.006 -39.559,17.169c11.64,7.264 19.737,-0.369 30.393,-3.676c17.11,-5.458 -13.413,-11.262 -13.041,-10.969c0.225,0.133 0.278,0.195 0.16,0.189c8.983,7.6 -5.943,15.83 -12.861,13.407c2.512,-1.885 12.958,-13.38 12.701,-13.596c-0.325,-0.857 -11.542,-13.31 -11.735,-13.345c0.521,3.306 3.987,11.436 2.125,14.107c-1.297,1.862 -9.261,4.575 -7.571,1.605c0.355,-0.621 -3.874,-16.962 -3.519,-16.803c-3.535,2.299 -5.405,5.55 -5.609,9.752c6.927,0.399 4.054,8.549 5.482,13.576c-1.555,-0.925 -8.177,-12.781 -5.482,-13.576c-3.011,0 -5.857,12.166 -5.231,14.542c1.735,-14.509 9.144,6.247 11.298,8.144c6.158,5.435 22.181,5.786 29.746,6.543c-0.222,-0.136 -0.281,-0.204 -0.178,-0.201c-2.068,-1.209 -4.137,-2.417 -6.208,-3.62c10.286,-2.184 19.683,-11.141 29.929,-8.537c-1.173,5.981 -22.926,14.406 -23.543,12.358c-0.73,2.142 25.52,-2.648 27.476,-2.559c9.669,0.443 15.269,8.593 26.016,6.433c-2.015,-3.715 -6.323,1.534 -8.162,-2.719c4.203,-2.772 9.055,-4.53 12.755,-8.064c2.284,3.611 -0.857,5.582 -1.129,8.986c7.91,-2.06 25.077,-6.075 30.168,-12.438c9.306,-11.622 5.565,-26.616 -3.93,-36.598m-107.231,28.933c4.563,-1.082 7.775,-4.773 9.462,-8.978c0.26,5.925 -11.448,18.339 -12.281,11.132c0.136,-1.749 1.075,-2.465 2.819,-2.154m39.382,-8.945c-6.075,-6.126 4.176,-4.303 0,0m20.618,24.178l-3.18,1.156c0.721,-4.294 -5.416,-4.061 -5.183,-8.026c0.399,-6.694 14.684,-7.353 18.963,-7.87c-0.754,0.913 -19.516,8.54 -12.881,10.438c11.394,3.256 17.44,-9.324 26.781,-9.924c-6.805,6.942 -13.838,14.823 -24.5,14.226m3.292,-23.57c0.777,0.855 4.796,9.607 -0.618,5.745c-2.819,-1.995 1.49,-3.543 0.618,-5.745m18.723,-8.847c-0.677,-2.358 5.278,2.541 5.822,3.584c2.999,5.745 -5.718,12.427 -10.665,10.136c-11.909,-5.529 -23.623,-16.554 -15.901,-29.742c0.39,9.769 8.752,13.111 15.209,18.56c1.088,-1.852 -12.547,-13.164 -13.43,-18.56c-0.881,-5.396 -4.516,-9.867 -5.08,-15.32c-0.207,-2.018 5.718,-18.602 8.962,-14.169c-0.78,-1.031 -0.31,5.558 1.573,3.159c2.455,-3.047 10.044,0.038 12.027,2.577c7.352,9.42 -3.49,22.771 8.283,29.169c2.157,-3.762 -8.221,-7.154 -1.652,-11.232c3.977,-2.482 -1.161,-4.486 1.631,-5.996c0.375,-0.201 12.509,18.177 6.008,23.842c-11.82,10.257 -15.966,-12.163 -20.786,-11.147c-0.588,6.605 6.368,9.415 7.999,15.139m11.117,25.393c-1.915,-1.989 0.952,-8.478 0.015,-11.983c-1.608,-6.016 -3.189,-12.136 3.528,-14.19c10.506,-3.198 2.113,32.012 -3.543,26.173m7.426,0.662c0.763,-5.39 4.835,-10.139 4.001,-15.801c-0.75,-4.961 -3.874,-8.646 -4.338,-13.561c-0.602,-6.344 1.112,-8.661 -4.092,-13.661c-4.35,-4.17 2.121,-2.231 2.769,-5.742c7.39,13.709 21.167,39.521 1.66,48.765" style="fill:#020303;fill-rule:nonzero;"/><path d="M847.463,380.891c1.12,-1.171 0.893,-10.955 3.579,-10.73c3.129,0.266 6.906,19.53 8.378,22.674c4.769,10.204 11.259,20.361 20.056,27.544c7.204,5.884 15.608,10.246 24.087,13.966c8.395,3.691 23.643,3.401 30.505,8.183c0.127,3.407 -19.368,0.502 -22.358,0.425c-13.334,-0.334 -23.437,-5.216 -34.524,-12.187c-17.645,-11.09 -34.25,-27.275 -29.723,-49.875c2.19,-2.288 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M847.57,380.762c-1.451,1.023 -2.278,2.426 -2.47,4.211c-4.501,-12.071 0.792,-3.614 2.47,-4.211" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M179.062,437.953c-0.275,2.223 1.194,3.706 4.409,4.442c5.597,5.021 6.929,5.304 9.432,11.2c4.362,10.272 8.372,20 -0.106,30.153c-1.247,-2.485 -2.465,-4.979 -3.653,-7.494c-2.771,-6.164 -7.364,-2.981 -11.3,-7.059c-8.676,-8.987 -12.789,-22.323 -21.389,-31.768c8.901,-1.572 14.235,0.361 22.607,0.526" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M180.039,481.599c-3.803,-1.292 -5.494,5.514 -9.315,1.666c-2.018,-2.033 8.662,-7.515 8.147,-5.269c-0.431,1.886 -3.002,3.73 1.168,3.603" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M9.513,625.765c-14.468,-0.582 3.363,-13.197 7.975,-8.017c4.794,5.387 -2.435,9.802 -7.975,8.017" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M280.07,378.83c-25.047,0 -20.635,-35.851 1.495,-37.29c24.483,-1.566 21.557,37.29 -1.495,37.29" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M122.402,503.568c-10.91,-2.062 13.165,-7.819 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M414.245,571.307c6.974,-0.65 3.176,14.619 -1.83,9.326c-1.985,-2.101 -2.907,-10.777 1.83,-9.326" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M419.383,580.588c0.014,-0.136 2.878,-16.652 4.648,-10.633c0.703,2.403 -2.11,9.817 -4.648,10.633" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M483.37,533.004c-0.783,0.919 -1.563,1.832 -2.346,2.751c-2.323,-3.136 1.708,-6.209 2.346,-2.751" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M706.03,440.862c0.933,12.816 6.214,53.39 -12.713,54.947c-26.164,2.125 -52.024,4.223 -78.18,6.377c-18.818,1.548 -47.526,5.721 -65.552,-0.491c-20.216,-6.962 -10.568,-41.001 -12.598,-57.127c-1.613,-12.864 1.265,-25.671 0.916,-38.54c-0.248,-9.483 -2.925,-24.974 6.54,-31.176c5.541,-3.629 19.598,-2.879 26.3,-3.815c14.826,-2.078 30.358,-2.663 45.319,-3.145c24.406,-0.786 49.297,1.079 73.664,2.548c19.726,1.17 15.349,57.718 16.304,70.422" style="fill:#020303;fill-rule:nonzero;"/><path d="M715.105,389.452c-1.799,-35.937 54.007,-29.155 52.592,0.856c-1.475,31.218 -55.316,31.679 -52.592,-0.856" style="fill:#020303;fill-rule:nonzero;"/><path d="M494.085,414.105c-28.336,0 -31.702,-50.387 -2.482,-46.111c15.23,2.228 27.842,6.262 29.639,23.318c1.835,17.394 -12.326,22.551 -27.157,22.793" style="fill:#020303;fill-rule:nonzero;"/><path d="M595.617,582.943c-4.746,-0.396 -9.395,-6.38 -2.435,-6.304c8.147,0.092 11.737,4.799 2.435,6.304" style="fill:#020303;fill-rule:nonzero;"/><path d="M725.293,565.328c-0.447,1.294 -8.866,11.533 -9.835,4.592c-0.709,-5.065 7.429,-2.949 9.835,-4.592" style="fill:#020303;fill-rule:nonzero;"/><path d="M713.244,564.012c-3.061,-1.082 -6.194,-4.353 0.083,-4.489c6.182,-0.13 5.945,4.71 -0.083,4.489" style="fill:#020303;fill-rule:nonzero;"/><path d="M690.094,573.188c0.762,-1.247 7.444,-3.451 8.673,-2.414c5.733,4.835 -8.83,2.352 -8.673,2.414" style="fill:#020303;fill-rule:nonzero;"/><path d="M700.474,550.893c1.413,-5.384 9.551,-2.719 8.877,-1.407c-2.118,2.618 -5.079,3.085 -8.877,1.407" style="fill:#020303;fill-rule:nonzero;"/><path d="M636.675,577.206c6.728,-7.356 15.425,4.214 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M603.433,551.617c3.02,-2.145 6.217,-2.134 10.071,-0.954c-3.464,3.327 -6.791,1.879 -10.071,0.954" style="fill:#020303;fill-rule:nonzero;"/><path d="M695.767,546.521c-0.369,-4.371 8.097,-6.762 8.213,-3.204c0.029,0.902 -7.559,3.003 -8.213,3.204" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.992,558.055c-3.948,0.934 -7.042,2.048 -12.03,-0.012c4.828,-0.218 7.786,-3.283 12.03,0.012" style="fill:#020303;fill-rule:nonzero;"/><path d="M575.637,566.667c2.843,-1.986 5.736,-1.23 8.652,-0.526c-2.695,2.541 -5.694,1.587 -8.652,0.526" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.672,576.49c-2.839,1.962 -5.735,1.279 -8.652,0.514c2.695,-2.544 5.697,-1.575 8.652,-0.514" style="fill:#020303;fill-rule:nonzero;"/><path d="M588.057,570.193c-2.84,1.962 -5.736,1.271 -8.649,0.514c2.692,-2.541 5.694,-1.575 8.649,-0.514" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.322,577.921c2.633,-2.027 5.482,-0.871 8.978,-1.539c-3.062,3.998 -6.052,2.769 -8.978,1.539" style="fill:#020303;fill-rule:nonzero;"/><path d="M672.089,543.505c3.009,-1.353 5.934,-3.324 10.059,-1.217c-3.422,2.709 -6.873,1.081 -10.059,1.217" style="fill:#020303;fill-rule:nonzero;"/><path d="M682.755,549.767c-2.39,2.246 -4.864,1.563 -8.927,1.271c3.948,-3.121 6.463,-1.578 8.927,-1.271" style="fill:#020303;fill-rule:nonzero;"/><path d="M619.169,563.169c-3.014,2.163 -3.014,2.163 -8.02,1.723c2.157,-3.641 5.375,-1.552 8.02,-1.723" style="fill:#020303;fill-rule:nonzero;"/><path d="M689.569,553.79c-3.073,3.904 -6.02,2.341 -9.081,2.5c2.281,-3.865 5.493,-1.767 9.081,-2.5" style="fill:#020303;fill-rule:nonzero;"/><path d="M670.035,566.871c2.452,-4.166 5.097,-2.257 7.665,-3.055c-1.749,4.229 -4.696,2.048 -7.665,3.055" style="fill:#020303;fill-rule:nonzero;"/><path d="M934.849,347.848c1.687,2.852 5.615,0.331 6.714,3.842c-2.737,-0.825 -9.838,7.857 -6.714,-3.842" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1064.36,314.482c-12.429,-40.73 52.447,-61.099 70.957,-26.528c8.434,15.757 7.379,33.103 -5.671,46.138c-11.968,11.959 -44.412,11.049 -52.636,-5.742c7.35,-0.543 12.749,6.203 19.604,8.39c8.254,2.63 17.305,0.387 24.35,-4.315c16.38,-10.933 18.845,-32.881 6.333,-47.698c-13.038,-15.44 -39.368,-16.276 -51.288,1.342c-5.494,8.121 -6.496,16.791 -6.36,26.303c0.166,11.419 -3.132,2.11 -5.289,2.11" style="fill:#020303;fill-rule:nonzero;"/><path d="M1041.13,376.734c-1.3,1.522 -12.136,-2.187 -6.492,5.936c3.632,5.228 15.948,1.797 21.108,4.814c-4.991,0.201 -26.218,2.719 -25.689,-6.708c0.343,-6.321 7.356,-7.37 11.073,-4.042c-1.885,2.204 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1183.4,300.232c-8.434,14.43 -22.358,-5.81 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1066.75,316.953c1.691,3.566 8.88,5.738 10.263,11.4c-6.823,-0.925 -11.912,-7.257 -12.653,-13.868c1.492,0.118 1.371,2.021 2.39,2.468" style="fill:#020303;fill-rule:nonzero;"/><path d="M1041,376.856c3.398,-1.909 6.714,-0.304 10.059,0.095c-4.255,0.553 -5.91,1.117 -10.059,-0.095c3.398,-1.909 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M220.938,568.747c-0.692,7.228 -3.78,2.524 -7.385,0.414c-6.678,-3.921 0.839,6.773 0.535,5.771c-2.346,1.457 -4.193,6.487 -6.927,6.75c-8.286,0.824 -2.828,-17.518 -1.906,-20.724c-0.49,0.372 -8.035,8.543 -9.491,5.009c-3.898,-9.389 7.284,-12.985 13.377,-16.419c-13.392,-4.896 7.932,-19.489 12.577,-19.456c3.366,0 -0.52,9.362 0.177,11.596c3.056,9.781 2.574,2.381 -4.355,4.784c1.25,1.108 2.665,1.936 4.24,2.488c-0.408,2.196 -7.015,2.539 -5.437,4.406c1.081,1.277 4.296,-0.266 4.87,1.776c0.535,1.921 0.685,12.267 -0.464,13.791c-3.328,-2.5 -2.314,-7.284 -5.724,-9.864c-0.792,4.832 1.025,8.414 5.913,9.678" style="fill:#020303;fill-rule:nonzero;"/><path d="M221.776,548.956c-20.068,0 7.349,-7.325 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M180.737,553.709c0.78,-3.129 1.557,-6.259 2.518,-10.088c1.861,4.5 -0.476,7.263 -2.518,10.088" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.019,244.228c-2.098,-1.194 -6.332,-16.746 -4.997,-18.309c4.749,-5.509 5.104,18.649 4.997,18.309" style="fill:#020303;fill-rule:nonzero;"/><path d="M279.542,368.751c-11.475,0.086 -10.387,-20.118 -1.422,-20.144c12.376,-0.027 16.079,20.047 1.422,20.144" style="fill:#020303;fill-rule:nonzero;"/><path d="M543.958,458.489c0,-21.126 -2.545,-44.06 0.275,-64.991c2.89,-21.457 40.46,-19.524 56.941,-19.722c24.743,-0.299 49.834,-1.035 74.548,0.032c25.765,1.111 21.734,20.813 23.425,40.884c1.864,22.157 2.508,46.347 -1.023,68.427c-2.258,14.055 -48.744,10.843 -59.208,11.242c-24.698,0.936 -49.778,0.331 -74.385,2.647c-21.82,2.045 -20.573,-22.816 -20.573,-38.519" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M753.793,378.338c15.744,0.946 9.666,22.34 -1.759,21.383c-15.555,-1.253 -15.372,-22.423 1.759,-21.383" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M733.69,381.059c2.364,3.254 1.303,12.228 -2.337,13.839c-1.493,0.762 0.818,-12.323 2.337,-13.839" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M720.828,393.711c0.083,-0.65 -0.836,-8.387 2.736,-5.364c0.854,0.724 -2.266,5.095 -2.736,5.364" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M503.463,398.98c-13.978,0.311 -7.267,-19.145 2.337,-17.919c14.811,1.891 11.277,17.961 -2.337,17.919" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1076.83,328.528c-6.652,-9.797 -9.828,-12.669 -8.425,-25.571c0.981,-8.995 4.117,-17.727 11.23,-23.673c11.256,-9.403 33.566,-11.35 44.468,-0.346c13.8,13.934 18.67,34.885 3.856,50.47c-5.431,5.712 -13.168,9.82 -21.105,10.361c-9.182,0.623 -23.774,-13.02 -30.024,-11.241" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1066.75,316.953c-2.845,0.446 -2.278,-5.518 -2.243,-5.985c2.223,1.463 2.97,3.461 2.243,5.985" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M220.938,568.747c-8.904,5.701 -7.84,-10.505 -7.84,-14.456c4.521,3.756 7.281,9.3 7.84,14.456c-5.958,3.812 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M206.641,553.594c-2.189,4.864 -5.325,7.866 -9.051,10.417c1.023,-6.239 1.59,-6.918 9.051,-10.417" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M212.7,542.261c0.249,-1.587 -4.305,0.464 -3.694,-2.373c0.807,-3.8 3.629,1.014 3.694,2.373" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M278.862,363.769c-4.613,-0.272 -4.249,-4.725 -2.142,-7.698c3.54,-4.994 9.524,5.03 2.142,7.698" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M555.566,422.001c0.972,-13.786 -0.955,-30.526 14.961,-37.01c16.114,-6.563 44.445,-2.84 61.776,-2.651c11.93,0.13 44.903,-3.69 49.229,11.265c5.502,19.241 7.16,39.356 6.451,59.303c-1.433,39.878 -61.371,29.991 -88.118,30.579c-11.507,0.251 -38.504,-0.473 -42.08,-15.757c-3.413,-14.601 -2.742,-30.886 -2.219,-45.729" style="fill:#020303;fill-rule:nonzero;"/><path d="M1080.69,294.885c-0.171,-8.233 14.799,-9.666 14.64,-0.893c-0.178,10.526 -15.331,11.442 -14.64,0.893" style="fill:#020303;fill-rule:nonzero;"/><path d="M558.551,443.206c5.322,-14.477 -2.216,-30.352 5.946,-44.356c7.334,-12.589 23.212,-12.146 36.025,-12.506c19.058,-0.497 37.621,-1.519 56.655,0.508c20.003,2.131 23.602,14.474 26.102,33.073c1.676,12.438 4.595,30.458 -0.54,42.497c-7.332,17.181 -32.917,17.583 -48.313,18.165c-16.764,0.633 -35.848,2.58 -52.346,-1.043c-21.005,-4.619 -18.756,-19.509 -23.529,-36.338" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1089.33,290.983c-1.167,1.944 -5.913,2.261 -4.74,0.588c1.445,-1.185 3.026,-1.383 4.74,-0.588" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M626.903,429.004c-6.672,0.757 -2.012,-10.963 -0.496,-8.469c1.241,2.76 1.406,5.585 0.496,8.469" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M583.7,425.169c-1.442,-3.803 -0.919,-5.207 1.569,-4.208c0.756,1.797 0.23,3.198 -1.569,4.208" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M84.41,505.317c13.91,8.517 28.587,18.313 45.706,13.313c-15.718,9.359 -34.74,-1.835 -45.706,-13.313" style="fill:#231f20;fill-rule:nonzero;"/><path d="M70.212,695.501c-14.261,0.981 -25.047,16.815 -39.832,16.274c6.374,4.805 16.035,15.434 24.847,15.074c10.33,-0.379 23.303,-8.957 32.73,-12.923" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.2px;"/><path d="M33.311,438.73c6.85,-12.06 30.393,-19.453 43.129,-18.455c-10.742,4.483 -24.09,4.267 -33.268,11.912c-3.283,2.01 -6.791,4.838 -9.861,6.543c2.021,-3.558 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M446.814,313.476c-1.058,-19.411 2.062,-38.54 1.598,-57.898c-0.351,-19.01 1.12,-39.776 10.925,-56.564c-11.462,37.441 -5.301,76.847 -12.523,114.462c-0.526,-9.648 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M718.978,189.333c2.828,15.742 1.501,31.593 3.735,47.337c1.933,15.521 3.691,32.196 2.308,47.441c-2.636,-15.632 -3.59,-31.498 -3.741,-47.337c0.151,-15.863 -3.859,-31.909 -2.302,-47.441c1.41,7.843 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M482.862,146.18c-3.697,-10.417 -6.876,-19.421 8.419,-19.421c11.711,-0.053 13.124,20.898 2.63,24.282" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M699.785,140.286c4.228,-9.805 7.786,-22.497 -10.293,-17.775c-11.971,3.135 -7.784,23.977 1.939,21.796" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M207.125,333.397c-5.278,-32.379 51.401,-55.283 76.46,-52.816c-29.232,4.61 -71.968,17.84 -76.46,52.816c-1.389,-8.525 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M697.017,185.026c-0.762,5.316 19.028,34.781 -1.448,30.014c-6.197,-1.442 -2.677,-8.779 2.997,-8.256c9.586,0.892 10.783,12.258 9.352,19.512c-2.928,21.309 -23.099,-8.339 -7.293,-1.985c7.184,3.037 7.911,12.718 6.404,19.219c-2.145,9.235 -15.298,10.231 -12.066,3.709c7.376,-15.29 22.79,34.506 -0.357,25.355c-5.009,-1.516 -0.508,-9.01 3.948,-7.329c10.251,3.723 7.913,18.957 3.283,25.836c-16.457,22.805 -5.887,-30.52 3.839,-6.096c2.062,5.18 2.16,13.366 0.316,18.623c-2.406,6.873 -18.112,3.011 -16.419,11.767c2.323,0.496 7.624,-0.777 10.104,-3.307c-1.838,2.639 -7.982,6.043 -11.04,3.546c-2.784,-10.319 13.522,-5.842 15.647,-12.58c1.527,-4.849 1.235,-12.47 -0.822,-17.136c-3.8,-8.611 -12.473,3.537 -8.836,6.906c3.369,4.43 8.674,-12.55 8.721,-13.765c0.092,-2.582 -7.131,-17.133 -8.505,-9.825c-0.786,4.146 7.001,-0.713 7.341,-1.188c3.357,-4.397 3.546,-11.51 2.302,-16.649c-2.084,-9.111 -11.106,-2.878 -7.353,-0.441c7.158,5.343 9.746,-10.07 9.569,-13.495c-0.234,-4.59 -1.838,-10.03 -6.602,-11.9c-7.559,-3.585 -4.456,7.538 1.623,6.403c6.27,-1.028 5,-13.57 3.472,-17.284c-1.058,-2.568 -12.497,-9.27 -11.058,-3.144c1.217,5.177 14.025,-1.2 10.464,-6.268c-0.464,-6.897 -10.349,-10.393 -7.583,-20.242c-0.854,5.963 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M470.343,329.911c-0.014,-4.217 -2.771,-8.765 -5.591,-11.705c-2.754,-2.872 -12.369,-2.264 -8.309,1.924c7.287,7.512 17.517,-15.479 7.585,-23.425c-1.595,-1.271 -7.573,-2.997 -7.192,1.433c0.709,8.274 14.234,-1.111 15.718,-3.954c2.426,-4.264 0.718,-33.28 -8.969,-27.577c0.692,-1.001 10.322,1.57 10.576,-8.575c0.071,-2.766 -4.116,-19.439 -9.134,-18.221c-5.059,1.229 10.506,10.532 9.273,-2.63c-0.384,-7.406 -5.564,-12.822 -10.133,-15.949c13.659,2.013 0.639,-18.667 7.586,-26.897c-3.564,8.26 10.91,35.754 -8.871,30.854c-1.682,0.26 -3.904,-10.541 6.652,-5.836c7.051,3.25 12.325,16.09 9.019,23.218c-13.103,28.247 -28.91,-15.095 -10.745,-7.547c15.334,6.368 11.995,45.221 -5.095,35.877c-5.975,-3.138 2.648,-11.226 8.567,-3.076c5.21,7.237 6.871,19.161 2.873,27.222c-13.13,24.968 -28.555,-8.806 -10.786,-3.505c20.419,6.094 5.904,42.562 -8.34,32.474c-13.472,-9.545 23.526,-17.095 15.316,5.895c-0.008,-3.002 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M1106.45,589.785c-10.719,-0.207 -22.571,-9.223 -31.315,-14.619c-0.287,-0.18 -24.474,-16.974 -11.487,-17.813c5.576,-0.361 16.803,8.96 21.679,11.572c4.033,2.169 13.088,4.663 15.136,9.314c1.808,4.14 1.592,8.895 5.987,11.546" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M471.109,187.395c1.779,-6.111 3.558,-12.219 5.337,-18.33" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M516.439,222.248c4.583,-36.882 60.221,-49.314 89.934,-41.926c15.252,3.788 33.233,9.282 45.715,19.146c11.643,9.202 16.055,27.686 21.466,40.177c-10.88,-12.618 -14.134,-29.35 -28.658,-38.573c-13.75,-8.129 -30.047,-14.571 -45.296,-19.264c-32.177,-6.82 -68.111,13.351 -83.161,40.44c1.063,-8.557 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M187.546,502.013c-4.527,2.213 -8.945,4.648 -13.23,7.284" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M360.837,542.379c0.144,-9.317 17.627,-11.628 16.492,-2.361c-1.235,10.006 -16.702,14.923 -16.492,2.361" style="fill:#020303;fill-rule:nonzero;"/><path d="M195.312,326.437c3.712,-15.76 15.266,-29.309 29.772,-36.271c15.051,-7.225 41.729,-13.995 58.31,-11.27c19.016,2.606 37.464,11.776 51.495,24.728c12.855,11.861 14.849,30.653 19.548,45.591c-6.475,-9.247 -6.602,-20.314 -14.243,-28.585c-7.885,-8.676 -11.555,-16.282 -21.871,-23.014c-17.045,-11.126 -40.65,-22.624 -61.016,-14.244c-27.71,7.873 -45.881,19.418 -61.995,43.065c4.102,-17.409 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M168.343,489.718c0,0 9.183,-2.639 19.785,-4.808c8.136,-1.664 6.657,5.548 6.102,8.876c-0.555,3.328 -10.17,10.355 -11.834,10.539c-1.664,0.185 -9.615,5.363 -11.094,4.253c-1.479,-1.109 -14.053,-4.068 -2.959,-18.86Z" style="fill:#e1cb94;"/><path d="M82.362,591.601c0,0 9.368,-1.899 19.97,-4.068c8.136,-1.664 7.026,2.589 6.472,5.917c-0.555,3.328 -9.431,7.396 -11.095,7.581c-1.664,0.185 -2.739,0.927 -10.354,1.849c-2.523,0.306 -16.087,3.514 -4.993,-11.279Z" style="fill:#e1cb94;"/><path d="M1053.07,377.864c0,0 -7.267,-0.713 -15.493,-1.535c-6.313,-0.63 -5.144,2.499 -4.467,4.972c0.677,2.473 7.737,4.864 9.016,4.875c1.28,0.012 2.154,0.49 8.014,0.599c1.941,0.037 12.499,1.415 2.93,-8.911Z" style="fill:#e1cb94;"/><path d="M96.72,652.059c0,0 2.926,7.23 3.658,14.225c0.864,8.259 -5.882,8.188 -9.179,7.474c-3.298,-0.714 -4.901,-11.069 -5.006,-12.74c-0.104,-1.671 -6.674,-7.808 10.527,-8.959Z" style="fill:#e1cb94;"/><path d="M19.977,624.149c0,0 -5.005,2.457 -9.93,3.283c-5.815,0.974 -6.03,-4.019 -5.654,-6.488c0.377,-2.468 7.647,-4.073 8.826,-4.218c1.18,-0.146 5.268,-5.254 6.758,7.423Z" style="fill:#e1cb94;"/><path d="M340.675,628.776c0,0 -3.405,7.017 -8.107,12.248c-5.551,6.177 -10.019,1.122 -11.699,-1.804c-1.68,-2.927 4.932,-11.056 6.102,-12.253c1.17,-1.198 1.323,-10.187 13.704,1.809Z" style="fill:#e1cb94;"/><path d="M492.995,627.133c0,0 2.5,8.912 3.134,15.827c0.748,8.163 -1.924,9.658 -4.905,8.966c-2.981,-0.693 -8.886,-16.606 -8.974,-18.258c-0.088,-1.652 -4.823,-5.327 10.745,-6.535Z" style="fill:#e1cb94;"/><path d="M1156.8,476.699c0,0 4.928,3.761 8.267,8.25c3.943,5.299 -0.682,7.981 -3.219,8.828c-2.537,0.846 -7.833,-5.588 -8.583,-6.689c-0.75,-1.101 -7.717,-2.64 3.535,-10.389Z" style="fill:#e1cb94;"/><path d="M1085.82,483.172c0,0 -4.879,8.278 -8.244,15.452c-3.972,8.469 -7.863,4.031 -10.359,1.663c-2.497,-2.367 1.789,-12.658 2.655,-14.336c0.865,-1.678 -2.47,-14.056 15.948,-2.779Z" style="fill:#e1cb94;"/><path d="M1037.09,478.697c0,0 0.734,5.675 -0.448,10.257c-1.394,5.41 -7.452,2.447 -10.235,0.584c-2.782,-1.863 -1.502,-8.87 -1.156,-9.934c0.345,-1.064 -3.958,-7.65 11.839,-0.907Z" style="fill:#e1cb94;"/><path d="M475.27,698.993c0,0 5.903,6.886 8.132,13.656c2.632,7.993 -3.791,9.368 -7.08,9.367c-3.288,0 -8.501,-3.046 -8.967,-4.678c-0.466,-1.632 -8.169,-13.52 7.915,-18.345Z" style="fill:#e1cb94;"/><path d="M353.389,707.784c0,0 -3.959,6.721 -9.066,11.557c-6.03,5.71 -8.894,1.851 -10.333,-1.201c-1.439,-3.052 2.136,-12.398 5.884,-13.261c1.632,-0.376 2.138,-10.047 13.515,2.905Z" style="fill:#e1cb94;"/><path d="M153.671,640.595c0,0 3.481,-0.167 5.137,10.527c1.272,8.206 -8.1,7.633 -11.398,6.919c-3.298,-0.714 -4.161,-8.85 -4.266,-10.521c-0.104,-1.671 -1.311,-1.706 10.527,-6.925Z" style="fill:#e1cb94;"/><path d="M400.766,553.141c0,0 11.587,1.429 22.004,-2.774c7.701,-3.107 9.615,3.143 9.061,6.472c-0.555,3.328 -10.17,10.354 -11.834,10.539c-1.665,0.185 -11.095,2.404 -12.574,1.295c-1.479,-1.11 -17.936,0.554 -6.657,-15.532Z" style="fill:#e1cb94;"/><path d="M1031.31,278.73c3.561,-2.634 4.498,5.426 15.566,3.513c7.02,-1.214 5.223,9.505 3.759,12.606c-1.44,3.052 -6.989,2.933 -8.653,3.118c-1.664,0.185 -5.717,-0.399 -7.196,-1.508c-1.48,-1.11 -18.529,-6.594 -3.476,-17.729Z" style="fill:#e1cb94;"/><defs><image id="_Image1" width="302px" height="111px" xlink:href="data:image/png;base64,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"/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/machine.svg b/go.dev/testdata/golden/images/gophers/machine.svg
new file mode 100644
index 0000000..7fe82b7
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/machine.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1202 798" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;"><path d="M935.125,266.226c-30.316,2.378 -65.653,5.999 -81.147,36.876c-17.879,35.627 -23.872,70.714 -31.498,109.77c-3.182,16.288 -10.436,30.778 -16.903,46.07c-2.766,6.547 -7.6,39.482 6.396,24.225c15.38,-16.766 18.274,-27.125 24.58,-49.259c4.69,-16.455 6.867,-31.181 8.602,-48.279c6.716,19.352 10.011,27.141 24.986,40.849c8.212,7.513 28.415,16.602 39.326,16.602c36.079,0 66.661,-3.781 90.658,-32.631c25.294,-30.41 24.439,-60.051 13.029,-96.994c-9.479,-30.688 -50.267,-42.536 -78.029,-47.229" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M502.89,323.85c1.351,-23.863 2.951,-46.682 6.892,-70.222c1.777,-10.602 3.397,-20.959 6.227,-31.315c4.706,-17.233 7.987,-19.691 22.274,-30.87c34.207,-26.767 103.176,-17.669 123.018,21.958c5.407,10.798 10.926,21.493 16.599,32.154c4.866,9.139 3.352,23.19 4.254,33.402c0.759,8.564 5.478,21.712 2.622,29.795c-3.976,11.256 -4.946,9.069 -16.416,9.46c-55.159,1.879 -110.315,3.758 -165.47,5.638" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M448.467,336.655c0.903,-27.727 -0.858,-56.885 2.798,-84.362c1.834,-13.788 0.871,-32.355 6.012,-45.206c5.788,-14.47 21.327,-21.823 30.016,-6.994c13.074,22.313 5.388,64.426 4.968,88.481c-0.121,7.04 3.979,35.887 -0.72,41.364c-4.962,5.785 -34.914,5.446 -43.074,6.717" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M520.406,619.954c-6.079,4.146 -59.695,39.434 -58.837,40.82c11.57,18.725 22.544,45.494 37.244,61.882c7.002,7.808 14.861,21.042 23.943,26.215c9.851,5.609 19.381,11.381 28.902,17.521c18.948,12.223 38.22,29.616 62.067,19.24c14.572,-6.338 29.145,-12.677 43.717,-19.016c10.795,-4.696 14.067,-1.059 25.256,3.743c14.614,6.271 29.228,12.542 43.842,18.811c6.425,2.762 21.983,10.638 27.656,8.144c15.059,-6.611 134.302,-57.73 125.178,-69.527c-9.264,-11.985 -33.306,-15.107 -47.101,-19.947c-17.565,-6.163 -35.041,-13.026 -52.841,-18.491c-17.098,-5.25 -34.606,-12.344 -52.089,-15.991c-15.456,-3.223 -34.263,9.745 -49.102,15.748c-10.318,4.174 -20.635,8.349 -30.95,12.523c-6.303,2.552 -11.794,-8.416 -15.792,-12.872c-13.132,-14.64 -22.781,-27.836 -32.923,-44.697c-4.446,-7.389 -8.919,-14.768 -13.375,-22.153c-2.471,-4.085 -11.048,-24.625 -15.667,-25.944c-3.944,-1.127 -19.013,9.284 -22.627,11.048l-26.501,12.943Z" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M682.164,320.648c1.319,-26.174 2.635,-52.348 3.954,-78.522c0.448,-8.852 -4.028,-62.259 15.641,-58.463c19.9,3.839 18.741,2.568 20.121,22.787c0.624,9.134 1.043,18.248 1.434,27.394c1.22,28.787 2.446,57.573 3.669,86.356c-14.941,0.15 -29.878,0.301 -44.819,0.448" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M563.562,3.833c-2.83,41.37 -5.663,82.741 -8.493,124.112c-7.091,-16.948 -14.179,-33.896 -21.267,-50.844c-3.588,-8.576 -9.149,13.827 -9.636,15.636c-2.321,8.592 -4.366,17.271 -6.546,25.902c-6.093,-4.239 -28.528,-6.333 -18.35,5.359c-20.7,5.333 -13.737,7.965 -15.239,26.062c-1.146,13.762 -9.056,29.285 -13.154,42.536c9.793,-0.679 10.881,1.011 13.324,-8.109c2.686,-10.03 5.372,-20.057 8.058,-30.086c1.584,-5.916 6.578,-5.923 10.542,-11.176c1.978,-2.622 -1.982,-7.446 1.354,-9.71c4.075,-2.766 4.706,-5.093 0.838,-9.623c7.709,1.93 14.349,7.286 17.137,-1.095c2.971,-8.948 5.945,-17.892 8.919,-26.84c10.027,19.516 20.053,39.028 30.08,58.54c3.153,-43.433 6.31,-86.872 9.463,-130.307c11.659,30.598 23.322,61.193 34.981,91.792c6.502,-20.703 13.01,-41.406 19.512,-62.109c6.412,34.596 12.821,69.19 19.233,103.787c11.913,-23.441 23.825,-46.877 35.74,-70.314c2.193,9.501 7.968,22.335 7.389,31.997c-0.237,3.976 -4.834,5.82 -3.419,10.062c2.186,6.582 5.474,9.408 10.404,14.39c5.289,5.343 4.149,25.476 5.09,32.759c2.116,16.375 1.191,14.758 17.857,13.404c-10.795,-11.048 -15.501,-33.345 -14.566,-48.961c0.669,-11.183 6.867,-11.375 -0.759,-19.74c-1.367,-1.501 -8.003,0.279 -8.496,-1.898c-1.05,-4.655 -2.1,-9.31 -3.15,-13.961c-2.92,-12.93 -3.88,-44.537 -16.144,-21.84l-28.502,52.749c-4.706,-32.324 -9.408,-64.645 -14.111,-96.968c-2.023,-13.894 -7.584,-9.249 -11.333,1.725l-16.179,47.306c-10.645,-28.143 -17.55,-65.214 -37.699,-87.854c-0.961,1.104 -1.918,2.212 -2.878,3.317" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M470.876,192.595l12.975,-41.995c1.63,-5.273 -3.249,-11.474 -1.303,-16.948c2.958,-8.31 8.33,-7.488 16.711,-9.655c-10.17,-11.717 12.281,-9.569 18.36,-5.346c2.18,-8.634 4.226,-17.319 6.547,-25.915c0.486,-1.809 6.044,-24.199 9.626,-15.635c7.088,16.948 14.175,33.895 21.263,50.843c1.521,-22.163 3.035,-44.325 4.553,-66.485c0.899,-13.148 -3.592,-51.25 6.822,-60.944c20.162,22.624 27.064,59.728 37.708,87.867l16.17,-47.315c3.752,-10.975 9.309,-15.623 11.333,-1.729c4.702,32.324 9.405,64.644 14.108,96.968l28.511,-52.748c12.271,-22.698 13.228,8.916 16.147,21.846l2.824,12.514c1.028,4.552 6.367,0.646 8.823,3.339c7.616,8.355 1.424,8.576 0.759,19.739c-0.932,15.626 3.761,37.917 14.566,48.961c-13.939,1.133 -15.575,4.357 -17.361,-9.479c-1.313,-10.187 -0.196,-26.401 -4.604,-35.695c-5.144,-10.843 -15.571,-10.558 -8.618,-24.189c3.374,-6.617 -5.032,-25.857 -6.739,-33.259c-11.918,23.441 -23.833,46.884 -35.749,70.324c-6.412,-34.597 -12.824,-69.19 -19.237,-103.787c-6.498,20.706 -13,41.416 -19.499,62.118c-11.662,-30.598 -23.325,-61.199 -34.99,-91.798c-3.154,43.433 -6.31,86.872 -9.467,130.307c-10.023,-19.512 -20.053,-39.021 -30.079,-58.53l-8.91,26.837c-2.782,8.381 -9.428,3.019 -17.133,1.089c6.025,7.055 -2.203,9.322 -2.203,17.047c0,8.125 -8.579,6.165 -9.914,11.147c-2.58,9.629 -5.158,19.265 -7.738,28.898c-3.041,11.355 -2.193,10.776 -14.262,11.608Z" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M403.648,380.754c-12.376,-2.804 -24.752,-5.608 -37.132,-8.413c-14.902,-3.377 -10.523,-12.526 -11.579,-27.326c-0.698,-9.771 -10.718,-22.999 -14.937,-31.754c-6.153,-12.767 -12.015,-16.996 -23.562,-25.835c-29.897,-22.896 -111.073,-6.348 -119.118,34.994c-3.82,19.621 -11.458,51.881 3.844,68.979c6.72,7.507 14.387,20.872 24.119,24.16c11.672,3.944 21.395,10.2 32.795,14.413c16.643,6.153 51.72,3.153 64.654,-10.353c8.195,-8.558 18.279,-16.83 25.05,-26.568c4.203,-6.041 3.672,-8.593 10.385,-6.105l24.039,8.906c16.996,6.297 20.293,0.259 21.442,-15.098" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M221.173,410.285c4.376,19.685 14.915,44.419 14.329,64.466c-0.314,10.654 -6.998,23.766 -10.014,34.007c-2.67,9.07 13.289,15.014 20.223,19.977c8.083,-25.397 10.676,-42.857 10.676,-69.492c0,-7.059 -2.971,-25.902 -7.068,-31.482c-5.289,-7.196 -20.444,-12.693 -28.146,-17.476" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M67.11,424.623c-7.324,4.033 -14.646,8.064 -21.97,12.094c-9.998,5.506 -8.996,4.725 -16.282,-4.972c-3.269,-4.357 -14.307,-0.761 -13.795,4.258c0.775,7.571 4.13,18.206 0.269,24.932c-18.571,32.353 2.459,59.804 4.853,92.88c1.191,16.494 1.742,32.833 1.473,49.384c-0.314,19.032 8.896,27.202 21.82,40.353c3.493,3.55 10.888,7.833 15.683,9.204c4.508,1.283 25.118,3.454 27.839,6.252c4.508,4.629 -0.947,16.986 9.697,16.986c8.378,0 11.973,-5.298 9.133,-13.967c12.825,3.745 31.137,-7.556 42.296,-13.408c13.392,-7.023 21.536,-19.256 28.572,-32.605c5.394,-10.235 5.795,-11.314 2.958,-22.425c-1.677,-6.57 -1.562,-9.099 -0.377,-15.716c3.271,-18.292 6.543,-36.584 9.812,-54.877c2.311,-12.927 -7.235,-34.549 -10.005,-47.514c-1.898,-8.88 -10.99,-28.338 -18.772,-32.999c-16.436,-9.841 -27.538,-14.63 -46.112,-18.987c-17.034,-3.999 -29.593,-1.483 -47.092,1.127" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M89.298,453.728c-11.688,16.865 -12.498,35.154 2.343,50.412c12.921,13.279 37.747,16.205 50.546,1.604c15.843,-18.072 12.248,-34.853 -1.93,-52.262c-14.672,-18.024 -34.581,-8.823 -50.959,0.246" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M494.205,651.092c-2.507,-0.958 -8.97,-12.479 -7.575,-13.459c-2.986,2.094 -11.505,9.018 -15.75,12.396c-12.386,9.863 -1.607,21.561 4.328,31.6c18.039,30.499 -37.516,37.523 -57.653,37.596c-23.878,0.093 -59.183,-1.399 -75.484,-21.737c-7.616,-9.495 -10.654,-21.506 -11.745,-33.405c-1.652,-18.024 3.044,-18.811 11.716,-31.825c-2.538,4.229 -22.185,18.827 -17.063,4.805c5.984,-16.253 3.73,-24.848 0.593,-41.87c-1.531,-8.295 -7.463,-35.717 0.477,-42.107c-2.037,1.636 33.136,10.923 35.48,11.486c-43.391,-2.282 -54.823,-51.442 -14.627,-70.906c13.948,-6.751 43.4,0.189 49.169,16.705c6.224,17.818 -2.065,38.464 -16.986,48.894c12.171,-8.545 24.023,-25.438 20.847,-41.23c-3.867,-19.234 -27.695,-30.573 -45.606,-26.866c-28.556,5.91 -2.984,-13.026 10.26,-17.325c20.806,-6.755 44.812,-6.07 66.348,-4.649c20.843,1.364 45.023,6.406 62.835,17.905c10.305,6.653 15.876,21.539 -0.077,11.205c-13.951,-9.034 -37.164,-5.106 -48.023,6.463c-14.607,15.594 -9.514,33.826 1.694,48.849c-14.329,-12.6 -13.785,-35.333 -1.383,-49.034c9.898,-10.958 40.529,-16.801 51,-3.39c36.201,18.967 2.581,69.421 -32.195,60.755c16.231,5.695 26.078,-5.507 40.359,-5.296c7.664,0.116 0.326,30.022 -0.356,33.806c-3.121,17.316 -8.499,25.883 -5.314,43.586c0.416,2.315 3.022,29.654 -5.269,17.048" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M336.613,496.662c-8.423,9.899 -25.876,38.867 -10.216,50.264c12.726,9.262 39.031,27.644 54.577,10.929c11.022,-11.854 27.931,-35.249 12.376,-51.416c-17.681,-18.382 -34.126,-17.556 -56.737,-9.777" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M450.852,496.662c-8.426,9.895 -19.616,38.867 -3.955,50.264c12.725,9.262 32.77,27.644 48.313,10.929c11.032,-11.857 27.915,-35.243 12.37,-51.416c-17.668,-18.385 -34.123,-17.553 -56.728,-9.777" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M208.156,609.38c3.451,19.026 11.41,40.433 0.298,58.338c-12.844,20.697 -35.618,20.895 -58.11,20.457c-20.758,-0.404 -40.273,2.631 -60.752,6.178c-10.334,1.793 -20.604,3.887 -30.419,7.764c-9.46,3.735 -18.686,11.768 -29.09,12.193c8.941,6.701 18.622,17.918 30.329,13.305c13.833,-5.455 27.679,-10.827 41.614,-16.026c11.086,-4.139 25.159,-2.362 36.658,-1.885c14.08,0.586 27.445,-2.389 41.368,-4.633c23.677,-3.816 49.336,-17.863 56.206,-42.462c3.611,-12.933 1.178,-25.284 -1.713,-38.025c-4.591,-20.255 -6.64,-16.971 -26.389,-15.204" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M843.643,323.066c0,0.145 0.215,0.401 0,0c0,0.055 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M494.16,503.712c0.265,-0.138 0.316,-0.183 0,0c0.083,-0.045 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M528.814,753.659c-0.211,-0.064 -0.39,0.144 0,0c-0.064,-0.019 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M841.095,325.036c-3.217,19.813 -13.538,18.084 -29.013,23.802c-4.7,1.732 -16.673,10.823 -20.505,3.726c-3.63,-6.716 -8.803,-12.434 -15.113,-16.724c-13.465,-9.149 -30.448,-5.916 -43.65,-13.471c-5.952,-3.403 -5.058,-40.599 -4.088,-47.242c-0.82,9.841 4.997,46.282 -9.576,46.525c-6.677,0.112 -9.261,-0.352 -11.355,-7.056c-2.42,-7.763 10.04,-11.63 4.53,-19.47c0.746,6.511 -15.529,23.635 -16.624,14.72c-3.688,10.878 5.247,2.205 7.952,3.169c-1.281,4.658 2.929,9.818 -7.719,7.254c-10.141,-2.423 -6.53,-7.907 -6.825,-15.83c-0.717,-2.165 -1.956,-3.976 -3.717,-5.443c-0.425,-2.506 4.377,-7.119 4.412,-9.664c0.17,-14.477 0.096,-28.953 0.096,-43.43c-4.072,-0.137 -2.385,37.43 -3.109,43.141c-1.885,-14.047 0.353,-43.618 -10.935,-53.955c-4.04,5.193 3.899,31.344 4.427,38.019c0.82,10.389 6.329,32.935 -0.89,42.207c-5.721,7.35 -24.752,2.922 -32.093,3.435c-4.933,0.342 -44.864,-0.561 -45.824,1.098c-2.51,4.347 -20.725,-0.116 -25.857,0.525c-18.235,2.282 -36.626,2.311 -54.922,4.798c-17.54,2.385 -14.131,-13.26 -13.065,-27.813c1.098,-15.024 1.226,-30.089 2.898,-45.036c-4.3,15.139 -5.391,30.947 -7.802,46.438c-4.36,-12.539 -10.321,-25.338 -8.522,-38.979c-3.992,10.148 -2.878,20.61 -2.817,31.226c0.045,7.737 3.422,27.496 -1.947,33.924c-3.624,4.338 -24.762,5.801 -30.63,6.896c-8.029,1.501 -9.505,1.12 -10.478,-7.181c-1.681,0.81 -2.388,2.139 -2.116,3.992c-1.735,7.706 -4.61,5.206 -10.574,6.765c-7.571,1.978 -17.319,5.714 -23.952,9.815c-8.628,5.337 -16.333,17.729 -19.589,27.125c-3.682,10.683 -18.008,-1.092 -19.512,4.427c8.656,0.711 27.333,4.485 31.85,12.425c7.817,13.708 -25.838,4.783 -29.555,5.359c16.807,3.448 3.675,44.044 2.965,55.837c-0.413,6.909 1.648,19.333 -6.634,22.445c-3.918,1.472 -18.961,10.42 -22.172,7.766c-6.259,-5.157 -20.789,-7.273 -26.469,-0.233c-9.565,11.873 4.572,9.988 7.299,17.207c1.604,4.248 -8.621,22.358 -9.985,27.557c-1.824,6.998 -4.248,33.87 -1.056,40.004c3.605,-1.764 0.531,-5.872 3.109,-8.324c0,10.564 -1.566,20.572 -0.317,31.197c1.402,11.941 5.656,24.375 4.651,36.489c-0.579,6.953 -7.027,13.605 -5.49,20.591c1.223,2.231 3.118,3.668 5.692,4.309c1.722,2.446 0.515,11.947 0.643,13.945c0.612,9.472 2.673,18.888 6.848,27.454c6.361,13.058 1.184,10.453 -0.391,23.123c-1.655,13.28 15.2,17.473 22.243,8.609c-4.408,-1.873 -2.135,-9.953 2.126,-9.799c7.235,0.262 11.342,7.135 19.88,6.437c22.912,-1.959 45.049,3.676 68.172,-1.12c5.868,-1.22 17.649,-7.594 21.356,0.336c2.814,5.999 6.054,9.646 12.995,9.614c7.74,-0.039 16.202,-2.408 21.394,5.397c6.403,9.633 15.92,16.618 26.888,20.197c-0.458,-4.245 -21.065,-16.499 -25.041,-22.057c-3.438,-4.805 -24.301,-32.09 -19.71,-37.014c1.143,1.63 2.538,3.006 4.19,4.13c-3.191,-15.888 -18.503,-26.776 -21.999,-41.825c-1.089,-4.693 8.935,-9.492 11.809,-11.186c10.334,-6.079 4.274,2.882 11.5,3.739c-2.149,-5.884 -3.493,-11.95 -6.714,-17.415c0.218,10.196 -5.772,12.056 -13.388,17.819c-13.432,10.164 -7.023,17.722 0.135,29.647c6.3,10.491 11.742,14.474 1.044,23.405c-10.712,8.942 -24.276,12.024 -37.84,13.712c-24.417,3.038 -61.213,3.486 -82.21,-11.618c-10.437,-7.507 -16.026,-20.245 -18.552,-32.503c-1.597,-7.76 -1.895,-15.693 -2.292,-23.578c-0.295,-6.217 6.153,-3.845 6.944,-6.335c-0.906,1.229 -0.698,2.244 0.617,3.041c2.661,-6.169 5.84,-11.8 6.704,-18.609c-5.782,6.63 -9.975,15.625 -19.666,17.04c1.053,-5.535 2.497,-11.179 5.583,-15.984c4.975,-7.773 0.192,-10.766 -1.588,-18.443c-3.963,-17.095 -7.497,-36.93 -2.993,-54.186c6.505,4.482 33.809,20.531 41.028,9.704c-41.985,8.598 -59.877,-42.661 -25.06,-64.337c12.162,-7.552 47.614,-7.101 51.699,11.652c5.602,25.573 -5.529,34.463 -21.161,51.51c7.552,3.492 18.248,-10.901 21.49,-15.888c7.985,-12.284 10.161,-26.322 1.592,-38.765c-5.712,-8.292 -15.095,-14.221 -24.833,-16.545c-6.044,-1.444 -26.376,5.164 -28.7,3.835c-9.121,-5.224 9.329,-9.613 11.089,-11.275c13.5,-12.699 35.721,-12.398 53.443,-12.795c30.691,-0.685 81.961,1.985 95.726,33.588c-1.981,-1.956 -4.341,-2.753 -7.084,-2.395c1.194,5.145 8.768,10.498 11.022,15.956c3.73,9.047 3.931,17.197 -0.323,26.055c-8.347,17.393 -20.195,17.923 -34.977,18.51c-3.14,0.125 -6.413,0.253 -9.813,0.545c15.229,5.404 25.05,4.033 39.981,-3.266c9.732,-4.651 2.462,19.02 1.659,25.019c-2.097,15.677 -11.16,28.508 -7.421,44.236c2.362,9.917 9.197,22.748 -2.414,21.394c-0.528,3.342 3.205,4.722 5.753,3.374c6.588,-3.486 -0.279,-12.757 0.679,-17.552c1.213,-6.096 31.443,-20.55 37.484,-24.407c3.47,-2.216 29.314,-19.717 31.667,-14.099c3.989,9.543 10.181,17.87 15.639,26.577c1.978,3.16 13.519,17.649 13.58,17.867c-2.699,-6.262 -5.282,-8.605 3.384,-8.285c13.839,0.522 27.653,-0.765 41.473,-1.271c24.084,-0.88 48.257,-2.007 72.369,-3.483c9.972,-0.611 21.43,-3.589 31.373,-1.822c7.76,1.38 7.491,10.847 11.576,15.924c6.976,8.679 17.067,6.415 26.498,4.725c10.849,-1.95 27.4,1.249 36.364,-6.54c-6.189,0.701 -45.386,1.78 -34.36,-16.285c3.255,-5.331 13.66,-2.392 18.17,-6.602c7.652,-7.132 3.173,-24.714 2.363,-33.489c-2.065,-22.467 -0.272,-44.93 0.65,-66.901c0.426,-10.129 -2.065,-23.306 6.198,-31.104c7.084,-6.681 16.16,-15.242 16.631,-25.761c-1.681,3.307 -15.94,26.065 -20.822,23.389c-13.471,-7.389 4.242,-22.387 0.058,-28.175c-4.636,-6.79 -4.838,0.096 -5.952,-13.817c-1.168,-14.646 -0.685,-29.039 -1.066,-43.679c-0.153,-5.967 -6.194,-25.633 -0.649,-29.516c3.87,-2.728 26.03,-15.527 30.463,-11.013c4.428,4.508 -6.341,42.517 -7.808,49.797c-1.344,6.678 -14.595,36.777 -10.244,41.14c11.23,-18.456 12.962,-43.051 15.943,-63.889c1.508,-10.551 3.662,-20.956 5.961,-31.36c2.09,-9.479 8.634,-23.034 8.147,-32.625c-1.418,-0.16 -2.263,0.442 -2.536,1.809m-369.34,349.803c-2.359,-4.114 -6.531,-7.024 -6.787,-12.194c1.991,3.582 6.89,16.669 12.94,15.257c-4.709,3.291 1.028,5.491 0.868,9.002c-2.497,-3.931 -4.841,-7.952 -7.021,-12.065m27.832,-348.67c-12.36,-6.082 -5.016,-23.514 -5.003,-36.034c5.765,5.558 4.424,35.746 5.003,36.034" style="fill:#020303;fill-rule:nonzero;"/><path d="M864.843,289.626c0.951,-0.96 -0.061,0.093 0,0c0.138,-0.138 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1193.79,307.496c23.587,-15.693 -16.817,-21.064 -20.772,-26.297c-13.126,-17.368 -40.561,-22.79 -52.71,-38.905c-0.098,-0.13 1.93,-9.497 -9.208,1.113c-8.599,8.185 1.027,6.199 -14.048,4.134c-9.546,-1.309 -16.927,1.702 -26.808,-1.936c-12.452,-4.585 -41.266,-4.478 -47.716,6.274c0.055,-2.404 -0.491,7.991 0.81,8.759c4.177,2.466 2.888,9.854 2.856,13.231c-0.103,10.747 3.71,18.184 -1.188,27.928c-5.365,10.687 -5.932,8.785 -12.687,0.269c-6.425,-8.105 -15.478,-16.134 -23.824,-22.236c-14.681,-10.731 -43.852,-21.977 -62.131,-17.486c1.037,0.458 2.01,1.028 2.916,1.713c-24.932,2.058 -44.457,6.102 -64.014,25.188c14.112,-3.515 25.931,-15.856 40.795,-20.21c-9.425,10.904 -28.976,16.964 -34.629,32.084c17.674,-5.593 26.926,-29.734 51.57,-29.075c-3.371,-1.312 -6.815,-1.584 -10.331,-0.816c6.205,-7.03 7.447,-0.487 13.356,-0.144c12.293,0.714 23.815,-2.779 36.23,0.298c17.204,4.264 44.469,18.491 49.233,37.439c2.295,9.14 8.224,16.743 10.174,26.059c2.548,12.165 1.975,28.393 0.243,40.657c-1.722,12.181 -6.428,24.589 -14.3,34.155c-4.085,4.962 -20.623,13.583 -20.857,20.015c8.09,-1.14 13.279,-7.735 18.76,-13.03c1.399,14.854 5.65,29.331 12.802,42.437c10.312,18.913 12.649,20.975 -9.389,27.589c-5.804,1.738 -12.831,4.018 -16.913,8.839c-5.916,6.979 1.088,10.615 -0.17,17.364c-1.696,9.143 -10.849,36.2 -22.739,35.506c10.075,1.034 -10.113,33.767 -12.693,40.586c-2.251,5.932 -10.343,11.019 -5.09,17.883c5.308,6.953 16.919,-0.807 24.109,-1.422c-9.575,-0.291 -5.385,-14.642 -0.903,-19.214c4.133,-4.213 26.395,19.845 31.418,22.288c11.679,5.689 2.183,21.058 1.29,30.339c-2.061,21.356 27.272,11.3 27.25,10.558c-2.897,0.413 -6.022,-0.052 -8.957,0c6.7,-1.386 19.112,-102.312 24.871,-100.192c3.918,1.405 -6.451,40.164 -5.202,45.622c1.475,6.444 11.272,4.648 13.471,0.243c4.222,-8.381 2.314,-12.549 11.806,-9.892c8.788,2.465 16.887,10.001 25.044,14.153c7.357,3.749 16.212,6.297 22.749,11.483c6.383,5.068 8.035,14.582 12.696,21.094c8.237,11.541 9.022,-0.247 16.074,2.532c-9.38,-3.931 -9.655,-37.606 -12.859,-45.801c-2.642,-6.745 -26.607,-44.403 -12.934,-43.743c-5.32,-4.111 -7.395,1.821 -10.455,-7.11c-1.899,-5.542 -0.868,-12.335 3.636,-16.394c8.369,-7.61 -14.809,-15.143 -17.796,-19.237c12.757,-0.567 24.516,-1.172 37.027,-4.04c6.626,-1.521 13.096,-3.826 18.369,-8.279c4.635,-3.909 5.586,1.956 9.092,3.983c7.414,4.289 18.76,1.584 11.592,-7.021c-10.373,-12.495 -5.295,-9.86 -4.537,-24.762c1.608,-31.556 -2.705,-55.793 14.214,-84.166c6.659,-11.173 13.779,-24.244 15.332,-37.347c0.957,-8.09 -10.075,-28.937 -3.925,-33.06m-173.56,279.924c-0.99,2.856 -2.158,5.634 -3.503,8.339c-7.852,-7.19 -17.117,-12.318 -25.489,-18.942c-11.796,-9.335 -3.687,-9.354 -3.639,-21.974c0,-10.98 17.063,7.117 17.821,7.741c9.339,7.648 18.651,11.323 14.81,24.836" style="fill:#020303;fill-rule:nonzero;"/><path d="M46.494,648.172c11.81,5.512 25.831,11.694 39.178,9.62c1.107,5.272 0.976,23.123 11.736,17.623c8.125,-4.13 -1.041,-13.414 2.177,-15.475c5.861,-3.804 18.932,-0.234 26.686,-3.253c10.766,-4.184 21.148,-10.18 29.843,-17.812c8.326,-7.328 14.463,-16.906 17.649,-27.531c3.617,-12.069 -3.615,-11.951 -7.223,-21.702c-1.802,-4.86 -70.57,13.231 -80.078,12.117c7.844,-2.446 16.462,-1.361 23.994,-4.978c-7.612,-6.672 -18.779,-4.255 -27.07,-0.433c0.791,-4.228 3.922,-4.978 7.635,-6.77c8.311,-2.862 -2.023,-9.089 0.551,-15.05c2.1,0.429 29.455,30.051 20.45,7.005c-6.092,-15.597 10.247,-0.621 15.581,-1.527c8.266,-1.406 16.259,-3.765 24.41,-5.66c10.769,-2.507 10.779,-2.44 11.227,-13.449c0.621,-15.267 20.143,-39.082 9.053,-51.311c7.984,-7.277 5.974,1.277 10.049,5.503c2.158,2.241 0.961,-14.752 8.055,-14.867c2.67,1.783 -4.06,12.898 2.9,14.649c4.284,1.079 11.099,-2.948 14.931,-3.585c4.997,-0.829 14.89,2.122 19.166,-0.512c2.862,-1.764 7.085,-20.575 7.572,-24.279c1.744,-13.18 -2.283,-27.986 -4.914,-40.823c-3.109,-15.162 -4.94,-24.151 -16.462,-34.575c-10.542,-9.53 -16.928,-20.456 -18.033,-34.622c6.051,14.243 12.642,28.194 25.893,37.148c-6.762,-15.389 -24.603,-44.668 -16.599,-61.782c4.462,42.686 27.493,75.548 71.236,83.567c-8.173,0.65 -15.895,-1.956 -23.633,-4.085c-1.94,8.058 3.848,17.976 5.033,25.925c1.29,8.65 1.652,17.722 2.174,26.462c0.23,3.8 -5.228,38.348 -8.951,36.965c0.698,0.26 5.788,-52.367 5.058,-58.414c-1.197,-9.969 -2.788,-23.296 -8.711,-31.799c-5.029,-7.222 -15.536,-6.835 -19.928,-14.88c8.48,26.811 17.886,66.348 4.136,92.477c-2.52,4.821 20.511,18.033 24.375,24.42c8.23,13.596 4.818,31.879 22.774,31.879c-3.301,4.187 -10.99,0.051 -13.039,7.212c-3.352,11.711 -1.028,20.373 -11.509,29.657c-6.197,5.497 -20.437,6.758 -18.945,16.631c2.225,14.461 5.48,29.244 2.612,43.871c-5.708,29.113 -28.008,39.514 -54.022,45.302c-13.472,2.997 -28.607,5.391 -42.434,4.514c-5.436,-0.349 -25.761,1.604 -29.619,-2.148c5.023,-2.459 8.58,-1.511 14.086,-1.165c13.526,0.854 27.026,-0.733 40.42,-2.417c21.897,-2.757 49.144,-9.873 61.094,-30.4c6.582,-11.304 9.777,-21.862 7.005,-34.805c-1.162,-5.442 -2.881,-25.953 -10.014,-26.923c-23.056,-3.144 -2.904,29.142 -9.639,41.307c-4.812,-3.608 -6.316,-25.406 -6.947,-32.833c-0.458,-5.305 -19.538,-17.3 -24.641,-16.08c-9.296,2.221 -31.193,53.094 -15.827,50.651c-3.649,4.808 -14.604,8.727 -20.482,7.248c-4.738,-1.198 -1.325,-7.559 -6.496,-8.762c-4.677,-1.092 -13.304,5.356 -17.751,6.633c-13.029,3.742 -15.126,-1.684 -19.486,9.761c-0.305,0.797 10.615,6.585 12.011,5.973c-6.944,6.077 -26.782,1.915 -29.737,-7.215c-3.243,-10.024 -1.185,-7.824 -11.999,-10.664c-6.508,-1.71 -24.263,-3.618 -26.561,-11.534" style="fill:#020303;fill-rule:nonzero;"/><use xlink:href="#_Image1" x="574.434" y="689.789" width="304px" height="111.442px" transform="matrix(1,0,0,0.995019,0,1.11022e-16)"/><path d="M871.418,303.941c2.388,2.722 -15.005,40.161 -15.226,48.088c-0.538,19.044 7.427,38.287 18.315,53.564c10.849,15.207 27.758,25.416 45.353,30.995c9.876,3.131 20.312,4.562 30.659,3.621c6.883,-0.627 19.381,-7.469 26.014,-4.174c-36.946,23.344 -110.25,11.409 -127.704,-32.273c-7.03,15.146 -5.791,33.502 -16.538,47.015c14.851,-48.654 11.163,-102.763 39.127,-146.836" style="fill:#020303;fill-rule:nonzero;"/><path d="M193.697,450.058c5.407,3.378 12.761,22.723 9.841,28.873c-1.745,3.682 -8.867,4.664 -6.223,9.851c2.689,5.298 -1.838,10.394 -5.996,12.117c-4.684,-9.428 7.494,-13.971 -10.443,-10.616c-4.85,0.912 -9.726,-0.32 -12.533,4.847c-3.592,6.611 4.139,9.415 2.452,14.518c-19.4,-6.387 4.447,-32.314 1.079,-42.789c-2.312,-7.149 -31.261,-40.506 -32.116,-39.098c4.809,2.196 10.565,9.114 16.308,7.456c4.715,-1.386 22.012,-4.77 23.664,3.393c-6.973,6.285 -24.878,-9.027 -12.524,9.55c8.465,12.728 17.505,20.745 26.546,32c8.515,-9.674 -5.286,-24.298 -0.055,-30.102" style="fill:#020303;fill-rule:nonzero;"/><path d="M170.794,509.649c-4.28,-4.665 -7.619,-9.598 -3.563,-15.847c4.684,-7.216 6.809,-2.744 13.942,-4.517c2.775,-0.688 8.528,-5.702 11.541,-2.737c5.56,5.493 1.203,12.943 -4.604,14.934c-5.023,1.725 3.618,13.804 -5.484,16.797c-3.364,1.15 -3.374,-7.36 -3.595,-8.266c-1.111,-4.526 -5.375,-0.364 -8.237,-0.364" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M22.336,621.61c6.825,9.973 14.54,19.513 24.352,26.712c-11.794,-1.639 -14.451,-17.165 -25.037,-18.916c-4.796,-0.794 -26.184,7.302 -20.783,-6.624c2.634,-6.787 10.209,-2.551 14.13,-6.867c3.496,-3.848 1.092,-15.51 1.095,-20.085c0.006,-6.265 4.661,-30.377 -5.548,-30.473c12.457,-4.463 -2.606,-41.166 -4.981,-48.853c13.782,-5.298 10.116,102.328 16.772,105.106" style="fill:#020303;fill-rule:nonzero;"/><path d="M304.179,361.121c3.009,23.841 -44.367,29.347 -44.402,4.239c-0.064,-32.353 44.476,-37.933 44.402,-4.239" style="fill:#020303;fill-rule:nonzero;"/><path d="M215.078,657.225c4.322,25.601 -36.53,34.901 -54.234,33.947c-14.972,-0.81 -29.458,-2.452 -44.479,-0.845c-15.241,1.633 -29.843,7.651 -45.155,8.352c27.954,-13.89 59.654,-9.876 89.529,-11.067c12.114,-0.502 24.727,-0.035 35.33,-6.908c8.947,-5.804 11.105,-18.344 19.009,-23.479" style="fill:#020303;fill-rule:nonzero;"/><path d="M130.352,452.715c-12.555,-9.079 -33.258,-1.078 -43.301,8.759c-13.055,12.793 -4.261,29.84 -3.214,44.71c-4.555,-9.338 -7.277,-24.007 -5.612,-34.35c2.465,-15.322 17.937,-21.523 31.181,-25.909c25.732,-8.563 42.194,21.161 43.935,41.608c0.669,-0.967 1.425,-1.853 2.273,-2.67c0.752,7.082 -3.009,13.212 -4.917,19.724c-3.595,-8.1 2.289,-20.265 -0.977,-29.565c-2.964,-8.448 -10.974,-18.779 -19.368,-22.307" style="fill:#020303;fill-rule:nonzero;"/><path d="M5.721,516.342c-4.047,-9.783 -5.974,-20.351 -5.234,-30.931c0.832,-11.913 10.186,-20.351 11.265,-30.551c0.832,-7.859 -5.807,-13.685 -1.93,-22.297c3.255,-7.232 18.718,-8.131 15.184,-3.099c-2.046,2.929 -11.125,-2.926 -13.529,8.829c-2.055,10.043 10.138,14.102 2.228,22.304c-16.122,16.711 -6.054,36.62 -7.984,55.745" style="fill:#020303;fill-rule:nonzero;"/><path d="M129.521,509.702c-14.035,-0.119 -14.832,-19.487 -2.19,-19.058c9.982,0.41 15.334,19.173 2.19,19.058" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.234,154.09c-1.307,7.328 -12.335,32.439 -7.021,38.09c7.037,7.465 2.414,25.514 15.408,23.059c-5.122,0.016 -7.987,3.787 -8.176,7.987c2.116,-0.391 -12.389,-49.867 -30.63,-23.949c2.221,-7.286 12.475,-8.442 10.785,-17.575c2.932,2.068 -0.541,17.059 8.724,7.74c7.186,-7.225 4.67,-26.343 10.91,-35.352c-0.538,3.029 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M356.449,343.589c0.99,7.267 0.455,18.446 3.832,25.005c2.517,4.892 8.743,2.917 11.66,7.725c-7.082,-3.252 -13.328,-0.586 -15.271,7.002c-1.793,6.969 7.312,3.044 8.733,7.888c-0.064,0.051 -7.385,-1.569 -9.018,-0.932c-5.378,2.103 -5.208,8.4 -11.06,9.979c4.037,-6.269 16.125,-57.042 11.124,-56.667" style="fill:#020303;fill-rule:nonzero;"/><path d="M849.583,717.094c-12.69,-3.173 -24.81,-9.755 -37.471,-13.513c-11.112,-3.294 -40.068,-5.951 -47.018,-15.405c6.828,-4.158 36.261,9.46 44.188,11.57c14.707,3.915 27.749,9.21 40.301,17.348c-7.961,-1.991 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M689.511,190.263c16.006,-11.025 3.076,-34.709 4.315,-50.133c7.677,2.849 4.187,46.006 12.719,42.594c-4.002,4.04 -13.577,6.444 -17.034,7.539c12.318,-8.484 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M29.306,442.536c1.309,-2.628 -1.905,-5.448 0.128,-7.603c4.773,4.735 2.506,22.966 -6.435,15.939c-15.735,-12.353 5.711,-18.807 6.307,-8.336" style="fill:#020303;fill-rule:nonzero;"/><path d="M560.582,244.112c-0.208,0.198 21.523,-13.391 11.125,-15.251c-1.802,-0.333 -4.229,5.797 -5.73,7.35c0.922,-1.87 -0.778,-10.02 -3.868,-10.039c-5.884,-0.039 -1.792,6.783 -5.852,8.461c-3.067,-15.331 23.021,-11.122 19.679,-7.299c8.16,11.035 -9.057,15.606 -15.354,16.778c3.045,-2.881 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M722.978,193.852c-2.315,-3.935 -3.72,-9.181 -9.422,-8.938c-7.171,0.336 -5.922,-16.282 -6.659,-20.329c-1.443,-7.875 -3.262,-15.686 -4.222,-23.641c-0.704,-5.904 4.069,-8.606 3.681,-15.082c6.621,3.595 0.112,8.503 -1.021,12.508c-1.946,6.886 1.111,16.48 2.577,23.254c1.127,5.206 1.053,13.58 4.053,18.126c4.933,7.478 10.116,3.131 11.013,14.102" style="fill:#020303;fill-rule:nonzero;"/><path d="M139.759,427.755c-3.768,3.756 -19.409,-6.373 -24.435,-7.366c-9.153,-1.805 -28.489,-5.452 -36.86,0.154c15.424,-12.972 46.412,0.739 61.295,7.212" style="fill:#020303;fill-rule:nonzero;"/><path d="M760.797,685.412c-18.607,-1.93 -34.78,-17.246 -54.068,-9.153c15.232,-11.55 39.207,2.674 54.068,9.153" style="fill:#020303;fill-rule:nonzero;"/><path d="M655.8,756.338c-9.306,-0.541 -18.507,-14.169 -28.412,-16.214c6.56,-0.762 0.055,-0.97 4.514,-3.298c12.066,9.034 26.632,13.401 38.003,21.686c-6.018,2.75 -8.451,-3.345 -14.105,-2.174" style="fill:#020303;fill-rule:nonzero;"/><path d="M477.105,172.305c-2.205,-7.059 3.861,-15.731 5.753,-22.329c2.004,-6.966 -5.951,-18.036 2.03,-22.771c-5.849,7.145 2.27,10.119 2.106,16.721c-0.217,8.938 -6.348,20.318 -9.889,28.379" style="fill:#020303;fill-rule:nonzero;"/><path d="M189.991,352.992c0.141,-2.779 1.457,-29.254 6.092,-28.124c1.947,0.467 -2.983,30.659 -4.802,30.857c-1.341,-0.445 -1.77,-1.354 -1.29,-2.733" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.296,223.383c0.928,2.321 1.322,4.731 1.185,7.225c7.401,-1.735 11.921,-4.799 10.372,-12.933c5.02,4.543 2.1,12.235 -4.04,13.746c-9.191,2.264 -4.011,8.554 -7.245,14.342c-0.083,-7.513 -1.277,-15.404 -0.272,-22.38" style="fill:#020303;fill-rule:nonzero;"/><path d="M111.46,709.397c-1.236,3.361 -30.051,12.978 -34.005,9.854c11.644,-2.769 22.173,-10.709 34.005,-9.854" style="fill:#020303;fill-rule:nonzero;"/><path d="M308.784,430.581c-9.61,3.103 -18.949,7.392 -29.26,3.57c10.087,0.752 19.339,-4.303 29.26,-3.57" style="fill:#020303;fill-rule:nonzero;"/><path d="M514.513,738.806c4.549,-1.354 32.234,18.2 32.612,17.434c-1.236,2.52 -31.392,-14.159 -32.612,-17.434c3.922,-1.165 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M689.379,190.138c2.187,4.626 -1.174,47.418 -1.402,47.463c0.083,-15.94 -1.802,-31.815 1.402,-47.463" style="fill:#020303;fill-rule:nonzero;"/><path d="M546.42,757.83c5.254,-0.548 29.238,16.614 28.572,17.527c-1.863,2.526 -25.457,-15.427 -28.572,-17.527" style="fill:#020303;fill-rule:nonzero;"/><path d="M521.039,220.415c-2.983,9.488 -5.954,19.003 -8.925,28.491c0.931,-10.157 2.263,-20.187 8.925,-28.491" style="fill:#020303;fill-rule:nonzero;"/><path d="M574.802,783.906c-9.761,-1.982 -17.29,-8.484 -23.094,-16.272c6.848,1.181 17.153,12.161 23.094,16.272c-10.068,-2.046 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M592.361,229.911c8.211,9.351 -0.692,21.209 -10.075,24.138c7.808,-5.676 13.859,-14.752 10.075,-24.138" style="fill:#020303;fill-rule:nonzero;"/><path d="M310.627,429.337c6.06,-3.909 11.515,-7.421 17.034,-10.974c0.055,5.849 -7.878,11.019 -17.034,10.974" style="fill:#020303;fill-rule:nonzero;"/><path d="M702.166,678.534c-6.925,3.762 -13.836,7.543 -20.758,11.311c-2.554,-7.453 20.764,-11.285 20.758,-11.311" style="fill:#020303;fill-rule:nonzero;"/><path d="M551.713,767.634c-9.245,-2.027 -17.14,-7.024 -23.062,-13.792c7.356,1.944 18.391,9.409 23.062,13.792c-9.229,-2.024 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M864.668,289.449c0.973,3.679 -11.938,16.887 -14.345,20.38c2.554,-8.349 7.536,-15.632 14.345,-20.38c0.105,0.4 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M547.66,239.024c-4.706,0.413 -5.785,5.647 -9.591,7.257c1.613,-4.453 9.741,-15.334 15.955,-11.736c-0.083,0.048 -6.947,4.325 -6.364,4.479" style="fill:#020303;fill-rule:nonzero;"/><path d="M547.66,239.024c0.81,-0.461 2.193,-2.558 3.46,-1.188c-1.645,-1.776 -7.407,19.877 -7.529,21.219c-3.182,-7.395 -0.096,-13.958 4.069,-20.031" style="fill:#020303;fill-rule:nonzero;"/><path d="M179.732,438.607c6.214,1.802 12.236,4.568 13.968,11.451c-5.635,-1.031 -12.867,-6.381 -13.968,-11.451c6.291,1.821 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M216.441,299.286c-4.408,4.354 -8.829,8.718 -13.237,13.071c3.425,-5.295 7.411,-10.071 13.237,-13.071" style="fill:#020303;fill-rule:nonzero;"/><path d="M339.525,309.414c-5.478,-4.501 -10.584,-9.415 -15.914,-14.121c6.896,2.916 11.759,8.125 15.914,14.121" style="fill:#020303;fill-rule:nonzero;"/><path d="M492.399,154.256c-0.154,-10.363 7.93,-3.413 8.871,-11.589c1.053,6.854 -4.93,7.85 -8.871,11.589" style="fill:#020303;fill-rule:nonzero;"/><path d="M554.201,262.981c-1.917,4.056 0.394,-15.315 0.266,-14.205c-0.621,0.593 6.435,-4.83 5.932,-4.83c-0.72,6.77 -5.625,11.809 -6.198,19.035" style="fill:#020303;fill-rule:nonzero;"/><path d="M508.766,730.549c-4.924,0.772 -8.932,-9.805 -9.908,-13.135c2.858,5.231 8.371,7.495 9.908,13.135c-4.188,0.657 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M697.526,770.054c-4.331,1.725 -7.993,1.238 -10.996,-1.463c5.084,-4.924 8.416,1.463 10.996,1.463" style="fill:#020303;fill-rule:nonzero;"/><path d="M576.728,776.447c19.835,2.308 14.982,15.254 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M604.757,661.021c-1.514,-0.602 -6.089,-10.155 -4.248,-10.792c3.425,-1.175 7.382,11.518 4.248,10.792" style="fill:#020303;fill-rule:nonzero;"/><path d="M697.526,770.054c0.103,-3.301 12.21,5.333 14.003,6.028c-6.78,1.437 -8.634,-3.928 -14.003,-6.028" style="fill:#020303;fill-rule:nonzero;"/><path d="M607.139,663.822c4.114,1.319 7.251,6.044 8.269,9.492c-4.216,1.889 -6.735,-6.592 -8.269,-9.492c4.729,1.517 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.018,679.319c2.177,-1.178 9.329,7.68 11.23,9.076c-5.15,-0.183 -9.437,-4.77 -11.23,-9.076c3.663,-1.982 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M676.008,761.222c3.941,0.803 7.143,2.817 9.601,6.037c-1.277,0.148 -12.959,-1.911 -9.601,-6.037" style="fill:#020303;fill-rule:nonzero;"/><path d="M207.262,340.113c-1.725,-4.809 0.096,-7.773 1.979,-10.773c1.066,3.454 -0.224,6.496 -1.979,10.773" style="fill:#020303;fill-rule:nonzero;"/><path d="M251.374,283.999c-3.934,-0.18 -7.347,4.088 -11.588,1.143c5.166,0.592 6.226,-3.064 11.588,-1.143" style="fill:#020303;fill-rule:nonzero;"/><path d="M676.008,761.222c-0.035,0.95 -0.067,1.898 -0.102,2.849c-3.214,-1.834 -6.166,-1.076 -6.166,-5.372c2.289,0.343 4.38,1.185 6.268,2.523" style="fill:#020303;fill-rule:nonzero;"/><path d="M514.693,738.628c-2.324,-2.603 -6.352,-3.733 -5.932,-8.071c0,-1.511 5.929,7.127 5.932,8.071" style="fill:#020303;fill-rule:nonzero;"/><path d="M546.586,296.327c4.872,0.561 8.352,0.954 12.328,1.409c-6.377,1.473 -7.613,1.389 -12.328,-1.409" style="fill:#020303;fill-rule:nonzero;"/><path d="M43.887,724.944c-0.314,-0.07 -12.425,-3.851 -8.903,-7.203c0.432,-0.406 8.877,7.178 8.903,7.203" style="fill:#020303;fill-rule:nonzero;"/><path d="M205.469,349.589c-3.24,-0.913 -0.701,-8.1 1.207,-8.75c2.065,-0.707 -0.704,8.388 -1.207,8.75" style="fill:#020303;fill-rule:nonzero;"/><path d="M148.91,502.156c-0.317,5.33 -3.124,8.662 -6.284,10.833c0.042,-4.037 4.24,-8.949 6.25,-13.018" style="fill:#020303;fill-rule:nonzero;"/><path d="M625.916,769.641c0.909,5.897 -7.271,3.918 -6.902,2.862c0.204,-0.692 6.418,-2.708 6.902,-2.862c0.886,5.753 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M634.172,696.467c-3.87,-1.29 -5.849,-3.976 -5.932,-8.061c0.663,-0.663 5.916,8.032 5.932,8.061c-3.329,-1.668 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M627.569,739.944c-2.144,-1.991 -4.632,-3.352 -7.465,-4.078c6.828,-1.034 4.187,0.566 7.465,4.078c-1.86,-2.427 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M684.965,132.058c2.539,2.199 5.077,4.401 7.616,6.601c-4.267,-1.162 -6.94,-2.372 -7.616,-6.601" style="fill:#020303;fill-rule:nonzero;"/><path d="M843.815,323.232c-0.237,-3.528 0.711,-6.716 2.846,-9.562c1.732,5.766 -0.864,5.497 -2.846,9.562" style="fill:#020303;fill-rule:nonzero;"/><path d="M533.152,292.884c3.659,-0.602 6.089,1.29 8.439,4.363c-3.755,-0.106 -5.519,-3.454 -8.439,-4.363" style="fill:#020303;fill-rule:nonzero;"/><path d="M608.808,778.845c-0.253,0.406 9.067,-7.872 7.427,-3.227c-0.384,1.091 -6.575,3.435 -7.427,3.227" style="fill:#020303;fill-rule:nonzero;"/><path d="M553.829,292.066c-1.959,2.632 6.608,5.897 -7.888,2.161c7.498,0.573 10.129,-0.15 7.888,-2.161" style="fill:#020303;fill-rule:nonzero;"/><path d="M311.277,290.97c-3.742,-2.404 -5.941,-3.803 -8.49,-5.455c3.954,-0.33 3.954,-0.33 8.49,5.455" style="fill:#020303;fill-rule:nonzero;"/><path d="M230.191,289.243c1.952,-1.2 3.998,-2.215 6.133,-3.041c1.354,0.128 -2.622,4.066 -6.133,3.041" style="fill:#020303;fill-rule:nonzero;"/><path d="M554.464,248.778c-2.849,0.688 -0.534,4.622 -3.742,5.083c-2.593,-6.45 3.518,-5.08 3.742,-5.083" style="fill:#020303;fill-rule:nonzero;"/><path d="M45.492,709.066c2.027,-2.664 6.083,-5.907 7.37,-1.819c-2.309,1.194 -4.764,1.799 -7.37,1.819" style="fill:#020303;fill-rule:nonzero;"/><path d="M849.412,717.26c3.095,-1.015 7.01,-0.468 6.156,3.198c1.312,1.146 -7.981,-4.187 -6.156,-3.198" style="fill:#020303;fill-rule:nonzero;"/><path d="M142.434,512.422c-2.548,4.35 -7.939,7.501 -11.227,7.287c2.273,-1.45 7.494,-4.883 11.227,-7.287" style="fill:#020303;fill-rule:nonzero;"/><path d="M718.563,776.631c3.391,-0.173 1.332,4.188 0.202,3.698c-2.154,-0.922 -3.028,-3.419 -0.202,-3.698" style="fill:#020303;fill-rule:nonzero;"/><path d="M625.991,769.744c2.333,-1.357 5.243,-0.192 7.545,-1.623c-2.471,2.638 -4.379,3.56 -7.545,1.623" style="fill:#020303;fill-rule:nonzero;"/><path d="M448.853,314.182c0.688,2.625 0.33,5.054 -1.079,7.286c-3.867,2.791 2.2,-9.691 1.079,-7.286" style="fill:#020303;fill-rule:nonzero;"/><path d="M706.218,282.292c-0.98,1.927 -2.516,2.964 -4.62,3.115c-0.57,-4.056 2.081,-2.513 4.62,-3.115" style="fill:#020303;fill-rule:nonzero;"/><path d="M451.254,287.888c-0.074,3.505 1.069,6.089 -1.934,8.24c-0.412,-2.689 -0.022,-4.924 1.934,-8.24" style="fill:#020303;fill-rule:nonzero;"/><path d="M555.802,243.957c-0.867,-2.868 0.01,-4.354 3.141,-5.221c-0.625,2.193 -0.983,3.896 -3.141,5.221" style="fill:#020303;fill-rule:nonzero;"/><path d="M598.701,785.582c-2.9,-2.968 1.719,-3.634 4.421,-4.111c-1.476,1.371 -2.948,2.741 -4.421,4.111" style="fill:#020303;fill-rule:nonzero;"/><path d="M617.228,734.617c-1.777,-2.638 -2.779,-4.13 -3.586,-5.33c2.347,-0.583 2.856,1.517 3.586,5.33" style="fill:#020303;fill-rule:nonzero;"/><path d="M862.923,735.164c-1.607,0.743 -3.217,1.492 -4.824,2.234c0.343,-7.398 2.097,-1.898 4.824,-2.234" style="fill:#020303;fill-rule:nonzero;"/><path d="M193.502,366.769l0,7.213c-1.47,-2.859 -0.996,-4.966 0,-7.213" style="fill:#020303;fill-rule:nonzero;"/><path d="M981.813,432.029c0.817,-2.67 3.045,-2.417 5.119,-2.478c-0.867,2.561 -2.791,2.932 -5.119,2.478" style="fill:#020303;fill-rule:nonzero;"/><path d="M64.983,727.104c-0.932,3.211 -3.109,2.501 -5.932,2.206c2.189,-1.418 4.315,-0.88 5.932,-2.206" style="fill:#020303;fill-rule:nonzero;"/><path d="M94.598,585.986c0.868,3.253 -0.329,4.45 -3.576,3.592c1.185,-1.2 2.382,-2.407 3.576,-3.592" style="fill:#fcfcfc;fill-rule:nonzero;"/><path d="M193.291,364.484c-2.539,-0.964 -2.084,-2.533 -1.575,-5.001c0.698,2.193 1.13,3.592 1.575,5.001" style="fill:#020303;fill-rule:nonzero;"/><path d="M495.15,711.654c0.122,0.493 -2.135,-5.698 -1.29,-4.735c1.979,1.137 2.408,2.712 1.29,4.735" style="fill:#020303;fill-rule:nonzero;"/><path d="M687.416,241.381c0.471,-0.778 0.944,-1.553 1.415,-2.33c0.701,0.092 2.676,4.376 -1.415,2.33" style="fill:#020303;fill-rule:nonzero;"/><path d="M632.034,736.684c-2.174,1.687 -3.512,1.168 -4.018,-1.556c2.017,-1.182 2.945,1.28 4.018,1.556" style="fill:#020303;fill-rule:nonzero;"/><path d="M615.23,673.482c2.401,1.386 3.003,3.33 1.796,5.827c-0.567,1.133 -2.292,-7.178 -1.796,-5.827c2.343,1.402 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M604.757,661.021c2.903,-2.977 2.606,0.544 2.391,2.795c-0.698,0.931 -2.455,-1.716 -2.391,-2.795" style="fill:#020303;fill-rule:nonzero;"/><path d="M430.075,552.607c-6.188,-1.53 -8.864,3.698 -15.254,3.198c-9.364,-0.73 -11.89,-3.214 -15.824,6.854c-2.424,6.195 7.603,6.63 11.163,7.133c11.252,1.591 17.213,-3.352 23.11,-11.813c0.659,5.215 -5.612,20.309 -8.567,25.303c-7.475,12.524 -15.062,-9.69 -20.091,-11.428c-17.604,-6.096 8.438,-52.662 25.463,-19.247" style="fill:#020303;fill-rule:nonzero;"/><path d="M494.336,503.537c-13.596,-10.719 -40.743,-5.856 -51.468,6.325c-16.423,18.655 -0.166,35.212 8.57,50.975c-22.163,-7.248 -22.223,-40.468 -8.583,-54.938c9.022,-9.569 46.352,-18.574 51.481,-2.362c-4.127,-3.253 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M489.156,527.928c8.333,2.968 8.576,15.843 -1.438,16.1c-12.347,0.304 -8.864,-14.371 1.438,-16.1" style="fill:#020303;fill-rule:nonzero;"/><path d="M502.096,616.79c1.648,-0.215 3.3,-0.429 4.949,-0.644c-10.459,-6.341 -6.031,-11.031 -2.756,-22.892c3.537,-12.799 2.516,-29.542 7.904,-41.31c4.408,-9.63 41.322,18.407 47.626,22.243c2.686,1.616 1.428,5.644 3.044,6.674c6.288,4.018 11.692,9.207 16.513,14.864c9.981,11.72 23.44,6.637 37.606,4.94c31.235,-3.736 63.479,-6.566 94.785,-8.448c5.628,-0.337 36.511,-1.745 36.437,-10.062c-0.093,-10.638 -7.446,-18.456 -16.957,-24.436c-10.299,-6.409 7.984,-11.445 10.721,-12.853c8.384,-4.309 -1.38,-21.071 -10.977,-20.149c-30.051,2.894 -62.535,2.375 -92.736,1.824c-33.301,-0.611 -66.585,2.523 -99.933,2.228c-5.148,-0.044 -25.902,6.198 -26.053,-2.647c-0.102,-6.374 -2.509,-12.319 -4.004,-18.414c-1.137,-4.639 -5.875,-8.41 -5.817,-12.517c0.128,-8.737 4.45,-17.051 -5.218,-23.3c-4.098,-2.65 -9.121,-2.25 -13.472,-0.499c-2.762,1.12 -9.28,9.47 -10.381,9.428c-4.94,-0.183 -31.13,-6.739 -33.89,-10.276c-5.093,-6.531 -0.285,-27.112 0.519,-34.712c1.437,-13.622 0.512,-26.27 4.869,-39.444c4.981,-15.053 6.006,-35.624 18.43,-46.944c18.18,-16.567 51.506,-15.539 73.845,-21.225c16.734,-4.258 34.325,-2.526 51.401,-3.211c19.377,-0.775 38.739,-2.814 58.155,-1.991c30.406,1.29 61.693,4.472 92.006,9.313c10.276,1.645 18.315,-0.193 28.162,5.82c5.606,3.422 8.958,6.303 11.765,12.174c0.343,0.717 6.985,10.35 7.427,7.77c-1.863,10.929 5.593,22.947 6.986,33.815c1.892,15.043 3.451,31.098 4.043,46.25c1.031,26.238 -3.083,52.655 -0.218,78.97c0.253,2.321 0.935,14.112 1.79,16.27c2.842,7.183 -4.927,12.789 -1.367,18.545c4.203,6.719 1.805,14.243 1.543,21.471c-0.164,5.359 2.823,9.972 2.753,15.04c-0.09,5.919 1.108,23.376 -6.473,23.357c-12.607,0 -26.911,7.891 -39.617,10.58c-23.405,4.95 -47.917,-5.721 -71.463,0.308c-26.715,6.828 -58.232,3.537 -85.914,2.849c-13.657,-0.34 -17.566,-8.189 -23.043,-20.258c-6.998,-15.411 -11.371,-8.871 -24.794,-3.714c-11.397,4.376 -20.876,8.372 -31.639,14.163c-10.664,5.737 -8.884,9.223 -16.557,1.05" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M588.5,592.205c16.999,4.971 41.832,-3.042 59.343,-4.079c11.406,-0.672 22.829,-1.3 34.168,-2.772c11.333,-1.47 27.807,-1.085 38.368,-5.218c-5.02,-4.489 -21.824,-0.705 -27.372,0.473c-13.307,2.821 -26.558,3.419 -40.08,4.806c-12.751,1.306 -25.601,1.181 -38.346,2.593c-18.839,2.09 -23.808,2.183 -37.221,-11.778c-8.891,-9.252 -16.836,-19.285 -25.605,-28.613c-9.665,-10.28 -7.808,-12.245 5.42,-12.771c8.708,-0.345 27.564,-4.696 34.946,0.538c9.988,7.082 5.705,-1.565 5.801,-2.551c17.242,-0.736 34.488,-1.751 51.752,-1.694c14.169,0.048 35.945,-3.726 49.422,0.666c12.569,4.098 22.893,23.322 32.897,31.511c16.602,13.586 1.825,8.88 -7.427,15.318c2.036,0.865 17.367,-0.345 17.195,2.523c-0.273,3.752 -74.809,10.564 -82.899,10.904c-10.369,0.438 -69.786,13.567 -70.362,0.144c6.662,1.946 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M424.645,470.301c-0.359,0 -1.724,-1.128 -3.897,-1.345c-2.936,-0.293 -1.819,-0.646 -4.507,0.308c0.621,-0.637 -28.005,-1.38 -27.339,-0.5c-4.14,-5.484 0.128,-22.694 0.173,-29.686c0.057,-9.037 -1.553,-19.143 1.764,-27.816c3.326,-8.756 5.403,-1.7 9.805,1.854c12.412,10.007 25.358,-5.577 25.387,-17.556c0.032,-12.358 -19.391,-26.866 -26.021,-16.212c-0.752,1.207 -3.271,-2.062 -4.02,-0.861c-2.821,-6.4 3.604,-5.794 5.624,-9.38c6.144,-10.92 10.001,-16.884 21.91,-22.467c4.021,-1.882 23.924,-12.485 27.804,-9.985c1.069,0.688 4.507,3.531 6.297,1.159c6.294,7.558 -8.625,14.621 -12.546,21.779c-6.81,12.418 -5.791,24.992 -8.103,38.419c-2.311,13.426 3.589,72.289 -12.331,72.289" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M400.217,402.735c6.989,4.825 11.464,-2.445 8.26,-9.776c-3.919,-8.996 9.216,-14.096 13.362,-4.713c7.097,15.981 -11.931,36.166 -21.622,14.489" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M588.681,592.017c-6.172,5.513 -50.581,-41.8 -48.048,-52.102c13.858,17.019 38.243,33.659 48.048,52.102" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M831.423,345.824c5.57,0.148 2.269,8.154 0.125,10.225c-5.033,4.86 -21.417,6.336 -28.345,9.252c-4.796,2.017 -9.562,-4.36 -4.789,-6.108c11.124,-4.075 22.031,-8.896 33.009,-13.369" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M477.603,701.819c4.113,4.783 10.574,25.69 -2.667,21.775c-13.18,-3.896 -3.333,-17.149 2.667,-21.775" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M495.276,479.445c-4.101,-1.373 -10.959,2.584 -15.988,2.222c-0.723,-0.051 8.993,-13.366 18.113,-6.662c3.352,2.481 5.83,18.984 -1.047,15.011c-5.528,-3.195 -0.56,-7.872 -1.078,-10.571" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M335.906,718.645c-0.419,-15.047 18.075,-12.405 15.981,-7.744c-1.517,3.38 -16.995,20.085 -15.981,7.744" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M328.316,484.047c4.155,9.153 0.083,15.94 -5.74,5.478c-5.25,-9.425 18.267,-12.767 20.712,-7.261c1.351,3.038 -5.429,5.276 -6.819,6.422c-3.367,2.801 -5.407,-3.858 -8.153,-4.639" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M478.2,677.665c-2.341,3.16 6.098,12.985 2.666,13.631c-5.439,1.025 -17.239,-26.644 -16.422,-31.67c3.633,5.621 7.961,15.632 13.756,18.039" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M484.266,705.208c0.756,0.87 9.114,13.881 4.6,14.799c-2.762,0.586 -4.574,-13.452 -4.6,-14.799" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M691.78,624.381c1.623,-0.042 9.009,-0.817 9.009,0.713c-2.18,0.167 -9.009,2.334 -9.009,-0.713" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M954.527,350.83c1.095,14.735 -21.683,15.42 -22.198,1.504c-0.378,-10.683 21.237,-14.825 22.198,-1.504" style="fill:#020303;fill-rule:nonzero;"/><path d="M957.459,331.942c-12.549,-4.52 -30.3,-6.246 -34.75,10.331c-2.267,8.439 0.826,26.641 11.128,28.924c-38.397,-1.803 -2.254,-71.377 23.622,-39.255c-7.084,-2.551 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M957.284,332.117c23.908,0.336 11.897,54.288 -21.477,40.378c8.032,-0.214 17.249,0.714 23.514,-5.442c2.25,-2.212 11.614,-13.82 5.48,-16.695c4.36,-7.043 -1.146,-14.883 -7.517,-18.241c6.016,0.083 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M964.806,350.354c0.935,2.152 0.445,3.944 -1.479,5.382c2.366,-2.222 2.862,-4.015 1.479,-5.382" style="fill:#020303;fill-rule:nonzero;"/><path d="M1037.73,307.665c-1.226,9.681 7.037,-1.463 7.888,-3.656c2.299,-5.91 10.638,-3.592 12.658,-12.805c1.755,-8.013 -6.482,-15.36 -3.156,-22.711c3.48,-7.683 16.823,-13.147 24.08,-15.337c22.23,-6.71 48.51,4.773 68.025,15.184c9.662,5.157 18.386,11.976 24.974,20.789c2.82,3.768 -4.981,8.66 -7.222,10.837c9.104,-0.122 16.166,-10.965 25.245,-9.316c16.247,2.942 -10.577,22.905 -12.661,25.066c0.682,1.735 8.679,-1.149 12.2,4.837c7.924,13.491 4.415,26.088 -1.7,39.457c-4.702,10.279 -12.398,18.84 -16.733,29.228c-5.183,12.418 -6.054,27.643 -7.568,40.913c-2.654,23.354 5.177,46.874 -20.082,60.764c-11.925,6.56 -29.542,8.718 -42.907,7.523c-13.062,-1.235 -15.978,-0.925 -8.871,-14.851c-5.493,5.244 -9.319,16.772 -16.986,19.657c-6.163,2.314 4.859,-24.094 2.519,-24.929c-3.745,-1.345 -4.674,13.253 -14.367,8.24c-11.666,-6.047 -25.742,-6.931 -34.152,-18.091c-10.821,-14.358 -28.277,-43.057 -16.878,-60.505c16.503,-25.306 15.697,-51.81 10.651,-80.283c-1.203,-6.796 -0.253,-30.592 10.389,-31.683c3.816,-0.394 4.008,9.005 4.654,11.672" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1095.74,508.201c-14.723,1.188 -53.497,-0.432 -63.748,11.672c-6.092,7.136 -54.906,-20.533 -30.909,-25.578c9.165,-1.96 17.402,-10.433 26.51,-3.263c7.251,5.692 14.822,-0.861 22.39,3.023c2.673,1.869 5.631,2.647 8.874,2.337c1.723,-0.401 7.514,9.037 9.572,10.138c9.566,5.125 16.109,-8.224 27.311,1.671" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1137.02,618.891c-0.41,0.694 -0.771,11.553 -5.131,5.234c-4.454,-6.454 -6.839,-15.616 -10.616,-22.637c-11.128,-20.661 -19.932,-43.144 -24.702,-66.178c-0.931,-4.446 3.528,-4.923 5.702,-1.898c6.704,9.293 10.651,20.124 15.059,30.598c7.539,17.957 12.524,37.164 19.688,54.881" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1058.91,517.336c13.705,0 24.509,-3.163 37.827,-5.586c3.809,-0.695 20.111,4.562 10.545,10.315c-7.661,4.609 -21.18,4.235 -29.875,5.554c-11.176,1.693 -24.41,5.487 -35.771,4.094c-8.34,-1.018 -8.449,-4.648 -3.384,-9.741c5.516,-5.542 13.429,-4.729 20.658,-4.636" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1043.66,267.925c-5.76,-1.738 -4.217,8.061 -9.659,9.639c-8.362,2.43 -6.736,-9.021 -5.01,-16.068c4.075,-16.621 20.087,-23.89 43.999,-10.244c-7.091,5.465 -20.421,19.951 -29.33,16.673c-4.101,-1.239 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1042.71,541.809c-1.77,20.363 -7.92,40.404 -13.007,60.121c-2.254,8.717 -6.118,18.231 -6.387,27.278c-0.121,4.082 -7.673,11.493 -7.664,5.382c0.023,-18.667 8.513,-39.127 12.617,-57.211c2.164,-9.534 3.422,-19.259 5.97,-28.71c0.375,-1.396 9.207,-18.75 8.471,-6.86" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M999.677,518.565c1.841,6.002 -9.828,20.789 -11.723,27.499c-2.904,10.286 -9.262,20.754 -13.929,30.378c-3.509,7.289 -2.177,18.692 -11.925,21.202c-2.763,0.717 -6.73,8.474 -7.223,8.34c-4.469,-1.223 16.049,-41.272 19.045,-46.97c5.129,-9.745 8.583,-20.223 14.419,-29.517c-0.211,0.34 12.181,-20.863 12.527,-13.602c-0.484,0.855 -0.877,1.741 -1.191,2.67" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1017.37,545.291c-6.336,1.441 -16.228,-4.02 -19.993,-8.912c-2.154,-2.795 7.434,-20.015 14.125,-15.373c11.614,8.042 32.983,24.285 5.868,24.285" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1056.61,288.064c0.195,17.192 -32.682,7.428 -22.313,-6.703c4.258,-5.801 7.718,1.037 13.004,1.725c2.33,-0.044 4.642,-0.294 6.934,-0.752c2.375,0.89 0.262,5.295 2.375,5.73" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1008.27,596.61c-0.198,0.333 10.651,16.022 -4.418,5.836c-6.566,-4.437 -12.463,-10.12 -18.235,-15.507c1.476,1.373 -11.172,-14.935 -3.796,-11.743c4.168,1.799 27.726,17.249 26.449,21.414" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1025.13,569.758c-3.947,-2.513 -33.511,-21.183 -29.545,-26.44c4.805,-6.386 28.101,19.797 29.545,26.44" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1069.14,535.375c1.457,0.07 15.491,1.636 14.547,2.442c7.933,-6.777 6.969,8.564 12.395,14.4c-9.777,-4.223 -20.328,-7.949 -26.942,-16.842" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1090.84,563.239c-10.802,-2.788 -20.796,-8.281 -26.636,-18.122c4.386,1.267 30.346,11.534 26.636,18.122" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1169.57,489.137c0.865,8.125 -11.003,1.585 -11.438,-4.335c-0.801,-10.766 11.861,-1.696 11.438,4.335" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1014.03,546.567c6.351,0 18.225,-3.64 15.513,6.415c-2.455,9.099 -13.48,-1.475 -15.513,-6.415" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1037.73,307.665c-5.119,-5.119 4.767,-13.023 7.024,-8.173c2.03,4.36 -2.103,11.06 -7.024,8.173" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1118.89,243.988c-0.08,0.653 8.125,12.796 -0.349,8.717c-6.416,-3.073 -7.704,-12.657 -0.933,-8.589" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1035.49,488.402c-15.123,-18.142 13.711,-6.092 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1061.71,555.43c0.016,0.391 -4.034,12.156 -6.595,9.521c-4.203,-4.332 4.504,-21.014 6.595,-9.521" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1052.42,590.691c-1.079,-4.293 -0.74,-8.473 1.015,-12.549c6.421,3.15 4.513,12.386 -1.015,12.549c-1.63,-4.197 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1043.49,267.759c0.192,2.571 7.792,6.604 6.432,8.919c-2.296,3.832 -15.338,-0.371 -6.432,-8.919" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1090.84,563.239c-0.391,-1.796 -0.782,-3.585 -1.172,-5.381c10.628,4.427 3.585,9.649 1.172,5.381" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1073.83,580.122c6.768,-1.252 10.037,4.174 14.467,7.35c-4.92,-2.494 -10.231,-4.05 -14.467,-7.35c6.768,-1.252 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1025.12,255.005c-0.653,-3.326 0.624,-4.914 4.706,-4.395c-1.745,1.62 -3.224,3.006 -4.706,4.395" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1049.94,540.877c1.325,1.213 1.386,6.982 -0.01,5.558c-1.357,-1.803 -1.354,-3.656 0.01,-5.558" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1052.27,590.557c1.693,2.18 1.178,3.521 -1.553,4.024c-1.162,-1.994 1.284,-2.955 1.553,-4.024" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1073.97,579.987c-0.928,-0.733 -1.853,-1.469 -2.782,-2.202c1.265,-1.006 2.616,-1.118 4.05,-0.34c-1.677,2.533 -2.1,3.381 -1.268,2.542" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M186.155,577.361c-0.109,-12.613 7.184,-49.829 20.143,-55.645c13.423,-6.025 42.299,6.569 41.348,22.912c-0.435,7.468 -8.231,15.107 -10.183,22.726c-1.185,4.613 -0.433,22.134 -5.193,24.157c-11.989,5.084 -48.449,7.709 -46.115,-14.15" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M182.794,579.137c-9.636,-19.948 -8.246,-48.888 18.209,-55.309c-10.18,16.832 -15.795,35.87 -18.209,55.309" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M258.113,550.775c6.496,3.995 -1.111,24.772 -2.651,29.814c-3.969,12.994 -11.163,13.263 -22.303,19.358c-12.031,6.582 -20.713,4.05 -33.329,1.473c-3.301,-0.675 -24.951,-7.562 -20.79,-13.849c10.469,10.184 41.47,14.976 53.757,7.699c18.453,-10.926 24.128,-24.503 25.316,-44.495c3.743,2.302 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M168.301,581.713c-9.044,3.698 -42.258,19.282 -51.686,12.626c8.065,-8.109 41.931,-25.796 51.686,-12.626" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M252.49,546.867c-1.562,7.536 2.488,14.057 -0.4,21.859c-0.723,1.959 -10.094,18.948 -12.924,18.03c-8.752,-2.853 10.629,-36.495 13.324,-39.889" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M258.283,550.6c-5.608,-9.908 -9.309,-18.267 -18.772,-24.676c-2.302,-1.556 -16.631,-9.066 -15.975,-10.5c20.908,0.297 29.452,18.769 34.747,35.176" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M158.182,652.836c1.002,11.355 -14.991,9.94 -13.576,0.458c1.216,-7.914 12.411,-7.888 13.576,-0.458" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M258.882,588.891c-3.688,10.417 -12.475,15.837 -23.315,16.07c9.793,-2.007 16.042,-14.847 23.315,-16.07c-3.838,10.836 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M177.615,533.224c-6.61,23.658 -11.492,10.097 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M259.017,589.028c-3.49,-6.684 1.799,-11.905 2.906,-17.837c-0.576,6.031 -1.261,12.155 -2.906,17.837c-3.49,-6.684 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M170.128,563.624c0.724,0.989 5.388,12.601 2.369,13.324c-3.579,0.836 -2.743,-12.325 -2.369,-13.324" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M223.536,515.423c-4.802,0.611 -9.591,1.226 -14.38,1.841c5.058,-2.504 8.906,-3.394 14.38,-1.841" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M170.899,561.864c-2.965,-2.129 -1.979,-7.177 -0.849,-6.204c1.121,1.94 1.403,4.005 0.849,6.204" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M177.425,532.445c0.362,-3.723 1.508,-4.737 3.435,-3.047c-0.483,1.719 -1.629,2.734 -3.435,3.047" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M592.532,229.734c-0.128,0.045 -0.397,0.272 0,0c-0.064,0.022 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M618.6,239.758c-0.275,-1.418 -0.391,-2.871 -0.426,-4.312c-0.006,1.45 0.106,2.904 0.426,4.312" style="fill:#020303;fill-rule:nonzero;"/><path d="M554.015,292.254c-0.009,-0.08 -0.371,-0.509 0,0c-0.009,-0.096 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M594.298,271.647c3.544,-1.726 6.175,-13.43 6.713,-13.471c13.929,-0.913 -4.271,31.731 -12.844,18.522c-8.374,-12.911 16.196,-23.878 6.131,-5.051" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M571.085,272.341c-5.449,11.304 -9.799,3.057 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M653.324,246.58c-5.071,-11.666 -18.472,-29.769 -30.755,-34.798c-14.422,-5.9 -24.839,7.801 -34.911,10.394c9.338,-2.26 0.397,8.522 4.738,7.575c2.696,-11.868 7.613,-8.686 9.694,0.595c2.026,9.031 2.318,18.398 -5.222,25.281c-4.033,3.685 -26.017,10.981 -30.451,6.166c-8.832,-9.595 13.161,-11.451 15.258,-19.852c-4.792,4.553 -16.577,6.499 -19.08,11.951c-6.297,13.727 13.939,8.621 18.709,11.701c5.749,3.707 3.23,17.136 -3.941,17.383c-10.76,0.365 -25.163,10.033 -34.613,1.005c11.701,7.306 19.851,-0.371 30.541,-3.72c17.236,-5.452 -13.513,-11.381 -13.113,-11.067c8.439,8.109 -5.138,16.407 -12.754,13.718c5.807,-4.364 8.89,-10.264 12.924,-13.516c-0.18,-0.202 -0.231,-0.266 -0.16,-0.192c-3.368,-1.582 -9.364,-13.039 -11.791,-13.462c0.525,3.336 4.011,11.525 2.135,14.227c-1.299,1.87 -9.319,4.635 -7.606,1.617c3.265,-5.76 -1.293,-3.461 -3.749,-7.267c-1.488,-2.309 2.987,-8.407 0.212,-9.688c-3.554,2.325 -5.433,5.603 -5.638,9.838c6.931,1.802 3.8,7.661 5.513,13.695c-1.582,-0.938 -7.949,-13.34 -5.513,-13.695c-0.663,-0.663 -5.865,12.351 -5.253,14.681c1.754,-14.63 9.178,6.297 11.352,8.218c6.104,5.407 22.726,5.871 29.887,6.592c-0.221,-0.132 -0.282,-0.196 -0.182,-0.192c-2.072,-1.23 -4.152,-2.449 -6.237,-3.666c10.334,-2.202 19.785,-11.237 30.074,-8.611c-1.182,6.05 -23.063,14.482 -23.655,12.469c-0.941,2.75 24.362,-2.443 24.967,-2.501c10.824,-1.059 17.265,8.746 28.78,6.41c-2.029,-3.746 -6.358,1.555 -8.205,-2.734c4.229,-2.798 9.105,-4.578 12.815,-8.145c0.97,3.202 0.592,6.224 -1.13,9.067c23.853,-6.237 51.199,-23.258 26.36,-49.477m-107.75,29.193c4.603,-1.079 7.827,-4.821 9.517,-9.057c0.263,5.952 -11.502,18.517 -12.341,11.227c0.134,-1.751 1.076,-2.477 2.824,-2.17m39.581,-9.015c-6.07,-6.153 4.152,-4.376 0,0m20.716,24.381c-1.067,0.394 -2.129,0.785 -3.195,1.178c0.714,-4.328 -5.443,-4.113 -5.209,-8.102c0.4,-6.745 14.733,-7.414 19.051,-7.946c0.714,-0.867 -23.088,13.03 -10.439,10.497c8.845,-1.696 16.576,-9.46 24.407,-9.969c-6.826,6.992 -13.891,14.957 -24.615,14.342m3.307,-23.766c0.374,0.416 4.971,9.764 -0.625,5.781c-2.827,-1.997 1.495,-3.569 0.625,-5.781m18.811,-8.929c-0.689,-2.404 5.317,2.584 5.852,3.611c2.967,5.721 -5.641,12.581 -10.715,10.222c-12.005,-5.593 -23.729,-16.708 -15.981,-30.009c0.393,9.844 8.775,13.225 15.283,18.728c1.082,-1.838 -12.613,-13.315 -13.494,-18.728c-0.89,-5.436 -4.539,-9.956 -5.106,-15.453c-0.205,-2.02 5.769,-18.747 9.009,-14.287c1.597,2.1 3.63,3.025 10.33,3.918c11.74,1.591 1.092,25.524 11.653,31.29c1.358,-2.369 -5.077,-14.63 -0.019,-17.371c0.33,-0.179 12.597,18.325 6.034,24.042c-11.848,10.373 -16.093,-12.264 -20.885,-11.249c-0.589,6.665 6.403,9.505 8.039,15.286m11.166,25.62c-3,-3.14 -1.956,-24.691 3.563,-26.414c10.539,-3.224 2.145,32.286 -3.563,26.414m7.462,0.66c0.772,-5.439 4.863,-10.235 4.021,-15.943c-0.983,-6.546 -5.708,-11.448 -3.986,-18.398c1.268,-5.093 -3.464,-7.216 -5.909,-10.443c-1.755,-2.317 3.832,-2.375 4.206,-4.417c7.427,13.794 21.283,39.888 1.668,49.201" style="fill:#020303;fill-rule:nonzero;"/><path d="M851.478,380.869c1.117,-1.172 0.896,-11.058 3.595,-10.814c3.112,0.243 6.953,19.726 8.416,22.867c4.79,10.286 11.304,20.533 20.153,27.79c7.232,5.932 15.677,10.328 24.199,14.086c8.419,3.714 23.782,3.445 30.649,8.256c0.128,3.311 -24.058,0.452 -27.397,0.196c-13.202,-1.012 -23.933,-8.253 -34.741,-15.219c-16.038,-10.331 -28.808,-27.506 -24.874,-47.162c2.199,-2.308 0,0 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M851.584,380.734c-1.459,1.037 -2.285,2.452 -2.481,4.248c-4.539,-12.19 0.794,-3.646 2.481,-4.248" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M179.912,438.441c-0.276,2.241 1.2,3.732 4.43,4.478c5.632,5.062 6.966,5.353 9.476,11.301c4.377,10.356 8.41,20.181 -0.105,30.416c-1.511,-4.123 -3.615,-7.898 -6.313,-11.323c-4.297,-3.602 -7.895,-1.489 -11.263,-7.098c-5.855,-9.757 -11.243,-19.819 -18.939,-28.312c8.951,-1.578 14.297,0.358 22.714,0.538" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M180.894,482.475c-3.823,-1.3 -5.519,5.564 -9.358,1.671c-2.017,-2.02 8.708,-7.61 8.186,-5.314c-0.432,1.895 -3.019,3.771 1.172,3.643" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M9.561,627.932c-14.562,-0.598 3.4,-13.311 8.013,-8.093c4.793,5.42 -2.404,9.902 -8.013,8.093" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M281.399,378.789c-25.181,0 -20.744,-36.171 1.502,-37.622c24.576,-1.587 21.686,37.622 -1.502,37.622" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M122.983,504.643c-10.996,-2.097 13.257,-7.897 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M416.207,572.984c7.02,-0.653 3.182,14.739 -1.834,9.409c-1.988,-2.11 -2.933,-10.875 1.834,-9.409" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M421.37,582.357c0.012,-0.144 2.897,-16.785 4.667,-10.741c0.711,2.417 -2.109,9.908 -4.667,10.741" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M485.662,534.337l-2.359,2.775c-2.327,-3.153 1.722,-6.265 2.359,-2.775" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M709.369,441.37c0.931,12.85 6.274,53.933 -12.773,55.438c-23.764,1.936 -47.255,3.864 -70.968,5.804c-21.906,1.786 -46.915,4.568 -68.706,1.293c-25.902,-3.931 -15.101,-40.583 -17.384,-58.799c-1.632,-12.975 1.259,-25.892 0.919,-38.874c-0.259,-9.552 -2.964,-25.191 6.56,-31.453c5.554,-3.649 19.694,-2.903 26.423,-3.848c12.505,-1.757 25.163,-1.514 37.715,-2.689c26.763,-2.532 55.079,0.471 81.845,2.088c19.82,1.142 15.421,58.293 16.369,71.04" style="fill:#020303;fill-rule:nonzero;"/><path d="M718.492,389.505c-1.819,-36.239 54.262,-29.414 52.841,0.861c-1.482,31.485 -55.578,31.94 -52.841,-0.861" style="fill:#020303;fill-rule:nonzero;"/><path d="M496.421,414.381c-28.469,-0.023 -31.558,-50.799 -2.494,-46.531c14.499,2.151 27.071,5.695 29.574,21.887c2.846,18.388 -11.265,24.343 -27.08,24.644" style="fill:#020303;fill-rule:nonzero;"/><path d="M598.439,584.727c-4.764,-0.407 -9.447,-6.441 -2.449,-6.358c8.189,0.093 11.793,4.837 2.449,6.358" style="fill:#020303;fill-rule:nonzero;"/><path d="M728.73,566.954c-0.448,1.29 -8.906,11.633 -9.882,4.632c-0.714,-5.103 7.452,-2.968 9.882,-4.632" style="fill:#020303;fill-rule:nonzero;"/><path d="M716.622,565.619c-3.07,-1.089 -6.226,-4.373 0.083,-4.521c6.24,-0.147 5.948,4.764 -0.083,4.521" style="fill:#020303;fill-rule:nonzero;"/><path d="M693.356,574.879c0.759,-1.239 7.498,-3.477 8.717,-2.427c5.76,4.869 -8.887,2.36 -8.717,2.427" style="fill:#020303;fill-rule:nonzero;"/><path d="M703.792,552.388c1.412,-5.429 9.604,-2.756 8.919,-1.418c-2.12,2.651 -5.094,3.121 -8.919,1.418" style="fill:#020303;fill-rule:nonzero;"/><path d="M639.69,578.93c6.835,-7.42 15.43,4.29 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M606.292,553.114c3.035,-2.152 6.249,-2.139 10.119,-0.964c-3.48,3.358 -6.822,1.908 -10.119,0.964" style="fill:#020303;fill-rule:nonzero;"/><path d="M699.062,547.974c-0.66,-7.709 7.82,-2.721 8.128,-2.981c-1.883,1.601 -5.734,2.251 -8.128,2.981" style="fill:#020303;fill-rule:nonzero;"/><path d="M620.92,559.61c-3.964,0.954 -7.075,2.065 -12.085,-0.013c4.85,-0.208 7.82,-3.313 12.085,0.013" style="fill:#020303;fill-rule:nonzero;"/><path d="M578.365,568.307c2.855,-2 5.762,-1.238 8.691,-0.537c-2.705,2.564 -5.72,1.61 -8.691,0.537" style="fill:#020303;fill-rule:nonzero;"/><path d="M675.861,578.218c-2.858,1.981 -5.765,1.28 -8.694,0.518c2.708,-2.564 5.72,-1.6 8.694,-0.518" style="fill:#020303;fill-rule:nonzero;"/><path d="M590.843,571.856c-2.855,1.981 -5.762,1.28 -8.691,0.518c2.705,-2.554 5.72,-1.587 8.691,-0.518" style="fill:#020303;fill-rule:nonzero;"/><path d="M620.248,579.665c2.641,-2.042 5.509,-0.89 9.018,-1.556c-3.077,4.024 -6.079,2.785 -9.018,1.556" style="fill:#020303;fill-rule:nonzero;"/><path d="M675.271,544.932c3.022,-1.367 5.96,-3.349 10.106,-1.229c-3.435,2.743 -6.902,1.091 -10.106,1.229" style="fill:#020303;fill-rule:nonzero;"/><path d="M685.99,551.25c-2.4,2.27 -4.885,1.569 -8.966,1.281c3.963,-3.144 6.492,-1.588 8.966,-1.281" style="fill:#020303;fill-rule:nonzero;"/><path d="M622.102,564.772c-3.026,2.183 -3.026,2.183 -8.061,1.735c2.17,-3.672 5.407,-1.556 8.061,-1.735" style="fill:#020303;fill-rule:nonzero;"/><path d="M692.837,555.317c-3.089,3.932 -6.054,2.36 -9.13,2.51c2.295,-3.899 5.522,-1.78 9.13,-2.51" style="fill:#020303;fill-rule:nonzero;"/><path d="M673.21,568.504c2.465,-4.193 5.119,-2.276 7.696,-3.073c-1.754,4.258 -4.712,2.071 -7.696,3.073" style="fill:#020303;fill-rule:nonzero;"/><path d="M939.277,347.53c1.694,2.878 5.644,0.326 6.745,3.867c-2.756,-0.823 -9.889,7.92 -6.745,-3.867" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1069.4,313.861c-12.953,-42.603 55.892,-61.898 72.731,-23.805c7.18,16.247 4.907,36.073 -10.92,46.771c-12.508,8.455 -41.665,6.262 -49.102,-8.973c4.959,-2.676 15.421,7.216 20.245,8.631c9.31,2.731 19.429,-0.592 26.712,-6.598c16.66,-13.747 14.083,-36.226 -0.349,-50.229c-15.11,-14.7 -41.893,-7.654 -50.431,10.526c-4.142,8.82 -1.616,17.21 -4.043,25.953c-2.529,4.837 -3.176,-2.193 -4.843,-2.276" style="fill:#020303;fill-rule:nonzero;"/><path d="M1046.05,376.668c-1.316,1.556 -12.191,-2.218 -6.522,5.996c3.64,5.276 16.033,1.806 21.209,4.85c-5.045,0.205 -26.34,2.747 -25.812,-6.767c0.336,-6.195 7.049,-7.555 11.125,-4.079c-1.892,2.235 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1189,299.483c-8.461,14.563 -22.476,-5.852 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M1071.8,316.364c1.651,3.47 8.768,6.06 10.308,11.492c-6.883,-0.922 -11.976,-7.337 -12.709,-13.993c1.504,0.132 1.367,2.036 2.401,2.501" style="fill:#020303;fill-rule:nonzero;"/><path d="M1045.93,376.793c3.412,-1.93 6.742,-0.297 10.106,0.106c-4.27,0.557 -5.948,1.124 -10.106,-0.106" style="fill:#020303;fill-rule:nonzero;"/><path d="M221.987,570.396c-0.698,7.299 -3.787,2.551 -7.424,0.419c-6.697,-3.931 0.845,6.844 0.541,5.833c-2.407,1.479 -4.161,6.527 -6.959,6.809c-8.333,0.832 -2.837,-17.694 -1.915,-20.908c-0.477,0.362 -8.093,8.605 -9.537,5.042c-3.912,-9.453 7.299,-13.09 13.44,-16.567c-15.223,-5.531 7.92,-14.511 9.008,-18.356c2.356,-8.103 9.066,16.042 5.151,16.292c-1.828,-0.775 -3.733,-1.118 -5.721,-1.031c1.252,1.117 2.67,1.953 4.252,2.503c-0.445,2.449 -7.264,2.296 -5.452,4.447c2.314,2.753 9.588,8.813 4.424,15.712c-3.345,-2.529 -2.327,-7.344 -5.75,-9.959c-0.79,4.866 1.009,8.496 5.942,9.764" style="fill:#020303;fill-rule:nonzero;"/><path d="M222.823,550.434c-20.178,0 7.427,-7.405 0,0" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M181.595,555.233c0.785,-3.156 1.566,-6.313 2.529,-10.19c1.87,4.556 -0.477,7.331 -2.529,10.19" style="fill:#020303;fill-rule:nonzero;"/><path d="M619.945,242.985c-1.531,-0.88 -6.288,-16.98 -5.023,-18.462c4.709,-5.583 5.144,18.852 5.023,18.462c-1.819,-1.05 0,0 0,0" style="fill:#020303;fill-rule:nonzero;"/><path d="M280.866,368.621c-11.56,0.087 -10.407,-20.328 -1.428,-20.328c12.447,-0.048 16.154,20.197 1.428,20.328" style="fill:#020303;fill-rule:nonzero;"/><path d="M546.534,459.162c0,-22.377 -4.28,-49.563 1.415,-71.297c4.117,-15.517 44.819,-14.044 56.997,-14.191c24.554,-0.295 49.451,-1.002 73.976,0.051c25.867,1.108 21.862,21.254 23.539,41.243c1.873,22.383 2.51,46.771 -1.027,69.043c-2.267,14.092 -47.294,10.878 -57.634,11.268c-25.428,0.958 -51.266,0.356 -76.592,2.744c-21.973,2.068 -20.674,-23.085 -20.674,-38.861" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M757.364,378.293c15.811,0.957 9.729,22.515 -1.767,21.577c-15.639,-1.303 -15.456,-22.627 1.767,-21.577" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M737.165,381.045c2.372,3.269 1.309,12.322 -2.347,13.948c-2.599,1.3 1.672,-13.272 2.347,-13.948" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M724.238,393.797c0.08,-0.646 -0.849,-8.464 2.746,-5.41c0.881,0.743 -2.263,5.138 -2.746,5.41" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M505.849,399.125c-14.048,0.278 -7.303,-19.33 2.346,-18.091c14.89,1.905 11.339,18.113 -2.346,18.091" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1081.93,328.033c-9.8,-14.49 -13.612,-32.548 0.377,-47.38c10.914,-11.576 35.343,-14.582 47.121,-2.647c14.297,14.492 18.913,36.831 2.535,52.252c-6.223,5.858 -15.392,10.138 -24.106,9.002c-6.354,-0.833 -21.247,-12.533 -25.927,-11.227" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1071.8,316.364c-2.862,0.435 -2.299,-5.568 -2.254,-6.048c2.231,1.486 2.987,3.502 2.254,6.048" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M221.987,570.396c-8.954,5.752 -7.878,-10.619 -7.878,-14.576c4.549,3.794 7.321,9.425 7.878,14.576" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M207.623,555.108c-2.199,4.917 -5.349,7.946 -9.095,10.51c1.025,-6.284 1.598,-6.973 9.095,-10.51" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M213.71,543.678c0.25,-1.588 -4.325,0.468 -3.71,-2.401c1.005,-4.757 3.675,1.748 3.71,2.401" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M280.185,363.594c-4.642,-0.275 -4.268,-4.773 -2.152,-7.769c3.544,-5.023 9.576,5.071 2.152,7.769" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M558.197,422.347c0.973,-13.849 -0.836,-30.851 15.033,-37.344c16.167,-6.611 44.665,-2.865 62.068,-2.673c11.982,0.131 45.155,-3.701 49.448,11.365c5.547,19.419 7.206,39.706 6.495,59.833c-1.444,40.317 -61.203,30.246 -88.536,30.851c-11.602,0.256 -38.694,-0.496 -42.277,-15.901c-3.428,-14.733 -2.756,-31.149 -2.231,-46.131" style="fill:#020303;fill-rule:nonzero;"/><path d="M1085.81,294.093c-0.169,-8.214 14.867,-9.773 14.711,-0.909c-0.18,10.613 -15.405,11.564 -14.711,0.909" style="fill:#020303;fill-rule:nonzero;"/><path d="M561.197,443.737c5.525,-15.085 -2.705,-31.745 6.774,-46.039c9.063,-13.672 29.442,-10.951 43.56,-11.643c19.128,-0.941 37.782,-0.659 56.801,1.79c14.448,1.84 16.682,21.196 18.187,32.404c1.678,12.558 4.616,30.723 -0.547,42.881c-6.224,14.646 -26.712,17.131 -40.356,17.934c-18.443,1.082 -38.589,2.564 -56.942,0.019c-24.228,-3.361 -22.16,-18.571 -27.477,-37.346" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M1094.48,290.153c-1.249,2.097 -5.881,2.141 -4.757,0.602c1.444,-1.204 3.031,-1.406 4.757,-0.602" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M629.873,429.412c-6.678,0.759 -2.061,-11.051 -0.499,-8.56c1.245,2.791 1.412,5.647 0.499,8.56" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M586.465,425.542c-1.454,-3.836 -0.929,-5.254 1.575,-4.245c0.762,1.808 0.237,3.223 -1.575,4.245" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M84.815,506.4c13.932,8.593 28.655,18.507 45.923,13.443c-15.799,9.447 -34.933,-1.895 -45.923,-13.443" style="fill:#231f20;fill-rule:nonzero;"/><path d="M70.549,698.289c-14.37,0.98 -25.073,16.945 -40.023,16.417c6.416,4.834 16.093,15.574 24.964,15.212c10.382,-0.397 23.418,-9.043 32.887,-13.039" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.2px;"/><path d="M33.471,439.229c7.063,-12.524 30.135,-18.885 43.282,-18.885c-8.698,4.04 -19.854,4.174 -28.491,8.896c-5.049,2.76 -10.069,7.274 -14.791,9.989c2.03,-3.602 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M448.93,312.848c-1.063,-19.582 2.074,-38.877 1.607,-58.405c-0.352,-19.176 1.111,-40.125 10.977,-57.07c-11.541,37.757 -5.314,77.533 -12.584,115.475c-0.529,-9.735 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M722.384,187.593c5.256,29.366 8.695,66.258 6.07,95.627c-4.93,-29.417 -8.996,-66.335 -6.07,-95.627c1.415,7.914 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M485.149,144.056c-1.655,-4.274 -7.151,-14.46 -1.174,-17.402c18.202,-8.964 27.048,17.482 12.277,22.316" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M703.101,138.119c4.203,-9.857 7.875,-22.719 -10.341,-17.933c-12.033,3.121 -7.862,24.134 1.947,21.989" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M208.108,332.955c-5.302,-32.663 51.81,-55.761 76.822,-53.289c-29.471,4.587 -72.337,18.1 -76.822,53.289c-1.396,-8.602 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M700.315,183.26c-1.601,11.224 18.878,24.849 1.207,30.249c-7.401,1.915 -8.077,-9.075 0.352,-8.301c9.662,0.887 10.824,12.399 9.396,19.688c-1.056,7.77 -11.054,10.504 -14.249,2.312c-3.432,-6.944 8.304,-4.373 10.753,-1.406c4.953,6 3.791,15.885 0.452,22.301c-5.238,10.638 -16.132,-4.248 -5.689,-4.648c12.562,-0.596 9.796,33.85 -4.642,28.152c-5.023,-1.553 -0.515,-9.121 3.963,-7.392c10.334,3.733 7.939,19.154 3.304,26.069c-16.125,22.463 -5.615,-30.048 3.854,-6.157c2.072,5.231 2.177,13.481 0.321,18.789c-2.421,6.928 -18.194,3.051 -16.494,11.864c2.34,0.512 7.655,-0.775 10.148,-3.326c-1.847,2.667 -8.025,6.083 -11.092,3.573c-2.801,-10.385 13.586,-5.904 15.718,-12.694c1.54,-4.894 1.252,-12.578 -0.826,-17.293c-3.816,-8.669 -12.546,3.582 -8.874,6.969c3.381,4.46 8.714,-12.664 8.756,-13.881c0.096,-2.587 -7.155,-17.287 -8.544,-9.921c-0.785,4.184 7.039,-0.714 7.382,-1.197c3.371,-4.46 3.553,-11.598 2.314,-16.797c-2.106,-9.172 -11.169,-2.904 -7.391,-0.436c7.196,5.378 9.792,-10.196 9.616,-13.618c-0.237,-4.626 -1.84,-10.107 -6.633,-12.015c-7.577,-3.576 -4.501,7.555 1.627,6.473c6.303,-1.066 5.032,-13.692 3.489,-17.444c-2.827,-6.899 -12.789,-4.815 -10.651,-2.302c3.624,4.265 13.785,-3.419 8.503,-8.762c-5.052,-5.112 -7.959,-12.075 -6.07,-18.849c-0.858,6.006 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M472.572,329.428c-0.012,-4.244 -2.785,-8.842 -5.618,-11.809c-2.776,-2.907 -12.431,-2.286 -8.349,1.946c7.293,7.565 17.598,-15.613 7.626,-23.629c-1.614,-1.296 -7.61,-3.028 -7.229,1.434c0.711,8.34 14.3,-1.114 15.792,-3.976c2.407,-4.277 0.775,-33.562 -9.012,-27.826c0.724,-1.037 10.369,1.572 10.629,-8.656c0.067,-2.76 -4.146,-19.637 -9.185,-18.382c-4.818,1.197 14.438,11.15 8.448,-6.425c-1.981,-5.827 -5.195,-9.803 -9.306,-12.325c14.358,1.568 0.384,-18.542 7.623,-27.128c-4.13,9.578 11.284,32.269 -7.264,31.331c-3.787,-0.336 -5.868,-6.111 -1.079,-6.703c9.674,-2.69 15.533,10.932 16.24,18.241c2.67,29.359 -36.674,1.581 -15.584,-2.28c19.464,-3.335 18.197,47.521 -1.399,36.649c-5.679,-2.993 -0.128,-8.727 4.729,-6.483c7.76,3.861 9.751,17.256 8.65,24.715c-1.262,8.544 -9.207,17.245 -18.6,14.169c-7.309,-2.731 -3.502,-12.613 3.915,-11.954c23.415,2.084 8.861,44.009 -6.412,33.143c-11.483,-8.166 20.187,-18.452 15.385,5.948c-0.009,-3.018 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M1111.69,591.623c-11.49,-0.217 -49.038,-18.772 -44.662,-31.014c1.687,-4.764 18.347,7.212 20.45,8.359c4.607,2.503 15.876,5.704 18.197,11.002c1.815,4.175 1.597,8.974 6.015,11.653" style="fill:#fefefe;fill-rule:nonzero;"/><path d="M473.341,185.639c1.787,-6.166 3.576,-12.331 5.363,-18.494" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M518.885,220.807c4.607,-37.206 60.637,-49.71 90.361,-42.303c15.619,3.89 34.507,9.592 46.97,20.178c10.779,9.156 15.331,27.631 20.53,39.674c-9.348,-10.878 -12.671,-26.635 -23.911,-35.48c-14.006,-11.019 -40.593,-23.286 -58.517,-23.789c-30.816,-0.861 -60.799,15.35 -75.433,41.72c1.07,-8.631 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><path d="M188.437,503.071c-4.546,2.234 -8.989,4.68 -13.292,7.35" style="fill:none;fill-rule:nonzero;stroke:#231f20;stroke-width:0.25px;"/><path d="M362.547,543.794c0.144,-9.326 17.722,-11.803 16.57,-2.385c-1.255,10.235 -16.775,14.86 -16.57,2.385" style="fill:#020303;fill-rule:nonzero;"/><path d="M192.361,325.813c3.774,-16.266 15.517,-30.387 30.464,-37.664c15.296,-7.449 42.76,-14.527 59.656,-11.691c19.503,2.696 38.41,12.284 52.685,25.671c13.189,12.364 15.203,31.834 20.001,47.332c-12.049,-17.46 -13.695,-36.78 -32.298,-50.344c-17.956,-13.087 -44.649,-27.371 -67.087,-18.011c-3.887,1.121 -7.61,2.315 -11.183,3.607c-22.235,8.041 -38.629,19.859 -52.238,41.1c4.197,-18.081 0,0 0,0" style="fill:#231f20;fill-rule:nonzero;"/><defs><image id="_Image1" width="304px" height="112px" xlink:href="data:image/png;base64,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"/></defs></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/megaphone-gopher.svg b/go.dev/testdata/golden/images/gophers/megaphone-gopher.svg
new file mode 100644
index 0000000..5f79596
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/megaphone-gopher.svg
@@ -0,0 +1,45 @@
+<svg width="84" height="63" viewBox="0 0 84 63" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M53.6575 4.36048H59.0102L60.9812 3.78335L64.1748 4.37397L65.1816 4.90303L67.8903 2.35736L69.6967 1.77466L71.4318 1.84676L71.2856 3.13821L69.8677 5.52091L69.6737 7.18608L73.2412 10.1377L74.8928 13.155L76.9406 20.0378V24.0804L76.6104 27.9967L77.0216 33.292L78.6571 40.0805L79.2498 42.3503L79.5317 46.1912V48.9535L78.9539 50.891L75.5701 54.6865L74.0339 56.5835L71.1272 58.1959L67.6258 59.3261L64.171 59.4507H58.2449L54.0981 58.934L51.7022 57.5974L47.7081 54.3934L44.0625 49.9838L40.6255 42.7443L39.4696 37.9372L38.4253 32.1034L38.6178 26.945L39.248 23.7539L38.9122 17.9254L40.0928 11.9148L41.9142 9.61802L47.0324 6.44568L50.5816 4.90303L53.6575 4.36048Z" fill="#FEFEFE"/>
+<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="84" height="63">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0.121582H83.9282V63H0V0.121582Z" fill="white"/>
+</mask>
+<g mask="url(#mask0)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M33.948 31.2259C33.6713 30.9343 33.4672 30.9197 33.3009 31.1591C33.5371 31.1834 33.7424 31.2048 33.948 31.2259ZM34.4252 27.0728C34.7703 27.4397 35.0646 27.5256 35.1701 27.3914C34.9043 27.2777 34.6646 27.1751 34.4252 27.0728ZM7.80369 23.3602C7.64627 23.7048 7.77814 24.0163 8.17494 24.397C8.04806 24.0427 7.93762 23.7347 7.80369 23.3602ZM44.3217 16.3324C44.3487 16.3476 44.512 16.2064 44.5035 16.1888C44.4459 16.0678 44.3745 15.9421 44.2732 15.8594C44.2424 15.8342 44.1046 15.9394 43.9463 16.02C44.1105 16.163 44.2054 16.2661 44.3217 16.3324ZM6.20358 34.186C6.8841 34.4368 7.16987 34.4137 7.30968 34.113C7.15372 34.1277 6.99013 34.1675 6.83241 34.1508C6.68408 34.135 6.54252 34.0591 6.35513 33.9949C6.35014 34.0011 6.27789 34.0922 6.20358 34.186ZM36.0386 30.9027C36.2468 30.7107 36.3596 30.4687 36.3414 30.1886C36.3038 30.1683 36.2659 30.1478 36.228 30.1273C36.0641 30.377 35.9002 30.6263 35.6758 30.9677C35.8485 30.9402 35.9778 30.9583 36.0386 30.9027ZM5.31629 33.0197C5.33421 33.0016 5.35242 32.9837 5.37034 32.9655C5.20615 32.931 4.9988 32.9465 4.88748 32.8504C4.71801 32.7048 4.61287 32.4838 4.48657 32.2907C4.4622 32.2538 4.47365 32.16 4.45662 32.1568C4.10622 32.0932 4.05894 31.7835 3.93734 31.5341C3.89094 31.4389 3.84365 31.3442 3.79343 31.2508C3.74937 31.169 3.70855 31.026 3.65274 31.0187C3.15315 30.9557 3.10439 30.4535 2.82214 30.1833C2.78836 30.1511 2.85034 30.0192 2.8753 29.8955C2.83506 29.9043 2.6838 29.9207 2.68351 29.9392C2.68145 30.0822 2.66148 30.2604 2.73608 30.362C2.9455 30.6463 3.20308 30.8945 3.42952 31.1667C3.48415 31.2323 3.48709 31.3384 3.52439 31.4213C3.62484 31.6452 3.73116 31.8664 3.83513 32.0885C3.87361 32.0812 3.91208 32.0742 3.95056 32.0671C3.88917 32.1102 3.8275 32.1533 3.8131 32.1635C4.13442 32.49 4.44898 32.8123 4.76618 33.132C5.0872 33.4552 5.17884 33.4933 5.68666 33.4042C5.56271 33.2756 5.43965 33.1475 5.31629 33.0197ZM34.5821 22.1861C34.5862 22.2107 34.5824 22.2473 34.597 22.2576C35.0679 22.5861 34.8837 23.093 34.8908 23.5141C34.899 23.9665 34.7351 24.4198 34.6825 24.8772C34.6696 24.9894 34.8047 25.2239 34.8584 25.2198C35.0335 25.2069 35.272 25.1579 35.3577 25.0346C35.4931 24.8391 35.5868 24.5725 35.5883 24.3351C35.5936 23.5996 35.8007 22.8671 35.6056 22.1266C35.5275 21.8307 35.5504 21.508 35.4714 21.2127C35.3448 20.7406 34.8963 20.4098 34.2851 20.5285C34.3873 21.0999 34.4846 21.6428 34.5821 22.1861ZM34.2146 30.471C34.3991 30.5109 34.595 30.5912 34.6247 30.2812C34.6276 30.2513 34.7583 30.1997 34.8159 30.2138C35.2676 30.3251 35.561 30.0904 35.4197 29.6632C35.2505 29.1513 35.2191 28.5579 34.7624 28.1819C34.4793 27.949 34.1615 27.7245 33.7547 27.8139C33.6672 27.8329 33.5388 27.9317 33.5321 28.0032C33.5056 28.2906 33.5277 28.5825 33.515 28.8717C33.5056 29.0909 33.4601 29.3086 33.4501 29.5278C33.4384 29.7895 33.4475 30.0523 33.4475 30.3125C33.7051 30.3655 33.9603 30.4168 34.2146 30.471ZM38.4528 29.8993C38.4655 29.8566 38.3897 29.7625 38.3333 29.7288C37.8916 29.4671 37.4445 29.2146 36.9523 28.9321C36.9523 29.6175 36.974 30.229 36.9347 30.8364C36.9267 30.9618 36.6926 31.0729 36.5349 31.2156C36.6045 31.3457 36.7 31.5239 36.7969 31.7041C37.3297 31.8978 37.8824 32.0988 38.5127 32.3279C38.5524 31.9133 38.5574 31.5918 38.6249 31.2836C38.6517 31.1629 38.8182 31.0726 38.9148 30.9744C38.8672 30.5921 38.3039 30.4095 38.4528 29.8993ZM82.9258 50.4707C82.3211 49.9205 81.625 49.5545 80.8147 49.4343C80.513 49.3895 80.2522 49.4402 80.1209 49.8141C80.0452 50.03 79.8087 50.1897 79.6445 50.3752C79.9065 50.5888 79.8772 50.7655 79.4219 51.0676C79.8598 51.4146 80.3136 51.6563 80.8675 51.7718C81.1607 51.833 81.427 51.9842 81.7504 51.9306C81.9657 51.8948 82.191 51.9177 82.4118 51.9162C82.5587 51.9151 82.7079 51.9004 82.8518 51.9209C83.2093 51.9722 83.6234 51.5602 83.5549 51.2077C83.5279 51.0676 83.4974 50.9282 83.4874 50.8798C83.2633 50.7181 83.0797 50.6105 82.9258 50.4707ZM51.1762 57.3128C50.9286 57.164 50.7004 57.0266 50.5139 56.9143C50.5673 56.7338 50.6114 56.5859 50.6554 56.4379C50.5277 56.447 50.4002 56.456 50.2416 56.4672C50.2525 56.4889 50.2304 56.4452 50.194 56.3722C50.0072 56.6201 49.8269 56.8502 49.6571 57.0875C49.4595 57.3632 49.2677 57.6437 49.0809 57.927C49.0318 58.0012 49.0242 58.1028 48.974 58.1758C48.8462 58.3616 48.7049 58.5383 48.5155 58.79C48.4817 58.906 48.4385 59.1431 48.3457 59.3593C48.0926 59.9489 48.2473 60.1927 48.8991 60.1464C49.2004 60.125 49.5335 60.2149 49.7937 59.96C49.8301 59.9243 49.9159 59.9175 49.9735 59.9281C50.4258 60.0095 50.5891 59.6336 50.8381 59.393C50.94 59.2949 51.0575 59.2084 51.1412 59.0968C51.4158 58.7293 51.6784 58.3528 51.9378 57.9906C51.7994 57.5944 51.0969 57.8435 51.1762 57.3128ZM9.70485 23.1246C9.81029 22.4516 9.80706 21.7621 9.87638 21.0823C9.92954 20.5598 9.71748 20.1288 9.46959 19.7036C9.36122 19.5181 9.23962 19.3397 9.11538 19.1639C8.94738 18.9259 8.71448 18.9042 8.50066 19.0865C8.08771 19.4387 7.87095 19.9201 7.78724 20.4198C7.69003 20.9991 7.60808 21.6056 7.8827 22.182C7.90766 22.2341 7.81838 22.3408 7.78343 22.4196C8.47305 22.8891 8.66366 23.718 9.0775 24.4424C9.50014 24.0342 9.63436 23.5727 9.70485 23.1246ZM39.8611 14.4485C39.5824 14.506 39.3187 14.7439 39.101 14.9549C38.9333 15.1175 39.1372 15.5942 39.3448 15.7551C39.6964 16.027 40.0103 16.3467 40.3619 16.6187C40.5064 16.7306 40.7017 16.7901 40.8832 16.8381C41.1872 16.9184 41.4968 17.0049 41.8078 17.0224C42.0325 17.035 42.2751 16.9697 42.4889 16.8859C42.8035 16.7631 43.1386 16.64 43.3944 16.4308C43.7143 16.1689 43.7061 15.8864 43.4872 15.5307C43.2676 15.1735 43.0405 14.8224 42.6252 14.6574C42.2927 14.5253 41.9591 14.3955 41.6498 14.2742C41.0166 14.3287 40.4271 14.3319 39.8611 14.4485ZM70.2844 62.0053C70.4997 61.7838 70.6918 61.5397 70.8939 61.3053C71.1091 61.0559 71.3092 60.7907 71.5453 60.5625C71.6569 60.4546 71.8372 60.4177 71.9797 60.3518C71.913 59.8545 71.8393 59.3224 71.7709 58.7897C71.7154 58.3554 71.6713 58.3654 71.2399 58.448C70.989 58.4961 70.7723 58.5415 70.5881 58.7182C70.3549 58.9421 70.1675 58.5951 69.9443 58.6613C69.8835 58.6792 69.8195 58.6877 69.7572 58.7006C69.7901 58.7654 69.823 58.8301 69.8586 58.8999C69.6688 58.9579 69.4494 59.0522 69.2206 59.0897C68.6743 59.1794 68.6103 59.5847 68.5516 60.0177C68.538 60.1168 68.4399 60.2041 68.3745 60.3064C68.4053 60.3685 68.4952 60.4734 68.506 60.5859C68.5316 60.8508 68.4846 61.1257 68.5333 61.3838C68.5739 61.5986 68.7084 61.7958 68.8018 62.0003C68.8582 62.1234 68.9155 62.2462 68.9768 62.3786C69.3989 62.3004 69.9129 62.3871 70.2844 62.0053ZM38.0886 15.5887C38.096 15.3068 38.1397 15.0252 38.1811 14.7454C38.1911 14.6783 38.2472 14.5684 38.2916 14.5637C38.8937 14.4978 39.0223 13.8707 39.4497 13.6011C39.5084 13.5642 39.5569 13.4903 39.581 13.4232C39.7586 12.9307 39.9272 12.4352 40.1035 11.942C40.1322 11.8617 40.1701 11.7744 40.2297 11.7167C40.4309 11.5215 40.4835 11.2962 40.532 11.0175C40.5922 10.6682 40.8183 10.3439 40.9928 10.0192C41.2031 9.62858 41.083 9.38098 40.6406 9.42581C40.1173 9.47885 39.5877 9.56089 39.0884 9.71825C38.859 9.79062 38.6928 10.0693 38.5033 10.2598C38.3832 10.3808 38.2842 10.5244 38.1568 10.636C37.8196 10.9317 37.4146 11.1426 37.3784 11.6962C37.362 11.9534 37.1082 12.1925 36.9725 12.4454C36.9088 12.5641 36.8601 12.6933 36.8219 12.8231C36.6874 13.2802 36.5182 13.7333 36.443 14.2006C36.3772 14.61 36.4483 15.0398 36.4075 15.4556C36.3599 15.9383 36.4107 16.3845 36.628 16.8249C36.8633 17.3008 36.962 17.3597 37.5165 17.2021C37.7415 17.1382 38.1547 16.5905 38.1394 16.3702C38.1206 16.1097 38.0819 15.8486 38.0886 15.5887ZM43.627 17.4385C43.5962 17.4757 43.5845 17.5048 43.5683 17.5074C43.0857 17.5853 42.5994 17.6428 42.1215 17.7412C41.7053 17.8271 41.3338 17.8704 40.9059 17.6765C40.5167 17.5001 40.0418 17.5115 39.5583 17.4327C39.5627 17.4078 39.5789 17.3111 39.5974 17.2015C39.5701 17.1997 39.5381 17.198 39.5061 17.1962C39.2884 17.1833 39.067 17.1912 38.8537 17.1525C38.5509 17.098 38.2834 17.0512 38.0331 17.324C37.6974 17.6899 37.5253 18.0776 37.5238 18.5892C37.5232 18.8421 37.4169 19.0912 37.5561 19.3414C37.661 19.5298 37.787 19.713 37.8522 19.9152C38.0187 20.43 38.4769 20.6756 38.8599 20.9583C39.0373 21.0896 39.3939 21.0081 39.6647 20.9788C40.2811 20.9123 40.7937 21.0612 41.2066 21.5529C41.3279 21.6976 41.5503 21.7592 41.7282 21.8556C41.9426 21.9719 42.1476 22.129 42.3776 22.1873C42.6461 22.2552 42.9389 22.2198 43.2167 22.2591C43.4714 22.2951 43.7727 22.303 43.9586 22.446C44.193 22.6265 44.3651 22.5664 44.5751 22.4841C44.6212 22.4659 44.6659 22.4199 44.7091 22.4229C45.2571 22.4577 45.6472 22.1067 45.9976 21.7949C46.2563 21.5652 46.3996 21.1711 46.513 20.8235C46.6152 20.5103 46.6869 20.1458 46.6273 19.8311C46.5515 19.4305 46.3503 19.0469 46.1644 18.6751C46.0213 18.3888 45.8322 18.1224 45.6372 17.8669C45.5461 17.7471 45.4063 17.6372 45.2659 17.5874C44.8589 17.4429 44.4447 17.3119 44.0241 17.2147C43.8185 17.1669 43.5927 17.2065 43.3762 17.2065C43.375 17.2407 43.3739 17.2753 43.373 17.3099C43.4558 17.3518 43.5386 17.3937 43.627 17.4385ZM34.1324 23.8921C34.2378 23.3799 34.1671 22.9134 33.9809 22.4129C33.7635 21.8283 33.7145 21.1834 33.5576 20.5733C33.491 20.3134 33.2583 20.0822 33.2387 19.8273C33.2069 19.4167 32.8574 19.3238 32.6518 19.0935C32.3631 18.7694 32.0512 18.4398 31.5968 18.3786C30.9436 18.2906 30.5069 17.7861 29.9227 17.5724C29.4475 17.3987 28.9884 17.3697 28.5176 17.6135C28.315 17.7184 28.2694 17.828 28.3358 18.0243C28.5684 18.7108 28.8043 19.3959 29.0225 20.0866C29.0539 20.1859 28.9729 20.3151 28.9837 20.4268C29.0187 20.7895 29.0528 21.1544 29.1256 21.5107C29.1744 21.7477 29.2375 22.0141 29.3855 22.1914C29.5891 22.4343 29.4249 22.6201 29.4017 22.8348C29.3708 23.1214 29.2924 23.4332 29.3714 23.6928C29.459 23.9794 29.3203 24.1183 29.2119 24.3231C29.0868 24.5599 29.0639 24.8514 28.9359 25.0859C28.757 25.4135 28.7711 25.7554 28.7599 26.1018C28.7585 26.1513 28.7593 26.2108 28.7335 26.2474C28.4043 26.7148 28.5664 27.4634 27.8844 27.7283C27.8312 28.1148 27.344 28.2338 27.3222 28.6722C27.3155 28.8105 27.0221 28.9347 26.8135 28.9983C26.7654 29.1633 26.7639 29.4238 26.6596 29.4745C26.3736 29.6139 26.0487 29.6901 25.7312 29.7446C25.3524 29.8097 24.9655 29.8258 24.4941 29.8718C24.6375 30.0447 24.7065 30.1839 24.819 30.2545C25.5703 30.7266 26.3935 31.0272 27.2802 30.91C27.6268 30.8643 27.9766 30.588 28.2545 30.3383C28.7529 29.8908 29.1893 29.3757 29.6704 28.908C29.8043 28.7779 30.0044 28.7155 30.2511 28.5799C30.2144 29.1583 29.8631 29.391 29.5961 29.662C29.1573 30.1068 28.6342 30.4798 28.2536 30.9665C28.0759 31.1939 28.1346 31.6159 28.1229 31.9508C28.1211 32.0003 28.3223 32.0979 28.4322 32.102C28.7358 32.1134 29.0413 32.0712 29.3453 32.0786C30.0011 32.0947 30.6582 32.1653 31.3119 32.1404C31.6541 32.1272 31.9919 31.9634 32.3276 31.8553C32.3652 31.843 32.3854 31.7513 32.3981 31.6932C32.4571 31.4213 32.522 31.1503 32.5637 30.8754C32.6888 30.0517 32.7767 29.2213 32.9347 28.404C33.0107 28.0105 33.219 27.6437 33.3544 27.2601C33.5274 26.7704 33.7142 26.2829 33.8452 25.7815C33.9685 25.31 34.022 24.8204 34.1201 24.3413C34.1342 24.2727 34.2246 24.2194 34.2467 24.1954C34.1944 24.0638 34.1168 23.9683 34.1324 23.8921ZM49.7834 22.075C50.0948 22.3924 50.4231 22.698 50.6957 23.0464C50.891 23.2961 51.2205 23.2946 51.4109 23.517C51.6329 23.7766 51.9598 23.7763 52.2473 23.8771C52.3334 23.9073 52.4012 23.9858 52.4811 24.0368C52.5739 24.0957 52.6841 24.2109 52.7637 24.1936C53.2729 24.0849 53.7373 24.2841 54.2213 24.3398C54.8684 24.4139 55.5389 24.2519 56.1991 24.2528C56.8585 24.2534 57.3537 23.82 57.9549 23.6793C58.2448 23.6114 58.5373 23.5369 58.8105 23.4224C59.0466 23.3233 59.2745 23.1859 59.4749 23.0262C59.9345 22.6593 60.3915 22.2857 60.8165 21.8802C61.0344 21.6727 61.1922 21.3982 61.3572 21.1415C61.628 20.7207 61.9194 20.3069 62.1338 19.858C62.3403 19.4258 62.4395 18.9502 62.3414 18.4591C62.3323 18.4117 62.3217 18.3381 62.3473 18.3138C62.8583 17.8303 62.5241 17.2446 62.5409 16.7045C62.55 16.41 62.5409 16.1064 62.4792 15.8199C62.4022 15.4624 62.315 15.0891 62.1382 14.7752C61.8724 14.3032 61.5237 13.8777 61.213 13.4309C61.0726 13.2287 60.9534 13.0098 60.7989 12.8196C60.3953 12.3232 59.9994 11.8183 59.5577 11.3568C59.2851 11.072 58.9368 10.8581 58.6158 10.6208C58.5826 10.5961 58.5044 10.6269 58.4483 10.6383C58.3685 10.655 58.2786 10.7128 58.2116 10.692C57.7987 10.5654 57.3945 10.4095 56.9801 10.2873C56.6747 10.1973 56.3616 10.122 56.0467 10.079C55.5589 10.0122 55.0651 9.93069 54.5758 9.94124C53.4656 9.96527 52.381 10.1408 51.4173 10.7509C51.3266 10.808 51.2896 10.9451 51.2029 11.0146C50.8828 11.2701 50.5526 11.5133 50.2257 11.7603C50.1961 11.7829 50.1544 11.7943 50.1329 11.8222C49.5816 12.5439 48.9772 13.2339 48.5037 14.0037C48.2459 14.4227 48.2097 14.9777 48.0758 15.4718C48.0535 15.5547 48.0456 15.6414 48.0276 15.7258C47.9313 16.1885 47.8094 16.6482 47.7486 17.1156C47.724 17.3049 47.8629 17.5097 47.8729 17.7102C47.8978 18.2133 48.1031 18.6473 48.3046 19.0959C48.6788 19.9289 49.0095 20.7813 49.354 21.6276C49.3634 21.6504 49.3261 21.6921 49.3343 21.6745C49.5047 21.8254 49.6527 21.9417 49.7834 22.075ZM4.86575 11.2932C4.8772 11.2994 4.9286 11.3287 5.01466 11.3779C4.86957 11.4881 4.72947 11.5948 4.6302 11.6704C4.58702 11.8793 4.60787 12.1105 4.50185 12.2309C4.14411 12.6379 4.06158 13.1244 3.97494 13.6257C3.93558 13.8519 3.90004 14.1555 3.5147 14.0339C3.49062 14.026 3.44362 14.0904 3.36579 14.1564C3.92383 14.2853 3.57843 14.7316 3.51088 14.8037C3.16724 15.1685 3.28855 15.6312 3.1602 16.0326C3.06738 16.3224 3.06298 16.6418 2.95754 16.9254C2.89087 17.1042 2.71053 17.2407 2.57631 17.4022C2.6794 17.4394 2.7772 17.4749 2.97457 17.5464C2.78866 17.5815 2.70319 17.5976 2.57102 17.6228C2.61508 17.8406 2.70789 18.0621 2.69173 18.2748C2.66618 18.6045 2.53813 18.9253 2.50523 19.2553C2.46558 19.6535 2.47997 20.0573 2.47028 20.4584C2.46764 20.5677 2.48496 20.6835 2.45501 20.7854C2.31373 21.2654 2.36484 21.7293 2.48585 22.2095C2.62477 22.7595 2.70378 23.3251 2.78983 23.8868C2.79982 23.9513 2.68968 24.0345 2.67441 24.0553C2.73667 24.2639 2.81685 24.4605 2.85298 24.6645C3.00424 25.5166 3.14199 26.3711 3.28473 27.2246C3.384 27.8171 3.47622 28.4111 3.58754 29.0012C3.61015 29.1208 3.70208 29.2289 3.76699 29.3394C4.13882 29.9717 4.50273 30.6093 4.89042 31.232C5.02464 31.4477 5.23141 31.617 5.38296 31.8236C5.46315 31.9326 5.49575 32.0759 5.59561 32.1486C5.86876 32.4583 6.17538 32.7449 6.40771 33.0828C6.74283 33.5703 7.06032 33.6735 7.60779 33.4903C7.93645 33.3802 8.30387 33.3828 8.65485 33.3415C9.03168 33.2975 9.38119 33.2413 9.55359 32.8179C9.61792 32.6596 9.78386 32.5075 9.94158 32.4284C10.586 32.1041 10.791 31.455 11.1088 30.8953C11.3766 30.4236 11.6245 29.9357 11.8266 29.4329C12.0436 28.8937 12.1967 28.3284 12.3788 27.7749C12.4137 27.6683 12.4542 27.5637 12.4921 27.4582C12.7588 26.7098 12.7083 26.7555 12.0178 26.3851C11.3734 26.0396 10.7202 25.7915 10.015 25.6388C9.86845 25.6071 9.72982 25.511 9.60235 25.4234C9.28397 25.2048 9.01934 25.2206 8.8534 25.5485C8.37554 25.2186 7.91618 24.9015 7.40748 24.5505C7.54993 24.5218 7.65067 24.5016 7.8175 24.4679C7.62952 24.3345 7.49354 24.2302 7.34962 24.1385C7.18867 24.0354 7.18104 23.7757 7.34257 23.6281C6.91582 23.425 6.6227 22.5374 6.85943 22.235C6.80039 22.1149 6.74635 22.0053 6.6926 21.8954C6.81302 21.8488 6.93138 21.7961 7.05445 21.7574C7.13434 21.7322 7.22069 21.7269 7.38927 21.6985C7.10173 21.6156 6.88762 21.598 6.73695 21.491C6.66176 21.438 6.70259 21.2215 6.68144 20.9589C6.94666 21.1125 7.09997 21.201 7.27561 21.3023C7.28765 21.2045 7.30469 21.065 7.31673 20.9683C7.11436 20.9068 6.93667 20.8525 6.75898 20.7986C6.83329 20.5935 6.90789 20.3887 6.9822 20.1836C7.01597 20.1894 7.04945 20.1953 7.08323 20.2014C7.02478 20.1358 6.96634 20.0699 6.90642 20.0025C7.29852 19.6066 7.54406 19.4164 7.70912 19.4074C7.55992 19.2629 7.18955 19.3719 7.29264 19.0156C7.38575 18.6936 7.60074 18.5526 7.92499 18.5412C8.0272 18.5377 8.12824 18.5098 8.22604 18.4269C8.11326 18.4064 8.00018 18.3862 7.8874 18.3657C7.88505 18.3369 7.8827 18.3085 7.88035 18.2798C8.05393 18.2531 8.23015 18.1925 8.4008 18.2054C9.19527 18.2663 9.95979 18.1846 10.7093 17.8869C10.9863 17.777 11.3202 17.8192 11.6163 17.745C11.9858 17.6527 12.3476 17.5232 12.7015 17.3826C12.7711 17.3547 12.8035 17.2056 12.8311 17.1062C12.8825 16.9216 12.9174 16.7323 12.9518 16.5791C12.8666 16.3705 12.7538 16.1724 12.7054 15.9599C12.5855 15.4345 12.498 14.9018 12.3893 14.3738C12.3729 14.2935 12.3265 14.2088 12.2695 14.1493C11.8237 13.6861 11.7188 13.0561 11.4518 12.5055C11.3687 12.3338 11.2832 12.1594 11.171 12.0065C10.7137 11.3823 10.2441 10.7673 9.78298 10.1464C9.65992 9.9805 9.5859 9.74931 9.42613 9.64675C9.18734 9.4935 8.90039 9.38391 8.6199 9.33292C7.94702 9.21103 7.36578 9.48061 6.81185 9.83165C6.53929 10.0048 6.24441 10.1437 5.97508 10.3216C5.85378 10.4019 5.78299 10.5554 5.66639 10.6468C5.52982 10.7541 5.36857 10.83 5.2179 10.9194C5.16386 10.8936 5.09631 10.8801 5.05901 10.8394C5.00173 10.7766 4.96531 10.6952 4.92008 10.6216H5.15945C5.05284 10.1938 5.74481 9.23066 6.1234 9.32237V8.99214H6.77513C6.77396 8.96723 6.76897 8.8717 6.76485 8.79347C7.00511 8.68505 7.23948 8.57927 7.48238 8.46938C7.5652 8.66395 7.73908 8.72578 8.00635 8.60974C8.2372 8.50982 8.47657 8.49341 8.58877 8.79405C9.07221 8.52652 9.07074 8.52799 9.51571 8.96166C9.60088 9.04488 9.69986 9.11638 9.79972 9.18231C9.9034 9.25088 10.0159 9.30596 10.1425 9.37717C10.1052 9.45365 10.0711 9.52368 10.0176 9.63386C10.1354 9.59811 10.2115 9.57525 10.2632 9.55943C10.4579 9.80469 10.6447 10.0374 10.8295 10.2715C11.2054 10.7485 11.6266 11.1983 11.9411 11.7126C12.1814 12.1058 12.2754 12.5858 12.4551 13.0189C12.575 13.3078 12.7447 13.5765 12.8619 13.8663C12.8983 13.9565 12.8358 14.0866 12.807 14.2756C12.8554 14.2947 13.0049 14.353 13.1192 14.3975C13.1318 14.5936 13.1212 14.777 13.1603 14.9496C13.224 15.2306 13.3448 15.5002 13.3959 15.7827C13.4461 16.0584 13.439 16.3447 13.4616 16.6948C13.7477 16.8607 13.7947 17.1508 13.6531 17.5672C13.5915 17.7483 13.7927 18.0073 13.8338 18.2382C13.857 18.3683 13.7971 18.513 13.7733 18.6593C13.8103 18.8099 13.8649 18.9792 13.8908 19.1524C13.9204 19.3493 13.9627 19.5577 13.9257 19.7467C13.9022 19.8668 13.7586 20.0309 13.6449 20.0535C13.3747 20.1065 13.2816 19.8762 13.2487 19.6637C13.1982 19.337 13.1647 19.005 13.1577 18.6748C13.15 18.3167 12.9362 18.3129 12.6769 18.3451C12.4346 18.3753 12.1911 18.3947 11.9496 18.4278C11.3669 18.5078 10.7822 18.5778 10.2059 18.6903C10.1081 18.7097 10.0476 18.9201 9.97036 19.0422C9.99973 19.0651 10.0294 19.088 10.0591 19.1108C9.95773 19.1665 9.8567 19.2225 9.81499 19.2453C10.0144 19.6262 10.1783 19.9996 10.398 20.3371C10.546 20.5645 10.4876 21.2218 10.3093 21.3691C10.3428 21.598 10.4015 21.7779 10.3889 21.9526C10.351 22.4759 10.3155 23.003 10.218 23.517C10.166 23.7922 9.98857 24.0436 9.85171 24.3401H9.47517C9.57327 24.4096 9.6655 24.4427 9.70427 24.5074C9.97036 24.9528 10.4497 24.9701 10.8712 25.1149C11.3951 25.2951 11.9085 25.5058 12.4293 25.6965C12.5653 25.7463 12.7106 25.7709 12.8525 25.8073C12.9532 25.2212 13.0748 24.6528 13.1412 24.0779C13.1917 23.6418 13.1583 23.1964 13.19 22.7572C13.2 22.6165 13.2983 22.4826 13.3392 22.3862C13.2816 22.1111 13.1888 21.8468 13.1803 21.5801C13.1685 21.2229 13.2267 20.864 13.2472 20.5053C13.2652 20.1924 13.5016 20.1856 13.7004 20.224C13.9219 20.2668 14.0197 20.4347 13.9422 20.6782C13.8488 20.97 13.6934 21.2449 13.8831 21.5801C13.9521 21.702 13.847 21.9271 13.8094 22.1026C13.7621 22.3244 13.6241 22.5269 13.8006 22.7727C13.8614 22.8574 13.7674 23.0526 13.7374 23.2369C13.926 23.2231 14.121 23.2093 14.3492 23.1929C14.3075 23.3394 14.2755 23.4531 14.2435 23.5665C14.2729 23.5566 14.3025 23.5466 14.3322 23.5366C14.3968 23.7239 14.4614 23.9108 14.5448 24.1529C14.4036 24.1259 14.3113 24.108 14.2576 24.0981C14.2417 24.5898 14.2391 25.0627 14.2068 25.5336C14.1806 25.9177 14.1953 26.3303 14.0549 26.6746C13.8678 27.1338 13.8678 27.6105 13.7601 28.0735C13.6943 28.3563 13.5515 28.5283 13.1897 28.3847C13.61 28.6267 13.3321 28.9514 13.3139 29.2163C13.2975 29.4566 13.1362 29.6907 13.0214 29.919C12.9568 30.0473 12.844 30.1511 12.7761 30.2779C12.6031 30.6014 12.2721 30.8687 12.4255 31.3111C12.5042 31.5385 12.0472 32.1093 11.8151 32.1597C11.6101 32.204 11.4204 32.3174 11.2401 32.4835C11.3323 32.4791 11.4242 32.4753 11.5217 32.4709C11.4856 32.795 11.273 32.9017 10.9816 32.9506C10.8882 32.9664 10.818 33.0951 10.7275 33.1584C10.5396 33.289 10.3451 33.4106 10.156 33.4461C10.0552 33.4256 9.9501 33.3767 9.85435 33.3904C9.58473 33.4297 9.56417 33.481 9.53333 34.0951C9.726 33.9633 9.85552 33.8748 10.0168 33.7649C10.0285 33.8575 10.0379 33.9313 10.0529 34.0483C11.5725 33.5009 12.5159 32.3306 13.3806 31.0518C13.5063 31.1078 13.6255 31.1605 13.7427 31.2124C13.5136 31.5822 13.2901 31.9435 13.039 32.3487C13.1489 32.3352 13.2202 32.3476 13.2616 32.318C13.7134 31.9948 14.1466 31.6431 14.6139 31.3442C14.9413 31.1347 15.3126 30.9938 15.6656 30.8244C15.8186 30.7512 15.9699 30.6694 16.13 30.6175C16.3485 30.5475 16.5726 30.4913 16.7982 30.4485C17.1853 30.3752 17.5756 30.3178 17.9642 30.2513C18.1818 30.2141 18.4 30.1786 18.6156 30.1308C19.6694 29.8964 20.7227 29.6602 21.7747 29.42C22.057 29.3555 22.3316 29.2441 22.6159 29.211C22.8805 29.18 23.156 29.2518 23.4224 29.2298C23.8838 29.1914 24.3411 29.0824 24.8022 29.066C25.162 29.0531 25.4584 28.8679 25.7953 28.8017C25.9424 28.7727 26.0687 28.6358 26.202 28.545C26.3615 28.4363 26.5192 28.3246 26.6767 28.2136C26.8385 28.0996 27.0776 28.0193 27.1478 27.8637C27.4377 27.2208 27.6844 26.5577 27.9299 25.8958C28.0327 25.618 28.1335 25.3288 28.164 25.0375C28.2574 24.1529 28.3402 23.2653 28.3808 22.3771C28.423 21.4591 28.3385 20.5428 28.0991 19.6535C27.9613 19.1416 27.7684 18.6628 27.2133 18.3938C26.9807 18.2813 26.8579 17.9431 26.6849 17.7078C26.6358 17.6413 26.5985 17.5431 26.5325 17.5156C26.0637 17.3213 25.5941 17.127 25.1142 16.963C24.8398 16.8689 24.5696 16.8484 24.3191 16.6219C24.0918 16.4165 23.702 16.396 23.3916 16.2746C23.1663 16.1864 22.961 16.0446 22.7334 15.9667C22.3748 15.8436 22.0017 15.763 21.6405 15.6476C21.4214 15.5778 21.2049 15.4908 21.0008 15.3853C20.7423 15.2514 20.5097 15.0633 20.2445 14.9472C19.5349 14.6364 18.8183 14.3398 18.0952 14.0617C17.7163 13.9161 17.3077 13.8469 16.9318 13.6957C16.6117 13.5671 16.3153 13.3758 16.0163 13.1991C15.9505 13.1601 15.8774 13.0657 15.8768 12.9966C15.8744 12.722 15.7558 12.5814 15.4791 12.5597C15.4368 12.5562 15.4019 12.4782 15.3605 12.4381C15.0618 12.1506 14.7581 11.8679 14.4644 11.5751C14.3105 11.4216 14.1795 11.2455 14.0264 11.0911C13.9836 11.0477 13.8999 11.0439 13.8626 11.0316C13.9865 11.404 14.1028 11.7536 14.2191 12.1029C14.1859 12.1125 14.1527 12.1222 14.1193 12.1316C14.0147 12.0273 13.8943 11.9344 13.8088 11.8163C13.6496 11.5968 13.526 11.351 13.3597 11.1377C13.2123 10.9489 13.0287 10.7878 12.8569 10.619C12.8137 10.5768 12.7374 10.5639 12.7036 10.5176C12.4692 10.1953 12.2636 9.84864 12.0046 9.548C11.8263 9.34113 11.5405 9.22568 11.3658 9.01704C10.8297 8.37767 10.1296 7.96597 9.42172 7.56658C9.22464 7.45552 8.97441 7.43853 8.70566 7.36674C8.61256 7.16602 8.06538 6.93335 7.73996 7.00163C7.27943 7.09774 6.81126 7.16631 6.35983 7.29436C6.11048 7.36469 5.86053 7.49801 5.66052 7.66298C5.27987 7.97681 4.92155 8.32111 4.58115 8.67889C4.44751 8.81955 4.42049 9.06158 4.28685 9.20282C3.85393 9.66082 3.58431 10.1924 3.33319 10.7705C3.01863 11.494 2.70172 12.2104 2.45559 12.9614C2.32901 13.3479 2.10902 13.7028 1.95248 14.0808C1.91606 14.169 2.00564 14.3099 1.96775 14.3958C1.93074 14.4805 1.80503 14.5262 1.68873 14.61C2.15073 14.9045 1.85232 15.2391 1.76891 15.5576C1.70547 15.7999 1.5545 16.035 1.55245 16.2741C1.5498 16.5726 1.50105 16.8249 1.32218 17.0629C1.21792 17.2009 1.46815 17.4239 1.22496 17.5443C1.40853 17.9249 1.02818 17.7225 1.00997 17.8376C0.980014 17.9601 0.944769 18.082 0.922154 18.206C0.898363 18.3352 0.839328 18.5637 0.876629 18.5819C1.1486 18.7126 0.96151 18.8749 0.947119 19.0346C0.910405 19.4416 0.89337 19.851 0.882503 20.2598C0.881916 20.2879 0.999398 20.3187 1.0928 20.3632C0.983832 20.5405 0.883091 20.7043 0.812014 20.82C0.893664 21.1113 0.985594 21.3565 1.02759 21.61C1.0834 21.9458 1.1348 22.2892 1.12364 22.6274C1.11306 22.9368 0.997636 23.241 0.965622 23.5516C0.946825 23.7365 0.982657 23.9328 1.02407 24.1171C1.1862 24.8365 1.33922 25.5588 1.54393 26.2661C1.59973 26.4595 1.82383 26.6043 1.97127 26.7722C1.62147 27.0424 2.01533 27.3647 1.96041 27.6662C1.87729 28.1242 2.3851 28.14 2.47263 28.4603C2.59129 28.3006 2.6838 28.1758 2.77456 28.0536C2.65238 27.7456 2.51845 27.4145 2.39157 27.0808C2.3713 27.0277 2.35544 26.9383 2.38364 26.9079C2.60098 26.6723 2.502 26.5671 2.23855 26.5088C2.19508 26.4994 2.13927 26.4622 2.12312 26.4235C1.88463 25.8547 1.66523 25.3001 1.89021 24.6472C1.96892 24.4192 1.79975 24.1066 1.73866 23.8068C1.89579 23.7464 2.01973 23.6322 1.84234 23.418C1.58505 23.1077 1.5965 22.8179 1.80827 22.4586C1.86143 22.3684 1.80915 22.1568 1.73102 22.0621C1.59856 21.9019 1.5592 21.8055 1.69989 21.617C2.03295 21.1719 1.96364 20.8865 1.46522 20.6615C1.57477 20.6219 1.66699 20.6161 1.71252 20.5671C1.81296 20.4584 1.97215 20.3201 1.96158 20.2079C1.92575 19.8331 1.81561 19.466 1.75687 19.0924C1.74042 18.986 1.81091 18.8691 1.82736 18.7548C1.85643 18.5532 1.87464 18.3501 1.90225 18.1037C2.22562 18.0246 2.17364 17.7846 2.08288 17.4889C2.03618 17.3366 2.0447 17.0872 2.13986 16.9861C2.44414 16.6629 2.54841 16.369 2.36131 15.9251C2.20506 15.5553 2.39392 15.3047 2.79159 15.1146C2.8662 15.0791 2.92347 15.0073 3.01041 14.9341C2.91994 14.864 2.84769 14.8081 2.7775 14.7533C3.27533 14.2885 3.16901 13.6345 3.49091 12.9951C3.83866 12.8123 3.84688 12.7853 3.53262 12.4721C3.7012 12.3012 3.8695 12.131 4.03926 11.9593C3.98874 11.8948 3.93352 11.8251 3.88829 11.7677C4.11592 11.4108 4.33326 11.0697 4.49127 10.8221C4.80848 10.8602 5.01789 10.8851 5.22701 10.9103C5.11217 11.0322 4.99704 11.1541 4.86575 11.2932ZM51.6731 2.50196C51.7034 2.79557 51.7237 3.05519 51.7586 3.31305C51.7827 3.49414 51.7956 3.68724 51.872 3.84694C51.9213 3.94979 52.067 4.02715 52.1862 4.0711C52.3246 4.1218 52.4829 4.11506 52.6294 4.14758C53.0773 4.24721 53.149 3.88621 53.2803 3.63303C53.3719 3.6805 53.458 3.72475 53.5438 3.76929C53.5661 3.68285 53.6072 3.5967 53.6081 3.51026C53.6139 2.7525 53.4971 2.01349 53.0847 1.36796C52.9663 1.18277 52.6794 1.10219 52.4656 0.981466C52.4277 0.960076 52.3343 0.960076 52.3231 0.980587C52.1069 1.38642 51.5477 1.16871 51.3204 1.59975H51.9633L51.9874 1.70318C51.7759 1.77204 51.5645 1.8412 51.2819 1.9335C51.4329 2.07122 51.5416 2.17026 51.5994 2.22301C51.5424 2.39501 51.4878 2.55969 51.4332 2.72408C51.2367 2.62503 51.1171 2.51017 51.328 2.30447C51.3483 2.28483 51.3148 2.2107 51.3066 2.16206C51.2514 2.18931 51.1521 2.21187 51.1489 2.2441C51.1362 2.36629 51.1597 2.49142 51.1612 2.61595C51.1668 3.08098 51.1788 3.5463 51.1694 4.01103C51.1627 4.35709 51.3037 4.29409 51.5095 4.15227C51.4581 4.07638 51.4135 4.00986 51.3665 3.94012C51.4649 3.86218 51.5492 3.79537 51.637 3.72592C51.264 3.43466 51.264 3.43466 51.4769 3.16449C51.2787 2.90985 51.2743 2.87147 51.4247 2.71822C51.5051 2.65258 51.5818 2.58372 51.6731 2.50196ZM39.6485 22.8135C39.6297 22.9468 39.6224 23.083 39.6256 23.2175C39.6379 23.793 39.9416 24.0916 40.5161 24.0802C40.7757 24.0749 41.0348 24.0401 41.2944 24.0181C41.6519 23.9876 41.5743 23.6776 41.6219 23.4728C41.7658 22.8542 41.5861 22.5908 41.0054 22.3991C40.8339 22.3426 40.702 22.1659 40.5067 22.0074C40.3654 22.0167 40.1137 22.0331 39.7915 22.0545C39.7213 22.1817 39.736 22.5152 39.3777 22.4949C39.0256 22.1345 38.6734 21.7735 38.3198 21.4143C38.3045 21.399 38.2728 21.3958 38.2484 21.3949C37.8551 21.38 37.6645 21.1435 37.4598 20.823C36.9725 20.0602 36.6054 19.2855 36.7326 18.3519C36.742 18.2836 36.7385 18.2045 36.7135 18.1415C36.4724 17.5326 36.1922 16.9363 35.9922 16.3145C35.8641 15.916 35.7895 15.4706 36.1872 15.0993H35.9137C35.9578 14.8582 35.9789 14.6337 36.0421 14.4224C36.1534 14.0515 36.0841 13.8751 35.7592 13.7086C34.9557 13.2969 34.8288 12.2523 35.5398 11.7178C35.7519 11.5584 36.0856 11.559 36.2938 11.397C36.5214 11.2197 36.7015 11.1974 36.9176 11.3478C37.2848 10.888 37.6072 10.4156 38.0002 10.0116C38.3809 9.62038 38.7213 9.13308 39.3055 9.01734C40.0726 8.86555 40.8483 8.75567 41.6207 8.63025C41.6677 8.62263 41.7373 8.61824 41.7647 8.6449C42.0199 8.89456 42.212 8.70087 42.4208 8.56755C42.5459 8.48784 42.691 8.4395 42.8182 8.36243C43.3703 8.02809 43.9199 7.68877 44.4697 7.34974C44.7205 7.19502 44.9713 7.04031 45.2186 6.88002C45.5723 6.65029 45.9153 6.40357 46.276 6.18585C46.7148 5.92096 47.1512 5.64317 47.6179 5.43659C48.0887 5.22796 48.5907 5.08203 49.0888 4.94402C49.3302 4.87721 49.4524 4.65012 49.7473 4.61115C50.0075 4.57686 50.3797 4.25776 50.4275 4.01133C50.5015 3.63157 50.7638 3.23745 50.5338 2.80612C50.4736 2.69302 50.5388 2.492 50.5888 2.34608C50.7139 1.98068 50.8566 1.62026 51.0058 1.26365C51.1336 0.957146 51.1788 0.587936 51.6135 0.508527C51.7568 0.482448 51.9137 0.389853 52.0106 0.280262C52.1724 0.0971223 52.4042 0.0616665 52.5798 0.230448C52.6606 0.308392 52.8112 0.437908 52.8527 0.413587C53.1308 0.248615 53.2879 0.497099 53.4783 0.581783C53.7229 0.690787 53.893 1.1523 53.8081 1.38818C54.1984 1.42628 54.2504 1.6226 54.0795 1.94434C54.0313 2.03518 54.0571 2.16528 54.0492 2.27722C54.1476 2.24147 54.246 2.20572 54.3271 2.17612C54.3946 2.60687 54.4631 3.04406 54.5321 3.48389C54.4816 3.48887 54.3879 3.49854 54.2942 3.50762C54.5121 3.58469 54.7206 3.64446 54.5291 3.85309C55.1538 3.85309 55.8082 3.85749 56.462 3.84401C56.5093 3.84313 56.5536 3.71274 56.5995 3.6427C56.8923 3.84958 57.7126 3.7813 57.9646 3.52989C57.9846 3.5756 58.0031 3.65882 58.0248 3.6597C58.5221 3.67962 59.0202 3.69662 59.518 3.69603C59.5809 3.69603 59.6387 3.55509 59.7078 3.54601C60.069 3.49766 60.4077 3.82467 60.7877 3.61809C60.8056 3.60842 60.8744 3.69135 60.9833 3.78716C60.9275 3.57619 60.8955 3.45429 60.8632 3.33239C61.0497 3.79566 61.3851 3.52286 61.6674 3.50498C61.8036 3.49648 61.9411 3.50352 62.078 3.50352C62.0791 3.53692 62.0803 3.57062 62.0815 3.60402C61.9828 3.63684 61.8841 3.66966 61.7851 3.70277C62.2054 3.83405 62.663 3.36521 63.0029 3.93631C63.0563 3.72827 63.0898 3.59846 63.123 3.46865C63.1858 3.71948 63.8346 3.30221 63.5192 3.90056H64.5272C64.3436 3.98642 64.2673 4.02217 64.1912 4.05762C64.3069 4.15725 64.4693 4.22523 64.5169 4.17806C64.756 3.941 64.9836 4.07989 65.2394 4.12004C65.4253 4.14934 65.6342 4.03242 65.8785 3.96913C65.7361 3.8487 65.6682 3.79127 65.603 3.73647C65.8092 3.69252 66.0371 3.7101 66.1602 3.6052C66.4774 3.33503 66.8915 3.15248 67.0495 2.71616C67.0748 2.64584 67.1858 2.61097 67.2413 2.54621C67.3861 2.37626 67.5151 2.19253 67.6649 2.02756C67.7318 1.95342 67.8334 1.91035 67.9195 1.85292C68.0179 1.8116 68.0725 1.65776 68.1636 1.63227C68.4611 1.54935 68.7718 1.5133 69.0247 1.46847C69.0808 1.37646 69.1122 1.25544 69.1704 1.24079C69.7787 1.08666 70.3907 1.14263 70.9999 1.24343C71.0915 1.25867 71.1782 1.3161 71.2622 1.36269C71.4446 1.46437 71.8625 1.0682 71.8358 1.6519C71.829 1.79461 72.0411 1.94698 72.1556 2.09935C72.1706 2.0929 72.2246 2.07005 72.3195 2.0299C72.311 2.63969 72.3474 3.20786 71.6058 3.42645C71.7412 3.49238 71.8328 3.53663 71.9025 3.57033C71.8443 3.75317 71.8275 3.9328 71.7362 4.0585C71.6449 4.18392 71.4792 4.25541 71.3168 4.37145C71.4542 4.71839 71.1056 4.85992 70.9027 5.08028C70.5975 5.41169 70.6369 5.55263 71.187 5.68947C70.9414 5.82162 70.7793 5.90924 70.6007 6.00564C70.6577 6.05223 70.732 6.11318 70.8034 6.17179C70.7106 6.25706 70.6248 6.33588 70.6063 6.35317C70.7106 6.52312 70.7743 6.62978 70.841 6.73468C70.9691 6.9357 71.068 7.16748 71.2346 7.32982C71.5961 7.6832 71.9941 7.99908 72.3744 8.33342C72.7239 8.64109 73.1087 8.91976 73.4083 9.2708C73.9757 9.93538 74.4838 10.6501 75.0337 11.3302C75.8023 12.2807 76.1674 13.415 76.5313 14.5499C76.5556 14.6267 76.4819 14.7345 76.4796 14.743C76.6018 15.0627 76.7219 15.3097 76.7909 15.5702C77.0958 16.7212 77.2112 17.9182 77.6391 19.0393C77.6479 19.0619 77.665 19.0953 77.6559 19.1079C77.3795 19.4985 77.7701 19.8091 77.8001 20.1669C77.8479 20.7438 78.127 21.305 78.1525 21.8796C78.1822 22.5392 78.06 23.2087 77.9707 23.8698C77.8418 24.8236 77.6794 25.773 77.5413 26.7256C77.521 26.8663 77.5751 27.0163 77.5654 27.1602C77.5296 27.6905 77.3768 28.2382 77.4647 28.7454C77.5722 29.3666 77.7067 29.9682 77.6209 30.6029C77.6012 30.7479 77.6438 30.912 77.6946 31.0541C77.7719 31.2692 77.8814 31.4729 77.988 31.7058C77.8723 31.7765 77.7751 31.8356 77.6779 31.8951L77.7369 31.9822H78.0347C78.0383 32.0071 78.0418 32.0317 78.0453 32.0566C77.9149 32.0888 77.7845 32.1213 77.6541 32.1536C77.6479 32.1943 77.6418 32.2353 77.6353 32.2761C77.7786 32.2969 77.922 32.3177 78.0579 32.337C77.9531 32.4097 77.8394 32.4885 77.6767 32.6013C77.8838 32.6587 78.0245 32.6974 78.2462 32.759C78.1508 32.9784 78.0641 33.178 77.9825 33.3661C78.6439 33.5396 78.1023 33.9223 78.0788 34.2252C78.2057 34.2077 78.3026 34.1945 78.3992 34.181C78.411 34.2138 78.4227 34.2463 78.4345 34.2789C78.3132 34.3392 78.1922 34.3999 77.9572 34.5168C78.1786 34.5833 78.3102 34.6229 78.3963 34.6487C78.3657 34.92 78.3349 35.1934 78.2923 35.5702C78.4171 35.4302 78.4683 35.373 78.5434 35.2886C78.6342 35.4961 78.7302 35.6848 78.7993 35.8829C78.8609 36.0607 78.8932 36.2489 78.9564 36.505C78.8589 36.4874 78.7238 36.4631 78.5778 36.437C78.3381 36.9085 79.0269 36.5516 79.0075 36.8393C78.9153 36.8991 78.8242 36.958 78.6727 37.0559C78.8921 37.1021 79.0292 37.1309 79.1846 37.1637C79.1223 37.2449 79.0786 37.3017 79.0342 37.3594C79.337 37.5499 79.3453 37.7896 79.0771 38.1154C79.1614 38.3709 79.3453 38.5989 79.4845 38.7756C79.8701 39.2652 79.972 39.7868 79.9832 40.3614C79.9847 40.4482 79.9253 40.5364 79.8907 40.6337C79.965 40.7564 80.1121 40.9079 80.1527 41.0838C80.2481 41.4966 80.2954 41.9209 80.3565 42.3414C80.4111 42.7171 80.4581 43.0939 80.5086 43.4704C80.5233 43.5668 80.6464 43.6638 80.6584 43.7728C80.7148 44.28 80.7454 44.7905 80.7741 45.3001C80.7815 45.4337 80.7471 45.5693 80.7339 45.7041C80.6769 46.2881 80.6194 46.8721 80.5644 47.4561C80.5271 47.8538 80.4895 48.2514 80.4637 48.6496C80.4602 48.7068 80.5107 48.8058 80.5577 48.8216C80.9354 48.9488 81.3146 49.1413 81.7005 49.1601C82.4309 49.1952 82.8791 49.7274 83.3931 50.0819C83.8824 50.4189 83.9852 51.0811 83.9024 51.6947C83.8833 51.8377 83.7782 52.039 83.661 52.0862C83.2727 52.2424 82.8633 52.4246 82.4577 52.4364C82.092 52.4466 81.6717 52.7185 81.3222 52.3443C81.2931 52.3127 81.1648 52.3766 81.0816 52.3912C80.9868 52.4082 80.8825 52.4513 80.7973 52.4281C80.2957 52.2919 79.7999 52.1334 79.2977 51.9992C79.2175 51.9778 79.0683 52.0126 79.0298 52.0721C78.833 52.378 78.6618 52.7001 78.4818 53.0165C78.3787 53.1982 78.307 53.4127 78.1619 53.5498C78.072 53.6342 77.8703 53.6005 77.719 53.6202C77.7275 53.5249 77.7357 53.4294 77.7528 53.2372C77.5833 53.396 77.4661 53.5059 77.4194 53.5498C77.4981 53.8054 77.6218 53.9938 77.5813 54.1347C77.5384 54.2833 77.3384 54.387 77.2071 54.5104C77.1865 54.4899 77.166 54.4691 77.1457 54.4482C77.166 54.3398 77.1865 54.2317 77.2174 54.0702C77.0699 54.1766 76.9759 54.2443 76.8819 54.312C76.9527 54.4187 77.01 54.5051 77.0388 54.5482C76.8593 54.6487 76.6857 54.7137 76.5533 54.8265C76.2851 55.056 76.0563 55.3329 75.7788 55.5488C75.5603 55.7194 75.3291 55.8463 75.241 56.1446C75.2137 56.2374 75.0269 56.2837 74.8874 56.3667C75.0777 56.7655 74.5672 56.7461 74.455 56.9885C74.2615 57.4072 73.8994 56.9688 73.6996 57.1725C73.6612 57.3298 73.6186 57.5432 73.507 57.5889C73.1155 57.7489 72.7001 57.8511 72.311 57.9701C72.2851 58.1137 72.185 58.3091 72.2437 58.4222C72.3683 58.6622 71.8384 58.996 72.3418 59.1111C72.2957 59.2881 72.1826 59.5301 72.2311 59.5685C72.4763 59.7619 72.2602 59.9292 72.2517 60.1056C72.2461 60.2182 72.2746 60.3336 72.2975 60.4458C72.3092 60.5033 72.365 60.5572 72.3624 60.6108C72.3536 60.8013 71.8217 61.2461 71.6008 61.264C71.5717 61.2663 71.5447 61.2968 71.451 61.3554C71.5735 61.4178 71.6675 61.4659 71.6898 61.477C71.5403 61.6393 71.4325 61.7513 71.33 61.8679C71.1415 62.0824 70.9873 62.4264 70.7605 62.4824C70.4924 62.5492 70.4336 62.6843 70.3484 62.87C70.3291 62.9122 70.2835 62.9427 70.2501 62.9784C70.2468 62.9506 70.2436 62.9228 70.2404 62.8949C69.734 62.9298 69.2277 62.965 68.7216 63.0001C68.7395 62.9579 68.7574 62.9154 68.7757 62.8733C68.7219 62.7968 68.672 62.7177 68.6144 62.6441C68.4664 62.456 68.2482 62.2922 68.1797 62.0795C68.0446 61.6598 67.9756 61.2162 67.9148 60.7775C67.8951 60.636 68.0167 60.4795 68.0197 60.3289C68.0252 60.04 67.9923 59.7502 67.9721 59.403C67.75 59.4317 67.4904 59.4651 67.357 59.4824C67.1702 59.4434 67.0868 59.4068 67.0075 59.4141C66.8789 59.4258 66.7541 59.4833 66.6257 59.4912C66.1813 59.5196 65.7355 59.5249 65.2917 59.5577C64.8597 59.5893 64.4303 59.6676 63.9982 59.6831C63.1847 59.7121 62.3702 59.7057 61.5561 59.7241C61.1328 59.7338 60.7093 59.7877 60.2875 59.7745C60.1143 59.7693 59.9489 59.5961 59.7724 59.5791C59.5964 59.5621 59.412 59.6688 59.2287 59.6781C58.9612 59.6919 58.6892 59.6846 58.4228 59.6529C58.2469 59.6318 58.0463 59.594 57.9123 59.4912C57.6727 59.3077 57.5329 59.3751 57.4001 59.5952C56.712 59.3573 55.884 59.4792 55.3621 58.7856C55.3001 58.8785 55.2487 58.9555 55.2038 59.0232C55.0516 58.9787 54.918 58.9544 54.7973 58.9013C54.5585 58.7961 54.2528 58.732 54.11 58.5471C53.9129 58.2912 53.6445 58.2051 53.401 58.1729C53.0248 58.1228 52.6309 58.2004 52.2218 58.225C52.4021 58.5459 52.2573 58.7258 52.0041 58.8808C51.909 58.9388 51.7815 59.0455 51.7786 59.134C51.7677 59.4628 51.5765 59.5515 51.3254 59.5448C51.2757 59.7162 51.2781 59.9064 51.1841 59.9966C50.8234 60.3433 50.377 60.5675 49.915 60.7526C49.4982 60.9197 49.0776 60.8734 48.6418 60.7931C48.1302 60.6987 47.7671 60.3178 47.8218 59.8082C47.8376 59.66 47.9569 59.5196 47.9607 59.374C47.9739 58.8585 48.22 58.4729 48.5801 58.1362C48.6603 58.0615 48.7484 57.9827 48.7957 57.8872C49.0562 57.3606 49.2879 56.8194 49.564 56.3019C49.777 55.9034 49.7056 55.7138 49.2724 55.548C49.0641 55.4683 48.8909 55.2966 48.7026 55.165C48.5945 55.0894 48.4882 55.0114 48.4653 54.995C48.2512 54.6639 48.1128 54.2138 47.9099 54.1825C47.4035 54.1048 47.3557 53.629 47.037 53.3928H47.2916C47.2925 53.3723 47.2934 53.3515 47.2946 53.331C47.0919 53.2882 46.8892 53.2454 46.6728 53.1997C46.7718 53.0409 46.8326 52.9436 46.8428 52.9266C46.6193 52.8659 46.3938 52.8656 46.2672 52.754C46.1171 52.6215 46.0522 52.3927 45.9277 52.1641C45.9291 52.1612 45.9682 52.0941 46.0243 51.9977C45.8504 51.9324 45.7041 51.8778 45.5593 51.8233C45.5737 51.7454 45.5875 51.673 45.601 51.6004C45.5637 51.6185 45.5264 51.6367 45.4894 51.6549C45.4002 51.5476 45.3029 51.4453 45.2236 51.3311C45.1158 51.1752 45.0468 50.8977 44.9176 50.8693C44.4856 50.774 44.5343 50.4962 44.5901 50.2208C44.4007 50.1581 44.2362 50.1036 44.0497 50.0418C44.1275 49.9287 44.1804 49.8513 44.2333 49.7742C44.1995 49.7862 44.1657 49.7983 44.1319 49.8103C43.9628 49.526 43.7912 49.2427 43.6247 48.957C43.5469 48.8231 43.4908 48.6751 43.4027 48.5491C43.2355 48.3097 43.0373 48.0905 42.8851 47.8426C42.8411 47.7708 42.9104 47.6302 42.9201 47.5675C42.8179 47.3448 42.7227 47.1382 42.6003 46.8721C42.7847 46.8484 43.0361 46.7687 43.0672 46.8203C43.2194 47.0749 43.3134 47.3641 43.4414 47.6738C43.4937 47.7272 43.6103 47.8019 43.6632 47.908C43.882 48.3487 44.0808 48.7993 44.2899 49.245C44.304 49.2752 44.3422 49.3057 44.3745 49.3142C44.7211 49.4041 44.6245 49.6087 44.472 49.8328C44.628 49.8443 44.7475 49.8531 44.8668 49.8618C44.8468 49.8932 44.8271 49.9246 44.8072 49.9562C44.8944 50.0397 44.9922 50.1147 45.0659 50.2085C45.1432 50.3072 45.1975 50.4239 45.2618 50.5323C45.2324 50.5519 45.2028 50.5713 45.1731 50.5906C45.3843 50.7532 45.6663 50.7866 45.7071 51.1857C45.7312 51.4225 46.1588 51.6024 46.367 51.8409C46.5556 52.0569 46.693 52.3174 46.8848 52.606C47.3286 52.6432 47.8526 53.2114 47.8737 53.7327C48.1134 53.876 48.4051 53.9589 48.5402 54.1508C48.8189 54.547 49.1158 54.891 49.5582 55.107C49.6859 55.1694 49.8284 55.2784 49.8818 55.4017C50.0354 55.7543 50.3159 55.9488 50.6337 56.1211C50.7515 56.185 50.9486 56.2876 50.9436 56.3611C50.9233 56.6576 51.1495 56.6008 51.2969 56.6615C51.4866 56.7397 51.7375 56.7602 51.684 57.1027H52.9317C52.9804 57.1942 52.9992 57.2938 53.0562 57.3254C53.3508 57.4898 53.6501 57.6469 53.9564 57.7875C54.7247 58.1403 55.4901 58.5005 56.272 58.8213C56.6479 58.9757 57.1217 58.7885 57.4641 59.1267C57.4938 59.1557 57.6019 59.0974 57.6741 59.0933C58.157 59.0645 58.6428 58.9948 59.1218 59.0256C59.7186 59.0634 60.3028 59.2377 60.914 59.1029C61.1281 59.0557 61.4148 59.047 61.5834 59.1539C61.7901 59.2852 61.8853 59.2688 62.0154 59.0502C62.033 59.1806 62.0439 59.2609 62.046 59.2749C62.8349 59.1618 63.6088 59.0508 64.3768 58.9409C64.4103 59.0935 64.4267 59.17 64.4435 59.2462C64.4667 59.2436 64.4899 59.2409 64.5131 59.2383C64.5222 59.1694 64.5313 59.1009 64.5522 58.945C64.6297 59.0686 64.6667 59.1272 64.6597 59.1158C64.8045 59.0522 64.914 58.9626 65.0224 58.9643C65.285 58.9678 65.5519 59.0616 65.8077 59.0326C66.2833 58.979 66.7611 58.8966 67.2214 58.7668C67.8966 58.5767 68.625 58.7155 69.2802 58.3885C69.6007 58.2285 69.966 58.1588 70.3144 58.0469C70.3587 58.1011 70.4081 58.162 70.5047 58.2807V57.9405C70.6128 57.9212 70.7041 57.9194 70.7834 57.888C71.6243 57.556 72.4714 57.2372 73.2996 56.8754C73.623 56.7338 73.9405 56.5325 74.1939 56.2893C74.6198 55.8803 74.9905 55.4143 75.3899 54.9774C75.431 54.9326 75.5153 54.9303 75.5714 54.8954C75.6898 54.821 75.8402 54.7621 75.9098 54.6537C76.0519 54.4318 76.1321 54.171 76.2719 53.9472C76.3448 53.83 76.4963 53.672 76.5997 53.6805C76.9213 53.7081 77.0082 53.4561 77.1536 53.2864C77.3859 53.0151 77.5877 52.7182 77.8065 52.4352C77.904 52.3089 78.0377 52.2037 78.1108 52.0657C78.5922 51.1555 79.0756 50.246 79.5274 49.3212C79.6854 48.9971 79.7491 48.6282 79.866 48.2833C79.9952 47.9021 79.812 47.5165 79.9197 47.1206C80.0178 46.7608 79.9729 46.3629 80.0046 45.9828C80.0105 45.911 80.0795 45.8445 80.0877 45.8298C80.0501 45.7185 79.9999 45.6344 79.9958 45.548C79.972 45.046 79.9732 44.5423 79.9362 44.0412C79.9195 43.8168 79.7573 43.5841 79.7935 43.3784C79.9015 42.7648 79.7409 42.1981 79.5887 41.6253C79.3435 40.7022 79.1074 39.7763 78.8363 38.8609C78.5822 38.0035 78.2867 37.1584 78.0112 36.3072C77.981 36.2134 77.954 36.1179 77.9384 36.0209C77.8711 35.596 77.7199 35.1597 77.7695 34.7483C77.8218 34.3134 77.5583 33.9911 77.5328 33.5744C77.4802 32.7282 77.161 31.8983 76.9536 31.0615C76.9328 30.9774 76.9154 30.8904 76.9113 30.8042C76.8632 29.8094 76.8115 28.8149 76.7753 27.8198C76.7615 27.4318 76.7539 27.0386 76.8003 26.6547C76.8414 26.3186 77.0168 25.9951 77.035 25.6611C77.0617 25.1705 76.9974 24.6756 76.9824 24.1822C76.9803 24.1142 77.0473 24.0471 77.0676 23.9756C77.1601 23.6474 77.3202 23.3201 77.1016 22.9734C77.1768 22.921 77.2523 22.8683 77.3504 22.7997C77.2541 22.727 77.1815 22.6722 77.0996 22.6107C77.2041 22.5128 77.297 22.4261 77.4247 22.3065C77.2714 22.2983 77.1704 22.293 77.0599 22.2872C77.0494 21.603 77.2285 20.9489 77.0297 20.2864C76.8781 19.7818 76.7985 19.2541 76.7128 18.7325C76.6931 18.6127 76.7792 18.4755 76.8238 18.322C76.7627 18.2382 76.6041 18.1131 76.5759 17.963C76.5078 17.602 76.5177 17.2296 76.4102 16.8698C76.358 16.6954 76.3729 16.5009 76.3544 16.2796C76.3201 16.2609 76.1944 16.2339 76.18 16.1782C76.0255 15.5825 75.8922 14.9812 75.7453 14.3835C75.6751 14.0987 75.5832 13.8194 75.5112 13.5349C75.3837 13.0318 75.1984 12.5486 74.8251 12.1823C74.3763 11.7416 74.3117 11.0565 73.7801 10.6559C73.6347 10.546 73.6033 10.253 73.3619 10.1302C73.1281 10.0116 72.8978 9.85509 72.7201 9.66462C72.365 9.28428 72.0508 8.86643 71.7107 8.47173C71.649 8.40023 71.5424 8.36829 71.4584 8.31467C71.3955 8.27452 71.2786 8.21914 71.2842 8.18779C71.3564 7.77462 70.9335 7.87923 70.7734 7.71075C70.6016 7.52966 70.3117 7.46724 70.1061 7.31018C69.8671 7.12704 69.7067 7.12646 69.5672 7.38783C69.685 7.37142 69.7948 7.35648 69.9044 7.34124C69.9205 7.37406 69.9367 7.40629 69.9525 7.43911C69.6171 7.6665 69.2817 7.89388 68.9463 8.12098L69.0147 8.19834C68.6508 8.37708 68.5706 8.0697 68.4902 7.86869C68.4558 7.78254 68.5965 7.61053 68.6825 7.49625C68.8987 7.2088 69.1633 6.95211 69.3443 6.64531C69.5443 6.3057 69.5105 5.81547 70.0072 5.67629C70.0166 5.67365 70.0216 5.65665 70.0286 5.6464C70.6366 4.77905 71.3186 3.96034 71.6883 2.94296C71.8493 2.49933 71.777 2.01642 71.4164 1.81893C70.698 1.4254 69.6127 1.4758 68.8 2.05042C68.7196 2.10726 68.6282 2.15004 68.5395 2.19546C68.3747 2.27956 68.1835 2.33201 68.047 2.44834C67.5759 2.85008 67.12 3.26969 66.6665 3.69164C66.5579 3.79244 66.4818 3.9284 66.3899 4.04737C66.2125 4.27651 66.0316 4.50273 65.8577 4.73422C65.6612 4.9953 65.4785 5.26693 65.2756 5.52274C65.075 5.77562 64.8708 6.02938 64.6385 6.25178C64.5627 6.32416 64.3936 6.29925 64.2673 6.31889C64.272 6.20373 64.2388 6.06776 64.2893 5.97839C64.3771 5.82426 64.5166 5.69943 64.6341 5.56201C64.8059 5.3607 65.0165 5.17727 64.9789 4.88014C64.7225 4.80923 64.4896 4.74389 64.2561 4.6803C63.7806 4.55108 63.3071 4.4113 62.8275 4.29908C62.6125 4.24897 62.384 4.25629 62.162 4.23549C60.9525 4.12062 59.7433 4.04737 58.5365 4.26362C58.3461 4.29761 58.13 4.49892 57.9858 4.18333C57.9781 4.16692 57.8935 4.1845 57.8451 4.18773C57.7079 4.1971 57.571 4.20707 57.4274 4.21732C57.4257 4.24633 57.4213 4.31373 57.418 4.36383C57.2459 4.319 56.981 4.2267 56.9701 4.25073C56.8062 4.60646 56.6582 4.34362 56.4908 4.26743C56.3951 4.22406 56.2696 4.22904 56.1595 4.23695C55.7269 4.26772 55.2939 4.30201 54.8625 4.34655C54.3814 4.39577 53.8962 4.42889 53.4227 4.52031C52.517 4.69524 51.6458 5.01581 50.7192 5.12833C50.4824 5.15675 50.056 5.1843 49.9635 5.59043C49.9608 5.60244 49.9235 5.60625 49.8886 5.61915C49.9018 5.54765 49.9135 5.48465 49.9426 5.32554C49.4392 5.52684 48.9981 5.70295 48.5449 5.88404C48.5816 5.82075 48.6159 5.76185 48.7046 5.60948C48.4409 5.66515 48.2535 5.70969 48.0641 5.74397C47.5947 5.82866 47.3653 6.30541 46.864 6.4021C46.2525 6.5199 45.7247 6.87211 45.2577 7.32776C44.8242 7.75089 44.2814 8.06003 43.8165 8.45415C43.4053 8.80255 43.0314 9.19491 42.6481 9.57496C42.301 9.91897 41.9632 10.2726 41.6093 10.6345C41.5432 11.0245 41.065 11.0667 40.8451 11.3436C40.9279 11.3982 41.0089 11.4512 41.0988 11.5101C40.92 11.6847 40.7105 11.8066 40.6286 11.9862C40.4509 12.3748 40.3516 12.7982 40.1939 13.1973C40.099 13.4376 40.1443 13.5431 40.4063 13.5598C40.7757 13.5838 41.1587 13.4739 41.5118 13.6729C41.5511 13.6949 41.6128 13.6934 41.6595 13.6831C42.1626 13.5733 42.6114 13.774 43.027 13.9885C43.3598 14.1605 43.7821 14.3981 43.892 14.7043C44.0444 15.1298 44.4682 15.1064 44.6019 15.4281C44.6086 15.5673 44.6389 15.7012 44.6879 15.8281C44.7878 16.0868 44.8973 16.3417 45.0321 16.6691C45.2401 16.7171 45.5632 16.7804 45.8777 16.8727C45.9538 16.895 46.0052 17.0107 46.0616 17.0881C46.3145 17.4338 46.5603 17.7849 46.8202 18.1254C46.8787 18.2022 46.9838 18.2441 47.0675 18.3021C47.0854 18.1802 47.1383 18.0515 47.1151 17.9378C47.0226 17.4834 46.9057 17.0336 46.8003 16.5817C46.7894 16.5351 46.7817 16.4806 46.795 16.4367C46.9729 15.8501 47.1439 15.2614 47.3383 14.6806C47.5322 14.1016 47.6555 13.4777 48.223 13.1038C48.2632 13.0772 48.3149 13.0364 48.3219 12.9954C48.4021 12.5333 48.764 12.2535 48.9892 11.8934C49.2454 11.4846 49.6245 11.2581 49.9179 10.9243C50.0804 10.7394 50.3459 10.6351 50.5785 10.5229C50.8716 10.3814 51.2467 10.3398 51.4658 10.1297C51.9886 9.628 52.6092 9.3968 53.2923 9.28868C53.8745 9.19667 54.461 9.1237 55.0484 9.07711C55.3641 9.05221 55.7313 9.20253 55.9915 9.08649C56.2441 8.97397 56.41 8.99272 56.6285 9.07213C56.8271 9.14421 57.0406 9.17821 57.2356 9.2582C57.6451 9.4264 58.0325 9.66257 58.4542 9.78125C59.0058 9.93655 59.5245 10.0731 59.9571 10.5123C60.4558 11.0187 61.0459 11.4365 61.6019 11.8863C62.112 12.2986 62.342 12.8946 62.5834 13.461C62.8633 14.1186 63.1277 14.8072 63.2352 15.5075C63.3559 16.2952 63.2695 17.1121 63.3195 17.9135C63.3597 18.557 63.1465 19.1258 62.9441 19.713C62.7456 20.2899 62.2275 20.7128 62.1755 21.3554C62.1725 21.3932 62.0953 21.428 62.0483 21.4582C61.9802 21.5019 61.8835 21.523 61.8421 21.5833C61.6735 21.8292 61.4362 22.0695 61.3813 22.3432C61.2779 22.8592 60.8106 22.9535 60.4981 23.1997C59.985 23.6046 59.3077 23.784 58.8801 24.3249C58.8393 24.3767 58.7532 24.4324 58.6957 24.4254C58.2601 24.3703 57.9617 24.9112 57.4929 24.6964C57.4744 24.6879 57.433 24.6941 57.4221 24.7087C57.1064 25.1307 56.7029 24.9566 56.3116 24.8763C56.2417 24.862 56.1495 24.8344 56.0993 24.8649C55.5721 25.1861 54.9776 25.1585 54.399 25.1916C54.0654 25.211 53.7285 25.1743 53.3931 25.1606C53.3722 25.1597 53.352 25.1363 53.3208 25.1166C53.3352 25.0404 53.3502 24.9604 53.3734 24.8371C53.0207 24.7662 52.6835 24.6982 52.2685 24.6147C52.3989 24.7735 52.4673 24.857 52.5443 24.9508C52.0987 24.9971 51.9407 24.876 51.9701 24.5587C51.7971 24.5707 51.5824 24.6542 51.4514 24.5833C50.8922 24.2806 50.3415 23.9554 49.8219 23.59C49.599 23.4335 49.4636 23.1557 49.2794 22.9406C48.9628 22.5702 48.593 22.2356 48.331 21.8309C48.0673 21.4234 47.9157 20.9448 47.6966 20.5062C47.6347 20.3817 47.5093 20.2888 47.3912 20.1569C47.3031 20.5938 47.2355 20.9311 47.1668 21.2722C47.1877 21.2777 47.2499 21.295 47.2564 21.2968C47.1647 21.484 47.0963 21.6516 47.0038 21.8043C46.9374 21.9139 46.8581 22.0469 46.7509 22.0947C46.3197 22.2866 45.9103 22.4891 45.6354 22.9025C45.5726 22.9975 45.4049 23.04 45.2768 23.0713C45.1023 23.1138 44.9191 23.1188 44.7408 23.1457C44.371 23.2014 44.0021 23.2606 43.5806 23.3268C43.6417 23.4297 43.7216 23.5642 43.788 23.6761C43.7457 23.8809 43.5971 24.1974 43.6799 24.2789C43.887 24.4822 43.7043 24.5816 43.6608 24.7222C43.625 24.8391 43.5877 24.9552 43.5507 25.0718C43.5069 25.1726 43.3275 25.2277 43.2922 25.3311C43.2552 25.4398 43.3918 25.5978 43.3821 25.7287C43.378 25.7847 43.193 25.8237 43.0957 25.8805C43.0831 25.8879 43.1048 25.9547 43.111 25.9945H42.5812C42.5817 26.0229 42.582 26.0517 42.5826 26.0801H42.9744C42.8487 26.325 42.7571 26.514 42.6516 26.6954C42.6364 26.7218 42.5547 26.7189 42.5051 26.7145C42.4375 26.7083 42.36 26.6573 42.3065 26.6778C41.6859 26.9155 41.5467 26.914 41.147 26.4235C40.9614 26.1955 40.8903 25.8744 40.7713 25.594C40.7197 25.4721 40.6404 25.3463 40.6395 25.2218C40.6374 24.8813 40.4292 24.792 40.1496 24.7383C39.9783 24.7055 39.8109 24.6393 39.6491 24.5719C39.4693 24.4966 39.3801 24.496 39.301 24.7246C39.0749 25.38 39.1339 26.0596 39.0708 26.7288C39.0602 26.8408 39.0141 26.9492 38.9968 27.0128C39.0532 27.1259 39.138 27.2214 39.1433 27.3216C39.1563 27.5534 39.1145 27.7884 39.1245 28.0208C39.1483 28.5719 39.1918 29.1222 39.2232 29.6734C39.2567 30.2645 39.289 30.8558 39.3151 31.4471C39.3469 32.1518 39.3707 32.8565 39.3997 33.5613C39.405 33.6925 39.4024 33.827 39.4315 33.9533C39.5119 34.3026 39.603 34.6493 39.6993 34.9944C39.744 35.1541 39.8241 35.3039 39.865 35.4641C39.9454 35.7815 40.03 36.1003 40.0758 36.4235C40.1381 36.8636 40.1319 37.3149 40.2162 37.7497C40.3414 38.3926 40.5208 39.0253 40.6747 39.6629C40.6982 39.7607 40.6915 39.8686 40.7282 39.96C40.8888 40.3617 41.0918 40.7547 40.8689 41.1828C41.3673 41.5034 41.5599 42.0182 41.3964 42.1943C41.5532 42.7215 41.693 43.185 41.8219 43.6515C41.8257 43.6647 41.7185 43.7084 41.6357 43.7523C41.7967 43.8698 41.9426 43.9768 42.0886 44.0834C42.0619 44.0562 42.0355 44.0286 42.009 44.0014C41.9189 44.0653 41.8287 44.1294 41.7382 44.1933C42.0669 44.3958 42.2807 44.5153 42.2716 44.6144C42.2196 45.1805 42.6804 45.5154 42.8396 45.9805C42.9122 46.1929 43.0238 46.3919 43.1169 46.5955C42.9644 46.616 42.8346 46.6503 42.706 46.6462C42.6049 46.6427 42.4452 46.6213 42.4143 46.558C42.2328 46.1844 42.0798 45.7967 41.9206 45.4123C41.8669 45.2819 41.8219 45.1477 41.7764 45.0141C41.7232 44.8567 41.6739 44.6982 41.6055 44.4858C41.609 44.4547 41.6381 44.2478 41.6319 44.2466C41.327 44.1945 41.3053 43.8892 41.1426 43.7157C40.8289 43.3822 40.8333 42.9477 40.7669 42.5369C40.7261 42.2831 40.6988 42.0273 40.6647 41.7656C40.6392 41.753 40.4923 41.7269 40.4697 41.6592C40.4312 41.5456 40.4718 41.4055 40.4738 41.3724C40.3323 40.9094 40.1875 40.5261 40.1046 40.13C40.0529 39.8826 40.0949 39.6163 40.0949 39.3696C39.9023 39.345 39.7816 39.3297 39.6118 39.3083C39.6118 38.7712 39.6391 38.249 39.6012 37.7316C39.5795 37.4371 39.4617 37.1467 39.3657 36.8616C39.3254 36.7417 39.1836 36.6468 39.1671 36.5293C39.0705 35.8401 38.9941 35.1477 38.9178 34.4559C38.8834 34.1444 38.894 33.8256 38.8297 33.5214C38.7903 33.3362 38.6893 33.1106 38.5424 33.0115C38.0634 32.6878 37.4701 32.6107 36.9875 32.2336C36.5108 31.8614 35.8538 31.976 35.2629 31.9432C34.7824 31.9162 34.2986 31.8752 33.827 31.7841C33.5335 31.7272 33.0304 31.9294 32.9262 32.2321C32.7778 32.6623 32.4133 32.8946 31.9196 32.8354C31.0135 32.727 30.1221 32.4481 29.1923 32.6473C29.0072 32.6869 28.7872 32.6001 28.6166 32.6623C27.9652 32.8999 27.4265 32.5697 27.3763 31.8699C27.3416 31.3876 27.2244 31.2185 26.7768 31.3035C26.2499 31.4031 25.8455 31.1353 25.4178 30.9771C24.96 30.8074 24.564 30.4792 24.125 30.2513C23.1672 29.7543 22.1918 29.7279 21.1861 30.1405C20.8848 30.2642 20.5323 30.2624 20.2049 30.3248C19.8662 30.3893 19.3966 30.3509 19.2227 30.5572C18.9725 30.8546 18.7125 30.7075 18.4696 30.7843C18.324 30.83 18.1624 30.8244 18.0135 30.8631C17.7703 30.9264 17.533 31.0122 17.2904 31.0785C16.9077 31.1831 16.5047 31.2379 16.1432 31.3905C15.7135 31.5725 15.3396 31.8951 14.9032 32.0493C14.2846 32.2676 13.7483 32.5729 13.3016 33.0499C13.2035 33.1548 13.0651 33.2398 12.9292 33.2893C12.3608 33.4965 11.8836 33.8089 11.6418 34.28C11.3528 34.3445 11.1226 34.3618 10.9229 34.4491C10.7014 34.5464 10.5234 34.753 10.2984 34.8312C9.8335 34.9927 9.35358 35.1163 8.87337 35.2259C8.44838 35.3226 7.99519 35.3253 7.58958 35.4683C7.1358 35.6282 6.76397 35.1738 6.33164 35.3792C6.30726 35.3906 6.26232 35.3592 6.22708 35.3466C5.79973 35.1946 5.37445 35.0358 4.94417 34.8922C4.70685 34.8131 4.46366 34.7729 4.48569 34.4268C4.49127 34.3395 4.37291 34.2396 4.30154 34.1535C4.21137 34.0447 4.10916 33.946 4.01606 33.8393C3.94527 33.7582 3.88506 33.6676 3.81252 33.5882C3.54906 33.2987 3.28238 33.0124 3.01687 32.7244C3.00894 32.7153 2.99866 32.7024 2.99954 32.6919C3.03008 32.3355 2.84064 32.0405 2.64973 31.7914C2.25088 31.271 1.96334 30.716 1.8394 30.0731C1.82148 29.9796 1.76215 29.8935 1.71957 29.805C1.55773 29.4712 1.35214 29.1516 1.24141 28.8017C1.00674 28.0624 0.786461 27.3146 0.627566 26.5562C0.500391 25.95 0.47014 25.3232 0.402881 24.7049C0.380266 24.4972 0.393189 24.2847 0.360881 24.0787C0.318294 23.808 0.150881 23.5191 0.20786 23.2779C0.32358 22.7891 0.14207 22.3625 0.0850908 21.9071C0.0213565 21.3979 -0.0435526 20.8654 0.0386852 20.367C0.159986 19.6301 0.414629 18.9204 0.359412 18.15C0.336797 17.8394 0.440182 17.515 0.514196 17.2035C0.697175 16.4332 0.890433 15.6652 1.09192 14.8995C1.15917 14.6443 1.26109 14.3975 1.35361 14.1496C1.43849 13.9217 1.59474 13.701 1.60943 13.4704C1.63997 12.9805 1.83117 12.567 2.06731 12.1559C2.24618 11.8447 2.50347 11.5297 2.53871 11.1968C2.586 10.7444 2.76399 10.3843 2.98603 10.0183C3.10674 9.81963 3.20983 9.61042 3.32731 9.40969C3.44832 9.20253 3.5661 8.99214 3.70943 8.80079C3.75143 8.74482 3.87537 8.74981 3.97464 8.72343C3.93206 8.66541 3.89006 8.60828 3.89094 8.60974C4.10593 8.32785 4.29684 8.05651 4.51095 7.80481C4.61404 7.68379 4.76089 7.59969 4.82668 7.54695C5.05284 7.37875 5.20087 7.26125 5.35653 7.15488C5.47255 7.07547 5.69576 6.93629 5.70545 6.94888C5.95217 7.27414 5.94218 6.81761 6.07964 6.83021C6.12369 6.83431 6.17039 6.78216 6.21768 6.77776C6.66147 6.73703 7.10555 6.67696 7.55022 6.67374C7.79106 6.67198 8.03073 6.79827 8.27509 6.81644C9.05517 6.87416 9.80794 6.99782 10.4465 7.50006C10.7108 7.70782 10.9922 7.89447 11.2509 8.10838C11.3552 8.19482 11.4022 8.34954 11.5059 8.43656C11.7631 8.65223 12.0519 8.83127 12.3024 9.05367C12.6877 9.39592 13.0463 9.76806 13.4264 10.1162C13.6972 10.3641 13.9815 10.5976 14.2655 10.8306C14.5616 11.0735 14.8585 11.3167 15.1675 11.5426C15.3058 11.6437 15.5282 11.6639 15.6201 11.7888C15.9905 12.291 16.5597 12.5157 17.0519 12.8363C17.5019 13.1293 18.0229 13.3128 18.5099 13.5507C18.9252 13.7538 19.332 13.9741 19.7508 14.1704C19.9567 14.2671 20.1799 14.3278 20.3961 14.4022C20.6011 14.4728 20.8028 14.5733 21.0137 14.5994C21.217 14.6249 21.3571 14.6378 21.3124 14.8957C21.3039 14.9446 21.3806 15.0085 21.4364 15.0932C21.4869 14.9821 21.5192 14.9115 21.5515 14.8409C21.5853 15.1875 22.269 14.7333 22.0972 15.1899C22.2822 15.2924 22.4165 15.3924 22.5671 15.4442C22.766 15.5125 22.9851 15.5219 23.1819 15.5931C23.6412 15.7601 24.0921 15.9503 24.5476 16.1281C24.9006 16.2659 25.2481 16.427 25.6123 16.5269C26.0323 16.6427 26.4646 16.7253 26.8972 16.7804C27.3378 16.8367 27.7845 16.8598 28.2289 16.8616C28.433 16.8624 28.6369 16.7751 28.8422 16.7347C28.8909 16.7253 28.9482 16.7564 28.9964 16.7455C29.0933 16.7241 29.1905 16.6532 29.2804 16.6635C29.4302 16.6808 29.5829 16.7285 29.7192 16.7951C29.95 16.9076 30.1697 17.0438 30.3932 17.1716C30.4658 17.2132 30.5316 17.2689 30.6073 17.3017C31.2127 17.5651 31.8303 17.8042 32.421 18.097C32.6292 18.2001 32.7737 18.4316 32.9914 18.649C33.2804 18.7091 33.4049 19.0607 33.6202 19.3022C33.7576 19.456 33.8431 19.6843 34.009 19.7786C34.3389 19.9662 34.6966 20.1601 35.0635 20.2164C36.1463 20.3822 36.3411 21.2692 36.0688 22.3306C36.0603 22.364 36.0753 22.4038 36.0791 22.441C36.1625 22.4217 36.2427 22.4032 36.364 22.3754C36.2113 22.8782 36.4862 23.4136 35.9907 23.8607C36.1508 23.8065 36.2286 23.7798 36.3537 23.7374C36.3223 23.8464 36.3014 23.902 36.2906 23.9595C36.2171 24.3539 35.8432 24.6621 35.9998 25.1348C36.0618 25.3217 35.5322 25.7847 35.3648 25.7434C35.1915 25.7006 35.0226 25.6411 34.8905 25.6007C34.7624 25.7384 34.6244 25.8375 34.5571 25.9717C34.4781 26.1287 34.4311 26.3174 34.4346 26.4909C34.4355 26.5442 34.6458 26.5996 34.7648 26.6427C35.0555 26.7488 35.3622 26.8214 35.6359 26.9597C35.808 27.0468 35.9117 27.3081 36.082 27.3512C36.4166 27.4365 36.4577 27.7357 36.6307 27.9355C36.7208 28.0401 36.7761 28.1802 36.8789 28.2675C36.9984 28.3692 37.1544 28.4281 37.2912 28.5107C37.6698 28.7387 38.0466 28.9693 38.4243 29.199C38.4472 29.1744 38.4699 29.1498 38.4931 29.1249C38.4375 29.005 38.3823 28.8849 38.3259 28.763C38.4995 28.7416 38.6725 28.7205 38.9483 28.6865C38.5095 28.5462 38.4217 28.341 38.563 27.988C38.6 28.0943 38.6349 28.1942 38.6693 28.2942L38.7971 28.2581C38.7113 27.915 38.6252 27.5722 38.5395 27.2293C38.4975 27.1543 38.5815 27.0008 38.5456 26.9641C38.3133 26.7277 38.412 26.5803 38.6396 26.4754C38.5727 26.2037 38.5122 25.9579 38.4546 25.7252C38.9504 25.4993 38.4725 24.9059 38.8147 24.719C38.7709 24.5086 38.6737 24.3316 38.7186 24.2044C38.9001 23.6881 39.1101 23.1847 39.1157 22.623C39.116 22.5793 39.2867 22.5371 39.378 22.4944C39.6221 22.4712 39.6788 22.5993 39.6485 22.8135Z" fill="#231F20"/>
+</g>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M64.1516 45.2852C64.2183 45.2142 64.302 45.1257 64.3818 45.0411C64.4068 44.8902 63.9096 44.7557 64.3742 44.6159C64.3281 44.4732 64.2884 44.3281 64.2344 44.1887C64.1724 44.0284 64.0185 43.9035 64.2391 43.706C64.3175 43.636 64.2127 43.3439 64.168 43.1584C64.0564 42.6939 63.9942 42.6309 63.6699 42.5369C63.6699 42.2081 63.6843 41.8981 63.6584 41.5916C63.6532 41.5274 63.5001 41.4756 63.4179 41.4202C63.7662 41.0146 63.084 41.0205 63.1177 40.7242C63.1389 41.1242 62.8886 41.4647 63.1747 41.9224C63.4975 42.4387 63.568 43.1165 63.7242 43.7301C63.8121 44.0744 63.8682 44.4289 63.9093 44.7823C63.9903 45.4744 63.4978 45.8823 62.8278 45.7097C62.5685 45.6432 62.3717 45.5325 62.1808 45.3271C61.9268 45.0534 61.5893 44.8579 61.2912 44.6244C61.2368 44.5816 61.1995 44.5174 61.1229 44.4257C61.0304 44.4055 60.8606 44.3683 60.6911 44.3311C60.695 44.3065 60.6988 44.2815 60.7026 44.2569C60.818 44.2839 60.9334 44.3108 61.0489 44.3378C61.0803 44.3114 61.1117 44.2851 61.1431 44.2587C60.3196 43.2885 59.9927 42.1416 59.9187 40.85C59.6737 41.1521 59.6687 41.4342 59.7856 41.9535C59.8843 42.3915 59.9407 42.839 60.0297 43.2794C60.0558 43.4078 60.1093 43.5405 60.1842 43.6477C60.5878 44.225 60.5839 45.0334 61.253 45.4659C61.554 45.6605 61.7855 45.9638 62.0889 46.1531C62.4026 46.3491 62.7553 46.5053 63.1116 46.5999C63.2587 46.6389 63.4722 46.4918 63.6344 46.3942C63.7633 46.3169 63.8602 46.1868 64.0021 46.0502C63.9674 46.0233 63.882 45.9565 63.8027 45.8941C63.8024 45.6423 64.4268 45.7367 64.1516 45.2852Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M68.8272 4.70703C68.6087 4.91684 68.4557 5.1577 68.2381 5.25704C67.3543 5.65965 66.8074 6.447 66.1069 7.05591C65.9651 7.17927 65.926 7.41984 65.8335 7.6191C66.0168 7.69528 66.1495 7.75066 66.2482 7.79169C66.7825 7.22439 67.295 6.67585 67.8137 6.13318C67.8889 6.05465 67.9875 5.9934 68.0853 5.9433C68.5641 5.69862 68.8155 5.3007 68.8272 4.70703Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16.8889 18.2885C16.8131 18.1511 16.7421 18.0213 16.6707 17.8918C16.7638 18.3369 16.7191 18.8271 17.0319 19.1969C17.0663 19.1872 17.1007 19.1782 17.135 19.1685C17.081 18.8435 17.0269 18.5183 16.9653 18.1482C16.9397 18.1956 16.9183 18.2346 16.8889 18.2885ZM16.955 23.1398C17.375 23.1425 17.565 22.9538 17.4928 22.516C17.4188 22.5069 17.3283 22.4958 17.18 22.4776C17.3168 22.3964 17.4132 22.3393 17.5515 22.257H17.3418C17.3089 21.8936 17.7342 21.5086 17.345 21.2047C17.345 20.7496 17.4173 20.3042 17.3151 19.9031C17.2631 19.6994 17.1791 19.3094 16.7479 19.2552C17.0566 20.5908 16.9949 21.8664 16.955 23.1398ZM13.9871 30.6872C13.9677 30.442 14.2059 30.1809 14.3102 29.9195C14.4185 29.6473 14.5037 29.366 14.6015 29.0891C14.6708 28.8922 14.7446 28.6967 14.8153 28.5004C14.9478 28.1344 15.0897 27.7714 15.2042 27.3998C15.2315 27.3113 15.1716 27.1935 15.1449 27.091C15.1299 27.0338 15.0744 26.9359 15.0823 26.9313C15.4221 26.7258 15.0468 26.4264 15.2409 26.2069C15.1969 26.1958 15.1531 26.1843 15.109 26.1729C15.0594 26.3461 15.0042 26.5178 14.9604 26.6927C14.7868 27.3843 14.6197 28.0779 14.4415 28.7685C14.4091 28.8948 14.3269 29.0076 14.284 29.1322C14.1986 29.3801 14.1237 29.6312 14.0473 29.882C14.03 29.9391 14.0429 30.037 14.0106 30.0528C13.637 30.2371 13.7251 30.631 13.5456 31.0172C13.7918 30.9398 14.0191 31.0863 13.9871 30.6872ZM15.6157 17.5967C15.5132 17.0171 15.4048 16.4387 15.2973 15.86C15.2556 15.6352 15.2306 15.4043 15.161 15.1881C15.065 14.8895 14.9237 14.6055 14.8227 14.3084C14.7819 14.1871 14.8168 14.0409 14.778 13.9187C14.7481 13.8258 14.6702 13.7273 14.5863 13.6802C14.5337 13.6506 14.43 13.7112 14.3495 13.7317C14.3812 13.8237 14.4262 13.9137 14.4415 14.0083C14.462 14.1326 14.4344 14.2686 14.4711 14.3861C14.645 14.9478 14.8703 15.496 15.0057 16.0662C15.1038 16.4812 15.0747 16.9248 15.134 17.3512C15.1584 17.5258 15.2668 17.6887 15.3367 17.8569C15.3035 18.0776 15.27 18.2982 15.2365 18.5189C15.2682 18.5288 15.3005 18.5388 15.3326 18.5487C15.4166 18.406 15.5009 18.2633 15.5531 18.1751C15.4662 18.048 15.3983 17.9486 15.3302 17.8493C15.5572 17.9152 15.6562 17.8253 15.6157 17.5967ZM16.8792 23.689C16.8522 23.7168 16.8249 23.7446 16.7976 23.7725C16.9664 23.9383 17.0766 24.079 16.8169 24.2363C16.7658 24.2674 16.8487 24.5191 16.8777 24.7248C16.9709 24.6137 17.0208 24.554 17.071 24.4942C17.0966 24.5097 17.1221 24.5255 17.1477 24.5411C17.098 24.6117 17.0634 24.7046 16.9961 24.7494C16.6651 24.9706 16.6472 25.0852 16.9471 25.3917C17.2936 24.8921 17.3142 24.3515 17.2223 23.7898C17.4452 23.6945 17.4983 23.5284 17.3359 23.3611C17.2701 23.2931 17.101 23.3247 16.9253 23.3054C17.0689 23.5354 17.1512 23.6673 17.2334 23.7991C17.1154 23.7625 16.9973 23.7259 16.8792 23.689ZM5.227 10.9105C5.01789 10.8853 4.80847 10.8601 4.49127 10.8223C4.33326 11.0696 4.11591 11.411 3.88829 11.7679C3.93352 11.825 3.98874 11.8948 4.03926 11.9592C3.86949 12.1309 3.7012 12.3012 3.53261 12.472C3.84688 12.7853 3.83865 12.8125 3.49091 12.9951C3.169 13.6344 3.27533 14.2888 2.77749 14.7535C2.84769 14.808 2.91994 14.864 3.0104 14.934C2.92347 15.0076 2.86619 15.0791 2.79159 15.1145C2.39391 15.3047 2.20506 15.5552 2.36131 15.925C2.5484 16.3689 2.44414 16.6631 2.13986 16.986C2.0447 17.0871 2.03618 17.3365 2.08288 17.4889C2.17363 17.7845 2.22562 18.0248 1.90225 18.1036C1.87464 18.3501 1.85643 18.5531 1.82735 18.7547C1.81091 18.869 1.74042 18.9862 1.75686 19.0923C1.81561 19.4662 1.92575 19.8331 1.96158 20.2081C1.97215 20.3204 1.81296 20.4584 1.71252 20.5671C1.66699 20.616 1.57477 20.6222 1.46521 20.6614C1.96363 20.8865 2.03295 21.1722 1.69989 21.617C1.5592 21.8054 1.59856 21.9021 1.73102 22.0621C1.80914 22.157 1.86142 22.3683 1.80826 22.4586C1.5965 22.8178 1.58534 23.1079 1.84233 23.4182C2.01973 23.6324 1.89579 23.7464 1.73866 23.807C1.79975 24.1065 1.96892 24.4195 1.89021 24.6474C1.66523 25.3 1.88463 25.8547 2.12312 26.4237C2.13927 26.4624 2.19507 26.4993 2.23854 26.509C2.502 26.567 2.60127 26.6722 2.38363 26.9081C2.35544 26.9383 2.3713 27.028 2.39156 27.0807C2.51845 27.4145 2.65238 27.7456 2.77456 28.0535C2.6838 28.1757 2.59128 28.3006 2.47263 28.4605C2.3851 28.1403 1.87728 28.1242 1.9604 27.6662C2.01533 27.3646 1.62147 27.0423 1.97127 26.7721C1.82383 26.6042 1.59973 26.4595 1.54393 26.2664C1.33921 25.559 1.18619 24.8364 1.02407 24.1174C0.982655 23.9328 0.946823 23.7364 0.96562 23.5515C0.997634 23.2412 1.11306 22.9368 1.12363 22.6276C1.13479 22.2895 1.0834 21.9458 1.02759 21.61C0.985592 21.3565 0.893662 21.1115 0.812012 20.8203C0.883089 20.7045 0.98383 20.5407 1.09279 20.3631C0.999396 20.3189 0.881914 20.2878 0.882501 20.26C0.893368 19.8512 0.910403 19.4419 0.947117 19.0346C0.961508 18.8749 1.1486 18.7125 0.876627 18.5819C0.839326 18.5637 0.898361 18.3354 0.922152 18.2059C0.944767 18.082 0.980012 17.9601 1.00997 17.8376C1.02818 17.7224 1.40853 17.9249 1.22496 17.5443C1.46815 17.4241 1.21791 17.2011 1.32218 17.0628C1.50105 16.8249 1.5498 16.5729 1.55245 16.274C1.5545 16.0349 1.70547 15.8002 1.76891 15.5579C1.85232 15.239 2.15073 14.9044 1.68872 14.6102C1.80503 14.5261 1.93074 14.4804 1.96775 14.396C2.00563 14.3099 1.91605 14.1689 1.95277 14.081C2.10902 13.703 2.329 13.3479 2.45559 12.9614C2.70172 12.2106 3.01863 11.4942 3.33319 10.7707C3.58431 10.1926 3.85393 9.66105 4.28685 9.20277C4.42049 9.06153 4.44751 8.81978 4.58114 8.67884C4.92155 8.32135 5.27987 7.97705 5.66081 7.66293C5.86053 7.49825 6.11047 7.36492 6.35983 7.2943C6.81126 7.16625 7.27942 7.09798 7.73996 7.00157C8.06538 6.93359 8.61256 7.16596 8.70566 7.36697C8.9744 7.43847 9.22464 7.45576 9.42172 7.56682C10.1295 7.96591 10.8297 8.37761 11.3658 9.01699C11.5405 9.22562 11.8263 9.34107 12.0046 9.54795C12.2636 9.84859 12.4692 10.1952 12.7036 10.5176C12.7374 10.5639 12.8137 10.5768 12.8569 10.6189C13.0287 10.7877 13.2123 10.9492 13.3597 11.1379C13.526 11.3509 13.6496 11.5968 13.8088 11.8162C13.8943 11.9343 14.0147 12.0275 14.1193 12.1318C14.1527 12.1222 14.1859 12.1125 14.2191 12.1031C14.1028 11.7535 13.9865 11.4042 13.8626 11.0315C13.8999 11.0441 13.9836 11.0476 14.0264 11.091C14.1795 11.2457 14.3105 11.4215 14.4644 11.5751C14.7581 11.8678 15.0618 12.1506 15.3605 12.4383C15.4022 12.4782 15.4368 12.5564 15.4791 12.5596C15.7558 12.5813 15.8744 12.722 15.8768 12.9965C15.8774 13.066 15.9505 13.1603 16.0163 13.199C16.3153 13.376 16.6116 13.5671 16.9318 13.696C17.3077 13.8472 17.7163 13.9163 18.0952 14.062C18.8183 14.3398 19.5349 14.6366 20.2445 14.9472C20.5097 15.0632 20.7423 15.2516 21.0008 15.3856C21.2049 15.491 21.4214 15.5778 21.6405 15.6478C22.0017 15.763 22.3748 15.8438 22.7334 15.9666C22.961 16.0446 23.1663 16.1867 23.3916 16.2746C23.702 16.3959 24.0918 16.4167 24.3191 16.6221C24.5696 16.8483 24.8398 16.8688 25.1142 16.9629C25.5941 17.1273 26.0637 17.3216 26.5325 17.5158C26.5985 17.5434 26.6358 17.6415 26.6849 17.7081C26.8579 17.9431 26.9807 18.2815 27.2133 18.394C27.7684 18.6627 27.9613 19.1418 28.0991 19.6537C28.3385 20.5428 28.423 21.459 28.3808 22.3771C28.3402 23.2655 28.2574 24.1528 28.164 25.0374C28.1335 25.329 28.0327 25.6182 27.9299 25.8957C27.6844 26.5577 27.4377 27.2208 27.1478 27.864C27.0776 28.0193 26.8385 28.0995 26.6767 28.2138C26.5192 28.3246 26.3615 28.4362 26.202 28.5449C26.0687 28.6361 25.9424 28.7726 25.7953 28.8016C25.4584 28.8678 25.162 29.0533 24.8022 29.0659C24.3411 29.0823 23.8838 29.1913 23.4224 29.2297C23.156 29.2517 22.8805 29.1799 22.6162 29.211C22.3316 29.2444 22.057 29.3557 21.7747 29.4199C20.7227 29.6602 19.6694 29.8964 18.6156 30.1308C18.4003 30.1788 18.1818 30.2143 17.9642 30.2515C17.5756 30.318 17.1853 30.3752 16.7982 30.4487C16.5726 30.4915 16.3485 30.5475 16.1303 30.6178C15.9699 30.6694 15.8186 30.7511 15.6656 30.8244C15.3126 30.9937 14.9413 31.1347 14.6139 31.3442C14.1466 31.6431 13.7134 31.9947 13.2616 32.3179C13.2202 32.3475 13.1489 32.3352 13.039 32.3487C13.2901 31.9434 13.5136 31.5824 13.7427 31.2123C13.6255 31.1605 13.5063 31.1077 13.3806 31.052C12.5159 32.3305 11.5725 33.5011 10.0529 34.0482C10.0379 33.9313 10.0285 33.8577 10.0168 33.7649C9.85552 33.8747 9.726 33.9635 9.53333 34.0951C9.56417 33.4812 9.58472 33.4296 9.85435 33.3907C9.9501 33.3766 10.0552 33.4258 10.156 33.446C10.3451 33.4106 10.5396 33.289 10.7275 33.1583C10.818 33.0953 10.8882 32.9664 10.9816 32.9508C11.2729 32.9016 11.4856 32.7949 11.5217 32.4709C11.4245 32.4753 11.3323 32.4794 11.2401 32.4835C11.4204 32.3173 11.6101 32.2042 11.8151 32.1597C12.0472 32.1093 12.5042 31.5388 12.4255 31.3111C12.2721 30.8686 12.6031 30.6017 12.7761 30.2782C12.844 30.151 12.9568 30.0473 13.0214 29.9189C13.1362 29.691 13.2975 29.4565 13.3139 29.2163C13.3321 28.9517 13.61 28.6267 13.1897 28.3849C13.5515 28.5282 13.6943 28.3562 13.7601 28.0738C13.8678 27.6105 13.8678 27.134 14.0549 26.6749C14.1953 26.3303 14.1806 25.9177 14.2068 25.5335C14.2391 25.0626 14.2417 24.5897 14.2576 24.098C14.3113 24.1083 14.4036 24.1259 14.5451 24.1528C14.4614 23.9108 14.3968 23.7238 14.3322 23.5369C14.3025 23.5468 14.2729 23.5568 14.2435 23.5668C14.2755 23.4531 14.3075 23.3397 14.3492 23.1929C14.121 23.2093 13.926 23.2233 13.7374 23.2368C13.7674 23.0525 13.8614 22.8574 13.8006 22.773C13.6241 22.5268 13.7621 22.3243 13.8094 22.1025C13.847 21.927 13.9521 21.702 13.8831 21.5801C13.6934 21.2451 13.8488 20.97 13.9422 20.6781C14.0197 20.4346 13.9219 20.2667 13.7007 20.224C13.5016 20.1859 13.2652 20.1923 13.2472 20.5053C13.2267 20.8639 13.1685 21.2232 13.1803 21.5801C13.1888 21.847 13.2816 22.111 13.3392 22.3862C13.2983 22.4826 13.2 22.6168 13.19 22.7571C13.1582 23.1967 13.1917 23.6418 13.1412 24.0781C13.0748 24.653 12.9532 25.2215 12.8525 25.8072C12.7106 25.7709 12.5653 25.7463 12.4293 25.6965C11.9085 25.5057 11.3951 25.295 10.8712 25.1148C10.4497 24.9701 9.97036 24.9528 9.70426 24.5077C9.66549 24.4426 9.57327 24.4095 9.47517 24.3403H9.852C9.98857 24.0435 10.166 23.7921 10.218 23.517C10.3155 23.003 10.351 22.4761 10.3889 21.9525C10.4015 21.7779 10.3428 21.5979 10.3093 21.3694C10.4876 21.2217 10.546 20.5647 10.398 20.3374C10.1783 19.9998 10.0144 19.6262 9.81499 19.2453C9.8567 19.2224 9.95773 19.1667 10.0591 19.1108C10.0294 19.0882 9.99973 19.065 9.97036 19.0425C10.0479 18.9203 10.1081 18.7096 10.2059 18.6906C10.7822 18.5778 11.3669 18.5077 11.9496 18.428C12.1911 18.3946 12.4346 18.3753 12.6769 18.3451C12.9362 18.3129 13.1503 18.3167 13.1577 18.6747C13.1647 19.0053 13.1982 19.3373 13.2487 19.664C13.2816 19.8761 13.3747 20.1067 13.6449 20.0534C13.7586 20.0311 13.9022 19.8671 13.9257 19.7466C13.9627 19.5576 13.9204 19.3496 13.8908 19.1524C13.8649 18.9792 13.8103 18.8101 13.7733 18.6595C13.7971 18.513 13.857 18.3682 13.8338 18.2384C13.7927 18.0075 13.5915 17.7482 13.6531 17.5671C13.7947 17.1507 13.7477 16.8606 13.4616 16.6948C13.439 16.3446 13.4461 16.0586 13.3959 15.7826C13.3448 15.5001 13.224 15.2305 13.1603 14.9495C13.1212 14.7772 13.1318 14.5935 13.1192 14.3978C13.0049 14.3532 12.8554 14.2946 12.807 14.2759C12.8358 14.0866 12.8983 13.9565 12.8619 13.8665C12.7447 13.5764 12.5749 13.3077 12.4551 13.0188C12.2754 12.586 12.1814 12.1057 11.9411 11.7128C11.6266 11.1983 11.2054 10.7488 10.8295 10.2717C10.6447 10.0373 10.4579 9.80464 10.2632 9.55937C10.2115 9.5752 10.1354 9.59835 10.0176 9.6338C10.0711 9.52392 10.1052 9.45389 10.1425 9.37711C10.0159 9.3062 9.9034 9.25082 9.79972 9.18225C9.69986 9.11632 9.60117 9.04512 9.5157 8.96161C9.07074 8.52793 9.07221 8.52647 8.58877 8.79429C8.47657 8.49336 8.2372 8.50977 8.00635 8.60998C7.73907 8.72572 7.5652 8.6639 7.48238 8.46962C7.23948 8.57921 7.0051 8.68529 6.76485 8.7937C6.76896 8.87194 6.77396 8.96717 6.77513 8.99208H6.1234V9.32261C5.74481 9.2309 5.05284 10.1938 5.15945 10.6216H4.92008C4.96531 10.6951 5.00173 10.7769 5.059 10.8396C5.09631 10.8803 5.16386 10.8938 5.2179 10.9193L5.227 10.9105Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.227 10.9104C5.11187 11.0323 4.99703 11.1542 4.86574 11.2931C4.8769 11.2996 4.9283 11.3289 5.01465 11.3781C4.86956 11.4883 4.72946 11.5947 4.6299 11.6703C4.58672 11.8792 4.60757 12.1104 4.50184 12.2308C4.14381 12.6381 4.06128 13.1245 3.97464 13.6259C3.93557 13.8521 3.89974 14.1557 3.5144 14.0338C3.49032 14.0262 3.44362 14.0906 3.36578 14.1566C3.92383 14.2852 3.57813 14.7318 3.51058 14.8038C3.16694 15.1687 3.28825 15.6313 3.1599 16.0325C3.06738 16.3226 3.06297 16.642 2.95724 16.9253C2.89057 17.1044 2.71023 17.2409 2.57601 17.4021C2.6791 17.4396 2.7772 17.4748 2.97457 17.5463C2.78865 17.5817 2.70318 17.5978 2.57101 17.6227C2.61478 17.8407 2.70788 18.062 2.69143 18.275C2.66618 18.6044 2.53783 18.9255 2.50493 19.2555C2.46528 19.6537 2.47967 20.0572 2.47027 20.4583C2.46734 20.5679 2.48496 20.6837 2.455 20.7853C2.31373 21.2656 2.36454 21.7292 2.48584 22.2097C2.62447 22.7597 2.70348 23.3253 2.78983 23.887C2.79952 23.9515 2.68967 24.0344 2.6744 24.0552C2.73666 24.2641 2.81655 24.4604 2.85297 24.6647C3.00394 25.5168 3.14169 26.3712 3.28472 27.2245C3.3837 27.8173 3.47622 28.411 3.58753 29.0011C3.61015 29.121 3.70178 29.2291 3.76669 29.3393C4.13852 29.9719 4.50243 30.6095 4.89041 31.2322C5.02464 31.4476 5.23111 31.6172 5.38296 31.8238C5.46285 31.9325 5.49574 32.0761 5.59531 32.1485C5.86875 32.4582 6.17538 32.7451 6.4077 33.0826C6.74252 33.5705 7.06032 33.6734 7.60778 33.4902C7.93644 33.3804 8.30387 33.3827 8.65485 33.3417C9.03138 33.2974 9.38118 33.2415 9.55329 32.8177C9.61762 32.6598 9.78356 32.5077 9.94128 32.4283C10.586 32.1039 10.7907 31.4552 11.1085 30.8955C11.3763 30.4237 11.6242 29.9356 11.8266 29.433C12.0436 28.8936 12.1964 28.3283 12.3785 27.7748C12.4134 27.6684 12.4542 27.5638 12.4918 27.4584C12.7588 26.71 12.708 26.7557 12.0175 26.3853C11.3734 26.0395 10.7202 25.7916 10.015 25.639C9.86815 25.607 9.72981 25.5112 9.60205 25.4236C9.28397 25.205 9.01904 25.2205 8.85339 25.5487C8.37524 25.2188 7.91618 24.9017 7.40748 24.5507C7.54963 24.522 7.65037 24.5015 7.8172 24.4681C7.62922 24.3347 7.49353 24.2304 7.34962 24.1384C7.18837 24.0355 7.18103 23.7756 7.34227 23.628C6.91581 23.4252 6.6224 22.5373 6.85913 22.2352C6.80009 22.1148 6.74634 22.0052 6.6923 21.8956C6.81272 21.8487 6.93138 21.7963 7.05415 21.7576C7.13433 21.7321 7.22068 21.7271 7.38897 21.6987C7.10173 21.6155 6.88732 21.5979 6.73665 21.4912C6.66146 21.4379 6.70258 21.2214 6.68143 20.9591C6.94665 21.1123 7.09967 21.2008 7.2756 21.3025C7.28764 21.2046 7.30468 21.0652 7.31643 20.9682C7.11436 20.9066 6.93637 20.8527 6.75868 20.7985C6.83328 20.5934 6.90788 20.3886 6.98219 20.1835C7.01597 20.1896 7.04945 20.1955 7.08293 20.2016C7.02478 20.1357 6.96633 20.0701 6.90612 20.0024C7.29822 19.6068 7.54376 19.4166 7.70911 19.4072C7.55991 19.2631 7.18925 19.3721 7.29264 19.0155C7.38574 18.6937 7.60073 18.5528 7.92499 18.5414C8.0269 18.5376 8.12794 18.51 8.22574 18.4271C8.11296 18.4066 8.00018 18.3864 7.88739 18.3658C7.88504 18.3371 7.88269 18.3084 7.88034 18.2797C8.05392 18.253 8.23015 18.1927 8.4005 18.2056C9.19527 18.2665 9.95978 18.1848 10.7093 17.887C10.986 17.7769 11.3199 17.8191 11.6163 17.7452C11.9855 17.6526 12.3473 17.5234 12.7015 17.3825C12.7711 17.3549 12.8034 17.2058 12.8311 17.1064C12.8822 16.9215 12.9174 16.7322 12.9518 16.579C12.8666 16.3704 12.7538 16.1726 12.7053 15.9598C12.5852 15.4344 12.498 14.902 12.3893 14.3737C12.3729 14.2937 12.3265 14.2087 12.2695 14.1495C11.8233 13.686 11.7188 13.056 11.4518 12.5057C11.3687 12.334 11.2832 12.1596 11.171 12.0064C10.7137 11.3825 10.2441 10.7675 9.78268 10.1462C9.65962 9.98069 9.5859 9.74949 9.42583 9.64693C9.18734 9.49368 8.90038 9.38409 8.6199 9.33311C7.94701 9.21091 7.36577 9.4805 6.81184 9.83183C6.53899 10.0047 6.24411 10.1439 5.97507 10.3218C5.85348 10.4018 5.78299 10.5553 5.66638 10.6467C5.52981 10.754 5.36827 10.8299 5.2176 10.9192L5.227 10.9104Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M55.7599 17.1534C56.0195 16.9828 56.3044 16.8764 56.3737 16.5729C56.4759 16.1269 56.5611 15.6654 56.5549 15.2118C56.5517 14.9733 56.3411 14.7362 56.2201 14.5006C56.1305 14.326 56.0462 14.1463 55.9384 13.9828C55.5657 13.4167 54.9583 13.4123 54.3736 13.3098C53.8628 13.2204 53.3726 13.2271 52.8572 13.2515C52.3805 13.2743 52.1949 13.5723 51.9185 13.8117C51.8542 13.8677 51.8198 13.9565 51.7587 14.0168C51.0118 14.7573 51.2289 15.4849 51.6468 16.2547C51.8621 16.6517 52.1737 16.9978 52.4545 17.357C52.5097 17.4276 52.619 17.4733 52.7115 17.495C53.1259 17.5908 53.5436 17.6735 53.7914 17.7256C54.6206 17.7022 55.1962 17.5234 55.7599 17.1534ZM49.3541 21.6278C49.0096 20.7816 48.6789 19.9289 48.3047 19.0958C48.1032 18.6472 47.8979 18.2132 47.873 17.7104C47.8633 17.51 47.7244 17.3051 47.749 17.1158C47.8098 16.6482 47.9314 16.1887 48.028 15.7257C48.0457 15.6414 48.0536 15.5546 48.0759 15.472C48.2098 14.9777 48.246 14.423 48.5038 14.0036C48.9776 13.2339 49.5818 12.5441 50.1333 11.8221C50.1545 11.7943 50.1962 11.7828 50.2258 11.7606C50.5527 11.5132 50.8832 11.2703 51.203 11.0145C51.2897 10.9451 51.327 10.8082 51.4177 10.7508C52.3811 10.141 53.4657 9.96549 54.5762 9.94117C55.0655 9.93062 55.559 10.0124 56.0471 10.0789C56.362 10.122 56.6751 10.1976 56.9802 10.2875C57.3946 10.4097 57.7988 10.5653 58.212 10.6922C58.279 10.7127 58.3686 10.655 58.4487 10.6386C58.5045 10.6268 58.5827 10.5964 58.6162 10.621C58.9369 10.858 59.2852 11.0719 59.5581 11.3571C59.9995 11.8183 60.3957 12.3235 60.799 12.8195C60.9538 13.0097 61.0727 13.2286 61.2131 13.4308C61.5238 13.8779 61.8725 14.3031 62.1383 14.7752C62.3151 15.0893 62.4026 15.4623 62.4793 15.8201C62.541 16.1067 62.5504 16.41 62.541 16.7047C62.5245 17.2445 62.8585 17.8302 62.3477 18.3137C62.3221 18.338 62.3324 18.4116 62.3418 18.4591C62.4399 18.9505 62.3404 19.426 62.1342 19.858C61.9198 20.3072 61.6281 20.7206 61.3576 21.1414C61.1923 21.3984 61.0345 21.6729 60.8169 21.8804C60.3919 22.2857 59.9346 22.6593 59.475 23.0261C59.2746 23.1858 59.0467 23.3235 58.8109 23.4226C58.5377 23.5372 58.2449 23.6116 57.955 23.6793C57.3538 23.8199 56.8589 24.2533 56.1995 24.2527C55.539 24.2518 54.8688 24.4142 54.2217 24.3397C53.7374 24.2841 53.2731 24.0851 52.7638 24.1938C52.6845 24.2108 52.574 24.0957 52.4812 24.0368C52.4013 23.9861 52.3335 23.9072 52.2477 23.8771C51.9599 23.7766 51.633 23.7766 51.411 23.5172C51.2206 23.2945 50.8911 23.2963 50.6958 23.0466C50.4232 22.6979 50.0949 22.3923 49.7835 22.075C49.6528 21.9419 49.5051 21.8253 49.3347 21.6744C49.3262 21.692 49.3635 21.6504 49.3541 21.6278Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M31.5522 21.0768C31.5076 21.0762 31.4626 21.0759 31.4177 21.0754C31.4703 21.0053 31.5228 20.9356 31.5839 20.8544C31.5158 20.8409 31.4559 20.8292 31.3807 20.8143C31.6917 20.5007 31.1152 19.0517 30.5477 18.7013C30.8731 19.7699 31.1918 20.816 31.5105 21.8624C31.5654 21.8404 31.6203 21.8185 31.675 21.7965C31.6341 21.5565 31.5933 21.3165 31.5522 21.0768ZM34.1201 24.3414C34.0223 24.8205 33.9685 25.3098 33.8452 25.7816C33.7142 26.283 33.5274 26.7706 33.3544 27.2602C33.219 27.6438 33.0107 28.0106 32.935 28.4042C32.7767 29.2211 32.6888 30.0518 32.5637 30.8755C32.522 31.1501 32.4571 31.4214 32.3981 31.6933C32.3854 31.7514 32.3652 31.8431 32.3276 31.8554C31.9919 31.9635 31.6544 32.1273 31.3119 32.1405C30.6584 32.1654 30.0014 32.0948 29.3453 32.0787C29.0413 32.0713 28.7358 32.1135 28.4322 32.1021C28.3223 32.098 28.1211 32.0001 28.1229 31.9506C28.1346 31.6157 28.0759 31.194 28.2539 30.9664C28.6342 30.4799 29.1573 30.1069 29.5961 29.6618C29.8631 29.3911 30.2144 29.1584 30.2511 28.58C30.0044 28.7156 29.8044 28.7778 29.6704 28.9082C29.1893 29.3755 28.7529 29.891 28.2545 30.3384C27.9769 30.5878 27.6268 30.8644 27.2805 30.9101C26.3938 31.0273 25.5703 30.7267 24.819 30.2546C24.7065 30.184 24.6375 30.0445 24.4941 29.8719C24.9655 29.8259 25.3526 29.8095 25.7312 29.7447C26.0487 29.6902 26.3736 29.6138 26.6596 29.4746C26.7639 29.4239 26.7654 29.1634 26.8138 28.9984C27.0224 28.9348 27.3155 28.8106 27.3225 28.672C27.344 28.2339 27.8315 28.1149 27.8844 27.7284C28.5664 27.4633 28.4043 26.7149 28.7335 26.2475C28.7593 26.2109 28.7585 26.1511 28.7599 26.1019C28.7711 25.7555 28.757 25.4136 28.9359 25.086C29.0639 24.8513 29.0868 24.56 29.2119 24.3232C29.3203 24.1181 29.4592 23.9795 29.3717 23.6926C29.2924 23.4333 29.3708 23.1215 29.4017 22.835C29.4249 22.6202 29.5891 22.4341 29.3858 22.1915C29.2375 22.0142 29.1744 21.7478 29.1256 21.5105C29.0528 21.1545 29.0187 20.7897 28.9837 20.4269C28.9729 20.3153 29.0539 20.1857 29.0225 20.0867C28.8043 19.396 28.5684 18.7107 28.3358 18.0244C28.2694 17.8281 28.315 17.7185 28.5176 17.6136C28.9884 17.3698 29.4475 17.3985 29.923 17.5726C30.5069 17.7862 30.9436 18.2908 31.5968 18.3787C32.0512 18.4396 32.3631 18.7696 32.6521 19.0933C32.8574 19.324 33.2069 19.4166 33.2387 19.8271C33.2583 20.082 33.491 20.3135 33.5576 20.5734C33.7145 21.1832 33.7635 21.8284 33.9809 22.413C34.1671 22.9135 34.2381 23.3797 34.1327 23.8922C34.1168 23.9684 34.1944 24.0636 34.2467 24.1955C34.2246 24.2195 34.1342 24.2725 34.1201 24.3414Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M43.3729 17.3098C43.4557 17.3517 43.5386 17.3939 43.627 17.4385C43.5961 17.4757 43.5844 17.505 43.5682 17.5073C43.0857 17.5853 42.5993 17.6427 42.1214 17.7415C41.7053 17.8273 41.3337 17.8704 40.9058 17.6764C40.5166 17.5 40.0417 17.5114 39.5583 17.4326C39.5627 17.4077 39.5791 17.311 39.5973 17.2014C39.57 17.2 39.538 17.1979 39.506 17.1961C39.2883 17.1833 39.0669 17.1912 38.8537 17.1525C38.5511 17.098 38.2833 17.0514 38.033 17.3239C37.6973 17.6899 37.5252 18.0779 37.5238 18.5895C37.5232 18.8421 37.4168 19.0911 37.5561 19.3417C37.6609 19.5298 37.7869 19.7132 37.8524 19.9151C38.0189 20.4299 38.4771 20.6755 38.8598 20.9586C39.0372 21.0895 39.3941 21.0081 39.6646 20.9788C40.2811 20.9123 40.7936 21.0611 41.2065 21.5528C41.3281 21.6976 41.5502 21.7594 41.7282 21.8555C41.9426 21.9718 42.1479 22.1289 42.3775 22.1872C42.646 22.2552 42.9388 22.2197 43.2167 22.2593C43.4713 22.295 43.7727 22.3032 43.9586 22.4459C44.1929 22.6265 44.3651 22.5664 44.5751 22.484C44.6212 22.4662 44.6658 22.4199 44.709 22.4228C45.257 22.4577 45.6471 22.1066 45.9978 21.7949C46.2562 21.5651 46.3996 21.171 46.5129 20.8238C46.6151 20.5102 46.6868 20.1457 46.6272 19.831C46.5514 19.4304 46.3502 19.0469 46.1643 18.675C46.0216 18.389 45.8321 18.1224 45.6371 17.8669C45.5461 17.7473 45.4062 17.6374 45.2659 17.5873C44.8588 17.4429 44.4447 17.3119 44.0241 17.2146C43.8185 17.1671 43.5929 17.2064 43.3761 17.2064C43.375 17.241 43.3738 17.2753 43.3729 17.3098Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M38.1395 16.3703C38.1207 16.1098 38.0819 15.8487 38.0887 15.5888C38.096 15.3069 38.1398 15.0253 38.1812 14.7455C38.1912 14.6784 38.2473 14.5685 38.2916 14.5635C38.8937 14.4979 39.0224 13.8708 39.4497 13.6012C39.5085 13.564 39.5569 13.4904 39.581 13.4231C39.7587 12.9308 39.9273 12.435 40.1035 11.9421C40.1323 11.8615 40.1702 11.7745 40.2298 11.7168C40.431 11.5216 40.4836 11.2963 40.532 11.0173C40.5922 10.6683 40.8184 10.344 40.9929 10.0193C41.2031 9.62869 41.083 9.3808 40.6407 9.42563C40.1173 9.47867 39.5878 9.56101 39.0885 9.71836C38.8591 9.79074 38.6928 10.0694 38.5034 10.2599C38.3833 10.3809 38.2843 10.5242 38.1568 10.6361C37.8197 10.9318 37.4146 11.1427 37.3785 11.6963C37.3621 11.9532 37.1083 12.1926 36.9726 12.4455C36.9089 12.5642 36.8601 12.6934 36.8219 12.8232C36.6874 13.2804 36.5182 13.7331 36.443 14.2007C36.3773 14.6101 36.4483 15.0397 36.4075 15.4555C36.3599 15.9384 36.4107 16.3846 36.6281 16.8251C36.8633 17.3009 36.962 17.3598 37.5165 17.2022C37.7415 17.1383 38.1548 16.5903 38.1395 16.3703Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M68.9769 62.3787C69.399 62.3004 69.9129 62.3872 70.2845 62.0053C70.4998 61.7838 70.6919 61.5397 70.8939 61.3053C71.1092 61.0559 71.3092 60.7908 71.5454 60.5625C71.657 60.4547 71.8373 60.4177 71.9798 60.3518C71.9131 59.8546 71.8394 59.3224 71.7709 58.7897C71.7154 58.3554 71.6714 58.3654 71.2399 58.448C70.9891 58.4961 70.7723 58.5415 70.5882 58.7182C70.355 58.9421 70.1676 58.5951 69.9444 58.6614C69.8833 58.6792 69.8195 58.6877 69.7573 58.7006C69.7902 58.7654 69.8231 58.8301 69.8586 58.8999C69.6689 58.9579 69.4495 59.0523 69.2207 59.0898C68.6744 59.1794 68.6101 59.5847 68.5516 60.0178C68.5381 60.1168 68.4397 60.2041 68.3745 60.3064C68.4054 60.3685 68.4949 60.4734 68.5058 60.5859C68.5316 60.8508 68.4847 61.1257 68.5334 61.3838C68.5739 61.5986 68.7085 61.7958 68.8019 62.0004C68.8582 62.1234 68.9155 62.2462 68.9769 62.3787Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M41.6498 14.2742C41.0165 14.3287 40.4271 14.3319 39.8611 14.4485C39.5821 14.5062 39.3186 14.7442 39.101 14.9549C38.9333 15.1175 39.1371 15.5942 39.3448 15.7551C39.6963 16.027 40.0103 16.3467 40.3619 16.6186C40.5064 16.7306 40.7017 16.7901 40.8832 16.8381C41.1872 16.9184 41.4968 17.0049 41.8078 17.0224C42.0325 17.035 42.2748 16.9697 42.4886 16.8862C42.8035 16.7631 43.1386 16.64 43.3941 16.4308C43.7142 16.1689 43.7057 15.8864 43.4872 15.5309C43.2675 15.1735 43.0405 14.8224 42.6252 14.6574C42.2927 14.5253 41.959 14.3955 41.6498 14.2742Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M9.07747 24.4423C9.50011 24.0341 9.63434 23.5729 9.70453 23.1245C9.81027 22.4515 9.80674 21.762 9.87606 21.0822C9.92922 20.5597 9.71746 20.1287 9.46928 19.7038C9.36119 19.518 9.2396 19.3396 9.11536 19.1638C8.94736 18.9261 8.71445 18.9044 8.50063 19.0867C8.08739 19.4386 7.87093 19.92 7.78693 20.4196C7.68971 20.9992 7.60806 21.6055 7.88267 22.1822C7.90764 22.2343 7.81835 22.3407 7.78311 22.4195C8.47302 22.8892 8.66335 23.7179 9.07747 24.4423Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.9378 57.9906C51.7992 57.5944 51.0966 57.8435 51.1762 57.3128C50.9286 57.1639 50.7001 57.0265 50.5136 56.9146C50.5674 56.7338 50.6114 56.5858 50.6552 56.4378C50.5277 56.4469 50.4 56.456 50.2416 56.4671C50.2522 56.4888 50.2305 56.4452 50.1941 56.3722C50.0073 56.6201 49.8269 56.8501 49.6569 57.0875C49.4595 57.3632 49.2674 57.6436 49.0806 57.927C49.0316 58.0011 49.0242 58.1028 48.974 58.1758C48.846 58.3618 48.705 58.5385 48.5155 58.7899C48.4818 58.9063 48.4383 59.1433 48.3458 59.3593C48.0926 59.9491 48.2474 60.1929 48.8991 60.1463C49.2002 60.1249 49.5335 60.2149 49.7935 59.96C49.8299 59.9245 49.9159 59.9175 49.9732 59.928C50.4258 60.0098 50.5888 59.6335 50.8379 59.3933C50.9398 59.2948 51.0573 59.2084 51.141 59.0967C51.4159 58.7293 51.6785 58.3527 51.9378 57.9906Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M83.4877 50.8798C83.2633 50.7183 83.0797 50.6108 82.9258 50.4707C82.321 49.9204 81.625 49.5547 80.8146 49.4343C80.5133 49.3895 80.2522 49.4402 80.1212 49.8141C80.0451 50.03 79.809 50.19 79.6448 50.3752C79.9068 50.5888 79.8774 50.7655 79.4219 51.0676C79.8598 51.4146 80.3136 51.6563 80.8675 51.7717C81.1606 51.833 81.427 51.9842 81.7507 51.9306C81.966 51.8948 82.1912 51.9177 82.4118 51.9162C82.5587 51.9153 82.7082 51.9004 82.8521 51.9212C83.2092 51.9725 83.6236 51.5602 83.5552 51.2077C83.5282 51.0676 83.4976 50.9281 83.4877 50.8798Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.4286 2.72104C51.5052 2.65248 51.5819 2.58391 51.6732 2.50186C51.7035 2.79547 51.7238 3.05509 51.7587 3.31324C51.7828 3.49404 51.7957 3.68714 51.8721 3.84684C51.9214 3.94969 52.0671 4.02734 52.1864 4.071C52.3247 4.12169 52.483 4.11525 52.6296 4.14777C53.0775 4.24711 53.1491 3.8864 53.2804 3.63293C53.372 3.6804 53.4581 3.72494 53.5439 3.76919C53.5662 3.68275 53.6073 3.5966 53.6079 3.51016C53.6141 2.7524 53.4969 2.01339 53.0848 1.36816C52.9664 1.18267 52.6795 1.10209 52.4657 0.981365C52.4278 0.959974 52.3341 0.959974 52.3232 0.980486C52.1071 1.38632 51.5478 1.16861 51.3205 1.59964H51.9634L51.9875 1.70308C51.776 1.77223 51.5646 1.84109 51.2817 1.9334C51.433 2.07112 51.5417 2.17045 51.5995 2.2229C51.5425 2.39491 51.4879 2.55959 51.4333 2.72427L51.4286 2.72104Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M38.9149 30.9743C38.867 30.5919 38.3037 30.4094 38.4529 29.8995C38.4655 29.8564 38.3897 29.7624 38.3333 29.729C37.8916 29.467 37.4446 29.2144 36.9523 28.9323C36.9523 29.6176 36.9741 30.2292 36.9347 30.8366C36.9268 30.962 36.6927 31.0728 36.5347 31.2155C36.6046 31.3459 36.7 31.5237 36.7969 31.7043C37.3297 31.8979 37.8822 32.0987 38.5128 32.3281C38.5524 31.9135 38.5574 31.5917 38.625 31.2838C38.6517 31.1627 38.8179 31.0725 38.9149 30.9743Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M33.4477 30.3126C33.7053 30.3656 33.9605 30.4166 34.2149 30.4711C34.3993 30.5107 34.5952 30.5913 34.6249 30.2813C34.6278 30.2514 34.7585 30.1995 34.8161 30.2139C35.2678 30.3249 35.5612 30.0905 35.4199 29.6633C35.2508 29.1514 35.2193 28.5577 34.7626 28.182C34.4795 27.9491 34.1617 27.7243 33.7549 27.814C33.6677 27.833 33.5393 27.9318 33.5326 28.0033C33.5059 28.2907 33.5279 28.5823 33.5153 28.8718C33.5059 29.091 33.4603 29.3084 33.4503 29.5276C33.4386 29.7896 33.4477 30.0524 33.4477 30.3126Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M34.2852 20.5284C34.3874 21.0998 34.4846 21.6431 34.5821 22.1863C34.5862 22.2106 34.5824 22.2473 34.5971 22.2575C35.0679 22.586 34.8837 23.0929 34.8911 23.514C34.899 23.9664 34.7351 24.42 34.6825 24.8772C34.6696 24.9897 34.8047 25.2238 34.8585 25.2197C35.0335 25.2071 35.272 25.1582 35.3578 25.0345C35.4932 24.8391 35.5869 24.5724 35.5883 24.3351C35.5936 23.5996 35.8007 22.867 35.6057 22.1265C35.5275 21.8306 35.5504 21.5083 35.4714 21.2126C35.3448 20.7408 34.8967 20.4097 34.2852 20.5284Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M39.3782 22.4945C39.6223 22.471 39.6787 22.5994 39.6487 22.8133C39.6299 22.9466 39.6226 23.0831 39.6255 23.2176C39.6382 23.7931 39.9416 24.0917 40.5163 24.0803C40.776 24.075 41.035 24.0401 41.2944 24.0182C41.6521 23.9877 41.5746 23.6777 41.6221 23.4726C41.7658 22.8543 41.5863 22.5909 41.0056 22.3992C40.8341 22.3427 40.7023 22.1657 40.5069 22.0074C40.3654 22.0168 40.114 22.0332 39.7918 22.0546C39.7216 22.1818 39.736 22.5153 39.3779 22.495L39.3782 22.4945Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.68693 33.4042C5.56298 33.2756 5.43963 33.1475 5.31627 33.0198C5.33448 33.0016 5.3524 32.9834 5.37031 32.9656C5.20613 32.931 4.99877 32.9465 4.88746 32.8504C4.71828 32.7048 4.61314 32.4838 4.48684 32.2907C4.46246 32.2538 4.47392 32.1598 4.45688 32.1568C4.10649 32.0932 4.05921 31.7835 3.93761 31.5342C3.89121 31.4389 3.84392 31.3443 3.7937 31.2508C3.74935 31.169 3.70881 31.0261 3.65301 31.0187C3.15342 30.9557 3.10466 30.4535 2.82241 30.1833C2.78834 30.1508 2.85031 30.0192 2.87557 29.8956C2.83533 29.9044 2.68378 29.9208 2.68349 29.9392C2.68172 30.0822 2.66146 30.2604 2.73635 30.3621C2.94577 30.6463 3.20305 30.8945 3.42979 31.1667C3.48442 31.2323 3.48736 31.3384 3.52437 31.4213C3.62511 31.6452 3.73143 31.8662 3.8354 32.0886C3.87388 32.0812 3.91235 32.0742 3.95083 32.0672C3.88915 32.1102 3.82777 32.1533 3.81337 32.1636C4.1344 32.49 4.44925 32.8123 4.76645 33.132C5.08718 33.4552 5.17911 33.4933 5.68693 33.4042Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M51.4335 2.72425C51.237 2.62521 51.1175 2.51034 51.3284 2.30435C51.3484 2.28472 51.3152 2.21087 51.3067 2.16223C51.2517 2.18919 51.1525 2.21175 51.1492 2.24428C51.1366 2.36647 51.1601 2.49159 51.1616 2.61583C51.1671 3.08086 51.1789 3.54618 51.1698 4.01121C51.163 4.35698 51.304 4.29427 51.5099 4.15245C51.4585 4.07626 51.4139 4.01004 51.3666 3.9403C51.465 3.86235 51.5495 3.79554 51.6371 3.7258C51.2644 3.43454 51.2644 3.43454 51.4773 3.16437C51.279 2.91003 51.2746 2.87135 51.4271 2.71985C51.4288 2.72103 51.4335 2.72425 51.4335 2.72425Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M35.6758 30.9678C35.8485 30.9402 35.9777 30.9584 36.0385 30.9027C36.2467 30.7108 36.3595 30.4685 36.3413 30.1886C36.3037 30.1681 36.2658 30.1479 36.2279 30.1274C36.0641 30.3767 35.9002 30.6261 35.6758 30.9678Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M6.35517 33.995C6.35017 34.0011 6.27792 34.0923 6.20361 34.1858C6.88442 34.4366 7.16991 34.4137 7.30971 34.1128C7.15405 34.1277 6.99016 34.1676 6.83244 34.1509C6.68441 34.1351 6.54255 34.0592 6.35517 33.995Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M43.9463 16.02C44.1105 16.163 44.2053 16.2662 44.3216 16.3324C44.3487 16.3476 44.512 16.2064 44.5034 16.1888C44.4459 16.0678 44.3745 15.9421 44.2732 15.8595C44.2423 15.8343 44.1046 15.9395 43.9463 16.02Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M8.17525 24.3971C8.04837 24.0428 7.93794 23.7348 7.80401 23.3604C7.64658 23.7047 7.77845 24.0161 8.17525 24.3971Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M35.1699 27.3914C34.9041 27.2777 34.6645 27.1751 34.4248 27.0729C34.7702 27.4397 35.0645 27.5256 35.1699 27.3914Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M33.3013 31.1591C33.5374 31.1834 33.7427 31.2048 33.9483 31.2259C33.6713 30.9343 33.4672 30.9197 33.3013 31.1591Z" fill="#FEFEFE"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.3288 17.8475C15.5573 17.9152 15.656 17.8253 15.6158 17.5967C15.5133 17.0171 15.4049 16.4387 15.2974 15.86C15.2554 15.6352 15.2304 15.4043 15.1608 15.1881C15.0648 14.8895 14.9235 14.6055 14.8228 14.3081C14.7817 14.1871 14.8169 14.0409 14.7778 13.9187C14.7482 13.8255 14.67 13.7273 14.586 13.6802C14.5335 13.6506 14.4301 13.7112 14.3496 13.7317C14.3813 13.8238 14.426 13.9137 14.4415 14.0084C14.4621 14.1326 14.4345 14.2686 14.4709 14.3861C14.6451 14.9478 14.8704 15.496 15.0055 16.0663C15.1038 16.4812 15.0745 16.9248 15.1338 17.3512C15.1582 17.5258 15.2666 17.6887 15.3368 17.8569L15.3288 17.8475Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M13.5459 31.0171C13.792 30.9398 14.0191 31.0863 13.9873 30.6872C13.968 30.4419 14.2062 30.1808 14.3104 29.9194C14.4188 29.6472 14.504 29.3659 14.6018 29.089C14.6711 28.8921 14.7448 28.6967 14.8156 28.5003C14.9481 28.1343 15.0899 27.7713 15.2045 27.3997C15.2318 27.3112 15.1719 27.1935 15.1451 27.0909C15.1302 27.0338 15.0746 26.9359 15.0823 26.9312C15.4224 26.7258 15.047 26.4263 15.2409 26.2068C15.1971 26.1957 15.1534 26.1843 15.1093 26.1729C15.0594 26.346 15.0044 26.518 14.9607 26.6927C14.7871 27.3842 14.62 28.0778 14.4417 28.7685C14.4091 28.8947 14.3272 29.0076 14.2843 29.1321C14.1988 29.38 14.1239 29.6314 14.0475 29.8819C14.0299 29.9391 14.0431 30.0369 14.0108 30.0528C13.6372 30.2371 13.7254 30.6309 13.5459 31.0171Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16.748 19.2553C17.057 20.5909 16.9951 21.8664 16.9554 23.1396C17.3751 23.1426 17.5651 22.9538 17.4932 22.5158C17.4189 22.5067 17.3287 22.4959 17.1804 22.4777C17.317 22.3965 17.4133 22.3394 17.5519 22.257H17.3419C17.3093 21.8937 17.7346 21.5087 17.3454 21.2048C17.3454 20.7497 17.4174 20.3043 17.3152 19.9029C17.2632 19.6995 17.1792 19.3095 16.748 19.2553Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2335 23.7991C17.1154 23.7625 16.9973 23.7259 16.8793 23.689C16.8522 23.7168 16.8249 23.7446 16.7979 23.7725C16.9665 23.9383 17.0766 24.079 16.8173 24.2363C16.7659 24.2674 16.8487 24.5191 16.8778 24.7248C16.9709 24.6137 17.0208 24.554 17.071 24.4942C17.0966 24.5097 17.1221 24.5255 17.1477 24.5411C17.0981 24.6117 17.0634 24.7046 16.9961 24.7494C16.6651 24.9706 16.6472 25.0852 16.9471 25.3917C17.294 24.8921 17.3142 24.3515 17.2223 23.7898L17.2335 23.7991Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16.9655 18.1483C16.9399 18.1955 16.9185 18.2347 16.8891 18.2887C16.8133 18.1509 16.742 18.0214 16.6709 17.8919C16.7637 18.337 16.7194 18.8272 17.0322 19.1967C17.0665 19.1874 17.1009 19.178 17.1352 19.1686C17.0812 18.8436 17.0272 18.5184 16.9655 18.1483Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.2222 23.7897C17.4449 23.6945 17.498 23.5283 17.3359 23.361C17.2701 23.2931 17.1006 23.3247 16.9253 23.3054C17.0689 23.5354 17.1512 23.6672 17.2334 23.7991L17.2222 23.7897Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.3368 17.8568C15.3033 18.0775 15.2698 18.2981 15.2363 18.5188C15.2683 18.5287 15.3004 18.5387 15.3324 18.5487C15.4167 18.4059 15.501 18.2632 15.5532 18.175C15.4663 18.0479 15.3982 17.9485 15.3297 17.8483C15.3288 17.8474 15.3368 17.8568 15.3368 17.8568Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M55.2291 15.8236C55.3019 15.7957 55.3704 15.7181 55.4089 15.6463C55.6021 15.2832 55.2044 14.5671 54.7935 14.5263C54.4522 14.4924 54.3177 14.6488 54.363 14.9884C54.3979 15.2507 54.3991 15.5173 54.4211 15.8745C54.6382 16.031 54.9372 15.9346 55.2291 15.8236ZM52.7115 17.495C52.6189 17.4733 52.5097 17.4276 52.4545 17.3569C52.1737 16.9977 51.8621 16.6516 51.6468 16.2546C51.2288 15.4848 51.0121 14.7572 51.7587 14.0168C51.8198 13.9564 51.8541 13.8676 51.9184 13.8117C52.1948 13.5723 52.3804 13.2743 52.8571 13.2514C53.3726 13.2271 53.8628 13.2203 54.3735 13.3097C54.9586 13.4123 55.5657 13.4167 55.9387 13.9828C56.0462 14.1463 56.1305 14.3259 56.2204 14.5006C56.3411 14.7361 56.5517 14.9732 56.5549 15.2117C56.5611 15.6653 56.4759 16.1268 56.3737 16.5728C56.3044 16.8764 56.0195 16.9828 55.7598 17.1533C55.1962 17.5234 54.6205 17.7021 53.7914 17.7256C53.5435 17.6734 53.1259 17.5908 52.7115 17.495Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M31.6751 21.7965C31.6343 21.5565 31.5932 21.3165 31.5523 21.0768C31.5074 21.0762 31.4625 21.076 31.4178 21.0754C31.4704 21.0053 31.5227 20.9356 31.584 20.8544C31.5159 20.8409 31.4557 20.8292 31.3805 20.8143C31.6915 20.5007 31.115 19.0517 30.5479 18.7013C30.8733 19.7699 31.1919 20.816 31.5106 21.8624C31.5653 21.8405 31.6202 21.8185 31.6751 21.7965Z" fill="#231F20"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M54.4211 15.8747C54.6382 16.0311 54.9372 15.9347 55.2291 15.8237C55.302 15.7958 55.3704 15.7182 55.4089 15.6461C55.6021 15.283 55.2044 14.5672 54.7935 14.5262C54.4523 14.4925 54.3177 14.6486 54.363 14.9885C54.3979 15.2508 54.3991 15.5172 54.4211 15.8747Z" fill="#FEFEFE"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/gophers/megaphone.svg b/go.dev/testdata/golden/images/gophers/megaphone.svg
new file mode 100644
index 0000000..c018845
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/megaphone.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 486 365" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M484.729,133.358c0.201,-0.274 -1.123,1.531 0,0m-404.303,231.03c-9.975,0 -13.723,-16.675 -12.594,-23.45c2.193,-6.581 -8.526,-7.759 -11.942,-10.151c-7.308,-5.116 -17.087,-14.573 -22.854,-21.388c-5.249,-6.204 -4.402,-9.245 -13.408,-6.243c-4.245,2.124 -12.467,0.746 -16.502,-0.868c-5.899,0 -2.108,-10.269 0.489,-12.865c3.459,-3.46 10.994,-7.546 16.013,-7.546c1.738,-1.737 -1.056,-11.077 -1.205,-13.521c-0.502,-8.238 -0.126,-16.792 2.508,-24.694c0.769,-3.079 6.934,-24.123 6.948,-24.102c-3.288,-4.932 5.632,-13.299 4.343,-18.457c0,-7.261 2.215,-15.034 3.667,-21.81c2.438,-11.377 1.071,-23.163 -0.193,-34.536c-1.335,-12.019 -0.653,-20.832 1.031,-32.624c2.268,-15.873 4.684,-38.339 16.774,-50.43c1.203,-1.203 9.988,-11.259 9.988,-12.159c1.572,-1.339 3.271,-2.566 3.909,-3.909c15.234,-7.57 5.795,-16.953 2.171,-26.924c-4.483,-2.242 -1.128,-10.331 0.869,-11.725c2.439,-2.44 16.79,-2.465 18.239,0.434c3.746,3.746 9.378,8.048 13.494,11.661c7.92,6.95 13.523,4.018 23.527,2.197c6.776,-1.233 14.39,-2.096 21.285,-1.608c5.41,0.382 10.693,1.493 16.082,1.936c7.66,0.629 6.102,-0.132 7.634,-6.261c2.194,-8.776 15.065,-25.206 20.736,-7.382c1.72,5.403 -0.396,12.652 4.764,16.393c8.408,6.099 19.486,6.717 27.101,14.331c6.654,0 12.161,10.578 19.053,11.563c10.453,1.493 16.115,-0.702 24.699,8.359c3.069,3.24 4.147,4.586 8.021,6.127c2.943,1.172 6.1,2.524 7.179,5.761c2.246,6.738 -5.872,7.422 -3.8,13.788c-0.106,3.624 -0.212,6.295 -0.967,10.584c-2.152,2.568 -6.416,16.656 -6.416,21.986c-2.354,7.063 -15.407,8.27 -10.856,17.371c0,5.056 3.859,11.053 2.605,16.068c0,2.207 -1.095,19.114 1.52,17.371c6.182,-4.121 12.52,-12.304 19.759,-14.114c4.869,-1.217 -6.948,-8.41 -6.948,-11.074c-1.767,-3.579 -1.303,-9.653 -1.303,-14.765c0,-11.006 9.986,-12.364 16.448,-18.239c6.326,-5.751 15.591,-12.46 24.374,-13.478c7.383,-0.856 14.343,1.53 21.661,-1.11c11.695,-4.219 22.068,-8.444 33.056,-13.64c5.78,0 14.919,-7.432 19.784,-10.39c4.076,-2.478 11.149,-9.357 14.958,-9.586c-2.133,2.209 -4.459,4.576 -6.08,6.948c7.198,-5.356 10.695,-13.992 18.022,-19.487c7.712,-5.784 10.211,-6.94 18.891,-9.609l0,1.738c4.564,-5.616 26.49,-0.451 26.49,8.251c0,3.082 6.807,11.902 8.197,15.145c3.068,7.159 6.466,14.224 8.088,21.93c5.211,24.751 7.765,46.513 1.52,71.492c-6.364,19.092 -14.76,48.56 -39.502,47.222c-12.728,-0.688 -21.775,-6.277 -31.826,-13.187c-4.397,-3.022 -8.159,-5.954 -13.137,-8.088c-6.679,-2.862 -14.685,-3.217 -21.062,-6.405c-4.481,-2.988 -21.647,-5.896 -26.49,-3.474c-4.854,2.426 -9.118,5.21 -14.331,6.948c-2.373,1.186 -4.26,-0.489 -5.871,2.043c-1.903,2.991 -3.011,6.642 -7.157,6.642c-5.923,-1.184 -11.996,-0.988 -17.914,0.048c-7.642,1.337 -6.706,-5.373 -12.322,-5.748c-7.329,-0.488 -26.306,1.366 -30.318,9.29c-4.687,9.258 0.494,26.548 -5.889,35.06c-2.14,1.07 -4.777,11.673 -4.777,14.331c0,5.4 -5.211,10.408 -5.211,14.765c0,2.777 -3.747,10.459 -5.646,11.725c-1.134,2.789 -0.917,6.724 -3.04,9.554c-6.103,7.121 -10.315,15.854 -16.502,23.451c0,2.105 -9.474,11.264 -10.857,11.725c-1.9,0 -8.362,8.29 -9.988,9.554c-1.362,3.262 0.742,4.83 3.094,8.251c2.585,3.76 10.689,14.011 6.026,18.673c-2.115,2.115 -19.542,4.566 -19.542,-3.908c-7.937,-7.478 -7.752,-11.541 -19.542,-5.645c-8.649,5.765 -25.547,5.645 -35.61,5.645c-10.454,0 -24.771,1.587 -34.742,-1.737c-8.685,-1.241 -5.429,2.35 -6.031,8.573c-0.757,7.824 -4.723,12.123 -12.642,11.403c-1.303,0 4.777,0.435 0,0" style="fill:#010101;fill-rule:nonzero;"/><path d="M167.714,91.234c-4.66,-0.666 -1.913,-7.167 1.431,-7.431c2.669,-0.211 3.015,9.209 -1.431,7.431c-3.04,-0.435 2.171,0.868 0,0m264.035,47.769c-5.504,-7.338 0.093,-36.61 6.568,-26.436c3.44,5.406 3.973,11.867 3.474,17.859c-0.281,3.378 -6.111,12.509 -10.042,8.577c-1.303,-1.737 0.434,0.434 0,0m-20.411,8.685c-5.243,-7.864 -2.496,-28.474 -1.735,-37.937c0.508,-6.318 15.136,-4.831 17.369,-1.581c1.718,2.502 0.856,6.961 -1.303,9.12c-1.996,2.993 -0.169,13.168 0.466,16.518c0.567,2.987 3.514,6.205 2.139,8.669c-2.141,2.142 -15.187,6.96 -16.936,5.211c-0.869,-1.302 0.434,0.435 0,0m26.056,45.164c-11.936,0 -20.104,-21.353 -22.473,-30.833c-3.743,-14.971 6.68,-6.788 15.09,-15.199c7.783,-2.594 14.604,-5.761 16.367,-14.623c1.333,-6.696 0.814,-18.178 -3.23,-24.244c-4.173,-6.259 -16.951,-2.124 -22.69,-4.994c-4.973,-4.972 -8.251,-0.773 -8.251,-9.554c0,-5.237 3.069,-15.229 6.948,-19.108c0,-5.843 8.691,-14.748 12.512,-18.463c6.058,-5.889 17.748,0.8 22.175,6.032c9.549,11.286 13.022,25.903 16.394,40.061c2.853,11.985 0.628,23.367 -0.867,35.194c-0.749,5.923 0.34,23.417 -4.182,27.938c0,10.359 -16.41,33.484 -27.793,27.793c-0.868,0 0.869,0.435 0,0m-337.861,-175.878c0.42,0 -1.472,-2.099 0,-0.869c0.819,0 0.194,2.161 0,0.869c-0.434,0 0,0 0,0m88.591,5.645c0,-3.347 0.719,-6.784 -1.303,-8.685c0.605,9.079 -10.856,12.695 -10.856,3.04c0,-6.918 2.732,-13.833 10.422,-9.988c3.317,3.317 4.147,17.685 1.737,15.633c0,-0.434 0,0 0,0m-131.149,34.307c1.55,-1.651 1.413,-3.138 3.04,-3.039c1.137,-1.613 0.747,-1.74 2.606,-3.04c-1.661,2.287 -4.092,5.724 -5.646,6.079m-17.371,37.782c-0.399,-0.441 0.249,-1.349 0.435,0.434c-0.916,2.257 -0.15,-0.121 -0.435,-0.434m201.935,2.605c-6.749,0 -9.945,-6.34 -5.103,-11.182c3.36,-3.36 10.135,-3.904 14.44,-3.366c21.051,2.632 -3.604,20.281 -9.337,14.548c-0.434,0 0.434,0.435 0,0m25.622,0c-3.996,-3.996 0.147,-10.356 -4.614,-14.059c-2.907,-2.261 -7.111,-7.356 -7.111,-11.128c0,-3.703 -13.017,-19.627 -3.909,-17.805c7.281,2.427 8.536,2.021 14.331,7.817c3.447,3.446 5.406,7.967 6.948,12.593c0,2.699 2.789,33.828 -5.645,22.582c-1.737,-1.737 1.303,1.737 0,0m-38.65,32.136c-3.982,-3.982 -9.668,-2.52 -11.508,-9.879c-1.718,-6.872 0.954,-11.676 5.428,-17.045c0,-3.881 11.797,-2.702 14.277,-1.575c5.481,2.492 9.913,1.661 15.471,0.272c5.682,-1.421 12.449,-5.246 15.416,2.171c3.594,5.391 -2.09,13.399 -6.08,16.502c-4.642,3.095 -10.043,-0.379 -14.765,4.343c-3.371,2.248 -14.43,7.115 -18.239,5.211c-0.434,-0.434 0.869,0.434 0,0m17.371,8.686c0,-2.514 -2.781,-7.348 1.737,-8.252c2.45,-1.225 7.29,-4.951 8.396,-0.16c1.15,4.984 -4.349,14.196 -10.133,8.412c0,-0.435 0.434,0.434 0,0m-68.18,-36.479c1.872,-1.872 3.424,-0.263 5.645,-3.04c3.104,-3.724 5.646,-7.592 5.646,-12.594c0,-10.104 -11.843,-10.884 -18.835,-9.65c-18.895,3.334 -11.807,31.735 7.544,25.284c0.434,-0.434 -1.303,0.434 0,0m-15.634,38.216c-26.882,-4.481 -37.781,-22.797 -37.781,-47.77c2.62,-10.479 10.419,-21.325 18.945,-27.956c6.084,-4.732 14.97,-6.016 23.501,-6.93c25.36,-2.717 45.072,24.32 41.319,47.464c-3.598,22.194 -23.462,38.945 -45.984,35.192c-2.606,-0.435 2.606,0.434 0,0m321.358,0.868c0,-4.106 1.755,-7.49 0.435,-11.725c1.891,3.093 1.78,9.504 0.434,13.462c-1.467,0.123 -0.556,-0.7 -0.869,-1.737c0,-0.868 0,0 0,0m-201.5,3.909c-4.651,-6.202 -4.509,-24.854 5.211,-26.056c-0.806,4.084 -2.105,7.74 -3.155,11.691c-0.159,0.6 0.562,19.6 -2.056,14.365c-1.303,-1.737 0.434,0.868 0,0m2.171,30.398c-5.195,-3.463 -1.737,-14.522 5.813,-14.522c2.212,0 6.762,19.552 -5.813,14.522c-1.302,-0.868 2.172,0.869 0,0m21.28,-54.717c0,-4.023 2.59,-8.28 3.474,-12.16c-4.244,1.97 -5.28,13.966 -3.474,12.16c0,-0.435 -0.435,0.434 0,0m-4.343,64.706c-5.111,-2.045 -4.822,-15.945 -5.754,-20.14c-1.575,-7.085 -5.886,-14.019 -6.711,-21.244c-2.237,-19.573 5.696,-34.891 23.659,-41.948c14.02,-5.507 6.611,4.649 6.611,10.809c-2.981,4.471 -3.866,17.368 -3.056,22.534c1.65,10.517 4.848,20.91 11.307,29.307c1.329,1.727 2.407,4.573 4.126,5.862c3.088,2.317 8.984,0.137 11.508,2.66c0,5.533 -14.408,6.279 -17.371,3.908c-3.709,-1.236 -10.97,-12.938 -14.331,-10.856c-1.638,4.917 10.928,10.706 12.16,15.633c0,6.098 -18.493,5.302 -22.148,3.475c-2.171,-0.869 0.868,0.434 0,0m-37.781,0.434c-2.903,0 0.434,-10.824 0.434,-11.725c0,-2.81 4.804,-4.803 6.948,-5.646c3.162,6.911 4.49,20.363 -7.382,17.371c-0.435,0 0,0 0,0m134.188,-78.168c0,-4.416 5.397,-28.745 4.994,-28.879c-4.066,-1.356 -7.675,25.784 -7.165,30.181c0.988,0.205 1.712,-0.229 2.171,-1.302c0,-0.435 -0.434,0.434 0,0m-9.119,33.004c0,-8.498 2.236,-24.282 -0.435,-32.136c-3.543,4.84 -2.566,13.056 -2.895,19.076c-0.189,3.47 -0.507,17.971 3.33,13.06c0,-1.303 0,0 0,0m57.323,55.152c28.296,-4.716 28.438,-58.72 29.53,-77.3c1.278,-21.735 -9.633,-69.935 -38.379,-69.017c-6.276,0.2 -14.806,7.966 -16.773,13.865c-1.571,3.144 -5.645,5.479 -5.645,9.554c0,1.965 -2.363,8.443 -3.909,9.988c-7.135,14.272 -6.033,35.331 -6.569,50.876c-0.796,23.082 7.808,69.575 41.745,62.034c2.606,-0.434 -3.908,0.869 0,0m-10.422,3.474c-12.267,0 -23.681,-13.054 -28.662,-23.016c0,-3.58 -3.924,-8.324 -4.798,-11.868c-1.153,-4.676 -1.248,-9.689 -4.322,-13.32c1.545,11.816 3.861,26.192 12.594,35.176c-7.044,-1.79 -13.527,-10.422 -21.279,-10.422c-2.897,2.896 -22.794,-5.646 -27.359,-5.646c-8.683,0 -24.271,-0.627 -31.172,-7.138c-10.076,-9.506 -9.875,-33.766 -7.586,-45.897c3.982,-21.102 28.407,-19.245 43.101,-29.042c6.326,-3.162 13.035,-5.557 19.639,-7.881c8.294,-2.918 13.253,-12.149 20.748,-16.438c-0.937,1.413 -1.427,3.538 -2.172,4.777c6.038,-1.955 14.308,-14.307 19.108,-19.107c10.218,-10.219 25.425,-11.512 35.24,-0.226c10.848,12.475 15.028,29.907 18.664,45.661c4.098,17.759 6.561,41.146 -0.461,58.85c-6.406,16.146 -14.619,54.425 -41.283,45.537c-0.869,0 2.605,0.869 0,0m-430.794,100.75c-8.826,-4.412 18.239,-21.304 18.239,-9.554c9.552,9.552 -13.111,11.264 -18.239,9.554c-0.869,-0.434 1.303,0.435 0,0m99.447,-255.784c4.122,-4.122 -12.453,-13.985 -15.633,-16.502c-0.939,3.064 13.466,18.669 15.633,16.502c0.434,-0.434 -0.434,0.435 0,0m19.976,224.517c12.428,-4.142 17.921,-22.183 16.503,-33.873l-1.303,0c-0.328,7.83 -2.951,18.15 -8.685,23.885c-4.789,0 -7.79,10.999 -13.463,3.908c-1.901,-3.802 0.468,-10.957 1.737,-14.765c5.116,-7.673 1.608,-16.628 -1.52,-2.551c-0.919,4.134 -7.916,30.72 6.731,23.396c1.303,-0.434 -2.605,1.303 0,0m1.303,73.826c-10.433,-2.609 -22.411,-1.92 -33.113,-3.257c-9.325,-1.166 -19.326,-5.142 -27.877,-9.193c-17.54,-8.308 -31.837,-30.224 -39.163,-47.317c-3.899,-9.097 -1.982,-21.923 -1.031,-31.43c0.68,-11.561 8.251,-22.595 8.251,-33.873c3.927,-7.855 6.948,-21.632 6.948,-29.964c0,-11.925 5.77,-24.917 2.172,-36.913c-4.165,-10.411 -1.303,-22.3 -1.303,-33.004c1.794,-5.383 1.912,-11.732 3.04,-17.371c0.578,-4.048 2.868,-17.199 5.645,-19.976c3.063,-9.187 7.989,-17.44 15.362,-23.994c3.745,-3.329 6.717,-7.205 10.26,-10.748c4.933,-4.933 5.585,-0.434 9.554,-0.434c2.583,0 9.486,2.538 3.474,-3.474c-3.411,-3.411 -6.555,-9.049 -9.409,-13.012c-2.914,-4.047 -6.953,-9.352 -7.093,-14.449c-0.186,-6.733 10.797,-5.726 14.746,-3.78c7.63,3.761 18.817,11.7 21.298,20.384c0.761,1.522 6.862,7.929 7.383,4.343c0,-5.754 -9.226,-5.657 0.868,-8.686c17.636,-5.426 48.862,-5.125 66.887,0.889c4.664,1.556 16.311,1.536 19.967,5.191c0,-2.288 21.821,9.916 23.884,11.291c5.7,1.9 16.151,12.761 18.674,17.805c0,2.638 10.396,11.051 8.685,14.765c-3.323,7.215 -20.37,-0.93 -22.485,12.465c-0.997,6.317 -2.651,6.336 -8.782,8.38c-3.967,0.992 -5.845,6.174 -8.251,9.12c-1.268,-4.534 1.14,-9.043 0.434,-13.625c-1.179,-7.666 -4.92,-12.717 -8.251,-19.38c-2.41,-7.231 -18.357,-19.542 -26.49,-19.542c-7.098,-3.549 -19.745,-2.478 -25.622,-0.434c-14.288,0 -22.34,16.261 -30.399,24.319c-5.669,5.669 -6.202,26.246 -3.04,32.57c4.383,8.766 8.164,20.584 17.371,25.188c7.613,7.612 22.932,11.189 33.33,10.368c6.254,-0.494 23.07,-10.216 26.165,-8.631c4.611,-6.13 9.803,-14.572 14.331,-19.542c0.201,2.228 0.471,7.419 2.171,9.119c1.178,1.592 6.948,2.88 6.948,5.212c2.972,0 5.384,3.039 8.686,3.039c4.767,-1.192 2.064,1.524 3.04,3.475c2.756,2.756 1.759,15.435 8.088,16.339c11.184,1.598 7.199,-12.554 17.099,-12.431c3.601,8.211 1.746,20.832 0.862,29.499c-1.168,11.451 -1.325,22.743 -3.87,34.194c-2.293,10.322 -4.374,21.745 -5.84,32.009c-0.672,4.701 -5.049,9.3 -5.049,14.602c-1.337,5.348 -7.816,12.5 -7.816,17.805c0,7.935 -9.655,18.986 -14.541,24.618c-8.675,9.998 -17.227,22.183 -28.452,29.666c-9.393,4.696 -18.151,9.866 -28.227,13.896c-12.952,3.238 -25.897,3.909 -39.519,3.909c-1.737,-0.435 1.303,0 0,0m73.826,4.777c-3.701,0 -13.963,-7.221 -13.462,-11.291c0.363,-2.958 7.816,-3.155 7.816,-8.034c0,-3.744 6.476,5.174 6.949,5.862c0,2.47 4.339,7.373 5.211,9.988c2.709,4.515 -5.528,5.447 -6.514,3.475c-0.434,0 0.434,0.868 0,0m-118.555,12.159c-4.08,-1.36 -9.554,-8.895 -9.554,-13.028c-1.412,-11.292 3.803,-5.645 10.856,-5.645c5.097,5.096 6.848,2.299 7.383,10.856c0,3.576 -2.716,13.786 -8.685,7.817c-1.303,-0.434 0.868,0.869 0,0" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/motorcycle.svg b/go.dev/testdata/golden/images/gophers/motorcycle.svg
new file mode 100644
index 0000000..e05346e
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/motorcycle.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 337 325"><path fill="#90D8F7" d="M138.7 107.7l1.5-.9 3.4-2.2h.3l1-.6 1.5-1 1.3-.8.4-.3a1.4 1.4 0 00.6-.4h.8l.4-.3.8-.4 1.2-.9 1.3-.8 1.5-1 4-2.5 4-2.6v.1l-.6.6-1.6 1-1 .7-1.2.8-2.4 1.5a40.4 40.4 0 01-4.2 2.7l-1.7 1-1.7 1-1.6 1-1.8 1.2-1.8 1.4-.8.7-.6.2-1.6.5-1.4.5-.7.2.7-.4zm22.7-10.4l.3-.2-.2.2-.4.2.3-.2z"/><path fill="#FCDFD3" d="M144.2 200.1c-.5 0-1 0-1.4-.2l-1-.5-.8-.6-1.4-1.2-1.2-1.3-2-3c-.4-.6-.7-1.3-1.2-1.8l-.2-.3h.1l.1-.1h.1l.2-.1.2-.2h.2l.1-.2h.1l.1-.1h.1l.2-.1v-.1h.2l.1-.2h.2v-.1l.2-.1h.1l.2-.2h.1l.1-.1.2-.1.1-.1.2-.1h.1l.1-.2h.2l.1-.2h.2l.1-.2.2-.1.1-.1.2-.1.2-.2h.1l.2-.2.2-.2h.2l.1-.2.2-.1.2-.2.2-.1.2-.2.1-.1.2-.1.2-.2.1-.1.2-.2h.2l.1-.2.2-.2h.1l.2-.2.1-.1.2-.1v-.2h.2l.2-.2.1-.1.2-.1v-.1l.2-.1.2-.2.1-.1.6 1 2 2.8-.2-.1a17.7 17.7 0 011.5 2.9l.2.8.1.5.1 1v.8l-.2 1.8a8.6 8.6 0 01-.8 2.3l-.6.8-.6.4-.7.4-1.4.3h-.2z"/><path fill="#EE3F26" d="M60.9 226.4h.1l.2-.2.6-.5.7-.6 1.3-.7.7-.4.8-.5.8-.6.4-.3.7-.6 1-.9-.2.1-1.8 1-3 1.8-2.9 1.9-.4.2h.2c.3 0 .5.1.8.3zm69.8 21.6a9.3 9.3 0 01-2.9-1.4l-1-.8-1.8-1.5-1.7-1.5-1-.8-.8-.8-1.5-1.7-.8-.7-.7-.7-1.5-1-1.3-.7-1.2-.8-.4-.3-.2-.1h.1a36 36 0 00-2.6-1.4l-2.6-1.3a11 11 0 00-1.3-.4l-1.4-.4-1.3-.5-1.1-.3a43.6 43.6 0 00-3.8-1.3l-1.1-.2-1.2-.3-1.3-.3a72.7 72.7 0 01-3-.8l-3.3-.5-3.3-.3H82l-2.2.1h-1.2l-1 .1h-.5l-1.8.6-1.9.4a9.3 9.3 0 00-1.2.4 196.6 196.6 0 01-3.2 1.9l-.3.3-1.4 1.2-1.2.9a5 5 0 01-1.4.5l-1.7.4c-.6 0-1.2.1-1.7.3l-.5.1-2.1 1a1 1 0 00-.7-.3c-.5 0-1 0-1.4.2H56l-1.7.3-1.4.2a16 16 0 01-1-.6l-.6-.4h-.1l.6-.5.4-.2h.1l.2-.1v-.2c0-.3.2-.6.4-.8l.1-.2.6-.6.7-.7 1.1-1.4 1.3-1.5.2-.2 1-.6h.1c.4-.2.7-.4 1-.8v-.6c0-.2.1-.3 0-.4 0-.3-.3-.5-.6-.5l-.7.4-.3.3s-.2 0-.3.2l-.8.5-.3.2c-.3 0-.6-.2-.8-.3-.8-.5-1.4-1-2-1.8l-.8-1.5-.6-1-2.6-4.4a5 5 0 01-.6-1.7v-1.3l.7-.8.5-.2.6-.3 1-.3.9-.4 1.1-.5c.7-.2 1.4-.6 2-1l2-1 1.7-1 1.8-.6h.2l.2-.1h.1l.1-.1h.1l1.5-.8 1.4-.7 2.8-1.2 2-.8 1-.4 1-.5a35 35 0 014.5-1.6h-.2c.6 0 1.1-.3 1.6-.5l1.5-.5 1.4-.5.6-.2.6-.2 1-.5 1.2-.5 1.3-.5 1-.4 2.5-1 1.3-.7 1.6-.7.8-.6.9-.6.7-.8h.7l.1.1h.4l.1.1h.4v.1h.3l.1.1h.3v.1h.4v.1h.3v.1h.4v.1h.2v.1h.5l.1.1h.5l.1.1h.7v.1h.5v.1h.5v.1h.4l.1.1h.2l.1.1h.2v.1h.3v.1h.3v.1h.2v.1h.2l.1.1h.2v.1h.2l.1.1h.4l.1.1h.4l.1.1h.4l.1.1h.4l.1.1h.4v.1h.4v.1h.5l.1.1h.5l.1.1h.6l.1.1h.8l.2.1h4.7v-.1h.4l.1-.1h.3v-.1h.4v-.1h2.9l.4.7c0 .3.3.6.4.9l.5.7a316.4 316.4 0 011.4 2l1.2 1.3.9.7.4.3 1 .7c.5.2 1 .4 1.6.4h.3l.4.1.8.1h.2a2 2 0 001.1-.4l.7-1 .2-.3v-.1l1-1c.4-.8.6-1.9.6-2.8v-1l-.2-.7c0-.5-.2-1-.3-1.4a57 57 0 01-.5-1.2l-.5-1.5.1-.1h.2v-.1h.2l.1-.1h.2v-.1h.2v-.1h.2v-.1h.2v-.1h.2l.1-.1h.2l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.1l.1-.1h.3l.1-.1h.2v-.1h.3l.1-.1h.2v-.1h.2l.1-.1h.1l.3.2.3.6c.2-.2.4-.3.7-.3h.4c.2 0 .4.2.6.4l1.3 1.8.4.6 1 1.2c.3.3.3.7.1 1v.1l.6.4.8.7.8.4.7.4.5.2.2.1 1.3.3 1.5.1h.1l1.1-.2h.2l.2-.2 1-.7.8-1a11.8 11.8 0 00.9-4.6 11.3 11.3 0 00-.2-2.3 53.6 53.6 0 01-.7-2.3l-.4-.8-.2-.4-.7-.8-.8-1.2c0-.2 0-.3-.2-.5a4 4 0 01-.3-1.2v-.6l.1-.1.2-.1v-.1l.2-.1.1-.1h.1l.1-.2h.2v-.2h.2v-.1l.2-.1.1-.1.1-.1.1-.1.1-.1h.2v-.1h.1l.1-.1 1-.8v-.1l.2-.1v-.1l.2-.1.1-.1.1-.1.2-.1.1-.1.1-.1.2-.1v-.1l.2-.1.2-.1v-.1l.2-.2h.2l.1-.2h.1l.2-.2.2-.1.1-.1.2-.2h.1l.1-.2.2-.1.1-.1.2-.1.1-.1.1-.2h.2l.1-.2h.2l.1-.2.1-.1.2-.1.1-.1.2-.1v-.2h.2l.1-.2h.2l.1-.2.1-.1.2-.1v-.1l.2-.1.2-.2.2-.2h.1l.2-.2.1-.1.1-.1.2-.1v-.1l.2-.1.1-.1.2-.1v-.1l.2-.1.1-.1h.1l.1-.2h.1l.1-.2h.1l.1-.1.1-.1h.1l.1-.2h.1v-.1l.2-.1.1-.2h.1v-.1h.2v-.1l.1-.1h.1v-.2h.2v-.2h.2v-.1h.1v-.2h.2v-.1h.1l.1-.2h.1v-.1l.1-.1h.1v-.1l.1-.1.1-.1.1-.1.1-.1v-.1h.1v-.2h.2v-.1l.1-.2.2-.1v-.1l.1-.1.1-.2h.1l.1-.2.2-.2.1-.2h.1l.1-.2h.1v-.2h.2v-.2h.1l.1-.1.1-.1.1-.1v-.1l.2-.1v-.1l.1-.1v-.1h.2v-.2h.1v-.1l.1-.1.1-.1.2-.2v-.1l.2-.1.1-.2.1-.1h.1v-.2h.1l.1-.1.1-.1.1-.1v-.1h.1v-.1h.1v-.1l.1-.1.1-.1v-.1l.1-.1.1-.1v-.1h.1v-.1l.1-.1v-.1h.1v-.2h.1v-.1l.1-.1v-.1h.1v-.1h.1v-.2h.1v-.1h.1v-.2h.1v-.1h.1v-.2h.1v-.1l.1-.1v-.1l.1-.1.1-.1v-.1l.1-.1v-.1h.1v-.2l.1-.1.1-.1v-.1l.1-.2h.1v-.2l.1-.1v-.1l.1-.1v-.2h.1l.1-.2v-.1h.1v-.2h.1v-.2h.1v-.1l.1-.1v-.1h.1v-.2l.1-.1v-.1l.1-.1v-.1h.1v-.2l.1-.1v-.1h.1v-.2h.1v-.2h.1v-.1l.1-.1v-.1h.1v-.2h.1v-.2h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.2h.1v-.2h.1v-.1h.1v-.2h.1v-.2h.1v-.2h.1v-.2h.1v-.4h.1v-.1l2.6-1.3 1.2-.6 1.2-.6h-.1l.7-.4c.5-.3 1.1-.7 1.8-.5.4.1.8.3 1 .7l.5.8c.5 1 .8 2 1.2 3.1v.1l.8-1.9.5-1 .3-1 .5-1.7c0-.6.2-1.2.3-1.7l.1-.9a10.5 10.5 0 01.7-2l.7-1.5.6-1.3a29.8 29.8 0 011.5-2.8l.8-1.2 1.7-2.6 1.6-2.4 2-2.6 1-1.1a60.5 60.5 0 012-2.2l1-1c1.4-1.5 3-2.8 4.5-4.1l2.2-2a52.9 52.9 0 013.7-2.7l.6-.4.6-.5.4-.2v-1.2h.8c.3 0 .5-.2.8-.3l.4-.4h.3l.2-.2.2-.3.3.2.8.6 1.3 1.2a19.4 19.4 0 002.9 2l1.7 1.5 2.1 2.2 2 1.9 1.8 1.7a70.2 70.2 0 003.2 2.6l1.2 1.2.2.2.2.2.4.4 2.3 2.3c.5.5 1 1 1.3 1.7.2.5.2 1.2-.2 1.6l-.4.5v.1l.4 1.2.4 1.4.7 2.5.7 2.5.3 1.4.2 1.4v-.1 2.7c0 .6-.1 1-.3 1.6l-.2.5-.2.3-.2.5-.4.4-.4.3-1 1a4 4 0 01-.7.5h-.5l-.7.4c-.7.2-1.3.6-2 .9l-3.6 1.6-1.9.8c-.6.1-1.1.3-1.7.6h-.2l-.2.2-2.1 1-1 .3-1.3.3-1.5.5-1.4.5-.9.4-.8.5c-.2.3-.3.6-.3 1v.1a41.6 41.6 0 01-1.7.7l-1.5.6-.8.3-.7.2-2.4 1.1-1.2.5-1.3.6c-.8.5-1.7.9-2.7 1.2l-2.6 1-3.8 1.7a64.4 64.4 0 01-3.7 1.7l-1.6 1-.7.3-1.3.6-.6.4-.6.3-.4.2a16.2 16.2 0 00-.7 2.3l-.5 3.8-.1.4v.5l-.6 3.5-.3 1.9-.3 1.5-.8 1.9a23.5 23.5 0 00-1 2 12.4 12.4 0 01-6 5c-1 .2-1.8.5-2.8.9l-3.4 1.4-2.1.6-1.4.5-1 .4-1.1.4-2.5.6-2.2.8-2.4.6-3.5 1-1.9.4-.9.2c-.3 0-.6 0-1 .2-.5 0-1 .2-1.5.4l-2 .5-2 .5a104.6 104.6 0 00-3.5 1l-1.8.6-1.9.6-1.8.7-3.7 1.2-1.8.6-1.8.6-2 .8-1 .3-1.3.4h-.8a8.7 8.7 0 01-2.2 0l-1.2-.3-.5-.2-.7-.5-.4-.4-1.5-1.6-1.4-1.6-1.4-1.7-.8-1a10.3 10.3 0 01-1.4-1.9l-1.4-2.2-.6-1.2h-.2l-.2.2-.2.2c-.3.3-.5.6-.9.8l-1 .6-1 .7-1.3.7-3 1.7c-2.2 1-4.2 2.2-6.3 3.1l-2.9 1.4-1.8.8-3.1 1.2-.4.1 2.7.5 3.2.6 3 .4 3.4.7 1.8.4 1.6.5 1.7.6 1.4.7 1.7.7 1.6.6 2.1.6 2 .7 1.2.4.6.1 1.3.5 2.5 1.2.7.3 1.2 1.2 2 1.9 2 2 2.2 2 .1.1.5.7.4.4.6.6.5.2.2.3 1 1.8 1 1.6a24.3 24.3 0 011.6 2.3c0 .3 0 .7.2 1l.2.9.2.6.2.4.3.4.2.4c0 .5.2 1 .3 1.4l.2.8v.5l-.1.4v.3l-.1.2h-.1l-.6.7v.1l-1.3-.3zM234 108.2c-.2 0-.2-.1-.3-.2l.2.2zm8.8 23c-.4 0-.8 0-1.1-.2l-.6-.4-2.6-2.1-1-1.1-1.3-1.2a20.2 20.2 0 00-2.4-2.2l-1.1-1-1.2-1.2-2.2-2-1-1-1.1-1-2.7-1.8-1.4-1a24.8 24.8 0 01-2-1.8c-.5-.6-1-1.3-.8-2 0-.4.2-.8.4-1l.2-.3 1-.8.6-.2c.2-.2.5-.2.8-.3l.8-.3.7-.3.5-.2a18.3 18.3 0 012-.6l1.3-.3 2.9-.7 1.3-.2h.3c.2-.4.6-.7 1-.8.5 0 .9 0 1.3.2.4.3.7.6.9 1l.6.8a87.3 87.3 0 003.8 5.2l1.6 3 1.3 3.2.6 1.6.5 1.5.5 1.5.6 1.5.6 1.6.4 1.8-.1 1c0 .4-.3.8-.5 1l-.4.5-.5.3-.7.3-1 .1h-.8z"/><path fill="#EE3F26" d="M113.4 227c-.3 0-.6-.3-.6-.7l.1-.5v-.7h-.1l-.2-.3h-.1l-.6-.5-1.2-.8-1.1-.9a7 7 0 00-2.2-.9l-2-.4-1-.3-1.1-.4-2.3-.6-1.7-.2-1.8-.3-2-.3-2-.2h-2l-.3.1c-.7 0-1.4-.5-1.6-1.2 0-.8.4-1.5 1-1.7l.7-.1h.5l1.2-.1 2.2.1 2.2.3 1.3.2 1 .3 1.5.2c.6 0 1.1.2 1.7.4l1.8.6 1.4.6 1.4.6c.5.2 1.1.5 1.6.9.5.2 1 .6 1.3 1l1.2 1.2.5.5 1.2.9c.3.2.6.6.7 1a4 4 0 01.1 1.6c0 .3-.3.6-.6.6h-.1zm11.5-10.4a.9.9 0 01-.9-.8v-.9c.2-.3.3-.6.6-.8.2-.2.4-.4.7-.4.2 0 .5 0 .7.2a4.4 4.4 0 001 0l.4-.2v-.3c0-.4.1-.9.5-1 .2-.3.5-.4.8-.5l.4-.1.2-.1 1.1-.6 2.2-1 1-.3c.2 0 .4 0 .6-.2l1.2-.4a24.1 24.1 0 012.9-.8l1.3-.2 1.3-.3 2.8-.8 2.8-.6 2.8-.6 2.7-.6 5-1a151.4 151.4 0 001.9-.7l2.8-.9a30.4 30.4 0 003.2-1.2l.2-.1a26.1 26.1 0 011-.6h.2c.3-.1.5-.1.8 0a1.4 1.4 0 01.5 2.3l-1 .6-.7.4-1 .4-.8.3-1.8.5-1.5.5-1.8.6c-1.2.4-2.4.6-3.6.8h-.2l-.2.1-.8.2-2 .5a20.5 20.5 0 01-3.8.7c-.2 0-.5 0-.7.2-.5 0-1 .2-1.4.4a13.4 13.4 0 01-2.2.6 18.2 18.2 0 00-3 .8l-2 .5-.3.1-.4.5-.6.3-.8.4-1.6.6-2.1.8a111.2 111.2 0 01-6.3 1.8l-1.1.1-.1.2a1 1 0 01-.9.6zm-73.8.2a.6.6 0 01-.5-.6l-.4-.7h-.5c-.6-.4-.8-1-.6-1.6.4-.7 1-1.1 1.7-1.5l1.3-.8 1.4-.5 1.3-.5 1.2-.4 1.4-.6 2.4-1 2.2-1a40 40 0 012.4-1l2.2-.9 2.3-.7.7-.2c.5-.3 1-.5 1.4-.5.7 0 1.3.4 1.5 1.1.1.7-.2 1.4-.9 1.6l-.3.1-.4.2h-.2c-.4 0-.8.2-1.1.3l-1.3.3-.6.2-.7.3-1.2.5a55.7 55.7 0 00-3.9 1.6l-1.1.5-1.8.7c0 .4-.4.8-.8.9l-1 .4-1 .3-1.5.6-3.4 1.1v.2a31.7 31.7 0 010 .2c.2.2.4.4.5.8 0 .3-.3.6-.6.6zm129.4-29.6a1 1 0 01-.2-1.3v-.1a1.4 1.4 0 01.1-.3l.6-2.7.4-1.6.5-2.6v-.8l.1-.3c0-.4.3-.9.8-1 .7-.3 1.6.2 1.6 1v1.2l-.2 1.4-.4 1.5-.5 2-.5 2v.4c0 .2 0 .5-.3.7l-.5.4-.2.2-.6.2a1 1 0 01-.7-.3z"/><path fill="#8B8986" d="M147.3 246.5l1-.4-1 .4zm-44 29c-.6 0-1-.3-1.3-.8-.3-.5-.2-1.2.2-1.6l.5-.6v-2.2l-.2-.6c0-.1 0-.3-.2-.5v-.1l-.2-.3-.6-.5-.8-.5-.5-.4a5 5 0 01-.8-.6l-.3-.3c-.5-.7-.2-1.8.6-2.2.2-.2.5-.2.8-.3l.8-.1 2-.4 1-.5 1.1-.4 2.2-.8 1.3-.6 1.4-.5 1.6-.9 2-1 1.8-.8 1.8-1 3.8-1.9 1.9-1 1.8-.9 4-1.6 3.7-1.7 3.9-1.6 3.7-1.7 3.9-1.7 3.8-1.6 4-1.6 4-1.8c1-.5 2.2-1 3.4-1.3.1-.4.4-.6.7-.8h.2a23.9 23.9 0 012-1.3 29 29 0 013.6-1.7l2-.6 1-.4 3-1 2.3-1 2.8-1.2a33 33 0 016-2h.6l.6.1.7.7 1.1-.6 3.8-1.7 3.7-1.8 2.6-1.3 1-.5c.3-.3.8-.5 1.2-.7l.5-.3.7-.7.8-.7a21.6 21.6 0 001.7-2.2l1-1.6v-.1l.4-1.4.2-.8.1-1.5.3-1.4a23 23 0 01.6-4l.3-2 .4-1.9.7-4 .8-4 .3-1.8c0-.6.2-1 .3-1.6l.2-1.7c.2-.5.2-1 .3-1.6l.5-3.5.3-1.7.2-1.5v-.2l.2-1.3c.2-.6.3-1 .3-1.6l.4-3 .3-2.3.2-2.3v.2l.6-4 .5-2 .1-.3-.1-.1c-.2-.3-.3-.6-.3-1 0-.3.2-.6.4-.9l.8-.5.9-.3 1.4-.6 1.5-.5a61.9 61.9 0 012.2-.6l2.1-1 .2-.1.2-.1 1.8-.6 1.8-.7 3.7-1.7 2-1 .7-.2h1c.7 0 1.2.6 1.3 1.2v2.1l-.5 2-1 4c0 .7-.2 1.3-.4 1.9l-.8 4.5-.2 1.9a84 84 0 01-1.3 8.5l-.4 2-.4 1.9-.3 2.1-.7 4.1-.4 2.3-.5 1.9-1 4-1.2 4.3-1.2 4-1.3 3.8-.1.3c.2.2.3.4.3.7.2.5.1 1.2 0 1.7l-.1 1.3-.5 2.4v-.1l-.1.5-.5 1.7-.2.8a5.2 5.2 0 01-1.8 2.8l-.6.5-1.1 1.1-.2.3-.8 1.2-.6.6-.1.3-.6 1-1 1-1.3 1.4-1.2 1.2-1.4 1-2.7 2.4a12.7 12.7 0 01-1.6 1.2l-1.6 1-2.6 1.6-1.4.8-1.5.7-1.4.6-1.7.5-3 .8-2.7.9-1.6.4-1.4.3-1.7.6-1.8.6-1.8.7-4.2 1.7-2.7 1-2.7.7-1.6.5-1.8.7-3.3 1-3.5 1.1a76 76 0 00-8.5 3l-2.4.8-2.2.6a97.6 97.6 0 01-6 2.2l-2 .6-2 .7-1.3.6h.1-.4v.1l-.2.1h-.2l-.3.2-.5.3.1-.1-.3.1h.2-.3.2l-2.5 1.1a13.9 13.9 0 00-.4.2 52.7 52.7 0 01-6 2.5l-1 .3-1.5.7-1.5.6-1.4.4h-3.5l-.6.3h-.1a1 1 0 01-1 .9h-.1a1 1 0 01-.3 0l-.7.3-2.3 1.2-2.2 1.2-2.5 1.1h.2l-1.3.4h-.1a11.3 11.3 0 00-1.7.6c-.4.2-.9.4-1.4.4h-.2z"/><path fill="#EE3F26" d="M240.7 191.8a3.9 3.9 0 01-.7-1.1l-.4-.8-.2-.9v-.2l-.4-1.1a31.7 31.7 0 01-1.1-12.2v-.7a25.8 25.8 0 01.3-2.5l.2-1 .2-1.1c.2-.6.3-1 .3-1.7l.2-1.1.1-.4v-.5c.2-.3.2-.7.3-1.1a44.7 44.7 0 011-3.5l.5-1.2.6-1.7.3-.5.4-.9.3-.6.4-.7.2-.5.5-1 .4-.7.3-.7 1.1-1.6v-.1l.2-.3.6-.7c0-.2.3-.4.4-.6l.3-.4.2-.3.1-.1h.1a2 2 0 001.2-.5l.6-.6.7-.8.6-.7 1.1-1 .7-.7.6-.8.3-.4.3-.4.5-.4v-.1a6 6 0 011.9-2 19.3 19.3 0 013.3-2 39 39 0 012.3-1l1.9-.9h.3c.5-.4 1-.6 1.5-.8l1.4-.4h.2l.4-.2 2.8-.7h.7l2.4-.5h.1l1.7-.3.7-.2.9-.2a51.1 51.1 0 018.3-1h1.7l1.4-.1 2.1-.2h1c.7 0 1.3 0 1.8.3.4.2.8.5 1 .9a2.3 2.3 0 01.4 1.4 2.1 2.1 0 01-.8 1.6l-.3.2-.6.3h-.1l-.5.3h-.2l-.5.2h-.5l-1 .1a54.8 54.8 0 00-1.9.2l-1.7.4-.7.2a55.4 55.4 0 00-3.8 1l-1.2.4-2.4.9h-.2a44.2 44.2 0 01-2.8 1l-.8.4-1.2.4-1.7.9-1.2.5-1.4.7-.9.6-.2.1-1 .7-1.4.9-.2.2-1 .6-1 .7v.1l-.2.1-.6.5-1 1a34.4 34.4 0 01-2.8 2.8l-2.1 2.4-.2.2a58 58 0 00-4.6 6.6l-.1.2-.8 1.4-.7 1.7-.1.3-.8 2.1-.4 1-.5 1.6-.2.5-.7 2.1c0 .2 0 .3-.2.5l-.3.9-.4 1.3-.5 2.3-.3 1a33.4 33.4 0 00-.5 2.6v.6l-.4 1.6c0 .6-.2 1-.3 1.6l-.3 2-.1 1.3-.2 1.2v.2l-.2.5-.2.7-.6.6c-.2.2-.5.3-.8.3-.5 0-1-.2-1.2-.5z"/><path fill="#8B8986" d="M247.3 149.3c-.5 0-.9-.3-1.2-.6l-.4-.7-.5-1-1-1.7a25.4 25.4 0 00-3-3.7l-1-1-1.2-1-2.3-2-1.1-.9-1.2-1-2.3-1.9-1-.8-1-1c-.4-.2-.8-.4-1-.7l-1-.8-2.2-1.6-2-1.8-2-1.7-1.9-1.9-2.1-2.1-3-2.9-1.4-1.5-1.4-1.4-1.5-1.5-1.5-1.7-2-1.8-2-1.7-2.3-1.8-2.2-1.8c-1-.8-2.2-1.4-3.4-2l-2.5-1.4-1.3-.6-1.4-.7-1-.4-1.2-.5-.6-.2a36.6 36.6 0 00-5.5-.3H179.1l-.7.2-1.2.3h-1a12.5 12.5 0 00-2.1.6c-.4.2-.8.4-1.3.4a2 2 0 01-.8-.3l-.8-.8-.2-.3-.4-.5-.7-1.1a18 18 0 00-.7-1c-.3-.4-.5-.7-.6-1.1l-.5-.4-.2-.4v-.7c0-.2 0-.4.2-.6l.1.2h.5c.5 0 .7-.4.7-.8v-.2c.2 0 .4 0 .5-.2a6 6 0 00.3-.4l.6-.2c.2-.2.4-.3.7-.3l3.6-1a41.5 41.5 0 017-.8h3.7c.5.1 1.1.3 1.7.3l1.7.3 1.7.4 1.8.5c1.1.4 2.2 1 3.2 1.5l1.6.8 1.5.9 2 1 1.7 1.2 1.8 1.4.9.8.6.7 1 .9 1.1 1 2 2 2.6 2.3 2.7 2.3 2.6 2.5 1.3 1.2a46.7 46.7 0 003 2.4l1.5 1.4 3.2 3v-.2l1.7 1.8 1.8 1.8 1 1 1 1 1 1 1 1 1.3 1.4c.3 0 .7.2 1 .4l1.2.9 1 .7 1.7 1.4.8.6.4.4.4.5.7.7.8.9.7.7.2.2.2.2c.2.2.3.4.2.7l1 1c.3.1.5.4.7.6l.3.1 2 1.6a24.2 24.2 0 003.7 2.1c.3.3.6.7.7 1.2.1.5 0 1-.2 1.4a7 7 0 01-.4.4l-.6.8-.7.7-1 1-.7.7-.7.8-.6.7c-.3.3-.7.4-1.2.4z"/><path fill="#EE3F26" d="M180 159a.8.8 0 01-.5-.5l.1-.6v-.1l-.1-.6v-.2l-.4-.6-.1-.3a1 1 0 01-.3-.7v-.1l.1-.3c0-.6.4-1 1-1.1.4-.1 1 .2 1.2.7l.4.9.4.7.2.4.1.4.1.5a1 1 0 01-1.2 1c-.1.3-.4.6-.8.6h-.2zm52-20.8l-.6-.3c-.4-.3-.5-.8-.3-1.2 0-.2.2-.4.4-.5l.2-.2.2-.2.6-.4.7-.1c.4 0 .7.3.9.7.1.4 0 1-.4 1.2h-.1l-.4.4-.6.5h-.5z"/><path fill="#8B8986" d="M280.2 177.5l-.4-.6-.7-1a22.5 22.5 0 00-2.5-2.4l-1-1-1-.8-2-1.7-1.1-1a.6.6 0 01-.5-.2v-.2l-.7-.7a1.4 1.4 0 01.7-2.1l.2-.1.1-1c.1-.3.3-.5.5-.6.3-.2.6-.3 1-.3l.8.2.1-.1c-.2-.3-.4-.6-.4-1l.3-1a1.4 1.4 0 012 0l.4.2h.3l.5-.2h.5l.8.4.8.8.7.7h-.1.1v.1l.1.1.3.4.4.4 1 1 1 1 .2.1.9.8a24 24 0 011.7 1.6l.4.3.6.6 1 1c.4.3.8.6 1 1 .2.6 0 1.3-.3 1.8l-.8.8-.2.1-.3.2c-.3.1-.7.2-1 .5l-1 .9-.4.3-1.1.8a10.4 10.4 0 00-.6.4c-.3.2-.5.3-.8.3h-.1c-.6 0-1-.3-1.4-.8z"/><path fill="#1994BB" d="M161.7 97.1l-.3.2-.3.2.4-.2.2-.2zm-28.9 23.3h.4v-.1h.3v-.1h.2v-.1h.1l.1-.1h.1v-.1h.1v-.1h.1v-.1h.1v-.1h.2v-.1h.1v-.1h.1l.1-.1.1-.1.1-.1.1-.1.1-.1.1-.1.1-.1v-.1h.1v-.1l.1-.1v-.1l.1-.1v-.1l.1-.1v-.1h.1v-.4h.1v-.4l.1-.1v-.4h.1v-.4h.1v-2.7l-.1-.1v-.2l-.1-.2v-.2l-.1-.1v-.2l-.1-.2v-.1l-.1-.1v-.2l-.1-.1v-.1h-.1v-.2h-.1v-.1l-.1-.1v-.1h-.1v-.1l-.1-.1-.1-.1v-.1h-.1v-.1h-.1v-.1l-.1-.1-.1-.1-.1-.1-.1-.1-.1-.1 1.5-1.2h.1c.8 0 1.4-.4 2-.8h.1l.7-.3 1.5-.5 1.5-.5.7-.2.8-.7 1.7-1.4 1.8-1.2 1.6-1 1.8-1 1.7-1a76.8 76.8 0 014.2-2.7l2.3-1.5 1.2-.8 1-.7a25.3 25.3 0 003.5-2.4l.4-.3a1.8 1.8 0 01.4-.2 1.6 1.6 0 011.8.4c.3 0 .6.2.8.4l.1.2c.2.2.3.4.3.7l.1 1.2v.2l.5 1 .8 1.4 1 1.3.3.6.5.8c0 .2.2.3.3.5l.2.5.2.3.1.3.2.4.1.6v.8c-.1.4-.4.7-.7.9l-1 .5-.3.1-.7.4h-.4v.1h-.1l-.2.1-1.3.5-1.3.5-1.4.6-1 .5-1.2.4-1.4.7-1.7.8h.1l-1.7.8-1.7.8-1.6 1-1.6.9-1.3.8-1.4.7a41.6 41.6 0 01-4.5 2l-1.1.5-1.5.7-1 .5-.4.3-.4.1-1.8 1-1.8.8h-.1a1 1 0 00-.5-.2h-1.4l-1.4.2h-1.6z"/><path fill="#EE3F26" d="M141.5 202.6a.6.6 0 01-.8-.4v-.5c0-.2 0-.3.2-.5v-.5l-.2.1-1.5.9-.5-.1a.4.4 0 010-.6l.9-1 .5-.6.5-.5 1.2-1 .7-.6.9-.7h-.2l-1.2 1c-.6.4-1.1 1-1.8 1.3a6 6 0 01-.9.5h-.5l-.3.3-.3.3-.5.2c-.2 0-.5-.1-.6-.4v-.5l.2-.5.4-.5.5-.5.9-.8-.3.1-.7.7-.2.2-.2.1-.4.1c-.4 0-.7-.3-.7-.7l.1-.6.4-.5.4-.6.9-.9.6-.6 1-.8.5-.4 1.1-.9 1.5-1a29.3 29.3 0 013.4-2.3 68.8 68.8 0 015.8-3.2l.6-.2.3-.2h.3l.2-.1c.2-.1.4 0 .6.1v.6l-.1.4h.3v-.1h.6c.3.2.4.5.2.8l-.6.6c-.2.2-.5.3-.9.4l-.4.3-2.1 1.2-.3.1-1 .7-2.5 1.9.1-.1 2-1.2 1.7-1 1.5-.7.7-.4.3-.1.6-.4c.1-.1.3-.1.4 0l.7-.3.8-.3h.5l.2.2v.3l-.2.3a10 10 0 01-.8.6l-.3.2.2.6-.3.6h.6v.6l-.6.5-.7.4-1 .7s-.2 0-.3.2l-.7.5-1.8 1.5.7-.4.6-.3.6-.3h-.1l.3-.1h.1c.2-.2.5-.3.7-.2.3-.1.6 0 .7.1.3-.1.8 0 1 .3.2.3 0 .8-.2 1l-2.8 2-1.7 1.3-2 1.5c-.5.3-1 .6-1.3 1l-2.1 1.5a3 3 0 01-1.1.4h-.5c-.2 0-.4-.2-.6-.4l-.1-.2-1.1.7h-.3a.8.8 0 01-.4-.2zm22.9-38.8c-.3-.1-.5-.3-.7-.6l.8-1 .1-.3.1-.1v-.2h.1l.1-.2 1.5-2.2 1.4-2.2.3-.5.2-.2.4.2 1.8-.4 1-.1.8-.2h.7c.2 0 .3.3.3.5-.1.2-.3.3-.5.2h-.2l-1.1.7-.9.5-.8.5a8 8 0 01-.7.3l-.2.2-.6.7.1-.1-.8 1.2-.8 1.1-.3.7v.3l-.1.1-.2.5c-.3.4-.8.7-1.3.7a1 1 0 01-.5 0z"/><path fill="#EE3F26" d="M149.6 181.6l-1.1 1-1.5 1.3-.5.5 1.8-1.3 1.2-.8.7-.4v-.8l-.6.5zm1 3.6v.5l.8-1.3-.8.8zm-16.4 9l-.2.2-.4.2h.5l.4-.7-.3.3zm1.4 9c-.2-.4 0-.8 0-1.2l.8-1.5 1.2-1.8-.7.6c-.3.2-.6.2-.8 0h-.1c-.2.2-.6.2-.8.1-.4-.2-.5-.6-.3-.9v-.1l.3-.7.4-.7 1-1.5h.1c-.2 0-.4.3-.6.4-.1.1-.3.2-.5 0h-.1l-1 1-.6.7c-.2.2-.6.2-.8 0a.7.7 0 01-.3-.8l.5-1h-.1l-.7-.2c-.4-.1-.6-.4-.8-.8h-.2a1.5 1.5 0 01-1.2-.7l-.3.2c-.5.1-1 0-1.3-.4-.3-.3-.4-1-.1-1.4l.2-.3c0-.3.2-.7.4-1a8.3 8.3 0 012.8-1.5l.3-.2a11.5 11.5 0 011.9-.9l.7-.3h.3l.2-.2h.4l2-1.6h-.1l1-.7 2-1.4.7-.5 1-.6.4-.3.3-.2.5-.4.7-.5 1.5-1 .8-.7.3-.2.7-.4 1.3-.9.8-.6.7-.3 1.4-.9.2-.2.8-1 .8-.7.4-.4 3-3.6.1-.1a22.3 22.3 0 003.5-3.6l.1-.2.2-.1.5-.6 1-1.1 1.2-1.3.7-.8 2-2.2.6-.8 1-1.3.7-.8a64.3 64.3 0 011.3-1.7c.3-.1.7 0 1 .2l.2.5.3.7c.2.4 0 1-.5 1.1a1 1 0 01-1-.3l-.5.6-.3.4h.4c.4.1.6.6.6 1l-.1.4-.5.7-.3.4a29 29 0 00-1.2 1.1c0 .2-.2.3-.3.5l-.2.1c.3.2.3.6.2.9 0 .1-.1.4-.3.5l-.6.6-.6.7-2 1.8-1.5 1.5-1.1 1-.3.3-.8 1c-.6.5-1.1 1.1-1.6 1.8l-2.6 3-1 1.4-1.2 1.4-1.4 1.9v-.2l-.4.7-.1.1a1 1 0 01-.6.5h.1c.2 0 .3 0 .5-.2.4-.1.7 0 .9.2l.2.3.1.3v.7c0 .6-.3 1-.6 1.5l-.6 1c.2 0 .4.1.4.3.2.3 0 .6-.1.8l-1 1 .3-.1c.3-.1.7 0 .9.2.2.3.3.6.1 1l-.3.7-.5.6-1.2 1.2-2.1 2-1.6 1.7-2 1.8c-.6.7-1.2 1.3-2 1.9l-1 1-1.7 1.3a12.9 12.9 0 01-.6.5c-.2.2-.4.4-.6.3a1 1 0 01-.5-.1.7.7 0 01-.3-.5v-.6l-1.3 1.2c0 .2-.2.3-.3.4l-.3.3H136.2c-.3 0-.5 0-.6-.2zm-30.8 2.8c-.3 0-.5 0-.8-.2-.8-.5-.8-1.9 0-2.4l.9-.6 1-1 1.4-1 1.6-.6 1-.5.6-.4.8-.9h-1.8l-1.3-.1h-1.3l-1.3-.2h-1l-1-.1-1.3-.3a226.8 226.8 0 01-3.5-.8l-1-.3H97l-.9-.2c-.2 0-.4 0-.7-.2-.3-.1-.6-.5-.9-.7l-.2-.3c-.3-.4-.3-.9-.2-1.3.1-.4.4-.7.7-.9h.1l.1.1 1.4.6 1.6.5 1.6.4 1.6.3h.4l1.6.2.9.3h.3l.3-.1h.4a15.5 15.5 0 00.7 0h.1l.5.1h4.4l3-.2h.8l.8.4.4.2h.1l.3.1h.2l.7 1.6.3.7-.3.3-.5.3h-.5l-.4.1v.2h-.1l-.3.8-.7.5-1.1.5a5 5 0 00-.6.3l-1.8 1.2-1.4 1.1-.9.7-.3.3c-.2.6-.7 1-1.4 1l-.7.3-.9.2H104.9z"/><path fill="#90D8F7" d="M43.6 71.5c-.5 0-1-.4-1.2-.9h-.3l-.7-.1-.4-.2h-.2l-.2-.1-.4-.2h-.1l-1-.5-.3-.2-.2-.2-.4-.2-.3-.2-.6-.3-.3-.2-.4-.3-.7-.3-.6-.3h-.1l-.7-.4-.5-.5-.3-.2a4 4 0 01-.5-.5l-.1-.2-.2-.1-.4-.5-.2-.3-.1-.2-.1-.2-.3-.4-.3-.9v-.3l-.1-.4-.1-.3-.2-.6-.1-1a16.5 16.5 0 010-2.3l.2-1.1.3-.7V56l.1-.2.3-.5c.1-.4.3-.7.6-1l.5-.5.5-.5a2.5 2.5 0 012.3-.3l.6-.2h.2l.3.1h.4l1 .4c.2 0 .3.2.5.3l.2.2 1.1.7 1 .5 1.4 1 1.2.8.7.5h.1l.1.1.3.2.3.2.7.5.1.1.4.2c.3.2.4.6.5 1 0 .4-.2.7-.6 1l.1.3v3.8l-.3 1.7v.4l-.3 1.7a8.7 8.7 0 01-.8 1.9c0 .2-.2.5-.4.6-.3.3-.6.4-1 .4zm81.8 133.8h-.4l-.3-.1h.2l1-.1c.3 0 .7-.2 1.1-.4l1-.7c.2 0 .3-.2.4-.3l-.2.3-.7 1a2 2 0 01-1.2.4h-.9zm17.4-153.2c-.2.2-.2.4-.2.7h-.5a10.4 10.4 0 00-1.4.7l-1 .7-.7.6-.3.4-.1.3-.1.1-.1.2a4 4 0 00-.4 1v.5l.2.8.8 1.2c0 .2.2.4.4.6l.3.5.8 1.3.8 1.5a58 58 0 011.5 3 1.8 1.8 0 00.9.2h.5l.7-.5.5-.5h.1l.2-.2.5-.2a8 8 0 001.4-.8l.6-.3.4-.2.6-.4.1-.2.3-.5v-1.1l-.7-1.2-.4-.6-.6-1-.9-1.6-.4-.7-.3-.6c-.3-.8-.6-1.6-1.1-2.3l-.5-.7-.3-.4a2 2 0 00-.6-.5h-.4c-.2 0-.5 0-.6.2zm21 56l-.7.3-.6.2a33.4 33.4 0 00-3.6 1.5l-2.5 1.3-1.3.7-1 .6-.3.3 1.4-.6 3-1.1 1.4-.7 2-1 1-.5.8-.5 1.3-.7.6-.3-.6.2-.5.3H163.9zm-41.2 4.3c-.3 0-.5.2-.7.3l-.2.2-.4.2-.2.2c0 .2 0 .5.2.6l-.1.5v2.9l.1.7c0 .3.3.6.4.9l.3.8.4.5c.1.3.3.6.6.8l.5.2.8.1h.8l1.2-.4 1-.4 2.3-1a13.5 13.5 0 001.9-1.2l.4-.4.6-.4.7-.6c.3-.2.5-.6.7-1l.4-.5.2-.5v-.3l.1-.4.1-1v-.6l-.1-.4c0-.2-.1-.5-.3-.7l-.3-.4-.6-.5-.5-.1a4 4 0 00-1.1-.2l-1.8.2-.8.2-1 .2-1.5.5-1.2.4-1.1.4c-.5 0-1 .2-1.3.3h-.5zm-15.2 83.1h-1.6l-1.4-.2-3.2-.4-1.6-.3-1.6-.3-1.6-.6c-.5-.1-1-.4-1.4-.6l-1.4-.6-1.4-1c-.3 0-.5-.3-.8-.5l-.8-.6v.1l-1.4-1-1.2-.8a11 11 0 00-.8.7l-.1-.6v-.4c0-.5-.3-1-.7-1.2l-.8-.7c-.2-.3-.6-.5-.9-.7a14 14 0 01-2.5-2.5l-.5-.6v-.4l-.4-.4-.4-.2h-.2l-.3-.5-1.1-1.8c-.5-.7-.8-1.5-1.2-2.2v.2l-.8-1.6-.7-1.4-1.3-2.9-.8-1.7-.6-1.6-.6-1.5-.6-1.5-1-3-1-3-.8-3.3-1.4-5.8-.6-2.2-.5-2.5a86 86 0 01-.6-2.3l-.5-1.4-.4-1.5-.4-1c0-.4-.2-.7-.3-1v.1l-1-2.6-1-2-1-2.1a119.4 119.4 0 01-1.3-1.8l-.7-1a60.3 60.3 0 01-1.3-2.2l-.5-1v-.3c-.3 0-.5-.2-.6-.3-.4-.4-.5-1-.3-1.5l.6-.2 1-.6.7-.5.8-.7.1-.1.7-.3.8-.5 1.4-.9.2-.2.4-.5.6-.6v-.1l.3-.5.3-.6.1-.2.3-1v-.2a33.4 33.4 0 00.1-4 44.4 44.4 0 00-.8-3.5 19.9 19.9 0 00-1.4-3.5l-1.3-2.7-.7-1.4-.7-1.4-1.5-2.8L59 95l-.7-1.4-.8-1.7-1.2-3a47.1 47.1 0 01-2-6.1l-.7-3c0-.6-.2-1.1-.3-1.6l-.3-1.5-.2-1.5-.3-1.7a21.6 21.6 0 01-.2-6.5l.2-1.6.4-3.2a15.4 15.4 0 01.8-3.1l.4-.9.3-.7.7-1.4 1.4-2.7a16.2 16.2 0 011.2-1.4l1-.8h.3c.6-.3 1.4-.4 2-.6l1.6-.5 1.8-.3 2-.4.2-.2.2-.1 2.5-.6 1-.3.8-.4h.5l.2-.1-.6.7-1.3 2.2-.8 1.6-.8 1.6a23.7 23.7 0 00-1.8 3.6 18.2 18.2 0 00-1 2.7l-.4 1.5a34.4 34.4 0 00-.9 8.5l.1 1v1l.4 1.7.6 1.9.7 1.6.6 1.4v.1a34 34 0 001.6 2.7l1 1.2 1 1 .7 1.1.8 1.5a17.8 17.8 0 002.3 3.2c.5.5 1 .8 1.6 1.2l.9.7.8.5 1 .8 1.2.5 1 .5.9.2 1.5.4 1.4.2 1.5.2h4.4l1.6-.2a21.3 21.3 0 002.3-.3c.2 0 .5 0 .8-.2l.6-.1 1-.1.6-.2.6-.1a7.2 7.2 0 001.8-.5l.7-.1h.1a2.7 2.7 0 00.7 0 7.4 7.4 0 001.8-.5h.7l1.1-.5.7-.3.3-.1 1-.5.7-.4.6-.2c.1 0 .3.1.4 0l.5-.2h.3l.2-.3.2-.2.1-.2.8-.6.4-.2a8.7 8.7 0 002-1.8l1.3-1.5c.4-.5.7-1 1.2-1.4l1.2-1.5 1.2-1.3a28.6 28.6 0 001.8-2.5l.5-1c.4-.7.6-1.5.8-2.3l.3-.9.1-.6.2-.8.3-1.3.2-1.5v-2.7l.1-1a11.5 11.5 0 00-.2-3.5c0-.7-.2-1.4-.4-2.1l-.5-2.1c0-.8-.2-1.6-.4-2.3l-.5-2.3a43 43 0 01-.8-2.4l-1.1-2.3v.2l-.8-1.5L116 47a14 14 0 00-1-1l-.3-.5a4 4 0 00-.5-1l-.3-.4-.6-.7-.4-.4-.3-.3-.6-.5-.8-.5-.2-.1-.7-.5-.6-.4a4 4 0 00-.7-.4 4 4 0 01-.5-.2l-.6-.4-1.2-.4-1.1-.1-1.6-.4h-.1l-.6-.2c-.4 0-.7-.2-1-.3l-1-.3-.8-.3-1-.3-.2-.1v-.6c-.4-.5-1-.8-1.6-.5l-.3.2.3-.3.6-.5.6-.5 1.4-1.3.7-.6.7-.6 1.4-1.2 1.5-1.2 1.6-1.5 1.4-1.2 1.7-1.4-.1.1 1.1-1 1-1 1.2-1c.2 0 .3-.3.5-.4l.4-.4.3-.2.7-.8a3.5 3.5 0 011-.6l.6-.3h1.1l1.3.3 1.2.4 1 .5 1.8.6 1.5.8 1.6 1 1.5 1 2 1.5 1 .9 1 .8 1.7 1.6c.4.3.8.7 1 1.1l.7 1.1.7.9.6 1 .6.9.7 1 1 1.3 1.3 1.5.6.7c-.2 0-.2.1-.3.2l-1 .7-1 .6-.8.7-1.2.8-1 .7-.5.3-1 .4v-.2h-.1c-.3-.3-.6-.5-1-.5h-.1c-.4 0-.8.1-1 .4-.4.3-.7.7-.9 1.1l-.2.7-.3 1-.4 1.4v1l-.2 2.2V53l.2 1.3.2 1 .3.7c0 .3.2.5.4.6.5.7 1.3 1.2 2 1.4h1.6c.3 0 .7 0 1-.2l1.4-1c.6-.5 1-1.2 1.6-1.8l.6-.6a15 15 0 011-1l.3-.3.6-.3.7-.1.5-.2c.3 0 .5-.2.8-.3l.6-.2.7-.2.6-.3.4-.2 1-.5.7-.5v-.1l.2-.2h.2v-.1l.5-.6h.2l1 1 .6.8.7.8.6.8 1 1.2.9 1.4.5.6c0 .2.2.4.4.6l.7 1.4 1.2 2 .5.7.7 1.1.6.6 1 1 .6 1 1 1 .7 1 .6.7.7 1 .3.3.3.7.2.6.5 1.6c0 .4.3.8.4 1.3l.2.6c0 .5.2 1 .5 1.4l.8.5h.3l.6-.1.3-.2-.4.5-.7.9c0 .3-.3.6-.6.7l-.1.3.1.7.2.4.5 1c0 .4.2.6.4.9l.4 1 .6 1.3.5 1.3.5 1.3.4 1.4v-.2.3l.1.1.4 1.4.3.7.2.7.3.8v.3l.1.1.5 1 .2.9v.4c0 .5-.3.9-.7 1-.4 0-.7-.3-.9-.6l-.2-.3-.6-.7-.6-.5-.7-.6-.5-.4-.7-.2h-.5l-.5.1-.7.4-.3.3-.2.1-1 .8-1 1c-.5.3-1 .6-1.3 1l-1.4 1-1.5 1.1-1.6 1.1-1.4 1-3 2-3.2 1.8-1.5 1-1.5.7-1.1.7-.7.3-.6.4-1.4.7-1.4.6-1.2.7-1.5.7-1.2.7-.8.4-.8.4-.1.2 1 .7c0 .2.3.3.4.5.3.3.5.6.6 1l.2 1.3v.5c0 .2 0 .5-.2.8l-.2.5a5.1 5.1 0 01-.6 1.3l-.8 1.1-.8.9-.7.8v.7l.3.4v.1l.7 1 .4.6h.5l.5-.1.3-.2a20.3 20.3 0 002.9-1l-.2-.2h.2l1.7-.9 1.8-.9.4-.1-.8.4h.2l-1.4.8-.7.4 1.5-.7 2-1 2-1a70 70 0 012-.8l.5-.2.8-.5 1-.5-.6.2-.7.3 2.8-1.4 1.4-.7 1.3-.8 1.6-1 1.6-.9 1.6-.8a25 25 0 011.8-.9h-.1l1.6-.7 1.5-.6 1-.5 1.2-.5a38.3 38.3 0 012.6-1l1.4-.6h.1l-.2.1-.3.3-.3.2-2 1.1 2-1.1.3-.2.3-.3c.3-.2.7-.4 1.1-.4.5 0 1 .3 1.2.7l.3.6v1l.1.6v1.5l.1 1.5.1 1.7v3l-.1 1.6v12.8l-.5 6.7-.2 2v.2l-.1.8-.1 1.7-.1 1.4-.2 1.7v1.7l-.4 3.3-.1.8a8.5 8.5 0 01-.4 1.4c.3 0 .5-.1.8 0 .7 0 1.4.5 1.4 1.3.1.7-.4 1.4-1.1 1.6h-.7l-.4.2-.3.1-.5.8-.6 1.1-1.4 2.2-1.5 2.3a41.8 41.8 0 01-2.5 3.3l-.8 1.2-1 1.3-1.1 1.2-1.2 1.2-1.3 1.2-1.2 1.1-2.5 2.3-.8.7-1 .8-.8.8-.8.8-2 1.5-1.7 1.3-1.1 1-.6.5c-.2 0-.4.2-.6.4l-1.2.8-1.2.9-1.2.8-1.4.9-.7.3-.7.4c-.3.3-.8.4-1.2.7l-1 .6-.9.5-1 .6-1 .6-.9.5-.8.4-.8.5c-.3 0-.6.2-.8.3l-.7.4-.5.1h-.4l-.2.2v-.1l-.5-1v-.2l-.3-.7-.4-.7-.6-.9-.6-.4-.8-.1h-.2c-.3-.1-.6 0-.8 0l-1 .6h.1a21 21 0 00-2.4 1.7l-1.2.8-1 1-.6.6-.4.5v.1l-.3.3a3 3 0 00-.2.5l-.2.3-.3.1v.4l.3.7-2.2.1-3 .2h-1.6l-1.6.1h-.2z"/><path fill="#90D8F7" d="M86 42.5l1.5-.6 1.5-.5 1.5-.6.3-.2 1-.4.7-.3 1.1-.6 1.1-.8-.4.4-.8.5-1 .6a22.8 22.8 0 01-3.7 1.7h-.1l-1.8.5-1.1.3h.1zm-8.2 151.3a11 11 0 01-2.7-2.8 3 3 0 01-.3-.8c0 .2.2.3.3.5l.7.7.6.3.2.4.5.6c.2.4.4.8.8 1a3.2 3.2 0 00.9.5l.3.2c-.5-.1-.8-.4-1.3-.6zm3.7.1l.4-.2-.9.5-.4.1c.3 0 .6-.3.9-.4zm-3.8-9l.6-.7a11.3 11.3 0 011.2-1.1l.1.3-.7.6-1.2 1-.8.7.8-.8zm37.8 9.3l-.2-.1c-.1-.2-.2-.6 0-.8.1-.2.4-.3.7-.2l.2.1-.1.4-.1.3c-.2-.1-.4 0-.4.1v.4l.2.3a6 6 0 00-.3-.5z"/><path fill="#FCDFD3" d="M169.4 154.6a.8.8 0 010-.7c0-.2 0-.4.2-.5l.2-.3.1-.1c.1-.2.3-.3.5-.3.3 0 .5.1.7.4h.2l.2.6c0 .2-.1.5-.4.6l-.1.1c-.1.4-.5.7-1 .6a.5.5 0 01-.6-.4zM132.1 58c-.8-.2-1.6-.7-2.1-1.4l-.4-.6-.2-.7-.3-1-.1-1.3V48.7a36.7 36.7 0 01.5-2.5l.3-1 .3-.6c.2-.5.5-.8.8-1.1.6-.6 1.6-.5 2.2 0v.2l1-.4.5-.2 1-.7 1.2-.7v-.1l.9-.7 1-.6.9-.8 1-.5 1.6-.7.9.2h.6l.3-.1h.7l.5.1.8.2h.4l.8.2h-.2.3c0 .2.2.2.3.3l.8.3.1.1.3.3.3.5a7.5 7.5 0 01.5 1.5 15.3 15.3 0 01-.2 3.3v.4l-.8 1.7-.5.8-.6.7a7 7 0 01-1.4 1.5l-.7.5-1 .5-.4.2-.6.3-.7.2-.6.2-.8.3-.5.2-.7.1-.6.3-.4.3a6 6 0 00-.9 1 8 8 0 01-.6.6l-1.6 2-1.4.9-1 .3h-.4a9 9 0 01-1-.1zm32.3 17c-.4 0-.6-.3-.9-.6l-.5-1.3-.1-.6-.5-1.3a40.7 40.7 0 01-.6-2.2l-.4-.8-.5-1.6v-.2l-.1-.2-.5-.4v-.2l-.1.1h-.2l.1-.2c-.4-.4-.6-1-.3-1.5a1.2 1.2 0 011.6-.6l.4-.5a16.7 16.7 0 012.4-3l.9-.7 1-.8 1-.7 1-.4c.4-.2.9-.2 1.3 0 .2 0 .4.1.5.3l.3.6.2.5c.2.3.3.8.3 1.2l.1 1.2c.1.5 0 1 0 1.6v.6l-.2 1.2-.3 1.3-.4 1.2-1 2.4-.6 1-.6 1-1 1.6-.6 1-.5.5c0 .2-.2.2-.4.3l-.6.2h-.2zm-40.9 46.2a2 2 0 01-.5-.2 2 2 0 01-.7-.8c0-.2-.2-.4-.3-.5l-.3-.9-.4-.8v-.7l-.2-.7v-2.2l.2-.5c-.2-.1-.3-.4-.2-.6l.2-.2.4-.2.2-.2c.2-.2.4-.2.7-.3h.5l1.3-.2 1.1-.4 1.2-.4 1.6-.5.9-.2a22.4 22.4 0 012.6-.4c.3 0 .7 0 1 .2l.6.1a1.6 1.6 0 01.6.5l.3.4c.2.2.2.5.3.7v.4l.1.6v1l-.1.4-.1.3-.2.5-.4.6a4.7 4.7 0 01-1.4 1.5l-.6.4-.4.4-1 .6-1 .5-2.1 1.1-1.1.4a6.5 6.5 0 01-2 .4 3 3 0 01-.8-.1zm-44.7 73l-.3-.1-.6-.4c-.4-.2-.6-.6-.8-1l-.5-.6-.2-.4a3.7 3.7 0 01-1.9-2c-.2-.6 0-1.2.4-1.7.4-.7.9-1.3 1.5-1.9l1.3-1 1.2-1 .7-.7a1 1 0 01-.1-.6l.1-.5c.3-.5.8-.8 1.4-.6l.3.2.4.4v.4l.5.6 1.6 1.8 1 .7.9.7.8.7c.4.3.7.7.6 1.2l.1.7V188.8l-.1 1-.5.5-.8.7-1 .7-1 1-.9.6-1.4.6-1.1.5h-.5c-.4 0-.8 0-1.1-.2zm45.9 11c-.5 0-1-.2-1.6-.4l-1-.7-.4-.3-1-.8-1.1-1.2a14.2 14.2 0 01-1.4-2l-.5-.7-.4-.9-.4-.7-.6-1.5-.6-1.6c-.1 0-.2-.2-.1-.3 0-.3.2-.3.4-.2v-.3l.3-.5.3-.3.5-.6.5-.6 1-1 1.2-.8 1.2-.9 1.2-.8 1-.6h.7a1.2 1.2 0 01.2 0l.9.1c.2 0 .4.2.5.4.3.2.5.6.6.9l.4.7.3.7v.2l.5 1 .3 1c.3.3.5.8.7 1.2l.7 1.8.4 1.2.4 1.4v.7l.2 1c0 1-.2 2-.7 2.8l-.8 1-.5.4-1 .7-1.2.4h-1z"/><path fill="#fff" d="M152 53.4c-.5-.2-.7-.6-1-1l-.4-1-.1-.3-.6-.9-.4-.5-.1-.3c-.3-.3-.5-.7-.4-1l.2-1.2V47l.2-1.2v-.6a52 52 0 00.2-3.8l-.3-.6c0-.2 0-.3-.2-.5v-.1l-.2-.2-.4-.4h-.1l-.8-.4-.3-.2-.2-.1-.6-.2h-.5c-.3 0-.5 0-.8-.2l-.5-.1h-1.6c-.4 0-.8 0-1.1-.3-.4-.4-.5-1-.7-1.5l-.4-.7-.7-.8-.4-.4c-.2 0-.3-.2-.4-.3a9.8 9.8 0 00-1.4-1l-.4-.2a12.3 12.3 0 00-1.9-.6h-.2l-.7-.7-.5-.9-.5-.7a25.6 25.6 0 00-1.8-2.5l.1.1a9.9 9.9 0 00-.2-.2 37.4 37.4 0 01-2.3-2l-1-.9-.8-.6a8 8 0 00-.6-.4 22.9 22.9 0 00-2.4-1.5l-1.2-.6-.7-.3-1.1-.5c-.2 0-.3 0-.5-.2-.4.2-.9 0-1-.3v-1c0-.3.1-.7.3-1 0-.5.2-.8.3-1.2l1-2.4.6-1 .8-1.2 1.5-2 .8-1 .8-1 1.9-1.8 2-1.6 2.2-1.5h.1c.8-.5 1.7-.9 2.5-1.2l1.5-.4 1.3-.2 1.4-.2h1.2l1.9-.2 1 .1c.5 0 .9.2 1.3.3h.1l.9.1.6.2 1.1.4 1 .4 1.3.5 2 1.4.9.8.9.7.6.3.5.5.8.4 1 .9.6.5 1.1 1c.4.2.7.6 1 1l.8 1.2.8 1.4.7 1 .7 1.2 1.2 2.5.9 1.4.7 1.4a6.8 6.8 0 01.8 2.3l.4 1.6.7 3.1v.8l.1.8V32c0 1 0 1.8-.2 2.8-.1.9-.4 1.8-.7 2.7l-.4 1.2-.5 1.4a36.7 36.7 0 01-3 5.3l-1 1.4-1.4 1.7-1.6 1.4-1.3 1-1.4 1-.5.5a26.1 26.1 0 00-1.3.8l-.3.1-.3.2h-.5l-.6-.1zM88.6 94.7h-2.9l-1.5-.3-1.4-.1-1.5-.5c-.3 0-.6 0-.8-.2a18 18 0 01-1-.4l-1.3-.6-1-.7-.8-.6-1-.6-1.5-1.2-1.3-1.6-1-1.6-.7-1.5-.8-1-1-1.1a28.2 28.2 0 01-1.9-2.6 13 13 0 01-.6-1.3v-.1l-.7-1.5-.7-1.6-.6-1.8-.3-1.8v-1l-.1-.9v-1.9l.1-1.9.2-1.9.5-2.8.4-1.5.5-1.4.5-1.3a64.4 64.4 0 011.9-3.7l.7-1.5.9-1.6 1.3-2.3.5-.6.4-.1.7-.2c.3 0 .7-.2 1-.4l.4-.1 1-.3 1.2-.5 1.8-.8 2.1-.9.7-.2h-.2l1.1-.4 1.2-.4 1.9-.6 2-.6a85 85 0 011.6-.5h.2a32 32 0 003.6-1.6l1-.7c.4-.1.6-.3.9-.5l1-.9 1.2-.9c.2 0 .3-.2.4-.3l.8-.5c.6-.3 1.2 0 1.5.4.1.2.2.4.1.6l.3.1.9.3.9.3.9.3 1 .4.6.1h.1l1.6.4 1.1.2 1.2.3.6.4.5.3.7.3a7.7 7.7 0 011.3.9l.2.1.8.5.6.6.3.2.4.4.6.7.4.5a3.9 3.9 0 01.6 1.5l1.1 1 1.2 1.2.9 1.4-.1-.2a16.3 16.3 0 011.6 3.5l.3 1.2.5 2.3.4 2.3.5 2.1a30.2 30.2 0 01.7 4.4v1.1a14 14 0 00-.1 2.5v1.5l-.3 1.5-.3 1.3a11.4 11.4 0 00-.3 1.3l-.3 1-.7 2.2-.6 1-.5.8-1.3 1.7-1.2 1.4-1.2 1.4-1.2 1.4-1.3 1.5-1 1-1 .8-.4.2-.8.6-.1.2-.1.3-.3.1-.2.1h-.1a3 3 0 01-.5.3h-.4c-.2 0-.4 0-.6.2l-.7.3-1 .5-.3.2c-.2 0-.5.1-.7.3l-1 .4H102.7l-.6.2a7.6 7.6 0 01-1.6.4h-1.1l-.7.3-1.1.2-.5.1-.6.2-1.1.1a6 6 0 00-.6.2l-.8.1a26.9 26.9 0 00-2.3.3 19.2 19.2 0 01-3.1.3v-.1zm54.8-28.3l-.6-.3c-.4-.2-.5-.6-.7-1l-.1-.5-.7-1.4-.8-1.5a44 44 0 01-1.1-1.9l-.4-.5-.8-1.2c-.1-.2-.3-.5-.3-.8v-.6l.5-1 .1-.2.2-.3c0-.2.2-.3.3-.4l.7-.6 1-.7.8-.4.6-.2.5-.2c0-.2 0-.4.2-.6.2-.2.6-.4 1-.2l.6.5.3.4.5.7c.5.7.8 1.5 1 2.3l.4.5.4.8.8 1.5.7 1 .4.7c.2.3.5.7.6 1.1.1.4.2.8 0 1.2 0 .2 0 .3-.2.4l-.1.2a138.3 138.3 0 00-1 .6l-.6.4-.7.4a5 5 0 01-.7.4l-.5.2-.2.1-.1.1-.5.4-.8.5h-.7z"/><path fill="#9F94A4" d="M131.7 44a3.4 3.4 0 01-1.1-.5l-.5-.5-.6-1-.3-.7a5.3 5.3 0 010-1.7c0-.5.2-1 .4-1.4.2-.6.4-1.2.8-1.8l.5-.6.9-.9 1.4-1 1.5-.4a3 3 0 011-.2h.7a3.9 3.9 0 011.4.4c.5.2 1 .5 1.3.9.2 0 .3.2.5.3l.4.6.6.8.3.8.3 1v-.2.8a1.1 1.1 0 01-.7.7l-.4.3-.5.3-1 .4c.1.3 0 .5-.3.6-.3.1-.5 0-.7-.2l-.9.4-.5.3-.3.3-1 1.1-.2.2-.2.2-.3.2-1 .4-.5.1h-1z"/><path fill="#fff" d="M69 40l.5-.4-.5.4zM42.4 70.6c.2.5.7.8 1.2.9h.1c.4 0 .7-.1 1-.4.2-.1.3-.4.4-.6a15.6 15.6 0 00.7-1.9c.2-.5.3-1.1.3-1.7v-.4l.3-1.6v-1.6l.1-.5v-2.1a1.2 1.2 0 000-2c-.2 0-.3 0-.4-.2H46l-.7-.6-.3-.2-.2-.1-.2-.1-.1-.1-.7-.5-1.1-.8h-.1l-1.4-1-1-.5-1.1-.7-.2-.2-.5-.3-1-.3H37l-.3-.2h-.2a1 1 0 00-.6.2h-.4l-.6-.1h-.4a2.4 2.4 0 00-1.4.8l-.5.6a4 4 0 00-.7 1l-.2.5v.2l-.4.9-.2 1v.1a15.4 15.4 0 000 3.2l.1.6.1.3.1.4v.4l.4.8.2.3v.1l.1.2.1.2.2.3.4.4.1.1.1.2s.2 0 .2.2l.5.4.3.2.5.5.7.3.7.4.7.3.4.3.3.2.6.4h.2l.5.4h.1l.4.3 1 .5h.1l.4.2h.2l.2.1.4.2.6.1h.4zm12.5 53l-2-.6c-1-.4-2-.6-3-.8l-1.7-.4-1.4-.3-1.2-.3c-.5 0-1-.2-1.4-.4l-2.4-.7L37 119c-.4 0-1-.1-1.4-.3-.2 0-.4 0-.6-.2h-.1l-2.3-.9-2.3-1c-.3 0-.7-.3-1-.4a552.4 552.4 0 00-3.3-1.6l-1.1-.5-1-.6-1-.6-1-.6-1-.6-1.2-.7-.8-.7-.4-.8v-.5l-.2-.5-.3-1-.4-1.6-.4-1.8-.5-1.8a27.7 27.7 0 01-.4-1.9l-.3-1-.3-1.4-.1-.5-.5-1.3-.1-1.4-.2-2v-.1l.2-.1 1 .1.3.4.5.7.4-.1h1.1c.3 0 .6 0 1 .2h.6l.8.2h.9l1 .1H24l1.5.1h1.2a19.2 19.2 0 002.6.2h1.6c.6.1 1.1-.1 1.5-.6h.3l-.2-.3v-.1c.3-.7 0-1.6-.8-1.8l-1.3-.6-.4-.2-.6-.4.1.1-.9-.6h.2l-1-.6-.2-.2-1.4-1.5-1.5-1.4-1.2-1-2-1.2c-.4-.4-.9-.8-1-1.3a2 2 0 010-1.2l.7-1.3 1-1.5.5-.9c0-.3.2-.5.3-.7l.3-.6.6-1.2.7-2 .4-.7.3-1 .7-1.4V70l.3-.7c.3-.3.4-.8.3-1.3l.1-.7.1-1.5v-.4h-.1v-.1h-.2l-1.6.7-1.1.5-1.2.5a37.3 37.3 0 01-4.5 2l-4.5 2-.7.3-.8.5a4 4 0 01-2 .6l-1-.1-.9-.6-.7-.6a21 21 0 01-.7-.6l-.9-.7-.6-.7a14 14 0 00-.9-.8l-.7-.7c-.2-.3-.5-.4-.8-.6a1 1 0 00-.4-.2c-.4-.4-.8-.9-1-1.4L1 64.2l-.5-1.5c-.1-.6-.2-1.3-.1-1.9l.2-2 .4-2 .4-2 1-4 .6-2 .6-2L4 45l.5-1.7.6-1.6L6 40l1.3-3.2 1.3-3 .1-.2h.2l.4-.1c0-.2.2-.3.3-.4a9.3 9.3 0 01.7-1l.6-.8 1.5-2 .5-.7.6-.7 1.4-1.7 1.4-1.6 1.6-1.7.7-.7a24.3 24.3 0 011-1.1c.1-.1.2-.3.1-.4l1-.7a143.7 143.7 0 013.5-2l2.5-1 1.5-1 1.7-1 1.7-1 1.8-1 1.8-1.1 1.9-1 1.8-.8 1.8-.7 2-.7 1.9-.7a255.2 255.2 0 015.8-1.9l2.1-.5 2-.3 1-.1 1-.1h.3l1.1-.2h1.4l2.6-.1 1.8-.3h1l.8-.2 1.9-.3.8-.1.9-.1 1.7-.1 1.9-.1h2.2a50.7 50.7 0 013 0l1.8.2h2l1 .2 1 .2 2 .3 1.9.3c1.3.2 2.5.6 3.7 1.2l3.5 2 1.6 1 1.5 1.2.4.3 1 .7.8 1 .6.5.6.7.4.4.2.4a2 2 0 01-.1 1.8l-.4.4-.6.6-.6.6-.6.5-.9 1-1 .9-2 1.6-3 2.4-.9.7-.8.6c-.3.2-.5.5-.8.6l-.8.6a41.5 41.5 0 00-5.3 4.3L82.4 32l-1 1c-.5.4-1 .7-1.3 1.1l-2.2 2a55 55 0 01-2.5 2.2l-2.3 1.9-1.9 1.6-2.8 2.6-1.6 1.4-1.3 1-1 1-.2.1-.3.2v.1l-.5.2h-.2c-.2 0-.3.3-.2.4l-1.2.8-1.4.7-1.3.6-.4.2-1.1.8a9 9 0 00-.7.7l-1.3 1.7-.6 1a18.8 18.8 0 01-1 1.5l-.4 1-.6 1.3a29.9 29.9 0 00-1.4 10v4.5l.1 1.7.1 1 .2 1.3c0 .7.2 1.4.3 2l.5 2.4a40.3 40.3 0 002 5.9l1.6 3.8 1.5 3.7.9 2 .4.7c0 .4.2.7.3 1l.2.2.6 1.4.4 1 .4.7 1.1 2.6 1 2.6.8 2.7.4 1.5.2 1.5a5 5 0 01.1 2l-.5 1.5-.7 1.5-.8 1-.8.9-.9.8-1.2 1.2-.6.5a9.5 9.5 0 01-2.3 1l-.8.2c-.5 0-1-.2-1.3-.3z"/><path fill="#EE3F26" d="M16.1 107.6l-.6-.4-.3-.3-.6-.7A15.4 15.4 0 0112 103l-.8-1.4-1.2-2.2-1.4-2.2-.3-.5L8 96l-.6-1L6 92.6a121.7 121.7 0 01-2-5l-.3-1-.3-.9-.5-2-.5-2-.2-1-.2-1v.1l-.3-1.4a13.6 13.6 0 01-.2-2.7v-1.2l.2-1.3a6.8 6.8 0 010-.7V69.6c0-.1 0-.3-.2-.4h-.1c-.2-.3-.4-.5-.5-.9A1.2 1.2 0 013 67.1l.8.6.7.7.9.8.9 1L8 72l.7.6a5.7 5.7 0 00.8.4l.6.2.5.1.6.1h.6l.7-.2 3-1.2 1.1-.6 1-.8c.2 0 .3-.2.5-.3l.5-.3 1.8-1c.6-.4 1.2-.8 1.8-1l1-.5 1.4-.5c.7-.2 1.4.1 1.7.7.3.6.2 1.2-.2 1.7l-.3.7c0 .3-.2.6-.4.9a8 8 0 00-.3.7l-.3.9-.4.8-.6 1.9-.7 1.2c0 .2-.2.4-.3.5 0 .3-.2.5-.3.8l-.5.9-1 1.5-1 1.5-.6 1 .2.2 1 1a60.7 60.7 0 008 6h-.2l1 .6h-.2a12.5 12.5 0 011 .5l1.4.6c.7.2 1 1 .8 1.8-.2.7-1 1.1-1.6 1h-1.6a20.5 20.5 0 01-2.9-.3l-1.4-.2h-1.1l-1.4-.2-2.7-.4-2.5-.4-1.3-.2-1.2-.2h-.1v.2l.2 2 .2 1.7v1l.2.9a91.1 91.1 0 001.1 5l.2.7v.4l.2.8.2.3.3.5c0 .1 0 .3.2.4.1.3 0 .8-.3 1a1 1 0 01-.6.3l-.4-.1z"/><path fill="#EE3F26" d="M13.8 74l-.4-.4-.3-.6c-.1-.3-.1-.8.1-1a2 2 0 011.1-.8l.5-.1 1.3-.4 1.4-.4 1-.3.5-.3h.1c.5-.4 1.3 0 1.2.6l-.1.4-.4.3-.3.2.2.3c0 .3-.2.5-.4.6l-.6-.1H18.4l-1.9.8h.1l-1.1.5H15a.7.7 0 01-.7.9l-.5-.2zm50.3-24.7l-.1-.2a1.8 1.8 0 01-.7 0c0 .3-.3.2-.3 0V49c0-.2 0-.5.2-.5h.3l.4-.3.3-.3h.3l.6-.3.5-.4.7-.6.8-.7 1-1 .8-.8 2-1.8A60.5 60.5 0 0175 39l4.2-3.3 2-1.6 2-1.7 2-1.7 2-1.5 2-1.7 1-.8 1-.8 1.7-1.6 1.8-1.4 1.7-1.4 1-.7.8-.8 1.2-1.3 1.3-1.5.5-.7a11.6 11.6 0 011.4-1.6l.7-.7.5-.7.5-.5.5-.6c.3-.3.8-.5 1.2-.6h1l.8-.1 2.4-.4 1.2-.2c.5 0 .9-.2 1.3-.3a104.9 104.9 0 004.9-1l.8-.2.8-.2h.9l.7-.1h.2l.3-.2h.2c.2 0 .5 0 .6.2.2.3.2.6 0 .9l-.2.4-.6.7-1 1-1.3 1.3-2.6 2.4a79.9 79.9 0 00-2.4 2.4l-.8.7-.8 1-.7.8-.8.9-1.6 1.7-.8.7-.7.9-1.6 1.7-1.8 1.9-1.9 1.7-1.4 1.5-1.8 1.8-1 1c-.2.4-.6.8-1 1.1l-.4.4-.9.9-.9.7-1 .8-1.2.6-1 .6-1.2.5-.6.2-.6.2-1.2.4-.7.3-1.3.6-1.6.6-1.9.8-2 .9h.2c-.3 0-.5 0-.7.2l-2.2.9a40.6 40.6 0 00-2.9 1.3l-1 .3h-.4l-1 .5-.7.2H71.2l-.2.2-.9.3-1 .3-2.4.6a64.3 64.3 0 00-2 .6 1 1 0 01-.6-.3z"/><path fill="#EE3F26" d="M106.7 26.5a.8.8 0 01-.6-.8c-.2 0-.2-.3-.1-.4l.3-.3h.2l1.4-1.3.8-.7.4-.3 1-1.3 1.5-1.5 1.4-1.5 1-1 1-1.1 1-1 .6-.7c.3-.4.6-.9 1-1.1.4-.2.7-.2 1 0 .3.3.3.6.2 1l-.3.5a8 8 0 01-.4.5l-.7.9c.2.6-.2 1.3-.5 1.8a9.2 9.2 0 01-1.7 1.7l-.7.6-1.5 1.1-1 .9-.7.5-1.8 1.6-.9.8-.6.5-.6.5a.8.8 0 01-.7.1zM62.6 50.2c-.2 0-.3-.3-.3-.6l.3-.3.4-.2.2-.1 1.6-1h.1l.4-.2.6-.2.6-.2 1-.4.6-.3.7-.3c.2-.1.4 0 .5.2.1.2 0 .4-.2.5a1032.7 1032.7 0 01-1.2.6l-1 .4h-.2v.1c0 .3-.3.5-.5.7l-.5.2a12.7 12.7 0 01-1.5.7l-.5.2-.4.2a1 1 0 01-.4 0h-.3z"/><path fill="#fff" d="M91 286.4a24 24 0 01-5-1.1h.1l-.3-.1-2.5-.7-.7-.3-.6-.3-1.1-.8-.7-.4c-.5-.3-1-.7-1.4-1.2l-1.5-1.5-.4-.8-.5-1.1c-.2-.6-.3-1-.2-1.6 0-.3 0-.6.2-1l.8-3.2 1.6-3.2 1.4-1.9a26 26 0 011.8-2l1-.7c.7-.3 1.4-.6 2.1-.6a54.4 54.4 0 012.4-.2h1.9l1.3.1 1.3.2c.4 0 .8.2 1.2.4l1.2.3 1.5.7.7.3 1 .8.5.5.5.5.5.6.8 1c.1.3.3.5.3.8l.4.6c.2.5.2 1.1.2 1.7l.1 1c0 .3 0 .5-.2.7l-.3 1.5-.2.9-.2.9-.7 1.8-.1.2a52.6 52.6 0 00-1.1 2.4l-.7 1.2-.8 1.1-.5.5-.8 1c-.3.4-.8.5-1.3.7-.3.2-.7.3-1 .3h-2zM291.7 192h-.8l-2-.6-.8-.2c-.5 0-1-.2-1.5-.4-.8-.3-1.6-.8-2.3-1.3-.5-.3-1-.7-1.4-1.2l-.5-1-.2-.4c-.2-.6-.2-1-.2-1.6v-2.2l.1-1.5a15 15 0 011.2-3.3l.8-1.2.5-.5 1.1-1 1-.5.4-.2c.7-.4 1.5-.8 2.3-1h2.4l1 .5.3.2 1.2.5c.2 0 .3.2.5.4l.3.2c.4.3.8.5 1 .9h.1c.4-.3 1-.4 1.5-.2l.7.6.9 1c.4.6.7 1.4 1 2.1l.3 1.5.3 1.2c.2.6.2 1.2.2 1.8l-.1 1-.3.9c-.4 1-1 2-1.8 3l-.5.5-1 .7-1.1.5-2 .6-1.3.2a5.2 5.2 0 01-1.3 0z"/><path fill="#000" d="M168 99l1 1.6 1.1 1.6.7.8.2.4h.1v-.1h.1v-.1l.1-.1v-.5l-.2-.4-.2-.5-.3-.5-.5-1.1-.4-1.3-.5-.8-.4-.9-.5-.9-.5-1-1.2-2.2-.3-.3a6 6 0 00-.6-.4l-.5.2h.2-.2v.4l.1.6.8 1.9.3.6v.1h.1v.2l.3.4.2.5.3.5.7 1.3zm-4.8-5.2l-.7.4v1l.1.3.4 1 .3.6.6 1.3 1 2 .5 1 .9 1.5c0 .2.2.4.4.6l.5.5.7.5a12.5 12.5 0 011.2-.3l.5-.2-.2-.3-.7-1-1.3-1.8-.7-1.2-.2-.3-.5-.8-.5-1-.5-1.1-.5-1.3-.6-1.4-.1-.4-.6.4zm-1 9.1l.4.5.6.8.4.4.3.2.4.2.5.5v.3l1.2-.5a7.4 7.4 0 01-2-2.5 70.7 70.7 0 01-1.4-3l-.3-.7-.5-1.3-.5-1.3-.4-1.4a24.6 24.6 0 01-2 1v1.4l.3.6.2.4.5.7.5 1 .5 1 .5.7.8 1zm-7.5 3.8l.2.2.8.9.8.8 1.2 1 .8-.4 1.2-.7 1.4-.7 1.6-.8.4-.2-.4-.2-1-.8-1-1.2-1-1.7a24.9 24.9 0 01-1.3-2.8l-.2-.5-.1-.5-.4-1.2-.1-.9-1 .7h-.1l-1.7 1.2v.1l.1.4.4.7.3.5.4.7 1 1.6c.5.8 1 1.5 1.7 2.2l.9 1 .8.6c.3.3.4.8.2 1.2a1 1 0 01-.5.3 1 1 0 01-.3 0h-.3c-.8-.3-1.5-.9-2-1.5l-.6-.7-.4-.5-.5-.8-.2-.4-.2-.5-.2-.4-.2-.4a36.2 36.2 0 01-1-3.7l-2.4 1.4h-.1c.3.2.5.4.6.8v.7h.1l.6 1.4.6 1.2v-.1c.1.4.4.9.7 1.3l-.1-.1.5.8zm-1.2 4.9h.1l.7-.3 2-1.1h.2c0-.2-.2-.2-.3-.3l-.9-.7-.8-.6-1-.8-.3-.2-.2-.2-.3-.3-.3-.4-1-1.3-.8-1.6a3.8 3.8 0 01-.3-2.1l-1.6 1-1.1.9c.2 0 .3.3.3.5l.2.6v.2l.5.7c0 .2.2.4.4.5l.2.4.1.3v-.1l.5.8.5.7.7 1v-.1l.6 1 .8.7.5.5h.2v.1l.1.1h.3zM150 113l.2.2.1.1h.3a31.8 31.8 0 002.3-1.4l-.6-.3-.8-.5-.3-.2-.2-.2-.3-.1-.7-.8a33.7 33.7 0 01-.5-.4l-.6-.5c0-.2-.2-.3-.4-.4l-.8-.9-.3-.2a6 6 0 01-1.2-1.6c-.2-.3-.3-.8-.3-1.2l-1.2.9c-.1 0-.2 0-.3.2l.2.2.3.9.5 1 .4.4c0 .2.2.4.3.5.4.7.7 1.4 1.2 2 0 .2.2.3.3.5l.4.4.8.6.7.4h-.1.1v.1h.1l.4.3zm78.8 5.3l1 .9 1.1.8 1 1 1 1 1 .8 1 1 1.9 1.9 1.3 1.2 1 1 1 .9 1 .9.6.5.2-.1.9-.4.8-.3h.4a11 11 0 00.9-.7l.1-.2v-.3l-.1-1.4a74 74 0 00-.5-2.5l-1-3.4-1.2-3-.1-.2-.8-1.4-.5-1-.2-.3-.2-.4-.7-1.7-.3-.9-.3-.7-.6-1-.4-.8-1-2-.3-.3-.4-.3-.7-.5-.7-.4h-.2.1l-.2-.1h-.7.1l-1.4.6-.7.3-.7.3-.9.4-1 .4-2 .9c-.4 0-.7.2-1 .3l-1.1.5-2 1a14.2 14.2 0 01-2.3.6l1.3 1.2 1.5 1.3 1.6 1.5 2.2 1.9 1.2 1.2zm-21.2-7.6l1.5 1.4 1.4 1.4 2 1.7 1.9 1.8a41.6 41.6 0 012.7 2.4l1 .7 1 .8 1.7 1.6 1.8 1.6 1.5 1.3 1.6 1.3 1.6 1.4 1.6 1.4 2.3 1.9 2.3 2 1.1 1 1 1 1.9 1.5 1.7 1.7 1.7 1.8 1.6 1.7 1.6 1.8 1.6 2a53.7 53.7 0 012 2l1-1 .4-.5.3-.3.3-.3 1.1-1.1.8-.7.4-.3.5-.5.6-.5-.4-.4-.8-.5-1-.6-1.6-1.2a28 28 0 01-1.8-1.5l-.7-.7-.7-.7-1.7-1.5-1.6-1.5c-.4-.5-.9-1-1.4-1.3a1 1 0 01-.7-.3 1 1 0 01-.3-.8 27 27 0 00-.8-.8v.1a48.5 48.5 0 01-2.4-2.3l-1.6-1.5-.8-.8-.8-.8-1.6-1.5-.8-.8a62 62 0 00-.8-.8l-2.2-1.9-1.2-1-1.1-1.1-.5-.4-1.6-1.5-1.7-1.5v.1l-2-1.9-2-1.9-2-2-2-1.9-1.6-1.5-1.3-1.1-1.3-1.3-.7-.5-.8-.7-.8-.6-.7-.7a64 64 0 00-.9-.6l-.8-.6a16.6 16.6 0 01-1.6-1.2l-.5-.3-.5-.3-1.1-.8a32 32 0 00-1.2-.8l-.6-.4-.8-.5-1.2-.7-1.3-.7-1.4-.6-.3-.1-.5-.2-1-.3-1-.3-1-.3-1-.4-.5-.1-1-.2H188l-1.2-.1h-.8l-1 .1h-7.3l-.9.2-1.2.2-1 .2-1 .3c-.1 0-.3 0-.5.2a5 5 0 01-1 .4l-.8.2-1 .2a5 5 0 01-1.1 0h-.4l.6 1.2.3.6.4.6.8 1.3.7 1.3.5 1 .3.3h.2v-.1c.2 0 .3-.1.3-.2h.1a10 10 0 012.2-1c.4 0 .7-.2 1.1-.3a8 8 0 011.5-.4l1.4-.4 1.6-.2 1.6-.2h2.4a5.9 5.9 0 011.6.1l.9.3c.5.1 1 .4 1.6.7l1 .5 1.3.5 1.1.7a105.4 105.4 0 002.7 1.4l1.2.5 1.3.7a16.5 16.5 0 012.3 1.5l1.2.8 1.2 1 2.2 2 1.6 1.4 1.5 1.5zm-25.8 54.5l.1 1c0 .5.2 1 .3 1.4l.4 1.4.5 1.2.5 1.2a27.5 27.5 0 001.8 2.8l1-.4.7-.2 1.6-.7 1.4-.5 1.6-.8.9-.4 1.1-.6 1.2-.5 1.1-.4 2-1c.5 0 1-.2 1.4-.3l1-.3 1.1-.4 1.4-.5 1.1-.5 1.3-.5 1-.5h-.1a60.6 60.6 0 013.4-1.6l2.1-1 2.3-1 1.1-.6 1.3-.5a52.4 52.4 0 002.3-.8l.7-.2c.3 0 .5-.2.8-.3l1-.5.7-.3.9-.3.7-.3 1.6-.8 1.7-.7.8-.5.9-.4 1.7-.9 1.5-.8 1-.7.5-.5.5-.5.3-.5v-.5l.1-.7.1-1.7v-.5l-.4-1.5-.4-1-.2-.7-.4-1.5c0-.3-.2-.6-.4-1l-.3-.8-.3-.9-.2-.5v-.6a5.9 5.9 0 01-.1-1.4c0-.3 0-.6.2-.8l.4-.7.7-.5.3-.2-.3-.3-1.6-1.3-1.6-1.4-1.7-1.3-1-.8-.7-.8-.9-.7-1-.9-1-.9.2.1-2-1.8-1.6-1.6-1.7-1.7-1.8-1.8-.7-.6-2.2-2-2.2-2h-.1l-.6.5-.4.4-.5.5-1 .9-.2.1-.1.1-.1.1-.2.1-1.7 1.5v.1l-.3.1v.1l-1.7 1.4-.6.6-.8.6-1.4 1-1.8 1.6-.8.8-.8.8a95.7 95.7 0 00-3.5 3.4l-3 3.1-2 2.6-.4.5-.4.5-1 2-.6 1-.5 1-.3.6-.4 1-.6 1.5a37.1 37.1 0 00-1.3 4.5l-.7 2.4-.3 1.2-.4 1-.4 1.5-.4 2a49.8 49.8 0 00-.4 3.8v2.5l.2 1zm93.7-1.6a36.5 36.5 0 00-3 2.3l-1.2 1.4-.6.7.6.4 1.7 1.2 1.7 1.3c.6.4 1 1 1.6 1.5l.7.5 1.3 1 1.2 1 1.2.9 1 1h.2l1.4-1.4a40.2 40.2 0 013-2.2l.6-.3-1.4-1a41.7 41.7 0 01-3.2-3.2l-1.3-1.6-1.1-1.3-1-1.1a63.5 63.5 0 00-2-2.1l-1.4 1zm1.3-29l-4 .5-2 .4-2.1.7-1 .3-.8.4-1.6.7-1.9.8-.9.4-.8.3-1 .5-1.2.7-1.2.6-1 .6-.7.5-.6.5-1.5 1.3-1.4 1.3-1.7 1.7-.4.4-.6.8a32 32 0 01-2.7 3.1l-.7 1.1a13.4 13.4 0 00-1.3 2.4l-.6 1.1-.5 1.3-1.3 2.5-.5 1-.6 1.2-.7 1.5-.7 1.5c0 .4-.2.7-.3 1l-.3 1-.5 2.3-.3 1.6-.3 1.7-.2 1.6-.2 1.7-.1 2.3v1l-.1 1.6.1 1.6.2 1.3.5 2.3.7 2.4a24.7 24.7 0 001.2 2.6v.1h.1l.3.2h.3l.4-.1.1-.1h.1a10.7 10.7 0 00.5-.8l.2-.4.4-1.2v-.6l.2-2.2V185l.2-1.2.2-1.4.4-2.3.2-1.4.1-1 .3-1.5.2-1.1.5-2.6.2-.7.2-.7.5-1.4.7-1.8.8-1.6 1-1.9c.2-.6.6-1.1.9-1.7l.4-1 .6-1.3.6-1 .8-1.2 1.3-2c.5-.8 1-1.4 1.6-2v-.1c.6-.6 1-1.3 1.7-1.8a17.7 17.7 0 012-1.7l2-1.5 1.9-1.4a39 39 0 011-1 9.9 9.9 0 013-2.4l1-.5.9-.4.7-.3 1.6-.5 1.4-.5.7-.3 1.1-.6 2.4-1.2 1.2-.4 1.2-.5h.4a21.6 21.6 0 002.3-1l1.2-.2 1.3-.3 2.4-.6 1.3-.3 1.1-.1 1.3-.2a10.5 10.5 0 00.9-.2l.5-.4h.1l.4-.6v-.3l.2-.7v-.4l-.7-.2-.7-.2h-.6l-2-.2h-2.1l-1.8.1h-.4l-1.2.1-1.2.2a29.3 29.3 0 01-.8.2l-4.4.8zm8.6 55.4l.4.2 1.6.7 1.3.5.5.2.4.1 2.1.3h.7a12.9 12.9 0 001.6-.5l1.4-.9a36 36 0 002.7-2l.4-.4a11.7 11.7 0 001.1-1.7l.4-.8.3-.9v-1.4l-.1-1.5-.2-1.3c0-.2 0-.5-.2-.7 0-.3-.2-.6-.3-.8l-.4-.8-.3-.4-.2-.3-.2-.1-1-.5-.6-.4-.6-.4-.4-.3-.5-.5.1.1h-.2c-.5 0-1-.4-1.2-1l-1-.1-2.4-.1h-.2c-.2.2-.5.4-.9.4h-.5a25.9 25.9 0 00-2 1l-.7.5-2 2-.6.7-.1.2a1.3 1.3 0 01-.6 1.2l-.1.6a18.3 18.3 0 00-.3 2.5v2.3l.2.6a15 15 0 00.8 2l.2.2.3.3 1 1-.1-.1.4.3zm7.7 19a30.8 30.8 0 003.3-.6l1.5-.5 1.1-.5.5-.2 1.5-.8 1.7-.8.8-.5.9-.5 1.8-1a38.2 38.2 0 004.8-4c0-.2.2-.4.4-.6l.3-.5a102 102 0 002.1-3.6l.5-1 .4-1 .4-1.2.5-1.7.3-2.3.2-1.8v-1l-.2-1.6v-.2c-.2-1.1-.6-2.3-1-3.4l-.4-1.7-.5-1.6-.4-1-.8-1.6-.7-1.4-.5-.8-.7-1a36.2 36.2 0 01-1.6-2.5l-.3-.6-.3-.6-.3-.4a14.7 14.7 0 00-1.7-1.5c-.4-.2-.8-.5-1-.8l-.8-.7-.6-.4-.7-.7-.1-.1h-.2l-.8-.5-.9-.6-.2-.1a.7.7 0 01-.3-.6l-.3-.2h-.1l-.6-.3-1.8-.5-1.3-.3-2.2-.6-1-.1-.9-.2H291a51 51 0 00-3.5 0l-2.6.8-.9.2c-.4 0-.7.2-1 .3l-1.1.4-1.1.5-2 1c-.3 0-.5.2-.7.3h-.2l.4.4 1.7 1.3.7.6.8.7 1.6 1.4h-.1l1 .9 1 .8 1.3 1.2 1.3 1 1.5 1.2.7.6.2.2 1.5.2c.6 0 1.3.2 1.9.4l1.8.4h.7l1 .5 1 .7.6.4 1.2.7c.6.5 1 1 1.5 1.7l.5 1.2a9.5 9.5 0 01.5 3.7v2.4c0 .9-.4 1.6-.8 2.4a13.5 13.5 0 01-2.2 3.1 40.3 40.3 0 01-3.7 3.1c-.7.6-1.6 1-2.5 1.2l-1.3.2h-.8l-1-.1c-.7 0-1.5-.2-2.1-.4l-2-.8-1.8-.8-1.3-1.1-.6-.6a6 6 0 01-1.3-1.9l-.3-.9c-.3-.6-.5-1.3-.6-2v-2.5l.2-1.8.2-1.6.2-.4-.2-.1a41 41 0 01-2.7-2.4l-1.1-1-.8-.7a10 10 0 01-1.1-1l-1.3-1.3a215.5 215.5 0 00-3.7-3.5l-.3.6-1.2 2.1-.3.7-.2.7-.4 1.2-.4 1.4-.7 2.8-.1.5-.1.7v.9l-.2 1.3v2c0 1.1.2 2.2.4 3.3l.1.8.2.6 1 2.8.4 1 .4.7 1.4 2 1.3 1.8.6 1a11.2 11.2 0 001.7 2l1.1 1 .8.7 1.2 1 1.4.8h-.2l1 .6a32.7 32.7 0 004.3 2.2l1 .4h-.2l2 .6a20.4 20.4 0 003.5 1l1.6.1.9.2h1.5zm-140.4.5l-1.2.2-.8.2h.2l1-.2.8-.2h.2-.2zM131 247.3h.2l.2-.3.2-.2v-.1c-.2-.3-.3-.5-.3-.8l-.2-.7-.2-.6-.1-.6-.6-1.6-.1-.2-.8-1-.7-.9-1-1.2-.4-.5-.4-.7-.4-1-.2-.3-.2-.2-.3-.4-.3-.4-.8-1.6-.2-.3-.3-.4-.6-.7-.5-.5-.7-.8-1-1-1.1-1.2-1.4-1-1.2-1.3-.6-.4-1.5-1-1.3-1-.4-.3-.5-.3-.8-.4a23 23 0 01-1.8-1.2l-1-.6-2.4-1-1.1-.5-1.2-.5-1.6-.4-1.5-.5-.8-.3-.9-.3-1.4-.2-.5-.2-1.1-.3-1.3-.2H95l-1.6-.2-1.6-.2-3.1-.2-3.6-.2c-.3 0-.7 0-1 .2l-1.3.2-1 .3-2.7 1.2-1.9.8-1.8.6-2.2.7-1.2.4h-.4l-.9.5-4.6 2.4L64 225l-1 .7-1.1.6-2.2 1.4-1.5 1-1.3 1.2-.7.7-.7.8-.1.1-.4.4-.5.6-1.1 1.5-.4.6-.1.3v.5h1l.7-.2 1.5-.4 1.5-.3 1-.2h.4l.7-.3.8-.2.3-.1 2-.6 1-.6 1.6-1-.1.1 1.2-.7 1.1-.6 1.2-.7 1.3-.5 1.3-.4 1.3-.4a62 62 0 012.7-.5l1.6-.2 1.8-.3h.8l.8-.1 1.7-.1h-.2 3.5l2.4-.1 2.7-.1a36 36 0 015.2.3 29.4 29.4 0 014 .7l1.3.2 1.2.4 1.3.5 2.4 1 1.7.8 1.6.8 1.5.8a79.3 79.3 0 001.4 1l1.8 1 1.8 1.5 1 .6.9 1c.2 0 .4.3.6.4l1.1.8c.4.2.6.6 1 1l.6.5.4.5.4.5.1.2.3.1 1 .8.6.5.5.5.1.1 1 1 .5.5 1.4.8.6.3.7.3.7.4.5.4.6.2h.8zm-34.6-36.6l-1.4.6-1.3.4-1.4.6-2.3 1.1-2.2 1-.7.4h.6l2.6.1c.9 0 1.7 0 2.6.2l1.5.2 1.7.1.8.1 1.5.4 1.4.4 1.6.4 1.5.6 1.6.4 1.1.4 1 .4 1 .4 1.9.8 1.7 1 1 .7a16.5 16.5 0 001.1.7l.6.3.6.4 1 .7.5.4.5.4 1.3.9 1 .9.9.9 1 .7 1.1 1.1 1.3 1.3 1.3 1.4.8.8.7 1 .4 1 .2.4.3.4.6.6.4.8.4.9.2.3.1.2.6.7.3.5.6.7.5.6a18.6 18.6 0 011 1.5l.2.6a23 23 0 01.6 1.8l.2.9.2.7.3.2-.1.6a5.3 5.3 0 00-.4.4l-.1.2c-.2.3-.3.6-.6.8l-.5.2.4.7.1.1 2.1-.9 1-.6.6-.3 1.2-.7 1.2-.5 1.2-.5 1.6-.9.7-.4 1-.4.8-.4 1-.4 1.7-.6 3.2-1.5 1.8-.8 1.9-.7 1.5-.6.7-.3.7-.3 3.3-1.6 1-.5 1.3-.7.6-.3.6-.3 1.3-.3c1-.4 2.2-1 3.3-1.3l3.5-1.2 2-.6 1.6-.6 1.6-.6 2-.7 2.5-.8 1.2-.4 1.1-.4 1.4-.4.6-.2.5-.1 2.5-1 1.2-.4.6-.2.6-.3 1.8-1 1.3-.6 1.3-.5 1.2-.5 1.5-.6.3-.2.3-.3c.4-.3.8-.6 1-1l1-1.2a35.7 35.7 0 002.5-3.5l.4-.7a10.7 10.7 0 001-3l.5-3.4.3-1.8.2-1.8.7-3.4.8-3.6.5-2 .4-2.3.5-2.4.2-.9.1-.8.2-1.7.1-.8.2-1c.1-.5.3-1.1.3-1.7l.3-2 .3-1.8.2-1.7.3-1.7.3-1.9v-.6l.1-1.4.2-1.5.2-1.5.1-1.3.3-1.5.3-1.5.3-.7-1.2.6-2.2 1-1 .5-1 .5-1.1.4-1.2.5-2 .8-2.3.7-1.2.5-1.4.6-1.2.5-1.2.5-4.2 2.2-2.2.9-.9.3a26.5 26.5 0 00-1.5.6l-.8.1h-.2v.5l.1 1.2v4.1l-.2 1.4-.2 1.2c-.1.9-.3 1.8-.6 2.6 0 .2 0 .4-.2.6v.3l-.1.1-1.1 2.8-.5 1.4-.6 1-.5.7-.4.6-.6.7-1 1.1c-.5.6-1.2 1.1-1.8 1.6l-.9.7-1 .7-2.1 1.2-1 .6-1.2.5-.6.3-.7.4-1.2.7-.2.1-.3.2-2 .9-1 .5-.8.5-2 1.1-2 1-1.2.4-1.2.5-.2.2c-.2 0-.3.2-.4.3l-.5.1a1 1 0 01-.7-.2l-.3.1-1.5.5-1 .2c-.4 0-.7.2-1.1.3-.5 0-1 .2-1.4.3l-1 .2a14.6 14.6 0 01-2.3.3h-.8l-.3-.1-.5.1h-.3l-.6.2-.7.2-1.3.2a59.3 59.3 0 00-2 .4l-.4.2a28.1 28.1 0 01-2.2.5l-1.1.3-1.1.3h-.6c-.6.3-1.2.6-2 .8l-2 .4-1 .3-1.8.6-1.3.5-2.6.7-1.5.4-2 .5-2 .1a6.9 6.9 0 01-3.2-.7l-1.2-.8-.8-.5-.8-.7-1.2-1.5-1-1.5-.1-.2v-.1h-.1l-1-1.3-.9-1.2a26 26 0 00-1-1.4 7 7 0 01-1-1.7l-.1-.3-.4.2-1.1.6-2.3 1-2.2 1c-.8.2-1.6.5-2.3 1l-.5.1-1.5.8zm6.2 64l.3-.2 1.2-.4 2-1 1.9-.8 1.2-.4 1.1-.5 1-.4 1.4-.4 1.7-.5 1.8-.5 1.6-.5.7-.2.7-.3 1.3-.5 3-1 .5-.1.5-.2 1-.4 1-.5 1.2-.5 2.1-.8 2.3-.6a83.1 83.1 0 003.6-1.4l3.5-1.2 3.5-1.3 2-.7 1.8-.7h-.1c.4 0 .9-.2 1.3-.4l1.4-.6 1.6-.5.6-.1.6-.2 1.8-.7 1.8-.6 3.6-1.3 3.6-1.3 1.9-.6 2-.6 2.6-.8 2.8-.8c.3 0 .5-.2.8-.3.3 0 .5-.2.8-.3l1-.3 1-.4 2-.5 1.7-.5 1.7-.6 1-.3 1.1-.3a102.7 102.7 0 007-2.2l5.4-2 3-1.3 1.2-.6 1.7-.7 2-1.1 1-.6.8-.5 1.5-1 1.2-1 1.6-1.5 1.6-1.5 1.6-1.5 1.5-1.5.4-.5 1.7-2.9.6-1.3.6-1.3.5-2 .6-2.3.7-2.2.9-2.4v-.2l.1-.2.8-2.8.4-1.4.5-1.5.4-1.3.4-1.6.8-2.9.6-3 .8-3.2.6-3.3a111.6 111.6 0 011.4-6.8l.4-1.9.3-1.9.6-3.6.3-1.8.3-2 .1-1.5v-2l.1-2a35.5 35.5 0 01.8-5.7l.5-2a51.2 51.2 0 001.2-4.8l-.5.1-.9.3-1 .3-1 .3-1.2.4-1.3.4-.9.4-.8.4-.6.2-.5.2-.8.2-.5.2-1 .4c-.5.3-1 .4-1.6.6l-.5.1-2.1 1-1 .5-1 .5-1.1.6-.5.3v.4l-.2 1.4v1.5l-.2 1.1v1.4l-.3 2.5-.1 1.4-.2 1.3c0 .5-.2.9-.3 1.3l-.3 1.2-.2 1.1-.1 1-.6 2.4-.4 2a33 33 0 01-.4 2l-.2 1v.3l-.1.5-.3 2c0 .6-.2 1.2-.4 1.9l-.4 1.7-.4 1.8v.5l-.7 2.3a162.4 162.4 0 00-1 5l-.3 2.8-.3 2.8-.1 1.4-.2 1.4c0 .4 0 .9-.2 1.3l-.2 1.3-.3 1.3-.5 1.2a16 16 0 01-1.4 2.4l-1 1.1-.8 1c-.5.7-1.1 1.2-1.8 1.7a5 5 0 01-1 .7l-.7.2-.8.4-2 .7-1 .4-.8.4-2.3 1.2-2.4.9-2.2.8-2.3.7-3 1a266 266 0 00-4.6 1.5l-1.9.7-3.4 1.2-3.5 1.2-1.7.7-1.7.6a9 9 0 00-.6.2l-.5.4-1 .4-.7.4-1 .5-3.3 1.5a13.3 13.3 0 01-1.6.6l-2 .8a51.6 51.6 0 00-6.7 2.8l-1.5.6-.8.4-.8.3-1.1.6-1.2.8a27 27 0 01-3.7 1.9l-2.3 1.1c-.4.3-.9.4-1.3.6l-1 .4-1.6.6-1.9.8-1.6.7a153 153 0 01-4.7 2l-1.4.6-2.6 1.2c-.8.4-1.6.8-2.4 1a32.7 32.7 0 00-2.6 1.1l-.8.5a18 18 0 00-1.9 1.2l-1 .4-.7.4-1 .6-.8.4-1 .5-1.6.6-1 .4-2.7.7a4 4 0 00-1.2.4l-.6.4.6.5c.5.5 1 1 1.3 1.6 0 .2.2.3.3.5l.4.5.5.7.4 1v2.6l-.3 1.3v.4zm-16 10.2l2.7.5 1 .1 1.7.2h.6l.9-.3h.3l.8-.5 1-.4.4-.3 1-1.2a22.3 22.3 0 001.2-1.4 59 59 0 001-2l.3-.7.1-.6.1-.6v-2l.1-1.1c0-1 0-1.8.3-2.6 0-.3.1-.5.3-.6a6.6 6.6 0 00-.2-.7l-.8-1a4 4 0 01-.5-.9l-.2-.3a5 5 0 00-.2-.4 6.8 6.8 0 00-.8-.8l-.9-.5-.8-.6-1-.6-.4-.2-.9-.3-.9-.4-1.3-.2-1-.2c-.3 0-.7 0-1-.2l-1-.2h-1.8a6 6 0 00-.6.1l-.8.2-.4.1-1.5.7h.2l-.7.2-.8.5a19.5 19.5 0 00-2.1 1.6l-.7.9-.5.6-.6 1.2-.6 1.3-.4 1c0 .4-.2.7-.4 1.1l-.1.8-.2 1v1.8l.5 1.3.2.5.4.6.5.7.6.7.4.5h.2c0 .2.2.2.3.3l1 .6 1 .7 1 .5 1.1.5 2.8.9zm-6.3 14.7l.6.3.6.4 1.5.5.6.1 3.5.4 1.7.2h1.8l1.7-.3 1.9-.2 3.5-.3.5-.1.4-.2.7-.3 1-.5 1-.5c.3 0 .5-.2.7-.3l1.1-.8.6-.4.8-.5.2-.1.6-.7.5-.5.6-.6.5-.6.6-.6 1.3-1a9.9 9.9 0 001-1.3 3.8 3.8 0 01.3-.4v-.1l.6-.8.8-1.4a15.5 15.5 0 001-2.7l.4-1.6.5-1.9.3-1.3.4-1.4.3-1.3.5-1.3a11 11 0 00.3-2.3v-3h-.2l-1.3.4-1.3.3-1 .5c-.3 0-.5.2-.8.3l-.8.2-1.5.4c-1.2.4-2.3 1-3.5 1.5-.4.3-.9.4-1.4.6l-1 .2h-.1a15.6 15.6 0 01-.3 2.1l-.3 1.1-.3.7-.3.5-.7 1-1 1.2-1 1-1 .9-.6.4-.3.2a8 8 0 01-.8.5l-2 .8-.7.2a5.9 5.9 0 01-1.8 0c-.9 0-1.8-.2-2.7-.4-.8 0-1.5-.2-2.3-.3l-1-.3-1-.3-2-.6-1-.4-.4-.3c-.2 0-.4-.2-.5-.3l-1.3-.7-.5-.4a4 4 0 01-.8-.6l-.7-.8-1-1.3-.4-1-.4-1c-.2-.6-.4-1.2-.4-1.8v-1.4l.2-1.4v-.6l.3-.7.4-1.3.5-1.3.7-1.2.7-1.2a14.2 14.2 0 012.8-3l.8-.5.4-.2 1-.5h-.2l1.3-.4.9-.4c.3-.2.7-.2 1-.3l.8-.2h2.7l1.4.4 1.4.1c.6 0 1.2 0 1.7.2h.1l1.7.6c.6.1 1.1.5 1.7.8l.2.1.4.3a6.3 6.3 0 013.2-1.6h.7a17.5 17.5 0 004.7-1.8l2-1.2.4-.2c.2 0 .3-.2.5-.3l1-.4v-.8l-.2-.3v-.2l-.3-.3-.9-.9a14.7 14.7 0 00-1.5-1.2l-1.1-.6-1.2-.6-1.3-.7-1.2-.8-1.8-.9-1.5-.9-1.5-.7-1.4-.6a25.4 25.4 0 00-3-1l-1.4-.2-3-.5h-4.2l-2.8.5-1.4.4-1.5.3-.8.2-1 .4-1.9.5-.4.1-.8.5a53.1 53.1 0 00-3.1 2l-1.6 1.3a26.2 26.2 0 00-3 3l-1.2 1.5h.1l-1 1.4c-.3.4-.4.9-.6 1.3l-.5 1-.9 2.7-.9 2.9-.1.6-.1.6-.2 1.3-.2 2 .1 1.2.3 1.8.2 2 .2 1.7.1 1.7.2.8.5 1.6.2.4.8 1.1.6.9 1 1.8.5.7.6 1 .7 1 .8 1.2.4.6.6.8v.1l.3.2.7.5.6.5 1 1 1 .5.5.4.5.3 1.5 1 .5.2 1.3.6.6.3.7.3.4.2 1 .5h.1l.1.1h.2l.7.3zm10.9 24.2h-1.4l-3-.4-1.6-.2-1.5-.3-2.4-.4h-.7l-.7-.2-1.2-.4-.6-.1-.8-.2h-.2.1a36.7 36.7 0 01-4.3-1l-.7-.5-.4-.2h-.3l-.6-.2-1-.1-1.2-.5-1.6-.7-1.6-.9-1.6-.8-1.3-.5c-.5-.1-1-.4-1.4-.6l-2.4-1.6-1.3-1-1.2-.9-.6-.6a42.5 42.5 0 01-3.9-4.5l-1.2-1-1-1-.3-.2-.4-.3-1.4-1.3-1.3-1.4-.7-.7-.8-1.4-.6-1.2-.6-1.2-.4-1.1-.5-1.1-.4-1.1a26 26 0 00-.7-1.7l-.4-1.8-.4-1.7-.2-1.8-.2-1.4-.2-.8v-.8.1l-.4-1.6-.1-1.7-.1-.5-.3-1.2v-3.2l-.1-1.7v-.5l-.2-.7V270.1l.1-1 .2-1 .2-1 .4-2.1a19.3 19.3 0 01.3-1.6l.2-.8.2-.8.5-1.7.6-1.8.5-1.9.6-1.8.5-1 .4-1 .8-1.3.6-.8.6-1.1.8-1.4.8-1.2.8-1 1.9-2.3 1-1.2c0-.2.3-.3.4-.5l.5-.5.6-.5.7-.6 1.2-1.2 1.3-1.2 1.4-1 .6-.5.2-.2.4-.3.7-.4h-.1l-.1.1-1 .3-1.2.3h.1l-1 .3-.5.2a8 8 0 01-1.4.3l-.8.1h-.5c-.2 0-.5 0-.7-.2l-.6-.7V235c0-.4 0-.8.2-1.1l.7-1a27.7 27.7 0 011.7-2l.2-.3.3-.3a30.2 30.2 0 013.6-3.4l-1 .4-.6.1a2 2 0 01-.4 0h-.6l-.7-.2-.7-.5-.5-.3-.5-.7-.5-.7-.6-.8-.7-1.3-.6-1.2-.4-1a23 23 0 00-1.1-2.8l-.3-.9a4 4 0 01-.1-2.1v-.8l.2-.4c0-.2.2-.4.4-.5h.2l.3-.2.5-.3h.1v-.1l.8-.5.8-.3 1.8-.8a40.3 40.3 0 013.3-1.4 32.5 32.5 0 013.9-1.5l1.9-.8 1.8-.8 1.7-.7 1-.5c.4 0 .7-.2 1-.3h.2l2.2-1 2.3-.8 2-.8a24.8 24.8 0 013-1.2l1.3-.6 1.2-.6 1.4-.6 2-.6h.4l.1-.1h.4l.1-.1h.3v-.1h.2l.2-.1h.3l.1-.1h.2l.1-.1h.3v-.1h.4l.1-.1h.2l.2-.1h.2v-.1h.4l.1-.1h.2l.1-.1h.2l.1-.1h.2l.1-.1h.1l.1-.1h.1l.2-.1.2-.1.1-.1h.1l.2-.2h.2l.1-.2h.1l.2-.1.1-.1h.1l.1-.2h.1l.1-.1h.1l.1-.1.2-.1-1.3.7v-.1l.1-.1.1-.1.1-.1.1-.1h.1v-.1l.2-.1.1-.1h.1l.1-.1.1-.1.2-.1.2-.1.1-.1.2-.1.1-.1h.1v-.1h.2v-.1c.3 0 .5-.2.7-.3h.8l.1.1h.4l.1.1h.4l.1.1h.2v.1l-.2.4-.4-.2-.2.3-1 .9a28.2 28.2 0 01-4.4 2.6l-1.2.6-1.3.5-1.6.5-1.8.3-1.7.5-1.5.4-1.7.6-1 .3-1 .3-1.9.6-1 .4-.9.3-1 .4-1.3.5-1.2.5-1 .4a21.7 21.7 0 00-2.4 1l-2.2 1-1 .4-1 .5-1.2.5-2.1 1-1.5.7-1.7.7-1.6.6-1.6.7-1.4.8-.3.2v.2a12.3 12.3 0 00-.3 1.8v.2l.3.7.3 1 .5.9.6 1.9.3.6.3.6a10.2 10.2 0 001.2 2l.7 1.1.2.2.5.5c.2 0 .3.2.4.3h.2l.5.2h.7l.2-.1.8-.4.8-.4 1-.4 1-.3.9-.3 1-.4h.1l.2-.2 1.1-.6 1-.5A250.6 250.6 0 0174 218l2.5-1 2.4-1 2.2-.5 1-.5.6-.3.6-.3 1.2-.5 2.4-1 2.3-1 .7-.4 1-.5 1.4-.6 1.1-.4 1.2-.4 1-.5 1.4-.6 2.2-1 3.4-1.3 1.6-.6 1.6-.7.2-.1-.8-1.3-.4-1a14.1 14.1 0 00-.8-2l-.4-1.2-.4-1.3a17 17 0 00-.4-1.3l.1.1h.4l.1.1h.4l.1.1h.4l.1.1h.4v.1h.2l.3.8.3.8.3.8.8 1.5.5 1.4.6 1 .6 1.2.5 1.4c0 .2.2.3.3.5l.9 1.3.9 1.4.8 1 .8 1.3 1.5 1.9.5.5.5.4.5.4 1 .6 1 .4.5.2h.5a25.5 25.5 0 002.7 0l1.8-.5c.5 0 1-.2 1.4-.3l2.9-.9.7-.2 1-.4a12 12 0 012.2-.7c.5 0 .9-.2 1.3-.3l1.3-.6 1.6-.6 1.7-.5 1.7-.4a30 30 0 004-1.3 67.3 67.3 0 013.5-1l1.2-.4c.5 0 .9-.2 1.3-.3l1.3-.2h1l.8-.2c.5 0 1-.2 1.6-.4a7.8 7.8 0 011.6-.2h.7v-.1l.4-.1.8-.3.8-.3.7-.2.6-.2h.6l.8-.3 2.1-.8c.4 0 .7-.2 1-.3l.6-.2h.1l1.4-.7 1.6-.7 2-1 .4-.2.5-.2 1-.4 2.2-1.1 1-.6 1-.6h-.1l.9-.6a26.3 26.3 0 001.5-1.4l.7-.8a21.2 21.2 0 001.4-2l.2-.6.5-1.7c0-.5.3-1 .4-1.5l.4-1.5.4-1.5.2-1.5.4-1.7.5-2.1.3-2.2c0-.7.2-1.4.3-2l.1-1a8.3 8.3 0 01-1.5-2l-.6-1-.4-1.3-.4-1.2c-.3-.8-.4-1.7-.5-2.5a25.3 25.3 0 01-.3-3.7v-1.2a31.3 31.3 0 01.5-6v-.1l-.5-1v-.3l-.6-.6-.3-.3-.4-.3-.2-.2-.5-.2-.2-.1s-.2 0-.3-.2h-.7l-1.5.6a12.2 12.2 0 00-1.5.8l-1.2.7-2.3 1-.7.3v-.1h.1v-.1h.1v-.2h.1v-.2h.1v-.2h.1v-.2h.1v-.4h.1v-.3h.1v-.3h.1v-.3h.1v-.2h.1v-.2l.1-.1v-.2h.1v-.2l.1-.1 1-.6 1.4-1 1.5-.8.8-.2c.4-.2.9-.4 1.4-.4h1l.6.3a4.4 4.4 0 011.2.9l.3.4.4.4.5 1 .2.3.2-.7.7-2.5.6-2.2.6-2.3.3-1.2a71.5 71.5 0 011-2.3c0-.4.2-.8.4-1.2l.3-.5.4-.7.5-1c.4-.5.7-1.2 1-1.8v.1a16.4 16.4 0 011-1.9l1.4-1.8a32.1 32.1 0 012.8-3l3.3-3.9v.1l1.6-1.8 1.7-1.8.9-.8 1-1 2-1.3 1.8-1.4 2-1.4 2-1.2 1.3-.5.8-.2a39 39 0 00-1-.8l-1.5-1.3-1.7-1.4-1.8-1.6-2-1.8-2.3-2 .1.1-1-.7-.7-.5-1.3-1-1.8-1-.9-.4a12 12 0 01-1-.5l-1.6-.7-1.5-.8a16.7 16.7 0 00-2.5-1l-1-.5-1-.2-.7-.2h-.2l-1.3.2-1.5.1-1.4.2-1.5.1h.2l-1.3.2-.8.1h-.5l-1.4.4-1.5.3-1.2.2.2.4v1a2.5 2.5 0 01-.3 1.4c-.2.4-.6.7-1 .9h-.5v.1h-.1l-.2.1h-.1v.1h-.2v.1h-.2v.1h-.2v.1h-.1v.1h-.2v.1h-.1v.1h-.2v.1h-.1l-.1.1h-.1l-.1.1-.2.1-.2.1v.1h-.2v.1h-.1l-.1.1h-.1l-.1.1h-.2v.1h-.2l-.1.1h-.2v.1h-.1l-.2.1h-.1l-.1.1-.2.1h-.1l-.1.1-.2.1h-.1l-.1.1-.2.1h-.1l-.1.1-.2.1-.2.1-.1.1h-.1l-.1.1-.2.1-.2.1-.1.1h-.1l-.1.1h-.1l-.1.1-.2.1-.2.1-.1.1h-.1l-.1.1h-.1l-1.4.6-1.4.5-1.4.6-.8.3-.8.4-1.6.8-1.8.9-1.7 1-1 .5-.9.5-3 1.4-1.5.7-1.6.7-1.5.7c-.8.4-1.6.9-2.5 1.2l-2.4 1-2.3.9a5 5 0 01-1.2.2h-1c-.5 0-1-.1-1.3-.4l-.7-.9.1-.1.1-.1h.1v-.1h.2v-.1h.2v-.1h.2v-.1h.4v-.1h.3v-.1h.2v-.1h1.3l.6-.2 1.2-.4 1-.4v-.2l-.4-.4-.3-.4-.3-.6a.8.8 0 011.3-.6l.4.7.6 1 .5-.2.7-.3.7-.3.8-.4-.2-.2-.7-.6-.2-.2a1 1 0 01-.4-.2l-.2-.3-.5-.6a4 4 0 01-.5-1.1l-.3-.8v-1c0-.3.1-.6.4-.7.3 0 .7.1.8.4l.4 1.3.3.6.5.9.2.4.2.3v.1l.1.2.4.5.5.6 1.2-.6 1.3-.6.5-.2-.5-.5c-.1 0-.2 0-.3-.2l-.1-.2c-.1-.3 0-.5.1-.6.3-.2.6 0 .7.2v.1l.2.1.4.4.3.3h.1l1.4-.5 1.3-.7.3-.1-.5-.2-.4-.2-.6-.2-.4-.2-.6-.3-.5-.4-.6-.7-.4-.4a16 16 0 01-1.7-2.7l-.4-1.2v-.8l-.9.5-.8.4.3.4.2.5.5 1 .4.6.4.7c0 .2.2.4.4.6l.5.9v.1l.4.4c.2.3.2.8 0 1-.1.2-.4.4-.6.4l-.4-.1-.4-.2-.4-.4-.5-.6-.5-.7-.2-.4-.2-.4a2.3 2.3 0 01-.2-.8l-.3-1.4-.2-.7v-.4l-.5.3-1 .6-1.3.5-1.5.7c0 .4 0 .8.2 1.2a7.8 7.8 0 00.3 1.3l.2.3.2.2c.2.2.3.6 0 .8l-.3.1c-.2 0-.4 0-.5-.2l-.2-.5a11 11 0 01-.3-1.2V110.5l-.7.2-.5.2h-.4v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.1h-.1v-.2h-.1v-.1l.3.4.3-.3.7-.6 1.4-1 .7-.5.8-.5 1.5-.7 1.7-.8.8-.3.8-.4.9-.5 1-.6 2-1 1.9-1.2 1-.6.9-.5 1.7-1.1 1.8-1.1 1-.7 1-.8 1-.7 1-.8.9-.7 1-.8 1-.7a17.5 17.5 0 011.6-1.2l.8-.4c.2 0 .4-.2.5-.4l.3-.3h.2v-.1h.2v-.1h.2l.1-.1h.1l.1-.1h.1a16 16 0 011.2.1l.4.3.5.3a4.6 4.6 0 00.6.4c.2.2.5.5.6.8l.4.8.5-.2h.2l.2-.1.6-.3.4-.2.3-.2 1.3-.5 1.1-.5 1-.3.6-.1.5-.2 1-.1 1.3-.2 1.3-.1h2.6c.9 0 1.7 0 2.5.2h6.2l.5.1.6.2.7.2a518.7 518.7 0 001 .2l1.2.3.7.2c.4 0 .8.3 1.2.4l1 .3.5.3c.3 0 .6.2.9.4l1 .6.8.5h-.1l.8.4.3.2 1.4 1 1.4 1 1 .7 1.1.8 1 .8 1.1.8 2.2 1.9 1 .8 1 1h.1c.5.5 1 1 1.5 1.3l1.7 1.6 1.7 1.6.7.7.8.7 1.1 1h.4a29 29 0 002-1.2 37 37 0 014-2l2-.8 1.4-.4.8-.3 1.3-.4.9-.3 1-.3a2.2 2.2 0 011 .1l1.2.5.5.4 1.5 1.2.8 1.4.5 1 .5.9 1.1 2 1 2.1.3.6.3.6v-.1l.6 1 .6 1 .9 2 .8 2 .7 2.2.5 1.2.2.8.3 1.6c.1.6.2 1.2.1 1.8v.6c0 .2-.2.3-.3.5l-.3.4-.9.8a5 5 0 01-1 .5l-1.1.4h-.2l.7.8 2 1.8.3.4.7.6.9.8.5.6.8.7 2 1.5 1.7 1.2 1 .8.5.4.3-.2.6-.5 1-.7 1.2-.6 1.2-.5 2.2-1.1 1.2-.6a1101.7 1101.7 0 003.6-1.6l1.2-.5 1.1-.5.4-.1c.3 0 .5-.2.8-.3l1-.2 2-.5 2-.4 2.1-.4h.4l.5-.1 3.7-.8a33.1 33.1 0 013.9-.5l1.2-.1h3.7l1.1.1c.5 0 .9.1 1.3.3l.6.2.8.2c.4.2.8.6 1 1l.2.6v.4l-.2 1c0 .4-.1.7-.3 1l-.4.7c0 .2-.2.3-.4.5l-.3.2-1 .6a114.8 114.8 0 01-3.6.8l-1.6.5c-.6 0-1.1.2-1.6.3l-1.6.4c-.3 0-.5 0-.8.2l-.6.1 1.4-.2a26.7 26.7 0 003.4-.3l1.7-.2 3 .1h1.3l1.4.2c.4 0 .9 0 1.3.2.4 0 .8.2 1.1.3.7 0 1.3.2 2 .3.7 0 1.4.2 2 .4l1.4.6 3.3 1.2 3 1.5 2.7 1.2 1.3.7 1.3.6 2.6 1.6 2.4 1.6 1 .8 1 1 1 .8 1.3 1.2 1 1 1 1.1c.8.8 1.3 1.6 2 2.4l1.6 2.4 1 1.5 1 1.6.8 1.1.7 1.1.8 1.1c.5.7.8 1.4 1.1 2l.6 1.3.6 1.4a22.4 22.4 0 011.3 6l.1 1.5v1.6l-.4 2.9-.4 3-.4 1.5-.5 1.7-.2 1.2a17.7 17.7 0 01-.5 2.3l-1.1 3v-.1l-.7 2.1-.9 2-.8 2.3-1 1.8v.1l-.7 1.4-.8 1.8-1 1.6-.8 1.3-.2.3v.1h-.1v.1h-.1v.1l-.9 1.1-1 1.3-.8 1.1-.6.6-.6.6a41.7 41.7 0 01-3.4 3l-1 .8-1.4.9a35 35 0 01-2.6 1.4l-1.4.7-1.4.7-1.3.6-1.4.6-1.2.5-1.3.5-1.4.5a31.9 31.9 0 00-2.7.8l-1.2.2-1.4.4-.7.2h-.6l-.7.1-2.7.2a23.6 23.6 0 00-4.1.7l-2 .2-2 .2c-.9 0-1.7-.2-2.4-.4l-.8-.2-1.1-.1-2-.4-.8-.2h-.7l-1.5-.5-2-.8-1.4-.4-1.5-.6c-.9-.4-1.7-1-2.6-1.5l-2.4-1.5-1.4-1-1.5-1-.6-.6-1-1-1-.7-1-1-1-1-1.7-1.8-1.6-2-.4-.5v.1l-.5-.6-.2-.3-1.8-2.3-.9-1.2a19.2 19.2 0 01-1.5-2.5l-.5-1.4-1.3-2.7-.4-1.5-.4-1.4-.6-2.7-.3-1.5-.2-1.4-.3-3v-2.8l.1-3 .1-1.4.2-1.5.3-1.5.1-1.4c.1-.6.3-1.3.3-2v-.4l.2-1.6.2-1.4.2-1.4-.5 1.2-.2.7-.2 1v.1l-.2.4-.6 2.4-.2 1-.2 1-.4 2.2-.4 2.2-.2 1.1-.1.5v.7l-.2 1.5c0 .6-.1 1.1-.3 1.7 0 .4-.2.8-.4 1.2v-.1a5.1 5.1 0 01-1.4 2c-.2.3-.6.4-.9.5l-.5.1-1-.1c-.3-.2-.8-.4-1-.7l-.4-.6a6.8 6.8 0 01-.7-1.2l-1-2.2-.6-2.4-.2-1.1-.3-1.4v-1.2c-.2-.7-.2-1.4-.2-2l.4-5 .2-2.4.4-2.5.3-1.3.3-1.2.5-2.3.5-1.6v-.2l.1-.2.6-1.4v.2c0-.4.2-.7.3-1l.4-1 .3-1 .6-1.3.5-1.2.4-1 1.2-2.4.6-1 .8-1.1.7-1 .3-.3-.3-.3-.8-.9-.7-.7-1.6-1.8-1.7-2-1.8-1.8c-1.2-1.3-2.5-2.6-3.8-3.7l-1-1v.1l-.3.5-.3.5v.2l.1.2.3.8c0 .3.2.5.3.7l.9 2 .5 1.7.3 1 .5 1.7.4 1.7-.1 2.2-.2 1.2-.2 1-.2.6-.4.8-1 .9c-.2.3-.5.6-.9.8l-.4.3v.7l-.3 2.6-.1 1.3-.3 1.4-.2 1.3-.2 1.2-.3 3-.3 3.8-.2 1.7c0 .6-.2 1.2-.4 1.8a39.4 39.4 0 01-.8 3.6l-.5 2c0 .3 0 .5-.2.8 0 .7-.2 1.3-.3 1.9l-.4 2.2-.4 2-.3 2-.8 4.2-.7 4c0 .6-.2 1-.3 1.6v-.2l-.3 1.8-.3 1.7-.8 3.5-.5 2.2-.3 1-.4 1.3-.6 2-.7 2.3v.2l-.1.1a25.4 25.4 0 00-1 3l-.6 2.2a30.2 30.2 0 01-1 3.5l-.8 2-1 1.8-.5.9a346.2 346.2 0 01-1.4 2.1l-.9.9a96.5 96.5 0 01-3.5 3.3h-.1l-2.2 2.1-2.4 1.9-1.3.8-.7.4-.7.4-1.3.7-2 1c-.7.2-1.2.5-1.8.8l-2 .8-4 1.6c-1.2.5-2.4 1-3.7 1.3l-4.2 1.4-2.8.9-3.2 1-1.6.5-1.6.5-.8.2-1 .4-1.8.7-2 .5-1.8.6-1.8.6-2 .6-2.1.6-2 .6-.2.1h.2l-3.1 1.1-1.6.6-.8.2-.7.2-1 .3-1.2.4-1.1.4-1.2.3-1.7.6-2 .8-6 2h.2l-.7.2-.4.1-1.6.6-1.7.5-.4.2.3.6.4 1.3.4 1.5.2.9v.7c.2.7.4 1.4.4 2.1v1.1l.2 1.1v1.3l-.1 1.1-.3 2.3v.2a29.6 29.6 0 01-.6 2.8l-.1.3v.1l-.4 1c0 .4-.2.7-.4 1.1l-1 2-1.6 4.5-.7 2.3-.4 1.1c0 .4-.2.8-.4 1.1l-.9 2-1 1.9-1 2-1.2 1.8-.4.6-.4.6-1 1.1-1 1.2-.5.6-.6.6-.4.5-.5.5-1 1.1c-.2.4-.6.8-1 1.1l-1 1-.7.7a6 6 0 01-.7.5l-.4.3-.1.1-.7.9-.8.5-1 .7-1 .5-1.3.8-1.3.8-1.4.6a17.5 17.5 0 00-2.7 1.7 81.1 81.1 0 01-2.3 1.6l-.7.3-1.3.4-1.3.4-1.3.4-1.5.2-1.7.4H96a74.2 74.2 0 00-4.4.2l-.4-.3z"/><path fill="#000" d="M99.4 195.8c-.6 0-1-.2-1.6-.3h.7l.1.1h.7v.1h.5l.1.1h.4l.1.1a6 6 0 01-1 0zm4.6 3.6a1.3 1.3 0 01-.4-.6l-.7-1.8-.3-.8c-.2-.4-.3-.8-.1-1.1 0-.2.3-.4.6-.4l.3.1.3.4h.5c.3 0 .5.2.7.4l.2.5.3 1 .2 1.3c.1.4 0 .8-.4 1a1 1 0 01-.6.2c-.1 0-.3 0-.5-.2zM92.2 197a1 1 0 01-.5-.7c-.1-.3 0-.6.2-.9a2 2 0 01.7-.5l1.2-.6.6-.4h-.1l.7-.3h.4c.2 0 .3.2.3.4v.4l-.4.5h-.1l-.1.2-.3.4-.6.5-.6.4a1 1 0 01-1 .7c-.1 0-.3 0-.4-.2zm76.3-39.5c-.3 0-.5-.2-.6-.4 0-.2 0-.5.2-.7l-.2-.3c-.2-.4-.2-.9.1-1.2l.6-.5.6-.2h.2c.4-.1.8-.4 1.3-.4h.4l.5-.2.7-.1 1-.4h.4l.2.1-.1.2-.5.3-1 .6-.2.2h-.1c0 .2 0 .4-.2.5l-.3.4-.6.4-.4.3-.6.5-.4.3-.3.2v.1l-.2.1-.4.2zm-35.2-35.6h-.3l-.2-.2h-.4l-.3-.2a2.5 2.5 0 01-.9-1l-.1-.3a7.3 7.3 0 01-.3-1c0-.1 0-.3.2-.3 0-.1.2-.1.4 0l.1-.1h.3v-.1c0-.1 0-.3.2-.3v-.2l.3-.3c.2 0 .4.1.4.3v.1l.1.2.2.5.1.3.3.3.5.6.2.3.3.4v.5h-.4l-.1.1c0 .2 0 .4-.2.4h-.4zM87.8 95.5l-2-.1-1.8-.2a9.7 9.7 0 01-1.4-.2h-.2l-.3-.1-1.7-.6-1.8-.8a39 39 0 01-2.4-1.4l-.7-.5-.6-.4-.8-.6-.6-.6-1.3-1.3-1.1-1.6-1-1.7-.4-.8-.6-1-1-1.6-1.1-1.5-.5-.8-.5-.8a22.5 22.5 0 01-2-5.3l-.1-1a12 12 0 01-.3-2v-.8a37.2 37.2 0 01-.2-2l.1-2 .2-1.8c0-.3 0-.7.2-1l.2-.9c.3-1.2.5-2.5 1-3.7l.7-1.8.8-1.8.4-1 .5-.8c0-.2.2-.4.3-.5 0-.2.2-.4.3-.5l.3-.5.3-.3 1.2-1.5.5-.7.6-.7 1.2-1.4.9-1h.3l.6-.2.7-.1a9468.4 9468.4 0 00-2.3 2.5l-.9 1.2-.8 1-1 1.5-.5.7-.4.7-.8 1.6-.4.8-.3.7-.7 1.7a23.3 23.3 0 00-1.3 5.7l-.2 2.2v1.3l-.1 1.1v2.2l.3 2.2.8 3.6.2.8.3.7a18.4 18.4 0 001.8 3.1l1 1.6c.3.2.5.5.6.8l.5 1 .4.7.5.8.2.4.5.8.5.7 1.5 1.6.2.2a13.8 13.8 0 001.6 1.4l1.7 1c.7.5 1.5.9 2.2 1.2l1.3.4 1.2.4a13.8 13.8 0 002.6.4l1.3.1 1.4.2h3.9l1.6-.3a93.1 93.1 0 003.8-.6l2.3-.6 1-.3 1.4-.3 1.1-.3 1.3-.3.6-.2.6-.3c.3 0 .5-.2.8-.3l.7-.3a27 27 0 001.7-.5h.1l.2-.3 1-.8.4-.2.3-.3c.1 0 .2 0 .3-.2a24.1 24.1 0 001.5-1.8l.6-.9 1.2-1.5.6-.7.6-.7 1.3-1.4.7-.8.6-.6.3-.4.3-.3 1-1.6.6-1 .3-.9a40.3 40.3 0 00.5-1.5l.1-.5.1-1a108.9 108.9 0 00.3-3.7l.1-1.8v-6.3l-.3-1.8a43.7 43.7 0 00-1-3.8c0-.4-.2-.8-.4-1.3l-1.1-2.4-.6-1.2a14 14 0 00-.6-1l-.4-.7-.6-1-.9-1a18 18 0 01-.8-.9l-.2-.3-.5-.6-.5-.5-.5-.6-.5-.6-1.4-1.2a22.5 22.5 0 00-5.6-2.9c-.3 0-.5-.2-.8-.3l-.7-.2-1.5-.5-.8-.3-.7-.2h.1l-1.9-.5-1-.2-2.2-.2H94.6l.8-.8.1-.2a11.2 11.2 0 011.8.1c.6 0 1.2 0 1.9.2l1.8.4 1 .3.7.2 1.9.6.8.4.9.2a26.4 26.4 0 013.4 1.6l.9.5.8.5 1.5 1.2 1.3 1.4.6.7.6.7.6.7.7.8.8 1c.3.2.5.6.7 1l1 1.6.8 1.8.9 1.8.7 1.8a20.6 20.6 0 011.3 5.7l.1 2 .1 1.9a25 25 0 010 3.8l-.2 2-.2 1.8-.1 1.1-.2 1-.2.6c-.1.7-.4 1.3-.7 2l-.4.9-.8 1.3-.6.8-.7.9-.6.6-.6.7-.8 1-.7.7-.7.9-.3.4-.4.4-.7 1-.7.9-.5.7-.7.8-.7.8-.9.6-1.1.7c-.4.2-.8 0-1-.3l-.1-.1h-.2l-1 .4-1.2.4-1.4.6-1.4.4-1.5.4-1.4.4-1.9.6-.8.2a48 48 0 01-2.8.7l-1.8.2h-.3l-1.5.2h-1.6l-1 .1h-1z"/><path fill="#000" d="M123.6 122c-.2-.4 0-.8.2-1 .4-.3.8-.4 1.3-.6a40 40 0 003.1-1l2.4-1.2 1.3-.9a29.6 29.6 0 011.5-.9l.2-.2.2-.3.3-.7v-.2l.1-1.3v-.3a1.4 1.4 0 000-.4l-.2-.2a10.3 10.3 0 00-.6-.7l-.3-.3H130h.1-.8l-1.3.2-1.4.1a58.9 58.9 0 00-3.4.7c-.6.2-1.2.4-1.8.4-.3 0-.5-.3-.5-.6s.4-.5.7-.5h.6v-.1l1.4-.5 1.3-.4 1.4-.5 1.4-.3c.7-.2 1.4-.5 2.2-.6h1l1.2-.2h1c.4 0 .7 0 1 .2l.5.4.5.5c.5.6.8 1.3 1 2 .2.7 0 1.4 0 2v.2l-.1.6-.2.6-.3.6a4 4 0 01-1.4 1.6l-2 1.3-1.2.7-.6.2-.3.2h-.2l-.1.1h-.1l-.2.1a17.2 17.2 0 01-3.5 1.2l-1.2.2h-.1l-.1.1h-.3a.8.8 0 01-.6-.4zm46 31.4a1 1 0 01-.5-.4 1 1 0 010-.9v-.2l.4-2.1a22.3 22.3 0 00.4-3.8v-1l.2-1.2.2-2.1.2-2.3v-2.1l.2-2v-2.4a165.3 165.3 0 010-4.3 51.9 51.9 0 01-.2-7v-8.7l-.1-.8v-2.6l-.1-1.1v-1.2l-.2-1.3v-1.1c0-.2.2-.3.3-.2l.2.2.2.3.2.8a26.6 26.6 0 011.1 4.6v.2l.2 1 .2 1.1a27.2 27.2 0 01.4 4.7v4.6l.2 2.3a612.5 612.5 0 00.2 6.9v3.3l-.1 1.2v1l-.1 1v1.2l-.1 1-.2 2.3-.2 2.2-.2 2.1-.1 1.4-.3 1.5-.2 1.3-.2.9-.2.6a3 3 0 01-.5.9 1 1 0 01-.8.3 1 1 0 01-.5 0z"/><path fill="#000" d="M128 192.3c-.3-.4-.3-1.1 0-1.4l1-.8 1.2-.7a92.7 92.7 0 013.4-2l1.1-.7 1.1-.7 1-.7 1-.7h.1c.6-.5 1.2-1 1.8-1.3l1-.6.9-.7 1.8-1c.6-.5 1.2-1 1.8-1.3l.8-.6.8-.5a78.7 78.7 0 002.2-1.7l1-.8 1.2-.8 2.4-2 1.1-1 .6-.5.6-.6 1.5-1.6 1.4-1.6 1.4-1.7 1.4-1.7 2.2-3 1.3-1.7 1.2-1.8 1.2-1.8c.4-.5.7-1.2 1-1.8.2-.1.2-.2.3-.4l.2-.4.1-.5.2-.5.1-.5.1-.4.3-1.2c0-.2.3-.3.5-.2.2 0 .3.3.1.5l-.1.6-.3 1-.2 1c0 .4-.2.7-.3 1l-.4 1-.4 1.2-.5.9a42 42 0 01-1 1.8l-1.4 2.4a32.7 32.7 0 01-1.7 2.4v-.1a163 163 0 01-5.6 6.9l-1.4 1.5a32.8 32.8 0 01-3.4 3l-1.6 1.4-2.5 1.8-1.6 1.4-.5.3-.4.3-1 .6c-.5.5-1.2.9-1.8 1.3l-1 .6-.8.6-1.3.9a25.3 25.3 0 00-2.2 1.5l-.6.4-1.4.9-1.2.8-1.3.8-2.6 1.5-1.2.7h.1l-.8.5-.8.6-.5.1c-.2 0-.5 0-.7-.2z"/><path fill="#000" d="M124.6 206h-.5l-.8-.2-.6-.2c-.5-.1-.8-.4-1.2-.7l-1-1-.8-.6-.5-.7-.7-.9-.7-1-.6-1-.5-.8-.4-.6-.8-1.3-1-2.3v-.2a1 1 0 01.3-1.2c.5-.3 1.2 0 1.3.5l.2.5a18.2 18.2 0 001.2 3l.6.8.3.6.7 1 .6 1a26.7 26.7 0 00.6.8l.3.4.5.5 1.4 1.3c.1 0 .2 0 .3.2h.3l1 .3a10.7 10.7 0 001.4.1 5.1 5.1 0 002.2-.5h.1l.3-.3.5-.6v-.1l.1-.1v-.2l.1-1.2a19.7 19.7 0 000-2.5l-.4-2-.1-1.2-.3-1.1-.5-1.7-.3-.8-.4-1-.6-1.6-.6-1.7-.3-.7.2-.2.1.2.4.6.3.6.6 1 .3.4a16.2 16.2 0 01.9 1.4l.5 1 .4.8c.3.6.7 1.1.9 1.8l.3 1 .3 1.1.5 2 .1 2.2v1l-.1.5-.1.4-.2.8-.6.9-.5.4-.9.7-1.3.4-1.5.2-1.3-.1zm47.6-51.3l-.4-.4-.4-.4-.8-.7c-.1 0-.3 0-.3-.2v-.1h-.1v-.1a.5.5 0 01-.3-.4c0-.3.2-.5.4-.5h1.4l1 .3h.5c.5.1.9.5 1 1 .2.2.1.6 0 1a1.3 1.3 0 01-1.2.7c-.3 0-.6 0-.8-.2z"/><path fill="#000" d="M115.3 197a1.8 1.8 0 00-.4-.2 9 9 0 00-1 0l-2.4.1h-2.7l-2.5-.3h-2.7l-2.5-.3-2.5-.6-1.2-.3-1.1-.4-1.2-.5c-.4-.1-.7-.3-1.1-.6l-1.3-.7-1.2-.8-1.4-.8a36.5 36.5 0 01-2.4-1.8l-.5-.5-.6-.5-2-1.8-1.7-1.8-.9-1-.8-1-1.5-2.1-1.5-2.2-.6-1-.5-1-1.4-2.2c-.5-.7-.8-1.5-1.2-2.2-.5-.8-1-1.6-1.3-2.4l-1-2.6-.8-2-.8-2.2a53 53 0 01-.7-2.1l-.4-1.2-.5-1-.2-.7-.3-.8-.6-1.5-.8-3.1-.4-1.2a18 18 0 01-.3-1.3l-.5-2.5-.6-2.5-.5-2.3-.4-1.3-.3-.8-.2-.8c0-.1 0-.3.2-.4.1-.2.3-.2.5-.1.4 0 .6.4.8.8l.5 1c.3.6.6 1.2.7 1.9l1 4 .6 1.8.4 1.7.6 1.6.5 1.9c0 .4.2.7.3 1.1l.4 1.2.4 1.3.4 1.2.8 2.5.8 2.7 1.2 3 1 2.8 1 1.8.5 1 .5.9a165.2 165.2 0 013.2 5.1l1 1.4.8 1 1 1c.2.4.5.8.8 1 .3.4.6.8 1 1l1.4 1.5.3.3 1.2 1a25.7 25.7 0 012 2l.8.6 1.6 1 .8.5.8.6 1.3.7.8.4 1.2.4 1.2.4a27.4 27.4 0 005.4.8h3.4l3.4.5h-.1l2 .1 1.7.2c.5 0 1 0 1.6.2.4 0 .6.4.6.8-.1.4-.4.6-.8.6h-.1z"/><path fill="#000" d="M80 195.7h-.4l-.9-.3c-.3 0-.6-.2-.8-.3l-.5-.2-.1-.1-.7-.4-.8-.8-.6-.8-.5-.7-1.1-1.8-.3-.7v-1.9l.3-1 .6-.6.7-.8a12.9 12.9 0 001.5-1.3l.5-.4.6-.5.6-.5.6-.5.4-.4.4-.2.1-.2c.1-.4.7-.5 1-.1v.2l.2.3v.4l-.2.6-.6.6-.5.6-.6.6-.3.4-.4.4-.7.6-.6.6-.6.6-.8.8v.2l-.3 1.1a12.2 12.2 0 00.5 1.1l.5.8.6.8a9.6 9.6 0 001 1h.1l.1.1.6.3a10.8 10.8 0 001.2.3h.6l.8-.3.4-.2.5-.3.8-.4h-.1c.2 0 .4-.3.6-.4l.6-.4.4-.4.6-.4.5-.4.4-.2.2-.2.5-.5c.2-.3.4-.6.8-.7.2 0 .4 0 .6.2.2.1.3.4.2.7a3 3 0 01-.6 1c0 .2-.2.4-.3.5l-.3.2-.3.3-.4.4-.6.4-.3.4-.4.3-.9.6-.8.6-.4.3-.4.2a6.3 6.3 0 01-1.3.6h-.4l-.7.2zM74.5 66.9v.7l.1.1.1.2.1.2.4.4h.1l.3.3h.1l.4.2h.6l.3.1h.4l.6-.2.2-.3.1-.2.1-.4v-.6l.2-.4.1-.9v-.7l-.1-.4-.1-.2-.1-.1-.1-.1-.1-.1H78l-.2-.1h-1.3l-.1.1-.3.1-.3.2-.2.1-.2.2a1.7 1.7 0 00-.1.2c-.1.2-.4.3-.6.3l-.1.2v.4l-.1.7zm4.4 7.8h-1.2c-.5-.1-1.1-.1-1.6-.4l-1.3-.8a7.3 7.3 0 01-3.1-4.3 17.9 17.9 0 01.4-4.4c0-.4.4-1 .7-1.4a13 13 0 011.4-1.6l.6-.4 1.1-.6 1-.5.6-.2h1.9l.8.2.5.1.7.3h.3a5.7 5.7 0 011.4.4l.6.4.8 1 .5 1a16.1 16.1 0 011.1 4.6v.7l-.2.8a6.8 6.8 0 01-1.5 3l-1.3.9-1.4.9a10.5 10.5 0 01-2.7.4zm68.3-71.4l-.8.7v.4l.2.3.2.4.5.7a12.2 12.2 0 001 1 28.6 28.6 0 01.2-.7l-.1-.4-.3-.6-.3-.6-.1-.3-.3-.5v-.5h-.2zm-12.8 30.2a8.8 8.8 0 00-1.4.5l-.2.2a5 5 0 00-.4.3l-1 1-.5 1-.5.7-.3.6-.2.6v.2l-.1.8v1l.3 1.2a22.4 22.4 0 00.4.9l.2.4h.1l.1.1.2.1h.3l.8.1a2.8 2.8 0 00.7 0 10.8 10.8 0 001.5-.7c.2 0 .3-.2.5-.3l.8-.6 1-.5 1.2-1c.3 0 .5-.2.8-.3l.7-.4c.5-.2 1-.5 1.6-.6 0-.2.2-.3.4-.3v-.1a6.5 6.5 0 010-.2l-.3-.6a7.5 7.5 0 00-.7-1.2l-.4-.4-.5-.5-.5-.6-.5-.4-.6-.4-.3-.2-.9-.2h-.2l-1.8-.2h-.3zm10 4h1.1l1.2.3.6.2.8.3 1 1 .7.8.4.9.1.5.1 1.2v1l-.1 1-.2 1.1-.2 1v.5a4.6 4.6 0 01-.7 1.3l-.2.2.8.6 1 1.4.5.7.5.8.3.5.1-.1.5-.3h.2c.2-.2.5-.2.8-.3l1.1-.8 1-.8 1.5-1.3.6-.5.7-.7 1.7-1.9.9-.9.8-1 .6-.8.6-.9a33.7 33.7 0 002.3-5.2l.2-1 .2-2.9.1-2.6v-2.4l-.1-1.2-.2-1.3a69.2 69.2 0 00-.5-2.8 34.5 34.5 0 00-2.6-6.2l-1.4-2.5a14 14 0 00-.6-.8l-.5-.7-.7-.8-1-1-.5-.6-.3.3-.6.4a7.2 7.2 0 01-1.5.6H153l-.5-.1a12.8 12.8 0 01-3-.7c-.6-.3-1.1-.5-1.6-.9l-.9-.8-1-1a16.1 16.1 0 01-1.1-2 4.5 4.5 0 01-.3-2.2V2.6h-1.2l-1.7-.2h-1.8a37.2 37.2 0 00-2.2.2l-.3.1-1.1.3-1.2.3a19 19 0 00-2 .9l-.8.4-.8.5-.8.6-1.6 1.1-1 1-1.6 1.6a23.2 23.2 0 00-2.7 3.3l-.6 1-.4.6-1 2-.5.8-.5 1-.3.6-.2.7h.4l1.5.6 1.4.7 1.3.7 1.3.8c1 .6 1.9 1.4 2.8 2.2a10.5 10.5 0 011 .9l.2.3.5.5.7.5.2.2.8.7 1 1.2.5.7.6.8 1 1.5.5.7v-.1h.1l.6.2.7.1.6.3.7.4a7.7 7.7 0 011.4 1.2l.4.5.7.6.5.8.5.9.2.5.3-.2.5-.2h1.4zm-14.8 17l.1.3.6 1a5.4 5.4 0 00.6.7c0 .1 0 .2.2.2l.5.3.4.3a3.6 3.6 0 00.9.2h1.6l.5-.3c.2 0 .3-.2.5-.3l.2-.1.2-.2.7-.8.6-.5.6-.7.4-.4.5-.4.5-.4.5-.4.5-.4.4-.2.6-.3 1-.2.9-.3.3-.1v-.2c.3-.2.7-.2 1 0l.2-.2.6-.2.5-.4c.2 0 .3-.2.4-.3l.2-.1.7-.8.2-.3.5-.7.5-.6.1-.4.2-.3.3-1.7v-.2a25.4 25.4 0 00.2-3 6.4 6.4 0 00-.4-1v-.2l-.3-.4-.6-.6-.2-.2h-.2l-.5-.2-.5-.2h-.1l-.6-.1h-.8l-1.2-.2h-.2l-.4.3h-.2l-.4.2h-.8a4 4 0 00-.4.1l-.2.1-.4.2-.8.5-.8.6-1 .8-1.2 1-.7.6-.7.6-.8.4a7.5 7.5 0 01-2.2.6h-.7l-.5-.1-.5 1-.3.6-.3.8-.2 1.3-.2 1.3-.2 1.4-.1 1.6v.3l.1.9V54l.1.4zm11.2-.7l-.5.5-.3.3-.6.4-.1.1-.8 1h-.2l.7 1 .5 1 .5.7.4.8a9.5 9.5 0 01.8 1.8l.2 1 .3.6.3.8a10.7 10.7 0 00.6 1.4l.2.2h.1l.2.1a4.2 4.2 0 00.7 0h.3l.8-.3a30.5 30.5 0 003.2-1.8l.1-.1.2-.3.4-.5.2-.4v-.4a2 2 0 000-.6l-.7-1.2-1.3-2-.6-1-.6-1.1-.2-.3-.6-.7-.4-.7V54l-.9-1.3h-.1l-.6.3-.6.2-.5.1h-.1l-1 .5zm22.3 16.7l.2.4.7 1.6.6 1.7v.2l1.3-1.5 1.3-2c.4-.6.9-1.2 1.2-1.9l.7-1.1.5-1.1.4-1 .3-1 .4-1.4.2-1a16.8 16.8 0 000-2.2l-.2-.7-.1-.3a3.9 3.9 0 00-.5-.9l-.2-.1-.2-.2h-.3l-.2-.1H168.2a13.9 13.9 0 00-1 .7 25.6 25.6 0 00-2.4 2.2l-1 1-1 1-.5.4-.2.1-.3.2-.2.2-.5.4-.5.5-.5.3.2.3.3.5v-.1l.6 1.1.7 1.2.5 1.1.6 1.3v.2zm6 22.2a.7.7 0 01-.3-.4V92l-.1-.3-.5-1.6-.3-.7-.3-.9-.3-.8-.3-.7-.4-1-.2-.7-.3-.9-.2-.8-.6-1.7c0-.3-.2-.5-.3-.8l-.2-1-.6-1.6v-.2l-.2-.7-.3-.8-.6-1.5-.5-1.4-.6-1.4-.7-1.6-.8-1.6c0-.3-.2-.6-.4-.8l-.4-.8-.8-1.6-.7-1.2-.7-1.1a25.3 25.3 0 00-2-2.9l-.7-1-.6-.7-.6-.8-.4-.6-.5-.8-.5-.7-.6-.7-.4-.7-.5-.7a25 25 0 01-.6-1l-.5-1c-.4-.5-.7-1.2-1-1.8l-.4-.6v-.1l-.5.6-.5.4-.9.8-.6.4a4 4 0 01-.5.2l.3.5 1 1.3.7 1 .5.6 1 1.7a37.3 37.3 0 011.7 2.6c.3.5.4 1 .5 1.6 0 .9-.5 1.7-1 2.4l-.3.4-.9.6-.9.6-.9.4a43.2 43.2 0 01-3 1h-.9c-.3 0-.7-.1-1-.3a4 4 0 01-.4-.3l-.7-.8-.5-.8-.3-.6a6 6 0 01-.5-1l-.4-1c0-.4-.2-.7-.4-1 0-.4-.2-.7-.3-1l-.8-2-.3-.8v-.1l-.8.7c-.4.4-.9.5-1.3.8-.5.2-1 .2-1.5.2h-1.4l-1.7-.7a5.2 5.2 0 01-1.7-1.6l-1-1.5-.2-.8-.2-.5V51l.3-2.2c0-.4.2-.7.3-1l.4-1.1 1.1-2 .3-.3a2 2 0 01-.7-.6l-.4-.7a4.7 4.7 0 01-.7-1.8l-.1-1a7.1 7.1 0 010-2.6 7.4 7.4 0 011.2-2.2l.5-.8.4-.4c0-.2.2-.3.3-.4l1-1 1-.5.4-.2.7-.2h.3l-.4-.6-1-1.3-.7-.9-.6-.8-.3-.4-.2-.2-.8-.8-.3-.3-.3-.3-.4-.2h-.3l-.5-.4-.5-.3-.7-.5-.6-.4-.7-.4-1.3-.6-1.2-.6-1.8-.7-2.8-1-1.3-.3-1.3-.4-1-.2a11.5 11.5 0 01-1.4-.3h-.1l.5-.5 1.2-1.2.3-.3a9.8 9.8 0 012.2.4l1.5.4.1-.8.3-1 .1-.7.3-.7.5-1.4 1.3-2.6.8-1.1.9-1.2c.6-.8 1.2-1.5 2-2.2l2-2 2.5-1.6a22 22 0 012.4-1.3l2.7-1h.7l1.3-.4 1.5-.2 1.3-.2h1.4c1 0 1.9 0 2.8.2l1.4.1.4.1.3-.1 1.2-.6h1c.4-.2 1-.3 1.5-.3.4 0 1 0 1.4.2.4 0 .7 0 1 .2a8.6 8.6 0 012.7 1l.7.5a7.6 7.6 0 011.7 1.8l.5 1 .5 1 .3.6c.1.2.3.5.3.8v2l.8 1 1 .7.8 1v.1l1 1.1.7 1.3.7 1.2.7 1.1.7 1.4.6 1.3a66 66 0 011.7 5.5l.3 3c0 1.8.2 3.7 0 5.6l-.3 3-.3 1.5-.2.8-.5 1.3-1.2 2.8-.7 1.2-.8 1.3a35.4 35.4 0 01-2.7 3.4l-.9 1a37.8 37.8 0 01-4.5 4 4.5 4.5 0 01-1.9 1h-.4l.4.6.6.8.5.8v.2l1 1.4.5.7.5.7 1 1.6 1 1.6v.1l.6.8h.1l.1-.1 1-1.4a4.4 4.4 0 01.7-1l.5-.5.5-.6.8-1 .3-.4.5-.6.5-.6.5-.5a6 6 0 012.4-1.6c.5-.2 1.2-.2 1.7 0 .6 0 1.2.2 1.7.6l1 1.3c.3.4.5 1 .6 1.5.2.7.2 1.4.2 2 0 1 0 1.8-.2 2.7a58.4 58.4 0 01-.7 2.7l-.4 1.1-.5 1.3-.9 1.9a35.8 35.8 0 01-3.6 5.3 13.7 13.7 0 01-1 .9l.3.7.2.8.3.8.6 1.7.6 1.7.6 1.7.2.9.4 1.3.4 1.3.3 1 .4 1.2.2 1a8.4 8.4 0 01.1.7v.4c0 .3-.3.5-.6.6l-.4-.1zM63.4 135.6l-.2-.2-.4-.8-.5-.8-.4-1-.2-.2v-.2l-.4-.5-.2-.4-.3-.5-.2-.3v-.1l-.2-.2-.2-.6-.3-.5-.1-.2-.2-.3-.6-1.1-.8-1.3-.5-.6-.4-.6-.4-.4-.4-.6-.4-.4-.3-.3-.2-.2h.3v-.1h.1l.2.3.7.7.6.8a44.1 44.1 0 011 1.3l.2.4.3.4.2.4.6 1 .2.4.1.2.2.3.3.7.2.5v.1l.2.2v.2h.1l.2.3.2.4s0 .2.2.3l.1.4.2.4.4.8.2.4.2.4.6.9.1.1v.1zM42.3 72l-1-.3c-.5-.2-1-.4-1.7-.5l-.8-.4-.8-.4-.8-.4a12 12 0 01-.9-.5l-.7-.5-.7-.4-.5-.4-.4-.3-1.1-1-1.4-2-.3-.5-.2-.4a8.5 8.5 0 01-.4-1.2l-.1-.3-.1-.6-.1-1V60a22.7 22.7 0 010-1.7l.2-.9A6.5 6.5 0 0131 56l.2-.5.5-.6.6-.6.4-.4c.3-.3.6-.4.9-.5l.6-.3.4-.1 1-.4H37l1.1.1 1 .4.2.1.7.4.9.5.8.5.4.3c.2 0 .3.2.5.3l1.4.7.7.4.5.2v.2l.3.3.3.2.3.3.4.3.1.3.2.7h-.2l-1.4-.8-.7-.4-.7-.4-.4-.2-1-.5-.7-.4-.5-.4-.5-.3-.6-.4-.5-.4-.6-.3-1.2-.6h-.1l-.4-.1-1.1-.1h-.3l-.4.1-.6.3-1 .4-.2.2h-.1l-.2.2-.8.8a12.9 12.9 0 00-.7 1.2l-.2.7-.1.7-.2 2.2v1l.3 1 .3.7a22.5 22.5 0 001 1.8 15 15 0 001.8 1.8l.6.4.4.3 1.3.7 1.8.9.9.5.9.3.7.4c.1 0 .3 0 .5.2l.6.2 1 .6h-.1.2l.2.3.3.3v.1l.1.1c0 .1 0 .2-.2.2H42.3z"/><path fill="#000" d="M46 64.3a.5.5 0 01-.3-.4h-.1l-1-.4-1-.3-2.2-1c-.3 0-.6-.3-1-.4l-1-.5-.9-.5-1.1-.7a.9.9 0 01-.4-1c0-.2.2-.3.3-.4.2-.2.5-.2.7-.2l1.3.5 1 .5 2 1.1 2 1.3a21.4 21.4 0 012 1.5l.2.4c0 .3-.1.5-.4.5z"/><path fill="#000" d="M37.4 62c0-.2 0-.4.2-.5.2-.2.6-.2.8-.2a21.2 21.2 0 012.3-.3H42c.3.1.5.4.5.7 0 .3-.3.5-.6.5H41l-.5-.1c-.7 0-1.3 0-2 .2h-.7c-.2 0-.4 0-.5-.2zm59.9-43.3l.4-.4h.7l.9-.2h2.2c-.3 0-.4 0-.5.2l-.5.3h-1l-1 .1h-1.3z"/><path fill="#000" d="M54.2 122.8l.4.1.2.2.3.1h.8l.4-.2.4-.2.2-.1 1.2-.5.2-.1.8-.5.9-.5 1.3-1 .7-.6.5-.5a20.7 20.7 0 001.3-2.5l.4-1 .1-.7.2-2.3a16.1 16.1 0 00-.4-3l-.6-1.5-.2-.4v.2l-.7-1.7-.7-1.5-1.7-3.3-1.8-3.2-.9-1.7a54.5 54.5 0 01-3.5-8.8l-1.1-3.7-.9-3.7-.3-2a42.8 42.8 0 01-.8-5.6 49.8 49.8 0 01.2-11.1l.3-1.8.5-1.8.2-.8.3-.9.8-1.5.4-.8.7-.8.5-.6.6-.7.5-.4a17.8 17.8 0 011.7-1.6l1.7-1.3 2.8-2 1.5-1c.4-.4 1-.7 1.5-1l1.4-1.1 1.6-1.2 1.5-1L71 40a80.8 80.8 0 012.2-1.6l1-.8 1-.7 2-1.5 1-.9 1.4-1 2.3-2a127.2 127.2 0 005-4l1.3-1.2 1.3-1 2.1-1.8 2.5-2 1.2-1 1.2-1.2 1.1-.9 1-1L100 16l.6-.7.6-.6-.7-.8a34 34 0 00-1.3-1.2l-1.2-.9-1-.8-1.3-.9v.1l-.2-.2-.8-.4-1-.5a44 44 0 00-1.8-.9c-.2 0-.5-.1-.7-.3L89 7.2l-2.2-.8a27.2 27.2 0 01-2-.4l-1.3-.2-1.2-.2-1.5-.2-1.8-.1-1.7-.2H63.2l-1.6.2-3.3.5-1.7.4-1.8.4-1.7.3-1.7.5-3.5.9-1.4.4-1.3.3-1 .3-.9.4-2 .7c-.4 0-.7.2-1 .3l-1 .3-1.9.8-1.5.6-1.6.9-1.6.8-1.6.9c-1 .5-2.1 1-3.2 1.7l-1.5.9-1.5.8a30 30 0 00-2.8 2L20.4 22l-1.6 1.4h.1l-.7.7-1 1c-.4.6-1 1-1.5 1.6a46 46 0 00-6 8.3v-.1L9.1 36l-.3.7c0 .3-.2.5-.3.7l-1 2.5-.4.8c0 .3-.2.6-.3.8l-.6 2-.7 2-.5 1.8-.6 2a102 102 0 00-1.3 5.1L2.7 57l-.3 2.8-.3 3-.3 6.2a66.4 66.4 0 00.7 9l.6 3.4.4 1.7.2 1 .2.8L5 88.8l.8 2 .8 2a46.5 46.5 0 005.9 10.1l1 1.4 1 1.2 1.2 1.2a75.7 75.7 0 006.8 5.7l1.6 1 1.3.7 1.6.8c1.1.6 2.3 1.3 3.6 1.8h-.1l2.3.8 2.3.9 2.4.8 2.6.7 3 .7 1.6.3c.6 0 1.2.2 1.7.3l3.2.5 1.6.4a31.2 31.2 0 012.9.7zm-.3 1.7a.7.7 0 01-.6-.6H53l-1-.2-.9-.2-1.2-.1-1.3-.2-1.8-.2-2-.3-1.8-.2a57.5 57.5 0 01-3.6-.8l-1.9-.5-1.9-.6-1.7-.6-1.6-.6-1.8-.7a22.2 22.2 0 01-3.4-1.6c-.6-.2-1.2-.6-1.7-.9l-1.7-.8-1.6-1-1.6-1-1.5-1-1.5-1.2c-1-.8-1.8-1.7-2.7-2.6a28.7 28.7 0 01-4.8-5.8L9 101l-.9-1.5a118.6 118.6 0 01-3.4-7.1 67 67 0 01-1.4-3.6l-1.1-3.6-.2-.8-.3-1.2c0-.6-.2-1.1-.3-1.7l-.8-4-.2-1.9-.2-1.9A78.4 78.4 0 010 68v-2a61.7 61.7 0 01.6-7.5A39.4 39.4 0 012 51.3l.9-3.2v.1l1-3.6L5 40.8l.3-.8.4-.9.4-1 .4-.7.7-1.7a14.2 14.2 0 011-1.8l1.5-2.6a33.2 33.2 0 015.6-6.8l.6-.6.6-.7 1.5-1.5 1.3-1.2 1.5-1.4 1.5-1.1 1.6-1.1 1.5-.9 1.7-1 3.3-1.7 1.6-.8 1.7-1 1.7-.8A38.3 38.3 0 0142 8l1.5-.6 3.1-.8 4.4-1 2.1-.6 1-.2 1-.2 1.8-.4 1.9-.5 1.8-.3 1.9-.2h1.7L66 3h12.8l2.8.2 1.5.2 1.4.2 1 .1 1 .3 1.2.2 1 .4A63.6 63.6 0 0092.5 6L95 7l1.1.7 1.2.6 1.1.8 1 .7 1.2 1 .5.4.4.4.9.9 1 1.2.2.3.2.6c.1.5 0 1-.3 1.4l-.4.6-1 1.1-.6.4c-.2 0-.3 0-.5.2l-.7.6c-.2 0-.3.2-.4.3-.2 0-.3.2-.4.3l-.3.4a.7.7 0 000 .9l-.4.4-1 1-1.2 1L94 25l-2.2 1.8-1.2 1-1.1.7-5.8 4.9-2.8 2.4-1.5 1.2-1.4 1.2-1.5 1.1-1.5 1.2-1.4 1-1.6 1.1-1.5 1.2-1.5 1-1.5 1.2-1.4 1-2.5 1.9-2.5 1.8-1.1.8-1 .7-.8.7-.6.6-.5.5a18.1 18.1 0 00-1.5 2c-.3.3-.5.7-.6 1.1l-.3.8a22.7 22.7 0 00-1 3.8l-.3 1.2a60.5 60.5 0 00-.4 6.4l.2 3.3.4 3.5.7 4.2.6 2.2.4 1.8 1.5 4.2a119.9 119.9 0 003.1 7.4l.9 1.6.8 1.7 1.7 3.3.8 1.6a48.9 48.9 0 012 5.1 18.6 18.6 0 01.5 3.8v2l-.3 1.3a8 8 0 01-1.2 2.5c-.3.6-.7 1.1-1.2 1.6a11.3 11.3 0 01-2 1.4l-1 .6a11.9 11.9 0 01-1.3.6l-1 .6-1 .4-.8.2-.9.2-.8.1a6.4 6.4 0 01-1.3 0z"/><path fill="#000" d="M43.7 72.7a1 1 0 01-.5-.5 1 1 0 010-.9h.1l.4-.7.4-.7.3-1.2.5-1.1.2-.7.3-1.3.2-1c0-.6 0-1.1.2-1.7V62l.1-1v-.7l-.1-.7-.1-.6-.1-.7v-.2c0-.2.2-.3.4-.3l.3.2.2.3.2.4.2.5.2.7v.2l.3 1.4v2l-.2 2L47 67c0 .5-.2.9-.4 1.3l-.3.8-.2.7-.3 1-.3.6-.4.8a1 1 0 01-.6.5 1 1 0 01-.3 0h-.5zM57 52.2a.4.4 0 01-.3-.5c0-.2.2-.4.4-.3h.6l.6-.2c.3 0 .7-.2 1-.4l.7-.2 1.2-.5c.8-.3 1.7-.5 2.5-.9a29.6 29.6 0 012.3-.8l2.5-.7 3.8-1.4.8-.3.4-.2.5-.1 1.5-.3.7-.2h.4l.4-.2.4-.1.3-.5.7-.2 2.3-.9 2.3-.8 1.3-.5 1.3-.3.2-.1 1.2-.4 1-.3.3-.1 2.4-.8h-.1l.2-.1.5-.4h.4c.3 0 .5-.2.7-.4l.4-.4.7-.7 1-1 1-1 .4-.4.3-.3.3-.3.1-.2.6-.5 1.7-1.6 4-3.5a108.8 108.8 0 017.9-6.7 50.1 50.1 0 003.2-2.8l1.2-1.2.8-.7.8-.9c.1-.1.2-.3.1-.5l.5-.5 2.2-2.8.5-.7.6-1 .9-1.2h-3.1l-1 .2h-3.2l-.9.2c-.3 0-.7 0-1 .2l-1.2.2-2.1.6-2.3.7-1.2.5-1 .3c-.8.2-1.4.5-2.2.6-.4 0-.9-.2-1-.7a1 1 0 01.4-1.2l.7-.3a16.2 16.2 0 001.2-.5l.5-.1h.2a47.2 47.2 0 014.7-1.7l1.3-.3 1.2-.3 1.4-.2 1.1-.1h2.4l.6-.1 1-.1 1.3-.1h1.7l.7-.2.7-.1h.3l.5-.2h.5c.7.2 1.2 1 1 1.6l-1.4 2.3-.8 1.2-.7 1-.8 1-1 1.1-1.5 1.9-.8 1-1 1-.8.9-1 .9-2 1.8-1.8 1.5-4.1 3.4-3.8 3.2-2 1.8-1.8 1.7a35 35 0 01-2 1.7l-2 1.7-2.1 1.7L92 41l-.6.4-.4.2-.6.2-1.2.3-1.1.5-1.2.4-1.3.4a38.7 38.7 0 00-4.8 1.8l-2.3.8a56.7 56.7 0 01-2.5.8l-1 .2a30.1 30.1 0 00-2.6.7L69 48.8l-1.7.4A57.3 57.3 0 0058 52a4 4 0 01-.8.1H57zm-39.5 57.7c-.2-.2-.4-.5-.4-.8l-.1-.5-.1-1-.2-1-.2-1.1-.2-1.1-.3-1.2-.2-1.1a22.3 22.3 0 01-.4-2.3l-.3-1.2-.2-1-.2-1-.4-1.1-.4-1.2c-.2-.5-.4-1-.3-1.6 0-.3.2-.6.4-.8.3-.2.6-.3 1-.3l1.3.2a34.3 34.3 0 004 .1l1 .1 2.4.2 2.4.2h1.2l1.2.2h1.7l-1.4-1.2-3.1-2.6-1-.7a50 50 0 01-1.2-.8l-1-.7-1.1-.9-1-.6-1-1-.5-.6-.2-.4-.1-.4v-1l.4-.6a4.3 4.3 0 00.2-.3v-.1l.3-.4a18.2 18.2 0 00.8-1.7l.9-1.8.5-.9.4-1 .5-.9.4-.9 1-2.3.5-1.2a34.8 34.8 0 00.8-1.7v-.6l-.2.1-1.4.7-1.5.6-1 .5-1.3.5-1.8.8-1.8.8-1.5.8-1.5.8-1.3.5-1.2.5a3 3 0 01-.6.2h-.8c-.2 0-.4 0-.6-.2l-.3-.3-1-1-1-.8-.8-.7a28 28 0 01-1.8-1.7l-.8-.8a35 35 0 01-1.5-1.8c-.3-.3-.4-.6-.6-1a1 1 0 01-.2-.4c0-.1.1-.3.3-.3h.6l.5.3.5.3.4.4.9.8.8.8 1.8 1.5 1.9 1.5.5.4.4.4.5.6c.3 0 .5-.2.8-.3.3 0 .6-.2.8-.3.3 0 .6-.2.8-.3.3 0 .5-.2.8-.3l1-.5c.2 0 .4-.2.5-.3l.6-.3 1.2-.5 1.3-.5 1.4-.6 1.2-.5 1.5-.7 1.4-.6 1-.5 1.1-.4.6-.2c.5 0 1 .1 1.1.5.4.6.3 1.3.3 2s-.3 1.4-.5 2l-.4 1L26 72l-.4 1.2-.6 1.5-.6 1.5-.3.7-.4.8-.7 1.6-.8 1.5-.7 1.4v.1l-.1.2v-.2.3a25.3 25.3 0 001 1l.7.6.7.5.6.5 1.9 1.4L28 88l1.7 1.6 1.8 1.5 1 1 1 .9-.1-.1.2.2c.4.4.3 1 0 1.4l-.5.4h-.5.1l-1 .2h-1.4a18.6 18.6 0 01-2.6 0l-1-.1h-1.3l-1.1-.2H23l-2.3-.3h-1.5l-1.5-.2c-.6 0-1.1 0-1.6-.2h-.3l.2.7.3 1.2.3 1.1c0 .4.2.8.3 1.1l.2 1.2.2 1.1.3 1.2.2 1 .2 1.3.4 2 .2 1 .2 1.2a4.6 4.6 0 00.1.6v-.1.1c.2.4 0 .9-.3 1.1a1 1 0 01-1.2-.2z"/><path fill="#000" d="M59.4 51.3V51l.1-.2.2.1h.8l.6-.1 1-.3 1-.4 2-.8 1-.4 1.2-.5.7-.4.8-.3 1-.4 1-.4 1-.5.6-.2.8-.4 1.6-.6 1.6-.5 1.7-.5.7-.2 3.5-1.2 1.8-.7 1.7-.7c.3 0 .6-.2.8-.3l.9-.4 2.2-1.1 1-.6.6-.3c.2 0 .3-.2.5-.3l.2-.1.5-.3.9-.6 1-.7 1-.7 1-.7 1.3-1 1-.9 1-.8 2-1.6.9-.7a26.7 26.7 0 001.6-1.4l1.6-1.5 1.5-1.5 1.5-1.4 2.7-3a53 53 0 002-2.2l1-1a19.6 19.6 0 001.5-1.9l.6-.7.6-.6.5-.7L119 13l1.2-1.5.9-1.1.6-.8h-1l-1 .1h-2.4l-.6.1a46.6 46.6 0 01-3.5.4l-.6.1h-.6l-2 .5-1 .1-1 .1-1.4.3-1.5.4-1.4.3-1.2.5-.5.2-.5.2-.5.2c-.4.3-1 0-.9-.5 0-.2.2-.4.3-.5l.4-.1.7-.3.6-.3.7-.2.7-.2h.7l.8-.2.7-.2.8-.2 1-.2 1-.1h.8l1.2-.3.7-.2.6-.1.8-.2h1.4l.6-.2 1-.1 1-.2h-.1l1.5-.2h1.5l1.4-.2h.8l.7-.1.6-.1c.3 0 .6 0 .8.3.1.2.2.4.1.6v.2c0 .3-.2.6-.4.8l-1.3 1.7-1.3 1.7-.7.8-.7.9-1.4 1.6-.7.8-.7.7-.6.7-.6.7-1.6 1.8-1.7 1.7-2 2.2v-.1l-.1.1-1.2 1.1-1 1.1-1.6 1.6-1.5 1.4-1.6 1.5-1.6 1.5-2.3 2.1-1.7 1.6-1 .8-1 .8h.2a16 16 0 01-3.5 2l-2.2 1-.8.4-1 .4-2 .8-1.9.7-2 .7-1.1.4-1 .4a31.2 31.2 0 01-2.2.6l-1 .4-1.3.4-1.1.4-1.1.3-1.1.4-.7.3h-.5l-.6.3h.1l-1 .2c-.5 0-.9.1-1.3.3l-.8.2-.6.2-1.2.4-1.2.3-1.3.3-1 .3-1 .3a4 4 0 01-1 0h-.9z"/><path fill="#000" d="M96.7 22l.3-.3.4-.3.7-.6 1.3-1 .6-.5 1-1.2.2-.3.3-.3.3-.3.2-.3.3-.4.5-.8.2-.4v-1.2l-.2-1.3c0-.3.3-.5.6-.6.3 0 .6.1.8.4 0 .3 0 .5.2.7l.1.4v.3l.1.4v.8l-.1.3v.1l-.1.2-.8 1.2-.5.5-.9.8-.5.5-.6.4-.5.5-.3.2-.4.1-1.2.7-.7.6-.8.5-.2.1v.2l-.2.1v-.1zM66 148.7l-.5-1.6-.5-1.6-.2-2.2-.2-1.3v-.5l-.3-.7-.2-.9-.2-.5-.3-.8-.2-.8-.5-1.1-.5-1.4-.5-1.1-.5-1.2a10.7 10.7 0 00-.6-1l-.7-1.2-.8-1.2v.1l-.4-.7-.5-.9-.7-1.5-.7-1.5-.5-.8c-.2-.4-.4-.8-.1-1.1 0-.2.3-.3.6-.3.2 0 .4.2.5.4l.9 1.2.9 1.2.8 1 .6 1 .8 1.4.3.7.3.7.7 1.3.6 1.4.4.8.3.9.7 1.7.3.7.3.9v-.1c0 .2 0 .4.2.7l.2.5.2.7.5 1.4.2 1.6v2l.7 3.4c0 .4-.3.7-.6.7h-.1a.7.7 0 01-.7-.4z"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/newscasters.png b/go.dev/testdata/golden/images/gophers/newscasters.png
new file mode 100644
index 0000000..76a1739
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/newscasters.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/gophers/peach.svg b/go.dev/testdata/golden/images/gophers/peach.svg
new file mode 100644
index 0000000..a13a4d4
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/peach.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="peach"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#ffcfd8;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#ffcfd8;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#ffcfd8;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/pilot-bust.svg b/go.dev/testdata/golden/images/gophers/pilot-bust.svg
new file mode 100644
index 0000000..a654dc7
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/pilot-bust.svg
@@ -0,0 +1 @@
+<svg viewBox="0 0 1431 901" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M335.6 867.8c-.6-33-1.1-47.7-2.2-69.6-.6-10.6-.7-11.2-2.4-10-1 .7-5.7 4.6-10.6 8.6-15.4 12.5-25.1 16.2-47.4 17.7-12.7.9-17.2 2.1-32 9-7.5 3.5-15.5 6.8-17.8 7.5-3.1.8-15.6.9-45 .4l-40.7-.7-9.5 4c-18.4 7.8-31.9 11-41.5 9.8-9-1.2-21.4-4.4-26.4-7-11.5-5.8-23.1-18.3-38.8-42-19.7-29.6-24.6-42-19.2-48.9 1.2-1.5 4.9-4.1 8.3-5.8 11.3-5.6 11.9-6.4 14.1-17.1 1.2-6 7.3-8.4 13.3-5.3 3.7 2 9.4 8.1 13.4 14.6 4.4 7.1 4.6 7.5 6.9 20.5 2.8 15.5 8.5 38.9 10.8 44 1.8 4 2.4 4.5 7.7 6.1 8.5 2.4 23.5 1.5 32.9-2.1 3.9-1.4 12.2-4 18.5-5.6 11.1-2.9 12.5-3.1 36.5-3.4 35-.4 54.8-3.6 62.5-10.1 7-5.9 28-56.1 35.4-84.8 5.2-19.7 5.7-30.9 2.2-46.5-5.3-23.4-13.3-77.8-14.3-96.6-.6-11.5 1-23.3 6-46l2.2-10-5.1-5.2c-6.2-6.1-11.4-15.1-14.4-24.8-3-9.6-3.8-28.1-1.6-38.4.9-4.1 1.5-7.5 1.3-7.6-.1-.1-3.1-2.2-6.7-4.7-22-15.4-33.1-36.4-33.3-62.8-.1-13.6 1.3-22.8 5.9-37 4.6-14.5 10.8-24.6 21.3-35 10.1-10 18.1-14.9 30.8-19 13.1-4.2 20.8-5.3 38.3-5.3h15.6l2.3-11.1c3.4-16.3 8.6-32.9 13.7-43.4 7.5-15.5 20.5-27 45.1-39.9 8.5-4.4 12.6-7.4 19.3-13.8 5.3-5.1 14.5-12.1 24.5-18.8 18.3-12.1 35.8-26.7 47.2-39.4 11.3-12.7 14.6-15.6 26.8-23.7 18.8-12.5 55-31.8 79.1-42.1 14.6-6.3 23-8.3 62.4-14.9 18.4-3.2 39.1-6.9 46-8.4C689.2.6 690.3.5 723.5.5c35.9 0 51.2.9 82.5 5.1 21.1 2.8 34.6 6 44 10.2 6.9 3.2 34.5 13.3 62 22.7 43.7 15.1 57 19.9 62.5 22.7 14.2 7.1 36.1 24.7 70 56.3 20.2 18.8 22 20.2 42.9 34.5 32.3 22 35.4 26.2 48.7 67.5 12.3 38.2 11 35 14.5 34.8 5.6-.3 24.6 1.7 31.3 3.3 3.6.8 11.2 3.8 16.8 6.5 21.8 10.7 35.3 28.8 43.1 57.8 2.1 8.1 2.6 11.8 2.6 24.1.1 13.4-.1 15.2-2.8 23.3-4.6 14-14.3 27.1-25.6 34.8l-5.1 3.4.8 10c1.3 16.4.8 39-1.1 48.4-1.8 8.9-6.1 19.3-9.2 22.5-1.6 1.7-1.8 3.2-1.6 10.2.4 8.1-1.6 26.9-4.3 40.7-1.3 7-1.3 7.3 1 11.2 1.3 2.2 5.1 7.2 8.5 11 3.4 3.9 7 8.7 8.1 10.8 5.5 10.4 8.6 35.4 7.5 60-1.3 29.3-4.8 40.9-26.6 86.4-8.6 18-11.4 25.6-10.6 29.7.8 4.3 5.3 10.7 10.6 15.1 6.7 5.6 29 20.3 40.9 26.9 7.7 4.4 12.9 8.3 20.5 15.5 13.2 12.5 18.7 15.5 28.1 15.5 12.6-.1 19.7-5.3 28.4-21 7.6-13.7 11-18 26.9-34.5 15.4-15.9 23.6-22.5 35.2-28.4 19.8-10 37.8-9.9 49.2.3 5.7 5.2 7.8 9.2 7.8 15.1 0 5.5-1.3 8.4-6.2 13.7-8.2 8.9-22 16.5-44.2 24.3-13.7 4.9-18.2 7.7-29.8 19.1l-10.6 10.5-4.1 12.8c-2.2 7-5.3 14.6-7 17-6.8 9.8-24.2 23.7-31.5 25.1-2.5.5-5.8-.2-13-2.8-11.8-4.3-21-6.3-35.2-7.5-18.2-1.7-31.8-7.6-66.6-29.4-16.9-10.5-27.8-16.7-29.3-16.7-.3 0-.3 14.5.1 32.3.4 17.7.4 36.1 0 41l-.8 8.7H336.3l-.7-33.2z" fill="#0a0a0a" fill-rule="nonzero"/><g fill="#fefefe" fill-rule="nonzero"><path d="M348 874.8c0-14.5-.7-42.9-1.5-63.3l-1.4-37 3.7-3c13.5-10.9 22.7-22.5 31.7-39.8 6.6-12.9 6.9-15.6 2.8-35.8-4.9-24.8-3.7-39.6 5.9-75.9 1.7-6.3 3.3-12.5 3.6-13.7.2-1.3.8-2.3 1.1-2.3.4 0 5.4 2.4 11.2 5.4 12.3 6.5 27.3 11.8 41.3 14.8 8.1 1.7 13.6 2.1 27.6 2.2 36.6.1 71.3-8.2 103.4-24.6 10.3-5.3 29.9-17.9 31.3-20.1.4-.6 1.2 2.6 1.9 7.1 2.7 19.2 13 30 32 33.5l6.9 1.3-.3 7.5c-.1 4.1-.7 16.4-1.2 27.4-1.5 32-1.4 37.2 1.4 43.1 6.6 14.1 24 21.9 41 18.4 7.5-1.5 19.9-7.9 26.2-13.4l4.9-4.3 4.4 3.4c9.7 7.4 24.6 12.6 36.1 12.5 15.9-.1 29.1-10.4 33.7-26.4 2.3-8.3 2.8-35.4.9-53.4-.9-8.3-1.6-15.6-1.6-16.2 0-.7 1.2-1.2 2.8-1.2 4.6 0 15.6-2.7 20.5-5 11.2-5.3 19.3-16.8 21.8-31.2.7-4 1.3-7.4 1.5-7.6.1-.2 2.8 1.3 6 3.4 16 10.2 42.3 20.6 65.4 25.8 21.5 4.8 32.9 6 57 6 24.9.1 33.7-1.2 51.9-7.6 21.5-7.5 49.1-24.7 63-39.2 1.9-2 3.8-3.6 4.2-3.6.4 0 1 4.6 1.3 10.3 1.9 28.8 5.2 44.5 12.6 59.2 8 16.1 9.4 22.4 9.4 45.5l.1 19.5-5.1 17.5c-7.1 24.1-9.6 36.5-9.8 48.5-.1 8.7.2 10.6 2.3 14.4 4.8 9.1 17.7 20.5 33.8 30l7.3 4.3.2 43.7.3 43.6v14.95c4.5.9-86 3.267-390.7 3.367L348 914.264V874.8z"/><path d="M1288.5 863.9c-9.3-3.7-23.3-6.8-35.4-7.9-19.1-1.6-30.4-6.5-65.8-28.6-10.1-6.3-25.1-15-33.4-19.4-26.6-14.2-40.8-24.9-45.5-34.6-2.5-5-2.6-6.2-2.1-13.4.8-9.8 4.4-26.3 10.4-46.9 4.1-14.3 4.5-16.8 5-29.9.9-23.2-2.5-40.5-10.8-55.7-6.9-12.7-10.5-31.3-11.5-59.5l-.6-16.5 5.8-7c9.6-11.7 18.8-26.7 24.2-39.3l2.3-5.3 4.7.8c2.6.4 11.9.7 20.7.6 15.3-.1 23.9-1.3 32.9-4.9 1.8-.7 1.9-.3 1.2 8.2-.3 4.9-1.8 16.3-3.2 25.4-1.4 9-2.3 17.7-2 19.3.7 3.4 5 9.8 12.9 19 3.3 3.8 6.8 9.2 7.9 11.9 3.2 8.4 4.8 22.9 4.8 42.8 0 34-2.1 41.6-24.5 89.5-5.7 12.1-10.8 23.8-11.4 26-3.6 13.4 1.7 24.2 18.2 36.4 10.2 7.6 27 18.4 38.7 24.9 4.6 2.5 11.7 8.1 18.4 14.2 6.3 5.9 13.5 11.5 17 13.3 5.7 3 6.8 3.2 16.1 3.2 8.9 0 10.6-.3 15.7-2.8 7.4-3.6 15.4-12.4 21.3-23.2 2.6-4.7 6.3-10.7 8.3-13.4 4.6-6 28-30.7 28.5-30.1.2.3 2.3 6 4.5 12.8l4.1 12.2-5.7 3.6c-7.1 4.6-25.8 22.7-28.2 27.4-.9 1.9-3.1 8-4.8 13.5-3.6 11.5-7.2 17.5-14.5 24.1-6.4 5.8-15 11.4-17.4 11.4-1-.1-4-1-6.8-2.1zM77.5 833.4c-10.4-2.2-16.8-5.6-24.2-12.6-7.8-7.5-15.4-17.3-26.3-34-8.1-12.2-18-30.7-18-33.4 0-.7 3.5-3.1 7.8-5.3 10.6-5.3 14.7-10.2 16.4-19.6.4-1.7 1-1.4 4.6 2.4 6.5 7.1 8.7 12.3 11.7 27.6 5.4 28.8 10.4 45.2 14.8 49.4 8 7.5 31.7 8.7 48.8 2.5 19.8-7.2 22.1-7.6 52.9-8.4 46.7-1.3 64-5.5 71.8-17.8 11.3-17.5 31.6-70.9 36.2-94.9 2.9-15.5 2.5-29-1.8-48.8-6.4-30.2-13.7-85.3-12.7-96 .6-6.2 7-40.4 7.7-41 .2-.2 4.1 1 8.8 2.6 10.8 3.6 21.3 5.2 30.7 4.7 4.8-.2 7.3 0 7.3.8 0 .6 2 5.2 4.5 10.2 12.5 25.9 39.2 56.8 62.9 73.1 3.5 2.4 4.6 3.7 4.1 4.9-1.3 3.4-9.5 36.1-11.7 46.7-3.1 15.5-3 31.5.6 49.4 3.5 18.2 3.4 21.5-1 30.4-4.7 9.4-13.2 22.1-18.6 27.7-2.4 2.5-11.1 10.4-19.2 17.5-34.1 29.8-37.2 31.5-62.2 33.5-16.9 1.3-21.2 2.5-36.9 10.2l-13 6.3-44.5.1-44.5.2-12.5 5c-20.9 8.5-29.4 9.8-44.5 6.6zM1375.5 785.8c-3.7-10-4.4-13.2-3.3-13.9 1.9-1.2 2.6-.3 4.3 5.9.9 3.1 1.8 6.5 2.1 7.5.6 2-2.4 2.5-3.1.5zM1380.7 782.6c-.4-1 1.3-2 5.6-3.6 9.5-3.4 23.7-10.8 28.5-14.7 7.2-5.9 8.8-11.1 5.2-17.1-5.7-9.4-24.3-9.7-43.7-.7-8.6 4-10.7 2.9-3.1-1.5 11.9-6.8 25.5-10 34.3-8.1 9.4 2.1 17.5 9.3 17.5 15.5 0 8.6-11.6 18.1-33.3 27.4-5.4 2.3-9.9 4.2-10.1 4.2-.2 0-.6-.6-.9-1.4z"/><path d="M1378.2 774.3c-1.1-3.7-.9-5.3 1-5.3 1.7 0 18.1-7.9 20-9.7 2.5-2.2 2.3-5.1-.5-5.8-2.3-.6-10 1.5-19.5 5.4l-5.3 2.1-1.8-4.2-1.8-4.3 4.6-2.4c7.3-3.8 18-7.1 25.1-7.7 5.4-.5 7.5-.3 11.3 1.4 5.1 2.3 9 7.4 8.1 10.7-1 3.7-10.1 11.1-18.6 15.3-8.7 4.2-18.5 8.2-20.4 8.2-.6 0-1.6-1.6-2.2-3.7z"/><path d="M1369.6 769.3c-2.3-2.3 4.7-6.4 19.3-11.3 12.2-4.1 11.8-1.5-.6 4.3-10.9 5-18 7.7-18.7 7zM1365.6 756.5c-3.1-9.5-1.6-10.9 2.4-2.1 3.4 7.5 3.5 8.2 1.6 8.9-1.1.4-2.1-1.4-4-6.8zM672.3 707.4c-4.9-1.8-12-8.5-13-12.3-.7-2.6 1.3-60.3 2.3-67.7l.6-4.2 5.8-.6c3.3-.4 8.3-1.4 11.2-2.2 16.2-4.5 24.1-6.3 30.7-6.9l7.3-.7-.3 38.7-.4 38.7-6 5.6c-11.6 10.8-27.3 15.6-38.2 11.6zM754.1 705.5c-8.1-1.8-17.6-6.3-22.2-10.6l-3.7-3.4.5-39.4.6-39.4 7.8.7c9.7.8 44.1 6.5 45.1 7.4.4.4 1.4 8.1 2.3 17.2 2.1 20.4 1.7 45-.9 52.1-4.6 12.6-15.6 18.4-29.5 15.4zM453.8 616.5c-43.5-6.8-87.7-37.3-116.7-80.4-16.4-24.3-20-36.7-20.8-72.2-.6-25.1.4-39.1 4.2-58.4 11.4-57.3 38.8-101 81.4-129.6 49-33 132.7-53.8 248.6-61.9 31.8-2.2 107.8-3.3 140.9-2.1 138.2 5 222.7 27 270 70.2 33.4 30.6 55.2 72.2 63.6 121.3 6 35.2 4 78.4-4.7 99-3.5 8.5-12 22.7-18.8 31.6-26.9 34.8-59.3 57.1-97 66.7-10.5 2.7-12.1 2.8-34 2.8-28.6 0-44.5-2.2-70.4-9.7-18.9-5.4-39.3-14.7-52.6-23.9-6.4-4.4-7.2-5.4-9-10.6-5.2-15.2-21.8-29.7-44.9-38.9l-8-3.3-1.1-4.9c-1.3-5.7-4.1-9.9-9.3-14-17.4-13.8-52.1-18.1-79.7-10-20.3 5.9-32.2 18.1-29.5 30.2l.7 3.3-8.6 3.9c-18.5 8.3-35 22.2-41.9 35.2-2.6 4.9-5.1 7.7-11 12.4-19.6 15.7-43 27.7-68.4 35.4-27.3 8.2-60.7 11.3-83 7.9zm83.7-50.9c29.7-5.2 58.3-17.2 80.7-33.8 11.1-8.2 30.3-25.4 37-33.1 17.2-19.7 27.5-39.9 32.9-64.7 3.1-13.7 3.3-39.7.6-53.3-9.1-44.9-38-81.8-79.8-101.6-39.3-18.7-79.7-19.9-123.9-3.8-66.2 24.1-109.2 65.8-122.5 118.7-3.7 14.8-4.8 24.2-4.7 41 .1 16.9 1.6 28 5.7 40.9 13.5 42.7 49.3 74.4 97.5 86.6 8.3 2.1 12.5 2.8 27.5 4.9 6.1.9 41.3-.4 49-1.8zm413-18.6c37.9-3.7 70.6-17.5 93.5-39.6 18.4-17.7 29.5-39.4 33.7-65.8 2.4-15.5 1.4-48.9-2.1-65.3-14.4-68.2-64.7-110.1-147.6-122.8-14.5-2.2-48.3-3.1-59.1-1.6-47 6.8-86.5 33-109.3 72.8-13.1 22.8-18.3 44.6-17.3 73.1.6 18.3 2.7 29.3 8.7 44.7 9.5 24.5 27.9 48 49.7 63.7 10.4 7.5 35 20.7 48.3 26 32.7 12.8 68.2 18 101.5 14.8z"/><path d="M480.2 557.4c-24.5-3.5-48.5-13.1-67.2-26.7-14.4-10.5-30.4-30.5-37-46.3-11.8-28.3-12.8-63.9-2.8-95.3 7.1-22.5 17.4-38.9 35.7-57.1 10.8-10.7 22.1-20.2 22.1-18.7 0 .3-1.6 2.5-3.7 4.9-9.6 11.4-19.2 28.7-24.1 43.5-5.7 16.8-6.7 23.8-6.7 45.3.1 17 .4 20.7 2.4 29 7 28.4 20.6 52 41.3 71.5 26.5 24.9 59.6 38.6 96.8 40.2 13.1.5 30-.6 34.5-2.3.8-.3 1.5-.1 1.5.4 0 1.2-14.5 6.1-25.5 8.7-19.5 4.5-47.9 5.8-67.3 2.9z"/><path d="M527.5 535.4c-17.2-2.5-29.8-6.2-43.4-12.5-39.8-18.6-67.6-54.5-74.7-96.4-2.4-14.3-1.5-37.3 2-50.5 6.5-24.4 16.8-42.3 34.5-60.1 34.1-34 84.4-47.5 132.1-35.4 50.9 13 89.1 52.6 99.1 103 2.1 10.4 1.8 36.8-.5 47.3-5.4 25.2-17.3 47-35.6 65.2-18.8 18.9-42.4 31.5-70 37.5-7.3 1.6-36.9 2.9-43.5 1.9zm110.6-82.6c12.1-6 21.1-16.9 24.3-29.3 6.9-26.1-10.1-52-37.1-56.7-21.6-3.7-43.4 9.8-50.3 31.1-1.9 6.1-2.2 8.6-1.8 16.7.5 8.4 1 10.3 4.2 16.9 5.9 11.9 15.2 19.9 28.1 24.1 2.5.9 7.8 1.3 14.6 1.1 9.9-.2 11-.4 18-3.9z"/><path d="M627.8 428.4c-3.1-1.6-5.8-6.1-5.8-9.5 0-3.4 3.8-8.6 7.1-9.8 6-2.1 13 1.7 14.4 7.9.9 4-1.7 9.6-5.4 11.4-3.7 2-6.8 2-10.3 0zM912.5 538.4c-18.5-2.1-25.8-4.4-13.7-4.4 10.9 0 27.8-3.4 42.2-8.5 42.7-15.1 77-50.6 89.8-93 4.6-15 5.7-23.3 5.6-41-.1-12.5-.6-18.3-2.3-26.5-4-18.9-11.8-36.8-23.2-53-6.8-9.7-24.4-27.2-33.7-33.5-4-2.7-6.9-5.1-6.4-5.3 1.6-.5 19.7 7.4 28.7 12.5 30.2 17.2 52.1 43.1 62.5 74.1 8.9 26.7 11 65.2 5 90.1-11.9 48.9-53.3 80.6-115 88.1-7.8.9-32.4 1.2-39.5.4z"/><path d="M880 522.3c-51.6-3.7-96.5-34.8-116.1-80.3-6.8-15.7-9-26.1-9.6-45-.4-12.4-.1-18.7 1.1-25.5 8.4-48.5 46.6-90.1 95.1-103.6 18.9-5.2 43.3-6.6 62.2-3.3 50.5 8.5 92.4 44.5 106.7 91.4 7.5 24.7 7.2 51.4-.9 75.7-6.1 18.2-15.1 33.4-28.2 47.3-23.4 24.9-54.3 39.8-88.8 43-10.7 1-12.2 1-21.5.3zM980.2 441c12.3-4.6 23.2-15.9 27.4-28.2 2.8-8.2 2.5-21.5-.6-30.1-4.6-12.9-15.6-23.4-29-27.7-5.8-1.9-8.6-2.2-16.4-1.8-8.3.3-10.2.8-16.8 4.1-9.7 4.7-16.8 11.8-21.5 21.5-3.2 6.4-3.7 8.5-4.1 16.4-.6 11.1 1.5 19.5 6.7 27.6 6.5 9.9 17.7 17.9 28.4 20.2 6.7 1.4 19.5.5 25.9-2z"/><path d="M971.3 412.5c-3.2-3.2-3.5-3.9-3-7.8 1.5-11.3 16-13.4 20.4-3 2.8 6.9-2.3 14.3-9.9 14.3-3.2 0-4.7-.7-7.5-3.5zM646.5 610.9c-7.7-1.2-15.6-5.1-18.9-9.4-3.6-4.7-6-14.5-5.2-21.5 1.4-11.8 9.9-24.1 23.2-33.6 5.9-4.2 25.7-14.4 28-14.4.6 0 3.8 1.6 7 3.5 21.6 13 61.7 13.9 85.6 1.9 3.7-1.9 8.3-4.7 10.2-6.4l3.4-3.1 6.7 2.5c13 5 22.7 10.7 30.1 18.1 9.9 9.8 11.9 14.3 11.9 27 0 8.9-.4 10.7-2.9 16.3-7.8 17-23.1 20.3-62.1 13.3-30.8-5.5-58.7-5.2-77.3.9-14.3 4.7-29 6.5-39.7 4.9zM290.1 500.9c-22.4-4.4-35.5-15.2-41.9-34.7-2.1-6.5-2.5-9.6-2.6-20.2 0-6.9.2-13 .6-13.5.4-.7 5.1-.6 14.5.3 12 1.1 41.3 1.2 45 .1 1-.3 1.4 5.5 1.7 25.6.3 22.6 1 31.8 3.1 41.3.5 2.1.4 2.2-7.7 2.1-4.6-.1-10.3-.5-12.7-1zM1139 492.1c-3-.3-5.4-1-5.3-1.6 2.4-15 3.4-29.6 3.1-47.7l-.3-20.8 3.5.8c7.5 1.6 29.2.5 45.4-2.2 8.7-1.5 16.1-2.4 16.5-2.1 1.3 1.4.6 41.8-.8 47.5-2.1 8.5-5.5 15.3-8.9 18.2-8.5 7.2-30.1 10.4-53.2 7.9zM279.3 423.4c.3-1.1 1.8-7.3 3.2-13.9 3.6-16.3 10.1-42.3 13-52.1 5.4-17.8 20.8-45.6 47.9-86.6l1.8-2.8-2.8-1.1c-4.2-1.6-17.4-4.9-19.6-4.9-3 0-3-2-.3-14.1 3.6-16.2 8-30.1 12.5-39.5 6.1-12.8 18.3-23.5 39.1-34.8l8.6-4.6.7 3.1c.3 1.7.6 5.7.6 8.8 0 7.9 2.6 31.5 5 45.2 2.3 13.7 6.1 27.2 9.5 34.3l2.5 5.1-2.2 1.5c-16.6 11.1-37 30.2-47.9 45-20.7 28.1-34.8 62.8-40.5 100.2-1.4 8.9-2.2 11.7-3.4 11.7-.8 0-7.5.4-14.9.7-12.7.6-13.3.6-12.8-1.2z"/><path d="M256.5 416.7c-24.4-9.9-39.4-26.4-44.1-48.8-4.5-21 2.8-52 16.3-69.9 10.7-14.1 28.1-23.2 49.8-26.1 14.5-1.9 47.4.7 46.8 3.7-.1.6-4.2 7.4-9.1 15.3-5 7.8-11.2 18.3-13.8 23.2l-4.9 8.9-4.5-.7c-18.2-2.6-30.5 2.3-33.8 13.3-2.1 7.1-1.5 16.3 1.3 22.1 2.3 4.5 8.7 11.7 15.2 17l2.2 1.8-2.8 12c-1.6 6.6-3.9 16.4-5.1 21.8-1.7 7.5-2.5 9.7-3.8 9.7-.9 0-5.3-1.5-9.7-3.3zM1141 413.7c-4.7-1-5.5-1.5-5.8-3.7-.9-7.2-5.6-28.7-8.2-37.3-16.7-56.1-53.4-101.8-100.5-125.4-4.9-2.5-9.1-4.6-9.2-4.7-.2-.2 2.4-6.5 5.8-14.2 3.3-7.6 7.8-18.4 10.1-23.9 3.1-7.8 26.3-58 27.3-59.3.1-.2 4.7 2.8 10.1 6.6 5.5 3.8 15 10.4 21.2 14.7 11.5 8 20.7 17.6 25.1 26.3 1 2.1 5.9 16.3 10.9 31.7 5 15.4 9.4 28.8 9.7 29.7.5 1.3 0 1.9-2.2 2.4-7.5 1.6-18 4.6-19.2 5.4-1.1.6.9 5.7 9.8 25 22.5 48.6 29.9 67.4 32.7 83 1.8 10.1 4 41 3.1 43.4-.5 1.3-2 1.6-7.9 1.5-4 0-9.8-.6-12.8-1.2z"/><path d="M1173.6 399.3c-.3-4.3-1.1-12.9-1.7-19.1-.6-6.3-.9-11.5-.7-11.6.2-.2 2.8-1.7 5.8-3.4 6.7-3.7 13.5-10.3 16.3-15.7 4.8-9 1.6-22.9-7-30.5-6.5-5.7-12.3-7.3-24.9-6.9l-10.5.4-9.8-21.3c-5.4-11.7-9.6-21.4-9.2-21.6 1.4-.9 16.6-2.6 23.1-2.6 38 0 62.8 18.4 73.6 54.5 2.1 6.9 2.8 11.9 3.1 21.5.6 14.1-.6 20.9-5.4 30.8-3.9 8-15.9 19.8-24.8 24.4-6.3 3.3-22.7 8.8-26 8.8-.9 0-1.5-2.3-1.9-7.7zM402.2 254.3c-6-15.6-10.2-39.8-12.3-70.7l-1.3-17.9 8-7.6c4.7-4.6 14.3-11.9 23.9-18.3 19-12.5 33.2-24.5 51.5-43.5 17.6-18.2 29.4-26 72.5-47.8 36.7-18.6 41.3-20 95-28.9 14.9-2.5 32.8-5.7 39.9-7.1 7-1.4 12.9-2.5 13.1-2.5.7 0 1.5 5.5 3.9 26 5.6 47.8 5.9 52.8 6.1 105.5.1 27.5.5 52.5.9 55.6l.8 5.7-15.8.6c-122.7 5-210.4 22-270.4 52.7-6.4 3.2-12 5.9-12.3 5.9-.3 0-1.9-3.5-3.5-7.7zM1000.4 236c-35.5-13.7-89.9-24.5-147.9-29.4-36.8-3.2-54.1-3.9-98-4l-45-.1-.7-13.5c-.4-7.4-.6-31.7-.6-54 .2-43.2-.6-55.3-6.7-104.9-1.4-10.7-2.2-19.7-1.9-20 1-1.1 51.7-.4 66.4.8 33.4 2.7 58.8 6.4 70.5 10.1 3.3 1 11.4 4.1 18 6.8 10.7 4.4 43.9 16.3 70.5 25.3 20.3 6.8 41.7 14.7 46.6 17.2 11.3 5.7 37.8 27.4 68.6 56.1l15.7 14.6-2.8 6.3c-1.6 3.4-6.3 13.4-10.6 22.2-4.2 8.8-9.8 21.2-12.4 27.5-10 24-18.4 43-19 42.9-.3 0-5.2-1.8-10.7-3.9z"/></g></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/pink.svg b/go.dev/testdata/golden/images/gophers/pink.svg
new file mode 100644
index 0000000..51e456c
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/pink.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="pink"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#f8aadd;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#f8aadd;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#f8aadd;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/running.svg b/go.dev/testdata/golden/images/gophers/running.svg
new file mode 100644
index 0000000..001245f
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/running.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 554 485" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M30.107,87.983c-8.168,1.154 -31.899,-6.152 -21.963,-19.401c8.12,-10.827 37.911,2.115 40.998,-4.027c4.329,1.332 10.488,-0.044 16.106,0.732c-0.986,0.465 -1.935,1.014 -2.928,1.465c1.796,0.281 8.785,0.047 8.785,1.464c0,2.463 -1.345,3.477 -4.209,3.477c-10.253,0 -9.351,3.703 -17.022,8.236c-1.69,1 -17.312,7.11 -17.57,8.786c-0.816,0.109 -1.548,-0.135 -2.197,-0.732c0,0 0,0.732 0,0m50.516,53.443c-3.024,0.194 -5.102,-1.097 -8.786,-0.732c-1.83,-4.781 -6.687,-8.424 -8.785,-13.178c-0.378,-0.856 -0.334,-5.5 -1.464,-8.053c6.311,-6.285 27.605,-16.368 35.873,-6.589c3.644,-1.34 21.963,-2.74 21.963,2.196c0,-4.116 1.809,6.4 2.196,4.393c-0.416,2.157 -7.244,8.13 -8.785,6.589c-2.829,2.261 -4.241,8.857 -12.446,8.053c-1.54,3.393 -15.244,10.004 -19.766,7.321m420.226,8.785c2.069,-1.65 0.714,0.713 0,0c0,0 0.733,0.732 0,0m-391.674,142.028c0,-1.677 0.874,-0.101 0.732,0.732c-2.103,0.359 -0.609,-0.609 -0.732,-0.732c0,-0.732 0,0 0,0m-68.818,16.839c-6.869,0 -42.388,-3.115 -40.266,-11.714c22.091,4.21 49.237,8.24 71.026,3.151c11.446,-2.674 24.283,-3.656 34.397,-6.812c4.19,-1.306 8.21,-0.128 10.249,-4.392c0.905,0.394 2.745,1.38 2.929,1.464c-0.045,0.112 1.286,-3.025 0.732,-2.196c5.139,-1.313 10.589,-0.678 15.466,-2.929c4.464,-2.06 8.059,-5.212 13.086,-2.928c-2.746,0.157 -1.416,-0.172 -3.661,0.732c2.118,-0.53 2.946,-0.936 4.393,-1.464c1.45,1.495 0.324,0.686 2.929,1.464c-0.097,-0.308 6.947,-4.431 7.321,-0.732c3.427,-1.327 6.693,0.309 9.517,2.196l0,1.464c-2.933,0.828 -2.609,2.184 -5.125,0l0,1.465c-3.116,-2.12 -2.978,-2.105 -5.857,0c-0.615,-0.313 -0.461,-1.991 -0.732,-2.197c-3.535,-0.887 -0.933,4.327 -3.66,0c0.358,1.058 -0.662,-1.091 0,0c-13.071,1.177 -36.665,6.452 -47.587,14.642c-0.328,-0.721 -0.459,-1.551 -0.732,-2.196l-1.464,0c-0.918,8.104 -40.729,10.608 -49.783,10.249c-2.214,0.063 -11.362,0.27 -13.178,0.733c-0.732,0 0,0 0,0m87.12,34.408c2.438,1.937 -0.294,-0.233 0,0m-40.998,13.178c-0.074,-1.224 1.614,-1.969 -0.732,-2.196c1.432,-0.699 1.921,-1.777 3.661,-2.196c-0.043,1.142 0.094,1.946 0.732,2.928c1.272,-4.855 7.535,-5.869 11.714,-3.661c0.415,-1.152 0.563,-1.729 0.732,-2.928c1.405,0.676 3.684,0.813 5.124,1.464c-0.291,-5.98 13.809,-5.182 15.375,-2.196c0.992,-0.56 1.905,-1.565 2.928,-2.196c-2.612,3.525 -8.707,4.618 -13.178,5.856c0.814,-2.607 0.369,0.006 -0.732,-2.196c-0.77,3.186 -2.137,3.183 -5.125,5.125c-1.409,-1.376 -0.678,-0.663 -2.196,-1.464c0.66,0.315 0.905,0.804 0.732,1.464c-1.252,0.308 -1.891,-0.73 -2.928,-0.732l0,1.464c-1.256,-0.753 -2.486,-1.341 -3.661,-2.196c-0.022,0.408 0.231,1.88 0,2.196c-0.66,0.172 -1.149,-0.072 -1.464,-0.732c-0.149,0.914 -0.006,2 0,2.928c-2.236,-1.429 -3,-0.749 -4.393,-5.124c0.328,0.999 0.514,2.587 0.732,3.66c-0.66,0.172 -1.148,-0.072 -1.464,-0.732c-1.791,2.726 -5.187,6.005 -5.857,1.464m-14.642,2.196c-0.768,-0.818 -2.112,0.206 -1.464,-2.196c1.521,0.824 1.252,0.733 2.196,1.464c0.285,-1.831 1.762,-1.378 0.733,-4.392c1.036,0.932 2.916,1.55 3.66,2.196c1.177,-4.574 8.894,-4.57 8.785,1.464c-1.59,1.277 -0.357,0.268 -1.464,2.197c-0.477,-0.514 -2.234,-1.388 -2.928,-2.197c0.577,-0.02 2.484,0.325 2.928,0c-2.036,-1.325 -4.301,-1.762 -6.589,-2.196c0.878,0.849 0.527,1.921 0.732,2.928c0.737,0.17 2.079,-0.757 2.197,-0.732c-0.061,0.18 -0.119,2.089 0,2.197c-2.987,0.114 -5.859,-0.733 -8.786,-0.733c0,0 0.732,0 0,0m379.229,112.012c2.438,1.937 -0.293,-0.233 0,0m-182.293,1.464c0.381,0 0.718,-1.754 1.464,0c-0.746,1.755 -1.083,0 -1.464,0m-21.963,12.446c-2.617,-1.95 -9.57,-5.291 -12.446,-5.125c-1.884,-8.698 -4.439,-22.977 7.321,-26.355c-0.265,-4.006 6.027,-7.651 2.196,-13.178c-0.315,0.66 -0.803,0.904 -1.464,0.732c-0.57,-4.035 -10.145,-18.917 -16.106,-21.963c1.606,-2.662 -10.033,-27.231 -12.446,-30.748l1.464,0c-0.306,-1.905 -1.609,-4.651 -2.196,-6.589c-3.911,2.104 -6.698,3.005 -9.517,5.124c-5.728,-1.851 -19.32,-1.779 -17.571,-9.517c-4.301,-1.611 -1.79,-7.628 -1.464,-11.714c1.249,0.08 1.767,0.257 2.929,0.733c-1.076,-8.684 21.652,-7.536 25.623,-5.125c5.324,-4.656 9.493,-10.635 9.517,-20.499c0.316,0.66 0.804,0.904 1.465,0.732c0.225,-9.949 -2.71,-22.855 -2.197,-30.748c-1.809,-1.091 -4.074,-12.446 -5.124,-12.446c-1.727,-5.616 -5.487,-10.434 -8.053,-15.374c-1.588,-3.057 -9.185,-26.446 -13.91,-26.356c2.745,-2.368 0.118,-1.8 -0.733,-3.66c-1.617,-11.996 -14.936,-28.76 -19.034,-42.462c-0.316,0.66 -0.804,0.905 -1.464,0.732c0.137,-2.852 -4.624,-7.823 -2.197,-10.25c-2.32,0 -8.314,-47.479 -7.999,-53.795c0.577,-11.517 -1.667,-17.037 1.41,-26.736c5.239,-10.477 4.085,-25.315 10.982,-32.212c3.795,-5.693 -4.943,-8.825 -7.413,-13.27c-4.884,-8.792 -4.301,-13.334 -4.301,-23.336c0,-12.152 9.591,-22.292 21.963,-16.106c4.263,1.749 9.105,5.444 13.178,9.517c9.014,9.014 4.691,10.833 17.571,4.393c5.567,0 31.438,-15.148 32.944,-8.053c2.356,-5.308 9.252,-4.612 11.714,-7.321c4.377,0.242 19.857,-4.079 21.231,-7.321c3.733,-0.418 8.742,-1.616 10.981,-1.464c2.077,-5.762 1.142,-19.605 7.321,-22.695c6.496,-6.496 17.307,2.173 21.3,6.977c7.017,8.441 0.631,9.032 12.377,9.129c9.304,0 16.813,0.256 26.004,-0.556c13.528,-1.195 26.783,1.617 39.598,5.716c10.25,3.278 26.176,6.086 33.964,13.874c8.961,8.961 22.359,0.98 38.37,-0.951c7.082,0.943 10.732,1.348 15.205,3.167c-0.66,0.315 1.161,0.053 1.333,0.713c2.388,1.366 10.176,6.187 17.088,14.254c1.733,6.775 5.664,0.037 12.982,2.964c7.818,3.127 9.294,23.31 1.41,23.048c5.576,19.1 -6.406,29.833 -18.302,41.729c-5.071,5.071 -6.298,9.75 -2.197,20.499c-8.133,3.801 -0.793,11.409 2.197,17.388c0.981,1.962 2.946,11.174 3.66,11.53c6.17,3.085 6.181,26.173 12.446,22.329c-0.559,-1.099 -0.075,-2.785 0.732,-2.928c-0.064,-0.184 -0.513,-1.141 0.732,-1.464c4.256,-16.149 8.577,-17.478 14.204,-28.584c0.83,1.399 3.251,-1.205 4.099,0.032c-0.136,-0.901 15.028,1.848 10.249,9.517c5.127,1.982 5.734,11.365 2.929,13.91c2.691,5.554 -0.325,18.873 -4.393,21.231c1.188,5.728 -4.687,14.985 -7.321,19.035c-2.36,3.628 -12.457,8.658 -14.642,12.445c-1.265,2.192 2.697,9.119 -0.732,11.714c2.028,3.256 2.107,4.114 0,6.589c1.838,3.185 1.163,1.088 0.732,4.393c3.437,2.695 2.703,15.677 0,20.499c3.799,3.459 0.26,12.593 1.464,18.302c-0.258,-0.028 -2.947,22.385 -3.66,27.728c-1.002,7.513 -2.914,13.44 -5.857,18.395c0.642,0.325 1.501,0.187 2.196,0.732c-5.535,6.433 -10.072,17.142 -13.178,24.891c-3.516,8.771 -6.488,33.123 -16.838,36.605c-0.39,1.998 0.323,0.828 -0.732,2.929l0,-1.465l-1.465,0c0.304,3.727 -1.503,5.956 -5.124,5.857c0.249,1.15 0.784,1.651 0.732,2.929c-3.407,-0.361 -17.571,15.823 -17.571,19.309c0,1.44 8.027,6.813 8.786,7.778c0,4.559 5.322,10.12 5.856,15.375c-0.315,-0.661 -0.803,-0.905 -1.464,-0.732c1.604,2.942 2.153,4.908 2.197,8.053c-0.641,-0.547 -0.382,-1.709 -0.733,-2.197l-1.464,0c0.205,0.298 0.123,2.569 0,2.929c0.316,-0.661 0.804,-0.904 1.464,-0.732c-1.505,3.329 -3.456,4.46 -4.392,7.321c-1.046,-0.405 -1.934,-0.908 -2.929,-1.465c0.129,0.678 0.676,1.56 0.733,2.197c-3.25,0.394 -6.764,-0.133 -9.518,-1.464l0,1.464c-5.362,-6.919 -24.713,-10.032 -27.088,-16.106c-4.479,0.127 -3.334,1.607 -5.124,-1.465c-7.121,4.174 -18.623,8.169 -25.624,7.321c-1.018,5.24 -15.1,8.877 -19.767,7.321c-13.484,0 -38.7,10.047 -49.783,2.929c-0.68,1.087 -1.609,1.712 -2.196,2.928c-5.248,-2.7 -12.806,0.472 -14.642,-5.125c-8.407,4.859 -19.628,-10.307 -28.552,-8.053c-0.172,-0.66 0.072,-1.148 0.732,-1.464c-12.32,-0.653 -18.233,5.104 -25.623,11.714c-6.05,5.41 -15.319,8.318 -19.035,9.517" style="fill:#060606;fill-rule:nonzero;"/><path d="M381.517,104.089c-3.493,-3.494 -5.61,-10.692 2.038,-11.392c9.452,-0.864 7.892,14.702 -2.038,11.392c-0.732,-0.732 4.392,1.464 0,0m-73.943,-81.264c-6.362,0 -5.821,-17.57 0,-17.57c7.379,-3.69 20.334,22.653 0,17.57c-1.464,0 2.929,0.733 0,0m206.453,46.123c-4.282,-4.282 0.677,-8.072 5.125,-6.589c4.617,3.078 -0.725,9.522 -5.125,6.589c-1.464,-1.464 2.197,1.464 0,0m-335.303,7.321c-10.15,-10.151 -18.67,-44.33 4.759,-34.958c6.371,2.548 17.573,12.16 16.106,20.224c-1.442,7.931 -13.923,18.205 -20.865,14.734c-1.464,-1.464 1.465,0.732 0,0m-150.813,5.125c-2.651,-2.651 -8.349,-1.029 -11.713,-4.393c-6.131,-2.043 -1.479,-6.694 2.184,-6.958c11.08,-0.799 21.913,2.136 32.956,1.833c-3.317,3.041 -19.104,11.679 -23.427,9.518c-0.732,-0.732 1.464,0.732 0,0m459.761,38.069c-2.242,-4.484 0.675,-6.781 -2.929,-9.517c0.843,-5.321 -5.198,-10.852 -6.589,-13.91c-5.075,-11.158 -11.266,-22.644 -18.302,-32.945c-2.112,-3.092 -7.001,-9.402 -10.25,-14.276c-4.063,-6.094 24.591,-6.02 27.111,-5.759c6.885,0.71 3.425,0.162 9.494,3.197c14.175,0 16.704,10.866 14.913,20.471c-1.54,8.264 1.667,16.292 9.979,19.062c2.85,3.902 2.928,4.487 2.928,11.714c-1.946,5.838 -17.825,30.493 -26.355,21.963c-0.733,-1.464 0.732,0.732 0,0m-42.462,2.928c-26.409,-13.204 3.619,-28.758 19.93,-21.231c11.021,5.087 9.655,15.938 -0.987,18.303c-6.373,1.417 -12.302,2.928 -18.943,2.928c-2.929,-1.464 0.732,0 0,0m-368.98,10.25c-3.951,-3.951 -13.228,-13.426 -3.819,-15.221c14.53,-2.771 28.91,2.137 43.352,-0.153c-5.849,9.931 -28.502,22.729 -39.533,15.374c-1.464,-1.464 2.196,1.464 0,0m357.266,25.623c-9.93,0 -14.318,-11.122 -11.307,-18.818c3.807,-9.728 7.27,-12.311 16.432,-16.323c3.652,5.488 15.02,6.435 20.499,3.661c5.421,8.828 20.215,-14.734 29.284,8.694c1.228,3.173 1.227,7.833 -1.465,10.341c-6.502,0 -14.167,3.66 -19.766,3.66c-5.068,0 -8.695,4.29 -12.663,6.67c-5.821,3.493 -14.582,3.034 -21.014,2.115c-2.196,0 5.125,0.732 0,0m-40.998,-38.801c18.387,-6.129 1.34,-43.214 -18.577,-32.67c-16.66,8.82 -0.517,45.4 18.577,32.67c2.197,-0.732 -2.196,1.464 0,0m-41.73,43.926c-4.805,0 -15.908,-1.106 -16.838,-5.125c-0.863,0.806 -1.982,0.716 -2.928,1.465c-1.557,-4.225 -6.769,-7.219 -11.439,-10.616c-11.277,-8.201 -18.362,-18.561 -18.605,-32.876c-0.358,-21.171 2.581,-36.705 22.357,-48.57c11.864,-7.119 27.557,-12.862 41.409,-8.991c28.061,7.84 43.933,43.85 39.921,70.597c-3.561,23.748 -28.303,39.231 -53.877,34.116c-2.928,0 7.321,1.464 0,0m114.941,17.571c-2.7,-2.7 -3.399,-9.523 -4.077,-13.073c-0.995,-5.21 9.91,-10.939 13.045,-6.237c3.898,5.848 2.591,25.09 -8.968,19.31c-1.465,-1.465 1.464,0.732 0,0m56.371,47.586c-0.162,0.17 -2.412,-1.031 0.733,-0.732c-1.697,-6.122 -5.603,-10.796 -4.393,-16.838c1.023,0.159 1.812,-4.612 2.776,-4.462c2.196,-6.403 4.041,-17.729 8.205,-21.894c1.522,-6.146 3.985,-26.047 13.178,-13.178c10.428,13.035 -3.15,57.104 -20.499,57.104c0,0 0.733,0 0,0m-377.032,53.444c0.426,0.206 1.255,-0.992 2.196,0.732c-1.971,0.291 -2.625,-0.939 -2.196,-0.732m10.249,2.928c-0.021,-1.754 0,0 0,0m38.069,91.513c-3.158,-6.317 -6.829,-8.053 2.929,-8.053c5.625,0 20.226,1.263 18.302,8.785c-5.666,-7.939 -16.124,6.173 -21.231,-0.732c-0.732,-1.464 0,0 0,0m81.264,-44.658c17.23,-5.744 25.415,-22.933 35.141,-34.409c-0.088,-1.062 -0.984,-4.398 -1.465,-5.857c-6.367,5.754 -7.337,7.711 -11.988,13.91c-4.128,5.504 -10.279,12.222 -16.106,16.106c-7.846,5.231 -20.533,4.644 -14.642,-7.138c3.72,-7.439 11.448,-12.606 16.655,-18.76c7.402,-8.747 6.739,-16.135 -3.935,-7.595c-9.348,7.478 -33.512,53.693 -3.66,43.743c2.196,-0.732 -2.197,0.732 0,0m47.586,136.171c-4.761,-2.024 -9.78,-3.284 -14.55,-5.308c-2.843,-1.206 -12.824,-3.764 -14.734,-5.674c-8.799,0 -19.641,-11.178 -27.82,-13.91c3.214,-3.075 2.725,-5.381 -1.464,-5.857c1.474,-6.553 -23.763,-17.886 -28.735,-26.172c-8.756,-14.593 -13.208,-22.107 -8.637,-38.961c4.732,-17.449 7.2,-34.555 5.617,-52.918c-0.697,-8.095 -13.067,-35.391 -9.975,-38.618c-10.081,-5.597 -11.332,-25.975 -19.766,-34.409c-8.956,-8.956 -8.652,-26.954 -16.839,-35.141c-3.984,-6.973 -10.981,-25.789 -10.981,-34.409c-8.288,-14.504 -6.719,-46.465 -1.465,-62.229c1.383,-9.68 6.791,-22.281 13.552,-29.696c8.258,-9.056 20.605,-14.931 25.982,-24.479c-0.136,1.167 -0.038,2.479 0,3.66c3.184,-1.811 7.222,-5.125 10.982,-5.125c1.903,-1.437 -0.884,-2.949 1.464,-4.392c4.157,0 13.153,-4.508 17.408,-5.749c6.685,-1.949 13.826,-2.913 19.929,-5.965c2.114,0 19.767,-4.509 19.767,-7.321c0,-0.856 16.902,-2.737 19.345,-3.45c6.728,-1.962 14.773,-0.399 19.456,-0.942c5.486,-0.637 11.149,-4.177 16.839,-5.125c32.465,0 58.073,1.583 85.656,15.374c14.946,11.21 23.786,26.715 36.605,39.534c4.748,4.748 3.236,11.046 9.517,12.445l0,1.464c-12.75,1.177 -32.449,-4.378 -40.591,10.548c-3.365,6.169 -5.911,12.35 -10.656,19.469c-0.364,0.728 -6.777,10.857 -8.785,7.321c-0.908,-1.6 3.622,-18.335 3.877,-21.394c1.072,-12.856 -7.864,-21.293 -9.734,-32.782c1.243,0.233 1.897,1.043 2.928,1.464c-1.079,-3.663 -5.34,-3.858 -8.785,-7.321c-1.776,-1.785 -4.725,-6.928 -6.589,-10.249c-4.254,1.651 -3.472,-0.691 -6.497,-3.112c-4.41,-3.528 -17.211,-7.87 -22.787,-7.87c-5.079,-0.734 -22.528,0.565 -27.82,5.857c-10.268,0 -33.677,18.549 -33.677,29.284c0,3.588 -3.927,8.907 -4.484,13.361c-0.647,5.175 -2.253,9.952 -2.05,15.435c0.281,7.582 3.185,20.801 10.195,23.916c-3.715,7.869 11.944,19.614 17.57,23.427c0.214,-1.133 0.596,-1.842 0.732,-2.196c2.669,0 0.254,4.089 2.929,4.758c2.527,0.632 4.6,1.653 7.046,2.197c4.497,0.999 7.095,0.597 10.524,4.026c4.378,8.758 28.746,-2.196 31.481,-2.196c15.052,0 20.603,-13.68 30.748,-19.767c5.689,-1.089 7.343,8.43 13.91,11.714c2.677,5.353 15.484,9.381 20.622,10.577c9.955,2.318 13.255,16.879 23.064,17.871c9.812,0.993 19.085,-0.5 19.248,-11.691c0.056,-3.892 -2.73,-26.445 7.673,-22.234c7.58,3.067 8.699,14.127 11.205,20.393c4.745,11.863 7.22,22.018 10.433,34.867c1.96,5.881 3.223,29.782 8.785,30.748c-1.386,4.752 -3.02,13.252 2.929,14.642c-4.896,0.881 -3.86,7.655 -1.465,12.446c0.211,3.333 -1.201,11.97 -1.338,17.444c-0.581,23.147 -3.272,45.046 -13.304,66.015c-1.635,3.42 -3.967,6.547 -5.491,9.975c-2.041,4.594 -0.335,11.623 -2.562,15.649c-0.701,1.267 -5.04,2.326 -6.406,5.399c-2.784,6.263 -6.92,10.811 -10.524,16.473c-5.243,8.239 -6.544,13.442 -13.818,19.858c-0.773,0.681 -7.435,5.819 -6.589,8.785c-4.882,0.595 -11.192,-0.78 -5.857,4.393c-7.437,-2.656 -14.517,-11.516 -24.159,-13.91c2.141,2.49 -0.579,1.283 2.928,2.928l0,1.464c-10.348,1.388 6.071,10.949 10.341,12.263c12.018,3.698 28.217,17.399 29.193,29.467c-8.198,3.689 -20.537,-4.092 -25.624,-6.589c-4.371,0 -9.517,-5.089 -9.517,-9.151c0,-1.498 -17.312,-2.741 -20.499,-3.294c9.402,12.761 -26.551,16.588 -34.409,17.57c-4.136,0 -6.986,3.028 -11.225,3.444c-7.818,0.766 -15.879,0.217 -23.733,0.217c-4.382,0 -7.874,-1.805 -9.7,2.196c-1.148,-1.101 -3.888,-2.964 -4.393,-3.661c0.646,0.799 1.514,1.429 2.196,2.197c-2.113,1.205 -5.017,1.44 -8.053,0.732c0.473,-0.961 0.767,-1.954 1.465,-2.929c-3.628,-0.943 -4.373,-1.437 -6.589,0.732c-0.122,-0.121 4.019,2.434 3.66,2.197c-1.315,-0.062 -3.764,1.361 -5.125,0c0,0 0.733,0.732 0,0m-76.138,5.857c-15.065,0 -1.023,-11.767 0,-13.178c2.382,-3.287 3.315,-11.444 9.151,-12.904c6.904,-1.725 9.827,8.775 13.544,4.119c12.881,7.053 -13.73,24.951 -22.695,21.963c-2.929,0 4.392,1.464 0,0" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/shopping-cart.png b/go.dev/testdata/golden/images/gophers/shopping-cart.png
new file mode 100644
index 0000000..de8e0f2
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/shopping-cart.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/gophers/skateboarding.svg b/go.dev/testdata/golden/images/gophers/skateboarding.svg
new file mode 100644
index 0000000..c281a39
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/skateboarding.svg
@@ -0,0 +1,227 @@
+<svg width="147" height="95" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <mask id="a" maskUnits="userSpaceOnUse" x="0" y="84" width="129" height="10">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M12.6 84.5H14.4l7.7.3h43.2c16.8 0 32 0 49 .4h.5c1.1 0 2.3 0 3.4-.2h8.6c.7.2 1.8.1 1.7.4l-.4.6c0 .1 0 .2-.2.2l-.8.2h-.5c-3.2.6-6.8.5-10.5.4H108.5l-12.7.1h-3.2c-2.8-.1-4.5-.1-4.5 1l-.1.2c-2.5 4.5-18.9 5.4-23.4 5.4h-.2c-9.9 0-39.6.5-41 .5h-.3c-3.5 0-7.3 0-9.3-.5-.7-.2-4.6-.5-7.6-1.6-.6-.1-5.9-.2-5.9-.6l.4-.2 5-.4h-.2c-.5-.6-.4-1-.8-1.5-.5-.8.4-1.4 1.5-2 0-.2-4-.7-3.7-.8.4-.2 3-1.2 4.8-1h.1l1-.4c2-.5 3.3-.5 4.2-.5z"
+      fill="#fff"
+    />
+  </mask>
+  <g mask="url(#a)">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M8.3 85l-1 .5c-1.8-.3-4.6.8-4.8.9-.2 0 4 .6 3.7.8-1.2.6-2 1.3-1.5 2 .4.6.3 1 1 1.5l-5 .4c-.3 0-.4.1-.4.2 0 .4 5.5.5 5.9.6 3.1 1.1 7 1.4 7.6 1.6 2 .5 6 .5 9.7.5 1.3 0 31.6-.5 41.1-.5 4.6 0 21.2-1 23.5-5.5 0-1.3 1.8-1.2 4.7-1.1h3l16-.2 4.3.1a61.6 61.6 0 0011.8-.6c.2 0 .2-.1.2-.2l.4-.6c.1-.3-1-.2-1.8-.4h-8.5l-4 .2c-17.6-.4-33.4-.3-51.1-.3a5409.3 5409.3 0 01-49.6-.4h-.9c-1 0-2.3 0-4.3.5z"
+      fill="url(#paint0_linear)"
+    />
+  </g>
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M83.6 77.4h.4c.2-.1.2-.2 0-.3 0-.2-.3-.2-.5-.1-.2 0-.4 0-.4.2 0 .3.2.2.4.2h.1zm-6-1.4l-.7.1V76.4c.3 0 .6.2.9 0 0 0 .2 0 .2-.2l-.3-.2h-.2zm-.2 1.7c.2 0 .4 0 .5-.2.2 0 .1-.3 0-.3H77l-.1.2.1.2h.4zm43-.6c-.4 0-.6 0-.6.2s.3.3.7.3c.3 0 .5-.1.5-.3l-.6-.2zm6.4 0h-.5c-.2 0-.2.2 0 .3.1.2.8.2 1 0v-.3h-.5zm-6.7-.5h.2c.2 0 .3 0 .3-.2s0-.3-.2-.3h-.9v.2c-.1 0 0 .2 0 .2h.6zm6.3 0h.2c.1 0 .3-.1.3-.3l-.2-.2h-1V76.5l.7.2zm-43-.1h.2c.1 0 .2 0 .3-.2 0-.2-.1-.3-.3-.3h-.9v.4h.6zm48.3 2.7l-2-.1c-1.4-.3-2.9-.3-4.3-.3h-3.6l-2-.1h-15.5c-2.3 0-4.6-.2-7-.1H79.2l-3.5.4c-1.4.1-2.9.2-4.3 0h-1c-.8 0-1.5-.1-2.2-.3-1.7-.5-3.5-1-5.1-1.8l-3-1.7c-.6-.3-1-.7-1.4-1.1-.4-.4-.3-.6.1-.9l.6-.1c1-.1 2.1 0 3.2.2l7 1.6 3.8.4c1.9 0 3.7-.2 5.6-.4 1.6-.1 3.3-.4 5-.3h26.3l4.5-.1 5 .1h2.3c1.1.1 2.3 0 3.3.3a18 18 0 007.7 0c2-.4 4.1-1 6.2-1.6 1.5-.3 3-.5 4.6-.5h1c.6 0 1 .3 1.3.7.4.4.4.7 0 1.1-.5.5-1 .8-1.7 1.1a57.5 57.5 0 01-11.4 3.4h-1.3z"
+    fill="#D5BBAC"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M124.4 89.1c0 .2.1.3.3.3l-.1-.2s-.1-.1-.2 0zm-.4-.4c0-.2-.1-.3-.4-.4 0 .2.2.4.4.4zm3.2-4.2c.2 0 .4.3.7.5-.2-.4-.4-.5-.7-.5zm1 .2l.4.8c0-.4-.1-.7-.4-.8zm-5 2.2h-.2c0 .4 0 .8.3 1h.1l-.3-1zm4.8-.8c0-.4-.3-.6-.6-.8-.1 0 0 .1 0 .1l.6.7zm-3.7.9c0-.4 0-.7.2-1l.5-.7c-.7.4-1 1.2-.7 1.7zm-1.1-.9c.2-.6.5-1.2 1-1.6.6-.4 1.2-.6 1.9-.7.6 0 1.3.2 1.9.6 0-.3-.2-.3-.3-.4-.6-.4-1.3-.4-2-.3-1.2.2-2 .8-2.5 2-.1 0-.2.2 0 .4zm1.5.8c0 .6.4 1.4 1.1 1.5.5 0 .8 0 1.2-.3.4-.1.6-.5.7-.9.1-.9-.5-1.7-1.4-1.8-.9 0-1.6.6-1.6 1.5zm1.3 3c-.8.1-1.4-.2-2-.7-.6-.5-1-1.2-1.3-2-.3-.9-.2-1.8.4-2.6 1-1.6 3-2 4.4-1.2 1.3.7 2.4 2.2 1.8 4.1-.4 1.1-1 2-2.2 2.3l-1.1.2zM80.9 88.2c-.2.1-.3.2-.3.4.2-.1.2-.1.3-.4zm-.8.9c-.1 0-.3 0-.4.2.2 0 .4 0 .4-.2zm-2.8-4.8c-.2.1-.4.1-.5.4.3 0 .4-.1.5-.4zm3.9 3.5c.2-.2.3-.5.3-1l-.1.3-.2.7zm-5.3-2.1l.4-1.1c-.3.3-.5.6-.4 1zm3.7-.3c.5.4.6 1 .7 1.7.2-.7-.1-1.5-.7-1.7zm-2.3-.1c-.6 0-1 .7-.9 1.1.2-.5.5-.8.9-1.1zm-.3-1.4c0 .1.1 0 .2 0l1.3-.1c1.6 0 2.8 1.2 3 2.4v.1c.2-.6-.4-1.6-1.3-2.2-1-.6-2.6-.7-3.2-.2zm1.1 1.4c-.5 0-1 .2-1.1.6-.5.8-.5 1.5.3 2.1l.4.3c.3.2.7.2 1 0 .6-.1 1-.6 1.2-1.2 0-.3 0-.7-.2-1-.4-.5-.8-.8-1.6-.8zm3.9 1c0 .8-.3 1.6-.8 2.3-.3.4-.7.7-1.2 1-1.6.6-3.2.1-4.3-1.1-.4-.6-.6-1.3-.6-2 0-1.2.5-2.1 1.3-2.9.6-.5 1.3-.6 2-.6.8 0 1.6.2 2.2.6.6.4 1 .8 1.2 1.4l.2 1.3z"
+    fill="#FBE900"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M58.3 74.7a28.4 28.4 0 009.3 4.4l2 .5h5.7l2-.3 5.4-.2H96l8.9.1a219.7 219.7 0 007.3 0h13.7c1.2 0 2.3.2 3.4.4 1.6.2 3.1.1 4.8 0 2-.4 3.8-1 5.7-1.6 2-.5 3.8-1.4 5.7-2.3h.2l-1.1.6c-2 1-4 1.7-6 2.3l-3.5 1-3 .3c-1 .1-2 0-2.9-.1-1.5-.3-3-.3-4.4-.3H108.1l-7.2-.1H81.7c-2 0-3.8 0-5.7.2-1.7.2-3.5.2-5.2.2a31.3 31.3 0 01-12-4.7c-.2 0-.4-.2-.5-.4z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M138.1 78.3c-1.2.4-2.3.8-3.6 1l-2 .2c-1 .1-2 0-3-.1a32 32 0 00-4.5-.3h-18.3l-11.5-.2H124l3.2.2c1.3 0 2.5.2 3.7.3 1 0 2.1 0 3.2-.3 1.3-.2 2.5-.4 3.8-.8h.1zM76 79.2l1.7-.2c1.5-.2 3-.2 4.5-.2h11.1l-.4.1H79.6l-3.3.3h-.4z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M125 80.8l-.1-.2h-.1l.1.2zm-.3-.4l.6.3v.2a2 2 0 01-.6.7c-.3.2-.7 0-.8-.4 0-.5.2-.8.8-.8z"
+    fill="#0781A8"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M69 79.2c1.7.2 3.3.1 5 .2-1.7 0-3.4.2-5-.2zM143.2 76.5c-.8.5-1.7.8-2.7 1l2.7-1z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M127 81.8v1l-.1.1-.1-.1c0-.3 0-.6.2-1zM77.6 81.9c.2.2.2.5.2.7l-.1.2c-.1 0-.2 0-.2-.2V82z"
+    fill="#0781A8"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M80.5 81.4c-.2.1-.4 0-.5.2h-.2l.1-.2h.6z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M138.7 78l.6-.1c0 .1 0 0-.1 0l-.5.2zM75.5 79.3a2 2 0 01-.8 0h.8zM63.1 77.2c.1 0 .3 0 .4.2l-.4-.2zM145.7 75.2l-.1.2v-.2h.1z"
+    fill="#D38628"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M122.6 84.8v-.1h.1z"
+    fill="#0781A8"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M83.6 76.2H83h.5zM126.2 76.3h.2-.2zM119.8 76.3h.5-.5zM126.7 77.3h0zM120 77.3h.6-.5zM77.7 77.4h-.2-.2c.1-.1.3 0 .4 0zM77.4 76.3h.1zM83.7 77.2h-.2.2z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M127.2 87.1c0-.7-.4-1.2-.9-1.3-.6 0-1.2.5-1.2 1 0 .7.4 1.1 1 1.1s1.1-.3 1.1-.8zm.3-.1c0 .7-.7 1.2-1.5 1.2-.6 0-1.1-.6-1.1-1.3 0-.7.5-1.3 1.3-1.3.7 0 1.3.6 1.3 1.4zM78.4 88c.6 0 1-.4 1-1s-.6-1.2-1.1-1.2c-.7 0-1.2.4-1.2 1 0 .7.6 1.2 1.3 1.2zm-.3-2.5c.7 0 1.1.3 1.4.7.2.3.2.6.2.9-.1.4-.4.7-.7 1-.5.2-.9.2-1.3 0l-.3-.3c-.6-.5-.6-1.2-.2-1.8.2-.4.6-.5 1-.5z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M126.1 87.5c.3 0 .5-.2.5-.4 0-.3-.2-.5-.4-.5s-.5.2-.5.5c0 .2.2.4.4.4zm1-.5c0 .4-.5.7-1 .7-.4 0-.8-.4-.8-.9 0-.3.6-.8 1-.8s.8.5.7 1zM78.7 87c0-.3-.2-.5-.4-.5-.3 0-.5.3-.5.5 0 .3.2.5.5.5s.4-.2.4-.5zm-.5-1c.5 0 1 .4 1 1 0 .4-.3.8-.8.8-.6 0-1-.4-1-.9s.3-1 .8-1z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M126.4 87c0 .2-.1.2-.2.2-.2 0-.3 0-.3-.2l.3-.2c.2 0 .2.1.2.3zM78 87c0-.2.2-.2.3-.2.2 0 .2 0 .2.2s0 .3-.2.2c-.2 0-.3 0-.3-.2z"
+    fill="#847D6F"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M145.7 75.2s-.2 0-.1.2l.1-.2zm-82.6 2l.4.2a.7.7 0 00-.4-.2zm12.4 2h-.8c.3.1.5.1.8 0zm63.2-1.1l.5-.1s.1 0 0-.1l-.5.2zm4.5-1.6l-2.7 1c1-.2 1.9-.5 2.7-1zM69 79.2c1.6.4 3.3.1 5 .2-1.7 0-3.3 0-5-.2zm7 0h.3l3.3-.2h7.1c2-.2 4.1-.1 6.2-.1h.4v-.1H82.1c-1.5 0-3 0-4.5.2-.6 0-1.2 0-1.8.2zm62.1-1h-.1a32.5 32.5 0 01-7 1.2c-1.2 0-2.4-.3-3.7-.3l-3.2-.1h-8l-5.8-.1H95.2l11.5.1H125c1.5 0 3 .2 4.4.4 1 .1 2 .2 3 .1.8 0 1.4-.2 2.1-.3 1.3-.1 2.4-.5 3.6-1zm-79.8-3.5l.5.4a24.7 24.7 0 009 4.2c1 .3 2 .5 3 .5 1.7 0 3.5 0 5.2-.2l5.7-.3h19.2l7.2.2H124.8c1.5 0 3 0 4.4.3 1 .1 2 .2 3 .1 1 0 2-.2 2.9-.4 1.2-.2 2.3-.6 3.5-1 2-.5 4-1.2 6-2.2.4-.2.7-.3 1-.6h-.1c-1.9 1-3.7 1.8-5.7 2.3-2 .6-3.8 1.2-5.7 1.5-1.7.2-3.2.3-4.8 0l-3.4-.2h-13.7a88.8 88.8 0 01-7.3 0L96 79H82.8l-5.4.2-2.1.2c-1.8.2-3.5.1-5.3.1h-.4l-2-.5a29.8 29.8 0 01-9.3-4.4zM82 86.3c0-.5 0-1-.2-1.3-.3-.6-.6-1-1.2-1.4-.6-.4-1.4-.5-2.1-.6-.8 0-1.5.1-2 .6-1 .8-1.4 1.7-1.4 2.9 0 .7.2 1.4.6 2 1 1.2 2.7 1.7 4.3 1 .5-.2.9-.5 1.2-1 .5-.6.8-1.4.8-2.2zm44 3.7c.4 0 .8 0 1.1-.2 1.2-.4 1.8-1.2 2.2-2.3.6-1.9-.5-3.4-1.8-4a3.5 3.5 0 00-4.4 1.1c-.6.8-.7 1.7-.4 2.6.2.8.7 1.5 1.3 2 .6.5 1.2.8 2 .8zm5.7-10.8h1.3a42 42 0 0011.4-3.5c.6-.3 1.2-.6 1.7-1.1.4-.4.4-.7 0-1.1-.3-.4-.7-.6-1.2-.7h-1.1c-1.6 0-3.1.2-4.6.5L133 75a16.1 16.1 0 01-7.7-.1c-1-.2-2.2-.2-3.3-.2l-2.2-.1-5-.1-4.6.1H83.8l-4.9.3a46 46 0 01-9.3 0l-7.1-1.6c-1-.2-2.1-.3-3.2-.2l-.6.1c-.4.3-.5.5-.1.9s.8.8 1.4 1.1l3 1.7c1.6.8 3.4 1.3 5.1 1.8l2.1.4h1.1c1.4.1 2.9 0 4.3-.1l3.5-.4h29.6l5.2.1h11.5c1.4.1 3 .1 4.4.4h2zm-29.5.5c-3.4-.2-6.7-.1-10.1-.2h-7.2c-.2 0-.3.1-.3.3-.2.4-3.6 1.1-3.8 1.5 0 .2-.8.3-.8.5 0 .7.4.4.2 1-.3.5.4.4.9.8a7 7 0 011 1.8c.2 1.2 0 2.3-.7 3.3-.6.7-1.4 1.2-2.4 1.3a4 4 0 01-2.5-.5c-1.3-.8-1.7-2-1.6-3.5a4 4 0 012.2-3c.2-.1.2-.2.2-.5l.1-1V81l-.2-.1H77a1 1 0 01-.9-.6c-.1-.3-.3-.3-.5-.3l-3.3.1h-3c-2-.6-3.8-1.1-5.6-1.9a23.5 23.5 0 01-5-2.9c-.5-.3-.7-.7-.6-1.3 0-.6.4-.9 1-1a5 5 0 011.9 0c.8 0 1.6.2 2.4.4l6.4 1.4c2 .4 3.9.4 5.9.3l2.7-.2c1.6-.2 3.2-.4 4.8-.4h26l3.2-.1h6.5c1.5 0 3 0 4.5.2 1.1 0 2.2.2 3.4.4a15.4 15.4 0 006.8-.3l3.3-.8 3.2-.8a16 16 0 015-.3c.6 0 1 .3 1.4.7.2.2.2.4.2.7l-.1 1a2 2 0 01-.9 1l-2 .9c-1.7.9-3.6 1.3-5.4 2-2 .6-4 1-6.1 1.2l-2.2-.1-1-.2c-.3 0-.4 0-.5.2-.2.5-.5.7-1 .7-.3 0-.4 0-.3.4v.3c.2.4.2.8.1 1.3 0 .1 0 .2.2.3.7.3 1.2.8 1.7 1.5.7 1 .7 2 .3 3.1-.3 1.2-1.2 2-2.4 2.4-1.4.3-2.6 0-3.5-1.1-.5-.6-1-1.3-1.1-2-.1-.6-.1-1 0-1.6.2-1 .8-1.4.6-1.6 1-1.2 1.3-1.2 1-1.8-.2-.6-.3-1-.2-1.6l-3.6-.4c-.3-.4-.5-.3-.7-.3H102.2z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M83.6 76.3H83h.5zm-.3.4l-.5-.1-.2-.2.1-.2c.3-.3.6-.3 1-.2l.2.4c0 .2-.2.3-.3.3h-.3zM126.2 76.4h.1s.1.1.1 0h-.2zm.2.4c-.3 0-.5 0-.6-.2-.1 0-.2 0-.2-.2 0 0 0-.2.2-.2.3-.1.6-.2.9 0 0 0 .2 0 .2.3 0 .2-.2.2-.3.3h-.2zM119.8 76.5h.5c-.2-.2-.4-.2-.5 0zm.3.3h-.6l-.1-.4.1-.2c.3-.2.6-.2.9 0 .1 0 .2.1.2.3 0 .2-.1.3-.3.3h-.2zM126.7 77.4h0zm.1-.3h.4c.2.2.2.4 0 .5-.1.3-.8.2-1 0v-.4c.2-.2.4-.1.6-.1zM120 77.5h.6c-.1-.2-.3-.2-.5 0zm.4-.4c.3 0 .5.1.6.3 0 .3-.2.4-.5.5-.4 0-.7-.2-.7-.4 0-.3.2-.4.6-.4zM77.7 77.5c-.1 0-.3-.2-.4.1h.4zm-.3.4H77l-.1-.3.1-.3c.3-.2.6-.2.9-.1.1 0 .2.3 0 .5-.1.2-.3.2-.5.2zM77.4 76.4h.1zm.1-.4h.2c.2 0 .3.1.3.4 0 .2-.1.2-.2.3-.3.1-.6 0-.8 0l-.2-.3.1-.2c.2-.2.4-.1.6-.2zM83.7 77.4v-.1h-.2.2zm0 .3h-.2c-.2 0-.4 0-.4-.3s.2-.4.4-.4.4 0 .6.2c0 .1.1.3 0 .4h-.5zM127.5 87c0-.8-.6-1.4-1.3-1.4-.8 0-1.3.6-1.3 1.3 0 .7.5 1.3 1.1 1.3.8 0 1.5-.5 1.5-1.2zm-2.8-.1c0-.9.7-1.5 1.6-1.5.9 0 1.5 1 1.4 1.8 0 .4-.3.8-.7 1-.4.1-.7.3-1.2.2-.7 0-1.2-1-1.1-1.5zM123.2 86.1c-.2-.2-.1-.3 0-.5a3.2 3.2 0 012.6-2c.6 0 1.3 0 1.9.4 0 0 .2.1.3.4-.6-.4-1.3-.6-2-.6-.6.1-1.2.3-1.7.7-.6.4-.9 1-1.1 1.6z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M124.3 87c-.3-.5 0-1.3.7-1.7l-.5.8-.2.9zM128 86.1l-.7-.7.1-.1c.3.2.6.4.6.8zM123.1 87l.3 1c-.3-.3-.4-.7-.4-1h.1zM128.2 84.7c.3.1.5.4.4.8l-.4-.8zM127.2 84.5c.3 0 .5.1.7.5l-.7-.5zM124 88.7c-.2 0-.3-.2-.4-.4.3 0 .3.2.4.4zM124.4 89.1h.2v.3s-.2-.1-.2-.3zM78.1 85.5c-.3 0-.7 0-1 .5-.3.6-.3 1.3.3 1.8l.3.2c.4.3.8.3 1.3 0 .3-.2.6-.5.7-1 0-.2 0-.5-.2-.8-.3-.4-.7-.7-1.4-.7zm0-.2c.8 0 1.2.3 1.6.8.2.3.3.7.2 1-.2.6-.6 1-1.2 1.3-.3.1-.7.1-1-.1l-.4-.3c-.8-.6-.8-1.3-.3-2.1.2-.4.6-.6 1.1-.6zM77 84c.6-.6 2.3-.5 3.2 0 1 .7 1.5 1.7 1.3 2.3-.2-1.3-1.4-2.5-3-2.5-.5 0-1 0-1.3.2H77zM77.3 85.3c-.4.3-.7.6-.9 1.1-.2-.4.3-1 .9-1.1zM79.6 85.4c.6.2.9 1 .7 1.7 0-.7-.2-1.3-.7-1.7zM75.9 85.7c-.1-.5 0-.8.4-1.1 0 .4-.3.7-.4 1zM81.2 87.8l.2-.7.1-.2c0 .4 0 .7-.3.9zM77.3 84.3c-.1.3-.2.3-.5.4.1-.3.3-.3.5-.4zM80.1 89c0 .2-.2.3-.4.3.1-.2.3-.2.4-.2zM80.9 88.2l-.3.4c0-.2.1-.3.3-.4zM126.4 81.8c.2-.3 0-.6.3-.9 0 .6 0 1-.3 1.5v-.5-.1zM126.4 81.8v.1l-.3.3c0-.4.2-.7.3-1v.6zM125.9 82c0-.3 0-.4.2-.6l-.2.6zM77.9 81l.2.6c0 .2.1.4.3.5v.3l-.2-.2-.4-1V81zM78.3 81.2l.2.7c-.3-.1-.3-.4-.3-.6h.1zM78.5 81.3c.2.1.3.2.2.4-.2 0-.2-.2-.2-.4zM127 87c0-.5-.3-1-.7-1-.4 0-1 .4-1 .8 0 .5.4 1 .8 1 .5 0 1-.4 1-.8zm.2.1c0 .5-.5.8-1 .8-.7 0-1-.4-1-1s.5-1 1.1-1c.5 0 1 .5.9 1.2z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M78.2 86c-.5 0-.9.4-.9 1 0 .4.5.8 1.1.8.5 0 .8-.4.8-.9s-.5-1-1-1zm.2 2c-.7 0-1.3-.5-1.3-1.1 0-.7.5-1.1 1.2-1.1.5 0 1 .6 1 1.1 0 .7-.3 1.1-1 1zM126.5 87.1c0-.1 0-.3-.2-.3s-.3.1-.4.3c0 .2.1.2.3.2.1 0 .3 0 .3-.2zm-.3.5c-.3 0-.5-.2-.5-.5 0-.2.3-.5.6-.5.2 0 .4.3.4.6 0 .2-.2.4-.5.4z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M78 87c0 .2.1.3.3.3.2 0 .3 0 .3-.3 0-.1-.1-.2-.3-.2-.1 0-.2 0-.3.2zm.8 0c0 .3-.2.5-.5.5-.2 0-.5-.2-.5-.5 0-.2.2-.5.5-.5s.5.2.5.5z"
+    fill="#2E0940"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M86.3 20.6c-3 6-1.1 13.2-3.3 19.5-1.8 5.1-5.2 9.6-6.7 14.8-.2.6-.4 1.3-.3 2 .2.6.6 1.2 1 1.8l6 8c.4.7.8 1.3 1.4 1.8.6.6 1.3 1 2 1.4 1.3.9 2.7 1.8 4.2 2.5 3.5 1.7 7.5 1.8 11.4 1.5 5.7-.5 11.7-2 16-6 1.5-1.5 2.8-3.2 4-5 6-9 9.7-19.4 10.7-30 .1-.8.2-1.6.6-2.3.4-.8 1.2-1.3 1.7-2 .5-.8.6-2-.2-2.4 1.8-.2 2.3-2.5 2.2-4.2a9.6 9.6 0 00-1.5-5.2c-1.1-1.5-3-1.3-4.8-1.9 0-.4-1-.3-1-.7-1.8-2-5.1-4.6-8.4-6.2a28.5 28.5 0 00-11.6-2.4c-.8 0-6.8-1.5-5.3.3C107 8.7 101.2 9.7 99 9c-1.1-.3.8-3.1 0-2.6-2.1 1.1-6.5 3.6-8 5.3-2.4 2.7-3 5.6-4.7 8.9z"
+    fill="#8CD0E4"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M99.1 9.2l-2.5-5-.2-1.7-.4-1.2 2.3-.3 1.6 1 2.1 2.4 1.8 3.6.2 1s-2.4 2.1-4.9.2zM117 6.4l1.7-3.1s.5-.4 1.2-.3c.7.2 1.8 1.5 1.8 1.5s.3.8.3 1.3-1.1 2.2-1.1 2.2-3-.3-3.9-1.6z"
+    fill="#BCB9C3"
+  />
+  <mask id="b" maskUnits="userSpaceOnUse" x="72" y="0" width="67" height="77">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M72.2.4h66.1v76H72.3V.4z"
+      fill="#fff"
+    />
+  </mask>
+  <g mask="url(#b)">
+    <path
+      fill-rule="evenodd"
+      clip-rule="evenodd"
+      d="M127 23.5v-.2h-.5l-.2.3.2.2.5-.3zm6.5 18.5h-.1.1zm-.7-1.6l-1.6.6-.3.3c0 .6-.6.7-.7 1.1l.2.5v1.3l2.1-.5.5-.6c-.4-.1-.6-.4-.4-.8v-.2l.2-1.7zM77.5 57.9l-.4-.8c-.1-.5-.4-.6-.8-.6-1 0-1.9.3-2.7.8l-.8.4v.3c-.3.5 0 1 .6 1l.5.1.8.2c.4.2.7 0 1 0 .8 0 1.4-.2 2-.6-.6-.4-.6-.7-.2-.8zm35.7 16l-.4-.7v-.3l-1-2h-.2l-.5-.1v.6l-.8.3c0 .7-.8.3-1 .7l.7 1.4c0 .2.2.3.3.5.3.3.4.8 1 .8h.1c.3.4.7.4 1 .5.9.2 1-.1.9-.9l-.1-.7zm17.1-52h-1c-.6.3-1.1.4-1.5 1-.5.6-.5 1.3.3 1.7.6.2 1.1.6 1.7.5.6-.1 1.1.2 1.6-.4.3-.3.8-.4 1.2-.6.3-.2.6-.7.4-1-.2-.3-.5-.6-.8-.7-.6-.3-1.3-.4-1.9-.5zm-41.2 50c-.4-.2-.2-.5-.2-.8 0-.2 0-.4-.2-.5l-1.1-.6.2-.2-.2-.1c-.3-.2-.6.3-.8 0-.2-.3-.5-.4-.8-.5-.4-.2-.5-.2-.7.2l-.5 2s.2 0 .3.2l1 1.5.3.5c.4.5 1 .6 1.6.7l.3-.4.4-.7.2-.9.2-.4zM133.9 25c0 .3.3 1 .6 1.2.6.3.8.2 1.2-.4.3-.4.5-1 .5-1.5 0-.6.2-1.2 0-1.8L136 20l-.1-.9-.6-1-.5-.6-.6-.8a10 10 0 00-1.8-.6c-.5-.1-.7.1-.6.6l.4 1.4.1.7.2.6.4 1.7v.2c.5.4.6 1.2 1.3 1.4v1.3l-.2 1zm-6.4.1c-.3-.2-.6-.2-1-.1-1 0-2 0-2.5 1.1-.9.8-1 1.7-1 2.8 0 .3.1.8.3 1l1 1 1 .4h.3l1.2-.2h1c.2 0 .4 0 .7-.2.2 0 .5 0 .7-.2.6-.6 1.3-.6 2-.4.3.1.8.3 1 .1.4-.3 1-.4 1.3-.9.3-.5.7-1 .7-1.7 0-.6 0-1-.3-1.6-.3-.4-.6-.4-1-.4h-.8v.2h-1.8c-.5.2-.9.1-1.3 0l-1.9-.7.4-.2zm-8.1 4.7l1.6-2.3.8-1.3.2-.6v-1.1l-.3-1.6c-.1-.6-.5-1.2-1-1.8-.6-.5-.7-1.2-1.5-1.6a.6.6 0 01-.2-.2c-.4-.7-1-1-1.8-1.3-1.4-.7-3-.7-4.5-.9h-.3c-.8 0-1.5.4-2.4.1l-1.2.5L107 19l-.6.6-1.3 1a3.2 3.2 0 00-.8 1.9c0 .5-.6 1 0 1.6v.1c-.3.6-.1 1.1 0 1.7l.6 1 .7 1a17.4 17.4 0 002.2 1.9c.2.1.6.1.8.3.8.5 1.6 1 2.6 1.1l.5.1 1.7.2 1.2.1h.6l.3-.1c.8 0 1.5-.2 2-.5l1.3-.8.6-.3zM120.7 6c.1.2.1.3-.2.6.2.3.2.3-.3.6l.3.3-.2.2c.2.2.4.3.4 0 0-.6.2-1.2.3-1.7v-.5-.1l-.1.1c.2.3 0 .4-.3.5v-.6l.4-.3-.8-.4v-.1l.8.1c-.2-.6-.9-.4-1-1h-.2c-.3.1-.7.2-.9.4-.6.7-.9 1.5-1 2.5v.3l.4-.1c0 .3 0 .7.6.7h.6c.1 0 .3 0 .4-.2l.2-.6.3-1 .3.3zm11.5 38.3c-.6.4-1.4.4-2 .7-.2 0-.4.3-.4.5l-.3 1.1-.7 2.5-.3.3-.5 1-.3 2h-.6c0 .2 0 .5-.2.8-.1.5-.4 1-.7 1.4v.4h-.3l-.2 1c-.2.5-.3 1-.7 1.3-.2.2-.3.6-.7.6v.3l-.3.6-.3.4-.8 1.3h-.8l.4-.8c.3-.5 1-.8 1-1.5l.7-.4-.3-.3h-.1l.6-.2-.2-.2.8-1.6c-.2-.3.2-.9.8-1.2-.2-.5.1-1 .4-1.4l.1-.4 1-2.2.4-1.5.4-1.1.3-.6.5-1.2.2-.4.5-2.6.4-2 .5-2V38l.3-.3v-.4c0-.8.2-1.6.1-2.4 0-.3-.2-.4-.4-.3l-.6.1c-5.9-.5-5.8-1.6-6-1.7 0 0 1.8 0 1.8-.3l.3-.4-1.3-.4-.6-.2c-.2 0-.4-.1-.4-.3-.3-.5-.7-.8-1.2-1.2l-.3-.4c0-.2 0-.4-.2-.6h.1v-1.4l-.4.3-1 1.5-1.4 1.2c-.3.2-.5.5-.8.6l-2.1 1-.7-.2c0 .4-.2.5-.7.3l.4-.3H114v.4l-1.3-.1c-.7-.2-1.4-.3-2-.8h-.2c-.5 0-1 .2-1.3-.4h-.1c-.6.1-.9-.6-1.4-.6l-.2-.1c-.4-.8-1.2-1.1-1.7-1.7-.3-.4-.9-.6-1-1.2 0-.4-.2-.7-.3-1l-.2-.2-.2-.2c0-.7-.4-1.4-.6-2-.1-.8-.2-1.6 0-2.3l.3-1.5c.2-.8.5-.1 1-.9.3-.6.6-.6 1.3-1l2.2-1.3c.6-.5 1.3-.5 2-.6.5 0 1-.3 1.5-.4h.8c.3-.1.5-.1.8 0 .3.2.7.1 1.1.2l2 .6a4 4 0 012 1.4c.3.3.8.4 1 .6l.8.6c.3.5.7.8 1 1.4.1.5.5.9.5 1.4l.1.2c.6.6.6 1.3.7 2 .2.8.5.1.6.9v.1c-.3.6-.1-1-.3-.5v.4l.3-.1 1-1.1.3-.3h1.1l.6-1 .2-.5c.2-.3.7-.2 1-.7.1-.3.7-.5 1.1-.7.6-.2 1.1-.3 1.7 0h.2c.5-.2 1 0 1.4 0 .3 0 .3 0 .3-.4l-.3-1.5-.1-.6c.1 0-.1-.2 0-.2-.2-.4-.8-.6-.8-1l-1-1.5c-.4-.4 1 1-1.2-1.6-.5-.6-1.1-1-1.5-1.6-.5-.7-1-1.2-1.8-1.5-.6-.2-.8-.8-1.3-1l-.7-.3.1.4-1.6-1v.4c0-.5-.6-.7-.9-.7-1-.4-2-1-3-1.3l-1.8-.5a47.7 47.7 0 00-2-.4c-.1 0-.4.3-.5-.1h-.5v-.1l-.5-.2h-.2c-.2.4-.4 0-.7 0-1.4-.5-2.8-.6-4.3-.7l-.8-.1-1.8.2h-1c0 .4.2.7.4 1 0 .2.2.3.3.5V8l-.5-.2-.6-1-.5-1-.5-1-.3-.5-1.4-1.7-.6-.4-.2-.3a3.1 3.1 0 00-3.1-.8c-.5.2-.7.8-.6 1.3.3 1.3 1 2.5 1.5 3.6.6.3.4 1 .6 1.4l.6 1.1c.1.2.3.4.2.5-.1.2-.3.6-.7.3h.1l-1-1.1V8l.4.1c-.1-.3-.3-.4-.6-.2l-1 .4c-.1.1-.6 0-.6.4l-.3.2h-.3l-1.4 1.3-.9.5c-.3 0-.4.4-.6.5-.7.4-1 1.2-1.5 1.6-.6.4-.9 1-1.1 1.5l-.5 1-.8 2c0 .2-.2.2-.3.2 0 .2 0 .5-.2.7l-.4 1.3-.3.3v.6l-.7 1.8c-.3.7-.3 1.5-.4 2.4h-.4l.3.3-.3.2.2.3c-.3.4-.2.8-.1 1.2v.3c0 .5-.3 1.1-.3 1.7V30l-.1 1.4-.8 3.5v.3c-.5 1-1 2-1.3 3 0 .4-.5.8-.5 1.3s-.3 1-.4 1.5l-.2.3-1.5 3-1.4 3.1c-.3.7-.6 1.3-.6 2.1l-.3.8L78 52l-.1.3v1.5c0 .5-.3 1-.2 1.5 0 .4 0 .9.2 1.3l1.1 3.6c0 .2.2.3.3.5l.6 1.1c.2.3.2.6.6.6.2 0 .3.2.4.4l.3 1 .3.3.2.1L83 66c.3.4.6.7 1 .9l2.8 1.7.3.1v.4l.2-.2 1.2.6c.7.5 1.6.5 2.4.9l1.6.5 1 .1.4.3.1-.2v.3h.1l.2-.3 2.7.9v-.3c.2.3.3.3.6.2h.8c.7.4 1.4.3 2.1.3l1.8.4s.2.1.2 0c.5-.3 1 0 1.5 0l3-.8 1.1-.4.2-.3 1.5.3c0-.4.3-.4.6-.5.2 0 .4 0 .5-.3l.4-.2c.4-.1.8-.3 1-.7.1-.2.3-.3.5-.3.5-.2 1-.5 1.4-1 .2-.2.5-.2.9-.3 0-.7.8-1.2 1.4-1.2l.7-.8c.3-.3.9-.4 1-.7 0-.4.4-.4.7-.6l.2-.4.4-.3V64h.4c-.1-.3-.2-.5.2-.6h.1l1-1.5.4-.3.6-1 .5.2-.5.8v.4l-.8.7-.3.5-.8.9h-.1l.2.3h-.7c0 .4 0 .8-.5.8-.2 0-.3.3-.5.5l-.4.3h-.1v.2a226.3 226.3 0 01-.5.4l-.5.6-.7.1.1.4h-.8l.3.1c-.4.2-.5.8-1.2.8-.2 0-.5.5-.8.9l-.3.1-.8.4c-.5 0-.6.3-.5.8l.6 2c0 .2.2.3.3.4.3.5.5 1 .5 1.6v.6c0 .6-.5 1-1.1 1-.6 0-1 0-1.6-.3-.5-.3-1-.7-1.3-1.1l-.1-.6c-.3 0-.5-.2-.5-.6 0-.1 0-.3-.2-.3-.3-.3-.4-.5-.1-.9-.5 0-1-.3-1.4-.3-.3 0-.7 0-1 .3-.2.2-.5.3-.8.3l-.6.1-.1-.3c-.8.7-1.7.4-2.6.6-.1-.3-.3-.4-.6-.3l-.6.1h-1l-.6-.3-.7.1-1.5-.3-3-.5-1.5-.4-1.5-.4-.5-.1h-.4l-.7-.2-.3 1v.6l-.5 1.5c-.1.3-.4.4-.6.6l-.3.3v.1c-.5 0-1.1-.2-1.7-.4v.1l-.2-.1c0-.3 0-.4-.4-.6-.2 0-.4-.5-.6-.8l-.3-.6h.3l-.2-.2c-.2 0-.8-.7-.7-1v-.1l.2-.4c0-.2-.2-.5.1-.7v-.5c.6 0 0-.6.2-.8v-.6l-1.3-.7c-.2 0-.2-.3-.2-.5-.2-.3-.7.1-.8-.4-.1-.3-.7-.4-.4-.8-.2-.2-.4-.2-.4-.4 0-.3-.3-.5-.6-.8l-.7-1-.6-.4.3-.3-.4-.3v.4c-.2 0-.4-.3-.4-.4l.3-.7-.4-.5v.5c-.2 0-.4 0-.5-.2-.2-.2-.2-.5-.3-.7l-.5-1.2s-.2-.2-.3-.1l-1.9.2-.3-.1s-.2-.2-.3-.1c-.5.4-1 0-1.4-.1-.4-.1-.9-.4-1.3-.7-.2 0-.2-.4-.2-.6 0-.7.3-1.3.8-1.8.8-.1 1.4-.8 2.3-.7l1.4-.2.2-.2v-1.5l.2-2v-.4c0-.8.4-1.4.5-2l.2-.3.4-1.4.5-1.4.4-.5v-.4A3 3 0 0180 44l.6-.7c-.3-.4-.2-.7.2-.9l-.1-.3h.6l-.4-.3c0-.4.8.2.6-.4H81l.8-1.4.2.4v-1.1l.6-.1-.5-.4h.5c0-.3-.6-1 .2-1 0-.2 0-.5-.2-.8h.8l-.5-.4h.6v-.2l-.5-.2h.4V36l-.2-.3.4-.7.2-.5c0-.8.3-1.5.6-2.2.2-.6 0-1.3.1-2l.2-.5v-3.5c0-.8 0-1.7.2-2.4.1-.7.6-1.3.7-2 .1-.5.7-.8.4-1.3.8-1.3 1.1-2.7 1.7-4l.6-1s-.1-.2 0-.2c.6-1.3 1.3-2.6 2.4-3.6L93 9.6l1.4-1c.6-.2 1.1-.5 1.6-.9l.6-.6.4-.4-.2-.3.2-.2-.6-.5c.7 0 .7-.2.4-.6-.2-.3-.5-.6-.3-1-.7 0-.3-.7-.6-1l.4-.2c-.8-.4-.6-1-.6-1.7h.2l.5-.4c0-.7.5-.2.7-.3h.4c.7 0 1.5 0 2.2.3l.1.3c.3.3 1 0 1.2.6l.3.3.4.7.2.3c.1.5.6.8 1 1.2 0 .2.3.2.6.3l-.4.2.7.3c.3 0 .6-.1.9.2h.4l-.4-.3 1.2.2c-.2-.8.4-.2.6-.5v.6c.6-.6 1 0 1.5 0l-.3-.2V5h.5c.6.3.6.3 1 0l-.2.5.3-.1c.4.3.8 0 1.3.1a42 42 0 002 .5v-.2c.3.4 1.3.6 1.7.4l.1.3 2.3.4c-.1-.3 0-.4.4-.4h-.3l.5-1.6.3.2v-.4c-.1-.4 0-.7.5-.6 0-.3.2-.9.5-1 .3 0 .5-.3.8 0l.4-.2c.2-.2.5 0 .6.2.1.1.3.3.5.3.5.2.5.7.5 1l.3 1.4v.6c-.3.5-.1 1-.1 1.5 0 .3.4.7.7.8.3.1.5.4.7.6l1.7.8 1.5 1.2 1 1 .9.7 1.8 1.6.4.3c.2.2.4.5.8.2h.2l2.7 1c.6.2 1 .9 1.3 1.4l1 1.8c.4-.1 1 0 1.3.3l.4.4c.7.8.3 2-.7 2.4-.4.1-.5.3-.5.8v.8h-.3c.4.5.2 1 0 1.5-.3.7-.8 1.4-1.2 2v.3c-.1 1.1-.7 2-1.4 2.8-.3.4-.6.6-1 .6h-.2l-1.5 1c-.4 0-.3-.4-.4-.6l-.8-.1-.7.3c-.7.1-1 .4-1 1.2 0 .3 0 .6.3.7l1 .2c.7.2 1-.1 1.2-.8v-.5c0-.3.2-.4.4-.3l.3.2c0 .6 0 1.3.2 2l-.2.5c.4.3-.3 1 .2 1.3l-.3.9c.2.2.3.4 0 .6v.3l-.6 1.2h.2s0-.2.2-.3c0 .5 0 .7-.6.8l.4.1h.3l-.3.5v.1l1.6-.6c.2 0 1 0 .9.3.1 0 .4.4.5.3.2.8.3 2-.2 3.2m.9-9v-.4.3zm.2-2l.3.1v-.1"
+      fill="#020303"
+    />
+  </g>
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M98 42c.3-.4.7-.5 1.1-.6l1.6-.4h.5l2.1.1c.5.1 1 .4 1.4.7l.9.7c.5.4.5.5.2 1.2v.5l-.3-.2c-.3.2 0 .8-.5.7l-.2.4c-.2 0-.5-.4-.5.2h-.5c-.2 0-.4 0-.6.3l-.6.2c-.4 0-.8.2-1-.4l-.6.5h-.8c0 .2 0 .2-1-.2"
+    fill="#D8B8B9"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M102.6 41.7l-.4-.5.2.4v.2c-1.5-.5-3-.3-4.4.2.3-.4.7-.5 1.1-.6l1.6-.4h.5l2.1.1c.5.1 1 .4 1.4.7l.9.7c.5.4.5.5.2 1.2v.5l-.3-.2c-.3.2 0 .8-.5.7l-.2.4c-.2 0-.5-.4-.5.2h-.5c-.2 0-.4 0-.6.3l-.6.2c-.4 0-.8.2-1-.4l-.6.5h-.8c0 .2 0 .2-1-.2.6-.1.9-.6 1.5-.4l1.6-.1 2-.5c.8-.3 1-1 .5-1.7l-.7-.5-1.2-.7-.3-.1zM94.4 44.8l.2-.6-.2.6zM102.5 9L101 6.8l-.4-.3c-.5-.4-.6-.9-.6-1.4l.1-.1.3.5c1 .7 1.7 1.7 2.4 2.7.3.4.2.7-.3.8z"
+    fill="#020303"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M119.4 30.3l-.6.3-1.2.7c-.6.3-1.3.6-2 .6h-.4l-.6.1-1.3-.1-1.6-.2-.6-.1c-1-.2-1.7-.7-2.5-1.1l-.9-.3-.8-.6-1.3-1.2-.7-1-.6-1c-.2-.5-.3-1 0-1.6v-.1c-.6-.6 0-1 0-1.6 0-.3 0-.6.2-.8.1-.3.3-.7.6-1l1.3-1 .6-.5 1.7-1.2 1.2-.5h.1c.8.3 1.6 0 2.4 0l.3-.1c1.5.2 3 .2 4.5.8.7.3 1.4.7 1.8 1.3 0 0 0 .2.2.2.8.4 1 1.1 1.5 1.6s.9 1 1 1.7c.2.5.2 1 .2 1.6l.1 1-.2.6c-.1.5-.5.9-.8 1.3l-1.6 2.1v.1zM128.4 26.1l-.3.2 1.8.6c.4.2.8.3 1.3.2.5-.1 1 0 1.6 0v-.4h.1c.3.1.5.2.8.1.4 0 .7 0 1 .4.3.5.3 1 .3 1.5 0 .7-.4 1.1-.8 1.6-.3.5-.8.6-1.2.9-.2.1-.6 0-1-.1-.7-.3-1.3-.2-1.9.3-.2.2-.5.2-.7.3l-.8.2h-2c-.1.1-.3.1-.4 0-.3 0-.6-.1-.8-.3-.4-.3-.8-.5-1-.9a2 2 0 01-.4-1c0-1 .1-1.9 1-2.6.5-1 1.5-1 2.4-1h1zM134.4 25.7l.3-.9v-1-.2c-.9-.3-1-1-1.4-1.4l-.1-.2-.4-1.8-.2-.5-.1-.7-.4-1.3c-.2-.5 0-.8.6-.7l2 .7c.2.1.3.4.5.7l.6.6.6 1c.2.3.2.6.2.9l.4 2.3-.2 1.8c0 .5-.1 1-.5 1.5-.4.6-.6.6-1.2.3-.3-.1-.7-.8-.7-1z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M89 72.7l-.2.4c0 .3 0 .6-.2.9 0 .2-.2.4-.4.6l-.2.4c-.5-.1-1-.2-1.5-.7l-.3-.5-.9-1.4-.3-.2.5-1.9c.1-.4.3-.4.6-.2.3.1.6.2.8.5.2.3.5-.1.7 0l.2.1-.2.2 1 .6c.2 0 .2.2.2.4 0 .3-.1.7.2.8z"
+    fill="#D8B8B9"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M131 22l2 .5c.4.1.7.4 1 .7.1.2-.2.7-.5.8-.5.2-1 .4-1.3.7-.5.5-1.1.2-1.7.3-.6 0-1.2-.2-1.8-.5-.8-.3-1-1-.3-1.6.4-.5 1-.6 1.5-.8.3-.2.7 0 1.1 0V22z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M113.8 74.3l.1.8c.2.8 0 1-.8.8-.3 0-.7 0-1-.4h-.2c-.5 0-.6-.5-.9-.9l-.3-.4-.7-1.5c.2-.5 1 0 1-.7l.8-.3V71l.5.2V71h.1l1 2.1v.3l.4.8zM77.9 58.4c-.4.2-.4.4.1 1-.6.3-1.2.5-1.9.5-.3 0-.7.2-1 0l-.9-.1-.4-.1c-.6 0-1-.6-.7-1.1v-.4c.3 0 .6-.2.8-.3.8-.6 1.8-1 2.8-.9.3 0 .6.1.7.6 0 .3.3.5.5.8zM133.5 41c.3 0 .4.4.4 1l.1 1-.3 1-.4.6c-.7 0-1.3.2-2.1.4v-1.3l-.2-.5c.1-.5.8-.6.7-1.3l.3-.2 1.5-.7z"
+    fill="#D8B8B9"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M132 33c-.3-.1-.4 0-.4.4v.5c-.2.9-.6 1.2-1.3 1l-1-.2c-.4-.1-.3-.6-.3-.9 0-.9.2-1.2 1-1.4l.7-.4.9.2c0 .2 0 .7.4.8zM128 23.5l-.7.4-.3-.2c0-.2.1-.5.3-.6l.6.1v.3z"
+    fill="#FEFEFE"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M116.8 24.8c0-.3 0-.6.2-.9.1-.4 0-.6-.6-.6-.5 0-1 .7-1 1.1l.3.2c.3.2.7.4 1 .2zm-2.8-.5c0-.5.4-1 .7-1.3.2-.4.7-.4.8-.8l.2-.1h2.5c.5 0 1.1.1 1.6.3.3.1.4.4.6.6 0 0 0 .2.2.3.8.9.4 1.7-.4 2.5l-1.3 1-.4.1c-1 .2-2.1 0-3-.4-.2 0-.4-.2-.5-.3-.4-.3-1-.4-1-1v-1z"
+    fill="#020303"
+  />
+  <path
+    fill-rule="evenodd"
+    clip-rule="evenodd"
+    d="M114.9 22c-.3.1-.5 0-.8-.3v-.3c-.2-.5.2-1.3.5-1.4.3 0 .5.3.4.8l-.1 1.1z"
+    fill="#FEFEFE"
+  />
+  <defs>
+    <linearGradient
+      id="paint0_linear"
+      x1=".3"
+      y1="94"
+      x2="128.5"
+      y2="94"
+      gradientUnits="userSpaceOnUse"
+    >
+      <stop stop-color="#D7BB9E" />
+      <stop offset="1" stop-color="#AD8888" />
+    </linearGradient>
+  </defs>
+</svg>
diff --git a/go.dev/testdata/golden/images/gophers/slate.svg b/go.dev/testdata/golden/images/gophers/slate.svg
new file mode 100644
index 0000000..4930804
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/slate.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="slate"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#bed1e8;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#bed1e8;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#bed1e8;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/violet.svg b/go.dev/testdata/golden/images/gophers/violet.svg
new file mode 100644
index 0000000..33e8bdc
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/violet.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="violet"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#d6baeb;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#d6baeb;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#d6baeb;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/wrench.svg b/go.dev/testdata/golden/images/gophers/wrench.svg
new file mode 100644
index 0000000..fc5789b
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/wrench.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 1248 803" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M468.53,802.864c0,-0.459 -53.908,-5.907 -60.557,-7.907c-27.805,-8.354 -67.266,-7.871 -44.686,-46.618c7.77,-13.337 18.096,-16.817 33.518,-16.337c13.907,0.43 32.548,-4.856 45.457,0.703c16.021,6.892 12.448,38.794 20.423,41.436c7.559,2.512 48.098,-7.462 49.26,-17.444c0.641,-5.455 -24.15,-1.484 -26.551,-1.678c-15.025,-1.207 -14.491,-21.708 -15,-32.708c-1.398,-30.085 -0.839,-60.682 0.574,-90.757c1.34,-28.472 -3.57,-46.195 27.475,-53.435c13.204,-3.082 10.419,-25.766 11.43,-36.074c1.208,-12.372 -19.971,-24.271 -17.881,-31.949c0.953,-3.551 13.566,-1.139 13.903,-1.107c12.401,1.054 16.791,-4.649 24.805,-12.616c9.014,-8.971 18.043,-20.397 29.591,-26.261c7.462,-3.788 21.665,-3.559 27.074,-9.605c9.218,-10.308 3.401,-34.422 3.666,-47.178c0.19,-9.214 -8.899,-19.985 -2.609,-28.655c4.029,-5.548 13.91,-5.856 17.86,-0.014c5.114,7.559 -4.584,8.892 -4.513,15.43c0.176,15.684 2.943,29.998 5.369,45.389c1.334,8.458 -4.104,17.124 8.907,17.418c10.465,0.233 14.573,2.015 22.626,9.014c15.365,13.358 26.3,32.533 47.271,23.885c19.677,-8.111 0.075,32.267 3.179,42.041c6.079,19.139 3.326,32.3 24.702,39.296c12.72,4.162 12.207,4.208 12.709,17.756c0.534,14.476 1.218,28.96 2.609,43.382c2.032,21.053 0.699,42.31 0.366,63.528c-0.409,26.085 -8.212,28.709 -28.354,40.651c-19.003,11.279 -29.064,11.39 -50.661,10.659c-21.333,-0.72 -59.357,-8.014 -78.069,4.1c-33.988,21.996 -60.561,46.182 -103.893,45.655m597.452,-35.576c-13.068,-7.839 -7.917,-22.1 -13.81,-32.425c-3.118,-5.466 -30.049,-5.441 -36.149,-5.326c-32.393,0.598 -63.807,-27.505 -95.598,-32.379c-6.728,-1.029 -19.355,-12.315 -24.028,-5.964c-8.398,11.415 -10.301,20.877 -22.813,29.508c-11.849,8.175 -29.307,-0.251 -28.207,-16.007c0.936,-13.369 26.54,-32.952 16.838,-46.163c-16.419,-22.358 -31.769,-41.712 -41.468,-68.754c-14.265,-39.744 -18.63,-79.854 -27.626,-120.591c-1.269,-5.738 -8.892,-6.946 -13.587,-6.734c-6.531,0.297 -3.979,12.232 -3.886,15.39c0.205,6.914 -1.064,49.156 -19.97,32.293c-25.644,-22.867 -30.662,-71.743 -43.103,-102.559c-12.54,-31.064 -20.83,-63.432 -32.235,-94.932c-7.272,-20.071 -14.276,-40.124 -20.698,-60.482c-2.384,-7.548 -11.355,-44.113 -17.247,-46.077c-5.996,-8.452 24.813,-11.903 28.153,-12.964c14.29,-4.545 19.2,-28.587 2.674,-21.505c-11.089,4.749 -22.419,7.129 -34.16,9.868c-19.598,4.573 4.451,-33.049 8.369,-36.906c10.261,-10.096 25.64,-21.634 40.102,-23.823c20.799,-3.154 27.627,17.185 32.827,33.077c2.373,7.251 3.469,17.673 9.566,23.032c6.623,5.82 12.308,7.419 15.713,16.501c7.659,20.472 -18.673,16.885 -15.978,35.235c1.39,9.48 -4.222,12.849 -4.961,21.118c-0.641,7.143 5.165,12.867 7.556,19.02c6.157,15.867 -14.365,17.885 -7.638,32.852c5.957,13.254 3.466,26.799 9.466,41.028c6.849,16.235 10.239,33.568 16.185,50.116c6.108,17.024 10.667,26.583 27.351,33.167c14.906,5.857 11.806,-5.143 12.429,-17.601c0.807,-16.211 -0.609,-14.01 -11.028,-22.372c-12.394,-9.957 2.867,-23.214 -9.354,-30.401c-18.645,-10.953 -9.391,-27.4 -14.05,-43.421c-4.505,-15.498 -13.501,-27.727 -17.279,-44.543c-2.864,-12.734 -6.326,-30.694 10.362,-35.253c17.443,-4.764 26.149,-23.842 43.693,-27.444c23.698,-4.871 52.622,16.297 69.84,-2.871c6.351,-7.071 -3.455,-17.616 -3.093,-26.3c0.631,-15.286 11.942,-28.142 27.888,-21.107c11.616,5.129 22.049,25.587 35.705,24.186c12.583,-1.287 25.716,-4.315 39.776,-4.383c21.655,-0.101 43.522,1.548 64.704,6.211c8.906,1.964 16.73,7.448 25.461,9.161c4.936,0.968 21.086,8.906 25.3,7.763c17.982,-4.871 69.335,-44.5 61.091,5.287c-1.473,8.906 -16.013,26.407 -13.107,35.077c5.136,15.301 24.2,31.21 31.999,46.529c38.486,75.56 35.494,159.155 40.228,241.074c1,17.279 4.738,33.443 9.365,50.091c3.911,14.057 -0.953,33.823 19.114,29.698c20.093,-4.136 15.821,14.265 7.642,23.834c-11.369,13.276 -23.985,17.698 -32.938,33.637c-12.139,21.623 -42.715,48.651 -65.887,59.098c-10.709,4.835 -23.579,2.154 -34.418,5.348c-9.139,2.691 -3.695,14.698 -6.207,20.78c-2.481,6.014 -11.638,15.706 -17.046,19.118c-4.495,2.831 -13.064,-0.638 -11.828,0.186m-925.712,-15.436c-15.147,0 -19.032,-15.079 -17.892,-27.505c1.699,-18.505 -9.982,-19.322 -22.82,-28.992c-18.555,-13.974 -31.486,-30.429 -43.572,-49.79c-7.677,-12.301 -24.107,1.283 -36.647,-0.14c-13.627,-1.541 -26.709,-11.3 -14.469,-24.214c6.483,-6.842 26.11,-10.946 29.142,-18.906c2.846,-7.469 -3.104,-15.455 -4.53,-22.44c-2.99,-14.641 -1.456,-27.662 1.354,-42.138c10.599,-54.54 44.038,-110.115 31.394,-167.668c-4.703,-21.408 -17.505,-61.708 -7.158,-82.212c4.946,-9.803 7.541,-20.272 11.892,-30.29c7.136,-16.418 21.981,-28.389 28.175,-44.98c3.817,-10.233 -15.516,-17.143 -12.942,-30.619c3.082,-16.103 7.501,-31.536 27.708,-30.486c15.573,0.81 27.931,21.25 42.053,18.594c18.945,-3.555 37.4,-10.254 56.435,-13.949c18.734,-3.627 36.622,-5.262 55.557,-8.054c15.949,-2.347 10.297,-17.193 19.107,-27.934c8.684,-10.591 29.432,-4.251 31.174,9.139c2.903,22.372 7.022,18.602 27.881,26.831c21.845,8.627 45.697,21.924 63.578,37.163c13.548,11.545 16.907,12.154 34.694,8.19c20.785,-4.631 47.135,-0.824 64.769,11.924c23.716,17.15 31.561,67.41 7.447,87.764c-12.383,10.451 -17.318,22.419 -34.317,26.802c-25.634,6.606 -26.601,5.14 -25.386,31.192c0.512,11.018 -5.782,34.307 11.784,26.451c10.799,-4.828 22.978,-10.254 34.816,-4.76c18.272,8.48 4.122,31.641 -7.014,39.185c-10.14,6.871 -39.368,8.549 -42.654,21.129c-10.086,38.636 -7.004,81.004 -22.885,118.759c-12.655,30.192 -29.182,63.116 -51.443,88.821c-5.627,6.502 -30.307,28.608 -24.522,36.01c8.921,11.433 20.777,23.902 13.863,39.321c-7.662,17.114 -30.149,-4.713 -34.719,-11.935c-6.351,-10.05 -8.867,-18.695 -18.87,-13.319c-28.487,15.272 -69.973,24.075 -102.738,23.795c-8.903,-0.079 -41.35,-5.717 -45.217,4.161c-5.33,13.616 -3.671,26.856 -23.028,25.1c-3.355,0 7.383,0.67 0,0" style="fill:#010101;fill-rule:nonzero;"/><path d="M438.993,794.81c-16.383,-0.634 -38.332,-6.086 -46.106,-22.49c-6.147,-12.975 8.831,-36.393 24.218,-30.275c7.724,3.072 -1.53,10.806 -3.634,13.695c-6.355,8.727 5.483,22.293 11.429,27.483c14.631,12.766 29.935,-2.631 44.622,-0.993c24.659,2.753 68.07,-26.386 81.073,-45.905c26.246,-39.357 17.899,-81.463 4.419,-123.333c-4.688,-14.565 -2.068,-65.151 16.498,-64.395c14.297,0.577 21.716,1.781 10.469,18.644c-6.753,20.25 -3.996,42.379 3.408,62.231c18.301,49.099 4.161,84.653 -25.264,125.099c-29.572,40.651 -75.582,40.239 -121.132,40.239c-17.454,-0.674 5.373,0 0,0m-53.03,-10.741c-29.031,0 -35.318,-28.774 -10.355,-43.178c4.097,-2.358 27.465,-4.14 17.738,5.588c-3.878,6.458 -7.125,15.909 -5.312,23.522c-0.068,-0.28 5.427,12.053 4.642,13.394c-1.047,1.785 -6.66,0.674 -6.713,0.674m55.044,-5.369c-1.154,-0.638 -2.308,-1.28 -3.458,-1.914c0.699,-7.964 8.437,-10.896 6.863,-20.853c-0.778,-4.903 -16.29,-14.676 -16.974,-12.813c7.208,-19.662 52.181,35.58 13.569,35.58m-23.493,-10.738c-1.635,-2.9 -1.316,-5.459 0.949,-7.677c2.918,1.713 3.943,4.354 3.076,7.924c-1.362,0.541 -2.703,0.455 -4.025,-0.247c-2.015,-2.688 0.67,0 0,0m651.152,-6.717c-10.821,-5.412 -9.856,-42.224 -15.147,-42.801c-21.415,-2.319 -44.503,0.308 -66.628,-6.66c-40.4,-12.723 -93.706,-26.866 -122.243,-60.528c-13.971,-16.469 -24.185,-38.174 -31.934,-58.241c-6.86,-17.735 -18.261,-40.687 -20.957,-59.052c-3.189,-21.601 -31.002,-135.257 -8.924,-142.597c5.986,-2.993 4.624,-11.939 5.082,-17.297c1.258,-14.677 10.28,-6.788 20.896,-11.064c16.791,-6.742 15.82,-31.182 6.351,-44.737c-5.169,-7.394 -1.377,-15.368 -5.308,-22.906c-4.029,-7.724 -12.986,-8.254 -18.487,-14.247c-12.727,-13.863 28.336,-41.805 33.999,-49.854c29.884,-42.461 83.194,-45.067 129.583,-46.838c21.501,-0.82 49.364,3.886 69.675,10.835c4.698,1.606 21.594,7.057 24.415,11.319c4.279,6.483 -11.563,14.075 -7.753,21.053c0.083,0.15 24.318,-27.315 28.784,-29.63c8.283,-4.294 33.189,-19.938 40.694,-9.569c10.243,14.153 -21.096,69.047 -24.501,67.718c6.957,2.716 9.717,-13.792 18.526,-6.093c12.387,10.824 19.792,25.748 27.902,39.733c16.52,28.468 24.512,57.51 29.498,89.982c9.415,61.446 -2.624,127.641 14.185,187.406c3.835,13.641 8.961,27.415 9.699,41.704c0.889,17.233 -10.19,27.541 -12.494,43.103c-3.283,22.132 -28.243,45.801 -48.798,53.145c-12.282,4.387 -24.809,8.326 -37.715,10.412c-12.147,1.964 -20.003,-7.914 -20.139,8.705c-0.09,10.247 -4.588,45.214 -18.261,36.999m-147.683,-184.603c14.111,-4.709 11.573,-30.927 13.035,-42.02c2.893,-22.117 -8.093,-4.29 -9.591,9.258c-0.763,6.889 -11.265,47.074 -17.053,18.989c-0.867,-4.208 3.093,-37.87 -4.043,-38.336c-2.096,-0.136 -10.817,56.174 17.652,52.109c3.072,-1.025 -3.996,0.567 0,0m32.221,-198.706c42.819,-14.286 71.216,-47.611 61.6,-96.43c-7.584,-38.5 -55.747,-67.65 -93.975,-57.349c-45.629,12.297 -64.299,55.546 -63.31,98.964c1.011,43.683 62.22,59.593 95.685,54.815c3.075,-1.025 -3.996,0.574 0,0m132.916,-145.668c8.014,-8.014 13.975,-1.871 22.1,-3.703c-2.792,0.631 7.01,-17.533 7.021,-18.074c0.384,-16.15 -46.977,25.827 -33.819,25.16c3.014,-0.15 7.752,-7.957 4.698,-3.383m-948.539,511.526c-9.204,-4.609 -5.588,-26.469 -7.043,-34.802c-2.114,-12.071 -29.497,-15.003 -36.214,-25.88c-17.856,-28.935 -40.464,-45.307 -49.912,-80.431c-10.68,-39.705 -8.125,-74.897 8.717,-112.63c4.957,-11.108 11.229,-25.777 14.329,-37.497c3.627,-13.706 11.233,-42.805 7.649,-56.575c-7.821,-30.057 -17.412,-65.776 -14.308,-96.947c1.15,-11.533 30.192,-89.774 47.643,-75.216c11.778,9.817 14.881,3.108 5.638,-7.376c-9.946,-11.272 -19.268,-20.705 -21.623,-36.407c-2.315,-15.462 15.003,-29.092 29.031,-21.419c15.032,8.219 15.032,30.67 30.863,36.73c0.516,-10.067 -8.745,-15.322 6.53,-18.952c11.351,-2.696 22.738,-8.265 34.429,-11.212c30.838,-7.773 63.084,-12.856 94.947,-13.085c44.005,-0.316 104.175,24.888 129.629,62.596c4.247,6.29 25.58,35.304 8.448,38.099c-24.906,4.068 -25.297,24.465 -41.773,37.956c-7.899,6.469 -17.529,16.892 -15.684,28.149c2.62,15.975 21.34,13.426 28.695,24.982c3.136,4.931 6.376,20.522 10.211,22.974c4.437,2.827 25.515,3.265 25.78,-4.842c0.398,-12.118 8.34,-34.709 11.631,-9.817c4.394,33.188 1.071,67.915 -3.452,100.906c-8.387,61.203 -28.974,140.246 -70.574,187.592c-40.967,46.622 -92.685,67.704 -154.543,73.811c-11.717,1.161 -58.296,-7.089 -64.944,1.093c-4.222,5.208 5.953,19.079 -2.996,26.981c-3.409,3.015 -13.928,0.276 -11.104,1.219m20.139,-109.423c24.809,-9.304 51.145,-18.562 77.123,-24.121c9.68,-2.071 18.031,-5.175 27.465,-8.049c14.988,-4.567 21.106,5.24 35.758,2.544c10.236,-1.892 19.541,1.19 24.225,-10.616c4.251,-10.713 27.178,-10.86 36.558,-15.264c20.247,-9.502 6.616,-50.436 0.634,-67.281c-7.107,-20.032 -45.765,14.501 -60.815,2.752c-18.02,-14.067 -35.694,17.641 -47.048,22.261c-7.849,3.197 -15.519,-6.863 -21.419,-3.641c-6.236,3.412 2.118,27.074 2.57,32.271c2.746,31.777 -32.992,-28.196 -25.372,-28.196c-5.792,0 -2.107,10.831 -3.096,13.591c-3.126,8.698 -11.76,9.652 -18.978,12.63c-14.297,5.892 -29.902,10.917 -44.669,15.405c-21.164,6.408 -22.271,23.085 -7.1,38.26c5.129,15.39 10.086,20.429 25.487,16.888c-0.703,0.161 -6.584,2.147 -1.323,0.566m131.576,-266.502c37.5,-4.413 62.456,-22.964 71.94,-60.307c11.405,-44.912 -18.207,-94.243 -66.392,-96.143c-46.676,-1.849 -91.072,17.071 -97.355,69.141c-6.935,57.442 41.558,92.979 95.674,86.857c-0.193,0.021 -6.824,0.817 -3.867,0.452m-153.726,-166.482c4.126,-1.176 -13.229,-23.006 -21.067,-21.393c-2.627,0.541 7.512,30.429 21.067,21.393m510.853,543.077c-10.193,-2.548 -47.737,4.538 -46.543,-11.082c1.792,-23.433 4.308,-41.987 -0.531,-65.746c-4.659,-22.896 -11.623,-42.551 -12.616,-66.02c-0.566,-13.379 -4.258,-18.952 10.864,-20.673c12.935,-1.466 26.264,-0.62 39.264,-0.975c22.662,-0.616 45.987,-8.652 45.446,20.129c-0.495,26.418 0.365,52.969 0.365,79.402c0,12.401 -0.189,24.813 0.19,37.21c0.886,28.483 -13.168,27.755 -36.439,27.755c-2.685,-0.67 2.014,0 0,0m3.358,-83.914c21.297,-5.323 -4.91,-48.077 -24.787,-23.634c-7.391,9.082 3.551,21.383 12.186,23.795c3.774,1.057 19.859,-2.584 12.601,-0.161m-162.456,80.56c-16.946,-4.85 -7.405,-92.108 -7.387,-108.014c0.011,-10.022 -3.613,-32.616 4.043,-41.193c5.458,-6.118 47.718,-5.741 55.417,-4.372c8.036,1.426 12.932,31.934 15.143,39.038c6.785,21.791 11.777,45.253 8.075,68.04c-5.9,36.411 -41.081,56.278 -75.291,46.497c-4.699,-1.34 4.698,1.344 0,0m40.281,-76.528c20.953,-8.376 -6.397,-49.557 -23.02,-25.149c-12.763,18.748 15.49,25.149 23.02,25.149m165.808,63.772c-14.376,-9.573 -3.201,-84.223 -2.509,-100.011c0.366,-8.379 -5.175,-43.776 5.129,-46.489c9.215,-2.426 27.228,1.022 23.587,13.38c-3.075,10.465 1.419,28.995 0.814,40.446c-0.914,17.175 0.243,34.339 -0.542,51.554c-0.702,15.3 3.219,27.863 -10.368,37.683c-4.792,3.462 -11.935,7.613 -16.111,3.437m-345.715,-10.738c-6.082,-4.566 -12.204,-9.193 -15.813,-16.11c-2.652,-5.093 -2.394,-22.663 8.43,-15.441c5.383,5.38 20.382,17.018 19.856,26.025c-0.578,9.798 -9.799,7.533 -15.05,3.594c0.667,0.502 5.942,4.455 2.577,1.932m511.526,-1.344c-12.042,-12.039 11.122,-49.453 24.222,-37.64c9.598,8.641 -12.416,41.013 -24.222,37.64c-0.476,-0.473 5.007,1.43 0,0m-847.844,-78.542c-7.19,-3.595 24.383,-37.027 33.15,-13.67c5.609,14.95 -31.68,15.14 -33.15,13.67m1203.63,-4.699c-12.809,-12.806 10.799,-22.68 19.469,-22.103c9.58,0.638 -10.043,31.537 -19.469,22.103c0.717,0.721 2.864,2.864 0,0m-688.746,-57.058c-25.698,-1.85 -10.179,-44.049 -3.136,-60.113c10.892,-24.863 42.716,-42.529 68.704,-44.783c36.024,-3.101 63.679,11.458 78.467,45.306c3.498,8.011 12.178,29.87 9.135,39.164c-4.716,14.426 -19.21,11.985 -30.694,14.902c-10.297,2.624 -64.825,5.606 -57.066,-8.763c5.778,-10.698 25.48,0.993 26.505,-14.838c0.799,-12.383 2.487,-25.852 -14.215,-21.547c-19.591,5.05 -71.703,-10.742 -69.557,16.873c0.803,10.337 17.165,14.588 15.778,21.519c-2.595,12.961 -16.383,14.731 -27.318,11.996c0.089,0.022 5.451,0.284 3.397,0.284m20.139,-25.508c-4.096,-2.732 -4.139,-15.971 0.674,-18.125c5.91,-2.656 18.2,-0.649 24.007,-0.796c3.974,-0.097 59.04,-6.43 38.421,14.222c-2.122,1.304 -17.734,-3.699 -21.49,-3.581c-10.215,0.319 -20.035,-0.781 -30.117,-0.781c-8.262,0 -3.846,16.705 -11.495,9.061m-40.278,-30.881c-2.881,-2.885 -4.283,-6.606 1.341,-6.738c10.139,-0.24 2.326,9.49 -1.341,6.738m173.865,-4.699c-3.387,-3.953 -2.584,-12.236 4.627,-10.247c6.985,1.921 -3.097,11.778 -4.627,10.247m78.542,-10.068c-8.512,-5.677 -15.175,-27.805 -17.455,-36.923c-8.422,-16.849 -14.15,-36.533 -19.605,-54.546c-11.748,-38.798 -27.5,-76.496 -39.468,-115.219c-6.039,-19.526 -13.006,-38.783 -18.755,-58.399c-5.62,-19.171 -15.788,-30.992 5.365,-38.421c12.552,-4.405 21.576,-2.022 32.859,-2.602c2.631,-0.137 4.606,-6.61 8.498,-7.373c5.634,-1.111 18.336,-4.946 23.569,-4.276c17.204,2.204 -4.315,22.25 -9.523,24.275c-9.136,3.545 -36.568,4.126 -34.486,18.699c4.881,34.16 23.028,67.538 31.529,101.1c9.068,35.83 22.809,69.463 34.995,104.233c5.154,14.655 12.939,32.189 13.706,47.819c0.204,4.222 -2.86,28.974 -11.078,21.931c2.042,1.688 1.989,1.588 -0.151,-0.298m22.824,-48.335c-14.874,-4.96 -21.251,-34.583 0.519,-23.085c9.86,5.208 16.039,29.426 -1.183,22.895c0.85,0.323 6.839,2.437 0.664,0.19m-328.935,-33.565c-14.727,-22.103 35.185,-50.124 48.167,-33.902c14.609,18.265 -37.855,39.06 -48.167,33.902m140.3,-29.536c-4.975,-4.975 2.788,-13.172 7.906,-7.767c4.505,4.767 -5.706,11.064 -7.906,7.767m193.333,-12.082c-14.612,-7.305 5.541,-35.082 13.14,-20.573c7.544,14.419 -8.122,23.583 -13.14,20.573m-373.237,-20.14c-9.903,-9.902 10.573,-36.5 15.028,-20.651c2.129,7.587 -4.885,30.809 -15.028,20.651m400.76,-3.358c-11.595,-3.86 -34.128,-4.971 -43.493,-11.82c-8.165,-5.975 -7.319,-18.501 -1.595,-25.924c7.458,-9.684 15.888,-4.882 25.64,-3.003c18.806,3.623 39.372,-3.534 38.106,24.293c-0.67,14.877 -11.97,17.411 -18.658,16.454m-418.215,-26.848c-23.766,-2.972 -18.666,-29.064 -2.587,-38.372c10.967,-6.347 40.647,-4.713 52.575,-1.347c19.429,5.48 19.698,27.328 2.035,35.353c-9.512,4.326 -20.321,-2.491 -30.59,0.735c-7.369,2.315 -14.537,5.394 -22.476,3.631c3.022,0.634 3.369,0.634 1.043,0m75.184,-10.742c-4.699,-2.347 -0.011,-21.594 -8.071,-27.619c-11.979,-8.957 -3.972,-27.486 -16.552,-37.594c-8.939,-7.179 -8.716,-24.21 -15.329,-33.593c-8.681,-12.315 11.566,-17.588 21.619,-17.867c11.111,-0.312 35.318,2.437 43.078,11.921c5.756,7.035 24.214,19.314 10.16,24.196c-14.461,5.785 -22.83,12.91 -15.49,28.519c6.061,12.884 20.566,4.068 25.899,9.408c8.91,8.906 -33.422,48.564 -45.314,42.629m292.685,-11.415c-22.641,-16.971 -3.118,-59.231 9.089,-76.858c7.043,-10.175 18.817,-16.637 30.235,-19.637c2.879,-0.756 42.21,-1.104 35.659,9.071c-7.172,11.143 -19.645,18.082 -26.605,30.096c-8.118,14.018 -6.365,21.222 -20.856,28.465c-6.254,6.254 -17.451,8.623 -17.451,19.469c1.444,11.612 -8.706,10.422 -10.071,9.397m35.576,0.671c-5.115,-1.022 -16.498,-4.835 -14.728,-12.219c1.735,-7.236 17.365,-4.01 22.831,-4.075c21.931,-0.269 9.767,19.86 -9.989,15.917c0.631,0.126 6.925,1.384 1.886,0.377m-378.607,-29.537c-4.788,-1.914 -16.247,0.305 -12.806,-8.168c4.373,-10.767 12.634,-11.089 22.881,-10.828c23.537,0.595 11.53,26.852 -10.075,18.996c-3.358,-1.344 7.383,2.685 0,0m296.713,0.67c-2.494,-1.243 5.179,-6.44 6.713,-4.025c1.821,2.871 -5.791,4.95 -6.713,4.025m-7.386,-10.738c-3.445,-6.892 12.755,-7.863 12.755,-6.863c0,8.175 -12.254,7.609 -12.755,6.863m-205.972,-10.996c-6.161,-4.107 3.499,-11.748 6.774,-9.333c5.007,3.688 -0.476,13.534 -6.774,9.333m203.287,-10.487c0.412,-1.333 7.383,-6.204 7.383,-2.684c0,2.566 -6.25,6.659 -7.383,2.684m3.355,-14.096c-18.433,-4.609 17.931,-22.709 12.053,-4.039c-1.688,5.361 -13.05,3.788 -12.053,4.039m161.112,-42.292c-16.487,-16.491 0.083,-34.329 18.967,-26.616c32.275,13.189 -12.913,34.178 -18.967,26.616c-1.34,-1.341 2.688,3.358 0,0m-165.141,-8.054c0,-0.093 -11.931,-1.186 -13.354,-4.448c-5.505,-12.641 -7.218,-15.888 -22.103,-14.949c-19.111,1.201 -34.056,5.677 -14.093,-14.297c11.752,-11.756 37.608,-35.379 52.357,-11.985c6.394,10.171 10.143,26.171 9.254,38.195c-0.326,4.427 -8.62,10.914 -12.061,7.484m-415.53,-37.594c-19.02,0 -1.34,-27.64 11.118,-23.909c19.032,5.699 3.19,25.289 -11.501,23.974c1.516,0.133 3.136,0.075 4.638,0.193c-1.42,-0.086 -2.835,-0.172 -4.255,-0.258m955.923,-145.672c-0.226,-0.222 -0.448,-0.448 -0.67,-0.67c1.469,0.108 1.168,-0.068 1.34,1.34c-0.222,-0.222 -0.448,-0.444 -0.67,-0.67m-322.218,371.227c-42.016,-14.014 -71.689,-42.131 -57.191,-89.8c12.34,-40.564 54.89,-63.399 94.742,-48.604c80.75,29.974 35.834,153.099 -37.551,138.404m2.011,-52.36c27.859,-6.971 6.566,-56.152 -25.046,-39.655c-26.705,13.939 3.265,46.927 25.046,39.655m-779.37,307.451c-7.053,-7.053 128.157,-46.296 126.737,-39.88c-3.336,15.064 -49.474,17.211 -60.951,22.429c-8.716,3.735 -60.352,25.598 -65.786,17.451m-6.713,-14.1c-16.72,-12.537 33.142,-24.54 40.622,-28.146c8.125,-3.913 16.419,-7.677 25.279,-9.619c6.727,-1.47 8.716,8.523 15.096,9.412c17.849,2.483 23.612,-17.763 41.454,-20.419c6.516,-0.975 6.935,6.118 4.634,10.509c-3.161,6.035 -12.777,8.268 -18.383,10.014c-13.913,4.333 -28.583,5.275 -42.482,10.003c-11.254,3.835 -58.912,25.558 -66.22,18.246m-8.057,-19.465c0,-17.899 71.829,-22.899 71.829,-30.207c10.716,7.136 -33.063,19.559 -36.529,21.254c-5,2.444 -29.673,14.577 -35.3,8.953c0,-0.674 0.674,0.67 0,0m187.965,-13.429c-19.218,-9.588 39.521,-39.741 42.166,-20.071c2.079,15.49 -30.203,26.063 -42.166,20.071m-14.767,-2.011c-2.656,-3.979 -5.15,-15.075 -4.577,-20.236c0.48,-4.365 12.677,28.339 4.577,20.236m-18.128,-9.398c-3.581,-3.58 -1.563,-13.573 4.698,-9.397c6.455,3.222 -2.928,10.283 -4.698,9.397m-43.633,-8.057c-7.462,-4.974 11.121,-21.77 17.451,-15.44c12.161,12.161 -9.358,19.487 -17.451,15.44m71.829,-2.014c-12.369,-6.172 40.396,-45.583 43.378,-17.29c1.129,10.699 -36.318,19.648 -43.378,17.29m-17.455,-10.742c-1.043,-1.039 -6.48,-12.082 -3.358,-12.082c7.096,0 6.914,15.641 3.358,12.082m-16.11,-1.34c-3.344,-3.344 -2.488,-14.372 3.609,-10.068c7.695,5.434 -2.197,11.835 -3.609,10.068m28.196,-6.039c-22.619,-15.071 39.396,-32.766 41.816,-29.691c14.157,18.017 -34.25,29.691 -41.816,29.691m-39.612,-182.596c-97.416,0 -80.248,-140.937 10.319,-141.737c41.26,-0.362 73.241,27.024 73.08,68.923c-0.151,38.772 -38.64,87.731 -83.399,72.814c-1.34,0 2.018,0.674 0,0m39.612,-59.743c41.927,-20.967 -0.81,-59.679 -30.271,-39.648c-14.527,9.882 -2.194,31.956 9.551,39.049c6.466,3.907 13.996,3.957 20.72,0.599c7.046,-3.523 1.003,-0.502 0,0m327.587,359.141c-26.906,-13.458 12.207,-32.214 14.042,-14.738c1.115,10.591 -9.491,17.767 -14.042,14.738m-120.831,1.344c-16.939,-6.355 -3.523,-27.343 7.849,-16.498c9.258,8.835 1.581,18.412 -9.172,15.928c0.706,0.165 6.588,2.147 1.323,0.57m392.907,-356.976c-5.656,4.365 -11.032,-12.147 -1.857,-14.856c8.749,-2.574 10.846,13.3 1.857,14.856m-617.792,-24.992c-5.569,-5.566 7.394,-18.709 13.125,-7.964c5.807,10.888 -9.135,11.96 -13.125,7.964" style="fill:#fff;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/gophers/yellow.svg b/go.dev/testdata/golden/images/gophers/yellow.svg
new file mode 100644
index 0000000..5ecf2f2
--- /dev/null
+++ b/go.dev/testdata/golden/images/gophers/yellow.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 336 457" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M52.381,456.087c-26.133,-6.524 -7.261,-29.924 6.463,-37.55c-13.611,-13.991 -27.908,-30.805 -30.269,-51.058c-1.301,-11.157 -0.661,-22.777 -0.673,-33.981c-0.006,-6.132 2.557,-83.908 1.666,-84.078c-1.065,-0.205 -6.27,4.448 -6.609,4.668c-3.598,2.335 -7.992,4.084 -12.371,3.449c-5.51,-0.798 -11.214,-10.268 -10.532,-15.596c1.447,-11.312 20.588,-18.271 30.541,-16.728c-1.611,-31.317 -8.061,-61.913 -6.5,-93.43c0.497,-10.038 1.535,-20.048 3.061,-29.981c0.825,-5.365 4.521,-11.946 -0.669,-14.234c-15.227,-6.713 -24.238,-20.252 -21.065,-37.213c2.489,-13.307 12.991,-22.271 26.009,-24.761c8.489,-1.602 17.761,-0.45 25.739,2.786c5.762,0.555 5.415,-0.268 11.292,-3.915c26.483,-16.431 56.178,-20.706 86.558,-23.373c33.579,-2.948 68.534,-0.724 98.287,16.632c2.344,1.367 7.982,7.238 10.587,6.139c5.852,-2.468 11.611,-4.781 18.021,-5.251c15.813,-1.159 31.789,5.849 36.256,22.217c4.201,15.395 -2.116,31.11 -16.7,38.305c-7.064,3.532 -3.098,6.997 -1.463,14.256c2.386,10.596 3.793,21.426 4.667,32.244c2.418,29.91 0.153,60.045 1.4,89.996c0.429,10.324 23.102,6.417 28.322,17.828c2.772,5.842 -0.716,14.479 -5.847,18.26c-5.527,4.073 -20.903,-5.66 -21.062,-5.501c-1.915,1.906 0.642,16.007 0.78,18.496c0.426,8.214 0.685,16.437 0.843,24.66c0.266,13.967 0.532,28.064 -0.482,42.009c-2.234,30.735 -12.9,59.143 -32.451,82.809c8.919,4.622 18.191,14.445 18.85,24.914c0.419,6.653 -3.969,11.35 -9.77,13.886c-7.585,3.317 -12.666,-0.869 -17.291,-6.466c-4.565,-5.525 -11.347,-16.896 -19.437,-12.952c-13.324,6.496 -27.494,10.652 -42.06,13.3c-30.69,5.579 -63.794,6.347 -94.209,-1.272c-8.472,-2.122 -18.809,-8.714 -27.234,-7.119c-11.136,3.326 -19.873,20.928 -32.648,17.605c-0.891,-0.222 2.786,0.725 0,0" style="fill:#020203;fill-rule:nonzero;"/><g id="yellow"><path d="M224.534,106.6c54.497,-9.082 36.721,-91.861 -16.324,-82.677c-22.308,3.842 -38.69,24.231 -35.904,47.005c3.09,25.252 28.442,39.768 52.228,35.672c7.688,-1.281 -8.413,1.449 0,0m-104.406,3.956c20.832,-5.316 35.544,-26.306 31.672,-47.766c-4.39,-24.327 -30.321,-39.928 -54.054,-33.577c-21.221,5.679 -34.129,25.645 -31.68,47.143c2.863,25.136 30.999,40.022 54.062,34.2c18.775,-4.791 -11.477,2.897 0,0m38.33,54.376c2.897,-1.242 5.188,-3.643 6.63,-6.407c2.315,7.66 13.583,9.058 18.219,2.618c3.749,-5.208 1.032,-16.844 0.334,-22.953c14.436,0.249 22.433,-12.833 9.909,-23.699c-6.135,-5.323 -10.045,-4.155 -12.011,-11.3c-1.659,-6.032 -7.648,-8.349 -13.18,-8.437c-6.57,-0.104 -12.375,-0.46 -18.103,3.122c-5.618,3.514 -3.839,9.926 -9.235,12.624c-6.869,3.598 -13.14,9.92 -10.88,18.267c0.905,3.34 3.101,6.939 6.589,8.085c0.887,0.311 10.14,0.858 10.14,0.725c0,7.029 -6.156,34.602 11.588,27.355c2.341,-1.003 -3.955,1.615 0,0m-17.382,280.459c-16.528,-1.365 -34.384,-4.675 -49.361,-12.091c-5.579,-2.746 -8.335,-7.946 -12.961,-11.831c-5.418,-4.552 -12.558,-3.327 -17.737,-7.779c-15.606,-13.56 -27.064,-33.005 -27.737,-53.824c-1.972,-61.048 4.588,-121.69 -2.662,-182.398c-3.891,-32.584 -3.03,-68.523 6.938,-99.993c11.048,-34.882 35.481,-54.693 69.895,-64.423c57.218,-16.176 143.255,-16.739 174.408,43.687c16.88,32.743 18.221,67.759 18.628,103.599c0.526,46.193 3.519,92.323 3.959,138.484c0.372,39.04 -3.488,84.219 -33.351,112.85c-32.796,31.443 -86.443,37.273 -130.019,33.719c-17.549,-1.449 8.189,0.668 0,0" style="fill:#f0f373;fill-rule:nonzero;"/><path d="M25.639,81.753c-14.773,-7.192 -21.391,-26.695 -11.172,-40.625c9.588,-13.07 29.109,-13.712 42.761,-7.344c-3.972,4.722 -7.835,9.701 -11.198,14.875c-3.657,2.033 -8.552,-2.017 -13.019,2.053c-8.558,7.802 4.387,12.593 2.818,17.363c-0.815,2.479 -1.618,4.963 -2.446,7.438c-2.092,6.6 -1.197,9.364 -7.744,6.24c-10.53,-5.126 2.451,1.17 0,0" style="fill:#f0f373;fill-rule:nonzero;"/><path d="M294.231,73.73c-1.022,-2.961 -5.811,-10.524 -5.349,-13.761c0.806,-5.638 10.654,-7.84 4.279,-15.825c-4.235,-5.305 -12.504,0.493 -14.39,-2.082c-2.188,-2.988 -11.561,-11.012 -11.561,-14.072c0,-3.702 20.073,-4.908 22.469,-4.607c9.4,1.179 18.258,5.977 22.332,14.849c3.594,7.825 3.595,17.86 -0.665,25.421c-2.193,3.893 -14.661,17.71 -17.115,10.077c-0.558,-1.616 0.501,1.56 0,0" style="fill:#f0f373;fill-rule:nonzero;"/></g><path d="M51.323,452.912c-9.31,-3.438 3.843,-13.231 5.376,-17.689c1.593,-4.634 -6.425,4.261 -5.93,3.563c-1.849,2.605 -5.208,6.681 -5.296,10.114c0.153,-3.673 -5.758,-4.689 -3.033,-11.369c2.651,-6.5 8.645,-11.428 14.582,-14.84c6.113,-3.513 14.819,-3.913 20.224,1.301c3.123,3.013 10.011,7.73 10.011,10.869c0,-0.101 -11.124,5.344 -11.879,5.893c-6.937,5.039 -14.267,15.653 -24.055,12.158c-3.622,-1.337 3.12,1.114 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M273.784,448.956c-6.461,-6.231 -10.368,-15.649 -19.232,-18.55c-1.22,-0.399 12.65,-11.697 15.054,-12.561c13.92,-5.002 30.615,19.599 18.886,30.665c-0.798,-3.839 -2.389,-7.399 -4.191,-10.867c-1.094,-2.106 -7.801,-8.01 -5.109,-3.437c2.606,4.427 6.96,9.748 6.96,15.195c0,4.741 -10.753,1.032 -12.368,-0.445c-1.56,-1.504 2.618,2.395 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M11.209,255.075c-13.001,-1.857 2.011,-9.566 1.56,-11.254c-0.625,-2.374 -15.536,9.658 -9.306,-4.768c3.079,-7.129 17.837,-11.444 24.962,-11.444c3.181,0 3.019,14.773 1.504,17.494c-2.868,5.152 -12.817,10.667 -18.72,9.972c-1.95,-0.278 0.948,0.112 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M320.75,250.34c-15.274,-3.486 -14.173,-15.208 -14.541,-27.188c7.319,0.156 19.296,3.57 24.337,9.139c1.218,1.345 4.584,10.909 0.568,11.064c-1.464,0.057 -7.803,-6.478 -9.027,-5.049c-1.709,3.434 2.984,3.624 5.217,5.482c5,4.163 -3.176,8.55 -6.554,6.552c-2.062,-1.221 0,0 0,0Z" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M182.86,135.627c-6.49,-1.01 -12.941,-6.532 -19.647,-5.257c-8.177,1.555 -17.344,6.727 -25.794,4.084c-13.292,-4.16 0.278,-27.611 11.791,-21.669c7.398,3.899 17.119,4.893 24.651,0.836c6.672,-3.594 6.678,-4.542 13.66,-0.422c12.359,7.292 13.029,25.505 -4.661,22.428c-2.507,-0.39 3.845,0.668 0,0" style="fill:#dcc8bb;fill-rule:nonzero;"/><path d="M150.993,162.313c-5.86,-2.817 -2.676,-17.588 -1.988,-22.08c0.879,-5.74 10.375,-6.567 15.192,-7.336c-0.25,6.874 2.23,37.135 -13.204,29.416c-2.897,-1.393 1.782,0.892 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M169.977,161.902c-5.711,-3.74 -3.775,-16.52 -3.515,-21.788c0.488,-9.87 2.945,-6.108 11.12,-3.181c10.261,3.673 6.975,34.401 -7.605,24.969c-2.399,-1.571 3.418,2.211 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M91.714,70.499c-3.348,-3.349 1.64,-8.36 5.063,-5.112c3.382,3.208 -1.7,8.474 -5.063,5.112c-2.228,-2.229 2.285,2.284 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M199.24,70.053c-3.45,-2.76 0.531,-7.449 4.043,-5.721c4.593,2.26 0.148,9.189 -4.043,5.721c-1.393,-1.114 1.616,1.337 0,0" style="fill:#fffbfa;fill-rule:nonzero;"/><path d="M94.055,76.126c14.447,-8.127 4.912,-29.632 -10.914,-25.935c-20.653,4.825 -7.832,36.442 10.914,25.935c3.565,-2.006 -12.424,6.964 0,0m7.131,32.536c-42.001,-8.4 -43.918,-68.508 -0.521,-77.366c23.809,-4.86 48.5,12.239 48.977,37.264c0.481,25.234 -23.269,45.516 -48.456,40.102c-4.179,-0.836 5.961,1.281 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/><path d="M199.574,76.516c17.55,-7.02 5.143,-31.913 -11.041,-26.016c-15.545,5.664 -6.143,32.825 11.041,26.016c6.129,-2.452 -5.905,2.339 0,0m9.137,27.967c-52.169,-9.626 -42.535,-83.094 12.087,-78.249c19.775,1.753 35.43,21.663 35.158,43.875c-3.058,23.899 -23.86,37.298 -47.245,34.374c-9.304,-1.114 12.926,1.616 0,0" style="fill:#fef6f1;fill-rule:nonzero;"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/icons/arrow-forward.svg b/go.dev/testdata/golden/images/icons/arrow-forward.svg
new file mode 100644
index 0000000..25d6978
--- /dev/null
+++ b/go.dev/testdata/golden/images/icons/arrow-forward.svg
@@ -0,0 +1,8 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="2" width="7" height="12">
+<path d="M5.06 12.3934L6 13.3334L11.3333 8.00002L6 2.66669L5.06 3.60669L9.44666 8.00002" fill="white"/>
+</mask>
+<g mask="url(#mask0)">
+<rect width="16" height="16" fill="#5F6368"/>
+</g>
+</svg>
diff --git a/go.dev/testdata/golden/images/icons/chevron-down.svg b/go.dev/testdata/golden/images/icons/chevron-down.svg
new file mode 100644
index 0000000..8662fb7
--- /dev/null
+++ b/go.dev/testdata/golden/images/icons/chevron-down.svg
@@ -0,0 +1,3 @@
+<svg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M1.0575 0.692505L0 1.75L6 7.75L12 1.75L10.9425 0.692505L6 5.6275" fill="#5F6368"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/icons/code.svg b/go.dev/testdata/golden/images/icons/code.svg
new file mode 100644
index 0000000..1cdcc64
--- /dev/null
+++ b/go.dev/testdata/golden/images/icons/code.svg
@@ -0,0 +1,9 @@
+<svg width="36" height="24" viewBox="0 0 36 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7.76465 11.8273L14.8235 8.47058V9.78368L9.22436 12.3377V12.3669L14.8235 14.9359V16.2353L7.76465 12.8786V11.8273Z" fill="#007D9C"/>
+<path d="M16.2354 15.5294L19.3674 5.64709H20.4706L17.3391 15.5294H16.2354Z" fill="#007D9C"/>
+<path d="M28.2353 12.9078L21.1765 16.2353V14.9359L26.8657 12.3669V12.3383L21.1765 9.76937V8.47058L28.2353 11.7981V12.9078Z" fill="#007D9C"/>
+<path d="M34.2003 24H1.80031L0 22.5883H36L34.2003 24Z" fill="#007D9C"/>
+<path d="M33.8818 21.8824H32.755V1.44423C32.755 1.2637 32.6007 1.11095 32.417 1.11095H3.5825C3.3994 1.11095 3.24446 1.26315 3.24446 1.44423V21.8824H2.11768V1.44423C2.11768 0.647683 2.77459 0 3.5825 0H32.4176C33.2255 0 33.8824 0.647683 33.8824 1.44423V21.8824H33.8818Z" fill="#007D9C"/>
+<path d="M14.5089 21.8823H0V22.5882H15.5294C15.0095 22.5882 14.5935 22.2786 14.5089 21.8823Z" fill="#007D9C"/>
+<path d="M21.4905 21.8823C21.4059 22.2786 20.9905 22.5882 20.4706 22.5882H36V21.8823H21.4905Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/icons/command-folder.svg b/go.dev/testdata/golden/images/icons/command-folder.svg
new file mode 100644
index 0000000..78c3558
--- /dev/null
+++ b/go.dev/testdata/golden/images/icons/command-folder.svg
@@ -0,0 +1,7 @@
+<svg width="36" height="35" viewBox="0 0 36 35" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M36 6.44739H0V35H36V6.44739ZM1.63636 8.12695H34.3636V33.3205H1.63636V8.12695Z" fill="#007D9C"/>
+<rect x="5.40002" y="3.6842" width="26.1" height="1.84211" fill="#007D9C"/>
+<rect x="8.09998" width="19.8" height="1.84211" fill="#007D9C"/>
+<path d="M12.5021 24.8684C12.2648 24.8684 12.067 24.7841 11.9088 24.5732C11.6319 24.2359 11.6715 23.6878 12.0274 23.3926L16.0223 19.8085L11.9879 16.2244C11.6715 15.9292 11.5923 15.3811 11.8692 15.0438C12.1461 14.7064 12.6603 14.6221 12.9767 14.9173L17.7231 19.1338C17.9208 19.3025 18 19.5133 18 19.7663C18 20.0193 17.8813 20.2723 17.7231 20.3988L12.9767 24.6154C12.858 24.7841 12.6998 24.8684 12.5021 24.8684Z" fill="#007D9C"/>
+<path d="M23.5125 26.7105H18.7875C18.3544 26.7105 18 26.296 18 25.7895C18 25.2829 18.3544 24.8684 18.7875 24.8684H23.5125C23.9456 24.8684 24.3 25.2829 24.3 25.7895C24.3 26.296 23.9456 26.7105 23.5125 26.7105Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/icons/gear.svg b/go.dev/testdata/golden/images/icons/gear.svg
new file mode 100644
index 0000000..a509f45
--- /dev/null
+++ b/go.dev/testdata/golden/images/icons/gear.svg
@@ -0,0 +1,14 @@
+<svg width="36" height="36" fill="none" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M18 13a5 5 0 100 10 5 5 0 000-10zm0 9c-2 0-4-2-4-4s2-4 4-4 4 2 4 4-2 4-4 4z"
+    fill="#007D9C"
+  />
+  <path
+    d="M31 22l-1-1-2-1a11 11 0 000-4l1-1c2-1 2-2 1-3l-1-2-2-1h-1l-1 1-4-2V6l-2-2h-2c-2 0-3 1-3 2v2l-4 2-1-1H8l-2 1-1 2v2l1 1 1 1a11 11 0 000 4l-1 1c-1 1-2 2-1 3l1 2 2 1h1l1-1 5 2v2c0 1 0 2 2 2h2l2-2v-2l4-2 1 1h2l1-1 1-2 1-2zm-2 1l-1 2v1h-1l-2-2v1l-5 2v3l-1 1h-2l-1-1v-2l-1-1-4-2-2 1H8l-1-1-1-2 1-1 1-1a9 9 0 010-5l1-1-3-1v-1l1-2 1-1h1l2 2v-1l4-2V6l2-1h2l1 1v3l4 2 1 1 2-2 1 1 1 2v1l-2 1v6l2 1 1 1h-1z"
+    fill="#007D9C"
+  />
+  <path
+    d="M8 4c5-4 12-4 18-1l-2 1 6 1-3-5v2C21-1 13-1 7 3v1h1zM3 9l1 2 1-6-5 3 2 1c-3 6-3 13 1 19h1v-1C0 22 0 15 3 9zM27 32c-5 4-12 4-18 1l2-1-6-1 3 5 1-2 9 2c3 0 7-1 10-3v-1h-1zM33 7h-1v1c4 5 4 12 1 18l-1-2-1 6 5-3h-2c3-6 3-14-1-20z"
+    fill="#007D9C"
+  />
+</svg>
diff --git a/go.dev/testdata/golden/images/icons/package.svg b/go.dev/testdata/golden/images/icons/package.svg
new file mode 100644
index 0000000..087fa09
--- /dev/null
+++ b/go.dev/testdata/golden/images/icons/package.svg
@@ -0,0 +1,10 @@
+<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="12" height="12">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6816 1.49605L10.7568 0.37836C10.5772 0.152162 10.3044 0.0124512 9.99173 0.0124512H2.00826C1.69557 0.0124512 1.4228 0.152162 1.23652 0.37836L0.318423 1.49605C0.125489 1.72224 0.0123901 2.02162 0.0123901 2.34096V10.6571C0.0123901 11.3889 0.611151 11.9877 1.34297 11.9877H10.657C11.3888 11.9877 11.9876 11.3889 11.9876 10.6571V2.34096C11.9876 2.02162 11.8745 1.72224 11.6816 1.49605ZM2.16793 1.34303H9.83206L10.3842 2.00832H1.62239L2.16793 1.34303ZM1.34297 3.3389V10.6571H10.657V3.3389H1.34297Z" fill="white"/>
+</mask>
+<g mask="url(#mask0)">
+<rect x="-1.98346" y="-1.98352" width="15.9669" height="15.9669" fill="#80868B"/>
+</g>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.14288 2.0083H6.85717V7.71432H5.14288V2.0083Z" fill="#007D9C"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.6539 0.828125H6.30011L6.85717 2.00821H5.14288L5.6539 0.828125Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/icons/sphere.svg b/go.dev/testdata/golden/images/icons/sphere.svg
new file mode 100644
index 0000000..91c18b7
--- /dev/null
+++ b/go.dev/testdata/golden/images/icons/sphere.svg
@@ -0,0 +1,3 @@
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M35.9804 17.2372C35.9708 17.0072 35.9548 16.7792 35.9364 16.5516V16.5444H35.936C35.2328 7.7772 28.2225 0.7676 19.455 0.0636H19.453C19.2234 0.0452 18.993 0.0292 18.761 0.0192C18.5094 0.0072 18.257 0 18.0026 0H17.9998H17.997C17.7426 0 17.4898 0.0076 17.2386 0.0196C17.0062 0.0292 16.7754 0.0456 16.5454 0.0644H16.545C7.54745 0.79 0.398413 8.1508 0.0192006 17.2364C0.00760025 17.4876 0 17.7404 0 17.9948V17.9976V18.0008V18.0092C0 18.2632 0.00800027 18.5156 0.0200007 18.7668C0.406014 27.852 7.54985 35.2084 16.5446 35.9356L16.5468 35.9357L16.551 35.936C16.7794 35.9544 17.009 35.9708 17.2402 35.9804C17.491 35.992 17.743 36 17.997 36H17.9998H18.0026C18.2578 36 18.511 35.9924 18.7626 35.9808C18.9934 35.9712 19.2218 35.9548 19.4506 35.9368C19.4522 35.9364 19.4538 35.9364 19.455 35.9364C28.4469 35.2136 35.5936 27.8548 35.98 18.7672C35.992 18.516 36 18.2636 36 18.0092V18.0008V17.9976V17.9948C35.9996 17.7408 35.9924 17.4884 35.9804 17.2372ZM12.8064 2.312C11.4508 3.62 10.2975 5.4372 9.41471 7.6184C8.54548 7.7116 7.86586 8.4388 7.86586 9.3332C7.86586 9.33938 7.86677 9.34544 7.86768 9.35152C7.86848 9.35685 7.86928 9.36218 7.86946 9.3676C5.56059 10.2844 3.63172 11.5036 2.26488 12.9304C3.88053 7.9284 7.82186 3.9676 12.8064 2.312ZM7.59265 16.5104C7.68786 14.442 7.95987 12.476 8.41348 10.6796C4.95817 12.0228 2.49888 14.07 1.73446 16.4356C2.10007 16.608 2.39368 16.9024 2.56529 17.2684H6.89983C7.04904 16.95 7.29144 16.6876 7.59265 16.5104ZM2.56449 18.7328H6.90023C7.04943 19.0508 7.29184 19.3124 7.59265 19.4896C7.68426 21.48 7.94386 23.3716 8.36868 25.114C8.33873 25.1442 8.31251 25.1782 8.2863 25.2122L8.28622 25.2123L8.26842 25.2352L8.25548 25.2516C4.88416 23.9076 2.48648 21.8916 1.73406 19.5644C2.09927 19.392 2.39288 19.098 2.56449 18.7328ZM7.90666 26.7008C5.59459 25.8048 3.67852 24.6064 2.31328 23.1912C3.95533 28.1356 7.86426 32.0448 12.806 33.6864C11.3796 32.3084 10.1715 30.3708 9.27471 28.034C8.59269 27.9048 8.05267 27.3768 7.90666 26.7008ZM17.2678 33.4344C16.9022 33.606 16.6078 33.9 16.4353 34.2652C14.0885 33.5056 12.0544 31.0724 10.7084 27.6556C10.7165 27.6487 10.7248 27.6421 10.7331 27.6355L10.7331 27.6355C10.7459 27.6253 10.7586 27.6152 10.7708 27.604C12.5032 28.0336 14.3857 28.2976 16.3661 28.3972C16.5486 28.7876 16.8686 29.1004 17.2678 29.2668V33.4344ZM16.3633 26.9416C16.5454 26.5484 16.8666 26.234 17.2678 26.0668V19.6C16.8694 19.434 16.5502 19.122 16.3677 18.7328H10.0315C9.83793 19.1464 9.48752 19.4664 9.0551 19.6236C9.1483 21.3832 9.38871 23.0612 9.75752 24.6164C10.6028 24.694 11.2676 25.3724 11.3216 26.2248C12.8904 26.6012 14.5861 26.8472 16.3633 26.9416ZM17.2678 16.4C16.869 16.566 16.5494 16.8784 16.3669 17.2684H10.0319C9.83873 16.8548 9.48792 16.5336 9.0551 16.3764C9.15471 14.4876 9.42311 12.692 9.83993 11.0424C10.5312 10.9456 11.0864 10.446 11.2652 9.7848C12.9284 9.3808 14.7381 9.1276 16.6354 9.0432C16.7954 9.2772 17.015 9.464 17.2678 9.5964V16.4ZM16.4085 7.5888C16.541 7.1308 16.8534 6.754 17.2678 6.5372H17.2674V2.566C16.9014 2.3944 16.6074 2.1004 16.4349 1.7348C14.1453 2.4756 12.154 4.8104 10.81 8.0956C10.8932 8.1772 10.9692 8.2656 11.0344 8.362C12.7128 7.9508 14.5185 7.6844 16.4085 7.5888ZM33.7347 12.9304C32.3675 11.5012 30.4402 10.2856 28.1297 9.3664C28.1299 9.36117 28.1307 9.35604 28.1315 9.35091L28.1315 9.35088C28.1324 9.34502 28.1333 9.33917 28.1333 9.3332C28.1333 8.4176 27.4217 7.676 26.5221 7.6124C25.6181 5.4196 24.444 3.58 23.0704 2.2664C28.1149 3.8964 32.1047 7.8856 33.7347 12.9304ZM33.4343 17.2684C33.6059 16.9024 33.8995 16.6084 34.2647 16.436C33.4967 14.0612 31.023 12.006 27.5457 10.6624C28.0077 12.4356 28.3037 14.3612 28.4077 16.3824C28.8322 16.542 29.175 16.8608 29.3658 17.2684H33.4343ZM18.7318 2.566C19.0978 2.3944 19.3918 2.1004 19.5643 1.7348C21.8539 2.4756 23.8428 4.8104 25.1892 8.0956C25.1064 8.1768 25.0308 8.2652 24.9648 8.362C23.3256 7.9612 21.5671 7.6988 19.7271 7.5972C19.5827 7.086 19.2162 6.6688 18.7318 6.4668V2.566ZM19.4935 9.0484C19.3054 9.3212 19.0414 9.538 18.7318 9.6668V16.4708C19.0674 16.6464 19.3382 16.9248 19.4995 17.2688H26.2337C26.3865 16.9424 26.6377 16.6756 26.9493 16.4988C26.8545 14.566 26.5837 12.7268 26.1593 11.0424C25.4681 10.9452 24.9116 10.4448 24.7332 9.7832C23.1076 9.39 21.3435 9.1384 19.4935 9.0484ZM18.7318 19.5296C19.067 19.3544 19.3374 19.076 19.4986 18.7328H26.2345C26.3873 19.0584 26.6385 19.3244 26.9493 19.5016C26.8613 21.3048 26.6197 23.0248 26.2425 24.6164C25.3964 24.6936 24.7308 25.3732 24.6776 26.226C23.07 26.6104 21.3295 26.8572 19.5051 26.9468C19.345 26.5972 19.071 26.3148 18.7314 26.1372V19.5296H18.7318ZM18.7318 33.434C19.0978 33.6056 19.3918 33.8996 19.5643 34.2652C21.9115 33.5056 23.9452 31.0724 25.2912 27.6556C25.2843 27.6499 25.2773 27.6443 25.2702 27.6387C25.2561 27.6275 25.2419 27.6163 25.2288 27.604C23.4564 28.044 21.5271 28.3108 19.4958 28.404C19.335 28.7452 19.0654 29.0212 18.7318 29.1964V33.434ZM23.0732 33.732C24.518 32.348 25.7481 30.3892 26.6673 28.04C27.3757 27.9296 27.9417 27.396 28.0921 26.702C30.4022 25.806 32.3195 24.6068 33.6859 23.1912C32.0331 28.1784 28.0721 32.1164 23.0732 33.732ZM27.733 25.2377C27.7369 25.2425 27.7407 25.2472 27.7445 25.252C31.1158 23.9072 33.5119 21.8904 34.2651 19.564C33.9003 19.3916 33.6067 19.098 33.4351 18.7328H29.365C29.1742 19.14 28.8318 19.4584 28.4077 19.6176C28.3085 21.546 28.0317 23.3848 27.6045 25.0912C27.6517 25.1366 27.6922 25.1869 27.733 25.2377Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/learn/clis.png b/go.dev/testdata/golden/images/learn/clis.png
new file mode 100644
index 0000000..267ff73
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/clis.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/codecademy.png b/go.dev/testdata/golden/images/learn/codecademy.png
new file mode 100644
index 0000000..8de4dbf
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/codecademy.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/codelabs.png b/go.dev/testdata/golden/images/learn/codelabs.png
new file mode 100644
index 0000000..c8dabae
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/codelabs.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/codelabs_2.png b/go.dev/testdata/golden/images/learn/codelabs_2.png
new file mode 100644
index 0000000..7dd71cb
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/codelabs_2.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/commandline.svg b/go.dev/testdata/golden/images/learn/commandline.svg
new file mode 100644
index 0000000..fd2dcb6
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/commandline.svg
@@ -0,0 +1 @@
+<svg height='100px' width='100px'  fill="#007d9c" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" viewBox="-949.5 1000.5 100 100" enable-background="new -949.5 1000.5 100 100" xml:space="preserve"><path d="M-944.261,1015.331v70.338h89.521v-70.338H-944.261z M-925.077,1068.812l-6.394-6.396l12.788-12.788l-12.788-12.788  l6.394-6.395l19.183,19.183L-925.077,1068.812z M-870.436,1067.648H-899.5v-8.574h29.064V1067.648z"></path></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/learn/concurrency-in-go.png b/go.dev/testdata/golden/images/learn/concurrency-in-go.png
new file mode 100644
index 0000000..d2c140c
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/concurrency-in-go.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/coursera.png b/go.dev/testdata/golden/images/learn/coursera.png
new file mode 100644
index 0000000..c22729d
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/coursera.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/earth.png b/go.dev/testdata/golden/images/learn/earth.png
new file mode 100644
index 0000000..c39758e
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/earth.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/edureka.png b/go.dev/testdata/golden/images/learn/edureka.png
new file mode 100644
index 0000000..a047f5e
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/edureka.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/exercism.png b/go.dev/testdata/golden/images/learn/exercism.png
new file mode 100644
index 0000000..a2fd1c3
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/exercism.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/get-programming-with-go.jpeg b/go.dev/testdata/golden/images/learn/get-programming-with-go.jpeg
new file mode 100644
index 0000000..c73d3e2
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/get-programming-with-go.jpeg
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/go-programming-blueprints.png b/go.dev/testdata/golden/images/learn/go-programming-blueprints.png
new file mode 100644
index 0000000..7ad6838
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/go-programming-blueprints.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/go-programming-language-book.png b/go.dev/testdata/golden/images/learn/go-programming-language-book.png
new file mode 100644
index 0000000..1f5bd3a
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/go-programming-language-book.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/go_cdk_logo.png b/go.dev/testdata/golden/images/learn/go_cdk_logo.png
new file mode 100644
index 0000000..96155ec
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/go_cdk_logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/gobyexample.png b/go.dev/testdata/golden/images/learn/gobyexample.png
new file mode 100644
index 0000000..d4f2538
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/gobyexample.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/gohelloworld.png b/go.dev/testdata/golden/images/learn/gohelloworld.png
new file mode 100644
index 0000000..df131fe
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/gohelloworld.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/gophercises.png b/go.dev/testdata/golden/images/learn/gophercises.png
new file mode 100644
index 0000000..5adb476
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/gophercises.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/helloworld.png b/go.dev/testdata/golden/images/learn/helloworld.png
new file mode 100644
index 0000000..05fd362
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/helloworld.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/install.png b/go.dev/testdata/golden/images/learn/install.png
new file mode 100644
index 0000000..600cb2f
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/install.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/introducing-go-book.png b/go.dev/testdata/golden/images/learn/introducing-go-book.png
new file mode 100644
index 0000000..a24626d
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/introducing-go-book.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/qwiklabs.png b/go.dev/testdata/golden/images/learn/qwiklabs.png
new file mode 100644
index 0000000..dce0230
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/qwiklabs.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/star-rating.png b/go.dev/testdata/golden/images/learn/star-rating.png
new file mode 100644
index 0000000..4cd252b
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/star-rating.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/tour.png b/go.dev/testdata/golden/images/learn/tour.png
new file mode 100644
index 0000000..912f445
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/tour.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/learn/web-dev.png b/go.dev/testdata/golden/images/learn/web-dev.png
new file mode 100644
index 0000000..989357a
--- /dev/null
+++ b/go.dev/testdata/golden/images/learn/web-dev.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/american-express.png b/go.dev/testdata/golden/images/logos/american-express.png
new file mode 100644
index 0000000..242d993
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/american-express.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/american-express.svg b/go.dev/testdata/golden/images/logos/american-express.svg
new file mode 100644
index 0000000..fd3a528
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/american-express.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 997.517"><path d="M0 0h997.517v538.49l-49.375 77.147 49.375 68.661v313.219H0v-507.63l30.859-35.488L0 420.454z" fill="#016fd0"/><path d="M193.64 695.099v-156.61h165.82l17.791 23.193 18.38-23.193h601.886V684.3s-15.74 10.643-33.945 10.8H630.295l-20.058-24.687v24.687h-65.73v-42.142s-8.979 5.883-28.39 5.883h-22.373v36.259h-99.52l-17.766-23.69-18.038 23.69zM0 420.454l37.393-87.177h64.668l21.22 48.833v-48.833h80.388l12.633 35.295 12.247-35.295h360.858v17.744s18.97-17.744 50.146-17.744l117.085.41 20.854 48.193v-48.603h67.273l18.515 27.684v-27.684h67.89v156.61h-67.89l-17.744-27.774v27.774h-98.838l-9.94-24.688h-26.57l-9.779 24.688h-67.028c-26.826 0-43.974-17.382-43.974-17.382v17.382H488.343l-20.058-24.688v24.688H92.481l-9.933-24.688H56.06L46.2 489.887H0z" fill="#fff"/><path d="M50.628 352.584L.193 469.848h32.836l9.306-23.482h54.1l9.257 23.482h33.56L88.863 352.584H50.628zm18.66 27.29l16.49 41.034H52.75l16.538-41.033zM142.723 469.828V352.564l46.661.173 27.14 75.605 26.49-75.778h46.289v117.264h-29.316v-86.405l-31.076 86.405h-25.71l-31.162-86.405v86.405zM309.361 469.828V352.564h95.663v26.23h-66.038v20.059h64.495v24.687h-64.495v20.83h66.038v25.458zM421.997 352.584v117.264h29.316v-41.66h12.343l35.15 41.66h35.826l-38.574-43.202c15.831-1.336 32.161-14.924 32.161-36.019 0-24.676-19.368-38.043-40.984-38.043h-65.238zm29.316 26.23h33.51c8.04 0 13.887 6.288 13.887 12.344 0 7.79-7.577 12.343-13.452 12.343h-33.945v-24.687zM570.12 469.828h-29.933V352.564h29.933zM641.095 469.828h-6.46c-31.262 0-50.243-24.629-50.243-58.15 0-34.348 18.768-59.114 58.246-59.114h32.402v27.773h-33.586c-16.026 0-27.36 12.507-27.36 31.63 0 22.71 12.96 32.248 31.63 32.248h7.715zM704.887 352.584l-50.435 117.264h32.836l9.305-23.482h54.1l9.258 23.482h33.559l-50.387-117.264h-38.236zm18.66 27.29l16.49 41.034h-33.029l16.539-41.033zM796.933 469.828V352.564h37.272l47.59 73.676v-73.676h29.317v117.264h-36.067l-48.796-75.604v75.604zM213.699 675.04V557.777h95.662v26.23h-66.038v20.059h64.495v24.687h-64.495v20.83h66.038v25.459zM682.447 675.04V557.777h95.662v26.23h-66.038v20.059h64.187v24.687H712.07v20.83h66.038v25.459zM313.074 675.04l46.578-57.908-47.687-59.356H348.9l28.4 36.694 28.497-36.694h35.488l-47.06 58.633 46.663 58.632H403.96l-27.576-36.115-26.905 36.115zM444.37 557.796V675.06h30.087v-37.03h30.859c26.111 0 45.903-13.853 45.903-40.792 0-22.317-15.523-39.442-42.094-39.442H444.37zm30.087 26.52h32.498c8.436 0 14.465 5.17 14.465 13.5 0 7.827-5.999 13.501-14.561 13.501h-32.402v-27.001zM563.948 557.776v117.265h29.316v-41.66h12.344l35.15 41.66h35.825l-38.573-43.203c15.83-1.336 32.16-14.923 32.16-36.018 0-24.677-19.368-38.044-40.984-38.044h-65.238zm29.316 26.23h33.511c8.039 0 13.887 6.289 13.887 12.344 0 7.79-7.577 12.344-13.453 12.344h-33.945v-24.687zM791.687 675.04v-25.458h58.671c8.681 0 12.44-4.691 12.44-9.836 0-4.93-3.747-9.914-12.44-9.914h-26.513c-23.045 0-35.88-14.04-35.88-35.121 0-18.803 11.753-36.935 46-36.935h57.088l-12.343 26.385h-49.375c-9.438 0-12.343 4.952-12.343 9.682 0 4.861 3.59 10.222 10.8 10.222h27.773c25.69 0 36.838 14.572 36.838 33.655 0 20.517-12.422 37.32-38.236 37.32zM899.284 675.04v-25.458h58.67c8.682 0 12.44-4.691 12.44-9.836 0-4.93-3.746-9.914-12.44-9.914h-26.512c-23.046 0-35.88-14.04-35.88-35.121 0-18.803 11.753-36.935 45.999-36.935h57.089l-12.344 26.385h-49.374c-9.438 0-12.344 4.952-12.344 9.682 0 4.861 3.59 10.222 10.801 10.222h27.773c25.69 0 36.838 14.572 36.838 33.655 0 20.517-12.422 37.32-38.236 37.32z" fill="#016fd0"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/amex-logo.png b/go.dev/testdata/golden/images/logos/amex-logo.png
new file mode 100644
index 0000000..26080b0
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/amex-logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/amex.svg b/go.dev/testdata/golden/images/logos/amex.svg
new file mode 100644
index 0000000..3f902cb
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/amex.svg
@@ -0,0 +1,34 @@
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	width="48px" height="48px" viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+	.st1{fill:#006FCF;}
+</style>
+<title>Amercian_express</title>
+<path id="logo-blue-box-small-45-9x45-a" class="st0" d="M48,48H0V0h48V48z"/>
+<path class="st1" d="M48,26V0H0v48h48V34C47.9,34,48,26,48,26"/>
+<path class="st0" d="M42.1,23.3h3.6v-8.4h-4V16L41,14.9h-3.4v1.5L37,14.9h-6.3c-0.2,0-0.4,0.1-0.6,0.1s-0.3,0.1-0.5,0.2
+	s-0.3,0.1-0.5,0.2v-0.5H10.9l-0.5,1.4l-0.5-1.4H5.6v1.5L5,14.9H1.5L0,18.5v4.8h2.5l0.4-1.2h0.8l0.4,1.2H23v-1.1l0.8,1.1H29v-0.6
+	c0.1,0.1,0.3,0.1,0.4,0.2s0.3,0.1,0.4,0.2c0.2,0.1,0.4,0.1,0.6,0.1h3.8l0.4-1.2h0.8l0.4,1.2H41v-1.1L42.1,23.3z M48,34v-7.9H18.6
+	l-0.7,1.1l-0.8-1.1H8.6v8.5h8.5l0.8-1.1l0.7,1.1H24v-1.8h-0.2c0.7,0,1.3-0.1,1.9-0.3v2.2h3.8v-1.1l0.8,1.1h15.9
+	C46.8,34.5,47.4,34.3,48,34z"/>
+<path class="st1" d="M46.2,32h-2.9v1.2h2.8c1,0.1,1.8-0.6,1.9-1.6c0-0.1,0-0.2,0-0.2c0.1-0.8-0.5-1.5-1.4-1.6c-0.1,0-0.2,0-0.4,0H45
+	c-0.3,0-0.5-0.2-0.5-0.5c0,0,0,0,0-0.1c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0.1,0h2.5l0.5-1.2h-2.9c-1-0.1-1.8,0.6-1.9,1.6v0.1
+	c-0.1,0.8,0.5,1.6,1.4,1.6c0.1,0,0.2,0,0.3,0h1.3c0.3,0,0.5,0.2,0.5,0.5c0,0,0,0,0,0.1C46.8,31.8,46.6,32,46.2,32z M40.9,32H38v1.2
+	h2.8c1,0.1,1.8-0.6,1.9-1.6c0-0.1,0-0.1,0-0.2c0.1-0.8-0.5-1.6-1.3-1.6c-0.1,0-0.3,0-0.4,0h-1.2c-0.3,0-0.5-0.2-0.5-0.5
+	c0,0,0,0,0-0.1c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0.1,0h2.5l0.5-1.2H40c-1-0.1-1.8,0.6-1.9,1.6v0.1c-0.1,0.8,0.5,1.6,1.4,1.6
+	c0.1,0,0.2,0,0.3,0h1.3c0.3,0,0.5,0.2,0.5,0.5c0,0,0,0,0,0.1c0.1,0.3,0,0.5-0.3,0.6C41.1,32,41,32,40.9,32z M37.2,28.5v-1.2h-4.5V33
+	h4.5v-1.1H34v-1.2h3.1v-1.2H34v-1.1L37.2,28.5L37.2,28.5z M29.9,28.5c0.5,0,0.8,0.3,0.8,0.6s-0.2,0.6-0.8,0.6h-1.6v-1.4L29.9,28.5z
+	 M28.3,31H29l1.7,2h1.6l-1.9-2.1c0.9-0.1,1.5-0.8,1.5-1.7c0-1-0.7-1.8-1.7-1.8c-0.1,0-0.1,0-0.2,0h-3V33h1.3L28.3,31z M24.9,29.3
+	c0,0.4-0.2,0.7-0.6,0.8h-0.1h-1.7v-1.5H24C24.5,28.5,24.8,28.8,24.9,29.3C24.9,29.2,24.9,29.3,24.9,29.3z M21.2,27.4V33h1.3v-1.9
+	h1.7c1,0.1,1.9-0.7,2-1.8c0-0.1,0-0.1,0-0.2c0-1-0.8-1.9-1.8-1.9h-0.1L21.2,27.4z M19.2,33h1.6l-2.3-2.9l2.2-2.8h-1.6l-1.4,1.8
+	l-1.4-1.8h-1.6l2.2,2.8l-2.2,2.8h1.6l1.4-1.8L19.2,33z M14.4,28.5v-1.1H10V33h4.5v-1.1h-3.3v-1.2h3.1v-1.2h-3.1v-1.1L14.4,28.5
+	L14.4,28.5z M40.4,18.5l2.2,3.4h1.6v-5.7H43V20l-0.3-0.5l-2-3.2h-1.8V22h1.3v-3.8L40.4,18.5z M34.9,18.4l0.4-1.2l0.4,1.2l0.5,1.3h-2
+	L34.9,18.4z M37.1,21.9h1.4L36,16.3h-1.7L31.8,22h1.4l0.5-1.2h2.8L37.1,21.9z M31.1,21.9l0.5-1.2h-0.3c-0.8,0-1.5-0.6-1.5-1.4
+	c0-0.1,0-0.2,0-0.2V19c-0.1-0.8,0.5-1.5,1.3-1.6c0.1,0,0.2,0,0.2,0h1.4v-1.1h-1.5c-1.4-0.1-2.6,1-2.7,2.4c0,0.1,0,0.2,0,0.3v0.1
+	c-0.2,1.4,0.8,2.6,2.1,2.8C30.8,21.9,31,21.9,31.1,21.9L31.1,21.9z M26.3,21.9h1.3v-5.6h-1.3V21.9z M23.5,17.4
+	c0.5,0,0.8,0.3,0.8,0.6s-0.2,0.6-0.8,0.6h-1.6v-1.4L23.5,17.4z M21.9,19.9h0.6l1.7,2h1.6L24,19.8c0.9-0.1,1.5-0.8,1.5-1.7
+	c0-1-0.7-1.8-1.7-1.8c-0.1,0-0.1,0-0.2,0h-3V22h1.3L21.9,19.9z M19.6,17.4v-1.2h-4.5v5.7h4.5v-1.2h-3.2v-1.2h3.1v-1.2h-3.1v-1.1h3.2
+	V17.4z M9.9,21.9H11l1.6-4.6v4.6h1.3v-5.7h-2.1l-1.3,3.9l-1.3-3.9H7.1v5.7h1.3v-4.6L9.9,21.9z M2.9,18.4l0.4-1.2l0.4,1.2l0.5,1.3
+	H2.4L2.9,18.4z M5.1,21.9h1.4L4,16.2H2.5L0,21.9h1.4l0.5-1.2h2.8L5.1,21.9z"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/armut.png b/go.dev/testdata/golden/images/logos/armut.png
new file mode 100644
index 0000000..83cc457
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/armut.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/caddy.svg b/go.dev/testdata/golden/images/logos/caddy.svg
new file mode 100644
index 0000000..d9b8a67
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/caddy.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 401 401" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><circle id="Icon" cx="200.47" cy="200.47" r="200.47" style="fill:#3dd0ff;"/><clipPath id="_clip1"><circle cx="200.47" cy="200.47" r="200.47"/></clipPath><g clip-path="url(#_clip1)"><g><g><g><clipPath id="_clip2"><path d="M76.817,172.777c0,-76.373 48.909,-111.192 121.629,-110.237c73.117,0.954 121.392,34.182 121.392,111.454l-0.122,73.357l-44.611,0l0,-54.15c-1.198,-18.797 4.977,-81.761 -76.147,-81.761c-81.684,0 -76.885,63.192 -76.59,82.134l0,53.777l-45.551,0l0,-74.574Z"/></clipPath><g clip-path="url(#_clip2)"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71" style="fill:url(#_Linear3);"/><clipPath id="_clip4"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71"/></clipPath><g clip-path="url(#_clip4)"><use xlink:href="#_Image5" x="77.126" y="62.579" width="243.021px" height="184.83px" transform="matrix(0.995989,0,0,0.999082,0,0)"/></g></g></g><g><clipPath id="_clip6"><path d="M83.937,172.777c0,-35.021 10.701,-61.186 30.936,-78.398c19.514,-16.597 48.002,-24.913 83.483,-24.447c36.093,0.471 64.414,8.995 83.686,25.429c20.139,17.173 30.676,43.192 30.676,78.633l-0.122,73.345l7.12,-7.38l-44.611,0l7.12,7.392l0,-54.15l0,-0.245l-0.016,-0.243c-0.072,-1.132 -0.116,-2.407 -0.177,-4.848c-0.191,-7.671 -0.322,-10.751 -0.788,-15.6c-0.667,-6.939 -1.836,-13.38 -3.703,-19.544c-4.193,-13.843 -11.647,-25.307 -23.181,-33.734c-13.404,-9.792 -31.692,-14.939 -55.402,-14.939c-23.875,0 -42.381,5.169 -56,14.981c-11.755,8.47 -19.412,20.023 -23.673,33.881c-2.07,6.731 -3.275,13.782 -3.823,21.248c-0.393,5.355 -0.428,9.804 -0.278,16.462c0.002,0.114 0.029,1.307 0.037,1.636c0.012,0.578 0.021,1.029 0.028,1.437l-0.001,-0.119l0,53.777l7.12,-7.392l-45.551,0l7.12,7.392l0,-74.574Zm-14.24,0l0,81.967l59.791,0l0,-7.393l0,-53.777l-0.001,-0.119c-0.007,-0.447 -0.016,-0.927 -0.03,-1.536c-0.007,-0.336 -0.034,-1.535 -0.037,-1.643c-0.139,-6.206 -0.108,-10.242 0.241,-14.994c0.469,-6.39 1.484,-12.329 3.19,-17.875c3.352,-10.904 9.2,-19.728 18.226,-26.231c11.05,-7.962 26.737,-12.343 47.881,-12.343c20.953,0 36.393,4.346 47.207,12.247c8.809,6.435 14.488,15.168 17.792,26.077c1.549,5.113 2.541,10.58 3.117,16.577c0.42,4.365 0.541,7.208 0.723,14.513c0.065,2.638 0.114,4.047 0.203,5.442l-0.015,-0.488l0,61.543l58.839,0l0.013,-7.38l0.121,-73.357c0,-39.667 -12.254,-69.927 -35.878,-90.072c-22.079,-18.828 -53.477,-28.277 -92.544,-28.787c-80.349,-1.055 -128.839,40.19 -128.839,117.629Z" clip-rule="nonzero"/></clipPath><g clip-path="url(#_clip6)"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71" style="fill:url(#_Linear7);"/><clipPath id="_clip8"><rect x="-799.837" y="-162.123" width="1239.9" height="2574.71"/></clipPath><g clip-path="url(#_clip8)"><use xlink:href="#_Image9" x="69.897" y="55.235" width="257.262px" height="199.615px" transform="matrix(0.997138,0,0,0.998077,0,0)"/></g></g></g><rect x="282.232" y="171.29" width="14.354" height="68.654" style="fill:url(#_Linear10);"/><g><clipPath id="_clip11"><path d="M83.608,177.164c2.359,-59.062 16.982,-103.539 114.522,-107.309c-63.158,9.995 -97.512,30.703 -97.512,92.45l-1.576,76.531l-15.435,0l0,-61.672l0.001,0Z"/></clipPath><g clip-path="url(#_clip11)"><rect x="-823.139" y="-161.522" width="1272.61" height="2570.86" style="fill:url(#_Linear12);"/><clipPath id="_clip13"><rect x="-823.139" y="-161.522" width="1272.61" height="2570.86"/></clipPath><g clip-path="url(#_clip13)"><use xlink:href="#_Image14" x="83.956" y="69.863" width="114.523px" height="168.981px" transform="matrix(0.995849,0,0,0.999887,0,0)"/></g></g></g></g><g><path d="M367.745,286.714c0,-27.082 -21.988,-49.07 -49.071,-49.07l-243.602,0c-27.082,0 -49.07,21.988 -49.07,49.07l0,146.934c0,27.083 21.988,49.071 49.07,49.071l243.602,0c27.083,0 49.071,-21.988 49.071,-49.071l0,-146.934Z" style="fill:#007c00;"/><path d="M351.521,287.596c0,-20.676 -16.786,-37.463 -37.462,-37.463l-234.898,0c-20.676,0 -37.462,16.787 -37.462,37.463l0,144.098c0,20.676 16.786,37.462 37.462,37.462l234.898,0c20.676,0 37.462,-16.786 37.462,-37.462l0,-144.098Z" style="fill:url(#_Linear15);"/><path d="M303.52,263.545c18.994,0 34.414,15.421 34.414,34.414l0,123.371c0,18.994 -15.42,34.415 -34.414,34.415l-213.82,0c-18.994,0 -34.414,-15.421 -34.414,-34.415l0,-123.371c0,-18.993 15.42,-34.414 34.414,-34.414l213.82,0Zm-6.086,17.866l-201.648,0c-11.105,0.001 -20.12,9.016 -20.12,20.121l0,118.08c0,11.105 9.015,20.121 20.12,20.121l201.648,0c11.105,0 20.121,-9.016 20.121,-20.121l0,-118.08c0,-11.105 -9.016,-20.12 -20.121,-20.121Z" style="fill:url(#_Linear16);"/></g></g></g><defs><linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.88722e-14,659.127,-634.831,4.03599e-14,76.8169,62.5212)"><stop offset="0" style="stop-color:#babdb6;stop-opacity:0"/><stop offset="0.5" style="stop-color:#eeeeec;stop-opacity:0"/><stop offset="1" style="stop-color:#babdb6;stop-opacity:0"/></linearGradient><image id="_Image5" width="244px" height="185px" xlink:href="data:image/png;base64,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"/><linearGradient id="_Linear7" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.88722e-14,659.127,-634.831,4.03599e-14,76.8169,62.5212)"><stop offset="0" style="stop-color:#333530;stop-opacity:0"/><stop offset="1" style="stop-color:#828282;stop-opacity:0"/></linearGradient><image id="_Image9" width="258px" height="200px" xlink:href="data:image/png;base64,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"/><linearGradient id="_Linear10" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.86481e-15,-69.2121,46.7859,4.23802e-15,289.702,241.741)"><stop offset="0" style="stop-color:#fff;stop-opacity:1"/><stop offset="1" style="stop-color:#fff;stop-opacity:0"/></linearGradient><linearGradient id="_Linear12" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(3.98975e-14,658.139,-651.576,4.02994e-14,83.6072,69.8551)"><stop offset="0" style="stop-color:#fff;stop-opacity:0"/><stop offset="1" style="stop-color:#fff;stop-opacity:0"/></linearGradient><image id="_Image14" width="115px" height="169px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHMAAACpCAYAAAAY5gKvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC0klEQVR4nO3cwVLDMAwA0aT//8/lVKZAWtJEsuTNvjM0sXfkhg6wLmrlfr/fj37vGnkjeu9MqN/Wdf3TzpjBIoM9bIXb/LroC19FRrRl2R9u83sjb4SqY7jN14t8MYrKo/LUNbIvMINZJu/f6428WCezTt/b61defDRiwGdtbiRLdMBO8X5re2NnXCngsylucq+rRnyY6mZfyf6YbBbT3vjVp3DLdAsw4mtTLSQqJCngsykWZcR9Wi/OiJ9puUifTo9pt1Cn8bg2CzbieS0WbsgY5YuPCHn1iA+lm2DIWCUbYcQcwzfEkHmGboohcw3bGEPmG7I5hhwjfYPOhjTifqkbZcix0jbLkOOlbJgha4RvmiHr3KpvQHFCp8CprBW2eYasF7KBhuyh/D3TkHFOx8z6Q1V97tRUeLz2UnbMGjLe4Zger/2UTKZTmeNQTKeyp48nxIeevoYes4bM9VFMj9fehk2mU5lvd0ynsr/yz2YVZ0hMj9gxdsX0iJ1D+mQ6leP8G9OpnEfqZDqVY/k0C/I2pkfsXNIm0yN2PI9ZkJcxPWLnkzKZHrE1PGZBNmN6xM7JyQQxJkh4TB9+6vyJ6fvlvDxmQYwJEhrT98taP2L6fjk3j1kQY4IYE8SYIN8xffiZX9hk+mNJPY9ZEGOCGBPEmCDGBLktiz+WUDiZIMYEMSaIMUGMCWJMEGOCGBPEmCA3P/3hcDJBjAliTJCQmP7+Tw9OJogxQYwJYkwQY4IYE8SYIMYEMSaIMUGMCWJMEGOCGBPEmCDGBDEmiDFBjAliTBBjghgTxJggxgQxJogxQYwJYkwQY4IYE8SYIMYEMSaIMUGMCWJMEGOCGBPEmCDGBDEmiDFBjAliTBBjghgTxJggp2P6v2b7cDJBjAliTBBjghgTxJggxgQxJogxQYwJYkwQY4IYE8SYIMYEMSaIMUGMCWJMEGOCGBPEmCDGBPkCk9jZKJdIbpQAAAAASUVORK5CYII="/><linearGradient id="_Linear15" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(309.823,0,0,219.023,41.6987,359.645)"><stop offset="0" style="stop-color:#02c49a;stop-opacity:1"/><stop offset="0.21" style="stop-color:#009f00;stop-opacity:1"/><stop offset="0.85" style="stop-color:#01af17;stop-opacity:1"/><stop offset="1" style="stop-color:#40c965;stop-opacity:1"/></linearGradient><linearGradient id="_Linear16" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(83.9654,128.268,-128.268,83.9654,42.3484,247.947)"><stop offset="0" style="stop-color:#fff;stop-opacity:1"/><stop offset="0.53" style="stop-color:#fff;stop-opacity:0.77"/><stop offset="1" style="stop-color:#fff;stop-opacity:0"/></linearGradient></defs></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/capital-one.svg b/go.dev/testdata/golden/images/logos/capital-one.svg
new file mode 100644
index 0000000..af93603
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/capital-one.svg
@@ -0,0 +1,41 @@
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 100.4 48" style="enable-background:new 0 0 100.4 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#D03027;}
+	.st1{fill:#004977;}
+</style>
+<title>captial-one</title>
+<path class="st0" d="M68.1,32c-4.3,3-9.3,6.2-14.8,9.5l-0.2,0.1c-0.1,0.1-0.1,0.2,0,0.2c0.1,0.1,0.2,0.1,0.2,0c0,0,0,0,0,0l0,0
+	l0.2-0.1l15.2-8.2h0.1C68.6,33.2,68.3,32.6,68.1,32L68.1,32z M96.1,9.4c-6.7-7.4-50-0.8-68.4,3.3l-0.4,0.1c-0.1,0-0.1,0.1-0.1,0.2
+	c0,0.1,0.1,0.1,0.2,0.1l0,0l0.4-0.1c15.3-2.7,47-6.5,53.8,0.3c2.1,2.1,1.6,4.7-0.8,7.9c1.4,0.9,2.3,2.2,2.7,3.8
+	C92.9,18.7,99.2,12.7,96.1,9.4L96.1,9.4z"/>
+<path class="st1" d="M70.8,30.1c0.1,2.6,1.7,4.8,3.9,4.8c4.2,0,6-5.1,5.8-8.6c-0.1-2.6-1.8-4.8-3.9-4.8C73,21.6,70.7,26.7,70.8,30.1
+	z M68.6,30c-0.2-4.5,3.3-9,8.4-9c3.4,0,5.6,2.3,5.8,5.7c0.2,4.7-3.1,9-8.4,9C71,35.7,68.8,33.5,68.6,30L68.6,30z M20.6,28.8
+	c-0.2,0.1-0.5,0.1-0.7,0.2c-0.3,0.1-0.8,0.2-1.6,0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.2,0.1-0.3,0.3-0.4,0.5c0,0.2,0,0.4,0.2,0.6
+	c0.3,0.2,0.7,0.2,1,0.2c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.2,0.9-0.5c0.2-0.1,0.3-0.3,0.4-0.5C20.4,29.5,20.5,29.1,20.6,28.8
+	L20.6,28.8z M25.1,26.1c0,0.5-0.1,0.9-0.2,1.4l-0.7,4.2c-0.1,0.3,0.1,0.7,0.4,0.9v0.2h-4.3v-1.1c-0.6,0.4-1.3,0.7-2.1,0.9
+	c-0.7,0.2-1.3,0.3-2,0.2c-1,0.1-1.9-0.1-2.7-0.6c-0.5-0.3-0.8-0.9-0.8-1.5c0-0.5,0.2-0.9,0.5-1.2c0.3-0.3,0.7-0.6,1.1-0.8
+	c0.5-0.2,1.1-0.4,1.7-0.5c0.8-0.1,1.8-0.2,3.2-0.4c0.5,0,1-0.1,1.4-0.3c0.3-0.1,0.4-0.2,0.5-0.5c0.1-0.4-0.1-0.7-0.6-0.8
+	c-2-0.1-4,0-5.9,0.6l0.8-2.2c1.9-0.3,3.8-0.5,5.7-0.5C24.1,24,25.1,24.9,25.1,26.1L25.1,26.1z M37.4,32.7l1.5-8.4H43l-1.5,8.4H37.4z
+	 M39.1,22.4c0.1-0.7,1.2-1.2,2.4-1.2s2.1,0.6,2,1.2s-1.2,1.2-2.4,1.2S39,23,39.1,22.4L39.1,22.4z M57.5,28.8
+	c-0.2,0.1-0.5,0.1-0.7,0.2c-0.3,0.1-0.8,0.1-1.6,0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.2,0.1-0.3,0.3-0.3,0.5c-0.1,0.2,0,0.4,0.2,0.6
+	c0.3,0.2,0.7,0.2,1,0.2c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.2,0.9-0.5c0.2-0.2,0.3-0.3,0.4-0.5C57.3,29.4,57.4,29.1,57.5,28.8
+	L57.5,28.8z M61.9,26.1c0,0.5-0.1,0.9-0.2,1.4L61,31.6c-0.1,0.3,0.1,0.7,0.4,0.9v0.2h-4.3v-1.1c-0.6,0.4-1.3,0.7-2,0.9
+	c-0.7,0.2-1.4,0.3-2.1,0.3c-1.4,0-2.2-0.1-2.7-0.6s-0.9-0.8-0.9-1.5c0-0.5,0.2-0.9,0.5-1.2c0.3-0.4,0.7-0.6,1.1-0.8
+	c0.5-0.2,1.1-0.4,1.7-0.5l3.2-0.4c0.5,0,1-0.1,1.4-0.3c0.2-0.1,0.4-0.2,0.5-0.5c0.1-0.4-0.1-0.7-0.6-0.8c-2-0.1-4,0-5.9,0.5l0.8-2.2
+	C54,24.2,56,24,57.9,24C61,24,62,24.9,61.9,26.1L61.9,26.1z M11.9,29.6C10.8,29.9,9.7,30,8.5,30c-2,0-3.5-1-3.4-2.8
+	c0.1-1.2,1.5-3.7,5-3.7c1.1,0,2.2,0.3,3.2,0.9l0.5-2.9c-1.3-0.5-2.7-0.7-4-0.7c-4.7,0-9.1,2.2-9.7,6.5s4.8,5.5,7.2,5.5
+	c1.4,0,2.8-0.1,4.1-0.2L11.9,29.6z M45.2,24.2l0.3-1.7l4.3-0.9l-0.5,2.6h2.1L51,25.9h-2l-1.2,6.7h-4.1l1.2-6.7h-1.5l0.3-1.7
+	L45.2,24.2L45.2,24.2z M68,21.1l-2,11.5h-4.2L64,21L68,21.1z M32,26.2c-0.5,0-1,0.2-1.5,0.5c-0.4,0.4-0.7,0.9-0.8,1.4
+	c-0.2,0.5-0.1,1.1,0.2,1.6c0.3,0.3,0.8,0.5,1.3,0.5c0.3,0,0.7-0.1,1-0.2c0.3-0.2,0.6-0.4,0.8-0.7c0.2-0.3,0.4-0.7,0.5-1.1
+	c0.1-0.5,0-1-0.3-1.5C32.9,26.4,32.4,26.2,32,26.2L32,26.2z M24.6,35.5l2-11.2h3.6l-0.3,1.4c0.4-0.5,0.9-0.9,1.5-1.1
+	c0.7-0.3,1.5-0.5,2.3-0.5c0.8-0.1,1.5,0.1,2.2,0.4c0.7,0.3,1.2,0.9,1.5,1.6c0.3,0.7,0.3,1.5,0.2,2.3c-0.2,1.3-0.9,2.5-2,3.3
+	c-1,0.7-2.3,1.1-3.5,1c-0.4,0-0.8,0-1.3-0.1c-0.3-0.1-0.6-0.2-0.8-0.3c-0.3-0.2-0.5-0.4-0.7-0.6l-0.7,3.9L24.6,35.5z M98.8,27.3
+	c0.1-0.5-0.3-1-0.9-1.1h-0.2c-1.7,0-3.5,3.3-3.8,4.6C96.8,30.8,98.9,29.1,98.8,27.3z M99.2,32.4l0.3,0.2c-0.8,1.8-2.5,2.9-4.4,3
+	c-1.6,0.1-2.9-1.2-3-2.8c0-0.1,0-0.2,0-0.2c-0.1-3.6,3.2-6.9,6-6.9c1.2,0,2.3,0.5,2.3,1.8c0.1,2.9-3.9,3.7-6.5,3.8
+	c-0.1,0.3-0.1,0.7-0.1,1c-0.1,1.2,0.8,2.1,2,2.2H96C97.3,34.3,98.5,33.6,99.2,32.4z"/>
+<path class="st1" d="M82.7,27.2l0.9-0.1c0.3,0,0.6,0.1,0.6,0.4c-0.1,0.6-0.2,1.2-0.4,1.7L83.2,32l-0.8,3.3h1.7l0.9-4.5
+	c2.8-2.9,3.9-3.9,4.6-3.9c0.3,0,0.5,0.2,0.5,0.4v0.1c-0.1,0.7-0.2,1.4-0.4,2l-0.9,3.2c-0.2,0.6-0.3,1.2-0.3,1.9c0,0.6,0.4,1,1,1h0.1
+	c1.2,0,2.1-1.2,2.8-2.5l-0.2-0.4c-0.3,0.5-1,1.6-1.6,1.6c-0.2,0-0.3-0.1-0.3-0.4c0-0.4,0.1-0.9,0.2-1.3l1-3.8
+	c0.2-0.7,0.3-1.4,0.4-2.1c0-0.6-0.4-1-1-1h-0.1c-1.1,0-2.5,0.8-5.5,4.3l0,0l0.4-1.7l0.6-2.6c-1.1,0.4-2.3,0.7-3.5,1L82.7,27.2z"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/chrome.svg b/go.dev/testdata/golden/images/logos/chrome.svg
new file mode 100644
index 0000000..3a2a5a9
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/chrome.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 648.371 170.775"><g fill="#77787A"><path d="M247.189 119.998c-3.312 1.584-10.656 4.032-20.016 4.032-21.023 0-34.704-14.257-34.704-35.567 0-21.456 14.688-37.151 37.439-37.151 7.488 0 14.112 1.872 17.568 3.744l-2.88 9.648c-3.024-1.584-7.775-3.312-14.688-3.312-15.984 0-24.624 11.952-24.624 26.353 0 16.128 10.368 26.062 24.191 26.062 7.2 0 11.952-1.729 15.552-3.312l2.162 9.503zM262.021 20.208h12.672v43.631h.288c2.016-3.6 5.184-6.912 9.072-9.072a25.979 25.979 0 0112.959-3.456c9.36 0 24.336 5.76 24.336 29.664v41.471h-12.672v-40.03c0-11.232-4.176-20.592-16.128-20.592-8.208 0-14.543 5.76-16.992 12.527-.72 1.872-.864 3.744-.864 6.048v42.047H262.02l.001-102.238zM341.94 74.495c0-8.208-.145-15.265-.576-21.744h11.088l.576 13.824h.432c3.168-9.36 10.944-15.265 19.44-15.265 1.296 0 2.304.145 3.455.288V63.55c-1.297-.288-2.593-.288-4.319-.288-8.928 0-15.265 6.624-16.992 16.127-.288 1.729-.432 3.888-.432 5.904v37.15H341.94V74.495zM450.66 87.023c0 25.775-18 37.008-34.704 37.008-18.72 0-33.407-13.823-33.407-35.855 0-23.184 15.408-36.863 34.561-36.863 20.014-.001 33.55 14.542 33.55 35.71zm-55.151.72c0 15.264 8.641 26.782 21.023 26.782 12.096 0 21.168-11.376 21.168-27.07 0-11.809-5.904-26.641-20.88-26.641-14.832.001-21.311 13.825-21.311 26.929zM466.645 71.615c0-7.345-.287-13.104-.575-18.864h11.088l.576 11.376h.432c3.889-6.624 10.368-12.816 22.032-12.816 9.358 0 16.56 5.76 19.583 13.968h.288c2.16-4.031 5.04-6.911 7.92-9.071 4.176-3.168 8.64-4.896 15.264-4.896 9.36 0 23.04 6.048 23.04 30.24v40.895h-12.384V83.135c0-13.536-5.04-21.456-15.12-21.456-7.344 0-12.815 5.328-15.119 11.375-.576 1.872-1.009 4.032-1.009 6.336v43.055h-12.384V80.687c0-11.088-4.896-19.007-14.543-19.007-7.776 0-13.681 6.335-15.696 12.671-.72 1.729-1.008 4.032-1.008 6.192v41.902h-12.385v-50.83zM593.796 89.902c.288 17.138 11.088 24.191 23.903 24.191 9.072 0 14.688-1.584 19.296-3.6l2.304 9.071c-4.464 2.017-12.238 4.464-23.327 4.464-21.455 0-34.271-14.256-34.271-35.278 0-21.023 12.384-37.439 32.688-37.439 22.896 0 28.801 19.872 28.801 32.688 0 2.592-.146 4.464-.434 5.902h-48.96zm37.151-9.071c.145-7.92-3.312-20.448-17.567-20.448-12.96 0-18.432 11.664-19.438 20.448h37.005z"/></g><circle fill="#FFF" cx="85.314" cy="85.713" r="83.805"/><path fill-opacity=".1" d="M138.644 100.95c0-29.454-23.877-53.331-53.33-53.331-29.454 0-53.331 23.877-53.331 53.331H47.22c0-21.039 17.055-38.094 38.093-38.094 21.038 0 38.093 17.055 38.093 38.094"/><circle fill-opacity=".1" cx="89.123" cy="96.379" r="28.951"/><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-175.667" y1="582.197" x2="-175.667" y2="581.436" gradientTransform="matrix(82 0 0 -82 14489.97 47794.7)"><stop offset="0" stop-color="#81b4e0"/><stop offset="1" stop-color="#0c5a94"/></linearGradient><circle fill="url(#a)" cx="85.314" cy="85.712" r="31.236"/><linearGradient id="b" gradientUnits="userSpaceOnUse" x1="-114.519" y1="250.392" x2="-114.519" y2="181.062" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-color="#f06b59"/><stop offset="1" stop-color="#df2227"/></linearGradient><path fill="url(#b)" d="M161.5 47.619C140.525 5.419 89.312-11.788 47.111 9.186a85.317 85.317 0 00-32.65 28.53l34.284 59.425c-6.314-20.068 4.837-41.456 24.905-47.769a38.093 38.093 0 0110.902-1.752"/><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="-181.738" y1="104.41" x2="-146.693" y2="162.311" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-color="#388b41"/><stop offset="1" stop-color="#4cb749"/></linearGradient><path fill="url(#c)" d="M14.461 37.716C-11.78 76.86-1.32 129.864 37.824 156.105a85.33 85.33 0 0040.633 14.175l35.808-60.948c-13.389 16.228-37.397 18.529-53.625 5.14a38.09 38.09 0 01-11.895-17.33"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="-64.337" y1="98.252" x2="-101.668" y2="188.151" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-color="#e4b022"/><stop offset=".3" stop-color="#fcd209"/></linearGradient><path fill="url(#d)" d="M78.457 170.28c46.991 3.552 87.965-31.662 91.518-78.653a85.321 85.321 0 00-8.476-44.007H84.552c21.037.097 38.014 17.23 37.917 38.268a38.098 38.098 0 01-8.205 23.444"/><linearGradient id="e" gradientUnits="userSpaceOnUse" x1="-170.136" y1="155.92" x2="-170.136" y2="216.868" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-opacity=".15"/><stop offset=".3" stop-opacity=".06"/><stop offset="1" stop-opacity=".03"/></linearGradient><path fill="url(#e)" d="M14.461 37.716l34.284 59.425a38.094 38.094 0 011.523-25.904L15.984 35.43"/><linearGradient id="f" gradientUnits="userSpaceOnUse" x1="-86.009" y1="136.238" x2="-127.911" y2="93.575" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-opacity=".15"/><stop offset=".3" stop-opacity=".06"/><stop offset="1" stop-opacity=".03"/></linearGradient><path fill="url(#f)" d="M78.457 170.28l35.808-60.948a38.106 38.106 0 01-22.094 12.951L76.933 170.28"/><linearGradient id="g" gradientUnits="userSpaceOnUse" x1="-86.616" y1="123.964" x2="-80.521" y2="184.148" gradientTransform="matrix(1 0 0 -1 202.5 250.776)"><stop offset="0" stop-opacity=".15"/><stop offset=".3" stop-opacity=".06"/><stop offset="1" stop-opacity=".03"/></linearGradient><path fill="url(#g)" d="M161.5 47.619H84.552a38.093 38.093 0 0129.712 14.476l48.759-12.19"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/cloudflare-icon.svg b/go.dev/testdata/golden/images/logos/cloudflare-icon.svg
new file mode 100644
index 0000000..8ad9cd6
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/cloudflare-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 67 31" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M16.32 28.938h42.354v-11.72l-8.046-4.614-1.388-.6-32.92.226z"></path><path d="M44.024 27.382c.394-1.35.244-2.588-.412-3.508-.6-.844-1.614-1.332-2.832-1.388l-23.1-.3a.43.43 0 0 1-.356-.188c-.076-.112-.094-.26-.056-.412a.63.63 0 0 1 .544-.412l23.296-.3c2.76-.132 5.76-2.364 6.808-5.1l1.332-3.47a.76.76 0 0 0 .04-.45C47.798 5.064 41.738 0 34.498 0c-6.68 0-12.34 4.314-14.368 10.3a6.92 6.92 0 0 0-4.784-1.332c-3.208.32-5.8 2.888-6.096 6.096a7.16 7.16 0 0 0 .168 2.382A9.68 9.68 0 0 0 0 27.138c0 .468.04.94.094 1.406.04.226.226.394.45.394H43.16a.58.58 0 0 0 .544-.412l.32-1.144z" fill="#f38020"></path><path d="M51.376 12.544l-.64.02c-.15 0-.28.112-.34.26l-.9 3.132c-.394 1.35-.244 2.588.412 3.508.6.844 1.614 1.332 2.832 1.388l4.914.3a.43.43 0 0 1 .356.188.52.52 0 0 1 .056.412c-.076.226-.3.394-.544.412l-5.12.3c-2.776.132-5.76 2.364-6.808 5.1l-.376.956c-.076.188.056.376.26.376h17.594a.46.46 0 0 0 .45-.338A12.82 12.82 0 0 0 64 25.15c-.02-6.96-5.663-12.595-12.624-12.604" fill="#faae40"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/cloudflare.png b/go.dev/testdata/golden/images/logos/cloudflare.png
new file mode 100644
index 0000000..8cd4914
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/cloudflare.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/cloudflare.svg b/go.dev/testdata/golden/images/logos/cloudflare.svg
new file mode 100644
index 0000000..04648af
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/cloudflare.svg
@@ -0,0 +1,33 @@
+<svg version="1.1" id="Layer_2_1_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 134 48" style="enable-background:new 0 0 134 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#FFFFFF;}
+	.st1{fill:#F48120;}
+	.st2{fill:#FAAD3F;}
+	.st3{fill:#404041;}
+</style>
+<g>
+	<path class="st0" d="M125.2,15.8l-7.4-1.7l-1.3-0.5l-33.9,0.3v16.3l42.6,0.1L125.2,15.8z"/>
+	<path class="st1" d="M111.3,28.7c0.4-1.3,0.3-2.6-0.4-3.4s-1.6-1.3-2.8-1.4l-22.9-0.3c-0.1,0-0.3-0.1-0.4-0.1
+		c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.3,0.3-0.4,0.5-0.4l23.1-0.3c2.8-0.1,5.7-2.4,6.7-5l1.3-3.4c0-0.1,0.1-0.3,0-0.4
+		C115,6.9,109,1.9,101.9,1.9c-6.6,0-12.3,4.2-14.2,10.1c-1.3-0.9-2.9-1.4-4.7-1.3c-3.2,0.3-5.7,2.9-6.1,6.1c-0.1,0.8,0,1.6,0.1,2.4
+		c-5.1,0.1-9.4,4.3-9.4,9.6c0,0.5,0,0.9,0.1,1.4c0,0.3,0.3,0.4,0.4,0.4h42.3c0.3,0,0.5-0.1,0.5-0.4L111.3,28.7z"/>
+	<path class="st2" d="M118.6,14h-0.7c-0.1,0-0.3,0.1-0.4,0.3l-0.9,3.2c-0.4,1.3-0.3,2.6,0.4,3.4s1.6,1.3,2.8,1.4l4.9,0.3
+		c0.1,0,0.3,0.1,0.4,0.1c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.3-0.3,0.4-0.5,0.4l-5,0.3c-2.8,0.1-5.7,2.4-6.7,5l-0.3,1.2
+		c-0.1,0.1,0,0.4,0.3,0.4h17.4c0.3,0,0.4-0.1,0.4-0.4c0.3-1.1,0.5-2.2,0.5-3.4C131.1,19.6,125.4,14,118.6,14"/>
+	<path class="st3" d="M132.8,37.7c-0.7,0-1.2-0.5-1.2-1.2s0.5-1.2,1.2-1.2c0.7,0,1.2,0.5,1.2,1.2S133.5,37.7,132.8,37.7 M132.8,35.6
+		c-0.5,0-0.9,0.4-0.9,0.9c0,0.5,0.4,0.9,0.9,0.9s0.9-0.4,0.9-0.9S133.3,35.6,132.8,35.6 M133.3,37.2h-0.3l-0.3-0.4h-0.3v0.4h-0.3V36
+		h0.7c0.3,0,0.4,0.1,0.4,0.4c0,0.1-0.1,0.3-0.3,0.4L133.3,37.2L133.3,37.2z M132.9,36.5c0.1,0,0.1,0,0.1-0.1c0-0.1-0.1-0.1-0.1-0.1
+		h-0.4v0.4h0.4V36.5z M14.8,35.3h2.9v7.9h5v2.5h-7.9L14.8,35.3z M25.7,40.5c0-3,2.4-5.4,5.7-5.4s5.5,2.4,5.5,5.4s-2.4,5.4-5.7,5.4
+		C28.1,45.9,25.7,43.5,25.7,40.5 M34,40.5c0-1.6-1.1-2.9-2.6-2.9c-1.6,0-2.6,1.3-2.6,2.8c0,1.4,1.1,2.8,2.6,2.8
+		C32.9,43.4,34,42,34,40.5 M40.4,41.1v-5.8h2.9v5.8c0,1.4,0.8,2.2,2,2.2s2-0.7,2-2.1v-5.9h2.9v5.8c0,3.4-2,4.9-4.9,4.9
+		C42.3,45.9,40.4,44.4,40.4,41.1 M54.5,35.3h4.1c3.7,0,5.9,2.1,5.9,5.1s-2.2,5.3-5.9,5.3h-4V35.3H54.5z M58.6,43.1
+		c1.7,0,2.9-0.9,2.9-2.6s-1.2-2.6-2.9-2.6h-1.2v5.3H58.6z M68.6,35.3h8.3v2.5h-5.4v1.7h4.9v2.4h-4.9v3.8h-2.9L68.6,35.3z M81,35.3
+		h2.9v7.9h5v2.5H81V35.3z M96.4,35.2h2.9l4.5,10.5h-3.2l-0.8-1.8h-4.1L95,45.7h-3C92,45.7,96.4,35.2,96.4,35.2z M99.1,41.7l-1.2-2.9
+		l-1.2,2.9H99.1z M107.5,35.3h4.9c1.6,0,2.6,0.4,3.4,1.2c0.7,0.7,0.9,1.4,0.9,2.4c0,1.6-0.8,2.6-2.1,3.2l2.5,3.7h-3.3l-2.1-3.2h-1.3
+		v3.2h-2.9C107.5,45.7,107.5,35.3,107.5,35.3z M112.3,40.3c0.9,0,1.6-0.5,1.6-1.2c0-0.8-0.7-1.2-1.6-1.2h-1.8v2.5h1.8V40.3z
+		 M120.8,35.3h8.4v2.4h-5.5v1.6h5v2.4h-5v1.6h5.7v2.5h-8.6L120.8,35.3z M8.4,41.8c-0.4,0.9-1.3,1.6-2.4,1.6c-1.6,0-2.6-1.3-2.6-2.8
+		s1.1-2.8,2.6-2.8c1.2,0,2.1,0.8,2.5,1.7h3C11.1,37,9,35.2,6.1,35.2c-3.2,0-5.7,2.4-5.7,5.4S2.8,46,5.9,46c2.8,0,4.9-1.8,5.5-4.2
+		H8.4z"/>
+</g>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/cockroach.svg b/go.dev/testdata/golden/images/logos/cockroach.svg
new file mode 100644
index 0000000..0954963
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/cockroach.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48.1 48"><path d="M48 2h-1l-2-1a26 26 0 00-21 3A26 26 0 003 1L1 2H0v1l1 3h4l5-1 10 2-5 6-1 1v1l-1 2-1 9c0 7 3 14 8 19l1 1 1 1 1 1h2l1-1 1-1 1-1a26 26 0 006-29l-1-1v-2l-5-6a22 22 0 0115-1h4l1-2V2zM22 41c-4-4-6-9-6-15v-2l1-5 3 5c2 3 3 7 3 11l-1 6zm11-15l-2 7-4 8-1-2-1-4 2-9 5-7 1 7zm-4-12a21 21 0 01-10 0l5-5 5 5z" fill="#152849"/><path d="M17 19c3 2 8 10 5 23-3-3-9-12-5-23z" fill="#76de49"/><path d="M26 42c4-3 9-11 6-24-4 4-9 13-6 24z" fill="#37a806"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/comcast.svg b/go.dev/testdata/golden/images/logos/comcast.svg
new file mode 100644
index 0000000..f8ce7a1
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/comcast.svg
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 width="1000.258px" height="353.502px" viewBox="0 0 1000.258 353.502" enable-background="new 0 0 1000.258 353.502"

+	 xml:space="preserve">

+<g>

+	<path fill="#FFFFFF" d="M500.044,17.759c3.688-6.022,9.807-12.323,16.396-14.988c11.341-5.16,26.542-2.941,35.795,5.224

+		c8.954,8.112,13.496,19.23,11.353,31.66c2.196-0.405,4.413-1.811,6.738-2.611c13.899-3.923,28.599,0.331,37.511,12.248

+		c6.694,8.507,8.443,21.724,4.425,32.001c-1.994,5.169-5.395,9.817-9.817,13.783l0.446,0.448

+		c12.931,0.628,25.639,10.67,29.561,22.982c4.253,12.419,0.512,25.69-8.57,34.773c-7.42,7.334-16.961,9.872-27.567,9.658H403.765

+		c-15.81,0.341-28.026-6.663-34.603-20.722c-5.16-12.068-2.612-27.503,7.024-36.702c6.076-6.354,13.688-8.956,21.896-10.266

+		c-9.295-8.624-13.773-20.424-11.161-33.078c1.866-10.254,10.607-20.637,20.648-24.219c8.847-3.518,20.83-2.9,28.932,1.875

+		l0.288-0.352c-2.441-13.954,3.742-26.543,15.317-34.261c10.32-6.981,26.821-6.801,36.926,0.62

+		C493.574,8.613,497.315,13.389,500.044,17.759"/>

+	<path fill="#645FAA" d="M554.558,22.972c4.137,8.347,1.707,19.284-2.611,26.778l-33.408,75.163l-0.289,0.352l-12.076-76.25

+		c-0.969-7.322,6.854-10.446,11.459-13.964c-0.234-1.076-1.418-1.023-2.163-1.524l-11.288-0.118l-0.343-0.341

+		c0.064-9.466,5.16-18.207,13.794-22.801c9.02-5.212,21.725-3.795,29.549,2.889C550.359,15.99,553.035,19.283,554.558,22.972"/>

+	<path fill="#C9234A" d="M493.008,20.36c2.73,5.053,4.308,10.789,3.348,17.141l-13.623,87.305c0.074,0.106-0.053,0.224-0.161,0.276

+		l-3.528-7.024L444.9,41.808c-3.177-9.818-0.234-20.083,6.918-27.12c7.206-7.312,19.06-9.295,28.484-5.329

+		C485.291,11.513,490.056,15.479,493.008,20.36"/>

+	<path fill="#0089CF" d="M603.978,57.115c4.594,7.834,3.561,19.689-1.547,26.959c-3.164,5.106-8.389,7.654-12.813,11.001

+		l-70.748,48.565h-0.162l0.79-2.323L557,56.668c5.618-9.978,16.342-15.031,27.684-13.507

+		C592.455,44.58,600.226,49.632,603.978,57.115"/>

+	<path fill="#F36F21" d="M443.259,56.668l39.026,86.963h-0.628l-78.68-54.227c-8.007-6.747-11.289-16.853-8.571-27.065

+		c2.036-7.654,8.389-14.806,15.947-17.643C422.728,40.166,436.67,44.984,443.259,56.668"/>

+	<path fill="#0DB14B" d="M624.509,118.505c3.922,8.283,2.377,19.625-3.23,26.67c-5.563,6.749-13.005,10.437-21.736,10.202

+		l-83.893,0.054l70.279-48.896c6.867-4.424,17.303-5.225,24.797-1.643C616.513,107.163,621.961,112.834,624.509,118.505"/>

+	<path fill="#FDB913" d="M376.08,118.505c-3.911,8.283-2.377,19.625,3.241,26.67c5.564,6.749,12.983,10.437,21.725,10.202

+		l83.893,0.054l-70.28-48.896c-6.865-4.424-17.3-5.225-24.784-1.643C384.085,107.163,378.639,112.834,376.08,118.505"/>

+	<path d="M225.435,205.65c-40.763,0-73.893,33.152-73.893,73.916c0,40.753,33.13,73.925,73.893,73.925

+		c40.764,0,73.916-33.172,73.916-73.925C299.351,238.803,266.199,205.65,225.435,205.65 M225.435,338.93

+		c-32.736,0-59.375-26.637-59.375-59.363c0-32.717,26.639-59.355,59.375-59.355c32.737,0,59.376,26.639,59.376,59.355

+		C284.811,312.293,258.172,338.93,225.435,338.93"/>

+	<path d="M862.724,280.504c-3.965-2.08-28.088-14.498-31.553-16.299c-12.653-6.471-17.141-12.185-17.141-21.864

+		c0-13.452,11.045-22.14,28.173-22.14c10.054,0,19.774,4.424,25.478,7.632c1.035,0.565,2.261,0.885,3.539,0.885

+		c3.987,0,7.26-3.272,7.26-7.259c0-2.686-1.473-5.043-3.635-6.301c-7.184-4.009-19.434-9.498-32.642-9.498

+		c-25.167,0-42.724,15.072-42.724,36.681c0,19.391,12.749,28.537,25.222,34.912c3.495,1.78,27.896,14.358,31.552,16.287

+		c9.637,5.042,14.967,12.611,14.967,21.321c0,11.672-9.891,24.08-28.194,24.08c-17.803,0-31.628-11.939-35.444-15.617l-1.142-1.088

+		l-10.755,9.807l1.257,1.258c4.775,4.735,22.237,20.19,46.084,20.19c26.735,0,42.714-19.646,42.714-38.63

+		C885.74,300.684,877.361,288.156,862.724,280.504"/>

+	<path d="M73.895,220.211c15.872,0,30.785,6.184,41.978,17.365c2.665,2.654,7.675,2.654,10.297,0

+		c1.386-1.354,2.121-3.176,2.121-5.127c0-1.93-0.735-3.774-2.121-5.128l-0.895-0.917c-13.837-13.389-32.097-20.754-51.38-20.754

+		C33.152,205.65,0,238.813,0,279.555c0,40.765,33.152,73.937,73.895,73.937c21.51,0,40.89-9.229,54.396-23.942l-10.287-10.297

+		c-10.873,12.067-26.607,19.678-44.11,19.678c-32.726,0-59.365-26.648-59.365-59.375C14.53,246.861,41.169,220.211,73.895,220.211"

+		/>

+	<path d="M574.941,220.211c15.852,0,30.785,6.184,41.977,17.365c2.654,2.654,7.666,2.654,10.288,0

+		c1.386-1.354,2.153-3.176,2.153-5.127c0-1.93-0.768-3.774-2.153-5.128l-0.885-0.917c-13.868-13.389-32.107-20.754-51.38-20.754

+		c-40.752,0-73.916,33.162-73.916,73.904c0,40.765,33.164,73.937,73.916,73.937c21.5,0,40.88-9.229,54.407-23.942l-10.298-10.297

+		c-10.873,12.067-26.629,19.678-44.109,19.678c-32.737,0-59.387-26.648-59.387-59.375

+		C515.554,246.861,542.204,220.211,574.941,220.211"/>

+	<path d="M449.741,205.65c-2.729,0-4.883,1.759-6.056,4.029c-1.194,2.27-43.492,106.897-43.502,106.897

+		c0,0-42.298-104.628-43.482-106.897c-1.183-2.271-3.335-4.029-6.064-4.029c-3.188,0-5.586,2.345-6.428,5.299

+		c-0.842,2.973-24.709,134.653-24.709,134.653c-0.086,0.428-0.128,0.876-0.128,1.333c0,3.623,2.953,6.556,6.556,6.556

+		c3.198,0,5.863-2.28,6.438-5.297l20.669-112.664c0,0,39.879,98.518,41.041,100.862c1.173,2.335,3.347,4.158,6.119,4.158

+		c2.771,0,4.936-1.823,6.097-4.158c1.173-2.345,41.051-100.862,41.051-100.862l21.479,117.151h13.348

+		c0,0-25.147-138.76-25.989-141.732C455.326,207.995,452.927,205.65,449.741,205.65"/>

+	<path d="M712.527,205.66c-2.761-0.01-4.902,1.791-6.107,4.136c-1.195,2.335-54.738,134.582-54.738,134.582

+		c-0.32,0.777-0.502,1.642-0.502,2.558c0,3.623,2.932,6.566,6.556,6.566c2.761,0,5.128-1.727,6.099-4.168L684.62,298.2h55.825

+		l22.174,54.481h14.166c0,0-56.987-140.551-58.159-142.886C717.462,207.451,715.298,205.65,712.527,205.66 M690.546,283.647

+		l21.98-54.046l22.002,54.046H690.546z"/>

+	<path d="M992.966,206.438h-82.293c-4.009,0-7.26,3.263-7.26,7.281c0,3.997,3.251,7.259,7.26,7.259h34.494V352.67h13.326V220.979

+		h34.473c4.009,0,7.292-3.262,7.292-7.259C1000.258,209.701,996.975,206.438,992.966,206.438"/>

+</g>

+</svg>

diff --git a/go.dev/testdata/golden/images/logos/curve.png b/go.dev/testdata/golden/images/logos/curve.png
new file mode 100644
index 0000000..8cfb618
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/curve.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/curve.svg b/go.dev/testdata/golden/images/logos/curve.svg
new file mode 100644
index 0000000..01fc55b
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/curve.svg
@@ -0,0 +1,34 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 134 48" style="enable-background:new 0 0 134 48;" xml:space="preserve">
+<g>
+	<path d="M21.3,34.4c-1-1.4-0.8-1.1-2.1-0.7c-8.2,3-15.4-3.9-14.3-11.1c0.4-2.7,1.3-5.1,3.5-6.8c2.8-2.3,6.1-3,9.6-1.9
+		c0.7,0.2,1.3,0.1,1.9-0.3c1-0.7,2.1-1.5,3.1-2.2c0.2-0.1,0.4-0.3,0.7-0.5c-1.2-0.5-2.2-1-3.2-1.4c-1.1-0.4-2.3-0.6-3.4-0.8
+		c-0.9,0-1.8,0-2.7,0c-1.3,0.3-2.8,0.4-4.1,1C4.4,11.8,1,16.1,0.1,22.3c0,0.1-0.1,0.3-0.1,0.4c0,0.9,0,1.8,0,2.7
+		c0.4,1.4,0.5,2.9,1.1,4.2c2.3,5.5,6.4,8.8,12.4,9.6c0.1,0,0.3,0.1,0.4,0.1c1,0,1.9,0,2.8,0c0.3,0.1,0.3,0.1,0.5,0
+		c1.9-0.2,3.7-0.8,5.4-1.7c0.5-0.2,0.5-0.5,0.2-1C22.2,35.9,21.8,35.2,21.3,34.4z"/>
+	<path d="M134,18.2c0-1.5,0-3,0-4.4c-0.1,0-0.3-0.1-0.4-0.1c-3.9,0-7.7,0-11.5,0c-0.1,0-0.2,0-0.4,0.1c0,6.7,0,13.3,0,19.9
+		c4.1,0,8.2,0,12.3,0c0-1.5,0-3,0-4.4c-2.6,0-5.1,0-7.8,0c0-1.2,0-2.2,0-3.4c2,0,4,0,6.1,0c0-1.5,0-2.9,0-4.3c-2,0-4,0-6.1,0
+		c0-1.1,0-2.2,0-3.3C128.8,18.2,131.4,18.2,134,18.2z"/>
+	<path d="M93.5,25.1c2.7-1.3,4-4,3.3-6.8s-3-4.6-6-4.6c-2.2,0-4.4,0-6.5,0c-0.2,0-0.4,0-0.7,0c0,6.7,0,13.2,0,19.9c1.5,0,3,0,4.5,0
+		c0-2.7,0-5.3,0-8.1c1.9,2.5,3.6,4.8,5.4,7.1c0.6,0.8,1.1,1.1,2.2,1c1.3-0.1,2.6,0,4,0c-2.2-2.9-4.3-5.7-6.5-8.5
+		C93.3,25.1,93.4,25.1,93.5,25.1z M92.6,20.1c-0.1,0.9-0.8,1.6-1.9,1.7c-0.1,0-0.3,0-0.4,0c-0.7,0-1.5,0-2.3,0c0-1.3,0-2.6,0-4
+		c1.1,0.1,2.2,0,3.2,0.2C92.2,18.2,92.7,19.1,92.6,20.1z"/>
+	<path d="M78,14.4c0-0.2,0-0.4,0-0.6c-1.6,0-3,0-4.5,0c0,0.3,0,0.5,0,0.8c0,3.6,0,7.1,0,10.6c0,0.4,0,0.9-0.1,1.3
+		c-0.4,2.5-2.9,3.8-5.2,2.8c-1.5-0.7-2.1-1.9-2.1-3.5c0-3.7,0-7.5,0-11.2c0-0.2,0-0.5,0-0.8c-1.6,0-3,0-4.5,0c0,1.3,0,2.5,0,3.7
+		c0,3.1-0.1,6.2,0.1,9.2c0.2,3.1,1.8,5.5,4.8,6.6c3.1,1.2,6.1,0.8,8.7-1.3c2-1.7,2.7-4,2.7-6.5C78,21.7,78,18.1,78,14.4z"/>
+	<path d="M54.3,26.9c-2.5,3.5-6.4,3.3-8.6,1.4c-2.5-2.1-2.8-6.1-0.5-8.6c1-1.2,2.4-1.9,3.9-1.9c2.2-0.1,3.9,1,5.2,2.8
+		c1.1-1,2.2-1.9,3.3-2.8c-2.3-3.6-7-5.2-11.2-3.9c-4.2,1.3-7.2,5.3-7.2,9.7s3,8.5,7.2,9.8s8.9-0.3,11.2-3.9
+		c-0.5-0.4-1.1-0.9-1.6-1.3C55.4,27.8,54.9,27.3,54.3,26.9z"/>
+	<path d="M113.8,13.7c-0.5,0-0.7,0.1-1,0.6c-1.3,2.9-2.5,5.7-3.8,8.6c-0.1,0.2-0.2,0.4-0.4,0.7c-0.1-0.3-0.2-0.4-0.3-0.7
+		c-1.3-2.9-2.5-5.8-3.8-8.7c-0.2-0.4-0.4-0.6-0.9-0.6c-1.2,0-2.5,0-3.6,0c-0.2,0-0.4,0-0.7,0.1c3.1,6.8,6.2,13.4,9.4,20.2
+		c3.1-6.8,6.2-13.5,9.4-20.2C116.6,13.8,115.2,13.8,113.8,13.7z"/>
+	<path d="M14.2,20.8c0.7,1,1.4,2,2.1,3.1c0.5,0.7,0.5,0.7,1.3,0.2c3.6-2.5,7.1-5,10.7-7.4c0.4-0.3,0.5-0.6,0.1-1
+		c-0.9-1-1.8-2.1-2.7-3.1c-0.1-0.1-0.3-0.2-0.4-0.4c-0.2,0.1-0.4,0.2-0.7,0.4c-3.3,2.4-6.8,4.7-10.1,7.1
+		C13.9,19.9,13.8,20.3,14.2,20.8z"/>
+	<path d="M30.4,20.8c-0.2-1-0.5-1.9-0.8-2.9c-0.4,0.2-0.6,0.4-0.8,0.5c-3.3,2.3-6.5,4.6-9.9,6.9c-1,0.7-1,0.9-0.3,1.9
+		s1.3,1.9,1.9,2.8c0.3,0.4,0.6,0.4,1,0.2c2.9-2,5.8-4,8.6-6c0.4-0.3,0.5-0.6,0.5-1.1C30.7,22.3,30.6,21.6,30.4,20.8z"/>
+	<path d="M22.5,31.7c-0.4,0.3-0.4,0.6-0.1,1c0.7,1,1.3,1.9,1.9,2.9c0.3,0.4,0.5,0.4,0.9,0.1c1.8-1.5,3.1-3.3,4-5.4
+		c0.5-1.3,1-2.5,1.1-3.9c-0.1,0-0.1,0-0.2,0C27.8,28,25.1,29.9,22.5,31.7z"/>
+</g>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/docker.svg b/go.dev/testdata/golden/images/logos/docker.svg
new file mode 100644
index 0000000..4242689
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/docker.svg
@@ -0,0 +1 @@
+<svg width="2500" height="2100" viewBox="0 0 256 215" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M38.617 173.984v-16.362c0-2.15 1.344-3.877 3.57-3.877h.616c2.225 0 3.563 1.729 3.563 3.877v34.447c0 8.4-4.15 15.084-11.382 19.342a21.374 21.374 0 0 1-10.945 2.985h-1.537c-8.402 0-15.077-4.153-19.342-11.38a21.314 21.314 0 0 1-2.984-10.947v-1.535c0-8.403 4.152-15.083 11.378-19.349a21.298 21.298 0 0 1 10.948-2.985h1.537c5.686 0 10.51 2.204 14.578 5.784zM7.924 191.3c0 6.068 2.941 10.63 8.258 13.54 2.15 1.176 4.484 1.808 6.937 1.808 5.956 0 10.374-2.81 13.421-7.857 1.417-2.348 2.077-4.917 2.077-7.648 0-5.26-2.49-9.365-6.729-12.414-2.57-1.848-5.463-2.775-8.618-2.775-6.492 0-11.164 3.28-13.968 9.106-.946 1.97-1.378 4.061-1.378 6.24zm65.324-23.1h1.074c8.978 0 15.806 4.355 20.133 12.192 1.73 3.135 2.656 6.557 2.656 10.142v1.535c0 8.4-4.142 15.093-11.385 19.343-3.353 1.967-7.057 2.984-10.943 2.984h-1.535c-8.402 0-15.079-4.153-19.342-11.38a21.316 21.316 0 0 1-2.987-10.947v-1.535c0-8.404 4.169-15.062 11.377-19.347 3.351-1.991 7.058-2.987 10.952-2.987zm-14.58 23.1c0 5.89 2.89 10.223 7.865 13.27 2.336 1.43 4.909 2.078 7.638 2.078 5.82 0 10.122-2.951 13.116-7.863 1.428-2.342 2.074-4.915 2.074-7.642 0-5.477-2.638-9.661-7.148-12.693-2.471-1.663-5.222-2.496-8.198-2.496-6.492 0-11.164 3.28-13.967 9.106-.948 1.97-1.38 4.061-1.38 6.24zm70.656-14.727c-1.17-.548-3.36-.73-4.624-.778-6.474-.244-11.158 3.402-13.906 9.113-.949 1.97-1.382 4.055-1.382 6.235 0 6.637 3.485 11.284 9.409 14.117 2.164 1.034 4.958 1.23 7.323 1.23 2.08 0 5.02-1.274 6.866-2.151l.32-.152h1.433l.158.032c1.762.367 3.092 1.484 3.092 3.38v.767c0 4.718-8.622 5.798-11.912 6.028-11.61.803-20.293-5.573-23.603-16.647-.575-1.923-.834-3.833-.834-5.837v-1.533c0-8.403 4.17-15.059 11.377-19.34 3.351-1.99 7.057-2.99 10.95-2.99h1.536c4.13 0 7.934 1.173 11.344 3.502l.28.194.177.292c.368.61.685 1.316.685 2.042v.767c0 1.978-1.48 3.042-3.266 3.386l-.148.026h-.458c-1.156 0-3.785-1.197-4.817-1.683zm25.134 5.247c3.01-3.014 6.03-6.022 9.085-8.986.851-.827 4.074-4.327 5.343-4.327h1.388l.158.033c1.768.367 3.092 1.486 3.092 3.386v.766c0 1.296-1.518 2.802-2.355 3.689-1.78 1.887-3.654 3.712-5.476 5.56l-9.362 9.504c4.031 4.04 8.058 8.083 12.056 12.154a313.304 313.304 0 0 1 3.301 3.396c.385.405.953.909 1.276 1.47.347.526.56 1.119.56 1.752v.8l-.045.185c-.435 1.768-1.557 3.194-3.516 3.194h-.617c-1.282 0-2.73-1.45-3.608-2.279-1.81-1.706-3.557-3.5-5.331-5.243l-5.949-5.84v9.334c0 2.15-1.346 3.878-3.569 3.878h-.61c-2.226 0-3.57-1.728-3.57-3.878v-52.596c0-2.15 1.345-3.87 3.57-3.87h.61c2.223 0 3.569 1.72 3.569 3.87v24.048zm96.577-13.313h.77c2.324 0 3.875 1.566 3.875 3.877 0 3.208-3.067 4.029-5.72 4.029-3.48 0-6.803 2.107-9.202 4.47-2.991 2.949-4.3 6.726-4.3 10.878v18.759c0 2.15-1.343 3.876-3.57 3.876h-.612c-2.227 0-3.569-1.725-3.569-3.876v-19.836c0-7.617 3.708-13.835 9.89-18.196 3.691-2.605 7.919-3.98 12.438-3.98zm-55.074 37.176c2.82.985 6.035.844 8.928.34 1.48-.629 5.264-2.28 6.656-2.038l.217.037.2.098c.85.412 1.661.995 2.095 1.86 1.014 2.027.527 4.065-1.465 5.216l-.663.383c-7.35 4.242-15.168 3.654-22.495-.308-3.503-1.894-6.183-4.705-8.16-8.132l-.462-.801c-4.719-8.172-4.082-16.768 1.24-24.539 1.837-2.686 4.238-4.761 7.045-6.384l1.062-.613c6.922-3.996 14.341-3.722 21.45-.215 3.823 1.886 6.92 4.697 9.054 8.394l.384.666c1.55 2.686-.458 5.026-2.531 6.626-2.406 1.856-4.835 4.09-7.141 6.08-5.142 4.439-10.276 8.888-15.414 13.33zm-6.655-4.674c5.75-4.93 11.502-9.865 17.237-14.816 1.96-1.69 4.109-3.444 6.053-5.221-1.56-1.966-4.166-3.383-6.38-4.228-4.47-1.703-8.877-1.131-12.976 1.235-5.365 3.098-7.65 8.031-7.45 14.17.08 2.418.73 4.748 2.013 6.805.452.725.957 1.406 1.503 2.055zM147.488 45.732h22.866v23.375h11.561c5.34 0 10.831-.951 15.887-2.664 2.485-.843 5.273-2.015 7.724-3.49-3.228-4.214-4.876-9.535-5.36-14.78-.66-7.135.78-16.421 5.608-22.005l2.404-2.78 2.864 2.303c7.211 5.793 13.276 13.889 14.345 23.118 8.683-2.554 18.878-1.95 26.531 2.467l3.14 1.812-1.652 3.226C246.933 68.946 233.4 72.86 220.17 72.167c-19.797 49.309-62.898 72.653-115.157 72.653-27 0-51.77-10.093-65.876-34.047l-.231-.39-2.055-4.182c-4.768-10.544-6.352-22.095-5.278-33.637l.323-3.457H51.45V45.732h22.865V22.866h45.733V0h27.44v45.732" fill="#364548"/><path d="M221.57 54.38c1.533-11.916-7.384-21.275-12.914-25.719-6.373 7.368-7.363 26.678 2.635 34.808-5.58 4.956-17.337 9.448-29.376 9.448H35.37c-1.17 12.567 1.036 24.14 6.075 34.045l1.667 3.05a56.536 56.536 0 0 0 3.455 5.184c6.025.387 11.58.52 16.662.408h.002c9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.078 2.323-16.806 2.738.4.007-.416.06-.418.06-.229.015-.517.048-.747.06-2.648.149-5.506.18-8.428.18-3.196 0-6.343-.06-9.862-.24l-.09.06c12.21 13.724 31.302 21.955 55.234 21.955 50.648 0 93.608-22.452 112.632-72.857 13.496 1.385 26.467-2.057 32.367-13.575-9.398-5.423-21.484-3.694-28.443-.196" fill="#22A0C8"/><path d="M221.57 54.38c1.533-11.916-7.384-21.275-12.914-25.719-6.373 7.368-7.363 26.678 2.635 34.808-5.58 4.956-17.337 9.448-29.376 9.448H44.048c-.598 19.246 6.544 33.855 19.18 42.687h.003c9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.526 2.443-17.254 2.858-.002 0-.163-.155-.165-.155 17.237 8.842 42.23 8.81 70.885-2.197 32.13-12.344 62.029-35.86 82.89-62.757-.314.142-.62.287-.917.436" fill="#37B1D9"/><path d="M35.645 88.186c.91 6.732 2.88 13.035 5.8 18.776l1.667 3.05a56.432 56.432 0 0 0 3.455 5.184c6.026.387 11.581.52 16.664.408 9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.496 2.383-17.224 2.799-.231.014-.634.017-.867.03-2.646.148-5.475.239-8.398.239-3.195 0-6.463-.061-9.98-.24 12.21 13.724 31.42 21.985 55.352 21.985 43.36 0 81.084-16.458 102.979-52.822H35.645" fill="#1B81A5"/><path d="M45.367 88.186c2.592 11.82 8.821 21.099 17.864 27.418 9.987-.22 18.136-1.4 24.312-3.54a1.761 1.761 0 0 1 1.153 3.326c-.822.286-1.678.552-2.562.805h-.003c-4.863 1.389-10.615 2.383-17.344 2.799 17.236 8.84 42.157 8.713 70.81-2.293 17.334-6.66 34.017-16.574 48.984-28.515H45.367" fill="#1D91B4"/><path d="M55.26 49.543h19.818v19.818H55.26V49.543zm1.651 1.652h1.564V67.71h-1.564V51.195zm2.94 0h1.627V67.71h-1.626V51.195zm3.002 0h1.627V67.71h-1.627V51.195zm3.004 0h1.626V67.71h-1.626V51.195zm3.003 0h1.626V67.71H68.86V51.195zm3.002 0h1.565V67.71h-1.565V51.195zM78.126 26.677h19.819v19.817h-19.82V26.677zm1.652 1.652h1.563v16.514h-1.563V28.329zm2.94 0h1.626v16.514h-1.625V28.329zm3.002 0h1.626v16.514H85.72V28.329zm3.003 0h1.626v16.514h-1.626V28.329zm3.003 0h1.627v16.514h-1.627V28.329zm3.002 0h1.566v16.514h-1.566V28.329z" fill="#23A3C2"/><path d="M78.126 49.543h19.819v19.818h-19.82V49.543zm1.652 1.652h1.563V67.71h-1.563V51.195zm2.94 0h1.626V67.71h-1.625V51.195zm3.002 0h1.626V67.71H85.72V51.195zm3.003 0h1.626V67.71h-1.626V51.195zm3.003 0h1.627V67.71h-1.627V51.195zm3.002 0h1.566V67.71h-1.566V51.195z" fill="#34BBDE"/><path d="M100.993 49.543h19.818v19.818h-19.818V49.543zm1.651 1.652h1.563V67.71h-1.563V51.195zm2.94 0h1.626V67.71h-1.626V51.195zm3.003 0h1.626V67.71h-1.626V51.195zm3.003 0h1.626V67.71h-1.626V51.195zm3.002 0h1.628V67.71h-1.628V51.195zm3.003 0h1.564V67.71h-1.564V51.195z" fill="#23A3C2"/><path d="M100.993 26.677h19.818v19.817h-19.818V26.677zm1.651 1.652h1.563v16.514h-1.563V28.329zm2.94 0h1.626v16.514h-1.626V28.329zm3.003 0h1.626v16.514h-1.626V28.329zm3.003 0h1.626v16.514h-1.626V28.329zm3.002 0h1.628v16.514h-1.628V28.329zm3.003 0h1.564v16.514h-1.564V28.329zM123.859 49.543h19.818v19.818h-19.818V49.543zm1.652 1.652h1.563V67.71h-1.563V51.195zm2.94 0h1.626V67.71h-1.626V51.195zm3.002 0h1.626V67.71h-1.626V51.195zm3.003 0h1.627V67.71h-1.627V51.195zm3.003 0h1.627V67.71h-1.627V51.195zm3.003 0h1.564V67.71h-1.564V51.195z" fill="#34BBDE"/><path d="M123.859 26.677h19.818v19.817h-19.818V26.677zm1.652 1.652h1.563v16.514h-1.563V28.329zm2.94 0h1.626v16.514h-1.626V28.329zm3.002 0h1.626v16.514h-1.626V28.329zm3.003 0h1.627v16.514h-1.627V28.329zm3.003 0h1.627v16.514h-1.627V28.329zm3.003 0h1.564v16.514h-1.564V28.329z" fill="#23A3C2"/><path d="M123.859 3.81h19.818V23.63h-19.818V3.81zm1.652 1.651h1.563v16.516h-1.563V5.46zm2.94 0h1.626v16.516h-1.626V5.46zm3.002 0h1.626v16.516h-1.626V5.46zm3.003 0h1.627v16.516h-1.627V5.46zm3.003 0h1.627v16.516h-1.627V5.46zm3.003 0h1.564v16.516h-1.564V5.46z" fill="#34BBDE"/><path d="M146.725 49.543h19.818v19.818h-19.818V49.543zm1.65 1.652h1.565V67.71h-1.564V51.195zm2.94 0h1.627V67.71h-1.626V51.195zm3.004 0h1.627V67.71h-1.627V51.195zm3.002 0h1.627V67.71h-1.627V51.195zm3.004 0h1.626V67.71h-1.626V51.195zm3.002 0h1.564V67.71h-1.564V51.195z" fill="#23A3C2"/><path d="M96.704 101.492a5.468 5.468 0 1 1-.002 10.935 5.468 5.468 0 0 1 .002-10.935" fill="#D3ECEC"/><path d="M96.704 103.043c.5 0 .977.094 1.417.265a1.598 1.598 0 0 0 .798 2.98c.605 0 1.13-.335 1.402-.831a3.915 3.915 0 1 1-3.617-2.414M0 90.162h254.327c-5.537-1.404-17.52-3.302-15.544-10.56-10.07 11.652-34.353 8.175-40.482 2.43-6.824 9.898-46.554 6.135-49.325-1.576-8.556 10.041-35.067 10.041-43.623 0-2.773 7.711-42.502 11.474-49.327 1.575-6.128 5.746-30.41 9.223-40.48-2.428C17.522 86.86 5.539 88.758 0 90.163" fill="#364548"/><path d="M111.237 140.89c-13.54-6.425-20.971-15.16-25.106-24.694-5.03 1.435-11.075 2.353-18.1 2.747-2.646.148-5.43.224-8.35.224-3.368 0-6.917-.1-10.643-.297 12.417 12.41 27.692 21.964 55.976 22.138 2.088 0 4.16-.04 6.223-.118" fill="#BDD9D7"/><path d="M91.16 124.994c-1.873-2.543-3.69-5.739-5.026-8.8-5.03 1.437-11.077 2.355-18.103 2.75 4.826 2.619 11.727 5.046 23.13 6.05" fill="#D3ECEC"/></g></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/drone.svg b/go.dev/testdata/golden/images/logos/drone.svg
new file mode 100644
index 0000000..179e6f8
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/drone.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 104 40" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><path d="M22.688 0C5.622 0 0 14.88 0 20.32h13.83s1.952-7.1 8.86-7.1 8.86 7.1 8.86 7.1h13.747C45.297 14.865 39.742 0 22.692 0m17.533 23.856h-8.68s-1.518 7.1-8.86 7.1-8.86-7.1-8.86-7.1h-8.52c0 1.818 6.7 14.68 17.467 14.68s17.45-10.577 17.45-14.68m-23.39-1.618a5.81 5.81 0 0 1 5.822-5.822 5.81 5.81 0 0 1 5.822 5.822 5.81 5.81 0 0 1-5.822 5.822 5.81 5.81 0 0 1-5.822-5.822zm40.393-9.592a7.35 7.35 0 0 1 2.354.386c.738.28 1.37.667 1.897 1.194s.95 1.194 1.23 2.002c.316.808.457 1.757.457 2.846 0 .95-.105 1.827-.35 2.635s-.597 1.5-1.124 2.073c-.492.597-1.124 1.054-1.862 1.37-.738.35-1.616.492-2.6.492h-5.62V12.54h5.62zm-.176 10.68a3.42 3.42 0 0 0 1.194-.211c.386-.14.738-.35 1.054-.667a3.04 3.04 0 0 0 .738-1.23c.176-.492.28-1.124.28-1.827 0-.667-.07-1.265-.176-1.792a4.1 4.1 0 0 0-.632-1.37c-.28-.386-.667-.667-1.16-.878s-1.1-.316-1.792-.316h-2.038v8.256h2.53zm10.328-7.06v1.757h.035c.105-.28.28-.562.492-.808s.457-.457.703-.632c.28-.176.562-.316.878-.422a2.96 2.96 0 0 1 .949-.141c.176 0 .35.035.562.105v2.424c-.105-.035-.28-.035-.457-.07s-.35-.035-.492-.035c-.492 0-.878.07-1.194.246s-.597.386-.808.667-.35.597-.422.95-.14.773-.14 1.194v4.286h-2.6v-9.5h2.494zm4.4 2.705c.246-.632.562-1.16.984-1.58a4.74 4.74 0 0 1 1.546-1.019c.597-.246 1.265-.35 2.002-.35s1.405.105 2.038.35c.597.246 1.124.562 1.546 1.02a4.03 4.03 0 0 1 .984 1.581c.246.632.35 1.3.35 2.073s-.105 1.44-.35 2.038-.562 1.124-.984 1.58c-.422.422-.95.773-1.546.984-.597.246-1.265.35-2.038.35-.738 0-1.405-.105-2.002-.35s-1.124-.562-1.546-.984a4.03 4.03 0 0 1-.984-1.581c-.246-.597-.35-1.3-.35-2.038 0-.773.105-1.475.35-2.073zm2.354 3.162c.07.35.2.667.386.984.176.28.422.527.703.703s.667.246 1.1.246c.457 0 .808-.07 1.124-.246a1.69 1.69 0 0 0 .703-.703c.176-.28.316-.597.386-.984.07-.35.105-.738.105-1.124s-.035-.738-.105-1.124a3.03 3.03 0 0 0-.386-.984c-.176-.28-.422-.527-.703-.703a2.22 2.22 0 0 0-1.124-.281c-.457 0-.808.105-1.1.28s-.527.422-.703.703a2.73 2.73 0 0 0-.386.984c-.07.35-.105.738-.105 1.124s.035.773.105 1.124zm11.242-5.867V17.6h.07c.316-.562.773-.95 1.3-1.194s1.054-.386 1.616-.386c.703 0 1.265.105 1.72.28a2.43 2.43 0 0 1 1.054.773 3.26 3.26 0 0 1 .527 1.23c.105.492.14 1.02.14 1.616v5.832h-2.6v-5.34c0-.773-.105-1.37-.35-1.757s-.667-.562-1.3-.562c-.703 0-1.23.2-1.546.632s-.492 1.124-.492 2.073v4.953h-2.6v-9.485zm11.207 7.202c.386.386.95.562 1.686.562.527 0 .984-.14 1.37-.386s.597-.527.703-.843h2.284c-.35 1.124-.913 1.932-1.686 2.424s-1.686.738-2.74.738c-.738 0-1.405-.105-2.002-.35s-1.1-.562-1.5-1.02-.738-.95-.95-1.58a6.14 6.14 0 0 1-.351-2.002c0-.703.105-1.37.35-1.967s.562-1.124.984-1.58.95-.808 1.546-1.054a5.17 5.17 0 0 1 1.967-.386c.808 0 1.5.14 2.108.457a4.29 4.29 0 0 1 1.475 1.265c.386.527.667 1.124.843 1.792a5.99 5.99 0 0 1 .176 2.108h-6.85c-.035.843.176 1.475.597 1.827zm2.915-5c-.316-.35-.773-.527-1.405-.527-.422 0-.773.07-1.02.2a2.02 2.02 0 0 0-.667.527 1.75 1.75 0 0 0-.351.667c-.07.246-.105.457-.105.632h4.25c-.176-.667-.386-1.16-.703-1.5z" stroke="none" fill="#252728" fill-rule="nonzero"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/dropbox-icon.svg b/go.dev/testdata/golden/images/logos/dropbox-icon.svg
new file mode 100644
index 0000000..135a794
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/dropbox-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 67 62" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><path d="M18.874.02L0 12.18l13.066 10.526L32 11.032m-32 22l18.874 12.4 13.126-11-18.934-11.736M32 34.422l13.188 11L64 33.152 50.994 22.686M64 12.28L45.188 0 32 11l18.994 11.674M32.06 36.778L18.872 47.726l-5.686-3.7V48.2L32.06 59.522 50.934 48.2v-4.174l-5.686 3.7" stroke="none" fill="#007ee5" fill-rule="nonzero"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/dropbox.png b/go.dev/testdata/golden/images/logos/dropbox.png
new file mode 100644
index 0000000..d17804a
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/dropbox.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/dropbox.svg b/go.dev/testdata/golden/images/logos/dropbox.svg
new file mode 100644
index 0000000..ec63303
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/dropbox.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 48"><defs><style>.cls-1{fill:none;}.cls-2{fill:#0061ff;}</style></defs><title>Dropbox</title><rect class="cls-1" width="134" height="48"/><path class="cls-2" d="M15.55,14.53l-7.78,5,7.78,5-7.78,5L0,24.42l7.78-5L0,14.53l7.78-5ZM7.73,31l7.78-5,7.77,5-7.77,5Zm7.82-6.57,7.77-5L15.55,14.5l7.73-5,7.78,5-7.78,5,7.78,5-7.78,5-7.73-5Z" transform="translate(0 -0.22)"/><path d="M37.14,14.26h6.28c4,0,7.32,2.32,7.32,7.61V23c0,5.33-3.1,7.73-7.2,7.73h-6.4Zm3.51,3V27.71h2.69c2.28,0,3.81-1.48,3.81-4.79v-.87c0-3.31-1.61-4.8-3.93-4.8Zm12,.16h2.81l.46,3.1c.53-2.11,1.9-3.22,4.38-3.22h.87v3.55H59.68c-2.85,0-3.56,1-3.56,3.81v6.12H52.65V17.41Zm9.22,7V24c0-4.46,2.85-6.9,6.74-6.9s6.74,2.44,6.74,6.9v.37c0,4.38-2.68,6.74-6.74,6.74-4.34,0-6.78-2.36-6.78-6.74Zm9.93,0V24c0-2.49-1.24-4-3.23-4s-3.23,1.36-3.23,4v.33c0,2.4,1.25,3.77,3.23,3.77s3.19-1.37,3.19-3.77Zm5.37-6.91H80L80.33,20a4.5,4.5,0,0,1,4.38-2.85c3.39,0,5.63,2.44,5.63,7v.36c0,4.39-2.48,6.7-5.63,6.7a4.35,4.35,0,0,1-4.26-2.48V35.5H77.09V17.55Zm9.72,6.91v-.29c0-2.64-1.36-4-3.18-4s-3.23,1.49-3.23,4v.25c0,2.36,1.24,3.85,3.19,3.85S86.89,26.9,86.89,24.42Zm8.65,4-.29,2.44h-3V12.94h3.4v6.83A4.36,4.36,0,0,1,100,17.08c3.18,0,5.54,2.23,5.54,6.66v.42c0,4.42-2.23,6.94-5.62,6.94a4.42,4.42,0,0,1-4.39-2.81ZM102,24.16v-.33c0-2.44-1.32-3.81-3.19-3.81s-3.22,1.53-3.22,3.85v.29c0,2.48,1.28,3.93,3.18,3.93S102,26.8,102,24.16Zm5,.2V24c0-4.47,2.86-6.91,6.75-6.91s6.74,2.44,6.74,6.91v.36c0,4.39-2.73,6.75-6.74,6.75C109.44,31.06,107,28.75,107,24.36Zm10,0V24c0-2.48-1.24-4-3.22-4s-3.23,1.37-3.23,4v.33c0,2.4,1.24,3.77,3.23,3.77S117,26.73,117,24.32Zm8.07-.49-4.68-6.41h4l2.69,4,2.73-4h4L129,23.78l5,6.94h-3.93L127,26.3l-3,4.42h-4.1l5.09-6.9Z" transform="translate(0 -0.22)"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/economist.svg b/go.dev/testdata/golden/images/logos/economist.svg
new file mode 100644
index 0000000..666cef8
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/economist.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="250"
+   height="127.55556"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <g
+     transform="translate(-35.81662,-618.39722)"
+     id="layer1">
+    <path
+       d="M 35.81662,682.17501 L 35.81662,618.39722 L 160.81662,618.39722 L 285.81662,618.39722 L 285.81662,682.17501 L 285.81662,745.95278 L 160.81662,745.95278 L 35.81662,745.95278 L 35.81662,682.17501 z M 89.69602,710.02401 C 90.855184,709.62034 92.416414,708.60572 93.331837,707.66115 L 94.069269,706.90022 L 93.715395,706.05327 L 93.361512,705.20632 L 92.533514,706.00044 C 90.927667,707.54055 88.775596,708.22901 87.036538,707.75895 C 84.23187,707.00085 82.705504,703.5339 82.705504,697.92154 C 82.705504,692.2949 84.269487,689.65189 87.60982,689.63362 C 89.615437,689.62265 90.507377,690.53458 91.146483,693.24949 C 91.393108,694.29712 91.480666,694.42031 91.89889,694.30808 C 92.15919,694.23823 92.59718,694.17971 92.87218,694.17804 C 93.362554,694.17507 93.37217,694.12406 93.37217,691.52615 L 93.37217,688.87729 L 91.761057,688.50134 C 89.283538,687.92321 86.423536,687.8282 84.710981,688.26711 C 80.034371,689.46569 77.384482,693.45344 77.375463,699.30612 C 77.367904,704.20944 79.243102,707.87508 82.605889,709.53058 C 84.783438,710.60258 87.493065,710.79115 89.69602,710.02401 z M 112.25438,710.02868 C 113.93272,709.56068 115.01937,708.97034 116.20691,707.88144 C 119.00092,705.31948 120.2532,701.22488 119.52726,697.02481 C 118.55511,691.40028 114.52714,687.95278 108.92774,687.95278 C 102.5098,687.95278 98.474626,692.32503 98.486568,699.26611 C 98.495576,704.50102 100.79286,708.2485 104.96054,709.82687 C 107.12154,710.64527 109.77943,710.71881 112.25438,710.02868 z M 107.48329,708.30392 C 105.15,706.90341 103.95847,703.38076 103.94444,697.84168 C 103.93532,694.24657 104.32059,692.52102 105.43397,691.1703 C 107.6281,688.50844 111.38592,689.63836 113.08019,693.46939 C 113.95725,695.45261 114.31042,697.39509 114.31956,700.28611 C 114.333,704.54219 113.37234,707.26096 111.47542,708.33535 C 110.26028,709.02359 108.6613,709.011 107.48329,708.30392 z M 166.81662,710.13787 C 169.17371,709.63088 171.78891,707.73225 173.01724,705.63625 C 174.34365,703.3729 174.93993,699.96469 174.49215,697.20599 C 173.61107,691.77787 169.9262,688.31662 164.7055,688.01326 C 161.10865,687.80426 158.34854,688.76637 156.28471,690.94855 C 154.35533,692.98859 153.38047,695.8234 153.37931,699.39722 C 153.3768,707.19106 159.13153,711.79092 166.81662,710.13787 z M 162.5308,708.38239 C 160.14891,707.172 158.85194,703.42889 158.84,697.73056 C 158.83141,693.63998 159.48203,691.59536 161.19629,690.32559 C 162.09951,689.65656 163.95732,689.56656 165.07665,690.13762 C 167.70758,691.47981 169.17846,695.04573 169.21687,700.175 C 169.24756,704.27038 168.38662,706.97794 166.66363,708.20482 C 165.63546,708.93694 163.77902,709.0167 162.5308,708.38239 z M 247.36529,709.88831 C 248.96922,709.29663 250.71182,707.57495 251.22189,706.07797 C 251.64294,704.84224 251.71081,702.73654 251.35975,701.80058 C 250.73585,700.1372 249.21808,698.72005 244.87387,695.74467 C 243.92758,695.09657 242.95258,694.24144 242.70721,693.84442 C 242.17371,692.9812 242.12651,691.57711 242.60788,690.88984 C 243.31956,689.87379 245.06215,689.34789 246.46528,689.72571 C 247.49637,690.00336 247.93339,690.54846 248.48743,692.24797 C 248.74411,693.03535 248.97737,693.39139 249.22823,693.3787 C 249.42962,693.36852 249.94439,693.34352 250.37218,693.32314 L 251.14995,693.28611 L 251.14995,691.30198 C 251.14995,689.90128 251.05883,689.22673 250.84005,689.00795 C 250.6696,688.8375 249.56947,688.51722 248.39532,688.29621 C 242.10637,687.11242 238.47839,689.38083 238.48545,694.49237 C 238.48937,697.33555 239.4784,698.7061 243.52279,701.47298 C 246.93678,703.80857 248.07981,705.45539 247.3378,706.96945 C 246.78728,708.09278 245.95341,708.50834 244.24982,708.50834 C 242.9008,708.50834 242.64707,708.43979 242.14778,707.94051 C 241.83549,707.62821 241.33912,706.77821 241.04477,706.05162 C 240.47834,704.65349 240.05128,704.40081 238.78977,704.71744 C 238.28009,704.84536 238.26106,704.92499 238.26106,706.9298 C 238.26106,708.33089 238.3517,709.07952 238.53883,709.22415 C 238.69161,709.34223 239.46662,709.61758 240.26106,709.83604 C 243.34403,710.68381 245.17232,710.69727 247.36529,709.88831 z M 268.39206,709.69494 C 269.59939,709.217 269.71131,709.11422 269.77738,708.42274 C 269.83933,707.77448 269.79362,707.69184 269.44679,707.82492 C 269.22544,707.90986 268.44308,708.02992 267.70823,708.0917 C 265.99713,708.23558 264.9989,707.7618 264.37217,706.50833 C 263.96039,705.6848 263.92244,705.09254 263.85584,698.45278 L 263.78393,691.28612 L 266.21695,691.28612 L 268.64994,691.28612 L 268.7781,690.64537 C 268.84857,690.29297 268.97192,689.74296 269.05219,689.42314 L 269.19812,688.84167 L 266.50738,688.84167 L 263.81662,688.84167 L 263.81662,685.95278 L 263.81662,683.06389 L 262.72505,683.06389 L 261.63346,683.06389 L 261.48723,683.92932 C 261.26583,685.23988 260.18788,687.34341 259.39646,688.00935 C 258.68477,688.6082 257.45801,689.06037 256.53883,689.06265 C 256.08715,689.06377 256.03884,689.17125 256.03884,690.175 L 256.03884,691.28612 L 257.35142,691.28612 L 258.664,691.28612 L 258.75897,698.45278 C 258.86162,706.19794 258.96775,706.97814 260.12499,708.49538 C 260.43744,708.90501 261.22088,709.50902 261.86595,709.83761 C 262.95111,710.39037 263.1899,710.42681 265.05872,710.32497 C 266.44231,710.24956 267.49237,710.05109 268.39206,709.69494 z M 70.278314,710.03858 L 71.073339,709.90706 L 71.463384,706.87436 C 71.677913,705.20638 71.907648,703.56667 71.973916,703.23056 C 72.091411,702.63462 72.068892,702.61945 71.066618,702.61945 C 70.087213,702.61945 70.03884,702.64896 70.03884,703.24652 C 70.03884,704.35933 69.363269,705.91456 68.581855,706.60065 C 67.54716,707.50912 66.574536,707.72787 63.563463,707.72931 C 59.667975,707.73118 59.943515,708.23587 59.85851,700.94328 L 59.789291,695.00498 L 62.747397,695.10787 C 66.77664,695.24801 67.291641,695.5497 67.698769,698.00834 C 67.824777,698.76932 67.898596,698.84165 68.54891,698.8414 L 69.261066,698.84114 L 69.285045,693.95252 L 69.309017,689.06389 L 68.586566,689.06389 C 67.875104,689.06389 67.860409,689.08489 67.621064,690.44369 C 67.484572,691.21857 67.196594,692.0049 66.964198,692.2373 C 66.219072,692.98243 63.80125,693.25837 60.98329,692.91989 L 59.816619,692.77976 L 59.816619,687.14405 L 59.816619,681.50833 L 62.538845,681.52541 C 64.036066,681.5348 65.658816,681.66238 66.144953,681.80891 C 67.250262,682.14206 67.943415,683.11774 68.151942,684.63393 L 68.306094,685.75469 L 69.11691,685.68708 L 69.927734,685.61944 L 69.927734,682.39723 L 69.927734,679.17501 L 59.98374,679.17501 L 50.039744,679.17501 L 50.03929,679.73527 C 50.038882,680.24437 50.161684,680.31888 51.38395,680.55116 C 54.153376,681.07747 54.038839,680.47055 54.038839,694.61945 C 54.038839,707.492 54.028121,707.60793 52.778567,708.2425 C 52.432826,708.41807 51.674951,708.63084 51.094395,708.71532 C 50.16762,708.85016 50.038843,708.93463 50.038843,709.40768 L 50.038843,709.94645 L 56.983288,710.00845 C 60.802732,710.04256 65.177733,710.09288 66.705506,710.12028 C 68.233287,710.14769 69.84105,710.11092 70.278314,710.03858 z M 135.81322,709.675 C 135.80739,709.19958 135.51494,708.94156 134.5944,708.59969 C 133.25627,708.10275 133.17706,707.675 133.16249,700.86744 C 133.14856,694.35635 133.23493,693.78607 134.44992,692.36663 C 135.37875,691.28149 136.31884,690.84167 137.7094,690.84167 C 140.81421,690.84167 141.51485,693.05686 141.31752,702.2494 C 141.19474,707.96883 141.09883,708.31332 139.51755,708.71419 C 138.87502,708.87708 138.70551,709.02784 138.70551,709.43642 L 138.70551,709.95278 L 144.27652,709.95278 L 149.84753,709.95278 L 149.77651,709.45812 C 149.72,709.06444 149.50676,708.92968 148.73223,708.79811 C 147.38391,708.56907 146.7529,708.09808 146.58333,707.19415 C 146.50471,706.77506 146.42051,703.4993 146.39622,699.9147 C 146.35954,694.50007 146.28921,693.20891 145.98061,692.28435 C 145.44943,690.69308 144.46231,689.46802 143.10565,688.71645 C 142.03429,688.12293 141.73674,688.06391 139.81662,688.06406 C 137.21079,688.06426 136.1678,688.48548 134.25472,690.31025 L 132.92773,691.57599 L 132.92528,690.48661 C 132.92393,689.88744 132.8632,689.03669 132.79031,688.59603 L 132.65779,687.79483 L 131.24663,688.09064 C 130.13926,688.32276 125.7437,688.84051 124.87218,688.84148 C 124.78051,688.84158 124.70551,689.09166 124.70551,689.39722 C 124.70551,689.86767 124.80874,689.95278 125.37931,689.95278 C 126.64739,689.95278 127.54025,690.49949 127.80003,691.43503 C 128.14077,692.66213 128.09645,706.48989 127.74852,707.50255 C 127.44127,708.39682 126.71852,708.83375 125.53883,708.83839 C 124.79898,708.84129 124.70551,708.90398 124.70551,709.39723 L 124.70551,709.95278 L 130.26106,709.95278 C 134.55917,709.95278 135.81585,709.88992 135.81322,709.675 z M 190.66541,709.47018 C 190.61465,709.12528 190.3242,708.89784 189.6474,708.67304 C 189.12656,708.50004 188.57656,708.1422 188.42517,707.87785 C 188.22931,707.53581 188.12951,705.59312 188.07909,701.14065 C 188.01085,695.11452 188.02615,694.84245 188.49455,693.75362 C 189.40077,691.64706 191.08467,690.62537 193.18587,690.90719 C 194.37377,691.06652 195.08119,691.77656 195.54579,693.27582 C 195.86978,694.32134 195.92772,695.48612 195.92772,700.95278 C 195.92772,705.66968 195.85394,707.52606 195.65249,707.87785 C 195.50112,708.1422 194.95112,708.50004 194.43028,708.67304 C 193.75347,708.89784 193.46303,709.12528 193.41228,709.47018 L 193.34126,709.95278 L 198.46783,709.95278 L 203.59439,709.95278 L 203.59439,709.40729 C 203.59439,708.96179 203.45448,708.83555 202.83114,708.71862 C 201.26435,708.42469 201.2686,708.44448 201.19588,701.11841 L 201.13069,694.55222 L 201.71776,693.35228 C 202.46479,691.8254 203.6091,691.02498 205.23809,690.8899 C 206.84247,690.75685 207.71316,691.23176 208.3361,692.57967 C 208.79661,693.57616 208.81662,693.91217 208.81662,700.6514 C 208.81662,707.23144 208.78967,707.71317 208.39722,708.14706 C 208.16655,708.40209 207.64155,708.67384 207.23055,708.75094 C 206.63002,708.86359 206.48328,708.99536 206.48328,709.42196 L 206.48328,709.95278 L 212.00803,709.95278 L 217.53277,709.95278 L 217.43162,709.42369 C 217.35063,708.99999 217.15586,708.87118 216.45397,708.77703 C 215.22544,708.61225 214.54354,708.09457 214.27333,707.12155 C 214.13718,706.63134 214.0408,703.66271 214.04008,699.93756 C 214.03873,693.00624 213.93868,692.2648 212.7527,690.39723 C 212.32761,689.72782 211.71894,689.17682 210.91158,688.73055 C 209.82246,688.12854 209.51156,688.0639 207.70551,688.0639 C 205.95979,688.0639 205.54266,688.14386 204.4247,688.69283 C 203.72024,689.03874 202.55943,689.88874 201.8451,690.58172 L 200.54634,691.84166 L 199.75796,690.58553 C 199.22054,689.72924 198.62693,689.12797 197.89311,688.69664 C 196.9139,688.12107 196.62585,688.0639 194.7055,688.0639 C 192.15621,688.0639 191.14137,688.47808 189.13162,690.33875 L 187.81662,691.55621 L 187.81357,690.14338 C 187.81191,689.36633 187.75388,688.51945 187.68462,688.26143 C 187.5623,687.80568 187.51831,687.80078 186.14153,688.08937 C 185.02961,688.32245 180.6347,688.8405 179.76106,688.84148 C 179.66939,688.84158 179.59439,689.09166 179.59439,689.39722 C 179.59439,689.85989 179.7003,689.95278 180.2279,689.95278 C 181.41006,689.95278 182.28944,690.41085 182.61829,691.19794 C 183.07941,692.30153 183.06803,706.52017 182.60514,707.628 C 182.2519,708.47343 181.57,708.84167 180.3577,708.84167 C 179.69166,708.84167 179.59439,708.91245 179.59439,709.39723 L 179.59439,709.95278 L 185.16541,709.95278 L 190.73642,709.95278 L 190.66541,709.47018 z M 233.28483,709.60128 C 233.21065,709.40794 233.14994,709.17093 233.14994,709.07461 C 233.14994,708.97829 232.68875,708.84748 232.12506,708.78394 C 230.55811,708.60733 230.22392,708.13378 230.01967,705.80054 C 229.92537,704.72316 229.8411,700.23109 229.83241,695.81816 L 229.81662,687.79466 L 228.2055,688.07462 C 227.3194,688.22861 225.44778,688.46912 224.04637,688.60911 C 222.64495,688.74911 221.46082,688.90117 221.41497,688.94702 C 221.15404,689.20795 221.68487,689.95278 222.13176,689.95278 C 223.0599,689.95278 224.04855,690.43808 224.3643,691.04867 C 224.77884,691.8503 225.02671,700.25651 224.76301,704.57039 C 224.54025,708.21435 224.36933,708.56027 222.68256,708.78064 C 221.71619,708.90689 221.38218,709.13544 221.37557,709.675 C 221.37293,709.89047 222.72326,709.95278 227.39595,709.95278 C 232.79754,709.95278 233.40579,709.91647 233.28483,709.60128 z M 228.50415,683.38643 C 230.72841,682.23623 230.46341,678.78743 228.08715,677.95963 C 224.82479,676.82315 222.70197,681.49104 225.66074,683.29512 C 226.51818,683.81792 227.6024,683.85275 228.50415,683.38643 z M 189.26106,671.91211 C 190.4289,671.62587 191.89017,670.76563 193.09484,669.65521 C 194.36602,668.48348 194.54975,668.11957 194.22735,667.412 L 193.96939,666.84582 L 192.89021,667.85527 C 190.25809,670.3173 186.94618,670.65018 184.85146,668.66321 C 183.57972,667.45692 182.49695,664.40922 182.48714,662.00833 L 182.48329,661.06389 L 188.61696,661.06389 L 194.75062,661.06389 L 194.58934,659.45804 C 194.38685,657.4417 194.01639,656.37352 193.0095,654.90277 C 191.50106,652.69943 189.36959,651.80578 186.07739,651.99636 C 181.9433,652.23568 178.8902,655.09403 177.9308,659.62333 C 177.51269,661.59718 177.51245,663.46621 177.93007,665.23755 C 178.37328,667.11744 178.98376,668.24812 180.31632,669.65709 C 182.51904,671.98614 185.6937,672.78649 189.26106,671.91211 z M 182.37365,658.48809 C 182.73401,656.34377 183.19851,655.18528 184.03216,654.35161 C 184.80283,653.58096 184.98011,653.50834 186.09094,653.50834 C 186.97958,653.50834 187.50949,653.64279 188.06153,654.00834 C 188.91632,654.57435 189.9301,656.44801 190.14874,657.86584 L 190.28952,658.77889 L 189.44196,658.92346 C 188.9758,659.00299 187.16188,659.133 185.41104,659.21239 L 182.22768,659.35674 L 182.37365,658.48809 z M 146.48329,671.23056 C 146.48329,670.67313 146.41011,670.61916 145.64995,670.61618 C 144.50141,670.61166 143.7752,670.19667 143.31696,669.28302 C 142.96232,668.57594 142.92839,667.52263 142.92807,657.21183 L 142.92773,645.91532 L 145.42772,646.07357 C 146.80273,646.1606 148.29503,646.3768 148.74394,646.55401 C 149.71015,646.93544 150.26106,647.91958 150.26106,649.26414 C 150.26106,650.15698 150.27646,650.175 151.03885,650.175 L 151.81662,650.175 L 151.81662,647.0791 L 151.81662,643.98321 L 140.14995,643.98159 L 128.48328,643.97998 L 128.4817,645.57749 C 128.48084,646.45612 128.41573,647.85694 128.33702,648.69042 L 128.19391,650.20583 L 129.06082,650.13486 C 129.92499,650.06412 129.92811,650.06038 130.04727,648.95278 C 130.11302,648.34167 130.28511,647.6287 130.42967,647.36839 C 130.84551,646.61971 132.16926,646.24205 134.98329,646.06926 L 137.59439,645.90894 L 137.59439,657.38634 C 137.59439,670.2535 137.62765,669.96548 136.0931,670.38588 C 135.63548,670.51124 135.01106,670.64009 134.70551,670.67219 C 134.29804,670.715 134.13263,670.87865 134.08499,671.28612 L 134.02004,671.84167 L 140.25166,671.84167 L 146.48329,671.84167 L 146.48329,671.23056 z M 162.48335,671.33612 C 162.4833,670.95106 162.32277,670.79846 161.80983,670.69587 C 161.43942,670.62179 160.93942,670.3108 160.69872,670.00479 C 160.28892,669.4838 160.26106,669.08215 160.26106,663.69346 C 160.26106,659.00179 160.32461,657.78642 160.605,657.11535 C 161.29889,655.45463 162.58464,654.56816 164.29947,654.56816 C 166.37179,654.56816 167.02768,655.48172 167.39919,658.88557 C 167.68894,661.54037 167.54647,668.88056 167.18782,669.77492 C 167.01388,670.20868 166.69833,670.44186 166.0486,670.61683 C 165.34241,670.80698 165.14995,670.96405 165.14995,671.35023 L 165.14995,671.84167 L 170.14995,671.84167 L 175.14995,671.84167 L 175.14995,671.34167 C 175.14995,671.0141 175.01584,670.84125 174.76106,670.84043 C 174.54718,670.83975 174.01309,670.73945 173.5742,670.61753 C 172.25244,670.25036 172.19552,669.95085 172.05414,662.61944 C 171.93284,656.32903 171.90671,656.02122 171.40819,655.00893 C 170.78497,653.74343 169.47174,652.56398 168.29252,652.21069 C 167.81908,652.06884 166.79332,651.95287 166.01305,651.95296 C 164.34238,651.95317 162.4489,652.75363 161.09439,654.03232 L 160.26106,654.81901 L 160.26106,648.93722 L 160.26106,643.05542 L 159.76106,643.16486 C 158.33687,643.47657 156.59058,643.71218 154.647,643.85485 C 153.29777,643.95389 152.48456,644.10678 152.48668,644.26101 C 152.49347,644.75413 152.83377,644.99785 153.7055,645.13388 C 154.7848,645.30231 155.30265,645.88337 155.48366,647.12902 C 155.55837,647.64321 155.58885,652.86843 155.55139,658.74064 C 155.47379,670.90603 155.54388,670.44325 153.73785,670.7141 C 152.83544,670.84943 152.31853,671.28457 152.57258,671.69506 C 152.62248,671.7757 154.87283,671.84167 157.57336,671.84167 L 162.48341,671.84167 L 162.48335,671.33612 z "
+       style="fill:#ff0000;fill-opacity:1;stroke:none;stroke-opacity:1"
+       id="path2270" />
+  </g>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/etcd.svg b/go.dev/testdata/golden/images/logos/etcd.svg
new file mode 100644
index 0000000..4f38f91
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/etcd.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="2500" height="887" viewBox="0 0 288 102.17"><title>etcd</title><path d="M41.14 53.94a5.86 5.86 0 1 1-5.86-5.86 5.86 5.86 0 0 1 5.86 5.86zM48.72 53.94a5.86 5.86 0 1 0 5.86-5.86 5.86 5.86 0 0 0-5.86 5.86z" fill="#419eda"/><path d="M88.62 60.3h-1.29a16.92 16.92 0 0 1-7.44-1.73 69.1 69.1 0 0 0 1-13.16 68.11 68.11 0 0 0-8.52-10.1 16.92 16.92 0 0 1 6-6.43l1.1-.68-.86-1a44.86 44.86 0 0 0-15.66-11.35l-1.19-.52-.3 1.26a16.88 16.88 0 0 1-4.25 7.71 68.13 68.13 0 0 0-12.27-5.06 67.89 67.89 0 0 0-12.26 5 16.84 16.84 0 0 1-4.23-7.69l-.31-1.26-1.19.52a45.29 45.29 0 0 0-15.67 11.46l-.86 1 1.1.68a16.9 16.9 0 0 1 6 6.4A68.62 68.62 0 0 0 9 45.38a69 69 0 0 0 1 13.25 16.87 16.87 0 0 1-7.4 1.72H1.3L0 60.19l.12 1.29a44.59 44.59 0 0 0 6 18.44L6.8 81l1-.84a16.86 16.86 0 0 1 8-3.74 68.5 68.5 0 0 0 6.8 11.18 69.19 69.19 0 0 0 12.95 3.18 16.83 16.83 0 0 1-1.08 8.83l-.47 1.2 1.26.28a45.13 45.13 0 0 0 9.7 1.07l9.7-1.07 1.26-.28-.49-1.2a16.81 16.81 0 0 1-1.07-8.85 69.2 69.2 0 0 0 12.9-3.17 68.2 68.2 0 0 0 6.84-11.14 16.9 16.9 0 0 1 8 3.74l1 .83.66-1.11a44.48 44.48 0 0 0 6-18.44l.12-1.29zm-29.8 15.76a52.37 52.37 0 0 1-27.78 0 53.14 53.14 0 0 1-8.45-26.26 52.88 52.88 0 0 1 10.07-9.58 53.68 53.68 0 0 1 12.28-6.68 53.85 53.85 0 0 1 12.25 6.66 53.28 53.28 0 0 1 10.11 9.64 53.53 53.53 0 0 1-2.53 13.68 53.8 53.8 0 0 1-5.95 12.54z" fill="#419eda"/><path d="M125.55 25.41c14.73 0 23 10.57 23 27.07a34.44 34.44 0 0 1-.36 5.34h-39c.71 12.47 8.2 20.31 19.24 20.31a26.08 26.08 0 0 0 14.37-4.51l3.53 6.38a34.36 34.36 0 0 1-19 5.94C111.9 86 99.67 74.69 99.67 55.81s12.7-30.4 25.88-30.4zm14.49 26c0-11.76-5.23-18.29-14.25-18.29-8.08 0-15.44 6.65-16.62 18.29H140zM159.63 34.79h-8.55v-7.36l9-.59 1.19-16.15h8.19v16.15H185v8h-15.51v32.02c0 7.13 2.26 11.16 8.91 11.16a20.92 20.92 0 0 0 6.53-1.55l1.9 7.36A35.63 35.63 0 0 1 176.14 86c-12.35 0-16.51-7.84-16.51-19.24V34.79zM216.87 25.41a23.79 23.79 0 0 1 16.86 6.89l-4.87 6.29c-3.44-3-7-5.1-11.64-5.1-10.45 0-18 9-18 22.32S206.42 77.9 217 77.9c5.46 0 10.1-2.73 13.54-5.82l4.39 6.41A28.58 28.58 0 0 1 216.16 86c-15.32 0-27.07-11-27.07-30.16-.01-19.39 12.91-30.43 27.78-30.43zM262.47 25.41c6.65 0 11 2.49 16.15 6.65l-.48-9.86V0H288v84.55h-8.07l-.83-6.77h-.36c-4.51 4.39-10.69 8.22-17.46 8.22-14.48 0-23.86-11-23.86-30.19 0-18.81 11.87-30.4 25.05-30.4zm.95 52.37c5.34 0 10-2.61 14.73-8V39.66c-4.87-4.39-9.26-6.06-14-6.06-9.26 0-16.62 8.9-16.62 22.09-.02 13.78 5.8 22.09 15.89 22.09z"/></svg>
diff --git a/go.dev/testdata/golden/images/logos/facebook.png b/go.dev/testdata/golden/images/logos/facebook.png
new file mode 100644
index 0000000..5936268
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/facebook.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/firebase.svg b/go.dev/testdata/golden/images/logos/firebase.svg
new file mode 100644
index 0000000..421d452
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/firebase.svg
@@ -0,0 +1,2 @@
+
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="23 6 469 132"><defs><linearGradient id="a" x1="-3.49%" x2="100.83%" y1="17.02%" y2="92.9%"><stop offset="0%" stop-color="#fff" stop-opacity=".1"/><stop offset="14%" stop-color="#fff" stop-opacity=".08"/><stop offset="61%" stop-color="#fff" stop-opacity=".02"/><stop offset="100%" stop-color="#fff" stop-opacity="0"/></linearGradient><path id="b" d="M106.687 35.274c-.186-1.098-.967-2-2.024-2.338s-2.215-.057-3 .73l-15.416 15.5-12.12-23.145c-.513-.98-1.525-1.592-2.627-1.592s-2.114.613-2.627 1.591l-6.628 12.656L45.62 7.573a2.966 2.966 0 00-5.552.953L24 111.7l42.973 24.165a8.882 8.882 0 008.683 0L119 111.701l-12.313-76.427z"/></defs><path opacity=".54" d="M163.773 106.518H155V38.765h39.844v8.324h-31.07v22.244H191.8v8.132h-28.025v29.053zm47.568-58.002c-2.092 2.085-5.376 2.413-7.843.782s-3.431-4.764-2.3-7.483 4.039-4.268 6.947-3.697 5.004 3.102 5.006 6.044a5.892 5.892 0 01-1.818 4.354h.008zm0 58.002h-8.774V60.152h8.774v46.366zm19.251 0h-8.773V60.152h8.386v7.57h.38a11.908 11.908 0 015.481-6.247 15.767 15.767 0 018.059-2.461 16.822 16.822 0 016.576 1.138l-3.337 8.132a13.355 13.355 0 00-4.67-.666 11.5 11.5 0 00-8.437 3.741c-2.448 2.494-3.672 5.759-3.672 9.795l.007 25.364zm44.15 1.478c-7.056 0-12.79-2.333-17.204-7s-6.624-10.554-6.629-17.66a25.415 25.415 0 016.435-17.41 20.925 20.925 0 0116.444-7.29c6.926 0 12.472 2.24 16.638 6.72s6.246 10.473 6.24 17.978l-.097 1.612h-36.903c.254 4.667 1.827 8.363 4.722 11.089a14.362 14.362 0 0010.15 4.066c6.29 0 10.548-2.65 12.773-7.947l7.82 3.215a20.823 20.823 0 01-7.53 9.034c-3.5 2.395-7.787 3.593-12.862 3.593zm12.586-30.31c-.19-2.65-1.413-5.174-3.672-7.57s-5.618-3.567-10.076-3.518a12.635 12.635 0 00-8.438 3.031 15.445 15.445 0 00-4.908 8.132l27.094-.074zm41.035 30.31a19.962 19.962 0 01-9.547-2.218 16.135 16.135 0 01-6.338-5.677h-.38v6.417h-8.393V38.765h8.773v21.387l-.38 6.431h.38a16.133 16.133 0 016.338-5.677 19.968 19.968 0 019.547-2.27c6.038 0 11.251 2.366 15.64 7.097s6.581 10.599 6.576 17.602-2.192 12.87-6.576 17.601-9.597 7.085-15.64 7.06zm-1.43-7.947a13.996 13.996 0 0010.486-4.59c2.925-3.061 4.387-7.115 4.387-12.161s-1.462-9.1-4.387-12.161c-2.702-2.915-6.507-4.578-10.498-4.587s-7.804 1.639-10.518 4.542c-2.89 3.026-4.335 7.095-4.335 12.205s1.46 9.192 4.379 12.242a14.02 14.02 0 0010.516 4.547l-.03-.037zm45.981 7.947c-4.965 0-9.11-1.42-12.437-4.258s-4.995-6.591-5.005-11.259c0-5.046 1.971-9.004 5.914-11.872s8.803-4.303 14.582-4.303c5.149 0 9.37.947 12.66 2.84V77.82a10.314 10.314 0 00-3.53-8.184 12.719 12.719 0 00-8.66-3.038 13.53 13.53 0 00-6.912 1.797 9.29 9.29 0 00-4.245 4.923l-8.006-3.408c1.082-2.784 3.212-5.367 6.4-7.747s7.373-3.564 12.586-3.549c5.958 0 10.923 1.725 14.895 5.175s5.943 8.339 5.913 14.667v28.062h-8.415v-6.432h-.38c-3.5 5.273-8.617 7.9-15.35 7.9zm1.43-7.947a14.333 14.333 0 009.876-3.985 12.441 12.441 0 004.468-9.506c-2.482-2.02-6.206-3.031-11.171-3.031-4.26 0-7.47.914-9.63 2.742a8.215 8.215 0 00-3.24 6.432 6.182 6.182 0 002.98 5.396 11.845 11.845 0 006.718 1.989v-.037zm48.521 7.947c-5.213 0-9.518-1.262-12.914-3.785a22.417 22.417 0 01-7.447-9.462l7.82-3.216c2.482 5.806 6.702 8.708 12.66 8.708 2.367.097 4.707-.53 6.703-1.796a5.498 5.498 0 002.622-4.731c0-3.026-2.13-5.076-6.4-6.15l-9.436-2.27a22.516 22.516 0 01-8.483-4.303 10.32 10.32 0 01-4.007-8.56c0-4.1 1.827-7.427 5.482-9.98a22.132 22.132 0 0113.01-3.83 21.82 21.82 0 0111.052 2.802 15.774 15.774 0 016.956 7.999l-7.618 3.09c-1.713-4.1-5.273-6.15-10.68-6.15-2.3-.077-4.576.481-6.576 1.611a4.897 4.897 0 00-2.667 4.354c0 2.652 2.066 4.45 6.197 5.397l9.242 2.18c4.384.986 7.626 2.711 9.727 5.175a12.513 12.513 0 013.142 8.324 12.866 12.866 0 01-5.146 10.409c-3.43 2.79-7.847 4.184-13.249 4.184zm47.187 0c-7.055 0-12.79-2.333-17.203-7s-6.624-10.567-6.629-17.698a25.415 25.415 0 016.435-17.41 20.959 20.959 0 0116.466-7.252c6.95 0 12.497 2.24 16.638 6.72S491.98 75.83 492 83.335l-.097 1.611H454.97c.253 4.667 1.827 8.364 4.722 11.09a14.363 14.363 0 0010.173 4.05c6.29 0 10.548-2.65 12.773-7.947l7.82 3.216a20.815 20.815 0 01-7.53 9.033c-3.5 2.405-7.793 3.608-12.877 3.608zm12.587-30.31c-.189-2.65-1.413-5.174-3.672-7.57s-5.613-3.567-10.061-3.518a12.643 12.643 0 00-8.438 3.031 15.445 15.445 0 00-4.908 8.132l27.079-.074z"/><path fill="#ffa000" d="M23.833 111.719L39.966 8.49a2.98 2.98 0 015.57-.946L62.22 38.662 68.87 26a2.98 2.98 0 015.273 0l45.023 85.719H23.833z"/><path fill="#f57c00" d="M79.566 71.507l-17.354-32.86-38.379 73.072 55.733-40.212z"/><path fill="#ffca28" d="M119.167 111.719l-12.356-76.46c-.187-1.099-.97-2-2.032-2.34s-2.222-.058-3.01.73l-77.936 78.069L66.957 135.9a8.937 8.937 0 008.714 0l43.496-24.183z"/><path fill="#fff" fill-opacity=".2" d="M106.81 35.258c-.186-1.098-.97-2-2.031-2.34s-2.223-.057-3.01.73L86.3 49.157 74.137 26a2.98 2.98 0 00-5.274 0l-6.65 12.662L45.53 7.545a2.98 2.98 0 00-5.571.953l-16.125 103.22h-.052l.052.06.425.209 77.488-77.578a2.98 2.98 0 015.05 1.609l12.251 75.775.12-.074-12.356-76.46zm-82.835 76.32l15.99-102.35a2.98 2.98 0 015.572-.953L62.22 39.392l6.65-12.662a2.98 2.98 0 015.273 0L86.06 49.395l-62.086 62.182z"/><path fill="#a52714" opacity=".2" d="M75.67 135.172a8.937 8.937 0 01-8.713 0l-43.02-24.116-.104.663 43.124 24.176a8.937 8.937 0 008.714 0l43.495-24.176-.111-.685-43.384 24.138z"/><use fill="url(#a)" xlink:href="#b"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/github.svg b/go.dev/testdata/golden/images/logos/github.svg
new file mode 100644
index 0000000..977cf9d
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/github.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="iso-8859-1"?>

+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 width="438.549px" height="438.549px" viewBox="0 0 438.549 438.549" style="enable-background:new 0 0 438.549 438.549;"

+	 xml:space="preserve">

+<g>

+	<path d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365

+		c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63

+		c0,47.78,13.94,90.745,41.827,128.906c27.884,38.164,63.906,64.572,108.063,79.227c5.14,0.954,8.945,0.283,11.419-1.996

+		c2.475-2.282,3.711-5.14,3.711-8.562c0-0.571-0.049-5.708-0.144-15.417c-0.098-9.709-0.144-18.179-0.144-25.406l-6.567,1.136

+		c-4.187,0.767-9.469,1.092-15.846,1c-6.374-0.089-12.991-0.757-19.842-1.999c-6.854-1.231-13.229-4.086-19.13-8.559

+		c-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559

+		c-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-0.951-2.568-2.098-3.711-3.429c-1.142-1.331-1.997-2.663-2.568-3.997

+		c-0.572-1.335-0.098-2.43,1.427-3.289c1.525-0.859,4.281-1.276,8.28-1.276l5.708,0.853c3.807,0.763,8.516,3.042,14.133,6.851

+		c5.614,3.806,10.229,8.754,13.846,14.842c4.38,7.806,9.657,13.754,15.846,17.847c6.184,4.093,12.419,6.136,18.699,6.136

+		c6.28,0,11.704-0.476,16.274-1.423c4.565-0.952,8.848-2.383,12.847-4.285c1.713-12.758,6.377-22.559,13.988-29.41

+		c-10.848-1.14-20.601-2.857-29.264-5.14c-8.658-2.286-17.605-5.996-26.835-11.14c-9.235-5.137-16.896-11.516-22.985-19.126

+		c-6.09-7.614-11.088-17.61-14.987-29.979c-3.901-12.374-5.852-26.648-5.852-42.826c0-23.035,7.52-42.637,22.557-58.817

+		c-7.044-17.318-6.379-36.732,1.997-58.24c5.52-1.715,13.706-0.428,24.554,3.853c10.85,4.283,18.794,7.952,23.84,10.994

+		c5.046,3.041,9.089,5.618,12.135,7.708c17.705-4.947,35.976-7.421,54.818-7.421s37.117,2.474,54.823,7.421l10.849-6.849

+		c7.419-4.57,16.18-8.758,26.262-12.565c10.088-3.805,17.802-4.853,23.134-3.138c8.562,21.509,9.325,40.922,2.279,58.24

+		c15.036,16.18,22.559,35.787,22.559,58.817c0,16.178-1.958,30.497-5.853,42.966c-3.9,12.471-8.941,22.457-15.125,29.979

+		c-6.191,7.521-13.901,13.85-23.131,18.986c-9.232,5.14-18.182,8.85-26.84,11.136c-8.662,2.286-18.415,4.004-29.263,5.146

+		c9.894,8.562,14.842,22.077,14.842,40.539v60.237c0,3.422,1.19,6.279,3.572,8.562c2.379,2.279,6.136,2.95,11.276,1.995

+		c44.163-14.653,80.185-41.062,108.068-79.226c27.88-38.161,41.825-81.126,41.825-128.906

+		C438.536,184.851,428.728,148.168,409.132,114.573z"/>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+<g>

+</g>

+</svg>

diff --git a/go.dev/testdata/golden/images/logos/gokit.png b/go.dev/testdata/golden/images/logos/gokit.png
new file mode 100644
index 0000000..4c47041
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/gokit.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/google-cloud.png b/go.dev/testdata/golden/images/logos/google-cloud.png
new file mode 100644
index 0000000..80a4782
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/google-cloud.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/google-cloud.svg b/go.dev/testdata/golden/images/logos/google-cloud.svg
new file mode 100644
index 0000000..49cd9f5
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/google-cloud.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 113 54" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M60.644 7.94l1.144.02 3.108-3.108.15-1.317C62.576 1.337 59.326 0 55.77 0c-6.44 0-11.876 4.382-13.486 10.318.34-.237 1.065-.06 1.065-.06l6.212-1.022s.32-.53.48-.497a7.76 7.76 0 0 1 10.605-.8z" fill="#ea4335"></path><path d="M69.274 10.33a13.99 13.99 0 0 0-4.216-6.796l-4.402 4.402a7.75 7.75 0 0 1 2.895 6.039v.777c2.142 0 3.88 1.743 3.88 3.88a3.89 3.89 0 0 1-3.88 3.88H55.79l-.777.78v4.658l.777.773h7.762c5.565-.015 10.072-4.525 10.083-10.1-.004-3.436-1.736-6.48-4.37-8.303z" fill="#4285f4"></path><path d="M48.008 28.73h7.76v-6.212h-7.76a3.84 3.84 0 0 1-1.597-.347l-1.12.343-3.108 3.108-.272 1.05a9.96 9.96 0 0 0 6.098 2.06z" fill="#34a853"></path><path d="M48.008 8.542c-5.57.01-10.085 4.523-10.094 10.094a10.08 10.08 0 0 0 4 8.04l4.5-4.5a3.88 3.88 0 0 1-2.288-3.538c0-2.142 1.743-3.88 3.88-3.88a3.89 3.89 0 0 1 3.538 2.288l4.5-4.5c-1.846-2.43-4.76-4-8.04-4z" fill="#fbbc05"></path><path d="M7.774 48.304c-2.12 0-3.94-.75-5.474-2.25S0 42.75 0 40.646s.765-3.908 2.3-5.408 3.357-2.25 5.474-2.25a7.32 7.32 0 0 1 5.249 2.11l-1.477 1.477a5.32 5.32 0 0 0-3.773-1.495c-1.53 0-2.83.54-3.896 1.627a5.41 5.41 0 0 0-1.597 3.941c0 1.546.53 2.857 1.597 3.94a5.25 5.25 0 0 0 3.896 1.627c1.558 0 2.845-.5 3.87-1.534.6-.6 1-1.5 1.14-2.635H7.777v-2.092h7.044c.075.372.1.8.1 1.3 0 2.056-.603 3.686-1.813 4.895-1.372 1.435-3.15 2.15-5.345 2.15zm16.37-1.4c-.96.94-2.13 1.4-3.512 1.4s-2.554-.47-3.512-1.4-1.438-2.113-1.438-3.52.48-2.58 1.438-3.52 2.13-1.4 3.512-1.4 2.554.47 3.512 1.4 1.438 2.116 1.438 3.52-.48 2.58-1.438 3.52zm-5.474-1.38a2.63 2.63 0 0 0 1.963.849c.76 0 1.414-.282 1.963-.85s.822-1.28.822-2.14c0-.87-.27-1.588-.813-2.15s-1.198-.84-1.972-.84a2.64 2.64 0 0 0-1.972.84c-.543.56-.813 1.276-.813 2.15 0 .858.273 1.573.822 2.14zm16.273 1.38c-.96.94-2.13 1.4-3.512 1.4s-2.554-.47-3.512-1.4-1.438-2.113-1.438-3.52.48-2.58 1.438-3.52 2.13-1.4 3.512-1.4 2.554.47 3.512 1.4 1.438 2.116 1.438 3.52-.48 2.58-1.438 3.52zm-5.474-1.38a2.63 2.63 0 0 0 1.963.849c.76 0 1.414-.282 1.963-.85s.822-1.28.822-2.14c0-.87-.27-1.588-.813-2.15s-1.198-.84-1.972-.84a2.64 2.64 0 0 0-1.972.84c-.543.56-.813 1.276-.813 2.15 0 .858.273 1.573.822 2.14zm12.573 7.22c-1.095 0-2.017-.294-2.764-.88s-1.282-1.264-1.606-2.038l1.888-.783c.198.474.5.885.933 1.234s.94.522 1.552.522c.822 0 1.468-.25 1.933-.747s.7-1.216.7-2.15v-.7h-.075c-.6.747-1.477 1.122-2.596 1.122-1.258 0-2.36-.48-3.307-1.438a4.76 4.76 0 0 1-1.42-3.476 4.82 4.82 0 0 1 1.42-3.503c.945-.963 2.05-1.447 3.307-1.447.56 0 1.068.105 1.522.318s.813.474 1.074.783h.075v-.794h2.056v8.857c0 1.72-.438 3.004-1.318 3.86-.88.85-2.002 1.28-3.373 1.28zm.15-6.372a2.41 2.41 0 0 0 1.879-.849c.504-.567.756-1.273.756-2.122 0-.858-.252-1.576-.756-2.15a2.4 2.4 0 0 0-1.879-.858c-.76 0-1.408.288-1.942.858s-.804 1.288-.804 2.15c0 .846.267 1.555.804 2.122s1.183.85 1.942.85zm8.202-12.865v14.5h-2.167v-14.5zm5.94 14.796c-1.396 0-2.56-.474-3.494-1.42s-1.402-2.116-1.402-3.512c0-1.444.45-2.63 1.354-3.55a4.45 4.45 0 0 1 3.298-1.384c.597 0 1.153.108 1.663.327a3.92 3.92 0 0 1 1.27.84 5.84 5.84 0 0 1 .804.999 6.12 6.12 0 0 1 .486.972l.225.56-6.594 2.732c.5.996 1.3 1.495 2.392 1.495.996 0 1.807-.453 2.428-1.363l1.68 1.122c-.375.56-.903 1.065-1.588 1.513s-1.528.67-2.524.67zm-2.746-5.08l4.4-1.83c-.126-.312-.354-.564-.7-.756a2.26 2.26 0 0 0-1.14-.288c-.636 0-1.23.26-1.783.783s-.82 1.222-.795 2.092zm18.33 5.08c-1.97 0-3.62-.666-4.952-2s-2-2.995-2-4.988.666-3.656 2-4.988 2.983-2 4.952-2c2.017 0 3.656.73 4.913 2.185l-1.195 1.16c-.9-1.134-2.15-1.7-3.72-1.7-1.46 0-2.686.492-3.7 1.477s-1.504 2.272-1.504 3.866.5 2.884 1.504 3.87 2.233 1.477 3.7 1.477c1.606 0 2.977-.648 4.1-1.942l1.195 1.195a6.51 6.51 0 0 1-2.3 1.747 7.02 7.02 0 0 1-3.004.642zm8.556-.296h-1.72V34.63h1.72zm2.803-8.06c.885-.927 2-1.393 3.382-1.393s2.497.465 3.382 1.393 1.327 2.1 1.327 3.485-.44 2.557-1.327 3.485-2 1.393-3.382 1.393-2.497-.465-3.382-1.393-1.327-2.1-1.327-3.485.44-2.557 1.327-3.485zm1.28 5.883c.6.603 1.294.906 2.1.906s1.5-.303 2.1-.906.888-1.405.888-2.4-.297-1.798-.888-2.4-1.294-.906-2.1-.906-1.5.303-2.1.906-.888 1.405-.888 2.4.297 1.798.888 2.4zm16.32 2.177h-1.645v-1.27h-.075c-.26.435-.66.807-1.195 1.1s-1.1.46-1.7.46c-1.147 0-2.014-.348-2.605-1.047s-.888-1.633-.888-2.803V38.84h1.72v5.324c0 1.708.753 2.56 2.26 2.56a2.1 2.1 0 0 0 1.738-.858 3.13 3.13 0 0 0 .672-1.981V38.84h1.72v9.157zm5.828.297c-1.183 0-2.206-.468-3.064-1.402s-1.288-2.092-1.288-3.476.43-2.542 1.288-3.476 1.882-1.402 3.064-1.402c.696 0 1.324.15 1.88.447s.97.672 1.243 1.122h.075l-.075-1.27v-4.22h1.72v13.38h-1.645v-1.27h-.075c-.273.447-.687.822-1.243 1.122-.555.294-1.183.444-1.88.444zm.28-1.57a2.74 2.74 0 0 0 2.065-.897c.567-.597.85-1.402.85-2.4s-.282-1.813-.85-2.4a2.74 2.74 0 0 0-2.065-.897c-.798 0-1.483.303-2.056.906s-.858 1.405-.858 2.4.285 1.798.858 2.4a2.73 2.73 0 0 0 2.056.906z" fill="#5f6368"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/google-fourcolor.svg b/go.dev/testdata/golden/images/logos/google-fourcolor.svg
new file mode 100644
index 0000000..95f5e7d
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/google-fourcolor.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 109 37" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M26.383 12.424h-12.52v3.715h8.88c-.44 5.2-4.773 7.432-8.865 7.432a9.76 9.76 0 0 1-9.802-9.891c0-5.624 4.354-9.954 9.814-9.954 4.212 0 6.694 2.685 6.694 2.685l2.6-2.694S19.844 0 13.754 0C6 0 0 6.545 0 13.614c0 6.927 5.643 13.682 13.95 13.682 7.307 0 12.656-5.006 12.656-12.408 0-1.562-.227-2.464-.227-2.464z" fill="#4885ed"></path><use xlink:href="#C" fill="#db3236"></use><use xlink:href="#C" x="19.18" fill="#f4c20d"></use><path d="M74.634 9.743c-4.716 0-8.422 4.13-8.422 8.766 0 5.28 4.297 8.782 8.34 8.782 2.5 0 3.83-.993 4.8-2.132v1.73c0 3.027-1.838 4.84-4.612 4.84-2.68 0-4.024-1.993-4.5-3.123l-3.372 1.4c1.196 2.53 3.604 5.167 7.9 5.167 4.7 0 8.262-2.953 8.262-9.147V10.27h-3.664v1.486c-1.13-1.22-2.678-2.013-4.73-2.013zm.34 3.44c2.312 0 4.686 1.974 4.686 5.345 0 3.427-2.37 5.315-4.737 5.315-2.514 0-4.853-2.04-4.853-5.283 0-3.368 2.43-5.378 4.904-5.378z" fill="#4885ed"></path><path d="M99.406 9.722c-4.448 0-8.183 3.54-8.183 8.76 0 5.526 4.163 8.803 8.6 8.803 3.712 0 6-2.03 7.35-3.85l-3.033-2.018c-.787 1.22-2.103 2.415-4.298 2.415-2.466 0-3.6-1.35-4.303-2.66l11.763-4.88-.6-1.43c-1.136-2.8-3.787-5.14-7.295-5.14zm.153 3.374c1.603 0 2.756.852 3.246 1.874l-7.856 3.283c-.34-2.542 2.07-5.157 4.6-5.157z" fill="#db3236"></path><path d="M85.606 26.765h3.864V.908h-3.864z" fill="#3cba54"></path></g></symbol><defs><style type="text/css"></style><path id="C" d="M36.64 9.733c-5.138 0-8.82 4.017-8.82 8.7 0 4.754 3.57 8.845 8.88 8.845 4.806 0 8.743-3.673 8.743-8.743 0-5.8-4.58-8.803-8.803-8.803zm.05 3.446c2.526 0 4.92 2.043 4.92 5.334 0 3.22-2.384 5.322-4.932 5.322-2.8 0-5-2.242-5-5.348 0-3.04 2.18-5.308 5.02-5.308z"></path></defs></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/google-g.svg b/go.dev/testdata/golden/images/logos/google-g.svg
new file mode 100644
index 0000000..9cdb8e4
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/google-g.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 85 85" fill="#fff" fill-rule="evenodd" width="300" height="300" stroke="#000" stroke-linecap="round" stroke-linejoin="round" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="2.5" y="2.5"></use><symbol id="A" overflow="visible"><path d="M62.1 47.672H40V32.603h39.323A40.53 40.53 0 0 1 80 40a40.51 40.51 0 0 1-.729 7.671 39.85 39.85 0 0 1-12.692 22.27L52.675 59.34a23.53 23.53 0 0 0 9.425-11.668z" fill="#4285f4"></path><path d="M54.95 21.214L66.327 9.837C59.302 3.706 50.1 0 40 0A39.91 39.91 0 0 0 4.143 22.197L17.485 32.46A23.51 23.51 0 0 1 40 15.89c5.686 0 10.89 1.994 14.95 5.323z" fill="#ea4335"></path><path d="M17.708 47.13L3.965 57.438C1.423 52.173 0 46.26 0 40c0-6.404 1.5-12.447 4.143-17.803L17.485 32.46c-.68 2.208-1.047 4.556-1.047 6.992 0 2.69.446 5.273 1.27 7.678z" fill="#fbbc05"></path><path d="M17.71 47.13L3.965 57.438A39.91 39.91 0 0 0 40.001 80a39.87 39.87 0 0 0 26.579-10.059L52.675 59.34C49.02 61.667 44.673 63.014 40 63.014A23.51 23.51 0 0 1 17.709 47.13z" fill="#34a853"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/google.svg b/go.dev/testdata/golden/images/logos/google.svg
new file mode 100644
index 0000000..3b2e94b
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/google.svg
@@ -0,0 +1,26 @@
+<svg version="1.1" id="GoogleLogo_x5F_FullColor_x5F_rgb_21_"

+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="359.4px"

+	 height="118.38px" viewBox="0 0 359.4 118.38" enable-background="new 0 0 359.4 118.38" xml:space="preserve">

+<g id="_x33_60x119px">

+	<path fill="#4285F4" d="M88.77,41.5c0.45,2.79,0.64,5.55,0.64,8.12c0,9.41-2.58,21.06-10.86,29.34

+		c-8.06,8.4-18.37,12.88-32.03,12.88C21.2,91.84,0,71.23,0,45.92S21.2,0,46.51,0c14,0,23.97,5.49,31.47,12.66l-8.85,8.85

+		c-5.38-5.04-12.66-8.96-22.62-8.96c-18.48,0-32.84,14.9-32.84,33.38c0,18.48,14.36,33.38,32.84,33.38

+		c11.98,0,18.82-4.82,23.18-9.18c3.58-3.58,6.02-9.01,6.91-16.06h-30.1V41.5L88.77,41.5z"/>

+	<path fill="#E94235" d="M153.08,62.27c0,17.02-13.33,29.57-29.68,29.57c-16.35,0-29.68-12.54-29.68-29.57

+		c0-17.14,13.33-29.57,29.68-29.57C139.76,32.7,153.08,45.14,153.08,62.27z M140.09,62.27c0-10.64-7.73-17.92-16.69-17.92

+		s-16.69,7.28-16.69,17.92c0,10.53,7.73,17.92,16.69,17.92S140.09,72.8,140.09,62.27z"/>

+	<path fill="#FABB05" d="M217.08,62.27c0,17.02-13.33,29.57-29.68,29.57c-16.35,0-29.68-12.54-29.68-29.57

+		c0-17.14,13.33-29.57,29.68-29.57C203.76,32.7,217.08,45.14,217.08,62.27z M204.09,62.27c0-10.64-7.73-17.92-16.69-17.92

+		s-16.69,7.28-16.69,17.92c0,10.53,7.73,17.92,16.69,17.92S204.09,72.8,204.09,62.27z"/>

+	<path fill="#4285F4" d="M278.4,34.5v53.09c0,21.84-12.88,30.8-28.11,30.8c-14.34,0-22.96-9.63-26.21-17.47l11.31-4.7

+		c2.02,4.82,6.94,10.53,14.9,10.53c9.74,0,15.79-6.05,15.79-17.36v-4.26h-0.45c-2.91,3.58-8.51,6.72-15.57,6.72

+		c-14.78,0-28.34-12.88-28.34-29.46c0-16.69,13.55-29.68,28.34-29.68c7.06,0,12.66,3.14,15.57,6.61h0.45V34.5H278.4z M266.98,62.38

+		c0-10.42-6.94-18.03-15.79-18.03c-8.96,0-16.46,7.62-16.46,18.03c0,10.3,7.5,17.81,16.46,17.81

+		C260.04,80.19,266.98,72.69,266.98,62.38z"/>

+	<path fill="#34A853" d="M300.15,3.14v86.91H287.4V3.14H300.15z"/>

+	<path fill="#E94235" d="M348.76,72.02l10.08,6.72c-3.25,4.82-11.09,13.1-24.64,13.1c-16.8,0-29-12.99-29-29.57

+		c0-17.58,12.31-29.57,27.54-29.57c15.34,0,22.85,12.21,25.31,18.82l1.34,3.36l-39.54,16.35c3.02,5.94,7.73,8.96,14.34,8.96

+		C340.81,80.19,345.4,76.94,348.76,72.02z M317.74,61.38l26.43-10.98c-1.46-3.7-5.82-6.27-10.98-6.27

+		C326.59,44.13,317.4,49.95,317.74,61.38z"/>

+</g>

+</svg>

diff --git a/go.dev/testdata/golden/images/logos/govuk.svg b/go.dev/testdata/golden/images/logos/govuk.svg
new file mode 100644
index 0000000..2814f3d
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/govuk.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 46 50" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M40.686 8.85c1.303.038 2.337 1.1 2.337 2.414s-1.073 2.375-2.375 2.337-2.337-1.1-2.337-2.414 1.073-2.337 2.375-2.337zm-5.44-3.14c1.303 0 2.375 1.034 2.375 2.337a2.36 2.36 0 0 1-2.375 2.375c-1.34 0-2.375-1.034-2.375-2.337.038-1.303 1.073-2.375 2.375-2.375zM29.27 7.625A2.39 2.39 0 0 1 31.645 10a2.39 2.39 0 0 1-2.375 2.375A2.39 2.39 0 0 1 26.895 10c0-1.34 1.073-2.414 2.375-2.375zM18.045 5.403V3.18l1.494.46 1.15.345c.153.038.383.038.46-.038a.73.73 0 0 0 .077-.498L20.23.268C20.192.19 20.192.115 20.153 0h4.3L23.37 3.37c-.038.153-.077.46.038.536.077.115.383.115.536.038l2.567-.805v4.406l-3.103-1.6c-.038.306-.115.575-.038.766l1.532 4.712c.536 1.647-.345 3.218-1.992 3.64-2.03.536-3.946-1.34-3.37-3.37l1.6-4.98c.077-.192 0-.46-.038-.766l-3.096 1.638.038-2.184zm-2.682 2.222A2.39 2.39 0 0 1 17.738 10c0 1.303-1.1 2.375-2.375 2.375A2.39 2.39 0 0 1 12.988 10c0-1.34 1.073-2.375 2.375-2.375zM9.348 5.71a2.36 2.36 0 0 1 2.375 2.375 2.36 2.36 0 0 1-2.375 2.375 2.39 2.39 0 0 1-2.375-2.375c0-1.303 1.073-2.337 2.375-2.375zM7.892 26.052c-.843-.42-1.494-.996-2.5-.996.766 1.532 1.57 2.912 3.18 3.6 1.762.728 3.525-.613 3.295-2.414-.115-.7-.536-1.303-1.1-1.417-.498-.115-.996.153-1.417.843-.038.077-.115.153-.192.306-.383-.88-.65-1.686-.153-2.5.575-.92 1.494-.843 2.605-.575-2.222-2.26-2.528-4.56-.575-7 1.034.843 1.916 1.724 2.222 3.027s-.153 2.5-.575 3.793c.88-.613 1.724-1.073 2.643-.306.613.498.766 1.532.345 2.605l-.46-.536c-.65-.575-1.417-.383-1.8.383-.42.88-.153 1.916.7 2.605.996.843 2.222 1.073 3.486 1.034.306 0 .575-.038.88-.115 1.916-.383 2.873-1.532 3.027-3.525l.077-1.1c-1.686.115-2.643 1.264-3.678 2.452l-.46-5.325c.65.42 1.226.88 1.916 1.188.65.268 1.417.383 2.145.46-.536-1.532-1.532-2.643-2.528-3.908h6.78l-1.42 1.884-1.264 1.992c1.724.038 3.027-.575 4.214-1.762l-.46 5.478c-1.034-1.188-1.992-2.337-3.64-2.452-.115 3.4 1.456 4.827 4.597 4.75.88-.038 1.724-.268 2.5-.766.805-.536 1.303-1.264 1.188-2.26-.077-.575-.268-1.073-.843-1.264-.575-.23-.996.115-1.34.536-.038.077-.115.115-.192.192-.46-.766-.306-1.992.306-2.528.65-.613 1.532-.498 2.758.42-1.226-2.797-.958-5.134 1.57-6.896 1.532 1.916 2.107 4.176-.536 7 .996-.268 1.916-.345 2.528.575.536.805.268 1.647-.115 2.528-.192-.23-.306-.46-.46-.613-.65-.766-1.532-.7-2.03.192-.42.728-.345 1.762.153 2.452.575.766 1.6 1.1 2.567.843.88-.268 1.57-.805 2.107-1.532.498-.65.92-1.38 1.34-2.107-.958-.077-1.647.46-2.452.958l1.494-5.02 1.303 2.72.192-.077c.46-1.073.153-2.184 0-3.333l3.18 1.1c-.115.153-.153.268-.23.383-1.992 2.835-3.14 6.053-4.06 9.348-.115.383-.23.766-.306 1.15-.038.42-.268.46-.65.42-5.708-.805-11.416-1.1-17.2-.996-4.52.077-9.04.345-13.562.996-.42.077-.613 0-.728-.46C5.527 29.455 4.57 26.506 3 23.786c-.383-.7-.843-1.38-1.303-2.145l3.18-1.15c-.153 1.15-.42 2.26.038 3.4.728-.805 1.073-1.762 1.456-2.72.498 1.494.996 3.14 1.532 4.865zm-3.908-17.2c1.303 0 2.337 1.073 2.337 2.375a2.39 2.39 0 0 1-2.375 2.375 2.39 2.39 0 0 1-2.375-2.375c.038-1.303 1.1-2.375 2.414-2.375zM0 17.204a2.39 2.39 0 0 1 2.375-2.375 2.36 2.36 0 0 1 2.375 2.375c0 1.303-1.034 2.337-2.375 2.337C1.072 19.58 0 18.507 0 17.204zm8.8 30.763H7.393c0-.23-.038-.498-.038-.805-.843.843-1.8 1.073-2.873.92-1.686-.268-2.873-1.494-3.14-3.256-.153-.996-.077-1.954.306-2.912.65-1.417 1.762-2.184 3.295-2.3C6.63 39.5 7.93 40.19 8.66 41.49l-1.38.766c-.345-.345-.613-.7-.996-.92-1.034-.613-2.375-.23-2.912.843a3.65 3.65 0 0 0 0 3.333c.536 1.034 1.8 1.417 2.835.92.613-.306.92-.805.92-1.647h-2.07v-1.34h3.716c.038 1.494.038 2.988.038 4.52zm6.896-.306c-1.417.728-2.835.65-4.176-.23-1.188-.805-1.647-1.992-1.724-3.37-.115-1.992.958-3.716 2.682-4.3 2.797-.92 5.325.996 5.287 4.52-.038 1.188-.575 2.605-2.07 3.37zm4.98.345c-.115 0-.306-.115-.306-.23l-2.3-8.083c.575 0 1.1-.038 1.647 0 .115 0 .306.23.345.383l1.417 5.402c.038.077.038.192.192.306l1.532-6.053H25.1l-2.337 8.275zm5.363.115c-.613 0-1.073-.498-1.073-1.1s.498-1.1 1.073-1.073c.575 0 1.073.536 1.034 1.1 0 .575-.46 1.073-1.034 1.073zm8.735-7.547v4.252c0 1.877-1.073 3.103-2.912 3.218-.728.038-1.494-.077-2.184-.345-.996-.383-1.647-1.188-1.686-2.3-.077-1.762-.038-3.563-.038-5.325 0-.115 0-.23.038-.383h1.686v5.134c0 1.38 1.034 2.107 2.337 1.686.7-.23 1.073-.805 1.073-1.647v-5.172h1.686zm6.474 7.432c-.153 0-.306-.192-.383-.306l-1.992-3.37c-.498.613-1.226.996-1.073 1.954.077.575 0 1.15 0 1.724h-1.684v-8.275h1.647v3.4l.115.038c.65-.766 1.38-1.494 1.916-2.337.613-.92 1.34-1.303 2.414-1.1.153.038.345 0 .613 0l-2.3 2.605c-.613.7-.613.7-.115 1.494l2.605 4.214zm.998-28.43c-1.34 0-2.375-.996-2.375-2.337s1.034-2.375 2.337-2.375a2.39 2.39 0 0 1 2.414 2.337 2.39 2.39 0 0 1-2.375 2.375z" fill="#000"></path><path d="M15.976 43.213c-.153-1.226-.958-2.07-2.03-2.145-1.1-.077-1.992.575-2.3 1.762-.192.766-.192 1.532.077 2.3.306.958 1.073 1.532 2.03 1.532.996 0 1.724-.536 2.07-1.494.115-.383.153-.805.23-1.226h-.038c0-.268 0-.498-.038-.728z"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/grail.png b/go.dev/testdata/golden/images/logos/grail.png
new file mode 100644
index 0000000..026099c
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/grail.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/grail.svg b/go.dev/testdata/golden/images/logos/grail.svg
new file mode 100644
index 0000000..5a3bd62
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/grail.svg
@@ -0,0 +1,18 @@
+<svg
+  id="Layer_1"
+  data-name="Layer 1"
+  xmlns="http://www.w3.org/2000/svg"
+  viewBox="0 0 571.3 108"
+>
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #612b5c;
+      }
+    </style>
+  </defs>
+  <path
+    class="cls-1"
+    d="M57 64h23v19c-6 5-15 8-25 8-21 0-36-15-36-37 0-20 15-37 36-37 12 0 18 4 26 10a2 2 0 003-1l9-10a2 2 0 00-1-3C82 5 72 0 55 0 21 0 0 25 0 54c0 31 22 54 54 54a67 67 0 0042-15 4 4 0 002-3V50a2 2 0 00-2-2H56a2 2 0 00-2 2v12a3 3 0 003 2zM231 35c0-20-15-32-38-32h-44a2 2 0 00-2 2v99a2 2 0 002 2h14a2 2 0 002-2V70h23l24 34a4 4 0 003 2h16a2 2 0 001-3l-25-36c14-4 24-15 24-32zm-66 19V19h26c14 0 22 6 22 17s-8 18-21 18zM313 5l-43 98a2 2 0 002 3h13a4 4 0 003-3l10-22h48l10 22a4 4 0 003 3h14a2 2 0 002-3L332 5a3 3 0 00-3-2h-13a3 3 0 00-3 2zm-8 60l17-41 18 41zM513 89V5a2 2 0 00-2-2h-14a2 2 0 00-2 2v99a2 2 0 002 2h72a2 2 0 002-2V92a2 2 0 00-2-3h-56zM421 63h20a2 2 0 002-2V47a2 2 0 00-2-2h-20a2 2 0 00-2 2v14a2 2 0 002 2zM421 20h20a2 2 0 002-2V5a2 2 0 00-2-2h-20a2 2 0 00-2 2v13a2 2 0 002 2zM420 36h21a1 1 0 002-2v-3a1 1 0 00-2-1h-21a1 1 0 00-1 1v3a1 1 0 001 2zM421 106h20a2 2 0 002-2V90a2 2 0 00-2-2h-20a2 2 0 00-2 2v14a2 2 0 002 2zM420 79h21a1 1 0 002-2v-3a1 1 0 00-2-1h-21a1 1 0 00-1 1v3a1 1 0 001 2z"
+  />
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/hugo.svg b/go.dev/testdata/golden/images/logos/hugo.svg
new file mode 100644
index 0000000..8a1a9bb
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/hugo.svg
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="346px" height="388px" viewBox="0 0 346 388" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 59.1 (86144) - https://sketch.com -->
+    <title>Slice 1</title>
+    <desc>Created with Sketch.</desc>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Logo_of_Hugo_the_static_website_generator">
+            <path d="M332.1,248.86 L332.1,126.606 C332.1,110.708 323.68,96 309.974,87.946 C280.557,70.663 228.587,40.128 196.759,21.426 C179.949,11.554 159.069,11.776 142.479,22.006 C114.309,39.376 70.359,66.476 41.989,83.973 C24.879,94.523 14.459,113.183 14.459,133.283 L14.459,258.455 C14.459,278.393 25.039,296.831 42.249,306.892 L146.969,368.104 C160.889,376.244 178.079,376.421 192.169,368.574 C222.749,351.538 276.909,321.378 308.109,303.999 C322.909,295.749 332.079,280.139 332.079,263.199 L332.079,248.859 L332.1,248.86 Z" id="Path" fill="#FF4088"></path>
+            <path d="M170.24,0.676 L170.517,0.676 L170.764,0.676 L172.178,0.676 L172.425,0.689 L172.455,0.689 L172.702,0.699 L172.729,0.699 L172.979,0.709 L172.999,0.709 L173.249,0.719 L173.279,0.719 L173.519,0.729 L173.549,0.729 L173.789,0.739 L173.809,0.739 L174.059,0.749 L174.089,0.749 L174.339,0.769 L174.369,0.769 L174.609,0.789 L174.629,0.789 L174.869,0.809 L174.899,0.809 L175.149,0.829 L175.169,0.829 L175.409,0.849 L175.439,0.849 L175.689,0.869 L175.719,0.869 L175.969,0.889 L175.999,0.889 L176.249,0.909 L176.279,0.909 L176.519,0.929 L176.549,0.929 L176.789,0.949 L176.819,0.949 L177.069,0.969 L177.099,0.969 L177.349,0.999 L177.379,0.999 L177.629,1.029 L177.649,1.029 L177.889,1.059 L177.919,1.059 L178.159,1.089 L178.189,1.089 L178.439,1.119 L178.469,1.119 L178.719,1.149 L178.739,1.149 L178.979,1.179 L179.009,1.179 L179.259,1.209 L179.289,1.209 L179.529,1.249 L179.559,1.259 L179.809,1.299 L179.839,1.299 L180.079,1.339 L180.099,1.339 L180.349,1.379 L180.379,1.379 L180.619,1.419 L180.649,1.419 L180.889,1.459 L180.909,1.459 L181.159,1.499 L181.189,1.499 L181.429,1.539 L181.459,1.549 L181.699,1.589 L181.729,1.599 L181.969,1.649 L181.999,1.649 L182.239,1.689 L182.269,1.689 L182.509,1.739 L182.539,1.739 L182.789,1.789 L182.809,1.789 L183.049,1.839 L183.079,1.839 L183.319,1.889 L183.339,1.889 L183.589,1.939 L183.619,1.949 L183.869,1.999 L183.889,1.999 L184.129,2.059 L184.159,2.069 L184.399,2.129 L184.429,2.129 L184.679,2.189 L184.699,2.199 L184.939,2.249 L184.969,2.259 L185.209,2.309 L185.229,2.319 L185.469,2.379 L185.499,2.379 L185.739,2.439 L185.769,2.449 L186.009,2.509 L186.029,2.519 L186.279,2.579 L186.299,2.589 L186.539,2.649 L186.569,2.659 L186.809,2.719 L186.829,2.719 L187.069,2.789 L187.099,2.789 L187.349,2.849 L187.379,2.859 L187.619,2.919 L187.649,2.919 L187.889,2.989 L187.919,2.999 L188.159,3.069 L188.189,3.079 L188.429,3.149 L188.459,3.159 L188.699,3.229 L188.719,3.239 L188.959,3.309 L188.989,3.319 L189.229,3.389 L189.259,3.399 L189.499,3.469 L189.529,3.479 L189.769,3.559 L189.789,3.569 L190.029,3.649 L190.059,3.649 L190.299,3.729 L190.329,3.729 L190.569,3.809 L190.599,3.819 L190.839,3.899 L190.869,3.909 L191.109,3.989 L191.129,3.999 L191.369,4.079 L191.399,4.089 L191.639,4.169 L191.659,4.179 L191.899,4.259 L191.919,4.269 L192.149,4.349 L192.179,4.359 L192.409,4.439 L192.439,4.449 L192.669,4.539 L192.699,4.549 L192.939,4.639 L192.969,4.649 L193.199,4.739 L193.219,4.749 L193.459,4.829 L193.479,4.839 L193.719,4.929 L193.749,4.939 L193.989,5.029 L194.019,5.039 L194.249,5.129 L194.279,5.139 L194.509,5.239 L194.529,5.249 L194.769,5.339 L194.799,5.349 L195.029,5.449 L195.059,5.459 L195.299,5.559 L195.329,5.569 L195.569,5.669 L195.589,5.679 L195.829,5.779 L195.849,5.789 L196.079,5.889 L196.099,5.899 L196.329,5.999 L196.349,6.009 L196.589,6.109 L196.609,6.119 L196.839,6.219 L196.869,6.229 L197.099,6.329 L197.129,6.339 L197.359,6.439 L197.379,6.449 L197.609,6.559 L197.639,6.569 L197.869,6.679 L197.899,6.689 L198.129,6.799 L198.149,6.809 L198.379,6.919 L198.399,6.929 L198.629,7.039 L198.659,7.049 L198.889,7.159 L198.919,7.169 L199.149,7.279 L199.179,7.289 L199.409,7.399 L199.429,7.409 L199.659,7.529 L199.679,7.549 L199.909,7.659 L199.929,7.669 L200.149,7.789 L200.179,7.799 L200.409,7.909 L200.429,7.919 L200.659,8.039 L200.689,8.049 L200.909,8.169 L200.939,8.189 L201.169,8.309 L201.199,8.319 L201.429,8.439 L201.449,8.449 L201.669,8.569 L201.699,8.589 L201.929,8.709 L201.949,8.729 L202.169,8.859 L202.189,8.879 L202.409,9.009 L202.439,9.019 L202.659,9.149 L202.679,9.159 L202.899,9.289 L202.919,9.309 L203.139,9.439 L203.169,9.459 L203.379,9.589 L203.399,9.589 L316.699,76.159 L316.889,76.269 L316.909,76.289 L317.099,76.399 L317.129,76.409 L317.309,76.529 L317.329,76.549 L317.509,76.659 L317.529,76.679 L317.709,76.789 L317.729,76.799 L317.909,76.909 L317.929,76.919 L318.109,77.029 L318.129,77.039 L318.309,77.149 L318.339,77.159 L318.519,77.279 L318.539,77.289 L318.719,77.409 L318.749,77.419 L318.929,77.529 L318.949,77.539 L319.129,77.659 L319.149,77.679 L319.329,77.799 L319.349,77.819 L319.519,77.929 L319.549,77.939 L319.729,78.059 L319.749,78.069 L319.929,78.189 L319.949,78.199 L320.119,78.319 L320.139,78.329 L320.309,78.449 L320.329,78.459 L320.499,78.579 L320.519,78.599 L320.689,78.719 L320.709,78.729 L320.879,78.859 L320.909,78.879 L321.079,78.999 L321.099,79.009 L321.269,79.129 L321.289,79.139 L321.459,79.259 L321.479,79.279 L321.649,79.399 L321.669,79.409 L321.839,79.529 L321.859,79.549 L322.029,79.669 L322.049,79.689 L322.219,79.819 L322.249,79.839 L322.409,79.969 L322.439,79.989 L322.609,80.119 L322.639,80.129 L322.809,80.259 L322.829,80.279 L322.999,80.409 L323.019,80.429 L323.179,80.559 L323.209,80.579 L323.379,80.719 L323.409,80.749 L323.729,81.009 L323.769,81.039 L324.089,81.309 L324.129,81.339 L324.459,81.609 L324.499,81.639 L324.829,81.909 L324.869,81.939 L325.189,82.209 L325.229,82.249 L325.549,82.519 L325.589,82.549 L325.899,82.829 L325.939,82.859 L326.249,83.139 L326.289,83.169 L326.599,83.459 L326.639,83.489 L326.939,83.769 L326.979,83.799 L327.289,84.089 L327.329,84.129 L327.629,84.419 L327.669,84.459 L327.969,84.749 L328.009,84.789 L328.299,85.079 L328.339,85.119 L328.629,85.419 L328.669,85.459 L328.959,85.759 L328.989,85.799 L329.279,86.099 L329.319,86.139 L329.599,86.439 L329.639,86.479 L329.919,86.779 L329.959,86.819 L330.239,87.119 L330.279,87.159 L330.559,87.469 L330.599,87.509 L330.869,87.829 L330.899,87.869 L331.179,88.179 L331.219,88.219 L331.489,88.539 L331.529,88.579 L331.799,88.899 L331.829,88.939 L332.099,89.259 L332.139,89.299 L332.399,89.619 L332.429,89.659 L332.689,89.979 L332.729,90.019 L332.989,90.349 L333.019,90.389 L333.269,90.719 L333.299,90.759 L333.549,91.089 L333.579,91.129 L333.829,91.459 L333.859,91.509 L334.109,91.849 L334.139,91.889 L334.389,92.219 L334.419,92.269 L334.659,92.609 L334.689,92.649 L334.929,92.989 L334.959,93.029 L335.199,93.369 L335.229,93.419 L335.459,93.759 L335.489,93.809 L335.719,94.159 L335.749,94.209 L335.969,94.549 L335.999,94.589 L336.219,94.929 L336.249,94.969 L336.479,95.319 L336.509,95.359 L336.729,95.709 L336.759,95.759 L336.969,96.109 L336.999,96.159 L337.219,96.509 L337.249,96.559 L337.459,96.909 L337.489,96.959 L337.699,97.319 L337.729,97.359 L337.929,97.719 L337.959,97.769 L338.159,98.129 L338.189,98.179 L338.389,98.539 L338.419,98.589 L338.619,98.949 L338.639,98.999 L338.839,99.369 L338.859,99.419 L339.049,99.789 L339.069,99.839 L339.259,100.209 L339.289,100.249 L339.469,100.629 L339.489,100.679 L339.679,101.049 L339.699,101.099 L339.879,101.469 L339.909,101.519 L340.079,101.899 L340.099,101.949 L340.269,102.329 L340.289,102.379 L340.459,102.759 L340.479,102.809 L340.649,103.189 L340.669,103.239 L340.829,103.619 L340.849,103.669 L341.009,104.049 L341.029,104.099 L341.179,104.489 L341.199,104.539 L341.349,104.919 L341.369,104.969 L341.519,105.359 L341.539,105.409 L341.689,105.799 L341.709,105.849 L341.859,106.239 L341.879,106.289 L342.019,106.679 L342.039,106.729 L342.169,107.119 L342.189,107.169 L342.319,107.559 L342.339,107.609 L342.469,107.999 L342.489,108.049 L342.619,108.449 L342.629,108.499 L342.749,108.889 L342.769,108.939 L342.889,109.339 L342.899,109.389 L343.019,109.789 L343.039,109.839 L343.159,110.239 L343.179,110.289 L343.289,110.689 L343.309,110.739 L343.419,111.139 L343.429,111.189 L343.529,111.589 L343.549,111.649 L343.659,112.059 L343.669,112.109 L343.769,112.519 L343.789,112.569 L343.879,112.979 L343.899,113.029 L343.999,113.439 L344.009,113.499 L344.099,113.909 L344.109,113.959 L344.199,114.369 L344.209,114.419 L344.289,114.829 L344.299,114.879 L344.379,115.289 L344.389,115.339 L344.469,115.749 L344.479,115.799 L344.549,116.219 L344.559,116.269 L344.629,116.679 L344.639,116.739 L344.709,117.159 L344.719,117.219 L344.779,117.639 L344.789,117.699 L344.849,118.109 L344.849,118.149 L344.879,118.369 L344.879,118.389 L344.899,118.599 L344.899,118.629 L344.929,118.839 L344.929,118.859 L344.959,119.069 L344.959,119.099 L344.989,119.309 L344.999,119.339 L345.029,119.549 L345.029,119.579 L345.049,119.789 L345.059,119.809 L345.079,120.019 L345.089,120.049 L345.109,120.259 L345.109,120.289 L345.129,120.499 L345.139,120.529 L345.159,120.739 L345.169,120.769 L345.189,120.979 L345.189,121.009 L345.209,121.219 L345.209,121.249 L345.229,121.459 L345.229,121.489 L345.249,121.699 L345.249,121.729 L345.269,121.939 L345.269,121.969 L345.279,122.179 L345.279,122.209 L345.289,122.429 L345.289,122.459 L345.309,122.679 L345.309,122.699 L345.319,122.909 L345.319,122.939 L345.329,123.149 L345.329,123.179 L345.339,123.389 L345.339,123.419 L345.349,123.629 L345.349,123.659 L345.359,123.879 L345.359,123.909 L345.369,124.119 L345.369,124.149 L345.379,124.359 L345.379,124.379 L345.389,124.589 L345.389,264.189 L345.379,264.419 L345.379,264.709 L345.369,264.939 L345.369,264.969 L345.359,265.189 L345.359,265.209 L345.349,265.439 L345.349,265.469 L345.339,265.689 L345.339,265.709 L345.329,265.929 L345.329,265.959 L345.319,266.179 L345.309,266.209 L345.299,266.429 L345.299,266.459 L345.289,266.679 L345.289,266.699 L345.279,266.929 L345.279,266.959 L345.259,267.189 L345.259,267.209 L345.239,267.439 L345.239,267.469 L345.219,267.689 L345.219,267.719 L345.209,267.939 L345.209,267.969 L345.189,268.189 L345.189,268.219 L345.169,268.439 L345.169,268.469 L345.149,268.689 L345.149,268.719 L345.129,268.939 L345.119,268.959 L345.099,269.189 L345.089,269.219 L345.069,269.439 L345.069,269.469 L345.049,269.689 L345.039,269.719 L345.009,269.939 L345.009,269.969 L344.979,270.189 L344.979,270.209 L344.949,270.429 L344.949,270.459 L344.919,270.679 L344.909,270.709 L344.879,270.939 L344.869,270.969 L344.839,271.189 L344.829,271.219 L344.799,271.439 L344.799,271.469 L344.769,271.689 L344.769,271.719 L344.739,271.939 L344.729,271.969 L344.699,272.189 L344.689,272.219 L344.649,272.439 L344.649,272.459 L344.619,272.679 L344.619,272.699 L344.579,272.919 L344.569,272.949 L344.539,273.169 L344.529,273.199 L344.499,273.419 L344.499,273.439 L344.459,273.659 L344.459,273.679 L344.419,273.899 L344.419,273.919 L344.379,274.139 L344.379,274.169 L344.339,274.379 L344.329,274.409 L344.289,274.619 L344.279,274.649 L344.239,274.869 L344.229,274.899 L344.179,275.119 L344.179,275.139 L344.129,275.359 L344.129,275.379 L344.089,275.589 L344.089,275.619 L344.039,275.839 L344.039,275.859 L343.999,276.079 L343.989,276.099 L343.939,276.309 L343.939,276.329 L343.889,276.539 L343.889,276.569 L343.839,276.779 L343.829,276.809 L343.779,277.019 L343.769,277.049 L343.719,277.259 L343.709,277.279 L343.659,277.489 L343.649,277.509 L343.599,277.719 L343.589,277.749 L343.529,277.959 L343.519,277.989 L343.469,278.199 L343.459,278.229 L343.399,278.439 L343.399,278.469 L343.339,278.689 L343.329,278.719 L343.269,278.929 L343.269,278.959 L343.209,279.169 L343.199,279.199 L343.139,279.409 L343.129,279.439 L343.069,279.659 L343.059,279.679 L342.999,279.889 L342.989,279.909 L342.929,280.119 L342.919,280.149 L342.849,280.359 L342.839,280.389 L342.779,280.599 L342.769,280.619 L342.709,280.829 L342.699,280.859 L342.639,281.069 L342.629,281.089 L342.559,281.299 L342.549,281.329 L342.479,281.539 L342.469,281.569 L342.399,281.779 L342.389,281.809 L342.319,282.019 L342.309,282.049 L342.239,282.259 L342.229,282.279 L342.159,282.489 L342.149,282.519 L342.079,282.729 L342.069,282.759 L341.999,282.969 L341.989,282.989 L341.919,283.199 L341.909,283.229 L341.839,283.439 L341.829,283.469 L341.749,283.669 L341.739,283.699 L341.669,283.899 L341.659,283.929 L341.589,284.129 L341.579,284.159 L341.509,284.369 L341.499,284.399 L341.419,284.609 L341.409,284.639 L341.329,284.839 L341.319,284.869 L341.239,285.069 L341.229,285.099 L341.149,285.299 L341.139,285.329 L341.059,285.529 L341.049,285.559 L340.969,285.759 L340.959,285.789 L340.879,285.989 L340.869,286.009 L340.779,286.209 L340.769,286.239 L340.679,286.449 L340.669,286.479 L340.589,286.679 L340.579,286.709 L340.489,286.909 L340.479,286.939 L340.389,287.139 L340.379,287.169 L340.289,287.369 L340.279,287.389 L340.189,287.589 L340.179,287.619 L340.089,287.819 L340.079,287.839 L339.989,288.039 L339.979,288.059 L339.889,288.259 L339.879,288.279 L339.789,288.479 L339.779,288.499 L339.679,288.699 L339.669,288.719 L339.569,288.909 L339.559,288.939 L339.469,289.139 L339.459,289.159 L339.359,289.349 L339.349,289.379 L339.259,289.579 L339.249,289.599 L339.149,289.799 L339.139,289.829 L339.039,290.029 L339.029,290.049 L338.929,290.239 L338.919,290.259 L338.819,290.459 L338.809,290.489 L338.709,290.689 L338.699,290.719 L338.599,290.919 L338.579,290.949 L338.479,291.139 L338.469,291.159 L338.369,291.359 L338.359,291.389 L338.259,291.589 L338.249,291.619 L338.139,291.809 L338.119,291.829 L338.009,292.019 L337.999,292.039 L337.889,292.229 L337.879,292.249 L337.769,292.439 L337.759,292.459 L337.649,292.649 L337.639,292.669 L337.529,292.859 L337.519,292.889 L337.409,293.079 L337.399,293.099 L337.289,293.289 L337.279,293.319 L337.169,293.509 L337.149,293.529 L337.039,293.719 L337.019,293.739 L336.909,293.929 L336.899,293.949 L336.789,294.139 L336.779,294.169 L336.659,294.359 L336.649,294.379 L336.539,294.559 L336.529,294.589 L336.419,294.769 L336.399,294.789 L336.279,294.979 L336.269,295.009 L336.149,295.189 L336.129,295.209 L336.009,295.389 L335.999,295.409 L335.879,295.599 L335.859,295.629 L335.739,295.809 L335.719,295.829 L335.599,296.009 L335.589,296.029 L335.469,296.219 L335.459,296.239 L335.339,296.419 L335.319,296.439 L335.189,296.619 L335.179,296.639 L335.059,296.819 L335.049,296.839 L334.919,297.019 L334.909,297.039 L334.789,297.219 L334.769,297.239 L334.649,297.419 L334.629,297.439 L334.499,297.619 L334.479,297.639 L334.359,297.819 L334.349,297.839 L334.219,298.019 L334.199,298.049 L334.079,298.229 L334.059,298.249 L333.929,298.429 L333.909,298.449 L333.779,298.629 L333.759,298.649 L333.629,298.829 L333.609,298.849 L333.479,299.029 L333.469,299.049 L333.339,299.219 L333.319,299.239 L333.189,299.409 L333.179,299.429 L333.039,299.599 L333.019,299.619 L332.889,299.789 L332.879,299.809 L332.749,299.989 L332.729,300.009 L332.589,300.189 L332.569,300.209 L332.429,300.379 L332.409,300.399 L332.269,300.569 L332.259,300.589 L332.119,300.759 L332.099,300.779 L331.959,300.949 L331.939,300.969 L331.799,301.139 L331.779,301.159 L331.639,301.329 L331.619,301.349 L331.479,301.519 L331.469,301.539 L331.329,301.709 L331.309,301.729 L331.159,301.899 L331.139,301.919 L330.999,302.089 L330.979,302.109 L330.839,302.279 L330.819,302.299 L330.679,302.469 L330.659,302.489 L330.519,302.659 L330.499,302.679 L330.359,302.839 L330.339,302.859 L330.189,303.029 L330.169,303.049 L330.029,303.219 L330.009,303.239 L329.859,303.409 L329.839,303.429 L329.699,303.599 L329.679,303.619 L329.529,303.779 L329.509,303.799 L329.359,303.959 L329.339,303.979 L329.189,304.139 L329.169,304.159 L329.019,304.319 L328.999,304.339 L328.849,304.499 L328.829,304.519 L328.679,304.679 L328.659,304.699 L328.509,304.859 L328.489,304.879 L328.339,305.039 L328.319,305.059 L328.159,305.219 L328.139,305.239 L327.989,305.399 L327.969,305.419 L327.819,305.569 L327.799,305.589 L327.639,305.749 L327.609,305.769 L327.449,305.929 L327.429,305.949 L327.269,306.099 L327.249,306.119 L327.089,306.279 L327.069,306.299 L326.909,306.449 L326.889,306.469 L326.729,306.619 L326.709,306.639 L326.549,306.789 L326.529,306.809 L326.369,306.959 L326.349,306.979 L326.189,307.129 L326.169,307.149 L326.009,307.299 L325.989,307.319 L325.819,307.469 L325.799,307.479 L325.639,307.629 L325.619,307.649 L325.449,307.799 L325.429,307.819 L325.259,307.969 L325.239,307.979 L325.069,308.129 L325.049,308.149 L324.879,308.289 L324.849,308.309 L324.679,308.449 L324.659,308.469 L324.489,308.619 L324.469,308.639 L324.299,308.789 L324.279,308.809 L324.109,308.959 L324.089,308.979 L323.919,309.119 L323.899,309.139 L323.719,309.279 L323.699,309.289 L323.529,309.429 L323.509,309.449 L323.339,309.589 L323.309,309.609 L323.139,309.749 L323.119,309.769 L322.949,309.909 L322.929,309.929 L322.759,310.069 L322.739,310.089 L322.559,310.229 L322.539,310.249 L322.369,310.379 L322.349,310.399 L322.169,310.539 L322.149,310.559 L321.969,310.699 L321.949,310.719 L321.769,310.859 L321.749,310.879 L321.569,311.019 L321.549,311.029 L321.369,311.159 L321.349,311.169 L321.169,311.299 L321.149,311.309 L320.969,311.439 L320.939,311.449 L320.759,311.579 L320.739,311.599 L320.559,311.729 L320.539,311.749 L320.359,311.879 L320.339,311.899 L320.159,312.029 L320.129,312.049 L319.949,312.179 L319.929,312.189 L319.739,312.319 L319.709,312.329 L319.519,312.459 L319.499,312.479 L319.309,312.609 L319.289,312.629 L319.099,312.749 L319.079,312.769 L318.889,312.899 L318.869,312.919 L318.689,313.049 L318.659,313.069 L318.469,313.189 L318.449,313.199 L318.259,313.319 L318.229,313.329 L318.039,313.449 L318.019,313.469 L317.829,313.589 L317.809,313.609 L317.619,313.729 L317.599,313.739 L317.409,313.859 L317.379,313.869 L317.189,313.989 L317.169,314.009 L316.979,314.129 L316.949,314.139 L316.759,314.259 L316.729,314.279 L316.539,314.399 L316.509,314.419 L316.309,314.539 L316.289,314.559 L316.099,314.669 L316.069,314.679 L315.879,314.789 L315.859,314.809 L315.659,314.929 L315.629,314.949 L315.429,315.059 L315.409,315.079 L315.219,315.189 L315.189,315.199 L314.989,315.309 L314.959,315.319 L314.759,315.429 L314.739,315.439 L314.549,315.549 L314.539,315.559 L198.609,380.159 L198.599,380.159 L198.419,380.269 L198.389,380.279 L198.199,380.389 L198.169,380.409 L197.979,380.509 L197.949,380.519 L197.759,380.619 L197.739,380.629 L197.549,380.729 L197.519,380.739 L197.329,380.839 L197.299,380.849 L197.109,380.949 L197.079,380.959 L196.889,381.059 L196.869,381.069 L196.679,381.169 L196.659,381.179 L196.469,381.269 L196.449,381.279 L196.249,381.379 L196.229,381.399 L196.039,381.499 L196.019,381.509 L195.829,381.599 L195.809,381.609 L195.619,381.699 L195.599,381.709 L195.409,381.809 L195.389,381.819 L195.189,381.909 L195.169,381.919 L194.979,382.009 L194.959,382.019 L194.759,382.109 L194.739,382.119 L194.549,382.209 L194.529,382.219 L194.339,382.309 L194.309,382.329 L194.109,382.419 L194.089,382.429 L193.889,382.509 L193.869,382.519 L193.669,382.609 L193.649,382.629 L193.449,382.719 L193.419,382.729 L193.229,382.809 L193.209,382.819 L193.009,382.909 L192.989,382.919 L192.789,382.999 L192.769,383.009 L192.569,383.089 L192.549,383.099 L192.349,383.179 L192.319,383.189 L192.119,383.269 L192.089,383.279 L191.889,383.359 L191.859,383.369 L191.669,383.449 L191.649,383.459 L191.449,383.529 L191.429,383.539 L191.229,383.619 L191.199,383.629 L190.999,383.709 L190.969,383.719 L190.769,383.799 L190.739,383.809 L190.539,383.879 L190.509,383.889 L190.309,383.969 L190.279,383.979 L190.079,384.049 L190.059,384.059 L189.859,384.129 L189.829,384.139 L189.629,384.209 L189.599,384.219 L189.399,384.289 L189.369,384.299 L189.169,384.369 L189.149,384.379 L188.949,384.449 L188.749,384.519 L188.719,384.529 L188.509,384.589 L188.479,384.599 L188.279,384.659 L188.259,384.669 L188.059,384.739 L188.039,384.749 L187.829,384.809 L187.799,384.819 L187.599,384.879 L187.569,384.889 L187.369,384.949 L187.339,384.959 L187.129,385.029 L187.089,385.039 L186.689,385.159 L186.639,385.179 L186.229,385.299 L186.179,385.309 L185.769,385.429 L185.719,385.439 L185.309,385.549 L185.259,385.569 L184.849,385.679 L184.799,385.689 L184.389,385.799 L184.329,385.809 L183.919,385.909 L183.869,385.919 L183.459,386.019 L183.399,386.029 L182.989,386.129 L182.939,386.139 L182.529,386.229 L182.479,386.239 L182.059,386.329 L181.999,386.339 L181.579,386.429 L181.529,386.439 L181.109,386.519 L181.059,386.529 L180.649,386.599 L180.599,386.609 L180.189,386.689 L180.139,386.699 L179.719,386.769 L179.669,386.779 L179.249,386.849 L179.199,386.859 L178.779,386.919 L178.729,386.929 L178.309,386.989 L178.259,386.999 L177.839,387.059 L177.789,387.069 L177.369,387.129 L177.309,387.139 L176.889,387.189 L176.839,387.199 L176.419,387.249 L176.369,387.259 L175.949,387.309 L175.529,387.349 L175.479,387.349 L175.059,387.379 L175.009,387.389 L174.589,387.419 L174.539,387.419 L174.119,387.449 L174.069,387.449 L173.649,387.479 L173.589,387.489 L173.169,387.519 L173.119,387.519 L172.699,387.539 L172.649,387.539 L172.229,387.559 L172.169,387.559 L171.749,387.569 L171.699,387.569 L171.279,387.579 L171.229,387.579 L170.809,387.589 L169.329,387.589 L168.909,387.579 L168.489,387.569 L168.429,387.569 L168.009,387.559 L168,387.559 L167.58,387.539 L167.53,387.529 L167.11,387.509 L167.06,387.509 L166.64,387.489 L166.59,387.479 L166.17,387.459 L166.12,387.459 L165.7,387.429 L165.65,387.419 L165.23,387.379 L165.17,387.369 L164.75,387.329 L164.69,387.319 L164.27,387.279 L164.22,387.269 L163.8,387.229 L163.75,387.229 L163.33,387.189 L163.28,387.179 L162.86,387.129 L162.8,387.129 L162.38,387.079 L162.32,387.069 L161.9,387.009 L161.85,386.999 L161.43,386.939 L161.38,386.929 L160.96,386.869 L160.91,386.859 L160.49,386.799 L160.44,386.789 L160.03,386.719 L160,386.719 L159.58,386.639 L159.526,386.629 L159.116,386.549 L159.066,386.539 L158.656,386.459 L158.606,386.449 L158.196,386.369 L158.136,386.359 L157.72,386.279 L157.67,386.269 L157.26,386.179 L157.2,386.159 L156.79,386.069 L156.74,386.059 L156.33,385.959 L156.274,385.939 L155.864,385.839 L155.814,385.819 L155.404,385.709 L155.354,385.699 L154.944,385.589 L154.894,385.569 L154.484,385.459 L154.434,385.439 L154.024,385.329 L153.974,385.309 L153.564,385.189 L153.504,385.169 L153.094,385.049 L153.044,385.029 L152.634,384.909 L152.584,384.889 L152.174,384.769 L152.124,384.759 L151.726,384.629 L151.686,384.619 L151.476,384.549 L151.449,384.549 L151.249,384.489 L151.219,384.479 L151.019,384.409 L150.989,384.399 L150.789,384.329 L150.759,384.319 L150.559,384.249 L150.529,384.239 L150.329,384.169 L150.299,384.159 L150.099,384.089 L150.079,384.079 L149.879,384.009 L149.859,383.999 L149.659,383.929 L149.639,383.919 L149.439,383.839 L149.409,383.829 L149.209,383.749 L149.179,383.739 L148.979,383.659 L148.959,383.649 L148.759,383.569 L148.729,383.559 L148.529,383.479 L148.509,383.469 L148.309,383.389 L148.279,383.379 L148.079,383.299 L148.059,383.289 L147.859,383.209 L147.839,383.199 L147.639,383.119 L147.609,383.109 L147.409,383.029 L147.379,383.019 L147.179,382.939 L147.149,382.929 L146.949,382.849 L146.919,382.839 L146.719,382.759 L146.699,382.749 L146.499,382.659 L146.469,382.649 L146.279,382.559 L146.259,382.549 L146.059,382.459 L146.039,382.449 L145.839,382.359 L145.819,382.349 L145.619,382.269 L145.589,382.259 L145.399,382.169 L145.369,382.159 L145.169,382.069 L145.139,382.059 L144.949,381.969 L144.929,381.949 L144.739,381.859 L144.719,381.849 L144.529,381.759 L144.509,381.749 L144.309,381.659 L144.289,381.639 L144.089,381.539 L144.069,381.519 L143.879,381.429 L143.849,381.419 L143.649,381.329 L143.629,381.309 L143.439,381.209 L143.409,381.199 L143.209,381.099 L143.189,381.089 L142.999,380.989 L142.969,380.979 L142.779,380.879 L142.759,380.869 L142.569,380.769 L142.539,380.749 L142.349,380.649 L142.329,380.639 L142.139,380.539 L142.119,380.529 L141.929,380.429 L141.899,380.409 L141.709,380.309 L141.689,380.299 L141.499,380.189 L141.469,380.169 L141.279,380.069 L141.249,380.059 L141.059,379.959 L141.029,379.949 L140.839,379.849 L140.809,379.839 L140.619,379.729 L140.589,379.719 L140.409,379.609 L140.379,379.599 L140.199,379.489 L140.189,379.479 L35.389,318.309 L35.379,318.299 L35.159,318.169 L35.139,318.159 L34.919,318.029 L34.889,318.019 L34.659,317.889 L34.629,317.879 L34.409,317.739 L34.389,317.729 L34.169,317.589 L34.149,317.569 L33.929,317.429 L33.909,317.409 L33.689,317.269 L33.659,317.259 L33.439,317.129 L33.409,317.109 L33.189,316.969 L33.169,316.949 L32.949,316.809 L33,316.809 L32.78,316.669 L32.75,316.649 L32.53,316.509 L32.51,316.489 L32.29,316.349 L32.262,316.329 L32.042,316.179 L32.012,316.159 L31.792,316.009 L31.772,315.989 L31.552,315.849 L31.532,315.829 L31.312,315.679 L31.292,315.659 L31.072,315.509 L31.052,315.489 L30.842,315.339 L30.812,315.319 L30.597,315.169 L30.577,315.149 L30.367,314.999 L30.342,314.979 L30.132,314.829 L30.105,314.809 L29.895,314.659 L29.875,314.649 L29.665,314.499 L29.645,314.479 L29.438,314.329 L29.418,314.309 L29.212,314.159 L29.182,314.149 L28.972,313.999 L28.952,313.979 L28.742,313.819 L28.722,313.799 L28.512,313.649 L28.486,313.629 L28.276,313.469 L28.25,313.449 L28.05,313.289 L28.03,313.269 L27.83,313.109 L27.81,313.099 L27.61,312.939 L27.59,312.919 L27.39,312.759 L27.37,312.739 L27.17,312.579 L27.15,312.559 L26.95,312.399 L26.93,312.379 L26.73,312.219 L26.71,312.199 L26.51,312.039 L26.49,312.019 L26.29,311.849 L26.27,311.839 L26.07,311.679 L26.05,311.659 L25.856,311.499 L25.836,311.479 L25.636,311.309 L25.616,311.289 L25.416,311.129 L25.396,311.109 L25.196,310.939 L25.176,310.929 L24.98,310.769 L24.96,310.749 L24.77,310.589 L24.75,310.569 L24.56,310.399 L24.54,310.379 L24.35,310.209 L24.33,310.189 L24.14,310.019 L24.12,309.999 L23.93,309.829 L23.91,309.809 L23.72,309.639 L23.7,309.619 L23.51,309.439 L23.49,309.429 L23.3,309.259 L23.27,309.239 L23.085,309.059 L23.065,309.039 L22.875,308.869 L22.855,308.849 L22.669,308.669 L22.649,308.649 L22.469,308.469 L22.449,308.449 L22.269,308.269 L22.249,308.249 L22.059,308.069 L22.039,308.049 L21.849,307.869 L21.829,307.859 L21.649,307.679 L21.629,307.659 L21.449,307.479 L21.429,307.459 L21.249,307.279 L21.229,307.259 L21.049,307.079 L21.029,307.059 L20.849,306.879 L20.829,306.859 L20.649,306.679 L20.629,306.659 L20.459,306.479 L20.439,306.459 L20.259,306.279 L20.239,306.259 L20.059,306.069 L20.039,306.049 L19.869,305.859 L19.849,305.839 L19.679,305.649 L19.659,305.629 L19.479,305.439 L19.459,305.419 L19.289,305.229 L19.269,305.209 L19.099,305.019 L19.079,304.999 L18.909,304.809 L18.889,304.789 L18.719,304.599 L18.699,304.579 L18.529,304.389 L18.519,304.369 L18.359,304.179 L18.339,304.159 L18.169,303.969 L18.149,303.949 L17.969,303.749 L17.949,303.729 L17.779,303.539 L17.759,303.519 L17.589,303.319 L17.569,303.299 L17.409,303.109 L17.399,303.089 L17.239,302.899 L17.219,302.879 L17.059,302.679 L17.039,302.659 L16.869,302.459 L16.849,302.439 L16.689,302.249 L16.669,302.229 L16.499,302.039 L16.479,302.019 L16.319,301.829 L16.299,301.809 L16.139,301.609 L16.119,301.589 L15.959,301.389 L15.939,301.369 L15.779,301.169 L15.759,301.149 L15.599,300.949 L15.579,300.929 L15.419,300.729 L15.409,300.709 L15.259,300.509 L15.239,300.489 L15.089,300.289 L15.079,300.269 L14.929,300.069 L14.909,300.049 L14.759,299.839 L14.739,299.819 L14.589,299.619 L14.569,299.599 L14.419,299.399 L14.409,299.379 L14.259,299.169 L14.249,299.149 L14.099,298.939 L14.089,298.919 L13.939,298.719 L13.929,298.699 L13.779,298.499 L13.759,298.479 L13.609,298.269 L13.589,298.249 L13.439,298.039 L13.419,298.009 L13.279,297.799 L13.259,297.779 L13.119,297.569 L13.099,297.549 L12.959,297.339 L12.939,297.319 L12.799,297.109 L12.789,297.089 L12.649,296.879 L12.629,296.849 L12.489,296.639 L12.469,296.619 L12.329,296.409 L12.309,296.389 L12.169,296.179 L12.149,296.159 L12.009,295.949 L11.989,295.929 L11.859,295.719 L11.849,295.699 L11.719,295.489 L11.699,295.459 L11.559,295.249 L11.539,295.219 L11.399,295.009 L11.389,294.989 L11.249,294.769 L11.239,294.739 L11.109,294.529 L11.089,294.509 L10.959,294.299 L10.939,294.279 L10.809,294.059 L10.789,294.029 L10.659,293.819 L10.649,293.799 L10.519,293.579 L10.509,293.559 L10.379,293.349 L10.359,293.319 L10.229,293.099 L10.209,293.069 L10.079,292.849 L10.059,292.819 L9.939,292.599 L9.919,292.579 L9.789,292.359 L9.779,292.339 L9.659,292.119 L9.649,292.099 L9.529,291.879 L9.519,291.849 L9.399,291.629 L9.379,291.599 L9.259,291.379 L9.249,291.349 L9.129,291.119 L9.119,291.099 L8.999,290.879 L8.989,290.849 L8.869,290.629 L8.859,290.599 L8.739,290.379 L8.729,290.349 L8.619,290.119 L8.609,290.099 L8.489,289.869 L8.479,289.839 L8.359,289.609 L8.339,289.589 L8.229,289.359 L8.219,289.339 L8.109,289.119 L8.099,289.089 L7.989,288.859 L7.989,288.869 L7.879,288.639 L7.859,288.609 L7.749,288.379 L7.739,288.349 L7.629,288.129 L7.619,288.099 L7.509,287.869 L7.499,287.849 L7.389,287.619 L7.379,287.599 L7.279,287.369 L7.269,287.349 L7.159,287.119 L7.149,287.099 L7.039,286.869 L7.029,286.849 L6.919,286.619 L6.909,286.589 L6.809,286.359 L6.799,286.339 L6.689,286.109 L6.679,286.079 L6.569,285.849 L6.559,285.829 L6.459,285.599 L6.449,285.579 L6.349,285.349 L6.339,285.319 L6.239,285.089 L6.229,285.069 L6.139,284.839 L6.129,284.819 L6.029,284.589 L6.019,284.559 L5.929,284.319 L5.919,284.299 L5.819,284.069 L5.809,284.039 L5.719,283.819 L5.709,283.789 L5.609,283.549 L5.599,283.529 L5.509,283.289 L5.499,283.259 L5.409,283.019 L5.399,282.999 L5.309,282.759 L5.299,282.729 L5.209,282.489 L5.199,282.469 L5.109,282.229 L5.099,282.209 L5.019,281.969 L5.009,281.939 L4.919,281.699 L4.909,281.679 L4.829,281.439 L4.819,281.409 L4.739,281.169 L4.729,281.139 L4.639,280.899 L4.629,280.869 L4.549,280.629 L4.539,280.609 L4.459,280.369 L4.449,280.349 L4.369,280.109 L4.359,280.079 L4.279,279.839 L4.269,279.809 L4.189,279.569 L4.179,279.539 L4.099,279.299 L4.089,279.269 L4.009,279.029 L4,279 L3.93,278.76 L3.92,278.74 L3.84,278.49 L3.83,278.46 L3.76,278.21 L3.75,278.18 L3.68,277.94 L3.67,277.91 L3.6,277.67 L3.59,277.64 L3.52,277.39 L3.51,277.36 L3.44,277.11 L3.43,277.09 L3.36,276.84 L3.35,276.83 L3.28,276.58 L3.27,276.56 L3.21,276.32 L3.2,276.3 L3.14,276.06 L3.14,276.04 L3.07,275.79 L3.07,275.76 L3.01,275.52 L3,275.49 L2.94,275.25 L2.93,275.22 L2.87,274.97 L2.88,274.97 L2.82,274.72 L2.81,274.7 L2.75,274.45 L2.74,274.43 L2.68,274.18 L2.67,274.16 L2.61,273.91 L2.62,273.9 L2.56,273.65 L2.55,273.62 L2.49,273.37 L2.48,273.34 L2.43,273.09 L2.42,273.06 L2.36,272.81 L2.35,272.79 L2.3,272.54 L2.29,272.51 L2.24,272.26 L2.23,272.23 L2.18,271.98 L2.13,271.73 L2.13,271.7 L2.08,271.44 L2.08,271.41 L2.03,271.16 L2.02,271.13 L1.96,270.89 L1.96,270.86 L1.91,270.59 L1.9,270.56 L1.85,270.3 L1.84,270.27 L1.8,270.02 L1.79,269.99 L1.75,269.74 L1.75,269.71 L1.71,269.46 L1.71,269.43 L1.67,269.18 L1.66,269.15 L1.62,268.9 L1.62,268.91 L1.58,268.66 L1.58,268.64 L1.54,268.39 L1.54,268.36 L1.5,268.11 L1.5,268.08 L1.46,267.83 L1.46,267.81 L1.43,267.55 L1.43,267.52 L1.4,267.27 L1.4,267.25 L1.36,266.99 L1.35,266.96 L1.32,266.71 L1.32,266.68 L1.29,266.42 L1.28,266.39 L1.25,266.13 L1.25,266.1 L1.22,265.84 L1.21,265.81 L1.18,265.55 L1.18,265.52 L1.15,265.26 L1.14,265.24 L1.11,264.98 L1.09,264.72 L1.09,264.69 L1.06,264.43 L1.05,264.4 L1.02,264.14 L1.02,264.11 L1,263.85 L0.99,263.82 L0.97,263.56 L0.97,263.53 L0.95,263.27 L0.95,263.24 L0.93,262.98 L0.91,262.72 L0.91,262.69 L0.89,262.43 L0.89,262.4 L0.87,262.14 L0.87,261.817 L0.86,261.557 L0.86,261.527 L0.85,261.267 L0.85,261.237 L0.84,260.977 L0.83,260.947 L0.82,260.687 L0.82,260.407 L0.81,260.147 L0.81,260.117 L0.8,259.857 L0.8,133.257 L0.81,133.007 L0.81,132.687 L0.82,132.427 L0.82,131.507 L0.83,131.247 L0.83,131.227 L0.84,130.967 L0.84,130.937 L0.85,130.677 L0.85,130.647 L0.86,130.387 L0.86,130.367 L0.87,130.107 L0.87,130.077 L0.88,129.817 L0.88,129.787 L0.9,129.517 L0.9,129.487 L0.92,129.227 L0.92,129.207 L0.93,128.947 L0.93,128.917 L0.95,128.657 L0.95,128.627 L0.96,128.367 L0.96,128.337 L0.97,128.077 L0.97,128.047 L0.99,127.787 L0.99,127.757 L1.01,127.497 L1.01,127.467 L1.04,127.207 L1.04,127.177 L1.06,126.917 L1.07,126.897 L1.09,126.637 L1.09,126.617 L1.12,126.357 L1.12,126.337 L1.15,126.077 L1.16,126.047 L1.19,125.787 L1.19,125.757 L1.22,125.497 L1.22,125.477 L1.25,125.217 L1.25,125.197 L1.28,124.937 L1.29,124.907 L1.32,124.647 L1.32,124.617 L1.35,124.367 L1.35,124.337 L1.38,124.077 L1.38,124.047 L1.41,123.787 L1.42,123.757 L1.45,123.507 L1.45,123.477 L1.49,123.217 L1.49,123.187 L1.52,122.927 L1.53,122.897 L1.56,122.647 L1.57,122.617 L1.61,122.357 L1.62,122.337 L1.66,122.077 L1.66,122.057 L1.7,121.797 L1.7,121.777 L1.74,121.527 L1.75,121.497 L1.79,121.247 L1.79,121.217 L1.86,120.957 L1.87,120.927 L1.91,120.677 L1.91,120.647 L1.96,120.397 L1.96,120.377 L2.01,120.127 L2.01,120.107 L2.06,119.847 L2.07,119.827 L2.12,119.577 L2.13,119.557 L2.18,119.307 L2.19,119.277 L2.24,119.027 L2.25,118.997 L2.3,118.747 L2.3,118.717 L2.35,118.467 L2.35,118.447 L2.4,118.197 L2.41,118.177 L2.46,117.927 L2.47,117.907 L2.53,117.657 L2.53,117.627 L2.59,117.377 L2.6,117.347 L2.65,117.097 L2.66,117.067 L2.72,116.817 L2.72,116.787 L2.78,116.537 L2.79,116.507 L2.85,116.257 L2.85,116.227 L2.91,115.977 L2.92,115.957 L2.98,115.707 L2.98,115.687 L3.04,115.437 L3.05,115.407 L3.12,115.157 L3.12,115.137 L3.19,114.887 L3.19,114.867 L3.26,114.617 L3.27,114.587 L3.34,114.337 L3.34,114.307 L3.41,114.057 L3.42,114.027 L3.49,113.787 L3.5,113.767 L3.57,113.517 L3.58,113.492 L3.65,113.242 L3.66,113.212 L3.73,112.968 L3.74,112.948 L3.82,112.698 L3.83,112.678 L3.9,112.438 L3.91,112.418 L3.98,112.175 L3.99,112.155 L4.06,111.907 L4.07,111.877 L4.15,111.633 L4.16,111.603 L4.24,111.363 L4.24,111.343 L4.32,111.103 L4.32,111.073 L4.4,110.833 L4.41,110.813 L4.49,110.573 L4.5,110.543 L4.58,110.303 L4.59,110.273 L4.67,110.033 L4.68,110.003 L4.76,109.763 L4.77,109.743 L4.86,109.503 L4.87,109.483 L4.95,109.243 L4.96,109.218 L5.04,108.978 L5.05,108.958 L5.14,108.718 L5.15,108.698 L5.24,108.458 L5.24,108.438 L5.33,108.198 L5.34,108.178 L5.43,107.938 L5.44,107.908 L5.53,107.668 L5.54,107.648 L5.63,107.408 L5.64,107.378 L5.74,107.148 L5.75,107.128 L5.85,106.888 L5.86,106.868 L5.96,106.628 L5.97,106.598 L6.07,106.358 L6.08,106.328 L6.18,106.088 L6.19,106.058 L6.29,105.818 L6.3,105.788 L6.4,105.548 L6.41,105.518 L6.51,105.278 L6.52,105.253 L6.62,105.023 L6.63,104.993 L6.73,104.763 L6.74,104.733 L6.84,104.493 L6.85,104.473 L6.96,104.233 L6.97,104.213 L7.08,103.983 L7.09,103.963 L7.19,103.733 L7.2,103.703 L7.31,103.473 L7.32,103.453 L7.43,103.223 L7.44,103.203 L7.55,102.973 L7.56,102.953 L7.67,102.723 L7.68,102.693 L7.79,102.463 L7.8,102.443 L7.91,102.213 L7.92,102.183 L8.03,101.953 L8.04,101.933 L8.15,101.703 L8.16,101.683 L8.27,101.453 L8.28,101.433 L8.39,101.203 L8.4,101.183 L8.52,100.963 L8.53,100.943 L8.65,100.713 L8.67,100.683 L8.79,100.453 L8.8,100.433 L8.92,100.203 L8.93,100.173 L9.05,99.953 L9.06,99.933 L9.18,99.713 L9.19,99.693 L9.31,99.473 L9.32,99.443 L9.44,99.223 L9.46,99.203 L9.58,98.983 L9.59,98.953 L9.71,98.733 L9.73,98.713 L9.85,98.493 L9.86,98.473 L9.98,98.253 L10,98.223 L10.13,98.003 L10.14,97.983 L10.26,97.763 L10.27,97.743 L10.4,97.523 L10.41,97.503 L10.54,97.283 L10.55,97.263 L10.68,97.043 L10.7,97.023 L10.83,96.803 L10.84,96.783 L10.97,96.563 L10.99,96.543 L11.12,96.323 L11.13,96.303 L11.26,96.083 L11.28,96.063 L11.41,95.843 L11.42,95.823 L11.56,95.603 L11.58,95.573 L11.72,95.353 L11.73,95.333 L11.86,95.123 L11.88,95.103 L12.02,94.893 L12.04,94.873 L12.17,94.653 L12.18,94.633 L12.32,94.423 L12.33,94.403 L12.47,94.193 L12.49,94.173 L12.63,93.953 L12.65,93.933 L12.79,93.723 L12.8,93.693 L12.94,93.483 L12.95,93.463 L13.09,93.253 L13.1,93.233 L13.25,93.023 L13.27,93.003 L13.41,92.793 L13.43,92.773 L13.58,92.563 L13.59,92.543 L13.74,92.333 L13.75,92.313 L13.9,92.103 L13.91,92.083 L14.06,91.873 L14.08,91.853 L14.23,91.643 L14.24,91.623 L14.39,91.413 L14.41,91.393 L14.56,91.193 L14.57,91.173 L14.72,90.963 L14.74,90.943 L14.89,90.743 L14.91,90.723 L15.06,90.523 L15.08,90.503 L15.23,90.303 L15.25,90.283 L15.4,90.083 L15.41,90.063 L15.56,89.863 L15.58,89.843 L15.74,89.643 L15.76,89.623 L15.92,89.423 L15.94,89.403 L16.1,89.203 L16.12,89.183 L16.28,88.983 L16.3,88.963 L16.46,88.763 L16.48,88.733 L16.64,88.533 L16.65,88.513 L16.81,88.313 L16.83,88.293 L16.99,88.093 L17.01,88.073 L17.17,87.883 L17.19,87.863 L17.35,87.663 L17.37,87.643 L17.53,87.443 L17.55,87.423 L17.72,87.233 L17.74,87.213 L17.9,87.013 L17.92,86.993 L18.08,86.803 L18.1,86.783 L18.26,86.583 L18.28,86.563 L18.45,86.363 L18.46,86.343 L18.63,86.153 L18.65,86.133 L18.82,85.943 L18.84,85.923 L19.01,85.733 L19.03,85.713 L19.2,85.523 L19.21,85.503 L19.38,85.313 L19.4,85.293 L19.57,85.103 L19.59,85.083 L19.76,84.893 L19.77,84.873 L19.94,84.683 L19.96,84.663 L20.14,84.473 L20.15,84.453 L20.33,84.263 L20.35,84.243 L20.54,84.063 L20.56,84.043 L20.74,83.853 L20.76,83.833 L20.94,83.643 L20.96,83.623 L21.14,83.443 L21.16,83.423 L21.34,83.243 L21.36,83.223 L21.54,83.043 L21.56,83.023 L21.75,82.843 L21.77,82.823 L21.95,82.643 L21.97,82.623 L22.15,82.443 L22.17,82.423 L22.35,82.243 L22.37,82.223 L22.55,82.043 L22.57,82.023 L22.75,81.843 L22.77,81.823 L22.95,81.643 L22.97,81.623 L23.15,81.443 L23.17,81.423 L23.36,81.253 L23.38,81.233 L23.57,81.063 L23.59,81.043 L23.78,80.863 L23.8,80.843 L23.99,80.663 L24.01,80.653 L24.2,80.483 L24.22,80.473 L24.41,80.303 L24.43,80.283 L24.62,80.113 L24.64,80.093 L24.83,79.923 L24.85,79.903 L25.04,79.733 L25.06,79.723 L25.26,79.553 L25.28,79.533 L25.48,79.363 L25.5,79.343 L25.7,79.173 L25.72,79.153 L25.92,78.993 L25.94,78.973 L26.14,78.813 L26.16,78.793 L26.35,78.633 L26.37,78.613 L26.57,78.453 L26.59,78.433 L26.79,78.273 L26.81,78.263 L27.01,78.103 L27.03,78.083 L27.23,77.923 L27.25,77.903 L27.45,77.743 L27.47,77.723 L27.68,77.563 L27.7,77.543 L27.9,77.383 L27.92,77.363 L28.13,77.203 L28.15,77.183 L28.36,77.023 L28.38,77.003 L28.58,76.843 L28.6,76.833 L28.81,76.673 L28.83,76.653 L29.03,76.493 L29.05,76.473 L29.26,76.323 L29.28,76.303 L29.49,76.143 L29.51,76.123 L29.72,75.973 L29.74,75.963 L29.95,75.813 L29.98,75.793 L30.19,75.643 L30.21,75.633 L30.42,75.483 L30.44,75.463 L30.65,75.303 L30.67,75.293 L30.89,75.143 L30.91,75.123 L31.12,74.973 L31.15,74.963 L31.36,74.813 L31.38,74.803 L31.59,74.653 L31.61,74.643 L31.83,74.493 L31.85,74.473 L32.06,74.323 L32.08,74.313 L32.3,74.173 L32.32,74.163 L32.53,74.013 L32.56,73.993 L32.78,73.853 L32.8,73.833 L33.02,73.683 L33.04,73.663 L33.26,73.523 L33.29,73.513 L33.51,73.373 L33.53,73.353 L33.75,73.213 L33.77,73.203 L33.99,73.063 L34.01,73.053 L34.23,72.913 L34.25,72.903 L34.47,72.763 L34.5,72.753 L34.72,72.623 L34.73,72.623 L135.24,10.623 L135.25,10.613 L135.46,10.483 L135.48,10.473 L135.7,10.333 L135.73,10.313 L135.95,10.183 L135.98,10.163 L136.2,10.033 L136.23,10.013 L136.45,9.883 L136.48,9.873 L136.71,9.743 L136.73,9.723 L136.95,9.593 L136.98,9.583 L137.2,9.453 L137.22,9.443 L137.45,9.323 L137.47,9.303 L137.7,9.183 L137.72,9.163 L137.94,9.043 L137.97,9.033 L138.2,8.913 L138.22,8.893 L138.44,8.773 L138.47,8.753 L138.69,8.633 L138.72,8.613 L138.94,8.493 L138.96,8.473 L139.19,8.353 L139.21,8.343 L139.43,8.223 L139.46,8.213 L139.68,8.093 L139.71,8.083 L139.94,7.963 L139.97,7.953 L140.2,7.833 L140.22,7.823 L140.45,7.713 L140.48,7.703 L140.71,7.593 L140.74,7.583 L140.96,7.473 L140.99,7.463 L141.22,7.353 L141.24,7.343 L141.47,7.233 L141.5,7.223 L141.73,7.113 L141.76,7.093 L141.99,6.983 L142.02,6.973 L142.25,6.863 L142.28,6.853 L142.51,6.753 L142.54,6.743 L142.77,6.643 L142.79,6.623 L143.02,6.523 L143.04,6.513 L143.27,6.413 L143.3,6.393 L143.53,6.293 L143.56,6.283 L143.79,6.183 L143.82,6.173 L144.05,6.073 L144.08,6.063 L144.31,5.963 L144.34,5.953 L144.57,5.853 L144.6,5.843 L144.83,5.753 L144.86,5.743 L145.09,5.643 L145.12,5.633 L145.36,5.533 L145.39,5.523 L145.63,5.423 L145.66,5.403 L145.89,5.313 L145.91,5.303 L146.15,5.213 L146.18,5.203 L146.41,5.113 L146.43,5.103 L146.67,5.013 L146.7,5.003 L146.94,4.923 L146.97,4.913 L147.21,4.823 L147.24,4.813 L147.48,4.723 L147.51,4.713 L147.75,4.633 L147.78,4.623 L148.02,4.543 L148.05,4.533 L148.28,4.453 L148.31,4.443 L148.55,4.363 L148.58,4.353 L148.81,4.273 L148.84,4.263 L149.08,4.183 L149.1,4.173 L149.34,4.093 L149.37,4.083 L149.61,4.003 L149.64,3.993 L149.88,3.913 L149.91,3.903 L150.15,3.833 L150.17,3.823 L150.41,3.753 L150.44,3.743 L150.68,3.673 L150.71,3.673 L150.95,3.603 L150.98,3.593 L151.22,3.523 L151.24,3.513 L151.48,3.443 L151.5,3.433 L151.74,3.363 L151.77,3.353 L152.01,3.283 L152.04,3.273 L152.28,3.203 L152.31,3.193 L152.55,3.133 L152.58,3.123 L152.82,3.063 L152.84,3.053 L153.08,2.983 L153.104,2.973 L153.354,2.913 L153.374,2.913 L153.614,2.843 L153.644,2.843 L153.891,2.783 L153.921,2.773 L154.171,2.713 L154.201,2.703 L154.441,2.643 L154.471,2.643 L154.721,2.583 L154.751,2.583 L154.991,2.523 L155.021,2.513 L155.261,2.463 L155.291,2.453 L155.531,2.393 L155.561,2.383 L155.801,2.333 L155.831,2.333 L156.071,2.283 L156.101,2.273 L156.341,2.223 L156.361,2.223 L156.601,2.173 L156.631,2.163 L156.881,2.113 L156.901,2.113 L157.151,2.063 L157.171,2.053 L157.421,2.003 L157.451,1.993 L157.701,1.943 L157.731,1.933 L157.981,1.893 L158.011,1.893 L158.251,1.853 L158.281,1.843 L158.531,1.793 L158.561,1.783 L158.811,1.743 L158.841,1.743 L159.081,1.703 L159.111,1.693 L159.361,1.653 L159.391,1.643 L159.631,1.603 L159.651,1.603 L159.891,1.563 L159.921,1.563 L160.171,1.523 L160.201,1.513 L160.451,1.473 L160.481,1.473 L160.731,1.433 L160.761,1.433 L161.011,1.393 L161.041,1.393 L161.291,1.363 L161.321,1.363 L161.561,1.333 L161.591,1.333 L161.841,1.303 L161.871,1.293 L162.121,1.263 L162.141,1.253 L162.391,1.233 L162.421,1.233 L162.661,1.203 L162.691,1.203 L162.931,1.173 L162.961,1.173 L163.211,1.143 L163.241,1.143 L163.491,1.113 L163.521,1.113 L163.761,1.093 L163.791,1.093 L164.041,1.063 L164.071,1.053 L164.321,1.033 L164.351,1.023 L164.601,1.003 L164.631,1.003 L164.877,0.983 L164.907,0.983 L165.157,0.963 L165.187,0.963 L165.437,0.953 L165.467,0.943 L165.717,0.923 L165.737,0.913 L165.987,0.903 L166.017,0.903 L166.267,0.883 L166.287,0.883 L166.537,0.873 L166.567,0.873 L166.817,0.863 L166.847,0.863 L167.097,0.853 L167.127,0.853 L167.377,0.843 L167.407,0.833 L167.657,0.823 L167.687,0.823 L167.937,0.813 L167.967,0.813 L168.217,0.803 L168.247,0.803 L168.497,0.793 L168.527,0.793 L168.777,0.783 L168.797,0.783 L169.047,0.773 L169.357,0.773 L169.607,0.763 L170.187,0.763 L170.24,0.676 Z M170.01,27.676 L169.846,27.676 L169.682,27.678 L169.519,27.678 L169.349,27.682 L169.179,27.686 L169.009,27.691 L168.839,27.701 L168.669,27.711 L168.499,27.721 L168.339,27.731 L168.169,27.741 L168.009,27.751 L167.849,27.761 L167.689,27.771 L167.519,27.781 L167.359,27.791 L167.189,27.811 L167.019,27.831 L166.859,27.851 L166.689,27.871 L166.519,27.891 L166.349,27.911 L166.189,27.931 L166.019,27.951 L165.859,27.971 L165.699,27.991 L165.529,28.011 L165.369,28.031 L165.209,28.051 L165.049,28.071 L164.889,28.091 L164.719,28.111 L164.559,28.141 L164.399,28.161 L164.229,28.191 L164.069,28.221 L163.909,28.251 L163.749,28.281 L163.589,28.311 L163.429,28.341 L163.269,28.371 L163.109,28.391 L162.939,28.421 L162.779,28.451 L162.609,28.481 L162.449,28.511 L162.289,28.541 L162.129,28.571 L161.969,28.611 L161.809,28.651 L161.649,28.691 L161.489,28.721 L161.329,28.751 L161.169,28.791 L161.009,28.831 L160.849,28.871 L160.689,28.911 L160.529,28.951 L160.369,28.991 L160.209,29.031 L160.049,29.071 L159.889,29.111 L159.729,29.151 L159.569,29.201 L159.409,29.241 L159.249,29.291 L159.099,29.341 L158.939,29.391 L158.779,29.441 L158.619,29.491 L158.459,29.541 L158.299,29.591 L158.149,29.641 L157.989,29.691 L157.829,29.751 L157.669,29.801 L157.509,29.851 L157.349,29.911 L157.189,29.961 L157.029,30.011 L156.879,30.061 L156.719,30.121 L156.559,30.181 L156.399,30.241 L156.249,30.301 L156.089,30.361 L155.939,30.421 L155.789,30.481 L155.629,30.551 L155.469,30.611 L155.309,30.671 L155.149,30.731 L154.999,30.801 L154.849,30.861 L154.689,30.931 L154.539,31.001 L154.389,31.071 L154.239,31.141 L154.079,31.211 L153.929,31.281 L153.769,31.351 L153.619,31.421 L153.469,31.491 L153.319,31.561 L153.159,31.631 L153.009,31.701 L152.859,31.771 L152.709,31.851 L152.559,31.931 L152.409,32.001 L152.259,32.081 L152.109,32.151 L151.959,32.231 L151.809,32.311 L151.659,32.391 L151.509,32.471 L151.359,32.551 L151.209,32.641 L151.069,32.721 L150.919,32.801 L150.779,32.881 L150.629,32.971 L150.479,33.061 L150.329,33.151 L150.189,33.231 L150.039,33.321 L149.899,33.411 L149.749,33.501 L149.599,33.591 L149.439,33.691 L49.039,95.571 L48.869,95.681 L48.709,95.781 L48.559,95.881 L48.409,95.981 L48.259,96.081 L48.109,96.181 L47.959,96.281 L47.809,96.381 L47.659,96.481 L47.509,96.581 L47.359,96.681 L47.209,96.781 L47.059,96.891 L46.919,96.991 L46.779,97.091 L46.629,97.191 L46.489,97.291 L46.349,97.391 L46.209,97.491 L46.069,97.591 L45.929,97.691 L45.789,97.791 L45.649,97.901 L45.509,98.001 L45.369,98.111 L45.229,98.221 L45.089,98.331 L44.949,98.441 L44.809,98.551 L44.669,98.661 L44.539,98.771 L44.399,98.881 L44.259,98.991 L44.129,99.101 L43.989,99.211 L43.849,99.321 L43.719,99.431 L43.579,99.541 L43.449,99.651 L43.319,99.761 L43.189,99.881 L43.059,100.001 L42.929,100.111 L42.799,100.221 L42.669,100.341 L42.539,100.461 L42.409,100.581 L42.279,100.701 L42.149,100.821 L42.019,100.941 L41.889,101.061 L41.759,101.181 L41.629,101.301 L41.499,101.421 L41.369,101.541 L41.249,101.661 L41.119,101.781 L40.999,101.911 L40.869,102.031 L40.749,102.161 L40.629,102.281 L40.509,102.411 L40.389,102.531 L40.269,102.661 L40.149,102.791 L40.019,102.921 L39.899,103.041 L39.779,103.171 L39.659,103.301 L39.539,103.431 L39.429,103.561 L39.309,103.691 L39.189,103.821 L39.069,103.951 L38.949,104.091 L38.829,104.221 L38.719,104.351 L38.609,104.481 L38.489,104.621 L38.379,104.751 L38.259,104.881 L38.149,105.021 L38.039,105.151 L37.929,105.291 L37.819,105.431 L37.709,105.571 L37.599,105.711 L37.489,105.851 L37.379,105.991 L37.279,106.131 L37.169,106.271 L37.059,106.411 L36.949,106.551 L36.839,106.691 L36.739,106.831 L36.639,106.971 L36.539,107.111 L36.439,107.261 L36.339,107.401 L36.239,107.541 L36.139,107.691 L36.039,107.831 L35.939,107.971 L35.839,108.111 L35.739,108.251 L35.649,108.401 L35.549,108.551 L35.449,108.691 L35.349,108.841 L35.259,108.991 L35.169,109.131 L35.079,109.281 L34.989,109.431 L34.899,109.581 L34.809,109.731 L34.709,109.881 L34.609,110.031 L34.519,110.181 L34.429,110.331 L34.339,110.481 L34.249,110.631 L34.159,110.781 L34.069,110.931 L33.979,111.081 L33.889,111.231 L33.799,111.381 L33.709,111.531 L33.619,111.691 L33.529,111.841 L33.439,111.991 L33.349,112.151 L33.269,112.301 L33.189,112.461 L33.109,112.621 L33.029,112.781 L32.949,112.931 L32.869,113.081 L32.789,113.241 L32.709,113.391 L32.629,113.551 L32.559,113.701 L32.479,113.861 L32.399,114.021 L32.319,114.181 L32.239,114.341 L32.159,114.501 L32.089,114.661 L32.019,114.821 L31.949,114.981 L31.879,115.141 L31.809,115.301 L31.739,115.461 L31.669,115.621 L31.599,115.781 L31.529,115.941 L31.469,116.101 L31.399,116.261 L31.329,116.431 L31.259,116.591 L31.189,116.751 L31.119,116.911 L31.059,117.071 L30.989,117.241 L30.919,117.401 L30.859,117.561 L30.799,117.731 L30.739,117.891 L30.679,118.061 L30.619,118.221 L30.559,118.391 L30.499,118.561 L30.439,118.731 L30.389,118.901 L30.329,119.061 L30.269,119.231 L30.219,119.401 L30.169,119.561 L30.119,119.731 L30.059,119.901 L30.009,120.061 L29.959,120.221 L29.909,120.391 L29.849,120.561 L29.799,120.731 L29.749,120.891 L29.699,121.061 L29.649,121.231 L29.599,121.401 L29.549,121.571 L29.499,121.741 L29.459,121.911 L29.419,122.081 L29.369,122.251 L29.329,122.421 L29.279,122.591 L29.239,122.761 L29.199,122.931 L29.159,123.111 L29.119,123.281 L29.079,123.451 L29.039,123.621 L28.999,123.791 L28.959,123.961 L28.919,124.131 L28.889,124.301 L28.849,124.471 L28.819,124.641 L28.789,124.821 L28.759,125.001 L28.729,125.181 L28.699,125.361 L28.669,125.531 L28.639,125.701 L28.609,125.881 L28.579,126.061 L28.549,126.231 L28.519,126.401 L28.489,126.571 L28.459,126.751 L28.439,126.931 L28.419,127.111 L28.399,127.281 L28.369,127.461 L28.339,127.631 L28.319,127.811 L28.299,127.991 L28.279,128.171 L28.259,128.351 L28.239,128.531 L28.219,128.711 L28.199,128.881 L28.179,129.061 L28.159,129.241 L28.149,129.421 L28.129,129.601 L28.109,129.781 L28.099,129.961 L28.089,130.141 L28.079,130.321 L28.069,130.501 L28.059,130.681 L28.049,130.861 L28.039,131.041 L28.029,131.221 L28.019,131.401 L28.009,131.581 L28.009,131.761 L27.999,131.941 L27.989,132.121 L27.989,132.301 L27.979,132.481 L27.979,259.281 L27.989,259.461 L27.989,260.001 L27.999,260.171 L28.009,260.351 L28.019,260.531 L28.029,260.711 L28.039,260.891 L28.049,261.071 L28.059,261.251 L28.069,261.431 L28.079,261.611 L28.099,261.791 L28.109,261.971 L28.119,262.151 L28.129,262.331 L28.149,262.501 L28.169,262.681 L28.189,262.851 L28.199,263.031 L28.219,263.201 L28.239,263.371 L28.259,263.541 L28.279,263.711 L28.299,263.891 L28.319,264.061 L28.339,264.231 L28.359,264.411 L28.379,264.591 L28.399,264.761 L28.419,264.941 L28.449,265.111 L28.479,265.281 L28.509,265.451 L28.539,265.621 L28.569,265.801 L28.599,265.971 L28.629,266.141 L28.659,266.311 L28.689,266.481 L28.729,266.651 L28.759,266.821 L28.789,266.991 L28.819,267.161 L28.859,267.331 L28.899,267.501 L28.929,267.671 L28.969,267.841 L29.009,268.011 L29.049,268.181 L29.089,268.351 L29.129,268.521 L29.169,268.691 L29.209,268.861 L29.249,269.021 L29.299,269.181 L29.339,269.351 L29.379,269.521 L29.419,269.691 L29.469,269.861 L29.509,270.021 L29.549,270.191 L29.589,270.351 L29.639,270.521 L29.679,270.681 L29.729,270.851 L29.779,271.021 L29.829,271.181 L29.879,271.351 L29.929,271.521 L29.979,271.681 L30.029,271.851 L30.089,272.011 L30.149,272.171 L30.209,272.331 L30.269,272.491 L30.319,272.651 L30.379,272.821 L30.439,272.981 L30.499,273.141 L30.559,273.301 L30.619,273.461 L30.679,273.621 L30.739,273.781 L30.799,273.941 L30.859,274.101 L30.919,274.261 L30.989,274.421 L31.059,274.581 L31.119,274.741 L31.179,274.901 L31.239,275.061 L31.299,275.221 L31.359,275.381 L31.429,275.541 L31.499,275.701 L31.569,275.861 L31.639,276.021 L31.709,276.181 L31.779,276.341 L31.849,276.501 L31.919,276.661 L31.989,276.821 L32.059,276.981 L32.129,277.141 L32.199,277.291 L32.279,277.451 L32.359,277.601 L32.439,277.761 L32.519,277.911 L32.599,278.061 L32.679,278.211 L32.759,278.361 L32.839,278.511 L32.919,278.661 L33.009,278.811 L33.089,278.961 L33.169,279.111 L33.249,279.261 L33.339,279.411 L33.429,279.561 L33.509,279.711 L33.589,279.861 L33.669,280.011 L33.759,280.161 L33.839,280.311 L33.929,280.451 L34.019,280.601 L34.109,280.741 L34.199,280.891 L34.289,281.041 L34.379,281.181 L34.469,281.321 L34.559,281.461 L34.649,281.601 L34.739,281.751 L34.829,281.901 L34.929,282.041 L35.019,282.181 L35.109,282.331 L35.199,282.471 L35.289,282.611 L35.389,282.751 L35.489,282.891 L35.589,283.041 L35.689,283.181 L35.789,283.321 L35.889,283.461 L35.989,283.601 L36.089,283.741 L36.189,283.881 L36.289,284.021 L36.399,284.161 L36.509,284.301 L36.609,284.441 L36.709,284.581 L36.809,284.721 L36.909,284.861 L37.019,284.991 L37.129,285.121 L37.239,285.261 L37.349,285.391 L37.459,285.531 L37.569,285.661 L37.679,285.791 L37.789,285.921 L37.899,286.051 L38.009,286.181 L38.119,286.311 L38.229,286.441 L38.339,286.571 L38.449,286.701 L38.559,286.831 L38.669,286.961 L38.789,287.091 L38.909,287.221 L39.019,287.351 L39.139,287.471 L39.259,287.601 L39.379,287.721 L39.499,287.851 L39.609,287.981 L39.729,288.111 L39.849,288.231 L39.969,288.351 L40.089,288.471 L40.209,288.591 L40.329,288.721 L40.449,288.841 L40.569,288.961 L40.689,289.081 L40.809,289.201 L40.929,289.321 L41.059,289.441 L41.179,289.561 L41.299,289.681 L41.429,289.801 L41.549,289.921 L41.669,290.041 L41.799,290.161 L41.929,290.271 L42.059,290.381 L42.189,290.501 L42.319,290.621 L42.449,290.731 L42.579,290.841 L42.709,290.961 L42.839,291.081 L42.969,291.191 L43.109,291.301 L43.249,291.411 L43.389,291.521 L43.519,291.631 L43.649,291.741 L43.789,291.851 L43.919,291.961 L44.059,292.061 L44.189,292.171 L44.329,292.281 L44.469,292.391 L44.609,292.501 L44.739,292.601 L44.879,292.711 L45.019,292.811 L45.159,292.921 L45.299,293.031 L45.439,293.131 L45.579,293.231 L45.729,293.331 L45.869,293.431 L46.009,293.531 L46.149,293.631 L46.289,293.731 L46.429,293.831 L46.569,293.931 L46.719,294.031 L46.869,294.121 L47.019,294.221 L47.159,294.321 L47.309,294.421 L47.459,294.521 L47.599,294.611 L47.749,294.701 L47.899,294.791 L48.049,294.881 L48.199,294.971 L48.349,295.061 L48.509,295.151 L48.659,295.241 L48.809,295.331 L48.979,295.431 L153.659,356.631 L153.789,356.711 L153.899,356.771 L154.019,356.831 L154.139,356.891 L154.259,356.951 L154.369,357.021 L154.489,357.081 L154.609,357.141 L154.729,357.201 L154.849,357.271 L154.969,357.331 L155.089,357.391 L155.209,357.451 L155.329,357.511 L155.449,357.571 L155.569,357.631 L155.689,357.691 L155.809,357.751 L155.919,357.811 L156.039,357.871 L156.159,357.931 L156.279,357.981 L156.399,358.041 L156.519,358.091 L156.639,358.141 L156.759,358.191 L156.879,358.251 L156.999,358.311 L157.119,358.361 L157.239,358.421 L157.359,358.471 L157.479,358.521 L157.599,358.571 L157.719,358.621 L157.839,358.671 L157.959,358.721 L158.079,358.771 L158.199,358.821 L158.319,358.871 L158.439,358.911 L158.569,358.961 L158.689,359.011 L158.809,359.061 L158.929,359.111 L159.049,359.161 L159.169,359.201 L159.289,359.251 L159.409,359.291 L159.529,359.331 L159.659,359.371 L159.779,359.411 L159.889,359.451 L160.149,359.531 L160.399,359.611 L160.649,359.681 L160.899,359.751 L161.149,359.821 L161.399,359.891 L161.649,359.961 L161.899,360.031 L162.149,360.101 L162.399,360.161 L162.649,360.221 L162.899,360.281 L163.149,360.331 L163.399,360.391 L163.649,360.441 L163.899,360.491 L164.149,360.541 L164.399,360.581 L164.649,360.631 L164.899,360.671 L165.149,360.711 L165.409,360.751 L165.659,360.791 L165.919,360.821 L166.179,360.851 L166.439,360.881 L166.699,360.901 L166.949,360.921 L167.209,360.941 L167.459,360.961 L167.719,360.981 L167.979,361.001 L168.229,361.021 L168.479,361.031 L168.729,361.041 L168.989,361.051 L170.269,361.051 L170.529,361.041 L170.789,361.041 L171.049,361.031 L171.309,361.021 L171.569,361.001 L171.829,360.981 L172.089,360.971 L172.349,360.951 L172.609,360.931 L172.869,360.911 L173.119,360.891 L173.379,360.861 L173.639,360.831 L173.889,360.801 L174.149,360.771 L174.399,360.731 L174.659,360.691 L174.909,360.651 L175.169,360.611 L175.419,360.571 L175.669,360.521 L175.919,360.481 L176.179,360.431 L176.429,360.381 L176.679,360.321 L176.929,360.271 L177.179,360.211 L177.429,360.151 L177.679,360.091 L177.929,360.031 L178.179,359.961 L178.429,359.891 L178.679,359.821 L178.929,359.751 L179.189,359.671 L179.309,359.631 L179.429,359.591 L179.549,359.551 L179.679,359.511 L179.799,359.471 L179.929,359.431 L180.049,359.391 L180.169,359.351 L180.299,359.311 L180.419,359.271 L180.539,359.231 L180.669,359.181 L180.789,359.141 L180.919,359.101 L181.039,359.051 L181.159,359.011 L181.279,358.971 L181.399,358.931 L181.529,358.881 L181.649,358.841 L181.769,358.791 L181.889,358.741 L182.009,358.691 L182.129,358.641 L182.249,358.591 L182.369,358.541 L182.489,358.491 L182.609,358.441 L182.729,358.391 L182.849,358.341 L182.969,358.281 L183.089,358.221 L183.209,358.171 L183.329,358.111 L183.449,358.051 L183.569,358.001 L183.689,357.941 L183.809,357.881 L183.929,357.821 L184.039,357.761 L184.159,357.701 L184.279,357.641 L184.399,357.581 L184.519,357.521 L184.639,357.461 L184.759,357.401 L184.879,357.341 L184.999,357.281 L185.109,357.221 L185.229,357.161 L185.349,357.101 L185.479,357.031 L301.449,292.401 L301.589,292.331 L301.719,292.261 L301.839,292.191 L301.959,292.121 L302.079,292.051 L302.199,291.971 L302.329,291.901 L302.449,291.831 L302.569,291.761 L302.689,291.691 L302.809,291.611 L302.929,291.531 L303.049,291.461 L303.169,291.391 L303.289,291.321 L303.409,291.241 L303.529,291.161 L303.649,291.091 L303.769,291.011 L303.889,290.941 L303.999,290.861 L304.109,290.781 L304.219,290.701 L304.329,290.621 L304.439,290.541 L304.559,290.461 L304.669,290.381 L304.789,290.301 L304.899,290.221 L305.009,290.141 L305.119,290.061 L305.229,289.981 L305.339,289.901 L305.459,289.821 L305.569,289.731 L305.679,289.651 L305.789,289.561 L305.899,289.481 L306.009,289.391 L306.119,289.301 L306.229,289.211 L306.339,289.131 L306.449,289.051 L306.559,288.961 L306.659,288.871 L306.769,288.781 L306.879,288.691 L306.979,288.611 L307.089,288.521 L307.199,288.421 L307.299,288.331 L307.409,288.241 L307.509,288.151 L307.609,288.061 L307.709,287.961 L307.819,287.871 L307.919,287.771 L308.019,287.681 L308.119,287.581 L308.219,287.481 L308.319,287.391 L308.419,287.291 L308.519,287.201 L308.619,287.101 L308.719,287.001 L308.819,286.901 L308.919,286.801 L309.009,286.701 L309.109,286.601 L309.199,286.501 L309.299,286.401 L309.399,286.301 L309.499,286.201 L309.589,286.101 L309.679,286.001 L309.769,285.901 L309.859,285.801 L309.959,285.701 L310.049,285.601 L310.139,285.501 L310.229,285.401 L310.319,285.301 L310.409,285.201 L310.499,285.101 L310.589,285.001 L310.679,284.891 L310.769,284.781 L310.859,284.671 L310.949,284.571 L311.039,284.471 L311.129,284.371 L311.219,284.261 L311.309,284.161 L311.399,284.051 L311.479,283.951 L311.559,283.841 L311.639,283.731 L311.719,283.631 L311.809,283.521 L311.889,283.411 L311.969,283.301 L312.049,283.191 L312.129,283.081 L312.209,282.971 L312.289,282.861 L312.369,282.751 L312.449,282.641 L312.529,282.531 L312.609,282.421 L312.689,282.311 L312.769,282.201 L312.839,282.091 L312.909,281.971 L312.989,281.851 L313.069,281.741 L313.139,281.631 L313.209,281.521 L313.289,281.401 L313.369,281.291 L313.439,281.181 L313.509,281.061 L313.579,280.941 L313.649,280.821 L313.719,280.701 L313.789,280.591 L313.859,280.471 L313.929,280.351 L313.999,280.241 L314.069,280.121 L314.139,280.001 L314.209,279.881 L314.269,279.761 L314.329,279.641 L314.399,279.521 L314.469,279.401 L314.529,279.281 L314.599,279.161 L314.669,279.041 L314.729,278.921 L314.789,278.801 L314.849,278.671 L314.909,278.551 L314.979,278.431 L315.049,278.311 L315.109,278.191 L315.169,278.071 L315.229,277.951 L315.289,277.821 L315.349,277.701 L315.409,277.581 L315.469,277.451 L315.529,277.331 L315.589,277.211 L315.649,277.081 L315.709,276.951 L315.769,276.821 L315.829,276.701 L315.879,276.581 L315.929,276.451 L315.979,276.321 L316.029,276.191 L316.079,276.071 L316.129,275.941 L316.179,275.811 L316.229,275.681 L316.279,275.561 L316.329,275.431 L316.379,275.301 L316.429,275.171 L316.479,275.041 L316.529,274.911 L316.569,274.781 L316.609,274.651 L316.649,274.521 L316.689,274.391 L316.739,274.261 L316.789,274.131 L316.839,274.001 L316.889,273.871 L316.929,273.741 L316.979,273.611 L317.019,273.481 L317.059,273.351 L317.109,273.221 L317.149,273.091 L317.189,272.961 L317.229,272.831 L317.269,272.701 L317.299,272.571 L317.339,272.441 L317.379,272.311 L317.419,272.181 L317.459,272.051 L317.489,271.921 L317.519,271.781 L317.559,271.651 L317.589,271.521 L317.619,271.381 L317.659,271.251 L317.689,271.121 L317.719,270.991 L317.749,270.861 L317.779,270.721 L317.809,270.591 L317.839,270.461 L317.859,270.321 L317.889,270.181 L317.919,270.051 L317.939,269.911 L317.969,269.781 L317.999,269.641 L318.029,269.501 L318.059,269.371 L318.089,269.231 L318.109,269.091 L318.139,268.951 L318.159,268.821 L318.189,268.691 L318.209,268.551 L318.229,268.411 L318.249,268.271 L318.269,268.131 L318.289,267.991 L318.309,267.851 L318.329,267.711 L318.339,267.571 L318.359,267.441 L318.369,267.301 L318.389,267.161 L318.409,267.031 L318.429,266.891 L318.439,266.751 L318.449,266.611 L318.459,266.471 L318.469,266.331 L318.489,266.191 L318.499,266.051 L318.509,265.911 L318.519,265.771 L318.529,265.631 L318.539,265.491 L318.549,265.351 L318.559,265.211 L318.569,265.071 L318.579,264.931 L318.589,264.791 L318.599,264.651 L318.599,264.371 L318.609,264.231 L318.609,125.8 L318.599,125.677 L318.589,125.547 L318.589,125.417 L318.579,125.287 L318.579,125.157 L318.569,125.027 L318.569,124.897 L318.559,124.767 L318.549,124.647 L318.539,124.517 L318.529,124.387 L318.519,124.257 L318.509,124.137 L318.499,124.007 L318.489,123.887 L318.479,123.757 L318.459,123.627 L318.449,123.507 L318.439,123.387 L318.419,123.267 L318.409,123.147 L318.389,123.017 L318.379,122.897 L318.359,122.777 L318.339,122.647 L318.329,122.517 L318.319,122.397 L318.299,122.287 L318.259,122.024 L318.229,121.769 L318.189,121.509 L318.149,121.259 L318.099,121.009 L318.049,120.759 L318.009,120.509 L317.959,120.259 L317.899,120.009 L317.839,119.759 L317.779,119.509 L317.719,119.259 L317.659,119.009 L317.599,118.759 L317.539,118.509 L317.469,118.259 L317.399,118.009 L317.329,117.759 L317.249,117.509 L317.179,117.269 L317.099,117.029 L317.019,116.789 L316.939,116.549 L316.859,116.309 L316.769,116.069 L316.679,115.829 L316.589,115.599 L316.499,115.359 L316.409,115.119 L316.319,114.879 L316.219,114.649 L316.129,114.409 L316.029,114.179 L315.929,113.949 L315.829,113.719 L315.719,113.489 L315.619,113.259 L315.509,113.029 L315.399,112.799 L315.289,112.579 L315.169,112.349 L315.059,112.119 L314.939,111.889 L314.819,111.669 L314.699,111.449 L314.579,111.229 L314.459,111.009 L314.339,110.789 L314.209,110.569 L314.079,110.349 L313.949,110.129 L313.809,109.909 L313.679,109.699 L313.549,109.489 L313.409,109.279 L313.269,109.069 L313.129,108.859 L312.989,108.649 L312.849,108.439 L312.709,108.229 L312.559,108.029 L312.409,107.829 L312.259,107.629 L312.109,107.429 L311.959,107.229 L311.799,107.029 L311.639,106.829 L311.479,106.629 L311.319,106.429 L311.159,106.239 L310.989,106.049 L310.829,105.859 L310.659,105.669 L310.489,105.479 L310.319,105.289 L310.149,105.099 L309.979,104.909 L309.799,104.729 L309.619,104.549 L309.439,104.369 L309.259,104.189 L309.079,104.009 L308.889,103.829 L308.699,103.649 L308.509,103.479 L308.319,103.309 L308.129,103.139 L307.939,102.969 L307.749,102.799 L307.549,102.629 L307.349,102.469 L307.149,102.309 L306.959,102.149 L306.749,101.979 L306.659,101.909 L306.559,101.829 L306.459,101.749 L306.359,101.669 L306.259,101.589 L306.159,101.519 L306.059,101.439 L305.959,101.359 L305.849,101.279 L305.739,101.199 L305.639,101.119 L305.539,101.039 L305.439,100.959 L305.339,100.889 L305.239,100.809 L305.129,100.729 L305.029,100.659 L304.929,100.589 L304.819,100.509 L304.709,100.439 L304.599,100.369 L304.499,100.299 L304.389,100.229 L304.279,100.159 L304.169,100.089 L304.059,100.019 L303.949,99.949 L303.839,99.879 L303.729,99.809 L303.619,99.739 L303.509,99.669 L303.399,99.609 L303.289,99.549 L303.159,99.479 L190,33.09 L189.84,32.992 L189.695,32.912 L189.545,32.822 L189.395,32.732 L189.248,32.649 L189.098,32.569 L188.953,32.489 L188.803,32.409 L188.653,32.329 L188.503,32.249 L188.356,32.169 L188.206,32.089 L188.056,32.009 L187.906,31.929 L187.756,31.849 L187.606,31.769 L187.456,31.689 L187.303,31.619 L187.153,31.539 L187.003,31.469 L186.853,31.399 L186.703,31.319 L186.548,31.249 L186.398,31.179 L186.248,31.109 L186.092,31.039 L185.942,30.969 L185.792,30.909 L185.637,30.839 L185.485,30.769 L185.335,30.699 L185.18,30.639 L185.03,30.579 L184.87,30.519 L184.716,30.449 L184.558,30.389 L184.398,30.319 L184.238,30.259 L184.083,30.199 L183.928,30.139 L183.771,30.079 L183.611,30.019 L183.451,29.959 L183.301,29.899 L183.151,29.849 L183.001,29.799 L182.841,29.739 L182.681,29.689 L182.531,29.639 L182.371,29.589 L182.211,29.539 L182.061,29.489 L181.901,29.439 L181.741,29.389 L181.581,29.339 L181.431,29.289 L181.271,29.239 L181.111,29.189 L180.951,29.139 L180.791,29.099 L180.631,29.049 L180.471,29.009 L180.311,28.959 L180.151,28.919 L179.991,28.879 L179.831,28.839 L179.671,28.789 L179.511,28.749 L179.351,28.709 L179.191,28.679 L179.031,28.639 L178.871,28.599 L178.711,28.559 L178.551,28.529 L178.391,28.489 L178.231,28.459 L178.071,28.429 L177.911,28.389 L177.751,28.359 L177.591,28.329 L177.431,28.299 L177.271,28.269 L177.111,28.239 L176.951,28.209 L176.781,28.179 L176.621,28.159 L176.461,28.139 L176.301,28.119 L176.141,28.099 L175.981,28.069 L175.821,28.039 L175.661,28.019 L175.491,27.989 L175.331,27.969 L175.171,27.939 L175.011,27.919 L174.851,27.899 L174.691,27.879 L174.531,27.859 L174.371,27.839 L174.201,27.819 L174.041,27.809 L173.881,27.789 L173.721,27.769 L173.561,27.759 L173.401,27.749 L173.241,27.739 L173.081,27.729 L172.921,27.719 L172.751,27.709 L172.581,27.699 L172.421,27.689 L172.261,27.679 L172.101,27.679 L171.941,27.669 L171.781,27.659 L171.611,27.659 L171.451,27.649 L171.291,27.639 L171.141,27.629 L170.981,27.619 L170.651,27.619 L170.491,27.609 L170.171,27.609 L170.01,27.676 Z" id="Shape" fill="#C9177E"></path>
+            <polygon id="Path" fill="#FFFFFF" fill-rule="nonzero" points="93.91 296.916 93.91 89.696 137.264 89.696 137.264 165.176 209.18 165.176 209.18 89.696 252.66 89.696 252.66 296.916 209.18 296.916 209.18 206.31 137.264 206.31 137.264 296.916"></polygon>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/ibm.svg b/go.dev/testdata/golden/images/logos/ibm.svg
new file mode 100644
index 0000000..ad0cb64
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/ibm.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="400"><clipPath id="b"><path d="M0-1v83h55.937v236H1.523v82h194.65v-82h-55.938V82h54.414V-1zm554.02 1v82h55.938v236h-54.414v82h138.71V171.84l82.656 228.08 1.68.04 81.172-228.12V400h140.23v-82h-55.938V82h54.415V0h-156.33l-64.726 182.89L711.866 0z"/><path id="a" d="M222.23 0v82h55.937v130h215.31v-24.928s18.011-14.042 23.75-27.367l11.523-25.855s5.352-14.472 5.352-27.405l-2.305-25.855s-3.616-21.063-9.922-27.328l-22.266-25.895S471.276 0 433.75 0zm140.23 82h81.992v76H362.46z"/><use transform="matrix(1 0 0 -1 0 400)" xlink:href="#a"/></clipPath><path fill="none" stroke="#1f70c1" stroke-width="27.37" d="M0 13.683h1030v53.232H0m0 53.232h975v53.242H0v53.222h975v53.222H0m0 53.242h1030v53.242H0" clip-path="url(#b)"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/kubernetes.svg b/go.dev/testdata/golden/images/logos/kubernetes.svg
new file mode 100644
index 0000000..7d21699
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/kubernetes.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 67 65" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g fill-rule="nonzero"><path d="M31.8.004a4.28 4.28 0 0 0-1.646.436l-22.3 10.612a4.22 4.22 0 0 0-2.3 2.864L.11 37.798a4.12 4.12 0 0 0 .6 3.254q.114.174.24.336l15.4 19.148a4.26 4.26 0 0 0 3.324 1.568h24.7c1.292.002 2.516-.6 3.328-1.586l15.392-19.152c.808-1 1.1-2.32.8-3.572L58.4 13.912c-.3-1.256-1.14-2.3-2.3-2.864L33.847.442a4.28 4.28 0 0 0-2.066-.438z" stroke="none" fill="#326ce5"></path><path d="M32.006 8.135a1.41 1.41 0 0 0-1.31 1.48v.376c.037.425.1.848.184 1.266.123.8.167 1.61.132 2.42a1.46 1.46 0 0 1-.436.69l-.03.564a17.44 17.44 0 0 0-2.406.372 17.13 17.13 0 0 0-8.708 4.97l-.48-.34c-.264.08-.548.05-.8-.08a12.44 12.44 0 0 1-1.794-1.62c-.273-.326-.565-.637-.874-.93l-.296-.236a1.6 1.6 0 0 0-.926-.35 1.28 1.28 0 0 0-1.062.472 1.41 1.41 0 0 0 .328 1.966l.276.2c.355.236.724.452 1.104.646.713.394 1.382.864 1.996 1.4a1.48 1.48 0 0 1 .266.768l.436.4A17.24 17.24 0 0 0 14.9 34.581l-.56.16a1.83 1.83 0 0 1-.572.576c-.78.21-1.58.34-2.388.394-.428.01-.856.042-1.28.1l-.354.08h-.04a1.34 1.34 0 0 0-.774 2.264 1.34 1.34 0 0 0 1.368.33h.026l.36-.04a10.69 10.69 0 0 0 1.196-.436c.75-.3 1.528-.53 2.324-.68a1.46 1.46 0 0 1 .764.27l.6-.1c1.3 4.034 4.032 7.452 7.68 9.606l-.244.5c.112.234.154.494.12.752-.33.764-.734 1.496-1.206 2.184a11.16 11.16 0 0 0-.716 1.066l-.17.36a1.34 1.34 0 0 0 1.3 2.002 1.34 1.34 0 0 0 1.106-.864l.166-.34c.152-.4.28-.808.384-1.2.354-.874.546-1.812 1.03-2.392a1.08 1.08 0 0 1 .572-.28l.3-.546a17.24 17.24 0 0 0 12.292.03l.266.5a1.04 1.04 0 0 1 .68.41 12.59 12.59 0 0 1 .912 2.24c.106.415.235.822.388 1.222l.166.34a1.34 1.34 0 0 0 2.374.262 1.34 1.34 0 0 0 .032-1.402l-.174-.36c-.218-.367-.457-.722-.716-1.062a14.17 14.17 0 0 1-1.2-2.114 1.04 1.04 0 0 1 .136-.8c-.085-.174-.16-.354-.222-.538a17.35 17.35 0 0 0 7.646-9.64l.568.1a1.06 1.06 0 0 1 .746-.276 14.54 14.54 0 0 1 2.324.68c.4.2.8.332 1.196.46.096.026.236.048.344.074h.026a1.34 1.34 0 0 0 1.682-1.702 1.34 1.34 0 0 0-1.088-.892l-.388-.092c-.424-.058-.852-.09-1.28-.1a12.2 12.2 0 0 1-2.388-.394 1.5 1.5 0 0 1-.576-.576l-.54-.16a17.3 17.3 0 0 0-2.772-11.986l.472-.436c-.02-.274.07-.546.248-.756a12.57 12.57 0 0 1 1.98-1.392 11.13 11.13 0 0 0 1.104-.646l.292-.236a1.34 1.34 0 0 0-.265-2.404 1.34 1.34 0 0 0-1.393.322l-.296.236a11.15 11.15 0 0 0-.874.93c-.528.604-1.112 1.154-1.746 1.646a1.48 1.48 0 0 1-.808.088l-.506.36c-2.92-3.06-6.854-4.96-11.07-5.34 0-.2-.026-.5-.03-.594a1.05 1.05 0 0 1-.436-.664c-.028-.808.023-1.616.152-2.414.086-.4.146-.84.184-1.266v-.4a1.41 1.41 0 0 0-1.31-1.48zm-1.668 10.332l-.4 6.986h-.03c-.02.432-.274.8-.664 1.008s-.852.146-1.2-.108l-5.73-4.06a13.72 13.72 0 0 1 6.606-3.598c.468-.1.94-.176 1.414-.228zm3.336 0c3 .374 5.812 1.726 8 3.848l-5.676 4.034a1.18 1.18 0 0 1-1.908-.904zm-13.44 6.454l5.24 4.676v.03a1.18 1.18 0 0 1-.462 2.018v.02L18.288 33.6a13.72 13.72 0 0 1 1.948-8.68zm23.506 0a13.96 13.96 0 0 1 2.004 8.654L39 31.635v-.026a1.16 1.16 0 0 1-.834-.87 1.18 1.18 0 0 1 .372-1.148l5.2-4.654zm-12.808 5.04h2.144l1.3 1.664-.476 2.08-1.926.926-1.93-.926-.454-2.08zm6.868 5.676c.1-.01.2-.01.27 0l6.934 1.17c-1 2.88-2.974 5.34-5.55 6.986l-2.68-6.488a1.18 1.18 0 0 1 1.018-1.638zm-11.646.03a1.18 1.18 0 0 1 .968.536 1.17 1.17 0 0 1 .094 1.1v.026l-2.664 6.436a13.76 13.76 0 0 1-5.516-6.914l6.874-1.166c.077-.008.155-.008.232 0zm5.808 2.8a1.18 1.18 0 0 1 1.074.616h.026l3.388 6.114-1.354.4a13.79 13.79 0 0 1-7.516-.388l3.4-6.114a1.18 1.18 0 0 1 1-.59z" stroke="#fff" stroke-width=".11"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/lets-encrypt-icon.svg b/go.dev/testdata/golden/images/logos/lets-encrypt-icon.svg
new file mode 100644
index 0000000..6fc1ff9
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/lets-encrypt-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 63 66" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M43.606 34.42h-7.66v-3.95a5.76 5.76 0 0 0-5.72-5.72c-3.12 0-5.72 2.6-5.72 5.72v3.95h-7.64v-3.95c0-7.416 6.046-13.4 13.4-13.4 7.416 0 13.4 6.046 13.4 13.4z" fill="#ffa400"></path><path d="M46.77 34.4H13.722a2.54 2.54 0 0 0-2.58 2.58v24.4a2.54 2.54 0 0 0 2.58 2.6H46.77a2.54 2.54 0 0 0 2.58-2.58V37c-.08-1.45-1.2-2.6-2.6-2.6zM31.858 50.44v3.304c0 .886-.726 1.692-1.692 1.692-.886 0-1.692-.726-1.692-1.692V50.46c-1.048-.564-1.692-1.692-1.692-3a3.41 3.41 0 0 1 3.386-3.386 3.41 3.41 0 0 1 3.386 3.386c.08 1.3-.644 2.4-1.692 3z" fill="#003a70"></path><path d="M10.338 30.8h-8A2.34 2.34 0 0 1 0 28.452a2.34 2.34 0 0 1 2.338-2.338h8a2.34 2.34 0 0 1 2.338 2.338 2.34 2.34 0 0 1-2.338 2.338zm5.64-12.574a2.06 2.06 0 0 1-1.45-.564l-6.288-5.16c-.968-.806-1.128-2.256-.32-3.304.806-.968 2.256-1.128 3.304-.32l6.288 5.16c.968.806 1.128 2.256.32 3.304-.564.564-1.2.886-1.854.886zm14.268-5.48a2.34 2.34 0 0 1-2.338-2.338V2.34A2.34 2.34 0 0 1 30.246 0a2.34 2.34 0 0 1 2.338 2.338V10.4a2.34 2.34 0 0 1-2.338 2.338zm14.186 5.48c-.644 0-1.37-.32-1.774-.886-.806-.968-.644-2.5.32-3.304l6.288-5.16c.968-.806 2.5-.644 3.304.32s.644 2.5-.32 3.304l-6.288 5.16a2.26 2.26 0 0 1-1.532.564zm13.6 12.574h-8.06a2.34 2.34 0 0 1-2.338-2.338 2.34 2.34 0 0 1 2.338-2.338h8.06a2.34 2.34 0 0 1 2.338 2.338 2.34 2.34 0 0 1-2.338 2.338z" fill="#ffa400"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/lets-encrypt.svg b/go.dev/testdata/golden/images/logos/lets-encrypt.svg
new file mode 100644
index 0000000..c54550e
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/lets-encrypt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 83 52" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M47.52 17.24h-3.836v-1.98a2.88 2.88 0 0 0-2.867-2.867 2.88 2.88 0 0 0-2.867 2.867v1.98h-3.836v-1.98c0-3.715 3.028-6.703 6.703-6.703 3.715 0 6.703 3.028 6.703 6.703z" fill="#ffa400"></path><path d="M49.095 17.24H32.54c-.727 0-1.292.565-1.292 1.292v12.234c0 .727.565 1.292 1.292 1.292h16.555c.727 0 1.292-.565 1.292-1.292V18.533c-.04-.727-.606-1.292-1.292-1.292zm-7.47 8.035v1.656c0 .444-.363.848-.848.848-.444 0-.848-.363-.848-.848v-1.655c-.525-.283-.848-.848-.848-1.494 0-.93.767-1.696 1.696-1.696s1.696.767 1.696 1.696c.04.646-.323 1.2-.848 1.494z" fill="#003a70"></path><path d="M30.844 15.424h-3.997a1.17 1.17 0 1 1 0-2.342h3.997a1.17 1.17 0 1 1 0 2.342zm2.826-6.3c-.242 0-.525-.08-.727-.283l-3.15-2.584c-.485-.404-.565-1.13-.162-1.656.404-.485 1.13-.565 1.656-.162l3.15 2.584c.485.404.565 1.13.162 1.656-.283.283-.606.444-.93.444zm7.147-2.745a1.17 1.17 0 0 1-1.171-1.171V1.17a1.17 1.17 0 1 1 2.342 0v4.046a1.17 1.17 0 0 1-1.171 1.171zm7.107 2.746a1.13 1.13 0 0 1-.888-.444c-.404-.485-.323-1.252.162-1.656l3.15-2.584c.485-.404 1.252-.323 1.656.162s.323 1.252-.162 1.656l-3.15 2.584a1.13 1.13 0 0 1-.767.283zm6.823 6.3H50.71a1.17 1.17 0 1 1 0-2.342h4.038a1.17 1.17 0 1 1 0 2.342z" fill="#ffa400"></path><path d="M31.713 46.777v-9.884h6.64v2.02h-4.346v1.867h4.1v1.897h-4.1v2.05h4.6v2.05zm12.913 0v-3.794c0-.184-.03-.367-.06-.55a1.66 1.66 0 0 0-.153-.46c-.07-.13-.176-.237-.306-.306-.122-.092-.306-.122-.52-.122s-.398.03-.55.122a1.4 1.4 0 0 0-.398.337c-.092.153-.184.306-.245.5s-.092.367-.092.55v3.764h-2.295v-6.946H42.2v.95h.03c.092-.153.184-.306.337-.428.122-.153.306-.275.46-.367.184-.092.367-.184.58-.245s.428-.092.673-.092a2.86 2.86 0 0 1 1.193.245c.337.153.58.398.796.643.214.275.337.58.428.918s.122.673.122 1.04v4.284h-2.202zm8.2-4.712c-.122-.153-.306-.306-.52-.398a1.79 1.79 0 0 0-.673-.153c-.223 0-.443.052-.643.153-.184.092-.367.214-.5.398s-.245.337-.337.55-.122.428-.122.673.03.46.122.673a1.28 1.28 0 0 0 .337.551c.153.153.306.306.52.398s.428.153.673.153a1.89 1.89 0 0 0 .704-.122c.214-.092.398-.214.55-.398l1.255 1.56c-.275.275-.673.5-1.102.643a4.59 4.59 0 0 1-1.438.245 4.86 4.86 0 0 1-1.53-.245 3.24 3.24 0 0 1-1.255-.734c-.337-.306-.612-.704-.826-1.163s-.306-.98-.306-1.56.092-1.07.306-1.53.5-.857.826-1.163a3.33 3.33 0 0 1 1.255-.734c.5-.184.98-.245 1.53-.245.245 0 .5.03.734.06l.704.184.643.306c.184.122.367.245.5.398zm6.67-.337c-.092-.03-.214-.06-.306-.06h-.275a1.89 1.89 0 0 0-.765.153 1.83 1.83 0 0 0-.5.398 1.7 1.7 0 0 0-.275.52c-.06.184-.092.337-.092.5v3.55h-2.295v-6.946h2.203v1h.03c.184-.367.428-.643.765-.857a2.05 2.05 0 0 1 1.132-.337h.275c.092 0 .153.03.214.03zm5.386 6.1l-.46.98a3.55 3.55 0 0 1-.612.734c-.245.214-.52.337-.826.46-.306.092-.704.153-1.132.153-.214 0-.428 0-.673-.03-.214-.03-.428-.06-.58-.122l.245-1.928.367.092a1.49 1.49 0 0 0 .367.031c.367 0 .612-.092.765-.245s.306-.398.398-.704l.214-.58-2.907-6.824h2.54l1.56 4.468h.03l1.377-4.468h2.417zm11.445-4.53c0 .5-.06.95-.214 1.408s-.367.826-.643 1.193c-.275.337-.643.612-1.04.826s-.887.306-1.408.306a3.36 3.36 0 0 1-1.224-.245c-.367-.184-.673-.398-.887-.704h-.03v4.13h-2.284V39.92h2.173v.857h.03c.214-.275.52-.52.887-.734s.826-.306 1.346-.306c.5 0 .95.092 1.377.306.398.184.765.46 1.04.796a3.91 3.91 0 0 1 .643 1.163c.153.337.245.796.245 1.285zm-2.234 0a2.33 2.33 0 0 0-.092-.643c-.06-.214-.184-.398-.306-.55s-.306-.306-.52-.398a1.7 1.7 0 0 0-1.408 0c-.214.092-.367.245-.52.398s-.245.367-.337.58a1.59 1.59 0 0 0-.122.643c0 .215.03.428.122.643s.184.398.337.58c.153.153.306.306.52.398a1.7 1.7 0 0 0 .704.153c.275 0 .52-.06.704-.153.214-.092.367-.245.52-.398.122-.153.245-.367.306-.58.06-.22.1-.446.092-.673zm5.875-1.744v2.662c0 .337.06.58.184.734s.337.245.673.245c.122 0 .245 0 .367-.03l.306-.092.03 1.683c-.153.06-.367.092-.612.153l-.734.06c-.46 0-.857-.06-1.163-.184s-.58-.275-.765-.5a1.78 1.78 0 0 1-.398-.796c-.06-.306-.122-.643-.122-1V41.54h-1.102v-1.714h1.102V37.99h2.234v1.836H81.6v1.714zM0 46.44v-9.884h2.387v7.803h3.825v2.08zm14.107-3.397v.55h-5.05c.03.184.092.367.184.52a1.15 1.15 0 0 0 .367.398 1.7 1.7 0 0 0 .52.275 1.92 1.92 0 0 0 .581.092c.367 0 .673-.06.918-.214a1.69 1.69 0 0 0 .612-.52l1.6 1c-.337.5-.765.826-1.285 1.102-.52.245-1.163.398-1.867.398a4.62 4.62 0 0 1-1.469-.245c-.46-.153-.857-.398-1.224-.704-.337-.306-.612-.704-.826-1.163s-.306-.98-.306-1.56.092-1.07.306-1.53a3.15 3.15 0 0 1 .796-1.163c.337-.306.734-.58 1.193-.734a3.92 3.92 0 0 1 1.47-.275c.52 0 .98.092 1.408.245.428.184.796.428 1.102.734a3.35 3.35 0 0 1 .704 1.193c.184.5.275 1 .275 1.6zm-2.1-.857c0-.367-.122-.673-.337-.95s-.58-.398-1.04-.398c-.214 0-.428.03-.612.092s-.337.153-.5.275-.245.275-.337.428-.122.337-.153.52h2.98zm5.783-.98v2.662c0 .337.06.58.184.734s.337.245.673.245c.122 0 .245 0 .367-.03l.306-.092.03 1.683c-.153.06-.367.092-.612.153l-.734.06c-.46 0-.857-.06-1.163-.184s-.58-.275-.765-.5a1.78 1.78 0 0 1-.398-.796c-.06-.306-.122-.643-.122-1v-2.934h-1.132v-1.714h1.102v-1.836h2.264v1.836h1.622v1.714zm9.027.337a2.45 2.45 0 0 0-.643-.459 1.79 1.79 0 0 0-.796-.184 1.23 1.23 0 0 0-.58.122c-.182.092-.275.214-.275.428 0 .184.092.337.306.428s.52.184.98.275c.275.06.52.122.796.245s.5.245.704.398c.22.16.4.37.52.612s.184.52.184.857c0 .428-.092.796-.275 1.102s-.398.55-.704.734c-.275.184-.612.306-.95.398a4.25 4.25 0 0 1-1.07.122 4.93 4.93 0 0 1-1.652-.275 3.51 3.51 0 0 1-1.346-.796l1.285-1.346c.214.214.46.398.765.55a2.05 2.05 0 0 0 .949.214 1.2 1.2 0 0 0 .551-.122c.184-.092.275-.245.275-.46s-.122-.367-.337-.5a5.54 5.54 0 0 0-1.04-.306l-.734-.214a2.2 2.2 0 0 1-.643-.367c-.184-.153-.337-.367-.46-.58-.122-.245-.184-.52-.184-.826 0-.428.092-.765.275-1.07a2.12 2.12 0 0 1 .673-.704c.275-.184.58-.337.918-.398a3.77 3.77 0 0 1 1-.122c.52 0 1.04.092 1.53.245s.918.398 1.255.734zm-5.294-5.17c-.673 0-1.224.5-1.224 1.132 0 .673.46 1.102 1.132 1.102.06 0 .122 0 .153-.03-.122.5-.58.857-1.04.918h-.092v1.07h.122a2.61 2.61 0 0 0 1.469-.673c.52-.5.796-1.224.796-2.08 0-.826-.55-1.438-1.316-1.438z" fill="#003a70"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/mattermost.png b/go.dev/testdata/golden/images/logos/mattermost.png
new file mode 100644
index 0000000..3a8116c
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/mattermost.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/medium.svg b/go.dev/testdata/golden/images/logos/medium.svg
new file mode 100644
index 0000000..76f49a3
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/medium.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 66 54" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><path d="M59.158 47.432L64 52.107v.155H39.44v-.155l4.93-4.675c.526-.433.778-1.12.657-1.795V15.752c0-1.263 0-2.97.22-4.43L28.68 52.86h-.197L11.328 14.644l-.723-1.662V38.03a8.79 8.79 0 0 0 .811 4.896l6.902 9.172v.155H0v-.155l6.902-9.194c.73-1.512 1-3.204.8-4.874V10.346c.112-1.364-.295-2.72-1.14-3.788L1.687.155V0h17.528l14.68 32.368L46.822 0h17.156v.155l-4.82 5.428c-.578.427-.866 1.148-.745 1.86v38.194a1.78 1.78 0 0 0 .745 1.795z" stroke="none" fill="#1c1b1a" fill-rule="nonzero"></path></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/mercado-libre.png b/go.dev/testdata/golden/images/logos/mercado-libre.png
new file mode 100644
index 0000000..93657b3
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/mercado-libre.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/mercadoLibre.svg b/go.dev/testdata/golden/images/logos/mercadoLibre.svg
new file mode 100644
index 0000000..24964f4
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/mercadoLibre.svg
@@ -0,0 +1,95 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="55.2px" height="48.5px" viewBox="0 0 55.2 48.5" style="enable-background:new 0 0 55.2 48.5;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#2D3277;}
+	.st1{fill:#FFE600;}
+	.st2{fill:#FFFFFF;}
+</style>
+<title>mercadoLibre</title>
+<path class="st0" d="M15,38.1h0.5V48h-1.9v-8.7C13.8,38.7,14.4,38.2,15,38.1z"/>
+<path class="st0" d="M25.3,40.3c-0.9,0-1.7,0.4-2.1,1.2v-3.4h-0.2c-0.7,0-1.3,0.3-1.7,0.9v5.6c0,2.2,1.2,3.4,3.5,3.4
+	s3.5-1.3,3.5-3.8S27.3,40.4,25.3,40.3z M24.7,46.4c-1.1,0-1.6-0.8-1.6-2.3s0.6-2.2,1.6-2.2s1.5,0.7,1.6,2.2S25.8,46.4,24.7,46.4z"/>
+<path class="st0" d="M29.4,44.1c0.1-2.4,1.2-3.7,3.7-3.7h0.6v1.9h-0.9c-1.1,0-1.5,0.7-1.5,1.8V48h-1.9V44.1z"/>
+<path class="st0" d="M36.6,46.1c0.4,0.3,0.8,0.5,1.3,0.4c0.4,0,0.7-0.1,1-0.3c0.2-0.2,0.4-0.4,0.5-0.6h1.8c-0.2,0.8-0.7,1.4-1.3,1.9
+	c-0.6,0.4-1.4,0.6-2.1,0.6c-0.5,0-1.1-0.1-1.6-0.3c-0.4-0.2-0.8-0.4-1.1-0.8c-0.3-0.4-0.6-0.8-0.7-1.2c-0.3-1-0.3-2.1,0-3.1
+	c0.2-0.4,0.4-0.9,0.7-1.2c0.7-0.7,1.7-1.1,2.7-1.1c0.6,0,1.1,0.1,1.6,0.4c0.4,0.2,0.8,0.6,1.1,1c0.3,0.4,0.5,0.9,0.6,1.4
+	c0.1,0.5,0.2,1.1,0.2,1.6h-5.3C36.1,45.2,36.3,45.7,36.6,46.1z M38.9,42.2c-0.3-0.3-0.7-0.4-1.1-0.4c-0.3,0-0.6,0.1-0.8,0.2
+	c-0.2,0.1-0.4,0.2-0.5,0.4c-0.1,0.1-0.2,0.3-0.3,0.5c0,0.2-0.1,0.3-0.1,0.5h3.3C39.4,43,39.2,42.6,38.9,42.2z"/>
+<rect x="17.5" y="38.1" class="st0" width="1.9" height="1.7"/>
+<rect x="17.5" y="40.7" class="st0" width="1.9" height="7.3"/>
+<path id="path96" class="st0" d="M51.7,34.2c-0.6,0.7-1.7,0.8-2.4,0.1l-0.1-0.1c-0.3-0.5-0.5-1.1-0.4-1.7c0-0.6,0.1-1.1,0.4-1.6
+	c0.6-0.7,1.7-0.8,2.4-0.1c0,0,0,0,0,0l0.1,0.1c0.3,0.5,0.5,1.1,0.4,1.6C52.2,33.1,52,33.7,51.7,34.2z M53.2,29.8
+	c-0.7-0.8-1.7-1.2-2.8-1.2c-1.1-0.1-2.1,0.3-2.8,1.2c-0.6,0.8-0.9,1.7-0.9,2.7c0,1,0.3,1.9,0.9,2.7c0.7,0.8,1.7,1.2,2.8,1.1
+	c1,0.1,2.1-0.3,2.8-1.1c0.6-0.8,0.9-1.7,0.9-2.7C54.2,31.5,53.8,30.6,53.2,29.8"/>
+<path id="path108" class="st0" d="M44,34.2c-0.3,0.4-0.7,0.6-1.2,0.6c-0.5,0-0.9-0.2-1.2-0.6c-0.3-0.5-0.4-1.1-0.4-1.7
+	c0-0.5,0.1-1.1,0.4-1.5c0.2-0.4,0.7-0.7,1.2-0.6c0.4,0,0.7,0.1,1,0.3c0.5,0.5,0.7,1.3,0.7,2C44.5,33.2,44.3,33.7,44,34.2z
+	 M46.2,26.5c0,0-1.9-0.2-1.9,1.3v2c-0.2-0.3-0.5-0.6-0.8-0.8c-0.4-0.2-0.8-0.3-1.2-0.2c-0.9,0-1.7,0.4-2.3,1.1
+	c-0.6,0.9-0.9,1.9-0.8,3c-0.1,0.9,0.2,1.9,0.8,2.6c0.7,0.7,1.7,1,2.7,1c3.5,0,3.4-3,3.4-3L46.2,26.5"/>
+<path id="path98" class="st0" d="M36.8,33.3c0,0.5-0.2,1-0.5,1.3c-0.3,0.2-0.7,0.3-1.1,0.3c-0.4,0-0.8-0.3-0.9-0.7
+	c0-0.1,0-0.1,0-0.2c0-0.3,0.1-0.6,0.4-0.8c0.3-0.1,0.6-0.2,0.8-0.2l0.4-0.1c0.2-0.1,0.4-0.1,0.5-0.1l0.3-0.1L36.8,33.3L36.8,33.3z
+	 M37.8,29.2c-0.7-0.3-1.4-0.5-2.1-0.5c-1-0.1-1.9,0.3-2.6,1c-0.3,0.5-0.5,1-0.5,1.5h1.8c0-0.2,0.1-0.4,0.2-0.6
+	c0.3-0.2,0.6-0.4,1-0.3c0.3,0,0.6,0,0.9,0.1c0.2,0.1,0.3,0.4,0.3,0.6c0,0.3-0.2,0.5-0.4,0.5c-0.2,0.1-0.5,0.1-0.8,0.1H35
+	c-0.6,0.1-1.1,0.2-1.7,0.5c-1.1,0.7-1.3,2.1-0.7,3.2c0,0,0,0,0,0c0.1,0.1,0.2,0.2,0.3,0.3c0.5,0.4,1,0.6,1.6,0.6
+	c4.1,0.1,4.1-2.2,4.1-2.7v-2.7C38.8,30.2,38.4,29.6,37.8,29.2"/>
+<path id="path100" class="st0" d="M28.4,30.3c0.4,0,0.8,0.1,1.1,0.4c0.2,0.2,0.2,0.5,0.2,0.8h2c0-0.8-0.4-1.6-1.1-2.1
+	c-0.7-0.4-1.5-0.6-2.2-0.6c-1-0.1-2,0.3-2.7,1c-0.7,0.8-1,1.8-1,2.9c-0.1,1,0.2,1.9,0.8,2.6c1.6,1.4,4,1.4,5.4-0.2
+	c0.3-0.5,0.6-1.1,0.6-1.7h-2c0,0.3-0.1,0.7-0.3,0.9c-0.3,0.2-0.6,0.4-1,0.3c-0.6,0-1.1-0.3-1.3-0.9c-0.1-0.4-0.2-0.8-0.2-1.3
+	c0-0.5,0-0.9,0.2-1.3C27.2,30.7,27.8,30.3,28.4,30.3"/>
+<path id="path102" class="st0" d="M24.2,28.7c-4.2,0-3.9,3.7-3.9,3.7v3.8h1.9v-3.5c0-0.4,0-0.9,0.2-1.3c0.3-0.5,0.9-0.8,1.5-0.8h0.2
+	c0.1,0,0.2,0,0.3,0v-1.9L24.2,28.7C24.3,28.7,24.3,28.7,24.2,28.7"/>
+<path id="path104" class="st0" d="M14.7,30.7c0.3-0.3,0.7-0.4,1.1-0.4c0.4,0,0.8,0.1,1.1,0.4c0.3,0.3,0.5,0.7,0.5,1.1h-3.3
+	C14.3,31.3,14.4,31,14.7,30.7z M17.3,34.2c0,0.1-0.1,0.2-0.2,0.2c-0.3,0.2-0.7,0.3-1.1,0.2c-0.4,0-0.7-0.1-1-0.2
+	c-0.5-0.3-0.8-0.9-0.8-1.5h5.2v-1.4c-0.1-0.5-0.3-1-0.6-1.5c-0.3-0.5-0.7-0.8-1.2-1.1c-0.5-0.2-1.1-0.3-1.7-0.3
+	c-1-0.1-1.9,0.3-2.5,1c-0.7,0.8-1.1,1.8-1,2.9c-0.1,1.1,0.3,2.1,1.1,2.9c0.7,0.6,1.6,0.9,2.5,0.9c1,0.1,2-0.3,2.7-1.1
+	c0.3-0.3,0.5-0.7,0.7-1.1L17.3,34.2"/>
+<path id="path106" class="st0" d="M11.5,36.2H9.8v-4.4c0.1-0.6-0.4-1.2-1-1.3H8.5c-0.7,0-1.3,0.5-1.3,1.2c0,0,0,0,0,0v4.4H5.4v-4.4
+	c0.1-0.6-0.4-1.2-1-1.3H4.1c-0.7,0-1.3,0.5-1.3,1.2c0,0,0,0,0,0v4.5H1.1v-4.3c-0.1-1.7,1.2-3.1,2.8-3.2h0.2c0.8,0,1.7,0.3,2.2,1
+	c0.5-0.6,1.3-1,2.2-1c1.6-0.1,2.9,1.2,3,2.8c0,0.1,0,0.3,0,0.4L11.5,36.2"/>
+<path class="st0" d="M44.5,11c0-6-7.5-11-16.8-11S10.9,5,10.9,11v0.6c0,6.4,6.5,11.6,16.8,11.6s16.9-5.2,16.9-11.6V11z"/>
+<path class="st1" d="M43.9,11c0,5.7-7.2,10.3-16.2,10.3S11.6,16.7,11.6,11S18.8,0.7,27.8,0.7S43.9,5.3,43.9,11z"/>
+<path class="st2" d="M22.4,7.7c0,0-0.2,0.2-0.1,0.3c0.5,0.4,1.2,0.5,1.8,0.3c0.6-0.2,1.2-0.6,1.7-1.1c0.6-0.5,1.2-0.9,1.9-1.2
+	c0.4-0.1,0.9-0.1,1.4,0c0.5,0.2,0.9,0.4,1.3,0.7c1.1,0.8,5.6,4.7,6.3,5.4c2.3-1,4.7-1.8,7.1-2.3c-0.4-2.1-1.6-4-3.3-5.3
+	c-2.8,1.3-6,1.4-8.8,0.1c-1-0.5-2.2-0.7-3.3-0.7c-1.8,0-3.5,0.8-4.6,2.2L22.4,7.7z"/>
+<path class="st2" d="M36.5,12.6c0,0-5.2-4.6-6.4-5.4c-0.4-0.4-0.9-0.6-1.4-0.7c-0.2,0-0.5,0-0.7,0.1c-0.7,0.3-1.3,0.6-1.9,1.1
+	c-0.5,0.5-1.2,0.9-1.8,1.1c-0.7,0.2-1.4,0-2-0.3c-0.2-0.1-0.3-0.2-0.4-0.4c-0.1-0.2,0-0.5,0.2-0.7l1.4-1.5L24,5.4
+	c-0.5,0.1-0.9,0.2-1.3,0.3c-0.5,0.1-1,0.2-1.5,0.2c-0.5,0-1.1-0.1-1.6-0.3c-1.4-0.3-2.8-0.8-4.1-1.4c-1.9,1.3-3.2,3.2-3.8,5.5
+	c0.3,0.1,0.8,0.2,1,0.2c4.6,1,6,2.1,6.3,2.3c0.3-0.3,0.7-0.5,1.1-0.5c0.5,0,0.9,0.2,1.2,0.6c0.3-0.3,0.7-0.4,1.1-0.4
+	c0.2,0,0.5,0,0.7,0.1c0.4,0.1,0.8,0.4,0.9,0.9c0.2-0.1,0.4-0.1,0.6-0.1c0.3,0,0.5,0.1,0.8,0.2c0.7,0.3,1.1,1.1,0.9,1.8h0.2
+	c1,0,1.8,0.8,1.8,1.8c0,0.3-0.1,0.6-0.2,0.9c0.5,0.3,1,0.4,1.6,0.4c0.5-0.1,0.7-0.2,0.8-0.3s0.1-0.1,0-0.2L29.1,16
+	c0,0-0.2-0.2-0.1-0.3s0.2,0,0.3,0.1c0.7,0.6,1.4,1.4,1.4,1.4c0.1,0.1,0.2,0.2,0.3,0.2c0.4,0,0.7,0,1-0.2c0.1-0.1,0.2-0.1,0.2-0.2
+	l0,0c0.2-0.3,0.2-0.6,0-0.9l-1.5-1.7c0,0-0.2-0.2-0.2-0.3s0.2,0,0.3,0.1c0.5,0.4,1.2,1.1,1.8,1.7c0.4,0.3,1,0.3,1.4,0
+	c0.4-0.2,0.6-0.6,0.5-1c0-0.2-0.1-0.5-0.3-0.6l-2-2.1c0,0-0.2-0.2-0.1-0.3s0.2,0,0.3,0.1c0.7,0.6,2.4,2.2,2.4,2.2
+	c0.4,0.3,1,0.3,1.4,0c0.3-0.1,0.5-0.4,0.5-0.7C37,13.1,36.8,12.8,36.5,12.6z"/>
+<path class="st2" d="M26.5,15.2c-0.2,0-0.5,0.1-0.7,0.2v-0.2c0-0.1,0.5-1.4-0.6-1.8c-0.5-0.3-1-0.2-1.4,0.2h-0.1
+	c0-0.5-0.3-0.9-0.8-1.1c-0.7-0.2-1.4,0-1.8,0.6c-0.1-0.6-0.6-1.1-1.3-1s-1.1,0.6-1,1.3c0.1,0.6,0.5,1,1.1,1c0.3,0,0.6-0.1,0.8-0.3
+	l0,0c-0.2,0.7,0.2,1.4,0.9,1.7c0.4,0.1,0.8,0.1,1.1-0.2c0.1-0.1,0.1,0,0.1,0c0,0.5,0.3,1,0.8,1.1c0.4,0.2,0.9,0.1,1.2-0.2
+	c0.1-0.1,0.2-0.1,0.2,0.1c0,0.8,0.7,1.4,1.4,1.4s1.4-0.7,1.4-1.4C27.9,15.8,27.3,15.2,26.5,15.2L26.5,15.2z"/>
+<path class="st0" d="M36.7,12.1c-1.6-1.4-5.3-4.6-6.3-5.3c-0.4-0.3-0.8-0.6-1.3-0.7c-0.2-0.1-0.4-0.1-0.6-0.1c-0.3,0-0.6,0-0.8,0.1
+	c-0.7,0.3-1.3,0.7-1.9,1.2l0,0c-0.5,0.4-1,0.8-1.6,1c-0.2,0-0.4,0.1-0.6,0.1c-0.4,0.1-0.8,0-1.2-0.3c0-0.1,0-0.1,0.1-0.2l0,0
+	l1.4-1.5C25,5,26.6,4.1,28.4,4.1h0.1c1.1,0.1,2.2,0.3,3.2,0.8c1.3,0.6,2.8,1,4.3,1c1.6,0,3.2-0.4,4.7-1.1c-0.2-0.1-0.4-0.3-0.6-0.5
+	c-1.3,0.6-2.7,0.9-4.1,0.9c-1.4,0-2.8-0.4-4-1c-1.1-0.5-2.2-0.8-3.4-0.8h-0.1c-1.4,0-2.8,0.4-3.9,1.4c-0.7,0.1-1.3,0.2-1.9,0.4
+	c-0.4,0.1-0.9,0.2-1.4,0.2h-0.5c-1.7-0.3-3.3-0.7-4.9-1.4l-0.6,0.4c1.7,0.7,3.5,1.2,5.3,1.6h0.7c0.5,0,1-0.1,1.5-0.3
+	c0.3-0.1,0.6-0.2,1-0.2l-0.3,0.3L22,7.4c-0.2,0.2-0.3,0.5-0.2,0.8c0.1,0.2,0.2,0.3,0.4,0.4c0.5,0.3,1,0.4,1.5,0.4
+	c0.2,0,0.4,0,0.6-0.1c0.7-0.3,1.3-0.7,1.9-1.2c0.6-0.5,1.2-0.9,1.8-1.1c0.2,0,0.4-0.1,0.6-0.1h0.1c0.5,0.1,1,0.3,1.4,0.7
+	c1.2,0.9,6.4,5.4,6.4,5.4c0.2,0.2,0.3,0.5,0.3,0.8c0,0.3-0.2,0.5-0.4,0.7c-0.2,0.1-0.4,0.2-0.7,0.2c-0.2,0-0.4-0.1-0.6-0.2l-2.4-2.2
+	c-0.1-0.1-0.2-0.2-0.3-0.2c-0.1,0-0.1,0-0.2,0.1c-0.1,0.1,0,0.3,0.2,0.4l2,2.1c0.1,0.2,0.2,0.4,0.3,0.6c0,0.4-0.2,0.7-0.5,0.9
+	C33.9,16,33.6,16,33.4,16c-0.2,0-0.4-0.1-0.6-0.2l-0.2-0.3c-0.5-0.5-1-1-1.5-1.4c-0.1-0.1-0.2-0.2-0.3-0.2c-0.1,0-0.1,0-0.1,0.1
+	c0,0.1,0,0.2,0,0.3c0,0,0.1,0.1,0.1,0.1l1.5,1.7c0.2,0.2,0.2,0.5,0,0.7v0.1l-0.1,0.1c-0.2,0.2-0.5,0.3-0.7,0.2h-0.2
+	c-0.1,0-0.2-0.1-0.3-0.1l0,0c-0.5-0.5-1-0.9-1.5-1.4c-0.1-0.1-0.2-0.1-0.3-0.1c-0.1,0-0.1,0-0.1,0.1c-0.1,0.1,0.1,0.4,0.1,0.4
+	l1.3,1.4v0.1c0,0.1-0.2,0.2-0.7,0.3h-0.2c-0.4,0-0.9-0.2-1.3-0.4c0.1-0.3,0.2-0.5,0.2-0.8c0-1-0.9-1.9-1.9-1.9l0,0h-0.1
+	c0.1-0.8-0.3-1.5-1-1.8c-0.3-0.1-0.5-0.2-0.8-0.2c-0.2,0-0.4,0-0.6,0.1c-0.2-0.4-0.6-0.7-1-0.8c-0.2-0.1-0.5-0.1-0.7-0.1
+	c-0.4,0-0.8,0.1-1.1,0.4c-0.6-0.7-1.6-0.8-2.3-0.2l-0.1,0.1c-0.4-0.3-2-1.3-6.2-2.3c-0.3-0.1-0.7-0.2-1-0.3c0,0.2-0.1,0.5-0.1,0.7
+	l1,0.2c4.3,1,5.8,2,6,2.1c-0.1,0.2-0.1,0.4-0.1,0.6c0,0.9,0.7,1.6,1.6,1.6c0,0,0,0,0,0l0,0c0.1,0,0.2,0,0.3,0
+	c0.1,0.7,0.6,1.2,1.3,1.4c0.2,0.1,0.4,0.1,0.6,0.1c0.1,0,0.3,0,0.4,0c0.2,0.5,0.5,0.8,1,1c0.2,0.1,0.4,0.1,0.6,0.1
+	c0.2,0,0.3,0,0.5-0.1c0.3,0.7,1,1.2,1.8,1.2c0.5,0,1-0.2,1.4-0.6c0.5,0.3,1,0.5,1.6,0.5h0.2c0.4,0,0.8-0.2,1.1-0.5
+	c0,0,0-0.1,0.1-0.1c0.2,0,0.4,0.1,0.5,0.1c0.4,0,0.8-0.1,1.1-0.4c0.3-0.2,0.6-0.5,0.6-0.9l0,0c0.1,0,0.2,0,0.3,0
+	c0.4,0,0.8-0.1,1.1-0.4c0.5-0.3,0.8-0.8,0.8-1.4c0.1,0,0.2,0,0.4,0c0.4,0,0.7-0.1,1-0.3c0.5-0.2,0.8-0.7,0.8-1.2
+	c0-0.3-0.1-0.6-0.2-0.9c2.2-0.9,4.4-1.6,6.7-2.1c0-0.2,0-0.5-0.1-0.7C41.4,10.3,39,11.1,36.7,12.1z M26.5,18c-0.7,0-1.3-0.6-1.3-1.3
+	c0-0.1,0-0.2-0.1-0.2c-0.1,0-0.1,0-0.2,0.1c-0.2,0.2-0.4,0.3-0.6,0.3c-0.1,0-0.3,0-0.4-0.1c-0.7-0.3-0.8-0.8-0.7-1c0,0,0-0.1,0-0.1
+	l0,0c-0.1,0-0.1,0-0.1,0.1c-0.2,0.1-0.4,0.2-0.6,0.2c-0.1,0-0.2,0-0.4-0.1c-0.7-0.2-1.1-0.9-0.9-1.6v-0.1l-0.2-0.2L20.8,14
+	c-0.2,0.2-0.4,0.3-0.7,0.3c-0.6,0-1-0.4-1-1s0.4-1,1-1c0.5,0,0.9,0.4,1,0.9v0.3l0.1-0.2c0.3-0.4,0.7-0.7,1.2-0.6
+	c0.2,0,0.3,0,0.4,0.1c0.4,0.1,0.7,0.5,0.7,1c0,0.1,0.1,0.1,0.1,0.1s0.1,0,0.1-0.1c0.2-0.2,0.5-0.3,0.8-0.3c0.2,0,0.4,0,0.6,0.1
+	c1,0.4,0.5,1.6,0.5,1.7c-0.1,0.2-0.1,0.3,0,0.4h0.2c0.2-0.1,0.3-0.1,0.5-0.1l0,0c0.7,0,1.3,0.6,1.3,1.3C27.7,17.4,27.2,18,26.5,18z"
+	/>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/microsoft.png b/go.dev/testdata/golden/images/logos/microsoft.png
new file mode 100644
index 0000000..5ff7c6b
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/microsoft.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/microsoft.svg b/go.dev/testdata/golden/images/logos/microsoft.svg
new file mode 100644
index 0000000..28ec5f1
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/microsoft.svg
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="1910.1121"
+   height="2590.2581"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Microsoft_2012 Vertical.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="256"
+     inkscape:cx="1001.0885"
+     inkscape:cy="2590.1554"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1366"
+     inkscape:window-height="705"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     fit-margin-top="0.1"
+     fit-margin-left="0.1"
+     fit-margin-right="0.1"
+     fit-margin-bottom="0.1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2996"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(1160.1,-214.2043)">
+    <rect
+       ry="0"
+       rx="0"
+       y="214.20401"
+       x="-1160.1"
+       height="908.34149"
+       width="908.34149"
+       id="rect3056"
+       style="fill:#f44e24;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <rect
+       style="fill:#81b900;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="rect3058"
+       width="908.34149"
+       height="908.34149"
+       x="-158.32906"
+       y="214.20401"
+       rx="0"
+       ry="0" />
+    <rect
+       style="fill:#01a4ef;fill-opacity:1;fill-rule:nonzero;stroke:none"
+       id="rect3060"
+       width="908.34149"
+       height="908.34149"
+       x="-1160.1"
+       y="1215.9747"
+       rx="0"
+       ry="0" />
+    <rect
+       ry="0"
+       rx="0"
+       y="1215.9747"
+       x="-158.32906"
+       height="908.34149"
+       width="908.34149"
+       id="rect3062"
+       style="fill:#ffb902;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <g
+       id="g4172"
+       transform="matrix(0.65908602,0,0,0.65908602,-1125.9019,1063.1602)"
+       style="fill:#737373;fill-opacity:1">
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 32.872062,2632.7113 -82.393988,0 0,-511.7711 125.331699,0 133.458927,334.7081 18.27366,53.6171 24.65901,-68.1786 131.13526,-320.1466 120.68978,0 0,511.7711 -88.19638,0 0,-322.613 c 0,-35.2727 3.6265,-96.0296 3.6265,-96.0296 l -11.16961,40.3266 -153.76343,378.316 -58.02393,0 -154.343669,-374.8346 -12.330086,-43.2278 c 0,0 3.463309,47.2555 3.046257,85.0051 z"
+         id="path3034"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccccccccccccccccccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 587.58088,2632.7113 0,-366.7112 85.87542,0 0,366.7112 z"
+         id="path3036"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 579.45753,2160.3965 c 0,-27.9031 19.36919,-49.9006 51.70868,-49.9006 29.18961,0 52.7344,20.6951 52.7344,48.7401 0,33.6099 -26.20751,49.9006 -52.70875,49.9006 -27.16534,0 -51.73433,-15.5671 -51.73433,-48.7401 z"
+         id="path3038"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 1020.4394,2536.3916 0,80.073 c 0,0 -33.40075,25.2405 -103.28257,25.2405 -125.72457,0 -184.51611,-88.0643 -184.51611,-184.226 0,-120.6702 75.88334,-200.7629 197.28138,-200.7629 55.55637,0 90.5173,18.5677 90.5173,18.5677 l 0,85.8754 c 0,0 -33.12321,-32.4934 -87.03587,-32.4934 -72.79386,0 -111.40595,57.5973 -111.40595,121.8503 0,69.986 38.92244,119.5293 110.24547,119.5293 53.47829,-3.5149 88.19635,-33.6539 88.19635,-33.6539 z"
+         id="path3040"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 1171.3017,2632.7113 -85.8755,0 0,-366.7112 85.8755,0 0,64.9868 c 0,0 20.2001,-71.9497 92.8383,-71.9497 21.7856,0 34.8143,5.8024 34.8143,5.8024 l 0,88.1964 c 0,0 -19.4435,-15.0862 -51.061,-15.0862 -63.0198,0 -76.5916,73.5318 -76.5916,103.2826 z"
+         id="path3042"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccc" />
+      <path
+         id="path3044"
+         d="m 1497.3962,2256.7311 c -112.3272,0 -194.9604,64.9299 -194.9604,194.9604 0,122.7074 76.9595,189.9559 186.837,189.9559 114.1651,0 191.479,-72.5563 191.479,-199.2397 0,-107.5512 -62.7714,-185.6766 -183.3556,-185.6766 z m -8.5585,71.9497 c 0.9136,-0.021 1.8328,0 2.7561,0 59.8718,0 98.6407,36.1547 98.6407,121.8502 0,76.461 -33.0297,119.5293 -96.3198,119.5293 -75.9237,0 -100.9616,-60.4133 -100.9616,-119.5293 0,-78.8247 38.3256,-120.566 95.8846,-121.8502 z"
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         inkscape:connector-curvature="0" />
+      <path
+         id="path3048"
+         d="m 2197.2374,2256.7311 c -112.3272,0 -194.9605,64.9299 -194.9605,194.9604 0,122.7074 76.9596,189.9559 186.8371,189.9559 114.1651,0 191.479,-72.5563 191.479,-199.2397 0,-107.5512 -62.7715,-185.6766 -183.3556,-185.6766 z m -8.5222,71.9497 c 0.9135,-0.021 1.7965,0 2.7198,0 59.8717,0 98.6407,36.1547 98.6407,121.8502 0,76.461 -33.0297,119.5293 -96.3198,119.5293 -75.9237,0 -100.9616,-60.4133 -100.9616,-119.5293 0,-78.8247 38.3618,-120.566 95.9209,-121.8502 z"
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 1721.3686,2621.1066 0,-85.8755 c 0,0 43.3276,37.1354 102.1221,37.1354 32.6852,0 54.9528,-9.7359 54.9528,-37.1354 0,-65.5674 -157.0749,-39.3765 -157.0749,-164.7879 0,-66.7012 55.864,-113.727 140.4179,-113.727 41.8689,0 84.7149,15.0863 84.7149,15.0863 l 0,81.5734 c 0,0 -37.3972,-27.576 -86.523,-27.576 -33.7158,0 -50.4134,15.249 -50.4134,36.6546 0,31.0177 25.0762,38.8104 55.1221,51.9432 44.8986,19.625 100.8948,40.809 100.8948,112.4023 0,70.1411 -57.788,115.1952 -144.4122,115.1952 -57.6213,0 -99.8011,-20.8886 -99.8011,-20.8886 z"
+         id="path3052"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccsccc" />
+      <path
+         style="fill:#737373;fill-opacity:1;stroke:none"
+         d="m 2536.0246,2632.7113 -87.0359,0 0,-297.0825 -60.3449,0 0,-69.6287 60.3449,0 0,-49.9006 c 0,-82.6049 57.5864,-133.4551 134.6155,-133.4551 31.7542,0 48.7401,6.9629 48.7401,6.9629 l 0,75.4311 c 0,0 -20.8651,-10.4443 -40.6167,-10.4443 -44.3663,0 -55.703,33.6353 -55.703,69.6287 l 0,41.7773 129.9736,0 0,-83.5545 87.0359,-26.1975 0,109.752 87.0359,0 0,69.6287 -87.0359,0 0,172.9113 c 0,37.1573 8.4957,61.5054 47.5797,61.5054 23.8652,0 39.4562,-13.9258 39.4562,-13.9258 l 0,73.1102 c 0,0 -30.3112,12.7653 -63.8263,12.7653 -66.5692,0 -110.2455,-29.6542 -110.2455,-120.6898 l 0,-185.6766 -129.9736,0 z"
+         id="path3054"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccccccccccccccccccccccc" />
+    </g>
+  </g>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/mongodb.svg b/go.dev/testdata/golden/images/logos/mongodb.svg
new file mode 100644
index 0000000..e4fe5c6
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/mongodb.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 31 67" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x="1" y="1"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M14.174.175l1.708 3.208c.37.58.804 1.117 1.3 1.604 1.43 1.43 2.788 2.928 4.008 4.532 2.894 3.8 4.846 8 6.24 12.584a30.94 30.94 0 0 1 1.324 8.54c.14 8.646-2.824 16.07-8.8 22.24-.972.978-2.022 1.876-3.14 2.684-.592 0-.872-.454-1.116-.872-.454-.766-.732-1.64-.872-2.5-.2-1.046-.348-2.092-.28-3.172v-.488C14.488 48.4 13.966.4 14.174.175z" fill="#599636"></path><path d="M14.174.07c-.07-.14-.14-.034-.2.034.034.7-.2 1.324-.592 1.92-.4.592-.976 1.046-1.534 1.534-3.1 2.684-5.54 5.926-7.494 9.552-2.6 4.88-3.94 10.1-4.32 15.616C-.15 30.71.652 37.72 1.278 39.74c1.708 5.368 4.776 9.866 8.75 13.77a35.08 35.08 0 0 0 3.1 2.65c.314 0 .348-.28.4-.488a9.57 9.57 0 0 0 .314-1.36l.7-5.228L14.174.07z" fill="#6cac48"></path><path d="M15.882 57.69c.07-.8.454-1.464.872-2.126-.4-.174-.732-.52-.976-.906a6.47 6.47 0 0 1-.52-1.15c-.488-1.464-.592-3-.732-4.496v-.906c-.174.14-.2 1.324-.2 1.5-.102 1.58-.312 3.154-.628 4.706-.104.628-.174 1.254-.56 1.812 0 .07 0 .14.034.244.628 1.848.8 3.73.906 5.648v.7c0 .836-.034.66.66.94.28.104.592.14.872.348.2 0 .244-.174.244-.314l-.104-1.15v-3.208c-.034-.56.07-1.116.14-1.64z" fill="#c2bfbf"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/netflix.svg b/go.dev/testdata/golden/images/logos/netflix.svg
new file mode 100644
index 0000000..75f2a20
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/netflix.svg
@@ -0,0 +1 @@
+<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 48"><defs><style>.cls-1{fill:none;}.cls-2{fill:#d81f26;}</style></defs><title>netfix</title><rect class="cls-1" width="134" height="48"/><path class="cls-2" d="M18.63,39.77c-2,.36-4.07.46-6.19.75L6,21.52V41.33c-2,.21-3.85.49-5.76.78V5.89H5.58l7.35,20.54V5.89h5.7ZM29.77,19.15c2.19,0,5.55-.11,7.56-.11V24.7c-2.51,0-5.44,0-7.56.11v8.42c3.32-.21,6.64-.5,10-.6v5.44L24.11,39.31V5.89H39.77v5.65h-10Zm31.05-7.61H55v26c-1.91,0-3.82,0-5.66.07V11.55H43.42V5.89h17.4ZM70,18.76h7.75v5.65H70V37.25H64.46V5.89H80.27v5.65H70ZM89.46,32.31c3.22.07,6.47.32,9.62.5v5.57C94,38.07,89,37.75,83.8,37.64V5.89h5.66Zm14.4,6.47c1.8.11,3.71.22,5.55.43V5.89h-5.55ZM134.2,5.89,127,23.11l7.18,19c-2.12-.29-4.24-.66-6.37-1l-4.06-10.47-4.14,9.62c-2-.35-4-.46-6.08-.74l7.28-16.59-6.58-17h6.09l3.71,9.52,4-9.52Z" transform="translate(-0.2)"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/paypal.svg b/go.dev/testdata/golden/images/logos/paypal.svg
new file mode 100644
index 0000000..6528aee
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/paypal.svg
@@ -0,0 +1 @@
+<svg width="2119" height="2500" viewBox="0 0 256 302" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid"><path d="M217.168 23.507C203.234 7.625 178.046.816 145.823.816h-93.52A13.393 13.393 0 0 0 39.076 12.11L.136 259.077c-.774 4.87 2.997 9.28 7.933 9.28h57.736l14.5-91.971-.45 2.88c1.033-6.501 6.593-11.296 13.177-11.296h27.436c53.898 0 96.101-21.892 108.429-85.221.366-1.873.683-3.696.957-5.477-1.556-.824-1.556-.824 0 0 3.671-23.407-.025-39.34-12.686-53.765" fill="#27346A"/><path d="M102.397 68.84a11.737 11.737 0 0 1 5.053-1.14h73.318c8.682 0 16.78.565 24.18 1.756a101.6 101.6 0 0 1 6.177 1.182 89.928 89.928 0 0 1 8.59 2.347c3.638 1.215 7.026 2.63 10.14 4.287 3.67-23.416-.026-39.34-12.687-53.765C203.226 7.625 178.046.816 145.823.816H52.295C45.71.816 40.108 5.61 39.076 12.11L.136 259.068c-.774 4.878 2.997 9.282 7.925 9.282h57.744L95.888 77.58a11.717 11.717 0 0 1 6.509-8.74z" fill="#27346A"/><path d="M228.897 82.749c-12.328 63.32-54.53 85.221-108.429 85.221H93.024c-6.584 0-12.145 4.795-13.168 11.296L61.817 293.621c-.674 4.262 2.622 8.124 6.934 8.124h48.67a11.71 11.71 0 0 0 11.563-9.88l.474-2.48 9.173-58.136.591-3.213a11.71 11.71 0 0 1 11.562-9.88h7.284c47.147 0 84.064-19.154 94.852-74.55 4.503-23.15 2.173-42.478-9.739-56.054-3.613-4.112-8.1-7.508-13.327-10.28-.283 1.79-.59 3.604-.957 5.477z" fill="#2790C3"/><path d="M216.952 72.128a89.928 89.928 0 0 0-5.818-1.49 109.904 109.904 0 0 0-6.177-1.174c-7.408-1.199-15.5-1.765-24.19-1.765h-73.309a11.57 11.57 0 0 0-5.053 1.149 11.683 11.683 0 0 0-6.51 8.74l-15.582 98.798-.45 2.88c1.025-6.501 6.585-11.296 13.17-11.296h27.444c53.898 0 96.1-21.892 108.428-85.221.367-1.873.675-3.688.958-5.477-3.122-1.648-6.501-3.072-10.14-4.279a83.26 83.26 0 0 0-2.77-.865" fill="#1F264F"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/prometheus.svg b/go.dev/testdata/golden/images/logos/prometheus.svg
new file mode 100644
index 0000000..5c51f66
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/prometheus.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Layer_1"
+   x="0px"
+   y="0px"
+   width="115.333px"
+   height="114px"
+   viewBox="0 0 115.333 114"
+   enable-background="new 0 0 115.333 114"
+   xml:space="preserve"
+   sodipodi:docname="prometheus_logo_orange.svg"
+   inkscape:version="0.92.1 r15371"><metadata
+     id="metadata4495"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs4493" /><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1484"
+     inkscape:window-height="886"
+     id="namedview4491"
+     showgrid="false"
+     inkscape:zoom="5.2784901"
+     inkscape:cx="60.603667"
+     inkscape:cy="60.329656"
+     inkscape:window-x="54"
+     inkscape:window-y="7"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="Layer_1" /><g
+     id="Layer_2" /><path
+     style="fill:#e6522c;fill-opacity:1"
+     inkscape:connector-curvature="0"
+     id="path4486"
+     d="M 56.667,0.667 C 25.372,0.667 0,26.036 0,57.332 c 0,31.295 25.372,56.666 56.667,56.666 31.295,0 56.666,-25.371 56.666,-56.666 0,-31.296 -25.372,-56.665 -56.666,-56.665 z m 0,106.055 c -8.904,0 -16.123,-5.948 -16.123,-13.283 H 72.79 c 0,7.334 -7.219,13.283 -16.123,13.283 z M 83.297,89.04 H 30.034 V 79.382 H 83.298 V 89.04 Z M 83.106,74.411 H 30.186 C 30.01,74.208 29.83,74.008 29.66,73.802 24.208,67.182 22.924,63.726 21.677,60.204 c -0.021,-0.116 6.611,1.355 11.314,2.413 0,0 2.42,0.56 5.958,1.205 -3.397,-3.982 -5.414,-9.044 -5.414,-14.218 0,-11.359 8.712,-21.285 5.569,-29.308 3.059,0.249 6.331,6.456 6.552,16.161 3.252,-4.494 4.613,-12.701 4.613,-17.733 0,-5.21 3.433,-11.262 6.867,-11.469 -3.061,5.045 0.793,9.37 4.219,20.099 1.285,4.03 1.121,10.812 2.113,15.113 C 63.797,33.534 65.333,20.5 71,16 c -2.5,5.667 0.37,12.758 2.333,16.167 3.167,5.5 5.087,9.667 5.087,17.548 0,5.284 -1.951,10.259 -5.242,14.148 3.742,-0.702 6.326,-1.335 6.326,-1.335 l 12.152,-2.371 c 10e-4,-10e-4 -1.765,7.261 -8.55,14.254 z" /></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/riotgames.png b/go.dev/testdata/golden/images/logos/riotgames.png
new file mode 100644
index 0000000..facb585
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/riotgames.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/salesforce.svg b/go.dev/testdata/golden/images/logos/salesforce.svg
new file mode 100644
index 0000000..a2469a8
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/salesforce.svg
@@ -0,0 +1,62 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 68.6 48" style="enable-background:new 0 0 68.6 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#00A1E0;}
+	.st1{fill:#FFFFFF;}
+</style>
+<title>salesforce</title>
+<path class="st0" d="M28.6,5.2c2.3-2.4,5.4-3.7,8.7-3.7c4.4,0,8.4,2.4,10.6,6.3c7.5-3.3,16.2,0.1,19.5,7.5c0.9,1.9,1.3,4,1.3,6.1
+	c0,8.2-6.6,14.9-14.8,14.9c-1,0-2-0.1-2.9-0.2c-2.8,5-9,6.9-14.2,4.4c-2.7,6.3-9.9,9.2-16.2,6.5c-3.1-1.3-5.6-3.9-6.8-7.1
+	c-0.8,0.2-1.6,0.2-2.3,0.2C5.1,40.1-0.1,34.9,0,28.5c0-4.1,2.2-7.8,5.7-9.9c-0.7-1.7-1.1-3.5-1.1-5.3C4.7,5.9,10.6,0,18,0
+	C22.1,0,26,1.9,28.6,5.2"/>
+<path class="st1" d="M10,24.9c0,0.1,0,0.1,0,0.2c0.1,0.1,0.3,0.2,0.4,0.2c0.6,0.3,1.3,0.5,2,0.5c1.4,0,2.3-0.8,2.3-2l0,0
+	c0-1.1-1-1.5-1.9-1.8h-0.1c-0.7-0.2-1.3-0.4-1.3-0.9l0,0c0-0.4,0.3-0.7,0.9-0.7c0.6,0,1.2,0.2,1.8,0.5c0,0,0.1,0.1,0.2,0l0.3-0.8
+	c0-0.1,0-0.1-0.1-0.1c-0.6-0.4-1.3-0.5-2-0.5h-0.1c-1.1-0.1-2,0.7-2.2,1.8l0,0c0,1.2,1,1.6,1.9,1.8h0.1c0.7,0.2,1.3,0.4,1.3,0.9l0,0
+	c0,0.4-0.4,0.8-1,0.8c-0.6,0-1.3-0.2-1.8-0.5c-0.1,0-0.2-0.1-0.2-0.1c0,0-0.1,0-0.2,0c0,0,0,0,0,0.1L10,24.9L10,24.9z"/>
+<path class="st1" d="M30.5,24.9c0,0,0,0.1,0,0.2c0.1,0.1,0.3,0.2,0.4,0.2c0.6,0.3,1.3,0.5,2,0.5c1.4,0,2.3-0.8,2.3-2l0,0
+	c0-1.1-1-1.5-1.9-1.8h-0.1c-0.7-0.2-1.3-0.4-1.3-0.9l0,0c0-0.4,0.4-0.7,0.9-0.7c0.6,0,1.2,0.2,1.8,0.5c0,0,0.1,0.1,0.2,0l0.3-0.9
+	c0-0.1,0-0.1-0.1-0.1c0,0,0,0,0,0c-0.6-0.4-1.3-0.6-2-0.5h-0.1c-1.1-0.1-2.1,0.7-2.2,1.8c0,0,0,0.1,0,0.1l0,0c0,1.2,1,1.6,1.9,1.8
+	h0.2c0.7,0.2,1.3,0.4,1.3,0.9l0,0c0,0.4-0.4,0.8-1,0.8c-0.6,0-1.3-0.2-1.8-0.5H31c-0.1,0-0.1,0-0.2,0c0,0,0,0,0,0L30.5,24.9
+	L30.5,24.9z"/>
+<path class="st1" d="M44.6,22.5c0,0.6-0.1,1.1-0.4,1.6c-0.5,0.6-1.4,0.7-2,0.3c-0.1-0.1-0.2-0.2-0.3-0.3c-0.3-0.5-0.4-1-0.4-1.6
+	c0-0.6,0.1-1.1,0.4-1.6c0.5-0.6,1.4-0.7,2.1-0.2c0.1,0.1,0.2,0.1,0.2,0.2C44.5,21.4,44.6,22,44.6,22.5 M45.8,21.3
+	c-0.1-0.4-0.3-0.7-0.5-1c-0.2-0.3-0.6-0.5-0.9-0.7c-0.8-0.3-1.7-0.3-2.5,0c-0.3,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,1
+	c-0.1,0.4-0.2,0.8-0.2,1.3c0,0.4,0.1,0.8,0.2,1.3c0.1,0.4,0.3,0.7,0.5,1c0.2,0.3,0.6,0.5,0.9,0.7c0.8,0.3,1.7,0.3,2.5,0
+	c0.3-0.2,0.7-0.4,0.9-0.7c0.2-0.3,0.4-0.6,0.5-1c0.1-0.4,0.2-0.8,0.2-1.3C46,22.1,45.9,21.7,45.8,21.3"/>
+<path class="st1" d="M55.4,24.5c0-0.1-0.1-0.1-0.1-0.1c0,0,0,0,0,0c-0.2,0.1-0.4,0.1-0.6,0.2c-0.2,0-0.4,0-0.6,0
+	c-0.5,0-1-0.2-1.3-0.5c-0.4-0.4-0.5-1-0.5-1.6c0-0.6,0.1-1.1,0.4-1.5c0.3-0.4,0.8-0.6,1.3-0.6c0.4,0,0.8,0,1.2,0.2
+	c0,0,0.1,0,0.1-0.1l0.3-0.8c0-0.1,0-0.1-0.1-0.1c0,0,0,0,0,0c-0.3-0.1-0.5-0.1-0.8-0.2c-0.3,0-0.6-0.1-0.9-0.1
+	c-0.4,0-0.9,0.1-1.3,0.2c-0.7,0.3-1.3,1-1.5,1.7c-0.1,0.4-0.2,0.8-0.2,1.3c0,0.8,0.2,1.7,0.8,2.3c0.6,0.6,1.4,0.9,2.3,0.9
+	c0.6,0,1.1-0.1,1.7-0.3c0,0,0-0.1,0-0.1L55.4,24.5L55.4,24.5z"/>
+<path class="st1" d="M57.5,21.9c0-0.3,0.1-0.7,0.3-0.9c0.3-0.4,0.7-0.6,1.1-0.6c0.4,0,0.9,0.2,1.1,0.6c0.2,0.3,0.3,0.6,0.3,0.9H57.5
+	z M61.5,21.1c-0.1-0.3-0.3-0.7-0.5-0.9c-0.2-0.2-0.5-0.4-0.8-0.6c-0.4-0.2-0.7-0.2-1.1-0.2c-0.5,0-0.9,0.1-1.3,0.3
+	c-0.4,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,1c-0.2,0.8-0.2,1.7,0,2.5c0.2,0.8,0.8,1.4,1.6,1.7c0.5,0.2,1,0.2,1.4,0.2
+	c0.7,0,1.4-0.1,2-0.4c0,0,0.1-0.1,0-0.2l-0.2-0.7c0-0.1-0.1-0.1-0.1-0.1c0,0,0,0,0,0c-0.5,0.2-1.1,0.3-1.6,0.3c-0.5,0-1-0.1-1.4-0.5
+	c-0.3-0.4-0.5-0.8-0.5-1.3h4c0.1,0,0.1,0,0.1-0.1C61.7,22.2,61.6,21.6,61.5,21.1L61.5,21.1z"/>
+<path class="st1" d="M25.6,21.9c0-0.3,0.1-0.7,0.3-0.9c0.2-0.4,0.7-0.6,1.1-0.6c0.4,0,0.9,0.2,1.1,0.6c0.2,0.3,0.2,0.6,0.3,0.9H25.6
+	z M29.6,21.1c-0.1-0.4-0.3-0.7-0.5-1c-0.2-0.2-0.5-0.4-0.8-0.6c-0.4-0.2-0.7-0.2-1.1-0.2c-0.5,0-0.9,0.1-1.3,0.3
+	c-0.4,0.2-0.7,0.4-0.9,0.7c-0.2,0.3-0.4,0.6-0.5,1c-0.1,0.4-0.2,0.8-0.2,1.3c0,0.4,0.1,0.9,0.2,1.3c0.1,0.4,0.3,0.7,0.6,1
+	c0.3,0.3,0.6,0.5,1,0.7c0.5,0.2,1,0.2,1.5,0.2c0.7,0,1.4-0.1,2-0.4c0,0,0.1-0.1,0-0.2l-0.3-0.7c0-0.1-0.1-0.1-0.1-0.1c0,0,0,0,0,0
+	c-0.5,0.2-1.1,0.3-1.6,0.3c-0.9,0.1-1.7-0.5-1.8-1.4c0-0.1,0-0.2,0-0.4h4c0,0,0.1,0,0.1-0.1C29.8,22.2,29.7,21.6,29.6,21.1
+	L29.6,21.1z"/>
+<path class="st1" d="M17.1,24.5c-0.1-0.1-0.2-0.1-0.2-0.2c-0.1-0.2-0.1-0.3-0.1-0.5c0-0.3,0.1-0.6,0.3-0.8c0.3-0.2,0.8-0.3,1.2-0.3
+	c0.4,0,0.7,0,1.1,0.1v1.8l0,0c-0.4,0.1-0.7,0.1-1.1,0.1C17.8,24.8,17.4,24.7,17.1,24.5 M18.7,21.7h-0.6c-0.3,0-0.7,0-1,0.1
+	c-0.3,0.1-0.6,0.2-0.8,0.4c-0.2,0.2-0.4,0.4-0.6,0.7c-0.1,0.3-0.2,0.6-0.2,0.9c0,0.3,0.1,0.6,0.2,0.9c0.1,0.2,0.3,0.5,0.5,0.6
+	c0.2,0.2,0.5,0.3,0.8,0.4c0.3,0.1,0.7,0.1,1,0.1c0.4,0,0.8,0,1.2-0.1l1-0.2l0.3-0.1c0.1,0,0.1-0.1,0.1-0.1v-3.7
+	c0.1-0.6-0.2-1.3-0.6-1.8c-0.5-0.4-1.2-0.6-1.8-0.6c-0.4,0-0.7,0-1.1,0.1c-0.4,0.1-0.8,0.2-1.2,0.5c0,0,0,0.1,0,0.2l0.3,0.8
+	c0,0.1,0.1,0.1,0.1,0.1c0,0,0,0,0,0h0.1c0.5-0.3,1.1-0.4,1.7-0.4c0.4,0,0.7,0.1,1,0.2c0.2,0.2,0.3,0.4,0.3,1v0.2L18.7,21.7"/>
+<path class="st1" d="M50.7,19.6c0-0.1,0-0.1-0.1-0.1c-0.2-0.1-0.4-0.1-0.7-0.1c-0.3,0-0.7,0-1,0.2c-0.3,0.1-0.5,0.3-0.7,0.5v-0.5
+	c0-0.1,0-0.1-0.1-0.1c0,0,0,0,0,0h-1.1c-0.1,0-0.1,0-0.1,0.1c0,0,0,0,0,0v5.9c0,0.1,0.1,0.1,0.1,0.1l0,0h1c0.1,0,0.1-0.1,0.1-0.1
+	c0,0,0,0,0,0v-3c0-0.3,0-0.7,0.1-1c0.1-0.2,0.2-0.4,0.3-0.6c0.1-0.1,0.3-0.2,0.5-0.3c0.2,0,0.4-0.1,0.5-0.1c0.1,0,0.3,0,0.4,0
+	c0.1,0,0.1,0,0.2-0.1L50.7,19.6"/>
+<path class="st1" d="M40.9,16.9c-0.1,0-0.3-0.1-0.4-0.1c-0.2,0-0.4,0-0.5,0c-0.6,0-1.2,0.2-1.7,0.6c-0.4,0.5-0.7,1.1-0.8,1.8v0.3
+	h-0.9c-0.1,0-0.1,0.1-0.1,0.1l-0.2,0.8c0,0.1,0,0.1,0.1,0.1h0.9l-0.9,5c-0.1,0.3-0.1,0.7-0.2,1c-0.1,0.2-0.2,0.4-0.3,0.6
+	c-0.1,0.1-0.2,0.2-0.4,0.3c-0.1,0-0.3,0.1-0.5,0.1c-0.1,0-0.2,0-0.3,0c-0.1,0-0.1,0-0.2-0.1c-0.1,0-0.1,0-0.1,0.1l-0.3,0.8
+	c0,0.1,0,0.1,0.1,0.2l0.4,0.1c0.2,0,0.4,0.1,0.6,0c0.3,0,0.7,0,1-0.1c0.3-0.1,0.5-0.3,0.7-0.5c0.2-0.3,0.4-0.6,0.5-0.9
+	c0.2-0.4,0.3-0.9,0.3-1.3l0.9-5.1h1.3c0.1,0,0.1-0.1,0.1-0.1l0.1-0.8c0-0.1,0-0.1-0.1-0.1h-1.3c0.1-0.3,0.1-0.6,0.2-0.9
+	c0-0.2,0.1-0.4,0.3-0.6c0.1-0.1,0.2-0.2,0.3-0.2c0.1,0,0.3-0.1,0.4-0.1c0.1,0,0.2,0,0.3,0l0.2,0c0.1,0,0.2,0,0.2-0.1L40.9,16.9
+	C41,16.9,40.9,16.9,40.9,16.9C40.9,16.8,40.9,16.8,40.9,16.9"/>
+<path class="st1" d="M23.1,25.5c0,0.1-0.1,0.1-0.1,0.1h-1c-0.1,0-0.1,0-0.1-0.1c0,0,0,0,0,0V17c0-0.1,0-0.1,0.1-0.1c0,0,0,0,0,0h1
+	c0.1,0,0.1,0.1,0.1,0.1L23.1,25.5L23.1,25.5z"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/sitereliability.svg b/go.dev/testdata/golden/images/logos/sitereliability.svg
new file mode 100644
index 0000000..c549d69
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/sitereliability.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="400 200 5350 1470"><path d="M413.85 1464.55l43.15-17.64c10.29 38.71 40.67 69.58 80.85 69.58 37.24 0 70.07-21.07 70.07-58.31 0-32.34-22-49.49-75-68.11l-22-7.84c-39.21-13.72-84.29-37.73-84.29-95.55 0-50.48 44.6-93.6 107.81-93.6 66.15 0 100 43.12 108.78 71.06L601 1281.77c-5.39-18.62-25.48-45.57-65.66-45.57-33.82 0-62.73 21.07-62.73 50.48 0 27.93 24 42.14 63.71 55.86l22.54 7.84c51.94 18.13 95.06 46.06 95.06 107.8 0 72.52-65.17 101.43-117.11 101.43s-105.32-31.85-122.96-95.06zm269.55-235.7a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm133.29-14.7c-13.23-12.74-19.6-28.91-19.6-52.43v-131.81h-42.16v-41.16h42.14v-73.51h45.08v73.51h58.81v41.16h-58.81v119.56c0 12.74 2 23.52 7.35 30.38s14.21 10.78 21.56 10.78c10.78 0 14.7-1.47 21.57-4.41l14.21 40.18c-12.25 4.41-23.53 6.37-41.17 6.37-20.58 0-37.73-7.84-48.98-18.62zm95.09-105.35c0-69.58 45.57-127.89 118.58-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33H967.15c1.47 53.9 43.12 78.4 77.42 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.56 0-121.52-53.9-121.52-127.89zm117.6-86.73c-34.79 0-60.76 23.52-68.11 57.82h137.69c-1.47-21.07-16.66-57.81-69.58-57.81zm274.39-144.07h119.56c58.31 0 109.76 43.12 109.76 104.38 0 50-37.24 90.65-83.79 100.45l-1 1.47 98.49 142.59v2h-53.41l-94.57-142.1h-50v142.1h-45.08zm117.6 166.61c34.79 0 65.66-25.48 65.66-62.23 0-27.94-22.54-61.26-62.72-61.26h-75.46v123.49zm130.67 64.19c0-69.58 45.58-127.89 118.59-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33h-188.66c1.48 53.9 43.13 78.4 77.43 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.57 0-121.53-53.9-121.53-127.89zM1679 1345c-34.79 0-60.77 23.52-68.11 57.82h137.69c-1.51-21.08-16.7-57.82-69.58-57.82zm151.56 206.77v-350.85h45.08v350.85zm83.79-322.92a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm290.17-147.98v148h-43.12v-33.32h-2c-13.23 20.09-37.24 41.16-74.48 41.16-52.43 0-93.1-35.28-93.1-82.32 0-52.43 44.1-81.34 103.39-81.34 33.81 0 56.84 9.31 66.15 14.7v-10.29c0-33.32-31.36-56.35-62.23-56.35-25.48 0-44.59 9.31-59.78 31.85l-39.69-25c21.07-29.89 53.9-47 97-47 67.19-.05 107.86 38.17 107.86 99.91zm-43.12 45.08s-21.56-16.66-58.8-16.66c-38.22 0-64.19 21.07-64.19 46.06 0 26 27 41.16 50 41.16 36.28 0 72.99-31.36 72.99-70.56zm132.29 69.58h-2v33.32h-43.12v-350.85H2303v110.75l-2 33.32h2c13.72-22 43.61-41.16 81.83-41.16 60.76 0 114.17 54.39 114.17 127.89s-53.41 127.89-114.17 127.89c-38.26 0-68.15-19.11-81.83-41.16zm150.92-86.73c0-53.9-36.26-86.73-76.44-86.73s-76.44 31.85-76.44 86.73 36.26 86.73 76.44 86.73 76.4-32.83 76.4-86.73zm69.92-202.87a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm93.1 0v-350.85h45.08v350.85zm83.75-322.92a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm133.31-14.7c-13.23-12.74-19.6-28.91-19.6-52.43v-131.81h-42.14v-41.16H2833v-73.51h45.08v73.51h58.8v41.16h-58.8v119.56c0 12.74 2 23.52 7.35 30.38s14.21 10.78 21.56 10.78c10.78 0 14.7-1.47 21.56-4.41l14.21 40.18c-12.25 4.41-23.52 6.37-41.16 6.37-20.6 0-37.71-7.84-48.98-18.62zm142.63 120.54l55.86-121-99-224.91h49l71.54 172.48h1l69.58-172.48h49l-150.43 345.91zM3382.34 1244v111.24h144.06v42.14h-144.06v111.23h159.74v43.12h-204.82v-350.81h204.82V1244zm241.41 101h2c12.74-22 43.13-41.16 76-41.16 61.25 0 91.63 37.73 91.63 97v150.92h-45.08v-144.05c0-50-25-62.72-59.29-62.72-39.2 0-63.22 37.24-63.22 74v132.79h-45.08v-240.1h43.12zm210.06 250.38l42.63-17.64c9.31 26.46 33.81 46.55 67.62 46.55 50 0 77.92-32.34 77.92-82.81v-23h-2c-14.7 22-43.61 41.16-81.83 41.16-61.26 0-114.18-54.39-114.18-127.89s52.92-127.89 114.18-127.89c38.22 0 67.13 19.11 81.83 41.16h2v-33.32h43.12v229.81c0 84.28-54.88 124-121 124-64.72-.06-99.51-39.75-110.29-70.13zM4022 1431.72c0-54.88-36.26-86.73-76.45-86.73s-76.44 32.83-76.44 86.73 36.26 86.73 76.44 86.73 76.45-31.85 76.45-86.73zm82.63-202.87a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1H4159v240.1zM4250.45 1345h2c12.74-22 43.12-41.16 75.95-41.16 61.25 0 91.63 37.73 91.63 97v150.92h-45.08v-144.05c0-50-25-62.72-59.29-62.72-39.2 0-63.21 37.24-63.21 74v132.79h-45.08v-240.1h43.12zm201.19 86.72c0-69.58 45.57-127.89 118.58-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33H4497.7c1.47 53.9 43.12 78.4 77.42 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.56 0-121.52-53.9-121.52-127.89zm117.6-86.73c-34.79 0-60.76 23.52-68.11 57.82h137.69c-1.47-21.07-16.66-57.81-69.58-57.81zm137.49 86.73c0-69.58 45.57-127.89 118.58-127.89 71.54 0 116.62 50.47 116.62 127.89 0 3.43-.49 8.33-.49 8.33h-188.65c1.47 53.9 43.12 78.4 77.42 78.4 33.32 0 53.9-19.11 67.62-43.12l40.18 19.6c-18.62 35.28-55.86 64.68-109.76 64.68-70.56 0-121.52-53.9-121.52-127.89zm117.6-86.73c-34.79 0-60.76 23.52-68.11 57.82h137.69c-1.47-21.07-16.66-57.81-69.58-57.81zm151.02 206.78v-240.1h43.12v39.2h2c9.8-27.44 45.08-46.06 70.07-46.06 14.7 0 24.5 2 33.32 5.88l-13.72 43.61c-6.86-2.45-15.19-3.43-26.46-3.43-33.81 0-63.21 31.85-63.21 68.6v132.3zm161.45-322.92a31.85 31.85 0 1131.85 31.85 31.79 31.79 0 01-31.85-31.85zm9.31 322.92v-240.1h45.08v240.1zm136.5-206.77h2c12.74-22 43.12-41.16 76-41.16 61.26 0 91.64 37.73 91.64 97v150.92h-45.08v-144.05c0-50-25-62.72-59.3-62.72-39.2 0-63.21 37.24-63.21 74v132.79h-45.08v-240.1h43.12zm210.06 250.38l42.63-17.64c9.31 26.46 33.81 46.55 67.62 46.55 50 0 77.92-32.34 77.92-82.81v-23h-2c-14.7 22-43.61 41.16-81.84 41.16-61.25 0-114.17-54.39-114.17-127.89s52.92-127.89 114.17-127.89c38.23 0 67.14 19.11 81.84 41.16h2v-33.32H5724v229.81c0 84.28-54.89 124-121 124-64.76-.06-99.55-39.75-110.33-70.13zm188.17-163.66c0-54.88-36.27-86.73-76.45-86.73s-76.44 32.83-76.44 86.73 36.26 86.73 76.44 86.73 76.45-31.85 76.45-86.73z" fill="#5f6368"/><path fill="#ea4335" d="M3068.91 231.58l-98.04 56.61V403.2l-101.96 59.75V346.62l-98.05 57.5v.01l137.26 356.86 160.79-184.32 39.21-172.54-39.21-172.55z"/><path fill="#fbbc04" d="M3068.91 231.58l98.03 56.61V403.2l101.97 59.75V346.62l98.03 57.5v.01l-137.25 356.86-160.78-184.32V231.58z"/><path d="M3068.9 576.67l-98-57.51v115l-102-57.51V463l-98-58.82v317.87a47.06 47.06 0 0023.52 40.76l251 145.38a47 47 0 0023.52 6.3l58.83-184.87z" fill="#4285f4"/><path d="M3068.9 576.67l98-57.51v115l102-57.51V463l98-58.82v317.87a47.06 47.06 0 01-23.53 40.76l-251 145.38a47 47 0 01-23.53 6.3z" fill="#34a853"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/stripe.svg b/go.dev/testdata/golden/images/logos/stripe.svg
new file mode 100644
index 0000000..cfb5c25
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/stripe.svg
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="362"
+   height="151.8"
+   viewBox="0 0 95.779166 40.163749"
+   version="1.1"
+   id="svg5512"
+   inkscape:version="0.92.0 r15299"
+   sodipodi:docname="stripe.svg">
+  <defs
+     id="defs5506" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.2277778"
+     inkscape:cx="180"
+     inkscape:cy="74.899999"
+     inkscape:document-units="mm"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     units="px"
+     inkscape:window-width="1280"
+     inkscape:window-height="744"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5509">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(24.946428,-325.0345)">
+    <g
+       id="Stripe"
+       transform="matrix(0.26458333,0,0,0.26458333,-38.969344,315.77409)">
+	<path
+   id="path5516"
+   d="m 414,113.4 c 0,-25.6 -12.4,-45.8 -36.1,-45.8 -23.8,0 -38.2,20.2 -38.2,45.6 0,30.1 17,45.3 41.4,45.3 11.9,0 20.9,-2.7 27.7,-6.5 v -20 c -6.8,3.4 -14.6,5.5 -24.5,5.5 -9.7,0 -18.3,-3.4 -19.4,-15.2 h 48.9 c 0,-1.3 0.2,-6.5 0.2,-8.9 z m -49.4,-9.5 c 0,-11.3 6.9,-16 13.2,-16 6.1,0 12.6,4.7 12.6,16 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5518"
+   d="m 301.1,67.6 c -9.8,0 -16.1,4.6 -19.6,7.8 l -1.3,-6.2 h -22 v 116.6 l 25,-5.3 0.1,-28.3 c 3.6,2.6 8.9,6.3 17.7,6.3 17.9,0 34.2,-14.4 34.2,-46.1 -0.1,-29 -16.6,-44.8 -34.1,-44.8 z m -6,68.9 c -5.9,0 -9.4,-2.1 -11.8,-4.7 l -0.1,-37.1 c 2.6,-2.9 6.2,-4.9 11.9,-4.9 9.1,0 15.4,10.2 15.4,23.3 0,13.4 -6.2,23.4 -15.4,23.4 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<polygon
+   id="polygon5520"
+   points="248.9,56.3 248.9,36 223.8,41.3 223.8,61.7 "
+   class="st0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<rect
+   id="rect5522"
+   height="87.5"
+   width="25.1"
+   class="st0"
+   y="69.300003"
+   x="223.8"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5524"
+   d="m 196.9,76.7 -1.6,-7.4 h -21.6 v 87.5 h 25 V 97.5 c 5.9,-7.7 15.9,-6.3 19,-5.2 v -23 c -3.2,-1.2 -14.9,-3.4 -20.8,7.4 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5526"
+   d="m 146.9,47.6 -24.4,5.2 -0.1,80.1 c 0,14.8 11.1,25.7 25.9,25.7 8.2,0 14.2,-1.5 17.5,-3.3 V 135 c -3.2,1.3 -19,5.9 -19,-8.9 V 90.6 h 19 V 69.3 h -19 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+	<path
+   id="path5528"
+   d="m 79.3,94.7 c 0,-3.9 3.2,-5.4 8.5,-5.4 7.6,0 17.2,2.3 24.8,6.4 V 72.2 C 104.3,68.9 96.1,67.6 87.8,67.6 67.5,67.6 54,78.2 54,95.9 c 0,27.6 38,23.2 38,35.1 0,4.6 -4,6.1 -9.6,6.1 -8.3,0 -18.9,-3.4 -27.3,-8 v 23.8 c 9.3,4 18.7,5.7 27.3,5.7 20.8,0 35.1,-10.3 35.1,-28.2 -0.1,-29.8 -38.2,-24.5 -38.2,-35.7 z"
+   class="st0"
+   inkscape:connector-curvature="0"
+   style="clip-rule:evenodd;fill:#6772e5;fill-rule:evenodd" />
+
+</g>
+  </g>
+  <style
+     id="style5514"
+     type="text/css">
+	.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#6772E5;}
+</style>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/target.svg b/go.dev/testdata/golden/images/logos/target.svg
new file mode 100644
index 0000000..05974a0
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/target.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300"><path fill="#FFF" stroke="#E50024" stroke-width="50" d="M149 25a125 125 0 102 0zm2 100a25 25 0 11-2 0z"/></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/terraform-icon.svg b/go.dev/testdata/golden/images/logos/terraform-icon.svg
new file mode 100644
index 0000000..0627ba1
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/terraform-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 58 66" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none"><path d="M36.906 64V43.802L19.412 33.7v20.198zm0-22.405L19.412 31.49V11.285l17.494 10.103z" fill="#5c4ee5"></path><path d="M56.336 31.483V11.277L38.833 21.38v20.206z" fill="#4040b2"></path><path d="M17.494 30.31V10.103L0 0v20.206z" fill="#5c4ee5"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/terraform.png b/go.dev/testdata/golden/images/logos/terraform.png
new file mode 100644
index 0000000..56e7747
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/terraform.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/the-new-york-times-icon.svg b/go.dev/testdata/golden/images/logos/the-new-york-times-icon.svg
new file mode 100644
index 0000000..289ebd7
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/the-new-york-times-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 65 65" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><svg width="64" height="64" stroke="initial" fill="initial" fill-rule="initial"><g transform="matrix(1.662571 0 0 1.662571 5.095437 -18.288283)"><defs><path id="B" d="M2 61.8L1.3 11h374l.7 50.8z"></path></defs><clipPath id="C"><use xlink:href="#B"></use></clipPath><path clip-path="url(#C)" d="M13 39.2V25.5l-4.5 1.8s-1.1 2.3-.9 5.7c.1 2.7 1.7 5.8 2.9 7.2zM25.1 11c1 .1 2.7.6 3.9 1.6 1.3 1.2 1.6 3.1 1.2 4.8-.4 1.5-.9 2.3-2.5 3.4S24.9 22 24.9 22v6.6L28 31l-3.1 2.8v9s2.6-2.1 4.6-6.2c0 0 .1-.2.3-.7.2 1.1.1 3.4-1.2 6.2-1 2.2-2.7 4.2-5 5.4-3.9 2.1-6.9 2.3-10 1.7-3.7-.7-7.1-2.7-9.3-6.2C2.7 40.5 2 37.7 2 34.6c.1-6.1 4.8-11.3 10.2-13.3.7-.2.9-.4 1.8-.5-.4.3-.9.6-1.5 1-1.7 1.1-3.2 3.3-3.9 5L19 22.3v14.1l-8.3 4.1c1 1.3 3.9 3.2 6.4 3.5 4.2.5 7-1.1 7-1.1v-9.2L21 31l3.1-2.4V22c-1.8-.2-4.3-1-5.5-1.3-1.9-.4-8.1-2.1-9.1-2.3-1-.1-2.2-.1-2.9.5s-1.2 1.8-.9 2.8c.2.6.6.9.9 1.2 0 0-.4 0-1-.4-1.2-.7-2.1-2-2.2-3.7A6.2 6.2 0 0 1 6 13.4c1.6-1 3.4-1.6 5.5-1.3 3.1.4 7.2 2.1 10.9 3 1.4.3 2.5.4 3.5-.1.5-.3 1.3-1.2.6-2.3-.8-1.3-2.3-1.3-3.6-1.5 1.2-.2 1.4-.2 2.2-.2" fill="#251802"></path></g></svg></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/twitch.svg b/go.dev/testdata/golden/images/logos/twitch.svg
new file mode 100644
index 0000000..d684234
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/twitch.svg
@@ -0,0 +1,24 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 108.2 48" style="enable-background:new 0 0 108.2 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#9147FE;}
+	.st1{fill:#FFFFFF;}
+</style>
+<title>twitch</title>
+<g id="layer1">
+	<g id="g256">
+		<path id="path254" class="st0" d="M106.3,31.6h-7.6v-9.5h-1.9v9.5h-7.6V7.9h7.6v6.6h5.7l3.8,3.8L106.3,31.6 M87.3,22.1h-7.6V24
+			h7.6v7.6H76l-3.8-3.8v-9.5l3.8-3.8h11.4L87.3,22.1 M70.2,22.1h-6.6V24h6.7v7.6H59.8L56,27.8V7.9h7.6v6.6h6.7L70.2,22.1 M54.1,12.6
+			h-7.6V7.9h7.6V12.6 M54.1,31.6h-7.6v-17h7.6V31.6 M44.6,31.6H21.8L18,27.8V14.5h7.6V24h1.9v-9.5h7.6V24H37v-9.5h7.6L44.6,31.6
+			 M16.1,22.1H9.5V24h6.6v7.6H5.7l-3.8-3.8V7.9h7.6v6.6h6.6V22.1 M103.5,12.6h-4.8V6H88.3l-4.8,6.6H75l-2.9,2.8v-2.8h-6.6V6H44.6
+			v6.6H15.2L10.4,6H0v22.7L13.3,42h13.3v-3.8l3.8,3.8H56v-3.8l3.8,3.8h12.3v-3.8L76,42h23.7l8.6-8.5V17.4L103.5,12.6"/>
+	</g>
+	<g id="g262">
+		<path id="path260" class="st1" d="M89.2,31.6h7.6v-9.5h1.9v9.5h7.6V18.3l-3.8-3.8h-5.7V7.9h-7.6L89.2,31.6L89.2,31.6 M56,27.8
+			l3.8,3.8h10.5V24h-6.7v-1.9h6.7v-7.6h-6.7V7.9H56V27.8L56,27.8 M72.2,27.8l3.8,3.8h11.4V24h-7.6v-1.9h7.6v-7.6H76l-3.8,3.8
+			L72.2,27.8L72.2,27.8 M46.5,7.9h7.6v4.7h-7.6V7.9 M16.1,14.5H9.5V7.9H1.9v19.9l3.8,3.8h10.4V24H9.5v-1.9h6.6V14.5 M18,27.8
+			l3.8,3.8h22.8v-17H37V24h-1.9v-9.5h-7.6V24h-1.9v-9.5H18L18,27.8L18,27.8 M46.5,14.5h7.6v17h-7.6V14.5"/>
+	</g>
+</g>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/twitter.svg b/go.dev/testdata/golden/images/logos/twitter.svg
new file mode 100644
index 0000000..8c27bd2
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/twitter.svg
@@ -0,0 +1,12 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	width="59px" height="48px" viewBox="0 0 59 48" style="enable-background:new 0 0 59 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#1DA1F2;}
+</style>
+<title>twitter</title>
+<path class="st0" d="M18.5,48C40.8,48,53,29.6,53,13.6v-1.6c2.3-1.7,4.4-3.8,6-6.3c-2.2,1-4.6,1.6-7,1.9c2.6-1.5,4.5-3.9,5.4-6.7
+	c-2.4,1.4-5,2.4-7.7,2.9c-4.6-4.9-12.3-5.1-17.1-0.5c-3.1,2.9-4.5,7.3-3.5,11.5c-9.8-0.5-18.8-5.1-25-12.7
+	C0.9,7.7,2.5,14.8,7.8,18.3c-1.9-0.1-3.8-0.6-5.5-1.5V17c0,5.7,4.1,10.7,9.7,11.8c-1.8,0.5-3.7,0.5-5.5,0.2
+	c1.6,4.9,6.1,8.3,11.3,8.4c-4.3,3.4-9.6,5.2-15,5.2c-1,0-1.9-0.1-2.9-0.2C5.5,46.1,12,48,18.5,48"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/uber-app-icon.svg b/go.dev/testdata/golden/images/logos/uber-app-icon.svg
new file mode 100644
index 0000000..ca116d2
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/uber-app-icon.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="34px" height="34px" viewBox="0 0 34 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 41 (35326) - http://www.bohemiancoding.com/sketch -->
+    <title>uber_rides_api_icon</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="uber_rides_api_icon">
+            <rect id="Rectangle-path" fill="#000000" x="0.5" y="0.5" width="33" height="33" rx="2.5"></rect>
+            <path d="M31,1 C32.1045695,1 33,1.8954305 33,3 L33,31 C33,32.1045695 32.1045695,33 31,33 L3,33 C1.8954305,33 1,32.1045695 1,31 L1,3 C1,1.8954305 1.8954305,1 3,1 L31,1 L31,1 Z M31,0 L3,0 C1.34314575,-4.4408921e-16 0,1.34314575 -2.22044605e-16,3 L-2.22044605e-16,31 C0,32.6568542 1.34314575,34 3,34 L31,34 C32.6568542,34 34,32.6568542 34,31 L34,3 C34,1.34314575 32.6568542,0 31,-2.22044605e-16 L31,-2.22044605e-16 L31,0 Z" id="Shape" fill="#FFFFFF"></path>
+            <path d="M17,7 C11.8643467,6.99993548 7.56356533,10.8900895 7.05,16 L14,16 L14,14.5 C14,14.2238576 14.2238576,14 14.5,14 L19.5,14 C19.7761424,14 20,14.2238576 20,14.5 L20,19.5 C20,19.7761424 19.7761424,20 19.5,20 L14.5,20 C14.2238576,20 14,19.7761424 14,19.5 L14,18 L7.05,18 C7.58928848,23.3658527 12.2862527,27.3375518 17.6671192,26.9777144 C23.0479857,26.6178769 27.1742887,22.0561349 26.9943035,16.6662543 C26.8143183,11.2763738 22.3928848,7.00006775 17,7 L17,7 Z" id="Shape" fill="#FFFFFF"></path>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/logos/uber.svg b/go.dev/testdata/golden/images/logos/uber.svg
new file mode 100644
index 0000000..4dfeea1
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/uber.svg
@@ -0,0 +1,23 @@
+
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 width="103.7px" height="48px" viewBox="0 0 103.7 48" style="enable-background:new 0 0 103.7 48;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#010202;}
+</style>
+<title>uber</title>
+<path class="st0" d="M6,31.7c0.4,1.1,1,2.1,1.8,3c0.8,0.8,1.7,1.5,2.8,1.9c1.1,0.4,2.3,0.7,3.5,0.7c1.2,0,2.3-0.2,3.4-0.7
+	c1-0.4,2-1.1,2.8-1.9c0.8-0.9,1.4-1.9,1.8-3c0.4-1.2,0.7-2.5,0.7-3.9V6H28v35.4h-5.3v-3.3c-1.2,1.2-2.6,2.2-4.2,2.9
+	c-1.6,0.7-3.4,1-5.2,1c-1.8,0-3.6-0.3-5.3-1c-1.6-0.6-3.1-1.6-4.3-2.8C2.6,37,1.6,35.5,1,33.8c-0.7-1.8-1-3.7-1-5.7V6h5.3v21.8
+	C5.3,29.2,5.5,30.5,6,31.7z"/>
+<path class="st0" d="M37.2,6v12.9c1.2-1.2,2.6-2.1,4.1-2.8c1.6-0.7,3.3-1,5-1c7.3-0.2,13.4,5.6,13.6,12.9c0,0.2,0,0.3,0,0.5
+	c0,1.8-0.3,3.6-1,5.2c-1.4,3.2-3.9,5.8-7.2,7.2C50,41.7,48.1,42,46.3,42c-1.7,0-3.5-0.3-5.1-1c-1.5-0.7-2.9-1.6-4.1-2.8v3.2h-5V6
+	H37.2z M37.7,32c0.4,1.1,1.1,2,1.9,2.8c0.8,0.8,1.8,1.5,2.8,1.9c1.1,0.5,2.3,0.7,3.5,0.7c2.3,0,4.6-1,6.2-2.6
+	c0.8-0.8,1.4-1.8,1.9-2.8c0.5-1.1,0.7-2.3,0.7-3.5c0-1.2-0.2-2.4-0.7-3.5c-0.4-1.1-1.1-2-1.9-2.9c-0.8-0.8-1.8-1.5-2.8-1.9
+	c-4.5-1.9-9.7,0.2-11.6,4.7c0,0,0,0,0,0c-0.5,1.1-0.7,2.3-0.7,3.5C37.1,29.7,37.3,30.9,37.7,32z"/>
+<path class="st0" d="M62.8,23.3c0.6-1.6,1.6-3,2.8-4.3c3.8-3.9,9.6-5.1,14.6-3c1.5,0.6,2.9,1.6,4.1,2.8c1.2,1.2,2.1,2.7,2.7,4.2
+	c0.7,1.7,1,3.5,1,5.3v1.7H66.8c0.3,2.1,1.4,3.9,3,5.3c1.6,1.4,3.6,2.1,5.6,2.1c2.9,0,5.7-1.4,7.4-3.8l3.7,2.7
+	C84,40,79.8,42.1,75.4,42c-1.8,0-3.7-0.3-5.4-1C63.2,38.2,59.9,30.3,62.8,23.3C62.8,23.4,62.8,23.4,62.8,23.3L62.8,23.3z M69.9,21.3
+	c-1.5,1.2-2.5,2.9-2.9,4.8h15.7c-0.4-1.9-1.4-3.5-2.8-4.8C77,18.9,72.8,18.9,69.9,21.3L69.9,21.3z"/>
+<path class="st0" d="M97.4,21.9c-1.1,1.3-1.7,3.1-1.6,4.8v14.7h-5.1V15.6h5v3.2c0.6-1,1.5-1.9,2.5-2.5c1.1-0.6,2.4-0.9,3.7-0.9h1.8
+	v4.8h-2.1C100,20.1,98.5,20.8,97.4,21.9z"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/vitess.png b/go.dev/testdata/golden/images/logos/vitess.png
new file mode 100644
index 0000000..7de16d2
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/vitess.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/logos/wildlife.svg b/go.dev/testdata/golden/images/logos/wildlife.svg
new file mode 100644
index 0000000..39d1870
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/wildlife.svg
@@ -0,0 +1,14 @@
+<svg
+  version="1.0"
+  xmlns="http://www.w3.org/2000/svg"
+  width="1600"
+  height="640"
+  viewBox="0 0 1200 480"
+>
+  <path
+    d="M11 9l94 109 113 131 20 24h76l-50 92-54 99-4 7h835l74-111 75-113-155-214-19-26H513C34 7 10 7 11 9zm262 86l27 35a777 777 0 00-18-69l42-1h42l26 35 27 35-17-68-1-2h66l15 76 15 77-48 1h-48l-24-29-25-28 11 55v2h-91l-46-55-67-77-19-22h107l26 35zm344 40l41 77c0 2-2 2-49 2h-48l-35-66-41-77-6-11h98l40 75zm111-19l30 56 41 1 40 1 5 8 11 20 6 12H684l-40-76-41-77 47-1h48l30 56zm226-55c23 2 41 8 55 17 15 10 33 34 44 57 9 18 11 24 11 37 0 11-1 12-3 17-5 9-18 18-32 21-12 4-26 4-90 4h-63l-36-67-41-77-5-10h75l85 1zM493 261a7487 7487 0 01-59 111l40 1h40l-11 20-10 20h-88l-88-1 74-139 7-14h48c44 0 47 0 47 2zm188 11l-41 77-34 64h-48l-49-1 41-77 40-76h98l-7 13zm211-12l-11 21-11 22h-86l-6 11-6 11 39 1h39l-11 20-10 20h-40l-39 1-13 23-12 23h-93l4-7 40-77 38-69a2836 2836 0 01178 0zm203 0l-10 19-10 19h-94l-5 9-5 9a814 814 0 0086 2l-10 19-9 18h-88l-5 9-5 10h49l48 1-10 19-11 19H830l4-7 37-70 37-70 4-7h92l91 1z"
+  />
+  <path
+    d="M907 100l20 37 20 37h9c15 0 19-3 17-11-2-6-24-48-29-53-2-3-6-6-10-8-5-2-7-3-16-3l-11 1z"
+  />
+</svg>
diff --git a/go.dev/testdata/golden/images/logos/youtube.svg b/go.dev/testdata/golden/images/logos/youtube.svg
new file mode 100644
index 0000000..aee9af3
--- /dev/null
+++ b/go.dev/testdata/golden/images/logos/youtube.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 111 26" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M34.1 3.826A4.39 4.39 0 0 0 31.011.738C28.304 0 17.407 0 17.407 0S6.51.022 3.804.76A4.39 4.39 0 0 0 .716 3.848C0 6.556 0 12.217 0 12.217s0 5.66.738 8.39a4.39 4.39 0 0 0 3.088 3.088c2.707.738 13.604.738 13.604.738s10.896 0 13.604-.738a4.39 4.39 0 0 0 3.088-3.088c.738-2.707.738-8.4.738-8.4s-.022-5.66-.76-8.4z" fill="red"></path><path d="M22.978 12.217L13.94 6.98v10.47z"></path><path d="M50.567 22.218c-.694-.47-1.186-1.186-1.477-2.17s-.425-2.282-.425-3.915v-2.215c0-1.633.157-2.976.492-3.96.336-1.007.85-1.723 1.566-2.17s1.633-.694 2.774-.694c1.12 0 2.036.224 2.707.694s1.186 1.186 1.5 2.17.47 2.305.47 3.938V16.1c0 1.633-.157 2.93-.47 3.916s-.806 1.7-1.5 2.17c-.694.448-1.633.694-2.797.694-1.208.022-2.148-.224-2.842-.67zm3.87-2.394c.2-.492.3-1.32.3-2.44V12.62c0-1.096-.1-1.902-.3-2.394-.2-.515-.537-.76-1.007-.76s-.783.246-.984.76-.3 1.298-.3 2.394v4.766c0 1.12.1 1.947.268 2.44s.515.738 1.007.738c.47 0 .806-.246 1.007-.738zm49.045-3.647v.783l.1 2.215c.067.492.18.85.358 1.074s.47.336.85.336c.515 0 .873-.2 1.052-.604.2-.403.3-1.074.313-2l2.976.18c.022.134.022.313.022.537 0 1.4-.38 2.46-1.163 3.155s-1.857 1.052-3.267 1.052c-1.7 0-2.886-.537-3.558-1.6s-1.03-2.707-1.03-4.922v-2.707c0-2.282.358-3.96 1.052-5.012.716-1.052 1.924-1.6 3.625-1.6 1.186 0 2.08.224 2.707.65s1.074 1.096 1.343 2.014.38 2.17.38 3.78v2.618h-5.75zm.447-6.444c-.18.224-.3.56-.358 1.052s-.1 1.23-.1 2.237v1.096h2.506v-1.096l-.1-2.237c-.067-.515-.18-.873-.358-1.074s-.447-.313-.805-.313c-.38.022-.65.134-.806.336zM42.2 15.886l-3.916-14.14h3.423l1.365 6.4.783 4.028h.1c.112-.806.38-2.126.783-4.005l1.4-6.42h3.423L45.6 15.863v6.78h-3.38v-6.757zm27.072-8.502v15.282h-2.685l-.3-1.88h-.067c-.738 1.4-1.835 2.126-3.3 2.126-1.007 0-1.768-.336-2.237-1.007-.492-.67-.716-1.7-.716-3.1V7.384h3.446v11.2c0 .67.067 1.163.224 1.454a.77.77 0 0 0 .738.425c.3 0 .582-.1.85-.27a1.73 1.73 0 0 0 .604-.694V7.384zm17.654 0v15.282H84.24l-.3-1.88h-.067c-.738 1.4-1.835 2.126-3.3 2.126-1.007 0-1.768-.336-2.238-1.007-.492-.67-.716-1.7-.716-3.1V7.384h3.446v11.2c0 .67.067 1.163.224 1.454a.77.77 0 0 0 .738.425c.3 0 .582-.1.85-.27a1.73 1.73 0 0 0 .604-.694V7.384zm-8.3-2.864h-3.423v18.146h-3.356V4.52h-3.423V1.745h10.18V4.52zm19.667 5.303c-.2-.962-.537-1.656-1.007-2.103-.47-.425-1.096-.65-1.924-.65a3.17 3.17 0 0 0-1.768.537c-.56.358-.962.828-1.275 1.4h-.022V.962h-3.3v21.68h2.842l.358-1.454h.067c.268.515.67.917 1.186 1.23a3.64 3.64 0 0 0 1.768.447c1.163 0 2.014-.537 2.573-1.6.537-1.074.828-2.752.828-5.012v-2.417c0-1.7-.112-3.043-.313-4.005zm-3.155 6.243c0 1.12-.045 2-.134 2.618s-.246 1.074-.47 1.342a1.08 1.08 0 0 1-.873.403 1.57 1.57 0 0 1-.783-.201c-.246-.134-.425-.336-.582-.604v-8.68c.112-.425.313-.76.604-1.03s.582-.403.917-.403c.358 0 .626.134.805.403.2.268.313.738.403 1.387.067.65.112 1.566.112 2.774z" fill="#282828"></path></g></symbol></svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/images/meetup.svg b/go.dev/testdata/golden/images/meetup.svg
new file mode 100644
index 0000000..98af291
--- /dev/null
+++ b/go.dev/testdata/golden/images/meetup.svg
@@ -0,0 +1,47 @@
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

+	 width="525px" height="500px" viewBox="0 0 525 500" enable-background="new 0 0 525 500" xml:space="preserve">

+<path fill="#F64060" d="M452.753,321.453c0.041,45.508-32.731,84.711-77.295,92.419c-5.611,0.963-11.277,1.533-16.971,1.479

+	c-1.92-0.021-2.674,0.747-3.283,2.506c-8.897,25.544-26.652,40.771-53.473,44.611c-17.743,2.538-33.844-2.22-47.958-13.313

+	c-1.966-1.546-3.168-1.572-5.218-0.107c-16.508,11.807-35.017,17.036-55.229,15.815c-39.441-2.381-72.627-32.526-78.835-71.398

+	c-0.427-2.687-0.881-5.394-0.922-8.102c-0.041-2.252-0.896-3.121-3.047-3.542c-11.941-2.328-22.777-7.246-32.337-14.729

+	c-17.594-13.775-28.15-31.761-30.607-54.009c-2.802-25.464,5.063-47.481,22.975-65.828c1.444-1.472,1.534-2.497,0.549-4.228

+	c-6.886-12.022-10.15-25.043-9.62-38.851c1.322-34.461,25.302-62.932,58.657-69.981c3.859-0.82,5.882-2.333,7.578-5.99

+	c16.452-35.445,44.076-57.002,82.409-64.112c26.909-4.994,52.294,0.353,75.85,14.208c1.98,1.168,3.638,1.262,5.781,0.638

+	c37.413-10.855,70.564-2.958,98.708,23.803c16.644,15.822,25.763,35.846,28.463,58.69c0.591,4.994,0.86,10.035,0.48,15.056

+	c-0.143,1.899,0.441,2.693,2.239,3.358c16.866,6.243,28.496,17.885,33.584,35.105c6.337,21.42,1.014,40.203-14.992,55.821

+	c-1.387,1.356-1.094,2.186-0.308,3.541C448.39,288.886,452.772,304.572,452.753,321.453z M285.814,314.146

+	c0.014,19.363,12.444,36.477,30.071,42.292c8.834,2.917,17.946,4.301,27.195,4.708c6.603,0.285,13.195-0.176,19.296-3.217

+	c4.797-2.395,7.057-6.351,6.84-11.622c-0.217-5.306-2.593-9.274-7.668-11.386c-1.764-0.733-3.555-1.33-5.428-1.655

+	c-5.598-0.999-11.223-1.84-16.793-2.944c-9.193-1.831-13.048-6.697-13.17-15.993c-0.107-8.223,2.124-15.979,4.654-23.652

+	c4.628-14.045,10.868-27.431,16.848-40.927c5.773-13.033,11.825-25.959,15.903-39.686c2.246-7.538,3.318-15.096,1.276-22.892

+	c-3.108-11.833-10.199-19.764-22.426-22.045c-11.194-2.083-22.336-2.32-32.459,4.356c-3.366,2.212-6.603,1.683-9.525-0.896

+	c-2.232-1.961-4.356-4.037-6.541-6.052c-10.326-9.533-23.978-10.001-35.064-1.295c-4.473,3.514-8.237,7.871-13.096,10.924

+	c-4.342,2.727-8.72,3.5-13.528,0.936c-4.58-2.443-9.322-4.593-14.052-6.737c-4.791-2.164-9.432-4.837-14.825-5.292

+	c-17.058-1.452-34.909,8.685-42.434,24.094c-3.339,6.819-6.065,13.903-8.65,21.033c-11.936,32.962-21.658,66.629-31.72,100.18

+	c-4.506,15.016,0.812,29.792,13.527,37.902c9.92,6.322,20.782,7.885,32.027,4.506c9.11-2.742,14.099-10.075,17.586-18.313

+	c11.588-27.329,22.024-55.122,33.07-82.668c3.04-7.58,5.983-15.192,9.208-22.69c3.256-7.571,12.612-10.15,18.162-5.129

+	c3.388,3.065,4.281,7.145,3.949,11.507c-0.365,4.662-2.171,8.962-3.867,13.244c-7.187,18.17-14.507,36.287-21.726,54.443

+	c-1.459,3.672-3.04,7.314-3.685,11.255c-1.105,6.767,1.574,12.765,7.109,15.152c5.647,2.437,11.509,2.844,17.363,0.719

+	c6.812-2.469,10.883-7.802,14.019-13.964c10.775-21.16,21.467-42.372,32.235-63.533c4.974-9.776,10.035-19.506,15.116-29.224

+	c1.888-3.602,4.1-7.015,7.627-9.254c3.184-2.015,6.615-2.165,9.879-0.332c3.185,1.784,3.398,5.042,3.264,8.258

+	c-0.073,1.729-0.557,3.419-1.222,5.027c-1.396,3.344-2.7,6.738-4.248,10.016c-8.956,18.841-18.048,37.609-26.924,56.491

+	C289.246,297.76,285.352,305.767,285.814,314.146z M411.438,453.001c0.021-12.498-10.455-22.948-23.056-22.982

+	c-12.912-0.047-23.387,10.286-23.443,23.104c-0.054,12.53,10.6,23.162,23.199,23.178

+	C400.915,476.314,411.418,465.812,411.438,453.001z M21.931,261.48c12.152,0.027,22.377-10.13,22.329-22.173

+	c-0.055-12.063-10.062-22.065-22.112-22.099C9.798,217.175-0.007,226.973,0,239.342C0.01,251.581,9.786,261.453,21.931,261.48z

+	 M294.038,13.766c-12.213-0.068-22.167,9.696-22.236,21.8c-0.074,12.091,9.845,22.025,21.997,22.038

+	c12.104,0.007,21.826-9.689,21.848-21.801C315.676,23.632,306.061,13.827,294.038,13.766z M473.854,150.79

+	c-0.054-10.036-8.61-18.571-18.686-18.639c-10.286-0.074-18.999,8.618-18.93,18.883c0.073,10.239,8.379,18.448,18.679,18.462

+	C465.528,169.517,473.914,161.226,473.854,150.79z M88.601,97.201c0,9.425,7.335,16.82,16.698,16.834

+	c9.484,0.013,16.841-7.422,16.807-16.983c-0.034-9.274-7.382-16.528-16.712-16.5C95.799,80.571,88.606,87.702,88.601,97.201z

+	 M264.007,485.922c0.081-7.85-6.378-14.315-14.317-14.343c-8.149-0.025-14.549,6.29-14.528,14.33

+	c0.021,7.931,6.388,14.214,14.394,14.214C257.555,500.13,263.938,493.86,264.007,485.922z M487.981,262.879

+	c-7.627-0.055-14.243,6.561-14.182,14.181c0.066,7.53,6.352,13.712,13.964,13.727c7.98,0.015,13.965-5.861,13.984-13.747

+	C501.769,269.236,495.641,262.933,487.981,262.879z M152.997-0.123c-6.724-0.027-11.914,5.109-11.914,11.8

+	c0,6.649,5.244,11.819,11.962,11.785c6.52-0.034,11.629-5.232,11.629-11.834C164.675,4.965,159.646-0.089,152.997-0.123z

+	 M514.591,199.506c-5.481-0.062-10.448,4.844-10.517,10.401c-0.074,5.747,4.709,10.53,10.544,10.544

+	c5.795,0.021,10.34-4.485,10.381-10.306C525.054,204.29,520.439,199.58,514.591,199.506z M99.538,406.504

+	c0.026-5.564-4.771-10.354-10.422-10.407c-5.728-0.049-10.437,4.77-10.396,10.632c0.047,5.727,4.695,10.251,10.484,10.211

+	C94.884,416.905,99.519,412.23,99.538,406.504z"/>

+</svg>

diff --git a/go.dev/testdata/golden/images/menu-24px-white.svg b/go.dev/testdata/golden/images/menu-24px-white.svg
new file mode 100644
index 0000000..b7e5807
--- /dev/null
+++ b/go.dev/testdata/golden/images/menu-24px-white.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" fill="#FFFFFF"/></svg>
diff --git a/go.dev/testdata/golden/images/menu-24px.svg b/go.dev/testdata/golden/images/menu-24px.svg
new file mode 100644
index 0000000..14f99cd
--- /dev/null
+++ b/go.dev/testdata/golden/images/menu-24px.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
diff --git a/go.dev/testdata/golden/images/quote.svg b/go.dev/testdata/golden/images/quote.svg
new file mode 100644
index 0000000..1b5a812
--- /dev/null
+++ b/go.dev/testdata/golden/images/quote.svg
@@ -0,0 +1,3 @@
+<svg width="44" height="29" viewBox="0 0 44 29" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path opacity="0.269973" d="M0 19.3333C0 24.6722 4.477 29 9.99996 29C15.5229 29 19.9999 24.6722 19.9999 19.3333C19.9999 14.0601 15.63 9.77577 10.2008 9.67175C12.7256 7.27832 16.1834 5.79982 19.9999 5.79982V0C8.95448 0 0 8.65603 0 19.3333ZM44 0C32.9546 0 24.0001 8.65603 24.0001 19.3333C24.0001 24.6722 28.4776 29 34 29C39.523 29 44 24.6722 44 19.3333C44 14.0601 39.6301 9.77577 34.2009 9.67175C36.7257 7.27832 40.184 5.79982 44 5.79982V0Z" fill="#007D9C"/>
+</svg>
diff --git a/go.dev/testdata/golden/images/sap-logo.png b/go.dev/testdata/golden/images/sap-logo.png
new file mode 100644
index 0000000..df5ce9a
--- /dev/null
+++ b/go.dev/testdata/golden/images/sap-logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/images/star-24px.svg b/go.dev/testdata/golden/images/star-24px.svg
new file mode 100644
index 0000000..ead6a26
--- /dev/null
+++ b/go.dev/testdata/golden/images/star-24px.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z" fill="#ffffff"/><path d="M0 0h24v24H0z" fill="none"/></svg>
diff --git a/go.dev/testdata/golden/images/walmart-logo.png b/go.dev/testdata/golden/images/walmart-logo.png
new file mode 100644
index 0000000..16358bd
--- /dev/null
+++ b/go.dev/testdata/golden/images/walmart-logo.png
Binary files differ
diff --git a/go.dev/testdata/golden/index.html b/go.dev/testdata/golden/index.html
new file mode 100644
index 0000000..f3473fe
--- /dev/null
+++ b/go.dev/testdata/golden/index.html
@@ -0,0 +1,1557 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<section class="Hero bluebg">
+  <div class="Hero-gridContainer">
+    <div class="Hero-blurb">
+      <h1>Build fast, reliable, and efficient software at scale</h1>
+      <ul class="Hero-blurbList">
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Go is an open source programming language supported by Google
+        </li>
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Easy to learn and get started with
+        </li>
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Built-in concurrency and a robust standard library
+        </li>
+        <li>
+          <svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
+            <path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
+          </svg>
+          Growing ecosystem of partners, communities, and tools
+        </li>
+      </ul>
+    </div>
+    <div class="Hero-actions">
+      <div
+        data-version=""
+        class="js-latestGoVersion">
+        <a class="Primary" href="/learn/">Get Started</a>
+        <a class="Secondary js-downloadBtn"
+          href="https://golang.org/dl"
+          target="_blank" rel="noopener"
+          >Download
+          <span
+            class="js-goVersion DownloadBtn-versionNum">
+          </span>
+        </a>
+      </div>
+      <div class="Hero-footnote">
+        <p>
+          Download packages for
+          <a class="js-downloadWin">Windows 64-bit</a>,
+          <a class="js-downloadMac">macOS</a>,
+          <a class="js-downloadLinux">Linux</a>, and
+          <a href="https://golang.org/dl/">more</a>
+        </p>
+        <p>
+          The <code>go</code> command by default downloads and authenticates
+          modules using the Go module mirror and Go checksum database run by
+          Google. <a href="https://golang.org/dl">Learn more.</a>
+        </p>
+      </div>
+    </div>
+    <div class="Hero-gopher">
+      <img class="Hero-gopherLadder" src="/images/gophers/ladder.svg" alt="Go Gopher climbing a ladder.">
+    </div>
+  </div>
+</section>
+<section class="WhoUses">
+
+  <div class="WhoUses-gridContainer">
+    <div class="WhoUses-header">
+      <h2 class="WhoUses-headerH2">Companies using Go</h2>
+      <p class="WhoUses-subheader">Organizations in every industry use Go to power their software and services
+        <a href="/solutions/" class="WhoUsesCaseStudyList-seeAll">
+        View all stories
+       </a>
+     </p>
+    </div>
+  <div class="WhoUsesCaseStudyList">
+    <ul class="WhoUsesCaseStudyList-gridContainer">
+
+
+        <li class="WhoUsesCaseStudyList-caseStudy">
+          <a href="/solutions/google/" class="WhoUsesCaseStudyList-caseStudyLink">
+            <img
+              loading="lazy"
+              height="48"
+              width="30%"
+              src="/images/logos/google.svg"
+              class="WhoUsesCaseStudyList-logo"
+              alt="">
+            <p>View case study</p>
+          </a>
+        </li>
+
+
+
+        <li class="WhoUsesCaseStudyList-caseStudy">
+          <a href="/solutions/paypal" class="WhoUsesCaseStudyList-caseStudyLink">
+            <img
+              loading="lazy"
+              height="48"
+              width="30%"
+              src="/images/logos/paypal.svg"
+              class="WhoUsesCaseStudyList-logo"
+              alt="">
+            <p>View case study</p>
+          </a>
+        </li>
+
+
+
+        <li class="WhoUsesCaseStudyList-caseStudy">
+          <a href="/solutions/americanexpress" class="WhoUsesCaseStudyList-caseStudyLink">
+            <img
+              loading="lazy"
+              height="48"
+              width="30%"
+              src="/images/logos/american-express.svg"
+              class="WhoUsesCaseStudyList-logo"
+              alt="">
+            <p>View case study</p>
+          </a>
+        </li>
+
+
+
+        <li class="WhoUsesCaseStudyList-caseStudy">
+          <a href="/solutions/mercadolibre" class="WhoUsesCaseStudyList-caseStudyLink">
+            <img
+              loading="lazy"
+              height="48"
+              width="30%"
+              src="/images/logos/mercado-libre.png"
+              class="WhoUsesCaseStudyList-logo"
+              alt="">
+            <p>View case study</p>
+          </a>
+        </li>
+
+
+
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/capital-one.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/cockroach.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/dropbox.png"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://blog.cloudflare.com/graceful-upgrades-in-go/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/cloudflare.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://entgo.io/blog/2019/10/03/introducing-ent/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/facebook.png"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://cloudblogs.microsoft.com/opensource/2018/02/21/go-lang-brian-ketelsen-explains-fast-growth/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/microsoft.png"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://medium.com/tech-at-wildlife-studios/pitaya-wildlifes-golang-go-af57865f7a11" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/wildlife.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/netflix.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://technology.riotgames.com/news/leveraging-golang-game-development-and-operations" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/riotgames.png"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://www.zdnet.com/article/salesforce-why-we-ditched-python-for-googles-go-language-in-einstein-analytics/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/salesforce.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://tech.target.com/infrastructure/2018/06/18/Recommending-GoLang-at-Target.html" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/target.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/twitch.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://blog.twitter.com/engineering/en_us/a/2015/handling-five-billion-sessions-a-day-in-real-time.html" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/twitter.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+
+
+          <li class="WhoUsesCaseStudyList-caseStudy">
+
+            <a href="https://eng.uber.com/aresdb/" target="_blank" rel="noopener"
+              class="WhoUsesCaseStudyList-caseStudyLink">
+              <img
+                loading="lazy"
+                height="48"
+                width="30%"
+                src="/images/logos/uber.svg"
+                class="WhoUsesCaseStudyList-logo"
+                alt="">
+            </a>
+          </li>
+
+
+
+    </ul>
+  </div>
+</section>
+<section class="TestimonialsGo">
+  <div class="GoCarousel">
+    <div class="GoCarousel-controlsContainer">
+      <div class="GoCarousel-wrapper">
+        <ul class="js-testimonialsGoQuotes TestimonialsGo-quotes">
+
+            <li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide0">
+              <div class="TestimonialsGo-quoteSingleItem">
+                <div class="TestimonialsGo-quoteSection">
+                  <p class="TestimonialsGo-quote">“At the time, no single team member knew Go, but
+<strong>within a month, everyone was writing in Go</strong> and we were
+building out the endpoints. It was the flexibility, how easy it was to use,
+and the really cool concept behind Go (how Go handles native concurrency,
+garbage collection, and of course safety+speed.) that helped engage us
+during the build. Also, who can beat that cute mascot!”</p>
+                  <div class="TestimonialsGo-author">— Jaime Enrique Garcia Lopez,
+                    <span class="NoWrapSpan">Senior Software Development Manager</span>
+                    <span class="NoWrapSpan"> at Capital One</span>
+                  </div>
+                </div>
+              </div>
+            </li>
+
+            <li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide1">
+              <div class="TestimonialsGo-quoteSingleItem">
+                <div class="TestimonialsGo-quoteSection">
+                  <p class="TestimonialsGo-quote">"<strong>A small language that compiles fast makes for a happy developer.</strong>
+The Go language is small, compiles really fast, and as a result it lets your
+mind focus on the actual problem and less on the tool you are using to solve
+it. Code, test, debug cycles are so quick that you forget you are not
+working with an interpreted language. Looking at our code, you see
+<strong>less boilerplate and more business logic.</strong>"</p>
+                  <div class="TestimonialsGo-author">— Clayton Coleman,
+                    <span class="NoWrapSpan">Lead Engineer, Open Shift</span>
+                    <span class="NoWrapSpan"> at RedHat</span>
+                  </div>
+                </div>
+              </div>
+            </li>
+
+            <li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide2">
+              <div class="TestimonialsGo-quoteSingleItem">
+                <div class="TestimonialsGo-quoteSection">
+                  <p class="TestimonialsGo-quote">“<strong>Go has excellent characteristics for scalability and services
+written using it typically have very small memory footprints.</strong>
+Because code is compiled into a single static binary, services can also be
+containerised with ease, making it much simpler to build and deploy. These
+attributes make <strong>Go an ideal choice for companies building
+microservices</strong>, as you can easily deploy into a highly available and
+scalable environment such as Kubernetes.”</p>
+                  <div class="TestimonialsGo-author">— Matt Boyle,
+                    <span class="NoWrapSpan">Lead Software Engineer</span>
+                    <span class="NoWrapSpan"> at Curve</span>
+                  </div>
+                </div>
+              </div>
+            </li>
+
+            <li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide3">
+              <div class="TestimonialsGo-quoteSingleItem">
+                <div class="TestimonialsGo-quoteSection">
+                  <p class="TestimonialsGo-quote">"In our tightly managed environments where we run Go code,
+<strong>we have seen a CPU reduction of approximately 10%</strong>
+with cleaner and maintainable code."</p>
+                  <div class="TestimonialsGo-author">— Bala Natarajan,
+                    <span class="NoWrapSpan">Sr. Director of Engineering, Developer Experience</span>
+                    <span class="NoWrapSpan"> at PayPal</span>
+                  </div>
+                </div>
+              </div>
+            </li>
+
+            <li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide4">
+              <div class="TestimonialsGo-quoteSingleItem">
+                <div class="TestimonialsGo-quoteSection">
+                  <p class="TestimonialsGo-quote">"Tooling has always been a problem with our legacy code base... but we have
+ found that Go has excellent tooling, plus built-in testing, benchmarking,
+ and profiling frameworks. It is easy to write efficient and resilient
+ applications. <strong>After working on Go, most of our developers don't want
+ to go back to other languages.</strong>"</p>
+                  <div class="TestimonialsGo-author">— Benjamin Cane,
+                    <span class="NoWrapSpan">Vice President and Principal Engineer</span>
+                    <span class="NoWrapSpan"> at American Express</span>
+                  </div>
+                </div>
+              </div>
+            </li>
+
+            <li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide5">
+              <div class="TestimonialsGo-quoteSingleItem">
+                <div class="TestimonialsGo-quoteSection">
+                  <p class="TestimonialsGo-quote">"...when a programming language is designed for exactly the environment most
+ of us use right now—scalable, cloud-based servers that are optimized for
+  performance—a lot can go right."</p>
+                  <div class="TestimonialsGo-author">— John Biggs and Ben Popper,
+                    <span class="NoWrapSpan"></span>
+                    <span class="NoWrapSpan"> at Stack Overflow</span>
+                  </div>
+                </div>
+              </div>
+            </li>
+
+        </ul>
+      </div>
+    <button class="js-testimonialsPrev GoCarousel-controlPrev" hidden>
+      <i class="GoCarousel-icon material-icons">navigate_before</i>
+    </button>
+    <button class="js-testimonialsNext GoCarousel-controlNext">
+      <i class="GoCarousel-icon material-icons">navigate_next</i>
+    </button>
+  </div>
+  </div>
+</section>
+
+<section class="WhyGo">
+  <div class="WhyGo-gridContainer">
+    <div class="WhyGo-header">
+      <h2 class="WhyGo-headerH2">What’s possible with Go</h2>
+      <h4 class="WhyGo-headerH4">
+        Use Go for a variety of software development purposes
+      </h4>
+    </div>
+    <ul class="WhyGo-reasons">
+
+        <li class="WhyGo-reason">
+          <div class="WhyGo-reasonDetails">
+            <div class="WhyGo-reasonIcon" role="presentation">
+              <img src="/images/icons/sphere.svg" alt="Sphere">
+            </div>
+            <div class="WhyGo-reasonText">
+              <h3 class="WhyGo-reasonTitle">Cloud &amp; Network Services</h3>
+              <p>
+                With a strong ecosystem of tools and APIs on major cloud providers, it is easier than ever to build services with Go.
+              </p>
+            </div>
+          </div>
+          <div class="WhyGo-reasonFooter">
+            <div class="WhyGo-reasonPackages">
+              <div class="WhyGo-reasonPackagesHeader">
+                <img src="/images/icons/package.svg" alt="Packages.">
+                Popular Packages:
+              </div>
+              <ul class="WhyGo-reasonPackagesList">
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://cloud.google.com/go/home" target="_blank" rel="noopener">
+                      cloud.google.com/go
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://aws.amazon.com/sdk-for-go/" target="_blank" rel="noopener">
+                      aws/client
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/Azure/azure-sdk-for-go" target="_blank" rel="noopener">
+                      Azure/azure-sdk-for-go
+                    </a>
+                  </li>
+
+              </ul>
+            </div>
+            <div class="WhyGo-reasonLearnMoreLink">
+              <a href="/solutions/cloud/">Learn More <i class="material-icons WhyGo-forwardArrowIcon">arrow_forward</i></a>
+            </div>
+          </div>
+        </li>
+
+        <li class="WhyGo-reason">
+          <div class="WhyGo-reasonDetails">
+            <div class="WhyGo-reasonIcon" role="presentation">
+              <img src="/images/icons/command-folder.svg" alt="Command Line">
+            </div>
+            <div class="WhyGo-reasonText">
+              <h3 class="WhyGo-reasonTitle">Command-line Interfaces</h3>
+              <p>
+                With popular open source packages and a robust standard library, use Go to create fast and elegant CLIs.
+              </p>
+            </div>
+          </div>
+          <div class="WhyGo-reasonFooter">
+            <div class="WhyGo-reasonPackages">
+              <div class="WhyGo-reasonPackagesHeader">
+                <img src="/images/icons/package.svg" alt="Packages.">
+                Popular Packages:
+              </div>
+              <ul class="WhyGo-reasonPackagesList">
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/spf13/cobra" target="_blank" rel="noopener">
+                      spf13/cobra
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/spf13/viper" target="_blank" rel="noopener">
+                      spf13/viper
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/urfave/cli" target="_blank" rel="noopener">
+                      urfave/cli
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/go-delve/delve" target="_blank" rel="noopener">
+                      delve
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/chzyer/readline" target="_blank" rel="noopener">
+                      chzyer/readline
+                    </a>
+                  </li>
+
+              </ul>
+            </div>
+            <div class="WhyGo-reasonLearnMoreLink">
+              <a href="/solutions/clis/">Learn More <i class="material-icons WhyGo-forwardArrowIcon">arrow_forward</i></a>
+            </div>
+          </div>
+        </li>
+
+        <li class="WhyGo-reason">
+          <div class="WhyGo-reasonDetails">
+            <div class="WhyGo-reasonIcon" role="presentation">
+              <img src="/images/icons/code.svg" alt="Code">
+            </div>
+            <div class="WhyGo-reasonText">
+              <h3 class="WhyGo-reasonTitle">Web Development</h3>
+              <p>
+                With enhanced memory performance and support for several IDEs, Go powers fast and scalable web applications.
+              </p>
+            </div>
+          </div>
+          <div class="WhyGo-reasonFooter">
+            <div class="WhyGo-reasonPackages">
+              <div class="WhyGo-reasonPackagesHeader">
+                <img src="/images/icons/package.svg" alt="Packages.">
+                Popular Packages:
+              </div>
+              <ul class="WhyGo-reasonPackagesList">
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://golang.org/pkg/net/http/" target="_blank" rel="noopener">
+                      net/http
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://golang.org/pkg/html/template/" target="_blank" rel="noopener">
+                      html/template
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/flosch/pongo2" target="_blank" rel="noopener">
+                      flosch/pongo2
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://golang.org/pkg/database/sql/" target="_blank" rel="noopener">
+                      database/sql
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/olivere/elastic" target="_blank" rel="noopener">
+                      olivere/elastic
+                    </a>
+                  </li>
+
+              </ul>
+            </div>
+            <div class="WhyGo-reasonLearnMoreLink">
+              <a href="/solutions/webdev/">Learn More <i class="material-icons WhyGo-forwardArrowIcon">arrow_forward</i></a>
+            </div>
+          </div>
+        </li>
+
+        <li class="WhyGo-reason">
+          <div class="WhyGo-reasonDetails">
+            <div class="WhyGo-reasonIcon" role="presentation">
+              <img src="/images/icons/gear.svg" alt="Sphere">
+            </div>
+            <div class="WhyGo-reasonText">
+              <h3 class="WhyGo-reasonTitle">DevOps &amp; Site Reliability</h3>
+              <p>
+                With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE.
+              </p>
+            </div>
+          </div>
+          <div class="WhyGo-reasonFooter">
+            <div class="WhyGo-reasonPackages">
+              <div class="WhyGo-reasonPackagesHeader">
+                <img src="/images/icons/package.svg" alt="Packages.">
+                Popular Packages:
+              </div>
+              <ul class="WhyGo-reasonPackagesList">
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/opentracing/opentracing-go" target="_blank" rel="noopener">
+                      opentracing/opentracing-go
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/istio/istio" target="_blank" rel="noopener">
+                      istio/istio
+                    </a>
+                  </li>
+
+                  <li class="WhyGo-reasonPackage">
+                    <a href="https://github.com/urfave/cli" target="_blank" rel="noopener">
+                      urfave/cli
+                    </a>
+                  </li>
+
+              </ul>
+            </div>
+            <div class="WhyGo-reasonLearnMoreLink">
+              <a href="/solutions/devops/">Learn More <i class="material-icons WhyGo-forwardArrowIcon">arrow_forward</i></a>
+            </div>
+          </div>
+        </li>
+
+
+        <li class="WhyGo-reason">
+          <div class="WhyGo-reasonShowMore">
+            <div class="WhyGo-reasonShowMoreImgWrapper">
+              <img
+                class="WhyGo-reasonShowMoreImg"
+                loading="lazy"
+                height="148"
+                width="229"
+                src="/images/gophers/biplane.svg"
+                alt="Go Gopher is skateboarding.">
+            </div>
+            <div class="WhyGo-reasonShowMoreLink">
+              <a href="/solutions/#use-cases">More use cases <i
+              class="material-icons
+              WhyGo-forwardArrowIcon">arrow_forward</i></a>
+            </div>
+          </div>
+        </li>
+
+    </ul>
+  </div>
+</section>
+<section class="LearnGo">
+  <div class="GoCarousel" id="LearnGo-carousel">
+    <div class="GoCarousel-controlsContainer">
+      <div class="GoCarousel-eventsWrapper">
+        <ul class="js-goCarouselEventsSlides GoCarousel-eventsSlides">
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide0">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/c/d/0/7/thumb_452692487.jpeg"
+                    alt="Utah Golang User Group (Reserve Mike Campbell) group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/utahgophers/events/fnpgxrybcpbfb">Utah Golang User Group (Reserve Mike Campbell)</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Nov 3, 2020 | Lehi, UT USA</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/utahgophers/events/fnpgxrybcpbfb">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide1">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/2/8/1/thumb_453660641.jpeg"
+                    alt="Book Club &gt; Get Programming With Go group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/EUG-Go/events/vjdnrrybcnbkb">Book Club &gt; Get Programming With Go</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 7, 2020 | Eugene, OR USA</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/EUG-Go/events/vjdnrrybcnbkb">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide2">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/6/6/9/3/thumb_452906259.jpeg"
+                    alt="Women Who Go Book club - chapter 2.1: The Parser part 2 group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Women-Who-Go-Berlin/events/273575858">Women Who Go Book club - chapter 2.1: The Parser part 2</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 7, 2020 | Berlin,  Germany</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Women-Who-Go-Berlin/events/273575858">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide3">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="/images/meetup.svg"
+                    alt="meetup logo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/meetup-group-fuSlbVYy/events/273628929">Go and Web Assembly</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 7, 2020 | Jacksonville, FL USA</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/meetup-group-fuSlbVYy/events/273628929">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide4">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/9/7/c/4/thumb_441638852.jpeg"
+                    alt="Orlando Go Monthly Meetup (Online!)  - Go &amp; Web Assembly group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/OrlanGo/events/273460434">Orlando Go Monthly Meetup (Online!)  - Go &amp; Web Assembly</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 7, 2020 | Orlando, FL USA</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/OrlanGo/events/273460434">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide5">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/a/6/8/8/thumb_355422632.jpeg"
+                    alt="October Go Virtual Meetup ft. Bill Kennedy on Go Generics group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Go-Users-Group-Atlanta/events/273303769">October Go Virtual Meetup ft. Bill Kennedy on Go Generics</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 8, 2020 | Atlanta, GA USA</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Go-Users-Group-Atlanta/events/273303769">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide6">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/9/8/b/1/thumb_465459089.jpeg"
+                    alt="[online] October Golang meetup group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/golang-users-berlin/events/271795652">[online] October Golang meetup</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 14, 2020 | Berlin,  Germany</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/golang-users-berlin/events/271795652">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide7">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/a/4/b/e/thumb_450342174.jpeg"
+                    alt="Eastside Go Coffee group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/golang/events/rksdvrybcnbsb">Eastside Go Coffee</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 14, 2020 | Seattle, WA USA</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/golang/events/rksdvrybcnbsb">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide8">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="/images/meetup.svg"
+                    alt="meetup logo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Belfast-Gophers/events/273346208">Oto: Pace’s lightweight JSON/HTTP RPC thing</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 15, 2020 | Belfast,  United Kingdom</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Belfast-Gophers/events/273346208">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide9">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="/images/meetup.svg"
+                    alt="meetup logo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Golang-Guadalajara/events/273759040">Golang Guadalajara Meetup - Octubre 2020</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 15, 2020 | Guadalajara,  Mexico</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Golang-Guadalajara/events/273759040">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide10">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="/images/meetup.svg"
+                    alt="meetup logo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Leipzig-Golang/events/268785569">Leipzig Golang Meetup #13</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 16, 2020 | Leipzig,  Germany</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Leipzig-Golang/events/268785569">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide11">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/c/e/4/5/thumb_473932805.jpeg"
+                    alt="Golang Gurgaon Meetup group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Gurgaon-Go-Meetup/events/szcfmrybcnbwb">Golang Gurgaon Meetup</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 17, 2020 | Gurgaon,  India</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Gurgaon-Go-Meetup/events/szcfmrybcnbwb">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide12">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/3/3/e/0/thumb_459373280.jpeg"
+                    alt="Go Language Usergroup Graz group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Graz-Open-Source-Meetup/events/fxlkwrybcnbzb">Go Language Usergroup Graz</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 19, 2020 | Graz,  Austria</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Graz-Open-Source-Meetup/events/fxlkwrybcnbzb">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide13">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="/images/meetup.svg"
+                    alt="meetup logo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Golang-Dorset/events/qfdjvrybcnbzb">Golang Dorset Monthly Meetup</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 19, 2020 | Bournemouth,  United Kingdom</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Golang-Dorset/events/qfdjvrybcnbzb">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+            <li
+            class="GoCarousel-eventGroup"
+            id="event_slide14">
+              <div class="GoCarousel-eventThumbnail">
+
+                  <img
+                    loading="lazy"
+                    src="https://secure.meetupstatic.com/photos/event/7/f/7/thumb_433982039.jpeg"
+                    alt="Golang Reston Monthly Meetup group photo">
+
+              </div>
+              <div class="GoCarousel-eventBody">
+                <div class="GoCarousel-eventText">
+                  <div class="GoCarousel-eventHeader">Upcoming Events</div>
+                  <h4 class="GoCarousel-eventName">
+                    <a href="https://www.meetup.com/Golang-Reston/events/cmkwtrybcnbcc">Golang Reston Monthly Meetup</a>
+                  </h4>
+                  <div class="GoCarousel-eventDate">
+                    <p>Oct 21, 2020 | Reston, VA USA</p>
+                  </div>
+                  <p class="GoCarousel-viewMore"><a href="https://www.meetup.com/Golang-Reston/events/cmkwtrybcnbcc">Learn more</a></p>
+                </div>
+              </div>
+            </li>
+
+        </ul>
+      </div>
+      <button class="js-eventsCarouselPrev GoCarousel-controlPrev" hidden>
+        <i class="GoCarousel-icon material-icons">navigate_before</i>
+      </button>
+      <button class="js-eventsCarouselNext GoCarousel-controlNext">
+        <i class="GoCarousel-icon material-icons">navigate_next</i>
+      </button>
+    </div>
+  </div>
+</section>
+<section class="GettingStartedGo">
+  <div class="GettingStartedGo-gridContainer">
+    <div class="GettingStartedGo-header">
+      <h2 class="GettingStartedGo-headerH2">Get started with Go</h2>
+      <p class="GettingStartedGo-headerDesc">
+        Explore a wealth of learning resources, including guided journeys, courses, books, and more.
+      </p>
+      <div class="GettingStartedGo-ctas">
+        <a class="GettingStartedGo-primaryCta" href="/learn/">Get Started</a>
+        <a href="https://golang.org/dl" target="_blank" rel="noopener">Download Go</a>
+      </div>
+    </div>
+    <div class="GettingStartedGo-resourcesSection">
+      <ul class="GettingStartedGo-resourcesList">
+        <li class="GettingStartedGo-resourcesHeader">
+          Resources to start on your own
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#guided-learning-journeys" class="GettingStartedGo-resourceItemTitle">
+            Guided learning journeys
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Step-by-step tutorials to get your feet wet
+          </div>
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#online-learning" class="GettingStartedGo-resourceItemTitle">
+            Online learning
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Browse resources and learn at your own pace
+          </div>
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#featured-books" class="GettingStartedGo-resourceItemTitle">
+            Featured books
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Read through structured chapters and theories
+          </div>
+        </li>
+        <li class="GettingStartedGo-resourceItem">
+          <a href="/learn#self-paced-labs" class="GettingStartedGo-resourceItemTitle">
+            Cloud Self-paced labs
+          </a>
+          <div class="GettingStartedGo-resourceItemDescription">
+            Jump in to deploying Go apps on GCP
+          </div>
+        </li>
+      </ul>
+      <ul class="GettingStartedGo-resourcesList">
+        <li class="GettingStartedGo-resourcesHeader">
+          In-Person Trainings
+        </li>
+
+          <li class="GettingStartedGo-resourceItem">
+            <a href="https://www.ardanlabs.com/" class="GettingStartedGo-resourceItemTitle">
+              Ardan Labs
+            </a>
+            <div class="GettingStartedGo-resourceItemDescription">
+              Offering customized on-site live training classes.
+            </div>
+          </li>
+
+          <li class="GettingStartedGo-resourceItem">
+            <a href="https://www.gopherguides.com/" class="GettingStartedGo-resourceItemTitle">
+              Gopher Guides
+            </a>
+            <div class="GettingStartedGo-resourceItemDescription">
+              Customized In-person, remote, and online training classes. Training for Developers by Developers.
+            </div>
+          </li>
+
+          <li class="GettingStartedGo-resourceItem">
+            <a href="https://bosssauce.it/services/training" class="GettingStartedGo-resourceItemTitle">
+              Boss Sauce Creative
+            </a>
+            <div class="GettingStartedGo-resourceItemDescription">
+              Personalized or track-based Go training for teams.
+            </div>
+          </li>
+
+          <li class="GettingStartedGo-resourceItem">
+            <a href="https://github.com/shijuvar/gokit/tree/master/training" class="GettingStartedGo-resourceItemTitle">
+              Shiju Varghese
+            </a>
+            <div class="GettingStartedGo-resourceItemDescription">
+              On-site classroom training on Go and consulting on distributed systems architectures, in India.
+            </div>
+          </li>
+
+      </ul>
+    </div>
+  </div>
+</section>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/index.xml b/go.dev/testdata/golden/index.xml
new file mode 100644
index 0000000..b113f79
--- /dev/null
+++ b/go.dev/testdata/golden/index.xml
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>go.dev</title>
+    <link>https://go.dev/</link>
+    <description>Recent content on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    <lastBuildDate>Mon, 01 Jun 2020 00:00:00 +0000</lastBuildDate>
+    
+	<atom:link href="https://go.dev/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+    <item>
+      <title>PayPal Taps Go to Modernize and Scale</title>
+      <link>https://go.dev/solutions/paypal/</link>
+      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/paypal/</guid>
+      <description>Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.  &amp;mdash; Bala Natarajan ,&amp;nbsp; Sr. Director of Engineering,&amp;nbsp;Developer Experience &amp;nbsp;at PayPal   New code infrastructure built on Go PayPal was created to democratize financial services and empower people and businesses to join and thrive in the global economy.</description>
+    </item>
+    
+    <item>
+      <title>American Express Uses Go for Payments &amp; Rewards</title>
+      <link>https://go.dev/solutions/americanexpress/</link>
+      <pubDate>Thu, 19 Dec 2019 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/americanexpress/</guid>
+      <description>What makes Go different from other programming languages is cognitive load. You can do more with less code, which makes it easier to reason about and understand the code that you do end up writing.
+The majority of Go code ends up looking quite similar, so, even if you’re working with a completely new codebase, you can get up and running pretty quickly.
+ &amp;mdash; Glen Balliet ,&amp;nbsp; Engineering Director of loyalty platforms &amp;nbsp;at American Express   Go Improves Microservices and Speeds Productivity Founded in 1850, American Express is a globally integrated payments company offering charge and credit card products, merchant acquisition and processing services, network services, and travel-related services.</description>
+    </item>
+    
+    <item>
+      <title>MercadoLibre Grows with Go</title>
+      <link>https://go.dev/solutions/mercadolibre/</link>
+      <pubDate>Sun, 10 Nov 2019 16:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/mercadolibre/</guid>
+      <description>I think that the tour of Go is by far the best introduction to a language that I’ve seen, It’s really simple and it gives you a fair overview of probably 80 percent of the language. When we want to get developers to learn Go, and to get to production fast, we tell them to start with the tour of Go.  &amp;mdash; Eric Kohan ,&amp;nbsp; Software Engineering Manager &amp;nbsp;at MercadoLibre   Go helps integrated ecosystem attract developers and scale eCommerce MercadoLibre, Inc.</description>
+    </item>
+    
+    <item>
+      <title>Copyright</title>
+      <link>https://go.dev/copyright/</link>
+      <pubDate>Tue, 05 Nov 2019 15:50:08 -0500</pubDate>
+      
+      <guid>https://go.dev/copyright/</guid>
+      <description>Except as noted, the contents of this site are licensed under the Creative Commons Attribution 3.0 License, and code is licensed under a BSD license.</description>
+    </item>
+    
+    <item>
+      <title>Terms of Service</title>
+      <link>https://go.dev/tos/</link>
+      <pubDate>Tue, 05 Nov 2019 15:47:16 -0500</pubDate>
+      
+      <guid>https://go.dev/tos/</guid>
+      <description>The Go website (the &amp;ldquo;Website&amp;rdquo;) is hosted by Google. By using and/or visiting the Website, you consent to be bound by Google&amp;rsquo;s general Terms of Service and Google&amp;rsquo;s general Privacy Policy.</description>
+    </item>
+    
+    <item>
+      <title>Go for Cloud &amp; Network Services</title>
+      <link>https://go.dev/solutions/cloud/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/cloud/</guid>
+      <description>Overview Go helps enterprises build and scale cloud computing systems As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “explicitly geared to develop highly reliable concurrent applications.”
+ Go makes it very easy to scale as a company.</description>
+    </item>
+    
+    <item>
+      <title>Command-line Interfaces (CLIs)</title>
+      <link>https://go.dev/solutions/clis/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/clis/</guid>
+      <description>Overview CLI developers prefer Go for portability, performance, and ease of creation Command line interfaces (CLIs), unlike graphical user interfaces (GUIs), are text-only. Cloud and infrastructure applications are primarily CLI-based due to their easy automation and remote capabilities.
+Key benefits Leverage fast compile times to build programs that start quickly and run on any system Developers of CLIs find Go to be ideal for designing their applications. Go compiles very quickly into a single binary, works across platforms with a consistent style, and brings a strong development community.</description>
+    </item>
+    
+    <item>
+      <title>Go for Web Development</title>
+      <link>https://go.dev/solutions/webdev/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/webdev/</guid>
+      <description>Overview Go delivers speed, security, and developer-friendly tools for Web Applications Go is designed to enable developers to rapidly develop scalable and secure web applications. Go ships with an easy to use, secure and performant web server and includes it own web templating library. Go has excellent support for all of the latest technologies from HTTP/2, to databases like MySQL, MongoDB and ElasticSearch, to the latest encryption standards including TLS 1.</description>
+    </item>
+    
+    <item>
+      <title>Development Operations &amp; Site reliability Engineering</title>
+      <link>https://go.dev/solutions/devops/</link>
+      <pubDate>Thu, 03 Oct 2019 17:16:43 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/devops/</guid>
+      <description>Overview Go helps enterprises automate and scale Development Operations (DevOps) teams help engineering organizations automate tasks and improve their continuous integration and continuous delivery and deployment (CI/CD) process. DevOps can topple developmental silos and implement tooling and automation to enhance software development, deployment, and support.
+Site Reliability Engineering (SRE) was born at Google to make the company’s “large-scale sites more reliable, efficient, and scalable,”writes Silvia Fressard, an independent DevOps consultant.</description>
+    </item>
+    
+    <item>
+      <title>About</title>
+      <link>https://go.dev/about/</link>
+      <pubDate>Tue, 25 Jun 2019 17:51:23 -0400</pubDate>
+      
+      <guid>https://go.dev/about/</guid>
+      <description>Go.dev is a companion website to golang.org. Golang.org is the home of the open source project and distribution, while go.dev is the hub for Go users providing centralized and curated resources from across the Go ecosystem.
+Go.dev provides:
+ Centralized information for Go packages and modules published on index.golang.org. Essential learning resources Critical use cases &amp;amp; case studies  Go.dev is currently in MVP status. We&amp;rsquo;re proud of what we&amp;rsquo;ve built and excited to share it with the community.</description>
+    </item>
+    
+    <item>
+      <title>Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go</title>
+      <link>https://go.dev/solutions/google/sitereliability/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/sitereliability/</guid>
+      <description>Google runs a small number of very large services. Those services are powered by a global infrastructure covering everything a developer needs: storage systems, load balancers, network, logging, monitoring, and much more. Nevertheless, it is not a static system—it cannot be. Architecture evolves, new products and ideas are created, new versions must be rolled out, configs pushed, database schema updated, and more. We end up deploying changes to our systems dozens of times per second.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/grail/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/grail/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/capital-one/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/capital-one/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Chrome Content Optimization Service Runs on Go</title>
+      <link>https://go.dev/solutions/google/chrome/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/chrome/</guid>
+      <description>When the product Chrome comes to mind, you probably think solely of the user-installed browser. But behind the scenes, Chrome has an extensive fleet of backends. Among these is the Chrome Optimization Guide service. This service forms an important basis for Chrome&amp;rsquo;s user experience strategy, operating in the critical path for users, and is implemented in Go.
+The Chrome Optimization Guide service is designed to bring the power of Google to Chrome by providing hints to the installed browser about what optimizations may be performed on a page load, as well as when they can be applied most effectively.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/cockroachlabs/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/cockroachlabs/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Dropbox - Open sourcing our Go libraries</title>
+      <link>https://go.dev/solutions/dropbox/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/dropbox/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/cloudflare/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/cloudflare/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/armut/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/armut/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/curve/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/curve/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/facebook/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/facebook/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>How Google&#39;s Core Data Solutions Team Uses Go</title>
+      <link>https://go.dev/solutions/google/coredata/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/coredata/</guid>
+      <description>Google&amp;rsquo;s mission is “to organize the world&amp;rsquo;s information and make it universally accessible and useful.” One of the teams responsible for organizing that information is Google’s Core Data Solutions team. The team, among other things, maintains services to index web pages across the globe. These web indexing services help support products like Google Search by keeping search results updated and comprehensive, and they’re written in Go.
+In 2015, to keep up with Google’s scale, our team needed to rewrite our indexing stack from a single monolithic binary written in C++ to multiple components in a microservices architecture.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/microsoft/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/microsoft/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>How the Firebase Hosting Team Scaled With Go</title>
+      <link>https://go.dev/solutions/google/firebase/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/firebase/</guid>
+      <description>The Firebase Hosting team provides static web hosting services for Google Cloud customers. They provide a static web host that sits behind a global content delivery network, and offer users tools that are easy to use. The team also develops features that range from uploading site files to registering domains to tracking usage.
+Before joining Google, Firebase Hosting’s tech stack was written in Node.js. The team started to use Go when they needed to interoperate with several other Google services.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/wildlifestudios/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/wildlifestudios/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/netflix/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/netflix/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/riotgames/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/riotgames/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/salesforce/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/salesforce/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/target/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/target/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/twitch/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/twitch/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Twitter - 5 billion sessions a day in realtime</title>
+      <link>https://go.dev/solutions/twitter/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/twitter/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Uber - GPU-power analytics engine in Go</title>
+      <link>https://go.dev/solutions/uber/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/uber/</guid>
+      <description></description>
+    </item>
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/js/carousels.js b/go.dev/testdata/golden/js/carousels.js
new file mode 100644
index 0000000..c2d5d9f
--- /dev/null
+++ b/go.dev/testdata/golden/js/carousels.js
@@ -0,0 +1,183 @@
+// 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.
+
+/**
+ * Handles Carousel logic. Hides right/left buttons if user is at the end of the
+ * list of slides. Transitions the movement with CSS, and blocks slide changes
+ * during the transitions with `allowShift`.
+ */
+(() => {
+  'use strict';
+
+  /** TODO: refactor to slide container using transformX instead of left,
+   * in order to leverage GPU rendering
+   */
+
+  function initCarousel(container, prev, next, breakpoints) {
+    const slides = Array.from(container.children);
+    let posInitial;
+    const slidesCount = container.children.length;
+    let distanceToMove = Math.floor(
+      container.children[0].getBoundingClientRect().width
+    );
+    let index = 0;
+    let allowShift = true;
+    let groupCountAdjustment = getGroupCountAdjustment();
+
+    adjustTabbableSlides(breakpoints);
+
+    // Click events.
+    prev.addEventListener('click', () => {
+      shiftSlide(-1);
+    });
+    next.addEventListener('click', () => {
+      shiftSlide(1);
+    });
+
+    // Transition events.
+    container.addEventListener('transitionend', handleTransitionEnd);
+
+    window.addEventListener(
+      'resize',
+      debounce(() => {
+        // the next 3 lines reinitializes the slide container node
+        container.style.display = 'none';
+        container.offsetHeight;
+        container.style.display = 'flex';
+
+        groupCountAdjustment = getGroupCountAdjustment();
+        distanceToMove = Math.floor(
+          container.children[0].getBoundingClientRect().width
+        );
+        container.style.left = -(distanceToMove * index) + 'px';
+      })
+    );
+
+    function shiftSlide(dir, action) {
+      container.classList.add('shifting');
+      if (allowShift) {
+        if (!action) {
+          posInitial = container.offsetLeft;
+        }
+        if (dir === 1) {
+          prev.removeAttribute('hidden');
+          container.style.left = posInitial - distanceToMove + 'px';
+          index++;
+        } else if (dir === -1) {
+          next.removeAttribute('hidden');
+          container.style.left = posInitial + distanceToMove + 'px';
+          index--;
+        } else {
+          container.style.left = posInitial + 'px';
+        }
+        if (index === 0) {
+          prev.setAttribute('hidden', true);
+        } else if (index === slidesCount - 1 - groupCountAdjustment) {
+          next.setAttribute('hidden', true);
+        }
+      }
+      allowShift = false;
+      adjustTabbableSlides(breakpoints);
+    }
+
+    /**
+     * Only allow visible slides to be tabbable
+     */
+    function adjustTabbableSlides(breakpoints) {
+      let count = 1;
+      if (breakpoints) {
+        for (const bp of breakpoints) {
+          if (window.innerWidth > bp.px) {
+            count = bp.groupCount;
+          }
+        }
+      }
+      slides.forEach((slide, i) => {
+        const links = slide.querySelectorAll('a');
+        if (i >= index && i < index + count) {
+          links.forEach(link => (link.tabIndex = 0));
+        } else {
+          links.forEach(link => (link.tabIndex = -1));
+        }
+      });
+    }
+
+    function handleTransitionEnd() {
+      container.classList.remove('shifting');
+      allowShift = true;
+    }
+
+    function getGroupCountAdjustment() {
+      let groupCountAdjustment = 0;
+
+      if (breakpoints) {
+        for (const bp of breakpoints) {
+          if (window.innerWidth > bp.px) {
+            groupCountAdjustment = bp.groupCount - 1;
+          }
+        }
+      }
+      return groupCountAdjustment;
+    }
+  }
+
+  // Build quotes carousel.
+  const quotesSliderContainer = document.querySelector(
+    '.js-testimonialsGoQuotes'
+  );
+  const quotesPrev = document.querySelector('.js-testimonialsPrev');
+  const quotesNext = document.querySelector('.js-testimonialsNext');
+  // Build events carousel.
+  const eventsSliderContainer = document.querySelector(
+    '.js-goCarouselEventsSlides'
+  );
+  const eventsPrev = document.querySelector('.js-eventsCarouselPrev');
+  const eventsNext = document.querySelector('.js-eventsCarouselNext');
+
+  // Build Solutions hero carousel.
+  const solutionsCarouselSliderContainer = document.querySelector(
+    '.js-solutionsHeroCarouselSlides'
+  );
+  const solutionsCarouselPrev = document.querySelector(
+    '.js-solutionsHeroCarouselPrev'
+  );
+  const solutionsCarouselNext = document.querySelector(
+    '.js-solutionsHeroCarouselNext'
+  );
+
+  if (quotesSliderContainer) {
+    initCarousel(quotesSliderContainer, quotesPrev, quotesNext);
+  }
+  if (eventsSliderContainer) {
+    const breakpoints = [
+      {px: 768, groupCount: 2},
+      {px: 1068, groupCount: 3},
+    ];
+    initCarousel(eventsSliderContainer, eventsPrev, eventsNext, breakpoints);
+  }
+  if (solutionsCarouselSliderContainer) {
+    initCarousel(
+      solutionsCarouselSliderContainer,
+      solutionsCarouselPrev,
+      solutionsCarouselNext
+    );
+  }
+})();
+
+/**
+ * Debounce functions for better performance
+ * (c) 2018 Chris Ferdinandi, MIT License, https://gomakethings.com
+ * @param  {Function} fn The function to debounce
+ */
+function debounce(fn) {
+  let timeout;
+  return (...args) => {
+    if (timeout) {
+      window.cancelAnimationFrame(timeout);
+    }
+    timeout = window.requestAnimationFrame(function () {
+      fn(args);
+    });
+  };
+}
diff --git a/go.dev/testdata/golden/js/hats.js b/go.dev/testdata/golden/js/hats.js
new file mode 100644
index 0000000..d4ac824
--- /dev/null
+++ b/go.dev/testdata/golden/js/hats.js
@@ -0,0 +1,74 @@
+function requestHaTs(cookieName, triggerId, bucketSample, promptSample) {
+  var inBucket;
+
+  var cookies = decodeURIComponent(document.cookie).split(';');
+
+  for (let i = 0; i < cookies.length; i++) {
+    var c = cookies[i];
+
+    while (c.charAt(0) == ' ') c = c.substring(1);
+
+    if (c.indexOf(cookieName + '=') == 0)
+      inBucket = c.substring((cookieName + '=').length, c.length);
+  }
+
+  if (typeof inBucket === 'undefined') {
+    inBucket = String(Math.random() < bucketSample);
+    document.cookie =
+      cookieName + '=' + inBucket + '; path=/; max-age=2592000;';
+  }
+
+  if (inBucket === 'true') {
+    var shouldPrompt = Math.random() < promptSample;
+    if (shouldPrompt) {
+      document.cookie = cookieName + '=false ; path=/; max-age=2592000;';
+
+      var tag = document.createElement('script');
+      tag.src =
+        'https://www.gstatic.com/feedback/js/help/prod/service/lazy.min.js';
+      tag.type = 'text/javascript';
+      document.head.appendChild(tag);
+
+      tag.onload = function () {
+        var helpApi = window.help.service.Lazy.create(0, {
+          apiKey: 'AIzaSyDfBPfajByU2G6RAjUf5sjkMSSLNTj7MMc',
+          locale: 'en-US',
+        });
+
+        helpApi.requestSurvey({
+          triggerId: triggerId,
+          callback: function (requestSurveyCallbackParam) {
+            if (!requestSurveyCallbackParam.surveyData) {
+              return;
+            }
+            helpApi.presentSurvey({
+              surveyData: requestSurveyCallbackParam.surveyData,
+              colorScheme: 1, // light
+              customZIndex: 10000,
+            });
+          },
+        });
+      };
+    }
+  }
+}
+
+(function () {
+  // HaTS - go.dev
+  requestHaTs('HaTS_BKT', 'RLVVv5Lf10njVvnD1rP0QUpmtosS', 0.4, 0.5);
+
+  // All download links on the go.dev homepage may trigger a survey.
+  [
+    document.querySelector('.js-downloadBtn'),
+    document.querySelector('.js-downloadWin'),
+    document.querySelector('.js-downloadMac'),
+    document.querySelector('.js-downloadLinux'),
+  ].forEach(function (el) {
+    if (el) {
+      el.addEventListener('click', () => {
+        // HaTS - Core Go distribution
+        requestHaTs('HaTS_BKT_DIST', 'dz6fkRxyz0njVvnD1rP0QxCXzhSX', 0.1, 1);
+      });
+    }
+  });
+})();
diff --git a/go.dev/testdata/golden/js/misc.js b/go.dev/testdata/golden/js/misc.js
new file mode 100644
index 0000000..c4455c8
--- /dev/null
+++ b/go.dev/testdata/golden/js/misc.js
@@ -0,0 +1,187 @@
+// 'More projects' button on use case pages
+(() => {
+  const button = document.querySelector('.js-moreProjectsBtn');
+  if (!button) return;
+  const hiddenProjects = document.querySelectorAll('.js-featuredUsersRow[hidden]');
+  button.addEventListener('click', () => {
+    button.setAttribute('hidden', true);
+    hiddenProjects.forEach(project => {
+      project.removeAttribute('hidden');
+    });
+  });
+})();
+
+/* Header tags generated with markdown - inner span needed for correct scroll
+  position */
+(() => {
+  const headingHashes = Array.from(document.querySelectorAll('h2[id]'));
+  headingHashes.forEach(h2 => {
+    const text = h2.textContent;
+    const id = h2.id;
+    h2.id = id + '-h2';
+    h2.textContent = '';
+    const span = document.createElement('span');
+    span.textContent = text;
+    span.id = id;
+    h2.appendChild(span);
+  });
+})();
+
+// Use case pages section navigation
+(() => {
+  const stickyNav = document.querySelector('.js-useCaseStickyNav');
+  if (stickyNav) {
+    const linkData = {
+      'overview': 'Overview',
+      'key-benefits': 'Key Benefits',
+      'use-case': 'Use Case',
+      'featured-users': 'Featured Users',
+      'get-started': 'Get Started',
+    };
+    const container = document.querySelector('.js-useCaseSubnav');
+    const subNavAnchorLinks = document.querySelector('.js-useCaseSubnavLinks');
+    const siteHeader = document.querySelector('.js-siteHeader');
+    const header = document.querySelector('.js-useCaseSubnavHeader');
+    const icon = document.querySelector('.js-useCaseSubnavMenuIcon');
+    const menu = document.querySelector('.js-useCaseSubnavMenu');
+    const contentBody = document.querySelector('.js-useCaseContentBody');
+    const headerHeightPx = 56;
+    const sectionHeadings = Array.from(
+      document.querySelectorAll('.sectionHeading')
+    ).map(h => h.firstChild);
+    let distanceFromTop =
+      window.pageYOffset +
+      contentBody.getBoundingClientRect().top -
+      headerHeightPx;
+    if (!header || !menu) return;
+    container.addEventListener('click', handleClick);
+    container.addEventListener('keydown', handleKeydown);
+    changeScrollPosition();
+
+    function handleClick(event) {
+      if (event.target === header) {
+        toggleMenu();
+      } else {
+        closeMenu();
+      }
+    }
+
+    function handleKeydown(event) {
+      if (event.key === 'Enter') {
+        closeMenu();
+      } else {
+        openMenu();
+      }
+    }
+
+    function openMenu() {
+      menu.classList.add('UseCaseSubNav-menu--open');
+      icon.classList.add('UseCaseSubNav-menuIcon--open');
+    }
+
+    function closeMenu() {
+      menu.classList.remove('UseCaseSubNav-menu--open');
+      icon.classList.remove('UseCaseSubNav-menuIcon--open');
+    }
+
+    function toggleMenu() {
+      menu.classList.toggle('UseCaseSubNav-menu--open');
+      icon.classList.toggle('UseCaseSubNav-menuIcon--open');
+    }
+
+    sectionHeadings.forEach(heading => {
+      let a = document.createElement('a');
+      a.classList.add('UseCase-anchorLink', 'anchor-link');
+      a.href = `${window.location.pathname}#${heading.id}`;
+      a.textContent = linkData[heading.id];
+      stickyNav.appendChild(a);
+      a = a.cloneNode();
+      a.textContent = linkData[heading.id];
+      subNavAnchorLinks.appendChild(a);
+    });
+
+    // Selected section styles
+    const anchorLinks = document.querySelectorAll('.anchor-link');
+    anchorLinks.forEach(link => {
+      link.addEventListener('click', () => {
+        document
+          .querySelectorAll('.anchor-link')
+          .forEach(el => el.classList.remove('selected'));
+        link.classList.add('selected');
+      });
+    });
+
+    window.addEventListener('scroll', () => {
+      // delay in case the user clicked the anchor link and we are autoscrolling
+      setTimeout(setSelectedAnchor, 500);
+    });
+
+    function setSelectedAnchor() {
+      for (heading of sectionHeadings) {
+        const {offsetTop} = heading;
+        if (offsetTop > window.scrollY) {
+          anchorLinks.forEach(link => {
+            const anchorId = link.href.slice(link.href.indexOf('#') + 1);
+            if (anchorId === heading.id) {
+              link.classList.add('selected');
+            } else {
+              link.classList.remove('selected');
+            }
+          });
+          break;
+        }
+      }
+    }
+
+    /* sticky nav logic -- uses content for y position because reloading page
+    when not scrolled to the top creates bug if using current y position of
+    sticky nav */
+    window.addEventListener('scroll', setStickyNav);
+
+    window.addEventListener('resize', () => {
+      distanceFromTop =
+        window.pageYOffset +
+        contentBody.getBoundingClientRect().top -
+        headerHeightPx;
+
+      changeScrollPosition()
+    });
+
+    /**
+     * Changes scroll position according to the size of the header and menu
+     * Also changes according to the user's browser
+     */
+    function changeScrollPosition() {
+      const SUPPORTS_SCROLL_BEHAVIOR = document.body.style.scrollBehavior !== undefined;
+      const WINDOW_WIDTH_BREAKPOINT_PX = 923;
+      let scrollPosition = headerHeightPx;
+
+      if (SUPPORTS_SCROLL_BEHAVIOR) {
+        if (window.innerWidth < WINDOW_WIDTH_BREAKPOINT_PX) {
+          scrollPosition += header.clientHeight;
+        }
+      } else {
+        if (window.innerWidth >= WINDOW_WIDTH_BREAKPOINT_PX) {
+          scrollPosition = siteHeader.clientHeight
+        } else {
+          scrollPosition = siteHeader.clientHeight + header.clientHeight;
+        }
+      }
+
+      sectionHeadings.forEach((sectionHeading) => {
+        sectionHeading.setAttribute('style', `
+          margin-bottom: -${scrollPosition}px;
+          padding-top: ${scrollPosition}px;
+        `)
+      });
+    }
+
+    function setStickyNav() {
+      if (window.scrollY > distanceFromTop) {
+        stickyNav.classList.add('UseCaseSubNav-anchorLinks--sticky');
+      } else {
+        stickyNav.classList.remove('UseCaseSubNav-anchorLinks--sticky');
+      }
+    }
+  }
+})();
diff --git a/go.dev/testdata/golden/js/searchBox.js b/go.dev/testdata/golden/js/searchBox.js
new file mode 100644
index 0000000..b6e64b6
--- /dev/null
+++ b/go.dev/testdata/golden/js/searchBox.js
@@ -0,0 +1,64 @@
+(() => {
+  'use strict';
+  const BREAKPOINT = 512;
+  const logo = document.querySelector('.js-headerLogo');
+  const form = document.querySelector('.js-searchForm');
+  const button = document.querySelector('.js-searchFormSubmit');
+  const input = form.querySelector('input');
+
+  renderForm();
+
+  window.addEventListener('resize', renderForm);
+
+  function renderForm() {
+    if (window.innerWidth > BREAKPOINT) {
+      logo.classList.remove('Header-logo--hidden');
+      form.classList.remove('SearchForm--open');
+      input.removeEventListener('focus', showSearchBox);
+      input.removeEventListener('keypress', handleKeypress);
+      input.removeEventListener('focusout', hideSearchBox);
+    } else {
+      button.addEventListener('click', handleSearchClick);
+      input.addEventListener('focus', showSearchBox);
+      input.addEventListener('keypress', handleKeypress);
+      input.addEventListener('focusout', hideSearchBox);
+    }
+  }
+
+  /**
+   * Submits form if Enter key is pressed
+   * @param {KeyboardEvent} e
+   */
+  function handleKeypress(e) {
+    if (e.key === 'Enter') form.submit();
+  }
+
+  /**
+   * Shows the search box when it receives focus (expands it from
+   * just the spyglass if we're on mobile).
+   */
+  function showSearchBox() {
+    logo.classList.add('Header-logo--hidden');
+    form.classList.add('SearchForm--open');
+  }
+
+  /**
+   * Hides the search box (shrinks to just the spyglass icon).
+   */
+  function hideSearchBox() {
+    logo.classList.remove('Header-logo--hidden');
+    form.classList.remove('SearchForm--open');
+  }
+
+  /**
+   * Expands the searchbox so input is visible and gives
+   * the input focus.
+   * @param {MouseEvent} e
+   */
+  function handleSearchClick(e) {
+    e.preventDefault();
+
+    showSearchBox();
+    input.focus();
+  }
+})();
diff --git a/go.dev/testdata/golden/js/site.js b/go.dev/testdata/golden/js/site.js
new file mode 100644
index 0000000..23e4480
--- /dev/null
+++ b/go.dev/testdata/golden/js/site.js
@@ -0,0 +1,183 @@
+// 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.
+
+/**
+ * A bit of navigation related code for handling dismissible elements.
+ */
+(() => {
+  'use strict';
+
+  function registerHeaderListeners() {
+    const header = document.querySelector('.js-header');
+    const menuButtons = document.querySelectorAll('.js-headerMenuButton');
+    menuButtons.forEach(button => {
+      button.addEventListener('click', e => {
+        e.preventDefault();
+        header.classList.toggle('is-active');
+        button.setAttribute(
+          'aria-expanded',
+          header.classList.contains('is-active')
+        );
+      });
+    });
+
+    const scrim = document.querySelector('.js-scrim');
+    scrim.addEventListener('click', e => {
+      e.preventDefault();
+      header.classList.remove('is-active');
+      menuButtons.forEach(button => {
+        button.setAttribute(
+          'aria-expanded',
+          header.classList.contains('is-active')
+        );
+      });
+    });
+  }
+
+  function registerSolutionsTabs() {
+    // Handle tab navigation on Solutions page.
+    const tabList = document.querySelector('.js-solutionsTabs');
+
+    if (tabList) {
+      const tabs = tabList.querySelectorAll('[role="tab"]');
+      let tabFocus = getTabFocus();
+
+      changeTabs({ target: tabs[tabFocus] })
+
+      tabs.forEach(tab => {
+        tab.addEventListener('click', changeTabs);
+      });
+
+      // Enable arrow navigation between tabs in the tab list
+      tabList.addEventListener('keydown', e => {
+        // Move right
+        if (e.keyCode === 39 || e.keyCode === 37) {
+          tabs[tabFocus].setAttribute('tabindex', -1);
+          if (e.keyCode === 39) {
+            tabFocus++;
+            // If we're at the end, go to the start
+            if (tabFocus >= tabs.length) {
+              tabFocus = 0;
+            }
+            // Move left
+          } else if (e.keyCode === 37) {
+            tabFocus--;
+            // If we're at the start, move to the end
+            if (tabFocus < 0) {
+              tabFocus = tabs.length - 1;
+            }
+          }
+          tabs[tabFocus].setAttribute('tabindex', 0);
+          tabs[tabFocus].focus();
+          setTabFocus(tabs[tabFocus].id);
+        }
+      });
+
+      function getTabFocus() {
+        const hash = window.location.hash;
+
+        switch (hash) {
+          case '#use-cases':
+            return 1;
+          case '#case-studies':
+          default:
+            return 0;
+        }
+      }
+
+      function setTabFocus(id) {
+        switch (id) {
+          case 'btn-tech':
+            tabFocus = 1;
+            window.location.hash = '#use-cases';
+            break;
+          case 'btn-companies':
+          default:
+            window.location.hash = '#case-studies';
+            tabFocus = 0;
+        }
+      }
+
+      function changeTabs(e) {
+        const target = e.target;
+        const parent = target.parentNode;
+        const grandparent = parent.parentNode;
+
+        // Remove all current selected tabs
+        parent
+          .querySelectorAll('[aria-selected="true"]')
+          .forEach(t => t.setAttribute('aria-selected', false));
+
+        // Set this tab as selected
+        target.setAttribute('aria-selected', true);
+        setTabFocus(target.id)
+
+        // Hide all tab panels
+        grandparent
+          .querySelectorAll('[role="tabpanel"]')
+          .forEach(panel => panel.setAttribute('hidden', true));
+
+        // Show the selected panel
+        grandparent.parentNode
+          .querySelector(`#${target.getAttribute('aria-controls')}`)
+          .removeAttribute('hidden');
+      }
+    }
+  }
+
+  /**
+   * Attempts to detect user's operating system and sets the download
+   * links accordingly
+   */
+  async function setDownloadLinks() {
+    const isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0;
+    const versionElement = document.querySelector('.js-latestGoVersion');
+    if (versionElement) {
+      const downloadBtn = document.querySelector('.js-downloadBtn');
+      const goVersionEl = document.querySelector('.js-goVersion');
+      const anchorTagWindows = document.querySelector('.js-downloadWin');
+      const anchorTagMac = document.querySelector('.js-downloadMac');
+      const anchorTagLinux = document.querySelector('.js-downloadLinux');
+      const version = await getLatestVersion();
+
+      const macDownloadUrl = `https://dl.google.com/go/${version}.darwin-amd64.pkg`;
+      const windowsDownloadUrl = `https://dl.google.com/go/${version}.windows-amd64.msi`;
+      const linuxDownloadUrl = `https://dl.google.com/go/${version}.linux-amd64.tar.gz`;
+      goVersionEl.textContent = `\u00a0(${version.replace('go', '')})`;
+
+      anchorTagWindows.href = windowsDownloadUrl;
+      anchorTagMac.href = macDownloadUrl;
+      anchorTagLinux.href = linuxDownloadUrl;
+      downloadBtn.href = isMac ? macDownloadUrl : windowsDownloadUrl;
+    }
+  }
+
+  /**
+   * Retrieves list of Go versions & returns the latest
+   */
+  async function getLatestVersion() {
+    let version = 'go1.15'; // fallback version if fetch fails
+    try {
+      const versionData = await (
+        await fetch('https://golang.org/dl/?mode=json')
+      ).json();
+      if (!versionData.length) {
+        return version;
+      }
+      versionData.sort((v1, v2) => {
+        return v2.version - v1.version;
+      });
+      version = versionData[0].version;
+    } catch (err) {
+      console.error(err);
+    }
+    return version;
+  }
+
+  window.addEventListener('DOMContentLoaded', () => {
+    registerHeaderListeners();
+    registerSolutionsTabs();
+    setDownloadLinks();
+  });
+})();
diff --git a/go.dev/testdata/golden/learn/index.html b/go.dev/testdata/golden/learn/index.html
new file mode 100644
index 0000000..95caf5d
--- /dev/null
+++ b/go.dev/testdata/golden/learn/index.html
@@ -0,0 +1,1265 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Getting Started - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem  Header-menuItem--active">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<section class="Learn-hero">
+  <div class="Container">
+    <div class="Learn-heroInner">
+      <div class="Learn-heroContent">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/learn/">
+
+            Getting Started
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+        <h1>Install the latest version of Go</h1>
+        <p>
+          Install the latest version of Go. For instructions to download and install
+          the Go compilers, tools, and libraries,
+          <a href="https://golang.org/doc/install" target="_blank" rel="noopener">
+            view the install documentation.
+          </a>
+        </p>
+        <div class="Learn-heroAction">
+          <div
+            data-version=""
+            class="js-latestGoVersion"
+          >
+            <a
+              class="js-downloadBtn"
+              href="https://golang.org/dl"
+              target="_blank"
+              rel="noopener"
+            >
+              Download
+              <span class="js-goVersion"></span>
+            </a>
+          </div>
+        </div>
+        <p>
+          Download packages for
+          <a class="js-downloadWin">Windows 64-bit</a>,
+          <a class="js-downloadMac">macOS</a>,
+          <a class="js-downloadLinux">Linux</a>, and
+          <a href="https://golang.org/dl/">more</a>.
+        </p>
+      </div>
+      <div class="Learn-heroGopher">
+        <img src="/images/gophers/motorcycle.svg" alt="Go Gopher riding a motorcycle">
+      </div>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-quickstarts Learn-cardList">
+
+          <li class="Learn-quickstart Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Documentation</div>
+      <p class="Card-contentBody">Everything there is to know about Go. Get started on a new project or brush up for your existing Go code.</p>
+      <div class="Card-contentCta">
+        <a href="https://golang.org/doc/install" target="_blank">
+          <span>View documentation</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-quickstart Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Tour of Go</div>
+      <p class="Card-contentBody">An interactive introduction to Go in three sections. Each section concludes with a few exercises so you can practice what you've learned.</p>
+      <div class="Card-contentCta">
+        <a href="https://tour.golang.org" target="_blank">
+          <span>Take a tour</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-quickstart Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Playground</div>
+      <p class="Card-contentBody">The Playground allows anyone with a web browser to write Go code that we immediately compile, link, and run on our servers.</p>
+      <div class="Card-contentCta">
+        <a href="https://play.golang.org" target="_blank">
+          <span>Go to playground</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-learningResources">
+  <h2>Learning Resources</h2>
+</section>
+
+<section id="guided-learning-journeys" class="Learn-guided">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Guided learning journeys</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/web-dev.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Web Dev</div>
+      <p class="Card-contentBody">Go Web Examples provides easy to understand code snippets on how to use Go for web development.</p>
+      <div class="Card-contentCta">
+        <a href="https://gowebexamples.com" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/clis.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">CLIs</div>
+      <p class="Card-contentBody">This workshop will walk you through building a CLI app with Go, introducing you to basic Go principles and CLI frameworks along the way.</p>
+      <div class="Card-contentCta">
+        <a href="https://spf13.com/presentation/building-an-awesome-cli-app-in-go-oscon/" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/edureka.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">New to coding?</div>
+      <p class="Card-contentBody">Get started with this introductory course covering basic programming principles and Go fundamentals.</p>
+      <div class="Card-contentCta">
+        <a href="https://www.youtube.com/watch?v=Q0sKAMal4WQ" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/gobyexample.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Go by example</div>
+      <p class="Card-contentBody"><i>Go by Example</i> is a hands-on introduction to Go using annotated example programs. It’s a great starting point to use when tackling any Go project.</p>
+      <div class="Card-contentCta">
+        <a href="https://gobyexample.com/" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="online-learning" class="Learn-online">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Online learning</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/codecademy.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Codecademy</div>
+      <p class="Card-contentBody">This course covers setting up a Go environment, the fundamentals of Go, and will walk you through building a few sample projects.</p>
+      <div class="Card-contentCta">
+        <a href="https://www.codecademy.com/learn/learn-go?utm_source=customer_io&amp;utm_campaign=oct_21_golaunch&amp;utm_medium=email&amp;utm_content=header_img" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/exercism.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Exercism.io</div>
+      <p class="Card-contentBody">Tackle community-sourced Go challenges in this interactive course, working with other participants and mentors along the way.</p>
+      <div class="Card-contentCta">
+        <a href="https://exercism.io/tracks/go" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/codelabs.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Google Developers Codelabs</div>
+      <p class="Card-contentBody">Get started with a free codelab that walks you through using Go to build and publish a Google Cloud Function.</p>
+      <div class="Card-contentCta">
+        <a href="https://codelabs.developers.google.com/codelabs/cloud-functions-go-http/#0" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <div class="Card-inner">
+
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('/images/learn/gophercises.png')"
+    ></div>
+
+    <div class="Card-content">
+      <div class="Card-contentTitle">Gophercises</div>
+      <p class="Card-contentBody">Build your confidence in using Go with this course, where you’ll build roughly twenty different Go applications.</p>
+      <div class="Card-contentCta">
+        <a href="https://gophercises.com/" target="_blank">
+          <span>Learn more</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+
+          </li>
+
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="self-paced-labs" class="Learn-selfPaced">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Google Cloud Self-Paced Labs</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+
+          <li class="Learn-card">
+            <div class="Card">
+  <a href="https://google.qwiklabs.com/focuses/10532?parent=catalog" target="_blank" rel="noopener">
+    <div class="Card-inner">
+
+      <div
+        class="Card-thumbnail"
+        style="background-image: url('/images/learn/qwiklabs.png')"
+      ></div>
+
+      <div class="Card-content">
+        <div class="Card-contentTitle">Deploy Go Apps on Google Cloud Serverless Platforms</div>
+        <div class="Card-selfPacedFooter">
+          <div class="Card-selfPacedCredits">
+            <span>1h 10m</span> •
+            <span>5 Credits</span>
+          </div>
+          <div class="Card-selfPacedRating">
+            <div class="Card-starRating" style="width: 4.25rem"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <a href="https://google.qwiklabs.com/focuses/10531?parent=catalog" target="_blank" rel="noopener">
+    <div class="Card-inner">
+
+      <div
+        class="Card-thumbnail"
+        style="background-image: url('/images/learn/qwiklabs.png')"
+      ></div>
+
+      <div class="Card-content">
+        <div class="Card-contentTitle">Use Go Code to Work with Google Cloud Data Sources</div>
+        <div class="Card-selfPacedFooter">
+          <div class="Card-selfPacedCredits">
+            <span>1h 10m</span> •
+            <span>5 Credits</span>
+          </div>
+          <div class="Card-selfPacedRating">
+            <div class="Card-starRating" style="width: 4.25rem"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <a href="https://google.qwiklabs.com/focuses/2754?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&amp;parent=catalog&amp;search_id=5407947" target="_blank" rel="noopener">
+    <div class="Card-inner">
+
+      <div
+        class="Card-thumbnail"
+        style="background-image: url('/images/learn/qwiklabs.png')"
+      ></div>
+
+      <div class="Card-content">
+        <div class="Card-contentTitle">Getting Started with Go on App Engine</div>
+        <div class="Card-selfPacedFooter">
+          <div class="Card-selfPacedCredits">
+            <span>20m</span> •
+            <span>1 Credits</span>
+          </div>
+          <div class="Card-selfPacedRating">
+            <div class="Card-starRating" style="width: 4.15rem"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+          </li>
+
+          <li class="Learn-card">
+            <div class="Card">
+  <a href="https://google.qwiklabs.com/focuses/5171?catalog_rank=%7B%22rank%22%3A1%2C%22num_filters%22%3A0%2C%22has_search%22%3Atrue%7D&amp;parent=catalog&amp;search_id=5407953" target="_blank" rel="noopener">
+    <div class="Card-inner">
+
+      <div
+        class="Card-thumbnail"
+        style="background-image: url('/images/learn/qwiklabs.png')"
+      ></div>
+
+      <div class="Card-content">
+        <div class="Card-contentTitle">HTTP Google Cloud Functions in Go</div>
+        <div class="Card-selfPacedFooter">
+          <div class="Card-selfPacedCredits">
+            <span>40m</span> •
+            <span>5 Credits</span>
+          </div>
+          <div class="Card-selfPacedRating">
+            <div class="Card-starRating" style="width: 4.5rem"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+          </li>
+
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="featured-books" class="Learn-books">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Featured books</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList Learn-bookList">
+
+          <li class="Learn-card Learn-book">
+            <div class="Book">
+  <a href="https://www.gopl.io/" target="_blank" rel="noopener">
+    <div class="Book-inner">
+
+      <div class="Book-thumbnail">
+        <img alt="The Go Programming Language thumbnail." src="/images/learn/go-programming-language-book.png" />
+      </div>
+
+      <div class="Book-content">
+        <p class="Book-title">The Go Programming Language</p>
+        <p class="Book-description">Alan A. A. Donovan, Brian W. Kernighan</p>
+        <div class="Book-cta">
+          <span>View</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+
+          <li class="Learn-card Learn-book">
+            <div class="Book">
+  <a href="https://www.manning.com/books/get-programming-with-go" target="_blank" rel="noopener">
+    <div class="Book-inner">
+
+      <div class="Book-thumbnail">
+        <img alt="Get Programming with Go thumbnail." src="/images/learn/get-programming-with-go.jpeg" />
+      </div>
+
+      <div class="Book-content">
+        <p class="Book-title">Get Programming with Go</p>
+        <p class="Book-description">Nathan Youngman, Roger Peppé</p>
+        <div class="Book-cta">
+          <span>Manning.com</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+
+          <li class="Learn-card Learn-book">
+            <div class="Book">
+  <a href="https://github.com/matryer/goblueprints" target="_blank" rel="noopener">
+    <div class="Book-inner">
+
+      <div class="Book-thumbnail">
+        <img alt="Go Programming Blueprints thumbnail." src="/images/learn/go-programming-blueprints.png" />
+      </div>
+
+      <div class="Book-content">
+        <p class="Book-title">Go Programming Blueprints</p>
+        <p class="Book-description">This is the official source code repository for the book.</p>
+        <div class="Book-cta">
+          <span>View on Github</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+
+          <li class="Learn-card Learn-book">
+            <div class="Book">
+  <a href="http://shop.oreilly.com/product/0636920046516.do" target="_blank" rel="noopener">
+    <div class="Book-inner">
+
+      <div class="Book-thumbnail">
+        <img alt="Introducing Go thumbnail." src="/images/learn/introducing-go-book.png" />
+      </div>
+
+      <div class="Book-content">
+        <p class="Book-title">Introducing Go</p>
+        <p class="Book-description">Caleb Doxsey</p>
+        <div class="Book-cta">
+          <span>View on O’Reilly.com</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+
+          <li class="Learn-card Learn-book">
+            <div class="Book">
+  <a href="https://www.oreilly.com/library/view/concurrency-in-go/9781491941294/" target="_blank" rel="noopener">
+    <div class="Book-inner">
+
+      <div class="Book-thumbnail">
+        <img alt="Concurrency in Go thumbnail." src="/images/learn/concurrency-in-go.png" />
+      </div>
+
+      <div class="Book-content">
+        <p class="Book-title">Concurrency in Go</p>
+        <p class="Book-description">Katherine Cox-Buday</p>
+        <div class="Book-cta">
+          <span>View on O’Reilly.com</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+
+          </li>
+
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-inPersonTraining">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>In-person training</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-inPersonList">
+
+        <li class="Learn-inPerson">
+          <p class="Learn-inPersonTitle">
+            <a href="https://www.ardanlabs.com/">Ardan Labs </a>
+          </p>
+          <p class="Learn-inPersonBlurb">Offering customized on-site live training classes.</p>
+        </li>
+
+        <li class="Learn-inPerson">
+          <p class="Learn-inPersonTitle">
+            <a href="https://www.gopherguides.com/">Gopher Guides </a>
+          </p>
+          <p class="Learn-inPersonBlurb">Customized In-person, remote, and online training classes. Training for Developers by Developers.</p>
+        </li>
+
+        <li class="Learn-inPerson">
+          <p class="Learn-inPersonTitle">
+            <a href="https://bosssauce.it/services/training">Boss Sauce Creative </a>
+          </p>
+          <p class="Learn-inPersonBlurb">Personalized or track-based Go training for teams.</p>
+        </li>
+
+        <li class="Learn-inPerson">
+          <p class="Learn-inPersonTitle">
+            <a href="https://github.com/shijuvar/gokit/tree/master/training">Shiju Varghese </a>
+          </p>
+          <p class="Learn-inPersonBlurb">On-site classroom training on Go and consulting on distributed systems architectures, in India.</p>
+        </li>
+
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-meetups">
+  <div class="Container">
+    <div class="Learn-subHeader">
+      <h2>Meetups</h2>
+      <p class="Learn-viewMore">
+        <a href="https://www.meetup.com/pro/go">View more events &gt;</a>
+      </p>
+    </div>
+    <ul class="Learn-events">
+
+      <li class="Learn-eventItem">
+        <div
+          class="Learn-eventThumbnail "
+        >
+
+          <img alt="Utah Golang User Group (Reserve Mike Campbell) group photo" src="https://secure.meetupstatic.com/photos/event/c/d/0/7/600_452692487.jpeg" />
+
+        </div>
+        <div class="Learn-eventBody">
+          <div class="Learn-eventDate">
+            <p>Nov 3, 2020 &#183 Lehi, UT USA</p>
+          </div>
+          <div class="Learn-eventText">
+            <h4 class="Learn-eventName">
+              <a href="https://www.meetup.com/utahgophers/events/fnpgxrybcpbfb">Utah Golang User Group (Reserve Mike Campbell)</a>
+            </h4>
+            <p class="Learn-eventDescription">Join us on <a href="http://bit.ly/forgeutahinvite" rel="nofollow">Slack</a>!<br/>
+The Utah Go User Group (#UTGO) is a community of people interested in software development and Google&#39;s Go programming language (Golang). Everyone is welcome.  We currently meet in Lehi. To discuss and vote on topic ideas, go to <a href="https://github.com/forgeutah/utah-go" rel="nofollow">https://github.com/forgeutah/utah-go</a><br/>
+ <br></p>
+          </div>
+          <div class="Learn-eventAttendees">
+
+          </div>
+        </div>
+      </li>
+
+      <li class="Learn-eventItem">
+        <div
+          class="Learn-eventThumbnail "
+        >
+
+          <img alt="Book Club &gt; Get Programming With Go group photo" src="https://secure.meetupstatic.com/photos/event/2/8/1/600_453660641.jpeg" />
+
+        </div>
+        <div class="Learn-eventBody">
+          <div class="Learn-eventDate">
+            <p>Oct 7, 2020 &#183 Eugene, OR USA</p>
+          </div>
+          <div class="Learn-eventText">
+            <h4 class="Learn-eventName">
+              <a href="https://www.meetup.com/EUG-Go/events/vjdnrrybcnbkb">Book Club &gt; Get Programming With Go</a>
+            </h4>
+            <p class="Learn-eventDescription">All Gophers and curious software professionals are welcome to come discuss Go and related topics.<br/>
+Go is a Google-funded language for massively-scalable distributed systems that is statically typed and compiled. It has quickly stabilized and is running head-to-head with C++, Java, C#, etc. (<a href="https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html" rel="nofollow">The Computer Language Benchmarks Game - Go</a>). However, a larger-than-expected portion of new Gophers is made up of dynamic/interpreted language users who tend to be seeking relief from the cruft in their current languages and/or a more clear future within the horizontally-growing landscape of modern computing.<br/>
+If you&#39;re building web apps, designing APIs, thrive on scalability, or you&#39;re simply curious about this fun new(ish) language, let&#39;s meetup.<br/>
+• More resources are available at <a href="http://www.euggo.org" rel="nofollow">www.euggo.org</a> </p>
+          </div>
+          <div class="Learn-eventAttendees">
+
+          </div>
+        </div>
+      </li>
+
+      <li class="Learn-eventItem">
+        <div
+          class="Learn-eventThumbnail "
+        >
+
+          <img alt="Women Who Go Book club - chapter 2.1: The Parser part 2 group photo" src="https://secure.meetupstatic.com/photos/event/6/6/9/3/600_452906259.jpeg" />
+
+        </div>
+        <div class="Learn-eventBody">
+          <div class="Learn-eventDate">
+            <p>Oct 7, 2020 &#183 Berlin,  Germany</p>
+          </div>
+          <div class="Learn-eventText">
+            <h4 class="Learn-eventName">
+              <a href="https://www.meetup.com/Women-Who-Go-Berlin/events/273575858">Women Who Go Book club - chapter 2.1: The Parser part 2</a>
+            </h4>
+            <p class="Learn-eventDescription">Join us on Slack: <a href="https://wwgberlin.herokuapp.com/" rel="nofollow">https://wwgberlin.herokuapp.com/</a> <br/>
+Follow us on Twitter: <a href="https://twitter.com/wwgberlin" rel="nofollow">@WWGBerlin</a><br/>
+Go (also known as Golang) is a great programming language to learn and develop in. We built this meetup to offer a better entry point to women who are interested in Go. We also want to provide a space for networking, learning and finding mentors. This group shall bring us together so we can continue to grow in Go. <br/>
+You can become a WWG mentee if: <br/>
+1. You identify as female, publicly or privately <br/>
+2. You have some interest in Go<br/>
+Supporters of Women Who Go are welcome to join, especially as mentors. For the Go Study Groups, the mentee/learners spots will be given to women.<br/>
+Feel free to check out our learning resources: <a href="https://github.com/wwgberlin/GoStudyGroup" rel="nofollow">https://github.com/wwgberlin/GoStudyGroup</a> <br>Feel free to contribute to our resources by adding Go Tutorials to it!<br/>
+For companies who want to host and sponsor Women Who Go Berlin: Please send us a msg through meetup or Twitter: <a href="https://twitter.com/wwgberlin" rel="nofollow">@WWGBerlin</a></p>
+          </div>
+          <div class="Learn-eventAttendees">
+
+          </div>
+        </div>
+      </li>
+
+    </ul>
+  </div>
+</section>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/learn/index.xml b/go.dev/testdata/golden/learn/index.xml
new file mode 100644
index 0000000..149442a
--- /dev/null
+++ b/go.dev/testdata/golden/learn/index.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Getting Started on go.dev</title>
+    <link>https://go.dev/learn/</link>
+    <description>Recent content in Getting Started on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    
+	<atom:link href="https://go.dev/learn/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/robots.txt b/go.dev/testdata/golden/robots.txt
new file mode 100644
index 0000000..c2a49f4
--- /dev/null
+++ b/go.dev/testdata/golden/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Allow: /
diff --git a/go.dev/testdata/golden/series/case-studies/index.html b/go.dev/testdata/golden/series/case-studies/index.html
new file mode 100644
index 0000000..1461db5
--- /dev/null
+++ b/go.dev/testdata/golden/series/case-studies/index.html
@@ -0,0 +1,540 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Case Studies - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default"><div class="Container Container--padded">
+    <h1>Case Studies</h1>
+    <ul class="Series-list">
+
+        <li class="Series-listItem">
+          <a href="/solutions/paypal/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">PayPal Taps Go to Modernize and Scale</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/americanexpress/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">American Express Uses Go for Payments &amp; Rewards</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/mercadolibre/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">MercadoLibre Grows with Go</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/google/sitereliability/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://medium.com/grail-eng/bigslice-a-cluster-computing-system-for-go-7e03acd2419b">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">At GRAIL, we use the Go programming language for most of our bioinformatics, data processing, and machine learning tasks. Go’s simplicity makes it easy for newcomers to learn; its transparent runtime semantics makes it easy to reason about performance; and its ability to control data layout and allocation makes it possible to write highly performant data processing code.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">At the time, no single team member knew Go, but within a month, everyone was writing in Go and we were building out the endpoints. It was the flexibility, how easy it was to use, and the really cool concept behind Go (how Go handles native concurrency, garbage collection, and of course safety&#43;speed.) that helped engage us during the build. Also, who can beat that cute mascot!</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/google/chrome/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Chrome Content Optimization Service Runs on Go</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Go&#39;s performance benefits, garbage collection, and low barrier to entry made it a great fit for CockroachDB.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Dropbox - Open sourcing our Go libraries</h2>
+              <p class="Series-listItemSecondary">About a year ago, we decided to migrate our performance-critical backends from Python to Go to leverage better concurrency support and faster execution speed. ... At this point, we have successfully moved major parts of our infrastructure to Go.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://blog.cloudflare.com/graceful-upgrades-in-go/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Cloudflare speeds up and protects millions of websites, APIs, SaaS services, and other properties connected to the Internet. “Go is at the heart of CloudFlare’s services including handling compression for high-latency HTTP connections, our entire DNS infrastructure, SSL, load testing and more.”</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://labs.armut.com/how-we-decreased-one-of-our-apis-response-time-by-87-and-used-less-resources-ce847e83308">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Learn about how Armut Labs reduced resource consumption and API response time after moving from C# and .net core to Go.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://jaxenter.com/golang-curve-163187.html">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Curve shares how Go&#39;s efficiency, standard library, and thriving community help them move banking to the cloud.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://entgo.io/blog/2019/10/03/introducing-ent/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Learn about a Facebook engineering team&#39;s decision to write a new entity framework (ORM) in Go.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/google/coredata/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">How Google&#39;s Core Data Solutions Team Uses Go</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://cloudblogs.microsoft.com/opensource/2018/02/21/go-lang-brian-ketelsen-explains-fast-growth/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Learn about how Microsoft has helped support Go and how it uses Go to power pieces of it&#39;s cloud infrastructure.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/google/firebase/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">How the Firebase Hosting Team Scaled With Go</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://medium.com/tech-at-wildlife-studios/pitaya-wildlifes-golang-go-af57865f7a11">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Wildlife is a Brazilian native global company focused on mobile gaming. We aim to develop games that will make billions of people happy. We have almost 40 million daily active users, and we rely on Go as the main language for our core platform, given its features to scale our backend services.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">The decision to use Go was deliberate, because we needed something that had lower latency than Java (where garbage collection pauses are an issue) and is more productive for developers than C, while also handling tens of thousands of client connections. Go fits this space well.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://technology.riotgames.com/news/leveraging-golang-game-development-and-operations">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">Learn how Riot uses Go to develop, deploy, and operate backend microserves at scale–globally. They share thier experience across use cases, with specific examples, and speak to the value of the gopher community.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://www.zdnet.com/article/salesforce-why-we-ditched-python-for-googles-go-language-in-einstein-analytics/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">One of the big advantages is that Go&#39;s cross-platform features make porting code easy.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://tech.target.com/infrastructure/2018/06/18/Recommending-GoLang-at-Target.html">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">We loved the simplified syntax, strong standard library, great external community, and well-built and maintained libraries. We loved the fast compile times and incredibly small images we could build when deploying containers. As we continue to grow and scale our technical solutions to our guests, we find the concurrency primitives in Go particularly useful.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary"></h2>
+              <p class="Series-listItemSecondary">We use Go at Twitch for many of our busiest systems. Its simplicity, safety, performance, and readability make it a good tool for the problems we encounter with serving live video and chat to our  millions of users.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://blog.twitter.com/engineering/en_us/a/2015/handling-five-billion-sessions-a-day-in-real-time.html">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Twitter - 5 billion sessions a day in realtime</h2>
+              <p class="Series-listItemSecondary">We now see about five billion sessions per day, and growing. Hundreds of millions of devices send millions of events every second to the Answers endpoint. During the time that it took you to read to here, the Answers back-end will have received and processed about 10,000,000 analytics events.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+
+            <a href="https://eng.uber.com/aresdb/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Uber - GPU-power analytics engine in Go</h2>
+              <p class="Series-listItemSecondary">AresDB [,written in Go,] is widely used at Uber to power our real-time data analytics dashboards, enabling us to make data-driven decisions at scale about myriad aspects of our business.</p>
+              </div>
+          </a>
+        </li>
+
+    </ul>
+  </div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/series/case-studies/index.xml b/go.dev/testdata/golden/series/case-studies/index.xml
new file mode 100644
index 0000000..807851d
--- /dev/null
+++ b/go.dev/testdata/golden/series/case-studies/index.xml
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Case Studies on go.dev</title>
+    <link>https://go.dev/series/case-studies/</link>
+    <description>Recent content in Case Studies on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    <lastBuildDate>Mon, 01 Jun 2020 00:00:00 +0000</lastBuildDate>
+    
+	<atom:link href="https://go.dev/series/case-studies/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+    <item>
+      <title>PayPal Taps Go to Modernize and Scale</title>
+      <link>https://go.dev/solutions/paypal/</link>
+      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/paypal/</guid>
+      <description>Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.  &amp;mdash; Bala Natarajan ,&amp;nbsp; Sr. Director of Engineering,&amp;nbsp;Developer Experience &amp;nbsp;at PayPal   New code infrastructure built on Go PayPal was created to democratize financial services and empower people and businesses to join and thrive in the global economy.</description>
+    </item>
+    
+    <item>
+      <title>American Express Uses Go for Payments &amp; Rewards</title>
+      <link>https://go.dev/solutions/americanexpress/</link>
+      <pubDate>Thu, 19 Dec 2019 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/americanexpress/</guid>
+      <description>What makes Go different from other programming languages is cognitive load. You can do more with less code, which makes it easier to reason about and understand the code that you do end up writing.
+The majority of Go code ends up looking quite similar, so, even if you’re working with a completely new codebase, you can get up and running pretty quickly.
+ &amp;mdash; Glen Balliet ,&amp;nbsp; Engineering Director of loyalty platforms &amp;nbsp;at American Express   Go Improves Microservices and Speeds Productivity Founded in 1850, American Express is a globally integrated payments company offering charge and credit card products, merchant acquisition and processing services, network services, and travel-related services.</description>
+    </item>
+    
+    <item>
+      <title>MercadoLibre Grows with Go</title>
+      <link>https://go.dev/solutions/mercadolibre/</link>
+      <pubDate>Sun, 10 Nov 2019 16:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/mercadolibre/</guid>
+      <description>I think that the tour of Go is by far the best introduction to a language that I’ve seen, It’s really simple and it gives you a fair overview of probably 80 percent of the language. When we want to get developers to learn Go, and to get to production fast, we tell them to start with the tour of Go.  &amp;mdash; Eric Kohan ,&amp;nbsp; Software Engineering Manager &amp;nbsp;at MercadoLibre   Go helps integrated ecosystem attract developers and scale eCommerce MercadoLibre, Inc.</description>
+    </item>
+    
+    <item>
+      <title>Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go</title>
+      <link>https://go.dev/solutions/google/sitereliability/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/sitereliability/</guid>
+      <description>Google runs a small number of very large services. Those services are powered by a global infrastructure covering everything a developer needs: storage systems, load balancers, network, logging, monitoring, and much more. Nevertheless, it is not a static system—it cannot be. Architecture evolves, new products and ideas are created, new versions must be rolled out, configs pushed, database schema updated, and more. We end up deploying changes to our systems dozens of times per second.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/grail/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/grail/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/capital-one/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/capital-one/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Chrome Content Optimization Service Runs on Go</title>
+      <link>https://go.dev/solutions/google/chrome/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/chrome/</guid>
+      <description>When the product Chrome comes to mind, you probably think solely of the user-installed browser. But behind the scenes, Chrome has an extensive fleet of backends. Among these is the Chrome Optimization Guide service. This service forms an important basis for Chrome&amp;rsquo;s user experience strategy, operating in the critical path for users, and is implemented in Go.
+The Chrome Optimization Guide service is designed to bring the power of Google to Chrome by providing hints to the installed browser about what optimizations may be performed on a page load, as well as when they can be applied most effectively.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/cockroachlabs/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/cockroachlabs/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Dropbox - Open sourcing our Go libraries</title>
+      <link>https://go.dev/solutions/dropbox/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/dropbox/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/cloudflare/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/cloudflare/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/armut/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/armut/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/curve/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/curve/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/facebook/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/facebook/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>How Google&#39;s Core Data Solutions Team Uses Go</title>
+      <link>https://go.dev/solutions/google/coredata/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/coredata/</guid>
+      <description>Google&amp;rsquo;s mission is “to organize the world&amp;rsquo;s information and make it universally accessible and useful.” One of the teams responsible for organizing that information is Google’s Core Data Solutions team. The team, among other things, maintains services to index web pages across the globe. These web indexing services help support products like Google Search by keeping search results updated and comprehensive, and they’re written in Go.
+In 2015, to keep up with Google’s scale, our team needed to rewrite our indexing stack from a single monolithic binary written in C++ to multiple components in a microservices architecture.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/microsoft/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/microsoft/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>How the Firebase Hosting Team Scaled With Go</title>
+      <link>https://go.dev/solutions/google/firebase/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/firebase/</guid>
+      <description>The Firebase Hosting team provides static web hosting services for Google Cloud customers. They provide a static web host that sits behind a global content delivery network, and offer users tools that are easy to use. The team also develops features that range from uploading site files to registering domains to tracking usage.
+Before joining Google, Firebase Hosting’s tech stack was written in Node.js. The team started to use Go when they needed to interoperate with several other Google services.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/wildlifestudios/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/wildlifestudios/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/netflix/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/netflix/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/riotgames/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/riotgames/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/salesforce/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/salesforce/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/target/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/target/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/twitch/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/twitch/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Twitter - 5 billion sessions a day in realtime</title>
+      <link>https://go.dev/solutions/twitter/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/twitter/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Uber - GPU-power analytics engine in Go</title>
+      <link>https://go.dev/solutions/uber/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/uber/</guid>
+      <description></description>
+    </item>
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/series/index.html b/go.dev/testdata/golden/series/index.html
new file mode 100644
index 0000000..1297517
--- /dev/null
+++ b/go.dev/testdata/golden/series/index.html
@@ -0,0 +1,330 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Series - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default"><div class="Container Container--padded">
+    <h1>Series</h1>
+    <ul class="Series-list">
+
+        <li class="Series-listItem">
+          <a href="https://go.dev/series/case-studies/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Case Studies</h2>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="https://go.dev/series/use-cases/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Use Cases</h2>
+              </div>
+          </a>
+        </li>
+
+    </ul>
+  </div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/series/index.xml b/go.dev/testdata/golden/series/index.xml
new file mode 100644
index 0000000..bf0327a
--- /dev/null
+++ b/go.dev/testdata/golden/series/index.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Series on go.dev</title>
+    <link>https://go.dev/series/</link>
+    <description>Recent content in Series on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    <lastBuildDate>Mon, 01 Jun 2020 00:00:00 +0000</lastBuildDate>
+    
+	<atom:link href="https://go.dev/series/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+    <item>
+      <title>Case Studies</title>
+      <link>https://go.dev/series/case-studies/</link>
+      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/series/case-studies/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Use Cases</title>
+      <link>https://go.dev/series/use-cases/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/series/use-cases/</guid>
+      <description></description>
+    </item>
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/series/use-cases/index.html b/go.dev/testdata/golden/series/use-cases/index.html
new file mode 100644
index 0000000..aa05668
--- /dev/null
+++ b/go.dev/testdata/golden/series/use-cases/index.html
@@ -0,0 +1,350 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Use Cases - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default"><div class="Container Container--padded">
+    <h1>Use Cases</h1>
+    <ul class="Series-list">
+
+        <li class="Series-listItem">
+          <a href="/solutions/cloud/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Go for Cloud &amp; Network Services</h2>
+              <p class="Series-listItemSecondary">With a strong ecosystem of tools and APIs on major cloud providers, it is easier than ever to build services with Go.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/clis/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Command-line Interfaces (CLIs)</h2>
+              <p class="Series-listItemSecondary">With popular open source packages and a robust standard library, use Go to create fast and elegant CLIs.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/webdev/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Go for Web Development</h2>
+              <p class="Series-listItemSecondary">With enhanced memory performance and support for several IDEs, Go powers fast and scalable web applications.</p>
+              </div>
+          </a>
+        </li>
+
+        <li class="Series-listItem">
+          <a href="/solutions/devops/">
+            <div class="Series-listItemText">
+              <h2 class="Series-listItemPrimary">Development Operations &amp; Site reliability Engineering</h2>
+              <p class="Series-listItemSecondary">With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE.</p>
+              </div>
+          </a>
+        </li>
+
+    </ul>
+  </div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/series/use-cases/index.xml b/go.dev/testdata/golden/series/use-cases/index.xml
new file mode 100644
index 0000000..b601e76
--- /dev/null
+++ b/go.dev/testdata/golden/series/use-cases/index.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Use Cases on go.dev</title>
+    <link>https://go.dev/series/use-cases/</link>
+    <description>Recent content in Use Cases on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    <lastBuildDate>Fri, 04 Oct 2019 15:26:31 -0400</lastBuildDate>
+    
+	<atom:link href="https://go.dev/series/use-cases/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+    <item>
+      <title>Go for Cloud &amp; Network Services</title>
+      <link>https://go.dev/solutions/cloud/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/cloud/</guid>
+      <description>Overview Go helps enterprises build and scale cloud computing systems As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “explicitly geared to develop highly reliable concurrent applications.”
+ Go makes it very easy to scale as a company.</description>
+    </item>
+    
+    <item>
+      <title>Command-line Interfaces (CLIs)</title>
+      <link>https://go.dev/solutions/clis/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/clis/</guid>
+      <description>Overview CLI developers prefer Go for portability, performance, and ease of creation Command line interfaces (CLIs), unlike graphical user interfaces (GUIs), are text-only. Cloud and infrastructure applications are primarily CLI-based due to their easy automation and remote capabilities.
+Key benefits Leverage fast compile times to build programs that start quickly and run on any system Developers of CLIs find Go to be ideal for designing their applications. Go compiles very quickly into a single binary, works across platforms with a consistent style, and brings a strong development community.</description>
+    </item>
+    
+    <item>
+      <title>Go for Web Development</title>
+      <link>https://go.dev/solutions/webdev/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/webdev/</guid>
+      <description>Overview Go delivers speed, security, and developer-friendly tools for Web Applications Go is designed to enable developers to rapidly develop scalable and secure web applications. Go ships with an easy to use, secure and performant web server and includes it own web templating library. Go has excellent support for all of the latest technologies from HTTP/2, to databases like MySQL, MongoDB and ElasticSearch, to the latest encryption standards including TLS 1.</description>
+    </item>
+    
+    <item>
+      <title>Development Operations &amp; Site reliability Engineering</title>
+      <link>https://go.dev/solutions/devops/</link>
+      <pubDate>Thu, 03 Oct 2019 17:16:43 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/devops/</guid>
+      <description>Overview Go helps enterprises automate and scale Development Operations (DevOps) teams help engineering organizations automate tasks and improve their continuous integration and continuous delivery and deployment (CI/CD) process. DevOps can topple developmental silos and implement tooling and automation to enhance software development, deployment, and support.
+Site Reliability Engineering (SRE) was born at Google to make the company’s “large-scale sites more reliable, efficient, and scalable,”writes Silvia Fressard, an independent DevOps consultant.</description>
+    </item>
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/sitemap.xml b/go.dev/testdata/golden/sitemap.xml
new file mode 100644
index 0000000..c69bd2d
--- /dev/null
+++ b/go.dev/testdata/golden/sitemap.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
+        xmlns:xhtml="http://www.w3.org/1999/xhtml">
+    <url>
+        <loc>https://go.dev/solutions/google/</loc>
+        <lastmod>2020-08-27T00:00:00+00:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/series/case-studies/</loc>
+        <lastmod>2020-06-01T00:00:00+00:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/</loc>
+        <lastmod>2020-06-01T00:00:00+00:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/paypal/</loc>
+        <lastmod>2020-06-01T00:00:00+00:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/series/</loc>
+        <lastmod>2020-06-01T00:00:00+00:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/</loc>
+        <lastmod>2020-06-01T00:00:00+00:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/americanexpress/</loc>
+        <lastmod>2019-12-19T00:00:00+00:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/mercadolibre/</loc>
+        <lastmod>2019-11-10T16:26:31-04:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/copyright/</loc>
+        <lastmod>2019-11-05T15:50:08-05:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/tos/</loc>
+        <lastmod>2019-11-05T15:47:16-05:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/cloud/</loc>
+        <lastmod>2019-10-04T15:26:31-04:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/clis/</loc>
+        <lastmod>2019-10-04T15:26:31-04:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/series/use-cases/</loc>
+        <lastmod>2019-10-04T15:26:31-04:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/webdev/</loc>
+        <lastmod>2019-10-04T15:26:31-04:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/devops/</loc>
+        <lastmod>2019-10-03T17:16:43-04:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/about/</loc>
+        <lastmod>2019-06-25T17:51:23-04:00</lastmod>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/google/sitereliability/</loc>
+    </url>
+    <url>
+        <loc>https://go.dev/categories/</loc>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/google/chrome/</loc>
+    </url>
+    <url>
+        <loc>https://go.dev/learn/</loc>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/google/coredata/</loc>
+    </url>
+    <url>
+        <loc>https://go.dev/solutions/google/firebase/</loc>
+    </url>
+    <url>
+        <loc>https://go.dev/tags/</loc>
+    </url>
+    
+</urlset>
diff --git a/go.dev/testdata/golden/solutions/americanexpress/index.html b/go.dev/testdata/golden/solutions/americanexpress/index.html
new file mode 100644
index 0000000..9fd928c
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/americanexpress/index.html
@@ -0,0 +1,477 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>American Express Uses Go for Payments &amp; Rewards - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/americanexpress">
+
+            American Express
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>American Express Uses Go for Payments &amp; Rewards</h1>
+
+
+            <div class="Article-date">19 December 2019</div>
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_amex_case_study_logo.png" alt="American Express">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+
+<div class="PullQuote">
+  <div class="PullQuote-quoteHeader">
+    <img class="PullQuote-image" src="/images/quote.svg" alt="Quotation mark.">
+  </div>
+  <p class="PullQuote-body">
+    <p>What makes Go different from other programming languages is cognitive load. You can do more with less code, which makes it easier to reason about and understand the code that you do end up writing.</p>
+
+<p>The majority of Go code ends up looking quite similar, so, even if you’re working with a completely new codebase, you can get up and running pretty quickly.</p>
+
+  </p>
+  <div class="PullQuote-author">
+    <span>
+      &mdash; Glen Balliet</span>
+    ,&nbsp;
+      <span class="PullQuote-title">Engineering Director of loyalty platforms</span>
+    <span class="PullQuote-title">&nbsp;at American Express</span>
+    </div>
+  </div>
+
+<h2 id="go-improves-microservices-and-speeds-productivity">Go Improves Microservices and Speeds Productivity</h2>
+
+<p>Founded in 1850, American Express is a globally integrated payments company offering charge and credit card products, merchant acquisition and processing services, network services, and travel-related services.</p>
+
+<p>American Express’ payment processing systems have been developed over its long history and have been updated across multiple architectural evolutions. Foremost in any update, payment processing needs to be fast, especially at very large transaction volumes, with resilience built across systems that must all be compliant with security and regulatory standards. With Go, American Express gains the speed and scalability it needs for both its payment and rewards networks.</p>
+
+<h3 id="modernizing-american-express-systems">Modernizing American Express systems</h3>
+
+<p>American Express understands that the programming language landscape is changing drastically. The company&rsquo;s existing systems were purpose-built for high concurrency and low latency, but knowing that those systems would be re-platformed in the near future. The payments platform team decided to take the time to identify what languages were ideal for American Express&rsquo;s evolving needs.</p>
+
+<p>The payments and rewards platform teams at American Express were among the first to start evaluating Go. These teams were focused on microservices, transaction routing, and load-balancing use cases, and they needed to modernize their architecture. Many American Express developers were familiar with the language’s capabilities and wanted to pilot Go for their high concurrency and low latency applications (such as custom transactional load balancers). With this goal in mind, the teams began lobbying senior leadership to deploy Go on the American Express payment platform.</p>
+
+<p>&ldquo;We wanted to find the optimal language for writing fast and efficient applications for payment processing,&rdquo; says Benjamin Cane, vice president and principal engineer at American Express. &ldquo;To do so, we started an internal programming language showdown with the goal of seeing which language best fit our design and performance needs.&rdquo;</p>
+
+<h3 id="comparing-languages">Comparing languages</h3>
+
+<p>For their assessment, Cane&rsquo;s team chose to build a microservice in four different programming languages. They then compared the four languages for speed/performance, tooling, testing, and ease of development.</p>
+
+<p>For the service, they decided on an ISO8583 to JSON converter. ISO8583 is an international standard for financial transactions, and it’s commonly used within American Express&rsquo;s payment network. For the programming languages, they chose to compare C++, Go, Java and Node.js. With the exception of Go, all of these languages were already in use within American Express.</p>
+
+<p>From a speed perspective, Go achieved the second-best performance at 140,000 requests per second. Go showed that it excels when used for backend microservices.</p>
+
+<p>While Go may not have been the fastest language tested, its powerful tooling helped bolster its overall results. Go&rsquo;s built-in testing framework, profiling capabilities, and benchmarking tools impressed the team. &ldquo;It is easy to write effective tests in Go,&rdquo; says Cane. &ldquo;The benchmarking and profiling features make it simple to tune our application. Coupled with its fast build times, Go makes it easy to write well-tested and optimized code.&rdquo;</p>
+
+<p>Ultimately, Go was selected by the team as the preferred language for building high-performance microservices. The tooling, testing frameworks, performance, and language simplicity were all key contributors.</p>
+
+<h3 id="go-for-infrastructure">Go for infrastructure</h3>
+
+<p>&ldquo;Many of our services are running in Docker containers within our Kubernetes-based internal cloud platform&rdquo; says Cane. Kubernetes is an open-source container-orchestration system written in Go. It provides clusters of hosts to run container based workloads, most notably Docker containers. Docker is a software product, also written in Go, that uses operating system level virtualization to provide portable software runtimes called containers.</p>
+
+<p>American Express also collects application metrics via Prometheus, an open-source monitoring and alerting toolkit written in Go. Prometheus collects and aggregates real-time events and metrics for monitoring and alerts.</p>
+
+<p>This triumvirate of Go solutions—Kubernetes, Docker, and Prometheus—has helped modernize American Express infrastructure.</p>
+
+<h3 id="improving-performance-with-go">Improving performance with Go</h3>
+
+<p>Today, scores of developers are programming with Go at American Express, with most working on platforms designed for high availability and performance.</p>
+
+<p>&ldquo;Tooling has always been a critical area of need for our legacy code base,&rdquo; says Cane. &ldquo;We have found that Go has excellent tooling, plus built-in testing, benchmarking, and profiling frameworks. It is easy to write efficient and resilient applications.&rdquo;</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “After working on Go, most of our developers don&rsquo;t want to go back to other languages.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Benjamin Cane</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Vice President and Principal Engineer</span>
+      <span class="BackgroundQuote-title">&nbsp;at American Express</span>
+      </div>
+    </div>
+
+
+<p>American Express is just beginning to see the benefits of Go. For example, Go was designed from the ground up with concurrency in mind – using lightweight “goroutines” rather than heavier-weight operating system threads – making it practical to create hundreds of thousands of goroutines in the same address space. Using goroutines, American Express has seen improved performance numbers in its real-time transaction processing.</p>
+
+<p>Go’s garbage collection is also a major improvement over other languages, both in terms of performance and ease of development. “We saw far better results of garbage collection in Go than we did in other languages, and garbage collection for real time transaction processing is a big deal.” says Cane. “Tuning garbage collection in other languages can be very complicated. With Go you don’t tune anything.”</p>
+
+<p>To learn more, read <a href="https://americanexpress.io/choosing-go/" rel="noreferrer" target="_blank">&ldquo;Choosing Go at American Express&rdquo;</a> which goes into more depth about American Express&rsquo;s Go adoption.</p>
+
+<h3 id="getting-your-enterprise-started-with-go">Getting your enterprise started with Go</h3>
+
+<p>Just as American Express is using Go to modernize its payment and rewards networks, dozens of other large enterprises are adopting Go as well.</p>
+
+<p>There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as <a href="https://go.dev/solutions/paypal" rel="noreferrer" target="_blank">PayPal</a>, <a href="https://go.dev/solutions/mercadolibre" rel="noreferrer" target="_blank">Mercado Libre</a>, Capital One, Dropbox, IBM, Mercado Libre, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.</p>
+
+<p>To learn more about how Go can help your enterprise build reliable, scalable software as it does at American Express, visit <a href="https://go.dev" rel="noreferrer" target="_blank">go.dev</a> today.</p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/american-express.svg" class="CaseStudy-aboutBlockImg" alt="American Express">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About American Express
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Go provides American Express with the speed and scalability it needs for both its payment and rewards networks.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/armut/index.html b/go.dev/testdata/golden/solutions/armut/index.html
new file mode 100644
index 0000000..e3d72db
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/armut/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://labs.armut.com/how-we-decreased-one-of-our-apis-response-time-by-87-and-used-less-resources-ce847e83308">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/armut">
+
+            Armut
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Armut">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/armut.png" class="CaseStudy-aboutBlockImg" alt="Armut">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Armut
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Learn about how Armut Labs reduced resource consumption and API response time after moving from C# and .net core to Go.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/capital-one/index.html b/go.dev/testdata/golden/solutions/capital-one/index.html
new file mode 100644
index 0000000..dcd8dcf
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/capital-one/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/capital-one">
+
+            Capital One
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Capital One">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/capital-one.svg" class="CaseStudy-aboutBlockImg" alt="Capital One">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Capital One
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">At the time, no single team member knew Go, but within a month, everyone was writing in Go and we were building out the endpoints. It was the flexibility, how easy it was to use, and the really cool concept behind Go (how Go handles native concurrency, garbage collection, and of course safety+speed.) that helped engage us during the build. Also, who can beat that cute mascot!</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/chrome/index.html b/go.dev/testdata/golden/solutions/chrome/index.html
new file mode 100644
index 0000000..6cc9549
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/chrome/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>/solutions/google/chrome</title><link rel="canonical" href="/solutions/google/chrome"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=/solutions/google/chrome" /></head></html>
diff --git a/go.dev/testdata/golden/solutions/clis-green.svg b/go.dev/testdata/golden/solutions/clis-green.svg
new file mode 100644
index 0000000..01fed5b
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/clis-green.svg
@@ -0,0 +1,13 @@
+<svg width="62px" height="59px" viewBox="0 0 62 59" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-840.000000, -448.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="noun_Command-Folder_1628426-Copy" transform="translate(840.000000, 448.000000)">
+                <path d="M0,11 L62,11 L62,59 L0,59 L0,11 Z M59.1818182,13.8235294 L2.81818182,13.8235294 L2.81818182,56.1764706 L59.1818182,56.1764706 L59.1818182,13.8235294 Z" id="Shape"></path>
+                <rect id="Rectangle" x="9" y="6" width="45" height="3"></rect>
+                <rect id="Rectangle" x="14" y="0" width="34" height="3"></rect>
+                <path d="M21.4005257,42 C20.9861599,42 20.6408551,41.8584982 20.3646112,41.5047435 C19.8811845,40.9387362 19.9502454,40.0189742 20.5717941,39.5237177 L27.5469517,33.5098894 L20.5027332,27.4960611 C19.9502454,27.0008046 19.8121235,26.0810427 20.2955503,25.5150353 C20.778977,24.9490279 21.6767696,24.8075261 22.2292573,25.3027825 L30.5165732,32.3778747 C30.8618781,32.6608784 31,33.014633 31,33.4391385 C31,33.863644 30.7928171,34.2881496 30.5165732,34.5004023 L22.2292573,41.5754945 C22.0220744,41.8584982 21.7458306,42 21.4005257,42 Z" id="Path"></path>
+                <path d="M40.625,45 L32.375,45 C31.61875,45 31,44.325 31,43.5 C31,42.675 31.61875,42 32.375,42 L40.625,42 C41.38125,42 42,42.675 42,43.5 C42,44.325 41.38125,45 40.625,45 Z" id="Path"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/clis-white.svg b/go.dev/testdata/golden/solutions/clis-white.svg
new file mode 100644
index 0000000..a08127d
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/clis-white.svg
@@ -0,0 +1,19 @@
+<svg width="34px" height="32px" viewBox="0 0 34 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-537.000000, -1068.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group-2" transform="translate(320.000000, 67.000000)">
+                    <g id="Group-6" transform="translate(99.000000, 0.000000)">
+                        <g id="noun_Command-Folder_1628426-Copy" transform="translate(13.000000, 14.000000)">
+                            <path d="M0,6 L34,6 L34,32 L0,32 L0,6 Z M32.4545455,7.52941176 L1.54545455,7.52941176 L1.54545455,30.4705882 L32.4545455,30.4705882 L32.4545455,7.52941176 Z" id="Shape"></path>
+                            <rect id="Rectangle" x="5" y="3" width="25" height="2"></rect>
+                            <rect id="Rectangle" x="8" y="0" width="19" height="2"></rect>
+                            <path d="M11.7639231,22 C11.5379054,22 11.3495573,21.9250873 11.1988789,21.7378054 C10.9351915,21.4381544 10.9728611,20.9512216 11.3118877,20.689027 L15.1165191,17.5052356 L11.2742181,14.3214441 C10.9728611,14.0592495 10.8975219,13.5723167 11.1612092,13.2726657 C11.4248966,12.9730148 11.9146016,12.898102 12.2159585,13.1602966 L16.7363127,16.9059337 C16.9246608,17.0557591 17,17.243041 17,17.4677792 C17,17.6925174 16.8869911,17.9172556 16.7363127,18.0296248 L12.2159585,21.7752618 C12.1029497,21.9250873 11.9522712,22 11.7639231,22 Z" id="Path"></path>
+                            <path d="M22.25,25 L17.75,25 C17.3375,25 17,24.55 17,24 C17,23.45 17.3375,23 17.75,23 L22.25,23 C22.6625,23 23,23.45 23,24 C23,24.55 22.6625,25 22.25,25 Z" id="Path"></path>
+                        </g>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/clis/index.html b/go.dev/testdata/golden/solutions/clis/index.html
new file mode 100644
index 0000000..be35a34
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/clis/index.html
@@ -0,0 +1,779 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Command-line Interfaces (CLIs) - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+    <div class="UseCaseSubNav js-useCaseSubnav">
+      <button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader">
+        Jump to
+        <img
+          class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon"
+          alt="Open menu icon" src="/images/icons/chevron-down.svg">
+      </button>
+      <div class="UseCaseSubNav-menu js-useCaseSubnavMenu">
+        <div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks">
+        </div>
+      </div>
+    </div>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--useCase">
+    <div class="WhoUsesSubPage-heroInner--useCase">
+      <div class="WhoUsesSubPage-heroContent--useCase">
+        <div class="WhoUsesSubPage-heroText--useCase">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/clis">
+
+            Command-line Interfaces (CLIs)
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Command-line Interfaces (CLIs)</h1>
+
+
+            <div class="Article-date">4 October 2019</div>
+
+        </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="UseCase-content">
+        <div class="UseCase-contentAside">
+          <div
+            class="js-useCaseStickyNav UseCaseSubNav-anchorLinks">
+          </div>
+        </div>
+        <div class="UseCase-contentBody js-useCaseContentBody">
+
+
+
+
+<h2 id="overview" class="sectionHeading">Overview</h2>
+
+<h3 id="cli-developers-prefer-go-for-portability-performance-and-ease-of-creation">CLI developers prefer Go for portability, performance, and ease of creation</h3>
+
+<p>Command line interfaces (CLIs), unlike graphical user interfaces (GUIs), are text-only. Cloud and infrastructure applications are primarily CLI-based due to their easy automation and remote capabilities.</p>
+
+<h2 id="key-benefits" class="sectionHeading">Key benefits</h2>
+
+<h3 id="leverage-fast-compile-times-to-build-programs-that-start-quickly-and-run-on-any-system">Leverage fast compile times to build programs that start quickly and run on any system</h3>
+
+<p>Developers of CLIs find Go to be ideal for designing their applications. Go compiles very quickly into a single binary, works across platforms with a consistent style, and brings a strong development community. From a single Windows or Mac laptop, developers can build a Go program for every one of the dozens of architectures and operating systems Go supports in a matter of seconds, no complicated build farms are needed. No other compiled language can be built as portably or quickly. Go applications are built into a single self contained binary making installing Go applications trivial.</p>
+
+<p>Specifically, <strong>programs written in Go run on any system without requiring any existing libraries, runtimes, or dependencies</strong>. And <strong>programs written in Go have an immediate startup time</strong>—similar to C or C++ but unobtainable with other programming languages.</p>
+
+<h2 id="use-case" class="sectionHeading">Use Case</h2>
+
+<h3 id="use-go-for-building-elegant-clis">Use Go for building elegant CLIs</h3>
+
+
+<div class="BackgroundQuote">
+<a href="https://medium.com/@skdomino/writing-better-clis-one-snake-at-a-time-d22e50e60056" target="_blank" rel="noopener">
+    <p class="BackgroundQuote-body">
+      “I was tasked with building our CLI tool and found two really great projects, Cobra and Viper, which make building CLI’s easy. Individually they are very powerful, very flexible and very good at what they do. But together they will help you show your next CLI who is boss!”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Steve Domino</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">senior engineer and architect at Strala</span>
+    </div>
+</a>
+</div>
+
+
+
+<div class="BackgroundQuote">
+<a href="https://www.youtube.com/watch?v=WvWPGVKLvR4" target="_blank" rel="noopener">
+    <p class="BackgroundQuote-body">
+      “Cobra is a great product to write small tools or even large ones. It’s more of a framework than a library, because when you call the binary that would create a skeleton, then you would be adding code in between.””
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Francesc Campoy</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">VP of product at DGraph Labs and producer of Just For Func videos</span>
+      </div>
+</a>
+</div>
+
+
+<p>When developing CLIs in Go, two tools are widely used: Cobra &amp; Viper.</p>
+
+<p><a href="https://pkg.go.dev/github.com/spf13/cobra?tab=overview">Cobra</a> is both a library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go. Cobra powers most of the popular Go applications including CoreOS, Delve, Docker, Dropbox, Git Lfs, Hugo, Kubernetes, and <a href="https://pkg.go.dev/github.com/spf13/cobra?tab=importedby" rel="noreferrer" target="_blank">many more</a>. With integrated command help, autocomplete and documentation “[it] makes documenting each command really simple,” says <a href="https://blog.alexellis.io/5-keys-to-a-killer-go-cli/" rel="noreferrer" target="_blank">Alex Ellis</a>, founder of OpenFaaS.</p>
+
+<p><a href="https://pkg.go.dev/github.com/spf13/viper?tab=overview">Viper</a> is a complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats. Cobra and Viper are designed to work together.</p>
+
+<p>Viper <a href="https://scene-si.org/2017/04/20/managing-configuration-with-viper/" rel="noreferrer" target="_blank">supports nested structures</a> in the configuration, allowing CLI developers to manage the configuration for multiple parts of a large application. Viper also provides all of the tooling need to easily build twelve factor apps.</p>
+
+<p>&ldquo;If you don’t want to pollute your command line, or if you’re working with sensitive data which you don’t want to show up in the history, it’s a good idea to work with environment variables. To do this, you can use Viper,&rdquo; <a href="https://ordina-jworks.github.io/development/2018/10/20/make-your-own-cli-with-golang-and-cobra.html" rel="noreferrer" target="_blank">suggests Geudens</a>.</p>
+
+
+<div class="FeaturedUsers">
+
+<h2 id="featured-users" class="sectionHeading">Featured users</h2>
+
+
+
+<table>
+  <thead>
+    <tr>
+      <th class="FeaturedUsers--hiddenMobile">Customer</th>
+      <th>Brief introduction</th>
+      <th>Projects using go</th>
+    </tr>
+  </thead>
+
+  <tbody>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/comcast.svg" alt="Comcast" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/comcast.svg" alt="Comcast" />
+        Comcast uses Go for a CLI client used to publish and subscribe to it’s high-traffic sites. The company also supports an open source client library which is written in Go - designed for working with Apache Pulsar.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://github.com/Comcast/pulsar-client-go">Client library for Apache Pulsar</a></li>
+
+          <li><a href="https://github.com/Comcast/pulsar-client-go/blob/master/cli/main.go">Pulsar CLI Client</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/github.svg" alt="GitHub" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/github.svg" alt="GitHub" />
+        GitHub uses Go for a command-line tool that makes it easier to work with GitHub, wrapping git in order to extend it with extra features and commands.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://github.com/github/hub">GitHub command-line tool</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/hugo.svg" alt="Hugo" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/hugo.svg" alt="Hugo" />
+        Hugo is one of the most popular Go CLI applications powering thousands of sites, including this one. One reason for it’s popularity is it’s ease of install thanks to Go. Hugo author Bjørn Erik Pedersen writes “The single binary takes most of the pain out of installation and upgrades.”
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://gohugo.io/">Hugo Website</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/kubernetes.svg" alt="Kubernetes" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/kubernetes.svg" alt="Kubernetes" />
+        Kubernetes is one of the most popular Go CLI applications. Kubernetes Creator, Joe Beda, said that for writing Kubernetes, “Go was the only logical choice”. Calling Go “the sweet spot” between low level languages like C&#43;&#43; and high level languages like Python.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://blog.gopheracademy.com/birthday-bash-2014/kubernetes-go-crazy-delicious/">Kubernetes &#43; Go</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/mongodb.svg" alt="MongoDB" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/mongodb.svg" alt="MongoDB" />
+        MongoDB chose to implement their Backup CLI Tool in Go citing Go’s “C-like syntax, strong standard library, the resolution of concurrency problems via goroutines, and painless multi-platform distribution” as reasons.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://www.mongodb.com/blog/post/go-agent-go">MongoDB Backup Service</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/netflix.svg" alt="Netflix" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/netflix.svg" alt="Netflix" />
+        Netflix uses Go to build the CLI application ChaosMonkey, an application responsible for randomly terminating instances in production to ensure that engineers implement their services to be resilient to instance failures.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef">Netflix Techblog Article</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/stripe.svg" alt="Stripe" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/stripe.svg" alt="Stripe" />
+        Stripe uses Go for the Stripe CLI aimed to help build, test, and manage a Stripe integration right from the terminal.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://github.com/stripe/stripe-cli">Stripe CLI</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/uber.svg" alt="Uber" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/uber.svg" alt="Uber" />
+        Uber uses Go for several CLI tools, including the CLI API for Jaeger, a distributed tracing system used for monitoring microservice distributed systems.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://www.jaegertracing.io/docs/1.14/cli/">CLI API for Jaeger</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+  </tbody>
+</table>
+
+<button
+  class="js-moreProjectsBtn FeaturedUsers-moreProjectsBtn"
+  type="button">
+ More projects
+</button>
+
+
+
+</div>
+
+<h2 id="get-started" class="sectionHeading">Get Started</h2>
+
+<h3 id="go-books-for-creating-clis">Go books for creating CLIs</h3>
+
+<ul class="Learn-tileList">
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Powerful-Command-Line-Applications-Go-Maintainable/dp/168050696X">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Powerful Command-Line Applications in Go thumbnail." src="/images/books/powerful-command-line-applications-in-go.jpg">
+
+            <span class="Learn-tileTitle">
+                Powerful Command-Line Applications in Go
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Go-Action-William-Kennedy/dp/1617291781">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Go in Action thumbnail." src="/images/books/go-in-action.jpg">
+
+            <span class="Learn-tileTitle">
+                Go in Action
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.gopl.io/">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="The Go Programming Language thumbnail." src="/images/learn/go-programming-language-book.png">
+
+            <span class="Learn-tileTitle">
+                The Go Programming Language
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://github.com/matryer/goblueprints">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Go Programming Blueprints thumbnail." src="/images/learn/go-programming-blueprints.png">
+
+            <span class="Learn-tileTitle">
+                Go Programming Blueprints
+            </span>
+        </a>
+    </li>
+
+</ul>
+
+
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>CLI Libraries</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/spf13/cobra?tab=overview">spf13/cobra</a>
+      <p>A library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/spf13/viper?tab=overview">spf13/viper</a>
+      <p>A complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/urfave/cli?tab=overview">urfave/cli</a>
+      <p>A minimal framework for creating and organizing command line Go applications</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/go-delve/delve?tab=overview">delve</a>
+      <p>A simple and powerful tool built for programmers used to using a source-level debugger in a compiled language</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/chzyer/readline?tab=overview">chzyer/readline</a>
+      <p>A pure Golang implementation that provides most features in GNU Readline (under MIT license)</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/dixonwille/wmenu?tab=overview">dixonwille/wmenu</a>
+      <p>An easy-to-use menu structure for CLI applications that prompts users to make choices</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/spf13/pflag?tab=overview">spf13/pflag</a>
+      <p>A drop-in replacement for Go’s flag package, implementing POSIX/GNU-style flags</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/golang/glog?tab=overview">golang/glog</a>
+      <p>Leveled execution logs for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/c-bata/go-prompt?tab=overview">go-prompt</a>
+      <p>A library for building powerful interactive prompts, making it easier to build cross-platform command line tools using Go.</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=command%20line%20OR%20CLI">View More</a>
+</div>
+
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/cloud-green.svg b/go.dev/testdata/golden/solutions/cloud-green.svg
new file mode 100644
index 0000000..b143a1d
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/cloud-green.svg
@@ -0,0 +1,9 @@
+<svg width="59px" height="59px" viewBox="0 0 59 59" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-250.000000, -645.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="noun_Network_58995-Copy" transform="translate(250.000000, 645.000000)">
+                <path d="M58.9678767,28.2498556 C58.9521428,27.8729111 58.9259198,27.4992444 58.8957632,27.1262333 C58.8957632,27.1223 58.8957632,27.1183667 58.8957632,27.1144333 C58.8957632,27.1144333 58.8957632,27.1144333 58.8951076,27.1144333 C57.7426025,12.7459667 46.2536085,1.25801111 31.8846628,0.104233333 C31.8833517,0.104233333 31.8820405,0.104233333 31.8813849,0.104233333 C31.5050835,0.0740777778 31.1274709,0.0478555556 30.747236,0.0314666667 C30.3348778,0.0118 29.9212085,0 29.5042613,0 C29.5042613,0 29.5042613,0 29.4996722,0 C29.4950832,0 29.4950832,0 29.4950832,0 C29.0781359,0 28.663811,0.0124555556 28.2521084,0.0321222222 C27.8712179,0.0478555556 27.4929498,0.0747333333 27.1159928,0.105544444 L27.1153372,0.105544444 C12.3694345,1.29472222 0.652955099,13.3582556 0.0314677156,28.2485444 C0.0124559708,28.6602333 0,29.0745444 0,29.4914778 L0,29.4960667 C0,29.5013111 0,29.5013111 0,29.5013111 C0,29.5059 0,29.5104889 0,29.5150778 C0,29.9313556 0.0131115482,30.3450111 0.0327788704,30.7567 C0.665411069,45.6463333 12.373368,57.7026556 27.1146816,58.8944556 C27.1179595,58.8944556 27.121893,58.8951111 27.1251708,58.8951111 C27.4995055,58.9252667 27.875807,58.9521444 28.2547307,58.9678778 C28.6657777,58.9868889 29.0787915,59 29.4950832,59 C29.4950832,59 29.4950832,59 29.4996722,59 C29.5042613,59 29.5042613,59 29.5042613,59 C29.9225196,59 30.3375001,58.9875444 30.7498583,58.9685333 C31.1281265,58.9528 31.5024612,58.9259222 31.8774515,58.8964222 C31.8800738,58.8957667 31.8826961,58.8957667 31.8846628,58.8957667 C46.6213874,57.7111778 58.3339334,45.6509222 58.9672211,30.7573556 C58.9868885,30.3456667 59,29.9320111 59,29.5150778 C59,29.5098333 59,29.5052444 59,29.5013111 C59,29.5013111 59,29.5013111 59,29.4960667 L59,29.4914778 C58.9993444,29.0752 58.987544,28.6615444 58.9678767,28.2498556 Z M20.9883107,3.78911111 C18.7665589,5.93277778 16.8765292,8.91096667 15.4296699,12.4857111 C14.0051002,12.6384556 12.8912742,13.8302556 12.8912742,15.2960778 C12.8912742,15.3150889 12.8965188,15.3334444 12.8971744,15.3524556 C9.11318155,16.8549889 5.95198729,18.8531222 3.71187928,21.1914889 C6.35975644,12.9937667 12.8191606,6.50245556 20.9883107,3.78911111 Z M13.7887596,17.5026778 C13.0453348,20.4467778 12.5995422,23.6688333 12.4435148,27.0587111 C11.949865,27.3491222 11.5525851,27.7791667 11.3080547,28.3009889 L4.20421792,28.3009889 C3.92297521,27.7011556 3.44178139,27.2186667 2.84258364,26.9361222 C4.09539207,23.0591667 8.12588197,19.7040333 13.7887596,17.5026778 Z M4.20290676,30.7009778 L11.3087103,30.7009778 C11.5532407,31.2221444 11.9505206,31.6508778 12.4435148,31.9412889 C12.593642,35.2033333 13.0191117,38.3034556 13.715335,41.1590556 C13.6471549,41.2278889 13.5907752,41.3085222 13.5298065,41.3845667 C8.00460015,39.1819 4.07506917,35.8779 2.84192806,32.0638778 C3.44047024,31.7813333 3.92166406,31.2995 4.20290676,30.7009778 Z M3.79120415,38.0078 C6.02868985,40.3271556 9.16890563,42.2912 12.958143,43.7596444 C13.1974288,44.8675333 14.0824583,45.7328667 15.2002178,45.9446111 C16.6700223,49.7743667 18.6498661,52.9498778 20.9876551,55.2082667 C12.8886518,52.5178667 6.48234941,46.1111222 3.79120415,38.0078 Z M28.2999656,54.7952667 C27.7007678,55.0765 27.2182628,55.5583333 26.935709,56.1568556 C23.0894363,54.9119556 19.7558252,50.9242111 17.5498072,45.3244556 C17.5838972,45.2956111 17.6192984,45.2700444 17.6520773,45.2398889 C20.491383,45.9439556 23.5765303,46.3766222 26.8222941,46.5398556 C27.1212374,47.1796778 27.6456993,47.6923222 28.2999656,47.9650333 L28.2999656,54.7952667 L28.2999656,54.7952667 Z M28.2999656,42.7205889 C27.6424214,42.9946111 27.1159928,43.5098778 26.817705,44.1542889 C23.9049746,43.9995778 21.125982,43.5964111 18.5548074,42.9795333 C18.4663044,41.5825444 17.3767348,40.4707222 15.9914997,40.3435444 C15.3870573,37.7947444 14.9930553,35.0446889 14.8403058,32.1609 C15.548985,31.9032667 16.1232708,31.3788222 16.4405702,30.7009778 L26.8249164,30.7009778 C27.1238597,31.3388333 27.6470105,31.8501667 28.2999656,32.1222222 L28.2999656,42.7205889 Z M28.2999656,26.8777778 C27.6463549,27.1498333 27.1225485,27.6618222 26.8236052,28.3009889 L16.4412258,28.3009889 C16.1245819,27.6231444 15.5496405,27.0967333 14.8403058,26.8391 C15.0035446,23.7435667 15.443437,20.8007778 16.1265487,18.0972667 C17.2593864,17.9386222 18.1693279,17.1198333 18.462371,16.0362 C21.1882618,15.3740889 24.154094,14.9591222 27.2634977,14.8208 C27.5257286,15.2043 27.8856406,15.5104444 28.2999656,15.7274333 L28.2999656,26.8777778 Z M28.2999656,10.7137444 C27.6207874,11.0690556 27.1087814,11.6865889 26.8917853,12.4372 C23.794182,12.5938778 20.8349056,13.0304778 18.0841028,13.7043889 C17.9772437,13.5464 17.852684,13.4015222 17.7163239,13.2677889 C19.919064,7.88371111 23.1825283,4.05723333 26.9350534,2.84314444 C27.2176073,3.44232222 27.6994566,3.92415556 28.29931,4.20538889 L28.29931,10.7137444 L28.2999656,10.7137444 Z M55.2874651,21.1914889 C53.0467016,18.8491889 49.8881296,16.8569556 46.1015145,15.3504889 C46.1021701,15.3321333 46.1074147,15.3144333 46.1074147,15.2960778 C46.1074147,13.7955111 44.9411425,12.5801111 43.4667489,12.4758778 C41.9851439,8.88212222 40.0610243,5.86722222 37.8097714,3.71437778 C46.0772581,6.38576667 52.6159872,12.9236222 55.2874651,21.1914889 Z M56.1561052,26.9367778 C55.557563,27.2193222 55.0763692,27.7011556 54.7951265,28.3009889 L48.1272487,28.3009889 C47.8145383,27.6329778 47.2527084,27.1105 46.5571408,26.8489333 C46.3866907,23.5364111 45.9015634,20.3805667 45.1443715,17.4744889 C50.8433059,19.6765 54.8973966,23.0447444 56.1561052,26.9367778 Z M30.6993789,4.20538889 C31.2992322,3.92415556 31.7810816,3.44232222 32.0636355,2.84314444 C35.8161605,4.05723333 39.0756914,7.88371111 41.282365,13.2677889 C41.1466604,13.4008667 41.0227563,13.5457444 40.914586,13.7043889 C38.2280298,13.0475222 35.3461115,12.6174778 32.3304555,12.4509667 C32.093792,11.6131667 31.4932831,10.9294222 30.6993789,10.5983667 L30.6993789,4.20538889 L30.6993789,4.20538889 Z M30.6993789,15.8428111 C31.2067958,15.6317222 31.6394769,15.2764111 31.9475983,14.8293222 C34.9796438,14.9768222 37.8707401,15.3891667 40.5350067,16.0335778 C40.8273942,17.1178667 41.7393024,17.9379667 42.8721402,18.0972667 C43.5677078,20.8578111 44.0115337,23.8720556 44.1669056,27.0397 C43.6562108,27.3294556 43.2445082,27.7667111 42.9940776,28.3016444 L31.9574319,28.3016444 C31.6932342,27.7378667 31.2494083,27.2816 30.6993789,26.9938111 L30.6993789,15.8428111 L30.6993789,15.8428111 Z M30.6993789,32.0068444 C31.2487527,31.7197111 31.6919231,31.2634444 31.9561208,30.7009778 L42.9953887,30.7009778 C43.2458193,31.2346 43.6575219,31.6705444 44.1669056,31.9609556 C44.0226785,34.9162 43.6267098,37.7350889 43.0085003,40.3435444 C41.6219541,40.4700667 40.5310733,41.5838556 40.4438815,42.9815 C37.8091159,43.6114889 34.9566986,44.0159667 31.96661,44.1628111 C31.704379,43.5898556 31.2553085,43.1270333 30.6987233,42.8359667 L30.6987233,32.0068444 L30.6993789,32.0068444 Z M32.0636355,56.1568556 C31.7810816,55.5576778 31.2992322,55.0758444 30.6993789,54.7946111 L30.6993789,47.8496556 C31.2461304,47.5625222 31.6879896,47.1101889 31.9515317,46.551 C35.2805538,46.3982556 38.4424036,45.961 41.3472671,45.2398889 C41.3793904,45.2700444 41.4154472,45.2962667 41.4495372,45.3244556 C39.2435192,50.9242111 35.9105637,54.9119556 32.0636355,56.1568556 Z M37.8143605,55.283 C40.1823061,53.0147778 42.1982066,49.8045222 43.7047235,45.9544444 C44.8657511,45.7735111 45.7933931,44.899 46.0398902,43.7616111 C49.8258498,42.2931667 52.9680323,40.3278111 55.2074847,38.0078 C52.4986388,46.1812667 46.0071113,52.6352111 37.8143605,55.283 Z M45.4701935,41.3852222 C45.3967688,41.2941 45.3253108,41.2029778 45.2407414,41.1216889 C45.940898,38.3250889 46.3945576,35.3115 46.5571408,32.1510667 C47.2520528,31.8901556 47.8132271,31.3683333 48.1259375,30.7009778 L54.7964377,30.7009778 C55.0776804,31.2995 55.5588742,31.7806778 56.1567608,32.0632222 C54.9223085,35.8759333 50.9953998,39.1812444 45.4701935,41.3852222 Z" id="Shape"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/cloud-white.svg b/go.dev/testdata/golden/solutions/cloud-white.svg
new file mode 100644
index 0000000..6dfc4f2
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/cloud-white.svg
@@ -0,0 +1,13 @@
+<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-862.000000, -1063.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group" transform="translate(644.000000, 67.000000)">
+                    <g id="noun_Network_58995-Copy" transform="translate(113.000000, 9.000000)">
+                        <path d="M40.977677,19.6312556 C40.9667433,19.3693111 40.9485205,19.1096444 40.9275643,18.8504333 C40.9275643,18.8477 40.9275643,18.8449667 40.9275643,18.8422333 C40.9275643,18.8422333 40.9275643,18.8422333 40.9271087,18.8422333 C40.1262153,8.85736667 32.1423381,0.874211111 22.1571386,0.0724333333 C22.1562274,0.0724333333 22.1553163,0.0724333333 22.1548607,0.0724333333 C21.8933631,0.0514777778 21.6309544,0.0332555556 21.3667233,0.0218666667 C21.0801693,0.0082 20.7927042,0 20.5029612,0 C20.5029612,0 20.5029612,0 20.4997722,0 C20.4965832,0 20.4965832,0 20.4965832,0 C20.2068402,0 19.9189195,0.00865555556 19.6328211,0.0223222222 C19.3681345,0.0332555556 19.1052702,0.0519333333 18.843317,0.0733444444 L18.8428614,0.0733444444 C8.59570875,0.899722222 0.453748458,9.28285556 0.0218673956,19.6303444 C0.00865584408,19.9164333 0,20.2043444 0,20.4940778 L0,20.4972667 C0,20.5009111 0,20.5009111 0,20.5009111 C0,20.5041 0,20.5072889 0,20.5104778 C0,20.7997556 0.00911141482,21.0872111 0.0227785371,21.3733 C0.462404302,31.7203333 8.59844217,40.0984556 18.8424059,40.9266556 C18.8446837,40.9266556 18.8474171,40.9271111 18.849695,40.9271111 C19.1098259,40.9480667 19.3713235,40.9667444 19.6346434,40.9776778 C19.9202862,40.9908889 20.2072958,41 20.4965832,41 C20.4965832,41 20.4965832,41 20.4997722,41 C20.5029612,41 20.5029612,41 20.5029612,41 C20.7936153,41 21.0819916,40.9913444 21.3685456,40.9781333 C21.6314099,40.9672 21.8915408,40.9485222 22.1521273,40.9280222 C22.1539496,40.9275667 22.1557719,40.9275667 22.1571386,40.9275667 C32.3979133,40.1043778 40.5371401,31.7235222 40.9772215,21.3737556 C40.9908886,21.0876667 41,20.8002111 41,20.5104778 C41,20.5068333 41,20.5036444 41,20.5009111 C41,20.5009111 41,20.5009111 41,20.4972667 L41,20.4940778 C40.9995444,20.2048 40.9913442,19.9173444 40.977677,19.6312556 Z M14.5850973,2.63311111 C13.041168,4.12277778 11.7277576,6.19236667 10.722313,8.67651111 C9.73235775,8.78265556 8.95834306,9.61085556 8.95834306,10.6294778 C8.95834306,10.6426889 8.96198762,10.6554444 8.96244319,10.6686556 C6.33288887,11.7127889 4.13612676,13.1013222 2.57944154,14.7262889 C4.41949176,9.02956667 8.90823027,4.51865556 14.5850973,2.63311111 Z M9.5820194,12.1628778 C9.06540218,14.2087778 8.75561408,16.4478333 8.64718824,18.8035111 C8.30414347,19.0053222 8.0280676,19.3041667 7.85813972,19.6667889 L2.92157516,19.6667889 C2.72613532,19.2499556 2.39174639,18.9146667 1.97535473,18.7183222 C2.84595042,16.0241667 5.64679934,13.6926333 9.5820194,12.1628778 Z M2.92066402,21.3345778 L7.85859529,21.3345778 C8.02852317,21.6967444 8.30459904,21.9946778 8.64718824,22.1964889 C8.75151394,24.4633333 9.04717935,26.6176556 9.53099548,28.6020556 C9.48361612,28.6498889 9.44443704,28.7059222 9.40206896,28.7587667 C5.56251875,27.2281 2.83182773,24.9321 1.97489916,22.2816778 C2.39083525,22.0853333 2.72522417,21.7505 2.92066402,21.3345778 Z M2.6345656,26.4122 C4.18942854,28.0239556 6.37161239,29.3888 9.00481127,30.4092444 C9.17109459,31.1791333 9.78611509,31.7804667 10.5628632,31.9276111 C11.5842528,34.5889667 12.9600764,36.7956778 14.5846417,38.3650667 C8.95652077,36.4954667 4.50468349,32.0433222 2.6345656,26.4122 Z M19.6660778,38.0780667 C19.2496861,38.2735 18.914386,38.6083333 18.718035,39.0242556 C16.0452015,38.1591556 13.7286243,35.3880111 12.1956287,31.4966556 C12.2193184,31.4766111 12.2439192,31.4588444 12.2666978,31.4378889 C14.2397747,31.9271556 16.3836906,32.2278222 18.6392213,32.3412556 C18.8469616,32.7858778 19.2114182,33.1421222 19.6660778,33.3316333 L19.6660778,38.0780667 L19.6660778,38.0780667 Z M19.6660778,29.6871889 C19.2091403,29.8776111 18.843317,30.2356778 18.6360323,30.6834889 C16.6119315,30.5759778 14.6807671,30.2958111 12.8940187,29.8671333 C12.8325166,28.8963444 12.0753581,28.1237222 11.1127371,28.0353444 C10.6927009,26.2641444 10.4189029,24.3530889 10.3127549,22.3491 C10.8052268,22.1700667 11.2043068,21.8056222 11.424803,21.3345778 L18.6410436,21.3345778 C18.8487838,21.7778333 19.2123293,22.1331667 19.6660778,22.3222222 L19.6660778,29.6871889 Z M19.6660778,18.6777778 C19.2118737,18.8668333 18.8478727,19.2226222 18.6401324,19.6667889 L11.4252586,19.6667889 C11.205218,19.1957444 10.8056824,18.8299333 10.3127549,18.6509 C10.426192,16.4997667 10.73188,14.4547778 11.2065847,12.5760667 C11.9938109,12.4658222 12.6261431,11.8968333 12.8297832,11.1438 C14.7240464,10.6836889 16.7850484,10.3953222 18.9458204,10.2992 C19.1280487,10.5657 19.378157,10.7784444 19.6660778,10.9292333 L19.6660778,18.6777778 Z M19.6660778,7.44514444 C19.1941065,7.69205556 18.8383057,8.12118889 18.6875118,8.6428 C16.5349401,8.75167778 14.4784937,9.05507778 12.5669189,9.52338889 C12.4926609,9.4136 12.4061024,9.31292222 12.3113437,9.21998889 C13.8420614,5.47851111 16.1098926,2.81943333 18.7175795,1.97574444 C18.9139305,2.39212222 19.248775,2.72695556 19.6656222,2.92238889 L19.6656222,7.44514444 L19.6660778,7.44514444 Z M38.4201029,14.7262889 C36.8629621,13.0985889 34.6680223,11.7141556 32.0366457,10.6672889 C32.0371012,10.6545333 32.0407458,10.6422333 32.0407458,10.6294778 C32.0407458,9.58671111 31.2302855,8.74211111 30.2057069,8.66967778 C29.176117,6.17232222 27.8390169,4.07722222 26.2745869,2.58117778 C32.0197895,4.43756667 36.5636521,8.98082222 38.4201029,14.7262889 Z M39.0237341,18.7187778 C38.607798,18.9151222 38.2734091,19.2499556 38.0779693,19.6667889 L33.4443593,19.6667889 C33.227052,19.2025778 32.8366279,18.8395 32.3532673,18.6577333 C32.2348189,16.3558111 31.8976966,14.1627667 31.3715124,12.1432889 C35.3317888,13.6735 38.1490383,16.0141444 39.0237341,18.7187778 Z M21.3334667,2.92238889 C21.7503139,2.72695556 22.0851584,2.39212222 22.2815094,1.97574444 C24.8891963,2.81943333 27.154294,5.47851111 28.6877451,9.21998889 C28.593442,9.31246667 28.5073391,9.41314444 28.43217,9.52338889 C26.5652411,9.06692222 24.5625521,8.76807778 22.4669267,8.65236667 C22.3024656,8.07016667 21.8851628,7.59502222 21.3334667,7.36496667 L21.3334667,2.92238889 L21.3334667,2.92238889 Z M21.3334667,11.0094111 C21.6860784,10.8627222 21.9867551,10.6158111 22.2008734,10.3051222 C24.307888,10.4076222 26.316955,10.6941667 28.1683945,11.1419778 C28.3715791,11.8954667 29.005278,12.4653667 29.7925042,12.5760667 C30.2758648,14.4944111 30.5842861,16.5890556 30.6922564,18.7903 C30.3373668,18.9916556 30.0512684,19.2955111 29.8772404,19.6672444 L22.2077069,19.6672444 C22.0241119,19.2754667 21.7156905,18.9584 21.3334667,18.7584111 L21.3334667,11.0094111 L21.3334667,11.0094111 Z M21.3334667,22.2420444 C21.715235,22.0425111 22.0232008,21.7254444 22.2067958,21.3345778 L29.8781515,21.3345778 C30.0521795,21.7054 30.3382779,22.0083444 30.6922564,22.2101556 C30.5920308,24.2638 30.3168661,26.2226889 29.8872629,28.0353444 C28.9237308,28.1232667 28.1656611,28.8972556 28.1050702,29.8685 C26.2741314,30.3062889 24.2919431,30.5873667 22.2140849,30.6894111 C22.0318566,30.2912556 21.7197907,29.9696333 21.3330111,29.7673667 L21.3330111,22.2420444 L21.3334667,22.2420444 Z M22.2815094,39.0242556 C22.0851584,38.6078778 21.7503139,38.2730444 21.3334667,38.0776111 L21.3334667,33.2514556 C21.7134127,33.0519222 22.0204673,32.7375889 22.2036068,32.349 C24.516995,32.2428556 26.7142127,31.939 28.7328467,31.4378889 C28.7551696,31.4588444 28.780226,31.4770667 28.8039157,31.4966556 C27.2709201,35.3880111 24.9547985,38.1591556 22.2815094,39.0242556 Z M26.2777759,38.417 C27.9232974,36.8407778 29.3241775,34.6099222 30.371079,31.9344444 C31.1778948,31.8087111 31.8225274,31.201 31.993822,30.4106111 C34.624743,29.3901667 36.8082936,28.0244111 38.3645233,26.4122 C36.482105,32.0920667 31.9710435,36.5770111 26.2777759,38.417 Z M31.597931,28.7592222 C31.5469071,28.6959 31.4972499,28.6325778 31.4384813,28.5760889 C31.9250308,26.6326889 32.2402858,24.5385 32.3532673,22.3422667 C32.8361723,22.1609556 33.2261409,21.7983333 33.4434481,21.3345778 L38.0788804,21.3345778 C38.2743203,21.7505 38.6087092,22.0848778 39.0241897,22.2812222 C38.16635,24.9307333 35.4374812,27.2276444 31.597931,28.7592222 Z" id="Shape"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/cloud/index.html b/go.dev/testdata/golden/solutions/cloud/index.html
new file mode 100644
index 0000000..9cb3fe6
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/cloud/index.html
@@ -0,0 +1,895 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Go for Cloud &amp; Network Services - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+    <div class="UseCaseSubNav js-useCaseSubnav">
+      <button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader">
+        Jump to
+        <img
+          class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon"
+          alt="Open menu icon" src="/images/icons/chevron-down.svg">
+      </button>
+      <div class="UseCaseSubNav-menu js-useCaseSubnavMenu">
+        <div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks">
+        </div>
+      </div>
+    </div>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--useCase">
+    <div class="WhoUsesSubPage-heroInner--useCase">
+      <div class="WhoUsesSubPage-heroContent--useCase">
+        <div class="WhoUsesSubPage-heroText--useCase">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/cloud">
+
+            Go for Cloud &amp; Network Services
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Go for Cloud &amp; Network Services</h1>
+
+
+            <div class="Article-date">4 October 2019</div>
+
+        </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="UseCase-content">
+        <div class="UseCase-contentAside">
+          <div
+            class="js-useCaseStickyNav UseCaseSubNav-anchorLinks">
+          </div>
+        </div>
+        <div class="UseCase-contentBody js-useCaseContentBody">
+
+
+
+
+<h2 id="overview" class="sectionHeading">Overview</h2>
+
+
+
+  <div class="UseCase-halfColumn">
+    <h3>Go helps enterprises build and scale cloud computing systems</h3>
+
+    <p>As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “explicitly geared to develop highly reliable concurrent applications.”</p>
+
+  </div>
+
+
+<div class="QuoteBlock">
+  <p class="QuoteBlock-body">
+    Go makes it very easy to scale as a company. This is very important because, as our engineering team grows, each service can be managed by a different unit.
+  </p>
+  <div class="QuoteBlock-author">
+
+        <a class="QuoteBlock-link" href="https://builtin.com/software-engineering-perspectives/golang-advantages" target="_blank" rel="noopener">
+      &mdash; Ruchi Malik,&nbsp;<span>developer at Choozle</span>
+      </a></div>
+  </div>
+
+
+<h2 id="key-benefits" class="sectionHeading">Key Benefits</h2>
+
+<h3 id="address-tradeoff-between-development-cycle-time-and-server-performance">Address tradeoff between development cycle time and server performance</h3>
+
+<p>Go was created to address exactly these concurrency needs for scaled applications, microservices, and cloud development. In fact, over 75 percent of projects in the Cloud Native Computing Foundation are written in Go.</p>
+
+<p>Go helps reduce the need to make this tradeoff, with its fast build times that enable iterative development, lower memory and CPU utilization. Servers built with Go experience instant start up times and are cheaper to run in pay-as-you-go and serverless deployments.</p>
+
+<h3 id="address-challenges-with-the-modern-cloud-delivering-standard-idiomatic-apis">Address challenges with the modern cloud, delivering standard idiomatic APIs</h3>
+
+<p>Go addresses many challenges developers face with the modern cloud, delivering standard idiomatic APIs, and built in concurrency to take advantage of multicore processors. Go’s low-latency and “no knob” tuning make Go a great balance between performance and productivity - granting engineering teams the power to choose and the power to move.</p>
+
+<h2 id="use-case" class="sectionHeading">Use Case</h2>
+
+<h3 id="use-go-for-cloud-computing">Use Go for Cloud Computing</h3>
+
+<p>Go&rsquo;s strengths shine when it comes to building services. Its speed and built-in support for concurrency results in fast and efficient services, while static typing, robust tooling, and emphasis on simplicity and readability help build reliable and maintainable code.</p>
+
+<p>Go has a strong ecosystem supporting service development. The <a href="https://golang.org/pkg/" rel="noreferrer" target="_blank">standard library</a> includes packages for common needs like HTTP servers and clients, JSON/XML parsing, SQL databases, and a range of security/encryption functionality, while the Go runtime includes tools for <a href="https://golang.org/doc/articles/race_detector.html" rel="noreferrer" target="_blank">race detection</a>, <a href="https://golang.org/pkg/testing/#hdr-Benchmarks" rel="noreferrer" target="_blank">benchmarking</a>/profiling, code generation, and static code analysis.</p>
+
+<p>The major Cloud providers (<a href="https://cloud.google.com/go/home" rel="noreferrer" target="_blank">GCP</a>, <a href="https://aws.amazon.com/sdk-for-go/" rel="noreferrer" target="_blank">AWS</a>, <a href="https://docs.microsoft.com/en-us/azure/go/" rel="noreferrer" target="_blank">Azure</a>) have Go APIs for their services, and popular open source libraries provide support for API tooling (<a href="https://github.com/go-swagger/go-swagger" rel="noreferrer" target="_blank">Swagger</a>), transport (<a href="https://github.com/golang/protobuf" rel="noreferrer" target="_blank">protocol buffers</a>, <a href="https://grpc.io/docs/quickstart/go/" rel="noreferrer" target="_blank">gRPC</a>), monitoring (<a href="https://godoc.org/go.opencensus.io" rel="noreferrer" target="_blank">OpenCensus</a>), Object-Relational Mapping (<a href="https://gorm.io/" rel="noreferrer" target="_blank">gORM</a>), and authentication (<a href="https://github.com/dgrijalva/jwt-go" rel="noreferrer" target="_blank">JWT</a>). The open source community has also provided several service frameworks, including <a href="https://gokit.io/" rel="noreferrer" target="_blank">Go Kit</a>, <a href="https://micro.mu/docs/go-micro.html" rel="noreferrer" target="_blank">Go Micro</a>, and <a href="https://github.com/nytimes/gizmo" rel="noreferrer" target="_blank">Gizmo</a>, which can be a great way to get started quickly.</p>
+
+<h3 id="go-tools-for-cloud-computing">Go tools for Cloud Computing</h3>
+
+
+
+<div class="ToolsBlurbs">
+
+  <div class="ToolsBlurbs-blurb">
+    <a class="ToolsBlurbs-blurbHeader" href="https://www.docker.com/">
+      <img class="ToolsBlurbs-blurbIcon" src="/images/logos/docker.svg" alt="Docker">
+      <span>Docker</span>
+    </a>
+
+      <p class="ToolsBlurbs-blurbBody">
+        Docker is a platform-as-a-service that delivers software in containers. Containers bundle software, libraries, and config files, are hosted by a Docker Engine, and are run by a single operating-system kernel (utilizing less system resources than virtual machines).
+      </p>
+
+      <p class="ToolsBlurbs-blurbBody">
+        Cloud developers use Docker to manage their Go code and support multiple platforms, as Docker supports the development workflow and deployment process.
+      </p>
+
+  </div>
+
+  <div class="ToolsBlurbs-blurb">
+    <a class="ToolsBlurbs-blurbHeader" href="https://kubernetes.io/">
+      <img class="ToolsBlurbs-blurbIcon" src="/images/logos/kubernetes.svg" alt="Kubernetes">
+      <span>Kubernetes</span>
+    </a>
+
+      <p class="ToolsBlurbs-blurbBody">
+        Kubernetes is an open-source container-orchestration system, written in Go, for automating web app deployment. Web apps are often built using containers (as noted above) packaged with their dependencies and configurations. Kubernetes helps deploying and managing those containers at scale. Cloud programmers use Kubernetes to build, deliver, and scale containerized apps quickly—managing the growing complexity via APIs that controls how the containers will run.
+      </p>
+
+  </div>
+
+</div>
+
+
+<div class="FeaturedUsers">
+
+<h2 id="featured-users" class="sectionHeading">Featured users</h2>
+
+
+
+<table>
+  <thead>
+    <tr>
+      <th class="FeaturedUsers--hiddenMobile">Customer</th>
+      <th>Brief introduction</th>
+      <th>Projects using go</th>
+    </tr>
+  </thead>
+
+  <tbody>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/google-cloud.svg" alt="Google" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/google-cloud.svg" alt="Google" />
+        Google Cloud uses Go across its ecosystem of products and tools, including Kubernetes, gVisor, Knative, Istio, and Anthos. Go is fully supported on Google Cloud across all APIs and runtimes.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="http://cloud.google.com/go">Go on Google Cloud Platform</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/capital-one.svg" alt="Capital One" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/capital-one.svg" alt="Capital One" />
+        Capital One uses Go to power the Credit Offers API, a critical service. The engineering team is also building their serverless architecture with Go, citing Go’s speed and simplicity, and mentioning that “[they] didn’t want to go serverless without Go.”
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f">Credit Offers API</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/dropbox.svg" alt="Dropbox" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/dropbox.svg" alt="Dropbox" />
+        Dropbox was built on Python, but in 2013 decided to migrate their performance-critical packends to Go. Today, most of the company’s infrastructure is written in Go.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/">Dropbox libraries</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/mercadoLibre.svg" alt="Mercado Libre" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/mercadoLibre.svg" alt="Mercado Libre" />
+        MercadoLibre uses Go to scale its eCommerce platform. Go produces efficient code that readily scales as MercadoLibre’s online commerce grows. Go improves their productivity while streamlining and expanding MercadoLibre services.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="http://go.dev/solutions/mercadolibre">MercadoLibre &amp; Go</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/the-new-york-times-icon.svg" alt="The New York Times" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/the-new-york-times-icon.svg" alt="The New York Times" />
+        The New York Times adopted Go “to build better back-end services”. As the usage of Go expanded with in the company they felt the need to create a toolkit to “to help developers quickly configure and build microservice APIs and pubsub daemons”, which they have open sourced.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://open.nytimes.com/introducing-gizmo-aa7ea463b208">NYTimes - Gizmo</a></li>
+
+          <li><a href="https://github.com/nytimes/gizmo">Gizmo Github</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/twitch.svg" alt="Twitch" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/twitch.svg" alt="Twitch" />
+        Twitch uses Go to power many of its busiest systems that serve live video and chat to millions of users.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/">Go’s march to low-latency GC</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/uber.svg" alt="Uber" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/uber.svg" alt="Uber" />
+        Uber uses Go to power several of its critical services that impact the experience of millions of drivers and passengers around the world. From their real-time analytics engine, AresDB, to their microservice for Geo-querying, Geofence, and their resource scheduler, Peloton.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://eng.uber.com/aresdb/">AresDB</a></li>
+
+          <li><a href="https://eng.uber.com/go-geofence/">Geofence</a></li>
+
+          <li><a href="https://eng.uber.com/open-sourcing-peloton/">Peloton</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+  </tbody>
+</table>
+
+<button
+  class="js-moreProjectsBtn FeaturedUsers-moreProjectsBtn"
+  type="button">
+ More projects
+</button>
+
+
+
+</div>
+
+<h2 id="get-started" class="sectionHeading">Get Started</h2>
+
+<h3 id="go-books-for-cloud-computing">Go books for cloud computing</h3>
+
+<ul class="Learn-tileList">
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Building-Microservices-Go-efficient-microservices/dp/1786468662/">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Building Microservices with Go thumbnail." src="/images/books/building-microservices-with-go.jpg">
+
+            <span class="Learn-tileTitle">
+                Building Microservices with Go
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/dp/1788622596/ref=cm_sw_r_tw_dp_U_x_-aZWDbS8PD7R4">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Hands-On Software Architecture with Golang thumbnail." src="/images/books/hands-on-software-architecture-with-golang.jpg">
+
+            <span class="Learn-tileTitle">
+                Hands-On Software Architecture with Golang
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Building-RESTful-Web-services-gracefully-ebook/dp/B072QB8KL1">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Building RESTful Web services with Go thumbnail." src="/images/books/building-restful-web-services-with-go.jpg">
+
+            <span class="Learn-tileTitle">
+                Building RESTful Web services with Go
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Mastering-Web-Services-Nathan-Kozyra-ebook/dp/B00W5GUKL6">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Mastering Go Web Services thumbnail." src="/images/books/mastering-go-web-services.jpg">
+
+            <span class="Learn-tileTitle">
+                Mastering Go Web Services
+            </span>
+        </a>
+    </li>
+
+</ul>
+
+
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Web frameworks</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://gobuffalo.io/en/">Buffalo</a>
+      <p>A framework for rapid web development in Go, curating Go and JS libraries together.</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://echo.labstack.com/">Echo</a>
+      <p>A high performance, extensible, and minimalist Go web framework</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://www.flamingo.me/">Flamingo</a>
+      <p>A fast open-source framework based on Go with clean and scalable architecture</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://gin-gonic.com/">Gin</a>
+      <p>A web framework written in Go, with a martini-like API.</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="http://www.gorillatoolkit.org/">Gorilla</a>
+      <p>A web toolkit for the Go programming language.</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=web&#43;framework">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Routers</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/julienschmidt/httprouter?tab=overview">julienschmidt/httprouter</a>
+      <p>A lightweight high performance HTTP request router</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/gorilla/mux?tab=overview">gorilla/mux</a>
+      <p>A powerful HTTP router and URL matcher for building Go web servers with 🦍</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/go-chi/chi?tab=overview">Chi</a>
+      <p>A lightweight, idiomatic and composable router for building Go HTTP services.</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/net/http">net/http</a>
+      <p>A standard library HTTP package</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=http%20router">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Template Engines</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/html/template">html/template</a>
+      <p>A standard library HTML template engine</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/flosch/pongo2?tab=overview">flosch/pongo2</a>
+      <p>A Django-syntax like templating-language</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=templates">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Databases &amp; Drivers</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/database/sql">database/sql</a>
+      <p>A standard library interface with driver support for MySQL, Postgres, Oracle, MS SQL, BigQuery and most SQL databases</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo?tab=overview">mongo-driver/mongo</a>
+      <p>The MongoDB supported driver for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/olivere/elastic?tab=overview">olivere/elastic</a>
+      <p>A Elasticsearch client for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://gorm.io/">GORM</a>
+      <p>An ORM library for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="http://blevesearch.com/">Bleve</a>
+      <p>Full-text search and indexing for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://www.cockroachlabs.com/">CockroachDB</a>
+      <p>An evolution of the database—architected for the cloud to deliver resilient, consistent, distributed SQL at scale</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=database%20OR%20sql">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Web Libraries</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/markbates/goth?tab=overview">markbates/goth</a>
+      <p>Authentication for web apps</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/jinzhu/gorm?tab=overview">jinzhu/gorm</a>
+      <p>An ORM library for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/dgrijalva/jwt-go?tab=overview">dgrijalva/jwt-go</a>
+      <p>A Go implementation of json web tokens</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=web">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Other Projects</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/gopherjs/gopherjs?tab=overview">gopherjs</a>
+      <p>A compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="">View More</a>
+</div>
+
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/cloudflare/index.html b/go.dev/testdata/golden/solutions/cloudflare/index.html
new file mode 100644
index 0000000..5f95dec
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/cloudflare/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://blog.cloudflare.com/graceful-upgrades-in-go/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/cloudflare">
+
+            Cloudflare
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Cloudflare">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/cloudflare.svg" class="CaseStudy-aboutBlockImg" alt="Cloudflare">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Cloudflare
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Cloudflare speeds up and protects millions of websites, APIs, SaaS services, and other properties connected to the Internet. “Go is at the heart of CloudFlare’s services including handling compression for high-latency HTTP connections, our entire DNS infrastructure, SSL, load testing and more.”</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/cockroachlabs/index.html b/go.dev/testdata/golden/solutions/cockroachlabs/index.html
new file mode 100644
index 0000000..81e200a
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/cockroachlabs/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/cockroachlabs">
+
+            Cockroach Labs
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Cockroach Labs">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/cockroach.svg" class="CaseStudy-aboutBlockImg" alt="Cockroach Labs">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Cockroach Labs
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Go&rsquo;s performance benefits, garbage collection, and low barrier to entry made it a great fit for CockroachDB.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/coredata/index.html b/go.dev/testdata/golden/solutions/coredata/index.html
new file mode 100644
index 0000000..5e2d4bd
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/coredata/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>/solutions/google/coredata</title><link rel="canonical" href="/solutions/google/coredata"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=/solutions/google/coredata" /></head></html>
diff --git a/go.dev/testdata/golden/solutions/curve/index.html b/go.dev/testdata/golden/solutions/curve/index.html
new file mode 100644
index 0000000..89f9d46
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/curve/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://jaxenter.com/golang-curve-163187.html">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/curve">
+
+            Curve
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Curve">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/curve.png" class="CaseStudy-aboutBlockImg" alt="Curve">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Curve
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Curve shares how Go&rsquo;s efficiency, standard library, and thriving community help them move banking to the cloud.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/devops-green.svg b/go.dev/testdata/golden/solutions/devops-green.svg
new file mode 100644
index 0000000..d84348e
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/devops-green.svg
@@ -0,0 +1,14 @@
+<svg width="61px" height="61px" viewBox="0 0 61 61" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-842.000000, -643.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="noun_operations_1361408-copy" transform="translate(842.000000, 643.000000)">
+                <path d="M30.5,22 C25.8323699,22 22,25.783237 22,30.5 C22,35.1676301 25.8323699,39 30.5,39 C35.1676301,39 39,35.216763 39,30.5 C39,25.8323699 35.1676301,22 30.5,22 Z M30.5,37.0346821 C26.9132948,37.0346821 23.9653179,34.0867052 23.9653179,30.5 C23.9653179,26.9132948 26.9132948,23.9653179 30.5,23.9653179 C34.0867052,23.9653179 37.0346821,26.9132948 37.0346821,30.5 C37.0346821,34.0867052 34.0867052,37.0346821 30.5,37.0346821 Z" id="Shape"></path>
+                <path d="M51.8862378,37.8050315 C51.6435452,36.7477932 51.0125442,35.8827801 50.1388507,35.4022172 L47.9546168,34.1527538 C48.1487709,33.0474592 48.2458479,31.9421646 48.2458479,30.8849263 C48.2458479,29.2990688 48.1002323,27.9054365 47.7119241,26.5118042 L49.896158,25.2142845 C51.8376993,24.1089899 52.4687002,22.0425696 51.449391,20.264487 L49.6534654,17.1888847 C48.9253874,15.9874775 47.5663085,15.1705207 46.1586911,15.1705207 C45.5276902,15.1705207 44.8966893,15.3146895 44.3142269,15.6510835 L41.8387618,17.0927721 C39.945759,15.4588584 37.7615251,14.2574512 35.3345985,13.5366069 L35.3345985,10.7973986 C35.3345985,8.58680946 33.829904,7.00095201 31.7912857,7.00095201 L28.1994344,7.00095201 C26.0152004,6.95289573 24.1707362,8.73097832 24.1707362,10.7973986 L24.1707362,13.6807758 C21.8408867,14.4496764 19.6566528,15.6991398 17.7636501,17.4291661 L15.4338005,16.0835901 C14.7542611,15.6991398 14.0261831,15.5069147 13.2981051,15.5069147 C12.0361033,15.5069147 10.9682556,16.1316464 10.3372547,17.236941 L8.54132905,20.3125433 C8.05594373,21.1775565 7.8617896,22.2347948 8.10448226,23.2439768 C8.34717492,24.3012151 8.97817583,25.1662282 9.90040793,25.6948474 L12.1817189,26.9443108 C11.8904877,28.2418306 11.7448721,29.5393503 11.7448721,30.8849263 C11.7448721,32.1343897 11.8904877,33.4319095 12.1331804,34.6333166 L10.0945621,35.7866675 C8.15302079,36.8919621 7.52201988,38.9583824 8.54132905,40.736465 L10.3372547,43.8120673 C11.0653327,45.0134745 12.4244116,45.8304313 13.832029,45.8304313 C14.4630299,45.8304313 15.0940308,45.6862625 15.6764932,45.3498685 L17.666573,44.1965176 C19.6566528,46.0226565 22.0835794,47.3682325 24.6561216,48.1371331 L24.6561216,50.2035534 C24.6561216,52.4141426 26.160816,54 28.1994344,54 L31.7912857,54 C33.9755196,54 35.8199838,52.2699737 35.8199838,50.1554971 L35.7714453,47.9449079 C38.3439875,47.0798948 40.7223755,45.6862625 42.6639168,43.8120673 L44.5569195,44.9173619 C45.236459,45.3018122 45.964537,45.4940373 46.6926149,45.4940373 C47.9546168,45.4940373 49.0224644,44.8693056 49.6534654,43.764011 L51.449391,40.6884087 C51.9833149,39.8714518 52.1289305,38.7661572 51.8862378,37.8050315 Z M49.799081,39.7753393 L48.0031553,42.8509416 C47.6633856,43.4756733 47.0809232,43.6198422 46.6926149,43.6198422 C46.3043067,43.6198422 45.9159984,43.5237296 45.5276902,43.2834482 L42.3241471,41.4573093 L41.7902232,41.9859284 C39.8001434,44.0523487 37.2761398,45.5901499 34.5094435,46.3590505 L33.7813655,46.5512756 L33.8784426,50.2035534 C33.8784426,51.2127354 32.9076719,52.0777485 31.7912857,52.0777485 L28.1994344,52.0777485 C27.0345096,52.0777485 26.5976628,51.0685665 26.5976628,50.2035534 L26.5976628,46.6954445 L25.8695848,46.5032193 C23.1028885,45.782375 20.5303464,44.3406865 18.491728,42.3223224 L17.9578042,41.7937033 L14.7057226,43.6678984 C14.4630299,43.8120673 14.1717987,43.9081799 13.832029,43.9081799 C13.103951,43.9081799 12.375873,43.4756733 11.9875648,42.8509416 L10.1916391,39.7753393 C9.60917674,38.7661572 10.2887162,37.9011441 11.0653327,37.4686375 L14.3659528,35.5944424 L14.1717987,34.8735981 C13.832029,33.5760783 13.6864134,32.2305023 13.6864134,30.8849263 C13.6864134,29.491294 13.8805675,28.0976617 14.2203372,26.7040294 L14.4144914,25.9831851 L10.82264,24.0128774 C10.3857932,23.7725959 10.0945621,23.3400893 9.997485,22.8114702 C9.8518694,22.2828511 9.94894646,21.7061756 10.2401777,21.273669 L12.0361033,18.1980667 C12.375873,17.573335 12.9583354,17.4291661 13.3466437,17.4291661 C13.7349519,17.4291661 14.1232602,17.5252787 14.5115684,17.7655601 L18.1034198,19.8319805 L18.6373436,19.3033613 C20.675962,17.3330536 22.9087344,16.0355338 25.4812766,15.3146895 L26.1122775,15.1224644 L26.1122775,10.7973986 C26.1122775,9.78821662 27.0830481,8.92320346 28.1994344,8.92320346 L31.7912857,8.92320346 C32.9562105,8.92320346 33.3930573,9.93238548 33.3930573,10.8454549 L33.4415958,15.0744081 L34.1696738,15.2666333 C36.7907545,15.9394213 39.1691425,17.236941 41.1106838,19.0150236 L41.6446076,19.4955864 L45.333536,17.3330536 C45.5762287,17.1888847 45.8674599,17.0927721 46.2072296,17.0927721 C46.9353076,17.0927721 47.6633856,17.5252787 48.0516938,18.1500104 L49.8476195,21.2256128 C50.4300819,22.2347948 49.7505424,23.0998079 48.9739259,23.5323145 L45.4791516,25.5506785 L45.7218443,26.2715228 C46.1586911,27.7132114 46.3528452,29.1549 46.3528452,30.83687 C46.3528452,32.0382772 46.2072296,33.2396843 45.964537,34.3930352 L45.8189214,35.0658232 L49.2166186,36.9880747 C49.6534654,37.2283561 49.9446966,37.6608627 50.0417736,38.1894818 C50.1388507,38.7661572 50.0417736,39.2947764 49.799081,39.7753393 Z" id="Shape"></path>
+                <path d="M12.9892329,7.00604685 C13.1829183,7.00604685 13.3766038,6.95967585 13.5702892,6.82056284 C22.3829766,0.792332397 34.5367378,0.189509353 44.0757456,5.15120672 L40.9767786,6.40322381 L51,9 L45.7220718,0.42136437 L45.2862796,3.71370561 C35.0209514,-1.75807279 21.9471844,-1.15524975 12.4081766,5.33669073 C11.9723843,5.61491675 11.8755416,6.2177398 12.1660698,6.63507883 C12.3597552,6.86693384 12.6987047,7.00604685 12.9892329,7.00604685 Z" id="Path"></path>
+                <path d="M5.17093534,15.9279503 L6.41653468,19.0285714 L9,9 L0.419204489,14.2807453 L3.69466944,14.7167702 C-1.74906104,24.9875776 -1.14932802,38.068323 5.30933526,47.6124224 C5.4938685,47.8546584 5.77066836,48 6.04746821,48 C6.23200145,48 6.41653468,47.9515528 6.60106792,47.8062112 C7.0162677,47.515528 7.10853432,46.8857143 6.83173447,46.4496894 C0.834404272,37.6322981 0.188537943,25.5204969 5.17093534,15.9279503 Z" id="Path"></path>
+                <path d="M46.4781322,54.1804124 C37.6654447,60.2113402 25.5116835,60.814433 15.9242544,55.8505155 L19.0232214,54.5979381 L9,52 L14.2779282,60.5824742 L14.7137204,57.2886598 C19.3621709,59.7938144 24.5916777,61 29.8211845,61 C36.1159612,61 42.3623166,59.1907216 47.5918234,55.6649485 C48.0276157,55.3865979 48.1244584,54.7835052 47.8339302,54.3659794 C47.4949807,53.9948454 46.9139244,53.9020619 46.4781322,54.1804124 Z" id="Path"></path>
+                <path d="M55.693745,12.408684 C55.4167141,11.97235 54.8164805,11.8753869 54.4009342,12.1662762 C53.9853879,12.4571655 53.8930443,13.0874257 54.1700752,13.5237597 C60.1724107,22.3474023 60.7726443,34.5162721 55.8322604,44.067138 L54.5856215,40.9643186 L52,51 L60.5417852,45.7155107 L57.2635866,45.2791768 C62.7580322,35.0495691 62.1577987,21.9595499 55.693745,12.408684 Z" id="Path"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/devops-white.svg b/go.dev/testdata/golden/solutions/devops-white.svg
new file mode 100644
index 0000000..c98d873
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/devops-white.svg
@@ -0,0 +1,18 @@
+<svg width="41px" height="41px" viewBox="0 0 41 41" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-1183.000000, -1062.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group-4" transform="translate(964.000000, 65.000000)">
+                    <g id="noun_operations_1361408-copy" transform="translate(114.000000, 10.000000)">
+                        <path d="M20.5,15 C17.4797688,15 15,17.4479769 15,20.5 C15,23.5202312 17.4797688,26 20.5,26 C23.5202312,26 26,23.5520231 26,20.5 C26,17.4797688 23.5202312,15 20.5,15 Z M20.5,24.7283237 C18.1791908,24.7283237 16.2716763,22.8208092 16.2716763,20.5 C16.2716763,18.1791908 18.1791908,16.2716763 20.5,16.2716763 C22.8208092,16.2716763 24.7283237,18.1791908 24.7283237,20.5 C24.7283237,22.8208092 22.8208092,24.7283237 20.5,24.7283237 Z" id="Shape"></path>
+                        <path d="M34.9224349,25.9736385 C34.7569626,25.2538167 34.3267347,24.6648715 33.7310346,24.3376798 L32.2417841,23.4869813 C32.374162,22.7344403 32.4403509,21.9818993 32.4403509,21.2620775 C32.4403509,20.1823447 32.3410675,19.2334887 32.0763119,18.2846327 L33.5655623,17.401215 C34.8893404,16.648674 35.3195683,15.2417495 34.6245848,14.0311401 L33.40009,11.937113 C32.9036732,11.1191336 31.9770285,10.5629077 31.0172894,10.5629077 C30.5870615,10.5629077 30.1568336,10.6610652 29.7597001,10.8900994 L28.071883,11.8716746 C26.7811993,10.7592227 25.2919489,9.9412434 23.6372263,9.45045579 L23.6372263,7.5854629 C23.6372263,6.08038091 22.6112982,5.00064818 21.2213312,5.00064818 L18.7723416,5.00064818 C17.2830912,4.967929 16.025502,6.17853843 16.025502,7.5854629 L16.025502,9.54861331 C14.4369682,10.0721201 12.9477178,10.9228186 11.6570341,12.1007089 L10.0685004,11.184572 C9.60517802,10.9228186 9.10876122,10.7919419 8.61234442,10.7919419 C7.75188863,10.7919419 7.02381066,11.2172912 6.59358276,11.9698322 L5.36908799,14.0638593 C5.03814345,14.6528044 4.90576564,15.3726262 5.0712379,16.0597289 C5.23671017,16.7795507 5.66693807,17.3684958 6.29573268,17.7284067 L7.85117199,18.5791052 C7.65260527,19.4625229 7.55332191,20.3459406 7.55332191,21.2620775 C7.55332191,22.112776 7.65260527,22.9961937 7.81807754,23.814173 L6.42811049,24.5994332 C5.10433236,25.3519742 4.67410446,26.7588987 5.36908799,27.9695081 L6.59358276,30.0635352 C7.08999956,30.8815145 8.01664426,31.4377405 8.97638341,31.4377405 C9.4066113,31.4377405 9.83683919,31.339583 10.2339726,31.1105487 L11.5908452,30.3252886 C12.9477178,31.5686172 14.6024405,32.484754 16.3564465,33.0082608 L16.3564465,34.4151853 C16.3564465,35.9202673 17.3823746,37 18.7723416,37 L21.2213312,37 C22.7105816,37 23.9681708,35.8221097 23.9681708,34.3824661 L23.9350763,32.8773841 C25.6890824,32.288439 27.3107106,31.339583 28.6344887,30.0635352 L29.9251724,30.8160762 C30.3884948,31.0778296 30.8849116,31.2087063 31.3813284,31.2087063 C32.2417841,31.2087063 32.9698621,30.783357 33.40009,30.030816 L34.6245848,27.9367889 C34.9886238,27.3805629 35.0879071,26.628022 34.9224349,25.9736385 Z M33.4993734,27.3151246 L32.2748786,29.4091517 C32.0432174,29.834501 31.646084,29.9326585 31.3813284,29.9326585 C31.1165727,29.9326585 30.8518171,29.8672201 30.5870615,29.7036243 L28.4028276,28.4602957 L28.0387886,28.8202066 C26.681916,30.2271311 24.9610044,31.2741446 23.0746206,31.7976514 L22.5782038,31.9285281 L22.6443927,34.4151853 C22.6443927,35.1022879 21.9825036,35.6912331 21.2213312,35.6912331 L18.7723416,35.6912331 C17.9780747,35.6912331 17.6802247,35.0041304 17.6802247,34.4151853 L17.6802247,32.0266856 L17.1838079,31.8958089 C15.297424,31.4050213 13.543418,30.4234461 12.1534509,29.0492408 L11.7894119,28.6893299 L9.57208357,29.9653777 C9.4066113,30.0635352 9.20804458,30.1289735 8.97638341,30.1289735 C8.47996661,30.1289735 7.9835498,29.834501 7.71879418,29.4091517 L6.4942994,27.3151246 C6.09716596,26.628022 6.56048831,26.0390768 7.08999956,25.7446043 L9.34042239,24.4685565 L9.20804458,23.9777689 C8.97638341,23.0943512 8.87710005,22.1782143 8.87710005,21.2620775 C8.87710005,20.3132214 9.00947786,19.3643654 9.24113903,18.4155094 L9.37351685,17.9247218 L6.9245273,16.5832356 C6.62667721,16.4196398 6.42811049,16.1251672 6.36192159,15.7652563 C6.26263823,15.4053454 6.32882713,15.0127153 6.52739385,14.7182427 L7.75188863,12.6242156 C7.9835498,12.1988664 8.38068325,12.1007089 8.64543887,12.1007089 C8.9101945,12.1007089 9.17495013,12.1661472 9.43970575,12.3297431 L11.8886953,13.7366675 L12.2527343,13.3767566 C13.6427013,12.0352705 15.1650462,11.1518528 16.9190522,10.6610652 L17.3492801,10.5301885 L17.3492801,7.5854629 C17.3492801,6.89836025 18.0111692,6.30941512 18.7723416,6.30941512 L21.2213312,6.30941512 C22.015598,6.30941512 22.3134481,6.99651777 22.3134481,7.61818207 L22.3465426,10.4974694 L22.8429594,10.628346 C24.6300599,11.0864145 26.2516881,11.9698322 27.5754662,13.1804416 L27.9395052,13.5076333 L30.4546837,12.0352705 C30.6201559,11.937113 30.8187227,11.8716746 31.0503838,11.8716746 C31.5468006,11.8716746 32.0432174,12.1661472 32.3079731,12.5914965 L33.5324678,14.6855236 C33.9296013,15.3726262 33.4662789,15.9615713 32.9367677,16.2560439 L30.553967,17.6302492 L30.7194393,18.1210368 C31.0172894,19.102612 31.1496672,20.0841872 31.1496672,21.2293583 C31.1496672,22.0473376 31.0503838,22.865317 30.8849116,23.6505772 L30.7856282,24.1086456 L33.1022399,25.4174125 C33.40009,25.5810084 33.5986567,25.875481 33.6648456,26.2353919 C33.7310346,26.628022 33.6648456,26.9879329 33.4993734,27.3151246 Z" id="Shape"></path>
+                        <path d="M8.65948859,4.6706979 C8.78861222,4.6706979 8.91773584,4.6397839 9.04685947,4.54704189 C14.9219844,0.528221598 23.0244919,0.126339569 29.3838304,3.43413781 L27.3178524,4.26881587 L34,6 L30.4813812,0.28090958 L30.1908531,2.47580374 C23.3473009,-1.17204853 14.6314563,-0.770166497 8.27211772,3.55779382 C7.98158956,3.74327783 7.91702775,4.14515986 8.11071319,4.42338588 C8.23983681,4.5779559 8.46580316,4.6706979 8.65948859,4.6706979 Z" id="Path"></path>
+                        <path d="M3.44729022,10.6186335 L4.27768979,12.6857143 L6,6 L0.279469659,9.52049689 L2.46311296,9.81118012 C-1.1660407,16.6583851 -0.766218683,25.378882 3.53955684,31.7416149 C3.662579,31.9031056 3.84711224,32 4.03164547,32 C4.15466763,32 4.27768979,31.9677019 4.40071195,31.8708075 C4.6775118,31.6770186 4.73902288,31.2571429 4.55448965,30.9664596 C0.556269514,25.0881988 0.125691962,17.0136646 3.44729022,10.6186335 Z" id="Path"></path>
+                        <path d="M30.9854214,36.4536082 C25.1102965,40.4742268 17.007789,40.8762887 10.6161696,37.5670103 L12.6821476,36.7319588 L6,35 L9.51861878,40.7216495 L9.80914694,38.5257732 C12.9081139,40.1958763 16.3944518,41 19.8807897,41 C24.0773075,41 28.2415444,39.7938144 31.7278823,37.443299 C32.0184104,37.257732 32.0829722,36.8556701 31.8892868,36.5773196 C31.6633205,36.3298969 31.2759496,36.2680412 30.9854214,36.4536082 Z" id="Path"></path>
+                        <path d="M37.4624966,8.27245599 C37.2778094,7.98156668 36.8776537,7.91692461 36.6006228,8.11085082 C36.3235919,8.30477703 36.2620295,8.72495049 36.4467168,9.0158398 C40.4482738,14.8982682 40.8484295,23.010848 37.5548403,29.378092 L36.7237477,27.3095457 L35,34 L40.6945235,30.4770072 L38.5090577,30.1861178 C42.1720215,23.3663794 41.7718658,14.6396999 37.4624966,8.27245599 Z" id="Path"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/devops/index.html b/go.dev/testdata/golden/solutions/devops/index.html
new file mode 100644
index 0000000..f0d19dc
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/devops/index.html
@@ -0,0 +1,793 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Development Operations &amp; Site reliability Engineering - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+    <div class="UseCaseSubNav js-useCaseSubnav">
+      <button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader">
+        Jump to
+        <img
+          class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon"
+          alt="Open menu icon" src="/images/icons/chevron-down.svg">
+      </button>
+      <div class="UseCaseSubNav-menu js-useCaseSubnavMenu">
+        <div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks">
+        </div>
+      </div>
+    </div>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--useCase">
+    <div class="WhoUsesSubPage-heroInner--useCase">
+      <div class="WhoUsesSubPage-heroContent--useCase">
+        <div class="WhoUsesSubPage-heroText--useCase">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/devops">
+
+            Development Operations &amp; Site reliability Engineering
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Development Operations &amp; Site reliability Engineering</h1>
+
+
+            <div class="Article-date">3 October 2019</div>
+
+        </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="UseCase-content">
+        <div class="UseCase-contentAside">
+          <div
+            class="js-useCaseStickyNav UseCaseSubNav-anchorLinks">
+          </div>
+        </div>
+        <div class="UseCase-contentBody js-useCaseContentBody">
+
+
+
+
+<h2 id="overview" class="sectionHeading">Overview</h2>
+
+<h3 id="go-helps-enterprises-automate-and-scale">Go helps enterprises automate and scale</h3>
+
+<p>Development Operations (DevOps) teams help engineering organizations automate tasks and improve their continuous
+integration and continuous delivery and deployment (CI/CD) process. DevOps can topple developmental silos and implement
+tooling and automation to enhance software development, deployment, and support.</p>
+
+<p>Site Reliability Engineering (SRE) was born at Google to make the company’s “large-scale sites more reliable, efficient,
+and scalable,”<a href="https://opensource.com/article/18/10/what-site-reliability-engineer" rel="noreferrer" target="_blank"> writes Silvia Fressard</a>, an
+independent DevOps consultant. “And the practices they developed responded so well to Google’s needs that other big tech
+companies, such as Amazon and Netflix, also adopted them.” SRE requires a mix of development and operations skills, and
+“<a href="https://stackify.com/site-reliability-engineering/" rel="noreferrer" target="_blank">empowers software developers</a> to own the ongoing daily operation
+of their applications in production.”</p>
+
+<p>Go serves both siblings, DevOps and SRE, from its fast build times and lean syntax to its security and reliability support. Go&rsquo;s concurrency and networking features also make it ideal for tools that manage cloud deployment—readily supporting automation while
+scaling for speed and code maintainability as development infrastructure grows over time.</p>
+
+<p>DevOps/SRE teams write software ranging from small scripts, to command-line interfaces (CLI), to complex automation and services, and Go’s feature set has benefits for every situation.</p>
+
+<h2 id="key-benefits" class="sectionHeading">Key Benefits</h2>
+
+<h3 id="easily-build-small-scripts-with-gos-robust-standard-library-and-static-typing">Easily build small scripts with Go’s robust standard library and static typing</h3>
+
+<p>Go’s fast build and startup times. Go’s extensive standard library—including packages for
+common needs like HTTP, file I/O, time, regular expressions, exec, and JSON/CSV formats—lets DevOps/SREs get right into their business logic. Plus, Go’s static type system and explicit error handling make even small scripts more robust.</p>
+
+<h3 id="quickly-deploy-clis-with-gos-fast-build-times">Quickly deploy CLIs with Go’s fast build times</h3>
+
+<p>Every site reliability engineer has written “one-time use” scripts that turned into CLIs used by dozens of other engineers every day. And small deployment automation scripts turn into rollout management services. With Go, DevOps/SREs are in a great position to be successful when software scope inevitably creeps. Starting with Go puts you in a great position to be successful when that happens.</p>
+
+<h3 id="scale-and-maintain-larger-applications-with-gos-low-memory-footprint-and-doc-generator">Scale and maintain larger applications with Go’s low memory footprint and doc generator</h3>
+
+<p>Go’s garbage collector means DevOps/SRE teams don’t have to worry about memory management. And Go’s automatic documentation generator (godoc) makes code self-documenting–lowering maintenance overhead and establishing best practices from the get-go.</p>
+
+
+<div class="FeaturedUsers">
+
+<h2 id="featured-users" class="sectionHeading">Featured users</h2>
+
+
+
+<table>
+  <thead>
+    <tr>
+      <th class="FeaturedUsers--hiddenMobile">Customer</th>
+      <th>Brief introduction</th>
+      <th>Projects using go</th>
+    </tr>
+  </thead>
+
+  <tbody>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/docker.svg" alt="Docker" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/docker.svg" alt="Docker" />
+        Docker is a software-as-a-service (SaaS) product, written in Go, that DevOps/SRE teams leverage to “drive secure automation and deployment at massive scale,” supporting their CI/CD efforts.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://www.docker.com/solutions/cicd">Docker CI/CD</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/drone.svg" alt="Drone" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/drone.svg" alt="Drone" />
+        Drone is a Continuous Delivery system built on container technology, written in Go, that uses a simple YAML configuration file, a superset of docker-compose, to define and execute Pipelines inside Docker containers.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://github.com/drone">Drone</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/etcd.svg" alt="etcd" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/etcd.svg" alt="etcd" />
+        etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines, and it&#39;s written in Go.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://github.com/etcd-io/etcd">etcd</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/ibm.svg" alt="IBM" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/ibm.svg" alt="IBM" />
+        IBM’s DevOps teams use Go through Docker and Kubernetes, plus other DevOps and CI/CD tools written in Go. The company also supports connection to it’s messaging middleware through a Go-specific API.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://developer.ibm.com/messaging/2019/02/05/simplified-ibm-mq-applications-golang/">IBM Applications in Golang</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/netflix.svg" alt="Netflix" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/netflix.svg" alt="Netflix" />
+        Netflix uses Go to handle large scale data caching, with a service called Rend, which manages globally replicated storage for personalization data.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef">Application Data Caching</a></li>
+
+          <li><a href="https://github.com/netflix/rend">Rend</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/microsoft.svg" alt="Microsoft" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/microsoft.svg" alt="Microsoft" />
+        Microsoft uses Go in Azure Red Hat OpenShift services. This Microsoft solution provides DevOps teams with OpenShift clusters to maintain regulatory compliance and focus on application development.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://azure.microsoft.com/en-us/services/openshift/">OpenShift</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/terraform-icon.svg" alt="Terraform" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/terraform-icon.svg" alt="Terraform" />
+        Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. It supports a number of cloud providers such as AWS, IBM Cloud, GCP, and Microsoft Azure - and it’s written in Go.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://www.terraform.io/intro/index.html">Terraform</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/prometheus.svg" alt="Prometheus" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/prometheus.svg" alt="Prometheus" />
+        Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Most Prometheus components are written in Go, making them easy to build and deploy as static binaries.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://github.com/prometheus/prometheus">Prometheus</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/youtube.svg" alt="YouTube" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/youtube.svg" alt="YouTube" />
+        YouTube uses Go with Vitess (now part of PlanetScale), its database clustering system for horizontal scaling of MySQL through generalized sharding. Since 2011 it’s been a core component of YouTube’s database infrastructure, and has grown to encompass tens of thousands of MySQL nodes.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://github.com/vitessio/vitess">Vitess</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+  </tbody>
+</table>
+
+<button
+  class="js-moreProjectsBtn FeaturedUsers-moreProjectsBtn"
+  type="button">
+ More projects
+</button>
+
+
+
+</div>
+
+<h2 id="get-started" class="sectionHeading">Get Started</h2>
+
+<h3 id="go-books-on-devops--sre">Go books on DevOps &amp; SRE</h3>
+
+<ul class="Learn-tileList">
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Go-Programming-Network-Operations-Automation-ebook/dp/B07JKKN34L/ref=sr_1_16">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Go Programming for Network Operations thumbnail." src="/images/books/go-programming-for-network-operations.jpg">
+
+            <span class="Learn-tileTitle">
+                Go Programming for Network Operations
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://github.com/matryer/goblueprints">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Go Programming Blueprints thumbnail." src="/images/learn/go-programming-blueprints.png">
+
+            <span class="Learn-tileTitle">
+                Go Programming Blueprints
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Go-Action-William-Kennedy/dp/1617291781">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Go in Action thumbnail." src="/images/books/go-in-action.jpg">
+
+            <span class="Learn-tileTitle">
+                Go in Action
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.gopl.io/">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="The Go Programming Language thumbnail." src="/images/learn/go-programming-language-book.png">
+
+            <span class="Learn-tileTitle">
+                The Go Programming Language
+            </span>
+        </a>
+    </li>
+
+</ul>
+
+
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Monitoring and tracing</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/opentracing/opentracing-go?tab=overview">opentracing/opentracing-go</a>
+      <p>Vendor-neutral APIs and instrumentation for distributed tracing</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/jaegertracing/jaeger-client-go?tab=overview">jaegertracing/jaeger-client-go</a>
+      <p>An open source distributed tracing system developed by Uber formats</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/grafana/grafana?tab=overview">grafana/grafana</a>
+      <p>An open-source platform for monitoring and observability</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/istio/istio?tab=overview">istio/istio</a>
+      <p>An open-source service mesh and integratable platform</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=tracing">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>CLI Libraries</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/spf13/cobra?tab=overview">spf13/cobra</a>
+      <p>A library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/spf13/viper?tab=overview">spf13/viper</a>
+      <p>A complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/urfave/cli?tab=overview">urfave/cli</a>
+      <p>A minimal framework for creating and organizing command line Go applications</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=command%20line%20OR%20CLI">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Other projects</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/golang-migrate/migrate?tab=overview">golang-migrate/migrate</a>
+      <p>A database migration tool written in Go</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="">View More</a>
+</div>
+
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/dropbox/index.html b/go.dev/testdata/golden/solutions/dropbox/index.html
new file mode 100644
index 0000000..3a72db5
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/dropbox/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Dropbox - Open sourcing our Go libraries - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/dropbox">
+
+            Dropbox
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Dropbox - Open sourcing our Go libraries</h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Dropbox">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/dropbox.png" class="CaseStudy-aboutBlockImg" alt="Dropbox">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Dropbox
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">About a year ago, we decided to migrate our performance-critical backends from Python to Go to leverage better concurrency support and faster execution speed. &hellip; At this point, we have successfully moved major parts of our infrastructure to Go.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/facebook/index.html b/go.dev/testdata/golden/solutions/facebook/index.html
new file mode 100644
index 0000000..48ab3d1
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/facebook/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://entgo.io/blog/2019/10/03/introducing-ent/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/facebook">
+
+            Facebook
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Facebook">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/facebook.png" class="CaseStudy-aboutBlockImg" alt="Facebook">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Facebook
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Learn about a Facebook engineering team&rsquo;s decision to write a new entity framework (ORM) in Go.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/firebase/index.html b/go.dev/testdata/golden/solutions/firebase/index.html
new file mode 100644
index 0000000..8cd7d16
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/firebase/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>/solutions/google/firebase</title><link rel="canonical" href="/solutions/google/firebase"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=/solutions/google/firebase" /></head></html>
diff --git a/go.dev/testdata/golden/solutions/google/chrome/index.html b/go.dev/testdata/golden/solutions/google/chrome/index.html
new file mode 100644
index 0000000..bc64fb6
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/google/chrome/index.html
@@ -0,0 +1,459 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Chrome Content Optimization Service Runs on Go - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/google/">
+
+            Google
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/google/chrome">
+
+            Chrome
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Chrome Content Optimization Service Runs on Go</h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_chrome_case_study.png" alt="Chrome">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+          <p>When the product Chrome comes to mind, you probably think solely of the
+user-installed browser. But behind the scenes, Chrome has an extensive fleet of
+backends. Among these is the Chrome Optimization Guide service. This service
+forms an important basis for Chrome&rsquo;s user experience strategy, operating in the
+critical path for users, and is implemented in Go.</p>
+
+<p>The Chrome Optimization Guide service is designed to bring the power of Google
+to Chrome by providing hints to the installed browser about what optimizations
+may be performed on a page load, as well as when they can be applied most
+effectively. It comprises a conjunction of real-time servers and batch logs
+analysis.</p>
+
+<p>All Lite mode users of Chrome receive data via the service through the following
+mechanisms: a data blob push that provides hints for well-known sites in their
+geography, a check-in to Google servers to retrieve hints for hosts that the
+specific user visits often, and on demand for page loads for which a hint is not
+already on the device. Were the Chrome Optimization Guide service to suddenly
+disappear, users might notice a dramatic change in the speed of their page loads
+and the amount of data consumed while browsing the web.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Given that Go was a success for us, we plan to continue to use
+it where appropriate”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Sophie Chang</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Software Engineer</span>
+      </div>
+    </div>
+
+
+<p>When the Chrome engineering team started building the service, only a few
+members had comfort with Go. Most of the team was more familiar with C++, but
+they found the complex boilerplate required to stand up a C++ server to be too
+much. The team shared that “[they] were pretty motivated to learn Go due to its
+simplicity, fast ramp-up, and ecosystem.” and that “[their] sense of adventure
+was rewarded.” Millions of users rely on this service to make their Chrome
+experience better, and choosing Go was no small decision. After their experience
+so far, the team also shared that “given that Go was a success for us, we plan
+to continue to use it where appropriate.”</p>
+
+<p>In addition to the Chrome Optimization Guide team, engineering teams across
+Google have adopted Go in their development process. Read about how the <a href="/solutions/google/coredata/">Core
+Data Solutions</a> and <a href="/solutions/google/firebase/">Firebase
+Hosting</a> teams use Go to build fast, reliable,
+and efficient software at scale.</p>
+
+<p><em>Editorial note: The Go team would like to thank Sophie Chang for her
+contributions to this story.</em></p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/chrome.svg" class="CaseStudy-aboutBlockImg" alt="Chrome">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Chrome
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody"><p>Google Chrome is a more simple, secure, and faster web browser than ever,
+with Google&rsquo;s smarts built-in.</p>
+
+<p>In this case study, the Chrome Optimization Guide
+team shared how they experimented with Go, ramped up quickly, and their plans to
+use Go going forward.</p>
+</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/google/coredata/index.html b/go.dev/testdata/golden/solutions/google/coredata/index.html
new file mode 100644
index 0000000..c556d20
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/google/coredata/index.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>How Google&#39;s Core Data Solutions Team Uses Go - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/google/">
+
+            Google
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/google/coredata">
+
+            Core Data
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>How Google&#39;s Core Data Solutions Team Uses Go</h1>
+
+            <div class="Article-author">Prasanna Meda, Software Engineer, Core Data Solutions</div>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_core_data_case_study.png" alt="Core Data">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+          <p>Google&rsquo;s mission is “to organize the world&rsquo;s information and make it universally
+accessible and useful.”  One of the teams responsible for organizing that
+information is Google’s Core Data Solutions team. The team, among other things,
+maintains services to index web pages across the globe. These web indexing
+services help support products like Google Search by keeping search results
+updated and comprehensive, and they’re written in Go.</p>
+
+<p>In 2015, to keep up with Google’s scale, our team needed to rewrite our indexing
+stack from a single monolithic binary written in C++ to multiple components in a
+microservices architecture. We decided to rewrite many indexing services in Go,
+which we now use to power the majority of our architecture.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Go’s built-in concurrency is a natural fit because engineers on the team are
+encouraged to use concurrency and parallel algorithms.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Minjae Hwang</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Software Engineer</span>
+      </div>
+    </div>
+
+
+<p>When choosing a language, our team found that several of Go’s features made it
+particularly suitable. For instance, Go’s built-in concurrency is a natural fit
+because engineers on the team are encouraged to use concurrency and parallel
+algorithms. Engineers have also found that “Go code is more natural,” allowing
+them to spend their time focusing on business logic and analysis rather than on
+managing memory and optimizing performance.</p>
+
+<p>Writing code is much simpler when writing in Go, as it helps lessen cognitive
+burden during the development process. For example, when working with C++,
+sophisticated IDEs might, “show that the source code has no compile error when
+there actually is one” whereas “in Go, [the code] will always compile when [the
+IDE] says the code has no compile error,” said MinJae Hwang, a software engineer
+on the Core Data Solutions team. Reducing small friction points along the
+development process, such as shortening the cycle of fixing compile errors,
+helped our team ship faster during the original rewrite, and has helped keep our
+maintenance costs low.</p>
+
+<p>“When I’m in C++ and I want to use more packages, I have to write pieces such as
+headers. When I&rsquo;m writing in Go, <strong>built-in tools allow me to use packages more
+easily. My development velocity is much faster,</strong>” Hwang also shared.</p>
+
+<p>With simple language syntax and support of Go tools, several members of our team
+find it much easier to write in Go code. We’ve also found that Go does a really
+good job of static type checking and that certain Go fundamentals, such as the
+godoc command, have helped the team build a more disciplined culture around
+writing documentation.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “&hellip;Google’s web indexing was re-architected within a year. More impressively,
+most developers on the team were rewriting in Go while also learning it.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Prasanna Meda</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Software Engineer</span>
+      </div>
+    </div>
+
+
+<p>Working on a product used so heavily around the world is no small task and our
+team’s decision to use Go wasn’t a simple one, but doing so helped us move
+faster. As a result, Google’s web indexing was re-architected within a year.
+More impressively, most developers on the team were rewriting in Go while also
+learning it.</p>
+
+<p>In addition to the Core Data Solutions team, engineering teams across Google
+have adopted Go in their development process. Read about how the
+<a href="/solutions/google/chrome/">Chrome</a> and <a href="/solutions/google/firebase/">Firebase
+Hosting</a> teams use Go to build fast, reliable, and
+efficient software at scale.</p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/google.svg" class="CaseStudy-aboutBlockImg" alt="Core Data">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Core Data
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody"><p>Google is a technology company whose mission is to organize the world’s
+information and make it universally accessible and useful.</p>
+
+<p>In this case study, Google’s Core Data Solutions team shares their journey
+with Go, including their decision to rewrite web indexing services in Go,
+taking advantage of Go’s built-in concurrency, and observing how Go helps to
+improve the development process.</p>
+</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/google/firebase/index.html b/go.dev/testdata/golden/solutions/google/firebase/index.html
new file mode 100644
index 0000000..cbd28aa
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/google/firebase/index.html
@@ -0,0 +1,474 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>How the Firebase Hosting Team Scaled With Go - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/google/">
+
+            Google
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/google/firebase">
+
+            Firebase
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>How the Firebase Hosting Team Scaled With Go</h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_firebase_case_study.png" alt="Firebase">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+          <p>The Firebase Hosting team provides static web hosting services for Google Cloud
+customers. They provide a static web host that sits behind a global content
+delivery network, and offer users tools that are easy to use. The team also
+develops features that range from uploading site files to registering domains to
+tracking usage.</p>
+
+<p>Before joining Google, Firebase Hosting’s tech stack was written in Node.js. The
+team started to use Go when they needed to interoperate with several other
+Google services. They decided to use Go to help them scale easily and
+efficiently, knowing that “concurrency would continue to be a big need.” They
+“were confident Go would be more performant,” and “liked that Go is more terse”
+than other languages they were considering, said Michael Bleigh, a software
+engineer on the team.</p>
+
+<p>Starting with one small service written in Go, the team migrated their entire
+backend in a series of moves. The team progressively identified large features
+they wanted to implement and, in the process, rewrote them in Go and moved to
+Google Cloud and Google’s internal cluster management system. <strong>Now the Firebase
+Hosting team has replaced 100% of backend Node.js code with Go.</strong></p>
+
+<p>The team’s experience writing in Go began with one engineer. “Through
+peer-to-peer learning and Go being generally easy to get started with, everyone
+on the team now has Go dev experience,” said Bleigh. They’ve found that while a
+majority of people who are new to the team haven’t had any experience with Go,
+“most of them are productive within a couple weeks.”</p>
+
+<p>&ldquo;Using Go, it&rsquo;s easy to see how the code is organized and what the code does,&rdquo;
+said Bleigh, speaking for the team. “Go is generally very readable and
+understandable. The language’s error handling, receivers, and interfaces are all
+easy to understand due to the idioms in the language.”</p>
+
+<p>Concurrency continues to be a focus for the team as they scale. Robert Rossney,
+a software engineer, shared that “Go makes it very easy to put all of the hard
+concurrency stuff in one place, and everywhere else it&rsquo;s abstracted.” Rossney
+also spoke to the benefits of using a language built with concurrency in mind,
+saying that “there are also a lot of ways to do concurrency in Go. We’ve had to
+learn when each route is best, how to determine when a problem is a concurrency
+problem, how to debug–but that comes out of the fact that you actually can write
+these patterns in Go code.”</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Generally speaking, there’s not a time on the team where we’re feeling
+frustrated with Go, it just kind of gets out of the way and lets you do work.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Robert Rossney</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Software Engineer</span>
+      </div>
+    </div>
+
+
+<p>Hundreds of thousands of customers host their websites with Firebase Hosting,
+which means Go code is used to serve billions of requests per day. “Our customer
+base and traffic have doubled multiple times since migrating to Go without ever
+requiring fine-tuned optimizations” shared Bleigh.  With Go, the team has seen
+performance improvements both in the software and on the team, with excellent
+productivity gains. “Generally speaking,” Rossney mentioned, “&hellip;there’s not a
+time on the team where we’re feeling frustrated with Go, it just kind of gets
+out of the way and lets you do work.”</p>
+
+<p>In addition to the Firebase Hosting team, engineering teams across Google have
+adopted Go in their development process. Read about how the <a href="/solutions/google/coredata/">Core Data
+Solutions</a> and <a href="/solutions/google/chrome/">Chrome</a>
+teams use Go to build fast, reliable, and efficient software at scale.</p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/firebase.svg" class="CaseStudy-aboutBlockImg" alt="Firebase">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Firebase
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody"><p>Firebase is Google’s mobile platform that helps you quickly develop high-quality
+apps and grow your business.</p>
+
+<p>The Firebase Hosting team shared their journey with Go, including their
+backend migration from Node.js, the ease of onboarding new Go developers, and
+how Go has helped them scale.</p>
+</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/google/index.html b/go.dev/testdata/golden/solutions/google/index.html
new file mode 100644
index 0000000..fa6f8e2
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/google/index.html
@@ -0,0 +1,462 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Using Go at Google - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/google/">
+
+            Google
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Using Go at Google</h1>
+
+
+            <div class="Article-date">27 August 2020</div>
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_core_data_case_study.png" alt="Google">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+
+<div class="PullQuote">
+  <div class="PullQuote-quoteHeader">
+    <img class="PullQuote-image" src="/images/quote.svg" alt="Quotation mark.">
+  </div>
+  <p class="PullQuote-body">
+    <p>Go started in September 2007 when Robert Griesemer, Ken Thompson, and I began
+discussing a new language to address the engineering challenges we and our
+colleagues at Google were facing in our daily work.</p>
+
+<p>When we first released Go to the public in November 2009, we didn’t know if the
+language would be widely adopted or if it might influence future languages.
+Looking back from 2020, Go has succeeded in both ways: it is widely used both
+inside and outside Google, and its approaches to network concurrency and
+software engineering have had a noticeable effect on other languages and their
+tools.</p>
+
+<p>Go has turned out to have a much broader reach than we had ever expected. Its
+growth in the industry has been phenomenal, and it has powered many projects at
+Google.</p>
+
+  </p>
+  <div class="PullQuote-author">
+    <span>
+      &mdash; Rob Pike</span>
+    </div>
+  </div>
+
+<p>The following stories are a small sample of the many ways that Go is used at Google.</p>
+
+<h3 id="how-googles-core-data-solutions-team-uses-go">How Google&rsquo;s Core Data Solutions Team Uses Go</h3>
+
+<p>Google&rsquo;s mission is “to organize the world&rsquo;s information and make it universally
+accessible and useful.”  One of the teams responsible for organizing that
+information is Google’s Core Data Solutions team. The team, among other things,
+maintains services to index web pages across the globe. These web indexing
+services help support products like Google Search by keeping search results
+updated and comprehensive, and they’re written in Go.</p>
+
+<p><a href="/solutions/google/coredata/">Learn more</a></p>
+
+<hr />
+
+<h3 id="chrome-content-optimization-service-runs-on-go">Chrome Content Optimization Service Runs on Go</h3>
+
+<p>When the product Chrome comes to mind, you probably think solely of the user-installed browser. But behind the scenes, Chrome has an extensive fleet of backends. Among these is the Chrome Optimization Guide service. This service forms an important basis for Chrome’s user experience strategy, operating in the critical path for users, and is implemented in Go.</p>
+
+<p><a href="/solutions/google/chrome/">Learn more</a></p>
+
+<hr />
+
+<h3 id="how-the-firebase-hosting-team-scaled-with-go">How the Firebase Hosting Team Scaled With Go</h3>
+
+<p>The Firebase Hosting team provides static web hosting services for Google Cloud customers. They provide a static web host that sits behind a global content delivery network, and offer users tools that are easy to use. The team also develops features that range from uploading site files to registering domains to tracking usage.</p>
+
+<p><a href="/solutions/google/firebase/">Learn more</a></p>
+
+<hr />
+
+<h3 id="actuating-google-production-how-googles-site-reliability-engineering-team-uses-go">Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go</h3>
+
+<p>Google runs a small number of very large services. Those services are powered by a global infrastructure covering everything one needs: storage systems, load balancers, network, logging, monitoring, and many more. Nevertheless, it is not a static system - it cannot be. Architecture evolves, new products and ideas are created, new versions must be rolled out, configs pushed, database schema updated, and more. We end up deploying changes to our systems dozens of times per second.</p>
+
+<p><a href="/solutions/google/sitereliability/">Learn more</a></p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/google.svg" class="CaseStudy-aboutBlockImg" alt="Google">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Google
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody"><p>Google is a technology company whose mission is to organize the world’s
+information and make it universally accessible and useful.</p>
+
+<p>Go was created at Google in 2007 to improve programming productivity in an
+era of multi-core networked machines and large codebases. Today, over 10
+years since its public announcement in 2009, Go&rsquo;s use inside Google has grown
+tremendously.</p>
+</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/google/index.xml b/go.dev/testdata/golden/solutions/google/index.xml
new file mode 100644
index 0000000..67cfd77
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/google/index.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Using Go at Google on go.dev</title>
+    <link>https://go.dev/solutions/google/</link>
+    <description>Recent content in Using Go at Google on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    <lastBuildDate>Thu, 27 Aug 2020 00:00:00 +0000</lastBuildDate>
+    
+	<atom:link href="https://go.dev/solutions/google/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+    <item>
+      <title>Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go</title>
+      <link>https://go.dev/solutions/google/sitereliability/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/sitereliability/</guid>
+      <description>Google runs a small number of very large services. Those services are powered by a global infrastructure covering everything a developer needs: storage systems, load balancers, network, logging, monitoring, and much more. Nevertheless, it is not a static system—it cannot be. Architecture evolves, new products and ideas are created, new versions must be rolled out, configs pushed, database schema updated, and more. We end up deploying changes to our systems dozens of times per second.</description>
+    </item>
+    
+    <item>
+      <title>Chrome Content Optimization Service Runs on Go</title>
+      <link>https://go.dev/solutions/google/chrome/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/chrome/</guid>
+      <description>When the product Chrome comes to mind, you probably think solely of the user-installed browser. But behind the scenes, Chrome has an extensive fleet of backends. Among these is the Chrome Optimization Guide service. This service forms an important basis for Chrome&amp;rsquo;s user experience strategy, operating in the critical path for users, and is implemented in Go.
+The Chrome Optimization Guide service is designed to bring the power of Google to Chrome by providing hints to the installed browser about what optimizations may be performed on a page load, as well as when they can be applied most effectively.</description>
+    </item>
+    
+    <item>
+      <title>How Google&#39;s Core Data Solutions Team Uses Go</title>
+      <link>https://go.dev/solutions/google/coredata/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/coredata/</guid>
+      <description>Google&amp;rsquo;s mission is “to organize the world&amp;rsquo;s information and make it universally accessible and useful.” One of the teams responsible for organizing that information is Google’s Core Data Solutions team. The team, among other things, maintains services to index web pages across the globe. These web indexing services help support products like Google Search by keeping search results updated and comprehensive, and they’re written in Go.
+In 2015, to keep up with Google’s scale, our team needed to rewrite our indexing stack from a single monolithic binary written in C++ to multiple components in a microservices architecture.</description>
+    </item>
+    
+    <item>
+      <title>How the Firebase Hosting Team Scaled With Go</title>
+      <link>https://go.dev/solutions/google/firebase/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/google/firebase/</guid>
+      <description>The Firebase Hosting team provides static web hosting services for Google Cloud customers. They provide a static web host that sits behind a global content delivery network, and offer users tools that are easy to use. The team also develops features that range from uploading site files to registering domains to tracking usage.
+Before joining Google, Firebase Hosting’s tech stack was written in Node.js. The team started to use Go when they needed to interoperate with several other Google services.</description>
+    </item>
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/google/sitereliability/index.html b/go.dev/testdata/golden/solutions/google/sitereliability/index.html
new file mode 100644
index 0000000..17fc1c0
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/google/sitereliability/index.html
@@ -0,0 +1,510 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/google/">
+
+            Google
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/google/sitereliability">
+
+            Google Site Reliability Engineering (SRE)
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Actuating Google Production: How Google’s Site Reliability Engineering Team Uses Go</h1>
+
+            <div class="Article-author">Pierre Palatin, Site Reliability Engineer</div>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_sitereliability_case_study.png" alt="Google Site Reliability Engineering (SRE)">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+          <p>Google runs a small number of very large services. Those services are powered
+by a global infrastructure covering everything a developer needs: storage
+systems, load balancers, network, logging, monitoring, and much more.
+Nevertheless, it is not a static system—it cannot be. Architecture evolves,
+new products and ideas are created, new versions must be rolled out, configs
+pushed, database schema updated, and more. We end up deploying changes to our
+systems dozens of times per second.</p>
+
+<p>Because of this scale and critical need for reliability, Google pioneered Site
+Reliability Engineering (SRE), a role that many other companies have since adopted.
+“SRE is what you get when you treat operations as if it’s a software problem.
+Our mission is to protect, provide for, and progress the software and systems
+behind all of Google’s public services with an ever-watchful eye on their
+availability, latency, performance, and capacity.”
+— <a href="https://sre.google/" rel="noreferrer" target="_blank">Site Reliability Engineering (SRE)</a>.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Go promised a sweet spot between performance and readability that neither of
+the other languages [Python and C++] were able to offer.”
+    </p>
+    </div>
+
+
+<p>In 2013-2014, Google’s SRE team realized that our approach to production
+management was not cutting it anymore in many ways. We had advanced far beyond
+shell scripts, but our scale had so many moving pieces and complexities that a
+new approach was needed. We determined that we needed to move toward a
+declarative model of our production, called &ldquo;Prodspec&rdquo;, driving a dedicated
+control plane, called &ldquo;Annealing&rdquo;.</p>
+
+<p>When we started those projects, Go was just becoming a viable option for
+critical services at Google. Most engineers were more familiar with Python
+and C++, either of which would have been valid choices. Nevertheless, Go
+captured our interest. The appeal of novelty was certainly a factor of
+course. But, more importantly, Go promised a sweet spot between performance
+and readability that neither of the other languages were able to offer. We
+started a small experiment with Go for some initial parts of Annealing and
+Prodspec. As the projects progressed, those initial parts written in Go found
+themselves at the core. We were happy with Go—its simplicity grew on us, the
+performance was there, and concurrency primitives would have been hard to
+replace.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Now the majority of Google production is managed and maintained by our systems
+written in Go.”
+    </p>
+    </div>
+
+
+<p>At no point was there ever a mandate or requirement to use Go, but we had no
+desire to return to Python or C++. Go grew organically in Annealing and
+Prodspec. It was the right choice, and thus is now our language of choice.
+Now the majority of Google production is managed and maintained by our systems
+written in Go.</p>
+
+<p>The power of having a simple language in those projects is hard to overstate.
+There have been cases where some feature was indeed missing, such as the
+ability to enforce in the code that some complex structure should not be
+mutated. But for each one of those cases, there have undoubtedly been tens or
+hundred of cases where the simplicity helped.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Go’s simplicity means that the code is easy to follow, whether it is to spot
+bugs during review or when trying to determine exactly what happened during a
+service disruption.”
+    </p>
+    </div>
+
+
+<p>For example, Annealing impacts a wide variety of teams and services meaning
+that we relied heavily on contributions across the company. The simplicity of
+Go made it possible for people outside our team to see why some part or another
+was not working for them, and often provide fixes or features themselves. This
+allowed us to quickly grow.</p>
+
+<p>Prodspec and Annealing are in charge of some quite critical components. Go’s
+simplicity means that the code is easy to follow, whether it is to spot bugs
+during review or when trying to determine exactly what happened during a
+service disruption.</p>
+
+<p>Go performance and concurrency support have also been key for our work. As our
+model of production is declarative, we tend to manipulate a lot of structured
+data, which describes what production is and what it should be. We have large
+services so the data can grow large, often making purely sequential processing
+not efficient enough.</p>
+
+<p>We are manipulating this data in many ways and many places. It is not a matter
+of having a smart person come up with a parallel version of our algorithm. It
+is a matter of casual parallelism, finding the next bottleneck and
+parallelising that code section. And Go enables exactly that.</p>
+
+<p>As a result of our success with Go, we now use Go for every new development for
+Prodspec and Annealing.</p>
+
+<p>In addition to the Site Reliability Engineering team, engineering teams across
+Google have adopted Go in their development process. Read about how the
+<a href="/solutions/google/coredata/">Core Data Solutions</a>,
+<a href="/solutions/google/firebase/">Firebase Hosting</a>, and
+<a href="/solutions/google/chrome/">Chrome</a> teams use Go to build fast, reliable,
+and efficient software at scale.</p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/sitereliability.svg" class="CaseStudy-aboutBlockImg" alt="Google Site Reliability Engineering (SRE)">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Google Site Reliability Engineering (SRE)
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody"><p>Google’s Site Reliability Engineering team has a mission to protect, provide for, and progress the software and systems behind all of Google’s public services — Google Search, Ads, Gmail, Android, YouTube, and App Engine, to name just a few — with an ever-watchful eye on their availability, latency, performance, and capacity.</p>
+
+<p>They shared their experience building core production management systems with Go, coming from experience with Python and C++.</p>
+</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/grail/index.html b/go.dev/testdata/golden/solutions/grail/index.html
new file mode 100644
index 0000000..6d41fb6
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/grail/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://medium.com/grail-eng/bigslice-a-cluster-computing-system-for-go-7e03acd2419b">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/grail">
+
+            GRAIL
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="GRAIL">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/grail.png" class="CaseStudy-aboutBlockImg" alt="GRAIL">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About GRAIL
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">At GRAIL, we use the Go programming language for most of our bioinformatics, data processing, and machine learning tasks. Go’s simplicity makes it easy for newcomers to learn; its transparent runtime semantics makes it easy to reason about performance; and its ability to control data layout and allocation makes it possible to write highly performant data processing code.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/index.html b/go.dev/testdata/golden/solutions/index.html
new file mode 100644
index 0000000..83b79da
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/index.html
@@ -0,0 +1,1166 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Why Go - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem  Header-menuItem--active">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<section class="Solutions-headline">
+  <div class="GoCarousel" id="SolutionsHeroCarousel-carousel">
+    <div class="GoCarousel-controlsContainer">
+      <div class="GoCarousel-wrapper SolutionsHeroCarousel-wrapper">
+        <ul class="js-solutionsHeroCarouselSlides SolutionsHeroCarousel-slides">
+
+          <li class="SolutionsHeroCarousel-slide">
+            <div class="Solutions-headlineImg">
+              <img
+                src="/images/go_google_case_study_carousel.png"
+                alt="Using Go at Google"
+              />
+            </div>
+            <div class="Solutions-headlineText">
+              <p class="Solutions-headlineNotification">RECENTLY UPDATED</p>
+              <h2>
+                Using Go at Google
+              </h2>
+              <p class="Solutions-headlineBody">
+                Go was created at Google in 2007, and since then, engineering teams across Google have adopted Go to build products and services at massive scale.
+                <a href="/solutions/google/"
+                  >Learn more
+                  <i class="material-icons Solutions-forwardArrowIcon"
+                    >arrow_forward</i
+                  >
+                </a>
+              </p>
+            </div>
+          </li>
+
+          <li class="SolutionsHeroCarousel-slide">
+            <div class="Solutions-headlineImg">
+              <img
+                src="/images/go_paypal_case_study.png"
+                alt="PayPal Taps Go to Modernize and Scale"
+              />
+            </div>
+            <div class="Solutions-headlineText">
+              <p class="Solutions-headlineNotification">RECENTLY UPDATED</p>
+              <h2>
+                PayPal Taps Go to Modernize and Scale
+              </h2>
+              <p class="Solutions-headlineBody">
+                Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s goals.
+                <a href="/solutions/paypal"
+                  >Learn more
+                  <i class="material-icons Solutions-forwardArrowIcon"
+                    >arrow_forward</i
+                  >
+                </a>
+              </p>
+            </div>
+          </li>
+
+          <li class="SolutionsHeroCarousel-slide">
+            <div class="Solutions-headlineImg">
+              <img
+                src="/images/go_amex_case_study.png"
+                alt="American Express Uses Go for Payments &amp; Rewards"
+              />
+            </div>
+            <div class="Solutions-headlineText">
+              <p class="Solutions-headlineNotification">RECENTLY UPDATED</p>
+              <h2>
+                American Express Uses Go for Payments &amp; Rewards
+              </h2>
+              <p class="Solutions-headlineBody">
+                Go provides American Express with the speed and scalability it needs for both its payment and rewards networks.
+                <a href="/solutions/americanexpress"
+                  >Learn more
+                  <i class="material-icons Solutions-forwardArrowIcon"
+                    >arrow_forward</i
+                  >
+                </a>
+              </p>
+            </div>
+          </li>
+
+        </ul>
+      </div>
+      <button
+        class="js-solutionsHeroCarouselPrev GoCarousel-controlPrev GoCarousel-controlPrev-solutionsHero"
+        hidden
+      >
+        <i class="GoCarousel-icon material-icons">navigate_before</i>
+      </button>
+      <button
+        class="js-solutionsHeroCarouselNext GoCarousel-controlNext GoCarousel-controlNext-solutionsHero"
+      >
+        <i class="GoCarousel-icon material-icons">navigate_next</i>
+      </button>
+    </div>
+  </div>
+</section>
+<section class="Solutions-useCases">
+  <div class="Container">
+    <div class="SolutionsTabs-tabList js-solutionsTabs" role="tablist">
+      <button
+        role="tab"
+        aria-selected="true"
+        class="SolutionsTabs-tab"
+        id="btn-companies"
+        aria-controls="tab-companies"
+      >
+        Case studies
+      </button>
+      <button
+        role="tab"
+        aria-selected="false"
+        class="SolutionsTabs-tab"
+        id="btn-tech"
+        aria-controls="tab-tech"
+      >
+        Use cases
+      </button>
+      <hr />
+    </div>
+    <ul
+      class="js-solutionsList Solutions-cardList"
+      aria-expanded="true"
+      aria-labelledby="btn-companies"
+      id="tab-companies"
+      role="tabpanel"
+      tabindex="0"
+    >
+
+
+      <li class="Solutions-card">
+
+        <a href="/solutions/americanexpress" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            <img
+              loading="lazy"
+              alt="American Express"
+              src="/images/logos/american-express.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">American Express Uses Go for Payments &amp; Rewards</h3>
+            <p class="Solutions-useCaseDescription">
+              Go provides American Express with the speed and scalability it needs for both its payment and rewards networks.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">View case study</p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://labs.armut.com/how-we-decreased-one-of-our-apis-response-time-by-87-and-used-less-resources-ce847e83308"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Armut"
+          >
+            <img
+              loading="lazy"
+              alt="Armut"
+              src="/images/logos/armut.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">How Armut Labs use Go </h3>
+            <p class="Solutions-useCaseDescription">
+              Learn about how Armut Labs reduced resource consumption and API response time after moving from C# and .net core to Go.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Capital One"
+          >
+            <img
+              loading="lazy"
+              alt="Capital One"
+              src="/images/logos/capital-one.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Capital One - A Serverless and Go Journey</h3>
+            <p class="Solutions-useCaseDescription">
+              At the time, no single team member knew Go, but within a month, everyone was writing in Go and we were building out the endpoints. It was the flexibility, how easy it was to use, and the really cool concept behind Go (how Go handles native concurrency, garbage collection, and of course safety&#43;speed.) that helped engage us during the build. Also, who can beat that cute mascot!
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://blog.cloudflare.com/graceful-upgrades-in-go/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Cloudflare"
+          >
+            <img
+              loading="lazy"
+              alt="Cloudflare"
+              src="/images/logos/cloudflare.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Graceful upgrades in Go</h3>
+            <p class="Solutions-useCaseDescription">
+              Cloudflare speeds up and protects millions of websites, APIs, SaaS services, and other properties connected to the Internet. “Go is at the heart of CloudFlare’s services including handling compression for high-latency HTTP connections, our entire DNS infrastructure, SSL, load testing and more.”
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Cockroach Labs"
+          >
+            <img
+              loading="lazy"
+              alt="Cockroach Labs"
+              src="/images/logos/cockroach.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Cockroach Labs - Why We Chose to Build Our Database with Go</h3>
+            <p class="Solutions-useCaseDescription">
+              Go&#39;s performance benefits, garbage collection, and low barrier to entry made it a great fit for CockroachDB.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://jaxenter.com/golang-curve-163187.html"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Curve"
+          >
+            <img
+              loading="lazy"
+              alt="Curve"
+              src="/images/logos/curve.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">How Curve is getting ahead with Golang</h3>
+            <p class="Solutions-useCaseDescription">
+              Curve shares how Go&#39;s efficiency, standard library, and thriving community help them move banking to the cloud.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Dropbox"
+          >
+            <img
+              loading="lazy"
+              alt="Dropbox"
+              src="/images/logos/dropbox.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Dropbox - Open sourcing our Go libraries</h3>
+            <p class="Solutions-useCaseDescription">
+              About a year ago, we decided to migrate our performance-critical backends from Python to Go to leverage better concurrency support and faster execution speed. ... At this point, we have successfully moved major parts of our infrastructure to Go.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://entgo.io/blog/2019/10/03/introducing-ent/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Facebook"
+          >
+            <img
+              loading="lazy"
+              alt="Facebook"
+              src="/images/logos/facebook.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">How Facebook built an entity framework in Go</h3>
+            <p class="Solutions-useCaseDescription">
+              Learn about a Facebook engineering team&#39;s decision to write a new entity framework (ORM) in Go.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a href="/solutions/google/" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            <img
+              loading="lazy"
+              alt="Google"
+              src="/images/logos/google.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Using Go at Google</h3>
+            <p class="Solutions-useCaseDescription">
+              Go was created at Google in 2007, and since then, engineering teams across Google have adopted Go to build products and services at massive scale.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">View case study</p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://medium.com/grail-eng/bigslice-a-cluster-computing-system-for-go-7e03acd2419b"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--GRAIL"
+          >
+            <img
+              loading="lazy"
+              alt="GRAIL"
+              src="/images/logos/grail.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Bigslice - A cluster computing system in Go</h3>
+            <p class="Solutions-useCaseDescription">
+              At GRAIL, we use the Go programming language for most of our bioinformatics, data processing, and machine learning tasks. Go’s simplicity makes it easy for newcomers to learn; its transparent runtime semantics makes it easy to reason about performance; and its ability to control data layout and allocation makes it possible to write highly performant data processing code.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a href="/solutions/mercadolibre" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            <img
+              loading="lazy"
+              alt="MercadoLibre"
+              src="/images/logos/mercado-libre.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">MercadoLibre Grows with Go</h3>
+            <p class="Solutions-useCaseDescription">
+              Go provides clean, efficient code that readily scales as MercadoLibre’s online commerce grows, and increases developer productivity by allowing their engineers to serve their ever-increasing audience while writing less code.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">View case study</p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://cloudblogs.microsoft.com/opensource/2018/02/21/go-lang-brian-ketelsen-explains-fast-growth/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Microsoft"
+          >
+            <img
+              loading="lazy"
+              alt="Microsoft"
+              src="/images/logos/microsoft.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">How Microsoft Embraces Go</h3>
+            <p class="Solutions-useCaseDescription">
+              Learn about how Microsoft has helped support Go and how it uses Go to power pieces of it&#39;s cloud infrastructure.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Netflix"
+          >
+            <img
+              loading="lazy"
+              alt="Netflix"
+              src="/images/logos/netflix.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Netflix - Application data caching using SSDs</h3>
+            <p class="Solutions-useCaseDescription">
+              The decision to use Go was deliberate, because we needed something that had lower latency than Java (where garbage collection pauses are an issue) and is more productive for developers than C, while also handling tens of thousands of client connections. Go fits this space well.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a href="/solutions/paypal" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            <img
+              loading="lazy"
+              alt="PayPal"
+              src="/images/logos/paypal.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">PayPal Taps Go to Modernize and Scale</h3>
+            <p class="Solutions-useCaseDescription">
+              Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s goals.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">View case study</p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://technology.riotgames.com/news/leveraging-golang-game-development-and-operations"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Riot Games"
+          >
+            <img
+              loading="lazy"
+              alt="Riot Games"
+              src="/images/logos/riotgames.png"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Riot Games - Leveraging Golang for Game Development and Operations</h3>
+            <p class="Solutions-useCaseDescription">
+              Learn how Riot uses Go to develop, deploy, and operate backend microserves at scale–globally. They share thier experience across use cases, with specific examples, and speak to the value of the gopher community.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://www.zdnet.com/article/salesforce-why-we-ditched-python-for-googles-go-language-in-einstein-analytics/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Salesforce"
+          >
+            <img
+              loading="lazy"
+              alt="Salesforce"
+              src="/images/logos/salesforce.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Salesforce - From Python/C to Go</h3>
+            <p class="Solutions-useCaseDescription">
+              One of the big advantages is that Go&#39;s cross-platform features make porting code easy.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://tech.target.com/infrastructure/2018/06/18/Recommending-GoLang-at-Target.html"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Target"
+          >
+            <img
+              loading="lazy"
+              alt="Target"
+              src="/images/logos/target.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Target - Recommending Go</h3>
+            <p class="Solutions-useCaseDescription">
+              We loved the simplified syntax, strong standard library, great external community, and well-built and maintained libraries. We loved the fast compile times and incredibly small images we could build when deploying containers. As we continue to grow and scale our technical solutions to our guests, we find the concurrency primitives in Go particularly useful.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Twitch"
+          >
+            <img
+              loading="lazy"
+              alt="Twitch"
+              src="/images/logos/twitch.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Twitch - Go’s march to low latency GC</h3>
+            <p class="Solutions-useCaseDescription">
+              We use Go at Twitch for many of our busiest systems. Its simplicity, safety, performance, and readability make it a good tool for the problems we encounter with serving live video and chat to our  millions of users.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://blog.twitter.com/engineering/en_us/a/2015/handling-five-billion-sessions-a-day-in-real-time.html"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Twitter"
+          >
+            <img
+              loading="lazy"
+              alt="Twitter"
+              src="/images/logos/twitter.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Twitter - 5 billion sessions a day in realtime</h3>
+            <p class="Solutions-useCaseDescription">
+              We now see about five billion sessions per day, and growing. Hundreds of millions of devices send millions of events every second to the Answers endpoint. During the time that it took you to read to here, the Answers back-end will have received and processed about 10,000,000 analytics events.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://eng.uber.com/aresdb/"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Uber"
+          >
+            <img
+              loading="lazy"
+              alt="Uber"
+              src="/images/logos/uber.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Uber - GPU-power analytics engine in Go</h3>
+            <p class="Solutions-useCaseDescription">
+              AresDB [,written in Go,] is widely used at Uber to power our real-time data analytics dashboards, enabling us to make data-driven decisions at scale about myriad aspects of our business.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+      <li class="Solutions-card">
+
+        <a
+          href="https://medium.com/tech-at-wildlife-studios/pitaya-wildlifes-golang-go-af57865f7a11"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--Wildlife Studios"
+          >
+            <img
+              loading="lazy"
+              alt="Wildlife Studios"
+              src="/images/logos/wildlife.svg"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">How Wildlife Studios builds backend systems in Go</h3>
+            <p class="Solutions-useCaseDescription">
+              Wildlife is a Brazilian native global company focused on mobile gaming. We aim to develop games that will make billions of people happy. We have almost 40 million daily active users, and we rely on Go as the main language for our core platform, given its features to scale our backend services.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+
+      </li>
+
+    </ul>
+    <ul
+      class="js-solutionsList Solutions-cardList"
+      aria-expanded="false"
+      aria-labelledby="btn-tech"
+      id="tab-tech"
+      role="tabpanel"
+      tabindex="0"
+      hidden
+    >
+
+      <li class="Solutions-card">
+        <a href="/solutions/cloud" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+
+            <img
+              loading="lazy"
+              alt="cloud icon"
+              src="/solutions/cloud-green.svg"
+            />
+
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Cloud &amp; Network Services</h3>
+            <p class="Solutions-useCaseDescription">
+              With a strong ecosystem of tools and APIs on major cloud providers, it is easier than ever to build services with Go.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            Learn More
+          </p>
+        </a>
+      </li>
+
+      <li class="Solutions-card">
+        <a href="/solutions/clis" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+
+            <img
+              loading="lazy"
+              alt="CLI icon"
+              src="/solutions/clis-green.svg"
+            />
+
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Command-line Interfaces (CLIs)</h3>
+            <p class="Solutions-useCaseDescription">
+              With popular open source packages and a robust standard library, use Go to create fast and elegant CLIs.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            Learn More
+          </p>
+        </a>
+      </li>
+
+      <li class="Solutions-card">
+        <a href="/solutions/webdev" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+
+            <img
+              loading="lazy"
+              alt="web dev icon"
+              src="/solutions/webdev-green.svg"
+            />
+
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Web Development</h3>
+            <p class="Solutions-useCaseDescription">
+              With enhanced memory performance and support for several IDEs, Go powers fast and scalable web applications.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            Learn More
+          </p>
+        </a>
+      </li>
+
+      <li class="Solutions-card">
+        <a href="/solutions/devops" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+
+            <img
+              loading="lazy"
+              alt="ops icon"
+              src="/solutions/devops-green.svg"
+            />
+
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">Development Operations &amp; Site reliability Engineering</h3>
+            <p class="Solutions-useCaseDescription">
+              With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE.
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            Learn More
+          </p>
+        </a>
+      </li>
+
+    </ul>
+    <div class="Solutions-footer">
+      <p>
+        Interested in sharing your stories?
+        <a
+          target="_blank"
+          rel="noopener"
+          href="https://docs.google.com/forms/d/e/1FAIpQLSdRomKkA2zWQF4UTIYWLVYfjKvOHGA32RjnfavVhqY06yrZTQ/viewform"
+        >
+          Start here.
+        </a>
+      </p>
+    </div>
+  </div>
+</section>
+
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/index.xml b/go.dev/testdata/golden/solutions/index.xml
new file mode 100644
index 0000000..fbfccfa
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/index.xml
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Why Go on go.dev</title>
+    <link>https://go.dev/solutions/</link>
+    <description>Recent content in Why Go on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    <lastBuildDate>Mon, 01 Jun 2020 00:00:00 +0000</lastBuildDate>
+    
+	<atom:link href="https://go.dev/solutions/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+    <item>
+      <title>PayPal Taps Go to Modernize and Scale</title>
+      <link>https://go.dev/solutions/paypal/</link>
+      <pubDate>Mon, 01 Jun 2020 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/paypal/</guid>
+      <description>Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.  &amp;mdash; Bala Natarajan ,&amp;nbsp; Sr. Director of Engineering,&amp;nbsp;Developer Experience &amp;nbsp;at PayPal   New code infrastructure built on Go PayPal was created to democratize financial services and empower people and businesses to join and thrive in the global economy.</description>
+    </item>
+    
+    <item>
+      <title>American Express Uses Go for Payments &amp; Rewards</title>
+      <link>https://go.dev/solutions/americanexpress/</link>
+      <pubDate>Thu, 19 Dec 2019 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/americanexpress/</guid>
+      <description>What makes Go different from other programming languages is cognitive load. You can do more with less code, which makes it easier to reason about and understand the code that you do end up writing.
+The majority of Go code ends up looking quite similar, so, even if you’re working with a completely new codebase, you can get up and running pretty quickly.
+ &amp;mdash; Glen Balliet ,&amp;nbsp; Engineering Director of loyalty platforms &amp;nbsp;at American Express   Go Improves Microservices and Speeds Productivity Founded in 1850, American Express is a globally integrated payments company offering charge and credit card products, merchant acquisition and processing services, network services, and travel-related services.</description>
+    </item>
+    
+    <item>
+      <title>MercadoLibre Grows with Go</title>
+      <link>https://go.dev/solutions/mercadolibre/</link>
+      <pubDate>Sun, 10 Nov 2019 16:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/mercadolibre/</guid>
+      <description>I think that the tour of Go is by far the best introduction to a language that I’ve seen, It’s really simple and it gives you a fair overview of probably 80 percent of the language. When we want to get developers to learn Go, and to get to production fast, we tell them to start with the tour of Go.  &amp;mdash; Eric Kohan ,&amp;nbsp; Software Engineering Manager &amp;nbsp;at MercadoLibre   Go helps integrated ecosystem attract developers and scale eCommerce MercadoLibre, Inc.</description>
+    </item>
+    
+    <item>
+      <title>Go for Cloud &amp; Network Services</title>
+      <link>https://go.dev/solutions/cloud/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/cloud/</guid>
+      <description>Overview Go helps enterprises build and scale cloud computing systems As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “explicitly geared to develop highly reliable concurrent applications.”
+ Go makes it very easy to scale as a company.</description>
+    </item>
+    
+    <item>
+      <title>Command-line Interfaces (CLIs)</title>
+      <link>https://go.dev/solutions/clis/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/clis/</guid>
+      <description>Overview CLI developers prefer Go for portability, performance, and ease of creation Command line interfaces (CLIs), unlike graphical user interfaces (GUIs), are text-only. Cloud and infrastructure applications are primarily CLI-based due to their easy automation and remote capabilities.
+Key benefits Leverage fast compile times to build programs that start quickly and run on any system Developers of CLIs find Go to be ideal for designing their applications. Go compiles very quickly into a single binary, works across platforms with a consistent style, and brings a strong development community.</description>
+    </item>
+    
+    <item>
+      <title>Go for Web Development</title>
+      <link>https://go.dev/solutions/webdev/</link>
+      <pubDate>Fri, 04 Oct 2019 15:26:31 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/webdev/</guid>
+      <description>Overview Go delivers speed, security, and developer-friendly tools for Web Applications Go is designed to enable developers to rapidly develop scalable and secure web applications. Go ships with an easy to use, secure and performant web server and includes it own web templating library. Go has excellent support for all of the latest technologies from HTTP/2, to databases like MySQL, MongoDB and ElasticSearch, to the latest encryption standards including TLS 1.</description>
+    </item>
+    
+    <item>
+      <title>Development Operations &amp; Site reliability Engineering</title>
+      <link>https://go.dev/solutions/devops/</link>
+      <pubDate>Thu, 03 Oct 2019 17:16:43 -0400</pubDate>
+      
+      <guid>https://go.dev/solutions/devops/</guid>
+      <description>Overview Go helps enterprises automate and scale Development Operations (DevOps) teams help engineering organizations automate tasks and improve their continuous integration and continuous delivery and deployment (CI/CD) process. DevOps can topple developmental silos and implement tooling and automation to enhance software development, deployment, and support.
+Site Reliability Engineering (SRE) was born at Google to make the company’s “large-scale sites more reliable, efficient, and scalable,”writes Silvia Fressard, an independent DevOps consultant.</description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/grail/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/grail/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/capital-one/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/capital-one/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/cockroachlabs/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/cockroachlabs/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Dropbox - Open sourcing our Go libraries</title>
+      <link>https://go.dev/solutions/dropbox/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/dropbox/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/cloudflare/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/cloudflare/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/armut/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/armut/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/curve/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/curve/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/facebook/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/facebook/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/microsoft/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/microsoft/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/wildlifestudios/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/wildlifestudios/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/netflix/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/netflix/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/riotgames/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/riotgames/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/salesforce/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/salesforce/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/target/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/target/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title></title>
+      <link>https://go.dev/solutions/twitch/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/twitch/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Twitter - 5 billion sessions a day in realtime</title>
+      <link>https://go.dev/solutions/twitter/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/twitter/</guid>
+      <description></description>
+    </item>
+    
+    <item>
+      <title>Uber - GPU-power analytics engine in Go</title>
+      <link>https://go.dev/solutions/uber/</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://go.dev/solutions/uber/</guid>
+      <description></description>
+    </item>
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/mercadolibre/index.html b/go.dev/testdata/golden/solutions/mercadolibre/index.html
new file mode 100644
index 0000000..38ce325
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/mercadolibre/index.html
@@ -0,0 +1,571 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>MercadoLibre Grows with Go - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/mercadolibre">
+
+            MercadoLibre
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>MercadoLibre Grows with Go</h1>
+
+
+            <div class="Article-date">10 November 2019</div>
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_mercadolibre_case_study_logo.png" alt="MercadoLibre">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+
+<div class="PullQuote">
+  <div class="PullQuote-quoteHeader">
+    <img class="PullQuote-image" src="/images/quote.svg" alt="Quotation mark.">
+  </div>
+  <p class="PullQuote-body">
+    I think that <strong>the tour of Go is by far the best introduction to a language that I’ve seen</strong>, It’s really simple and it gives you a fair overview of probably 80 percent of the language. When we want to get developers to learn Go, and to get to production fast, we tell them to start with the tour of Go.
+  </p>
+  <div class="PullQuote-author">
+    <span>
+      &mdash; Eric Kohan</span>
+    ,&nbsp;
+      <span class="PullQuote-title">Software Engineering Manager</span>
+    <span class="PullQuote-title">&nbsp;at MercadoLibre</span>
+    </div>
+  </div>
+
+<h2 id="go-helps-integrated-ecosystem-attract-developers-and-scale-ecommerce">Go helps integrated ecosystem attract developers and scale eCommerce</h2>
+
+<p>MercadoLibre, Inc. hosts the largest online commerce ecosystem in Latin America and is present in 18 countries. Founded
+in 1999 and headquartered in Argentina, the company has turned to Go to help it scale and modernize its ecosystem. Go
+provides clean, efficient code that readily scales as MercadoLibre’s online commerce grows, and increases developer
+productivity by allowing their engineers to serve their ever-increasing audience while writing less code.</p>
+
+<h3 id="mercadolibre-taps-go-for-scale">MercadoLibre taps Go for scale</h3>
+
+<p>Back in 2015, there was a growing sense within MercadoLibre that their existing API framework, on Groovy and Grails, was
+reaching its limits and the company needed a different platform to continue scaling. MercadoLibre’s platform was (and
+continues) to expand exponentially, which created a lot of extra work for its developers: Both Groovy and Grails require
+a lot of decisions from developers and Groovy is a dynamic programming language. This was not a good combination for
+quickly scaling growth, as MercadoLibre needed very experienced developers in this very resource intensive environment
+to develop and tune to achieve desired performance. Test execution times were slow, and build and deploy times were
+slow. Thus, the need for code efficiency and scalability became as important as the need for speed in code development.</p>
+
+<h3 id="go-improves-system-efficiency">Go improves system efficiency</h3>
+
+<p>As one example of Go’s contributions to network efficiency, the core API team builds and maintains the largest APIs at
+the center of the company’s microservices solutions. This team creates user APIs, which in turn are used by the
+MercadoLibre Marketplace, by the MercadoPago FinTech platform, by MercadoLibre’s shipping and logistics solutions, and
+other hosted solutions. With the high service levels demanded by these solutions—the average user API has between eight
+and ten million requests per minute—the team employs Go to serve them at less than ten milliseconds per request.</p>
+
+<p>The API team also deploys Docker containers—a software-as-a-service (SaaS) product, also written in Go—to virtualize
+their development and readily deploy their microservices via the Docker Engine. This system supports larger,
+mission-critical APIs that handle <strong>more than 20 million requests per minute in Go.</strong></p>
+
+<p>One API made important use of Go’s concurrency primitives to efficiently multiplex IDs from several services. The team
+was able to accomplish this with just a few lines of Go code, and the success of this API convinced the core API team to
+migrate more and more microservices to Go. The end result for MercadoLibre has been improved cost-efficiencies and
+system response times.</p>
+
+<h3 id="go-for-scalability">Go for scalability</h3>
+
+<p>Historically, much of the company’s stack was based on Grails and Groovy backed by relational  databases. However this
+big framework with multiple layers was soon found encountering scalability issues.</p>
+
+<p>Converting that legacy architecture to Go as a new, very thin framework for building APIs streamlined those intermediate
+layers and yielded great performance benefits. For example, one large Go service is now able to <strong>run 70,000 requests
+per machine with just 20 MB of RAM.</strong></p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Go was just marvelous for us. It’s very powerful
+and very easy to learn, and with backend infrastructure, has been great for us in terms of scalability.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Eric Kohan</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Software Engineering Manager</span>
+      <span class="BackgroundQuote-title">&nbsp;at MercadoLibre</span>
+      </div>
+    </div>
+
+
+<p>Using <strong>Go allowed MercadoLibre to cut the number of servers</strong> they use for this service to one-eighth the original
+number (from 32 servers down to four), plus each server can operate with less power (originally four CPU cores, now down
+to two CPU cores). With Go, the company <strong>obviated 88 percent of their servers and cut CPU on the remaining ones in
+half</strong>—producing a tremendous cost-savings.</p>
+
+<p>Sitting between developers and the cloud providers, MercadoLibre uses a platform called Fury—a platform-as-a-service
+tool for building, deploying, monitoring, and managing services in a cloud-agnostic way. As a result, any team that
+wants to create a new service in Go has access to proven templates for a variety of service types, and can quickly spin
+up a repository in GitHub with starter code, a Docker image for the service, and a deployment pipeline. The end result
+is a system that allows engineers to focus on building innovative services while avoiding the tedious stages of setting
+up a new project—all while effectively standardizing the build and deployment pipelines.</p>
+
+<p>Today, <strong>roughly half of Mercadolibre&rsquo;s traffic is handled by Go applications.</strong></p>
+
+<h3 id="mercadolibre-uses-go-for-developers">MercadoLibre uses Go for developers</h3>
+
+<p>The programming <em>lingua francas</em> for MercadoLibre’s infrastructure are currently Go and Java. Every app, every program,
+every microservice is hosted on its own GitHub repository, plus the company uses an additional GitHub repository of
+toolkits to solve new problems and allow clients to interact with its services.</p>
+
+<p>These extensive and well-curated Go and Java toolkits allow programmers to develop new apps quickly and with great
+support. Plus, in a community of more than 2,800 developers, MercadoLibre has multiple internal groups available for
+chat and guidance on deploying Go, whether across different development centers or different countries. The company also
+fosters internal working groups to provide training sessions for new MercadoLibre Go developers, and hosts Go meetups
+for external developers to help build a broader community of Latin American Go developers.</p>
+
+<h3 id="go-as-a-recruiting-tool">Go as a recruiting tool</h3>
+
+<p>MercadoLibre’s Go advocacy has also become a strong recruiting tool for the company. MercadoLibre was among the first
+companies using Go in Argentina, and is perhaps the largest in Latin America using the language so widely in production.
+Headquartered in Buenos Aires, with many start-ups and emerging technology companies nearby, MercadoLibre&rsquo;s adoption of
+Go has shaped the market for developers across the Pampas.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “We really see eye-to-eye with the larger philosophy of the language. We love Go&rsquo;s simplicity, and we find that having its very explicit error handling has been a gain for developers because it results in safer, more stable code in production.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Eric Kohan</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Software Engineering Manager</span>
+      <span class="BackgroundQuote-title">&nbsp;at MercadoLibre</span>
+      </div>
+    </div>
+
+
+<p>Buenos Aires is today a very competitive market for programmers, offering computer programmers many employment options,
+and the high demand for technology in the region drives great salaries, great benefits, and the ability to be selective
+when choosing an employer. As such, MercadoLibre—like all employers of engineers and programmers in the region—strives
+to provide an exciting workplace and strong career path. Go has proven to be a key differentiator for MercadoLibre: the
+company organizes Go workshops for external developers so they can come and learn Go, and when they enjoy what they are
+doing and the people they talk to, they quickly recognize MercadoLibre as an enticing place to work.</p>
+
+<h3 id="go-enabling-developers">Go enabling developers</h3>
+
+<p>MercadoLibre employs Go for its simplicity with systems at scale, but that simplicity is also why the company&rsquo;s
+developers love Go.</p>
+
+<p>The company also uses web pages like<a href="https://gobyexample.com/" rel="noreferrer" target="_blank"> Go by Example</a> and<a href="https://golang.org/doc/effective_go.html" rel="noreferrer" target="_blank"> Effective
+Go</a> to educate new programmers, and shares representative internal APIs
+written in Go to speed understanding and proficiency. MercadoLibre developers get the resources they need to embrace the
+language, then leverage their own skills and enthusiasm to start programming.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “Go has been great for writing business logic, and we are the team that writes those APIs.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Federico Martin Roasio</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Technical Project Lead</span>
+      <span class="BackgroundQuote-title">&nbsp;at MercadoLibre</span>
+      </div>
+    </div>
+
+
+<p>MercadoLibre leverages Go’s expressive and clean syntax to make it easier for developers to write programs that run
+efficiently on modern cloud platforms. And while speed in development yields cost efficiency for the company, developers
+individually benefit from the swift learning curve Go delivers. Not only are MercadoLibre&rsquo;s experienced engineers able
+to build highly critical applications very quickly with Go, but even entry-level engineers have been able to write
+services that, in other languages, MercadoLibre would only trust to more senior developers. For example, a key set of
+user APIs—handling almost ten million requests per minute—were developed by entry-level software engineers, many of whom
+only knew about programming from recent courses at university. Similarly, MercadoLibre has seen developers already
+proficient with other programming languages (such as Java or .NET or Ruby) learn Go fast enough start writing production
+services in just a few weeks.</p>
+
+<p>With Go, MercadoLibre’s <strong>build times are three times (3x) faster</strong> and their <strong>test suite runs an amazing 24 times
+faster</strong>. This means the company’s developers can make a change, then build and test that change much faster than they
+could before.</p>
+
+<p>And dropping MercadoLibre’s test suite runtimes from 90-seconds to <strong>just 3-seconds with Go</strong> was a huge boon for its
+developers—allowing them to keep focus (and context) while the much faster tests complete.</p>
+
+<p>Leveraging this success, MercadoLibre is committed not only to ongoing education for its programmers, but ongoing Go
+education. The company sends key engineering leaders to GopherCon and other Go events each year, MercadoLibre’s
+infrastructure and security teams encourage all the development teams to keep Go versions up to date, and the company
+has a team developing a <em>Go-meli-toolkit</em>: A complete Go library to interface all the services provided by Fury.</p>
+
+<h3 id="getting-your-enterprise-started-with-go">Getting your enterprise started with Go</h3>
+
+<p>Just as MercadoLibre started with a proof-of-concept project to implement Go, dozens of other large enterprises are
+adopting Go as well.</p>
+
+<p>There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as <a href="https://go.dev/solutions/americanexpress" rel="noreferrer" target="_blank">American Express</a>, <a href="https://go.dev/solutions/paypal" rel="noreferrer" target="_blank">PayPal</a>, Capital One, Dropbox, IBM, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.</p>
+
+<p>To learn more about how Go can help your enterprise build reliable, scalable software as it does at MercadoLibre, visit <a href="https://go.dev" rel="noreferrer" target="_blank">go.dev</a> today.</p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/mercado-libre.png" class="CaseStudy-aboutBlockImg" alt="MercadoLibre">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About MercadoLibre
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Go provides clean, efficient code that readily scales as MercadoLibre’s online commerce grows, and increases developer productivity by allowing their engineers to serve their ever-increasing audience while writing less code.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/microsoft/index.html b/go.dev/testdata/golden/solutions/microsoft/index.html
new file mode 100644
index 0000000..b4b4127
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/microsoft/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://cloudblogs.microsoft.com/opensource/2018/02/21/go-lang-brian-ketelsen-explains-fast-growth/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/microsoft">
+
+            Microsoft
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Microsoft">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/microsoft.png" class="CaseStudy-aboutBlockImg" alt="Microsoft">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Microsoft
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Learn about how Microsoft has helped support Go and how it uses Go to power pieces of it&rsquo;s cloud infrastructure.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/netflix/index.html b/go.dev/testdata/golden/solutions/netflix/index.html
new file mode 100644
index 0000000..c0bcc98
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/netflix/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/netflix">
+
+            Netflix
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Netflix">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/netflix.svg" class="CaseStudy-aboutBlockImg" alt="Netflix">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Netflix
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">The decision to use Go was deliberate, because we needed something that had lower latency than Java (where garbage collection pauses are an issue) and is more productive for developers than C, while also handling tens of thousands of client connections. Go fits this space well.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/paypal/index.html b/go.dev/testdata/golden/solutions/paypal/index.html
new file mode 100644
index 0000000..8794e43
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/paypal/index.html
@@ -0,0 +1,482 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>PayPal Taps Go to Modernize and Scale - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/paypal">
+
+            PayPal
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>PayPal Taps Go to Modernize and Scale</h1>
+
+
+            <div class="Article-date">1 June 2020</div>
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/go_paypal_case_study_logo.png" alt="PayPal">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+
+<div class="PullQuote">
+  <div class="PullQuote-quoteHeader">
+    <img class="PullQuote-image" src="/images/quote.svg" alt="Quotation mark.">
+  </div>
+  <p class="PullQuote-body">
+    Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.
+  </p>
+  <div class="PullQuote-author">
+    <span>
+      &mdash; Bala Natarajan</span>
+    ,&nbsp;
+      <span class="PullQuote-title"><span class="NoWrapSpan">Sr. Director of Engineering,</span>&nbsp;<span class="NoWrapSpan">Developer Experience</span></span>
+    <span class="PullQuote-title">&nbsp;at PayPal</span>
+    </div>
+  </div>
+
+<h2 id="new-code-infrastructure-built-on-go">New code infrastructure built on Go</h2>
+
+<p>PayPal was created to democratize financial services and empower people and businesses to join and thrive in the global economy. Central to this effort is PayPal’s Payments Platform, which uses a combination of proprietary and third-party technologies to efficiently and securely facilitate transactions between millions of merchants and consumers worldwide. As the Payments Platform grew larger and more complicated, PayPal sought to modernize its systems and reduce time-to-market for new applications.</p>
+
+<p>Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s goals.</p>
+
+<p>Central to the Payment Processing Platform is a proprietary NoSQL database that PayPal had developed in C++. The complexity of the code, however, was substantially decreasing its developers’ ability to evolve the platform. Go’s simple code layouts, goroutines (lightweight threads of execution) and channels (which serve as the pipes that connect concurrent goroutines), made Go a natural choice for the NoSQL development team to simplify and modernize the platform.</p>
+
+<p>As a proof of concept, a development team spent six months learning Go and reimplementing the NoSQL system from the ground up in Go, during which they also provided insights on how Go could be implemented more broadly at PayPal. As of today, thirty percent of the clusters have been migrated to use the new NoSQL database.</p>
+
+<h2 id="using-go-to-simplify-for-scale">Using Go to simplify for scale</h2>
+
+<p>As PayPal’s platform becomes more intricate, Go provides a way to readily simplify the complexity of creating and running software at scale. The language provides PayPal with great libraries and fast tools, plus concurrency, garbage collection, and type safety.</p>
+
+<p>With Go, PayPal enables its developers to spend more time looking at code and thinking strategically, by freeing them from the noise of C++ and Java development.</p>
+
+<p>After the success of this newly re-written NoSQL system, more platform and content teams within PayPal began adopting Go. Natarajan’s current team is responsible for PayPal’s build, test, and release pipelines—all built in Go. The company has a large build and test farm which is completely managed using Go infrastructure to support builds-as-a-service (and tests-as-a-service) for developers across the company.</p>
+
+
+
+<p><img
+    loading="lazy"
+    width="607"
+    height="289"
+    class=""
+    alt="Go gopher factory"
+    src="/images/gophers/factory.png"></p>
+
+
+<h2 id="modernizing-paypal-systems-with-go">Modernizing PayPal systems with Go</h2>
+
+<p>With the distributed computing capabilities required by PayPal, Go was the right language to refresh their systems. PayPal needed programming that is concurrent and parallel, compiled for high performance and highly portable, and that brings developers the benefits of a modular, composable open-source architecture—Go has delivered all that and more to help PayPal modernize its systems.</p>
+
+<p>Security and supportability are key matters at PayPal, and the company’s operational pipelines are increasingly dominated by Go because the language’s cleanliness and modularity help them achieve these goals. PayPal’s deployment of Go engenders a platform of creativity for developers, allowing them to produce simple, efficient, and reliable software at scale for PayPal’s worldwide markets.</p>
+
+<p>As PayPal continues to modernize their software-defined networking (SDN) infrastructure with Go, they are seeing performance benefits in addition to more maintainable code. For example, Go now powers routers, load balances, and an increasing number of production systems.</p>
+
+<div class="BackgroundQuote">
+    <p class="BackgroundQuote-body">
+      “In our tightly managed environments where we run Go code, we have seen a CPU reduction of approximately ten percent with cleaner and maintainable code.”
+    </p>
+    <div class="BackgroundQuote-author">
+      <span>&mdash; Bala Natarajan</span>
+      ,&nbsp;
+      <span class="BackgroundQuote-title">Sr. Director of Engineering</span>
+      </div>
+    </div>
+
+
+<h2 id="go-increases-developer-productivity">Go increases developer productivity</h2>
+
+<p>As a global operation, PayPal needs its development teams to be effective at managing two kinds of scale: production scale, especially concurrent systems interacting with many other servers (such as cloud services); and development scale, especially large codebases developed by many programmers in coordination (such as open-source development)</p>
+
+<p>PayPal leverages Go to address these issues of scale. The company’s developers benefit from Go’s ability to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. As PayPal modernizes its system, support for networked and multicore computing is critical. Go not only delivers such support but delivers quickly—it takes at most a few seconds to compile a large executable on a single computer.</p>
+
+<p>There are currently over 100 Go developers at PayPal, and future developers who choose to adopt Go will have an easier time getting the language approved thanks to the many successful implementations already in production at the company.</p>
+
+<p>Most importantly, PayPal developers have increased their productivity with Go. Go’s concurrency mechanisms have made it easy to write programs that get the most out of PayPal’s multicore and networked machines. Developers using Go also benefit from the fact that it compiles quickly to machine code and their apps gain the convenience of garbage collection and the power of run-time reflection.</p>
+
+<h2 id="speeding-paypals-time-to-market">Speeding PayPal’s time to market</h2>
+
+<p>The first-class languages at PayPal today are Java and Node, with Go primarily used as an infrastructure language. While Go may never replace Node.js for certain applications, Natarajan is pushing to make Go a first-class language at PayPal.</p>
+
+<p>Through his efforts, PayPal is also evaluating moving to the Google Kubernetes Engine (GKE) to speed their new products’ time-to-market. The GKE is a managed, production-ready environment for deploying containerized applications, and brings Google&rsquo;s latest innovations in developer productivity, automated operations, and open source flexibility.</p>
+
+<p>For PayPal, deploying to GKE would enable rapid development and iteration by making it easier for PayPal to deploy, update, and manage its applications and services. Plus PayPal will find it easier to run Machine Learning, General Purpose GPU, High-Performance Computing, and other workloads that benefit from specialized hardware accelerators supported by the GKE.</p>
+
+<p>Most importantly for PayPal, the combination of Go development and the GKE allows the company to scale effortless to meet demand, as Kubernetes autoscaling will allow PayPal to handle increased user demand for services—keeping them available when it matters most, then scale back in the quiet periods to save money.</p>
+
+<h2 id="getting-your-enterprise-started-with-go">Getting your enterprise started with Go</h2>
+
+<p>PayPal’s story is not unique; dozens of other large enterprises are discovering how Go can help them ship reliable software faster. There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as <a href="https://go.dev/solutions/americanexpress" rel="noreferrer" target="_blank">American Express</a>, <a href="https://go.dev/solutions/mercadolibre" rel="noreferrer" target="_blank">Mercado Libre</a>, Capital One, Dropbox, IBM, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.</p>
+
+<p>To learn more about how Go can help your enterprise build reliable, scalable software as it does at PayPal, visit <a href="https://go.dev" rel="noreferrer" target="_blank">go.dev</a> today.</p>
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/paypal.svg" class="CaseStudy-aboutBlockImg" alt="PayPal">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About PayPal
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s goals.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/riotgames/index.html b/go.dev/testdata/golden/solutions/riotgames/index.html
new file mode 100644
index 0000000..4774bcd
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/riotgames/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://technology.riotgames.com/news/leveraging-golang-game-development-and-operations">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/riotgames">
+
+            Riot Games
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Riot Games">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/riotgames.png" class="CaseStudy-aboutBlockImg" alt="Riot Games">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Riot Games
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Learn how Riot uses Go to develop, deploy, and operate backend microserves at scale–globally. They share thier experience across use cases, with specific examples, and speak to the value of the gopher community.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/salesforce/index.html b/go.dev/testdata/golden/solutions/salesforce/index.html
new file mode 100644
index 0000000..0960d9c
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/salesforce/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://www.zdnet.com/article/salesforce-why-we-ditched-python-for-googles-go-language-in-einstein-analytics/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/salesforce">
+
+            Salesforce
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Salesforce">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/salesforce.svg" class="CaseStudy-aboutBlockImg" alt="Salesforce">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Salesforce
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">One of the big advantages is that Go&rsquo;s cross-platform features make porting code easy.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/sitereliability/index.html b/go.dev/testdata/golden/solutions/sitereliability/index.html
new file mode 100644
index 0000000..8c17ec9
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/sitereliability/index.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html><head><title>/solutions/google/sitereliability</title><link rel="canonical" href="/solutions/google/sitereliability"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=/solutions/google/sitereliability" /></head></html>
diff --git a/go.dev/testdata/golden/solutions/target/index.html b/go.dev/testdata/golden/solutions/target/index.html
new file mode 100644
index 0000000..3947672
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/target/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://tech.target.com/infrastructure/2018/06/18/Recommending-GoLang-at-Target.html">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/target">
+
+            Target
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Target">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/target.svg" class="CaseStudy-aboutBlockImg" alt="Target">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Target
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">We loved the simplified syntax, strong standard library, great external community, and well-built and maintained libraries. We loved the fast compile times and incredibly small images we could build when deploying containers. As we continue to grow and scale our technical solutions to our guests, we find the concurrency primitives in Go particularly useful.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/twitch/index.html b/go.dev/testdata/golden/solutions/twitch/index.html
new file mode 100644
index 0000000..4c6d83f
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/twitch/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/twitch">
+
+            Twitch
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Twitch">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/twitch.svg" class="CaseStudy-aboutBlockImg" alt="Twitch">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Twitch
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">We use Go at Twitch for many of our busiest systems. Its simplicity, safety, performance, and readability make it a good tool for the problems we encounter with serving live video and chat to our  millions of users.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/twitter/index.html b/go.dev/testdata/golden/solutions/twitter/index.html
new file mode 100644
index 0000000..784e9f9
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/twitter/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Twitter - 5 billion sessions a day in realtime - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://blog.twitter.com/engineering/en_us/a/2015/handling-five-billion-sessions-a-day-in-real-time.html">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/twitter">
+
+            Twitter
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Twitter - 5 billion sessions a day in realtime</h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Twitter">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/twitter.svg" class="CaseStudy-aboutBlockImg" alt="Twitter">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Twitter
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">We now see about five billion sessions per day, and growing. Hundreds of millions of devices send millions of events every second to the Answers endpoint. During the time that it took you to read to here, the Answers back-end will have received and processed about 10,000,000 analytics events.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/uber/index.html b/go.dev/testdata/golden/solutions/uber/index.html
new file mode 100644
index 0000000..c15bd27
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/uber/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Uber - GPU-power analytics engine in Go - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://eng.uber.com/aresdb/">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/uber">
+
+            Uber
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Uber - GPU-power analytics engine in Go</h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Uber">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/uber.svg" class="CaseStudy-aboutBlockImg" alt="Uber">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Uber
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">AresDB [,written in Go,] is widely used at Uber to power our real-time data analytics dashboards, enabling us to make data-driven decisions at scale about myriad aspects of our business.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/webdev-green.svg b/go.dev/testdata/golden/solutions/webdev-green.svg
new file mode 100644
index 0000000..b4e73ef
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/webdev-green.svg
@@ -0,0 +1,15 @@
+<svg width="75px" height="50px" viewBox="0 0 75 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="solutions" transform="translate(-248.000000, -457.000000)" fill="#007D9C" fill-rule="nonzero">
+            <g id="Group-Copy" transform="translate(248.000000, 457.000000)">
+                <polygon id="Path" points="17 24.484525 31 18 31 20.5366715 19.8950953 25.4706244 19.8950953 25.5270717 31 30.4898241 31 33 17 26.515475"></polygon>
+                <polygon id="Path" points="33 33 39.6555652 13 42 13 35.3455491 33"></polygon>
+                <polygon id="Path" points="58 26.5719223 44 33 44 30.4898241 55.28351 25.5270717 55.28351 25.4717764 44 20.5090239 44 18 58 24.4280777"></polygon>
+                <polygon id="Path" points="71.2505274 50 3.75064464 50 0 47 75 47"></polygon>
+                <path d="M70.9988294,46 L68.6576152,46 L68.6576152,3.03599533 C68.6576152,2.65649591 68.3368688,2.33538102 67.9552509,2.33538102 L8.04357851,2.33538102 C7.6631312,2.33538102 7.34121424,2.65532822 7.34121424,3.03599533 L7.34121424,46 L5,46 L5,3.03599533 C5,1.36152714 6.3649279,0 8.04357851,0 L67.9564215,0 C69.6350721,0 71,1.36152714 71,3.03599533 L71,46 L70.9988294,46 Z" id="Path"></path>
+                <path d="M30.8314219,45 L0,45 L0,47 L33,47 C31.8951418,47 31.0112552,46.1226667 30.8314219,45 Z" id="Path"></path>
+                <path d="M44.1674028,45 C43.9875695,46.1226667 43.1048582,47 42,47 L75,47 L75,45 L44.1674028,45 Z" id="Path"></path>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/webdev-white.svg b/go.dev/testdata/golden/solutions/webdev-white.svg
new file mode 100644
index 0000000..370f57e
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/webdev-white.svg
@@ -0,0 +1,19 @@
+<svg width="37px" height="24px" viewBox="0 0 37 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="Final" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="go.dev" transform="translate(-221.000000, -1072.000000)" fill="#FFFFFF" fill-rule="nonzero">
+            <g id="Group-8" transform="translate(105.000000, 987.000000)">
+                <g id="Group-5" transform="translate(104.000000, 67.000000)">
+                    <g id="Group-Copy" transform="translate(12.000000, 18.000000)">
+                        <polygon id="Path" points="8 12.0261117 15 9 15 10.18378 9.44754763 12.4862914 9.44754763 12.5126334 15 14.8285846 15 16 8 12.9738883"></polygon>
+                        <polygon id="Path" points="17 16 19.958029 6 21 6 18.0424663 16"></polygon>
+                        <polygon id="Path" points="29 13.0002304 22 16 22 14.8285846 27.641755 12.5126334 27.641755 12.486829 22 10.1708778 22 9 29 11.9997696"></polygon>
+                        <polygon id="Path" points="35.1502602 24 1.85031802 24 0 23 37 23"></polygon>
+                        <path d="M34.9994147,22 L33.8288076,22 L33.8288076,1.45199777 C33.8288076,1.27049805 33.6684344,1.11692136 33.4776254,1.11692136 L3.52178926,1.11692136 C3.3315656,1.11692136 3.17060712,1.26993958 3.17060712,1.45199777 L3.17060712,22 L2,22 L2,1.45199777 C2,0.651165152 2.68246395,0 3.52178926,0 L33.4782107,0 C34.317536,0 35,0.651165152 35,1.45199777 L35,22 L34.9994147,22 Z" id="Path"></path>
+                        <path d="M14.9485682,22 L0,22 L0,23 L16,23 C15.4643112,23 15.0357601,22.5613333 14.9485682,22 Z" id="Path"></path>
+                        <path d="M22.0508619,22 C21.96367,22.5613333 21.5356888,23 21,23 L37,23 L37,22 L22.0508619,22 Z" id="Path"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/solutions/webdev/index.html b/go.dev/testdata/golden/solutions/webdev/index.html
new file mode 100644
index 0000000..252de81
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/webdev/index.html
@@ -0,0 +1,866 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Go for Web Development - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+    <div class="UseCaseSubNav js-useCaseSubnav">
+      <button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader">
+        Jump to
+        <img
+          class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon"
+          alt="Open menu icon" src="/images/icons/chevron-down.svg">
+      </button>
+      <div class="UseCaseSubNav-menu js-useCaseSubnavMenu">
+        <div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks">
+        </div>
+      </div>
+    </div>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--useCase">
+    <div class="WhoUsesSubPage-heroInner--useCase">
+      <div class="WhoUsesSubPage-heroContent--useCase">
+        <div class="WhoUsesSubPage-heroText--useCase">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/webdev">
+
+            Go for Web Development
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1>Go for Web Development</h1>
+
+
+            <div class="Article-date">4 October 2019</div>
+
+        </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="UseCase-content">
+        <div class="UseCase-contentAside">
+          <div
+            class="js-useCaseStickyNav UseCaseSubNav-anchorLinks">
+          </div>
+        </div>
+        <div class="UseCase-contentBody js-useCaseContentBody">
+
+
+
+
+<h2 id="overview" class="sectionHeading">Overview</h2>
+
+<h3 id="go-delivers-speed-security-and-developer-friendly-tools-for-web-applications">Go delivers speed, security, and developer-friendly tools for Web Applications</h3>
+
+<p>Go is designed to enable developers to rapidly develop scalable and secure web applications. Go ships with an easy to use, secure and performant web server and includes it own web templating library. Go has excellent support for all of the latest technologies from <a href="https://pkg.go.dev/net/http" rel="noreferrer" target="_blank">HTTP/2</a>, to databases like <a href="https://pkg.go.dev/mod/github.com/go-sql-driver/mysql" rel="noreferrer" target="_blank">MySQL</a>, <a href="https://pkg.go.dev/mod/go.mongodb.org/mongo-driver" rel="noreferrer" target="_blank">MongoDB</a> and <a href="https://pkg.go.dev/mod/github.com/elastic/go-elasticsearch/v7" rel="noreferrer" target="_blank">ElasticSearch</a>, to the latest encryption standards including <a href="https://pkg.go.dev/crypto/tls" rel="noreferrer" target="_blank">TLS 1.3</a>. Go web applications run natively on <a href="https://cloud.google.com/appengine/" rel="noreferrer" target="_blank">Google App Engine</a> and <a href="https://cloud.google.com/run/" rel="noreferrer" target="_blank">Google Cloud Run</a> (for easy scaling) or on any environment, cloud, or operating system thanks to Go’s extreme portability.</p>
+
+<h2 id="key-benefits" class="sectionHeading">Key Benefits</h2>
+
+<h3 id="deploy-across-platforms-in-record-speed">Deploy across platforms in record speed</h3>
+
+<p>For enterprises, Go is preferred for providing rapid cross-platform deployment. With its goroutines, native compilation, and the URI-based package namespacing, Go code compiles to a single, small binary—with zero dependencies—making it very fast.</p>
+
+<h3 id="leverage-gos-out-of-the-box-performance-to-scale-with-ease">Leverage Go’s out-of-the-box performance to scale with ease</h3>
+
+<p>Tigran Bayburtsyan, Co-Founder and CTO at Hexact Inc., summarizes five key reasons his company switched to Go:</p>
+
+<ul>
+<li><p><strong>Compiles into a single binary</strong> — “Using static linking, Go actually combining all dependency libraries and modules into one single binary file based on OS type and architecture.”</p></li>
+
+<li><p><strong>Static type system</strong> — “Type system is really important for large scale applications.”</p></li>
+
+<li><p><strong>Performance</strong> — “Go performed better because of its concurrency model and CPU scalability. Whenever we need to process some internal request, we are doing it with separate Goroutines which are 10x cheaper in resources than Python Threads.”</p></li>
+
+<li><p><strong>No need for a web framework</strong> — “In most of the cases you really don’t need any third-party library.”</p></li>
+
+<li><p><strong>Great IDE support and debugging</strong> — “After rewriting all projects to Go, we got 64 percent less code than we had earlier.”</p></li>
+</ul>
+
+
+<div class="FeaturedUsers">
+
+<h2 id="featured-users" class="sectionHeading">Featured users</h2>
+
+
+
+<table>
+  <thead>
+    <tr>
+      <th class="FeaturedUsers--hiddenMobile">Customer</th>
+      <th>Brief introduction</th>
+      <th>Projects using go</th>
+    </tr>
+  </thead>
+
+  <tbody>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/caddy.svg" alt="Caddy" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/caddy.svg" alt="Caddy" />
+        Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go. Caddy offers greater memory safety than servers written in C. A hardened TLS stack powered by the Go standard library serves a significant portion of all Internet traffic.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://caddyserver.com/">Caddy 2</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/cloudflare-icon.svg" alt="Cloudflare" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/cloudflare-icon.svg" alt="Cloudflare" />
+        Cloudflare speeds up and protects millions of websites, APIs, SaaS services, and other properties connected to the Internet. “Go is at the heart of CloudFlare’s services including handling compression for high-latency HTTP connections, our entire DNS infrastructure, SSL, load testing and more.”
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://blog.cloudflare.com/what-weve-been-doing-with-go/">Cloudflare and Go</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/govuk.svg" alt="gov.uk" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/govuk.svg" alt="gov.uk" />
+        The simplicity and safety of the Go language were a good fit for the United Kingdom’s government’s HTTP infrastructure, and some brief experiments with the excellent net/http package convinced web developers they were on the right track. “In particular, Go’s concurrency model makes it absurdly easy to build performant I/O-bound applications.”
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://technology.blog.gov.uk/2013/12/05/building-a-new-router-for-gov-uk/">Building a new router for gov.uk</a></li>
+
+          <li><a href="https://technology.blog.gov.uk/2013/12/05/building-a-new-router-for-gov-uk/">Using Go in government</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/hugo.svg" alt="Hugo" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/hugo.svg" alt="Hugo" />
+        Hugo is a fast and modern website engine written in Go, and designed to make website creation fun again. Websites built with Hugo are extremely fast and secure and can be hosted anywhere without any dependencies.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="http://gohugo.io/">Hugo</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/mattermost.png" alt="Mattermost" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/mattermost.png" alt="Mattermost" />
+        Mattermost is a flexible, open source messaging platform that enables secure team collaboration. It’s written in Go and React.
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://mattermost.com/">Mattermost</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/medium.svg" alt="Medium" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/medium.svg" alt="Medium" />
+        Medium uses Go to power their social graph, their image server and several auxiliary services. “We’ve found Go very easy to build, package, and deploy. We like the type-safety without the verbosity and JVM tuning of Java.”
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://medium.engineering/how-medium-goes-social-b7dbefa6d413">Medium&#39;s Go Services</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+    <tr
+      class="js-featuredUsersRow FeaturedUsers-row"
+       hidden
+    >
+      <td class="FeaturedUsers--hiddenMobile">
+        <img src="/images/logos/economist.svg" alt="The Economist" />
+      </td>
+      <td>
+        <img
+          class="FeaturedUsers--hiddenDesktop"
+          src="/images/logos/economist.svg" alt="The Economist" />
+        The Economist needed more flexibility to deliver content to increasingly diverse digital channels. Services written in Go were a key component of the new system that would enable The Economist to deliver scalable, high performing services and quickly iterate new products. “Overall, it was determined that Go was the language best designed for usability and efficiency in a distributed, cloud-based system.”
+      </td>
+      <td>
+        <ul>
+
+          <li><a href="https://www.infoq.com/articles/golang-the-economist/">The Economist&#39;s Go microservices</a></li>
+
+        </ul>
+      </td>
+    </tr>
+
+  </tbody>
+</table>
+
+<button
+  class="js-moreProjectsBtn FeaturedUsers-moreProjectsBtn"
+  type="button">
+ More projects
+</button>
+
+
+
+</div>
+
+<h2 id="get-started" class="sectionHeading">Get Started</h2>
+
+<h3 id="go-books-on-web-development">Go books on web development</h3>
+
+<ul class="Learn-tileList">
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Web-Development-Go-Building-Scalable-ebook/dp/B01JCOC6Z6">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Web Development with Go thumbnail." src="/images/books/web-development-with-go.jpg">
+
+            <span class="Learn-tileTitle">
+                Web Development with Go
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Web-Programming-Sau-Sheong-Chang/dp/1617292567">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Go Web Programming thumbnail." src="/images/books/go-web-programming.jpg">
+
+            <span class="Learn-tileTitle">
+                Go Web Programming
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Web-Development-Cookbook-full-stack-applications-ebook/dp/B077TVQ28W">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Web Development Cookbook: Build full-stack web applications with Go thumbnail." src="/images/books/go-web-development-cookbook.jpg">
+
+            <span class="Learn-tileTitle">
+                Web Development Cookbook: Build full-stack web applications with Go
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Building-RESTful-Web-services-gracefully-ebook/dp/B072QB8KL1">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Building RESTful Web services with Go thumbnail." src="/images/books/building-restful-web-services-with-go.jpg">
+
+            <span class="Learn-tileTitle">
+                Building RESTful Web services with Go
+            </span>
+        </a>
+    </li>
+
+    <li class="Learn-tile">
+        <a href="https://www.amazon.com/Mastering-Web-Services-Nathan-Kozyra-ebook/dp/B00W5GUKL6">
+
+              <img
+              class="Learn-tileThumbnail Learn-tileThumbnail--book"
+              alt="Mastering Go Web Services thumbnail." src="/images/books/mastering-go-web-services.jpg">
+
+            <span class="Learn-tileTitle">
+                Mastering Go Web Services
+            </span>
+        </a>
+    </li>
+
+</ul>
+
+
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Web frameworks</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://gobuffalo.io/en/">Buffalo</a>
+      <p>A framework for rapid web development in Go, curating Go and JS libraries together.</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://echo.labstack.com/">Echo</a>
+      <p>A high performance, extensible, and minimalist Go web framework</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://www.flamingo.me/">Flamingo</a>
+      <p>A fast open-source framework based on Go with clean and scalable architecture</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://gin-gonic.com/">Gin</a>
+      <p>A web framework written in Go, with a martini-like API.</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="http://www.gorillatoolkit.org/">Gorilla</a>
+      <p>A web toolkit for the Go programming language.</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=web&#43;framework">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Routers</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/julienschmidt/httprouter?tab=overview">julienschmidt/httprouter</a>
+      <p>A lightweight high performance HTTP request router</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/gorilla/mux?tab=overview">gorilla/mux</a>
+      <p>A powerful HTTP router and URL matcher for building Go web servers with 🦍</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/go-chi/chi?tab=overview">Chi</a>
+      <p>A lightweight, idiomatic and composable router for building Go HTTP services.</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/net/http">net/http</a>
+      <p>A standard library HTTP package</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=http%20router">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Template Engines</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/html/template">html/template</a>
+      <p>A standard library HTML template engine</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/flosch/pongo2?tab=overview">flosch/pongo2</a>
+      <p>A Django-syntax like templating-language</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=templates">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Databases &amp; Drivers</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/database/sql">database/sql</a>
+      <p>A standard library interface with driver support for MySQL, Postgres, Oracle, MS SQL, BigQuery and most SQL databases</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo?tab=overview">mongo-driver/mongo</a>
+      <p>The MongoDB supported driver for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/olivere/elastic?tab=overview">olivere/elastic</a>
+      <p>A Elasticsearch client for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://gorm.io/">GORM</a>
+      <p>An ORM library for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="http://blevesearch.com/">Bleve</a>
+      <p>Full-text search and indexing for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://www.cockroachlabs.com/">CockroachDB</a>
+      <p>An evolution of the database—architected for the cloud to deliver resilient, consistent, distributed SQL at scale</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=database%20OR%20sql">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Web Libraries</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/markbates/goth?tab=overview">markbates/goth</a>
+      <p>Authentication for web apps</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/jinzhu/gorm?tab=overview">jinzhu/gorm</a>
+      <p>An ORM library for Go</p>
+    </li>
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/dgrijalva/jwt-go?tab=overview">dgrijalva/jwt-go</a>
+      <p>A Go implementation of json web tokens</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="https://pkg.go.dev/search?q=web">View More</a>
+</div>
+
+<div class="WhoUsesCaseStudy-librariesWrapper">
+  <div class="headerWithLink">
+    <h3>Other Projects</h3>
+  </div>
+  <ul class="WhoUsesCaseStudy-librariesList">
+
+    <li class="WhoUsesCaseStudy-library">
+      <a class="WhoUsesCaseStudy-libraryTitle" href="https://pkg.go.dev/github.com/gopherjs/gopherjs?tab=overview">gopherjs</a>
+      <p>A compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.</p>
+    </li>
+
+  </ul>
+  <a class="WhoUsesCaseStudy-librariesViewMoreLink" href="">View More</a>
+</div>
+
+<h3 id="courses">Courses</h3>
+
+<ul>
+<li><a href="https://www.usegolang.com" rel="noreferrer" target="_blank">Learn to Create Web Applications using Go</a>, a paid online course</li>
+</ul>
+
+<h3 id="projects">Projects</h3>
+
+<ul>
+<li><a href="https://pkg.go.dev/github.com/gopherjs/gopherjs?tab=overview">gopherjs</a>, a compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.</li>
+<li><a href="https://gohugo.io/" rel="noreferrer" target="_blank">Hugo</a>, The world’s fastest framework for building websites</li>
+<li><a href="https://mattermost.com/" rel="noreferrer" target="_blank">Mattermost</a>, a flexible, open source messaging platform
+that enables secure team collaboration</li>
+<li><a href="https://caddyserver.com/" rel="noreferrer" target="_blank">Caddy</a>, a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go</li>
+</ul>
+
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/solutions/wildlifestudios/index.html b/go.dev/testdata/golden/solutions/wildlifestudios/index.html
new file mode 100644
index 0000000..320a6c7
--- /dev/null
+++ b/go.dev/testdata/golden/solutions/wildlifestudios/index.html
@@ -0,0 +1,389 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title> - go.dev</title>
+<meta http-equiv="refresh" content="0; url=https://medium.com/tech-at-wildlife-studios/pitaya-wildlifes-golang-go-af57865f7a11">
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem  NavigationDrawer-listItem--active">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+<div>
+  <div class="WhoUsesSubPage-hero--caseStudy">
+    <div class="WhoUsesSubPage-heroInner--caseStudy">
+      <div class="WhoUsesSubPage-heroContent--caseStudy">
+        <div class="WhoUsesSubPage-heroText--caseStudy">
+
+  <div class="BreadcrumbNav">
+    <ol class="BreadcrumbNav-inner">
+
+
+
+
+
+
+
+
+
+
+
+
+      <li class="BreadcrumbNav-li ">
+        <a class="BreadcrumbNav-link" href="/solutions/">
+
+            Why Go
+
+        </a>
+      </li>
+
+
+
+
+
+      <li class="BreadcrumbNav-li active">
+        <a class="BreadcrumbNav-link" href="/solutions/wildlifestudios">
+
+            Wildlife Studios
+
+        </a>
+      </li>
+
+
+    </ol>
+
+  </div>
+          <h1></h1>
+
+
+        </div>
+
+            <div class="WhoUsesSubPage-heroImg">
+              <img src="/images/" alt="Wildlife Studios">
+            </div>
+
+        </div>
+      </div>
+
+  </div>
+  <article class="Article Article--solutions">
+
+      <div class="CaseStudy-content">
+        <div class="CaseStudy-contentBody">
+
+        </div>
+        <div class="CaseStudy-contentAside">
+          <div class="CaseStudy-aboutBlock">
+
+            <img src="/images/logos/wildlife.svg" class="CaseStudy-aboutBlockImg" alt="Wildlife Studios">
+            <h3 class="CaseStudy-aboutBlockTitle">
+              About Wildlife Studios
+            </h3>
+
+              <p class="CaseStudy-aboutBlockBody">Wildlife is a Brazilian native global company focused on mobile gaming. We aim to develop games that will make billions of people happy. We have almost 40 million daily active users, and we rely on Go as the main language for our core platform, given its features to scale our backend services.</p>
+
+          </div>
+        </div>
+      </div>
+
+  </article>
+</div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/tags/index.html b/go.dev/testdata/golden/tags/index.html
new file mode 100644
index 0000000..0d8f60e
--- /dev/null
+++ b/go.dev/testdata/golden/tags/index.html
@@ -0,0 +1,314 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Tags - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default"><div class="Container Container--padded">
+    <h1>Tags</h1>
+    <ul class="Series-list">
+
+    </ul>
+  </div>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>
diff --git a/go.dev/testdata/golden/tags/index.xml b/go.dev/testdata/golden/tags/index.xml
new file mode 100644
index 0000000..e677115
--- /dev/null
+++ b/go.dev/testdata/golden/tags/index.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
+  <channel>
+    <title>Tags on go.dev</title>
+    <link>https://go.dev/tags/</link>
+    <description>Recent content in Tags on go.dev</description>
+    <generator>Hugo -- gohugo.io</generator>
+    <language>en</language>
+    
+	<atom:link href="https://go.dev/tags/index.xml" rel="self" type="application/rss+xml" />
+    
+    
+  </channel>
+</rss>
\ No newline at end of file
diff --git a/go.dev/testdata/golden/tos/index.html b/go.dev/testdata/golden/tos/index.html
new file mode 100644
index 0000000..a2af043
--- /dev/null
+++ b/go.dev/testdata/golden/tos/index.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+
+<link rel="preconnect" href="https://www.googletagmanager.com">
+<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<meta charset="utf-8">
+<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<meta name="theme-color" content="#00add8">
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
+<link rel="stylesheet" href="/css/styles.css">
+
+  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
+  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
+  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
+  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
+  })(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
+
+<script src="/js/site.js"></script>
+<title>Terms of Service - go.dev</title>
+</head>
+<body class="Site">
+
+<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
+  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
+
+<header class="Site-header js-siteHeader">
+  <div class="Banner">
+    <div class="Banner-inner">
+      <div class="Banner-message">Black Lives Matter</div>
+      <a class="Banner-action"
+         href="https://support.eji.org/give/153413/#!/donation/checkout"
+         target="_blank"
+         rel="noopener">
+         Support the Equal Justice Initiative
+      </a>
+    </div>
+  </div>
+  <div class="Header Header--dark">
+    <nav class="Header-nav">
+      <a href="https://go.dev/">
+        <img
+          class="js-headerLogo Header-logo"
+          src="/images/go-logo-white.svg"
+          alt="Go">
+      </a>
+      <div class="Header-rightContent">
+
+<form
+  class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
+  <button
+    class="js-searchFormSubmit SearchForm-submit"
+    aria-label="Search for a package">
+    <svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
+      <path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
+      </svg>
+  </button>
+  <input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
+         placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
+         spellcheck="false" title="Search for a package">
+        </input>
+</form>
+
+        <ul class="Header-menu">
+          <li class="Header-menuItem ">
+            <a href="/solutions/">Why Go</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/learn/">Getting Started</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="https://pkg.go.dev">Discover Packages</a>
+          </li>
+          <li class="Header-menuItem ">
+            <a href="/about">About</a>
+          </li>
+        </ul>
+        <button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
+        </button>
+      </div>
+    </nav>
+
+  </div>
+</header>
+<aside class="NavigationDrawer js-header">
+  <nav class="NavigationDrawer-nav">
+    <div class="NavigationDrawer-header">
+      <a href="https://go.dev/">
+        <img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
+      </a>
+    </div>
+    <ul class="NavigationDrawer-list">
+        <li class="NavigationDrawer-listItem ">
+          <a href="/solutions/">Why Go</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/learn/">Getting Started</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="https://pkg.go.dev">Discover Packages</a>
+        </li>
+        <li class="NavigationDrawer-listItem ">
+          <a href="/about">About</a>
+        </li>
+    </ul>
+  </nav>
+</aside>
+<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
+<main class="SiteContent SiteContent--default">
+  <article class="Article ">
+    <h1>Terms of Service</h1>
+    <p>The Go website (the &ldquo;Website&rdquo;) is hosted by Google. By using and/or visiting the Website, you consent to be bound by
+Google&rsquo;s general <a href="//www.google.com/intl/en/policies/terms/">Terms of Service</a> and Google&rsquo;s general
+<a href="//www.google.com/intl/en/privacy/privacy-policy.html">Privacy Policy</a>.</p>
+
+  </article>
+</main>
+<footer class="Site-footer">
+  <div class="Footer">
+    <div class="Container">
+      <div class="Footer-links">
+          <div class="Footer-linkColumn">
+
+<a href="/solutions/" class="Footer-link Footer-link--primary">
+  Why Go
+</a>
+
+
+<a href="/solutions/#use-cases" class="Footer-link">
+  Use Cases
+</a>
+
+
+
+<a href="/solutions/#case-studies" class="Footer-link">
+  Case Studies
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/learn/" class="Footer-link Footer-link--primary">
+  Getting Started
+</a>
+
+
+<a href="https://play.golang.org" class="Footer-link">
+  Playground
+</a>
+
+
+
+<a href="https://tour.golang.org" class="Footer-link">
+  Tour
+</a>
+
+
+
+<a href="https://stackoverflow.com/questions/tagged/go?tab=Newest" class="Footer-link">
+  Stack Overflow
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://pkg.go.dev" class="Footer-link Footer-link--primary">
+  Discover Packages
+</a>
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="/about" class="Footer-link Footer-link--primary">
+  About
+</a>
+
+
+<a href="https://golang.org/dl/" class="Footer-link">
+  Download
+</a>
+
+
+
+<a href="https://blog.golang.org" class="Footer-link">
+  Blog
+</a>
+
+
+
+<a href="https://github.com/golang/go/issues" class="Footer-link">
+  Issue Tracker
+</a>
+
+
+
+<a href="https://golang.org/doc/devel/release.html" class="Footer-link">
+  Release Notes
+</a>
+
+
+
+<a href="https://blog.golang.org/go-brand" class="Footer-link">
+  Brand Guidelines
+</a>
+
+
+
+<a href="https://golang.org/conduct" class="Footer-link">
+  Code of Conduct
+</a>
+
+
+          </div>
+          <div class="Footer-linkColumn">
+
+<a href="https://www.twitter.com/golang" class="Footer-link Footer-link--primary">
+  Connect
+</a>
+
+
+<a href="https://www.twitter.com/golang" class="Footer-link">
+  Twitter
+</a>
+
+
+
+<a href="https://github.com/golang" class="Footer-link">
+  Github
+</a>
+
+
+
+<a href="https://invite.slack.golangbridge.org/" class="Footer-link">
+  Slack
+</a>
+
+
+
+<a href="https://reddit.com/r/golang" class="Footer-link">
+  r/golang
+</a>
+
+
+
+<a href="https://www.meetup.com/pro/go" class="Footer-link">
+  Meetup
+</a>
+
+
+
+<a href="https://golangweekly.com/" class="Footer-link">
+  Golang Weekly
+</a>
+
+
+          </div>
+      </div>
+    </div>
+  </div>
+  <div class="Footer">
+    <div class="Container Container--fullBleed">
+      <div class="Footer-bottom">
+        <img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
+        <ul class="Footer-listRow">
+          <li class="Footer-listItem">
+            <a href="/copyright">Copyright</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="/tos">Terms of Service</a>
+          </li>
+          <li class="Footer-listItem">
+            <a href="http://www.google.com/intl/en/policies/privacy/"
+              target="_blank"
+              rel="noopener">
+              Privacy Policy
+            </a>
+            </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org/s/discovery-feedback"
+              target="_blank"
+              rel="noopener"
+              >
+              Report an Issue
+            </a>
+          </li>
+          <li class="Footer-listItem">
+            <a
+              href="https://golang.org"
+              target="_blank"
+              rel="noopener"
+              >golang.org
+            </a>
+          </li>
+        </ul>
+        <a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
+          <img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
+        </a>
+      </div>
+    </div>
+  </div>
+  <script src="/js/carousels.js"></script>
+  <script src="/js/searchBox.js"></script>
+  <script src="/js/misc.js"></script>
+  <script src="/js/hats.js"></script>
+</footer>
+</body>
+</html>