From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH RESEND v5 01/24] docs: create L2 Cache Allocation Technology (CAT) feature document Date: Mon, 30 Jan 2017 13:10:33 -0500 Message-ID: <20170130181033.GA10662@char.us.ORACLE.com> References: <1484805686-7249-1-git-send-email-yi.y.sun@linux.intel.com> <1484805686-7249-2-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cYGPq-00069o-AL for xen-devel@lists.xenproject.org; Mon, 30 Jan 2017 18:10:58 +0000 Content-Disposition: inline In-Reply-To: <1484805686-7249-2-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Yi Sun Cc: wei.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBKYW4gMTksIDIwMTcgYXQgMDI6MDE6MDNQTSArMDgwMCwgWWkgU3VuIHdyb3RlOgo+ IFRoaXMgcGF0Y2ggY3JlYXRlcyBMMiBDQVQgZmVhdHVyZSBkb2N1bWVudCBpbiBkb2MvZmVhdHVy ZXMvLgo+IEl0IGRlc2NyaWJlcyBkZXRhaWxzIG9mIEwyIENBVC4KClBlcmhhcHMgYWxzbyBtZW50 aW9uIHdoYXQgaXMgdGhlIHRpdGxlIGluIHRoZSBJbnRlbCBTRE0gCnRvIGxvb2sgaW50byBhcyB3 ZWxsPwpQZXJoYXBzOgoiU2VlIEludGVsIFJlc291cmNlIERpcmVjdG9yIFRlY2hub2xvZ3kgTW9u aXRvcmluZyBGZWF0dXJlcyIKaW4gdGhlIEludGVsIFNETS4iCgo+IAo+IFNpZ25lZC1vZmYtYnk6 IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkb2NzL2ZlYXR1cmVz L2ludGVsX3Bzcl9sMl9jYXQucGFuZG9jIHwgMzQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiAgMSBmaWxlIGNoYW5nZWQsIDM0NyBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBkb2NzL2ZlYXR1cmVzL2ludGVsX3Bzcl9sMl9jYXQucGFuZG9jCj4gCj4gZGlm ZiAtLWdpdCBhL2RvY3MvZmVhdHVyZXMvaW50ZWxfcHNyX2wyX2NhdC5wYW5kb2MgYi9kb2NzL2Zl YXR1cmVzL2ludGVsX3Bzcl9sMl9jYXQucGFuZG9jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwLi43N2JkNjFmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RvY3MvZmVhdHVy ZXMvaW50ZWxfcHNyX2wyX2NhdC5wYW5kb2MKPiBAQCAtMCwwICsxLDM0NyBAQAo+ICslIEludGVs IEwyIENhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neSAoTDIgQ0FUKSBGZWF0dXJlCj4gKyUgUmV2 aXNpb24gMS4wCj4gKwo+ICtcY2xlYXJwYWdlCj4gKwo+ICsjIEJhc2ljcwo+ICsKPiArLS0tLS0t LS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4gKyAgICAgICAgIFN0YXR1czogKipUZWNoIFByZXZpZXcqKgo+ICsKPiArQXJjaGl0 ZWN0dXJlKHMpOiBJbnRlbCB4ODYKPiArCj4gKyAgIENvbXBvbmVudChzKTogSHlwZXJ2aXNvciwg dG9vbHN0YWNrCj4gKwo+ICsgICAgICAgSGFyZHdhcmU6IEF0b20gY29kZW5hbWUgR29sZG1vbnQg YW5kIGJleW9uZCBDUFVzCj4gKy0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArIyBPdmVydmlldwo+ICsKPiAr TDIgQ0FUIGFsbG93cyBhbiBPUyBvciBIeXBlcnZpc29yL1ZNTSB0byBjb250cm9sIGFsbG9jYXRp b24gb2YgYQo+ICtDUFUncyBzaGFyZWQgTDIgY2FjaGUgYmFzZWQgb24gYXBwbGljYXRpb24gcHJp b3JpdHkgb3IgQ2xhc3Mgb2YgU2VydmljZQo+ICsoQ09TKS4gRWFjaCBDTE9TIGlzIGNvbmZpZ3Vy ZWQgdXNpbmcgY2FwYWNpdHkgYml0bWFza3MgKENCTSkgd2hpY2gKPiArcmVwcmVzZW50IGNhY2hl IGNhcGFjaXR5IGFuZCBpbmRpY2F0ZSB0aGUgZGVncmVlIG9mIG92ZXJsYXAgYW5kCgppbmRpY2F0 ZXMKPiAraXNvbGF0aW9uIGJldHdlZW4gY2xhc3Nlcy4gT25jZSBMMiBDQVQgaXMgY29uZmlndXJl ZCwgdGhlIHByb2Nlc3Nvcgo+ICthbGxvd3MgYWNjZXNzIHRvIHBvcnRpb25zIG9mIEwyIGNhY2hl IGFjY29yZGluZyB0byB0aGUgZXN0YWJsaXNoZWQKPiArY2xhc3Mgb2Ygc2VydmljZS4KPiArCj4g KyMjIFRlcm1pbm9sb2d5Cj4gKwo+ICsqIENBVCAgICAgICAgIENhY2hlIEFsbG9jYXRpb24gVGVj aG5vbG9neQo+ICsqIENCTSAgICAgICAgIENhcGFjaXR5IEJpdE1hc2tzCj4gKyogQ0RQICAgICAg ICAgQ29kZSBhbmQgRGF0YSBQcmlvcml0aXphdGlvbgo+ICsqIENPUy9DTE9TICAgIENsYXNzIG9m IFNlcnZpY2UKPiArKiBNU1JzICAgICAgICBNYWNoaW5lIFNwZWNpZmljIFJlZ2lzdGVycwo+ICsq IFBTUiAgICAgICAgIEludGVsIFBsYXRmb3JtIFNoYXJlZCBSZXNvdXJjZQo+ICsqIFZNTSAgICAg ICAgIFZpcnR1YWwgTWFjaGluZSBNb25pdG9yCj4gKwo+ICsjIFVzZXIgZGV0YWlscwo+ICsKPiAr KiBGZWF0dXJlIEVuYWJsaW5nOgo+ICsKPiArICBBZGQgInBzcj1jYXQiIHRvIGJvb3QgbGluZSBw YXJhbWV0ZXIgdG8gZW5hYmxlIGFsbCBzdXBwb3J0ZWQgbGV2ZWwgQ0FUCj4gKyAgZmVhdHVyZXMu Cj4gKwo+ICsqIHhsIGludGVyZmFjZXM6Cj4gKwo+ICsgIDEuIGBwc3ItY2F0LXNob3cgW09QVElP TlNdIGRvbWFpbi1pZGA6Cj4gKwo+ICsgICAgIFNob3cgZG9tYWluIEwyIG9yIEwzIENBVCBDQk0u Cj4gKwo+ICsgICAgIE5ldyBvcHRpb24gYC1sYCBpcyBhZGRlZC4KPiArICAgICBgLWwyYDogU2hv dyBjYm0gZm9yIEwyIGNhY2hlLgo+ICsgICAgIGAtbDNgOiBTaG93IGNibSBmb3IgTDMgY2FjaGUu Cj4gKwo+ICsgICAgIElmIG5laXRoZXIgYC1sMmAgbm9yIGAtbDNgIGlzIGdpdmVuLCBzaG93IGJv dGggb2YgdGhlbS4gSWYgYW55IG9uZQo+ICsgICAgIGlzIG5vdCBzdXBwb3J0ZWQsIHdpbGwgcHJp bnQgZXJyb3IgaW5mby4KPiArCj4gKyAgMi4gYHBzci1jYXQtY2JtLXNldCBbT1BUSU9OU10gZG9t YWluLWlkIGNibWA6Cj4gKwo+ICsgICAgIFNldCBkb21haW4gTDIgb3IgTDMgQ0JNLgo+ICsKPiAr ICAgICBOZXcgb3B0aW9uIGAtbGAgaXMgYWRkZWQuCj4gKyAgICAgYC1sMmA6IFNwZWNpZnkgY2Jt IGZvciBMMiBjYWNoZS4KPiArICAgICBgLWwzYDogU3BlY2lmeSBjYm0gZm9yIEwzIGNhY2hlLgo+ ICsKPiArICAgICBJZiBuZWl0aGVyIGAtbDJgIG5vciBgLWwzYCBpcyBnaXZlbiwgbGV2ZWwgMyBp cyB0aGUgZGVmYXVsdCBvcHRpb24uCj4gKwo+ICsgIDMuIGBwc3ItaHdpbmZvIFtPUFRJT05TXWA6 Cj4gKwo+ICsgICAgIFNob3cgTDIgJiBMMyBDQVQgSFcgaW5mb3JtYXRpb25zIG9uIGV2ZXJ5IHNv Y2tldC4KPiArCj4gKyMgVGVjaG5pY2FsIGRldGFpbHMKPiArCj4gK0wyIENBVCBpcyBhIG1lbWJl ciBvZiBJbnRlbCBQU1IgZmVhdHVyZXMgYW5kIHBhcnQgb2YgQ0FULCBpdCBzaGFyZXMKPiArc29t ZSBiYXNlIFBTUiBpbmZyYXN0cnVjdHVyZSBpbiBYZW4uCj4gKwo+ICsjIyBIYXJkd2FyZSBwZXJz cGVjdGl2ZQo+ICsKPiArTDIgQ0FUIGRlZmluZXMgYSBuZXcgcmFuZ2UgTVNScyB0byBhc3NpZ24g ZGlmZmVyZW50IEwyIGNhY2hlIGFjY2VzcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4t ICdvZicKCj4gK3BhdHRlcm5zIHdoaWNoIGFyZSBrbm93biBhcyBDQk1zLCBlYWNoIENCTSBpcyBh c3NvY2lhdGVkIHdpdGggYSBDT1MuCj4gKwo+ICtgYGAKPiArCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4g KyAgIElBMzJfUFFSX0FTU09DICAgICAgIHwgTVNSIChwZXIgc29ja2V0KSAgICAgICAgICAgfCAg ICBBZGRyZXNzICAgICB8Cj4gKyArLS0tLSstLS0rLS0tLS0tLSsgICAgICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4gKyB8ICAgIHxDT1N8ICAgICAgIHwg ICAgIHwgSUEzMl9MMl9RT1NfTUFTS18wICAgICAgICAgfCAgICAgMHhEMTAgICAgICB8Cj4gKyAr LS0tLSstLS0rLS0tLS0tLSsgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4gKyAgICAgICAg4pSULS0tLS0tLS0tLS0tLT4gfCAuLi4gICAgICAgICAg ICAgICAgICAgICAgICB8ICAuLi4gICAgICAgICAgIHwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArICAg ICAgICAgICAgICAgICAgICAgICAgfCBJQTMyX0wyX1FPU19NQVNLX24gICAgICAgICB8IDB4RDEw K24gKG48NjQpIHwKPiArICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPiArYGBgCj4gKwo+ICtXaGVuIGNvbnRleHQg c3dpdGNoIGhhcHBlbnMsIHRoZSBDT1Mgb2YgVkNQVSBpcyB3cml0dGVuIHRvIHBlci10aHJlYWQK PiArTVNSIGBJQTMyX1BRUl9BU1NPQ2AsIGFuZCB0aGVuIGhhcmR3YXJlIGVuZm9yY2VzIEwyIGNh Y2hlIGFsbG9jYXRpb24KPiArYWNjb3JkaW5nIHRvIHRoZSBjb3JyZXNwb25kaW5nIENCTS4KPiAr Cj4gKyMjIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBMMiBDQVQgYW5kIEwzIENBVC9DRFAKPiAr Cj4gK0wyIENBVCBpcyBpbmRlcGVuZGVudCBvZiBMMyBDQVQvQ0RQLCB3aGljaCBtZWFucyBMMiBD QVQgd291bGQgYmUgZW5hYmxlZAo+ICt3aGlsZSBMMyBDQVQvQ0RQIGlzIGRpc2FibGVkLCBvciBM MiBDQVQgYW5kIEwzIENBVC9DRFAgYXJlIGFsbCBlbmFibGVkLgoKcy9hbGwvYm90aC8KCj4gKwo+ ICtMMiBDQVQgdXNlcyBhIG5ldyByYW5nZSBDQk1zIGZyb20gMHhEMTAgfiAweEQxMCtuIChuPDY0 KSwgZm9sbG93aW5nIGJ5CgpzL2J5Ly8KPiArdGhlIEwzIENBVC9DRFAgQ0JNcywgYW5kIHN1cHBv cnRzIHNldHRpbmcgZGlmZmVyZW50IEwyIGNhY2hlIGFjY2Vzc2luZwo+ICtwYXR0ZXJucyBmcm9t IEwzIGNhY2hlLiBMaWtlIEwzIENBVC9DRFAgcmVxdWlyZW1lbnQsIHRoZSBiaXRzIG9mIENCTSBv Zgo+ICtMMiBDQVQgbXVzdCBiZSBjb250aW51b3VzIHRvby4KPiArCj4gK04uQi4gTDIgQ0FUIGFu ZCBMMyBDQVQvQ0RQIHNoYXJlIHRoZSBzYW1lIENPUyBmaWVsZCBpbiB0aGUgc2FtZQo+ICthc3Nv Y2lhdGUgcmVnaXN0ZXIgYElBMzJfUFFSX0FTU09DYCwgd2hpY2ggbWVhbnMgb25lIENPUyBhc3Nv Y2lhdGVzIHRvIGEKCnMvYXNzb2NpYXRlcyB0byBhL2lzIGFzc29jaWF0ZWQgd2l0aCBhLwoKPiAr cGFpciBvZiBMMiBDQk0gYW5kIEwzIENCTS4KPiArCj4gK0Jlc2lkZXMsIHRoZSBtYXggQ09TIG9m IEwyIENBVCBtYXkgYmUgZGlmZmVyZW50IGZyb20gTDMgQ0FUL0NEUCAob3IKPiArb3RoZXIgUFNS IGZlYXR1cmVzIGluIGZ1dHVyZSkuIEluIHNvbWUgY2FzZXMsIGEgVk0gaXMgcGVybWl0dGVkIHRv IGhhdmUgYQo+ICtDT1MgdGhhdCBpcyBiZXlvbmQgb25lIChvciBtb3JlKSBvZiBQU1IgZmVhdHVy ZXMgYnV0IHdpdGhpbiB0aGUgb3RoZXJzLgo+ICtGb3IgaW5zdGFuY2UsIGxldCdzIGFzc3VtZSB0 aGUgbWF4IENPUyBvZiBMMiBDQVQgaXMgOCBidXQgdGhlIG1heCBDT1Mgb2YKPiArTDMgQ0FUIGlz IDE2LCB3aGVuIGEgVk0gaXMgYXNzaWduZWQgOSBhcyBDT1MsIHRoZSBMMyBDQk0gYXNzb2NpYXRl ZCB0bwo+ICtDT1MgOSB3b3VsZCBiZSBlbmZvcmNlZCwgYnV0IGZvciBMMiBDQVQsIHRoZSBiZWhh dmlvciBpcyBmdWxseSBvcGVuIChubwo+ICtsaW1pdCkgc2luY2UgQ09TIDkgaXMgYmV5b25kIHRo ZSBtYXggQ09TICg4KSBvZiBMMiBDQVQuCgoKVGhhbmsgeW91IGZvciBtZW50aW9uaW5nIHRoZSBh Ym92ZSEKCj4gKwo+ICsjIyBEZXNpZ24gT3ZlcnZpZXcKPiArCj4gKyogQ29yZSBDT1MvQ0JNIGFz c29jaWF0aW9uCj4gKwo+ICsgIFdoZW4gZW5mb3JjaW5nIEwyIENBVCwgYWxsIGNvcmVzIG9mIGRv bWFpbnMgaGF2ZSB0aGUgc2FtZSBkZWZhdWx0Cj4gKyAgQ09TIChDT1MwKSB3aGljaCBhc3NvY2lh dGVkIHRvIHRoZSBmdWxseSBvcGVuIENCTSAoYWxsIG9uZXMgYml0bWFzaykKICAgICAgICAgICAg ICAgICAgICAgXi1pcwo+ICsgIHRvIGFjY2VzcyBhbGwgTDIgY2FjaGUuIFRoZSBkZWZhdWx0IENP UyBpcyB1c2VkIG9ubHkgaW4gaHlwZXJ2aXNvcgo+ICsgIGFuZCBpcyB0cmFuc3BhcmVudCB0byB0 b29sIHN0YWNrIGFuZCB1c2VyLgo+ICsKPiArICBTeXN0ZW0gYWRtaW5pc3RyYXRvciBjYW4gY2hh bmdlIFBTUiBhbGxvY2F0aW9uIHBvbGljeSBhdCBydW50aW1lIGJ5Cj4gKyAgdG9vbCBzdGFjay4g U2luY2UgTDIgQ0FUIHNoYXJlIENPUyB3aXRoIEwzIENBVC9DRFAsIGEgQ09TIGNvcnJlc3BvbmRz Cj4gKyAgdG8gYSAyLXR1cGxlLCBsaWtlIFtMMiBDQk0sIEwzIENCTV0gd2l0aCBvbmx5LUNBVCBl bmFibGVkLCB3aGVuIENEUAo+ICsgIGlzIGVuYWJsZWQsIG9uZSBDT1MgY29ycmVzcG9uZHMgdG8g YSAzLXR1cGxlLCBsaWtlIFtMMiBDQk0sCj4gKyAgTDMgQ29kZV9DQk0sIEwzIERhdGFfQ0JNXS4g SWYgbmVpdGhlciBMMyBDQVQgbm9yIEwzIENEUCBpcyBlbmFibGVkLAo+ICsgIHRoaW5ncyB3b3Vs ZCBiZSBlYXNpZXIsIG9uZSBDT1MgY29ycmVzcG9uZHMgdG8gb25lIEwyIENCTS4KPiArCj4gKyog VkNQVSBzY2hlZHVsZQo+ICsKPiArICBUaGlzIHBhcnQgcmV1c2VzIEwzIENBVCBDT1MgaW5mcmFz dHJ1Y3R1cmUuCj4gKwo+ICsqIE11bHRpLXNvY2tldHMKPiArCj4gKyAgRGlmZmVyZW50IHNvY2tl dHMgbWF5IGhhdmUgZGlmZmVyZW50IEwyIENBVCBjYXBhYmlsaXR5IChlLmcuIG1heCBDT1MpCj4g KyAgYWx0aG91Z2ggaXQgaXMgY29uc2lzdGVudCBvbiB0aGUgc2FtZSBzb2NrZXQuIFNvIHRoZSBj YXBhYmlsaXR5IG9mCj4gKyAgcGVyLXNvY2tldCBMMiBDQVQgaXMgc3BlY2lmaWVkLgo+ICsKPiAr IyMgSW1wbGVtZW50YXRpb24gRGVzY3JpcHRpb24KPiArCj4gKyogSHlwZXJ2aXNvciBpbnRlcmZh Y2VzOgo+ICsKPiArICAxLiBCb290IGxpbmUgcGFyYW1ldGVyICJwc3I9Y2F0IiBub3cgd2lsbCBl bmFibGUgTDIgQ0FUIGFuZCBMMwo+ICsgICAgIENBVCBpZiBoYXJkd2FyZSBzdXBwb3J0ZWQuCj4g Kwo+ICsgIDIuIFNZU0NUTDoKPiArICAgICAgICAgIC0gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9s Ml9pbmZvOiBHZXQgTDIgQ0FUIGluZm9ybWF0aW9uLgo+ICsKPiArICAzLiBET01DVEw6Cj4gKyAg ICAgICAgICAtIFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDJfQ0JNOiBHZXQgTDIgQ0JNIGZv ciBhIGRvbWFpbi4KPiArICAgICAgICAgIC0gWEVOX0RPTUNUTF9QU1JfQ0FUX09QX1NFVF9MMl9D Qk06IFNldCBMMiBDQk0gZm9yIGEgZG9tYWluLgo+ICsKPiArKiB4bCBpbnRlcmZhY2VzOgo+ICsK PiArICAxLiBwc3ItY2F0LXNob3cgLWwyIGRvbWFpbi1pZAo+ICsgICAgICAgICAgU2hvdyBMMiBj Ym0gZm9yIGEgZG9tYWluLgo+ICsgICAgICAgICAgPT4gWEVOX1NZU0NUTF9QU1JfQ0FUX2dldF9s Ml9pbmZvIC8KPiArICAgICAgICAgICAgIFhFTl9ET01DVExfUFNSX0NBVF9PUF9HRVRfTDJfQ0JN Cj4gKwo+ICsgIDIuIHBzci1tYmEtc2V0IC1sMiBkb21haW4taWQgY2JtCj4gKyAgICAgICAgICBT ZXQgTDIgY2JtIGZvciBhIGRvbWFpbi4KPiArICAgICAgICAgID0+IFhFTl9ET01DVExfUFNSX0NB VF9PUF9TRVRfTDJfQ0JNCj4gKwo+ICsgIDMuIHBzci1od2luZm8KPiArICAgICAgICAgIFNob3cg UFNSIEhXIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcgTDIgQ0FUCj4gKyAgICAgICAgICA9PiBYRU5f U1lTQ1RMX1BTUl9DQVRfZ2V0X2wyX2luZm8KPiArCj4gKyogS2V5IGRhdGEgc3RydWN0dXJlOgo+ ICsKPiArICAgMS4gRmVhdHVyZSBIVyBpbmZvCj4gKwo+ICsgICAgICBgYGAKPiArICAgICAgc3Ry dWN0IHBzcl9jYXRfaHdfaW5mbyB7Cj4gKyAgICAgICAgICB1bnNpZ25lZCBpbnQgY2JtX2xlbjsK PiArICAgICAgICAgIHVuc2lnbmVkIGludCBjb3NfbWF4Owo+ICsgICAgICB9Owo+ICsgICAgICBg YGAKPiArCj4gKyAgICAgIC0gTWVtYmVyIGBjYm1fbGVuYAo+ICsKPiArICAgICAgICBgY2JtX2xl bmAgaXMgb25lIG9mIHRoZSBoYXJkd2FyZSBpbmZvIG9mIENBVC4KCkNvdWxkIHlvdSBleHBhbmQ/ IElzIGl0IHRoZSBtYXggbnVtYmVyIG9mIGJpdHMgeW91IGNhbiBzZXQ/IAoKPiArCj4gKyAgICAg IC0gTWVtYmVyIGBjb3NfbWF4YAo+ICsKPiArICAgICAgICBgY29zX21heGAgaXMgb25lIG9mIHRo ZSBoYXJkd2FyZSBpbmZvIG9mIENBVC4KPiArCj4gKyAgIDIuIEZlYXR1cmUgbGlzdCBub2RlCj4g Kwo+ICsgICAgICBgYGAKPiArICAgICAgc3RydWN0IGZlYXRfbm9kZSB7Cj4gKyAgICAgICAgICBl bnVtIHBzcl9mZWF0X3R5cGUgZmVhdHVyZTsKPiArICAgICAgICAgIHN0cnVjdCBmZWF0X29wcyBv cHM7Cj4gKyAgICAgICAgICBzdHJ1Y3QgcHNyX2NhdF9od19pbmZvIGluZm87Cj4gKyAgICAgICAg ICB1aW50NjRfdCBjb3NfcmVnX3ZhbFtNQVhfQ09TX1JFR19OVU1dOwo+ICsgICAgICAgICAgc3Ry dWN0IGxpc3RfaGVhZCBsaXN0Owo+ICsgICAgICB9Owo+ICsgICAgICBgYGAKPiArCj4gKyAgICAg IFdoZW4gYSBQU1IgZW5mb3JjZW1lbnQgZmVhdHVyZSBpcyBlbmFibGVkLCBpdCB3aWxsIGJlIGFk ZGVkIGludG8gYQo+ICsgICAgICBmZWF0dXJlIGxpc3QuIFRoZSBoZWFkIG9mIHRoZSBsaXN0IGlz IGNyZWF0ZWQgaW4gcHNyIGluaXRpYWxpemF0aW9uLgo+ICsKPiArICAgICAgLSBNZW1iZXIgYGZl YXR1cmVgCj4gKwo+ICsgICAgICAgIGBmZWF0dXJlYCBpcyBhbiBpbnRlZ2VyIG51bWJlciwgdG8g aW5kaWNhdGUgd2hpY2ggZmVhdHVyZSB0aGUgbGlzdCBlbnRyeQo+ICsgICAgICAgIGNvcnJlc3Bv bmRzIHRvLgo+ICsKPiArICAgICAgLSBNZW1iZXIgYG9wc2AKPiArCj4gKyAgICAgICAgYG9wc2Ag bWFpbnRhaW5zIGEgY2FsbGJhY2sgZnVuY3Rpb24gbGlzdCBvZiB0aGUgZmVhdHVyZS4gSXQgd2ls bCBiZSBpbnRyb2R1Y2VkCj4gKyAgICAgICAgaW4gZGV0YWlscyBsYXRlci4KCj8/PyBMaWtlIGJ5 IGVhY2ggcGF0Y2ggdG8gdGhpcyBkb2N1bWVudD8KCj4gKwo+ICsgICAgICAtIE1lbWJlciBgaW5m b2AKPiArCj4gKyAgICAgICAgYGluZm9gIG1haW50YWlucyB0aGUgZmVhdHVyZSBIVyBpbmZvcm1h dGlvbiB3aGljaCBjYW4gYmUgZ290IHRocm91Z2gKCnMvd2hpY2ggYW4gYmUgZ290IHRocm91Z2gv d2hpY2ggYXJlIHByb3ZpZGVkIHRvLyAKClBlcmhhcHM/Cj4gKyAgICAgICAgcHNyX2h3aW5mbyBj b21tYW5kLgo+ICsKPiArICAgICAgLSBNZW1iZXIgYGNvc19yZWdfdmFsYAo+ICsKPiArICAgICAg ICBgY29zX3JlZ192YWxgIGlzIGFuIGFycmF5IHRvIG1haW50YWluIHRoZSB2YWx1ZSBzZXQgaW4g YWxsIENPUyByZWdpc3RlcnMgb2YKPiArICAgICAgICB0aGUgZmVhdHVyZS4KPiArCj4gKyAgIDMu IFBlci1zb2NrZXQgUFNSIGZlYXR1cmVzIGluZm9ybWF0aW9uIHN0cnVjdHVyZQo+ICsKPiArICAg ICAgYGBgCj4gKyAgICAgIHN0cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZvIHsKPiArICAgICAgICAg IHVuc2lnbmVkIGludCBmZWF0X21hc2s7Cj4gKyAgICAgICAgICB1bnNpZ25lZCBpbnQgbnJfZmVh dDsKPiArICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZmVhdF9saXN0Owo+ICsgICAgICAgICAg dW5zaWduZWQgaW50IGNvc19yZWZbTUFYX0NPU19SRUdfTlVNXTsKPiArICAgICAgICAgIHNwaW5s b2NrX3QgcmVmX2xvY2s7Cj4gKyAgICAgIH07Cj4gKyAgICAgIGBgYAo+ICsKPiArICAgICAgV2Ug Y29sbGVjdCBhbGwgUFNSIGFsbG9jYXRpb24gZmVhdHVyZXMgaW5mb3JtYXRpb24gb2YgYSBzb2Nr ZXQgaW4KPiArICAgICAgdGhpcyBgc3RydWN0IHBzcl9jYXRfc29ja2V0X2luZm9gLgo+ICsKPiAr ICAgICAgLSBNZW1iZXIgYGZlYXRfbWFza2AKPiArCj4gKyAgICAgICAgYGZlYXRfbWFza2AgaXMg YSBiaXRtYXAsIHRvIGluZGljYXRlIHdoaWNoIGZlYXR1cmUgaXMgZW5hYmxlZCBvbgo+ICsgICAg ICAgIGN1cnJlbnQgc29ja2V0LiBXZSBkZWZpbmUgYGZlYXRfbWFza2AgYml0bWFwIGFzOgo+ICsK PiArICAgICAgICBiaXQgMH4xOiBMMyBDQVQgc3RhdHVzLCBbMDFdIHN0YW5kcyBmb3IgTDMgQ0FU IG9ubHkgYW5kIFsxMF0KPiArICAgICAgICAgICAgICAgICBzdGFuZHMgZm9yIEwzIENEUCBpcyBl bmFsYmVkLgoKZW5hYmxlZAo+ICsKPiArICAgICAgICBiaXQgMjogTDIgQ0FUIHN0YXR1cy4KCkFu ZCB0aGUgJ25yX2ZlYXQnIGlzIDMgPwoKPiArCj4gKyAgICAgIC0gTWVtYmVyIGBjb3NfcmVmYAo+ ICsKPiArICAgICAgICBgY29zX3JlZmAgaXMgYW4gYXJyYXkgd2hpY2ggbWFpbnRhaW5zIHRoZSBy ZWZlcmVuY2Ugb2Ygb25lIENPUy4KCklzIGl0IHNhZmUgdG8gYXNzdW1lIHRoYXQgdGhpcyBtYXBz IHRvICdjb3NfcmVnX3ZhbCcgPyBJZiBzbyB5b3UgbWF5CndhbnQgdG8gbWVudGlvbiB0aGF0LgoK PiArICAgICAgICBJZiB0aGUgQ09TIGlzIHVzZWQgYnkgb25lIGRvbWFpbiwgdGhlIHJlZmVyZW5j ZSB3aWxsIGluY3JlYXNlIG9uZS4KCnMvb25lL2J5IG9uZS8KCj4gKyAgICAgICAgSWYgYSBkb21h aW4gcmVsZWFzZXMgdGhlIENPUywgdGhlIHJlZmVyZW5jZSB3aWxsIGRlY3JlYXNlIG9uZS4gVGhl CgpzL2RlY3JlYXNlIG9uZS9kZWNyZWFzZSBieSBvbmUvCj4gKyAgICAgICAgYXJyYXkgaXMgaW5k ZXhlZCBieSBDT1MuCj4gKwo+ICsgICA0LiBGZWF0dXJlIG9wZXJhdGlvbiBmdW5jdGlvbnMgc3Ry dWN0dXJlCj4gKwo+ICsgICAgICBgYGAKPiArICAgICAgc3RydWN0IGZlYXRfb3BzIHsKPiArICAg ICAgICAgIHZvaWQgKCppbml0X2ZlYXR1cmUpKHVuc2lnbmVkIGludCBlYXgsIHVuc2lnbmVkIGlu dCBlYngsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZWN4 LCB1bnNpZ25lZCBpbnQgZWR4LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGZlYXRfbm9kZSAqZmVhdCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBwc3JfY2F0X3NvY2tldF9pbmZvICppbmZvKTsKPiArICAgICAgICAgIGludCAoKmdldF9m ZWF0X2luZm8pKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIGVudW0gY2JtX3R5cGUgdHlw ZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdFtdLCB1aW50 MzJfdCBhcnJheV9sZW4pOwo+ICsgICAgICAgICAgaW50ICgqZ2V0X3ZhbCkoY29uc3Qgc3RydWN0 IGZlYXRfbm9kZSAqZmVhdCwgdW5zaWduZWQgaW50IGNvcywKPiArICAgICAgICAgICAgICAgICAg ICAgICAgIGVudW0gY2JtX3R5cGUgdHlwZSwgdWludDY0X3QgKnZhbCk7Cj4gKyAgICAgICAgICB1 bnNpZ25lZCBpbnQgKCpnZXRfbWF4X2Nvc19tYXgpKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZl YXQpOwo+ICsgICAgICAgICAgdW5zaWduZWQgaW50ICgqZ2V0X2Nvc19udW0pKGNvbnN0IHN0cnVj dCBmZWF0X25vZGUgKmZlYXQpOwo+ICsgICAgICAgICAgaW50ICgqZ2V0X29sZF92YWwpKHVpbnQ2 NF90IHZhbFtdLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBm ZWF0X25vZGUgKmZlYXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IG9sZF9jb3MpOwo+ICsgICAgICAgICAgaW50ICgqc2V0X25ld192YWwpKHVpbnQ2NF90IHZh bFtdLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25v ZGUgKmZlYXQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9s ZF9jb3MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlwZSB0eXBl LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IG0pOwo+ICsgICAgICAg ICAgaW50ICgqY29tcGFyZV92YWwpKGNvbnN0IHVpbnQ2NF90IHZhbFtdLCBjb25zdCBzdHJ1Y3Qg ZmVhdF9ub2RlICpmZWF0LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBjb3MsIGJvb2wgKmZvdW5kKTsKPiArICAgICAgICAgIHVuc2lnbmVkIGludCAoKmdldF9j b3NfbWF4X2Zyb21fdHlwZSkoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjYm1fdHlwZSB0 eXBlKTsKPiArICAgICAgICAgIHVuc2lnbmVkIGludCAoKmV4Y2VlZHNfY29zX21heCkoY29uc3Qg dWludDY0X3QgdmFsW10sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3MpOwo+ICsgICAgICAgICAgaW50 ICgqd3JpdGVfbXNyKSh1bnNpZ25lZCBpbnQgY29zLCBjb25zdCB1aW50NjRfdCB2YWxbXSwKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCk7Cj4gKyAg ICAgIH07Cj4gKyAgICAgIGBgYAo+ICsKPiArICAgICAgV2UgYWJzdHJhY3QgYWJvdmUgY2FsbGJh Y2sgZnVuY3Rpb25zIHRvIGVuY2Fwc3VsYXRlIHRoZSBmZWF0dXJlIHNwZWNpZmljCj4gKyAgICAg IGJlaGF2aW9ycyBpbnRvIHRoZW0uIFRoZW4sIGl0IGlzIGVhc3kgdG8gYWRkIGEgbmV3IGZlYXR1 cmUuIFdlIGp1c3QgbmVlZDoKPiArICAgICAgICAgIDEpIEltcGxlbWVudCBzdWNoIG9wcyBhbmQg Y2FsbGJhY2sgZnVuY3Rpb25zIGZvciBldmVyeSBmZWF0dXJlLgo+ICsgICAgICAgICAgMikgUmVn aXN0ZXIgdGhlIG9wcyBpbnRvIGBzdHJ1Y3QgZmVhdF9ub2RlYC4KPiArICAgICAgICAgIDMpIEFk ZCB0aGUgZmVhdHVyZSBpbnRvIGZlYXR1cmUgbGlzdCBkdXJpbmcgQ1BVIGluaXRpYWxpemF0aW9u Lgo+ICsKPiArIyBMaW1pdGF0aW9ucwo+ICsKPiArTDIgQ0FUIGNhbiBvbmx5IHdvcmsgb24gSFcg d2hpY2ggZW5hYmxlcyBpdChjaGVjayBieSBDUFVJRCkuIFNvIGZhciwgdGhlcmUKPiAraXMgbm8g SFcgZW5hYmxlcyBib3RoIEwyIENBVCBhbmQgTDMgQ0FUL0NEUC4gQnV0IFNXIGltcGxlbWVudGF0 aW9uIGhhcyBjb25zaWRlcmVkCgpzL25vIEhXL25vIEhXIHdoaWNoLwo+ICtzdWNoIHNjZW5hcmlv IHRvIGVuYWJsZSBib3RoIEwyIENBVCBhbmQgTDMgQ0FUL0NEUC4KPiArCj4gKyMgVGVzdGluZwo+ ICsKPiArTDIgQ0FUIHVzZXMgc2FtZSB4bCBpbnRlcmZhY2VzIGFzIEwzIENBVC9DRFAuIFNvLCB3 ZSBjYW4gZXhlY3V0ZSB0aGVzZQo+ICtjb21tYW5kcyB0byB2ZXJpZnkgTDIgQ0FUIGFuZCBMMyBD QVQvQ0RQIG9uIGRpZmZlcmVudCBIV3Mgc3VwcG9ydCB0aGVtLgo+ICsKPiArRm9yIGV4YW1wbGU6 Cj4gKyAgICByb290QDp+JCB4bCBwc3ItaHdpbmZvIC0tY2F0Cj4gKyAgICBDYWNoZSBBbGxvY2F0 aW9uIFRlY2hub2xvZ3kgKENBVCk6IEwyCj4gKyAgICBTb2NrZXQgSUQgICAgICAgOiAwCj4gKyAg ICBNYXhpbXVtIENPUyAgICAgOiAzCj4gKyAgICBDQk0gbGVuZ3RoICAgICAgOiA4Cj4gKyAgICBE ZWZhdWx0IENCTSAgICAgOiAweGZmCj4gKwo+ICsgICAgcm9vdEA6fiQgeGwgcHNyLWNhdC1jYm0t c2V0IC1sMiAxIDB4N2YKPiArCj4gKyAgICByb290QDp+JCB4bCBwc3ItY2F0LXNob3cgLWwyIDEK PiArICAgIFNvY2tldCBJRCAgICAgICA6IDAKPiArICAgIERlZmF1bHQgQ0JNICAgICA6IDB4ZmYK PiArICAgICAgIElEICAgICAgICAgICAgICAgICAgICAgTkFNRSAgICAgICAgICAgICBDQk0KPiAr ICAgICAgICAxICAgICAgICAgICAgICAgICB1YnVudHUxNCAgICAgICAgICAgIDB4N2YKPiArCj4g KyMgQXJlYXMgZm9yIGltcHJvdmVtZW50Cj4gKwo+ICtOL0EKPiArCj4gKyMgS25vd24gaXNzdWVz Cj4gKwo+ICtOL0EKPiArCj4gKyMgUmVmZXJlbmNlcwo+ICsKPiArIklOVEVMwq4gUkVTT1VSQ0Ug RElSRUNUT1IgVEVDSE5PTE9HWSAoSU5URUzCriBSRFQpIEFMTE9DQVRJT04gRkVBVFVSRVMiIFtJ bnRlbMKuIDY0IGFuZCBJQS0zMiBBcmNoaXRlY3R1cmVzIFNvZnR3YXJlIERldmVsb3BlciBNYW51 YWxzLCB2b2wzXShodHRwOi8vd3d3LmludGVsLmNvbS9jb250ZW50L3d3dy91cy9lbi9wcm9jZXNz b3JzL2FyY2hpdGVjdHVyZXMtc29mdHdhcmUtZGV2ZWxvcGVyLW1hbnVhbHMuaHRtbCkKPiArCj4g KyMgSGlzdG9yeQo+ICsKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gK0RhdGUgICAgICAgUmV2aXNpb24g VmVyc2lvbiAgTm90ZXMKPiArLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKzIwMTYtMDgtMTIgMS4wICAgICAg WGVuIDQuOSAgRGVzaWduIGRvY3VtZW50IHdyaXR0ZW4KPiArLS0tLS0tLS0tLSAtLS0tLS0tLSAt LS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0g Cj4gMS45LjEKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=