From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.5586.1675879511119976781 for ; Wed, 08 Feb 2023 10:05:11 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=RQcX6isU; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675879511; x=1707415511; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=SHVnsCxQRlOtnntLvCt5ys/3riKN47LR25G7r0jb2/8=; b=RQcX6isUq8rU/5zB/F2D+UYp2fUmbjmZJaLzi4Y9JVQiU8XvMtQAmtZ7 3Pp93vM4+rZ80tOrB+BaVIXILr5p2PbdVOA+eMAXI+fWAGsByJ3MoteOp f5gWCaYI7fXD9YpKk+ECNdRKGDDr9cnrBmQ/6mDS/gZ2E9nVlc4OroLAX gKYd43xRYO+c24H2DIkwPvIDXJ7zJjSKxzVsixdGx14xkMdQi5RlArauP BjsEH1l/Gc80AE6w+7+TaTQiV3NHaLWty/vwBTGvPEOxa6X4FA5xvzXwc Tc5BwWpL0Ul5qQIFAsWXAPw6lpd0oa8Was2ZNx1zyiIFFP6aLvB6aXDhH g==; X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="328528956" X-IronPort-AV: E=Sophos;i="5.97,281,1669104000"; d="scan'208";a="328528956" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Feb 2023 10:02:49 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="776132171" X-IronPort-AV: E=Sophos;i="5.97,281,1669104000"; d="scan'208";a="776132171" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga002.fm.intel.com with ESMTP; 08 Feb 2023 10:02:49 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 8 Feb 2023 10:02:48 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 8 Feb 2023 10:02:48 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Wed, 8 Feb 2023 10:02:48 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.104) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Wed, 8 Feb 2023 10:02:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SuIr0l2zkV2m0jR9YjN+QY2N5dutqsFjMtGitYRaT27DKo3gTDffg1T3huJGzjCmbejV/T0Q9qlyvqgL5G3rBHNniHcV/s/NfDe0prDtVv5cp/Gu+oFIkSNpnHzCAiiagerCdweQtORNcy7a7MKUcG3aK8j6IBO+Yku5uT3IWAdobW7w1GCS46INcuqWySLpvXyc/XVa0DFAAq8A/ml1ORRIY4AJrAn1YQvCOr4tc2SS5muUvAturz/AWSMiiENtaMuWhEJQ+54v+iFZjPn/hHpa7wjYP9SNISAJF+9iWssh3eL2UW5Tdjg+mov/uCovUcKqQ+cY6NrP9zHIYrTi4Q== 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=SHVnsCxQRlOtnntLvCt5ys/3riKN47LR25G7r0jb2/8=; b=VHcWXuyyzwSTCCc9H/n7GTyQ6UjnpZKKn9o0cq4p6TVeBgGlLwPN2lb8xkMxYpC3rT79xY8aT0cpxGCdp6BNZTOc3KB0hQRy+xjGwL6PvX+4McahmYAi49xYyNR1FqvBuaQMLaspl+AAkE3qXt9Wi+P6J5j5zkNaDJ6cQtnIs10hTjdEzTZMdPfqugoHCgtJprPrFivQcnfNljviwGbaErvhtYBmBJgWvkyvwVELs5mISu9pL8NqKAMYO7pBt9oi819UGEqtAo5+3jYdKnyxga0ENxCZzhwML0wnKBYhVYqoI+PZ+Gt09wDsDQ+HAXRYyy5ZsRZHem3U19VuyP3Hrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SA2PR11MB4938.namprd11.prod.outlook.com (2603:10b6:806:fb::14) by PH7PR11MB6473.namprd11.prod.outlook.com (2603:10b6:510:1f3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.17; Wed, 8 Feb 2023 18:02:45 +0000 Received: from SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::3a13:4a46:446a:6812]) by SA2PR11MB4938.namprd11.prod.outlook.com ([fe80::3a13:4a46:446a:6812%4]) with mapi id 15.20.6064.036; Wed, 8 Feb 2023 18:02:44 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "sunilvl@ventanamicro.com" CC: "Dong, Eric" , "Ni, Ray" , "Kumar, Rahul R" , Daniel Schaefer , Gerd Hoffmann , Abner Chang , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V7 05/20] UefiCpuPkg: Add CpuTimerDxe module Thread-Topic: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V7 05/20] UefiCpuPkg: Add CpuTimerDxe module Thread-Index: AQHZM01aW2pfYvCsI0GHV5rKcVYqTK7FZwpw Date: Wed, 8 Feb 2023 18:02:44 +0000 Message-ID: References: <20230128191807.2080547-1-sunilvl@ventanamicro.com> <20230128191807.2080547-6-sunilvl@ventanamicro.com> In-Reply-To: <20230128191807.2080547-6-sunilvl@ventanamicro.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA2PR11MB4938:EE_|PH7PR11MB6473:EE_ x-ms-office365-filtering-correlation-id: 876fbf97-1287-41e4-b5e8-08db09feadf3 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qEoJms+2qJy/x6Y5VznBmfz/QEK/sZxerjfOs4slGEGHDga9UVdCRje5jbUlyLCuDODnvC8+XV8nVDqh1Q7Iv+/XJb6XrlLt2mjfIEh00xklnW+fwf/IZS2RiPZZDOSxIwtclxwQmF6ChFBlgz5WPXCcwZUaUTMhR+adu3gSztdWlhZdHmC0vmPguC/v8CoYD7ITvOXKcXsKyHeVk9c2pOAcbaA27wFVxvHb023AD7kJwtu9qbA4+DvWNmlkhXRWuvlfq3hUT2MAVQISIz7oN7E+lQ+JsNNtpxdx4aiE2kllWmcCikpxVP7i5dIKMOl8BybMaB5NJbwWwsYJnl7YPmGcoH7eDsppSZihw76j5Xddiq5nOXQ02oq+ozS6EFsblh76+pizj1CBx7uzatDdtnWV4ZlxsaUcmmgqg8q5wEPrReLywMHwoEZQr7V985WOIEiG7eJFdD4/J8D2CjgJ5quv10GHZgGX2UT41QOcG1jklJkJvmwPcv4IBWVXbMQA8mY+2vh2/9kwQ+d0UBGoxaYVcaJMdlbR5sowU28O9abGdPHmy0WDOEQnai/QDj2TcG/RmcqXFzoDjkVRsZfZEZ5em0EvfjoWmBeOg5ZGZGUIJe5wO+yb5W+hayqEGL/8PDxc9Nchiw4DVJ3u7oZLJZ9p8wj0jxI+dgki+2/QS+25/B7oqJbdXa7MTL+2QgXFq3E33NO/jqEOZkXitiX24Htjx49bxEv3YEuNCQ6OSqqqIirohrVV7xzbxbuskqNZ9ct1QIjn5DwvaMUbByM6hlS3d8p4mB1b5rALoe8woe4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA2PR11MB4938.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(396003)(346002)(376002)(136003)(39860400002)(366004)(451199018)(66899018)(19627235002)(33656002)(83380400001)(66446008)(66476007)(64756008)(4326008)(66556008)(8676002)(41300700001)(122000001)(86362001)(2906002)(38070700005)(55016003)(30864003)(76116006)(38100700002)(66946007)(966005)(478600001)(6506007)(53546011)(54906003)(316002)(110136005)(82960400001)(8936002)(5660300002)(52536014)(107886003)(7696005)(9686003)(186003)(71200400001)(26005)(579004)(44824005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R3ZrcEg1bGZ1bjBJbXgveXhtQ0p4UGdQMFNGSHUxUWFwc01SeDNiT1RCcjNN?= =?utf-8?B?cEtTSTJrajRyTm9jMlV2OWZZRG0vV1FZOTFBSjN6SHpKZUw5RjBONUxaS29I?= =?utf-8?B?b21nVVEyc2YyUmN6b3pRb0QzRzF6WnF0N3lZbXl0OGo0YTNkaGMwckVzMTdp?= =?utf-8?B?ZGhtdE43eDRBaTFFUHg1UnVxTVB5VW40anNBN2N3U0FpSWlWVU9RcFhZREFa?= =?utf-8?B?UVlMTUZJWHJhYkQwVHhQWnpDa0pyYTFxVU5NK1ZlME44MG9SUGFnR2wxVTRU?= =?utf-8?B?ZzhsTHBQSkNVanpxd0pCYjNZelAxVkRlNTJvdmJHNzdyemwrSGoyandqSFEv?= =?utf-8?B?MFlINW0reGtRcjFLZHRONWwyUEpiREtBU2dJMk53TW9tWXE0SEVSOUhta01J?= =?utf-8?B?b3o3UVlaWW0zMm9XNlBCTHpNUTR3M1I1TlJ1dzROTTIxNXY1bk54UUR5aWtr?= =?utf-8?B?aVkyMEZBNzVScVFLQjc5UHNnLzMyNWdIUnNDSURVNWVNcWVxWlI4cmc3aXlG?= =?utf-8?B?Kzh1ZW1oUnVNSlo2Q1hSOXRrRkpTUkY2dnI5dE9iSGJYeVIxZ1UrWjJqRmQv?= =?utf-8?B?K2d6RkMxQ296NXpDTWpkZGlSVUZnYzFpdzMyY2U5ajhWdzVsSnVjcDhsVUM5?= =?utf-8?B?VHduT2pUWTVCckN1bUx2MytKVm96eCswQnlUTURhTlJtdkcyb3JUM3ppaHJO?= =?utf-8?B?d3FlRHJpMk80OVBETlZLaUhhTFg3UDlNa3lpV1ZNU29lL3MxaGczS2NPdVVj?= =?utf-8?B?bksyYWxOb2xGcjc1emQxcUJQc1N4Y2UrSENQQkk0UTdiQURZN3d3UU1kTXNV?= =?utf-8?B?OXc1Sld6S0Y4NSswczFBdGZlV1NRY3VabWpsY24veFFySkVRZ0ZvMVhhemdX?= =?utf-8?B?SXRmckVxWkwrQXlMQXVocThZVVZCVjMweStNOTJmb205eE01OTNQY2Irb0Q5?= =?utf-8?B?RjR4bW5qUEE3bXZheTRnWk5xT01BODFaaXZzM3QzQ1ZGMWVtZkJHU01oTndl?= =?utf-8?B?OTAzOHJ1QzBXNG9yU3BjbWJYcWJBcVhHSFlaamIzSzNOMTdwOWtyR2VKN29l?= =?utf-8?B?QlFvTzlHeTBQSllPb0ovaXVrU0hMYU5oODVmVXdUM1FtTFg2WE5WWDRyR0x3?= =?utf-8?B?WGNoMGgvYWVIYUo2QzhkdkJVdERMTGJROGw1OG1oQXBHZWs2Rm9mSG9CcTQz?= =?utf-8?B?dWMrNE5hVDllVGVjdjRuaGJlK0xiR0htS0p5b3VxR1dRMEFMMVZPRGJuWDRm?= =?utf-8?B?c3FBemxNanptQzJvcTJyd1puRDZVTWpiM1JpNG5pb1paZXo5NUFZL0lpVkFC?= =?utf-8?B?OEZzZjVHSmFnRmswSUVONWFXcnUwK0lOaU8xVmx6THVCdmthVEFDcmN1c25z?= =?utf-8?B?WkZ3T3Zld1RVUDZFdGJjRFhvbFVWMEtob2h6aWNRVnZlQ0hHd1QvK1FKeHJC?= =?utf-8?B?Y1lMcEsyWEFlK0pUb2h2alNSNS9nUVhTR0JWV0s4bVR0VVBJNWQvTUQrcHZL?= =?utf-8?B?NmxMUXd4ZjQxRXNqMjBKU3JJQ0hCT2xEbklEd294WVR4WjQyYVhWdFZXUm82?= =?utf-8?B?R09HMGtpZlNCdEhYUzhXN21UVEc2LzcyaGd6K2k5MG9Zb1lUWjVTcXJyK2Fs?= =?utf-8?B?U3FKUFQzeWwrM3pPZFdSU1diNmJoM3MvaDBvdTJSNVZNejFNTndmNzk4ei9v?= =?utf-8?B?U09EOXcrM1dCQkdENXV3dGFGZWdXSEQ3aitmcGZUWDFYWkJMM0ZYVlFzOGdG?= =?utf-8?B?Vi80dDZKSE8vR0RXNUg5TWNCUnVERVZJWVFERUFQWlc2a2lEWklCcHBkanZN?= =?utf-8?B?cGN5YVJHV0NrQkVrZHhjOC9tRGh2WStxN1Y1MzFCc2dMK1BBT1FpYTB2Uzk4?= =?utf-8?B?cXdab3F4ZXUyaVhtOWFUUUZZbEthV1NHaExwQWZYbkRlQzZ1NzZ5d2pjbnpI?= =?utf-8?B?L213ZVVWUmNGckRCT3JHUlhZeW9jajRQRFJnS3Z1ZWNSeTA4MCtLVHJBZzVP?= =?utf-8?B?cFBBNWZlNkFxQTNFNHNBUzJYdUFhTHdzNVBDSWFyWHV1UjVxQTBWZFlDNmJ5?= =?utf-8?B?VWRZSzBQNXNLK2o5T04rMC9RbDJXRGtUZ0Rtbmg4bkRZUVRXUzdPdkRlMnFE?= =?utf-8?B?czZwaGZxT1NMQ2hvVFNrTkFabyt4ODIxQ2Vjb3U0M0VFTVd5K1A2Yk52NEVO?= =?utf-8?B?NlE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA2PR11MB4938.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 876fbf97-1287-41e4-b5e8-08db09feadf3 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Feb 2023 18:02:44.7361 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WPQvINRawCyN690pVNQCG1qpnsOUK0Ic6zMVdKx3IV7P+DKVczyhFj0klOHCJaueT8bBHLO29pbku6qlTM6ATzsSyPmLIyUZ3l6GKYYqu5Y= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6473 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgU3VuaWwsDQoNCk9uZSBjb21tZW50IG9uIHRoZSBuYW1lIG9mIHRoaXMgbW9kdWxlLiAgQ3B1 VGltZXJEeGUgaXMgYSB2ZXJ5IGdlbmVyaWMgbmFtZSwgYnV0IHRoZQ0KSW1wbGVtZW50YXRpb24g aXMgZm9yIFJJU0NWIG9ubHkgYW5kIGRlcGVuZHMgb24gU0JMIHNlcnZpY2VzLiAgQ29ycmVjdD8N Cg0KSWYgSSBsb29rIGF0IG90aGVyIFRpbWVyRHhlIG1vZHVsZXMsIHRoZXkgaGF2ZSBpbiB0aGVp ciBuYW1lIHNvbWUgaW5kaWNhdGlvbiBvZiANCnRoZSB0aW1lciBoYXJkd2FyZS9zb2Z0d2FyZSBk ZXBlbmRlbmNpZXMgaW4gdGhlaXIgbmFtZSwNCg0KKiBMb2NhbEFwaWNUaW1lckR4ZS5pbmYNCiog SHBldFRpbWVyRHhlLmluZg0KDQpIb3cgYWJvdXQgUmlzY1ZUaW1lckR4ZSBvciBSaXNjVlNiaVRp bWVyTGliPw0KDQpNaWtlDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9t OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBP ZiBTdW5pbCBWIEwNCj4gU2VudDogU2F0dXJkYXksIEphbnVhcnkgMjgsIDIwMjMgMTE6MTggQU0N Cj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdA aW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEt1bWFyLCBSYWh1bCBSIDxy YWh1bC5yLmt1bWFyQGludGVsLmNvbT47IERhbmllbCBTY2hhZWZlcg0KPiA8Z2l0QGRhbmllbHNj aGFlZmVyLm1lPjsgR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBBYm5lciBDaGFu ZyA8YWJuZXIuY2hhbmdAYW1kLmNvbT4NCj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtlZGsyLXN0 YWdpbmcvUmlzY1Y2NFFlbXVWaXJ0IFBBVENIIFY3IDA1LzIwXSBVZWZpQ3B1UGtnOiBBZGQgQ3B1 VGltZXJEeGUgbW9kdWxlDQo+IA0KPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9y Zy9zaG93X2J1Zy5jZ2k/aWQ9NDA3Ng0KPiANCj4gVGhpcyBEWEUgbW9kdWxlIGluaXRpYWxpemVz IHRoZSB0aW1lciBpbnRlcnJ1cHQgaGFuZGxlcg0KPiBhbmQgaW5zdGFsbHMgdGhlIEFyY2ggVGlt ZXIgcHJvdG9jb2wuDQo+IA0KPiBDYzogRXJpYyBEb25nIDxlcmljLmRvbmdAaW50ZWwuY29tPg0K PiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiBDYzogUmFodWwgS3VtYXIgPHJhaHVs MS5rdW1hckBpbnRlbC5jb20+DQo+IENjOiBEYW5pZWwgU2NoYWVmZXIgPGdpdEBkYW5pZWxzY2hh ZWZlci5tZT4NCj4gQ2M6IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPiBTaWdu ZWQtb2ZmLWJ5OiBTdW5pbCBWIEwgPHN1bmlsdmxAdmVudGFuYW1pY3JvLmNvbT4NCj4gQWNrZWQt Ynk6IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPiAtLS0NCj4gIFVlZmlDcHVQ a2cvVWVmaUNwdVBrZy5kc2MgICAgICAgICAgICAgICAgfCAgIDMgKw0KPiAgVWVmaUNwdVBrZy9D cHVUaW1lckR4ZS9DcHVUaW1lckR4ZS5pbmYgICB8ICA1MSArKysrDQo+ICBVZWZpQ3B1UGtnL0Nw dVRpbWVyRHhlL1Jpc2NWNjQvVGltZXIuaCAgIHwgMTc3ICsrKysrKysrKysrKw0KPiAgVWVmaUNw dVBrZy9DcHVUaW1lckR4ZS9SaXNjVjY0L1RpbWVyLmMgICB8IDI5NCArKysrKysrKysrKysrKysr KysrKw0KPiAgVWVmaUNwdVBrZy9DcHVUaW1lckR4ZS9DcHVUaW1lci51bmkgICAgICB8ICAxNCAr DQo+ICBVZWZpQ3B1UGtnL0NwdVRpbWVyRHhlL0NwdVRpbWVyRXh0cmEudW5pIHwgIDEyICsNCj4g IDYgZmlsZXMgY2hhbmdlZCwgNTUxIGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYgLS1naXQgYS9V ZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZHNjIGIvVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRzYw0KPiBp bmRleCBmOWE0NjA4OWQyYzcuLjk2ZjY3NzAyODFmZSAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBr Zy9VZWZpQ3B1UGtnLmRzYw0KPiArKysgYi9VZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZHNjDQo+IEBA IC0xOTUsNSArMTk1LDggQEAgW0NvbXBvbmVudHMuSUEzMiwgQ29tcG9uZW50cy5YNjRdDQo+ICBb Q29tcG9uZW50cy5YNjRdDQo+ICAgIFVlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5k bGVyTGliL1VuaXRUZXN0L0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWJVbml0VGVzdC5pbmYNCj4g DQo+ICtbQ29tcG9uZW50cy5SSVNDVjY0XQ0KPiArICBVZWZpQ3B1UGtnL0NwdVRpbWVyRHhlL0Nw dVRpbWVyRHhlLmluZg0KPiArDQo+ICBbQnVpbGRPcHRpb25zXQ0KPiAgICAqXypfKl9DQ19GTEFH UyA9IC1EIERJU0FCTEVfTkVXX0RFUFJFQ0FURURfSU5URVJGQUNFUw0KPiBkaWZmIC0tZ2l0IGEv VWVmaUNwdVBrZy9DcHVUaW1lckR4ZS9DcHVUaW1lckR4ZS5pbmYgYi9VZWZpQ3B1UGtnL0NwdVRp bWVyRHhlL0NwdVRpbWVyRHhlLmluZg0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAw MDAwMDAwMDAwMDAuLmQ3NzA2MzI4YjU5MQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1VlZmlD cHVQa2cvQ3B1VGltZXJEeGUvQ3B1VGltZXJEeGUuaW5mDQo+IEBAIC0wLDAgKzEsNTEgQEANCj4g KyMjIEBmaWxlDQo+ICsjIFRpbWVyIEFyY2ggcHJvdG9jb2wgbW9kdWxlDQo+ICsjDQo+ICsjIENv cHlyaWdodCAoYykgMjAxOSwgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQg TFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIw0KPiArIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArIw0KPiArIyMNCj4gKw0KPiArW0RlZmlu ZXNdDQo+ICsgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMWINCj4g KyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gQ3B1VGltZXJEeGUNCj4gKyAgTU9E VUxFX1VOSV9GSUxFICAgICAgICAgICAgICAgID0gQ3B1VGltZXIudW5pDQo+ICsgIEZJTEVfR1VJ RCAgICAgICAgICAgICAgICAgICAgICA9IDA1NUREQUM2LTkxNDItNDAxMy1CRjIwLUZDMkU1QkMz MjVDOQ0KPiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQo+ ICsgIFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KPiArICBFTlRSWV9QT0lO VCAgICAgICAgICAgICAgICAgICAgPSBUaW1lckRyaXZlckluaXRpYWxpemUNCj4gKyMNCj4gKyMg VGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCBy ZXF1aXJlZCBieSB0aGUgYnVpbGQNCj4gKyMgdG9vbHMuDQo+ICsjDQo+ICsjICBWQUxJRF9BUkNI SVRFQ1RVUkVTICAgICAgICAgICA9IFJJU0NWNjQNCj4gKyMNCj4gK1tQYWNrYWdlc10NCj4gKyAg TWRlUGtnL01kZVBrZy5kZWMNCj4gKyAgVWVmaUNwdVBrZy9VZWZpQ3B1UGtnLmRlYw0KPiArDQo+ ICtbTGlicmFyeUNsYXNzZXNdDQo+ICsgIEJhc2VMaWINCj4gKyAgRGVidWdMaWINCj4gKyAgSW9M aWINCj4gKyAgQ3B1TGliDQo+ICsgIFVlZmlCb290U2VydmljZXNUYWJsZUxpYg0KPiArICBVZWZp RHJpdmVyRW50cnlQb2ludA0KPiArDQo+ICtbTGlicmFyeUNsYXNzZXMuUklTQ1Y2NF0NCj4gKyAg UmlzY1ZTYmlMaWINCj4gKw0KPiArW1NvdXJjZXMuUklTQ1Y2NF0NCj4gKyAgUmlzY1Y2NC9UaW1l ci5oDQo+ICsgIFJpc2NWNjQvVGltZXIuYw0KPiArDQo+ICtbUHJvdG9jb2xzXQ0KPiArICBnRWZp Q3B1QXJjaFByb3RvY29sR3VpZCAgICAgICAjIyBDT05TVU1FUw0KPiArICBnRWZpVGltZXJBcmNo UHJvdG9jb2xHdWlkICAgICAjIyBQUk9EVUNFUw0KPiArDQo+ICtbRGVwZXhdDQo+ICsgIGdFZmlD cHVBcmNoUHJvdG9jb2xHdWlkDQo+ICsNCj4gK1tVc2VyRXh0ZW5zaW9ucy5UaWFub0NvcmUuIkV4 dHJhRmlsZXMiXQ0KPiArICBDcHVUaW1lckV4dHJhLnVuaQ0KPiBkaWZmIC0tZ2l0IGEvVWVmaUNw dVBrZy9DcHVUaW1lckR4ZS9SaXNjVjY0L1RpbWVyLmggYi9VZWZpQ3B1UGtnL0NwdVRpbWVyRHhl L1Jpc2NWNjQvVGltZXIuaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw MDAwMDAuLjU4NmViMGNmYWRiNA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1VlZmlDcHVQa2cv Q3B1VGltZXJEeGUvUmlzY1Y2NC9UaW1lci5oDQo+IEBAIC0wLDAgKzEsMTc3IEBADQo+ICsvKiog QGZpbGUNCj4gKyAgUklTQy1WIFRpbWVyIEFyY2hpdGVjdHVyYWwgUHJvdG9jb2wgZGVmaW5pdGlv bnMNCj4gKw0KPiArICBDb3B5cmlnaHQgKGMpIDIwMTksIEhld2xldHQgUGFja2FyZCBFbnRlcnBy aXNlIERldmVsb3BtZW50IExQLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKw0KPiArICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8N Cj4gKw0KPiArI2lmbmRlZiBUSU1FUl9IXw0KPiArI2RlZmluZSBUSU1FUl9IXw0KPiArDQo+ICsj aW5jbHVkZSA8UGlEeGUuaD4NCj4gKw0KPiArI2luY2x1ZGUgPFByb3RvY29sL0NwdS5oPg0KPiAr I2luY2x1ZGUgPFByb3RvY29sL1RpbWVyLmg+DQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1Vl ZmlCb290U2VydmljZXNUYWJsZUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5o Pg0KPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5 L0lvTGliLmg+DQo+ICsNCj4gKy8vDQo+ICsvLyBSSVNDLVYgdXNlIDEwMHVzIHRpbWVyLg0KPiAr Ly8gVGhlIGRlZmF1bHQgdGltZXIgdGljayBkdXJhdGlvbiBpcyBzZXQgdG8gMTAgbXMgPSAxMCAq IDEwMDAgKiAxMCAxMDAgbnMgdW5pdHMNCj4gKy8vDQo+ICsjZGVmaW5lIERFRkFVTFRfVElNRVJf VElDS19EVVJBVElPTiAgMTAwMDAwDQo+ICsNCj4gK2V4dGVybiBWT0lEDQo+ICtSaXNjdlNldFRp bWVyUGVyaW9kICgNCj4gKyAgVUlOVDMyICBUaW1lclBlcmlvZA0KPiArICApOw0KPiArDQo+ICsv Lw0KPiArLy8gRnVuY3Rpb24gUHJvdG90eXBlcw0KPiArLy8NCj4gKw0KPiArLyoqDQo+ICsgIElu aXRpYWxpemUgdGhlIFRpbWVyIEFyY2hpdGVjdHVyYWwgUHJvdG9jb2wgZHJpdmVyDQo+ICsNCj4g KyAgQHBhcmFtIEltYWdlSGFuZGxlICAgICBJbWFnZUhhbmRsZSBvZiB0aGUgbG9hZGVkIGRyaXZl cg0KPiArICBAcGFyYW0gU3lzdGVtVGFibGUgICAgIFBvaW50ZXIgdG8gdGhlIFN5c3RlbSBUYWJs ZQ0KPiArDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaW1lciBBcmNoaXRl Y3R1cmFsIFByb3RvY29sIGNyZWF0ZWQNCj4gKyAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNF UyAgIE5vdCBlbm91Z2ggcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBpbml0aWFsaXplIGRyaXZlci4N Cj4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgIEEgZGV2aWNlIGVycm9yIG9jY3Vy ZWQgYXR0ZW1wdGluZyB0byBpbml0aWFsaXplIHRoZSBkcml2ZXIuDQo+ICsNCj4gKyoqLw0KPiAr RUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtUaW1lckRyaXZlckluaXRpYWxpemUgKA0KPiArICBJ TiBFRklfSEFORExFICAgICAgICBJbWFnZUhhbmRsZSwNCj4gKyAgSU4gRUZJX1NZU1RFTV9UQUJM RSAgKlN5c3RlbVRhYmxlDQo+ICsgICkNCj4gKzsNCj4gKw0KPiArLyoqDQo+ICsNCj4gKyAgVGhp cyBmdW5jdGlvbiBhZGp1c3RzIHRoZSBwZXJpb2Qgb2YgdGltZXIgaW50ZXJydXB0cyB0byB0aGUg dmFsdWUgc3BlY2lmaWVkDQo+ICsgIGJ5IFRpbWVyUGVyaW9kLiAgSWYgdGhlIHRpbWVyIHBlcmlv ZCBpcyB1cGRhdGVkLCB0aGVuIHRoZSBzZWxlY3RlZCB0aW1lcg0KPiArICBwZXJpb2QgaXMgc3Rv cmVkIGluIEVGSV9USU1FUi5UaW1lclBlcmlvZCwgYW5kIEVGSV9TVUNDRVNTIGlzIHJldHVybmVk LiAgSWYNCj4gKyAgdGhlIHRpbWVyIGhhcmR3YXJlIGlzIG5vdCBwcm9ncmFtbWFibGUsIHRoZW4g RUZJX1VOU1VQUE9SVEVEIGlzIHJldHVybmVkLg0KPiArICBJZiBhbiBlcnJvciBvY2N1cnMgd2hp bGUgYXR0ZW1wdGluZyB0byB1cGRhdGUgdGhlIHRpbWVyIHBlcmlvZCwgdGhlbiB0aGUNCj4gKyAg dGltZXIgaGFyZHdhcmUgd2lsbCBiZSBwdXQgYmFjayBpbiBpdHMgc3RhdGUgcHJpb3IgdG8gdGhp cyBjYWxsLCBhbmQNCj4gKyAgRUZJX0RFVklDRV9FUlJPUiBpcyByZXR1cm5lZC4gIElmIFRpbWVy UGVyaW9kIGlzIDAsIHRoZW4gdGhlIHRpbWVyIGludGVycnVwdA0KPiArICBpcyBkaXNhYmxlZC4g IFRoaXMgaXMgbm90IHRoZSBzYW1lIGFzIGRpc2FibGluZyB0aGUgQ1BVJ3MgaW50ZXJydXB0cy4N Cj4gKyAgSW5zdGVhZCwgaXQgbXVzdCBlaXRoZXIgdHVybiBvZmYgdGhlIHRpbWVyIGhhcmR3YXJl LCBvciBpdCBtdXN0IGFkanVzdCB0aGUNCj4gKyAgaW50ZXJydXB0IGNvbnRyb2xsZXIgc28gdGhh dCBhIENQVSBpbnRlcnJ1cHQgaXMgbm90IGdlbmVyYXRlZCB3aGVuIHRoZSB0aW1lcg0KPiArICBp bnRlcnJ1cHQgZmlyZXMuDQo+ICsNCj4gKw0KPiArICBAcGFyYW0gVGhpcyAgICAgICAgICAgIFRo ZSBFRklfVElNRVJfQVJDSF9QUk9UT0NPTCBpbnN0YW5jZS4NCj4gKyAgQHBhcmFtIE5vdGlmeUZ1 bmN0aW9uICBUaGUgcmF0ZSB0byBwcm9ncmFtIHRoZSB0aW1lciBpbnRlcnJ1cHQgaW4gMTAwIG5T IHVuaXRzLiAgSWYNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdGltZXIgaGFyZHdh cmUgaXMgbm90IHByb2dyYW1tYWJsZSwgdGhlbiBFRklfVU5TVVBQT1JURUQgaXMNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm5lZC4gIElmIHRoZSB0aW1lciBpcyBwcm9ncmFtbWFi bGUsIHRoZW4gdGhlIHRpbWVyIHBlcmlvZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIHdp bGwgYmUgcm91bmRlZCB1cCB0byB0aGUgbmVhcmVzdCB0aW1lciBwZXJpb2QgdGhhdCBpcyBzdXBw b3J0ZWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBieSB0aGUgdGltZXIgaGFyZHdhcmUu ICBJZiBUaW1lclBlcmlvZCBpcyBzZXQgdG8gMCwgdGhlbiB0aGUNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICB0aW1lciBpbnRlcnJ1cHRzIHdpbGwgYmUgZGlzYWJsZWQuDQo+ICsNCj4gKyAg QHJldHZhbCAgICAgICAgRUZJX1NVQ0NFU1MgICAgICAgVGhlIHRpbWVyIHBlcmlvZCB3YXMgY2hh bmdlZC4NCj4gKyAgQHJldHZhbCAgICAgICAgRUZJX1VOU1VQUE9SVEVEICAgVGhlIHBsYXRmb3Jt IGNhbm5vdCBjaGFuZ2UgdGhlIHBlcmlvZCBvZiB0aGUgdGltZXIgaW50ZXJydXB0Lg0KPiArICBA cmV0dmFsICAgICAgICBFRklfREVWSUNFX0VSUk9SICBUaGUgdGltZXIgcGVyaW9kIGNvdWxkIG5v dCBiZSBjaGFuZ2VkIGR1ZSB0byBhIGRldmljZSBlcnJvci4NCj4gKw0KPiArKiovDQo+ICtFRklf U1RBVFVTDQo+ICtFRklBUEkNCj4gK1RpbWVyRHJpdmVyUmVnaXN0ZXJIYW5kbGVyICgNCj4gKyAg SU4gRUZJX1RJTUVSX0FSQ0hfUFJPVE9DT0wgICpUaGlzLA0KPiArICBJTiBFRklfVElNRVJfTk9U SUZZICAgICAgICAgTm90aWZ5RnVuY3Rpb24NCj4gKyAgKQ0KPiArOw0KPiArDQo+ICsvKioNCj4g Kw0KPiArICBUaGlzIGZ1bmN0aW9uIGFkanVzdHMgdGhlIHBlcmlvZCBvZiB0aW1lciBpbnRlcnJ1 cHRzIHRvIHRoZSB2YWx1ZSBzcGVjaWZpZWQNCj4gKyAgYnkgVGltZXJQZXJpb2QuICBJZiB0aGUg dGltZXIgcGVyaW9kIGlzIHVwZGF0ZWQsIHRoZW4gdGhlIHNlbGVjdGVkIHRpbWVyDQo+ICsgIHBl cmlvZCBpcyBzdG9yZWQgaW4gRUZJX1RJTUVSLlRpbWVyUGVyaW9kLCBhbmQgRUZJX1NVQ0NFU1Mg aXMgcmV0dXJuZWQuICBJZg0KPiArICB0aGUgdGltZXIgaGFyZHdhcmUgaXMgbm90IHByb2dyYW1t YWJsZSwgdGhlbiBFRklfVU5TVVBQT1JURUQgaXMgcmV0dXJuZWQuDQo+ICsgIElmIGFuIGVycm9y IG9jY3VycyB3aGlsZSBhdHRlbXB0aW5nIHRvIHVwZGF0ZSB0aGUgdGltZXIgcGVyaW9kLCB0aGVu IHRoZQ0KPiArICB0aW1lciBoYXJkd2FyZSB3aWxsIGJlIHB1dCBiYWNrIGluIGl0cyBzdGF0ZSBw cmlvciB0byB0aGlzIGNhbGwsIGFuZA0KPiArICBFRklfREVWSUNFX0VSUk9SIGlzIHJldHVybmVk LiAgSWYgVGltZXJQZXJpb2QgaXMgMCwgdGhlbiB0aGUgdGltZXIgaW50ZXJydXB0DQo+ICsgIGlz IGRpc2FibGVkLiAgVGhpcyBpcyBub3QgdGhlIHNhbWUgYXMgZGlzYWJsaW5nIHRoZSBDUFUncyBp bnRlcnJ1cHRzLg0KPiArICBJbnN0ZWFkLCBpdCBtdXN0IGVpdGhlciB0dXJuIG9mZiB0aGUgdGlt ZXIgaGFyZHdhcmUsIG9yIGl0IG11c3QgYWRqdXN0IHRoZQ0KPiArICBpbnRlcnJ1cHQgY29udHJv bGxlciBzbyB0aGF0IGEgQ1BVIGludGVycnVwdCBpcyBub3QgZ2VuZXJhdGVkIHdoZW4gdGhlIHRp bWVyDQo+ICsgIGludGVycnVwdCBmaXJlcy4NCj4gKw0KPiArDQo+ICsgIEBwYXJhbSBUaGlzICAg ICAgICAgICAgVGhlIEVGSV9USU1FUl9BUkNIX1BST1RPQ09MIGluc3RhbmNlLg0KPiArICBAcGFy YW0gVGltZXJQZXJpb2QgICAgIFRoZSByYXRlIHRvIHByb2dyYW0gdGhlIHRpbWVyIGludGVycnVw dCBpbiAxMDAgblMgdW5pdHMuICBJZg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB0 aW1lciBoYXJkd2FyZSBpcyBub3QgcHJvZ3JhbW1hYmxlLCB0aGVuIEVGSV9VTlNVUFBPUlRFRCBp cw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkLiAgSWYgdGhlIHRpbWVyIGlz IHByb2dyYW1tYWJsZSwgdGhlbiB0aGUgdGltZXIgcGVyaW9kDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgd2lsbCBiZSByb3VuZGVkIHVwIHRvIHRoZSBuZWFyZXN0IHRpbWVyIHBlcmlvZCB0 aGF0IGlzIHN1cHBvcnRlZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IHRoZSB0aW1l ciBoYXJkd2FyZS4gIElmIFRpbWVyUGVyaW9kIGlzIHNldCB0byAwLCB0aGVuIHRoZQ0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgIHRpbWVyIGludGVycnVwdHMgd2lsbCBiZSBkaXNhYmxlZC4N Cj4gKw0KPiArICBAcmV0dmFsICAgICAgICBFRklfU1VDQ0VTUyAgICAgICBUaGUgdGltZXIgcGVy aW9kIHdhcyBjaGFuZ2VkLg0KPiArICBAcmV0dmFsICAgICAgICBFRklfVU5TVVBQT1JURUQgICBU aGUgcGxhdGZvcm0gY2Fubm90IGNoYW5nZSB0aGUgcGVyaW9kIG9mIHRoZSB0aW1lciBpbnRlcnJ1 cHQuDQo+ICsgIEByZXR2YWwgICAgICAgIEVGSV9ERVZJQ0VfRVJST1IgIFRoZSB0aW1lciBwZXJp b2QgY291bGQgbm90IGJlIGNoYW5nZWQgZHVlIHRvIGEgZGV2aWNlIGVycm9yLg0KPiArDQo+ICsq Ki8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArVGltZXJEcml2ZXJTZXRUaW1lclBlcmlv ZCAoDQo+ICsgIElOIEVGSV9USU1FUl9BUkNIX1BST1RPQ09MICAqVGhpcywNCj4gKyAgSU4gVUlO VDY0ICAgICAgICAgICAgICAgICAgIFRpbWVyUGVyaW9kDQo+ICsgICkNCj4gKzsNCj4gKw0KPiAr LyoqDQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgdGhlIHBlcmlvZCBvZiB0aW1l ciBpbnRlcnJ1cHRzIGluIDEwMCBucyB1bml0cywNCj4gKyAgcmV0dXJucyB0aGF0IHZhbHVlIGlu IFRpbWVyUGVyaW9kLCBhbmQgcmV0dXJucyBFRklfU1VDQ0VTUy4gIElmIFRpbWVyUGVyaW9kDQo+ ICsgIGlzIE5VTEwsIHRoZW4gRUZJX0lOVkFMSURfUEFSQU1FVEVSIGlzIHJldHVybmVkLiAgSWYg YSBUaW1lclBlcmlvZCBvZiAwIGlzDQo+ICsgIHJldHVybmVkLCB0aGVuIHRoZSB0aW1lciBpcyBj dXJyZW50bHkgZGlzYWJsZWQuDQo+ICsNCj4gKw0KPiArICBAcGFyYW0gVGhpcyAgICAgICAgICAg IFRoZSBFRklfVElNRVJfQVJDSF9QUk9UT0NPTCBpbnN0YW5jZS4NCj4gKyAgQHBhcmFtIFRpbWVy UGVyaW9kICAgICBBIHBvaW50ZXIgdG8gdGhlIHRpbWVyIHBlcmlvZCB0byByZXRyaWV2ZSBpbiAx MDAgbnMgdW5pdHMuICBJZg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIDAgaXMgcmV0dXJu ZWQsIHRoZW4gdGhlIHRpbWVyIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4NCj4gKw0KPiArICBAcmV0 dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIHRpbWVyIHBlcmlvZCB3YXMgcmV0dXJuZWQg aW4gVGltZXJQZXJpb2QuDQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBUaW1l clBlcmlvZCBpcyBOVUxMLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0K PiArVGltZXJEcml2ZXJHZXRUaW1lclBlcmlvZCAoDQo+ICsgIElOIEVGSV9USU1FUl9BUkNIX1BS T1RPQ09MICAqVGhpcywNCj4gKyAgT1VUIFVJTlQ2NCAgICAgICAgICAgICAgICAgICpUaW1lclBl cmlvZA0KPiArICApDQo+ICs7DQo+ICsNCj4gKy8qKg0KPiArDQo+ICsgIFRoaXMgZnVuY3Rpb24g Z2VuZXJhdGVzIGEgc29mdCB0aW1lciBpbnRlcnJ1cHQuIElmIHRoZSBwbGF0Zm9ybSBkb2VzIG5v dCBzdXBwb3J0IHNvZnQNCj4gKyAgdGltZXIgaW50ZXJydXB0cywgdGhlbiBFRklfVU5TVVBQT1JU RUQgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSwgRUZJX1NVQ0NFU1MgaXMgcmV0dXJuZWQuDQo+ICsg IElmIGEgaGFuZGxlciBoYXMgYmVlbiByZWdpc3RlcmVkIHRocm91Z2ggdGhlIEVGSV9USU1FUl9B UkNIX1BST1RPQ09MLlJlZ2lzdGVySGFuZGxlcigpDQo+ICsgIHNlcnZpY2UsIHRoZW4gYSBzb2Z0 IHRpbWVyIGludGVycnVwdCB3aWxsIGJlIGdlbmVyYXRlZC4gSWYgdGhlIHRpbWVyIGludGVycnVw dCBpcw0KPiArICBlbmFibGVkIHdoZW4gdGhpcyBzZXJ2aWNlIGlzIGNhbGxlZCwgdGhlbiB0aGUg cmVnaXN0ZXJlZCBoYW5kbGVyIHdpbGwgYmUgaW52b2tlZC4gVGhlDQo+ICsgIHJlZ2lzdGVyZWQg aGFuZGxlciBzaG91bGQgbm90IGJlIGFibGUgdG8gZGlzdGluZ3Vpc2ggYSBoYXJkd2FyZS1nZW5l cmF0ZWQgdGltZXINCj4gKyAgaW50ZXJydXB0IGZyb20gYSBzb2Z0d2FyZS1nZW5lcmF0ZWQgdGlt ZXIgaW50ZXJydXB0Lg0KPiArDQo+ICsNCj4gKyAgQHBhcmFtIFRoaXMgICAgICAgICAgICAgIFRo ZSBFRklfVElNRVJfQVJDSF9QUk9UT0NPTCBpbnN0YW5jZS4NCj4gKw0KPiArICBAcmV0dmFsIEVG SV9TVUNDRVNTICAgICAgIFRoZSBzb2Z0IHRpbWVyIGludGVycnVwdCB3YXMgZ2VuZXJhdGVkLg0K PiArICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRFQgIFRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBw b3J0IHRoZSBnZW5lcmF0aW9uIG9mIHNvZnQgdGltZXIgaW50ZXJydXB0cy4NCj4gKw0KPiArKiov DQo+ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK1RpbWVyRHJpdmVyR2VuZXJhdGVTb2Z0SW50 ZXJydXB0ICgNCj4gKyAgSU4gRUZJX1RJTUVSX0FSQ0hfUFJPVE9DT0wgICpUaGlzDQo+ICsgICkN Cj4gKzsNCj4gKw0KPiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdVRpbWVy RHhlL1Jpc2NWNjQvVGltZXIuYyBiL1VlZmlDcHVQa2cvQ3B1VGltZXJEeGUvUmlzY1Y2NC9UaW1l ci5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZGIxNTNm NzE1ZTYwDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvVWVmaUNwdVBrZy9DcHVUaW1lckR4ZS9S aXNjVjY0L1RpbWVyLmMNCj4gQEAgLTAsMCArMSwyOTQgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBS SVNDLVYgVGltZXIgQXJjaGl0ZWN0dXJhbCBQcm90b2NvbA0KPiArDQo+ICsgIENvcHlyaWdodCAo YykgMjAxOSwgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFAuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArDQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsNCj4gKyoqLw0KPiArDQo+ICsjaW5jbHVkZSA8TGlicmFy eS9CYXNlTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIuaD4NCj4g KyNpbmNsdWRlICJUaW1lci5oIg0KPiArDQo+ICsvLw0KPiArLy8gVGhlIGhhbmRsZSBvbnRvIHdo aWNoIHRoZSBUaW1lciBBcmNoaXRlY3R1cmFsIFByb3RvY29sIHdpbGwgYmUgaW5zdGFsbGVkDQo+ ICsvLw0KPiArU1RBVElDIEVGSV9IQU5ETEUgIG1UaW1lckhhbmRsZSA9IE5VTEw7DQo+ICsNCj4g Ky8vDQo+ICsvLyBUaGUgVGltZXIgQXJjaGl0ZWN0dXJhbCBQcm90b2NvbCB0aGF0IHRoaXMgZHJp dmVyIHByb2R1Y2VzDQo+ICsvLw0KPiArRUZJX1RJTUVSX0FSQ0hfUFJPVE9DT0wgIG1UaW1lciA9 IHsNCj4gKyAgVGltZXJEcml2ZXJSZWdpc3RlckhhbmRsZXIsDQo+ICsgIFRpbWVyRHJpdmVyU2V0 VGltZXJQZXJpb2QsDQo+ICsgIFRpbWVyRHJpdmVyR2V0VGltZXJQZXJpb2QsDQo+ICsgIFRpbWVy RHJpdmVyR2VuZXJhdGVTb2Z0SW50ZXJydXB0DQo+ICt9Ow0KPiArDQo+ICsvLw0KPiArLy8gUG9p bnRlciB0byB0aGUgQ1BVIEFyY2hpdGVjdHVyYWwgUHJvdG9jb2wgaW5zdGFuY2UNCj4gKy8vDQo+ ICtFRklfQ1BVX0FSQ0hfUFJPVE9DT0wgICptQ3B1Ow0KPiArDQo+ICsvLw0KPiArLy8gVGhlIG5v dGlmaWNhdGlvbiBmdW5jdGlvbiB0byBjYWxsIG9uIGV2ZXJ5IHRpbWVyIGludGVycnVwdC4NCj4g Ky8vIEEgYnVnIGluIHRoZSBjb21waWxlciBwcmV2ZW50cyB1cyBmcm9tIGluaXRpYWxpemluZyB0 aGlzIGhlcmUuDQo+ICsvLw0KPiArU1RBVElDIEVGSV9USU1FUl9OT1RJRlkgIG1UaW1lck5vdGlm eUZ1bmN0aW9uOw0KPiArDQo+ICsvLw0KPiArLy8gVGhlIGN1cnJlbnQgcGVyaW9kIG9mIHRoZSB0 aW1lciBpbnRlcnJ1cHQNCj4gKy8vDQo+ICtTVEFUSUMgVUlOVDY0ICBtVGltZXJQZXJpb2QgPSAw Ow0KPiArDQo+ICsvKioNCj4gKyAgVGltZXIgSW50ZXJydXB0IEhhbmRsZXIuDQo+ICsNCj4gKyAg QHBhcmFtIEludGVycnVwdFR5cGUgICAgVGhlIHR5cGUgb2YgaW50ZXJydXB0IHRoYXQgb2NjdXJl ZA0KPiArICBAcGFyYW0gU3lzdGVtQ29udGV4dCAgICBBIHBvaW50ZXIgdG8gdGhlIHN5c3RlbSBj b250ZXh0IHdoZW4gdGhlIGludGVycnVwdCBvY2N1cmVkDQo+ICsqKi8NCj4gK1ZPSUQNCj4gK0VG SUFQSQ0KPiArVGltZXJJbnRlcnJ1cHRIYW5kbGVyICgNCj4gKyAgSU4gRUZJX0VYQ0VQVElPTl9U WVBFICBJbnRlcnJ1cHRUeXBlLA0KPiArICBJTiBFRklfU1lTVEVNX0NPTlRFWFQgIFN5c3RlbUNv bnRleHQNCj4gKyAgKQ0KPiArew0KPiArICBFRklfVFBMICBPcmlnaW5hbFRQTDsNCj4gKyAgVUlO VDY0ICAgUmlzY3ZUaW1lcjsNCj4gKw0KPiArICBPcmlnaW5hbFRQTCA9IGdCUy0+UmFpc2VUUEwg KFRQTF9ISUdIX0xFVkVMKTsNCj4gKyAgaWYgKG1UaW1lck5vdGlmeUZ1bmN0aW9uICE9IE5VTEwp IHsNCj4gKyAgICBtVGltZXJOb3RpZnlGdW5jdGlvbiAobVRpbWVyUGVyaW9kKTsNCj4gKyAgfQ0K PiArDQo+ICsgIFJpc2NWRGlzYWJsZVRpbWVySW50ZXJydXB0ICgpOyAvLyBEaXNhYmxlIFNNb2Rl IHRpbWVyIGludA0KPiArICBSaXNjVkNsZWFyUGVuZGluZ1RpbWVySW50ZXJydXB0ICgpOw0KPiAr ICBpZiAobVRpbWVyUGVyaW9kID09IDApIHsNCj4gKyAgICBnQlMtPlJlc3RvcmVUUEwgKE9yaWdp bmFsVFBMKTsNCj4gKyAgICBSaXNjVkRpc2FibGVUaW1lckludGVycnVwdCAoKTsgLy8gRGlzYWJs ZSBTTW9kZSB0aW1lciBpbnQNCj4gKyAgICByZXR1cm47DQo+ICsgIH0NCj4gKw0KPiArICBSaXNj dlRpbWVyICAgICAgICAgICAgICAgPSBSaXNjVlJlYWRUaW1lciAoKTsNCj4gKyAgU2JpU2V0VGlt ZXIgKFJpc2N2VGltZXIgKz0gbVRpbWVyUGVyaW9kKTsNCj4gKyAgZ0JTLT5SZXN0b3JlVFBMIChP cmlnaW5hbFRQTCk7DQo+ICsgIFJpc2NWRW5hYmxlVGltZXJJbnRlcnJ1cHQgKCk7IC8vIGVuYWJs ZSBTTW9kZSB0aW1lciBpbnQNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsNCj4gKyAgVGhpcyBmdW5j dGlvbiByZWdpc3RlcnMgdGhlIGhhbmRsZXIgTm90aWZ5RnVuY3Rpb24gc28gaXQgaXMgY2FsbGVk IGV2ZXJ5IHRpbWUNCj4gKyAgdGhlIHRpbWVyIGludGVycnVwdCBmaXJlcy4gIEl0IGFsc28gcGFz c2VzIHRoZSBhbW91bnQgb2YgdGltZSBzaW5jZSB0aGUgbGFzdA0KPiArICBoYW5kbGVyIGNhbGwg dG8gdGhlIE5vdGlmeUZ1bmN0aW9uLiAgSWYgTm90aWZ5RnVuY3Rpb24gaXMgTlVMTCwgdGhlbiB0 aGUNCj4gKyAgaGFuZGxlciBpcyB1bnJlZ2lzdGVyZWQuICBJZiB0aGUgaGFuZGxlciBpcyByZWdp c3RlcmVkLCB0aGVuIEVGSV9TVUNDRVNTIGlzDQo+ICsgIHJldHVybmVkLiAgSWYgdGhlIENQVSBk b2VzIG5vdCBzdXBwb3J0IHJlZ2lzdGVyaW5nIGEgdGltZXIgaW50ZXJydXB0IGhhbmRsZXIsDQo+ ICsgIHRoZW4gRUZJX1VOU1VQUE9SVEVEIGlzIHJldHVybmVkLiAgSWYgYW4gYXR0ZW1wdCBpcyBt YWRlIHRvIHJlZ2lzdGVyIGEgaGFuZGxlcg0KPiArICB3aGVuIGEgaGFuZGxlciBpcyBhbHJlYWR5 IHJlZ2lzdGVyZWQsIHRoZW4gRUZJX0FMUkVBRFlfU1RBUlRFRCBpcyByZXR1cm5lZC4NCj4gKyAg SWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvIHVucmVnaXN0ZXIgYSBoYW5kbGVyIHdoZW4gYSBoYW5k bGVyIGlzIG5vdCByZWdpc3RlcmVkLA0KPiArICB0aGVuIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBp cyByZXR1cm5lZC4gIElmIGFuIGVycm9yIG9jY3VycyBhdHRlbXB0aW5nIHRvDQo+ICsgIHJlZ2lz dGVyIHRoZSBOb3RpZnlGdW5jdGlvbiB3aXRoIHRoZSB0aW1lciBpbnRlcnJ1cHQsIHRoZW4gRUZJ X0RFVklDRV9FUlJPUg0KPiArICBpcyByZXR1cm5lZC4NCj4gKw0KPiArICBAcGFyYW0gVGhpcyAg ICAgICAgICAgICBUaGUgRUZJX1RJTUVSX0FSQ0hfUFJPVE9DT0wgaW5zdGFuY2UuDQo+ICsgIEBw YXJhbSBOb3RpZnlGdW5jdGlvbiAgIFRoZSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gYSB0aW1lciBp bnRlcnJ1cHQgZmlyZXMuICBUaGlzDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0 aW9uIGV4ZWN1dGVzIGF0IFRQTF9ISUdIX0xFVkVMLiAgVGhlIERYRSBDb3JlIHdpbGwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXIgYSBoYW5kbGVyIGZvciB0aGUgdGltZXIg aW50ZXJydXB0LCBzbyBpdCBjYW4ga25vdw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBo b3cgbXVjaCB0aW1lIGhhcyBwYXNzZWQuICBUaGlzIGluZm9ybWF0aW9uIGlzIHVzZWQgdG8NCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsIHRpbWVyIGJhc2VkIGV2ZW50cy4gIE5V TEwgd2lsbCB1bnJlZ2lzdGVyIHRoZSBoYW5kbGVyLg0KPiArDQo+ICsgIEByZXR2YWwgICAgICAg IEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIHRpbWVyIGhhbmRsZXIgd2FzIHJlZ2lzdGVyZWQu DQo+ICsgIEByZXR2YWwgICAgICAgIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgVGhlIHBsYXRmb3Jt IGRvZXMgbm90IHN1cHBvcnQgdGltZXIgaW50ZXJydXB0cy4NCj4gKyAgQHJldHZhbCAgICAgICAg RUZJX0FMUkVBRFlfU1RBUlRFRCAgICBOb3RpZnlGdW5jdGlvbiBpcyBub3QgTlVMTCwgYW5kIGEg aGFuZGxlciBpcyBhbHJlYWR5DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVnaXN0ZXJlZC4NCj4gKyAgQHJldHZhbCAgICAgICAgRUZJX0lOVkFMSURfUEFSQU1F VEVSICBOb3RpZnlGdW5jdGlvbiBpcyBOVUxMLCBhbmQgYSBoYW5kbGVyIHdhcyBub3QNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c2x5IHJlZ2lzdGVy ZWQuDQo+ICsgIEByZXR2YWwgICAgICAgIEVGSV9ERVZJQ0VfRVJST1IgICAgICAgVGhlIHRpbWVy IGhhbmRsZXIgY291bGQgbm90IGJlIHJlZ2lzdGVyZWQuDQo+ICsNCj4gKyoqLw0KPiArRUZJX1NU QVRVUw0KPiArRUZJQVBJDQo+ICtUaW1lckRyaXZlclJlZ2lzdGVySGFuZGxlciAoDQo+ICsgIElO IEVGSV9USU1FUl9BUkNIX1BST1RPQ09MICAqVGhpcywNCj4gKyAgSU4gRUZJX1RJTUVSX05PVElG WSAgICAgICAgIE5vdGlmeUZ1bmN0aW9uDQo+ICsgICkNCj4gK3sNCj4gKyAgREVCVUcgKChERUJV R19JTkZPLCAiVGltZXJEcml2ZXJSZWdpc3RlckhhbmRsZXIoMHglbHgpIGNhbGxlZFxuIiwgTm90 aWZ5RnVuY3Rpb24pKTsNCj4gKyAgbVRpbWVyTm90aWZ5RnVuY3Rpb24gPSBOb3RpZnlGdW5jdGlv bjsNCj4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKw0KPiAr ICBUaGlzIGZ1bmN0aW9uIGFkanVzdHMgdGhlIHBlcmlvZCBvZiB0aW1lciBpbnRlcnJ1cHRzIHRv IHRoZSB2YWx1ZSBzcGVjaWZpZWQNCj4gKyAgYnkgVGltZXJQZXJpb2QuICBJZiB0aGUgdGltZXIg cGVyaW9kIGlzIHVwZGF0ZWQsIHRoZW4gdGhlIHNlbGVjdGVkIHRpbWVyDQo+ICsgIHBlcmlvZCBp cyBzdG9yZWQgaW4gRUZJX1RJTUVSLlRpbWVyUGVyaW9kLCBhbmQgRUZJX1NVQ0NFU1MgaXMgcmV0 dXJuZWQuICBJZg0KPiArICB0aGUgdGltZXIgaGFyZHdhcmUgaXMgbm90IHByb2dyYW1tYWJsZSwg dGhlbiBFRklfVU5TVVBQT1JURUQgaXMgcmV0dXJuZWQuDQo+ICsgIElmIGFuIGVycm9yIG9jY3Vy cyB3aGlsZSBhdHRlbXB0aW5nIHRvIHVwZGF0ZSB0aGUgdGltZXIgcGVyaW9kLCB0aGVuIHRoZQ0K PiArICB0aW1lciBoYXJkd2FyZSB3aWxsIGJlIHB1dCBiYWNrIGluIGl0cyBzdGF0ZSBwcmlvciB0 byB0aGlzIGNhbGwsIGFuZA0KPiArICBFRklfREVWSUNFX0VSUk9SIGlzIHJldHVybmVkLiAgSWYg VGltZXJQZXJpb2QgaXMgMCwgdGhlbiB0aGUgdGltZXIgaW50ZXJydXB0DQo+ICsgIGlzIGRpc2Fi bGVkLiAgVGhpcyBpcyBub3QgdGhlIHNhbWUgYXMgZGlzYWJsaW5nIHRoZSBDUFUncyBpbnRlcnJ1 cHRzLg0KPiArICBJbnN0ZWFkLCBpdCBtdXN0IGVpdGhlciB0dXJuIG9mZiB0aGUgdGltZXIgaGFy ZHdhcmUsIG9yIGl0IG11c3QgYWRqdXN0IHRoZQ0KPiArICBpbnRlcnJ1cHQgY29udHJvbGxlciBz byB0aGF0IGEgQ1BVIGludGVycnVwdCBpcyBub3QgZ2VuZXJhdGVkIHdoZW4gdGhlIHRpbWVyDQo+ ICsgIGludGVycnVwdCBmaXJlcy4NCj4gKw0KPiArDQo+ICsgIEBwYXJhbSBUaGlzICAgICAgICAg ICAgVGhlIEVGSV9USU1FUl9BUkNIX1BST1RPQ09MIGluc3RhbmNlLg0KPiArICBAcGFyYW0gVGlt ZXJQZXJpb2QgICAgIFRoZSByYXRlIHRvIHByb2dyYW0gdGhlIHRpbWVyIGludGVycnVwdCBpbiAx MDAgblMgdW5pdHMuICBJZg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB0aW1lciBo YXJkd2FyZSBpcyBub3QgcHJvZ3JhbW1hYmxlLCB0aGVuIEVGSV9VTlNVUFBPUlRFRCBpcw0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybmVkLiAgSWYgdGhlIHRpbWVyIGlzIHByb2dy YW1tYWJsZSwgdGhlbiB0aGUgdGltZXIgcGVyaW9kDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgd2lsbCBiZSByb3VuZGVkIHVwIHRvIHRoZSBuZWFyZXN0IHRpbWVyIHBlcmlvZCB0aGF0IGlz IHN1cHBvcnRlZA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IHRoZSB0aW1lciBoYXJk d2FyZS4gIElmIFRpbWVyUGVyaW9kIGlzIHNldCB0byAwLCB0aGVuIHRoZQ0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgIHRpbWVyIGludGVycnVwdHMgd2lsbCBiZSBkaXNhYmxlZC4NCj4gKw0K PiArICBAcmV0dmFsICAgICAgICBFRklfU1VDQ0VTUyAgICAgICBUaGUgdGltZXIgcGVyaW9kIHdh cyBjaGFuZ2VkLg0KPiArICBAcmV0dmFsICAgICAgICBFRklfVU5TVVBQT1JURUQgICBUaGUgcGxh dGZvcm0gY2Fubm90IGNoYW5nZSB0aGUgcGVyaW9kIG9mIHRoZSB0aW1lciBpbnRlcnJ1cHQuDQo+ ICsgIEByZXR2YWwgICAgICAgIEVGSV9ERVZJQ0VfRVJST1IgIFRoZSB0aW1lciBwZXJpb2QgY291 bGQgbm90IGJlIGNoYW5nZWQgZHVlIHRvIGEgZGV2aWNlIGVycm9yLg0KPiArDQo+ICsqKi8NCj4g K0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArVGltZXJEcml2ZXJTZXRUaW1lclBlcmlvZCAoDQo+ ICsgIElOIEVGSV9USU1FUl9BUkNIX1BST1RPQ09MICAqVGhpcywNCj4gKyAgSU4gVUlOVDY0ICAg ICAgICAgICAgICAgICAgIFRpbWVyUGVyaW9kDQo+ICsgICkNCj4gK3sNCj4gKyAgVUlOVDY0ICBS aXNjdlRpbWVyOw0KPiArDQo+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIlRpbWVyRHJpdmVyU2V0 VGltZXJQZXJpb2QoMHglbHgpXG4iLCBUaW1lclBlcmlvZCkpOw0KPiArDQo+ICsgIGlmIChUaW1l clBlcmlvZCA9PSAwKSB7DQo+ICsgICAgbVRpbWVyUGVyaW9kID0gMDsNCj4gKyAgICBSaXNjVkRp c2FibGVUaW1lckludGVycnVwdCAoKTsgLy8gRGlzYWJsZSBTTW9kZSB0aW1lciBpbnQNCj4gKyAg ICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ICsgIH0NCj4gKw0KPiArICBtVGltZXJQZXJpb2QgPSBU aW1lclBlcmlvZCAvIDEwOyAvLyBjb252ZXJ0IHVuaXQgZnJvbSAxMDBucyB0byAxdXMNCj4gKyAg UmlzY3ZUaW1lciAgID0gUmlzY1ZSZWFkVGltZXIgKCk7DQo+ICsgIFNiaVNldFRpbWVyIChSaXNj dlRpbWVyICsgbVRpbWVyUGVyaW9kKTsNCj4gKw0KPiArICBtQ3B1LT5FbmFibGVJbnRlcnJ1cHQg KG1DcHUpOw0KPiArICBSaXNjVkVuYWJsZVRpbWVySW50ZXJydXB0ICgpOyAvLyBlbmFibGUgU01v ZGUgdGltZXIgaW50DQo+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArLyoq DQo+ICsNCj4gKyAgVGhpcyBmdW5jdGlvbiByZXRyaWV2ZXMgdGhlIHBlcmlvZCBvZiB0aW1lciBp bnRlcnJ1cHRzIGluIDEwMCBucyB1bml0cywNCj4gKyAgcmV0dXJucyB0aGF0IHZhbHVlIGluIFRp bWVyUGVyaW9kLCBhbmQgcmV0dXJucyBFRklfU1VDQ0VTUy4gIElmIFRpbWVyUGVyaW9kDQo+ICsg IGlzIE5VTEwsIHRoZW4gRUZJX0lOVkFMSURfUEFSQU1FVEVSIGlzIHJldHVybmVkLiAgSWYgYSBU aW1lclBlcmlvZCBvZiAwIGlzDQo+ICsgIHJldHVybmVkLCB0aGVuIHRoZSB0aW1lciBpcyBjdXJy ZW50bHkgZGlzYWJsZWQuDQo+ICsNCj4gKw0KPiArICBAcGFyYW0gVGhpcyAgICAgICAgICAgIFRo ZSBFRklfVElNRVJfQVJDSF9QUk9UT0NPTCBpbnN0YW5jZS4NCj4gKyAgQHBhcmFtIFRpbWVyUGVy aW9kICAgICBBIHBvaW50ZXIgdG8gdGhlIHRpbWVyIHBlcmlvZCB0byByZXRyaWV2ZSBpbiAxMDAg bnMgdW5pdHMuICBJZg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgIDAgaXMgcmV0dXJuZWQs IHRoZW4gdGhlIHRpbWVyIGlzIGN1cnJlbnRseSBkaXNhYmxlZC4NCj4gKw0KPiArICBAcmV0dmFs IEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhlIHRpbWVyIHBlcmlvZCB3YXMgcmV0dXJuZWQgaW4g VGltZXJQZXJpb2QuDQo+ICsgIEByZXR2YWwgRUZJX0lOVkFMSURfUEFSQU1FVEVSICBUaW1lclBl cmlvZCBpcyBOVUxMLg0KPiArDQo+ICsqKi8NCj4gK0VGSV9TVEFUVVMNCj4gK0VGSUFQSQ0KPiAr VGltZXJEcml2ZXJHZXRUaW1lclBlcmlvZCAoDQo+ICsgIElOIEVGSV9USU1FUl9BUkNIX1BST1RP Q09MICAqVGhpcywNCj4gKyAgT1VUIFVJTlQ2NCAgICAgICAgICAgICAgICAgICpUaW1lclBlcmlv ZA0KPiArICApDQo+ICt7DQo+ICsgICpUaW1lclBlcmlvZCA9IG1UaW1lclBlcmlvZDsNCj4gKyAg cmV0dXJuIEVGSV9TVUNDRVNTOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKw0KPiArICBUaGlzIGZ1 bmN0aW9uIGdlbmVyYXRlcyBhIHNvZnQgdGltZXIgaW50ZXJydXB0LiBJZiB0aGUgcGxhdGZvcm0g ZG9lcyBub3Qgc3VwcG9ydCBzb2Z0DQo+ICsgIHRpbWVyIGludGVycnVwdHMsIHRoZW4gRUZJX1VO U1VQUE9SVEVEIGlzIHJldHVybmVkLiBPdGhlcndpc2UsIEVGSV9TVUNDRVNTIGlzIHJldHVybmVk Lg0KPiArICBJZiBhIGhhbmRsZXIgaGFzIGJlZW4gcmVnaXN0ZXJlZCB0aHJvdWdoIHRoZSBFRklf VElNRVJfQVJDSF9QUk9UT0NPTC5SZWdpc3RlckhhbmRsZXIoKQ0KPiArICBzZXJ2aWNlLCB0aGVu IGEgc29mdCB0aW1lciBpbnRlcnJ1cHQgd2lsbCBiZSBnZW5lcmF0ZWQuIElmIHRoZSB0aW1lciBp bnRlcnJ1cHQgaXMNCj4gKyAgZW5hYmxlZCB3aGVuIHRoaXMgc2VydmljZSBpcyBjYWxsZWQsIHRo ZW4gdGhlIHJlZ2lzdGVyZWQgaGFuZGxlciB3aWxsIGJlIGludm9rZWQuIFRoZQ0KPiArICByZWdp c3RlcmVkIGhhbmRsZXIgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGEgaGFyZHdh cmUtZ2VuZXJhdGVkIHRpbWVyDQo+ICsgIGludGVycnVwdCBmcm9tIGEgc29mdHdhcmUtZ2VuZXJh dGVkIHRpbWVyIGludGVycnVwdC4NCj4gKw0KPiArDQo+ICsgIEBwYXJhbSBUaGlzICAgICAgICAg ICAgICBUaGUgRUZJX1RJTUVSX0FSQ0hfUFJPVE9DT0wgaW5zdGFuY2UuDQo+ICsNCj4gKyAgQHJl dHZhbCBFRklfU1VDQ0VTUyAgICAgICBUaGUgc29mdCB0aW1lciBpbnRlcnJ1cHQgd2FzIGdlbmVy YXRlZC4NCj4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURURUICBUaGUgcGxhdGZvcm0gZG9lcyBu b3Qgc3VwcG9ydCB0aGUgZ2VuZXJhdGlvbiBvZiBzb2Z0IHRpbWVyIGludGVycnVwdHMuDQo+ICsN Cj4gKyoqLw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtUaW1lckRyaXZlckdlbmVyYXRl U29mdEludGVycnVwdCAoDQo+ICsgIElOIEVGSV9USU1FUl9BUkNIX1BST1RPQ09MICAqVGhpcw0K PiArICApDQo+ICt7DQo+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArLyoq DQo+ICsgIEluaXRpYWxpemUgdGhlIFRpbWVyIEFyY2hpdGVjdHVyYWwgUHJvdG9jb2wgZHJpdmVy DQo+ICsNCj4gKyAgQHBhcmFtIEltYWdlSGFuZGxlICAgICBJbWFnZUhhbmRsZSBvZiB0aGUgbG9h ZGVkIGRyaXZlcg0KPiArICBAcGFyYW0gU3lzdGVtVGFibGUgICAgIFBvaW50ZXIgdG8gdGhlIFN5 c3RlbSBUYWJsZQ0KPiArDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaW1l ciBBcmNoaXRlY3R1cmFsIFByb3RvY29sIGNyZWF0ZWQNCj4gKyAgQHJldHZhbCBFRklfT1VUX09G X1JFU09VUkNFUyAgIE5vdCBlbm91Z2ggcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBpbml0aWFsaXpl IGRyaXZlci4NCj4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VSUk9SICAgICAgIEEgZGV2aWNlIGVy cm9yIG9jY3VyZWQgYXR0ZW1wdGluZyB0byBpbml0aWFsaXplIHRoZSBkcml2ZXIuDQo+ICsNCj4g KyoqLw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtUaW1lckRyaXZlckluaXRpYWxpemUg KA0KPiArICBJTiBFRklfSEFORExFICAgICAgICBJbWFnZUhhbmRsZSwNCj4gKyAgSU4gRUZJX1NZ U1RFTV9UQUJMRSAgKlN5c3RlbVRhYmxlDQo+ICsgICkNCj4gK3sNCj4gKyAgRUZJX1NUQVRVUyAg U3RhdHVzOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIEluaXRpYWxpemUgdGhlIHBvaW50ZXIgdG8g b3VyIG5vdGlmeSBmdW5jdGlvbi4NCj4gKyAgLy8NCj4gKyAgbVRpbWVyTm90aWZ5RnVuY3Rpb24g PSBOVUxMOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIE1ha2Ugc3VyZSB0aGUgVGltZXIgQXJjaGl0 ZWN0dXJhbCBQcm90b2NvbCBpcyBub3QgYWxyZWFkeSBpbnN0YWxsZWQgaW4gdGhlIHN5c3RlbQ0K PiArICAvLw0KPiArICBBU1NFUlRfUFJPVE9DT0xfQUxSRUFEWV9JTlNUQUxMRUQgKE5VTEwsICZn RWZpVGltZXJBcmNoUHJvdG9jb2xHdWlkKTsNCj4gKw0KPiArICAvLw0KPiArICAvLyBGaW5kIHRo ZSBDUFUgYXJjaGl0ZWN0dXJhbCBwcm90b2NvbC4NCj4gKyAgLy8NCj4gKyAgU3RhdHVzID0gZ0JT LT5Mb2NhdGVQcm90b2NvbCAoJmdFZmlDcHVBcmNoUHJvdG9jb2xHdWlkLCBOVUxMLCAoVk9JRCAq KikmbUNwdSk7DQo+ICsgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ICsNCj4gKyAgLy8N Cj4gKyAgLy8gRm9yY2UgdGhlIHRpbWVyIHRvIGJlIGRpc2FibGVkDQo+ICsgIC8vDQo+ICsgIFN0 YXR1cyA9IFRpbWVyRHJpdmVyU2V0VGltZXJQZXJpb2QgKCZtVGltZXIsIDApOw0KPiArICBBU1NF UlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIEluc3RhbGwgaW50 ZXJydXB0IGhhbmRsZXIgZm9yIFJJU0MtViBUaW1lci4NCj4gKyAgLy8NCj4gKyAgU3RhdHVzID0g bUNwdS0+UmVnaXN0ZXJJbnRlcnJ1cHRIYW5kbGVyIChtQ3B1LCBFWENFUFRfUklTQ1ZfVElNRVJf SU5ULCBUaW1lckludGVycnVwdEhhbmRsZXIpOw0KPiArICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0 dXMpOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIEZvcmNlIHRoZSB0aW1lciB0byBiZSBlbmFibGVk IGF0IGl0cyBkZWZhdWx0IHBlcmlvZA0KPiArICAvLw0KPiArICBTdGF0dXMgPSBUaW1lckRyaXZl clNldFRpbWVyUGVyaW9kICgmbVRpbWVyLCBERUZBVUxUX1RJTUVSX1RJQ0tfRFVSQVRJT04pOw0K PiArICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiArDQo+ICsgIC8vDQo+ICsgIC8vIElu c3RhbGwgdGhlIFRpbWVyIEFyY2hpdGVjdHVyYWwgUHJvdG9jb2wgb250byBhIG5ldyBoYW5kbGUN Cj4gKyAgLy8NCj4gKyAgU3RhdHVzID0gZ0JTLT5JbnN0YWxsTXVsdGlwbGVQcm90b2NvbEludGVy ZmFjZXMgKA0KPiArICAgICAgICAgICAgICAgICAgJm1UaW1lckhhbmRsZSwNCj4gKyAgICAgICAg ICAgICAgICAgICZnRWZpVGltZXJBcmNoUHJvdG9jb2xHdWlkLA0KPiArICAgICAgICAgICAgICAg ICAgJm1UaW1lciwNCj4gKyAgICAgICAgICAgICAgICAgIE5VTEwNCj4gKyAgICAgICAgICAgICAg ICAgICk7DQo+ICsgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ICsgIHJldHVybiBTdGF0 dXM7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdVRpbWVyRHhlL0NwdVRpbWVy LnVuaSBiL1VlZmlDcHVQa2cvQ3B1VGltZXJEeGUvQ3B1VGltZXIudW5pDQo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNzZkZTFmM2YzNTJhDQo+IC0tLSAvZGV2 L251bGwNCj4gKysrIGIvVWVmaUNwdVBrZy9DcHVUaW1lckR4ZS9DcHVUaW1lci51bmkNCj4gQEAg LTAsMCArMSwxNCBAQA0KPiArLy8gLyoqIEBmaWxlDQo+ICsvLw0KPiArLy8gVGltZXIgQXJjaCBw cm90b2NvbCBzdHJpbmdzLg0KPiArLy8NCj4gKy8vIENvcHlyaWdodCAoYykgMjAxNiwgSGV3bGV0 dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgTFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiArLy8NCj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+ICsvLw0KPiArLy8gKiovDQo+ICsNCj4gKw0KPiArI3N0cmluZyBTVFJfTU9EVUxF X0FCU1RSQUNUICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiVGltZXIgZHJpdmVyIHRoYXQg cHJvdmlkZXMgVGltZXIgQXJjaCBwcm90b2NvbCINCj4gKw0KPiArI3N0cmluZyBTVFJfTU9EVUxF X0RFU0NSSVBUSU9OICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiVGltZXIgZHJpdmVyIHRoYXQg cHJvdmlkZXMgVGltZXIgQXJjaCBwcm90b2NvbC4iDQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtn L0NwdVRpbWVyRHhlL0NwdVRpbWVyRXh0cmEudW5pIGIvVWVmaUNwdVBrZy9DcHVUaW1lckR4ZS9D cHVUaW1lckV4dHJhLnVuaQ0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw MDAwMDAuLmNlYjkzYTdjZTgyZg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1VlZmlDcHVQa2cv Q3B1VGltZXJEeGUvQ3B1VGltZXJFeHRyYS51bmkNCj4gQEAgLTAsMCArMSwxMiBAQA0KPiArLy8g LyoqIEBmaWxlDQo+ICsvLyBUaW1lciBMb2NhbGl6ZWQgU3RyaW5ncyBhbmQgQ29udGVudA0KPiAr Ly8NCj4gKy8vIENvcHlyaWdodCAoYykgMjAxNiwgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2Ug RGV2ZWxvcG1lbnQgTFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArLy8NCj4gKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsvLw0KPiArLy8g KiovDQo+ICsNCj4gKyNzdHJpbmcgU1RSX1BST1BFUlRJRVNfTU9EVUxFX05BTUUNCj4gKyNsYW5n dWFnZSBlbi1VUw0KPiArIlRpbWVyIERYRSBEcml2ZXIiDQo+IC0tDQo+IDIuMzguMA0KPiANCj4g DQo+IA0KPiANCj4gDQoNCg==