)]}'
{
  "log": [
    {
      "commit": "9bbe787822502e8c09d9abe963e6539647bea346",
      "tree": "e8490849a1ba6013ed2cd2a7a4d37cdbd06a0b4f",
      "parents": [
        "04620c98a7470109700e93caaa84b44ff23dfb5e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 24 13:52:04 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 24 13:52:45 2017 -0800"
      },
      "message": "Finish font support for AAPT\n\nTest: make CtsContentTestCases in cts/tests/tests/content\nChange-Id: Ie1e08deeef56611de261bd12f25f53c88068950e\n"
    },
    {
      "commit": "83b4f7daba75e73ca9aad6033ed513902dc3b5bb",
      "tree": "4090a3c3fc497aeb26197cca1fbcc9807197e640",
      "parents": [
        "1f9f11007db09bbbc156965e77b10de82a32a544"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 20 13:19:27 2017 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 20 13:19:27 2017 -0800"
      },
      "message": "AAPT: Add support for \u0027font\u0027 resource type\n\nChange-Id: I5bc459e34715779ab3b1c415f40f592a4ccbb96e\nTest: manual\n"
    },
    {
      "commit": "f45d261928ec69f4647f005e3cfa74a2aeddb4c2",
      "tree": "57345806ecf89dd8b72e1dae92e87a28a2e0a9c0",
      "parents": [
        "ba8556e53e7cb1a76f1d8ee262427690c23bcf8e",
        "b62cc13c7c427b9381c9c7ffe3dcd95662698108"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 23 01:17:34 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 23 01:17:34 2016 +0000"
      },
      "message": "Merge \"aapt: remove duplicate definition of ZD\" am: ac2d839d7c am: 3efa1e7c17 am: e43f2d4ef5\nam: b62cc13c7c\n\nChange-Id: Ieb593095a6bdc1842b95863fa2cf08ff1fb0669f\n"
    },
    {
      "commit": "b62cc13c7c427b9381c9c7ffe3dcd95662698108",
      "tree": "3312d2d2ecbbc1fabe709c794ec83258d0633b6b",
      "parents": [
        "c1f00b916fd4a04ebcdfc86b243dddfecbacb878",
        "e43f2d4ef5516a0bb87a0f50bf438da8f5619a2a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 22 23:04:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 22 23:04:06 2016 +0000"
      },
      "message": "Merge \"aapt: remove duplicate definition of ZD\" am: ac2d839d7c am: 3efa1e7c17\nam: e43f2d4ef5\n\nChange-Id: I71e7bfd44396aa2a7d79ba983bcc71d7684a36c1\n"
    },
    {
      "commit": "281386df645025b497950c8b4f2e87c6bf570777",
      "tree": "f85a7254a900e70e6b7315f4cca3d3f8e88fdd48",
      "parents": [
        "9c08f6bb827a7980bf8a8d0f5b9c1d7342e70e86"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 12:55:35 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 12:56:21 2016 -0700"
      },
      "message": "aapt: remove duplicate definition of ZD\n\nZD and ZD_TYPE are set by utils/Compat.h, remove them from\nStringPool.cpp and Resource.cpp.\n\nTest: m -j native\nBug: 31492149\nChange-Id: I6154e4598dd1f279e348ef6c0b32d756464bda8a\n"
    },
    {
      "commit": "00e7ebbe1ae4ff23d7e3469435cb7f9aabcd7a04",
      "tree": "9964f3b70fcc3606d1acef68ac66e9ce64a0ccad",
      "parents": [
        "da872974970bdad5b9828407c73c6b1d38d784e2",
        "9e8da4a476d1a52d4c287747b5e1b80f61681c15"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 15 23:33:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 15 23:33:01 2016 +0000"
      },
      "message": "AAPT: Fix use-after-free error am: 193ed74c2d am: 646f2d9c33\nam: 9e8da4a476\n\nChange-Id: I591fd51bf456cd42fe8c633de8924a9f2c844866\n"
    },
    {
      "commit": "9e8da4a476d1a52d4c287747b5e1b80f61681c15",
      "tree": "415c89cc359a913198e11d65441b64a92149b472",
      "parents": [
        "f0cbd6244c2cd9767be7ac2360e1e3a762ca8420",
        "646f2d9c33677ab30f93011ddf575bb9f9c1a02d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 15 23:22:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 15 23:22:04 2016 +0000"
      },
      "message": "AAPT: Fix use-after-free error am: 193ed74c2d\nam: 646f2d9c33\n\nChange-Id: If9fe7a52e62ae6b2900aa187996b4b785894ab03\n"
    },
    {
      "commit": "193ed74c2d9228368941de948fe03e05ca7fd3e3",
      "tree": "0f24caef0185907b0cfd9843d5c8a3b37167e313",
      "parents": [
        "58635e74edd5c5424ae22d72e6326d2ac89983bd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 15 14:19:46 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 15 14:22:36 2016 -0700"
      },
      "message": "AAPT: Fix use-after-free error\n\nRe-order deletion of ResXMLTree and the Asset object\nit iterates over.\n\nBug:30844391\nChange-Id: Ied033d0a8f93343006228a2054c6d0f42bb4717a\n"
    },
    {
      "commit": "84717d4118cff0790aecd8365029200e36a47bba",
      "tree": "341d9323e8ab24bf4809d6dc6cacec723b8d9d2a",
      "parents": [
        "2de53cbfae1dd609d6f9561eef8423c4ee811121",
        "c76aa692075acfef74349185d86062bbfec5a8c0"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 12 19:35:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 12 19:35:08 2016 +0000"
      },
      "message": "resolve merge conflicts of 17bd236 to stage-aosp-master am: b3d46b44a3\nam: c76aa69207\n\nChange-Id: I6bb066d131dde297612c5dcbf5051f4964e62a8b\n"
    },
    {
      "commit": "b3d46b44a399ba0a9b14caac8603db15089ab55b",
      "tree": "94e2f4c534e4ae9b80dce102aa1f1b3fce89ac5c",
      "parents": [
        "ed935c32f478229220a90442da0af3c3d3fc6230",
        "17bd236b4b6b78c32a187649aa4abcf94e5951c3"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 12 11:35:17 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 12 11:44:16 2016 -0700"
      },
      "message": "resolve merge conflicts of 17bd236 to stage-aosp-master\n\nChange-Id: I08d4500aaa378b08d41e8d046c62101e08dbfba8\n"
    },
    {
      "commit": "8bd37ba458633ee7b2aeec0a7593817000aa84b2",
      "tree": "35336b2eadacdeeed7ed64b3bce40cf008a97197",
      "parents": [
        "d0197ac3402e5d85324db4230407115ddec8011a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 14:15:30 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 11 15:20:10 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in aapt and aapt2.\n\n* Add explicit keyword to conversion constructors.\n* Add NOLINT(implicit) comments for implicit conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\n* Use const reference type to avoid unnecessary copy.\nBug: 30413862\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: Id6d21961f313a1ad92b15a37fdaa5be9e8ab48e1\nMerged-In: Id6d21961f313a1ad92b15a37fdaa5be9e8ab48e1\n"
    },
    {
      "commit": "9b8528fee4eed35b8e887ded0851d08eb2b10db6",
      "tree": "36df1cee89b3689454e6b09a6bfa5eabfb3214b1",
      "parents": [
        "7310353aeb771c109e5aea2c5415fa502eb13a7b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 14:15:30 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Aug 11 15:16:41 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in aapt and aapt2.\n\n* Add explicit keyword to conversion constructors.\n* Add NOLINT(implicit) comments for implicit conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\n* Use const reference type to avoid unnecessary copy.\nBug: 30413862\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: Id6d21961f313a1ad92b15a37fdaa5be9e8ab48e1\n"
    },
    {
      "commit": "f580d91dabc443301e2adcfc74509bec9b1960ff",
      "tree": "c0d94140e92d3b6663028d85eca76c364eb67967",
      "parents": [
        "554881712c6c74d7dcffec3061ccc50371e9c468"
      ],
      "author": {
        "name": "Ivan Gavrilovic",
        "email": "gavra@google.com",
        "time": "Tue Jul 19 12:03:33 2016 +0100"
      },
      "committer": {
        "name": "Ivan Gavrilovic",
        "email": "gavra@google.com",
        "time": "Wed Jul 20 15:38:48 2016 +0100"
      },
      "message": "Aapt main dex proguard rules - always keep application\n\nAapt with -D option was not keeping the application and instrumentation\nsubclasses, which were instead handled by mainDexClasses.rules. Instead,\ninclude them in the aapt -D output.\n\nChange-Id: Ia3b89fc2edd45d379c4d06f0bf674716646fcb3d\n"
    },
    {
      "commit": "526d73be4a3a2714fa6112769e16fb6cd0194451",
      "tree": "5b1f6862bed22be84c5547ad0bb2b2c317604b45",
      "parents": [
        "699e1bc74bb00d81b9680c826828678847caf205"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 18 17:01:14 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 18 17:07:41 2016 -0700"
      },
      "message": "AAPT: Don\u0027t keep processing files that failed to be added\n\nAAPT will continue ahead without reporting an error if a file\nfailed to be added to the ResourceTable. This would cause crashes\nlater when the file was assumed to be present.\n\nBug:30200166\nChange-Id: Ieb2daf97ccf0345153b6f4598d130a38d108c937\n"
    },
    {
      "commit": "feaf99fa1b7563f15dbd4211718a6cfb7a3cc3c8",
      "tree": "ea11ecd04a1908a46e0039a154f21a84453229b0",
      "parents": [
        "6f9f75e1063d282c933ede862fa7ea9371a2f310"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri May 06 17:16:06 2016 +0100"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon May 09 14:51:41 2016 +0100"
      },
      "message": "Stop emitting javadoc for @removed attributes.\n\nWe need the attributes to remain public because people might still be\nlinking against them, but we don\u0027t want them showing up in the\ndocumentation any more. Them showing up in the documentation also had\nthe side effect that it would accidentally mark the parent class of\nattributes as @removed, which was not intended.\n\nBug: 28663748\n\nChange-Id: I2f6eb09455fddf1086e6b24bc3bea5292e8e32b7\n"
    },
    {
      "commit": "682583c8902efbd33d4394131a2214ce94469535",
      "tree": "16b35113be2d432f6b58948de3b4f9045aace8e1",
      "parents": [
        "987609f5a7bd8e18559334aa0260e6614520af13"
      ],
      "author": {
        "name": "Rohit Agrawal",
        "email": "rohitagr@google.com",
        "time": "Thu Apr 21 16:29:58 2016 -0700"
      },
      "committer": {
        "name": "Rohit Agrawal",
        "email": "rohitagr@google.com",
        "time": "Wed Apr 27 19:50:55 2016 +0000"
      },
      "message": "AAPT: ProGuard config for components in main dex.\n\nCreate an analogue of \"aapt -G\" which outputs a proguard configuration\nthat keeps only components which need to be in the main dex.\n\nBug: 27383099\nBug: 28425556\n\nChange-Id: Ic18c8c563794ff27a5598a214111d1b446a005f1\n(cherry picked from commit 86229cb622fccde8ab8cbe85eead91a34313a708)\n"
    },
    {
      "commit": "6ba873faec0d165b74acfecf1533f58433d431e9",
      "tree": "8548bea7027c47e34a7ef03072821c82c536f022",
      "parents": [
        "cd4f7e12037acd16f500dc9a4be98e51fe58a11b"
      ],
      "author": {
        "name": "Rohit Agrawal",
        "email": "rohitagr@google.com",
        "time": "Thu Apr 21 16:29:58 2016 -0700"
      },
      "committer": {
        "name": "Rohit Agrawal",
        "email": "rohitagr@google.com",
        "time": "Wed Apr 27 11:26:55 2016 -0700"
      },
      "message": "AAPT: ProGuard config for components in main dex.\n\nCreate an analogue of \"aapt -G\" which outputs a proguard configuration\nthat keeps only components which need to be in the main dex.\n\nBUG: 27383099\n\nChange-Id: Ic18c8c563794ff27a5598a214111d1b446a005f1\n(cherry picked from commit 86229cb622fccde8ab8cbe85eead91a34313a708)\n"
    },
    {
      "commit": "9e1923d02fbc161abe107c814224c594cb4beb56",
      "tree": "215e20cc10d89e9466c6cdb1f297737653cca62b",
      "parents": [
        "59e04c6f92da584b322c87072f18e6cab4de4c60"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 11 14:17:25 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 11 14:17:25 2016 -0800"
      },
      "message": "AAPT: Remove warnings for public resources without comments\n\nThere are so many public resources that do not warrant comments\nthat having a warning that no one cares about is just producing\nlog spam.\n\nBug:21495023\nChange-Id: I84e3b39c7139ee67fb5cb711d5ab466d8f4ef2e0\n"
    },
    {
      "commit": "46736ec81c2a35d450b2c2d86ca3423cd92a225d",
      "tree": "47e971fdba33b805440a12bf58fdaca3df1281b0",
      "parents": [
        "3ee3b9d17b2aec84e791f3efa6b9453cab0d9c9b",
        "2edfa8c9b00cd0c0bd18738f75e0928394b99c76"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Sat Jan 16 02:25:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jan 16 02:25:22 2016 +0000"
      },
      "message": "Merge \"Make the appropriate cast to protect from mingw.\" am: dbf8c17bd2\nam: 2edfa8c9b0\n\n* commit \u00272edfa8c9b00cd0c0bd18738f75e0928394b99c76\u0027:\n  Make the appropriate cast to protect from mingw.\n"
    },
    {
      "commit": "ed811eeaea83453df91fa564287cd2f1b7cb705f",
      "tree": "cdb34fd8c9a3e3b8eb1efb8e1f05f43f7dc945dd",
      "parents": [
        "d736cba6e7f93a2e6df172a644e413f27a1dc939"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 15 12:16:06 2016 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Jan 15 12:16:06 2016 -0800"
      },
      "message": "Make the appropriate cast to protect from mingw.\n\nAs the comment at the top of the file says:\n\n    STATUST: mingw does seem to redefine UNKNOWN_ERROR from our enum\n    value, so a cast is necessary.\n\nBug: http://b/26523949\nChange-Id: I9d86cafdc47bbb9ce0e967cdde9315babc083432\n"
    },
    {
      "commit": "78713998f94a2cc2562aa0ae7761bbc563d8eafa",
      "tree": "753a994b7373774fafa2c4258cc9c53afa845c29",
      "parents": [
        "5f986095bed776c119d2f5452e0afeac3a437ea2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 07 14:02:15 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Dec 07 14:52:53 2015 -0800"
      },
      "message": "Specify private resource package in Android.mk\n\nPrivate resource package shouldn\u0027t be buried in some resource file.\nIt can now be specified on the command line via the Android.mk file.\n\nChange-Id: I9e3cb0bf54830d6b021077af271913306c024701\n"
    },
    {
      "commit": "07dfd2d8642f8a3630ca6429f740865a0c0bfdf7",
      "tree": "28a4aa59b021ddbf0f7bcf9890c98994fd16ade8",
      "parents": [
        "14ed6cf3e7bada4932314969000d384bed6d3f92"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 28 15:44:27 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 30 14:43:43 2015 -0800"
      },
      "message": "Implement AAPT Bundle format\n\nAAPT will scan XML files looking for the \u003caapt:attr\u003e XML tag.\n\n\u003c!-- @layout/bundle.xml --\u003e\n\u003cImageView xmlns:aapt\u003d\"http://schemas.android.com/aapt\"\u003e\n  \u003caapt:attr name\u003d\"android:src\"\u003e\n    \u003cvector android:pathData\u003d\"...\" ...\u003e\n    \u003c/vector\u003e\n  \u003c/aapt:attr\u003e\n\u003c/ImageView\u003e\n\nThe SINGLE child element of the \u003caapt:attr\u003e tag is extracted into its own top\nlevel resource. It is given a generated name.\n\nThe parent element of \u003caapt:attr\u003e is then given the resource attribute that was assigned\nto the `name\u0027 attribute. The value is set to a reference to the generated resource.\n\n\u003c!-- @layout/bundle.xml --\u003e\n\u003cImageView android:src\u003d\"@drawable/bundle_1.xml\"\u003e\n\u003c/ImageView\u003e\n\n\u003c!-- @layout/bundle_1.xml --\u003e\n\u003cvector android:pathData\u003d\"...\" ...\u003e\n\u003c/vector\u003e\n\nBug:22627686\nChange-Id: I8575fc4f739011402662fbf6b3db96df0012f598\n"
    },
    {
      "commit": "5b9847ca3fbcd0bb2528dd2b4c0b789e2d501684",
      "tree": "4d232086253525a00977075cf4aede5a42089287",
      "parents": [
        "9d0f7d44d5cc5322415f52f7ce03cc37a478b350"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 30 21:07:44 2015 +0000"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 30 21:07:44 2015 +0000"
      },
      "message": "Revert \"Implement AAPT Bundle format\"\n\nThis reverts commit 9d0f7d44d5cc5322415f52f7ce03cc37a478b350.\n\nCaused a build breakage when parsing some attributes.\n\nChange-Id: I89ca958b2f2e820d353648df8aadd90bbe8d8339\n"
    },
    {
      "commit": "9d0f7d44d5cc5322415f52f7ce03cc37a478b350",
      "tree": "1882cbfd2f9867e865444c95da0d79028d79ae60",
      "parents": [
        "1cffc196610891f6669c33404f3ff5b0232b7059"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 28 15:44:27 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 24 15:38:40 2015 -0800"
      },
      "message": "Implement AAPT Bundle format\n\nAAPT will scan XML files looking for the \u003caapt:attr\u003e XML tag.\n\n\u003c!-- @layout/bundle.xml --\u003e\n\u003cImageView xmlns:aapt\u003d\"http://schemas.android.com/aapt\"\u003e\n  \u003caapt:attr name\u003d\"android:src\"\u003e\n    \u003cvector android:pathData\u003d\"...\" ...\u003e\n    \u003c/vector\u003e\n  \u003c/aapt:attr\u003e\n\u003c/ImageView\u003e\n\nThe SINGLE child element of the \u003caapt:attr\u003e tag is extracted into its own top\nlevel resource. It is given a generated name.\n\nThe parent element of \u003caapt:attr\u003e is then given the resource attribute that was assigned\nto the `name\u0027 attribute. The value is set to a reference to the generated resource.\n\n\u003c!-- @layout/bundle.xml --\u003e\n\u003cImageView android:src\u003d\"@drawable/bundle_1.xml\"\u003e\n\u003c/ImageView\u003e\n\n\u003c!-- @layout/bundle_1.xml --\u003e\n\u003cvector android:pathData\u003d\"...\" ...\u003e\n\u003c/vector\u003e\n\nBug:22627686\nChange-Id: I31bc96aae30d38bfd0b16508d0f585de5fd88a07\n"
    },
    {
      "commit": "09ffc62fdb296cd98de6a253d501f3b07ed950da",
      "tree": "e641f89aa1dde04c52c0f7fe5d2ae4b292a97b10",
      "parents": [
        "0775a98e2095224d4b1618a4739543ce6e7f32ec",
        "eed585821a0dc55a18897773a52e2b5fdda78b55"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 11 01:48:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 11 01:48:05 2015 +0000"
      },
      "message": "Merge \"AAPT: Don\u0027t try to rewrite String constants when loading shared lib\""
    },
    {
      "commit": "eed585821a0dc55a18897773a52e2b5fdda78b55",
      "tree": "0fb398a0f8b7c51316ead63c5d38e4a60f55ff89",
      "parents": [
        "8f6d9af75bf604ff4ffcc9023ec5274e17ad8b01"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 10 18:43:34 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 10 18:43:34 2015 -0700"
      },
      "message": "AAPT: Don\u0027t try to rewrite String constants when loading shared lib\n\nBug:20138255\nChange-Id: Ieb6a31ee9afe0de3d1c99b21f78aa48fe07015c6\n"
    },
    {
      "commit": "84d4917c7560da364eb8fe79353e046807beb416",
      "tree": "209739704a79f211773a4ed6f08f78724cbe6bcc",
      "parents": [
        "cd3f875321a30f9cc21e631fa85f7fb12901b147",
        "12cf0f9c4cf8e6aed738da7349f556bd716ec09e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 17 21:15:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 17 21:15:40 2015 +0000"
      },
      "message": "am 12cf0f9c: am eba23aaa: Merge \"Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools.\"\n\n* commit \u002712cf0f9c4cf8e6aed738da7349f556bd716ec09e\u0027:\n  Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools.\n"
    },
    {
      "commit": "e17788ceff5c676f3783e5aa25d57a613e9f59db",
      "tree": "5c02145f2500a7c1021415980ab28706b6a0bffb",
      "parents": [
        "e3f0a881c20072a644317330ecf7409c81e96888"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 17 12:41:46 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 17 12:41:46 2015 -0700"
      },
      "message": "Replace HAVE_MS_C_RUNTIME with _WIN32 in frameworks/base/tools.\n\nChange-Id: Ideef62acbf53a442167c9b8038021affffef9e8a\n"
    },
    {
      "commit": "5892248580859620db90d5ef2e3c2f48531933fa",
      "tree": "1aa8d618ee303c56fba94e636d53f46db6e221c9",
      "parents": [
        "8a8ffd4e9b15a04d2af0909205658f08c76bd6b2"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Jun 01 17:59:41 2015 -0700"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Tue Jun 02 02:55:52 2015 +0000"
      },
      "message": "aapt: add option for stricter symbol generation\n\nAdds an option that prevents generating java symbols for string\nresources that don\u0027t have a default localization.\n\nBug: 21537397\nChange-Id: Ifafa942b24d5cdbed93651cde363e859be13d395\n"
    },
    {
      "commit": "1be312dfb02e86731da6ac54a39956db791f4978",
      "tree": "47a4996e85d477e1448a40a0ad486ce11cdbbd23",
      "parents": [
        "e8a3c320e658f6c7f8d1db3d8ad3c3f189c0f54e",
        "01f185633c1c12017731336e7f926fe398c69781"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 09 00:49:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 09 00:49:56 2015 +0000"
      },
      "message": "Merge \"Re-enable -Wall and -Werror that were lost in a merge\""
    },
    {
      "commit": "01f185633c1c12017731336e7f926fe398c69781",
      "tree": "ab1546ae2c5ba5756df24bbe4a5dc3629ac04a9c",
      "parents": [
        "dbd9a4b651aed25a50976ca0a68a979cc3f299fa"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 08 17:29:00 2015 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Apr 08 17:48:23 2015 -0700"
      },
      "message": "Re-enable -Wall and -Werror that were lost in a merge\n\n-Wall and -Werror were lost during a merge when they were added to\naaptCFLAGS instead of aaptCFlags.  Fix the typo, and the warnings\nthat crept in while it was disabled.\n\nChange-Id: Ib944b8d6149278e4f3861c1acac277bcd95cc7c2\n"
    },
    {
      "commit": "b12f2410c7bdbf90bd8a77b897846ee2763e3037",
      "tree": "47038fdc39ec8491b35a3ad455e456e92775bf02",
      "parents": [
        "64b0062a373102f83837faade20b469685758139"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 03 12:56:45 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Apr 03 12:56:45 2015 -0700"
      },
      "message": "Only Windows doesn\u0027t have %zd.\n\nChange-Id: I0e4b0fdc61641c5ecb724fd096bd2315dcf8ed4a\n"
    },
    {
      "commit": "915f44e1ee98f8c1d1b9ac0ac45ee05d656734a6",
      "tree": "3caa7f670f3927b6f7386aba249f3bfba1f606ca",
      "parents": [
        "8a23b3820d6f4d08b6b6ca3ffb0f85bd829f5e97",
        "503a4494d64d30f9b904b24a56fff986810da610"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 16 18:02:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 16 18:02:09 2014 +0000"
      },
      "message": "am 503a4494: am f1f179a7: Merge \"AAPT: Copy android:revisionCode to Splits\" into lmp-mr1-dev\n\n* commit \u0027503a4494d64d30f9b904b24a56fff986810da610\u0027:\n  AAPT: Copy android:revisionCode to Splits\n"
    },
    {
      "commit": "54de298c01ad79fe7f5850eb7aefc2542dd8d5da",
      "tree": "7e7b5001571265a66474e793bcd6c00ed81797d5",
      "parents": [
        "4df65bf1eb454814954421403da9f8b5fcb82180"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 16 09:16:26 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 16 09:16:26 2014 -0800"
      },
      "message": "AAPT: Copy android:revisionCode to Splits\n\nBug:18706179\nChange-Id: I669b56e0b67dd1bfda7749ef433b55af16851154\n"
    },
    {
      "commit": "455550d5869e6ca1433802b06e15d415b6f86e6b",
      "tree": "fa2596c4736f06d6bb534c8bd4ad8bffbc981c56",
      "parents": [
        "b46e9da64c51bcbfdd21b8e18850064eeb50d930",
        "72a6aeaca0712d9b72b9f773e2b72bb45ddd3cb8"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 03 20:42:22 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 03 20:42:22 2014 +0000"
      },
      "message": "am 72a6aeac: am 91ca64ea: Merge \"AAPT: Add pathMotion custom classes to Proguard Keep set\" into lmp-mr1-dev\n\n* commit \u002772a6aeaca0712d9b72b9f773e2b72bb45ddd3cb8\u0027:\n  AAPT: Add pathMotion custom classes to Proguard Keep set\n"
    },
    {
      "commit": "62c5df52e771e8cf490ee42e5d1516ec10170679",
      "tree": "ded8265fdf1fe1ef02b3dd94f0c6d1e1db2f4220",
      "parents": [
        "4c488ff931fe6b2fc79ef854febc98b4cb748402"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 02 16:19:05 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 02 16:23:59 2014 -0800"
      },
      "message": "AAPT: Add pathMotion custom classes to Proguard Keep set\n\nBug:18590044\nChange-Id: Ia5dbf55317d2cc89826316e8d10f031b5d340e57\n"
    },
    {
      "commit": "3550c6c5d67740b8ea77b2921146780fe340f34e",
      "tree": "a0b7e0943d0ac21b9fef5972302011ddaa2c152e",
      "parents": [
        "233d700efc5f308fe32acc5984b636860e4fc7b0",
        "f17611a29e3b0d0c7a5d28a1ce92682a2c097de6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 03 00:05:33 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 03 00:05:33 2014 +0000"
      },
      "message": "am f17611a2: am 130e30fe: Merge \"AAPT: Add custom transition classes to Proguard keep set\" into lmp-mr1-dev\n\n* commit \u0027f17611a29e3b0d0c7a5d28a1ce92682a2c097de6\u0027:\n  AAPT: Add custom transition classes to Proguard keep set\n"
    },
    {
      "commit": "4c488ff931fe6b2fc79ef854febc98b4cb748402",
      "tree": "83c4d20398ce41b7ade1bc1ea460e3e2a87c5fdf",
      "parents": [
        "92ad4dd017a13364b4001bdb04911202932f81c2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 02 14:50:21 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Dec 02 15:40:17 2014 -0800"
      },
      "message": "AAPT: Add custom transition classes to Proguard keep set\n\nBug:18590044\nChange-Id: Ib24831e669a09f0e6f32434081c0e2499702399c\n"
    },
    {
      "commit": "685d363d7a3e8833edc9368a3c59b69755e0ba29",
      "tree": "e04662b84ae8cc05665206336a148928c23b7cab",
      "parents": [
        "b3d260222fd003c8b537bb9f86625a200bd0f999",
        "fb96e54ba8d43a9f3162c92760e53ab61c7486ff"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 05 12:30:25 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 05 12:30:25 2014 -0800"
      },
      "message": "Merge commit \u0027fb96e54\u0027 into manualmerge\n\nConflicts:\n\ttools/aapt/Resource.cpp\n\nChange-Id: I4147c3550e9426f3429146eaeb16f10ba76b5b15\n"
    },
    {
      "commit": "3fd340028fc24198edb23ddf5eb5a0a100bab745",
      "tree": "489ffeed9998280d7402b74ed78bcc61d6cd8872",
      "parents": [
        "7fd12db350a341eb7a50759aa329be5281556928",
        "78be0498af2b7d5b6855701ef316f488e2de6f14"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 18:03:53 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 18:06:22 2014 -0800"
      },
      "message": "Merge commit \u002778be0498\u0027 into manualmerge\n\nConflicts:\n\tlibs/androidfw/ResourceTypes.cpp\n\ttools/aapt/Android.mk\n\ttools/aapt/StringPool.cpp\n\ttools/aapt/StringPool.h\n\nChange-Id: I9d69efdfb892032895ace12159d193304f02dc6c\n"
    },
    {
      "commit": "de7de47fef1dcaa26d553665d89e4d3792325c3f",
      "tree": "0d9551d2f037b841f325bbbd3ba27a309e9441b3",
      "parents": [
        "f7ffcaa7a478eaafc121e84b14dcaf2503dd5457"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 12:03:08 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 15:55:44 2014 -0800"
      },
      "message": "Add error checking to aapt for split generation\n\nChange-Id: Ica627db6a671f6a6c35f98bfd9c03598ffe103ce\n"
    },
    {
      "commit": "4bf58108d442b37ab4adf5ce3a4ecd63472ce254",
      "tree": "2b6359ad85861bf339e6a45813c599ab683fc7c3",
      "parents": [
        "e8d9810cdef5b3e288f54f42adc3205532343406"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 11:21:19 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 11:49:47 2014 -0800"
      },
      "message": "Fix issues that will be present in C++11\n\n- char16_t is a distinct type, so stay consistent\n  with it throughout the code base.\n- char16_t is defined as minimum size of 16 bits.\n  Since we mmap and cast data structures onto raw memory,\n  we need a precise definition (uint16_t), so we cast between\n  that (and static_assert that they are the same size).\n\nChange-Id: I869c32637543bbcfb39d2643e7d9df10d33acd3c\n"
    },
    {
      "commit": "11d3d1016bf7064f0232278eb0a798dfb33ab00f",
      "tree": "9125aaa3feb70687ed87a6c31c6016c060a49544",
      "parents": [
        "22cf018313fd2b427c16002a5a14354342b6075e",
        "9295a1354eb8220be9a0a40985253c6cdfac35c3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Oct 20 22:01:04 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 20 22:01:04 2014 +0000"
      },
      "message": "am 9295a135: am e40974d9: Merge \"Fix an overflow found by ASAN.\"\n\n* commit \u00279295a1354eb8220be9a0a40985253c6cdfac35c3\u0027:\n  Fix an overflow found by ASAN.\n"
    },
    {
      "commit": "d395f7913336417bcbbea740fcdc8589789626bc",
      "tree": "e1f6abf7cc604e064f9f1168e583d28752eec1b2",
      "parents": [
        "4cd671e4d27befdd576fa86051956c3cafad6808"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Oct 20 14:44:39 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Oct 20 14:45:55 2014 -0700"
      },
      "message": "Fix an overflow found by ASAN.\n\nSometimes len is 0.\n\nChange-Id: I031000188edc57663a5519b00cbbb751600d32f4\n"
    },
    {
      "commit": "87332a7109610d02ac7f5db6af99d3a11813d5c1",
      "tree": "19696ad7c6d520eeaff870636aa953a96adcc530",
      "parents": [
        "bee6dfe09d4381f9ddf666fd04012c662f31e7fd",
        "1dcc75b2dbaef7c3bb3410187bf38cabca0d1aea"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 01 22:03:58 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 01 23:26:06 2014 -0700"
      },
      "message": "resolved conflicts for merge of 1dcc75b2 to lmp-mr1-dev-plus-aosp\n\nChange-Id: I8f7cbd971beae3ab134195e612d705860665142f\n"
    },
    {
      "commit": "2412f84064c26b643c722ce914a97c4ec7776c69",
      "tree": "978c6b2e82fceee9153ffe612cfbb67e4b1b8c57",
      "parents": [
        "c46dbe8ac4748a0084b026524ad9e5ac44fb9fde"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 30 20:55:57 2014 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 01 16:18:06 2014 -0700"
      },
      "message": "Frameworks/base: Fix AAPT warnings\n\nTurn on -Wall -Werror. Fix warnings.\n\nChange-Id: I287fb3c1e851c654479bcf9ea8c73bd354a6b2a1\n"
    },
    {
      "commit": "dc03c9f292a93806a30a3a32009ff75ff8d419cc",
      "tree": "ae22bc693aced61651c28f48efc1ecc520333857",
      "parents": [
        "c2ece0002baf8731fedddc3f6053ef97863df497",
        "534b739118b6af4c4f27dc7a2d991f1b7d7c1e88"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Sep 22 19:45:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 22 19:45:27 2014 +0000"
      },
      "message": "am d4e5b601: am 37e3df38: am 1aa4db07: am 81745c51: Merge \"AAPT: Continuation of public/private attribute fix\" into lmp-dev\n\n* commit \u0027d4e5b601c7da5c662d8cf9c46177810fdeeed23f\u0027:\n  AAPT: Continuation of public/private attribute fix\n"
    },
    {
      "commit": "e572c011feabf6319ba836cf5bc4c3baa0ba6a85",
      "tree": "14a4e5461bbdcec4fb348663b8144efb28a796e4",
      "parents": [
        "82a2dd8efe48d3a4e04655f01329da857ace4b7d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 19 15:10:04 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Sep 22 10:51:20 2014 -0700"
      },
      "message": "AAPT: Continuation of public/private attribute fix\n\nXML files like layouts are now scanned and checked\nfor v21 attributes. If those kinds of attributes\nare found, then we remove them in the original\nversion and synthesize a new xml file under the\nv21 configuration.\n\nBug:17520380\nChange-Id: Icf984cb96134180a2e35349c1dbf2cef9a8f0bda\n"
    },
    {
      "commit": "0fa7511db2ec1e2326938f92262d00f23876307e",
      "tree": "79fe6be8c92ccf3acef647bbaa3ee85e6f890890",
      "parents": [
        "e83bc5932eba4af67e2cd7b76648ae26740b9b01",
        "a7d1a111c7176fdf853e53e74f6c7c7843c3c81c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Sep 19 19:08:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 19 19:08:50 2014 +0000"
      },
      "message": "am 9ee3ba23: am e7e9ad6d: am 863b1a90: am 19f9d54f: Merge \"Fix backwards compat problem with AAPT public attrs\" into lmp-dev\n\n* commit \u00279ee3ba23395bd1a13bbfd3fe523ee611a5ca001b\u0027:\n  Fix backwards compat problem with AAPT public attrs\n"
    },
    {
      "commit": "82a2dd8efe48d3a4e04655f01329da857ace4b7d",
      "tree": "9c5ec064aeba43cf4b27fd4bb36e31f0bf425f35",
      "parents": [
        "49c0e7375b237bc6eff8746ae91466ea6a660233"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Sep 17 18:34:15 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Sep 18 14:05:24 2014 -0700"
      },
      "message": "Fix backwards compat problem with AAPT public attrs\n\nAAPT has traditionally assigned resource IDs to public attributes,\nand then followed those public definitions with private attributes.\n\n--- PUBLIC ---\n| 0x01010234 | attr/color\n| 0x01010235 | attr/background\n\n--- PRIVATE ---\n| 0x01010236 | attr/secret\n| 0x01010237 | attr/shhh\n\nEach release, when attributes are added, they take the place of the private\nattributes and the private attributes are shifted down again.\n\n--- PUBLIC ---\n| 0x01010234 | attr/color\n| 0x01010235 | attr/background\n| 0x01010236 | attr/shinyNewAttr\n| 0x01010237 | attr/highlyValuedFeature\n\n--- PRIVATE ---\n| 0x01010238 | attr/secret\n| 0x01010239 | attr/shhh\n\nPlatform code may look for private attributes set in a theme. If an app\ncompiled against a newer version of the platform uses a new public\nattribute that happens to have the same ID as the private attribute\nthe older platform is expecting, then the behavior is undefined.\n\nWe get around this by detecting any newly defined attributes (in L),\ncopy the resource into a -v21 qualified resource, and delete the\nattribute from the original resource. This ensures that older platforms\ndon\u0027t see the new attribute, but when running on L+ platforms, the\nattribute will be respected.\n\nWe still need to address this problem in the platform moving forward,\nas this will only help us in the transition from pre L to L.\n\nBug:17520380\nChange-Id: Ia2a985798b50006c21c7c3431d30d9598f27cd91\n"
    },
    {
      "commit": "0bdcb84b55bd94843081ba45e95256e0655e99b7",
      "tree": "65378c8662d8263a98b596eaeb2052fad98de466",
      "parents": [
        "a28bfe3b9c9de05dd13dc73ebf140dae35cf567f",
        "48ce27b86dcc48d17410adedb1d612d461cff37c"
      ],
      "author": {
        "name": "Marcin Kosiba",
        "email": "mkosiba@google.com",
        "time": "Thu Sep 11 18:49:07 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 11 18:49:07 2014 +0000"
      },
      "message": "am 972628dc: am 5128e88e: Merge \"Don\\\u0027t use reflection when generating the onResourcesLoaded callback.\" into lmp-dev\n\n* commit \u0027972628dc8c63b02b75f9e976b3ab67e3913da1a8\u0027:\n  Don\u0027t use reflection when generating the onResourcesLoaded callback.\n"
    },
    {
      "commit": "0f3a5a6559a955ea20f1ae2d3e0995f3fa821c90",
      "tree": "d00b9872793dd4a7e4618f489edfd934b30660d7",
      "parents": [
        "a41c4bcc3dcac9e808c9d524e24454d132790e9a"
      ],
      "author": {
        "name": "Marcin Kosiba",
        "email": "mkosiba@google.com",
        "time": "Thu Sep 11 13:48:48 2014 +0100"
      },
      "committer": {
        "name": "Marcin Kosiba",
        "email": "mkosiba@google.com",
        "time": "Thu Sep 11 16:02:13 2014 +0100"
      },
      "message": "Don\u0027t use reflection when generating the onResourcesLoaded callback.\n\nBUG: 17466240\nChange-Id: I74608f3d8b3617281639a9d387face97e15fb616\n"
    },
    {
      "commit": "20ec4fa2294a91e5ff87839280904aba4a050cf6",
      "tree": "975bff3addce4062cb4227f7d96d1f36a16c7ed0",
      "parents": [
        "ddb605d4b2fa544bab69a72a288e578f2dd37f52",
        "6c585756b4c66058af85bb8d6524ffa94af79e62"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 22:25:54 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 22:25:54 2014 -0700"
      },
      "message": "resolved conflicts for merge of 6c585756 to lmp-dev-plus-aosp\n\nChange-Id: I5a25f2bac44ac5efcd7462af91005e09680a1d96\n"
    },
    {
      "commit": "f348c15ecf78e9d58b8238ffcf1d78a279e3a862",
      "tree": "fad413b2f2b3d849eaf83e607a8336683adb8b63",
      "parents": [
        "2a1ed46decbc8e21a39367a4b7770111392167c3"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:28:00 2014 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Mon Sep 08 18:30:08 2014 -0700"
      },
      "message": "Use char16_t for char things.\n\nWhen compiling in C++ mode, the compiler will complain about conversions\nfrom uint16_t to char16_t. Be consistent in using char16_t for strings.\n\nChange-Id: I052b6176ced635162920b31560052d9a64f92764\n"
    },
    {
      "commit": "ad2d07d2d98a46babb2a9472413fe9ce5080ca76",
      "tree": "40be93c366de29a74421b20cf8ae10c34ac34dfd",
      "parents": [
        "032402cff1fe5dc3a6b2adae3d4c13fb771cd91f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 27 16:21:08 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 27 18:28:49 2014 -0700"
      },
      "message": "Stamp platform version code into app Apks\n\nThe versionCode of theframework resources that an app is built against\ngets stamped inside an app\u0027s AndroidManifest.xml in the \u003cmanifest\u003e\ntag as \"platformBuildVersionCode\" and \"platformBuildVersionName\"\nattributes.\n\nBug:17207635\nChange-Id: Id573c3dffcbca38eec9c0eb3e89f4a547e3361d3\n"
    },
    {
      "commit": "1e466385d4a4f1acee080fa0fdf16cc8fd8ce7ca",
      "tree": "431c15e17f780767289dc5d3362d5d6d53ee3c18",
      "parents": [
        "5b8e5a7d4c930b42e1a3c2b3e67144b89d37efa2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 14:47:28 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 25 20:04:07 2014 -0700"
      },
      "message": "Have R classes generate their own reference rewrite logic\n\nChange-Id: I0e5b8311fc3479d966a49f9acf0d4c32a6a024d3\n"
    },
    {
      "commit": "27f69f4e06961fdecd1078b2292d764a157e5e1c",
      "tree": "24a4336bc223fd6380ba4fe0113d86edcee33a23",
      "parents": [
        "759f780af0b838316556de69049fb892f7b11ed5"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 21 13:19:12 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 21 13:59:46 2014 -0700"
      },
      "message": "AAPT: mipmaps should not end up in Splits\n\nMipmaps are never filtered, and so they will always\nend up in the base APK. Make sure they get omitted from\nany split.\n\nChange-Id: Id24b082bc9bd2d3f031a58bd0de4d30b4f0de7e0\n"
    },
    {
      "commit": "6a7d2757a936ee79b8dba2055139c8b71130c58e",
      "tree": "cf709a074ba681da1001e5394931d5442ad75979",
      "parents": [
        "223ddaa74d39cb0afabd2d3f3e4ae3ae4bdba572"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 07 21:26:53 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 21 11:00:09 2014 -0700"
      },
      "message": "Use the correct versionCode for Split APKs\n\nInsert the correct versionCode into the generated\nSplit AndroidManifest.xml.\n\nChange-Id: I0aec797b5a4ff8bd70f9394b18aee5ad292b37c8\n"
    },
    {
      "commit": "d3edfde51bd069a63e820282421d1a534fcf00ce",
      "tree": "9974d53c7ff2edc8577fd45066844de166fae7ed",
      "parents": [
        "4482e4bb8d1f5fe586b641bc3d6298dc7b8fee80"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 08 17:32:44 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Aug 15 15:53:35 2014 -0700"
      },
      "message": "Add FeatureGroup to PackageInfo\n\nFeatureGroups replace top-level FeatureInfo objects.\nFeatureGroups inherit top-level FeatureInfos but override\nthem if the feature names are the same.\n\nBug:16822121\n\nChange-Id: I80b2cb778a0fbcb4521efce986fba641e0914290\n"
    },
    {
      "commit": "6240840387335632fdc92d5d168f924e2f414dda",
      "tree": "c6e61afb94092c457c16c1c2c31b8cbb7277e4bf",
      "parents": [
        "d7c1fae12ef0b31c225ef130e6b06445b5af53a9"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 07 21:26:53 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 14 19:29:47 2014 +0000"
      },
      "message": "Ensure that split names are valid\n\nGenerate valid split names for resource splits.\nValidate split names for features.\n\nChange-Id: I3040438af0156778c2bd66ddeffdf62fe9dcc9fc\n"
    },
    {
      "commit": "ec64709ce042bcf456f9749e079e5f6981cfbbb9",
      "tree": "9ac12058f26bbf10fb5c2909de4149a3d25b77fc",
      "parents": [
        "c1bf40f5c46e5c7597d5cd3f80d8eda83773683e",
        "833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat Aug 09 01:48:35 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 09 00:40:15 2014 +0000"
      },
      "message": "Merge \"AAPT support for feature splits\" into lmp-dev"
    },
    {
      "commit": "e8e91925074479fc06310418b58b54f49d051801",
      "tree": "bf5753bdddb03e5f1ea205c4bfdcefb07be8dc38",
      "parents": [
        "1ca722548d23dccae13829a51cc4e23a1579b900"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Aug 06 17:41:08 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Aug 07 22:37:12 2014 +0000"
      },
      "message": "Have styleable indices be non-final for library projects\n\nInvoking aapt after merging resources from a library project\nmay yield a different ordering to styleable arrays, so have\nthe indices be non-final too.\n\nBug:16842410\n\nChange-Id: I0432bea03dc4312d5908a770fc70a11f0a1596ae\n"
    },
    {
      "commit": "833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1",
      "tree": "a57e8389088178108de1424faf41ea3bb87c934a",
      "parents": [
        "5c09e8ad5ee8e67976066366527ee58792551953"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 18 15:06:01 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Aug 04 18:48:14 2014 -0700"
      },
      "message": "AAPT support for feature splits\n\nThis change allows the developer to add a base package for\nwhich to build a feature split. The generated resource types\nwill begin after the base APK\u0027s defined types so as not\nto collide or override resources.\n\nMultiple features can be generated by first choosing an\narbitrary order for the features. Then for each feature,\nthe base APK and any preceding features are specified\nwith the --feature-of flags.\n\nSo with a base APK \u0027A\u0027 and features, \u0027B\u0027, and \u0027C\u0027,\n\u0027B\u0027 would be built with\n\naapt package [...] --feature-of A [...]\n\nand \u0027C\u0027 would be built with\n\naapt package [...] --feature-of A --feature-of B [...]\n\nChange-Id: I1be66e3f8df9a737b21c71f8a93685376c7e6780\n"
    },
    {
      "commit": "78a130144bdd047665f00782c481d31edb3e5fb7",
      "tree": "ef9e2bc4e6e7e962cd6a5dbb80ae7c6e1ab17e98",
      "parents": [
        "da96e137bcc8191c584ada7b5de31eaae92f244f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 15 20:18:34 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Jul 15 20:18:39 2014 -0700"
      },
      "message": "Mark resource-only splits as hasCode\u003dfalse.\n\nPackageManagerService now skips dexopt for split APKs that don\u0027t\ndeclare they have code.  Also surface more detailed error messages\nin logs.\n\nBug: 14975160\nChange-Id: Ie6078dba724815020cee59b7fc52317e88ca097a\n"
    },
    {
      "commit": "2cfc8482267707a671cbe4275ea8927c1aef991a",
      "tree": "da3f675b0c8c7b881317d2ab3515415ce784feb3",
      "parents": [
        "dbbf07a5c7f514f2168f236e1df3b2ca70d4ab2f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 09 16:10:16 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jul 09 16:12:49 2014 -0700"
      },
      "message": "Add versionCode to split manifest; compile.\n\nTo verify consistency at install time, all APK manifests must declare\nthe same package name and version code.  Also start compiling the\nmanifest, since versionCode is an attribute.\n\nBug: 14975160\nChange-Id: I2a1a769bd3dfde05b19563af5ca9b6c15a9c95ff\n"
    },
    {
      "commit": "f90f2f8dc36e7243b85e0b6a7fd5a590893c827e",
      "tree": "b2fb1fc49961c7c5f5c1712872ce2ffcfe550a89",
      "parents": [
        "c802c8cda234129c1ce3c7a939bd68a1d5813ce6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jun 06 14:27:00 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 18 19:20:08 2014 +0000"
      },
      "message": "Support multiple resource tables with same package\n\nIn order to support APK split features, the resource\ntable needs to support loading multiple resource\ntables with the same package but potentially new set\nof type IDs.\n\nThis adds some complexity as the type ID space changes\nfrom dense and ordered to potentially sparse.\n\nA ByteBucketArray is used to store the type IDs in\na memory efficient way that allows for fast retrieval.\n\nIn addition, the IDMAP format has changed. We no longer\nneed random access to the type data, since we store the\ntypes differently. However, random access to entries of\na given type is still required.\n\nChange-Id: If6f5be680b405b368941d9c1f2b5d2ddca964160\n"
    },
    {
      "commit": "eb490d6194bd79adbe144a1230fc126f4c180a2f",
      "tree": "bd9ef0f7c42da1df1f781d0db87fb8b386a32c72",
      "parents": [
        "a18d0acc1fa9822cac2c63ace318ec546603e142"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 06 19:43:42 2014 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jun 06 19:43:42 2014 -0700"
      },
      "message": "Add support for @SystemApi annotation to aapt.\n\nWhen aapt sees @SystemApi in the XML comment associated with a resource,\nit will now remove this tag from the comment (since is it not meaningful as\na Javadoc tag) and instead add an @android.annotation.SystemApi annotation\nto the declared type or member.  This enables easy downstream processing of\nthis annotation from generated code.\n\nChange-Id: If984908477648c0c90be52fdc955fbb891d99b28\n"
    },
    {
      "commit": "fab50875b98e8274ac8ee44b38ba42521bbbf1f9",
      "tree": "984277e1fadd3d5156bb6b05b21a1c23252b3a1b",
      "parents": [
        "57df4fd69e96c901ac0a027aa913f3f9086fbbf6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 16 14:40:42 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sun May 11 18:30:12 2014 -0700"
      },
      "message": "Add support for building split APKs\n\nBuild multiple APKs, each containing a disjoint subset\nof configurations. These can then be loaded into the device\nAssetManager and should operate as if they were never split.\n\nUse the idea of building multiple sets of files, where each\nset represents an APK. An ApkBuilder can place files\nin a set based on its configuration, but you can actually\nadd directly to a set, in the case of the resources.arsc and\ngenerated AndroidManifest.xml for splits.\n\nChange-Id: Ic65d3f0ac1bbd290185695b9971d425c85ab1de3\n"
    },
    {
      "commit": "9cf4b4a932d0bd84e0b7263540bd9d7174e8d2d0",
      "tree": "9750f889088ad4f14b3f73cc4c20776fc2103686",
      "parents": [
        "c3be45064863003d11387b2456c6957bc86d2fd2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 25 11:36:02 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Apr 25 11:37:23 2014 -0700"
      },
      "message": "Child nodes of \u003cpreference-headers\u003e now output proguard keep options.\n\nBug:13797600\nChange-Id: I55c71a2fcf7f9b4bdad684d5c235981c3a8bc1e9\n"
    },
    {
      "commit": "df08d1c24dbbc242978ee33416d1e54998f88915",
      "tree": "1f933fa448fcac027fb3b7bb0fc9cba1e273c510",
      "parents": [
        "c1970190549519acde6719c777f53611674058cb"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Tue Feb 25 12:28:08 2014 -0800"
      },
      "committer": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Tue Feb 25 13:42:12 2014 -0800"
      },
      "message": "Add --replace-version flag to aapt.\n\nMotivation: we\u0027d like to programmatically specify the version\nname/code (i.e. to include the build number from the build server).\nHowever, this means that we cannot specify version info in the\nAndroidManifest.xml file, as this takes precedence. Not doing so makes\nIDE use more difficult, as the IDE gets version code 0 and won\u0027t\ninstall over an existing non-IDE version unless you first force a\ndowngrade to an IDE build from the command line.\n\nThis flag allows us to specify a very high version code in the\nAndroidManifest.xml file, making IDE builds take precedence, while\nstill allowing us to override this info when performing command-line\n(official) builds.\n\nChange-Id: I5d01048698af5c26bdf19066c6cd4eca1115112a\n"
    },
    {
      "commit": "788fa41482b9d398591b7db8b0b01839029611ad",
      "tree": "ab94d4040351d79cca717a8b7e21fc6be5d0fcb5",
      "parents": [
        "48620f1d1b03e1cb4e0dce4999e0a4c2daf3a1b2"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 21 15:32:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 14 14:08:57 2014 +0000"
      },
      "message": "Extended locales in AAPT / AssetManager.\n\nSupport 3 letter language codes, script codes \u0026\nvariants. The bulk of the changes are related to\nthe implementation of command line filtering of\nlocales etc. The previous code assumed that the\nvalue of each \"axis\" (locale, density, size etc.)\ncould be represented by a 4 byte type. This is\nno longer the case.\n\nThis change introduces a new class, AaptLocaleValue\nwhich holds a (normalized) locale parsed from a\ndirectory name or a filter string. This class takes\nresponsibility for parsing locales as well as\nwriting them to ResTable_config structures, which is\ntheir representation in the resource table.\n\nThis includes minor changes at the java / JNI level\nfor AssetManager. We now call locale.toLanguageTag()\nto give the native layer a well formed BCP-47 tag.\nI\u0027ve removed some duplicated parsing code in\nAssetManager.cpp and replaced them with functions on\nResTable_config. The native getLocales function has\nbeen changed to return well formed BCP-47 locales as\nwell, so that the corresponding java function can use\nLocale.forLanguageTag to construct a Locale object\nout of it.\n\nFinally, this change introduces default and copy\nconstructors for ResTable_config to prevent having\nto memset() the associated memory to 0 on every\nstack allocation.\n\n(cherry-picked from commit 91447d88f2bdf9c2bf8d1a53570efef6172fba74)\n\nChange-Id: I1b43086860661012f949fb8e5deb7df44519b854\n"
    },
    {
      "commit": "91447d88f2bdf9c2bf8d1a53570efef6172fba74",
      "tree": "dc46e96130696c26e8fd3883227314ef5c0b7ad1",
      "parents": [
        "378c6775a62d9c461cde51f06c1b14bb014c78fd"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 21 15:32:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 10 15:50:16 2014 +0000"
      },
      "message": "Extended locales in AAPT / AssetManager.\n\nSupport 3 letter language codes, script codes \u0026\nvariants. The bulk of the changes are related to\nthe implementation of command line filtering of\nlocales etc. The previous code assumed that the\nvalue of each \"axis\" (locale, density, size etc.)\ncould be represented by a 4 byte type. This is\nno longer the case.\n\nThis change introduces a new class, AaptLocaleValue\nwhich holds a (normalized) locale parsed from a\ndirectory name or a filter string. This class takes\nresponsibility for parsing locales as well as\nwriting them to ResTable_config structures, which is\ntheir representation in the resource table.\n\nThis includes minor changes at the java / JNI level\nfor AssetManager. We now call locale.toLanguageTag()\nto give the native layer a well formed BCP-47 tag.\nI\u0027ve removed some duplicated parsing code in\nAssetManager.cpp and replaced them with functions on\nResTable_config. The native getLocales function has\nbeen changed to return well formed BCP-47 locales as\nwell, so that the corresponding java function can use\nLocale.forLanguageTag to construct a Locale object\nout of it.\n\nFinally, this change introduces default and copy\nconstructors for ResTable_config to prevent having\nto memset() the associated memory to 0 on every\nstack allocation.\n\nChange-Id: I899a56a9a182ee6be52b9389d1ae59266f5482e9\n"
    },
    {
      "commit": "7c4887f66bfa3dad16f8b03dc825ade96d7de130",
      "tree": "9ed404cd4e19d5a28b75fe132fae66bce4550276",
      "parents": [
        "e05b7b50e234e8ed2471f5ad96bb3d715067e9f3"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 17:32:37 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 31 13:47:27 2014 +0000"
      },
      "message": "Change ResourceType cookies to int32_t.\n\nAlso change the order of parameters in ResTable constructors\nto avoid ambiguity.\n\n(cherry picked from commit 00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1)\n\nChange-Id: I874c5d03c134dc3c331fba423b5280366296287c\n"
    },
    {
      "commit": "00b314436f4fdfada4bbf1e79ec12e9fa38aeaf1",
      "tree": "d1d6075692ef537e80d05255a13204a61f0f8a04",
      "parents": [
        "729b12c7a91f9caa65af77197cf6a8814a5a2051"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Jan 27 17:32:37 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 28 16:27:52 2014 +0000"
      },
      "message": "Change ResourceType cookies to int32_t.\n\nAlso change the order of parameters in ResTable constructors\nto avoid ambiguity.\n\nChange-Id: If7bfa1f640dddca39b9f26a3ce84081fa7b6e6e3\n"
    },
    {
      "commit": "b30296b5fda75bf383c7ab3f567eb41820747869",
      "tree": "1c6745cc073dcaa88b2840e24623079018c0135f",
      "parents": [
        "2675f769673f69b0661ddee346292f25cb30a296"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 15:25:52 2013 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:08 2014 -0800"
      },
      "message": "Re-apply several tools fixes lost by the directory rearrangement.\n\nLeaks on error in tools/aapt/Images.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61552\n\nTwo missing fclose calls in tools/aapt/Resource.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61553\n\nMissing fclose in tools/aidl/aidl.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61554\n\nChange-Id: I56ce144958296961b77354815efc1a245564594b\n"
    },
    {
      "commit": "7cce7bb5d8d68e78a414c176dc89a803f706c9ce",
      "tree": "93d34b950a01e6c1581a22bb30b4738bc24710d8",
      "parents": [
        "282e181b58cf72b6ca770dc7ca5f91f135444502"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 04 17:41:11 2013 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:04 2014 -0800"
      },
      "message": "Remove scenes from Resource.cpp\n\nPart of the Transition API changes, except that the tools/ directory\ngot moved between klp and master, so re-making the same changes here.\n\nIssue #10460684 KLP API Review: android.view.transition and android.animation\n\nChange-Id: Icedca1dc689285b4b213f9376656b26f18c7f23e\n"
    },
    {
      "commit": "282e181b58cf72b6ca770dc7ca5f91f135444502",
      "tree": "e313e7ab30ff4679562efa37bde29cfcb9e375d3",
      "parents": [
        "7023df08f14ec5dee76ac54c03e870f84e297636"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 23 18:17:42 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jan 27 10:31:04 2014 -0800"
      },
      "message": "Revert \"Move frameworks/base/tools/ to frameworks/tools/\"\n\nThis reverts commit 9f6a119c8aa276432ece4fe2118bd8a3c9b1067e.\n"
    },
    {
      "commit": "dbccd44a638ae8705a5b14bff8b2dd74abc26045",
      "tree": "14bfabaf3f3c7be86dfc064e919e00433a0cf2bb",
      "parents": [
        "ecfae4f899873f224e1aeed076dc8a41f8884487",
        "b873a17ce7be0a9771c24999adca6964431728f6"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Nov 22 11:18:57 2013 -0800"
      },
      "message": "Merge commit \u0027b873a17ce7be0a9771c24999adca6964431728f6\u0027 into HEAD\n\nChange-Id: I938755073e70602cc8f51ce9bd420fdcf870cecd\n"
    },
    {
      "commit": "c367d48c55e5a3fa0df14fd62889e4bb6b63cb01",
      "tree": "cc6a7e56e5c5e74d66603c8170660fd99c52bff3",
      "parents": [
        "b4cae4a955ebd91cf35aaeb00ab12ce6f1d5fc48"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 29 13:12:55 2013 -0700"
      },
      "message": "Fix a variety of small publicly-reported bugs.\n\nPossible NULL dereference in cmds/bootanimation/BootAnimation.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61556\n\nMissing fclose in core/jni/android_os_Debug.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61546\n\nBad loop guards in core/jni/android_util_Process.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61557\n\nAssignment to wrong variable in libs/androidfw/AssetManager.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61560\n\nMissing delete[]s in libs/androidfw/ObbFile.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61549\n\nLeaks on error in tools/aapt/Images.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61552\n\nTwo missing fclose calls in tools/aapt/Resource.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61553\n\nMissing fclose in tools/aidl/aidl.cpp.\nhttps://code.google.com/p/android/issues/detail?id\u003d61554\n\nChange-Id: I5820f3824e72d07a9acb776cf0af3e7443f5694a\n"
    },
    {
      "commit": "d82c8ac4db7091d2e976af4c89a1734465d20cd2",
      "tree": "a3ccb4d7a4325582dfe028030e4ca2d38ba4c2be",
      "parents": [
        "2a59f3f24076d96cbb10e1c00c3264dec43f19b1"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Aug 26 14:20:16 2013 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 04 14:46:38 2013 -0700"
      },
      "message": "Transition API changes from API council recommendations\n\nIssue #10460684 KLP API Review: android.view.transition and android.animation\nIssue #10570740 Transitions: inflate transition targets from xml\n\nChange-Id: I7a3f6d3aece2fcafc5efd555d033f79e86635c98\n"
    },
    {
      "commit": "9f6a119c8aa276432ece4fe2118bd8a3c9b1067e",
      "tree": "1391656f9ad624aa99d4c7d2880d38121801a424",
      "parents": [
        "647b6f5ed276bf93d95e5801e5e8af2802ef5fbb"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Aug 28 09:44:17 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed Aug 28 09:44:17 2013 -0700"
      },
      "message": "Move frameworks/base/tools/ to frameworks/tools/\n\nChange-Id: I3ffafdab27cc4aca256c3a5806b630795b75d5c8\n"
    },
    {
      "commit": "1f5762e646bed2290934280464832782766ee68e",
      "tree": "123bcdf3ba4c98f885631b02bb90803b7885e438",
      "parents": [
        "9f3e1175657425115e863fdb256b83cadedc33e9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 06 20:20:34 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue May 07 17:09:46 2013 -0700"
      },
      "message": "libutils clean-up\n\nChange-Id: I11ee943da23a66828455a9770fc3c5ceb4bbcaa9\n"
    },
    {
      "commit": "5ae02e92e4ea2621ae6be6076e304a972793e2f3",
      "tree": "2efdc361f1eb6f08aaca456819c6eadad7e1ca0f",
      "parents": [
        "65e46420ea0c24f53e36b08f4e927f3d0db3f895",
        "eb6403e95d601b62be7b4610599e72fd329f2666"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 26 12:06:15 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 26 12:06:15 2013 -0700"
      },
      "message": "am eb6403e9: resolved conflicts for merge of bfdd2566 to jb-mr2-dev-plus-aosp\n\n* commit \u0027eb6403e95d601b62be7b4610599e72fd329f2666\u0027:\n  Generate SDK docs for v7 support library packages.\n"
    },
    {
      "commit": "caf7b0a155f6adef1b9af6cbf7370460c55e3a3f",
      "tree": "c69a8effe9c9299b687232dc672094f9c76c7b00",
      "parents": [
        "22f6a60e62253436a4f7da1a5d59adc0f17534cc"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 25 21:24:44 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 26 00:20:42 2013 -0700"
      },
      "message": "Generate SDK docs for v7 support library packages.\n\nThis change required fixing some bugs in how AAPT handles\nqualified symbols such as \"android:layout_height\"\nwhen generating JavaDoc links.  The links were being\ngenerated using the package name of the generated R file\nrather than the package name of the referenced symbol.\nThese broken links caused the JavaDoc build to fail.\n\nBug: 8175766\nChange-Id: I52fbef27825a25abca960cb44b59c2132267e9d6\n"
    },
    {
      "commit": "faebd8f0795b7d275fb4e503533c8c0c4a9acc21",
      "tree": "464de8bb5dcd9ae99402ebb630d329dc8ce953cc",
      "parents": [
        "b3caa9200a61cde1178a2c83419de56579d3c5a5"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri May 18 14:17:57 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Apr 18 13:33:13 2013 -0700"
      },
      "message": "First draft of Scenes \u0026 Transitions feature\n\nThis checkin has preliminary API (in flux, definitely changes still\nto be made) and implementation for a new \"Scenes \u0026 Transitions\" feature.\nThe current implementation allows you to define different Scenes\n(via layout resource IDs or callbacks) and Transitions to be used when\nchanging to those scenes. By default, scene changes will use AutoTransition,\nwhich generally does the right thing.\n\nThere are no overview docs or tutorials yet. The best way to learn how things\nwork is to see the code for the various tests in\nframeworks/base/tests/TransitionTests.\n\nExpect the API to change. Expect the implementation to change (mostly to add\nmore functionality). Expect bugs, but tell me if things do not work\nas expected.\n\nChange-Id: Ib025a9f565678b225afa4759325cf6d496cc7215\n"
    },
    {
      "commit": "a068eeddc9d47af1a12afbe6efe7d00e8e903b9f",
      "tree": "df9f8663d47adc21195ea822fc107c514d514c27",
      "parents": [
        "301e95f2e17164c6f432f1b68f55e5f12aa0ca78"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sat Apr 13 09:48:01 2013 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Sat Apr 13 09:48:01 2013 -0700"
      },
      "message": "Revert \"Make --non-constant-id generates non final IDs for styleable.\"\n\nThis reverts commit 8730f46ae5ba9021a0e01c068ffc6b552b6c4510.\n"
    },
    {
      "commit": "8730f46ae5ba9021a0e01c068ffc6b552b6c4510",
      "tree": "0029a29868d6ff22577549764334b6e664766fbf",
      "parents": [
        "e203384f1627f27c81ff72426498927fb9d80698"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Apr 12 16:00:49 2013 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Fri Apr 12 16:02:54 2013 -0700"
      },
      "message": "Make --non-constant-id generates non final IDs for styleable.\n\nThis was already done for all other types of resources, but not\nfor styleable (or the constants for the styleable array indices).\n\nThis fixes this. This only affects the SDK as this is used by the\nSDK toolchain only.\n\nChange-Id: Idfc2f7915be2b0e88590f38fd660610ffc7e160c\n"
    },
    {
      "commit": "253f76357dc9acdb329f321190eca4f0b049b4af",
      "tree": "d791e452faaeb3ae4e13029ee29a6fbf7fad1690",
      "parents": [
        "b079d1f28089ad4de05162b7df0ace90bc40a5f3",
        "fb34490f4dca7aac623fb9a80fe9a2371107a786"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:44:22 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 26 10:44:22 2012 -0700"
      },
      "message": "am fb34490f: Merge \"Fix writing text version of styleable IDs.\"\n\n* commit \u0027fb34490f4dca7aac623fb9a80fe9a2371107a786\u0027:\n  Fix writing text version of styleable IDs.\n"
    },
    {
      "commit": "d16047434bca24b2811de7ea9d22de6ee0f87f79",
      "tree": "ef2b9d05669191e2b2a5f82e8e5b3063670c2dd2",
      "parents": [
        "5e8cbdc0bd6dfc51e6b54db1d5fd61347336d862"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:11:54 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 26 10:11:54 2012 -0700"
      },
      "message": "Fix writing text version of styleable IDs.\n\nChange-Id: I3f2614689a597de3fd46628c020cf649a808c82f\n"
    },
    {
      "commit": "5de9603529ee01a416b5fa31074197565fde4482",
      "tree": "f610ba56bf685b21bbc81bbf4d6ed8b2d5640ef7",
      "parents": [
        "cc9747ed45302956a3ec9dd21f7b950b837dbfdd",
        "31820a35b2cf864a8dcb71d43e6fd21d54f49a2d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:03:19 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:03:19 2012 -0700"
      },
      "message": "am 31820a35: Merge \"Add --output-text-symbols option to aapt.\"\n\n* commit \u002731820a35b2cf864a8dcb71d43e6fd21d54f49a2d\u0027:\n  Add --output-text-symbols option to aapt.\n"
    },
    {
      "commit": "cc9747ed45302956a3ec9dd21f7b950b837dbfdd",
      "tree": "4f5bf98606f87858b78a95bd8dd09e9e6a797716",
      "parents": [
        "f5437ee86a34751fa6d441b95282feb315e19eb6",
        "d72525718ea7ef3e1f97cf557365b143c8919a5b"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Mon Sep 17 12:03:12 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 17 12:03:12 2012 -0700"
      },
      "message": "am d7252571: Merge \"Add --error-on-failed-insert option to aapt.\"\n\n* commit \u0027d72525718ea7ef3e1f97cf557365b143c8919a5b\u0027:\n  Add --error-on-failed-insert option to aapt.\n"
    },
    {
      "commit": "f5de650ff1e161ea135c828e43515895343d2c0f",
      "tree": "4398a8d071f3322512e6c4d5f153fb9564865d6a",
      "parents": [
        "7714a2429b192c88e134ff67b969121bbaeb5457"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 14:45:22 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 18:19:00 2012 -0700"
      },
      "message": "Add --output-text-symbols option to aapt.\n\nLibrary projects in the SDK are built using --non-constant-id\nto generate a temporary R.java class.\nWhen the library is packaged with the application to generate an\napk, the R class is recreated with the proper IDs due to all the\nresources coming from the app and all the libraries.\n\nHowever for large apps with many libraries (each with their own\nR class in their package), this means a lot of unnecessary IDs:\nall R classes contains all the IDs including for resources from\nby projects they don\u0027t have access through the dependency graph.\n\nFor really large apps (X,000 resources), with lots of libraries\n(10+), this can generate tens of thousands of resources, which\ncan trigger dalvik\u0027s limit of 65K fields and methods per dex\nfiles.\n\nThis changes lets aapt generate not only the R class but a simple\ntext file containing the list of all those IDs so that it is\neasier to parse back. The SDK build system will not ask aapt\nto generate the R class of the libraries (through the\n--extra-packages option), instead it will then read this\nfile to know what IDs are needed for each library and generate\na much smaller R class for each library (using the same text\nfile output from compiling all the resources to get the final\ninteger value).\n\nChange-Id: I4db959fec372cf3ead9950e4b2b82fa1ae7eed2d\n"
    },
    {
      "commit": "7714a2429b192c88e134ff67b969121bbaeb5457",
      "tree": "13d8c0eeb0d9eee815e3444fd236924306861fe3",
      "parents": [
        "2415841c370d855d7f3a3e6a537e641c69a57097"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Sep 05 17:49:21 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Tue Sep 11 18:17:22 2012 -0700"
      },
      "message": "Add --error-on-failed-insert option to aapt.\n\nThe new SDK build system give the ability to insert\nversionCode/Name and min/targetSdkVersion in the manifest\nbut aapt won\u0027t replace those if they already exist.\n\nThe main problem is that aapt doesn\u0027t actually fail when\nit doesn\u0027t replace them, making the output not what the\ndeveloper wanted.\n\nThis patch set adds an option to aapt to make it return\nan error if the insert failed because the attribute\nalready existed.\n\nChange-Id: I8938ec1238da407a8562c974e9598db39001ffd9\n"
    },
    {
      "commit": "095cd2e2d14e4fe25b66df54861fb66000a25adc",
      "tree": "b16c8e094f998b23b77a68e364e70f45629f13b5",
      "parents": [
        "12a5475205243bc2d069a87d2c7d4982b5f4d11d"
      ],
      "author": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Jul 18 18:06:09 2012 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Thu Jul 19 09:06:03 2012 -0700"
      },
      "message": "Fix aapt -G to properly support class attr in fragment.\n\nThe code added attributes android:name and class to a\nKeyedVector under the same key (fragment) so the 2nd\nadd (android:name) removed class with was never checked.\n\nThis replace the value type in the KeyedVector to be\nVector\u003cNamespaceAttributePair\u003e instead of just\nNamespaceAttributePair.\n\nChange-Id: I009b8a8cca878191661c2a63bb14c967d230498d\n"
    },
    {
      "commit": "9275197d35a99c3f187d18d0eda6ead3b8a32603",
      "tree": "ba364f6cf805ce6dac0d3eb8ced5d82d71cd956a",
      "parents": [
        "fb5c3dba4ddac023cfd4cdcabdfdbcf343197c94"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 18 19:22:14 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 18 19:23:19 2012 -0700"
      },
      "message": "Add aapt support for generating proguard rules for onClick methods.\n\nAlso fix Activity menu inflater when using the dark on light\ntheme wrapper to still be able to find onClick listeners.\n\nChange-Id: Ie206db26d1df96041bc477804e476b02ad99dc9d\n"
    },
    {
      "commit": "c0f7366a15655c6973ea21029f1997f24c006cca",
      "tree": "ad9302a32cfbfa603ce5b58a6fa263c92953795a",
      "parents": [
        "c9fd9263feedac32e4f5b1f13a3246347efdc25f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 22:17:41 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Mar 17 14:12:57 2012 -0700"
      },
      "message": "aapt: Preprocess images in parallel.\n\nCurrently hardcoded to use up to 4 threads.\n\nThis change substantially reduces the amount of time spent\npreprocessing framework resources to just a few seconds.\n\nChange-Id: I02fdd283fb529a152aeb22ac87f278779fd77983\n"
    },
    {
      "commit": "1644c6d7f4931d0b4fe7ea77c63b016af01a46d3",
      "tree": "794f3b2ccf8ce784b043b74e03fe970b811bc455",
      "parents": [
        "e7171effdf9ef0700782520187c0a292b0a74759"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Feb 06 15:33:21 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 07 12:57:50 2012 -0800"
      },
      "message": "Only generate private symbols that are needed.\n\nChange-Id: Icc4c86638db8429a387bf87c934cc712f807e213\n"
    },
    {
      "commit": "6c997a9e880e08c354ffd809bd62df9e25e9c4d4",
      "tree": "593504e8a7d67bf57e0799daff1e8eb9e4797857",
      "parents": [
        "2247e3f0dc00762b44ef6adcbb2a91c8bbc1be58"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 31 11:27:43 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 31 15:41:30 2012 -0800"
      },
      "message": "aapt now sorts the strings in the resource string pool.\n\nIn our current environment with very many translations, this can\nsave a lot of RAM -- for example over 200K in Gmail just by sorting\nthe strings in the Gmail .apk (not the framework).\n\nAlso add a new aapt command to print the contents of the resource\ntable string pool.\n\nChange-Id: I1da037b3e2c377b890833ff57ab158965314ac48\n"
    },
    {
      "commit": "f51125d8429ffa71c57ba6fbdca9effc72642a9b",
      "tree": "f94891383e3cd48374f02bff435b0a3ca783bd90",
      "parents": [
        "e87d2da0b4e44051edbee4a4339f846eba9d3a36"
      ],
      "author": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Thu Oct 27 17:01:31 2011 -0700"
      },
      "committer": {
        "name": "Raphael",
        "email": "raphael@google.com",
        "time": "Thu Oct 27 17:11:21 2011 -0700"
      },
      "message": "AAPT fix printf %zd crash on Windows.\n\nThere\u0027s no printf %zd on Mingw/Cygwin so the verbose\nprintf crashes aapt.\n\nSDK bugs: 20395, 20986\n\nChange-Id: I5b8ac36749263205a19f1448b1aaca90d5a2e06d\n"
    },
    {
      "commit": "e6b680364dd992907a8d2037685a2e500d188dfb",
      "tree": "3d931a3139f058da9ae934e5cf50cd6dc50f7e64",
      "parents": [
        "d814d4fa0c76a0384f7e32816e1ca36f237911c6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Oct 13 16:26:02 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Oct 16 11:52:17 2011 -0700"
      },
      "message": "New aapt feature to do smarter filtering of configurations.\n\nThis adds a --preferred-configurations flag that specifies the\nspecific configurations you would like to have.\n\nIt is smarter than \"-c\" because it will avoid stripping a\nconfiguration if that would result in there being no value\nfor the resource.\n\nIt is dumber than \"-c\" because it can\u0027t process as many kinds\nof resources.  It is really only intended for bitmaps and use\nwith density configs.\n\nThis required re-arranging AaptAssets to group files together\nby config again, like they used to be.  I think this hasn\u0027t\nbroken anything.  Hopefully.\n\nChange-Id: I4e9d12ff6e6dbd1abb8fd4cb1814c6674b19d0e5\n"
    }
  ],
  "next": "1797d6086f9acbea582cac6d484e749abafa1868"
}
