From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH v2 00/25] AMDKFD kernel driver Date: Mon, 21 Jul 2014 20:42:58 +0300 Message-ID: <53CD5122.5040804@amd.com> References: <53C7D645.3070607@amd.com> <20140720174652.GE3068@gmail.com> <53CD0961.4070505@amd.com> <53CD17FD.3000908@vodafone.de> <53CD1FB6.1000602@amd.com> <20140721155437.GA4519@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1lp0141.outbound.protection.outlook.com [207.46.163.141]) by gabe.freedesktop.org (Postfix) with ESMTP id A8C386E003 for ; Mon, 21 Jul 2014 10:43:11 -0700 (PDT) In-Reply-To: <20140721155437.GA4519@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jerome Glisse Cc: Andrew Lewycky , =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , linux-mm , Evgeny Pinchuk , Alexey Skidanov , Andrew Morton List-Id: dri-devel@lists.freedesktop.org T24gMjEvMDcvMTQgMTg6NTQsIEplcm9tZSBHbGlzc2Ugd3JvdGU6Cj4gT24gTW9uLCBKdWwgMjEs IDIwMTQgYXQgMDU6MTI6MDZQTSArMDMwMCwgT2RlZCBHYWJiYXkgd3JvdGU6Cj4+IE9uIDIxLzA3 LzE0IDE2OjM5LCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4gQW0gMjEuMDcuMjAxNCAxNDoz Niwgc2NocmllYiBPZGVkIEdhYmJheToKPj4+PiBPbiAyMC8wNy8xNCAyMDo0NiwgSmVyb21lIEds aXNzZSB3cm90ZToKPj4+Pj4gT24gVGh1LCBKdWwgMTcsIDIwMTQgYXQgMDQ6NTc6MjVQTSArMDMw MCwgT2RlZCBHYWJiYXkgd3JvdGU6Cj4+Pj4+PiBGb3Jnb3QgdG8gY2MgbWFpbGluZyBsaXN0IG9u IGNvdmVyIGxldHRlci4gU29ycnkuCj4+Pj4+Pgo+Pj4+Pj4gQXMgYSBjb250aW51YXRpb24gdG8g dGhlIGV4aXN0aW5nIGRpc2N1c3Npb24sIGhlcmUgaXMgYSB2MiBwYXRjaCBzZXJpZXMKPj4+Pj4+ IHJlc3RydWN0dXJlZCB3aXRoIGEgY2xlYW5lciBoaXN0b3J5IGFuZCBubyB0b3RhbGx5LWRpZmZl cmVudC1lYXJseS12ZXJzaW9ucwo+Pj4+Pj4gb2YgdGhlIGNvZGUuCj4+Pj4+Pgo+Pj4+Pj4gSW5z dGVhZCBvZiA4MyBwYXRjaGVzLCB0aGVyZSBhcmUgbm93IGEgdG90YWwgb2YgMjUgcGF0Y2hlcywg d2hlcmUgNSBvZiB0aGVtCj4+Pj4+PiBhcmUgbW9kaWZpY2F0aW9ucyB0byByYWRlb24gZHJpdmVy IGFuZCAxOCBvZiB0aGVtIGluY2x1ZGUgb25seSBhbWRrZmQgY29kZS4KPj4+Pj4+IFRoZXJlIGlz IG5vIGNvZGUgZ29pbmcgYXdheSBvciBldmVuIG1vZGlmaWVkIGJldHdlZW4gcGF0Y2hlcywgb25s eSBhZGRlZC4KPj4+Pj4+Cj4+Pj4+PiBUaGUgZHJpdmVyIHdhcyByZW5hbWVkIGZyb20gcmFkZW9u X2tmZCB0byBhbWRrZmQgYW5kIG1vdmVkIHRvIHJlc2lkZSB1bmRlcgo+Pj4+Pj4gZHJtL3JhZGVv bi9hbWRrZmQuIFRoaXMgbW92ZSB3YXMgZG9uZSB0byBlbXBoYXNpemUgdGhlIGZhY3QgdGhhdCB0 aGlzIGRyaXZlcgo+Pj4+Pj4gaXMgYW4gQU1ELW9ubHkgZHJpdmVyIGF0IHRoaXMgcG9pbnQuIEhh dmluZyBzYWlkIHRoYXQsIHdlIGRvIGZvcmVzZWUgYQo+Pj4+Pj4gZ2VuZXJpYyBoc2EgZnJhbWV3 b3JrIGJlaW5nIGltcGxlbWVudGVkIGluIHRoZSBmdXR1cmUgYW5kIGluIHRoYXQgY2FzZSwgd2UK Pj4+Pj4+IHdpbGwgYWRqdXN0IGFtZGtmZCB0byB3b3JrIHdpdGhpbiB0aGF0IGZyYW1ld29yay4K Pj4+Pj4+Cj4+Pj4+PiBBcyB0aGUgYW1ka2ZkIGRyaXZlciBzaG91bGQgc3VwcG9ydCBtdWx0aXBs ZSBBTUQgZ2Z4IGRyaXZlcnMsIHdlIHdhbnQgdG8KPj4+Pj4+IGtlZXAgaXQgYXMgYSBzZXBlcmF0 ZSBkcml2ZXIgZnJvbSByYWRlb24uIFRoZXJlZm9yZSwgdGhlIGFtZGtmZCBjb2RlIGlzCj4+Pj4+ PiBjb250YWluZWQgaW4gaXRzIG93biBmb2xkZXIuIFRoZSBhbWRrZmQgZm9sZGVyIHdhcyBwdXQg dW5kZXIgdGhlIHJhZGVvbgo+Pj4+Pj4gZm9sZGVyIGJlY2F1c2UgdGhlIG9ubHkgQU1EIGdmeCBk cml2ZXIgaW4gdGhlIExpbnV4IGtlcm5lbCBhdCB0aGlzIHBvaW50Cj4+Pj4+PiBpcyB0aGUgcmFk ZW9uIGRyaXZlci4gSGF2aW5nIHNhaWQgdGhhdCwgd2Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIG1v dmUgaXQKPj4+Pj4+IChtYXliZSB0byBiZSBkaXJlY3RseSB1bmRlciBkcm0pIGFmdGVyIHdlIGlu dGVncmF0ZSB3aXRoIGFkZGl0aW9uYWwgQU1EIGdmeAo+Pj4+Pj4gZHJpdmVycy4KPj4+Pj4+Cj4+ Pj4+PiBGb3IgcGVvcGxlIHdobyBsaWtlIHRvIHJldmlldyB1c2luZyBnaXQsIHRoZSB2MiBwYXRj aCBzZXQgaXMgbG9jYXRlZCBhdDoKPj4+Pj4+IGh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy9+ Z2FiYmF5by9saW51eC9sb2cvP2g9a2ZkLW5leHQtMy4xNy12Mgo+Pj4+Pj4KPj4+Pj4+IFdyaXR0 ZW4gYnkgT2RlZCBHYWJiYXloIDxvZGVkLmdhYmJheUBhbWQuY29tPgo+Pj4+Pgo+Pj4+PiBTbyBx dWljayBjb21tZW50cyBiZWZvcmUgaSBmaW5pc2ggZ29pbmcgb3ZlciBhbGwgcGF0Y2hlcy4gVGhl cmUgaXMgbWFueQo+Pj4+PiB0aGluZ3MgdGhhdCBuZWVkIG1vcmUgZG9jdW1lbnRhdGlvbiBlc3Bh Y2lhbHkgYXMgb2YgcmlnaHQgbm93IHRoZXJlIGlzCj4+Pj4+IG5vIHVzZXJzcGFjZSBpIGNhbiBn byBsb29rIGF0Lgo+Pj4+IFNvIHF1aWNrIGNvbW1lbnRzIG9uIHNvbWUgb2YgeW91ciBxdWVzdGlv bnMgYnV0IGZpcnN0IG9mIGFsbCwgdGhhbmtzIGZvciB0aGUKPj4+PiB0aW1lIHlvdSBkZWRpY2F0 ZWQgdG8gcmV2aWV3IHRoZSBjb2RlLgo+Pj4+Pgo+Pj4+PiBUaGVyZSBmZXcgc2hvdyBzdG9wcGVy LCBiaWdnZXN0IG9uZSBpcyBncHUgbWVtb3J5IHBpbm5pbmcgdGhpcyBpcyBhIGJpZwo+Pj4+PiBu bywgdGhhdCB3b3VsZCBuZWVkIHNlcmlvdXMgYXJndW1lbnRzIGZvciBhbnkgaG9wZSBvZiBjb252 aW5jaW5nIG1lIG9uCj4+Pj4+IHRoYXQgc2lkZS4KPj4+PiBXZSBvbmx5IGRvIGdwdSBtZW1vcnkg cGlubmluZyBmb3Iga2VybmVsIG9iamVjdHMuIFRoZXJlIGFyZSBubyB1c2Vyc3BhY2UKPj4+PiBv YmplY3RzIHRoYXQgYXJlIHBpbm5lZCBvbiB0aGUgZ3B1IG1lbW9yeSBpbiBvdXIgZHJpdmVyLiBJ ZiB0aGF0IGlzIHRoZSBjYXNlLAo+Pj4+IGlzIGl0IHN0aWxsIGEgc2hvdyBzdG9wcGVyID8KPj4+ Pgo+Pj4+IFRoZSBrZXJuZWwgb2JqZWN0cyBhcmU6Cj4+Pj4gLSBwaXBlbGluZXMgKDQgcGVyIGRl dmljZSkKPj4+PiAtIG1xZCBwZXIgaGlxIChvbmx5IDEgcGVyIGRldmljZSkKPj4+PiAtIG1xZCBw ZXIgdXNlcnNwYWNlIHF1ZXVlLiBPbiBLViwgd2Ugc3VwcG9ydCB1cCB0byAxSyBxdWV1ZXMgcGVy IHByb2Nlc3MsIGZvcgo+Pj4+IGEgdG90YWwgb2YgNTEySyBxdWV1ZXMuIEVhY2ggbXFkIGlzIDE1 MSBieXRlcywgYnV0IHRoZSBhbGxvY2F0aW9uIGlzIGRvbmUgaW4KPj4+PiAyNTYgYWxpZ25tZW50 LiBTbyB0b3RhbCAqcG9zc2libGUqIG1lbW9yeSBpcyAxMjhNQgo+Pj4+IC0ga2VybmVsIHF1ZXVl IChvbmx5IDEgcGVyIGRldmljZSkKPj4+PiAtIGZlbmNlIGFkZHJlc3MgZm9yIGtlcm5lbCBxdWV1 ZQo+Pj4+IC0gcnVubGlzdHMgZm9yIHRoZSBDUCAoMSBvciAyIHBlciBkZXZpY2UpCj4+Pgo+Pj4g VGhlIG1haW4gcXVlc3Rpb25zIGhlcmUgYXJlIGlmIGl0J3MgYXZvaWQgYWJsZSB0byBwaW4gZG93 biB0aGUgbWVtb3J5IGFuZCBpZiB0aGUKPj4+IG1lbW9yeSBpcyBwaW5uZWQgZG93biBhdCBkcml2 ZXIgbG9hZCwgYnkgcmVxdWVzdCBmcm9tIHVzZXJzcGFjZSBvciBieSBhbnl0aGluZwo+Pj4gZWxz ZS4KPj4+Cj4+PiBBcyBmYXIgYXMgSSBjYW4gc2VlIG9ubHkgdGhlICJtcWQgcGVyIHVzZXJzcGFj ZSBxdWV1ZSIgbWlnaHQgYmUgYSBiaXQKPj4+IHF1ZXN0aW9uYWJsZSwgZXZlcnl0aGluZyBlbHNl IHNvdW5kcyByZWFzb25hYmxlLgo+Pj4KPj4+IENocmlzdGlhbi4KPj4KPj4gTW9zdCBvZiB0aGUg cGluIGRvd25zIGFyZSBkb25lIG9uIGRldmljZSBpbml0aWFsaXphdGlvbi4KPj4gVGhlICJtcWQg cGVyIHVzZXJzcGFjZSIgaXMgZG9uZSBwZXIgdXNlcnNwYWNlIHF1ZXVlIGNyZWF0aW9uLiBIb3dl dmVyLCBhcyBJCj4+IHNhaWQsIGl0IGhhcyBhbiB1cHBlciBsaW1pdCBvZiAxMjhNQiBvbiBLViwg YW5kIGNvbnNpZGVyaW5nIHRoZSAyRyBsb2NhbAo+PiBtZW1vcnksIEkgdGhpbmsgaXQgaXMgT0su Cj4+IFRoZSBydW5saXN0cyBhcmUgYWxzbyBkb25lIG9uIHVzZXJzcGFjZSBxdWV1ZSBjcmVhdGlv bi9kZWxldGlvbiwgYnV0IHdlIG9ubHkKPj4gaGF2ZSAxIG9yIDIgcnVubGlzdHMgcGVyIGRldmlj ZSwgc28gaXQgaXMgbm90IHRoYXQgYmFkLgo+IAo+IDJHIGxvY2FsIG1lbW9yeSA/IFlvdSBjYW4g bm90IGFzc3VtZSBhbnl0aGluZyBvbiB1c2Vyc2lkZSBjb25maWd1cmF0aW9uIHNvbWUKPiBvbmUg bWlnaHQgYnVpbGQgYW4gaHNhIGNvbXB1dGVyIHdpdGggNTEyTSBhbmQgc3RpbGwgZXhwZWN0IGEg ZnVuY3Rpb25pbmcKPiBkZXNrdG9wLgpGaXJzdCBvZiBhbGwsIEknbSBvbmx5IGNvbnNpZGVyaW5n IEthdmVyaSBjb21wdXRlciwgbm90ICJoc2EiIGNvbXB1dGVyLgpTZWNvbmQsIEkgd291bGQgaW1h Z2luZSB3ZSBjYW4gYnVpbGQgc29tZSBwcm90ZWN0aW9uIGFyb3VuZCBpdCwgbGlrZQpjaGVja2lu ZyB0b3RhbCBsb2NhbCBtZW1vcnkgYW5kIGxpbWl0IG51bWJlciBvZiBxdWV1ZXMgYmFzZWQgb24g c29tZQpwZXJjZW50YWdlIG9mIHRoYXQgdG90YWwgbG9jYWwgbWVtb3J5LiBTbywgaWYgc29tZW9u ZSB3aWxsIGhhdmUgb25seQo1MTJNLCBoZSB3aWxsIGJlIGFibGUgdG8gb3BlbiBsZXNzIHF1ZXVl cy4KCgo+IAo+IEkgbmVlZCB0byBnbyBsb29rIGludG8gd2hhdCBhbGwgdGhpcyBtcWQgaXMgZm9y LCB3aGF0IGl0IGRvZXMgYW5kIHdoYXQgaXQgaXMKPiBhYm91dC4gQnV0IHBpbm5pbmcgaXMgcmVh bGx5IGJhZCBhbmQgdGhpcyBpcyBhbiBpc3N1ZSB3aXRoIHVzZXJzcGFjZSBjb21tYW5kCj4gc2No ZWR1bGluZyBhbiBpc3N1ZSB0aGF0IG9idmlvdXNseSBBTUQgZmFpbHMgdG8gdGFrZSBpbnRvIGFj Y291bnQgaW4gZGVzaWduCj4gcGhhc2UuCk1heWJlLCBidXQgdGhhdCBpcyB0aGUgSC9XIGRlc2ln biBub24tdGhlLWxlc3MuIFdlIGNhbid0IHZlcnkgd2VsbApjaGFuZ2UgdGhlIEgvVy4KCU9kZWQK PiAKPj4gCU9kZWQKPj4+Cj4+Pj4+Cj4+Pj4+IEl0IG1pZ2h0IGJlIGJldHRlciB0byBhZGQgYSBk cml2ZXJzL2dwdS9kcm0vYW1kIGRpcmVjdG9yeSBhbmQgYWRkIGNvbW1vbgo+Pj4+PiBzdHVmZiB0 aGVyZS4KPj4+Pj4KPj4+Pj4gR2l2ZW4gdGhhdCB0aGlzIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBm aW5hbCBIU0EgYXBpIEFGQUlDVCB0aGVuIGkgd291bGQKPj4+Pj4gc2F5IHRoaXMgZmFyIGJldHRl ciB0byBhdm9pZCB0aGUgd2hvbGUga2ZkIG1vZHVsZSBhbmQgYWRkIGlvY3RsIHRvIHJhZGVvbi4K Pj4+Pj4gVGhpcyB3b3VsZCBhdm9pZCBjcmF6eSBjb21tdW5pY2F0aW9uIGJ0dyByYWRlb24gYW5k IGtmZC4KPj4+Pj4KPj4+Pj4gVGhlIHdob2xlIGFwZXJ0dXJlIGJ1c2luZXNzIG5lZWRzIHNvbWUg c2VyaW91cyBleHBsYW5hdGlvbi4gRXNwZWNpYWx5IGFzCj4+Pj4+IHlvdSB3YW50IHRvIHVzZSB1 c2Vyc3BhY2UgYWRkcmVzcyB0aGVyZSBpcyBub3RoaW5nIHRvIHByZXZlbnQgdXNlcnNwYWNlCj4+ Pj4+IHByb2dyYW0gZnJvbSBhbGxvY2F0aW5nIHRoaW5ncyBhdCBhZGRyZXNzIHlvdSByZXNlcnZl IGZvciBsZHMsIHNjcmF0Y2gsCj4+Pj4+IC4uLiBvbmx5IHNhbmUgd2F5IHdvdWxkIGJlIHRvIG1v dmUgdGhvc2UgbGRzLCBzY3JhdGNoIGluc2lkZSB0aGUgdmlydHVhbAo+Pj4+PiBhZGRyZXNzIHJl c2VydmVkIGZvciBrZXJuZWwgKHNlZSBrZXJuZWwgbWVtb3J5IG1hcCkuCj4+Pj4+Cj4+Pj4+IFRo ZSB3aG9sZSBidXNpbmVzcyBvZiBsb2NraW5nIHBlcmZvcm1hbmNlIGNvdW50ZXIgZm9yIGV4Y2x1 c2l2ZSBwZXIgcHJvY2Vzcwo+Pj4+PiBhY2Nlc3MgaXMgYSBiaWcgTk8uIFdoaWNoIGxlYWRzIG1l IHRvIHRoZSBxdWVzdGlvbmFibGUgdXNlZnVsbG5lc3Mgb2YgdXNlcgo+Pj4+PiBzcGFjZSBjb21t YW5kIHJpbmcuCj4+Pj4gVGhhdCdzIGxpa2Ugc2F5aW5nOiAiV2hpY2ggbGVhZHMgbWUgdG8gdGhl IHF1ZXN0aW9uYWJsZSB1c2VmdWxuZXNzIG9mIEhTQSIuIEkKPj4+PiBmaW5kIGl0IGFuYWxvZ291 cyB0byBhIHNpdHVhdGlvbiB3aGVyZSBhIG5ldHdvcmsgbWFpbnRhaW5lciBuYWNraW5nIGEgZHJp dmVyCj4+Pj4gZm9yIGEgbmV0d29yayBjYXJkLCB3aGljaCBpcyBzbG93ZXIgdGhhbiBhIGRpZmZl cmVudCBuZXR3b3JrIGNhcmQuIERvZXNuJ3QKPj4+PiBzZWVtIHJlYXNvbmFibGUgdGhpcyBzaXR1 YXRpb24gaXMgd291bGQgaGFwcGVuLiBIZSB3b3VsZCBzdGlsbCBwdXQgYm90aCB0aGUKPj4+PiBk cml2ZXJzIGluIHRoZSBrZXJuZWwgYmVjYXVzZSBwZW9wbGUgd2FudCB0byB1c2UgdGhlIEgvVyBh bmQgaXRzIGZlYXR1cmVzLiBTbywKPj4+PiBJIGRvbid0IHRoaW5rIHRoaXMgaXMgYSB2YWxpZCBy ZWFzb24gdG8gTkFDSyB0aGUgZHJpdmVyLgo+IAo+IExldCBtZSByZXBocmFzZSwgZHJvcCB0aGUg dGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgaW9jdGwgYW5kIG1vZHVsbyBtZW1vcnkgcGlubmluZwo+ IGkgc2VlIG5vIG9iamVjdGlvbi4gSW4gb3RoZXIgd29yZCwgaSBhbSBub3QgTkFDS0lORyB3aG9s ZSBwYXRjaHNldCBpIGFtIE5BQ0tJTkcKPiB0aGUgcGVyZm9ybWFuY2UgaW9jdGwuCj4gCj4gQWdh aW4gdGhpcyBpcyBhbm90aGVyIGFyZ3VtZW50IGZvciByb3VuZCB0cmlwIHRvIHRoZSBrZXJuZWwu IEFzIGluc2lkZSBrZXJuZWwgeW91Cj4gY291bGQgcHJvcGVybHkgZG8gZXhjbHVzaXZlIGdwdSBj b3VudGVyIGFjY2VzcyBhY2Nyb3NzIHNpbmdsZSB1c2VyIGNtZCBidWZmZXIKPiBleGVjdXRpb24u Cj4gCj4+Pj4KPj4+Pj4gSSBvbmx5IHNlZSBpc3N1ZXMgd2l0aCB0aGF0LiBGaXJzdCBhbmQgZm9y ZW1vc3QgaSB3b3VsZAo+Pj4+PiBuZWVkIHRvIHNlZSBzb2xpZCBmaWd1cmVzIHRoYXQga2VybmVs IGlvY3RsIG9yIHN5c2NhbGwgaGFzIGEgaGlnaGVyIGFuCj4+Pj4+IG92ZXJoZWFkIHRoYXQgaXMg bWVhc3VyYWJsZSBpbiBhbnkgbWVhbmluZyBmdWxsIHdheSBhZ2FpbnN0IGEgc2ltcGxlCj4+Pj4+ IGZ1bmN0aW9uIGNhbGwuIEkga25vdyB0aGUgdXNlcnNwYWNlIGNvbW1hbmQgcmluZyBpcyBhIGJp ZyBtYXJrZXRpbmcgZmVhdHVyZXMKPj4+Pj4gdGhhdCBwbGVhc2UgaWdub3JhbnQgdXNlcnNwYWNl IHByb2dyYW1tZXIuIEJ1dCByZWFsbHkgdGhpcyBvbmx5IGJyaW5ncyBpc3N1ZXMKPj4+Pj4gYW5k IGZvciBhYnNvbHV0ZWx5IG5vdCB1cHNpZGUgYWZhaWN0Lgo+Pj4+IFJlYWxseSA/IFlvdSB0aGlu ayB0aGF0IGRvaW5nIGEgY29udGV4dCBzd2l0Y2ggdG8ga2VybmVsIHNwYWNlLCB3aXRoIGFsbCBp dHMKPj4+PiBvdmVyaGVhZCwgaXMgX25vdF8gbW9yZSBleHBhbnNpdmUgdGhhbiBqdXN0IGNhbGxp bmcgYSBmdW5jdGlvbiBpbiB1c2Vyc3BhY2UKPj4+PiB3aGljaCBvbmx5IHB1dHMgYSBidWZmZXIg b24gYSByaW5nIGFuZCB3cml0ZXMgYSBkb29yYmVsbCA/Cj4gCj4gSSBhbSBzYXlpbmcgdGhlIG92 ZXJoZWFkIGlzIG5vdCB0aGF0IGJpZyBhbmQgaXQgcHJvYmFibHkgd2lsbCBub3QgbWF0dGVyIGlu IG1vc3QKPiB1c2VjYXNlLiBGb3IgaW5zdGFuY2UgaSBkaWQgd3JvdGUgdGhlIG1vc3QgdXNlbGVz cyBrZXJuZWwgbW9kdWxlIHRoYXQgYWRkIHR3bwo+IG51bWJlciB0aHJvdWdoIGFuIGlvY3RsICho dHRwOi8vcGVvcGxlLmZyZWVkZXNrdG9wLm9yZy9+Z2xpc3NlL2FkZGVyLnRhcikgYW5kCj4gaXQg dGFrZXMgfjAuMzVtaWNyb3NlY29uZHMgd2l0aCBpb2N0bCB3aGlsZSBmdW5jdGlvbiBpcyB+MC4w MjVtaWNyb3NlY29uZHMgc28KPiBpb2N0bCBpcyAxMyB0aW1lcyBzbG93ZXIuCj4gCj4gTm93IGlm IHRoZXJlIGlzIGVub3VnaCBkYXRhIHRoYXQgc2hvd3MgdGhhdCBhIHNpZ25pZmljYW50IHBlcmNl bnRhZ2Ugb2Ygam9icwo+IHN1Ym1pdGVkIHRvIHRoZSBHUFUgd2lsbCB0YWtlIGxlc3MgdGhhdCAw LjM1bWljcm9zZWNvbmQgdGhlbiB5ZXMgdXNlcnNwYWNlCj4gc2NoZWR1bGluZyBkb2VzIG1ha2Ug c2Vuc2UuIEJ1dCBzbyBmYXIgYWxsIHdlIGhhdmUgaXMgaGFuZHdhdmluZyB3aXRoIG5vIGRhdGEK PiB0byBzdXBwb3J0IGFueSBmYWN0cy4KPiAKPiAKPiBOb3cgaWYgd2Ugd2FudCB0byBzY2hlZHVs ZSBmcm9tIHVzZXJzcGFjZSB0aGFuIHlvdSB3aWxsIG5lZWQgdG8gZG8gc29tZXRoaW5nCj4gYWJv dXQgdGhlIHBpbm5pbmcsIHNvbWV0aGluZyB0aGF0IGdpdmVzIGNvbnRyb2wgdG8ga2VybmVsIHNv IHRoYXQga2VybmVsIGNhbgo+IHVucGluIHdoZW4gaXQgd2FudHMgYW5kIG1vdmUgb2JqZWN0IHdo ZW4gaXQgd2FudHMgbm8gbWF0dGVyIHdoYXQgdXNlcnNwYWNlIGlzCj4gZG9pbmcuCj4gCj4+Pj4+ Cj4+Pj4+IFNvIGkgd291bGQgcmF0aGVyIHNlZSBhIHZlcnkgc2ltcGxlIGlvY3RsIHRoYXQgd3Jp dGUgdGhlIGRvb3JiZWxsIGFuZCBtaWdodAo+Pj4+PiBkbyBtb3JlIHRoYW4gdGhhdCBpbiBjYXNl IG9mIHJpbmcvcXVldWUgb3ZlcmNvbW1pdCB3aGVyZSBpdCB3b3VsZCBmaXJzdCBoYXZlCj4+Pj4+ IHRvIHdhaXQgZm9yIGEgZnJlZSByaW5nL3F1ZXVlIHRvIHNjaGVkdWxlIHN0dWZmLiBUaGlzIHdv dWxkIGFsc28gYWxsb3cgc2FuZQo+Pj4+PiBpbXBsZW1lbnRhdGlvbiBvZiB0aGluZ3MgbGlrZSBw ZXJmb3JtYW5jZSBjb3VudGVyIHRoYXQgY291bGQgYmUgYWNxdWlyZSBieQo+Pj4+PiBrZXJuZWwg Zm9yIGR1cmF0aW9uIG9mIGEgam9iIHN1Ym1pdHRlZCBieSB1c2Vyc3BhY2UuIFdoaWxlIHN0aWxs IG5vdCBvcHRpbWFsCj4+Pj4+IHRoaXMgd291bGQgYmUgYmV0dGVyIHRoYXQgdXNlcnNwYWNlIGxv Y2tpbmcuCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IEkgbWlnaHQgaGF2ZSBtb3JlIHRob3VnaHRzIG9uY2Ug aSBhbSBkb25lIHdpdGggYWxsIHRoZSBwYXRjaGVzLgo+Pj4+Pgo+Pj4+PiBDaGVlcnMsCj4+Pj4+ IErDqXLDtG1lCj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gT3JpZ2luYWwgQ292ZXIgTGV0dGVyOgo+Pj4+ Pj4KPj4+Pj4+IFRoaXMgcGF0Y2ggc2V0IGltcGxlbWVudHMgYSBIZXRlcm9nZW5lb3VzIFN5c3Rl bSBBcmNoaXRlY3R1cmUgKEhTQSkgZHJpdmVyCj4+Pj4+PiBmb3IgcmFkZW9uLWZhbWlseSBHUFVz Lgo+Pj4+Pj4gSFNBIGFsbG93cyBkaWZmZXJlbnQgcHJvY2Vzc29yIHR5cGVzIChDUFVzLCBEU1Bz LCBHUFVzLCBldGMuLikgdG8gc2hhcmUKPj4+Pj4+IHN5c3RlbSByZXNvdXJjZXMgbW9yZSBlZmZl Y3RpdmVseSB2aWEgSFcgZmVhdHVyZXMgaW5jbHVkaW5nIHNoYXJlZCBwYWdlYWJsZQo+Pj4+Pj4g bWVtb3J5LCB1c2Vyc3BhY2UtYWNjZXNzaWJsZSB3b3JrIHF1ZXVlcywgYW5kIHBsYXRmb3JtLWxl dmVsIGF0b21pY3MuIEluCj4+Pj4+PiBhZGRpdGlvbiB0byB0aGUgbWVtb3J5IHByb3RlY3Rpb24g bWVjaGFuaXNtcyBpbiBHUFVWTSBhbmQgSU9NTVV2MiwgdGhlIFNlYQo+Pj4+Pj4gSXNsYW5kcyBm YW1pbHkgb2YgR1BVcyBhbHNvIHBlcmZvcm1zIEhXLWxldmVsIHZhbGlkYXRpb24gb2YgY29tbWFu ZHMgcGFzc2VkCj4+Pj4+PiBpbiB0aHJvdWdoIHRoZSBxdWV1ZXMgKGFrYSByaW5ncykuCj4+Pj4+ Pgo+Pj4+Pj4gVGhlIGNvZGUgaW4gdGhpcyBwYXRjaCBzZXQgaXMgaW50ZW5kZWQgdG8gc2VydmUg Ym90aCBhcyBhIHNhbXBsZSBkcml2ZXIgZm9yCj4+Pj4+PiBvdGhlciBIU0EtY29tcGF0aWJsZSBo YXJkd2FyZSBkZXZpY2VzIGFuZCBhcyBhIHByb2R1Y3Rpb24gZHJpdmVyIGZvcgo+Pj4+Pj4gcmFk ZW9uLWZhbWlseSBwcm9jZXNzb3JzLiBUaGUgY29kZSBpcyBhcmNoaXRlY3RlZCB0byBzdXBwb3J0 IG11bHRpcGxlIENQVXMKPj4+Pj4+IGVhY2ggd2l0aCBjb25uZWN0ZWQgR1BVcywgYWx0aG91Z2gg dGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZm9jdXNlcyBvbiBhCj4+Pj4+PiBzaW5nbGUgS2F2 ZXJpL0JlcmxpbiBBUFUsIGFuZCB3b3JrcyBhbG9uZ3NpZGUgdGhlIGV4aXN0aW5nIHJhZGVvbiBr ZXJuZWwKPj4+Pj4+IGdyYXBoaWNzIGRyaXZlciAoa2dkKS4KPj4+Pj4+IEFNRCBHUFVzIGRlc2ln bmVkIGZvciB1c2Ugd2l0aCBIU0EgKFNlYSBJc2xhbmRzIGFuZCB1cCkgc2hhcmUgc29tZSBoYXJk d2FyZQo+Pj4+Pj4gZnVuY3Rpb25hbGl0eSBiZXR3ZWVuIEhTQSBjb21wdXRlIGFuZCByZWd1bGFy IGdmeC9jb21wdXRlIChtZW1vcnksCj4+Pj4+PiBpbnRlcnJ1cHRzLCByZWdpc3RlcnMpLCB3aGls ZSBvdGhlciBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIGFkZGVkCj4+Pj4+PiBzcGVjaWZpY2FsbHkg Zm9yIEhTQSBjb21wdXRlICAoaHcgc2NoZWR1bGVyIGZvciB2aXJ0dWFsaXplZCBjb21wdXRlIHJp bmdzKS4KPj4+Pj4+IEFsbCBzaGFyZWQgaGFyZHdhcmUgaXMgb3duZWQgYnkgdGhlIHJhZGVvbiBn cmFwaGljcyBkcml2ZXIsIGFuZCBhbiBpbnRlcmZhY2UKPj4+Pj4+IGJldHdlZW4ga2ZkIGFuZCBr Z2QgYWxsb3dzIHRoZSBrZmQgdG8gbWFrZSB1c2Ugb2YgdGhvc2Ugc2hhcmVkIHJlc291cmNlcywK Pj4+Pj4+IHdoaWxlIEhTQS1zcGVjaWZpYyBmdW5jdGlvbmFsaXR5IGlzIG1hbmFnZWQgZGlyZWN0 bHkgYnkga2ZkIGJ5IHN1Ym1pdHRpbmcKPj4+Pj4+IHBhY2tldHMgaW50byBhbiBIU0Etc3BlY2lm aWMgY29tbWFuZCBxdWV1ZSAodGhlICJISVEiKS4KPj4+Pj4+Cj4+Pj4+PiBEdXJpbmcga2ZkIG1v ZHVsZSBpbml0aWFsaXphdGlvbiBhIGNoYXIgZGV2aWNlIG5vZGUgKC9kZXYva2ZkKSBpcyBjcmVh dGVkCj4+Pj4+PiAoc3Vydml2aW5nIHVudGlsIG1vZHVsZSBleGl0KSwgd2l0aCBpb2N0bHMgZm9y IHF1ZXVlIGNyZWF0aW9uICYgbWFuYWdlbWVudCwKPj4+Pj4+IGFuZCBkYXRhIHN0cnVjdHVyZXMg YXJlIGluaXRpYWxpemVkIGZvciBtYW5hZ2luZyBIU0EgZGV2aWNlIHRvcG9sb2d5Lgo+Pj4+Pj4g VGhlIHJlc3Qgb2YgdGhlIGluaXRpYWxpemF0aW9uIGlzIGRyaXZlbiBieSBjYWxscyBmcm9tIHRo ZSByYWRlb24ga2dkIGF0IHRoZQo+Pj4+Pj4gZm9sbG93aW5nIHBvaW50cyA6Cj4+Pj4+Pgo+Pj4+ Pj4gLSByYWRlb25faW5pdCAoa2ZkX2luaXQpCj4+Pj4+PiAtIHJhZGVvbl9leGl0IChrZmRfZmlu aSkKPj4+Pj4+IC0gcmFkZW9uX2RyaXZlcl9sb2FkX2ttcyAoa2ZkX2RldmljZV9wcm9iZSwga2Zk X2RldmljZV9pbml0KQo+Pj4+Pj4gLSByYWRlb25fZHJpdmVyX3VubG9hZF9rbXMgKGtmZF9kZXZp Y2VfZmluaSkKPj4+Pj4+Cj4+Pj4+PiBEdXJpbmcgdGhlIHByb2JlIGFuZCBpbml0IHByb2Nlc3Np bmcgcGVyLWRldmljZSBkYXRhIHN0cnVjdHVyZXMgYXJlCj4+Pj4+PiBlc3RhYmxpc2hlZCB3aGlj aCBjb25uZWN0IHRvIHRoZSBhc3NvY2lhdGVkIGdyYXBoaWNzIGtlcm5lbCBkcml2ZXIuIFRoaXMK Pj4+Pj4+IGluZm9ybWF0aW9uIGlzIGV4cG9zZWQgdG8gdXNlcnNwYWNlIHZpYSBzeXNmcywgYWxv bmcgd2l0aCBhIHZlcnNpb24gbnVtYmVyCj4+Pj4+PiBhbGxvd2luZyB1c2Vyc3BhY2UgdG8gZGV0 ZXJtaW5lIGlmIGEgdG9wb2xvZ3kgY2hhbmdlIGhhcyBvY2N1cnJlZCB3aGlsZSBpdAo+Pj4+Pj4g d2FzIHJlYWRpbmcgZnJvbSBzeXNmcy4KPj4+Pj4+IFRoZSBpbnRlcmZhY2UgYmV0d2VlbiBrZmQg YW5kIGtnZCBhbHNvIGFsbG93cyB0aGUga2ZkIHRvIHJlcXVlc3QgYnVmZmVyCj4+Pj4+PiBtYW5h Z2VtZW50IHNlcnZpY2VzIGZyb20ga2dkLCBhbmQgYWxsb3dzIGtnZCB0byByb3V0ZSBpbnRlcnJ1 cHQgcmVxdWVzdHMgdG8KPj4+Pj4+IGtmZCBjb2RlIHNpbmNlIHRoZSBpbnRlcnJ1cHQgYmxvY2sg aXMgc2hhcmVkIGJldHdlZW4gcmVndWxhcgo+Pj4+Pj4gZ3JhcGhpY3MvY29tcHV0ZSBhbmQgSFNB IGNvbXB1dGUgc3Vic3lzdGVtcyBpbiB0aGUgR1BVLgo+Pj4+Pj4KPj4+Pj4+IFRoZSBrZmQgY29k ZSB3b3JrcyB3aXRoIGFuIG9wZW4gc291cmNlIHVzZXJtb2RlIGxpYnJhcnkgKCJsaWJoc2FrbXQi KSB3aGljaAo+Pj4+Pj4gaXMgaW4gdGhlIGZpbmFsIHN0YWdlcyBvZiBJUCByZXZpZXcgYW5kIHNo b3VsZCBiZSBwdWJsaXNoZWQgaW4gYSBzZXBhcmF0ZQo+Pj4+Pj4gcmVwbyBvdmVyIHRoZSBuZXh0 IGZldyBkYXlzLgo+Pj4+Pj4gVGhlIGNvZGUgb3BlcmF0ZXMgaW4gb25lIG9mIHRocmVlIG1vZGVz LCBzZWxlY3RhYmxlIHZpYSB0aGUgc2NoZWRfcG9saWN5Cj4+Pj4+PiBtb2R1bGUgcGFyYW1ldGVy IDoKPj4+Pj4+Cj4+Pj4+PiAtIHNjaGVkX3BvbGljeT0wIHVzZXMgYSBoYXJkd2FyZSBzY2hlZHVs ZXIgcnVubmluZyBpbiB0aGUgTUVDIGJsb2NrIHdpdGhpbgo+Pj4+Pj4gQ1AsIGFuZCBhbGxvd3Mg b3ZlcnN1YnNjcmlwdGlvbiAobW9yZSBxdWV1ZXMgdGhhbiBIVyBzbG90cykKPj4+Pj4+IC0gc2No ZWRfcG9saWN5PTEgYWxzbyB1c2VzIEhXIHNjaGVkdWxpbmcgYnV0IGRvZXMgbm90IGFsbG93Cj4+ Pj4+PiBvdmVyc3Vic2NyaXB0aW9uLCBzbyBjcmVhdGVfcXVldWUgcmVxdWVzdHMgZmFpbCB3aGVu IHdlIHJ1biBvdXQgb2YgSFcgc2xvdHMKPj4+Pj4+IC0gc2NoZWRfcG9saWN5PTIgZG9lcyBub3Qg dXNlIEhXIHNjaGVkdWxpbmcsIHNvIHRoZSBkcml2ZXIgbWFudWFsbHkgYXNzaWducwo+Pj4+Pj4g cXVldWVzIHRvIEhXIHNsb3RzIGJ5IHByb2dyYW1taW5nIHJlZ2lzdGVycwo+Pj4+Pj4KPj4+Pj4+ IFRoZSAibm8gSFcgc2NoZWR1bGluZyIgb3B0aW9uIGlzIGZvciBkZWJ1ZyAmIG5ldyBoYXJkd2Fy ZSBicmluZ3VwIG9ubHksIHNvCj4+Pj4+PiBoYXMgbGVzcyB0ZXN0IGNvdmVyYWdlIHRoYW4gdGhl IG90aGVyIG9wdGlvbnMuIERlZmF1bHQgaW4gdGhlIGN1cnJlbnQgY29kZQo+Pj4+Pj4gaXMgIkhX IHNjaGVkdWxpbmcgd2l0aG91dCBvdmVyc3Vic2NyaXB0aW9uIiBzaW5jZSB0aGF0IGlzIHdoZXJl IHdlIGhhdmUgdGhlCj4+Pj4+PiBtb3N0IHRlc3QgY292ZXJhZ2UgYnV0IHdlIGV4cGVjdCB0byBj aGFuZ2UgdGhlIGRlZmF1bHQgdG8gIkhXIHNjaGVkdWxpbmcKPj4+Pj4+IHdpdGggb3ZlcnN1YnNj cmlwdGlvbiIgYWZ0ZXIgZnVydGhlciB0ZXN0aW5nLiBUaGlzIGVmZmVjdGl2ZWx5IHJlbW92ZXMg dGhlCj4+Pj4+PiBIVyBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHdvcmsgcXVldWVzIGF2YWlsYWJs ZSB0byBhcHBsaWNhdGlvbnMuCj4+Pj4+Pgo+Pj4+Pj4gUHJvZ3JhbXMgcnVubmluZyBvbiB0aGUg R1BVIGFyZSBhc3NvY2lhdGVkIHdpdGggYW4gYWRkcmVzcyBzcGFjZSB0aHJvdWdoIHRoZQo+Pj4+ Pj4gVk1JRCBmaWVsZCwgd2hpY2ggaXMgdHJhbnNsYXRlZCB0byBhIHVuaXF1ZSBQQVNJRCBhdCBh Y2Nlc3MgdGltZSB2aWEgYSBzZXQKPj4+Pj4+IG9mIDE2IFZNSUQtdG8tUEFTSUQgbWFwcGluZyBy ZWdpc3RlcnMuIFRoZSBhdmFpbGFibGUgVk1JRHMgKGN1cnJlbnRseSAxNikKPj4+Pj4+IGFyZSBw YXJ0aXRpb25lZCAodW5kZXIgY29udHJvbCBvZiB0aGUgcmFkZW9uIGtnZCkgYmV0d2VlbiBjdXJy ZW50Cj4+Pj4+PiBnZngvY29tcHV0ZSBhbmQgSFNBIGNvbXB1dGUsIHdpdGggZWFjaCBnZXR0aW5n IDggaW4gdGhlIGN1cnJlbnQgY29kZS4gVGhlCj4+Pj4+PiBWTUlELXRvLVBBU0lEIG1hcHBpbmcg cmVnaXN0ZXJzIGFyZSB1cGRhdGVkIGJ5IHRoZSBIVyBzY2hlZHVsZXIgd2hlbiB1c2VkLAo+Pj4+ Pj4gYW5kIGJ5IGRyaXZlciBjb2RlIGlmIEhXIHNjaGVkdWxpbmcgaXMgbm90IGJlaW5nIHVzZWQu Cj4+Pj4+PiBUaGUgU2VhIElzbGFuZHMgY29tcHV0ZSBxdWV1ZXMgdXNlIGEgbmV3ICJkb29yYmVs bCIgbWVjaGFuaXNtIGluc3RlYWQgb2YgdGhlCj4+Pj4+PiBlYXJsaWVyIGtlcm5lbC1tYW5hZ2Vk IHdyaXRlIHBvaW50ZXIgcmVnaXN0ZXJzLiBEb29yYmVsbHMgdXNlIGEgc2VwYXJhdGUgQkFSCj4+ Pj4+PiBkZWRpY2F0ZWQgZm9yIHRoaXMgcHVycG9zZSwgYW5kIHBhZ2VzIHdpdGhpbiB0aGUgZG9v cmJlbGwgYXBlcnR1cmUgYXJlCj4+Pj4+PiBtYXBwZWQgdG8gdXNlcnNwYWNlIChlYWNoIHBhZ2Ug bWFwcGVkIHRvIG9ubHkgb25lIHVzZXIgYWRkcmVzcyBzcGFjZSkuCj4+Pj4+PiBXcml0ZXMgdG8g dGhlIGRvb3JiZWxsIGFwZXJ0dXJlIGFyZSBpbnRlcmNlcHRlZCBieSBHUFUgaGFyZHdhcmUsIGFs bG93aW5nCj4+Pj4+PiB1c2Vyc3BhY2UgY29kZSB0byBzYWZlbHkgbWFuYWdlIHdvcmsgcXVldWVz IChyaW5ncykgd2l0aG91dCByZXF1aXJpbmcgYQo+Pj4+Pj4ga2VybmVsIGNhbGwgZm9yIGV2ZXJ5 IHJpbmcgdXBkYXRlLgo+Pj4+Pj4gRmlyc3Qgc3RlcCBmb3IgYW4gYXBwbGljYXRpb24gcHJvY2Vz cyBpcyB0byBvcGVuIHRoZSBrZmQgZGV2aWNlLiBDYWxscyB0bwo+Pj4+Pj4gb3BlbiBjcmVhdGUg YSBrZmQgInByb2Nlc3MiIHN0cnVjdHVyZSBvbmx5IGZvciB0aGUgZmlyc3QgdGhyZWFkIG9mIHRo ZQo+Pj4+Pj4gcHJvY2Vzcy4gU3Vic2VxdWVudCBvcGVuIGNhbGxzIGFyZSBjaGVja2VkIHRvIHNl ZSBpZiB0aGV5IGFyZSBmcm9tIHByb2Nlc3Nlcwo+Pj4+Pj4gdXNpbmcgdGhlIHNhbWUgbW1fc3Ry dWN0IGFuZCwgaWYgc28sIGRvbid0IGRvIGFueXRoaW5nLiBUaGUga2ZkIHBlci1wcm9jZXNzCj4+ Pj4+PiBkYXRhIGxpdmVzIGFzIGxvbmcgYXMgdGhlIG1tX3N0cnVjdCBleGlzdHMuIEVhY2ggbW1f c3RydWN0IGlzIGFzc29jaWF0ZWQKPj4+Pj4+IHdpdGggYSB1bmlxdWUgUEFTSUQsIGFsbG93aW5n IHRoZSBJT01NVXYyIHRvIG1ha2UgdXNlcnNwYWNlIHByb2Nlc3MgbWVtb3J5Cj4+Pj4+PiBhY2Nl c3NpYmxlIHRvIHRoZSBHUFUuCj4+Pj4+PiBOZXh0IHN0ZXAgaXMgZm9yIHRoZSBhcHBsaWNhdGlv biB0byBjb2xsZWN0IHRvcG9sb2d5IGluZm9ybWF0aW9uIHZpYSBzeXNmcy4KPj4+Pj4+IFRoaXMg Z2l2ZXMgdXNlcnNwYWNlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBiZSBhYmxlIHRvIGlkZW50aWZ5 IHNwZWNpZmljCj4+Pj4+PiBub2RlcyAocHJvY2Vzc29ycykgaW4gc3Vic2VxdWVudCBxdWV1ZSBt YW5hZ2VtZW50IGNhbGxzLiBBcHBsaWNhdGlvbgo+Pj4+Pj4gcHJvY2Vzc2VzIGNhbiBjcmVhdGUg cXVldWVzIG9uIG11bHRpcGxlIHByb2Nlc3NvcnMsIGFuZCBwcm9jZXNzb3JzIHN1cHBvcnQKPj4+ Pj4+IHF1ZXVlcyBmcm9tIG11bHRpcGxlIHByb2Nlc3Nlcy4KPj4+Pj4+IEF0IHRoaXMgcG9pbnQg dGhlIGFwcGxpY2F0aW9uIGNhbiBjcmVhdGUgd29yayBxdWV1ZXMgaW4gdXNlcnNwYWNlIG1lbW9y eSBhbmQKPj4+Pj4+IHBhc3MgdGhlbSB0aHJvdWdoIHRoZSB1c2VybW9kZSBsaWJyYXJ5IHRvIGtm ZCB0byBoYXZlIHRoZW0gbWFwcGVkIG9udG8gSFcKPj4+Pj4+IHF1ZXVlIHNsb3RzIHNvIHRoYXQg Y29tbWFuZHMgd3JpdHRlbiB0byB0aGUgcXVldWVzIGNhbiBiZSBleGVjdXRlZCBieSB0aGUKPj4+ Pj4+IEdQVS4gUXVldWUgb3BlcmF0aW9ucyBzcGVjaWZ5IGEgcHJvY2Vzc29yIG5vZGUsIGFuZCBz byB0aGUgYnVsayBvZiB0aGlzIGNvZGUKPj4+Pj4+IGlzIGRldmljZS1zcGVjaWZpYy4KPj4+Pj4+ IFdyaXR0ZW4gYnkgSm9obiBCcmlkZ21hbiA8Sm9obi5CcmlkZ21hbkBhbWQuY29tPgo+Pj4+Pj4K Pj4+Pj4+Cj4+Pj4+PiBBbGV4ZXkgU2tpZGFub3YgKDEpOgo+Pj4+Pj4gICBhbWRrZmQ6IEltcGxl bWVudCB0aGUgR2V0IFByb2Nlc3MgQXBlcnR1cmUgSU9DVEwKPj4+Pj4+Cj4+Pj4+PiBBbmRyZXcg TGV3eWNreSAoMyk6Cj4+Pj4+PiAgIGFtZGtmZDogQWRkIGJhc2ljIG1vZHVsZXMgdG8gYW1ka2Zk Cj4+Pj4+PiAgIGFtZGtmZDogQWRkIGludGVycnVwdCBoYW5kbGluZyBtb2R1bGUKPj4+Pj4+ICAg YW1ka2ZkOiBJbXBsZW1lbnQgdGhlIFNldCBNZW1vcnkgUG9saWN5IElPQ1RMCj4+Pj4+Pgo+Pj4+ Pj4gQmVuIEdveiAoOCk6Cj4+Pj4+PiAgIGFtZGtmZDogQWRkIHF1ZXVlIG1vZHVsZQo+Pj4+Pj4g ICBhbWRrZmQ6IEFkZCBtcWRfbWFuYWdlciBtb2R1bGUKPj4+Pj4+ICAgYW1ka2ZkOiBBZGQga2Vy bmVsIHF1ZXVlIG1vZHVsZQo+Pj4+Pj4gICBhbWRrZmQ6IEFkZCBtb2R1bGUgcGFyYW1ldGVyIG9m IHNjaGVkdWxpbmcgcG9saWN5Cj4+Pj4+PiAgIGFtZGtmZDogQWRkIHBhY2tldCBtYW5hZ2VyIG1v ZHVsZQo+Pj4+Pj4gICBhbWRrZmQ6IEFkZCBwcm9jZXNzIHF1ZXVlIG1hbmFnZXIgbW9kdWxlCj4+ Pj4+PiAgIGFtZGtmZDogQWRkIGRldmljZSBxdWV1ZSBtYW5hZ2VyIG1vZHVsZQo+Pj4+Pj4gICBh bWRrZmQ6IEltcGxlbWVudCB0aGUgY3JlYXRlL2Rlc3Ryb3kvdXBkYXRlIHF1ZXVlIElPQ1RMcwo+ Pj4+Pj4KPj4+Pj4+IEV2Z2VueSBQaW5jaHVrICgzKToKPj4+Pj4+ICAgYW1ka2ZkOiBBZGQgdG9w b2xvZ3kgbW9kdWxlIHRvIGFtZGtmZAo+Pj4+Pj4gICBhbWRrZmQ6IEltcGxlbWVudCB0aGUgR2V0 IENsb2NrIENvdW50ZXJzIElPQ1RMCj4+Pj4+PiAgIGFtZGtmZDogSW1wbGVtZW50IHRoZSBQTUMg QWNxdWlyZS9SZWxlYXNlIElPQ1RMcwo+Pj4+Pj4KPj4+Pj4+IE9kZWQgR2FiYmF5ICgxMCk6Cj4+ Pj4+PiAgIG1tOiBBZGQga2ZkX3Byb2Nlc3MgcG9pbnRlciB0byBtbV9zdHJ1Y3QKPj4+Pj4+ICAg ZHJtL3JhZGVvbjogcmVkdWNlIG51bWJlciBvZiBmcmVlIFZNSURzIGFuZCBwaXBlcyBpbiBLVgo+ Pj4+Pj4gICBkcm0vcmFkZW9uL2NpazogRG9uJ3QgdG91Y2ggaW50IG9mIHBpcGVzIDEtNwo+Pj4+ Pj4gICBkcm0vcmFkZW9uOiBSZXBvcnQgZG9vcmJlbGwgY29uZmlndXJhdGlvbiB0byBhbWRrZmQK Pj4+Pj4+ICAgZHJtL3JhZGVvbjogYWRkaW5nIHN5bmNocm9uaXphdGlvbiBmb3IgR1JCTSBHRlgK Pj4+Pj4+ICAgZHJtL3JhZGVvbjogQWRkIHJhZGVvbiA8LS0+IGFtZGtmZCBpbnRlcmZhY2UKPj4+ Pj4+ICAgVXBkYXRlIE1BSU5UQUlORVJTIGFuZCBDUkVESVRTIGZpbGVzIHdpdGggYW1ka2ZkIGlu Zm8KPj4+Pj4+ICAgYW1ka2ZkOiBBZGQgSU9DVEwgc2V0IGRlZmluaXRpb25zIG9mIGFtZGtmZAo+ Pj4+Pj4gICBhbWRrZmQ6IEFkZCBhbWRrZmQgc2tlbGV0b24gZHJpdmVyCj4+Pj4+PiAgIGFtZGtm ZDogQWRkIGJpbmRpbmcvdW5iaW5kaW5nIGNhbGxzIHRvIGFtZF9pb21tdSBkcml2ZXIKPj4+Pj4+ Cj4+Pj4+PiAgQ1JFRElUUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICA3ICsKPj4+Pj4+ICBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMTAgKwo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vS2Nv bmZpZyAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKPj4+Pj4+ICBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9LY29uZmlnICAgICAgICAgICAgICB8ICAgMTAgKwo+ Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYW1ka2ZkL01ha2VmaWxlICAgICAgICAgICAg IHwgICAxNCArCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQvY2lrX21xZHMu aCAgICAgICAgICAgfCAgMTg1ICsrKwo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYW1k a2ZkL2Npa19yZWdzLmggICAgICAgICAgIHwgIDIyMCArKysrCj4+Pj4+PiAgZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2FwZXJ0dXJlLmMgICAgICAgfCAgMTIzICsrCj4+Pj4+PiAg ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2NoYXJkZXYuYyAgICAgICAgfCAgNTE4 ICsrKysrKysrKwo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYW1ka2ZkL2tmZF9jcmF0 LmggICAgICAgICAgIHwgIDI5NCArKysrKwo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24v YW1ka2ZkL2tmZF9kZXZpY2UuYyAgICAgICAgIHwgIDI1NCArKysrCj4+Pj4+PiAgLi4uL2RybS9y YWRlb24vYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jICAgfCAgOTg1ICsrKysrKysr KysrKysrKysKPj4+Pj4+ICAuLi4vZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9t YW5hZ2VyLmggICB8ICAxMDEgKysKPj4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtm ZC9rZmRfZG9vcmJlbGwuYyAgICAgICB8ICAyNjQgKysrKysKPj4+Pj4+ICBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2FtZGtmZC9rZmRfaW50ZXJydXB0LmMgICAgICB8ICAxNjEgKysrCj4+Pj4+PiAg ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2tlcm5lbF9xdWV1ZS5jICAgfCAgMzA1 ICsrKysrCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2tlcm5lbF9x dWV1ZS5oICAgfCAgIDY2ICsrCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQv a2ZkX21vZHVsZS5jICAgICAgICAgfCAgMTMxICsrKwo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vYW1ka2ZkL2tmZF9tcWRfbWFuYWdlci5jICAgIHwgIDI5MSArKysrKwo+Pj4+Pj4gIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vYW1ka2ZkL2tmZF9tcWRfbWFuYWdlci5oICAgIHwgICA1NCAr Cj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3BhY2tldF9tYW5hZ2Vy LmMgfCAgNDg4ICsrKysrKysrCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQv a2ZkX3Bhc2lkLmMgICAgICAgICAgfCAgIDk3ICsrCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9hbWRrZmQva2ZkX3BtNF9oZWFkZXJzLmggICAgfCAgNjgyICsrKysrKysrKysrCj4+Pj4+ PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3BtNF9vcGNvZGVzLmggICAgfCAg MTA3ICsrCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3ByaXYuaCAg ICAgICAgICAgfCAgNDY2ICsrKysrKysrCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9h bWRrZmQva2ZkX3Byb2Nlc3MuYyAgICAgICAgfCAgNDA1ICsrKysrKysKPj4+Pj4+ICAuLi4vZHJt L3JhZGVvbi9hbWRrZmQva2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jICB8ICAzNDMgKysrKysr Cj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3F1ZXVlLmMgICAgICAg ICAgfCAgMTA5ICsrCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3Rv cG9sb2d5LmMgICAgICAgfCAxMjA3Cj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKwo+Pj4+Pj4g IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYW1ka2ZkL2tmZF90b3BvbG9neS5oICAgICAgIHwgIDE2 OCArKysKPj4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfdmlkbWVtLmMg ICAgICAgICB8ICAgOTYgKysKPj4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jICAg ICAgICAgICAgICAgICAgICAgICB8ICAxNTQgKy0tCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9jaWtfcmVnLmggICAgICAgICAgICAgICAgICAgfCAgIDY1ICsrCj4+Pj4+PiAgZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9jaWtkLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDUxICstCj4+ Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaCAgICAgICAgICAgICAgICAgICAg fCAgICA5ICsKPj4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kZXZpY2UuYyAg ICAgICAgICAgICB8ICAgMzIgKwo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2Rydi5jICAgICAgICAgICAgICAgIHwgICAgNSArCj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fa2ZkLmMgICAgICAgICAgICAgICAgfCAgNTY2ICsrKysrKysrKwo+Pj4+Pj4g IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2tmZC5oICAgICAgICAgICAgICAgIHwgIDEx OSArKwo+Pj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jICAgICAgICAg ICAgICAgIHwgICAgNyArCj4+Pj4+PiAgaW5jbHVkZS9saW51eC9tbV90eXBlcy5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKPj4+Pj4+ICBpbmNsdWRlL3VhcGkvbGludXgva2Zk X2lvY3RsLmggICAgICAgICAgICAgICAgICAgICB8ICAxMzMgKysrCj4+Pj4+PiAgNDMgZmlsZXMg Y2hhbmdlZCwgOTIyNiBpbnNlcnRpb25zKCspLCA5NSBkZWxldGlvbnMoLSkKPj4+Pj4+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQvS2NvbmZpZwo+Pj4+ Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9NYWtl ZmlsZQo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Ft ZGtmZC9jaWtfbXFkcy5oCj4+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vYW1ka2ZkL2Npa19yZWdzLmgKPj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2FwZXJ0dXJlLmMKPj4+Pj4+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2NoYXJkZXYuYwo+ Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9r ZmRfY3JhdC5oCj4+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vYW1ka2ZkL2tmZF9kZXZpY2UuYwo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYwo+Pj4+Pj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfZGV2 aWNlX3F1ZXVlX21hbmFnZXIuaAo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfZG9vcmJlbGwuYwo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfaW50ZXJydXB0LmMKPj4+Pj4+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX2tl cm5lbF9xdWV1ZS5jCj4+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUuaAo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfbW9kdWxlLmMKPj4+Pj4+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX21xZF9tYW5h Z2VyLmMKPj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9h bWRrZmQva2ZkX21xZF9tYW5hZ2VyLmgKPj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3BhY2tldF9tYW5hZ2VyLmMKPj4+Pj4+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3Bhc2lkLmMK Pj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQv a2ZkX3BtNF9oZWFkZXJzLmgKPj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3BtNF9vcGNvZGVzLmgKPj4+Pj4+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hbWRrZmQva2ZkX3ByaXYuaAo+Pj4+Pj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfcHJvY2Vz cy5jCj4+Pj4+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYW1k a2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIuYwo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfcXVldWUuYwo+Pj4+Pj4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtmZC9rZmRfdG9wb2xvZ3ku Ywo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2FtZGtm ZC9rZmRfdG9wb2xvZ3kuaAo+Pj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2FtZGtmZC9rZmRfdmlkbWVtLmMKPj4+Pj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fa2ZkLmMKPj4+Pj4+ICBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fa2ZkLmgKPj4+Pj4+ICBjcmVhdGUg bW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2xpbnV4L2tmZF9pb2N0bC5oCj4+Pj4+Pgo+Pj4+Pj4g LS0KPj4+Pj4+IDEuOS4xCj4+Pj4+Pgo+Pj4+Cj4+Pgo+PgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK