From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Carrillo, Erik G" Subject: Re: [PATCH 0/3] *** timer library enhancements *** Date: Thu, 24 Aug 2017 14:08:33 +0000 Message-ID: References: <1503499644-29432-1-git-send-email-erik.g.carrillo@intel.com> <3F9B5E47-8083-443E-96EE-CBC41695BE43@intel.com> <28C555FD-9BAB-4A6D-BB9B-37BD42B750AD@intel.com> <1ECD294B-EE81-4AFC-A838-C58B7379FB31@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "rsanford@akamai.com" , "dev@dpdk.org" To: "Wiles, Keith" Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id E1E277CC9 for ; Thu, 24 Aug 2017 16:08:35 +0200 (CEST) In-Reply-To: <1ECD294B-EE81-4AFC-A838-C58B7379FB31@intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV2lsZXMsIEtlaXRoDQo+ IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDIzLCAyMDE3IDQ6MDUgUE0NCj4gVG86IENhcnJpbGxv LCBFcmlrIEcgPGVyaWsuZy5jYXJyaWxsb0BpbnRlbC5jb20+DQo+IENjOiByc2FuZm9yZEBha2Ft YWkuY29tOyBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIDAv M10gKioqIHRpbWVyIGxpYnJhcnkgZW5oYW5jZW1lbnRzICoqKg0KPiANCj4gDQo+ID4gT24gQXVn IDIzLCAyMDE3LCBhdCAyOjI4IFBNLCBDYXJyaWxsbywgRXJpayBHIDxlcmlrLmcuY2FycmlsbG9A aW50ZWwuY29tPg0KPiB3cm90ZToNCj4gPg0KPiA+Pg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+PiBGcm9tOiBXaWxlcywgS2VpdGgNCj4gPj4gU2VudDogV2VkbmVzZGF5LCBB dWd1c3QgMjMsIDIwMTcgMTE6NTAgQU0NCj4gPj4gVG86IENhcnJpbGxvLCBFcmlrIEcgPGVyaWsu Zy5jYXJyaWxsb0BpbnRlbC5jb20+DQo+ID4+IENjOiByc2FuZm9yZEBha2FtYWkuY29tOyBkZXZA ZHBkay5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIDAvM10gKioqIHRp bWVyIGxpYnJhcnkgZW5oYW5jZW1lbnRzDQo+ID4+ICoqKg0KPiA+Pg0KPiA+Pg0KPiA+Pj4gT24g QXVnIDIzLCAyMDE3LCBhdCAxMToxOSBBTSwgQ2FycmlsbG8sIEVyaWsgRw0KPiA+Pj4gPGVyaWsu Zy5jYXJyaWxsb0BpbnRlbC5jb20+DQo+ID4+IHdyb3RlOg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0K PiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogV2lsZXMsIEtl aXRoDQo+ID4+Pj4gU2VudDogV2VkbmVzZGF5LCBBdWd1c3QgMjMsIDIwMTcgMTA6MDIgQU0NCj4g Pj4+PiBUbzogQ2FycmlsbG8sIEVyaWsgRyA8ZXJpay5nLmNhcnJpbGxvQGludGVsLmNvbT4NCj4g Pj4+PiBDYzogcnNhbmZvcmRAYWthbWFpLmNvbTsgZGV2QGRwZGsub3JnDQo+ID4+Pj4gU3ViamVj dDogUmU6IFtkcGRrLWRldl0gW1BBVENIIDAvM10gKioqIHRpbWVyIGxpYnJhcnkgZW5oYW5jZW1l bnRzDQo+ID4+Pj4gKioqDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+PiBPbiBBdWcgMjMsIDIwMTcs IGF0IDk6NDcgQU0sIEdhYnJpZWwgQ2FycmlsbG8NCj4gPj4+Pj4gPGVyaWsuZy5jYXJyaWxsb0Bp bnRlbC5jb20+DQo+ID4+Pj4gd3JvdGU6DQo+ID4+Pj4+DQo+ID4+Pj4+IEluIHRoZSBjdXJyZW50 IGltcGxlbWVudGF0aW9uIG9mIHRoZSBEUERLIHRpbWVyIGxpYnJhcnksIHRpbWVycw0KPiA+Pj4+ PiBjYW4gYmUgY3JlYXRlZCBhbmQgc2V0IHRvIGJlIGhhbmRsZWQgYnkgYSB0YXJnZXQgbGNvcmUg YnkgYWRkaW5nDQo+ID4+Pj4+IGl0IHRvIGEgc2tpcGxpc3QgdGhhdCBjb3JyZXNwb25kcyB0byB0 aGF0IGxjb3JlLiAgSG93ZXZlciwgaWYgYW4NCj4gPj4+Pj4gYXBwbGljYXRpb24gZW5hYmxlcyBt dWx0aXBsZSBsY29yZXMsIGFuZCBlYWNoIG9mIHRoZXNlIGxjb3Jlcw0KPiA+Pj4+PiByZXBlYXRl ZGx5IGF0dGVtcHRzIHRvIGluc3RhbGwgdGltZXJzIG9uIHRoZSBzYW1lIHRhcmdldCBsY29yZSwN Cj4gPj4+Pj4gb3ZlcmFsbCBhcHBsaWNhdGlvbiB0aHJvdWdocHV0IHdpbGwgYmUgcmVkdWNlZCBh cyBhbGwgbGNvcmVzDQo+ID4+Pj4+IGNvbnRlbmQgdG8gYWNxdWlyZSB0aGUgbG9jayBndWFyZGlu ZyB0aGUgc2luZ2xlIHNraXBsaXN0IG9mIHBlbmRpbmcNCj4gdGltZXJzLg0KPiA+Pj4+Pg0KPiA+ Pj4+PiBUaGlzIHBhdGNoc2V0IGFkZHJlc3NlcyB0aGlzIHNjZW5hcmlvIGJ5IGFkZGluZyBhbiBh cnJheSBvZg0KPiA+Pj4+PiBza2lwbGlzdHMgdG8gZWFjaCBsY29yZSdzIHByaXZfdGltZXIgc3Ry dWN0LCBzdWNoIHRoYXQgd2hlbiBsY29yZQ0KPiA+Pj4+PiBpIGluc3RhbGxzIGEgdGltZXIgb24g bGNvcmUgaywgdGhlIHRpbWVyIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGl0aA0KPiA+Pj4+PiBza2lw bGlzdCBmb3IgbGNvcmUgay4gIElmIGxjb3JlIGogaW5zdGFsbHMgYSB0aW1lciBvbiBsY29yZSBr DQo+ID4+Pj4+IHNpbXVsdGFuZW91c2x5LCBsY29yZXMgaSBhbmQgaiBjYW4gYm90aCBwcm9jZWVk IHNpbmNlIHRoZXkgd2lsbCBiZQ0KPiA+Pj4+PiBhY3F1aXJpbmcgZGlmZmVyZW50IGxvY2tzIGZv ciBkaWZmZXJlbnQgbGlzdHMuDQo+ID4+Pj4+DQo+ID4+Pj4+IFdoZW4gbGNvcmUgayBwcm9jZXNz ZXMgaXRzIHBlbmRpbmcgdGltZXJzLCBpdCB3aWxsIHRyYXZlcnNlIGVhY2gNCj4gPj4+Pj4gc2tp cGxpc3QgaW4gaXRzIGFycmF5IGFuZCBhY3F1aXJlIGEgc2tpcGxpc3QncyBsb2NrIHdoaWxlIGEg cnVuDQo+ID4+Pj4+IGxpc3QgaXMgYnJva2VuIG91dDsgbWVhbndoaWxlLCBhbGwgb3RoZXIgbGlz dHMgY2FuIGNvbnRpbnVlIHRvIGJlDQo+IG1vZGlmaWVkLg0KPiA+Pj4+PiBUaGVuLCBhbGwgcnVu IGxpc3RzIGZvciBsY29yZSBrIGFyZSBjb2xsZWN0ZWQgYW5kIHRyYXZlcnNlZA0KPiA+Pj4+PiB0 b2dldGhlciBzbyB0aW1lcnMgYXJlIGV4ZWN1dGVkIGluIHRoZWlyIGdsb2JhbCBvcmRlci4NCj4g Pj4+Pg0KPiA+Pj4+IFdoYXQgaXMgdGhlIHBlcmZvcm1hbmNlIGFuZC9vciBsYXRlbmN5IGFkZGVk IHRvIHRoZSB0aW1lb3V0IG5vdz8NCj4gPj4+Pg0KPiA+Pj4+IEkgd29ycnkgYWJvdXQgdGhlIGNh c2Ugd2hlbiBqdXN0IGFib3V0IGFsbCBvZiB0aGUgY29yZXMgYXJlDQo+ID4+Pj4gZW5hYmxlZCwg d2hpY2ggY291bGQgYmUgYXMgaGlnaCB3YXMgMTI4IG9yIG1vcmUgbm93Lg0KPiA+Pj4NCj4gPj4+ IFRoZXJlIGlzIGEgY2FzZSBpbiB0aGUgdGltZXJfcGVyZl9hdXRvdGVzdCB0aGF0IHJ1bnMNCj4g Pj4+IHJ0ZV90aW1lcl9tYW5hZ2UNCj4gPj4gd2l0aCB6ZXJvIHRpbWVycyB0aGF0IGNhbiBnaXZl IGEgc2Vuc2Ugb2YgdGhlIGFkZGVkIGxhdGVuY3kuICAgV2hlbiBydW4NCj4gd2l0aA0KPiA+PiBv bmUgbGNvcmUsIGl0IGNvbXBsZXRlcyBpbiBhcm91bmQgMjUgY3ljbGVzLiAgV2hlbiBydW4gd2l0 aCA0MyBsY29yZXMNCj4gPj4gKHRoZSBoaWdoZXN0IEkgaGF2ZSBhY2Nlc3MgdG8gYXQgdGhlIG1v bWVudCksIHJ0ZV90aW1lcl9tYW5nZQ0KPiA+PiBjb21wbGV0ZXMgaW4gYXJvdW5kIDE1NSBjeWNs ZXMuICBTbyBpdCBsb29rcyBsaWtlIGVhY2ggYWRkZWQgbGNvcmUNCj4gPj4gYWRkcyBhcm91bmQg MyBjeWNsZXMgb2Ygb3ZlcmhlYWQgZm9yIGNoZWNraW5nIGVtcHR5IGxpc3RzIGluIG15IHRlc3Rp bmcuDQo+ID4+DQo+ID4+IERvZXMgdGhpcyBtZWFuIHdlIGhhdmUgb25seSAyNSBjeWNsZXMgb24g dGhlIGN1cnJlbnQgZGVzaWduIG9yIGlzIHRoZQ0KPiA+PiAyNSBjeWNsZXMgZm9yIHRoZSBuZXcg ZGVzaWduPw0KPiA+Pg0KPiA+DQo+ID4gQm90aCAtIHdoZW4gcnVuIHdpdGggb25lIGxjb3JlLCB0 aGUgbmV3IGRlc2lnbiBiZWNvbWVzIGVxdWl2YWxlbnQgdG8gdGhlDQo+IG9yaWdpbmFsIG9uZS4g IEkgdGVzdGVkIHRoZSBjdXJyZW50IGRlc2lnbiB0byBjb25maXJtLg0KPiANCj4gR29vZCB0aGFu a3MNCj4gDQo+ID4NCj4gPj4gSWYgZm9yIHRoZSBuZXcgZGVzaWduLCB0aGVuIHdoYXQgaXMgdGhl IG9sZCBkZXNpZ24gY29zdCBjb21wYXJlZCB0bw0KPiA+PiB0aGUgbmV3IGNvc3QuDQo+ID4+DQo+ ID4+IEkgYWxzbyB0aGluayB3ZSBuZWVkIHRoZSBjYWxsIHRvIGEgdGltZXIgZnVuY3Rpb24gaW4g dGhlIGNhbGN1bGF0aW9uLA0KPiA+PiBqdXN0IHRvIG1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0 IG9uZSB0aW1lciBpbiB0aGUgbGlzdCBhbmQgd2UNCj4gPj4gYWNjb3VudCBmb3IgYW55IHNob3J0 IGN1dHMgaW4gdGhlIGNvZGUgZm9yIG5vIHRpbWVycyBhY3RpdmUuDQo+ID4+DQo+ID4NCj4gPiBM b29raW5nIGF0IHRoZSBudW1iZXJzIGZvciBub24tZW1wdHkgbGlzdHMgaW4gdGltZXJfcGVyZl9h dXRvdGVzdCwgdGhlDQo+IG92ZXJoZWFkIGFwcGVhcnMgdG8gZmFsbCBhd2F5LiAgSGVyZSBhcmUg c29tZSByZXByZXNlbnRhdGl2ZSBydW5zIGZvcg0KPiB0aW1lcl9wZXJmX2F1dG90ZXN0Og0KPiA+ DQo+ID4gNDMgbGNvcmVzIGVuYWJsZWQsIGluc3RhbGxpbmcgMU0gdGltZXJzIG9uIGFuIGxjb3Jl IGFuZCBwcm9jZXNzaW5nIHRoZW0NCj4gd2l0aCBjdXJyZW50IGRlc2lnbjoNCj4gPg0KPiA+IDwu Li5zbmlwcGVkLi4uPg0KPiA+IEFwcGVuZGluZyAxMDAwMDAwIHRpbWVycw0KPiA+IFRpbWUgZm9y IDEwMDAwMDAgdGltZXJzOiA0MjQwNjYyOTQgKDE5M21zKSwgVGltZSBwZXIgdGltZXI6IDQyNCAo MHVzKQ0KPiA+IFRpbWUgZm9yIDEwMDAwMDAgY2FsbGJhY2tzOiA3MzEyNDUwNCAoMzNtcyksIFRp bWUgcGVyIGNhbGxiYWNrOiA3Mw0KPiA+ICgwdXMpIFJlc2V0dGluZyAxMDAwMDAwIHRpbWVycyBU aW1lIGZvciAxMDAwMDAwIHRpbWVyczogMTQwNjc1NjM5Ng0KPiA+ICg2NDFtcyksIFRpbWUgcGVy IHRpbWVyOiAxNDA2ICgxdXMpIDwuLi5zbmlwcGVkLi4uPg0KPiA+DQo+ID4gNDMgbGNvcmVzIGVu YWJsZWQsIGluc3RhbGxpbmcgMU0gdGltZXJzIG9uIGFuIGxjb3JlIGFuZCBwcm9jZXNzaW5nIHRo ZW0NCj4gd2l0aCBwcm9wb3NlZCBkZXNpZ246DQo+ID4NCj4gPiA8Li4uc25pcHBlZC4uLj4NCj4g PiBBcHBlbmRpbmcgMTAwMDAwMCB0aW1lcnMNCj4gPiBUaW1lIGZvciAxMDAwMDAwIHRpbWVyczog MzgyOTEyNzYyICgxNzRtcyksIFRpbWUgcGVyIHRpbWVyOiAzODIgKDB1cykNCj4gPiBUaW1lIGZv ciAxMDAwMDAwIGNhbGxiYWNrczogNzkxOTQ0MTggKDM2bXMpLCBUaW1lIHBlciBjYWxsYmFjazog NzkNCj4gPiAoMHVzKSBSZXNldHRpbmcgMTAwMDAwMCB0aW1lcnMgVGltZSBmb3IgMTAwMDAwMCB0 aW1lcnM6IDE0MjcxODkxMTYNCj4gPiAoNjUwbXMpLCBUaW1lIHBlciB0aW1lcjogMTQyNyAoMXVz KSA8Li4uc25pcHBlZOKApj4NCj4gDQo+IGl0IGxvb2tzIG9rIHRoZW4uIFRoZSBtYWluIGNvbmNl cm4gSSBoYWQgd2FzIHRoZSB0aW1lcnMgaW4gUGt0Z2VuIGFuZA0KPiBzb21lb25lIHRlbGxpbmcg dGhlIGppdHRlciBpbmNyZWFzZSBvciBsYXRlbmN5IG9yIHBlcmZvcm1hbmNlLiBJIGd1ZXNzIEkg d2lsbA0KPiBqdXN0IGhhdmUgdG8gd2FpdCBhbiBzZWUuDQo+IA0KPiA+DQo+ID4gVGhlIGFib3Zl IGFyZSBub3QgYXZlcmFnZXMsIHNvIHRoZSBudW1iZXJzIGRvbid0IHJlYWxseSBpbmRpY2F0ZSB3 aGljaCBpcw0KPiBmYXN0ZXIsIGJ1dCB0aGV5IHNob3cgdGhhdCB0aGUgb3ZlcmhlYWQgb2YgdGhl IHByb3Bvc2VkIGRlc2lnbiBzaG91bGQgbm90DQo+IGJlIGFwcHJlY2lhYmxlLg0KPiA+DQo+ID4+ Pg0KPiA+Pj4+DQo+ID4+Pj4gT25lIG9wdGlvbiBpcyB0byBoYXZlIHRoZSBsY29yZSBqIHRoYXQg d2FudHMgdG8gaW5zdGFsbCBhIHRpbWVyIG9uDQo+ID4+Pj4gbGNvcmUgayB0byBwYXNzIGEgbWVz c2FnZSB2aWEgYSByaW5nIHRvIGxjb3JlIGsgdG8gYWRkIHRoYXQgdGltZXIuDQo+ID4+Pj4gV2Ug Y291bGQgZXZlbiBhZGQgdGhhdCBsb2dpYyBpbnRvIHNldHRpbmcgYSB0aW1lciBvbiBhIGRpZmZl cmVudA0KPiA+Pj4+IGxjb3JlIHRoZW4gdGhlIGNhbGxlciBpbiB0aGUgY3VycmVudCBBUEkuIFRo ZSByaW5nIHdvdWxkIGJlIGENCj4gPj4+PiBtdWx0aS1wcm9kdWNlciBhbmQNCj4gPj4gc2luZ2xl IGNvbnN1bWVyLCB3ZSBzdGlsbCBoYXZlIHRoZSBsb2NrLg0KPiA+Pj4+IFdoYXQgYW0gSSBtaXNz aW5nIGhlcmU/DQo+ID4+Pj4NCj4gPj4+DQo+ID4+PiBJIGRpZCB0cnkgdGhpcyBhcHByb2FjaDog aW5pdGlhbGx5IEkgaGFkIGEgbXVsdGktcHJvZHVjZXINCj4gPj4+IHNpbmdsZS1jb25zdW1lciBy aW5nDQo+ID4+IHRoYXQgd291bGQgaG9sZCByZXF1ZXN0cyB0byBhZGQgb3IgZGVsZXRlIGEgdGlt ZXIgZnJvbSBsY29yZSBrJ3MNCj4gPj4gc2tpcGxpc3QsIGJ1dCBpdCBkaWRuJ3QgcmVhbGx5IGdp dmUgYW4gYXBwcmVjaWFibGUgaW5jcmVhc2UgaW4gbXkgdGVzdA0KPiBhcHBsaWNhdGlvbiB0aHJv dWdocHV0Lg0KPiA+PiBJbiBwcm9maWxpbmcgdGhpcyBzb2x1dGlvbiwgdGhlIGhvdHNwb3QgaGFk IG1vdmVkIGZyb20gYWNxdWlyaW5nIHRoZQ0KPiA+PiBza2lwbGlzdCdzIHNwaW5sb2NrIHRvIHRo ZSBydGVfYXRvbWljMzJfY21wc2V0IHRoYXQgdGhlDQo+ID4+IG11bHRpcGxlLXByb2R1Y2VyIHJp bmcgY29kZSB1c2VzIHRvIG1hbmlwdWxhdGUgdGhlIGhlYWQgcG9pbnRlci4NCj4gPj4+DQo+ID4+ PiBUaGVuLCBJIHRyaWVkIG11bHRpcGxlIHNpbmdsZS1wcm9kdWNlciBzaW5nbGUtY29uc3VtZXIg cmluZ3MgcGVyDQo+ID4+PiB0YXJnZXQNCj4gPj4gbGNvcmUuICBUaGlzIHJlbW92ZWQgdGhlIHJp bmcgaG90c3BvdCwgYnV0IHRoZSBwZXJmb3JtYW5jZSBkaWRuJ3QNCj4gPj4gaW5jcmVhc2UgYXMg bXVjaCBhcyB3aXRoIHRoZSBwcm9wb3NlZCBzb2x1dGlvbi4gVGhlc2Ugc29sdXRpb25zIGFsc28N Cj4gPj4gYWRkIG92ZXJoZWFkIHRvIHJ0ZV90aW1lcl9tYW5hZ2UsIGFzIGl0IHdvdWxkIGhhdmUg dG8gcHJvY2VzcyB0aGUNCj4gPj4gcmluZ3MgYW5kIHRoZW4gcHJvY2VzcyB0aGUgc2tpcGxpc3Rz Lg0KPiA+Pj4NCj4gPj4+IE9uZSBvdGhlciB0aGluZyB0byBub3RlIGlzIHRoYXQgYSBzb2x1dGlv biB0aGF0IHVzZXMgc3VjaCBtZXNzYWdlcw0KPiA+Pj4gY2hhbmdlcw0KPiA+PiB0aGUgdXNlIG1v ZGVscyBmb3IgdGhlIHRpbWVyLiAgT25lIGludGVyZXN0aW5nIGV4YW1wbGUgaXM6DQo+ID4+PiAt IGxjb3JlIEkgZW5xdWV1ZXMgYSBtZXNzYWdlIHRvIGluc3RhbGwgYSB0aW1lciBvbiBsY29yZSBr DQo+ID4+PiAtIGxjb3JlIGsgcnVucyBydGVfdGltZXJfbWFuYWdlLCBwcm9jZXNzZXMgaXRzIG1l c3NhZ2VzIGFuZCBhZGRzIHRoZQ0KPiA+Pj4gdGltZXIgdG8gaXRzIGxpc3QNCj4gPj4+IC0gbGNv cmUgSSB0aGVuIGVucXVldWVzIGEgbWVzc2FnZSB0byBzdG9wIHRoZSBzYW1lIHRpbWVyLCBub3cg b3duZWQNCj4gPj4+IGJ5IGxjb3JlIGsNCj4gPj4+IC0gbGNvcmUgayBkb2VzIG5vdCBydW4gcnRl X3RpbWVyX21hbmFnZSBhZ2Fpbg0KPiA+Pj4gLSBsY29yZSBJIHdhbnRzIHRvIGZyZWUgdGhlIHRp bWVyIGJ1dCBpdCBtaWdodCBub3QgYmUgc2FmZQ0KPiA+Pg0KPiA+PiBUaGlzIGNhc2Ugc2VlbXMg bGlrZSBhIG1pc3Rha2UgdG8gbWUgYXMgbGNvcmUgayBzaG91bGQgY29udGludWUgdG8NCj4gPj4g Y2FsbA0KPiA+PiBydGVfdGltZXJfbWFuYWdlcigpIHRvIHByb2Nlc3MgYW55IG5ldyB0aW1lcnMg ZnJvbSBvdGhlciBsY29yZXMgbm90DQo+ID4+IGp1c3QgdGhlIGNhc2Ugd2hlcmUgdGhlIGxpc3Qg YmVjb21lcyBlbXB0eSBhbmQgbGNvcmUgayBkb2VzIG5vdCBhZGQNCj4gPj4gdGltZXIgdG8gaGlz IGxpc3QuDQo+ID4+DQo+ID4+Pg0KPiA+Pj4gRXZlbiB0aG91Z2ggbGNvcmUgSSBoYXMgc3VjY2Vz c2Z1bGx5IGVucXVldWVkIHRoZSByZXF1ZXN0IHRvIHN0b3ANCj4gPj4+IHRoZQ0KPiA+PiB0aW1l ciAoYW5kIGRlbGV0ZSBpdCBmcm9tIGxjb3JlIGsncyBwZW5kaW5nIGxpc3QpLCBpdCBoYXNuJ3Qg YWN0dWFsbHkNCj4gPj4gYmVlbiBkZWxldGVkIGZyb20gdGhlIGxpc3QgeWV0LCAgc28gZnJlZWlu ZyBpdCBjb3VsZCBjb3JydXB0IHRoZQ0KPiA+PiBsaXN0LiAgVGhpcyBjYXNlIGV4aXN0cyBpbiB0 aGUgZXhpc3RpbmcgdGltZXIgc3RyZXNzIHRlc3RzLg0KPiA+Pj4NCj4gPj4+IEFub3RoZXIgaW50 ZXJlc3Rpbmcgc2NlbmFyaW8gaXM6DQo+ID4+PiAtIGxjb3JlIEkgcmVzZXRzIGEgdGltZXIgdG8g aW5zdGFsbCBpdCBvbiBsY29yZSBrDQo+ID4+PiAtIGxjb3JlIGogcmVzZXRzIHRoZSBzYW1lIHRp bWVyIHRvIGluc3RhbGwgaXQgb24gbGNvcmUgaw0KPiA+Pj4gLSB0aGVuLCBsY29yZSBrIHJ1bnMg dGltZXJfbWFuYWdlDQo+ID4+DQo+ID4+IFRoaXMgb25lIGFsc28gc2VlbXMgbGlrZSBhIG1pc3Rh a2UsIG1vcmUgdGhlbiBvbmUgbGNvcmUgc2V0dGluZyB0aGUNCj4gPj4gc2FtZSB0aW1lciBzZWVt cyBsaWtlIGEgcHJvYmxlbSBhbmQgc2hvdWxkIG5vdCBiZSBkb25lLiBBIGxjb3JlDQo+ID4+IHNo b3VsZCBvd24gYSB0aW1lciBhbmQgbm8gb3RoZXIgbGNvcmUgc2hvdWxkIGJlIGFibGUgdG8gY2hh bmdlIHRoYXQNCj4gPj4gdGltZXIuIElmIG11bHRpcGxlIGxjb3JlcyBuZWVkIGEgdGltZXIgdGhl biB0aGV5IHNob3VsZCBub3Qgc2hhcmUgdGhlIHNhbWUNCj4gdGltZXIgc3RydWN0dXJlLg0KPiA+ Pg0KPiA+DQo+ID4gQm90aCBvZiB0aGUgYWJvdmUgY2FzZXMgZXhpc3QgaW4gdGhlIHRpbWVyIGxp YnJhcnkgc3RyZXNzIHRlc3RzLCBzbyBhIHNvbHV0aW9uDQo+IHdvdWxkIHByZXN1bWFibHkgbmVl ZCB0byBhZGRyZXNzIHRoZW0gb3IgaXQgd291bGQgYmUgbGVzcyBmbGV4aWJsZS4gIFRoZQ0KPiBv cmlnaW5hbCBkZXNpZ24gcGFzc2VkIHRoZXNlIHRlc3RzLCBhcyBkb2VzIHRoZSBwcm9wb3NlZCBv bmUuDQo+IA0KPiBJIGdldCB0aGlzIHR3aXRjaCB3aGVuIG9uZSBsY29yZSBpcyBhZGRpbmcgdGlt ZXJzIHRvIGFub3RoZXIgbGNvcmUgYXMgSSBjb21lDQo+IGZyb20gYSByZWFsdGltZSBPUyBiYWNr Z3JvdW5kLCBidXQgSSBndWVzcyBpZiBubyBvbmUgZWxzZSBjYXJlcyBvciBmaW5kcyBhDQo+IHBy b2JsZW0gSSB3aWxsIGhhdmUgdG8gbGl2ZSB3aXRoIGl0LiBIYXZpbmcgYSB0ZXN0IGZvciBzb21l dGhpbmcgZG9lcyBub3QgbWFrZQ0KPiBpdCBhIGdvb2QgdGVzdCBvciBhIHJlYXNvbmFibGUgcmVh c29uIHRvIGNvbnRpbnVlIGEgZGVzaWduIGlzc3VlLiBXZSBjYW4gbWFrZQ0KPiBhbnkgdGVzdCB3 b3JrLCBidXQgaXMgaXQgcmlnaHQgaXMgdGhlIHJlYWwgcXVlc3Rpb24gYW5kIHdlIHdpbGwganVz dCBoYXZlIHRvIHdhaXQNCj4gYW4gc2VlIEkgZ3Vlc3MuDQo+IA0KPiA+DQo+ID4+Pg0KPiA+Pj4g TGNvcmUgaidzIG1lc3NhZ2Ugb2J2aWF0ZXMgbGNvcmUgaSdzIG1lc3NhZ2UsIGFuZCBpdCB3b3Vs ZCBiZSB3YXN0ZWQNCj4gPj4+IHdvcmsNCj4gPj4gZm9yIGxjb3JlIGsgdG8gcHJvY2VzcyBpdCwg c28gd2Ugc2hvdWxkIG1hcmsgaXQgdG8gYmUgc2tpcHBlZCBvdmVyLg0KPiBIYW5kbGluZyBhbGwN Cj4gPj4gdGhlIGVkZ2UgY2FzZXMgd2FzIG1vcmUgY29tcGxleCB0aGFuIHRoZSBzb2x1dGlvbiBw cm9wb3NlZC4NCj4gPj4NCj4gPj4gSG1tbSwgdG8gbWUgaXQgc2VlbXMgc2ltcGxlIGhlcmUgYXMg bG9uZyBhcyB0aGUgbGNvcmVzIGZvbGxvdyB0aGUNCj4gPj4gc2FtZSBydWxlcyBhbmQgc2hhcmlu ZyBhIHRpbWVyIHN0cnVjdHVyZSBpcyB2ZXJ5IHJpc2t5IGFuZCBhdm9pZGFibGUgSU1PLg0KPiA+ Pg0KPiA+PiBPbmNlIHlvdSBoYXZlIGxjb3JlcyBhZGRpbmcgdGltZXJzIHRvIGFub3RoZXIgbGNv cmUgdGhlbiBhbGwgYWNjZXNzZXMNCj4gPj4gdG8gdGhhdCBza2lwIGxpc3QgbXVzdCBiZSBzZXJp YWxpemVkIG9yIHlvdSBnZXQgdW5wcmVkaWN0YWJsZQ0KPiA+PiByZXN1bHRzLiBUaGlzIHNob3Vs ZCBhbHNvIGZpeCBtb3N0IG9mIHRoZSBlZGdlIGNhc2VzIHlvdSBhcmUgdGFsa2luZyBhYm91dC4N Cj4gPj4NCj4gPj4gQWxzbyBpdCBzZWVtcyB0byBtZSB0aGUgY2FzZSB3aXRoIGFuIGxjb3JlIGFk ZGluZyB0aW1lcnMgdG8gYW5vdGhlcg0KPiA+PiBsY29yZSB0aW1lciBsaXN0IGlzIGEgc3BlY2lm aWMgdXNlIGNhc2UgYW5kIGNvdWxkIGJlIGhhbmRsZWQgYnkgYQ0KPiA+PiBkaWZmZXJlbnQgc2V0 IG9mIEFQSXMgZm9yIHRoYXQgc3BlY2lmaWMgdXNlIGNhc2UuIFRoZW4gd2UgZG8gbm90IG5lZWQN Cj4gPj4gdG8gY2hhbmdlIHRoZSBjdXJyZW50IGRlc2lnbiBhbmQgYWxsIG9mIHRoZSBvdmVyaGVh ZCBpcyBwbGFjZWQgb24gdGhlDQo+ID4+IG5ldyBBUElzL2Rlc2lnbi4gSU1PIHdlIGFyZSB0dXJu aW5nIHRoZSBjdXJyZW50IHRpbWVyIGRlc2lnbiBpbnRvIGENCj4gPj4gZ2xvYmFsIHRpbWVyIGRl c2lnbiBhcyBpdCByZWFsbHkgaXMgYSBwZXIgbGNvcmUgZGVzaWduIHRvZGF5IGFuZCBJIGJlbGVp dmUgdGhhdA0KPiBpcyBhIG1pc3Rha2UuDQo+ID4+DQo+ID4NCj4gPiBXZWxsLCB0aGUgb3JpZ2lu YWwgQVBJIGV4cGxpY2l0bHkgc3VwcG9ydHMgaW5zdGFsbGluZyBhIHRpbWVyIHRvIGJlIGV4ZWN1 dGVkIG9uDQo+IGEgZGlmZmVyZW50IGxjb3JlLCBhbmQgdGhlcmUgYXJlIG5vIEFQSSBjaGFuZ2Vz IGluIHRoZSBwYXRjaHNldC4gIEFsc28sIHRoZQ0KPiBwcm9wb3NlZCBkZXNpZ24ga2VlcHMgdGhl IHBlci1sY29yZSBkZXNpZ24gaW50YWN0OyAgaXQgb25seSB0YWtlcyB3aGF0IHVzZWQNCj4gdG8g YmUgb25lIGxhcmdlIHNraXBsaXN0IHRoYXQgaGVsZCB0aW1lcnMgZm9yIGFsbCBpbnN0YWxsaW5n IGxjb3JlcywgYW5kIHNlcGFyYXRlcw0KPiBpdCBpbnRvIE4gc2tpcGxpc3RzIHRoYXQgY29ycmVz cG9uZCAxOjEgdG8gYW4gaW5zdGFsbGluZyBsY29yZS4gIFdoZW4gYW4gbGNvcmUNCj4gcHJvY2Vz c2VzIHRpbWVycyBvbiBpdHMgbGlzdHMgaXQgd2lsbCBzdGlsbCBvbmx5IGJlIG1hbmFnaW5nIHRp bWVycyBpdCBvd25zLCBhbmQgbm8NCj4gb3RoZXJzLg0KPiANCj4gDQo+IEhhdmluZyBhbiBBUEkg dG8gZXhwbGljaXRseSBzdXBwb3J0IHNvbWUgZmVhdHVyZSBpcyBub3QgYSByZWFzb24gdG8ga2Vl cA0KPiBzb21ldGhpbmcsIGJ1dCBJIHRoaW5rIHlvdSBoYXZlIHJlZHVjZSBteSB0d2l0Y2hpbmcg c29tZSA6LSkgc28gSSB3aWxsIGxldCBpdA0KPiBnby4NCj4gDQo+IFRoYW5rcyBmb3IgdGhlIGlu Zm9ybWF0aW9uLg0KDQpZb3UncmUgd2VsY29tZSwgYW5kIHRoYW5rIHlvdSBmb3IgdGhlIGZlZWRi YWNrLg0KDQpSZWdhcmRzLA0KR2FicmllbA0KDQo+IA0KPiA+DQo+ID4NCj4gPj4+DQo+ID4+Pj4+ DQo+ID4+Pj4+IEdhYnJpZWwgQ2FycmlsbG8gKDMpOg0KPiA+Pj4+PiB0aW1lcjogYWRkIHBlci1p bnN0YWxsZXIgcGVuZGluZyBsaXN0cyBmb3IgZWFjaCBsY29yZQ0KPiA+Pj4+PiB0aW1lcjogaGFu ZGxlIHRpbWVycyBpbnN0YWxsZWQgZnJvbSBub24tRUFMIHRocmVhZHMNCj4gPj4+Pj4gZG9jOiB1 cGRhdGUgdGltZXIgbGliIGRvY3MNCj4gPj4+Pj4NCj4gPj4+Pj4gZG9jL2d1aWRlcy9wcm9nX2d1 aWRlL3RpbWVyX2xpYi5yc3QgfCAgMTkgKystDQo+ID4+Pj4+IGxpYi9saWJydGVfdGltZXIvcnRl X3RpbWVyLmMgICAgICAgIHwgMzI5ICsrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+IC0tLQ0K PiA+PiAtLS0NCj4gPj4+PiAtLS0tDQo+ID4+Pj4+IGxpYi9saWJydGVfdGltZXIvcnRlX3RpbWVy LmggICAgICAgIHwgICA5ICstDQo+ID4+Pj4+IDMgZmlsZXMgY2hhbmdlZCwgMjMxIGluc2VydGlv bnMoKyksIDEyNiBkZWxldGlvbnMoLSkNCj4gPj4+Pj4NCj4gPj4+Pj4gLS0NCj4gPj4+Pj4gMi42 LjQNCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IFJlZ2FyZHMsDQo+ID4+Pj4gS2VpdGgNCj4gPj4N Cj4gPj4gUmVnYXJkcywNCj4gPj4gS2VpdGgNCj4gDQo+IFJlZ2FyZHMsDQo+IEtlaXRoDQoNCg==