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 D174B41D5B; Fri, 24 Feb 2023 07:49:26 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A82C340693; Fri, 24 Feb 2023 07:49:26 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 8788640689 for ; Fri, 24 Feb 2023 07:49:24 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677221364; x=1708757364; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ADUPksxoP14K/M/VnZR4GvitWzeh3PqO6Hcenl0Jyls=; b=AjoQ1W06//TBoNu47uCYoevx6wi6K4VthA8RZUZZ7G2x9cKCtaR5Ld+b o29ZEFoDB6URHZgnyBlR5jLt60GT6foguWg0/z0jUOPDFaXeiLbQHOgRa ++d97kXkOLu8D3Cwl6yXBIg7jlcXvMyhYmubNTj/WYEAreDh78AZWCvIp kdHD3+D1zXxnZ6i0/AqcWQI98LkHExRnK1iJy9bckbSGPK8nJIkxWzAk9 QlBwZlhyG2q7i2nMdzmaBJ8OXp+CznXJaT2zM3AaKfspilmV/rM8Wh2hs aGAV8i9HH+SI8xXT+0w18VT29GyIQvaZ5hWbQjDOYcE8H0ALZj+jT6PAE g==; X-IronPort-AV: E=McAfee;i="6500,9779,10630"; a="331143876" X-IronPort-AV: E=Sophos;i="5.97,322,1669104000"; d="scan'208";a="331143876" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Feb 2023 22:49:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10630"; a="674825745" X-IronPort-AV: E=Sophos;i="5.97,322,1669104000"; d="scan'208";a="674825745" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP; 23 Feb 2023 22:49:23 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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; Thu, 23 Feb 2023 22:49:23 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 23 Feb 2023 22:49:22 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Thu, 23 Feb 2023 22:49:22 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.108) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Thu, 23 Feb 2023 22:49:22 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MZ4BxIZSgIpvCVzrCcy7TppO5hCHoToCm0Qd06jPLRkUudE4eT2QTgWpXgmNqOnRQu071shV72b2n4h0gXpIGIhPVpLzaQdtGzMbd88BiRTUccwBrZetaK+tGYA2fLoCBZY+yfYj5KWROMqnMSfzkrwfvGHt1xB4vv84l3UDAogbE+RF+bLJlUBaU88gK2iUMXY1rPmIFhgnd2W8d8D9SytJ0Nw1rySvRqe9hqtnYIuRyF9ZkxhabNcjowIJ9pkjoT2ejpAg8AkMC2Gj0fZTxPaH7ZKmfWupjxIQUsdgu22yyOX0orupJ6rQuYBlNNPEKLWoBukHlWOh9GSnpshMkg== 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=ADUPksxoP14K/M/VnZR4GvitWzeh3PqO6Hcenl0Jyls=; b=HEYenjRrddE5jr/IbT8TmTrO7q3wU8CeiwHGg95ImcAMXroaatNOGUoFLrJtgHOLGBd94hHw8QKZ5Yu6DpvaihowFdxJ6IGHv7cXy6UPBq0tl7xSSfZma5reoa8hkLpIuxfbOxLPkCDD/kgXmAiKzZTcJ0NQaetIbre2b3CE9eSYl9sQ3cL4EHxjuOi0gGsi3o8aUuE3BviWsRNHjBeZQf/cgg9J7j0Lc/3Hzu0u27ykbbLGDtDw7RgSSNQmv4yHcFMS7CnR5iMgvBi3BD8qVNjpQBT7850mm1296cT2j523UopjPAvNGSSFrtZwN1aoQs291laudSjcfS35rHtjGw== 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 PH8PR11MB6780.namprd11.prod.outlook.com (2603:10b6:510:1cb::11) by PH0PR11MB4773.namprd11.prod.outlook.com (2603:10b6:510:33::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 06:49:20 +0000 Received: from PH8PR11MB6780.namprd11.prod.outlook.com ([fe80::5cb1:c8ce:6f60:4e09]) by PH8PR11MB6780.namprd11.prod.outlook.com ([fe80::5cb1:c8ce:6f60:4e09%9]) with mapi id 15.20.6134.021; Fri, 24 Feb 2023 06:49:20 +0000 From: "Yan, Zhirun" To: Jerin Jacob CC: "dev@dpdk.org" , "jerinj@marvell.com" , "kirankumark@marvell.com" , "ndabilpuram@marvell.com" , "Liang, Cunming" , "Wang, Haiyue" Subject: RE: [PATCH v1 13/13] examples/l3fwd-graph: introduce generic worker model Thread-Topic: [PATCH v1 13/13] examples/l3fwd-graph: introduce generic worker model Thread-Index: AQHY+kLn5VpRQoz1IEa/gFR/uC10oK7YeFoAgAXLOfA= Date: Fri, 24 Feb 2023 06:49:20 +0000 Message-ID: References: <20221117050926.136974-1-zhirun.yan@intel.com> <20221117050926.136974-14-zhirun.yan@intel.com> In-Reply-To: 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: PH8PR11MB6780:EE_|PH0PR11MB4773:EE_ x-ms-office365-filtering-correlation-id: 7157c3f6-836f-46c8-d9a8-08db163341e8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8fC+MobGy8ErqT2cyYUhe9aHYLA5lTXt3f4m78xrK+2zvdCyE4iukonOWQI6acY6SMkJdl2nLaJ7DouMBMjDSSPvxt45I4a1bPh83/S7EZRVxnx+K04q/ARhPy9Vf9eC5m4oX4qbVD9KwrldmZQSyY2qCYnip5Lha4TC9gnkrS5mKiFszfyDXVWpZLCoyN1/GIjJiw8EUpSEBV2paqs5Wm7wvyIe87D8s79XdWkmDuYLGt5dfavJK/zgIGMv5iDuO4t+Ok2jQGZ8tgu9mlz5BBRyUXKD7T69lzfjMGLkh6k0OSnTkVdLn0sqXIhLYr77RR17ST/xdQXniGWpGBBUwhsSqy8Qfg0rdN6Si1vt9KTr86xQxRr0wWOGH/FIrsQNhR2hiKz4rM4CKPIt8Y5VEklBlYl/AvLDgl+V9LDTBYDZknEbL7K6nb9IGmbDNWamUCEh77U5epjfbcs3sbPN2P/bMp1l1KhdfIhiZjepJ/vxcceXpNzmLEnuITPsEiep9Dbwf9iezqafFqTgU/KRopaKR1SOs7glPW24hlz7DtnWL5hDfL/2HNkxqGyotUXmYSqV4rEHZTGCMcyqam68bNK9n05kdeUJViFroj8MjOIgncgt0EWqhUGk73ucOKMCBQV+TGvZgZCMKrjXJakXI5ifI/e13Npcb4lZuHp7xRllpvQDCGKPj1oM6dG5TUM+QW/a+3mZ+YPtGvCdF8ksUw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH8PR11MB6780.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(366004)(376002)(136003)(346002)(39860400002)(396003)(451199018)(33656002)(66556008)(107886003)(71200400001)(7696005)(82960400001)(966005)(83380400001)(53546011)(26005)(6506007)(9686003)(186003)(55016003)(8936002)(52536014)(41300700001)(2906002)(38070700005)(86362001)(5660300002)(54906003)(316002)(30864003)(38100700002)(478600001)(122000001)(66446008)(64756008)(66476007)(8676002)(6916009)(4326008)(76116006)(66946007)(41533002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OG4yaEsydEJxdE11UGJJU0JoNUczV3J0WkZCOUs3Mlp1bEVyN21tc0Q1ZkpK?= =?utf-8?B?QXdrSEMrU01yL0YySUt0bFNFczFYdk5EaGI3RXNYaElCQ2RKbVZiaXkrNVBm?= =?utf-8?B?bDM5aXNtazByUkVKdlZGa2ozTkZMSzlSUlJrUFBQODFGL3NHaFJIMkp6Wlg1?= =?utf-8?B?Wi9McnQ4cWRNNlFuZVM1UXFTV3FHNit5UjFhaElVY1E5alBYT1l2Tyt6SlJn?= =?utf-8?B?MjY5dVhxRUlEZ09jdW5UcjVhWXRQSjRLSGdxaVgrQUFNODRwT3NrcWQyUTg5?= =?utf-8?B?YzRzNUFETCs0YWxvL1o1UzRBSFdpaWxxZGtMMXI3Tk9uMG01VG10SDZSbDdI?= =?utf-8?B?dmhoZm9XRjNtM1A5d2NkMWxsb3oxUncwUVBaTCtNMm9abnhTWXJQTWdJSW5i?= =?utf-8?B?cm5vRUErOENVM3NBOCt6bUlhbUw5c1BwYXNRa2tPaTBsdzJQRjNpbDVYekd5?= =?utf-8?B?c3M2Qk5BdEFiTGdPWVFWZTZQZlRFTG9vdjRjdnRVQWprazZjektZcWduMzkr?= =?utf-8?B?TEdBczE0T2ZhV3U3SThVTURNSUt6bTRkc0hOMHp2dlBnNjlCcjY0VXVaOFhm?= =?utf-8?B?NGVpT0pEdXRrbGE2SXNIL1A0NGpqVzdNREc0WmdnMS9VTFdSUFpWeWV5OEdZ?= =?utf-8?B?Y0ZQdTJnd2tCaGJlaTlrS0Y5ZFZrWEpobDFVMkFJK3QvMHh5TXVKUERLRFhy?= =?utf-8?B?VlB0Tlc2a1U3MFkwVkh0OVBPNUp3TEZIQzhpUjc1YW9rdXR2ckUwWnY5cWxK?= =?utf-8?B?SkwzTDJDUFVNTVROSXllM3FtVktUbEk3OENObzNvcjB5SkFmVVlQejc2aWxY?= =?utf-8?B?M05BbWRpTjdCS0xrU1U1YU5iSmpndEI3akwxWWEyb0duVTdBTEhDZU02c09z?= =?utf-8?B?Q0h3SmlhcjR2VWFMWlM5dk9CVytycTZEQVpuRWJycUdkT1E0eGJJMlgrQU0x?= =?utf-8?B?c3hMem1MUnY3eTh3am54ZVFjUk9rMmNwSTdvK3A4RHBaOEhSSWxTZWhFZTZ0?= =?utf-8?B?cG1JK04rZW9Rb04vTTZMcW5wYXU0d2VBNkg4MWxYQzZtMU1OV2hBcmM0RTdk?= =?utf-8?B?RkRCTStLMjlwcGtRWjVtRmIyaDlWdDh2NjBWVitXMzFkalF3SDFralBmQTVH?= =?utf-8?B?UUVsZUlYV0JKaEFMWURXUy8zY2ZOMGl2QWN4RTV5VysydkhEcDF1dTJkblY0?= =?utf-8?B?UG1xemFWR0dMS2xqR2REWUlkVlFvajFRNFUyemtmRWVBK1Y0Mm8vdVRWU2lu?= =?utf-8?B?MWJZYmpoM2I2ODdtOUx6Mlo5ZGVyOEhMdzdpdHFrWU9ScEZLUytqMGVKMUJk?= =?utf-8?B?NndDRXFQeG13V0Jrb1B0ZXNZSWZWamIrTFVpVzNrWHVNQStheDYvcm8vUFBv?= =?utf-8?B?L2p5UkZaOTgwckRwRzdwaitELzRPdXZDQTNZMlRLSTQ1Um5QOEJ0dDlsUU56?= =?utf-8?B?Mzl1Z1VJKzFTYjFVa2dxSUVCNmE5WWVVeFpCZmI4S1hWVVR1R2dVMG1rcnNN?= =?utf-8?B?MXVScDhzRG8yYk5ySmxmcTRmVjdWd1BYdjZEMlJUVXVENGpDWEVVVEVDUlBq?= =?utf-8?B?ODN2ZHBtejkwWEREUWFvd3JWRUlGb1NSM0JvWWkwR2srbG5xZlEwYkdWZlhC?= =?utf-8?B?WEFLRk96S0xLUUJ3MXlXS1EzcDEyc3hiWEJXaFQ5OGdEVEVLbitaL3FCdUE1?= =?utf-8?B?OXhnenZoRldsVVZ4MUpGSFRPNDJ2K1VuRTdDcWZHSDVISFZzekg3eDM4ZG1l?= =?utf-8?B?ZWt1VHVrRlFqdWw0Tjc4QmplaGd3bk1OT044a1Q5Z2liK2lwczlSR0JRYkJq?= =?utf-8?B?QXNLT0RFN0dCazBMMzlBQVpoWXZZMlAxbnliV2pGdE93QmM0aTJtVklTaitr?= =?utf-8?B?ckNqc2ZVMHRmSlptL0hXVjl5bWZFK0NrWDJCSGlKajVKaVJOdnpPdlExODcw?= =?utf-8?B?bVN6QUcvZWVOU1V0dWZTdW0xVnc2b0Vqd3M5dWJmODVpRHpxbUxZUFFVN2xG?= =?utf-8?B?QWtNL0R4UHRUaGU1YzBCY2ErQWkvY3VZeTJqZWdoWnYzSC9sWkRaRHFYVkVu?= =?utf-8?B?U2ExTWNadE5Id2UvalJjN2R3RGc5L04zM3M3bmNnNWtFOEUzWld2dVl2MEMw?= =?utf-8?Q?Vxy+VrDmvMxy8BOTrkDT3Yqha?= 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: PH8PR11MB6780.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7157c3f6-836f-46c8-d9a8-08db163341e8 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2023 06:49:20.7510 (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: ZIthodt4SVx8QMf4kYBG/cUcvklgWT1uZnBomIskEMjAorTn7P8zhuwXBntAuuvsr5HOJ8zWwdLZNrzl8oDfRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4773 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVyaW4gSmFjb2IgPGpl cmluamFjb2JrQGdtYWlsLmNvbT4NCj4gU2VudDogTW9uZGF5LCBGZWJydWFyeSAyMCwgMjAyMyAx MDoyMCBQTQ0KPiBUbzogWWFuLCBaaGlydW4gPHpoaXJ1bi55YW5AaW50ZWwuY29tPg0KPiBDYzog ZGV2QGRwZGsub3JnOyBqZXJpbmpAbWFydmVsbC5jb207IGtpcmFua3VtYXJrQG1hcnZlbGwuY29t Ow0KPiBuZGFiaWxwdXJhbUBtYXJ2ZWxsLmNvbTsgTGlhbmcsIEN1bm1pbmcgPGN1bm1pbmcubGlh bmdAaW50ZWwuY29tPjsgV2FuZywNCj4gSGFpeXVlIDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+DQo+ IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEgMTMvMTNdIGV4YW1wbGVzL2wzZndkLWdyYXBoOiBpbnRy b2R1Y2UgZ2VuZXJpYyB3b3JrZXINCj4gbW9kZWwNCj4gDQo+IE9uIFRodSwgTm92IDE3LCAyMDIy IGF0IDEwOjQxIEFNIFpoaXJ1biBZYW4gPHpoaXJ1bi55YW5AaW50ZWwuY29tPiB3cm90ZToNCj4g Pg0KPiA+IEFkZCBuZXcgcGFyYW1ldGVyICJtb2RlbCIgdG8gY2hvb3NlIGdlbmVyaWMgb3IgcnRj IHdvcmtlciBtb2RlbC4NCj4gPiBBbmQgaW4gZ2VuZXJpYyBtb2RlbCwgdGhlIG5vZGUgd2lsbCBh ZmZpbml0eSB0byB3b3JrZXIgY29yZSBzdWNjZXNzaXZlbHkuDQo+ID4NCj4gPiBOb3RlOg0KPiA+ IG9ubHkgc3VwcG9ydCBvbmUgUlggbm9kZSBmb3IgcmVtb3RlIG1vZGVsIGluIGN1cnJlbnQgaW1w bGVtZW50YXRpb24uDQo+ID4NCj4gPiAuL2RwZGstbDNmd2QtZ3JhcGggIC1sIDgsOSwxMCwxMSAt biA0IC0tIC1wIDB4MSAtLWNvbmZpZz0iKDAsMCw5KSIgLVANCj4gPiAtLW1vZGVsPSJnZW5lcmlj Ig0KPiANCj4gUGF0Y2ggYXBwbHkgaXNzdWUsIHBsZWFzZSByZWJhc2Ugd2l0aCBtYWluLg0KPiBT ZWUgaHR0cHM6Ly9wYXRjaGVzLmRwZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDIyMTExNzA1 MDkyNi4xMzY5NzQtMTQtDQo+IHpoaXJ1bi55YW5AaW50ZWwuY29tLw0KPiANCldpbGwgZml4IGlu IG5leHQgdmVyc2lvbi4gVGhhbmtzIGZvciB5b3VyIGNvbW1lbnRzLg0KPiA+DQo+ID4gU2lnbmVk LW9mZi1ieTogSGFpeXVlIFdhbmcgPGhhaXl1ZS53YW5nQGludGVsLmNvbT4NCj4gPiBTaWduZWQt b2ZmLWJ5OiBDdW5taW5nIExpYW5nIDxjdW5taW5nLmxpYW5nQGludGVsLmNvbT4NCj4gPiBTaWdu ZWQtb2ZmLWJ5OiBaaGlydW4gWWFuIDx6aGlydW4ueWFuQGludGVsLmNvbT4NCj4gPiAtLS0NCj4g PiAgZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jIHwgMjE4DQo+ID4gKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9u cygrKSwgMzkgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvbDNm d2QtZ3JhcGgvbWFpbi5jIGIvZXhhbXBsZXMvbDNmd2QtZ3JhcGgvbWFpbi5jDQo+ID4gaW5kZXgg NmRjYjZlZTkyYi4uYzE0NWEzZTNlOCAxMDA2NDQNCj4gPiAtLS0gYS9leGFtcGxlcy9sM2Z3ZC1n cmFwaC9tYWluLmMNCj4gPiArKysgYi9leGFtcGxlcy9sM2Z3ZC1ncmFwaC9tYWluLmMNCj4gPiBA QCAtMTQ3LDYgKzE0NywxOSBAQCBzdGF0aWMgc3RydWN0IGlwdjRfbDNmd2RfbHBtX3JvdXRlDQo+ IGlwdjRfbDNmd2RfbHBtX3JvdXRlX2FycmF5W10gPSB7DQo+ID4gICAgICAgICB7UlRFX0lQVjQo MTk4LCAxOCwgNiwgMCksIDI0LCA2fSwge1JURV9JUFY0KDE5OCwgMTgsIDcsIDApLA0KPiA+IDI0 LCA3fSwgIH07DQo+ID4NCj4gPiArc3RhdGljIGludA0KPiA+ICtjaGVja193b3JrZXJfbW9kZWxf cGFyYW1zKHZvaWQpDQo+ID4gK3sNCj4gPiArICAgICAgIGlmIChydGVfZ3JhcGhfd29ya2VyX21v ZGVsX2dldCgpID09IFJURV9HUkFQSF9NT0RFTF9HRU5FUklDICYmDQo+ID4gKyAgICAgICAgICAg bmJfbGNvcmVfcGFyYW1zID4gMSkgew0KPiA+ICsgICAgICAgICAgICAgICBwcmludGYoIkV4Y2Vl ZGVkIG1heCBudW1iZXIgb2YgbGNvcmUgcGFyYW1zIGZvciByZW1vdGUNCj4gbW9kZWw6ICVodVxu IiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgIG5iX2xjb3JlX3BhcmFtcyk7DQo+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiAtMTsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAg ICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIGludA0KPiA+ICBjaGVja19s Y29yZV9wYXJhbXModm9pZCkNCj4gPiAgew0KPiA+IEBAIC0yOTEsNiArMzA0LDIwIEBAIHBhcnNl X21heF9wa3RfbGVuKGNvbnN0IGNoYXIgKnBrdGxlbikNCj4gPiAgICAgICAgIHJldHVybiBsZW47 DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK3BhcnNlX3dvcmtlcl9tb2RlbChj b25zdCBjaGFyICptb2RlbCkgew0KPiA+ICsgICAgICAgaWYgKHN0cmNtcChtb2RlbCwgV09SS0VS X01PREVMX0RFRkFVTFQpID09IDApDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSVEVfR1JB UEhfTU9ERUxfREVGQVVMVDsNCj4gPiArICAgICAgIGVsc2UgaWYgKHN0cmNtcChtb2RlbCwgV09S S0VSX01PREVMX0dFTkVSSUMpID09IDApIHsNCj4gPiArICAgICAgICAgICAgICAgcnRlX2dyYXBo X3dvcmtlcl9tb2RlbF9zZXQoUlRFX0dSQVBIX01PREVMX0dFTkVSSUMpOw0KPiA+ICsgICAgICAg ICAgICAgICByZXR1cm4gUlRFX0dSQVBIX01PREVMX0dFTkVSSUM7DQo+ID4gKyAgICAgICB9DQo+ ID4gKyAgICAgICBydGVfZXhpdChFWElUX0ZBSUxVUkUsICJJbnZhbGlkIHdvcmtlciBtb2RlbDog JXMiLCBtb2RlbCk7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIFJURV9HUkFQSF9NT0RFTF9N QVg7DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0YXRpYyBpbnQNCj4gPiAgcGFyc2VfcG9ydG1hc2so Y29uc3QgY2hhciAqcG9ydG1hc2spDQo+ID4gIHsNCj4gPiBAQCAtNDA0LDYgKzQzMSw3IEBAIHN0 YXRpYyBjb25zdCBjaGFyIHNob3J0X29wdGlvbnNbXSA9ICJwOiIgLyogcG9ydG1hc2sgKi8NCj4g PiAgI2RlZmluZSBDTURfTElORV9PUFRfTk9fTlVNQSAgICAgICJuby1udW1hIg0KPiA+ICAjZGVm aW5lIENNRF9MSU5FX09QVF9NQVhfUEtUX0xFTiAgICJtYXgtcGt0LWxlbiINCj4gPiAgI2RlZmlu ZSBDTURfTElORV9PUFRfUEVSX1BPUlRfUE9PTCAicGVyLXBvcnQtcG9vbCINCj4gPiArI2RlZmlu ZSBDTURfTElORV9PUFRfV09SS0VSX01PREVMICAibW9kZWwiDQo+ID4gIGVudW0gew0KPiA+ICAg ICAgICAgLyogTG9uZyBvcHRpb25zIG1hcHBlZCB0byBhIHNob3J0IG9wdGlvbiAqLw0KPiA+DQo+ ID4gQEAgLTQxNiw2ICs0NDQsNyBAQCBlbnVtIHsNCj4gPiAgICAgICAgIENNRF9MSU5FX09QVF9O T19OVU1BX05VTSwNCj4gPiAgICAgICAgIENNRF9MSU5FX09QVF9NQVhfUEtUX0xFTl9OVU0sDQo+ ID4gICAgICAgICBDTURfTElORV9PUFRfUEFSU0VfUEVSX1BPUlRfUE9PTCwNCj4gPiArICAgICAg IENNRF9MSU5FX09QVF9XT1JLRVJfTU9ERUxfVFlQRSwNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdGF0 aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsZ29wdHNbXSA9IHsgQEAgLTQyNCw2ICs0NTMsNyBAQCBz dGF0aWMNCj4gPiBjb25zdCBzdHJ1Y3Qgb3B0aW9uIGxnb3B0c1tdID0gew0KPiA+ICAgICAgICAg e0NNRF9MSU5FX09QVF9OT19OVU1BLCAwLCAwLCBDTURfTElORV9PUFRfTk9fTlVNQV9OVU19LA0K PiA+ICAgICAgICAge0NNRF9MSU5FX09QVF9NQVhfUEtUX0xFTiwgMSwgMCwNCj4gQ01EX0xJTkVf T1BUX01BWF9QS1RfTEVOX05VTX0sDQo+ID4gICAgICAgICB7Q01EX0xJTkVfT1BUX1BFUl9QT1JU X1BPT0wsIDAsIDAsDQo+ID4gQ01EX0xJTkVfT1BUX1BBUlNFX1BFUl9QT1JUX1BPT0x9LA0KPiA+ ICsgICAgICAge0NNRF9MSU5FX09QVF9XT1JLRVJfTU9ERUwsIDEsIDAsDQo+ID4gKyBDTURfTElO RV9PUFRfV09SS0VSX01PREVMX1RZUEV9LA0KPiA+ICAgICAgICAge05VTEwsIDAsIDAsIDB9LA0K PiA+ICB9Ow0KPiA+DQo+ID4gQEAgLTQ5OCw2ICs1MjgsMTEgQEAgcGFyc2VfYXJncyhpbnQgYXJn YywgY2hhciAqKmFyZ3YpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcGVyX3BvcnRfcG9v bCA9IDE7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4NCj4gPiArICAg ICAgICAgICAgICAgY2FzZSBDTURfTElORV9PUFRfV09SS0VSX01PREVMX1RZUEU6DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJVc2UgbmV3IHdvcmtlciBtb2RlbDogJXNcbiIs IG9wdGFyZyk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcGFyc2Vfd29ya2VyX21vZGVs KG9wdGFyZyk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ ICAgICAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHBy aW50X3VzYWdlKHByZ25hbWUpOw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAt MTsNCj4gPiBAQCAtNzM1LDYgKzc3MCwxNDAgQEAgY29uZmlnX3BvcnRfbWF4X3BrdF9sZW4oc3Ry dWN0IHJ0ZV9ldGhfY29uZg0KPiAqY29uZiwNCj4gPiAgICAgICAgIHJldHVybiAwOw0KPiA+ICB9 DQo+ID4NCj4gPiArc3RhdGljIHZvaWQNCj4gPiArZ3JhcGhfY29uZmlnX2dlbmVyaWMoc3RydWN0 IHJ0ZV9ncmFwaF9wYXJhbSBncmFwaF9jb25mKSB7DQo+ID4gKyAgICAgICB1aW50MTZfdCBuYl9w YXR0ZXJucyA9IGdyYXBoX2NvbmYubmJfbm9kZV9wYXR0ZXJuczsNCj4gPiArICAgICAgIGludCB3 b3JrZXJfY291bnQgPSBydGVfbGNvcmVfY291bnQoKSAtIDE7DQo+ID4gKyAgICAgICBpbnQgbWFp bl9sY29yZV9pZCA9IHJ0ZV9nZXRfbWFpbl9sY29yZSgpOw0KPiA+ICsgICAgICAgaW50IHdvcmtl cl9sY29yZSA9IG1haW5fbGNvcmVfaWQ7DQo+ID4gKyAgICAgICBydGVfZ3JhcGhfdCBtYWluX2dy YXBoX2lkID0gMDsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfbm9kZSAqbm9kZV90bXA7DQo+ID4g KyAgICAgICBzdHJ1Y3QgbGNvcmVfY29uZiAqcWNvbmY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcnRl X2dyYXBoICpncmFwaDsNCj4gPiArICAgICAgIHJ0ZV9ncmFwaF90IGdyYXBoX2lkOw0KPiA+ICsg ICAgICAgcnRlX2dyYXBoX29mZl90IG9mZjsNCj4gPiArICAgICAgIGludCBuX3J4X25vZGUgPSAw Ow0KPiA+ICsgICAgICAgcnRlX25vZGVfdCBjb3VudDsNCj4gPiArICAgICAgIHJ0ZV9lZGdlX3Qg aTsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpbnQgaiA9 IDA7IGogPCBuYl9sY29yZV9wYXJhbXM7IGorKykgew0KPiA+ICsgICAgICAgICAgICAgICBxY29u ZiA9ICZsY29yZV9jb25mW2xjb3JlX3BhcmFtc1tqXS5sY29yZV9pZF07DQo+ID4gKyAgICAgICAg ICAgICAgIC8qIEFkZCByeCBub2RlIHBhdHRlcm5zIG9mIGFsbCBsY29yZSAqLw0KPiA+ICsgICAg ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcWNvbmYtPm5fcnhfcXVldWU7IGkrKykgew0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm5vZGVfbmFtZSA9DQo+ID4gKyBxY29uZi0+ cnhfcXVldWVfbGlzdFtpXS5ub2RlX25hbWU7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGdyYXBoX2NvbmYubm9kZV9wYXR0ZXJuc1tuYl9wYXR0ZXJucyArIG5fcnhfbm9kZSAr IGldID0NCj4gbm9kZV9uYW1lOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG5fcnhfbm9k ZSsrOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IHJ0ZV9ub2RlX21vZGVsX2dl bmVyaWNfc2V0X2xjb3JlX2FmZmluaXR5KG5vZGVfbmFtZSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs Y29yZV9wYXJhbXNbal0ubGNvcmVfaWQpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlm IChyZXQgPT0gMCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Zigi U2V0IG5vZGUgJXMgYWZmaW5pdHkgdG8gbGNvcmUgJXVcbiIsIG5vZGVfbmFtZSwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsY29yZV9wYXJhbXNbal0ubGNvcmVf aWQpOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsg ICAgICAgZ3JhcGhfY29uZi5uYl9ub2RlX3BhdHRlcm5zID0gbmJfcGF0dGVybnMgKyBuX3J4X25v ZGU7DQo+ID4gKyAgICAgICBncmFwaF9jb25mLnNvY2tldF9pZCA9IHJ0ZV9sY29yZV90b19zb2Nr ZXRfaWQobWFpbl9sY29yZV9pZCk7DQo+ID4gKw0KPiA+ICsgICAgICAgc25wcmludGYocWNvbmYt Pm5hbWUsIHNpemVvZihxY29uZi0+bmFtZSksICJ3b3JrZXJfJXUiLA0KPiA+ICsgICAgICAgICAg ICAgICAgbWFpbl9sY29yZV9pZCk7DQo+ID4gKw0KPiA+ICsgICAgICAgLyogY3JlYXRlIG1haW4g Z3JhcGggKi8NCj4gPiArICAgICAgIG1haW5fZ3JhcGhfaWQgPSBydGVfZ3JhcGhfY3JlYXRlKHFj b25mLT5uYW1lLCAmZ3JhcGhfY29uZik7DQo+ID4gKyAgICAgICBpZiAobWFpbl9ncmFwaF9pZCA9 PSBSVEVfR1JBUEhfSURfSU5WQUxJRCkNCj4gPiArICAgICAgICAgICAgICAgcnRlX2V4aXQoRVhJ VF9GQUlMVVJFLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAicnRlX2dyYXBoX2NyZWF0 ZSgpOiBtYWluX2dyYXBoX2lkIGludmFsaWQgZm9yIGxjb3JlICV1XG4iLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICBtYWluX2xjb3JlX2lkKTsNCj4gPiArDQo+ID4gKyAgICAgICBxY29u Zi0+Z3JhcGhfaWQgPSBtYWluX2dyYXBoX2lkOw0KPiA+ICsgICAgICAgcWNvbmYtPmdyYXBoID0g cnRlX2dyYXBoX2xvb2t1cChxY29uZi0+bmFtZSk7DQo+ID4gKyAgICAgICAvKiA+OCBFbmQgb2Yg Z3JhcGggaW5pdGlhbGl6YXRpb24uICovDQo+ID4gKyAgICAgICBpZiAoIXFjb25mLT5ncmFwaCkN Cj4gPiArICAgICAgICAgICAgICAgcnRlX2V4aXQoRVhJVF9GQUlMVVJFLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAicnRlX2dyYXBoX2xvb2t1cCgpOiBncmFwaCAlcyBub3QgZm91bmRc biIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHFjb25mLT5uYW1lKTsNCj4gPiArDQo+ ID4gKyAgICAgICBncmFwaCA9IHFjb25mLT5ncmFwaDsNCj4gPiArICAgICAgIHJ0ZV9ncmFwaF9m b3JlYWNoX25vZGUoY291bnQsIG9mZiwgZ3JhcGgsIG5vZGVfdG1wKSB7DQo+ID4gKyAgICAgICAg ICAgICAgIHdvcmtlcl9sY29yZSA9IHJ0ZV9nZXRfbmV4dF9sY29yZSh3b3JrZXJfbGNvcmUsIHRy dWUsDQo+ID4gKyAxKTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gc2V0 IHRoZSBub2RlIExjb3JlIGFmZmluaXR5IGJlZm9yZSBjbG9uZSBncmFwaCBmb3IgZWFjaA0KPiBs Y29yZSAqLw0KPiA+ICsgICAgICAgICAgICAgICBpZiAobm9kZV90bXAtPmxjb3JlX2lkID09IFJU RV9NQVhfTENPUkUpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBydGVfbm9k ZV9tb2RlbF9nZW5lcmljX3NldF9sY29yZV9hZmZpbml0eShub2RlX3RtcC0NCj4gPm5hbWUsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgd29ya2VyX2xjb3JlKTsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBpZiAocmV0ID09IDApDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw cmludGYoIlNldCBub2RlICVzIGFmZmluaXR5IHRvIGxjb3JlICV1XG4iLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVfdG1wLT5uYW1lLCB3b3JrZXJfbGNv cmUpOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsg ICAgICAgd29ya2VyX2xjb3JlID0gbWFpbl9sY29yZV9pZDsNCj4gPiArICAgICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgd29ya2VyX2NvdW50OyBpKyspIHsNCj4gPiArICAgICAgICAgICAgICAgd29y a2VyX2xjb3JlID0gcnRlX2dldF9uZXh0X2xjb3JlKHdvcmtlcl9sY29yZSwgdHJ1ZSwNCj4gPiAr IDEpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgcWNvbmYgPSAmbGNvcmVfY29uZlt3b3Jr ZXJfbGNvcmVdOw0KPiA+ICsgICAgICAgICAgICAgICBzbnByaW50ZihxY29uZi0+bmFtZSwgc2l6 ZW9mKHFjb25mLT5uYW1lKSwgImNsb25lZC0ldSIsDQo+IHdvcmtlcl9sY29yZSk7DQo+ID4gKyAg ICAgICAgICAgICAgIGdyYXBoX2lkID0gcnRlX2dyYXBoX2Nsb25lKG1haW5fZ3JhcGhfaWQsIHFj b25mLT5uYW1lKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gcnRlX2dyYXBoX2JpbmRfY29y ZShncmFwaF9pZCwgd29ya2VyX2xjb3JlKTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKHJldCA9 PSAwKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiYmluZCBncmFwaCAlZCB0 byBsY29yZSAldVxuIiwNCj4gPiArIGdyYXBoX2lkLCB3b3JrZXJfbGNvcmUpOw0KPiA+ICsNCj4g PiArICAgICAgICAgICAgICAgLyogZnVsbCBjbG9uZWQgZ3JhcGggbmFtZSAqLw0KPiA+ICsgICAg ICAgICAgICAgICBzbnByaW50ZihxY29uZi0+bmFtZSwgc2l6ZW9mKHFjb25mLT5uYW1lKSwgIiVz IiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2dyYXBoX2lkX3RvX25hbWUoZ3Jh cGhfaWQpKTsNCj4gPiArICAgICAgICAgICAgICAgcWNvbmYtPmdyYXBoX2lkID0gZ3JhcGhfaWQ7 DQo+ID4gKyAgICAgICAgICAgICAgIHFjb25mLT5ncmFwaCA9IHJ0ZV9ncmFwaF9sb29rdXAocWNv bmYtPm5hbWUpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoIXFjb25mLT5ncmFwaCkNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBydGVfZXhpdChFWElUX0ZBSUxVUkUsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBsb29rdXAgZ3JhcGggJXNcbiIs DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWNvbmYtPm5hbWUpOw0KPiA+ ICsgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsN Cj4gPiArc3RhdGljIHZvaWQNCj4gPiArZ3JhcGhfY29uZmlnX3J0YyhzdHJ1Y3QgcnRlX2dyYXBo X3BhcmFtIGdyYXBoX2NvbmYpIHsNCj4gPiArICAgICAgIHVpbnQxNl90IG5iX3BhdHRlcm5zID0g Z3JhcGhfY29uZi5uYl9ub2RlX3BhdHRlcm5zOw0KPiA+ICsgICAgICAgc3RydWN0IGxjb3JlX2Nv bmYgKnFjb25mOw0KPiA+ICsgICAgICAgcnRlX2dyYXBoX3QgZ3JhcGhfaWQ7DQo+ID4gKyAgICAg ICB1aW50MzJfdCBsY29yZV9pZDsNCj4gPiArICAgICAgIHJ0ZV9lZGdlX3QgaTsNCj4gPiArDQo+ ID4gKyAgICAgICBmb3IgKGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBSVEVfTUFYX0xDT1JFOyBs Y29yZV9pZCsrKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChydGVfbGNvcmVfaXNfZW5hYmxl ZChsY29yZV9pZCkgPT0gMCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsN Cj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHFjb25mID0gJmxjb3JlX2NvbmZbbGNvcmVfaWRd Ow0KPiA+ICsgICAgICAgICAgICAgICAvKiBTa2lwIGdyYXBoIGNyZWF0aW9uIGlmIG5vIHNvdXJj ZSBleGlzdHMgKi8NCj4gPiArICAgICAgICAgICAgICAgaWYgKCFxY29uZi0+bl9yeF9xdWV1ZSkN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiArICAgICAgICAgICAg ICAgLyogQWRkIHJ4IG5vZGUgcGF0dGVybnMgb2YgdGhpcyBsY29yZSAqLw0KPiA+ICsgICAgICAg ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcWNvbmYtPm5fcnhfcXVldWU7IGkrKykgew0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGdyYXBoX2NvbmYubm9kZV9wYXR0ZXJuc1tuYl9wYXR0ZXJu cyArIGldID0NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFjb25mLT5yeF9x dWV1ZV9saXN0W2ldLm5vZGVfbmFtZTsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAg ICAgICAgICAgICBncmFwaF9jb25mLm5iX25vZGVfcGF0dGVybnMgPSBuYl9wYXR0ZXJucyArIGk7 DQo+ID4gKyAgICAgICAgICAgICAgIGdyYXBoX2NvbmYuc29ja2V0X2lkID0gcnRlX2xjb3JlX3Rv X3NvY2tldF9pZChsY29yZV9pZCk7DQo+ID4gKyAgICAgICAgICAgICAgIHNucHJpbnRmKHFjb25m LT5uYW1lLCBzaXplb2YocWNvbmYtPm5hbWUpLCAid29ya2VyXyV1IiwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgbGNvcmVfaWQpOw0KPiA+ICsgICAgICAgICAgICAgICBncmFwaF9pZCA9 IHJ0ZV9ncmFwaF9jcmVhdGUocWNvbmYtPm5hbWUsICZncmFwaF9jb25mKTsNCj4gPiArICAgICAg ICAgICAgICAgaWYgKGdyYXBoX2lkID09IFJURV9HUkFQSF9JRF9JTlZBTElEKQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHJ0ZV9leGl0KEVYSVRfRkFJTFVSRSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAicnRlX2dyYXBoX2NyZWF0ZSgpOiBncmFwaF9pZCBpbnZh bGlkIGZvciBsY29yZSAldVxuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsY29yZV9pZCk7DQo+ID4gKyAgICAgICAgICAgICAgIHFjb25mLT5ncmFwaF9pZCA9IGdyYXBo X2lkOw0KPiA+ICsgICAgICAgICAgICAgICBxY29uZi0+Z3JhcGggPSBydGVfZ3JhcGhfbG9va3Vw KHFjb25mLT5uYW1lKTsNCj4gPiArICAgICAgICAgICAgICAgLyogPjggRW5kIG9mIGdyYXBoIGlu aXRpYWxpemF0aW9uLiAqLw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoIXFjb25mLT5ncmFwaCkN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBydGVfZXhpdChFWElUX0ZBSUxVUkUsDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ0ZV9ncmFwaF9sb29rdXAoKTogZ3Jh cGggJXMgbm90IGZvdW5kXG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHFjb25mLT5uYW1lKTsNCj4gPiArICAgICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiAgaW50DQo+ ID4gIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiA+ICB7DQo+ID4gQEAgLTc1OSw2ICs5 MjgsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gPiAgICAgICAgIHVpbnQxNl90 IG5iX3BhdHRlcm5zOw0KPiA+ICAgICAgICAgdWludDhfdCByZXdyaXRlX2xlbjsNCj4gPiAgICAg ICAgIHVpbnQzMl90IGxjb3JlX2lkOw0KPiA+ICsgICAgICAgdWludDE2X3QgbW9kZWw7DQo+ID4g ICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ID4gICAgICAgICAvKiBJbml0IEVBTCAqLw0KPiA+IEBA IC03ODcsNiArOTU3LDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ID4gICAgICAg ICBpZiAoY2hlY2tfbGNvcmVfcGFyYW1zKCkgPCAwKQ0KPiA+ICAgICAgICAgICAgICAgICBydGVf ZXhpdChFWElUX0ZBSUxVUkUsICJjaGVja19sY29yZV9wYXJhbXMoKQ0KPiA+IGZhaWxlZFxuIik7 DQo+ID4NCj4gPiArICAgICAgIGlmIChjaGVja193b3JrZXJfbW9kZWxfcGFyYW1zKCkgPCAwKQ0K PiA+ICsgICAgICAgICAgICAgICBydGVfZXhpdChFWElUX0ZBSUxVUkUsICJjaGVja193b3JrZXJf bW9kZWxfcGFyYW1zKCkNCj4gPiArIGZhaWxlZFxuIik7DQo+ID4gKw0KPiA+ICAgICAgICAgcmV0 ID0gaW5pdF9sY29yZV9yeF9xdWV1ZXMoKTsNCj4gPiAgICAgICAgIGlmIChyZXQgPCAwKQ0KPiA+ ICAgICAgICAgICAgICAgICBydGVfZXhpdChFWElUX0ZBSUxVUkUsICJpbml0X2xjb3JlX3J4X3F1 ZXVlcygpDQo+ID4gZmFpbGVkXG4iKTsgQEAgLTEwMjYsNDYgKzExOTksMTMgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpDQo+ID4NCj4gPiAgICAgICAgIG1lbXNldCgmZ3JhcGhfY29uZiwg MCwgc2l6ZW9mKGdyYXBoX2NvbmYpKTsNCj4gPiAgICAgICAgIGdyYXBoX2NvbmYubm9kZV9wYXR0 ZXJucyA9IG5vZGVfcGF0dGVybnM7DQo+ID4gKyAgICAgICBncmFwaF9jb25mLm5iX25vZGVfcGF0 dGVybnMgPSBuYl9wYXR0ZXJuczsNCj4gPg0KPiA+IC0gICAgICAgZm9yIChsY29yZV9pZCA9IDA7 IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVfaWQrKykgew0KPiA+IC0gICAgICAgICAg ICAgICBydGVfZ3JhcGhfdCBncmFwaF9pZDsNCj4gPiAtICAgICAgICAgICAgICAgcnRlX2VkZ2Vf dCBpOw0KPiA+IC0NCj4gPiAtICAgICAgICAgICAgICAgaWYgKHJ0ZV9sY29yZV9pc19lbmFibGVk KGxjb3JlX2lkKSA9PSAwKQ0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0K PiA+IC0NCj4gPiAtICAgICAgICAgICAgICAgcWNvbmYgPSAmbGNvcmVfY29uZltsY29yZV9pZF07 DQo+ID4gLQ0KPiA+IC0gICAgICAgICAgICAgICAvKiBTa2lwIGdyYXBoIGNyZWF0aW9uIGlmIG5v IHNvdXJjZSBleGlzdHMgKi8NCj4gPiAtICAgICAgICAgICAgICAgaWYgKCFxY29uZi0+bl9yeF9x dWV1ZSkNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiAtDQo+ID4g LSAgICAgICAgICAgICAgIC8qIEFkZCByeCBub2RlIHBhdHRlcm5zIG9mIHRoaXMgbGNvcmUgKi8N Cj4gPiAtICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHFjb25mLT5uX3J4X3F1ZXVlOyBp KyspIHsNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBncmFwaF9jb25mLm5vZGVfcGF0dGVy bnNbbmJfcGF0dGVybnMgKyBpXSA9DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBxY29uZi0+cnhfcXVldWVfbGlzdFtpXS5ub2RlX25hbWU7DQo+ID4gLSAgICAgICAgICAgICAg IH0NCj4gPiAtDQo+ID4gLSAgICAgICAgICAgICAgIGdyYXBoX2NvbmYubmJfbm9kZV9wYXR0ZXJu cyA9IG5iX3BhdHRlcm5zICsgaTsNCj4gPiAtICAgICAgICAgICAgICAgZ3JhcGhfY29uZi5zb2Nr ZXRfaWQgPSBydGVfbGNvcmVfdG9fc29ja2V0X2lkKGxjb3JlX2lkKTsNCj4gPiAtDQo+ID4gLSAg ICAgICAgICAgICAgIHNucHJpbnRmKHFjb25mLT5uYW1lLCBzaXplb2YocWNvbmYtPm5hbWUpLCAi d29ya2VyXyV1IiwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgbGNvcmVfaWQpOw0KPiA+ IC0NCj4gPiAtICAgICAgICAgICAgICAgZ3JhcGhfaWQgPSBydGVfZ3JhcGhfY3JlYXRlKHFjb25m LT5uYW1lLCAmZ3JhcGhfY29uZik7DQo+ID4gLSAgICAgICAgICAgICAgIGlmIChncmFwaF9pZCA9 PSBSVEVfR1JBUEhfSURfSU5WQUxJRCkNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBydGVf ZXhpdChFWElUX0ZBSUxVUkUsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InJ0ZV9ncmFwaF9jcmVhdGUoKTogZ3JhcGhfaWQgaW52YWxpZCINCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiIGZvciBsY29yZSAldVxuIiwgbGNvcmVfaWQpOw0KPiA+IC0N Cj4gPiAtICAgICAgICAgICAgICAgcWNvbmYtPmdyYXBoX2lkID0gZ3JhcGhfaWQ7DQo+ID4gLSAg ICAgICAgICAgICAgIHFjb25mLT5ncmFwaCA9IHJ0ZV9ncmFwaF9sb29rdXAocWNvbmYtPm5hbWUp Ow0KPiA+IC0gICAgICAgICAgICAgICAvKiA+OCBFbmQgb2YgZ3JhcGggaW5pdGlhbGl6YXRpb24u ICovDQo+ID4gLSAgICAgICAgICAgICAgIGlmICghcWNvbmYtPmdyYXBoKQ0KPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgIHJ0ZV9leGl0KEVYSVRfRkFJTFVSRSwNCj4gPiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAicnRlX2dyYXBoX2xvb2t1cCgpOiBncmFwaCAlcyBub3QgZm91 bmRcbiIsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWNvbmYtPm5hbWUp Ow0KPiA+IC0gICAgICAgfQ0KPiA+ICsgICAgICAgbW9kZWwgPSBydGVfZ3JhcGhfd29ya2VyX21v ZGVsX2dldCgpOw0KPiA+ICsgICAgICAgaWYgKG1vZGVsID09IFJURV9HUkFQSF9NT0RFTF9ERUZB VUxUKQ0KPiA+ICsgICAgICAgICAgICAgICBncmFwaF9jb25maWdfcnRjKGdyYXBoX2NvbmYpOw0K PiA+ICsgICAgICAgZWxzZSBpZiAobW9kZWwgPT0gUlRFX0dSQVBIX01PREVMX0dFTkVSSUMpDQo+ ID4gKyAgICAgICAgICAgICAgIGdyYXBoX2NvbmZpZ19nZW5lcmljKGdyYXBoX2NvbmYpOw0KPiA+ DQo+ID4gICAgICAgICBtZW1zZXQoJnJld3JpdGVfZGF0YSwgMCwgc2l6ZW9mKHJld3JpdGVfZGF0 YSkpOw0KPiA+ICAgICAgICAgcmV3cml0ZV9sZW4gPSBzaXplb2YocmV3cml0ZV9kYXRhKTsNCj4g PiAtLQ0KPiA+IDIuMjUuMQ0KPiA+DQo=