action-info.svg comes from the Material Design icon set. See
action/svg/production/ic_info_48px.svg in the
github.com/google/material-design-icons repository.

action-info.{lo,hi}res.ivg are low- and high-resolution IconVG versions of that
SVG file. Low resolution means that coordinates are quantized to 1/64th of a
unit; the graphic's size is 48 by 48 units. High resolution means that
coordinates are represented by all but the 2 least significant bits of a
float32. Each low resolution coordinate is encoded in either 1 or 2 bytes. Each
high resolution coordinate is encoded in either 1, 2 or 4 bytes.

action-info.{lo,hi}res.ivg.disassembly are disassemblies of those IconVG files.

action-info.{lo,hi}res.png are renderings of those IconVG files.



arcs.ivg is inspired by the two examples at
https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands

arcs.ivg.disassembly is a disassembly of that IconVG file.

arcs.png is a rendering of that IconVG file.



blank.ivg is a blank, square graphic.

blank.ivg.disassembly is a disassembly of that IconVG file.

blank.png is a rendering of that IconVG file.



cowbell.svg is an original artwork by nigeltao@golang.org.

cowbell.ivg is an IconVG version of that SVG file.

cowbell.ivg.disassembly is a disassembly of that IconVG file.

cowbell.png is a rendering of that IconVG file.



elliptical.ivg was created manually.

elliptical.ivg.disassembly is a disassembly of that IconVG file.

elliptical.png is a rendering of that IconVG file.



favicon.svg is based on doc/gopher/favicon.svg from the Go 1.7 release, after
using Inkscape to convert strokes and circles to paths, and saving it as an
"Optimized SVG".

favicon.ivg is an IconVG version of that SVG file.

favicon.ivg.disassembly is a disassembly of that IconVG file.

favicon.png is a rendering of that IconVG file.



gradient.ivg was created manually.

gradient.ivg.disassembly is a disassembly of that IconVG file.

gradient.png is a rendering of that IconVG file.



lod-polygon.ivg was created manually.

lod-polygon.ivg.disassembly is a disassembly of that IconVG file.

lod-polygon.png and lod-polygon.64.png are renderings of that IconVG file.



video-005.jpeg comes from an old version of the Go repository. See
https://codereview.appspot.com/5758047/

video-005.primitive.svg was based on running github.com/fogleman/primitive on a
256x192 scaled version of video-005.jpeg.

video-005.primitive.ivg is an IconVG version of that SVG file.

video-005.primitive.ivg.disassembly is a disassembly of that IconVG file.

video-005.primitive.png is a rendering of that IconVG file.
