From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 88FE2AC130E for ; Tue, 31 Oct 2023 13:39:08 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=w1AUex0+C5iHLCiJROUgubAWcEHpXwylMn7A1T/zhrM=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1698759547; v=1; b=Znd/xXtkZK2Wx+HpM5mME6HT2OLUxBMuuquDzg4rQxU/8qWDMUgYuObvOgTWuZM5r1+cR9aA 2FHJLPHoTUn6DpSj1ACWk5Cgm6rJUu/ERtc7uLEh5jqXP/ASUoMMjJjhxQu9oyyAKj3z1mzKu/h fjjD3pZvN13z9YtDRnsRK/Xo= X-Received: by 127.0.0.2 with SMTP id SR61YY7687511xbveo0zKsfl; Tue, 31 Oct 2023 06:39:07 -0700 X-Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web11.186578.1698759546061407109 for ; Tue, 31 Oct 2023 06:39:06 -0700 X-Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39V8Ui6P006199; Tue, 31 Oct 2023 13:38:54 GMT X-Received: from p1lg14881.it.hpe.com ([16.230.97.202]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3u2jfjt502-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 31 Oct 2023 13:38:54 +0000 X-Received: from p1wg14924.americas.hpqcorp.net (unknown [10.119.18.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by p1lg14881.it.hpe.com (Postfix) with ESMTPS id 1341F805679; Tue, 31 Oct 2023 13:38:53 +0000 (UTC) X-Received: from p1wg14928.americas.hpqcorp.net (10.119.18.116) by p1wg14924.americas.hpqcorp.net (10.119.18.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Tue, 31 Oct 2023 01:38:33 -1200 X-Received: from p1wg14928.americas.hpqcorp.net (10.119.18.116) by p1wg14928.americas.hpqcorp.net (10.119.18.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Tue, 31 Oct 2023 01:38:30 -1200 X-Received: from p1wg14920.americas.hpqcorp.net (16.230.19.123) by p1wg14928.americas.hpqcorp.net (10.119.18.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42 via Frontend Transport; Tue, 31 Oct 2023 01:38:30 -1200 X-Received: from NAM12-MW2-obe.outbound.protection.outlook.com (192.58.206.38) by edge.it.hpe.com (16.230.19.123) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Tue, 31 Oct 2023 01:38:30 -1200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BSq7hW01PfxD+uNNYnR/MimFsioYBN9CUDba5IlOPryTkBWFxjJpVSYUtSuDRl6h6Jj1ZeHtt+cAic2HGE3utXmwQVGGqtva/Ia6ZtYjHdp257N5/7v69AWt9sWHG8TfAKoDjignlwOgQNApaZLSXfNWmDb+LWnvR3nm5SSCSy8D0F5CXw7Upi4Vrkuf6OWu0ozQ3sVQ1BkXpQAPTHhkfHmqVs/1MBkWHbBedNlEsiiROsrb17D74khwkWq3+lOQuAFkkDOS28QncWd2NrS4DqLwE9RSxlPDdnxmTh5RB5dB46zYsFxtYWXBR53LVLPn8lWeUbFX0AteSIs83uqURg== 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=aF6hUI8G9NpsDi2t0BttnotWW2U4avmMjg+9k4OV5TU=; b=TGIKOGKbXb552CiY6aHVwS86t78unI0nZyXZxUebt0mKWq7FEXFsj9+hogVgl5vkMT9rOOuWfKj4Faky/kLm3iex1DOrBGkXGsXgAVqNfO43sWkkSorVdlPUjY58JuSrUCo3E7VkK9VQdJqUaZnmpH9K0utNLO08jDjH4XFCyC7XYtoNw56+cFMQLnspZgax0Z4qHmXrfG3up2bymPxBuwCsx7H1h+pDVE53MnN/Vi31yfsD9+4iXpZ7UkAPZvNkppsv+VKo9gnEz1h63Yk2Bvtn9qbLJeb/xBzueaUgmUozB1STsGwFKgpCW1e9LiMpr6/jUfAYz0lb6SNAbl7hrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none X-Received: from PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:171::21) by PH0PR84MB1695.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:510:173::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.28; Tue, 31 Oct 2023 13:38:19 +0000 X-Received: from PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM ([fe80::b646:9f64:f96a:9940]) by PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM ([fe80::b646:9f64:f96a:9940%4]) with mapi id 15.20.6933.027; Tue, 31 Oct 2023 13:38:19 +0000 From: "Henz, Patrick" To: Laszlo Ersek , "devel@edk2.groups.io" , "hao.a.wu@intel.com" , "Michael Brown" CC: "Kinney, Michael D" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Topic: [edk2-devel] [PATCH] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Index: AQHZr2NSqpSbBpZ/S0qxd+WtKwKDk6/TVrOAgBEBLPCAADOtgIB+8BYQgABcUYCAALFZAIAAFr/w Date: Tue, 31 Oct 2023 13:38:19 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR84MB1478:EE_|PH0PR84MB1695:EE_ x-ms-office365-filtering-correlation-id: 30b50d51-5b28-4262-c4b7-08dbda16a4d4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: XNsTs6OGvzIsmnRavWI8Uui1/xor5PtlO1E0zt19hZzamgFjojldEAUhYlrkDPse+esZiTpfoAbpedzqQEpGuxCU5WRoo1fhsdsVZAItbFQAT7F97e4skEWRD31dGRE6z/vh8GqvPYmbtKopjoQMLk/YfmkcZPsUpZwRVAkm1PSOG++pHcXL9l4NL/7S7guraCG32BVYPdnT9sk1maQx/Yd/5HH4KBmQm3HOS/Mp/Dt3CYPP9keuasployO+KUEa4NVe1xpULp9bd+b2FJeoycovMDnBOCRhZf1z9PTp5VSOVAZNlTXamxpV7V9KMM5qj9KPpuH82afHoJuSpC1Fmx8Cw0Fqnfb25agh1iXI5mpudPArQaIDrjJtW/NckDuEdFbtKWzO6XmL7yBqQhAA6uwussnJhutMe7dGmqBdSDcFngswye7NbXAJ/hNWQ6nvhbmoEl8N2jgxIl1PfHEE2K2CseKWaTpV/sP627BhaYIPzR2s/zoDrVSByA5kjlXwAL02YEcNcPRWi5Yo778pAwXQqP+NMx7+37B+woGdzBXCJOy91H5KaWyKRKR2dTDE9LdY8g5h1DN8BDnFpek/7HL5Fk1ItXfE+X3fLcU4gTEEP80N4nfz5kG0rG8x6/mVtYrl+A/G7JxiPVsLimPl5g== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R3djUjVneU9qY3ZuNnZoUFFVVFExaTBRdUNNU0RYYjZoRUJ3Q1hQWVdRM3N2?= =?utf-8?B?aU0yTklQZzduU2R4VlpoVXRvYlNRT2V4cG9ZODFPSUxFZFBWTTdBQ3hsTGhz?= =?utf-8?B?UmZINjZmdCs4c1AwbElGOGc1RmdtMjgzYXFGVERUNXRSR2hhYTFaOUViaUlG?= =?utf-8?B?V0FmclFoNExjWFRBajdsOFFZeTFBT1EvdkNIUURKYjMyZXh6dlBoRlMwOXRD?= =?utf-8?B?N3NmUE9maFRYeVJ2ZkNQYW10TzdtN0JKVlJoYzRzQTE1SmhVVzJYcHJQbjRo?= =?utf-8?B?R1dFV01GRlQ1QVdiMGd6ZUV1bFlIQnlGamMydmNkWEpjMkR2c0Q0K2U2VGIr?= =?utf-8?B?RzRkdnhMYnhydjN0NnhDdXRkMWV0Y0N0S1NqZjJvdU90RGVXdnlxTFlFS0d2?= =?utf-8?B?N2RIc1p4QkpkNDJJOFQySjBTTHAwZm55dytsaFN5bGQzaHZHMzY3Wm1HOHNa?= =?utf-8?B?VFk0SFBqVFF1bGVnZXNkTU51REJYZjUxVnhZVVkzMCswRUYwNTdnMFU0enBR?= =?utf-8?B?V0RKSXY4RHB3bE82VXo5YlpPcHd3UUlJQVJxVnhMWTFiTzZjUXUweU5Oa1Z5?= =?utf-8?B?dGZZTDByOHpuTi9zNDdsZjIrRzNXRFRDTkI1eEQyVlNuR2VTdzJ5bHBSVXE5?= =?utf-8?B?VWt1Q1pjaEZCeEJhVjZHSVcxSlhXa3RKNm8vNTRrdGV4RUdvUFZ4a1AvVDdm?= =?utf-8?B?Z3VkSWFKUDRhaFhsZU9weHdnNzBMVkRMcDhEU0l1UHFCZkZkdlBJN3ZqcDRO?= =?utf-8?B?VXFmYXRvMkN1WDJzQjhnUkJSaUJJbmRNdXNkVStWNXlLK1VONjZ3aDNmZExC?= =?utf-8?B?K0ZKOTB1bVJoS1VIWmhUVTZYSnFsZlZtczlzUnAwd2wzczM4bjNmT2FWOXI4?= =?utf-8?B?V1FnVmdMbGF4RnhHTG1idlpHTit1aVh4QkNndER3a0Q0bi9TeWhTSVgwYThJ?= =?utf-8?B?a2RuUjhpQ2xnZnJld09kYmNTc3k2Z2t5Yi9zUjl0a1RMOUp2S3JyNjA0L2lB?= =?utf-8?B?N0plVklCTm5FWkhmbTZEbldyVlFpVWd3SnB4NzkydDhpdG9vMklGMGtTZHls?= =?utf-8?B?elVPVmFFU01nZ2laVmFFaUdCTGZKOS9oQ2E5c1lTd3ZucUVmd0xkMXhDWHll?= =?utf-8?B?NmJOTDJrZUxzV0lLNVJPd1hMcXFhSjhLUk9vNytaSURiN2d3TTFpQ2puTzhC?= =?utf-8?B?c3p6NHZLbnNzSmx4OUlkcGlEb1RrdWhUV2QrNzN4VmgreHJ1N1o3NmZ0Qnp4?= =?utf-8?B?OVdJQ0RicnZMOWQ3M0xOR2xDeXhmN00yTEhpN1N0djNINVFlWTlTN01waXhh?= =?utf-8?B?eEg0eWRKYlFHM0x3bzBNMEY5dmxNM1RNR3dBUmVDbVBmY0Y2czlWSFd0Ymwz?= =?utf-8?B?UmVjeVhFU2VJbmt0Q2g5RFp3a0ZXdkFOOEp2QUpZUnRoTG5NbUthZzNrS0o2?= =?utf-8?B?TWk1YU5WSDEwU3hKc3hYcEVLLzNGcE9CRmk4YzR0b1RPMGRyTzU0MVAyZDRp?= =?utf-8?B?dFhBaHdEL2UvMVFiMFREYzZUQ2ZkYlVQWjRaaTQ1QmFMUTB5bW9BYnZ0Nnhy?= =?utf-8?B?Y293OENmbU10Yi9tNUhYYi94V2hxQ3B5Q3lQdDB1MUFabndTeHpLSHIvK0U0?= =?utf-8?B?RXBRZjA0NzVpbDhad2J4UHVOaGgwMUdTL2paeHdxUFN2QjJoSTdnVTZvSzNu?= =?utf-8?B?dUw4cVlaMGVUNzN3Y0piU1hxZjVuMnV6b1B5QU0zU0V0ZVpkL1hGSko5ZExa?= =?utf-8?B?QjN4dDhZS0tXSTFnQ05PZURKZ1pjZkU0bGpmVEVMSUxrSTNOT3VuL2NhSWRm?= =?utf-8?B?MnA4ZW5sRmQ0em8xdVVKNm5wNFhPOUV2VVBtUm5tbGg2cTZndk04TE5NaXJm?= =?utf-8?B?RjJqUDRiRDdJbkhlamVIcDdPeGZGdklyOFhOZkxRK0ZPUFdnU0loTjNjR3NY?= =?utf-8?B?NlFFVzY2aHkvanFDS1B3VnlFc3JuemJQYTBLcDJFMzg2QnpiWGxmeUhBdmlS?= =?utf-8?B?WEZQZHk1Tk5USEJZUjN2VmhuSURUZk40S2ZqSktiZE9YbEpwMDUyNXo1bkZz?= =?utf-8?B?QUljSzhySlNVcUNRNHBnaFBha3k0UWVzd3pSR2Jld1RxaFBZOVVMeU5kQjVa?= =?utf-8?Q?Avqw=3D?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 30b50d51-5b28-4262-c4b7-08dbda16a4d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2023 13:38:19.2143 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NrFfxSxUn5IF2ds8lAgMUknE4Ar00TOyv4hvvfxbvTK99bUrhyV2v1vEMMgKhz8kx0QIqyG653eFrv9mivvjoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR84MB1695 X-OriginatorOrg: hpe.com X-Proofpoint-ORIG-GUID: xVcYiizAWxWLSkcM809FW--8sijiVXSw X-Proofpoint-GUID: xVcYiizAWxWLSkcM809FW--8sijiVXSw X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,patrick.henz@hpe.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: y8I8sHEPLoVaW29owSkK851Yx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b="Znd/xXtk"; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=hpe.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io VGhhdOKAmXMgYSBncmVhdCBjYXRjaCwgdGhhbmsgeW91IGZvciBicmluZ2luZyB0aGlzIHRvIG15 IGF0dGVudGlvbiBMYXN6bG8uIFdvcmsgaXMgaW4gcHJvZ3Jlc3MuDQoNClBhdHJpY2sgSGVueg0K DQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtA cmVkaGF0LmNvbT4gDQpTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDMxLCAyMDIzIDc6MTYgQU0NClRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgaGFvLmEud3VAaW50ZWwuY29tOyBIZW56LCBQYXRyaWNr IDxwYXRyaWNrLmhlbnpAaHBlLmNvbT47IE1pY2hhZWwgQnJvd24gPG1jYjMwQGlweGUub3JnPg0K Q2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywg TGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQpTdWJqZWN0OiBSZTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL1hoY2lEeGU6IFVzZSBQZXJmb3JtYW5jZSBUaW1lciBm b3IgWEhDSSBUaW1lb3V0cw0KDQpPbiAxMC8zMS8yMyAwMjo0MSwgV3UsIEhhbyBBIHdyb3RlOg0K PiAoQWRkIE1kZVBrZyBtYWludGFpbmVycyBmb3IgdGhlaXIgZmVlZGJhY2tzKQ0KPiANCj4gU29y cnkgdGhhdCBJIGRvIG5vdCBoYXZlIHN0cm9uZyBvcGluaW9uIG9uIHRoaXMgb25lLg0KPiANCj4g U29tZSBvZiBteSB0aG91Z2h0cyBhcmU6DQo+ICogSWYgeW91IGZpbmQgdGhlIHRvLWJlLWFkZGVk IEFQSXMgY2FuIGJlIHVzZWQgaW4gc2VydmVyYWwgcGxhY2VzIHRvIHJlZHVjZQ0KPiAgIHJlcGV0 YXRpdmUgY29kZXMsIHRoZW4gaXQgd2lsbCBiZSB3b3J0aHdoaWxlIHRvIGFkZCBuZXcgbGlicmFy eSBBUElzLg0KPiANCj4gKiBUaW1lckxpYiBoYXMgbWFueSBpbnN0YW5jZSBpbXBsZW1lbnRhdGlv bnMsIG15IHRha2UgaXMgdGhhdCBtYW55IHBvc3QtbWVtDQo+ICAgaW5zdGFuY2VzIHVzZSBsaWJy YXJ5IGxldmVsIGdsb2JhbCB2YXJpYWJsZSB0byBzdG9yZSBpbmZvcm1hdGlvbiBsaWtlIHRpbWVy DQo+ICAgZnJlcXVlbmN5IHRvIGF2b2lkIGNhbGN1bGF0aW5nIGl0IGV2ZXJ5IHRpbWUuDQo+ICAg Rm9yIHByZS1tZW0gaW5zdGFuY2VzLCBzdWNoIGNhY2hpbmcgaXMgbm90IGZlYXNpYmxlLiBJIHRo aW5rIGl0IHdpbGwgYmUgdGhlDQo+ICAgQVBJIGNvbnN1bWVyJ3MgcmVzcG9uc2liaWxpdHkgdG8g bGltaXQgdGhlIHVzYWdlIG9mIHRoZXNlIEFQSXMgZm9yIHBlcmZvcm1hbmNlDQo+ICAgY29uc2lk ZXJhdGlvbi4NCj4gDQo+IEJlc3QgUmVnYXJkcywNCj4gSGFvIFd1DQoNClBhdHJpY2ssIHdoaWxl IGF0IGl0OiBJJ3ZlIHJlY2VudGx5IGZpbGVkIHRoZSBidWcNCg0KICBwb3RlbnRpYWxseSBpbnZh bGlkIGVsYXBzZWQgdGljayBjb3VudCBjYWxjdWxhdGlvbiBmcm9tIGNvbW1pdCA0M2RjZjQ1M2Zj MTUgDQoNCiAgaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00 NTc4DQoNCmFuZCBhc3NpZ25lZCBpdCB0byB5b3UgKGdpdmVuIHRoYXQgdGhhdCBjb21taXQgaXMg eW91cnMpLiBJIHByb3Bvc2VkIHRoZSBzb2x1dGlvbiBpbiB0aGUgYnVnemlsbGEgdG9vOyBwbGVh c2UgY2hlY2sgaXQgb3V0IGlmIHlvdSBjYW4gZmluZCB0aGUgdGltZS4NCg0KVGhhbmtzDQpMYXN6 bG8NCg0KPiANCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBkZXZlbEBl ZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBIZW56LCAN Cj4+IFBhdHJpY2sNCj4+IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMzEsIDIwMjMgNDozNiBBTQ0K Pj4gVG86IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW87IE1pY2hhZWwgDQo+PiBCcm93biA8bWNiMzBAaXB4ZS5vcmc+DQo+PiBTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlTW9kdWxlUGtnL1hoY2lEeGU6IFVzZSANCj4+IFBlcmZv cm1hbmNlIFRpbWVyIGZvciBYSENJIFRpbWVvdXRzDQo+Pg0KPj4gTXkgY2hhbmdlcyBoYXZlIGJl ZW4gaW4gZm9yIGEgbGl0dGxlIG92ZXIgYSBtb250aCBub3csIEkndmUgYmVlbiANCj4+IGxvb2tp bmcgaW50byB1cGRhdGluZyB0aGUgVGltZXJMaWIgQVBJIGJ1dCBJJ20gcXVlc3Rpb25pbmcgaWYg aXQgDQo+PiBzdGlsbCBtYWtlcyBzZW5zZSB0byBnbyBkb3duIHRoYXQgcGF0aC4gIFRoZSBmdW5j dGlvbnMgSSBoYWQgDQo+PiBpbXBsZW1lbnRlZCwgWGhjR2V0RWxhcHNlZFRpY2tzICgpIGFuZCBY aGNDb252ZXJ0VGltZVRvVGlja3MgKCksIG5vdyANCj4+IHJlbHkgaGVhdmlseSBvbiB0aGUgdXNl IG9mIGdsb2JhbCB2YXJpYWJsZXMgZm9yIGNhY2hpbmcgcmV0dXJuIHZhbHVlcyANCj4+IGZyb20g R2V0UGVyZm9ybWFuY2VDb3VudGVyUHJvcGVydGllcy4gQXMtaXMgdGhlc2UgZnVuY3Rpb25zIHdv bid0IA0KPj4gd29yayBmb3IgYWxsIGluc3RhbmNlcyBvZiBUaW1lckxpYiwgc3BlY2lmaWNhbGx5 IGlmIHRoZSBpbnN0YW5jZSBpcyANCj4+IHVzZWQgYmVmb3JlIG1lbW9yeSAoUkFNKSBpcyBhdmFp bGFibGUuIEkgY291bGQgaW1wbGVtZW50IHRoZSANCj4+IGZ1bmN0aW9ucyBhcyB0aGV5IG9yaWdp bmFsbHkgd2VyZSwgYnV0IEkgd291bGRuJ3QgYmUgYWJsZSB0byByZXBsYWNlIA0KPj4gdGhlIFho YyBmdW5jdGlvbnMgd2l0aG91dCBhZGRpbmcgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIHRvIHNhaWQg DQo+PiBUaW1lckxpYiBmdW5jdGlvbnMgKGUuZy4gYWRkaW5nIEZyZXF1ZW5jeSwgU3RhcnRWYWx1 ZSwgU3RvcFZhbHVlIHRvIA0KPj4gQ29udmVydFRpbWVUb1RpY2tzKSwgd2hpY2ggZmVlbHMgY2x1 bmt5IHRvIG1lLiBXb3VsZCBhIG5ldyBsaWJyYXJ5IA0KPj4gbWFrZSBzZW5zZSBoZXJlPyBTb21l dGhpbmcgdGhhdCBzaXRzIGJldHdlZW4gdGhlIGRyaXZlciBhbmQgdGhlIFRpbWVyTGliIGxpYnJh cnk/IE9yIGRvIHdlIGp1c3QgbGVhdmUgdGhpbmdzIGFzIHRoZXkgY3VycmVudGx5IGFyZT8NCj4+ DQo+PiBUaGFua3MsDQo+PiBQYXRyaWNrIEhlbnoNCj4+DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPj4gRnJvbTogV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+DQo+PiBTZW50 OiBUaHVyc2RheSwgQXVndXN0IDEwLCAyMDIzIDg6NDMgUE0NCj4+IFRvOiBIZW56LCBQYXRyaWNr IDxwYXRyaWNrLmhlbnpAaHBlLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyANCj4+IE1pY2hh ZWwgQnJvd24gPG1jYjMwQGlweGUub3JnPg0KPj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBb UEFUQ0hdIE1kZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UgDQo+PiBQZXJmb3JtYW5jZSBUaW1lciBm b3IgWEhDSSBUaW1lb3V0cw0KPj4NCj4+IE15IHBlcnNvbmFsIHByZWZlcmVuY2UgaXMgdG8gZG8g dGhpcyBhcyB0d28gc3RlcHMuDQo+PiBBZGRyZXNzIHRoZSBpc3N1ZSBpbiBYaGNpRHhlIGZpcnN0 LiBUaGVuIGFkZCBuZXcgVGltZXJMaWIgQVBJIHRvIA0KPj4gcmVwbGFjZSBhbGwgZHJpdmVyL2xp YnJhcnkgaW50ZXJuYWwgaW1wbGVtZW50YXRpb25zLg0KPj4NCj4+IEJlc3QgUmVnYXJkcywNCj4+ IEhhbyBXdQ0KPj4NCj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IEhl bnosIFBhdHJpY2sgPHBhdHJpY2suaGVuekBocGUuY29tPg0KPj4+IFNlbnQ6IEZyaWRheSwgQXVn dXN0IDExLCAyMDIzIDY6NDUgQU0NCj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFd1LCBI YW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgTWljaGFlbCANCj4+PiBCcm93biA8bWNiMzBAaXB4 ZS5vcmc+DQo+Pj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBr Zy9YaGNpRHhlOiBVc2UgDQo+Pj4gUGVyZm9ybWFuY2UgVGltZXIgZm9yIFhIQ0kgVGltZW91dHMN Cj4+Pg0KPj4+IEkgY2FuIGNlcnRhaW5seSBtYWtlIHRoYXQgY2hhbmdlLg0KPj4+DQo+Pj4gRm9y IHdoYXQgaXQncyB3b3J0aCBJIGhhdmUgYmVlbiB3b3JraW5nIG9uIGFkZGluZyB0aGUgbmV3IGZ1 bmN0aW9uLCANCj4+PiBHZXRFbGFwc2VkVGlja3MsIHRvIHRoZSB2YXJpb3VzIGltcGxlbWVudGF0 aW9ucyBvZiBUaW1lckxpYi4gSSd2ZSANCj4+PiBmaW5pc2hlZCB1cCB0ZXN0aW5nLCBJIHdvdWxk IGp1c3QgbmVlZCB0byBjbGVhbiB1cCB0aGUgY29tbWl0cyBmb3IgYSANCj4+PiBwYXRjaC4gU2hv dWxkIEkgbW92ZSBmb3J3YXJkIHdpdGggdGhhdCwgb3Igd291bGQgd2UgcmF0aGVyIEkganVzdCAN Cj4+PiBhZGQgWGhjR2V0RWxhcHNlZFRpbWUgdG8gWGhjaUR4ZSBmb3IgdGhlIHRpbWUgYmVpbmc/ DQo+Pj4NCj4+PiBUaGFua3MsDQo+Pj4gUGF0cmljayBIZW56DQo+Pj4NCj4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBl ZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFd1LA0KPj4gSGFvDQo+Pj4gQQ0KPj4+IFNlbnQ6 IFN1bmRheSwgSnVseSAzMCwgMjAyMyA5OjU3IFBNDQo+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBIZW56LCBQYXRyaWNrIDxwYXRyaWNrLmhlbnpAaHBlLmNvbT47IA0KPj4+IE1pY2hhZWwg QnJvd24gPG1jYjMwQGlweGUub3JnPg0KPj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BB VENIXSBNZGVNb2R1bGVQa2cvWGhjaUR4ZTogVXNlIA0KPj4+IFBlcmZvcm1hbmNlIFRpbWVyIGZv ciBYSENJIFRpbWVvdXRzDQo+Pj4NCj4+PiBGb3IgdGhlIDIgb2NjdXJyZW5jZXMgb2YgaW4gWGhj V2FpdE9wUmVnQml0ICYgWGhjRXhlY1RyYW5zZmVyOg0KPj4+ICAgVGltZW91dFRpbWUgPSBYSENf TUlDUk9TRUNPTkRfVE9fTkFOT1NFQ09ORCAoVGltZW91dCAqIA0KPj4+IFhIQ18xX01JTExJU0VD T05EKTsgSG93IGFib3V0IGNoYW5naW5nIHRoZW0gdG86DQo+Pj4gICBUaW1lb3V0VGltZSA9IFhI Q19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EICgoVUlOVDY0KQ0KPj4gVGltZW91dA0KPj4+ICog WEhDXzFfTUlMTElTRUNPTkQpOyB0byBhZGRyZXNzIHBvc3NpYmxlIG92ZXJmbG93IGR1cmluZyAi VGltZW91dCAqIA0KPj4+IFhIQ18xX01JTExJU0VDT05EIj8NCj4+Pg0KPj4+IEZvciBleHRlbmRp bmcgWGhjR2V0RWxhcHNlZFRpbWUgYXMgYSBUaW1lckxpYiBBUEksIEkgYW0gZmluZSB0byBwdXQg DQo+Pj4gaXQgaW4gWGhjaUR4ZSBhdCB0aGlzIG1vbWVudC4NCj4+PiBJZiBwYWNrYWdlIG1haW50 YWluZXJzIHN1Z2dlc3QgdG8gbWFrZSBpdCBhcyBhIHB1YmxpYyBsaWJyYXJ5IEFQSSwgDQo+Pj4g bXkgdGFrZSBpcyB0aGF0IHRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gYSBzZXBhcmF0ZSBjb21taXQu DQo+Pj4NCj4+PiBCZXN0IFJlZ2FyZHMsDQo+Pj4gSGFvIFd1DQo+Pj4NCj4+Pj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVs QGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+Pj4+IEhlbnosIFBhdHJpY2sNCj4+Pj4g U2VudDogVGh1cnNkYXksIEp1bHkgNiwgMjAyMyA0OjE2IEFNDQo+Pj4+IFRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbw0KPj4+PiBDYzogSGVueiwgUGF0cmljayA8cGF0cmljay5oZW56QGhwZS5jb20+ DQo+Pj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9YaGNpRHhl OiBVc2UgUGVyZm9ybWFuY2UgDQo+Pj4+IFRpbWVyIGZvciBYSENJIFRpbWVvdXRzDQo+Pj4+DQo+ Pj4+IFJFRjpJTlZBTElEIFVSSSBSRU1PVkVEDQo+Pj4+IGJ1DQo+Pj4+IGcuY2dpP2lkPTI5NDhf XzshIU5weFIha3lGUU01SWtLWUFHOUNSQk80eHBod0JuemlfamhiMm9VLQ0KPj4+IE5LYk1qT1Yt bGN0ZzUNCj4+Pj4gX0IzSzFMY3RhNDUyR3gtMXR3UnQ4QXQzY3VlQVlEcV9uJA0KPj4+Pg0KPj4+ PiBYaGNpRHhlIHVzZXMgdGhlIHRpbWVyIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgdGhlIGJv b3Qgc2VydmljZXMgDQo+Pj4+IHRhYmxlIHRvIGRldGVjdCB0aW1lb3V0IGNvbmRpdGlvbnMuIFRo aXMgYnJlYWtzIHRoZSBkcml2ZXIncyANCj4+Pj4gRXhpdEJvb3RTZXJ2aWNlcyBjYWxsIGJhY2ss IGFzIENvcmVFeGl0Qm9vdFNlcnZpY2VzIGhhbHRzIHRoZSB0aW1lciANCj4+Pj4gYmVmb3JlIHNp Z25hbGluZyB0aGUgRXhpdEJvb3RTZXJ2aWNlcyBldmVudC4gSWYgdGhlIGhvc3QgY29udHJvbGxl ciANCj4+Pj4gZmFpbHMgdG8gaGFsdCBpbiB0aGUgY2FsbCBiYWNrLCB0aGUgdGltZW91dCBjb25k aXRpb24gd2lsbCBuZXZlciANCj4+Pj4gb2NjdXIgYW5kIHRoZSBib290IGdldHMgc3R1Y2sgaW4g YW4gaW5kZWZpbml0ZSBzcGluIGxvb3AuIFVzZSB0aGUgDQo+Pj4+IGZyZWUgcnVubmluZyB0aW1l ciBwcm92aWRlZCBieSBUaW1lckxpYiB0byBjYWxjdWxhdGUgdGltZW91dHMsIA0KPj4+PiBhdm9p ZGluZyB0aGUgcG90ZW50aWFsIGhhbmcuDQo+Pj4+DQo+Pj4+IFNpZ25lZC1vZmYtYnk6IFBhdHJp Y2sgSGVueiA8cGF0cmljay5oZW56QGhwZS5jb20+DQo+Pj4+IFJldmlld2VkLWJ5Og0KPj4+PiAt LS0NCj4+Pj4gIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jICAgICAgfCA1NiAr KysrKysrKysrKysrKysrKysrDQo+Pj4+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1ho Y2kuaCAgICAgIHwgMjIgKysrKysrKysNCj4+Pj4gIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lE eGUvWGhjaUR4ZS5pbmYgfCAgMiArDQo+Pj4+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhl L1hoY2lSZWcuYyAgIHwgNjcgKysrKysrKysrLS0tLS0tLS0tLS0tLS0NCj4+Pj4gIE1kZU1vZHVs ZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVNjaGVkLmMgfCA2OA0KPj4+PiArKysrKysrKystLS0t LS0tLS0tLS0tLS0NCj4+Pj4gIDUgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDg2 IGRlbGV0aW9ucygtKQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9Q Y2kvWGhjaUR4ZS9YaGNpLmMNCj4+Pj4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1ho Y2kuYw0KPj4+PiBpbmRleCA2MjY4MmRkMjdjLi4xZGNiZTIwNTEyIDEwMDY0NA0KPj4+PiAtLS0g YS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuYw0KPj4+PiArKysgYi9NZGVNb2R1 bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuYw0KPj4+PiBAQCAtMSw2ICsxLDcgQEANCj4+Pj4g IC8qKiBAZmlsZQ0KPj4+Pg0KPj4+PiAgICBUaGUgWEhDSSBjb250cm9sbGVyIGRyaXZlci4NCj4+ Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gKyhDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQg RW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4+Pj4NCj4+Pj4gIENvcHlyaWdodCAoYykg MjAxMSAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPj4+PiByZXNlcnZl ZC48QlI+DQo+Pj4+DQo+Pj4+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiBAQCAtMjI5NCwzICsyMjk1LDU4IEBAIFho Y0RyaXZlckJpbmRpbmdTdG9wICgNCj4+Pj4NCj4+Pj4NCj4+Pj4gICAgcmV0dXJuIEVGSV9TVUND RVNTOw0KPj4+Pg0KPj4+PiAgfQ0KPj4+Pg0KPj4+PiArDQo+Pj4+DQo+Pj4+ICsvKioNCj4+Pj4N Cj4+Pj4gKyAgQ29tcHV0ZXMgYW5kIHJldHVybnMgdGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vj b25kcyBzaW5jZQ0KPj4+Pg0KPj4+PiArICBQcmV2aW91c1RpY2suIFRoZSB2YWx1ZSBvZiBQcmV2 aW91c1RpY2sgaXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUNCj4+Pj4NCj4+Pj4gKyAgY3VycmVudCBw ZXJmb3JtYW5jZSBjb3VudGVyIHZhbHVlLg0KPj4+Pg0KPj4+PiArDQo+Pj4+DQo+Pj4+ICsgIEBw YXJhbSAgUHJldmlvdXNUaWNrICAgIFBvaW50ZXIgdG8gUHJldmlvdXNUaWNrIGNvdW50Lg0KPj4+ Pg0KPj4+PiArICBAcmV0dXJuIFRoZSBlbGFwc2VkIHRpbWUgaW4gbmFub3NlY29uZHMgc2luY2Ug UHJldmlvdXNDb3VudC4NCj4+Pj4NCj4+Pj4gKyAgICAgICAgICBQcmV2aW91c0NvdW50IGlzIG92 ZXJ3cml0dGVuIHdpdGggdGhlIGN1cnJlbnQgDQo+Pj4+ICsgcGVyZm9ybWFuY2UNCj4+Pj4NCj4+ Pj4gKyAgICAgICAgICBjb3VudGVyIHZhbHVlLg0KPj4+Pg0KPj4+PiArKiovDQo+Pj4+DQo+Pj4+ ICtVSU5UNjQNCj4+Pj4NCj4+Pj4gK1hoY0dldEVsYXBzZWRUaW1lICgNCj4+Pj4NCj4+Pj4gKyAg SU4gT1VUIFVJTlQ2NCAgKlByZXZpb3VzVGljaw0KPj4+Pg0KPj4+PiArICApDQo+Pj4+DQo+Pj4+ ICt7DQo+Pj4+DQo+Pj4+ICsgIFVJTlQ2NCAgU3RhcnRWYWx1ZTsNCj4+Pj4NCj4+Pj4gKyAgVUlO VDY0ICBFbmRWYWx1ZTsNCj4+Pj4NCj4+Pj4gKyAgVUlOVDY0ICBDdXJyZW50VGljazsNCj4+Pj4N Cj4+Pj4gKyAgVUlOVDY0ICBEZWx0YTsNCj4+Pj4NCj4+Pj4gKw0KPj4+Pg0KPj4+PiArICBHZXRQ ZXJmb3JtYW5jZUNvdW50ZXJQcm9wZXJ0aWVzICgmU3RhcnRWYWx1ZSwgJkVuZFZhbHVlKTsNCj4+ Pj4NCj4+Pj4gKw0KPj4+Pg0KPj4+PiArICBDdXJyZW50VGljayA9IEdldFBlcmZvcm1hbmNlQ291 bnRlciAoKTsNCj4+Pj4NCj4+Pj4gKw0KPj4+Pg0KPj4+PiArICAvLw0KPj4+Pg0KPj4+PiArICAv LyBEZXRlcm1pbmUgaWYgdGhlIGNvdW50ZXIgaXMgY291bnRpbmcgdXAgb3IgZG93bg0KPj4+Pg0K Pj4+PiArICAvLw0KPj4+Pg0KPj4+PiArICBpZiAoU3RhcnRWYWx1ZSA8IEVuZFZhbHVlKSB7DQo+ Pj4+DQo+Pj4+ICsgICAgLy8NCj4+Pj4NCj4+Pj4gKyAgICAvLyBDb3VudGVyIGNvdW50cyB1cHdh cmRzLCBjaGVjayBmb3IgYW4gb3ZlcmZsb3cgY29uZGl0aW9uDQo+Pj4+DQo+Pj4+ICsgICAgLy8N Cj4+Pj4NCj4+Pj4gKyAgICBpZiAoKlByZXZpb3VzVGljayA+IEN1cnJlbnRUaWNrKSB7DQo+Pj4+ DQo+Pj4+ICsgICAgICBEZWx0YSA9IChFbmRWYWx1ZSAtICpQcmV2aW91c1RpY2spICsgQ3VycmVu dFRpY2s7DQo+Pj4+DQo+Pj4+ICsgICAgfSBlbHNlIHsNCj4+Pj4NCj4+Pj4gKyAgICAgIERlbHRh ID0gQ3VycmVudFRpY2sgLSAqUHJldmlvdXNUaWNrOw0KPj4+Pg0KPj4+PiArICAgIH0NCj4+Pj4N Cj4+Pj4gKyAgfSBlbHNlIHsNCj4+Pj4NCj4+Pj4gKyAgICAvLw0KPj4+Pg0KPj4+PiArICAgIC8v IENvdW50ZXIgY291bnRzIGRvd253YXJkcywgY2hlY2sgZm9yIGFuIHVuZGVyZmxvdyBjb25kaXRp b24NCj4+Pj4NCj4+Pj4gKyAgICAvLw0KPj4+Pg0KPj4+PiArICAgIGlmICgqUHJldmlvdXNUaWNr IDwgQ3VycmVudFRpY2spIHsNCj4+Pj4NCj4+Pj4gKyAgICAgIERlbHRhID0gKFN0YXJ0VmFsdWUg LSBDdXJyZW50VGljaykgKyAqUHJldmlvdXNUaWNrOw0KPj4+Pg0KPj4+PiArICAgIH0gZWxzZSB7 DQo+Pj4+DQo+Pj4+ICsgICAgICBEZWx0YSA9ICpQcmV2aW91c1RpY2sgLSBDdXJyZW50VGljazsN Cj4+Pj4NCj4+Pj4gKyAgICB9DQo+Pj4+DQo+Pj4+ICsgIH0NCj4+Pj4NCj4+Pj4gKw0KPj4+Pg0K Pj4+PiArICAvLw0KPj4+Pg0KPj4+PiArICAvLyBTZXQgUHJldmlvdXNUaWNrIHRvIEN1cnJlbnRU aWNrDQo+Pj4+DQo+Pj4+ICsgIC8vDQo+Pj4+DQo+Pj4+ICsgICpQcmV2aW91c1RpY2sgPSBDdXJy ZW50VGljazsNCj4+Pj4NCj4+Pj4gKw0KPj4+Pg0KPj4+PiArICByZXR1cm4gR2V0VGltZUluTmFu b1NlY29uZCAoRGVsdGEpOw0KPj4+Pg0KPj4+PiArfQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEv TWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmgNCj4+Pj4gYi9NZGVNb2R1bGVQa2cv QnVzL1BjaS9YaGNpRHhlL1hoY2kuaA0KPj4+PiBpbmRleCBjYTIyM2JkMjBjLi43N2ZlYjY2NjQ3 IDEwMDY0NA0KPj4+PiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuaA0K Pj4+PiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuaA0KPj4+PiBAQCAt Miw2ICsyLDcgQEANCj4+Pj4NCj4+Pj4NCj4+Pj4gICAgUHJvdmlkZXMgc29tZSBkYXRhIHN0cnVj dHVyZSBkZWZpbml0aW9ucyB1c2VkIGJ5IHRoZSBYSENJIGhvc3QgDQo+Pj4+IGNvbnRyb2xsZXIg ZHJpdmVyLg0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiArKEMpIENvcHlyaWdodCAyMDIzIEhld2xl dHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPj4+Pg0KPj4+PiAgQ29w eXJpZ2h0IChjKSAyMDExIC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ Pj4+IHJlc2VydmVkLjxCUj4NCj4+Pj4NCj4+Pj4gIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENv cnBvcmF0aW9uLjxCUj4NCj4+Pj4NCj4+Pj4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+Pj4+DQo+Pj4+IEBAIC0yNiw2ICsyNyw3IEBAIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50IA0KPj4+PiAjaW5jbHVkZSA8TGlicmFy eS9VZWZpTGliLmg+DQo+Pj4+DQo+Pj4+ICAjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0K Pj4+Pg0KPj4+PiAgI2luY2x1ZGUgPExpYnJhcnkvUmVwb3J0U3RhdHVzQ29kZUxpYi5oPg0KPj4+ Pg0KPj4+PiArI2luY2x1ZGUgPExpYnJhcnkvVGltZXJMaWIuaD4NCj4+Pj4NCj4+Pj4NCj4+Pj4N Cj4+Pj4gICNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1BjaS5oPg0KPj4+Pg0KPj4+Pg0KPj4+ Pg0KPj4+PiBAQCAtMzcsNiArMzksMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX1VTQl9ERVZfQ09OVEVY VA0KPj4+IFVTQl9ERVZfQ09OVEVYVDsNCj4+Pj4gI2luY2x1ZGUgIkNvbXBvbmVudE5hbWUuaCIN Cj4+Pj4NCj4+Pj4gICNpbmNsdWRlICJVc2JIY01lbS5oIg0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+ PiArLy8NCj4+Pj4NCj4+Pj4gKy8vIENvbnZlcnRzIGEgY291bnQgZnJvbSBtaWNyb3NlY29uZHMg dG8gbmFub3NlY29uZHMNCj4+Pj4NCj4+Pj4gKy8vDQo+Pj4+DQo+Pj4+ICsjZGVmaW5lIFhIQ19N SUNST1NFQ09ORF9UT19OQU5PU0VDT05EKFRpbWUpICAoKFVJTlQ2NCkoVGltZSkNCj4+ICoNCj4+ Pj4gMTAwMCkNCj4+Pj4NCj4+Pj4gIC8vDQo+Pj4+DQo+Pj4+ICAvLyBUaGUgdW5pdCBpcyBtaWNy b3NlY29uZCwgc2V0dGluZyBpdCBhcyAxdXMuDQo+Pj4+DQo+Pj4+ICAvLw0KPj4+Pg0KPj4+PiBA QCAtNzIwLDQgKzcyNiwyMCBAQCBYaGNBc3luY0lzb2Nocm9ub3VzVHJhbnNmZXIgKA0KPj4+PiAg ICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKkNvbnRleHQNCj4+ Pj4NCj4+Pj4gICAgKTsNCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gKy8qKg0KPj4+Pg0KPj4+PiAr ICBDb21wdXRlcyBhbmQgcmV0dXJucyB0aGUgZWxhcHNlZCB0aW1lIGluIG5hbm9zZWNvbmRzIHNp bmNlDQo+Pj4+DQo+Pj4+ICsgIFByZXZpb3VzVGljay4gVGhlIHZhbHVlIG9mIFByZXZpb3VzVGlj ayBpcyBvdmVyd3JpdHRlbiB3aXRoIHRoZQ0KPj4+Pg0KPj4+PiArICBjdXJyZW50IHBlcmZvcm1h bmNlIGNvdW50ZXIgdmFsdWUuDQo+Pj4+DQo+Pj4+ICsNCj4+Pj4NCj4+Pj4gKyAgQHBhcmFtICBQ cmV2aW91c1RpY2sgICAgUG9pbnRlciB0byBQcmV2aW91c1RpY2sgY291bnQuDQo+Pj4+DQo+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u DQo+Pj4+DQo+Pj4+ICsgIEByZXR1cm4gVGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25kcyBz aW5jZSBQcmV2aW91c0NvdW50Lg0KPj4+Pg0KPj4+PiArICAgICAgICAgIFByZXZpb3VzQ291bnQg aXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgY3VycmVudCANCj4+Pj4gKyBwZXJmb3JtYW5jZQ0KPj4+ Pg0KPj4+PiArICAgICAgICAgIGNvdW50ZXIgdmFsdWUuDQo+Pj4+DQo+Pj4+ICsqKi8NCj4+Pj4N Cj4+Pj4gK1VJTlQ2NA0KPj4+Pg0KPj4+PiArWGhjR2V0RWxhcHNlZFRpbWUgKA0KPj4+Pg0KPj4+ PiArICBJTiBPVVQgVUlOVDY0ICAqUHJldmlvdXNUaWNrDQo+Pj4+DQo+Pj4+ICsgICk7DQo+Pj4+ DQo+Pj4+ICsNCj4+Pj4NCj4+Pj4gICNlbmRpZg0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEvTWRl TW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPj4+PiBiL01kZU1vZHVsZVBr Zy9CdXMvUGNpL1hoY2lEeGUvWGhjaUR4ZS5pbmYNCj4+Pj4gaW5kZXggNTg2NWQ4NjgyMi4uMThl Zjg3OTE2YSAxMDA2NDQNCj4+Pj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9Y aGNpRHhlLmluZg0KPj4+PiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lE eGUuaW5mDQo+Pj4+IEBAIC0zLDYgKzMsNyBAQA0KPj4+PiAgIyAgSXQgaW1wbGVtZW50cyB0aGUg aW50ZXJmYWNlcyBvZiBtb25pdG9yaW5nIHRoZSBzdGF0dXMgb2YgYWxsIA0KPj4+PiBwb3J0cyBh bmQgdHJhbnNmZXJyaW5nDQo+Pj4+DQo+Pj4+ICAjICBDb250cm9sLCBCdWxrLCBJbnRlcnJ1cHQg YW5kIElzb2Nocm9ub3VzIHJlcXVlc3RzIHRvIHRob3NlIA0KPj4+PiBhdHRhY2hlZCB1c2IgTFMv RlMvSFMvU1MgZGV2aWNlcy4NCj4+Pj4NCj4+Pj4gICMNCj4+Pj4NCj4+Pj4gKyMgIChDKSBDb3B5 cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCANCj4+Pj4g K0xQPEJSPg0KPj4+Pg0KPj4+PiAgIyAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAxOCwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+Pj4+IHJlc2VydmVkLjxCUj4NCj4+Pj4NCj4+Pj4g ICMNCj4+Pj4NCj4+Pj4gICMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+Pj4+DQo+Pj4+IEBAIC01NCw2ICs1NSw3IEBADQo+Pj4+ICAgIEJhc2VNZW1vcnlM aWINCj4+Pj4NCj4+Pj4gICAgRGVidWdMaWINCj4+Pj4NCj4+Pj4gICAgUmVwb3J0U3RhdHVzQ29k ZUxpYg0KPj4+Pg0KPj4+PiArICBUaW1lckxpYg0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiAgW0d1 aWRzXQ0KPj4+Pg0KPj4+PiAgICBnRWZpRXZlbnRFeGl0Qm9vdFNlcnZpY2VzR3VpZCAgICAgICAg ICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICMjDQo+Pj4+IEV2ZW50DQo+Pj4+DQo+Pj4+ IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lSZWcuYw0KPj4+ PiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVJlZy5jDQo+Pj4+IGluZGV4IDU3 MDBmYzVmYjguLjI0OTk2OTg3MTUgMTAwNjQ0DQo+Pj4+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMv UGNpL1hoY2lEeGUvWGhjaVJlZy5jDQo+Pj4+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1ho Y2lEeGUvWGhjaVJlZy5jDQo+Pj4+IEBAIC0yLDYgKzIsNyBAQA0KPj4+Pg0KPj4+Pg0KPj4+PiAg ICBUaGUgWEhDSSByZWdpc3RlciBvcGVyYXRpb24gcm91dGluZXMuDQo+Pj4+DQo+Pj4+DQo+Pj4+ DQo+Pj4+ICsoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2 ZWxvcG1lbnQgTFA8QlI+DQo+Pj4+DQo+Pj4+ICBDb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDE3LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4+Pj4gcmVzZXJ2ZWQuPEJSPg0KPj4+Pg0K Pj4+PiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4+Pj4N Cj4+Pj4NCj4+Pj4NCj4+Pj4gQEAgLTQxNywxNSArNDE4LDE0IEBAIFhoY0NsZWFyT3BSZWdCaXQg KA0KPj4+PiAgICBXYWl0IHRoZSBvcGVyYXRpb24gcmVnaXN0ZXIncyBiaXQgYXMgc3BlY2lmaWVk IGJ5IEJpdA0KPj4+Pg0KPj4+PiAgICB0byBiZWNvbWUgc2V0IChvciBjbGVhcikuDQo+Pj4+DQo+ Pj4+DQo+Pj4+DQo+Pj4+IC0gIEBwYXJhbSAgWGhjICAgICAgICAgICAgICAgICAgICBUaGUgWEhD SSBJbnN0YW5jZS4NCj4+Pj4NCj4+Pj4gLSAgQHBhcmFtICBPZmZzZXQgICAgICAgICAgICAgICAg IFRoZSBvZmZzZXQgb2YgdGhlIG9wZXJhdGlvbiByZWdpc3Rlci4NCj4+Pj4NCj4+Pj4gLSAgQHBh cmFtICBCaXQgICAgICAgICAgICAgICAgICAgIFRoZSBiaXQgb2YgdGhlIHJlZ2lzdGVyIHRvIHdh aXQgZm9yLg0KPj4+Pg0KPj4+PiAtICBAcGFyYW0gIFdhaXRUb1NldCAgICAgICAgICAgICAgV2Fp dCB0aGUgYml0IHRvIHNldCBvciBjbGVhci4NCj4+Pj4NCj4+Pj4gLSAgQHBhcmFtICBUaW1lb3V0 ICAgICAgICAgICAgICAgIFRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIGFib3J0IChpbiBtaWxsaXNl Y29uZCwNCj4+Pj4gbXMpLg0KPj4+Pg0KPj4+PiArICBAcGFyYW0gIFhoYyAgICAgICAgICBUaGUg WEhDSSBJbnN0YW5jZS4NCj4+Pj4NCj4+Pj4gKyAgQHBhcmFtICBPZmZzZXQgICAgICAgVGhlIG9m ZnNldCBvZiB0aGUgb3BlcmF0aW9uIHJlZ2lzdGVyLg0KPj4+Pg0KPj4+PiArICBAcGFyYW0gIEJp dCAgICAgICAgICBUaGUgYml0IG9mIHRoZSByZWdpc3RlciB0byB3YWl0IGZvci4NCj4+Pj4NCj4+ Pj4gKyAgQHBhcmFtICBXYWl0VG9TZXQgICAgV2FpdCB0aGUgYml0IHRvIHNldCBvciBjbGVhci4N Cj4+Pj4NCj4+Pj4gKyAgQHBhcmFtICBUaW1lb3V0ICAgICAgVGhlIHRpbWUgdG8gd2FpdCBiZWZv cmUgYWJvcnQgKGluIG1pbGxpc2Vjb25kLCBtcykuDQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+IC0g IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgYml0IHN1Y2Nlc3NmdWxseSBjaGFu Z2VkIGJ5IGhvc3QNCj4+PiBjb250cm9sbGVyLg0KPj4+Pg0KPj4+PiAtICBAcmV0dmFsIEVGSV9U SU1FT1VUICAgICAgICAgICAgVGhlIHRpbWUgb3V0IG9jY3VycmVkLg0KPj4+Pg0KPj4+PiAtICBA cmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgTWVtb3J5IGZvciB0aGUgdGltZXIgZXZlbnQg Y291bGQNCj4+IG5vdA0KPj4+PiBiZSBhbGxvY2F0ZWQuDQo+Pj4+DQo+Pj4+ICsgIEByZXR2YWwg RUZJX1NVQ0NFU1MgIFRoZSBiaXQgc3VjY2Vzc2Z1bGx5IGNoYW5nZWQgYnkgaG9zdCBjb250cm9s bGVyLg0KPj4+Pg0KPj4+PiArICBAcmV0dmFsIEVGSV9USU1FT1VUICBUaGUgdGltZSBvdXQgb2Nj dXJyZWQuDQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+ICAqKi8NCj4+Pj4NCj4+Pj4gIEVGSV9TVEFU VVMNCj4+Pj4NCj4+Pj4gQEAgLTQzNyw1NCArNDM3LDM1IEBAIFhoY1dhaXRPcFJlZ0JpdCAoDQo+ Pj4+ICAgIElOIFVJTlQzMiAgICAgICAgICAgICBUaW1lb3V0DQo+Pj4+DQo+Pj4+ICAgICkNCj4+ Pj4NCj4+Pj4gIHsNCj4+Pj4NCj4+Pj4gLSAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPj4+Pg0KPj4+ PiAtICBFRklfRVZFTlQgICBUaW1lb3V0RXZlbnQ7DQo+Pj4+DQo+Pj4+IC0NCj4+Pj4NCj4+Pj4g LSAgVGltZW91dEV2ZW50ID0gTlVMTDsNCj4+Pj4NCj4+Pj4gKyAgVUlOVDY0ICBUaW1lb3V0VGlt ZTsNCj4+Pj4NCj4+Pj4gKyAgVUlOVDY0ICBFbGFwc2VkVGltZTsNCj4+Pj4NCj4+Pj4gKyAgVUlO VDY0ICBUaW1lRGVsdGE7DQo+Pj4+DQo+Pj4+ICsgIFVJTlQ2NCAgQ3VycmVudFRpY2s7DQo+Pj4+ DQo+Pj4+DQo+Pj4+DQo+Pj4+ICAgIGlmIChUaW1lb3V0ID09IDApIHsNCj4+Pj4NCj4+Pj4gICAg ICByZXR1cm4gRUZJX1RJTUVPVVQ7DQo+Pj4+DQo+Pj4+ICAgIH0NCj4+Pj4NCj4+Pj4NCj4+Pj4N Cj4+Pj4gLSAgU3RhdHVzID0gZ0JTLT5DcmVhdGVFdmVudCAoDQo+Pj4+DQo+Pj4+IC0gICAgICAg ICAgICAgICAgICBFVlRfVElNRVIsDQo+Pj4+DQo+Pj4+IC0gICAgICAgICAgICAgICAgICBUUExf Q0FMTEJBQ0ssDQo+Pj4+DQo+Pj4+IC0gICAgICAgICAgICAgICAgICBOVUxMLA0KPj4+Pg0KPj4+ PiAtICAgICAgICAgICAgICAgICAgTlVMTCwNCj4+Pj4NCj4+Pj4gLSAgICAgICAgICAgICAgICAg ICZUaW1lb3V0RXZlbnQNCj4+Pj4NCj4+Pj4gLSAgICAgICAgICAgICAgICAgICk7DQo+Pj4+DQo+ Pj4+IC0NCj4+Pj4NCj4+Pj4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPj4+Pg0KPj4+ PiAtICAgIGdvdG8gRE9ORTsNCj4+Pj4NCj4+Pj4gLSAgfQ0KPj4+Pg0KPj4+PiAtDQo+Pj4+DQo+ Pj4+IC0gIFN0YXR1cyA9IGdCUy0+U2V0VGltZXIgKA0KPj4+Pg0KPj4+PiAtICAgICAgICAgICAg ICAgICAgVGltZW91dEV2ZW50LA0KPj4+Pg0KPj4+PiAtICAgICAgICAgICAgICAgICAgVGltZXJS ZWxhdGl2ZSwNCj4+Pj4NCj4+Pj4gLSAgICAgICAgICAgICAgICAgIEVGSV9USU1FUl9QRVJJT0Rf TUlMTElTRUNPTkRTIChUaW1lb3V0KQ0KPj4+Pg0KPj4+PiAtICAgICAgICAgICAgICAgICAgKTsN Cj4+Pj4NCj4+Pj4gLQ0KPj4+Pg0KPj4+PiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ Pj4+DQo+Pj4+IC0gICAgZ290byBET05FOw0KPj4+Pg0KPj4+PiAtICB9DQo+Pj4+DQo+Pj4+ICsg IFRpbWVvdXRUaW1lID0gWEhDX01JQ1JPU0VDT05EX1RPX05BTk9TRUNPTkQgKFRpbWVvdXQgKg0K Pj4+PiBYSENfMV9NSUxMSVNFQ09ORCk7DQo+Pj4+DQo+Pj4+ICsgIEVsYXBzZWRUaW1lID0gMDsN Cj4+Pj4NCj4+Pj4gKyAgQ3VycmVudFRpY2sgPSBHZXRQZXJmb3JtYW5jZUNvdW50ZXIgKCk7DQo+ Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+ICAgIGRvIHsNCj4+Pj4NCj4+Pj4gICAgICBpZiAoWEhDX1JF R19CSVRfSVNfU0VUIChYaGMsIE9mZnNldCwgQml0KSA9PSBXYWl0VG9TZXQpIHsNCj4+Pj4NCj4+ Pj4gLSAgICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPj4+Pg0KPj4+PiAtICAgICAgZ290byBE T05FOw0KPj4+Pg0KPj4+PiArICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPj4+Pg0KPj4+PiAg ICAgIH0NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gICAgICBnQlMtPlN0YWxsIChYSENfMV9NSUNS T1NFQ09ORCk7DQo+Pj4+DQo+Pj4+IC0gIH0gd2hpbGUgKEVGSV9FUlJPUiAoZ0JTLT5DaGVja0V2 ZW50IChUaW1lb3V0RXZlbnQpKSk7DQo+Pj4+DQo+Pj4+IC0NCj4+Pj4NCj4+Pj4gLSAgU3RhdHVz ID0gRUZJX1RJTUVPVVQ7DQo+Pj4+DQo+Pj4+ICsgICAgVGltZURlbHRhID0gWGhjR2V0RWxhcHNl ZFRpbWUgKCZDdXJyZW50VGljayk7DQo+Pj4+DQo+Pj4+ICsgICAgLy8gRW5zdXJlIHRoYXQgRWxh cHNlZFRpbWUgaXMgYWx3YXlzIGluY3JlbWVudGVkIHRvIGF2b2lkIA0KPj4+PiArIGluZGVmaW5p dGUNCj4+Pj4gaGFuZ3MNCj4+Pj4NCj4+Pj4gKyAgICBpZiAoVGltZURlbHRhID09IDApIHsNCj4+ Pj4NCj4+Pj4gKyAgICAgIFRpbWVEZWx0YSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05E DQo+Pj4+IChYSENfMV9NSUNST1NFQ09ORCk7DQo+Pj4+DQo+Pj4+ICsgICAgfQ0KPj4+Pg0KPj4+ Pg0KPj4+Pg0KPj4+PiAtRE9ORToNCj4+Pj4NCj4+Pj4gLSAgaWYgKFRpbWVvdXRFdmVudCAhPSBO VUxMKSB7DQo+Pj4+DQo+Pj4+IC0gICAgZ0JTLT5DbG9zZUV2ZW50IChUaW1lb3V0RXZlbnQpOw0K Pj4+Pg0KPj4+PiAtICB9DQo+Pj4+DQo+Pj4+ICsgICAgRWxhcHNlZFRpbWUgKz0gVGltZURlbHRh Ow0KPj4+Pg0KPj4+PiArICB9IHdoaWxlIChFbGFwc2VkVGltZSA8IFRpbWVvdXRUaW1lKTsNCj4+ Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gLSAgcmV0dXJuIFN0YXR1czsNCj4+Pj4NCj4+Pj4gKyAgcmV0 dXJuIEVGSV9USU1FT1VUOw0KPj4+Pg0KPj4+PiAgfQ0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiAg LyoqDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhl L1hoY2lTY2hlZC5jDQo+Pj4+IGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2No ZWQuYw0KPj4+PiBpbmRleCAyOThmYjg4YjgxLi41MTc3ODg2ZTUyIDEwMDY0NA0KPj4+PiAtLS0g YS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hlZC5jDQo+Pj4+ICsrKyBiL01k ZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVNjaGVkLmMNCj4+Pj4gQEAgLTIsNiArMiw3 IEBADQo+Pj4+DQo+Pj4+DQo+Pj4+ICAgIFhIQ0kgdHJhbnNmZXIgc2NoZWR1bGluZyByb3V0aW5l cy4NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gKyhDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBh Y2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUDxCUj4NCj4+Pj4NCj4+Pj4gIENvcHlyaWdo dCAoYykgMjAxMSAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPj4+PiBy ZXNlcnZlZC48QlI+DQo+Pj4+DQo+Pj4+ICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3Jh dGlvbi48QlI+DQo+Pj4+DQo+Pj4+ICBDb3B5cmlnaHQgKEMpIDIwMjIgQWR2YW5jZWQgTWljcm8g RGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIA0KPj4+PiByZXNlcnZlZC48QlI+DQo+Pj4+DQo+Pj4+ IEBAIC0xMjczLDE1ICsxMjc0LDE0IEBAIEVYSVQ6DQo+Pj4+ICAvKioNCj4+Pj4NCj4+Pj4gICAg RXhlY3V0ZSB0aGUgdHJhbnNmZXIgYnkgcG9sbGluZyB0aGUgVVJCLiBUaGlzIGlzIGEgc3luY2hy b25vdXMgb3BlcmF0aW9uLg0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiAtICBAcGFyYW0gIFhoYyAg ICAgICAgICAgICAgICAgICAgVGhlIFhIQ0kgSW5zdGFuY2UuDQo+Pj4+DQo+Pj4+IC0gIEBwYXJh bSAgQ21kVHJhbnNmZXIgICAgICAgICAgICBUaGUgZXhlY3V0ZWQgVVJCIGlzIGZvciBjbWQgdHJh bnNmZXIgb3INCj4+IG5vdC4NCj4+Pj4NCj4+Pj4gLSAgQHBhcmFtICBVcmIgICAgICAgICAgICAg ICAgICAgIFRoZSBVUkIgdG8gZXhlY3V0ZS4NCj4+Pj4NCj4+Pj4gLSAgQHBhcmFtICBUaW1lb3V0 ICAgICAgICAgICAgICAgIFRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIGFib3J0LCBpbiBtaWxsaXNl Y29uZC4NCj4+Pj4NCj4+Pj4gKyAgQHBhcmFtICBYaGMgICAgICAgICAgICAgICBUaGUgWEhDSSBJ bnN0YW5jZS4NCj4+Pj4NCj4+Pj4gKyAgQHBhcmFtICBDbWRUcmFuc2ZlciAgICAgICBUaGUgZXhl Y3V0ZWQgVVJCIGlzIGZvciBjbWQgdHJhbnNmZXIgb3Igbm90Lg0KPj4+Pg0KPj4+PiArICBAcGFy YW0gIFVyYiAgICAgICAgICAgICAgIFRoZSBVUkIgdG8gZXhlY3V0ZS4NCj4+Pj4NCj4+Pj4gKyAg QHBhcmFtICBUaW1lb3V0ICAgICAgICAgICBUaGUgdGltZSB0byB3YWl0IGJlZm9yZSBhYm9ydCwg aW4gbWlsbGlzZWNvbmQuDQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+IC0gIEByZXR1cm4gRUZJX0RF VklDRV9FUlJPUiAgICAgICBUaGUgdHJhbnNmZXIgZmFpbGVkIGR1ZSB0byB0cmFuc2Zlcg0KPj4g ZXJyb3IuDQo+Pj4+DQo+Pj4+IC0gIEByZXR1cm4gRUZJX1RJTUVPVVQgICAgICAgICAgICBUaGUg dHJhbnNmZXIgZmFpbGVkIGR1ZSB0byB0aW1lIG91dC4NCj4+Pj4NCj4+Pj4gLSAgQHJldHVybiBF RklfU1VDQ0VTUyAgICAgICAgICAgIFRoZSB0cmFuc2ZlciBmaW5pc2hlZCBPSy4NCj4+Pj4NCj4+ Pj4gLSAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgIE1lbW9yeSBmb3IgdGhlIHRpbWVy IGV2ZW50IGNvdWxkDQo+PiBub3QNCj4+Pj4gYmUgYWxsb2NhdGVkLg0KPj4+Pg0KPj4+PiArICBA cmV0dXJuIEVGSV9ERVZJQ0VfRVJST1IgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRyYW5z ZmVyIGVycm9yLg0KPj4+Pg0KPj4+PiArICBAcmV0dXJuIEVGSV9USU1FT1VUICAgICAgIFRoZSB0 cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRpbWUgb3V0Lg0KPj4+Pg0KPj4+PiArICBAcmV0dXJuIEVG SV9TVUNDRVNTICAgICAgIFRoZSB0cmFuc2ZlciBmaW5pc2hlZCBPSy4NCj4+Pj4NCj4+Pj4NCj4+ Pj4NCj4+Pj4gICoqLw0KPj4+Pg0KPj4+PiAgRUZJX1NUQVRVUw0KPj4+Pg0KPj4+PiBAQCAtMTI5 NiwxMiArMTI5NiwxNCBAQCBYaGNFeGVjVHJhbnNmZXIgKA0KPj4+PiAgICBVSU5UOCAgICAgICBT bG90SWQ7DQo+Pj4+DQo+Pj4+ICAgIFVJTlQ4ICAgICAgIERjaTsNCj4+Pj4NCj4+Pj4gICAgQk9P TEVBTiAgICAgRmluaXNoZWQ7DQo+Pj4+DQo+Pj4+IC0gIEVGSV9FVkVOVCAgIFRpbWVvdXRFdmVu dDsNCj4+Pj4NCj4+Pj4gKyAgVUlOVDY0ICAgICAgVGltZW91dFRpbWU7DQo+Pj4+DQo+Pj4+ICsg IFVJTlQ2NCAgICAgIEVsYXBzZWRUaW1lOw0KPj4+Pg0KPj4+PiArICBVSU5UNjQgICAgICBUaW1l RGVsdGE7DQo+Pj4+DQo+Pj4+ICsgIFVJTlQ2NCAgICAgIEN1cnJlbnRUaWNrOw0KPj4+Pg0KPj4+ PiAgICBCT09MRUFOICAgICBJbmRlZmluaXRlVGltZW91dDsNCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+ Pj4gICAgU3RhdHVzICAgICAgICAgICAgPSBFRklfU1VDQ0VTUzsNCj4+Pj4NCj4+Pj4gICAgRmlu aXNoZWQgICAgICAgICAgPSBGQUxTRTsNCj4+Pj4NCj4+Pj4gLSAgVGltZW91dEV2ZW50ICAgICAg PSBOVUxMOw0KPj4+Pg0KPj4+PiAgICBJbmRlZmluaXRlVGltZW91dCA9IEZBTFNFOw0KPj4+Pg0K Pj4+Pg0KPj4+Pg0KPj4+PiAgICBpZiAoQ21kVHJhbnNmZXIpIHsNCj4+Pj4NCj4+Pj4gQEAgLTEz MTksMzQgKzEzMjEsMTQgQEAgWGhjRXhlY1RyYW5zZmVyICgNCj4+Pj4NCj4+Pj4NCj4+Pj4gICAg aWYgKFRpbWVvdXQgPT0gMCkgew0KPj4+Pg0KPj4+PiAgICAgIEluZGVmaW5pdGVUaW1lb3V0ID0g VFJVRTsNCj4+Pj4NCj4+Pj4gLSAgICBnb3RvIFJJTkdET09SQkVMTDsNCj4+Pj4NCj4+Pj4gLSAg fQ0KPj4+Pg0KPj4+PiAtDQo+Pj4+DQo+Pj4+IC0gIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnQg KA0KPj4+Pg0KPj4+PiAtICAgICAgICAgICAgICAgICAgRVZUX1RJTUVSLA0KPj4+Pg0KPj4+PiAt ICAgICAgICAgICAgICAgICAgVFBMX0NBTExCQUNLLA0KPj4+Pg0KPj4+PiAtICAgICAgICAgICAg ICAgICAgTlVMTCwNCj4+Pj4NCj4+Pj4gLSAgICAgICAgICAgICAgICAgIE5VTEwsDQo+Pj4+DQo+ Pj4+IC0gICAgICAgICAgICAgICAgICAmVGltZW91dEV2ZW50DQo+Pj4+DQo+Pj4+IC0gICAgICAg ICAgICAgICAgICApOw0KPj4+Pg0KPj4+PiAtDQo+Pj4+DQo+Pj4+IC0gIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCj4+Pj4NCj4+Pj4gLSAgICBnb3RvIERPTkU7DQo+Pj4+DQo+Pj4+ICAgIH0N Cj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gLSAgU3RhdHVzID0gZ0JTLT5TZXRUaW1lciAoDQo+Pj4+ DQo+Pj4+IC0gICAgICAgICAgICAgICAgICBUaW1lb3V0RXZlbnQsDQo+Pj4+DQo+Pj4+IC0gICAg ICAgICAgICAgICAgICBUaW1lclJlbGF0aXZlLA0KPj4+Pg0KPj4+PiAtICAgICAgICAgICAgICAg ICAgRUZJX1RJTUVSX1BFUklPRF9NSUxMSVNFQ09ORFMgKFRpbWVvdXQpDQo+Pj4+DQo+Pj4+IC0g ICAgICAgICAgICAgICAgICApOw0KPj4+Pg0KPj4+PiAtDQo+Pj4+DQo+Pj4+IC0gIGlmIChFRklf RVJST1IgKFN0YXR1cykpIHsNCj4+Pj4NCj4+Pj4gLSAgICBnb3RvIERPTkU7DQo+Pj4+DQo+Pj4+ IC0gIH0NCj4+Pj4NCj4+Pj4gLQ0KPj4+Pg0KPj4+PiAtUklOR0RPT1JCRUxMOg0KPj4+Pg0KPj4+ PiAgICBYaGNSaW5nRG9vckJlbGwgKFhoYywgU2xvdElkLCBEY2kpOw0KPj4+Pg0KPj4+Pg0KPj4+ Pg0KPj4+PiArICBUaW1lb3V0VGltZSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EIChU aW1lb3V0ICoNCj4+Pj4gWEhDXzFfTUlMTElTRUNPTkQpOw0KPj4+Pg0KPj4+PiArICBFbGFwc2Vk VGltZSA9IDA7DQo+Pj4+DQo+Pj4+ICsgIEN1cnJlbnRUaWNrID0gR2V0UGVyZm9ybWFuY2VDb3Vu dGVyICgpOw0KPj4+Pg0KPj4+PiArDQo+Pj4+DQo+Pj4+ICAgIGRvIHsNCj4+Pj4NCj4+Pj4gICAg ICBGaW5pc2hlZCA9IFhoY0NoZWNrVXJiUmVzdWx0IChYaGMsIFVyYik7DQo+Pj4+DQo+Pj4+ICAg ICAgaWYgKEZpbmlzaGVkKSB7DQo+Pj4+DQo+Pj4+IEBAIC0xMzU0LDIyICsxMzM2LDIyIEBAIFJJ TkdET09SQkVMTDoNCj4+Pj4gICAgICB9DQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+ICAgICAgZ0JT LT5TdGFsbCAoWEhDXzFfTUlDUk9TRUNPTkQpOw0KPj4+Pg0KPj4+PiAtICB9IHdoaWxlIChJbmRl ZmluaXRlVGltZW91dCB8fCBFRklfRVJST1IgKGdCUy0+Q2hlY2tFdmVudCANCj4+Pj4gKFRpbWVv dXRFdmVudCkpKTsNCj4+Pj4NCj4+Pj4gKyAgICBUaW1lRGVsdGEgPSBYaGNHZXRFbGFwc2VkVGlt ZSAoJkN1cnJlbnRUaWNrKTsNCj4+Pj4NCj4+Pj4gKyAgICAvLyBFbnN1cmUgdGhhdCBFbGFwc2Vk VGltZSBpcyBhbHdheXMgaW5jcmVtZW50ZWQgdG8gYXZvaWQgDQo+Pj4+ICsgaW5kZWZpbml0ZQ0K Pj4+PiBoYW5ncw0KPj4+Pg0KPj4+PiArICAgIGlmIChUaW1lRGVsdGEgPT0gMCkgew0KPj4+Pg0K Pj4+PiArICAgICAgVGltZURlbHRhID0gWEhDX01JQ1JPU0VDT05EX1RPX05BTk9TRUNPTkQNCj4+ Pj4gKFhIQ18xX01JQ1JPU0VDT05EKTsNCj4+Pj4NCj4+Pj4gKyAgICB9DQo+Pj4+DQo+Pj4+DQo+ Pj4+DQo+Pj4+IC1ET05FOg0KPj4+Pg0KPj4+PiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQo+Pj4+DQo+Pj4+IC0gICAgVXJiLT5SZXN1bHQgPSBFRklfVVNCX0VSUl9OT1RFWEVDVVRFOw0K Pj4+Pg0KPj4+PiAtICB9IGVsc2UgaWYgKCFGaW5pc2hlZCkgew0KPj4+Pg0KPj4+PiArICAgIEVs YXBzZWRUaW1lICs9IFRpbWVEZWx0YTsNCj4+Pj4NCj4+Pj4gKyAgfSB3aGlsZSAoSW5kZWZpbml0 ZVRpbWVvdXQgfHwgRWxhcHNlZFRpbWUgPCBUaW1lb3V0VGltZSk7DQo+Pj4+DQo+Pj4+ICsNCj4+ Pj4NCj4+Pj4gKyAgaWYgKCFGaW5pc2hlZCkgew0KPj4+Pg0KPj4+PiAgICAgIFVyYi0+UmVzdWx0 ID0gRUZJX1VTQl9FUlJfVElNRU9VVDsNCj4+Pj4NCj4+Pj4gICAgICBTdGF0dXMgICAgICA9IEVG SV9USU1FT1VUOw0KPj4+Pg0KPj4+PiAgICB9IGVsc2UgaWYgKFVyYi0+UmVzdWx0ICE9IEVGSV9V U0JfTk9FUlJPUikgew0KPj4+Pg0KPj4+PiAgICAgIFN0YXR1cyA9IEVGSV9ERVZJQ0VfRVJST1I7 DQo+Pj4+DQo+Pj4+ICAgIH0NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gLSAgaWYgKFRpbWVvdXRF dmVudCAhPSBOVUxMKSB7DQo+Pj4+DQo+Pj4+IC0gICAgZ0JTLT5DbG9zZUV2ZW50IChUaW1lb3V0 RXZlbnQpOw0KPj4+Pg0KPj4+PiAtICB9DQo+Pj4+DQo+Pj4+IC0NCj4+Pj4NCj4+Pj4gICAgcmV0 dXJuIFN0YXR1czsNCj4+Pj4NCj4+Pj4gIH0NCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gLS0NCj4+ Pj4gMi4zNC4xDQo+Pj4+DQo+Pj4+DQo+Pj4+DQo+Pj4+IC09LT0tPS09LT0tPQ0KPj4+PiBHcm91 cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAu DQo+Pj4+IFZpZXcvUmVwbHkgT25saW5lICgjMTA2NjY4KToNCj4+Pj4gSU5WQUxJRCBVUkkgUkVN T1ZFRA0KPj4+PiAwNg0KPj4+PiA2NjhfXzshIU5weFIha3lGUU01SWtLWUFHOUNSQk80eHBod0Ju emlfamhiMm9VLU5LYk1qT1YtDQo+Pj4gbGN0ZzVfQjNLMUxjdGE0DQo+Pj4+IDUyR3gtMXR3UnQ4 QXQzY3VXeFFzTzE4JCBNdXRlIFRoaXMgVG9waWM6DQo+Pj4+IGh0dHBzOi8vZ3JvdXBzLmlvL210 Lzk5OTcyNzkxLzE3Njg3MzcNCj4+Pj4gTnB4UiFreUZRTTVJa0tZQUc5Q1JCTzR4cGh3Qm56aV9q aGIyb1UtTktiTWpPVi0NCj4+PiBsY3RnNV9CM0sxTGN0YTQ1Mkd4LTF0dw0KPj4+PiBSdDhBdDNj dWJoMkhEeWskIEdyb3VwIE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbw0KPj4+PiBV bnN1YnNjcmliZToNCj4+Pj4gaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3ViDQo+ Pj4+ICFODQo+Pj4+IHB4UiFreUZRTTVJa0tZQUc5Q1JCTzR4cGh3Qm56aV9qaGIyb1UtTktiTWpP Vi0NCj4+PiBsY3RnNV9CM0sxTGN0YTQ1Mkd4LTF0d1INCj4+Pj4gdDhBdDNjdVdZTU1YVlUkICBb aGFvLmEud3VAaW50ZWwuY29tXSAtPS09LT0tPS09LT0NCj4+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+ Pg0KPj4+DQo+Pj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPiANCj4gDQo+IA0KPiANCj4gDQo+IA0K DQoNCgotPS09LT0tPS09LT0tPS09LT0tPS09LQpHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZl IGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuClZpZXcvUmVwbHkgT25saW5lICgjMTEw NDExKTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvMTEwNDExCk11dGUg VGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvOTk5NzI3OTEvNzY4NjE3NgpHcm91cCBP d25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRr Mi5ncm91cHMuaW8vZy9kZXZlbC91bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0t PS09LT0tPS09LT0tCgoNCg==