From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5DAA341D9C; Tue, 28 Feb 2023 12:13:16 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3D34740EE4; Tue, 28 Feb 2023 12:13:16 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 624F64021F for ; Tue, 28 Feb 2023 12:13:14 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677582794; x=1709118794; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=CKiU4b4u06HHTedFLOjSR5x/3WLBDXESI9/TRuy5AtA=; b=Bh91BuFxsSiZDPuFKDi8+th5Ne2ywOg5rgWCQTEo1O1FZP4TK5M/HIZ7 StpR0g/ubb1oEFSOFiOveftXNzIiD6MrqG9S/cuRYmtdzDVESwRPmL/IB OIvyjtqLvMvz61fTkZWbcd3c5ZU/K2AZLpk6Nq88EDeMrDRPlAbXZpRY2 GpJhRAipqCPLXi9L8RgpvT2ZGcMyOesyNPB3oM+U3nbOLz5eNxI0CKk28 KrY25iFWhI4liO3EXRo5vvJ/+ZQ8yDArhSNO2jAtBXTyorlmVdhFkJ3w6 AjGl6G/KBBeg4oY1WpLfEj0mX/FJ3wEl97KcCGwYsEDuvYA6DlKjAHxx4 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10634"; a="336397446" X-IronPort-AV: E=Sophos;i="5.98,221,1673942400"; d="scan'208";a="336397446" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Feb 2023 03:13:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10634"; a="817052978" X-IronPort-AV: E=Sophos;i="5.98,221,1673942400"; d="scan'208";a="817052978" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga001.fm.intel.com with ESMTP; 28 Feb 2023 03:12:47 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 28 Feb 2023 03:12:46 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Tue, 28 Feb 2023 03:12:46 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.42) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Tue, 28 Feb 2023 03:12:46 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W3HD072XGjMxp2GX2moXLQYLpnJBVSDT+jLd2E4EKbREQsRk5awR2ZwYbmf8M0bLX6EHvOBTVlwIbHpAhbQXntFOMmtPK8724mxxMFP2WyKjJoTjtn8h+Jvq/IOBuJM1qKVR6wKw1JRbUeuq8mIsQQIXXnFJnSUJHd4SBrU49T60Phy5vsr8NGD3Gf3mUuwRPLFoAhWkH0g4FTfI3mC9csWjO9uKsLhFx1XEdzQybmXukNQ6ARf5737IZ+Ppg+ZpcBwlOwqZMV6+eUi7eh3Anc7N/ZFR8/7oVw5B8qHei1YsvrLVLrkVfPbg8QpadzoOFSM3+pFwu44SzYkwXkELyA== 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=CKiU4b4u06HHTedFLOjSR5x/3WLBDXESI9/TRuy5AtA=; b=cubNViDpab4mcpfHISNV1Ae4SiTkzCFgbLv4/zNpAFDn56oiGB6F/N/sGYqxld5pZF2hNMgVpBEccKV6nI5rTPjXbJlW/Q5MpciQnILkH+yrUzMfjR7VljEY5kMHqc9uPZD08sPNIZcshVsRlujkvqvfEJv/sAfXSHWMM3gdwWRmmEj4cwlSBhEMJUltc5rw0OCbIynzq9aA4lG4zlfBxsfC33cGlO6flM2ThH7+78hWVOKgZK1IChimIMoA7KhCI8jZtpOVLu6xESgjXSEvBYNimnA7PM9R4U8GiLKGBKxRIfVOzRcDYSyzf2oOGMv5ASOv0ZeaqmVQH4BOyujPtQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB5877.namprd11.prod.outlook.com (2603:10b6:510:141::12) by SA1PR11MB7014.namprd11.prod.outlook.com (2603:10b6:806:2b9::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.29; Tue, 28 Feb 2023 11:12:44 +0000 Received: from PH0PR11MB5877.namprd11.prod.outlook.com ([fe80::73e:9f2f:1bef:8263]) by PH0PR11MB5877.namprd11.prod.outlook.com ([fe80::73e:9f2f:1bef:8263%7]) with mapi id 15.20.6134.024; Tue, 28 Feb 2023 11:12:44 +0000 From: "Liu, Mingxia" To: Ferruh Yigit , "Xing, Beilei" , "Zhang, Yuying" CC: "dev@dpdk.org" Subject: RE: [PATCH v7 01/21] net/cpfl: support device initialization Thread-Topic: [PATCH v7 01/21] net/cpfl: support device initialization Thread-Index: AQHZQaXnIP1faqCYNUGlqcuuTss4q67jZceAgACV9BA= Date: Tue, 28 Feb 2023 11:12:44 +0000 Message-ID: References: <20230213021956.2953088-1-mingxia.liu@intel.com> <20230216003010.3439881-1-mingxia.liu@intel.com> <20230216003010.3439881-2-mingxia.liu@intel.com> <215a5adc-c59e-bfef-be70-5ce5f1a28a47@amd.com> In-Reply-To: <215a5adc-c59e-bfef-be70-5ce5f1a28a47@amd.com> Accept-Language: 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=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5877:EE_|SA1PR11MB7014:EE_ x-ms-office365-filtering-correlation-id: 07fb65ae-9381-4bdc-e538-08db197cb71d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PGbhp8DoDn2SmP1NvMW5ufbE3E6LclUzXUfe3jwFX1dO1FJJpUnm5sJVxpuYfnZ+FlisEQuXKacK1P57dUKeUQIIb4RFhJL9BimkXQ67wJGT/OfMokpsUli3cakNHL33K3PA6zx3shkrP6sg1fAa374cVvoSRhJhD+dkg3tto5lVdgAD3cUMvMLmPTLVFwdvbzlvEeV79ThQJ2BX+MORuLzC8PzLXS5cU543NYevmuDB8D8+13xuT3DrtJIscYrbQRaV7f22jC4t13yw/nR0z64z+J99bgqJMfKRYwUNQnLISM4MtUKWo6jXQCivSQFSCsJiXO+47Q3TEBIXFHdZc35A+Q0Kdqtft9HIGE7VTPOcHo9TB/Lvy4CrX5ByZRaKIst6qHLHJQXfy2KRUxUZe1X/VCYX49Kbh4EM5U+nXl20gCaiqq3FIOyPjP99EOwygo4sarZXQfPxr9irMZ4jrq1og2u0skM61I+fE0pzk0Xt/UahxDDZtSkC2yCiCjypY5oTkaKVzOfQ6AQpYA5up6ZEYI9dErWjlccr2m2fvGuMCjjiGSJ4bQoARQcW8L3Mntx1xIatAxF9SGW+BqGEZv7/u0ofomXvDlT/iannyDbrJ/6C/DrY+f1GCD42IczIsg/lEh1iiAbg3i7CI5/hSQQ5ydEdQUcZVtzCJlOT4hNA4jLNXTbUNGvFiN9LZxcFlTmtOudd1gtE/WXbPxg0tg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5877.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(136003)(366004)(346002)(376002)(396003)(39860400002)(451199018)(110136005)(83380400001)(6636002)(33656002)(4326008)(122000001)(66476007)(8676002)(66446008)(38100700002)(64756008)(71200400001)(53546011)(6506007)(478600001)(316002)(186003)(9686003)(26005)(82960400001)(7696005)(5660300002)(76116006)(66556008)(55016003)(66946007)(30864003)(8936002)(52536014)(86362001)(2906002)(41300700001)(38070700005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cHIzWURCZVViZkVoSUl1ZDk0YThIWjBIbUprOHRiakRvdm1CUW9KNWFMWUpQ?= =?utf-8?B?dmkxZlVhL3NzaGN0Wko3cUJhVndJd01GekJ0V0VDY1hyblVaWkpHWVdnOGRW?= =?utf-8?B?NEpPQ0RGWkdHMiszWU1CekpDWkt4eWNMQVdYTzY1b3FZVmZqUlpjd3pmSjBG?= =?utf-8?B?aEpDOXhVY3MxUzFwUXZpSmk4QlFUcnJoYkpuNlFhbVZZcDl4QVpiQ2JLZW13?= =?utf-8?B?Z3lwT1lFZ01lQk9FRGJmMm9nSTNEWG1telp5ODhlejU4K0dUYm1BdzkzbjNB?= =?utf-8?B?S3VXbUc4SnFQSFpBS3RkSXZsWlZXZEtRd2JaNWhPT1BsWlVzL29TcUxxQzRy?= =?utf-8?B?YWlpdWMrdVJqRzBaUk83cFcrS3lJTmoxNmgyY2xjL0xhYXRZb29NV0t4cmpN?= =?utf-8?B?a2tucExKSnhkbDIrT0FFdENsb3cwaGoxUFlZU1hkN2dkbk8vdDV4U09ueXIr?= =?utf-8?B?QUZtTG4rSUtEaG9ZeDEzZUtuQy83RXh0Q1ZYZkNUUzZpV3FJSFBJVnRGeGZP?= =?utf-8?B?THNOK3owenpPMnBmNStmdGNaOUdNTG9FZ09ZNEQ5bUR5cG5JV3d2MDArRWpm?= =?utf-8?B?SFlsdUYxSmQyaXpsektBbm5EUnlKTTJycHdoU0hYVHpJSHc3SW83dUtmbDU3?= =?utf-8?B?RFgyOUpnNERYZC9tSmRlaWVGQnJuMlBWYTNwL2xIanVIRldxRjRJK3BDN0F2?= =?utf-8?B?eG5Pa0RQQ1Q5ZFMrY2s4anNQNW0rUEMzT2hYdjlCYVczZ1RCVVVsTHhRRjRY?= =?utf-8?B?am5sV1oxK3gySzlINWRJUG5HMmJTNjlJVGNSVmdCRFlxenhoeHpTcDhsTnd3?= =?utf-8?B?UCtvd3ZlVjRhZEo5ZHJQeTJCUDQ1b3V3OUUxZWYzR2dONGJSWDh3dHJDYUhF?= =?utf-8?B?enhxaUcrL0QxdVNYSHpIWE92dnU3RFE0M2RIYVB0VHczZnhLcUtWL0FGWGdl?= =?utf-8?B?MjN5amoxbGRpSEJlRHliZFVnQ3k4YXN6ajZpOW9OVDgrbGMvelFTNmQ4SXlG?= =?utf-8?B?VDZIZkIzNFRwQityZ0VRL3ZUTzYrL09YKzJwd3h5aUYreGlGOFV2S3U4NDNa?= =?utf-8?B?YXcrWDQxelNDRGs4NXFWVWRveWx5cGJ3OW1tN081QTd6aThmOVU2MURyYWdo?= =?utf-8?B?NXQ3RnhBamFqaVViaE9hS0ZhQVpLM2hqWldQcXVpaFFNZWdOd1AzekN5Lzdu?= =?utf-8?B?S1VJTVBxcXcxWnZyejdlTTZkRnRRTlVhRVBlL1MyOW9hcVJHYlhhejlEK012?= =?utf-8?B?NkhwS3diRXJmYis0WG9VZjdPWThVOWVZZ2djRVdvOUVUVFliZ01PWTIzRGhW?= =?utf-8?B?THZNSUJFNlhCemUzQWtjSUZSUmY0bkZ1eEJPa2E4K2plaGFpNDBYeUZwd1R6?= =?utf-8?B?M05pVFp0UUxsc0dSSWJxZjBJV0cvWDR5dGlFRWRPUWpJeGtqWXJMb295ZWg5?= =?utf-8?B?WjI4UThXYXdFUDQxbmZyaVdJaWgwS09lZ3VHYXp2LzJnS3prQVV2RWpjMFpS?= =?utf-8?B?MkJmcHc4TTFUekhLTHhWTFM3ZmY5VjNWM29KaTZPbU9yVUpMRGhVUWwyME83?= =?utf-8?B?RGNlVlBqMnRLT0crNi9WbWNmRldydEZwRjhaVTV5VzgyM1daMG9XV0g2UllG?= =?utf-8?B?eEo0TFZaZmQxaUtMVjRKVVZwWGU1RldVT3BBeTF5MHdTUkdha1NhN3JoTm4v?= =?utf-8?B?Sys5OTR3MXIwdXFuMEZNTWllVmhEY0NheVhMbTRydldzbzhZdk1FSlRpTGVq?= =?utf-8?B?T2JlVmRySVEyQ2Q2dURFNmJYTmVYU0wyU1psR0luZWhYQzZWbGJPRTV5b1JR?= =?utf-8?B?MDJDelJabjdIVUhTNGJDVlN3Mm1sOE5hQksvVXJCanFFZEtzVWtkMUpwMkd1?= =?utf-8?B?bDhqc0s4dWJNREhJOWNGODlIbmlBNG5sKzVIZ1krK3R3bW1OS0tJUFNJcSth?= =?utf-8?B?L25BNnFZK2pncmRaWXNnYlVXRTZ6ZC83TGk5dDRCUU5XVEliRUd1L0tsRUJP?= =?utf-8?B?NTkrQ1NFSC9IZC9Od2JBamdYSEdQTldvR2NuMzU3NW10MUNPOTMxMDd5OEx6?= =?utf-8?B?RlAyeGN5aGM2eHo3cEs5RXJtL295V28xak5IQ2hqbG1VMnFuVVRRVU1JOHlq?= =?utf-8?Q?DVlHcrM5MQ69rcmoQu4U7KeQS?= 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: PH0PR11MB5877.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07fb65ae-9381-4bdc-e538-08db197cb71d X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Feb 2023 11:12:44.1417 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xibmyxU8A4+xjfjBGGRkkIb3aytn9t/l5Sayo5mmCYILxHs+D9qoVy0luKMr9JozGNocsMWj9hSQp+0yQQ72cg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7014 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gU2VudDogVHVlc2RheSwgRmVicnVhcnkgMjgsIDIwMjMg NTo0NCBBTQ0KPiBUbzogTGl1LCBNaW5neGlhIDxtaW5neGlhLmxpdUBpbnRlbC5jb20+OyBYaW5n LCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT47DQo+IFpoYW5nLCBZdXlpbmcgPHl1eWlu Zy56aGFuZ0BpbnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IFlpZ2l0LCBGZXJydWggPGZl cnJ1aC55aWdpdEBhbWQuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY3IDAxLzIxXSBuZXQv Y3BmbDogc3VwcG9ydCBkZXZpY2UgaW5pdGlhbGl6YXRpb24NCj4gDQo+IE9uIDIvMTYvMjAyMyAx MjoyOSBBTSwgTWluZ3hpYSBMaXUgd3JvdGU6DQo+ID4gU3VwcG9ydCBkZXZpY2UgaW5pdCBhbmQg YWRkIHRoZSBmb2xsb3dpbmcgZGV2IG9wczoNCj4gPiAgLSBkZXZfY29uZmlndXJlDQo+ID4gIC0g ZGV2X2Nsb3NlDQo+ID4gIC0gZGV2X2luZm9zX2dldA0KPiA+ICAtIGxpbmtfdXBkYXRlDQo+ID4g IC0gZGV2X3N1cHBvcnRlZF9wdHlwZXNfZ2V0DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBNaW5n eGlhIExpdSA8bWluZ3hpYS5saXVAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBNQUlOVEFJTkVS UyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArDQo+ID4gIGRvYy9ndWlkZXMvbmlj cy9jcGZsLnJzdCAgICAgICAgICAgICAgIHwgIDY2ICsrKw0KPiANCj4gTmVlZCB0byBhZGQgZmls ZSB0byB0b2N0cmVlIChkb2MvZ3VpZGVzL25pY3MvaW5kZXgucnN0KSB0byBtYWtlIGl0IHZpc2li bGUuDQo+IA0KW0xpdSwgTWluZ3hpYV0gb2ssIGdvdCBpdCEgVGhhbmtzIQ0KDQo+ID4gIGRvYy9n dWlkZXMvbmljcy9mZWF0dXJlcy9jcGZsLmluaSAgICAgIHwgIDEyICsNCj4gPiAgZG9jL2d1aWRl cy9yZWxfbm90ZXMvcmVsZWFzZV8yM18wMy5yc3QgfCAgIDYgKw0KPiA+ICBkcml2ZXJzL25ldC9j cGZsL2NwZmxfZXRoZGV2LmMgICAgICAgICB8IDc2OCArKysrKysrKysrKysrKysrKysrKysrKysr DQo+ID4gIGRyaXZlcnMvbmV0L2NwZmwvY3BmbF9ldGhkZXYuaCAgICAgICAgIHwgIDc4ICsrKw0K PiA+ICBkcml2ZXJzL25ldC9jcGZsL2NwZmxfbG9ncy5oICAgICAgICAgICB8ICAzMiArKw0KPiA+ ICBkcml2ZXJzL25ldC9jcGZsL2NwZmxfcnh0eC5jICAgICAgICAgICB8IDI0NCArKysrKysrKw0K PiA+ICBkcml2ZXJzL25ldC9jcGZsL2NwZmxfcnh0eC5oICAgICAgICAgICB8ICAyNSArDQo+IA0K PiBjcGZsX3J4dHguW2NoXSBub3QgdXNlZCBhdCBhbGwgaW4gdGhpcyBwYXRjaCwgJ2NwZmxfdHhf cXVldWVfc2V0dXAoKScgaXMgYWRkZWQgaW4NCj4gdGhpcyBwYXRjaCBhbmQgbmV4dCBwYXRjaCAo Mi8yMSkgbG9va3MgYSBiZXR0ZXIgcGxhY2UgZm9yIGl0Lg0KPiANCltMaXUsIE1pbmd4aWFdIG9r LCB3aWxsIHVwZGF0ZSBpdCwgdGhhbmtzIQ0KDQo+ID4gIGRyaXZlcnMvbmV0L2NwZmwvbWVzb24u YnVpbGQgICAgICAgICAgIHwgIDE0ICsNCj4gPiAgZHJpdmVycy9uZXQvbWVzb24uYnVpbGQgICAg ICAgICAgICAgICAgfCAgIDEgKw0KPiA+ICAxMSBmaWxlcyBjaGFuZ2VkLCAxMjU0IGluc2VydGlv bnMoKykNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9ndWlkZXMvbmljcy9jcGZsLnJzdCAg Y3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL2NwZmwuaW5p ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiBkcml2ZXJzL25ldC9jcGZsL2NwZmxfZXRoZGV2LmMg IGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IGRyaXZlcnMvbmV0L2NwZmwvY3BmbF9ldGhkZXYuaCAg Y3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9jcGZsX2xvZ3MuaCAgY3Jl YXRlIG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9jcGZsX3J4dHguYyAgY3JlYXRl IG1vZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9jcGZsX3J4dHguaCAgY3JlYXRlIG1v ZGUgMTAwNjQ0DQo+ID4gZHJpdmVycy9uZXQvY3BmbC9tZXNvbi5idWlsZA0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMgaW5kZXggOWEwZjQxNmQyZS4uYWY4 MGVkYWY2ZQ0KPiA+IDEwMDY0NA0KPiA+IC0tLSBhL01BSU5UQUlORVJTDQo+ID4gKysrIGIvTUFJ TlRBSU5FUlMNCj4gPiBAQCAtNzgzLDYgKzc4MywxNCBAQCBGOiBkcml2ZXJzL2NvbW1vbi9pZHBm Lw0KPiA+ICBGOiBkb2MvZ3VpZGVzL25pY3MvaWRwZi5yc3QNCj4gPiAgRjogZG9jL2d1aWRlcy9u aWNzL2ZlYXR1cmVzL2lkcGYuaW5pDQo+ID4NCj4gPiArSW50ZWwgY3BmbA0KPiA+ICtNOiBZdXlp bmcgWmhhbmcgPHl1eWluZy56aGFuZ0BpbnRlbC5jb20+DQo+ID4gK006IEJlaWxlaSBYaW5nIDxi ZWlsZWkueGluZ0BpbnRlbC5jb20+DQo+ID4gK1Q6IGdpdDovL2RwZGsub3JnL25leHQvZHBkay1u ZXh0LW5ldC1pbnRlbA0KPiA+ICtGOiBkcml2ZXJzL25ldC9jcGZsLw0KPiA+ICtGOiBkb2MvZ3Vp ZGVzL25pY3MvY3BmbC5yc3QNCj4gPiArRjogZG9jL2d1aWRlcy9uaWNzL2ZlYXR1cmVzL2NwZmwu aW5pDQo+ID4gKw0KPiANCj4gRG9jdW1lbnRhdGlvbiBtZW50aW9ucyBkcml2ZXIgaXMgZXhwZXJp bWVudGFsLCBjYW4geW91IHBsZWFzZSBoaWdobGlnaHQgdGhpcw0KPiBpbiB0aGUgbWFpbnRhaW5l cnMgZmlsZSB0b28sIGFzOg0KPiBJbnRlbCBjcGZsIC0gRVhQRVJJTUVOVEFMDQo+IA0KW0xpdSwg TWluZ3hpYV0gb2ssIHdpbGwgdXBkYXRlIGl0LCB0aGFua3MhDQoNCj4gPiAgSW50ZWwgaWdjDQo+ ID4gIE06IEp1bmZlbmcgR3VvIDxqdW5mZW5nLmd1b0BpbnRlbC5jb20+DQo+ID4gIE06IFNpbWVp IFN1IDxzaW1laS5zdUBpbnRlbC5jb20+DQo+ID4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvbmlj cy9jcGZsLnJzdCBiL2RvYy9ndWlkZXMvbmljcy9jcGZsLnJzdCBuZXcNCj4gPiBmaWxlIG1vZGUg MTAwNjQ0IGluZGV4IDAwMDAwMDAwMDAuLjdjNWFmZjA3ODkNCj4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gKysrIGIvZG9jL2d1aWRlcy9uaWNzL2NwZmwucnN0DQo+ID4gQEAgLTAsMCArMSw2NiBAQA0K PiA+ICsuLiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ID4gKyAgIENv cHlyaWdodChjKSAyMDIyIEludGVsIENvcnBvcmF0aW9uLg0KPiA+ICsNCj4gDQo+IHMvMjAyMi8y MDIzLw0KPiANCj4gPiArLi4gaW5jbHVkZTo6IDxpc29udW0udHh0Pg0KPiA+ICsNCj4gPiArQ1BG TCBQb2xsIE1vZGUgRHJpdmVyDQo+ID4gKz09PT09PT09PT09PT09PT09PT09PQ0KPiA+ICsNCj4g PiArVGhlIFsqRVhQRVJJTUVOVEFMKl0gY3BmbCBQTUQgKCoqbGlicnRlX25ldF9jcGZsKiopIHBy b3ZpZGVzIHBvbGwNCj4gPiArbW9kZSBkcml2ZXIgc3VwcG9ydCBmb3IgSW50ZWxcIHxyZWd8IElu ZnJhc3RydWN0dXJlIFByb2Nlc3NpbmcgVW5pdCAoSW50ZWxcDQo+IHxyZWd8IElQVSkgRTIxMDAu DQo+ID4gKw0KPiANCj4gQ2FuIHlvdSBwbGVhc2UgcHJvdmlkZSBhIGxpbmsgZm9yIHRoZSBtZW50 aW9uZWQgZGV2aWNlPw0KPiANCj4gU28sIGludGVyZXN0ZWQgdXNlcnMgY2FuIGV2YWx1YXRlLCBs ZWFybiBtb3JlIGFib3V0IHRoZSBtZW50aW9uZWQgaGFyZHdhcmUuDQo+IA0KW0xpdSwgTWluZ3hp YV0gb2ssIHdpbGwgYWRkIGl0LCB0aGFua3MhDQo+IA0KPiA+ICsNCj4gPiArTGludXggUHJlcmVx dWlzaXRlcw0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gKw0KPiA+ICtGb2xsb3cgdGhl IERQREsgOmRvYzpgLi4vbGludXhfZ3NnL2luZGV4YCB0byBzZXR1cCB0aGUgYmFzaWMgRFBESw0K PiBlbnZpcm9ubWVudC4NCj4gPiArDQo+ID4gK1RvIGdldCBiZXR0ZXIgcGVyZm9ybWFuY2Ugb24g SW50ZWwgcGxhdGZvcm1zLCBwbGVhc2UgZm9sbG93IHRoZQ0KPiA+ICs6ZG9jOmAuLi9saW51eF9n c2cvbmljX3BlcmZfaW50ZWxfcGxhdGZvcm1gLg0KPiA+ICsNCj4gPiArDQo+ID4gK1ByZS1JbnN0 YWxsYXRpb24gQ29uZmlndXJhdGlvbg0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCj4gPiArDQo+ID4gK1J1bnRpbWUgQ29uZmlnIE9wdGlvbnMNCj4gPiArfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fg0KPiANCj4gSXMgIlJ1bnRpbWUgQ29uZmlnIE9wdGlvbnMiLCBhIHN1YiBzZWN0 aW9uIG9mICJQcmUtSW5zdGFsbGF0aW9uIENvbmZpZ3VyYXRpb24iPw0KPiANCltMaXUsIE1pbmd4 aWFdIFllcywgcmVmZXIgdG8gaWNlIGFuZCBpNDBlIC5yc3QuDQoNCj4gPiArDQo+ID4gKy0gYGB2 cG9ydGBgIChkZWZhdWx0IGBgMGBgKQ0KPiA+ICsNCj4gPiArICBUaGUgUE1EIHN1cHBvcnRzIGNy ZWF0aW9uIG9mIG11bHRpcGxlIHZwb3J0cyBmb3Igb25lIFBDSSBkZXZpY2UsDQo+ID4gKyBlYWNo IHZwb3J0IGNvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIGV0aGRldi4NCj4gPiArICBUaGUgdXNlciBj YW4gc3BlY2lmeSB0aGUgdnBvcnRzIHdpdGggc3BlY2lmaWMgSUQgdG8gYmUgY3JlYXRlZCwgZm9y DQo+IGV4YW1wbGU6Og0KPiA+ICsNCj4gPiArICAgIC1hIGNhOjAwLjAsdnBvcnQ9WzAsMiwzXQ0K PiA+ICsNCj4gPiArICBUaGVuIHRoZSBQTUQgd2lsbCBjcmVhdGUgMyB2cG9ydHMgKGV0aGRldnMp IGZvciBkZXZpY2UgYGBjYTowMC4wYGAuDQo+ID4gKw0KPiANCj4gV2h5IG5lZWQgc3BlY2lmaWMg SURzPw0KPiANCltiZWlsZWldIHdl4oCZcmUgdXNpbmcgdGhpcyBJRCB0byBtYXAgcGh5c2ljYWwg cG9ydCB0byB2cG9ydCBhcyBkZWZhdWx0IHJlY2VpdmUgYW5kIHRyYW5zbWl0IGludGVyZmFjZS4N Cg0KPiBvdGhlciBvcHRpb24gaXMganVzdCBwcm92aWRlIG51bWJlciBvZiByZXF1ZXN0ZWQgdnBv cnRzIGFuZCB0aGV5IGdldA0KPiBzZXF1ZW50aWFsIGlkcywgYnV0IHNpbmNlIHZwb3J0IGlkcyBh cmUgZ290IGZyb20gdXNlciBpbnN0ZWFkIHRoZXJlIG11c3QgYmUNCj4gc29tZSBzaWduaWZpY2Fu Y2Ugb2YgdGhlbSwgY2FuIHlvdSBwbGVhc2UgYnJpZWZseSBkb2N1bWVudCB3aHkgaWRzIG1hdHRl ci4NCj4gDQo+ID4gKyAgSWYgdGhlIHBhcmFtZXRlciBpcyBub3QgcHJvdmlkZWQsIHRoZSB2cG9y dCAwIHdpbGwgYmUgY3JlYXRlZCBieSBkZWZhdWx0Lg0KPiA+ICsNCj4gPiArLSBgYHJ4X3Npbmds ZWBgIChkZWZhdWx0IGBgMGBgKQ0KPiA+ICsNCj4gPiArICBUaGVyZSBhcmUgdHdvIHF1ZXVlIG1v ZGVzIHN1cHBvcnRlZCBieSBJbnRlbFwgfHJlZ3wgSVBVIEV0aGVybmV0DQo+ID4gKyBFMjEwMCBT ZXJpZXMsICBzaW5nbGUgcXVldWUgbW9kZSBhbmQgc3BsaXQgcXVldWUgbW9kZSBmb3IgUnggcXVl dWUuDQo+IA0KPiBDYW4geW91IHBsZWFzZSBkZXNjcmliZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3 aGF0ICdzcGxpdCBxdWV1ZScgYW5kICdzaW5nbGUNCj4gcXVldWUnIGFyZSBhbmQgd2hhdCBpcyB0 aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZW0/DQo+DQogW2JlaWxlaV0gc3VyZSwgd2lsbCBhZGQg dGhlIGRlc2NyaXB0aW9uLg0KDQo+IDwuLi4+DQo+IA0KPiA+IGluZGV4IDA3OTE0MTcwYTcuLmIw YjIzZDFhNDQgMTAwNjQ0DQo+ID4gLS0tIGEvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8y M18wMy5yc3QNCj4gPiArKysgYi9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzIzXzAzLnJz dA0KPiA+IEBAIC04OCw2ICs4OCwxMiBAQCBOZXcgRmVhdHVyZXMNCj4gPiAgICAqIEFkZGVkIHRp bWVzeW5jIEFQSSBzdXBwb3J0Lg0KPiA+ICAgICogQWRkZWQgcGFja2V0IHBhY2luZyhsYXVuY2gg dGltZSBvZmZsb2FkaW5nKSBzdXBwb3J0Lg0KPiA+DQo+ID4gKyogKipBZGRlZCBJbnRlbCBjcGZs IGRyaXZlci4qKg0KPiA+ICsNCj4gPiArICBBZGRlZCB0aGUgbmV3IGBgY3BmbGBgIG5ldCBkcml2 ZXINCj4gPiArICBmb3IgSW50ZWxcIHxyZWd8IEluZnJhc3RydWN0dXJlIFByb2Nlc3NpbmcgVW5p dCAoSW50ZWxcIHxyZWd8IElQVSkgRTIxMDAuDQo+ID4gKyAgU2VlIHRoZSA6ZG9jOmAuLi9uaWNz L2NwZmxgIE5JQyBndWlkZSBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoaXMgbmV3IGRyaXZlci4NCj4g PiArDQo+IA0KPiAiTmV3IEZlYXR1cmVzIiBzZWN0aW9uIGlzIGdyb3VwZWQsIGFuIHRoYXQgZ3Jv dXBpbmcgaXMgZG9jdW1lbnRlZCBpbiB0aGUNCj4gc2VjdGlvbiBjb21tZW50Lg0KPiANCj4gQ2Fu IHlvdSBwbGVhc2UgbW92ZSB0aGUgdXBkYXRlIHRvIHRoZSBwcm9wZXIgbG9jYXRpb24gaW4gdGhl IHNlY3Rpb24uDQo+IA0KW0xpdSwgTWluZ3hpYV0gb2ssIHRoYW5rcyB3aWxsIHVwZGF0ZSBpdC4N Cj4gPC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArY3BmbF9kZXZfbGlua191cGRhdGUo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gKwkJICAgICBfX3J0ZV91bnVzZWQgaW50IHdh aXRfdG9fY29tcGxldGUpIHsNCj4gPiArCXN0cnVjdCBpZHBmX3Zwb3J0ICp2cG9ydCA9IGRldi0+ ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3QgcnRlX2V0aF9saW5rIG5ld19saW5rOw0K PiA+ICsNCj4gPiArCW1lbXNldCgmbmV3X2xpbmssIDAsIHNpemVvZihuZXdfbGluaykpOw0KPiA+ ICsNCj4gPiArCXN3aXRjaCAodnBvcnQtPmxpbmtfc3BlZWQpIHsNCj4gPiArCWNhc2UgUlRFX0VU SF9TUEVFRF9OVU1fMTBNOg0KPiA+ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQ RUVEX05VTV8xME07DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJURV9FVEhfU1BFRURfTlVN XzEwME06DQo+ID4gKwkJbmV3X2xpbmsubGlua19zcGVlZCA9IFJURV9FVEhfU1BFRURfTlVNXzEw ME07DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJURV9FVEhfU1BFRURfTlVNXzFHOg0KPiA+ ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8xRzsNCj4gPiArCQli cmVhazsNCj4gPiArCWNhc2UgUlRFX0VUSF9TUEVFRF9OVU1fMTBHOg0KPiA+ICsJCW5ld19saW5r Lmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8xMEc7DQo+ID4gKwkJYnJlYWs7DQo+ID4g KwljYXNlIFJURV9FVEhfU1BFRURfTlVNXzIwRzoNCj4gPiArCQluZXdfbGluay5saW5rX3NwZWVk ID0gUlRFX0VUSF9TUEVFRF9OVU1fMjBHOw0KPiA+ICsJCWJyZWFrOw0KPiA+ICsJY2FzZSBSVEVf RVRIX1NQRUVEX05VTV8yNUc6DQo+ID4gKwkJbmV3X2xpbmsubGlua19zcGVlZCA9IFJURV9FVEhf U1BFRURfTlVNXzI1RzsNCj4gPiArCQlicmVhazsNCj4gPiArCWNhc2UgUlRFX0VUSF9TUEVFRF9O VU1fNDBHOg0KPiA+ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV80 MEc7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIFJURV9FVEhfU1BFRURfTlVNXzUwRzoNCj4g PiArCQluZXdfbGluay5saW5rX3NwZWVkID0gUlRFX0VUSF9TUEVFRF9OVU1fNTBHOw0KPiA+ICsJ CWJyZWFrOw0KPiA+ICsJY2FzZSBSVEVfRVRIX1NQRUVEX05VTV8xMDBHOg0KPiA+ICsJCW5ld19s aW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8xMDBHOw0KPiA+ICsJCWJyZWFrOw0K PiA+ICsJY2FzZSBSVEVfRVRIX1NQRUVEX05VTV8yMDBHOg0KPiA+ICsJCW5ld19saW5rLmxpbmtf c3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV8yMDBHOw0KPiA+ICsJCWJyZWFrOw0KPiANCj4gV2hh dCBhYm91dDoNCj4gYGBgDQo+IHN3aXRjaCAodnBvcnQtPmxpbmtfc3BlZWQpIHsNCj4gY2FzZSBS VEVfRVRIX1NQRUVEX05VTV8xME06DQo+IGNhc2UgUlRFX0VUSF9TUEVFRF9OVU1fMTAwTToNCj4g Li4uDQo+IGNhc2UgUlRFX0VUSF9TUEVFRF9OVU1fMjAwRzoNCj4gCW5ld19saW5rLmxpbmtfc3Bl ZWQgPSB2cG9ydC0+bGlua19zcGVlZDsNCj4gCWJyZWFrOw0KPiBkZWZhdWx0Og0KPiAJbmV3X2xp bmsubGlua19zcGVlZCA9IFJURV9FVEhfU1BFRURfTlVNX1VOS05PV047IGBgYA0KPiANCj4gT1IN Cj4gDQo+IGBgYA0KPiBmb3IgKGkgPSAwOyBpIDwgUlRFX0RJTShzdXBwb3J0ZWRfc3BlZWRzKTsg aSsrKSB7DQo+IAlpZiAodnBvcnQtPmxpbmtfc3BlZWQgPT0gc3VwcG9ydGVkX3NwZWVkc1tpXSkg ew0KPiAJCW5ld19saW5rLmxpbmtfc3BlZWQgPSB2cG9ydC0+bGlua19zcGVlZDsNCj4gCQlicmVh azsNCj4gCX0NCj4gfQ0KPiANCj4gaWYgKGkgPT0gUlRFX0RJTShzdXBwb3J0ZWRfc3BlZWRzKSkN Cj4gCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV9VTktOT1dOOyBgYGAN Cj4gDQo+ID4gKwlkZWZhdWx0Og0KPiA+ICsJCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRI X1NQRUVEX05VTV9OT05FOw0KPiANCj4gSSB0aGluayB0aGlzIHNob3VsZCBiZSA6DQo+IA0KPiBp ZiAobGlua191cCkNCj4gCW5ld19saW5rLmxpbmtfc3BlZWQgPSBSVEVfRVRIX1NQRUVEX05VTV9V TktOT1dOOyBlbHNlDQo+IAluZXdfbGluay5saW5rX3NwZWVkID0gUlRFX0VUSF9TUEVFRF9OVU1f Tk9ORTsNCj4NCltMaXUsIE1pbmd4aWFdIFRoYW5rcywgZ29vZCBpZGVhLCB3aWxsIHVwZGF0ZS4g DQoNCj4gPC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiAraW5zZXJ0X3ZhbHVlKHN0cnVj dCBjcGZsX2RldmFyZ3MgKmRldmFyZ3MsIHVpbnQxNl90IGlkKSB7DQo+ID4gKwl1aW50MTZfdCBp Ow0KPiA+ICsNCj4gPiArCS8qIGlnbm9yZSBkdXBsaWNhdGUgKi8NCj4gPiArCWZvciAoaSA9IDA7 IGkgPCBkZXZhcmdzLT5yZXFfdnBvcnRfbmI7IGkrKykgew0KPiA+ICsJCWlmIChkZXZhcmdzLT5y ZXFfdnBvcnRzW2ldID09IGlkKQ0KPiA+ICsJCQlyZXR1cm4gMDsNCj4gPiArCX0NCj4gPiArDQo+ ID4gKwlpZiAoZGV2YXJncy0+cmVxX3Zwb3J0X25iID49IFJURV9ESU0oZGV2YXJncy0+cmVxX3Zw b3J0cykpIHsNCj4gPiArCQlQTURfSU5JVF9MT0coRVJSLCAiVG90YWwgdnBvcnQgbnVtYmVyIGNh bid0IGJlID4gJWQiLA0KPiA+ICsJCQkgICAgIENQRkxfTUFYX1ZQT1JUX05VTSk7DQo+IA0KPiBD aGVjayBpcyB1c2luZyAnUlRFX0RJTShkZXZhcmdzLT5yZXFfdnBvcnRzKScgYW5kIGxvZyBpcyB1 c2luZw0KPiAnQ1BGTF9NQVhfVlBPUlRfTlVNJywgdGhleSBhcmUgc2FtZSB2YWx1ZSBidXQgYmV0 dGVyIHRvIHN0aWNrIHRvIG9uZSBvZg0KPiB0aGVtLg0KPiANCltMaXUsIE1pbmd4aWFdIFRoYW5r cywgZ29vZCBpZGVhLCB3aWxsIHVwZGF0ZS4NCj4gPC4uLj4NCj4gDQo+ID4gK3N0YXRpYyBpbnQN Cj4gPiArcGFyc2VfdnBvcnQoY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWx1ZSwgdm9p ZCAqYXJncykgew0KPiA+ICsJc3RydWN0IGNwZmxfZGV2YXJncyAqZGV2YXJncyA9IGFyZ3M7DQo+ ID4gKwljb25zdCBjaGFyICpwb3MgPSB2YWx1ZTsNCj4gPiArDQo+ID4gKwlkZXZhcmdzLT5yZXFf dnBvcnRfbmIgPSAwOw0KPiA+ICsNCj4gDQo+IGlmICJ2cG9ydCIgY2FuIGJlIHByb3ZpZGVkIG11 bHRpcGxlIHRpbWVzLCBhYm92ZSBhc3NpZ25tZW50IGlzIHdyb25nLCBsaWtlOg0KPiAidnBvcnQ9 MSx2cG9ydD0zLTUiDQo+IA0KW2JlaWxlaV0gV2Ugd29u4oCZdCBzdXBwb3J0IHRoaXMgY2FzZS4g V2lsbCBhZGQgY2hlY2sgaW4gaWRwZl9wYXJzZV9kZXZhcmdzLg0KDQo+IDwuLi4+DQo+IA0KPiA+ ICtzdGF0aWMgaW50DQo+ID4gK2NwZmxfcGFyc2VfZGV2YXJncyhzdHJ1Y3QgcnRlX3BjaV9kZXZp Y2UgKnBjaV9kZXYsIHN0cnVjdA0KPiBjcGZsX2FkYXB0ZXJfZXh0ICphZGFwdGVyLA0KPiA+ICsJ CSAgIHN0cnVjdCBjcGZsX2RldmFyZ3MgKmNwZmxfYXJncykNCj4gPiArew0KPiA+ICsJc3RydWN0 IHJ0ZV9kZXZhcmdzICpkZXZhcmdzID0gcGNpX2Rldi0+ZGV2aWNlLmRldmFyZ3M7DQo+ID4gKwlz dHJ1Y3QgcnRlX2t2YXJncyAqa3ZsaXN0Ow0KPiA+ICsJaW50IGksIHJldDsNCj4gPiArDQo+ID4g KwljcGZsX2FyZ3MtPnJlcV92cG9ydF9uYiA9IDA7DQo+ID4gKw0KPiA+ICsJaWYgKGRldmFyZ3Mg PT0gTlVMTCkNCj4gPiArCQlyZXR1cm4gMDsNCj4gPiArDQo+ID4gKwlrdmxpc3QgPSBydGVfa3Zh cmdzX3BhcnNlKGRldmFyZ3MtPmFyZ3MsIGNwZmxfdmFsaWRfYXJncyk7DQo+ID4gKwlpZiAoa3Zs aXN0ID09IE5VTEwpIHsNCj4gPiArCQlQTURfSU5JVF9MT0coRVJSLCAiaW52YWxpZCBrdmFyZ3Mg a2V5Iik7DQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyog Y2hlY2sgcGFyc2VkIGRldmFyZ3MgKi8NCj4gPiArCWlmIChhZGFwdGVyLT5jdXJfdnBvcnRfbmIg KyBjcGZsX2FyZ3MtPnJlcV92cG9ydF9uYiA+DQo+ID4gKwkgICAgQ1BGTF9NQVhfVlBPUlRfTlVN KSB7DQo+IA0KPiBBdCB0aGlzIHN0YWdlICdjcGZsX2FyZ3MtPnJlcV92cG9ydF9uYicgaXMgMCBz aW5jZSBDUEZMX1ZQT1JUIGlzIG5vdCBwYXJzZWQNCj4geWV0LCBpcyB0aGUgaW50ZW50aW9uIHRv IGRvIHRoaXMgY2hlY2sgYWZ0ZXIgJ3J0ZV9rdmFyZ3NfcHJvY2Vzc3MoKSc/DQo+IA0KW2JlaWxl aV0gWWVzLCB0aGFua3MgZm9yIHRoZSBjYXRjaCwgd2lsbCBmaXggaXQgaW4gbmV4dCB2ZXJzaW9u Lg0KDQo+ID4gKwkJUE1EX0lOSVRfTE9HKEVSUiwgIlRvdGFsIHZwb3J0IG51bWJlciBjYW4ndCBi ZSA+ICVkIiwNCj4gPiArCQkJICAgICBDUEZMX01BWF9WUE9SVF9OVU0pOw0KPiA+ICsJCXJldCA9 IC1FSU5WQUw7DQo+ID4gKwkJZ290byBiYWlsOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWZvciAo aSA9IDA7IGkgPCBjcGZsX2FyZ3MtPnJlcV92cG9ydF9uYjsgaSsrKSB7PiArCQlpZg0KPiAoYWRh cHRlci0+Y3VyX3Zwb3J0cyAmIFJURV9CSVQzMihjcGZsX2FyZ3MtPnJlcV92cG9ydHNbaV0pKSB7 DQo+ID4gKwkJCVBNRF9JTklUX0xPRyhFUlIsICJWcG9ydCAlZCBoYXMgYmVlbiBjcmVhdGVkIiwN Cj4gPiArCQkJCSAgICAgY3BmbF9hcmdzLT5yZXFfdnBvcnRzW2ldKTsNCj4gDQo+IFRoaXMgaXMg anVzdCBhcmd1bWVudCBwYXJzaW5nLCBub3RoaW5nIGNyZWF0ZWQgeWV0LCBJIHN1Z2dlc3QgdXBk YXRpbmcgbG9nDQo+IGFjY29yZGluZ2x5Lg0KPiANCltiZWlsZWldIE9LLCB3aWxsIHVwZGF0ZSB0 aGUgbG9nIGluIHRoZSBuZXh0IHZlcnNpb24uDQoNCj4gPiArCQkJcmV0ID0gLUVJTlZBTDsNCj4g PiArCQkJZ290byBiYWlsOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4gDQo+IHNhbWUgaGVyZSwgYm90 aCBmb3IgJ2NwZmxfYXJncy0+cmVxX3Zwb3J0X25iJyAmICdjcGZsX2FyZ3MtPnJlcV92cG9ydHNb XScsDQo+IHRoZXkgYXJlIG5vdCB1cGRhdGVkIHlldC4NCj4NCltiZWlsZWldIFllcywgdGhhbmtz IGZvciB0aGUgY2F0Y2gsIHdpbGwgZml4IGl0IGluIG5leHQgdmVyc2lvbi4NCg0KPiA8Li4uPg0K PiANCj4gPiArc3RhdGljIHZvaWQNCj4gPiArY3BmbF9oYW5kbGVfdmlydGNobmxfbXNnKHN0cnVj dCBjcGZsX2FkYXB0ZXJfZXh0ICphZGFwdGVyX2V4KSB7DQo+ID4gKwlzdHJ1Y3QgaWRwZl9hZGFw dGVyICphZGFwdGVyID0gJmFkYXB0ZXJfZXgtPmJhc2U7DQo+IA0KPiBFdmVyeXdoZXJlIGVsc2Us ICdzdHJ1Y3QgY3BmbF9hZGFwdGVyX2V4dCcgdHlwZSB2YXJpYWJsZSBuYW1lIGlzICdhZGFwdGVy JywNCj4gaGVyZSBpdCBpcyAnYWRhcHRlcl9leCcgYW5kICdzdHJ1Y3QgaWRwZl9hZGFwdGVyJyB0 eXBlIGlzICdhZGFwdGVyJy4NCj4gDQo+IEFzIGZhciBhcyBJIHVuZGVyc3RhbmQgJ3N0cnVjdCBj cGZsX2FkYXB0ZXJfZXh0JyBpcyBzb21ldGhpbmcgbGlrZSAiZXh0ZW5kZWQNCj4gYWRhcHRlciIg YW5kIGV4dGVuZGVkIHZlcnNpb24gb2YgJ3N0cnVjdCBpZHBmX2FkYXB0ZXInLCBzbyBpbiB0aGUg Y29udGV4dCBvZg0KPiB0aGlzIGRyaXZlciB3aGF0IGRvIHlvdSB0aGluayB0byByZWZlcjoNCj4g J3N0cnVjdCBjcGZsX2FkYXB0ZXJfZXh0JyBhcyAnYWRhcHRlcicNCj4gJ3N0cnVjdCBpZHBmX2Fk YXB0ZXInICAgICBhcyAnYmFzZScgKG9yICdhZGFwdGVyX2Jhc2UnKSwgY29uc2lzdGVudGx5Lg0K PiANCltMaXUsIE1pbmd4aWFdIG9rLCBnb3QgaXQsIEknbGwgdXBkYXRlIHRoZW0sIGZvciB5b3Vy IGNvbW1lbnRzLg0KDQo+IDwuLi4+DQo+IA0KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGV0aF9k ZXZfb3BzIGNwZmxfZXRoX2Rldl9vcHMgPSB7DQo+ID4gKwkuZGV2X2NvbmZpZ3VyZQkJCT0gY3Bm bF9kZXZfY29uZmlndXJlLA0KPiA+ICsJLmRldl9jbG9zZQkJCT0gY3BmbF9kZXZfY2xvc2UsDQo+ ID4gKwkuZGV2X2luZm9zX2dldAkJCT0gY3BmbF9kZXZfaW5mb19nZXQsDQo+ID4gKwkubGlua191 cGRhdGUJCQk9IGNwZmxfZGV2X2xpbmtfdXBkYXRlLA0KPiA+ICsJLmRldl9zdXBwb3J0ZWRfcHR5 cGVzX2dldAk9IGNwZmxfZGV2X3N1cHBvcnRlZF9wdHlwZXNfZ2V0LA0KPiA+ICt9Ow0KPiANCj4g Q2FuIHlvdSBwbGVhc2UgbW92ZSB0aGUgYmxvY2sganVzdCBhZnRlciAnY3BmbF9kZXZfY2xvc2Uo KScsIHRvIGdyb3VwIGRldl9vcHMNCj4gcmVsYXRlZCBjb2RlIHRvZ2V0aGVyLg0KPiANCltMaXUs IE1pbmd4aWFdIG9rLCB0aGFua3MhDQoNCj4gPC4uLj4NCj4gDQo+ID4gKw0KPiA+ICtzdGF0aWMg aW50DQo+ID4gK2NwZmxfZGV2X3Zwb3J0X2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHZv aWQgKmluaXRfcGFyYW1zKSB7DQo+ID4gKwlzdHJ1Y3QgaWRwZl92cG9ydCAqdnBvcnQgPSBkZXYt PmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJc3RydWN0IGNwZmxfdnBvcnRfcGFyYW0gKnBhcmFt ID0gaW5pdF9wYXJhbXM7DQo+ID4gKwlzdHJ1Y3QgY3BmbF9hZGFwdGVyX2V4dCAqYWRhcHRlciA9 IHBhcmFtLT5hZGFwdGVyOw0KPiA+ICsJLyogZm9yIHNlbmRpbmcgY3JlYXRlIHZwb3J0IHZpcnRj aG5sIG1zZyBwcmVwYXJlICovDQo+ID4gKwlzdHJ1Y3QgdmlydGNobmwyX2NyZWF0ZV92cG9ydCBj cmVhdGVfdnBvcnRfaW5mbzsNCj4gPiArCWludCByZXQgPSAwOw0KPiA+ICsNCj4gPiArCWRldi0+ ZGV2X29wcyA9ICZjcGZsX2V0aF9kZXZfb3BzOw0KPiA+ICsJdnBvcnQtPmFkYXB0ZXIgPSAmYWRh cHRlci0+YmFzZTsNCj4gPiArCXZwb3J0LT5zd19pZHggPSBwYXJhbS0+aWR4Ow0KPiA+ICsJdnBv cnQtPmRldmFyZ19pZCA9IHBhcmFtLT5kZXZhcmdfaWQ7DQo+ID4gKwl2cG9ydC0+ZGV2ID0gZGV2 Ow0KPiA+ICsNCj4gPiArCW1lbXNldCgmY3JlYXRlX3Zwb3J0X2luZm8sIDAsIHNpemVvZihjcmVh dGVfdnBvcnRfaW5mbykpOw0KPiA+ICsJcmV0ID0gaWRwZl92cG9ydF9pbmZvX2luaXQodnBvcnQs ICZjcmVhdGVfdnBvcnRfaW5mbyk7DQo+ID4gKwlpZiAocmV0ICE9IDApIHsNCj4gPiArCQlQTURf SU5JVF9MT0coRVJSLCAiRmFpbGVkIHRvIGluaXQgdnBvcnQgcmVxX2luZm8uIik7DQo+ID4gKwkJ Z290byBlcnI7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0ID0gaWRwZl92cG9ydF9pbml0KHZw b3J0LCAmY3JlYXRlX3Zwb3J0X2luZm8sIGRldi0+ZGF0YSk7DQo+ID4gKwlpZiAocmV0ICE9IDAp IHsNCj4gPiArCQlQTURfSU5JVF9MT0coRVJSLCAiRmFpbGVkIHRvIGluaXQgdnBvcnRzLiIpOw0K PiA+ICsJCWdvdG8gZXJyOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWFkYXB0ZXItPnZwb3J0c1tw YXJhbS0+aWR4XSA9IHZwb3J0Ow0KPiA+ICsJYWRhcHRlci0+Y3VyX3Zwb3J0cyB8PSBSVEVfQklU MzIocGFyYW0tPmRldmFyZ19pZCk7DQo+ID4gKwlhZGFwdGVyLT5jdXJfdnBvcnRfbmIrKzsNCj4g PiArDQo+ID4gKwlkZXYtPmRhdGEtPm1hY19hZGRycyA9IHJ0ZV96bWFsbG9jKE5VTEwsIFJURV9F VEhFUl9BRERSX0xFTiwNCj4gMCk7DQo+ID4gKwlpZiAoZGV2LT5kYXRhLT5tYWNfYWRkcnMgPT0g TlVMTCkgew0KPiA+ICsJCVBNRF9JTklUX0xPRyhFUlIsICJDYW5ub3QgYWxsb2NhdGUgbWFjX2Fk ZHIgbWVtb3J5LiIpOw0KPiA+ICsJCXJldCA9IC1FTk9NRU07DQo+ID4gKwkJZ290byBlcnJfbWFj X2FkZHJzOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJ0ZV9ldGhlcl9hZGRyX2NvcHkoKHN0cnVj dCBydGVfZXRoZXJfYWRkciAqKXZwb3J0LQ0KPiA+ZGVmYXVsdF9tYWNfYWRkciwNCj4gPiArCQkJ ICAgICZkZXYtPmRhdGEtPm1hY19hZGRyc1swXSk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ ID4gKw0KPiA+ICtlcnJfbWFjX2FkZHJzOg0KPiA+ICsJYWRhcHRlci0+dnBvcnRzW3BhcmFtLT5p ZHhdID0gTlVMTDsgIC8qIHJlc2V0ICovDQo+IA0KPiBzaG91bG4ndCB1cGRhdGUgJ2N1cl92cG9y dHMnICYgJ2N1cl92cG9ydF9uYicgdG9vIGluIHRoaXMgZXJyb3IgcGF0aC4NCj4gDQpbYmVpbGVp XSBZZXMsIG5lZWQgdG8gdXBkYXRlIHRoZSB0d28gZmllbGRzLg0KPiA8Li4uPg0KPiANCj4gPiAr DQo+ID4gK2VycjoNCj4gPiArCWlmIChmaXJzdF9wcm9iZSkgew0KPiA+ICsJCXJ0ZV9zcGlubG9j a19sb2NrKCZjcGZsX2FkYXB0ZXJfbG9jayk7DQo+ID4gKwkJVEFJTFFfUkVNT1ZFKCZjcGZsX2Fk YXB0ZXJfbGlzdCwgYWRhcHRlciwgbmV4dCk7DQo+ID4gKwkJcnRlX3NwaW5sb2NrX3VubG9jaygm Y3BmbF9hZGFwdGVyX2xvY2spOw0KPiA+ICsJCWNwZmxfYWRhcHRlcl9leHRfZGVpbml0KGFkYXB0 ZXIpOw0KPiA+ICsJCXJ0ZV9mcmVlKGFkYXB0ZXIpOw0KPiA+ICsJfQ0KPiANCj4gDQo+IFdoeSAn Zmlyc3RfcHJvYmUnIGlzIG5lZWRlZCwgaXQgbG9va3MgbGlrZSBpdCBpcyBmb3IgdGhlIGNhc2Ug d2hlbg0KPiBwcm9iZSgpIGNhbGxlZCBtdWx0aXBsZSB0aW1lIGZvciBzYW1lIHBjaV9kZXYsIGNh biB0aGlzIGhhcHBlbj8NCj4gDQpbTGl1LCBNaW5neGlhXSBJdCdzIHJlbGF0ZWQgdG8gcnVudGlt ZSBjcmVhdGluZyB2cG9ydCBpbiB0aGUgZnV0dXJlLCBidXQgbm93IHRoZSB2ZXJzaW9uIGRvZXNu J3Qgc3VwcG9ydCBydW50aW1lLg0KPiA8Li4uPg0KPiANCj4gPiArUlRFX1BNRF9SRUdJU1RFUl9Q Q0kobmV0X2NwZmwsIHJ0ZV9jcGZsX3BtZCk7DQo+ID4gK1JURV9QTURfUkVHSVNURVJfUENJX1RB QkxFKG5ldF9jcGZsLCBwY2lfaWRfY3BmbF9tYXApOw0KPiA+ICtSVEVfUE1EX1JFR0lTVEVSX0tN T0RfREVQKG5ldF9jcGZsLCAiKiBpZ2JfdWlvIHwgdmZpby1wY2kiKTsNCj4gPiArUlRFX1BNRF9S RUdJU1RFUl9QQVJBTV9TVFJJTkcobmV0X2NwZmwsDQo+ID4gKwkJCSAgICAgIENQRkxfVFhfU0lO R0xFX1EgIj08MHwxPiAiDQo+ID4gKwkJCSAgICAgIENQRkxfUlhfU0lOR0xFX1EgIj08MHwxPiAi DQo+ID4gKwkJCSAgICAgIENQRkxfVlBPUlQgIj1bdnBvcnRfc2V0MCxbdnBvcnRfc2V0MV0sLi4u XSIpOw0KPiANCj4gV2hhdCBhYm91dDoNCj4gIlxbdnBvcnQwX2JlZ2luWy12cG9ydDBfZW5kXVss dnBvcnQxX2JlZ2luWy12cG9ydDFfZW5kXVssLi5dXF0iDQo+IA0KW0xpdSwgTWluZ3hpYV0gR29v ZCBpZGVhLCB0aGFua3MhDQoNCj4gPC4uLj4NCj4gDQo+ID4gKw0KPiA+ICsjZGVmaW5lIENQRkxf TUFYX1ZQT1JUX05VTQk4DQo+ID4gKw0KPiBJdCBsb29rcyBsaWtlIHRoZXJlIGlzIGEgZHluYW1p YyBtYXggdnBvcnQgbnVtYmVyIChhZGFwdGVyLQ0KPiA+YmFzZS5jYXBzLm1heF92cG9ydHMpLCBh bmQgdGhlcmUgaXMgYWJvdmUgaGFyZGNvZGVkIGRlZmluZSwgZm9yIHJlcXVlc3RlZA0KPiAoZGV2 YXJncykgdnBvcnRzLg0KPiANCj4gVGhlIGR5bmFtaWMgbWF4IGlzIHJlY2VpdmVkIHZpYSAnY3Bm bF9hZGFwdGVyX2V4dF9pbml0KCknIGJlZm9yZSBwYXJzaW5nDQo+IGRldl9hcmcsIHNvIGNhbiBp dCBiZSBwb3NzaWJsZSB0byByZW1vdmUgdGhpcyBoYXJkY29kZWQgbWF4IGNvbXBsZXRlbHk/DQo+ IA0KPiANCltMaXUsIE1pbmd4aWFdIHllcywgd2UnbGwgdHJ5Lg0KDQo+ID4gKyNkZWZpbmUgQ1BG TF9JTlZBTElEX1ZQT1JUX0lEWAkweGZmZmYNCj4gPiArDQo+ID4gKyNkZWZpbmUgQ1BGTF9NSU5f QlVGX1NJWkUJMTAyNA0KPiA+ICsjZGVmaW5lIENQRkxfTUFYX0ZSQU1FX1NJWkUJOTcyOA0KPiA+ ICsjZGVmaW5lIENQRkxfREVGQVVMVF9NVFUJUlRFX0VUSEVSX01UVQ0KPiA+ICsNCj4gPiArI2Rl ZmluZSBDUEZMX05VTV9NQUNBRERSX01BWAk2NA0KPiANCj4gVGhlIG1hY3JvIGlzIG5vdCB1c2Vk LCBjYW4geW91IHBsZWFzZSBhZGQgdGhlbSB3aGVuIHRoZXkgYXJlIHVzZWQuDQo+IA0KW0xpdSwg TWluZ3hpYV0gb2ssIHRoYW5rcyEgV2lsbCBkZWxldGUgaXQuDQoNCj4gPC4uLj4NCj4gDQo+ID4g QEAgLTAsMCArMSwzMiBAQA0KPiA+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMt Q2xhdXNlDQo+ID4gKyAqIENvcHlyaWdodChjKSAyMDIzIEludGVsIENvcnBvcmF0aW9uICAqLw0K PiA+ICsNCj4gPiArI2lmbmRlZiBfQ1BGTF9MT0dTX0hfDQo+ID4gKyNkZWZpbmUgX0NQRkxfTE9H U19IXw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPHJ0ZV9sb2cuaD4NCj4gPiArDQo+ID4gK2V4dGVy biBpbnQgY3BmbF9sb2d0eXBlX2luaXQ7DQo+ID4gK2V4dGVybiBpbnQgY3BmbF9sb2d0eXBlX2Ry aXZlcjsNCj4gPiArDQo+ID4gKyNkZWZpbmUgUE1EX0lOSVRfTE9HKGxldmVsLCAuLi4pIFwNCj4g PiArCXJ0ZV9sb2coUlRFX0xPR18gIyMgbGV2ZWwsIFwNCj4gPiArCQljcGZsX2xvZ3R5cGVfaW5p dCwgXA0KPiA+ICsJCVJURV9GTVQoIiVzKCk6ICIgXA0KPiA+ICsJCQlSVEVfRk1UX0hFQUQoX19W QV9BUkdTX18sKSAiXG4iLCBcDQo+ID4gKwkJCV9fZnVuY19fLCBcDQo+ID4gKwkJCVJURV9GTVRf VEFJTChfX1ZBX0FSR1NfXywpKSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgUE1EX0RSVl9MT0dfUkFX KGxldmVsLCAuLi4pIFwNCj4gPiArCXJ0ZV9sb2coUlRFX0xPR18gIyMgbGV2ZWwsIFwNCj4gPiAr CQljcGZsX2xvZ3R5cGVfZHJpdmVyLCBcDQo+ID4gKwkJUlRFX0ZNVCgiJXMoKTogIiBcDQo+ID4g KwkJCVJURV9GTVRfSEVBRChfX1ZBX0FSR1NfXywpICJcbiIsIFwNCj4gPiArCQkJX19mdW5jX18s IFwNCj4gPiArCQkJUlRFX0ZNVF9UQUlMKF9fVkFfQVJHU19fLCkpKQ0KPiA+ICsNCj4gPiArI2Rl ZmluZSBQTURfRFJWX0xPRyhsZXZlbCwgZm10LCBhcmdzLi4uKSBcDQo+ID4gKwlQTURfRFJWX0xP R19SQVcobGV2ZWwsIGZtdCAiXG4iLCAjIyBhcmdzKQ0KPiA+ICsNCj4gDQo+IElzICdQTURfRFJW X0xPR19SQVcnIHJlcXVpcmVkIGF0IGFsbCwgd2h5IG5vdCBkZWZpbmUgJ1BNRF9EUlZfTE9HJw0K PiBkaXJlY3RseSBhcyBpdCBpcyBkb25lIHdpdGggJ1BNRF9JTklUX0xPRyc/DQo+DQpbTGl1LCBN aW5neGlhXSBHb29kIGlkZWEsIEknbGwgc2ltcGxpZnkgdGhlIGNvZGUuDQoNCj4gQnR3LCBib3Ro ICdQTURfRFJWX0xPR19SQVcnIHNlZW1zIGFkZGluZyBkb3VibGUgJ1xuJywgb25lIGFzIHBhcnQg b2YNCj4gJ2ZtdCcsIG90aGVyIGluIHRoZSBydGVfbG9nKCkuDQoNCg0K