From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v2 0/2] ARM: ACPI: IORT: Hide SMMU from hardware domain's IORT table Date: Fri, 6 Oct 2017 15:24:52 +0100 Message-ID: References: <1505165606-11731-1-git-send-email-mjaggi@caviumnetworks.com> <73ca3423-9a7d-788f-1ef2-81e8621bcea9@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e0TYf-0004sc-OH for xen-devel@lists.xenproject.org; Fri, 06 Oct 2017 14:24:57 +0000 In-Reply-To: <73ca3423-9a7d-788f-1ef2-81e8621bcea9@caviumnetworks.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Manish Jaggi , Andre Przywara , xen-devel@lists.xenproject.org Cc: tomasz.nowicki@cavium.com, sstabellini@kernel.org, Manish Jaggi List-Id: xen-devel@lists.xenproject.org SGVsbG8sCgpPbiAwNC8xMC8xNyAwNjoyMiwgTWFuaXNoIEphZ2dpIHdyb3RlOgo+IE9uIDEwLzQv MjAxNyAxMjoxMiBBTSwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+PiBPbiAyNS8wOS8xNyAwNToyMiwg TWFuaXNoIEphZ2dpIHdyb3RlOgo+Pj4gT24gOS8yMi8yMDE3IDc6NDIgUE0sIEFuZHJlIFByenl3 YXJhIHdyb3RlOgo+Pj4+IEhpIE1hbmlzaCwKPj4+Pgo+Pj4+IE9uIDExLzA5LzE3IDIyOjMzLCBt amFnZ2lAY2F2aXVtbmV0d29ya3MuY29tIHdyb3RlOgo+Pj4+PiBGcm9tOiBNYW5pc2ggSmFnZ2kg PG1qYWdnaUBjYXZpdW0uY29tPgo+Pj4+Pgo+Pj4+PiBUaGUgc2V0IGlzIGRpdmlkZWQgaW50byB0 d28gcGF0Y2hlcy4gRmlyc3Qgb25lIGNhbGN1bGF0ZXMgdGhlIHNpemUgCj4+Pj4+IG9mIElPUlQK Pj4+Pj4gd2hpbGUgc2Vjb25kIG9uZSB3cml0ZXMgdGhlIElPUlQgdGFibGUgaXRzZWxmLgo+Pj4+ IEl0IHdvdWxkIGJlIGdvb2QgaWYgeW91IGNvdWxkIGdpdmUgYSBxdWljayBpbnRyb2R1Y3Rpb24g KndoeSogdGhpcyBzZXQKPj4+PiBpcyBuZWVkZWQgaGVyZSAoYW5kIGludHJvZHVjZSBJT1JUIHRv IHRoZSBjYXN1YWwgcmVhZGVyKS4KPj4+PiBJbiBnZW5lcmFsIHNvbWUgbW9yZSBoaWdoLWxldmVs IGRvY3VtZW50YXRpb24gb24geW91ciBmdW5jdGlvbnMgCj4+Pj4gd291bGQgYmUKPj4+PiBnb29k LCBhcyBpdCB0b29rIG1lIHF1aXRlIHNvbWUgdGltZSB0byB1bmRlcnN0YW5kIHdoYXQgZWFjaCBm dW5jdGlvbiAKPj4+PiBkb2VzLgo+Pj4gb2ssIHdpbGwgYWRkIG1vcmUgZG9jdW1lbnRhdGlvbi4K Pj4+PiBTbyBteSB1bmRlcnN0YW5kaW5nIGlzOgo+Pj4+IHBoYXNlIDE6Cj4+Pj4gLSBnbyBvdmVy IGVhY2ggZW50cnkgaW4gZWFjaCBSQyBub2RlCj4+PiBSYXRoZXIgdGhhbiBlYWNoIGVudHJ5ICh3 aGljaCBjb3VsZCBiZSBhIGxhcmdlIG51bWJlcikgSSBhbSB0YWtpbmcgCj4+PiB0aGUgY29tcGxl dGUgcmFuZ2UgYW5kIGNoZWNraW5nIGl0IHdpdGggdGhlIHNhbWUgbG9naWMuCj4+PiBJZiB0aGUg SUQgcmFuZ2UgaXMgYSBzdWJzZXQgb3IgYSBzdXBlci1zZXQgb2YgaWQgcmFuZ2UgaW4gc21tdSwg bmV3IAo+Pj4gaWQgcmFuZ2UgaXMgY3JlYXRlZC4KPj4+Cj4+PiBTbyBpZiBwY2lfcmMgbm9kZSBo YXMgYW4gaWQgbWFwIAo+Pj4ge3BfaW5wdXQtYmFzZSxwX291dHB1dC1iYXNlLHBfb3V0X3JlZiwg cF9jb3VudH0gYW5kIGl0IGFuIG91dHB1dCAKPj4+IHJlZmVyZW5jZSB0byBzbW11IG5vZGUgd2l0 aCBpZC1tYXAKPj4+IHtzX2lucHV0LWJhc2UsIHNfb3V0cHV0LWJhc2Usc19vdXRfcmVmLCAgc19j b3VudH0sIGJhc2VkIG9uIHRoZSB0aGUgCj4+PiB0aGUgc19jb3VudCBhbmQgc19pbnB1dC9wX291 dHB1dCB0aGUgbmV3IGlkLW1hcCBpcyBjcmVhdGVkIHdpdGggCj4+PiB7cF9pbnB1dCwgc19vdXRw dXQsIHNfb3V0X3JlZiwgYWRqdXN0ZWRfY291bnR9Cj4+Pgo+Pj4gdXBkYXRlX2lkX21hcHBpbmcg ZnVuY3Rpb24gZG9lcyB0aGF0Lgo+Pj4KPj4+IFNvIEkgYW0gZm9sbG93aW5nIHRoZSBzYW1lIGxv Z2ljLiBXZSBjYW4gY2hhdCBvdmVyIElSQyAvIEkgY2FuIGdpdmUgYSAKPj4+IGNvZGUgd2Fsay10 aHJvdWdoIC4uLgo+Pj4KPj4+PiAtICAgaWYgdGhhdCBwb2ludHMgdG8gYW4gU01NVSBub2RlLCBn byBvdmVyIGVhY2ggb3V0Z29pbmcgSVRTIGVudHJ5IGFuZAo+Pj4+IGZpbmQgb3ZlcmxhcHMgd2l0 aCB0aGlzIFJDIGVudHJ5Cj4+Pj4gLSAgICAgZm9yIGVhY2ggb3ZlcmxhcCBjcmVhdGUgYSBuZXcg ZW50cnkgaW4gYSBsaXN0IHdpdGggdGhpcyBSQwo+Pj4+IHBvaW50aW5nIHRvIHRoZSBJVFMgZGly ZWN0bHkKPj4+Pgo+Pj4+IHBoYXNlIDIsIGNyZWF0aW5nIHRoZSBuZXcgSU9SVAo+Pj4+IC0gZ28g b3ZlciBlYWNoIFJDIG5vZGUKPj4+PiAtICAgaWYgdGhhdCBwb2ludHMgdG8gYW4gSVRTLCBjb3B5 IHRocm91Z2ggSU9SVCBlbnRyaWVzCj4+Pj4gLSAgIGlmIHRoYXQgcG9pbnRzIHRvIGFuIFNNTVUs IHJlcGxhY2Ugd2l0aCB0aGUgcmVtYXBwZWQgZW50cmllcwo+Pj4+IC0gZ28gb3ZlciBlYWNoIElU UyBub2RlCj4+Pj4gLSAgIGNvcHkgdGhyb3VnaCBJT1JUIGVudHJpZXMKPj4+IFRoYXRzIGV4YWN0 bHkgd2hhdCB0aGlzIHBhdGNoIGRvZXMuCj4gV2hhdCBhcmUgeW91IGNvbW1lbnRzIG9uIHRoZSBj dXJyZW50IHBhdGNoIGFwcHJvYWNoIHRvIGhpZGUgc21tdSBub2Rlcy4KPiBJIGhhdmUgYW5zd2Vy ZWQgdG8geW91ciBjb21tZW50cywgc2VlIGJlbG93LgoKSSBhbSBub3Qgc3VyZSB0byB1bmRlcnN0 YW5kIHRoZSAyIHNlbnRlbmNlcyBhYm92ZS4gV2hhdCBhcmUgdGhleSByZWxhdGVkPwoKPiBJTUhP IHdlIGNhbiByZXVzZSBtb3N0IG9mIHRoZSBmaXh1cCBjb2RlIGhlcmUuCgpUaGF0J3MgeW91ciBj aG9pY2UgYXMgbG9uZyBhcyBpdCBpcyBwcm9wZXJseSBkb2N1bWVudGVkIGFuZCBmaXRzIHRoZSBl bmQgCmdvYWwuCgo+IAo+Pj4+IFNvIEkgYmVsaWV2ZSB0aGlzIHdvdWxkIGRvIHRoZSB0cmljayBh bmQgeW91IGVuZCB1cCB3aXRoIGFuIGVmZmljaWVudAo+Pj4+IHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBJT1JUIHdpdGhvdXQgU01NVXMgLSBhdCBsZWFzdCBmb3IgUkMgbm9kZXMuCj4+Pj4KPj4+PiBB ZnRlciBzb21lIGJyYWluc3Rvcm1pbmcgd2l0aCBKdWxpZW4gd2UgZm91bmQgdHdvIHByb2JsZW1z Ogo+Pj4+IDEpIFRoaXMgb25seSBjb3ZlcnMgUkMgbm9kZXMsIGJ1dCBub3QgIm5hbWVkIGNvbXBv bmVudHMiIChwbGF0Zm9ybQo+Pj4+IGRldmljZXMpLCB3aGljaCB3ZSB3aWxsIG5lZWQuIFRoYXQg c2hvdWxkIGJlIGZpeGFibGUgYnkgcmVtb3ZpbmcgdGhlCj4+Pj4gaGFyZGNvZGVkIElPUlQgbm9k ZSB0eXBlcyBpbiB0aGUgY29kZSBhbmQgdHJlYXRpbmcgTkMgbm9kZXMgbGlrZSBSQyAKPj4+PiBu b2Rlcy4KPj4+IFllcywgc28gZmlyc3Qgd2UgY2FuIHRha2UgdGhpcyBhcyBhIGJhc2UsIG9uY2Ug dGhpcyBpcyBvaywgSSBjYW4gYWRkIAo+Pj4gc3VwcG9ydCBmb3IgbmFtZWQgY29tcG9uZW50cy4K Pj4+PiAyKSBFdmVudHVhbGx5IHdlIHdpbGwgbmVlZCAqdmlydHVhbCogZGV2aWNlSUQgc3VwcG9y dCwgZm9yIERvbVVzLiAKPj4+PiBOb3cgd2UKPj4gSSBhbSBhIGJpdCBzdXJwcmlzZWQgdGhhdCB5 b3UgYW5zd2VyZWQgdG8gdGhlIGUtbWFpbCBidXQgZGlkbid0IAo+PiBwcm92aWRlIGFueSBvcGlu aW9uIG9uIDIpLgo+IEFwb2xvZ2llcyBmb3IgdGhhdC4KPj4+PiBjb3VsZCBzdGFydCBpbnRyb2R1 Y2luZyB0aGF0IGFscmVhZHksIGFsc28gZG9pbmcgc29tZSB2aXJ0dWFsIG1hcHBpbmcKPj4+PiBm b3IgRG9tMC4gVGhlIElUUyBjb2RlIHdvdWxkIHRoZW4gdHJhbnNsYXRlIGVhY2ggdmlydHVhbCBk ZXZpY2UgSUQgdGhhdAo+Pj4+IERvbTAgcmVxdWVzdHMgaW50byBhIGhhcmR3YXJlIGRldmljZSBJ RC4KPj4+PiBJIGFncmVlIHRoYXQgdGhpcyBtZWFucyBhIGxvdCBtb3JlIHdvcmssIGJ1dCB3ZSB3 aWxsIG5lZWQgaXQgYW55d2F5Lgo+Pgo+PiBJIGFtIGEgYml0IHN1cnByaXNlZCB0aGF0IHlvdSBh bnN3ZXJlZCB0byB0aGUgZS1tYWlsIGJ1dCBkaWRuJ3QgCj4+IHByb3ZpZGUgYW55IG9waW5pb24g b24gMikuCj4gQXBvbG9naWVzIGZvciB0aGF0LiBTb3JyeSB0byBzdXJwcmlzZSB5b3UgdHdpY2Ug OikKCkRhbW0sIEkgbW92ZWQgdGhlIHNlbnRlbmNlIGJ1dCBmb3Jnb3QgdG8gZHJvcCB0aGUgb3Jp Z2luYWwgb25lLgoKPiAKPiBJTUhPIEl0IHdhcyBhIGJpdCBvYnZpb3VzIGZvciBEb21VIGFuZCBJ IHdhcyB3YWl0aW5nIHRvIGhlYXIgd2hhdCBvdGhlciAKPiB3b3VsZCBzYXkgb24gdGhpcy4KPiBh cyAoMikgYmVsb3cuCj4gTW9yZW92ZXIgd2UgbmVlZCB0byBkaXNjdXNzIElPUlQgZ2VuZXJhdGlv biBmb3IgRG9tVQo+IC0gY291bGQgYmUgZG9uZSBieSB4bCB0b29scwo+IG9yIHhlbiBzaG91bGQg ZG8gaXQuCgpUaGUgQUNQSSB0YWJsZXMgZm9yIERvbVUgYXJlIGdlbmVyYXRlZCBieSB0aGUgdG9v bHN0YWNrIHRvZGF5LiBTbyBJIApkb24ndCBzZWUgd2h5IHdlIHdvdWxkIGNoYW5nZSB0aGF0IHRv IHN1cHBvcnQgSU9SVC4KCkhvd2V2ZXIsIHlvdSBjYW4gaGF2ZSBhIGZpbGUgc2hhcmVkIGJldHdl ZW4gdGhlIHRvb2xzdGFjayBhbmQgWGVuIGFuZCAKY29udGFpbiB0aGUgZ2VuZXJhdGlvbiBvZiBJ T1JULgoKRm9yIGluc3RhbmNlLCB0aGlzIGlzIHdoYXQgd2UgYWxyZWFkeSBkb2VzIHdpdGggbGli ZWxmIChzZWUgY29tbW9uL2xpYmVsZikuCgpJIGFtIG5vdCBhc2tpbmcgdG8gd3JpdGUgdGhlIERv bVUgc3VwcG9ydCwgYnV0IGF0IGxlYXN0IGhhdmUgYSBmdWxsIApzZXBhcmF0aW9uIGJldHdlZW4g dGhlIFBhcnNpbmcgYW5kIEdlbmVyYXRpb24uIFNvIHdlIGNvdWxkIGVhc2lseSBhZGFwdCAKYW5k IHJlLXVzZSB0aGUgY29kZSB3aGVuIHdlIGdldCB0aGUgRG9tVSBzdXBwb3J0LgoKPiAKPiBBbHNv IHRoaXMgaXMgdGhlIHBhcnQgb2YgUENJIHBhc3N0aHJvdWdoIGZsb3cgc28gdGhhdCBhbHNvIG1p Z2h0IGNoYW5nZSAKPiBmZXcgdGhpbmdzLgo+IAo+IEJ1dCBmcm9tIHBvdiBvZiBkb20wIHNtbXUg aGlkaW5nLCBpdCBpcyBhIGRpZmZlcmVudCBmbG93IGFuZCBpcyBjb3VwbGVkIAo+IHdpdGggUENJ IFBULgo+IAo+Pgo+Pj4+Cj4+Pj4gSSB0aGluayAxKSBjYW4gYmUgc29sdmVkIHVzaW5nIHRoaXMg c2VyaWVzIGFzIGEgYmFzZS4gSSBoYXZlIHF1aXRlIHNvbWUKPj4+PiBjb21tZW50cyByZWFkeSBm b3IgdGhlIHBhdGNoZXMsIHNoYWxsIHdlIGZvbGxvdyB0aGlzIHJvdXRlLgo+Pj4+Cj4+Pj4gMikg b2J2aW91c2x5IHdvdWxkIGNoYW5nZSB0aGUgZ2FtZSBjb21wbGV0ZWx5LiBXZSBuZWVkIHRvIHNp dCBkb3duIGFuZAo+Pj4+IGRlc2lnbiB0aGlzIHByb3Blcmx5LiBQcm9iYWJseSB0aGlzIG1lYW5z IHRoYXQgWGVuIHBhcnNlcyB0aGUgSU9SVCBhbmQKPj4+PiBidWlsZHMgaW50ZXJuYWwgcmVwcmVz ZW50YXRpb25zIG9mIHRoZSBtYXBwaW5ncywgCj4gQ2FuIHlvdSBwbGVhc2UgYWRkIG1vcmUgZGV0 YWlsIG9uIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbnMgb2YgdGhlIAo+IG1hcHBpbmdzLgoK V2hhdCBleGFjdGx5IGRvIHlvdSB3YW50PyBUaGlzIGlzIGxpa2VseSBnb2luZyB0byBiZSBkZWNp ZGVkIG9uY2UgeW91IApsb29rZWQgd2hhdCBpcyB0aGUgZXhwZWN0ZWQgaW50ZXJhY3Rpb24gYmV0 d2VlbiBJT1JUIGFuZCBYZW4uCgo+IElJVUMgdGhlIGluZm9ybWF0aW9uIGlzIGFscmVhZHkgdGhl cmUgaW4gQUNQSSB0YWJsZXMsIHdvdWxkIGl0IG5vdCBhZGQgCj4gZXh0cmEgb3ZlcmhlYWQgb2Yg YWJzdHJhY3Rpb25zIHRvIG1haW50YWluLgo+IEVudW1lcmF0aW9uIG9mIFBDSSBkZXZpY2VzIHdv dWxkIGdlbmVyYXRlIGEgcGNpIGxpc3Qgd2hpY2ggd291bGQgYmUgCj4gYW55d2F5cyBzZXBhcmF0 ZS4KPj4+PiB3aGljaCBhcmUgY29uc3VsdGVkIGFzCj4+Pj4gbmVlZGVkIHdoZW4gcGFzc2luZyB0 aHJvdWdoIGRldmljZXMuIFRoZSBndWVzdCdzICh0aGF0IHdvdWxkIGluY2x1ZGUKPj4+PiBEb20w KSBJT1JUIHdvdWxkIHRoZW4gYmUgZ2VuZXJhdGVkIGNvbXBsZXRlbHkgZnJvbSBzY3JhdGNoLgo+ Pj4+Cj4gSSBoYXZlIGEgZGlmZmVyZW50IG9waW5pb24gaGVyZSwgZG9tMCBJT1JUIHdvdWxkIGlz IG1vc3QgY2FzZXMgYmUgdmVyeSAKPiBjbG9zZSB0byBob3N0IElPUlQgc2FucyBzbW11IG5vZGVz IGFuZCBmZXcgcGxhdGZvcm0gZGV2aWNlcy4KCkFuZCBhbHNvIHdpdGhvdXQgUE1VcyBub2Rlcy4u LiBQb3RlbnRpYWxseSBpbiBhIGxvbmctdGVybSB3ZSBtYXkgd2FudCB0byAKYWRkIG5vZGVzIChp LmUgVmlydHVhbCBQTVUsIHZpcnR1YWwgU01NVS4uLikuIFNvIGl0IG1heSBub3QgYmUgdGhhdCAK Y2xvc2Ugb2YgdGhlIG9yaWdpbmFsIGhvc3QgSU9SVC4KCkhvd2V2ZXIsIHdoZXRoZXIgaXQgaXMg Y2xvc2Ugb3Igbm90IGRvZXMgbm90IG11Y2ggbWF0dGVyIGhlcmUuIFRoZSBnb2FsIAppcyB0byBm dWxseSBzZXBhcmF0ZSB0aGUgcGFyc2luZyBhbmQgdGhlIGdlbmVyYXRpb24uIFNvIHBhcnNpbmcg Y291bGQgYmUgCnJlLXVzZWQgZm9yIG90aGVyIGJpdHMgb2YgWGVuLiBTaW1pbGFybHkgZm9yIHRo ZSBnZW5lcmF0aW9uIGNvZGUuCgo+IEFuZCB3aGljaCBwbGF0Zm9ybSBkZXZpY2VzIHRvIGhpZGUg d291bGQgcHJvYmFibHkgZGVwZW5kIG9uIHRoZSB4ZW4gCj4gY29tbWFuZCBsaW5lLAo+IEZvciBp bnN0YW5jZSBmb3IgZG9tMCB3ZSB3b3VsZCBjb3B5IElUUyBpbmZvcm1hdGlvbiB3aGlsZSBmb3Ig ZG9tVSBpdCAKPiB3b3VsZCBoYXZlIHRvIGJlIGdlbmVyYXRlZCwgc28gc2NyYXRjaCB3b3VsZCBi ZSBtb3JlIGZvciBkb21VLgo+IFdlIGNvdWxkIGhhdmUgYSBjb21tb24gY29kZSBmb3IgY3JlYXRp bmcgSU9SVCBzdHJ1Y3R1cmUgYnV0IGl0IHdvdWxkIGJlIAo+IGEgYml0IGNvbXBsZXggY29kZSB3 aXRoIGxvdCBvZiBhYnN0cmFjdGlvbnMgYW5kIGNhbGxiYWNrcywgc28gSSBzdWdnZXN0IAo+IHRo YXQga2VlcGluZyBjb2RlIHNpbXBsZXIgd291bGQgYmUgYmV0dGVyLgoKSSBhbSBub3Qgc3VyZSB0 byB1bmRlcnN0YW5kIHdoeSB5b3UgdGhpbmsgaXQgd291bGQgY3JlYXRlIHRvbyBtdWNoIAphYnN0 cmFjdGlvbnMuIEFmdGVyIGFsbCB0aGUgSU9SVCBpcyBqdXN0IGEgc2VyaWVzIG9mIG5vZGVzIHdp dGggYSBidW5jaCAKb2YgaW5mb3JtYXRpb25zLiBUaGlzIGNvdWxkIGVhc2lseSBiZSBkZXNjcmli ZWQgaW4gYSBzdHJ1Y3R1cmUgdGhhdCAKd291bGQgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdGFi bGVzLgoKSW4gYW55IGNhc2UsIHdlIHdpbGwgbmVlZCB0aGF0IGZvciBEb21VLiBTbyB3aHkgbm90 IGRvaW5nIGl0IG5vdz8KCj4+Pj4gSSB3b3VsZCBsaWtlIHRvIGhlYXIgeW91ciBvcGluaW9uIG9u IHRoaXMuIEkgd2lsbCB0cnkgdG8gZGlzY3VzcyB0aGUKPj4+PiBmZWFzaWJpbGl0eSBvZiAyKSB3 aXRoIHBlb3BsZSBhdCBDb25uZWN0LiBJdCB3b3VsZCBiZSBnb29kIGlmIHdlIGNvdWxkCj4+Pj4g ZGVjaWRlIHdoZXRoZXIgdGhpcyBpcyB0aGUgd2F5IHRvIGdvIG9yIHdlIHNob3VsZCB1c2UgYSBz b2x1dGlvbiBiYXNlZAo+Pj4+IG9uIHRoaXMgc2VyaWVzLgo+Pgo+PiBBbmRyZSwgU3RlZmFubyBh bmQgSSBoYWQgYSBjaGF0IGR1cmluZyBjb25uZWN0IGFib3V0IGhvdyB3ZSB3YW50IHRvIAo+PiBz ZWUgSU9SVCBzdXBwb3J0IGluIFhlbi4gSW4gdGhlIG5lYXIgZnV0dXJlLCBJT1JUIHdpbGwgYmUg dXNlZCBmb3IgCj4+IGRpZmZlcmVudCBjb21wb25lbnRzIGFjY3Jvc3MgdGhlIGh5cGVydmlzb3Ig KElUUywgU01NVS4uLikgYW5kIGFzIGEgCj4+IHdheSB0bwo+PiBjb21tdW5pY2F0ZSB0aGUgdG9w b2xvZ3kgdG8gdGhlIGd1ZXN0cy4KPiBBcmUgd2UgdGhpbmtpbmcgYWJvdXQgdmlydHVhbCBTTU1V IGhlcmUgYXMgd2VsbD8KCkl0IGlzIGEgcG90ZW50aWFsIGxvbmctdGVybSB1c2FnZS4KCj4+Cj4+ IFRoZSBJT1JUIGZvciB0aGUgaGFyZHdhcmUgZG9tYWluIGlzIGp1c3QgYSBzcGVjaWZpYyBjYXNl IGFzIGl0IGlzIAo+PiBiYXNlZCBwcmUtZXhpc3RpbmcgaW5mb3JtYXRpb24uIEJ1dCBiZWNhdXNl IG9mIHJlbW92aW5nIG5vZGVzIChlLmcgCj4+IFNNTVUgbm9kZXMgYW5kIHByb2JhYmx5IHRoZSBQ TVUgbm9kZXMpLCBpdCBpcyBiYXNpY2FsbHkgYSBmdWxsIHJlLXdyaXRlLgo+Pgo+PiBTbyBJIHdv dWxkIGNvbnNpZGVyIG9mIGZ1bGwgc2VwYXJhdGUgdGhlIGxvZ2ljIG9mIGdlbmVyYXRpbmcgdGhl IElPUlQgCj4+IHRhYmxlIGZyb20gdGhlIGhvc3QgSU9SVCB0YWJsZS4gQnkgdGhhdCBJIG1lYW4g bm90IGJyb3dzaW5nIHRoZSBob3N0IAo+PiBJT1JUIHdoZW4gZ2VuZXJhdGluZyB0aGUgaG9zdC4K Pj4KPiBieSAidGhlIGhvc3QiIHlvdSBtZWFuIGRvbTAgSU9SVCAgPwoKeWVzLgoKPj4gVGhpcyBo YXMgdHdvIGJlbmVmaXRzOgo+PiAgICAgMSkgVGhlIGNvZGUgZ2VuZXJhdGlvbiBjb3VsZCBiZSBy ZS11c2VkIGZvciBnZW5lcmF0aW5nIHRoZSBndWVzdCAKPj4gSU9SVCBsYXRlciBvbi4KPiBTZWUg bXkgY29tbWVudCBhYm92ZQo+PiAgICAgMikgU2VlIDIpIGZyb20gQW5kcmUKPj4gICAgIDMpIFdl IGNvdWxkIGRlY2lkZSBpbiBhIGZpbmVyIGdyYWluIHdoaWNoIGRldmljZXMgKGUuZyBwbGF0Zm9y bSAKPj4gZGV2aWNlKSBEb20wIGNhbiBzZWUuCj4gb2ssCj4+Cj4+IFNvLCBJSE1PLCB3ZSBzaG91 bGQgdGFrZSBhIGRpZmZlcmVudCBhcHByb2FjaCBmcm9tIHRoaXMgc2VyaWVzIGFuZCAKPj4gZXh0 ZW5kaW5nIHRoZSBzY29wZSBvZiBpdC4gUmF0aGVyIHRoYW4gZm9jdXNpbmcgb24gb25seSBJT1JU IGZvciB0aGUgCj4+IGhhcmR3YXJlLCBJIHdvdWxkIGJlIGJldHRlciB0byBzZWUgSU9SVCBhcyBh IHdob2xlLiBJLmUgIGhvdyBJT1JUIHdpbGwgCj4+IGludGVyYWN0IHdpdGggdGhlIGh5cGVydmlz b3I/Cj4+Cj4+IEZvciBpbnN0YW5jZSwgbGlrZWx5IHlvdSB3b3VsZCBuZWVkIHRvIHBhcnNlIHRo ZSBJT1JUIGluIHF1aXRlIGEgZmV3IAo+PiBwbGFjZXMgaW4gWGVuLiBJdCB3b3VsZCBiZSBiZXR0 ZXIgdG8gZ2V0IElPUlQgcGFyc2VkIG9ubHkgb25jZSBhbmQgCj4+IHN0b3JlIHRoZSBpbmZvcm1h dGlvbiBpbiBYZW4gbGlrZSBkYXRhLXN0cnVjdHVyZXMuCj4+Cj4gSSBhbSB0aGlua2luZyBvZiBy ZXVzaW5nIG11Y2ggb2YgQUNQSSB0YWJsZXMgZm9yIHRoYXQgYW5kIGludHJvZHVjaW5nIAo+IGxl c3MgYWJzdHJhY3Rpb25zLgo+PiBUaGlzIHJlcXVpcmUgbW9yZSB3b3JrIHRoYW4gdGhpcyBjdXJy ZW50IHNjb3BlIG9mIHRoaXMgc2VyaWVzLiBCdXQgSSAKPj4gdGhpbmsgaXQgd291bGQgaGVsZnVs IGZvciBmdXR1cmUgd29yayBzdWNoIGFzIFBDSSBwYXNzdGhyb3VnaCBzdXBwb3J0Lgo+Pgo+PiBB bnkgb3BpbmlvbnM/Cj4+Cj4gZm9yIERvbVVzIGl0IGlzIHRpZWQgdG8gUENJIFBULCBzbyBib3Ro IGRlc2lnbiBzaG91bGQgZXZvbHZlIHRvZ2V0aGVyLgoKV2h5IHRoYXQ/IFRoZSBnZW5lcmF0aW9u IG9mIElPUlQgaXMgcHJldHR5IHN0YW5kYXJkLgoKQ2hlZXJzLAoKLS0gCkp1bGllbiBHcmFsbAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==