)]}'
{
  "log": [
    {
      "commit": "08fa40c5cb5229b7969b2a5146855a337870f45a",
      "tree": "7020af1c292cfc0312973d56d4037b78ee941c72",
      "parents": [
        "6c8e788e37dea5db682e2ad405f8e1b23990765e"
      ],
      "author": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Tue Apr 29 18:18:47 2014 -0700"
      },
      "committer": {
        "name": "Jim Miller",
        "email": "jaggies@google.com",
        "time": "Wed May 07 02:27:21 2014 +0000"
      },
      "message": "First pass at adding FingerprintManagerService\n\nThis adds a new service for monitoring and enrolling fingerprints\nto the platform.\n\nFixed documentation links.\n\nChange-Id: I66013be5e09be9c5f9746c46aacf32d3e26c3b73\n"
    },
    {
      "commit": "09233289624a85093b1d99e4a6a149bf09059d8d",
      "tree": "ced7eefedc4db60d4134aee3616e9b043cd950d7",
      "parents": [
        "201a24f652745c4bcbe7e26f0ffea973bcb615b3"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 30 11:33:59 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 02 11:51:26 2014 -0700"
      },
      "message": "Make GET_TASKS signature|system.\n\nNormal apps can\u0027t hold it now.  If they try to use\ngetRecentTasks() or getRunningTasks() without the permission,\nthey will only see their own tasks and home in the list.\n\nAlso took this opportunity to eradicate all of the old pending\nthumbnail stuff.\n\nChange-Id: I6dc52a06221c78097162e4a8b482027b798bf3ee\n"
    },
    {
      "commit": "4cd4110f20c2fcf8feaf04414e60b15f5801af4f",
      "tree": "c0ae49d460540fb10e78cd4d51481f348ec8870a",
      "parents": [
        "59b5a356b828fe60ea2874b0680a1bf7c84809a1",
        "14f1ec05b2add5ee051c0d2e7c7c3b36a6e77b92"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Fri May 02 15:33:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 02 15:33:36 2014 +0000"
      },
      "message": "Merge \"API for network cache subsystems.\""
    },
    {
      "commit": "674bc2fca5146e371f4d506b361967e72ef1c229",
      "tree": "5334157fbc12781c7a474468e100f0d07601b2e3",
      "parents": [
        "61bc9f37cc0e0921d2e205dccdd45df36c353a9c",
        "6e31c5c82bc5c9bddf9c01d254067ea5bebbd96b"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Thu May 01 17:45:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 01 17:45:34 2014 +0000"
      },
      "message": "Merge \"TaskManager API first pass.\""
    },
    {
      "commit": "14f1ec05b2add5ee051c0d2e7c7c3b36a6e77b92",
      "tree": "c0be4a0961f6a5f1c4974c6121a56dc54cb2e9d9",
      "parents": [
        "76b81c722135f496935dd270e7c5989f8b9472e3"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Tue Apr 29 11:58:26 2014 -0700"
      },
      "committer": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Wed Apr 30 17:50:46 2014 -0700"
      },
      "message": "API for network cache subsystems.\n\nA network subsystem (e.g. Wi-Fi) will be responsible for implementing\nINetworkScoreCache. NetworkScoreService will load caches for each\nconfigured network subsystem. When it receives a call to update\nscores, it will separate the networks by type and call updateScores on\nthe appropriate INetworkScoreCache.\n\nEach subsystem will also be responsible for requesting scores for new\nnetworks by calling NetworkScoreManager#requestScores.\n\nBug: 14408144\nBug: 14137255\nChange-Id: I76e5e5205bc359c39d6b9c1782126fb7f465cd96\n"
    },
    {
      "commit": "18f0d357f9693fe787a3e3777d8fdf01357a6e3f",
      "tree": "87ffa17a98fa81355a37e25b2c7fc649ffc4e9be",
      "parents": [
        "01c70711d5e4f1c3405bcd169be70605e92166f2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 25 17:06:18 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Apr 28 10:54:15 2014 -0700"
      },
      "message": "Rework some of the voice interaction APIs.\n\nOn the app side, requests are now composed by subclassing\nfrom various types of Request objects.\n\nOn the service side, starting a voice interaction session\ninvolves starting another service that will then manage the\nsession.  This leads the service design much more to what\nwe want, where the long-running main service is very tiny\nand all the heavy-weight transient session work is elsewhere\nin another process.\n\nChange-Id: I46c074c6fe27b6c1cf2583c6d216aed1de2f1143\n"
    },
    {
      "commit": "e77bb36d48b6b8b5c3bb6a1195aca469bb237919",
      "tree": "29f877996112bebd253e25a18a2b731a086abfb3",
      "parents": [
        "31dc634be3610b062fbcc4afa02607ce8f4125f5"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sat Apr 26 10:24:59 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Sun Apr 27 11:36:32 2014 -0400"
      },
      "message": "Wire up condition providers to zen mode exit triggers.\n\nBug:13743109\nChange-Id: I4e45d7050d1f9aaa379f46379a3203e61e216a3d\n"
    },
    {
      "commit": "b22aabbbd2801db0be526a64badf2efa208f19f1",
      "tree": "66448c85315567c82ac93e472b03b30fdd192d56",
      "parents": [
        "2be1f8c3f4d338c7b7c73bb642bc410ef27c8ee4",
        "7340fc8665ae3f9f1978f42aa0e5e1da85036158"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 25 18:19:06 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 25 18:19:06 2014 +0000"
      },
      "message": "Merge \"Introduce condition provider services.\""
    },
    {
      "commit": "7340fc8665ae3f9f1978f42aa0e5e1da85036158",
      "tree": "7dca3cc6cf2a23d872dbe1cde1e10ec7a3d84899",
      "parents": [
        "07f0b8ee730be00a2a4bccf797bd8cb71e556546"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Thu Apr 24 18:50:12 2014 -0400"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Fri Apr 25 12:35:31 2014 -0400"
      },
      "message": "Introduce condition provider services.\n\nAdd the condition provider interface, base class, and associated\nsystem metadata.\n\nPull out common service management code into a reusable helper,\nused by notification listeners and condition providers. The\nhelper, ManagedServices, is now completely self-contained - it\nhas no dependencies on NoMan or NoMan abstractions.\n\nBug:13743109\nChange-Id: I6856d40f0a2ead78ac9b5707568559a57e7eb009\n"
    },
    {
      "commit": "91097de49b0f683b00e26a75dbc0ac6082344137",
      "tree": "82c3185634a71233ce2e81a3645b07b1ba55f412",
      "parents": [
        "23af77a3cd1febc740d885ff03ead09837df269c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 04 18:02:06 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 24 17:48:58 2014 -0700"
      },
      "message": "Initial implementation of new voice interaction API.\n\nThis gives a basic working implementation of a persist\nrunning service that can start a voice interaction when\nit wants, with the target activity(s) able to go through\nthe protocol to interact with it.  It may even work when\nthe screen is off by putting the activity manager in the\ncorrect state to act like the screen is on.\n\nIncludes a sample app that is a voice interation service\nand also has an activity it can launch.\n\nNow that I have this initial implementation, I think I\nwant to rework some aspects of the API.\n\nChange-Id: I7646d0af8fb4ac768c63a18fe3de43f8091f60e9\n"
    },
    {
      "commit": "6e31c5c82bc5c9bddf9c01d254067ea5bebbd96b",
      "tree": "3dd8ddcc5ea5d9f9a42f87067ec30256601b4474",
      "parents": [
        "03fee27646564cf1b559b7f8a53d35a1db18d0bd"
      ],
      "author": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Fri Apr 11 15:49:16 2014 -0700"
      },
      "committer": {
        "name": "Matthew Williams",
        "email": "mjwilliams@google.com",
        "time": "Mon Apr 21 19:57:49 2014 -0700"
      },
      "message": "TaskManager API first pass.\n\nThis is a very barebones first pass, meant to ensure we\u0027re all on the\nsame page, and also get feedback.\n\nChange-Id: I7d5492dc5aafbe583f7c2d97ebf1444b6d2e068a\n"
    },
    {
      "commit": "6a4b220f1263d95fdefe6361c2bc87bbb04bbed0",
      "tree": "082ceb00c7d9255d3a6a129b3e66e16fee40ac3f",
      "parents": [
        "4660c9e064ebaec9ebb260c2853a8dab868ccdc2"
      ],
      "author": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Wed Apr 16 17:29:40 2014 -0700"
      },
      "committer": {
        "name": "Jeff Davidson",
        "email": "jpd@google.com",
        "time": "Mon Apr 21 16:04:05 2014 -0700"
      },
      "message": "Initial implementation of NetworkScoreManager\u0027s backing service.\n\nThis service will ultimately be responsible for propagating scores\ndown to lower-level network subsystems. For now, it just keeps scores\nin memory and exposes these for debugging purposes via \"adb shell\ndumpsys network_score\".\n\nThis change also adds provisioning of a default scorer. When\nNetworkScoreService is first initialized, it checks to see if it has\never set a default scorer; if not, it reads a package name from a\nbuild config property and attempts to set it as the default.\n\nAlso add autogenerated equals/hashCode methods to all parcelables.\n\nBug: 14111427\nBug: 13786258\nChange-Id: I02271171653d42e12acd240b73b9e23950744f6b\n"
    },
    {
      "commit": "07c7077c54717dbbf2c401ea32d00fa6df6d77c6",
      "tree": "49f9e8019caa93c702c6d2d8213767de3d1499c6",
      "parents": [
        "46175e152891eabd9051523f2f077de5a5562996"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Mar 20 13:33:52 2014 -0700"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Apr 17 15:02:33 2014 -0700"
      },
      "message": "Add RouteProviders to the new Media APIs\n\nCompiles and works with OneMedia. This currently is a rough test of\nthe system for finding, connecting to, and sending messages to routes.\nThis will just connect to the first route it finds when a request to\nopen the route picker is made (and disconnect when another request is\nmade).\n\nChange-Id: I5de5521a079471b9e02664be4654c0591dfd9a6d\n"
    },
    {
      "commit": "6be2f95202237b7284542e692273d13a5bd26913",
      "tree": "42a2dae8ac52754848593b62b950f96761723240",
      "parents": [
        "2bb8dde44be10212ec453d435aaad27177714f5e",
        "1376d600d8e0eefdbc0aa11d398cf7517fc77129"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Apr 10 19:32:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 10 19:32:59 2014 +0000"
      },
      "message": "Merge \"Adding render stats APIs to UiAutomation (framework).\""
    },
    {
      "commit": "5784b39843bd3d6112352ff3b736a6498107911c",
      "tree": "283136a069498786c722cd46cc146bab570ff4e5",
      "parents": [
        "77ecf0bb9687a4841a4880267bdb2cd7de05055f",
        "4f58263d02f296430a9653126d28501e95c7bb6c"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 08 22:04:20 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 08 22:04:20 2014 +0000"
      },
      "message": "Merge \"Launcher APIs and broadcasts for managed profiles\""
    },
    {
      "commit": "3957091ba8f08c02b5e781098cb955a5f697a1ff",
      "tree": "c8739c677c87e62ea6c1e8bc45de027d1e65d87c",
      "parents": [
        "53c2cf799fddfae7f6fc9ca1840ea345308b79ee"
      ],
      "author": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Thu Feb 20 18:23:25 2014 -0800"
      },
      "committer": {
        "name": "Jae Seo",
        "email": "jaeseo@google.com",
        "time": "Tue Apr 08 13:35:21 2014 -0700"
      },
      "message": "Initial round of Television Input Framework\n\nThis provides APIs to control and create individual television inputs on\nthe system which will later be hosted by television applications.\n\nChange-Id: I6866d28e78175a1bff2c32a85c5d77e94d0cd60c\n"
    },
    {
      "commit": "4f58263d02f296430a9653126d28501e95c7bb6c",
      "tree": "ee424e547166ddfc5da545654ac9ee2908803b02",
      "parents": [
        "2d925545b6190153928658ce320d9b681baad882"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Feb 19 14:31:52 2014 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 08 10:51:05 2014 -0700"
      },
      "message": "Launcher APIs and broadcasts for managed profiles\n\nUserManager\n- Corp badging\n- Querying list of managed profiles\n\nLauncher API\n- LauncherApps and Service to proxy changes in managed profile\n  to the launcher in the primary profile\n- Querying and launching launchable apps across profiles\n\nChange-Id: Id8f7b4201afdfb5f414d04156d7b81300119289e\n"
    },
    {
      "commit": "1376d600d8e0eefdbc0aa11d398cf7517fc77129",
      "tree": "f5a4a7e7a66943dec172cfb10a1868dc8a8c8df4",
      "parents": [
        "ed3db02c051f52f9ad3770e3c6b5b90c71a04fb1"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 13 11:17:26 2014 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Apr 07 17:01:42 2014 -0700"
      },
      "message": "Adding render stats APIs to UiAutomation (framework).\n\nbug:12927198\n\nChange-Id: Iae21481c75ae58dcdab3731bf5f1e2844e29d434\n"
    },
    {
      "commit": "82142c21dd333307682d5f4bb09de3ab3ccfa06c",
      "tree": "d0d750d27ba27084498138dba9e6bbc70cc20a81",
      "parents": [
        "ff2144ccb4215acf4587fc628493b3d49dca6043"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Thu Mar 27 14:56:59 2014 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 31 21:18:28 2014 +0200"
      },
      "message": "Define trust agent framework components\n\nAdds the TrustManager system service that allows\nregistering for changes to the trust status and\nreporting events that are important to trust agents.\n\nBug: 13723878\nChange-Id: I7d0d2ea86fd755702d31aa5d49cac038a6cd4301\n"
    },
    {
      "commit": "ff2144ccb4215acf4587fc628493b3d49dca6043",
      "tree": "c35598d83a0076528df19d1ad27e332d30486b0d",
      "parents": [
        "47bbaea4c3f5dee97f2e1c56c6cc9957efa17eaf"
      ],
      "author": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Fri Mar 28 13:02:19 2014 +0100"
      },
      "committer": {
        "name": "Adrian Roos",
        "email": "roosa@google.com",
        "time": "Mon Mar 31 20:40:49 2014 +0200"
      },
      "message": "Define initial trust agent API\n\nAdds the minimal API needed to define a useful trust agent.\n\nBug: 13723878\nChange-Id: Ib24440bab7b16d0b656bde8b059e7d42cab2c7dc\n"
    },
    {
      "commit": "93627ac86c3805aaf545501b586bbca4fbc259e9",
      "tree": "806003afdfc94c1cdede0fff9e9758dc92792c3d",
      "parents": [
        "5db60e0eb7dc80034f75dafcb8b16b99f5c6e6d5",
        "10bf6354a536152719bf4524429aa5739836c541"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Fri Mar 28 22:49:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 28 22:49:51 2014 +0000"
      },
      "message": "Merge \"Wifi hotspot stack initial hook up\""
    },
    {
      "commit": "f1977b4500e82b72ea6aa5c46d97406a20017caf",
      "tree": "9d6b4e63bc4b4c70eb9fbd5eb2cff9587ba45485",
      "parents": [
        "9ad8a5331ca5eb6390c702ec57952043b56170bf"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 24 16:25:51 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 27 12:37:47 2014 -0700"
      },
      "message": "Expand install observer semantics\n\n...and now fail conservatively when two apps both attempt to define\nthe same permission.  Apps signed with the same certificate are\npermitted to redefine permissions.\n\nWe also finally have a (hidden) interface class for observing package\ninstallation so that we can now rev the interface without breaking\nexisting callers.\n\nBug 13551375\n\nChange-Id: Ifa4e59154dcccbb286ee46a35a6f25e4ad0f0f01\n"
    },
    {
      "commit": "1ee4eb074c2d85148658e93e865a18834bdced72",
      "tree": "9ac244717091a290c8c06a3de80b4eeb8d97679b",
      "parents": [
        "460572b22fe8fe5880ad099090b38765e2f8a2f6",
        "7629a18a3f190368e6268d3f2827824905683268"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 20:00:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 20:00:11 2014 +0000"
      },
      "message": "Merge \"Revert \"Expand install observer semantics\"\""
    },
    {
      "commit": "7629a18a3f190368e6268d3f2827824905683268",
      "tree": "392b2bde32c959d39d7a37bc0f3c46d7fbe3a55b",
      "parents": [
        "ab8a501f255b272af887acb0e66eb71cdf24c755"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 19:59:48 2014 +0000"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 19:59:48 2014 +0000"
      },
      "message": "Revert \"Expand install observer semantics\"\n\nThis reverts commit ab8a501f255b272af887acb0e66eb71cdf24c755.\n\nChange-Id: I4ab4ae1a96efa2adf9d5a513793d8b84eef38b4e\n"
    },
    {
      "commit": "9067dc03ffc76c5210d26d5a53a211eff046d412",
      "tree": "23576fc1d98647012488024e19b3254fbb4d3382",
      "parents": [
        "583080d87cbf08c253e79feafd6a1b74cf3cddc1",
        "ab8a501f255b272af887acb0e66eb71cdf24c755"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Mar 26 19:23:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 19:24:09 2014 +0000"
      },
      "message": "Merge \"Expand install observer semantics\""
    },
    {
      "commit": "ab8a501f255b272af887acb0e66eb71cdf24c755",
      "tree": "4428aa0f60d4a2a309e8882d27fab9c5b20ad5c3",
      "parents": [
        "48a5dbd3cc5dd8a919983455757dc4c7b82500ab"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 24 16:25:51 2014 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 25 19:28:54 2014 -0700"
      },
      "message": "Expand install observer semantics\n\n...and now fail conservatively when two apps both attempt to define\nthe same permission.\n\nWe also finally have a (hidden) interface class for observing package\ninstallation so that we can now rev the interface without breaking\nexisting callers.\n\nBug 13551375\n\nChange-Id: I3a286d024a30e812ee4b098f345401df3c00e178\n"
    },
    {
      "commit": "10bf6354a536152719bf4524429aa5739836c541",
      "tree": "ee0d72a8257a59bb84835d30dde674a08c9c571b",
      "parents": [
        "f53d1a01972d04402b48476d6a8173285516edd3"
      ],
      "author": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue Mar 25 15:00:45 2014 -0700"
      },
      "committer": {
        "name": "Yuhao Zheng",
        "email": "yuhaozheng@google.com",
        "time": "Tue Mar 25 15:00:45 2014 -0700"
      },
      "message": "Wifi hotspot stack initial hook up\n\nAdd a dummy wifi hotspot service for futher development use. This is to\nresolve the different between master branch and kwd branch, such that future\ndevelopment can go into kwd and being auto-merged to master.\n\nbug: 5485670\nChange-Id: Ica58de445dd050a9f0b817f8e4accaa2478299c5\n"
    },
    {
      "commit": "f1e1e7714375b3b83f2cc3956b112293face56a1",
      "tree": "f78b133e81542b0f3c551d754ab3c02c6d1d6425",
      "parents": [
        "0a8596dc0c497404a332ae990b2bd77553cde870"
      ],
      "author": {
        "name": "Gabriel Peal",
        "email": "gpeal@google.com",
        "time": "Fri Mar 21 11:31:32 2014 -0700"
      },
      "committer": {
        "name": "Gabriel Peal",
        "email": "gpeal@google.com",
        "time": "Tue Mar 25 11:08:19 2014 -0700"
      },
      "message": "resolved conflicts for merge of 74fb97de to master\n\nChange-Id: If28dc21a2ea7e634da130f3c59c17cd63dd5336a\n"
    },
    {
      "commit": "a42cb8b0e2b8fdfbac1a6590d6b60814caa01088",
      "tree": "d903e1aca9c2345e98dbe99188524feef35b21c3",
      "parents": [
        "fb40d78c57711585c9eaed467601bf3adb4f60f9",
        "a67e34c80fb5b1936fe0beeea3faec3218ead1a3"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 21 13:11:02 2014 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Mar 21 13:11:02 2014 -0700"
      },
      "message": "resolved conflicts for merge of a67e34c8 to master\n\nChange-Id: I597525886260884c9b2dfc7945e01eb8138a58c2\n"
    },
    {
      "commit": "8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda",
      "tree": "424ee490ecedaed22da440cbaf4eb34411649bac",
      "parents": [
        "17cb58137949420e83d29aeec4f933c35565027c"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 24 13:46:47 2014 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 20 16:52:59 2014 +0000"
      },
      "message": "Added accessibility APIs for introspecting interactive windows.\n\n1. The old introspection model was allowing querying only the active window\n   which is the one the user is touching or the focused one if no window is\n   touched. This was limiting as auto completion drop downs were not inspectable,\n   there was not way to know when the IME toggles, non-focusable windows were\n   not inspectable if the user taps them as until a screen-reader starts\n   introspecting the users finger is up, accessibility focus was limited to\n   only one window and the user couldn\u0027t use gestures to visit the whole UI,\n   and other things I can\u0027t remember right now.\n\n   The new APIs allow getting all interactive windows, i.e. ones that a\n   sighted user can interact with. This prevents an accessibility service\n   from interacting with content a sighter user cannot. The list of windows\n   can be obtained from an accessibility service or the host window from an\n   accessibility node info. Introspecting windows obey the same rules for\n   introspecting node, i.e. the service has to declare this capability\n   in its manifest.\n\n   When some windows change accessibility services receive a new type\n   of event. Initially the types of windows is very limited. We provide\n   the bounds in screen, layer, and some other properties which are\n   enough for a client to determined the spacial and hierarchical\n   relationship of the windows.\n\n2. Update the documentation in AccessibilityService for newer event types.\n\n3. LongArray was not removing elements properly.\n\n4. Composite accessibility node ids were not properly constructed as they\n   are composed of two ints, each taking 32 bits. However, the values for\n   undefined were -1 so composing a 64 long from -1, -1 prevents from getting\n   back these values when unpacking.\n\n5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added\n   a check that enforces such trees to be well formed on dev builds.\n\n6. Removed an necessary code for piping the touch exploration state to\n   the policy as it should just use the AccessibilityManager from context.\n\n7. When view\u0027s visibility changed it was not firing an event to notify\n   clients it disappeared/appeared. Also ViewGroup was sending accessibility\n   events for changes if the view is included for accessibility but this is\n   wrong as there may be a service that want all nodes, hence events from them.\n   The accessibility manager service takes care of delivering events from\n   not important for accessibility nodes only to services that want such.\n\n8. Several places were asking for prefetching of sibling but not predecessor\n   nodes which resulted in prefetching of unconnected subtrees.\n\n9. The local AccessibilityManager implementation was relying on the backing\n   service being ready when it is created but it can be fetched from a context\n   before that. If that happens the local manager was in a broken state forever.\n   Now it is more robust and starts working properly once the backing service\n   is up. Several places were lacking locking.\n\nbug:13331285\n\nChange-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8\n"
    },
    {
      "commit": "4f512fb451c8ddcea852645c5c24314c20c0974b",
      "tree": "315ec495986e5dfff86f21705045de17b4f63764",
      "parents": [
        "fd6b99750bfab7f930ee375a79009874a3196165"
      ],
      "author": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Fri Feb 28 17:41:17 2014 +0900"
      },
      "committer": {
        "name": "Jinsuk Kim",
        "email": "jinsukkim@google.com",
        "time": "Thu Mar 20 16:40:22 2014 +0900"
      },
      "message": "Add HDMI-CEC service\n\nThis CL adds a system service handling HDMI-CEC protocol. The service\nis equipped with the capability sending/receiving HDMI-CEC messages\n\nNot all the messages are in place. Currently it has messages to support\na few features only, as follows:\n\n- One touch play\n- System information\n- Routing control (partially - active source status maintenance only)\n- Device OSD transfer\n- Power status\n\nIt will be extended to cover the wider usages in the follow up CLs.\n\nThe CEC standard version referenced in the implementation is 1.3a.\n\nChange-Id: Ifed0b02f52ebf098eddb3bd0987efbf353b7e8fe\n"
    },
    {
      "commit": "57ad97fb701876ecb87b76f29592a41731aeb487",
      "tree": "16e61fb4728585ca31d77c9247fec586db00ec78",
      "parents": [
        "19caf39612a574672169402d79be4d161b122290",
        "06d37f716f3afb58ed691e749781b76881d5877f"
      ],
      "author": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Thu Mar 13 22:11:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 13 22:11:41 2014 +0000"
      },
      "message": "Merge \"Add removeApi commandline option for doclava and an empty removed.txt\""
    },
    {
      "commit": "77b987f1a1bb6028a871de01065b94c4cfff0b5c",
      "tree": "2d9cb3255a3e7dbf6dc1a1d8d3fc45ba8293e957",
      "parents": [
        "454a0384708433e165a6340dc98bd060775ec613"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 26 16:20:52 2014 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 28 15:19:39 2014 -0800"
      },
      "message": "Hold a wake lock while dispatching network activity events.\n\nAlso add new API for determining whether the current data network\nis active, and thus better scheduling network operations.  This\nAPI is designed to not be tied to a mobile network -- regardless\nof the network, apps can use it to determine whether they should\ninitiate activity or wait.  On non-mobile networks, it simply always\nreports as the network being active.\n\nThis changed involved reworking how the idle timers are done so\nthat we only register an idle timer with the current default\nnetwork.  This way, we can know whether we currently expect to\nget callbacks about the network being active, or should just always\nreport that it is active.  (Ultimately we need to be getting this\nradio active data from the radio itself.)\n\nChange-Id: Iaf6cc91a960d7542a70b72f87a7db26d12c4ea8e\n"
    },
    {
      "commit": "2f5b057da7d05d5d699a272aa24fd7c97cdda820",
      "tree": "c11d78d206773981c7057110a54d186ed02cdcc5",
      "parents": [
        "503923220cca802f6dfc12f902ab0f6d1a12434f"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Fri Feb 21 10:30:38 2014 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Tue Feb 25 16:01:55 2014 -0800"
      },
      "message": "Move Session apis to android.media.session\n\nThis is to make it easier to distinguish the new apis from the old\nones.\n\nChange-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7\n"
    },
    {
      "commit": "06d37f716f3afb58ed691e749781b76881d5877f",
      "tree": "b60b9bddef48f42a9c2c85de4abce4d5fd3f4c5d",
      "parents": [
        "e6415f50b10fe455df2cbe568a90bc762cce3cf7"
      ],
      "author": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Fri Feb 21 14:13:00 2014 -0800"
      },
      "committer": {
        "name": "Hui Shu",
        "email": "hush@google.com",
        "time": "Fri Feb 21 17:24:03 2014 -0800"
      },
      "message": "Add removeApi commandline option for doclava and an empty removed.txt\n\nBUG: b/11293324\nChange-Id: Ief41ae23f3d6364260ce34ee9f3211130a6a83d7\n"
    },
    {
      "commit": "10102e4c0e501333a12b38a5cfe709d1558d84dd",
      "tree": "6b4b3b43c1e55d3812664a8530d7d72f633d596d",
      "parents": [
        "1a405db22a2ade6b745f3e1cf93ba0c54b048d95",
        "baaa080b625f2448758d87dadc2706d0e2335a86"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 18:05:03 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 18:05:03 2014 -0800"
      },
      "message": "resolved conflicts for merge of baaa080b to master\n\nChange-Id: I3ee12321e298f7a2ea577a99f30c49f3bb497fae\n"
    },
    {
      "commit": "2687550272ba061448f5d5b914700dc335299ee7",
      "tree": "fc68c5ecec24ec2aa120ccf490d7a56573704a73",
      "parents": [
        "d43ad2f35abcc647f7985abd09ed9de5899faf18"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 30 21:47:47 2014 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Feb 20 13:39:13 2014 -0800"
      },
      "message": "Add a new \"doze mode\" based on Dream components.\n\nWhen a doze component has been specified in a config.xml resource\noverlay, the power manager will try to start a preconfigured dream\nwhenever it would have otherwise gone to sleep and turned the\nscreen off.  The dream should render whatever it intends to show\nthen call startDozing() to tell the power manager to put the display\ninto a low power \"doze\" state and allow the application processor\nto be suspended.  The dream may wake up periodically using the\nalarm manager or other features to update the contents of the display.\n\nAdded several new config.xml resources related to dreams and dozing.\nIn particular for dozing there are two new resources that pertain to\ndecoupling auto-suspend mode and interactive mode from the display\nstate.  This is a requirement to enable the application processor\nand other components to be suspended while dozing.  Most devices\ndo not support these features today.\n\nConsolidated the power manager\u0027s NAPPING and DREAMING states into one\nto simplify the logic.  The NAPPING state was mostly superfluous\nand simply indicated that the power manager should attempt to start\na new dream.  This state is now tracked in the mSandmanSummoned field.\n\nAdded a new DOZING state which is analoguous to DREAMING.  The normal\nstate transition is now: AWAKE -\u003e DREAMING -\u003e DOZING -\u003e ASLEEP.\nThe PowerManager.goToSleep() method now enters the DOZING state instead\nof immediately going to sleep.\n\nWhile in the doze state, the screen remains on.  However, we actually\ntell the rest of the system that the screen is off.  This is somewhat\nunfortunate but much of the system makes inappropriate assumptions\nabout what it means for the screen to be on or off.  In particular,\nscreen on is usually taken to indicate an interactive state where\nthe user is present but that\u0027s not at all true for dozing (and is\nonly sometimes true while dreaming).  We will probably need to add\nsome more precise externally visible states at some point.\n\nThe DozeHardware interface encapsulates a generic microcontroller\ninterface to allow a doze dream for off-loading rendering or other\nfunctions while dozing.  If the device possesses an MCU HAL for dozing\nthen it is exposed to the DreamService here.\n\nRemoved a number of catch blocks in DreamService that caught Throwable\nand attempted to cause the dream to finish itself.  We actually just\nwant to let the process crash.  Cleanup will happen automatically if\nneeded.  Catching these exceptions results in mysterious undefined\nbehavior and broken dreams.\n\nBug: 12494706\nChange-Id: Ie78336b37dde7250d1ce65b3d367879e3bfb2b8b\n"
    },
    {
      "commit": "332886854438809e956fb232b69879e33b5dc2bb",
      "tree": "ddda4e05eba4ed396691ff90b8f2e498d9c8e699",
      "parents": [
        "ff699570f62113b4df5b0efd74b9df8b9dbcd1a9",
        "01fe661ae5da3739215d93922412df4b24c859a2"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Feb 20 00:25:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 20 00:25:10 2014 +0000"
      },
      "message": "Merge \"Initial round of MediaSession APIs\""
    },
    {
      "commit": "01fe661ae5da3739215d93922412df4b24c859a2",
      "tree": "fbc2bb43edec44c553256de377312741f87f434f",
      "parents": [
        "d63b4314b85e982a1d70d4064af59851f476dd36"
      ],
      "author": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Thu Feb 13 14:19:04 2014 -0800"
      },
      "committer": {
        "name": "RoboErik",
        "email": "epastern@google.com",
        "time": "Wed Feb 19 13:41:37 2014 -0800"
      },
      "message": "Initial round of MediaSession APIs\n\nThis is far from complete but puts the basic components in place\nfor an app to interact with media sessions.\n\nChange-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f\n"
    },
    {
      "commit": "f86a9221a448178f4760192f082f3701ac487a47",
      "tree": "160c49d0c8cf7940f078999577e05812268c11ad",
      "parents": [
        "5441745effb885589c03050b59885e8a3ad96ad6"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 18 17:02:37 2014 -0800"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Feb 18 17:04:10 2014 -0800"
      },
      "message": "Delete Third Party Call APIs\n\nChange-Id: I6121c53362804a228e0316a1666b5032817530ab\n"
    },
    {
      "commit": "5da502a5b2a6eed6cf667c5d609818442a838c8a",
      "tree": "2db04f99e035a7208ca4124c6b0932b4440a2ac3",
      "parents": [
        "35fbb9f9e59795e233fb59cb5a87573e4669aebd",
        "b9378d8108555c920880d7ec7ec4122b04fb2960"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 11:27:30 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 11:27:30 2014 +0000"
      },
      "message": "am b9378d81: am 321cd18a: am 820bb4bd: am 9c50271d: am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u0027b9378d8108555c920880d7ec7ec4122b04fb2960\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "820bb4bdd358bfaac446b8ce4af5474dcfc77613",
      "tree": "77a866fb85f29e9a3064c7a6d2017be1ad4fb289",
      "parents": [
        "4b79f8380c47b0da89348e1115ea70e7898997ca",
        "9c50271dc34e48d527db7da85c3b3474574faee2"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:50:08 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:50:08 2014 +0000"
      },
      "message": "am 9c50271d: am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u00279c50271dc34e48d527db7da85c3b3474574faee2\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "9c50271dc34e48d527db7da85c3b3474574faee2",
      "tree": "6be07da13b021b342917a7f38d62bc9e2a2c55a1",
      "parents": [
        "acec746b8963410d4a9324df46272ac91f846868",
        "257f67249afb017c9a3d0a79e545da567aa5bd02"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:47:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:47:02 2014 +0000"
      },
      "message": "am 257f6724: am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u0027257f67249afb017c9a3d0a79e545da567aa5bd02\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "257f67249afb017c9a3d0a79e545da567aa5bd02",
      "tree": "98b6c9521df98bb7da5daa5bb3fa1f8a2cd2516b",
      "parents": [
        "55362018c9dfadff5eb1a138a1d90187110c253e",
        "35cb4e49365a8a8da0607c2659399aaad9ea5a1c"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Feb 13 03:44:38 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 13 03:44:38 2014 +0000"
      },
      "message": "am 35cb4e49: Doc change: add new samples TOC groups and landing pages.\n\n* commit \u002735cb4e49365a8a8da0607c2659399aaad9ea5a1c\u0027:\n  Doc change: add new samples TOC groups and landing pages.\n"
    },
    {
      "commit": "35cb4e49365a8a8da0607c2659399aaad9ea5a1c",
      "tree": "bb189c3451dcc50eefe4a789cc5604e53395935c",
      "parents": [
        "271c8f12c88e87563ed17f4ad29610037bd300be"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Feb 07 21:05:43 2014 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Feb 12 19:38:51 2014 -0800"
      },
      "message": "Doc change: add new samples TOC groups and landing pages.\n\nChange-Id: I2f39e82fb79d4f19362d9fe2deafdde5d87873a7\n"
    },
    {
      "commit": "cb1b23b5e600abe542e3374b66c2be7976fccd72",
      "tree": "ee69a2b5fa337ef8b4ae8c9efc0734e7cf2751c2",
      "parents": [
        "829a57c9a52d6cd11916b926491f8addcef526ec",
        "d2506a506303ed94fd1991cf986b825b870a67c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 05 17:13:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 05 17:13:07 2014 +0000"
      },
      "message": "Merge \"FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code\""
    },
    {
      "commit": "d2506a506303ed94fd1991cf986b825b870a67c5",
      "tree": "5e5116da8f0ae6a56c93b37d0dd483ded11295d1",
      "parents": [
        "10586ad2a6996b8f9f84ed47a65ccc2d883fc19f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 29 10:32:46 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 04 14:45:28 2014 -0800"
      },
      "message": "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code\n\nChange-Id: I7f6cdcfd2a28846d36d89dd5180ef20a22b03af8\n"
    },
    {
      "commit": "d417d625d244356bc770e2692fd59e754a72f59f",
      "tree": "2f45745021f70830046d62fc844e1f6c248235d7",
      "parents": [
        "d0856259762eddd873a068c2e9cd3d4e45009a68"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Aug 19 16:14:25 2013 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jan 31 15:41:40 2014 -0800"
      },
      "message": "Introduce \"IdleService\" API to expose idle-time maintenance to apps\n\nWhen an application wishes to do low-priority background work when the\ndevice is otherwise idle (e.g. in a desk dock overnight), it declares\na service in its manifest that requires this permission:\n\n     android:permission\u003d\"android.permission.BIND_IDLE_SERVICE\n\nto launch, and which publishes this intent filter:\n\n    \u003cintent-filter\u003e\n        \u003caction android:name\u003d\"android.service.idle.IdleService\" /\u003e\n    \u003c/intent-filter\u003e\n\nThis string is declared in the API as IdleService.SERVICE_INTERFACE.\n\nThe service must be implemented by extending the new \"IdleService\"\nclass, which provides the API through which the system will communicate\nwith the app.\n\nIdleService declares three methods, two of which are lifecycle callbacks\nto the service, and the third of which is for the service itself to\ninvoke when appropriate.  The lifecycle callbacks are\n\n    public abstract boolean onIdleStart();\n    public abstract void onIdleStop();\n\nThe first of these is a notification to the service that an idle\nmaintenance interval has begun.  The service can then spin off\nwhatever non-UI work it wishes.  When the interval is over, or if\nthe OS determines that idle services should be shut down immediately,\nthe onIdleStop() method will be invoked.  The service must shut down\nany background processing immediately when this method is called.\n\nBoth of these methods must return immediately.  However, the OS\nholds a wakelock on the application\u0027s behalf for the entire period\nbetween the onIdleStart() and onIdleStop() callbacks.  This means\nthat for system-arbitrated idle-time operation, the application does\nnot need to do any of its own wakelock management, and does not need\nto hold any wakelock permissions.\n\nThe third method in IdleService is\n\n    public final void finishIdle();\n\nCalling this method notifies the OS that the application has finished\nwhatever idle-time operation it needed to perform, and the OS is thus\nfree to release the wakelock and return to normal operation (or to\nallow other apps to run their own idle services).\n\nCurrently the idle window granted to each idle service is ten minutes.\nThe OS is rather conservative about when these services are run; low\nbattery or any user activity will suppress them, and the OS will not\nchoose to run them particularly often.\n\nIdle services are granted their execution windows in round-robin\nfashion.\n\nBug 9680213\n\nChange-Id: Idd6f35940c938c31b94aa4269a67870abf7125b6\n"
    },
    {
      "commit": "c0877962b3dc49edb42aeda766593123c81613f1",
      "tree": "08c32d9014f41985d7c515168fc6cf195fd84521",
      "parents": [
        "5dadeba229a9e844ef9064b1b0d67756deb7e91e"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 21 15:22:26 2014 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 28 23:00:14 2014 +0000"
      },
      "message": "Adding the print and accessibility pacelables to framework.aidl\n\n1. There are a few parcelable classes related to printing and accessibility\n   which are public but not added in the framework.aidl list so third parties\n   cannot write aidl interfaces that pass these classes. As these classes\n   are public it is resonable for devepers to be able to pass them between\n   processes.\n\nChange-Id: I85da1de5198902b74f19d23e3fe16b45b4a11051\n"
    },
    {
      "commit": "ff288f7f57dfd7f12a6e8c36d9d46331077dbc03",
      "tree": "0a7bb2027da086281f8be712c99dc170b51410b2",
      "parents": [
        "ed6649f89f236ea9e665028bd33d6d804b906a92",
        "b7bba718a88e9baa843e51d9871129d8e682c0b0"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Dec 19 10:55:17 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Dec 19 10:55:17 2013 -0800"
      },
      "message": "resolved conflicts for merge of b7bba718 to master\n\nChange-Id: Ibbac3f6e3eda0149ae9446d6baed1d1bee5138ac\n"
    },
    {
      "commit": "4a1cb22056112f7ffd5f4fad8b7a092b96e7cc7b",
      "tree": "2a30eb0760369a59905895e88f8325fbf9934414",
      "parents": [
        "3bcdbd6b2d96427d7cee835e9ed79aeed51de267"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 04 16:14:06 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Wed Dec 18 15:08:15 2013 -0800"
      },
      "message": "Pair ActivityStacks with Displays\n\n- Introduce concept of ActivityStacks residing on Displays and able\nto be decoupled and moved around.\n- Add a new interface, IActivityContainer for clients to handle\nActivityStacks.\n- Abandon ordering of stacks based on mStackState and instead use\nActivityDisplayInfo.stacks\u003cActivityStack\u003e ordering.\n\nProgress towards closing bug 12078972.\n\nChange-Id: I7785b61c26dc17f432a4803eebee07c7415fcc1f\n"
    },
    {
      "commit": "38a7ed05f8fed0aa81f7214d827875f9876ffbe1",
      "tree": "21326de7ea27d6cc69eaa8a9fd3db091f2ef2a4c",
      "parents": [
        "3732f8d078b69b76461a50ce7a5fa8c9a1a61a42"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Thu Nov 14 19:02:56 2013 -0800"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Mon Dec 09 14:41:01 2013 -0800"
      },
      "message": "Adding INfcUnlockSettings and NfcUnlock interface class.\n\nChange-Id: Ie55a5d4bb58c2944952fc84cce32d3573a3a1a22\n"
    },
    {
      "commit": "b33fe50a634e4fde635f7e662526db1c3e2cfa5c",
      "tree": "879eee3a2b7e7d84da31eec07eb0adbb2c1e4689",
      "parents": [
        "59595f7a3e8efcefc62bbcf8e085b6da6d8ea339",
        "dcbde1b02ad69c18509afd87974c72c3a22f45dd"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Dec 05 09:47:04 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 05 09:47:04 2013 -0800"
      },
      "message": "am dcbde1b0: Merge \"libcore_to_document and junit_to_document are no longer functions.\"\n\n* commit \u0027dcbde1b02ad69c18509afd87974c72c3a22f45dd\u0027:\n  libcore_to_document and junit_to_document are no longer functions.\n"
    },
    {
      "commit": "50a0fd50f7f76a76d068690e63194169da292215",
      "tree": "047df7122cc0db914c98aeb835ffc93513a5a4fd",
      "parents": [
        "453a5233086b216f2a95d0879954a2af39279095"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:01:06 2013 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:58:59 2013 -0800"
      },
      "message": "libcore_to_document and junit_to_document are no longer functions.\n\nThey are evaluated only once in the corresponding export .mk file.\nThis fixes build log spam reported in:\nhttps://code.google.com/p/android/issues/detail?id\u003d63184\n\nChange-Id: I549eb052272bbdebef8fca697822f5eaa0fe5764\n"
    },
    {
      "commit": "c79d6a9bd6de724ec2357537ce8655f1845d481d",
      "tree": "d4465edd1e4a295ae49ffb81501ee15dc7632b95",
      "parents": [
        "c3c4d36df01631883a79163da841ca222497c9d3"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:01:06 2013 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Wed Dec 04 16:01:06 2013 -0800"
      },
      "message": "libcore_to_document and junit_to_document are no longer functions.\n\nThey are evaluated only once in the corresponding export .mk file.\nThis fixes build log spam reported in:\nhttps://code.google.com/p/android/issues/detail?id\u003d63184\n\nChange-Id: I549eb052272bbdebef8fca697822f5eaa0fe5764\n"
    },
    {
      "commit": "2fbe13dc63bea12ceddc4bf047058970bdc381c3",
      "tree": "6f8c8536c88997bf5dd935eeb51638df207f452f",
      "parents": [
        "9318944dd19ff5db04c286f869a8f130d3e305f9",
        "713e3853bf57410f389496c20db1fc3818b3d5d8"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Sat Nov 23 12:34:06 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 23 12:34:06 2013 -0800"
      },
      "message": "am 713e3853: am 0b492138: am 6000f1ed: Re-enable samples browser.\n\n* commit \u0027713e3853bf57410f389496c20db1fc3818b3d5d8\u0027:\n  Re-enable samples browser.\n"
    },
    {
      "commit": "0b492138c744299e695b6aeee24eebb880de1c7d",
      "tree": "e582ef3e2e39f8bbb5d8353862766514dbaf8975",
      "parents": [
        "a0501105723ac742114ee07bd610ddf5e2713c82",
        "6000f1ed3d402e3136df173d987c901cc3cc1ff2"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Sat Nov 23 20:28:04 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 23 20:28:04 2013 +0000"
      },
      "message": "am 6000f1ed: Re-enable samples browser.\n\n* commit \u00276000f1ed3d402e3136df173d987c901cc3cc1ff2\u0027:\n  Re-enable samples browser.\n"
    },
    {
      "commit": "6000f1ed3d402e3136df173d987c901cc3cc1ff2",
      "tree": "0557a5c04a9d77be369a7adca4400c1438e9188a",
      "parents": [
        "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 14:01:48 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 14:01:48 2013 -0800"
      },
      "message": "Re-enable samples browser.\n\nChange-Id: I9d0c5966422ba0cf8bca576895f30679d40a19ab\n"
    },
    {
      "commit": "59aa4be0ec76f09446f08ba3e95e162af78b8db3",
      "tree": "b4739668e0b16bc7ad6b0152843552aa1766c0d8",
      "parents": [
        "39fa9b111958a9a5f43da114e926c832529da194",
        "a6703462926408fa83f41a2cb319e4f51fa7d4ca"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 11:03:29 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 11:03:29 2013 -0800"
      },
      "message": "am a6703462: am a0501105: am 9eaa9443: Disable samples browsing temporarily.\n\n* commit \u0027a6703462926408fa83f41a2cb319e4f51fa7d4ca\u0027:\n  Disable samples browsing temporarily.\n"
    },
    {
      "commit": "a0501105723ac742114ee07bd610ddf5e2713c82",
      "tree": "0353ca6728bb248423777658c3957ecc6ed3aadf",
      "parents": [
        "8b5da35670960586d5b41ee101026b89522ceb74",
        "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 18:55:28 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 18:55:28 2013 +0000"
      },
      "message": "am 9eaa9443: Disable samples browsing temporarily.\n\n* commit \u00279eaa94439121f6cb03bff8ecf0acbcbc74442f2d\u0027:\n  Disable samples browsing temporarily.\n"
    },
    {
      "commit": "9eaa94439121f6cb03bff8ecf0acbcbc74442f2d",
      "tree": "8878d78f64ffbd32e6c842788e15ccf896bdcc75",
      "parents": [
        "1448d3cd81a685c68b0102e8303c0db4e6e5668f"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:46:22 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:46:22 2013 -0800"
      },
      "message": "Disable samples browsing temporarily.\n\nChange-Id: I65fe533f1b43903d6605d17691ec142d062b6b5e\n"
    },
    {
      "commit": "39fa9b111958a9a5f43da114e926c832529da194",
      "tree": "32eb88870e44eda230ccc2e866c8f002d7900159",
      "parents": [
        "21430bd763d2e27ed1227432fe30323c9072538c",
        "3ee2c60e453e19b02b0ab52793045d2dd9a20912"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 10:45:47 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 10:45:47 2013 -0800"
      },
      "message": "am 3ee2c60e: am 8b5da356: am 1448d3cd: Merge \"Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\" into klp-docs\n\n* commit \u00273ee2c60e453e19b02b0ab52793045d2dd9a20912\u0027:\n  Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n"
    },
    {
      "commit": "8b5da35670960586d5b41ee101026b89522ceb74",
      "tree": "e582ef3e2e39f8bbb5d8353862766514dbaf8975",
      "parents": [
        "263c431017c51fc51c85454a0f9cc7979001a3c1",
        "1448d3cd81a685c68b0102e8303c0db4e6e5668f"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Nov 22 18:38:20 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 22 18:38:20 2013 +0000"
      },
      "message": "am 1448d3cd: Merge \"Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\" into klp-docs\n\n* commit \u00271448d3cd81a685c68b0102e8303c0db4e6e5668f\u0027:\n  Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n"
    },
    {
      "commit": "5c678cedb5970b1d7c4090b8e8c308c4978a3e01",
      "tree": "09da5206a6eb82542102ab7991bd836d493ef180",
      "parents": [
        "43eea0a640db07c4da05146f7e68eae567592bdb"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Nov 21 18:11:58 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Nov 21 18:39:57 2013 -0800"
      },
      "message": "Pass a new samplesdir param to doclava as the starting point for generating samples browsing files. Removes older project-based configuration.\n\nChange-Id: If59372a92f0572d54af0f2ed7f9f9e401fbce067\n"
    },
    {
      "commit": "7acec30ac7d5b2fba11757a2d2e3ad351be23441",
      "tree": "d2d14409bc036dadc54c6b658ace4ecaa77e9bb2",
      "parents": [
        "7a7563c0bd659f7e3f994dec958a16147541b15d",
        "3d763e258b6643d29a495b5dfb1cb376e6b61f87"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Nov 19 18:24:20 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 19 18:24:20 2013 -0800"
      },
      "message": "am 3d763e25: am a9a39d6c: am acca12fa: Merge \"Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\" into klp-docs\n\n* commit \u00273d763e258b6643d29a495b5dfb1cb376e6b61f87\u0027:\n  Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\n"
    },
    {
      "commit": "a9a39d6ca25796ba0fcf16ead3a9928f36b6444d",
      "tree": "55db1c489b48c71b8683b009cedc244452af0a58",
      "parents": [
        "26574688b627f5b5d722834d73cba5f37185770f",
        "acca12faea5fc1c9de63fdc08ae4d6bc0bad864a"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Nov 20 02:16:21 2013 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 20 02:16:21 2013 +0000"
      },
      "message": "am acca12fa: Merge \"Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\" into klp-docs\n\n* commit \u0027acca12faea5fc1c9de63fdc08ae4d6bc0bad864a\u0027:\n  Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\n"
    },
    {
      "commit": "5f0462a4f57d857a7fda3c5b7ecc075c7b9c1f6f",
      "tree": "6da5b08e8437620f5b94b6cfb9d6724aea596bbe",
      "parents": [
        "abb4d2da4374eb5e5e7a750e4b60a9145b1b1058"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Nov 19 13:15:07 2013 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Nov 19 17:55:49 2013 -0800"
      },
      "message": "Doc change: move localized files into an intl dir. Build output remains the same for online, offline, and ds docs.\n\nChange-Id: Ia75712323563cf56f0224822cb7977f3421f8527\n"
    },
    {
      "commit": "697d9f2f30dfaf87fbebdd182e47fc552d345ce5",
      "tree": "850eb4599de9689b94296573e03e7816cd7bc3a4",
      "parents": [
        "0d784869c6db9649723e520cb25cc1fbe2db84b1"
      ],
      "author": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Tue Nov 12 13:26:27 2013 -0800"
      },
      "committer": {
        "name": "Sailesh Nepal",
        "email": "sail@google.com",
        "time": "Wed Nov 13 12:27:21 2013 -0800"
      },
      "message": "Add ThirdPartyCall APIs to master\n\nThese are APIs for the new ThirdPartyPhone feature.\n\nNote, these APIs can\u0027t actually be used yet on master for two reasons:\n  - initiating a call from a 3rd party app isn\u0027t possible yet because\n    the TelephonyManager APIs aren\u0027t being added to master.\n  - the TeleService implementation of these APIs aren\u0027t being added to\n    master.\n\nAlso, these APIs will be removed and the final ones will be added\nonce they\u0027re ready to be merged into master.\n\nChange-Id: Ie783290451da448a011f813983e55b12047b5d99\n"
    },
    {
      "commit": "7da5bbedc75d7143d5b2cf36c4876f7b09a88807",
      "tree": "ee4e576c15a787bffc1bc83149c754fc17950b20",
      "parents": [
        "6c58d890f3a6993a3bcf413b84ba6fba875832f8",
        "c2b652fd4d386b79dc99af249b6ad3844e53fdf1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 17:47:25 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 07 17:47:25 2013 -0800"
      },
      "message": "am c2b652fd: am 5182ea4b: am d40a4d74: Merge \"Add media router service and integrate with remote displays.\" into klp-dev\n\n* commit \u0027c2b652fd4d386b79dc99af249b6ad3844e53fdf1\u0027:\n  Add media router service and integrate with remote displays.\n"
    },
    {
      "commit": "6c58d890f3a6993a3bcf413b84ba6fba875832f8",
      "tree": "f35ed5445047369a8d1af5775e55ff1e376134bf",
      "parents": [
        "42bb698dbbabd0a174ded0d209bdc3fdd5d3603c",
        "84d760257f46232601e5f47411fb4e59f57f1872"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 17:47:21 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 07 17:47:21 2013 -0800"
      },
      "message": "am 84d76025: am eb223425: am 1f7a8a06: Merge \"Add a platform library for remote display providers.\" into klp-dev\n\n* commit \u002784d760257f46232601e5f47411fb4e59f57f1872\u0027:\n  Add a platform library for remote display providers.\n"
    },
    {
      "commit": "5182ea4bb20ec8fbe9562d0eaae8135d433ea0b6",
      "tree": "31d81e7502c6e021ca685e0f5aa4a12a4d822b2c",
      "parents": [
        "eb223425e38cd9a3da12cd38c8c41e696c6b7e96",
        "d40a4d74c623175c96a2e9d865a99826e56d1132"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 17:41:44 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 07 17:41:44 2013 -0800"
      },
      "message": "am d40a4d74: Merge \"Add media router service and integrate with remote displays.\" into klp-dev\n\n* commit \u0027d40a4d74c623175c96a2e9d865a99826e56d1132\u0027:\n  Add media router service and integrate with remote displays.\n"
    },
    {
      "commit": "eb223425e38cd9a3da12cd38c8c41e696c6b7e96",
      "tree": "6601e0ea09e4cb1b1efadac484e124a6efb51d07",
      "parents": [
        "94cab389e4f81d454316789fb0a6fbe954080a08",
        "1f7a8a06256907e03405f89108f081289c23e97a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 17:41:41 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 07 17:41:41 2013 -0800"
      },
      "message": "am 1f7a8a06: Merge \"Add a platform library for remote display providers.\" into klp-dev\n\n* commit \u00271f7a8a06256907e03405f89108f081289c23e97a\u0027:\n  Add a platform library for remote display providers.\n"
    },
    {
      "commit": "d40a4d74c623175c96a2e9d865a99826e56d1132",
      "tree": "8fcb8823aab60b909ff4962d5b00fdd5681ad806",
      "parents": [
        "1f7a8a06256907e03405f89108f081289c23e97a",
        "69b07161bebdb2c726e3a826c2268866f1a94517"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 08 01:36:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 08 01:36:55 2013 +0000"
      },
      "message": "Merge \"Add media router service and integrate with remote displays.\" into klp-dev"
    },
    {
      "commit": "1f7a8a06256907e03405f89108f081289c23e97a",
      "tree": "8ef01bc8a8f7b2b7edfa3cb1633dc2c0f2f5b882",
      "parents": [
        "1e45fd78090693c5eff346feb32bab90f31a5e30",
        "f3c99e883f46c56e5e2877e844b902b6eb45545b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 08 01:36:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 08 01:36:41 2013 +0000"
      },
      "message": "Merge \"Add a platform library for remote display providers.\" into klp-dev"
    },
    {
      "commit": "69b07161bebdb2c726e3a826c2268866f1a94517",
      "tree": "8d9c94f32a045a8f5c48ca0f1380abc760eac807",
      "parents": [
        "f3c99e883f46c56e5e2877e844b902b6eb45545b"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 00:30:16 2013 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 03:25:37 2013 -0800"
      },
      "message": "Add media router service and integrate with remote displays.\n\nThis change adds a new media router service whose purpose is to track\nglobal state information associated with media routes.  This service\npublishes routes to the media router instance in application processes\nand handles requested state changes such as selecting or unselecting\nglobal routes.  The service also binds to remote display provider\nservices which can offer new remote display routes to the system.\n\nIncludes a test application for manually verifying certain aspects\nof the operation of the media router service.\n\nThe remote display provider interface is essentially a stripped down\nmedia route provider interface as defined in the support library\nmedia router implementation.  For now, it is designed to be used only\nby first parties to publish remote display routes to the system so\nit is not exposed as public API in the SDK.  In the future, the remote\ndisplay provider interface will most likely be deprecated and replaced\nwith a more featureful media route provider interface for third\nparty integration, similar to what is in the support library today.\n\nFurther patch sets integrate these new capabilities into the System UI\nand Settings for connecting remote displays.\n\nBug: 11257292\nChange-Id: I31109f23f17b474d17534d0f5f4503e388b081c2\n"
    },
    {
      "commit": "f3c99e883f46c56e5e2877e844b902b6eb45545b",
      "tree": "0a6ade21b7a25f51a21e15a5fd6776bb15fac977",
      "parents": [
        "170735d46001659e64522f451681a0618685efc6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 05 16:29:21 2013 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 07 01:58:15 2013 -0800"
      },
      "message": "Add a platform library for remote display providers.\n\nThis interface allows applications to register services that offer\nremote displays to the system.  The system will then provide UI\nto allow user to connect to these displays and enable mirroring.\n\nBug: 11257292\nChange-Id: I34da5b9dfdaf71267bd3450c505bc1b7368d1b40\n"
    },
    {
      "commit": "df21eb11bc8a9341cd9d3b3886e1a056ecd46127",
      "tree": "680570431f5fd76bcbb7de3f362c6603a7b7d38c",
      "parents": [
        "b9f9f5ce680a82a17f6208ff824eda2ce28c5939",
        "40730533d45e310891b4e949eee92eb31a87515f"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Nov 06 21:28:04 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 06 21:28:04 2013 -0800"
      },
      "message": "am 40730533: am f7188557: am 03ec3428: fix build\n\n* commit \u002740730533d45e310891b4e949eee92eb31a87515f\u0027:\n  fix build\n"
    },
    {
      "commit": "b9f9f5ce680a82a17f6208ff824eda2ce28c5939",
      "tree": "08154306191d9157d41292c04fcd695ec1d7aa64",
      "parents": [
        "a10872ec42f9f29a3c1deb57b557b12c19cdb994",
        "5cfa3fcbba2916279dd43f8c031d0526581c8098"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Nov 06 21:28:01 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 06 21:28:01 2013 -0800"
      },
      "message": "am 5cfa3fcb: am d183aae9: am 4cf4f521: add storage provider sample to build\n\n* commit \u00275cfa3fcbba2916279dd43f8c031d0526581c8098\u0027:\n  add storage provider sample to build\n"
    },
    {
      "commit": "03ec3428c9bcd8f8a8b58f79c2fc99a65097e1c5",
      "tree": "1f5034c380772f78d163a25948296489a32ba9ce",
      "parents": [
        "4cf4f5213e496b8862aa2d88d00eb0c734598072"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:54:38 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:54:38 2013 -0700"
      },
      "message": "fix build\n\nChange-Id: I9916113fde67afa04789f451355da215f9b015f7\n"
    },
    {
      "commit": "4cf4f5213e496b8862aa2d88d00eb0c734598072",
      "tree": "fb8804922f1eeb32262ca749ffd31a0fce6b31ed",
      "parents": [
        "19f05adbee3c755daf8417d6de4fae831e7cc446"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:52:39 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 01 17:53:46 2013 -0700"
      },
      "message": "add storage provider sample to build\n\nChange-Id: I76f1e64f68b9db7c39ab3ec9bbbe0ecdd7729ae6\n"
    },
    {
      "commit": "36265698315f3ec5470d1c61ec6082b230d84674",
      "tree": "799a51d70738c311ac55e8f2d94fa0a2ed33fac4",
      "parents": [
        "790f9183aef321e3b0dc5396e71abf495c72b551"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Oct 30 00:22:16 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 31 16:59:42 2013 +0000"
      },
      "message": "Enable samples browsing in builds.\n\nChange-Id: Ic47ef693dd5b2cd4010e68a600cae3b88d426bd2\n(cherry picked from commit e8b32feb72bf4347c1bd98e6b21b18a506d2c5e3)"
    },
    {
      "commit": "1b01252af3fe67fa2439446eb7000501e957d3eb",
      "tree": "f13697ec18dc712a3bce240b27b60923cd9b7288",
      "parents": [
        "e2e2a433124561b9862f07e9b1922977e3ce2f00",
        "65fe1908fc0af13c19e02b7a56f9c5697046c4f5"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 31 02:14:51 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 31 02:14:51 2013 -0700"
      },
      "message": "am 65fe1908: am b2a905f0: am d51578ee: Merge \"Enable samples browsing in builds.\" into klp-dev\n\n* commit \u002765fe1908fc0af13c19e02b7a56f9c5697046c4f5\u0027:\n  Enable samples browsing in builds.\n"
    },
    {
      "commit": "e8b32feb72bf4347c1bd98e6b21b18a506d2c5e3",
      "tree": "143321f0d3fd1aedb7760def3abc14aab489779b",
      "parents": [
        "0e29faacecdb728e2878c799da8532e33539f046"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Oct 30 00:22:16 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Oct 30 23:04:38 2013 -0700"
      },
      "message": "Enable samples browsing in builds.\n\nChange-Id: Ic47ef693dd5b2cd4010e68a600cae3b88d426bd2\n"
    },
    {
      "commit": "ba545513d603461240e22567b0375d252c00479b",
      "tree": "063903bbd43fcc715be6f940a7f64098ba6cc491",
      "parents": [
        "24387e5131cb83f21a87f827a9c8d4c5ae8c8fe2",
        "ad064dac70a7ad54b3eefc67fa99e06aa0845a79"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Oct 29 21:24:42 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 29 21:24:42 2013 -0700"
      },
      "message": "am ad064dac: am 52de9b52: am fd391d6f: Merge \"Doc change: add new list of browseable samples and sample groups.\" into klp-dev\n\n* commit \u0027ad064dac70a7ad54b3eefc67fa99e06aa0845a79\u0027:\n  Doc change: add new list of browseable samples and sample groups.\n"
    },
    {
      "commit": "c5f168a6942cf43ad53b5f961a575dcb7009a32c",
      "tree": "756a88be2fbedbf6108858444e1562cfa60b24e2",
      "parents": [
        "e5c1208ef9ef7d10b5bae6c82b9eb5a92da1244e"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Oct 29 20:59:20 2013 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Oct 29 20:59:20 2013 -0700"
      },
      "message": "Doc change: add new list of browseable samples and sample groups.\n\nChange-Id: I5f0c6899a34ada9f8dfc492f849c9e03203bc920\n"
    },
    {
      "commit": "e9ffeac1389dd9c99fff120475127af8a065c1a8",
      "tree": "ed121eb69d6e9b2cc9a7cce2aea961e52c1e403a",
      "parents": [
        "200223cd0e0d91e6575ee29c92a45aeb288c19ce",
        "8a51e2f48cb24113e8463eb251a097080eb46a7f"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 18 17:35:31 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 18 17:35:31 2013 -0700"
      },
      "message": "am 8a51e2f4: am a53e1f81: am 23757527: Merge \"Hide the print dialog if the printing activity is destroyed.\" into klp-dev\n\n* commit \u00278a51e2f48cb24113e8463eb251a097080eb46a7f\u0027:\n  Hide the print dialog if the printing activity is destroyed.\n"
    },
    {
      "commit": "858a1850e2e1c4516129d27ecdf54aaeade606ca",
      "tree": "2f5d1c2a61b5e131e842f148dba7bd90d2a7845c",
      "parents": [
        "b346270dde839029f9d4994cf2c3fc670a4249a6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Oct 17 22:20:40 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 18 13:12:06 2013 -0700"
      },
      "message": "Hide the print dialog if the printing activity is destroyed.\n\n1. For an app to print it creates a PrintDocumentAdapter implementation\n   which is passed to the print dialog activity. If the activity that\n   created the adapter is destroyed then the adapter, which may rely on\n   the activity state, may be in an invalid state. For example, an app\n   creates an adapter and calls print resuting in the app activity and\n   the print dialog activity being stacked. Now the user rotates the\n   device which triggers the recreating of the activity stack (assume the\n   app does not handle rotation). The recreated print dialog activity\n   receives the intent that originally created it with containing the\n   adapter that was constructed in the context of the old, now destroyed,\n   app activity instance.\n\n   To handle this we are limiting an app to be able to print only from\n   and activity and when this activity is destroyed we mark the adapter\n   as invalid which will result in hiding the print dialog activity. Note\n   that if the app process is killed we already handle this in the print\n   dialog activiy by registering a death recipient on the adapter binder.\n\n2. In the PrintManager.PrintDocumentAdapterDelegate some of the state is\n   accessed only on the main thread and some from miltiple threads. The\n   code was trying to avoid locking for state that is not accessed by\n   multiple threads but this is error prone and the benefit does not\n   justify the complexity and added fragility. Now grabbing a lock all\n   the time.\n\n3. The PrintJobConfigActivity waits for it to bind to the print spooler\n   service before instantiating its print controller and editor. However,\n   these can be accessed by invoking some of the activity cycle callbacks.\n   This change is adding null checks for the case where the activity\n   callbacks are called before the binding to the spooler is completed.\n\nbug:11242661\n\nChange-Id: Id906b3170e4f0a0553772dfa62686f06fdca0eaf\n"
    },
    {
      "commit": "a1f9936c6ba5ab6761e0bd9de894997ae6ba9ba6",
      "tree": "9eff96dc818c816cdf1693a8149a5f58fd028849",
      "parents": [
        "6c9138f48554136ef80696152067da7bd877d84b",
        "5c880d0d1551603dcc4366406ec9ee3b812a8fc4"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 11 10:11:05 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 11 10:11:05 2013 -0700"
      },
      "message": "am 5c880d0d: am 6f688e87: am 8f34715b: Merge \"Refactor how the print dialog activity is started.\" into klp-dev\n\n* commit \u00275c880d0d1551603dcc4366406ec9ee3b812a8fc4\u0027:\n  Refactor how the print dialog activity is started.\n"
    },
    {
      "commit": "7bfbbcb04bf4ba8f3069b2df136f708c9849bacf",
      "tree": "da453e5f618eacb7cf63de3ef1344507feeecb0a",
      "parents": [
        "1db8cf12a985425a73d24875d9d308c14c0b4359"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Oct 10 13:36:23 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Oct 11 09:11:24 2013 -0700"
      },
      "message": "Refactor how the print dialog activity is started.\n\n1. Before the print job activity was started asyncronously with\n   respect to the print call on to the print manager. This was\n   creating a situation where the starting activity may finish\n   before the print dialog appears which may lead to an orphaned\n   print document adapter with no data to print (as the UI is\n   is gone), or strange behaviors where the print dialog starts\n   on as a separate task.\n\n   To address this the pending intent for starting the print\n   dialog is not started by the print spooler since we cannot\n   call into it synchronously as we have to start its process\n   and bind to the spooler service which leads to jankyness in\n   the client app. Now the pending intent is created by the\n   print manager service in the synchronous print call so\n   from an app\u0027s perspective calling print starts the activity.\n\n   The side effect of this design is that the print dialog\n   activity may start before the system is bound to the spooler\n   service. In such a case the print activity cannot start\n   poking the print spooler state as the system registers\n   callback to observe the spooler state. To address this\n   the print spooler activity disables the UI and also binds\n   to the spooler service which happenes immediately after it\n   is started. As soon as the print dialog binds to the\n   service it starts the UI.\n\n2. Fixed an bug in the printer adapter of the print dialog that\n   was leading to a crash if the only item in the adater is the\n   all pritners option and it is selected.\n\n3. Piping the package name that started the printing so we can\n   pass it to the storage UI as a hint to open the last location\n   the app used.\n\nbug:11127269\n\nChange-Id: Ia93820bdae0b0e7600a0930b1f10d9708bd86b68\n"
    },
    {
      "commit": "f99ec85e4fccd03f4531dcfdb955864efaa2583a",
      "tree": "f053fb423d556f9af13949c132a26b7ce593cc20",
      "parents": [
        "53a3f2c2fbfa567cea52c63cfa7aaff1597eeee8",
        "856441e72fa6a79a5421e9538e5af17df281eaab"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Oct 04 17:37:02 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 17:37:02 2013 -0700"
      },
      "message": "am 856441e7: am 920de6c6: am 332408f8: update version number for doc stamp\n\n* commit \u0027856441e72fa6a79a5421e9538e5af17df281eaab\u0027:\n  update version number for doc stamp\n"
    },
    {
      "commit": "332408f86290bc02090d69f3a4b08ed959d93b62",
      "tree": "2eeed11bad77d3ebf469150ca3bf2d6a6ce777c0",
      "parents": [
        "29268255078f05f2441311de94f903e18747e323"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Oct 04 13:43:26 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Oct 04 16:17:50 2013 -0700"
      },
      "message": "update version number for doc stamp\n\nChange-Id: I881510209a56204a464df082840d2dde56312303\n"
    },
    {
      "commit": "f16e56c83429e042d2b7376a4f01f3f2f139a0c3",
      "tree": "616404ca3ccb948608ea2570e1b4fbab9bb6e3dc",
      "parents": [
        "feb4602ea4a5b2ba561d39da7c8b095a4dc6964f",
        "2cf2948dbf15e8c0645154957f511379d8ef53bf"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Oct 04 13:51:51 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 04 13:51:51 2013 -0700"
      },
      "message": "am 2cf2948d: am 3f90705a: am 795b6e42: Merge \"add -since flag for api level 19 to filter javadocs\" into klp-dev\n\n* commit \u00272cf2948dbf15e8c0645154957f511379d8ef53bf\u0027:\n  add -since flag for api level 19 to filter javadocs\n"
    },
    {
      "commit": "49551ad60b17ab05cb1ab70f528c6fd1dcac1ad1",
      "tree": "d8a248f40777ec47ede07e3ca4dad486991a05fe",
      "parents": [
        "76a5c86df7902870c87ff07ffd0628cb10f32c00"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Oct 03 16:46:53 2013 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Oct 03 16:46:53 2013 -0700"
      },
      "message": "add -since flag for api level 19 to filter javadocs\n\nChange-Id: I96e7e31f93b1e3c3877a342b84fb069bda5d92e3\n"
    },
    {
      "commit": "04871b3d664c147699f684ae48711d02833a2429",
      "tree": "11c8ac4e4c2435c36cd53b72617e621c165f0c5d",
      "parents": [
        "36d02b17e642009edc2a4ce23521f32111224501",
        "65cacb3c5174f93debd481c7d573f34bc36f80f4"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Tue Oct 01 18:45:34 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 01 18:45:34 2013 -0700"
      },
      "message": "am 65cacb3c: Merge \"Add android.provider.Telephony to public API.\" into klp-dev\n\n* commit \u002765cacb3c5174f93debd481c7d573f34bc36f80f4\u0027:\n  Add android.provider.Telephony to public API.\n"
    },
    {
      "commit": "35a42e0e723914f8c091cd79ae00ee7b45760dd7",
      "tree": "cc1c9a9af6ea9f1331b69c46ac82ecad462723e8",
      "parents": [
        "97f5d8169bb69948e0c2fcf15e98c7a7cce7006c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Sep 30 16:35:37 2013 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Mon Sep 30 16:35:37 2013 -0700"
      },
      "message": "Supress contents of this project in embedded builds\n\nChange-Id: Ib5c2853f8a20be2cba21cab081a31a327239cfd4\n"
    },
    {
      "commit": "65cacb3c5174f93debd481c7d573f34bc36f80f4",
      "tree": "6ea8b470578995dcb8974ea62c43c2a35ef72b05",
      "parents": [
        "026dc1432ef70308ef44dafcc28998436e304e75",
        "43e51a3580f0c4b694143e8e4e194a715873bf26"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Mon Sep 30 17:18:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 30 17:18:51 2013 +0000"
      },
      "message": "Merge \"Add android.provider.Telephony to public API.\" into klp-dev"
    },
    {
      "commit": "af1066d917fd47c8108df98f8a534babd48d18cd",
      "tree": "654142c5da25f11cd056e67f93fa9fa8a4474919",
      "parents": [
        "aa14d0e7fd36fa29557ef7c3980b86703f767760",
        "4609d9a9ebc17d804d31d5241968157439c92a57"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Sep 26 12:28:59 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 26 12:28:59 2013 -0700"
      },
      "message": "am 4609d9a9: am 5cab967b: Merge \"Adding hidden APIs for observing the print jobs state.\" into klp-dev\n\n* commit \u00274609d9a9ebc17d804d31d5241968157439c92a57\u0027:\n  Adding hidden APIs for observing the print jobs state.\n"
    },
    {
      "commit": "704697b6197262678e930daa831a1916ddee4dcf",
      "tree": "9c486dcdc7e3986004147505c8dc7bc2e030bd02",
      "parents": [
        "0d38d0b42fba7dc50454d5c0652cf351c58a9db6"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Sat Sep 21 20:30:24 2013 -0700"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Sep 25 17:57:07 2013 -0700"
      },
      "message": "Adding hidden APIs for observing the print jobs state.\n\nThis is needed for implementing the print job settigns UI.\n\nbug:10935736\n\nChange-Id: I63b42cbf4ce6a259fa1af47fa368b148ca5621c1\n"
    },
    {
      "commit": "43e51a3580f0c4b694143e8e4e194a715873bf26",
      "tree": "401e0647dea9635597e866705033d0e3348ca9b5",
      "parents": [
        "254f5ffc47fe26d48fe3fd9f3bc513805dd04ac5"
      ],
      "author": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Wed Sep 18 13:18:09 2013 -0700"
      },
      "committer": {
        "name": "Jake Hamby",
        "email": "jhamby@google.com",
        "time": "Tue Sep 24 15:54:00 2013 -0700"
      },
      "message": "Add android.provider.Telephony to public API.\n\nAdd directory containing android/provider/Telephony.java to build.\nAdd unhidden Telephony fields and classes to api/current.txt.\n\nBug: 10653081\nChange-Id: Ib4ba66e09be5320d35257fcf481db58f840fdc53\n"
    },
    {
      "commit": "103a02453b397e68a8befffb908f0985624a4f1c",
      "tree": "636314093d85feda3e0b6c57f9ebad2849e9a818",
      "parents": [
        "94a766a3424771f38e6a479730366065c4fe3dec",
        "f9464838fe141aac1c677e2f4ec0133381fbb5af"
      ],
      "author": {
        "name": "Jason Monk",
        "email": "jmonk@google.com",
        "time": "Fri Sep 13 17:22:53 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 13 17:22:53 2013 -0700"
      },
      "message": "am f9464838: am 312c495f: Merge \"Guarantee that PAC Local Proxy owns Port\" into klp-dev\n\n* commit \u0027f9464838fe141aac1c677e2f4ec0133381fbb5af\u0027:\n  Guarantee that PAC Local Proxy owns Port\n"
    }
  ],
  "next": "312c495f4b8d002264772f61fe1fa3ef87bf3e52"
}
