)]}'
{
  "log": [
    {
      "commit": "8ed7d69f65a5c8cb380f0fc4248d286ad17138fd",
      "tree": "0c41be3fd4e3491150c9a231eab768798904bfa7",
      "parents": [
        "569f0b507092ac0b29fee3142805c6fd5b82fdd1",
        "6d2090e2148996f98a5e9bc7e359e41c226f4efb"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 10:50:52 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 20 10:50:52 2009 -0700"
      },
      "message": "Merge change 5892\n\n* changes:\n  Hardware overlay support\n"
    },
    {
      "commit": "6d2090e2148996f98a5e9bc7e359e41c226f4efb",
      "tree": "f585f655447a5df7b791fe01f26b97c836cc5014",
      "parents": [
        "f47042614e80891a3439d418e7061f642d9d593d"
      ],
      "author": {
        "name": "Benny Wong",
        "email": "Benny.Wong@motorola.com",
        "time": "Wed Jul 15 18:44:27 2009 -0500"
      },
      "committer": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Thu Jul 16 14:31:20 2009 -0700"
      },
      "message": "Hardware overlay support\n\nEnable hardware overlay support for camera and video playback use cases\n"
    },
    {
      "commit": "1d9dfc5dcf459e85cffcb762ffdb9b9a4abbfd67",
      "tree": "64e951c1690a7859c67cbc3421ca41a326e3d744",
      "parents": [
        "d0c0e46a4408b22599bc588ea423d9102bcee6bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 16 11:11:18 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jul 16 11:51:42 2009 -0400"
      },
      "message": "EventHub: Add support for excluding devices from being opened by as a keyboard.\n\nThis will be used to avoid unnecessarily listening to data from sensors\nthat function as event devices.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e3dd884815b2aaeec4241859722ab603e0b1466b",
      "tree": "ab595122c085720a236251afbfe78af248d87bc5",
      "parents": [
        "334a67740c9f7f35fa9ee93cf0f8051d41ce2d7a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 12:06:54 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 14 18:51:53 2009 -0700"
      },
      "message": "Implement virtual button support.\n\nThe kernel can now publish a property describing the layout of virtual\nhardware buttons on the touchscreen.  These outside of the display\narea (outside of the absolute x and y controller range the driver\nreports), and when the user presses on them a key event will be\ngenerated rather than a touch event.\n\nThis also includes a number of tweaks to the absolute controller\nprocessing to make things work better on the new screens.  For\nexample, we now reject down events outside of the display area.\n\nStill left to be done is the ability to cancel a key down event,\nso the user can slide up from the virtual keys to the touch screen\nwithout causing a virtual key to execute.\n"
    },
    {
      "commit": "6698d16b951370a0cc6aa87bcd2ca91122a57410",
      "tree": "7a411a1832eec82df97587fddc64b93b9fe909ff",
      "parents": [
        "c3f60ddaeadb69c1e85198e609e575f55ecc28ac",
        "04c7d0f842ae1d3b52c426fccf7178861493431d"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jul 08 17:26:05 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jul 08 17:26:05 2009 -0700"
      },
      "message": "resolved conflicts for merge of 04c7d0f8 to master\n"
    },
    {
      "commit": "59c1a935295cb30c2ba2f759855e89c174b42a07",
      "tree": "ecb4f9b555dca38af549fa469f97e734d9fcc799",
      "parents": [
        "a5188a09bd20c376b4f0645b0df4c52f8e114e21"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jul 08 15:56:53 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jul 08 15:59:25 2009 -0700"
      },
      "message": "Add timestamps to video frames to improve A/V sync.\nBug 1927069.\n"
    },
    {
      "commit": "03a9a3449af3e0e79e9bbcd87f8057189ab9e151",
      "tree": "66f68465156e6eef8480161d87e87376f5bea813",
      "parents": [
        "f780d32fc2081fbf10a5bec19a654465361fc538",
        "78d0fdfad1437b2382e8803fa396fbe0f38a214f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 06 14:16:55 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 06 14:16:55 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "fee47b699f51e52d3551c0fdbcc9fc2760a0d837",
      "tree": "523fa403953da0a0ea8fda6d183d41dc4c55ebf9",
      "parents": [
        "1eebdc04f04923f827f9346f4cf126d245330f89",
        "c7396025e59524e7ef639fd86fc23123939ee91c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 11:02:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jul 06 11:02:33 2009 -0700"
      },
      "message": "am c7396025: Merge change 6084 into donut\n\nMerge commit \u0027c7396025e59524e7ef639fd86fc23123939ee91c\u0027\n\n* commit \u0027c7396025e59524e7ef639fd86fc23123939ee91c\u0027:\n  Return CAMERA_ERROR_SERVER_DIED to camera app when camera service dies (bug 1956726)\n"
    },
    {
      "commit": "d763b5d9197e01662cafa376e1227e53e0463a3c",
      "tree": "a8e3a71cf4581453aa4bbfe5c70c0f870756c2d3",
      "parents": [
        "0926b6184adb9bd1d4a432c7d4de0be58c602cc2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:11:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 02 18:50:51 2009 -0700"
      },
      "message": "get rid of references to MemoryDealer in SurfaceFlinger\n"
    },
    {
      "commit": "a1b653d41df9a7999e1dba2a508295671ff6771d",
      "tree": "74c7c4639f56b4aab2e076eaadb7d436cab68113",
      "parents": [
        "a54755962ca7725d1e2b6cacbbaece6f1cbf5af4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 02 10:04:20 2009 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 02 10:04:20 2009 -0700"
      },
      "message": "Return CAMERA_ERROR_SERVER_DIED to camera app when camera service dies (bug 1956726)\n"
    },
    {
      "commit": "dfe983bd7979ccb1602f29b8f9804c98411d9cd6",
      "tree": "8a5547078b72cb262e54f0640dd4ed746b5805ef",
      "parents": [
        "3a6b160a3b52cd96fb383d5ee93c22e5e938e0e2",
        "7f32b426cd6a865ac5e6e3e9fa833e9327fb415a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 01 18:33:18 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 01 18:33:18 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "276826bae2eb6d25c4abb1c5f665d2876c65e50c",
      "tree": "d4784e3c21f41a2017d1a2c39d7873eca493cdf2",
      "parents": [
        "5fc1b60e7f8b19d7d7a2244c0e1e005c7ed91659"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:46:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:46:37 2009 -0700"
      },
      "message": "Region::makeBoundsSelf() efficiently turns a region to its bounds\n"
    },
    {
      "commit": "6034cb565c3b3ffb21057851cff179e2d5cb56a9",
      "tree": "22ef465a36dac93400180095844352828f1365ad",
      "parents": [
        "f6ff591decdea6299aab1a5b6f95917800571de4",
        "17a80081a42410f541a220ab7e6afc64fc6cc399"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 29 16:37:31 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 16:37:31 2009 -0700"
      },
      "message": "am 17a80081: Merge change 5544 into donut\n\nMerge commit \u002717a80081a42410f541a220ab7e6afc64fc6cc399\u0027\n\n* commit \u002717a80081a42410f541a220ab7e6afc64fc6cc399\u0027:\n  Pipe all the camera callbacks to Java to facilitate the addition\n"
    },
    {
      "commit": "5a8d6f44b2ec9132848aee5f608447ff801951b2",
      "tree": "2d6801b9d105d4da2ba141460c988c2c1f9c001b",
      "parents": [
        "8f78faa1ef7e2436d11e4c04be67b5a95bf126b9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 26 19:02:40 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 26 19:02:40 2009 -0700"
      },
      "message": "return bounds Rect by value\n"
    },
    {
      "commit": "c62f9bd13327937aa2d2f20b44215397120634c1",
      "tree": "8bb2e7596e82588e9c4517f65209a174f809cc32",
      "parents": [
        "aae628b44518f0886a7f33b88c1131f47d853e70"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Fri Jun 26 13:33:32 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Fri Jun 26 13:33:32 2009 -0700"
      },
      "message": "Pipe all the camera callbacks to Java to facilitate the addition\nof new features. This will make it easy to add things like zoom\ncallbacks without modifying the entire camera stack.\nBug 1837832.\n"
    },
    {
      "commit": "26c28b16f3464eeb98b091b915ccf494ac31c35f",
      "tree": "a13c8d030ad3f9988c4958d7cbac328d20df7dcb",
      "parents": [
        "c1e3ec555b79b1e45fccbdf0bbc8ac2d51902860"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 22:39:26 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 25 00:09:27 2009 -0700"
      },
      "message": "make use of new eglGetRenderBufferANDROID extension to clean-up a bit a few hacks added recently\n"
    },
    {
      "commit": "cbc4c9f8d56317b2fe8964c15c9785ebeef98ca7",
      "tree": "131ba56996017a0493c681ef86c3f49bbcfa9dd3",
      "parents": [
        "f31868e59fbf59a8d479587c80b648fb37a166fc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 23 21:11:43 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 20:39:16 2009 -0700"
      },
      "message": "hack copybit back in for video playback on msm7k. we have h/w accelerated video again\n"
    },
    {
      "commit": "f31868e59fbf59a8d479587c80b648fb37a166fc",
      "tree": "5a0aa67a76d6b0e48041f557eefd764e57eb97cf",
      "parents": [
        "c6603951d45fc9b0d1776fec9444b6f31af92840",
        "ecf2b68d834d334de218dc427615b4ca05c0293a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 18:31:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 24 18:31:21 2009 -0700"
      },
      "message": "merge master in master_gl\n"
    },
    {
      "commit": "6f7e0dbdf6108e8f3664d1aa7ac72691f23a03d4",
      "tree": "73e057b644205f7aa512821fa1cf35ddb78b809f",
      "parents": [
        "9c73a336c121ae2a1f608700b45d84fed6c49eba",
        "a93466f5ca41c2ba6c3524c8d1edc2138bf753e3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 15:44:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 15:44:45 2009 -0700"
      },
      "message": "am a93466f5: Merge change 5220 into donut\n\nMerge commit \u0027a93466f5ca41c2ba6c3524c8d1edc2138bf753e3\u0027\n\n* commit \u0027a93466f5ca41c2ba6c3524c8d1edc2138bf753e3\u0027:\n  Cleanup header file. Disallow copy of Camera object by making copy\n"
    },
    {
      "commit": "e5b3607a0a7f3eebac82595624efe8d5b07f0a61",
      "tree": "849e956c53de45b1abac4517f5ba13d80fab7087",
      "parents": [
        "2387208c9ecb5dba01bd933312c80c5133bd3c41",
        "eaa89f74c04c0f10d5f3f8190b457087537bff2e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 13:54:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 13:54:13 2009 -0700"
      },
      "message": "am eaa89f74: Merge change 5172 into donut\n\nMerge commit \u0027eaa89f74c04c0f10d5f3f8190b457087537bff2e\u0027\n\n* commit \u0027eaa89f74c04c0f10d5f3f8190b457087537bff2e\u0027:\n  Remove deprecated callback function support.\n"
    },
    {
      "commit": "2387208c9ecb5dba01bd933312c80c5133bd3c41",
      "tree": "cc2b5de61934f318bcb3806d5a3705527b18c947",
      "parents": [
        "ffcdad9faaa03c116bacc5ac88a5aa2e015dc6d1",
        "3d7b8d1aa6a362292f56defbe8fb2d5653f79282"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 13:54:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 13:54:09 2009 -0700"
      },
      "message": "am 3d7b8d1a: Merge change 5158 into donut\n\nMerge commit \u00273d7b8d1aa6a362292f56defbe8fb2d5653f79282\u0027\n\n* commit \u00273d7b8d1aa6a362292f56defbe8fb2d5653f79282\u0027:\n  Use a ref-counted callback interface for Camera.\n"
    },
    {
      "commit": "6f0602e84a0387fe9239a57f44785de40feb051c",
      "tree": "c4f588848a7caa95565131374fa6419732aeaa63",
      "parents": [
        "b1dffc48ca8aec61d99391495b3f436d0e8b16dd"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jun 24 10:42:53 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jun 24 10:42:53 2009 -0700"
      },
      "message": "Cleanup header file. Disallow copy of Camera object by making copy\nconstructor and operator\u003d private.\n"
    },
    {
      "commit": "b1dffc48ca8aec61d99391495b3f436d0e8b16dd",
      "tree": "0ed71e91e20db61d993388d4ee1bfad3f866cd10",
      "parents": [
        "5e27115995c4506dddf4f1271effd4fb4c935ad3"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Tue Jun 23 19:09:05 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jun 24 07:58:27 2009 -0700"
      },
      "message": "Remove deprecated callback function support.\nThis is the last of a 3-part change to modify the camera to use\na more streamlined callback interface. This change removes the\nold code.\nBug 1884362\n"
    },
    {
      "commit": "5e27115995c4506dddf4f1271effd4fb4c935ad3",
      "tree": "dd67833f50a64768b2bf25ec4d9dd5daa3a2dd78",
      "parents": [
        "5f80605a0b866f34c74955e190909bd6ab5d992e"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Tue Jun 23 17:30:11 2009 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Wed Jun 24 07:58:27 2009 -0700"
      },
      "message": "Use a ref-counted callback interface for Camera.\nThis allows the camera service to hang onto the callback interface\nuntil all callbacks have been processed. This prevents problems\nwhere pending callbacks in binder worker threads are processed\nafter the Java camera object and its associated native resources\nhave been released.\nBug 1884362\n"
    },
    {
      "commit": "2d5ee25556cb363700dc5127f88ca05fb9493e14",
      "tree": "887c9aea220cc5e80075d237edb2e9c4051a5b68",
      "parents": [
        "36432ccc13f6d3db7af35661683c33ffa3406d85"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 04 18:46:21 2009 -0700"
      },
      "message": "fix a bunch of problems with destroying surfaces.\n\nnow, all destruction path, go through the purgatory which is emptied when ~ISurface is called, but we also make sure to remove the surface from the current list from there (in case a client forgot to request the destruction explicitely).\n"
    },
    {
      "commit": "5fbcaf9a90ca57b81739112c20859ef55fe18336",
      "tree": "cdd7a0e4967e4b4c03a1d2b82dd970a295c8c05f",
      "parents": [
        "4398876d6ec2dd3102acb3da4980f8e53243d372",
        "1f4c2951f1d448b91dba76fdaad09fe8aefeed04"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 14:30:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 01 14:30:08 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "3b4062eeb01be33951ba214e027da523cf09f8b1",
      "tree": "ee621c2fa8a23e61e41626c7bcf79884f0d7555e",
      "parents": [
        "abe00fdee08577eb0fa2e5d220e91317b8f883a8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 19:13:00 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun May 31 19:13:00 2009 -0700"
      },
      "message": "get rid of utils.h\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "da996f390e17e16f2dfa60e972e7ebc4f868f37e",
      "tree": "00a0f15270d4c7b619fd34d8383257e1761082f4",
      "parents": [
        "d24b8183b93e781080b2c16c487e60d51c12da31"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Feb 13 12:57:50 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@131421\n"
    },
    {
      "commit": "d24b8183b93e781080b2c16c487e60d51c12da31",
      "tree": "fbb89154858984eb8e41556da7e9433040d55cd4",
      "parents": [
        "f1e484acb594a726fb57ad0ae4cfe902c7f35858"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "22f7dfd23490a3de2f21ff96949ba47003aac8f8",
      "tree": "41bc290bb2f1f08a0e37cfda4955742a85d42ecf",
      "parents": [
        "9266c558bf1d21ff647525ff99f7dadbca417309"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:58 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jan 20 14:03:58 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@127101\n"
    },
    {
      "commit": "9266c558bf1d21ff647525ff99f7dadbca417309",
      "tree": "1630b1ba80f4793caf39d865528e662bdb1037fe",
      "parents": [
        "b798689749c64baba81f02e10cf2157c747d6b46"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:10 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "b798689749c64baba81f02e10cf2157c747d6b46",
      "tree": "da394a395ddb1a6cf69193314846b03fe47a397e",
      "parents": [
        "f013e1afd1e68af5e3b868c26a653bbfb39538f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
