From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 71BAEA0524; Fri, 6 Nov 2020 11:07:48 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B56D12BF5; Fri, 6 Nov 2020 11:07:46 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id 88615DED for ; Fri, 6 Nov 2020 11:07:45 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Fri, 6 Nov 2020 11:07:43 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C613FF@smartserver.smartshare.dk> In-Reply-To: <20201106100437.GA1898@platinum> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH] mbuf: fix reset on mbuf free Thread-Index: Ada0JEKF4FZc1+yAQSaQ+Fwvl1ctuAAADLGQ References: <20201105123150.GP1898@platinum> <20201105132438.GS1898@platinum> <98CBD80474FA8B44BF855DF32C47DC35C613F7@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35C613F8@smartserver.smartshare.dk> <20201106082053.GZ1898@platinum> <98CBD80474FA8B44BF855DF32C47DC35C613FA@smartserver.smartshare.dk> <20201106100437.GA1898@platinum> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Olivier Matz" Cc: "Ananyev, Konstantin" , "Andrew Rybchenko" , Subject: Re: [dpdk-dev] [PATCH] mbuf: fix reset on mbuf free 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiBGcm9tOiBPbGl2aWVyIE1hdHogW21haWx0bzpvbGl2aWVyLm1hdHpANndpbmQuY29tXQ0KPiBT ZW50OiBGcmlkYXksIE5vdmVtYmVyIDYsIDIwMjAgMTE6MDUgQU0NCj4gDQo+IE9uIEZyaSwgTm92 IDA2LCAyMDIwIGF0IDA5OjUwOjQ1QU0gKzAxMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+ ID4gRnJvbTogT2xpdmllciBNYXR6IFttYWlsdG86b2xpdmllci5tYXR6QDZ3aW5kLmNvbV0NCj4g PiA+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgNiwgMjAyMCA5OjIxIEFNDQo+ID4gPg0KPiA+ID4g T24gRnJpLCBOb3YgMDYsIDIwMjAgYXQgMDg6NTI6NThBTSArMDEwMCwgTW9ydGVuIEJyw7hydXAg d3JvdGU6DQo+ID4gPiA+ID4gRnJvbTogQW5hbnlldiwgS29uc3RhbnRpbiBbbWFpbHRvOmtvbnN0 YW50aW4uYW5hbnlldkBpbnRlbC5jb21dDQo+ID4gPiA+ID4gU2VudDogRnJpZGF5LCBOb3ZlbWJl ciA2LCAyMDIwIDEyOjU1IEFNDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g Pj4gSGkgT2xpdmllciwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPj4+IG0tPm5iX3NlZyBtdXN0IGJlIHJlc2V0IG9uIG1idWYgZnJlZQ0K PiB3aGF0ZXZlcg0KPiA+ID4gdGhlDQo+ID4gPiA+ID4gdmFsdWUNCj4gPiA+ID4gPiA+ID4gb2Yg bS0+bmV4dCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IGJlY2F1c2UgaXQgY2FuIGhh cHBlbiB0aGF0IG0tPm5iX3NlZyBpcyAhPQ0KPiAxLg0KPiA+ID4gRm9yDQo+ID4gPiA+ID4gPiA+ IGluc3RhbmNlIGluIHRoaXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+IGNhc2U6DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ Pj4gICBtMSA9IHJ0ZV9wa3RtYnVmX2FsbG9jKG1wKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPj4+ICAgcnRlX3BrdG1idWZfYXBwZW5kKG0xLCA1MDApOw0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+Pj4gICBtMiA9IHJ0ZV9wa3RtYnVmX2FsbG9jKG1wKTsNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPj4+ICAgcnRlX3BrdG1idWZfYXBwZW5kKG0yLCA1MDApOw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICBydGVfcGt0bWJ1Zl9jaGFpbihtMSwgbTIpOw0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICBtMCA9IHJ0ZV9wa3RtYnVmX2FsbG9jKG1wKTsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ICAgcnRlX3BrdG1idWZfYXBwZW5kKG0wLCA1MDAp Ow0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4gICBydGVfcGt0bWJ1Zl9jaGFpbihtMCwg bTEpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPj4+IEFzIHJ0ZV9wa3RtYnVmX2NoYWluKCkgZG9lcyBub3QgcmVzZXQNCj4gbmJfc2Vn IGluDQo+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gaW5pdGlhbCBtMQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+Pj4gc2VnbWVudCAodGhpcyBpcyBub3QgcmVxdWlyZWQpLCBhZnRlciB0aGlz DQo+IGNvZGUNCj4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiBtYnVmIGNoYWluDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4+PiBoYXZlIDMgc2VnbWVudHM6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4+PiAgIC0gbTA6IG5leHQ9bTEsIG5iX3NlZz0zDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4+PiAgIC0gbTE6IG5leHQ9bTIsIG5iX3NlZz0yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4+PiAgIC0gbTI6IG5leHQ9TlVMTCwgbmJfc2VnPTENCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+PiBGcmVlaW5nIHRoaXMg bWJ1ZiBjaGFpbiB3aWxsIG5vdCByZXN0b3JlDQo+ID4gPiBuYl9zZWc9MQ0KPiA+ID4gPiA+IGlu DQo+ID4gPiA+ID4gPiA+IHRoZSBzZWNvbmQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4+ IHNlZ21lbnQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+IEhtbSwgbm90IHN1cmUgd2h5IGlzIHRoYXQ/DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+IFlvdSBhcmUgdGFsa2luZyBhYm91dCBmcmVlaW5nIG0xLCByaWdodD8NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gcnRlX3BrdG1idWZfcHJlZnJlZV9zZWcoc3RydWN0 IHJ0ZV9tYnVmICptKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiB7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4+IAkuLi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gCWlm IChtLT5uZXh0ICE9IE5VTEwpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gICAgICAg ICAgICAgICAgICAgICAgICAgbS0+bmV4dCA9IE5VTEw7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgIG0tPm5iX3NlZ3MgPSAxOw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+PiAgICAgICAgICAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBtMS0+bmV4dCAhPSBOVUxM LCBzbyBpdCB3aWxsIGVudGVyIHRoZSBpZigpDQo+ID4gPiBibG9jaywNCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPj4gYW5kIHdpbGwgcmVzZXQgYm90aCBuZXh0IGFuZCBuYl9zZWdzLg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBXaGF0IEkgYW0gbWlzc2luZyBoZXJlPw0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBUaGlua2luZyBpbiBtb3JlIGdlbmVyaWMgd2F5LCB0aGF0 IGNoYW5nZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gIC0JCWlmIChtLT5uZXh0ICE9 IE5VTEwpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gIC0JCQltLT5uZXh0ID0gTlVM TDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gIC0JCQltLT5uYl9zZWdzID0gMTsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gIC0JCX0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPj4gICsJCW0tPm5leHQgPSBOVUxMOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiAg KwkJbS0+bmJfc2VncyA9IDE7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBBaCwgc29ycnkuIEkgb3ZlcnNpbXBsaWZpZWQgdGhlIGV4YW1w bGUgYW5kDQo+IG5vdw0KPiA+ID4gaXQNCj4gPiA+ID4gPiBkb2VzDQo+ID4gPiA+ID4gPiA+IG5v dA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNob3cgdGhlIGlzc3VlLi4uDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgZnVs bCBleGFtcGxlIGFsc28gYWRkcyBhIHNwbGl0KCkgdG8gYnJlYWsNCj4gdGhlDQo+ID4gPiA+ID4g bWJ1Zg0KPiA+ID4gPiA+ID4gPiBjaGFpbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGJl dHdlZW4gbTEgYW5kIG0yLiBUaGUga2luZCBvZiB0aGluZyB0aGF0DQo+IHdvdWxkDQo+ID4gPiBi ZQ0KPiA+ID4gPiA+IGRvbmUNCj4gPiA+ID4gPiA+ID4gZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gc29mdHdhcmUgVENQIHNlZ21lbnRhdGlvbi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBJZiBzbywgbWF5IGJlIHRoZSByaWdodCBzb2x1dGlvbiBpcyB0byBjYXJlDQo+IGFib3V0 DQo+ID4gPiA+ID4gbmJfc2Vncw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3aGVuIG5leHQg aXMgc2V0IHRvIE5VTEwgb24gc3BsaXQ/IEFueSBwbGFjZQ0KPiB3aGVuDQo+ID4gPiBuZXh0DQo+ ID4gPiA+ID4gaXMNCj4gPiA+ID4gPiA+ID4gc2V0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IHRvIE5VTEwuIEp1c3QgdG8ga2VlcCB0aGUgb3B0aW1pemF0aW9uIGluIGENCj4gbW9yZQ0KPiA+ ID4gPiA+IGdlbmVyaWMNCj4gPiA+ID4gPiA+ID4gcGxhY2UuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIHBy b2JsZW0gd2l0aCB0aGF0IGFwcHJvYWNoIGlzIHRoYXQgdGhlcmUgYXJlDQo+ID4gPiBhbHJlYWR5 DQo+ID4gPiA+ID4gPiA+IHNldmVyYWwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGV4aXN0aW5n IHNwbGl0KCkgb3IgdHJpbSgpIGltcGxlbWVudGF0aW9ucyBpbg0KPiA+ID4gZGlmZmVyZW50DQo+ ID4gPiA+ID4gRFBESy0NCj4gPiA+ID4gPiA+ID4gYmFzZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IGFwcGxpY2F0aW9ucy4gRm9yIGluc3RhbmNlLCB3ZSBoYXZlIHNvbWUgaW4NCj4gPiA+IDZX SU5ER2F0ZS4gSWYNCj4gPiA+ID4gPiB3ZQ0KPiA+ID4gPiA+ID4gPiBmb3JjZQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gYXBwbGljYXRpb25zIHRvIHNldCBuYl9zZWcgdG8gMSB3aGVuIHJlc2V0 dGluZw0KPiBuZXh0LA0KPiA+ID4gaXQNCj4gPiA+ID4gPiBoYXMNCj4gPiA+ID4gPiA+ID4gdG8g YmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRvY3VtZW50ZWQgYmVjYXVzZSBpdCBpcyBub3Qg c3RyYWlnaHRmb3J3YXJkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gSSB0aGluayBpdCBpcyBiZXR0ZXIgdG8gZ28gdGhhdCB3YXkuDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gRnJvbSBteSBwZXJzcGVjdGl2ZSBpdCBzZWVtcyBuYXR1cmFsIHRvIHJlc2V0DQo+ IG5iX3NlZyBhdA0KPiA+ID4gPiA+IHNhbWUNCj4gPiA+ID4gPiA+ID4gdGltZQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IHdlIHJlc2V0IG5leHQsIG90aGVyd2lzZSBpbmNvbnNpc3RlbmN5IHdpbGwg b2NjdXIuDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFdoaWxlIGl0 IGlzIG5vdCBleHBsaWNpdGx5IHN0YXRlZCBmb3IgbmJfc2VncywgdG8gbWUNCj4gaXQNCj4gPiA+ IHdhcw0KPiA+ID4gPiA+IGNsZWFyDQo+ID4gPiA+ID4gPiA+IHRoYXQNCj4gPiA+ID4gPiA+ID4g PiA+ID4gbmJfc2VncyBpcyBvbmx5IHZhbGlkIGluIHRoZSBmaXJzdCBzZWdtZW50LCBsaWtlIGZv cg0KPiBtYW55DQo+ID4gPiA+ID4gZmllbGRzDQo+ID4gPiA+ID4gPiA+IChwb3J0LA0KPiA+ID4g PiA+ID4gPiA+ID4gPiBvbF9mbGFncywgdmxhbiwgcnNzLCAuLi4pLg0KPiA+ID4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJZiB3ZSBzYXkgdGhhdCBuYl9zZWdzIGhhcyB0byBi ZSB2YWxpZCBpbiBhbnkNCj4gc2VnbWVudHMsDQo+ID4gPiBpdA0KPiA+ID4gPiA+IG1lYW5zDQo+ ID4gPiA+ID4gPiA+IHRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gY2hhaW4oKSBvciBzcGxpdCgp IHdpbGwgaGF2ZSB0byB1cGRhdGUgaXQgaW4gYWxsDQo+ID4gPiBzZWdtZW50cywNCj4gPiA+ID4g PiB3aGljaA0KPiA+ID4gPiA+ID4gPiBpcyBub3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZWZmaWNp ZW50Lg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IFdoeSBpbiBhbGw/DQo+ ID4gPiA+ID4gPiA+ID4gPiBXZSBjYW4gc3RhdGUgdGhhdCBuYl9zZWdzIG9uIG5vbi1maXJzdCBz ZWdtZW50IHNob3VsZA0KPiA+ID4gYWx3YXlzDQo+ID4gPiA+ID4gZXF1YWwNCj4gPiA+ID4gPiA+ ID4gMS4NCj4gPiA+ID4gPiA+ID4gPiA+IEFzIEkgdW5kZXJzdGFuZCBpbiB0aGF0IGNhc2UsIGJv dGggc3BsaXQoKSBhbmQgY2hhaW4oKQ0KPiBoYXZlDQo+ID4gPiB0bw0KPiA+ID4gPiA+ID4gPiB1 cGRhdGUgbmJfc2Vncw0KPiA+ID4gPiA+ID4gPiA+ID4gb25seSBmb3IgaGVhZCBtYnVmcywgcmVz dCBvbmVzIHdpbGwgcmVtYWluIHVudG91Y2hlZC4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IFdlbGwsIGFueXdheSwgSSB0aGluayBpdCdzIHN0cmFuZ2UgdG8gaGF2ZSBhIGNvbnN0 cmFpbnQNCj4gb24gbS0NCj4gPiA+ID4gPiA+bmJfc2Vncw0KPiA+ID4gPiA+ID4gPiBmb3INCj4g PiA+ID4gPiA+ID4gPiBub24tZmlyc3Qgc2VnbWVudC4gV2UgZG9uJ3QgaGF2ZSB0aGF0IGtpbmQg b2YgY29uc3RyYWludHMNCj4gZm9yDQo+ID4gPiA+ID4gb3RoZXINCj4gPiA+ID4gPiA+ID4gZmll bGRzLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBUcnVlLCB3ZSBkb24ndC4gQnV0IHRo aXMgaXMgb25lIG9mIHRoZSBmaWVsZHMgd2UgY29uc2lkZXINCj4gPiA+IGNyaXRpY2FsDQo+ID4g PiA+ID4gPiA+IGZvciBwcm9wZXIgd29yayBvZiBtYnVmIGFsbG9jL2ZyZWUgbWVjaGFuaXNtLg0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgYW0gbm90IHN1cmUgdGhh dCByZXF1aXJpbmcgbS0+bmJfc2VncyA9PSAxIG9uIG5vbi1maXJzdA0KPiA+ID4gc2VnbWVudHMN Cj4gPiA+ID4gPiB3aWxsIHByb3ZpZGUgYW55IGJlbmVmaXRzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gSXQgd291bGQgbWFrZSB0aGlzIHBhdGNoIHVubmVlZGVkLg0KPiA+ID4gPiA+IFNvLCBmb3Ig ZGlyZWN0LCBub24tc2VnbWVudGVkIG1idWZzICBwa3RtYnVmX2ZyZWUoKSB3aWxsIHJlbWFpbg0K PiA+ID4gd3JpdGUtDQo+ID4gPiA+ID4gZnJlZS4NCj4gPiA+ID4NCj4gPiA+ID4gSSBzZWUuIFRo ZW4gSSBhZ3JlZSB3aXRoIEtvbnN0YW50aW4gdGhhdCBhbHRlcm5hdGl2ZSBzb2x1dGlvbnMNCj4g c2hvdWxkDQo+ID4gPiBiZSBjb25zaWRlcmVkLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgYmVuZWZp dCByZWdhcmRpbmcgZnJlZSgpJ2luZyBub24tc2VnbWVudGVkIG1idWZzIC0gd2hpY2ggaXMgYQ0K PiA+ID4gdmVyeSBjb21tb24gb3BlcmF0aW9uIC0gY2VydGFpbmx5IG91dHdlaWdocyB0aGUgY29z dCBvZiByZXF1aXJpbmcNCj4gPiA+IHNwbGl0KCkvY2hhaW4oKSBvcGVyYXRpb25zIHRvIHNldCB0 aGUgbmV3IGhlYWQgbWJ1ZidzIG5iX3NlZ3MgPSAxLg0KPiA+ID4gPg0KPiA+ID4gPiBOb25ldGhl bGVzcywgdGhlIGJ1ZyBuZWVkcyB0byBiZSBmaXhlZCBzb21laG93Lg0KPiA+ID4gPg0KPiA+ID4g PiBJZiB3ZSBjYW4ndCBjb21lIHVwIHdpdGggYSBiZXR0ZXIgc29sdXRpb24gdGhhdCBkb2Vzbid0 IGJyZWFrIHRoZQ0KPiA+ID4gQUJJLCB3ZSBhcmUgZm9yY2VkIHRvIGFjY2VwdCB0aGUgcGF0Y2gu DQo+ID4gPiA+DQo+ID4gPiA+IFVubGVzcyB0aGUgdGVjaGJvYXJkIGFjY2VwdHMgdG8gYnJlYWsg dGhlIEFCSSBpbiBvcmRlciB0byBhdm9pZA0KPiB0aGUNCj4gPiA+IHBlcmZvcm1hbmNlIGNvc3Qg b2YgdGhpcyBwYXRjaC4NCj4gPiA+DQo+ID4gPiBEaWQgc29tZW9uZSBub3RpY2UgYSBwZXJmb3Jt YW5jZSBkcm9wIHdpdGggdGhpcyBwYXRjaD8NCj4gPiA+IE9uIG15IHNpZGUsIEkgZG9uJ3Qgc2Vl IGFueSByZWdyZXNzaW9uIG9uIGEgTDMgdXNlIGNhc2UuDQo+ID4NCj4gPiBJIGFtIGFmcmFpZCB0 aGF0IHRoZSBEUERLIHBlcmZvcm1hbmNlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIGJhc2VkIG9uDQo+ IFRYIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBSWCwgc28gY2FjaGUgbWlzc2VzIGluIFRYIG1heSBn byBieSB1bm5vdGljZWQNCj4gYmVjYXVzZSBSWCB3YXJtZWQgdXAgdGhlIGNhY2hlIGZvciBUWCBh bHJlYWR5LiBBbmQgc2ltaWxhcmx5IGZvciBSWA0KPiByZXVzaW5nIG1idWZzIHRoYXQgaGF2ZSBi ZWVuIHdhcm1lZCB1cCBieSB0aGUgcHJlY2VkaW5nIGZyZWUoKSBhdCBUWC4NCj4gPg0KPiA+IFBs ZWFzZSBjb25zaWRlciB0ZXN0aW5nIHRoZSBwZXJmb3JtYW5jZSBkaWZmZXJlbmNlIHdpdGggdGhl IG1idWYNCj4gYmVpbmcgY29tcGxldGVseSBjb2xkIGF0IFRYLCBhbmQgZ29pbmcgY29tcGxldGVs eSBjb2xkIGFnYWluIGJlZm9yZQ0KPiBiZWluZyByZXVzZWQgZm9yIFJYLg0KPiA+DQo+ID4gPg0K PiA+ID4gTGV0J3Mgc3VtYXJpemU6IHNwbGl0dGluZyBhIG1idWYgY2hhaW4gYW5kIGZyZWVpbmcg aXQgY2F1c2VzDQo+IHN1YnNlcXVlbnQNCj4gPiA+IG1idWYNCj4gPiA+IGFsbG9jYXRpb24gdG8g cmV0dXJuIGEgbWJ1ZiB3aGljaCBpcyBub3QgY29ycmVjdGx5IGluaXRpYWxpemVkLg0KPiBUaGVy ZQ0KPiA+ID4gYXJlIDINCj4gPiA+IG9wdGlvbnMgdG8gZml4IGl0Og0KPiA+ID4NCj4gPiA+IDEv IGNoYW5nZSB0aGUgbWJ1ZiBmcmVlIGZ1bmN0aW9uICh0aGlzIHBhdGNoKQ0KPiA+ID4NCj4gPiA+ ICAgIC0gbS0+bmJfc2VncyB3b3VsZCBiZWhhdmUgbGlrZSBtYW55IG90aGVyIGZpZWxkOiB2YWxp ZCBpbiB0aGUNCj4gZmlyc3QNCj4gPiA+ICAgICAgc2VnbWVudCwgaWdub3JlZCBpbiBvdGhlciBz ZWdtZW50cw0KPiA+ID4gICAgLSBtYXkgaW1wYWN0IHBlcmZvcm1hbmNlIChzdXNwZWN0ZWQpDQo+ ID4gPg0KPiA+ID4gMi8gY2hhbmdlIGFsbCBwbGFjZXMgd2hlcmUgYSBtYnVmIGNoYWluIGlzIHNw bGl0LCBvciB0cmltbWVkDQo+ID4gPg0KPiA+ID4gICAgLSBtLT5uYl9zZWdzIHdvdWxkIGhhdmUg YSBzcGVjaWZpYyBiZWhhdmlvcjogY291bnQgdGhlIG51bWJlciBvZg0KPiA+ID4gICAgICBzZWdt ZW50cyBpbiB0aGUgZmlyc3QgbWJ1Ziwgc2hvdWxkIGJlIDEgaW4gdGhlIGxhc3Qgc2VnbWVudCwN Cj4gPiA+ICAgICAgaWdub3JlZCBpbiBvdGhlciBvbmVzLg0KPiA+ID4gICAgLSBubyBjb2RlIGNo YW5nZSBpbiBtYnVmIGxpYnJhcnksIHNvIG5vIHBlcmZvcm1hbmNlIGltcGFjdA0KPiA+ID4gICAg LSBuZWVkIHRvIHBhdGNoIGFsbCBwbGFjZXMgd2hlcmUgd2UgZG8gYSBtYnVmIHNwbGl0IG9yIHRy aW0uDQo+IEZyb20NCj4gPiA+IGFmYXIsDQo+ID4gPiAgICAgIEkgc2VlIGF0IGxlYXN0IG1idWZf Y3V0X3NlZ19vZnMoKSBpbiBEUERLLiBTb21lIGV4dGVybmFsDQo+ID4gPiBhcHBsaWNhdGlvbnMN Cj4gPiA+ICAgICAgbWF5IGhhdmUgdG8gYmUgcGF0Y2hlZCAoZm9yIGluc3RhbmNlLCBJIGFscmVh ZHkgZm91bmQgMyBwbGFjZXMNCj4gaW4NCj4gPiA+ICAgICAgNldJTkQgY29kZSBiYXNlIHdpdGhv dXQgYSBkZWVwIHNlYXJjaCkuDQo+ID4gPg0KPiA+ID4gSW4gbXkgb3BpbmlvbiwgMS8gaXMgYmV0 dGVyLCBleGNlcHQgd2Ugbm90aWNlIGEgc2lnbmlmaWNhbnQNCj4gPiA+IHBlcmZvcm1hbmNlLA0K PiA+ID4gYmVjYXVzZSB0aGUgKGltcGxpY2l0KSBiZWhhdmlvciBpcyB1bmNoYW5nZWQuDQo+ID4g Pg0KPiA+ID4gV2hhdGV2ZXIgdGhlIHNvbHV0aW9uLCBzb21lIGRvY3VtZW50YXRpb24gaGFzIHRv IGJlIGFkZGVkLg0KPiA+ID4NCj4gPiA+IE9saXZpZXINCj4gPiA+DQo+ID4NCj4gPiBVbmZvcnR1 bmF0ZWx5LCBJIGRvbid0IHRoaW5rIHRoYXQgYW55dGhpbmcgYnV0IHRoZSBmaXJzdCBvcHRpb24g d2lsbA0KPiBnbyBpbnRvIDIwLjExIGFuZCBzdGFibGUgcmVsZWFzZXMgb2Ygb2xkZXIgdmVyc2lv bnMsIHNvIEkgc3RhbmQgYnkgbXkNCj4gYWNrbm93bGVkZ21lbnQgb2YgdGhlIHBhdGNoLg0KPiAN Cj4gSWYgd2UgYXJlIGFmZnJhaWQgYWJvdXQgMjAuMTEgcGVyZm9ybWFuY2UgKGl0IGlzIGxlZ2l0 aW1hdGUsIGZldyBkYXlzDQo+IGJlZm9yZSB0aGUgcmVsZWFzZSksIHdlIGNhbiB0YXJnZXQgMjEu MDIuIEFmdGVyIGFsbCwgZXZlcnlib2R5IGxpdmVzDQo+IHdpdGggdGhpcyBidWcgc2luY2UgMjAx Nywgc28gdGhlcmUgaXMgbm8gdXJnZW5jeS4gSWYgYWNjZXB0ZWQgYW5kIHdlbGwNCj4gdGVzdGVk LCBpdCBjYW4gYmUgYmFja3BvcnRlZCBpbiBzdGFibGUgYnJhbmNoZXMuDQoNCisxDQoNCkdvb2Qg dGhpbmtpbmcsIE9saXZpZXIhDQoNCg==