)]}'
{
  "log": [
    {
      "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": "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": "b48adad2ede148b62c7025da4d2320cb5d9af58c",
      "tree": "d58d120d664686ac4836d9f018ea8166d7eef3a3",
      "parents": [
        "79a1bde2e0f38507738743e490beb895dae7b03e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:39:21 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 17:25:01 2015 -0700"
      },
      "message": "aapt: expat exports its header files now.\n\n(cherrypick of 51348d2007b801c7bd7350f72e2300f1a5a41dd1)\nChange-Id: Iddf0133919d38fc896f97c6796f8228a6decf174\n"
    },
    {
      "commit": "51348d2007b801c7bd7350f72e2300f1a5a41dd1",
      "tree": "6c9034eed32755e3e63715753645f8b8b4a416a9",
      "parents": [
        "c25f41917ee5cb7be00107743a799f1e533639b6"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:39:21 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 21 11:39:21 2015 -0700"
      },
      "message": "aapt: expat exports its header files now.\n\nChange-Id: Iddf0133919d38fc896f97c6796f8228a6decf174\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": "a2ef5c0d4fb863c0382e77ae00f986a019b11cbe",
      "tree": "d6c10bedf5d762e0fc0bd10b38f381ccefefa248",
      "parents": [
        "ecdf9b199ac9659c37c34c0b23084199acea80bf"
      ],
      "author": {
        "name": "Anton Krumin",
        "email": "antkrumin@google.com",
        "time": "Wed Mar 12 14:46:44 2014 -0700"
      },
      "committer": {
        "name": "Anton Krumin",
        "email": "antkrumin@google.com",
        "time": "Wed Apr 09 16:59:48 2014 -0700"
      },
      "message": "Pseudolocalizer improvements.\n\nFixes accented pseudolocalization and adds RTL pseudolocale.\n\nThis change contains following modifications in the pseudolocalization logic:\n1) zz_ZZ pseudolocale was removed;\n2) en_XA pseudolocale was added for pseudo-accented;\n3) ar_XB pseudolocale was added for pseudo-rtl;\n4) Pseudo RTL localization functionality was implemented;\n5) Text expansion functionality was implemented;\n6) Text bracketing was implemented;\n7) Couple of issues of previous implementation were fixed.\n\nChange-Id: I9f7f27bed717e39e82717d15c398decffc8bec3c\nSigned-off-by: Anton Krumin \u003cantkrumin@google.com\u003e\n"
    },
    {
      "commit": "15fe2cb73b0770316db302f6502f568062d68e74",
      "tree": "9764af2f6feb0083e768779fc933de1b7f98f352",
      "parents": [
        "a9f06fef8e2fff0c909132073203de5bd2461795"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri May 28 15:44:32 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jun 03 09:33:43 2010 -0700"
      },
      "message": "Add error checking for translatable strings\n\nTranslatable strings that have multiple substitutions should use\npositional String.format() substitutions. This change makes it an error\nnot to use that format on translatable strings that have more than one\nsubstitution in its text.\n\nChange-Id: I3a19707f3804aa24e8568dc1653a11576cac5916\n"
    },
    {
      "commit": "2fee0ed6eb99b211efa06f095a41268a2021214a",
      "tree": "bc7ce3df25a1d7ec1f61fb85ef56899dab5eb66b",
      "parents": [
        "7188f946521d64ea21121939d2a4c279f33fe910"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jan 06 15:46:38 2010 -0600"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Mon Feb 01 18:47:01 2010 -0600"
      },
      "message": "Add the --rename-manifest-package option to aapt.\n\nIt allows you to force override the manifest\npackage listed in the AndroidManifest.xml when\ncreating an APK file.\n\nChange-Id: I7eac7943c4e56610b65728ae54773a273634fd9d"
    },
    {
      "commit": "19138468caf7050d482dc15f35a344eab11bb756",
      "tree": "ea1f96c5bcab356355ab05d315abfa66a7f888c4",
      "parents": [
        "6be01bf207077ffbdcd3879250171a26ec805835"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Dec 04 09:38:48 2009 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Dec 07 15:14:15 2009 -0800"
      },
      "message": "Optional use of UTF-8 strings in resource bundles\n\nAllows the use of UTF-8 for packing resources instead of the\ndefault of UTF-16 for Java. When strings are extracted from the\nResStringPool, they are converted to UTF-16 and the result is\ncached for subsequent calls.\n\nWhen using aapt to package, add in the \"-8\" switch to pack the\nresources using UTF-8. This will result in the value, key, and\ntype strings as well as the compiled XML string values taking\nsignificantly less space in the final application package in\nmost scenarios.\n\nChange-Id: I129483f8b3d3b1c5869dced05cb525e494a6c83a\n"
    },
    {
      "commit": "62da8461ed5317fe78ae5e3793662694e7fc99a3",
      "tree": "e82ca35be1ad67465407f6992e5e0f47fef73c39",
      "parents": [
        "53071d6d159f6dfd6fe0328a39bcf967ef308a64"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 13 15:06:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 15 18:23:56 2009 -0700"
      },
      "message": "Implement compatibility support for WRITE_SDCARD permission.\n\nNow old applications will automatically be granted it.  Also renamed it from\nSDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,\nand re-arranged how we do targetSdkVersion to actually be usuable for this\nkind of stuff.\n\nNote that right now this results in basically all apps being given the\nWRITE_SDCARD permission, because their targetSdkVersion is not set.  I will\nbe dealing with that in a future change.\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "f013e1afd1e68af5e3b868c26a653bbfb39538f8",
      "tree": "7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf",
      "parents": [
        "e70cfafe580c6f2994c4827cd8a534aabf3eb05c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:05:43 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
