From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: ACPI/i915: Cannot configure display brightness on Dell Latitude E6440 Date: Wed, 24 Sep 2014 14:04:36 +0200 Message-ID: <5422B354.4010005@redhat.com> References: <201409232206.02819@pali> <54227E9A.7080107@redhat.com> <201409241059.41465@pali> <201409241114.11604@pali> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <201409241114.11604@pali> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?UGFsaSBSb2jDoXI=?= Cc: Aaron Lu , David Airlie , Daniel Vetter , intel-gfx@lists.freedesktop.org, "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, dri-devel@lists.freedesktop.org, Zhang Rui , Len Brown List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiAwOS8yNC8yMDE0IDExOjE0IEFNLCBQYWxpIFJvaMOhciB3cm90ZToKPiBPbiBXZWRu ZXNkYXkgMjQgU2VwdGVtYmVyIDIwMTQgMTA6NTk6NDEgUGFsaSBSb2jDoXIgd3JvdGU6Cj4+IE9u IFdlZG5lc2RheSAyNCBTZXB0ZW1iZXIgMjAxNCAxMDoxOTozOCBIYW5zIGRlIEdvZWRlIHdyb3Rl Ogo+Pj4gSGksCj4+Pgo+Pj4gT24gMDkvMjMvMjAxNCAxMDo0NCBQTSwgUGFsaSBSb2jDoXIgd3Jv dGU6Cj4+Pj4gT24gVHVlc2RheSAyMyBTZXB0ZW1iZXIgMjAxNCAyMjozMTozMSB5b3Ugd3JvdGU6 Cj4+Pj4+IEhpLAo+Pj4+Pgo+Pj4+PiBPbiAwOS8yMy8yMDE0IDEwOjA2IFBNLCBQYWxpIFJvaMOh ciB3cm90ZToKPj4+Pj4+IEhlbGxvLAo+Pj4+Pj4KPj4+Pj4+IGFmdGVyIGJpZyBjaGFuZ2VzIGlu IGFjcGkgdmlkZW8vaTkxNSBjb2RlIEkgY2Fubm90Cj4+Pj4+PiBjaGFuZ2UgZGlzcGxheSBicmln aHRuZXNzIG9uIG15IERlbGwgTGF0aXR1ZGUgRTY0NDAKPj4+Pj4+IHdpdGgga2VybmVsIDMuMTct cmM2LiBXaXRoIGtlcm5lbCAzLjEzIGV2ZXJ5dGhpbmcKPj4+Pj4+IHdvcmtlZCBmaW5lLgo+Pj4+ Pj4KPj4+Pj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBwcm9ibGVtOgo+Pj4+Pj4KPj4+ Pj4+IEZvciBjb25maWd1cmluZyBicmlnaHRuZXNzIG9uIERlbGwgbGFwdG9wcyB0aGVyZSBhcmUg NAo+Pj4+Pj4gd2F5czogMSkgdmlhIGFjcGkgdmlkZW8gZHJpdmVyCj4+Pj4+PiAyKSB2aWEgZGVs bC1sYXB0b3AgZHJpdmVyCj4+Pj4+PiAzKSB2aWEgaTkxNSBkcm0gZHJpdmVyCj4+Pj4+PiA0KSBm cm9tIHVzZXJzcGFjZSB3aXRoIHNwZWNpYWwgZGVsbCBTTUkgY2FsbAo+Pj4+Pj4KPj4+Pj4+ICAg ICAoZS5nIHdpdGggcHJvZ3JhbSBkZWxsTGNkQnJpZ2h0bmVzcyBmcm9tIGxpYnNtYmlvcwo+Pj4+ Pj4gICAgIHBhY2thZ2UpCj4+Pj4+Pgo+Pj4+Pj4gTWV0aG9kcyAyKSBhbmQgNCkgYXJlIHNhbWUs IGJvdGggbWFraW5nIHNwZWNpYWwgU01JIGNhbGwKPj4+Pj4+IGFuZCBCaW9zIGhhbmRpbmcgdGhp cyByZXF1ZXN0IChqdXN0IDIgaXMgZnJvbSBrZXJuZWwgYW5kCj4+Pj4+PiA0IGZyb20gdXNlcnNw YWNlKQo+Pj4+Pj4KPj4+Pj4+IE1ldGhvZCAxKSB2aWEgYWNwaSB2aWRlbyBkcml2ZXIgd29ya2lu ZywgYnV0IGlzIG5vdAo+Pj4+Pj4gcGVyZmVjdC4gRHJpdmVyIGNhbiBiZSB1c2VkIHRvIGNoYW5n ZSBicmlnaHRuZXNzIChidXQKPj4+Pj4+IG9ubHkgc29tZSBsZXZlbHMsIHByb2JhYmx5IHRoaXMg ZGVwZW5kcyBvbiBhY3BpL0RTRFQKPj4+Pj4+IHRhYmxlcyksIGJ1dCBjYW5ub3QgYmUgdXNlZCB0 byByZXRyaWV2ZSBjdXJyZW50Cj4+Pj4+PiBicmlnaHRuZXNzICh3aGVuIEJJT1MvU01JIGNoYW5n ZSBicmlnaHRuZXNzIGFjcGkgZHJpdmVyCj4+Pj4+PiByZXBvcnQgb2xkIGluY29ycmVjdCB2YWx1 ZSkuIFNvIEkgcHJlZmVyIGRlbGwtbGFwdG9wCj4+Pj4+PiBkcml2ZXIgaW5zdGVhZCBhY3BpIHZp ZGVvLgo+Pj4+Pj4KPj4+Pj4+IE1ldGhvZCAzKSB3b3JraW5nIGV2ZW4gd2l0aCAzLjE3LXJjNiBr ZXJuZWwgYnV0IGJlY2F1c2UKPj4+Pj4+IHRoYXQgYmFja2xpZ2h0IGRldmljZSBleHBvcnRlZCBi eSBpOTE1IGlzIG1hcmtlZCBhcyByYXcsCj4+Pj4+PiBkZXNrdG9wIHByb2dyYW1zIHByZWZlciB0 byB1c2Ugb3RoZXIgZGV2aWNlcy4KPj4+Pj4+Cj4+Pj4+PiBNb3Jlb3ZlciBpdCBsb29rcyBsaWtl IHRoYXQgbWV0aG9kcyAxKSAyKSBhbmQgNCkganVzdAo+Pj4+Pj4gZm9yd2FyZCByZXF1ZXN0IHRv IG1ldGhvZCAzKS4gU28gaW4gYW55IGNhc2VkIGJyaWdodG5lc3MKPj4+Pj4+IGlzIGNoYW5nZWQg YnkgaTkxNSBkcm0gZHJpdmVyLgo+Pj4+Pj4KPj4+Pj4+IEknbSBub3Qgc3VyZSAoY29ycmVjdCBt ZSBpZiBJJ20gd3JvbmchKSBidXQgSSB0aGluayB0aGF0Cj4+Pj4+PiBpbnRlbCBpOTE1IGRybSBk cml2ZXIgYWNjZXB0IGNoYW5nZXMgKGZpbGUKPj4+Pj4+IGludGVsX29wcmVnaW9uLmMpIG9ubHkg aWYgYWNwaSBmdW5jdGlvbgo+Pj4+Pj4gYWNwaV92aWRlb192ZXJpZnlfYmFja2xpZ2h0X3N1cHBv cnQoKSByZXR1cm5zIHRydWUuCj4+Pj4+Pgo+Pj4+Pj4gRnVuY3Rpb24gYWNwaV92aWRlb192ZXJp ZnlfYmFja2xpZ2h0X3N1cHBvcnQoKSByZXR1cm5zCj4+Pj4+PiB0cnVlIGlmZjogZnVuY3Rpb24g YWNwaV92aWRlb19iYWNrbGlnaHRfc3VwcG9ydCgpCj4+Pj4+PiByZXR1cm5zIHRydWUgQU5EIGF0 IGxlYXN0IG9uZSBvZiB0aGVzZSBmdW5jdGlvbnMKPj4+Pj4+IHJldHVybnMgZmFsc2U6IGFjcGlf b3NpX2lzX3dpbjgoKQo+Pj4+Pj4gYWNwaV92aWRlb191c2VfbmF0aXZlX2JhY2tsaWdodCgpCj4+ Pj4+PiBiYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyZWQoQkFDS0xJR0hUX1JBVykKPj4+Pj4+Cj4+ Pj4+PiBPbiBteSBub3RlYm9vayBhY3BpX29zaV9pc193aW44KCkgcmV0dXJucyB0cnVlIChhcyBp cwo+Pj4+Pj4gd2luOCBjb21wbGlhbnQpLAo+Pj4+Pj4gYmFja2xpZ2h0X2RldmljZV9yZWdpc3Rl cmVkKEJBQ0tMSUdIVF9SQVcpIHJldHVybnMgdHJ1ZQo+Pj4+Pj4gYXMgSSdtIHVzaW5nIGludGVs IGk5MTUgZHJtIGRyaXZlciB3aXRoIHJhdyBiYWNrbGlnaHQKPj4+Pj4+IGRldmljZSBhbmQgYWNw aV92aWRlb191c2VfbmF0aXZlX2JhY2tsaWdodCgpIHJldHVybnMKPj4+Pj4+IHRydWUvZmFsc2Ug ZGVwZW5kaW5nIG9uCj4+Pj4+PiAidmlkZW8udXNlX25hdGl2ZV9iYWNrbGlnaHQiIGtlcm5lbCBw YXJhbS4gRGVmYXVsdCBpcwo+Pj4+Pj4gdHJ1ZS4KPj4+Pj4+Cj4+Pj4+PiBTbyBpZiBJIHdhbnQg dG8gaGF2ZSB3b3JraW5nIGFjcGkgdmlkZW8gZHJpdmVyIHdpdGgKPj4+Pj4+IGRpc3BsYXkgYnJp Z2h0bmVzcyBzdXBwb3J0IEkgbmVlZCB0byBib290IGtlcm5lbCB3aXRoCj4+Pj4+PiBwYXJhbTog InZpZGVvLnVzZV9uYXRpdmVfYmFja2xpZ2h0PTAiLiBJIHRlc3RlZCBpdCB3aXRoCj4+Pj4+PiBr ZXJuZWwgMy4xNy1yYzYgYW5kIHRoaXMgcGFyYW0gcmVhbGx5IGVuYWJsZWQgZGlzcGxheQo+Pj4+ Pj4gYnJpZ2h0bmVzcyBzdXBwb3J0IHZpYSBhY3BpIHZpZGVvIGRyaXZlciAtLSB3aGljaCBpcwo+ Pj4+Pj4gZ29vZC4KPj4+Pj4+Cj4+Pj4+PiBEcml2ZXIgZGVsbC1sYXB0b3AgY3JlYXRpbmcgYmFj a2xpZ2ggZGV2aWNlIGZvcgo+Pj4+Pj4gYnJpZ2h0bmVzcyBjb250cm9sIG9ubHkgaWYKPj4+Pj4+ IGFjcGlfdmlkZW9fYmFja2xpZ2h0X3N1cHBvcnQoKSByZXR1cm5zIGZhbHNlLiBUaGVyZSBpcwo+ Pj4+Pj4gY29tcGxpY2F0ZWQgY29uZGl0aW9uIGZvciBpdCBhbmQgd2hlbiBrZXJuZWwgaXMgYm9v dGVkCj4+Pj4+PiB3aXRoICJ2aWRlby51c2VfbmF0aXZlX2JhY2tsaWdodD0wIiB0aGF0IGZ1bmN0 aW9uCj4+Pj4+PiByZXR1cm5zIHRydWUuCj4+Pj4+Pgo+Pj4+Pj4gU28gY29uY2x1c2lvbiBpczog V2l0aCBjdXJyZW50IGNvZGUgaW4ga2VybmVsIDMuMTctcmM2Cj4+Pj4+PiBpdCBpcyBub3QgcG9z c2libGUgdG8gY29udHJvbCBicmlnaHRuZXNzIG9mIGRpc3BsYXkKPj4+Pj4+IHdpdGggbmF0aXZl IGRyaXZlciBkZWxsLWxhcHRvcCBvbiBEZWxsIExhdGl0dWRlIEU2NDQwCj4+Pj4+PiAoYW5kIHBy b2JhYmx5IG9uIG90aGVycyB0b28pISEhCj4+Pj4+Pgo+Pj4+Pj4gQW5kIEJlY2F1c2UgbGFwdG9w IGlzIHdpbjggY29tcGxpYW50IGFuZCB5b3UgY3JlYXRlCj4+Pj4+PiBkZWNpc2lvbiB0byB1c2Ug bmF0aXZlIGRyaXZlciAoaW5zdGVhZCBhY3BpIG9uZSkgaXQgaXMKPj4+Pj4+IG5vdCBwb3NzaWJs ZSB0byBjb250cm9sIGRpc3BsYXkgYnJpZ2h0bmVzcyB3aXRob3V0Cj4+Pj4+PiB0d2Vla3MgaW4g a2VybmVsIGNtZGxpbmUuCj4+Pj4+Pgo+Pj4+Pj4gQXMgSSB3cm90ZSBJIHdvdWxkIHJhdGhlciB0 byB1c2UgbmF0aXZlIGRlbGwtbGFwdG9wCj4+Pj4+PiBkcml2ZXIgZm9yIGNvbnRyb2xsaW5nIGJy aWdodG5lc3MsIGJ1dCBpdCBpcyBub3QKPj4+Pj4+IHBvc3NpYmxlLgo+Pj4+Pj4KPj4+Pj4+IFNv IGhvdyB0byBzb2x2ZSB0aGlzIHByb2JsZW0/Cj4+Pj4+Pgo+Pj4+Pj4gUXVpY2sgc29sdXRpb24g d291bGQgYmUgdG8gc2V0IHVzZV9uYXRpdmVfYmFja2xpZ2h0Cj4+Pj4+PiBmYWxzZSBmb3Igc29t ZSBEZWxsIGxhcHRvcHMgd2hpY2ggbWVhbnMsIHRoYXQgYWNwaQo+Pj4+Pj4gdmlkZW8gd2lsbCBi ZSB1c2VkIGFuZCBpbiB0aGlzIGNhc2UgaW50ZWwgaTkxNSBkcml2ZXIKPj4+Pj4+IHdpbGwgKm5v dCogZHJvcCBiYWNrbGlnaHQgY2hhbmdlIHJlcXVlc3QuCj4+Pj4+Pgo+Pj4+Pj4gQW5vdGhlciBz b2x1dGlvbiBjb3VsZCBiZSB0byBkaXNhYmxlIGNoZWNrIGluCj4+Pj4+PiBkZWxsX2xhcHRvcCBk cml2ZXIgYW5kIGFkZCB1c2VfbmF0aXZlX2JhY2tsaWdodD0wIHRvCj4+Pj4+PiBob29rcy4gQnV0 IHRoaXMgY3JlYXRlIHR3byBiYWNrbGlnaHQgaW50ZXJmYWNlcyAod2hpY2gKPj4+Pj4+IGlzIG5v dCBnb29kKSwgYnV0IG9ubHkgd2F5IChmb3Igbm93KSBob3cgdG8gbWFrZQo+Pj4+Pj4gZGVsbF9s YXB0b3Agd29ya2luZyBhZ2Fpbi4KPj4+Pj4+Cj4+Pj4+PiBCZXR0ZXIgYW5kIG1heWJlIG9ubHkg b25lIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0bwo+Pj4+Pj4gdGVhY2ggaW50ZWwgZHJtIGk5 MTUgZHJpdmVyIHRvIG5vdCBkcm9wIGJhY2tsaWdodCBjaGFuZ2UKPj4+Pj4+IHJlcXVlc3QgZm9y IERlbGwgbGFwdG9wcyAob3IgYWxsPz8pLiAoVGhpcyBhbGxvd3MgdG8KPj4+Pj4+IHdvcmsgYm90 aCBhY3BpIHZpZGVvIGFuZCBkZWxsX2xhcHRvcCBkcml2ZXJzIHdpdGhvdXQKPj4+Pj4+IGFueSBj aGFuZ2UgYW5kIHdpdGggKmFueSogdmFsdWUgaW4gcGFyYW0KPj4+Pj4+IHVzZV9uYXRpdmVfYmFj a2xpZ2h0KS4gSSB0aGluayB0aGF0IHByb2JsZW1hdGljIGNvZGUgaXMKPj4+Pj4+IGluIGZ1bmN0 aW9uIGFzbGVfc2V0X2JhY2tsaWdodCgpIGluIGZpbGUKPj4+Pj4+IGludGVsX29wcmVnaW9uLmMg KGJ1dCBJJ20gbm90IHN1cmUpLiBNeSBpZGVhIGlzIHRoYXQKPj4+Pj4+ICJkcm9wIiBldmVudCBm dW5jdGlvbiBpdCBpcyBjYXVzZWQgYnkgdGhpcyBjb21taXQKPj4+Pj4+IDBiOWY3ZDkzY2E2MTA5 MDQ4YTRlYjA2MzMyYjY2NmI2ZTI5ZGY0ZmUgKGJ1dCBJJ20gbm90Cj4+Pj4+PiBzdXJlKS4KPj4+ Pj4+Cj4+Pj4+PiBBdCBsZWFzdCBzb21ldGhpbmcgbXVzdCBiZSBkb25lIGFzIEkgdGhpbmsgdGhh dCBJJ20gbm90Cj4+Pj4+PiBvbmx5IG9uZSB3aG8gaGFzIERlbGwgbGFwdG9wIGFuZCBicmlnaHRu ZXNzCj4+Pj4+PiBjb25maWd1cmF0aW9uIGlzIHJlYWxseSBpbXBvcnRhbnQuLi4KPj4+Pj4KPj4+ Pj4gSSBkb24ndCB1bmRlcnN0YW5kIHlvdXIgcHJvYmxlbSwgdGhlIGtlcm5lbCBpcyBzZWxlY3Rp bmcKPj4+Pj4gdGhlIGk5MTUgYmFja2xpZ2h0IGRyaXZlciwgbWFraW5nIHRoYXQgdGhlIG9ubHkg b25lCj4+Pj4+IGF2YWlsYWJsZSB0byB1c2Vyc3BhY2UsIHNvIHRoZSBvbmUgcHJvYmxlbSB5b3Ug c3RhdGUgd2l0aAo+Pj4+PiB0aGUgaTkxNSBkcml2ZXIsIHRoYXQgaXQgaXMgInJhdyIgaXMgbm90 IGFuIGlzc3VlLCBhcwo+Pj4+PiB1c2Vyc3BhY2Ugd2lsbCBwaWNrIGl0IHdoZW4gaXQgaXMgdGhl IG9ubHkgb25lLgo+Pj4+Cj4+Pj4gSXQgaXMgbm90IG9ubHkgb25lLgo+Pj4KPj4+IEFyZSB5b3Ug c3VyZSwgaWYgeW91IGRvIG5vdCBzcGVjaWZ5IGFueSBjb21tYW5kbGluZQo+Pj4gcGFyYW1ldGVy cywgdGhlbiBuZWl0aGVyIGRlbGwtbGFwdG9wIG5vciBhY3BpLXZpZGVvIHNob3VsZAo+Pj4gcmVn aXN0ZXIgYSBiYWNrbGlnaHQgaW50ZXJmYWNlLgo+Pj4KPj4+IGRlbGwtbGFwdG9wLmMgaGFzOgo+ Pj4KPj4+ICNpZmRlZiBDT05GSUdfQUNQSQo+Pj4KPj4+ICAgICAgICAgLyogSW4gdGhlIGV2ZW50 IG9mIGFuIEFDUEkgYmFja2xpZ2h0IGJlaW5nCj4+PiAgICAgICAgIGF2YWlsYWJsZSwKPj4+Cj4+ PiBkb24ndCAqIHJlZ2lzdGVyIHRoZSBwbGF0Zm9ybSBjb250cm9sbGVyLgo+Pj4KPj4+ICAgICAg ICAgICovCj4+PiAgICAgICAgIAo+Pj4gICAgICAgICBpZiAoYWNwaV92aWRlb19iYWNrbGlnaHRf c3VwcG9ydCgpKQo+Pj4gICAgICAgICAKPj4+ICAgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4+ Cj4+PiAjZW5kaWYKPj4+Cj4+PiBBbmQgYWNwaV92aWRlb19iYWNrbGlnaHRfc3VwcG9ydCgpIHdp bGwgKG5vcm1hbGx5KSByZXR1cm4KPj4+IHRydWUgb24gYWNwaS1iYWNrbGlnaHQgY2FwYWJsZSBz eXN0ZW1zIGluZGVwZW5kZW50IG9mCj4+PiB1c2VfbmF0aXZlX2JhY2tsaWdodC4KPj4+Cj4+PiBB bmQgZHJpdmVycy9hY3BpL3ZpZGVvLmMgaGFzIHRoaXM6Cj4+PiAgICAgICAgIC8qIG5vIHdhcm5p bmcgbWVzc2FnZSBpZiBhY3BpX2JhY2tsaWdodD12ZW5kb3Igb3IgYQo+Pj4KPj4+IHF1aXJrIGlz IHVzZWQgKi8gaWYgKCFhY3BpX3ZpZGVvX3ZlcmlmeV9iYWNrbGlnaHRfc3VwcG9ydCgpKQo+Pj4K Pj4+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4+Pgo+Pj4gLi4uCj4+Pgo+Pj4gYm9vbCBhY3Bp X3ZpZGVvX3ZlcmlmeV9iYWNrbGlnaHRfc3VwcG9ydCh2b2lkKQo+Pj4gewo+Pj4KPj4+ICAgICAg ICAgaWYgKGFjcGlfb3NpX2lzX3dpbjgoKSAmJgo+Pj4KPj4+IGFjcGlfdmlkZW9fdXNlX25hdGl2 ZV9iYWNrbGlnaHQoKSAmJgo+Pj4gYmFja2xpZ2h0X2RldmljZV9yZWdpc3RlcmVkKEJBQ0tMSUdI VF9SQVcpKSByZXR1cm4gZmFsc2U7Cj4+Pgo+Pj4gICAgICAgICByZXR1cm4gYWNwaV92aWRlb19i YWNrbGlnaHRfc3VwcG9ydCgpOwo+Pj4KPj4+IH0KPj4+Cj4+PiBTbyB1bmxpa2UgdGhlIGNoZWNr IGluIGRlbGwtbGFwdG9wIHRoaXMgb25lIGRvZXMgZGVwZW5kIG9uCj4+PiB0aGUgdXNlX25hdGl2 ZV9iYWNrbGlnaHQgc2V0dGluZy4KPj4KPj4gSXQgZGVwZW5kcyAoc2VlIG15IHByZXZpb3VzIG1h aWwpLiBIZXJlIGlzIGNvZGU6Cj4+Cj4+IHN0YXRpYyBib29sIGFjcGlfdmlkZW9fdXNlX25hdGl2 ZV9iYWNrbGlnaHQodm9pZCkKPj4gewo+PiAJaWYgKHVzZV9uYXRpdmVfYmFja2xpZ2h0X3BhcmFt ICE9IC0xKQo+PiAJCXJldHVybiB1c2VfbmF0aXZlX2JhY2tsaWdodF9wYXJhbTsKPj4gCWVsc2UK Pj4gCQlyZXR1cm4gdXNlX25hdGl2ZV9iYWNrbGlnaHRfZG1pOwo+PiB9CgpOb3Qgc3VyZSB3aGF0 IHlvdSdyZSB0cnlpbmcgdG8gc2F5IGhlcmUsIHRoZSBkZWZhdWx0IGZvcgp0aGlzIGlzIDEsIHNv IGlmIHlvdSBkb24ndCBzcGVjaWZ5IGFueXRoaW5nLCB0aGVuIHRoaXM6Cgpib29sIGFjcGlfdmlk ZW9fdmVyaWZ5X2JhY2tsaWdodF9zdXBwb3J0KHZvaWQpCnsKICAgICAgICBpZiAoYWNwaV9vc2lf aXNfd2luOCgpICYmIGFjcGlfdmlkZW9fdXNlX25hdGl2ZV9iYWNrbGlnaHQoKSAmJgogICAgICAg ICAgICBiYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyZWQoQkFDS0xJR0hUX1JBVykpCiAgICAgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuIGFjcGlfdmlkZW9fYmFja2xpZ2h0 X3N1cHBvcnQoKTsKfQoKV2lsbCByZXR1cm4gZmFsc2UsIGFuZCB5b3Ugd29uJ3QgZ2V0IGFuIGFj cGlfdmlkZW8wIGJhY2tsaWdodCBpbnRlcmZhY2UsCm9ubHkgdGhlIGludGVsX2JhY2tsaWdodCBv bmUsIGFuZCBldmVyeXRoaW5nIHNob3VsZCBqdXN0IHdvcmsKKGV4Y2VwdCBmb3IgdGhlIHR1cm5p bmcgb2ZmIG9uIGxvdyBzZXR0aW5ncykuCgpIYXZlIHlvdSB0cmllZCBub3QgdXNpbmcgYW55IGtl cm5lbCBjb21tYW5kbGluZSBvcHRpb25zPyBXaGF0IGhhcHBlbnM/Cgo+Pgo+Pj4gSSd2ZSBqdXN0 IGNoZWNrZWQgMy4xNyBvbiBteSBFNjQzMCBhbmQgdGhlcmUgdGhpcyB3b3JrcyBhcwo+Pj4gaXQg c2hvdWxkLCBJIG9ubHkgZ2V0IHRoZSBpbnRlbF9iYWNrbGlnaHQgaW4KPj4+IC9zeXMvY2xhc3Mv YmFja2xpZ2h0Cj4+Pgo+Pj4+IEFsc28gZGVsbC1sYXB0b3AgKG9yIGFjcGkgdmlkZW8pIGJhY2ts aWdodAo+Pj4+IGludGVyZmFjZSBpcyBjcmVhdGVkIChkZXBlbmRzIG9uIHVzZV9uYXRpdmVfYmFj a2xpZ2h0Cj4+Pj4gcGFyYW0pLiBBbmQgdXNlcnNwYWNlIHdpbGwgcGljayBkZWxsLWxhcHRvcCAo b3IgYWNwaQo+Pj4+IHZpZGVvKSB0byB1c2UgKHdoaWNoIGNhbm5vdCBjaGFuZ2UgYnJpZ2h0bmVz cykuCj4+Pj4KPj4+Pj4gV2h5IHdvdWxkIHlvdSB3YW50IHRvIHVzZSBkZWxsLWxhcHRvcCBkZXNw aXRlIHRoZSBpOTE1Cj4+Pj4+IGRyaXZlciB3b3JraW5nIGZpbmUgPwo+Pj4+Cj4+Pj4gaTkxNSB3 b3JraW5nIG9ubHkgaWYgSSBjb21waWxlIGtlcm5lbCB3aXRob3V0IGFjcGkgdmlkZW8KPj4+PiBk ZWxsLSBsYXB0b3Agc3VwcG9ydCAoZGlzdHJpYnV0aW9ucyBjb21waWxlIGtlcm5lbCB3aXRoCj4+ Pj4gdGhlc2UgZHJpdmVycykgYW5kIGk5MTUgaXMgbm90IGdvb2QgZm9yIHVzYWdlLiBGaXJzdCBp dAo+Pj4+IHByb3ZpZGVzIG1vcmUgdGhlbiB0aG91c2FuZCBicmlnaHRuZXNzIGxldmVscyBhbmQg bG90IG9mCj4+Pj4gKHdpdGggbG93IG51bWJlcnMpIGNvbXBsZXRlbHkgdHVybiBkaXNwbGF5IG9m Zi4gQW5kIGlmCj4+Pj4gdXNlcnNwYWNlIG1hcCB0aGVzZSB0aG91c2FuZCBsZXZlbHMgaW50byA1 LTEwIGxldmVscyAoYXMKPj4+PiBub2JvZHkgd2FudCB0byBwcmVzcyBicmlnaHRuZXNzIGtleSB1 cC9kb3duIDEwMDB4KSB0d28KPj4+PiBsb3dlc3QgbGV2ZWxzIGNhdXNlIGRpc3BsYXkgb2ZmLgo+ Pj4KPj4+IE1vcmUgYW5kIG1vcmUgbGFwdG9wcyB3aWxsIG9ubHkgaGF2ZSB3b3JraW5nIGJhY2ts aWdodAo+Pj4gY29udHJvbCBhdCBhbGwgd2hlbiB1c2luZyBpOTE1LCBzbyB1c2Vyc3BhY2Ugd2ls bCBuZWVkIHRvCj4+PiBsZWFybiB0byBiZXR0ZXIgZGVhbCB3aXRoIGJhY2tsaWdodCBjb250cm9s cyB3aXRoIHRoZXNlCj4+PiByYW5nZXMuIEFuZCBsb3cgcHdtIGxldmVscyB0dXJuaW5nIHRoZSBi YWNrbGlnaHQgb2YgaXMKPj4+IG5vcm1hbCBmb3IgcmF3IGludGVyZmFjZXMsIGlmIHVzZXJzcGFj ZSBkb2VzIG5vdCB3YW50IHRoaXMsCj4+PiB0aGVuIHRoZXkgc2hvdWxkIG5vdCBnbyBzbyBsb3cu Cj4+Cj4+IFNvIHRoZW4ga2VybmVsIHNob3VsZCByZXBvcnQgd2hpY2ggbG93IGxldmVscyB0dXJu IGJhY2tsaWdodAo+PiBvZmYgc28gdXNlcnNwYWNlIHdpbGwga25vdyB3aGljaCBsZXZlbHMgc2hv dWxkIGF2b2lkLiBCdXQKPj4gdGhpcyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0Lgo+Pgo+Pj4gSSBz dWdnZXN0IHRoYXQgeW91IGZpbGUgYSBidWcgYWdhaW5zdCB5b3VyIGRlc2t0b3AKPj4+IGVudmly b25tZW50IHRoYXQgaXQgaXMgbm90IHVzaW5nIHRoZSBiYWNrbGlnaHQgY29udHJvbHMgaW4KPj4+ IGFuIG9wdGltYWwgbWFubmVyLCBmcm9tIHRoZSBrZXJuZWwgcG92IGV2ZXJ5dGhpbmcgaXMKPj4+ IHdvcmtpbmcgZmluZS4KPj4KPj4gT25jZSBJIHdpbGwga25vdyB3aGljaCBsZXZlbHMgc2hvdWxk IG5vdCBERSB1c2UgSSBjYW4gcmVwb3J0Cj4+IGJ1Zy4KPj4KPj4+PiBXaXRoIGFjcGkKPj4+PiB2 aWRlbyBhbmQgZGVsbC1sYXB0b3AgZHJpdmVyIGxldmVscyBhcmUgbWFwcGVkIGludG8gc21hbGwK Pj4+PiBsZXZlbCBzcGFjZSBpbiBwZXJmZWN0IHdheS4gU28gdGhpcyBpcyByZWFzb24gSSB3YW50 IHRvCj4+Pj4gdXNlIGRlbGwtbGFwdG9wIGZvciBjb250cm9sbGluZyBicmlnaHRuZXNzLgo+Pj4K Pj4+IElmIHlvdSB3YW50IHRvIHVzZSBkZWxsLWxhcHRvcCwgc3BlY2lmeQo+Pj4gYWNwaV9iYWNr bGlnaHQ9dmVuZG9yIG9uIHRoZSBrZXJuZWwgY29tbWFuZGxpbmUsIHRoYXQgd2lsbAo+Pj4gZ2l2 ZSB5b3UgZGVsbF9sYXB0b3AgKyBpbnRlbF9iYWNrbGlnaHQgYXMgYmFja2xpZ2h0Cj4+PiBpbnRl cmZhY2VzLCBhbmQgdXNlcnNwYWNlIHNob3VsZCBwcmVmZXIgZGVsbF9sYXB0b3AuCj4+Cj4+IFdp dGggYWNwaV9iYWNrbGlnaHQ9dmVuZG9yIGRlbGwtbGFwdG9wIGlzIG5vdCB3b3JraW5nLCBzZWUg bXkKPj4gcHJldmlvdXMgbWFpbC4gSW4gdGhpcyBjYXNlIGludGVsIGk5MTUgZHJtIGRyaXZlciBp Z25vcmUgYmlvcwo+PiBldmVudHMgZm9yIGNoYW5naW5nIGJyaWdodG5lc3MuIEFuZCB1c2Vyc3Bh Y2UgcHJlZmVyIHRvIHVzZQo+PiBkZWxsX2xhcHRvcCB3aGljaCBkbyBub3RoaW5nIQo+Pgo+IAo+ IE9rLCB0aGF0IHByb2JsZW1hdGljIGNvbW1pdCBpczoKPiAKPiBBQ1BJIC8gaTkxNTogaWdub3Jl IGZpcm13YXJlIHJlcXVlc3RzIGZvciBiYWNrbGlnaHQgY2hhbmdlCj4gMGI5ZjdkOTNjYTYxMDkw NDhhNGViMDYzMzJiNjY2YjZlMjlkZjRmZQo+IAo+IFdoZW4gSSByZXZlcnRlZCBpdCBhY3BpX2Jh Y2tsaWdodD12ZW5kb3Igc3RhcnRlZCB3b3JraW5nIGFnYWluIAo+ICh2aWEgZGVsbF9sYXB0b3Ap LiBXaXRob3V0IHJldmVydGluZyB0aGF0IGNvbW1pdCBkZWxsX2xhcHRvcCAKPiBzaW1wbHkgZG8g bm90aGluZy4KPiAKPiBUZXN0ZWQgYW5kIG9uIG15IGxhcHRvcCBEZWxsIExhdGl0dWRlIEU2NDQw IGRyaXZlciBkZWxsX2xhcHRvcCAKPiBkb2VzIG5vdCB3b3JrIHdpdGggYWJvdmUgY29tbWl0LgoK SG1tLCBpbnRlcmVzdGluZywgc28gd2hlbiBkZWxsLWxhcHRvcCByZWdpc3RlcnMgYW5kIG1ha2Vz IGEgZmV3CmNhbGxzIHVzaW5nIHRoZSBkZWxsLWxhcHRvcCBhY3BpIGludGVyZmFjZSwgdGhlbiB5 b3UgZWl0aGVyCnN0b3AgZ2V0dGluZyBrZXkgcHJlc3MgZXZlbnRzIHRocm91Z2ggdGhlIGFjcGkt dmlkZW8tYnVzLCBvcgpkZWxsLWxhcHRvcCBpcyBqdXN0IGEgc2hpbSBhcm91bmQgdGhlIGk5MTUg aW50ZXJmYWNlIHdpdGggdGhlCmZpcm13YXJlIGNhbGxpbmcgaW50byBpdHNlbGYgb24gdGhlc2Ug bW9kZWxzLiBHaXZlbiB0aGF0IGRlbGwtbGFwdG9wCmlzIGFuY2llbnQsIHRoZSBzaGltIHN0b3J5 IGlzIG5vdCB0aGF0IGZhciBmZXRjaGVkLgoKRG8geW91IHN0aWxsIGdldCBhbiBvbiBzY3JlZW4g ZGlzcGxheSBzaG93aW5nIHRoZSBicmlnaHRuZXNzIHdoZW4KdXNpbmcgYSBrZXJuZWwgd2l0aG91 dCB0aGlzIHBhdGNoICsgYWNwaV9iYWNrbGlnaHQ9dmVuZG9yID8KClJlZ2FyZHMsCgpIYW5zCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==