)]}'
{
  "log": [
    {
      "commit": "18f16e6fba74eda173e1e7c869e6e2e2acc073ff",
      "tree": "d1ed13d4ea22a86109a09c309efb7e3d9c79112c",
      "parents": [
        "29e594c520e22b94b540873f72312614cc3fdca1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 16:46:41 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 10:57:04 2014 -0700"
      },
      "message": "TIME LORD!\n\n Bug: 14444180\n\nChange-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3\n"
    },
    {
      "commit": "52244fff29042926e21fa897ef5ab11148e35299",
      "tree": "2cc7b2f6dd47fe7863c6bc2b6a806e275c149ba9",
      "parents": [
        "abc975f539b4ea06c05b11ec56b0abe7c6fd95aa"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 01 21:27:37 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 13:43:46 2014 -0700"
      },
      "message": "Add CanvasProperty for drawCircle\n\nChange-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c\n"
    },
    {
      "commit": "64ab917e5eb3269c72c795781a512d4ee7d9d7a4",
      "tree": "0fc75966319a9df191a1687d445ce0ab8149c207",
      "parents": [
        "e5c749085e793bfa931db09cf3ce4559be255663",
        "f5be3ca5cc5b3a10747b577f60059a99862bb9a8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 01 01:31:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 01 01:31:12 2014 +0000"
      },
      "message": "Merge \"Add more shadow control knobs\""
    },
    {
      "commit": "f5be3ca5cc5b3a10747b577f60059a99862bb9a8",
      "tree": "a35aca46d1a60b88df40e8015c6a1815acccdb61",
      "parents": [
        "7a70981fc1eead712d62d9502f6dccb963779ae8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 30 18:20:03 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 30 18:20:30 2014 -0700"
      },
      "message": "Add more shadow control knobs\n\nChange-Id: I1ff500bf429029a97b681ced9df652f4ee9f1332\n"
    },
    {
      "commit": "52622668f91c69ec718b356d2e0f8555fc88435f",
      "tree": "85853f422b9fca99135bc08c2c1d5bc2be47a5c6",
      "parents": [
        "406c51b360cb224e2cb4773eabd04d05d29793f8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 30 14:19:56 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 30 14:19:56 2014 -0700"
      },
      "message": "Use resize, not reserve\n\nReserve ensures the underlying buffer is the correct size, but\niterating across it is not necessarily valid. Use resize() instead\nto ensure that the iterator access is valid\n\nChange-Id: I35ff5f4416bb94cf4ce2c6acf72ffd17ab3e523a\n"
    },
    {
      "commit": "25ff2c1ec1b0a3e33710fcf6777abd0fed809877",
      "tree": "ad7db725c1c1f65b78a9628bb938f8255d25fab6",
      "parents": [
        "0d575b084fe5a691c2a99163515de0dc54f66e18",
        "e45b1fd03b524d2b57cc6c222d89076a31a08bea"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 29 17:56:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 29 17:56:04 2014 +0000"
      },
      "message": "Merge \"RenderThread animator support\""
    },
    {
      "commit": "e45b1fd03b524d2b57cc6c222d89076a31a08bea",
      "tree": "31ad10387f2b59b3ee9d4396be44fce67228ca75",
      "parents": [
        "627aad9c200cb19aa505504dcd232a3710e96a25"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 15 09:50:16 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 29 10:42:11 2014 -0700"
      },
      "message": "RenderThread animator support\n\nChange-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084\n"
    },
    {
      "commit": "0d575b084fe5a691c2a99163515de0dc54f66e18",
      "tree": "e07fac82ad6a2fbf805d62877865e2a84c07dee6",
      "parents": [
        "ecdc6fdb64a41dd3bd5867308cb0c8a5b941146f",
        "2e023f3827dfc0dfc1ed7c3dd54d02b4a993f0b4"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Apr 29 16:21:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 29 16:21:51 2014 +0000"
      },
      "message": "Merge \"Make sure the theta is correctly represented and incoming polygon is CW for shadow.\""
    },
    {
      "commit": "2e023f3827dfc0dfc1ed7c3dd54d02b4a993f0b4",
      "tree": "ba319249cf92343e7d7488480a9646a235566ef9",
      "parents": [
        "7940dc57e3ffcf9c4a33375215f3a42250fa896c"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 28 16:43:13 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 28 16:43:13 2014 -0700"
      },
      "message": "Make sure the theta is correctly represented and incoming polygon is CW for shadow.\n\nNow the theta \u003d 0 should be on +x axis.\nAnd cos(theta) should correctly represent x value.\nWithout this fix, the poly theta (from atan2) can be wrongly rotated 90 degrees.\n\nAlso, make sure the incoming polygon is CW for the shadow system.\nThis fix visual artifacts in recent regression for spot shadows.\n\nbug:13553955\n\nChange-Id: I9bbf54db094e7f133326da4dae4610962da849c1\n"
    },
    {
      "commit": "cc39e16cb98855f35079941b5e7e6eac2b7bc388",
      "tree": "f37cb0ce9da11a018446adfb83c756f5e76e77f1",
      "parents": [
        "802667b20b2170ddce94d70a022b68b64b9a7493"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 25 18:34:11 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 28 14:33:33 2014 -0700"
      },
      "message": "Add elevation, Z properties to View\n\nChange-Id: I3dd3b683a66e248a0fdf2ca69d1e962615b0daf9\n"
    },
    {
      "commit": "d2cd53d4e525d6cd5e5ff261274f4969e2e8f3fd",
      "tree": "a6ff5b8f248732a8426756770e94702397492eb2",
      "parents": [
        "5e6e27edb7d59255d07e2f74dac74e5898cf949b",
        "7940dc57e3ffcf9c4a33375215f3a42250fa896c"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Apr 24 18:02:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 24 18:03:00 2014 +0000"
      },
      "message": "Merge \"Shoot the rays to the vertices of the incoming polygon.\""
    },
    {
      "commit": "7940dc57e3ffcf9c4a33375215f3a42250fa896c",
      "tree": "a8079e0c2f382b8ac79f8e912f05ac17a5300704",
      "parents": [
        "f4201925d9e3d01e7a2a1db07c8186e4ba9a0fb5"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Apr 22 11:21:49 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Apr 24 09:53:20 2014 -0700"
      },
      "message": "Shoot the rays to the vertices of the incoming polygon.\n\nbug:13553955\n\nChange-Id: I4825a49e8eaab969c40f2ee4086f7669c9c6fd29\n"
    },
    {
      "commit": "717f39c7d98c7e4b08f7bb88102c720cb8990004",
      "tree": "6a8ab946315d05b15836f92c2f995de416d040ad",
      "parents": [
        "f4201925d9e3d01e7a2a1db07c8186e4ba9a0fb5",
        "3f085429fd47ebd32ac2463b3eae2a5a6c17be25"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 24 00:08:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 24 00:08:09 2014 +0000"
      },
      "message": "Merge \"Clip TouchFeedbackDrawable effect to receiver Outline\""
    },
    {
      "commit": "3f085429fd47ebd32ac2463b3eae2a5a6c17be25",
      "tree": "2930b7ee50ce98092fde97546a3d546c817038f1",
      "parents": [
        "fbb54b8363b66e0b22d519ee20d1a50e8b5340ee"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 15 16:18:08 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 23 16:15:11 2014 -0700"
      },
      "message": "Clip TouchFeedbackDrawable effect to receiver Outline\n\nProjected RenderNodes are now wrapped with a ClipRect or masked\nSaveLayer, so that they are clipped to the outline of the projection\nreceiver surface.\n\nChange-Id: I1d4afc1bb5d638d650bc0b1dac51a498f216773e\n"
    },
    {
      "commit": "e0bb87d4bdbd3b08ab6a8569c8e564ed59b8a5a7",
      "tree": "00cc21b9b9ee4237245829ae0eb55abe935f26e8",
      "parents": [
        "ceb5d17f6a2f5c144948ada1d59ec4f12da64799"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 22 17:55:41 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 23 13:23:30 2014 -0700"
      },
      "message": "Fix translationZ matrix computation\n\nbug:14259972\n\nEnsure that translationZ is applied for true3dTransform property\ntransformations, even if the node doesn\u0027t have any other\ntransformation properties set.\n\nAdditionally, use fuzzy compare for translationZ, similar to\nrotationX/Y, since they\u0027re expenive to leave set in rounding error\ncases.\n\nChange-Id: Idafa4423cc7751a8f433237b1f576aa7abb74f6e\n"
    },
    {
      "commit": "b78263d37690a6a5cb12dd31d82ad2e140b3dfc7",
      "tree": "68ff2d16b607973a452e362f933db60fde4b7dda",
      "parents": [
        "0d751e31cdbbcc25f191fa901533b2e1f1d20986",
        "b66270eac288de53207e55d10879b070a0ec8b6b"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Apr 22 22:37:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 22 22:37:36 2014 +0000"
      },
      "message": "Merge \"ask skia to use flat gamma when rendering fonts from hwui\""
    },
    {
      "commit": "b66270eac288de53207e55d10879b070a0ec8b6b",
      "tree": "e10290a3f32983a1b8c66541bbde189e5753587f",
      "parents": [
        "c726f6b537c5913600bc35ff866f1fb32800b9be"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Apr 22 15:00:31 2014 -0700"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Apr 22 15:00:31 2014 -0700"
      },
      "message": "ask skia to use flat gamma when rendering fonts from hwui\n\nBug: 13748392\nChange-Id: I6930629b8e900628f15354f663b86dfb29a4db78\n"
    },
    {
      "commit": "222f33178b1547b70350ead660070eb01e56eac2",
      "tree": "967ba6860d418ad1997bff7fdce0e40c1d2dab14",
      "parents": [
        "fbb54b8363b66e0b22d519ee20d1a50e8b5340ee"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 22 10:08:27 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 22 10:09:03 2014 -0700"
      },
      "message": "Fix is_zero check\n\nFixes x/y rotations which were incorrectly disabled due to this check.\n\nChange-Id: Ie8a7c8904c729a91b18243323b0be6110e743137\n"
    },
    {
      "commit": "dbc9a86d05e5e835051de22f6cb30ec1921e9705",
      "tree": "bd17a4c06136f9e09e74afdefbe060325052f685",
      "parents": [
        "c731435649ef42a454a7e2e22fa2e303a242f8f9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 17 20:25:13 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 17 20:27:37 2014 -0700"
      },
      "message": "Force a full redraw on surface change\n\n Bug: 13913604\n\nChange-Id: Ie90c7ee74cf83358e19d8b4f0bae078540a93a8d\n"
    },
    {
      "commit": "6f07a0dc875a9eac67312085a8e0133b9e2f4771",
      "tree": "92d717413e77155f65d67bf072e18937fbc47e51",
      "parents": [
        "6313b9259d37b59f3402058e197637aa3014516c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 16 21:31:25 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 16 21:32:25 2014 -0700"
      },
      "message": "Add missing resume() call\n\n Bug: 14087850\n\nChange-Id: Ic555ca6027e617c7ed6e7e66b5cf713c36ed1c6c\n"
    },
    {
      "commit": "e8a866d4a41daa43e394505e12503b32c2d929e4",
      "tree": "3b2bb5a8a810d91fbba4ea60f5db03c5a1116f6a",
      "parents": [
        "6284622cdf949ea213c2e2a0207a90873c2d1d35",
        "860d155f866cc15a725e7ce03763280987f24901"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 20:57:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 14 20:57:38 2014 +0000"
      },
      "message": "Merge \"Fix issue with bitmap uploading\""
    },
    {
      "commit": "860d155f866cc15a725e7ce03763280987f24901",
      "tree": "1ade6b4f5c2c0910c088469b95255eb66ce0cb53",
      "parents": [
        "db8b130a19484cb6018667905e64d42ab793654f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 11 19:15:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 13:17:25 2014 -0700"
      },
      "message": "Fix issue with bitmap uploading\n\n Bug: 13912749\n\nChange-Id: Ic23fa1d280118dc93dc2716a4a24cc0bbbdca595\n"
    },
    {
      "commit": "fae904d63947fe1687d1d44be29234cc3d538f24",
      "tree": "57837539a3eb84bc5f42f971a041e99db31cfd39",
      "parents": [
        "db8b130a19484cb6018667905e64d42ab793654f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 11:01:57 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 12:44:53 2014 -0700"
      },
      "message": "Fence on destruction\n\n Bug: 14052927\n destroyCanvasAndSurface() needs a fence as when it returns the\n underlying BufferQueue is going to be released from under\n the render thread.\n\nChange-Id: I0147a1d5ec5adf0239c761ef22f65cd8c8a137df\n"
    },
    {
      "commit": "286ffe4b28d2c004ce98f7ddb3a5f34441ab0d80",
      "tree": "ba94b0e5379e56f60ae5802169fdc50fd0ec4c62",
      "parents": [
        "dd35634cb0059b4b745161eb80234d8e8da38033",
        "143912fef8eff58146705849a0ba441ab6163409"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 22:46:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 11 22:46:20 2014 +0000"
      },
      "message": "Merge \"Remove use-after-free signal in RenderNode\""
    },
    {
      "commit": "dd35634cb0059b4b745161eb80234d8e8da38033",
      "tree": "48f30a6efc6762b55bae023cefb76ce2e502853e",
      "parents": [
        "296832e0e5ac007aecd5824dede840d1f403ced0",
        "0664fef9e2a36025b3fad85b57b4d10617b4d66e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 22:46:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 11 22:46:07 2014 +0000"
      },
      "message": "Merge \"Fix BitmapMesh buffer copy\""
    },
    {
      "commit": "143912fef8eff58146705849a0ba441ab6163409",
      "tree": "fcb26a8040ad41abe6d55457de06842e4dbc0702",
      "parents": [
        "494fb7b58a21a7a9a8eba3bacecffe115edcb8c6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 13:47:36 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 13:48:46 2014 -0700"
      },
      "message": "Remove use-after-free signal in RenderNode\n\nbug:9321162\n\nmDestroyed is no longer useful, as RenderNode is ref counted (not to\nmention having its lifecycle significantly redesigned).\n\nChange-Id: I429b9dd7740362c85d6416fbae567f0d47098e4e\n"
    },
    {
      "commit": "0664fef9e2a36025b3fad85b57b4d10617b4d66e",
      "tree": "1cce539a605c318628c610ca5048d28062b24b85",
      "parents": [
        "494fb7b58a21a7a9a8eba3bacecffe115edcb8c6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 13:40:05 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Apr 11 13:40:05 2014 -0700"
      },
      "message": "Fix BitmapMesh buffer copy\n\nChange-Id: I7c1a3651c7d91d7ff37ecbe18d974fa8cb1cf415\n"
    },
    {
      "commit": "f7483e3af0513a1baa8341d403df2e0c0896a9ff",
      "tree": "1e528710efbfe016882e4e389c2c647a9c4a78b3",
      "parents": [
        "23d2dd3da15b4312cc55c4d7b0bcf70719655e65"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 11 08:54:47 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 11 12:57:53 2014 -0700"
      },
      "message": "Simplify matrix calculations\n\n Bug: 13913604\n\nChange-Id: I2c0f85a34e1e520050a5a6131306d6b7c352d827\n"
    },
    {
      "commit": "822bbb382fa6b6c8d1b45770e27c2c2732a7afb7",
      "tree": "ffc30391c176694e2490ac6bfc2cc9892123ee2a",
      "parents": [
        "4b1a7c203d5e32c8b2dc7f4f54f28559ca31860a",
        "d3d8dafc2f61fb118c060720b52684c59303f3db"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 22:23:22 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 10 22:23:22 2014 +0000"
      },
      "message": "Merge \"Make attachFunctor blocking\""
    },
    {
      "commit": "d3d8dafc2f61fb118c060720b52684c59303f3db",
      "tree": "92352e4e27e420ab41389ac42c2f9b34f249aabc",
      "parents": [
        "2271a91c327cee8a6c1dffcbfd3419c95d56c37e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 15:00:13 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 15:00:13 2014 -0700"
      },
      "message": "Make attachFunctor blocking\n\n Bug: 13930200\n\nChange-Id: I9b0cf92fd16bb30baa09b6f8d7ae22a8b2a7fd80\n"
    },
    {
      "commit": "8ca3eecc2b7fe507d3482745efc4cd2567ad15a1",
      "tree": "804a5343674ab583447d7886e0197088cdd916e6",
      "parents": [
        "2271a91c327cee8a6c1dffcbfd3419c95d56c37e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 10:28:45 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 10:46:55 2014 -0700"
      },
      "message": "Remove sync flush\n\n Bug: 13952590\n It was attempting to flush state changes after the canvas was\n destroyed, which caused layer updates to crash.\n\n Due to the removal of SetDisplayListData, the sync mode isn\u0027t able\n to do anything ever, so remove it.\n\nChange-Id: I1e18ce288d81fd47cc6e612afda9476f75ecef2e\n"
    },
    {
      "commit": "f4198b713e43c0c0f9adac74203cf24c2a49b802",
      "tree": "ed1e56915cfd87dbc949d72a49ccaf3ee122881b",
      "parents": [
        "8e1f918738abf70a4dc86dbb12b386a9deea37f8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "message": "Merge hasFunctors \u0026 pushStaging into prepareTree\n\n Bug: 13902607\n Fixes synchronous mode for WebView in HardwareLayers\n\nChange-Id: I90de1e26dcfd9b75cc2f03bac72705fc23237b68\n"
    },
    {
      "commit": "8e1f918738abf70a4dc86dbb12b386a9deea37f8",
      "tree": "2f8b775662768ed77b50ec5740e5d7af608e56c8",
      "parents": [
        "3c86a27d3e9044d04d0f176e59a1ebbcd774a54c",
        "8de65a8e05285df52a1e6f0c1d5616dd233298a7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 23:01:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 09 23:01:02 2014 +0000"
      },
      "message": "Merge \"Switch DisplayListData to a staging model\""
    },
    {
      "commit": "8de65a8e05285df52a1e6f0c1d5616dd233298a7",
      "tree": "267faf9277b441030b6276ca6a3a34424bb9aee8",
      "parents": [
        "10bdb4b9e966f0a3d8e1099bf8eff4c41c31981c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:23:38 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:48:00 2014 -0700"
      },
      "message": "Switch DisplayListData to a staging model\n\n Bug: 13912977\n\nChange-Id: I5b2f664e797be22a58300964f57ceb4fab60528c\n"
    },
    {
      "commit": "972d0488a555ff65a9e18655795e65e4b5365175",
      "tree": "0c2b018f0789cef961a3021cb4598f7249134817",
      "parents": [
        "a040977de8b3ec791bf3b7e0115630e8c27fd8ca",
        "defb7f37fe67ef2389666f7adc5da1260df87017"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 09 18:10:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 09 18:10:28 2014 +0000"
      },
      "message": "Merge \"When recording a child node into a parent, read staging projection property\""
    },
    {
      "commit": "f7d9c1dc84671d4e99657ef071d275700d85bb11",
      "tree": "b1e43d969a44162bd6a1db1b702207019ec32286",
      "parents": [
        "10bdb4b9e966f0a3d8e1099bf8eff4c41c31981c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 10:01:03 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 11:01:29 2014 -0700"
      },
      "message": "Fix ThreadedRenderer.setEnabled()\n\n Bug: 13914116\n Fixes lifecycle issues around setEnabled where ThreadedRenderer\n was reporting as being enabled before it had a Surface. This is\n incorrect.\n\n Also fix some EGL lifecycle issues\n\nChange-Id: I12ebb279707f9b533a570b61d68735d858b560bf\n"
    },
    {
      "commit": "defb7f37fe67ef2389666f7adc5da1260df87017",
      "tree": "53011a92b1a2a475d5d2e815343ac328dcbbeb32",
      "parents": [
        "ff17bc9cac2f9b178fcbfe3a0af307b4d16c2389"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 08 18:17:07 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 08 18:17:07 2014 -0700"
      },
      "message": "When recording a child node into a parent, read staging projection property\n\nbug:13770920\n\nThe other properties should not be read from the UI thread.\n\nChange-Id: I61d13774553d46a8963623727d8e8eeeb3385cc9\n"
    },
    {
      "commit": "1949e7928eeec22cd3f74b5f763a4eb433238453",
      "tree": "9989642b268277a76657fcdbab75cd478d770d2f",
      "parents": [
        "1f3f55b434ce324c5fdbe74db1982fea4812a2e9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 08 15:18:56 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 08 15:18:56 2014 -0700"
      },
      "message": "Ensure there\u0027s a GL context before creating a Layer\n\n Bug: 13745587\n\nChange-Id: Ib0ec059d9a5974a48734daeec9d83580cada94a3\n"
    },
    {
      "commit": "e2c455264351964bf1ae78da2256c17258f0d3ea",
      "tree": "d6be1f13fce173fb067ea82c623be172c46875e3",
      "parents": [
        "85189c5dafb08f051c7024f42ceedcbcf5dbbc7c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 17:31:44 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 17:38:47 2014 -0700"
      },
      "message": "Veto pool TODO\n\nChange-Id: I50067dba630b75aa539e4406cfc15f66949684b3\n"
    },
    {
      "commit": "85189c5dafb08f051c7024f42ceedcbcf5dbbc7c",
      "tree": "48e2653a88f94fa50aa00b45cf273da2c7b3accd",
      "parents": [
        "af22ce470112b8ee2ea7edf17b5d7c78e92d8ff7",
        "28ad7b52e038ef0cdd89f753d9839444a434b299"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 08 00:32:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 08 00:32:15 2014 +0000"
      },
      "message": "Merge \"Fence on draws that are reported\""
    },
    {
      "commit": "28ad7b52e038ef0cdd89f753d9839444a434b299",
      "tree": "918c519f621185485245118eb62599113f80445d",
      "parents": [
        "ce16215d7b4d9bedfc62e172dc44ab439afef13a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 16:59:25 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 16:59:25 2014 -0700"
      },
      "message": "Fence on draws that are reported\n\nChange-Id: Ib2ec16cbda40f40df1710bdc868869ea8301f17e\n"
    },
    {
      "commit": "96c637e9414600a67c71014274e7757161dcc709",
      "tree": "4840374c35af37bc235dbe885dd03cb4c315fe3a",
      "parents": [
        "8ea553d03a84e2fc3ded507dd978fca0dee22e77",
        "087bc0c14bdccf7c258dce0cdef46a69a839b427"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 22:42:21 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 07 22:42:21 2014 +0000"
      },
      "message": "Merge \"Refcount RenderNode\""
    },
    {
      "commit": "087bc0c14bdccf7c258dce0cdef46a69a839b427",
      "tree": "cab73aeed8e9a0bc8e74243a35c026ab0b321e08",
      "parents": [
        "ce16215d7b4d9bedfc62e172dc44ab439afef13a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 04 16:20:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 14:53:08 2014 -0700"
      },
      "message": "Refcount RenderNode\n\nChange-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752\n"
    },
    {
      "commit": "7716b7d8ef9addb913bbc4bdd3153fa36bd1aa87",
      "tree": "9785d225db68cccc39d9039bb8209ac032b513ea",
      "parents": [
        "f20a5eb279035d462e1f5d9895f4eb66cc152215",
        "cc11f15f76a62ded3e403cb2bc818c6aa5bf261c"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Apr 04 20:31:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 04 20:31:00 2014 +0000"
      },
      "message": "Merge \"Update to call new Skia APIs.\""
    },
    {
      "commit": "0a0454fdcc7aeac6e57f9466da8f39bcf5f3f6ec",
      "tree": "ee5502e236507ebf43a8b365bcf10466b49be61b",
      "parents": [
        "dd79334f7ecb39135058c2049cd933b4b930a3d1",
        "642421aa7f284817cc1a972a7f9c7a64696a0116"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 19:34:11 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 04 19:34:11 2014 +0000"
      },
      "message": "am 642421aa: am 5c31e487: Merge \"Introduce new UI_MODE_TYPE_WATCH and qualifier.\" into klp-modular-dev\n\n* commit \u0027642421aa7f284817cc1a972a7f9c7a64696a0116\u0027:\n  Introduce new UI_MODE_TYPE_WATCH and qualifier.\n"
    },
    {
      "commit": "642421aa7f284817cc1a972a7f9c7a64696a0116",
      "tree": "e51a5b2c212bd95c4a052fcbd6b0bb0f0fce4976",
      "parents": [
        "8f81d29558bb0c97187d5ae3a7ee696ec13b264a",
        "5c31e487c4577e1c47ee7c949325d6a13f0d462e"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 04 19:28:09 2014 +0000"
      },
      "message": "am 5c31e487: Merge \"Introduce new UI_MODE_TYPE_WATCH and qualifier.\" into klp-modular-dev\n\n* commit \u00275c31e487c4577e1c47ee7c949325d6a13f0d462e\u0027:\n  Introduce new UI_MODE_TYPE_WATCH and qualifier.\n"
    },
    {
      "commit": "6c191299a73388cd593809c0b66bafbd08fd2982",
      "tree": "86466cc5d46bb13d87ae71c906349957edd3a7fb",
      "parents": [
        "8db6d9af58b9b81dbd764acd3f6a379afb539bf6"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 03 16:37:27 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 04 15:21:53 2014 -0400"
      },
      "message": "Introduce new UI_MODE_TYPE_WATCH and qualifier.\n\nDefault ui mode to watch if we have FEATURE_WATCH.\n\nBug:13395758\nChange-Id: Ie5ff95de60e69e91ad3612c7d2f1fca7f49061bd\n"
    },
    {
      "commit": "cc11f15f76a62ded3e403cb2bc818c6aa5bf261c",
      "tree": "1df94766a0343820a8b542d3a79705a33d9fcf59",
      "parents": [
        "35dec44394358bac2cdf31d5e8377687a1723476"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Mar 31 16:52:13 2014 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Apr 04 14:42:39 2014 -0400"
      },
      "message": "Update to call new Skia APIs.\n\nI816129d49c0118453222916f3c818eccac33663d merges a new version of\nSkia that updates various APIs. Call the new ones.\n\nSkBitmap::copyTo now takes an SkColorType instead of an\nSkBitmap::Config, so do the conversion with\nSkBitmapConfigToColorType or use the enum when it makes sense.\n\nCall SkImageDecoder::decodeSubset instead of (deprecated)\nSkImageDecoder::decodeRegion.\n\nOverride SkCanvas::ClipVisitor::clipRRect in ClipCopier.\n\nIn Canvas::clip calls, call SkCanvas::isClipEmpty(), which was\npreviously called inside the clip call, to determine the return value.\n\nFor various SkPaint effects, call the new factories (as the constructors\nhave been made protected).\n\nImplement SkJavaOutputStream::bytesWritten(), overriding a new pure\nvirtual function on SkWStream.\n\nUpdate Matrix calls to always return true (since SkMatrix calls no\nlonger return a value).\n\nDepends on I816129d49c0118453222916f3c818eccac33663d (skia).\n\nChange-Id: I5cdcea827ebff587df0bbddc0965e3e0fbf48002\n"
    },
    {
      "commit": "49e6c73913e9bee58ea5e3984be151ee8e033163",
      "tree": "db10cba6a686b5a2435eee07b18dfb285b2cb972",
      "parents": [
        "8754b73bf81aa0164f3e2a1a429ba0fda39202de"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 31 12:34:11 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Apr 02 18:38:25 2014 -0700"
      },
      "message": "Move most TransformationInfo properties to RenderNode\n\nThis change dedupes the various properties that were represented both\nin TransformationInfo, and RenderProperties on the native side.\n\nRenderNode (and its associated properties) are now permanently\nattached to a View in SW or HW. The native copy of these properties\nare their sole representation.\n\nAlpha to come in a later CL.\n\nAlso fixed issue with copying RenderNode\u0027s transform, and added\nsupport of deleting RenderNodes in software rendering.\n\nChange-Id: Ideb6e7f32b780e87aa1c32637c368356b3eee3a1\n"
    },
    {
      "commit": "0e2806b171f135de35153a106d18d86646f4d1c0",
      "tree": "43b3cd275b6f5b2e95a9ca46a076d2eaec23d1d8",
      "parents": [
        "af31a7d1cc26733f138119c43385aa86d0a3c04f",
        "3399ec317d8a318ca384036bc6fecf4656f1f118"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 21:07:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 21:07:25 2014 +0000"
      },
      "message": "am 3399ec31: am b386bfd7: am 89dddcc9: Merge \"Use default visibility for Snapshot::getLocalClip.\"\n\n* commit \u00273399ec317d8a318ca384036bc6fecf4656f1f118\u0027:\n  Use default visibility for Snapshot::getLocalClip.\n"
    },
    {
      "commit": "3399ec317d8a318ca384036bc6fecf4656f1f118",
      "tree": "b430abb72f38e7b93552778a3085ae110ca58e1a",
      "parents": [
        "744cf2b98f3f643380ab1db53e3d2216ecf9d872",
        "b386bfd791d77e24bcfe3261420f82b0a9d3851d"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 20:59:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 20:59:47 2014 +0000"
      },
      "message": "am b386bfd7: am 89dddcc9: Merge \"Use default visibility for Snapshot::getLocalClip.\"\n\n* commit \u0027b386bfd791d77e24bcfe3261420f82b0a9d3851d\u0027:\n  Use default visibility for Snapshot::getLocalClip.\n"
    },
    {
      "commit": "b386bfd791d77e24bcfe3261420f82b0a9d3851d",
      "tree": "f604f0148de764567de17e332ce0a34eeab7524c",
      "parents": [
        "ea9e5ecac1e5240370f0e3f998b9c8b159ee9320",
        "89dddcc948cb3e826bfddeefae73066849aba0fc"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 20:54:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 20:54:47 2014 +0000"
      },
      "message": "am 89dddcc9: Merge \"Use default visibility for Snapshot::getLocalClip.\"\n\n* commit \u002789dddcc948cb3e826bfddeefae73066849aba0fc\u0027:\n  Use default visibility for Snapshot::getLocalClip.\n"
    },
    {
      "commit": "744cf2b98f3f643380ab1db53e3d2216ecf9d872",
      "tree": "d4f18e2fe42df5d6a8667268c5de3babd49b2632",
      "parents": [
        "71ab4f4f48a9b8b485d80adf18d568ef6265b1e8",
        "4932a355f1594990173e0d9cd1fa38b8491c4a29"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 02 20:30:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 02 20:30:29 2014 +0000"
      },
      "message": "am 4932a355: Merge \"Misc. buttons aren\\\u0027t gamepad keys.\" into klp-modular-dev\n\n* commit \u00274932a355f1594990173e0d9cd1fa38b8491c4a29\u0027:\n  Misc. buttons aren\u0027t gamepad keys.\n"
    },
    {
      "commit": "4932a355f1594990173e0d9cd1fa38b8491c4a29",
      "tree": "896c2c94f96f5133397d36222e2f5b28e6582790",
      "parents": [
        "c013eaad574bcb40152d90105d6fbc82293cbb11",
        "f46b5d466dc423509bfa5352c038b14cac5496e8"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Apr 02 20:26:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 02 20:26:36 2014 +0000"
      },
      "message": "Merge \"Misc. buttons aren\u0027t gamepad keys.\" into klp-modular-dev"
    },
    {
      "commit": "65ba94f79d6e737c3e66c09032221999b2eb50d7",
      "tree": "338f21cc886e4c59247682a6a124a7863b02e744",
      "parents": [
        "17b1b8fe8c0c8f05f2077acc82428881bf591a78"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 12:45:57 2014 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Apr 02 13:26:33 2014 -0700"
      },
      "message": "Use default visibility for Snapshot::getLocalClip.\n\nThe method is in libhwui.so but used by libandroid_runtime.so\n(via android_view_GLES20Canvas.cpp). If the compiler decides not to\ninline this method, the linker won\u0027t be able to resolve the dependency\nwhen it has hidden visibility.\n\nThe problem is found when testing GCC 4.9.\n\nChange-Id: I3b4d096c7767f0bef0796886dfb2c5ba2ecff48c\n"
    },
    {
      "commit": "f46b5d466dc423509bfa5352c038b14cac5496e8",
      "tree": "48991affc17bbed7039efe797829e809ed190316",
      "parents": [
        "d08c864784b5d416805aee502e5294b0188a7bd8"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Apr 01 15:43:43 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Tue Apr 01 15:43:43 2014 -0700"
      },
      "message": "Misc. buttons aren\u0027t gamepad keys.\n\nBUTTON_[1-9] are intended to be misc. buttons so the kernel will\nassign them to non-gamepad devices.  As such, we shouldn\u0027t treat them\nas belonging to gamepads at all.\n\nBug: 13432364\nChange-Id: I9495760f2379e44785b9ce1cf018b6db7f6cb0f4\n"
    },
    {
      "commit": "0d1f634f4b5e1bb37aa51777efb6a68619488d01",
      "tree": "d936b60a47e95c58e7c47363b6e23cdc8b4df7d9",
      "parents": [
        "c75db8266b352ef3a7a6b76654f770d7a24d547a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 20:30:27 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 20:57:32 2014 -0700"
      },
      "message": "Add invokeFunctor\n\nChange-Id: I09e675d3e02e3e528642175ada00b2b17fab7652\n"
    },
    {
      "commit": "c75db8266b352ef3a7a6b76654f770d7a24d547a",
      "tree": "a39e68ee43ca2c325da94532f4eff3a80940bf13",
      "parents": [
        "903d6407b0f5fcf12373daadcce90aaad44a5491",
        "750ca6dbdb259aea0ca5b77380a9303e586ef3ea"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Sat Mar 29 01:41:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 29 01:41:50 2014 +0000"
      },
      "message": "Merge \"Remove kStatusInvoke \u0026 kStatusDraw\""
    },
    {
      "commit": "4669cfff1ed590087eade846aee8b4ef58f31739",
      "tree": "c395a1942cc7570add9036adbfb4d95998e8a0fb",
      "parents": [
        "f1354dd206a74e1475e8c1f8682dfd9d5e146f00",
        "d020fd33d147c88a9cda4976d2fa559e55b4ab03"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Sat Mar 29 00:59:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Mar 29 00:59:46 2014 +0000"
      },
      "message": "am d020fd33: Merge changes Ib18c99b9,I9f42eeb9 into klp-modular-dev\n\n* commit \u0027d020fd33d147c88a9cda4976d2fa559e55b4ab03\u0027:\n  Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE\n  Adds API for determining confirm and cancel keys.\n"
    },
    {
      "commit": "750ca6dbdb259aea0ca5b77380a9303e586ef3ea",
      "tree": "c24155dbc56810e618ee8a837470145d77aee38d",
      "parents": [
        "0e14f2d45557527242f27ce7de9027e6ccaa45d6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 16:33:18 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 16:43:15 2014 -0700"
      },
      "message": "Remove kStatusInvoke \u0026 kStatusDraw\n\n They are unused\n\nChange-Id: I44ecf1164dc6bc1b09438e733976d5a97a25f00e\n"
    },
    {
      "commit": "b265e2ca50b6ceb2fd2987ef1f7d063b1bde19ae",
      "tree": "c5dd068e025de701ebfdeacf00247368fbecb12a",
      "parents": [
        "08c96b5515f061f61e13b348f6022ce7c586e4c4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 27 15:50:09 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 28 14:43:22 2014 -0700"
      },
      "message": "Support shadows on the root RenderNode\n\nbug:13211941\n\nCleans up some of the RenderNode method naming\n\nAlso removes unnecessary clip/save/restores, clipping shadows\npredictably, as drawn by the parent, before drawing (and clipping,\netc.) the shadow casting child.\n\nChange-Id: I795115e1fb869bbbdd7be43e279b97490fecc7e0\n"
    },
    {
      "commit": "08c96b5515f061f61e13b348f6022ce7c586e4c4",
      "tree": "1644ff53adbf7fc55aecc2720faa9727d9d0de43",
      "parents": [
        "83ee4429f13896c82f3f29c8164888f1f6fe8309",
        "024433f89684e1f9cb7b15ade7c480c9346fbe4d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 28 18:00:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 28 18:00:03 2014 +0000"
      },
      "message": "Merge \"Disable shadow overdraw avoidance in the inverse clip case\""
    },
    {
      "commit": "024433f89684e1f9cb7b15ade7c480c9346fbe4d",
      "tree": "981c0a0fdaa0b70be66899855806c1ce879b579e",
      "parents": [
        "1dd9c53a40b7c147767c63e10a47eb5cb6f8e197"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 26 13:19:14 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 27 16:01:04 2014 -0700"
      },
      "message": "Disable shadow overdraw avoidance in the inverse clip case\n\nThe caster is effectivly transparent, so skip the optimization just as\nis done for alpha \u003c 1.0\n\nChange-Id: I3d294222adf0137e20c1fb5808313d487e92e0a8\n"
    },
    {
      "commit": "07b6c552e6243c4f69a9c07ed9a08df78ff6d25e",
      "tree": "c0d47b9ded4422dde56cf6e66d8c8af0fd4d252b",
      "parents": [
        "ca04d7185369073ca0a291f37ec3680037711d44",
        "668f0e38ef0277d55d3118af37e17b8c435df85c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 27 17:11:31 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 27 17:11:31 2014 +0000"
      },
      "message": "Merge \"Async drawing!\""
    },
    {
      "commit": "668f0e38ef0277d55d3118af37e17b8c435df85c",
      "tree": "d0703be6cce376c8a982d7c491445d2e94009375",
      "parents": [
        "bcad68ad80e5a44e5dc6988eddb8acabdc01a737"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 26 15:10:40 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 27 10:00:04 2014 -0700"
      },
      "message": "Async drawing!\n\nChange-Id: I7e728356f58af88174328a8c0b90d27b128bfe01\n"
    },
    {
      "commit": "ecd072161ec57ba8dfb26659511c0f6605601560",
      "tree": "5ed526d3b7f3a1c6532c90fca9bb57c8364e589a",
      "parents": [
        "afd8b17fa1fc15d06dc4ade7fc365e0a157c9b53",
        "22d074643ed0d010ebfdb0fca685d65eb2632e58"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 14:22:47 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 14:22:47 2014 +0000"
      },
      "message": "resolved conflicts for merge of 22d07464 to master\n\nChange-Id: Ic037261eedd6e224938c960d2b4597590c81ed9d\n"
    },
    {
      "commit": "22d074643ed0d010ebfdb0fca685d65eb2632e58",
      "tree": "46ed3de2ff7e9e33f5d5cc0861fa4e052fdc58e7",
      "parents": [
        "68d43e275efae8f7b83388ea6fdebbcf5cd1504f",
        "eaab4df0ddadf313ab6b3c832896003968525091"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:50:58 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:50:58 2014 +0000"
      },
      "message": "resolved conflicts for merge of eaab4df0 to klp-modular-dev-plus-aosp\n\nChange-Id: I871431e5a3ce45a33563ced845e044d37471689b\n"
    },
    {
      "commit": "eaab4df0ddadf313ab6b3c832896003968525091",
      "tree": "c115ced1c65039f3db6c0017d8a3d2b49a58f200",
      "parents": [
        "5b93685af37d840e7ef6d415bcfe8a8a4c004032",
        "cd3f60f30366a34b4499aab5a47b622069ba9cd6"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:36:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 27 12:36:10 2014 +0000"
      },
      "message": "am cd3f60f3: Merge \"AArch64: Make frameworks/base code more portable\"\n\n* commit \u0027cd3f60f30366a34b4499aab5a47b622069ba9cd6\u0027:\n  AArch64: Make frameworks/base code more portable\n"
    },
    {
      "commit": "f5df700e6ce056ebfa322314d970e52d6facc35a",
      "tree": "5a3e1f8dc1089601389509f54d2eef98ec2528a8",
      "parents": [
        "57f2764bf104b0fe7b5cd67ad5b2cae9bc8352ed"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Tue Mar 25 20:51:35 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 27 12:30:42 2014 +0000"
      },
      "message": "AArch64: Make frameworks/base code more portable\n\nChanges in this patch include\n\n[x] Use %zu for size_t, %zd for ssize_t\n\n[x] Some minor changes have been done to conform with\n    standard JNI practice (e.g. use of jint instead of int\n    in JNI function prototypes)\n\nChange-Id: Id1aaa7894a7d0b85ac7ecd7b2bfd8cc40374261f\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n"
    },
    {
      "commit": "1b10869f39978a864cfcc4efc73aefc312d8ed79",
      "tree": "2335d099d07547abf1c672bde9b51594bf4e8f1b",
      "parents": [
        "1e3c93975ee9c88284449406d49df2569f03f498"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Mar 19 11:51:26 2014 -0700"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Wed Mar 26 14:56:07 2014 -0700"
      },
      "message": "Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE\n\nAlso change MotionEvent.PointerCoords bit packing and unpacking\nmethods to be consistent with BitSets which are now used on the\nnative PointerCoords object.\n\nBug: 11480300\nChange-Id: Ib18c99b94ac555104c69eac526860aa501e89e03\n"
    },
    {
      "commit": "62828dfca2b009d42a414b60117d7f34034841f8",
      "tree": "5a0ad6c78c7a1ebca79d8e85fa0c5cdea76efcfa",
      "parents": [
        "564a0cd87c47ec53790c93197842969a6aab262c",
        "8c271ca63b62061fd22cfee78fd6a574b44476fd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 26 17:40:31 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 17:40:32 2014 +0000"
      },
      "message": "Merge \"Add private circular reveal API on View/RenderNode\""
    },
    {
      "commit": "8c271ca63b62061fd22cfee78fd6a574b44476fd",
      "tree": "e4b6a9d863aec687273be89373d2fc432cf29c30",
      "parents": [
        "5e44cadfd69c210c11f80cfe599718617a0e6676"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 25 10:33:01 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 25 16:03:48 2014 -0700"
      },
      "message": "Add private circular reveal API on View/RenderNode\n\nChange-Id: I139c8e12b354083149a665f6768f3f6931a8dd15\n"
    },
    {
      "commit": "e08f16695540009bed99a9b5c5147188edb496e6",
      "tree": "d858bde0c52475fa28adf9a9b69f1156eaea6612",
      "parents": [
        "42004973cde20cd883910db516571db220085c2c",
        "72cf99abdb6648f9346b72e0ef6d4da3c4dc9d17"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 25 21:23:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 21:23:52 2014 +0000"
      },
      "message": "am 72cf99ab: am 7e55b35a: am 4118480a: am 80470cdf: Merge \"Solve three memory leaks related to PatchCache\"\n\n* commit \u002772cf99abdb6648f9346b72e0ef6d4da3c4dc9d17\u0027:\n  Solve three memory leaks related to PatchCache\n"
    },
    {
      "commit": "72cf99abdb6648f9346b72e0ef6d4da3c4dc9d17",
      "tree": "0fc04f49626f8cf6c75b2ce164419d0ef1fc084b",
      "parents": [
        "1559e0b6a76e089cddc56708ccb177b0d37cc1ba",
        "7e55b35a603fe64e8db2c6050a1b778baaccd920"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 25 20:36:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 20:36:15 2014 +0000"
      },
      "message": "am 7e55b35a: am 4118480a: am 80470cdf: Merge \"Solve three memory leaks related to PatchCache\"\n\n* commit \u00277e55b35a603fe64e8db2c6050a1b778baaccd920\u0027:\n  Solve three memory leaks related to PatchCache\n"
    },
    {
      "commit": "7e55b35a603fe64e8db2c6050a1b778baaccd920",
      "tree": "6bc995b3561f9483f31973610842b54d4a0ca56d",
      "parents": [
        "63d61640d41b85b32ca7287235ca638731555b63",
        "4118480aabb4a7b332e289ebb71d2e4f9bc05d7e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 25 20:28:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 20:28:00 2014 +0000"
      },
      "message": "am 4118480a: am 80470cdf: Merge \"Solve three memory leaks related to PatchCache\"\n\n* commit \u00274118480aabb4a7b332e289ebb71d2e4f9bc05d7e\u0027:\n  Solve three memory leaks related to PatchCache\n"
    },
    {
      "commit": "4118480aabb4a7b332e289ebb71d2e4f9bc05d7e",
      "tree": "8a1efeafedb47d05ddef7a423f3af677db311cab",
      "parents": [
        "c1d863e7a4b55f8e583067eebaffc6686723d7ab",
        "80470cdf6c6995f4afe8d5e2c4b6e898625173fb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@android.com",
        "time": "Tue Mar 25 13:21:01 2014 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 25 13:21:01 2014 -0700"
      },
      "message": "am 80470cdf: Merge \"Solve three memory leaks related to PatchCache\"\n\n* commit \u002780470cdf6c6995f4afe8d5e2c4b6e898625173fb\u0027:\n  Solve three memory leaks related to PatchCache\n"
    },
    {
      "commit": "de898ff42912bd7ca1bfb099cd439562496765a4",
      "tree": "849b591a99a7e6a8fd790aedca3afff6f6b6eade",
      "parents": [
        "05f79758cd2688f89444a38baba326a0a1c1a438"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jan 29 18:20:45 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 25 12:09:56 2014 -0700"
      },
      "message": "Shared library resource support\n\nShared libraries can now export resources for applications\nto use.\n\nExporting resources works the same way the framework exports\nresources, by defining the public symbols in res/values/public.xml.\n\nBuilding a shared library requires aapt to be invoked with the\n--shared-lib option. Shared libraries will be assigned a package\nID of 0x00 at build-time. At runtime, all loaded shared libraries\nwill be assigned a new package ID.\n\nCurrently, shared libraries should not import other shared libraries,\nas those dependencies will not be loaded at runtime.\n\nAt runtime, reflection is used to update the package ID of resource\nsymbols in the shared library\u0027s R class file. The package name of\nthe R class file is assumed to be the same as the shared library\u0027s\npackage name declared in its manifest. This will be customizable in\na future commit.\n\nSee /tests/SharedLibrary/ for examples of a shared library and its\nclient.\n\nBug:12724178\nChange-Id: I60c0cb8ab87849f8f8a1a13431562fe8603020a7\n"
    },
    {
      "commit": "bcad68ad80e5a44e5dc6988eddb8acabdc01a737",
      "tree": "58d875af72f19dca8891360fac86b139c0464217",
      "parents": [
        "632717e60990b900e6d20dddd3935a57dd6a8fa6",
        "bfb07a03777af424e99bca1dac4c903aaf44e99d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 25 17:46:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 25 17:46:18 2014 +0000"
      },
      "message": "Merge \"Move where updateProperties is called\""
    },
    {
      "commit": "632717e60990b900e6d20dddd3935a57dd6a8fa6",
      "tree": "999edf1f61efca707eaa991c4ef1e4257d7b78c9",
      "parents": [
        "803d91b2b2eef42e1ebe088613f83e555d2bfd04",
        "5bf11bb98f5dbe278c257355d24c181237abd68c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 25 17:25:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 25 17:25:33 2014 +0000"
      },
      "message": "Merge \"Add missing null check\""
    },
    {
      "commit": "5bf11bb98f5dbe278c257355d24c181237abd68c",
      "tree": "14874c48911b4e0b275b6c026f8ec8a4c94e5db8",
      "parents": [
        "41c2d2cec3f46b28f535e9cd7f5b9da02280ccfe"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 25 10:22:09 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 25 10:22:09 2014 -0700"
      },
      "message": "Add missing null check\n\n Bug: 13635394\n mDisplayListData can be null, make sure\n to check for that before trying to walk through the\n children list in updateProperties\n\nChange-Id: I8d97b1656c1acf47b7c5df8a8771b0f30907261d\n"
    },
    {
      "commit": "bfb07a03777af424e99bca1dac4c903aaf44e99d",
      "tree": "a34ac04cc56a06ea54bc7010bb1169f71d9f355b",
      "parents": [
        "41c2d2cec3f46b28f535e9cd7f5b9da02280ccfe"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 21:00:18 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 21:00:18 2014 -0700"
      },
      "message": "Move where updateProperties is called\n\nChange-Id: I27da448996019094c44487ce28c5689d098d6535\n"
    },
    {
      "commit": "6056e1027107aaa15f51a5ed775ff14c6b664ca3",
      "tree": "1337c3e4d996bb3528f9c92531a95ce30fd860c1",
      "parents": [
        "557a93e104f1fec69ed05b2d0ff26c78bca4c5d6"
      ],
      "author": {
        "name": "Jens Gulin",
        "email": "jens.gulin@sonymobile.com",
        "time": "Tue Feb 04 17:38:02 2014 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Tue Mar 25 09:37:02 2014 +0900"
      },
      "message": "Solve three memory leaks related to PatchCache\n\nA Patch can be fairly large, holding bitmap data, but\nis also frequently leaked which adds to the severity.\nThe feature is used in many important processes such\nas Home, SystemUI and Chrome.\n\nThe following leaks are solved:\n\n1. The Patch itself was not always freed.\nPatchCache::removeDeferred() can mark patches to be\ncared for by PatchCache::clearGarbage(). But\nmCache.remove() would only destroy the container\nand the pointer, not the Patch object itself.\n\n2. The vertices stored in the Patch at Patch::createMesh()\nwould always leak. The empty/default destructor in Patch\nwould not properly destroy \"vertices\" since it\u0027s just a\npointer.\n\n3. A BufferBlock that\u0027s added to the mFreeBlocks\nin PatchCache could leak. The leak happened when a\npatch later needed the entire free block, because the\nobject was removed from the list but never deleted\nin PatchCache::setupMesh().\n\nChange-Id: I41e60824479230b67426fc546d3dbff294c8891f\n"
    },
    {
      "commit": "78ce1c5247de60a4247d81d168fd9fa97c7591d0",
      "tree": "524894434a0cc520b137b7d1877f5d8c2479a1c7",
      "parents": [
        "41c2d2cec3f46b28f535e9cd7f5b9da02280ccfe"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 15:43:49 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 15:43:49 2014 -0700"
      },
      "message": "Add back clobbered cleanup\n\nChange-Id: I418b612710850bbc3033c4bd0143fb0f0befd2cb\n"
    },
    {
      "commit": "d0a0b2a3140bfb1819a116413ce9d81886697a07",
      "tree": "0040f371f29280deb83d1fd55f2db86e30d58c37",
      "parents": [
        "de02cdc1e95cea19b2ddef26d60ad1d109bd507c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 20 16:28:56 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 15:31:34 2014 -0700"
      },
      "message": "Add stagingProperties\n\nChange-Id: Ic7de551f8843fd70a77f738e33028e25c020bb3c\n"
    },
    {
      "commit": "b49f446c98096c4790a11d9b5bc83a4e585278c9",
      "tree": "04be3e4844f1f39df2b9f598d5e50d6e969e1080",
      "parents": [
        "ac6e97a5a69738a1d32794fc76ca639201639501"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 12:44:20 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 24 11:37:06 2014 -0700"
      },
      "message": "Rework Outline API, remove isolatedZVolume remnants\n\nChange-Id: I30c2fe832dcb98fa6329b1a595b3d3aafbdcad6b\n"
    },
    {
      "commit": "32ff540c74623d92a8bf1e0a0ae3153a7a6d13e4",
      "tree": "f4fae2487054de585d465a9a77f3f38539d64c8b",
      "parents": [
        "63f4e55ba5df622a47ea9d60ef0626995f3d677a",
        "af6f7ed8dd4288a41d0a07a1f0f0be7d6d035b33"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Mar 20 22:30:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 20 22:30:59 2014 +0000"
      },
      "message": "Merge \"Early rejection on shadows which are outside of the clip bound.\""
    },
    {
      "commit": "af6f7ed8dd4288a41d0a07a1f0f0be7d6d035b33",
      "tree": "1004e5d8a1120b83102fd82e0e9484f410c9d319",
      "parents": [
        "31dc8f701fb14e185bf1c1b35d68bd7d1a42a54a"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Tue Mar 18 17:25:49 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Mar 20 15:25:47 2014 -0700"
      },
      "message": "Early rejection on shadows which are outside of the clip bound.\n\nAll the computations are estimated using bounding box.\nTODO: Spot shadow could have more accurate but also more expensive methods, we need\nmore experiments to decide.\n\nChange-Id: I9c10c419576cee55daf0f9f278b0db78cb847447\n"
    },
    {
      "commit": "09cb89414062b5b6b8830307797c83166e1b07d6",
      "tree": "7a61c11a6612e0a2c5a3905dc8b024c321797564",
      "parents": [
        "db2895e97745c68924b831701a2bf76e13a5025a",
        "11e0ead8118d97d0e76a98065a4811fdb01b2db2"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 20 16:33:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 16:33:25 2014 +0000"
      },
      "message": "am 11e0ead8: am 69e58e44: Merge \"Add idc config option for handling key repeats\" into klp-modular-dev\n\n* commit \u002711e0ead8118d97d0e76a98065a4811fdb01b2db2\u0027:\n  Add idc config option for handling key repeats\n"
    },
    {
      "commit": "11e0ead8118d97d0e76a98065a4811fdb01b2db2",
      "tree": "feb083741700046ca0e51fb4c492c2bd58f1b824",
      "parents": [
        "4eefde23de23a5e9145a634e843964f6f6eaa6bd",
        "69e58e446bc2a030ae423d650e60dbfe317331e6"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 20 16:23:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 16:23:50 2014 +0000"
      },
      "message": "am 69e58e44: Merge \"Add idc config option for handling key repeats\" into klp-modular-dev\n\n* commit \u002769e58e446bc2a030ae423d650e60dbfe317331e6\u0027:\n  Add idc config option for handling key repeats\n"
    },
    {
      "commit": "db2895e97745c68924b831701a2bf76e13a5025a",
      "tree": "3665526fc7a7dc72aa6f529d2f330c85725c8863",
      "parents": [
        "1d6c2573d4b2824511354d651d7350df327f454f",
        "4eefde23de23a5e9145a634e843964f6f6eaa6bd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 16:05:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 16:05:02 2014 +0000"
      },
      "message": "am 4eefde23: am 29f00c9f: am 7c9bd98a: am 89513ee5: Merge \"Fix projection offset caching - DO NOT MERGE\" into klp-dev\n\n* commit \u00274eefde23de23a5e9145a634e843964f6f6eaa6bd\u0027:\n  Fix projection offset caching - DO NOT MERGE\n"
    },
    {
      "commit": "4eefde23de23a5e9145a634e843964f6f6eaa6bd",
      "tree": "9ac167bac0e7c6d02f18fffb5222824ba82f6494",
      "parents": [
        "aebe3b6ca49f232bb0c8733256407680bb56b6cb",
        "29f00c9f35d8565bb3e6b8a2526cbb237db6446a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 15:47:34 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 15:47:34 2014 +0000"
      },
      "message": "am 29f00c9f: am 7c9bd98a: am 89513ee5: Merge \"Fix projection offset caching - DO NOT MERGE\" into klp-dev\n\n* commit \u002729f00c9f35d8565bb3e6b8a2526cbb237db6446a\u0027:\n  Fix projection offset caching - DO NOT MERGE\n"
    },
    {
      "commit": "69e58e446bc2a030ae423d650e60dbfe317331e6",
      "tree": "19d5fab296fd6478aaf9c094c4fbf1cd132584f1",
      "parents": [
        "29f00c9f35d8565bb3e6b8a2526cbb237db6446a",
        "39ca0522928fe134c1164a091806547e4ef1ed0b"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Mar 20 01:55:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 20 01:55:16 2014 +0000"
      },
      "message": "Merge \"Add idc config option for handling key repeats\" into klp-modular-dev"
    },
    {
      "commit": "29f00c9f35d8565bb3e6b8a2526cbb237db6446a",
      "tree": "6afe675a19d1a07a6013db614a849bde14466789",
      "parents": [
        "abde0aaa7958976b8f3a66e348d6a5152b0d838e",
        "7c9bd98a4bb0aa6954d5f612c197d03f309980f0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Mar 20 01:14:44 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 20 01:14:44 2014 +0000"
      },
      "message": "am 7c9bd98a: am 89513ee5: Merge \"Fix projection offset caching - DO NOT MERGE\" into klp-dev\n\n* commit \u00277c9bd98a4bb0aa6954d5f612c197d03f309980f0\u0027:\n  Fix projection offset caching - DO NOT MERGE\n"
    },
    {
      "commit": "c5dc251e2219cc3e96c3c91a3c3ff4a120e21912",
      "tree": "e63e1bf555d6699b32803d3f98d56c8de2af4ac3",
      "parents": [
        "87c28e27c5c5ba7b8ad2944d299b05678e2ae87f",
        "113e0824d6bddf4376240681f9cf6a2deded9498"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 19 23:47:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 19 23:47:14 2014 +0000"
      },
      "message": "Merge \"Move RenderNode to own file\""
    },
    {
      "commit": "113e0824d6bddf4376240681f9cf6a2deded9498",
      "tree": "2f69dbe16fef8fa7ccae1d1fe2ee68e1c162d062",
      "parents": [
        "db62c232b953fd882a8f55daf736ae4098e8f278"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 18 09:22:59 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 19 16:40:04 2014 -0700"
      },
      "message": "Move RenderNode to own file\n\nChange-Id: I9380d161fd3ddd7b569c262dd8e7aa0c96151b1e\n"
    },
    {
      "commit": "5d39a77992ba6573fbc0cd4d85e0390bb5feb637",
      "tree": "88219a1ba621772b5f643c202d48e994040cef97",
      "parents": [
        "f260ed09263d60ff941225e31e22d344afd90c0f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 29 13:00:33 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 19 20:09:04 2014 +0000"
      },
      "message": "Fix projection offset caching - DO NOT MERGE\n\nbug:13214038\n\nBecause the caching of projection matrix didn\u0027t account for changes in\nthe offset flag, the flag could be ignored. Now we use both to verify\nthat the cached matrix can be used.\n\nChange-Id: I193b94eaf0b98f046a6484f0866c3d25048653fd\n(cherry picked from commit d04a6b15f74035fd2068f34225825b55e94521f4)"
    },
    {
      "commit": "bd6e460b761c51c11adfea9a9ce4e5e7e95caa07",
      "tree": "110b02b882b33bd8aebb299c937bd66884754b75",
      "parents": [
        "7e9e30599439a15c9a08206c10ef8b9d164e695b",
        "28c3ea018771562a9150f30c6a088e5bf7502972"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Mar 19 19:59:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 19 19:59:47 2014 +0000"
      },
      "message": "Merge \"Get rid of useless code\""
    },
    {
      "commit": "7e9e30599439a15c9a08206c10ef8b9d164e695b",
      "tree": "89b5317c419da1d2c072202ff27af1381e77fbcc",
      "parents": [
        "9eed0c624e468fc8f50fb4fc9c0940fb6d727e37",
        "9ca25502c05854288733ee5142e8bf6594821f83"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 19:58:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 19:58:00 2014 +0000"
      },
      "message": "am 9ca25502: am 48250e14: am 9a09a523: am 0b472ae1: Merge \"androidfw: resolve 64-bit build issues\"\n\n* commit \u00279ca25502c05854288733ee5142e8bf6594821f83\u0027:\n  androidfw: resolve 64-bit build issues\n"
    },
    {
      "commit": "9ca25502c05854288733ee5142e8bf6594821f83",
      "tree": "976c662c18c55c246a7da14375498f00f6ee5310",
      "parents": [
        "6afcecdc15b0baec1398e344f90666e13b8e337c",
        "48250e141dc738578f6957f86ac841f3cb522057"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 19:52:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 19:52:02 2014 +0000"
      },
      "message": "am 48250e14: am 9a09a523: am 0b472ae1: Merge \"androidfw: resolve 64-bit build issues\"\n\n* commit \u002748250e141dc738578f6957f86ac841f3cb522057\u0027:\n  androidfw: resolve 64-bit build issues\n"
    },
    {
      "commit": "48250e141dc738578f6957f86ac841f3cb522057",
      "tree": "090934e3407ad12512fa19768c5bebeae4f8e13c",
      "parents": [
        "2fb4a6bb9eee5e99fee4fae2949f48e839d749d7",
        "9a09a5236529962afbaba9893e5eaf72bd6621b4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Mar 19 19:47:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 19:47:02 2014 +0000"
      },
      "message": "am 9a09a523: am 0b472ae1: Merge \"androidfw: resolve 64-bit build issues\"\n\n* commit \u00279a09a5236529962afbaba9893e5eaf72bd6621b4\u0027:\n  androidfw: resolve 64-bit build issues\n"
    }
  ],
  "next": "9a09a5236529962afbaba9893e5eaf72bd6621b4"
}
