From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH] pci/quirks: Add quirk to reset nvgpu at boot for the Lenovo ThinkPad P50 Date: Tue, 19 Mar 2019 16:56:03 -0400 Message-ID: <1e73b768ac65033658740abe553291fd3b0496c6.camel@redhat.com> References: <20190212220230.1568-1-lyude@redhat.com> <20190215004329.GR96272@google.com> <2fca9a9feafcd17b27bc71994a71ebc241a93e9a.camel@redhat.com> <52b17f8cb24e179e9661d75548d193843ae87b4c.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by gabe.freedesktop.org (Postfix) with ESMTPS id 91C908935A for ; Tue, 19 Mar 2019 20:56:06 +0000 (UTC) Received: by mail-qt1-f196.google.com with SMTP id y36so71000qtb.3 for ; Tue, 19 Mar 2019 13:56:06 -0700 (PDT) In-Reply-To: <52b17f8cb24e179e9661d75548d193843ae87b4c.camel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Bjorn Helgaas , David Ober Cc: Karol Herbst , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QnVtcCwgc29ycnkgdG8gYnVnIHlvdSBidXQgaXMgdGhlcmUgYW55IHVwZGF0ZSBvbiB0aGlzIG9y IGFueSBpbmZvcm1hdGlvbiB5b3UKc3RpbGwgbmVlZCBmcm9tIG1lIHdoaWNoIHdvdWxkIGhlbHAg Z2V0IHRoaXMgdXBzdHJlYW0/CgpPbiBXZWQsIDIwMTktMDMtMTMgYXQgMTg6MjUgLTA0MDAsIEx5 dWRlIFBhdWwgd3JvdGU6Cj4gW25vdGUgdG8gRGF2aWQgT2JlcjogeW91IC1zaG91bGQtIGJlIGFi bGUgdG8gcmVwbHkgdG8gdGhpcywgaG9wZWZ1bGx5LCBidXQgSQo+IGhhdmVuJ3QgYWN0dWFsbHkg dGVzdGVkIHRoYXQgc28gcmVzdWx0cyBtYXkgdmFyeV0KPiAKPiBIaSBhZ2FpbiEgU29ycnkgSSBk aWRuJ3QgZnVsbHkgYW5zd2VyIGFsbCBvZiB0aGUgcXVlc3Rpb25zIHlvdSBvcmlnaW5hbGx5Cj4g YXNrZWQgaW4gdGhpcyBlbWFpbCwgSSBoYWQgdG8gZ2V0IGluIGNvbnRhY3Qgd2l0aCBMZW5vdm8g dG8gbWFrZSBzdXJlIHRoYXQKPiBpdAo+IHdhcyBPSyBmb3IgbWUgdG8gZGlzY2xvc2UgbW9yZSBk ZXRhaWxzIG9uIHRoaXMgYnVnIChhbmQgSSBoYWQgUFRPIHNjaGVkdWxlZAo+IGltbWVkaWF0ZWx5 IGFmdGVyIEkgYXNrZWQpLiBJJ3ZlIGFkZGVkIERhdmlkIE9iZXIgZnJvbSBMZW5vdm8gdG8gdGhp cyB0aHJlYWQKPiBhcyB3ZWxsLiBTbyBub3cgdGhhdCBJJ3ZlIGdvdCBMZW5vdm8ncyBhcHByb3Zh bCBJIGNhbiBhbnN3ZXIgdGhvc2UKPiBxdWVzdGlvbnMsCj4gYW5kIGdpdmUgc29tZSBiZXR0ZXIg YW5zd2VycyBmb3IgdGhlIG90aGVycyEgKHNlZSBiZWxvdykKPiAKPiAKPiBPbiBGcmksIDIwMTkt MDItMTUgYXQgMTY6MTcgLTA1MDAsIEx5dWRlIFBhdWwgd3JvdGU6Cj4gPiBPbiBUaHUsIDIwMTkt MDItMTQgYXQgMTg6NDMgLTA2MDAsIEJqb3JuIEhlbGdhYXMgd3JvdGU6Cj4gPiA+IEhpIEx5dWRl LAo+ID4gPiAKPiA+ID4gT24gVHVlLCBGZWIgMTIsIDIwMTkgYXQgMDU6MDI6MzBQTSAtMDUwMCwg THl1ZGUgUGF1bCB3cm90ZToKPiA+ID4gPiBPbiBhIHZlcnkgc3BlY2lmaWMgc3Vic2V0IG9mIFRo aW5rUGFkIFA1MCBTS1VzLCBwYXJ0aWN1bGFybHkgb25lcyB0aGF0Cj4gPiA+ID4gY29tZSB3aXRo IGEgUXVhZHJvIE0xMDAwTSBjaGlwIGluc3RlYWQgb2YgdGhlIE0yMDAwTSB2YXJpYW50LCB0aGUg QklPUwo+ID4gPiA+IHNlZW1zIHRvIGhhdmUgYSB2ZXJ5IG5hc3R5IGhhYml0IG9mIG5vdCBhbHdh eXMgcmVzZXR0aW5nIHRoZSBzZWNvbmRhcnkKPiA+ID4gPiBOdmlkaWEgR1BVIGJldHdlZW4gZnVs bCByZWJvb3RzIGlmIHRoZSBsYXB0b3AgaXMgY29uZmlndXJlZCBpbiBIeWJyaWQKPiA+ID4gPiBH cmFwaGljcyBtb2RlLiBUaGUgcmVhc29uIGZvciB0aGlzIGhhcHBlbmluZyBpcyB1bmtub3duLCBi dXQgdGhlCj4gPiA+ID4gZm9sbG93aW5nIHN0ZXBzIGFuZCBwb3NzaWJseSBhIGdvb2QgYml0IG9m IHBhdGllbmNlIHdpbGwgcmVwcm9kdWNlIHRoZQo+ID4gPiA+IGlzc3VlOgo+ID4gPiA+IAo+ID4g PiA+IDEuIEJvb3QgdXAgdGhlIGxhcHRvcCBub3JtYWxseSBpbiBIeWJyaWQgZ3JhcGhpY3MgbW9k ZQo+ID4gPiA+IDIuIE1ha2Ugc3VyZSBub3V2ZWF1IGlzIGxvYWRlZCBhbmQgdGhhdCB0aGUgR1BV IGlzIGF3YWtlCj4gPiA+ID4gMi4gQWxsb3cgdGhlIG52aWRpYSBHUFUgdG8gcnVudGltZSBzdXNw ZW5kIGl0c2VsZiBhZnRlciBiZWluZyBpZGxlCj4gPiA+ID4gMy4gUmVib290IHRoZSBtYWNoaW5l LCB0aGUgbW9yZSBzdWRkZW4gdGhlIGJldHRlciAoZS5nIHN5c3JxLWIgbWF5Cj4gPiA+ID4gaGVs cCkKPiA+ID4gPiA0LiBJZiBub3V2ZWF1IGxvYWRzIHVwIHByb3Blcmx5LCByZWJvb3QgdGhlIG1h Y2hpbmUgYWdhaW4gYW5kIGdvIGJhY2sKPiA+ID4gPiB0bwo+ID4gPiA+IHN0ZXAgMiB1bnRpbCB5 b3UgcmVwcm9kdWNlIHRoZSBpc3N1ZQo+ID4gPiA+IAo+ID4gPiA+IFRoaXMgcmVzdWx0cyBpbiBz b21lIHZlcnkgc3RyYW5nZSBiZWhhdmlvcjogdGhlIEdQVSB3aWxsCj4gPiA+ID4gcXVpdGUgbGl0 ZXJhbGx5IGJlIGxlZnQgaW4gZXhhY3RseSB0aGUgc2FtZSBzdGF0ZSBpdCB3YXMgaW4gd2hlbiB0 aGUKPiA+ID4gPiBwcmV2aW91c2x5IGJvb3RlZCBrZXJuZWwgc3RhcnRlZCB0aGUgcmVib290LiBU aGlzIGhhcyBhbGwgc29ydHMgb2YgYmFkCj4gPiA+ID4gc2lkZWFmZmVjdHM6IGZvciBzdGFydGVy cywgdGhpcyBjb21wbGV0ZWx5IGJyZWFrcyBub3V2ZWF1IHN0YXJ0aW5nCj4gPiA+ID4gd2l0aAo+ ID4gPiA+IGEKPiA+ID4gPiBteXN0ZXJpb3VzIEVWTyBjaGFubmVsIGZhaWx1cmUgdGhhdCBoYXBw ZW5zIHdlbGwgYmVmb3JlIHdlJ3ZlIGFjdHVhbGx5Cj4gPiA+ID4gdXNlZCB0aGUgRVZPIGNoYW5u ZWwgZm9yIGFueXRoaW5nOgo+ID4gPiAKPiA+ID4gVGhlcmUgYXJlIGEgbG90IG9mIG1vdmluZyBw YXJ0cyBoZXJlIHRoYXQgYXJlIHByb2JhYmx5IG9idmlvdXMgdG8geW91Cj4gPiA+IGJ1dCBub3Qg dG8gbWUuICBJIG5lZWQgaGVscCB1bnRhbmdsaW5nIHRoaXMgYSBiaXQgc28gSSdtIGNvbWZvcnRh YmxlCj4gPiA+IHRoYXQgd2UgZ290IHRvIHRoZSByb290IGNhdXNlIGFuZCB0aGF0IHdlJ3JlIGRv aW5nIHNvbWV0aGluZyBsb2dpY2FsCj4gPiA+IGFzIG9wcG9zZWQgdG8gc29tZXRoaW5nIHRoYXQg anVzdCBoYXBwZW5zIHRvIG1ha2UgdGhpbmdzIHdvcmsuICBJCj4gPiA+IHJlYWxseSBkb24ndCBr bm93IGVub3VnaCB0byBldmVuIGFzayB0aGUgcmlnaHQgcXVlc3Rpb25zLi4uCj4gPiAKPiA+IEkg Y29tcGxldGVseSB1bmRlcnN0YW5kISBJJ20gcHJldHR5IHN1cmUgSSdkIGJlIGp1c3QgYXMgc2tl cHRpY2FsIGlmIEkgd2FzCj4gPiBpbgo+ID4geW91ciBwb3NpdGlvbiByZXZpZXdpbmcgYSBwYXRj aCBsaWtlIHRoaXMgOlAKPiA+IAo+ID4gPiBJcyB0aGVyZSBhIGJ1ZyByZXBvcnQgZm9yIHRoaXM/ ICBCdWd6aWxsYS5rZXJuZWwub3JnIHdvdWxkIGJlIGlkZWFsLAo+ID4gPiBpbmNsdWRpbmcgImxz cGNpIC12dnh4eCIgYW5kIGRtaWRlY29kZSBmb3IgdGhlIHN5c3RlbS4KPiA+ID4gCj4gPiBOb3Qg eWV0LCBidXQgdGhlcmUgaGFzIGJlZW4gZGlzY3Vzc2lvbiBhYm91dCB0aGlzIGJldHdlZW4gbm91 dmVhdQo+ID4gZGV2ZWxvcGVycwo+ID4gb24gb3VyIElSQyBjaGFubmVsLgo+IEkgbGllZDogeWVz IHRoZXJlIGFjdHVhbGx5IGlzIGEgYnVnIHJlcG9ydCBmb3IgdGhpcywgYnV0IGl0J3MgY3VycmVu dGx5IG9uCj4gdGhlCj4gUmVkIEhhdCBidWd6aWxsYS4gSSBjYW4gZ2V0IG1vcmUgaW5mb3JtYXRp b24gZnJvbSBpdCBpZiB5b3UgbmVlZCAod2l0aAo+IGxlbm92bydzIGFwcHJvdmFsIG9mIGNvdXJz ZSkuCj4gCj4gPiA+IElzIHRoaXMgcnVubmluZyBhIGN1cnJlbnQgQklPUz8gIFRoZSBkYXRlIGlu IHlvdXIgbG9nIGJlbG93IGxvb2tzCj4gPiA+IHByZXR0eSByZWNlbnQsIHNvIEkgYXNzdW1lIGl0 IGlzIGN1cnJlbnQuCj4gPiAKPiA+IFllcywgdGhpcyBpcyB0aGUgbW9zdCB1cCB0byBkYXRlIEJJ T1MgYXZhaWxhYmxlIGZvciB0aGlzIHN5c3RlbS4KPiAKPiBBbmQgYWRkaXRpb25hbGx5OiBJJ3Zl IGJlZW4gd29ya2luZyB3aXRoIExlbm92byBvbiB0aGlzIGlzc3VlIGZvciBhIGNvdXBsZQo+IG9m Cj4gbW9udGhzIG5vdywgYW5kIHdlJ3ZlIGdvbmUgdGhyb3VnaCBkb3plbnMgb2YgZGlmZmVyZW50 IHRyaWFsIEJJT1NlcyB3aXRoIG5vCj4gc3VjY2VzcyB0aHVzIGZhci4gSG93ZXZlciwgTGVub3Zv IGlzIGN1cnJlbnRseSB3b3JraW5nIG9uIHRyeWluZyB0byBhZGQgdGhpcwo+IHdvcmthcm91bmQg aW50byB0aGVpciBCSU9TIGJ1dCBJJ3ZlIGJlZW4gdG9sZCB0aGF0IHRoaXMgY2hhbmdlIGlzIGdv aW5nIHRvCj4gdGFrZSBhIGRlY2VudCBhbW91bnQgb2YgdGltZSBzaW5jZSB0aGV5IG5lZWQgdG8g dGVzdCBpdCBhY3Jvc3MgbXVsdGlwbGUKPiBvcGVyYXRpbmcgc3lzdGVtcy4gSSdkIGJlIGhhcHB5 IHRvIGNvbWUgYmFjayBhbmQgYWRkIGEgY29uZGl0aW9uYWwgbGF0ZXIgdG8KPiB0dXJuIHRoaXMg d29ya2Fyb3VuZCBvZmYgZm9yIGxhdGVyIEJJT1MgdmVyc2lvbnMgb25jZSBMZW5vdm8gaGFzIHJl bGVhc2VkIGEKPiBwcm9wZXIgZml4Lgo+IAo+IFdpdGggYWxsIG9mIHRoYXQgYmVpbmcgc2FpZCwg W2hvd10gZG8geW91IHRoaW5rIHdlIHNob3VsZCBwcm9jZWVkPwo+IAo+ID4gPiBJIGFzc3VtZSAi aHlicmlkIGdyYXBoaWNzIiBtZWFucyB5b3UgaGF2ZSB0d28gR1BVcy4gIERvIHlvdSBzZWxlY3QK PiA+ID4gaHlicmlkIGdyYXBoaWNzIG1vZGUgaW4gdGhlIEJJT1M/Cj4gPiAKPiA+IFllcywgdGhl IFA1MCBoYXMgdHdvIGF2YWlsYWJsZSBtb2RlcyBpbiB0aGUgQklPUzogRGVkaWNhdGVkIChlLmcu IG9ubHkKPiA+IHRoZSBudmlkaWEgR1BVIGlzIHVzZWQgZm9yIGV2ZXJ5dGhpbmcpLCBhbmQgSHli cmlkIChpOTE1IGRyaXZlcyB0aGUKPiA+IGJ1aWx0LWluIGRpc3BsYXkgcGFuZWwsIG5vdXZlYXUg ZHJpdmVzIGV2ZXJ5dGhpbmcgZWxzZSkuIFRoaXMgYnVnIG9ubHkKPiA+IHNlZW1zIHRvIG9jY3Vy IGluIEh5YnJpZCBtb2RlLgo+ID4gCj4gPiA+IEkgYXNzdW1lIHdoZW4geW91IHNheSB0aGUgTnZp ZGlhIEdQVSBkb2Vzbid0IGdldCByZXNldCBvbiBhIGZ1bGwKPiA+ID4gcmVib290LCB5b3UncmUg dGFsa2luZyBhYm91dCBhICJ3YXJtIHJlYm9vdCIsIGFuZCB0aGF0IGlmIHlvdSBhY3R1YWxseQo+ ID4gPiByZW1vdmUgdGhlIHBvd2VyIGFuZCBkbyBhIGNvbGQgcmVib290LCB0aGVyZSdzIG5vIHBy b2JsZW0/Cj4gPiAKPiA+IElmIHlvdSBtZWFudCAidW5wbHVnZ2luZyB0aGUgcG93ZXIgYWRhcHRl ciIgd2hlbiB5b3Ugc2FpZCBjdXR0aW5nIHRoZQo+ID4gcG93ZXIgd2UgZG9uJ3QgbmVlZCB0byBn byB0aGF0IGZhciwgYnV0IHNodXR0aW5nIGRvd24gdGhlIG1hY2hpbmUgYW5kCj4gPiByZXN0YXJ0 aW5nIGl0IGJ5IGhhbmQgZG9lcyBhdm9pZCB0aGUgcHJvYmxlbSB5ZXMuCj4gPiAKPiA+ID4gSSBh c3N1bWUgTnZpZGlhIEdQVSBiZWluZyBhY3RpdmUgbWVhbnMgeW91IGFyZSB1c2luZyB0aGUgcGVy Zm9ybWFuY2UKPiA+ID4gR1BVLiAgRG9lcyB0aGF0IG1lYW4gdGhlIGludGVncmF0ZWQgR1BVIGlz IGNvbXBsZXRlbHkgdW51c2VkIGFuZCBMaW51eAo+ID4gPiBkb2VzIG5vdGhpbmcgYXQgYWxsIHdp dGggaXQ/ICBJcyBMaW51eCBkb2luZyBhbnkgc3dpdGNoaW5nIGJldHdlZW4KPiA+ID4gdGhlbT8g IElmIHNvLCBob3c/ICBJIGFtIG5vdCAxMDAlIGNvbmZpZGVudCBpbiB0aGUgY29kZSBJJ3ZlIHNl ZW4gdGhhdAo+ID4gPiBkb2VzIHRoZSBzd2l0Y2hpbmcuCj4gPiAKPiA+ICJTd2l0Y2hpbmciIGlz bid0IHJlYWxseSB0aGUgcmlnaHQgd29yZCB0byBkZXNjcmliZSBpdCB0aGVzZSBkYXlzIGFzIHRo ZQo+ID4gcHJvY2VzcyBmb3IgaG93IHRoaXMgaXMgaGFuZGxlZCBoYXMgY2hhbmdlZCBxdWl0ZSBh IGJpdCBpbiB0aGUgbGFzdCBmZXcKPiA+IHllYXJzLiBBcyBJIG1lbnRpb25lZCBhYm92ZSwgdGhl IG1haW4gaW50ZWwgR1BVIGlzIHVzZWQgZm9yIGRyaXZpbmcgdGhlCj4gPiBidWlsdC1pbiBkaXNw bGF5LiBBcyBmb3IgdGhlIG52aWRpYSBHUFUsIGl0J3MgdXNlZCB0byBkcml2ZSBhbnkga2luZCBv Zgo+ID4gZXh0ZXJuYWwgZGlzcGxheXMgY29ubmVjdGVkIHRvIHRoZSBQNTAgYW5kIGNhbiBhbHNv IGJlIHVzZWQgdG8gZG8KPiA+IHJlbmRlcmluZyB0aHJvdWdoIERSSSBQUklNRS4gVGhlIGNvbm5l Y3RvciBob29rdXBzIGFyZSBtb3N0bHkgaGFyZGNvZGVkCj4gPiBhcyB0aGVyZSBpc24ndCByZWFs bHkgbXVjaCBvZiBhIG11eCwgdW5saWtlIHRoZSBvbGQgZGF5cyB3aGVyZSB3ZSBjb3VsZAo+ID4g YWN0dWFsbHkgZG8gdGhpbmdzIGxpa2Ugc3dpdGNoIHdoaWNoIEdQVSB3YXMgZHJpdmluZyB0aGUg aW50ZXJuYWwKPiA+IGRpc3BsYXkgb24gdGhlIGZseSB3aXRoICB2Z2Etc3dpdGNoZXJvbyB1c2lu ZyB0aGUgX0RTTSBtZXRob2RzIHByb3ZpZGVkCj4gPiBieSBBQ1BJLgo+ID4gCj4gPiBOb3dhZGF5 cyBtdXhsZXNzIGxhcHRvcHMgbGlrZSB0aGUgVGhpbmtQYWQgUDUwIGRvbid0IG1ha2UgbXVjaCB1 c2Ugb2YKPiA+IF9EU00gZm9yIHBvd2VyIG1hbmFnZW1lbnQgYW5kIGluc3RlYWQganVzdCBydW50 aW1lIHN1c3BlbmQgdGhlIGRlZGljYXRlZAo+ID4gbnZpZGlhIEdQVSB3aGVuIGl0J3Mgbm90IGlu IHVzZS4gV2UgcmVseSBvbiB0aGUgUENJIHN1YnN5c3RlbSB0byBpbnZva2UKPiA+IHRoZSBfUFIz IEFDUEkgbWV0aG9kcyBmb3Igc3VzcGVuZGluZyBhbmQgcmVzdW1pbmcgdGhlIEdQVSBhbmQgZG9u J3QKPiA+IGhhbmRsZSBtdWNoIG9mIGl0IG91cnNlbHZlcyBhbnltb3JlOgo+ID4gCj4gPiBodHRw czovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC90b3J2YWxkcy9saW51 eC5naXQvdHJlZS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5jP2g9djUuMC1y YzYjbjg2MAo+ID4gCj4gPiAoWW91IGNhbiBpZ25vcmUgdGhlIGNhbGwgdG8gbm91dmVhdV9zd2l0 Y2hlcm9vX29wdGltdXNfZHNtKCkgdGhlcmU7IGl0Cj4gPiAgZG9lc24ndCBkbyBhbnl0aGluZyBv biBzeXN0ZW1zIGxpa2UgdGhlIFA1MCB3aGVyZSB3ZSBkZXRlY3QgX1BSMykKPiA+IAo+ID4gQWRk aXRpb25hbGx5LWlmIHlvdSBzZWUgYW55IHByb2JsZW1zIHdpdGggaG93IHdlJ3JlIGhhbmRsaW5n IHRoaW5ncwo+ID4gdGhlcmUgd2UncmUgYWxsIGVhcnMhIFdlJ3ZlIGJlZW4gdHJ5aW5nIHRvIGZp eCBhcyBtYW55IGlzc3VlcyB3aXRoCj4gPiBydW50aW1lIFBNIGFzIHdlIGNhbiBmaW5kLgo+ID4g Cj4gPiBTb21ldGhpbmcgZWxzZSB0byBjb25zaWRlciBoZXJlIHRvbzogSSd2ZSBvbmx5IGV2ZXIg bWFuYWdlZCB0byByZXByb2R1Y2UKPiA+IHRoaXMgaXNzdWUgb24gdGhpcyBzcGVjaWZpYyBQNTAg U0tVLiBTaW5jZSBJIHdvcmsgb24gRGVza3RvcCBlbmdpbmVlcmluZwo+ID4gYXQgUmVkIEhhdCB3 ZSBoYXZlIGFjY2VzcyB0byBhIHZlcnkgbGFyZ2UgbnVtYmVyIG9mIGxhcHRvcHMgd2l0aCBoeWJy aWQKPiA+IEdQVSBzZXR1cHMuIEludGVyZXN0aW5nbHkgSSBoYXZlbid0IGV2ZXIgcmVwcm9kdWNl ZCBhbnl0aGluZyBsaWtlIHRoaXMKPiA+IG9uIGFueSBvZiB0aGVtLCBldmVuIFA1MCBTS1VzIHdp dGggdGhlIE0yMDAwTSBHUFUgaW5zdGVhZCBvZiB0aGUgTTEwMDBNCj4gPiAod2hpY2ggYXJlIGFs bW9zdCBpZGVudGljYWwsIHRoZXkncmUgYm90aCBHTTEwNyBjaGlwcykgSSBjYW4gZm9sbG93IHRo ZQo+ID4gc2FtZSBzdGVwcyB0aGF0IEkgZm9sbG93ZWQgdG8gcmVwcm9kdWNlIHRoaXMgYnVnIGFu ZCBpdCBuZXZlciBhcHBlYXJzLgo+ID4gCj4gPiBBbm90aGVyIHRoaW5nIHRvIG5vdGU6IHRoaXMg YnVnIGFsc28gZG9lc24ndCBhcHBlYXIgdG8gaGFwcGVuIDEwMCUgb2YKPiA+IHRoZSB0aW1lLiBT b21lIHdhcm0gcmVib290cyB0aGUgR1BVIHdpbGwgYmUgcmVzZXQgYnkgdGhlIEJJT1MgcGVyZmVj dGx5Cj4gPiBmaW5lLgo+ID4gCj4gPiA+ID4gbm91dmVhdSAwMDAwOjAxOjAwLjA6IGRpc3A6IGNo aWQgMCBtdGhkIDAwMDAgZGF0YSAwMDAwMDQwMCAwMDAwMTAwMAo+ID4gPiA+IDAwMDAwMDAyCj4g PiA+ID4gCj4gPiA+ID4gTGF0ZXIgb24sIHRoaXMgY2F1c2VzIHVzIHRvIHRpbWVvdXQgdHJ5aW5n IHRvIGJyaW5nIHVwIHRoZSBHUiBjdHg6Cj4gPiA+ID4gCj4gPiA+ID4gLS0tLS0tLS0tLS0tWyBj dXQgaGVyZSBdLS0tLS0tLS0tLS0tCj4gPiA+ID4gbm91dmVhdSAwMDAwOjAxOjAwLjA6IHRpbWVv dXQKPiA+ID4gPiBXQVJOSU5HOiBDUFU6IDAgUElEOiAxMiBhdAo+ID4gPiA+IGRyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L252a20vZW5naW5lL2dyL2N0eGdmMTAwLmM6MTU0Nwo+ID4gPiA+IGdmMTAw X2dyY3R4X2dlbmVyYXRlKzB4N2IyLzB4ODUwIFtub3V2ZWF1XQo+ID4gPiA+IE1vZHVsZXMgbGlu a2VkIGluOiBub3V2ZWF1IG14bV93bWkgaTkxNSBjcmMzMmNfaW50ZWwgdHRtIGkyY19hbGdvX2Jp dAo+ID4gPiA+IHNlcmlvX3JhdyBkcm1fa21zX2hlbHBlciBzeXNjb3B5YXJlYSBzeXNmaWxscmVj dCBzeXNpbWdibHQgZmJfc3lzX2ZvcHMKPiA+ID4gPiB4aGNpX3BjaSBkcm0geGhjaV9oY2QgaTJj X2NvcmUgd21pIHZpZGVvCj4gPiA+ID4gQ1BVOiAwIFBJRDogMTIgQ29tbToga3dvcmtlci8wOjEg Tm90IHRhaW50ZWQgNS4wLjAtcmM1THl1ZGUtVGVzdCsgIzI5Cj4gPiA+ID4gSGFyZHdhcmUgbmFt ZTogTEVOT1ZPIDIwRVFTNjROMEIvMjBFUVM2NE4wQiwgQklPUyBOMUVFVDgyVyAoMS41NSApCj4g PiA+ID4gMTIvMTgvMjAxOAo+ID4gPiA+IFdvcmtxdWV1ZTogZXZlbnRzX2xvbmcgZHJtX2RwX21z dF9saW5rX3Byb2JlX3dvcmsgW2RybV9rbXNfaGVscGVyXQo+ID4gPiA+IFJJUDogMDAxMDpnZjEw MF9ncmN0eF9nZW5lcmF0ZSsweDdiMi8weDg1MCBbbm91dmVhdV0KPiA+ID4gPiBDb2RlOiA4NSBk MiA3NSAwNCA0OCA4YiA1NyAxMCA0OCA4OSA5NSAyOCBmZiBmZiBmZiBlOCBiNCAzNyAwZSBlMSA0 OAo+ID4gPiA+IDhiCj4gPiA+ID4gOTUgMjggZmYgZmYgZmYgNDggYzcgYzcgYjEgOTcgNTcgYTAg NDggODkgYzYgZTggNWEgMzggYzAgZTAgPDBmPiAwYiBlOQo+ID4gPiA+IGI5IGZkIGZmIGZmIDQ4 IDhiIDg1IDYwIGZmIGZmIGZmIDQ4IDhiIDQwIDEwIDQ4IDhiIDc4IDEwCj4gPiA+ID4gUlNQOiAw MDE4OmZmZmZjOTAwMDAwYjc3ZjAgRUZMQUdTOiAwMDAxMDI4Ngo+ID4gPiA+IFJBWDogMDAwMDAw MDAwMDAwMDAwMCBSQlg6IGZmZmY4ODg4NzFhZjgwMDAgUkNYOiAwMDAwMDAwMDAwMDAwMDAwCj4g PiA+ID4gUkRYOiBmZmZmODg4ODdmNDFkZmUwIFJTSTogZmZmZjg4ODg3ZjQxNTY5OCBSREk6IGZm ZmY4ODg4N2Y0MTU2OTgKPiA+ID4gPiBSQlA6IGZmZmZjOTAwMDAwYjc4YzggUjA4OiAwMDAwMDAw MDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMAo+ID4gPiA+IFIxMDogMDAwMDAwMDAwMDAw MDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiBmZmZmODg4ODcyMTE4MDAwCj4gPiA+ID4g UjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogZmZmZmZmZmZhMDU1MTQyMCBSMTU6IGZmZmZjOTAw MDAwYjc4MTgKPiA+ID4gPiBGUzogIDAwMDAwMDAwMDAwMDAwMDAoMDAwMCkgR1M6ZmZmZjg4ODg3 ZjQwMDAwMCgwMDAwKQo+ID4gPiA+IGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPiA+ID4gPiBDUzog IDAwMTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzCj4gPiA+ID4gQ1Iy OiAwMDAwNTY0NGQwNTU2Y2E4IENSMzogMDAwMDAwMDAwMjIxNDAwNiBDUjQ6IDAwMDAwMDAwMDAz NjA2ZjAKPiA+ID4gPiBEUjA6IDAwMDAwMDAwMDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAw IERSMjogMDAwMDAwMDAwMDAwMDAwMAo+ID4gPiA+IERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6 IDAwMDAwMDAwZmZmZTBmZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwCj4gPiA+ID4gQ2FsbCBUcmFj ZToKPiA+ID4gPiAgZ2YxMDBfZ3JfaW5pdF9jdHhjdGwrMHgyN2IvMHgyZDAgW25vdXZlYXVdCj4g PiA+ID4gIGdmMTAwX2dyX2luaXQrMHg1YmQvMHg1ZTAgW25vdXZlYXVdCj4gPiA+ID4gIGdmMTAw X2dyX2luaXRfKzB4NjEvMHg3MCBbbm91dmVhdV0KPiA+ID4gPiAgbnZrbV9ncl9pbml0KzB4MWQv MHgyMCBbbm91dmVhdV0KPiA+ID4gPiAgbnZrbV9lbmdpbmVfaW5pdCsweGNiLzB4MjEwIFtub3V2 ZWF1XQo+ID4gPiA+ICBudmttX3N1YmRldl9pbml0KzB4ZDYvMHgyMzAgW25vdXZlYXVdCj4gPiA+ ID4gIG52a21fZW5naW5lX3JlZi5wYXJ0LjArMHg1Mi8weDcwIFtub3V2ZWF1XQo+ID4gPiA+ICBu dmttX2VuZ2luZV9yZWYrMHgxMy8weDIwIFtub3V2ZWF1XQo+ID4gPiA+ICBudmttX2lvY3RsX25l dysweDEyYy8weDI2MCBbbm91dmVhdV0KPiA+ID4gPiAgPyBudmttX2ZpZm9fY2hhbl9jaGlsZF9k ZWwrMHhhMC8weGEwIFtub3V2ZWF1XQo+ID4gPiA+ICA/IGdmMTAwX2dyX2R0b3IrMHhlMC8weGUw IFtub3V2ZWF1XQo+ID4gPiA+ICBudmttX2lvY3RsKzB4ZTIvMHgxODAgW25vdXZlYXVdCj4gPiA+ ID4gIG52a21fY2xpZW50X2lvY3RsKzB4MTIvMHgyMCBbbm91dmVhdV0KPiA+ID4gPiAgbnZpZl9v YmplY3RfaW9jdGwrMHg0Ny8weDUwIFtub3V2ZWF1XQo+ID4gPiA+ICBudmlmX29iamVjdF9pbml0 KzB4YzgvMHgxMjAgW25vdXZlYXVdCj4gPiA+ID4gIG52YzBfZmJjb25fYWNjZWxfaW5pdCsweDVj LzB4OTYwIFtub3V2ZWF1XQo+ID4gPiA+ICBub3V2ZWF1X2ZiY29uX2NyZWF0ZSsweDVhNS8weDVk MCBbbm91dmVhdV0KPiA+ID4gPiAgPyBkcm1fc2V0dXBfY3J0Y3MrMHgyN2IvMHhjYjAgW2RybV9r bXNfaGVscGVyXQo+ID4gPiA+ICA/IF9fbG9ja19pc19oZWxkKzB4NWUvMHhhMAo+ID4gPiA+ICBf X2RybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWdfYW5kX3VubG9jaysweDI3Yy8weDUyMAo+ID4g PiA+IFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gPiAgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50 LnBhcnQuMjkrMHhhZS8weGMwIFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gPiAgZHJtX2ZiX2hlbHBl cl9ob3RwbHVnX2V2ZW50KzB4MWMvMHgzMCBbZHJtX2ttc19oZWxwZXJdCj4gPiA+ID4gIG5vdXZl YXVfZmJjb25fb3V0cHV0X3BvbGxfY2hhbmdlZCsweGI4LzB4MTEwIFtub3V2ZWF1XQo+ID4gPiA+ ICBkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KzB4MmEvMHg0MCBbZHJtX2ttc19oZWxwZXJd Cj4gPiA+ID4gIGRybV9kcF9zZW5kX2xpbmtfYWRkcmVzcysweDE3Ni8weDFjMCBbZHJtX2ttc19o ZWxwZXJdCj4gPiA+ID4gIGRybV9kcF9jaGVja19hbmRfc2VuZF9saW5rX2FkZHJlc3MrMHhhMC8w eGIwIFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gPiAgZHJtX2RwX21zdF9saW5rX3Byb2JlX3dvcmsr MHhhNC8weGMwIFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gPiAgcHJvY2Vzc19vbmVfd29yaysweDIy Zi8weDVjMAo+ID4gPiA+ICB3b3JrZXJfdGhyZWFkKzB4NDQvMHgzYTAKPiA+ID4gPiAga3RocmVh ZCsweDEyYi8weDE1MAo+ID4gPiA+ICA/IHdxX3Bvb2xfaWRzX3Nob3crMHgxNDAvMHgxNDAKPiA+ ID4gPiAgPyBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4NjAvMHg2MAo+ID4gPiA+ICByZXRfZnJv bV9mb3JrKzB4M2EvMHg1MAo+ID4gPiA+IGlycSBldmVudCBzdGFtcDogMjI0OTAKPiA+ID4gPiBo YXJkaXJxcyBsYXN0ICBlbmFibGVkIGF0ICgyMjQ4OSk6IFs8ZmZmZmZmZmY4MTEzMjgxZD5dCj4g PiA+ID4gY29uc29sZV91bmxvY2srMHg0NGQvMHg1ZjAKPiA+ID4gPiBoYXJkaXJxcyBsYXN0IGRp c2FibGVkIGF0ICgyMjQ5MCk6IFs8ZmZmZmZmZmY4MTAwMWMwMz5dCj4gPiA+ID4gdHJhY2VfaGFy ZGlycXNfb2ZmX3RodW5rKzB4MWEvMHgxYwo+ID4gPiA+IHNvZnRpcnFzIGxhc3QgIGVuYWJsZWQg YXQgKDIyNDg2KTogWzxmZmZmZmZmZjgxYzAwMzMwPl0KPiA+ID4gPiBfX2RvX3NvZnRpcnErMHgz MzAvMHg0NGQKPiA+ID4gPiBzb2Z0aXJxcyBsYXN0IGRpc2FibGVkIGF0ICgyMjQ3OSk6IFs8ZmZm ZmZmZmY4MTBjMzEwNT5dCj4gPiA+ID4gaXJxX2V4aXQrMHhlNS8weGYwCj4gPiA+ID4gV0FSTklO RzogQ1BVOiAwIFBJRDogMTIgYXQKPiA+ID4gPiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udmtt L2VuZ2luZS9nci9jdHhnZjEwMC5jOjE1NDcKPiA+ID4gPiBnZjEwMF9ncmN0eF9nZW5lcmF0ZSsw eDdiMi8weDg1MCBbbm91dmVhdV0KPiA+ID4gPiAtLS1bIGVuZCB0cmFjZSBiZjA5NzZlZDg4YjEy MmE4IF0tLS0KPiA+ID4gPiBub3V2ZWF1IDAwMDA6MDE6MDAuMDogZ3I6IHdhaXQgZm9yIGlkbGUg dGltZW91dCAoZW46IDEsIGN0eHN3OiAwLAo+ID4gPiA+IGJ1c3k6Cj4gPiA+ID4gMSkKPiA+ID4g PiBub3V2ZWF1IDAwMDA6MDE6MDAuMDogZ3I6IHdhaXQgZm9yIGlkbGUgdGltZW91dCAoZW46IDEs IGN0eHN3OiAwLAo+ID4gPiA+IGJ1c3k6Cj4gPiA+ID4gMSkKPiA+ID4gPiBub3V2ZWF1IDAwMDA6 MDE6MDAuMDogZmlmbzogZmF1bHQgMDEgW1dSSVRFXSBhdCAwMDAwMDAwMDAwMDA4MDAwCj4gPiA+ ID4gZW5naW5lCj4gPiA+ID4gMDAgW0dSXSBjbGllbnQgMTUgW0hVQi9TQ0NfTkJdIHJlYXNvbiBj NCBbXSBvbiBjaGFubmVsIC0xIFswMDAwMDAwMDAwCj4gPiA+ID4gdW5rbm93bl0KPiA+ID4gPiAK PiA+ID4gPiBGcm9tIHdoaWNoIHRoZSBHUFUgbmV2ZXIgbWFuYWdlcyB0byByZWNvdmVyLiBCb290 aW5nIHdpdGhvdXQgbm91dmVhdQo+ID4gPiA+IGxvYWRpbmcgY2F1c2VzIGlzc3VlcyBhcyB3ZWxs LCBzaW5jZSB0aGUgR1BVIHN0YXJ0cyBzZW5kaW5nIHNwdXJpb3VzCj4gPiA+ID4gaW50ZXJydXB0 cyB0aGF0IGNhdXNlIG90aGVyIGRldmljZSdzIElSUXMgdG8gZ2V0IGRpc2FibGVkIGJ5IHRoZQo+ ID4gPiA+IGtlcm5lbDoKPiA+ID4gPiAKPiA+ID4gPiBpcnEgMTY6IG5vYm9keSBjYXJlZCAodHJ5 IGJvb3Rpbmcgd2l0aCB0aGUgImlycXBvbGwiIG9wdGlvbikKPiA+ID4gPiDigKYKPiA+ID4gPiBo YW5kbGVyczoKPiA+ID4gPiBbPDAwMDAwMDAwN2ZhYTllOTk+XSBpODAxX2lzciBbaTJjX2k4MDFd Cj4gPiA+ID4gRGlzYWJsaW5nIElSUSAjMTYKPiA+ID4gPiDigKYKPiA+ID4gPiBzZXJpbzogUk1J NCBQUy8yIHBhc3MtdGhyb3VnaCBwb3J0IGF0IHJtaTQtMDAuZm4wMwo+ID4gPiA+IGk4MDFfc21i dXMgMDAwMDowMDoxZi40OiBUaW1lb3V0IHdhaXRpbmcgZm9yIGludGVycnVwdCEKPiA+ID4gPiBp ODAxX3NtYnVzIDAwMDA6MDA6MWYuNDogVHJhbnNhY3Rpb24gdGltZW91dAo+ID4gPiA+IHJtaTRf ZjAzIHJtaTQtMDAuZm4wMzogcm1pX2YwM19wdF93cml0ZTogRmFpbGVkIHRvIHdyaXRlIHRvIEYw MyBUWAo+ID4gPiA+IHJlZ2lzdGVyICgtMTEwKS4KPiA+ID4gPiBpODAxX3NtYnVzIDAwMDA6MDA6 MWYuNDogVGltZW91dCB3YWl0aW5nIGZvciBpbnRlcnJ1cHQhCj4gPiA+ID4gaTgwMV9zbWJ1cyAw MDAwOjAwOjFmLjQ6IFRyYW5zYWN0aW9uIHRpbWVvdXQKPiA+ID4gPiBybWk0X3BoeXNpY2FsIHJt aTQtMDA6IHJtaV9kcml2ZXJfc2V0X2lycV9iaXRzOiBGYWlsZWQgdG8gY2hhbmdlCj4gPiA+ID4g ZW5hYmxlZAo+ID4gPiA+IGludGVycnVwdHMhCj4gPiA+ID4gCj4gPiA+ID4gV2hpY2ggaW4gdHVy biBjYXVzZXMgdGhlIHRvdWNocGFkIGFuZCBzb21ldGltZXMgZXZlbiBvdGhlciB0aGluZ3MgdG8K PiA+ID4gPiBnZXQKPiA+ID4gPiBkaXNhYmxlZC4KPiA+ID4gPiAKPiA+ID4gPiBTaW5jZSB0aGUg R1BVIHN0YXlpbmcgb24gY2F1c2VzIHByb2JsZW1zIGV2ZW4gd2l0aG91dCBub3V2ZWF1J3MKPiA+ ID4gPiBpbnRlcnZlbnRpb24sIHdlIGNhbid0IGZpeCB0aGlzIHByb2JsZW0gZnJvbSBub3V2ZWF1 IGl0c2VsZi4gV2UgaGF2ZQo+ID4gPiA+IHRvCj4gPiA+ID4gZml4IGl0IGFzIGVhcmx5IGFzIHBv c3NpYmxlIGluIHRoZSBib290IHNlcXVlbmNlIGluIG9yZGVyIHRvIG1ha2Ugc3VyZQo+ID4gPiA+ IHRoYXQgdGhlIEdQVSBpcyBpbiBhIGNsZWFuIHN0YXRlIGJlZm9yZSBpdCBoYXMgYSBjaGFuY2Ug dG8gc3BhbSB1cwo+ID4gPiA+IHdpdGgKPiA+ID4gPiBpbnRlcnJ1cHRzIGFuZCBicmVhayB0aGlu Z3MuCj4gPiA+IAo+ID4gPiBXYXMgbm91dmVhdSBsb2FkZWQgKmJlZm9yZSogdGhlIHJlYm9vdD8g IE9yIGNhbiB5b3UgcmVwcm9kdWNlIHRoZQo+ID4gPiBzcHVyaW91cyBpbnRlcnJ1cHRzIGV2ZW4g aWYgeW91IGRvIGEgY29sZCByZWJvb3Qgd2l0aG91dCBub3V2ZWF1LCB0aGVuCj4gPiA+IGEgd2Fy bSByZWJvb3QgYWdhaW4gd2l0aG91dCBub3V2ZWF1Pwo+ID4gCj4gPiBOb3V2ZWF1IHdhcyBsb2Fk ZWQgYmVmb3JlIHRoZSByZWJvb3QsIHllcywgYW5kIGFzIGZhciBhcyBJJ20gYXdhcmUgdGhpcwo+ ID4gYnVnIHdvbid0IHNob3cgdXAgZm9sbG93aW5nIHRoZSBzdGVwcyB5b3UgZGVzY3JpYmVkIGhl cmUuIFdlIHdvdWxkbid0Cj4gPiByZWFsbHkgbm90aWNlIHRoZSBpbnRlcnJ1cHRzIGlmIHRoaXMg YnVnIGhhcHBlbmVkIHdpdGhvdXQgbm91dmVhdSBsb2FkZWQKPiA+IChzaW5jZSB0aGUgQklPUyBk b2Vzbid0IGFybSB0aGVtKS4gSG93ZXZlciwgSSBjYW4gY29uZmlybSBpdCdzIGJlaW5nCj4gPiBy ZXNldCBlYWNoIG9uIGVhY2ggd2FybSByZWJvb3Qgd2hlbiBub3V2ZWF1J3MgY29tcGxldGVseSBk aXNhYmxlZCBieQo+ID4gc3RpY2tpbmcgdmFsdWVzIGludG8gc29tZSBNTUlPIHJlZ2lzdGVycyB3 ZSBrbm93IHRoZSBWQklPUyBkb2Vzbid0IHRvdWNoCj4gPiBmb2xsb3dlZCBieSByZWJvb3Rpbmcg aW4gb3JkZXIgdG8gc2VlIGlmIHRoZXkgcmV0YWluIHRoZWlyIHZhbHVlICh0aGlzCj4gPiBpcyBo b3cgSSBkaXNjb3ZlcmVkIHRoYXQgdGhlIEdQVSB3YXNuJ3QgYmVpbmcgcG93ZXIgY3ljbGVkIGlu IHRoZSBmaXJzdAo+ID4gcGxhY2UsIGlmIHRoZSB2YWx1ZXMgSSBzdGljayBpbnRvIHNhaWQgcmVn aXN0ZXJzIGdldHMgY2xlYXJlZCBhZnRlcgo+ID4gcmVib290IHRoZW4gdGhlIEdQVSB3YXMgcmVz ZXQsIG90aGVyd2lzZSBpdCB3YXNuJ3QpLgo+ID4gCj4gPiAKPiA+ID4gPiBTbyB0byBkbyB0aGlz LCB3ZSBhZGQgYSBuZXcgcGNpIHF1aXJrIHVzaW5nCj4gPiA+ID4gREVDTEFSRV9QQ0lfRklYVVBf Q0xBU1NfRklOQUwgdGhhdCB3aWxsIGJlIGludm9rZWQgYmVmb3JlIHRoZSBQQ0kKPiA+ID4gPiBw cm9iZQo+ID4gPiA+IGF0IGJvb3QgZmluaXNoZXMuIEZyb20gdGhlcmUsIHdlIGNoZWNrIHRvIG1h a2Ugc3VyZSB0aGF0IHRoaXMgaXMKPiA+ID4gPiBpbmRlZWQKPiA+ID4gPiB0aGUgc3BlY2lmaWMg UDUwIHZhcmlhbnQgb2YgdGhpcyBHUFUuIFdlIGFsc28gbWFrZSBzdXJlIHRoYXQgdGhlIEdQVQo+ ID4gPiA+IFBDSQo+ID4gPiA+IGRldmljZSBpcyBhZHZlcnRpc2luZyBOb1Jlc2V0LSBpbiBvcmRl ciB0byBwcmV2ZW50IHVzIGZyb20gdHJ5aW5nIHRvCj4gPiA+ID4gcmVzZXQgdGhlIEdQVSB3aGVu IHRoZSBtYWNoaW5lIGlzIGluIERlZGljYXRlZCBncmFwaGljcyBtb2RlICh3aGVyZQo+ID4gPiA+ IHRoZQo+ID4gPiA+IEdQVSBiZWluZyBpbml0aWFsaXplZCBieSB0aGUgQklPUyBpcyBub3JtYWwg YW5kIGV4cGVjdGVkKS4gRmluYWxseSwgd2UKPiA+ID4gPiB0cnkgbWFwcGluZyB0aGUgTU1JTyBz cGFjZSBmb3IgdGhlIEdQVSB3aGljaCBzaG91bGQgb25seSB3b3JrIGlmIHRoZQo+ID4gPiA+IEdQ VQo+ID4gPiA+IGlzIGFjdHVhbGx5IGFjdGl2ZSBpbiBEMCBtb2RlLiBXZSBjYW4gdGhlbiByZWFk IHRoZSBtYWdpYyAweDIyNDBjCj4gPiA+ID4gcmVnaXN0ZXIgb24gdGhlIEdQVSwgd2hpY2ggd2ls bCBoYXZlIGJpdCAxIHNldCBpZiB0aGUgR1BVJ3MgZmlybXdhcmUKPiA+ID4gPiBoYXMKPiA+ID4g PiBhbHJlYWR5IGJlZW4gcG9zdGVkIGR1cmluZyBhIHByZXZpb3VzIGJvb3QuIE9uY2Ugd2UndmUg Y29uZmlybWVkIGFsbAo+ID4gPiA+IG9mCj4gPiA+ID4gdGhpcywgd2UgcmVzZXQgdGhlIFBDSSBk ZXZpY2UgYW5kIHJlLWRpc2FibGUgaXQgLSBicmluZ2luZyB0aGUgR1BVCj4gPiA+ID4gYmFjawo+ ID4gPiA+IGludG8gYSBoZWFsdGh5IHN0YXRlLgo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYt Ynk6IEx5dWRlIFBhdWwgPGx5dWRlQHJlZGhhdC5jb20+Cj4gPiA+ID4gQ2M6IG5vdXZlYXVAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiA+ID4gPiBDYzogS2Fyb2wgSGVyYnN0IDxraGVyYnN0QHJlZGhhdC5jb20+Cj4gPiA+ ID4gQ2M6IEJlbiBTa2VnZ3MgPHNrZWdnc2JAZ21haWwuY29tPgo+ID4gPiA+IENjOiBzdGFibGVA dmdlci5rZXJuZWwub3JnCj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvcGNpL3F1aXJrcy5j IHwgNjUKPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kwo+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKQo+ID4gPiA+IAo+ID4g PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9xdWlya3MuYyBiL2RyaXZlcnMvcGNpL3F1aXJr cy5jCj4gPiA+ID4gaW5kZXggYjBhNDEzZjNmN2NhLi45NDg0OTJmZGE4YmYgMTAwNjQ0Cj4gPiA+ ID4gLS0tIGEvZHJpdmVycy9wY2kvcXVpcmtzLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL3BjaS9x dWlya3MuYwo+ID4gPiA+IEBAIC01MTE3LDMgKzUxMTcsNjggQEAgU1dJVENIVEVDX1FVSVJLKDB4 ODU3Myk7ICAvKiBQRlhJIDQ4WEczICovCj4gPiA+ID4gIFNXSVRDSFRFQ19RVUlSSygweDg1NzQp OyAgLyogUEZYSSA2NFhHMyAqLwo+ID4gPiA+ICBTV0lUQ0hURUNfUVVJUksoMHg4NTc1KTsgIC8q IFBGWEkgODBYRzMgKi8KPiA+ID4gPiAgU1dJVENIVEVDX1FVSVJLKDB4ODU3Nik7ICAvKiBQRlhJ IDk2WEczICovCj4gPiA+ID4gKwo+ID4gPiA+ICsvKgo+ID4gPiA+ICsgKiBPbiBjZXJ0YWluIExl bm92byBUaGlua3BhZCBQNTAgU0tVcywgc3BlY2lmaWNhbGx5IHRob3NlIHdpdGggYQo+ID4gPiA+ IE52aWRpYQo+ID4gPiA+ICsgKiBRdWFkcm8gTTEwMDBNLCB0aGUgQklPUyB3aWxsIG9jY2FzaW9u YWxseSBtYWtlIHRoZSBtaXN0YWtlIG9mIG5vdAo+ID4gPiA+IHJlc2V0dGluZwo+ID4gPiA+ICsg KiB0aGUgbnZpZGlhIEdQVSBiZXR3ZWVuIHJlYm9vdHMgaWYgdGhlIHN5c3RlbSBpcyBjb25maWd1 cmVkIHRvIHVzZQo+ID4gPiA+IGh5YnJpZAo+ID4gPiA+ICsgKiBncmFwaGljcyBtb2RlLiBUaGlz IHJlc3VsdHMgaW4gdGhlIEdQVSBiZWluZyBsZWZ0IGluIHdoYXRldmVyCj4gPiA+ID4gc3RhdGUK PiA+ID4gPiBpdAo+ID4gPiA+IHdhcwo+ID4gPiA+ICsgKiBpbiBkdXJpbmcgdGhlIHByZXZpb3Vz IGJvb3Qgd2hpY2ggY2F1c2VzIHNwdXJpb3VzIGludGVycnVwdHMgZnJvbQo+ID4gPiA+IHRoZQo+ ID4gPiA+IEdQVSwKPiA+ID4gPiArICogd2hpY2ggaW4gdHVybiBjYXVzZSB1cyB0byBkaXNhYmxl IHRoZSB3cm9uZyBJUlFzIGFuZCBlbmQgdXAKPiA+ID4gPiBicmVha2luZwo+ID4gPiA+IHRoZQo+ ID4gPiA+ICsgKiB0b3VjaHBhZC4gVW5zdXJwcmlzaW5nbHksIHRoaXMgYWxzbyBjb21wbGV0ZWx5 IGJyZWFrcyBub3V2ZWF1Lgo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBMdWNraWx5LCBpdCBzZWVt cyBhIHNpbXBsZSByZXNldCBvZiB0aGUgUENJIGRldmljZSBmb3IgdGhlIG52aWRpYQo+ID4gPiA+ IEdQVQo+ID4gPiA+ICsgKiBtYW5hZ2VzIHRvIGJyaW5nIHRoZSBHUFUgYmFjayBpbnRvIGEgY2xl YW4gc3RhdGUgYW5kIGZpeCBhbGwgb2YKPiA+ID4gPiB0aGVzZQo+ID4gPiA+ICsgKiBpc3N1ZXMu IEFkZGl0aW9uYWxseSBzaW5jZSB0aGUgR1BVIHdpbGwgcmVwb3J0IE5vUmVzZXQrIHdoZW4gdGhl Cj4gPiA+ID4gbWFjaGluZSBpcwo+ID4gPiA+ICsgKiBjb25maWd1cmVkIGluIERlZGljYXRlZCBk aXNwbGF5IG1vZGUsIHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQKPiA+ID4gPiArICogYWNj aWRlbnRhbGx5IHJlc2V0dGluZyB0aGUgR1BVIHdoZW4gaXQncyBzdXBwb3NlZCB0byBhbHJlYWR5 IGJlCj4gPiA+ID4gKyAqIGluaXRpYWxpemVkLgo+ID4gPiA+ICsgKi8KPiA+ID4gPiArc3RhdGlj IHZvaWQKPiA+ID4gPiArcXVpcmtfbGVub3ZvX3RoaW5rcGFkX3A1MF9udmdwdV9zdXJ2aXZlc19y ZWJvb3Qoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXZvaWQgX19p b21lbSAqbWFwOwo+ID4gPiA+ICsJaW50IHJldDsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAocGRl di0+c3Vic3lzdGVtX3ZlbmRvciAhPSBQQ0lfVkVORE9SX0lEX0xFTk9WTyB8fAo+ID4gPiA+ICsJ ICAgIHBkZXYtPnN1YnN5c3RlbV9kZXZpY2UgIT0gMHgyMjJlIHx8Cj4gPiA+ID4gKwkgICAgIXBk ZXYtPnJlc2V0X2ZuKQo+ID4gPiA+ICsJCXJldHVybjsKPiA+ID4gPiArCj4gPiA+ID4gKwkvKgo+ ID4gPiA+ICsJICogSWYgd2UgY2FuJ3QgZW5hYmxlIHRoZSBkZXZpY2UncyBtbWlvIHNwYWNlLCBp dCdzIHByb2JhYmx5Cj4gPiA+ID4gbm90IGV2ZW4KPiA+ID4gPiArCSAqIGluaXRpYWxpemVkLiBU aGlzIGlzIGZpbmUsIGFuZCBtZWFucyB3ZSBjYW4ganVzdCBza2lwIHRoZQo+ID4gPiA+IHF1aXJr Cj4gPiA+ID4gKwkgKiBlbnRpcmVseS4KPiA+ID4gPiArCSAqLwo+ID4gPiA+ICsJaWYgKHBjaV9l bmFibGVfZGV2aWNlX21lbShwZGV2KSkgewo+ID4gPiA+ICsJCXBjaV9kYmcocGRldiwgIkNhbid0 IGVuYWJsZSBkZXZpY2UgbWVtLCBubyByZXNldAo+ID4gPiA+IG5lZWRlZFxuIik7Cj4gPiA+ID4g KwkJcmV0dXJuOwo+ID4gPiA+ICsJfQo+ID4gPiA+ICsKPiA+ID4gPiArCS8qIFRha2VuIGZyb20g ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZW5naW5lL2RldmljZS9iYXNlLmMgKi8KPiA+ID4gPiAr CW1hcCA9IGlvcmVtYXAocGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDApLCAweDEwMjAwMCk7Cj4g PiA+ID4gKwlpZiAoIW1hcCkgewo+ID4gPiA+ICsJCXBjaV9lcnIocGRldiwgIkNhbid0IG1hcCBN TUlPIHNwYWNlLCB0aGlzIGlzIHByb2JhYmx5Cj4gPiA+ID4gdmVyeQo+ID4gPiA+IGJhZFxuIik7 Cj4gPiA+ID4gKwkJZ290byBvdXRfZGlzYWJsZTsKPiA+ID4gPiArCX0KPiA+ID4gPiArCj4gPiA+ ID4gKwkvKgo+ID4gPiA+ICsJICogQmUgZXh0cmEgY2FyZWZ1bCwgYW5kIG1ha2Ugc3VyZSB0aGF0 IHRoZSBHUFUgZmlybXdhcmUgaXMKPiA+ID4gPiBwb3N0ZWQKPiA+ID4gPiArCSAqIGJlZm9yZSB0 cnlpbmcgYSByZXNldAo+ID4gPiA+ICsJICovCj4gPiA+ID4gKwlpZiAoaW9yZWFkMzIobWFwICsg MHgyMjQwYykgJiAweDIpIHsKPiA+ID4gPiArCQlwY2lfaW5mbyhwZGV2LAo+ID4gPiA+ICsJCQkg RldfQlVHICJHUFUgbGVmdCBpbml0aWFsaXplZCBieSBFRkksCj4gPiA+ID4gcmVzZXR0aW5nXG4i KTsKPiA+ID4gPiArCQlyZXQgPSBwY2lfcmVzZXRfZnVuY3Rpb24ocGRldik7Cj4gPiA+ID4gKwkJ aWYgKHJldCA8IDApCj4gPiA+ID4gKwkJCXBjaV9lcnIocGRldiwgIkZhaWxlZCB0byByZXNldCBH UFU6ICVkXG4iLAo+ID4gPiA+IHJldCk7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICsJ aW91bm1hcChtYXApOwo+ID4gPiA+ICtvdXRfZGlzYWJsZToKPiA+ID4gPiArCXBjaV9kaXNhYmxl X2RldmljZShwZGV2KTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArREVDTEFSRV9QQ0lf RklYVVBfQ0xBU1NfRklOQUwoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MTNiMSwKPiA+ID4gPiAr CQkJICAgICAgUENJX0NMQVNTX0RJU1BMQVlfVkdBLCA4LAo+ID4gPiA+ICsJCQkgICAgICBxdWly a19sZW5vdm9fdGhpbmtwYWRfcDUwX252Z3B1X3N1cnZpdmVzCj4gPiA+ID4gX3JlYm9vdCkKPiA+ ID4gPiA7Cj4gPiA+ID4gLS0gCj4gPiA+ID4gMi4yMC4xCj4gPiA+ID4gCi0tIApDaGVlcnMsCglM eXVkZSBQYXVsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=