)]}'
{
  "log": [
    {
      "commit": "0928bee979c8fa157e13e37e52ba9ad94e935237",
      "tree": "ad2dd7b6efea2685749ca63919fb01a31446553f",
      "parents": [
        "e8d23a23ee25069dd16a3aeb087ad6ea0f0f2fe9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 20:15:42 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 16 20:15:42 2009 -0700"
      },
      "message": "disable backbuffer preservation when possible, which may improve performance a bit\n"
    },
    {
      "commit": "a5b02e0b4dfc9947e373e17a383b397f6fcb751c",
      "tree": "b7c50baab768f61cb535e02fee7351bc650005a3",
      "parents": [
        "6ef94ce674107a7759256bac3163c57d3722996f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 04 18:49:03 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 09 19:20:10 2009 -0700"
      },
      "message": "add a debug property to disable h/w composition. debug.sf.hw, when set to 0 will disable h/w composition\n"
    },
    {
      "commit": "cbb288bfe89f585bf48371bd31b2d4aafa32f32e",
      "tree": "73d20f36910dcab8c17c686cdd7014cee285bc39",
      "parents": [
        "f0780974fc31ae88135d1dcb67cb5fd86bb6deb6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 07 16:32:45 2009 -0700"
      },
      "message": "fix [2068105] implement queueBuffer/lockBuffer/dequeueBuffer properly\n\nRewrote SurfaceFlinger\u0027s buffer management from the ground-up.\nThe design now support an arbitrary number of buffers per surface, however the current implementation is limited to four. Currently only 2 buffers are used in practice.\n\nThe main new feature is to be able to dequeue all buffers at once (very important when there are only two). \n\nA client can dequeue all buffers until there are none available, it can lock all buffers except the last one that is used for composition. The client will block then, until a new buffer is enqueued.\n\nThe current implementation requires that buffers are locked in the same order they are dequeued and enqueued in the same order they are locked. Only one buffer can be locked at a time.\n\neg. Allowed sequence:   DQ, DQ, LOCK, Q, LOCK, Q\neg. Forbidden sequence: DQ, DQ, LOCK, LOCK, Q, Q\n\n"
    },
    {
      "commit": "8458a3140f51275d6b78b5879f942163c0d618e2",
      "tree": "f392a5f457572aef8b4626d722210aa016fc3a37",
      "parents": [
        "24e5f5290195e1c02c18730d0639efda65d64914"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 12 21:24:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 12 21:24:53 2009 -0700"
      },
      "message": "make sure EGL_ANDROID_swap_rectangle is actually supported before using it\n"
    },
    {
      "commit": "24e5f5290195e1c02c18730d0639efda65d64914",
      "tree": "ba706a2faa568c38f74c15c9583836472c98ab96",
      "parents": [
        "326f846e67c4f75709a11b215d4d2c59f4b73891"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 12 21:18:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Aug 12 21:18:15 2009 -0700"
      },
      "message": "Better error handling in EGL extensions\n"
    },
    {
      "commit": "0928e31cc7a9ec7367a68796fcaa9c52959216a5",
      "tree": "cd33d8bd7bcb1de4b7c83d086e00eeaec5b8f2ea",
      "parents": [
        "8c12c7aec3fdbccfa8161c2c12131d590a9b5ce8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 16:38:10 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 07 16:38:10 2009 -0700"
      },
      "message": "minor code clean-up\n"
    },
    {
      "commit": "6cf50a770dabd13cf5b72bb0a6fb9dd002c88db6",
      "tree": "cf9f9f051e842663afe6bd850f9d5cdb436e4901",
      "parents": [
        "6b1f41004fa48e96bab61f508867314261de660b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:05:39 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 06 16:05:39 2009 -0700"
      },
      "message": "added two EGL helpers for selecting a config matching a certain pixelformat or native window type\n"
    },
    {
      "commit": "e437ff809942d3a234165d22cbf100f0f5b847ab",
      "tree": "ed72b05d656ab191b84a0d24b46320e2402318e4",
      "parents": [
        "e3772efdc5dacf9a580786b836daa77ce127cb6e",
        "7f5989e19ba47af4a147c19b9bb5b8960ad467d2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 29 14:47:41 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 29 14:47:41 2009 -0700"
      },
      "message": "am 1521cd6e: Merge change 8015 into donut\n\nMerge commit \u00271521cd6e657ba4efa9382ab73d3cbba3bdf50ead\u0027\n\n* commit \u00271521cd6e657ba4efa9382ab73d3cbba3bdf50ead\u0027:\n  Reset the mDpiX and mDpiY values when qemu.sf.lcd_density is defined.\n"
    },
    {
      "commit": "31469e1069a873993ff43dec803bf5f14fad0fb5",
      "tree": "0751397ae1ff717ee212badc0aa404ba44219274",
      "parents": [
        "dccff9690cce09b4f8461d1d7874bb0692efb9fb"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 29 00:38:58 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jul 29 00:38:58 2009 +0200"
      },
      "message": "Reset the mDpiX and mDpiY values when qemu.sf.lcd_density is defined.\n\nThis will make android.view.Display return corresponding values for\nthe screen\u0027s DPI.\n"
    },
    {
      "commit": "80d7a764fc439d7fbd7245ccae6b310386073d9f",
      "tree": "404092a62416149ab4a95b2d69960688e924f6cf",
      "parents": [
        "6ee4f3543ffe786f1fb2f0003a0361664b919a68"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 09 22:11:57 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 09 22:11:57 2009 -0700"
      },
      "message": "fix [1969200] Uninitialized double passed to Math.sqrt()\n"
    },
    {
      "commit": "2dd6727c46120f2164f7ac447281f485ece9bc72",
      "tree": "4901babf821aab916b66944675a470abeb8a145f",
      "parents": [
        "29d06ac9a45e564b4f935b91067fc92c2d4c193d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:53:53 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:57:42 2009 -0700"
      },
      "message": "when there is a choice between UPDATE_ON_DEMAND and SWAP_BUFFER optimizations, choose UPDATE_ON_DEMAND which is often more efficient.\n"
    },
    {
      "commit": "29d06ac9a45e564b4f935b91067fc92c2d4c193d",
      "tree": "cd222364df15c9fc100614fad8bb41b9b1df106e",
      "parents": [
        "9f96145725ff3f265712d607d19078fb91a5c8ec"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:49:56 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 29 18:49:56 2009 -0700"
      },
      "message": "fix a bug that caused artifacts when SWAP_RECTANGLE was enabled\n"
    },
    {
      "commit": "b8a5560e1303cb10f5cd482af466fc04d2bdfcab",
      "tree": "3d8e2c45d87cb1dcb85e36978ea1658d6cd7db91",
      "parents": [
        "17b2ad027b4b72b96dfb663c0ea001972da7ef58"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 26 19:06:36 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 26 19:06:36 2009 -0700"
      },
      "message": "fix an update bug with SHOW_UPDATE debug feature. Fix a problem with the debug binder codes too\n"
    },
    {
      "commit": "2ab55a4e31c37d74abdd85486e1f4045c7f708e2",
      "tree": "d4ff7f4fe7ac7a6078eb819077e1325d7938e28e",
      "parents": [
        "8d2e83b9f44c7f2207a312fcfda8eb3a4c26745f"
      ],
      "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": "69029eb5abfaeb52716b84db89e32dc742551508",
      "tree": "42f99fe892035c13c17fcee07582a607a5566355",
      "parents": [
        "4c4b387afb2e775fcac3b81a249bb7646515dffa"
      ],
      "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": "cca6b4267d2e3910b9808aa45e69206e06ef353e",
      "tree": "e4e3dfc9a0ef163099ab30cba0d202eb73578f0e",
      "parents": [
        "f9d932774e06d5122c48b47d8cabd791783f56d2",
        "f84dda74d51258b28a8b17a22544d9984dfeb05b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:41:14 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jun 19 17:41:14 2009 -0700"
      },
      "message": "Merge commit \u0027goog/master\u0027 into merge_master\n"
    },
    {
      "commit": "ae71accf63add81ec3d3cd0269536c24db112cab",
      "tree": "b89b1cc2e1ba38d0737f24ad9cb1a25457027997",
      "parents": [
        "c62834b9faafdccc56439bdb62a63ffcdfbcb4c4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 19 04:41:12 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 19 04:41:12 2009 +0200"
      },
      "message": "Fix sim-eng build and simplify previous lcd-density related patch\n"
    },
    {
      "commit": "694e10ba8778dbb3cda9abe106f73ec0f45c8800",
      "tree": "5a40bf218a32b7c98c3f060558cb91f154349ec8",
      "parents": [
        "55a72ba8eb43cd4423dff606cb8aefc3a1a23aa4"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu Jun 18 04:30:32 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jun 19 00:17:31 2009 +0200"
      },
      "message": "Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density\n\nro.sf.lcd_density is usually defined in the build.prop file which is parsed by init\nbefore anything else. Since its name begins with \"ro.\", this property is write-once\nand cannot later be modified, e.g. in /system/etc/init.goldfish.sh.\n\nIn other words, you cannot use \"emulator -prop ro.sf.lcd_density\u003d\u003cvalue\u003e\", since\nit is impossible to override the value defined in build.prop\n\nThis patch modifies the system to recognize \"qemu.sf.lcd_density\" as an override\nvalue, which can be set with \"emulator -prop qemu.sf.lcd_density\u003d\u003cvalue\u003e\", forcing\na specific density.\n\nA later patch will allow the emulator to automatically set this property depending\non AVD hardware configuration settings.\n"
    },
    {
      "commit": "5e78e0965169790111f01354e78b0f8d34c94840",
      "tree": "18f5ca4dce455c4e801c2177c48853e6eddd46a0",
      "parents": [
        "0a3139a21e628093893bba8ca0bb0b4742e0522c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 11 17:19:54 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 11 17:19:54 2009 -0700"
      },
      "message": "protect ANDROID specific egl extension with #define\n"
    },
    {
      "commit": "e92c713cb685f78d2041b7ffc89ccb155c992b2d",
      "tree": "75c6c8938e470cad8fea0e8d1b1ee33f85293e45",
      "parents": [
        "6457359fa5df7869d5881acee80b34dfc760a5bf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 14:49:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 03 14:49:08 2009 -0700"
      },
      "message": "when looking for an EGLConfig always pick the first one that matches, not the last one\n"
    },
    {
      "commit": "1e16b13857809eaa9bd17fb60ac0a471dc92844b",
      "tree": "0af8e8f35ac417b91d454318a45a2130e56cee04",
      "parents": [
        "e6bf8b32b616450f80b64d226ea673f4a2e0bf8d"
      ],
      "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": "e6bf8b32b616450f80b64d226ea673f4a2e0bf8d",
      "tree": "4182624cf23d228ee1f166c3b20d029943dcf50f",
      "parents": [
        "df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 06 23:47:08 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 15:07:52 2009 -0700"
      },
      "message": "fix EGL extension string names\n"
    },
    {
      "commit": "df3ca30bf663cb8eed88ee3f16fb5e9a65dc00fc",
      "tree": "2456c7861be6b9ee4b8f87fe086acb9a2b132b3a",
      "parents": [
        "aa8c0ff7a36b4840dcf3e72c9696b86d192c4314"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 04 19:29:25 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 07 15:07:33 2009 -0700"
      },
      "message": "created an new EGL extension called ANDROID_swap_rectangle\n\nANDROID_swap_rectangle allows to specify the rectangle affected by eglSwapBuffers(), anything outside of this rectangle is unchanged. in particular EGL_BUFFER_DESTROYED only applies to that rectangle. This extension as well as EGL_BUFFER_PRESERVED allow major optimizations on surfaceflinger, which can redraw only the dirty area during compositing.\n\nHowever, ANDROID_swap_rectangle allows further optimizations in EGL by reducing the amount of copy-back needed. ANDROID_swap_rectangle is particularily important for software implementations.\n"
    },
    {
      "commit": "7189c0054e29a66d945f5657c48d5ecf538ea511",
      "tree": "59ffcb8c9e9aa615b86dd3b033059e1014eda3ac",
      "parents": [
        "21c59d0070fe24a8e04e52ce04d511a924a9932f"
      ],
      "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": "b2dd686d06a608ee40285b93bc0217cf26c2b035",
      "tree": "a2eba0a8b1f21384dd93cb251022d1b031bf2a5a",
      "parents": [
        "0926f50664c739eaee60341f8e8c694dc9a4f3eb"
      ],
      "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": "0926f50664c739eaee60341f8e8c694dc9a4f3eb",
      "tree": "642597de2cc52f7636ae74f1a88f3706e3e54a4a",
      "parents": [
        "7be3e5d2d8101a8f5e12bbdf650431a734f88eba"
      ],
      "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": "076b1cc3a9b90aa5b381a1ed268ca0b548444c9b",
      "tree": "b87f7863623b37fa9a6cc4ef48934aab46f79986",
      "parents": [
        "4ec21527096d0dcaa99634e6058aca3a415461af"
      ],
      "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": "edbf3b6af777b721cd2a1ef461947e51e88241e1",
      "tree": "f09427b843b192cccf8c3b5328cb81dddf6489fa",
      "parents": [
        "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e"
      ],
      "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": "d5193d9394c5e58176d7bcdf50ef017f8a3b9e1e",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "43aa2b1cbf7a03e248e10f4d0fec0463257cd52d"
      ],
      "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": "a6938bab1f6fa76ae98ebbe44f4e534e05fa0993",
      "tree": "bc5a1f806bd06db8abb197e80be9ead3644c0bcc",
      "parents": [
        "e41dd756db5184519f4dacbf4d95b333822605c7"
      ],
      "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": "8a7a67538a9977c892389bfcde76a8372aa0b56c",
      "tree": "0782f82f223ddeafa9b08bd2121ded38212f67f7",
      "parents": [
        "276293246ea9cbc0a578a7697cc48930376ec0e9"
      ],
      "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": "276293246ea9cbc0a578a7697cc48930376ec0e9",
      "tree": "03804488c60dda65699333d2311c8d1842ec4b65",
      "parents": [
        "e09fd9e819c23dc90bca68375645e15544861330"
      ],
      "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": "e09fd9e819c23dc90bca68375645e15544861330",
      "tree": "9a9fdadd1301625f875a3c126c986c79e3363ac4",
      "parents": [
        "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407"
      ],
      "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": "7c1b96a165f970a09ed239bb4fb3f1b0d8f2a407",
      "tree": "df5a6539447324de36e95b057d6b9f0361b7a250",
      "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"
    }
  ]
}
