From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68146C5DF80 for ; Tue, 18 Aug 2026 08:15:10 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 424FF40294; Tue, 18 Aug 2026 10:15:09 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id A5F074028E for ; Tue, 18 Aug 2026 10:15:07 +0200 (CEST) dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim; c=relaxed/relaxed; q=dns/txt; h=From; bh=DdnKD8shi5Xt/TbPWZ1UGTVS7ShYtr6SmRBC2zWZf5s=; b=P4NM02rwvSNhq58Vwkkq4X0R/CnYN7LRIdQm6hx3613SmtGVkwxxEjMgq0Buqx/Luqk5TAxgc 4QBpNPfbCJ4T6SuuhYirFkv4OHLX7b8zNVkJ/w8PIOJW11G7JNX/oD+aEpI5Tql3PVtj6UcHvds LKV6bucy7/c33t5ZoQTlghU= Received: from mail.maildlp.com (unknown [172.18.224.150]) by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4hPMtr3bvwzHnGjH; Tue, 18 Aug 2026 16:14:44 +0800 (CST) Received: from dubpeml100002.china.huawei.com (unknown [7.214.144.156]) by mail.maildlp.com (Postfix) with ESMTPS id DAFE540570; Tue, 18 Aug 2026 16:15:01 +0800 (CST) Received: from dubpeml500001.china.huawei.com (7.214.147.241) by dubpeml100002.china.huawei.com (7.214.144.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.45; Tue, 18 Aug 2026 09:15:01 +0100 Received: from dubpeml500001.china.huawei.com ([7.214.147.241]) by dubpeml500001.china.huawei.com ([7.214.147.241]) with mapi id 15.02.1544.011; Tue, 18 Aug 2026 09:15:01 +0100 From: Konstantin Ananyev To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Stephen Hemminger" CC: "dev@dpdk.org" , Bruce Richardson Subject: RE: [PATCH] eal/x86: optimize memcpy of small 64-byte blocks Thread-Topic: [PATCH] eal/x86: optimize memcpy of small 64-byte blocks Thread-Index: AQHdJB42oNL4gJj070KJtRurBEIGmLaN+WoAgAAJXwCAAOt0oIAABRpAgAAL2ECAAB9NYIAAlEawgAAzoeCAAMFNUIAAEs8QgAe7bdCAAD6sMIAK1f9w Date: Tue, 18 Aug 2026 08:15:01 +0000 Message-ID: References: <20260804143305.1344327-1-mb@smartsharesystems.com> <20260804085210.74763eb5@phoenix.local> <98CBD80474FA8B44BF855DF32C47DC35F659B8@smartserver.smartshare.dk> <6f474724bc22441a8a4f516f3398ca76@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F659BD@smartserver.smartshare.dk> <3c7eea01416249e0aaeab0e8b6b4c157@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F659BF@smartserver.smartshare.dk> <3a96ca58a1e146758f5314202a04c3de@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F659C3@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35F659C6@smartserver.smartshare.dk> <22720aafe5cf445787940bb319f7e90e@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F659D3@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35F659D3@smartserver.smartshare.dk> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.126.172.234] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 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 DQoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkvKiBDb21tb24gd2F5IGZvciBzbWFsbCBj b3B5IHNpemUgb2YgNjQtYnl0ZQ0KPiA+ID4gPiBibG9ja3MuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IFVubGlrZWx5LCBzbw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY29uc3RhbnQgc2l6ZSBvbmx5 ICovDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsJaWYgKF9fcnRlX2NvbnN0YW50KG4pICYm IChuICYgNjMpID09IDAgJiYgbiA8PQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gUlRFX01FTUNQ WV9CTE9DS182NF9NQVgpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKwkJdm9pZCAqcmV0 ID0gZHN0Ow0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTWF5YmUganVzdCBsZXQgY29tcGlsZXIgZGVj aWRlLCBpdCB3aWxsIGdlbmVyYXRlDQo+ID4gdmVjdG9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGlu c3RydWN0aW9ucyBpbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbW9zdCBjYXNlcy4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAJaWYgKF9fcnRlX2Nv bnN0YW50KG4pKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gCQlyZXR1cm4gbWVtcGNweShkc3Qs IHNyYywgbik7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBN YXliZSBpbiBtb3N0LCBidXQgbm90IGluIGFsbDoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBodHRw czovL2dvZGJvbHQub3JnL3ovS3ZkS3FUNXJZDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gPiA+IFdpdGggJy1tYXZ4JyBvciAnLW1hdng1MTJmJyBpdCBsb29rcyBsaWtlIGl0 IGRvZXMgZm9yDQo+ID4geW91cg0KPiA+ID4gPiA+ID4gc2FtcGxlDQo+ID4gPiA+ID4gPiA+ID4g Y29kZS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJdCBhbHNvIGRvZXMg d2l0aCAtbXNzZTQuMiB3aGVuIFNaIGlzIHJlZHVjZWQgdG8gMjU2DQo+ID4gYnl0ZXMuDQo+ID4g PiA+ID4gPiA+ID4gPiBDbGFuZyBzd2l0Y2hlcyB0byBpbmxpbmUgd2hlbiBTWiBpcyByZWR1Y2Vk IHRvIDEyOCBieXRlcy4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJdCBz ZWVtcyB0aGUgY29tcGlsZXIgaGFzIGEgdGhyZXNob2xkIGZvciB3aGVuIHRvIGlubGluZQ0KPiA+ IGFuZA0KPiA+ID4gPiB3aGVuDQo+ID4gPiA+ID4gPiB0bw0KPiA+ID4gPiA+ID4gPiA+IGNhbGwg dGhlIEMNCj4gPiA+ID4gPiA+ID4gPiA+IGxpYnJhcnkncyBtZW1jcHkgc3Vicm91dGluZS4NCj4g PiA+ID4gPiA+ID4gPiA+IFRoZSB0aHJlc2hvbGQgZGVwZW5kcyBvbiBib3RoIGNvcHkgc2l6ZSBh bmQgdmVjdG9yDQo+ID4gcmVnaXN0ZXINCj4gPiA+ID4gc2l6ZS4NCj4gPiA+ID4gPiA+ID4gPiA+ IEFuZCBpdCBpcyBjb21waWxlciBkZXBlbmRlbnQuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiBJIHRoaW5rIHRoZXJlIGFyZSBjb21waWxlciBvcHRpb25zIHRvIHNwZWNpZnkgZGVz aXJlZA0KPiA+IHRocmVzaG9sZA0KPiA+ID4gPiA+ID4gdmFsdWVzLg0KPiA+ID4gPiA+ID4gPiA+ IExldCBzYXkgZm9yIGdjYyB0aGVyZSBpcyAgJyAtbW1lbWNweS1zdHJhdGVneT1zdHJhdGVneScu DQo+ID4gPiA+ID4gPiA+ID4gRm9yIHRoYXQgZXhhbXBsZSBpbiB0aGF0IHBhcnRpY3VsYXIgY2Fz ZQ0KPiA+ID4gPiA+ID4gPiA+IC1tbWVtY3B5LXN0cmF0ZWd5PXZlY3Rvcl9sb29wOjUxMjphbGln bixsb29wOi0xOmFsaWduDQo+ID4gPiA+ID4gPiA+ID4gZ2VuZXJhdGVzIHNzZSBsb2Fkcy9zdG9y ZXMuDQo+ID4gPiA+ID4gPiA+ID4gTWlnaHQgYmUgd2UgY2FuIGV4cGxvaXQgaXQgc29tZWhvdz8N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gVGhhdCBjb3VsZCBnaXZlIHVzIGhpZ2hlciBn cmFudWxhcml0eS9jb250cm9sIG92ZXIgbWVtY3B5IGZvcg0KPiA+ID4gPiA+ID4gaW5kaXZpZHVh bA0KPiA+ID4gPiA+ID4gPiBtZW1jcHkgaW5zdGFuY2VzOyBtaWdodCBiZSB1c2VmdWwgZm9yIGhv dCBjb2RlIHBhdGhzIHdoZXJlIHdlDQo+ID4gPiA+IGhhdmUNCj4gPiA+ID4gPiA+IG1vcmUNCj4g PiA+ID4gPiA+ID4ga25vd2xlZGdlIGFib3V0IHRoZSBjb3B5IG9wZXJhdGlvbiB0aGFuIHRoZSBj b21waWxlciBjYW4NCj4gPiBpbmZlci4NCj4gPiA+ID4gPiA+ID4gSG93ZXZlciwgcHJhZ21hcyBh cmUgZGlzY291cmFnZWQgaW4gRFBESywgYW5kIHRoaXMgbG9va3MgbGlrZQ0KPiA+IGENCj4gPiA+ ID4gdmVyeQ0KPiA+ID4gPiA+ID4gc2ltaWxhcg0KPiA+ID4gPiA+ID4gPiBwYXRoLg0KPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+IFdlbGwsIHJpZ2h0IG5vdyAgcnRlX21lbWNweS5oIGlzIDcwMCsg bGluZXMgYW5kIGtlZXBzIGdyb3dpbmcuDQo+ID4gPiA+ID4gPiBDb25zaWRlcmluZyB0aGF0IHBy b2JhYmx5IHByYWdtYXMgYXJlIG5vdCB0aGF0IGJhZC4NCj4gPiA+ID4gPiA+IE9mIGNvdXJzZSwg cHJhZ21hcyBoYXZlIHRoZWlyIG93biBpc3N1ZXMgYW5kIGl0IGlzIGhhcmQgdG8NCj4gPiBlbnN1 cmUNCj4gPiA+ID4gdGhhdA0KPiA+ID4gPiA+ID4gdGhleSB3aWxsIHByb2R1Y2Ugc2FtZSBjb2Rl IGJldHdlZW4gZGlmZmVyZW50DQo+ID4gY29tcGlsZXJzL3ZlcnNpb25zLA0KPiA+ID4gPiBldGMu DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgYW0gbm90IHJlYWxseSBoYXBweSB0aGF0 IG91ciBob21lLWJyZXdlZCBtZW1jcHkgY29kZS0NCj4gPiBibG9jaw0KPiA+ID4gPiBrZWVwcw0K PiA+ID4gPiA+ID4gPiA+IGdyb3dpbmcsDQo+ID4gPiA+ID4gPiA+ID4gd2hpbGUgd2Uga2VlcCB0 YWxraW5nIHRoYXQgaXQgd291bGQgYmUgZ29vZCB0byBlbGltaW5hdGUgaXQNCj4gPiA+ID4gPiA+ IGNvbXBsZXRlbHkuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEkgYWdyZWUgaW4gcHJp bmNpcGxlLg0KPiA+ID4gPiA+ID4gPiBIb3dldmVyLCB0aGlzIHJ0ZV9tZW1jcHkoKSBvcHRpbWl6 YXRpb24gaXMgZm9yIHRoZQ0KPiA+IHBpbGUvbWVtcG9vbA0KPiA+ID4gPiA+ID4gb3B0aW1pemF0 aW9ucw0KPiA+ID4gPiA+ID4gPiBJJ20gd29ya2luZyBvbiwgc28gdGhlcmUgaXMgYSBzcGVjaWZp YyB1c2UgY2FzZSBtb3RpdmF0aW5nDQo+ID4gdGhlDQo+ID4gPiA+IGFkZGVkDQo+ID4gPiA+ID4g PiBjb2RlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgdW5kZXJzdGFuZCB0aGF0IHlvdSBw cm9iYWJseSBoYXZlIHNvbWUgc3BlY2lmaWMgdXNlLWNhc2UgaW4NCj4gPiBtaW5kLg0KPiA+ID4g PiA+ID4gQlRXIGZvciB0aGlzIG9wdGltaXphdGlvbiB5b3UgbWVudGlvbmVkIGFib3ZlOiB3aGF0 IGlzIHRoZSBnYWluDQo+ID4gPiA+IHdpdGgNCj4gPiA+ID4gPiA+IHRoZXNlIGNoYW5nZXM/DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBJTU8sIHRoZSBwcmltYXJ5IGJlbmVmaXQgaXMgdGhlIG11Y2gg c2ltcGxlciAoYW5kIHNtYWxsZXIpDQo+ID4gYXNzZW1ibHkNCj4gPiA+ID4gb3V0cHV0IGR1ZQ0K PiA+ID4gPiA+IHRvIGF2b2lkaW5nIHRoZSBhZGRyZXNzIGFsaWdubWVudCBjaGVjayAoYW5kIHRo ZSByZXN1bHRpbmcNCj4gPiBkdXBsaWNhdGVkDQo+ID4gPiA+IGNvZGUpLg0KPiA+ID4gPg0KPiA+ ID4gPiBJIHRoaW5rIHRoYXQgc2hvdWxkIGJlIG1lYXN1cmFibGUgdG9vOiB3aG9sZSBiaW5hcnkg IGFuZC9vciBob3QNCj4gPiBwYXRoDQo+ID4gPiA+IGZ1bmN0aW9uIHNpemUgcmVkdWN0aW9uLCBl dGMuDQo+ID4gPg0KPiA+ID4gVGhlIHNpemUgb2YgdGhlIGdlbmVyYXRlZCBjb2RlIGZvciB0aGUg Y29weSBvcGVyYXRpb24gaXMgcmVkdWNlZCB0bw0KPiA+IHNsaWdodGx5IGxlc3MNCj4gPiA+IHRo YW4gaGFsZiAob25seSBvbmUgaW5zdGFuY2Ugb2YgdGhlIGNvcHkgb3BlcmF0aW9uIGluc3RlYWQg b2YgdHdvLA0KPiA+IGFuZCB0aGUNCj4gPiA+IGFkZHJlc3MgYWxpZ25tZW50IGNvbXBhcmlzb24g aXMgb21pdHRlZCkuDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+IEkgaGF2ZW4ndCBtZWFzdXJl ZCB0aGUgcGVyZm9ybWFuY2UgZ2Fpbi4NCj4gPiA+ID4gPiBCYXNlZCBvbiB0aGUgcGVyZiBnYWlu IGluIGEgcHJldmlvdXMgbWVtcG9vbCBvcHRpbWl6YXRpb24gcGF0Y2gNCj4gPiBbMV0sDQo+ID4g PiA+IGl0IHNlZW1zDQo+ID4gPiA+ID4gYXZvaWRpbmcgdGhlIGFkZHJlc3MgYWxpZ25tZW50IGNo ZWNrIHNoYXZlcyB+MiBjeWNsZXMgb2ZmIHRoZQ0KPiA+IGNvcHkNCj4gPiA+ID4gb3BlcmF0aW9u IChmb3INCj4gPiA+ID4gPiBjYWNoZS10by1jYWNoZSBjb3B5KS4NCj4gPiA+ID4gPiBJIGV4cGVj dCB0aGF0IHRoZSBzYW1lIGdhaW4gKGZyb20gYXZvaWRpbmcgdGhlIGFkZHJlc3MgYWxpZ25tZW50 DQo+ID4gPiA+IGNoZWNrKSBhcHBsaWVzDQo+ID4gPiA+ID4gaGVyZS4NCj4gPiA+ID4NCj4gPiA+ ID4gT2ssIHRoZW4gSSBzdWdnZXN0IHdlIGRvIHNvbWUgbWVhc3VyZW1lbnRzIGZpcnN0LCBiZWZv cmUgZ29pbmcNCj4gPiBmb3J3YXJkDQo+ID4gPiA+IHdpdGggaXQuDQo+ID4gPg0KPiA+ID4gSSB0 cmllZCBtZW1jcHlfcGVyZl9hdXRvdGVzdCwgYnV0IHRoZSBicmFuY2ggcHJlZGljdG9yIGtpY2tz IGluIGFuZA0KPiA+IGVsaW1pbmF0ZXMNCj4gPiA+IHRoZSBjb3N0IG9mIHRoZSBhZGRyZXNzIGFs aWdubWVudCBjb21wYXJpc29uLiBTbyB0aGUgcmVzdWx0cyBhcmUgdmVyeQ0KPiA+IHNpbWlsYXIu DQo+ID4NCj4gPiBJbmRlZWQsIHRoZXkgYXJlIHRoZSBzYW1lLg0KPiA+DQo+ID4gPiBCVFcsIHRo YXQncyBhIGdlbmVyYWwgaXNzdWUgd2l0aCBvdXIgcGVyZiB0ZXN0czogUmVwZWF0ZWQgdGVzdGlu Zw0KPiA+IGRvZXNuJ3Qgc2hvdw0KPiA+ID4gdGhlIGNvc3Qgb2YgYnJhbmNoZXMsIGJlY2F1c2Ug dGhleSBhcmUgYWx3YXlzIGVsaW1pbmF0ZWQgYnkgdGhlDQo+ID4gYnJhbmNoDQo+ID4gPiBwcmVk aWN0b3IuDQo+ID4NCj4gPiBNaWdodCBiZS4uLg0KPiA+IEJ1dCB3ZSBkbyBuZWVkIHNvbWUgbWVh c3VyYWJsZSBldmlkZW5jZSB0aGF0IHN1Y2ggY2hhbmdlIGltcHJvdmUNCj4gPiB0aGluZ3MsDQo+ ID4gb3RoZXJ3aXNlIC0gd2h5IHRvIGJvdGhlcj8NCj4gPiBJZiB0aGF0IHBlcmYgdGVzdCBpcyBu b3QgZ29vZiBlbm91Z2ggLSBsZXQncyB0cnkgdG8gZXh0ZW5kIGl0IG9yIHVzZQ0KPiA+IGRpZmZl cmVudCBvbmUuDQo+ID4gQlRXLCBpbiB5b3VyIG1lbXBvb2wgcGlsZSBSRkMsIEkgc2VlIHlvdSBh bHNvIHVzZSBydGVfbWVtY3B5IG92ZXIgZml4ZWQNCj4gPiBzaXplZCBidWZmZXJzLg0KPiA+IERv IHlvdSBzZWUgYW55IGltcHJvdmVtZW50IHRoZXJlICh3aXQvd2l0aG91dCBydGVfbWVtY3B5IG9w dGltaXhhdGlvbik/DQo+IA0KPiBMb29raW5nIGF0IHRoZSBnZW5lcmF0ZWQgYXNzZW1ibHkgKG9i amR1bXAgLVMNCj4gYnVpbGQvZHJpdmVycy9saWJydGVfbWVtcG9vbF9zdGFjay5zbykuLi4NCj4g DQo+IFRoaXMgaXMgdGhlIG9wdGltaXplZCBjb3B5IGxvb3AgaW4gcGlsZV9kZXF1ZXVlOg0KPiAN Cj4gICAgIDE2NTA6CTg5IGNhICAgICAgICAgICAgICAgIAltb3YgICAgJWVjeCwlZWR4DQo+ICAg ICAxNjUyOgljNSBmZSA2ZiA0MCA0MCAgICAgICAJdm1vdmRxdSAweDQwKCVyYXgpLCV5bW0wDQo+ ICAgICAxNjU3OglmZiBjMSAgICAgICAgICAgICAgICAJaW5jICAgICVlY3gNCj4gICAgIDE2NTk6 CWMxIGUyIDA1ICAgICAgICAgICAgIAlzaGwgICAgJDB4NSwlZWR4DQo+ICAgICAxNjVjOgk0OSA4 ZCAxNCBkNCAgICAgICAgICAJbGVhICAgICglcjEyLCVyZHgsOCksJXJkeA0KPiAgICAgMTY2MDoJ YzUgZmUgN2YgMDIgICAgICAgICAgCXZtb3ZkcXUgJXltbTAsKCVyZHgpDQo+ICAgICAxNjY0Oglj NSBmZSA2ZiA0OCA2MCAgICAgICAJdm1vdmRxdSAweDYwKCVyYXgpLCV5bW0xDQo+ICAgICAxNjY5 OgljNSBmZSA3ZiA0YSAyMCAgICAgICAJdm1vdmRxdSAleW1tMSwweDIwKCVyZHgpDQo+ICAgICAx NjZlOgljNSBmZSA2ZiA5MCA4MCAwMCAwMCAJdm1vdmRxdSAweDgwKCVyYXgpLCV5bW0yDQo+ICAg ICAxNjc1OgkwMA0KPiAgICAgMTY3NjoJYzUgZmUgN2YgNTIgNDAgICAgICAgCXZtb3ZkcXUgJXlt bTIsMHg0MCglcmR4KQ0KPiAgICAgMTY3YjoJYzUgZmUgNmYgOTggYTAgMDAgMDAgCXZtb3ZkcXUg MHhhMCglcmF4KSwleW1tMw0KPiAgICAgMTY4MjoJMDANCj4gICAgIDE2ODM6CWM1IGZlIDdmIDVh IDYwICAgICAgIAl2bW92ZHF1ICV5bW0zLDB4NjAoJXJkeCkNCj4gICAgIDE2ODg6CWM1IGZlIDZm IGEwIGMwIDAwIDAwIAl2bW92ZHF1IDB4YzAoJXJheCksJXltbTQNCj4gICAgIDE2OGY6CTAwDQo+ ICAgICAxNjkwOgljNSBmZSA3ZiBhMiA4MCAwMCAwMCAJdm1vdmRxdSAleW1tNCwweDgwKCVyZHgp DQo+ICAgICAxNjk3OgkwMA0KPiAgICAgMTY5ODoJYzUgZmUgNmYgYTggZTAgMDAgMDAgCXZtb3Zk cXUgMHhlMCglcmF4KSwleW1tNQ0KPiAgICAgMTY5ZjoJMDANCj4gICAgIDE2YTA6CWM1IGZlIDdm IGFhIGEwIDAwIDAwIAl2bW92ZHF1ICV5bW01LDB4YTAoJXJkeCkNCj4gICAgIDE2YTc6CTAwDQo+ ICAgICAxNmE4OgljNSBmZSA2ZiBiMCAwMCAwMSAwMCAJdm1vdmRxdSAweDEwMCglcmF4KSwleW1t Ng0KPiAgICAgMTZhZjoJMDANCj4gICAgIDE2YjA6CWM1IGZlIDdmIGIyIGMwIDAwIDAwIAl2bW92 ZHF1ICV5bW02LDB4YzAoJXJkeCkNCj4gICAgIDE2Yjc6CTAwDQo+ICAgICAxNmI4OgljNSBmZSA2 ZiBiOCAyMCAwMSAwMCAJdm1vdmRxdSAweDEyMCglcmF4KSwleW1tNw0KPiAgICAgMTZiZjoJMDAN Cj4gICAgIDE2YzA6CWM1IGZlIDdmIGJhIGUwIDAwIDAwIAl2bW92ZHF1ICV5bW03LDB4ZTAoJXJk eCkNCj4gICAgIDE2Yzc6CTAwDQo+ICAgICAxNmM4Ogk0OCA4YiA0MCAwOCAgICAgICAgICAJbW92 ICAgIDB4OCglcmF4KSwlcmF4DQo+ICAgICAxNmNjOgkzOSBmMSAgICAgICAgICAgICAgICAJY21w ICAgICVlc2ksJWVjeA0KPiAgICAgMTZjZToJNzUgODAgICAgICAgICAgICAgICAgCWpuZSAgICAx NjUwIDxwaWxlX2RlcXVldWUrMHhlMD4NCj4gICAgIDE2ZDA6DQo+IA0KPiBUaGlzIGlzIHdpdGhv dXQgdGhlIHJ0ZV9tZW1jcHkgb3B0aW1pemF0aW9uOg0KPiANCj4gICAgIDE2NTA6CTg5IGNhICAg ICAgICAgICAgICAgIAltb3YgICAgJWVjeCwlZWR4DQo+ICAgICAxNjUyOgljNSBmZSA2ZiA0MCA0 MCAgICAgICAJdm1vdmRxdSAweDQwKCVyYXgpLCV5bW0wDQo+ICAgICAxNjU3Ogk0OSA4OSBjMSAg ICAgICAgICAgICAJbW92ICAgICVyYXgsJXI5DQo+ICAgICAxNjVhOglmZiBjMSAgICAgICAgICAg ICAgICAJaW5jICAgICVlY3gNCj4gICAgIDE2NWM6CWMxIGUyIDA1ICAgICAgICAgICAgIAlzaGwg ICAgJDB4NSwlZWR4DQo+ICAgICAxNjVmOgk0OSA4ZCAxNCBkNCAgICAgICAgICAJbGVhICAgICgl cjEyLCVyZHgsOCksJXJkeA0KPiAgICAgMTY2MzoJYzUgZmUgN2YgMDIgICAgICAgICAgCXZtb3Zk cXUgJXltbTAsKCVyZHgpDQo+ICAgICAxNjY3OgljNSBmZSA2ZiA0OCA2MCAgICAgICAJdm1vdmRx dSAweDYwKCVyYXgpLCV5bW0xDQo+ICAgICAxNjZjOgk0OSAwOSBkMSAgICAgICAgICAgICAJb3Ig ICAgICVyZHgsJXI5DQo+ICAgICAxNjZmOgk0MSA4MyBlMSAxZiAgICAgICAgICAJYW5kICAgICQw eDFmLCVyOWQNCj4gICAgIDE2NzM6CWM1IGZlIDdmIDRhIDIwICAgICAgIAl2bW92ZHF1ICV5bW0x LDB4MjAoJXJkeCkNCj4gICAgIDE2Nzg6CWM1IGZlIDZmIDkwIDgwIDAwIDAwIAl2bW92ZHF1IDB4 ODAoJXJheCksJXltbTINCj4gICAgIDE2N2Y6CTAwDQo+ICAgICAxNjgwOgljNSBmZSA3ZiA1MiA0 MCAgICAgICAJdm1vdmRxdSAleW1tMiwweDQwKCVyZHgpDQo+ICAgICAxNjg1OgljNSBmZSA2ZiA5 OCBhMCAwMCAwMCAJdm1vdmRxdSAweGEwKCVyYXgpLCV5bW0zDQo+ICAgICAxNjhjOgkwMA0KPiAg ICAgMTY4ZDoJYzUgZmUgN2YgNWEgNjAgICAgICAgCXZtb3ZkcXUgJXltbTMsMHg2MCglcmR4KQ0K PiAgICAgMTY5MjoJYzUgZmUgNmYgYTAgYzAgMDAgMDAgCXZtb3ZkcXUgMHhjMCglcmF4KSwleW1t NA0KPiAgICAgMTY5OToJMDANCj4gICAgIDE2OWE6CWM1IGZlIDdmIGEyIDgwIDAwIDAwIAl2bW92 ZHF1ICV5bW00LDB4ODAoJXJkeCkNCj4gICAgIDE2YTE6CTAwDQo+ICAgICAxNmEyOgljNSBmZSA2 ZiBhOCBlMCAwMCAwMCAJdm1vdmRxdSAweGUwKCVyYXgpLCV5bW01DQo+ICAgICAxNmE5OgkwMA0K PiAgICAgMTZhYToJYzUgZmUgN2YgYWEgYTAgMDAgMDAgCXZtb3ZkcXUgJXltbTUsMHhhMCglcmR4 KQ0KPiAgICAgMTZiMToJMDANCj4gICAgIDE2YjI6CWM1IGZlIDZmIGIwIDAwIDAxIDAwIAl2bW92 ZHF1IDB4MTAwKCVyYXgpLCV5bW02DQo+ICAgICAxNmI5OgkwMA0KPiAgICAgMTZiYToJYzUgZmUg N2YgYjIgYzAgMDAgMDAgCXZtb3ZkcXUgJXltbTYsMHhjMCglcmR4KQ0KPiAgICAgMTZjMToJMDAN Cj4gICAgIDE2YzI6CWM1IGZlIDZmIGI4IDIwIDAxIDAwIAl2bW92ZHF1IDB4MTIwKCVyYXgpLCV5 bW03DQo+ICAgICAxNmM5OgkwMA0KPiAgICAgMTZjYToJYzUgZmUgN2YgYmEgZTAgMDAgMDAgCXZt b3ZkcXUgJXltbTcsMHhlMCglcmR4KQ0KPiAgICAgMTZkMToJMDANCj4gICAgIDE2ZDI6CTQ4IDhi IDQwIDA4ICAgICAgICAgIAltb3YgICAgMHg4KCVyYXgpLCVyYXgNCj4gICAgIDE2ZDY6CTBmIDg1 IGM0IDAwIDAwIDAwICAgIAlqbmUgICAgMTdhMCA8cGlsZV9kZXF1ZXVlKzB4MjMwPg0KPiAgICAg MTZkYzoJMzkgY2UgICAgICAgICAgICAgICAgCWNtcCAgICAlZWN4LCVlc2kNCj4gICAgIDE2ZGU6 CTBmIDg1IDZjIGZmIGZmIGZmICAgIAlqbmUgICAgMTY1MCA8cGlsZV9kZXF1ZXVlKzB4ZTA+DQo+ ICAgICAxNmU0Og0KPiAgICAgWy4uLl0NCj4gICAgIDE3YTA6CTM5IGYxICAgICAgICAgICAgICAg IAljbXAgICAgJWVzaSwlZWN4DQo+ICAgICAxN2EyOgkwZiA4NSBhOCBmZSBmZiBmZiAgICAJam5l ICAgIDE2NTAgPHBpbGVfZGVxdWV1ZSsweGUwPg0KPiAgICAgMTdhODoJZTkgMzcgZmYgZmYgZmYg ICAgICAgCWptcCAgICAxNmU0IDxwaWxlX2RlcXVldWUrMHgxNzQ+DQo+IA0KPiBIZXJlLCB0aGUg YWxpZ25tZW50IGNvbXBhcmlzb24gSSBoYXZlIG9wdGltaXplZCBhd2F5IGlzIHBlcmZvcm1lZCB1 c2luZw0KPiByZWdpc3RlciAlcjkuDQo+IA0KPiBXaXRoIHRoZSBvcHRpbWl6YXRpb24sIHRoZSBn ZW5lcmF0ZWQgYXNzZW1ibHkgaXMgbGVzcyBjbHV0dGVyZWQsIGFuZCB0aHVzIGVhc2llcg0KPiB0 byByZXZpZXcuDQo+IChJdCBzZWVtcyB0aGUgY29tcGlsZXIgaXMgY2xldmVyIGVub3VnaCB0byBu b3QgZHVwbGljYXRlIHRoZSB0d28gaW5zdGFuY2VzIG9mIHRoZQ0KPiBjb2RlLCBidXQgcmV1c2Ug dGhlIGFsaWduZWQgaW5zdGFuY2UgZm9yIHRoZSB1bmFsaWduZWQgY2FzZSB0b28uIFNvIHRoZSBy ZWR1Y3Rpb24NCj4gaW4gY29kZSBzaXplIGlzIG5vdCBhcyBncmVhdCBhcyBJIHByZXZpb3VzbHkg Y2xhaW1lZC4pDQo+IA0KPiBJIGFncmVlIHRoZSBwZXJmb3JtYW5jZSBiZW5lZml0IGluIENQVSBj eWNsZXMgaXMgcHJvYmFibHkgaW5zaWduaWZpY2FudC4NCj4gQnV0IHRoZSBnZW5lcmF0ZWQgYXNz ZW1ibHkgaXMgY2xlYW5lci4NCj4gQW5kIGlmIHByZXNzdXJlZCBmb3IgQ1BVIHJlZ2lzdGVycywg dGhlIG9wdGltaXphdGlvbiBhbHNvIGZyZWVzIHVwIG9uZSBDUFUNCj4gcmVnaXN0ZXIgZm9yIG90 aGVyIHB1cnBvc2VzLg0KPiANCj4gQ29kZSBzaXplIHJlZHVjdGlvbjoNCj4gVGhlIG9wdGltaXpl ZCBsb29wIGlzIDB4ODAgYnl0ZXMgb2YgaW5zdHJ1Y3Rpb25zLg0KPiBUaGUgbm9uLW9wdGltaXpl ZCBpcyAweDhlIGJ5dGVzLCAxNCBieXRlcyBtb3JlLCBpbiB0aGUgbG9vcCwgcGx1cyAxMyBieXRl cw0KPiBvdXRzaWRlIHRoZSBsb29wLg0KDQpIb25lc3RseSwgd2l0aCBzdWNoIGluc2lnbmlmaWNh bnQgZ2FpbnMsIEknZCBlaXRoZXIgbGVhdmUgaXQgYWxvbmUsDQpvciBsb29rIG1vcmUgY2xvc2Vs eSBhdCBjb21waWxlciBwcmFnbWFzIG9wdGlvbiB3ZSBkaXNjdXNzZWQgYmVmb3JlLg0KDQo+IA0K PiA+DQo+ID4gPiA9PT09PT09ID09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09ID09 PT09PT09PT09PT09PT09DQo+ID4gPiA9PT09PT09PT09PT09PT09PQ0KPiA+ID4gICAgU2l6ZSAg IENhY2hlIHRvIGNhY2hlICAgICBDYWNoZSB0byBtZW0gICAgICBNZW0gdG8gY2FjaGUNCj4gPiBN ZW0gdG8gbWVtDQo+ID4gPiAoYnl0ZXMpICAgICAgICAgICh0aWNrcykgICAgICAgICAgKHRpY2tz KSAgICAgICAgICAgKHRpY2tzKQ0KPiA+ICh0aWNrcykNCj4gPiA+IC0tLS0tLS0gLS0tLS0tLS0t LS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLQ0KPiA+ IC0tLS0tLS0tLS0NCj4gPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAzMkIg YWxpZ25lZA0KPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4gPiBC ZWZvcmUNCj4gPiA+IEMgICAgNjQgIDIgLSAgMiggIDkuNjAlKSAgMjIgLSAyMSggIDQuNDglKSAg MzMgLSAzMSggIDUuMTUlKSAgNTcgLQ0KPiA+IDU2KCAgMC4yOCUpDQo+ID4gPiBDICAgMTI4ICA0 IC0gIDQoICA1LjU2JSkgIDQxIC0gNDAoICAzLjU5JSkgIDUzIC0gNTIoICAxLjQ5JSkgMTAxIC0N Cj4gPiAxMDAoICAwLjcxJSkNCj4gPiA+IEMgICAxOTIgIDYgLSAgNiggIDQuMDYlKSAgNjQgLSA2 MCggIDUuNjElKSAgNjggLSA2OSggLTEuNjglKSAxMzYgLQ0KPiA+IDEzOCggLTEuNDklKQ0KPiA+ ID4gQyAgIDI1NiAxMCAtICA5KCAgNS4yMSUpICA4MiAtIDgxKCAgMS4yMCUpICA5MyAtIDg3KCAg Ny40NyUpIDE3MiAtDQo+ID4gMTc1KCAtMS40NiUpDQo+ID4gPiBBZnRlcg0KPiA+ID4gQyAgICA2 NCAgMiAtICAyKCAtMC43MSUpICAyMiAtIDIxKCAgNy42MiUpICAzMSAtIDMwKCAgNC4zMiUpICA1 NyAtDQo+ID4gNTkoIC0zLjAzJSkNCj4gPiA+IEMgICAxMjggIDQgLSAgNCggLTAuMzQlKSAgNDAg LSA0MCggIDAuNjAlKSAgNTAgLSA1MCggIDAuNDElKSAgOTcgLQ0KPiA+IDk5KCAtMS45NiUpDQo+ ID4gPiBDICAgMTkyICA2IC0gIDYoICA1LjI3JSkgIDU5IC0gNTkoIC0wLjI3JSkgIDY5IC0gNzIo IC00LjQyJSkgMTM5IC0NCj4gPiAxMzgoICAwLjkwJSkNCj4gPiA+IEMgICAyNTYgIDkgLSAgOSgg IDkuMTQlKSAgNzcgLSA3NyggIDAuMjUlKSAgODkgLSA5MCggLTAuODglKSAxODAgLQ0KPiA+IDE3 NyggIDEuNTclKQ0KPiA+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBVbmFs aWduZWQNCj4gPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiA+IEJl Zm9yZQ0KPiA+ID4gQyAgICA2NCAgNSAtICA1KCAgMC45OCUpICAzMiAtIDMyKCAgMC43MiUpICA0 MiAtIDQyKCAgMC40NCUpICA4MiAtDQo+ID4gODIoICAwLjUxJSkNCj4gPiA+IEMgICAxMjggIDgg LSAgOSgtMTEuMjYlKSAgNTEgLSA1MCggIDAuNTMlKSAgNjAgLSA1OSggIDAuODklKSAxMTcgLQ0K PiA+IDExNSggIDEuMzclKQ0KPiA+ID4gQyAgIDE5MiAxMyAtIDEyKCAgMS42MiUpICA2NiAtIDY3 KCAtMS4xMiUpICA4MyAtIDgwKCAgMy4yNiUpIDE1NyAtDQo+ID4gMTY1KCAtNS4yNSUpDQo+ID4g PiBDICAgMjU2IDIxIC0gMjIoIC01Ljc4JSkgIDk0IC0gOTMoICAxLjY1JSkgMTAwIC0gOTkoICAx LjUyJSkgMjAyIC0NCj4gPiAyMDQoIC0xLjM0JSkNCj4gPiA+IEFmdGVyDQo+ID4gPiBDICAgIDY0 ICA1IC0gIDUoICAwLjA1JSkgIDMxIC0gMzEoICAwLjE2JSkgIDQwIC0gMzkoICAxLjM3JSkgIDc3 IC0NCj4gPiA3NyggLTAuOTMlKQ0KPiA+ID4gQyAgIDEyOCAgOSAtICA5KCAtMC42OSUpICA1MCAt IDUwKCAtMC4wMiUpICA2MSAtIDYwKCAgMi43MSUpIDExOCAtDQo+ID4gMTIyKCAtMy4xNSUpDQo+ ID4gPiBDICAgMTkyIDEyIC0gMTEoICA3LjY4JSkgIDY4IC0gNjYoICAzLjY0JSkgIDc5IC0gODEo IC0yLjg1JSkgMTY0IC0NCj4gPiAxNjQoIC0wLjEyJSkNCj4gPiA+IEMgICAyNTYgMjEgLSAyMCgg IDEuODAlKSAgOTAgLSA4NyggIDIuNzAlKSAgOTYgLSA5NyggLTAuOTklKSAyMDIgLQ0KPiA+IDIw MSggIDAuMDklKQ0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiBbMV06DQo+ID4gPiA+DQo+ID4g aHR0cHM6Ly9wYXRjaHdvcmsuZHBkay5vcmcvcHJvamVjdC9kcGRrL3BhdGNoLzIwMjYwNTIxMTg1 NjMxLjExNjA0Ni0xLQ0KPiA+ID4gPiA+IG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbS8NCg0K