)]}'
{
  "commit": "ada65567852b96fdb4d070c0c3f86ca7b77824f9",
  "tree": "a506994ce921ace3e6f88ca130a17af7f85c3d0f",
  "parents": [
    "581be24606a925d038f382dc4c86256e2d29e001"
  ],
  "author": {
    "name": "Jisi Liu",
    "email": "jisi.liu@gmail.com",
    "time": "Wed Feb 25 16:39:11 2015 -0800"
  },
  "committer": {
    "name": "Jisi Liu",
    "email": "jisi.liu@gmail.com",
    "time": "Wed Feb 25 16:39:11 2015 -0800"
  },
  "message": "Down integrate from Google  internal.\n\nChange-Id: I34d301133eea9c6f3a822c47d1f91e136fd33145\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7d852458344ddbecb0316bfbcb721c1045f2fb31",
      "old_mode": 33188,
      "old_path": "python/README.txt",
      "new_id": "04cb17670d75a78d3c2737f4e79c11c8db09b668",
      "new_mode": 33188,
      "new_path": "python/README.txt"
    },
    {
      "type": "modify",
      "old_id": "af571b7cc69b4de1d5107be5a8f7b958777d24e1",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/descriptor.py",
      "new_id": "f7a58ca0649038226b0725df543ecaeb4d9fd8d1",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/descriptor.py"
    },
    {
      "type": "modify",
      "old_id": "bcac513a66d11567fb0cff763fa724f160c9401d",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/descriptor_pool.py",
      "new_id": "7e7701f80d9246e418e66d86445a324822aa3a8b",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/descriptor_pool.py"
    },
    {
      "type": "modify",
      "old_id": "83db40b1100e57fa28e3cfdc32a36ffb5e8cf535",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/internal/api_implementation.cc",
      "new_id": "6db12e8dc676579657103e327495422f94b807a2",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/internal/api_implementation.cc"
    },
    {
      "type": "modify",
      "old_id": "f7926c16a818341162d3fad87c998bd09e941aea",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/api_implementation.py",
      "new_id": "8ba4357c273af926cbfcfb221a92961c306f09f5",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/api_implementation.py"
    },
    {
      "type": "delete",
      "old_id": "78d5cf232bc01c30c06e86215d16fbd70c816877",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/internal/api_implementation_default_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "20bfa8570e4e292bf72a2e497b530435ca62752b",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/containers.py",
      "new_id": "d976f9e14b9512d551d6f3cb3f2ea035d68d5008",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/containers.py"
    },
    {
      "type": "modify",
      "old_id": "a4b90608691e0c86ee97671e2eb2b2d5ecb996ed",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/decoder.py",
      "new_id": "0f500606f3147f28e415916a9bff489fa3062092",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/decoder.py"
    },
    {
      "type": "modify",
      "old_id": "3924f21a1d861c3fde5290a977ea79b47f11b9a0",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/descriptor_test.py",
      "new_id": "50c4dbbabe892fc6b0c3093099874836b53b7f60",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/descriptor_test.py"
    },
    {
      "type": "modify",
      "old_id": "42e2ad7e0c65af41f76b0b2d1f6328f968c6336a",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/message_test.py",
      "new_id": "7ab814cf228326ab1c9d19bf7715f714c6c4598c",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/message_test.py"
    },
    {
      "type": "modify",
      "old_id": "6fda6ae012cbef103e5512a683bee783821eac1c",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/python_message.py",
      "new_id": "6ad0f90de01d4af2aab3f9ac7cb5512c791ee821",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/python_message.py"
    },
    {
      "type": "modify",
      "old_id": "6b24b092e36c1b59bd38d3dbdc3a0ad280391d2f",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/reflection_test.py",
      "new_id": "8ac76c63d652741ba62a8d48acc2501a8ef87cea",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/reflection_test.py"
    },
    {
      "type": "modify",
      "old_id": "787f46505d75361063f43158aee704d7783ab4e1",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/test_util.py",
      "new_id": "d84e383619253d2d521975fcfe37836c8437a887",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/test_util.py"
    },
    {
      "type": "modify",
      "old_id": "55e3c2c854afbc82ddec7df00eb50a5be778d27a",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/text_format_test.py",
      "new_id": "68ab9659699ad845669b98ea1906b43c5ec421b0",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/text_format_test.py"
    },
    {
      "type": "modify",
      "old_id": "118725dad881f62da1656f8672164de89bc0a980",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/type_checkers.py",
      "new_id": "76c056c4b86c541ce014601338cfc727770781b9",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/type_checkers.py"
    },
    {
      "type": "modify",
      "old_id": "a4dc1f7cff6e772a0869dd0eb8bedfef14b33676",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/internal/unknown_fields_test.py",
      "new_id": "59f9ae4c0feba52ea871534aa0ebb2e201471d34",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/internal/unknown_fields_test.py"
    },
    {
      "type": "modify",
      "old_id": "7343c0b76ba268d081d306b2a7364edbc475b75b",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/descriptor.cc",
      "new_id": "d9b90ddbce0fd54ecdf11a73c73c3d3009ebf56e",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/descriptor.cc"
    },
    {
      "type": "modify",
      "old_id": "9e5957b53c66d14d289cb9de5dd9ab10ad0a595f",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/descriptor.h",
      "new_id": "ba6e72987cd721d92946c3f63d8976f2e91700ba",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/descriptor.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "06edebf8063eb50b9181ec20f3136882cc8a9930",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/descriptor_containers.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d81537deca67a9caf6b2cca498d5f1d181123c17",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/descriptor_containers.h"
    },
    {
      "type": "delete",
      "old_id": "3cf45a226ae407abc993eb2363ca855638eeabc3",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/descriptor_cpp2_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bc3077bc8480ac8968379be4097872a0af5a324f",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/descriptor_pool.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e494b8941bf1b35c9607b568753ba755aa26e54",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/descriptor_pool.h"
    },
    {
      "type": "modify",
      "old_id": "d83b57d56e790c1f5a34cc9f794fa2d3af6dc2bf",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/extension_dict.cc",
      "new_id": "8e38fc42f71fb0901b3ac17b7bbc539e2ee57b28",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/extension_dict.cc"
    },
    {
      "type": "modify",
      "old_id": "47625e239cfb470550661a258a4f8aff99bc5b98",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/extension_dict.h",
      "new_id": "7e1049f1992b6beca9e4f5fe428c532bd92e6b3d",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/extension_dict.h"
    },
    {
      "type": "modify",
      "old_id": "cd956e0eedef584a4bebf9c6dbd94b960ad93680",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/message.cc",
      "new_id": "137f5d5f77e0287bd1d4d652bd37119be8db9cb9",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/message.cc"
    },
    {
      "type": "modify",
      "old_id": "0fef92a064fa392aceb6ebcd985123d18d7b675f",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/message.h",
      "new_id": "2f2da79517c314f4c7d82ba7bb25634dfd34daa1",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/message.h"
    },
    {
      "type": "delete",
      "old_id": "32ab4f8528cae2a0038d23cea7d96b1b1eade672",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/message_factory_cpp2_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "552efd482e4a2fa9f6b1cd4087e30ee6d12a6911",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/pyext/reflection_cpp2_generated_test.py",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "36fe86ae9177b156f7c1ed63be5141c9656cc09d",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/repeated_composite_container.cc",
      "new_id": "49ef799102a1207db638e13ccfa1c4fa09135ce8",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/repeated_composite_container.cc"
    },
    {
      "type": "modify",
      "old_id": "0969af08cd742af6666311fe30860296028fb482",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/repeated_composite_container.h",
      "new_id": "ce7cee0facd7ced68851da546c00776eb6585fca",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/repeated_composite_container.h"
    },
    {
      "type": "modify",
      "old_id": "49d23fd677fc53f7437d09ae79808664f03971d3",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/repeated_scalar_container.cc",
      "new_id": "9f8075b2741906e6eb21ba7be98dc97a9fe79b6b",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/repeated_scalar_container.cc"
    },
    {
      "type": "modify",
      "old_id": "513bfe48f35f3233cb187986ba98f1d59453477d",
      "old_mode": 33188,
      "old_path": "python/google/protobuf/pyext/repeated_scalar_container.h",
      "new_id": "5dfa21e08f7df99126387e029f2ba8f72126727e",
      "new_mode": 33188,
      "new_path": "python/google/protobuf/pyext/repeated_scalar_container.h"
    },
    {
      "type": "modify",
      "old_id": "1fc704a233ca523960a3b3d507c7296fd4c8239f",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/reflection.py",
      "new_id": "55e653a0fc587adcd4f2eb6ed9ecc9745da91e68",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/reflection.py"
    },
    {
      "type": "modify",
      "old_id": "fb54c50ccc185d00e4a20497c95fe2c48d2b7f5a",
      "old_mode": 33261,
      "old_path": "python/google/protobuf/text_format.py",
      "new_id": "a47ce3e32e04318ddce874cc5f8a334cbd1e7718",
      "new_mode": 33261,
      "new_path": "python/google/protobuf/text_format.py"
    },
    {
      "type": "modify",
      "old_id": "45dd07616221682343abc0e38430abc180185ce0",
      "old_mode": 33261,
      "old_path": "python/setup.py",
      "new_id": "c6ff7454b925705eaceaa9523c54d3fb6173d67e",
      "new_mode": 33261,
      "new_path": "python/setup.py"
    },
    {
      "type": "modify",
      "old_id": "0c65b993f2df1a6efbd2b9766f62164b89ac6c6b",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/python/python_generator.cc",
      "new_id": "7b3b5fa3cd4a5ac34d3b2cfbaac555aac5a6a6ff",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/python/python_generator.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "934f36face421835f2f91329b332483dc1099fb1",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/testdata/golden_message_proto3"
    },
    {
      "type": "modify",
      "old_id": "53f23d8757100712dbd611c80ef2e7756e5cc8f8",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/unittest_proto3_arena.proto",
      "new_id": "6d7bada8f3904b8f8b6060c936bb6730676df117",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/unittest_proto3_arena.proto"
    }
  ]
}
