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 A9317740048 for ; Fri, 8 Sep 2023 13:57:21 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=+Hkg3vJN5gkOQtcR8afHvxlcAEdsZFyP6Xc2orFU6QY=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: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=1694181440; v=1; b=kph3SO5K2GO6LbMBhPNQB1sa2Yx0AH3PovdWhzyZThZiO0pemLO3A+0lZhnVVN/KPwWmGZlR tTHGuTaNvdHXDCi6YPfCH8Q5gYGmYihUxYUGzQsVmdkFXg7ueX7bmGGaoK6HAR/7zIByc3Bg2Jc aeLPq/x1n014F4Q6MnH6sOtE= X-Received: by 127.0.0.2 with SMTP id QiFBYY7687511xcDSWiMcPR0; Fri, 08 Sep 2023 06:57:20 -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.39725.1694181439371336812 for ; Fri, 08 Sep 2023 06:57:19 -0700 X-Received: from pps.filterd (m0134420.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 388CSmv0003073; Fri, 8 Sep 2023 13:57:19 GMT X-Received: from p1lg14881.it.hpe.com ([16.230.97.202]) by mx0b-002e3701.pphosted.com (PPS) with ESMTPS id 3t03n5rpba-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 08 Sep 2023 13:57:18 +0000 X-Received: from p1wg14925.americas.hpqcorp.net (unknown [10.119.18.114]) (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 1EC81805E55; Fri, 8 Sep 2023 13:57:18 +0000 (UTC) X-Received: from p1wg14928.americas.hpqcorp.net (10.119.18.116) by p1wg14925.americas.hpqcorp.net (10.119.18.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42; Fri, 8 Sep 2023 01:57:11 -1200 X-Received: from p1wg14926.americas.hpqcorp.net (10.119.18.115) 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; Fri, 8 Sep 2023 01:57:11 -1200 X-Received: from p1wg14920.americas.hpqcorp.net (16.230.19.123) by p1wg14926.americas.hpqcorp.net (10.119.18.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.42 via Frontend Transport; Fri, 8 Sep 2023 01:57:11 -1200 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (192.58.206.35) 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; Fri, 8 Sep 2023 01:57:10 -1200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ePyicBl3yAvUx3wpwnhg9fnMQ5rw+eQ+RwVxaVLDnnXxljy7GziZ78596m3jQsL1A07iledw2UyHMKKIc3dUqQirLcilTm9YRYoJPEMOHKJvWXzO3jkqRS/qeGpO0zu/MAB+LGbgY4T5aqfrOPqUU9gA9qfwwGR8LuXqftA9ZxGFS9oov1IWEGVXDkD7mnXIyKCTXajYHiLzFiCf/9PC7DfRHy5LuA2RBwzUhjWivAuyDV0ox/qo1jG6+YkobJ75bGZdYCh8j1KPFqF+/icAN4enbiryrVyy8Q81+6bSofJiSaDLequdk6NyV2wlQIAk+uAkLbd7E9xhFGSEIMlOVA== 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=ve1vn7KJcZHwstp30quoW3SQvDy/sjQztlVFcQvLsCM=; b=Pk1+IBotEBV1Y05obOGaENRBUHYCemrurULjsahpnccA4mn8DQSX+N/JdH+eiXWZBtNjTZwbijKd854TbAFd3yZm3ppnX/1MUYED6TzDZ1KGX2EivrRSZsmlfNBHZA+tzeSbM8uCy5xOY4lV7R9QBH8tq1RNzQPVN/YF+Buybqe4waNza1K0JoptwT8ibpwIdtglxju0/D/dRCVeGunSQiLDok+9qhgOhwUQmnHRmd+W21SFG1iiQGrZFEoA+LnnPdC9t0Z88ItptU7HEJqYoHeK1gV0ccGJf/ysyhKyNe5K0XE+N2Ugb9cohOoHYCWLT2/VFkFpNoLmhF3MDmL9ZA== 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 DS0PR84MB3648.NAMPRD84.PROD.OUTLOOK.COM (2603:10b6:8:1b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.30; Fri, 8 Sep 2023 13:57:08 +0000 X-Received: from PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM ([fe80::55a0:89f4:ef4:bcba]) by PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM ([fe80::55a0:89f4:ef4:bcba%4]) with mapi id 15.20.6745.034; Fri, 8 Sep 2023 13:57:08 +0000 From: "Henz, Patrick" To: "Wu, Hao A" , "devel@edk2.groups.io" , Mike Maslenkin Subject: Re: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Topic: [edk2-devel] [PATCH v2] MdeModulePkg/XhciDxe: Use Performance Timer for XHCI Timeouts Thread-Index: AQHZzseBJIO8HXAamkWgXd40zbxjr7AOZHvggABS3cCAAGb9AIAAAivQgAC0+7CAAIDx8IAAxEqQ Date: Fri, 8 Sep 2023 13:57:08 +0000 Message-ID: References: <177B4AD1F8C3A6A2.8497@groups.io> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR84MB1478:EE_|DS0PR84MB3648:EE_ x-ms-office365-filtering-correlation-id: f4c8ac04-f6cd-4909-2d61-08dbb0737e0d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: kEk2+o+rS5N/G2pAGTTZXHF4iCayEORsk3cyaC8NkYNhXYiWYCKeMP5A4l3CIkgdBU6v5zx2d6noxueMWOtI21A/CPZ5qhhvB4CvXjdxnC1kvfHQ+PSGUKtLDS3LxvP1Zx1s/wLvET/KAuKy7OGJPkwqhscC9DENIFwLb+xPJmd5RhSnbtbX71crRyVRnzW5EGmbVxqyaoSJEc8fh68DNrsCoRSNsEJvC7jShtWAv2wTYwCg6xEoWt37XbNGr147Pq1OxFi9CN4QJLOb3FlG8tqtAgLBBInDmYZFSAeN27vXyq16lGYiSCx8IFeYQwgID1iehxNbncYD4dQBJtyIalXEQ8V0aSNDkvPanel+CpvJVQJ0YguYdQNmSN1YqEXXWkIFdwtaeI/hunzhmcDENUWX/eFruWq4SoSLR8zNJhcsWTDmWYpyinqyqzSNRcEsqWhjtjaH/L1eqXoMJt909etuheLflyDGqCiNHJjuXUKPXiJLu/cspJtGmp5tYUY+LrJyR4oeoCx/U8HuX/HI06Sbw+7guaNTs7qaH+IEp/FsQHm1N8h4+qY05z/riEiXbIMOPQ/CYb1OlMVcRmnbU+wXvqw+rM6EmdYEQxe5LPiXllmt8yO/j6JheRogp7mkpvmPMuvW0eHx5fRvu4aDvQ== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RHFwWlJrUW5hN0FJZzBTRnhCOFJYU25SdytoOGlmL3lRUmJ5VzZWajlSem5v?= =?utf-8?B?WVVSSTVxR3IvQWJzeCs2V2ZvdjYyMEVXbVk4am1Qb2p2ZmFFa3VIRk9GODJL?= =?utf-8?B?Q0NSRUpxM2pha24rdkdqT0s4RWhsV0RmM2xGZGJ3N0Q4YVRyYWYzTXl3NTJ6?= =?utf-8?B?cmFTdlNJNnNiaktYSXhSdE8waFpiSFN5WTFnUmdXWXlTMmhZWTNsUno0MFhC?= =?utf-8?B?WnpSNytUa24rOHZQTEFmeWVMTlozSHRpUksyMHFGVm0xalppRXo1TmVkMnFz?= =?utf-8?B?Wm8vWkcwTDlPMnl4aE5aV0VCZDRsL1hybEN3TVJlMUlzdUhzc0lXRWZER0NY?= =?utf-8?B?NkU5UmU3ZERGanZFbjE5N2pRMmJhbmx0Vmt0dXZlS2Q1K3gwVDIxdmlsa05T?= =?utf-8?B?UlAvUExZYTR0S3luRXZHMTU4dFU3dU9NTkdiOWFrZjVkTTFQZTNEQzArVFV4?= =?utf-8?B?MFlmVWovWllaQnJRWFQrNlZNRjZYcXZ1T2pnZFN2VGlaRUFzR09Oa3ZHUkxj?= =?utf-8?B?OWtCY2lsNk5DOEM4SDE4UlZ0TDhIeGM0ODFFQmJVSGppSVRKUE1CUk5IU1Yy?= =?utf-8?B?OUtkekxNTWtLR1lxaGl3YU85V1BPR2greE1MY3pycUZ2ZmxGbzNFemNudEI3?= =?utf-8?B?K3QvWEtnNmRXZjA4S2VSK3kyMTBwak9iKzd6c0lQeE5GekNCUUtjZjl1c2JK?= =?utf-8?B?WGlvRU9rLzVuZ0lhRXBkM0RNUmFKSlBKSW0xVnduaGJxVWtTWjhnUXB2T1gz?= =?utf-8?B?cEx1aTdVaXRkTndMQ2llcFBib0s4dE1uRXB1aVViazAwbzNVdFYxY1Z6TXRL?= =?utf-8?B?ZlZtZFg2a2FRNHdpY3liVjA5N1hVQXYzaVZKOUlCdm1OUmRFMWowQjBKMk94?= =?utf-8?B?VnN5QSsrMFptU2ZYOE1CbUlDeEx6NTBpM0E0bmQ1aHFiV0dmVDR1dTU0c2pq?= =?utf-8?B?S0Y5cmtOZHdpTG9DY3dvNnQwVGJ0K0pqeXpqeGN5MWRYK0NwODgxcWJ4Ymxi?= =?utf-8?B?akRUanVYUFpDVDJucUdiS1Nqd3E2aExSbG4wOXMxTkE1SEMwRHFWTndjc2FD?= =?utf-8?B?K01FTXNHSEFlc2Q5dmNMQmhtSDhkSW9qWnBrRm1MNjRteHhhT1R1NUtPNjRx?= =?utf-8?B?TDBLajFYeDlSQVhwOWFDem9aVHNzMXREcEk4Z0dMRVdURENibUZ4L1VIYm9w?= =?utf-8?B?ek9oS3lDa3A5WTltYWxxL3RPRElwZG4vRDdXRkUrVEZYUUlkaTJCQUdIbHA1?= =?utf-8?B?ZWxnTHRSeDRuVkZ1dGlPR2FFMnBKamlFTHJ1MFFpaUtYLzZnMElSSXpQb2Zy?= =?utf-8?B?WDgzajUrd3pDZnh6RnFHZGpLMFZFamtSNGNUQWkrS2tiV1hRSnAzTkdSQ1FU?= =?utf-8?B?Q1lkOFlUY3JtNVZpczlWWjhia0VPKzdiK1g0bnAybGpRK25VSkxyNGtCdWRO?= =?utf-8?B?TjRYRkx2WDNQbENPOFQxd2JEa2g1SXVEK2RwTUlCNlh6NExURDVOL0hWelM0?= =?utf-8?B?dHBZTG4yQ3VHbDF6dE5meHJCM2dpZWFtSGlydHN4bmJrblp3emdrbldFZ1h3?= =?utf-8?B?bDlvaGp3OUh1bkpNZUh6OEExTHdHemphWWRtT3BDRVdMdWhBV0F5bkZSN1hC?= =?utf-8?B?OFRJbWVEYVBXVWVWVmdvVFNBNFAvY0Y3UGw1czd2WjhyamxTZlN2QU44YkNn?= =?utf-8?B?RWE2WjZYR0Y3bmR2TjB3cnkwUU5XdmxNSTJxYWRkaW5uQ21vdzVmNncrSVMx?= =?utf-8?B?OWczcTMxMDA5Q1JxcWpYYU5MMFRxMzBJaVFtTFpWelp0TVRNakI5NTVkSDRO?= =?utf-8?B?NFAzRm5rNjRITjYwMWJ5TlFINnNUNmd6ZnZJMGppUXRwWFVsVE1KWC9KcHdW?= =?utf-8?B?RURvUHdWV0RmaVYzZ01rdjkxRE1KOTdLaDAzbmpSY1JvV0ViU0ZTTzIvTXB5?= =?utf-8?B?NzloYzdlTzd2M3RUNk1nTDBRR3lCT2ZLa2lyVHdYWXgwSy9TTlI3Mk4zOWRF?= =?utf-8?B?QlErUlpwVDBmT2NSRzZRVDVicjBpYW1aS2ZBcnd2bmEycXNWT0FrTEs3V2FS?= =?utf-8?B?SDB6cnFPaHF0T3k0Zkc3NkI1Zm5jR3dlQXd1c3NIWXQwTVdUV0RKanhJMW5G?= =?utf-8?Q?56VL3CxGowZBm/V37ZRD6jWiW?= X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR84MB1478.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: f4c8ac04-f6cd-4909-2d61-08dbb0737e0d X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2023 13:57:08.5045 (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: RX/U9wPDQp+EUhVAlm/HpUcMNCtwqoDzQwCf7P/yVuqkjNy+n3aMW1A9viXwJ/ChvM9z0+yLSeoOSt6jxFATcw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR84MB3648 X-OriginatorOrg: hpe.com X-Proofpoint-GUID: gPxxjre1voaM0gfPcUa4XLR76MmOixd- X-Proofpoint-ORIG-GUID: gPxxjre1voaM0gfPcUa4XLR76MmOixd- X-Proofpoint-UnRewURL: 2 URL's were 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: SybkngNQEXVbKnbZEr9sDEUcx7686176AA= 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=kph3SO5K; 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; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") SSBzYXcgeW91ciBlYXJsaWVyIG1lc3NhZ2UgaW4gcmVnYXJkIHRvIHRoZSBidWlsZCBmYWlsdXJl IHRvbywgSSdsbCBtYWtlIHN1cmUgdG8gcnVuIHRoZSBDSSBjaGVjay4NCg0KVGhhbmtzLA0KUGF0 cmljayBIZW56DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBXdSwgSGFvIEEg PGhhby5hLnd1QGludGVsLmNvbT4gDQpTZW50OiBUaHVyc2RheSwgU2VwdGVtYmVyIDcsIDIwMjMg OToyMCBQTQ0KVG86IEhlbnosIFBhdHJpY2sgPHBhdHJpY2suaGVuekBocGUuY29tPjsgZGV2ZWxA ZWRrMi5ncm91cHMuaW87IE1pa2UgTWFzbGVua2luIDxtaWtlLm1hc2xlbmtpbkBnbWFpbC5jb20+ DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL1hoY2lE eGU6IFVzZSBQZXJmb3JtYW5jZSBUaW1lciBmb3IgWEhDSSBUaW1lb3V0cw0KDQpUaGFua3MuIEkg YW0gZmluZSB3aXRoIHRoZSBwcm9wb3NhbCBiZWxvdy4NCg0KQ291bGQgeW91IHBsZWFzZSBoZWxw IHRvIGZvbGxvdyB0aGUgc3RlcCAxMSBpbiBwYWdlOiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9j b3JlL3RpYW5vY29yZS5naXRodWIuaW8vd2lraS9FREstSUktRGV2ZWxvcG1lbnQtUHJvY2Vzcw0K YW5kIGNoZWNrIHRoZSBDSSB0ZXN0IHJlc3VsdHMgZm9yIHRoZSB1cGNvbWluZyBwYXRjaD8NCg0K QmVzdCBSZWdhcmRzLA0KSGFvIFd1DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogSGVueiwgUGF0cmljayA8cGF0cmljay5oZW56QGhwZS5jb20+DQo+IFNlbnQ6IEZyaWRh eSwgU2VwdGVtYmVyIDgsIDIwMjMgMjozOSBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87 IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgTWlrZSANCj4gTWFzbGVua2luIDxtaWtl Lm1hc2xlbmtpbkBnbWFpbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENI IHYyXSBNZGVNb2R1bGVQa2cvWGhjaUR4ZTogVXNlIA0KPiBQZXJmb3JtYW5jZSBUaW1lciBmb3Ig WEhDSSBUaW1lb3V0cw0KPiANCj4gSSBkb27igJl0IGhhdmUgc3Ryb25nIG9waW5pb25zIGVpdGhl ci4gSWYgd2Ugd291bGQgcHJlZmVyIHRvIGNhY2hlIHRoZSANCj4gdmFsdWVzIHJldHVybmVkIGJ5 IEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgSSB3b3VsZCBiZSBtb3JlIA0KPiB0aGFu IGhhcHB5IHRvIGRvIHRoYXQuIEkgY291bGQgYWxzbyBtb2RpZnkgWGhjR2V0RWxhcHNlZFRpbWUg dG8gcmV0dXJuIA0KPiB0aGUgZWxhcHNlZCB0aWNrcyBpbnN0ZWFkIG9mIHRoZSBlbGFwc2VkIHRp bWUgaW4gbmFubyBzZWNvbmRzLCB0aGUgDQo+IGZ1bmN0aW9ucyB0aGF0IGNhbGwgaW50byBYaGNH ZXRFbGFwZWRUaW1lL1RpY2tzIGNvdWxkIGNvbnZlcnQgdGhlIA0KPiBtaWxsaXNlY29uZCB0aW1l b3V0IHZhbHVlIGludG8gYSB0aWNrIGNvdW50IGFuZCBjb21wYXJlIHRoZSBlbGFwc2VkIA0KPiB0 aWNrcyBhZ2FpbnN0IHRoYXQsIHRoaXMgd291bGQgcmVtb3ZlIHRoZSByZWxpYW5jZSBvbiBHZXRU aW1lSW5OYW5vU2Vjb25kLiBEb2VzIHRoYXQgc291bmQgbW9yZSBhcHByb3ByaWF0ZT8NCj4gDQo+ IFRoYW5rcywNCj4gUGF0cmljayBIZW56DQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9u IEJlaGFsZiBPZiBXdSwgSGFvIA0KPiBBDQo+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgNywg MjAyMyAyOjQ4IEFNDQo+IFRvOiBNaWtlIE1hc2xlbmtpbiA8bWlrZS5tYXNsZW5raW5AZ21haWwu Y29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEhlbnosIFBhdHJpY2sgPHBhdHJpY2su aGVuekBocGUuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRl TW9kdWxlUGtnL1hoY2lEeGU6IFVzZSANCj4gUGVyZm9ybWFuY2UgVGltZXIgZm9yIFhIQ0kgVGlt ZW91dHMNCj4gDQo+IEkgZG8gbm90IGhhdmUgc3Ryb25nIG9waW5pb24gb24gdGhpcyBjb25zaWRl cmluZyBpdCBpcyBhbiBJTyBkcml2ZXIuDQo+IFRoZSBjYWxsIG9mIEdldFRpbWVJbk5hbm9TZWNv bmQoKSBpcyBhbHNvIGxpa2VseSB0byBpbnZva2UNCj4gR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJv cGVydGllcygpIGNhbGwuDQo+IA0KPiBJIHdpbGwgbGV0IHRoZSBwYXRjaCBvd25lciB0byBkZWNp ZGUgb24gdGhlIG9wZW4gcmFpc2VkIGJlbG93Lg0KPiANCj4gQmVzdCBSZWdhcmRzLA0KPiBIYW8g V3UNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBNaWtlIE1h c2xlbmtpbiA8bWlrZS5tYXNsZW5raW5AZ21haWwuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBT ZXB0ZW1iZXIgNywgMjAyMyAzOjM2IFBNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBX dSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT4NCj4gPiBDYzogSGVueiwgUGF0cmljayA8cGF0 cmljay5oZW56QGhwZS5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0gg djJdIE1kZU1vZHVsZVBrZy9YaGNpRHhlOiBVc2UgDQo+ID4gUGVyZm9ybWFuY2UgVGltZXIgZm9y IFhIQ0kgVGltZW91dHMNCj4gPg0KPiA+IEhlbGxvIEhhbyBXdSwNCj4gPg0KPiA+IElzbid0IEdl dFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMgKCZTdGFydFZhbHVlLCAmRW5kVmFsdWUpIGNh bGwgDQo+ID4gdG9vICJoZWF2eSIgZm9yIFhIQ0kgcGF0aHM/DQo+ID4gTWF5IGJlIGl0J3MgYmV0 dGVyIHRvIGNhY2hlIHRpbWVyIGRpcmVjdGlvbiBvbmNlPw0KPiA+IEknbSBhc2tpbmcgaW4gYSBj b250ZXh0IG9mIFBjQXRDaGlwc2V0UGtnL0xpYnJhcnkvQWNwaVRpbWVyTGliDQo+ID4gaW5zdGFu Y2UgdXNlZCBieSBhIG51bWJlciBvZiBJbnRlbCdzIHBsYXRmb3JtIGluIGVkay1wbGF0Zm9ybXMu DQo+ID4gRm9yIHRoaXMgIGxpYnJhcnkgR2V0UGVyZm9ybWFuY2VDb3VudGVyUHJvcGVydGllcyBm aW5hbGx5IGNhbGxzIA0KPiA+IEludGVybmFsQ2FsY3VsYXRlVHNjRnJlcXVlbmN5LCB0aGF0IGlz bid0IHNpbXBsZS4NCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ID4gTWlrZQ0KPiA+DQo+ID4gT24gVGh1 LCBTZXAgNywgMjAyMyBhdCA0OjI34oCvQU0gV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+ IHdyb3RlOg0KPiA+ID4NCj4gPiA+IFNvcnJ5IGZvciB0aGUgbGF0ZSByZXNwb25zZS4NCj4gPiA+ IFJldmlld2VkLWJ5OiBIYW8gQSBXdSA8aGFvLmEud3VAaW50ZWwuY29tPg0KPiA+ID4NCj4gPiA+ IEJlc3QgUmVnYXJkcywNCj4gPiA+IEhhbyBXdQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVs QGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgDQo+ID4gPiA+IEhlbnosIFBhdHJpY2sNCj4g PiA+ID4gU2VudDogVGh1cnNkYXksIFNlcHRlbWJlciA3LCAyMDIzIDQ6MzcgQU0NCj4gPiA+ID4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW1BBVENIIHYyXSBNZGVNb2R1bGVQa2cvWGhjaUR4ZTogVXNlIA0KPiA+ID4gPiBQZXJmb3Jt YW5jZSBUaW1lciBmb3IgWEhDSSBUaW1lb3V0cw0KPiA+ID4gPg0KPiA+ID4gPiBJIHNlbnQgdGhp cyBwYXRjaCBvdXQgYSBmZXcgd2Vla3MgYWdvIG5vdyBidXQgaGF2ZW4ndCBzZWVuIGEgDQo+ID4g PiA+IHJlcGx5LCBqdXN0IGNoZWNraW5nIGluIHRvIG1ha2Ugc3VyZSBpdCBkaWRuJ3QgZ2V0IG1p c3NlZC4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBQYXRyaWNrIEhlbnoNCj4g PiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTog ZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2Yg DQo+ID4gPiA+IEhlbnosIFBhdHJpY2sNCj4gPiA+ID4gU2VudDogTW9uZGF5LCBBdWd1c3QgMTQs IDIwMjMgMTA6NTIgQU0NCj4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ IENjOiBIZW56LCBQYXRyaWNrIDxwYXRyaWNrLmhlbnpAaHBlLmNvbT4NCj4gPiA+ID4gU3ViamVj dDogW2VkazItZGV2ZWxdIFtQQVRDSCB2Ml0gTWRlTW9kdWxlUGtnL1hoY2lEeGU6IFVzZSANCj4g PiA+ID4gUGVyZm9ybWFuY2UgVGltZXIgZm9yIFhIQ0kgVGltZW91dHMNCj4gPiA+ID4NCj4gPiA+ ID4gUkVGOklOVkFMSUQgVVJJIFJFTU9WRUQNCj4gPiA+ID4gaG8NCj4gPiA+ID4gd19idWcuY2dp P2lkPTI5NDhfXzshIU5weFIhbVpSdU1CS1BkZVItDQo+IFV2WTdzcjh0V05PZklRRGUwV19UVzNx LUs4TQ0KPiA+ID4gPiB0Tk4xY3lueVJaMV9ibHM4b3NhRXFGV3VwRm1qUjI5WF96dncwWngxWSQN Cj4gPiA+ID4NCj4gPiA+ID4gWGhjaUR4ZSB1c2VzIHRoZSB0aW1lciBmdW5jdGlvbmFsaXR5IHBy b3ZpZGVkIGJ5IHRoZSBib290IA0KPiA+ID4gPiBzZXJ2aWNlcyB0YWJsZSB0byBkZXRlY3QgdGlt ZW91dCBjb25kaXRpb25zLiBUaGlzIGJyZWFrcyB0aGUgDQo+ID4gPiA+IGRyaXZlcidzIEV4aXRC b290U2VydmljZXMgY2FsbCBiYWNrLCBhcyBDb3JlRXhpdEJvb3RTZXJ2aWNlcyANCj4gPiA+ID4g aGFsdHMgdGhlIHRpbWVyIGJlZm9yZSBzaWduYWxpbmcgdGhlIEV4aXRCb290U2VydmljZXMgZXZl bnQuIElmIA0KPiA+ID4gPiB0aGUgaG9zdCBjb250cm9sbGVyIGZhaWxzIHRvIGhhbHQgaW4gdGhl IGNhbGwgYmFjaywgdGhlIHRpbWVvdXQgDQo+ID4gPiA+IGNvbmRpdGlvbiB3aWxsIG5ldmVyIG9j Y3VyIGFuZCB0aGUgYm9vdCBnZXRzIHN0dWNrIGluIGFuIA0KPiA+ID4gPiBpbmRlZmluaXRlIHNw aW4gbG9vcC4gVXNlIHRoZSBmcmVlIHJ1bm5pbmcgdGltZXIgcHJvdmlkZWQgYnkgDQo+ID4gPiA+ IFRpbWVyTGliIHRvIGNhbGN1bGF0ZSB0aW1lb3V0cywgYXZvaWRpbmcNCj4gPiB0aGUgcG90ZW50 aWFsIGhhbmcuDQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdHJpY2sgSGVueiA8 cGF0cmljay5oZW56QGhwZS5jb20+DQo+ID4gPiA+IFJldmlld2VkLWJ5Og0KPiA+ID4gPiAtLS0N Cj4gPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jICAgICAgfCA1NiAr KysrKysrKysrKysrKysrKysrDQo+ID4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhl L1hoY2kuaCAgICAgIHwgMjIgKysrKysrKysNCj4gPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvUGNp L1hoY2lEeGUvWGhjaUR4ZS5pbmYgfCAgMiArDQo+ID4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1Bj aS9YaGNpRHhlL1hoY2lSZWcuYyAgIHwgNjcgKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiAtDQo+ ID4gPiA+ICBNZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hlZC5jIHwgNjgNCj4g PiA+ID4gKysrKysrKysrLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+ICA1IGZpbGVzIGNoYW5nZWQs IDEyOSBpbnNlcnRpb25zKCspLCA4NiBkZWxldGlvbnMoLSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlm ZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5jDQo+ID4gPiA+IGIv TWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpLmMNCj4gPiA+ID4gaW5kZXggNjI2ODJk ZDI3Yy4uMWRjYmUyMDUxMiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9Q Y2kvWGhjaUR4ZS9YaGNpLmMNCj4gPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhj aUR4ZS9YaGNpLmMNCj4gPiA+ID4gQEAgLTEsNiArMSw3IEBADQo+ID4gPiA+ICAvKiogQGZpbGUN Cj4gPiA+ID4gICAgVGhlIFhIQ0kgY29udHJvbGxlciBkcml2ZXIuDQo+ID4gPiA+DQo+ID4gPiA+ ICsoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1l bnQgDQo+ID4gPiA+ICtMUDxCUj4NCj4gPiA+ID4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjIs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiA+ID4gPiByZXNlcnZlZC48QlI+DQo+ ID4gPiA+ICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ID4gPg0KPiA+ID4gPiBAQCAtMjI5NCwzICsyMjk1LDU4IEBAIFhoY0RyaXZlckJpbmRpbmdTdG9w ICgNCj4gPiA+ID4NCj4gPiA+ID4gICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gPiAgfQ0K PiA+ID4gPiArDQo+ID4gPiA+ICsvKioNCj4gPiA+ID4gKyAgQ29tcHV0ZXMgYW5kIHJldHVybnMg dGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25kcyBzaW5jZQ0KPiA+ID4gPiArICBQcmV2aW91 c1RpY2suIFRoZSB2YWx1ZSBvZiBQcmV2aW91c1RpY2sgaXMgb3ZlcndyaXR0ZW4gd2l0aCANCj4g PiA+ID4gK3RoZQ0KPiA+ID4gPiArICBjdXJyZW50IHBlcmZvcm1hbmNlIGNvdW50ZXIgdmFsdWUu DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgQHBhcmFtICBQcmV2aW91c1RpY2sgICAgUG9pbnRlciB0 byBQcmV2aW91c1RpY2sgY291bnQuDQo+ID4gPiA+ICsgIEByZXR1cm4gVGhlIGVsYXBzZWQgdGlt ZSBpbiBuYW5vc2Vjb25kcyBzaW5jZSBQcmV2aW91c0NvdW50Lg0KPiA+ID4gPiArICAgICAgICAg IFByZXZpb3VzQ291bnQgaXMgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgY3VycmVudCBwZXJmb3JtYW5j ZQ0KPiA+ID4gPiArICAgICAgICAgIGNvdW50ZXIgdmFsdWUuDQo+ID4gPiA+ICsqKi8NCj4gPiA+ ID4gK1VJTlQ2NA0KPiA+ID4gPiArWGhjR2V0RWxhcHNlZFRpbWUgKA0KPiA+ID4gPiArICBJTiBP VVQgVUlOVDY0ICAqUHJldmlvdXNUaWNrDQo+ID4gPiA+ICsgICkNCj4gPiA+ID4gK3sNCj4gPiA+ ID4gKyAgVUlOVDY0ICBTdGFydFZhbHVlOw0KPiA+ID4gPiArICBVSU5UNjQgIEVuZFZhbHVlOw0K PiA+ID4gPiArICBVSU5UNjQgIEN1cnJlbnRUaWNrOw0KPiA+ID4gPiArICBVSU5UNjQgIERlbHRh Ow0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIEdldFBlcmZvcm1hbmNlQ291bnRlclByb3BlcnRpZXMg KCZTdGFydFZhbHVlLCAmRW5kVmFsdWUpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIEN1cnJlbnRU aWNrID0gR2V0UGVyZm9ybWFuY2VDb3VudGVyICgpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIC8v DQo+ID4gPiA+ICsgIC8vIERldGVybWluZSBpZiB0aGUgY291bnRlciBpcyBjb3VudGluZyB1cCBv ciBkb3duICAvLyAgaWYgDQo+ID4gPiA+ICsgKFN0YXJ0VmFsdWUgPCBFbmRWYWx1ZSkgew0KPiA+ ID4gPiArICAgIC8vDQo+ID4gPiA+ICsgICAgLy8gQ291bnRlciBjb3VudHMgdXB3YXJkcywgY2hl Y2sgZm9yIGFuIG92ZXJmbG93IGNvbmRpdGlvbg0KPiA+ID4gPiArICAgIC8vDQo+ID4gPiA+ICsg ICAgaWYgKCpQcmV2aW91c1RpY2sgPiBDdXJyZW50VGljaykgew0KPiA+ID4gPiArICAgICAgRGVs dGEgPSAoRW5kVmFsdWUgLSAqUHJldmlvdXNUaWNrKSArIEN1cnJlbnRUaWNrOw0KPiA+ID4gPiAr ICAgIH0gZWxzZSB7DQo+ID4gPiA+ICsgICAgICBEZWx0YSA9IEN1cnJlbnRUaWNrIC0gKlByZXZp b3VzVGljazsNCj4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ICsgIH0gZWxzZSB7DQo+ID4gPiA+ICsg ICAgLy8NCj4gPiA+ID4gKyAgICAvLyBDb3VudGVyIGNvdW50cyBkb3dud2FyZHMsIGNoZWNrIGZv ciBhbiB1bmRlcmZsb3cgY29uZGl0aW9uDQo+ID4gPiA+ICsgICAgLy8NCj4gPiA+ID4gKyAgICBp ZiAoKlByZXZpb3VzVGljayA8IEN1cnJlbnRUaWNrKSB7DQo+ID4gPiA+ICsgICAgICBEZWx0YSA9 IChTdGFydFZhbHVlIC0gQ3VycmVudFRpY2spICsgKlByZXZpb3VzVGljazsNCj4gPiA+ID4gKyAg ICB9IGVsc2Ugew0KPiA+ID4gPiArICAgICAgRGVsdGEgPSAqUHJldmlvdXNUaWNrIC0gQ3VycmVu dFRpY2s7DQo+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPiArICB9DQo+ID4gPiA+ICsNCj4gPiA+ID4g KyAgLy8NCj4gPiA+ID4gKyAgLy8gU2V0IFByZXZpb3VzVGljayB0byBDdXJyZW50VGljayAgLy8g ICpQcmV2aW91c1RpY2sgPSANCj4gPiA+ID4gKyBDdXJyZW50VGljazsNCj4gPiA+ID4gKw0KPiA+ ID4gPiArICByZXR1cm4gR2V0VGltZUluTmFub1NlY29uZCAoRGVsdGEpOyB9DQo+ID4gPiA+IGRp ZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2kuaA0KPiA+ID4gPiBi L01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaS5oDQo+ID4gPiA+IGluZGV4IGNhMjIz YmQyMGMuLjc3ZmViNjY2NDcgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMv UGNpL1hoY2lEeGUvWGhjaS5oDQo+ID4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1ho Y2lEeGUvWGhjaS5oDQo+ID4gPiA+IEBAIC0yLDYgKzIsNyBAQA0KPiA+ID4gPg0KPiA+ID4gPiAg ICBQcm92aWRlcyBzb21lIGRhdGEgc3RydWN0dXJlIGRlZmluaXRpb25zIHVzZWQgYnkgdGhlIFhI Q0kgDQo+ID4gPiA+IGhvc3QgY29udHJvbGxlciBkcml2ZXIuDQo+ID4gPiA+DQo+ID4gPiA+ICso QykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQg DQo+ID4gPiA+ICtMUDxCUj4NCj4gPiA+ID4gIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMTcsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIA0KPiA+ID4gPiByZXNlcnZlZC48QlI+IENvcHly aWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLjxCUj4NCj4gPiA+ID4gIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50IEBAIC0yNiw2ICsyNyw3IEBADQo+ID4g PiA+IFNQRFgtDQo+ID4gPiA+IExpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dCAgI2luY2x1ZGUgDQo+ID4gPiA+IDxMaWJyYXJ5L1VlZmlMaWIuaD4gICNpbmNsdWRlIDxMaWJy YXJ5L0RlYnVnTGliLmg+ICAjaW5jbHVkZSANCj4gPiA+ID4gPExpYnJhcnkvUmVwb3J0U3RhdHVz Q29kZUxpYi5oPg0KPiA+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvVGltZXJMaWIuaD4NCj4gPiA+ ID4NCj4gPiA+ID4gICNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1BjaS5oPg0KPiA+ID4gPg0K PiA+ID4gPiBAQCAtMzcsNiArMzksMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX1VTQl9ERVZfQ09OVEVY VA0KPiA+IFVTQl9ERVZfQ09OVEVYVDsNCj4gPiA+ID4gI2luY2x1ZGUgIkNvbXBvbmVudE5hbWUu aCINCj4gPiA+ID4gICNpbmNsdWRlICJVc2JIY01lbS5oIg0KPiA+ID4gPg0KPiA+ID4gPiArLy8N Cj4gPiA+ID4gKy8vIENvbnZlcnRzIGEgY291bnQgZnJvbSBtaWNyb3NlY29uZHMgdG8gbmFub3Nl Y29uZHMgLy8gI2RlZmluZQ0KPiA+ID4gPiArWEhDX01JQ1JPU0VDT05EX1RPX05BTk9TRUNPTkQo VGltZSkgICgoVUlOVDY0KShUaW1lKSAqDQo+IDEwMDApDQo+ID4gPiA+ICAvLw0KPiA+ID4gPiAg Ly8gVGhlIHVuaXQgaXMgbWljcm9zZWNvbmQsIHNldHRpbmcgaXQgYXMgMXVzLg0KPiA+ID4gPiAg Ly8NCj4gPiA+ID4gQEAgLTcyMCw0ICs3MjYsMjAgQEAgWGhjQXN5bmNJc29jaHJvbm91c1RyYW5z ZmVyICgNCj4gPiA+ID4gICAgSU4gICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICpDb250ZXh0DQo+ID4gPiA+ICAgICk7DQo+ID4gPiA+DQo+ID4gPiA+ICsvKioNCj4gPiA+ ID4gKyAgQ29tcHV0ZXMgYW5kIHJldHVybnMgdGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25k cyBzaW5jZQ0KPiA+ID4gPiArICBQcmV2aW91c1RpY2suIFRoZSB2YWx1ZSBvZiBQcmV2aW91c1Rp Y2sgaXMgb3ZlcndyaXR0ZW4gd2l0aCANCj4gPiA+ID4gK3RoZQ0KPiA+ID4gPiArICBjdXJyZW50 IHBlcmZvcm1hbmNlIGNvdW50ZXIgdmFsdWUuDQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgQHBhcmFt ICBQcmV2aW91c1RpY2sgICAgUG9pbnRlciB0byBQcmV2aW91c1RpY2sgY291bnQuDQo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24u DQo+ID4gPiA+ICsgIEByZXR1cm4gVGhlIGVsYXBzZWQgdGltZSBpbiBuYW5vc2Vjb25kcyBzaW5j ZSBQcmV2aW91c0NvdW50Lg0KPiA+ID4gPiArICAgICAgICAgIFByZXZpb3VzQ291bnQgaXMgb3Zl cndyaXR0ZW4gd2l0aCB0aGUgY3VycmVudCBwZXJmb3JtYW5jZQ0KPiA+ID4gPiArICAgICAgICAg IGNvdW50ZXIgdmFsdWUuDQo+ID4gPiA+ICsqKi8NCj4gPiA+ID4gK1VJTlQ2NA0KPiA+ID4gPiAr WGhjR2V0RWxhcHNlZFRpbWUgKA0KPiA+ID4gPiArICBJTiBPVVQgVUlOVDY0ICAqUHJldmlvdXNU aWNrDQo+ID4gPiA+ICsgICk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gICNlbmRpZg0KPiA+ID4gPiBk aWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPiA+ ID4gPiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaUR4ZS5pbmYNCj4gPiA+ID4g aW5kZXggNTg2NWQ4NjgyMi4uMThlZjg3OTE2YSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9k dWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpRHhlLmluZg0KPiA+ID4gPiArKysgYi9NZGVNb2R1 bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lEeGUuaW5mDQo+ID4gPiA+IEBAIC0zLDYgKzMsNyBA QA0KPiA+ID4gPiAgIyAgSXQgaW1wbGVtZW50cyB0aGUgaW50ZXJmYWNlcyBvZiBtb25pdG9yaW5n IHRoZSBzdGF0dXMgb2YgYWxsIA0KPiA+ID4gPiBwb3J0cyBhbmQgdHJhbnNmZXJyaW5nICAjICBD b250cm9sLCBCdWxrLCBJbnRlcnJ1cHQgYW5kIA0KPiA+ID4gPiBJc29jaHJvbm91cyByZXF1ZXN0 cyB0byB0aG9zZSBhdHRhY2hlZCB1c2IgTFMvRlMvSFMvU1MgZGV2aWNlcy4NCj4gPiA+ID4gICMN Cj4gPiA+ID4gKyMgIChDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlz ZSBEZXZlbG9wbWVudCANCj4gPiA+ID4gK0xQPEJSPg0KPiA+ID4gPiAgIyAgQ29weXJpZ2h0IChj KSAyMDExIC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ID4gPiA+IHJl c2VydmVkLjxCUj4gICMgICMNCj4gPiA+ID4gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQgQEAgLTU0LDYgKzU1LDcgQEANCj4gPiA+ID4gICAgQmFzZU1lbW9yeUxp Yg0KPiA+ID4gPiAgICBEZWJ1Z0xpYg0KPiA+ID4gPiAgICBSZXBvcnRTdGF0dXNDb2RlTGliDQo+ ID4gPiA+ICsgIFRpbWVyTGliDQo+ID4gPiA+DQo+ID4gPiA+ICBbR3VpZHNdDQo+ID4gPiA+ICAg IGdFZmlFdmVudEV4aXRCb290U2VydmljZXNHdWlkICAgICAgICAgICAgICAgICAjIyBTT01FVElN RVNfQ09OU1VNRVMNCj4gIyMNCj4gPiA+ID4gRXZlbnQNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL01k ZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVJlZy5jDQo+ID4gPiA+IGIvTWRlTW9kdWxl UGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpUmVnLmMNCj4gPiA+ID4gaW5kZXggNTcwMGZjNWZiOC4u MDdlNTc3NzJiNiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhj aUR4ZS9YaGNpUmVnLmMNCj4gPiA+ID4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4 ZS9YaGNpUmVnLmMNCj4gPiA+ID4gQEAgLTIsNiArMiw3IEBADQo+ID4gPiA+DQo+ID4gPiA+ICAg IFRoZSBYSENJIHJlZ2lzdGVyIG9wZXJhdGlvbiByb3V0aW5lcy4NCj4gPiA+ID4NCj4gPiA+ID4g KyhDKSBDb3B5cmlnaHQgMjAyMyBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVu dCANCj4gPiA+ID4gK0xQPEJSPg0KPiA+ID4gPiAgQ29weXJpZ2h0IChjKSAyMDExIC0gMjAxNywg SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ID4gPiA+IHJlc2VydmVkLjxCUj4NCj4g PiA+ID4gIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4g PiA+DQo+ID4gPiA+IEBAIC00MTcsMTUgKzQxOCwxNCBAQCBYaGNDbGVhck9wUmVnQml0ICgNCj4g PiA+ID4gICAgV2FpdCB0aGUgb3BlcmF0aW9uIHJlZ2lzdGVyJ3MgYml0IGFzIHNwZWNpZmllZCBi eSBCaXQNCj4gPiA+ID4gICAgdG8gYmVjb21lIHNldCAob3IgY2xlYXIpLg0KPiA+ID4gPg0KPiA+ ID4gPiAtICBAcGFyYW0gIFhoYyAgICAgICAgICAgICAgICAgICAgVGhlIFhIQ0kgSW5zdGFuY2Uu DQo+ID4gPiA+IC0gIEBwYXJhbSAgT2Zmc2V0ICAgICAgICAgICAgICAgICBUaGUgb2Zmc2V0IG9m IHRoZSBvcGVyYXRpb24gcmVnaXN0ZXIuDQo+ID4gPiA+IC0gIEBwYXJhbSAgQml0ICAgICAgICAg ICAgICAgICAgICBUaGUgYml0IG9mIHRoZSByZWdpc3RlciB0byB3YWl0IGZvci4NCj4gPiA+ID4g LSAgQHBhcmFtICBXYWl0VG9TZXQgICAgICAgICAgICAgIFdhaXQgdGhlIGJpdCB0byBzZXQgb3Ig Y2xlYXIuDQo+ID4gPiA+IC0gIEBwYXJhbSAgVGltZW91dCAgICAgICAgICAgICAgICBUaGUgdGlt ZSB0byB3YWl0IGJlZm9yZSBhYm9ydCAoaW4NCj4gbWlsbGlzZWNvbmQsDQo+ID4gPiA+IG1zKS4N Cj4gPiA+ID4gKyAgQHBhcmFtICBYaGMgICAgICAgICAgVGhlIFhIQ0kgSW5zdGFuY2UuDQo+ID4g PiA+ICsgIEBwYXJhbSAgT2Zmc2V0ICAgICAgIFRoZSBvZmZzZXQgb2YgdGhlIG9wZXJhdGlvbiBy ZWdpc3Rlci4NCj4gPiA+ID4gKyAgQHBhcmFtICBCaXQgICAgICAgICAgVGhlIGJpdCBvZiB0aGUg cmVnaXN0ZXIgdG8gd2FpdCBmb3IuDQo+ID4gPiA+ICsgIEBwYXJhbSAgV2FpdFRvU2V0ICAgIFdh aXQgdGhlIGJpdCB0byBzZXQgb3IgY2xlYXIuDQo+ID4gPiA+ICsgIEBwYXJhbSAgVGltZW91dCAg ICAgIFRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIGFib3J0IChpbiBtaWxsaXNlY29uZCwNCj4gbXMp Lg0KPiA+ID4gPg0KPiA+ID4gPiAtICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhl IGJpdCBzdWNjZXNzZnVsbHkgY2hhbmdlZCBieSBob3N0DQo+ID4gY29udHJvbGxlci4NCj4gPiA+ ID4gLSAgQHJldHZhbCBFRklfVElNRU9VVCAgICAgICAgICAgIFRoZSB0aW1lIG91dCBvY2N1cnJl ZC4NCj4gPiA+ID4gLSAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgIE1lbW9yeSBmb3Ig dGhlIHRpbWVyIGV2ZW50IGNvdWxkDQo+ID4gbm90DQo+ID4gPiA+IGJlIGFsbG9jYXRlZC4NCj4g PiA+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgVGhlIGJpdCBzdWNjZXNzZnVsbHkgY2hhbmdl ZCBieSBob3N0IGNvbnRyb2xsZXIuDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX1RJTUVPVVQgIFRo ZSB0aW1lIG91dCBvY2N1cnJlZC4NCj4gPiA+ID4NCj4gPiA+ID4gICoqLw0KPiA+ID4gPiAgRUZJ X1NUQVRVUw0KPiA+ID4gPiBAQCAtNDM3LDU0ICs0MzcsMzUgQEAgWGhjV2FpdE9wUmVnQml0ICgN Cj4gPiA+ID4gICAgSU4gVUlOVDMyICAgICAgICAgICAgIFRpbWVvdXQNCj4gPiA+ID4gICAgKQ0K PiA+ID4gPiAgew0KPiA+ID4gPiAtICBFRklfU1RBVFVTICBTdGF0dXM7DQo+ID4gPiA+IC0gIEVG SV9FVkVOVCAgIFRpbWVvdXRFdmVudDsNCj4gPiA+ID4gLQ0KPiA+ID4gPiAtICBUaW1lb3V0RXZl bnQgPSBOVUxMOw0KPiA+ID4gPiArICBVSU5UNjQgIFRpbWVvdXRUaW1lOw0KPiA+ID4gPiArICBV SU5UNjQgIEVsYXBzZWRUaW1lOw0KPiA+ID4gPiArICBVSU5UNjQgIFRpbWVEZWx0YTsNCj4gPiA+ ID4gKyAgVUlOVDY0ICBDdXJyZW50VGljazsNCj4gPiA+ID4NCj4gPiA+ID4gICAgaWYgKFRpbWVv dXQgPT0gMCkgew0KPiA+ID4gPiAgICAgIHJldHVybiBFRklfVElNRU9VVDsNCj4gPiA+ID4gICAg fQ0KPiA+ID4gPg0KPiA+ID4gPiAtICBTdGF0dXMgPSBnQlMtPkNyZWF0ZUV2ZW50ICgNCj4gPiA+ ID4gLSAgICAgICAgICAgICAgICAgIEVWVF9USU1FUiwNCj4gPiA+ID4gLSAgICAgICAgICAgICAg ICAgIFRQTF9DQUxMQkFDSywNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4g PiA+IC0gICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAg JlRpbWVvdXRFdmVudA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+ID4gLQ0K PiA+ID4gPiAtICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+IC0gICAgZ290byBE T05FOw0KPiA+ID4gPiAtICB9DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgU3RhdHVzID0gZ0JTLT5T ZXRUaW1lciAoDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBUaW1lb3V0RXZlbnQsDQo+ID4g PiA+IC0gICAgICAgICAgICAgICAgICBUaW1lclJlbGF0aXZlLA0KPiA+ID4gPiAtICAgICAgICAg ICAgICAgICAgRUZJX1RJTUVSX1BFUklPRF9NSUxMSVNFQ09ORFMgKFRpbWVvdXQpDQo+ID4gPiA+ IC0gICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0gIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCj4gPiA+ID4gLSAgICBnb3RvIERPTkU7DQo+ID4gPiA+IC0gIH0NCj4g PiA+ID4gKyAgVGltZW91dFRpbWUgPSBYSENfTUlDUk9TRUNPTkRfVE9fTkFOT1NFQ09ORA0KPiA+ ICgoVUlOVDY0KVRpbWVvdXQNCj4gPiA+ID4gKg0KPiA+ID4gPiArIFhIQ18xX01JTExJU0VDT05E KTsgIEVsYXBzZWRUaW1lID0gMDsgIEN1cnJlbnRUaWNrID0gDQo+ID4gPiA+ICsgR2V0UGVyZm9y bWFuY2VDb3VudGVyICgpOw0KPiA+ID4gPg0KPiA+ID4gPiAgICBkbyB7DQo+ID4gPiA+ICAgICAg aWYgKFhIQ19SRUdfQklUX0lTX1NFVCAoWGhjLCBPZmZzZXQsIEJpdCkgPT0gV2FpdFRvU2V0KSB7 DQo+ID4gPiA+IC0gICAgICBTdGF0dXMgPSBFRklfU1VDQ0VTUzsNCj4gPiA+ID4gLSAgICAgIGdv dG8gRE9ORTsNCj4gPiA+ID4gKyAgICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiA+ID4gICAg ICB9DQo+ID4gPiA+DQo+ID4gPiA+ICAgICAgZ0JTLT5TdGFsbCAoWEhDXzFfTUlDUk9TRUNPTkQp Ow0KPiA+ID4gPiAtICB9IHdoaWxlIChFRklfRVJST1IgKGdCUy0+Q2hlY2tFdmVudCAoVGltZW91 dEV2ZW50KSkpOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0gIFN0YXR1cyA9IEVGSV9USU1FT1VUOw0K PiA+ID4gPiArICAgIFRpbWVEZWx0YSA9IFhoY0dldEVsYXBzZWRUaW1lICgmQ3VycmVudFRpY2sp Ow0KPiA+ID4gPiArICAgIC8vIEVuc3VyZSB0aGF0IEVsYXBzZWRUaW1lIGlzIGFsd2F5cyBpbmNy ZW1lbnRlZCB0byBhdm9pZCANCj4gPiA+ID4gKyBpbmRlZmluaXRlDQo+ID4gPiA+IGhhbmdzDQo+ ID4gPiA+ICsgICAgaWYgKFRpbWVEZWx0YSA9PSAwKSB7DQo+ID4gPiA+ICsgICAgICBUaW1lRGVs dGEgPSBYSENfTUlDUk9TRUNPTkRfVE9fTkFOT1NFQ09ORA0KPiA+ID4gPiAoWEhDXzFfTUlDUk9T RUNPTkQpOw0KPiA+ID4gPiArICAgIH0NCj4gPiA+ID4NCj4gPiA+ID4gLURPTkU6DQo+ID4gPiA+ IC0gIGlmIChUaW1lb3V0RXZlbnQgIT0gTlVMTCkgew0KPiA+ID4gPiAtICAgIGdCUy0+Q2xvc2VF dmVudCAoVGltZW91dEV2ZW50KTsNCj4gPiA+ID4gLSAgfQ0KPiA+ID4gPiArICAgIEVsYXBzZWRU aW1lICs9IFRpbWVEZWx0YTsNCj4gPiA+ID4gKyAgfSB3aGlsZSAoRWxhcHNlZFRpbWUgPCBUaW1l b3V0VGltZSk7DQo+ID4gPiA+DQo+ID4gPiA+IC0gIHJldHVybiBTdGF0dXM7DQo+ID4gPiA+ICsg IHJldHVybiBFRklfVElNRU9VVDsNCj4gPiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gIC8qKg0K PiA+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2No ZWQuYw0KPiA+ID4gPiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1hoY2lEeGUvWGhjaVNjaGVkLmMN Cj4gPiA+ID4gaW5kZXggNTM0MjFlNjRhOC4uN2Q0YjdhNzY5ZCAxMDA2NDQNCj4gPiA+ID4gLS0t IGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvWGhjaUR4ZS9YaGNpU2NoZWQuYw0KPiA+ID4gPiArKysg Yi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9YaGNpRHhlL1hoY2lTY2hlZC5jDQo+ID4gPiA+IEBAIC0y LDYgKzIsNyBAQA0KPiA+ID4gPg0KPiA+ID4gPiAgICBYSENJIHRyYW5zZmVyIHNjaGVkdWxpbmcg cm91dGluZXMuDQo+ID4gPiA+DQo+ID4gPiA+ICsoQykgQ29weXJpZ2h0IDIwMjMgSGV3bGV0dCBQ YWNrYXJkIEVudGVycHJpc2UgRGV2ZWxvcG1lbnQgDQo+ID4gPiA+ICtMUDxCUj4NCj4gPiA+ID4g IENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IA0KPiA+ID4gPiByZXNlcnZlZC48QlI+IENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0 aW9uLjxCUj4gIA0KPiA+ID4gPiBDb3B5cmlnaHQNCj4gPiA+ID4gKEMpIDIwMjIgQWR2YW5jZWQg TWljcm8gRGV2aWNlcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gDQo+ID4gPiA+IEBA DQo+ID4gPiA+IC0NCj4gPiAxMjc2LDE1ICsxMjc3LDE0IEBAIEVYSVQ6DQo+ID4gPiA+ICAvKioN Cj4gPiA+ID4gICAgRXhlY3V0ZSB0aGUgdHJhbnNmZXIgYnkgcG9sbGluZyB0aGUgVVJCLiBUaGlz IGlzIGEgDQo+ID4gPiA+IHN5bmNocm9ub3VzDQo+IG9wZXJhdGlvbi4NCj4gPiA+ID4NCj4gPiA+ ID4gLSAgQHBhcmFtICBYaGMgICAgICAgICAgICAgICAgICAgIFRoZSBYSENJIEluc3RhbmNlLg0K PiA+ID4gPiAtICBAcGFyYW0gIENtZFRyYW5zZmVyICAgICAgICAgICAgVGhlIGV4ZWN1dGVkIFVS QiBpcyBmb3IgY21kIHRyYW5zZmVyIG9yDQo+ID4gbm90Lg0KPiA+ID4gPiAtICBAcGFyYW0gIFVy YiAgICAgICAgICAgICAgICAgICAgVGhlIFVSQiB0byBleGVjdXRlLg0KPiA+ID4gPiAtICBAcGFy YW0gIFRpbWVvdXQgICAgICAgICAgICAgICAgVGhlIHRpbWUgdG8gd2FpdCBiZWZvcmUgYWJvcnQs IGluDQo+IG1pbGxpc2Vjb25kLg0KPiA+ID4gPiArICBAcGFyYW0gIFhoYyAgICAgICAgICAgICAg IFRoZSBYSENJIEluc3RhbmNlLg0KPiA+ID4gPiArICBAcGFyYW0gIENtZFRyYW5zZmVyICAgICAg IFRoZSBleGVjdXRlZCBVUkIgaXMgZm9yIGNtZCB0cmFuc2ZlciBvcg0KPiBub3QuDQo+ID4gPiA+ ICsgIEBwYXJhbSAgVXJiICAgICAgICAgICAgICAgVGhlIFVSQiB0byBleGVjdXRlLg0KPiA+ID4g PiArICBAcGFyYW0gIFRpbWVvdXQgICAgICAgICAgIFRoZSB0aW1lIHRvIHdhaXQgYmVmb3JlIGFi b3J0LCBpbiBtaWxsaXNlY29uZC4NCj4gPiA+ID4NCj4gPiA+ID4gLSAgQHJldHVybiBFRklfREVW SUNFX0VSUk9SICAgICAgIFRoZSB0cmFuc2ZlciBmYWlsZWQgZHVlIHRvIHRyYW5zZmVyDQo+IGVy cm9yLg0KPiA+ID4gPiAtICBAcmV0dXJuIEVGSV9USU1FT1VUICAgICAgICAgICAgVGhlIHRyYW5z ZmVyIGZhaWxlZCBkdWUgdG8gdGltZSBvdXQuDQo+ID4gPiA+IC0gIEByZXR1cm4gRUZJX1NVQ0NF U1MgICAgICAgICAgICBUaGUgdHJhbnNmZXIgZmluaXNoZWQgT0suDQo+ID4gPiA+IC0gIEByZXR2 YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgICBNZW1vcnkgZm9yIHRoZSB0aW1lciBldmVudCBjb3Vs ZA0KPiA+IG5vdA0KPiA+ID4gPiBiZSBhbGxvY2F0ZWQuDQo+ID4gPiA+ICsgIEByZXR1cm4gRUZJ X0RFVklDRV9FUlJPUiAgVGhlIHRyYW5zZmVyIGZhaWxlZCBkdWUgdG8gdHJhbnNmZXIgZXJyb3Iu DQo+ID4gPiA+ICsgIEByZXR1cm4gRUZJX1RJTUVPVVQgICAgICAgVGhlIHRyYW5zZmVyIGZhaWxl ZCBkdWUgdG8gdGltZSBvdXQuDQo+ID4gPiA+ICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MgICAgICAg VGhlIHRyYW5zZmVyIGZpbmlzaGVkIE9LLg0KPiA+ID4gPg0KPiA+ID4gPiAgKiovDQo+ID4gPiA+ ICBFRklfU1RBVFVTDQo+ID4gPiA+IEBAIC0xMjk5LDEyICsxMjk5LDE0IEBAIFhoY0V4ZWNUcmFu c2ZlciAoDQo+ID4gPiA+ICAgIFVJTlQ4ICAgICAgIFNsb3RJZDsNCj4gPiA+ID4gICAgVUlOVDgg ICAgICAgRGNpOw0KPiA+ID4gPiAgICBCT09MRUFOICAgICBGaW5pc2hlZDsNCj4gPiA+ID4gLSAg RUZJX0VWRU5UICAgVGltZW91dEV2ZW50Ow0KPiA+ID4gPiArICBVSU5UNjQgICAgICBUaW1lb3V0 VGltZTsNCj4gPiA+ID4gKyAgVUlOVDY0ICAgICAgRWxhcHNlZFRpbWU7DQo+ID4gPiA+ICsgIFVJ TlQ2NCAgICAgIFRpbWVEZWx0YTsNCj4gPiA+ID4gKyAgVUlOVDY0ICAgICAgQ3VycmVudFRpY2s7 DQo+ID4gPiA+ICAgIEJPT0xFQU4gICAgIEluZGVmaW5pdGVUaW1lb3V0Ow0KPiA+ID4gPg0KPiA+ ID4gPiAgICBTdGF0dXMgICAgICAgICAgICA9IEVGSV9TVUNDRVNTOw0KPiA+ID4gPiAgICBGaW5p c2hlZCAgICAgICAgICA9IEZBTFNFOw0KPiA+ID4gPiAtICBUaW1lb3V0RXZlbnQgICAgICA9IE5V TEw7DQo+ID4gPiA+ICAgIEluZGVmaW5pdGVUaW1lb3V0ID0gRkFMU0U7DQo+ID4gPiA+DQo+ID4g PiA+ICAgIGlmIChDbWRUcmFuc2Zlcikgew0KPiA+ID4gPiBAQCAtMTMyMiwzNCArMTMyNCwxNCBA QCBYaGNFeGVjVHJhbnNmZXIgKA0KPiA+ID4gPg0KPiA+ID4gPiAgICBpZiAoVGltZW91dCA9PSAw KSB7DQo+ID4gPiA+ICAgICAgSW5kZWZpbml0ZVRpbWVvdXQgPSBUUlVFOw0KPiA+ID4gPiAtICAg IGdvdG8gUklOR0RPT1JCRUxMOw0KPiA+ID4gPiAtICB9DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAg U3RhdHVzID0gZ0JTLT5DcmVhdGVFdmVudCAoDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBF VlRfVElNRVIsDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBUUExfQ0FMTEJBQ0ssDQo+ID4g PiA+IC0gICAgICAgICAgICAgICAgICBOVUxMLA0KPiA+ID4gPiAtICAgICAgICAgICAgICAgICAg TlVMTCwNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICZUaW1lb3V0RXZlbnQNCj4gPiA+ID4g LSAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiA+IC0NCj4gPiA+ID4gLSAgaWYgKEVGSV9FUlJP UiAoU3RhdHVzKSkgew0KPiA+ID4gPiAtICAgIGdvdG8gRE9ORTsNCj4gPiA+ID4gICAgfQ0KPiA+ ID4gPg0KPiA+ID4gPiAtICBTdGF0dXMgPSBnQlMtPlNldFRpbWVyICgNCj4gPiA+ID4gLSAgICAg ICAgICAgICAgICAgIFRpbWVvdXRFdmVudCwNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgIFRp bWVyUmVsYXRpdmUsDQo+ID4gPiA+IC0gICAgICAgICAgICAgICAgICBFRklfVElNRVJfUEVSSU9E X01JTExJU0VDT05EUyAoVGltZW91dCkNCj4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICk7DQo+ ID4gPiA+IC0NCj4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiAt ICAgIGdvdG8gRE9ORTsNCj4gPiA+ID4gLSAgfQ0KPiA+ID4gPiAtDQo+ID4gPiA+IC1SSU5HRE9P UkJFTEw6DQo+ID4gPiA+ICAgIFhoY1JpbmdEb29yQmVsbCAoWGhjLCBTbG90SWQsIERjaSk7DQo+ ID4gPiA+DQo+ID4gPiA+ICsgIFRpbWVvdXRUaW1lID0gWEhDX01JQ1JPU0VDT05EX1RPX05BTk9T RUNPTkQNCj4gPiAoKFVJTlQ2NClUaW1lb3V0DQo+ID4gPiA+ICoNCj4gPiA+ID4gKyBYSENfMV9N SUxMSVNFQ09ORCk7ICBFbGFwc2VkVGltZSA9IDA7ICBDdXJyZW50VGljayA9IA0KPiA+ID4gPiAr IEdldFBlcmZvcm1hbmNlQ291bnRlciAoKTsNCj4gPiA+ID4gKw0KPiA+ID4gPiAgICBkbyB7DQo+ ID4gPiA+ICAgICAgRmluaXNoZWQgPSBYaGNDaGVja1VyYlJlc3VsdCAoWGhjLCBVcmIpOw0KPiA+ ID4gPiAgICAgIGlmIChGaW5pc2hlZCkgew0KPiA+ID4gPiBAQCAtMTM1NywyMiArMTMzOSwyMiBA QCBSSU5HRE9PUkJFTEw6DQo+ID4gPiA+ICAgICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgICAgIGdC Uy0+U3RhbGwgKFhIQ18xX01JQ1JPU0VDT05EKTsNCj4gPiA+ID4gLSAgfSB3aGlsZSAoSW5kZWZp bml0ZVRpbWVvdXQgfHwgRUZJX0VSUk9SIChnQlMtPkNoZWNrRXZlbnQgDQo+ID4gPiA+IChUaW1l b3V0RXZlbnQpKSk7DQo+ID4gPiA+ICsgICAgVGltZURlbHRhID0gWGhjR2V0RWxhcHNlZFRpbWUg KCZDdXJyZW50VGljayk7DQo+ID4gPiA+ICsgICAgLy8gRW5zdXJlIHRoYXQgRWxhcHNlZFRpbWUg aXMgYWx3YXlzIGluY3JlbWVudGVkIHRvIGF2b2lkIA0KPiA+ID4gPiArIGluZGVmaW5pdGUNCj4g PiA+ID4gaGFuZ3MNCj4gPiA+ID4gKyAgICBpZiAoVGltZURlbHRhID09IDApIHsNCj4gPiA+ID4g KyAgICAgIFRpbWVEZWx0YSA9IFhIQ19NSUNST1NFQ09ORF9UT19OQU5PU0VDT05EDQo+ID4gPiA+ IChYSENfMV9NSUNST1NFQ09ORCk7DQo+ID4gPiA+ICsgICAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAt RE9ORToNCj4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiAtICAg IFVyYi0+UmVzdWx0ID0gRUZJX1VTQl9FUlJfTk9URVhFQ1VURTsNCj4gPiA+ID4gLSAgfSBlbHNl IGlmICghRmluaXNoZWQpIHsNCj4gPiA+ID4gKyAgICBFbGFwc2VkVGltZSArPSBUaW1lRGVsdGE7 DQo+ID4gPiA+ICsgIH0gd2hpbGUgKEluZGVmaW5pdGVUaW1lb3V0IHx8IEVsYXBzZWRUaW1lIDwg VGltZW91dFRpbWUpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIGlmICghRmluaXNoZWQpIHsNCj4g PiA+ID4gICAgICBVcmItPlJlc3VsdCA9IEVGSV9VU0JfRVJSX1RJTUVPVVQ7DQo+ID4gPiA+ICAg ICAgU3RhdHVzICAgICAgPSBFRklfVElNRU9VVDsNCj4gPiA+ID4gICAgfSBlbHNlIGlmIChVcmIt PlJlc3VsdCAhPSBFRklfVVNCX05PRVJST1IpIHsNCj4gPiA+ID4gICAgICBTdGF0dXMgPSBFRklf REVWSUNFX0VSUk9SOw0KPiA+ID4gPiAgICB9DQo+ID4gPiA+DQo+ID4gPiA+IC0gIGlmIChUaW1l b3V0RXZlbnQgIT0gTlVMTCkgew0KPiA+ID4gPiAtICAgIGdCUy0+Q2xvc2VFdmVudCAoVGltZW91 dEV2ZW50KTsNCj4gPiA+ID4gLSAgfQ0KPiA+ID4gPiAtDQo+ID4gPiA+ICAgIHJldHVybiBTdGF0 dXM7DQo+ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4gPiA+IC0tDQo+ID4gPiA+IDIuMzQuMQ0KPiA+ ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4g Pg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4N Cj4gPiA+DQo+ID4gPg0KPiANCj4gDQo+IA0KPiANCj4gDQoNCg0KCi09LT0tPS09LT0tPS09LT0t PS09LT0tCkdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8g dGhpcyBncm91cC4KVmlldy9SZXBseSBPbmxpbmUgKCMxMDg0NDcpOiBodHRwczovL2VkazIuZ3Jv dXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8xMDg0NDcKTXV0ZSBUaGlzIFRvcGljOiBodHRwczovL2dy b3Vwcy5pby9tdC8xMDA3Mzk1MDgvNzY4NjE3NgpHcm91cCBPd25lcjogZGV2ZWwrb3duZXJAZWRr Mi5ncm91cHMuaW8KVW5zdWJzY3JpYmU6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91 bnN1YiBbcmViZWNjYUBvcGVuZncuaW9dCi09LT0tPS09LT0tPS09LT0tPS09LT0tCgoNCg==