From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 12381C2BAEE for ; Tue, 24 Mar 2020 05:02:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AF2A120724 for ; Tue, 24 Mar 2020 05:02:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="gYKCNV64" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726178AbgCXFCv (ORCPT ); Tue, 24 Mar 2020 01:02:51 -0400 Received: from mail-eopbgr150072.outbound.protection.outlook.com ([40.107.15.72]:7149 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725934AbgCXFCu (ORCPT ); Tue, 24 Mar 2020 01:02:50 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b3nviNUIIpycf0cxhfHP/h4jy/0MRjLyIp+PJE5Lsfn2u10ru1n5ejtiNNObhu/j0FDeHOr18oEKQozDKPzZW03NPTfGdx66+wZqs0XvM+cdNKWV3xua3iJnOz6ftT7FCileEfoq0A6JReBIzOEvBUpmlk6Gilp9Udw1HLS7SnTTkQojBtYhNhEmtsC8cfncfisYTNtUO/oqGWG6Dpvy6XFrK7vZW4uVVdIYT5ThwqwUvlCxHqPnh1pkblkS7/GmnwXeNiij1cQmwe1mQOYvnVjEqQqnbAeNfDNFrfE5mRmVVW6v8pFwBPqvUeG3nW3GMq61+Ubg11T6+hyaTGqKMA== 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-SenderADCheck; bh=TAl0pSrpNv9+Q1XTGXzYg+HAZnCUiXkQuOtVGpS7HHQ=; b=LZCN+umeAKYBmQjG5El/+KA+szIiTfzoA3EpPi9VGTzdhSeI5RilNXufLtQkyYaN8ulCTOhoi0jbtjT2FExpARJ0+wuzALvKvbklI3VxTzHpw77H+XZQAv7XRJSM5xf0xSWQj3PbTfan+nmWgdrZEXv1FALXy52USB8QyB45o4+Ug1wQyXeD7Zq95kiI+ek4+K1Lfja3/g+W6IMDRl0kQiYZq7xUWW/8h1cfpgqY5HytclN+4d0FWUh9ZR1oHdaW+sEOKb2EZrNfEr2qAYSQYJN1RAlkPAh4ei1mVA9ugDcTkGkk7QI3X1JxOyykJ7yrusP60gqDkOC2zHPRI3/Tgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TAl0pSrpNv9+Q1XTGXzYg+HAZnCUiXkQuOtVGpS7HHQ=; b=gYKCNV64bGhF8Rctwwe/6A3jKi0ipNMTgf0w5wHpJnz4jV09zA+s6cy+46TxxnclsyfxolaD78wUTTi0gqdVggZuHxFpTRe3FfegQkIBHd9c2l6T50BghnGX5Ift+KKFcgeDLcIghNMyo0oU7omiacEaNmjw4ILGTmHg3UGK6vo= Received: from AM7PR04MB6885.eurprd04.prod.outlook.com (10.141.174.88) by AM7PR04MB6949.eurprd04.prod.outlook.com (10.141.171.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.22; Tue, 24 Mar 2020 04:46:58 +0000 Received: from AM7PR04MB6885.eurprd04.prod.outlook.com ([fe80::dcc0:6a0:c64b:9f94]) by AM7PR04MB6885.eurprd04.prod.outlook.com ([fe80::dcc0:6a0:c64b:9f94%2]) with mapi id 15.20.2835.021; Tue, 24 Mar 2020 04:46:58 +0000 From: "Y.b. Lu" To: Vladimir Oltean CC: lkml , netdev , "David S . Miller" , Richard Cochran , Vladimir Oltean , Claudiu Manoil , Andrew Lunn , Vivien Didelot , Florian Fainelli , Alexandre Belloni , Microchip Linux Driver Support Subject: RE: [PATCH 1/6] ptp: move ocelot ptp clock code out of Ethernet driver Thread-Topic: [PATCH 1/6] ptp: move ocelot ptp clock code out of Ethernet driver Thread-Index: AQHV/qQNgUjr04PxXk6xYW6zrv50NKhRrk0AgAV9e0A= Date: Tue, 24 Mar 2020 04:46:58 +0000 Message-ID: References: <20200320103726.32559-1-yangbo.lu@nxp.com> <20200320103726.32559-2-yangbo.lu@nxp.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=yangbo.lu@nxp.com; x-originating-ip: [92.121.36.198] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 8ebc7497-adb1-47b3-a22e-08d7cfae62cd x-ms-traffictypediagnostic: AM7PR04MB6949:|AM7PR04MB6949: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 03524FBD26 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(376002)(366004)(136003)(346002)(39860400002)(396003)(30864003)(5660300002)(76116006)(52536014)(66446008)(64756008)(66476007)(66946007)(478600001)(66556008)(71200400001)(81156014)(8676002)(81166006)(7416002)(8936002)(86362001)(54906003)(6506007)(4326008)(9686003)(186003)(53546011)(2906002)(7696005)(6916009)(55016002)(33656002)(26005)(316002)(559001)(579004);DIR:OUT;SFP:1101;SCL:1;SRVR:AM7PR04MB6949;H:AM7PR04MB6885.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9UcVz24bKCjB+rt+02eYjWdV5qfPXMp/ZxyI8RQPwPJ6njrliyhCcs0feFvZRiFXOpa7/dL/b4WKyP57hTxKCm6hjdePML4OoWmzP0iUT7jwEMEqEA3Bm0DA9M17bxokX19tRWKOiNTJMblgwWsAcxmo4o3w5ec0pwXs7THxPOLXyXr42TReidZF/tyNGgJuBczRzotxzmJF+9Z0Q4X6NeGnwSWC3SG5cs4YSSWKarbXBlufbz0bpg7h0bNbVzGgl1nCRiKO8jaV1aD4jErQUinh1firwfiS4GVUgX5azxkaumwwbENYtYFiBSlYJfjpyai2E9eM/e8kKoIdvwQwvBhqpji7CrmW0lhsZJ/96NBmyHUZbOogRFuHqW/bN1lzZ5gZvaxturt+uGqR14ODK17OTqWk3PX8WXHEDNlhrj940Z99VO6R6lir/B+gPsFm x-ms-exchange-antispam-messagedata: NRCA8CtIgNsw9RYRTULGPuiwKh6mF2FPtPuYIq/l+JHjCZBNf6sdF30II35lF6V8Iqi1eB1PA2ECNLBOSSTSPGIffHo85fiAiu3/W1fPfVHdS6gSFojOg8wQtJblfgMd8qorDfync1L+8Wu7UYsMOw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8ebc7497-adb1-47b3-a22e-08d7cfae62cd X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2020 04:46:58.4480 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PlC+MN449LTPAyySBvQi42wulyq5FOlvrXG9GY5uUVaWDDxcZyz7L5jfKRuCW0qXNxQGPn7D9q5m2x0J3reSrg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB6949 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org SGkgVmxhZGltaXIsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVmxh ZGltaXIgT2x0ZWFuIDxvbHRlYW52QGdtYWlsLmNvbT4NCj4gU2VudDogU2F0dXJkYXksIE1hcmNo IDIxLCAyMDIwIDEyOjM3IEFNDQo+IFRvOiBZLmIuIEx1IDx5YW5nYm8ubHVAbnhwLmNvbT4NCj4g Q2M6IGxrbWwgPGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc+OyBuZXRkZXYgPG5ldGRldkB2 Z2VyLmtlcm5lbC5vcmc+Ow0KPiBEYXZpZCBTIC4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PjsgUmljaGFyZCBDb2NocmFuDQo+IDxyaWNoYXJkY29jaHJhbkBnbWFpbC5jb20+OyBWbGFkaW1p ciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBueHAuY29tPjsNCj4gQ2xhdWRpdSBNYW5vaWwgPGNs YXVkaXUubWFub2lsQG54cC5jb20+OyBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+Ow0KPiBW aXZpZW4gRGlkZWxvdCA8dml2aWVuLmRpZGVsb3RAZ21haWwuY29tPjsgRmxvcmlhbiBGYWluZWxs aQ0KPiA8Zi5mYWluZWxsaUBnbWFpbC5jb20+OyBBbGV4YW5kcmUgQmVsbG9uaSA8YWxleGFuZHJl LmJlbGxvbmlAYm9vdGxpbi5jb20+Ow0KPiBNaWNyb2NoaXAgTGludXggRHJpdmVyIFN1cHBvcnQg PFVOR0xpbnV4RHJpdmVyQG1pY3JvY2hpcC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMS82 XSBwdHA6IG1vdmUgb2NlbG90IHB0cCBjbG9jayBjb2RlIG91dCBvZiBFdGhlcm5ldA0KPiBkcml2 ZXINCj4gDQo+IEkgaGF0ZSB0byBiZSB0aGF0IGd1eSB3aG8gcmVwb3J0cyBidWlsZCBlcnJvciBi ZWZvcmUgdGhlIEtidWlsZCByb2JvdA0KPiBkb2VzLCBidXQgaGVyZSBnb2VzLg0KPiANCj4gT24g RnJpLCAyMCBNYXIgMjAyMCBhdCAxMjo0MSwgWWFuZ2JvIEx1IDx5YW5nYm8ubHVAbnhwLmNvbT4g d3JvdGU6DQo+ID4NCj4gPiBUaGUgT2NlbG90IFBUUCBjbG9jayBkcml2ZXIgaGFkIGJlZW4gZW1i ZWRkZWQgaW50byBvY2Vsb3QuYyBkcml2ZXIuDQo+ID4gSXQgaGFkIHN1cHBvcnRlZCBiYXNpYyBn ZXR0aW1lNjQvc2V0dGltZTY0L2FkanRpbWUvYWRqZmluZSBmdW5jdGlvbnMNCj4gPiBieSBub3cg d2hpY2ggd2VyZSB1c2VkIGJ5IGJvdGggT2NlbG90IHN3aXRjaCBhbmQgRmVsaXggc3dpdGNoLg0K PiA+DQo+ID4gVGhpcyBwYXRjaCBpcyB0byBtb3ZlIGN1cnJlbnQgcHRwIGNsb2NrIGNvZGUgb3V0 IG9mIG9jZWxvdC5jIGRyaXZlcg0KPiA+IG1haW50YWluaW5nIGFzIGEgc2luZ2xlIHB0cF9vY2Vs b3QuYyBkcml2ZXIuDQo+ID4gRm9yIGZ1dGhlciBuZXcgZmVhdHVyZXMgaW1wbGVtZW50YXRpb24s IHRoZSBjb21tb24gY29kZSBjb3VsZCBiZSBwdXQNCj4gPiBpbiBwdHBfb2NlbG90LmMgZHJpdmVy IGFuZCB0aGUgc3dpdGNoIHNwZWNpZmljIGNvZGUgc2hvdWxkIGJlIGluDQo+ID4gc3BlY2lmaWMg c3dpdGNoIGRyaXZlci4gVGhlIGludGVycnVwdCBpbXBsZW1lbnRhdGlvbiBpbiBTb0MgaXMgZGlm ZmVyZW50DQo+ID4gYmV0d2VlbiBPY2Vsb3QgYW5kIEZlbGl4Lg0KPiA+DQo+ID4gU2lnbmVkLW9m Zi1ieTogWWFuZ2JvIEx1IDx5YW5nYm8ubHVAbnhwLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVy cy9uZXQvZHNhL29jZWxvdC9mZWxpeC5jICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0NCj4g PiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYyAgICAgICAgICAgICAgICAgfCAy MDEgKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICBkcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29j ZWxvdC5oICAgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiA+ICBkcml2ZXJzL25ldC9ldGhlcm5l dC9tc2NjL29jZWxvdF9ib2FyZC5jICAgICAgICAgICB8ICAgMSArDQo+ID4gIGRyaXZlcnMvcHRw L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsNCj4gPiAgZHJp dmVycy9wdHAvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKw0K PiA+ICBkcml2ZXJzL3B0cC9wdHBfb2NlbG90LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDIxNw0KPiArKysrKysrKysrKysrKysrKysrKysNCj4gPiAgaW5jbHVkZS9zb2MvbXNjYy9vY2Vs b3QuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQ0KPiA+ICAuLi4vbmV0L2V0aGVy bmV0ID0+IGluY2x1ZGUvc29jfS9tc2NjL29jZWxvdF9wdHAuaCB8ICAgMSArDQo+ID4gIGluY2x1 ZGUvc29jL21zY2MvcHRwX29jZWxvdC5oICAgICAgICAgICAgICAgICAgICAgIHwgIDM0ICsrKysN Cj4gPiAgMTAgZmlsZXMgY2hhbmdlZCwgMjcxIGluc2VydGlvbnMoKyksIDIwMSBkZWxldGlvbnMo LSkNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcHRwL3B0cF9vY2Vsb3QuYw0KPiA+ ICByZW5hbWUge2RyaXZlcnMvbmV0L2V0aGVybmV0ID0+IGluY2x1ZGUvc29jfS9tc2NjL29jZWxv dF9wdHAuaCAoOTclKQ0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9zb2MvbXNjYy9w dHBfb2NlbG90LmgNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2Evb2NlbG90 L2ZlbGl4LmMgYi9kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4LmMNCj4gPiBpbmRleCA2OTU0 NjM4Li45ZjllZmI5IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVs aXguYw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVsaXguYw0KPiA+IEBAIC04 LDYgKzgsNyBAQA0KPiA+ICAjaW5jbHVkZSA8c29jL21zY2Mvb2NlbG90X2Rldi5oPg0KPiA+ICAj aW5jbHVkZSA8c29jL21zY2Mvb2NlbG90X2FuYS5oPg0KPiA+ICAjaW5jbHVkZSA8c29jL21zY2Mv b2NlbG90Lmg+DQo+ID4gKyNpbmNsdWRlIDxzb2MvbXNjYy9wdHBfb2NlbG90Lmg+DQo+ID4gICNp bmNsdWRlIDxsaW51eC9wYWNraW5nLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4N Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L29mX25ldC5oPg0KPiA+IEBAIC01NzYsNyArNTc3LDcgQEAg c3RhdGljIGJvb2wgZmVsaXhfcnh0c3RhbXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQNCj4g cG9ydCwNCj4gPiAgICAgICAgIHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCA9IGRzLT5wcml2Ow0KPiA+ ICAgICAgICAgdTggKmV4dHJhY3Rpb24gPSBza2ItPmRhdGEgLSBFVEhfSExFTiAtIE9DRUxPVF9U QUdfTEVOOw0KPiA+ICAgICAgICAgdTMyIHRzdGFtcF9sbywgdHN0YW1wX2hpOw0KPiA+IC0gICAg ICAgc3RydWN0IHRpbWVzcGVjNjQgdHM7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCB0 cyA9IHswLCAwfTsNCj4gPiAgICAgICAgIHU2NCB0c3RhbXAsIHZhbDsNCj4gPg0KPiA+ICAgICAg ICAgb2NlbG90X3B0cF9nZXR0aW1lNjQoJm9jZWxvdC0+cHRwX2luZm8sICZ0cyk7DQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90LmMNCj4gYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jDQo+ID4gaW5kZXggZGMwZTI3My4uYjM0MmJiZCAx MDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jDQo+ID4g KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYw0KPiA+IEBAIC0yMSw2ICsy MSw3IEBADQo+ID4gICNpbmNsdWRlIDxuZXQvbmV0ZXZlbnQuaD4NCj4gPiAgI2luY2x1ZGUgPG5l dC9ydG5ldGxpbmsuaD4NCj4gPiAgI2luY2x1ZGUgPG5ldC9zd2l0Y2hkZXYuaD4NCj4gPiArI2lu Y2x1ZGUgPHNvYy9tc2NjL3B0cF9vY2Vsb3QuaD4NCj4gPg0KPiA+ICAjaW5jbHVkZSAib2NlbG90 LmgiDQo+ID4gICNpbmNsdWRlICJvY2Vsb3RfYWNlLmgiDQo+ID4gQEAgLTE5ODksMjAwICsxOTkw LDYgQEAgc3RydWN0IG5vdGlmaWVyX2Jsb2NrDQo+IG9jZWxvdF9zd2l0Y2hkZXZfYmxvY2tpbmdf bmIgX19yZWFkX21vc3RseSA9IHsNCj4gPiAgfTsNCj4gPiAgRVhQT1JUX1NZTUJPTChvY2Vsb3Rf c3dpdGNoZGV2X2Jsb2NraW5nX25iKTsNCj4gPg0KPiA+IC1pbnQgb2NlbG90X3B0cF9nZXR0aW1l NjQoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHN0cnVjdCB0aW1lc3BlYzY0ICp0cykNCj4g PiAtew0KPiA+IC0gICAgICAgc3RydWN0IG9jZWxvdCAqb2NlbG90ID0gY29udGFpbmVyX29mKHB0 cCwgc3RydWN0IG9jZWxvdCwgcHRwX2luZm8pOw0KPiA+IC0gICAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsNCj4gPiAtICAgICAgIHRpbWU2NF90IHM7DQo+ID4gLSAgICAgICB1MzIgdmFsOw0KPiA+ IC0gICAgICAgczY0IG5zOw0KPiA+IC0NCj4gPiAtICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZv Y2Vsb3QtPnB0cF9jbG9ja19sb2NrLCBmbGFncyk7DQo+ID4gLQ0KPiA+IC0gICAgICAgdmFsID0g b2NlbG90X3JlYWRfcml4KG9jZWxvdCwgUFRQX1BJTl9DRkcsIFRPRF9BQ0NfUElOKTsNCj4gPiAt ICAgICAgIHZhbCAmPSB+KFBUUF9QSU5fQ0ZHX1NZTkMgfCBQVFBfUElOX0NGR19BQ1RJT05fTUFT SyB8DQo+IFBUUF9QSU5fQ0ZHX0RPTSk7DQo+ID4gLSAgICAgICB2YWwgfD0gUFRQX1BJTl9DRkdf QUNUSU9OKFBUUF9QSU5fQUNUSU9OX1NBVkUpOw0KPiA+IC0gICAgICAgb2NlbG90X3dyaXRlX3Jp eChvY2Vsb3QsIHZhbCwgUFRQX1BJTl9DRkcsIFRPRF9BQ0NfUElOKTsNCj4gPiAtDQo+ID4gLSAg ICAgICBzID0gb2NlbG90X3JlYWRfcml4KG9jZWxvdCwgUFRQX1BJTl9UT0RfU0VDX01TQiwgVE9E X0FDQ19QSU4pDQo+ICYgMHhmZmZmOw0KPiA+IC0gICAgICAgcyA8PD0gMzI7DQo+ID4gLSAgICAg ICBzICs9IG9jZWxvdF9yZWFkX3JpeChvY2Vsb3QsIFBUUF9QSU5fVE9EX1NFQ19MU0IsIFRPRF9B Q0NfUElOKTsNCj4gPiAtICAgICAgIG5zID0gb2NlbG90X3JlYWRfcml4KG9jZWxvdCwgUFRQX1BJ Tl9UT0RfTlNFQywgVE9EX0FDQ19QSU4pOw0KPiA+IC0NCj4gPiAtICAgICAgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJm9jZWxvdC0+cHRwX2Nsb2NrX2xvY2ssIGZsYWdzKTsNCj4gPiAtDQo+ID4g LSAgICAgICAvKiBEZWFsIHdpdGggbmVnYXRpdmUgdmFsdWVzICovDQo+ID4gLSAgICAgICBpZiAo bnMgPj0gMHgzZmZmZmZmMCAmJiBucyA8PSAweDNmZmZmZmZmKSB7DQo+ID4gLSAgICAgICAgICAg ICAgIHMtLTsNCj4gPiAtICAgICAgICAgICAgICAgbnMgJj0gMHhmOw0KPiA+IC0gICAgICAgICAg ICAgICBucyArPSA5OTk5OTk5ODQ7DQo+ID4gLSAgICAgICB9DQo+ID4gLQ0KPiA+IC0gICAgICAg c2V0X25vcm1hbGl6ZWRfdGltZXNwZWM2NCh0cywgcywgbnMpOw0KPiA+IC0gICAgICAgcmV0dXJu IDA7DQo+ID4gLX0NCj4gPiAtRVhQT1JUX1NZTUJPTChvY2Vsb3RfcHRwX2dldHRpbWU2NCk7DQo+ ID4gLQ0KPiA+IC1zdGF0aWMgaW50IG9jZWxvdF9wdHBfc2V0dGltZTY0KHN0cnVjdCBwdHBfY2xv Y2tfaW5mbyAqcHRwLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHRpbWVzcGVjNjQgKnRzKQ0KPiA+IC17DQo+ID4gLSAgICAgICBzdHJ1Y3Qgb2NlbG90 ICpvY2Vsb3QgPSBjb250YWluZXJfb2YocHRwLCBzdHJ1Y3Qgb2NlbG90LCBwdHBfaW5mbyk7DQo+ ID4gLSAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiA+IC0gICAgICAgdTMyIHZhbDsNCj4g PiAtDQo+ID4gLSAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmb2NlbG90LT5wdHBfY2xvY2tfbG9j aywgZmxhZ3MpOw0KPiA+IC0NCj4gPiAtICAgICAgIHZhbCA9IG9jZWxvdF9yZWFkX3JpeChvY2Vs b3QsIFBUUF9QSU5fQ0ZHLCBUT0RfQUNDX1BJTik7DQo+ID4gLSAgICAgICB2YWwgJj0gfihQVFBf UElOX0NGR19TWU5DIHwgUFRQX1BJTl9DRkdfQUNUSU9OX01BU0sgfA0KPiBQVFBfUElOX0NGR19E T00pOw0KPiA+IC0gICAgICAgdmFsIHw9IFBUUF9QSU5fQ0ZHX0FDVElPTihQVFBfUElOX0FDVElP Tl9JRExFKTsNCj4gPiAtDQo+ID4gLSAgICAgICBvY2Vsb3Rfd3JpdGVfcml4KG9jZWxvdCwgdmFs LCBQVFBfUElOX0NGRywgVE9EX0FDQ19QSU4pOw0KPiA+IC0NCj4gPiAtICAgICAgIG9jZWxvdF93 cml0ZV9yaXgob2NlbG90LCBsb3dlcl8zMl9iaXRzKHRzLT50dl9zZWMpLA0KPiBQVFBfUElOX1RP RF9TRUNfTFNCLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICBUT0RfQUNDX1BJTik7DQo+ ID4gLSAgICAgICBvY2Vsb3Rfd3JpdGVfcml4KG9jZWxvdCwgdXBwZXJfMzJfYml0cyh0cy0+dHZf c2VjKSwNCj4gUFRQX1BJTl9UT0RfU0VDX01TQiwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgVE9EX0FDQ19QSU4pOw0KPiA+IC0gICAgICAgb2NlbG90X3dyaXRlX3JpeChvY2Vsb3QsIHRz LT50dl9uc2VjLCBQVFBfUElOX1RPRF9OU0VDLA0KPiBUT0RfQUNDX1BJTik7DQo+ID4gLQ0KPiA+ IC0gICAgICAgdmFsID0gb2NlbG90X3JlYWRfcml4KG9jZWxvdCwgUFRQX1BJTl9DRkcsIFRPRF9B Q0NfUElOKTsNCj4gPiAtICAgICAgIHZhbCAmPSB+KFBUUF9QSU5fQ0ZHX1NZTkMgfCBQVFBfUElO X0NGR19BQ1RJT05fTUFTSyB8DQo+IFBUUF9QSU5fQ0ZHX0RPTSk7DQo+ID4gLSAgICAgICB2YWwg fD0gUFRQX1BJTl9DRkdfQUNUSU9OKFBUUF9QSU5fQUNUSU9OX0xPQUQpOw0KPiA+IC0NCj4gPiAt ICAgICAgIG9jZWxvdF93cml0ZV9yaXgob2NlbG90LCB2YWwsIFBUUF9QSU5fQ0ZHLCBUT0RfQUND X1BJTik7DQo+ID4gLQ0KPiA+IC0gICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb2NlbG90 LT5wdHBfY2xvY2tfbG9jaywgZmxhZ3MpOw0KPiA+IC0gICAgICAgcmV0dXJuIDA7DQo+ID4gLX0N Cj4gPiAtDQo+ID4gLXN0YXRpYyBpbnQgb2NlbG90X3B0cF9hZGp0aW1lKHN0cnVjdCBwdHBfY2xv Y2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpDQo+ID4gLXsNCj4gPiAtICAgICAgIGlmIChkZWx0YSA+ IC0oTlNFQ19QRVJfU0VDIC8gMikgJiYgZGVsdGEgPCAoTlNFQ19QRVJfU0VDIC8gMikpIHsNCj4g PiAtICAgICAgICAgICAgICAgc3RydWN0IG9jZWxvdCAqb2NlbG90ID0gY29udGFpbmVyX29mKHB0 cCwgc3RydWN0IG9jZWxvdCwNCj4gcHRwX2luZm8pOw0KPiA+IC0gICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIGZsYWdzOw0KPiA+IC0gICAgICAgICAgICAgICB1MzIgdmFsOw0KPiA+IC0NCj4g PiAtICAgICAgICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJm9jZWxvdC0+cHRwX2Nsb2NrX2xv Y2ssIGZsYWdzKTsNCj4gPiAtDQo+ID4gLSAgICAgICAgICAgICAgIHZhbCA9IG9jZWxvdF9yZWFk X3JpeChvY2Vsb3QsIFBUUF9QSU5fQ0ZHLA0KPiBUT0RfQUNDX1BJTik7DQo+ID4gLSAgICAgICAg ICAgICAgIHZhbCAmPSB+KFBUUF9QSU5fQ0ZHX1NZTkMgfA0KPiBQVFBfUElOX0NGR19BQ1RJT05f TUFTSyB8IFBUUF9QSU5fQ0ZHX0RPTSk7DQo+ID4gLSAgICAgICAgICAgICAgIHZhbCB8PSBQVFBf UElOX0NGR19BQ1RJT04oUFRQX1BJTl9BQ1RJT05fSURMRSk7DQo+ID4gLQ0KPiA+IC0gICAgICAg ICAgICAgICBvY2Vsb3Rfd3JpdGVfcml4KG9jZWxvdCwgdmFsLCBQVFBfUElOX0NGRywgVE9EX0FD Q19QSU4pOw0KPiA+IC0NCj4gPiAtICAgICAgICAgICAgICAgb2NlbG90X3dyaXRlX3JpeChvY2Vs b3QsIDAsIFBUUF9QSU5fVE9EX1NFQ19MU0IsDQo+IFRPRF9BQ0NfUElOKTsNCj4gPiAtICAgICAg ICAgICAgICAgb2NlbG90X3dyaXRlX3JpeChvY2Vsb3QsIDAsIFBUUF9QSU5fVE9EX1NFQ19NU0Is DQo+IFRPRF9BQ0NfUElOKTsNCj4gPiAtICAgICAgICAgICAgICAgb2NlbG90X3dyaXRlX3JpeChv Y2Vsb3QsIGRlbHRhLCBQVFBfUElOX1RPRF9OU0VDLA0KPiBUT0RfQUNDX1BJTik7DQo+ID4gLQ0K PiA+IC0gICAgICAgICAgICAgICB2YWwgPSBvY2Vsb3RfcmVhZF9yaXgob2NlbG90LCBQVFBfUElO X0NGRywNCj4gVE9EX0FDQ19QSU4pOw0KPiA+IC0gICAgICAgICAgICAgICB2YWwgJj0gfihQVFBf UElOX0NGR19TWU5DIHwNCj4gUFRQX1BJTl9DRkdfQUNUSU9OX01BU0sgfCBQVFBfUElOX0NGR19E T00pOw0KPiA+IC0gICAgICAgICAgICAgICB2YWwgfD0gUFRQX1BJTl9DRkdfQUNUSU9OKFBUUF9Q SU5fQUNUSU9OX0RFTFRBKTsNCj4gPiAtDQo+ID4gLSAgICAgICAgICAgICAgIG9jZWxvdF93cml0 ZV9yaXgob2NlbG90LCB2YWwsIFBUUF9QSU5fQ0ZHLCBUT0RfQUNDX1BJTik7DQo+ID4gLQ0KPiA+ IC0gICAgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZvY2Vsb3QtPnB0cF9jbG9j a19sb2NrLCBmbGFncyk7DQo+ID4gLSAgICAgICB9IGVsc2Ugew0KPiA+IC0gICAgICAgICAgICAg ICAvKiBGYWxsIGJhY2sgdXNpbmcgb2NlbG90X3B0cF9zZXR0aW1lNjQgd2hpY2ggaXMgbm90IGV4 YWN0Lg0KPiAqLw0KPiA+IC0gICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWM2NCB0czsNCj4g PiAtICAgICAgICAgICAgICAgdTY0IG5vdzsNCj4gPiAtDQo+ID4gLSAgICAgICAgICAgICAgIG9j ZWxvdF9wdHBfZ2V0dGltZTY0KHB0cCwgJnRzKTsNCj4gPiAtDQo+ID4gLSAgICAgICAgICAgICAg IG5vdyA9IGt0aW1lX3RvX25zKHRpbWVzcGVjNjRfdG9fa3RpbWUodHMpKTsNCj4gPiAtICAgICAg ICAgICAgICAgdHMgPSBuc190b190aW1lc3BlYzY0KG5vdyArIGRlbHRhKTsNCj4gPiAtDQo+ID4g LSAgICAgICAgICAgICAgIG9jZWxvdF9wdHBfc2V0dGltZTY0KHB0cCwgJnRzKTsNCj4gPiAtICAg ICAgIH0NCj4gPiAtICAgICAgIHJldHVybiAwOw0KPiA+IC19DQo+ID4gLQ0KPiA+IC1zdGF0aWMg aW50IG9jZWxvdF9wdHBfYWRqZmluZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgbG9uZyBz Y2FsZWRfcHBtKQ0KPiA+IC17DQo+ID4gLSAgICAgICBzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QgPSBj b250YWluZXJfb2YocHRwLCBzdHJ1Y3Qgb2NlbG90LCBwdHBfaW5mbyk7DQo+ID4gLSAgICAgICB1 MzIgdW5pdCA9IDAsIGRpcmVjdGlvbiA9IDA7DQo+ID4gLSAgICAgICB1bnNpZ25lZCBsb25nIGZs YWdzOw0KPiA+IC0gICAgICAgdTY0IGFkaiA9IDA7DQo+ID4gLQ0KPiA+IC0gICAgICAgc3Bpbl9s b2NrX2lycXNhdmUoJm9jZWxvdC0+cHRwX2Nsb2NrX2xvY2ssIGZsYWdzKTsNCj4gPiAtDQo+ID4g LSAgICAgICBpZiAoIXNjYWxlZF9wcG0pDQo+ID4gLSAgICAgICAgICAgICAgIGdvdG8gZGlzYWJs ZV9hZGo7DQo+ID4gLQ0KPiA+IC0gICAgICAgaWYgKHNjYWxlZF9wcG0gPCAwKSB7DQo+ID4gLSAg ICAgICAgICAgICAgIGRpcmVjdGlvbiA9IFBUUF9DRkdfQ0xLX0FESl9DRkdfRElSOw0KPiA+IC0g ICAgICAgICAgICAgICBzY2FsZWRfcHBtID0gLXNjYWxlZF9wcG07DQo+ID4gLSAgICAgICB9DQo+ ID4gLQ0KPiA+IC0gICAgICAgYWRqID0gUFNFQ19QRVJfU0VDIDw8IDE2Ow0KPiA+IC0gICAgICAg ZG9fZGl2KGFkaiwgc2NhbGVkX3BwbSk7DQo+ID4gLSAgICAgICBkb19kaXYoYWRqLCAxMDAwKTsN Cj4gPiAtDQo+ID4gLSAgICAgICAvKiBJZiB0aGUgYWRqdXN0bWVudCB2YWx1ZSBpcyB0b28gbGFy Z2UsIHVzZSBucyBpbnN0ZWFkICovDQo+ID4gLSAgICAgICBpZiAoYWRqID49ICgxTCA8PCAzMCkp IHsNCj4gPiAtICAgICAgICAgICAgICAgdW5pdCA9IFBUUF9DRkdfQ0xLX0FESl9GUkVRX05TOw0K PiA+IC0gICAgICAgICAgICAgICBkb19kaXYoYWRqLCAxMDAwKTsNCj4gPiAtICAgICAgIH0NCj4g PiAtDQo+ID4gLSAgICAgICAvKiBTdGlsbCB0b28gYmlnICovDQo+ID4gLSAgICAgICBpZiAoYWRq ID49ICgxTCA8PCAzMCkpDQo+ID4gLSAgICAgICAgICAgICAgIGdvdG8gZGlzYWJsZV9hZGo7DQo+ ID4gLQ0KPiA+IC0gICAgICAgb2NlbG90X3dyaXRlKG9jZWxvdCwgdW5pdCB8IGFkaiwgUFRQX0NM S19DRkdfQURKX0ZSRVEpOw0KPiA+IC0gICAgICAgb2NlbG90X3dyaXRlKG9jZWxvdCwgUFRQX0NG R19DTEtfQURKX0NGR19FTkEgfCBkaXJlY3Rpb24sDQo+ID4gLSAgICAgICAgICAgICAgICAgICAg UFRQX0NMS19DRkdfQURKX0NGRyk7DQo+ID4gLQ0KPiA+IC0gICAgICAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmb2NlbG90LT5wdHBfY2xvY2tfbG9jaywgZmxhZ3MpOw0KPiA+IC0gICAgICAgcmV0 dXJuIDA7DQo+ID4gLQ0KPiA+IC1kaXNhYmxlX2FkajoNCj4gPiAtICAgICAgIG9jZWxvdF93cml0 ZShvY2Vsb3QsIDAsIFBUUF9DTEtfQ0ZHX0FESl9DRkcpOw0KPiA+IC0NCj4gPiAtICAgICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJm9jZWxvdC0+cHRwX2Nsb2NrX2xvY2ssIGZsYWdzKTsNCj4g PiAtICAgICAgIHJldHVybiAwOw0KPiA+IC19DQo+ID4gLQ0KPiA+IC1zdGF0aWMgc3RydWN0IHB0 cF9jbG9ja19pbmZvIG9jZWxvdF9wdHBfY2xvY2tfaW5mbyA9IHsNCj4gPiAtICAgICAgIC5vd25l ciAgICAgICAgICA9IFRISVNfTU9EVUxFLA0KPiA+IC0gICAgICAgLm5hbWUgICAgICAgICAgID0g Im9jZWxvdCBwdHAiLA0KPiA+IC0gICAgICAgLm1heF9hZGogICAgICAgID0gMHg3ZmZmZmZmZiwN Cj4gPiAtICAgICAgIC5uX2FsYXJtICAgICAgICA9IDAsDQo+ID4gLSAgICAgICAubl9leHRfdHMg ICAgICAgPSAwLA0KPiA+IC0gICAgICAgLm5fcGVyX291dCAgICAgID0gMCwNCj4gPiAtICAgICAg IC5uX3BpbnMgICAgICAgICA9IDAsDQo+ID4gLSAgICAgICAucHBzICAgICAgICAgICAgPSAwLA0K PiA+IC0gICAgICAgLmdldHRpbWU2NCAgICAgID0gb2NlbG90X3B0cF9nZXR0aW1lNjQsDQo+ID4g LSAgICAgICAuc2V0dGltZTY0ICAgICAgPSBvY2Vsb3RfcHRwX3NldHRpbWU2NCwNCj4gPiAtICAg ICAgIC5hZGp0aW1lICAgICAgICA9IG9jZWxvdF9wdHBfYWRqdGltZSwNCj4gPiAtICAgICAgIC5h ZGpmaW5lICAgICAgICA9IG9jZWxvdF9wdHBfYWRqZmluZSwNCj4gPiAtfTsNCj4gPiAtDQo+ID4g LXN0YXRpYyBpbnQgb2NlbG90X2luaXRfdGltZXN0YW1wKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCkN Cj4gPiAtew0KPiA+IC0gICAgICAgc3RydWN0IHB0cF9jbG9jayAqcHRwX2Nsb2NrOw0KPiA+IC0N Cj4gPiAtICAgICAgIG9jZWxvdC0+cHRwX2luZm8gPSBvY2Vsb3RfcHRwX2Nsb2NrX2luZm87DQo+ ID4gLSAgICAgICBwdHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoJm9jZWxvdC0+cHRwX2lu Zm8sIG9jZWxvdC0+ZGV2KTsNCj4gPiAtICAgICAgIGlmIChJU19FUlIocHRwX2Nsb2NrKSkNCj4g PiAtICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIocHRwX2Nsb2NrKTsNCj4gPiAtICAgICAg IC8qIENoZWNrIGlmIFBIQyBzdXBwb3J0IGlzIG1pc3NpbmcgYXQgdGhlIGNvbmZpZ3VyYXRpb24g bGV2ZWwgKi8NCj4gPiAtICAgICAgIGlmICghcHRwX2Nsb2NrKQ0KPiA+IC0gICAgICAgICAgICAg ICByZXR1cm4gMDsNCj4gPiAtDQo+ID4gLSAgICAgICBvY2Vsb3QtPnB0cF9jbG9jayA9IHB0cF9j bG9jazsNCj4gPiAtDQo+ID4gLSAgICAgICBvY2Vsb3Rfd3JpdGUob2NlbG90LCBTWVNfUFRQX0NG R19QVFBfU1RBTVBfV0lEKDMwKSwNCj4gU1lTX1BUUF9DRkcpOw0KPiA+IC0gICAgICAgb2NlbG90 X3dyaXRlKG9jZWxvdCwgMHhmZmZmZmZmZiwgQU5BX1RBQkxFU19QVFBfSURfTE9XKTsNCj4gPiAt ICAgICAgIG9jZWxvdF93cml0ZShvY2Vsb3QsIDB4ZmZmZmZmZmYsIEFOQV9UQUJMRVNfUFRQX0lE X0hJR0gpOw0KPiA+IC0NCj4gPiAtICAgICAgIG9jZWxvdF93cml0ZShvY2Vsb3QsIFBUUF9DRkdf TUlTQ19QVFBfRU4sIFBUUF9DRkdfTUlTQyk7DQo+ID4gLQ0KPiA+IC0gICAgICAgLyogVGhlcmUg aXMgbm8gZGV2aWNlIHJlY29uZmlndXJhdGlvbiwgUFRQIFJ4IHN0YW1waW5nIGlzIGFsd2F5cw0K PiA+IC0gICAgICAgICogZW5hYmxlZC4NCj4gPiAtICAgICAgICAqLw0KPiA+IC0gICAgICAgb2Nl bG90LT5od3RzdGFtcF9jb25maWcucnhfZmlsdGVyID0NCj4gSFdUU1RBTVBfRklMVEVSX1BUUF9W Ml9FVkVOVDsNCj4gPiAtDQo+ID4gLSAgICAgICByZXR1cm4gMDsNCj4gPiAtfQ0KPiA+IC0NCj4g PiAgLyogQ29uZmlndXJlIHRoZSBtYXhpbXVtIFNEVSAoTDIgcGF5bG9hZCkgb24gUlggdG8gdGhl IHZhbHVlIHNwZWNpZmllZCBpbg0KPiBAc2R1Lg0KPiA+ICAgKiBUaGUgbGVuZ3RoIG9mIFZMQU4g dGFncyBpcyBhY2NvdW50ZWQgZm9yIGF1dG9tYXRpY2FsbHkgdmlhDQo+IERFVl9NQUNfVEFHU19D RkcuDQo+ID4gICAqLw0KPiA+IEBAIC0yNTA3LDcgKzIzMTQsOCBAQCBpbnQgb2NlbG90X2luaXQo c3RydWN0IG9jZWxvdCAqb2NlbG90KQ0KPiA+ICAgICAgICAgICAgICAgICByZXQgPSBvY2Vsb3Rf aW5pdF90aW1lc3RhbXAob2NlbG90KTsNCj4gPiAgICAgICAgICAgICAgICAgaWYgKHJldCkgew0K PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9lcnIob2NlbG90LT5kZXYsDQo+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGltZXN0YW1wIGluaXRpYWxpemF0aW9uIGZh aWxlZFxuIik7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGltZXN0YW1w IG5vdCBlbmFibGVkIG9yDQo+IGluaXRpYWxpemF0aW9uIGZhaWxlZFxuIik7DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgb2NlbG90LT5wdHAgPSAwOw0KPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+ID4gICAgICAgICAgICAgICAgIH0NCj4gPiAgICAgICAgIH0N Cj4gPiBAQCAtMjUyNCw4ICsyMzMyLDcgQEAgdm9pZCBvY2Vsb3RfZGVpbml0KHN0cnVjdCBvY2Vs b3QgKm9jZWxvdCkNCj4gPiAgICAgICAgIGNhbmNlbF9kZWxheWVkX3dvcmsoJm9jZWxvdC0+c3Rh dHNfd29yayk7DQo+ID4gICAgICAgICBkZXN0cm95X3dvcmtxdWV1ZShvY2Vsb3QtPnN0YXRzX3F1 ZXVlKTsNCj4gPiAgICAgICAgIG11dGV4X2Rlc3Ryb3koJm9jZWxvdC0+c3RhdHNfbG9jayk7DQo+ ID4gLSAgICAgICBpZiAob2NlbG90LT5wdHBfY2xvY2spDQo+ID4gLSAgICAgICAgICAgICAgIHB0 cF9jbG9ja191bnJlZ2lzdGVyKG9jZWxvdC0+cHRwX2Nsb2NrKTsNCj4gPiArICAgICAgIG9jZWxv dF9kZWluaXRfdGltZXN0YW1wKG9jZWxvdCk7DQo+ID4NCj4gPiAgICAgICAgIGZvciAoaSA9IDA7 IGkgPCBvY2Vsb3QtPm51bV9waHlzX3BvcnRzOyBpKyspIHsNCj4gPiAgICAgICAgICAgICAgICAg cG9ydCA9IG9jZWxvdC0+cG9ydHNbaV07DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21zY2Mvb2NlbG90LmgNCj4gYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxv dC5oDQo+ID4gaW5kZXggZTM0ZWY4My4uNWFhMmU0NSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5oDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbXNjYy9vY2Vsb3QuaA0KPiA+IEBAIC0xNSwxOCArMTUsMTcgQEANCj4gPiAgI2luY2x1ZGUg PGxpbnV4L3BoeS5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvcGh5L3BoeS5oPg0KPiA+ICAjaW5j bHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ID4gLSNpbmNsdWRlIDxsaW51eC9wdHBf Y2xvY2tfa2VybmVsLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4NCj4gPg0KPiA+ ICAjaW5jbHVkZSA8c29jL21zY2Mvb2NlbG90X3FzeXMuaD4NCj4gPiAgI2luY2x1ZGUgPHNvYy9t c2NjL29jZWxvdF9zeXMuaD4NCj4gPiAgI2luY2x1ZGUgPHNvYy9tc2NjL29jZWxvdF9kZXYuaD4N Cj4gPiAgI2luY2x1ZGUgPHNvYy9tc2NjL29jZWxvdF9hbmEuaD4NCj4gPiArI2luY2x1ZGUgPHNv Yy9tc2NjL29jZWxvdF9wdHAuaD4NCj4gPiAgI2luY2x1ZGUgPHNvYy9tc2NjL29jZWxvdC5oPg0K PiA+ICAjaW5jbHVkZSAib2NlbG90X3Jldy5oIg0KPiA+ICAjaW5jbHVkZSAib2NlbG90X3FzLmgi DQo+ID4gICNpbmNsdWRlICJvY2Vsb3RfdGMuaCINCj4gPiAtI2luY2x1ZGUgIm9jZWxvdF9wdHAu aCINCj4gPg0KPiA+ICAjZGVmaW5lIE9DRUxPVF9CVUZGRVJfQ0VMTF9TWiA2MA0KPiA+DQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X2JvYXJkLmMNCj4g Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9ib2FyZC5jDQo+ID4gaW5kZXggMGFj OWZiZjcuLjdlNTljZWUgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNj Yy9vY2Vsb3RfYm9hcmQuYw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2Nl bG90X2JvYXJkLmMNCj4gPiBAQCAtMTQsNiArMTQsNyBAQA0KPiA+ICAjaW5jbHVkZSA8bGludXgv c2tidWZmLmg+DQo+ID4gICNpbmNsdWRlIDxuZXQvc3dpdGNoZGV2Lmg+DQo+ID4NCj4gPiArI2lu Y2x1ZGUgPHNvYy9tc2NjL3B0cF9vY2Vsb3QuaD4NCj4gPiAgI2luY2x1ZGUgPHNvYy9tc2NjL29j ZWxvdF92Y2FwLmg+DQo+ID4gICNpbmNsdWRlICJvY2Vsb3QuaCINCj4gPg0KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3B0cC9LY29uZmlnIGIvZHJpdmVycy9wdHAvS2NvbmZpZw0KPiA+IGluZGV4 IDg2NDAwYzcuLmFjMDhlOWMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9wdHAvS2NvbmZpZw0K PiA+ICsrKyBiL2RyaXZlcnMvcHRwL0tjb25maWcNCj4gPiBAQCAtMTUxLDQgKzE1MSwxNCBAQCBj b25maWcgUFRQXzE1ODhfQ0xPQ0tfVk1XDQo+ID4gICAgICAgICAgIFRvIGNvbXBpbGUgdGhpcyBk cml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUNCj4gPiAgICAgICAg ICAgd2lsbCBiZSBjYWxsZWQgcHRwX3Ztdy4NCj4gPg0KPiA+ICtjb25maWcgUFRQXzE1ODhfQ0xP Q0tfT0NFTE9UDQo+ID4gKyAgICAgICBib29sICJNaWNyb3NlbWkgT2NlbG90IGFzIFBUUCBjbG9j ayINCj4gDQo+IFdoeSBib29sIGFuZCBub3QgdHJpc3RhdGU/IENvbXBpbGF0aW9uIGJyZWFrcyB3 aGVuDQo+IE1TQ0NfT0NFTE9UX1NXSVRDSD1tIGJlY2F1c2UgaXQgZm9yY2VzIFBUUF8xNTg4X0NM T0NLX09DRUxPVD15Lg0KDQpUaGUgb2NlbG90IGRyaXZlciAoTVNDQ19PQ0VMT1RfU1dJVENIKSB3 YXMgZGVzaWduZWQgYXMgZHJpdmVyIG1vZHVsZSBwcm92aWRpbmcganVzdCBmdW5jdGlvbnMuDQpO b3cgSSBhbSBhd2FyZSB0aGF0IGRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2MvIHNob3VsZCBzdGls bCBiZSB0aGUgYmV0dGVyIHBsYWNlIHRvIHB1dCB0aGUgcHRwIGRyaXZlciwgaWYgd2UganVzdCBt b3ZlIGNvbW1vbiBwdHAgZnVuY3Rpb25zIG91dC4NClRoZSBwdHAgZHJpdmVyIHNob3VsZCBiZSBi b29sIGZvciBidWlsZGluZyBpbnRvIG1vZHVsZSBvZiBNU0NDX09DRUxPVF9TV0lUQ0gsIHByb3Zp ZGluZyBmdW5jdGlvbnMgdG8gb2NlbG90IHBsYXRmb3JtIG9yIGZlbGl4IHBsYXRmb3JtLg0KDQpB bmQgSSdkIGxpa2UgdG8gZG8gYW5vdGhlciBjaGFuZ2VzIHRvIG1vdmUgb2NlbG90X2luaXRfdGlt ZXN0YW1wL29jZWxvdF9kZWluaXRfdGltZXN0YW1wIGNhbGxpbmcgdG8gb2NlbG90X2JvYXJkLmMg YW5kIGZlbGl4LmMuDQpCZWNhdXNlIHRoZSBwdHAgY2FwYWJpbGl0aWVzIHdpbGwgYmUgZGlmZmVy ZW50IGJldHdlZW4gdGhlbSBpbiBkZXZlbG9wbWVudCBzdGFnZSBzaW5jZSB0aGV5IGhhdmUgZGlm ZmVyZW50IGludGVycnVwdCBpbXBsZW1lbnRhdGlvbiBpbiBoYXJkd2FyZS4NCg0KVGhhbmtzLg0K DQo+IA0KPiBkcml2ZXJzL3B0cC9wdHBfb2NlbG90Lm86IEluIGZ1bmN0aW9uIGBvY2Vsb3RfcHRw X3NldHRpbWU2NCc6DQo+IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0cC9wdHBfb2Nl bG90LmM6NTY6IHVuZGVmaW5lZCByZWZlcmVuY2UNCj4gdG8gYF9fb2NlbG90X3JlYWRfaXgnDQo+ IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0cC9wdHBfb2NlbG90LmM6NjA6IHVuZGVm aW5lZCByZWZlcmVuY2UNCj4gdG8gYF9fb2NlbG90X3dyaXRlX2l4Jw0KPiAvb3B0L2xzMTAyOGFy ZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjYyOiB1bmRlZmluZWQgcmVmZXJlbmNl DQo+IHRvIGBfX29jZWxvdF93cml0ZV9peCcNCj4gL29wdC9sczEwMjhhcmRiLWxpbnV4L2RyaXZl cnMvcHRwL3B0cF9vY2Vsb3QuYzo2NDogdW5kZWZpbmVkIHJlZmVyZW5jZQ0KPiB0byBgX19vY2Vs b3Rfd3JpdGVfaXgnDQo+IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0cC9wdHBfb2Nl bG90LmM6NjY6IHVuZGVmaW5lZCByZWZlcmVuY2UNCj4gdG8gYF9fb2NlbG90X3dyaXRlX2l4Jw0K PiAvb3B0L2xzMTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjY4OiB1bmRl ZmluZWQgcmVmZXJlbmNlDQo+IHRvIGBfX29jZWxvdF9yZWFkX2l4Jw0KPiAvb3B0L2xzMTAyOGFy ZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjcyOiB1bmRlZmluZWQgcmVmZXJlbmNl DQo+IHRvIGBfX29jZWxvdF93cml0ZV9peCcNCj4gZHJpdmVycy9wdHAvcHRwX29jZWxvdC5vOiBJ biBmdW5jdGlvbiBgb2NlbG90X3B0cF9hZGpmaW5lJzoNCj4gL29wdC9sczEwMjhhcmRiLWxpbnV4 L2RyaXZlcnMvcHRwL3B0cF9vY2Vsb3QuYzoxNjE6IHVuZGVmaW5lZA0KPiByZWZlcmVuY2UgdG8g YF9fb2NlbG90X3dyaXRlX2l4Jw0KPiAvb3B0L2xzMTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAv cHRwX29jZWxvdC5jOjE1MzogdW5kZWZpbmVkDQo+IHJlZmVyZW5jZSB0byBgX19vY2Vsb3Rfd3Jp dGVfaXgnDQo+IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0cC9wdHBfb2NlbG90LmM6 MTU0OiB1bmRlZmluZWQNCj4gcmVmZXJlbmNlIHRvIGBfX29jZWxvdF93cml0ZV9peCcNCj4gZHJp dmVycy9wdHAvcHRwX29jZWxvdC5vOiBJbiBmdW5jdGlvbiBgb2NlbG90X3B0cF9nZXR0aW1lNjQn Og0KPiAvb3B0L2xzMTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjIzOiB1 bmRlZmluZWQgcmVmZXJlbmNlDQo+IHRvIGBfX29jZWxvdF9yZWFkX2l4Jw0KPiAvb3B0L2xzMTAy OGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjI2OiB1bmRlZmluZWQgcmVmZXJl bmNlDQo+IHRvIGBfX29jZWxvdF93cml0ZV9peCcNCj4gL29wdC9sczEwMjhhcmRiLWxpbnV4L2Ry aXZlcnMvcHRwL3B0cF9vY2Vsb3QuYzoyODogdW5kZWZpbmVkIHJlZmVyZW5jZQ0KPiB0byBgX19v Y2Vsb3RfcmVhZF9peCcNCj4gL29wdC9sczEwMjhhcmRiLWxpbnV4L2RyaXZlcnMvcHRwL3B0cF9v Y2Vsb3QuYzozMDogdW5kZWZpbmVkIHJlZmVyZW5jZQ0KPiB0byBgX19vY2Vsb3RfcmVhZF9peCcN Cj4gL29wdC9sczEwMjhhcmRiLWxpbnV4L2RyaXZlcnMvcHRwL3B0cF9vY2Vsb3QuYzozMTogdW5k ZWZpbmVkIHJlZmVyZW5jZQ0KPiB0byBgX19vY2Vsb3RfcmVhZF9peCcNCj4gZHJpdmVycy9wdHAv cHRwX29jZWxvdC5vOiBJbiBmdW5jdGlvbiBgb2NlbG90X3B0cF9lbmFibGUnOg0KPiAvb3B0L2xz MTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjIzMTogdW5kZWZpbmVkDQo+ IHJlZmVyZW5jZSB0byBgX19vY2Vsb3Rfd3JpdGVfaXgnDQo+IC9vcHQvbHMxMDI4YXJkYi1saW51 eC9kcml2ZXJzL3B0cC9wdHBfb2NlbG90LmM6MjMyOiB1bmRlZmluZWQNCj4gcmVmZXJlbmNlIHRv IGBfX29jZWxvdF93cml0ZV9peCcNCj4gL29wdC9sczEwMjhhcmRiLWxpbnV4L2RyaXZlcnMvcHRw L3B0cF9vY2Vsb3QuYzoyMzU6IHVuZGVmaW5lZA0KPiByZWZlcmVuY2UgdG8gYF9fb2NlbG90X3dy aXRlX2l4Jw0KPiBkcml2ZXJzL3B0cC9wdHBfb2NlbG90Lm86IEluIGZ1bmN0aW9uIGBvY2Vsb3Rf aW5pdF90aW1lc3RhbXAnOg0KPiAvb3B0L2xzMTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRw X29jZWxvdC5jOjI4OTogdW5kZWZpbmVkDQo+IHJlZmVyZW5jZSB0byBgX19vY2Vsb3Rfd3JpdGVf aXgnDQo+IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0cC9wdHBfb2NlbG90LmM6Mjkw OiB1bmRlZmluZWQNCj4gcmVmZXJlbmNlIHRvIGBfX29jZWxvdF93cml0ZV9peCcNCj4gZHJpdmVy cy9wdHAvcHRwX29jZWxvdC5vOi9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0cC9wdHBf b2NlbG90LmM6MjkxOg0KPiBtb3JlIHVuZGVmaW5lZCByZWZlcmVuY2VzIHRvIGBfX29jZWxvdF93 cml0ZV9peCcgZm9sbG93DQo+IGRyaXZlcnMvcHRwL3B0cF9vY2Vsb3QubzogSW4gZnVuY3Rpb24g YG9jZWxvdF9wdHBfYWRqdGltZSc6DQo+IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0 cC9wdHBfb2NlbG90LmM6ODg6IHVuZGVmaW5lZCByZWZlcmVuY2UNCj4gdG8gYF9fb2NlbG90X3Jl YWRfaXgnDQo+IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0cC9wdHBfb2NlbG90LmM6 OTM6IHVuZGVmaW5lZCByZWZlcmVuY2UNCj4gdG8gYF9fb2NlbG90X3dyaXRlX2l4Jw0KPiAvb3B0 L2xzMTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjk1OiB1bmRlZmluZWQg cmVmZXJlbmNlDQo+IHRvIGBfX29jZWxvdF93cml0ZV9peCcNCj4gL29wdC9sczEwMjhhcmRiLWxp bnV4L2RyaXZlcnMvcHRwL3B0cF9vY2Vsb3QuYzo5NjogdW5kZWZpbmVkIHJlZmVyZW5jZQ0KPiB0 byBgX19vY2Vsb3Rfd3JpdGVfaXgnDQo+IC9vcHQvbHMxMDI4YXJkYi1saW51eC9kcml2ZXJzL3B0 cC9wdHBfb2NlbG90LmM6OTc6IHVuZGVmaW5lZCByZWZlcmVuY2UNCj4gdG8gYF9fb2NlbG90X3dy aXRlX2l4Jw0KPiAvb3B0L2xzMTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5j Ojk5OiB1bmRlZmluZWQgcmVmZXJlbmNlDQo+IHRvIGBfX29jZWxvdF9yZWFkX2l4Jw0KPiAvb3B0 L2xzMTAyOGFyZGItbGludXgvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jOjEwNDogdW5kZWZpbmVk DQo+IHJlZmVyZW5jZSB0byBgX19vY2Vsb3Rfd3JpdGVfaXgnDQo+IA0KPiA+ICsgICAgICAgZGVw ZW5kcyBvbiBNU0NDX09DRUxPVF9TV0lUQ0ggfHwgQ09NUElMRV9URVNUDQo+ID4gKyAgICAgICBk ZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLDQo+ID4gKyAgICAgICBkZWZhdWx0IHkNCj4gPiArICAg ICAgIGhlbHANCj4gPiArICAgICAgICAgVGhpcyBkcml2ZXIgYWRkcyBzdXBwb3J0IGZvciB1c2lu ZyBNaWNyb3NlbWkgT2NlbG90IGFzIGEgUFRQDQo+ID4gKyAgICAgICAgIGNsb2NrLiBUaGlzIGNs b2NrIGlzIG9ubHkgdXNlZnVsIGlmIHlvdXIgUFRQIHByb2dyYW1zIGFyZQ0KPiA+ICsgICAgICAg ICBnZXR0aW5nIGhhcmR3YXJlIHRpbWUgc3RhbXBzIG9uIHRoZSBQVFAgRXRoZXJuZXQgcGFja2V0 cyB1c2luZw0KPiA+ICsgICAgICAgICB0aGUgU09fVElNRVNUQU1QSU5HIEFQSS4NCj4gPiAgZW5k bWVudQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3B0cC9NYWtlZmlsZSBiL2RyaXZlcnMvcHRw L01ha2VmaWxlDQo+ID4gaW5kZXggN2FmZjc1Zi4uYTAyMjliMyAxMDA2NDQNCj4gPiAtLS0gYS9k cml2ZXJzL3B0cC9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvcHRwL01ha2VmaWxlDQo+ID4g QEAgLTE1LDMgKzE1LDQgQEAgcHRwLXFvcmlxLSQoQ09ORklHX0RFQlVHX0ZTKSAgICAgICAgICAr PQ0KPiBwdHBfcW9yaXFfZGVidWdmcy5vDQo+ID4gIG9iai0kKENPTkZJR19QVFBfMTU4OF9DTE9D S19JRFRDTSkgICAgICs9IHB0cF9jbG9ja21hdHJpeC5vDQo+ID4gIG9iai0kKENPTkZJR19QVFBf MTU4OF9DTE9DS19JRFQ4MlAzMykgICs9IHB0cF9pZHQ4MnAzMy5vDQo+ID4gIG9iai0kKENPTkZJ R19QVFBfMTU4OF9DTE9DS19WTVcpICAgICAgICs9IHB0cF92bXcubw0KPiA+ICtvYmotJChDT05G SUdfUFRQXzE1ODhfQ0xPQ0tfT0NFTE9UKSAgICArPSBwdHBfb2NlbG90Lm8NCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5jIGIvZHJpdmVycy9wdHAvcHRwX29jZWxvdC5j DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi41OTQyMGE3DQo+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvcHRwL3B0cF9vY2Vsb3QuYw0KPiA+ IEBAIC0wLDAgKzEsMjE3IEBADQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BM LTIuMCBPUiBNSVQpDQo+ID4gKy8qDQo+ID4gKyAqIE1pY3Jvc2VtaSBPY2Vsb3QgUFRQIGNsb2Nr IGRyaXZlcg0KPiA+ICsgKg0KPiA+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTcgTWljcm9zZW1pIENv cnBvcmF0aW9uDQo+ID4gKyAqIENvcHlyaWdodCAyMDIwIE5YUA0KPiA+ICsgKi8NCj4gPiArI2lu Y2x1ZGUgPHNvYy9tc2NjL29jZWxvdF9wdHAuaD4NCj4gPiArI2luY2x1ZGUgPHNvYy9tc2NjL29j ZWxvdF9zeXMuaD4NCj4gPiArI2luY2x1ZGUgPHNvYy9tc2NjL29jZWxvdC5oPg0KPiA+ICsjaW5j bHVkZSA8c29jL21zY2MvcHRwX29jZWxvdC5oPg0KPiA+ICsNCj4gPiAraW50IG9jZWxvdF9wdHBf Z2V0dGltZTY0KHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzdHJ1Y3QgdGltZXNwZWM2NCAq dHMpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCA9IGNvbnRhaW5l cl9vZihwdHAsIHN0cnVjdCBvY2Vsb3QsIHB0cF9pbmZvKTsNCj4gPiArICAgICAgIHVuc2lnbmVk IGxvbmcgZmxhZ3M7DQo+ID4gKyAgICAgICB0aW1lNjRfdCBzOw0KPiA+ICsgICAgICAgdTMyIHZh bDsNCj4gPiArICAgICAgIHM2NCBuczsNCj4gPiArDQo+ID4gKyAgICAgICBzcGluX2xvY2tfaXJx c2F2ZSgmb2NlbG90LT5wdHBfY2xvY2tfbG9jaywgZmxhZ3MpOw0KPiA+ICsNCj4gPiArICAgICAg IHZhbCA9IG9jZWxvdF9yZWFkX3JpeChvY2Vsb3QsIFBUUF9QSU5fQ0ZHLCBUT0RfQUNDX1BJTik7 DQo+ID4gKyAgICAgICB2YWwgJj0gfihQVFBfUElOX0NGR19TWU5DIHwgUFRQX1BJTl9DRkdfQUNU SU9OX01BU0sgfA0KPiBQVFBfUElOX0NGR19ET00pOw0KPiA+ICsgICAgICAgdmFsIHw9IFBUUF9Q SU5fQ0ZHX0FDVElPTihQVFBfUElOX0FDVElPTl9TQVZFKTsNCj4gPiArICAgICAgIG9jZWxvdF93 cml0ZV9yaXgob2NlbG90LCB2YWwsIFBUUF9QSU5fQ0ZHLCBUT0RfQUNDX1BJTik7DQo+ID4gKw0K PiA+ICsgICAgICAgcyA9IG9jZWxvdF9yZWFkX3JpeChvY2Vsb3QsIFBUUF9QSU5fVE9EX1NFQ19N U0IsIFRPRF9BQ0NfUElOKQ0KPiAmIDB4ZmZmZjsNCj4gPiArICAgICAgIHMgPDw9IDMyOw0KPiA+ ICsgICAgICAgcyArPSBvY2Vsb3RfcmVhZF9yaXgob2NlbG90LCBQVFBfUElOX1RPRF9TRUNfTFNC LA0KPiBUT0RfQUNDX1BJTik7DQo+ID4gKyAgICAgICBucyA9IG9jZWxvdF9yZWFkX3JpeChvY2Vs b3QsIFBUUF9QSU5fVE9EX05TRUMsIFRPRF9BQ0NfUElOKTsNCj4gPiArDQo+ID4gKyAgICAgICBz cGluX3VubG9ja19pcnFyZXN0b3JlKCZvY2Vsb3QtPnB0cF9jbG9ja19sb2NrLCBmbGFncyk7DQo+ ID4gKw0KPiA+ICsgICAgICAgLyogRGVhbCB3aXRoIG5lZ2F0aXZlIHZhbHVlcyAqLw0KPiA+ICsg ICAgICAgaWYgKG5zID49IDB4M2ZmZmZmZjAgJiYgbnMgPD0gMHgzZmZmZmZmZikgew0KPiA+ICsg ICAgICAgICAgICAgICBzLS07DQo+ID4gKyAgICAgICAgICAgICAgIG5zICY9IDB4ZjsNCj4gPiAr ICAgICAgICAgICAgICAgbnMgKz0gOTk5OTk5OTg0Ow0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4g PiArICAgICAgIHNldF9ub3JtYWxpemVkX3RpbWVzcGVjNjQodHMsIHMsIG5zKTsNCj4gPiArICAg ICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gK0VYUE9SVF9TWU1CT0wob2NlbG90X3B0cF9nZXR0 aW1lNjQpOw0KPiA+ICsNCj4gPiArc3RhdGljIGludCBvY2Vsb3RfcHRwX3NldHRpbWU2NChzdHJ1 Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYzY0ICp0cykNCj4gPiArew0KPiA+ICsgICAgICAgc3Ry dWN0IG9jZWxvdCAqb2NlbG90ID0gY29udGFpbmVyX29mKHB0cCwgc3RydWN0IG9jZWxvdCwgcHRw X2luZm8pOw0KPiA+ICsgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsNCj4gPiArICAgICAgIHUz MiB2YWw7DQo+ID4gKw0KPiA+ICsgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJm9jZWxvdC0+cHRw X2Nsb2NrX2xvY2ssIGZsYWdzKTsNCj4gPiArDQo+ID4gKyAgICAgICB2YWwgPSBvY2Vsb3RfcmVh ZF9yaXgob2NlbG90LCBQVFBfUElOX0NGRywgVE9EX0FDQ19QSU4pOw0KPiA+ICsgICAgICAgdmFs ICY9IH4oUFRQX1BJTl9DRkdfU1lOQyB8IFBUUF9QSU5fQ0ZHX0FDVElPTl9NQVNLIHwNCj4gUFRQ X1BJTl9DRkdfRE9NKTsNCj4gPiArICAgICAgIHZhbCB8PSBQVFBfUElOX0NGR19BQ1RJT04oUFRQ X1BJTl9BQ1RJT05fSURMRSk7DQo+ID4gKw0KPiA+ICsgICAgICAgb2NlbG90X3dyaXRlX3JpeChv Y2Vsb3QsIHZhbCwgUFRQX1BJTl9DRkcsIFRPRF9BQ0NfUElOKTsNCj4gPiArDQo+ID4gKyAgICAg ICBvY2Vsb3Rfd3JpdGVfcml4KG9jZWxvdCwgbG93ZXJfMzJfYml0cyh0cy0+dHZfc2VjKSwNCj4g UFRQX1BJTl9UT0RfU0VDX0xTQiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgVE9EX0FD Q19QSU4pOw0KPiA+ICsgICAgICAgb2NlbG90X3dyaXRlX3JpeChvY2Vsb3QsIHVwcGVyXzMyX2Jp dHModHMtPnR2X3NlYyksDQo+IFBUUF9QSU5fVE9EX1NFQ19NU0IsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgIFRPRF9BQ0NfUElOKTsNCj4gPiArICAgICAgIG9jZWxvdF93cml0ZV9yaXgo b2NlbG90LCB0cy0+dHZfbnNlYywgUFRQX1BJTl9UT0RfTlNFQywNCj4gVE9EX0FDQ19QSU4pOw0K PiA+ICsNCj4gPiArICAgICAgIHZhbCA9IG9jZWxvdF9yZWFkX3JpeChvY2Vsb3QsIFBUUF9QSU5f Q0ZHLCBUT0RfQUNDX1BJTik7DQo+ID4gKyAgICAgICB2YWwgJj0gfihQVFBfUElOX0NGR19TWU5D IHwgUFRQX1BJTl9DRkdfQUNUSU9OX01BU0sgfA0KPiBQVFBfUElOX0NGR19ET00pOw0KPiA+ICsg ICAgICAgdmFsIHw9IFBUUF9QSU5fQ0ZHX0FDVElPTihQVFBfUElOX0FDVElPTl9MT0FEKTsNCj4g PiArDQo+ID4gKyAgICAgICBvY2Vsb3Rfd3JpdGVfcml4KG9jZWxvdCwgdmFsLCBQVFBfUElOX0NG RywgVE9EX0FDQ19QSU4pOw0KPiA+ICsNCj4gPiArICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJm9jZWxvdC0+cHRwX2Nsb2NrX2xvY2ssIGZsYWdzKTsNCj4gPiArICAgICAgIHJldHVybiAw Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG9jZWxvdF9wdHBfYWRqdGltZShzdHJ1 Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBp ZiAoZGVsdGEgPiAtKE5TRUNfUEVSX1NFQyAvIDIpICYmIGRlbHRhIDwgKE5TRUNfUEVSX1NFQyAv IDIpKSB7DQo+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCA9IGNvbnRh aW5lcl9vZihwdHAsIHN0cnVjdCBvY2Vsb3QsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHBfaW5mbyk7DQo+ID4gKyAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4gKyAgICAgICAgICAgICAgIHUzMiB2YWw7DQo+ ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmb2NlbG90LT5wdHBf Y2xvY2tfbG9jaywgZmxhZ3MpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgdmFsID0gb2Nl bG90X3JlYWRfcml4KG9jZWxvdCwgUFRQX1BJTl9DRkcsDQo+IFRPRF9BQ0NfUElOKTsNCj4gPiAr ICAgICAgICAgICAgICAgdmFsICY9IH4oUFRQX1BJTl9DRkdfU1lOQyB8DQo+IFBUUF9QSU5fQ0ZH X0FDVElPTl9NQVNLIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgUFRQX1BJTl9DRkdf RE9NKTsNCj4gPiArICAgICAgICAgICAgICAgdmFsIHw9IFBUUF9QSU5fQ0ZHX0FDVElPTihQVFBf UElOX0FDVElPTl9JRExFKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIG9jZWxvdF93cml0 ZV9yaXgob2NlbG90LCB2YWwsIFBUUF9QSU5fQ0ZHLA0KPiBUT0RfQUNDX1BJTik7DQo+ID4gKw0K PiA+ICsgICAgICAgICAgICAgICBvY2Vsb3Rfd3JpdGVfcml4KG9jZWxvdCwgMCwgUFRQX1BJTl9U T0RfU0VDX0xTQiwNCj4gVE9EX0FDQ19QSU4pOw0KPiA+ICsgICAgICAgICAgICAgICBvY2Vsb3Rf d3JpdGVfcml4KG9jZWxvdCwgMCwgUFRQX1BJTl9UT0RfU0VDX01TQiwNCj4gVE9EX0FDQ19QSU4p Ow0KPiA+ICsgICAgICAgICAgICAgICBvY2Vsb3Rfd3JpdGVfcml4KG9jZWxvdCwgZGVsdGEsIFBU UF9QSU5fVE9EX05TRUMsDQo+IFRPRF9BQ0NfUElOKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAg ICAgIHZhbCA9IG9jZWxvdF9yZWFkX3JpeChvY2Vsb3QsIFBUUF9QSU5fQ0ZHLA0KPiBUT0RfQUND X1BJTik7DQo+ID4gKyAgICAgICAgICAgICAgIHZhbCAmPSB+KFBUUF9QSU5fQ0ZHX1NZTkMgfA0K PiBQVFBfUElOX0NGR19BQ1RJT05fTUFTSyB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg IFBUUF9QSU5fQ0ZHX0RPTSk7DQo+ID4gKyAgICAgICAgICAgICAgIHZhbCB8PSBQVFBfUElOX0NG R19BQ1RJT04oUFRQX1BJTl9BQ1RJT05fREVMVEEpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgb2NlbG90X3dyaXRlX3JpeChvY2Vsb3QsIHZhbCwgUFRQX1BJTl9DRkcsDQo+IFRPRF9BQ0Nf UElOKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUo Jm9jZWxvdC0+cHRwX2Nsb2NrX2xvY2ssIGZsYWdzKTsNCj4gPiArICAgICAgIH0gZWxzZSB7DQo+ ID4gKyAgICAgICAgICAgICAgIC8qIEZhbGwgYmFjayB1c2luZyBvY2Vsb3RfcHRwX3NldHRpbWU2 NCB3aGljaCBpcyBub3QNCj4gZXhhY3QuICovDQo+ID4gKyAgICAgICAgICAgICAgIHN0cnVjdCB0 aW1lc3BlYzY0IHRzOw0KPiA+ICsgICAgICAgICAgICAgICB1NjQgbm93Ow0KPiA+ICsNCj4gPiAr ICAgICAgICAgICAgICAgb2NlbG90X3B0cF9nZXR0aW1lNjQocHRwLCAmdHMpOw0KPiA+ICsNCj4g PiArICAgICAgICAgICAgICAgbm93ID0ga3RpbWVfdG9fbnModGltZXNwZWM2NF90b19rdGltZSh0 cykpOw0KPiA+ICsgICAgICAgICAgICAgICB0cyA9IG5zX3RvX3RpbWVzcGVjNjQobm93ICsgZGVs dGEpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgb2NlbG90X3B0cF9zZXR0aW1lNjQocHRw LCAmdHMpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4g PiArDQo+ID4gK3N0YXRpYyBpbnQgb2NlbG90X3B0cF9hZGpmaW5lKHN0cnVjdCBwdHBfY2xvY2tf aW5mbyAqcHRwLCBsb25nIHNjYWxlZF9wcG0pDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBv Y2Vsb3QgKm9jZWxvdCA9IGNvbnRhaW5lcl9vZihwdHAsIHN0cnVjdCBvY2Vsb3QsIHB0cF9pbmZv KTsNCj4gPiArICAgICAgIHUzMiB1bml0ID0gMCwgZGlyZWN0aW9uID0gMDsNCj4gPiArICAgICAg IHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4gKyAgICAgICB1NjQgYWRqID0gMDsNCj4gPiArDQo+ ID4gKyAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmb2NlbG90LT5wdHBfY2xvY2tfbG9jaywgZmxh Z3MpOw0KPiA+ICsNCj4gPiArICAgICAgIGlmICghc2NhbGVkX3BwbSkNCj4gPiArICAgICAgICAg ICAgICAgZ290byBkaXNhYmxlX2FkajsNCj4gPiArDQo+ID4gKyAgICAgICBpZiAoc2NhbGVkX3Bw bSA8IDApIHsNCj4gPiArICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gUFRQX0NGR19DTEtfQURK X0NGR19ESVI7DQo+ID4gKyAgICAgICAgICAgICAgIHNjYWxlZF9wcG0gPSAtc2NhbGVkX3BwbTsN Cj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICBhZGogPSBQU0VDX1BFUl9TRUMgPDwg MTY7DQo+ID4gKyAgICAgICBkb19kaXYoYWRqLCBzY2FsZWRfcHBtKTsNCj4gPiArICAgICAgIGRv X2RpdihhZGosIDEwMDApOw0KPiA+ICsNCj4gPiArICAgICAgIC8qIElmIHRoZSBhZGp1c3RtZW50 IHZhbHVlIGlzIHRvbyBsYXJnZSwgdXNlIG5zIGluc3RlYWQgKi8NCj4gPiArICAgICAgIGlmIChh ZGogPj0gKDFMIDw8IDMwKSkgew0KPiA+ICsgICAgICAgICAgICAgICB1bml0ID0gUFRQX0NGR19D TEtfQURKX0ZSRVFfTlM7DQo+ID4gKyAgICAgICAgICAgICAgIGRvX2RpdihhZGosIDEwMDApOw0K PiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIC8qIFN0aWxsIHRvbyBiaWcgKi8NCj4g PiArICAgICAgIGlmIChhZGogPj0gKDFMIDw8IDMwKSkNCj4gPiArICAgICAgICAgICAgICAgZ290 byBkaXNhYmxlX2FkajsNCj4gPiArDQo+ID4gKyAgICAgICBvY2Vsb3Rfd3JpdGUob2NlbG90LCB1 bml0IHwgYWRqLCBQVFBfQ0xLX0NGR19BREpfRlJFUSk7DQo+ID4gKyAgICAgICBvY2Vsb3Rfd3Jp dGUob2NlbG90LCBQVFBfQ0ZHX0NMS19BREpfQ0ZHX0VOQSB8IGRpcmVjdGlvbiwNCj4gPiArICAg ICAgICAgICAgICAgICAgICBQVFBfQ0xLX0NGR19BREpfQ0ZHKTsNCj4gPiArDQo+ID4gKyAgICAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZvY2Vsb3QtPnB0cF9jbG9ja19sb2NrLCBmbGFncyk7 DQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArDQo+ID4gK2Rpc2FibGVfYWRqOg0KPiA+ICsg ICAgICAgb2NlbG90X3dyaXRlKG9jZWxvdCwgMCwgUFRQX0NMS19DRkdfQURKX0NGRyk7DQo+ID4g Kw0KPiA+ICsgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb2NlbG90LT5wdHBfY2xvY2tf bG9jaywgZmxhZ3MpOw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gb2NlbG90X3B0cF9jbG9ja19pbmZvID0gew0K PiA+ICsgICAgICAgLm93bmVyICAgICAgICAgID0gVEhJU19NT0RVTEUsDQo+ID4gKyAgICAgICAu bmFtZSAgICAgICAgICAgPSAib2NlbG90IHB0cCIsDQo+ID4gKyAgICAgICAubWF4X2FkaiAgICAg ICAgPSAweDdmZmZmZmZmLA0KPiA+ICsgICAgICAgLm5fYWxhcm0gICAgICAgID0gMCwNCj4gPiAr ICAgICAgIC5uX2V4dF90cyAgICAgICA9IDAsDQo+ID4gKyAgICAgICAubl9wZXJfb3V0ICAgICAg PSAwLA0KPiA+ICsgICAgICAgLm5fcGlucyAgICAgICAgID0gMCwNCj4gPiArICAgICAgIC5wcHMg ICAgICAgICAgICA9IDAsDQo+ID4gKyAgICAgICAuZ2V0dGltZTY0ICAgICAgPSBvY2Vsb3RfcHRw X2dldHRpbWU2NCwNCj4gPiArICAgICAgIC5zZXR0aW1lNjQgICAgICA9IG9jZWxvdF9wdHBfc2V0 dGltZTY0LA0KPiA+ICsgICAgICAgLmFkanRpbWUgICAgICAgID0gb2NlbG90X3B0cF9hZGp0aW1l LA0KPiA+ICsgICAgICAgLmFkamZpbmUgICAgICAgID0gb2NlbG90X3B0cF9hZGpmaW5lLA0KPiA+ ICt9Ow0KPiA+ICsNCj4gPiAraW50IG9jZWxvdF9pbml0X3RpbWVzdGFtcChzdHJ1Y3Qgb2NlbG90 ICpvY2Vsb3QpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBwdHBfY2xvY2sgKnB0cF9jbG9j azsNCj4gPiArDQo+ID4gKyAgICAgICBvY2Vsb3QtPnB0cF9pbmZvID0gb2NlbG90X3B0cF9jbG9j a19pbmZvOw0KPiA+ICsgICAgICAgcHRwX2Nsb2NrID0gcHRwX2Nsb2NrX3JlZ2lzdGVyKCZvY2Vs b3QtPnB0cF9pbmZvLCBvY2Vsb3QtPmRldik7DQo+ID4gKyAgICAgICBpZiAoSVNfRVJSKHB0cF9j bG9jaykpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKHB0cF9jbG9jayk7DQo+ ID4gKyAgICAgICAvKiBDaGVjayBpZiBQSEMgc3VwcG9ydCBpcyBtaXNzaW5nIGF0IHRoZSBjb25m aWd1cmF0aW9uIGxldmVsICovDQo+ID4gKyAgICAgICBpZiAoIXB0cF9jbG9jaykNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICsgICAgICAgb2NlbG90LT5wdHBfY2xv Y2sgPSBwdHBfY2xvY2s7DQo+ID4gKw0KPiA+ICsgICAgICAgb2NlbG90X3dyaXRlKG9jZWxvdCwg U1lTX1BUUF9DRkdfUFRQX1NUQU1QX1dJRCgzMCksDQo+IFNZU19QVFBfQ0ZHKTsNCj4gPiArICAg ICAgIG9jZWxvdF93cml0ZShvY2Vsb3QsIDB4ZmZmZmZmZmYsIEFOQV9UQUJMRVNfUFRQX0lEX0xP Vyk7DQo+ID4gKyAgICAgICBvY2Vsb3Rfd3JpdGUob2NlbG90LCAweGZmZmZmZmZmLCBBTkFfVEFC TEVTX1BUUF9JRF9ISUdIKTsNCj4gPiArDQo+ID4gKyAgICAgICBvY2Vsb3Rfd3JpdGUob2NlbG90 LCBQVFBfQ0ZHX01JU0NfUFRQX0VOLCBQVFBfQ0ZHX01JU0MpOw0KPiA+ICsNCj4gPiArICAgICAg IC8qIFRoZXJlIGlzIG5vIGRldmljZSByZWNvbmZpZ3VyYXRpb24sIFBUUCBSeCBzdGFtcGluZyBp cyBhbHdheXMNCj4gPiArICAgICAgICAqIGVuYWJsZWQuDQo+ID4gKyAgICAgICAgKi8NCj4gPiAr ICAgICAgIG9jZWxvdC0+aHd0c3RhbXBfY29uZmlnLnJ4X2ZpbHRlciA9DQo+IEhXVFNUQU1QX0ZJ TFRFUl9QVFBfVjJfRVZFTlQ7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30N Cj4gPiArRVhQT1JUX1NZTUJPTChvY2Vsb3RfaW5pdF90aW1lc3RhbXApOw0KPiA+ICsNCj4gPiAr aW50IG9jZWxvdF9kZWluaXRfdGltZXN0YW1wKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCkNCj4gPiAr ew0KPiA+ICsgICAgICAgaWYgKG9jZWxvdC0+cHRwX2Nsb2NrKQ0KPiA+ICsgICAgICAgICAgICAg ICBwdHBfY2xvY2tfdW5yZWdpc3RlcihvY2Vsb3QtPnB0cF9jbG9jayk7DQo+ID4gKyAgICAgICBy ZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICtFWFBPUlRfU1lNQk9MKG9jZWxvdF9kZWluaXRfdGltZXN0 YW1wKTsNCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb2MvbXNjYy9vY2Vsb3QuaCBiL2luY2x1 ZGUvc29jL21zY2Mvb2NlbG90LmgNCj4gPiBpbmRleCAwMDdiNTg0Li5kOWJhZDcwIDEwMDY0NA0K PiA+IC0tLSBhL2luY2x1ZGUvc29jL21zY2Mvb2NlbG90LmgNCj4gPiArKysgYi9pbmNsdWRlL3Nv Yy9tc2NjL29jZWxvdC5oDQo+ID4gQEAgLTYwNyw3ICs2MDcsNiBAQCBpbnQgb2NlbG90X3ZsYW5f YWRkKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCwgaW50IHBvcnQsDQo+IHUxNiB2aWQsIGJvb2wgcHZp ZCwNCj4gPiAgaW50IG9jZWxvdF92bGFuX2RlbChzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QsIGludCBw b3J0LCB1MTYgdmlkKTsNCj4gPiAgaW50IG9jZWxvdF9od3N0YW1wX2dldChzdHJ1Y3Qgb2NlbG90 ICpvY2Vsb3QsIGludCBwb3J0LCBzdHJ1Y3QgaWZyZXEgKmlmcik7DQo+ID4gIGludCBvY2Vsb3Rf aHdzdGFtcF9zZXQoc3RydWN0IG9jZWxvdCAqb2NlbG90LCBpbnQgcG9ydCwgc3RydWN0IGlmcmVx ICppZnIpOw0KPiA+IC1pbnQgb2NlbG90X3B0cF9nZXR0aW1lNjQoc3RydWN0IHB0cF9jbG9ja19p bmZvICpwdHAsIHN0cnVjdCB0aW1lc3BlYzY0DQo+ICp0cyk7DQo+ID4gIGludCBvY2Vsb3RfcG9y dF9hZGRfdHh0c3RhbXBfc2tiKHN0cnVjdCBvY2Vsb3RfcG9ydCAqb2NlbG90X3BvcnQsDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYik7DQo+ ID4gIHZvaWQgb2NlbG90X2dldF90eHRzdGFtcChzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpOw0KPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9wdHAuaA0KPiBi L2luY2x1ZGUvc29jL21zY2Mvb2NlbG90X3B0cC5oDQo+ID4gc2ltaWxhcml0eSBpbmRleCA5NyUN Cj4gPiByZW5hbWUgZnJvbSBkcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9wdHAuaA0K PiA+IHJlbmFtZSB0byBpbmNsdWRlL3NvYy9tc2NjL29jZWxvdF9wdHAuaA0KPiA+IGluZGV4IDll ZGUxNGEuLjJkZDI3ZjAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNj Yy9vY2Vsb3RfcHRwLmgNCj4gPiArKysgYi9pbmNsdWRlL3NvYy9tc2NjL29jZWxvdF9wdHAuaA0K PiA+IEBAIC00LDYgKzQsNyBAQA0KPiA+ICAgKg0KPiA+ICAgKiBMaWNlbnNlOiBEdWFsIE1JVC9H UEwNCj4gPiAgICogQ29weXJpZ2h0IChjKSAyMDE3IE1pY3Jvc2VtaSBDb3Jwb3JhdGlvbg0KPiA+ ICsgKiBDb3B5cmlnaHQgMjAyMCBOWFANCj4gPiAgICovDQo+ID4NCj4gPiAgI2lmbmRlZiBfTVND Q19PQ0VMT1RfUFRQX0hfDQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc29jL21zY2MvcHRwX29j ZWxvdC5oIGIvaW5jbHVkZS9zb2MvbXNjYy9wdHBfb2NlbG90LmgNCj4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLmI4ZDljNWINCj4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gKysrIGIvaW5jbHVkZS9zb2MvbXNjYy9wdHBfb2NlbG90LmgNCj4gPiBAQCAtMCwwICsxLDM0 IEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BMLTIuMCBPUiBNSVQpICov DQo+ID4gKy8qDQo+ID4gKyAqIE1pY3Jvc2VtaSBPY2Vsb3QgUFRQIGNsb2NrIGRyaXZlcg0KPiA+ ICsgKg0KPiA+ICsgKiBMaWNlbnNlOiBEdWFsIE1JVC9HUEwNCj4gPiArICogQ29weXJpZ2h0IDIw MjAgTlhQDQo+ID4gKyAqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBfUFRQX09DRUxPVF9IXw0KPiA+ ICsjZGVmaW5lIF9QVFBfT0NFTE9UX0hfDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8c29jL21zY2Mv b2NlbG90Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9wdHBfY2xvY2tfa2VybmVsLmg+DQo+ID4g Kw0KPiA+ICsjaWZkZWYgQ09ORklHX1BUUF8xNTg4X0NMT0NLX09DRUxPVA0KPiANCj4gQW5kIGlm IHlvdSBkZWNpZGUgdG8gYWxsb3cgYnVpbGRpbmcgaXQgYXMgYSBtb2R1bGUsIHlvdSBzaG91bGQg Y2hhbmdlDQo+IHRoaXMgdG8gIiNpZiBJU19SRUFDSEFCTEUoQ09ORklHX1BUUF8xNTg4X0NMT0NL X09DRUxPVCkiIHRvIGNvdmVyIHRoYXQNCj4gY2FzZSB0b28uDQo+IA0KPiA+ICtpbnQgb2NlbG90 X3B0cF9nZXR0aW1lNjQoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHN0cnVjdCB0aW1lc3Bl YzY0DQo+ICp0cyk7DQo+ID4gK2ludCBvY2Vsb3RfaW5pdF90aW1lc3RhbXAoc3RydWN0IG9jZWxv dCAqb2NlbG90KTsNCj4gPiAraW50IG9jZWxvdF9kZWluaXRfdGltZXN0YW1wKHN0cnVjdCBvY2Vs b3QgKm9jZWxvdCk7DQo+ID4gKyNlbHNlDQo+ID4gK3N0YXRpYyBpbmxpbmUgaW50IG9jZWxvdF9w dHBfZ2V0dGltZTY0KHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1lc3BlYzY0ICp0cykNCj4gPiAr ew0KPiA+ICsgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+ICt9DQo+ID4gK3N0YXRpYyBp bmxpbmUgaW50IG9jZWxvdF9pbml0X3RpbWVzdGFtcChzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QpDQo+ ID4gK3sNCj4gPiArICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsNCj4gPiArfQ0KPiA+ICtzdGF0 aWMgaW5saW5lIGludCBvY2Vsb3RfZGVpbml0X3RpbWVzdGFtcChzdHJ1Y3Qgb2NlbG90ICpvY2Vs b3QpDQo+ID4gK3sNCj4gPiArICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsNCj4gPiArfQ0KPiA+ ICsjZW5kaWYNCj4gPiArI2VuZGlmDQo+ID4gLS0NCj4gPiAyLjcuNA0KPiA+DQo+IA0KPiBUaGFu a3MsDQo+IC1WbGFkaW1pcg0K