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 5236DA0C40; Mon, 28 Jun 2021 04:29:07 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 29E8F40692; Mon, 28 Jun 2021 04:29:07 +0200 (CEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30052.outbound.protection.outlook.com [40.107.3.52]) by mails.dpdk.org (Postfix) with ESMTP id 0E9474068A for ; Mon, 28 Jun 2021 04:29:06 +0200 (CEST) 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=YJWHOC/HF3iqe8VnYrw7u7vnSH3HYGYMJDOd7/ak20A=; b=y461kfclJ+VzBoZeIKm+JuK6uJVFFGESv0u0kj39KQZi8e1PUS4Hmmubwj98LWdcumuU0pzzca1Bjx0WKpqtF/qc4Ka0im0PMqO/wMacP3kyFNEIxChcRGKNoID4bv3zx1wbNXPz8c6cmB8igVUMbqan1einJS5HSVXRT5+hTkY= Received: from DB6P18901CA0004.EURP189.PROD.OUTLOOK.COM (2603:10a6:4:16::14) by DB7PR08MB3756.eurprd08.prod.outlook.com (2603:10a6:10:79::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.19; Mon, 28 Jun 2021 02:29:04 +0000 Received: from DB5EUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:16:cafe::22) by DB6P18901CA0004.outlook.office365.com (2603:10a6:4:16::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.19 via Frontend Transport; Mon, 28 Jun 2021 02:29:04 +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 DB5EUR03FT008.mail.protection.outlook.com (10.152.20.98) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18 via Frontend Transport; Mon, 28 Jun 2021 02:29:04 +0000 Received: ("Tessian outbound 507383c3c879:v97"); Mon, 28 Jun 2021 02:29:04 +0000 X-CR-MTA-TID: 64aa7808 Received: from f6ffbeb9b11a.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C3F768DF-739C-46C6-AE8B-BEBF0E684807.1; Mon, 28 Jun 2021 02:28:57 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f6ffbeb9b11a.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 28 Jun 2021 02:28:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZE7mBycQHWr6aVC0rPusUQeNcUT9G59bLlPENB3OuGD7GY0QkbKUvtPcgBjyRaIA0omhoe7GBsaLOT1SIlGaNn/mIDFjvnH9lmIpIrylFb2Qo2OtSGWkSlNQgGzy0isjdiM6gJO0jjFzGjdkTy1v0Q5cBvuJCpPR8jLhe8+TQxU+zaGNYyPJTjlOuKIGqb1jTCtRMpbGC5CNcX/DduacgI/gcWpEyJ1AKFe6HAMDfmojQYEg6bxvpkV1cHQ0AjOQ4FrP4g0aQ4VvnYEBy2uWgMhXDfion1nOOYhVGNnP0nuA7hTPyKrtWqQhG+BrNEVMkSBhcf+WdbzoS5pjgABCXQ== 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=YJWHOC/HF3iqe8VnYrw7u7vnSH3HYGYMJDOd7/ak20A=; b=cIwye247LNm3PBn2Jde7oyLQrAOdHJDMRiQQSs1jWP/WQz7RNNgGFpZCPu5uKQ7qy/VLBIef6o6KRbokzJoJseWncOhMXLpxGASimt5eR3xc9TmcpbS+oSroGtskFVAJBqooUbeDkrzr/rWIe6LKqfoV+PU4/dH1iDGpH83JChr9lYBTWACIM1sfU83j6W6zORQAA92vedOvcAkrV8V6O1ktA7WnfSOTlfNJy3Lif//+CzJ5+39fHlxoVHY634sYv/TuacuvlF2zuleLggFBpGt2fgh/GeSeTm2tZq5xtNcpagkGSZYutdtGQG9AvXRB1enXzDZ5X3WjP/Nyliq08Q== 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=YJWHOC/HF3iqe8VnYrw7u7vnSH3HYGYMJDOd7/ak20A=; b=y461kfclJ+VzBoZeIKm+JuK6uJVFFGESv0u0kj39KQZi8e1PUS4Hmmubwj98LWdcumuU0pzzca1Bjx0WKpqtF/qc4Ka0im0PMqO/wMacP3kyFNEIxChcRGKNoID4bv3zx1wbNXPz8c6cmB8igVUMbqan1einJS5HSVXRT5+hTkY= Received: from AM9PR08MB6915.eurprd08.prod.outlook.com (2603:10a6:20b:30f::18) by AM9PR08MB6290.eurprd08.prod.outlook.com (2603:10a6:20b:2d5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.19; Mon, 28 Jun 2021 02:28:55 +0000 Received: from AM9PR08MB6915.eurprd08.prod.outlook.com ([fe80::1ce:b726:b029:c2ce]) by AM9PR08MB6915.eurprd08.prod.outlook.com ([fe80::1ce:b726:b029:c2ce%8]) with mapi id 15.20.4264.026; Mon, 28 Jun 2021 02:28:55 +0000 From: Feifei Wang To: "Xing, Beilei" CC: "dev@dpdk.org" , nd , Ruifeng Wang , nd , nd , nd Thread-Topic: [PATCH v1 1/2] net/i40e: improve performance for scalar Tx Thread-Index: AQHXUtC9sLi23W6NB02iCDtGDqMvZqsftDoAgAAqsdCAABa5cIABYA6AgANPWjCABD+MgIAAACcw Date: Mon, 28 Jun 2021 02:28:55 +0000 Message-ID: References: <20210527081714.1367611-1-feifei.wang2@arm.com> <20210527081714.1367611-2-feifei.wang2@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: F8B43D3B05F1F647AB62B6B1602841EA.0 x-checkrecipientchecked: true Authentication-Results-Original: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.113] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: f1b72947-7744-4554-1e24-08d939dc7f4e x-ms-traffictypediagnostic: AM9PR08MB6290:|DB7PR08MB3756: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: b686+6pW275ID+XQvBrL1vm+nTtM6cXuDqHB17ruva/yvKN+EKzWEjRrzM+J80pe3oNQEIHPgMjUqF/wDZZ45zVzGOe70CUwPCGEURrH6MczlNmzw6ZunkB8Gbgl7nKG9nZwH5DG762zVHyG+/EzxMszPvDq4q178rkfcAFX05iDT1LoWTRCaEorPTChcY7MHoQpxyxiSQTpRaHbTJ5AN5r0slRH4Aa/Y6wIYAt/hIYbyG4KxfLSQe+30NskQP1b1T/+a1r+UtheH+A2basw0W/A3vILRo90N1XUlNKegC/g6M86Z765AH94GnJTPl+HYykaGr7w72FSEgsD45DY6Bczd4izQ8PyxXqr2XjwO47jLHJElnEbjnsf+LU/Wrk5RQGeUlpYtPculnuhHzy01bOzZzJaiPvJdvcoA1SoXgUJkRq0sd9A3+/YrGv7E+iCuCKeUx6OQuUGyWAmo5H4XfpztT28u+fgJUHap4+iwByaTlEYNTyuwiK2/quOo/2Y7FUe+d1UB0MeCpO9J7EAww0kG4sdbnOTt113w5+XqCD4+NN5Rb/Eq5Qb2RR0p7mtlFWVqxpzd0YmOQQi8uM+4yVjWwMwZ7qwqVOyT9XA2rc= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6915.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(136003)(346002)(376002)(366004)(396003)(71200400001)(33656002)(83380400001)(9686003)(54906003)(26005)(52536014)(4326008)(53546011)(6506007)(6916009)(86362001)(66556008)(5660300002)(66476007)(64756008)(66946007)(316002)(2906002)(224303003)(7696005)(55016002)(186003)(66446008)(478600001)(76116006)(38100700002)(8936002)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OVhKTTlRS0pvQ254cVFxL0E4cXlqa3VNZGJkOWRldjR1TGZLSXp6N0RwTHhn?= =?utf-8?B?OXlQLzE5NWtlT0s5L2l4Rzk4NlNYVFFHa1FkTEFHUHNBbFF4TWNxNk15eXZR?= =?utf-8?B?cWU5dGVaSDdveENvQVhSK1YrcGVobnUvN3R1bWFkZGpBckVtTGgwT1FOZXRq?= =?utf-8?B?NGE5Q0orMFZaQXU4UkpNdERFdjRDTTk1dnR6Z2t4VGJuV0o4QW16MlRSajB1?= =?utf-8?B?RlBZcU40NUdLbUdPRllzb29wSGtra3RiUFdnRXM5U0RhMzBCYVFKanlxRFph?= =?utf-8?B?bEtXakVReXBBeDYrWWgvVGVoVVNHRkdzUEIrK3gxZE9lSVlIc2tCcUZ5VTQ1?= =?utf-8?B?WlNCbk8vUXJscUFIaDVMcXB2NDZ5bG5BT280MWdFN1IybWZacEJYeUJHb0Vq?= =?utf-8?B?YkRCdldVYXNpUW1zNDBRd2doSVlFQ09xYjBXa2NnbG1yYjgzYjZGMG1zZldm?= =?utf-8?B?ekJZdldWZzZtSVBKclN5VjdQZDd2dFRsOWEzRFhTVDFBbHlqNTlzZE92M2Uw?= =?utf-8?B?RmlYcDlCU0ZNRFlYSFgveklXYkV4RUw3SVJ3QnBJYTM2bE13MTE1enFzN00v?= =?utf-8?B?TWQzcDBzWVRPS0VwT2huaG9XUFdUUWNwdWVnWGtEaUNKS2JSSWt1emZ2aldK?= =?utf-8?B?RXlhYUlKTTZFSlowTHJuZDhIQ0pVQnd0aFJ6cWVNdGMxdlFqNnFCY2gydWNo?= =?utf-8?B?UWhMbW1GUlBaL0FURnNXT0gxT0dtM3hhMkRXalBrZ0pmTC95YXdhY29pUUJu?= =?utf-8?B?Mk1mZkg2bWNCaldOUm1BekpFNXl6MjAxZC9WNjlMb2RiaFBSWmViNVRpSEhk?= =?utf-8?B?MHhLdVdhdGdpeVQ2clNnZWZkNXhoZHpldEp0am1yOHZuaXZlSWVCY0RRV05U?= =?utf-8?B?dndySC96eXZMcWJ5aE5DSU42VEpyeUlXV3M0aGJkVTB6dVhWZDE0T3NIbVEr?= =?utf-8?B?aHZsdzlIUXQzeEVKQjRNcWtVSUVQZ1pEUGNZcHNlZi92M01rQ29KU3F1Q0pD?= =?utf-8?B?SCtpYTBOMVkrd1FQbTN3Y1E0UldIZk5QZ0huck90ZE1Nc29rajlBU2VKb1o3?= =?utf-8?B?RXBnWnVCbTFuSDlVc3hzemJlZmgwL2lIaEx3NU5VcnVHTExSRU1JczdUQkVS?= =?utf-8?B?NVduMUl3REpOQ3ZIdHhBdGNFK253Y2Fyc2tObllGWHlGNGJxQTV6cE9FUkZk?= =?utf-8?B?NVUvakpvYS9mZXA1ZUhPeFcvbklHWnZUQWtoeFBtZklZWnFNK2JZelh6b1l1?= =?utf-8?B?NE9QSm1xVStYc2RIWmwrZEMvSHh4eFIzUVJFTHI5VU11STBXeFNXV2QrVDdi?= =?utf-8?B?MlV3djRWdGRSbVloZDdyeHhIeW91Q1U1cUdQVE5ySmtoa2lhT0pKa1hQR1Rs?= =?utf-8?B?cmUzcnU0VFZpMDhKVjIyRE9sYkdUUlk5RlVSU09PKzREMjNXNDhINndkcUNo?= =?utf-8?B?cFJUQnIrMUxQZlpnS1hyc0xUdTdCS0NHQm1DQThBbWRVNGovOTlGQ1JkbDVL?= =?utf-8?B?M1V3bzJHQXJWalluYytyOG5YejBEaEVNVGh2NlBvS09PWXRtSTdGczY0THls?= =?utf-8?B?VVgyVWJEcnR4V3cvTUNRLzJDWkxlVHBrbXo2eXJVZlRZeDlXSTJhQThkbDNs?= =?utf-8?B?Qk5wQTh4MXdKYnpnM2hKMWY3dG9wZ3dHZWVYVjN5dmZYUHI1OEZZWGJYVXRh?= =?utf-8?B?cU9Qdy9UbDAwM2FRMHkwZVhaOEtzWTduQ2xFS2NpWXU3eldDZWdHMm5HQ1Ev?= =?utf-8?Q?84/qbMUzeHmyPIFxWueo+RpwL3F9UKgh4dKyHO8?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6290 Original-Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 0232a6b0-c8a8-4ef5-2367-08d939dc7a74 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: j8Fr7mffGnjH5NLndCNDM051wgeIZ38xiAaRYVlIoVD59MYdpcAoRQsHENnKNNU5TvocYQzaTpgGwwMvAekA+r01rHTZIWEqw7h/K3dhbOXICEHu+9/rZMv+LjnNLtj4XuTE55kVgzRL2jMXw7fYS6gGrFHvEttQF26dR83S6tnOxpCa8sf6E1TqdmHKPHbCGGXy8/WFS707HHyYMxRhHhCaA7teGL/AkS8I+07lunur2uEJAEbEnrcecX/i685oDMw5QklB7b7n/MUbaVzGTBzKI+k4Y1fAYzSu6j9chQ1Mp8If/BlFskt3DH6vfCpJYCDk9gIANvkThx/rY7qJ2xBzVOn32eOGPdB+URkSZPpEF9x69n1MLbBaIaxh6zBmVfukM5eUcON58LKEzGwwjZRgRMBPurjVWULQOsmdiMLCDqeXrFZmeiVlxpl1QLV4xCrZ4m8hQW2Wo8L3TwFGLCt60nTog+WX6BKKYpTx5SONHnquXS1hZ2EsVdjsc7lo8sXiqBzVRlmSQEw6bwTMVzKto/j/qE6Ln7xzAFle+5NCZkXdUyy2Hnp8J1GlitCeBdkGyXx3tGz0+RbdPcWyFXxZL+q/7Db1bwz3YpvSFgvyKCNBxxiSLGMc5SPG/dn/6VzlRueeTNH2iTNQkXEreA== 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)(136003)(376002)(346002)(39850400004)(396003)(36840700001)(46966006)(33656002)(83380400001)(9686003)(54906003)(26005)(52536014)(4326008)(6506007)(47076005)(53546011)(36860700001)(5660300002)(82740400003)(86362001)(316002)(70206006)(70586007)(82310400003)(2906002)(224303003)(336012)(81166007)(7696005)(55016002)(186003)(8936002)(478600001)(356005)(6862004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2021 02:29:04.0970 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f1b72947-7744-4554-1e24-08d939dc7f4e 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: DB5EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3756 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjEgMS8yXSBuZXQvaTQw?= =?utf-8?q?e=3A_improve_performance_for_scalar_Tx?= 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" DQo+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4g5Y+R5Lu25Lq6OiBYaW5nLCBCZWlsZWkgPGJl aWxlaS54aW5nQGludGVsLmNvbT4NCj4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0NuaciDI45pelIDEw OjI3DQo+IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPg0KPiDm ioTpgIE6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBSdWlmZW5nIFdhbmcNCj4gPFJ1 aWZlbmcuV2FuZ0Bhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4g 5Li76aKYOiBSRTogW1BBVENIIHYxIDEvMl0gbmV0L2k0MGU6IGltcHJvdmUgcGVyZm9ybWFuY2Ug Zm9yIHNjYWxhciBUeA0KPiANCj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gRnJvbTogRmVpZmVpIFdhbmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPg0KPiA+IFNlbnQ6 IEZyaWRheSwgSnVuZSAyNSwgMjAyMSA1OjQwIFBNDQo+ID4gVG86IFhpbmcsIEJlaWxlaSA8YmVp bGVpLnhpbmdAaW50ZWwuY29tPg0KPiA+IENjOiBkZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29t PjsgUnVpZmVuZyBXYW5nDQo+ID4gPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgbmQgPG5kQGFybS5j b20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiBTdWJqZWN0OiDlm57lpI06IFtQQVRDSCB2MSAxLzJd IG5ldC9pNDBlOiBpbXByb3ZlIHBlcmZvcm1hbmNlIGZvciBzY2FsYXINCj4gPiBUeA0KPiA+DQo+ ID4gPHNuaXA+DQo+ID4NCj4gPiA+ID4gaW50IG4gPSB0eHEtPnR4X3JzX3RocmVzaDsNCj4gPiA+ ID4gIGludDMyX3QgaSA9IDAsIGogPSAwOw0KPiA+ID4gPiBjb25zdCBpbnQzMl90IGsgPSBSVEVf QUxJR05fRkxPT1IobiwNCj4gUlRFX0k0MEVfVFhfTUFYX0ZSRUVfQlVGX1NaKTsNCj4gPiA+ID4g Y29uc3QgaW50MzJfdCBtID0gbiAlIFJURV9JNDBFX1RYX01BWF9GUkVFX0JVRl9TWjsgc3RydWN0 DQo+IHJ0ZV9tYnVmDQo+ID4gPiA+ICpmcmVlW1JURV9JNDBFX1RYX01BWF9GUkVFX0JVRl9TWl07 DQo+ID4gPiA+DQo+ID4gPiA+IEZvciBGQVNUX0ZSRUVfTU9ERToNCj4gPiA+ID4NCj4gPiA+ID4g aWYgKGspIHsNCj4gPiA+ID4gIAlmb3IgKGogPSAwOyBqICE9IGsgLSBSVEVfSTQwRV9UWF9NQVhf RlJFRV9CVUZfU1o7DQo+ID4gPiA+ICAJCQlqICs9IFJURV9JNDBFX1RYX01BWF9GUkVFX0JVRl9T Wikgew0KPiA+ID4gPiAJCWZvciAoaSA9IDA7IGkgPFJURV9JNDBFX1RYX01BWF9GUkVFX0JVRl9T WjsgKytpLCArK3R4ZXApIHsNCj4gPiA+ID4gCQkJZnJlZVtpXSA9IHR4ZXAtPm1idWY7DQo+ID4g PiA+IAkJCXR4ZXAtPm1idWYgPSBOVUxMOw0KPiA+ID4gPiAJCX0NCj4gPiA+ID4gIAkJcnRlX21l bXBvb2xfcHV0X2J1bGsoZnJlZVswXS0+cG9vbCwgKHZvaWQgKiopZnJlZSwNCj4gPiA+ID4gIAkJ CQkJUlRFX0k0MEVfVFhfTUFYX0ZSRUVfQlVGX1NaKTsNCj4gPiA+ID4gIAl9DQo+ID4gPiA+ICB9 DQo+ID4gPiA+DQo+ID4gPiA+IGlmIChtKSB7DQo+ID4gPiA+ICAJZm9yIChpID0gMDsgaSA8IG07 ICsraSwgKyt0eGVwKSB7DQo+ID4gPiA+IAkJZnJlZVtpXSA9IHR4ZXAtPm1idWY7DQo+ID4gPiA+ ICAJCXR4ZXAtPm1idWYgPSBOVUxMOw0KPiA+ID4gPiAJfQ0KPiA+ID4gPiAgfQ0KPiA+ID4gPiAg cnRlX21lbXBvb2xfcHV0X2J1bGsoZnJlZVswXS0+cG9vbCwgKHZvaWQgKiopZnJlZSwgbSk7IH0N Cj4gPg0KPiA+ID4gU2VlbXMgbm8gbG9naWNhbCBwcm9ibGVtLCBidXQgdGhlIGNvZGUgbG9va3Mg aGVhdnkgZHVlIHRvIGZvciBsb29wcy4NCj4gPiA+IERpZCB5b3UgcnVuIHBlcmZvcm1hbmNlIHdp dGggdGhpcyBjaGFuZ2Ugd2hlbiB0eF9yc190aHJlc2ggPg0KPiA+ID4gUlRFX0k0MEVfVFhfTUFY X0ZSRUVfQlVGX1NaPw0KPiA+DQo+ID4gU29ycnkgZm9yIG15IGxhdGUgcmVseS4gSXQgdGFrZXMg bWUgc29tZSB0aW1lIHRvIGRvIHRoZSB0ZXN0IGZvciB0aGlzDQo+ID4gcGF0aCBhbmQgZm9sbG93 aW5nIGlzIG15IHRlc3QgcmVzdWx0czoNCj4gPg0KPiA+IEZpcnN0LCBJIGNvbWUgdXAgd2l0aCBh bm90aGVyIHdheSB0byBzb2x2ZSB0aGlzIGJ1ZyBhbmQgY29tcGFyZSBpdA0KPiA+IHdpdGggImxv b3AiKHNpemUgb2YgJ2ZyZWUnIGlzIDY0KS4NCj4gPiBUaGF0IGlzIHNldCB0aGUgc2l6ZSBvZiAn ZnJlZScgYXMgYSBsYXJnZSBjb25zdGFudC4gV2Uga25vdzoNCj4gPiB0eF9yc190aHJlc2ggPCBy aW5nX2Rlc2Nfc2l6ZSA8IEk0MEVfTUFYX1JJTkdfREVTQyg0MDk2KSwgc28gd2UgY2FuDQo+ID4g ZGlyZWN0bHkgZGVmaW5lIGFzOg0KPiA+IHN0cnVjdCBydGVfbWJ1ZiAqZnJlZVtSVEVfSTQwRV9U WF9NQVhfRlJFRV9CVUZfU1pdOw0KPiA+DQo+ID4gWzFdVGVzdCBDb25maWc6DQo+ID4gTVJSIFRl c3Q6IHR3byBwb3JzdCAmIGJpLWRpcmVjdGlvbmFsIGZsb3dzICYgb25lIGNvcmUgUlggQVBJOg0K PiA+IGk0MGVfcmVjdl9wa3RzX2J1bGtfYWxsb2MgVFggQVBJOiBpNDBlX3htaXRfcGt0c19zaW1w bGUNCj4gPiByaW5nX2Rlc2NzX3NpemU6IDEwMjQNCj4gPiBSaW5nX0k0MEVfVFhfTUFYX0ZSRUVf U1o6IDY0DQo+ID4NCj4gPiBbMl1TY2hlbWU6DQo+ID4gdHhfcnNfdGhyZXNoID0gIEk0MEVfREVG QVVMVF9UWF9SU0JJVF9USFJFU0ggdHhfZnJlZV90aHJlc2ggPQ0KPiA+IEk0MEVfREVGQVVMVF9U WF9GUkVFX1RIUkVTSCB0eF9yc190aHJlc2ggPD0gdHhfZnJlZV90aHJlc2ggPA0KPiA+IG5iX3R4 X2Rlc2MgU28gd2UgY2hhbmdlIHRoZSB2YWx1ZSBvZiAndHhfcnNfdGhyZXNoJyBieSBhZGp1c3QN Cj4gPiBJNDBFX0RFRkFVTFRfVFhfUlNCSVRfVEhSRVNIDQo+ID4NCj4gPiBbM11UZXN0IFJlc3Vs dHMgKHBlcmZvcm1hbmNlIGltcHJvdmUpOg0KPiA+IEluIFg4NjoNCj4gPiB0eF9yc190aHJlc2gv IHR4X2ZyZWVfdGhyZXNoICAgICAgICAgICAgICAgICAgICAgICAzMi8zMiAgICAgICAgICAyNTYv MjU2ICAgICAgICAgIDUxMi81MTINCj4gPiAxLm1lbXBvb2xfcHV0KGJhc2UpICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwICAgICAgICAgICAgICAgICAgMCAgICAgICAgICAgICAg ICAgICAgICAgIDANCj4gPiAyLm1lbXBvb2xfcHV0X2J1bGs6bG9vcCAgICAgICAgICAgICAgICAg ICAgICAgICAgICs0LjclICAgICAgICAgKzUuNiUgICAgICAgICAgICAgICArNy4wJQ0KPiA+IDMu bWVtcG9vbF9wdXRfYnVsazpsYXJnZSBzaXplIGZvciBmcmVlICAgKzMuOCUgICAgICAgICAgKzIu MyUgICAgICAgICAgICAgICAtMi4wJQ0KPiA+IChmcmVlW0k0MEVfTUFYX1JJTkdfREVTQ10pDQo+ ID4NCj4gPiBJbiBBcm06DQo+ID4gTjFTRFA6DQo+ID4gdHhfcnNfdGhyZXNoLyB0eF9mcmVlX3Ro cmVzaCAgICAgICAgICAgICAgICAgICAgICAgMzIvMzIgICAgICAgICAgMjU2LzI1NiAgICAgICAg ICA1MTIvNTEyDQo+ID4gMS5tZW1wb29sX3B1dChiYXNlKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCAgICAgICAgICAgICAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAw DQo+ID4gMi5tZW1wb29sX3B1dF9idWxrOmxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgICAr Ny45JSAgICAgICAgICs5LjElICAgICAgICAgICAgICAgKzIuOSUNCj4gPiAzLm1lbXBvb2xfcHV0 X2J1bGs6bGFyZ2Ugc2l6ZSBmb3IgZnJlZSAgICArNy4xJSAgICAgICAgICs4LjclICAgICAgICAg ICAgICAgKzMuNCUNCj4gPiAoZnJlZVtJNDBFX01BWF9SSU5HX0RFU0NdKQ0KPiA+DQo+ID4gVGh1 bmRlcngyOg0KPiA+IHR4X3JzX3RocmVzaC8gdHhfZnJlZV90aHJlc2ggICAgICAgICAgICAgICAg ICAgICAgIDMyLzMyICAgICAgICAgIDI1Ni8yNTYgICAgICAgICAgNTEyLzUxMg0KPiA+IDEubWVt cG9vbF9wdXQoYmFzZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgICAgICAg ICAgICAgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgMA0KPiA+IDIubWVtcG9vbF9wdXRf YnVsazpsb29wICAgICAgICAgICAgICAgICAgICAgICAgICAgKzcuNiUgICAgICAgICArMTAuNSUg ICAgICAgICAgICAgKzcuNiUNCj4gPiAzLm1lbXBvb2xfcHV0X2J1bGs6bGFyZ2Ugc2l6ZSBmb3Ig ZnJlZSAgICArMS43JSAgICAgICAgICsxOC40JSAgICAgICAgICAgICArMTAuMiUNCj4gPiAoZnJl ZVtJNDBFX01BWF9SSU5HX0RFU0NdKQ0KPiA+DQo+ID4gQXMgYSByZXN1bHQsIEkgZmVlbCBtYXli ZSAnbG9vcCcgaXMgYmV0dGVyIGFuZCBpdCBzZWVtcyBub3QgdmVyeSBoZWF2eQ0KPiA+IGFjY29y ZGluZyB0byB0aGUgdGVzdC4NCj4gPiBXaGF0IGFib3V0IHlvdXIgdmlld3MgYW5kIGxvb2sgZm9y d2FyZCB0byB5b3VyIHJlcGx5Lg0KPiA+IFRoYW5rcyBhIGxvdC4NCj4gDQo+IFRoYW5rcyBmb3Ig eW91ciBwYXRjaCBhbmQgdGVzdC4NCj4gSXQgbG9va3MgT0sgZm9yIG1lLCBwbGVhc2Ugc2VuZCBW Mi4NClRoYW5rcyBmb3IgdGhlIHJldmlld2luZywgSSB3aWxsIHVwZGF0ZSB0aGUgVjIgdmVyc2lv bi4NCg==