From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 348C2A04B5; Wed, 16 Sep 2020 17:52:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EFF141C2FA; Wed, 16 Sep 2020 17:52:36 +0200 (CEST) Received: from hqnvemgate25.nvidia.com (hqnvemgate25.nvidia.com [216.228.121.64]) by dpdk.org (Postfix) with ESMTP id 9B7091C2ED for ; Wed, 16 Sep 2020 17:52:34 +0200 (CEST) Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate25.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Wed, 16 Sep 2020 08:51:51 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Wed, 16 Sep 2020 08:52:33 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Wed, 16 Sep 2020 08:52:33 -0700 Received: from HQMAIL101.nvidia.com (172.20.187.10) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 16 Sep 2020 15:52:20 +0000 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.100) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 16 Sep 2020 15:52:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L/U1DLgPedyrLrNDOgxGMo3WKYv98WsW0jLcRVMh1MH/YaoU4JdLWTIAkSf+s3oy7OYeN9OyN7l42XBlS1SWbze+3Dj2tr6NpmBShvai1hKziPdeVsT2vCOOhUYtkoCDd56M+DVHLMWTduH4nNKc8pINVXkaeyz4ks+8XgslWWBupgWpEGf7xRfCofkWx6YHYau407YVc2RffeQKxWuTcESCwDPjdSG2dIfYQFsW2iGfF90e5zBGUPSxSvjQoYB3F16TZzlvAt5/e8FqkeJOLqwzynP0NHgnFwowd+v7YqhGQtJftHQ06CfZOUJ29DmIMhiVdyD2TFlwAlGQQDyIdA== 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=QG3hUefm/Ic2Es54maMKz2ZBZZG1P4L0/6UyG1RhzEQ=; b=WMS50V82DPI7CSFs+ZJKoJ2/6Xc8LjssLoV2nZhWXTQhB1kWF8xrPrrITQ77u9zwdMZJXKvZcyyg5VJnbE2FCZApj7X+9lg6bSJMK/huZlaNKi4sRg5nz2mnOwcZBSsATmXf/M7itXBuAy8jrWx9fLEw8sx5OrKxYLe3uJG4N8x6UOiu9oTpaXCU3gL3ngPU8aE1YEzVu+SuYtuRDYX9WXn3GecYhaRSmbPig1S/QnHBgbqYmhKDbP8ecFb8iPgKNQe2Vv0VZrW+PJmdr7csELJsgpURcPm2mazJRUhkBpK4pJ1xQse9NyrdsHGjw3SFtQA/s4odmxvqFercrrCYfg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from MWHPR1201MB2525.namprd12.prod.outlook.com (2603:10b6:300:e0::19) by MWHPR12MB1551.namprd12.prod.outlook.com (2603:10b6:301:9::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Wed, 16 Sep 2020 15:52:18 +0000 Received: from MWHPR1201MB2525.namprd12.prod.outlook.com ([fe80::3ccb:ec09:9346:54b1]) by MWHPR1201MB2525.namprd12.prod.outlook.com ([fe80::3ccb:ec09:9346:54b1%7]) with mapi id 15.20.3370.019; Wed, 16 Sep 2020 15:52:18 +0000 From: Andrey Vesnovaty To: Ajit Khaparde CC: NBU-Contact-Thomas Monjalon , Ori Kam , Slava Ovsiienko , "jerinj@marvell.com" , Andrew Rybchenko , dpdk-dev , "jer@marvell.com" , Jerin Jacob , Ferruh Yigit , Stephen Hemminger , Bruce Richardson , Ori Kam , Viacheslav Ovsiienko , "andrey.vesnovaty@gmail.com" , Ray Kinsella , Neil Horman , Thomas Monjalon , Samik Gupta Thread-Topic: [dpdk-dev] [PATCH v2 1/6] ethdev: add flow shared action API Thread-Index: AQHWac+xdJPDU/OvwEKNpRAY5MGzB6lkgkQAgAVRfgCAAEgbgIABkC3A Date: Wed, 16 Sep 2020 15:52:18 +0000 Message-ID: References: <20200702120511.16315-1-andreyv@mellanox.com> <20200708213946.30108-1-andreyv@mellanox.com> <20200708213946.30108-2-andreyv@mellanox.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: broadcom.com; dkim=none (message not signed) header.d=none;broadcom.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [87.71.167.214] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3f05187a-de59-4f32-c3ba-08d85a587d9b x-ms-traffictypediagnostic: MWHPR12MB1551: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2331; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QPhFKmht3zzw2pzTdlKvDE4dj+QB7HypD6+1hV643hfdZ0vIIoh6tbssz+wwsxBVesgewsl8CBFkJ8jJTaqkdAOI5EvRXKwMPQ8nigFKMP0GsIshTHZyCHMZFECVGtNtyNG5WGfGbewKpwg5T4cB+T/iTRMcLN8V06hK68TIRp9KJHqJL9q0SW5ZPPd6ETME5UcDbkQvg3mSCiNve0w85zI5i4NC4ly2VjZwA1ECEJIwb3mheHxVz0yaBg6XiOErJSBR0m5hEWCg99D45NoIvh18PDWnfzKggrEKyJ9Gw93aeE0MW2Ffl/DLUPceQQ3KNaaD3j7NzIejHzcs+UIYN/bAwEqLIQ6OHu8YH5pW1LOfLd7snNogbFRp//43l0GE x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR1201MB2525.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(39860400002)(346002)(136003)(376002)(64756008)(7416002)(5660300002)(26005)(66946007)(8936002)(71200400001)(52536014)(76116006)(316002)(186003)(30864003)(478600001)(66446008)(6916009)(8676002)(7696005)(33656002)(4326008)(2906002)(55016002)(6506007)(53546011)(66556008)(66476007)(9686003)(54906003)(83380400001)(86362001)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: Tvuh7HT6e7Nyd9/b6j6JLjHyz21urpZA/WsAVxrvJUMsoAasJdi3LUc4OWxweKahlgNLkm66G7FemKTw3urxpLnPQlwEIBGhm/fhGwdiew5GJjexZKM0JjH4r8WsldlL5jaGv8kREnjpNaN+ljpjDW4Qz39L5tPlzZOMVWf6MAcDqmmrTh2p7mzzrrLSdS7VsR1m419vEljk/H7rNcnw7/9HQpiviXxEsFkA1lGn84VODpt4ANg83CmPb4m7B0TBoBA9uMLOJxT0loV0bDFq7yOQySmQs9OK+bvISAYCMz0MEHodELIMYUBOzSNvJf9AxJuRPG/tvT/CKF8nL4Yh3JXqAMqQ5ZJ2lwlxNXsRH67AD9x6cUtk0OfQecgpNmx6utUtlyCGDExF/GhXCtTprdP4186tmKkwL0kYu4M7UaBz5BKzkMmQnCtxdj5tsLf3bQyxEjKAL5wN9EEdZLIsgwU+xPIlTcIwr5PSJuwHVn21yse+aQzv+rOgmPvBDCoYfBhHTQPUg5zvhxWhF86NTWJroksmALrVvOZ05qH8TuDcuQernhvlbNNxZ+JQTLnrfG19s3CIYuAofQNFxTJ+lEppTgEfFC8L/R1OqLHNO4muUNxYRbIzeiRulu4rgV2Pkzzs0ZaRxG/ZwS/T8wjJ5w== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR1201MB2525.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f05187a-de59-4f32-c3ba-08d85a587d9b X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Sep 2020 15:52:18.1088 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RXGATljnyilB5Xuzk6ceys265BM8Uotrj5Qbj010V0hUFHYYjeLXF5fqtVp0iwSu99Cns5Bh4gFIaqH58+t2vw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1551 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1600271511; bh=QG3hUefm/Ic2Es54maMKz2ZBZZG1P4L0/6UyG1RhzEQ=; h=X-PGP-Universal: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:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ld-processed: x-ms-exchange-transport-forked:x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers:x-ms-exchange-senderadcheck: x-microsoft-antispam:x-microsoft-antispam-message-info: x-forefront-antispam-report:x-ms-exchange-antispam-messagedata: Content-Type:Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=jZNDlRQ06fRNlWvXrqaH1nn5g+sPSEjQ/mM0n5cnXfYQSmYf5RTDn8RRIh4iApd4O +SJEJnD2LPuBu/LeXuBKwj968RHc/PFUujyp4ge1cB/LsA69LdOkkFqS2Emn4Vnob8 vb3MhKIgrTkIpDYAsEFir2sgjoROC6GPHzpmJT3FiaEEjb5rWKhY1ZAGfRmrUUHtwB ZugAACbvgfoSLukP9CYAs41XttWoQm9KdgX6T3zx7P2xT72Q5xfVDd7L4cuyXam4AM TGXr8h3VruTXT2h2+58qMmumuZTQ5szO9pFGniW5cB3XaRd8HYwG6Op2ditSWixdpM GfiPG9LPQMp1Q== Subject: Re: [dpdk-dev] [PATCH v2 1/6] ethdev: add flow shared action API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgQWppdA0KDQpGb3Igc2hhcmVkIGFjdGlvbiBjb25maWd1cmF0aW9uIEkgaGF2ZSBmb2xsb3dp bmcgc3VnZ2VzdGlvbjoNCiANCnN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2NvbmYgew0K CXVpbnQzMl90IG5vX2luZ3Jlc3M6IDE7DQoJdWludDMyX3Qgbm9fZWdyZXNzOiAxOw0KfTsNCi8q Li4uKi8NCnJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fY3JlYXRlKC4uLiwgY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X3NoYXJlZF9hY3Rpb25fY29uZiAqY29uZiwgLi4uKTsNCg0KV2hhdCBkbyB5b3UgdGhp bms/DQoNClRoYW5rcywNCkFuZHJleQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ IEZyb206IEFqaXQgS2hhcGFyZGUgPGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tPg0KPiBTZW50 OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTUsIDIwMjAgNjo0OSBQTQ0KPiBUbzogQW5kcmV5IFZlc25v dmF0eSA8YW5kcmV5dkBudmlkaWEuY29tPg0KPiBDYzogTkJVLUNvbnRhY3QtVGhvbWFzIE1vbmph bG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgT3JpIEthbQ0KPiA8b3Jpa2FAbnZpZGlhLmNvbT47 IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47DQo+IGplcmluakBtYXJ2 ZWxsLmNvbTsgQW5kcmV3IFJ5YmNoZW5rbyA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT47IGRw ZGstDQo+IGRldiA8ZGV2QGRwZGsub3JnPjsgamVyQG1hcnZlbGwuY29tOyBKZXJpbiBKYWNvYiA8 amVyaW5qYWNvYmtAZ21haWwuY29tPjsNCj4gRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAaW50 ZWwuY29tPjsgU3RlcGhlbiBIZW1taW5nZXINCj4gPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3Jn PjsgQnJ1Y2UgUmljaGFyZHNvbg0KPiA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBPcmkg S2FtIDxvcmlrYUBtZWxsYW5veC5jb20+OyBWaWFjaGVzbGF2DQo+IE92c2lpZW5rbyA8dmlhY2hl c2xhdm9AbWVsbGFub3guY29tPjsgYW5kcmV5LnZlc25vdmF0eUBnbWFpbC5jb207IFJheQ0KPiBL aW5zZWxsYSA8bWRyQGFzaHJvZS5ldT47IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5j b20+OyBUaG9tYXMNCj4gTW9uamFsb24gPHRtb25qYWxvbkBudmlkaWEuY29tPjsgU2FtaWsgR3Vw dGENCj4gPHNhbWlrLmd1cHRhQGJyb2FkY29tLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRl dl0gW1BBVENIIHYyIDEvNl0gZXRoZGV2OiBhZGQgZmxvdyBzaGFyZWQgYWN0aW9uIEFQSQ0KPiAN Cj4gDQo+IA0KPiBPbiBUdWUsIFNlcCAxNSwgMjAyMCBhdCA0OjUxIEFNIEFuZHJleSBWZXNub3Zh dHkgPGFuZHJleXZAbnZpZGlhLmNvbQ0KPiA8bWFpbHRvOmFuZHJleXZAbnZpZGlhLmNvbT4gPiB3 cm90ZToNCj4gDQo+IA0KPiAJSGkgQWppdCwgUFNCLg0KPiANCj4gCVRoYW5rcywNCj4gCUFuZHJl eQ0KPiANCj4gCT4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gCT4gRnJvbTogQWppdCBL aGFwYXJkZSA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20NCj4gPG1haWx0bzphaml0LmtoYXBh cmRlQGJyb2FkY29tLmNvbT4gPg0KPiAJPiBTZW50OiBTYXR1cmRheSwgU2VwdGVtYmVyIDEyLCAy MDIwIDU6MTggQU0NCj4gCT4gVG86IEFuZHJleSBWZXNub3ZhdHkgPGFuZHJleXZAbWVsbGFub3gu Y29tDQo+IDxtYWlsdG86YW5kcmV5dkBtZWxsYW5veC5jb20+ID4NCj4gCT4gQ2M6IGRwZGstZGV2 IDxkZXZAZHBkay5vcmcgPG1haWx0bzpkZXZAZHBkay5vcmc+ID47DQo+IGplckBtYXJ2ZWxsLmNv bSA8bWFpbHRvOmplckBtYXJ2ZWxsLmNvbT4gOyBKZXJpbiBKYWNvYg0KPiAJPiA8amVyaW5qYWNv YmtAZ21haWwuY29tIDxtYWlsdG86amVyaW5qYWNvYmtAZ21haWwuY29tPiA+OyBOQlUtDQo+IENv bnRhY3QtVGhvbWFzIE1vbmphbG9uDQo+IAk+IDx0aG9tYXNAbW9uamFsb24ubmV0IDxtYWlsdG86 dGhvbWFzQG1vbmphbG9uLm5ldD4gPjsgRmVycnVoDQo+IFlpZ2l0IDxmZXJydWgueWlnaXRAaW50 ZWwuY29tIDxtYWlsdG86ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4gPjsgU3RlcGhlbg0KPiAJPiBI ZW1taW5nZXIgPHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnDQo+IDxtYWlsdG86c3RlcGhlbkBu ZXR3b3JrcGx1bWJlci5vcmc+ID47IEJydWNlIFJpY2hhcmRzb24NCj4gCT4gPGJydWNlLnJpY2hh cmRzb25AaW50ZWwuY29tIDxtYWlsdG86YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+ID47 IE9yaSBLYW0gPG9yaWthQG1lbGxhbm94LmNvbSA8bWFpbHRvOm9yaWthQG1lbGxhbm94LmNvbT4g PjsgVmlhY2hlc2xhdg0KPiAJPiBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG1lbGxhbm94LmNvbQ0K PiA8bWFpbHRvOnZpYWNoZXNsYXZvQG1lbGxhbm94LmNvbT4gPjsgYW5kcmV5LnZlc25vdmF0eUBn bWFpbC5jb20NCj4gPG1haWx0bzphbmRyZXkudmVzbm92YXR5QGdtYWlsLmNvbT4gOyBSYXkNCj4g CT4gS2luc2VsbGEgPG1kckBhc2hyb2UuZXUgPG1haWx0bzptZHJAYXNocm9lLmV1PiA+OyBOZWls IEhvcm1hbg0KPiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tIDxtYWlsdG86bmhvcm1hbkB0dXhkcml2 ZXIuY29tPiA+OyBBbmRyZXcNCj4gCT4gUnliY2hlbmtvIDxhcnliY2hlbmtvQHNvbGFyZmxhcmUu Y29tDQo+IDxtYWlsdG86YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT4gPg0KPiAJPiBTdWJqZWN0 OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjIgMS82XSBldGhkZXY6IGFkZCBmbG93IHNoYXJlZCBh Y3Rpb24NCj4gQVBJDQo+IAk+DQo+IAk+DQo+IAk+DQo+IAk+IE9uIFdlZCwgSnVsIDgsIDIwMjAg YXQgMjo0MCBQTSBBbmRyZXkgVmVzbm92YXR5DQo+IDxhbmRyZXl2QG1lbGxhbm94LmNvbSA8bWFp bHRvOmFuZHJleXZAbWVsbGFub3guY29tPg0KPiAJPiA8bWFpbHRvOmFuZHJleXZAbWVsbGFub3gu Y29tIDxtYWlsdG86YW5kcmV5dkBtZWxsYW5veC5jb20+ID4NCj4gPiB3cm90ZToNCj4gCT4NCj4g CT4NCj4gCT4gICAgICAgRnJvbTogQW5kcmV5IFZlc25vdmF0eSA8YW5kcmV5LnZlc25vdmF0eUBn bWFpbC5jb20NCj4gPG1haWx0bzphbmRyZXkudmVzbm92YXR5QGdtYWlsLmNvbT4NCj4gCT4gPG1h aWx0bzphbmRyZXkudmVzbm92YXR5QGdtYWlsLmNvbQ0KPiA8bWFpbHRvOmFuZHJleS52ZXNub3Zh dHlAZ21haWwuY29tPiA+ID4NCj4gCT4NCj4gCT4gICAgICAgVGhpcyBjb21taXQgaW50cm9kdWNl cyBleHRlbnNpb24gb2YgRFBESyBmbG93IGFjdGlvbiBBUEkgZW5hYmxpbmcNCj4gCT4gICAgICAg c2hhcmluZyBvZiBzaW5nbGUgcnRlX2Zsb3dfYWN0aW9uIGluIG11bHRpcGxlIGZsb3dzLiBUaGUg QVBJDQo+IGludGVuZGVkIGZvcg0KPiAJPiAgICAgICBQTURzIHdoZXJlIG11bHRpcGxlIEhXIG9m ZmxvYWRlZCBmbG93cyBjYW4gcmV1c2UgdGhlIHNhbWUgSFcNCj4gCT4gICAgICAgZXNzZW5jZS9v YmplY3QgcmVwcmVzZW50aW5nIGZsb3cgYWN0aW9uIGFuZCBtb2RpZmljYXRpb24gb2Ygc3VjaA0K PiBhbg0KPiAJPiAgICAgICBlc3NlbmNlL29iamVjdCBlZmZlY3RzIGFsbCB0aGUgcnVsZXMgdXNp bmcgaXQuDQo+IAk+DQo+IAk+ICAgICAgIE1vdGl2YXRpb24gYW5kIGV4YW1wbGUNCj4gCT4gICAg ICAgPT09DQo+IAk+ICAgICAgIEFkZGluZyBvciByZW1vdmluZyBvbmUgb3IgbW9yZSBxdWV1ZXMg dG8gUlNTIHVzZWQgYnkgbXVsdGlwbGUNCj4gZmxvdw0KPiAJPiBydWxlcw0KPiAJPiAgICAgICBp bXBvc2VzIHBlciBydWxlIHRvbGwgZm9yIGN1cnJlbnQgRFBESyBmbG93IEFQSTsgdGhlIHNjZW5h cmlvDQo+IHJlcXVpcmVzDQo+IAk+ICAgICAgIGZvciBlYWNoIGZsb3cgc2hhcmluZyBjbG9uZWQg UlNTIGFjdGlvbjoNCj4gCT4gICAgICAgLSBjYWxsIGBydGVfZmxvd19kZXN0cm95KClgDQo+IAk+ ICAgICAgIC0gY2FsbCBgcnRlX2Zsb3dfY3JlYXRlKClgIHdpdGggbW9kaWZpZWQgUlNTIGFjdGlv bg0KPiAJPg0KPiAJPiAgICAgICBBUEkgZm9yIHNoYXJpbmcgYWN0aW9uIGFuZCBpdHMgaW4tcGxh Y2UgdXBkYXRlIGJlbmVmaXRzOg0KPiAJPiAgICAgICAtIHJlZHVjZSB0aGUgb3ZlcmhlYWQgb2Yg bXVsdGlwbGUgUlNTIGZsb3cgcnVsZXMgcmVjb25maWd1cmF0aW9uDQo+IAk+ICAgICAgIC0gb3B0 aW1pemUgcmVzb3VyY2UgdXRpbGl6YXRpb24gYnkgc2hhcmluZyBhY3Rpb24gYWNyb3NzIG9mIG11 bHRpcGxlDQo+IAk+ICAgICAgICAgZmxvd3MNCj4gCT4NCj4gCT4gICAgICAgQ2hhbmdlIGRlc2Ny aXB0aW9uDQo+IAk+ICAgICAgID09PQ0KPiAJPg0KPiAJPiAgICAgICBTaGFyZWQgYWN0aW9uDQo+ IAk+ICAgICAgID09PQ0KPiAJPiAgICAgICBJbiBvcmRlciB0byByZXByZXNlbnQgZmxvdyBhY3Rp b24gc2hhcmVkIGJ5IG11bHRpcGxlIGZsb3dzIG5ldw0KPiBhY3Rpb24NCj4gCT4gICAgICAgdHlw ZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TSEFSRUQgaXMgaW50cm9kdWNlZCAoc2VlIGBlbnVtDQo+ IAk+ICAgICAgIHJ0ZV9mbG93X2FjdGlvbl90eXBlYCkuDQo+IAk+ICAgICAgIEFjdHVhbGx5IHRo ZSBpbnRyb2R1Y2VkIEFQSSBkZWNvdXBsZXMgYWN0aW9uIGZyb20gYW55IHNwZWNpZmljIGZsb3cN Cj4gYW5kDQo+IAk+ICAgICAgIGVuYWJsZXMgc2hhcmluZyBvZiBzaW5nbGUgYWN0aW9uIGJ5IGl0 cyBoYW5kbGUgYWNyb3NzIG11bHRpcGxlIGZsb3dzLg0KPiAJPg0KPiAJPiAgICAgICBTaGFyZWQg YWN0aW9uIGNyZWF0ZS91c2UvZGVzdHJveQ0KPiAJPiAgICAgICA9PT0NCj4gCT4gICAgICAgU2hh cmVkIGFjdGlvbiBtYXkgYmUgcmV1c2VkIGJ5IHNvbWUgb3Igbm9uZSBmbG93IHJ1bGVzIGF0IGFu eQ0KPiBnaXZlbg0KPiAJPiAgICAgICBtb21lbnQsIGkuZS4gc2hhcmVkIGFjdGlvbiByZXNpZGUg b3V0c2lkZSBvZiB0aGUgY29udGV4dCBvZiBhbnkNCj4gZmxvdy4NCj4gCT4gICAgICAgU2hhcmVk IGFjdGlvbiByZXByZXNlbnQgSFcgcmVzb3VyY2VzL29iamVjdHMgdXNlZCBmb3IgYWN0aW9uDQo+ IAk+IG9mZmxvYWRpbmcNCj4gCT4gICAgICAgaW1wbGVtZW50YXRpb24uDQo+IAk+ICAgICAgIEFQ SSBmb3Igc2hhcmVkIGFjdGlvbiBjcmVhdGUgKHNlZQ0KPiBgcnRlX2Zsb3dfc2hhcmVkX2FjdGlv bl9jcmVhdGUoKWApOg0KPiAJPiAgICAgICAtIHNob3VsZCBhbGxvY2F0ZSBIVyByZXNvdXJjZXMg YW5kIG1ha2UgcmVsYXRlZCBpbml0aWFsaXphdGlvbnMNCj4gcmVxdWlyZWQNCj4gCT4gICAgICAg ICBmb3Igc2hhcmVkIGFjdGlvbiBpbXBsZW1lbnRhdGlvbi4NCj4gCT4gICAgICAgLSBtYWtlIG5l Y2Vzc2FyeSBwcmVwYXJhdGlvbnMgdG8gbWFpbnRhaW4gc2hhcmVkIGFjY2VzcyB0bw0KPiAJPiAg ICAgICAgIHRoZSBhY3Rpb24gcmVzb3VyY2VzLCBjb25maWd1cmF0aW9uIGFuZCBzdGF0ZS4NCj4g CT4gICAgICAgQVBJIGZvciBzaGFyZWQgYWN0aW9uIGRlc3Ryb3kgKHNlZQ0KPiBgcnRlX2Zsb3df c2hhcmVkX2FjdGlvbl9kZXN0cm95KClgKQ0KPiAJPiAgICAgICBzaG91bGQgcmVsZWFzZSBIVyBy ZXNvdXJjZXMgYW5kIG1ha2UgcmVsYXRlZCBjbGVhbnVwcyByZXF1aXJlZA0KPiBmb3INCj4gCT4g c2hhcmVkDQo+IAk+ICAgICAgIGFjdGlvbiBpbXBsZW1lbnRhdGlvbi4NCj4gCT4NCj4gCT4gICAg ICAgSW4gb3JkZXIgdG8gc2hhcmUgc29tZSBmbG93IGFjdGlvbiByZXVzZSB0aGUgaGFuZGxlIG9m IHR5cGUNCj4gCT4gICAgICAgYHN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uYCByZXR1cm5l ZCBieQ0KPiAJPiAgICAgICBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2NyZWF0ZSgpIGFzIGEgYGNv bmZgIGZpZWxkIG9mDQo+IAk+ICAgICAgIGBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uYCAoc2VlICJl eGFtcGxlIiBzZWN0aW9uKS4NCj4gCT4NCj4gCT4gICAgICAgSWYgc29tZSBzaGFyZWQgYWN0aW9u IG5vdCB1c2VkIGJ5IGFueSBmbG93IHJ1bGUgYWxsIHJlc291cmNlcw0KPiBhbGxvY2F0ZWQNCj4g CT4gICAgICAgYnkgdGhlIHNoYXJlZCBhY3Rpb24gY2FuIGJlIHJlbGVhc2VkIGJ5DQo+IAk+IHJ0 ZV9mbG93X3NoYXJlZF9hY3Rpb25fZGVzdHJveSgpDQo+IAk+ICAgICAgIChzZWUgImV4YW1wbGUi IHNlY3Rpb24pLiBUaGUgc2hhcmVkIGFjdGlvbiBoYW5kbGUgcGFzc2VkIGFzDQo+IGFyZ3VtZW50 DQo+IAk+IHRvDQo+IAk+ICAgICAgIGRlc3Ryb3kgQVBJIHNob3VsZCBub3QgYmUgdXNlZCBhbnkg ZnVydGhlciBpLmUuIHJlc3VsdCBvZiB0aGUgdXNhZ2UgaXMNCj4gCT4gICAgICAgdW5kZWZpbmVk Lg0KPiAJPg0KPiAJPiAgICAgICBTaGFyZWQgYWN0aW9uIHJlLWNvbmZpZ3VyYXRpb24NCj4gCT4g ICAgICAgPT09DQo+IAk+ICAgICAgIFNoYXJlZCBhY3Rpb24gYmVoYXZpb3IgZGVmaW5lZCBieSBp dHMgY29uZmlndXJhdGlvbiBjYW4gYmUgdXBkYXRlZA0KPiB2aWENCj4gCT4gICAgICAgcnRlX2Zs b3dfc2hhcmVkX2FjdGlvbl91cGRhdGUoKSAoc2VlICJleGFtcGxlIiBzZWN0aW9uKS4gVGhlDQo+ IHNoYXJlZA0KPiAJPiAgICAgICBhY3Rpb24gdXBkYXRlIG9wZXJhdGlvbiBtb2RpZmllcyBIVyBy ZWxhdGVkIHJlc291cmNlcy9vYmplY3RzDQo+IAk+IGFsbG9jYXRlZA0KPiAJPiAgICAgICBvbiB0 aGUgYWN0aW9uIGNyZWF0aW9uLiBUaGUgbnVtYmVyIG9mIG9wZXJhdGlvbnMgcGVyZm9ybWVkIGJ5 DQo+IHRoZQ0KPiAJPiB1cGRhdGUNCj4gCT4gICAgICAgb3BlcmF0aW9uIHNob3VsZCBub3QgYmUg ZGVwZW5kZW50IG9uIG51bWJlciBvZiBmbG93cyBzaGFyaW5nIHRoZQ0KPiAJPiByZWxhdGVkDQo+ IAk+ICAgICAgIGFjdGlvbi4gT24gcmV0dXJuIG9mIHNoYXJlZCBhY3Rpb24gdXBkYXRlIEFQSSBh Y3Rpb24gYmVoYXZpb3INCj4gc2hvdWxkIGJlDQo+IAk+ICAgICAgIGFjY29yZGluZyB0byB1cGRh dGVkIGNvbmZpZ3VyYXRpb24gZm9yIGFsbCBmbG93cyBzaGFyaW5nIHRoZSBhY3Rpb24uDQo+IAk+ DQo+IAk+ICAgICAgIFNoYXJlZCBhY3Rpb24gcXVlcnkNCj4gCT4gICAgICAgPT09DQo+IAk+ICAg ICAgIFByb3ZpZGUgc2VwYXJhdGUgQVBJIHRvIHF1ZXJ5IHNoYXJlZCBhY3Rpb24gc2F0ZSAoc2Vl DQo+IAk+ICAgICAgIHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fdXBkYXRlKCkpLiBUYWtpbmcgYSBj b3VudGVyIGFzIGFuDQo+IGV4YW1wbGU6DQo+IAk+IHF1ZXJ5DQo+IAk+ICAgICAgIHJldHVybnMg dmFsdWUgYWdncmVnYXRpbmcgYWxsIGNvdW50ZXIgaW5jcmVtZW50cyBhY3Jvc3MgYWxsIGZsb3cN Cj4gcnVsZXMNCj4gCT4gICAgICAgc2hhcmluZyB0aGUgY291bnRlci4NCj4gCT4NCj4gCT4gICAg ICAgUE1EIHN1cHBvcnQNCj4gCT4gICAgICAgPT09DQo+IAk+ICAgICAgIFRoZSBzdXBwb3J0IG9m IGludHJvZHVjZWQgQVBJIGlzIHB1cmUgUE1EIHNwZWNpZmljIGRlc2lnbiBhbmQNCj4gCT4gICAg ICAgcmVzcG9uc2liaWxpdHkgZm9yIGVhY2ggYWN0aW9uIHR5cGUgKHNlZSBzdHJ1Y3QgcnRlX2Zs b3dfb3BzKS4NCj4gCT4NCj4gCT4gICAgICAgdGVzdHBtZA0KPiAJPiAgICAgICA9PT0NCj4gCT4g ICAgICAgSW4gb3JkZXIgdG8gdXRpbGl6ZSBpbnRyb2R1Y2VkIEFQSSB0ZXN0cG1kIGNsaSBtYXkg aW1wbGVtZW50DQo+IGZvbGxvd2luZw0KPiAJPiAgICAgICBleHRlbnNpb24NCj4gCT4gICAgICAg Y3JlYXRlL3VwZGF0ZS9kZXN0cm95L3F1ZXJ5IHNoYXJlZCBhY3Rpb24gYWNjb3JkaW5nbHkNCj4g CT4NCj4gCT4gICAgICAgZmxvdyBzaGFyZWRfYWN0aW9uIGNyZWF0ZSB7cG9ydF9pZH0gW2luZGV4 XSB7YWN0aW9ufQ0KPiAJPiAgICAgICBmbG93IHNoYXJlZF9hY3Rpb24gdXBkYXRlIHtwb3J0X2lk fSB7aW5kZXh9IHthY3Rpb259DQo+IAk+ICAgICAgIGZsb3cgc2hhcmVkX2FjdGlvbiBkZXN0cm95 IHtwb3J0X2lkfSB7aW5kZXh9DQo+IAk+ICAgICAgIGZsb3cgc2hhcmVkX2FjdGlvbiBxdWVyeSB7 cG9ydF9pZH0ge2luZGV4fQ0KPiAJPg0KPiAJPiAgICAgICB0ZXN0cG1kIGV4YW1wbGUNCj4gCT4g ICAgICAgPT09DQo+IAk+DQo+IAk+ICAgICAgIGNvbmZpZ3VyZSByc3MgdG8gcXVldWVzIDEgJiAy DQo+IAk+DQo+IAk+ICAgICAgIHRlc3RwbWQ+IGZsb3cgc2hhcmVkX2FjdGlvbiBjcmVhdGUgMCAx MDAgcnNzIDEgMg0KPiAJPg0KPiAJPiAgICAgICBjcmVhdGUgZmxvdyBydWxlIHV0aWxpemluZyBz aGFyZWQgYWN0aW9uDQo+IAk+DQo+IAk+ICAgICAgIHRlc3RwbWQ+IGZsb3cgY3JlYXRlIDAgaW5n cmVzcyBcDQo+IAk+ICAgICAgICAgICBwYXR0ZXJuIGV0aCBkc3QgaXMgMGM6NDI6YTE6MTU6ZmQ6 YWMgLyBpcHY2IC8gdGNwIC8gZW5kIFwNCj4gCT4gICAgICAgICBhY3Rpb25zIHNoYXJlZCAxMDAg ZW5kIC8gZW5kDQo+IAk+DQo+IAk+ICAgICAgIGFkZCAyIG1vcmUgcXVldWVzDQo+IAk+DQo+IAk+ ICAgICAgIHRlc3RwbWQ+IGZsb3cgc2hhcmVkX2FjdGlvbiBtb2RpZnkgMCAxMDAgcnNzIDEgMiAz IDQNCj4gCT4NCj4gCT4gICAgICAgZXhhbXBsZQ0KPiAJPiAgICAgICA9PT0NCj4gCT4NCj4gCT4g ICAgICAgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiBhY3Rpb25zWzJdOw0KPiAJPiAgICAgICBzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uIGFjdGlvbjsNCj4gCT4gICAgICAgLyogc2tpcHBlZDogaW5pdGlh bGl6ZSBhY3Rpb24gKi8NCj4gCT4gICAgICAgc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24g KmhhbmRsZSA9DQo+IAk+IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fY3JlYXRlKA0KPiAJPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydF9pZCwgJmFjdGlv biwgJmVycm9yKTsNCj4gCT4gICAgICAgYWN0aW9uc1swXS50eXBlID0gUlRFX0ZMT1dfQUNUSU9O X1RZUEVfU0hBUkVEOw0KPiAJPiAgICAgICBhY3Rpb25zWzBdLmNvbmYgPSBoYW5kbGU7DQo+IAk+ ICAgICAgIGFjdGlvbnNbMV0udHlwZSA9IFJURV9GTE9XX0FDVElPTl9UWVBFX0VORDsNCj4gCT4g ICAgICAgLyogc2tpcHBlZDogaW5pdCBhdHRyMCAmIHBhdHRlcm4wIGFyZ3MgKi8NCj4gCT4gICAg ICAgc3RydWN0IHJ0ZV9mbG93ICpmbG93MCA9IHJ0ZV9mbG93X2NyZWF0ZShwb3J0X2lkLCAmYXR0 cjAsDQo+IHBhdHRlcm4wLA0KPiAJPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYWN0aW9ucywgZXJyb3IpOw0KPiAJPiAgICAgICAvKiBjcmVhdGUgbW9yZSBy dWxlcyByZXVzaW5nIHNoYXJlZCBhY3Rpb24gKi8NCj4gCT4gICAgICAgc3RydWN0IHJ0ZV9mbG93 ICpmbG93MSA9IHJ0ZV9mbG93X2NyZWF0ZShwb3J0X2lkLCAmYXR0cjEsDQo+IHBhdHRlcm4xLA0K PiAJPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9u cywgZXJyb3IpOw0KPiAJPiAgICAgICAvKiBza2lwcGVkOiBmb3IgZmxvd3MgMiB0aWxsIE4gKi8N Cj4gCT4gICAgICAgc3RydWN0IHJ0ZV9mbG93ICpmbG93TiA9IHJ0ZV9mbG93X2NyZWF0ZShwb3J0 X2lkLCAmYXR0ck4sDQo+IHBhdHRlcm5OLA0KPiAJPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucywgZXJyb3IpOw0KPiAJPiAgICAgICAvKiB1cGRh dGUgc2hhcmVkIGFjdGlvbiAqLw0KPiAJPiAgICAgICBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uIHVw ZGF0ZWRfYWN0aW9uOw0KPiAJPiAgICAgICAvKg0KPiAJPiAgICAgICAgKiBza2lwcGVkOiBpbml0 aWFsaXplIHVwZGF0ZWRfYWN0aW9uIGFjY29yZGluZyB0byBkZXNpcmVkIGFjdGlvbg0KPiAJPiAg ICAgICAgKiBjb25maWd1cmF0aW9uIGNoYW5nZQ0KPiAJPiAgICAgICAgKi8NCj4gCT4gICAgICAg cnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl91cGRhdGUocG9ydF9pZCwgaGFuZGxlLA0KPiAmdXBkYXRl ZF9hY3Rpb24sDQo+IAk+IGVycm9yKTsNCj4gCT4gICAgICAgLyoNCj4gCT4gICAgICAgICogZnJv bSBub3cgb24gYWxsIGZsb3dzIDEgdGlsbCBOIHdpbGwgYWN0IGFjY29yZGluZyB0byBjb25maWd1 cmF0aW9uDQo+IG9mDQo+IAk+ICAgICAgICAqIHVwZGF0ZWRfYWN0aW9uDQo+IAk+ICAgICAgICAq Lw0KPiAJPiAgICAgICAvKiBza2lwcGVkOiBkZXN0cm95IGFsbCBmbG93cyAxIHRpbGwgTiAqLw0K PiAJPiAgICAgICBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2Rlc3Ryb3kocG9ydF9pZCwgaGFuZGxl LCBlcnJvcik7DQo+IAk+DQo+IAk+ICAgICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJleSBWZXNub3Zh dHkgPGFuZHJleXZAbWVsbGFub3guY29tDQo+IDxtYWlsdG86YW5kcmV5dkBtZWxsYW5veC5jb20+ DQo+IAk+IDxtYWlsdG86YW5kcmV5dkBtZWxsYW5veC5jb20gPG1haWx0bzphbmRyZXl2QG1lbGxh bm94LmNvbT4gPg0KPiA+DQo+IAk+ICAgICAgIC0tLQ0KPiAJPiAgICAgICAgbGliL2xpYnJ0ZV9l dGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1hcCB8ICAgNiArDQo+IAk+ICAgICAgICBsaWIvbGli cnRlX2V0aGRldi9ydGVfZmxvdy5jICAgICAgICAgICAgIHwgIDgxICsrKysrKysrKysrKysNCj4g CT4gICAgICAgIGxpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmggICAgICAgICAgICAgfCAxNDgN Cj4gKysrKysrKysrKysrKysrKysrKysrKy0NCj4gCT4gICAgICAgIGxpYi9saWJydGVfZXRoZGV2 L3J0ZV9mbG93X2RyaXZlci5oICAgICAgfCAgMjIgKysrKw0KPiAJPiAgICAgICAgNCBmaWxlcyBj aGFuZ2VkLCAyNTYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiAJPg0KPiAJPiAgICAg ICBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1hcA0K PiAJPiBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9ldGhkZXZfdmVyc2lvbi5tYXANCj4gCT4gICAg ICAgaW5kZXggNzE1NTA1NjA0NS4uMTE5ZDg0OTc2YSAxMDA2NDQNCj4gCT4gICAgICAgLS0tIGEv bGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl92ZXJzaW9uLm1hcA0KPiAJPiAgICAgICArKysg Yi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2X3ZlcnNpb24ubWFwDQo+IAk+ICAgICAgIEBA IC0yNDEsNCArMjQxLDEwIEBAIEVYUEVSSU1FTlRBTCB7DQo+IAk+ICAgICAgICAgICAgICAgX19y dGVfZXRoZGV2X3RyYWNlX3J4X2J1cnN0Ow0KPiAJPiAgICAgICAgICAgICAgIF9fcnRlX2V0aGRl dl90cmFjZV90eF9idXJzdDsNCj4gCT4gICAgICAgICAgICAgICBydGVfZmxvd19nZXRfYWdlZF9m bG93czsNCj4gCT4gICAgICAgKw0KPiAJPiAgICAgICArICAgICAgICMgYWRkZWQgaW4gMjAuMDgN Cj4gCT4gICAgICAgKyAgICAgICBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2NyZWF0ZTsNCj4gCT4g ICAgICAgKyAgICAgICBydGVfZmxvd19zaGFyZWRfYWN0aW9uX2Rlc3Ryb3k7DQo+IAk+ICAgICAg ICsgICAgICAgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl91cGRhdGU7DQo+IAk+ICAgICAgICsgICAg ICAgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9xdWVyeTsNCj4gCT4gICAgICAgIH07DQo+IAk+ICAg ICAgIGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5jDQo+IGIvbGliL2xp YnJ0ZV9ldGhkZXYvcnRlX2Zsb3cuYw0KPiAJPiAgICAgICBpbmRleCAxNjg1YmU1ZjczLi4wYWM0 ZDMxYTEzIDEwMDY0NA0KPiAJPiAgICAgICAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxv dy5jDQo+IAk+ICAgICAgICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmMNCj4gCT4g ICAgICAgQEAgLTEyNTAsMyArMTI1MCw4NCBAQCBydGVfZmxvd19nZXRfYWdlZF9mbG93cyh1aW50 MTZfdA0KPiBwb3J0X2lkLA0KPiAJPiB2b2lkICoqY29udGV4dHMsDQo+IAk+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lG SUVELA0KPiAJPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg cnRlX3N0cmVycm9yKEVOT1RTVVApKTsNCj4gCT4gICAgICAgIH0NCj4gCT4gICAgICAgKw0KPiAJ PiAgICAgICArc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKg0KPiAJPiAgICAgICArcnRl X2Zsb3dfc2hhcmVkX2FjdGlvbl9jcmVhdGUodWludDE2X3QgcG9ydF9pZCwNCj4gCT4gICAgICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlv biAqYWN0aW9uLA0KPiAJPg0KPiAJPg0KPiAJPiBJdCB3aWxsIGJlIGdvb2QgdG8gaGF2ZSBhbiBh dHRyaWJ1dGVzIGFyZ3VtZW50IGhlcmUuDQo+IAk+IFNvbWUgaGFyZHdhcmUgZGV2aWNlcyBtYXkg aGF2ZSBpbmdyZXNzIGFuZCBlZ3Jlc3MgcmVzb3VyY2UgcG9vbHMuDQo+IAk+IFNvIGEgJ2RpcmVj dGlvbicgYXR0cmlidXRlIGNhbiBoZWxwIHNoYXJlIHRoZSByZXNvdXJjZSBlZmZlY3RpdmVseS4N Cj4gDQo+IAlJIHVuZGVyc3RhbmQgdGhlIGlkZWEgb2YgSFcgaW5ncmVzcy9lZ3Jlc3MgcmVzb3Vy Y2Ugc2VwYXJhdGlvbi4NCj4gCVVuZm9ydHVuYXRlbHkgb24gc2hhcmVkIGFjdGlvbiBjcmVhdGlv biBpdCdzIG5vdCBkZWZpbmVkIGlmIGl0IHdpbGwgYmUgdXNlZA0KPiAJaW4gaW5ncmVzcyBvciBl Z3Jlc3MgZmxvdyBvciBib3RoLg0KPiAJSXMgdGhlIHN1Z2dlc3Rpb24gaXMgdG8gcmVzdHJpY3Qg dXNhZ2Ugb2Ygc2hhcmVkIGFjdGlvbiB0byBzaW5nbGUgZGlyZWN0aW9uPw0KPiANCj4gDQo+IElu IGEgd2F5LCBpdCBpcyBtb3JlIHRvIGFkZCBmbGV4aWJpbGl0eSB0byB0aGlzIHByb3Bvc2FsLg0K PiBTcGVjaWZ5aW5nIHRoZSBkaXJlY3Rpb24gZXhwbGljaXRseSBpcyBiZXR0ZXIgdGhhbiBQTUQg cGFyc2luZyB0aGUgYWN0aW9ucw0KPiBhbmQgZGV0ZXJtaW5pbmcgaWYgaXQgaXMgZm9yIGluZ3Jl c3Mgb3IgZWdyZXNzLg0KPiANCj4gSWYgaGFyZHdhcmUgZG9lcyBub3QgaGF2ZSBzcGVjaWZpYyBw b29scyBmb3IgZWl0aGVyIGluZ3Jlc3Mgb3IgZWdyZXNzLA0KPiB0aGUgUE1EIGNhbiBpZ25vcmUg dGhlIGF0dHJpYnV0ZS4NCj4gU28gaXQgd2lsbCBiZSB1cHRvIHRoZSBQTUQgYW5kIHRoZSB1bmRl cmx5aW5nIGhhcmR3YXJlIHRvIHVzZSB0aGUNCj4gZGlyZWN0aW9uIGF0dHJpYnV0ZSAtIGlmIG5l Y2Vzc2FyeS4NCj4gDQo+IA0KPiANCj4gDQo+IAk+DQo+IAk+DQo+IAk+DQo+IAk+ICAgICAgICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3Ip DQo+IAk+ICAgICAgICt7DQo+IAk+ICAgICAgICsgICAgICAgc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiAJPiAgICAgICArICAgICAgIHN0cnVj dCBydGVfZmxvd19zaGFyZWRfYWN0aW9uICpzaGFyZWRfYWN0aW9uOw0KPiAJPiAgICAgICArICAg ICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19nZXQocG9y dF9pZCwNCj4gZXJyb3IpOw0KPiAJPiAgICAgICArDQo+IAk+ICAgICAgICsgICAgICAgaWYgKHVu bGlrZWx5KCFvcHMpKQ0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7DQo+ IAk+ICAgICAgICsgICAgICAgaWYgKGxpa2VseSghIW9wcy0+c2hhcmVkX2FjdGlvbl9jcmVhdGUp KSB7DQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICBzaGFyZWRfYWN0aW9uID0gb3BzLT5zaGFy ZWRfYWN0aW9uX2NyZWF0ZShkZXYsIGFjdGlvbiwNCj4gCT4gZXJyb3IpOw0KPiAJPiAgICAgICAr ICAgICAgICAgICAgICAgaWYgKHNoYXJlZF9hY3Rpb24gPT0gTlVMTCkNCj4gCT4gICAgICAgKyAg ICAgICAgICAgICAgICAgICAgICAgZmxvd19lcnIocG9ydF9pZCwgLXJ0ZV9lcnJubywgZXJyb3Ip Ow0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgcmV0dXJuIHNoYXJlZF9hY3Rpb247DQo+IAk+ ICAgICAgICsgICAgICAgfQ0KPiAJPiAgICAgICArICAgICAgIHJ0ZV9mbG93X2Vycm9yX3NldChl cnJvciwgRU5PU1lTLA0KPiAJPiBSVEVfRkxPV19FUlJPUl9UWVBFX1VOU1BFQ0lGSUVELA0KPiAJ PiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBydGVfc3RyZXJyb3IoRU5P U1lTKSk7DQo+IAk+ICAgICAgICsgICAgICAgcmV0dXJuIE5VTEw7DQo+IAk+ICAgICAgICt9DQo+ IAk+ICAgICAgICsNCj4gCT4gICAgICAgK2ludA0KPiAJPiAgICAgICArcnRlX2Zsb3dfc2hhcmVk X2FjdGlvbl9kZXN0cm95KHVpbnQxNl90IHBvcnRfaWQsDQo+IAk+ICAgICAgICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0aW9uICphY3Rpb24s DQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxv d19lcnJvciAqZXJyb3IpDQo+IAk+ICAgICAgICt7DQo+IAk+ICAgICAgICsgICAgICAgc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiAJPiAgICAg ICArICAgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19n ZXQocG9ydF9pZCwNCj4gZXJyb3IpOw0KPiAJPiAgICAgICArDQo+IAk+ICAgICAgICsgICAgICAg aWYgKHVubGlrZWx5KCFvcHMpKQ0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgcmV0dXJuIC1y dGVfZXJybm87DQo+IAk+ICAgICAgICsgICAgICAgaWYgKGxpa2VseSghIW9wcy0+c2hhcmVkX2Fj dGlvbl9kZXN0cm95KSkNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgIHJldHVybiBmbG93X2Vy cihwb3J0X2lkLA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w cy0+c2hhcmVkX2FjdGlvbl9kZXN0cm95KGRldiwgYWN0aW9uLCBlcnJvciksDQo+IAk+ICAgICAg ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IpOw0KPiAJPiAgICAgICArICAg ICAgIHJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1NZUywNCj4gCT4gICAgICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5T UEVDSUZJRUQsDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLCBydGVfc3RyZXJyb3IoRU5PU1lTKSk7DQo+IAk+ICAgICAgICt9DQo+IAk+ICAgICAgICsN Cj4gCT4gICAgICAgK2ludA0KPiAJPiAgICAgICArcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl91cGRh dGUodWludDE2X3QgcG9ydF9pZCwNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKmFjdGlvbiwNCj4gCT4gICAgICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlv biAqdXBkYXRlLA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKQ0KPiAJPiAgICAgICArew0KPiAJPiAgICAgICArICAg ICAgIHN0cnVjdCBydGVfZXRoX2RldiAqZGV2ID0gJnJ0ZV9ldGhfZGV2aWNlc1twb3J0X2lkXTsN Cj4gCT4gICAgICAgKyAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICpvcHMgPSBydGVf Zmxvd19vcHNfZ2V0KHBvcnRfaWQsDQo+IGVycm9yKTsNCj4gCT4gICAgICAgKw0KPiAJPiAgICAg ICArICAgICAgIGlmICh1bmxpa2VseSghb3BzKSkNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAg IHJldHVybiAtcnRlX2Vycm5vOw0KPiAJPiAgICAgICArICAgICAgIGlmIChsaWtlbHkoISFvcHMt PnNoYXJlZF9hY3Rpb25fdXBkYXRlKSkNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgIHJldHVy biBmbG93X2Vycihwb3J0X2lkLCBvcHMtPnNoYXJlZF9hY3Rpb25fdXBkYXRlKGRldiwNCj4gCT4g YWN0aW9uLA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0 ZSwgZXJyb3IpLA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICBlcnJvcik7DQo+ IAk+ICAgICAgICsgICAgICAgcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PU1lT LA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0ZMT1df RVJST1JfVFlQRV9VTlNQRUNJRklFRCwNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIHJ0ZV9zdHJlcnJvcihFTk9TWVMpKTsNCj4gCT4gICAgICAgK30N Cj4gCT4gICAgICAgKw0KPiAJPiAgICAgICAraW50DQo+IAk+ICAgICAgICtydGVfZmxvd19zaGFy ZWRfYWN0aW9uX3F1ZXJ5KHVpbnQxNl90IHBvcnRfaWQsDQo+IAk+ICAgICAgICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKmFj dGlvbiwNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRh LA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxv d19lcnJvciAqZXJyb3IpDQo+IAk+ICAgICAgICt7DQo+IAk+ICAgICAgICsgICAgICAgc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiAJPiAgICAg ICArICAgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKm9wcyA9IHJ0ZV9mbG93X29wc19n ZXQocG9ydF9pZCwNCj4gZXJyb3IpOw0KPiAJPiAgICAgICArDQo+IAk+ICAgICAgICsgICAgICAg aWYgKHVubGlrZWx5KCFvcHMpKQ0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgcmV0dXJuIC1y dGVfZXJybm87DQo+IAk+ICAgICAgICsgICAgICAgaWYgKGxpa2VseSghIW9wcy0+c2hhcmVkX2Fj dGlvbl9xdWVyeSkpDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICByZXR1cm4gZmxvd19lcnIo cG9ydF9pZCwgb3BzLT5zaGFyZWRfYWN0aW9uX3F1ZXJ5KGRldiwNCj4gCT4gYWN0aW9uLA0KPiAJ PiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIGVycm9yKSwNCj4g CT4gICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IpOw0KPiAJPiAgICAgICArICAg ICAgIHJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVOT1NZUywNCj4gCT4gICAgICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURV9GTE9XX0VSUk9SX1RZUEVfVU5T UEVDSUZJRUQsDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLCBydGVfc3RyZXJyb3IoRU5PU1lTKSk7DQo+IAk+ICAgICAgICt9DQo+IAk+ICAgICAgIGRp ZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+IGIvbGliL2xpYnJ0ZV9l dGhkZXYvcnRlX2Zsb3cuaA0KPiAJPiAgICAgICBpbmRleCBiMGU0MTk5MTkyLi4yNTc0NTZiMTRh IDEwMDY0NA0KPiAJPiAgICAgICAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9ydGVfZmxvdy5oDQo+ IAk+ICAgICAgICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93LmgNCj4gCT4gICAgICAg QEAgLTE2ODEsNyArMTY4MSw4IEBAIGVudW0gcnRlX2Zsb3dfYWN0aW9uX3R5cGUgew0KPiAJPiAg ICAgICAgICAgICAgIC8qKg0KPiAJPiAgICAgICAgICAgICAgICAqIEVuYWJsZXMgY291bnRlcnMg Zm9yIHRoaXMgZmxvdyBydWxlLg0KPiAJPiAgICAgICAgICAgICAgICAqDQo+IAk+ICAgICAgIC0g ICAgICAgICogVGhlc2UgY291bnRlcnMgY2FuIGJlIHJldHJpZXZlZCBhbmQgcmVzZXQgdGhyb3Vn aA0KPiAJPiBydGVfZmxvd19xdWVyeSgpLA0KPiAJPiAgICAgICArICAgICAgICAqIFRoZXNlIGNv dW50ZXJzIGNhbiBiZSByZXRyaWV2ZWQgYW5kIHJlc2V0IHRocm91Z2gNCj4gCT4gcnRlX2Zsb3df cXVlcnkoKSBvcg0KPiAJPiAgICAgICArICAgICAgICAqIHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25f cXVlcnkoKSBpZiB0aGUgYWN0aW9uIHByb3ZpZGVkIHZpYQ0KPiAJPiBoYW5kbGUsDQo+IAk+ICAg ICAgICAgICAgICAgICogc2VlIHN0cnVjdCBydGVfZmxvd19xdWVyeV9jb3VudC4NCj4gCT4gICAg ICAgICAgICAgICAgKg0KPiAJPiAgICAgICAgICAgICAgICAqIFNlZSBzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX2NvdW50Lg0KPiAJPiAgICAgICBAQCAtMjA5OSw2ICsyMTAwLDE0IEBAIGVudW0gcnRl X2Zsb3dfYWN0aW9uX3R5cGUgew0KPiAJPiAgICAgICAgICAgICAgICAqIHNlZSBlbnVtIFJURV9F VEhfRVZFTlRfRkxPV19BR0VEDQo+IAk+ICAgICAgICAgICAgICAgICovDQo+IAk+ICAgICAgICAg ICAgICAgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfQUdFLA0KPiAJPiAgICAgICArDQo+IAk+ICAgICAg ICsgICAgICAgLyoqDQo+IAk+ICAgICAgICsgICAgICAgICogRGVzY3JpYmVzIGFjdGlvbiBzaGFy ZWQgYSBjcm9zcyBtdWx0aXBsZSBmbG93IHJ1bGVzLg0KPiAJPiAgICAgICArICAgICAgICAqDQo+ IAk+ICAgICAgICsgICAgICAgICogRW5hYmxlcyBtdWx0aXBsZSBydWxlcyByZWZlcmVuY2UgdGhl IHNhbWUgYWN0aW9uIGJ5IGhhbmRsZQ0KPiAoc2VlDQo+IAk+ICAgICAgICsgICAgICAgICogc3Ry dWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24pLg0KPiAJPiAgICAgICArICAgICAgICAqLw0KPiAJ PiAgICAgICArICAgICAgIFJURV9GTE9XX0FDVElPTl9UWVBFX1NIQVJFRCwNCj4gCT4gICAgICAg IH07DQo+IAk+DQo+IAk+ICAgICAgICAvKioNCj4gCT4gICAgICAgQEAgLTI2NjAsNiArMjY2OSwy MCBAQCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3NldF9kc2NwIHsNCj4gCT4gICAgICAgICAgICAg ICB1aW50OF90IGRzY3A7DQo+IAk+ICAgICAgICB9Ow0KPiAJPg0KPiAJPiAgICAgICArDQo+IAk+ ICAgICAgICsvKioNCj4gCT4gICAgICAgKyAqIFJURV9GTE9XX0FDVElPTl9UWVBFX1NIQVJFRA0K PiAJPiAgICAgICArICoNCj4gCT4gICAgICAgKyAqIE9wYXF1ZSB0eXBlIHJldHVybmVkIGFmdGVy IHN1Y2Nlc3NmdWxseSBjcmVhdGluZyBhIHNoYXJlZA0KPiBhY3Rpb24uDQo+IAk+ICAgICAgICsg Kg0KPiAJPiAgICAgICArICogVGhpcyBoYW5kbGUgY2FuIGJlIHVzZWQgdG8gbWFuYWdlIGFuZCBx dWVyeSB0aGUgcmVsYXRlZA0KPiBhY3Rpb246DQo+IAk+ICAgICAgICsgKiAtIHNoYXJlIGl0IGEg Y3Jvc3MgbXVsdGlwbGUgZmxvdyBydWxlcw0KPiAJPiAgICAgICArICogLSB1cGRhdGUgYWN0aW9u IGNvbmZpZ3VyYXRpb24NCj4gCT4gICAgICAgKyAqIC0gcXVlcnkgYWN0aW9uIGRhdGENCj4gCT4g ICAgICAgKyAqIC0gZGVzdHJveSBhY3Rpb24NCj4gCT4gICAgICAgKyAqLw0KPiAJPiAgICAgICAr c3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb247DQo+IAk+ICAgICAgICsNCj4gCT4gICAgICAg IC8qIE1idWYgZHluYW1pYyBmaWVsZCBvZmZzZXQgZm9yIG1ldGFkYXRhLiAqLw0KPiAJPiAgICAg ICAgZXh0ZXJuIGludDMyX3QgcnRlX2Zsb3dfZHluZl9tZXRhZGF0YV9vZmZzOw0KPiAJPg0KPiAJ PiAgICAgICBAQCAtMzMyNCw2ICszMzQ3LDEyOSBAQCBpbnQNCj4gCT4gICAgICAgIHJ0ZV9mbG93 X2dldF9hZ2VkX2Zsb3dzKHVpbnQxNl90IHBvcnRfaWQsIHZvaWQgKipjb250ZXh0cywNCj4gCT4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbmJfY29udGV4dHMsIHN0cnVj dCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiAJPg0KPiAJPiAgICAgICArLyoqDQo+IAk+ICAg ICAgICsgKiBAd2FybmluZw0KPiAJPiAgICAgICArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQ SSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiAJPiAgICAgICArICoNCj4gCT4g ICAgICAgKyAqIENyZWF0ZSBzaGFyZWQgYWN0aW9uIGZvciByZXVzZSBpbiBtdWx0aXBsZSBmbG93 IHJ1bGVzLg0KPiAJPiAgICAgICArICoNCj4gCT4gICAgICAgKyAqIEBwYXJhbVtpbl0gcG9ydF9p ZA0KPiAJPiAgICAgICArICogICAgVGhlIHBvcnQgaWRlbnRpZmllciBvZiB0aGUgRXRoZXJuZXQg ZGV2aWNlLg0KPiAJPiAgICAgICArICogQHBhcmFtW2luXSBhY3Rpb24NCj4gCT4gICAgICAgKyAq ICAgQWN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHNoYXJlZCBhY3Rpb24gY3JlYXRpb24uDQo+IAk+ ICAgICAgICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiAJPiAgICAgICArICogICBQZXJmb3JtIHZl cmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLiBQTURzIGluaXRpYWxpemUNCj4gdGhp cw0KPiAJPiAgICAgICArICogICBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBvbmx5Lg0KPiAJ PiAgICAgICArICogQHJldHVybg0KPiAJPiAgICAgICArICogICBBIHZhbGlkIGhhbmRsZSBpbiBj YXNlIG9mIHN1Y2Nlc3MsIE5VTEwgb3RoZXJ3aXNlIGFuZA0KPiBydGVfZXJybm8gaXMNCj4gCT4g c2V0DQo+IAk+ICAgICAgICsgKiAgIHRvIG9uZSBvZiB0aGUgZXJyb3IgY29kZXMgZGVmaW5lZDoN Cj4gCT4gICAgICAgKyAqICAgLSAoRU5PU1lTKSBpZiB1bmRlcmx5aW5nIGRldmljZSBkb2VzIG5v dCBzdXBwb3J0IHRoaXMNCj4gZnVuY3Rpb25hbGl0eS4NCj4gCT4gICAgICAgKyAqICAgLSAoRUlP KSBpZiB1bmRlcmx5aW5nIGRldmljZSBpcyByZW1vdmVkLg0KPiAJPiAgICAgICArICogICAtIChF SU5WQUwpIGlmICphY3Rpb24qIGludmFsaWQuDQo+IAk+ICAgICAgICsgKiAgIC0gKEVOT1RTVVAp IGlmICphY3Rpb24qIHZhbGlkIGJ1dCB1bnN1cHBvcnRlZC4NCj4gCT4gICAgICAgKyAqLw0KPiAJ PiAgICAgICArX19ydGVfZXhwZXJpbWVudGFsDQo+IAk+ICAgICAgICtzdHJ1Y3QgcnRlX2Zsb3df c2hhcmVkX2FjdGlvbiAqDQo+IAk+ICAgICAgICtydGVfZmxvd19zaGFyZWRfYWN0aW9uX2NyZWF0 ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb24sDQo+IAk+ICAgICAgICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3Ip Ow0KPiAJPiAgICAgICArDQo+IAk+ICAgICAgICsvKioNCj4gCT4gICAgICAgKyAqIEB3YXJuaW5n DQo+IAk+ICAgICAgICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0 aG91dCBwcmlvciBub3RpY2UuDQo+IAk+ICAgICAgICsgKg0KPiAJPiAgICAgICArICogRGVzdHJv eXMgdGhlIHNoYXJlZCBhY3Rpb24gYnkgaGFuZGxlLg0KPiAJPiAgICAgICArICoNCj4gCT4gICAg ICAgKyAqIEBwYXJhbVtpbl0gcG9ydF9pZA0KPiAJPiAgICAgICArICogICAgVGhlIHBvcnQgaWRl bnRpZmllciBvZiB0aGUgRXRoZXJuZXQgZGV2aWNlLg0KPiAJPiAgICAgICArICogQHBhcmFtW2lu XSBhY3Rpb24NCj4gCT4gICAgICAgKyAqICAgSGFuZGxlIGZvciB0aGUgc2hhcmVkIGFjdGlvbiB0 byBiZSBkZXN0cm95ZWQuDQo+IAk+ICAgICAgICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiAJPiAg ICAgICArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLiBQ TURzIGluaXRpYWxpemUNCj4gdGhpcw0KPiAJPiAgICAgICArICogICBzdHJ1Y3R1cmUgaW4gY2Fz ZSBvZiBlcnJvciBvbmx5Lg0KPiAJPiAgICAgICArICogQHJldHVybg0KPiAJPiAgICAgICArICog ICAtICgwKSBpZiBzdWNjZXNzLg0KPiAJPiAgICAgICArICogICAtICgtRU5PU1lTKSBpZiB1bmRl cmx5aW5nIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMNCj4gZnVuY3Rpb25hbGl0eS4NCj4g CT4gICAgICAgKyAqICAgLSAoLUVJTykgaWYgdW5kZXJseWluZyBkZXZpY2UgaXMgcmVtb3ZlZC4N Cj4gCT4gICAgICAgKyAqICAgLSAoLUVOT0VOVCkgaWYgYWN0aW9uIHBvaW50ZWQgYnkgKmFjdGlv biogaGFuZGxlIHdhcyBub3QNCj4gZm91bmQuDQo+IAk+ICAgICAgICsgKiAgIC0gKC1FVE9PTUFO WVJFRlMpIGlmIGFjdGlvbiBwb2ludGVkIGJ5ICphY3Rpb24qIGhhbmRsZSBzdGlsbA0KPiB1c2Vk DQo+IAk+IGJ5IG9uZSBvcg0KPiAJPiAgICAgICArICogICAgIG1vcmUgcnVsZXMNCj4gCT4gICAg ICAgKyAqICAgcnRlX2Vycm5vIGlzIGFsc28gc2V0Lg0KPiAJPiAgICAgICArICovDQo+IAk+ICAg ICAgICtfX3J0ZV9leHBlcmltZW50YWwNCj4gCT4gICAgICAgK2ludA0KPiAJPiAgICAgICArcnRl X2Zsb3dfc2hhcmVkX2FjdGlvbl9kZXN0cm95KHVpbnQxNl90IHBvcnRfaWQsDQo+IAk+ICAgICAg ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19zaGFyZWRfYWN0 aW9uICphY3Rpb24sDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiAJPiAgICAgICArDQo+IAk+ICAgICAgICsv KioNCj4gCT4gICAgICAgKyAqIEB3YXJuaW5nDQo+IAk+ICAgICAgICsgKiBAYiBFWFBFUklNRU5U QUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+IAk+ICAgICAg ICsgKg0KPiAJPiAgICAgICArICogVXBkYXRlcyBpbnBsYWNlIHRoZSBzaGFyZWQgYWN0aW9uIGNv bmZpZ3VyYXRpb24gcG9pbnRlZCBieQ0KPiAqYWN0aW9uKg0KPiAJPiBoYW5kbGUNCj4gCT4gICAg ICAgKyAqIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQgYXMgKnVwZGF0ZSogYXJndW1l bnQuDQo+IAk+ICAgICAgICsgKiBUaGUgdXBkYXRlIG9mIHRoZSBzaGFyZWQgYWN0aW9uIGNvbmZp Z3VyYXRpb24gZWZmZWN0cyBhbGwgZmxvdw0KPiBydWxlcw0KPiAJPiByZXVzaW5nDQo+IAk+ICAg ICAgICsgKiB0aGUgYWN0aW9uIHZpYSBoYW5kbGUuDQo+IAk+ICAgICAgICsgKg0KPiAJPiAgICAg ICArICogQHBhcmFtW2luXSBwb3J0X2lkDQo+IAk+ICAgICAgICsgKiAgICBUaGUgcG9ydCBpZGVu dGlmaWVyIG9mIHRoZSBFdGhlcm5ldCBkZXZpY2UuDQo+IAk+ICAgICAgICsgKiBAcGFyYW1baW5d IGFjdGlvbg0KPiAJPiAgICAgICArICogICBIYW5kbGUgZm9yIHRoZSBzaGFyZWQgYWN0aW9uIHRv IGJlIHVwZGF0ZWQuDQo+IAk+ICAgICAgICsgKiBAcGFyYW1baW5dIHVwZGF0ZQ0KPiAJPiAgICAg ICArICogICBBY3Rpb24gc3BlY2lmaWNhdGlvbiB1c2VkIHRvIG1vZGlmeSB0aGUgYWN0aW9uIHBv aW50ZWQgYnkNCj4gaGFuZGxlLg0KPiAJPiAgICAgICArICogICAqdXBkYXRlKiBzaG91bGQgYmUg b2Ygc2FtZSB0eXBlIHdpdGggdGhlIGFjdGlvbiBwb2ludGVkIGJ5DQo+IHRoZQ0KPiAJPiAqYWN0 aW9uKg0KPiAJPiAgICAgICArICogICBoYW5kbGUgYXJndW1lbnQsIG90aGVyd2lzZSBjb25zaWRl cmVkIGFzIGludmFsaWQuDQo+IAk+ICAgICAgICsgKiBAcGFyYW1bb3V0XSBlcnJvcg0KPiAJPiAg ICAgICArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5vdCBOVUxMLiBQ TURzIGluaXRpYWxpemUNCj4gdGhpcw0KPiAJPiAgICAgICArICogICBzdHJ1Y3R1cmUgaW4gY2Fz ZSBvZiBlcnJvciBvbmx5Lg0KPiAJPiAgICAgICArICogQHJldHVybg0KPiAJPiAgICAgICArICog ICAtICgwKSBpZiBzdWNjZXNzLg0KPiAJPiAgICAgICArICogICAtICgtRU5PU1lTKSBpZiB1bmRl cmx5aW5nIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMNCj4gZnVuY3Rpb25hbGl0eS4NCj4g CT4gICAgICAgKyAqICAgLSAoLUVJTykgaWYgdW5kZXJseWluZyBkZXZpY2UgaXMgcmVtb3ZlZC4N Cj4gCT4gICAgICAgKyAqICAgLSAoLUVJTlZBTCkgaWYgKnVwZGF0ZSogaW52YWxpZC4NCj4gCT4g ICAgICAgKyAqICAgLSAoLUVOT1RTVVApIGlmICp1cGRhdGUqIHZhbGlkIGJ1dCB1bnN1cHBvcnRl ZC4NCj4gCT4gICAgICAgKyAqICAgLSAoLUVOT0VOVCkgaWYgYWN0aW9uIHBvaW50ZWQgYnkgKmN0 eCogd2FzIG5vdCBmb3VuZC4NCj4gCT4gICAgICAgKyAqICAgcnRlX2Vycm5vIGlzIGFsc28gc2V0 Lg0KPiAJPiAgICAgICArICovDQo+IAk+ICAgICAgICtfX3J0ZV9leHBlcmltZW50YWwNCj4gCT4g ICAgICAgK2ludA0KPiAJPiAgICAgICArcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl91cGRhdGUodWlu dDE2X3QgcG9ydF9pZCwNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb24gKmFjdGlvbiwNCj4gCT4gICAgICAgKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqdXBk YXRlLA0KPiAJPiAgICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRl X2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gCT4gICAgICAgKw0KPiAJPiAgICAgICArLyoqDQo+IAk+ ICAgICAgICsgKiBAd2FybmluZw0KPiAJPiAgICAgICArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlz IEFQSSBtYXkgY2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlLg0KPiAJPiAgICAgICArICoNCj4g CT4gICAgICAgKyAqIFF1ZXJ5IHRoZSBzaGFyZWQgYWN0aW9uIGJ5IGhhbmRsZS4NCj4gCT4gICAg ICAgKyAqDQo+IAk+ICAgICAgICsgKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyByZXRyaWV2aW5nIGFj dGlvbi1zcGVjaWZpYyBkYXRhIHN1Y2ggYXMNCj4gY291bnRlcnMuDQo+IAk+ICAgICAgICsgKiBE YXRhIGlzIGdhdGhlcmVkIGJ5IHNwZWNpYWwgYWN0aW9uIHdoaWNoIG1heSBiZQ0KPiBwcmVzZW50 L3JlZmVyZW5jZWQNCj4gCT4gaW4NCj4gCT4gICAgICAgKyAqIG1vcmUgdGhhbiBvbmUgZmxvdyBy dWxlIGRlZmluaXRpb24uDQo+IAk+ICAgICAgICsgKg0KPiAJPiAgICAgICArICogXHNlZSBSVEVf RkxPV19BQ1RJT05fVFlQRV9DT1VOVA0KPiAJPiAgICAgICArICoNCj4gCT4gICAgICAgKyAqIEBw YXJhbSBwb3J0X2lkDQo+IAk+ICAgICAgICsgKiAgIFBvcnQgaWRlbnRpZmllciBvZiBFdGhlcm5l dCBkZXZpY2UuDQo+IAk+ICAgICAgICsgKiBAcGFyYW1baW5dIGFjdGlvbg0KPiAJPiAgICAgICAr ICogICBIYW5kbGUgZm9yIHRoZSBzaGFyZWQgYWN0aW9uIHRvIHF1ZXJ5Lg0KPiAJPiAgICAgICAr ICogQHBhcmFtW2luLCBvdXRdIGRhdGENCj4gCT4gICAgICAgKyAqICAgUG9pbnRlciB0byBzdG9y YWdlIGZvciB0aGUgYXNzb2NpYXRlZCBxdWVyeSBkYXRhIHR5cGUuDQo+IAk+ICAgICAgICsgKiBA cGFyYW1bb3V0XSBlcnJvcg0KPiAJPiAgICAgICArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3Ig cmVwb3J0aW5nIGlmIG5vdCBOVUxMLiBQTURzIGluaXRpYWxpemUNCj4gdGhpcw0KPiAJPiAgICAg ICArICogICBzdHJ1Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBvbmx5Lg0KPiAJPiAgICAgICArICoN Cj4gCT4gICAgICAgKyAqIEByZXR1cm4NCj4gCT4gICAgICAgKyAqICAgMCBvbiBzdWNjZXNzLCBh IG5lZ2F0aXZlIGVycm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRlX2Vycm5vDQo+IGlzIHNldC4N Cj4gCT4gICAgICAgKyAqLw0KPiAJPiAgICAgICArX19ydGVfZXhwZXJpbWVudGFsDQo+IAk+ICAg ICAgICtpbnQNCj4gCT4gICAgICAgK3J0ZV9mbG93X3NoYXJlZF9hY3Rpb25fcXVlcnkodWludDE2 X3QgcG9ydF9pZCwNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbiAqYWN0aW9uLA0KPiAJPiAgICAgICArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEsDQo+IAk+ICAgICAgICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+IAk+ ICAgICAgICsNCj4gCT4gICAgICAgICNpZmRlZiBfX2NwbHVzcGx1cw0KPiAJPiAgICAgICAgfQ0K PiAJPiAgICAgICAgI2VuZGlmDQo+IAk+ICAgICAgIGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0 aGRldi9ydGVfZmxvd19kcml2ZXIuaA0KPiAJPiBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93 X2RyaXZlci5oDQo+IAk+ICAgICAgIGluZGV4IDg4MWNjNDY5YjcuLmEyY2FlMWI1M2MgMTAwNjQ0 DQo+IAk+ICAgICAgIC0tLSBhL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93X2RyaXZlci5oDQo+ IAk+ICAgICAgICsrKyBiL2xpYi9saWJydGVfZXRoZGV2L3J0ZV9mbG93X2RyaXZlci5oDQo+IAk+ ICAgICAgIEBAIC0xMDcsNiArMTA3LDI4IEBAIHN0cnVjdCBydGVfZmxvd19vcHMgew0KPiAJPiAg ICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKipjb250ZXh0LA0KPiAJPiAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IG5iX2NvbnRleHRzLA0KPiAJPiAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyKTsNCj4gCT4gICAgICAgKyAgICAgICAvKiog U2VlIHJ0ZV9mbG93X3NoYXJlZF9hY3Rpb25fY3JlYXRlKCkgKi8NCj4gCT4gICAgICAgKyAgICAg ICBzdHJ1Y3QgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbiAqKCpzaGFyZWRfYWN0aW9uX2NyZWF0ZSkN Cj4gCT4gICAgICAgKyAgICAgICAgICAgICAgIChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4g CT4gICAgICAgKyAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFj dGlvbiwNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAq ZXJyb3IpOw0KPiAJPiAgICAgICArICAgICAgIC8qKiBTZWUgcnRlX2Zsb3dfc2hhcmVkX2FjdGlv bl9kZXN0cm95KCkgKi8NCj4gCT4gICAgICAgKyAgICAgICBpbnQgKCpzaGFyZWRfYWN0aW9uX2Rl c3Ryb3kpDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9mbG93X3NoYXJlZF9h Y3Rpb24gKnNoYXJlZF9hY3Rpb24sDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAgc3RydWN0 IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+IAk+ICAgICAgICsgICAgICAgLyoqIFNlZSBydGVf Zmxvd19zaGFyZWRfYWN0aW9uX3VwZGF0ZSgpICovDQo+IAk+ICAgICAgICsgICAgICAgaW50ICgq c2hhcmVkX2FjdGlvbl91cGRhdGUpDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+IAk+ICAgICAgICsgICAgICAgICAgICAgICAgc3RydWN0IHJ0 ZV9mbG93X3NoYXJlZF9hY3Rpb24gKnNoYXJlZF9hY3Rpb24sDQo+IAk+ICAgICAgICsgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqdXBkYXRlLA0KPiAJPiAgICAg ICArICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiAJPiAg ICAgICArICAgICAgIC8qKiBTZWUgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbl9xdWVyeSgpICovDQo+ IAk+ICAgICAgICsgICAgICAgaW50ICgqc2hhcmVkX2FjdGlvbl9xdWVyeSkNCj4gCT4gICAgICAg KyAgICAgICAgICAgICAgIChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gCT4gICAgICAgKyAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfc2hhcmVkX2FjdGlvbiAqc2hhcmVk X2FjdGlvbiwNCj4gCT4gICAgICAgKyAgICAgICAgICAgICAgICB2b2lkICpkYXRhLA0KPiAJPiAg ICAgICArICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiAJ PiAgICAgICAgfTsNCj4gCT4NCj4gCT4gICAgICAgIC8qKg0KPiAJPiAgICAgICAtLQ0KPiAJPiAg ICAgICAyLjI2LjINCj4gCT4NCj4gCT4NCj4gDQo+IA0KDQo=