From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6F9D141DAC; Wed, 1 Mar 2023 16:50:06 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0F4D84114A; Wed, 1 Mar 2023 16:50:06 +0100 (CET) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2049.outbound.protection.outlook.com [40.107.14.49]) by mails.dpdk.org (Postfix) with ESMTP id E1D7F4113C for ; Wed, 1 Mar 2023 16:50:04 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dxeDahucggrjhcbXX8mshjXcYV8RqP/VoYJgq4eCh5DdPk+iBcTCeVo3x6SSlpsjcx10K8PyWKl3DGqR3mDw4sn60L24dn7ltRC216otLAyNRBbB0xofkB1DRsYw2W4C2PhaTcqc4WZuzUFXrzfE7XTl9lUr6oJM3KIlvkw6joiWx+O03xGpq3VU32L24JVVK8Wj78SJtVPJt+pyEeqgB6GvbweB5jZjyfurwKr/NixBRLFtgsDBgEjdm7FLo56WgsOhtcQKeNiGWZNO46bbAWOYAzKyCh+QA/w6WnCOTKS9UjLJHss9CMWBhaQjZ2JpiCVLX1Oi/PumbH4aGTOgbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OVpJJo//XVjH7NJzdxshR7h9a2+07gWBZCFfEchYv0Y=; b=VpkQA+9ixhZ7CobKjgCNJ67c7OinGn8TtKweLSy85/crrGJM9MOkNJTUoxSKO/P3ag98cA4omcpun7zxEPsTchipYdv5fZISLD6ZkLBHemd6s0tpYEGNhpeLE2YARb1lYlrTLahlol1VsihXqF4RLVvrlY4QSbmvi4Qb0JgMyEeLF9xte1O0jaJ3b7oK0h2YG8VSMt2JP6XDv5ogW1twEhmHgslypSLKzLFrLNQKa6+1tXbrs7kPCrOX+r5leLVWwsMfr53ZgHaG8W6/0OqbCrGNp8t4LOkPswMryPfyuYEok6eSLvA8AgJ+UbISJqitAz319fjdwdalFwTsu1kjHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OVpJJo//XVjH7NJzdxshR7h9a2+07gWBZCFfEchYv0Y=; b=YAAv1hUV5QaEVOVuPrRW5xZm5WoB9/FyrbTA1RlFv+ruyPQppVcfxTtCQUKP1+5QwduqTSRx5g2hj+urhGhB9ymBKGyF2fGHeH2XXi1ArM2qJxKAcdRZS6D5Jnfw/k84LzSnHCPBdVy2EpGztrL+zUueh8iLtIFXpzCKM/H0h8g= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by DB8PR07MB6396.eurprd07.prod.outlook.com (2603:10a6:10:13e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.18; Wed, 1 Mar 2023 15:50:01 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::2c84:74bd:b6e6:7ffb]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::2c84:74bd:b6e6:7ffb%4]) with mapi id 15.20.6134.030; Wed, 1 Mar 2023 15:50:01 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "dev@dpdk.org" CC: Erik Gabriel Carrillo , David Marchand , Maria Lingemark , Stefan Sundkvist Subject: Re: [RFC 0/2] Add high-performance timer facility Thread-Topic: [RFC 0/2] Add high-performance timer facility Thread-Index: AQHZS1lW6P727zp9A0KQywOAZmHOZK7khRMAgAFDU4CAAAOj8IAASDiA Date: Wed, 1 Mar 2023 15:50:01 +0000 Message-ID: References: <20230228093916.87206-1-mattias.ronnblom@ericsson.com> <98CBD80474FA8B44BF855DF32C47DC35D87797@smartserver.smartshare.dk> <284a38c7-7f0d-8aab-e054-4e8c0b8274aa@ericsson.com> <98CBD80474FA8B44BF855DF32C47DC35D8779D@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35D8779D@smartserver.smartshare.dk> Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DB7PR07MB5978:EE_|DB8PR07MB6396:EE_ x-ms-office365-filtering-correlation-id: b7644437-38a6-4361-c125-08db1a6c9e1c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9nmKnf84WMC08mzg8GIoOszIMq1hpLgBRNim9sPpc+FPW0LMHD2IOvjKhQh65dk97gthG5QyOMWf+xSIS3p2z946jze380CLCHmdvEbre1XkgiCOJo3iUIomjLSrwkxFDD5t7v9kdxBubtVcNoE9JLPw8LNsO44fYb4RVufVA/rgdhP9B4XvrAReUUeo+M0ZYbMl9TeNGNQaVn5ONMTlLSxpHp6q0mHJmRtsuNuUvXo2b49Wjnwt3gnZNP7xVSMHHUFLjngen7tnVbAd6eKeHdD4BNyXA1aG+E2pZ9bZbxY7XuC41du1WNSN6TdrtHcV3Z7VEDsOVJnvBNiuulHw2gOODYCWcasoc2rf1kX/DXeeMYSokXFdncFmZ9T2HwrHor5auftj465zatv8D2A0BF2df1SGTXDMPAKSqL1XQnQpTSCS2ta2TaItGjC7pR+EecFg6BB5FfeBZvewtVXSYDBYXsw3la/fr0FcCuoRTm+QWTuLSX/ePFEXACj72oT6kbv7xB+Eg6S1S/CLybA/R6gfLQZjlRd4ZWfLtrB5XzwMBTJK0M4O3pIZb9M+JcMzSw9bvDb3pHFm6q2RQphLFt706JFEslR91PYwy0OsggE8qwKKWj8Uog3yvkcS7iqtT0sDTDXj65RHY95Vmw8C9zwz31WY2N9QqCejwGBPlIz/biH5nZLrvK4hjIkq+SeQaBvU4TmjbDSwTmGGbKIXcesHIyn+giJ3OHMlxdFOuNbmjREbNfM9tLFl7y0zyosaGT5MO4kq5xrerAiAYxc/Wg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(366004)(39860400002)(396003)(346002)(376002)(136003)(451199018)(66574015)(31686004)(5660300002)(2616005)(8936002)(83380400001)(30864003)(41300700001)(186003)(6486002)(6506007)(8676002)(26005)(4326008)(6512007)(91956017)(64756008)(66446008)(85202003)(53546011)(66476007)(66946007)(76116006)(82960400001)(66556008)(36756003)(71200400001)(38070700005)(54906003)(110136005)(38100700002)(85182001)(2906002)(122000001)(107886003)(316002)(31696002)(86362001)(478600001)(43740500002)(45980500001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a0luSWFtMkd2Y1d4TG1WVWpDUStiNWxEM0k2VkxKMVhxNU9Bb2NDbStRVVk0?= =?utf-8?B?RTNDODVUK2REYnpGT2EySUx5bVBTa0pKc1BEcjBsOEEvSHVHQm4vOXZYY2J4?= =?utf-8?B?YjErTnZhTmdxS0ZyakEzVXZVRmdUdnBtZXdqVzlpTHJtTkdGRU45S20wdHk3?= =?utf-8?B?ZHZOUHBvTWNPU1dKM3JvdEhmSDhpOFBsZm5nN0w3VkdZcjBVdVlPTzRIMHRx?= =?utf-8?B?dlRjNmpKTksrTmxYZFJRYkYxbTBqaDM0YmR5ZGY4TmRCbXl6Q3RwM0NVcE9l?= =?utf-8?B?endTOThIamRWU0RSVmlrMFVpamJLSVJjWFp6OE5VRGxZRGhOaDdCYjdhbFYv?= =?utf-8?B?ZUpEY1o0eGltV3lJT0h0dXJJZnR0T1QyU0hXN0RCVEFrMXgvQUlWN2JMcWpa?= =?utf-8?B?YkMvNHFXNEJZcVNFcGQ1elI3U1FKTXUybW5aL3RaN2grZDdnMUNoWWFEY1lN?= =?utf-8?B?ZzZUOG9NN2JTUWdLczlvdFdVenNDR0l2NnBCNlEzTkJsMlEyMkpDdWlTZ3c3?= =?utf-8?B?bmVGRXV0RVpTOGNPcXZHZmdhaVk0WURVajR5QWp4eWhOR3RocmYreERNMjBD?= =?utf-8?B?cEJVb08rbk9CeUtrcHdPRnhuejVFTWNYbUtDVExObDZjWUVudTBIWmxhSGMv?= =?utf-8?B?YUt3eVV2N3YwS2VlL2VKZW5BTWR4eDkrVjBkKzZEd2trYWI2ci9QZ3k0ZnJT?= =?utf-8?B?amZGc3ZkVDV1NzQxdW8raWpVNTZrRGs0MkI1N29CbHFPemRwNHN3TTFkeHNV?= =?utf-8?B?YlJYcmJFMUlQdm1iRzlxd2hycUE0ckVhaFBIbVNpajFHdk1IWGZoMUlFMngz?= =?utf-8?B?RjEzKzFJWnRncDl5K1JzRHFlNWtJSUVtQ2JQamtJaEw3eFdiZEVRNHRSNzFR?= =?utf-8?B?ejdvNUVoKzFlRnIxS0lUaEFjSG8xd1R6Y1FuR1BuaHRPU0k3NEpUbkV4Z2N6?= =?utf-8?B?THZoRGFwSWdLYS9FYkhyS1pBTW1abVBKUE5wOXNHanhHbkdJa25NQzN0a1FX?= =?utf-8?B?dkw0c3NPQjFlWk50dDhhQ0hhOFhZSitibUpMWHc4bEJoMXdRUGg2YlBLWnJy?= =?utf-8?B?OFY1SXpBMDNrelNnbWFZVTg5UEJkUlR4SGF0KzNlcVp2QU1hdlhURStzYVBO?= =?utf-8?B?NVBVSWE2SXVhQ0VhOWp4S0FoekYzM3BtZlREdUpYMTBPUnhzNGNpMW5DcG5v?= =?utf-8?B?RHpHbk5lbUlJQ0oyY3FoOFJmY3VPdnB0WFFqME93emVLdnVseTk2RXZYMHhM?= =?utf-8?B?NjRSNEd4Q1RRS2FCT2ZKbFhwOHhGZWM3bi9tYkUyaVJCWUFGTFZaVG9NdXBj?= =?utf-8?B?WjRWQWpJRVJXb1N5ZDBmcW4xUnN5bEpLWWRXOXNhWEI4TC9IOGI2TGtJNUFV?= =?utf-8?B?am94OG5IVlphbExJakxCNW5BK3FOQUNTdFRVenRKckNEOGZHU2ZHVnBSaW9s?= =?utf-8?B?T1lGSG9jTW13VWJJOVRUMGUvZ1lpV1gxMHRscVJYNWdwRW92VHpyMHFWZ3Vi?= =?utf-8?B?bysvcFBaZGF1RW9RSjZKYTVFU3VMeUtJbE50cG16L3cwaHl4R1lWRVBjMWRp?= =?utf-8?B?bWVaM3NBZmI1eEVPVmFqY3lBdTVoVFRaUG4rWGNwMFBRMjlFZFhhSjFtVjBz?= =?utf-8?B?V1VlMXJSMlVVQTloZ1o4RlFvczdyb1BuQmxjZ0NWczBTSjJSaFJVcnI5ODZP?= =?utf-8?B?Y3dIOFh0Q2NwYXNxdzlQNmhKS3FRL2dFZDdEOG1nOVNEd0ppQWd3b3F6d0Nh?= =?utf-8?B?SFkzOElSRGNQZ2N3V2RIWXc0MTVyRGJEZnFiUlNmenBFRStxc01EdXcvM2JW?= =?utf-8?B?VXBidXFGdFY2dGZ5RzEyd0NWcVlkS09saVQ4TEtHcnR6dnliYXNHUEdOSE5J?= =?utf-8?B?NXZrTE1PVWtaQXVLQnIxeFd1SzJ4LytmdzFKU1FUZnhGdUpHSjhHd1VSSnZq?= =?utf-8?B?d2tzOGxxeDQ1dWNRTDUrMjZDNGFhVjUzSHdXT0wyTXBGZFY3bmZmSmIrMTFm?= =?utf-8?B?L3pkSUxBVllnRHNHUWFVZTY5QnRVa2lMWDI0b2dHT1RjZ2dRVGxRY0drQ2Er?= =?utf-8?B?UmVSeHQ4NHhGckR3aFJOeCtRYjZyOWZqaE94ekhFUk05OElSNzRVclpBVk9B?= =?utf-8?B?SW9Ib1lzbDFZN2JudEcxMDFuVEVMeSs4YmhLZHRmV1FjTldKNU1IQXdqVTR5?= =?utf-8?B?bEE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <3144698D695E7C409E0CCDAE7AC20677@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7644437-38a6-4361-c125-08db1a6c9e1c X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Mar 2023 15:50:01.4219 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: l+QoMgqoscNnoyS9ncxLRKWKNW9NIOZsZI+vTQQ9HT8DqclNhUVlyBnAyWl5pfGUv0bf/5hk7eozxx5Okg6npCNZVS0+pqIm68qTFSYjNIs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6396 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org T24gMjAyMy0wMy0wMSAxNDozMSwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+PiBGcm9tOiBNYXR0 aWFzIFLDtm5uYmxvbSBbbWFpbHRvOm1hdHRpYXMucm9ubmJsb21AZXJpY3Nzb24uY29tXQ0KPj4g U2VudDogV2VkbmVzZGF5LCAxIE1hcmNoIDIwMjMgMTIuMTgNCj4+DQo+PiBPbiAyMDIzLTAyLTI4 IDE3OjAxLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4+Pj4gRnJvbTogTWF0dGlhcyBSw7ZubmJs b20gW21haWx0bzptYXR0aWFzLnJvbm5ibG9tQGVyaWNzc29uLmNvbV0NCj4+Pj4gU2VudDogVHVl c2RheSwgMjggRmVicnVhcnkgMjAyMyAxMC4zOQ0KPj4+DQo+Pj4gSSBoYXZlIGJlZW4gbG9va2lu ZyBmb3IgYSBoaWdoIHBlcmZvcm1hbmNlIHRpbWVyIGxpYnJhcnkgKGZvciB1c2UgaW4gYSBmYXN0 DQo+PiBwYXRoIFRDUCBzdGFjayksIGFuZCB0aGlzIGxvb2tzIHZlcnkgdXNlZnVsLCBNYXR0aWFz Lg0KPj4+DQo+Pj4gTXkgaW5pdGlhbCBmZWVkYmFjayBpcyBiYXNlZCBvbiBxdWlja2x5IHNraW1t aW5nIHRoZSBwYXRjaCBzb3VyY2UgY29kZSwgYW5kDQo+PiByZWFkaW5nIHRoaXMgY292ZXIgbGV0 dGVyLg0KPj4+DQo+Pj4+DQo+Pj4+IFRoaXMgcGF0Y2hzZXQgaXMgYW4gYXR0ZW1wdCB0byBpbnRy b2R1Y2UgYSBoaWdoLXBlcmZvcm1hbmNlLCBoaWdobHkNCj4+Pj4gc2NhbGFibGUgdGltZXIgZmFj aWxpdHkgaW50byBEUERLLg0KPj4+Pg0KPj4+PiBNb3JlIHNwZWNpZmljYWxseSwgdGhlIGdvYWxz IGZvciB0aGUgaHRpbWVyIGxpYnJhcnkgYXJlOg0KPj4+Pg0KPj4+PiAqIEVmZmljaWVudCBoYW5k bGluZyBvZiBhIGhhbmRmdWwgdXAgdG8gaHVuZHJlZHMgb2YgdGhvdXNhbmRzIG9mDQo+Pj4+ICAg ICBjb25jdXJyZW50IHRpbWVycy4NCj4+Pj4gKiBSZWR1Y2VkIG92ZXJoZWFkIG9mIGFkZGluZyBh bmQgY2FuY2VsaW5nIHRpbWVycy4NCj4+Pj4gKiBQcm92aWRlIGEgc2VydmljZSBmdW5jdGlvbmFs bHkgZXF1aXZhbGVudCB0byB0aGF0IG9mDQo+Pj4+ICAgICA8cnRlX3RpbWVyLmg+LiBBUEkvQUJJ IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXMgc2Vjb25kYXJ5Lg0KPj4+Pg0KPj4+PiBJbiB0aGUg YXV0aG9yJ3Mgb3BpbmlvbiwgdGhlcmUgYXJlIHR3byBtYWluIHNob3J0Y29taW5ncyB3aXRoIHRo ZQ0KPj4+PiBjdXJyZW50IERQREsgdGltZXIgbGlicmFyeSAoaS5lLiwgcnRlX3RpbWVyLltjaF0p Lg0KPj4+Pg0KPj4+PiBPbmUgaXMgdGhlIHN5bmNocm9uaXphdGlvbiBvdmVyaGVhZCwgd2hlcmUg aGVhdnktd2VpZ2h0IGZ1bGwtYmFycmllcg0KPj4+PiB0eXBlIHN5bmNocm9uaXphdGlvbiBpcyB1 c2VkLiBydGVfdGltZXIuYyB1c2VzIHBlci1FQUwvbGNvcmUgc2tpcA0KPj4+PiBsaXN0cywgYnV0 IGFueSB0aHJlYWQgbWF5IGFkZCBvciBjYW5jZWwgKG9yIG90aGVyd2lzZSBhY2Nlc3MpIHRpbWVy cw0KPj4+PiBtYW5hZ2VkIGJ5IGFub3RoZXIgbGNvcmUgKGFuZCB0aHVzIHJlc2lkZXMgaW4gaXRz IHRpbWVyIHNraXAgbGlzdCkuDQo+Pj4+DQo+Pj4+IFRoZSBvdGhlciBpcyBhbiBhbGdvcml0aG1p YyBzaG9ydGNvbWluZywgd2l0aCBydGVfdGltZXIuYydzIHJlbGlhbmNlDQo+Pj4+IG9uIGEgc2tp cCBsaXN0LCB3aGljaCwgc2VlbWluZ2x5LCBpcyBsZXNzIGVmZmljaWVudCB0aGFuIGNlcnRhaW4N Cj4+Pj4gYWx0ZXJuYXRpdmVzLg0KPj4+Pg0KPj4+PiBUaGlzIHBhdGNoc2V0IGltcGxlbWVudHMg YSBoaWVyYXJjaGljYWwgdGltZXIgd2hlZWwgKEhXVCwgaW4NCj4+Pg0KPj4+IFR5cG86IEhXVCBv ciBIVFc/DQo+Pg0KPj4gWWVzLiBJIGRvbid0IHVuZGVyc3RhbmQgaG93IEkgY291bGQgbWFuYWdl ZCB0byBtYWtlIHNvIG1hbnkgc3VjaCBIVFcgLT4NCj4+IEhXVCB0eXBvcy4gQXQgbGVhc3QgSSBn b3QgdGhlIGZpbGVuYW1lcyAocnRlX2h0dy5bY2hdKSBjb3JyZWN0Lg0KPj4NCj4+Pg0KPj4+PiBy dGVfaHR3LmMpLCBhcyBwZXIgdGhlIFZhcmdoZXNlIGFuZCBMYXVjayBwYXBlciAiSGFzaGVkIGFu ZA0KPj4+PiBIaWVyYXJjaGljYWwgVGltaW5nIFdoZWVsczogRGF0YSBTdHJ1Y3R1cmVzIGZvciB0 aGUgRWZmaWNpZW50DQo+Pj4+IEltcGxlbWVudGF0aW9uIG9mIGEgVGltZXIgRmFjaWxpdHkiLiBB IEhXVCBpcyBhIGRhdGEgc3RydWN0dXJlDQo+Pj4+IHB1cnBvc2VseSBkZXNpZ24gZm9yIHRoaXMg dGFzaywgYW5kIHVzZWQgYnkgbWFueSBvcGVyYXRpbmcgc3lzdGVtDQo+Pj4+IGtlcm5lbCB0aW1l ciBmYWNpbGl0aWVzLg0KPj4+Pg0KPj4+PiBUbyBmdXJ0aGVyIGltcHJvdmUgdGhlIHNvbHV0aW9u IGRlc2NyaWJlZCBieSBWYXJnaGVzZSBhbmQgTGF1Y2ssIGENCj4+Pj4gYml0c2V0IGlzIHBsYWNl ZCBpbiBmcm9udCBvZiBlYWNoIG9mIHRoZSB0aW1lciB3aGVlbCBpbiB0aGUgSFdULA0KPj4+PiBy ZWR1Y2luZyBvdmVyaGVhZCBvZiBydGVfaHRpbWVyX21ncl9tYW5hZ2UoKSAoaS5lLiwgcHJvZ3Jl c3NpbmcgdGltZQ0KPj4+PiBhbmQgZXhwaXJ5IHByb2Nlc3NpbmcpLg0KPj4+Pg0KPj4+PiBDeWNs ZS1lZmZpY2llbnQgc2Nhbm5pbmcgYW5kIG1hbmlwdWxhdGlvbiBvZiB0aGVzZSBiaXRzZXRzIGFy ZSBjcnVjaWFsDQo+Pj4+IGZvciB0aGUgSFdUJ3MgcGVyZm9ybWFuY2UuDQo+Pj4+DQo+Pj4+IFRo ZSBodGltZXIgbW9kdWxlIGtlZXBzIGEgcGVyLWxjb3JlIChvciBwZXItcmVnaXN0ZXJlZCBFQUwg dGhyZWFkKSBIV1QNCj4+Pj4gaW5zdGFuY2UsIG11Y2ggbGlrZSBydGVfdGltZXIuYyBrZWVwcyBh IHBlci1sY29yZSBza2lwIGxpc3QuDQo+Pj4+DQo+Pj4+IFRvIGF2b2lkIGV4cGVuc2l2ZSBzeW5j aHJvbml6YXRpb24gb3ZlcmhlYWQgZm9yIHRocmVhZC1sb2NhbCB0aW1lcg0KPj4+PiBtYW5hZ2Vt ZW50LCB0aGUgSFdUcyBhcmUgYWNjZXNzZWQgb25seSBmcm9tIHRoZSAib3duaW5nIiB0aHJlYWQu ICBBbnkNCj4+Pj4gaW50ZXJhY3Rpb24gYW55IG90aGVyIHRocmVhZCBoYXMgd2l0aCBhIHBhcnRp Y3VsYXIgbGNvcmUncyB0aW1lcg0KPj4+PiB3aGVlbCBnb2VzIG92ZXIgYSBzZXQgb2YgRFBESyBy aW5ncy4gQSBzaWRlLWVmZmVjdCBvZiB0aGlzIGRlc2lnbiBpcw0KPj4+PiB0aGF0IGFsbCBvcGVy YXRpb25zIHdvcmtpbmcgdG93YXJkIGEgInJlbW90ZSIgSFdUIG11c3QgYmUNCj4+Pj4gYXN5bmNo cm9ub3VzLg0KPj4+Pg0KPj4+PiBUaGUgPHJ0ZV9odGltZXIuaD4gQVBJIGlzIGF2YWlsYWJsZSBv bmx5IHRvIEVBTCB0aHJlYWRzIGFuZCByZWdpc3RlcmVkDQo+Pj4+IG5vbi1FQUwgdGhyZWFkcy4N Cj4+Pj4NCj4+Pj4gVGhlIGh0aW1lciBBUEkgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0byBzdXBw bHkgdGhlIGN1cnJlbnQgdGltZSwNCj4+Pj4gdXNlZnVsIGluIGNhc2UgaXQgYWxyZWFkeSBoYXMg cmV0cmlldmVkIHRoaXMgZm9yIG90aGVyIHB1cnBvc2VzLA0KPj4+PiBzYXZpbmcgdGhlIGNvc3Qg b2YgYSByZHRzYyBpbnN0cnVjdGlvbiAob3IgaXRzIGVxdWl2YWxlbnQpLg0KPj4+Pg0KPj4+PiBS ZWxhdGl2ZSBodGltZXIgZG9lcyBub3QgcmV0cmlldmUgYSBuZXcgdGltZSwgYnV0IHJldXNlIHRo ZSBjdXJyZW50DQo+Pj4+IHRpbWUgKGFzIGtub3duIHZpYS9hdC10aGUtdGltZSBvZiB0aGUgbWFu YWdlLWNhbGwpLCBhZ2FpbiB0byBzaGF2ZSBvZmYNCj4+Pj4gc29tZSBjeWNsZXMgb2Ygb3Zlcmhl YWQuDQo+Pj4NCj4+PiBJIGhhdmUgYSBjb21tZW50IHRvIHRoZSB0d28gcG9pbnRzIGFib3ZlLg0K Pj4+DQo+Pj4gSSBhZ3JlZSB0aGF0IHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgc3VwcGx5IHRoZSBj dXJyZW50IHRpbWUuDQo+Pj4NCj4+PiBUaGlzIHNob3VsZCBiZSB0aGUgY29uY2VwdCB0aHJvdWdo b3V0IHRoZSBsaWJyYXJ5LiBJIGRvbid0IHVuZGVyc3RhbmQgd2h5DQo+PiBUU0MgaXMgdXNlZCBp biB0aGUgbGlicmFyeSBhdCBhbGw/DQo+Pj4NCj4+PiBQbGVhc2UgdXNlIGEgdW5pdC1sZXNzIHRp Y2ssIGFuZCBsZXQgdGhlIGFwcGxpY2F0aW9uIGRlY2lkZSB3aGF0IG9uZSB0aWNrDQo+PiBtZWFu cy4NCj4+Pg0KPj4NCj4+IEkgc3VzcGVjdCB0aGUgZGVzaWduIG9mIHJ0ZV9odGltZXJfbWdyLmgg KGFuZCBydGVfdGltZXIuaCkgbWFrZXMgbW9yZQ0KPj4gc2Vuc2UgaWYgeW91IHRoaW5rIG9mIHRo ZSB1c2VyIG9mIHRoZSBBUEkgYXMgbm90IGp1c3QgYSAibW9ub2xpdGhpYyINCj4+IGFwcGxpY2F0 aW9uLCBidXQgcmF0aGVyIGEgc2V0IG9mIGRpZmZlcmVudCBtb2R1bGVzLCBkZXZlbG9wZWQgYnkN Cj4+IGRpZmZlcmVudCBvcmdhbml6YXRpb25zLCBhbmQgcmV1c2VkIGFjcm9zcyBhIHNldCBvZiBh cHBsaWNhdGlvbnMuIFRoZQ0KPj4gaWRlYSBiZWhpbmQgdGhlIEFQSSBkZXNpZ24gaXMgdGhleSBz aG91bGQgYWxsIGJlIGFibGUgdG8gc2hhcmUgb25lIHRpbWVyDQo+PiBzZXJ2aWNlIGluc3RhbmNl Lg0KPj4NCj4+IFRoZSBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIGFwcGxpY2F0aW9uIGFuZCBhbnkg ZnV0dXJlIERQREsgcGxhdGZvcm0NCj4+IG1vZHVsZXMgdGhhdCB1c2UgdGhlIGh0aW1lciBzZXJ2 aWNlIG5lZWRzIHRvIGFncmVlIHdoYXQgYSB0aWNrIG1lYW5zIGluDQo+PiB0ZXJtcyBvZiBhY3R1 YWwgd2FsbC10aW1lLCBpZiBpdCdzIG5vdCBtYW5kYXRlZCBieSB0aGUgQVBJLg0KPiANCj4gSSBz ZWUuIFRoZW4gdGhvc2Ugbm9uLW1vbm9saXRoaWMgYXBwbGljYXRpb25zIGNhbiBhZ3JlZSB0aGF0 IHRoZSB1bml0IG9mIHRpbWUgaXMgbmFub3NlY29uZHMsIG9yIHdoYXRldmVyIG1ha2VzIHNlbnNl IGZvciB0aG9zZSBhcHBsaWNhdGlvbnMuIEFuZCB0aGVuIHRoZXkgY2FuIGluc3RhbnRpYXRlIG9u ZSBzaGFyZWQgSFRXIGZvciB0aGF0IHB1cnBvc2UuDQo+IA0KDQo8cnRlX2h0aW1lcl9tZ3IuaD4g Y29udGFpbnMgbm90aGluZyBidXQgc2hhcmVkIEhUV3MuDQoNCj4gVGhlcmUgaXMgbm8gbmVlZCB0 byBpbXBvc2Ugc3VjaCBhbiBBUEkgbGltaXQgb24gb3RoZXIgdXNlcnMgb2YgdGhlIGxpYnJhcnku DQo+IA0KPj4NCj4+IFRoZXJlIG1pZ2h0IGJlIHJvb20gZm9yIG1vZHVsZS1zcGVjaWZpYyB0aW1l ciB3aGVlbHMgYXMgd2VsbCwgd2l0aA0KPj4gZGlmZmVyZW50IHJlc29sdXRpb24gb3Igb3RoZXIg Y2hhcmFjdGVyaXN0aWNzLiBUaGUgZXZlbnQgdGltZXIgYWRhcHRlcidzDQo+PiB1c2Ugb2YgYSB0 aW1lciB3aGVlbCBjb3VsZCBiZSBvbmUgZXhhbXBsZSAoYWx0aG91Z2ggSSdtIG5vdCBzdXJlIGl0 IGlzKS4NCj4gDQo+IFdlIGFyZSBub3QgdXNpbmcgdGhlIGV2ZW50IGRldmljZSwgYW5kIEkgaGF2 ZSBub3QgbG9va2VkIGludG8gaXQsIHNvIEkgaGF2ZSBubyBxdWFsaWZpZWQgY29tbWVudHMgdG8g dGhpcy4NCj4gDQo+Pg0KPj4gSWYgdGltZXItd2hlZWwtYXMtYS1wcml2YXRlLWxlZ28tcGllY2Ug aXMgYWxzbyBhIHZhbGlkIHVzZSBjYXNlLCB0aGVuDQo+PiBvbmUgY291bGQgY29uc2lkZXIgbWFr ZSB0aGUgPHJ0ZV9odHcuaD4gQVBJIHB1YmxpYyBhcyB3ZWxsLiBUaGF0IGlzIHdoYXQNCj4+IEkg dGhpbmsgeW91IGFzIGFza2luZyBmb3IgaGVyZTogYSBnZW5lcmljIHRpbWVyIHdoZWVsIHRoYXQg ZG9lc24ndCBrbm93DQo+PiBhbnl0aGluZyBhYm91dCB0aW1lIHNvdXJjZXMsIHRpbWUgc291cmNl IHRpbWUgLT4gdGljayBjb252ZXJzaW9uLCBvcg0KPj4gdGltZXIgc291cmNlIHRpbWUgLT4gbW9u b3RvbmljIHdhbGwgdGltZSBjb252ZXJzaW9uLCBhbmQgbWF5YmUgaXMgYWxzbw0KPj4gbm90IGJv dW5kIHRvIGEgcGFydGljdWxhciB0aHJlYWQuDQo+IA0KPiBZZXMsIHRoYXQgaXMgd2hhdCBJIGhh ZCBiZWVuIHNlYXJjaGluZyB0aGUgSW50ZXJuZXQgZm9yLg0KPiANCj4gKEknbSBub3Qgc3VyZSB3 aGF0IHlvdSBtZWFuIGJ5ICJub3QgYm91bmQgdG8gYSBwYXJ0aWN1bGFyIHRocmVhZCIuIFlvdXIg cGVyLXRocmVhZCBkZXNpZ24gc2VlbXMgZ29vZCB0byBtZS4pDQo+IA0KPiBJIGRvbid0IHdhbnQg bW9yZSBzdHVmZiBpbiB0aGUgRUFMLiBXaGF0IEkgd2FudCBpcyBoaWdoLXBlcmZvcm1hbmNlIERQ REsgbGlicmFyaWVzIHdlIGNhbiB1c2UgaW4gb3VyIGFwcGxpY2F0aW9ucy4NCj4gDQo+Pg0KPj4g SSBwaWNrZWQgVFNDIGJlY2F1c2UgaXQgc2VlbWVkIGxpa2UgYSBnb29kICJ1bml2ZXJzYWwgdGlt ZSB1bml0IiBmb3INCj4+IERQREsuIHJkdHNjIChhbmQgaXRzIGVxdWl2YWxlbnQpIGlzIGFsc28g YSB2ZXJ5IHByZWNpc2UgKGVzcGVjaWFsbHkgb24NCj4+IHg4NikgYW5kIGNoZWFwLXRvLXJldHJp ZXZlIChlc3BlY2lhbGx5IG9uIEFSTSwgZnJvbSB3aGF0IEkgdW5kZXJzdGFuZCkuDQo+IA0KPiBU aGUgVFNDIGRvZXMgaGF2ZSBleGNlbGxlbnQgcGVyZm9ybWFuY2UsIGJ1dCBvbiBhbGwgb3RoZXIg cGFyYW1ldGVycyBpdCBpcyBhIGhvcnJpYmxlIHRpbWUga2VlcGVyOiBUaGUgbWVhc3VyZW1lbnQg dW5pdCBkZXBlbmRzIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlLCB0aGUgVFNDIGRyaWZ0cyBk ZXBlbmRpbmcgb24gdGVtcGVyYXR1cmUsIGl0IGNhbm5vdCBiZSBQVFAgc3luY2hyb25pemVkLCB0 aGUgbGlzdCBpcyBlbmRsZXNzIQ0KPiANCj4+DQo+PiBUaGF0IHNhaWQsIGF0IHRoZSBtb21lbnQs IEknbSBsZWFuaW5nIHRvd2FyZCBuYW5vc2Vjb25kcyAodWludDY0X3QNCj4+IGZvcm1hdCkgc2hv dWxkIGJlIHRoZSBkZWZhdWx0IGZvciB0aW1lciBleHBpcmF0aW9uIHRpbWUgaW5zdGVhZCBvZiBU U0MuDQo+PiBUU0MgY291bGQgc3RpbGwgYmUgYW4gb3B0aW9uIGZvciBwYXNzaW5nIHRoZSBjdXJy ZW50IHRpbWUsIHNpbmNlIFRTQw0KPj4gd2lsbCBiZSBhIGNvbW1vbiB0aW1lIHNvdXJjZSwgYW5k IGl0IHNoYXZlcyBvZmYgb25lIGNvbnZlcnNpb24uDQo+IA0KPiBUaGVyZSBhcmUgbWFueSByZWFz b25zIHdoeSBuYW5vc2Vjb25kcyBpcyBhIG11Y2ggYmV0dGVyIGNob2ljZSB0aGFuIFRTQy4NCj4g DQo+Pg0KPj4+IEEgdW5pdC1sZXNzIHRpY2sgd2lsbCBhbHNvIGxldCB0aGUgYXBwbGljYXRpb24g aW5zdGFudGlhdGUgYSBIVFcgd2l0aCBoaWdoZXINCj4+IHJlc29sdXRpb24gdGhhbiB0aGUgVFND LiAoRS5nLiB0aGluayBhYm91dCBvdmVyc2FtcGxpbmcgaW4gYXVkaW8gcHJvY2Vzc2luZywNCj4+ IG9yIEJyZXplbmhhbSdzIGxpbmUgZHJhd2luZyBhbGdvcml0aG0gZm9yIDJEIHZpc3VhbHMgLSBv dmVyc2FtcGxpbmcgY2FuIHNvdW5kDQo+PiBhbmQgbG9vayBiZXR0ZXIuKQ0KPiANCj4gU29tZSBv ZiB0aGUgdGltaW5nIGRhdGEgaW4gb3VyIGFwcGxpY2F0aW9uIGhhdmUgYSByZXNvbHV0aW9uIG9y ZGVycyBvZiBtYWduaXR1ZGUgaGlnaGVyIHRoYW4gb25lIG5hbm9zZWNvbmQuIElmIHdlIGNvbWJp bmVkIHRoYXQgd2l0aCBhIEhUVyBsaWJyYXJ5IHdpdGggbmFub3NlY29uZCByZXNvbHV0aW9uLCB3 ZSB3b3VsZCBuZWVkIHRvIGtlZXAgdGhlc2UgdGltZXIgdmFsdWVzIGluIHR3byBsb2NhdGlvbnM6 IFRoZSBvcmlnaW5hbCBoaWdoLXJlcyB0aW1lciBpbiBvdXIgZGF0YSBzdHJ1Y3R1cmUsIGFuZCB0 aGUgc2hhZG93IGxvdy1yZXMgKG5hbm9zZWNvbmQpIHRpbWVyIGluIHRoZSBIVFcuDQo+IA0KDQpU aGVyZSBpcyBubyB3YXkgeW91IHdpbGwgbWVldCB0aW1lcnMgd2l0aCBhbnl0aGluZyBhcHByb2Fj aGluZyANCnBpY28tc2Vjb25kLWxldmVsIHByZWNpc2lvbi4gWW91IHdpbGwgYWxzbyBnZXQgaW50 byBhIHZhbHVlIHJhbmdlIGlzc3VlLCANCnNpbmNlIHlvdSB3aWxsIHdyYXAgYXJvdW5kIGEgNjQt Yml0IGludGVnZXIgaW4gYSBtYXR0ZXIgb2YgZGF5cy4NCg0KVGhlIEhUVyBvbmx5IHN0b3JlcyB0 aGUgdGltZW91dCBpbiB0aWNrcywgbm90IFRTQywgbmFub3NlY29uZHMgb3IgDQpwaWNvc2Vjb25k cy4gR2VuZXJhbGx5LCB5b3UgZG9uJ3Qgd2FudCBwaWNvLXNlY29uZC1sZXZlbCB0aWNrIA0KZ3Jh bnVsYXJpdHksIHNpbmNlIGl0IGluY3JlYXNlcyB0aGUgb3ZlcmhlYWQgb2YgYWR2YW5jaW5nIHRo ZSB3aGVlbChzKS4gDQpUaGUgZmlyc3QgKGxvd2VzdC1zaWduaWZpY2FuY2UpIGZldyB3aGVlbHMg d2lsbCBwcmV0dHkgbXVjaCBhbHdheXMgYmUgZW1wdHkuDQoNCj4gV2UgbWlnaHQgYWxzbyBuZWVk IHRvIGZyZXF1ZW50bHkgdXBkYXRlIHRoZSBIVFcgdGltZXJzIHRvIHByZXZlbnQgZHJpZnRpbmcg YXdheSBmcm9tIHRoZSBoaWdoLXJlcyB0aW1lcnMuIEUuZy4gMS4yICsgMS4yIGlzIHN0aWxsIDIg d2hlbiByb3VuZGVkLCBidXQgKyAxLjIgYmVjb21lcyAzIHdoZW4gaXQgc2hvdWxkIGhhdmUgYmVl biA0ICgzICogMS4yID0gMy42KSByb3VuZGVkLiBUaGlzIGxldmVsIG9mIGRyaWZ0aW5nIHdvdWxk IGFsc28gbWFrZSBwZXJpb2RpYyB0aW1lcnMgaW4gdGhlIEhUVyB1c2VsZXNzLg0KPiANCg0KVXNl bGVzcywgZm9yIGEgY2VydGFpbiBjbGFzcyBvZiBhcHBsaWNhdGlvbnMuIFdoYXQgYXBwbGljYXRp b24gd291bGQgDQp0aGF0IGJlPw0KDQo+IFBsZWFzZSBub3RlOiBJIGhhdmVuJ3QgcmVhbGx5IGNv bnNpZGVyZWQgbWVyZ2luZyB0aGUgaGlnaC1yZXMgdGltaW5nIGluIG91ciBhcHBsaWNhdGlvbiB3 aXRoIHRoaXMgSFRXLCBhbmQgSSdtIGFsc28gbm90IHNheWluZyB0aGF0IFBFUklPRElDIHRpbWVy cyBpbiB0aGUgSFRXIGFyZSByZXF1aXJlZCBvciBldmVuIHVzZWZ1bCBmb3Igb3VyIGFwcGxpY2F0 aW9uLiBJJ20gb25seSBwcm92aWRpbmcgYXJndW1lbnRzIGZvciBhIHVuaXQtbGVzcyB0aW1lIQ0K PiANCj4+Pg0KPj4+IEZvciByZWZlcmVuY2UgKHN1cHBvcnRpbmcgbXkgc3VnZ2VzdGlvbiksIHRo ZSBkeW5hbWljIHRpbWVzdGFtcCBmaWVsZCBpbiB0aGUNCj4+IHJ0ZV9tYnVmIHN0cnVjdHVyZSBp cyBhbHNvIGRlZmluZWQgYXMgYmVpbmcgdW5pdC1sZXNzLiAoSSB0aGluayBOVklESUENCj4+IGlt cGxlbWVudHMgaXQgYXMgbmFub3NlY29uZHMsIGJ1dCB0aGF0J3MgYW4gaW1wbGVtZW50YXRpb24g c3BlY2lmaWMgY2hvaWNlLikNCj4+Pg0KPj4+Pg0KPj4+PiBBIHNlbWFudGljIGltcHJvdmVtZW50 IGNvbXBhcmVkIHRvIHRoZSA8cnRlX3RpbWVyLmg+IEFQSSBpcyB0aGF0IHRoZQ0KPj4+PiBodGlt ZXIgbGlicmFyeSBjYW4gZ2l2ZSBhIGRlZmluaXRlIGFuc3dlciBvbiB0aGUgcXVlc3Rpb24gaWYg dGhlIHRpbWVyDQo+Pj4+IGV4cGlyeSBjYWxsYmFjayB3YXMgY2FsbGVkLCBhZnRlciBhIHRpbWVy IGhhcyBiZWVuIGNhbmNlbGVkLg0KPj4+Pg0KPj4+PiBCZWxvdyBpcyBhIHBlcmZvcm1hbmNlIGRh dGEgZnJvbSBEUERLJ3MgJ2FwcC90ZXN0JyBtaWNybyBiZW5jaG1hcmtzLA0KPj4+PiB1c2luZyAx MGsgY29uY3VycmVudCB0aW1lcnMuIFRoZSBiZW5jaG1hcmtzICh0ZXN0X3RpbWVyX3BlcmYuYyBh bmQNCj4+Pj4gdGVzdF9odGltZXJfbWdyX3BlcmYuYykgYXJlbid0IGlkZW50aWNhbCBpbiB0aGVp ciBzdHJ1Y3R1cmUsIGJ1dCB0aGUNCj4+Pj4gbnVtYmVycyBnaXZlIHNvbWUgaW5kaWNhdGlvbiBv ZiB0aGUgZGlmZmVyZW5jZS4NCj4+Pj4NCj4+Pj4gVXNlIGNhc2UgICAgICAgICAgICAgICBodGlt ZXIgIHRpbWVyDQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+ PiBBZGQgdGltZXIgICAgICAgICAgICAgICAgIDI4ICAgIDI1Mw0KPj4+PiBDYW5jZWwgdGltZXIg ICAgICAgICAgICAgIDEwICAgIDQxMg0KPj4+PiBBc3luYyBhZGQgKHNvdXJjZSBsY29yZSkgIDY0 DQo+Pj4+IEFzeW5jIGFkZCAodGFyZ2V0IGxjb3JlKSAgMTMNCj4+Pj4NCj4+Pj4gKEFNRCA1OTAw WCBDUFUuIFRpbWUgaW4gVFNDLikNCj4+Pj4NCj4+Pj4gUHJvdG90eXBlIGludGVncmF0aW9uIG9m IHRoZSBodGltZXIgbGlicmFyeSBpbnRvIHJlYWwsIHRpbWVyLWhlYXZ5LA0KPj4+PiBhcHBsaWNh dGlvbnMgaW5kaWNhdGVzIHRoYXQgaHRpbWVyIG1heSByZXN1bHQgaW4gc2lnbmlmaWNhbnQNCj4+ Pj4gYXBwbGljYXRpb24tbGV2ZWwgcGVyZm9ybWFuY2UgZ2FpbnMuDQo+Pj4+DQo+Pj4+IFRoZSBi aXRzZXQgaW1wbGVtZW50YXRpb24gd2hpY2ggdGhlIEhXVCBpbXBsZW1lbnRhdGlvbiBkZXBlbmRz IHVwb24NCj4+Pj4gc2VlbWVkIGdlbmVyaWMtZW5vdWdoIGFuZCBwb3RlbnRpYWxseSB1c2VmdWwg b3V0c2lkZSB0aGUgd29ybGQgb2YNCj4+Pj4gSFdUcywgdG8ganVzdGlmeSBiZWluZyBsb2NhdGVk IGluIHRoZSBFQUwuDQo+Pj4+DQo+Pj4+IFRoaXMgcGF0Y2hzZXQgaXMgdmVyeSBtdWNoIGFuIFJG QywgYW5kIHRoZSBhdXRob3IgaXMgeWV0IHRvIGZvcm0gYW4NCj4+Pj4gb3BpbmlvbiBvbiBtYW55 IGltcG9ydGFudCBpc3N1ZXMuDQo+Pj4+DQo+Pj4+ICogSWYgZGVlbWVkIGEgc3VpdGFibGUgcmVw bGFjZW1lbnQsIHNob3VsZCB0aGUgaHRpbWVyIHJlcGxhY2UgdGhlDQo+Pj4+ICAgICBjdXJyZW50 IERQREsgdGltZXIgbGlicmFyeSBpbiBzb21lIHBhcnRpY3VsYXIgKEFCSS1icmVha2luZykNCj4+ Pj4gICAgIHJlbGVhc2UsIG9yIHNob3VsZCBpdCBsaXZlIHNpZGUtYnktc2lkZSB3aXRoIHRoZSB0 aGVuLWxlZ2FjeQ0KPj4+PiAgICAgPHJ0ZV90aW1lci5oPiBBUEk/IEEgbG90IG9mIHRoaW5ncyBp biBhbmQgb3V0c2lkZSBEUERLIGRlcGVuZCBvbg0KPj4+PiAgICAgPHJ0ZV90aW1lci5oPiwgc28g Y29leGlzdGVuY2UgbWF5IGJlIHJlcXVpcmVkIHRvIGZhY2lsaXRhdGUgYSBzbW9vdGgNCj4+Pj4g ICAgIHRyYW5zaXRpb24uDQo+Pj4NCj4+PiBJdCdzIG15IGltbWVkaWF0ZSBpbXByZXNzaW9uIHRo YXQgdGhleSBhcmUgdG90YWxseSBkaWZmZXJlbnQgaW4gYm90aCBkZXNpZ24NCj4+IHBoaWxvc29w aHkgYW5kIEFQSS4NCj4+Pg0KPj4+IFBlcnNvbmFsIG9waW5pb246IEkgd291bGQgY2FsbCBpdCBh biBlbnRpcmVseSBkaWZmZXJlbnQgbGlicmFyeS4NCj4+Pg0KPj4+Pg0KPj4+PiAqIFNob3VsZCB0 aGUgaHRpbWVyIGFuZCBodHctcmVsYXRlZCBmaWxlcyBiZSBjb2xvY2F0ZWQgd2l0aCBydGVfdGlt ZXIuYw0KPj4+PiAgICAgaW4gdGhlIHRpbWVyIGxpYnJhcnk/DQo+Pj4NCj4+PiBQZXJzb25hbCBv cGluaW9uOiBOby4gVGhpcyBpcyBhbiBlbnRpcmVseSBkaWZmZXJlbnQgbGlicmFyeSwgYW5kIHNo b3VsZCBsaXZlDQo+PiBmb3IgaXRzZWxmIGluIGEgZGlyZWN0b3J5IG9mIGl0cyBvd24uDQo+Pj4N Cj4+Pj4NCj4+Pj4gKiBXb3VsZCBpdCBiZSB1c2VmdWwgZm9yIGFwcGxpY2F0aW9ucyB1c2luZyBh c3luY2hyb25vdXMgY2FuY2VsIHRvDQo+Pj4+ICAgICBoYXZlIHRoZSBvcHRpb24gb2YgaGF2aW5n IHRoZSB0aW1lciBjYWxsYmFjayBydW4gbm90IG9ubHkgaW4gY2FzZSBvZg0KPj4+PiAgICAgdGlt ZXIgZXhwaXJhdGlvbiwgYnV0IGFsc28gY2FuY2VsbGF0aW9uIChvbiB0aGUgdGFyZ2V0IGxjb3Jl KT8gVGhlDQo+Pj4+ICAgICB0aW1lciBjYiBzaWduYXR1cmUgd291bGQgbmVlZCB0byBpbmNsdWRl IGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIGluDQo+Pj4+ICAgICB0aGF0IGNhc2UuDQo+Pj4NCj4+ PiBJZiBvbmUgdGhyZWFkIGNhbmNlbHMgc29tZXRoaW5nIGluIGFub3RoZXIgdGhyZWFkLCBzb21l IHN5bmNocm9uaXphdGlvbg0KPj4gYmV0d2VlbiB0aGUgdGhyZWFkcyBpcyBnb2luZyB0byBiZSBy ZXF1aXJlZCBhbnl3YXkuIFNvIHdlIGNvdWxkIHJlcHJhc2UgeW91cg0KPj4gcXVlc3Rpb246IFdp bGwgdGhlIGJ1cmRlbiBvZiB0aGUgb3RoZXJ3aXNlIHJlcXVpcmVkIHN5bmNocm9uaXphdGlvbiBi ZXR3ZWVuDQo+PiB0aGUgdHdvIHRocmVhZHMgYmUgc2lnbmlmaWNhbnRseSByZWR1Y2VkIGlmIHRo ZSBsaWJyYXJ5IGhhcyB0aGUgYWJpbGl0eSB0byBydW4NCj4+IHRoZSBjYWxsYmFjayBvbiBhc3lu Y2hyb25vdXMgY2FuY2VsPw0KPj4+DQo+Pg0KPj4gWWVzLg0KPj4NCj4+IEludHVpdGl2ZWx5LCBp dCBzZWVtcyBjb252ZW5pZW50IHRoYXQgaWYgeW91IGhhbmQgb2ZmIGEgdGltZXIgdG8gYQ0KPj4g ZGlmZmVyZW50IGxjb3JlLCB0aGUgdGltZXIgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgZXhhY3Rs eSBvbmNlLA0KPj4gcmVnYXJkbGVzcyBpZiB0aGUgdGltZXIgd2FzIGNhbmNlbGVkIG9yIGV4cGly ZWQuDQo+Pg0KPj4gQnV0LCBhcyB5b3UgaW5kaWNhdGUsIHlvdSBtYXkgc3RpbGwgbmVlZCBzeW5j aHJvbml6YXRpb24gdG8gc29sdmUgdGhlDQo+PiByZXNvdXJjZSByZWNsYW1hdGlvbiBpc3N1ZS4N Cj4+DQo+Pj4gSXMgc3VjaCBhIGZlYXR1cmUgbW9zdGx5ICJNdXN0IGhhdmUiIG9yICJOaWNlIHRv IGhhdmUiPw0KPj4+DQo+Pj4gTW9yZSB0aG91Z2h0cyBpbiB0aGlzIGFyZWEuLi4NCj4+Pg0KPj4+ IElmIGFkZGluZyBhbmQgYWRkaXRpb25hbCBjYWxsYmFjayBwYXJhbWV0ZXIsIGl0IGNvdWxkIGJl IGFuIGVudW0sIHNvIHRoZQ0KPj4gY2FsbGJhY2sgY291bGQgYmUgZXhwYW5kZWQgdG8gc3VwcG9y dCAidGltZW91dCAoYS5rLmEuIHRpbWVyIGZpcmVkKSIsICJjYW5jZWwiDQo+PiBhbmQgbW9yZSBl dmVudHMgd2UgaGF2ZSBub3QgeWV0IGNvbWUgdXAgd2l0aCwgZS5nLiAiZWFybHkga2ljayIuDQo+ Pj4NCj4+DQo+PiBZZXMsIG9yIGFuIGludC4NCj4+DQo+Pj4gSGVyZSdzIGFuIGlkZWEgb2ZmIHRo ZSB0b3Agb2YgbXkgaGVhZDogQW4gYWRkaXRpb25hbCBjYWxsYmFjayBwYXJhbWV0ZXIgaGFzDQo+ PiBhIChzbWFsbCkgcGVyZm9ybWFuY2UgY29zdCBpbmN1cnJlZCB3aXRoIGV2ZXJ5IHRpbWVyIGZp cmVkICh3aGljaCBpcyBhIHZlcnkNCj4+IGxhcmdlIG11bHRpcGxpZXIpLiBJdCBtaWdodCBub3Qg YmUgcmVxdWlyZWQuIEFzIGFuIGFsdGVybmF0aXZlIHRvIGFuICJ3aGF0DQo+PiBoYXBwZW5lZCIg cGFyYW1ldGVyIHRvIHRoZSBjYWxsYmFjaywgdGhlIGNhbGxiYWNrIGNvdWxkIGludmVzdGlnYXRl IHRoZSBzdGF0ZQ0KPj4gb2YgdGhlIG9iamVjdCBmb3Igd2hpY2ggdGhlIHRpbWVyIGZpcmVkLCBh bmQgZHJhdyBpdHMgb3duIGNvbmNsdXNpb24gb24gaG93IHRvDQo+PiBwcm9jZWVkLiBPYnZpb3Vz bHksIHRoaXMgYWxzbyBoYXMgYSBwZXJmb3JtYW5jZSBjb3N0LCBidXQgcGVyaGFwcyB0aGUgY2Fs bGJhY2sNCj4+IHdvcmtzIG9uIHRoZSBvYmplY3QncyBzdGF0ZSBhbnl3YXksIG1ha2luZyB0aGlz IGNvc3QgaW5zaWduaWZpY2FudC4NCj4+Pg0KPj4NCj4+IEl0J3Mgbm90IG9idmlvdXMgdG8gbWUg dGhhdCB5b3UsIGluIHRoZSB0aW1lciBjYWxsYmFjaywgY2FuIGRldGVybWluZQ0KPj4gd2hhdCBo YXBwZW5lZCwgaWYgdGhlIHNhbWUgY2FsbGJhY2sgaXMgY2FsbGVkIGJvdGggaW4gdGhlIGNhbmNl bCBhbmQgdGhlDQo+PiBleHBpcmVkIGNhc2UuDQo+Pg0KPj4gVGhlIGNvc3Qgb2YgYW4gZXh0cmEg aW50ZWdlciBwYXNzZWQgaW4gYSByZWdpc3RlciAob3IgY2hlY2tpbmcgYSBmbGFnLA0KPj4gaWYg dGhlIHRpbWVyIGNhbGxiYWNrIHNob3VsZCBiZSBjYWxsZWQgYXQgYWxsIGF0IGNhbmNlbGxhdGlv bikgdGhhdCBpcw0KPj4gdGhlIGNvbmNlcm4gZm9yIG1lOyBpdCdzIGV4dHJhIGJpdCBvZiBBUEkg Y29tcGxleGl0eS4NCj4gDQo+IFRoZW4gaW50cm9kdWNlIHRoZSBsaWJyYXJ5IHdpdGhvdXQgdGhp cyBmZWF0dXJlLiBNb3JlIGZlYXR1cmVzIGNhbiBiZSBhZGRlZCBsYXRlci4NCj4gDQo+IFRoZSBs aWJyYXJ5IHdpbGwgYmUgaW50cm9kdWNlZCBhcyAiZXhwZXJpbWVudGFsIiwgc28gd2UgYXJlIGZy ZWUgdG8gaW1wcm92ZSBpdCBhbmQgbW9kaWZ5IHRoZSBBQkkgYWxvbmcgdGhlIHdheS4NCj4gDQo+ Pg0KPj4+IEhlcmUncyBhbm90aGVyIGFsdGVybmF0aXZlIHRvIGFkZGluZyBhICJ3aGF0IGhhcHBl bmVkIiBwYXJhbWV0ZXIgdG8gdGhlDQo+PiBjYWxsYmFjazoNCj4+Pg0KPj4+IFRoZSBydGVfaHRp bWVyIGNvdWxkIGhhdmUgb25lIG1vcmUgY2FsbGJhY2sgcG9pbnRlciwgd2hpY2ggKGlmIHNldCkg d2lsbCBiZQ0KPj4gY2FsbGVkIG9uIGNhbmNlbGxhdGlvbiBvZiB0aGUgdGltZXIuDQo+Pj4NCj4+ DQo+PiBUaGlzIHdpbGwgZ3JvdyB0aGUgdGltZXIgc3RydWN0IHdpdGggMTYgYnl0ZXMuDQo+IA0K PiBJZiB0aGUgcnRlX2h0aW1lciBzdHJ1Y3Qgc3RheXMgd2l0aGluIG9uZSBjYWNoZSBsaW5lLCBp dCBzaG91bGQgYmUgYWNjZXB0YWJsZS4NCj4gDQoNClRpbWVyIHN0cnVjdHMgYXJlIG9mdGVuIGVt YmVkZGVkIGluIG90aGVyIHN0cnVjdHVyZXMsIGFuZCBuZWVkIG5vdCANCnRoZW1zZWx2ZXMgYmUg Y2FjaGUgbGluZSBhbGlnbmVkIChhbHRob3VnaCB0aGUgInBhcmVudCIgc3RydWN0IG1heSBuZWVk IA0KdG8gYmUsIGUuZy4gaWYgaXQncyBkeW5hbWljYWxseSBhbGxvY2F0ZWQpLg0KDQpTbyBzbWFs bGVyIGlzIGJldHRlci4gSnVzdCBjb25zaWRlciBpZiB5b3Ugd2FudCB5b3VyIGF0dG9zZWNvbmQt bGV2ZWwgDQp0aW1lIHN0YW1wIGluIGEgc3RydWN0Og0KDQpzdHJ1Y3QgbXlfdGltZXIgew0KICAg ICB1aW50NjRfdCBoaWdoX3ByZWNpc2lvbl90aW1lX2hpZ2hfYml0czsNCiAgICAgdWludDY0X3Qg aGlnaF9wcmVjaXNpb25fdGltZV9sb3dfYml0czsNCiAgICAgc3RydWN0IHJ0ZV9odGltZXIgdGlt ZXI7DQp9Ow0KDQouLi5hbmQgeW91IGFsbG9jYXRlIHRob3NlIHN0cnVjdHMgZnJvbSBhIG1lbXBv b2wuIElmIHJ0ZV9odGltZXIgaXMgc21hbGwgDQplbm91Z2gsIHlvdSB3aWxsIGZpdCBvbiBvbmUg Y2FjaGUgbGluZS4NCg0KPiBPbiB0aGUgb3RoZXIgaGFuZCwgdGhpcyBhcHByb2FjaCBpcyBsZXNz IGdlbmVyaWMgdGhhbiBwYXNzaW5nIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyLiAoRS5nLiBhZGQg eWV0IGFub3RoZXIgY2FsbGJhY2sgcG9pbnRlciBmb3IgImVhcmx5IGtpY2siPykNCj4gDQo+IEJU VywgYXN5bmMgY2FuY2VsIGlzIGEgZm9ybSBvZiBpbnRlci10aHJlYWQgY29tbXVuaWNhdGlvbi4g RG9lcyB0aGlzIGxpYnJhcnkgcmVhbGx5IG5lZWQgdG8gcHJvdmlkZSBhbnkgaW50ZXItdGhyZWFk IGNvbW11bmljYXRpb24gbWVjaGFuaXNtcz8gRG9lc24ndCBhbiBpbnRlci10aHJlYWQgY29tbXVu aWNhdGlvbiBtZWNoYW5pc20gYmVsb25nIGluIGEgc2VwYXJhdGUgbGlicmFyeT8NCj4gDQoNClll cywgPHJ0ZV9odGltZXJfbWdyLmg+IG5lZWRzIHRoaXMgYmVjYXVzZToNCjEpIEJlaW5nIGFibGUg dG8gc2NoZWR1bGUgdGltZXJzIG9uIGEgcmVtb3RlIGxjb3JlIGlzIGEgdXNlZnVsIGZlYXR1cmUg DQooZXNwZWNpYWxseSBzaW5jZSB3ZSBkb24ndCBoYXZlIG11Y2ggZWxzZSBpbiB0ZXJtcyBvZiBk ZWZlcnJlZCB3b3JrIA0KbWVjaGFuaXNtcyBpbiBEUERLKS4NCjIpIGh0aW1lciBhc3BpcmVzIHRv IGJlIGEgcGx1Zy1pbiByZXBsYWNlbWVudCBmb3IgPHJ0ZV90aW1lci5oPiAoYWxiZWl0IA0KYW4g QUJJLWJyZWFraW5nIG9uZSkuDQoNClRoZSBwdXJlIEhUVyBpcyBpbiBydGVfaHR3LltjaF0uDQoN ClBsdXMsIHdpdGggdGhlIGN1cnJlbnQgZGVzaWduLCBhc3luYyBvcGVyYXRpb25zIGJhc2ljYWxs eSBjb21lIGZvciBmcmVlIA0KKGlmIHlvdSBkb24ndCB1c2UgdGhlbSksIGZyb20gYSBwZXJmb3Jt YW5jZSBwZXJzcGVjdGl2ZS4gVGhlIGV4dHJhIA0Kb3ZlcmhlYWQgYm9pbHMgZG93biB0byBvY2Nh c2lvbmFsbHkgcG9sbGluZyBhbiBlbXB0eSByaW5nLCB3aGljaCBpcyBhbiANCmluZXhwZW5zaXZl IG9wZXJhdGlvbi4NCg0KPj4NCj4+Pj4NCj4+Pj4gKiBTaG91bGQgdGhlIHJ0ZV9odGltZXIgYmUg YSBuZXN0ZWQgc3RydWN0LCBzbyB0aGUgaHR3IHBhcnRzIGJlIHNlcGFyYXRlZA0KPj4+PiAgICAg ZnJvbSB0aGUgaHRpbWVyIHBhcnRzPw0KPj4+Pg0KPj4+PiAqIDxydGVfaHRpbWVyLmg+IGlzIGtl cHQgc2VwYXJhdGUgZnJvbSA8cnRlX2h0aW1lcl9tZ3IuaD4sIHNvIHRoYXQNCj4+Pj4gICAgIDxy dGVfaHR3Lmg+IG1heSBhdm9pZCBhIGRlcGVkZW5jeSB0byA8cnRlX2h0aW1lcl9tZ3IuaD4uIFNo b3VsZCBpdA0KPj4+PiAgICAgYmUgc28/DQo+Pj4+DQo+Pj4+ICogcnRlX2h0aW1lciBzdHJ1Y3Qg aXMgb25seSBzdXBwb3NlZCB0byBiZSB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0bw0KPj4+PiAg ICAgZ2l2ZSBhbiBpbmRpY2F0aW9uIG9mIGhvdyBtdWNoIG1lbW9yeSBpdCBuZWVkcyB0byBhbGxv Y2F0ZSwgYW5kIGlzDQo+Pj4+ICAgICBpdHMgbWVtYmVyIGFyZSBub3Qgc3VwcG9zZWQgdG8gYmUg ZGlyZWN0bHkgYWNjZXNzZWQgKHcvIHRoZSBwb3NzaWJsZQ0KPj4+PiAgICAgZXhjZXB0aW9uIG9m IHRoZSBvd25lcl9sY29yZV9pZCBmaWVsZCkuIFNob3VsZCB0aGVyZSBiZSBhIGR1bW15DQo+Pj4+ ICAgICBzdHJ1Y3QsIG9yIGEgI2RlZmluZSBSVEVfSFRJTUVSX01FTVNJWkUgb3IgYSBydGVfaHRp bWVyX2dldF9tZW1zaXplKCkNCj4+Pj4gICAgIGZ1bmN0aW9uIGluc3RlYWQsIHNlcnZpbmcgdGhl IHNhbWUgcHVycG9zZT8gQmV0dGVyIGVuY2Fwc3VsYXRpb24sDQo+Pj4+ICAgICBidXQgbW9yZSBp bmNvbnZlbmllbnQgZm9yIGFwcGxpY2F0aW9ucy4gUnVuLXRpbWUgZHluYW1pYyBzaXppbmcNCj4+ Pj4gICAgIHdvdWxkIGZvcmNlIGFwcGxpY2F0aW9uLWxldmVsIGR5bmFtaWMgYWxsb2NhdGlvbnMu DQo+Pj4+DQo+Pj4+ICogQXN5bmNocm9ub3VzIGNhbmNlbGxhdGlvbiBpcyBhIGxpdHRsZSB0cmlj a3kgdG8gdXNlIGZvciB0aGUNCj4+Pj4gICAgIGFwcGxpY2F0aW9uIChwcmltYXJpbHkgZHVlIHRv IHRpbWVyIG1lbW9yeSByZWNsYW1hdGlvbi9yYWNlDQo+Pj4+ICAgICBpc3N1ZXMpLiBTaG91bGQg dGhpcyBmdW5jdGlvbmFsaXR5IGJlIHJlbW92ZWQ/DQo+Pj4+DQo+Pj4+ICogU2hvdWxkIHJ0ZV9o dGltZXJfbWdyX2luaXQoKSBhbHNvIHJldHJpZXZlIHRoZSBjdXJyZW50IHRpbWU/IElmIHNvLA0K Pj4+PiAgICAgdGhlcmUgc2hvdWxkIHRvIGJlIGEgdmFyaWFudCB3aGljaCBhbGxvd3MgdGhlIHVz ZXIgdG8gc3BlY2lmeSB0aGUNCj4+Pj4gICAgIHRpbWUgKHRvIG1hdGNoIHJ0ZV9odGltZXJfbWdy X21hbmFnZV90aW1lKCkpLiBPbmUgcGl0ZmFsbCB3aXRoIHRoZQ0KPj4+PiAgICAgY3VycmVudCBw cm9wb3NlZCBBUEkgaXMgYW4gYXBwbGljYXRpb24gY2FsbGluZyBydGVfaHRpbWVyX21ncl9pbml0 KCkNCj4+Pj4gICAgIGFuZCB0aGVuIGltbWVkaWF0ZWx5IGFkZGluZyBhIHRpbWVyIHdpdGggYSBy ZWxhdGl2ZSB0aW1lb3V0LCBpbg0KPj4+PiAgICAgd2hpY2ggY2FzZSB0aGUgY3VycmVudCBhYnNv bHV0ZSB0aW1lIHVzZWQgaXMgMCwgd2hpY2ggbWlnaHQgYmUgYQ0KPj4+PiAgICAgc3VycHJpc2Uu DQo+Pj4+DQo+Pj4+ICogU2hvdWxkIGxpYmRpdmlkZSAob3B0aW9uYWxseSkgYmUgdXNlZCB0byBh dm9pZCB0aGUgZGl2IGluIHRoZSBUU0MgLT4NCj4+Pj4gICAgIHRpY2sgY29udmVyc2lvbj8gKERv ZXNuJ3QgaW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBaZW4gMywgYnV0IG1heQ0KPj4+PiAgICAgZG8g b24gb3RoZXIgQ1BVcy4pIENvbnNpZGVyIDxydGVfcmVjaXByb2NhbC5oPiBhcyB3ZWxsLg0KPj4+ Pg0KPj4+PiAqIFNob3VsZCB0aGUgVFNDLXBlci10aWNrIGJlIHJvdW5kZWQgdXAgdG8gYSBwb3dl ciBvZiAyLCBzbyBzaGlmdHMgY2FuIGJlDQo+Pj4+ICAgICB1c2VkIGZvciBjb252ZXJzaW9uPyBW ZXJ5IG1pbm9yIHBlcmZvcm1hbmNlIGdhaW5zIHRvIGJlIGZvdW5kIHRoZXJlLA0KPj4+PiAgICAg YXQgbGVhc3Qgb24gWmVuIDMgY29yZXMuDQo+Pj4+DQo+Pj4+ICogU2hvdWxkIGl0IGJlIHBvc3Np YmxlIHRvIHN1cHBseSB0aGUgdGltZSBpbiBydGVfaHRpbWVyX21ncl9hZGQoKQ0KPj4+PiAgICAg YW5kL29yIHJ0ZV9odGltZXJfbWdyX21hbmFnZV90aW1lKCkgZnVuY3Rpb25zIGFzIHRpY2tzLCBy YXRoZXIgdGhhbg0KPj4+PiAgICAgYXMgVFNDPyBTaG91bGQgaXQgYmUgcG9zc2libGUgdG8gYWxz byB1c2UgbmFub3NlY29uZHM/DQo+Pj4+ICAgICBydGVfaHRpbWVyX21ncl9tYW5hZ2VfdGltZSgp IHdvdWxkIG5lZWQgYSBmbGFncyBwYXJhbWV0ZXIgaW4gdGhhdA0KPj4+PiAgICAgY2FzZS4NCj4+ Pg0KPj4+IERvIG5vdCB1c2UgVFNDIGFueXdoZXJlIGluIHRoaXMgbGlicmFyeS4gTGV0IHRoZSBh cHBsaWNhdGlvbiBkZWNpZGUgdGhlDQo+PiBtZWFuaW5nIG9mIGEgdGljay4NCj4+Pg0KPj4+Pg0K Pj4+PiAqIFdvdWxkIHRoZSBldmVudCB0aW1lciBhZGFwdGVyIGJlIGJlc3Qgb2ZmIHVzaW5nIDxy dGVfaHR3Lmg+DQo+Pj4+ICAgICBkaXJlY3RseSwgb3IgPHJ0ZV9odGltZXIuaD4/IEluIHRoZSBs YXR0ZXIgY2FzZSwgdGhlcmUgbmVlZHMgdG8gYmUgYQ0KPj4+PiAgICAgd2F5IHRvIGluc3RhbnRp YXRlIG1vcmUgSFdUcyAoc2ltaWxhciB0byB0aGUgImFsdCIgZnVuY3Rpb25zIG9mDQo+Pj4+ICAg ICA8cnRlX3RpbWVyLmg+KT8NCj4+Pj4NCj4+Pj4gKiBTaG91bGQgdGhlIFBFUklPRElDQUwgZmxh ZyAoYW5kIHRoZSBjb21wbGV4aXR5IGl0IGJyaW5ncykgYmUNCj4+Pj4gICAgIHJlbW92ZWQ/IEFu ZCBsZWF2ZSB0aGUgYXBwbGljYXRpb24gd2l0aCBvbmx5IHNpbmdsZS1zaG90IHRpbWVycywgYW5k DQo+Pj4+ICAgICB0aGUgb3B0aW9uIHRvIHJlLWFkZCB0aGVtIGluIHRoZSB0aW1lciBjYWxsYmFj ay4NCj4+Pg0KPj4+IEZpcnN0IHRob3VnaHQ6IFllcywga2VlcCBpdCBsZWFuIGFuZCByZW1vdmUg dGhlIHBlcmlvZGljYWwgc3R1ZmYuDQo+Pj4NCj4+PiBTZWNvbmQgdGhvdWdodDogVGhpcyBuZWVk cyBhIG1vcmUgZGV0YWlsZWQgYW5hbHlzaXMuDQo+Pj4NCj4+PiAgIEZyb20gb25lIGFuZ2xlOg0K Pj4+DQo+Pj4gSG93IG1hbnkgUEVSSU9ESUNBTCB2ZXJzdXMgT05FU0hPVCB0aW1lcnMgZG8gd2Ug ZXhwZWN0Pw0KPj4+DQo+Pg0KPj4gSSBzdXNwZWN0IHlvdSBzaG91bGQgYmUgcHJlcGFyZWQgZm9y IHRoZSByYXRpbyBiZWluZyBhbnl0aGluZy4NCj4gDQo+IEluIHRoZW9yeSwgYW55dGhpbmcgaXMg cG9zc2libGUuIEJ1dCBJJ20gYXNraW5nIHRoYXQgd2UgY29uc2lkZXIgcmVhbGlzdGljIHVzZSBj YXNlcy4NCj4gDQo+Pg0KPj4+IEludHVpdGl2ZWx5LCBJIHdvdWxkIHVzZSB0aGlzIGxpYnJhcnkg Zm9yIE9ORVNIT1QgdGltZXJzLCBhbmQgcGVyaGFwcw0KPj4gaW1wbGVtZW50IG15IHBlcmlvZGlj YWwgdGltZXJzIGJ5IG90aGVyIG1lYW5zLg0KPj4+DQo+Pj4gSWYgdGhlIFBFUklPRElDQUw6T05F U0hPVCByYXRpbyBpcyBsb3csIHdlIGNhbiBwcm9iYWJseSBsaXZlIHdpdGggdGhlIGV4dHJhDQo+ PiBjb3N0IG9mIGNhbmNlbCthZGQgZm9yIGEgZmV3IHBlcmlvZGljYWwgdGltZXJzLg0KPj4+DQo+ Pj4gICBGcm9tIGFub3RoZXIgYW5nbGU6DQo+Pj4NCj4+PiBXaGF0IGlzIHRoZSBwZXJmb3JtYW5j ZSBnYWluIHdpdGggdGhlIFBFUklPRElDQUwgZmxhZz8NCj4+Pg0KPj4NCj4+IE5vbmUsIHByZXR0 eSBtdWNoLiBJdCdzIGp1c3QgdGhlcmUgZm9yIGNvbnZlbmllbmNlLg0KPiANCj4gT0ssIHRoZW4g SSBzdWdnZXN0IHRoYXQgeW91IHJlbW92ZSBpdCwgdW5sZXNzIHlvdSBnZXQgb2JqZWN0aW9ucy4N Cj4gDQo+IFRoZSBsaWJyYXJ5IGNhbiBiZSBleHBhbmRlZCB3aXRoIHVzZWZ1bCBmZWF0dXJlcyBh dCBhbnkgdGltZSBsYXRlci4gVXNlbGVzcyBmZWF0dXJlcyBhcmUgKG5lYXJseSkgaW1wb3NzaWJs ZSB0byByZW1vdmUsIG9uY2UgdGhleSBhcmUgaW4gdGhlcmUgLSB0aGV5IGFyZSBqdXN0ICJ0ZWNo bmljYWwgZGVidCIgd2l0aCBhc3NvY2lhdGVkIG1haW50ZW5hbmNlIGNvc3RzLCBhZGRlZCBjb21w bGV4aXR5IHdlYXZpbmcgaW50byBvdGhlciBmZWF0dXJlcywgZXRjLi4NCj4gDQo+Pg0KPj4+IFdp dGhvdXQgYSBwZXJpb2RpY2FsIHRpbWVyLCBjYW5jZWwrYWRkIGNvc3RzIDEwKzI4IGN5Y2xlcy4g SG93IG1hbnkgY3ljbGVzDQo+PiB3b3VsZCBhICJtb3ZlIiBmdW5jdGlvbiwgcGVyZm9ybWluZyBi b3RoIGNhbmNlbCBhbmQgYWRkLCB1c2U/DQo+Pj4NCj4+PiBBbmQgdGhlbiBjb21wYXJlIHRoYXQg dG8gdGhlIGNvc3QgKGluIGN5Y2xlcykgb2YgcmVwZWF0aW5nIGEgdGltZXIgd2l0aA0KPj4gUEVS SU9ESUNBTD8NCj4+Pg0KPj4+IEZ1cnRoZXJtb3JlLCBub3QgaGF2aW5nIHRoZSBQRVJJT0RJQ0FM IGZsYWcgcHJvYmFibHkgaW1wcm92ZXMgdGhlDQo+PiBwZXJmb3JtYW5jZSBmb3Igbm9uLXBlcmlv ZGljYWwgdGltZXJzLiBIb3cgbWFueSBjeWNsZXMgY291bGQgd2UgZ2FpbiBoZXJlPw0KPj4+DQo+ Pj4NCj4+PiBBbm90aGVyLCB2YWd1ZWx5IHJlbGF0ZWQsIGlkZWE6DQo+Pj4NCj4+PiBUaGUgY2Fs bGJhY2sgcG9pbnRlciBtaWdodCBub3QgbmVlZCB0byBiZSBzdG9yZWQgcGVyIHJ0ZV9odGltZXIs IGJ1dCBjb3VsZA0KPj4gaW5zdGVhZCBiZSBjb21tb24gZm9yIHRoZSBydGVfaHR3Lg0KPj4+DQo+ Pg0KPj4gRG8geW91IG1lYW4gcnRlX2h0dywgb3IgcnRlX2h0aW1lcl9tZ3I/DQo+Pg0KPj4gSWYg eW91IG1ha2Ugb25lIGNvbW1vbiBjYWxsYmFjaywgYWxsIHRoZSBkaWZmZXJlbnQgcGFydHMgb2Yg dGhlDQo+PiBhcHBsaWNhdGlvbiBuZWVkcyB0byBiZSBjb29yZGluYXRlZCAoaW4gYSBiaWcgc3dp dGNoLXN0YXRlbWVudCwgb3INCj4+IHNvbWV0aGluZyBvZiB0aGF0IHNvcnQpLCBvciBoYXZlIHNv bWUgY29udmVudGlvbiBmb3IgdXNpbmcgYW4NCj4+IGFwcGxpY2F0aW9uLXNwZWNpZmljIHdyYXBw ZXIgc3RydWN0dXJlIChhY2Nlc3NlZCB2aWEgY29udGFpbmVyX29mKCkpLg0KPj4NCj4+IFRoaXMg aXMgYSBwcm9ibGVtIGlmIHRoZSB0aW1lciBzZXJ2aWNlIEFQSSBjb25zdW1lciBpcyBhIHNldCBv ZiBsYXJnZWx5DQo+PiB1bmNvb3JkaW5hdGVkIHNvZnR3YXJlIG1vZHVsZXMuDQo+Pg0KPj4gQnR3 LCB0aGUgZXZlbnRkZXYgQVBJIGhhcyB0aGUgc2FtZSBpc3N1ZSwgYW5kIHRoZSBwcm9wb3NlZCBl dmVudA0KPj4gZGlzcGF0Y2hlciBpcyBvbmUgd2F5IHRvIGhlbHAgZmFjaWxpdGF0ZSBhcHBsaWNh dGlvbi1pbnRlcm5hbCBkZWNvdXBsaW5nLg0KPj4NCj4+IEZvciBhIG1vZHVsZS1wcml2YXRlIHJ0 ZV9odHcgaW5zdGFuY2UgeW91ciBzdWdnZXN0aW9uIG1heSB3b3JrLCBidXQgbm90DQo+PiBmb3Ig PHJ0ZV9odGltZXJfbWdyLmg+Lg0KPiANCj4gSSB3YXMgc3BlY3VsYXRpbmcgdGhhdCBhIGNvbW1v biBjYWxsYmFjayBwb2ludGVyIG1pZ2h0IHByb3ZpZGUgYSBwZXJmb3JtYW5jZSBiZW5lZml0IGZv ciBzaW5nbGUtcHVycG9zZSBIVFcgaW5zdGFuY2VzLiAoVGhlIHNhbWUgY29uY2VwdCBhcHBsaWVz IGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBjYWxsYmFja3MsIGUuZy4gYSAiVGltZXIgRmlyZWQiLCBh ICJUaW1lciBDYW5jZWxsZWQiLCBhbmQgYW4gIkVhcmx5IEtpY2siIGNhbGxiYWNrIHBvaW50ZXIg LSBpLmUuIGhhdmluZyB0aGUgY2FsbGJhY2sgcG9pbnRlcnMgcGVyIEhUVyBpbnN0YW5jZSwgaW5z dGVhZCBvZiBwZXIgdGltZXIuKQ0KPiANCj4+DQo+Pj4gV2hlbiBhIHRpbWVyIGZpcmVzLCB0aGUg Y2FsbGJhY2sgcHJvYmFibHkgbmVlZHMgdG8gY2hlY2svdXBkYXRlIHRoZSBzdGF0ZSBvZg0KPj4g dGhlIG9iamVjdCBmb3Igd2hpY2ggdGhlIHRpbWVyIGZpcmVkIGFueXdheSwgc28gd2h5IG5vdCBq dXN0IGxldCB0aGUNCj4+IGFwcGxpY2F0aW9uIHVzZSB0aGF0IHN0YXRlIHRvIGRldGVybWluZSB0 aGUgYXBwcm9wcmlhdGUgYWN0aW9uLiBUaGlzIG1pZ2h0DQo+PiBwcm92aWRlIHNvbWUgcGVyZm9y bWFuY2UgYmVuZWZpdC4NCj4+Pg0KPj4+IEl0IG1pZ2h0IGNvbXBsaWNhdGUgdXNpbmcgb25lIEhU VyBmb3IgbXVsdGlwbGUgZGlmZmVyZW50IHB1cnBvc2VzLCB0aG91Z2guDQo+PiBQcm9iYWJseSBh IHVzZWxlc3MgaWRlYSwgYnV0IEkgd2FudGVkIHRvIHNoYXJlIHRoZSBpZGVhIGFueXdheS4gSXQg bWlnaHQNCj4+IHRyaWdnZXIgb3RoZXIsIGJldHRlciBpZGVhcyBpbiB0aGUgY29tbXVuaXR5Lg0K Pj4+DQo+Pj4+DQo+Pj4+ICogU2hvdWxkIHRoZSBhc3luYyByZXN1bHQgY29kZXMgYW5kIHRoZSBz eW5jIGNhbmNlbCBlcnJvciBjb2RlcyBiZSBtZXJnZWQNCj4+Pj4gICAgIGludG8gb25lIHNldCBv ZiByZXN1bHQgY29kZXM/DQo+Pj4+DQo+Pj4+ICogU2hvdWxkIHRoZSBydGVfaHRpbWVyX21ncl9h c3luY19hZGQoKSBoYXZlIGEgZmxhZyB3aGljaCBhbGxvdw0KPj4+PiAgICAgYnVmZmVyaW5nIGFk ZCByZXF1ZXN0IG1lc3NhZ2VzIHVudGlsIHJ0ZV9odGltZXJfbWdyX3Byb2Nlc3MoKSBpcw0KPj4+ PiAgICAgY2FsbGVkPyBPciBhbnkgbWFuYWdlIGZ1bmN0aW9uLiBXb3VsZCByZWR1Y2UgcmluZyBz aWduYWxpbmcgb3ZlcmhlYWQNCj4+Pj4gICAgIChpLmUuLCBidXJzdCBlbnF1ZXVlIG9wZXJhdGlv bnMgaW5zdGVhZCBvZiBzaW5nbGUtZWxlbWVudA0KPj4+PiAgICAgZW5xdWV1ZSkuIENvdWxkIGFs c28gYmUgYSBydGVfaHRpbWVyX21ncl9hc3luY19hZGRfYnVyc3QoKSBmdW5jdGlvbiwNCj4+Pj4g ICAgIHNvbHZpbmcgdGhlIHNhbWUgInByb2JsZW0iIGEgZGlmZmVyZW50IHdheS4gKFRoZSBzaWdu YXR1cmUgb2Ygc3VjaA0KPj4+PiAgICAgYSBmdW5jdGlvbiB3b3VsZCBub3QgYmUgcHJldHR5LikN Cj4+Pj4NCj4+Pj4gKiBEb2VzIHRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZSBydGVf aHRpbWVyX21ncl9wcm9jZXNzKCkNCj4+Pj4gICAgIGZ1bmN0aW9uIG1hdGNoIGl0cyB0aGUgdXNl IGNhc2VzPyBTaG91bGQgdGhlcmUgbWUgYSBtb3JlIGNsZWFyDQo+Pj4+ICAgICBzZXBhcmF0aW9u IGJldHdlZW4gZXhwaXJ5IHByb2Nlc3NpbmcgYW5kIGFzeW5jaHJvbm91cyBvcGVyYXRpb24NCj4+ Pj4gICAgIHByb2Nlc3Npbmc/DQo+Pj4+DQo+Pj4+ICogU2hvdWxkIHRoZSBwYXRjaHNldCBiZSBz cGxpdCBpbnRvIG1vcmUgY29tbWl0cz8gSWYgc28sIGhvdz8NCj4+Pj4NCj4+Pj4gVGhhbmtzIHRv IEVyaWsgQ2FycmlsbG8gZm9yIGhpcyBhc3Npc3RhbmNlLg0KPj4+Pg0KPj4+PiBNYXR0aWFzIFLD tm5uYmxvbSAoMik6DQo+Pj4+ICAgICBlYWw6IGFkZCBiaXRzZXQgdHlwZQ0KPj4+PiAgICAgZWFs OiBhZGQgaGlnaC1wZXJmb3JtYW5jZSB0aW1lciBmYWNpbGl0eQ0KPiANCg0K