This directory contains the hashes of tar.gz files uploaded to cloud storage.
Hooks in the DEPS files run "download_from_google_storage" to download these
tarfiles, and unpack them.  These tar files contain a stable Dart SDK, which
is used to build the observatory and to run the test scripts.

The hooks use the --auto-platform feature, so that only the SDK for the
current platform (linux, macos, or windows) is downloaded.  This requires
the subdirectories to have the special names "linux", "win", and "mac", which
the download script is hardcoded to recognize.

The linux SDK has had two extra dart executables added to the bin directory.
'dart-mips' and 'dart-arm' are executables compiled to run on mips and arm
processors, respectively.

To upload new versions of these tar files, use the "upload_to_google_storage"
tool in depot_tools, and download the new stable SDKs from the dartlang.org
web page.  The mips and arm executables must be copied from the machines that
build them, and stripped.  There should be no need to update these tar files
for every new stable version of Dart.

