From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0135.outbound.protection.outlook.com [104.47.2.135]) by dpdk.org (Postfix) with ESMTP id 60BB04CA0 for ; Mon, 15 Oct 2018 18:14:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vDGxlZoDmhWZMJ+dpqiKf6F4lHWh80/NnzmPjs5G6Fw=; b=g5U+kYGuW+r7ZU5rL8Iq50Cgs0gJFykYrRo0wRzHmEhKRO6rr73uyd08d/NQXkFYCN5czgilca+7yrC72jcHSWA0IzxPRbHHFa8UahY9A7jrNnp+eWHH7Kjre29/Lucg3ObKgx62k8rO8jbFy/gWzaSf0bpZNlOUQDd6lmRhlEA= Received: from AM6PR83MB0246.EURPRD83.prod.outlook.com (52.135.181.153) by AM6PR83MB0263.EURPRD83.prod.outlook.com (52.135.182.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1273.1; Mon, 15 Oct 2018 16:14:06 +0000 Received: from AM6PR83MB0246.EURPRD83.prod.outlook.com ([fe80::cca2:ce65:ce5e:ee86]) by AM6PR83MB0246.EURPRD83.prod.outlook.com ([fe80::cca2:ce65:ce5e:ee86%7]) with mapi id 15.20.1273.004; Mon, 15 Oct 2018 16:14:06 +0000 From: Andrew Bainbridge To: Cliff Burdick CC: "philippb.ontour@gmail.com" , users Thread-Topic: [dpdk-users] rte_eth_tx_burst: Can I insert timing gaps Thread-Index: AQHUYUFiXE7ouOPO6kukEjQ2SMlGWaUdrlUAgAJ3ZYCAAAGBIIAAPUmAgAAbsKA= Date: Mon, 15 Oct 2018 16:14:05 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [2a01:110:8012:1010:27fb:d852:511c:676] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR83MB0263; 6:AlISjK+vzXlc6KZJao/XAWvhywtfMZvZhmWdNe3L1G9P3sA4C4jKaAoZG/2+yISOnZNgfdQUledKEujMBrK0e/V9nlfOoI1bz6A2dzAw45wjq+rQjCVo/T6Xt46/tt2NwnEfXtnXWbQxHkVMuODaEsHf5UgNkarIph4Xp2nCXAhffUeab9r8IsJiCTbtoFr5qI+B0eytEHwQWdb0Y2mULnNagr4UYc0TWuNoJ6kWNBpVkMYc3FjGbsHrYXBro/l2IiEnEk2moRlonUwcGLMqa7MZ7kULo50kvbOnWm1ky47vwAvHyE10/kRrCqHrzBwl+yzE4hL9cisWhHfOLh1M8FnFiDSxh1RwmCKyemlh7lpQBaWJxObDrGgUGzPUXM8UBuuCxEu1QVZPG+583CxlyDRIQTbeYGvfkPghwAbSMxGnWomd4Ujo8rW0bSzPfBiBW+O9TrAbsUWyexIvjxbfSg==; 5:zdyJwcF04JtvfRSMmMRhA26X4CRU4jq4H054u7K5g6MxV5zKoSNRuIMPm3EZR+JEwAjuvN9IbtTfPj2jSPnyk11qARMbLwoCnpTY5JuZ39IxBulGgzgIDdj7d5sGRuW7DNG2Qi196tj2MmprSFZPF3ryGHCx12f7BzFpWNC3z2c=; 7:rBnVaLVzlEjRGvLCPx/N7/JDZoVCYwqppqkgOyXWx+KfZboSI01ISWFklmH9gb8pK2n8ILmlb5BgYzDaEs2jW3w6/1IGw2Q5k2HZUeMbaVp+UHgrtuZm4CygrsyRsnWoAKOghOaCFFVxMavHwzt07w== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 5b80f20d-dbaf-4756-80e9-08d632b93b2d x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:AM6PR83MB0263; x-ms-traffictypediagnostic: AM6PR83MB0263: x-o365-sonar-daas-pilot: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(171992500451332)(85827821059158)(28532068793085)(89211679590171)(21748063052155)(190501279198761)(227612066756510)(219752817060721)(189930954265078); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(3231355)(944501410)(4982022)(52105095)(2018427008)(10201501046)(93006095)(93001095)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699051)(76991067); SRVR:AM6PR83MB0263; BCL:0; PCL:0; RULEID:; SRVR:AM6PR83MB0263; x-forefront-prvs: 0826B2F01B x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(366004)(39860400002)(376002)(396003)(136003)(53754006)(199004)(189003)(13464003)(186003)(81166006)(6436002)(81156014)(86362001)(316002)(554214002)(53936002)(2906002)(486006)(74316002)(99286004)(14454004)(102836004)(54906003)(236005)(55016002)(1411001)(46003)(6916009)(6246003)(966005)(86612001)(22452003)(5660300001)(6346003)(33656002)(9686003)(229853002)(14444005)(8676002)(8936002)(256004)(54896002)(6306002)(2900100001)(105586002)(25786009)(106356001)(606006)(446003)(97736004)(10090500001)(790700001)(6116002)(39060400002)(5250100002)(478600001)(7696005)(4326008)(71200400001)(71190400001)(10290500003)(7736002)(11346002)(476003)(68736007)(6506007)(53546011)(76176011)(8990500004)(93886005)(352734003); DIR:OUT; SFP:1102; SCL:1; SRVR:AM6PR83MB0263; H:AM6PR83MB0246.EURPRD83.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=andbain@microsoft.com; x-microsoft-antispam-message-info: YctDCWU2awj5fGp+/YogYQdu280Md4ghAwFint7hi1c4YhSzmLy/xwdmgWXjPEYc+Q3KyvCxmwe0AWgsF/16MVOp6rl7xv5hymL+H8iTYLSdmTt2/7MDiNQ2DA9VPY0re8wii/I+nAsXG82ZGEIClHnb1PWrMgi+9xI1AqyTtlap+g79KR2UUjhkxOBJI4qqwfsvGYVOw4ObpM5MFExo5lV+Z2UC+9qMAgzXfMxFbWWreRycHJ9mKo0AiaHoWZlji2EinvcoO9vx+VYpfLBSb+rIL/6p+PtdbCjimo3kaFC1I6I9HC9fozEfy61rtj6V7THLdCkBFiR0ZsaFZFyrTp+y/HIEfoylwaDbDTXv9sE= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b80f20d-dbaf-4756-80e9-08d632b93b2d X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Oct 2018 16:14:05.9717 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR83MB0263 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-users] rte_eth_tx_burst: Can I insert timing gaps X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Oct 2018 16:14:07 -0000 PiBJIGJlbGlldmUgbWVsbGFub3ggZG9lcyBzdXBwb3J0IGl0LA0KDQpJIHRoaW5rIHNvbWUgY2Fy ZHMgZG8gYW5kIG90aGVycyBkb27igJl0LiBTZWUgdGhlIHRhYmxlIGF0IHRoZSBlbmQgb2YgdGhp czoNCmh0dHA6Ly93d3cubWVsbGFub3guY29tL3JlbGF0ZWQtZG9jcy9wcm9kdWN0cy9FdGhlcm5l dF9BZGFwdGVyX0Jyb2NodXJlLnBkZg0KSG93ZXZlciB0aGV5IG1pZ2h0IGJlIHRhbGtpbmcgYWJv dXQgcGFjaW5nIHBlci1UQ1AtZmxvdy4NCg0KPiBNeSBiZXN0IGd1ZXNzIHdvdWxkIGJlIHRoYXQg eW91IGNhbiBzZW5kIHRoZSBmaWxsZXIgcGFja2V0cyB0byB5b3VyIG93biBNQUMgYWRkcmVzcyBz byB0aGF0IHRoZSBzd2l0Y2ggd2lsbCBkcm9wIGl0Lg0KDQpZZWFoLCBuaWNlLg0KDQoNCkZyb206 IENsaWZmIEJ1cmRpY2sgPHNoYWtsZWUzQGdtYWlsLmNvbT4NClNlbnQ6IDE1IE9jdG9iZXIgMjAx OCAxNTozMA0KVG86IEFuZHJldyBCYWluYnJpZGdlIDxhbmRiYWluQG1pY3Jvc29mdC5jb20+DQpD YzogcGhpbGlwcGIub250b3VyQGdtYWlsLmNvbTsgdXNlcnMgPHVzZXJzQGRwZGsub3JnPg0KU3Vi amVjdDogUmU6IFtkcGRrLXVzZXJzXSBydGVfZXRoX3R4X2J1cnN0OiBDYW4gSSBpbnNlcnQgdGlt aW5nIGdhcHMNCg0KSSBiZWxpZXZlIG1lbGxhbm94IGRvZXMgc3VwcG9ydCBpdCwgYnV0IGl0IGlz IG9ubHkgcGFydCBvZiB0aGVpciBvdGhlciBsaWJyYXJ5IChyaXZlcm1heCkgYW5kIG5vdCB0aGVp ciBEUERLIGRyaXZlci4gSG93ZXZlciwgSSBkb24ndCBrbm93IGlmIHRoYXQgbWVhbnMgeW91IHdv dWxkIGJlIGFibGUgdG8gZG8gc29tZXRoaW5nIHNpbWlsYXIgdG8gcHVuY3R1cmluZyBwYWNrZXRz IGxpa2UgeW91IGFyZSB0cnlpbmcgdG8gZG8uIE15IGJlc3QgZ3Vlc3Mgd291bGQgYmUgdGhhdCB5 b3UgY2FuIHNlbmQgdGhlIGZpbGxlciBwYWNrZXRzIHRvIHlvdXIgb3duIE1BQyBhZGRyZXNzIHNv IHRoYXQgdGhlIHN3aXRjaCB3aWxsIGRyb3AgaXQuDQoNCg0KDQpPbiBNb24sIE9jdCAxNSwgMjAx OCwgMDQ6MjEgQW5kcmV3IEJhaW5icmlkZ2UgPGFuZGJhaW5AbWljcm9zb2Z0LmNvbTxtYWlsdG86 YW5kYmFpbkBtaWNyb3NvZnQuY29tPj4gd3JvdGU6DQpJcyB0aGUgZmVhdHVyZSB5b3UgYXJlIGRl c2NyaWJpbmcgaXMgY2FsbGVkIHBhY2tldCAicGFjaW5nIj8gSGVyZSdzIGEgTWVsbGFub3ggZG9j dW1lbnQgZGVzY3JpYmluZyBpdDoNCiAgaHR0cHM6Ly9jb21tdW5pdHkubWVsbGFub3guY29tL2Rv Y3MvRE9DLTI1NTE8aHR0cHM6Ly9uYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29t Lz91cmw9aHR0cHMlM0ElMkYlMkZjb21tdW5pdHkubWVsbGFub3guY29tJTJGZG9jcyUyRkRPQy0y NTUxJmRhdGE9MDIlN0MwMSU3Q2FuZGJhaW4lNDBtaWNyb3NvZnQuY29tJTdDNzBiMGVhOTVlMzFh NDVjMjkyZTcwOGQ2MzJhYWFlZDclN0M3MmY5ODhiZjg2ZjE0MWFmOTFhYjJkN2NkMDExZGI0NyU3 QzElN0MwJTdDNjM2NzUyMTA1OTk0ODIwMzc2JnNkYXRhPUtkN01ON0h3M0lpN3czJTJGVU5lV01G elZRc2NtZGJWTXZ2b2pHZ2ZwTlA5RSUzRCZyZXNlcnZlZD0wPg0KDQpJIGdyZXAnZWQgdGhlIERQ REsgc291cmNlIGZvciAicmF0ZV9saW1pdCIgYW5kIGZvdW5kIHJ0ZV9ldGhfc2V0X3F1ZXVlX3Jh dGVfbGltaXQoKS4gSXMgdGhhdCB0aGUgZnVuY3Rpb24geW91IG5lZWQ/DQoNCkZyb20gbXkgcXVp Y2sgZ3JlcCdpbmcsIGl0IGxvb2tzIHRvIG1lIGxpa2UgdGhpcyBmZWF0dXJlIGlzbid0IHN1cHBv cnRlZCBvbiBNZWxsYW5veCBkcml2ZXJzIGJ1dCBpcyBpbiB0aGUgaXhnYmUgZHJpdmVyLiBIb3dl dmVyLCB0aGlzIGlzIGFsbCBndWVzcyB3b3JrLiBJJ20gbm90IGFuIGV4cGVydC4gSSdkIGxpa2Ug dG8ga25vdyB0aGUgcmVhbCBhbnN3ZXIhDQoNCi0gQW5kcmV3DQoNCi0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQpGcm9tOiB1c2VycyA8dXNlcnMtYm91bmNlc0BkcGRrLm9yZzxtYWlsdG86dXNl cnMtYm91bmNlc0BkcGRrLm9yZz4+IE9uIEJlaGFsZiBPZiBQaGlsaXBwIEINClNlbnQ6IDE1IE9j dG9iZXIgMjAxOCAxMTo0NQ0KVG86IHNoYWtsZWUzQGdtYWlsLmNvbTxtYWlsdG86c2hha2xlZTNA Z21haWwuY29tPg0KQ2M6IHVzZXJzQGRwZGsub3JnPG1haWx0bzp1c2Vyc0BkcGRrLm9yZz4NClN1 YmplY3Q6IFJlOiBbZHBkay11c2Vyc10gcnRlX2V0aF90eF9idXJzdDogQ2FuIEkgaW5zZXJ0IHRp bWluZyBnYXBzDQoNCk1heWJlIEkgc2hvdWxkIGV4cGxhaW4gd2l0aCBzb21lIEFTQ0lJIGFydC4g SXQncyBub3QgYWJvdXQgc2xlZXBpbmcganVzdCB0aGUgcmVtYWluaW5nIHBlcmlvZCBvZiAyMG1z LiBUaGlzIGlzIGV4YWN0bHkgd2hhdCBJIGFtIGRvaW5nIGFscmVhZHksIGFuZCB0aGlzIHdvcmtz IGZpbmUuDQoNClRoaW5rIG9mIDIwbXMgaW50ZXJ2YWxzIGxpa2UgdGhpcw0KDQp8WFhYWFhYWFhY WFhYWFhYWFhYX19fX198WFhYWFhYWFhYWFhYWFhYWFhYX19fX18NCg0KV2hlcmUgJ3wnIGlzIHRo ZSBzdGFydCBvZiB0aGUgMjBtcyBpbnRlcnZhbCwgWCBpcyBhIHBhY2tldCwgYW5kIF8gaXMgYW4g aWRsZSBnYXAgb2Ygb25lIHBhY2tldC4gKExldCdzIGp1c3QgcHJldGVuZCB0aGVyZSBhcmUgMTAw MHMgb2YgWHMgcGVyIGludGVydmFsKS4NCg0KQXMgSSBzYWlkLCBJIGxldCB0aGUgQ1BVIHNsZWVw IHVwdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgaW50ZXJ2YWwgKCd8JykuIFRoaXMgYmVnaW5uaW5n IG9mIGludGVydmFsIGlzIHRoZSBvbmx5IG1vbWVudCB3aGVyZSBDUFUgdGltaW5nIGNvbnRyb2xz IGFkYXB0ZXIgdGltaW5nLiBUaGVuIEkgc2VuZCBvdXQgYSBmZXcgMTAwMCBwYWNrZXRzLiBJbiB0 aGlzIHBoYXNlLCBJIGhhdmUgYSBmZXcgMTAwIHBhY2tldHMgYnVmZmVyZWQgYnkgRFBESywgc28g aXQgd2lsbCBub3QgaGVscCB0byBzbGVlcCBvbiB0aGUgQ1BVLg0KDQpUaGUgcGF0dGVybiBhYm92 ZSBpcyB3aGF0IEkgY2FuIGVhc2lseSBwcm9kdWNlIGp1c3Qgd2l0aCBhbiBPUyBzbGVlcCwgYSBz aW5nbGUgYnVmZmVyIHBvb2wgYW5kIHJ0ZV9ldGhfdHhfYnVyc3QuIFdoYXQgSSBhbSBsb29raW5n IGZvciwgaXMgYSB3YXkgdG8gZS5nLiByZW1vdmUgZXZlcnkgc2Vjb25kIHBhY2tldCBmcm9tIHRo YXQgcGF0dGVybiwgd2hpbGUga2VlcGluZyB0aGUgb3RoZXIgcGFja2V0J3MgdGltaW5ncyB1bmNo YW5nZWQ6DQoNCnxYX1hfWF9YX1hfWF9YX1hfWF9fX19fX3xYX1hfWF9YX1hfWF9YX1hfWF9fX19f Xw0KDQpCYXNpY2FsbHksIEkgZG8gbm90IG5lZWQgdG8gdHJhbnNtaXQgYW55dGhpbmcgaW4gdGhl IGdhcHMuIEkganVzdCBuZWVkIHRoZSBkZWxheS4gSG93ZXZlciwgYXMgbXkgdGltaW5nIG9mIENQ VSBpc24ndCBjb3VwbGVkIHRpZ2h0bHkgdG8gdGhlIGFkYXB0ZXIsIHNsZWVwaW5nIG9uIHRoZSBj cHUgd2lsbCBub3QgaGVscC4gVGhpcyBpcyBpbnRlbmRlZCBieQ0KZGVzaWduOiBJIHdhbnQgdG8g YmxvdyBvdXQgYSBtYXNzaXZlIG51bWJlciBvZiBwYWNrZXRzIHdpdGggZXhhY3QgdGltaW5nIGFu ZCB2aXJ0dWFsbHkgbm8gQ1BVIHJlcXVpcmVtZW50Lg0KDQpXaGF0IEkgbG9vayBmb3IgaXMgYSBz bGVlcCBpbnN0cnVjdGlvbiBleGVjdXRlZCBieSB0aGUgYWRhcHRlciwgd2hpY2ggaXMgYnVmZmVy ZWQgaW4gb3JkZXIgd2l0aCB0aGUgcGFja2V0cyBpc3N1ZWQgYnkgcnRlX2V0aF90eF9idXJzdC4N CihQbHVzIHNvbWUgYmFzaWMgbWF0aCBydWxlcyBob3cgdG8gY29udmVydCBwYWNrZXQgc2l6ZXMg dG8gZHVyYXRpb25zLCBiYXNlZCBvbiBsaW5lIHNwZWVkcykuDQoNCkFtIFNhLiwgMTMuIE9rdC4g MjAxOCB1bSAyMzowNSBVaHIgc2NocmllYiBDbGlmZiBCdXJkaWNrIDxzaGFrbGVlM0BnbWFpbC5j b208bWFpbHRvOnNoYWtsZWUzQGdtYWlsLmNvbT4+Og0KPg0KPiBNYXliZSBJJ20gbWlzdW5kZXJz dGFuZGluZyB0aGUgcHJvYmxlbSwgYnV0IGRvIHlvdSBuZWVkIHRvIHRyYW5zbWl0IGFueXRoaW5n PyBDYW4geW91IGp1c3QgdXNlIHRoZSBydGVfY3ljbGVzIGZ1bmN0aW9ucyB0byBzbGVlcCBmb3Ig dGhlIHJlbWFpbmluZyBwZXJpb2QgaW4gMjBtcz8NCj4NCj4gT24gVGh1LCBPY3QgMTEsIDIwMTgg YXQgMjowNCBBTSBQaGlsaXBwIEIgPHBoaWxpcHBiLm9udG91ckBnbWFpbC5jb208bWFpbHRvOnBo aWxpcHBiLm9udG91ckBnbWFpbC5jb20+PiB3cm90ZToNCj4+DQo+PiBIaSBhbGwhDQo+Pg0KPj4g SSBhbSB3b3JraW5nIG9uIGFuIFJUUCB0ZXN0IHRyYWZmaWMgZ2VuZXJhdG9yLiBUaGUgYmFzaWMg aWRlYSBpcw0KPj4gY2xvY2tfbmFub3NsZWVwIHByb3ZpZGluZyBhIDIwbXMgY2xvY2sgY3ljbGUg dG8gc3RhcnQgYSAoYmlnKSBudW1iZXINCj4+IG9mIHJ0ZV9ldGhfdHhfYnVyc3RzLCBzZW5kaW5n IGVxdWFsbHkgc2l6ZWQgYnVmZmVycy4gQXMgbG9uZyBhcyB0aGUNCj4+IHRpbWluZyB3aXRoaW4g YSAyMG1zIGN5Y2xlIGlzIGRpY3RhdGVkIHByaW1hcmlseSBieSB0aGUgbGluZSBzcGVlZCwgSQ0K Pj4gY2FuIGJlIHN1cmUgdGhhdCBub3QganVzdCB0aGUgZmlyc3QgYnVmZmVyIG9mIGVhY2ggY3lj bGUgaGFzIGEgcGVyaW9kDQo+PiBvZiAyMG1zLCBidXQgYWxzbyB0aGUgbi10aCBidWZmZXIuIChJ IGhhdmUgc2VudCBuLTEgYnVmZmVycyBiZWZvcmUNCj4+IHdpdGggdGhlIHNhbWUgc2l6ZS4pDQo+ Pg0KPj4gQmFzaWNhbGx5LCBJIHNlZSBvbmUgMjBtcyBpbnRlcnZhbCBhcyBhIHNlcmllcyBvZiB0 aW1lIHNsb3RzLCBlYWNoDQo+PiBjYXBhYmxlIHRvIHN0b3JlIGFuIGFjdGl2ZSBSVFAgc3RyZWFt LiBNeSBxdWVzdGlvbiBub3cgaXMsIHdoYXQgdG8gdG8NCj4+IHdpdGggaW5hY3RpdmUgdGltZSBz bG90cz8gQXMgbG9uZyBhcyBhbGwgYWN0aXZlIHN0cmVhbXMgYXJlIGxvY2F0ZWQNCj4+IGF0IGNv bnNlY3V0aXZlIHRpbWUgc2xvdHMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIDIwbXMgaW50ZXJ2YWws DQo+PiBldmVyeXRoaW5nIGlzIGZpbmUuIEJ1dCBJIGNhbm5vdCBndWFyYW50ZWUgdGhpcy4NCj4+ DQo+PiBXaGF0IEkgbmVlZCBpcyBzb21lIGtpbmQgb2YgZHVtbXkgYnVmZmVyLCB3aGljaCBpcyBu b3QgdHJhbnNtaXR0ZWQNCj4+IGJ1dCBnZW5lcmF0ZXMgYSB0eCB0aW1pbmcgZ2FwIGFzIGEgYnVm ZmVyIG9mIFggYnl0ZXMgd291bGQgdGFrZSB0byBiZQ0KPj4gdHJhbnNmZXJyZWQuDQo+Pg0KPj4g SXMgc3VjaCBhIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQ/IEFzIGEgd29ya2Fyb3VuZCwgSSBhbHJl YWR5IHRob3VnaHQNCj4+IGFib3V0IHNlbmRpbmcgaW52YWxpZCBwYWNrZXRzIChiYWQgSVAgSGVh ZGVyIGNoZWNrc3VtPykuIEhvd2V2ZXIsDQo+PiB0aGlzIHdvbid0IGJlIG9wdGltYWwgd2hlbiBt dWx0aXBsZSBsaW5lcyBhcmUgYWdncmVnYXRlZC4NCj4+DQo+PiBUaGFua3MhDQo+PiBQaGlsaXBw IEJleWVyDQo=