From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from zg8tmja2lje4os4yms4ymjma.icoremail.net (zg8tmja2lje4os4yms4ymjma.icoremail.net [206.189.21.223]) by mx.groups.io with SMTP id smtpd.web08.13387.1617353232545984143 for ; Fri, 02 Apr 2021 01:47:14 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: phytium.com.cn, ip: 206.189.21.223, mailfrom: jialing@phytium.com.cn) Received: from jialing$phytium.com.cn ( [223.104.21.5] ) by ajax-webmail-c1app10 (Coremail) ; Fri, 2 Apr 2021 16:46:54 +0800 (GMT+08:00) X-Originating-IP: [223.104.21.5] Date: Fri, 2 Apr 2021 16:46:54 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: "Ling Jia" To: "Desimone, Nathaniel L" Cc: "devel@edk2.groups.io" , "Leif Lindholm" , "Peng Xie" , "Yiqi Shu" , "Takuto Naito" , "Chaganty, Rangasai V" , "Luo, Heng" Subject: Re: [PATCH v3 01/46] TigerlakeOpenBoardPkg: Fix build errors with GCC5 X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.13 build 20210303(5f774024) Copyright (c) 2002-2021 www.mailtech.cn icmhosting In-Reply-To: References: <20210312105618.75605-1-jialing@phytium.com.cn> <20210312105618.75605-2-jialing@phytium.com.cn> X-CM-CTRLDATA: nPT4NGZvb3Rlcl90eHQ9MTA3MDc6MTA= MIME-Version: 1.0 Message-ID: <65d425f.5d0c.17891c38831.Coremail.jialing@phytium.com.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID: CgINCgB3QPEA2mZgG9oBAA--.11212W X-CM-SenderInfo: xmldzxdqj61x51wl3zoofrzhdfq/1tbiCwZo3F1SeyFXoAACsZ X-Coremail-Antispam: 1Ur529EdanIXcx71UUUUU7IcSsGvfJ3iIAIbVAYjsxI4VWxJw CS07vEb4IE77IF4wCS07vE1I0E4x80FVAKz4kxMIAIbVAFxVCaYxvI4VCIwcAKzIAtYxBI daVFxhVjvjDU= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 SGksIE5hdGUsCgpZZXMsIEl0IHdhcyBhbiBlcnJvciBtZXNzYWdlLiBJJ20gc29ycnkgYWJvdXQg dGhpcywgYmVjYXVzZSBJIGRpZG4ndCBvcGVyYXRlIGdpdCBjaGVycnkgcGljayB3ZWxsLCByZXN1 bHRpbmcgaW4gdGhlIHdyb25nIHBhdGNoZXMuIEJ1dCBJIGhhdmUgY29ycmVjdGVkIGl0LiBQbGVh c2UgaWdub3JlIGl0LgoKVGhhbmtzLApMaW5nCgo+IC0tLS0t5Y6f5aeL6YKu5Lu2LS0tLS0KPiDl j5Hku7bkuro6ICJEZXNpbW9uZSwgTmF0aGFuaWVsIEwiIDxuYXRoYW5pZWwubC5kZXNpbW9uZUBp bnRlbC5jb20+Cj4g5Y+R6YCB5pe26Ze0OiAyMDIxLTA0LTAyIDAzOjE5OjU4ICjmmJ/mnJ/kupQp Cj4g5pS25Lu25Lq6OiAiTGluZyBKaWEiIDxqaWFsaW5nQHBoeXRpdW0uY29tLmNuPiwgImRldmVs QGVkazIuZ3JvdXBzLmlvIiA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+Cj4g5oqE6YCBOiAiTGVpZiBM aW5kaG9sbSIgPGxlaWZAbnV2aWFpbmMuY29tPiwgIlBlbmcgWGllIiA8eGllcGVuZ0BwaHl0aXVt LmNvbS5jbj4sICJZaXFpIFNodSIgPHNodXlpcWlAcGh5dGl1bS5jb20uY24+LCAiVGFrdXRvIE5h aXRvIiA8bmFpdGFrdUBnbWFpbC5jb20+LCAiQ2hhZ2FudHksIFJhbmdhc2FpIFYiIDxyYW5nYXNh aS52LmNoYWdhbnR5QGludGVsLmNvbT4sICJMdW8sIEhlbmciIDxoZW5nLmx1b0BpbnRlbC5jb20+ Cj4g5Li76aKYOiBSRTogW1BBVENIIHYzIDAxLzQ2XSBUaWdlcmxha2VPcGVuQm9hcmRQa2c6IEZp eCBidWlsZCBlcnJvcnMgd2l0aCBHQ0M1Cj4gCj4gSGkgTGluZywKPiAKPiBUaGlzIGFwcGVhcnMg dG8gYmUgYSBkdXBsaWNhdGUgb2YgYSBwYXRjaCB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gYXBwbGll ZDogCj4gCj4gaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvNzE4OTQKPiBo dHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItcGxhdGZvcm1zL2NvbW1pdC8xMmVmNzVk Ywo+IAo+IFdhcyB0aGlzIG1lc3NhZ2Ugc2VudCBpbiBlcnJvcj8KPiAKPiBUaGFua3MsCj4gTmF0 ZQo+IAo+IAo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+IEZyb206IExpbmcgSmlh IDxqaWFsaW5nQHBoeXRpdW0uY29tLmNuPgo+ID4gU2VudDogRnJpZGF5LCBNYXJjaCAxMiwgMjAy MSAyOjU2IEFNCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8KPiA+IENjOiBMZWlmIExpbmRo b2xtIDxsZWlmQG51dmlhaW5jLmNvbT47IFBlbmcgWGllCj4gPiA8eGllcGVuZ0BwaHl0aXVtLmNv bS5jbj47IFlpcWkgU2h1IDxzaHV5aXFpQHBoeXRpdW0uY29tLmNuPjsgVGFrdXRvCj4gPiBOYWl0 byA8bmFpdGFrdUBnbWFpbC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkgVgo+ID4gPHJhbmdhc2Fp LnYuY2hhZ2FudHlAaW50ZWwuY29tPjsgRGVzaW1vbmUsIE5hdGhhbmllbCBMCj4gPiA8bmF0aGFu aWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPjsgTHVvLCBIZW5nIDxoZW5nLmx1b0BpbnRlbC5jb20+ Cj4gPiBTdWJqZWN0OiBbUEFUQ0ggdjMgMDEvNDZdIFRpZ2VybGFrZU9wZW5Cb2FyZFBrZzogRml4 IGJ1aWxkIGVycm9ycyB3aXRoCj4gPiBHQ0M1Cj4gPiAKPiA+IEZyb206IFRha3V0byBOYWl0byA8 bmFpdGFrdUBnbWFpbC5jb20+Cj4gPiAKPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2Nv cmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjI0Cj4gPiAKPiA+IC0gRml4IHRoZSBwYXRoIG9mIFRp Z2VyTGFrZUZzcEJpblBrZwo+ID4gLSBGaXggbWlzdXNlIG9mIFJFVFVSTl9FUlJPUgo+ID4gLSBS ZW1vdmUgdW51c2VkIGZ1bmN0aW9uIENoZWNrTmF0aW9uYWxTaW8uCj4gPiAKPiA+IENjOiBTYWkg Q2hhZ2FudHkgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPgo+ID4gQ2M6IE5hdGUgRGVT aW1vbmUgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT4KPiA+IENjOiBIZW5nIEx1byA8 aGVuZy5sdW9AaW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogVGFrdXRvIE5haXRvIDxuYWl0 YWt1QGdtYWlsLmNvbT4KPiA+IFJldmlld2VkLWJ5OiBIZW5nIEx1byA8aGVuZy5sdW9AaW50ZWwu Y29tPgo+ID4gUmV2aWV3ZWQtYnk6IE5hdGUgRGVTaW1vbmUgPG5hdGhhbmllbC5sLmRlc2ltb25l QGludGVsLmNvbT4KPiA+IC0tLQo+ID4gCj4gPiBQbGF0Zm9ybS9JbnRlbC9UaWdlcmxha2VPcGVu Qm9hcmRQa2cvRnNwV3JhcHBlci9MaWJyYXJ5L1BlaUZzcFBvbGljeUluaXQKPiA+IExpYi9QZWlG c3BQb2xpY3lJbml0TGliLmluZiAgICAgICAgfCAgIDIgKy0KPiA+IAo+ID4gUGxhdGZvcm0vSW50 ZWwvVGlnZXJsYWtlT3BlbkJvYXJkUGtnL0xpYnJhcnkvQmFzZVBsYXRmb3JtSG9va0xpYi9CYXNl UGwKPiA+IGF0Zm9ybUhvb2tMaWIuYyAgICAgICAgICAgICAgICAgICAgIHwgMTg4IC0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gPiAKPiA+IFBsYXRmb3JtL0ludGVsL1RpZ2VybGFrZU9wZW5Cb2FyZFBr Zy9Qb2xpY3kvTGlicmFyeS9EeGVTaWxpY29uUG9saWN5VXBkYXQKPiA+IGVMaWIvRHhlU2lsaWNv blBvbGljeVVwZGF0ZUxhdGUuYyB8ICAgMiArLQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxOTAgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQKPiA+IGEvUGxh dGZvcm0vSW50ZWwvVGlnZXJsYWtlT3BlbkJvYXJkUGtnL0ZzcFdyYXBwZXIvTGlicmFyeS9QZWlG c3BQb2xpY3lJCj4gPiBuaXRMaWIvUGVpRnNwUG9saWN5SW5pdExpYi5pbmYKPiA+IGIvUGxhdGZv cm0vSW50ZWwvVGlnZXJsYWtlT3BlbkJvYXJkUGtnL0ZzcFdyYXBwZXIvTGlicmFyeS9QZWlGc3BQ b2xpY3lJCj4gPiBuaXRMaWIvUGVpRnNwUG9saWN5SW5pdExpYi5pbmYKPiA+IGluZGV4IDlkODVk ODU1ZjUwMS4uNzA4ZmJhYzA4ZmQ2IDEwMDY0NAo+ID4gLS0tCj4gPiBhL1BsYXRmb3JtL0ludGVs L1RpZ2VybGFrZU9wZW5Cb2FyZFBrZy9Gc3BXcmFwcGVyL0xpYnJhcnkvUGVpRnNwUG9saWN5SQo+ ID4gbml0TGliL1BlaUZzcFBvbGljeUluaXRMaWIuaW5mCj4gPiArKysKPiA+IGIvUGxhdGZvcm0v SW50ZWwvVGlnZXJsYWtlT3BlbkJvYXJkUGtnL0ZzcFdyYXBwZXIvTGlicmFyeS9QZWlGc3BQb2xp Y3lJCj4gPiBuaXRMaWIvUGVpRnNwUG9saWN5SW5pdExpYi5pbmYKPiA+IEBAIC01Miw3ICs1Miw3 IEBAIFtQYWNrYWdlc10KPiA+ICAgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjCj4gPiAK PiA+ICAgIEludGVsRnNwMlBrZy9JbnRlbEZzcDJQa2cuZGVjCj4gPiAKPiA+ICAgIFRpZ2VybGFr ZVNpbGljb25Qa2cvU2lQa2cuZGVjCj4gPiAKPiA+IC0gIFRpZ2VyTGFrZUZzcEJpblBrZy9UaWdl ckxha2VGc3BCaW5Qa2cuZGVjCj4gPiAKPiA+ICsgIFRpZ2VyTGFrZUZzcEJpblBrZy9DbGllbnQv VGlnZXJMYWtlRnNwQmluUGtnLmRlYwo+ID4gCj4gPiAgICBUaWdlcmxha2VPcGVuQm9hcmRQa2cv T3BlbkJvYXJkUGtnLmRlYwo+ID4gCj4gPiAgICBVZWZpQ3B1UGtnL1VlZmlDcHVQa2cuZGVjCj4g PiAKPiA+ICAgIEludGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZGVjCj4gPiAKPiA+IGRp ZmYgLS1naXQKPiA+IGEvUGxhdGZvcm0vSW50ZWwvVGlnZXJsYWtlT3BlbkJvYXJkUGtnL0xpYnJh cnkvQmFzZVBsYXRmb3JtSG9va0xpYi9CYXMKPiA+IGVQbGF0Zm9ybUhvb2tMaWIuYwo+ID4gYi9Q bGF0Zm9ybS9JbnRlbC9UaWdlcmxha2VPcGVuQm9hcmRQa2cvTGlicmFyeS9CYXNlUGxhdGZvcm1I b29rTGliL0Jhcwo+ID4gZVBsYXRmb3JtSG9va0xpYi5jCj4gPiBpbmRleCA2MjA5ZTUwNDUwNjEu LmNjNTMzNzY5OGI4YSAxMDA2NDQKPiA+IC0tLQo+ID4gYS9QbGF0Zm9ybS9JbnRlbC9UaWdlcmxh a2VPcGVuQm9hcmRQa2cvTGlicmFyeS9CYXNlUGxhdGZvcm1Ib29rTGliL0Jhcwo+ID4gZVBsYXRm b3JtSG9va0xpYi5jCj4gPiArKysKPiA+IGIvUGxhdGZvcm0vSW50ZWwvVGlnZXJsYWtlT3BlbkJv YXJkUGtnL0xpYnJhcnkvQmFzZVBsYXRmb3JtSG9va0xpYi9CYXMKPiA+IGVQbGF0Zm9ybUhvb2tM aWIuYwo+ID4gQEAgLTk0LDE5NCArOTQsNiBAQCBHTE9CQUxfUkVNT1ZFX0lGX1VOUkVGRVJFTkNF RAo+ID4gRUZJX1NJT19UQUJMRSBtU2lvVGFibGVXaW5ib25kX3gzNzRbXSA9IHsKPiA+ICAgIHsw eDMwLCAweDAxfSAgICAgICAgICAgICAgICAgICAgLy8gRW5hYmxlIGl0IHdpdGggQWN0aXZhdGlv biBiaXQKPiA+IAo+ID4gIH07Cj4gPiAKPiA+IAo+ID4gCj4gPiAtLyoqCj4gPiAKPiA+IC0gIERl dGVjdCBpZiBhIE5hdGlvbmFsIDM5MyBTSU8gaXMgZG9ja2VkLiBJZiB5ZXMsIGVuYWJsZSB0aGUg ZG9ja2VkIFNJTwo+ID4gCj4gPiAtICBhbmQgaXRzIHNlcmlhbCBwb3J0LCBhbmQgZGlzYWJsZSB0 aGUgb25ib2FyZCBzZXJpYWwgcG9ydC4KPiA+IAo+ID4gLQo+ID4gCj4gPiAtICBAcmV0dmFsIEVG SV9TVUNDRVNTICAgICBPcGVyYXRpb25zIHBlcmZvcm1lZCBzdWNjZXNzZnVsbHkuCj4gPiAKPiA+ IC0qKi8KPiA+IAo+ID4gLVNUQVRJQwo+ID4gCj4gPiAtVk9JRAo+ID4gCj4gPiAtQ2hlY2tOYXRp b25hbFNpbyAoCj4gPiAKPiA+IC0gIFZPSUQKPiA+IAo+ID4gLSAgKQo+ID4gCj4gPiAtewo+ID4g Cj4gPiAtICBVSU5UOCAgICAgICAgICAgRGF0YTg7Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAgLy8K PiA+IAo+ID4gLSAgLy8gUGM4NzM5MyBhY2Nlc3MgaXMgdGhyb3VnaCBlaXRoZXIgKDB4MmUsIDB4 MmYpIG9yICgweDRlLCAweDRmKS4KPiA+IAo+ID4gLSAgLy8gV2UgdXNlICgweDJlLCAweDJmKSB3 aGljaCBpcyBkZXRlcm1pbmVkIGJ5IEJBREQgZGVmYXVsdCBzdHJhcHBpbmcKPiA+IAo+ID4gLSAg Ly8KPiA+IAo+ID4gLQo+ID4gCj4gPiAtICAvLwo+ID4gCj4gPiAtICAvLyBSZWFkIHRoZSBQYzg3 MzkzIHNpZ25hdHVyZQo+ID4gCj4gPiAtICAvLwo+ID4gCj4gPiAtICBJb1dyaXRlOCAoMHgyZSwg MHgyMCk7Cj4gPiAKPiA+IC0gIERhdGE4ID0gSW9SZWFkOCAoMHgyZik7Cj4gPiAKPiA+IC0KPiA+ IAo+ID4gLSAgaWYgKERhdGE4ID09IDB4ZWEpIHsKPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAt ICAgIC8vIFNpZ25hdHVyZSBtYXRjaGVzIC0gTmF0aW9uYWwgUEM4NzM5MyBTSU8gaXMgZG9ja2Vk Cj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0g ICAgLy8gRW5sYXJnZSB0aGUgTFBDIGRlY29kZSBzY29wZSB0byBhY2NvbW1vZGF0ZSB0aGUgRG9j a2luZyBMUEMgU3dpdGNoCj4gPiAKPiA+IC0gICAgLy8gUmVnaXN0ZXIgKFNJT19ET0NLSU5HX0xQ Q19TV0lUQ0hfUkVHSVNURVJfQUREUkVTUyBpcyBhbGxvY2F0ZWQKPiA+IGF0Cj4gPiAKPiA+IC0g ICAgLy8gU0lPX0JBU0VfQUREUkVTUyArIDB4MTApCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4g LSAgICBQY2hMcGNHZW5Jb1JhbmdlU2V0ICgoRml4ZWRQY2RHZXQxNiAoUGNkU2lvQmFzZUFkZHJl c3MpICYKPiA+IChVSU5UMTYpfjB4N0YpLCAweDIwKTsKPiA+IAo+ID4gLQo+ID4gCj4gPiAtICAg IC8vCj4gPiAKPiA+IC0gICAgLy8gRW5hYmxlIHBvcnQgc3dpdGNoCj4gPiAKPiA+IC0gICAgLy8K PiA+IAo+ID4gLSAgICBJb1dyaXRlOCAoU0lPX0RPQ0tJTkdfTFBDX1NXSVRDSF9SRUdJU1RFUl9B RERSRVNTLCAweDA2KTsKPiA+IAo+ID4gLQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAg Ly8gVHVybiBvbiBkb2NraW5nIHBvd2VyCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICBJ b1dyaXRlOCAoRml4ZWRQY2RHZXQxNiAoUGNkU2lvQmFzZUFkZHJlc3MpICsgMHgwRSwgMHg4Yyk7 Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAgICBJb1dyaXRlOCAoRml4ZWRQY2RHZXQxNiAoUGNkU2lv QmFzZUFkZHJlc3MpICsgMHgwRSwgMHg5Yyk7Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAgICBJb1dy aXRlOCAoRml4ZWRQY2RHZXQxNiAoUGNkU2lvQmFzZUFkZHJlc3MpICsgMHgwRSwgMHhCYyk7Cj4g PiAKPiA+IC0KPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIC8vIEVuYWJsZSBwb3J0IHN3 aXRjaAo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKFNJT19ET0NLSU5H X0xQQ19TV0lUQ0hfUkVHSVNURVJfQUREUkVTUywgMHg3KTsKPiA+IAo+ID4gLQo+ID4gCj4gPiAt ICAgIC8vCj4gPiAKPiA+IC0gICAgLy8gR1BJTyBzZXR0aW5nCj4gPiAKPiA+IC0gICAgLy8KPiA+ IAo+ID4gLSAgICBJb1dyaXRlOCAoMHgyZSwgMHgyNCk7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTgg KDB4MmYsIDB4MjkpOwo+ID4gCj4gPiAtCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICAv LyBFbmFibGUgY2hpcCBjbG9jawo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgSW9Xcml0 ZTggKDB4MmUsIDB4MjkpOwo+ID4gCj4gPiAtICAgIElvV3JpdGU4ICgweDJmLCAweDFlKTsKPiA+ IAo+ID4gLQo+ID4gCj4gPiAtCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICAvLyBFbmFi bGUgc2VyaWFsIHBvcnQKPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtCj4gPiAKPiA+IC0gICAg Ly8KPiA+IAo+ID4gLSAgICAvLyBTZWxlY3QgY29tMQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+ IC0gICAgSW9Xcml0ZTggKDB4MmUsIDB4Nyk7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKDB4MmYs IDB4Myk7Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIC8vIEJhc2Ug YWRkcmVzczogMHgzZjgKPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIElvV3JpdGU4ICgw eDJlLCAweDYwKTsKPiA+IAo+ID4gLSAgICBJb1dyaXRlOCAoMHgyZiwgMHgwMyk7Cj4gPiAKPiA+ IC0gICAgSW9Xcml0ZTggKDB4MmUsIDB4NjEpOwo+ID4gCj4gPiAtICAgIElvV3JpdGU4ICgweDJm LCAweGY4KTsKPiA+IAo+ID4gLQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgLy8gSW50 ZXJydXB0OiA0Cj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICBJb1dyaXRlOCAoMHgyZSwg MHg3MCk7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKDB4MmYsIDB4MDQpOwo+ID4gCj4gPiAtCj4g PiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICAvLyBFbmFibGUgYmFuayBzZWxlY3Rpb24KPiA+ IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIElvV3JpdGU4ICgweDJlLCAweGYwKTsKPiA+IAo+ ID4gLSAgICBJb1dyaXRlOCAoMHgyZiwgMHg4Mik7Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAgICAv Lwo+ID4gCj4gPiAtICAgIC8vIEFjdGl2YXRlCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAg ICBJb1dyaXRlOCAoMHgyZSwgMHgzMCk7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKDB4MmYsIDB4 MDEpOwo+ID4gCj4gPiAtCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICAvLyBEaXNhYmxl IG9uYm9hcmQgc2VyaWFsIHBvcnQKPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIElvV3Jp dGU4IChGaXhlZFBjZEdldDE2IChQY2RMcGNTaW9Db25maWdEZWZhdWx0UG9ydCksIDB4NTUpOwo+ ID4gCj4gPiAtCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICAvLyBQb3dlciBEb3duIFVB UlRzCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICBJb1dyaXRlOCAoUGNkR2V0MTYgKFBj ZExwY1Npb0luZGV4UG9ydCksIDB4Mik7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKFBjZEdldDE2 IChQY2RMcGNTaW9EYXRhUG9ydCksIDB4MDApOwo+ID4gCj4gPiAtCj4gPiAKPiA+IC0gICAgLy8K PiA+IAo+ID4gLSAgICAvLyBEaXNzYWJsZSBDT00xIGRlY29kZQo+ID4gCj4gPiAtICAgIC8vCj4g PiAKPiA+IC0gICAgSW9Xcml0ZTggKFBjZEdldDE2IChQY2RMcGNTaW9JbmRleFBvcnQpLCAweDI0 KTsKPiA+IAo+ID4gLSAgICBJb1dyaXRlOCAoUGNkR2V0MTYgKFBjZExwY1Npb0RhdGFQb3J0KSwg MCk7Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIC8vIERpc2FibGUg Q09NMiBkZWNvZGUKPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIElvV3JpdGU4IChQY2RH ZXQxNiAoUGNkTHBjU2lvSW5kZXhQb3J0KSwgMHgyNSk7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTgg KFBjZEdldDE2IChQY2RMcGNTaW9EYXRhUG9ydCksIDApOwo+ID4gCj4gPiAtCj4gPiAKPiA+IC0g ICAgLy8KPiA+IAo+ID4gLSAgICAvLyBEaXNhYmxlIGludGVycnVwdAo+ID4gCj4gPiAtICAgIC8v Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKFBjZEdldDE2IChQY2RMcGNTaW9JbmRleFBvcnQpLCAw eDI4KTsKPiA+IAo+ID4gLSAgICBJb1dyaXRlOCAoUGNkR2V0MTYgKFBjZExwY1Npb0RhdGFQb3J0 KSwgMHgwKTsKPiA+IAo+ID4gLQo+ID4gCj4gPiAtICAgIElvV3JpdGU4IChGaXhlZFBjZEdldDE2 IChQY2RMcGNTaW9Db25maWdEZWZhdWx0UG9ydCksIDB4QUEpOwo+ID4gCj4gPiAtCj4gPiAKPiA+ IC0gICAgLy8KPiA+IAo+ID4gLSAgICAvLyBFbmFibGUgZmxvcHB5Cj4gPiAKPiA+IC0gICAgLy8K PiA+IAo+ID4gLQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgLy8gU2VsZWN0IGZsb3Bw eQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKDB4MmUsIDB4Nyk7Cj4g PiAKPiA+IC0gICAgSW9Xcml0ZTggKDB4MmYsIDB4MCk7Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAg ICAvLwo+ID4gCj4gPiAtICAgIC8vIEJhc2UgYWRkcmVzczogMHgzZjAKPiA+IAo+ID4gLSAgICAv Lwo+ID4gCj4gPiAtICAgIElvV3JpdGU4ICgweDJlLCAweDYwKTsKPiA+IAo+ID4gLSAgICBJb1dy aXRlOCAoMHgyZiwgMHgwMyk7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKDB4MmUsIDB4NjEpOwo+ ID4gCj4gPiAtICAgIElvV3JpdGU4ICgweDJmLCAweGYwKTsKPiA+IAo+ID4gLQo+ID4gCj4gPiAt ICAgIC8vCj4gPiAKPiA+IC0gICAgLy8gSW50ZXJydXB0OiA2Cj4gPiAKPiA+IC0gICAgLy8KPiA+ IAo+ID4gLSAgICBJb1dyaXRlOCAoMHgyZSwgMHg3MCk7Cj4gPiAKPiA+IC0gICAgSW9Xcml0ZTgg KDB4MmYsIDB4MDYpOwo+ID4gCj4gPiAtCj4gPiAKPiA+IC0gICAgLy8KPiA+IAo+ID4gLSAgICAv LyBETUEgMgo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgSW9Xcml0ZTggKDB4MmUsIDB4 NzQpOwo+ID4gCj4gPiAtICAgIElvV3JpdGU4ICgweDJmLCAweDAyKTsKPiA+IAo+ID4gLQo+ID4g Cj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgLy8gQWN0aXZhdGUKPiA+IAo+ID4gLSAgICAvLwo+ ID4gCj4gPiAtICAgIElvV3JpdGU4ICgweDJlLCAweDMwKTsKPiA+IAo+ID4gLSAgICBJb1dyaXRl OCAoMHgyZiwgMHgwMSk7Cj4gPiAKPiA+IC0KPiA+IAo+ID4gLSAgfSBlbHNlIHsKPiA+IAo+ID4g LQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0gICAgLy8gTm8gTmF0aW9uYWwgcGM4NzM5MyBT SU8gaXMgZG9ja2VkLCB0dXJuIG9mZiBkb2NrIHBvd2VyIGFuZAo+ID4gCj4gPiAtICAgIC8vIGRp c2FibGUgcG9ydCBzd2l0Y2gKPiA+IAo+ID4gLSAgICAvLwo+ID4gCj4gPiAtICAgIC8vIElvV3Jp dGU4IChTSU9fQkFTRV9BRERSRVNTICsgMHgwRSwgMHhiZik7Cj4gPiAKPiA+IC0gICAgLy8gSW9X cml0ZTggKDB4NjkwLCAwKTsKPiA+IAo+ID4gLQo+ID4gCj4gPiAtICAgIC8vCj4gPiAKPiA+IC0g ICAgLy8gSWYgbm8gTmF0aW9uYWwgcGM4NzM5MywganVzdCByZXR1cm4KPiA+IAo+ID4gLSAgICAv Lwo+ID4gCj4gPiAtICAgIHJldHVybiA7Cj4gPiAKPiA+IC0gIH0KPiA+IAo+ID4gLX0KPiA+IAo+ ID4gLQo+ID4gCj4gPiAgLyoqCj4gPiAKPiA+ICBDaGVjayB3aGV0aGVyIHRoZSBJVDg2MjggU0lP IHByZXNlbnQgb24gTFBDLiBJZiB5ZXMsIGVuYWJsZSBpdHMgc2VyaWFsIHBvcnRzCj4gPiAKPiA+ IAo+ID4gCj4gPiBkaWZmIC0tZ2l0Cj4gPiBhL1BsYXRmb3JtL0ludGVsL1RpZ2VybGFrZU9wZW5C b2FyZFBrZy9Qb2xpY3kvTGlicmFyeS9EeGVTaWxpY29uUG9saWN5VXBkCj4gPiBhdGVMaWIvRHhl U2lsaWNvblBvbGljeVVwZGF0ZUxhdGUuYwo+ID4gYi9QbGF0Zm9ybS9JbnRlbC9UaWdlcmxha2VP cGVuQm9hcmRQa2cvUG9saWN5L0xpYnJhcnkvRHhlU2lsaWNvblBvbGljeVVwCj4gPiBkYXRlTGli L0R4ZVNpbGljb25Qb2xpY3lVcGRhdGVMYXRlLmMKPiA+IGluZGV4IDJlZWU5OTU4YmVlYS4uNDEw YThkMTA3M2E5IDEwMDY0NAo+ID4gLS0tCj4gPiBhL1BsYXRmb3JtL0ludGVsL1RpZ2VybGFrZU9w ZW5Cb2FyZFBrZy9Qb2xpY3kvTGlicmFyeS9EeGVTaWxpY29uUG9saWN5VXBkCj4gPiBhdGVMaWIv RHhlU2lsaWNvblBvbGljeVVwZGF0ZUxhdGUuYwo+ID4gKysrCj4gPiBiL1BsYXRmb3JtL0ludGVs L1RpZ2VybGFrZU9wZW5Cb2FyZFBrZy9Qb2xpY3kvTGlicmFyeS9EeGVTaWxpY29uUG9saWN5VXAK PiA+IGRhdGVMaWIvRHhlU2lsaWNvblBvbGljeVVwZGF0ZUxhdGUuYwo+ID4gQEAgLTg4LDggKzg4 LDggQEAgU2lsaWNvblBvbGljeVVwZGF0ZUxhdGUgKAo+ID4gICAgICAvLyBHT1AgRHhlIFBvbGlj eSBJbml0aWFsaXphdGlvbgo+ID4gCj4gPiAgICAgIC8vCj4gPiAKPiA+ICAgICAgU3RhdHVzID0g R29wUG9saWN5SW5pdER4ZSAoZ0ltYWdlSGFuZGxlKTsKPiA+IAo+ID4gLSAgICBSRVRVUk5fRVJS T1IgKFN0YXR1cyk7Cj4gPiAKPiA+ICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiR09QIER4ZSBQ b2xpY3kgSW5pdGlhbGl6YXRpb24gZG9uZVxuIikpOwo+ID4gCj4gPiArICAgIEFTU0VSVF9FRklf RVJST1IgKFN0YXR1cyk7Cj4gPiAKPiA+ICAgIH0KPiA+IAo+ID4gCj4gPiAKPiA+ICAgIHJldHVy biBQb2xpY3k7Cj4gPiAKPiA+IC0tCj4gPiAyLjI1LjEKDQoNCg0KDQoNCg==