From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgjp3.qq.com (smtpbgjp3.qq.com [54.92.39.34]) by sourceware.org (Postfix) with ESMTPS id 769073858D32 for ; Wed, 28 Jun 2023 03:19:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 769073858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp76t1687922372takn8s41 Received: from LAPTOP-EPITNQBU ( [58.60.1.5]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 28 Jun 2023 11:19:31 +0800 (CST) X-QQ-SSF: 01400000000000G0S000000A0000000 X-QQ-FEAT: ILHsT53NKPiq/E4oEDAUJZBTaMLfHNG9YRMVUPYGf/uPdjHZWHIpLp9N11oh4 R2crTOYfjE3Lye/WdzOVpC+vJMvLjbDMTPWJLwyWwnpl4VIug04v6Uz60ptlmhKhIcSxxrZ ioJ3LZI/LIXD95w6qnTHyQAdq6qLKZjciZ7PB9GZvBlnZsRvg8iqx1X6PziULZt70vj4Sv9 wj0DemhnTyBYm4bvvaBcmSfvR5SDlksFDvx12k9jKMnyDbJrVUhrlBgr87ZHknoeRq9e/PG pbhPFg3rYh7UdM3mRuLVo1Z97R4SwSEyvtB66sXrcIYJYG2JUYZqQmi7Xuz5nJZYk3VE0qB nAZSwMTZ9Zzr5hnWm3fFyata5pHVl/xBTkh161Drydwr6oQMKh6i0zBWNVL+3pxLT3Zcu2J ULoO9A/AkUlFW0yTl1jXWXnK9fIPgywV X-QQ-GoodBg: 2 X-BIZMAIL-ID: 1595719697175291118 Date: Wed, 28 Jun 2023 11:19:32 +0800 From: "juzhe.zhong@rivai.ai" To: Kito.cheng Cc: gcc-patches , kito.cheng , palmer , palmer , jeffreyalaw , "Robin Dapp" Subject: Re: Re: [PATCH V2] RISC-V: Fix bug of pre-calculated const vector mask References: <20230628015944.112659-1-juzhe.zhong@rivai.ai>, , X-Priority: 3 X-GUID: C142CAD0-B25C-4921-BADC-1AD0EF144806 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <8830F61DB50EE35D+2023062811193153037437@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart064670852516_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart064670852516_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SSBoYXZlIGNvbW1lbnRlZCBpbiBjb21taXQgbG9nOg0KDQpiZWZvcmUgdGhp cyBwYXRjaDoNClRoZSBtYXNrIGlzOg0KLkxDMToKICAgICAgICAuYnl0ZSAg IDY4ID09PT0+IDBiMDEwMDAxMDANCg0KSG93ZXZlciwgdGhpcyBpcyBpbmNv cnJlY3QgZm9yIFJWViBzaW5jZSBSVlYgYWx3YXlzIHVzZXMgMS1iaXQgY29t cGFjdCBtYXNrLA0Kbm93IGFmdGVyIHRoaXMgcGF0Y2g6DQouTEMxOgoJLmJ5 dGUJMTAgPT09PT4gMGIxMDEwDQoNCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5h aQ0KIA0KRnJvbTogS2l0byBDaGVuZw0KRGF0ZTogMjAyMy0wNi0yOCAxMTox Ng0KVG86IGp1emhlLnpob25nQHJpdmFpLmFpDQpDQzogZ2NjLXBhdGNoZXM7 IGtpdG8uY2hlbmc7IHBhbG1lcjsgcGFsbWVyOyBqZWZmcmV5YWxhdzsgUm9i aW4gRGFwcA0KU3ViamVjdDogUmU6IFtQQVRDSCBWMl0gUklTQy1WOiBGaXgg YnVnIG9mIHByZS1jYWxjdWxhdGVkIGNvbnN0IHZlY3RvciBtYXNrDQpEbyB5 b3UgbWluZCBnaXZpbmcgc29tZSBjb21tZW50cyBhYm91dCB3aGF0IHRoZSBk aWZmZXJlbmNlIGJldHdlZW4gdGhlDQp0d28gdmVyc2lvbnM/DQogDQpPbiBX ZWQsIEp1biAyOCwgMjAyMyBhdCAxMToxNOKAr0FNIGp1emhlLnpob25nQHJp dmFpLmFpDQo8anV6aGUuemhvbmdAcml2YWkuYWk+IHdyb3RlOg0KPg0KPiBU aGlzIHBhdGNoIGlzIHRoZSBjcml0aWNhbCBwYXRjaCBmb3IgZm9sbG93aW5n IHBhdGNoZXMgc2luY2UgaXQgaXMgYSBidWcgd2hpY2ggSSBhbHJlYWR5IGFk ZHJlc3MgaW4gcnZ2LW5leHQuDQo+DQo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+IGp1emhlLnpob25nQHJpdmFpLmFpDQo+DQo+DQo+ IEZyb206IEp1emhlLVpob25nDQo+IERhdGU6IDIwMjMtMDYtMjggMDk6NTkN Cj4gVG86IGdjYy1wYXRjaGVzDQo+IENDOiBraXRvLmNoZW5nOyBraXRvLmNo ZW5nOyBwYWxtZXI7IHBhbG1lcjsgamVmZnJleWFsYXc7IHJkYXBwLmdjYzsg SnV6aGUtWmhvbmcNCj4gU3ViamVjdDogW1BBVENIIFYyXSBSSVNDLVY6IEZp eCBidWcgb2YgcHJlLWNhbGN1bGF0ZWQgY29uc3QgdmVjdG9yIG1hc2sNCj4g VGhpcyBidWcgYmxvY2tzIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcy4NCj4NCj4g R0NDIGRvZXNuJ3Qga25vdyBSVlYgaXMgdXNpbmcgY29tcGFjdCBtYXNrIG1v ZGVsLg0KPiBDb25zaWRlciB0aGlzIGZvbGxvd2luZyBjYXNlOg0KPg0KPiAj ZGVmaW5lIE4gMTYNCj4NCj4gaW50DQo+IG1haW4gKCkNCj4gew0KPiAgIGlu dDhfdCBtYXNrW05dID0gezAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDF9Ow0KPiAgIGludDhfdCBvdXRbTl0gPSB7MH07 DQo+ICAgZm9yIChpbnQ4X3QgaSA9IDA7IGkgPCBOOyArK2kpDQo+ICAgICBp ZiAobWFza1tpXSkNCj4gICAgICAgb3V0W2ldID0gaTsNCj4gICBmb3IgKGlu dDhfdCBpID0gMDsgaSA8IE47ICsraSkNCj4gICAgIHsNCj4gICAgICAgaWYg KG1hc2tbaV0pDQo+IGFzc2VydCAob3V0W2ldID09IGkpOw0KPiAgICAgICBl bHNlDQo+IGFzc2VydCAob3V0W2ldID09IDApOw0KPiAgICAgfQ0KPiB9DQo+ DQo+IEJlZm9yZSB0aGlzIHBhdGNoLCB0aGUgcHJlLWNhbGN1bGF0ZWQgbWFz ayBpbiBjb25zdGFudCBtZW1vcnkgcG9vbDoNCj4gLkxDMToNCj4gICAgICAg ICAuYnl0ZSAgIDY4ID09PT0+IDBiMDEwMDAxMDANCj4NCj4gVGhpcyBpcyBp bmNvcnJlY3QsIHN1Y2ggY2FzZSBmYWlsZWQgaW4gZXhlY3V0aW9uLg0KPg0K PiBBZnRlciB0aGlzIHBhdGNoOg0KPiAuTEMxOg0KPiAuYnl0ZSAxMCA9PT09 PiAwYjEwMTANCj4NCj4gUGFzcyBvbiBleGVjdGlvbi4NCj4NCj4gZ2NjL0No YW5nZUxvZzoNCj4NCj4gICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi12 LmNjIChydnZfYnVpbGRlcjo6Z2V0X2NvbXBhY3RfbWFzayk6IE5ldyBmdW5j dGlvbi4NCj4gICAgICAgICAoZXhwYW5kX2NvbnN0X3ZlY3Rvcik6IERpdHRv Lg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIChyaXNjdl9j b25zdF9pbnNucyk6IERpdHRvLg0KPg0KPiBnY2MvdGVzdHN1aXRlL0NoYW5n ZUxvZzoNCj4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stMS5jOiBOZXcgdGVzdC4NCj4gICAg ICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4 L2JpdG1hc2stMi5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stMy5jOiBO ZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNC5jOiBOZXcgdGVzdC4NCj4gICAg ICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4 L2JpdG1hc2stNS5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNi5jOiBO ZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNy5jOiBOZXcgdGVzdC4NCj4gICAg ICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4 L2JpdG1hc2stOC5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stOS5jOiBO ZXcgdGVzdC4NCj4NCj4gLS0tDQo+IGdjYy9jb25maWcvcmlzY3YvcmlzY3Yt di5jYyAgICAgICAgICAgICAgICAgICB8IDY0ICsrKysrKysrKysrKysrKysr LS0NCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyAgICAgICAgICAgICAg ICAgICAgIHwgIDYgKysNCj4gLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12 bG1heC9iaXRtYXNrLTEuYyAgIHwgMjMgKysrKysrKw0KPiAuLi4vcmlzY3Yv cnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stMi5jICAgfCAyMyArKysr KysrDQo+IC4uLi9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFz ay0zLmMgICB8IDIzICsrKysrKysNCj4gLi4uL3Jpc2N2L3J2di9hdXRvdmVj L3Zscy12bG1heC9iaXRtYXNrLTQuYyAgIHwgMjMgKysrKysrKw0KPiAuLi4v cmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNS5jICAgfCAy NSArKysrKysrKw0KPiAuLi4vcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4 L2JpdG1hc2stNi5jICAgfCAyNyArKysrKysrKw0KPiAuLi4vcmlzY3YvcnZ2 L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNy5jICAgfCAzMCArKysrKysr KysNCj4gLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNr LTguYyAgIHwgMzAgKysrKysrKysrDQo+IC4uLi9yaXNjdi9ydnYvYXV0b3Zl Yy92bHMtdmxtYXgvYml0bWFzay05LmMgICB8IDMwICsrKysrKysrKw0KPiAx MSBmaWxlcyBjaGFuZ2VkLCAyOTkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlv bnMoLSkNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay0x LmMNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay0yLmMN Cj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay0zLmMNCj4g Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay00LmMNCj4gY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay01LmMNCj4gY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay02LmMNCj4gY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay03LmMNCj4gY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy92bHMtdmxtYXgvYml0bWFzay04LmMNCj4gY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy92bHMtdmxtYXgvYml0bWFzay05LmMNCj4NCj4gZGlmZiAtLWdpdCBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYyBiL2djYy9jb25maWcvcmlzY3Yv cmlzY3Ytdi5jYw0KPiBpbmRleCBhZGI4ZDdkMzZhNS4uNWRhMGRjNWU5OTgg MTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYw0K PiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MNCj4gQEAgLTI5 MSw2ICsyOTEsNyBAQCBwdWJsaWM6DQo+ICAgIGJvb2wgc2luZ2xlX3N0ZXBf bnBhdHRlcm5zX3AgKCkgY29uc3Q7DQo+ICAgIGJvb2wgbnBhdHRlcm5zX2Fs bF9lcXVhbF9wICgpIGNvbnN0Ow0KPiArICBydHggZ2V0X2NvbXBhY3RfbWFz ayAoKSBjb25zdDsNCj4gICAgbWFjaGluZV9tb2RlIG5ld19tb2RlICgpIGNv bnN0IHsgcmV0dXJuIG1fbmV3X21vZGU7IH0NCj4gICAgc2NhbGFyX21vZGUg aW5uZXJfbW9kZSAoKSBjb25zdCB7IHJldHVybiBtX2lubmVyX21vZGU7IH0N Cj4gQEAgLTUwNSw2ICs1MDYsNDcgQEAgcnZ2X2J1aWxkZXI6Om5wYXR0ZXJu c19hbGxfZXF1YWxfcCAoKSBjb25zdA0KPiAgICByZXR1cm4gdHJ1ZTsNCj4g fQ0KPiArLyogR2VuZXJhdGUgdGhlIGNvbXBhY3QgbWFzay4NCj4gKw0KPiAr ICAgICBFLmc6IG1hc2sgPSB7IDAsIC0xIH0sIG1vZGUgPSBWTngyQkksIGJp dHNpemUgPSAxMjhiaXRzLg0KPiArDQo+ICsgICBHQ0MgYnkgZGVmYXVsdCB3 aWxsIGdlbmVyYXRlIHRoZSBtYXNrID0gMGIwMDAwMDAwMXh4eHh4Lg0KPiAr DQo+ICsgICBIb3dldmVyLCBpdCdzIG5vdCBleHBlY3RlZCBtYXNrIGZvciBS VlYgc2luY2UgUlZWDQo+ICsgICBwcmVmZXJzIHRoZSBjb21wYWN0IG1hc2sg PSAwYjEweHh4eHguDQo+ICsqLw0KPiArcnR4DQo+ICtydnZfYnVpbGRlcjo6 Z2V0X2NvbXBhY3RfbWFzayAoKSBjb25zdA0KPiArew0KPiArICAvKiBJZiBU QVJHRVRfTUlOX1ZMRU4gPT0gMzIsIHRoZSBtaW5pbXVtIExNVUwgPSAxLzQu DQo+ICsgICAgIE90aGVyd2lzZSwgdGhlIG1pbmltdW0gTE1VTCA9IDEvOC4g ICovDQo+ICsgIHVuc2lnbmVkIG1pbl9sbXVsID0gVEFSR0VUX01JTl9WTEVO ID09IDMyID8gNCA6IDg7DQo+ICsgIHVuc2lnbmVkIG1pbl9jb250YWluZXJf c2l6ZQ0KPiArICAgID0gQllURVNfUEVSX1JJU0NWX1ZFQ1RPUi50b19jb25z dGFudCAoKSAvIG1pbl9sbXVsOw0KPiArICB1bnNpZ25lZCBjb250YWluZXJf c2l6ZSA9IE1BWCAoQ0VJTCAobnBhdHRlcm5zICgpLCA4KSwgbWluX2NvbnRh aW5lcl9zaXplKTsNCj4gKyAgbWFjaGluZV9tb2RlIGNvbnRhaW5lcl9tb2Rl DQo+ICsgICAgPSBnZXRfdmVjdG9yX21vZGUgKFFJbW9kZSwgY29udGFpbmVy X3NpemUpLnJlcXVpcmUgKCk7DQo+ICsNCj4gKyAgdW5zaWduZWQgbnVuaXRz ID0gR0VUX01PREVfTlVOSVRTIChjb250YWluZXJfbW9kZSkudG9fY29uc3Rh bnQgKCk7DQo+ICsgIHJ0dmVjIHYgPSBydHZlY19hbGxvYyAobnVuaXRzKTsN Cj4gKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bml0czsgaSsrKQ0K PiArICAgIFJUVkVDX0VMVCAodiwgaSkgPSBjb25zdDBfcnR4Ow0KPiArDQo+ ICsgIHVuc2lnbmVkIGNoYXIgYiA9IDA7DQo+ICsgIGZvciAodW5zaWduZWQg aSA9IDA7IGkgPCBucGF0dGVybnMgKCk7IGkrKykNCj4gKyAgICB7DQo+ICsg ICAgICBpZiAoSU5UVkFMIChlbHQgKGkpKSkNCj4gKyBiID0gYiB8ICgxIDw8 IChpICUgOCkpOw0KPiArDQo+ICsgICAgICBpZiAoKGkgPiAwICYmIChpICUg OCkgPT0gNykgfHwgKGkgPT0gKG5wYXR0ZXJucyAoKSAtIDEpKSkNCj4gKyB7 DQo+ICsgICBSVFZFQ19FTFQgKHYsICgoaSArIDcpIC8gOCkgLSAxKSA9IGdl bl9pbnRfbW9kZSAoYiwgUUltb2RlKTsNCj4gKyAgIGIgPSAwOw0KPiArIH0N Cj4gKyAgICB9DQo+ICsgIHJldHVybiBnZW5fcnR4X0NPTlNUX1ZFQ1RPUiAo Y29udGFpbmVyX21vZGUsIHYpOw0KPiArfQ0KPiArDQo+IHN0YXRpYyB1bnNp Z25lZA0KPiBnZXRfc2V3IChtYWNoaW5lX21vZGUgbW9kZSkNCj4gew0KPiBA QCAtMTE0MSwxMSArMTE4MywyMyBAQCBleHBhbmRfY29uc3RfdmVjdG9yIChy dHggdGFyZ2V0LCBydHggc3JjKQ0KPiAgICBpZiAoR0VUX01PREVfQ0xBU1Mg KG1vZGUpID09IE1PREVfVkVDVE9SX0JPT0wpDQo+ICAgICAgew0KPiAgICAg ICAgcnR4IGVsdDsNCj4gLSAgICAgIGdjY19hc3NlcnQgKA0KPiAtIGNvbnN0 X3ZlY19kdXBsaWNhdGVfcCAoc3JjLCAmZWx0KQ0KPiAtICYmIChydHhfZXF1 YWxfcCAoZWx0LCBjb25zdDBfcnR4KSB8fCBydHhfZXF1YWxfcCAoZWx0LCBj b25zdDFfcnR4KSkpOw0KPiAtICAgICAgcnR4IG9wc1tdID0ge3RhcmdldCwg c3JjfTsNCj4gLSAgICAgIGVtaXRfdmxtYXhfaW5zbiAoY29kZV9mb3JfcHJl ZF9tb3YgKG1vZGUpLCBSVlZfVU5PUCwgb3BzKTsNCj4gKyAgICAgIHVuc2ln bmVkIGludCBuZWx0czsNCj4gKyAgICAgIGlmIChjb25zdF92ZWNfZHVwbGlj YXRlX3AgKHNyYywgJmVsdCkpDQo+ICsgew0KPiArICAgcnR4IG9wc1tdID0g e3RhcmdldCwgc3JjfTsNCj4gKyAgIGVtaXRfdmxtYXhfaW5zbiAoY29kZV9m b3JfcHJlZF9tb3YgKG1vZGUpLCBSVlZfVU5PUCwgb3BzKTsNCj4gKyB9DQo+ ICsgICAgICBlbHNlIGlmIChHRVRfTU9ERV9OVU5JVFMgKG1vZGUpLmlzX2Nv bnN0YW50ICgmbmVsdHMpKQ0KPiArIHsNCj4gKyAgIHJ2dl9idWlsZGVyIGJ1 aWxkZXIgKG1vZGUsIG5lbHRzLCAxKTsNCj4gKyAgIGZvciAodW5zaWduZWQg aW50IGkgPSAwOyBpIDwgbmVsdHM7IGkrKykNCj4gKyAgICAgYnVpbGRlci5x dWlja19wdXNoIChDT05TVF9WRUNUT1JfRUxUIChzcmMsIGkpKTsNCj4gKyAg IHJ0eCBtYXNrID0gYnVpbGRlci5nZXRfY29tcGFjdF9tYXNrICgpOw0KPiAr ICAgcnR4IG1lbSA9IHZhbGlkaXplX21lbSAoZm9yY2VfY29uc3RfbWVtIChH RVRfTU9ERSAobWFzayksIG1hc2spKTsNCj4gKyAgIGVtaXRfbW92ZV9pbnNu ICh0YXJnZXQsIGdlbl9ydHhfTUVNIChtb2RlLCBYRVhQIChtZW0sIDApKSk7 DQo+ICsgfQ0KPiArICAgICAgZWxzZQ0KPiArIGdjY191bnJlYWNoYWJsZSAo KTsNCj4gICAgICAgIHJldHVybjsNCj4gICAgICB9DQo+IGRpZmYgLS1naXQg YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi5jYw0KPiBpbmRleCAyODBhYTBiMzNiOS4uODZjODNmMDkwNmQg MTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCj4g KysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYw0KPiBAQCAtMTMyMyw2 ICsxMzIzLDEyIEBAIHJpc2N2X2NvbnN0X2luc25zIChydHggeCkNCj4gICAg ICAgcmV0dXJuIDEgKyA0OyAvKnZtdi52LnggKyBtZW1vcnkgYWNjZXNzLiAg Ki8NCj4gICB9DQo+ICAgICAgIH0NCj4gKw0KPiArICAgICAvKiBHQ0MgZG9l c24ndCBrbm93biBSVlYgaXMgdXNpbmcgY29tcGFjdCBtb2RlbCBvZiBtYXNr LA0KPiArICAgICAgICB3ZSBzaG91bGQgYnkgZGVmYXVsdCBoYW5kbGUgbWFz ayBpbiBtb3Y8bW9kZT4gcGF0dGVybi4gICovDQo+ICsgICAgIGlmIChHRVRf TU9ERV9DTEFTUyAoR0VUX01PREUgKHgpKSA9PSBNT0RFX1ZFQ1RPUl9CT09M KQ0KPiArICAgICAgIC8qIFRPRE86IFdlIGNhbiBhZGp1c3QgaXQgYWNjb3Jk aW5nIHJlYWwgY29zdCBtb2RlbCBvZiB2bG0udi4gICovDQo+ICsgICAgICAg cmV0dXJuIDE7DQo+ICAgfQ0KPiAvKiBUT0RPOiBXZSBtYXkgc3VwcG9ydCBt b3JlIGNvbnN0IHZlY3RvciBpbiB0aGUgZnV0dXJlLiAgKi8NCj4gZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy92bHMtdmxtYXgvYml0bWFzay0xLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2st MS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAw MDAwLi44MTIyOWZkNjJiOQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMt dmxtYXgvYml0bWFzay0xLmMNCj4gQEAgLTAsMCArMSwyMyBAQA0KPiArLyog eyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8N Cj4gKy8qIHsgZGctb3B0aW9ucyAiLS1wYXJhbSByaXNjdi1hdXRvdmVjLXBy ZWZlcmVuY2U9Zml4ZWQtdmxtYXggLU8zIiB9ICovDQo+ICsNCj4gKyNpbmNs dWRlIDxzdGRpbnQtZ2NjLmg+DQo+ICsjaW5jbHVkZSA8YXNzZXJ0Lmg+DQo+ ICsjZGVmaW5lIE4gMTYNCj4gKw0KPiAraW50DQo+ICttYWluICgpDQo+ICt7 DQo+ICsgIGludCBtYXNrW05dID0gezAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDF9Ow0KPiArICBpbnQ2NF90IG91dFtO XSA9IHswfTsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpDQo+ ICsgICAgaWYgKG1hc2tbaV0pDQo+ICsgICAgICBvdXRbaV0gPSBpOw0KPiAr ICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkNCj4gKyAgICB7DQo+ICsg ICAgICBpZiAobWFza1tpXSkNCj4gKyBhc3NlcnQgKG91dFtpXSA9PSBpKTsN Cj4gKyAgICAgIGVsc2UNCj4gKyBhc3NlcnQgKG91dFtpXSA9PSAwKTsNCj4g KyAgICB9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2st Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3Zscy12bG1heC9iaXRtYXNrLTIuYw0KPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uYTIzZTQ3MTcxYmMNCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stMi5jDQo+IEBA IC0wLDAgKzEsMjMgQEANCj4gKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsg cmlzY3ZfdmVjdG9yIH0gfSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi0t cGFyYW0gcmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPWZpeGVkLXZsbWF4IC1P MyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50LWdjYy5oPg0KPiAr I2luY2x1ZGUgPGFzc2VydC5oPg0KPiArI2RlZmluZSBOIDE2DQo+ICsNCj4g K2ludA0KPiArbWFpbiAoKQ0KPiArew0KPiArICBpbnQgbWFza1tOXSA9IHsw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx fTsNCj4gKyAgaW50IG91dFtOXSA9IHswfTsNCj4gKyAgZm9yIChpbnQgaSA9 IDA7IGkgPCBOOyArK2kpDQo+ICsgICAgaWYgKG1hc2tbaV0pDQo+ICsgICAg ICBvdXRbaV0gPSBpOw0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsr aSkNCj4gKyAgICB7DQo+ICsgICAgICBpZiAobWFza1tpXSkNCj4gKyBhc3Nl cnQgKG91dFtpXSA9PSBpKTsNCj4gKyAgICAgIGVsc2UNCj4gKyBhc3NlcnQg KG91dFtpXSA9PSAwKTsNCj4gKyAgICB9DQo+ICt9DQo+IGRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMv dmxzLXZsbWF4L2JpdG1hc2stMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTMuYw0K PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4u NmVhOGZkZDg5YzANCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4 L2JpdG1hc2stMy5jDQo+IEBAIC0wLDAgKzEsMjMgQEANCj4gKy8qIHsgZGct ZG8gcnVuIHsgdGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQo+ICsv KiB7IGRnLW9wdGlvbnMgIi0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1wcmVmZXJl bmNlPWZpeGVkLXZsbWF4IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSA8 c3RkaW50LWdjYy5oPg0KPiArI2luY2x1ZGUgPGFzc2VydC5oPg0KPiArI2Rl ZmluZSBOIDE2DQo+ICsNCj4gK2ludA0KPiArbWFpbiAoKQ0KPiArew0KPiAr ICBpbnQxNl90IG1hc2tbTl0gPSB7MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSwgMCwgMX07DQo+ICsgIGludDE2X3Qgb3V0W05d ID0gezB9Ow0KPiArICBmb3IgKGludDE2X3QgaSA9IDA7IGkgPCBOOyArK2kp DQo+ICsgICAgaWYgKG1hc2tbaV0pDQo+ICsgICAgICBvdXRbaV0gPSBpOw0K PiArICBmb3IgKGludDE2X3QgaSA9IDA7IGkgPCBOOyArK2kpDQo+ICsgICAg ew0KPiArICAgICAgaWYgKG1hc2tbaV0pDQo+ICsgYXNzZXJ0IChvdXRbaV0g PT0gaSk7DQo+ICsgICAgICBlbHNlDQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0g MCk7DQo+ICsgICAgfQ0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9i aXRtYXNrLTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay00LmMNCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjJkOTdjMjZhYmZk DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTQu Yw0KPiBAQCAtMCwwICsxLDIzIEBADQo+ICsvKiB7IGRnLWRvIHJ1biB7IHRh cmdldCB7IHJpc2N2X3ZlY3RvciB9IH0gfSAqLw0KPiArLyogeyBkZy1vcHRp b25zICItLXBhcmFtIHJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1maXhlZC12 bG1heCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgPHN0ZGludC1nY2Mu aD4NCj4gKyNpbmNsdWRlIDxhc3NlcnQuaD4NCj4gKyNkZWZpbmUgTiAxNg0K PiArDQo+ICtpbnQNCj4gK21haW4gKCkNCj4gK3sNCj4gKyAgaW50OF90IG1h c2tbTl0gPSB7MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMX07DQo+ICsgIGludDhfdCBvdXRbTl0gPSB7MH07DQo+ICsg IGZvciAoaW50OF90IGkgPSAwOyBpIDwgTjsgKytpKQ0KPiArICAgIGlmICht YXNrW2ldKQ0KPiArICAgICAgb3V0W2ldID0gaTsNCj4gKyAgZm9yIChpbnQ4 X3QgaSA9IDA7IGkgPCBOOyArK2kpDQo+ICsgICAgew0KPiArICAgICAgaWYg KG1hc2tbaV0pDQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0gaSk7DQo+ICsgICAg ICBlbHNlDQo+ICsgYXNzZXJ0IChvdXRbaV0gPT0gMCk7DQo+ICsgICAgfQ0K PiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTUuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMt dmxtYXgvYml0bWFzay01LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4g aW5kZXggMDAwMDAwMDAwMDAuLmI4OWI3MGU5OWE2DQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTUuYw0KPiBAQCAtMCwwICsx LDI1IEBADQo+ICsvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3Zl Y3RvciB9IH0gfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItLXBhcmFtIHJp c2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1maXhlZC12bG1heCAtLXBhcmFtIHJp c2N2LWF1dG92ZWMtbG11bD1tMiAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1 ZGUgPHN0ZGludC1nY2MuaD4NCj4gKyNpbmNsdWRlIDxhc3NlcnQuaD4NCj4g Kw0KPiArI2RlZmluZSBOIDMyDQo+ICsNCj4gK2ludA0KPiArbWFpbiAoKQ0K PiArew0KPiArICBpbnQ4X3QgbWFza1tOXSA9IHswLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiArICAgICAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxfTsN Cj4gKyAgaW50OF90IG91dFtOXSA9IHswfTsNCj4gKyAgZm9yIChpbnQ4X3Qg aSA9IDA7IGkgPCBOOyArK2kpDQo+ICsgICAgaWYgKG1hc2tbaV0pDQo+ICsg ICAgICBvdXRbaV0gPSBpOw0KPiArICBmb3IgKGludDhfdCBpID0gMDsgaSA8 IE47ICsraSkNCj4gKyAgICB7DQo+ICsgICAgICBpZiAobWFza1tpXSkNCj4g KyBhc3NlcnQgKG91dFtpXSA9PSBpKTsNCj4gKyAgICAgIGVsc2UNCj4gKyBh c3NlcnQgKG91dFtpXSA9PSAwKTsNCj4gKyAgICB9DQo+ICt9DQo+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2stNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNr LTYuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAw MDAwMC4uYWM4ZDkxZTc5M2INCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxz LXZsbWF4L2JpdG1hc2stNi5jDQo+IEBAIC0wLDAgKzEsMjcgQEANCj4gKy8q IHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICov DQo+ICsvKiB7IGRnLW9wdGlvbnMgIi0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1w cmVmZXJlbmNlPWZpeGVkLXZsbWF4IC0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1s bXVsPW00IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50LWdj Yy5oPg0KPiArI2luY2x1ZGUgPGFzc2VydC5oPg0KPiArDQo+ICsjZGVmaW5l IE4gNjQNCj4gKw0KPiAraW50DQo+ICttYWluICgpDQo+ICt7DQo+ICsgIGlu dDhfdCBtYXNrW05dID0gezAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ ICsgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDF9Ow0KPiArICBpbnQ4X3Qgb3V0W05dID0gezB9Ow0KPiArICBm b3IgKGludDhfdCBpID0gMDsgaSA8IE47ICsraSkNCj4gKyAgICBpZiAobWFz a1tpXSkNCj4gKyAgICAgIG91dFtpXSA9IGk7DQo+ICsgIGZvciAoaW50OF90 IGkgPSAwOyBpIDwgTjsgKytpKQ0KPiArICAgIHsNCj4gKyAgICAgIGlmICht YXNrW2ldKQ0KPiArIGFzc2VydCAob3V0W2ldID09IGkpOw0KPiArICAgICAg ZWxzZQ0KPiArIGFzc2VydCAob3V0W2ldID09IDApOw0KPiArICAgIH0NCj4g K30NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay03LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZs bWF4L2JpdG1hc2stNy5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGlu ZGV4IDAwMDAwMDAwMDAwLi5mNTM4ZGIyM2IxZA0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YXV0b3ZlYy92bHMtdmxtYXgvYml0bWFzay03LmMNCj4gQEAgLTAsMCArMSwz MCBAQA0KPiArLyogeyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0 b3IgfSB9IH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLS1wYXJhbSByaXNj di1hdXRvdmVjLXByZWZlcmVuY2U9Zml4ZWQtdmxtYXggLS1wYXJhbSByaXNj di1hdXRvdmVjLWxtdWw9bTggLU8zIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRl IDxzdGRpbnQtZ2NjLmg+DQo+ICsjaW5jbHVkZSA8YXNzZXJ0Lmg+DQo+ICsN Cj4gKyNkZWZpbmUgTiAxMjgNCj4gKw0KPiAraW50DQo+ICttYWluICgpDQo+ ICt7DQo+ICsgIHVpbnQ4X3QgbWFza1tOXQ0KPiArICAgID0gezAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwN Cj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiArICAgICAgIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEs IDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwg MCwgMSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxfTsNCj4gKyAgdWludDhfdCBvdXRb Tl0gPSB7MH07DQo+ICsgIGZvciAodWludDhfdCBpID0gMDsgaSA8IE47ICsr aSkNCj4gKyAgICBpZiAobWFza1tpXSkNCj4gKyAgICAgIG91dFtpXSA9IGk7 DQo+ICsgIGZvciAodWludDhfdCBpID0gMDsgaSA8IE47ICsraSkNCj4gKyAg ICB7DQo+ICsgICAgICBpZiAobWFza1tpXSkNCj4gKyBhc3NlcnQgKG91dFtp XSA9PSBpKTsNCj4gKyAgICAgIGVsc2UNCj4gKyBhc3NlcnQgKG91dFtpXSA9 PSAwKTsNCj4gKyAgICB9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4 L2JpdG1hc2stOC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTguYw0KPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uNWFiYjM0YzE2 ODYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1hc2st OC5jDQo+IEBAIC0wLDAgKzEsMzAgQEANCj4gKy8qIHsgZGctZG8gcnVuIHsg dGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQo+ICsvKiB7IGRnLW9w dGlvbnMgIi0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPWZpeGVk LXZsbWF4IC0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1sbXVsPW04IC1PMyIgfSAq Lw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50LWdjYy5oPg0KPiArI2luY2x1 ZGUgPGFzc2VydC5oPg0KPiArDQo+ICsjZGVmaW5lIE4gMTI4DQo+ICsNCj4g K2ludA0KPiArbWFpbiAoKQ0KPiArew0KPiArICBpbnQgbWFza1tOXQ0KPiAr ICAgID0gezAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAx LA0KPiArICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAg MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwgMCwgMSwgMCwgMSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxfTsNCj4g KyAgaW50IG91dFtOXSA9IHswfTsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkg PCBOOyArK2kpDQo+ICsgICAgaWYgKG1hc2tbaV0pDQo+ICsgICAgICBvdXRb aV0gPSBpOw0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IE47ICsraSkNCj4g KyAgICB7DQo+ICsgICAgICBpZiAobWFza1tpXSkNCj4gKyBhc3NlcnQgKG91 dFtpXSA9PSBpKTsNCj4gKyAgICAgIGVsc2UNCj4gKyBhc3NlcnQgKG91dFtp XSA9PSAwKTsNCj4gKyAgICB9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZs bWF4L2JpdG1hc2stOS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3Zscy12bG1heC9iaXRtYXNrLTkuYw0KPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uNmZkYWE1 MTY1MzQNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzLXZsbWF4L2JpdG1h c2stOS5jDQo+IEBAIC0wLDAgKzEsMzAgQEANCj4gKy8qIHsgZGctZG8gcnVu IHsgdGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQo+ICsvKiB7IGRn LW9wdGlvbnMgIi0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPWZp eGVkLXZsbWF4IC0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1sbXVsPW04IC1PMyIg fSAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50LWdjYy5oPg0KPiArI2lu Y2x1ZGUgPGFzc2VydC5oPg0KPiArDQo+ICsjZGVmaW5lIE4gMTI4DQo+ICsN Cj4gK2ludA0KPiArbWFpbiAoKQ0KPiArew0KPiArICBpbnQ2NF90IG1hc2tb Tl0NCj4gKyAgICA9IHswLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiArICAgICAg IDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MSwgMCwgMSwNCj4gKyAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAw LCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLA0KPiAr ICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAs IDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsDQo+ICsgICAgICAgMCwgMSwg MCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwg MX07DQo+ICsgIGludDY0X3Qgb3V0W05dID0gezB9Ow0KPiArICBmb3IgKGlu dCBpID0gMDsgaSA8IE47ICsraSkNCj4gKyAgICBpZiAobWFza1tpXSkNCj4g KyAgICAgIG91dFtpXSA9IGk7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwg TjsgKytpKQ0KPiArICAgIHsNCj4gKyAgICAgIGlmIChtYXNrW2ldKQ0KPiAr IGFzc2VydCAob3V0W2ldID09IGkpOw0KPiArICAgICAgZWxzZQ0KPiArIGFz c2VydCAob3V0W2ldID09IDApOw0KPiArICAgIH0NCj4gK30NCj4gLS0NCj4g Mi4zNi4xDQo+DQogDQo= ------=_001_NextPart064670852516_=------