From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web12.14165.1583156618313357383 for ; Mon, 02 Mar 2020 05:43:38 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Mar 2020 05:43:37 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,507,1574150400"; d="scan'208";a="438281472" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 02 Mar 2020 05:43:37 -0800 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 2 Mar 2020 05:43:37 -0800 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 2 Mar 2020 21:43:35 +0800 Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.1713.004; Mon, 2 Mar 2020 21:43:35 +0800 From: "Liming Gao" To: "Rabeda, Maciej" , "devel@edk2.groups.io" , Laszlo Ersek , "Kinney, Michael D" , Andrew Fish , "Leif Lindholm (Linaro address)" CC: "Ni, Ray" , "Gao, Zhichao" , "Armour, Nicholas" , "Fu, Siyuan" , "Wu, Jiaxin" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v1] ShellPkg: Fix 'ping' command Ip4 receive flow. Thread-Topic: [edk2-devel] [PATCH v1] ShellPkg: Fix 'ping' command Ip4 receive flow. Thread-Index: AQHV7V1lV4ffxVHDRU2SAtogmqLGr6gufvSAgABKLwCAASF4kIAADKGAgACGpYD//4hIAIAD4bjA Date: Mon, 2 Mar 2020 13:43:35 +0000 Message-ID: <19db2cca57244b9ebf7b6e4c8d624ea6@intel.com> References: <20200227110212.1070-1-maciej.rabeda@linux.intel.com> <4dcf2f0b-c86e-7533-3428-ad07e9129f2d@redhat.com> <3e3521ab1a17472a921f238db1f8dd9b@intel.com> <03ff9f49-f383-1fcf-bf1e-37a651521933@linux.intel.com> <71763e1633e3494ea2e3daca396080f2@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWFjaWVqOg0KICBUaGFua3MgZm9yIHlvdXIgYW5hbHlzaXMuIEkgYWdyZWUgd2l0aCB5b3UuIFRo aXMgY2hhbmdlIGlzIG5vdCBuZWNlc3NhcnkgdG8gY2F0Y2ggZWRrMiBzdGFibGUgdGFnIDIwMjAw Mi4NCg0KVGhhbmtzDQpMaW1pbmcNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogUmFiZWRhLCBNYWNpZWogPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPg0KPiBTZW50 OiBGcmlkYXksIEZlYnJ1YXJ5IDI4LCAyMDIwIDg6MzUgUE0NCj4gVG86IEdhbywgTGltaW5nIDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMYXN6bG8gRXJzZWsg PGxlcnNla0ByZWRoYXQuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT47IExlaWYgTGluZGhv bG0gKExpbmFybyBhZGRyZXNzKSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiBDYzogTmks IFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwu Y29tPjsgQXJtb3VyLCBOaWNob2xhcyA8bmljaG9sYXMuYXJtb3VyQGludGVsLmNvbT47IEZ1LCBT aXl1YW4NCj4gPHNpeXVhbi5mdUBpbnRlbC5jb20+OyBXdSwgSmlheGluIDxqaWF4aW4ud3VAaW50 ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MV0gU2hlbGxQa2c6 IEZpeCAncGluZycgY29tbWFuZCBJcDQgcmVjZWl2ZSBmbG93Lg0KPiANCj4gTGltaW5nLA0KPiAN Cj4gSSBhc3N1bWUgdGhhdCBDVkUtMjAxOS0xNDU1OSByZWxhdGVzIHRvIHByb2JsZW1zIHdpdGgg bmV0d29yayBkcml2ZXJzDQo+IHdpdGhpbiBOZXR3b3JrUGtnLg0KPiBCWiAyMDMyIGFuZCB0aGlz IHBhdGNoIGZpeCBhZGRyZXNzIGluY29ycmVjdCB1c2FnZSBvZiBJUDQgcHJvdG9jb2wgYnkNCj4g U2hlbGxQa2cgJ3BpbmcnIGNvbW1hbmQgKHNpZ25hbGxpbmcgcGFja2V0IHJlY3ljbGluZyBhZnRl ciB0cmlnZ2VyaW5nDQo+IElwNC0+UmVjZWl2ZSgpIG9uIHRoZSBzYW1lIFJ4IHRva2VuKS4NCj4g DQo+IFRoaXMgaXNzdWUgd2FzIHJlcG9ydGVkIGluIEp1bHkgMjAxOSBhbmQgb2NjdXJzIGJ5IGV4 ZWN1dGluZyBhIHNwZWNpZmljDQo+IGZ1enppbmcgc2NlbmFyaW8gKGFzIGRlc2NyaWJlZCBpbiBC WikuDQo+IEFzIExhc3psbyBoYXMgbWVudGlvbmVkLCBpdCBpcyBub3QgYSBuZXcgYnVnIChpbnRy b2R1Y2VkIGluIDIwMTEpLg0KPiANCj4gQmFzZWQgb24gdGhlIGFib3ZlLCBJIGNhbiBhZHZpc2Ug bW92aW5nIHRoaXMgaXNzdWUgb3V0IG9mIENWRSBzY29wZSAoYW5kDQo+IGZyb20gc3RhYmxlLTIw MjAwMikuDQo+IEhvd2V2ZXIsIGlmIHRoZSBDVkUgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgIm92ZXJh bGwgcHJvYmxlbXMgd2l0aCBVRUZJIEZXDQo+IG5ldHdvcmtpbmciLCB0aGVuICdwaW5nJyBjb21t YW5kIHNlZW1zIHRvIGJlIGluIENWRSBzY29wZSwgZGVzcGl0ZSB0aGUNCj4gY29kZSByZXNpZGlu ZyBpbiBTaGVsbFBrZy4NCj4gDQo+IFRoYW5rcywNCj4gTWFjaWVqDQo+IA0KPiBPbiAyOC1GZWIt MjAgMTI6NTAsIEdhbywgTGltaW5nIHdyb3RlOg0KPiA+IE1hY2llajoNCj4gPiAgICBJIHNlZSB5 b3Ugc3VibWl0IHRoZSBwYXRjaC4gU28sIHlvdSBhcmUgaW4gdGhlIGxvb3AuIEkgZG9uJ3QgaW52 aXRlIHlvdSBhZ2Fpbi4g8J+Yig0KPiA+DQo+ID4gICAgWWVzLiBJIGFsc28gd2FudCB0byBnZXQg eW91ciBvcGluaW9uIGZvciB0aGlzIGNoYW5nZS4gRG8geW91IHRoaW5rIHdoZXRoZXIgdGhpcyBm aXggaXMgaW4gQ1ZFIHNjb3BlPyBJZiBubywgdGhpcyBjaGFuZ2Ugd2lsbCBiZSBtZXJnZWQNCj4g YWZ0ZXIgdGhpcyBzdGFibGUgdGFnIDIwMjAwMi4gSXMgaXQgT0sgdG8geW91Pw0KPiA+DQo+ID4g VGhhbmtzDQo+ID4gTGltaW5nDQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+ IEZyb206IFJhYmVkYSwgTWFjaWVqIDxtYWNpZWoucmFiZWRhQGxpbnV4LmludGVsLmNvbT4NCj4g Pj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAyOCwgMjAyMCA3OjQyIFBNDQo+ID4+IFRvOiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgTGFz emxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ID4+IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+ OyBMZWlmIExpbmRob2xtIChMaW5hcm8gYWRkcmVzcykgPGxlaWYubGluZGhvbG1AbGluYXJvLm9y Zz4NCj4gPj4gQ2M6IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBHYW8sIFpoaWNoYW8gPHpo aWNoYW8uZ2FvQGludGVsLmNvbT47IEFybW91ciwgTmljaG9sYXMgPG5pY2hvbGFzLmFybW91ckBp bnRlbC5jb20+OyBGdSwgU2l5dWFuDQo+ID4+IDxzaXl1YW4uZnVAaW50ZWwuY29tPjsgV3UsIEpp YXhpbiA8amlheGluLnd1QGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVs XSBbUEFUQ0ggdjFdIFNoZWxsUGtnOiBGaXggJ3BpbmcnIGNvbW1hbmQgSXA0IHJlY2VpdmUgZmxv dy4NCj4gPj4NCj4gPj4gTGFzemxvLA0KPiA+Pg0KPiA+PiBUaGFua3MgZm9yIHRoZSBkZXRhaWxl ZCByZXNwb25zZSBvbiB0aGUgcGF0Y2guIEFsd2F5cyBoYXBweSB0byBsZWFybg0KPiA+PiBhYm91 dCBzdHVmZiBmcm9tIHRoZSBwYXN0Lg0KPiA+Pg0KPiA+PiBMaW1pbmcsDQo+ID4+DQo+ID4+IEkg YW0gY3VycmVudGx5IHRoZSBtYWludGFpbmVyIG9mIE5ldHdvcmtQa2cgOikgSWYgeW91IHJlcXVp cmUgYWRkaXRpb25hbA0KPiA+PiBmZWVkYmFjayBmcm9tIFNpeXVhbiBvci9hbmQgSmlheGluLCB0 aGF0J3Mgb2suDQo+ID4+IFBsZWFzZSBsZXQgbWUga25vdyBpZiBhbnkgY29ycmVjdGlvbnMgdG8g dGhlIHBhdGNoIChsaWtlIENWRSBub3RlKSBhcmUNCj4gPj4gcmVxdWlyZWQgZnJvbSB5b3VyIHBv aW50IG9mIHZpZXcuDQo+ID4+DQo+ID4+IFRoYW5rcywNCj4gPj4gTWFjaWVqDQo+ID4+DQo+ID4+ IE9uIDI4LUZlYi0yMCAwMzo1OSwgTGltaW5nIEdhbyB3cm90ZToNCj4gPj4+IEFsc28gaW5jbHVk ZSBOZXR3b3JrUGtnIHJldmlld2VyIHRvIGNvbGxlY3QgdGhlIGZlZWRiYWNrIGZvciB0aGlzIGNo YW5nZS4NCj4gPj4+DQo+ID4+PiBUaGFua3MNCj4gPj4+IExpbWluZw0KPiA+Pj4+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVk aGF0LmNvbT4NCj4gPj4+PiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDI4LCAyMDIwIDE6NDAgQU0N Cj4gPj4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IG1hY2llai5yYWJlZGFAbGludXguaW50 ZWwuY29tOyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hh ZWwgRA0KPiA+Pj4+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEFuZHJldyBGaXNoIDxh ZmlzaEBhcHBsZS5jb20+OyBMZWlmIExpbmRob2xtIChMaW5hcm8gYWRkcmVzcykgPGxlaWYubGlu ZGhvbG1AbGluYXJvLm9yZz4NCj4gPj4+PiBDYzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47 IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPjsgQXJtb3VyLCBOaWNob2xhcyA8 bmljaG9sYXMuYXJtb3VyQGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2 ZWxdIFtQQVRDSCB2MV0gU2hlbGxQa2c6IEZpeCAncGluZycgY29tbWFuZCBJcDQgcmVjZWl2ZSBm bG93Lg0KPiA+Pj4+DQo+ID4+Pj4gT24gMDIvMjcvMjAgMTQ6MTQsIExhc3psbyBFcnNlayB3cm90 ZToNCj4gPj4+Pj4gKCtMaW1pbmcgYW5kIHN0ZXdhcmRzOyBDQyBOaWNrKQ0KPiA+Pj4+Pg0KPiA+ Pj4+PiBPbiAwMi8yNy8yMCAxMjowMiwgTWFjaWVqIFJhYmVkYSB3cm90ZToNCj4gPj4+Pj4+IFJF RjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMyDQo+ ID4+Pj4+Pg0KPiA+Pj4+Pj4gJ3BpbmcnIGNvbW1hbmQncyByZWNlaXZlIGZsb3cgdXRpbGl6ZXMg YSBzaW5nbGUgUnggdG9rZW4gd2hpY2ggaXQNCj4gPj4+Pj4+IGF0dGVtcHRzIHRvIHJldXNlIGJl Zm9yZSByZWN5Y2xpbmcgdGhlIHByZXZpb3VzbHkgcmVjZWl2ZWQgcGFja2V0Lg0KPiA+Pj4+Pj4g VGhpcyBjYXVzZXMgYSBzaXR1YXRpb24gd2hlcmUgdW5kZXIgSUNNUCB0cmFmZmljLA0KPiA+Pj4+ Pj4gUGluZzZPbkVjaG9SZXBseVJlY2VpdmVkKCkgZnVuY3Rpb24gd2lsbCByZWNlaXZlIGFuIGFs cmVhZHkNCj4gPj4+Pj4+IHJlY3ljbGVkIHBhY2tldCB3aXRoIEVGSV9TVUNDRVNTIHRva2VuIHN0 YXR1cyBhbmQgZmluYWxseQ0KPiA+Pj4+Pj4gZGVyZWZlcmVuY2UgaW52YWxpZCBwb2ludGVycyBm cm9tIFJ4RGF0YSBzdHJ1Y3R1cmUuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQ2M6IFJheSBOaSA8cmF5 Lm5pQGludGVsLmNvbT4NCj4gPj4+Pj4+IENjOiBaaGljaGFvIEdhbyA8emhpY2hhby5nYW9AaW50 ZWwuY29tPg0KPiA+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJh YmVkYUBsaW51eC5pbnRlbC5jb20+DQo+ID4+Pj4+PiAtLS0NCj4gPj4+Pj4+ICAgIFNoZWxsUGtn L0xpYnJhcnkvVWVmaVNoZWxsTmV0d29yazFDb21tYW5kc0xpYi9QaW5nLmMgfCA5ICsrKysrLS0t LQ0KPiA+Pj4+Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cvTGlicmFyeS9V ZWZpU2hlbGxOZXR3b3JrMUNvbW1hbmRzTGliL1BpbmcuYyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVm aVNoZWxsTmV0d29yazFDb21tYW5kc0xpYi9QaW5nLmMNCj4gPj4+Pj4+IGluZGV4IDIzNTY3ZmEy YzFiYi4uYTNmYTMyNTE1MTkyIDEwMDY0NA0KPiA+Pj4+Pj4gLS0tIGEvU2hlbGxQa2cvTGlicmFy eS9VZWZpU2hlbGxOZXR3b3JrMUNvbW1hbmRzTGliL1BpbmcuYw0KPiA+Pj4+Pj4gKysrIGIvU2hl bGxQa2cvTGlicmFyeS9VZWZpU2hlbGxOZXR3b3JrMUNvbW1hbmRzTGliL1BpbmcuYw0KPiA+Pj4+ Pj4gQEAgLTYxNCw2ICs2MTQsMTEgQEAgUGluZzZPbkVjaG9SZXBseVJlY2VpdmVkICgNCj4gPj4+ Pj4+DQo+ID4+Pj4+PiAgICBPTl9FWElUOg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICsgIC8vDQo+ID4+ Pj4+PiArICAvLyBSZWN5Y2xlIHRoZSBwYWNrZXQgYmVmb3JlIHJldXNpbmcgUnhUb2tlbg0KPiA+ Pj4+Pj4gKyAgLy8NCj4gPj4+Pj4+ICsgIGdCUy0+U2lnbmFsRXZlbnQgKFByaXZhdGUtPklwQ2hv aWNlID09IFBJTkdfSVBfQ0hPSUNFX0lQNj8oKEVGSV9JUDZfUkVDRUlWRV9EQVRBKilQcml2YXRl LT5SeFRva2VuLlBhY2tldC5SeERhdGEpLQ0KPiA+Pj4+PiBSZWN5Y2xlU2lnbmFsOigoRUZJX0lQ NF9SRUNFSVZFX0RBVEEqKVByaXZhdGUtPlJ4VG9rZW4uUGFja2V0LlJ4RGF0YSktPlJlY3ljbGVT aWduYWwpOw0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gICAgICBpZiAoUHJpdmF0ZS0+UnhDb3VudCA8 IFByaXZhdGUtPlNlbmROdW0pIHsNCj4gPj4+Pj4+ICAgICAgICAvLw0KPiA+Pj4+Pj4gICAgICAg IC8vIENvbnRpbnVlIHRvIHJlY2VpdmUgaWNtcCBlY2hvIHJlcGx5IHBhY2tldHMuDQo+ID4+Pj4+ PiBAQCAtNjMyLDEwICs2MzcsNiBAQCBPTl9FWElUOg0KPiA+Pj4+Pj4gICAgICAgIC8vDQo+ID4+ Pj4+PiAgICAgICAgUHJpdmF0ZS0+U3RhdHVzID0gRUZJX1NVQ0NFU1M7DQo+ID4+Pj4+PiAgICAg IH0NCj4gPj4+Pj4+IC0gIC8vDQo+ID4+Pj4+PiAtICAvLyBTaW5nYWwgdG8gcmVjeWNsZSB0aGUg ZWFjaCByeGRhdGEgaGVyZSwgbm90IGF0IHRoZSBlbmQgb2YgcHJvY2Vzcy4NCj4gPj4+Pj4+IC0g IC8vDQo+ID4+Pj4+PiAtICBnQlMtPlNpZ25hbEV2ZW50IChQcml2YXRlLT5JcENob2ljZSA9PSBQ SU5HX0lQX0NIT0lDRV9JUDY/KChFRklfSVA2X1JFQ0VJVkVfREFUQSopUHJpdmF0ZS0+UnhUb2tl bi5QYWNrZXQuUnhEYXRhKS0NCj4gPj4+Pj4gUmVjeWNsZVNpZ25hbDooKEVGSV9JUDRfUkVDRUlW RV9EQVRBKilQcml2YXRlLT5SeFRva2VuLlBhY2tldC5SeERhdGEpLT5SZWN5Y2xlU2lnbmFsKTsN Cj4gPj4+Pj4+ICAgIH0NCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgICAvKioNCj4gPj4+Pj4+DQo+ID4+ Pj4+ICgxKSBUaGlzIHBhdGNoIHByb3Bvc2VzIHRvIGZpeCBvbmUgb2YgdGhlIEJacyAoMjAzMikg dGhhdCBmYWxsIHVuZGVyDQo+ID4+Pj4+IENWRS0yMDE5LTE0NTU5IChqb2ludCB0cmFja2VyOiAy NTUwKS4NCj4gPj4+Pj4NCj4gPj4+Pj4gQ29uc2VxdWVudGx5Og0KPiA+Pj4+Pg0KPiA+Pj4+PiAo MWEpIERvIHdlIHdhbnQgdG8gaW5jbHVkZSB0aGlzIGluIHRoZSB1cGNvbWluZyBzdGFibGUgdGFn Pw0KPiA+Pj4+Pg0KPiA+Pj4+PiBJZiBzbywgd2UgbWlnaHQgd2FudCB0byBleHRlbmQgdGhlIGhh cmQgZmVhdHVyZSBmcmVlemUgYnkgYSBmZXcgZGF5cy4NCj4gPj4+Pj4NCj4gPj4+Pj4gKDFiKSBQ bGVhc2UgYXBwZW5kIHRoZSBzdHJpbmcgIiAoQ1ZFLTIwMTktMTQ1NTkpIiAtLSBub3RlIHRoZSBz ZXBhcmF0aW5nDQo+ID4+Pj4+IHNwYWNlISAtLSB0byB0aGUgc3ViamVjdCBsaW5lLg0KPiA+Pj4+ Pg0KPiA+Pj4+PiAoMikgSG93ZXZlcjogSSByZW1lbWJlciBmcm9tIGFuIGVhcmxpZXIgQnVnemls bGEgZW50cnkgKGNhbid0IHRlbGwNCj4gPj4+Pj4gb2ZmLWhhbmQsIHdoaWNoIG9uZSwgc29ycnkp IHRoYXQgU2hlbGxQa2cgaXNzdWVzIGFyZSAqbmV2ZXIqIGNvbnNpZGVyZWQNCj4gPj4+Pj4gQ1ZF LXdvcnRoeSwgYmVjYXVzZSB0aGUgc2hlbGwgaXMgbm90IGNvbnNpZGVyZWQgYSAicHJvZHVjdGlv biBlbGVtZW50Ig0KPiA+Pj4+PiBvZiB0aGUgVUVGSSBib290IHBhdGguDQo+ID4+Pj4gSSBtaXNy ZW1lbWJlcmVkIC0tIHRoZXJlIGlzIGluZGVlZCBhIGNvbW1lbnQgbGlrZSB0aGF0LCBpbiB0aGUg VGlhbm9Db3JlDQo+ID4+Pj4gYnVnemlsbGEsIGJ1dCBpdCBkb2VzIG5vdCByZWZlciB0byBTaGVs bFBrZy4gSXQgcmVmZXJzIHRvIFN0ZExpYiAod2hpY2gNCj4gPj4+PiBoYXMgc2luY2UgYmVlbiBz cGxpdCBvZmYgdG8gdGhlIGVkazItbGliYyBwcm9qZWN0KToNCj4gPj4+Pg0KPiA+Pj4+IGh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMCNjMQ0KPiA+Pj4+ DQo+ID4+Pj4gICAgICAgU3RkTGliIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgb25seSBieSBhcHBs aWNhdGlvbnMgaW4gc2hlbGwsIGFsbCBvZg0KPiA+Pj4+ICAgICAgIHdoaWNoIGFyZSBtZWFudCBm b3IgZGVidWcsIGRpYWdub3NpcyBhbmQvb3IgdGVzdCBwdXJwb3NlLCBub3QgZm9yDQo+ID4+Pj4g ICAgICAgcHJvZHVjdCBVRUZJIEJJT1MuIEFueSBpc3N1ZSBpbiBpdCB3aWxsIG5vdCBiZSB0YWtl biBhcyBzZWN1cml0eQ0KPiA+Pj4+ICAgICAgIGlzc3VlIGJ1dCBqdXN0IG5vcm1hbCBidWcuDQo+ ID4+Pj4NCj4gPj4+PiBTb3JyeSBhYm91dCBjYXVzaW5nIGNvbmZ1c2lvbi4gU28sIHRoZSBTaGVs bFBrZyBtYWludGFpbmVycyBzaG91bGQNCj4gPj4+PiBkZWNpZGUgd2hhdCB0byBkbyBhYm91dCB0 aGlzIGJ1ZyAoa2VlcCBpdCB1bmRlciB0aGUgQ1ZFIHNjb3BlIHZzLg0KPiA+Pj4+IGV4Y2x1ZGUg aXQgZnJvbSB0aGUgQ1ZFIHNjb3BlOyBhbmQgdGhlbiwgcHJvcG9zZSBpdCBmb3IgdGhlIHN0YWJs ZSB0YWcNCj4gPj4+PiBvciBtZXJnZSBpdCBhZnRlcndhcmRzKS4NCj4gPj4+Pg0KPiA+Pj4+IE9u ZSBkYXRhIHBvaW50OiB0aGUgYnVnIGFwcGVhcnMgdG8gZ28gYmFjayB0byB0aGUgaW5jZXB0aW9u IG9mIHRoZSBQaW5nDQo+ID4+Pj4gY29tbWFuZCwgaW4gaGlzdG9yaWNhbCBjb21taXQgNjhmYjA1 MjcyYjQ1ICgiQWRkIE5ldHdvcmsxIHByb2ZpbGUuIiwNCj4gPj4+PiAyMDExLTAzLTI1KS4gSXQn cyBub3QgYSBuZXcgYnVnLCBpdCBzZWVtcy4NCj4gPj4+Pg0KPiA+Pj4+IFRoYW5rcw0KPiA+Pj4+ IExhc3psbw0KPiA+Pj4+DQo+ID4+Pj4+IFRpYW5vQ29yZSMyMDMyIHdhcyBvcmlnaW5hbGx5IGZp bGVkIGZvciBOZXR3b3JrUGtnLCBhbmQgaW5kZWVkIHRoYXQNCj4gPj4+Pj4gc2VlbWVkIHRvIGp1 c3RpZnkgdGhlIENWRSBhc3NpZ25tZW50LiBIb3dldmVyLCBub3cgdGhhdCBOaWNrJ3MgYW5kDQo+ ID4+Pj4+IE1hY2llaidzIGFuYWx5c2lzIHNob3dzIHRoYXQgTmV0d29ya1BrZyBpcyB1bmFmZmVj dGVkIChhbmQgd2Uga25vdywgcGVyDQo+ID4+Pj4+IGFib3ZlLCB0aGF0IFNoZWxsUGtnIGlzIG5v dCBDVkUtd29ydGh5KSwgc2hvdWxkIHdlIHJhdGhlciAqcmVtb3ZlKiB0aGlzDQo+ID4+Pj4+IEJa IGZyb20gdGhlIENWRS0yMDE5LTE0NTU5IHVtYnJlbGxhPw0KPiA+Pj4+Pg0KPiA+Pj4+PiBCZWNh dXNlLCBpbiB0aGF0IGNhc2UsIG1vZGlmeWluZyB0aGUgc3ViamVjdCBsaW5lIG9uIHRoZSBwYXRj aCBpcyBub3QNCj4gPj4+Pj4gbmVjZXNzYXJ5OyBhbmQgbW9yZSBpbXBvcnRhbnRseSwgd2UgbWln aHQgbm90IGV2ZW4gd2FudCB0byBwdXQgdGhpcyBpbnRvDQo+ID4+Pj4+IGVkazItc3RhYmxlMjAy MDAyLiAoSXQncyBzdGlsbCBhIGJ1Z2ZpeCwgYnV0IG1heSBub3QgYmUgaW1wb3J0YW50IGVub3Vn aC4pDQo+ID4+Pj4+DQo+ID4+Pj4+IFRoYW5rcyENCj4gPj4+Pj4gTGFzemxvDQo+ID4+Pj4+DQo+ ID4+PiANCj4gPj4+DQo=