From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 8677058C5 for ; Fri, 28 Oct 2016 19:00:46 +0200 (CEST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP; 28 Oct 2016 10:00:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,410,1473145200"; d="scan'208";a="25231777" Received: from irsmsx102.ger.corp.intel.com ([163.33.3.155]) by orsmga004.jf.intel.com with ESMTP; 28 Oct 2016 10:00:43 -0700 Received: from irsmsx103.ger.corp.intel.com ([169.254.3.190]) by IRSMSX102.ger.corp.intel.com ([169.254.2.226]) with mapi id 14.03.0248.002; Fri, 28 Oct 2016 18:00:42 +0100 From: "Richardson, Bruce" To: Adrien Mazarguil , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= Thread-Topic: [dpdk-dev] mbuf changes Thread-Index: AdIuDi107p4k5g0aQEmWpCYJ+64TpwAPchyA//+OlgCAARAHgIAACOMAgAAO/wCAABNXgIAAALWAgAARyoD///MVgIAAE+YA///wSICABMPaAIAACkyAgAAsPYD//+1n0A== Date: Fri, 28 Oct 2016 17:00:41 +0000 Message-ID: <59AF69C657FD0841A61C55336867B5B035B32000@IRSMSX103.ger.corp.intel.com> References: <98CBD80474FA8B44BF855DF32C47DC359EA8B7@smartserver.smartshare.dk> <20161025110444.GK5733@6wind.com> <20161025111357.GA43504@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BA@smartserver.smartshare.dk> <20161025122008.GA54704@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BB@smartserver.smartshare.dk> <20161025124508.GA59784@bricha3-MOBL3.ger.corp.intel.com> <4427b23b-e9c0-4e43-9c28-fb7e56da745c@6wind.com> <3AEA2BF9852C6F48A459DA490692831F010BF015@IRSMSX109.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8DB@smartserver.smartshare.dk> <20161028165005.GY5733@6wind.com> In-Reply-To: <20161028165005.GY5733@6wind.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTVlYjY5MWEtNTkxYi00OTdjLThmMTAtNzc2MDNmMzhjZWRmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6InpYMGk4N3BEaG95UFc4UmRQNjBOQlhGK1hjRmY3MWQ5em5pR0diRW1kU3c9In0= x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] mbuf changes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Oct 2016 17:00:47 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91 bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIEFkcmllbiBNYXphcmd1aWwNCj4gU2VudDogRnJp ZGF5LCBPY3RvYmVyIDI4LCAyMDE2IDU6NTAgUE0NCj4gVG86IE1vcnRlbiBCcsO4cnVwIDxtYkBz bWFydHNoYXJlc3lzdGVtcy5jb20+DQo+IENjOiBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6 IFtkcGRrLWRldl0gbWJ1ZiBjaGFuZ2VzDQo+IA0KPiBPbiBGcmksIE9jdCAyOCwgMjAxNiBhdCAw NDoxMTo0NVBNICswMjAwLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPiBDb21tZW50cyBhdCB0 aGUgZW5kLg0KPiA+DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJv bTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBQYXR0YW4s IFJlc2htYQ0KPiA+ID4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDI4LCAyMDE2IDM6MzUgUE0NCj4g PiA+IFRvOiBPbGl2aWVyIE1hdHoNCj4gPiA+IENjOiBkZXZAZHBkay5vcmc7IE1vcnRlbiBCcsO4 cnVwDQo+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBtYnVmIGNoYW5nZXMNCj4gPiA+DQo+ ID4gPiBIaSBPbGl2aWVyLA0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPiA+ID4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJl aGFsZiBPZiBPbGl2aWVyIE1hdHoNCj4gPiA+ID4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyNSwg MjAxNiAxOjQ5IFBNDQo+ID4gPiA+IFRvOiBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFy ZHNvbkBpbnRlbC5jb20+OyBNb3J0ZW4gQnLDuHJ1cA0KPiA+ID4gPiA8bWJAc21hcnRzaGFyZXN5 c3RlbXMuY29tPg0KPiA+ID4gPiBDYzogQWRyaWVuIE1hemFyZ3VpbCA8YWRyaWVuLm1hemFyZ3Vp bEA2d2luZC5jb20+OyBXaWxlcywgS2VpdGgNCj4gPiA+ID4gPGtlaXRoLndpbGVzQGludGVsLmNv bT47IGRldkBkcGRrLm9yZzsgT2xlZyBLdXBvcm9zb3YNCj4gPiA+ID4gPG9sZWdrQG1lbGxhbm94 LmNvbT4NCj4gPiA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gbWJ1ZiBjaGFuZ2VzDQo+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IE9uIDEwLzI1LzIwMTYgMDI6NDUgUE0sIEJy dWNlIFJpY2hhcmRzb24gd3JvdGU6DQo+ID4gPiA+ID4gT24gVHVlLCBPY3QgMjUsIDIwMTYgYXQg MDI6MzM6NTVQTSArMDIwMCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4gPiA+ID4+IENvbW1l bnRzIGF0IHRoZSBlbmQuDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4+IE1lZCB2ZW5saWcgaGlsc2Vu IC8ga2luZCByZWdhcmRzDQo+ID4gPiA+ID4+IC0gTW9ydGVuIEJyw7hydXANCj4gPiA+ID4gPj4N Cj4gPiA+ID4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4+PiBGcm9t OiBCcnVjZSBSaWNoYXJkc29uIFttYWlsdG86YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb21dDQo+ ID4gPiA+ID4+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2IDI6MjAgUE0NCj4gPiA+ ID4gPj4+IFRvOiBNb3J0ZW4gQnLDuHJ1cA0KPiA+ID4gPiA+Pj4gQ2M6IEFkcmllbiBNYXphcmd1 aWw7IFdpbGVzLCBLZWl0aDsgZGV2QGRwZGsub3JnOyBPbGl2aWVyDQo+ID4gPiA+ID4+PiBNYXR6 OyBPbGVnIEt1cG9yb3Nvdg0KPiA+ID4gPiA+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gbWJ1 ZiBjaGFuZ2VzDQo+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+Pj4gT24gVHVlLCBPY3QgMjUsIDIwMTYg YXQgMDI6MTY6MjlQTSArMDIwMCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4gPiA+ID4+Pj4g Q29tbWVudHMgaW5saW5lLg0KPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4+Pj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4+Pj4+IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3Vu Y2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgQnJ1Y2UNCj4gPiA+ID4gPj4+Pj4gUmljaGFyZHNv bg0KPiA+ID4gPiA+Pj4+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2IDE6MTQgUE0N Cj4gPiA+ID4gPj4+Pj4gVG86IEFkcmllbiBNYXphcmd1aWwNCj4gPiA+ID4gPj4+Pj4gQ2M6IE1v cnRlbiBCcsO4cnVwOyBXaWxlcywgS2VpdGg7IGRldkBkcGRrLm9yZzsgT2xpdmllciBNYXR6Ow0K PiA+ID4gPiA+Pj4+PiBPbGVnIEt1cG9yb3Nvdg0KPiA+ID4gPiA+Pj4+PiBTdWJqZWN0OiBSZTog W2RwZGstZGV2XSBtYnVmIGNoYW5nZXMNCj4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPj4+Pj4gT24g VHVlLCBPY3QgMjUsIDIwMTYgYXQgMDE6MDQ6NDRQTSArMDIwMCwgQWRyaWVuIE1hemFyZ3VpbA0K PiA+ID4gd3JvdGU6DQo+ID4gPiA+ID4+Pj4+PiBPbiBUdWUsIE9jdCAyNSwgMjAxNiBhdCAxMjox MTowNFBNICswMjAwLCBNb3J0ZW4gQnLDuHJ1cA0KPiB3cm90ZToNCj4gPiA+ID4gPj4+Pj4+PiBD b21tZW50cyBpbmxpbmUuDQo+ID4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4gPj4+Pj4+PiBNZWQgdmVu bGlnIGhpbHNlbiAvIGtpbmQgcmVnYXJkcw0KPiA+ID4gPiA+Pj4+Pj4+IC0gTW9ydGVuIEJyw7hy dXANCj4gPiA+ID4gPj4+Pj4+Pg0KPiA+ID4gPiA+Pj4+Pj4+DQo+ID4gPiA+ID4+Pj4+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4+Pj4+Pj4+IEZyb206IEFkcmllbiBN YXphcmd1aWwNCj4gPiA+ID4gPj4+Pj4+Pj4gW21haWx0bzphZHJpZW4ubWF6YXJndWlsQDZ3aW5k LmNvbV0NCj4gPiA+ID4gPj4+Pj4+Pj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyNSwgMjAxNiAx MTozOSBBTQ0KPiA+ID4gPiA+Pj4+Pj4+PiBUbzogQnJ1Y2UgUmljaGFyZHNvbg0KPiA+ID4gPiA+ Pj4+Pj4+PiBDYzogV2lsZXMsIEtlaXRoOyBNb3J0ZW4gQnLDuHJ1cDsgZGV2QGRwZGsub3JnOyBP bGl2aWVyDQo+ID4gPiA+ID4+Pj4+Pj4+IE1hdHo7IE9sZWcgS3Vwb3Jvc292DQo+ID4gPiA+ID4+ Pj4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIG1idWYgY2hhbmdlcw0KPiA+ID4gPiA+Pj4+ Pj4+Pg0KPiA+ID4gPiA+Pj4+Pj4+PiBPbiBNb24sIE9jdCAyNCwgMjAxNiBhdCAwNToyNTozOFBN ICswMTAwLCBCcnVjZQ0KPiA+ID4gPiA+Pj4+Pj4+PiBSaWNoYXJkc29uDQo+ID4gPiA+ID4+PiB3 cm90ZToNCj4gPiA+ID4gPj4+Pj4+Pj4+IE9uIE1vbiwgT2N0IDI0LCAyMDE2IGF0IDA0OjExOjMz UE0gKzAwMDAsIFdpbGVzLCBLZWl0aA0KPiA+ID4gPiA+Pj4gd3JvdGU6DQo+ID4gPiA+ID4+Pj4+ Pj4+IFsuLi5dDQo+ID4gPiA+ID4+Pj4+Pj4+Pj4+IE9uIE9jdCAyNCwgMjAxNiwgYXQgMTA6NDkg QU0sIE1vcnRlbiBCcsO4cnVwDQo+ID4gPiA+ID4+Pj4+Pj4+IDxtYkBzbWFydHNoYXJlc3lzdGVt cy5jb20+IHdyb3RlOg0KPiA+ID4gPiA+Pj4+Pj4+PiBbLi4uXQ0KPiA+ID4gPiA+Pj4+DQo+ID4g PiA+ID4+Pj4+Pj4+PiBPbmUgb3RoZXIgcG9pbnQgSSdsbCBtZW50aW9uIGlzIHRoYXQgd2UgbmVl ZCB0byBoYXZlIGENCj4gPiA+ID4gPj4+Pj4+Pj4+IGRpc2N1c3Npb24gb24gaG93L3doZXJlIHRv IGFkZCBpbiBhIHRpbWVzdGFtcCB2YWx1ZSBpbnRvDQo+ID4gPiA+ID4+PiB0aGUNCj4gPiA+ID4g Pj4+Pj4+Pj4+IG1idWYuIFBlcnNvbmFsbHksIEkgdGhpbmsgaXQgY2FuIGJlIGluIGEgdW5pb24g d2l0aCB0aGUNCj4gPiA+ID4gPj4+Pj4gc2VxdWVuY2UNCj4gPiA+ID4gPj4+Pj4+Pj4+IG51bWJl ciB2YWx1ZSwgYnV0IEkgYWxzbyBzdXNwZWN0IHRoYXQgMzItYml0cyBvZiBhDQo+ID4gPiA+ID4+ PiB0aW1lc3RhbXANCj4gPiA+ID4gPj4+Pj4+Pj4+IGlzIG5vdCBnb2luZyB0byBiZSBlbm91Z2gg Zm9yDQo+ID4gPiA+ID4+Pj4+Pj4+IG1hbnkuDQo+ID4gPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4gPiA+ Pj4+Pj4+Pj4gVGhvdWdodHM/DQo+ID4gPiA+ID4+Pj4+Pj4+DQo+ID4gPiA+ID4+Pj4+Pj4+IElm IHdlIGNvbnNpZGVyIHRoYXQgdGltZXN0YW1wIHJlcHJlc2VudGF0aW9uIHNob3VsZCB1c2UNCj4g PiA+ID4gPj4+Pj4gbmFub3NlY29uZA0KPiA+ID4gPiA+Pj4+Pj4+PiBncmFudWxhcml0eSwgYSAz Mi1iaXQgdmFsdWUgbWF5IGxpa2VseSB3cmFwIGFyb3VuZCB0b28NCj4gPiA+ID4gPj4+IHF1aWNr bHkNCj4gPiA+ID4gPj4+Pj4+Pj4gdG8gYmUgdXNlZnVsLiBXZSBjYW4gYWxzbyBhc3N1bWUgdGhh dCBhcHBsaWNhdGlvbnMNCj4gPiA+IHJlcXVlc3RpbmcNCj4gPiA+ID4gPj4+Pj4+Pj4gdGltZXN0 YW1wcyBtYXkgY2FyZSBtb3JlIGFib3V0IGxhdGVuY3kgdGhhbiB0aHJvdWdocHV0LA0KPiA+ID4g PiA+Pj4+Pj4+PiBPbGVnDQo+ID4gPiA+ID4+Pj4+IGZvdW5kDQo+ID4gPiA+ID4+Pj4+Pj4+IHRo YXQgdXNpbmcgdGhlIHNlY29uZCBjYWNoZSBsaW5lIGZvciB0aGlzIHB1cnBvc2UgaGFkIGENCj4g PiA+ID4gPj4+Pj4gbm90aWNlYWJsZSBpbXBhY3QgWzFdLg0KPiA+ID4gPiA+Pj4+Pj4+Pg0KPiA+ ID4gPiA+Pj4+Pj4+PiAgWzFdIGh0dHA6Ly9kcGRrLm9yZy9tbC9hcmNoaXZlcy9kZXYvMjAxNi0N Cj4gPiA+IE9jdG9iZXIvMDQ5MjM3Lmh0bWwNCj4gPiA+ID4gPj4+Pj4+Pg0KPiA+ID4gPiA+Pj4+ Pj4+IEkgYWdyZWUgd2l0aCBPbGVnIGFib3V0IHRoZSBsYXRlbmN5IHZzLiB0aHJvdWdocHV0DQo+ ID4gPiA+ID4+Pj4+Pj4gaW1wb3J0YW5jZSBmb3INCj4gPiA+ID4gPj4+Pj4gc3VjaCBhcHBsaWNh dGlvbnMuDQo+ID4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4gPj4+Pj4+PiBJZiB5b3UgbmVlZCBoaWdo IHJlc29sdXRpb24gdGltZXN0YW1wcywgY29uc2lkZXIgdGhlbSB0bw0KPiA+ID4gPiA+Pj4+Pj4+ IGJlDQo+ID4gPiA+ID4+Pj4+IGdlbmVyYXRlZCBieSB0aGUgTklDIFJYIGRyaXZlciwgcG9zc2li bHkgYnkgdGhlIGhhcmR3YXJlDQo+ID4gPiA+ID4+Pj4+IGl0c2VsZg0KPiA+ID4gPiA+Pj4+PiAo aHR0cDovL3czbmV3Lm5hcGF0ZWNoLmNvbS9mZWF0dXJlcy90aW1lLXByZWNpc2lvbi9oYXJkd2Fy ZS0NCj4gPiA+IHRpbWUNCj4gPiA+ID4gPj4+Pj4gLSBzdGFtcCksIHNvIHRoZSB0aW1lc3RhbXAg YmVsb25ncyBpbiB0aGUgZmlyc3QgY2FjaGUgbGluZS4NCj4gPiA+ID4gPj4+Pj4gQW5kIEkgYW0g cHJvcG9zaW5nIHRoYXQgaXQgc2hvdWxkIGhhdmUgdGhlIGhpZ2hlc3QgcG9zc2libGUNCj4gPiA+ ID4gPj4+Pj4gYWNjdXJhY3ksIHdoaWNoIG1ha2VzIHRoZSB2YWx1ZSBoYXJkd2FyZSBkZXBlbmRl bnQuDQo+ID4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4gPj4+Pj4+PiBGdXJ0aGVybW9yZSwgSSBhbSBh cmd1aW5nIHRoYXQgd2UgbGVhdmUgaXQgdXAgdG8gdGhlDQo+ID4gPiA+ID4+PiBhcHBsaWNhdGlv bg0KPiA+ID4gPiA+Pj4+Pj4+IHRvDQo+ID4gPiA+ID4+Pj4+IGtlZXAgdHJhY2sgb2YgdGhlIHNs b3dseSBtb3ZpbmcgYml0cyAoaS5lLiBjb3VudGluZyB3aG9sZQ0KPiA+ID4gPiA+Pj4+PiBzZWNv bmRzLCBob3VycyBhbmQgY2FsZW5kYXIgZGF0ZSkgb3V0IG9mIGJhbmQsIHNvIHdlIGRvbid0DQo+ ID4gPiA+ID4+Pj4+IHVzZSBwcmVjaW91cw0KPiA+ID4gPiA+Pj4gc3BhY2UNCj4gPiA+ID4gPj4+ Pj4gaW4gdGhlIG1idWYuIFRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IG5lZWQgdGhlIE5JQyBSWA0K PiA+ID4gPiA+Pj4+PiBkcml2ZXIncyBmYXN0IHBhdGggdG8gY2FwdHVyZSB3aGljaCBkYXRlIChv ciBldmVuIHdoaWNoDQo+ID4gPiA+ID4+Pj4+IHNlY29uZCkgYSBwYWNrZXQgd2FzIHJlY2VpdmVk LiBZZXMsIGl0IGFkZHMgY29tcGxleGl0eSB0bw0KPiA+ID4gPiA+Pj4+PiB0aGUgYXBwbGljYXRp b24sIGJ1dA0KPiA+ID4gd2UNCj4gPiA+ID4gPj4+Pj4gY2FuJ3Qgc2V0IGFzaWRlIDY0IGJpdCBm b3IgYSBnZW5lcmljIHRpbWVzdGFtcC4gT3IgYXMgYQ0KPiA+ID4gPiA+Pj4+PiB3ZWlyZA0KPiA+ ID4gdHJhZGVvZmY6DQo+ID4gPiA+ID4+Pj4+IFB1dCB0aGUgZmFzdCBtb3ZpbmcgMzIgYml0IGlu IHRoZSBmaXJzdCBjYWNoZSBsaW5lIGFuZCB0aGUNCj4gPiA+ID4gPj4+Pj4gc2xvdyBtb3Zpbmcg MzIgYml0IGluIHRoZSBzZWNvbmQgY2FjaGUgbGluZSwgYXMgYQ0KPiA+ID4gPiA+Pj4+PiBwbGFj ZWhvbGRlciBmb3INCj4gPiA+IHRoZQ0KPiA+ID4gPiA+Pj4gYXBwbGljYXRpb24gdG8gZmlsbCBv dXQgaWYgbmVlZGVkLg0KPiA+ID4gPiA+Pj4+PiBZZXMsIGl0IG1lYW5zIHRoYXQgdGhlIGFwcGxp Y2F0aW9uIG5lZWRzIHRvIGNoZWNrIHRoZSB0aW1lDQo+ID4gPiA+ID4+Pj4+IGFuZCB1cGRhdGUg aXRzIHZhcmlhYmxlIGhvbGRpbmcgdGhlIHNsb3cgbW92aW5nIHRpbWUgb25jZQ0KPiA+ID4gPiA+ Pj4+PiBldmVyeSBzZWNvbmQgb3Igc287IGJ1dCB0aGF0IHNob3VsZCBiZSBkb2FibGUgd2l0aG91 dA0KPiA+ID4gPiA+Pj4+PiBzaWduaWZpY2FudA0KPiA+ID4gZWZmb3J0Lg0KPiA+ID4gPiA+Pj4+ Pj4NCj4gPiA+ID4gPj4+Pj4+IFRoYXQncyBhIGdvb2QgcG9pbnQsIGhvd2V2ZXIgd2l0aG91dCBh IDY0IGJpdCB2YWx1ZSwNCj4gPiA+ID4gPj4+Pj4+IGVsYXBzZWQgdGltZSBiZXR3ZWVuIHR3byBh cmJpdHJhcnkgbWJ1ZnMgY2Fubm90IGJlIG1lYXN1cmVkDQo+ID4gPiA+ID4+Pj4+PiByZWxpYWJs eSBkdWUgdG8NCj4gPiA+ID4gPj4+IG5vdA0KPiA+ID4gPiA+Pj4+Pj4gZW5vdWdoIGNvbnRleHQs IG9uZSB3YXkgb3IgYW5vdGhlciB0aGUgbG93IHJlc29sdXRpb24gdmFsdWUNCj4gPiA+ID4gPj4+ Pj4+IGlzIGFsc28NCj4gPiA+ID4gPj4+Pj4gbmVlZGVkLg0KPiA+ID4gPiA+Pj4+Pj4NCj4gPiA+ ID4gPj4+Pj4+IE9idmlvdXNseSBsYXRlbmN5LXNlbnNpdGl2ZSBhcHBsaWNhdGlvbnMgYXJlIHVu bGlrZWx5IHRvDQo+ID4gPiA+ID4+Pj4+PiBwZXJmb3JtIGxlbmd0aHkgYnVmZmVyaW5nIGFuZCBy ZXF1aXJlIHRoaXMgYnV0IEknbSBub3Qgc3VyZQ0KPiA+ID4gPiA+Pj4+Pj4gYWJvdXQgYWxsIHRo ZSBwb3NzaWJsZSB1c2UtY2FzZXMuIENvbnNpZGVyaW5nIG1hbnkgTklDcw0KPiA+ID4gPiA+Pj4+ Pj4gZXhwb3NlDQo+ID4gPiA+ID4+Pj4+PiA2NCBiaXQNCj4gPiA+ID4gPj4+IHRpbWVzdGFwcywN Cj4gPiA+ID4gPj4+Pj4+IEkgc3VnZ2VzdCB3ZSBkbyBub3QgdHJ1bmNhdGUgdGhlbS4NCj4gPiA+ ID4gPj4+Pj4+DQo+ID4gPiA+ID4+Pj4+PiBJJ20gbm90IGEgZmFuIG9mIHRoZSB3ZWlyZCB0cmFk ZW9mZiBlaXRoZXIsIFBNRHMgd2lsbCBiZQ0KPiA+ID4gPiA+Pj4+Pj4gdGVtcHRlZCB0byBmaWxs IHRoZSBleHRyYSAzMiBiaXRzIHdoZW5ldmVyIHRoZXkgY2FuIGFuZA0KPiA+ID4gPiA+Pj4+Pj4g bmVnYXRlIHRoZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBvZiB0aGUgZmlyc3QgY2FjaGUgbGlu ZS4NCj4gPiA+ID4gPj4+Pj4NCj4gPiA+ID4gPj4+Pj4gSSB3b3VsZCB0ZW5kIHRvIGFncmVlLCBh bmQgSSBkb24ndCByZWFsbHkgc2VlIGFueSBjb252ZW5pZW50DQo+ID4gPiB3YXkNCj4gPiA+ID4g Pj4+Pj4gdG8gYXZvaWQgcHV0dGluZyBpbiBhIDY0LWJpdCBmaWVsZCBmb3IgdGhlIHRpbWVzdGFt cCBpbg0KPiA+ID4gPiA+Pj4+PiBjYWNoZS0NCj4gPiA+IGxpbmUgMC4NCj4gPiA+ID4gPj4+Pj4g SWYgd2UgYXJlIG9rIHdpdGggaGF2aW5nIHRoaXMgb3ZlcmxhcC9wYXJ0aWFsbHkgb3ZlcmxhcCB3 aXRoDQo+ID4gPiA+ID4+Pj4+IHNlcXVlbmNlIG51bWJlciwgaXQgd2lsbCB1c2UgdXAgYW4gZXh0 cmEgNEIgb2Ygc3RvcmFnZSBpbg0KPiA+ID4gPiA+Pj4+PiB0aGF0DQo+ID4gPiA+ID4+PiBjYWNo ZWxpbmUuDQo+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPj4+PiBJIGFncmVlIGFib3V0IHRoZSBsYWNr IG9mIGNvbnZlbmllbmNlISBBbmQgQWRyaWVuIGNlcnRhaW5seQ0KPiA+ID4gPiA+Pj4+IGhhcw0K PiA+ID4gYQ0KPiA+ID4gPiA+Pj4gcG9pbnQgYWJvdXQgUE1EIHRlbXB0YXRpb25zLg0KPiA+ID4g PiA+Pj4+DQo+ID4gPiA+ID4+Pj4gSG93ZXZlciwgSSBzdGlsbCBkb24ndCB0aGluayB0aGF0IGEg TklDcyBhYmlsaXR5IHRvDQo+ID4gPiA+ID4+Pj4gZGF0ZS1zdGFtcCBhDQo+ID4gPiA+ID4+PiBw YWNrZXQgaXMgc3VmZmljaWVudCByZWFzb24gdG8gcHV0IGEgZGF0ZS1zdGFtcCBpbiBjYWNoZSBs aW5lDQo+ID4gPiA+ID4+PiAwDQo+ID4gPiBvZg0KPiA+ID4gPiA+Pj4gdGhlIG1idWYuIFN0b3Jp bmcgb25seSB0aGUgZmFzdCBtb3ZpbmcgMzIgYml0IGluIGNhY2hlIGxpbmUgMA0KPiA+ID4gPiA+ Pj4gc2VlbXMgbGlrZSBhIGdvb2QgY29tcHJvbWlzZSB0byBtZS4NCj4gPiA+ID4gPj4+Pg0KPiA+ ID4gPiA+Pj4+IE1heWJlIHlvdSBjYW4gZmluZCBqdXN0IG9uZSBtb3JlIGJ5dGUsIHNvIGl0IGNh biBob2xkIDE3DQo+ID4gPiA+ID4+Pj4gbWludXRlcyB3aXRoIG5hbm9zZWNvbmQgcmVzb2x1dGlv bi4gKEknbSBqb2tpbmchKQ0KPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4+Pj4gUGxlYXNlIGRvbid0 IHNhY3JpZmljZSB0aGUgc2VxdWVuY2UgbnVtYmVyIGZvciB0aGUNCj4gPiA+ID4gPj4+PiBzZWNv bmRzL2hvdXJzL2RheXMNCj4gPiA+ID4gPj4+IHBhcnQgYSB0aW1lc3RhbXAuIE1heWJlIGl0IGNv dWxkIGJlIGNvbmZpZ3VyYWJsZSB0byB1c2UgYSAzMg0KPiA+ID4gPiA+Pj4gYml0IG9yDQo+ID4g PiA+ID4+PiA2NCBiaXQgdGltZXN0YW1wLg0KPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4+PiBEbyB5 b3Ugc2VlIGJvdGggdGltZXN0YW1wIGFuZCBzZXF1ZW5jZSBudW1iZXJzIGJlaW5nIHVzZWQNCj4g PiA+IHRvZ2V0aGVyPw0KPiA+ID4gPiA+Pj4gSSB3b3VsZCBoYXZlIHRob3VnaHQgdGhhdCBhcHBz IHdvdWxkIGVpdGhlciB1c2Ugb25lIG9yIHRoZQ0KPiBvdGhlcj8NCj4gPiA+ID4gPj4+IEhvd2V2 ZXIsIHlvdXIgc3VnZ2VzdGlvbiBpcyB3b3JrYWJsZSBpbiBhbnkgY2FzZSwgdG8gYWxsb3cgdGhl DQo+ID4gPiA+ID4+PiBzZXF1ZW5jZSBudW1iZXIgdG8gb3ZlcmxhcCBqdXN0IHRoZSBoaWdoIDMy IGJpdHMgb2YgdGhlDQo+ID4gPiB0aW1lc3RhbXAsDQo+ID4gPiA+ID4+PiByYXRoZXIgdGhhbiB0 aGUgbG93Lg0KPiA+ID4gPiA+Pg0KPiA+ID4gPiA+PiBJbiBvdXIgY2FzZSwgSSBjYW4gZm9yZXNl ZSBzZXF1ZW5jZSBudW1iZXJzIHVzZWQgZm9yIHBhY2tldA0KPiA+ID4gPiA+PiBwcm9jZXNzaW5n IGFuZA0KPiA+ID4gPiB0aW1lc3RhbXBzIGZvciB0aW1pbmcgYW5hbHlzaXMgKGFuZCBwb3NzaWJs eSBmb3IgcGFja2V0IGNhcHR1cmluZywNCj4gPiA+ID4gd2hlbiBiZWluZyB1c2VkKS4gRm9yIHRp bWluZyBhbmFseXNpcywgd2UgZG9u4oCZdCBuZWVkIGxvbmcNCj4gPiA+ID4gZHVyYXRpb25zLCBl LmcuIDQgc2Vjb25kcyB3aXRoIDMyIGJpdCBuYW5vc2Vjb25kIHJlc29sdXRpb24NCj4gPiA+ID4g c3VmZmljZXMuIEFuZCBmb3IgcGFja2V0IGNhcHR1cmluZyB3ZSBhcmUgcGVyZmVjdGx5IGNhcGFi bGUgb2YNCj4gPiA+ID4gYWRkaW5nIHRoZSBzbG93bHkgbW92aW5nDQo+ID4gPiA+IDMyIGJpdCBv ZiB0aGUgdGltZXN0YW1wIHRvIG91ciBvdXRwdXQgZGF0YSBzdHJlYW0gd2l0aG91dCBmZXRjaGlu Zw0KPiA+ID4gPiBpdA0KPiA+ID4gZnJvbSB0aGUgbWJ1Zi4NCj4gPiA+ID4gPj4NCj4gPiA+ID4N Cj4gPiA+ID4gV2Ugc2hvdWxkIGtlZXAgaW4gbWluZCB0aGF0IHRvZGF5IHdlIGhhdmUgdGhlIHNl cW4gZmllbGQgYnV0IGl0IGlzDQo+ID4gPiBub3QNCj4gPiA+ID4gdXNlZCBieSBhbnkgUE1ELiBJ biBjYXNlIGl0IGlzIGltcGxlbWVudGVkLCB3b3VsZCBpdCBiZSBhDQo+ID4gPiA+IHBlci1xdWV1 ZQ0KPiA+ID4gc2VxdWVuY2UgbnVtYmVyPw0KPiA+ID4gPiBJcyBpdCB1c2VmdWwgZnJvbSBhbiBh cHBsaWNhdGlvbiB2aWV3Pw0KPiA+ID4gPg0KPiA+ID4gPiBUaGlzIGZpZWxkIGlzIG9ubHkgdXNl ZCBieSB0aGUgbGlicnRlX3Jlb3JkZXIgbGlicmFyeSwgYW5kIGluIG15DQo+ID4gPiA+IG9waW5p b24sIHdlIHNob3VsZCBjb25zaWRlciBtb3ZpbmcgaXQgaW4gdGhlIHNlY29uZCBjYWNoZSBsaW5l DQo+ID4gPiA+IHNpbmNlDQo+ID4gPiBpdCBpcyBub3QgZmlsbGVkIGJ5IHRoZSBQTUQuDQo+ID4g PiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gRm9yIHRoZSAzMi1iaXQgdGltZXN0YW1wIGNhc2UsIGl0 IG1pZ2h0IGJlIHVzZWZ1bCB0byBoYXZlIGENCj4gPiA+ID4gPiByaWdodC1zaGlmdCB2YWx1ZSBw YXNzZWQgaW4gdG8gdGhlIGV0aGRldiBkcml2ZXIuIElmIHdlIGFzc3VtZSBhDQo+ID4gPiBOSUMN Cj4gPiA+ID4gPiB3aXRoIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiwgKG9yIFRTQyB2YWx1ZSB3aXRo IHJlc29sdXRpb24gb2YNCj4gPiA+ID4gPiB0aGF0IG9yZGVyIG9mIG1hZ25pdHVkZSksIHRoZW4g dGhlIGFwcCBjYW4gY2hvb3NlIHRvIGhhdmUgMSBucw0KPiA+ID4gcmVzb2x1dGlvbg0KPiA+ID4g PiA+IHdpdGggNCBzZWNvbmQgd3JhcGFyb3VuZCwgb3IgYWx0ZXJuYXRpdmVseSA0bnMgcmVzb2x1 dGlvbiB3aXRoDQo+ID4gPiA+ID4gMTYgc2Vjb25kIHdyYXBhcm91bmQsIG9yIGV2ZW4gbWljcm9z ZWNvbmQgcmVzb2x1dGlvbiB3aXRoIHdyYXANCj4gPiA+ID4gPiBhcm91bmQgb2Ygb3Zlcg0KPiA+ ID4gPiBhbiBob3VyLg0KPiA+ID4gPiA+IFRoZSBjb3N0IGlzIG9idmlvdXNseSBqdXN0IGEgc2hp ZnQgb3AgaW4gdGhlIGRyaXZlciBjb2RlIHBlcg0KPiA+ID4gPiA+IHBhY2tldA0KPiA+ID4gPiA+ IC0gaG9wZWZ1bGx5IHdpdGggbXVsdGlwbGUgcGFja2V0cyBkb25lIGF0IGEgdGltZSB1c2luZyB2 ZWN0b3INCj4gPiA+IG9wZXJhdGlvbnMuDQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IEFib3V0 IHRoZSB0aW1lc3RhbXAsIHdlIGNhbiBtYW5hZ2UgdG8gZmluZCA2NCBiaXRzIGluIHRoZSBmaXJz dA0KPiA+ID4gPiBjYWNoZSBsaW5lLCB3aXRob3V0IHNhY3JpZnlpbmcgYW55IGZpZWxkIHdlIGhh dmUgdG9kYXkuIFRoZQ0KPiA+ID4gPiBxdWVzdGlvbiBpcw0KPiA+ID4gbW9yZQ0KPiA+ID4gPiBm b3IgdGhlIGZpZWxkcyB3ZSBtYXkgd2FudCB0byBhZGQgbGF0ZXIuDQo+ID4gPiA+DQo+ID4gPiA+ IFRvIGFuc3dlciB0byB0aGUgcXVlc3Rpb24gb2YgdGhlIHNpemUgb2YgdGhlIHRpbWVzdGFtcCwg dGhlIGZpcnN0DQo+ID4gPiA+IHF1ZXN0aW9uIGlzIHRvIGtub3cgd2hhdCBpcyB0aGUgcHJlY2lz aW9uIHJlcXVpcmVkIGZvciB0aGUNCj4gPiA+IGFwcGxpY2F0aW9ucyB1c2luZyBpdD8NCj4gPiA+ DQo+ID4gPiBBcyBwYXJ0IG9mIHRoZSAxNy4wMiBsYXRlbmN5IGNhbGN1bGF0aW9uIGZlYXR1cmUs IHRoZSByZXF1aXJlbWVudCBpcw0KPiA+ID4gdG8gcmVwb3J0IGxhdGVuY3kgaW4gbmFub3NlY29u ZHMuIFNvLCArMSBvbiBrZWVwaW5nIHRpbWVzdGFtcCBhcw0KPiA2NGJpdHMuDQo+ID4gPiBTaW5j ZSB0aGUgZmVhdHVyZSBpcyBwbGFubmVkIGZvciAxNy4wMiwgY2FuIHdlIGZpbmFsaXplIG9uIHRo ZQ0KPiA+ID4gdGltZXN0YW1wIHBvc2l0aW9uIGluIHRoZSBtYnVmIHN0cnVjdD8NCj4gPiA+IEJh c2VkIG9uIHRoZSBkZWNpc2lvbiwgSSBhbSBwbGFubmluZyB0byBtYWtlIHRoZSBjaGFuZ2UgYW5k IHNlbmQgQUJJDQo+ID4gPiBub3RpY2UgaWYgbmVlZGVkLg0KPiA+ID4NCj4gPiA+IFJlc2htYQ0K PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gSSBkb24ndCBxdWl0ZSBsaWtlIHRoZSBpZGVhIG9mIHNw bGl0dGluZyB0aGUgdGltZXN0YW1wIGluIHRoZSAyDQo+ID4gPiA+IGNhY2hlIGxpbmVzLCBJIHRo aW5rIGl0IHdvdWxkIG5vdCBiZSBlYXN5IHRvIHVzZS4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ ID4gT2xpdmllcg0KPiA+DQo+ID4gTmFub3NlY29uZCBwcmVjaXNpb24gaW4gbGF0ZW5jeSBjYWxj dWxhdGlvbnMgZG9lcyBub3QgcmVxdWlyZSBtb3JlIHRoYW4NCj4gMzIgYml0LCB1bmxlc3Mgd2Ug bXVzdCBhbHNvIGJlIGFibGUgdG8gbWVhc3VyZSBtb3JlIHRoYW4gNCBzZWNvbmRzIG9mDQo+IGxh dGVuY3kuIEFuZCBwbGVhc2UgY29uc2lkZXIgaG93IG1hbnkgcGFja2V0cyB3ZSB3b3VsZCBuZWVk IHRvIGhvbGQgaW4NCj4gbWVtb3J5IHRvIGtlZXAgdHJhY2sgb2YgNCBzZWNvbmRzIG9mIHRyYWZm aWMgb24gYSAxMDAgR2JpdC9zIGxpbmsgKGlmIHdlDQo+IGFyZSBtZWFzdXJpbmcgbmV0d29yayBs YXRlbmN5KTogV2l0aCBhbiBhdmVyYWdlIHBhY2tldCBzaXplIG9mIDMwMCBCIHRoYXQNCj4gd291 bGQgYmUgNDAgbWlsbGlvbiBwYWNrZXRzLg0KPiANCj4gQ29uc2lkZXIgYW5vdGhlciwgcGVyaGFw cyBtb3JlIHJlYWxpc3RpYyB1c2UtY2FzZToga2VlcGluZyBhIGZldyByZWxldmFudA0KPiBwYWNr ZXRzIGZyb20gYSBzdHJlYW0gZm9yIGxhdGVyIGFuYWx5c2lzLCB3aGljaCBjb3VsZCBvY2N1ciBv dXRzaWRlIG9mIHRoZQ0KPiBub3JtYWwgVFggcHJvY2Vzc2luZyBwYXRoIGZvciBwZXJmb3JtYW5j ZSByZWFzb25zLiBJbiB0aGlzIGNhc2UgNCBzZWNvbmRzDQo+IHdvcnRoIG9mIGNvbnRleHQgbWF5 IG5vdCBiZSBlbm91Z2ggdG8gYXZvaWQgbG9zaW5nIGluZm9ybWF0aW9uLg0KPiANCj4gPiBJZiBJ IHJlY2FsbCBjb3JyZWN0bHksIHRoZSAxNy4wMiBmZWF0dXJlIGlzIGFib3V0IG1lYXN1cmluZyBh cHBsaWNhdGlvbg0KPiBsYXRlbmN5LCBub3QgbmV0d29yayBsYXRlbmN5IChhcyBteSBjYWxjdWxh dGlvbiBhYm92ZSBpcyBhYm91dCkuIEkgZG9uJ3QNCj4gY29uc2lkZXIgYXBwbGljYXRpb24gbGF0 ZW5jeSBtZWFzdXJpbmcgYSBjb21tb24gZmVhdHVyZSBmb3IgbW9zdA0KPiBhcHBsaWNhdGlvbnMs IGV4Y2VwdCBmb3IgYXBwbGljYXRpb24gZGVidWdnaW5nL3Byb2ZpbGluZyBwdXJwb3NlcyAobm90 DQo+IG5ldHdvcmsgZGVidWdnaW5nIHB1cnBvc2VzKS4gU28gZG8gd2UgcmVhbGx5IG5lZWQgYm90 aCBuYW5vc2Vjb25kDQo+IHByZWNpc2lvbiBhbmQgdGhlIGFiaWxpdHkgdG8gbWVhc3VyZSA0KyBz ZWNvbmRzIG9mIGxhdGVuY3k/DQo+IA0KPiBFeGlzdGluZyBIVyBjYW4gYWxyZWFkeSBwcm92aWRl IDY0LWJpdCBwcmVjaXNpb24sIHdoeSB0cnVuY2F0ZSBwYXJ0IG9mIGl0Pw0KPiBUaGUgb25seSB2 YWxpZCByZWFzb24gd291bGQgYmUgdGhhdCB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gaW4gdGhl IG1idWYNCj4gaGVhZGVyLCB3aGljaCBpcyBub3QgdGhlIGNhc2UuIExvb2tzIGxpa2UgdG9kYXkg dGhlcmUgaXMgZXZlbiBlbm91Z2ggcm9vbQ0KPiBpbiB0aGUgZmlyc3QgNjQgYnl0ZXMuDQo+IA0K PiBBcyBzdWdnZXN0ZWQgYnkgQnJ1Y2UsIHdlIGNhbiBldmVuIHVuaW9uIChwYXJ0IG9mKSB0aGlz IGZpZWxkIHdpdGggYW5vdGhlcg0KPiBpZiBuZWNlc3NhcnksIGFzIGxvbmcgYXMgd2UgbWFrZSBz dXJlIGJvdGggY2Fubm90IGJlIHJlcXVlc3RlZCBhdCB0aGUgc2FtZQ0KPiB0aW1lIChkZXRlcm1p bmluZyB3aGljaCBmaWVsZCBzaG91bGQgYmUgc2FjcmlmaWNlZCBpcyBnb2luZyB0byBiZSB0cmlj a3kNCj4gdGhvdWdoKS4NCj4gDQo+ID4gRnVydGhlcm1vcmUsIGlmIHRoZSB0aW1lc3RhbXAgaXNu J3Qgc2V0IGJ5IGhhcmR3YXJlLCB3aHkgbm90IGp1c3QgdGFrZQ0KPiB0aGUgZW50aXJlIGFycmF5 IG9mIHBhY2tldHMgcHVsbGVkIG91dCBmcm9tIHRoZSBOSUMgYW5kIHNldCB0aGVpcg0KPiB0aW1l c3RhbXAgdG8gdGhlIHNhbWUgdmFsdWUsIGluc3RlYWQgb2Ygc2V0dGluZyB0aGVtIG9uZSBieSBv bmUgaW4gdGhlIFBNRA0KPiAtIHRoYXQgd291bGQgYWxzbyBjb25zb2xpZGF0ZSB0aGUgZXhwZW5z ZSBvZiBvYnRhaW5pbmcgdGhlIHRpbWUgZnJvbSBzb21lDQo+IGNsb2NrIHNvdXJjZS4NCj4gDQo+ IExpa2UgYW55IG9mZmxvYWQsIHNvbWUgUE1EIHByb2Nlc3NpbmcgaXMgZXhwZWN0ZWQgdG8gY29u dmVydCB0aGUgcG9zc2libHkNCj4gSFctc3BlY2lmaWMgdmFsdWUgdG8gYSBjb21tb24gbWJ1ZiBm b3JtYXQsIGhvd2V2ZXIgaWYgaGFyZHdhcmUgZG9lcyBub3QNCj4gcmVwb3J0IGFueSBraW5kIG9m IGluZm9ybWF0aW9uIHJlbGV2YW50IHRvIHRpbWVzdGFtcCBpbmRpdmlkdWFsIHBhY2tldHMsIEkN Cj4gZG8gbm90IHRoaW5rIHRoZSBQTUQgc2hvdWxkIGV4cG9zZSB0aGF0IGZlYXR1cmUgYW5kIGlt cGxlbWVudCBpdCBpbg0KPiBzb2Z0d2FyZS4gSXQgd291bGQgYmUgbXVjaCB3b3JzZSwgY2VydGFp bmx5IG5vdCB3aGF0IHRoZSBhcHBsaWNhdGlvbg0KPiB3YW50ZWQgYXMgaXQgY291bGQgaGF2ZSBk b25lIHRoZSBzYW1lIG9uIGl0cyBvd24uDQo+IA0KPiBXaGF0IG1hdHRlcnMgaXMgdG8ga25vdyB3 aGVuIE5JQyByZWNlaXZlcyBhIHBhY2tldCwgbm90IHdoZW4gdGhlDQo+IGFwcGxpY2F0aW9uIGZl dGNoZXMgaXQuIFlvdSBzaG91bGQgYXNzdW1lIHRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgZGVsYXkN Cj4gYmV0d2VlbiB0aGVzZSB0d28gZXZlbnRzLCBoZW5jZSB0aGUgbmVlZCBmb3IgaXQgdG8gYmUg b2ZmbG9hZGVkLg0KPiANCg0KSSB3b3VsZCBhY3R1YWxseSBzZWUgYm90aCB1c2UgY2FzZXMgYmVp bmcgdXNlZC4gSW4gc29tZSBjYXNlcywgTklDcyB3aWxsDQpoYXZlIGhhcmR3YXJlIG9mZmxvYWQg Y2FwYWJpbGl0eSBmb3IgdGltZXN0YW1waW5nIHdoaWNoIGNhbiBiZSB1c2VkLCB3aGlsZQ0KaW4g bWFueSBjYXNlcywgdGltZXN0YW1waW5nIG9uIHJldHJpZXZhbCBieSB0aGUgY29yZSB3aWxsIHN1 ZmZpY2UgZm9yDQpsYXRlbmN5IG1lYXN1cmVtZW50cyB3aXRoaW4gYW4gYXBwLiBJIGRvbid0IHRo aW5rIHdlIGNhbiBkaXNjb3VudCBlaXRoZXINCnBvc3NpYmlsaXR5LiBUaGFua2Z1bGx5LCBBRkFJ SyB3aGljaCBtb2RlbCBpcyB1c2VkIGRvZXNuJ3QgcmVhbGx5IGFmZmVjdA0Kd2hldGhlciB3ZSBu ZWVkIDMyIG9yIDY0IGJpdHMgZm9yIHRoZSBkYXRhLg0KDQovQnJ1Y2UNCg==