From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 300FC386F0CE for ; Thu, 30 Jun 2022 15:31:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 300FC386F0CE Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25UEqHaH020594; Thu, 30 Jun 2022 15:31:03 GMT Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3gwsysmk66-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 30 Jun 2022 15:31:03 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 25UFAx3C023041; Thu, 30 Jun 2022 15:31:02 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3gwrta4a75-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 30 Jun 2022 15:31:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RrB5QtzFw3oP5qS4rIIPL/+Y1tm7ULx3pPBk8ySGyA1D3CVRiXsn5qtKrdlrF209/bXJXnzRfQn6BXicHW3okwpIJoYwyw6gyf8z6MgJJ9lPwmxq1icGxEpxoWfYhSZNy1T90A78Gn+vymI8T1R9Y5k1jMq/xIvgmVg13TGz1mfd9Mvl/86GOW0t2JRJ+Qui7z48fiD2QxCr5DZgjANRHQ6OCc6Z6BLsGfzrWNVpBlisEHUjX/9rwtC9fK3tY3B2yaVR5hBv57nPVzKq9VWfBHdjp4BHo45T1ePrHzM07x9CC8BV3k7nFqVl0Ge6EOHvuJca+Cn5ghxAC/GXM70AkA== 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=lDMQfuqGPLHiR2s5fYMTmtjtT/wcwqM6z0rrpBktyCU=; b=c2S13k3r0DgTjFftUFpqOs6sdFqTfTusj4lfmcCSkmE78pvpITfyY+R9AC68J6WX6pE7XfSPqVJTv2i4iWi5ctD92Jxy5fzJBrKbLr+7BzhAlLhV/UPr2mv0+cUi+IisZckxnM8mbyjefzRM2Z2hCXIxHxmtszerU+WlV4V3r6Y5fbr0WeKqjyNPVpOwVG/ovDefSnZFn4whSD4JC4eiAmjAigLIhidFGw/x1OtRhOpOpxe5nMp8WBk3Ylpxn0lYnFzzgEELj5zLaKwpexKnJA51+1OSwB8RMSU0q9z2UXOyeRnjQsGuxnrRyYywHwe9KB1BZR8Veg86HEoI0wEBPw== 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 MN2PR10MB4349.namprd10.prod.outlook.com (2603:10b6:208:1d4::9) by CO1PR10MB4801.namprd10.prod.outlook.com (2603:10b6:303:96::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Thu, 30 Jun 2022 15:31:00 +0000 Received: from MN2PR10MB4349.namprd10.prod.outlook.com ([fe80::3c70:77df:d9fb:b484]) by MN2PR10MB4349.namprd10.prod.outlook.com ([fe80::3c70:77df:d9fb:b484%8]) with mapi id 15.20.5395.014; Thu, 30 Jun 2022 15:31:00 +0000 From: Qing Zhao To: Richard Biener CC: Martin Sebor , Jakub Jelinek , gcc-patches Paul A Clarke via , kees Cook Subject: Re: [GCC 13][PATCH] PR101836: Add a new option -fstrict-flex-array[=n] and use it in __builtin_object_size Thread-Topic: [GCC 13][PATCH] PR101836: Add a new option -fstrict-flex-array[=n] and use it in __builtin_object_size Thread-Index: AQHYijDoIYnVra++TU2IvHpSLMV5Da1kaY2AgACCboCAAAGbgIAADheAgAAMVgCAABnUgIAAAcsAgAAB2wCAAAW8AIAAA0aAgAG3owCAARsNgIAABKwAgAASjoA= Date: Thu, 30 Jun 2022 15:31:00 +0000 Message-ID: References: <6CB6B076-0635-4DE8-861E-F8EBC0B696B4@gmail.com> In-Reply-To: <6CB6B076-0635-4DE8-861E-F8EBC0B696B4@gmail.com> 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: 42a15cf5-1caf-44e7-bb37-08da5aad894b x-ms-traffictypediagnostic: CO1PR10MB4801:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WONlRPKw3Nwv9APgCs2jq1brwxxL16JKttCM4udQDTwKvQjKjT6lVv/swkLm4O/wMcnY117XvOTBzhpG9Dm3FFEV0c6KmTfxfOV1PFfzR0rlIQMY5OPeMJtp+uecCn1DxanxTg0vDfhHAj5/4IO0+8rS+8Oou373YvuxvSoV6aTsGw2dK8o1O6YrkBPnuIU37xQl+80OtGwfeqdZ4sHTl/M1K3NZyiBUm7BkrEzdOOlSc9Q4OCfnkBuHpoO7MxDlOKvSV9QSHMqDiDvIPxisXtv5ug02OpJjBn7t82IafP/wilKNsHvcbb0joMOBOmxCDT0PkyPTVmZ3Qn7O886Xnjmgpc0y4LaihbRZDybV1ZXLRU0Iy7ZSJohnRbe1QrdewXMrahlxAlCDRWMjhecrhVR4kmxOpzWymp5sF5HG80LwcApf0dxv+nfIl9wrzhOGwBnn6ml6A+wPOuC3RZZuz+6PE8wQkniSjshiKB9d6hwEehdFyS2wrwO9XGgMRBz/9YbmdS/Dt+BnkV65NOWpd6frLC0faIJulJclMM/AzhfOYcNkOGrXMzbMaF1GM5+L5vUgQ05hPfTeWDYdnX995zYwGJMdrDZ8C1tpJVTWg3qJYoYPALrk8fVjfAfeTx8a/ayYhFQQOh9M3jgfY/ZFqjYTmOGGrZKGYBqdNlkx2l+F9a1i1ERPNIKEl6dK+Ulz8MczqDXGOe4t6yeHXhNQwuYcdeyQiaodWM5vJLyCo7fYLemrzsmQKb+Hz8Yyf245b12pH2CQsHUxCM5MTL+Q1Q19em1vjfcXAlTxCd6tRUejz9m+XUrqRUlKkMn12OU4YynUNXEdmVtg74SKKlj30qSEv5j9Rw9jYnScYAQmYK8= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB4349.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(396003)(366004)(346002)(136003)(39860400002)(376002)(38070700005)(33656002)(86362001)(38100700002)(122000001)(2906002)(8936002)(5660300002)(44832011)(41300700001)(316002)(6506007)(53546011)(478600001)(6486002)(91956017)(66446008)(66476007)(4326008)(66556008)(64756008)(54906003)(6916009)(186003)(66946007)(83380400001)(6512007)(76116006)(2616005)(36756003)(8676002)(71200400001)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VVJ2ZitJRHVzVUJlVEhZWnQ5NWhUTUl6UUVrVnYrK2xZNWtoWUpDZW5MbytR?= =?utf-8?B?d09RSkdKNXB1aUZBRmdvUTdGNWVUTXJEUTAxajRtYXFIcVlpMEV6Nno0N1Fj?= =?utf-8?B?TGt0VjVBMGI4SGVpSzg3azIxclNTeHd0Z1RhUWZySUFSVjNEeThWNzI0WEt4?= =?utf-8?B?QWQva0MzTElIZnJXQnI4dGg2TFZONW94T0lXd1VjbnJ4aTJhS28rSVNjODU3?= =?utf-8?B?ZjhDQ0NEcnhZSnE1TUlkQlJ4UTQrZ09Xdy90VVc3S04rTnE5YURueittOGVu?= =?utf-8?B?Si9WZXh5d3BFODdraGFnRndkbDErNU14RjhNaWM5ZTcxcm5QQ2FDaG1KMkVQ?= =?utf-8?B?dGJVZkpycXNpUlorYjdQZ3dXQ2pkTHRMRkd4UXFTVTl6SCsvS2NkM2hvalg4?= =?utf-8?B?Y1EyYzhaL2lrbUo4L0l6a0pQbEF2NjU2Z0locHFmVG5sbmt5cGRzd2ZPMW5R?= =?utf-8?B?d2hMMVBBVHJZK2orS25FMUdtRG5oWlpWdW5kWURuZ3R3dTNyeXRDVFN2MnJB?= =?utf-8?B?cFZhQVNaK0JXbUlLMVJWL2JuWW0wYnVIYUtvRFQ4RmhxMVlRbmhkci82VTIw?= =?utf-8?B?czhqWld3Y1JRQVhmSGQ2R3hHYVAvc3BQS2tjNVg3Zkt6NVdORHlHS2FBMm9t?= =?utf-8?B?aDdDSDRqNTFDVmVqZnVaY1lDK205Q3c0d0c1NXhKemhtY3FWT2pNcnN0eUlx?= =?utf-8?B?SmJ0MzZVZlJnMHRlQk91UWNGOGJubG05UkoxVmhSTnpqS0JPbXZEbGJnR2NT?= =?utf-8?B?RE9WZWY5dGRjOFV0OGVyZmdQdHg0R1JnWnBCZmFvc0pmRGppMU9NTWMxUW1r?= =?utf-8?B?blhTVVVHRkVUbmEvVmVmMWd3VWRoZ1MvR0UyM3Y0WGFOWWFITGIzeXZMT3Vq?= =?utf-8?B?Y3dYOHhmMi9DTThSSElHUnBqVUFiUkhWUU9WYTA4Z0xZUnNHRldvMjBGdmVF?= =?utf-8?B?Q0hDeVpEVWl4NmJhQXp4OTBqcU50NkMwN0tFYUZkK09PNWVKaTV1anIyOTg1?= =?utf-8?B?MlRtSStnUTFSVVh0ZzkyY2c2SWxDc05WRGlzWEZ0Nlp6YVowdloyOTVvMSs0?= =?utf-8?B?cDdPSDNCaEpselQvc3d0MlNHWFVFQnJIa1FxZk8ycWQwZnBTTWFZOVJUaUY2?= =?utf-8?B?VHVsK3Jqc2xvbm1TU0hTS2traWdRUUJrZ0xpcDhpOWxmT2R3djJRYmxDTDFW?= =?utf-8?B?ckwzZlZyRktDRUVvcnhRRXBUZFhBVjZqMWZ6Ny9RdE5JdlVCNWtNdkxvYkts?= =?utf-8?B?MGFRbFJwYTBRVTlyQXZEV2c3dnBrQXpKWTUrUldtM20yKzhiYlgzZXU5RHFQ?= =?utf-8?B?MFZJZXEwdkgvcGdpWTBDWGJIQ2FnKzE3ODNabGQ1UDRIK0RHZUpEb0dpRlcy?= =?utf-8?B?V0xMcFFZbG8wOGcxbEVuZ2doU3VrdXZzMWFzNDZQRVM5N0pSMTRyMFU0ekFS?= =?utf-8?B?cEhPVFRRNUtYMGc4T0cwVHk1WFlYeVd3SXAweDVZL3dGT2kxb1VUU1BkMWJO?= =?utf-8?B?aytoNlBpODVqQ3BScWhYTEdIa1E5ZkU3UEdFczVpcWJweDlyZXN4Z2JaREJ5?= =?utf-8?B?UVZvUmppWnFncnBZUHMzVFlGdnR4S0NNOE1Qb2tWUlQvSUFXbXVCQVJwZjlU?= =?utf-8?B?ZzFYU20wdlZUWm5ySlZJaXZncDB3NDRwR21ZZjRMVGZyVXFmanRySXFqdGlk?= =?utf-8?B?Ymg1RnFMUzd0ZURlRGZwYy8weFkzMW1IZUc0c0pOQy9WTmhENFk3QlB2Z3BG?= =?utf-8?B?N2dlRVR5bmFGdzUvaytwU3FIVGdrRHI4N1hwdXFkaE5VbjZWellNTTZUeEVN?= =?utf-8?B?eFhtZFNUZURxNm5TTk42UTh1a3RZaFp4WG9rZ3VRMVdDaXpNOEx6M3Zlek1V?= =?utf-8?B?OWg5MWcvZ1AzenM3MXRWcS9EVkI5YXdlVzRtR3JWZWdxWjhHcmYxcUx4aXBY?= =?utf-8?B?N05FY1liMmh3MzlSYkRlZFZkVUpsa1NFVzVtZlB0anhnTHFQZklHMVZ5dHps?= =?utf-8?B?TnliOXRUWWV4OFdHbFV5dmdLN0dNWUpBblN0TVFSU3VIZW10M2ZRVlBLSjRi?= =?utf-8?B?U2RoTEVKU1JQTklNWjlEdmZYaEdWSDdUR0kxc2RCMk5UdjRlTHlCL3JPdnll?= =?utf-8?B?Z2hPbWNxTU9rT1lKaHBWU0V0d21lT0p5RVRacnRlV25oUUJGTGg1Ymp6cm4z?= =?utf-8?Q?PX2N4/lgNxAllwN49EEIfN4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <2968664179C1344A8C82C3D546CB0FDD@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB4349.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42a15cf5-1caf-44e7-bb37-08da5aad894b X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jun 2022 15:31:00.5317 (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: 7FqXGW44z37MB0aWRNSbSw7tv06tISwJ8+d7smlSG7Xg37zPrdD1DOZssnraeuyegAH8VKol8wqpevG21SoGPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4801 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.883 definitions=2022-06-30_10:2022-06-28, 2022-06-30 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 phishscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206300061 X-Proofpoint-ORIG-GUID: 4WF0Ayka4KNPnYqLja8q9M76NQiHrlSZ X-Proofpoint-GUID: 4WF0Ayka4KNPnYqLja8q9M76NQiHrlSZ X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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, 30 Jun 2022 15:31:09 -0000 DQoNCj4gT24gSnVuIDMwLCAyMDIyLCBhdCAxMDoyNCBBTSwgUmljaGFyZCBCaWVuZXIgPHJpY2hh cmQuZ3VlbnRoZXJAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IA0KPiANCj4+IEFtIDMwLjA2LjIw MjIgdW0gMTY6MDggc2NocmllYiBRaW5nIFpoYW8gdmlhIEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hl c0BnY2MuZ251Lm9yZz46DQo+PiANCj4+IO+7vw0KPj4gDQo+Pj4gT24gSnVuIDI5LCAyMDIyLCBh dCA1OjE0IFBNLCBNYXJ0aW4gU2Vib3IgPG1zZWJvckBnbWFpbC5jb20+IHdyb3RlOg0KPj4+IA0K Pj4+IE9uIDYvMjgvMjIgMTM6MDEsIFFpbmcgWmhhbyB3cm90ZToNCj4+Pj4+IE9uIEp1biAyOCwg MjAyMiwgYXQgMjo0OSBQTSwgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gd3JvdGU6 DQo+Pj4+PiANCj4+Pj4+IE9uIFR1ZSwgSnVuIDI4LCAyMDIyIGF0IDA2OjI5OjAxUE0gKzAwMDAs IFFpbmcgWmhhbyB3cm90ZToNCj4+Pj4+PiANCj4+Pj4+PiANCj4+Pj4+Pj4gT24gSnVuIDI4LCAy MDIyLCBhdCAyOjIyIFBNLCBKYWt1YiBKZWxpbmVrIDxqYWt1YkByZWRoYXQuY29tPiB3cm90ZToN Cj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBPbiBUdWUsIEp1biAyOCwgMjAyMiBhdCAwNjoxNTo1OFBNICsw MDAwLCBRaW5nIFpoYW8gd3JvdGU6DQo+Pj4+Pj4+Pj4+IEJlY2F1c2UgdGhlIGZsYWcganVzdCB0 ZWxscyB3aGV0aGVyIHNvbWUgYXJyYXkgc2hvdWxkbid0IGJlIHRyZWF0ZWQgYXMgKHBvb3IgbWFu J3MpDQo+Pj4+Pj4+Pj4+IGZsZXhpYmxlIGFycmF5IG1lbWJlci4gIFdlIHN0aWxsIG5lZWQgdG8g ZmluZCBvdXQgaWYgc29tZSBGSUVMRF9ERUNMIGlzIHRvDQo+Pj4+Pj4+Pj4+IGJlIHRyZWF0ZWQg bGlrZSBhIGZsZXhpYmxlIGFycmF5IG1lbWJlciwgd2hpY2ggaXMgYSBtaW5vcml0eSBvZg0KPj4+ Pj4+Pj4+PiBDT01QT05FTlRfUkVGcy4NCj4+Pj4+Pj4+Pj4gc3RydWN0IFMgeyBpbnQgYTsgY2hh ciBiWzBdOyBpbnQgYzsgfSBzOw0KPj4+Pj4+Pj4+PiBzdHJ1Y3QgVCB7IGludCBkOyBjaGFyIGVb XTsgfTsNCj4+Pj4+Pj4+Pj4gc3RydWN0IFUgeyBpbnQgZjsgc3RydWN0IFQgZzsgaW50IGg7IH0g dTsNCj4+Pj4+Pj4+Pj4gTmVpdGhlciBzLmIgbm9yIHUuZy5lIGlzIHRvIGJlIHRyZWF0ZWQgbGlr ZSBmbGV4aWJsZSBhcnJheSBtZW1iZXIsDQo+Pj4+Pj4+Pj4+IG5vIG1hdHRlciB3aGF0IC1mc3Ry aWN0LWZsZXgtYXJyYXk9IG9wdGlvbiBpcyB1c2VkLg0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IFRo ZW4sIHRvIHJlc29sdmUgdGhpcyBpc3N1ZSwgd2UgbWlnaHQgbmVlZCBhIG9wcG9zaXRlICBmbGFn IERFQ0xfSVNfRkxFWEFSUkFZIGluIEZJRUxEX0RFQ0w/DQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4g VGhlIGRlZmF1bHQgaXMgRkFMU0UgZm9yIGFsbCBGSUVMRF9ERUNMLg0KPj4+Pj4+Pj4gDQo+Pj4+ Pj4+PiBEb2Vzbid0IG1hdHRlciB3aGV0aGVyIGl0IGlzIHBvc2l0aXZlIG9yIG5lZ2F0aXZlLCB5 b3Ugc3RpbGwgbmVlZCB0byBhbmFseXplDQo+Pj4+Pj4+PiBpdC4gIFNlZSB0aGUgYWJvdmUgZXhh bXBsZS4gIElmIHlvdSBoYXZlIHN0cnVjdCBUIHQ7IGFuZCB0ZXN0IHQuZSwgdGhlbiBpdA0KPj4+ Pj4+Pj4gaXMgZmxleGFycmF5LiAgQnV0IHUuZy5lIGlzIG5vdCwgZXZlbiB3aGVuIHRoZSBDT01Q T05FTlRfUkVGIHJlZmVycyB0byB0aGUNCj4+Pj4+Pj4+IHNhbWUgRklFTERfREVDTC4gIEluIHRo ZSB0LmUgY2FzZSBlIGlzIHRoZSB2ZXJ5IGxhc3QgZmllbGQsIGluIHRoZSBsYXR0ZXINCj4+Pj4+ Pj4+IGNhc2UgdS5nLmUgaXMgdGhlIGxhc3QgZmllbGQgaW4gc3RydWN0IFQsIGJ1dCBzdHJ1Y3Qg VSBoYXMgdGhlIGggZmllbGQgYWZ0ZXINCj4+Pj4+Pj4gDQo+Pj4+Pj4+IFNvLCBkbyB5b3UgbWVh biB0aGF0IHRoZSBjdXJyZW50IEZFIGFuYWx5c2lzIHdpbGwgbm90IGJlIGFibGUgdG8gZGVjaWRl IHdoZXRoZXIgYSBzcGVjaWZpYyBhcnJheSBmaWVsZCBpcyBhdCB0aGUgZW5kIG9mIHRoZSBlbmNs b3Npbmcgc3RydWN0dXJlPw0KPj4+Pj4+PiBPbmx5IHRoZSBtaWRkbGUgZW5kIGNhbiBkZWNpZGUg dGhpcyA/DQo+Pj4+Pj4gDQo+Pj4+Pj4gV2VsbCwgYW55dGhpbmcgdGhhdCBhbmFseXplcyBpdCwg Y2FuIGJlIGluIHRoZSBGRSBvciBtaWRkbGUtZW5kLCBidXQgdGhlcmUNCj4+Pj4+PiBpcyBubyBw bGFjZSB0byBzdG9yZSBpdCBmb3IgbGF0ZXIuDQo+Pj4+IFRoZW4gSSBhbSBhIGxpdHRsZSBjb25m dXNlZDoNCj4+Pj4gSWYgdGhlIEZFIGNhbiBkZWNpZGUgd2V0aGVyIGFuIGFycmF5IGZpZWxkIGlz IGF0IHRoZSBlbmQgb2YgdGhlIGVuY2xvc2luZyBzdHJ1Y3R1cmUsICB0aGVuIGNvbWJpbmVkIHdp dGggd2hldGhlciBpdOKAmXMgYSBbMF0sIFsxXSBvciBbXSwgYW5kIHdoaWNoIGxldmVsIG9mIC1m c3RyaWN0LWZsZXgtYXJyYXksDQo+Pj4+IFRoZSBGRSBzaG91bGQgYmUgYWJsZSB0byBkZWNpZGUg d2hldGhlciB0aGlzIGFycmF5IGZpZWxkIGlzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIG9yIG5v dCwgdGhlbiBzZXQgdGhlIGZsYWcgREVDTF9JU19GTEVYQVJSQVkgKG9yIERFQ0xfTk9UX0ZMRVhB UlJBWSkuDQo+Pj4+IFRoZSBuZXcgZmxhZyBpcyB0aGUgcGxhY2UgdG8gc3RvcmUgc3VjaCBpbmZv LCByaWdodD8NCj4+Pj4gRG8gSSBtaXNzIGFueXRoaW5nIGhlcmU/DQo+Pj4gDQo+Pj4gSSB0aGlu ayB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZXJlIGlzIGp1c3Qgb25lIEZJRUxEX0RFQ0wgZm9yIG1l bWJlcg0KPj4+IE0gb2YgYSBnaXZlbiB0eXBlIFQgYnV0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4g b25lIGluc3RhbmNlIG9mIHRoYXQNCj4+PiBtZW1iZXIsIG9uZSBpbiBlYWNoIHN0cnVjdCB0aGF0 IGhhcyBhIHN1Ym9iamVjdCBvZiBUIGFzIGl0cyBvd24NCj4+PiBtZW1iZXIuICBXaGV0aGVyIE0g aXMgb3IgaXNuJ3QgYSAodmFsaWQpIGZsZXhpYmxlIGFycmF5IG1lbWJlcg0KPj4+IHZhcmllcyBi ZXR3ZWVuIHRoZSB0d28gaW5zdGFuY2VzLg0KPj4gDQo+PiBPa2F5LCBJIHNlZS4gDQo+PiBBIEZJ RUxEX0RFQ0wgbWlnaHQgYmUgc2hhcmVkIGJ5IG11bHRpcGxlIHN0cnVjdHVyZSBvciB1bmlvbnMs IGFuZCB3aGV0aGVyIA0KPj4gaXTigJlzIGEgZmxleGlibGUgYXJyYXkgbWVtYmVyIHZhcmllcyBi ZXR3ZWVuIGRpZmZlcmVudCBlbmNsb3Npbmcgc3RydWN0dXJlcyBvciB1bmlvbnMuDQo+PiBUaGVy ZWZvcmUgRklFTERfREVDTCBjYW5ub3QgY2FycnkgdGhlIGZsZXhpYmxlIGFycmF5IG1lbWJlciBp bmZvcm1hdGlvbiBhY2N1cmF0ZWx5LiANCj4gDQo+IE5vLCB0aGF04oCZcyBub3QgdHJ1ZS4gIEEg RklFTERfREVMQyBpcyBvbmx5IHNoYXJlZCBmb3IgY3YgdmFyaWFudHMgb2YgYSBzdHJ1Y3R1cmUu DQoNClNvcnJ5IGZvciBteSBkdW1wIHF1ZXN0aW9uczogDQoNCjEuIFdoYXQgZG8geW91IG1lYW4g Ynkg4oCcY3YgdmFyaWFudHPigJ0gb2YgYSBzdHJ1Y3R1cmU/DQoyLiBGb3IgdGhlIGZvbGxvd2lu ZyBleGFtcGxlOg0KDQpzdHJ1Y3QgQVggeyBpbnQgbjsgc2hvcnQgYXhbXTt9Ow0Kc3RydWN0IFVY IHtzdHJ1Y3QgQVggYjsgaW50IG07fTsNCg0KQXJlIHRoZXJlIHR3byBkaWZmZXJlbnQgRklFTERf REVDTHMgaW4gdGhlIElSLCBvbmUgZm9yIEFYLmF4LCB0aGUgb3RoZXIgb25lIGlzIGZvciBVWC5i LmF4Pw0KDQpRaW5nDQoNCj4gDQo+IA0KPj4gVGhlbiwgaG93IGFib3V0IGVuY29kaW5nIHRoZSBm bGV4aWJsZSBhcnJheSBtZW1iZXIgaW5mb3JtYXRpb24gaW50byB0aGUgZW5jbG9zaW5nIHN0cnVj dHVyZSBvciB1bmlvbj8gDQo+PiANCj4+IA0KPj4gQW5vdGhlciB0aGluZyBpczogIEFsbCB0aGlz IGNvbXBsZXhpdHkgaXMgY2F1c2VkIGJ5IEdOVSBleHRlbnNpb24gd2hpY2ggcGVybWl0cyB0aGUg ZmxleGlibGUgYXJyYXkgDQo+PiBtZW1iZXIgbm90IGF0IHRoZSBlbmQgb2YgdGhlIHN0cnVjdC4g KEFzIEkgbWVudGlvbmVkIGluIGEgcHJldmlvdXMgZW1haWwsIEkgbGlzdGVkIGhlcmUgYWdhaW4p DQo+PiANCj4+IEZvciBleGFtcGxlIHRoZSBmb2xsb3dpbmcgdHdvIGV4YW1wbGVzOg0KPj4gDQo+ PiAxLiBbb3BjQHFpbnpoYW8tb2w4dTMteDg2IHRyYWlsaW5nX2FycmF5XSQgY2F0IHQxLmMNCj4+ IHN0cnVjdCBBWA0KPj4gew0KPj4gaW50IG47DQo+PiBzaG9ydCBheFtdOw0KPj4gaW50IG07DQo+ PiB9Ow0KPj4gDQo+PiB2b2lkIHdhcm5fYXhfbG9jYWwgKHN0cnVjdCBBWCAqcCkNCj4+IHsNCj4+ IHAtPmF4WzJdID0gMDsgICANCj4+IH0NCj4+IA0KPj4gMi4gW29wY0BxaW56aGFvLW9sOHUzLXg4 NiB0cmFpbGluZ19hcnJheV0kIGNhdCB0Mi5jDQo+PiBzdHJ1Y3QgQVgNCj4+IHsNCj4+IGludCBu Ow0KPj4gc2hvcnQgYXhbXTsNCj4+IH07DQo+PiANCj4+IHN0cnVjdCBVWA0KPj4gew0KPj4gc3Ry dWN0IEFYIGI7DQo+PiBpbnQgbTsNCj4+IH07DQo+PiANCj4+IHZvaWQgd2Fybl9heF9sb2NhbCAo c3RydWN0IEFYICpwLCBzdHJ1Y3QgVVggKnEpDQo+PiB7DQo+PiBwLT5heFsyXSA9IDA7ICAgDQo+ PiBxLT5iLmF4WzJdID0gMDsNCj4+IH0NCj4+IA0KPj4gW29wY0BxaW56aGFvLW9sOHUzLXg4NiB0 cmFpbGluZ19hcnJheV0kIGdjYyAtTzIgLVdhbGwgdDEuYyAtUw0KPj4gdDQuYzo0Ojk6IGVycm9y OiBmbGV4aWJsZSBhcnJheSBtZW1iZXIgbm90IGF0IGVuZCBvZiBzdHJ1Y3QNCj4+ICAgNCB8ICAg c2hvcnQgYXhbXTsNCj4+IA0KPj4gW29wY0BxaW56aGFvLW9sOHUzLXg4NiB0cmFpbGluZ19hcnJh eV0kIGdjYyAtTzIgLVdhbGwgdDIuYyAtUw0KPj4gDQo+PiBJdOKAmXMgY2xlYXIgdG8gc2VlIHRo YXQgaW4gdGhlIGFib3ZlIHQxLmMsICBHQ0MgIHJlcG9ydHMgZXJyb3Igd2hlbiB0aGUgZmxleGli bGUgYXJyYXkgbWVtYmVyIGlzIE5vdCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3R1cmUgIChBWCkg dGhhdCBpbW1lZGlhdGVseSBlbmNsb3NpbmcgdGhlIGZpZWxkLg0KPj4gSG93ZXZlciwgZm9yIHQy LmMsIHdoZW4gdGhlIGZsZXhpYmxlIGFycmF5IG1lbWJlciBpcyBOb3QgYXQgdGhlIGVuZCBvZiB0 aGUgc3RydWN0dXJlIHRoYXQgZG9lcyBub3QgaW1tZWRpYXRlbHkgZW5jbG9zaW5nIGl0IChVWCks IHRoZW4gaXTigJlzIGFjY2VwdGVkLiAgIA0KPj4gDQo+PiBJIGFtIHZlcnkgY29uZnVzZWQgYWJv dXQgdDIuYywgaXMgdGhlIHN0cnVjdCBVWCBhIGNvcnJlY3QgZGVjbGFyYXRpb24/IA0KPj4gDQo+ PiBUaGFua3MuDQo+PiANCj4+IFFpbmcNCj4+IA0KPj4+IA0KPj4+IE1hcnRpbg0KPj4gDQoNCg==