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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 495E2C433FE for ; Mon, 28 Nov 2022 07:11:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229642AbiK1HLN (ORCPT ); Mon, 28 Nov 2022 02:11:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33464 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229610AbiK1HLL (ORCPT ); Mon, 28 Nov 2022 02:11:11 -0500 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2101.outbound.protection.outlook.com [40.107.223.101]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52D1A12D08 for ; Sun, 27 Nov 2022 23:11:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mZkRmUBan4ipeOCMSE+xID6rSFwWMZTod0kT+sBrbgiM++4dhD6cClj1wN+7pF1w+LXFm0ex/Sgv1vltSbm9Ab7zVaYUrVOaNG8vMWN02R/mWJWXN0TnUGrLeg04DJp13aWGrYBi8XWD+5Xl93SrGgP3lueL6DgNGCA5qwxEX8kV4gMmeoHE+dKVZUT8qm1+2hrD3yBcthdeS0/unpyHzagn2z75aXqUT6FT7glVI0JLgPV3KJrsRzrU22oGKUEBjx35KrtST5api6oTYHASjCBloaH5guwetOxtGUifZkJr0Fu3S1To8P1G4Altw6tmA/vt0/vn0hhbjA+1ujcBRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YR+3HwFPESTd6xovX38j999xRWeDPS8e/NOoMbUwzE0=; b=bZrDsrCzMHyK2Bsu7L25A2q7QYPVrYgrKmE+xEbPMyKp2tIZHLmuX2+otkp8FPp+AT8/HmF/AKWSqVFz5yEKP34+HIKkh6zOCHlJeDBNla5qOnRQiBqwKNWkNxDPMvLnsJNkFdrRs9IyWc+UJMPHe1ZSBaxXE9hfD5hjrIJ7e+qUbnJuUJJQZVL9eT6xTRvcdt4Zt5whW7gSMKigJbBN7vsFiuobo5nS8pJBt2lycZAUeOIlHeAWZl8Cg+AdSoq/EnDAXZnmHrx//N1sA8m2s0OMyM00/ZCi/jihGKad6ACSFJTC0uRqaFYh5S13nwK9qK3F7FDUio5ZYCWleZxSZg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YR+3HwFPESTd6xovX38j999xRWeDPS8e/NOoMbUwzE0=; b=uVcBNrDKZDmm5zs6NXetFoXNloydy0U5I+GDNrcwMZAZ2Kmw8gww9QffuTXJdBbcQUWAmuUJeLf6C5njRce20Iz1KsnonnZonekYx+RzfgvBbIJZb/pWdlXAHWE+ab8QbcmwMaK22uR5q6GmUDTjpP9WCbCYZdhPaDBUn2pJFEQ= Received: from PH0PR13MB4793.namprd13.prod.outlook.com (2603:10b6:510:7a::12) by SA1PR13MB6148.namprd13.prod.outlook.com (2603:10b6:806:337::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Mon, 28 Nov 2022 07:11:06 +0000 Received: from PH0PR13MB4793.namprd13.prod.outlook.com ([fe80::1acb:77a9:9010:2489]) by PH0PR13MB4793.namprd13.prod.outlook.com ([fe80::1acb:77a9:9010:2489%4]) with mapi id 15.20.5857.023; Mon, 28 Nov 2022 07:11:05 +0000 From: Tianyu Yuan To: Marcelo Leitner CC: Jamal Hadi Salim , Simon Horman , "netdev@vger.kernel.org" , Cong Wang , Davide Caratti , Edward Cree , Eelco Chaudron , Ilya Maximets , Oz Shlomo , Paul Blakey , Vlad Buslov , "dev@openvswitch.org" , oss-drivers , Ziyang Chen Subject: RE: [PATCH/RFC net-next] tc: allow drivers to accept gact with PIPE when offloading Thread-Topic: [PATCH/RFC net-next] tc: allow drivers to accept gact with PIPE when offloading Thread-Index: AQHY/mSdmThOr7A34UyDPeUsz+fSLa5OwOIAgAAoYjCAAMvsAIAENEkQ Date: Mon, 28 Nov 2022 07:11:05 +0000 Message-ID: References: <20221122112020.922691-1-simon.horman@corigine.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR13MB4793:EE_|SA1PR13MB6148:EE_ x-ms-office365-filtering-correlation-id: 85af9899-7d4a-4fe9-613c-08dad10fb749 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OAdvCgJ3KaF0zYL1cIKb1aVOM+ZRXEOm/gLodNX6ueBsz8ScrvDOB7QOrvbUE+dfq6A1DvmDpm1RSFS+0CY5euuBtBFUyoDNE7rK1sVQz0e8TPSITQcH6uSi+3mZnKsBpWXnAAYc5xvKlYq+BVIldRtvLT+8w9FmSDmWLjTbWeL3azhddkuRu1b4Sc/0PqDesWusarX/Zi6qYOwC4qofTDN5LGiYKajoyAG6AHhRsMbYKada3qlpHUTfWH0NIOmPuAEh14Nw9aFnVyhgs0c8A7ygNZzk0ZUBMznlv8JzYsiV0PbReEtxudvvIPO62XYOr1QrbQyqJe5ne0je+jY/sUPXzoEwzbRp5kwtUi49PRuK3G9XgxQs+cH2NcFBWUI/YMbTSXQOF9s4TAurMAZ+T5B79KhwRAxdM5gZkpNFGHkmnWGTyE0mOxDcLAVw2E55Mad2g7RQ4+WIVPZOAcuF17aCzCD2oVPq+9o1Oy5SmL5KeXLF0flYSH+8UemVHsv/3iUEOx8tU6bSHjx+SyVDiVdilLSIV8Ge1TwCywF3HXIZz3CEKwfLeZkrbPUfe9SqcPoYsJA6PjS9ES0ziXrkUP7raScR1vjKqMrN4EfXGk0xSgt1myaDMcG/ScmBqYP6l+Qfi4dY92MPbEVeSgG7FprExHcD0oYWQ8dWdwr7vWtOEJOLTJIooCxA3aoGCPsuTS2JG0KU9q9JttjQn3QeUzbTZc+p4eTkpTvojKcHVJnPtq1s6t5IXnCd4US0fQFC02WNU0/bGsrpZj0TvqMmGzNyXLmDX9AVYiPgAsWEl35VvaH6HWMpPETJj/B7mZV5 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR13MB4793.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(136003)(39830400003)(396003)(376002)(346002)(451199015)(6506007)(9686003)(53546011)(107886003)(71200400001)(54906003)(26005)(316002)(66476007)(8676002)(4326008)(76116006)(7696005)(478600001)(66946007)(66446008)(64756008)(66556008)(966005)(6916009)(7416002)(30864003)(52536014)(5660300002)(41300700001)(2906002)(83380400001)(8936002)(186003)(38100700002)(33656002)(86362001)(38070700005)(122000001)(44832011)(55016003)(21314003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eW1rbkdmbTloWTBoRXVERmhrSGpQbXArd1cwREZ3OE9lcy9PSVAvMlFGeGZj?= =?utf-8?B?ZmVZSGJMYTdSVmpTU2ROVVZGLzQwT0JpRnAvMGpneTA2Mmc4VVMzVEpPdSs1?= =?utf-8?B?MUlMU2QybWhuVXRMdjBzc05DbnVQNzZIT01nMmIxWGdlSU5GREF5bDVzT1M5?= =?utf-8?B?SWp1dmk4YWVxV0gzNlNGRFVIaDAwLzdsVjl1cm1hTlZUYUFZNi83Y0Rmb2xZ?= =?utf-8?B?b3ljZWVqMkphSmhXTDBWbUlQd3ZtREtEanhUSS9VNnpvVFBsK3RpKzlsQmU1?= =?utf-8?B?UTd4a3lkVVpQdkFpaTVsZTBWTE44dDFrQjI0QUVxNURJWHl1WGVsa3BEZ1da?= =?utf-8?B?WjhiZVZINEFjV0ZBM0VmM2p1Zkh3TXl0b05QSnBUZ1cxb0doK1MzNm5zRmZW?= =?utf-8?B?VWY5T0N6QWhNNzM1M3Y0L0FBK2ZrajhkTnR6ditXT0l6MXBFN1o2Tm4rWFRr?= =?utf-8?B?MnVSTE15WWRyTmM0bmxXY1RBeVFUcXplSnBYWXFidGV5R29XYk41THpNUlVV?= =?utf-8?B?N0tXUHRUcHN3QUQwb25XZDBZOTFWV051MnQzL0p3dnFYSysxci9vTzhLMFpC?= =?utf-8?B?d0hZUytlMDdwbC8vME5GRGRaQVB5UGpLcThNSldIRU95REhrcTdaaW9UeVBX?= =?utf-8?B?NktNMUZzUDVUU2U3TzNpNldpcER2dXJTV0xlamZoRHZuS3l2NTV1VDU3Y0NH?= =?utf-8?B?YzBtOW9sOUtNTG5ydng2aC9ra28weXROdWNKTnM5WnRLcUpCV1p0QWFyUGt2?= =?utf-8?B?aEQrVFNPN3lHV3YrNWJLRmo0aG9TSFFycVFqYldNMUthaUIzUCt3NWFJdXJ3?= =?utf-8?B?Mml5c2F4NFEzbGRock9CZ2c0ejlSelhLa3JUNXhVYVJQUDVFWFdvbGFvREdJ?= =?utf-8?B?WFRvc3JERG5ZQ0tQbHFQK3JoM001T3c5cUNlclNKUEZVdVdUQXRqUHlEczRL?= =?utf-8?B?VlR1Znd1ekJqOElMd2pTcG4wanVlbkd5NlMrUGZuRzU1QVgrUDV3ZUhPRHl1?= =?utf-8?B?V25CRFYrb0xFSThqaGQ4cjM0WEd0UVMzamN3UmpUUTRUbHFuUnpUNWZ5ZGtv?= =?utf-8?B?VU1UMHRuaVQxOEZDL2ZJeHVJcElEbUdtT003KzlhbXZSM2VGaC8zOVpmMU56?= =?utf-8?B?dm83NWpDS0VCR3AxM3BRc1J1QWlXZEZJMEE0YWJXWnZpcWIrbjFraWwxUkti?= =?utf-8?B?V09HU253TjIwZ25hWk9YZ3RWTmJQeFZscW52Mms0ZEFhM3cvVDdpSkw3U1hQ?= =?utf-8?B?MVJsRXpZTHVveXJrQ096STU4RXJTbi9qdUFIdEc1c0FtdmgwSGRrWXYwUlI1?= =?utf-8?B?N1A4TjBaenl6SytiRlpyR1NVWE94TFBpMit6OEtEdndMS1RZRU1qYXpWZnJh?= =?utf-8?B?eTdtNFFLZU1BMWpJNVprM0REUG0vdktjVFZGRHhLekpHSFlxY1drYjdmRUt3?= =?utf-8?B?clVVZmRENG8yUURvQ01BUllHRUdZcFNsNEJEazVWb1AvSjFiNmVBd2FBK01I?= =?utf-8?B?aDQxMTZsTnVPOS9lNGFKZ3V2Uit6MFY4ckxCU2JzZTZtUUtLTFgxMzdtM3Fr?= =?utf-8?B?RDJTQ2Z4MitocmZoNVpadVFlSFkvR0MwcnVyRzZlT2RXR1B0aFBOK3VIdDd4?= =?utf-8?B?OEJyUlAycU5UWkNEcDFDdmtFeTB1YW1ZY1ovZ1lXeU15dFdsU05UTDNsWWtP?= =?utf-8?B?ZjZFcE0xM01rY3NMN0w0cWRKT1BsQjA1WWNiU2RoMTkrY2ppRkd5WlFEZ0N3?= =?utf-8?B?UmpXdm1Bekk0RVJrcGtnUitkNzg0RU1BU3lYOWhUL2tpTWJ3ZjdzVjFLK2hL?= =?utf-8?B?T1pqQnlxWGhBTU92VTNWVU56UW8wRi9mckhLdWhiQ1AyZTVhRGM1RGNURGlE?= =?utf-8?B?VUN2UGJKYkx3MCtDSmNjV0FZS244eWlzcDVnakhNTjRoQUNOL2tpTDY1ZnpH?= =?utf-8?B?alU2aExVVU0zbTVRVXF3U2FjVEtiNU8xYXVRSXE2WXh3UXZmZ3h1K2ZNaWZN?= =?utf-8?B?dGpzRW1HYTZTdC9CZFVyYVRPbmpLZmgrT0crcm1UK25HRS95Q3BMU1RNdjJH?= =?utf-8?B?N1BNN3IxVzBGclVxU3FESkxVSWxTWXhpV1d2a3BJdzJFV3VIZmRQRitzNE9y?= =?utf-8?Q?Zkjw4F1dlpjb88/ca/N/FYnj1?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR13MB4793.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85af9899-7d4a-4fe9-613c-08dad10fb749 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Nov 2022 07:11:05.5944 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bjBa/ZLnnz7xBz9rUlwAdcSAgQtyHkOhzR3Rq4dGdpffH42X3881UE/gm4kHqCvLZVpMI5JFPP3ImQH8aRazgqETBZLBO1q77pIU2tk09nY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR13MB6148 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org DQpPbiBGcmksIE5vdiAyNSwgMjAyMiBhdCAxMDoyMCBQTSAgTWFyY2VsbyBMZWl0bmVyIDxtbGVp dG5lckByZWRoYXQuY29tPg0KPiBPbiBGcmksIE5vdiAyNSwgMjAyMiBhdCAwMzoxMDozN0FNICsw MDAwLCBUaWFueXUgWXVhbiB3cm90ZToNCj4gPiBPbiBGcmksIE5vdiAyNSwgMjAyMiBhdCAxMDoy MSBBTSAgSmFtYWwgSGFkaSBTYWxpbSA8amhzQG1vamF0YXR1LmNvbT4NCj4gd3JvdGU6DQo+ID4N Cj4gPiA+DQo+ID4gPiBJIGFtIG5vdCBzdXJlIGlmIHRoZSBtbHg1IGNoYW5nZXMgd2lsbCB3b3Jr IHNpbmNlICB0aGV5IGJvdGggc2VlbSB0bw0KPiA+ID4gYmUgY2FsbGluZw0KPiA+ID4gbWx4NWVf dGNfYWN0X2dldCgpIHdoaWNoIGV4cGVjdHMgdGhlIGFjdC0+aWQgdG8gZXhpc3QgaW4gdGNfYWN0 c194eHgNCj4gPiA+IHRhYmxlcywgbWVhbmluZyBtbHg1ZV90Y19hY3RfZ2V0KCkgd2lsbCBhbHdh eXMgcmV0dXJuIHlvdSBOVUxMICBhbmQNCj4gPiA+IHRoYXQgY2hlY2sgaXMgaGl0IGJlZm9yZSB5 b3UgY2hlY2sgZm9yIEFDVF9QSVBFLg0KPiA+ID4NCj4gPiA+IFNvbWV0aGluZyBub3Qgb2J2aW91 cyB0byBtZToNCj4gPiA+IFdvdWxkIGFsbCB0aGVzZSBkcml2ZXJzIG5vdyBiZSBhYmxlIHRvIGhh bmRsZSBBQ1RfUElQRSB0cmFuc3BhcmVudGx5DQo+ID4gPiBhcyBpZiBubyBhY3Rpb24gaXMgc3Bl Y2lmaWVkPyBDYW50IHNlZSB0aGUgb2J2aW91cyBjb25uZWN0aW9uIHRvDQo+ID4gPiBQT0xJQ0Ug YnkganVzdCBzdGFyaW5nIGF0IHRoZSBwYXRjaCAtIGlzIHRoZXJlIGFuZCBBQ1RfUElQRSBmaXJz dCB0aGVuIGENCj4gUE9MSUNFPw0KPiA+ID4gIEFub3RoZXIgcXVlc3Rpb246DQo+ID4gPiBJZiB0 aGUgQUNUX1BJUEUgY291bnQgaXMgbm90IGJlaW5nIHVwZGF0ZWQgaW4gcy93IC0gaXMgdGhlcmUg YSBoL3cNCj4gPiA+IGVxdWl2YWxlbnQgc3RhdCBiZWluZyB1cGRhdGVkPw0KPiA+ID4NCj4gPiA+ IGNoZWVycywNCj4gPiA+IGphbWFsDQo+ID4gPg0KPiA+IFRoYW5rcyBKYW1hbCBmb3IgeW91ciBy ZXZpZXcuDQo+ID4NCj4gPiBBYm91dCBtbHg1ZV90Y19hY3RfZ2V0KCksIEknbGwgbGF0ZXIgYWRk IFBJUEUgYWN0aW9uIGluIHRjX2FjdHNfbmljIHNvDQo+ID4gdGhhdCBtbHg1ZV90Y19hY3RfZ2V0 KCkgd2lsbCByZXR1cm4gdGhlIHJpZ2h0IGFjdF9pZC4NCj4gPg0KPiA+IEluIGRyaXZlciB3ZSBj aG9vc2UganVzdCBpZ25vcmUgdGhpcyBnYWN0IHdpdGggQUNUX1BJUEUsIHNvIGFmdGVyDQo+ID4g cGFyc2luZyB0aGUgZmlsdGVyKHJ1bGUpIGZyb20ga2VybmVsLCB0aGUgcmVtYWluaW5nIGFjdGlv bnMgYXJlIGp1c3QgbGlrZSB3aGF0DQo+IHRoZXkgdXNlZCB0byBiZSB3aXRob3V0IGNoYW5nZXMg aW4gdGhpcyBwYXRjaC4gU28gdGhlIGZsb3cgY291bGQgYmUNCj4gcHJvY2Vzc2VkIGFzIGJlZm9y ZS4NCj4gPg0KPiA+IFRoZSBjb25uZWN0aW9uIGJldHdlZW4gUE9MSUNFIGFuZCBBQ1RfUElQRSBt YXkgZXhpc3QgaW4gdXNlcnNwYWNlDQo+ID4gKGUuZy4gb3ZzKSwgd2UgY291bGQgcHV0IGEgZ2Fj dCAoUElQRSkgYXQgdGhlIGJlZ2lubmluZyBwbGFjZSBpbiBlYWNoIHRjIGZpbHRlci4NCj4gV2Ug d2lsbCBhbHNvIGhhdmUgYW4gT1ZTIHBhdGNoIGZvciB0aGlzIHByb3Bvc2UuDQo+ID4NCj4gPiBJ J20gbm90IHZlcnkgY2xlYXIgd2l0aCB5b3VyIGxhc3QgY2FzZSwgYnV0IGluIGV4cGVjdGF0aW9u LCB0aGUgb25jZQ0KPiA+IHRoZSB0cmFmZmljIGlzIG9mZmxvYWRlZCBpbiBoL3cgdGMgZGF0YXBh dGgsIHRoZSBzdGF0cyB3aWxsIGJlIHVwZGF0ZWQNCj4gPiBieSB0aGUgZmxvd2VyIHN0YXRzIGZy b20gaGFyZHdhcmUuIEFuZCB3aGVuIHRoZSB0cmFmZmljIGlzIHVzaW5nIHMvdyB0Yw0KPiBkYXRh cGF0aCwgdGhlIHN0YXRzIGFyZSBmcm9tIHNvZnR3YXJlLg0KPiANCj4gSSdtIHN0aWxsIGNvbmZ1 c2VkIGhlcmUuIFRha2UsIGZvciBleGFtcGxlIGN4Z2I0IGRyaXZlciBiZWxvdy4gSXQgd2lsbCBz aW1wbHkNCj4gaWdub3JlIHRoaXMgYWN0aW9uIEFGQUlDVC4gVGhpcyBpcyBnb29kIGJlY2F1c2Ug aXQgd2lsbCBzdGlsbCBvZmZsb2FkIHdoYXRldmVyDQo+IHZzd2l0Y2hkIHdvdWxkIGJlIG9mZmxv YWRpbmcgYnV0IHRoZW4sIEkgZG9uJ3Qgc2VlIGhvdyB0aGUgc3RhdHMgd2lsbCBiZSByaWdodA0K PiBpbiB0aGUgZW5kLiBJIHRoaW5rIHRoZSBodyBzdGF0cyB3aWxsIGJlIHplcm9lZCwgbm8/ICh0 aGlzIGlzIGFscmVhZHkgY29uc2lkZXJpbmcNCj4gdGhlIHBlciBhY3Rpb24gc3RhdHMgY2hhbmdl IHRoYXQgT3ogaXMgd29ya2luZyBvbiwgc2VlIFsgUkZDICBuZXQtbmV4dCB2MiAwLzJdDQo+IG5l dDogZmxvd19vZmZsb2FkOg0KPiBhZGQgc3VwcG9ydCBmb3IgcGVyIGFjdGlvbiBodyBzdGF0cykN Cj4gDQo+IEkgdGhpbmsgdGhlIGRyaXZlcnMgaGF2ZSB0byByZWplY3QgdGhlIGFjdGlvbiBpZiB0 aGV5IGRvbid0IHN1cHBvcnQgaXQsIGFuZA0KPiB2c3dpdGNoZCB3aWxsIGhhdmUgdG8gcHJvYmUg Zm9yIHByb3BlciBzdXBwb3J0IHdoZW4gc3RhcnRpbmcuDQo+IA0KPiBPdGhlciB0aGFuIHRoaXMs IHBhdGNoIHNlZW1zIGdvb2QuDQo+IA0KPiBUaGFua3MsDQo+IE1hcmNlbG8NCj4gDQpUaGFua3Mg TWFyY2VsbyBmb3IgeW91ciByZXBseQ0KDQpBcyBmYXIgYXMgSSd2ZSBzZWVuLCBpbiBrZXJuZWwg dGMgKGZsX2h3X3VwZGF0ZV9zdGF0cygpKSwgdGhlIGZsb3dlciBzdGF0cyBmcm9tIGh3IGRhdGFw YXRoIGlzDQp1cGRhdGVkIGFzIGZvbGxvd2luZzoNCjEpIGdldCB0aGUgZmxvd2VyIHN0YXRzIGZy b20gZWFjaCBkcml2ZXIgZGlyZWN0bHkgdXNpbmcgdGhlIHJlZ2lzdGVyZWQgb2ZmbG9hZCBhcGkg YW5kIHN0b3JlIGl0DQppbiBjbHNfZmxvd2VyDQoyKSB1c2luZyB0aGUgZHVtcGVkIHN0YXRzIGlu IGNsc19mbG93ZXIgdG8gdXBkYXRlIHN0YXRzIGZvciBlYWNoIGFjdGlvbiBpbiB0aGlzIGZpbHRl cg0KKHRjZl9leHRzX2h3X3N0YXRzX3VwZGF0ZSgpKQ0KDQpTbyB0aGUgc3RhdHMgb2YgZ2FjdCB3 aXRoIFBJUEUgd2lsbCBzdGlsbCBiZSB1cGRhdGVkIHVzaW5nIHRoZSBzdGF0cyBhYm92ZSBldmVu IHRob3VnaCB0aGlzIGFjdGlvbg0KaXMgaWdub3JlZCBhbmQgYWN0dWFsbHkgbm90IHByb2Nlc3Nl ZCBieSBody4NCg0KRnVydGhlcm1vcmUsIEkgdGhpbmsgdGhlIGN1cnJlbnQgc3RhdHMgZm9yIGVh Y2ggYWN0aW9uIG1lbnRpb25lZCBpbiAyKSBjYW5ub3QgcmVwcmVzZW50IHRoZSByZWFsDQpodyBz dGF0cyBhbmQgdGhpcyBpcyB3aHkgWyBSRkMgIG5ldC1uZXh0IHYyIDAvMl0gKG5ldDogZmxvd19v ZmZsb2FkOiBhZGQgc3VwcG9ydCBmb3IgcGVyIGFjdGlvbg0KaHcgc3RhdHMpIHdpbGwgY29tZSB1 cC4NCg0KQ2hlZXJzLA0KVGlhbnl1DQoNCj4gPg0KPiA+IEIuUi4NCj4gPiBUaWFueXUNCj4gPg0K PiA+ID4NCj4gPiA+IE9uIFR1ZSwgTm92IDIyLCAyMDIyIGF0IDY6MjEgQU0gU2ltb24gSG9ybWFu DQo+ID4gPiA8c2ltb24uaG9ybWFuQGNvcmlnaW5lLmNvbT4gd3JvdGU6DQo+ID4gPiA+DQo+ID4g PiA+IEZyb206IFRpYW55dSBZdWFuIDx0aWFueXUueXVhbkBjb3JpZ2luZS5jb20+DQo+ID4gPiA+ DQo+ID4gPiA+IFN1cHBvcnQgZ2FjdCB3aXRoIFBJUEUgYWN0aW9uIHdoZW4gc2V0dGluZyB1cCBn YWN0IGluIFRDLg0KPiA+ID4gPiBUaGlzIFBJUEUgZ2FjdCBjb3VsZCBjb21lIGZpcnN0IGluIGVh Y2ggdGMgZmlsdGVyIHRvIHVwZGF0ZSB0aGUNCj4gPiA+ID4gZmlsdGVyKGZsb3cpIHN0YXRzLg0K PiA+ID4gPg0KPiA+ID4gPiBUaGUgc3RhdHMgZm9yIGVhY2ggYWN0b25zIGluIGEgZmlsdGVyIGFy ZSB1cGRhdGVkIGJ5IHRoZSBmbG93ZXINCj4gPiA+ID4gc3RhdHMgZnJvbSBIVyh2aWEgbmV0ZGV2 IGRyaXZlcnMpIGluIGtlcm5lbCBUQyByYXRoZXIgdGhhbiBkcml2ZXJzLg0KPiA+ID4gPg0KPiA+ ID4gPiBJbiBlYWNoIG5ldGRldiBkcml2ZXIsIHdlIGRvbid0IGhhdmUgdG8gcHJvY2VzcyB0aGlz IGdhY3QsIGJ1dA0KPiA+ID4gPiBvbmx5IHRvIGlnbm9yZSBpdCB0byBtYWtlIHN1cmUgdGhlIHdo b2xlIHJ1bGUgY2FuIGJlIG9mZmxvYWRlZC4NCj4gPiA+ID4NCj4gPiA+ID4gQmFja2dyb3VuZDoN Cj4gPiA+ID4NCj4gPiA+ID4gVGhpcyBpcyBhIHByb3Bvc2VkIHNvbHV0aW9uIHRvIGEgcHJvYmxl bSB3aXRoIGEgbWlzcy1tYXRjaCBiZXR3ZWVuDQo+ID4gPiA+IFRDIHBvbGljZSBhY3Rpb24gaW5z dGFuY2VzIC0gd2hpY2ggbWF5IGJlIHNoYXJlZCBiZXR3ZWVuIGZsb3dzIC0NCj4gPiA+ID4gYW5k IE9wZW5GbG93IG1ldGVyIGFjdGlvbnMgLSB0aGUgYWN0aW9uIGlzIHBlciBmbG93LCB3aGlsZSB0 aGUNCj4gPiA+ID4gdW5kZXJseWluZyBtZXRlciBtYXkgYmUgc2hhcmVkLiBUaGUga2V5IHByb2Js ZW0gYmVpbmcgdGhhdCB0aGUNCj4gPiA+ID4gcG9saWNlIGFjdGlvbiBzdGF0aXN0aWNzIGFyZSBz aGFyZWQgYmV0d2VlbiBmbG93cywgYW5kIHRoaXMgZG9lcw0KPiA+ID4gPiBub3QgbWF0Y2ggdGhl IHJlcXVpcmVtZW50IG9mIE9wZW5GbG93IGZvciBwZXItZmxvdyBzdGF0aXN0aWNzLg0KPiA+ID4g Pg0KPiA+ID4gPiBSZWY6IFtvdnMtZGV2XSBbUEFUQ0hdIHRlc3RzOiBmaXggcmVmZXJlbmNlIG91 dHB1dCBmb3IgbWV0ZXINCj4gPiA+ID4gb2ZmbG9hZCBzdGF0cw0KPiA+ID4gPg0KPiA+ID4gPiBo dHRwczovL21haWwub3BlbnZzd2l0Y2gub3JnL3BpcGVybWFpbC9vdnMtZGV2LzIwMjItDQo+ID4g PiBPY3RvYmVyLzM5ODM2My5odG0NCj4gPiA+ID4gbA0KPiA+ID4gPg0KPiA+ID4gPiBTaWduZWQt b2ZmLWJ5OiBUaWFueXUgWXVhbiA8dGlhbnl1Lnl1YW5AY29yaWdpbmUuY29tPg0KPiA+ID4gPiBT aWduZWQtb2ZmLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBjb3JpZ2luZS5jb20+DQo+ ID4gPiA+IC0tLQ0KPiA+ID4gPiAgZHJpdmVycy9uZXQvZHNhL29jZWxvdC9mZWxpeF92c2M5OTU5 LmMgICAgICAgICAgICAgICAgICAgICB8IDUgKysrKysNCj4gPiA+ID4gIGRyaXZlcnMvbmV0L2Rz YS9zamExMTA1L3NqYTExMDVfZmxvd2VyLmMgICAgICAgICAgICAgICAgICAgfCA1ICsrKysrDQo+ ID4gPiA+ICBkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dl ci5jICAgICAgIHwgNSArKysrKw0KPiA+ID4gPiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2RwYWEyL2RwYWEyLXN3aXRjaC1mbG93ZXIuYyB8IDYNCj4gKysrKysrDQo+ID4gPiA+ICBk cml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pY2UvaWNlX3RjX2xpYi5jICAgICAgICAgICAgICAg IHwgNSArKysrKw0KPiA+ID4gPiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250 eDIvbmljL290eDJfdGMuYyAgICAgICB8IDUgKysrKysNCj4gPiA+ID4gIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21hcnZlbGwvcHJlc3RlcmEvcHJlc3RlcmFfZmxvd2VyLmMgICAgfCA1ICsrKysrDQo+ ID4gPiA+ICBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYyAg ICAgICAgICAgIHwgNSArKysrKw0KPiA+ID4gPiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jICAgICAgICB8IDYgKysrKysrDQo+ID4gPiA+ICBkcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyAgICAgICAgICAgIHwg NSArKysrKw0KPiA+ID4gPiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvc3Bl Y3RydW1fZmxvd2VyLmMgICAgICB8IDUNCj4gKysrKysNCj4gPiA+ID4gIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21pY3JvY2hpcC9zcGFyeDUvc3Bhcng1X3RjX2Zsb3dlci5jICAgfCA0ICsrKysNCj4g PiA+ID4gIGRyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X2Zsb3dlci5jICAgICAgICAg ICAgICAgICAgfCA1ICsrKysrDQo+ID4gPiA+ICBkcml2ZXJzL25ldC9ldGhlcm5ldC9uZXRyb25v bWUvbmZwL2Zsb3dlci9hY3Rpb24uYyAgICAgICAgIHwgNSArKysrKw0KPiA+ID4gPiAgZHJpdmVy cy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZGUvcWVkZV9maWx0ZXIuYyAgICAgICAgICAgICB8IDUg KysrKysNCj4gPiA+ID4NCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNSAr KysrKw0KPiA+ID4gPiAgZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzd19wcml2LmMgICAgICAg ICAgICAgICAgICAgICAgICB8IDUgKysrKysNCj4gPiA+ID4gIG5ldC9zY2hlZC9hY3RfZ2FjdC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA3ICsrKystLS0NCj4gPiA+ ID4gIDE4IGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2Evb2Nl bG90L2ZlbGl4X3ZzYzk5NTkuYw0KPiA+ID4gPiBiL2RyaXZlcnMvbmV0L2RzYS9vY2Vsb3QvZmVs aXhfdnNjOTk1OS5jDQo+ID4gPiA+IGluZGV4IGIwYWU4ZDYxNTZmNi4uZTU0ZWI4ZTI4Mzg2IDEw MDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTku Yw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL25ldC9kc2Evb2NlbG90L2ZlbGl4X3ZzYzk5NTkuYw0K PiA+ID4gPiBAQCAtMjIxNyw2ICsyMjE3LDExIEBAIHN0YXRpYyBpbnQgdnNjOTk1OV9wc2ZwX2Zp bHRlcl9hZGQoc3RydWN0DQo+ID4gPiA+IG9jZWxvdA0KPiA+ID4gKm9jZWxvdCwgaW50IHBvcnQs DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHNmaS5mbWlkID0gaW5kZXg7DQo+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHNmaS5tYXhzZHUgPSBhLT5wb2xpY2UubXR1Ow0K PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gKyAgICAgICAg ICAgICAgIC8qIEp1c3QgaWdub3JlIEdBQ1Qgd2l0aCBwaXBlIGFjdGlvbiB0byBsZXQgdGhpcw0K PiA+ID4gPiArIGFjdGlvbiBjb3VudCB0aGUNCj4gPiA+IHBhY2tldHMuDQo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgKiBUaGUgTklDIGRvZXNuJ3QgaGF2ZSB0byBwcm9jZXNzIHRoaXMgYWN0aW9u DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKi8NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIGNh c2UgRkxPV19BQ1RJT05fUElQRToNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICBtdXRleF91bmxvY2soJnBzZnAtPmxvY2spOw0KPiA+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7IGRpZmYgLS1naXQNCj4gPiA+ID4g YS9kcml2ZXJzL25ldC9kc2Evc2phMTEwNS9zamExMTA1X2Zsb3dlci5jDQo+ID4gPiA+IGIvZHJp dmVycy9uZXQvZHNhL3NqYTExMDUvc2phMTEwNV9mbG93ZXIuYw0KPiA+ID4gPiBpbmRleCBmYWQ1 YWZlMzgxOWMuLmQzZWVlZWVhMTUyYSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQv ZHNhL3NqYTExMDUvc2phMTEwNV9mbG93ZXIuYw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL25ldC9k c2Evc2phMTEwNS9zamExMTA1X2Zsb3dlci5jDQo+ID4gPiA+IEBAIC00MjYsNiArNDI2LDExIEBA IGludCBzamExMTA1X2Nsc19mbG93ZXJfYWRkKHN0cnVjdCBkc2Ffc3dpdGNoDQo+ID4gPiA+ICpk cywNCj4gPiA+IGludCBwb3J0LA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo cmMpDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7DQo+ ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gPiArICAgICAgICAg ICAgICAgLyogSnVzdCBpZ25vcmUgR0FDVCB3aXRoIHBpcGUgYWN0aW9uIHRvIGxldCB0aGlzDQo+ ID4gPiA+ICsgYWN0aW9uIGNvdW50IHRoZQ0KPiA+ID4gcGFja2V0cy4NCj4gPiA+ID4gKyAgICAg ICAgICAgICAgICAqIFRoZSBOSUMgZG9lc24ndCBoYXZlIHRvIHByb2Nlc3MgdGhpcyBhY3Rpb24N Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAqLw0KPiA+ID4gPiArICAgICAgICAgICAgICAgY2Fz ZSBGTE9XX0FDVElPTl9QSVBFOg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBicmVh azsNCj4gPiA+ID4gICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQo+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ssDQo+ID4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0aW9uIG5vdA0KPiA+ID4gPiBz dXBwb3J0ZWQiKTsgZGlmZiAtLWdpdA0KPiA+ID4gPiBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2No ZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMNCj4gPiA+ID4gYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jDQo+ID4gPiA+IGluZGV4IGRkOWJl MjI5ODE5YS4uNDQzZjQwNWMwZWQ0IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jDQo+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMNCj4gPiA+ ID4gQEAgLTc3MCw2ICs3NzAsMTEgQEAgaW50IGN4Z2I0X3ZhbGlkYXRlX2Zsb3dfYWN0aW9ucyhz dHJ1Y3QNCj4gPiA+ID4gbmV0X2RldmljZQ0KPiA+ID4gKmRldiwNCj4gPiA+ID4gICAgICAgICAg ICAgICAgIGNhc2UgRkxPV19BQ1RJT05fUVVFVUU6DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIERvIG5vdGhpbmcuIGN4Z2I0X3NldF9maWx0ZXIgd2lsbCB2YWxpZGF0ZSAqLw0K PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gKyAgICAgICAg ICAgICAgIC8qIEp1c3QgaWdub3JlIEdBQ1Qgd2l0aCBwaXBlIGFjdGlvbiB0byBsZXQgdGhpcw0K PiA+ID4gPiArIGFjdGlvbiBjb3VudCB0aGUNCj4gPiA+IHBhY2tldHMuDQo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgKiBUaGUgTklDIGRvZXNuJ3QgaGF2ZSB0byBwcm9jZXNzIHRoaXMgYWN0aW9u DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKi8NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIGNh c2UgRkxPV19BQ1RJT05fUElQRToNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJl YWs7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+ID4gPiAgICAgICAgICAg ICAgICAgICAgICAgICBuZXRkZXZfZXJyKGRldiwgIiVzOiBVbnN1cHBvcnRlZCBhY3Rpb25cbiIs IF9fZnVuY19fKTsNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FT1BO T1RTVVBQOyBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNj YWxlL2RwYWEyL2RwYWEyLXN3aXRjaC1mbG93ZXIuYw0KPiA+ID4gPiBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1zd2l0Y2gtZmxvd2VyLmMNCj4gPiA+ID4gaW5k ZXggY2FjZDQ1NGFjNjk2Li5jZmJmMmY3NmU4M2EgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9kcGFhMi9kcGFhMi1zd2l0Y2gtZmxvd2VyLmMNCj4g PiA+ID4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEyL2RwYWEyLXN3 aXRjaC1mbG93ZXIuYw0KPiA+ID4gPiBAQCAtMzc4LDYgKzM3OCwxMSBAQCBzdGF0aWMgaW50DQo+ ID4gPiA+IGRwYWEyX3N3aXRjaF90Y19wYXJzZV9hY3Rpb25fYWNsKHN0cnVjdA0KPiA+ID4gZXRo c3dfY29yZSAqZXRoc3csDQo+ID4gPiA+ICAgICAgICAgY2FzZSBGTE9XX0FDVElPTl9EUk9QOg0K PiA+ID4gPiAgICAgICAgICAgICAgICAgZHBzd19hY3QtPmFjdGlvbiA9IERQU1dfQUNMX0FDVElP Tl9EUk9QOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ICsgICAgICAg LyogSnVzdCBpZ25vcmUgR0FDVCB3aXRoIHBpcGUgYWN0aW9uIHRvIGxldCB0aGlzIGFjdGlvbg0K PiA+ID4gPiArIGNvdW50IHRoZQ0KPiA+ID4gcGFja2V0cy4NCj4gPiA+ID4gKyAgICAgICAgKiBU aGUgTklDIGRvZXNuJ3QgaGF2ZSB0byBwcm9jZXNzIHRoaXMgYWN0aW9uDQo+ID4gPiA+ICsgICAg ICAgICovDQo+ID4gPiA+ICsgICAgICAgY2FzZSBGTE9XX0FDVElPTl9QSVBFOg0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ICAgICAgICAgZGVmYXVsdDoNCj4gPiA+ID4g ICAgICAgICAgICAgICAgIE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ssDQo+ID4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFjdGlvbiBub3Qgc3VwcG9ydGVkIik7IEBA DQo+ID4gPiA+IC02NTEsNg0KPiA+ID4gPiArNjU2LDcgQEAgaW50IGRwYWEyX3N3aXRjaF9jbHNf Zmxvd2VyX3JlcGxhY2Uoc3RydWN0DQo+ID4gPiBkcGFhMl9zd2l0Y2hfZmlsdGVyX2Jsb2NrICpi bG9jaywNCj4gPiA+ID4gICAgICAgICBjYXNlIEZMT1dfQUNUSU9OX1JFRElSRUNUOg0KPiA+ID4g PiAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05fVFJBUDoNCj4gPiA+ID4gICAgICAgICBjYXNlIEZM T1dfQUNUSU9OX0RST1A6DQo+ID4gPiA+ICsgICAgICAgY2FzZSBGTE9XX0FDVElPTl9QSVBFOg0K PiA+ID4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIGRwYWEyX3N3aXRjaF9jbHNfZmxvd2VyX3Jl cGxhY2VfYWNsKGJsb2NrLCBjbHMpOw0KPiA+ID4gPiAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05f TUlSUkVEOg0KPiA+ID4gPiAgICAgICAgICAgICAgICAgcmV0dXJuDQo+ID4gPiA+IGRwYWEyX3N3 aXRjaF9jbHNfZmxvd2VyX3JlcGxhY2VfbWlycm9yKGJsb2NrLA0KPiA+ID4gPiBjbHMpOyBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV90Y19saWIuYw0KPiA+ ID4gPiBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfdGNfbGliLmMNCj4gPiA+ ID4gaW5kZXggZmFiYTBmODU3Y2Q5Li41OTA4YWQ0ZDAxNzAgMTAwNjQ0DQo+ID4gPiA+IC0tLSBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfdGNfbGliLmMNCj4gPiA+ID4gKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV90Y19saWIuYw0KPiA+ID4gPiBA QCAtNjQyLDYgKzY0MiwxMSBAQCBpY2VfZXN3aXRjaF90Y19wYXJzZV9hY3Rpb24oc3RydWN0DQo+ ID4gPiA+IGljZV90Y19mbG93ZXJfZmx0ciAqZmx0ciwNCj4gPiA+ID4NCj4gPiA+ID4gICAgICAg ICAgICAgICAgIGJyZWFrOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgIC8qIEp1c3QgaWdub3Jl IEdBQ1Qgd2l0aCBwaXBlIGFjdGlvbiB0byBsZXQgdGhpcyBhY3Rpb24NCj4gPiA+ID4gKyBjb3Vu dCB0aGUNCj4gPiA+IHBhY2tldHMuDQo+ID4gPiA+ICsgICAgICAgICogVGhlIE5JQyBkb2Vzbid0 IGhhdmUgdG8gcHJvY2VzcyB0aGlzIGFjdGlvbg0KPiA+ID4gPiArICAgICAgICAqLw0KPiA+ID4g PiArICAgICAgIGNhc2UgRkxPV19BQ1RJT05fUElQRToNCj4gPiA+ID4gKyAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+ID4gPiAgICAgICAgIGRlZmF1bHQ6DQo+ID4gPiA+ICAgICAgICAgICAgICAg ICBOTF9TRVRfRVJSX01TR19NT0QoZmx0ci0+ZXh0YWNrLCAiVW5zdXBwb3J0ZWQNCj4gPiA+ID4g YWN0aW9uIGluDQo+ID4gPiBzd2l0Y2hkZXYgbW9kZSIpOw0KPiA+ID4gPiAgICAgICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jDQo+ID4gPiA+IGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYw0KPiA+ID4gPiBpbmRl eCBlNjQzMThjMTEwZmQuLmZjMDU4OTdhZGI3MCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYw0KPiA+ID4gPiAr KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5j DQo+ID4gPiA+IEBAIC00NTAsNiArNDUwLDExIEBAIHN0YXRpYyBpbnQgb3R4Ml90Y19wYXJzZV9h Y3Rpb25zKHN0cnVjdA0KPiA+ID4gPiBvdHgyX25pYw0KPiA+ID4gKm5pYywNCj4gPiA+ID4gICAg ICAgICAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05fTUFSSzoNCj4gPiA+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgbWFyayA9IGFjdC0+bWFyazsNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAvKiBKdXN0IGlnbm9yZSBHQUNU IHdpdGggcGlwZSBhY3Rpb24gdG8gbGV0IHRoaXMNCj4gPiA+ID4gKyBhY3Rpb24gY291bnQgdGhl DQo+ID4gPiBwYWNrZXRzLg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICogVGhlIE5JQyBkb2Vz bid0IGhhdmUgdG8gcHJvY2VzcyB0aGlzIGFjdGlvbg0KPiA+ID4gPiArICAgICAgICAgICAgICAg ICovDQo+ID4gPiA+ICsgICAgICAgICAgICAgICBjYXNlIEZMT1dfQUNUSU9OX1BJUEU6DQo+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gPiAgICAgICAgICAgICAg ICAgZGVmYXVsdDoNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FT1BO T1RTVVBQOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgfQ0KPiA+ID4gPiBkaWZmIC0tZ2l0DQo+ ID4gPiA+IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9m bG93ZXIuYw0KPiA+ID4gPiBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJlc3RlcmEv cHJlc3RlcmFfZmxvd2VyLmMNCj4gPiA+ID4gaW5kZXggOTFhNDc4Yjc1Y2JmLi45Njg2ZWQwODZl MzUgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvcHJl c3RlcmEvcHJlc3RlcmFfZmxvd2VyLmMNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWFydmVsbC9wcmVzdGVyYS9wcmVzdGVyYV9mbG93ZXIuYw0KPiA+ID4gPiBAQCAtMTI2LDYg KzEyNiwxMSBAQCBzdGF0aWMgaW50DQo+ID4gPiA+IHByZXN0ZXJhX2Zsb3dlcl9wYXJzZV9hY3Rp b25zKHN0cnVjdA0KPiA+ID4gcHJlc3RlcmFfZmxvd19ibG9jayAqYmxvY2ssDQo+ID4gPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnIpDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAvKiBKdXN0IGlnbm9yZSBHQUNUIHdp dGggcGlwZSBhY3Rpb24gdG8gbGV0IHRoaXMNCj4gPiA+ID4gKyBhY3Rpb24gY291bnQgdGhlDQo+ ID4gPiBwYWNrZXRzLg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICogVGhlIE5JQyBkb2Vzbid0 IGhhdmUgdG8gcHJvY2VzcyB0aGlzIGFjdGlvbg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICov DQo+ID4gPiA+ICsgICAgICAgICAgICAgICBjYXNlIEZMT1dfQUNUSU9OX1BJUEU6DQo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAg ZGVmYXVsdDoNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgTkxfU0VUX0VSUl9NU0df TU9EKGV4dGFjaywgIlVuc3VwcG9ydGVkIGFjdGlvbiIpOw0KPiA+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgICBwcl9lcnIoIlVuc3VwcG9ydGVkIGFjdGlvblxuIik7IGRpZmYgLS1naXQNCj4g PiA+ID4gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYw0K PiA+ID4gPiBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lZGlhdGVrL210a19wcGVfb2ZmbG9hZC5j DQo+ID4gPiA+IGluZGV4IDgxYWZkNWVlM2ZiZi4uOTFlNGQzZmNjNzU2IDEwMDY0NA0KPiA+ID4g PiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxvYWQuYw0K PiA+ID4gPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWRpYXRlay9tdGtfcHBlX29mZmxv YWQuYw0KPiA+ID4gPiBAQCAtMzQ0LDYgKzM0NCwxMSBAQCBtdGtfZmxvd19vZmZsb2FkX3JlcGxh Y2Uoc3RydWN0IG10a19ldGgNCj4gKmV0aCwNCj4gPiA+IHN0cnVjdCBmbG93X2Nsc19vZmZsb2Fk ICpmKQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnBwcG9lLnNpZCA9IGFj dC0+cHBwb2Uuc2lkOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnBwcG9l Lm51bSsrOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4g KyAgICAgICAgICAgICAgIC8qIEp1c3QgaWdub3JlIEdBQ1Qgd2l0aCBwaXBlIGFjdGlvbiB0byBs ZXQgdGhpcw0KPiA+ID4gPiArIGFjdGlvbiBjb3VudCB0aGUNCj4gPiA+IHBhY2tldHMuDQo+ID4g PiA+ICsgICAgICAgICAgICAgICAgKiBUaGUgTklDIGRvZXNuJ3QgaGF2ZSB0byBwcm9jZXNzIHRo aXMgYWN0aW9uDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKi8NCj4gPiA+ID4gKyAgICAgICAg ICAgICAgIGNhc2UgRkxPV19BQ1RJT05fUElQRToNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4gPiA+ICAgICAg ICAgICAgICAgICB9DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmMNCj4gPiA+ID4gYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmMNCj4gPiA+ID4gaW5kZXggYjA4MzM5 ZDk4NmQ1Li4yMzE2NjBjYjFkYWYgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYw0KPiA+ID4gPiArKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmMNCj4gPiA+ID4g QEAgLTU0NCw2ICs1NDQsMTIgQEAgbWx4NWVfcmVwX2luZHJfcmVwbGFjZV9hY3Qoc3RydWN0DQo+ ID4gPiBtbHg1ZV9yZXBfcHJpdiAqcnByaXYsDQo+ID4gPiA+ICAgICAgICAgICAgICAgICBpZiAo IWFjdC0+b2ZmbG9hZF9hY3Rpb24pDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOw0KPiA+ID4gPg0KPiA+ID4gPiArICAgICAgICAgICAgICAgLyogSnVzdCBpZ25vcmUg R0FDVCB3aXRoIHBpcGUgYWN0aW9uIHRvIGxldCB0aGlzDQo+ID4gPiA+ICsgYWN0aW9uIGNvdW50 IHRoZQ0KPiA+ID4gcGFja2V0cy4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAqIFRoZSBOSUMg ZG9lc24ndCBoYXZlIHRvIHByb2Nlc3MgdGhpcyBhY3Rpb24NCj4gPiA+ID4gKyAgICAgICAgICAg ICAgICAqLw0KPiA+ID4gPiArICAgICAgICAgICAgICAgaWYgKGFjdGlvbi0+aWQgPT0gRkxPV19B Q1RJT05fUElQRSkNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ ID4gPiA+ICsNCj4gPiA+ID4gICAgICAgICAgICAgICAgIGlmICghYWN0LT5vZmZsb2FkX2FjdGlv bihwcml2LCBmbF9hY3QsIGFjdGlvbikpDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg IGFkZCA9IHRydWU7DQo+ID4gPiA+ICAgICAgICAgfQ0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMNCj4gPiA+ID4gYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYw0KPiA+ID4gPiBp bmRleCAzNzgyZjAwOTcyOTIuLmFkYWMyY2U5YjI0ZiAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMNCj4gPiA+ID4gKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMNCj4gPiA+ ID4gQEAgLTM4NTMsNiArMzg1MywxMSBAQCBwYXJzZV90Y19hY3Rpb25zKHN0cnVjdA0KPiA+ID4g PiBtbHg1ZV90Y19hY3RfcGFyc2Vfc3RhdGUgKnBhcnNlX3N0YXRlLA0KPiA+ID4gPg0KPiA+ID4g PiAgICAgICAgIGZsb3dfYWN0aW9uX2Zvcl9lYWNoKGksIF9hY3QsICZmbG93X2FjdGlvbl9yZW9y ZGVyKSB7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBhY3QgPSAqX2FjdDsNCj4gPiA+ID4gKyAg ICAgICAgICAgICAgIC8qIEp1c3QgaWdub3JlIEdBQ1Qgd2l0aCBwaXBlIGFjdGlvbiB0byBsZXQg dGhpcw0KPiA+ID4gPiArIGFjdGlvbiBjb3VudCB0aGUNCj4gPiA+IHBhY2tldHMuDQo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgKiBUaGUgTklDIGRvZXNuJ3QgaGF2ZSB0byBwcm9jZXNzIHRoaXMg YWN0aW9uDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKi8NCj4gPiA+ID4gKyAgICAgICAgICAg ICAgIGlmIChhY3QtPmlkID09IEZMT1dfQUNUSU9OX1BJUEUpDQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgdGNfYWN0ID0g bWx4NWVfdGNfYWN0X2dldChhY3QtPmlkLCBuc190eXBlKTsNCj4gPiA+ID4gICAgICAgICAgICAg ICAgIGlmICghdGNfYWN0KSB7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIE5MX1NF VF9FUlJfTVNHX01PRChleHRhY2ssICJOb3QNCj4gPiA+ID4gaW1wbGVtZW50ZWQgb2ZmbG9hZCBh Y3Rpb24iKTsgZGlmZiAtLWdpdA0KPiA+ID4gPiBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seHN3L3NwZWN0cnVtX2Zsb3dlci5jDQo+ID4gPiA+IGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4c3cvc3BlY3RydW1fZmxvd2VyLmMNCj4gPiA+ID4gaW5kZXggZTkxZmIy MDVlMGI0Li45MjcwYmY5NTgxYzcgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2Zsb3dlci5jDQo+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2Zsb3dlci5jDQo+ID4g PiA+IEBAIC0yNjYsNiArMjY2LDExIEBAIHN0YXRpYyBpbnQNCj4gPiA+ID4gbWx4c3dfc3BfZmxv d2VyX3BhcnNlX2FjdGlvbnMoc3RydWN0DQo+ID4gPiBtbHhzd19zcCAqbWx4c3dfc3AsDQo+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4gPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIC8qIEp1c3QgaWdub3JlIEdBQ1Qgd2l0 aCBwaXBlIGFjdGlvbiB0byBsZXQgdGhpcw0KPiA+ID4gPiArIGFjdGlvbiBjb3VudCB0aGUNCj4g PiA+IHBhY2tldHMuDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKiBUaGUgTklDIGRvZXNuJ3Qg aGF2ZSB0byBwcm9jZXNzIHRoaXMgYWN0aW9uDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKi8N Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05fUElQRToNCj4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBk ZWZhdWx0Og0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBOTF9TRVRfRVJSX01TR19N T0QoZXh0YWNrLCAiVW5zdXBwb3J0ZWQgYWN0aW9uIik7DQo+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIGRldl9lcnIobWx4c3dfc3AtPmJ1c19pbmZvLT5kZXYsDQo+ID4gPiA+ICJVbnN1 cHBvcnRlZCBhY3Rpb25cbiIpOyBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2VyLmMNCj4gPiA+ID4gYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9taWNyb2NoaXAvc3Bhcng1L3NwYXJ4NV90Y19mbG93ZXIuYw0KPiA+ ID4gPiBpbmRleCBiZDZiZDM4MGJhMzQuLmUzMmY1YjVkMWU5NSAxMDA2NDQNCj4gPiA+ID4gLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9zcGFyeDVfdGNfZmxvd2Vy LmMNCj4gPiA+ID4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL3NwYXJ4NS9z cGFyeDVfdGNfZmxvd2VyLmMNCj4gPiA+ID4gQEAgLTY5Miw2ICs2OTIsMTAgQEAgc3RhdGljIGlu dCBzcGFyeDVfdGNfZmxvd2VyX3JlcGxhY2Uoc3RydWN0DQo+ID4gPiBuZXRfZGV2aWNlICpuZGV2 LA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gICAgICAg ICAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05fR09UTzoNCj4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgLyogTGlua3MgYmV0d2VlbiBWQ0FQcyB3aWxsIGJlIGFkZGVkIGxhdGVyDQo+ID4g PiA+ICovDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAvKiBKdXN0IGlnbm9yZSBHQUNUIHdpdGgg cGlwZSBhY3Rpb24gdG8gbGV0IHRoaXMNCj4gPiA+ID4gKyBhY3Rpb24gY291bnQgdGhlDQo+ID4g PiBwYWNrZXRzLg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICogVGhlIE5JQyBkb2Vzbid0IGhh dmUgdG8gcHJvY2VzcyB0aGlzIGFjdGlvbg0KPiA+ID4gPiArICAgICAgICAgICAgICAgICovDQo+ ID4gPiA+ICsgICAgICAgICAgICAgICBjYXNlIEZMT1dfQUNUSU9OX1BJUEU6DQo+ID4gPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgZGVm YXVsdDoNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgTkxfU0VUX0VSUl9NU0dfTU9E KGZjby0+Y29tbW9uLmV4dGFjaywNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21zY2Mvb2NlbG90X2Zsb3dlci5jDQo+ID4gPiA+IGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbXNjYy9vY2Vsb3RfZmxvd2VyLmMNCj4gPiA+ID4gaW5kZXggN2MwODk3ZTc3OWRjLi5iOGUw MWFmMGZiNDggMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mv b2NlbG90X2Zsb3dlci5jDQo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mv b2NlbG90X2Zsb3dlci5jDQo+ID4gPiA+IEBAIC00OTIsNiArNDkyLDExIEBAIHN0YXRpYyBpbnQg b2NlbG90X2Zsb3dlcl9wYXJzZV9hY3Rpb24oc3RydWN0DQo+ID4gPiA+IG9jZWxvdA0KPiA+ID4g Km9jZWxvdCwgaW50IHBvcnQsDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCj4g PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLT50eXBlID0gT0NFTE9UX1BTRlBf RklMVEVSX09GRkxPQUQ7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0K PiA+ID4gPiArICAgICAgICAgICAgICAgLyogSnVzdCBpZ25vcmUgR0FDVCB3aXRoIHBpcGUgYWN0 aW9uIHRvIGxldCB0aGlzDQo+ID4gPiA+ICsgYWN0aW9uIGNvdW50IHRoZQ0KPiA+ID4gcGFja2V0 cy4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAqIFRoZSBOSUMgZG9lc24ndCBoYXZlIHRvIHBy b2Nlc3MgdGhpcyBhY3Rpb24NCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAqLw0KPiA+ID4gPiAr ICAgICAgICAgICAgICAgY2FzZSBGTE9XX0FDVElPTl9QSVBFOg0KPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gICAgICAgICAgICAgICAgIGRlZmF1bHQ6DQo+ ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIE5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ss ICJDYW5ub3Qgb2ZmbG9hZCBhY3Rpb24iKTsNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIC1FT1BOT1RTVVBQOyBkaWZmIC0tZ2l0DQo+ID4gPiA+IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvYWN0aW9uLmMNCj4gPiA+ID4gYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9uZXRyb25vbWUvbmZwL2Zsb3dlci9hY3Rpb24uYw0KPiA+ID4gPiBpbmRl eCAyYjM4M2Q5MmQ3ZjUuLjU3ZmQ4M2I4ZTU0YSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvYWN0aW9uLmMNCj4gPiA+ID4gKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbmV0cm9ub21lL25mcC9mbG93ZXIvYWN0aW9uLmMNCj4g PiA+ID4gQEAgLTEyMDksNiArMTIwOSwxMSBAQCBuZnBfZmxvd2VyX2xvb3BfYWN0aW9uKHN0cnVj dCBuZnBfYXBwDQo+ICphcHAsDQo+ID4gPiBjb25zdCBzdHJ1Y3QgZmxvd19hY3Rpb25fZW50cnkg KmFjdCwNCj4gPiA+ID4gICAgICAgICAgICAgICAgIGlmIChlcnIpDQo+ID4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBlcnI7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBicmVh azsNCj4gPiA+ID4gKyAgICAgICAvKiBKdXN0IGlnbm9yZSBHQUNUIHdpdGggcGlwZSBhY3Rpb24g dG8gbGV0IHRoaXMgYWN0aW9uDQo+ID4gPiA+ICsgY291bnQgdGhlDQo+ID4gPiBwYWNrZXRzLg0K PiA+ID4gPiArICAgICAgICAqIFRoZSBOSUMgZG9lc24ndCBoYXZlIHRvIHByb2Nlc3MgdGhpcyBh Y3Rpb24NCj4gPiA+ID4gKyAgICAgICAgKi8NCj4gPiA+ID4gKyAgICAgICBjYXNlIEZMT1dfQUNU SU9OX1BJUEU6DQo+ID4gPiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gICAgICAg ICBkZWZhdWx0Og0KPiA+ID4gPiAgICAgICAgICAgICAgICAgLyogQ3VycmVudGx5IHdlIGRvIG5v dCBoYW5kbGUgYW55IG90aGVyIGFjdGlvbnMuICovDQo+ID4gPiA+ICAgICAgICAgICAgICAgICBO TF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLCAidW5zdXBwb3J0ZWQgb2ZmbG9hZDoNCj4gPiA+ID4g dW5zdXBwb3J0ZWQgYWN0aW9uIGluIGFjdGlvbiBsaXN0Iik7IGRpZmYgLS1naXQNCj4gPiA+ID4g YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX2ZpbHRlci5jDQo+ID4gPiA+ IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZGUvcWVkZV9maWx0ZXIuYw0KPiA+ID4g PiBpbmRleCAzMDEwODMzZGRkZTMuLjY5MTEwZDU5NzhkOCAxMDA2NDQNCj4gPiA+ID4gLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL3FlZGUvcWVkZV9maWx0ZXIuYw0KPiA+ID4gPiAr KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX2ZpbHRlci5jDQo+ID4g PiA+IEBAIC0xNjkxLDYgKzE2OTEsMTEgQEAgc3RhdGljIGludCBxZWRlX3BhcnNlX2FjdGlvbnMo c3RydWN0DQo+ID4gPiA+IHFlZGVfZGV2DQo+ID4gPiAqZWRldiwNCj4gPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN Cj4gPiA+ID4gKyAgICAgICAgICAgICAgIC8qIEp1c3QgaWdub3JlIEdBQ1Qgd2l0aCBwaXBlIGFj dGlvbiB0byBsZXQgdGhpcw0KPiA+ID4gPiArIGFjdGlvbiBjb3VudCB0aGUNCj4gPiA+IHBhY2tl dHMuDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKiBUaGUgTklDIGRvZXNuJ3QgaGF2ZSB0byBw cm9jZXNzIHRoaXMgYWN0aW9uDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKi8NCj4gPiA+ID4g KyAgICAgICAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05fUElQRToNCj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0K PiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiA+ID4g ICAgICAgICAgICAgICAgIH0NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3NmYy90Yy5jDQo+ID4gPiA+IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3RjLmMgaW5k ZXggZGVlYWFiOWVlNzYxLi43MjU2YmJjZGNjNTkNCj4gPiA+ID4gMTAwNjQ0DQo+ID4gPiA+IC0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy90Yy5jDQo+ID4gPiA+ICsrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L3NmYy90Yy5jDQo+ID4gPiA+IEBAIC00OTQsNiArNDk0LDExIEBAIHN0YXRp YyBpbnQgZWZ4X3RjX2Zsb3dlcl9yZXBsYWNlKHN0cnVjdA0KPiA+ID4gPiBlZnhfbmljDQo+ID4g PiAqZWZ4LA0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICphY3QgPSBzYXZlOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIC8qIEp1c3QgaWdub3JlIEdB Q1Qgd2l0aCBwaXBlIGFjdGlvbiB0byBsZXQgdGhpcw0KPiA+ID4gPiArIGFjdGlvbiBjb3VudCB0 aGUNCj4gPiA+IHBhY2tldHMuDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKiBUaGUgTklDIGRv ZXNuJ3QgaGF2ZSB0byBwcm9jZXNzIHRoaXMgYWN0aW9uDQo+ID4gPiA+ICsgICAgICAgICAgICAg ICAgKi8NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05fUElQRToNCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ICAgICAgICAgICAg ICAgICBkZWZhdWx0Og0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBOTF9TRVRfRVJS X01TR19GTVRfTU9EKGV4dGFjaywgIlVuaGFuZGxlZA0KPiBhY3Rpb24gJXUiLA0KPiA+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhLT5pZCk7IGRp ZmYgLS1naXQNCj4gPiA+ID4gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3X3ByaXYuYw0K PiA+ID4gPiBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3dfcHJpdi5jDQo+ID4gPiA+IGlu ZGV4IDc1ODI5NWM4OThhYy4uYzBhYzU4ZGI2NGQ0IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3X3ByaXYuYw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC90aS9jcHN3X3ByaXYuYw0KPiA+ID4gPiBAQCAtMTQ5Miw2ICsxNDkyLDExIEBA IHN0YXRpYyBpbnQNCj4gPiA+ID4gY3Bzd19xb3NfY29uZmlndXJlX2Nsc2Zsb3dlcihzdHJ1Y3QN Cj4gPiA+ID4gY3Bzd19wcml2ICpwcml2LCBzdHJ1Y3QgZmxvd19jbHNfDQo+ID4gPiA+DQo+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybg0KPiA+ID4gPiBjcHN3X3Fvc19jbHNm bG93ZXJfYWRkX3BvbGljZXIocHJpdiwgZXh0YWNrLCBjbHMsDQo+ID4gPiA+DQo+ID4gPiA+IGFj dC0+cG9saWNlLnJhdGVfcGt0X3BzKTsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIC8qIEp1c3Qg aWdub3JlIEdBQ1Qgd2l0aCBwaXBlIGFjdGlvbiB0byBsZXQgdGhpcw0KPiA+ID4gPiArIGFjdGlv biBjb3VudCB0aGUNCj4gPiA+IHBhY2tldHMuDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgKiBU aGUgTklDIGRvZXNuJ3QgaGF2ZSB0byBwcm9jZXNzIHRoaXMgYWN0aW9uDQo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgKi8NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIGNhc2UgRkxPV19BQ1RJT05f UElQRToNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ICAg ICAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBO TF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLCAiQWN0aW9uIG5vdCBzdXBwb3J0ZWQiKTsNCj4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOyBkaWZmIC0tZ2l0 DQo+ID4gPiA+IGEvbmV0L3NjaGVkL2FjdF9nYWN0LmMgYi9uZXQvc2NoZWQvYWN0X2dhY3QuYyBp bmRleA0KPiA+ID4gPiA2MmQ2ODJiOTZiODguLjgyZDEzNzFlMjUxZSAxMDA2NDQNCj4gPiA+ID4g LS0tIGEvbmV0L3NjaGVkL2FjdF9nYWN0LmMNCj4gPiA+ID4gKysrIGIvbmV0L3NjaGVkL2FjdF9n YWN0LmMNCj4gPiA+ID4gQEAgLTI1MCwxNSArMjUwLDE0IEBAIHN0YXRpYyBpbnQgdGNmX2dhY3Rf b2ZmbG9hZF9hY3Rfc2V0dXAoc3RydWN0DQo+ID4gPiB0Y19hY3Rpb24gKmFjdCwgdm9pZCAqZW50 cnlfZGF0YSwNCj4gPiA+ID4gICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNfdGNmX2dhY3Rf Z290b19jaGFpbihhY3QpKSB7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5 LT5pZCA9IEZMT1dfQUNUSU9OX0dPVE87DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg IGVudHJ5LT5jaGFpbl9pbmRleCA9DQo+ID4gPiA+IHRjZl9nYWN0X2dvdG9fY2hhaW5faW5kZXgo YWN0KTsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNfdGNmX2dhY3RfcGlw ZShhY3QpKSB7DQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5pZCA9IEZM T1dfQUNUSU9OX1BJUEU7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzX3Rj Zl9nYWN0X2NvbnRpbnVlKGFjdCkpIHsNCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg TkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywgIk9mZmxvYWQgb2YgXCJjb250aW51ZVwiDQo+ID4g PiBhY3Rpb24gaXMgbm90IHN1cHBvcnRlZCIpOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICB9IGVsc2Ug aWYgKGlzX3RjZl9nYWN0X3JlY2xhc3NpZnkoYWN0KSkgew0KPiA+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgICBOTF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLCAiT2ZmbG9hZCBvZiBcInJlY2xh c3NpZnlcIg0KPiA+ID4gYWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQiKTsNCj4gPiA+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiA+ID4gPiAtICAgICAgICAg ICAgICAgfSBlbHNlIGlmIChpc190Y2ZfZ2FjdF9waXBlKGFjdCkpIHsNCj4gPiA+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywgIk9mZmxvYWQgb2Yg XCJwaXBlXCINCj4gYWN0aW9uIGlzDQo+ID4gPiBub3Qgc3VwcG9ydGVkIik7DQo+ID4gPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsNCj4gPiA+ID4gICAgICAg ICAgICAgICAgIH0gZWxzZSB7DQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIE5MX1NF VF9FUlJfTVNHX01PRChleHRhY2ssICJVbnN1cHBvcnRlZA0KPiA+ID4gPiBnZW5lcmljIGFjdGlv bg0KPiA+ID4gb2ZmbG9hZCIpOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLUVPUE5PVFNVUFA7IEBAIC0yNzUsNiArMjc0LDggQEANCj4gPiA+ID4gc3RhdGljIGludCB0 Y2ZfZ2FjdF9vZmZsb2FkX2FjdF9zZXR1cChzdHJ1Y3QgdGNfYWN0aW9uICphY3QsIHZvaWQNCj4g KmVudHJ5X2RhdGEsDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGZsX2FjdGlvbi0+ aWQgPSBGTE9XX0FDVElPTl9UUkFQOw0KPiA+ID4gPiAgICAgICAgICAgICAgICAgZWxzZSBpZiAo aXNfdGNmX2dhY3RfZ290b19jaGFpbihhY3QpKQ0KPiA+ID4gPiAgICAgICAgICAgICAgICAgICAg ICAgICBmbF9hY3Rpb24tPmlkID0gRkxPV19BQ1RJT05fR09UTzsNCj4gPiA+ID4gKyAgICAgICAg ICAgICAgIGVsc2UgaWYgKGlzX3RjZl9nYWN0X3BpcGUoYWN0KSkNCj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgZmxfYWN0aW9uLT5pZCA9IEZMT1dfQUNUSU9OX1BJUEU7DQo+ID4gPiA+ ICAgICAgICAgICAgICAgICBlbHNlDQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRU9QTk9UU1VQUDsNCj4gPiA+ID4gICAgICAgICB9DQo+ID4gPiA+IC0tDQo+ID4gPiA+ IDIuMzAuMg0KPiA+ID4gPg0KDQo=