From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail1.med.uni-goettingen.de (mail1.med.uni-goettingen.de [134.76.103.230]) by sourceware.org (Postfix) with ESMTPS id DD191384C830 for ; Mon, 16 Aug 2021 04:49:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DD191384C830 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=med.uni-goettingen.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=med.uni-goettingen.de Received: from exc-lb-ha-mgmt.med.uni-goettingen.de ([10.76.100.40]:63814 helo=umg-exc-03.ads.local.med.uni-goettingen.de) by mail1.med.uni-goettingen.de with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1mFUYc-0000qH-1z; Mon, 16 Aug 2021 06:49:07 +0200 Received: from umg-exc-01.ads.local.med.uni-goettingen.de (10.76.100.74) by umg-exc-03.ads.local.med.uni-goettingen.de (10.76.100.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Mon, 16 Aug 2021 06:49:06 +0200 Received: from umg-exc-01.ads.local.med.uni-goettingen.de ([fe80::2886:b6b:10e3:deea]) by umg-exc-01.ads.local.med.uni-goettingen.de ([fe80::2886:b6b:10e3:deea%6]) with mapi id 15.01.2242.012; Mon, 16 Aug 2021 06:49:06 +0200 From: "Uecker, Martin" To: "jason@redhat.com" , "kenner@nyu.edu" CC: "gcc-patches@gcc.gnu.org" Subject: Re: [PATCH] Fix ICE when mixing VLAs and statement expressions [PR91038] Thread-Topic: [PATCH] Fix ICE when mixing VLAs and statement expressions [PR91038] Thread-Index: AQHXhvvP/O/jCoPXdkOErL8OJvVCd6t1f1YAgAAFQQA= Date: Mon, 16 Aug 2021 04:49:06 +0000 Message-ID: <2dbc9989ae6e859a4ec84b9d68abcd794d605594.camel@med.uni-goettingen.de> References: <580b9499-aa61-17ec-d5e8-60db9a5e853e@redhat.com> In-Reply-To: <580b9499-aa61-17ec-d5e8-60db9a5e853e@redhat.com> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.76.100.67] Content-Type: text/plain; charset="utf-8" Content-ID: <340AC2B3CCCD4946AC19C1F9C06A2E59@med.uni-goettingen.de> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Aug 2021 04:49:22 -0000 QW0gTW9udGFnLCBkZW4gMTYuMDguMjAyMSwgMDA6MzAgLTA0MDAgc2NocmllYiBKYXNvbiBNZXJy aWxsOg0KPiBPbiA4LzEvMjEgMTozNiBQTSwgVWVja2VyLCBNYXJ0aW4gd3JvdGU6DQo+ID4gDQo+ ID4gSGVyZSBpcyBhbiBhdHRlbXB0IHRvIGZpeCBzb21lIG9sZCBhbmQgYW5ub3lpbmcgYnVncyBy ZWxhdGVkDQo+ID4gdG8gVkxBcyBhbmQgc3RhdGVtZW50IGV4cHJlc3Npb25zLiBJbiBwYXJ0aWN1 bGFyeSwgdGhpcyBzZWVtcw0KPiA+IHRvIGZpeCB0aGUgaXNzdWVzIHdpdGggdmFyaWFibHktbW9k aWZpZWQgdHlwZXMgd2hpY2ggYXJlDQo+ID4gcmV0dXJuZWQgZnJvbSBzdGF0ZW1lbnQgZXhwcmVz c2lvbnMgKHdoaWNoIHdvcmtzIG9uIGNsYW5nKSwNCj4gPiBidXQgdGhlcmUgYXJlIHN0aWxsIGJ1 Z3MgcmVtYWluaW5nIHJlbGF0ZWQgdG8gc3RydWN0cw0KPiA+IHdpdGggVkxBIG1lbWJlcnMgKHdo aWNoIHNlZW1zIHRvIGJlIGEgRkUgYnVnKS4NCj4gPiANCj4gPiBPZiBjb3Vyc2UsIEkgbWlnaHQg YmUgZG9pbmcgc29tZXRoaW5nIHN0dXBpZC4uLg0KPiA+IA0KPiA+IFRoZSBwYXRjaCBzdXJ2aXZl cyBib290c3RyYXBwaW5nIGFuZCByZWdyZXNzdGlvbiB0ZXN0aW5nDQo+ID4gb24geDg2XzY0Lg0K PiANCj4gSW5jbHVkaW5nIEFkYT8NCg0KDQpJdCBicm9rZSBQTEFDRUhPTERFUl9FWFBScyBhcyB5 b3UgcG9pbnRlZCBvdXQgYmVsb3cuDQoNClBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgbmV3IHZl cnNpb246DQoNCmh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2djYy1wYXRjaGVzLzIwMjEt QXVndXN0LzU3NzQwMi5odG1sDQoNCk1hcnRpbg0KDQoNCg0KPiA+IEZpeCBJQ0Ugd2hlbiBtaXhp bmcgVkxBcyBhbmQgc3RhdGVtZW50IGV4cHJlc3Npb25zIFtQUjkxMDM4XQ0KPiA+IA0KPiA+IFdo ZW4gcmV0dXJuaW5nIFZNLXR5cGVzIGZyb20gc3RhdGVtZW50IGV4cHJlc3Npb25zLCB0aGlzIGNh bg0KPiA+IGxlYWQgdG8gYW4gSUNFIHdoZW4gZGVjbGFyYXRpb25zIGZyb20gdGhlIHN0YXRlbWVu dCBleHByZXNzaW9uDQo+ID4gYXJlIHJlZmVycmVkIHRvIGxhdGVyLiBTb21lIG9mIHRoZXNlIGlz c3VlcyBjYW4gYmUgYWRkcmVzc2VkIGJ5DQo+ID4gZ2ltcGxpZnlpbmcgdGhlIGJhc2UgZXhwcmVz c2lvbiBlYXJsaWVyIGluIGdpbXBsaWZ5X2NvbXBvdW5kX2x2YWwuDQo+ID4gVGhpcyBmaXhlcyBQ UjkxMDM4IGFuZCBzb21lIG9mIHRoZSB0ZXN0IGNhc2VzIGZyb20gUFIyOTk3MA0KPiA+IChzdHJ1 Y3RzIHdpdGggVkxBIG1lbWJlcnMgbmVlZCBmdXJ0aGVyIHdvcmspLg0KPiA+IA0KPiA+ICAgICAg DQo+ID4gICAgICAyMDIxLTA4LTAxICBNYXJ0aW4gVWVja2VyICA8bXVlY2tlckBnd2RnLmRlPg0K PiA+ICAgICAgDQo+ID4gICAgICBnY2MvDQo+ID4gCVBSIGMvOTEwMzgNCj4gPiAJUFIgYy8yOTk3 MA0KPiA+IAkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X3Zhcl9vcl9wYXJtX2RlY2wpOiBVcGRhdGUg Y29tbWVudC4NCj4gPiAJKGdpbXBsaWZ5X2NvbXBvdW5kX2x2YWwpOiBHaW1wbGlmeSBiYXNlIGV4 cHJlc3Npb24gZmlyc3QuDQo+ID4gICAgICANCj4gPiAgICAgIGdjYy90ZXN0c3VpdGUvDQo+ID4g CVBSIGMvOTEwMzgNCj4gPiAJUFIgYy8yOTk3MA0KPiA+IAkqIGdjYy5kZy92bGEtc3RleHAtMDEu YzogTmV3IHRlc3QuDQo+ID4gCSogZ2NjLmRnL3ZsYS1zdGV4cC0wMi5jOiBOZXcgdGVzdC4NCj4g PiAJKiBnY2MuZGcvdmxhLXN0ZXhwLTAzLmM6IE5ldyB0ZXN0Lg0KPiA+IAkqIGdjYy5kZy92bGEt c3RleHAtMDQuYzogTmV3IHRlc3QuDQo+ID4gDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2djYy9n aW1wbGlmeS5jIGIvZ2NjL2dpbXBsaWZ5LmMNCj4gPiBpbmRleCAyMWZmMzJlZTRhYS4uODg1ZDVm NzM1ODUgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL2dpbXBsaWZ5LmMNCj4gPiArKysgYi9nY2MvZ2lt cGxpZnkuYw0KPiA+IEBAIC0yODM5LDcgKzI4MzksMTAgQEAgZ2ltcGxpZnlfdmFyX29yX3Bhcm1f ZGVjbCAodHJlZSAqZXhwcl9wKQ0KPiA+ICAgICAgICBkZWNsYXJhdGlvbiwgZm9yIHdoaWNoIHdl J3ZlIGFscmVhZHkgaXNzdWVkIGFuIGVycm9yLiAgSXQgd291bGQNCj4gPiAgICAgICAgYmUgcmVh bGx5IG5pY2UgaWYgdGhlIGZyb250IGVuZCB3b3VsZG4ndCBsZWFrIHRoZXNlIGF0IGFsbC4NCj4g PiAgICAgICAgQ3VycmVudGx5IHRoZSBvbmx5IGtub3duIGN1bHByaXQgaXMgQysrIGRlc3RydWN0 b3JzLCBhcyBzZWVuDQo+ID4gLSAgICAgaW4gZysrLm9sZC1kZWphL2crKy5qYXNvbi9iaW5kaW5n LkMuICAqLw0KPiA+ICsgICAgIGluIGcrKy5vbGQtZGVqYS9nKysuamFzb24vYmluZGluZy5DLg0K PiA+ICsgICAgIEFub3RoZXIgY3VscGl0IGFyZSBzaXplIGV4cHJlc3Npb25zIGZvciB2YXJpYWJs eSBtb2RpZmllZA0KPiA+ICsgICAgIHR5cGVzIHdoaWNoIGFyZSBsb3N0IGluIHRoZSBGRSBvciBu b3QgZ2ltcGxpZmllZCBjb3JyZWN0bHkuDQo+ID4gKyAgKi8NCj4gPiAgICAgaWYgKFZBUl9QIChk ZWNsKQ0KPiA+ICAgICAgICAgJiYgIURFQ0xfU0VFTl9JTl9CSU5EX0VYUFJfUCAoZGVjbCkNCj4g PiAgICAgICAgICYmICFUUkVFX1NUQVRJQyAoZGVjbCkgJiYgIURFQ0xfRVhURVJOQUwgKGRlY2wp DQo+ID4gQEAgLTI5ODQsOSArMjk4NywyMyBAQCBnaW1wbGlmeV9jb21wb3VuZF9sdmFsICh0cmVl ICpleHByX3AsIGdpbXBsZV9zZXEgKnByZV9wLCBnaW1wbGVfc2VxDQo+ID4gKnBvc3RfcCwNCj4g PiAgICAgICAgZXhwcmVzc2lvbiB1bnRpbCB3ZSBkZWFsIHdpdGggYW55IHZhcmlhYmxlIGJvdW5k cywgc2l6ZXMsIG9yDQo+ID4gICAgICAgIHBvc2l0aW9ucyBpbiBvcmRlciB0byBkZWFsIHdpdGgg UExBQ0VIT0xERVJfRVhQUnMuDQo+ID4gICANCj4gPiAtICAgICBTbyB3ZSBkbyB0aGlzIGluIHRo cmVlIHN0ZXBzLiAgRmlyc3Qgd2UgZGVhbCB3aXRoIHRoZSBhbm5vdGF0aW9ucw0KPiA+IC0gICAg IGZvciBhbnkgdmFyaWFibGVzIGluIHRoZSBjb21wb25lbnRzLCB0aGVuIHdlIGdpbXBsaWZ5IHRo ZSBiYXNlLA0KPiA+IC0gICAgIHRoZW4gd2UgZ2ltcGxpZnkgYW55IGluZGljZXMsIGZyb20gbGVm dCB0byByaWdodC4gICovDQo+ID4gKyAgICAgU28gd2UgZG8gdGhpcyBpbiB0aHJlZSBzdGVwcy4g IEZpcnN0IHdlIGdpbXBsaWZ5IHRoZSBiYXNlLA0KPiA+ICsgICAgIHRoZW4gd2UgZGVhbCB3aXRo IHRoZSBhbm5vdGF0aW9ucyBmb3IgYW55IHZhcmlhYmxlcyBpbiB0aGUNCj4gPiArICAgICBjb21w b25lbnRzLCB0aGVuIHdlIGdpbXBsaWZ5IGFueSBpbmRpY2VzLCBmcm9tIGxlZnQgdG8gcmlnaHQu DQo+ID4gKw0KPiA+ICsgICAgIFRoZSBiYXNlIGV4cHJlc3Npb24gbWF5IGNvbnRhaW4gYSBzdGF0 ZW1lbnQgZXhwcmVzc2lvbiB0aGF0DQo+ID4gKyAgICAgaGFzIGRlY2xhcmF0aW9ucyB1c2VkIGlu IHNpemUgZXhwcmVzc2lvbnMsIHNvIGhhcyB0byBiZQ0KPiA+ICsgICAgIGdpbXBsaWZpZWQgZmly c3QuICovDQo+IA0KPiBUaGUgcHJldmlvdXMgcGFyYWdyYXBoIHNheXMsDQo+IA0KPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJ1dCB3ZSBjYW4ndCBnaW1wbGlmeSB0aGUNCj4gPiBp bm5lciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0K PiA+ICAgICAgZXhwcmVzc2lvbiB1bnRpbCB3ZSBkZWFsIHdpdGggYW55IHZhcmlhYmxlIGJvdW5k cywgc2l6ZXMsDQo+ID4gb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgDQo+ID4gICAgICBwb3NpdGlvbnMgaW4gb3JkZXIgdG8gZGVhbCB3aXRoIFBMQUNFSE9M REVSX0VYUFJzLiANCj4gDQo+IHNvIEkgd291bGQgZXhwZWN0IHlvdXIgY2hhbmdlIHRvIGJyZWFr IGV4YW1wbGVzIHRoYXQgdGhlIGN1cnJlbnQgY29kZSANCj4gd2FzIGRlc2lnbmVkIHRvIGhhbmRs ZS4gIFRoZSBjaGFuZ2UgdG8gZGVsYXkgZ2ltcGxpZnlpbmcgdGhlIGlubmVyIA0KPiBleHByZXNz aW9uIHdhcyBpbiByMC01OTEzMSAoU1ZOIHI4MzQ3NCksIGJ5IFJpY2hhcmQgS2VubmVyLiAgQnV0 IHRoZXJlIA0KPiBhcmVuJ3QgYW55IHRlc3RjYXNlcyBpbiB0aGF0IGNvbW1pdC4gIFJpY2hhcmQs IGFueSBpbnNpZ2h0PyAgQ2FuIHlvdSANCj4gcmV2aWV3IHRoaXMgcGF0Y2g/DQoNCg0KDQo+ID4g KyAgLyogU3RlcCAxIGlzIHRvIGdpbXBsaWZ5IHRoZSBiYXNlIGV4cHJlc3Npb24uICBNYWtlIHN1 cmUgbHZhbHVlIGlzIHNldA0KPiA+ICsgICAgIHNvIGFzIHRvIG1hdGNoIHRoZSBtaW5fbHZhbCBw cmVkaWNhdGUuICBGYWlsdXJlIHRvIGRvIHNvIG1heSByZXN1bHQNCj4gPiArICAgICBpbiB0aGUg Y3JlYXRpb24gb2YgbGFyZ2UgYWdncmVnYXRlIHRlbXBvcmFyaWVzLiAgKi8NCj4gPiArICB0cmV0 ID0gZ2ltcGxpZnlfZXhwciAocCwgcHJlX3AsIHBvc3RfcCwgaXNfZ2ltcGxlX21pbl9sdmFsLA0K PiA+ICsJCQlmYWxsYmFjayB8IGZiX2x2YWx1ZSk7DQo+ID4gKw0KPiA+ICsgIHJldCA9IE1JTiAo cmV0LCB0cmV0KTsNCj4gPiArDQo+ID4gKw0KPiA+ICAgICBmb3IgKGkgPSBleHByX3N0YWNrLmxl bmd0aCAoKSAtIDE7IGkgPj0gMDsgaS0tKQ0KPiA+ICAgICAgIHsNCj4gPiAgICAgICAgIHRyZWUg dCA9IGV4cHJfc3RhY2tbaV07DQo+ID4gQEAgLTMwNzYsMTIgKzMwOTMsNiBAQCBnaW1wbGlmeV9j b21wb3VuZF9sdmFsICh0cmVlICpleHByX3AsIGdpbXBsZV9zZXEgKnByZV9wLCBnaW1wbGVfc2Vx DQo+ID4gKnBvc3RfcCwNCj4gPiAgIAl9DQo+ID4gICAgICAgfQ0KPiA+ICAgDQo+ID4gLSAgLyog U3RlcCAyIGlzIHRvIGdpbXBsaWZ5IHRoZSBiYXNlIGV4cHJlc3Npb24uICBNYWtlIHN1cmUgbHZh bHVlIGlzIHNldA0KPiA+IC0gICAgIHNvIGFzIHRvIG1hdGNoIHRoZSBtaW5fbHZhbCBwcmVkaWNh dGUuICBGYWlsdXJlIHRvIGRvIHNvIG1heSByZXN1bHQNCj4gPiAtICAgICBpbiB0aGUgY3JlYXRp b24gb2YgbGFyZ2UgYWdncmVnYXRlIHRlbXBvcmFyaWVzLiAgKi8NCj4gPiAtICB0cmV0ID0gZ2lt cGxpZnlfZXhwciAocCwgcHJlX3AsIHBvc3RfcCwgaXNfZ2ltcGxlX21pbl9sdmFsLA0KPiA+IC0J CQlmYWxsYmFjayB8IGZiX2x2YWx1ZSk7DQo+ID4gLSAgcmV0ID0gTUlOIChyZXQsIHRyZXQpOw0K PiA+ICAgDQo+ID4gICAgIC8qIEFuZCBmaW5hbGx5LCB0aGUgaW5kaWNlcyBhbmQgb3BlcmFuZHMg b2YgQVJSQVlfUkVGLiAgRHVyaW5nIHRoaXMNCj4gPiAgICAgICAgbG9vcCB3ZSBhbHNvIHJlbW92 ZSBhbnkgdXNlbGVzcyBjb252ZXJzaW9ucy4gICovDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL3ZsYS1zdGV4cHItMDEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZsYS1z dGV4cHItMDEuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAw MDAuLjI3ZTE4MTdlYjYzDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3ZsYS1zdGV4cHItMDEuYw0KPiA+IEBAIC0wLDAgKzEsOTQgQEANCj4gPiArLyog UFIyOTk3MCwgUFI5MTAzOCAqLw0KPiA+ICsvKiB7IGRnLWRvIHJ1biB9ICovDQo+ID4gKy8qIHsg ZGctb3B0aW9ucyAiLU8wIiB9ICovDQo+ID4gKw0KPiA+ICtpbnQgZm9vM2Iodm9pZCkgICAvLyBz aG91bGQgbm90IHJldHVybiAwDQo+ID4gK3sNCj4gPiArICAgICAgICBpbnQgbiA9IDA7DQo+ID4g KyAgICAgICAgcmV0dXJuIHNpemVvZiAqKHsgbiA9IDEwOyBpbnQgeFtuXTsgeDsgJng7IH0pOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQgZm9vNCh2b2lkKSAgIC8vIHNob3VsZCBub3QgSUNFDQo+ ID4gK3sNCj4gPiArICAgICAgICByZXR1cm4gKCooew0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgbiA9IDIwOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICgqeClb bl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgKCp4KVsxMl1bMV0gPSAxOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICB4Ow0K PiA+ICsgICAgICAgICAgICAgICAgfSkpWzEyXVsxXTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50 IGZvbzUodm9pZCkgICAvLyBzaG91bGQgcmV0dXJuIDEsIHJldHVybnMgMA0KPiA+ICt7DQo+ID4g KyAgICAgICAgaW50IG4gPSAwOw0KPiA+ICsgICAgICAgIHJldHVybiAoKih7DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgIG4gPSAyMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg Y2hhciAoKngpW25dW25dID0gX19idWlsdGluX21hbGxvYyhuICogbik7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICgqeClbMTJdWzFdID0gMTsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgKCp4KVswXVsxXSA9IDA7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHg7DQo+ ID4gKyAgICAgICAgICAgICAgICB9KSlbMTJdWzFdOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQg Zm9vNWModm9pZCkgICAvLyBzaG91bGQgcmV0dXJuIDQwMA0KPiA+ICt7DQo+ID4gKyAgICAgICAg aW50IG4gPSAwOw0KPiA+ICsgICAgICAgIHJldHVybiBzaXplb2YoKih7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgIG4gPSAyMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgY2hh ciAoKngpW25dW25dID0gX19idWlsdGluX21hbGxvYyhuICogbik7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICgqeClbMTJdWzFdID0gMTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgKCp4KVswXVsxXSA9IDA7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHg7DQo+ID4g KyAgICAgICAgICAgICAgICB9KSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludCBmb281Yih2b2lk KSAgIC8vIHNob3VsZCByZXR1cm4gMSwgcmV0dXJucyAwDQo+ID4gK3sNCj4gPiArCWludCBuID0g MDsNCj4gPiArICAgICAgICByZXR1cm4gKCooew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgbiA9IDIwOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICgqeClbbl1b bl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgKCp4KVsxMl1bMV0gPSAxOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzBd WzFdID0gMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgeDsNCj4gPiArICAgICAgICAg ICAgICAgIH0pKVsxMl1bMV07DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludCBmb281YSh2b2lkKSAg IC8vIHNob3VsZCByZXR1cm4gMSwgcmV0dXJucyAwDQo+ID4gK3sNCj4gPiArICAgICAgICByZXR1 cm4gKCooew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbiA9IDIwOw0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICBjaGFyICgqeClbbl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9j KG4gKiBuKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKCp4KVsxMl1bMV0gPSAxOw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzBdWzFdID0gMDsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgeDsNCj4gPiArICAgICAgICAgICAgICAgIH0pKVsxMl1bMV07DQo+ ID4gK30NCj4gPiArDQo+ID4gKw0KPiA+ICsNCj4gPiArDQo+ID4gK2ludCBtYWluKCkNCj4gPiAr ew0KPiA+ICsJaWYgKHNpemVvZihpbnRbMTBdKSAhPSBmb28zYigpKQ0KPiA+ICsJCV9fYnVpbHRp bl9hYm9ydCgpOw0KPiA+ICsNCj4gPiArCWlmICgxICE9IGZvbzQoKSkNCj4gPiArCQlfX2J1aWx0 aW5fYWJvcnQoKTsNCj4gPiArDQo+ID4gKwlpZiAoNDAwICE9IGZvbzVjKCkpDQo+ID4gKwkJX19i dWlsdGluX2Fib3J0KCk7DQo+ID4gKw0KPiA+ICsJaWYgKDEgIT0gZm9vNWEoKSkNCj4gPiArCQlf X2J1aWx0aW5fYWJvcnQoKTsNCj4gPiArDQo+ID4gKwlpZiAoMSAhPSBmb281YigpKSAvLyAtTzAN Cj4gPiArCQlfX2J1aWx0aW5fYWJvcnQoKTsNCj4gPiArDQo+ID4gKwlpZiAoMSAhPSBmb281KCkp DQo+ID4gKwkJX19idWlsdGluX2Fib3J0KCk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4g K30NCj4gPiArDQo+ID4gKw0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92 bGEtc3RleHByLTAyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92bGEtc3RleHByLTAyLmMNCj4g PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwLi45OWI0ZjU3MWU1 Mg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92bGEt c3RleHByLTAyLmMNCj4gPiBAQCAtMCwwICsxLDMxIEBADQo+ID4gKy8qIFBSMjk5NzAgKi8NCj4g PiArLyogeyBkZy1kbyBydW4gfSAqLw0KPiA+ICsvKiB7IGRnLW9wdGlvbnMgIiIgfSAqLw0KPiA+ ICsNCj4gPiArDQo+ID4gKw0KPiA+ICsNCj4gPiAraW50IGZvbzJhKHZvaWQpICAgLy8gc2hvdWxk IG5vdCBJQ0UNCj4gPiArew0KPiA+ICsgICAgICAgIHJldHVybiAoeyBpbnQgbiA9IDIwOyBzdHJ1 Y3QgeyBpbnQgeFtuXTt9IHg7IHgueFsxMl0gPSAxOyBzaXplb2YoeCk7IH0pOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICsjaWYgMA0KPiA+ICtpbnQgZm9vMmIodm9pZCkgICAvLyBzaG91bGQgbm90IElD RQ0KPiA+ICt7DQo+ID4gKyAgICAgICAgcmV0dXJuIHNpemVvZiAqKHsgaW50IG4gPSAyMDsgc3Ry dWN0IHsgaW50IHhbbl07fSB4OyB4LnhbMTJdID0gMTsgJng7IH0pOw0KPiA+ICt9DQo+ID4gKyNl bmRpZg0KPiA+ICsNCj4gPiAraW50IG1haW4oKQ0KPiA+ICt7DQo+ID4gKwlpZiAoc2l6ZW9mKHN0 cnVjdCB7IGludCB4WzIwXTsgfSkgIT0gZm9vMmEoKSkNCj4gPiArCQlfX2J1aWx0aW5fYWJvcnQo KTsNCj4gPiArI2lmIDANCj4gPiArCWlmIChzaXplb2Yoc3RydWN0IHsgaW50IHhbMjBdOyB9KSAh PSBmb28yYigpKQ0KPiA+ICsJCV9fYnVpbHRpbl9hYm9ydCgpOw0KPiA+ICsjZW5kaWYNCj4gPiAr CXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvdmxhLXN0ZXhwci0wMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmxh LXN0ZXhwci0wMy5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAw MDAwMC4uNjFmODk4NmVhYTMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvdmxhLXN0ZXhwci0wMy5jDQo+ID4gQEAgLTAsMCArMSw5NCBAQA0KPiA+ICsv KiBQUjI5OTcwLCBQUjkxMDM4ICovDQo+ID4gKy8qIHsgZGctZG8gcnVuIH0gKi8NCj4gPiArLyog eyBkZy1vcHRpb25zICItTzIiIH0gKi8NCj4gPiArDQo+ID4gK2ludCBmb28zYih2b2lkKSAgIC8v IHNob3VsZCBub3QgcmV0dXJuIDANCj4gPiArew0KPiA+ICsgICAgICAgIGludCBuID0gMDsNCj4g PiArICAgICAgICByZXR1cm4gc2l6ZW9mICooeyBuID0gMTA7IGludCB4W25dOyB4OyAmeDsgfSk7 DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludCBmb280KHZvaWQpICAgLy8gc2hvdWxkIG5vdCBJQ0UN Cj4gPiArew0KPiA+ICsgICAgICAgIHJldHVybiAoKih7DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGludCBuID0gMjA7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKCp4 KVtuXVtuXSA9IF9fYnVpbHRpbl9tYWxsb2MobiAqIG4pOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAoKngpWzEyXVsxXSA9IDE7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHg7 DQo+ID4gKyAgICAgICAgICAgICAgICB9KSlbMTJdWzFdOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtp bnQgZm9vNSh2b2lkKSAgIC8vIHNob3VsZCByZXR1cm4gMSwgcmV0dXJucyAwDQo+ID4gK3sNCj4g PiArICAgICAgICBpbnQgbiA9IDA7DQo+ID4gKyAgICAgICAgcmV0dXJuICgqKHsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgbiA9IDIwOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBjaGFyICgqeClbbl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgKCp4KVsxMl1bMV0gPSAxOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAoKngpWzBdWzFdID0gMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgeDsN Cj4gPiArICAgICAgICAgICAgICAgIH0pKVsxMl1bMV07DQo+ID4gK30NCj4gPiArDQo+ID4gK2lu dCBmb281Yyh2b2lkKSAgIC8vIHNob3VsZCByZXR1cm4gNDAwDQo+ID4gK3sNCj4gPiArICAgICAg ICBpbnQgbiA9IDA7DQo+ID4gKyAgICAgICAgcmV0dXJuIHNpemVvZigqKHsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgbiA9IDIwOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBj aGFyICgqeClbbl1bbl0gPSBfX2J1aWx0aW5fbWFsbG9jKG4gKiBuKTsNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgKCp4KVsxMl1bMV0gPSAxOw0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAoKngpWzBdWzFdID0gMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgeDsNCj4g PiArICAgICAgICAgICAgICAgIH0pKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50IGZvbzViKHZv aWQpICAgLy8gc2hvdWxkIHJldHVybiAxLCByZXR1cm5zIDANCj4gPiArew0KPiA+ICsJaW50IG4g PSAwOw0KPiA+ICsgICAgICAgIHJldHVybiAoKih7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgIGludCBuID0gMjA7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKCp4KVtu XVtuXSA9IF9fYnVpbHRpbl9tYWxsb2MobiAqIG4pOw0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAoKngpWzEyXVsxXSA9IDE7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICgqeClb MF1bMV0gPSAwOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICB4Ow0KPiA+ICsgICAgICAg ICAgICAgICAgfSkpWzEyXVsxXTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50IGZvbzVhKHZvaWQp ICAgLy8gc2hvdWxkIHJldHVybiAxLCByZXR1cm5zIDANCj4gPiArew0KPiA+ICsgICAgICAgIHJl dHVybiAoKih7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuID0gMjA7DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKCp4KVtuXVtuXSA9IF9fYnVpbHRpbl9tYWxs b2MobiAqIG4pOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAoKngpWzEyXVsxXSA9IDE7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICgqeClbMF1bMV0gPSAwOw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICB4Ow0KPiA+ICsgICAgICAgICAgICAgICAgfSkpWzEyXVsxXTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gKw0KPiA+ICsNCj4gPiAraW50IG1haW4oKQ0KPiA+ ICt7DQo+ID4gKwlpZiAoc2l6ZW9mKGludFsxMF0pICE9IGZvbzNiKCkpDQo+ID4gKwkJX19idWls dGluX2Fib3J0KCk7DQo+ID4gKw0KPiA+ICsJaWYgKDEgIT0gZm9vNCgpKQ0KPiA+ICsJCV9fYnVp bHRpbl9hYm9ydCgpOw0KPiA+ICsNCj4gPiArCWlmICg0MDAgIT0gZm9vNWMoKSkNCj4gPiArCQlf X2J1aWx0aW5fYWJvcnQoKTsNCj4gPiArDQo+ID4gKwlpZiAoMSAhPSBmb281YSgpKQ0KPiA+ICsJ CV9fYnVpbHRpbl9hYm9ydCgpOw0KPiA+ICsNCj4gPiArCWlmICgxICE9IGZvbzViKCkpIC8vIC1P MA0KPiA+ICsJCV9fYnVpbHRpbl9hYm9ydCgpOw0KPiA+ICsNCj4gPiArCWlmICgxICE9IGZvbzUo KSkNCj4gPiArCQlfX2J1aWx0aW5fYWJvcnQoKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4g PiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRn L3ZsYS1zdGV4cHItMDQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZsYS1zdGV4cHItMDQuYw0K PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAuLmZmYzhiMTJm YTliDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Zs YS1zdGV4cHItMDQuYw0KPiA+IEBAIC0wLDAgKzEsMzggQEANCj4gPiArLyogUFI5MTAzOCAqLw0K PiA+ICsvKiB7IGRnLWRvIHJ1biB9ICovDQo+ID4gKy8qIHsgZGctb3B0aW9ucyAiIiB9ICovDQo+ ID4gKw0KPiA+ICsNCj4gPiArI2RlZmluZSBBUlJBWV9TSVpFKHgpIChzaXplb2YoeCkgLyBzaXpl b2YoKHgpWzBdKSkNCj4gPiArDQo+ID4gK3N0cnVjdCBsYm0gew0KPiA+ICsNCj4gPiArCWludCBE Ow0KPiA+ICsJY29uc3QgaW50KiBEUTsNCj4gPiArDQo+ID4gK30gRDJROSA9IHsgMiwNCj4gPiAr CShjb25zdCBpbnQqKSYoY29uc3QgaW50WzldWzJdKXsNCj4gPiArCQl7IDAsIDAgfSwNCj4gPiAr CQl7IDEsIDAgfSwgeyAwLCAxIH0sIHsgLTEsIDAgfSwgeyAwLCAtMSB9LA0KPiA+ICsJCXsgMSwg MSB9LCB7IC0xLCAxIH0sIHsgLTEsIC0xIH0sIHsgMSwgLTEgfSwNCj4gPiArCX0NCj4gPiArfTsN Cj4gPiArDQo+ID4gK3ZvaWQgem91aGVfbGVmdCh2b2lkKQ0KPiA+ICt7DQo+ID4gKwlfX2F1dG9f dHlwZSB4eCA9ICgqKHsgaW50IE4gPSAyOyBzdHJ1Y3QgbGJtIF9feCA9IEQyUTk7ICgoY29uc3Qg aW50KCopWzldW05dKV9feC5EUSk7IH0pKTsNCj4gPiArDQo+ID4gKwlpZiAoMSAhPSB4eFsxXVsw XSkNCj4gPiArCQlfX2J1aWx0aW5fYWJvcnQoKTsNCj4gPiArDQo+ID4gKwlpZiAoMiAhPSBBUlJB WV9TSVpFKHh4WzFdKSkNCj4gPiArCQlfX2J1aWx0aW5fYWJvcnQoKTsNCj4gPiArfQ0KPiA+ICsN Cj4gPiAraW50IG1haW4oKQ0KPiA+ICt7DQo+ID4gKwl6b3VoZV9sZWZ0KCk7DQo+ID4gKwlyZXR1 cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gDQo=