This repository contains the files generated by boringssl for its build.
It also contains this file and the files BUILD.gn, boringssl_dart.gyp,
boringssl_configurations.gypi, and codreview.settings.

The generated source is for boringssl from:

https://boringssl.googlesource.com/boringssl.git

at revision:

d519bf6be0b447fb80fbc539d4bff4479b5482a2

To roll boringssl forward, delete all but this file and the above mentioned
files, checkout the new boringssl into a subdirectory called src/, and run the
script src/util/generate_build_files.py with appropriate arguments. It may also
be necessary to update BUILD.gn, etc.
