| Index: third_party/protobuf/CHANGES.txt
 | 
| diff --git a/third_party/protobuf/CHANGES.txt b/third_party/protobuf/CHANGES.txt
 | 
| index 3459cccfa9cf7c572d55b34fc5635d2c221bb20b..7fb2da2e22089ef9b520227855efb2745153bcb1 100644
 | 
| --- a/third_party/protobuf/CHANGES.txt
 | 
| +++ b/third_party/protobuf/CHANGES.txt
 | 
| @@ -1,3 +1,235 @@
 | 
| +2016-09-23 version 3.1.0 (C++/Java/Python/PHP/Ruby/Objective-C/C#/JavaScript/Lite)
 | 
| +  General
 | 
| +  * Proto3 support in PHP (alpha).
 | 
| +  * Various bug fixes.
 | 
| +
 | 
| +  C++
 | 
| +  * Added MessageLite::ByteSizeLong() that’s equivalent to
 | 
| +    MessageLite::ByteSize() but returns the value in size_t. Useful to check
 | 
| +    whether a message is over the 2G size limit that protobuf can support.
 | 
| +  * Moved default_instances to global variables. This allows default_instance
 | 
| +    addresses to be known at compile time.
 | 
| +  * Adding missing generic gcc 64-bit atomicops.
 | 
| +  * Restore New*Callback into google::protobuf namespace since these are used
 | 
| +    by the service stubs code
 | 
| +  * JSON support.
 | 
| +    * Fixed some conformance issues.
 | 
| +  * Fixed a JSON serialization bug for bytes fields.
 | 
| +
 | 
| +  Java
 | 
| +  * Fixed a bug in TextFormat that doesn’t accept empty repeated fields (i.e.,
 | 
| +    “field: [ ]”).
 | 
| +  * JSON support
 | 
| +    * Fixed JsonFormat to do correct snake_case-to-camelCase conversion for
 | 
| +      non-style-conforming field names.
 | 
| +    * Fixed JsonFormat to parse empty Any message correctly.
 | 
| +    * Added an option to JsonFormat.Parser to ignore unknown fields.
 | 
| +  * Experimental API
 | 
| +    * Added UnsafeByteOperations.unsafeWrap(byte[]) to wrap a byte array into
 | 
| +      ByteString without copy.
 | 
| +
 | 
| +  Python
 | 
| +  * JSON support
 | 
| +    * Fixed some conformance issues.
 | 
| +
 | 
| +  PHP (Alpha)
 | 
| +  * We have added the proto3 support for PHP via both a pure PHP package and a
 | 
| +    native c extension. The pure PHP package is intended to provide usability
 | 
| +    to wider range of PHP platforms, while the c extension is intended to
 | 
| +    provide higher performance. Both implementations provide the same runtime
 | 
| +    APIs and share the same generated code. Users don’t need to re-generate
 | 
| +    code for the same proto definition when they want to switch the
 | 
| +    implementation later. The pure PHP package is included in the php/src
 | 
| +    directory, and the c extension is included in the php/ext directory. 
 | 
| +   
 | 
| +    Both implementations provide idiomatic PHP APIs:
 | 
| +    * All messages and enums are defined as PHP classes.
 | 
| +    * All message fields can only be accessed via getter/setter.
 | 
| +    * Both repeated field elements and map elements are stored in containers
 | 
| +      that act like a normal PHP array.
 | 
| +  
 | 
| +    Unlike several existing third-party PHP implementations for protobuf, our
 | 
| +    implementations are built on a "strongly-typed" philosophy: message fields
 | 
| +    and array/map containers will throw exceptions eagerly when values of the
 | 
| +    incorrect type (not including those that can be type converted, e.g.,
 | 
| +    double <-> integer <-> numeric string) are inserted.
 | 
| +  
 | 
| +    Currently, pure PHP runtime supports php5.5, 5.6 and 7 on linux. C
 | 
| +    extension runtime supports php5.5 and 5.6 on linux.
 | 
| +  
 | 
| +    See php/README.md for more details about installment. See
 | 
| +    https://developers.google.com/protocol-buffers/docs/phptutorial for more
 | 
| +    details about APIs.
 | 
| +
 | 
| +  Objective-C
 | 
| +  * Helpers are now provided for working the the Any well known type (see
 | 
| +    GPBWellKnownTypes.h for the api additions).
 | 
| +  * Some improvements in startup code (especially when extensions aren’t used).
 | 
| +
 | 
| +  Javascript
 | 
| +  * Fixed missing import of jspb.Map
 | 
| +  * Fixed valueWriterFn variable name
 | 
| +
 | 
| +  Ruby
 | 
| +  * Fixed hash computation for JRuby's RubyMessage
 | 
| +  * Make sure map parsing frames are GC-rooted.
 | 
| +  * Added API support for well-known types.
 | 
| +
 | 
| +  C#
 | 
| +  * Removed check on dependency in the C# reflection API.
 | 
| +
 | 
| +2016-09-06 version 3.0.2 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript/Lite)
 | 
