From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg150.qq.com (smtpbg150.qq.com [18.132.163.193]) by sourceware.org (Postfix) with ESMTPS id 104563858D33 for ; Tue, 22 Aug 2023 03:00:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 104563858D33 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: bizesmtp91t1692673245t293rkwa Received: from LAPTOP-EPITNQBU ( [113.104.212.114]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 22 Aug 2023 11:00:44 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: RrZlkntZBflMICK+qs6fwCa4gPhZ3X78kY609veEpn8rM999rR1nLuqySJcly se/CddziUqhLp2uuRYmGgSKdTwNMEp1yx2TzzRicmqYZB3nUHmURuqSvrjX3u8LXtLKvc1Q 8Zka1uE70ZitYAvclPz48Yxy376KsxrU6B9HyztrybLQj87TJAixKD5fOkQt/TfoXgo6MWo pj7KgatgTgU+ahKCQaHsRPflrea+knFbHtimohPZATOwvl9RFa1GpmLa0XDisU7a/A5s44P sa5bbe2ySoKWvaZZN8JuMHSQ8nwV7WsU2rqd00CTldkFN+5sWoq8fvFJCyFBJe4KynwdWAO 27S4SItVesKVfdmJrUzj/7/76NvAptwyXThp+cfGIlWlBlpRZmCXPtqa8PIoSwnljNHQ7oc AzCH0vquMgtDZqJbi9f8xg== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 3439117764446408368 Date: Tue, 22 Aug 2023 11:00:44 +0800 From: "juzhe.zhong@rivai.ai" To: richard.sandiford Cc: gcc-patches , rguenther Subject: Re: Re: [PATCH] gimple_fold: Support COND_LEN_FNMA/COND_LEN_FMS/COND_LEN_FNMS gimple fold References: <20230816131205.233568-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 260C2995-733B-4DC9-9F8B-41F0BE9EB260 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <6540AB31696952E6+2023082211004368376326@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart774712454583_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID 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_NextPart774712454583_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 SGksIFJpY2hhcmQuDQoNCkFkZHJlc3MgYWxsIGNvbW1lbnRzIGFuZCBmaXgg VjI6DQpodHRwczovL2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hl cy8yMDIzLUF1Z3VzdC82MjgwNzAuaHRtbCANCg0KPj4gV2hhdCdzIHRoaXMg dXNlZCBmb3I/ICBJJ20gc3VycHJpc2VkIGl0IGRvZXNuJ3QgY2F1c2UgYSBi b290c3RyYXAgZmFpbHVyZS4NCk9oIHllcy4gaXQncyByZWR1bmRhbnQgdmFy aWFibGUgYW5kIHJlbW92ZSBpdCBpbiBWMi4gDQpJIGFtIGFsc28gc3VycHJp c2VkIHRoYXQgYm9vdHN0cmFwIGRpZG4ndCByZXBvcnQgdGhpcy4NCg0KVGhh bmtzLg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBSaWNo YXJkIFNhbmRpZm9yZA0KRGF0ZTogMjAyMy0wOC0yMSAyMjoxNg0KVG86IEp1 emhlLVpob25nDQpDQzogZ2NjLXBhdGNoZXM7IHJndWVudGhlcg0KU3ViamVj dDogUmU6IFtQQVRDSF0gZ2ltcGxlX2ZvbGQ6IFN1cHBvcnQgQ09ORF9MRU5f Rk5NQS9DT05EX0xFTl9GTVMvQ09ORF9MRU5fRk5NUyBnaW1wbGUgZm9sZA0K SnV6aGUtWmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPiB3cml0ZXM6DQo+ IEhpLCBSaWNoYXJkIGFuZCBSaWNoaS4NCj4NCj4gQ3VycmVudGx5LCBHQ0Mg c3VwcG9ydCBDT05EX0xFTl9GTUEgZm9yIGZsb2F0aW5nLXBvaW50ICoqTk8q KiAtZmZhc3QtbWF0aC4NCj4gSXQncyBzdXBwb3J0ZWQgaW4gdHJlZS1zc2Et bWF0aC1vcHRzLmNjLiBIb3dldmVyLCBHQ0MgZmFpbGVkIHRvIHN1cHBvcnQg Q09ORF9MRU5fRk5NQS9DT05EX0xFTl9GTVMvQ09ORF9MRU5fRk5NUy4NCj4N Cj4gQ29uc2lkZXIgdGhpcyBmb2xsb3dpbmcgY2FzZToNCj4gI2RlZmluZSBU RVNUX1RZUEUoVFlQRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gICBfX2F0dHJpYnV0ZV9f ICgobm9pcGEpKSB2b2lkIHRlcm5vcF8jI1RZUEUgKFRZUEUgKl9fcmVzdHJp Y3QgZHN0LCAgICAgICAgICAgIFwNCj4gICAgICAgVFlQRSAqX19yZXN0cmlj dCBhLCAgICAgICAgICAgICAgXA0KPiAgICAgICBUWVBFICpfX3Jlc3RyaWN0 IGIsIGludCBuKSAgICAgICBcDQo+ICAgeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQo+ICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkr KykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQo+ICAgICAgIGRzdFtpXSAtPSBhW2ldICogYltpXTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAgIH0N Cj4NCj4gI2RlZmluZSBURVNUX0FMTCgpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g ICBURVNUX1RZUEUgKGZsb2F0KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4NCj4gVEVT VF9BTEwgKCkNCj4NCj4gR2ltcGxlIElSIGZvciBSVlY6DQo+DQo+IC4uLg0K PiBfMzkgPSAtdmVjdF9fOC4xNF8yNjsNCj4gdmVjdF9fMTAuMTZfMjEgPSAu Q09ORF9MRU5fRk1BICh7IC0xLCAuLi4gfSwgdmVjdF9fNi4xMV8zMCwgXzM5 LCB2ZWN0X180LjhfMzQsIHZlY3RfXzQuOF8zNCwgXzQ2LCAwKTsNCj4gLi4u DQo+DQo+IFRoaXMgaXMgYmVjYXVzZSB0aGlzIGZvbGxvd2luZyBwaWVjZSBv ZiBjb2RlcyBpbiB0cmVlLXNzYS1tYXRoLW9wdHMuY2M6DQo+DQo+ICAgICAg IGlmIChsZW4pDQo+IGZtYV9zdG10DQo+ICAgPSBnaW1wbGVfYnVpbGRfY2Fs bF9pbnRlcm5hbCAoSUZOX0NPTkRfTEVOX0ZNQSwgNywgY29uZCwgbXVsb3Ax LCBvcDIsDQo+IGFkZG9wLCBlbHNlX3ZhbHVlLCBsZW4sIGJpYXMpOw0KPiAg ICAgICBlbHNlIGlmIChjb25kKQ0KPiBmbWFfc3RtdCA9IGdpbXBsZV9idWls ZF9jYWxsX2ludGVybmFsIChJRk5fQ09ORF9GTUEsIDUsIGNvbmQsIG11bG9w MSwNCj4gICAgICAgIG9wMiwgYWRkb3AsIGVsc2VfdmFsdWUpOw0KPiAgICAg ICBlbHNlDQo+IGZtYV9zdG10ID0gZ2ltcGxlX2J1aWxkX2NhbGxfaW50ZXJu YWwgKElGTl9GTUEsIDMsIG11bG9wMSwgb3AyLCBhZGRvcCk7DQo+ICAgICAg IGdpbXBsZV9zZXRfbGhzIChmbWFfc3RtdCwgZ2ltcGxlX2dldF9saHMgKHVz ZV9zdG10KSk7DQo+ICAgICAgIGdpbXBsZV9jYWxsX3NldF9ub3Rocm93IChm bWFfc3RtdCwgIXN0bXRfY2FuX3Rocm93X2ludGVybmFsIChjZnVuLA0KPiAg ICB1c2Vfc3RtdCkpOw0KPiAgICAgICBnc2lfcmVwbGFjZSAoJmdzaSwgZm1h X3N0bXQsIHRydWUpOw0KPiAgICAgICAvKiBGb2xsb3cgYWxsIFNTQSBlZGdl cyBzbyB0aGF0IHdlIGdlbmVyYXRlIEZNUywgRk5NQSBhbmQgRk5NUw0KPiBy ZWdhcmRsZXNzIG9mIHdoZXJlIHRoZSBuZWdhdGlvbiBvY2N1cnMuICAqLw0K PiAgICAgICBnaW1wbGUgKm9yaWdfc3RtdCA9IGdzaV9zdG10IChnc2kpOw0K PiAgICAgICBpZiAoZm9sZF9zdG10ICgmZ3NpLCBmb2xsb3dfYWxsX3NzYV9l ZGdlcykpDQo+IHsNCj4gICBpZiAobWF5YmVfY2xlYW5fb3JfcmVwbGFjZV9l aF9zdG10IChvcmlnX3N0bXQsIGdzaV9zdG10IChnc2kpKSkNCj4gICAgIGdj Y191bnJlYWNoYWJsZSAoKTsNCj4gICB1cGRhdGVfc3RtdCAoZ3NpX3N0bXQg KGdzaSkpOw0KPiB9DQo+DQo+ICdmb2xkX3N0bXQnIGZhaWxlZCB0byBmb2xk IE5FR0FURV9FWFBSICsgQ09ORF9MRU5fRk1BID09PT0+IENPTkRfTEVOX0ZO TUEuDQo+DQo+IFRoaXMgcGF0Y2ggc3VwcG9ydCBTVE1UIGZvbGQgaW50bzoN Cj4NCj4gdmVjdF9fMTAuMTZfMjEgPSAuQ09ORF9MRU5fRk5NQSAoeyAtMSwg Li4uIH0sIHZlY3RfXzguMTRfMjYsIHZlY3RfXzYuMTFfMzAsIHZlY3RfXzQu OF8zNCwgeyAwLjAsIC4uLiB9LCBfNDYsIDApOw0KPg0KPiBOb3RlIHRoYXQg Q09ORF9MRU5fRk5NQSBoYXMgNyBhcmd1bWVudHMgYW5kIENPTkRfTEVOX0FE RCBoYXMgNiBhcmd1bWVudHMuDQo+DQo+IEV4dGVuZCBtYXhpbXVtIG51bSBv cHM6DQo+IC0gIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgTUFYX05VTV9P UFMgPSA1Ow0KPiArICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IE1BWF9O VU1fT1BTID0gNzsNCj4NCj4gQm9vdHN0cmFwIGFuZCBSZWd0ZXN0IG9uIFg4 NiBwYXNzZWQuDQo+DQo+IEZ1bGx5IHRlc3RlZCBDT05EX0xFTl9GTk1BL0NP TkRfTEVOX0ZNUy9DT05EX0xFTl9GTk1TIG9uIFJJU0MtViBiYWNrZW5kLg0K Pg0KPiBUZXN0aW5nIG9uIGFhcmNoNjQgaXMgb24gcHJvZ3Jlc3MuDQo+DQo+ IGdjYy9DaGFuZ2VMb2c6DQo+DQo+ICAgICAgICAgKiBnZW5tYXRjaC5jYyAo ZGVjaXNpb25fdHJlZTo6Z2VuKTogU3VwcG9ydCBDT05EX0xFTl9GTk1BL0NP TkRfTEVOX0ZNUy9DT05EX0xFTl9GTk1TIGdpbXBsZSBmb2xkLg0KPiAgICAg ICAgICogZ2ltcGxlLW1hdGNoLWV4cG9ydHMuY2MgKGdpbXBsZV9zaW1wbGlm eSk6IERpdHRvLg0KPiAgICAgICAgIChnaW1wbGVfcmVzaW1wbGlmeTYpOiBO ZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgKGdpbXBsZV9yZXNpbXBsaWZ5Nyk6 IE5ldyBmdW5jdGlvbi4NCj4gICAgICAgICAoZ2ltcGxlX21hdGNoX29wOjpy ZXNpbXBsaWZ5KTogU3VwcG9ydCBDT05EX0xFTl9GTk1BL0NPTkRfTEVOX0ZN Uy9DT05EX0xFTl9GTk1TIGdpbXBsZSBmb2xkLg0KPiAgICAgICAgIChjb252 ZXJ0X2NvbmRpdGlvbmFsX29wKTogRGl0dG8uDQo+ICAgICAgICAgKGJ1aWxk X2NhbGxfaW50ZXJuYWwpOiBEaXR0by4NCj4gICAgICAgICAodHJ5X2NvbmRp dGlvbmFsX3NpbXBsaWZpY2F0aW9uKTogRGl0dG8uDQo+ICAgICAgICAgKGdp bXBsZV9leHRyYWN0KTogRGl0dG8uDQo+ICAgICAgICAgKiBnaW1wbGUtbWF0 Y2guaCAoZ2ltcGxlX21hdGNoX2NvbmQ6OmdpbXBsZV9tYXRjaF9jb25kKTog RGl0dG8uDQo+ICAgICAgICAgKiBpbnRlcm5hbC1mbi5jYyAoQ0FTRSk6IERp dHRvLg0KPg0KPiAtLS0NCj4gIGdjYy9nZW5tYXRjaC5jYyAgICAgICAgICAg ICB8ICAgMiArLQ0KPiAgZ2NjL2dpbXBsZS1tYXRjaC1leHBvcnRzLmNjIHwg MTI0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiAg Z2NjL2dpbXBsZS1tYXRjaC5oICAgICAgICAgIHwgIDE5ICsrKysrLQ0KPiAg Z2NjL2ludGVybmFsLWZuLmNjICAgICAgICAgIHwgIDExICsrLS0NCj4gIDQg ZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9u cygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2dlbm1hdGNoLmNjIGIvZ2Nj L2dlbm1hdGNoLmNjDQo+IGluZGV4IGY0NmQyZTE1MjBkLi5hMTkyNWE3NDdh NyAxMDA2NDQNCj4gLS0tIGEvZ2NjL2dlbm1hdGNoLmNjDQo+ICsrKyBiL2dj Yy9nZW5tYXRjaC5jYw0KPiBAQCAtNDA1Miw3ICs0MDUyLDcgQEAgZGVjaXNp b25fdHJlZTo6Z2VuICh2ZWMgPEZJTEUgKj4gJmZpbGVzLCBib29sIGdpbXBs ZSkNCj4gICAgICB9DQo+ICAgIGZwcmludGYgKHN0ZGVyciwgInJlbW92ZWQg JXUgZHVwbGljYXRlIHRhaWxzXG4iLCByY250KTsNCj4gIA0KPiAtICBmb3Ig KHVuc2lnbmVkIG4gPSAxOyBuIDw9IDU7ICsrbikNCj4gKyAgZm9yICh1bnNp Z25lZCBuID0gMTsgbiA8PSA3OyArK24pDQo+ICAgICAgew0KPiAgICAgICAg Ym9vbCBoYXNfa2lkc19wID0gZmFsc2U7DQo+ICANCj4gZGlmZiAtLWdpdCBh L2djYy9naW1wbGUtbWF0Y2gtZXhwb3J0cy5jYyBiL2djYy9naW1wbGUtbWF0 Y2gtZXhwb3J0cy5jYw0KPiBpbmRleCA3YWViNGRkYjE1Mi4uODk1OTUwMzA5 YjcgMTAwNjQ0DQo+IC0tLSBhL2djYy9naW1wbGUtbWF0Y2gtZXhwb3J0cy5j Yw0KPiArKysgYi9nY2MvZ2ltcGxlLW1hdGNoLWV4cG9ydHMuY2MNCj4gQEAg LTYwLDYgKzYwLDEyIEBAIGV4dGVybiBib29sIGdpbXBsZV9zaW1wbGlmeSAo Z2ltcGxlX21hdGNoX29wICosIGdpbXBsZV9zZXEgKiwgdHJlZSAoKikodHJl ZSksDQo+ICAgICAgIGNvZGVfaGVscGVyLCB0cmVlLCB0cmVlLCB0cmVlLCB0 cmVlLCB0cmVlKTsNCj4gIGV4dGVybiBib29sIGdpbXBsZV9zaW1wbGlmeSAo Z2ltcGxlX21hdGNoX29wICosIGdpbXBsZV9zZXEgKiwgdHJlZSAoKikodHJl ZSksDQo+ICAgICAgIGNvZGVfaGVscGVyLCB0cmVlLCB0cmVlLCB0cmVlLCB0 cmVlLCB0cmVlLCB0cmVlKTsNCj4gK2V4dGVybiBib29sIGdpbXBsZV9zaW1w bGlmeSAoZ2ltcGxlX21hdGNoX29wICosIGdpbXBsZV9zZXEgKiwgdHJlZSAo KikodHJlZSksDQo+ICsgICAgICBjb2RlX2hlbHBlciwgdHJlZSwgdHJlZSwg dHJlZSwgdHJlZSwgdHJlZSwgdHJlZSwNCj4gKyAgICAgIHRyZWUpOw0KPiAr ZXh0ZXJuIGJvb2wgZ2ltcGxlX3NpbXBsaWZ5IChnaW1wbGVfbWF0Y2hfb3Ag KiwgZ2ltcGxlX3NlcSAqLCB0cmVlICgqKSh0cmVlKSwNCj4gKyAgICAgIGNv ZGVfaGVscGVyLCB0cmVlLCB0cmVlLCB0cmVlLCB0cmVlLCB0cmVlLCB0cmVl LA0KPiArICAgICAgdHJlZSwgdHJlZSk7DQo+ICANCj4gIC8qIEZ1bmN0aW9u cyB0aGF0IGFyZSBuZWVkZWQgYnkgZ2ltcGxlLW1hdGNoIGJ1dCB0aGF0IGFy ZSBleHBvcnRlZCBhbmQgdXNlZCBpbg0KPiAgICAgb3RoZXIgcGxhY2VzIGlu IHRoZSBjb21waWxlci4gICovDQo+IEBAIC04OSw2ICs5NSw4IEBAIHN0YXRp YyBib29sIGdpbXBsZV9yZXNpbXBsaWZ5MiAoZ2ltcGxlX3NlcSAqLCBnaW1w bGVfbWF0Y2hfb3AgKiwgdHJlZSAoKikodHJlZSkpDQo+ICBzdGF0aWMgYm9v bCBnaW1wbGVfcmVzaW1wbGlmeTMgKGdpbXBsZV9zZXEgKiwgZ2ltcGxlX21h dGNoX29wICosIHRyZWUgKCopKHRyZWUpKTsNCj4gIHN0YXRpYyBib29sIGdp bXBsZV9yZXNpbXBsaWZ5NCAoZ2ltcGxlX3NlcSAqLCBnaW1wbGVfbWF0Y2hf b3AgKiwgdHJlZSAoKikodHJlZSkpOw0KPiAgc3RhdGljIGJvb2wgZ2ltcGxl X3Jlc2ltcGxpZnk1IChnaW1wbGVfc2VxICosIGdpbXBsZV9tYXRjaF9vcCAq LCB0cmVlICgqKSh0cmVlKSk7DQo+ICtzdGF0aWMgYm9vbCBnaW1wbGVfcmVz aW1wbGlmeTYgKGdpbXBsZV9zZXEgKiwgZ2ltcGxlX21hdGNoX29wICosIHRy ZWUgKCopKHRyZWUpKTsNCj4gK3N0YXRpYyBib29sIGdpbXBsZV9yZXNpbXBs aWZ5NyAoZ2ltcGxlX3NlcSAqLCBnaW1wbGVfbWF0Y2hfb3AgKiwgdHJlZSAo KikodHJlZSkpOw0KPiAgDQo+ICAvKiBNYXRjaCBhbmQgc2ltcGxpZnkgdGhl IHRvcGxldmVsIHZhbHVlaXplZCBvcGVyYXRpb24gVEhJUy4NCj4gICAgIFJl cGxhY2VzIFRISVMgd2l0aCBhIHNpbXBsaWZpZWQgYW5kL29yIGNhbm9uaWNh bGl6ZWQgcmVzdWx0IGFuZA0KPiBAQCAtMTA5LDYgKzExNywxMCBAQCBnaW1w bGVfbWF0Y2hfb3A6OnJlc2ltcGxpZnkgKGdpbXBsZV9zZXEgKnNlcSwgdHJl ZSAoKnZhbHVlaXplKSh0cmVlKSkNCj4gICAgICAgIHJldHVybiBnaW1wbGVf cmVzaW1wbGlmeTQgKHNlcSwgdGhpcywgdmFsdWVpemUpOw0KPiAgICAgIGNh c2UgNToNCj4gICAgICAgIHJldHVybiBnaW1wbGVfcmVzaW1wbGlmeTUgKHNl cSwgdGhpcywgdmFsdWVpemUpOw0KPiArICAgIGNhc2UgNjoNCj4gKyAgICAg IHJldHVybiBnaW1wbGVfcmVzaW1wbGlmeTYgKHNlcSwgdGhpcywgdmFsdWVp emUpOw0KPiArICAgIGNhc2UgNzoNCj4gKyAgICAgIHJldHVybiBnaW1wbGVf cmVzaW1wbGlmeTcgKHNlcSwgdGhpcywgdmFsdWVpemUpOw0KPiAgICAgIGRl ZmF1bHQ6DQo+ICAgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQo+ICAgICAg fQ0KPiBAQCAtMTQ2LDcgKzE1OCwxNCBAQCBjb252ZXJ0X2NvbmRpdGlvbmFs X29wIChnaW1wbGVfbWF0Y2hfb3AgKm9yaWdfb3AsDQo+ICAgIGlmIChpZm4g PT0gSUZOX0xBU1QpDQo+ICAgICAgcmV0dXJuIGZhbHNlOw0KPiAgICB1bnNp Z25lZCBpbnQgbnVtX29wcyA9IG9yaWdfb3AtPm51bV9vcHM7DQo+IC0gIG5l d19vcC0+c2V0X29wIChhc19jb21iaW5lZF9mbiAoaWZuKSwgb3JpZ19vcC0+ dHlwZSwgbnVtX29wcyArIDIpOw0KPiArICB1bnNpZ25lZCBpbnQgbnVtX2Nv bmRfb3BzID0gMjsNCj4gKyAgaWYgKG9yaWdfb3AtPmNvbmQubGVuKQ0KPiAr ICAgIHsNCj4gKyAgICAgIC8qIENvbnZlcnQgQ09ORF9GTk1BIHRvIENPTkRf TEVOX0ZOTUEgaWYgaXQgaGFzIExFTiBhbmQgQklBUy4gICovDQogDQpTdWdn ZXN0IGp1c3Q6DQogDQogICAvKiBBZGQgdGhlIGxlbmd0aCBhbmQgYmlhcyBw YXJhbWV0ZXJzLiAgKi8NCiANCj4gKyAgICAgIGlmbiA9IGdldF9sZW5faW50 ZXJuYWxfZm4gKGlmbik7DQo+ICsgICAgICBudW1fY29uZF9vcHMgPSA0Ow0K PiArICAgIH0NCj4gKyAgbmV3X29wLT5zZXRfb3AgKGFzX2NvbWJpbmVkX2Zu IChpZm4pLCBvcmlnX29wLT50eXBlLCBudW1fb3BzICsgbnVtX2NvbmRfb3Bz KTsNCj4gICAgbmV3X29wLT5vcHNbMF0gPSBvcmlnX29wLT5jb25kLmNvbmQ7 DQo+ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbnVtX29wczsg KytpKQ0KPiAgICAgIG5ld19vcC0+b3BzW2kgKyAxXSA9IG9yaWdfb3AtPm9w c1tpXTsNCj4gQEAgLTE1NSw2ICsxNzQsMTEgQEAgY29udmVydF9jb25kaXRp b25hbF9vcCAoZ2ltcGxlX21hdGNoX29wICpvcmlnX29wLA0KPiAgICAgIGVs c2VfdmFsdWUgPSB0YXJnZXRtLnByZWZlcnJlZF9lbHNlX3ZhbHVlIChpZm4s IG9yaWdfb3AtPnR5cGUsDQo+ICAgICAgICAgbnVtX29wcywgb3JpZ19vcC0+ b3BzKTsNCj4gICAgbmV3X29wLT5vcHNbbnVtX29wcyArIDFdID0gZWxzZV92 YWx1ZTsNCj4gKyAgaWYgKG9yaWdfb3AtPmNvbmQubGVuKQ0KPiArICAgIHsN Cj4gKyAgICAgIG5ld19vcC0+b3BzW251bV9vcHMgKyAyXSA9IG9yaWdfb3At PmNvbmQubGVuOw0KPiArICAgICAgbmV3X29wLT5vcHNbbnVtX29wcyArIDNd ID0gb3JpZ19vcC0+Y29uZC5iaWFzOw0KPiArICAgIH0NCj4gICAgcmV0dXJu IHRydWU7DQo+ICB9DQo+ICAvKiBIZWxwZXIgZm9yIGdpbXBsZV9zaW1wbGlm eSB2YWx1ZWl6aW5nIE9QIHVzaW5nIFZBTFVFSVpFIGFuZCBzZXR0aW5nDQo+ IEBAIC0yMTksNyArMjQzLDkgQEAgYnVpbGRfY2FsbF9pbnRlcm5hbCAoaW50 ZXJuYWxfZm4gZm4sIGdpbXBsZV9tYXRjaF9vcCAqcmVzX29wKQ0KPiAgICAg ICByZXNfb3AtPm9wX29yX251bGwgKDEpLA0KPiAgICAgICByZXNfb3AtPm9w X29yX251bGwgKDIpLA0KPiAgICAgICByZXNfb3AtPm9wX29yX251bGwgKDMp LA0KPiAtICAgICAgcmVzX29wLT5vcF9vcl9udWxsICg0KSk7DQo+ICsgICAg ICByZXNfb3AtPm9wX29yX251bGwgKDQpLA0KPiArICAgICAgcmVzX29wLT5v cF9vcl9udWxsICg1KSwNCj4gKyAgICAgIHJlc19vcC0+b3Bfb3JfbnVsbCAo NikpOw0KPiAgfQ0KPiAgDQo+ICAvKiBSRVNfT1AgaXMgdGhlIHJlc3VsdCBv ZiBhIHNpbXBsaWZpY2F0aW9uLiAgSWYgaXQgaXMgY29uZGl0aW9uYWwsDQo+ IEBAIC0zMTksNiArMzQ1LDcgQEAgdHJ5X2NvbmRpdGlvbmFsX3NpbXBsaWZp Y2F0aW9uIChpbnRlcm5hbF9mbiBpZm4sIGdpbXBsZV9tYXRjaF9vcCAqcmVz X29wLA0KPiAgew0KPiAgICBjb2RlX2hlbHBlciBvcDsNCj4gICAgdHJlZV9j b2RlIGNvZGUgPSBjb25kaXRpb25hbF9pbnRlcm5hbF9mbl9jb2RlIChpZm4p Ow0KPiArICBpbnQgbGVuX2luZGV4ID0gaW50ZXJuYWxfZm5fbGVuX2luZGV4 IChpZm4pOw0KPiAgICBpZiAoY29kZSAhPSBFUlJPUl9NQVJLKQ0KPiAgICAg IG9wID0gY29kZTsNCj4gICAgZWxzZQ0KPiBAQCAtMzMwLDEyICszNTcsMjAg QEAgdHJ5X2NvbmRpdGlvbmFsX3NpbXBsaWZpY2F0aW9uIChpbnRlcm5hbF9m biBpZm4sIGdpbXBsZV9tYXRjaF9vcCAqcmVzX29wLA0KPiAgICAgIH0NCj4g IA0KPiAgICB1bnNpZ25lZCBpbnQgbnVtX29wcyA9IHJlc19vcC0+bnVtX29w czsNCj4gKyAgLyogbnVtX2NvbmRfb3BzID0gMiBmb3IgQ09ORF9BREQgKE1B U0sgYW5kIEVMU0UpDQo+ICsgICAgIHdoZXJhcyBudW1fY29uZF9vcHMgPSA0 IGZvciBDT05EX0xFTl9BREQgKE1BU0ssIEVMU0UsIExFTiBhbmQgQklBUyku ICAqLw0KPiArICB1bnNpZ25lZCBpbnQgbnVtX2NvbmRfb3BzID0gbGVuX2lu ZGV4IDwgMCA/IDIgOiA0Ow0KPiArICB0cmVlIGVsc2VfdmFsdWUNCj4gKyAg ICA9IGxlbl9pbmRleCA8IDAgPyByZXNfb3AtPm9wc1tudW1fb3BzIC0gMV0g OiByZXNfb3AtPm9wc1tudW1fb3BzIC0gM107DQo+ICsgIHRyZWUgbGVuID0g bGVuX2luZGV4IDwgMCA/IE5VTExfVFJFRSA6IHJlc19vcC0+b3BzW251bV9v cHMgLSAyXTsNCj4gKyAgdHJlZSBiaWFzID0gbGVuX2luZGV4IDwgMCA/IE5V TExfVFJFRSA6IHJlc19vcC0+b3BzW251bV9vcHMgLSAxXTsNCj4gKyAgdW5z aWduZWQgaW50IGxhc3Rfb3BfaW5kZXggPSBsZW5faW5kZXggPCAwID8gbnVt X29wcyAtIDEgOiBudW1fb3BzIC0gMzsNCiANCldoYXQncyB0aGlzIHVzZWQg Zm9yPyAgSSdtIHN1cnByaXNlZCBpdCBkb2Vzbid0IGNhdXNlIGEgYm9vdHN0 cmFwIGZhaWx1cmUuDQogDQo+ICAgIGdpbXBsZV9tYXRjaF9vcCBjb25kX29w IChnaW1wbGVfbWF0Y2hfY29uZCAocmVzX29wLT5vcHNbMF0sDQo+IC0gICAg ICAgcmVzX29wLT5vcHNbbnVtX29wcyAtIDFdKSwNCj4gLSAgICBvcCwgcmVz X29wLT50eXBlLCBudW1fb3BzIC0gMik7DQo+ICsgICAgICAgZWxzZV92YWx1 ZSwgbGVuLCBiaWFzKSwNCj4gKyAgICBvcCwgcmVzX29wLT50eXBlLCBudW1f b3BzIC0gbnVtX2NvbmRfb3BzKTsNCj4gIA0KPiAgICBtZW1jcHkgKGNvbmRf b3Aub3BzLCByZXNfb3AtPm9wcyArIDEsIChudW1fb3BzIC0gMSkgKiBzaXpl b2YgKmNvbmRfb3Aub3BzKTsNCj4gLSAgc3dpdGNoIChudW1fb3BzIC0gMikN Cj4gKyAgc3dpdGNoIChudW1fb3BzIC0gbnVtX2NvbmRfb3BzKQ0KPiAgICAg IHsNCj4gICAgICBjYXNlIDE6DQo+ICAgICAgICBpZiAoIWdpbXBsZV9yZXNp bXBsaWZ5MSAoc2VxLCAmY29uZF9vcCwgdmFsdWVpemUpKQ0KPiBAQCAtNzE3 LDcgKzc1Miw3IEBAIGdpbXBsZV9leHRyYWN0IChnaW1wbGUgKnN0bXQsIGdp bXBsZV9tYXRjaF9vcCAqcmVzX29wLA0KPiAgICAgICAgLyogPz8/ICBUaGlz IHdheSB3ZSBjYW4ndCBzaW1wbGlmeSBjYWxscyB3aXRoIHNpZGUtZWZmZWN0 cy4gICovDQo+ICAgICAgICBpZiAoZ2ltcGxlX2NhbGxfbGhzIChzdG10KSAh PSBOVUxMX1RSRUUNCj4gICAgJiYgZ2ltcGxlX2NhbGxfbnVtX2FyZ3MgKHN0 bXQpID49IDENCj4gLSAgICYmIGdpbXBsZV9jYWxsX251bV9hcmdzIChzdG10 KSA8PSA1KQ0KPiArICAgJiYgZ2ltcGxlX2NhbGxfbnVtX2FyZ3MgKHN0bXQp IDw9IDcpDQo+ICB7DQo+ICAgIGNvbWJpbmVkX2ZuIGNmbjsNCj4gICAgaWYg KGdpbXBsZV9jYWxsX2ludGVybmFsX3AgKHN0bXQpKQ0KPiBAQCAtMTE0NSw2 ICsxMTgwLDgzIEBAIGdpbXBsZV9yZXNpbXBsaWZ5NSAoZ2ltcGxlX3NlcSAq c2VxLCBnaW1wbGVfbWF0Y2hfb3AgKnJlc19vcCwNCj4gICAgcmV0dXJuIGNh bm9uaWNhbGl6ZWQ7DQo+ICB9DQo+ICANCj4gKy8qIEhlbHBlciB0aGF0IG1h dGNoZXMgYW5kIHNpbXBsaWZpZXMgdGhlIHRvcGxldmVsIHJlc3VsdCBmcm9t DQo+ICsgICBhIGdpbXBsZV9zaW1wbGlmeSBydW4gKHdoZXJlIHdlIGRvbid0 IHdhbnQgdG8gYnVpbGQNCj4gKyAgIGEgc3RtdCBpbiBjYXNlIGl0J3MgdXNl ZCBpbiBpbi1wbGFjZSBmb2xkaW5nKS4gIFJlcGxhY2VzDQo+ICsgICBSRVNf T1Agd2l0aCBhIHNpbXBsaWZpZWQgYW5kL29yIGNhbm9uaWNhbGl6ZWQgcmVz dWx0IGFuZA0KPiArICAgcmV0dXJucyB3aGV0aGVyIGFueSBjaGFuZ2Ugd2Fz IG1hZGUuICAqLw0KPiArDQo+ICtzdGF0aWMgYm9vbA0KPiArZ2ltcGxlX3Jl c2ltcGxpZnk2IChnaW1wbGVfc2VxICpzZXEsIGdpbXBsZV9tYXRjaF9vcCAq cmVzX29wLA0KPiArICAgICB0cmVlICgqdmFsdWVpemUpKHRyZWUpKQ0KPiAr ew0KPiArICAvKiBObyBjb25zdGFudCBmb2xkaW5nIGlzIGRlZmluZWQgZm9y IGZpdmUtb3BlcmFuZCBmdW5jdGlvbnMuICAqLw0KPiArDQo+ICsgIC8qIENh bm9uaWNhbGl6ZSBvcGVyYW5kIG9yZGVyLiAgKi8NCj4gKyAgYm9vbCBjYW5v bmljYWxpemVkID0gZmFsc2U7DQo+ICsgIGludCBhcmdubyA9IGZpcnN0X2Nv bW11dGF0aXZlX2FyZ3VtZW50IChyZXNfb3AtPmNvZGUsIHJlc19vcC0+dHlw ZSk7DQo+ICsgIGlmIChhcmdubyA+PSAwDQo+ICsgICAgICAmJiB0cmVlX3N3 YXBfb3BlcmFuZHNfcCAocmVzX29wLT5vcHNbYXJnbm9dLCByZXNfb3AtPm9w c1thcmdubyArIDFdKSkNCj4gKyAgICB7DQo+ICsgICAgICBzdGQ6OnN3YXAg KHJlc19vcC0+b3BzW2FyZ25vXSwgcmVzX29wLT5vcHNbYXJnbm8gKyAxXSk7 DQo+ICsgICAgICBjYW5vbmljYWxpemVkID0gdHJ1ZTsNCj4gKyAgICB9DQo+ ICsNCj4gKyAgZ2ltcGxlX21hdGNoX29wIHJlc19vcDIgKCpyZXNfb3ApOw0K PiArICBpZiAoZ2ltcGxlX3NpbXBsaWZ5ICgmcmVzX29wMiwgc2VxLCB2YWx1 ZWl6ZSwNCj4gKyAgICAgICAgcmVzX29wLT5jb2RlLCByZXNfb3AtPnR5cGUs DQo+ICsgICAgICAgIHJlc19vcC0+b3BzWzBdLCByZXNfb3AtPm9wc1sxXSwg cmVzX29wLT5vcHNbMl0sDQo+ICsgICAgICAgIHJlc19vcC0+b3BzWzNdLCBy ZXNfb3AtPm9wc1s0XSwgcmVzX29wLT5vcHNbNV0pKQ0KPiArICAgIHsNCj4g KyAgICAgICpyZXNfb3AgPSByZXNfb3AyOw0KPiArICAgICAgcmV0dXJuIHRy dWU7DQo+ICsgICAgfQ0KPiArDQo+ICsgIGlmIChtYXliZV9yZXNpbXBsaWZ5 X2NvbmRpdGlvbmFsX29wIChzZXEsIHJlc19vcCwgdmFsdWVpemUpKQ0KPiAr ICAgIHJldHVybiB0cnVlOw0KPiArDQo+ICsgIHJldHVybiBjYW5vbmljYWxp emVkOw0KPiArfQ0KPiArDQo+ICsvKiBIZWxwZXIgdGhhdCBtYXRjaGVzIGFu ZCBzaW1wbGlmaWVzIHRoZSB0b3BsZXZlbCByZXN1bHQgZnJvbQ0KPiArICAg YSBnaW1wbGVfc2ltcGxpZnkgcnVuICh3aGVyZSB3ZSBkb24ndCB3YW50IHRv IGJ1aWxkDQo+ICsgICBhIHN0bXQgaW4gY2FzZSBpdCdzIHVzZWQgaW4gaW4t cGxhY2UgZm9sZGluZykuICBSZXBsYWNlcw0KPiArICAgUkVTX09QIHdpdGgg YSBzaW1wbGlmaWVkIGFuZC9vciBjYW5vbmljYWxpemVkIHJlc3VsdCBhbmQN Cj4gKyAgIHJldHVybnMgd2hldGhlciBhbnkgY2hhbmdlIHdhcyBtYWRlLiAg Ki8NCj4gKw0KPiArc3RhdGljIGJvb2wNCj4gK2dpbXBsZV9yZXNpbXBsaWZ5 NyAoZ2ltcGxlX3NlcSAqc2VxLCBnaW1wbGVfbWF0Y2hfb3AgKnJlc19vcCwN Cj4gKyAgICAgdHJlZSAoKnZhbHVlaXplKSh0cmVlKSkNCj4gK3sNCj4gKyAg LyogTm8gY29uc3RhbnQgZm9sZGluZyBpcyBkZWZpbmVkIGZvciBmaXZlLW9w ZXJhbmQgZnVuY3Rpb25zLiAgKi8NCj4gKw0KPiArICAvKiBDYW5vbmljYWxp emUgb3BlcmFuZCBvcmRlci4gICovDQo+ICsgIGJvb2wgY2Fub25pY2FsaXpl ZCA9IGZhbHNlOw0KPiArICBpbnQgYXJnbm8gPSBmaXJzdF9jb21tdXRhdGl2 ZV9hcmd1bWVudCAocmVzX29wLT5jb2RlLCByZXNfb3AtPnR5cGUpOw0KPiAr ICBpZiAoYXJnbm8gPj0gMA0KPiArICAgICAgJiYgdHJlZV9zd2FwX29wZXJh bmRzX3AgKHJlc19vcC0+b3BzW2FyZ25vXSwgcmVzX29wLT5vcHNbYXJnbm8g KyAxXSkpDQo+ICsgICAgew0KPiArICAgICAgc3RkOjpzd2FwIChyZXNfb3At Pm9wc1thcmdub10sIHJlc19vcC0+b3BzW2FyZ25vICsgMV0pOw0KPiArICAg ICAgY2Fub25pY2FsaXplZCA9IHRydWU7DQo+ICsgICAgfQ0KPiArDQo+ICsg IGdpbXBsZV9tYXRjaF9vcCByZXNfb3AyICgqcmVzX29wKTsNCj4gKyAgaWYg KGdpbXBsZV9zaW1wbGlmeSAoJnJlc19vcDIsIHNlcSwgdmFsdWVpemUsDQo+ ICsgICAgICAgIHJlc19vcC0+Y29kZSwgcmVzX29wLT50eXBlLA0KPiArICAg ICAgICByZXNfb3AtPm9wc1swXSwgcmVzX29wLT5vcHNbMV0sIHJlc19vcC0+ b3BzWzJdLA0KPiArICAgICAgICByZXNfb3AtPm9wc1szXSwgcmVzX29wLT5v cHNbNF0sIHJlc19vcC0+b3BzWzVdLA0KPiArICAgICAgICByZXNfb3AtPm9w c1s2XSkpDQo+ICsgICAgew0KPiArICAgICAgKnJlc19vcCA9IHJlc19vcDI7 DQo+ICsgICAgICByZXR1cm4gdHJ1ZTsNCj4gKyAgICB9DQo+ICsNCj4gKyAg aWYgKG1heWJlX3Jlc2ltcGxpZnlfY29uZGl0aW9uYWxfb3AgKHNlcSwgcmVz X29wLCB2YWx1ZWl6ZSkpDQo+ICsgICAgcmV0dXJuIHRydWU7DQo+ICsNCj4g KyAgcmV0dXJuIGNhbm9uaWNhbGl6ZWQ7DQo+ICt9DQo+ICsNCj4gIC8qIFJl dHVybiBhIGNhbm9uaWNhbCBmb3JtIGZvciBDT0RFIHdoZW4gb3BlcmF0aW5n IG9uIFRZUEUuICBUaGUgaWRlYQ0KPiAgICAgaXMgdG8gcmVtb3ZlIHJlZHVu ZGFudCB3YXlzIG9mIHJlcHJlc2VudGluZyB0aGUgc2FtZSBvcGVyYXRpb24g c28NCj4gICAgIHRoYXQgY29kZV9oZWxwZXJzIGNhbiBiZSBoYXNoZWQgYW5k IGNvbXBhcmVkIGZvciBlcXVhbGl0eS4NCj4gZGlmZiAtLWdpdCBhL2djYy9n aW1wbGUtbWF0Y2guaCBiL2djYy9naW1wbGUtbWF0Y2guaA0KPiBpbmRleCBi MjA1ODVkY2E0Yi4uYzE2Y2ZlZGU4MjYgMTAwNjQ0DQo+IC0tLSBhL2djYy9n aW1wbGUtbWF0Y2guaA0KPiArKysgYi9nY2MvZ2ltcGxlLW1hdGNoLmgNCj4g QEAgLTM0LDYgKzM0LDcgQEAgcHVibGljOg0KPiAgICAvKiBCdWlsZCBhbiB1 bmNvbmRpdGlvbmFsIG9wLiAgKi8NCj4gICAgZ2ltcGxlX21hdGNoX2NvbmQg KHVuY29uZCkgOiBjb25kIChOVUxMX1RSRUUpLCBlbHNlX3ZhbHVlIChOVUxM X1RSRUUpIHt9DQo+ICAgIGdpbXBsZV9tYXRjaF9jb25kICh0cmVlLCB0cmVl KTsNCj4gKyAgZ2ltcGxlX21hdGNoX2NvbmQgKHRyZWUsIHRyZWUsIHRyZWUs IHRyZWUpOw0KPiAgDQo+ICAgIGdpbXBsZV9tYXRjaF9jb25kIGFueV9lbHNl ICgpIGNvbnN0Ow0KPiAgDQo+IEBAIC00NCw2ICs0NSwxNiBAQCBwdWJsaWM6 DQo+ICAgIC8qIFRoZSB2YWx1ZSB0byB1c2Ugd2hlbiB0aGUgY29uZGl0aW9u IGlzIGZhbHNlLiAgVGhpcyBpcyBOVUxMX1RSRUUgaWYNCj4gICAgICAgdGhl IG9wZXJhdGlvbiBpcyB1bmNvbmRpdGlvbmFsIG9yIGlmIHRoZSB2YWx1ZSBk b2Vzbid0IG1hdHRlci4gICovDQo+ICAgIHRyZWUgZWxzZV92YWx1ZTsNCj4g Kw0KPiArICAvKiBUaGUgbGVuZ3RoIHZhbHVlIGZvciBjb25kaXRpb25hbCBs ZW4gb3BlcmF0aW9uIHRoYXQgb3BlcmF0aW9uIG9jY3Vycw0KPiArICAgICB3 aGVuIGVsZW1lbnQgaW5kZXggPCBsZW4gKyBiaWFzLiAgVGhpcyBpcyBOVUxM X1RSRUUgaWYgdGhlIG9wZXJhdGlvbg0KPiArICAgICBpcyBub24tTEVOIG9w ZXJhdGlvbi4gICovDQo+ICsgIHRyZWUgbGVuOw0KPiArDQo+ICsgIC8qIFRo ZSBiaWFzIHZhbHVlIGZvciBjb25kaXRpb25hbCBsZW4gb3BlcmF0aW9uIHRo YXQgb3BlcmF0aW9uIG9jY3Vycw0KPiArICAgICB3aGVuIGVsZW1lbnQgaW5k ZXggPCBsZW4gKyBiaWFzLiAgVGhpcyBpcyBOVUxMX1RSRUUgaWYgdGhlIG9w ZXJhdGlvbg0KPiArICAgICBpcyBub24tTEVOIG9wZXJhdGlvbi4gICovDQo+ ICsgIHRyZWUgYmlhczsNCiANCkkgZG9uJ3QgdGhpbmsgdGhlc2UgdHdvIG5l ZWQgc2VwYXJhdGUgY29tbWVudHMuICBIb3cgYWJvdXQ6DQogDQogIC8qIFRo ZSBsZW5ndGggYW5kIGJpYXMgcGFyYW1ldGVycyB0byBiZSBhcHBsaWVkIHRv IGEgdmVjdG9yIG9wZXJhdGlvbiwNCiAgICAgc28gdGhhdCB0aGUgY29uZGl0 aW9uIGlzIGZvcmNlZCB0byBmYWxzZSB3aGVuIHRoZSBlbGVtZW50IGluZGV4 IGlzDQogICAgID49IExFTiArIEJJQVMuICBUaGVzZSBhcmUgTlVMTF9UUkVF IGlmIHRoZSBvcGVyYXRpb24gaXNuJ3QgYXBwbGllZA0KICAgICB0byB2ZWN0 b3JzLCBvciBpZiBubyBzdWNoIGxlbmd0aCBsaW1pdCBpcyBpbiB1c2UuICAq Lw0KICB0cmVlIGxlbjsNCiAgdHJlZSBiaWFzOw0KIA0KPiAgfTsNCj4gIA0K PiAgaW5saW5lDQo+IEBAIC01Miw2ICs2MywxMiBAQCBnaW1wbGVfbWF0Y2hf Y29uZDo6Z2ltcGxlX21hdGNoX2NvbmQgKHRyZWUgY29uZF9pbiwgdHJlZSBl bHNlX3ZhbHVlX2luKQ0KPiAgew0KPiAgfQ0KPiAgDQo+ICtpbmxpbmUNCj4g K2dpbXBsZV9tYXRjaF9jb25kOjpnaW1wbGVfbWF0Y2hfY29uZCAodHJlZSBj b25kX2luLCB0cmVlIGVsc2VfdmFsdWVfaW4sDQo+ICsgICAgICAgdHJlZSBs ZW5faW4sIHRyZWUgYmlhc19pbikNCj4gKyAgOiBjb25kIChjb25kX2luKSwg ZWxzZV92YWx1ZSAoZWxzZV92YWx1ZV9pbiksIGxlbiAobGVuX2luKSwgYmlh cyAoYmlhc19pbikNCj4gK3t9DQo+ICsNCj4gIC8qIFJldHVybiBhIGdpbXBs ZV9tYXRjaF9jb25kIHdpdGggdGhlIHNhbWUgY29uZGl0aW9uIGJ1dCB3aXRo IGFuDQo+ICAgICBhcmJpdHJhcnkgRUxTRV9WQUxVRS4gICovDQo+ICANCj4g QEAgLTkzLDcgKzExMCw3IEBAIHB1YmxpYzoNCj4gICAgYm9vbCByZXNpbXBs aWZ5IChnaW1wbGVfc2VxICosIHRyZWUgKCopKHRyZWUpKTsNCj4gIA0KPiAg ICAvKiBUaGUgbWF4aW11bSB2YWx1ZSBvZiBOVU1fT1BTLiAgKi8NCj4gLSAg c3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBNQVhfTlVNX09QUyA9IDU7DQo+ ICsgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgTUFYX05VTV9PUFMgPSA3 Ow0KPiAgDQo+ICAgIC8qIFRoZSBjb25kaXRpb25zIHVuZGVyIHdoaWNoIHRo ZSBvcGVyYXRpb24gaXMgcGVyZm9ybWVkLCBhbmQgdGhlIHZhbHVlIHRvDQo+ ICAgICAgIHVzZSBhcyBhIGZhbGxiYWNrLiAgKi8NCj4gZGlmZiAtLWdpdCBh L2djYy9pbnRlcm5hbC1mbi5jYyBiL2djYy9pbnRlcm5hbC1mbi5jYw0KPiBp bmRleCBjYzFlZGU1ODc5OS4uYmU5YjkzZTlmNzEgMTAwNjQ0DQo+IC0tLSBh L2djYy9pbnRlcm5hbC1mbi5jYw0KPiArKysgYi9nY2MvaW50ZXJuYWwtZm4u Y2MNCj4gQEAgLTQ0NzcsMTEgKzQ0NzcsMTQgQEAgZ2V0X3VuY29uZGl0aW9u YWxfaW50ZXJuYWxfZm4gKGludGVybmFsX2ZuIGlmbikNCj4gIHsNCj4gICAg c3dpdGNoIChpZm4pDQo+ICAgICAgew0KPiAtI2RlZmluZSBDQVNFKE5BTUUp IGNhc2UgSUZOX0NPTkRfIyNOQU1FOiByZXR1cm4gSUZOXyMjTkFNRTsNCj4g LSAgICAgIEZPUl9FQUNIX0NPTkRfRk5fUEFJUihDQVNFKQ0KPiArI2RlZmlu ZSBDQVNFKE5BTUUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgY2FzZSBJRk5f Q09ORF8jI05BTUU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgIGNhc2UgSUZOX0NPTkRf TEVOXyMjTkFNRTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiArICAgIHJldHVybiBJRk5fIyNOQU1F Ow0KPiArICAgICAgRk9SX0VBQ0hfQ09ORF9GTl9QQUlSIChDQVNFKQ0KPiAg I3VuZGVmIENBU0UNCj4gLSAgICBkZWZhdWx0Og0KPiAtICAgICAgcmV0dXJu IElGTl9MQVNUOw0KPiArICAgICAgZGVmYXVsdDoNCj4gKyByZXR1cm4gSUZO X0xBU1Q7DQo+ICAgICAgfQ0KPiAgfQ0KIA0KVGhlIHJlaW5kZW50YXRpb24g aXNuJ3QgY29ycmVjdDogbGFiZWxzIGFyZSBzdXBwb3NlZCB0byBsaW5lIHVw IHdpdGggdGhlICJ7Ii4NCiANCkxHVE0gb3RoZXJ3aXNlLg0KIA0KVGhhbmtz LA0KUmljaGFyZA0KIA0K ------=_001_NextPart774712454583_=------