From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0044.outbound.protection.outlook.com [104.47.0.44]) by dpdk.org (Postfix) with ESMTP id E4180DED; Tue, 28 Aug 2018 11:51:51 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6HHraqotjWUfXnAxAZHlZ0hq0+XZgRbdXffQwKVZ/5A=; b=IqnERHHo9ux+9sEF+vC6nQ9FztPYAvYv1m+dBScsiBJ1mdrPZT8BsrwxBfuG6H9m3ghRdvo0ikE25tc0iBScOEVTlMU/nivawTk1veYZ5qNF15mj+w/0Dw0kYrSch0WaOc5e19H5kSlyceIGSPwdrVRW6F11OvG1/ykKRZ8BvxE= Received: from DB3PR0502MB4028.eurprd05.prod.outlook.com (52.134.72.145) by DB3PR0502MB3977.eurprd05.prod.outlook.com (52.134.72.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1080.15; Tue, 28 Aug 2018 09:51:49 +0000 Received: from DB3PR0502MB4028.eurprd05.prod.outlook.com ([fe80::2552:6f91:4d84:b7db]) by DB3PR0502MB4028.eurprd05.prod.outlook.com ([fe80::2552:6f91:4d84:b7db%4]) with mapi id 15.20.1080.015; Tue, 28 Aug 2018 09:51:49 +0000 From: Matan Azrad To: Chas Williams <3chas3@gmail.com> CC: Eric Kinzie , "bluca@debian.org" , "dev@dpdk.org" , Declan Doherty , Chas Williams , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [dpdk-stable] [PATCH v4] net/bonding: per-slave intermediate rx ring Thread-Index: AQHUOj+hWaQ4YaZC0UCW7VMjN5ENnaTM70pggACOagCABChIMIAB93YAgAAULXCAABWUAIABIfOg Date: Tue, 28 Aug 2018 09:51:49 +0000 Message-ID: References: <20180816125202.15980-1-bluca@debian.org> <20180816133208.26566-1-bluca@debian.org> <1534933159.5764.107.camel@debian.org> <20180822174316.GA29821@roosta> In-Reply-To: Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [77.127.14.79] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB3PR0502MB3977; 6:qc16pHftakjizR2iHlE+bWUpujPf30pkn1wfG+/9m2eFYge01YeYXPjpBySgW8dm9v5EfRiisST7tFO/kK8JUSBi/XxXolXRQ/DDMoeo6zRh2zEDPHY68gN8SQg8M4i+mb2wIPMRymaMK/G2/emikqLBPglvz3xFo+l83aMz69E3UX1qUt/Dm22xUjh6f4o4bAvcncOKHaVU+D5Fj3Dj4vFEYKm379x2z5MwgPpNGzmJVzjREuhtrbrxXI5NrX05HuZqWRDunk66tctwSj7p4hy4IXGCmZiUwqDnMqGAxwQTEHNKwcvboL5oFAmSCxRy1ERlYowlQpnMoQbj6L1FseQoEi3HCQCl4ur/udkx4Krrrzc49m1co2VDqtjMXVYUVBXSqitg07lerC9lE7actwWmmEOneFZZAcnWJnCSWC0+Q19DQLOk/Q+kUBlPns4eANhygNtpstfZpJ3O5vDISA==; 5:4ITs2v0OmClNycOlzOj8WA+9JcsHeTkGClVkj5OW455BAVTO5cFF4DFpsPNTTRR6ZWm81HLCLtq8eKg1ulSTSOsSGz35a4dGF2Y4aA22wzSLuYrcwqeFESRl1TbLIVX9+lBi9Af4BVixj3sq5BDGBo5CkUJOUFlYN2lw5q53cw4=; 7:vX+tVh7D8j3ukvbWMlKSCXkfXh6Kz4BUqGTeNCz7smfGjGL9NB/cNXfdgb9MCGwMpSiBoMR6LrwM2SEmgFFGlJB5g5eEEZMQjcKPEVn7L0Hj59z+pgDuqeKSl4rH0EarLZwNsJ4brnf4ze/M2nrmn/LkQp41ECVTbwHZ/M7wICSrzD+9QiGxKcFS8tCXoZzTinnUL7YyhKUB4jy4kB5l0TrMmtFWaBfY9Sp5VdPS7oy3xkGSREk13CnQU0eVMEa1 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 10713c22-bda2-4730-3db7-08d60ccbdfe1 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DB3PR0502MB3977; x-ms-traffictypediagnostic: DB3PR0502MB3977: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(17755550239193); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231311)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(20161123558120)(201708071742011)(7699016); SRVR:DB3PR0502MB3977; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB3977; x-forefront-prvs: 077884B8B5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(366004)(136003)(376002)(346002)(189003)(199004)(68736007)(6436002)(1411001)(8676002)(2906002)(39060400002)(476003)(66066001)(229853002)(97736004)(93886005)(102836004)(6246003)(86362001)(186003)(4326008)(446003)(551984002)(26005)(25786009)(74316002)(5660300001)(305945005)(486006)(11346002)(81156014)(478600001)(81166006)(6506007)(33656002)(105586002)(106356001)(14454004)(8936002)(5250100002)(53936002)(9686003)(55016002)(54906003)(3846002)(6116002)(7736002)(6916009)(256004)(7696005)(76176011)(99286004)(2900100001)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB3977; H:DB3PR0502MB4028.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: y70ZJZsxaxe/tbUssGBL4jW28hpPhKLqNddT+H3dKo3KKR6YcxWWZJmCGoeLyeB//fZsg4PENt6nritkKPZPZgNnc4IVxnJjNRa7ZZLHWZchkuQgXdabsWpEWMjyq0RU4xztQ5Q6UdUtVOjAxtYdG4dTdR9+lalus8bTozOLoJ8h3foAheO3rvsl8YmORiRLgdcN2gXO+qv1NisogXH22Q+XhNx+gEGgUy96yOYArbVRBHylTWU7UPQ4OCs9Q61t1KGMX6ZPcB+wzDUDp63NNAXJ+hDFQBawWfWsX26nbLhDNR/MA6QobwtJJqhcMb31YzSDzDQ72efy4zEWzZZtXldNd4CVpfOwLRBYTruH+4Q= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10713c22-bda2-4730-3db7-08d60ccbdfe1 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Aug 2018 09:51:49.2518 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB3977 Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH v4] net/bonding: per-slave intermediate rx ring X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Aug 2018 09:51:52 -0000 DQoNCkZyb206IENoYXMgV2lsbGlhbXMNCj5PbiBNb24sIEF1ZyAyNywgMjAxOCBhdCAxMTozMCBB TSBNYXRhbiBBenJhZCA8bWFpbHRvOm1hdGFuQG1lbGxhbm94LmNvbT4gd3JvdGU6DQo8c25pcD4N Cj4+PkJlY2F1c2UgcmluZ3MgYXJlIGdlbmVyYWxseSBxdWl0ZSBlZmZpY2llbnQuDQo+Pg0KPj5C dXQgeW91IGFyZSB1c2luZyBhIHJpbmcgaW4gYWRkaXRpb24gdG8gcmVndWxhciBhcnJheSBtYW5h Z2VtZW50LCBpdCBtdXN0IGh1cnQgcGVyZm9ybWFuY2Ugb2YgdGhlIGJvbmRpbmcgUE1EDQo+Piht ZWFucyB0aGUgYm9uZGluZyBpdHNlbGYgLSBub3QgdGhlIHNsYXZlcyBQTURzIHdoaWNoIGFyZSBj YWxsZWQgZnJvbSB0aGUgYm9uZGluZykNCj4NCj5JdCBhZGRzIGxhdGVuY3kuDQoNCkFuZCBieSB0 aGF0IGh1cnRzIHRoZSBhcHBsaWNhdGlvbiBwZXJmb3JtYW5jZSBiZWNhdXNlIGl0IHRha2VzIG1v cmUgQ1BVIHRpbWUgaW4gdGhlIGJvbmRpbmcgUE1ELg0KDQo+SXQgaW5jcmVhc2VzIHBlcmZvcm1h bmNlIGJlY2F1c2Ugd2Ugc3BlbmQgbGVzcyBDUFUgdGltZSByZWFkaW5nIGZyb20gdGhlIFBNRHMu DQoNClNvLCBpdCdzIGhhY2sgaW4gdGhlIGJvbmRpbmcgUE1EIHRvIGltcHJvdmUgc29tZSBzbGF2 ZXMgY29kZSBwZXJmb3JtYW5jZSBidXQgaHVydCB0aGUgYm9uZGluZyBjb2RlIHBlcmZvcm1hbmNl LA0KT3ZlciBhbGwgdGhlIHBlcmZvcm1hbmNlIHdlIGdhaW4gZm9yIHRob3NlIHNsYXZlcyBpbXBy b3ZlcyB0aGUgYXBwbGljYXRpb24gcGVyZm9ybWFuY2Ugb25seSB3aGVuIHdvcmtpbmcgd2l0aCB0 aG9zZSBzbGF2ZXMuIA0KQnV0IG1heSBodXJ0IHRoZSBhcHBsaWNhdGlvbiBwZXJmb3JtYW5jZSB3 aGVuIHdvcmtpbmcgd2l0aCBvdGhlciBzbGF2ZXMuDQoNCj7CoCBUaGlzIG1lYW5zIHdlIGhhdmUg bW9yZSBDUFUgdG8gdXNlIGZvcg0KPnBvc3QgcHJvY2Vzc2luZyAoaS5lLiByb3V0aW5nKS4NCg0K DQoNCj4+PkJvbmRpbmcgaXMgaW4gYSBtaWRkbGUgZ3JvdW5kIGJldHdlZW4gYXBwbGljYXRpb24g YW5kIFBNRC4NCj4+WWVzLg0KPj4+V2hhdCBib25kaW5nIGlzIGRvaW5nLCBtYXkgbm90IGltcHJv dmUgYWxsIGFwcGxpY2F0aW9ucy4NCj4+WWVzLCBidXQgaXQgY2FuIGJlIHNvbHZlZCB1c2luZyBz b21lIGJvbmRpbmcgbW9kZXMuDQo+Pj4gSWYgdXNpbmcgYSByaW5nIHRvIGJ1ZmZlciB0aGUgdmVj dG9yaXplZCByZWNlaXZlIHJvdXRpbmVzLCBpbXByb3ZlcyB5b3VyIHBhcnRpY3VsYXIgYXBwbGlj YXRpb24sDQo+Pj50aGF0J3MgZ3JlYXQuwqANCj4+SXQgbWF5IGJlIG5vdCBncmVhdCBhbmQgZXZl biBiYWQgZm9yIHNvbWUgb3RoZXIgUE1EcyB3aGljaCBhcmUgbm90IHZlY3Rvcm9yaXplZC4NCj4+ DQo+Pj4gSG93ZXZlciwgSSBkb24ndCB0aGluayBJIGNhbiBzYXkgdGhhdCBpdCB3b3VsZCBoZWxw IGFsbA0KPj4+YXBwbGljYXRpb25zLsKgIEFzIHlvdSBwb2ludCBvdXQsIHRoZXJlIGlzIG92ZXJo ZWFkIGFzc29jaWF0ZWQgd2l0aA0KPj4+YSByaW5nLg0KPj5ZZXMuDQo+Pj5Cb25kaW5nJ3MgcmVj ZWl2ZSBidXJzdCBpc24ndCBlc3BlY2lhbGx5IGVmZmljaWVudCAoaW4gbW9kZSA0KS4NCj4+DQo+ PldoeT8NCj4+DQo+Pkl0IG1ha2VzIGEgY29weSBvZiB0aGUgc2xhdmVzLCBoYXMgYSBmYWlyIGJp dCBvZiBzdGFjayB1c2FnZSwgDQo+Pm5lZWRzIHRvIGNoZWNrIHRoZSBzbGF2ZSBzdGF0dXMsIGFu ZCBuZWVkcyB0byBleGFtaW5lIGVhY2gNCj4+cGFja2V0IHRvIHNlZSBpZiBpdCBpcyBhIHNsb3cg cHJvdG9jb2wgcGFja2V0LsKgIFNvIGVhY2gNCj4+cGFja2V0IGlzIGVzc2VudGlhbGx5IHJlYWQg dHdpY2UuwqAgVGhlIGZhc3QgcXVldWUgY29kZSBmb3IgbW9kZSA0DQo+PmF2b2lkcyBzb21lIG9m IHRoaXMgKGFuZCBwcm9iYWJseSBpZ25vcmVzIGNoZWNraW5nIGNvbGxlY3RpbmcNCj4+aW5jb3Jy ZWN0bHkpLsKgIElmIHlvdSBmaW5kIGEgc2xvdyBwcm90b2NvbCBwYWNrZXQsIHlvdSBuZWVkIHRv DQo+PmNob3AgaXQgb3V0IG9mIHRoZSBhcnJheSB3aXRoIG1lbW1vdmUgZHVlIHRvIG92ZXJsYXAu DQo+DQo+QWdyZWUuDQo+U28gdG8gaW1wcm92ZSB0aGUgYm9uZGluZyBwZXJmb3JtYW5jZSB5b3Ug bmVlZCB0byBvcHRpbWl6ZSB0aGUgYWJvdmVzIHByb2JsZW1zLg0KPlRoZXJlIGlzIG5vIGNvbm5l Y3Rpb24gdG8gdGhlIHJpbmcuDQo+DQo+QW5kIGFzIEkgaGF2ZSBkZXNjcmliZWQgbnVtZXJvdXMg dGltZXMsIHRoZXNlIHByb2JsZW1zDQo+Y2FuJ3QgYmUgZWFzaWx5IGZpeGVkIGFuZCBwcmVzZXJ2 ZSB0aGUgZXhpc3RpbmcgQVBJLg0KDQpTb21ldGltZXMgd2UgbmVlZCB0byB3b3JrIGhhcmRlciB0 byBzZWUgYSBnYWluIGZvciBhbGwuDQpXZSBzaG91bGQgbm90IGFwcGx5IGEgcGF0Y2ggYmVjYXVz ZSBpdCBpcyBlYXN5IGFuZCBzaG93IGEgZ2FpbiBmb3Igc3BlY2lmaWMgc2NlbmFyaW9zLg0KDQo+ Pj4gQm9uZGluZyBiZW5lZml0cyBmcm9tIGJlaW5nIGFibGUgdG8gcmVhZCBhcyBtdWNoIGFzIHBv c3NpYmxlICh3aXRoaW4gbGltaXRzIG9mDQo+Pj5jb3Vyc2UsIGxhcmdlIHJlYWRzIHdvdWxkIGJs b3cgb3V0IGNhY2hlcykgZnJvbSBlYWNoIHNsYXZlLg0KPj4NCj4+VGhlIHNsYXZlcyBQTURzIGNh biBiZW5lZml0cyBpbiB0aGUgc2FtZSB3YXkuDQo+Pg0KPj4+SXQgY2FuJ3QgcmV0dXJuIGFsbCB0 aGF0IGRhdGEgdGhvdWdoIGJlY2F1c2UgYXBwbGljYXRpb25zIHRlbmQgdG8gdXNlIHRoZcKgDQo+ Pj5idXJzdCBzaXplIHRoYXQgd291bGQgYmUgZWZmaWNpZW50IGZvciBhIHR5cGljYWwgUE1ELg0K Pj4NCj4+V2hhdCBpcyB0aGUgcHJlZmVycmVkIGJ1cnN0IHNpemUgb2YgdGhlIGJvbmRpbmc/IE1h eWJlIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgdXNlIGl0IHdoZW4gdGhleSBhcmUgdXNpbmcgYm9u ZGluZy4NCj4+DQo+PlRoZSBwcmVmZXJyZWQgYnVyc3Qgc2l6ZSBmb3IgYm9uZGluZyB3b3VsZCBi ZSB0aGUgc3VtIG9mIGFsbCB0aGUNCj4+c2xhdmVzIGlkZWFsIHJlYWQgc2l6ZS7CoCBIb3dldmVy LCB0aGF0J3Mgbm90IGxpa2VseSB0byBiZSBzaW1wbGUNCj4+c2luY2UgbW9zdCBhcHBsaWNhdGlv bnMgZGVjaWRlIGVhcmx5IHRoZSBzaXplIGZvciB0aGUgcmVhZC93cml0ZQ0KPj5idXJzdCBvcGVy YXRpb25zLg0KPj7CoA0KPj4+QW4gYWx0ZXJuYXRpdmUgbWlnaHQgYmUgdG8gYXNrIGJvbmRpbmcg YXBwbGljYXRpb25zIHRvIHNpbXBseSBpc3N1ZSBsYXJnZXIgcmVhZHMgZm9yDQo+Pj5jZXJ0YWlu IG1vZGVzLsKgIFRoYXQncyBwcm9iYWJseSBub3QgYXMgZWFzeSBhcyBpdCBzb3VuZHMgZ2l2ZW4g dGhlDQo+Pj53YXkgdGhhdCB0aGUgYnVyc3QgbGVuZ3RoIGVmZmVjdHMgbXVsdGlwbGV4aW5nLg0K Pj4NCj4+Q2FuIHlvdSBleHBsYWluIGl0IG1vcmU/DQo+Pg0KPj5BIGxvbmdlciBidXJzdCBzaXpl IG9uIG9uZSBQTUQgd2lsbCB0ZW5kIHRvIGZhdm9yIHRoYXQgUE1EDQo+Pm92ZXIgb3RoZXJzLsKg IEl0IHdpbGwgZmlsbCB5b3VyIGludGVybmFsIHF1ZXVlcyB3aXRoIG1vcmXCoA0KPj5vZiBpdHMg cGFja2V0cy4NCj4NCj5BZ3JlZSwgaXQncyBhYm91dCBmYWlybmVzcy4NCj7CoA0KPj4NCj4+PkFu b3RoZXIgc29sdXRpb24gbWlnaHQgYmUganVzdCBhbHRlcm5hdGl2ZWx5IHBvbGwgdGhlIGluZGl2 aWR1YWwNCj4+PnNsYXZlcyBvbiBlYWNoIHJ4IGJ1cnN0LsKgIEJ1dCB0aGF0IG1lYW5zIHlvdSBu ZWVkIHRvIHBvbGwgYXQgYQ0KPj4+ZmFzdGVyIHJhdGUuwqAgRGVwZW5kaW5nIG9uIHlvdXIgYXBw bGljYXRpb24sIHlvdSBtaWdodCBub3QgYmUNCj4+PmFibGUgdG8gZG8gdGhhdC4NCj4NCj4+QWdh aW4sIGNhbiB5b3UgYmUgbW9yZSBwcmVjaXNlIGluIHRoZSBhYm92ZSBleHBsYW5hdGlvbj8NCj4+ DQo+PklmIHRoZSBhcHBsaWNhdGlvbiBrbm93cyB0aGF0IHRoZXJlIGFyZSB0d28gc2xhdmVzIGJh Y2tpbmcNCj4+YSBib25kaW5nIGludGVyZmFjZSwgdGhlIGFwcGxpY2F0aW9uIGNvdWxkIGp1c3Qg cmVhZCB0d2ljZQ0KPj5mcm9tIHRoZSBib25kaW5nIGludGVyZmFjZSwga25vd2luZyB0aGF0IHRo ZSBib25kaW5nwqANCj4+aW50ZXJmYWNlIGlzIGdvaW5nIHRvIGFsdGVybmF0ZSBiZXR3ZWVuIHRo ZSBzbGF2ZXMuwqAgQnV0DQo+PnRoaXMgcmVxdWlyZXMgdGhlIGFwcGxpY2F0aW9uIHRvIGtub3cg dGhpbmdzIGFib3V0IHRoZSBib25kaW5nDQo+PlBNRCwgbGlrZSB0aGUgbnVtYmVyIG9mIHNsYXZl cy4NCj4NCj5XaHkgc2hvdWxkIHRoZSBhcHBsaWNhdGlvbiBwb2xsIHR3aWNlPw0KPlBvbGwgc2xh dmUgMCwgdGhhbiBwcm9jZXNzIGl0J3MgcGFja2V0cywgcG9sbCBzbGF2ZSAxIHRoYW4gcHJvY2Vz cyBpdHMgcGFja2V0cy4uLg0KPldoYXQgaXMgdGhlIHByb2JsZW0/DQo+DQo+QmVjYXVzZSBsZXQn cyBzYXkgdGhhdCBlYWNoIHNsYXZlIGlzIDEwRyBhbmQgeW91IGFyZSB1c2luZw0KPg0KPmxpbmsg YWdncmVnYXRpb24gd2l0aCB0d28gc2xhdmVzLsKgIElmIHlvdSBoYXZlIHR1bmVkIHlvdXINCj4N Cj5hcHBsaWNhdGlvbiBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGEgUE1EIGlzIGFwcHJveGltYXRl bHkNCj4xMEcsIHRoZW4geW91IGFyZSBnb2luZyB0byBiZSB1bmRlciBwb2xsaW5nIHRoZSBib25k aW5nIFBNRC4NCj5Gb3IgdGhlIGFib3ZlIHRvIHdvcmssIHlvdSBuZWVkIHRvIGVuc3VyZSB0aGF0 IHRoZSBhcHBsaWNhdGlvbg0KPmlzIHBvbGxpbmcgc3VmZmljaWVudGx5IHRvIGtlZXAgdXAuDQoN CkJ1dCBlYWNoIHBvbGwgd2lsbCBiZSBzaG9ydGVyLCBubyBzbGF2ZXMgbG9vcHMsIG9ubHkgb25l IHNsYXZlIGNhbGwuDQoNCj4+PsKgIFdlIGNhbiBhdm9pZCB0aGlzIHNjaGVkdWxpbmcgb3Zlcmhl YWQgYnkganVzdA0KPj4+ZG9pbmcgdGhlIGV4dHJhIHJlYWRzIGluIGJvbmRpbmcgYW5kIGJ1ZmZl cmluZyBpbiBhIHJpbmcuDQo+Pj4NCj4+PlNpbmNlIGJvbmRpbmcgaXMgZ29pbmcgdG8gYmUgYnVm ZmVyaW5nIGV2ZXJ5dGhpbmcgaW4gYSByaW5nLA0KPj4NCj4+PyBJIGRvbid0IGZhbWlsaWFyIHdp dGggaXQuIEZvciBub3cgSSBkb24ndCB0aGluayB3ZSBuZWVkIGEgcmluZy4NCj4+DQo+PldlIGhh dmUgc29tZSBlbXBpcmljYWwgdGVzdGluZyB0aGF0IHNob3dzIHBlcmZvcm1hbmNlIGltcHJvdmVt ZW50cy4NCj4+SG93IGRvIHlvdSBleHBsYWluIHRoaXM/wqAgDQo+DQo+WW91IGFyZSB1c2luZyBh IGhhY2sgaW4gYm9uZGluZyB3aGljaCBodXJ0IHRoZSBib25kaW5nIGJ1dCBpbXByb3ZlcyB0aGUg dmVjdG9yaXplZCBQTUQgeW91IHVzZS4NCj4NCj4+UmluZ3MgYXJlbid0IGluZWZmaWNpZW50Lg0K Pg0KPk9ubHkgd2hlbiB0aGVyZSBpcyBhIG5lZWQgdG8gdXNlIGl0Lg0KPg0KPkkgYmVsaWV2ZSB3 ZSBoYXZlIGlkZW50aWZpZWQgYSBuZWVkLg0KPsKgDQo+DQo+PlRoZXJlJ3Mgc2lnbmlmaWNhbnQg b3ZlcmhlYWQgb2YgY2FsbGluZyB0aGUgcnggYnVyc3Qgcm91dGluZSBvbiBhbnkgUE1ELg0KPj5Z b3UgbmVlZCB0byBnZXQgdGhlIFBNRCBkYXRhIHN0cnVjdHVyZXMgaW50byBsb2NhbCBtZW1vcnku DQo+DQo+WWVzLg0KPg0KPj5SZWFkaW5nIGFzIG11Y2ggYXMgcG9zc2libGUgbWFrZXMgc2Vuc2Uu DQo+DQo+QWdyZWUuDQo+DQo+PiBDb3VsZCB5b3UgZ2VuZXJhbGx5IGRvIHRoaXMgZm9yIGFsbCBQ TURzP8KgIFllcywgYnV0IHRoZSByaW5nIGFkZHMgbGF0ZW5jeS7CoCBMYXRlbmN5DQo+PnRoYXQg aXNuJ3QgYW4gaXNzdWUgZm9yIHRoZSBib25kaW5nIFBNRCBiZWNhdXNlIG9mIGFsbCB0aGUNCj4+ b3RoZXIgaW5lZmZpY2llbmNpZXMgKGZvciBtb2RlIDQpLg0KPg0KPkVubGFyZ2luZyB0aGUgYm9u ZGluZyBsYXRlbmN5IGJ5IHRoYXQgd2F5IG1ha2VzIHNvbWUgdmVjdG9yaXplZCBzbGF2ZSBQTURz IGhhcHB5IGFuZCBtYWtlcyB0aGUgYm9uZGluZyB3b3JzdCANCj5mb3Igb3RoZXIgc2xhdmVzIFBN RHMgLSB0aGlzIGlzIG5vdCBhIGdvb2QgaWRlYSB0byBwdXQgaXQgdXBzdHJlYW0uDQo+DQo+SW1w cm92aW5nIHRoZSBvdGhlciBwcm9ibGVtcyBpbiB0aGUgYm9uZGluZyhyZWR1Y2UgdGhlIGJvbmRp bmcgbGF0ZW5jeSkgd2lsbCBkbyB0aGUgam9iIGZvciB5b3UgYW5kIGZvciBvdGhlcnMuDQo+DQo+ TGF0ZW5jeSBpcyBub3QgdGhlIGlzc3VlIHdpdGggYm9uZGluZy7CoCBUaGUgaXNzdWUgd2l0aCBi b25kaW5nDQo+aXMgdGhlIG92ZXJoZWFkIGFzc29jaWF0ZWQgd2l0aCBtYWtpbmcgYW4gcnggYnVy c3QgY2FsbC7CoCBXZQ0KPmFkZCBsYXRlbmN5ICh2aWEgcmluZ3MpIHRvIG1ha2UgcGFydCBvZiB0 aGUgYm9uZGluZyBkcml2ZXIgbW9yZQ0KPmVmZmljaWVudC4NCj4NCj5BZ2FpbiwgSSBzdXNwZWN0 IGl0IGV2ZW4gaGVscHMgdGhlIG5vbi12ZWN0b3JpemVkIFBNRHMuDQrCoD5DYWxsaW5nIGEgUE1E J3MgcnggYnVyc3Qgcm91dGluZSBpcyBjb3N0bHkgYW5kIHdlIGFyZSBzd2l0Y2hpbmcgYmV0d2Vl bg0KPlBNRCdzIGluc2lkZSB0aGUgYm9uZGluZyBkcml2ZXIuwqAgQm9uZGluZyBpcyBoYWxmd2F5 IGJldHdlZW4gYW4NCj5hcHBsaWNhdGlvbiBhbmQgYSBQTUQuwqAgV2hhdCB3ZSBhcmUgZG9pbmcg aW4gdGhlIGJvbmRpbmcgUE1EIGlzDQo+d2hhdCBhbiBhcHBsaWNhdGlvbiB3b3VsZCB0eXBpY2Fs bHkgZG8uwqAgQnV0IGluc3RlYWQgb2YgZm9yY2luZw0KPmFsbCB0aGUgYm9uZGluZyB1c2VycyB0 byBkbyB0aGlzLCB3ZSBhcmUgZG9pbmcgaXQgZm9yIHRoZW0uDQoNCk5vdCBhZ3JlZS4NClRoZSBv dmVyaGVhZCBpbiBib25kaW5nIG1heSBiZSBjcml0aWNhbCBmb3Igc29tZSBvdGhlciBQTURzXHNj ZW5hcmlvLg0KDQpUbyBzdW1tYXJpemU6DQpXZSBhcmUgbm90IGFncmVlLg0KDQpCb3R0b20gbGlu ZSBpbiBteSBzaWRlLA0KSXQgaXMgbm90IGEgZ29vZCBJZGVhIHRvIGFkZCBvdmVyaGVhZCBpbiB0 aGUgYm9uZGluZyBQTUQgd2hpY2ggaXMgYSBnZW5lcmljIFBNRCBqdXN0IHRvIGdldCBnYWluIGZv ciBzb21lIHNwZWNpZmljIHNjZW5hcmlvcyBpbiBzb21lIHNwZWNpZmljIFBNRHMgd2hpbGUgZm9y IG90aGVyIHNjZW5hcmlvc1xQTURzIGl0IGlzIGJhZC4NCg0KTWF0YW4uIA0KDQoNCg0KDQo=