From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 1901D3858C74 for ; Thu, 11 Aug 2022 13:26:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1901D3858C74 Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 27BCURor023407; Thu, 11 Aug 2022 13:26:56 GMT Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3huwqgmkhj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 11 Aug 2022 13:26:55 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 27BCegtk040693; Thu, 11 Aug 2022 13:26:54 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2102.outbound.protection.outlook.com [104.47.70.102]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3huwqgumsn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 11 Aug 2022 13:26:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NLfBzg1MUKL/f8fOFAsIBETkGlQHAKRSrxvJveIns9ncAD8FiQNYHN8jpf8G0IALyXCJ51kURtxsKXWfcUquy4teHA2meTrCDfJvJC4wWRHic7Bn39v+4SOX4wvew6ccKphP+sdhJeFoaKiID3Jws10pMxXDkt/o0YC/nTnQOY1ulM4tUWPY9d8Sj43UhZ1afcigTailjb7EhE9rG4AjElH5vwEMkTSIPqU3nC7W4k6d6G4nic7G29G5H5UuRhom2miJfN7e6za8OB5qBVEUhA4TMqW9vPvN3DS9IgnDRhIZyZuwiSYb3/IG2TksInMqQvL5GIj8o3NlGrRsDBV3Cw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fBno7uTk9oIrYY9v7pzVgursK+Ln27VjwIv/oj92akw=; b=hRf2AIkY6jjyVZW6hL/4hmrsAgYaFYkpznUsKxpQ+2EEA81UbPHYYoDip4sgtGycR1od1H1g/bD1zTmwd45dcj251kYljsC5h/+1d1WLHqsNz5D5U5tx/oeg6kD8Zk0VssyH+sb3SrrJDIihbsaGGmr4ibiyhbyw/tDatIyTaLDkh784pmRPj1FIQQOwsPrr3lejIeasjdtj1pbCRW3lFeHYz/qF2+ET4quujdQ6yjFTXHNqyizuT0ogL2jBmHNrq4Zr01n+bL6ke791fI25OYT8t+AvhfD8sggmtouHT80iW85xBxy6nSVSH+yH2NUZmyGR7OLWAeDU9o+BTstfXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by PH0PR10MB5514.namprd10.prod.outlook.com (2603:10b6:510:106::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.16; Thu, 11 Aug 2022 13:26:51 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::84af:9275:f1d7:de1]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::84af:9275:f1d7:de1%5]) with mapi id 15.20.5504.025; Thu, 11 Aug 2022 13:26:51 +0000 From: Qing Zhao To: Richard Biener CC: gcc-patches Subject: Re: [GCC13][Patch][PR106457]improve array_at_struct_end_p for array objects (PR106457) Thread-Topic: [GCC13][Patch][PR106457]improve array_at_struct_end_p for array objects (PR106457) Thread-Index: AQHYrVWyvu6Hl8CA5ES8tYmx0tiPAK2psVyA Date: Thu, 11 Aug 2022 13:26:51 +0000 Message-ID: <71C7EEA6-2D60-49F1-BB9C-8EDF98DEBAB6@oracle.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: db29b500-8ce1-4db5-35c0-08da7b9d26b3 x-ms-traffictypediagnostic: PH0PR10MB5514:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: a6qW5QYNw3EUS3WeazzUKB5N3XO/Ml7bbRWunFbiHKBbx5ri2lAVOLdbpBOO5A/vnxKVMdJ270oXaRwCOBrc3/dbMstQY8WCryyV7Z1eq4n+7ORt1Y0Jc9OSSQGPdgGAk0Cs6JqxjztGRNcZuxe+0g+TH91l8YR8Cy2DcuS2Qmx8EhVWwfIhjs8/7t3o/+BDodXvrofYVEf5U46HYW9yru0UP0KEYAbd2Sr4mPD6PWJq79grHu57j4LqfkSW9IPCbktvHAngYK0g688ujVPnOjM0a/ee2698v9efjAyHZk42/aafeRMKqy/d277snij2SivJ4QHVZos3OC6iyM6cFrPkPzWatHs0+Pd7qaCjt9letvo81Fr6Tt+2nNADWtai1K1qTD1NjuFjh/cHgU3mlwMkkH55n+KZHttyi8MFnE7hN+nALIL8tvWcvGuKIebCT5CXEpAvroM/fK8vAnOpxo8O3aIG/TxI4hpWdftksIb7MWgKyhzhRhY5WcMzu/48slt1qLOFsJRfDsvwPeA4ypwmYhWmaCc8GDxfcTNUpYiF5C5ShSYHMl8yvgGGYsaazuYksaiv+ZmpeO84Gl2IV9+MoFddVAZ4e5TAlAxMdO/2p9lRETvdX0f43roLIWiwKeEXv0DaGLdkKsgap0FgNdQW6ZZCQfnEJNd0/GmXyb++NUfOe6tOXtcuP15u+oD4wJF5vZN6F+2B8CF+oRwFokoDLIr/ygHQAtpl6TQgJt0oOqJo45SMBTwuhfjnpLBptXyyQxtnFxzLH9UnnSkHqF72Va/WGekUAB1zl6gci7pTAvVICOZoUNlYrXCa1nOTDrp07WHb8rgrj8ZfqvsrmCMZQjP1saUXaV3WKOzor9g= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR10MB4344.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(39860400002)(396003)(366004)(376002)(346002)(136003)(41300700001)(6506007)(84970400001)(2906002)(53546011)(316002)(2616005)(33656002)(6512007)(38070700005)(83380400001)(71200400001)(4326008)(8936002)(66946007)(66556008)(5660300002)(122000001)(38100700002)(66446008)(86362001)(186003)(76116006)(6486002)(8676002)(64756008)(6916009)(66476007)(36756003)(91956017)(478600001)(44832011)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WDA0OENHOWJEK0lFZkRURXdSK3ZEZ1h6MHVXYTZVdXI3N2tqU1JYdjVqRTM1?= =?utf-8?B?SWYxdXd4dWlvZlBIU2NTQjRTVlpFbVpCak53bmlldjgwb25ZSGYxdTdKeUtH?= =?utf-8?B?a05jQWdUSlpYSjdwa0doZFB2eWpUN2V1RmJCZjFnTW0zbGk3QkVvRDVFSUJa?= =?utf-8?B?K3YvcVBWajJIY01ZU3NrMnR4V1ovK1NPY09MblJsenMrZ1NSRkdwR0NPRGV3?= =?utf-8?B?dFBuQkFJRGVCQWt6WWZ0c29PelpFWitzMUhPRVpSK044NjUyU2xXRnlVaVJY?= =?utf-8?B?RWIwOWVIUVZsNGwyeEpQMEFjVGFZMEY0SHNjeFlWdHgvMUh3VjN4WkowcG9m?= =?utf-8?B?N21FVzhoeVpBTUt5Tzd6eUFBTFNlK1JiWHZZbkV1WU15SHk5c2lPbFZhYUJm?= =?utf-8?B?Q2p1V2lKZDFYRlp2YmZzcnFwNDk3R1lJU1ZmZXdKYjRSc09HVGFlYTYxeHoz?= =?utf-8?B?Uzc2MTZSV2FLY2tFdEQ0TFMrakY5YUwzTDhPUks5WWljWklPMjZhNGw4dE01?= =?utf-8?B?K1FPNmtpSjRGQzNDbXIwL0JpSGtNSjJKM3NjWHlpRTFqV2VFVmViYmp5YUZq?= =?utf-8?B?Z3NLYW1IdzVFbXh2RnNSejVoVlBKeVRHMmM2eHptbXVyL1BUYTVSNCt1ekMv?= =?utf-8?B?ZnZJOFRqZFVHNjg2SU1WS213MzFXTm1yTHdnTENwa09EbGh3RWc5ZUVnWXdm?= =?utf-8?B?RkRhaDBNeG1GanoyZFFQZm1xVzhvUndZVFYvYkRIMXI4eWhXQTNzMGF6Qk9l?= =?utf-8?B?ZXRvMHJhZ3VlWmxMMmZZNk93R0x4RGl0TkRsMDZFSEFSTUlKU3B0M1gvV2xZ?= =?utf-8?B?ajFQdWVoVTJNc3BlWVZ1Ukd0bXdXWFdUaVRQMk1Ub2JZUVA5NkhZV3pqelNs?= =?utf-8?B?eENZZnNrUUNkblpuaEFSZFFMcUpEYWRDQU1haGZLWCtzcE5iRWNlZnJETXNv?= =?utf-8?B?cC9GRGdDRzdvWVUydEZLdlhWMzFKN2lvYlV3VFBOQnJFK1J3WTd6cDROQXBP?= =?utf-8?B?KzJpZWZjYUREdkNic3dESFVrNm5HWjNxU0FJQS9qTzJlY0hZUjJjVGNNUEN3?= =?utf-8?B?eWszaWdScXEwS05Fci9xME8rQkJTOW5WVTNyR0lrais2UzZnQ2J6eFJPcG0w?= =?utf-8?B?V2ZXWXFMc1NnTmlvQ01KN1hESU8zWnBFcU9tc2MybEQwb2hxdUplVjBQU2di?= =?utf-8?B?VXU1cWoxT0s0bHJ0bjFmWXp1c3BqcUpRVDlUaGMyY3FmMnhTb0RBRElOM3dj?= =?utf-8?B?eSs3aFkvektqR1ZVTkh6UExCamFrY0QzMlJUOXNpTGVKRVJPNlNQL3ovUkFu?= =?utf-8?B?RExOOG1IaldONjdMc042QjQwM3pHY3RHM2JkVGdqOHR6VE9DcEVxZnNjcnlo?= =?utf-8?B?K3NTRnFMRGNQZUxBdytNK2htdlhPbUljZDVya1J4VlNyTHRxWmkyVVZSNGlV?= =?utf-8?B?V0hmekhUbHg2Y2lnNTRNQ3hNOFZJR0hlK3puVmNqZm9OaVhHT2VBdmpvTmVX?= =?utf-8?B?YkkzVEwvN2QwOVpUTGpBZ1NHR0ZQVDJZV01TeWt5UXY2NDVzRW9iTlU4RXdF?= =?utf-8?B?UWVkeFRlZDBiZVovSkQyNEMvV0MrdGRoemw5Z3c1ZXpmQ3dXZzVsU01wVFhD?= =?utf-8?B?RTV0L2tSVGpzajg0ZUQzMFpheEw5cG1rdkYzaU1jaE5aVkNLbTNXeld6Nm5Q?= =?utf-8?B?Z2NNd3pWb2dzdTVZQm9Rb1cyd0d4eWpHb3FkbmdibnU3aFVSQXRQUi9hbm4r?= =?utf-8?B?ek10MUQ3VWJ1U2lLMHg2bTk0cjRmZGppYzlDbVM2cHNqd3A5Mm5qMTAvditi?= =?utf-8?B?UFo5QitMOE5mZnhmcE9DRGJqQTBjL3U2ZVh0WTBITzU4bHpyYUxFZTlvZXpr?= =?utf-8?B?b2ZyUDg2ckY2K1ZFV2ZZQzVCY2laYlhTOUM1VzNoUXFiL0p3S3IvTTZPNWNR?= =?utf-8?B?V2ZCOWJrSHdQaE5iTDhUVk50N0tlQS9Kd2FpaDI2d1V6Z21tUFRESWNiUGR2?= =?utf-8?B?MnhScndPRzVaNnQwM2pHaU9KSnZDR05DTkdUN3pCQnJodFlNTnJKQk9tQUVC?= =?utf-8?B?OWxmWW9iYThnTUNXWjFYcmV2TERiakZsV0xaNW5iYjlDbSs5R0FDeVVCZVo1?= =?utf-8?B?UVJWck0rbkJzZFEyZVFxUURILzBhMEZzRXdWa0MrNytSWEY2aTNKdG5tK2o4?= =?utf-8?Q?CkOdwZHh4AtBYstLXgX+hx4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: db29b500-8ce1-4db5-35c0-08da7b9d26b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2022 13:26:51.5082 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: wYZJ9S90Z5THUwXQMYtCNLAaPBpgixGz1BEu7lz865Ic7b2tnbqcJeVhzYxA7RVmmI+zuAwqZjFh80gChba4cQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB5514 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-08-11_10,2022-08-11_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 phishscore=0 adultscore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2207270000 definitions=main-2208110043 X-Proofpoint-GUID: 7cuJIuQL__vMssWWRfnrEpKFBy55z-vf X-Proofpoint-ORIG-GUID: 7cuJIuQL__vMssWWRfnrEpKFBy55z-vf X-Spam-Status: No, score=-5.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, 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 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: Thu, 11 Aug 2022 13:27:00 -0000 DQoNCj4gT24gQXVnIDExLCAyMDIyLCBhdCAzOjQwIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gV2VkLCAxMCBBdWcgMjAyMiwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IEhpLA0KPj4gDQo+PiBBcyBtZW50aW9uZWQgaW4gdGhlIGJ1ZyByZXBv cnQsIEkgcmVvcGVuZWQgdGhpcyBidWcgc2luY2UgdGhlIHByZXZpb3VzIHBhdGNoOg0KPj4gDQo+ PiBjb21taXQgcjEzLTE4NzUtZ2ZmMjZmMGJhNjhmZTZlODcwZjMxNWQwNjAxYjU5NmY4ODliODk2 ODANCj4+IEF1dGhvcjogUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPj4gRGF0 ZTogICBUaHUgSnVsIDI4IDEwOjA3OjMyIDIwMjIgKzAyMDANCj4+IA0KPj4gICAgbWlkZGxlLWVu ZC8xMDY0NTcgLSBpbXByb3ZlIGFycmF5X2F0X3N0cnVjdF9lbmRfcCBmb3IgYXJyYXkgb2JqZWN0 cw0KPj4gICAgQXJyYXkgcmVmZXJlbmNlcyB0byBhcnJheSBvYmplY3RzIGFyZSBuZXZlciBhdCBz dHJ1Y3QgZW5kLg0KPj4gDQo+PiANCj4+IERpZG7igJl0IHJlc29sdmUgdGhpcyBidWcuDQo+PiAN Cj4+IFRoaXMgaXMgYSBuZXcgcGF0Y2gsIGFuZCBteSBjdXJyZW50IHdvcmsgb24gLWZzdHJpY3Qt ZmxleC1hcnJheSBkZXBlbmRzIG9uIHRoaXMgcGF0Y2guDQo+PiANCj4+IFBsZWFzZSB0YWtlIGEg bG9vayBhdCB0aGUgcGF0Y2ggYW5kIGxldCBtZSBrbm93IHdoZXRoZXIgaXTigJlzIGdvb2QgZm9y IGNvbW1pdHRpbmcuDQo+PiANCj4+IFRoYW5rcy4NCj4+IA0KPj4gUWluZy4NCj4+IA0KPj4gDQo+ PiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPj4gDQo+PiBbUEFUQ0hd IG1pZGRsZS1lbmQvMTA2NDU3IC0gaW1wcm92ZSBhcnJheV9hdF9zdHJ1Y3RfZW5kX3AgZm9yIGFy cmF5DQo+PiBvYmplY3RzIChQUjEwNjQ1NykNCj4+IA0KPj4gQXJyYXkgcmVmZXJlbmNlcyBhcmUg bm90IGhhbmRsZWQgY29ycmVjdGx5IGJ5IGN1cnJlbnQgYXJyYXlfYXRfc3RydWN0X2VuZF9wLA0K Pj4gZm9yIHRoZSBmb2xsb3dpbmcgYXJyYXkgcmVmZXJlbmNlczoNCj4+IA0KPj4gRXhhbXBsZSAx OiAoZnJvbSBnY2MvdGVzdHN1aXRlL2djYy5kZy90b3J0dXJlL3ByNTAwNjctWzF8Ml0uYyk6DQo+ PiANCj4+IHNob3J0IGFbMzJdID0geyAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwg MTEsIDEyLCAxMywgMTQsIDE1LCAxNiwNCj4+ICAgICAgICAgICAgICAgICAxNywgMTgsIDE5LCAy MCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxIH07DQo+PiAuLi4g PSAoKigoY2hhcigqKVszMl0pJmFbMF0pKVtpKzhdOyAgLy8gdGhpcyBhcnJheSByZWZlcmVuY2UN Cj4gDQo+IEZvciB0aGlzIG9uZSB3ZSBoYXZlDQo+IA0KPiAoZ2RiKSBwIGRlYnVnX2dlbmVyaWNf ZXhwciAocmVmX3RvX2FycmF5KQ0KPiBNRU1bKGNoYXJbMzJdICopJmFdDQo+IA0KPiBhdCB0aGUN Cj4gDQo+IDEyNzgyICAgICAgICAgaWYgKERFQ0xfUCAocmVmX3RvX2FycmF5KSkNCj4gDQo+IGNo ZWNrLiAgVGhlIGFycmF5IHJlZmVyZW5jZWQgKGNoYXJbMzJdKSBpc24ndCB0aGUgZGVjbCAod2hp Y2ggaXMgDQo+IHNob3J0WzMyXSksIHNvIHRoZSByZWZlcmVuY2VkIGFycmF5IChjaGFyWzMyXSkg X2lzXyBhdCBzdHJ1Y3QgZW5kDQo+IHNpbmNlIGFjY2Vzc2luZyBpbmRleCA0OCBpcyBPSyAtIGl0 IHdvbid0IGV4Y2VlZCB0aGUgZGVjbCBib3VuZGFyeS4NCg0KPiBJbiBmYWN0IHRoYXQgLVdhZ2dy ZXNzaXZlLWxvb3Atb3B0aW1pemF0aW9ucyB0cmlnZ2VycyB3aXRoIHlvdXINCj4gcGF0Y2ggc2hv d3MgaXQgaXMgd3JvbmcgaW4gdGhpcyBjYXNlIC0gdGhlIGNvZGUgaXMgcGVyZmVjdGx5DQo+IE9L LCBubyBvdXQtb2YtYm91bmQgYWNjZXNzIG9jY3Vycy4gIFdoZW4gdGhpcyB3YXJuaW5nIHRyaWdn ZXJzIGl0DQo+IGhpbnRzIGF0IHRoZSBjb2RlIGJlaW5nIG1pc2NvbXBpbGVkICh3ZSB1c3VhbGx5 IGVsaWRlIHRoZSBleGl0DQo+IHRlc3QpLg0KDQpPa2F5LCBJIHNlZS4gDQo+IA0KPj4gRXhhbXBs ZSAyOiAoZnJvbSBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC92YWRkX3JlZHVjLTIu Yyk6DQo+PiANCj4+IGludCB0ZXN0ICh1aW50OF90ICpwLCB1aW50MzJfdCB0WzFdWzFdLCBpbnQg bikgew0KPj4gIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrLCBwKyspDQo+PiAgICB0W2ldWzBd ID0gLi4uOyAgLy8gdGhpcyBhcnJheSByZWZlcmVuY2UNCj4+IC4uLg0KPj4gfQ0KPiANCj4gVGhl IHBhcmFtZXRlciBkZWNsYXJhdGlvbiB1aW50MzJfdCB0WzFdWzFdIGRvZXNuJ3QgZ3VhcmFudGVl DQo+IGFueXRoaW5nIC0gaXQncyBqdXN0IGEgcG9pbnRlci4gIFNvIHdlIGNhbm5vdCByZWFzb25h Ymx5DQo+IGNvbnN0cmFpbiBhY2Nlc3NlcyB0byBzaXplb2YodWludDMyX3QpLiAgVGhhdCBtZWFu cw0KPiBhcnJheV9hdF9zdHJ1Y3RfZW5kX3AgaGFzIHRvIHJldHVybiB0cnVlLg0KDQpPa2F5LiAg VGhlbiBhZ2FpbiwgdGhlIG5hbWUgb2YgdGhlIHJvdXRpbmUg4oCcYXJyYXlfYXRfc3RydWN0X2Vu ZF9w4oCdIGlzIHJlYWxseSBjb25mdXNpbmcuIC06KQ0KPiANCj4+IEV4YW1wbGUgMzogKGZyb20g Z2NjL3Rlc3RzdWl0ZS9nKysuZGcvZGVidWcvZGVidWc1LkMpOg0KPj4gDQo+PiAgaW50IGEgPSAx Ow0KPj4gIGludCBiID0gMTsNCj4+ICBpbnQgZVthXVtiXTsNCj4+ICBlWzBdWzBdID0gMDsgIC8v IHRoaXMgYXJyYXkgcmVmZXJlbmNlDQo+IA0KPiBUaGF0IG1pZ2h0IGJlIHRoZSBvbmx5IGNhc2Ug d2UnZCBiZSBhbGxvd2VkIHRvIHNheSBmYWxzZS4gIEkgc2VlDQo+IGEgc2luZ2xlIGNhbGwgd2l0 aA0KPiANCj4gTUVNWyhpbnRbMDpELjE5ODldWzA6RC4xOTg2XSAqKSZlLjRdWzBde2xiOiAwIHN6 OiA0fQ0KPiANCj4gdGhhdCBpcywgdGhlIGNhbGxlciBoYXMgc3RyaXBwZWQgdGhlIG91dGVybW9z dCBbMF0gYWxyZWFkeS4NCj4gVGhlIGlzc3VlIGhlcmUgaXMgdW5mb3J0dW5hdGUgbG93ZXJpbmcg b2YgdGhlIGFsbG9jYQ0KPiB3aXRoIGNvbnN0YW50IHNpemUgd2Ugb3JpZ2luYWxseSBoYXZlIGhl cmUuICBUaGUgYXJyYXkgdHlwZWQNCj4gZGVjbCBoYXMgdHlwZSBpbnRbMV0gYnV0IHdlIGFjY2Vz cyBpdCB3aXRoIHR5cGUNCj4gaW50WzA6RC4xOTg5XVswOkQuMTk4Nl0uICBXZSdkIG5vdyBoYXZl IHRvIHByb3ZlIHRoYXQNCj4gRC4xOTg5IGFuZCBELjE5ODYgYXJlICcxJyAoYW5kIG5vdCBsZXNz KS4gIFRoYXQgZG9lc24ndCBsb29rDQo+IHBvc3NpYmxlIGluIGdlbmVyYWwuICBOb3Qgc3VyZSBp ZiBpdCBpcyB3b3J0aCB0aGUgdHJvYmJsZSBoZXJlLg0KDQpPa2F5LiANCj4gDQo+IEV2ZW50dWFs bHkgYXJyYXlfYXRfc3RydWN0X2VuZF9wIGlzbid0IHRoZSBjb3JyZWN0IHZlaGljbGUgZm9yDQo+ IGRpYWdub3N0aWNzIGlmIHlvdSBkZXNwYXJhdGVseSBuZWVkIHRvIGF2b2lkICd0cnVlJyBmb3Ig dGhlIGFib3ZlDQo+IGNhc2VzLiAgTm90ZSBmb3IgdGhlIGZpcnN0IGNhc2UgaXQncyBtb3JlIGFi b3V0IHRyZWF0aW5nDQo+IHBvaW50ZXIgdG8gYXJyYXkgd2l0aCBib3VuZHMgaW4gYSBzdHJpY3Rl ciB3YXkgdGhhbiB3ZSBkbw0KPiBhdCB0aGUgbW9tZW50LCBub3Qgc28gbXVjaCBhYm91dCBhcnJh eXMgYXQgc3RydWN0IGVuZC4gIEJ1dA0KPiBhcnJheV9hdF9zdHJ1Y3RfZW5kX3AgaXMgdXNlZCB0 byBxdWVyeSB3aGV0aGVyIHdlIGhhdmUgdG8gYXNzdW1lDQo+IHRoZXJlJ3Mgc3RvcmFnZSBiZXlv bmQgdGhlIGRlY2xhcmVkIGJvdW5kIG9mIGFuIGFycmF5IHRoYXQgaXMNCj4gInZhbGlkIiB0byBh Y2Nlc3MgKGFuZCBpdCdzIHZhbGlkIGZyb20gdGhlIG1pZGRsZS1lbmQgcG9pbnQgb2YNCj4gdmll dyBpbiB0aGlzIGNhc2UpLg0KDQpUaGVuLCB0aGlzIGlzIHJlYWxseSBOT1Qg4oCcYXJyYXlfYXRf c3RydWN0X2VuZF9w4oCdLCBpdOKAmXMg4oCcYXJyYXlfaXNfZmxleGlibGVfcOKAnSwgd2hpY2gg bWl4ZXMgdGhlIGNvbmNlcHQgb2Yg4oCcYXJyYXlfYXRfc3RydWN0X2VuZOKAnSBhbmQgYXJyYXkg aXMgZmxleGlibGUgKG9yIGV4dGVuZGFibGUpLg0KSSBhbSBPa2F5IHdpdGggdGhlIG5hbWUgcmln aHQgbm93IGluIHRoaXMgcGF0Y2gsIEkgd2lsbCB1cGRhdGUgdGhlIGNvbW1lbnRzIG9mIHRoaXMg cm91dGluZSBpbiB0aGUgY3VycmVudCBwYXRjaC4gQW5kIHVwZGF0ZSB0aGUgbmFtZSBvZiB0aGUg cm91dGluZSBpbiBhIGxhdGVyIGNsZWFudXAgcGF0Y2guDQoNCg0KU2luY2UgdGhlIG5ldyBGSUVM RCBERUNMX05PVF9GTEVYQVJSQVkgZm9yIHRoZSBwYXRjaCAtZnN0cmljdC1mbGV4LWFycmF5czoN Cg0KKy8qIFVzZWQgaW4gYSBGSUVMRF9ERUNMIHRvIGluZGljYXRlIHdoZXRoZXIgdGhpcyBmaWVs ZCBpcyBub3QgYSBmbGV4aWJsZQ0KKyAgIGFycmF5IG1lbWJlci4gICovDQorI2RlZmluZSBERUNM X05PVF9GTEVYQVJSQVkoTk9ERSkgXA0KKyAgKEZJRUxEX0RFQ0xfQ0hFQ0sgKE5PREUpLT5kZWNs X2NvbW1vbi5kZWNsX25vdF9mbGV4YXJyYXkpDQorDQoNCklzIE9OTFkgZm9yIGZpZWxkIGluIGEg c3RydWN0dXJlLCBzbyBpdCB3aWxsIE5PVCBjb250cm9sIHRoZSByZXN1bHQgZm9yIHN1Y2ggZmxl eGlibGUgYXJyYXkgYWNjZXNzLiAgaS5lLCBmb3IgYWxsIHRoZSBmbGV4aWJsZSBhcnJheSBhY2Nl c3Mgc2ltaWxhciBhcyBpbiB0aGUgRXhhbXBsZSAxLCAyLCBvciAzLCANClRoZXkgYXJlIGFsd2F5 cyBmbGV4aWJsZSwgIC1mc3RyaWN0LWZsZXgtYXJyYXlzIHNob3VsZCBOT1QgY29udHJvbCB0aGVt LCByaWdodD8NCg0KVGhhbmtzDQoNClFpbmcNCg0KPiANCj4gUmljaGFyZC4NCj4gDQo+PiBBbGwg dGhlIGFib3ZlIGFycmF5IHJlZmVyZW5jZXMgYXJlIGlkZW50aWZpZWQgYXMgVFJVRSBieSB0aGUg Y3VycmVudA0KPj4gYXJyYXlfYXRfc3RydWN0X2VuZF9wLCB0aGVyZWZvcmUgdHJlYXRlZCBhcyBm bGV4aWJsZSBhcnJheSBtZW1iZXJzLg0KPj4gT2J2aW91c2x5LCB0aGV5IGFyZSBqdXN0IHNpbXBs ZSBhcnJheSByZWZlcmVuY2VzLCBub3QgYW4gYXJyYXkgcmVmcw0KPj4gdG8gdGhlIGxhc3QgZmll bGQgb2YgYSBzdHJ1dHVyZS4gVGhlIGN1cnJlbnQgYXJyYXlfYXRfc3RydWN0X2VuZF9wIGhhbmRs ZXMNCj4+IHN1Y2ggYXJyYXkgcmVmZXJlbmNlcyBpbmNvcnJlY3RseS4NCj4+IA0KPj4gSW4gb3Jk ZXIgdG8gaGFuZGxlIGFycmF5IHJlZmVyZW5jZXMgY29ycmVjdGx5LCB3ZSBjb3VsZCByZWN1cnNp dmVseSBjaGVjaw0KPj4gaXRzIGZpcnN0IG9wZXJhbmQgaWYgaXQncyBhIE1FTV9SRUYgb3IgQ09N UE9ORU5UX1JFRiBhbmQgc3RvcCBhcyBGQUxTRQ0KPj4gd2hlbiBvdGhlcndpc2UuIFRoaXMgcmVz b2x2ZWQgYWxsIHRoZSBpc3N1ZXMgZm9yIEFSUkFZX1JFRi4NCj4+IA0KPj4gYm9vdHN0cmFwcGVk IGFuZCByZWdyZXNzaW9uIHRlc3RlZCBvbiBib3RoIFg4NiBhbmQgQWFyY2g2NC4NCj4+IE11bHRp cGxlIHRlc3RpbmcgY2FzZXMgYmVoYXZlIGRpZmZlcmVudGx5IGR1ZSB0byBhcnJheV9hdF9zdHJ1 Y3RfZW5kX3Agbm93DQo+PiBiZWhhdmUgY29ycmVjdGx5IChyZXR1cm4gRkFMU0Ugbm93LCB0aGVu IHRoZXkgYXJlIG5vdCBmbGV4aWJsZSBhcnJheSBtZW1iZXINCj4+IGFueW1vcmUpLiBBZGp1c3Qg dGhlc2UgdGVzdGluZyBjYXNlcy4NCj4+IA0KPj4gVGhlcmUgaXMgb25lIHJlZ3Jlc3Npb24gZm9y IGdjYy90YXJnZXQvYWFyY2g2NC92YWRkX3JlZHVjLTIuYyBpcyBsZWZ0DQo+PiB1bnJlc29sdmVk IHNpbmNlIHRoZSBsb29wIHRyYW5zZm9ybWF0aW9uIGlzIGNoYW5nZWQgZHVlIHRvIHRoZSBjaGFu Z2VkIGJlaGF2aW9yDQo+PiBvZiBhcnJheV9hdF9zdHJ1Y3RfZW5kX3AsIHNpbXBsZSBhZGp1c3Rt ZW50IG9mIHRoZSB0ZXN0aW5nIGNhc2UgZG9lc250IHdvcmsuDQo+PiBJIHdpbGwgZmlsZSBhIGJ1 ZyB0byByZWNvcmQgdGhpcyByZWdyZXNzaW9uLg0KPj4gDQo+PiBnY2MvQ2hhbmdlTG9nOg0KPj4g DQo+PiAgICAgICAgUFIgbWlkZGxlLWVuZC8xMDY0NTcNCj4+ICAgICAgICAqIHRyZWUuY2MgKGFy cmF5X2F0X3N0cnVjdF9lbmRfcCk6IEhhbmRsZSBhcnJheSBvYmplY3RzIHJlY3Vyc2l2ZWx5DQo+ PiAgICAgICAgdGhyb3VnaCBpdHMgZmlyc3Qgb3BlcmFuZC4NCj4+IA0KPj4gZ2NjL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6DQo+PiANCj4+ICAgICAgICBQUiBtaWRkbGUtZW5kLzEwNjQ1Nw0KPj4gICAg ICAgICogZ2NjLmRnL3RvcnR1cmUvcHI1MDA2Ny0xLmM6IEFkZCAtV25vLWFnZ3Jlc3NpdmUtbG9v cC1vcHRpbWl6YXRpb25zDQo+PiAgICAgICAgdG8gc3VwcHJlc3Mgd2FybmluZ3MuDQo+PiAgICAg ICAgKiBnY2MuZGcvdG9ydHVyZS9wcjUwMDY3LTIuYzogTGlrZXdpc2UuDQo+PiAgICAgICAgKiBn Y2MudGFyZ2V0L2FhcmNoNjQvdmFkZF9yZWR1Yy0yLmM6IExpa2V3aXNlLg0KPj4gICAgICAgICog Z2NjLnRhcmdldC9pMzg2L3ByMTA0MDU5LmM6IExpa2V3aXNlLg0KPj4gDQo+PiANCj4+IFRoZSBj b21wbGV0ZSBwYXRjaCBpcyBhdDoNCj4+IA0KPj4gDQo+PiANCj4gDQo+IC0tIA0KPiBSaWNoYXJk IEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdl cm1hbnkgR21iSCwgRnJhbmtlbnN0cmFzc2UgMTQ2LCA5MDQ2MSBOdWVybmJlcmcsDQo+IEdlcm1h bnk7IEdGOiBJdm8gVG90ZXYsIEFuZHJldyBNeWVycywgQW5kcmV3IE1jRG9uYWxkLCBCb3VkaWVu IE1vZXJtYW47DQo+IEhSQiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KDQo=