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 365C6A0543; Tue, 25 Oct 2022 11:08:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DC1F242BB8; Tue, 25 Oct 2022 11:08:02 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 9503241143 for ; Tue, 25 Oct 2022 11:08:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1666688880; x=1698224880; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=8QbogT9NhHjMvy9Xf2wHQ2kWH3CXBMGUDmcku1Jymco=; b=GITAW6P3m5pphHcbpP3LSLJukEgMV2vx4pfEcM/5pxX/RAyl+jB6z3uA gNG34Q/I8vRtlDW/AzuCxkxuDxso4nMheb6QAKOXNDKByaB5aRu28/2Pn wNc7gBPKyNEtoA9LINZjClgupsoJ9xoaZlEZBEJkhaKNTtWBGPI3y5YDV S0gdZuFg+H//EzWjA80PC5lttlvDETop2VSuQzdfT7oPrhg3EDPZpNMa8 OgWbob+eHuVK9YmqbTe40J1zDVOC1h9EqdCQcSKamzBkqBUAG6np5P+Vv ZAJB+DPlonkKz91gdVc6gNol3taNFLsHP33QXMVP76MGF5N3bVmKtnu6f g==; X-IronPort-AV: E=McAfee;i="6500,9779,10510"; a="393943865" X-IronPort-AV: E=Sophos;i="5.95,211,1661842800"; d="scan'208";a="393943865" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Oct 2022 02:07:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10510"; a="694880186" X-IronPort-AV: E=Sophos;i="5.95,211,1661842800"; d="scan'208";a="694880186" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga008.fm.intel.com with ESMTP; 25 Oct 2022 02:07:55 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 25 Oct 2022 02:07:55 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 25 Oct 2022 02:07:54 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 25 Oct 2022 02:07:54 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.173) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 25 Oct 2022 02:07:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eK4vsWRtT2/okYIA2lTWqBn1G1iNxSfor96YHKVVlr1BVCJaLkwz7v5mYEko8T00Z7n5cDfKwTpWRE6XA87diCtr4mmSMGwKVu274hcn47rs7rcv7iSkRhtAbrKdknKdSS5O5sqT1szWrsZtAK1vYg8WNQGr14cczKnRFbhdhVpQuKoR6+2aVB8gU4LGwU+frIZ1u1aTmr9L78LeTYalIYjD9SyZFaA8xWF5NjOSTinWtul9U2fuJdHhhs7eNgBrwxtrM6f61Asr2E7OtPa82z7sLctEj+ywF9nOnI371BaJUsJXDqhhDt1kvW/DBrSAbq0JBMC4MiD7Hqru8VCW5g== 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=8QbogT9NhHjMvy9Xf2wHQ2kWH3CXBMGUDmcku1Jymco=; b=gfVk+0qk02Xo0WffoLyVPPG4VkOjxmZn/ehVs3oTYpq3dOX7fQKqaXsm0mUGhXItk00L9lnOb9VuBwA/jCDQVrTu4pWtVpG1FERhjCgHW/22mEU1ev6TWtijszNAjuAtcUm5oi2934Ybogr6dfqjk/Z4X9wpaaR4vU4y4IAy2aupr/X2IBLYqVLztshRGrhM7Q0xd9lpsCU6zdViDxjg2cedIOoWxVy1f9VdgF9Y3UAgdf8RlhVL5w4fWnoaSYaNb1E4xchX/oxpBfNlSWj4Hp5GFFvF6QAR9WyBNizW4XVbObG+p3ELkpoCbjU0JO9+7sU4QJVLij4lzl7U7ckbSg== 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 DM6PR11MB3723.namprd11.prod.outlook.com (2603:10b6:5:13f::25) by MW4PR11MB6572.namprd11.prod.outlook.com (2603:10b6:303:1ee::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.21; Tue, 25 Oct 2022 09:07:47 +0000 Received: from DM6PR11MB3723.namprd11.prod.outlook.com ([fe80::126d:f905:c1d6:dcb9]) by DM6PR11MB3723.namprd11.prod.outlook.com ([fe80::126d:f905:c1d6:dcb9%5]) with mapi id 15.20.5723.033; Tue, 25 Oct 2022 09:07:47 +0000 From: "Guo, Junfeng" To: Ferruh Yigit , "Zhang, Qi Z" , "Wu, Jingjing" , "Xing, Beilei" CC: "dev@dpdk.org" , "Li, Xiaoyun" , "awogbemila@google.com" , "Richardson, Bruce" , "hemant.agrawal@nxp.com" , "stephen@networkplumber.org" , "Xia, Chenbo" , "Zhang, Helin" Subject: RE: [PATCH v7 8/8] net/gve: add support for Rx/Tx Thread-Topic: [PATCH v7 8/8] net/gve: add support for Rx/Tx Thread-Index: AQHY5S6BcyeyVjeh90qZpC0jTrTkn64Ymy4AgARk2PCAAGJeAIAAI+4wgAFJeuA= Date: Tue, 25 Oct 2022 09:07:47 +0000 Message-ID: References: <20221020103656.1068036-1-junfeng.guo@intel.com> <20221021091928.2674471-1-junfeng.guo@intel.com> <20221021091928.2674471-9-junfeng.guo@intel.com> <690afa67-a5b4-e282-089b-f20f7e3fb085@amd.com> <9a880154-2d0a-46c2-74e8-541b49f8b0f2@amd.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 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: DM6PR11MB3723:EE_|MW4PR11MB6572:EE_ x-ms-office365-filtering-correlation-id: 1dc44c85-1f16-4307-d316-08dab6686296 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KFaLvnh7TvB2PW4M5/KvuXaXWD5232yrHGVUiIDOq4DmAyaJOGmHFhMeplhHshYleYHqiMZaLrZ1/vMJKRO+rE8Qfq2DR1dAW8awnY/RqBfmBAauhC3OoUumfaV4xZAMrjOhGTCUJeth21zmNARhwnpBwcIlrKe5FFESjENB0vSpNvitCYWteZILYdeX8V/Xq86cg2T3VfBzhmndRvkjqxvX9hK62uyqMW9OLdK2f4tT19V60gB9ct5XXqe2PB5ktAT37sfsVQkdVivbEX1lV8CDxDe1WYnSSv4uuKwd2ffyHYE897OcOO7OSvJ+In6sMudDdBvLE6Hb9EBPEoveKPdYGZWHefAv3VHNuJukwB11CxU8voLXEfBTiIP2iKVFgOMb4g41lZXjxQksWICo/FN5RkX37F+Rx13rfQlYRU3uXBc/5iv1cG4PbpykyRuzvTR0EKGYKw/IOe7FfHHcS42TC//u6dDTr1zZqruK43M1dwK1/+OTdxyyR3udPSfIVk+iBBjkdf1He7MZLYpdPkEheBBHoNojfTNhkGa/HCbZwJFHj9UX0Efg8ZT1ybZdYEDYUZF54vAhhkRCcQflTUushvy4yF2r62burnKFxLeeg6f/QCsfbYHy2hZq8Pm29yLCo+45HDe7vznkbxRyI7YFW8MnVKBg3E2qKT+COWyAEdWNPeHIlpKK4tLEEeGbzL+OVZENWSgGwz3RoGwWh2CLOeVDr4qAQluwWPbnZZvimkhnpJfThZKPrKS2C3pefeL880+fS83fIOubwaNjmA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3723.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(346002)(396003)(376002)(136003)(366004)(451199015)(71200400001)(6636002)(41300700001)(5660300002)(8936002)(55016003)(54906003)(4326008)(33656002)(86362001)(64756008)(8676002)(2906002)(122000001)(38100700002)(66446008)(66946007)(66476007)(82960400001)(76116006)(38070700005)(316002)(66556008)(52536014)(110136005)(26005)(6506007)(7696005)(53546011)(9686003)(186003)(83380400001)(107886003)(478600001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dWNHbHFmYzljQmxPTXZPQXNkTmpaMmU5dzM5djZWN20zYlp0NHdwWVlhVHN1?= =?utf-8?B?WnAySEVjdXhTTm5CdWZnYmVOSXpMdTFGWXlkZHg1S0NUWXZ2eUF6Wk1HQkRa?= =?utf-8?B?TThOemtHS010TlFjYTIwQis3dnJRcVh5VjdDWlhva1YwMGw1S1dpK0lyWnFU?= =?utf-8?B?ZUJOMk5BV2RGQ0Z5OVVjYUFyTFk1V04zTkZvV0U0bXlnRVhXMGZMMzZ1bzF0?= =?utf-8?B?RjFaWWI1cGZkdUsvMkR5cDFmSjBUUnBmeU8wb2d5R2RZSVBZdlRtM1NxQWZo?= =?utf-8?B?WEpjazNObFMxQWg2bkcwM2w3eGxXWE1jOHdBYnZvUEFKWE1yWk1GcU56VGNW?= =?utf-8?B?bkhCdXdVd1QrZlhvTzcxRlhwV3dBWWhyTkRDUU5uUldXRHp4VVBvTVhDTG12?= =?utf-8?B?NHBvUHNBWDRpVjlBbFFleXlSNDFFbk5mNTV2MmhFM0hkcUFQT2NLYnpNdHEy?= =?utf-8?B?bXk5Y1loM1ZBU2c1aThnTThFYTlCRDhKdndZQTgzTmJQc1dmbUEzN0dFNjhh?= =?utf-8?B?ZG5uZnFHbUI0MlR0czlTVk0rVnJhdDJyZnJTdFc4ZGhrTHcwaEhoSnJocFJY?= =?utf-8?B?STZXT1N6MlAveTBkWG1qa21NYys3UnRoY21FSExoOUJSOVRmYUxIVVhwalFV?= =?utf-8?B?VFh6MUZiQ2doWm5WelhKYmtjRUZOeHl5Mm0ydy8xeWJ4eExieERoalRSanpK?= =?utf-8?B?MWJ1RVpDaStuamMrdkZMOE10UkJ5NlhmRTNpd0pVUnNaZFJFNDdLbXJnVHBz?= =?utf-8?B?eUZpWFJmeUdNYWFQL1ZUK2V6TGVVb0VsNzg1dDdrbkRBVklzbWQwTjBNZ295?= =?utf-8?B?WmJhL0N2VkVvNkNWTHQwZjVWaXA0Q3JTR2FwOTJicFo3TU84cDg5bTNOcHk1?= =?utf-8?B?K0J3NjYvRnc1OGl1dFNyZHBla0w4VnVEVEIxT0RwN1BOSDUranVic0NpZGdH?= =?utf-8?B?TStWUDB6d3pmdkpwbVpLN0FKSlZBcEN6eXlUekIyL2dHbkxyZ2duclN0MzB2?= =?utf-8?B?R3ZRVzBRK3Jva1hoMHJvckkxUTRoZ1l5TDJKUEdRQnMrajg1WWxqT2Rqay9J?= =?utf-8?B?VmJxK3VPUE5oOHZXSWVONWdrRGhnMmtOTk1rZ2psaUNidkVWdk5vUCtTMUgv?= =?utf-8?B?T3FNM3VFZHlxb25ldk9sUkhxd29BVzIxOGR4NTJKQ01VMFpOc3l1dnRWZHJq?= =?utf-8?B?b2VpN2cyRElHcERmaVJ1TDNENUJkQUFBaWJZT01tNmVqcGl1c2lxaVJZK1hU?= =?utf-8?B?cWwreFFvRnBheCs0UDRuQTJpc1M4ZEg4dERGSmlRd0JXdUo0UTQxWENRck9G?= =?utf-8?B?Wk80UDlvNkw5Q24wdXVFMEh6WXlGNTBJdkwzZzNQMGtBbGhRK2pRWFV0RnBL?= =?utf-8?B?eHNvNjNla0JvZW4rT2I1RVJrWDZHZWVuYitmcEpGNG5GYXhFNEE1eG96bHh0?= =?utf-8?B?KzFEb2Uwb3BjWDhGZlhSYVJPdmlScFZ2M29FQ1NWU2VjdWVUOEh2Z25FZit5?= =?utf-8?B?SVFVc1JQWWNrV0F0L0ZiUHZKQlY2SjgwZkNsY3p1QzJockNpYUVGYnVDSC9I?= =?utf-8?B?M3pUSEtXL1NJa0FxYTBzSTM2RmlRaVpMN3VBS0NZNzFmWWNneCtUcmRvcUZ6?= =?utf-8?B?TTN6SS9nNU1FdDFHS21YaEhaNUVHSkx2ZTRRNUNYY0xmd1dZV0prUEZ5RHlY?= =?utf-8?B?cWFYNHNzaHlGc3hRSWxBRU1nYTRjdmR6cVBaS1NyTDBiUlZMZWJKYXFQL25m?= =?utf-8?B?MktXdStLcTZlWjQrd2FSbTFyWUNVRXpRR0haM0tlazFJeURKMmFxR0p1a0dk?= =?utf-8?B?UUtJZEUzbWJHc3lZL0hCK3IxQmhKaFJUZFE5MGhMTnpNdENZQTU1VTN5bEFS?= =?utf-8?B?bVlDbzI2b0VRM0R2a28wK3FUUkZZR09zaUpubkNDQVAxZGNQeS9ZcUdzVWlz?= =?utf-8?B?QWVmb0lXSFA4b0x0ODMvVEpWYlluVk8vOHNYNFVITEtpM2o2ZURqdGxMN2xB?= =?utf-8?B?cUNDeU9MUFdieUk2RERrSlN1Y0tGNHNzcGVNYjNWd281SC9YWGRkVExKQ28z?= =?utf-8?B?cTdWK2pPdXljbDFyWjVNK0tESzQ0NzFCaDg2QlJPUjV1OFh3cy9nb0RLZ2lp?= =?utf-8?Q?YCqPUtPDNnYgZEXpq4i2DQmK2?= 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: DM6PR11MB3723.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1dc44c85-1f16-4307-d316-08dab6686296 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Oct 2022 09:07:47.3095 (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: DZzPravnZhDlbrD2sj3rr7Uy9aAbsv6t51qw0NJ3dMOAeuj6gAuo+0a01T3zjuR0lSWvw8lA0UIav0UsMTcNfQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB6572 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 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR3VvLCBKdW5mZW5nDQo+ IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAyNCwgMjAyMiAyMToyNQ0KPiBUbzogRmVycnVoIFlpZ2l0 IDxmZXJydWgueWlnaXRAYW1kLmNvbT47IFpoYW5nLCBRaSBaDQo+IDxxaS56LnpoYW5nQGludGVs LmNvbT47IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwuY29tPjsgWGluZywNCj4gQmVp bGVpIDxiZWlsZWkueGluZ0BpbnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IExpLCBYaWFv eXVuIDx4aWFveXVuLmxpQGludGVsLmNvbT47DQo+IGF3b2diZW1pbGFAZ29vZ2xlLmNvbTsgUmlj aGFyZHNvbiwgQnJ1Y2UNCj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgaGVtYW50LmFn cmF3YWxAbnhwLmNvbTsNCj4gc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IFhpYSwgQ2hlbmJv IDxDaGVuYm8uWGlhQGludGVsLmNvbT47DQo+IFpoYW5nLCBIZWxpbiA8aGVsaW4uemhhbmdAaW50 ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIHY3IDgvOF0gbmV0L2d2ZTogYWRkIHN1cHBv cnQgZm9yIFJ4L1R4DQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdpdEBhbWQuY29tPg0KPiA+IFNlbnQ6 IE1vbmRheSwgT2N0b2JlciAyNCwgMjAyMiAxODo1MA0KPiA+IFRvOiBHdW8sIEp1bmZlbmcgPGp1 bmZlbmcuZ3VvQGludGVsLmNvbT47IFpoYW5nLCBRaSBaDQo+ID4gPHFpLnouemhhbmdAaW50ZWwu Y29tPjsgV3UsIEppbmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5jb20+OyBYaW5nLA0KPiA+IEJl aWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiA+IENjOiBkZXZAZHBkay5vcmc7IExpLCBY aWFveXVuIDx4aWFveXVuLmxpQGludGVsLmNvbT47DQo+ID4gYXdvZ2JlbWlsYUBnb29nbGUuY29t OyBSaWNoYXJkc29uLCBCcnVjZQ0KPiA+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IGhl bWFudC5hZ3Jhd2FsQG54cC5jb207DQo+ID4gc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IFhp YSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47DQo+ID4gWmhhbmcsIEhlbGluIDxoZWxp bi56aGFuZ0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCB2NyA4LzhdIG5ldC9n dmU6IGFkZCBzdXBwb3J0IGZvciBSeC9UeA0KPiA+DQo+ID4gT24gMTAvMjQvMjAyMiA2OjA0IEFN LCBHdW8sIEp1bmZlbmcgd3JvdGU6DQo+ID4gPg0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+ID4+IEZyb206IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QGFt ZC5jb20+DQo+ID4gPj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDIxLCAyMDIyIDE3OjUyDQo+ID4g Pj4gVG86IEd1bywgSnVuZmVuZyA8anVuZmVuZy5ndW9AaW50ZWwuY29tPjsgWmhhbmcsIFFpIFoN Cj4gPiA+PiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBXdSwgSmluZ2ppbmcgPGppbmdqaW5nLnd1 QGludGVsLmNvbT47DQo+ID4gPj4gZmVycnVoLnlpZ2l0QHhpbGlueC5jb207IFhpbmcsIEJlaWxl aSA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0KPiA+ID4+IENjOiBkZXZAZHBkay5vcmc7IExpLCBY aWFveXVuIDx4aWFveXVuLmxpQGludGVsLmNvbT47DQo+ID4gPj4gYXdvZ2JlbWlsYUBnb29nbGUu Y29tOyBSaWNoYXJkc29uLCBCcnVjZQ0KPiA+ID4+IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNv bT47IGhlbWFudC5hZ3Jhd2FsQG54cC5jb207DQo+ID4gPj4gc3RlcGhlbkBuZXR3b3JrcGx1bWJl ci5vcmc7IFhpYSwgQ2hlbmJvDQo+IDxjaGVuYm8ueGlhQGludGVsLmNvbT47DQo+ID4gPj4gWmhh bmcsIEhlbGluIDxoZWxpbi56aGFuZ0BpbnRlbC5jb20+DQo+ID4gPj4gU3ViamVjdDogUmU6IFtQ QVRDSCB2NyA4LzhdIG5ldC9ndmU6IGFkZCBzdXBwb3J0IGZvciBSeC9UeA0KPiA+ID4+DQo+ID4g Pj4gT24gMTAvMjEvMjAyMiAxMDoxOSBBTSwgSnVuZmVuZyBHdW8gd3JvdGU6DQo+ID4gPj4NCj4g PiA+Pj4NCj4gPiA+Pj4gQWRkIFJ4L1R4IG9mIEdRSV9RUEwgcXVldWUgZm9ybWF0IGFuZCBHUUlf UkRBIHF1ZXVlIGZvcm1hdC4NCj4gPiA+Pj4NCj4gPiA+Pj4gU2lnbmVkLW9mZi1ieTogWGlhb3l1 biBMaSA8eGlhb3l1bi5saUBpbnRlbC5jb20+DQo+ID4gPj4+IFNpZ25lZC1vZmYtYnk6IEp1bmZl bmcgR3VvIDxqdW5mZW5nLmd1b0BpbnRlbC5jb20+DQo+ID4gPj4NCj4gPiA+PiA8Li4uPg0KPiA+ ID4+DQo+ID4gPj4+ICsNCj4gPiA+Pj4gK3N0YXRpYyBpbmxpbmUgdm9pZA0KPiA+ID4+PiArZ3Zl X3R4X2NsZWFuX3N3cl9xcGwoc3RydWN0IGd2ZV90eF9xdWV1ZSAqdHhxKQ0KPiA+ID4+PiArew0K PiA+ID4+PiArICAgICAgIHVpbnQzMl90IHN0YXJ0ID0gdHhxLT5zd19udGM7DQo+ID4gPj4+ICsg ICAgICAgdWludDMyX3QgbnRjLCBuYl9jbGVhbjsNCj4gPiA+Pj4gKw0KPiA+ID4+PiArICAgICAg IG50YyA9IHR4cS0+c3dfdGFpbDsNCj4gPiA+Pj4gKw0KPiA+ID4+PiArICAgICAgIGlmIChudGMg PT0gc3RhcnQpDQo+ID4gPj4+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gPj4+ICsNCj4g PiA+Pj4gKyAgICAgICAvKiBpZiB3cmFwIGFyb3VuZCwgZnJlZSB0d2ljZS4gKi8NCj4gPiA+Pj4g KyAgICAgICBpZiAobnRjIDwgc3RhcnQpIHsNCj4gPiA+Pj4gKyAgICAgICAgICAgICAgIG5iX2Ns ZWFuID0gdHhxLT5uYl90eF9kZXNjIC0gc3RhcnQ7DQo+ID4gPj4+ICsgICAgICAgICAgICAgICBp ZiAobmJfY2xlYW4gPiBHVkVfVFhfTUFYX0ZSRUVfU1opDQo+ID4gPj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIG5iX2NsZWFuID0gR1ZFX1RYX01BWF9GUkVFX1NaOw0KPiA+ID4+PiArICAgICAg ICAgICAgICAgZ3ZlX2ZyZWVfYnVsa19tYnVmKCZ0eHEtPnN3X3Jpbmdbc3RhcnRdLCBuYl9jbGVh bik7DQo+ID4gPj4+ICsNCj4gPiA+Pj4gKyAgICAgICAgICAgICAgIHR4cS0+c3dfbmJfZnJlZSAr PSBuYl9jbGVhbjsNCj4gPiA+Pj4gKyAgICAgICAgICAgICAgIHN0YXJ0ICs9IG5iX2NsZWFuOw0K PiA+ID4+PiArICAgICAgICAgICAgICAgaWYgKHN0YXJ0ID09IHR4cS0+bmJfdHhfZGVzYykNCj4g PiA+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSAwOw0KPiA+ID4+PiArICAgICAg ICAgICAgICAgdHhxLT5zd19udGMgPSBzdGFydDsNCj4gPiA+Pj4gKyAgICAgICB9DQo+ID4gPj4+ ICsNCj4gPiA+Pj4gKyAgICAgICBpZiAobnRjID4gc3RhcnQpIHsNCj4gPiA+Pj4gKyAgICAgICAg ICAgICAgIG5iX2NsZWFuID0gbnRjIC0gc3RhcnQ7DQo+ID4gPj4+ICsgICAgICAgICAgICAgICBp ZiAobmJfY2xlYW4gPiBHVkVfVFhfTUFYX0ZSRUVfU1opDQo+ID4gPj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIG5iX2NsZWFuID0gR1ZFX1RYX01BWF9GUkVFX1NaOw0KPiA+ID4+PiArICAgICAg ICAgICAgICAgZ3ZlX2ZyZWVfYnVsa19tYnVmKCZ0eHEtPnN3X3Jpbmdbc3RhcnRdLCBuYl9jbGVh bik7DQo+ID4gPj4+ICsgICAgICAgICAgICAgICB0eHEtPnN3X25iX2ZyZWUgKz0gbmJfY2xlYW47 DQo+ID4gPj4+ICsgICAgICAgICAgICAgICBzdGFydCArPSBuYl9jbGVhbjsNCj4gPiA+Pj4gKyAg ICAgICAgICAgICAgIHR4cS0+c3dfbnRjID0gc3RhcnQ7DQo+ID4gPj4+ICsgICAgICAgfQ0KPiA+ ID4+PiArfQ0KPiA+ID4+DQo+ID4gPj4gW2NvcHkvcGFzdGUgZnJvbSBwcmV2aW91cyB2ZXJzaW9u XQ0KPiA+ID4+DQo+ID4gPj4gbWF5IGJlIGNhbiBkcm9wIHRoZSAnaWYnIGJsb2NrLCBzaW5jZSAi bnRjID09IHN0YXJ0IiBhbmQgIm50YyA8IHN0YXJ0Ig0KPiA+ID4+IGNhc2VzIGFscmVhZHkgY292 ZXJlZC4NCj4gPiA+DQo+ID4gPiBZZXMsIHRoaXMgJ2lmJyBibG9jayBpcyBkcm9wcGVkIGluIHY3 IGFzIHN1Z2dlc3RlZC4gVGhhbmtzIQ0KPiA+ID4NCj4gPg0KPiA+IFRoaXMgaXMgdjcgYW5kIHBs ZWFzZSBjaGVjayBhYm92ZSBjb2RlIHdoaWNoIGhhcyB0aGUgbWVudGlvbmVkICdpZicNCj4gPiBi bG9jayBleGlzdCwgZG8geW91IG1lYW4gaW4gY29taW5nIHY4Pw0KPiANCj4gT2gsIHNvcnJ5IGFi b3V0IHRoaXMhIFRoZXJlIGlzIGFub3RoZXIgZnVuY3Rpb24gd2l0aCB0aGUgc2FtZSBpc3N1ZS4N Cj4gSSBqdXN0IHVwZGF0ZWQgdGhlIGNvZGUgdGhlcmUgYW5kIGZvcmdvdCB0aGlzLiBXaWxsIHVw ZGF0ZSB0aGlzIGFuZA0KPiBjaGVjayBmb3IgdGhlIHJlc3QgaW4gdGhlIGNvbWluZyB2ZXJzaW9u LiBUaGFua3MhDQoNClNvcnJ5IGFnYWluIGFib3V0IHRoaXMgcGFydCEhDQoNCkFmdGVyIHJ1bm5p bmcgdGhlIGNvZGUgYW5kIGRvdWJsZSBjaGVja2luZyB0aGUgY29kZSwgaXQgc2VlbXMgdGhhdA0K dGhlICdpZicgYmxvY2tzIGhlcmUgY2Fubm90IGJlIHJlbW92ZWQgZGlyZWN0bHkuIEFzIHlvdSBj YW4gc2VlLCBpbiB0aGUNCmFib3ZlICdpZicgYmxvY2ssIHRoZSBwYXJhbWV0ZXIgJ3N0YXJ0JyBp cyBub3QgYSBmaXhlZCBvbmUgYW5kIG1heSBiZQ0KY2hhbmdlZCBncmFkdWFsbHkuIFNvIHRoZXNl ICdpZicgYmxvY2tzIGFyZSBuZWNlc3NhcnkgZm9yIHNvbWUgY2VydGFpbg0KY2FzZXMuDQoNCkkg cmVtZW1iZXJlZCB0aGF0IHRoZSBxdWV1ZSBwYWdlIGxpc3QgaXMgYSB0cmlja3kgZmVhdHVyZSB0 aGF0IGNhbiBiZQ0Kd3JhcGFyb3VuZCB0byBpbXByb3ZlIHRoZSB1dGlsaXR5IG9yIHBlcmZvcm1h bmNlLiBUaHVzIHRoZSBxdWV1ZQ0KcGFnZSBsaXN0IHNob3VsZCBiZSBmcmVlZCB0d2ljZSBhbmQg dGhlc2UgdHdvICdpZicgYmxvY2tzIGhlcmUgd291bGQNCnJ1biBvbmUgYnkgb25lLg0KDQpJJ2xs IHJlc3RvcmUgdGhlc2UgbW9kaWZpY2F0aW9ucyBpbiB0aGUgY29taW5nIHZlcnNpb24uIFRoYW5r cyEgDQoNCj4gDQo+ID4NCj4gPiA+Pg0KPiA+ID4+IDwuLi4+DQo+ID4gPj4NCj4gPiA+Pj4gK3Vp bnQxNl90DQo+ID4gPj4+ICtndmVfdHhfYnVyc3Qodm9pZCAqdHhfcXVldWUsIHN0cnVjdCBydGVf bWJ1ZiAqKnR4X3BrdHMsIHVpbnQxNl90DQo+ID4gPj4gbmJfcGt0cykNCj4gPiA+Pj4gK3sNCj4g PiA+Pj4gKyAgICAgICBzdHJ1Y3QgZ3ZlX3R4X3F1ZXVlICp0eHEgPSB0eF9xdWV1ZTsNCj4gPiA+ Pj4gKw0KPiA+ID4+PiArICAgICAgIGlmICh0eHEtPmlzX2dxaV9xcGwpDQo+ID4gPj4+ICsgICAg ICAgICAgICAgICByZXR1cm4gZ3ZlX3R4X2J1cnN0X3FwbCh0eF9xdWV1ZSwgdHhfcGt0cywgbmJf cGt0cyk7DQo+ID4gPj4+ICsNCj4gPiA+Pj4gKyAgICAgICByZXR1cm4gZ3ZlX3R4X2J1cnN0X3Jh KHR4X3F1ZXVlLCB0eF9wa3RzLCBuYl9wa3RzKTsNCj4gPiA+Pj4gK30NCj4gPiA+Pj4gKw0KPiA+ ID4+DQo+ID4gPj4gW2NvcHkvcGFzdGUgZnJvbSBwcmV2aW91cyB2ZXJzaW9uXQ0KPiA+ID4+DQo+ ID4gPj4gQ2FuIHRoZXJlIGJlIG1peCBvZiBxdWV1ZSB0eXBlcz8NCj4gPiA+PiBJZiBvbmx5IG9u ZSBxdWV1ZSB0eXBlIGlzIHN1cHBvcnRlZCBpbiBzcGVjaWZpYyBjb25maWcsIHBlcmhhcHMgYnVy c3QNCj4gPiA+PiBmdW5jdGlvbiBjYW4gYmUgc2V0IGR1cmluZyBjb25maWd1cmF0aW9uLCB0byBw cmV2ZW50IGlmIGNoZWNrIG9uDQo+ID4gZGF0YXBhdGguDQo+ID4gPj4NCj4gPiA+PiBUaGlzIGlz IG9wdGltaXphdGlvbiBhbmQgY2FuIGJlIGRvbmUgbGF0ZXIsIGl0IGRvZXNuJ3QgaGF2ZSB0byBi ZSBpbiB0aGUNCj4gPiA+PiBzZXQuDQo+ID4gPg0KPiA+ID4gVGhlIGV4YWN0IHF1ZXVlIHR5cGUg Y2FuIGJlIGZldGNoZWQgZnJvbSB0aGUgYmFja2VuZCB2aWEgYWRtaW5xDQo+ID4gPiBpbiBwcml2 LT5xdWV1ZV9mb3JtYXQuIFNvIHRoZXJlIHdvbid0IGJlIG1peCBvZiB0aGUgcXVldWUgdHlwZXMu DQo+ID4gPiBDdXJyZW50bHksIG9ubHkgR1FJX1FQTCBhbmQgR1FJX1JEQSBxdWV1ZSBmb3JtYXQg YXJlIHN1cHBvcnRlZA0KPiA+ID4gaW4gUE1ELiBBbHNvLCBvbmx5IEdRSV9RUEwgcXVldWUgZm9y bWF0IGlzIGluIHVzZSBvbiBHQ1Agc2luY2UNCj4gPiA+IEdRSV9SREEgaGFzbid0IGJlZW4gcmVs ZWFzZWQgaW4gcHJvZHVjdGlvbi4NCj4gPiA+IFRoaXMgcGFydCBjb2RlIHdpbGwgYmUgb3B0aW1p emVkL3JlZmFjdG9yZWQgbGF0ZXIgd2hlbiBpbnZvbHZpbmcNCj4gPiA+IHRoZSBxdWV1ZSB0eXBl IERRT19SREEuIFRoYW5rcyENCj4gPiA+DQoNCg==