From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 21BDE14EC for ; Mon, 6 Feb 2017 18:58:00 +0100 (CET) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP; 06 Feb 2017 09:57:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,342,1477983600"; d="scan'208";a="61805683" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga005.fm.intel.com with ESMTP; 06 Feb 2017 09:57:59 -0800 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 6 Feb 2017 09:57:59 -0800 Received: from fmsmsx113.amr.corp.intel.com ([169.254.13.230]) by fmsmsx111.amr.corp.intel.com ([169.254.12.234]) with mapi id 14.03.0248.002; Mon, 6 Feb 2017 09:57:59 -0800 From: "Wiles, Keith" To: Olivier Matz CC: "Richardson, Bruce" , "dev@dpdk.org" , "david.marchand@6wind.com" Thread-Topic: [dpdk-dev] [RFC 0/8] eal: dynamic logs Thread-Index: AQHSgH0hvxehRkEiZk23JRZnmsfoCKFchK+AgAAGAwCAAA42AIAAB1+AgAAHr4CAAAZ8gIAAG8iA Date: Mon, 6 Feb 2017 17:57:58 +0000 Message-ID: References: <1486387756-16865-1-git-send-email-olivier.matz@6wind.com> <20170206134903.GA256940@bricha3-MOBL3.ger.corp.intel.com> <20170206151034.1ae936bc@platinum> <20170206162749.46bdcf22@platinum> <20170206171831.6c8996e7@platinum> In-Reply-To: <20170206171831.6c8996e7@platinum> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.19.238] Content-Type: text/plain; charset="utf-8" Content-ID: <11AC3C172160E84DB80EACFEDDFB080E@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC 0/8] eal: dynamic logs 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: Mon, 06 Feb 2017 17:58:01 -0000 DQo+IE9uIEZlYiA2LCAyMDE3LCBhdCAxMDoxOCBBTSwgT2xpdmllciBNYXR6IDxvbGl2aWVyLm1h dHpANndpbmQuY29tPiB3cm90ZToNCj4gDQo+IE9uIE1vbiwgNiBGZWIgMjAxNyAxNTo1NToyMCAr MDAwMCwgIldpbGVzLCBLZWl0aCINCj4gPGtlaXRoLndpbGVzQGludGVsLmNvbT4gd3JvdGU6DQo+ Pj4gT24gRmViIDYsIDIwMTcsIGF0IDk6MjcgQU0sIE9saXZpZXIgTWF0eiA8b2xpdmllci5tYXR6 QDZ3aW5kLmNvbT4NCj4+PiB3cm90ZToNCj4+PiANCj4+PiBPbiBNb24sIDYgRmViIDIwMTcgMTU6 MDE6MzAgKzAwMDAsICJXaWxlcywgS2VpdGgiDQo+Pj4gPGtlaXRoLndpbGVzQGludGVsLmNvbT4g d3JvdGU6ICANCj4+Pj4+IE9uIEZlYiA2LCAyMDE3LCBhdCA4OjEwIEFNLCBPbGl2aWVyIE1hdHog PG9saXZpZXIubWF0ekA2d2luZC5jb20+DQo+Pj4+PiB3cm90ZToNCj4+Pj4+IA0KPj4+Pj4gSGkg QnJ1Y2UsDQo+Pj4+PiANCj4+Pj4+IE9uIE1vbiwgNiBGZWIgMjAxNyAxMzo0OTowMyArMDAwMCwg QnJ1Y2UgUmljaGFyZHNvbg0KPj4+Pj4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPiB3cm90 ZTogICAgDQo+Pj4+Pj4gT24gTW9uLCBGZWIgMDYsIDIwMTcgYXQgMDI6Mjk6MDhQTSArMDEwMCwg T2xpdmllciBNYXR6IHdyb3RlOiAgICANCj4+Pj4+Pj4gVGhlIG9iamVjdGl2ZSBvZiB0aGlzIFJG QyBwYXRjaHNldCBpcyB0byBpbnRyb2R1Y2UgYSBmcmFtZXdvcmsNCj4+Pj4+Pj4gdG8gc3VwcG9y dCBkeW5hbWljIGxvZyB0eXBlcyBpbiBFQUwuIEl0IGFsc28gcHJvdmlkZXMgb25lDQo+Pj4+Pj4+ IGV4YW1wbGUgb2YgdXNlIChpbiBpNDBlKS4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEZlYXR1cmVzOg0K Pj4+Pj4+PiAtIGxvZyB0eXBlcyBhcmUgaWRlbnRpZmllZCBieSBhIHN0cmluZw0KPj4+Pj4+PiAt IGF0IHJlZ2lzdHJhdGlvbiwgYSB1bmlxIGlkZW50aWZpZXIgaXMgYXNzb2NpYXRlZCB0byBhIGxv ZyB0eXBlDQo+Pj4+Pj4+IC0gZWFjaCBsb2cgdHlwZSBjYW4gaGF2ZSBpdHMgbGV2ZWwgY2hhbmdl ZCBkeW5hbWljYWxseQ0KPj4+Pj4+PiAtIGV4dGVuZCBjb21tYW5kIGxpbmUgcGFyYW1ldGVycyB0 byBzZXQgdGhlIGxvZyBsZXZlbCBvZiBhDQo+Pj4+Pj4+IHNwZWNpZmljIHR5cGUsIG9yIGxvZ3Mg bWF0Y2hpbmcgYSByZWd1bGFyIGV4cHJlc3Npb24NCj4+Pj4+Pj4gLSBrZWVwIGNvbXBhdCB3aXRo IG90aGVyIGxlZ2FjeSB0eXBlcyAoZWFsLCBtYWxsb2MsIHJpbmcsIHVzZXIqLA0KPj4+Pj4+PiBl dGMuLi4ga2VlcCB0aGVpciBoYXJkY29kZWQgbG9nIHR5cGUgdmFsdWUpDQo+Pj4+Pj4+IA0KPj4+ Pj4+PiBBdCB0aGUgZW5kLCB3aGVuLCB3ZSBjYW4gZXhwZWN0IHRoYXQgYWxsIG5vbi1kYXRhcGxh bmUgbG9ncyBhcmUNCj4+Pj4+Pj4gbW92ZWQgdG8gYmUgZHluYW1pYywgc28gd2UgY2FuIGVuYWJs ZS9kaXNhYmxlIHRoZW0gYXQgcnVudGltZSwNCj4+Pj4+Pj4gd2l0aG91dCByZWNvbXBpbGluZy4g TWFueSBkZWJ1ZyBvcHRpb25zIGNhbiBwcm9iYWJseSBiZSByZW1vdmVkDQo+Pj4+Pj4+IGZyb20g Y29uZmlndXJhdGlvbjoNCj4+Pj4+Pj4gJCBnaXQgZ3JlcCBERUJVRyBjb25maWcvY29tbW9uX2Jh c2UgfCB3YyAtbA0KPj4+Pj4+PiA4OQ0KPj4+Pj4+PiANCj4+Pj4+Pj4gQ29tbWVudHMgYXJlIHdl bGNvbWUhDQo+Pj4+Pj4+IA0KPj4+Pj4+IEluaXRpYWwgc2NhbiB0aHJvdWdoIHRoZSBwYXRjaGVz IHRoaXMgbG9va3MgcHJldHR5IGdvb2QuIEhvd2V2ZXIsDQo+Pj4+Pj4gcmF0aGVyIHRoYW4gY29u dGludWluZyB3aXRoIG91ciBvd24gbG9nZ2luZyBzeXN0ZW0sIGhhdmUgeW91DQo+Pj4+Pj4gaW52 ZXN0aWdhdGVkIHdoYXQgb3RoZXIgdHJhY2luZyBhbmQgbG9nZ2luZyBzeXN0ZW1zIG1pZ2h0IGJl IG91dA0KPj4+Pj4+IHRoZXJlIHRoYXQgd2UgY291bGQgcG9zc2libHkgcmUtdXNlPyBDb3VsZCBM VFRuZyBiZSBhIGdvb2QgZml0DQo+Pj4+Pj4gZm9yIERQREssIHBlcmhhcHM/ICAgIA0KPj4+Pj4g DQo+Pj4+PiBJIGRpZCBub3QgaW52ZXN0aWdhdGUgbXVjaCBhYm91dCBleGlzdGluZyBsb2dnaW5n IHN5c3RlbS4gSSBhZ3JlZQ0KPj4+Pj4gdGhhdCBjb3VsZCBiZSBhIGdvb2QgYWx0ZXJuYXRpdmUg dG9vLg0KPj4+Pj4gDQo+Pj4+PiBPbiB0aGUgb3RoZXIgaGFuZCwgSSdtIG5vdCByZWFsbHkgY29u ZmlkZW50IGluIGFkZGluZyBhIGRlcGVuZGVuY3kNCj4+Pj4+IHRvIGFuIGV4dGVybmFsIGxpYiBm b3IgYSBjb3JlIGNvbXBvbmVudCBsaWtlIGVhbC4gV2hhdCBpZiB3ZQ0KPj4+Pj4gZGVpY2lkZSB0 b21vcnJvdyB0byBwb3J0IGRwZGsgdG8gd2luZG93cyBvciBhbnkgYmFyZW1ldGFsIGVudj8NCj4+ Pj4+IA0KPj4+Pj4gQWxzbywgYXMgZmFyIGFzIEkgcmVtZW1iZXIsIHRoZSBjb21wb25lbnRzIHRo YXQgZGVwZW5kIG9uIGV4dGVybmFsDQo+Pj4+PiBsaWJyYXJpZXMgYXJlIGRpc2FibGVkIHRvZGF5 IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBob3cgdG8gcHJvcGVybHkNCj4+Pj4+IG1hbmFnZSB0aGUg ZGVwZW5kZW5jeSAoZXg6IHBtZC1wY2FwLCB2aG9zdC1udW1hLCBwbWQtbWx4LCDigKYpLiAgICAN Cj4+Pj4gDQo+Pj4+IEluIGEgcHJldmlvdXMgcHJvamVjdCBJIHdvcmtlZCBpbiB3ZSBkaWQgbm90 IHVzZSBsb2cgbGV2ZWxzIHBlciBzYXkNCj4+Pj4gZm9yIGRlYnVnZ2luZyBjb2RlLiBXZSBkaWQg aGF2ZSBhIGNvdXBsZSBnZW5lcmFsIGxvZ2dpbmcgZm9yIG1pc2MNCj4+Pj4gdHlwZSBsb2dnaW5n Lg0KPj4+PiANCj4+Pj4gV2hlbiBkZWJ1Z2dpbmcgeW91IG5vcm1hbGx5IG9ubHkgbmVlZCBhIGNv dXBsZSBmaWxlcyBvciBmdW5jdGlvbnMNCj4+Pj4gdGhhdCBuZWVkIHRvIHByb2R1Y2UgbG9nZ2lu ZyBvdXRwdXQuIEluIHRoYXQgY2FzZSB3ZSBkZWZpbmVkDQo+Pj4+IGxvZ2dpbmcgdXNpbmcgdGhl IGZpbGUgYW5kIGZ1bmN0aW9uIGFzIHRoZSBrZXkgdG8gZGV0ZXJtaW5lIGlmIHRoZQ0KPj4+PiBk eW5hbWljIGxvZyBtZXNzYWdlcyBhcmUgb3V0cHV0LiBXZSB1c2UgYSBzdHJpbmcgaW4gdGhlIGZv cm1hdCBvZg0KPj4+PiAiZmlsZW5hbWU6ZnVuY3Rpb27igJ0gd2UgYWxsb3dlZCBmb3IgYSB3aWxk Y2FyZCB0byBlbmFibGUgYWxsDQo+Pj4+IGZ1bmN0aW9ucyBpbiBhIGZpbGUgb3IgeW91IGNhbiBz ZWxlY3QgYSBzaW5nbGUgZnVuY3Rpb24uDQo+Pj4+IA0KPj4+PiBVc2luZyB0aGlzIHR5cGUgb2Yg bG9nZ2luZyBmb3IgZGVidWdnaW5nIGEgc3lzdGVtIGlzIHRoZSBtb3N0DQo+Pj4+IHVzZWZ1bCBp ZiB5b3UganVzdCB3YW50IGdlbmVyYWwgbG9nZ2luZyB0aGVuIHdlIGRlZmluZSBzb21ldGhpbmcN Cj4+Pj4gc2ltaWxhciB0byB3aGF0IHdlIGhhdmUgdG9kYXkuICANCj4+PiANCj4+PiBJIHRoaW5r IHRoZSAiZmlsZW5hbWU6ZnVuY3Rpb24iIGlzIG5vdCBhZGVxdWF0ZSBpZiB5b3UgYXJlIG5vdCB0 aGUNCj4+PiBkZXZlbG9wZXIgb2YgdGhhdCBjb2RlLiBFeGFtcGxlOiB5b3UgaGF2ZSBhIHByb2Js ZW0gd2l0aCBhIFBNRCwgeW91DQo+Pj4ganVzdCBlbmFibGUgYWxsIGxvZ3MgZm9yIHRoaXMgUE1E IChvciBldmVuIGFsbCBQTURzKSwgeW91IGNhbiBjaGVjaw0KPj4+IGl0IGFuZCBpZiB5b3UgZG9u J3QgZmluZCB0aGUgcHJvYmxlbSwgeW91IGNhbiBzZW5kIHRoZW0gb24gdGhlIE1MDQo+Pj4gZm9y IGhlbHAuIEkgdGhpbmsgeW91IGRvbid0IGNhcmUgd2hlcmUgdGhlIGNvZGUgaXMgbG9jYXRlZC4g IA0KPj4gDQo+PiBJIGRvIG5vdCB1bmRlcnN0YW5kIHlvdXIgY29uY2VybiB0aGUgZGVzaWduIGFs bG93cyB5b3UgdG8gZW5hYmxlIGENCj4+IHNpbmdsZSBmaWxlLCB3aGljaCBtZWFucyBhbGwgZnVu Y3Rpb25zIHdpdGhpbiBhIGZpbGUg4oCcZmlsZW5hbWU6KiIuDQo+IA0KPiBJIHRoaW5rIHRoZSB1 c2VyIGRvZXNuJ3Qgd2FudCB0byBjYXJlIGFib3V0IHRoZSBmaWxlIG5hbWUgb2YgdGhlIEMNCj4g c291cmNlLg0KDQpUaGUgZmlsZW5hbWUgaXMganVzdCBvbmUgd2F5IHRvIGlzb2xhdGUgdGhlIGxv Z2dpbmcgb3V0cHV0IGZvciBkZWJ1Z2dpbmcgaXQgbmVlZHMgdG8gYmUgZWFzaWx5IGRlZmluZWQv Zm91bmQuIElNTyA4MCUgb2YgZGVidWdnaW5nIGlzIGxvY2F0aW5nIGFuZCBpc29sYXRpbmcgdGhl IHByb2JsZW0gcXVpY2tseSBhbmQgaW4gbW9zdCBjYXNlcyB0aGUgb3V0cHV0IGZyb20gYSBzaW5n bGUgb3IgdmVyeSBzbWFsbCBzZXQgb2YgZmlsZXMgZXZlbiBpc29sYXRlZCB0byBhIHNtYWxsIHNl dCBvZiBmdW5jdGlvbnMgaW4gdGhvc2UgZmlsZXMgaXMgdGhlIGJlc3QuDQoNCj4gDQo+IA0KPj4g SW4NCj4+IHRoZSBjYXNlIG9mIHRoZSBhbGwgUE1EcyBpdCBub3QgdGhlIGJlc3Qgd2F5IHRvIGRl YnVnIGFzIHlvdSBnZXQgYQ0KPj4gbG90IG9mIG91dHB1dCB0aGF0IG1heSBub3QgYmUgZXZlbiBy ZWxhdGVkIHRvIHRoZSBwcm9ibGVtIHlvdSBhcmUNCj4+IHRyeWluZyB0byBzb2x2ZS4gVGhlIGRl c2lnbiBkb2VzIGFsbG93IHlvdSB0byBlbmFibGUgb25lIG9yIG1vcmUgUE1Ecw0KPj4gaWYgc2F5 IHlvdSBhcmUgZGVidWdnaW5nIHNheSB0d28gUE1Ecy4gVGhlIG91dHB1dCB3b3VsZCBiZSBtb3Jl DQo+PiByZWFkYWJsZSBhbmQgbGVzcyBjbHV0dGVyZWQgd2l0aCBvdXRwdXQgdGhhdCBpcyBub3Qg Z2VybWFuZSB0byB0aGUNCj4+IHByb2JsZW0uDQo+PiANCj4+IElmIEkgd2FzIGRlYnVnZ2luZyB0 aGUgVEFQIGRyaXZlciBJIHdvdWxkIGxpa2UgdG8ganVzdCBlbmFibGUNCj4+IOKAnHJ0ZV9ldGhf dGFwX3BtZC5jOirigJ0gb3IgbWF5YmUgd2UgY2FuIGRlZmluZSBhIHNvbWV0aGluZyByZWdpc3Rl cmVkDQo+PiBvdGhlciB0aGVuIGZpbGUgbmFtZSBlLmcuIHJ0ZV9sb2dfcmVnaXN0ZXIo4oCcdGFw X3BtZOKAnSk7IOKAnHRhcF9wbWQ6KuKAnSBvcg0KPj4g4oCcdGFwX3BtZDpwbWRfcnhfYnVyc3Ti gJ0gb3Ig4oCcdGFwX3BtZDpydGVfdGFwX3BtZF9wcm9iZeKAnS4gV2UgY291bGQgZm9yDQo+PiB0 aGUgUE1EcyBqdXN0IHVzZSB0aGUgUE1EIG5hbWUgd2UgZGVmaW5lIGF0IHJlZ2lzdHJhdGlvbi4N Cj4gDQo+IFRoYXQncyB2ZXJ5IHNpbWlsYXIgdG8gd2hhdCBpcyBwcm9wb3NlZCBpbiB0aGUgcGF0 Y2guLi4NCj4gDQo+IFNlZToNCj4gDQo+ICsJaTQwZV9sb2d0eXBlX2luaXQgPSBydGVfbG9nX3Jl Z2lzdGVyKCJwbWQuaTQwZS5pbml0Iik7DQo+IA0KPiArCWk0MGVfbG9ndHlwZV9kcml2ZXIgPSBy dGVfbG9nX3JlZ2lzdGVyKCJwbWQuaTQwZS5kcml2ZXLigJ0pOw0KDQpUaGVzZSBzdHJpbmdzIGFy ZSBqdXN0IGFyYml0cmFyeSBzdHJpbmdzIHVubGVzcyB5b3UgYXJlIGZvcmNpbmcgYSBmb3JtYXQs IHdoaWNoIEkgZGlkIG5vdCBzZWUuIFRoZSBmaWxlbmFtZSBhbmQgZnVuY3Rpb24gYXJlIGNvbnN0 YW50IHN0cmluZ3MgSSBjb3VsZCBlYXNpbHkgZGV0ZXJtaW5lIGFzIGEgZGV2ZWxvcGVyLiBUaGUg cHJvYmxlbSB3aXRoIHJlZ2lzdGVyaW5nIGEgc3RyaW5nIG1lYW5zIEkgbmVlZCB0byBmaW5kIHRo YXQgc3RyaW5nIG9yIGhhdmUgYSB3YXkgdG8gZGlzcGxheSBhbGwgb2YgdGhlIHN0cmluZ3Mgdmlh IGEgQ0xJLg0KDQpUaGUg4oCYOuKAmSBpbiB0aGUgc3RyaW5nIGlzIHJlcXVpcmVkIGluIG15IHN1 Z2dlc3Rpb24gYW5kIEkgd291bGQgc3VnZ2VzdCB0aGUgZm9ybWF0IG9mIHRoZSBzdHJpbmcgYmUg ZGVmaW5lZCwgc28gdGhlIGRldmVsb3BlciBjYW4gd2lsZGNhcmRpbmcgdG8gZW5hYmxlIG1lc3Nh Z2VzLiBSZXF1aXJpbmcgYSBmb3JtYXQgaGVscHMgdGhlIGRldmVsb3BlciBhbmQgdXNlciB0byBx dWlja2x5IGxvY2F0ZSB0aGUgc2V0IG9mIG1lc3NhZ2VzIHRvIGxvZywgdGhlIGZ1bmN0aW9uIGxl dmVsIGlzIGp1c3QgYSBjbGVhbiB3YXkgdG8gaXNvbGF0ZSB0aGUgbG9ncyBhZ2Fpbi4NCg0KPiAN Cj4gDQo+PiANCj4+IE1heWJlIHRoZSByZWdpc3RlciBvcHRpb24gYnJpbmdzIHVzIGNsb3NlciB0 byB0aGUgc2FtZSBnb2FsLCBidXQgYWRkDQo+PiB0aGUgZnVuY3Rpb24gb3Igc2VsZWN0aW5nIGEg c3BlY2lmaWMgc2V0IGZ1bmN0aW9ucy4gVGhlIGRlc2lnbiBkb2VzDQo+PiByZXF1aXJlIGEgbW9y ZSBhY3RpdmUgbG9va3VwIGF0IHJ1biB0aW1lIGZvciBkeW5hbWljIGRlYnVnZ2luZyBhbmQgd2UN Cj4+IHdvdWxkIGhhdmUgdG8gbWFrZSBzdXJlIGlmIGVuYWJsZWQgaXQgZG9lcyBub3QgZWZmZWN0 IHBlcmZvcm1hbmNlLiBXZQ0KPj4gdXNlZCBhIGhhc2ggdGFibGUgdG8gbG9jYXRlIHRoZSBlbmFi bGVkIGRlYnVnIGxvZyBvdXRwdXQuDQo+IA0KPiBBZ2FpbiwgSSBkb24ndCByZWFsbHkgc2VlIHRo ZSBhZGRlZCB2YWx1ZSB0byBiZSBhYmxlIGVuYWJsZSBsb2dzIG9uIGENCj4gcGVyIGZ1bmN0aW9u IGJhc2lzLiBGb3IgdXNlcnMsIGl0IGJyaW5ncyBtb3JlIGNvbXBsZXhpdHkuDQoNCkkgcmVhbGx5 IGRvIG5vdCBzZWUgeW91IGFyZ3VtZW50IGhlcmUgYXMgSSBhbSBzdXJlIHdoZW4gZGVidWdnaW5n IGEgZnVuY3Rpb24geW91IGFkZCBsb2cgbWVzc2FnZXMgaW4gdGhlIGZ1bmN0aW9uLCB3aGljaCBt ZWFucyB5b3UgYXJlIG1vc3QgbGlrZWx5IGRlYnVnZ2luZyB0aGF0IGZ1bmN0aW9uLg0KDQpBbGxv d2luZyB0aGUgZGV2ZWxvcGVycyB0byBzZWxlY3RpdmVseSBlbmFibGUgbG9nZ2luZyBvdXRwdXQg aW4gYSBDTEkgaXMgdmVyeSBwb3dlcmZ1bCBhbmQgeW91IGNhbiBzZWUgdGhpcyB0eXBlIG9mIGRl c2lnbiBpbiBWUFAgYW5kIG90aGVyIHN5c3RlbXMuDQoNCkVuYWJsaW5nIGEgc2luZ2xlIG9yIHNl bGVjdCBzZXQgb2YgZnVuY3Rpb25zIGFsbG93cyB0aGUgZGV2ZWxvcGVyIHRvIHJlbW92ZSBhbGwg b2YgdGhlIGNsdXR0ZXIgYW5kIGdldCBvbmx5IHdoYXQgdGhleSB3YW50LCBpbiBzb21lIGNhc2Vz IHRoZSBsb2cgc3RvcmFnZSBtYXliZSBsaW1pdGVkIG9yIGRlYnVnZ2luZyBvdmVyIGEgc2VyaWFs IGxpbmUvaW50ZXJuZXQgdG8gYSByZW1vdGUgbG9jYXRpb24sIC4uLg0KDQo+IA0KPiANCj4+IFRo ZSBkZXNpZ24gYWxsb3dlZCB1cyB0byB1c2UgdGhlIGNvbW1hbmQgbGluZSBvciBDTEkgdG8NCj4+ IGVuYWJsZS9kaXNhYmxlIGxvZ2dpbmcgb3V0cHV0Lg0KPiANCj4gU2FtZSB3aXRoIHRoaXMgcHJv cG9zYWwuDQoNCkJUVywgaW4geW91ciBpNDBlIGV4YW1wbGUgeW91IGRvIGNvbm5lY3QgdGhlIGxv Z2dpbmcgZGVidWcgdG8gdGhlIENMSS4gVW5sZXNzIHlvdSBtZWFudCBzb21ldGhpbmcgZGlmZmVy ZW50Lg0KDQpJIGFtIG5vdCB0cnlpbmcgdG8gYXJndWUgaGVyZSBvbmx5IHdhbnRpbmcgdG8gbWFr ZSBzdXJlIHlvdSBhZGRyZXNzIGFsbCBvZiB0aGUgcmVhc29ucyB0byBoYXZlIGR5bmFtaWMgbG9n Z2luZy4gSSBoYXZlIG5vdCBsb29rZWQgYXQgdGhlIGNvZGUgaW4gZGVwdGgsIGJ1dCB0aGluayBp dCBpcyBjbG9zZSBhbmQgbmVlZHMgdG8gaGF2ZSBhIGZldyBzdHJpY3RlciByZXF1aXJlbWVudHMg d2UgY2FuIGVuZm9yY2UgdG8gbWFrZSBpdCBzaW1wbGVyIGZvciBkZXZlbG9wZXJzIHRvIHVzZS4N Cg0KQ2FuIHRoZSBwYXRjaCBzZXQgYmUgYXBwbGllZCB0byBhIHZlcnNpb24gb2YgRFBESywgc28g SSBjYW4gYmV0dGVyIHVuZGVyc3RhbmQgeW91ciBkZXNpZ24/DQoNClJlZ2FyZHMsDQpLZWl0aA0K DQo=