From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgeu1.qq.com (smtpbgeu1.qq.com [52.59.177.22]) by sourceware.org (Postfix) with ESMTPS id 1BEB93857817 for ; Thu, 22 Sep 2022 07:40:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1BEB93857817 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: bizesmtp66t1663832454tule4kjc Received: from LAPTOP-EPITNQBU ( [58.60.1.3]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 22 Sep 2022 15:40:53 +0800 (CST) X-QQ-SSF: 01400000000000D0J000000A0000000 X-QQ-FEAT: NzZVSmv0f+no3FNfiHMTUdTgu9DXM7DTjB6DjrZJYxOK+yIJbz3ByKK+WuRLj E2Mqf3l6HjJHZaZyetNzdryVaQ4DP7EmrB/qaSwcxuhtTcFmFTh1oxElua/7eU5xl7rUTya OiGve7Yg+Qtf27mZocrmqiuumm0wQTlRdMRajT5XZjxxmVFKBt25JzdAvnrjy5X/QtzcsRK 7Mzej+/7vzGLaZQ30aEZCGaU8NAmpmkh5Km+PitzQ4XHtCQqCmklVNXSEPWFryT657QN0Az 6cRUvoTounF5v7kuwvOIhyAdP+hp02fL2o4zfnQ1TwIokj3zutDLJEcnZ8jdbDw7upXtq/E zFzWVXxlZ38nwnhBktDnmrkVTPrgCmCwxpPv0L9/SsGuwMpOL9qCWWuOc6C+b4CLOWhqs+Z EP13FS/kMyDQxUY5Y8bs4A== X-QQ-GoodBg: 2 Date: Thu, 22 Sep 2022 15:40:53 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches Subject: Re: Re: [PATCH] DSE: Enhance dse with def-ref analysis References: <20220922070625.7197-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 2A04CA4D-1646-4C20-9417-1C55645E5DA1 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart243246468576_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_PASS,TXREP,T_SPF_HELO_TEMPERROR 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_NextPart243246468576_=---- Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 T0suIFlvdSBtZWFuIHdlIHNob3VsZCBjaGVjayB3aHkgaWYgZmFpbHMgaW4g cmVmX21heWJlX3VzZWRfYnlfc3RtdF9wDQppbnN0ZWFkIG9mIGRvaW5nIHRo ZSBkYXRhLXJlZiBhbmFseXNpcyBvdXRzaWRlIGRzZV9jbGFzc2lmeV9zdG9y ZSA/DQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IFJpY2hh cmQgQmllbmVyDQpEYXRlOiAyMDIyLTA5LTIyIDE1OjMyDQpUbzogSnUtWmhl IFpob25nDQpDQzogZ2NjLXBhdGNoZXM7IHJpY2hhcmQuc2FuZGlmb3JkDQpT dWJqZWN0OiBSZTogW1BBVENIXSBEU0U6IEVuaGFuY2UgZHNlIHdpdGggZGVm LXJlZiBhbmFseXNpcw0KT24gVGh1LCAyMiBTZXAgMjAyMiwganV6aGUuemhv bmdAcml2YWkuYWkgd3JvdGU6DQogDQo+IEZyb206IEp1LVpoZSBaaG9uZyA8 anV6aGUuemhvbmdAcml2YWkuYWk+DQo+IA0KPiBUaGlzIHBhdGNoIGZpeCBp c3N1ZTogUFIgOTk0MDcNCj4gaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxs YS9zaG93X2J1Zy5jZ2k/aWQ9OTk0MDcNCj4gDQo+IFRoZSBlbmhhbmNlbWVu dCBpbXBsZW1lbnRhdGlvbiBpcyBzaW1wbGU6DQo+IDEuU2VhcmNoIGdpbXBs ZSBzdGF0ZW1lbnQgaW4gcHJvZ3JhbSByZXZlcnNlIG9yZGVyLg0KPiAyLlF1 ZXVlIHRoZSBzdG9yZSBzdGF0ZW1lbnQgd2hpY2ggbWF5IGJlIHBvc3NpYmxl IGtpbGwgdGhlIGRlZg0KPiAgIG9mIHByZXZpb3VzIHN0b3JlIHN0YXRlbWVu dC4NCj4gMy5QZXJmb3JtIGRzZV9kZWZfcmVmX2FuYWx5c2lzIHRvIHJlbW92 ZSBzdG9yZXMgd2lsbCBub3Qga2lsbA0KPiAgIGFueSBkZWYuDQo+ICAgRm9y IGV4YW1wbGU6DQo+ICAgICBhW2lfMThdID0gXzU7DQo+ICAgICAuLi4NCj4g ICAgIGZvbyAoJmEpOw0KPiAgICAgYVtpXzE4XSA9IF83Ow0KPiAgICAgDQo+ ICAgYVtpXzE4XSA9IF83IGlzIHF1ZXVlZCBhdCB0aGUgYmVnaW5pbmcgYW5k IHdpbGwgYmUgcmVtb3ZlZA0KPiAgIGluIGRzZV9kZWZfcmVmX2FuYWx5c2lz Lg0KPiA0LlJlbW92ZSB0aGUgc3RvcmUgaWYgdGhlIGRlZiBpcyBjb25maXJt ZWQgdG8gYmUga2lsbGVkLg0KIA0KQnV0IHdlIGFscmVhZHkgZG8gdGhlIHZl cnkgc2FtZSB0aGluZyBpbiBkc2VfY2xhc3NpZnlfc3RvcmUsIEkgZmFpbA0K dG8gc2VlIHdoeSB3ZSBuZWVkIHRvIGhhdmUgYW4gYWx0ZXJuYXRlIGltcGxl bWVudGF0aW9uPyAgSXQgYWxzbw0Kc2VlbXMgdG8gYmUgcXVhZHJhdGljIGlu IHRoZSBzaXplIG9mIGEgYmFzaWMtYmxvY2s/DQogDQpUaGUgaXNzdWUgd2l0 aCBkc2VfY2xhc3NpZnlfc3RvcmUgaXMgdGhhdCBpdCByZWxpZXMgb24NCnJl Zl9tYXliZV91c2VkX2J5X3N0bXRfcCBidXQgdGhhdCBkb2Vzbid0IGhhbmRs ZQ0KIA0KYVtpXSA9IC4uOw0KLi4gPSBhW2krMV07DQogDQpidXQgd2hlbiBz ZWVpbmcgYVtfMV0gdnMuIGFbXzJdICh0d28gdmFyaWFibGUgb2Zmc2V0cyks IGl0IGdpdmVzDQp1cCwgYXNzZXJ0aW5nIG1heS1hbGlhc2luZy4gIFdlIGRv IGhhdmUgaW5mcmFzdHJ1Y3R1cmUgdG8gY2F0Y2gNCnN1Y2ggY2FzZXMgd2l0 aCBkYXRhIHJlZmVyZW5jZSBhbmFseXNpcy4gIElmIHdlIHdhbnQgdG8gY2F0 Y2gNCnRoZXNlIGNhc2VzIHdlIHNob3VsZCB1c2UgdGhhdCBpbnN0ZWFkLiAg R2l2ZW4gd2UgaGF2ZSBhDQpEU0UvRENFIHBhc3MgcGFpciByaWdodCBiZWZv cmUgbG9vcCBvcHRpbWl6YXRpb25zIHdlIGNvdWxkIGV2ZW4NCm1vdmUgdGhv c2UgaW5zaWRlIG9mIHRoZSBsb29wIHBpcGVsaW5lIGFuZCBwZXJmb3JtIHRo aXMgbW9yZQ0KZXhwZW5zaXZlIGNoZWNrcyBjb25kaXRpb25hbCBvbiBsb29w L3NjZXYgYXZhaWxhYmlsaXR5Lg0KIA0KUmljaGFyZC4NCiANCj4gSSBoYXZl IGZ1bGx5IHRlc3RlZCBpdCBpbiBSSVNDLVYgZm91bmRhdGlvbiBkb3duc3Ry ZWFtIHBvcnQgKFJWVik6DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9yaXNjdi1j b2xsYWIvcmlzY3YtZ2NjL3RyZWUvcmlzY3YtZ2NjLXJ2di1uZXh0DQo+IA0K PiBBcmUgeW91IHdpbGxpbmcgdG8gcmV2aWV3IHRoaXMgcGF0Y2ggYW5kIHRl c3QgaXQgaW4gQVJNL3g4Nj8NCj4gDQo+IGdjYy9DaGFuZ2VMb2c6DQo+IA0K PiAgICAgICAgICogdHJlZS1zc2EtZHNlLmNjIChkc2Vfc2VhcmNoX2RlZl9z dG9yZXMpOiBOZXcgZnVuY3Rpb24uDQo+ICAgICAgICAgKGRzZV9jYW5fZGVm X3JlZl9wKTogRGl0dG8uDQo+ICAgICAgICAgKGRzZV9kZWZfcmVmX2FuYWx5 c2lzKTogQWRkIGEgbmV3IGFyZ3VtZW50Lg0KPiAgICAgICAgIChkc2Vfb3B0 aW1pemVfc3RtdCk6IFBhc3MgdGhyb3VnaCBzdG9yZXNfcXVldWUuDQo+ICAg ICAgICAgKHBhc3NfZHNlOjpleGVjdXRlKTogQWRkIGRzZV9kZWZfcmVmX2Fu YWx5c2lzIGFuZCBzdG9yZXNfcXVldWUuDQo+IA0KPiBnY2MvdGVzdHN1aXRl L0NoYW5nZUxvZzoNCj4gDQo+ICAgICAgICAgKiBnY2MuZGcvdHJlZS1zc2Ev cHI5OTQwNy5jOiBOZXcgdGVzdC4NCj4gDQo+IC0tLQ0KPiAgZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHI5OTQwNy5jIHwgIDMwICsrKysNCj4g IGdjYy90cmVlLXNzYS1kc2UuY2MgICAgICAgICAgICAgICAgICAgICB8IDIw OSArKysrKysrKysrKysrKysrKysrKysrKy0NCj4gIDIgZmlsZXMgY2hhbmdl ZCwgMjM2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2Ev cHI5OTQwNy5jDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdHJlZS1zc2EvcHI5OTQwNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvdHJlZS1zc2EvcHI5OTQwNy5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAwMDAwLi41N2NlYTc3ZGE3Yw0KPiAtLS0gL2Rl di9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3Nh L3ByOTk0MDcuYw0KPiBAQCAtMCwwICsxLDMwIEBADQo+ICsvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItTzIgLWZkdW1w LXRyZWUtZHNlMS1kZXRhaWxzIiB9ICovDQo+ICt0eXBlZGVmIGZsb2F0IHJl YWxfdDsNCj4gKw0KPiArI2RlZmluZSBpdGVyYXRpb25zIDEwMDAwMA0KPiAr I2RlZmluZSBMRU5fMUQgMzIwMDANCj4gKyNkZWZpbmUgTEVOXzJEIDI1Ng0K PiArcmVhbF90IGZsYXRfMmRfYXJyYXlbTEVOXzJEKkxFTl8yRF07DQo+ICsN Cj4gK3JlYWxfdCB4W0xFTl8xRF07DQo+ICsNCj4gK3JlYWxfdCBhW0xFTl8x RF0sYltMRU5fMURdLGNbTEVOXzFEXSxkW0xFTl8xRF0sZVtMRU5fMURdLA0K PiArYmJbTEVOXzJEXVtMRU5fMkRdLGNjW0xFTl8yRF1bTEVOXzJEXSx0dFtM RU5fMkRdW0xFTl8yRF07DQo+ICsNCj4gK2ludCBpbmR4W0xFTl8xRF07DQo+ ICsNCj4gK3JlYWxfdCogX19yZXN0cmljdF9fIHh4Ow0KPiArcmVhbF90KiB5 eTsNCj4gK3JlYWxfdCBzMjQzKHZvaWQpDQo+ICt7DQo+ICsgIGZvciAoaW50 IG5sID0gMDsgbmwgPCBpdGVyYXRpb25zOyBubCsrKSB7DQo+ICsgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBMRU5fMUQtMTsgaSsrKSB7DQo+ICsgICAgICAg IGFbaV0gPSBiW2ldICsgY1tpICBdICogZFtpXTsNCj4gKyAgICAgICAgYltp XSA9IGFbaV0gKyBkW2kgIF0gKiBlW2ldOw0KPiArICAgICAgICBhW2ldID0g YltpXSArIGFbaSsxXSAqIGRbaV07DQo+ICsgICAgfQ0KPiArICB9DQo+ICt9 DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiRGVs ZXRlZCBkZWFkIHN0b3JlIiAiZHNlMSIgfSB9ICovDQo+IFwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtc3Nh LWRzZS5jYyBiL2djYy90cmVlLXNzYS1kc2UuY2MNCj4gaW5kZXggMzRjZmQx YTg4MDIuLmE4Y2EzNjcyZGEyIDEwMDY0NA0KPiAtLS0gYS9nY2MvdHJlZS1z c2EtZHNlLmNjDQo+ICsrKyBiL2djYy90cmVlLXNzYS1kc2UuY2MNCj4gQEAg LTEzMzIsNiArMTMzMiwxODYgQEAgZHNlX29wdGltaXplX2NhbGwgKGdpbXBs ZV9zdG10X2l0ZXJhdG9yICpnc2ksIHNiaXRtYXAgbGl2ZV9ieXRlcykNCj4g ICAgcmV0dXJuIHRydWU7DQo+ICB9DQo+ICANCj4gKy8qIFNlYXJjaCB0aGUg c3RvcmVzX3F1ZXVlIHRvIHNlZSB3aGV0aGVyIHRoZXJlIGlzIGEgc3RvcmUg aGFzIGEgc2FtZSB2ZGVmDQo+ICsgICBhcyB0aGUgc3RtdC4gICovDQo+ICsN Cj4gK3N0YXRpYyBib29sDQo+ICtkc2Vfc2VhcmNoX2RlZl9zdG9yZXMgKGZ1 bmN0aW9uICpmdW4sIGF1dG9fdmVjPGdpbXBsZSAqPiAmc3RvcmVzX3F1ZXVl LA0KPiArICAgICAgICBnaW1wbGUgKnN0bXQpDQo+ICt7DQo+ICsgIC8qIENv bnNpZGVyIHRoZSBmb2xsb3dpbmcgc2VxdWNlbmNlOg0KPiArICAgIGFbaV8x OF0gPSBfNTsNCj4gKyAgICBfOCA9IGVbaV8xOF07DQo+ICsgICAgXzkgPSBf MyAqIF84Ow0KPiArICAgIF8xMCA9IF81ICsgXzk7DQo+ICsgICAgYltpXzE4 XSA9IF8xMDsNCj4gKyAgICBfMTIgPSBpXzE4ICsgMTsNCj4gKyAgICBfMTMg PSBhW18xMl07DQo+ICsgICAgXzE1ID0gXzMgKiBfMTM7DQo+ICsgICAgXzE2 ID0gXzEwICsgXzE1Ow0KPiArICAgIGFbaV8xOF0gPSBfMTYNCj4gKw0KPiAr ICAgIFdlIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSBhW2lfMThdID0gXzUu ICAqLw0KPiArICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHN0b3Jl c19xdWV1ZS5sZW5ndGggKCk7ICsraSkNCj4gKyAgICB7DQo+ICsgICAgICBp ZiAoIXN0b3Jlc19xdWV1ZVtpXSkNCj4gKyBjb250aW51ZTsNCj4gKyAgICAg IHRyZWUgbGhzMSA9IGdpbXBsZV9hc3NpZ25fbGhzIChzdG9yZXNfcXVldWVb aV0pOw0KPiArICAgICAgdHJlZSBsaHMyID0gZ2ltcGxlX2Fzc2lnbl9saHMg KHN0bXQpOw0KPiArDQo+ICsgICAgICBpZiAoVFJFRV9DT0RFIChsaHMxKSAh PSBUUkVFX0NPREUgKGxoczIpKQ0KPiArIGNvbnRpbnVlOw0KPiArICAgICAg aWYgKG9wZXJhbmRfZXF1YWxfcCAoZ2ltcGxlX2Fzc2lnbl9saHMgKHN0b3Jl c19xdWV1ZVtpXSksDQo+ICsgICAgZ2ltcGxlX2Fzc2lnbl9saHMgKHN0bXQp LCBPRVBfQUREUkVTU19PRikpDQo+ICsgew0KPiArICAgLyogTm8gbWF0dGVy IGl0IGNhbiBiZSBlbGltaW5hdGVkIG9yIG5vdCwgcmVtb3ZlIGl0DQo+ICsg ICAgICBpbiB0aGUgd29ya2xpc3QuICAqLw0KPiArICAgc3RvcmVzX3F1ZXVl W2ldID0gTlVMTDsNCj4gKyAgIGlmIChnaW1wbGVfYXNzaWduX3NpbmdsZV9w IChzdG10KSAmJiAhZ2ltcGxlX2hhc19zaWRlX2VmZmVjdHMgKHN0bXQpDQo+ ICsgICAgICAgJiYgIWlzX2N0cmxfYWx0ZXJpbmdfc3RtdCAoc3RtdCkNCj4g KyAgICAgICAmJiAoIXN0bXRfY291bGRfdGhyb3dfcCAoZnVuLCBzdG10KQ0K PiArICAgfHwgZnVuLT5jYW5fZGVsZXRlX2RlYWRfZXhjZXB0aW9ucykpDQo+ ICsgICAgIHJldHVybiB0cnVlOw0KPiArIH0NCj4gKyAgICB9DQo+ICsNCj4g KyAgcmV0dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+ICsvKiBSZXR1cm4gdHJ1 ZSBpZiB0aGUgVFJFRV9DT0RFIG9mIHRoZSBtZW0gb3AgaXMgYWxsb3dlZCB0 byBkbyBkc2UNCj4gKyAgIGFjY29yZGluZyB0byBkZWYtcmVmIGFuYWx5c2lz LiAgKi8NCj4gKw0KPiArc3RhdGljIGJvb2wNCj4gK2RzZV9jYW5fZGVmX3Jl Zl9wIChnaW1wbGUgKnN0bXQpDQo+ICt7DQo+ICsgIC8qVE9ETzogRm9yIG5v dywgd2Ugb25seSBzdXBwb3J0IGRzZSBhY2NvcmRpbmcgdG8NCj4gKyAgICBk ZWYtcmVmIGFuYWx5c2lzIGZvciBBUlJBWV9SRUYuICAqLw0KPiArICByZXR1 cm4gVFJFRV9DT0RFIChnaW1wbGVfYXNzaWduX2xocyAoc3RtdCkpID09IEFS UkFZX1JFRjsNCj4gK30NCj4gKw0KPiArLyogUGVyZm9ybSBkZWYtcmVmIGFu YWx5c2lzIG9uIGFsbCB0aGUgc3RvcmVzIG9mIHN0b3Jlc19xdWV1ZSB3b3Jr bGlzdC4NCj4gKyAgIFNpbmNlIGRzZSBpcyBydW5uaW5nIG9uIHJldmVyc2Ug cHJvZ3JhbSBvcmRlciB3YWxrLCB0aGUgc3RvcmVzIGluDQo+ICsgICBzdG9y ZXNfcXVldWUgYXJlIGFsd2F5cyBhZnRlciBzdG10LCBjbGVhciB0aGUgc3Rv cmUgaW4gdGhlIHN0b3Jlc19xdWV1ZQ0KPiArICAgaWYgdGhlIGFkZHJlc3Mg b2Ygc3RvcmUgbGhzIGlzIGNoYW5nZWQgb3IgdGhlIGxocyBvZiBzdG9yZSBp cyB1c2VkDQo+ICsgICBpbiBzdG10LiAgKi8NCj4gKw0KPiArc3RhdGljIHZv aWQNCj4gK2RzZV9kZWZfcmVmX2FuYWx5c2lzIChnaW1wbGUgKnN0bXQsIGF1 dG9fdmVjPGdpbXBsZSAqPiAmc3RvcmVzX3F1ZXVlKQ0KPiArew0KPiArICBm b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHN0b3Jlc19xdWV1ZS5sZW5n dGggKCk7ICsraSkNCj4gKyAgICB7DQo+ICsgICAgICBpZiAoIXN0b3Jlc19x dWV1ZVtpXSkNCj4gKyBjb250aW51ZTsNCj4gKw0KPiArICAgICAgLyogSWYg d2UgbWVldCBub24tY2FsbCBvciBub24tYXNzaWduIHN0YXRlbWVudCwgd2Ug ZGlzYWJsZSB0aGUgcG9zc2libGUNCj4gKyAgICAgICAqIGRzZS4gICovDQo+ ICsgICAgICBpZiAoZ2ltcGxlX2NvZGUgKHN0bXQpICE9IEdJTVBMRV9DQUxM DQo+ICsgICAmJiBnaW1wbGVfY29kZSAoc3RtdCkgIT0gR0lNUExFX0FTU0lH TikNCj4gKyB7DQo+ICsgICBzdG9yZXNfcXVldWVbaV0gPSBOVUxMOw0KPiAr ICAgY29udGludWU7DQo+ICsgfQ0KPiArDQo+ICsgICAgICB0cmVlIGxocyA9 IGdpbXBsZV9nZXRfbGhzIChzdG9yZXNfcXVldWVbaV0pOw0KPiArICAgICAg aWYgKCFsaHMpDQo+ICsgY29udGludWU7DQo+ICsgICAgICBzd2l0Y2ggKFRS RUVfQ09ERSAobGhzKSkNCj4gKyB7DQo+ICsgICAvKiBIYW5kbGUgdGhlIGFy cmF5IGxpa2UgYVtpXzE4XToNCj4gKyAgICAgIDEuaWYgaV8xOCBpcyBjaGFu Z2VkIGluIHN0bXQgd2hpY2ggbWVhbnMgbGhzIG9mIHN0bXQgPT0gaV8xOCwN Cj4gKyAgICAgICAgd2UgcmVtb3ZlIHRoZSBzdG9yZSBmcm9tIHRoZSBzdG9y ZXNfcXVldWUuDQo+ICsNCj4gKyAgICAgIDIuYSBvciBhW2lfMThdIGlzIHVz ZWQgaW4gc3RtdCwgd2UgcmVtb3ZlIHRoZSBzdG9yZSBmcm9tIHRoZQ0KPiAr ICAgICAgICBzdG9yZXNfcXVldWUuICAqLw0KPiArICAgY2FzZSBBUlJBWV9S RUY6IHsNCj4gKyAgICAgaWYgKGdpbXBsZV9nZXRfbGhzIChzdG10KQ0KPiAr ICYmIG9wZXJhbmRfZXF1YWxfcCAoZ2ltcGxlX2dldF9saHMgKHN0bXQpLA0K PiArICAgICBUUkVFX09QRVJBTkQgKGxocywgMSksIDApKQ0KPiArICAgICAg IHsNCj4gKyBzdG9yZXNfcXVldWVbaV0gPSBOVUxMOw0KPiArIGNvbnRpbnVl Ow0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICBmb3IgKHVuc2lnbmVkIGlu dCBqID0gMDsgaiA8IGdpbXBsZV9udW1fb3BzIChzdG10KTsgKytqKQ0KPiAr ICAgICAgIHsNCj4gKyB0cmVlIG9wID0gZ2ltcGxlX29wIChzdG10LCBqKTsN Cj4gKyBpZiAoIW9wKQ0KPiArICAgY29udGludWU7DQo+ICsNCj4gKyAvKiBX ZSBvbmx5IGNoZWNrIHRoZSB1c2Ugb3AuICAqLw0KPiArIGlmIChvcCA9PSBn aW1wbGVfZ2V0X2xocyAoc3RtdCkpDQo+ICsgICBjb250aW51ZTsNCj4gKw0K PiArIGlmIChUUkVFX09QRVJBTkRfTEVOR1RIIChvcCkgPT0gMCkNCj4gKyAg IHsNCj4gKyAgICAgaWYgKG9wZXJhbmRfZXF1YWxfcCAob3AsIGxocywgMCkN Cj4gKyB8fCBvcGVyYW5kX2VxdWFsX3AgKG9wLCBUUkVFX09QRVJBTkQgKGxo cywgMCksIDApKQ0KPiArICAgICAgIHN0b3Jlc19xdWV1ZVtpXSA9IE5VTEw7 DQo+ICsgICB9DQo+ICsgZWxzZQ0KPiArICAgew0KPiArICAgICBmb3IgKGlu dCBrID0gMDsgayA8IFRSRUVfT1BFUkFORF9MRU5HVEggKG9wKTsgKytrKQ0K PiArICAgICAgIHsNCj4gKyBpZiAoIVRSRUVfT1BFUkFORCAob3AsIGspKQ0K PiArICAgY29udGludWU7DQo+ICsNCj4gKyBpZiAoVFJFRV9DT0RFIChvcCkg PT0gQVJSQVlfUkVGKQ0KPiArICAgew0KPiArICAgICAvKg0KPiArICAgICBE aXNhYmxlIG9wdGltaXphdGlvbiBsaWtlIHRoaXM6DQo+ICsgICAgICAgYVtp XzE4XSA9IF81Ow0KPiArICAgICAgIC4uLg0KPiArICAgICAgIGZvbyAoYVtp XzE4XSkuDQo+ICsNCj4gKyAgICAgRG9uJ3QgZGlzYWJsZSBvcHRpbWl6YXRp b24gbGlrZSB0aGlzOg0KPiArICAgICAgIGFbaV8xOF0gPSBfNTsNCj4gKyAg ICAgICAuLi4NCj4gKyAgICAgICBmb28gKGFbaV8xMl0pLg0KPiArICAgICAq Lw0KPiArICAgICBpZiAob3BlcmFuZF9lcXVhbF9wIChvcCwgbGhzLCBPRVBf QUREUkVTU19PRikpDQo+ICsgICAgICAgew0KPiArIHN0b3Jlc19xdWV1ZVtp XSA9IE5VTEw7DQo+ICsgYnJlYWs7DQo+ICsgICAgICAgfQ0KPiArICAgfQ0K PiArIGVsc2UNCj4gKyAgIHsNCj4gKyAgICAgLyogVG8gYmUgY29uc2VydmF0 aXZlLCBpZiBUUkVFX09QRVJBTkQgKG9wLCBrKQ0KPiArICAgICAgICBsZW5n dGggPiAxLiBEaXNhYmxlIHRoZSBwb3NzaWJsZSBkc2UNCj4gKyAgICAgICAg b3B0aW1pemF0aW9uLg0KPiArICAgICBEaXNhYmxlIG9wdGltaXphdGlvbiBs aWtlIHRoaXM6DQo+ICsgICAgICAgYVtpXzE4XSA9IF81Ow0KPiArICAgICAg IC4uLg0KPiArICAgICAgIGZvbyAoJmEpLg0KPiArDQo+ICsgICAgIE9yDQo+ ICsgICAgICAgYVtpXzE4XSA9IF81Ow0KPiArICAgICAgIC4uLg0KPiArICAg ICAgIGZvbyAodGVzdCAoJmEpKS4NCj4gKyAgICAgKi8NCj4gKyAgICAgaWYg KFRSRUVfT1BFUkFORF9MRU5HVEggKFRSRUVfT1BFUkFORCAob3AsIGspKSA+ IDANCj4gKyB8fCBvcGVyYW5kX2VxdWFsX3AgKFRSRUVfT1BFUkFORCAob3As IGspLCBsaHMsDQo+ICsgICAgIDApDQo+ICsgfHwgb3BlcmFuZF9lcXVhbF9w IChUUkVFX09QRVJBTkQgKG9wLCBrKSwNCj4gKyAgICAgVFJFRV9PUEVSQU5E IChsaHMsIDApLCAwKSkNCj4gKyAgICAgICB7DQo+ICsgc3RvcmVzX3F1ZXVl W2ldID0gTlVMTDsNCj4gKyBicmVhazsNCj4gKyAgICAgICB9DQo+ICsgICB9 DQo+ICsgICAgICAgfQ0KPiArICAgfQ0KPiArIGlmICghc3RvcmVzX3F1ZXVl W2ldKQ0KPiArICAgYnJlYWs7DQo+ICsgICAgICAgfQ0KPiArICAgfQ0KPiAr ICAgYnJlYWs7DQo+ICsgZGVmYXVsdDoNCj4gKyAgIGdjY191bnJlYWNoYWJs ZSAoKTsNCj4gKyB9DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICAvKiBBdHRl bXB0IHRvIGVsaW1pbmF0ZSBkZWFkIHN0b3JlcyBpbiB0aGUgc3RhdGVtZW50 IHJlZmVyZW5jZWQgYnkgQlNJLg0KPiAgDQo+ICAgICBBIGRlYWQgc3RvcmUg aXMgYSBzdG9yZSBpbnRvIGEgbWVtb3J5IGxvY2F0aW9uIHdoaWNoIHdpbGwg bGF0ZXIgYmUNCj4gQEAgLTEzNDQsNyArMTUyNCw4IEBAIGRzZV9vcHRpbWl6 ZV9jYWxsIChnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpLCBzYml0bWFwIGxp dmVfYnl0ZXMpDQo+ICAgICBwb3N0IGRvbWluYXRlcyB0aGUgZmlyc3Qgc3Rv cmUsIHRoZW4gdGhlIGZpcnN0IHN0b3JlIGlzIGRlYWQuICAqLw0KPiAgDQo+ ICBzdGF0aWMgdm9pZA0KPiAtZHNlX29wdGltaXplX3N0bXQgKGZ1bmN0aW9u ICpmdW4sIGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2ksIHNiaXRtYXAgbGl2 ZV9ieXRlcykNCj4gK2RzZV9vcHRpbWl6ZV9zdG10IChmdW5jdGlvbiAqZnVu LCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpLCBzYml0bWFwIGxpdmVfYnl0 ZXMsDQo+ICsgICAgYXV0b192ZWM8Z2ltcGxlICo+ICZzdG9yZXNfcXVldWUp DQo+ICB7DQo+ICAgIGdpbXBsZSAqc3RtdCA9IGdzaV9zdG10ICgqZ3NpKTsN Cj4gIA0KPiBAQCAtMTQ2OSw3ICsxNjUwLDI1IEBAIGRzZV9vcHRpbWl6ZV9z dG10IChmdW5jdGlvbiAqZnVuLCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3Np LCBzYml0bWFwIGxpdmVfYnl0ZXMpDQo+ICBieXRlX3RyYWNraW5nX2VuYWJs ZWQsDQo+ICBsaXZlX2J5dGVzLCAmYnlfY2xvYmJlcl9wKTsNCj4gICAgICAg IGlmIChzdG9yZV9zdGF0dXMgPT0gRFNFX1NUT1JFX0xJVkUpDQo+IC0gcmV0 dXJuOw0KPiArIHsNCj4gKyAgIGlmIChnaW1wbGVfYXNzaWduX3NpbmdsZV9w IChzdG10KSAmJiAhZ2ltcGxlX2hhc19zaWRlX2VmZmVjdHMgKHN0bXQpDQo+ ICsgICAgICAgJiYgIWlzX2N0cmxfYWx0ZXJpbmdfc3RtdCAoc3RtdCkNCj4g KyAgICAgICAmJiAoIXN0bXRfY291bGRfdGhyb3dfcCAoZnVuLCBzdG10KQ0K PiArICAgfHwgZnVuLT5jYW5fZGVsZXRlX2RlYWRfZXhjZXB0aW9ucykpDQo+ ICsgICAgIHsNCj4gKyAgICAgICBpZiAoZHNlX3NlYXJjaF9kZWZfc3RvcmVz IChmdW4sIHN0b3Jlc19xdWV1ZSwgc3RtdCkpDQo+ICsgOw0KPiArICAgICAg IGVsc2UgaWYgKGRzZV9jYW5fZGVmX3JlZl9wIChzdG10KSkNCj4gKyB7DQo+ ICsgICBzdG9yZXNfcXVldWUuc2FmZV9wdXNoIChzdG10KTsNCj4gKyAgIHJl dHVybjsNCj4gKyB9DQo+ICsgICAgICAgZWxzZQ0KPiArIHJldHVybjsNCj4g KyAgICAgfQ0KPiArICAgZWxzZQ0KPiArICAgICByZXR1cm47DQo+ICsgfQ0K PiAgDQo+ICAgICAgICBpZiAoc3RvcmVfc3RhdHVzID09IERTRV9TVE9SRV9N QVlCRV9QQVJUSUFMX0RFQUQpDQo+ICB7DQo+IEBAIC0xNTY2LDEzICsxNzY1 LDE3IEBAIHBhc3NfZHNlOjpleGVjdXRlIChmdW5jdGlvbiAqZnVuKQ0KPiAg ICAgIHsNCj4gICAgICAgIGJhc2ljX2Jsb2NrIGJiID0gQkFTSUNfQkxPQ0tf Rk9SX0ZOIChmdW4sIHJwb1tpLTFdKTsNCj4gICAgICAgIGdpbXBsZV9zdG10 X2l0ZXJhdG9yIGdzaTsNCj4gKyAgICAgIC8qIFF1ZXVlIHRoZSBzdG9yZXMg d2hpY2ggcG90ZW50aWFsbHkgdXBkYXRlcyBtZW0gb2YgYSBwcmV2aW91cw0K PiArIHJlZHVuZGFudCBzdG9yZS4gIFdlIG9ubHkgZG8gdGhlIG9wdGltaXph dGlvbiB3aXRoaW4gYSBiYXNpYyBibG9jay4gICovDQo+ICsgICAgICBhdXRv X3ZlYzxnaW1wbGUgKj4gc3RvcmVzX3F1ZXVlOw0KPiAgDQo+ICAgICAgICBm b3IgKGdzaSA9IGdzaV9sYXN0X2JiIChiYik7ICFnc2lfZW5kX3AgKGdzaSk7 KQ0KPiAgew0KPiAgICBnaW1wbGUgKnN0bXQgPSBnc2lfc3RtdCAoZ3NpKTsN Cj4gKyAgIGRzZV9kZWZfcmVmX2FuYWx5c2lzIChzdG10LCBzdG9yZXNfcXVl dWUpOw0KPiAgDQo+ICAgIGlmIChnaW1wbGVfdmRlZiAoc3RtdCkpDQo+IC0g ICAgIGRzZV9vcHRpbWl6ZV9zdG10IChmdW4sICZnc2ksIGxpdmVfYnl0ZXMp Ow0KPiArICAgICBkc2Vfb3B0aW1pemVfc3RtdCAoZnVuLCAmZ3NpLCBsaXZl X2J5dGVzLCBzdG9yZXNfcXVldWUpOw0KPiAgICBlbHNlIGlmIChkZWZfb3Bl cmFuZF9wDQo+ICAgICAgIGRlZl9wID0gc2luZ2xlX3NzYV9kZWZfb3BlcmFu ZCAoc3RtdCwgU1NBX09QX0RFRikpDQo+ICAgICAgew0KPiANCiANCi0tIA0K UmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KU1VTRSBTb2Z0 d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYXNzZSAx NDYsIDkwNDYxIE51ZXJuYmVyZywNCkdlcm1hbnk7IEdGOiBJdm8gVG90ZXYs IEFuZHJldyBNeWVycywgQW5kcmV3IE1jRG9uYWxkLCBCb3VkaWVuIE1vZXJt YW47DQpIUkIgMzY4MDkgKEFHIE51ZXJuYmVyZykNCiANCg== ------=_001_NextPart243246468576_=------