From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6FC9AA0524; Fri, 8 Jan 2021 08:30:10 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5D67A140E1A; Fri, 8 Jan 2021 08:30:10 +0100 (CET) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80081.outbound.protection.outlook.com [40.107.8.81]) by mails.dpdk.org (Postfix) with ESMTP id 6C94C140E0F for ; Fri, 8 Jan 2021 08:30:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SE/DvzRfREYR50Wg7ADZ0pPVVUUSWZeAi6hLiW61mBk=; b=QUsITJreZW89jzjdc6EOtDL0w596mP0YmrJQuapGwAYH1Obzadh1xnsaWY+Vsbde1bz2wGZt8KiLSOeWhv8DW5EL2XTBz/JBE+hVNo3PqfSWNsTnGnsirMwWEP0eSnFN/r8Qv72zJhDaFGShlHMf5/YMEhK+RWJiEj3AflwghNo= Received: from MRXP264CA0010.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:15::22) by DB6PR08MB2854.eurprd08.prod.outlook.com (2603:10a6:6:1c::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Fri, 8 Jan 2021 07:30:07 +0000 Received: from VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:500:15:cafe::72) by MRXP264CA0010.outlook.office365.com (2603:10a6:500:15::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.8 via Frontend Transport; Fri, 8 Jan 2021 07:30:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT008.mail.protection.outlook.com (10.152.18.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Fri, 8 Jan 2021 07:30:06 +0000 Received: ("Tessian outbound fc5cc0046d61:v71"); Fri, 08 Jan 2021 07:30:06 +0000 X-CR-MTA-TID: 64aa7808 Received: from 05c768ab1e74.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EEC38496-E963-4259-966D-D75171C89D39.1; Fri, 08 Jan 2021 07:30:00 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 05c768ab1e74.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 08 Jan 2021 07:30:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bhpVI39nZELZJ8i/ghxGvVAecdEVfJmibctjW58tvj3j0dcZrOeMCnTetwLMbImVlJhHfm9CQdKzfz/33MFwSnF3xP9N2DvkjVGyhxQ4Clp3CQeaFkwLp/k5xGVYUKj9pwx+AFYdYBUxq0NYbEwFbfyjFmvsTsisDh6BgZLWwMYSfLLP79VWuYbsO7iah4mTPng8BJ384BqFWPS0S5SBaLgz3gbTM1FaA6mbDS5/iCU0zV9JWWDXwhn2SHdzhX7K0rsKCIt1aks5X/Q9KBvbzjCmqxAE+AgqCrwTr7Pp5BlZlWeKAw6io04+orYCSy0ilw/3krDp9tSa6+zULs1ouw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SE/DvzRfREYR50Wg7ADZ0pPVVUUSWZeAi6hLiW61mBk=; b=BHDiFNQYTRoavSR3AsGOoTYVTpxymj3P3tVpFYTQUL5uwVhSwYY77TP/EiuWyXTiQA7bPfwDlGEXEbTfU6JmWW6a2K44WX7evGzJXK67XfzfrCzeXJXRVjv8+cTUaGBwleVKeX/xauqAish1/wK2ZEsNR8G7GfkuWIjDg9l05zGI4N4f7CdjmgpYeY09oayPOzOuZ570+qANN7CPkCPoFR5frewlHhLBirimgPI1Dk1HUcvnjEYXGwLi0vU3p3FdQAAZzOGbxL7pvlNJLrBqrP9syas42eh0ddBFfE4H5NGGghwl6OCB5Q+qEMCHsZE9QguF2nrbApwHeUOgubgN6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SE/DvzRfREYR50Wg7ADZ0pPVVUUSWZeAi6hLiW61mBk=; b=QUsITJreZW89jzjdc6EOtDL0w596mP0YmrJQuapGwAYH1Obzadh1xnsaWY+Vsbde1bz2wGZt8KiLSOeWhv8DW5EL2XTBz/JBE+hVNo3PqfSWNsTnGnsirMwWEP0eSnFN/r8Qv72zJhDaFGShlHMf5/YMEhK+RWJiEj3AflwghNo= Received: from HE1PR0801MB1641.eurprd08.prod.outlook.com (2603:10a6:3:80::22) by HE1PR08MB2650.eurprd08.prod.outlook.com (2603:10a6:7:2d::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Fri, 8 Jan 2021 07:29:31 +0000 Received: from HE1PR0801MB1641.eurprd08.prod.outlook.com ([fe80::7195:1b1e:b141:556c]) by HE1PR0801MB1641.eurprd08.prod.outlook.com ([fe80::7195:1b1e:b141:556c%9]) with mapi id 15.20.3721.024; Fri, 8 Jan 2021 07:29:31 +0000 From: Joyce Kong To: Maxime Coquelin , "chenbo.xia@intel.com" , "jerinj@marvell.com" , Ruifeng Wang , Honnappa Nagarahalli CC: "dev@dpdk.org" , nd Thread-Topic: [dpdk-dev] [PATCH v1 2/4] net/virtio: add vectorized packed ring Rx NEON path Thread-Index: AQHW422AYoZi2Btuf0C6j6dePesuBqoZFuaAgALlC4CAAVyIQA== Date: Fri, 8 Jan 2021 07:29:31 +0000 Message-ID: References: <20200911120906.45995-1-joyce.kong@arm.com> <20201117100635.27690-1-joyce.kong@arm.com> <20201117100635.27690-3-joyce.kong@arm.com> <1473dd81-26aa-04ae-dd57-14ddf7880fd0@redhat.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 1358392E35510846A0DF5B1D6ECE6F44.0 x-checkrecipientchecked: true Authentication-Results-Original: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.111] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0cad3660-68c1-4cfd-6d64-08d8b3a738d5 x-ms-traffictypediagnostic: HE1PR08MB2650:|DB6PR08MB2854: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:5797;OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: btqWkpJRIvC3YHhW0VSI41B9McPF3hj8hRXjR7nhGGiZnEPTGBmvYGXFxh03I8w8utJOrRcA9+EGMAbnkYS1sfz++Dydy79+tGWMkj7o7NtHeI1JUIyGNXCyb1W4kmtczLqVCYDNsTB1RQCsjI6UiOgzNsrfwqYGpdAY1A0elWYFNBOLxvCci4YAh1UvwW6Sv3Lx+jTdwZV0/XtgapbBB5EJGfnhbPhHfFabE0PwFZxR0XS4AmhSo53yqqg7QsfzsDFt8dZzA+hWOY6bBf006o9UCjfd+AXmSP8dEu/cgcwI1jBw5OjQG+XWqrVmBCoaAAOZ6/A75uM2IO9A4eYyFm8kPBHlhY362rCkFJKAzJDP+9c/MGt5pEX0iHlZjSmPKz2j9zCIEfnQe0gTqvZ25g== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR0801MB1641.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(396003)(366004)(136003)(39860400002)(376002)(5660300002)(316002)(9686003)(2906002)(86362001)(4326008)(6506007)(53546011)(478600001)(8936002)(54906003)(66476007)(71200400001)(83380400001)(66556008)(66946007)(110136005)(64756008)(6636002)(66446008)(33656002)(7696005)(186003)(8676002)(52536014)(76116006)(55016002)(26005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?a3FwbkJHcUU2REVTVzhyZmUvL0p2SU9iTHlhVW45dXdYazRlOFZpcWV6MElK?= =?utf-8?B?dkszbE82b1Z0ZnhwUlUwVG5YbGZWL2pRb1dQSThId3FTZ0s1VGJsUUNud2x3?= =?utf-8?B?OVJsSWRGOHNlSTI3aGtyd0hSa1FQTy9KYmlUMThvM2VIQllNRENzcmltVGdO?= =?utf-8?B?VkxMSUQ3OGdnVmF4aHlqVDJEUm9FK2c0ekpSUzhwNnFvQzVlWElNMGtYOG9Q?= =?utf-8?B?NkJMaXhKb3hQeUFTY05yYkxLemsvazlHZW90bnBEWCtWYXdleW5JMXJpK1gx?= =?utf-8?B?VzhuSWRZdUQ4ZVRGRHQ5dFRQMXhocG9rZG1nWno0UHV5ZllObVpYV1V1R200?= =?utf-8?B?bFZPUllGS29HaE16MDNoVUVEaTEvaWVlSjFTeXI4QUU5OTdoZlcwSWRSZDZi?= =?utf-8?B?ZW5GQnhNV2hqQkhnd1FHNDYzODcraVBmVlNEK1d5L0tQNnVsSHUyWUhvdExG?= =?utf-8?B?MEZUQUhtaVZBMHEwdVJKRWRmV0R1MWUwTVVUMjBnay9mdUx6cjY4bGU4MlpJ?= =?utf-8?B?b2libFdyZTRLbFYyNldHWGdKakNoOG1uRHlHZTcveGlzeDVzWWpQZ2JMTTlh?= =?utf-8?B?TjdWc2VkL1gzMGJDbVlqdEl3YzlaNEFDWU1Bby8zSW1aWTdnTjBnVmh4ZXly?= =?utf-8?B?bmxUSHVrUWVib2pZOTBQODNXRlBldkRCNlZoQlhQQmdqZld5TE83eGhoS3pJ?= =?utf-8?B?VE5lZkFGMlNxMHJ6ZTNidk1EV2h5a0VPSjgyY2xyNTRPS1JqcGEyZ3RqRkJ0?= =?utf-8?B?V2FGbk45ZmpVeDdqR21oOVI0QTlyaG9Va25aeW9nRGp5OTFEdHRPVjNVUnk4?= =?utf-8?B?clpPVjAxZTI0WThMNVBqU2FjZDBPYm8vUVpOLzlVMCs0RG1RM1YrT2NvTFFx?= =?utf-8?B?bmYrSUdXaE1NVElEd1J0ZTFvaWltQ0tHVXd3TWhDUlpSdEZ4VlFQeitCR0xE?= =?utf-8?B?ZG9mWjk0cnNLVTdZaGhlVDNJZXpBQ2NOWVk1VlFJaUpwZnh0Q3B6YTlyaGlr?= =?utf-8?B?UGRQQXIvVnlhTnk5UDhTTFZLMGE2RjFQZTNlTVlROVh3TXU3akQ2amF2a1dT?= =?utf-8?B?YnJscDdwRmdQaFl3aGcxWFR1cWFqQ0NVSEdpcllEQU5PN1RYTjcxMnM4K1Rk?= =?utf-8?B?R1JkUEtaVFBZUWpna09SRk1IQk5DYTFHR3lybTQ5OTFQRTdoWG9UaCt5RHNh?= =?utf-8?B?em9yUXluRjVCY28zRk00ei9ZajVuaGN2ZUlVbVFHZmxFdGZPOHltZDkxWFdW?= =?utf-8?B?SFQxRHBBc28zbTFJNUJzRkNIdDZGRVEvZFZlenhsTmpPSG9HQTVEZmZQMG5j?= =?utf-8?Q?y7SYdybijdpic=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB2650 Original-Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: fd14c233-5a13-46d7-d971-08d8b3a723fc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: do7ulLzmSnshKdTVug7zWthX/WUWSME6GveXP/TOpeJ+vdtU3DV9c2kgxRnW/xgarshRIIXoJStGTOXiprcL1IbChYiqDi6dTbc/Mdu5bugsoiBtlwps0IVjlVEbgfmh0ljfAgjq+BrYe8h+xehOJGA8pUC8lTxGr3qenjZGu3WvYBeO89el62Js/dNms9iR1/6+PyjwNMA7wO3RH/2WtwSw5Y3hN2/7IWJHLc7n3f9AuZrny2wzAW4JRJW6tCAOgnI1gT76CNmWtjrt06n9sO3bNHlfCWaCh8AwHDkqWCnME/E8xjqu5JnmqC91pzgoZmuEN2RixT1FCxcBkZez3CpgOdaYeNykeC/1kxWvJdjnt5XErwSllHGufiwjKpA9rOJY4PMp6KW1UCXI+P/pz1CS24DGrTwyLS9Tvx/AA+i5I6+lHpBelTQFRvlERsld2TnoaQTeb6SWCe5tgkNRxRAKPlE79hekIQhHvTL6vlW1/iv4MiuabQfreWBGmjn+ X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(376002)(136003)(346002)(39860400002)(396003)(46966006)(83380400001)(47076005)(86362001)(8676002)(4326008)(2906002)(316002)(186003)(26005)(70206006)(54906003)(478600001)(110136005)(356005)(33656002)(70586007)(8936002)(336012)(81166007)(82310400003)(9686003)(34020700004)(5660300002)(6636002)(53546011)(82740400003)(7696005)(55016002)(6506007)(52536014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2021 07:30:06.5647 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cad3660-68c1-4cfd-6d64-08d8b3a738d5 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2854 Subject: Re: [dpdk-dev] [PATCH v1 2/4] net/virtio: add vectorized packed ring Rx NEON path 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 Sender: "dev" Pk9uIDEvNS8yMSAzOjI3IFBNLCBNYXhpbWUgQ29xdWVsaW4gd3JvdGU6DQo+Pg0KPj4NCj4+IE9u IDEvNS8yMSAzOjE2IFBNLCBNYXhpbWUgQ29xdWVsaW4gd3JvdGU6DQo+Pj4NCj4+Pg0KPj4+IE9u IDExLzE3LzIwIDExOjA2IEFNLCBKb3ljZSBLb25nIHdyb3RlOg0KPj4+PiBPcHRpbWl6ZSBwYWNr ZWQgcmluZyBSeCBiYXRjaCBwYXRoIHdpdGggTkVPTiBpbnN0cnVjdGlvbnMuDQo+Pj4+DQo+Pj4+ IFNpZ25lZC1vZmYtYnk6IEpveWNlIEtvbmcgPGpveWNlLmtvbmdAYXJtLmNvbT4NCj4+Pj4gUmV2 aWV3ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5nQGFybS5jb20+DQo+Pj4+IC0tLQ0K Pj4+PiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZC5oICAgICAgfCAgMTUg KysNCj4+Pj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcnh0eF9wYWNrZWRfbmVvbi5oIHwg MTUwDQo+Pj4+ICsrKysrKysrKysrKysrKysrKysNCj4+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMTY1 IGluc2VydGlvbnMoKykNCj4+Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX3J4dHhfcGFja2VkX25lb24uaA0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZC5oDQo+Pj4+IGIvZHJpdmVycy9uZXQv dmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZC5oDQo+Pj4+IGluZGV4IGIwYjFkNjNlYy4uOGY1MTk4 YWQ3IDEwMDY0NA0KPj4+PiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3J4dHhfcGFj a2VkLmgNCj4+Pj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZC5o DQo+Pj4+IEBAIC0xOSw5ICsxOSwxNiBAQA0KPj4+PiAgI2luY2x1ZGUgInZpcnRxdWV1ZS5oIg0K Pj4+Pg0KPj4+PiAgI2RlZmluZSBCWVRFX1NJWkUgOA0KPj4+PiArDQo+Pj4+ICsjaWZkZWYgQ0Nf QVZYNTEyX1NVUFBPUlQNCj4+Pj4gIC8qIGZsYWcgYml0cyBvZmZzZXQgaW4gcGFja2VkIHJpbmcg ZGVzYyBoaWdoZXIgNjRiaXRzICovICAjZGVmaW5lDQo+Pj4+IEZMQUdTX0JJVFNfT0ZGU0VUICgo b2Zmc2V0b2Yoc3RydWN0IHZyaW5nX3BhY2tlZF9kZXNjLCBmbGFncykgLSBcDQo+Pj4+ICAJb2Zm c2V0b2Yoc3RydWN0IHZyaW5nX3BhY2tlZF9kZXNjLCBsZW4pKSAqIEJZVEVfU0laRSkNCj4+Pj4g KyNlbGlmIGRlZmluZWQoUlRFX0FSQ0hfQVJNKQ0KPj4+PiArLyogZmxhZyBiaXRzIG9mZnNldCBp biBwYWNrZWQgcmluZyBkZXNjIGZyb20gSUQgKi8gI2RlZmluZQ0KPj4+PiArRkxBR1NfQklUU19P RkZTRVQgKChvZmZzZXRvZihzdHJ1Y3QgdnJpbmdfcGFja2VkX2Rlc2MsIGZsYWdzKSAtIFwNCj4+ Pj4gKwlvZmZzZXRvZihzdHJ1Y3QgdnJpbmdfcGFja2VkX2Rlc2MsIGlkKSkgKiBCWVRFX1NJWkUp ICNlbmRpZg0KPj4+Pg0KPj4+PiAgI2RlZmluZSBQQUNLRURfRkxBR1NfTUFTSyAoKDBVTEwgfA0K PlZSSU5HX1BBQ0tFRF9ERVNDX0ZfQVZBSUxfVVNFRCkgPDwgXA0KPj4+PiAgCUZMQUdTX0JJVFNf T0ZGU0VUKQ0KPj4+PiBAQCAtNDQsOCArNTEsMTYgQEANCj4+Pj4gIC8qIG5ldCBoZHIgc2hvcnQg c2l6ZSBtYXNrICovDQo+Pj4+ICAjZGVmaW5lIE5FVF9IRFJfTUFTSyAweDNGDQo+Pj4+DQo+Pj4+ ICsjaWZkZWYgUlRFX0FSQ0hfQVJNDQo+Pj4+ICsvKiBUaGUgY2FjaGUgbGluZSBzaXplIG9uIGRp ZmZlcmVudCBBcm0gcGxhdGZvcm1zIGFyZSBkaWZmZXJlbnQsIHNvDQo+Pj4+ICsgKiBwdXQgYSBm b3VyIGJhdGNoIHNpemUgaGVyZSB0byBtYXRjaCB3aXRoIHRoZSBtaW5pbXVtIGNhY2hlIGxpbmUN Cj4+Pj4gKyAqIHNpemUgYW5kIGFjY29tbW9kYXRlIE5FT04gcmVnaXN0ZXIgc2l6ZS4NCj4+Pj4g KyAqLw0KPj4+PiArI2RlZmluZSBQQUNLRURfQkFUQ0hfU0laRSA0DQo+Pj4+ICsjZWxzZQ0KPj4+ PiAgI2RlZmluZSBQQUNLRURfQkFUQ0hfU0laRSAoUlRFX0NBQ0hFX0xJTkVfU0laRSAvIFwNCj4+ Pj4gIAlzaXplb2Yoc3RydWN0IHZyaW5nX3BhY2tlZF9kZXNjKSkNCj4+Pj4gKyNlbmRpZg0KPj4+ PiAgI2RlZmluZSBQQUNLRURfQkFUQ0hfTUFTSyAoUEFDS0VEX0JBVENIX1NJWkUgLSAxKQ0KPj4+ Pg0KPj4+PiAgI2lmZGVmIFZJUlRJT19HQ0NfVU5ST0xMX1BSQUdNQQ0KPj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19yeHR4X3BhY2tlZF9uZW9uLmgNCj4+Pj4gYi9k cml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3J4dHhfcGFja2VkX25lb24uaA0KPj4+PiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPj4+PiBpbmRleCAwMDAwMDAwMDAuLmZiMWU0OTkwOQ0KPj4+PiAtLS0g L2Rldi9udWxsDQo+Pj4+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcnh0eF9wYWNr ZWRfbmVvbi5oDQo+Pj4+IEBAIC0wLDAgKzEsMTUwIEBADQo+Pj4+ICsvKiBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+Pj4+ICsgKiBDb3B5cmlnaHQoYykgMjAyMCBBcm0g Q29ycG9yYXRpb24gICovDQo+Pj4+ICsNCj4+Pj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4NCj4+Pj4g KyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4+Pj4gKyNpbmNsdWRlIDxzdGRpby5oPg0KPj4+PiArI2lu Y2x1ZGUgPHN0cmluZy5oPg0KPj4+PiArI2luY2x1ZGUgPGVycm5vLmg+DQo+Pj4+ICsNCj4+Pj4g KyNpbmNsdWRlIDxydGVfbmV0Lmg+DQo+Pj4+ICsjaW5jbHVkZSA8cnRlX3ZlY3QuaD4NCj4+Pj4g Kw0KPj4+PiArI2luY2x1ZGUgInZpcnRpb19ldGhkZXYuaCINCj4+Pj4gKyNpbmNsdWRlICJ2aXJ0 aW9fcGNpLmgiDQo+Pj4+ICsjaW5jbHVkZSAidmlydGlvX3J4dHhfcGFja2VkLmgiDQo+Pj4+ICsj aW5jbHVkZSAidmlydHF1ZXVlLmgiDQo+Pj4+ICsNCj4+Pj4gK3N0YXRpYyBpbmxpbmUgdWludDE2 X3QNCj4+Pj4gK3ZpcnRxdWV1ZV9kZXF1ZXVlX2JhdGNoX3BhY2tlZF92ZWMoc3RydWN0IHZpcnRu ZXRfcnggKnJ4dnEsDQo+Pj4+ICsJCQkJICAgc3RydWN0IHJ0ZV9tYnVmICoqcnhfcGt0cykNCj4+ Pj4gK3sNCj4+Pj4gKwlzdHJ1Y3QgdmlydHF1ZXVlICp2cSA9IHJ4dnEtPnZxOw0KPj4+PiArCXN0 cnVjdCB2aXJ0aW9faHcgKmh3ID0gdnEtPmh3Ow0KPj4+PiArCXVpbnQxNl90IGhlYWRfc2l6ZSA9 IGh3LT52dG5ldF9oZHJfc2l6ZTsNCj4+Pj4gKwl1aW50MTZfdCBpZCA9IHZxLT52cV91c2VkX2Nv bnNfaWR4Ow0KPj4+PiArCXN0cnVjdCB2cmluZ19wYWNrZWRfZGVzYyAqcF9kZXNjOw0KPj4+PiAr CXVpbnQxNl90IGk7DQo+Pj4+ICsNCj4+Pj4gKwlpZiAoaWQgJiBQQUNLRURfQkFUQ0hfTUFTSykN Cj4+Pj4gKwkJcmV0dXJuIC0xOw0KPj4+PiArDQo+Pj4+ICsJaWYgKHVubGlrZWx5KChpZCArIFBB Q0tFRF9CQVRDSF9TSVpFKSA+IHZxLT52cV9uZW50cmllcykpDQo+Pj4+ICsJCXJldHVybiAtMTsN Cj4+Pg0KPj4+IFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhbiB1bnNpZ25lZCBzaG9ydCwgSSB0aGlu ayB5b3Ugc2hvdWxkIHJldHVybiAwDQo+Pj4gaGVyZSBzaW5jZSBpdCBmYWlsZWQgdG8gZGVxdWV1 ZSBwYWNrZXRzLg0KPj4+DQo+Pj4+ICsJLyogTWFwIHBhY2tlZCBkZXNjcmlwdG9yIHRvIG1idWYg ZmllbGRzLiAqLw0KPj4+PiArCXVpbnQ4eDE2X3Qgc2h1Zl9tc2sxID0gew0KPj4+PiArCQkweEZG LCAweEZGLCAweEZGLCAweEZGLCAvKiBwa3RfdHlwZSBzZXQgYXMgdW5rbm93biAqLw0KPj4+PiAr CQkwLCAxLAkJCS8qIG9jdGV0IDF+MCwgbG93IDE2IGJpdHMgcGt0X2xlbiAqLw0KPj4+PiArCQkw eEZGLCAweEZGLAkJLyogc2tpcCBoaWdoIDE2IGJpdHMgb2YgcGt0X2xlbiwgemVybyBvdXQNCj4q Lw0KPj4+PiArCQkwLCAxLAkJCS8qIG9jdGV0IDF+MCwgMTYgYml0cyBkYXRhX2xlbiAqLw0KPj4+ PiArCQkweEZGLCAweEZGLAkJLyogdmxhbiB0Y2kgc2V0IGFzIHVua25vd24gKi8NCj4+Pj4gKwkJ MHhGRiwgMHhGRiwgMHhGRiwgMHhGRg0KPj4+PiArCX07DQo+Pj4+ICsNCj4+Pj4gKwl1aW50OHgx Nl90IHNodWZfbXNrMiA9IHsNCj4+Pj4gKwkJMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgLyogcGt0 X3R5cGUgc2V0IGFzIHVua25vd24gKi8NCj4+Pj4gKwkJOCwgOSwJCQkvKiBvY3RldCA5fjgsIGxv dyAxNiBiaXRzIHBrdF9sZW4gKi8NCj4+Pj4gKwkJMHhGRiwgMHhGRiwJCS8qIHNraXAgaGlnaCAx NiBiaXRzIG9mIHBrdF9sZW4sIHplcm8gb3V0DQo+Ki8NCj4+Pj4gKwkJOCwgOSwJCQkvKiBvY3Rl dCA5fjgsIDE2IGJpdHMgZGF0YV9sZW4gKi8NCj4+Pj4gKwkJMHhGRiwgMHhGRiwJCS8qIHZsYW4g dGNpIHNldCBhcyB1bmtub3duICovDQo+Pj4+ICsJCTB4RkYsIDB4RkYsIDB4RkYsIDB4RkYNCj4+ Pj4gKwl9Ow0KPj4+PiArDQo+Pj4+ICsJLyogU3VidHJhY3QgdGhlIGhlYWRlciBsZW5ndGguICov DQo+Pj4+ICsJdWludDE2eDhfdCBsZW5fYWRqdXN0ID0gew0KPj4+PiArCQkwLCAwLAkJLyogaWdu b3JlIHBrdF90eXBlIGZpZWxkICovDQo+Pj4+ICsJCWhlYWRfc2l6ZSwJLyogc3ViIGhlYWRfc2l6 ZSBvbiBwa3RfbGVuICovDQo+Pj4+ICsJCTAsCQkvKiBpZ25vcmUgaGlnaCAxNiBiaXRzIG9mIHBr dF9sZW4gKi8NCj4+Pj4gKwkJaGVhZF9zaXplLAkvKiBzdWIgaGVhZF9zaXplIG9uIGRhdGFfbGVu ICovDQo+Pj4+ICsJCTAsIDAsIDAJCS8qIGlnbm9yZSBub24tbGVuZ3RoIGZpZWxkcyAqLw0KPj4+ PiArCX07DQo+Pj4+ICsNCj4+Pj4gKwl1aW50NjR4Ml90IGRlc2NbUEFDS0VEX0JBVENIX1NJWkUg LyAyXTsNCj4+Pj4gKwl1aW50NjR4MngyX3QgbWJwW1BBQ0tFRF9CQVRDSF9TSVpFIC8gMl07DQo+ Pj4+ICsJdWludDY0eDJfdCBwa3RfbWJbUEFDS0VEX0JBVENIX1NJWkVdOw0KPj4+PiArDQo+Pj4+ ICsJcF9kZXNjID0gJnZxLT52cV9wYWNrZWQucmluZy5kZXNjW2lkXTsNCj4+Pj4gKwkvKiBMb2Fk IGhpZ2ggNjQgYml0cyBvZiBwYWNrZWQgZGVzY3JpcHRvciAwLDEuICovDQo+Pj4+ICsJZGVzY1sw XSA9IHZsZDJxX3U2NCgodWludDY0X3QgKikocF9kZXNjKSkudmFsWzFdOw0KPj4+PiArCS8qIExv YWQgaGlnaCA2NCBiaXRzIG9mIHBhY2tlZCBkZXNjcmlwdG9yIDIsMy4gKi8NCj4+Pj4gKwlkZXNj WzFdID0gdmxkMnFfdTY0KCh1aW50NjRfdCAqKShwX2Rlc2MgKyAyKSkudmFsWzFdOw0KPj4+PiAr DQo+Pj4+ICsJLyogT25seSBjYXJlIGF2YWlsL3VzZWQgYml0cy4gKi8NCj4+Pj4gKwl1aW50MzJ4 NF90IHZfbWFzayA9IHZkdXBxX25fdTMyKFBBQ0tFRF9GTEFHU19NQVNLKTsNCj4+Pj4gKwkvKiBF eHRyYWN0IGhpZ2ggMzIgYml0cyBvZiBwYWNrZWQgZGVzY3JpcHRvciAoaWQsIGZsYWdzKS4gKi8N Cj4+Pj4gKwl1aW50MzJ4NF90IHZfZGVzYyA9IHZ1enAycV91MzIodnJlaW50ZXJwcmV0cV91MzJf dTY0KGRlc2NbMF0pLA0KPj4+PiArCQkJCXZyZWludGVycHJldHFfdTMyX3U2NChkZXNjWzFdKSk7 DQo+Pj4+ICsJdWludDMyeDRfdCB2X2ZsYWcgPSB2YW5kcV91MzIodl9kZXNjLCB2X21hc2spOw0K Pj4+PiArDQo+Pj4+ICsJdWludDMyeDRfdCB2X3VzZWRfZmxhZyA9IHZkdXBxX25fdTMyKDApOw0K Pj4+PiArCWlmICh2cS0+dnFfcGFja2VkLnVzZWRfd3JhcF9jb3VudGVyKQ0KPj4+PiArCQl2X3Vz ZWRfZmxhZyA9IHZkdXBxX25fdTMyKFBBQ0tFRF9GTEFHU19NQVNLKTsNCj4+Pj4gKw0KPj4+PiAr CXBvbHkxMjhfdCBkZXNjX3N0YXRzID0gdnJlaW50ZXJwcmV0cV9wMTI4X3UzMih+dmNlcXFfdTMy KHZfZmxhZywNCj4+Pj4gK3ZfdXNlZF9mbGFnKSk7DQo+Pj4+ICsNCj4+Pj4gKwkvKiBDaGVjayBh bGwgZGVzY3MgYXJlIHVzZWQuICovDQo+Pj4+ICsJaWYgKGRlc2Nfc3RhdHMpDQo+Pj4+ICsJCXJl dHVybiAtMTsNCj4+Pg0KPj4+IFNhbWUgaGVyZS4gWW91IHNob3VsZCByZXR1cm4gMCBoZXJlIGFz IHRoZSBxdWV1ZSBpcyBmdWxsLg0KPj4NCj4+IEp1c3QgbG9va2VkIGFnYWluIGF0IHRoZSBjb2Rl IGFuZCBhdCBBVlggaW1wbGVtZW50YXRpb24uDQo+PiBJdCBzaG91bGQgbm90IHJldHVybiAwIGhl cmUsIGJ1dCBhbnkgcG9zaXRpdmUgdmFsdWUuDQo+Pg0KPj4gTWF5YmUgdGhlIGNsZWFuZXN0IHdh eSB3b3VsZCBjaGFuZ2UgdGhlIGZ1bmN0aW9uIHByb3RvdHlwZSB0byBpbnQuDQo+PiAwOiBzdWNj ZXNzDQo+PiAtMTogZmFpbHVyZQ0KPg0KPg0KPkpveWNlLCBhcmUgeW91IGZpbmUgaWYgSSBkbyB0 aGUgY2FuZ2Ugd2hpbGUgYXBwbHlpbmc/DQo+SSBoYXZlIGEgYmlnIHNlcmllcyB0aGF0IHdpbGwg Y29uZmxpY3RzIHdpdGggeW91ciBwYXRjaCBzZXQsIHNvIEknZCBsaWtlIHRvIGhhdmUNCj55b3Vy cyBtZXJnZWQgQVNBUCBzbyBJIGNhbiBzdGFydCB0aGUgcmViYXNlLg0KPg0KPlRoYW5rcywNCj5N YXhpbWUNCj4NCg0KTWF4aW1lLCBJdCdzIG9rIGlmIHlvdSB3b3VsZCBkbyB0aGUgY2hhbmdlIHdo aWxlIGFwcGx5aW5nLg0KDQpUaGFua3MsDQpKb3ljZQ0KIA0KPj4+PiArDQo+Pj4+ICsJLyogTG9h ZCAyIG1idWYgcG9pbnRlcnMgcGVyIHRpbWUuICovDQo+Pj4+ICsJbWJwWzBdID0gdmxkMnFfdTY0 KCh1aW50NjRfdCAqKSZ2cS0+dnFfZGVzY3hbaWRdKTsNCj4+Pj4gKwl2c3QxcV91NjQoKHVpbnQ2 NF90ICopJnJ4X3BrdHNbMF0sIG1icFswXS52YWxbMF0pOw0KPj4+PiArDQo+Pj4+ICsJbWJwWzFd ID0gdmxkMnFfdTY0KCh1aW50NjRfdCAqKSZ2cS0+dnFfZGVzY3hbaWQgKyAyXSk7DQo+Pj4+ICsJ dnN0MXFfdTY0KCh1aW50NjRfdCAqKSZyeF9wa3RzWzJdLCBtYnBbMV0udmFsWzBdKTsNCj4+Pj4g Kw0KPj4+PiArCS8qKg0KPj4+PiArCSAqICBVcGRhdGUgZGF0YSBsZW5ndGggYW5kIHBhY2tldCBs ZW5ndGggZm9yIGRlc2NyaXB0b3IuDQo+Pj4+ICsJICogIHN0cnVjdHVyZSBvZiBwa3RfbWI6DQo+ Pj4+ICsJICogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+ICsJICogIHwzMiBiaXRzIHBrdF90eXBlfDMyIGJp dHMgcGt0X2xlbnwxNiBiaXRzIGRhdGFfbGVufDE2IGJpdHMgdmxhbl90Y2l8DQo+Pj4+ICsJICog IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+Pj4+ICsJICovDQo+Pj4+ICsJcGt0X21iWzBdID0gdnJlaW50ZXJwcmV0 cV91NjRfdTgodnF0YmwxcV91OCgNCj4+Pj4gKwkJCXZyZWludGVycHJldHFfdThfdTY0KGRlc2Nb MF0pLCBzaHVmX21zazEpKTsNCj4+Pj4gKwlwa3RfbWJbMV0gPSB2cmVpbnRlcnByZXRxX3U2NF91 OCh2cXRibDFxX3U4KA0KPj4+PiArCQkJdnJlaW50ZXJwcmV0cV91OF91NjQoZGVzY1swXSksIHNo dWZfbXNrMikpOw0KPj4+PiArCXBrdF9tYlsyXSA9IHZyZWludGVycHJldHFfdTY0X3U4KHZxdGJs MXFfdTgoDQo+Pj4+ICsJCQl2cmVpbnRlcnByZXRxX3U4X3U2NChkZXNjWzFdKSwgc2h1Zl9tc2sx KSknDQo+Pj4+ICsJcGt0X21iWzNdID0gdnJlaW50ZXJwcmV0cV91NjRfdTgodnF0YmwxcV91OCgN Cj4+Pj4gKwkJCXZyZWludGVycHJldHFfdThfdTY0KGRlc2NbMV0pLCBzaHVmX21zazIpKTsNCj4+ Pj4gKw0KPj4+PiArCXBrdF9tYlswXSA9IHZyZWludGVycHJldHFfdTY0X3UxNih2c3VicV91MTYo DQo+Pj4+ICsJCQl2cmVpbnRlcnByZXRxX3UxNl91NjQocGt0X21iWzBdKSwgbGVuX2FkanVzdCkp Ow0KPj4+PiArCXBrdF9tYlsxXSA9IHZyZWludGVycHJldHFfdTY0X3UxNih2c3VicV91MTYoDQo+ Pj4+ICsJCQl2cmVpbnRlcnByZXRxX3UxNl91NjQocGt0X21iWzFdKSwgbGVuX2FkanVzdCkpOw0K Pj4+PiArCXBrdF9tYlsyXSA9IHZyZWludGVycHJldHFfdTY0X3UxNih2c3VicV91MTYoDQo+Pj4+ ICsJCQl2cmVpbnRlcnByZXRxX3UxNl91NjQocGt0X21iWzJdKSwgbGVuX2FkanVzdCkpOw0KPj4+ PiArCXBrdF9tYlszXSA9IHZyZWludGVycHJldHFfdTY0X3UxNih2c3VicV91MTYoDQo+Pj4+ICsJ CQl2cmVpbnRlcnByZXRxX3UxNl91NjQocGt0X21iWzNdKSwgbGVuX2FkanVzdCkpOw0KPj4+PiAr DQo+Pj4+ICsJdnN0MXFfdTY0KCh2b2lkICopJnJ4X3BrdHNbMF0tPnJ4X2Rlc2NyaXB0b3JfZmll bGRzMSwgcGt0X21iWzBdKTsNCj4+Pj4gKwl2c3QxcV91NjQoKHZvaWQgKikmcnhfcGt0c1sxXS0+ cnhfZGVzY3JpcHRvcl9maWVsZHMxLCBwa3RfbWJbMV0pOw0KPj4+PiArCXZzdDFxX3U2NCgodm9p ZCAqKSZyeF9wa3RzWzJdLT5yeF9kZXNjcmlwdG9yX2ZpZWxkczEsIHBrdF9tYlsyXSk7DQo+Pj4+ ICsJdnN0MXFfdTY0KCh2b2lkICopJnJ4X3BrdHNbM10tPnJ4X2Rlc2NyaXB0b3JfZmllbGRzMSwg cGt0X21iWzNdKTsNCj4+Pj4gKw0KPj4+PiArCWlmIChody0+aGFzX3J4X29mZmxvYWQpIHsNCj4+ Pj4gKwkJdmlydGlvX2Zvcl9lYWNoX3RyeV91bnJvbGwoaSwgMCwgUEFDS0VEX0JBVENIX1NJWkUp IHsNCj4+Pj4gKwkJCWNoYXIgKmFkZHIgPSAoY2hhciAqKXJ4X3BrdHNbaV0tPmJ1Zl9hZGRyICsN Cj4+Pj4gKwkJCQlSVEVfUEtUTUJVRl9IRUFEUk9PTSAtIGhlYWRfc2l6ZTsNCj4+Pj4gKwkJCXZp cnRpb192ZWNfcnhfb2ZmbG9hZChyeF9wa3RzW2ldLA0KPj4+PiArCQkJCQkoc3RydWN0IHZpcnRp b19uZXRfaGRyICopYWRkcik7DQo+Pj4+ICsJCX0NCj4+Pj4gKwl9DQo+Pj4+ICsNCj4+Pj4gKwl2 aXJ0aW9fdXBkYXRlX2JhdGNoX3N0YXRzKCZyeHZxLT5zdGF0cywgcnhfcGt0c1swXS0+cGt0X2xl biwNCj4+Pj4gKwkJCXJ4X3BrdHNbMV0tPnBrdF9sZW4sIHJ4X3BrdHNbMl0tPnBrdF9sZW4sDQo+ Pj4+ICsJCQlyeF9wa3RzWzNdLT5wa3RfbGVuKTsNCj4+Pj4gKw0KPj4+PiArCXZxLT52cV9mcmVl X2NudCArPSBQQUNLRURfQkFUQ0hfU0laRTsNCj4+Pj4gKw0KPj4+PiArCXZxLT52cV91c2VkX2Nv bnNfaWR4ICs9IFBBQ0tFRF9CQVRDSF9TSVpFOw0KPj4+PiArCWlmICh2cS0+dnFfdXNlZF9jb25z X2lkeCA+PSB2cS0+dnFfbmVudHJpZXMpIHsNCj4+Pj4gKwkJdnEtPnZxX3VzZWRfY29uc19pZHgg LT0gdnEtPnZxX25lbnRyaWVzOw0KPj4+PiArCQl2cS0+dnFfcGFja2VkLnVzZWRfd3JhcF9jb3Vu dGVyIF49IDE7DQo+Pj4+ICsJfQ0KPj4+PiArDQo+Pj4+ICsJcmV0dXJuIDA7DQo+Pj4+ICt9DQo+ Pj4+DQo+Pj4NCg0K