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 A408B3858D33 for ; Wed, 1 Feb 2023 12:56:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A408B3858D33 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: bizesmtp62t1675256196tmysk8o7 Received: from LAPTOP-EPITNQBU ( [58.60.1.3]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 01 Feb 2023 20:56:36 +0800 (CST) X-QQ-SSF: 01400000000000E0L000000A0000000 X-QQ-FEAT: 7YFKcddXaghmhQG6ug/6mgQrr3YFVha2kvgJSVjzu/dkRdPCjs27FonPgeMPS Hn1hdcSTP7oDTAm6zarkb4qLbDumMpAlIjufpsAaPV305oVb0uOmsMPBLcs0k9R7L89TSZB sYtq9LiXgtTG/qAlHOZKtCjLlMH2IoA5kjoTWqG01WGRnZrpZWLLLd56G8Mbc23bW6Wl96p UkpEK7vMId6VvCe8lV3S1V4+SCBO1qZtsUJerR8jPRCm73AiVrb0jyEb/Fhj2tHTv/L9Myo fHIklaZyVJEdAQ2UONAvmCmFC/qkQNetkyMAO5Ny+bAcUloNHmSp9Y4f726ApWdXUzw2K+B 24hefS+TRigHX/KG2FjbHEyizxXsM7slL8ZUzO869z8wd+E5I/YY5bj7mq4P+FQq6W/udiK xtao0+ozxufpiXAJxQnhaQHNtFhXPETQ X-QQ-GoodBg: 2 Date: Wed, 1 Feb 2023 20:56:36 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches , kito.cheng , richard.sandiford , jeffreyalaw , apinski Subject: Re: Re: [PATCH] CPROP: Allow cprop optimization when the function has a single block References: <20230201122444.253620-1-juzhe.zhong@rivai.ai>, , , X-Priority: 3 X-GUID: 302FBCD0-CC64-4356-B30E-18B1034F0650 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <2E16F446920AC99F+2023020120563582688674@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart183450547264_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,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_NextPart183450547264_=---- Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 Pj4gSSBzZWUgbG9hZHMgb2YgVU5TUEVDcywgdGhhdCBtaWdodCBleHBsYWlu IHdoeSBzb21lIHBhc3NlcyBkbyBzb21ldGhpbmcNCj4+IGFuZCBzb21lIG5v dC4gIFRoYXQgc2FpZCwgbm90IHN1cmUgd2hhdCBleGFjdGx5IENQUk9QIGRv ZXMsIHRoZSB0d28NCj4+IHByZWRfYnJvYWRjYXN0IGluc25zIGxvb2sgZXhh Y3RseSB0aGUgc2FtZSBzbyBDU0Ugc2hvdWxkIENTRSB0aGVtPw0KWWVzLCB0 aGUgInNvdXJjZSIgdGhlc2UgMiBwcmVkX2Jyb2FkY2FzdCB0aGUgc2FtZS4g SG93ZXZlciwgdGhleSBoYXZlIGRpZmZlcmVudCBwc2V1ZG9zIGluIHRoZWly ICJkZXN0IiAob3BlcmFuZHNbMF0pDQpUaGUgZmlyc3Qgb25lIGlzIDE1MSwg dGhlIHNlY29uZCBvbmUgaXMgMTUyLiBBbmQgdGhlIHJlc3VsdCBpbiB0aGVz ZSAyIHBzZXVkb3MgYXJlIHRoZSBzYW1lLg0KVGhlIGZpcnN0IHByZWRfYWRk IHVzZSAxNTEsIHRoZSBzZWNvbmQgcHJlZF9hZGQgdXNlIDE1Mi4NCg0KQ1NF IHNob3VsZCBkbyB0aGUgam9iIHRvIGVsaW1pbmF0ZSB0aGUgc2Vjb25kIHBy ZWRfYnJvYWRjYXN0LCBidXQgSSBhbSBub3Qgc3VyZSB3aGV0aGVyICBDU0Ug Y2FuIHByb3BhZ2F0ZSB0aGUgMTUxIHBzZXVkbw0KdG8gdGhlIHNlY29uZCBw cmVkX2FkZCA/Pw0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9t OiBSaWNoYXJkIEJpZW5lcg0KRGF0ZTogMjAyMy0wMi0wMSAyMDo1MQ0KVG86 IGp1emhlLnpob25nQHJpdmFpLmFpDQpDQzogZ2NjLXBhdGNoZXM7IGtpdG8u Y2hlbmc7IHJpY2hhcmQuc2FuZGlmb3JkOyBqZWZmcmV5YWxhdzsgYXBpbnNr aQ0KU3ViamVjdDogUmU6IFJlOiBbUEFUQ0hdIENQUk9QOiBBbGxvdyBjcHJv cCBvcHRpbWl6YXRpb24gd2hlbiB0aGUgZnVuY3Rpb24gaGFzIGEgc2luZ2xl IGJsb2NrDQpPbiBXZWQsIDEgRmViIDIwMjMsIGp1emhlLnpob25nQHJpdmFp LmFpIHdyb3RlOg0KIA0KPiAgSSBkb24ndCBrbm93biB3aGV0aGVyIENTRSBk byB0aGUgam9iLiBXaGF0IEkgc2F3IGlzIENQUk9QIGRvIHRoZSBvcHRpbWl6 YXRpb24gd2hlbiB3ZSBoYXZlIG1vcmUgdGhhbiAxIGJsb2NrLg0KPiANCj4g VGhpcyB0aGUgUlRMIGR1bXAgYmVmb3JlIENQUk9QOg0KPiANCj4gKGluc24g MTkgMTggMjAgNCAoc2V0IChyZWc6Vk54MURJIDE1MSkNCj4gICAgICAgICAo aWZfdGhlbl9lbHNlOlZOeDFESSAodW5zcGVjOlZOeDFCSSBbDQo+ICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWTngxQkkgcmVwZWF0IFsN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSBb MHgxXSkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgXSkNCj4gICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDQgWzB4NF0pDQo+ICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKSByZXBlYXRlZCB4Mg0K PiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQo+ICAg ICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NiB2bCkNCj4gICAgICAgICAg ICAgICAgICAgICAocmVnOlNJIDY3IHZ0eXBlKQ0KPiAgICAgICAgICAgICAg ICAgXSBVTlNQRUNfVlBSRURJQ0FURSkNCj4gICAgICAgICAgICAgKHZlY19k dXBsaWNhdGU6Vk54MURJIChyZWcvdjpESSAxNDggWyB4IF0pKQ0KPiAgICAg ICAgICAgICAodW5zcGVjOlZOeDFESSBbDQo+ICAgICAgICAgICAgICAgICAg ICAgKGNvbnN0X2ludCAwIFswXSkNCj4gICAgICAgICAgICAgICAgIF0gVU5T UEVDX1ZVTkRFRikpKSAicnZ2LmMiOjIyOjIzIDY5NSB7cHJlZF9icm9hZGNh c3R2bngxZGl9DQo+ICAgICAgKG5pbCkpDQo+IChpbnNuIDIwIDE5IDIxIDQg KHNldCAocmVnL3Y6Vk54MURJIDEzOSBbIHYzIF0pDQo+ICAgICAgICAgKGlm X3RoZW5fZWxzZTpWTngxREkgKHVuc3BlYzpWTngxQkkgWw0KPiAgICAgICAg ICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6Vk54MUJJIHJlcGVhdCBbDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEgWzB4 MV0pDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIF0pDQo+ICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRdKQ0KPiAgICAgICAgICAg ICAgICAgICAgIChjb25zdF9pbnQgMiBbMHgyXSkgcmVwZWF0ZWQgeDINCj4g ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAgWzBdKQ0KPiAgICAg ICAgICAgICAgICAgICAgIChyZWc6U0kgNjYgdmwpDQo+ICAgICAgICAgICAg ICAgICAgICAgKHJlZzpTSSA2NyB2dHlwZSkNCj4gICAgICAgICAgICAgICAg IF0gVU5TUEVDX1ZQUkVESUNBVEUpDQo+ICAgICAgICAgICAgIChwbHVzOlZO eDFESSAocmVnL3Y6Vk54MURJIDEzOCBbIHYyIF0pDQo+ICAgICAgICAgICAg ICAgICAocmVnOlZOeDFESSAxNTEpKQ0KPiAgICAgICAgICAgICAodW5zcGVj OlZOeDFESSBbDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAw IFswXSkNCj4gICAgICAgICAgICAgICAgIF0gVU5TUEVDX1ZVTkRFRikpKSAi cnZ2LmMiOjIyOjIzIDE1Mjgge3ByZWRfYWRkdm54MWRpfQ0KPiAgICAgIChl eHByX2xpc3Q6UkVHX0RFQUQgKHJlZzpWTngxREkgMTUxKQ0KPiAgICAgICAg IChuaWwpKSkNCj4gKGluc24gMjEgMjAgMjIgNCAoc2V0IChyZWc6Vk54MURJ IDE1MikNCj4gICAgICAgICAoaWZfdGhlbl9lbHNlOlZOeDFESSAodW5zcGVj OlZOeDFCSSBbDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3Rv cjpWTngxQkkgcmVwZWF0IFsNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgMSBbMHgxXSkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgXSkNCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQg WzB4NF0pDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsw eDJdKSByZXBlYXRlZCB4Mg0KPiAgICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMCBbMF0pDQo+ICAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2 NiB2bCkNCj4gICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDY3IHZ0eXBl KQ0KPiAgICAgICAgICAgICAgICAgXSBVTlNQRUNfVlBSRURJQ0FURSkNCj4g ICAgICAgICAgICAgKHZlY19kdXBsaWNhdGU6Vk54MURJIChyZWcvdjpESSAx NDggWyB4IF0pKQ0KPiAgICAgICAgICAgICAodW5zcGVjOlZOeDFESSBbDQo+ ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFswXSkNCj4gICAg ICAgICAgICAgICAgIF0gVU5TUEVDX1ZVTkRFRikpKSAicnZ2LmMiOjIzOjIz IDY5NSB7cHJlZF9icm9hZGNhc3R2bngxZGl9DQo+ICAgICAgKG5pbCkpDQo+ IChpbnNuIDIyIDIxIDIzIDQgKHNldCAocmVnL3Y6Vk54MURJIDE0MCBbIHY0 IF0pDQo+ICAgICAgICAgKGlmX3RoZW5fZWxzZTpWTngxREkgKHVuc3BlYzpW TngxQkkgWw0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6 Vk54MUJJIHJlcGVhdCBbDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDEgWzB4MV0pDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgIF0pDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsw eDRdKQ0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0p DQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKQ0K PiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQo+ICAg ICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NiB2bCkNCj4gICAgICAgICAg ICAgICAgICAgICAocmVnOlNJIDY3IHZ0eXBlKQ0KPiAgICAgICAgICAgICAg ICAgXSBVTlNQRUNfVlBSRURJQ0FURSkNCj4gICAgICAgICAgICAgKHBsdXM6 Vk54MURJIChyZWcvdjpWTngxREkgMTM4IFsgdjIgXSkNCj4gICAgICAgICAg ICAgICAgIChyZWc6Vk54MURJIDE1MikpDQo+ICAgICAgICAgICAgIChyZWcv djpWTngxREkgMTM5IFsgdjMgXSkpKSAicnZ2LmMiOjIzOjIzIDE1Mjgge3By ZWRfYWRkdm54MWRpfQ0KPiAgICAgIChleHByX2xpc3Q6UkVHX0RFQUQgKHJl ZzpWTngxREkgMTUyKQ0KPiAgICAgICAgIChleHByX2xpc3Q6UkVHX0RFQUQg KHJlZy92OlZOeDFESSAxMzkgWyB2MyBdKQ0KPiAgICAgICAgICAgICAoZXhw cl9saXN0OlJFR19ERUFEIChyZWcvdjpWTngxREkgMTM4IFsgdjIgXSkNCj4g ICAgICAgICAgICAgICAgIChuaWwpKSkpKQ0KPiANCj4gQWZ0ZXIgQ1JQT1A6 DQo+IChpbnNuIDE1IDE0IDE2IDQgKHNldCAocmVnOlZOeDFESSAxNDcpDQo+ ICAgICAgICAgKGlmX3RoZW5fZWxzZTpWTngxREkgKHVuc3BlYzpWTngxQkkg Ww0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0b3I6Vk54MUJJ IHJlcGVhdCBbDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u c3RfaW50IDEgWzB4MV0pDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIF0p DQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0IFsweDRdKQ0K PiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMiBbMHgyXSkgcmVw ZWF0ZWQgeDINCj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAg WzBdKQ0KPiAgICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjYgdmwpDQo+ ICAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NyB2dHlwZSkNCj4gICAg ICAgICAgICAgICAgIF0gVU5TUEVDX1ZQUkVESUNBVEUpDQo+ICAgICAgICAg ICAgICh2ZWNfZHVwbGljYXRlOlZOeDFESSAocmVnL3Y6REkgMTQzIFsgeCBd KSkNCj4gICAgICAgICAgICAgKHVuc3BlYzpWTngxREkgWw0KPiAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMCBbMF0pDQo+ICAgICAgICAgICAg ICAgICBdIFVOU1BFQ19WVU5ERUYpKSkgInJ2di5jIjoxMToyMyA2OTUge3By ZWRfYnJvYWRjYXN0dm54MWRpfQ0KPiAgICAgIChuaWwpKQ0KPiAoaW5zbiAx NiAxNSAxOCA0IChzZXQgKHJlZy92OlZOeDFESSAxMzkgWyB2MyBdKQ0KPiAg ICAgICAgIChpZl90aGVuX2Vsc2U6Vk54MURJICh1bnNwZWM6Vk54MUJJIFsN Cj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfdmVjdG9yOlZOeDFCSSBy ZXBlYXQgWw0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0 X2ludCAxIFsweDFdKQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICBdKQ0K PiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCBbMHg0XSkNCj4g ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIgWzB4Ml0pIHJlcGVh dGVkIHgyDQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwIFsw XSkNCj4gICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDY2IHZsKQ0KPiAg ICAgICAgICAgICAgICAgICAgIChyZWc6U0kgNjcgdnR5cGUpDQo+ICAgICAg ICAgICAgICAgICBdIFVOU1BFQ19WUFJFRElDQVRFKQ0KPiAgICAgICAgICAg ICAocGx1czpWTngxREkgKHJlZy92OlZOeDFESSAxMzggWyB2MiBdKQ0KPiAg ICAgICAgICAgICAgICAgKHJlZzpWTngxREkgMTQ3KSkNCj4gICAgICAgICAg ICAgKHVuc3BlYzpWTngxREkgWw0KPiAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMCBbMF0pDQo+ICAgICAgICAgICAgICAgICBdIFVOU1BFQ19W VU5ERUYpKSkgInJ2di5jIjoxMToyMyAxNTI4IHtwcmVkX2FkZHZueDFkaX0N Cj4gICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWc6Vk54MURJIDE0NykN Cj4gICAgICAgICAoZXhwcl9saXN0OlJFR19ERUFEIChyZWcvdjpWTngxREkg MTM4IFsgdjIgXSkNCj4gICAgICAgICAgICAgKG5pbCkpKSkNCj4gKGluc24g MTggMTYgMTkgNCAoc2V0IChyZWcvdjpWTngxREkgMTQwIFsgdjQgXSkNCj4g ICAgICAgICAoaWZfdGhlbl9lbHNlOlZOeDFESSAodW5zcGVjOlZOeDFCSSBb DQo+ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X3ZlY3RvcjpWTngxQkkg cmVwZWF0IFsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25z dF9pbnQgMSBbMHgxXSkNCj4gICAgICAgICAgICAgICAgICAgICAgICAgXSkN Cj4gICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQgWzB4NF0pDQo+ ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyIFsweDJdKSByZXBl YXRlZCB4Mg0KPiAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCBb MF0pDQo+ICAgICAgICAgICAgICAgICAgICAgKHJlZzpTSSA2NiB2bCkNCj4g ICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDY3IHZ0eXBlKQ0KPiAgICAg ICAgICAgICAgICAgXSBVTlNQRUNfVlBSRURJQ0FURSkNCj4gICAgICAgICAg ICAgKHBsdXM6Vk54MURJIChyZWcvdjpWTngxREkgMTM5IFsgdjMgXSkNCj4g ICAgICAgICAgICAgICAgIChyZWc6Vk54MURJIDE0NykpDQo+ICAgICAgICAg ICAgICh1bnNwZWM6Vk54MURJIFsNCj4gICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDAgWzBdKQ0KPiAgICAgICAgICAgICAgICAgXSBVTlNQRUNf VlVOREVGKSkpICJydnYuYyI6MTI6MjMgMTUyOCB7cHJlZF9hZGR2bngxZGl9 DQo+ICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnOlZOeDFESSAxNDgp DQo+ICAgICAgICAgKGV4cHJfbGlzdDpSRUdfREVBRCAocmVnL3Y6Vk54MURJ IDEzOSBbIHYzIF0pDQo+ICAgICAgICAgICAgIChuaWwpKSkpDQo+IA0KPiBZ b3UgY2FuIHNlZSBDUFJPUCByZW1vdmUgdGhlIHNlY29uZCB0aGUgInByZWRf YnJvYWRjYXN0IiBpbnN0cnVjdGlvbiBhbmQgcHJvcGFnYXRlIHRoZSByZXN1 bHQgdG8gdGhlIHNlY29uZCAicHJlZF9hZGQiIGluc3RydWN0aW9uPw0KIA0K SSBzZWUgbG9hZHMgb2YgVU5TUEVDcywgdGhhdCBtaWdodCBleHBsYWluIHdo eSBzb21lIHBhc3NlcyBkbyBzb21ldGhpbmcNCmFuZCBzb21lIG5vdC4gIFRo YXQgc2FpZCwgbm90IHN1cmUgd2hhdCBleGFjdGx5IENQUk9QIGRvZXMsIHRo ZSB0d28NCnByZWRfYnJvYWRjYXN0IGluc25zIGxvb2sgZXhhY3RseSB0aGUg c2FtZSBzbyBDU0Ugc2hvdWxkIENTRSB0aGVtPw0KIA0KPiANCj4gDQo+IGp1 emhlLnpob25nQHJpdmFpLmFpDQo+ICANCj4gRnJvbTogUmljaGFyZCBCaWVu ZXINCj4gRGF0ZTogMjAyMy0wMi0wMSAyMDo0MA0KPiBUbzogSnUtWmhlIFpo b25nDQo+IENDOiBnY2MtcGF0Y2hlczsga2l0by5jaGVuZzsgcmljaGFyZC5z YW5kaWZvcmQ7IGplZmZyZXlhbGF3OyBhcGluc2tpDQo+IFN1YmplY3Q6IFJl OiBbUEFUQ0hdIENQUk9QOiBBbGxvdyBjcHJvcCBvcHRpbWl6YXRpb24gd2hl biB0aGUgZnVuY3Rpb24gaGFzIGEgc2luZ2xlIGJsb2NrDQo+IE9uIFdlZCwg MSBGZWIgMjAyMywganV6aGUuemhvbmdAcml2YWkuYWkgd3JvdGU6DQo+ICAN Cj4gPiBGcm9tOiBKdS1aaGUgWmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFp Pg0KPiA+IA0KPiA+IEhpLCB0aGlzIHBhdGNoIGlzIHByZXNlbnQgZm9yIEdD QyAxNCBzaW5jZSBJIHVuZGVyc3RhbmQgaXQncyBub3QgYXBwcm9wcmlhdGUN Cj4gPiB0byBsYW5kIGl0IGluIEdDQyAxMy4NCj4gPiANCj4gPiBOVU1fRklY RURfQkxPQ0tTID0gMiBzaW5jZSBHQ0MgZGVmaW5lIGVhY2ggZnVuY3Rpb24g aGFzIGFsZWFzdCAyIGJsb2Nrcw0KPiA+IG9uZSBpcyBlbnRyeSBibG9jaywg dGhlIG90aGVyIGlzIGV4aXQgYmxvY2suDQo+ID4gU28gYWNjb3JkaW5nIHRo aXMgY29kZSwgdGhlIGZ1bmN0aW9uIHdpbGwgbm90IGRvIGNwcm9wIG9wdGlt aXphdGlvbiB3aGVuDQo+ID4gdGhlcmUgaXMgb25seSBleGFjdGx5IG9uZSBz aW5nbGUgYmxvY2suDQo+ICANCj4gY3Byb3AgLyBHQ1NFIGFyZSBnbG9iYWwg ZGF0YWZsb3cgcHJvYmxlbXMsIHRoZXJlJ3MgIm5vdGhpbmciIHRvIGRvIGZv cg0KPiBhIHNpbmdsZSBibG9jaywgdGhlIGxvY2FsIHByb2JsZW0gcGx1cyBp dHMgYXBwbGljYXRpb24gaXNuJ3QgY29uc2lkZXJlZA0KPiBidXQgcHJvYmFi bHkgbGVmdCBmb3IgQ1NFLg0KPiAgDQo+IFdoeSBkb2VzIENTRSBub3QgcGVy Zm9ybSB0aGUgZGVzaXJlZCB0cmFuc2Zvcm0/DQo+ICANCj4gPiBJIGFtIG5v dCBzdXJlIHdoZXRoZXIgaXQncyBjb3JyZWN0IHRvIGZpeCBpdCBsaWtlIHRo aXMuDQo+ID4gQ2FuIGFueW9uZSB0ZWxsIG1lIHdoeSBmb3JiaWQgY3Byb3Ag b3B0aW1pemF0aW9uIGlmIHRoZSBmdW5jdGlvbiBvbmx5IGhhcyBzDQo+ID4g c2luZ2xlIGJsb2NrID8NCj4gPiANCj4gPiBMZXQncyB0YWtlIGEgbG9vayBh dCB0aGVzZSAyIGV4YW1wbGVzIG9mIFJWViBpbnRyaW5zaWNzOg0KPiA+IDEu ICAgIHZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQ2NF90IHgs IGludCBuKQ0KPiA+ICAgICAgIHsNCj4gPiAgICAgICB2aW50NjRtMV90IHYg PSBfX3Jpc2N2X3ZsZTY0X3ZfaTY0bTEgKGluICsgMSwgNCk7DQo+ID4gICAg ICAgdmludDY0bTFfdCB2MiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMV90dSAo diwgaW4gKyAyLCA0KTsNCj4gPiAgICAgICB2aW50NjRtMV90IHYzID0gX19y aXNjdl92YWRkX3Z4X2k2NG0xICh2MiwgeCwgNCk7DQo+ID4gICAgICAgdmlu dDY0bTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pNjRtMSAodjMsIHgsIDQp Ow0KPiA+ICAgICAgIF9fcmlzY3ZfdnNlNjRfdl9pNjRtMSAob3V0ICsgMiwg djQsIDQpOw0KPiA+ICAgICAgIH0NCj4gPiANCj4gPiBhc206DQo+ID4gICAg ICBhZGRpIHNwLHNwLC0xNg0KPiA+IHN3IGEyLDgoc3ApDQo+ID4gc3cgYTMs MTIoc3ApDQo+ID4gc3cgYTIsMChzcCkNCj4gPiBzdyBhMyw0KHNwKQ0KPiA+ IGFkZGkgYTUsYTAsMQ0KPiA+IHZzZXRpdmxpIHplcm8sNCxlNjQsbTEsdGEs bWENCj4gPiBhZGRpIGEwLGEwLDINCj4gPiB2bGU2NC52IHYyNCwwKGE1KQ0K PiA+IGFkZGkgYTUsc3AsOA0KPiA+IHZsc2U2NC52IHYyNywwKGE1KSx6ZXJv DQo+ID4gYWRkaSBhMSxhMSwyDQo+ID4gdnNldHZsaSB6ZXJvLHplcm8sZTY0 LG0xLHR1LG1hDQo+ID4gdmxlNjQudiB2MjQsMChhMCkNCj4gPiB2c2V0dmxp IHplcm8semVybyxlNjQsbTEsdGEsbWENCj4gPiB2bHNlNjQudiB2MjUsMChz cCksemVybw0KPiA+IHZhZGQudnYgdjI2LHYyNCx2MjcNCj4gPiB2YWRkLnZ2 IHYyNCx2MjYsdjI1DQo+ID4gdnNlNjQudiB2MjQsMChhMSkNCj4gPiBhZGRp IHNwLHNwLDE2DQo+ID4ganIgcmENCj4gPiB5b3UgY2FuIHNlZSBoZXJlIHRo ZXJlIGFyZSAyIHZsc2U2NC52IGluc3RydWN0aW9ucyB0aGF0IGJyb2FkY2Fz dCB0aGUgc2NhbGFyIHZhbHVlICJ4Ig0KPiA+IEdDQyBmYWlsIHRvIGVsaW1p bmF0ZSB0aGUgc2Vjb25kIHZsc2U2NC52IGluc3RydWN0aW9uIHNpbmNlIEdD QyBkb2Vzbid0IGRvIHRoZSBjcHJvcA0KPiA+IG9wdGltaXphdGlvbiAodGhl IGZ1bmN0aW9uIG9ubHkgaGFzIDEgc2luZ2xlIGJsb2NrKS4gSXQgY2FuIGJl IG9wdGltaXplZCBpZiB3ZSBhcHBseQ0KPiA+IHRoaXMgcGF0Y2guDQo+ID4g DQo+ID4gMi4gdm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDY0 X3QgeCwgaW50IG4pDQo+ID4gew0KPiA+ICAgICBpZiAobikgew0KPiA+ICAg ICAgIHZpbnQ2NG0xX3QgdiA9IF9fcmlzY3ZfdmxlNjRfdl9pNjRtMSAoaW4g KyAxLCA0KTsNCj4gPiAgICAgICB2aW50NjRtMV90IHYyID0gX19yaXNjdl92 bGU2NF92X2k2NG0xX3R1ICh2LCBpbiArIDIsIDQpOw0KPiA+ICAgICAgIHZp bnQ2NG0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTY0bTEgKHYyLCB4LCA0 KTsNCj4gPiAgICAgICB2aW50NjRtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4 X2k2NG0xICh2MywgeCwgNCk7DQo+ID4gICAgICAgX19yaXNjdl92c2U2NF92 X2k2NG0xIChvdXQgKyAyLCB2NCwgNCk7DQo+ID4gICAgIH0NCj4gPiB9DQo+ ID4gDQo+ID4gYXNtOg0KPiA+ICAgZjE6DQo+ID4gdnNldGl2bGkgemVybyw0 LGU2NCxtMSx0YSxtYQ0KPiA+IGJlcSBhNCx6ZXJvLC5MNw0KPiA+IGFkZGkg c3Asc3AsLTE2DQo+ID4gc3cgYTIsOChzcCkNCj4gPiBzdyBhMywxMihzcCkN Cj4gPiBhZGRpIGE1LGEwLDENCj4gPiB2bGU2NC52IHYyNCwwKGE1KQ0KPiA+ IGFkZGkgYTAsYTAsMg0KPiA+IGFkZGkgYTUsc3AsOA0KPiA+IHZsc2U2NC52 IHYyNSwwKGE1KSx6ZXJvDQo+ID4gYWRkaSBhMSxhMSwyDQo+ID4gdnNldHZs aSB6ZXJvLHplcm8sZTY0LG0xLHR1LG1hDQo+ID4gdmxlNjQudiB2MjQsMChh MCkNCj4gPiB2YWRkLnZ2IHYyNix2MjQsdjI1DQo+ID4gdmFkZC52diB2MjQs djI2LHYyNQ0KPiA+IHZzZTY0LnYgdjI0LDAoYTEpDQo+ID4gYWRkaSBzcCxz cCwxNg0KPiA+IGpyIHJhDQo+ID4gLkw3Og0KPiA+IHJldA0KPiA+IA0KPiA+ IEhlcmUsIGlmIHdlIGFkZCBpZiAobikgY29uZGl0aW9uIGhlcmUsIHRoZSBw cm9ncmFtIHdpbGwgZW5kIHVwIHdpdGggbW9yZSB0aGFuIDEgYmxvY2suDQo+ ID4gU28gR0NDIHdpbGwgZG8gdGhlIGNwcm9wIG9wdGltaXphdGlvbiBhbmQg dGhlIHNlY29uZCB2bHNlNjQudiBpbnN0cnVjdGlvbiBpcyBlbGltaW5hdGVk Lg0KPiA+IA0KPiA+IEkgYW0gbm90IHN1cmUgd2hldGhlciB0aGlzIHBhdGNo IGlzIGNvcnJlY3QuDQo+ID4gQ2FuIGFueW9uZSBoZWxwIG1lIHdpdGggdGhh dCA/DQo+ID4gVGhhbmtzLg0KPiA+IA0KPiA+IA0KPiA+IGdjYy9DaGFuZ2VM b2c6DQo+ID4gDQo+ID4gICAgICAgICAqIGNwcm9wLmNjIChvbmVfY3Byb3Bf cGFzcyk6IFJlbW92ZSArMS4NCj4gPiANCj4gPiAtLS0NCj4gPiAgZ2NjL2Nw cm9wLmNjIHwgMiArLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEv Z2NjL2Nwcm9wLmNjIGIvZ2NjL2Nwcm9wLmNjDQo+ID4gaW5kZXggNmVjMGJk YTRhMjQuLjYxNWJjNTA3OGI2IDEwMDY0NA0KPiA+IC0tLSBhL2djYy9jcHJv cC5jYw0KPiA+ICsrKyBiL2djYy9jcHJvcC5jYw0KPiA+IEBAIC0xNzQ5LDcg KzE3NDksNyBAQCBvbmVfY3Byb3BfcGFzcyAodm9pZCkNCj4gPiAgICBpbnQg Y2hhbmdlZCA9IDA7DQo+ID4gIA0KPiA+ICAgIC8qIFJldHVybiBpZiB0aGVy ZSdzIG5vdGhpbmcgdG8gZG8sIG9yIGl0IGlzIHRvbyBleHBlbnNpdmUuICAq Lw0KPiA+IC0gIGlmIChuX2Jhc2ljX2Jsb2Nrc19mb3JfZm4gKGNmdW4pIDw9 IE5VTV9GSVhFRF9CTE9DS1MgKyAxDQo+ID4gKyAgaWYgKG5fYmFzaWNfYmxv Y2tzX2Zvcl9mbiAoY2Z1bikgPD0gTlVNX0ZJWEVEX0JMT0NLUw0KPiA+ICAg ICAgICB8fCBnY3NlX29yX2Nwcm9wX2lzX3Rvb19leHBlbnNpdmUgKF8gKCJj b25zdC9jb3B5IHByb3BhZ2F0aW9uIGRpc2FibGVkIikpKQ0KPiA+ICAgICAg cmV0dXJuIDA7DQo+ID4gIA0KPiA+IA0KPiAgDQo+IA0KIA0KLS0gDQpSaWNo YXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQpTVVNFIFNvZnR3YXJl IFNvbHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhc3NlIDE0Niwg OTA0NjEgTnVlcm5iZXJnLA0KR2VybWFueTsgR0Y6IEl2byBUb3RldiwgQW5k cmV3IE15ZXJzLCBBbmRyZXcgTWNEb25hbGQsIEJvdWRpZW4gTW9lcm1hbjsN CkhSQiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KIA0K ------=_001_NextPart183450547264_=------