| +  General
 | 
| +  * Various bug fixes.
 | 
| +
 | 
| +  Objective C
 | 
| +  * Fix for oneofs in proto3 syntax files where fields were set to the zero
 | 
| +    value.
 | 
| +  * Fix for embedded null character in strings.
 | 
| +  * CocoaDocs support
 | 
| +
 | 
| +  Ruby
 | 
| +  * Fixed memory corruption bug in parsing that could occur under GC pressure.
 | 
| +
 | 
| +  Javascript
 | 
| +  * jspb.Map is now properly exported to CommonJS modules.
 | 
| +
 | 
| +  C#
 | 
| +  * Removed legacy_enum_values flag.
 | 
| +
 | 
| +
 | 
| +2016-07-27 version 3.0.0 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript/Lite)
 | 
| +  General
 | 
| +  * This log only contains changes since the beta-4 release. Summarized change
 | 
| +    log since the last stable release (v2.6.1) can be found in the github
 | 
| +    release page.
 | 
| +
 | 
| +  Compatibility Notice
 | 
| +  * v3.0.0 is the first API stable release of the v3.x series. We do not expect
 | 
| +    any future API breaking changes.
 | 
| +  * For C++, Java Lite and Objective-C, source level compatibility is
 | 
| +    guaranteed.  Upgrading from v3.0.0 to newer minor version releases will be
 | 
| +    source compatible. For example, if your code compiles against protobuf
 | 
| +    v3.0.0, it will continue to compile after you upgrade protobuf library to
 | 
| +    v3.1.0.
 | 
| +  * For other languages, both source level compatibility and binary level
 | 
| +    compatibility are guaranteed. For example, if you have a Java binary built
 | 
| +    against protobuf v3.0.0. After switching the protobuf runtime binary to
 | 
| +    v3.1.0, your built binary should continue to work.
 | 
| +  * Compatibility is only guaranteed for documented API and documented
 | 
| +    behaviors. If you are using undocumented API (e.g., use anything in the C++
 | 
| +    internal namespace), it can be broken by minor version releases in an
 | 
| +    undetermined manner.
 | 
| +
 | 
| +  Ruby
 | 
| +  * When you assign a string field `a.string_field = "X"`, we now call
 | 
| +    #encode(UTF-8) on the string and freeze the copy. This saves you from
 | 
| +    needing to ensure the string is already encoded as UTF-8. It also prevents
 | 
| +    you from mutating the string after it has been assigned (this is how we
 | 
| +    ensure it stays valid UTF-8).
 | 
| +  * The generated file for `foo.proto` is now `foo_pb.rb` instead of just
 | 
| +    `foo.rb`. This makes it easier to see which imports/requires are from
 | 
| +    protobuf generated code, and also prevents conflicts with any `foo.rb` file
 | 
| +    you might have written directly in Ruby. It is a backward-incompatible
 | 
| +    change: you will need to update all of your `require` statements.
 | 
| +  * For package names like `foo_bar`, we now translate this to the Ruby module
 | 
| +    `FooBar`. This is more idiomatic Ruby than what we used to do (`Foo_bar`).
 | 
| +
 | 
| +  JavaScript
 | 
| +  * Scalar fields like numbers and boolean now return defaults instead of
 | 
| +    `undefined` or `null` when they are unset. You can test for presence
 | 
| +    explicitly by calling `hasFoo()`, which we now generate for scalar fields.
 | 
| +
 | 
| +  Java Lite
 | 
| +  * Java Lite is now implemented as a separate plugin, maintained in the
 | 
| +    `javalite` branch. Both lite runtime and protoc artifacts will be available
 | 
| +    in Maven.
 | 
| +
 | 
| +  C#
 | 
| +  * Target platforms now .NET 4.5, selected portable subsets and .NET Core.
 | 
| +  * legacy_enum_values option is no longer supported.
 | 
| +
 | 
| +2016-07-15 version 3.0.0-beta-4 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript)
 | 
| +  General
 | 
| +  * Added a deterministic serialization API for C++. The deterministic
 | 
