From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 11B0B2C12 for ; Wed, 28 Mar 2018 12:23:59 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Mar 2018 03:23:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,371,1517904000"; d="scan'208";a="211983008" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga005.jf.intel.com with ESMTP; 28 Mar 2018 03:23:58 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 28 Mar 2018 03:23:57 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 28 Mar 2018 03:23:57 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.235]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.108]) with mapi id 14.03.0319.002; Wed, 28 Mar 2018 18:23:55 +0800 From: "Liu, Changpeng" To: Maxime Coquelin , "Kulasek, TomaszX" , "yliu@fridaylinux.org" CC: "Verkamp, Daniel" , "Harris, James R" , "Wodkowski, PawelX" , "dev@dpdk.org" , "Tan, Jianfeng" Thread-Topic: [dpdk-dev] [PATCH v2] vhost: add virtio configuration space messages Thread-Index: AQHTxeGtANo/CucoI0uyXSr4hdyNkaPk18KAgACNTFD//398AIAAhuIw//985gCAAIiP0A== Date: Wed, 28 Mar 2018 10:23:54 +0000 Message-ID: References: <20180327151737.6640-1-tomaszx.kulasek@intel.com> <20180327153500.10464-1-tomaszx.kulasek@intel.com> <6c556086-bccc-1e55-d490-c21bcc8a6c4b@redhat.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzVmNzgyMDEtMDVjZC00MTM0LWE5YTUtMmQ3NWYyNjcyMDE0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6InNOQ1ZhVjB1cWNDTVBQemN3aHFiUEdESWxmRFVmY1NmRlJiQ2N3UXRYcTQ9In0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2] vhost: add virtio configuration space messages X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Mar 2018 10:24:03 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWF4aW1lIENvcXVlbGlu IFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwg TWFyY2ggMjgsIDIwMTggNjoxMSBQTQ0KPiBUbzogTGl1LCBDaGFuZ3BlbmcgPGNoYW5ncGVuZy5s aXVAaW50ZWwuY29tPjsgS3VsYXNlaywgVG9tYXN6WA0KPiA8dG9tYXN6eC5rdWxhc2VrQGludGVs LmNvbT47IHlsaXVAZnJpZGF5bGludXgub3JnDQo+IENjOiBWZXJrYW1wLCBEYW5pZWwgPGRhbmll bC52ZXJrYW1wQGludGVsLmNvbT47IEhhcnJpcywgSmFtZXMgUg0KPiA8amFtZXMuci5oYXJyaXNA aW50ZWwuY29tPjsgV29ka293c2tpLCBQYXdlbFgNCj4gPHBhd2VseC53b2Rrb3dza2lAaW50ZWwu Y29tPjsgZGV2QGRwZGsub3JnOyBUYW4sIEppYW5mZW5nDQo+IDxqaWFuZmVuZy50YW5AaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjJdIHZob3N0OiBhZGQgdmly dGlvIGNvbmZpZ3VyYXRpb24gc3BhY2UNCj4gbWVzc2FnZXMNCj4gDQo+IA0KPiANCj4gT24gMDMv MjgvMjAxOCAxMjowMyBQTSwgTGl1LCBDaGFuZ3Blbmcgd3JvdGU6DQo+ID4NCj4gPg0KPiA+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gW21h aWx0bzptYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbV0NCj4gPj4gU2VudDogV2VkbmVzZGF5LCBN YXJjaCAyOCwgMjAxOCA1OjU4IFBNDQo+ID4+IFRvOiBMaXUsIENoYW5ncGVuZyA8Y2hhbmdwZW5n LmxpdUBpbnRlbC5jb20+OyBLdWxhc2VrLCBUb21hc3pYDQo+ID4+IDx0b21hc3p4Lmt1bGFzZWtA aW50ZWwuY29tPjsgeWxpdUBmcmlkYXlsaW51eC5vcmcNCj4gPj4gQ2M6IFZlcmthbXAsIERhbmll bCA8ZGFuaWVsLnZlcmthbXBAaW50ZWwuY29tPjsgSGFycmlzLCBKYW1lcyBSDQo+ID4+IDxqYW1l cy5yLmhhcnJpc0BpbnRlbC5jb20+OyBXb2Rrb3dza2ksIFBhd2VsWA0KPiA+PiA8cGF3ZWx4Lndv ZGtvd3NraUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmc7IFRhbiwgSmlhbmZlbmcNCj4gPj4gPGpp YW5mZW5nLnRhbkBpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRD SCB2Ml0gdmhvc3Q6IGFkZCB2aXJ0aW8gY29uZmlndXJhdGlvbiBzcGFjZQ0KPiA+PiBtZXNzYWdl cw0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiBPbiAwMy8yOC8yMDE4IDExOjUwIEFNLCBMaXUsIENo YW5ncGVuZyB3cm90ZToNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+ID4+Pj4gRnJvbTogTWF4aW1lIENvcXVlbGluIFttYWlsdG86bWF4aW1lLmNvcXVl bGluQHJlZGhhdC5jb21dDQo+ID4+Pj4gU2VudDogV2VkbmVzZGF5LCBNYXJjaCAyOCwgMjAxOCA1 OjEyIFBNDQo+ID4+Pj4gVG86IEt1bGFzZWssIFRvbWFzelggPHRvbWFzengua3VsYXNla0BpbnRl bC5jb20+OyB5bGl1QGZyaWRheWxpbnV4Lm9yZw0KPiA+Pj4+IENjOiBWZXJrYW1wLCBEYW5pZWwg PGRhbmllbC52ZXJrYW1wQGludGVsLmNvbT47IEhhcnJpcywgSmFtZXMgUg0KPiA+Pj4+IDxqYW1l cy5yLmhhcnJpc0BpbnRlbC5jb20+OyBXb2Rrb3dza2ksIFBhd2VsWA0KPiA+Pj4+IDxwYXdlbHgu d29ka293c2tpQGludGVsLmNvbT47IGRldkBkcGRrLm9yZzsgTGl1LCBDaGFuZ3BlbmcNCj4gPj4+ PiA8Y2hhbmdwZW5nLmxpdUBpbnRlbC5jb20+OyBUYW4sIEppYW5mZW5nIDxqaWFuZmVuZy50YW5A aW50ZWwuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2Ml0gdmhv c3Q6IGFkZCB2aXJ0aW8gY29uZmlndXJhdGlvbiBzcGFjZQ0KPiA+Pj4+IG1lc3NhZ2VzDQo+ID4+ Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gT24gMDMvMjcvMjAxOCAwNTozNSBQTSwgVG9tYXN6 IEt1bGFzZWsgd3JvdGU6DQo+ID4+Pj4+IFRoaXMgcGF0Y2ggYWRkcyBuZXcgdmhvc3QgdXNlciBt ZXNzYWdlcyBHRVRfQ09ORklHIGFuZCBTRVRfQ09ORklHDQo+ID4+IHVzZWQNCj4gPj4+Pj4gZm9y IGdldC9zZXQgdmlydGlvIGRldmljZSdzIGNvbmZpZ3VyYXRpb24gc3BhY2UuDQo+ID4+Pj4+DQo+ ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IENoYW5ncGVuZyBMaXUgPGNoYW5ncGVuZy5saXVAaW50ZWwu Y29tPg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBUb21hc3ogS3VsYXNlayA8dG9tYXN6eC5rdWxh c2VrQGludGVsLmNvbT4NCj4gPj4+Pj4gLS0tDQo+ID4+Pj4+IENoYW5nZXMgaW4gdjI6DQo+ID4+ Pj4+ICAgICAtIGNvZGUgY2xlYW51cA0KPiA+Pj4+Pg0KPiA+Pj4+PiAgICAgbGliL2xpYnJ0ZV92 aG9zdC9ydGVfdmhvc3QuaCAgfCAgNCArKysrDQo+ID4+Pj4+ICAgICBsaWIvbGlicnRlX3Zob3N0 L3Zob3N0X3VzZXIuYyB8IDIyICsrKysrKysrKysrKysrKysrKysrKysNCj4gPj4+Pj4gICAgIGxp Yi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5oIHwgMTYgKysrKysrKysrKysrKysrKw0KPiA+Pj4+ PiAgICAgMyBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspDQo+ID4+Pj4+DQo+ID4+Pj4+ IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdC5oIGIvbGliL2xpYnJ0ZV92 aG9zdC9ydGVfdmhvc3QuaA0KPiA+Pj4+PiBpbmRleCBkMzMyMDY5Li5mZTMwNTE4IDEwMDY0NA0K PiA+Pj4+PiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdC5oDQo+ID4+Pj4+ICsrKyBi L2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmgNCj4gPj4+Pj4gQEAgLTg0LDYgKzg0LDEwIEBA IHN0cnVjdCB2aG9zdF9kZXZpY2Vfb3BzIHsNCj4gPj4+Pj4gICAgIAlpbnQgKCpuZXdfY29ubmVj dGlvbikoaW50IHZpZCk7DQo+ID4+Pj4+ICAgICAJdm9pZCAoKmRlc3Ryb3lfY29ubmVjdGlvbiko aW50IHZpZCk7DQo+ID4+Pj4+DQo+ID4+Pj4+ICsJaW50ICgqZ2V0X2NvbmZpZykoaW50IHZpZCwg dWludDhfdCAqY29uZmlnLCB1aW50MzJfdCBjb25maWdfbGVuKTsNCj4gPj4+Pj4gKwlpbnQgKCpz ZXRfY29uZmlnKShpbnQgdmlkLCB1aW50OF90ICpjb25maWcsIHVpbnQzMl90IG9mZnNldCwNCj4g Pj4+Pj4gKwkJCXVpbnQzMl90IGxlbiwgdWludDMyX3QgZmxhZ3MpOw0KPiA+Pj4+PiArDQo+ID4+ Pj4+ICAgICAJdm9pZCAqcmVzZXJ2ZWRbMl07IC8qKjwgUmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHRl bnNpb24gKi8NCj4gPj4+Pg0KPiA+Pj4+IFlvdSBhcmUgYnJlYWtpbmcgdGhlIEFCSSwgYXMgeW91 IGdyb3cgdGhlIHNpemUgb2YgdGhlIG9wcyBzdHJ1Y3QuDQo+ID4+Pj4NCj4gPj4+PiBBbHNvLCBJ J20gd29uZGVyaW5nIGlmIHdlIHNob3VsZG4ndCBoYXZlIGEgZGlmZmVyZW50IG9wcyBmb3IgZXh0 ZXJuYWwNCj4gPj4+PiBiYWNrZW5kcy4gSGVyZSB0aGVzZSBvcHMgYXJlIG1vcmUgaW50ZW5kZWQg dG8gdGhlIGFwcGxpY2F0aW9uLCB3ZSBjb3VsZA0KPiA+Pj4+IGhhdmUgYSBzcGVjaWZpYyBvcHMg c3RydWN0IGZvciBleHRlcm5hbCBiYWNrZW5kcyBJTUhPLg0KPiA+Pj4+DQo+ID4+Pj4+ICAgICB9 Ow0KPiA+Pj4+Pg0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91 c2VyLmMgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4+PiBpbmRleCA5MGVk MjExLi4wZWQ2YTVhIDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0 X3VzZXIuYw0KPiA+Pj4+PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+ Pj4+PiBAQCAtNTAsNiArNTAsOCBAQCBzdGF0aWMgY29uc3QgY2hhcg0KPiA+PiAqdmhvc3RfbWVz c2FnZV9zdHJbVkhPU1RfVVNFUl9NQVhdDQo+ID4+Pj4gPSB7DQo+ID4+Pj4+ICAgICAJW1ZIT1NU X1VTRVJfTkVUX1NFVF9NVFVdICA9ICJWSE9TVF9VU0VSX05FVF9TRVRfTVRVIiwNCj4gPj4+Pj4g ICAgIAlbVkhPU1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEXSAgPQ0KPiA+Pj4+ICJWSE9TVF9VU0VS X1NFVF9TTEFWRV9SRVFfRkQiLA0KPiA+Pj4+PiAgICAgCVtWSE9TVF9VU0VSX0lPVExCX01TR10g ID0gIlZIT1NUX1VTRVJfSU9UTEJfTVNHIiwNCj4gPj4+Pj4gKwlbVkhPU1RfVVNFUl9HRVRfQ09O RklHXSA9ICJWSE9TVF9VU0VSX0dFVF9DT05GSUciLA0KPiA+Pj4+PiArCVtWSE9TVF9VU0VSX1NF VF9DT05GSUddID0gIlZIT1NUX1VTRVJfU0VUX0NPTkZJRyIsDQo+ID4+Pj4+ICAgICB9Ow0KPiA+ Pj4+Pg0KPiA+Pj4+PiAgICAgc3RhdGljIHVpbnQ2NF90DQo+ID4+Pj4+IEBAIC0xMzU1LDYgKzEz NTcsNyBAQCB2aG9zdF91c2VyX21zZ19oYW5kbGVyKGludCB2aWQsIGludCBmZCkNCj4gPj4+Pj4g ICAgIAkgKiB3b3VsZCBjYXVzZSBhIGRlYWQgbG9jay4NCj4gPj4+Pj4gICAgIAkgKi8NCj4gPj4+ Pj4gICAgIAlzd2l0Y2ggKG1zZy5yZXF1ZXN0Lm1hc3Rlcikgew0KPiA+Pj4+PiArCWNhc2UgVkhP U1RfVVNFUl9TRVRfQ09ORklHOg0KPiA+Pj4+DQo+ID4+Pj4gSXQgc2VlbXMgVkhPU1RfVVNFUl9H RVRfQ09ORklHIGlzIG1pc3NpbmcgaGVyZS4NCj4gPj4+Pg0KPiA+Pj4+PiAgICAgCWNhc2UgVkhP U1RfVVNFUl9TRVRfRkVBVFVSRVM6DQo+ID4+Pj4+ICAgICAJY2FzZSBWSE9TVF9VU0VSX1NFVF9Q Uk9UT0NPTF9GRUFUVVJFUzoNCj4gPj4+Pj4gICAgIAljYXNlIFZIT1NUX1VTRVJfU0VUX09XTkVS Og0KPiA+Pj4+PiBAQCAtMTM4MCw2ICsxMzgzLDI1IEBAIHZob3N0X3VzZXJfbXNnX2hhbmRsZXIo aW50IHZpZCwgaW50IGZkKQ0KPiA+Pj4+PiAgICAgCX0NCj4gPj4+Pj4NCj4gPj4+Pj4gICAgIAlz d2l0Y2ggKG1zZy5yZXF1ZXN0Lm1hc3Rlcikgew0KPiA+Pj4+PiArCWNhc2UgVkhPU1RfVVNFUl9H RVRfQ09ORklHOg0KPiA+Pj4+PiArCQlpZiAoZGV2LT5ub3RpZnlfb3BzLT5nZXRfY29uZmlnKGRl di0+dmlkLA0KPiA+Pj4+IFBsZWFzZSBjaGVjayAtPmdldF9jb25maWcgaXMgc2V0IGJlZm9yZSBj YWxsaW5nIGl0Lg0KPiA+Pj4+DQo+ID4+Pj4+ICsJCQkJbXNnLnBheWxvYWQuY29uZmlnLnJlZ2lv biwNCj4gPj4+Pj4gKwkJCQltc2cucGF5bG9hZC5jb25maWcuc2l6ZSkgIT0gMCkgew0KPiA+Pj4+ PiArCQkJbXNnLnNpemUgPSBzaXplb2YodWludDY0X3QpOw0KPiA+Pj4+PiArCQl9DQo+ID4+Pj4+ ICsJCXNlbmRfdmhvc3RfcmVwbHkoZmQsICZtc2cpOw0KPiA+Pj4+PiArCQlicmVhazsNCj4gPj4+ Pj4gKwljYXNlIFZIT1NUX1VTRVJfU0VUX0NPTkZJRzoNCj4gPj4+Pj4gKwkJaWYgKChkZXYtPm5v dGlmeV9vcHMtPnNldF9jb25maWcoZGV2LT52aWQsDQo+ID4+Pj4gRGl0dG8uDQo+ID4+Pj4NCj4g Pj4+Pj4gKwkJCQltc2cucGF5bG9hZC5jb25maWcucmVnaW9uLA0KPiA+Pj4+PiArCQkJCW1zZy5w YXlsb2FkLmNvbmZpZy5vZmZzZXQsDQo+ID4+Pj4+ICsJCQkJbXNnLnBheWxvYWQuY29uZmlnLnNp emUsDQo+ID4+Pj4+ICsJCQkJbXNnLnBheWxvYWQuY29uZmlnLmZsYWdzKSkgIT0gMCkgew0KPiA+ Pj4+PiArCQkJcmV0ID0gMTsNCj4gPj4+Pj4gKwkJfSBlbHNlIHsNCj4gPj4+Pj4gKwkJCXJldCA9 IDA7DQo+ID4+Pj4+ICsJCX0NCj4gPj4+Pg0KPiA+Pj4+IHJldCA9IGRldi0+bm90aWZ5X29wcy0+ c2V0X2NvbmZpZyBpbnN0ZWFkPw0KPiA+Pj4+PiArCQlicmVhazsNCj4gPj4+Pj4gICAgIAljYXNl IFZIT1NUX1VTRVJfR0VUX0ZFQVRVUkVTOg0KPiA+Pj4+PiAgICAgCQltc2cucGF5bG9hZC51NjQg PSB2aG9zdF91c2VyX2dldF9mZWF0dXJlcyhkZXYpOw0KPiA+Pj4+PiAgICAgCQltc2cuc2l6ZSA9 IHNpemVvZihtc2cucGF5bG9hZC51NjQpOw0KPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV92aG9zdC92aG9zdF91c2VyLmggYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuaA0KPiA+ Pj4+PiBpbmRleCBkNGJkNjA0Li4yNWNjMDI2IDEwMDY0NA0KPiA+Pj4+PiAtLS0gYS9saWIvbGli cnRlX3Zob3N0L3Zob3N0X3VzZXIuaA0KPiA+Pj4+PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zo b3N0X3VzZXIuaA0KPiA+Pj4+PiBAQCAtMTQsNiArMTQsMTEgQEANCj4gPj4+Pj4NCj4gPj4+Pj4g ICAgICNkZWZpbmUgVkhPU1RfTUVNT1JZX01BWF9OUkVHSU9OUyA4DQo+ID4+Pj4+DQo+ID4+Pj4+ ICsvKg0KPiA+Pj4+PiArICogTWF4aW11bSBzaXplIG9mIHZpcnRpbyBkZXZpY2UgY29uZmlnIHNw YWNlDQo+ID4+Pj4+ICsgKi8NCj4gPj4+Pj4gKyNkZWZpbmUgVkhPU1RfVVNFUl9NQVhfQ09ORklH X1NJWkUgMjU2DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gICAgICNkZWZpbmUgVkhPU1RfVVNFUl9QUk9U T0NPTF9GX01RCTANCj4gPj4+Pj4gICAgICNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX0xP R19TSE1GRAkxDQo+ID4+Pj4+ICAgICAjZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9SQVJQ CTINCj4gPj4+Pg0KPiA+Pj4+IFNob3VsZG4ndCB0aGVyZSBiZSBhIHByb3RvY29sIGZlYXR1cmUg YXNzb2NpYXRlZCB0byB0aGVzZSBuZXcgbWVzc2FnZXM/DQo+ID4+Pj4gRWxzZSBob3cgUUVNVSBr bm93cyB0aGUgYmFja2VuZCBzdXBwb3J0cyBpdCBvciBub3Q/DQo+ID4+Pj4NCj4gPj4+PiBJIGxv b2tlZCBhdCBRRU1VIGNvZGUgYW5kIGluZGVlZCBubyBwcm90b2NvbCBmZWF0dXJlIGFzc29jaWF0 ZWQsIHRoYXQncw0KPiA+Pj4+IHN0cmFuZ2UuLi4NCj4gPj4+IE5pY2UgdG8gaGF2ZSwgZm9yIG5v dyBub3QgYWxsIHRoZSBRRU1VIGhvc3QgZHJpdmVyIG5lZWQgdG8gZ2V0IHRoaXMNCj4gPj4gY29u ZmlndXJhdGlvbiBzcGFjZSBmcm9tIHNsYXZlIGJhY2tlbmQNCj4gPj4+IHdoZW4gZ2V0dGluZyBz dGFydC4gVGhpcyBtZXNzYWdlIGNhbiBiZSB1c2VkIGZvciBtaWdyYXRpb24gb2Ygdmhvc3QtdXNl cg0KPiA+PiBkZXZpY2VzLg0KPiA+Pg0KPiA+PiBTbyBpZiBRRU1VIHNlbmRzIHRoaXMgbWVzc2Fn ZSBidXQgdGhlIERQREsgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IGl0DQo+ID4+IHlldCwgdmhv c3RfdXNlcl9tc2dfaGFuZGxlcigpIHdpbGwgcmV0dXJuIGFuIGVycm9yICgidmhvc3QgcmVhZA0K PiA+PiBpbmNvcnJlY3QgbWVzc2FnZSIpIGFuZCB0aGUgc29ja2V0IHdpbGwgYmUgY2xvc2VkLg0K PiA+Pg0KPiA+PiBIb3cgZG8gd2Ugb3ZlcmNvbWUgdGhpcz8gSSB0aGluayB3ZSByZWFsbHkgbmVl ZCBhIHNwZWMgdXBkYXRlIEFTQVAsDQo+ID4+IGJlZm9yZSBRRU1VIHYyLjEyIGlzIG91dCAoLXJj MSBhbHJlYWR5KS4NCj4gPj4NCj4gPj4gRG8geW91IGhhdmUgdGltZSB0byB0YWtlIGNhcmUgb2Yg dGhpcz8NCj4gPiBGb3Igbm93IHRoZXJlIGFyZSBubyBvdGhlciB1c2VycyBleGNlcHQgdXMgY2Fy ZSBhYm91dCB0aGlzIG1lc3NhZ2UsIDopLCBpdCdzIG5vDQo+IGh1cnJ5Lg0KPiA+IEkgY2FuIHRh a2UgdGhpcyBhZnRlciBRRU1VIDIuMTIgcmVsZWFzZSBhZGRpbmcgYSBuZXcgcHJvdG9jb2wgZmVh dHVyZSBiaXQuDQo+IA0KPiBBcmUgeW91IHN1cmU/DQo+IElmIEkgdW5kZXJzdGFuZCB0aGUgY29k ZSBjb3JyZWN0bHksIGFzIHRoZSBndWVzdCB3cml0ZXMgaW4gY29uZmlnIHJlZ3MNCj4gb2YgYSB2 aXJ0aW8tYmxrIGRldmljZSwgLnNldF9jb25maWcgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQuDQpF eGFjdGx5Lg0KPiANCj4gSWYgeW91IGhhdmUgYSB2aG9zdC11c2VyIGJhY2tlbmQsIGl0IHdpbGwg cmVjZWl2ZSB0aGUgU0VUX0NPTkZJRw0KPiByZXF1ZXN0LCBubz8NCkZvciBub3cgdGhpcyBvbmx5 IGVuYWJsZWQgZm9yIFFFTVUgdmhvc3QtdXNlci1ibGsgZHJpdmVyLCBRRU1VIHZpcnRpby1ibGsg ZHJpdmVyIGRpZG4ndCBoYXZlIHN1Y2ggaXNzdWUuDQo+IA0KPiBDaGVlcnMsDQo+IE1heGltZQ0K PiANCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBNYXhpbWUNCg==