From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= Subject: [PATCH 01/13] PM: Add wake lock api. Date: Wed, 4 Feb 2009 18:50:14 -0800 Message-ID: <1233802226-23386-2-git-send-email-arve@android.com> References: <1233802226-23386-1-git-send-email-arve@android.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1233802226-23386-1-git-send-email-arve@android.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org To: linux-pm@lists.linux-foundation.org Cc: ncunningham@crca.org.au, u.luckas@road.de, swetland@google.com List-Id: linux-pm@vger.kernel.org U2lnbmVkLW9mZi1ieTogQXJ2ZSBIasO4bm5ldsOlZyA8YXJ2ZUBhbmRyb2lkLmNvbT4KLS0tCiBE b2N1bWVudGF0aW9uL3Bvd2VyL3dha2Vsb2Nrcy50eHQgfCAgIDkxICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9saW51eC93YWtlbG9jay5oICAgICAgICAgIHwg ICA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5n ZWQsIDE4MyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0 IERvY3VtZW50YXRpb24vcG93ZXIvd2FrZWxvY2tzLnR4dAogY3JlYXRlIG1vZGUgMTAwNzU1IGlu Y2x1ZGUvbGludXgvd2FrZWxvY2suaAoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vcG93ZXIv d2FrZWxvY2tzLnR4dCBiL0RvY3VtZW50YXRpb24vcG93ZXIvd2FrZWxvY2tzLnR4dApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTliYjExCi0tLSAvZGV2L251bGwKKysrIGIv RG9jdW1lbnRhdGlvbi9wb3dlci93YWtlbG9ja3MudHh0CkBAIC0wLDAgKzEsOTEgQEAKK1dha2Vs b2NrcworPT09PT09PT09CisKK0EgbG9ja2VkIHdha2Vsb2NrLCBkZXBlbmRpbmcgb24gaXRzIHR5 cGUsIHByZXZlbnRzIHRoZSBzeXN0ZW0gZnJvbSBlbnRlcmluZworc3VzcGVuZCBvciBvdGhlciBs b3ctcG93ZXIgc3RhdGVzLiBXaGVuIGNyZWF0aW5nIGEgd2FrZWxvY2ssIHlvdSBjYW4gc2VsZWN0 CitpZiBpdCBwcmV2ZW50cyBzdXNwZW5kIG9yIGxvdy1wb3dlciBpZGxlIHN0YXRlcy4gIElmIHRo ZSB0eXBlIGlzIHNldCB0bworV0FLRV9MT0NLX1NVU1BFTkQsIHRoZSB3YWtlbG9jayBwcmV2ZW50 cyBhIGZ1bGwgc3lzdGVtIHN1c3BlbmQuIElmIHRoZSB0eXBlCitpcyBXQUtFX0xPQ0tfSURMRSwg bG93LXBvd2VyIHN0YXRlcyB0aGF0IGNhdXNlIGxhcmdlIGludGVycnVwdCBsYXRlbmNpZXMsIG9y Cit0aGF0IGRpc2FibGUgYSBzZXQgb2YgaW50ZXJydXB0cywgd2lsbCBub3QgYmUgZW50ZXJlZCBm cm9tIGlkbGUgdW50aWwgdGhlCit3YWtlbG9ja3MgYXJlIHJlbGVhc2VkLiBVbmxlc3MgdGhlIHR5 cGUgaXMgc3BlY2lmaWVkLCB0aGlzIGRvY3VtZW50IHJlZmVycwordG8gd2FrZWxvY2tzIHdpdGgg dGhlIHR5cGUgc2V0IHRvIFdBS0VfTE9DS19TVVNQRU5ELgorCitJZiB0aGUgc3VzcGVuZCBvcGVy YXRpb24gaGFzIGFscmVhZHkgc3RhcnRlZCB3aGVuIGxvY2tpbmcgYSB3YWtlbG9jaywgaXQgd2ls bAorYWJvcnQgdGhlIHN1c3BlbmQgb3BlcmF0aW9uIGFzIGxvbmcgaXQgaGFzIG5vdCBhbHJlYWR5 IHJlYWNoZWQgdGhlIHN1c3BlbmRfbGF0ZQorc3RhZ2UuIFRoaXMgbWVhbnMgdGhhdCBsb2NraW5n IGEgd2FrZWxvY2sgZnJvbSBhbiBpbnRlcnJ1cHQgaGFuZGxlciBvciBhCitmcmVlemVhYmxlIHRo cmVhZCBhbHdheXMgd29ya3MsIGJ1dCBpZiB5b3UgbG9jayBhIHdha2Vsb2NrIGZyb20gYSBzdXNw ZW5kX2xhdGUKK2hhbmRsZXIgeW91IG11c3QgYWxzbyByZXR1cm4gYW4gZXJyb3IgZnJvbSB0aGF0 IGhhbmRsZXIgdG8gYWJvcnQgc3VzcGVuZC4KKworV2FrZWxvY2tzIGNhbiBiZSB1c2VkIHRvIGFs bG93IHVzZXItc3BhY2UgdG8gZGVjaWRlIHdoaWNoIGtleXMgc2hvdWxkIHdha2UgdGhlCitmdWxs IHN5c3RlbSB1cCBhbmQgdHVybiB0aGUgc2NyZWVuIG9uLiBVc2Ugc2V0X2lycV93YWtlIG9yIGEg cGxhdGZvcm0gc3BlY2lmaWMKK2FwaSB0byBtYWtlIHN1cmUgdGhlIGtleXBhZCBpbnRlcnJ1cHQg d2FrZXMgdXAgdGhlIGNwdS4gT25jZSB0aGUga2V5cGFkIGRyaXZlcgoraGFzIHJlc3VtZWQsIHRo ZSBzZXF1ZW5jZSBvZiBldmVudHMgY2FuIGxvb2sgbGlrZSB0aGlzOgorLSBUaGUgS2V5cGFkIGRy aXZlciBnZXRzIGFuIGludGVycnVwdC4gSXQgdGhlbiBsb2NrcyB0aGUga2V5cGFkLXNjYW4gd2Fr ZWxvY2sKKyAgYW5kIHN0YXJ0cyBzY2FubmluZyB0aGUga2V5cGFkIG1hdHJpeC4KKy0gVGhlIGtl eXBhZC1zY2FuIGNvZGUgZGV0ZWN0cyBhIGtleSBjaGFuZ2UgYW5kIHJlcG9ydHMgaXQgdG8gdGhl IGlucHV0LWV2ZW50CisgIGRyaXZlci4KKy0gVGhlIGlucHV0LWV2ZW50IGRyaXZlciBzZWVzIHRo ZSBrZXkgY2hhbmdlLCBlbnF1ZXVlcyBhbiBldmVudCwgYW5kIGxvY2tzCisgIHRoZSBpbnB1dC1l dmVudC1xdWV1ZSB3YWtlbG9jay4KKy0gVGhlIGtleXBhZC1zY2FuIGNvZGUgZGV0ZWN0cyB0aGF0 IG5vIGtleXMgYXJlIGhlbGQgYW5kIHVubG9ja3MgdGhlCisgIGtleXBhZC1zY2FuIHdha2Vsb2Nr LgorLSBUaGUgdXNlci1zcGFjZSBpbnB1dC1ldmVudCB0aHJlYWQgcmV0dXJucyBmcm9tIHNlbGVj dC9wb2xsLCBsb2NrcyB0aGUKKyAgcHJvY2Vzcy1pbnB1dC1ldmVudHMgd2FrZWxvY2sgYW5kIHRo ZW4gY2FsbHMgcmVhZCBpbiB0aGUgaW5wdXQtZXZlbnQgZGV2aWNlLgorLSBUaGUgaW5wdXQtZXZl bnQgZHJpdmVyIGRlcXVldWVzIHRoZSBrZXktZXZlbnQgYW5kLCBzaW5jZSB0aGUgcXVldWUgaXMg bm93CisgIGVtcHR5LCBpdCB1bmxvY2tzIHRoZSBpbnB1dC1ldmVudC1xdWV1ZSB3YWtlbG9jay4K Ky0gVGhlIHVzZXItc3BhY2UgaW5wdXQtZXZlbnQgdGhyZWFkIHJldHVybnMgZnJvbSByZWFkLiBJ dCBkZXRlcm1pbmVzIHRoYXQgdGhlCisgIGtleSBzaG91bGQgbm90IHdha2UgdXAgdGhlIGZ1bGwg c3lzdGVtLCByZWxlYXNlcyB0aGUgcHJvY2Vzcy1pbnB1dC1ldmVudHMKKyAgd2FrZWxvY2sgYW5k IGNhbGxzIHNlbGVjdCBvciBwb2xsLgorCisgICAgICAgICAgICAgICAgIEtleSBwcmVzc2VkICAg S2V5IHJlbGVhc2VkCisgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHwKK2tleXBh ZC1zY2FuICAgICAgICAgICsrKysrKysrKysrKysrKysrKworaW5wdXQtZXZlbnQtcXVldWUgICAg ICAgICsrKyAgICAgICAgICArKysKK3Byb2Nlc3MtaW5wdXQtZXZlbnRzICAgICAgICsrKyAgICAg ICAgICArKysKKworCitEcml2ZXIgQVBJCis9PT09PT09PT09CisKK0EgZHJpdmVyIGNhbiB1c2Ug dGhlIHdha2Vsb2NrIGFwaSBieSBhZGRpbmcgYSB3YWtlbG9jayB2YXJpYWJsZSB0byBpdHMgc3Rh dGUKK2FuZCBjYWxsaW5nIHdha2VfbG9ja19pbml0LiBGb3IgaW5zdGFuY2U6CitzdHJ1Y3Qgc3Rh dGUgeworCXN0cnVjdCB3YWtlbG9jayB3YWtlbG9jazsKK30KKworaW5pdCgpIHsKKwl3YWtlX2xv Y2tfaW5pdCgmc3RhdGUtPndha2Vsb2NrLCBXQUtFX0xPQ0tfU1VTUEVORCwgIndha2Vsb2NrbmFt ZSIpOworfQorCitCZWZvcmUgZnJlZWluZyB0aGUgbWVtb3J5LCB3YWtlX2xvY2tfZGVzdHJveSBt dXN0IGJlIGNhbGxlZDoKKwordW5pbml0KCkgeworCXdha2VfbG9ja19kZXN0cm95KCZzdGF0ZS0+ d2FrZWxvY2spOworfQorCitXaGVuIHRoZSBkcml2ZXIgZGV0ZXJtaW5lcyB0aGF0IGl0IG5lZWRz IHRvIHJ1biAodXN1YWxseSBpbiBhbiBpbnRlcnJ1cHQKK2hhbmRsZXIpIGl0IGNhbGxzIHdha2Vf bG9jazoKKwl3YWtlX2xvY2soJnN0YXRlLT53YWtlbG9jayk7CisKK1doZW4gaXQgbm8gbG9uZ2Vy IG5lZWRzIHRvIHJ1biBpdCBjYWxscyB3YWtlX3VubG9jazoKKwl3YWtlX3VubG9jaygmc3RhdGUt Pndha2Vsb2NrKTsKKworSXQgY2FuIGFsc28gY2FsbCB3YWtlX2xvY2tfdGltZW91dCB0byByZWxl YXNlIHRoZSB3YWtlbG9jayBhZnRlciBhIGRlbGF5OgorCXdha2VfbG9ja190aW1lb3V0KCZzdGF0 ZS0+d2FrZWxvY2ssIEhaKTsKKworVGhpcyB3b3JrcyB3aGV0aGVyIHRoZSB3YWtlbG9jayBpcyBh bHJlYWR5IGhlbGQgb3Igbm90LiBJdCBpcyB1c2VmdWwgaWYgdGhlCitkcml2ZXIgd29rZSB1cCBv dGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIHRoYXQgZG8gbm90IHVzZSB3YWtlbG9ja3MgYnV0Citz dGlsbCBuZWVkIHRvIHJ1bi4gQXZvaWQgdGhpcyB3aGVuIHBvc3NpYmxlLCBzaW5jZSBpdCB3aWxs IHdhc3RlIHBvd2VyCitpZiB0aGUgdGltZW91dCBpcyBsb25nIG9yIG1heSBmYWlsIHRvIGZpbmlz aCBuZWVkZWQgd29yayBpZiB0aGUgdGltZW91dCBpcworc2hvcnQuCisKKworVXNlci1zcGFjZSBB UEkKKz09PT09PT09PT09PT09CisKK1dyaXRlICJsb2NrbmFtZSIgb3IgImxvY2tuYW1lIHRpbWVv dXQiIHRvIC9zeXMvcG93ZXIvd2FrZV9sb2NrIGxvY2sgYW5kIGlmCituZWVkZWQgY3JlYXRlIGEg d2FrZWxvY2suIFRoZSB0aW1lb3V0IGhlcmUgaXMgc3BlY2lmaWVkIG5hbm9zZWNvbmRzLgorV3Jp dGUgImxvY2tuYW1lIiB0byAvc3lzL3Bvd2VyL3dha2VfdW5sb2NrIHRvIHVubG9jayBhIHVzZXIg d2FrZWxvY2suCisKK0RvIG5vdCB1c2UgcmFuZG9tbHkgZ2VuZXJhdGVkIHdha2Vsb2NrIG5hbWVz IGFzIHRoZXJlIGlzIG5vIGFwaSB0byBmcmVlCithIHVzZXItc3BhY2Ugd2FrZWxvY2suCisKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvd2FrZWxvY2suaCBiL2luY2x1ZGUvbGludXgvd2FrZWxv Y2suaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMTdlOTkzCi0tLSAvZGV2 L251bGwKKysrIGIvaW5jbHVkZS9saW51eC93YWtlbG9jay5oCkBAIC0wLDAgKzEsOTIgQEAKKy8q IGluY2x1ZGUvbGludXgvd2FrZWxvY2suaAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4 IEdvb2dsZSwgSW5jLgorICoKKyAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLCBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgYW5kCisgKiBtYXkg YmUgY29waWVkLCBkaXN0cmlidXRlZCwgYW5kIG1vZGlmaWVkIHVuZGVyIHRob3NlIHRlcm1zLgor ICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICovCisKKyNpZm5kZWYgX0xJTlVYX1dBS0VM T0NLX0gKKyNkZWZpbmUgX0xJTlVYX1dBS0VMT0NLX0gKKworI2luY2x1ZGUgPGxpbnV4L2xpc3Qu aD4KKyNpbmNsdWRlIDxsaW51eC9rdGltZS5oPgorCisvKiBBIHdha2VfbG9jayBwcmV2ZW50cyB0 aGUgc3lzdGVtIGZyb20gZW50ZXJpbmcgc3VzcGVuZCBvciBvdGhlciBsb3cgcG93ZXIKKyAqIHN0 YXRlcyB3aGVuIGFjdGl2ZS4gSWYgdGhlIHR5cGUgaXMgc2V0IHRvIFdBS0VfTE9DS19TVVNQRU5E LCB0aGUgd2FrZV9sb2NrCisgKiBwcmV2ZW50cyBhIGZ1bGwgc3lzdGVtIHN1c3BlbmQuIElmIHRo ZSB0eXBlIGlzIFdBS0VfTE9DS19JRExFLCBsb3cgcG93ZXIKKyAqIHN0YXRlcyB0aGF0IGNhdXNl IGxhcmdlIGludGVycnVwdCBsYXRlbmNpZXMgb3IgdGhhdCBkaXNhYmxlIGEgc2V0IG9mCisgKiBp bnRlcnJ1cHRzIHdpbGwgbm90IGVudGVyZWQgZnJvbSBpZGxlIHVudGlsIHRoZSB3YWtlX2xvY2tz IGFyZSByZWxlYXNlZC4KKyAqLworCitlbnVtIHsKKwlXQUtFX0xPQ0tfU1VTUEVORCwgLyogUHJl dmVudCBzdXNwZW5kICovCisJV0FLRV9MT0NLX0lETEUsICAgIC8qIFByZXZlbnQgbG93IHBvd2Vy IGlkbGUgKi8KKwlXQUtFX0xPQ0tfVFlQRV9DT1VOVAorfTsKKworc3RydWN0IHdha2VfbG9jayB7 CisjaWZkZWYgQ09ORklHX0hBU19XQUtFTE9DSworCXN0cnVjdCBsaXN0X2hlYWQgICAgbGluazsK KwlpbnQgICAgICAgICAgICAgICAgIGZsYWdzOworCWNvbnN0IGNoYXIgICAgICAgICAqbmFtZTsK Kwl1bnNpZ25lZCBsb25nICAgICAgIGV4cGlyZXM7CisjaWZkZWYgQ09ORklHX1dBS0VMT0NLX1NU QVQKKwlzdHJ1Y3QgeworCQlpbnQgICAgICAgICAgICAgY291bnQ7CisJCWludCAgICAgICAgICAg ICBleHBpcmVfY291bnQ7CisJCWludCAgICAgICAgICAgICB3YWtldXBfY291bnQ7CisJCWt0aW1l X3QgICAgICAgICB0b3RhbF90aW1lOworCQlrdGltZV90ICAgICAgICAgcHJldmVudF9zdXNwZW5k X3RpbWU7CisJCWt0aW1lX3QgICAgICAgICBtYXhfdGltZTsKKwkJa3RpbWVfdCAgICAgICAgIGxh c3RfdGltZTsKKwl9IHN0YXQ7CisjZW5kaWYKKyNlbmRpZgorfTsKKworI2lmZGVmIENPTkZJR19I QVNfV0FLRUxPQ0sKKwordm9pZCB3YWtlX2xvY2tfaW5pdChzdHJ1Y3Qgd2FrZV9sb2NrICpsb2Nr LCBpbnQgdHlwZSwgY29uc3QgY2hhciAqbmFtZSk7Cit2b2lkIHdha2VfbG9ja19kZXN0cm95KHN0 cnVjdCB3YWtlX2xvY2sgKmxvY2spOwordm9pZCB3YWtlX2xvY2soc3RydWN0IHdha2VfbG9jayAq bG9jayk7Cit2b2lkIHdha2VfbG9ja190aW1lb3V0KHN0cnVjdCB3YWtlX2xvY2sgKmxvY2ssIGxv bmcgdGltZW91dCk7Cit2b2lkIHdha2VfdW5sb2NrKHN0cnVjdCB3YWtlX2xvY2sgKmxvY2spOwor CisvKiB3YWtlX2xvY2tfYWN0aXZlIHJldHVybnMgYSBub24temVybyB2YWx1ZSBpZiB0aGUgd2Fr ZV9sb2NrIGlzIGN1cnJlbnRseQorICogbG9ja2VkLiBJZiB0aGUgd2FrZV9sb2NrIGhhcyBhIHRp bWVvdXQsIGl0IGRvZXMgbm90IGNoZWNrIHRoZSB0aW1lb3V0LAorICogYnV0IGlmIHRoZSB0aW1l b3V0IGhhZCBhbHJlYWR5IGV4cGlyZWQgd2hlbiBpdCB3YXMgY2hlY2tlZCBlbHNld2hlcmUKKyAq IHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gMC4KKyAqLworaW50IHdha2VfbG9ja19hY3RpdmUo c3RydWN0IHdha2VfbG9jayAqbG9jayk7CisKKy8qIGhhc193YWtlX2xvY2sgcmV0dXJucyAwIGlm IG5vIHdha2UgbG9ja3Mgb2YgdGhlIHNwZWNpZmllZCB0eXBlIGFyZSBhY3RpdmUsCisgKiBhbmQg bm9uLXplcm8gaWYgb25lIG9yIG1vcmUgd2FrZSBsb2NrcyBhcmUgaGVsZC4gU3BlY2lmaWNhbGx5 IGl0IHJldHVybnMKKyAqIC0xIGlmIG9uZSBvciBtb3JlIHdha2UgbG9ja3Mgd2l0aCBubyB0aW1l b3V0IGFyZSBhY3RpdmUgb3IgdGhlCisgKiBudW1iZXIgb2YgamlmZmllcyB1bnRpbCBhbGwgYWN0 aXZlIHdha2UgbG9ja3MgdGltZSBvdXQuCisgKi8KK2xvbmcgaGFzX3dha2VfbG9jayhpbnQgdHlw ZSk7CisKKyNlbHNlCisKK3N0YXRpYyBpbmxpbmUgdm9pZCB3YWtlX2xvY2tfaW5pdChzdHJ1Y3Qg d2FrZV9sb2NrICpsb2NrLCBpbnQgdHlwZSwKKwkJCQkJY29uc3QgY2hhciAqbmFtZSkge30KK3N0 YXRpYyBpbmxpbmUgdm9pZCB3YWtlX2xvY2tfZGVzdHJveShzdHJ1Y3Qgd2FrZV9sb2NrICpsb2Nr KSB7fQorc3RhdGljIGlubGluZSB2b2lkIHdha2VfbG9jayhzdHJ1Y3Qgd2FrZV9sb2NrICpsb2Nr KSB7fQorc3RhdGljIGlubGluZSB2b2lkIHdha2VfbG9ja190aW1lb3V0KHN0cnVjdCB3YWtlX2xv Y2sgKmxvY2ssIGxvbmcgdGltZW91dCkge30KK3N0YXRpYyBpbmxpbmUgdm9pZCB3YWtlX3VubG9j ayhzdHJ1Y3Qgd2FrZV9sb2NrICpsb2NrKSB7fQorCitzdGF0aWMgaW5saW5lIGludCB3YWtlX2xv Y2tfYWN0aXZlKHN0cnVjdCB3YWtlX2xvY2sgKmxvY2spIHsgcmV0dXJuIDA7IH0KK3N0YXRpYyBp bmxpbmUgbG9uZyBoYXNfd2FrZV9sb2NrKGludCB0eXBlKSB7IHJldHVybiAwOyB9CisKKyNlbmRp ZgorCisjZW5kaWYKKwotLSAKMS42LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmxpbnV4LXBtIG1haWxpbmcgbGlzdApsaW51eC1wbUBsaXN0cy5saW51 eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcG0=