)]}'
{
  "log": [
    {
      "commit": "12c659a50ca1407a40f9f7dbf0dc8c174c7d3493",
      "tree": "0e475550210f2acfba002f6d84946d5b7c76ad6c",
      "parents": [
        "8fe8a18160571621d0ce24c74b9ff943f8ad4ca3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 17:01:58 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 17:01:58 2009 -0700"
      },
      "message": "make sure the Region code disallows constructs like \"(a+b)\u003dc;\", which is somewhat meaningless.\n"
    },
    {
      "commit": "8fe8a18160571621d0ce24c74b9ff943f8ad4ca3",
      "tree": "41c37daff2d46551c2105f08a2d39d3e17660a1e",
      "parents": [
        "2da99bdaa1712f00525e6a84b58044332cb1baef"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 15:02:35 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 15:02:35 2009 -0700"
      },
      "message": "oops forgot these changes in the previous merge. fixes build\n"
    },
    {
      "commit": "2da99bdaa1712f00525e6a84b58044332cb1baef",
      "tree": "ed330500de06dc645769ea87372fb624390b52a8",
      "parents": [
        "947f4f4d384ea26eb2145cc070a3eed42c59534a",
        "cc77841f643751fd9f128e90f7d1587445ef353e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 14:34:50 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 27 14:34:50 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n\nConflicts:\n\tinclude/ui/Rect.h\n\tlibs/ui/ISurfaceComposer.cpp\n"
    },
    {
      "commit": "09d00f705be5dbc1766e12e47c0a743abbad360e",
      "tree": "73355a7084fea382f8fd4f423d339cde5f26b191",
      "parents": [
        "602aa9748284c05ea8c7ae2679e210c23d18dcee",
        "0c0ad39cd8eaa6de6b7f99cec3971bcc953461e0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 26 18:15:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 26 18:15:53 2009 -0700"
      },
      "message": "am 0c0ad39c: Merge change 2502 into donut\n\nMerge commit \u00270c0ad39cd8eaa6de6b7f99cec3971bcc953461e0\u0027\n\n* commit \u00270c0ad39cd8eaa6de6b7f99cec3971bcc953461e0\u0027:\n  minor clean-up to Rect and Point.\n"
    },
    {
      "commit": "f1472a79728324f4f6b5d66af986e9e9db24d0aa",
      "tree": "a2564a0aa4ee3ebb7ff4980ca86dbac09ecbec7e",
      "parents": [
        "c29df57e5abb09c7e1ceed153e8f2b906f522d7b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 26 17:44:57 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 26 17:47:39 2009 -0700"
      },
      "message": "minor clean-up to Rect and Point.\n\n- return \"const\" objects for overloaded operators to disallow constructs like: (a+b) \u003d c;\n- don\u0027t return references to non-static members, it\u0027s not always safe.\n- Point.cpp was empty, so get rid of it\n"
    },
    {
      "commit": "aaf834a284a025cedd8ec1cf01d09e1790c1dcf8",
      "tree": "6314488c2ccaa1ab96923a1c771593ee65e7a726",
      "parents": [
        "7f36a5729f17fcb37a7b65a13fd86b0d922caca9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 19:00:22 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 26 16:12:20 2009 -0700"
      },
      "message": "some work to try to reduce the code size of some native libraries\n\n- make sure that all binder Bn classes define a ctor and dtor in their respective library.\n  This avoids duplication of the ctor/dtor in libraries where these objects are instantiated.\n  This is also cleaner, should we want these ctor/dtor to do something one day.\n\n- same change as above for some Bp classes and various other non-binder classes\n\n- moved the definition of CHECK_INTERFACE() in IInterface.h instead of having it everywhere.\n\n- improved the CHECK_INTERFACE() macro so it calls a single method in Parcel, instead of inlining its code everywhere\n\n- IBinder::getInterfaceDescriptor() now returns a \"const String16\u0026\" instead of String16, which saves calls to String16 and ~String16\n\n- implemented a cache for BpBinder::getInterfaceDescriptor(), since this does an IPC. HOWEVER, this method never seems to be called.\n  The cache makes BpBinder bigger, so we need to figure out if we need this method at all.\n"
    },
    {
      "commit": "c5d0343b677d5ddc2d69fd15b81b084a40ab12ac",
      "tree": "d2709457029d8b4cc581bba22aa13e4fa8fabd42",
      "parents": [
        "620ad3dcf1e966bbcca3d6280fdd16f09441a733",
        "de8268d6d1cd168510c490b17e93154d2eab767c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 26 10:11:44 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 26 10:11:44 2009 -0700"
      },
      "message": "am de8268d6: Merge change 2331 into donut\n\nMerge commit \u0027de8268d6d1cd168510c490b17e93154d2eab767c\u0027\n\n* commit \u0027de8268d6d1cd168510c490b17e93154d2eab767c\u0027:\n  Fix issue 1846343 - part 1\n"
    },
    {
      "commit": "4bc035a65cac177be9294e69f110497e3b6e34e6",
      "tree": "634b5bde8fc4cae5a7b77ee3cde01f04bc9ae7fc",
      "parents": [
        "a5f158bdde77f8d173d1f1c95d0f92405c519b0f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 22 09:18:15 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 26 07:44:28 2009 -0700"
      },
      "message": "Fix issue 1846343 - part 1\n\nThis change is the first part of a fix for issue 1846343, :\n- Added new enum values for input sources in AudioRecord and MediaRecorder for voice uplink, downlink and uplink+downlink sources.\n- renamed streamType to inputSource in all native functions handling audio record.\n\nA second change is required in opencore author driver and android audio input to completely fix the issue.\n"
    },
    {
      "commit": "947f4f4d384ea26eb2145cc070a3eed42c59534a",
      "tree": "edc5fb1e6e808a2b809720f44b6236ebe93b577b",
      "parents": [
        "6158b1bf0364da1582468a98ec09d004ba99deec",
        "0690519fcde1ccb189081aa79df61436f65686c2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 01:27:01 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 22 02:16:08 2009 -0700"
      },
      "message": "merge master to master_gl\n"
    },
    {
      "commit": "bca8ecf8054f81f1908b7b876803c08bbb3e8ec2",
      "tree": "c4e4fcaaab3b17e49a2f2dfeb3b794be8ae4c124",
      "parents": [
        "547a397f9bd86e5383ec68d96fb15bfa9bfcec77",
        "dfece80c790934e4413def863070ac0dd21f6e29"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 16:32:55 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 16:32:55 2009 -0700"
      },
      "message": "Merge change 2260\n\n* changes:\n  change 2115 wasn\u0027t merged properly into master. this fixes that.\n"
    },
    {
      "commit": "dfece80c790934e4413def863070ac0dd21f6e29",
      "tree": "8e9e2d17e5ecd6086bf02416f3a700c0d09247d7",
      "parents": [
        "8f80eef228cfd01b938ca48202d6a264f7689154"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 16:29:38 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 16:29:38 2009 -0700"
      },
      "message": "change 2115 wasn\u0027t merged properly into master. this fixes that.\n\nMerge change 2115 into donut\n\n* changes:\n  bring the native_handle stuff back from master_gl\n\nConflicts:\n\n\tlibs/binder/Parcel.cpp\n"
    },
    {
      "commit": "547a397f9bd86e5383ec68d96fb15bfa9bfcec77",
      "tree": "20677fd4a28392764107e1d1a44a9da93eead5b3",
      "parents": [
        "6d71ac3adb0357fe57e6eb4863d5fed708be4205",
        "384bfa270cdcb5dc3bc9ec396b783e25eb2d9b4d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 16:18:48 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 21 16:18:48 2009 -0700"
      },
      "message": "am 384bfa27: Merge change 2227 into donut\n\nMerge commit \u0027384bfa270cdcb5dc3bc9ec396b783e25eb2d9b4d\u0027\n\n* commit \u0027384bfa270cdcb5dc3bc9ec396b783e25eb2d9b4d\u0027:\n  Add header declaring the interface for TTS engines to implement.\n"
    },
    {
      "commit": "895fb8e5f332b565c42b2131387f2b3412e9123a",
      "tree": "9c188988c16b97224a761f2f6c1ddeefdec5efae",
      "parents": [
        "aeed1816b7bbf8948c1daed48db6fe7567f338af"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 21 15:32:11 2009 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 21 15:32:11 2009 -0700"
      },
      "message": "Add header declaring the interface for TTS engines to implement.\n"
    },
    {
      "commit": "9890815e427c49192efd738a8ae07ce038da92be",
      "tree": "646c4fae7b60c45fe8b43a91397ab47749efe1ef",
      "parents": [
        "2d10ba33190c2ff1b24d6c48dd621c55a25bf2cc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 14:33:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 14:33:23 2009 -0700"
      },
      "message": "bring the native_handle stuff back from master_gl\n"
    },
    {
      "commit": "0795272aa226f4e965968a03daddc53ce30b7cda",
      "tree": "6b4e8ba5e57c5dcf2dd770c24e14c43eda42fdd7",
      "parents": [
        "25ba5b6564224dceefa086b5c439ef28dad530ca"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 19 19:08:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:03 2009 -0700"
      },
      "message": "move libbinder\u0027s header files under includes/binder\n"
    },
    {
      "commit": "25ba5b6564224dceefa086b5c439ef28dad530ca",
      "tree": "af3c9fa40d27425c37cf6492589cb86854b08f8a",
      "parents": [
        "6b961bb54bfb44abd1bcee46924ca38c2d10dd72"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 18 15:08:03 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 20 12:55:02 2009 -0700"
      },
      "message": "checkpoint: split libutils into libutils + libbinder\n"
    },
    {
      "commit": "bad962bf407bbb7a7ce296fb75f1883375afa832",
      "tree": "38b353af4f5c334ecadfe8296c21c37b5e8c5f68",
      "parents": [
        "a39a67f3ad282298b750ea80038a1abf878d9ec1",
        "e29146158b6048936671decc060d398a68333fc0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 20 11:58:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 20 11:58:08 2009 -0700"
      },
      "message": "am e2914615: Merge change 2099 into donut\n\nMerge commit \u0027e29146158b6048936671decc060d398a68333fc0\u0027\n\n* commit \u0027e29146158b6048936671decc060d398a68333fc0\u0027:\n  Hook up the backup data writer, and add a utility to read the backup data files.\n"
    },
    {
      "commit": "d2110dbce071a236b6176de344ca797b737542eb",
      "tree": "996e044c8c7bf49463394bc911f0277d969bde5d",
      "parents": [
        "40f5a4ea3bc90e43a442ab336f2342020bba86b3"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 19 13:41:21 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 20 11:24:20 2009 -0700"
      },
      "message": "Hook up the backup data writer, and add a utility to read the backup data files.\n"
    },
    {
      "commit": "f1f12f8cfcc99bb9a50ae5b555b5ce050726a1fa",
      "tree": "d680b09d862079111788479b37ded86255e197d7",
      "parents": [
        "da8e33a57f4ecb20505f3de494873f10ea10c8bb",
        "656a2726ad977be194c3b8f4bf4ec3068bf3e1c9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 23:56:07 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 18 23:56:07 2009 -0700"
      },
      "message": "am 656a2726: Merge change 1910 into donut\n\nMerge commit \u0027656a2726ad977be194c3b8f4bf4ec3068bf3e1c9\u0027\n\n* commit \u0027656a2726ad977be194c3b8f4bf4ec3068bf3e1c9\u0027:\n  Update aapt badging for native code, configs, density, etc.\n"
    },
    {
      "commit": "bb9ea30ea9e390e69602935571795d2c80dc7b91",
      "tree": "49aa4e0e04f5c3d906149eff4ef6c1b93f3aa9c6",
      "parents": [
        "ce2372de58ad018623748f63e61ffc70c9eb8895"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 18 15:22:00 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 18 15:22:00 2009 -0700"
      },
      "message": "Update aapt badging for native code, configs, density, etc.\n"
    },
    {
      "commit": "6158b1bf0364da1582468a98ec09d004ba99deec",
      "tree": "6fc11335f772f84dbee308e830d807fe0df1f815",
      "parents": [
        "11be99de5f3901c32130ea4c5fd52e62e1845e73"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 11 00:03:41 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 17 23:34:16 2009 -0700"
      },
      "message": "Region now has its own implementation instead of relying on SkRegion, which allows us to break libui\u0027s dependency on libcorecg.\n"
    },
    {
      "commit": "28a6f667c2c668f5b388a54bcfafc27d2d9cb299",
      "tree": "0e6254d3e428e8f5fb24aefb08ebc35ccf8aadb6",
      "parents": [
        "b16a8df65ba145f6ce49a54301642ff1ed71a1a3",
        "e85bb9ebcce85b8c7a0e0ccb5116cd25bf684727"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 15 16:25:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 15 16:25:41 2009 -0700"
      },
      "message": "am e85bb9eb: Merge change 1823 into donut\n\nMerge commit \u0027e85bb9ebcce85b8c7a0e0ccb5116cd25bf684727\u0027\n\n* commit \u0027e85bb9ebcce85b8c7a0e0ccb5116cd25bf684727\u0027:\n  Add the backup data file writer C++ class.\n"
    },
    {
      "commit": "59aa044a1098e49823d59905731f28465003e983",
      "tree": "043ba7e88338a1083223a95d2336adbacf176055",
      "parents": [
        "11abc8a36d639775b05a0471c9ea45d83fa19e56",
        "aaf0718c589b136aaf3d87f5944dd1028adaf8fd"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 15 15:44:41 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 15 15:44:41 2009 -0700"
      },
      "message": "Merge branch \u00272514\u0027 into merge_master\n"
    },
    {
      "commit": "2e1da32203b7f6df76023f25a7382a31fad6b19d",
      "tree": "4595241ae1e0e2207fc2285774f6fef86320e6b6",
      "parents": [
        "4535e40544aeb957d44fad75fbe5676effe03689"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 18:20:19 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 18:20:19 2009 -0400"
      },
      "message": "Add the backup data file writer C++ class.\n"
    },
    {
      "commit": "55051ebdd1ebf043f9d0e3dcf025c8c8930cf567",
      "tree": "e2e51e5c9fa3bcba1dabf7e770b6c2b85e4e6cd7",
      "parents": [
        "dd6face5a66ed6c9ac24b2754ec046b82881182c",
        "4535e40544aeb957d44fad75fbe5676effe03689"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 07:55:51 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 15 07:55:51 2009 -0700"
      },
      "message": "am 4535e405: Implement the C++ class to write the backed up file data.\n\nMerge commit \u00274535e40544aeb957d44fad75fbe5676effe03689\u0027\n\n* commit \u00274535e40544aeb957d44fad75fbe5676effe03689\u0027:\n  Implement the C++ class to write the backed up file data.\n"
    },
    {
      "commit": "4535e40544aeb957d44fad75fbe5676effe03689",
      "tree": "6861c7e610cd7061338b361ecab09d6b19ac3ca6",
      "parents": [
        "eae850cefe7e149f396c9e8ca1f34ec02b20a3f0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 09:07:06 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 15 10:37:10 2009 -0400"
      },
      "message": "Implement the C++ class to write the backed up file data.\n"
    },
    {
      "commit": "11abc8a36d639775b05a0471c9ea45d83fa19e56",
      "tree": "edf234f013ef3c88507f81dea65b8187cc672564",
      "parents": [
        "6ec72e3fa9cdf9e896f3042fb1b1b4f3f6cea541",
        "e52a5a5fca18348728dfc5609b42b88e9cc7ef98"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 14 22:44:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 14 22:44:23 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n\nConflicts:\n\topengl/libagl/Android.mk\n\topengl/libs/Android.mk\n\topengl/libs/egl_impl.h\n"
    },
    {
      "commit": "a64b860749ad7e5f9e887013d87b56b928c5d405",
      "tree": "f291ddd4fc94619955703f4d55f34c6d814df6c0",
      "parents": [
        "8f9ff7e77f73b2712f775245113ea53614485317",
        "aa642c0cc20293137376d44f8221876c121e5be9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 14 14:53:27 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 14 14:53:27 2009 -0700"
      },
      "message": "am aa642c0c: Merge changes 1591,1596 into donut\n\nMerge commit \u0027aa642c0cc20293137376d44f8221876c121e5be9\u0027\n\n* commit \u0027aa642c0cc20293137376d44f8221876c121e5be9\u0027:\n  Get the backup calling through to the file backup helper.\n  Fix typos.\n  Add a new feature to android.os.Debug to add the ability to inject only specific fields when calling setFieldsOn().\n  Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.\n  Add Intent.ACTION_APP_ERROR\n"
    },
    {
      "commit": "290bb011c5c1a9ba1f2116810b06cf52a9c36b3e",
      "tree": "cfb9ce077d79021e86c1b8d7951f3655520f368d",
      "parents": [
        "ec2d74d40f9b7a8bf96feeb45a5d054d8b0ce0dd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 18:57:29 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu May 14 09:39:32 2009 -0400"
      },
      "message": "Get the backup calling through to the file backup helper.\n\nThis includes some cleanup to make the parameters match\nbetween BackupService.onBackup and FileBackupHelper.performBackup.\n"
    },
    {
      "commit": "70a16b408442ad1e665ee37ccdb8c88c8d3d74d6",
      "tree": "034ca892743cc233ef50bdc88b9f1f3bff9f4912",
      "parents": [
        "f37b96299f62ab4e28e97eead72de2418de2cdf8",
        "3022a11c4c41afa9d39b4d0d9abd7e6bcb6b8472"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 11 10:00:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 11 10:00:49 2009 -0700"
      },
      "message": "am 3022a11: Merge change 1239 into donut\n\nMerge commit \u00273022a11c4c41afa9d39b4d0d9abd7e6bcb6b8472\u0027\n\n* commit \u00273022a11c4c41afa9d39b4d0d9abd7e6bcb6b8472\u0027:\n  Modify camera framework to use new streamlined binder interface.\n"
    },
    {
      "commit": "d6289b1b03d209219c2dd3126ee8839a45682b33",
      "tree": "1c7d73bff30577aaf680aea9f72df5a219a1ca2d",
      "parents": [
        "b4735b6c04c6bca3219115395748a1b5ef02ff6c"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu May 07 19:27:32 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon May 11 07:36:58 2009 -0700"
      },
      "message": "Modify camera framework to use new streamlined binder interface.\nThis is the second half of bug 1837832. Modifies the camera client\nand camera service to use the new binder interface. Removes the\nold binder interface. There will be one more part to this change\nto surface the undefined callbacks to the Java layer so that\npartners can implement new features without having to touch the\nstack.\n"
    },
    {
      "commit": "6ec72e3fa9cdf9e896f3042fb1b1b4f3f6cea541",
      "tree": "c844365aa767f37da6081150dcf3caccb4fb6d46",
      "parents": [
        "6bebbcd57b7b3ffad3af046f4899d885b30c828e",
        "3cf650dec40c0e40d613c76bd70453205af76ed8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 08 13:13:12 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 08 13:13:12 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "c825d3ebd6ca66e65e63fdc76f032e08aa2a8e22",
      "tree": "dd9eca8ae68aaab8ed8d692ccf425a76541e9972",
      "parents": [
        "1e09a72a75f5e6236acffe84f2758dd042b1c8c0"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 12:55:46 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Fri May 08 09:33:19 2009 -0700"
      },
      "message": "fix the sim build.  disables the tests for now.\n"
    },
    {
      "commit": "ec91aab3beba91633de26e80f75e731cec213b50",
      "tree": "b25b29a93b2f664292f4c37e1cc559c74f210bfc",
      "parents": [
        "3d73eeb7b3c1f83a7286f4dba40530088d21323e",
        "3fd7e13960c2763225c5c8bc187bd15da04820dd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 07:22:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 08 07:22:45 2009 -0700"
      },
      "message": "am 3fd7e13: Merge branch \\\u0027donut\\\u0027 of ssh://android-git.corp.google.com:29\n\nMerge commit \u00273fd7e13960c2763225c5c8bc187bd15da04820dd\u0027\n\n* commit \u00273fd7e13960c2763225c5c8bc187bd15da04820dd\u0027:\n  Add new binder methods to camera client to support generic callbacks\n"
    },
    {
      "commit": "6bebbcd57b7b3ffad3af046f4899d885b30c828e",
      "tree": "5f3e8556aa0e0d4bb9b1928d6d1d9d6932aeb980",
      "parents": [
        "97b8056c3182a973c67d3c1b196150d4b9e30f3a",
        "e1a085801df8a015cc80f3eca6954fe2691a7fd4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 17:46:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 17:46:45 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "97b8056c3182a973c67d3c1b196150d4b9e30f3a",
      "tree": "b78a1c6d95b468aa654d1910226ae711250799b5",
      "parents": [
        "927d37cb788670b91af0f1a7a93c68046a838d23"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 17:40:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 17:40:23 2009 -0700"
      },
      "message": "add support for update-on-demand in SurfaceFlinger\n"
    },
    {
      "commit": "2a04aefdf03abbdabb035f89c8a1df636c168de0",
      "tree": "af1373ffe5244655f868c9145fdf3813fe82e66a",
      "parents": [
        "50396063c2fbb1f427cf31e0b8a56567fb5a069c"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu May 07 12:25:25 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Thu May 07 12:25:25 2009 -0700"
      },
      "message": "Add new binder methods to camera client to support generic callbacks\nThis is the first step in a multi-step change to move from the old\nspecific callbacks to a generic callback. This will allow future\nflexibility in the interface without requiring binder rewrites.\nBug 1837832\n"
    },
    {
      "commit": "56b7eeaa01fa34de1dad1b113f5355e999ee1d10",
      "tree": "56a8306e9e23f0abf2a730fb78c4d0c2b43c6ec0",
      "parents": [
        "761daf7550c256258886824fdb939b352c5fd08c",
        "f3af740bdfc261b1cb25c0799af780d3753d4518"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 15:48:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 15:48:33 2009 -0700"
      },
      "message": "manual merge f3af740bdfc261b1cb25c0799af780d3753d4518\n\nMerge commit \u0027f3af740bdfc261b1cb25c0799af780d3753d4518\u0027\n"
    },
    {
      "commit": "f3af740bdfc261b1cb25c0799af780d3753d4518",
      "tree": "f33c3453caf03db8c4b7a358ddc8a8d3945076ae",
      "parents": [
        "b9c9d260f21b321527c4622a123af9767630d94d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 05 00:49:01 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 11:35:46 2009 -0700"
      },
      "message": "Fixed issue 1709450: Requirements for CDMA Tone Generator\n\nAdded new tone types for CDMA IS-95 specific tones.\nAutomatic selection between IS-95, CEPT and JAPAN version base on operator\ncountry code for call supervisory tones.\nAlso improved tone generator capabilities:\n- Each tone segment can now generate its own set of frequencies\n- A tone does not have to be a succession of alternating ON/OFF segments\n- The sequence repetition does not have to start from first segment\n"
    },
    {
      "commit": "7fca56513587bbf899d4d281a43d7eb0819da9af",
      "tree": "883305feda8332604e58c311f5d948858cc4cb49",
      "parents": [
        "f431b4b3ee636a0ba62f462fa51fc3e5ce09c734"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 12:55:46 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 06 12:55:46 2009 -0400"
      },
      "message": "fix the sim build.  disables the tests for now.\n"
    },
    {
      "commit": "b61381bc942a2cd60fcdced888ede76cd0711f00",
      "tree": "b6e9243cb85daa355a7a8c638de414aeaf7d550f",
      "parents": [
        "0d8f5a3f4fd37bb70437e29e0abe28906f2edaf2",
        "4488b11c51ad8f5b8330279a9405e5a0f8586aa4"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 01:31:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 06 01:31:32 2009 -0700"
      },
      "message": "am 4488b11: Merge change 1039 into donut\n\nMerge commit \u00274488b11c51ad8f5b8330279a9405e5a0f8586aa4\u0027\n\n* commit \u00274488b11c51ad8f5b8330279a9405e5a0f8586aa4\u0027:\n  Add some C++ code to do raw files for backup\n"
    },
    {
      "commit": "9bd5da4db97fec7cdbe6e07870411c1fcaff4365",
      "tree": "d7c369e3c2a0683e393f88a225d9de3ae6b2e094",
      "parents": [
        "b51e18d59b6f8e44a5d3516fc3359c54fa913331"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:29:35 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:29:35 2009 -0700"
      },
      "message": "get rid off unneeded flags\n"
    },
    {
      "commit": "b51e18d59b6f8e44a5d3516fc3359c54fa913331",
      "tree": "56c6c41bd0f158fcf2b778b375fcf8c0eb1838b5",
      "parents": [
        "ac2523b161df2bb507cc88906bb070878266770d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:21:32 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:21:32 2009 -0700"
      },
      "message": "move android_native_buffer_t declaration into its own private/ui/android_native_priv.h header, since user code should never have access to it.\n"
    },
    {
      "commit": "ac2523b161df2bb507cc88906bb070878266770d",
      "tree": "30ee897d6e8fa63e067627a91697f13f1fbd919d",
      "parents": [
        "e633f9339a2556771c79c784b0b23a9aade30485"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:11:11 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 18:11:11 2009 -0700"
      },
      "message": "move opengl/include/EGL/android_natives.h to include/ui/egl/android_natives.h and don\u0027t include it from egl.h\n\nthe android_native_ types are just forward declared in egl.h\n"
    },
    {
      "commit": "3ad977b41c6e4ef30c2f4f316b909b742ffc04aa",
      "tree": "0b3c7a5263817709bc31c19e02f9fbc19b63de82",
      "parents": [
        "06d96020c35dac2bf1651cb8bd4cfced911f1142"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 11:50:51 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 05 13:45:25 2009 -0700"
      },
      "message": "Add some C++ code to do raw files for backup\n"
    },
    {
      "commit": "e633f9339a2556771c79c784b0b23a9aade30485",
      "tree": "bb334508992dc3a8320957bb39e0016d047530ad",
      "parents": [
        "430f2ed5c03312700131a70c858b98e1cc6bc161"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:59:23 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:59:23 2009 -0700"
      },
      "message": "get rid of android_native_buffer_t::getHandle() and replace it with an handle field\n\nthis abstraction was not necessary. things are easier now.\n"
    },
    {
      "commit": "430f2ed5c03312700131a70c858b98e1cc6bc161",
      "tree": "9ca0a2fbaeab0b932002818f2a33bd0de2e80623",
      "parents": [
        "6279619e4279daf77feff0c76e089b26ad66124f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:37:46 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 05 00:37:46 2009 -0700"
      },
      "message": "removed the \"bits\" attribute from android_native_buffer_t.\n\n\"bits\" can never be trusted now that we need to call lock() on the handle to get the virtual address of the buffer.\n"
    },
    {
      "commit": "6279619e4279daf77feff0c76e089b26ad66124f",
      "tree": "8189ce775d4ed72742bf9c5f4a4f12c5833767b9",
      "parents": [
        "dff8e58d47ede6e748c0b02e128ca33b42a4f362"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 19:38:43 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 19:38:43 2009 -0700"
      },
      "message": "minor clean-up in FramebufferNativeWindow\n"
    },
    {
      "commit": "dff8e58d47ede6e748c0b02e128ca33b42a4f362",
      "tree": "716d70cda74aa625d6e67c4debc2eb7c6b81bfc9",
      "parents": [
        "fa6eda01a9f3df0102ce6a65302c8674cc9c7e50"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 14:17:04 2009 -0700"
      },
      "message": "update surfaceflinger, libui and libagl to the new gralloc api\n\n- Currently the lock/unlock path is naive and is done for each drawing operation (glDrawElements and glDrawArrays). this should be improved eventually.\n- factor all the lock/unlock code in SurfaceBuffer.\n- fixed \"showupdate\" so it works even when we don\u0027t have preserving eglSwapBuffers().\n- improved the situation with the dirty-region and fixed a problem that caused GL apps to not update.\n- make use of LightRefBase() where needed, instead of duplicating its implementation\n- add LightRefBase::getStrongCount()\n- renamed EGLNativeWindowSurface.cpp to FramebufferNativeWindow.cpp\n\n- disabled copybits test, since it clashes with the new gralloc api\n\n- Camera/Video will be fixed later when we rework the overlay apis\n"
    },
    {
      "commit": "fa6eda01a9f3df0102ce6a65302c8674cc9c7e50",
      "tree": "a0c1b31bd8e162132c54a2ef8521b3ed6cf8cad1",
      "parents": [
        "d504605919a62902e10cd13536390ffce84a3326",
        "072868a4d33740ee023b7364dcb38f4fc14bd8b0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 30 14:43:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 30 14:43:18 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n\nConflicts:\n\tlibs/surfaceflinger/Layer.cpp\n\tlibs/surfaceflinger/SurfaceFlinger.cpp\n\topengl/libagl/egl.cpp\n\topengl/libs/EGL/egl.cpp\n\topengl/libs/GLES_CM/gl.cpp\n\topengl/libs/GLES_CM/gl_api.in\n\topengl/libs/gl_entries.in\n\topengl/libs/tools/glapigen\n"
    },
    {
      "commit": "8e644062271b4082c6348a5061a75148e0086177",
      "tree": "99d8fd18cac4cdc81d2df50a146f86702400ebbf",
      "parents": [
        "1d066287d3a515e2a72b50ba36f90777064642b7",
        "17f213bc528cf296e133e9ec9c9e0ce5dce41781"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:35:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:33 2009 -0700"
      },
      "message": "am 17f213b: Merge change 602 into donut\n\nMerge commit \u002717f213bc528cf296e133e9ec9c9e0ce5dce41781\u0027\n\n* commit \u002717f213bc528cf296e133e9ec9c9e0ce5dce41781\u0027:\n  Bug fix(1807910): media recorder crash due to the use of locked camera object (last part)\n"
    },
    {
      "commit": "d1d2af6846156e9deddac7a256e6c3b756073267",
      "tree": "63a257100ab37e023458dc650ad51cb9a9e34a9b",
      "parents": [
        "cb49634c7373e3b48bb73e516331901525af36c0",
        "3eab744d018924189b1b8f5530accd52e91213de"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:35:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:35:29 2009 -0700"
      },
      "message": "am 3eab744: Merge change 376 into donut\n\nMerge commit \u00273eab744d018924189b1b8f5530accd52e91213de\u0027\n\n* commit \u00273eab744d018924189b1b8f5530accd52e91213de\u0027:\n  Add support for changing a threads scheduler group. Three groups are available (default, background non interactive, foreground boost). Setting a thread priority to PRIORITY_BACKGROUND will transparently change groups to background\n"
    },
    {
      "commit": "9f5a54a59dac6df0ffe2d19c71733b4a0c7b00c2",
      "tree": "555e7f4e4805acdfce3ac5e0f820be3fc6e2871b",
      "parents": [
        "f8e258ee1b513f9022e0718c5e8c91c89d36280c",
        "0a9b5bbb47a965238ca0e1e699d61d7ddd054742"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:11:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:11:33 2009 -0700"
      },
      "message": "am 0a9b5bb: Merge change 509 into donut\n\nMerge commit \u00270a9b5bbb47a965238ca0e1e699d61d7ddd054742\u0027\n\n* commit \u00270a9b5bbb47a965238ca0e1e699d61d7ddd054742\u0027:\n  Fix a media server crash (bug 1807910): part one\n"
    },
    {
      "commit": "5c685a948e9eed5f02c4e961d2d928e1f60e2e62",
      "tree": "6506142176a29091e84b6fe20f86f648fa79a4ce",
      "parents": [
        "1e89ef82b1cb06034c30f9772f936a8a0cf4a7df",
        "9c5651390056cd9c2f68d5df057739528bd4128b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 13:11:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 29 13:11:32 2009 -0700"
      },
      "message": "am 9c56513: Merge change 165 into donut\n\nMerge commit \u00279c5651390056cd9c2f68d5df057739528bd4128b\u0027\n\n* commit \u00279c5651390056cd9c2f68d5df057739528bd4128b\u0027:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "354271fb03d45309d8e249e3411bcf16cb807489",
      "tree": "128205d60627ff85f16f9f0100ea112d13e8e9fb",
      "parents": [
        "77c4903397eb0fb81f641c0beb1762f42819357b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 27 22:09:49 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 28 03:06:59 2009 -0700"
      },
      "message": "improvements (I hope) to to List.h implementation:\n\n- made the helper Node and Iterator classes protected inner classes of List so they don\u0027t pollute the android namespace.\n- use \"int foo()\" instead of \"int foo(void)\" which is more C++ stylish\n- made distance() a template function, this way we write it once and it will work with combinations of iterator and const_iterator\n- added the inline keyword on some function to make it clear to the compiler and the programmer that we want/intend these to be small inline functions\n- added templated comparison operators to Iterator so it can compare iterator and const_iterator\n- use size_t instead of \"unsigned int\" at places\n- distance() should return a ptrdiff_t (it\u0027s kind of mening less here because it won\u0027t really work if the distance is \u003c 0)\n- made sure we handle conversions from iterator to const_iterator, but but fail at compile time in the other direction\n- added operator-\u003e() on iterator and const_iterator\n- made a bunch of private constructors explicit to avoid unwanted conversions\n"
    },
    {
      "commit": "77c4903397eb0fb81f641c0beb1762f42819357b",
      "tree": "9ef62b764e829b01c6fbd2b953539b43eb3596d5",
      "parents": [
        "81b0aa696ac954180caec6cb8cc1bb97440e03b5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 27 21:40:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 27 21:40:53 2009 -0700"
      },
      "message": "small fix to List.h, the post-increment iterators should return \"const\" objects to disallow constructs such as i++++\n"
    },
    {
      "commit": "325ac475c51dc0d54503f725179ea2d9353485bb",
      "tree": "4345b6602a076488623b2815f1af55f112b8b7d3",
      "parents": [
        "3eab744d018924189b1b8f5530accd52e91213de"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 27 12:01:59 2009 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 27 12:01:59 2009 -0700"
      },
      "message": "Bug fix(1807910): media recorder crash due to the use of locked camera object (last part)\n- remove an unused Camera constructor\n- add a check on the argument in Camera::create() method\n"
    },
    {
      "commit": "3eab744d018924189b1b8f5530accd52e91213de",
      "tree": "f9002bced44ef10597b196f8c09b3f0f6843d9b3",
      "parents": [
        "1fb758e94b5b9e342b6dc6452cb5bd7cf0cc4ed6",
        "e9d376b801b7890b1ef5006ed55de4208e64bb63"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 27 09:18:14 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 27 09:18:14 2009 -0700"
      },
      "message": "Merge change 376 into donut\n\n* changes:\n  Add support for changing a threads scheduler group. Three groups are available (default, background non interactive, foreground boost). Setting a thread priority to PRIORITY_BACKGROUND will transparently change groups to background\n"
    },
    {
      "commit": "e9d376b801b7890b1ef5006ed55de4208e64bb63",
      "tree": "9c4840944aeaccfe4c9eaf6a72a164af38f17ed1",
      "parents": [
        "03a54faa454381e8d67fe11b1be2b2d54f3894c6"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Apr 21 14:06:36 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Apr 27 09:17:06 2009 -0700"
      },
      "message": "Add support for changing a threads scheduler group. Three groups are available (default, background non interactive, foreground boost). Setting a thread priority to PRIORITY_BACKGROUND will transparently change groups to background\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "6ead5d9f140529edfb744584fa5427b84b4dc13a",
      "tree": "9685b259637326b603a88f1ff9cf8bb125ae9e1d",
      "parents": [
        "6cf0db228ca275dfcda57d79c55e5fa306809632"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 20 19:39:12 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 16:22:36 2009 -0700"
      },
      "message": "a brand new MessageQueue for SurfaceFlinger.\n"
    },
    {
      "commit": "2b1927f686eaec23a5798966b96aadaee3e2eb85",
      "tree": "7ae57d36ad4b8665c0761e264e84ce8fe9c68c5f",
      "parents": [
        "f670127afccf156681db8a144e49cecb22d744e1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 17 14:15:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 15:00:41 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit e5c24638f98162c3b75b4c67a16b510d38e31341\nAuthor: Mathias Agopian \u003cmathias@google.com\u003e\nDate:   Fri Apr 17 14:09:03 2009 -0700\n\n    oops forgot this file.\n\ncommit 282642632d0cb12882eecf42e0fdfb2343275de1\nAuthor: Mathias Agopian \u003cmathias@google.com\u003e\nDate:   Fri Apr 17 14:07:32 2009 -0700\n\n    use a helper macro for creating Singleton\u003c\u003e\u0027s static attributes instances.\n"
    },
    {
      "commit": "f670127afccf156681db8a144e49cecb22d744e1",
      "tree": "e88e38c9992fdc03f8b99ba63f0874c11ea49386",
      "parents": [
        "13b3b5c9b2594fe2a42e479ae4f3f733fce911dc",
        "d004ee1b0a1f869f5e48ffc29b8ce9c6a8c77e23"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 14:24:20 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 24 14:24:20 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "0a9b5bbb47a965238ca0e1e699d61d7ddd054742",
      "tree": "4a6f50aed3f4be6c55f7a50c54b756a60643120b",
      "parents": [
        "5616a7d1dea1aecc8353bab144d14446aa33391a",
        "2adc2dbbd65fc89983f20702db2004f9b8cf8258"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 23 15:58:38 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 23 15:58:38 2009 -0700"
      },
      "message": "Merge change 509 into donut\n\n* changes:\n  Fix a media server crash (bug 1807910): part one Add a factory method that creates a Camera object from a remote client\n"
    },
    {
      "commit": "2adc2dbbd65fc89983f20702db2004f9b8cf8258",
      "tree": "c6cb8b422dbe5e3f1bd41eec0f0944216e1856c9",
      "parents": [
        "0a57e5b730beaea75c1c1b1ca51b40c463918b4d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 23 14:07:23 2009 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 23 14:07:23 2009 -0700"
      },
      "message": "Fix a media server crash (bug 1807910): part one\nAdd a factory method that creates a Camera object from a remote client\n\nNext:\nThe changes in authordriver.cpp and android_camera_input.cpp will come.\nand the constructor for Camera object will be removed.\n"
    },
    {
      "commit": "74008f608af0c567456d37e63d48643689388c74",
      "tree": "02354593bed51d5c4bb0ac5f9b44032034cbbaaf",
      "parents": [
        "6fc52c4928ec8a658d7eb0b7881fcbc879aeb18c",
        "644cf62660c87a9b8d5bcb22412cc2ad2aeea291"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Apr 22 17:12:34 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Apr 22 17:12:34 2009 -0700"
      },
      "message": "Merge donut into master\n"
    },
    {
      "commit": "96e20409afc720f61d0cd49bf1441f62069bd6bb",
      "tree": "8088015f1763a454848ad35d4f5dc8f64ebcf6f4",
      "parents": [
        "644cf62660c87a9b8d5bcb22412cc2ad2aeea291"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 22 14:35:11 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed Apr 22 14:35:11 2009 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 012b56fc607cf243cf4b29cb2a5f172bcbe0aecd\nAuthor: Robert Greenwalt \u003crobdroid@android.com\u003e\nDate:   Wed Apr 22 14:31:26 2009 -0700\n\n    Additional fixes and tests for density.\n\ncommit 91fdc8e187551ae69e0029a4325fb3ad38fe411b\nAuthor: Robert Greenwalt \u003crobdroid@android.com\u003e\nDate:   Tue Apr 14 14:39:00 2009 -0700\n\n    Fix runtime resource selection logic.\n\n    Fix isBetterThan so that o or this may be supperior at any stage.\n    Used to only handle this-better or tie at each stage, biasing against o.\n    Also allows reset of unit test to succeed.  Fixes bug 1709202.\n"
    },
    {
      "commit": "ef02827d4c3b9c0601eddc9c348fc2ea866420a2",
      "tree": "d5f3e26f262cd16e5d95e89ef3be688c8766c5b3",
      "parents": [
        "a0c9e8526b094e3b4f2c2747622059215d00516f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 21 07:56:33 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 21 07:56:33 2009 -0700"
      },
      "message": "Fix issue 1745312: Various cleanups in media framework\n\nAudioTrack, AudioRecord:\n  - remove useless mAudioFlinger member of AudioTrack and AudioRecord.\n  - signal cblk.cv condition in stop() method to speed up stop completion.\n  - extend wait condition timeout in obtainBuffer() when waitCount is -1 to avoid waking up callback thread unnecessarily\n\nAudioFlinger:\n  - remove some warnings in AudioFlinger.cpp.\n  - remove function AudioFlinger::MixerThread::removetrack_l()  as its content is never executed.\n  - remove useless call to setMasterVolume in AudioFlinger::handleForcedSpeakerRoute().\n  - Offset VOICE_CALL stream volume to reflect actual volume that is never 0 in hardware (this fix has been made in the open source): 0.01 + v * 0.99.\n\nAudioSystem.java:\n  - correct typo in comment\n\nIAudioflinger, IAudioFlingerClient:\n  - make AudioFlinger binder interfaces used for callbacks ONEWAY.\n\nAudioHardwareInterface:\n  - correct routeStrings[] table in AudioHardwareInteface.cpp\n"
    },
    {
      "commit": "69d62097e8195c947de7e4cdc4a491181aa56e61",
      "tree": "9711d12c764f5ff8bfac6fb285b41ea6c4314a8e",
      "parents": [
        "17f638b39f2e8b610ecfa1290e5bc42ab7700c98"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:30:22 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:30:22 2009 -0700"
      },
      "message": "cleanup, remove unused fields. Also make sure that we don\u0027t systematically allocate a Surface in Surface.java if only a SurfaceControl is needed (Common case).\n"
    },
    {
      "commit": "17f638b39f2e8b610ecfa1290e5bc42ab7700c98",
      "tree": "536b2865736b9498d70304db00a64897c472f65f",
      "parents": [
        "6d2c0bc7bfe10a9b70ca608baf626c47a228fa6b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:04:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 20:04:08 2009 -0700"
      },
      "message": "more splitting of Surface/SurfaceControl. Surface.java is now implemented in terms of Surface and SurfaceControl.\n\nThe WindowManager side of Surface.java holds a SurfaceControl, while the client-side holds a Surface. When the client is in the system process, Surface.java holds both (which is a problem we\u0027ll try to fix later).\n"
    },
    {
      "commit": "6d2c0bc7bfe10a9b70ca608baf626c47a228fa6b",
      "tree": "e38029de5af80839a44ae01e03c231535b20bd03",
      "parents": [
        "ed81f2216a0f200e279de61ec96fbedf5c21f0c7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 16:19:50 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 16:19:50 2009 -0700"
      },
      "message": "split Surface.cpp into Surface and SurfaceControl\n\nSurfaceControl is used for controling the geometry of the surface (for the WM), while Surface is used to access the buffers (for SF\u0027s clients).\nSurfaceFlingerClient now uses the SurfaceID instead of Surface*.\n\nCurrently Surface still has the SurfaceControl API and is implemented by calling into SurfaceControl.\n"
    },
    {
      "commit": "402c34649f514669517c2208e35caa58ff8bb2b9",
      "tree": "aabdf56e5b05fceebb44c76376344ac1fbc55051",
      "parents": [
        "a6b40ba521d5c2fc23da74015531bd4ed8657921"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 14 18:21:47 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 16 12:29:34 2009 -0700"
      },
      "message": "fix some issues with Surface\u0027s lifetime management.\n\nTo deal with Java\u0027s lack of destructors and delayed garbage collection, we used to duplicate Surface.cpp objects in some case; this caused some issues because Surface is supposed to be reference-counted and unique.\n"
    },
    {
      "commit": "a6b40ba521d5c2fc23da74015531bd4ed8657921",
      "tree": "148f806ad3253b6582f9287750535f3b3bfeb26a",
      "parents": [
        "5f105d38e2c0c45d1d997906a2fa220b001a8e75"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 15 18:34:24 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 15 18:34:24 2009 -0700"
      },
      "message": "fix a rookie mistake causing Singleton\u003c\u003e to be a \"multiton\". Also improve the BufferMapper\u0027s debugging, but turn it off.\n\nSquashed commit of the following:\n\ncommit 04e9cae7f806bd65f2cfe35c011b47a36773bbe5\nAuthor: Mathias Agopian \u003cmathias@google.com\u003e\nDate:   Wed Apr 15 18:30:30 2009 -0700\n\n    fix and improve BufferMapper\u0027s tracking of mapped buffers.\n\ncommit 1a8deaed15811092b2349cc3c40cafb5f722046c\nAuthor: Mathias Agopian \u003cmathias@google.com\u003e\nDate:   Wed Apr 15 00:52:02 2009 -0700\n\n    fix some bugs with the Singleton\u003c\u003e class. untested.\n\ncommit ed01cc06ad70cf640ce1258f01189cb1a96fd3a8\nAuthor: Mathias Agopian \u003cmathias@google.com\u003e\nDate:   Tue Apr 14 19:29:25 2009 -0700\n\n    some work to debug the Singleton\u003c\u003e template.\n"
    },
    {
      "commit": "85d7a06826f00f40b56470ad9ec7c75dce1b45df",
      "tree": "6c31e0547571f648f0a9377ca26737c6f0a0bcad",
      "parents": [
        "77307ab848e723936bf3d6a3afdffdc1e6115195",
        "649435a40ffc8d5e67276e48c3a841f280ff55c4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 14 14:20:43 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 14 14:45:37 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "935ae463d495d41155e27feb849768ad2b8b16db",
      "tree": "da8889bec20daacb2a85ff98bca0874078e5c1cf",
      "parents": [
        "b3230cb1e33c3de7ae7d63217617606d23943708"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Mon Apr 13 16:11:55 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Apr 13 16:11:55 2009 -0700"
      },
      "message": "AI 145994: Integrate #145778 from Donut.\n\nAutomated import of CL 145994\n"
    },
    {
      "commit": "af9a515299b24031c7aa77bf163d0985cc862069",
      "tree": "ce96435679723e8e6592a7283c3841ec8daf5097",
      "parents": [
        "7e25da07af7f4f8a876ac97be6e4745877aecb08"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 20:34:46 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 20:34:46 2009 -0700"
      },
      "message": "more debugging tools around BufferMapper\n"
    },
    {
      "commit": "7e25da07af7f4f8a876ac97be6e4745877aecb08",
      "tree": "c4583198e50615f9d6bed1d42d385fe0d9044fb1",
      "parents": [
        "0179ff6594034d0355499c048e3a2ea2d515e8b6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 20:27:25 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 20:27:25 2009 -0700"
      },
      "message": "fix KeyedVector::replaceValueAt, which wouldn\u0027t even compile if used.\n"
    },
    {
      "commit": "f8a7ceaef2e7d5cd530c9426bde91b6fa9a40b75",
      "tree": "1dd68eeddbfa83d571a3544d6d2e25ba9be21b49",
      "parents": [
        "1eb75a0b3770177c3f0d0c2e843f80fc34451ef5"
      ],
      "author": {
        "name": "Andy Stadler",
        "email": "",
        "time": "Fri Apr 10 16:24:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Apr 10 16:24:47 2009 -0700"
      },
      "message": "AI 145778: Manual merge changes 145382-145384 from cupcake.\n\nAutomated import of CL 145778\n"
    },
    {
      "commit": "1473f46cbc82aa6f0ba744cc896a36923823d55b",
      "tree": "1a03737c7eb71b32735693e5cfdd91d0b57a2ad5",
      "parents": [
        "71d83c04897a10394009b02808bb6b86886b27e1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 10 14:24:30 2009 -0700"
      },
      "message": "Integrate from //sandbox/mathias/donut/...@145728\n\nSurfaceFlinger rework for new EGL driver model support.\n"
    },
    {
      "commit": "f70188aa4716625781d9952c6b883180528d4644",
      "tree": "daa7aa337f93976ad2382601a261c5543813c1ca",
      "parents": [
        "7474a5acbe5b73342e4cf129d39cd3bc1195292c"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "",
        "time": "Tue Mar 31 15:52:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 31 15:52:13 2009 -0700"
      },
      "message": "AI 143840: Split VM initialization out into a separate function.\n  This makes the code marginally more readable, and cuts about 500 bytes\n  off the size of the main thread\u0027s stack.\n\nAutomated import of CL 143840\n"
    },
    {
      "commit": "63e45f2854c86a9edf71e4159c9d93ad9a1e8f0d",
      "tree": "ddef80c0f1a0feae601e75a1886ba66d17141ff7",
      "parents": [
        "052eb7131bae3b8c6939cf147ab7b0c6d736202a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "",
        "time": "Fri Mar 27 18:18:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 18:18:46 2009 -0700"
      },
      "message": "AI 143327: am: CL 143177 am: CL 142889 Fix issue #1736153\tCamera shutter sound can be muted by new AlarmClock setting.\n  Current implementation of Camera service plays the camera shutter sound over the ALARM stream so that it cannot be muted by silent mode in order to comply to some country specific requirement. A recent change made it possible for the user to mute the ALARM stream thus making this stream not suitable any more for the camera shutter sound.\n  The fix consists in creating a new stream type only accessible by native code and that cannot be muted and use it to play camera sounds.\n  Original author: elaurent\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143327\n"
    },
    {
      "commit": "eb0c86e18b7d620b679ff2a45a0233867a53a334",
      "tree": "9202e5ef5179bf79540459845de414ddb5df719e",
      "parents": [
        "e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 18:11:38 2009 -0700"
      },
      "message": "AI 143320: am: CL 143171 am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n  Original author: android-build\n  Merged from: //branches/donutburger/...\n\nAutomated import of CL 143320\n"
    },
    {
      "commit": "a7f1e5c540ff7b94c212facdcd89459cba3e4edc",
      "tree": "b274b0d2709ce9eb453c7297f2fe87e824c75eec",
      "parents": [
        "321ae681cad03d00ad1efc6f06f74268e00172a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "",
        "time": "Fri Mar 27 16:27:16 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 16:27:16 2009 -0700"
      },
      "message": "AI 143177: am: CL 142889 Fix issue #1736153\tCamera shutter sound can be muted by new AlarmClock setting.\n  Current implementation of Camera service plays the camera shutter sound over the ALARM stream so that it cannot be muted by silent mode in order to comply to some country specific requirement. A recent change made it possible for the user to mute the ALARM stream thus making this stream not suitable any more for the camera shutter sound.\n  The fix consists in creating a new stream type only accessible by native code and that cannot be muted and use it to play camera sounds.\n  Original author: elaurent\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143177\n"
    },
    {
      "commit": "66b8ec99c5fc505877b3711a52e284bbb451f836",
      "tree": "7551907d6083bcd455632f84f528cbd4d06ffd04",
      "parents": [
        "1e880dba106b14619c3eaf94c5dc2d1a943645bc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "",
        "time": "Fri Mar 27 16:10:37 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 27 16:10:37 2009 -0700"
      },
      "message": "AI 143171: am: CL 142873 fix [1732012] Only show screen rotation animation when triggered by sensor\n  Original author: mathias\n  Merged from: //branches/cupcake/...\n\nAutomated import of CL 143171\n"
    },
    {
      "commit": "78c131473165830c8d042a0f445ca858aaa7a4b1",
      "tree": "e34aa7423450760068a5ac5697f394802e55db91",
      "parents": [
        "32048300e917c9181927ac017d02855bbde940ef"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "",
        "time": "Tue Mar 24 19:48:58 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:48:58 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@141200,141200\n"
    },
    {
      "commit": "108762b6e03b79c61641009bb4b4e3d090157401",
      "tree": "cea44da57ce4d99bf1d99579a6d2564c053ad8bd",
      "parents": [
        "917a839dd3a2e5175fb75d8eeb546687042ce379"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "",
        "time": "Tue Mar 24 19:48:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:48:32 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@141201,141201\n"
    },
    {
      "commit": "ebb020aebc157ff127458dc20e1d0066b86bb99d",
      "tree": "d03e3189e8f14e32bd3a43babe33fe972c204f80",
      "parents": [
        "94574de5977332bb620ba4d037c5b6cc0b7103b3"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "",
        "time": "Tue Mar 24 18:45:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:45:22 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@140868,140868\n"
    },
    {
      "commit": "4610f7d1f9c98c5abcb47d45b51bade2443fa84a",
      "tree": "57d3c6bfc5fd82f931bb46affda9f091692a23bc",
      "parents": [
        "e4787558f85fca4c6383a81caf6f5d07e43a1844"
      ],
      "author": {
        "name": "Jason Sams",
        "email": "",
        "time": "Tue Mar 24 18:45:20 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:45:20 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140866,140866\n"
    },
    {
      "commit": "e025d2d74641d7654f65cbc1bc409f45f4a7b354",
      "tree": "83908300878af3a7c0e912d97a086189effccd45",
      "parents": [
        "01c3d2f24c2c9d26a59fd3e713be6f7b1e8e6906"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "",
        "time": "Tue Mar 24 18:11:52 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:11:52 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@140665,140665\n"
    },
    {
      "commit": "4a5c1a7e84a250eafe0e3a12d859c45747520d55",
      "tree": "eb0ff9222bd6535c82662ae84931680c6ef97ce1",
      "parents": [
        "59f026f2dd71a5d2676f0808a0c4c4d5354963bb"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "",
        "time": "Tue Mar 24 18:11:07 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:11:07 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140663,140663\n"
    },
    {
      "commit": "105925376f8d0f6b318c9938c7b83ef7fef094da",
      "tree": "3b19ee2bd8704cb9c6a0da7e42dec6759183de6d",
      "parents": [
        "ba87e3e6c985e7175152993b5efcc7dd2f0e1c93"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 17:39:46 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@140373\n"
    },
    {
      "commit": "ba87e3e6c985e7175152993b5efcc7dd2f0e1c93",
      "tree": "ee35f76532767dc29411a8738a434d1d88d330f2",
      "parents": [
        "c39a6e0c51e182338deb8b63d07933b585134929"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 13 13:04:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Mar 13 13:04:22 2009 -0700"
      },
      "message": "auto import from //branches/cupcake_rel/...@138607\n"
    },
    {
      "commit": "c39a6e0c51e182338deb8b63d07933b585134929",
      "tree": "e55fc5bd38b1eb8fb4851a0fe1cc264a7fe2f245",
      "parents": [
        "b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 11 12:11:56 2009 -0700"
      },
      "message": "auto import from //branches/cupcake/...@137873\n"
    },
    {
      "commit": "53b404521227d30353f0f2421458103dff903626",
      "tree": "7f7af71e9d8f79fa33d27a820fc87af365a0f231",
      "parents": [
        "b22d55b9f8048b2a1ed99b90894c19388bebd7ae"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 17:04:48 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 17:04:48 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@136654\n"
    },
    {
      "commit": "4df2423a947bcd3f024cc3d3a1a315a8dc428598",
      "tree": "e7dac2c5a367b169e7f05a36058cf470e93f003b",
      "parents": [
        "c474dec3ffa1c0fe37edb3e701684188f7e8e7bc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Mar 05 14:34:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@136594\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "076357b8567458d4b6dfdcf839ef751634cd2bfb",
      "tree": "efbb2fd6f1dc67d2d606382fc3b82983e7cb2e1f",
      "parents": [
        "3dec7d563a2f3e1eb967ce2054a00b6620e3558c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:04:24 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@132589\n"
    },
    {
      "commit": "3dec7d563a2f3e1eb967ce2054a00b6620e3558c",
      "tree": "aa3b0365c47cb3c1607c0dc76c8d32b4046fc287",
      "parents": [
        "15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:33 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@137055\n"
    },
    {
      "commit": "15ab3eae2ec3d73b3e8aa60b33ae41445bf83f4b",
      "tree": "d03d027a7ed97af616904e02a7b420babf40d44f",
      "parents": [
        "3001a035439d8134a7d70d796376d1dfbff3cdcd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 20 07:38:31 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 20 07:38:31 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132569\n"
    },
    {
      "commit": "3001a035439d8134a7d70d796376d1dfbff3cdcd",
      "tree": "343ccdba15a594ff6e50c874a145232753315a30",
      "parents": [
        "da996f390e17e16f2dfa60e972e7ebc4f868f37e"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:31 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:31 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132276\n"
    }
  ],
  "next": "da996f390e17e16f2dfa60e972e7ebc4f868f37e"
}