| +    serialization guarantees that given a binary, equal messages will be
 | 
| +    serialized to the same bytes. This allows applications like MapReduce to
 | 
| +    group equal messages based on the serialized bytes. The deterministic
 | 
| +    serialization is, however, NOT canonical across languages; it is also
 | 
| +    unstable across different builds with schema changes due to unknown fields.
 | 
| +    Users who need canonical serialization, e.g. persistent storage in a
 | 
| +    canonical form, fingerprinting, etc, should define their own
 | 
| +    canonicalization specification and implement the serializer using reflection
 | 
| +    APIs rather than relying on this API.
 | 
| +  * Added OneofOptions. You can now define custom options for oneof groups.
 | 
| +      import "google/protobuf/descriptor.proto";
 | 
| +      extend google.protobuf.OneofOptions {
 | 
| +        optional int32 my_oneof_extension = 12345;
 | 
| +      }
 | 
| +      message Foo {
 | 
| +        oneof oneof_group {
 | 
| +          (my_oneof_extension) = 54321;
 | 
| +          ...
 | 
| +        }
 | 
| +      }
 | 
| +
 | 
| +  C++ (beta)
 | 
| +  * Introduced a deterministic serialization API in
 | 
| +    CodedOutputStream::SetSerializationDeterministic(bool). See the notes about
 | 
| +    deterministic serialization in the General section.
 | 
| +  * Added google::protobuf::Map::swap() to swap two map fields.
 | 
| +  * Fixed a memory leak when calling Reflection::ReleaseMessage() on a message
 | 
| +    allocated on arena.
 | 
| +  * Improved error reporting when parsing text format protos.
 | 
| +  * JSON
 | 
| +      - Added a new parser option to ignore unknown fields when parsing JSON.
 | 
| +      - Added convenient methods for message to/from JSON conversion.
 | 
| +  * Various performance optimizations.
 | 
| +
 | 
| +  Java (beta)
 | 
| +  * File option "java_generate_equals_and_hash" is now deprecated. equals() and
 | 
| +    hashCode() methods are generated by default.
 | 
| +  * Added a new JSON printer option "omittingInsignificantWhitespace" to produce
 | 
| +    a more compact JSON output. The printer will pretty-print by default.
 | 
| +  * Updated Java runtime to be compatible with 2.5.0/2.6.1 generated protos.
 | 
| +
 | 
| +  Python (beta)
 | 
| +  * Added support to pretty print Any messages in text format.
 | 
| +  * Added a flag to ignore unknown fields when parsing JSON.
 | 
| +  * Bugfix: "@type" field of a JSON Any message is now correctly put before
 | 
| +    other fields.
 | 
| +
 | 
| +  Objective-C (beta)
 | 
| +  * Updated the code to support compiling with more compiler warnings
 | 
| +    enabled. (Issue 1616)
 | 
| +  * Exposing more detailed errors for parsing failures. (PR 1623)
 | 
| +  * Small (breaking) change to the naming of some methods on the support classes
 | 
| +    for map<>. There were collisions with the system provided KVO support, so
 | 
| +    the names were changed to avoid those issues.  (PR 1699)
 | 
| +  * Fixed for proper Swift bridging of error handling during parsing. (PR 1712)
 | 
| +  * Complete support for generating sources that will go into a Framework and
 | 
| +    depend on generated sources from other Frameworks. (Issue 1457)
 | 
| +
 | 
| +  C# (beta)
 | 
| +  * RepeatedField optimizations.
 | 
| +  * Support for .NET Core.
 | 
| +  * Minor bug fixes.
 | 
| +  * Ability to format a single value in JsonFormatter (advanced usage only).
 | 
| +  * Modifications to attributes applied to generated code.
 | 
| +
 | 
| +  Javascript (alpha)
 | 
| +  * Maps now have a real map API instead of being treated as repeated fields.
 | 
| +  * Well-known types are now provided in the google-protobuf package, and the
 | 
| +    code generator knows to require() them from that package.
 | 
| +  * Bugfix: non-canonical varints are correctly decoded.
 | 
| +
 | 
| +  Ruby (alpha)
 | 
| +  * Accessors for oneof fields now return default values instead of nil.
 | 
| +
 | 
| +  Java Lite
 | 
| +  * Java lite support is removed from protocol compiler. It will be supported
 | 
| +    as a protocol compiler plugin in a separate code branch.
 | 
| +
 | 
|  2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript)
 | 
|    General
 | 
|    * Supported Proto3 lite-runtime in C++/Java for mobile platforms.
 | 
| 
 |