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 F144A3858D39 for ; Thu, 18 May 2023 20:59:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F144A3858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34IIx7Yq018535; Thu, 18 May 2023 20:59:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2023-03-30; bh=lHx9hWHYqg7wYFhGrcmJxvApWX9vdLu6iOl0ssGhyYE=; b=fRUQSqfizFji8ra9pmoXboL1lh8r54Ic8j8lU2CdFTJWhxsHgDsAG24Hd2Ps0fWBPJFB RiZDb2rPmG3d3MbQFCoNmnprmWC7QZh1dqzsDVimL1fO+7g5UyeFKPivcnGbtbcWXiII v89ujOIOwRIgSKpKpy89NFKlX26jbad3/yi9KWjdQi0sxwPpuvgILIn9crLaaI7X8X1u qpG5bThywMspvn+/rVHJxJJ8aSP7AxdgKux4NQ3YPypdFUidQELc7RcX3QPhERChxHi6 pwhL2LHEy4+aF1YUHQTUlrDdt0qxi77DATsXwj3fnZoHTOz+jN766epNRdXSYQzOlDSu Zg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3qj2kdsa04-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 May 2023 20:59:18 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 34IKWNGF004147; Thu, 18 May 2023 20:59:17 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2109.outbound.protection.outlook.com [104.47.55.109]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3qj10dk67t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 18 May 2023 20:59:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HBOHQLSkkNPZW0Fd6idFqHpzjQXFDxh1L21BHqQZFUN+M9cNPz15yxQrWqBYeWLB1w3PLQUy/oYXa8P19oksVSMYUEZPD3KTzHgWmYvde9cTvbcGHYUd9AFD1kU81GuaUI0Tl1S/WC1+IMM4QkuDGA+Ijw/koT93UwgyDx49S+vb1wsuBLfHOgDq5gdrOFRoaQWEg4cPJtjnXWnW1Sfzb/GLaIxy8qAydVvpCnzkcFw8ce9o/OVXKOKwmy2OVWmE7ohMgv2B+mljoKuU/lfDNyGil8Ebddo1BOo983/maynvKIJY9MnZyY8pco+o9QMmoPP9K/5gZ6MIv1tcji1iRA== 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=lHx9hWHYqg7wYFhGrcmJxvApWX9vdLu6iOl0ssGhyYE=; b=j5aHoFv3ReRv3Z5tVPXSu2nEpSiHaR2a3HWklYwGyKbfBCNEkKKfrYtlTBWTk/EOpOgALnzC2vzzPE/Bo62SttJ0EMJCObI3qemcIjIeG7h9QjhYtoDalK3tyEGYxc86pgccaFHAwLB/HSWx08jvjPsKTEBAwhutCV/bZmjSfs9zVGFVlya0OxzGxiWRVoiYO9eNrVxiVoZd2JGH/t/vl/76SekGf8OadHkD/aFs2AjFhS05DVaybmvYZvE6sUEzRnXVrhy+xLEp9bn3mNOOQqPLLRl8asu6JlsGM+Jios0+Co9WR/wO/zJZ/CnoI9wTg+AeCAcBt1ommnGbvLQ7+w== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lHx9hWHYqg7wYFhGrcmJxvApWX9vdLu6iOl0ssGhyYE=; b=hu9rXXebhiYdVhD2TDjEB72XwC9Cer0fdJQXyrSXqgTYlYB1noitXqXIALqttkcMQnXB0tQz4SEHzctxmTKcHExD6TJgcrhmyLi7vYikJNumHFM8w+pvTInQOdffbytHQzkVnzsOciOQKrKNOdD3KCkuvSd7F+iR6m+J+dBK0P0= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by LV8PR10MB7752.namprd10.prod.outlook.com (2603:10b6:408:1e7::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.19; Thu, 18 May 2023 20:59:15 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::7aa1:df38:105a:21fa]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::7aa1:df38:105a:21fa%7]) with mapi id 15.20.6411.019; Thu, 18 May 2023 20:59:15 +0000 From: Qing Zhao To: Martin Uecker , Richard Biener , Joseph Myers CC: GCC , Kees Cook Subject: Re: [wish] Flexible array members in unions Thread-Topic: [wish] Flexible array members in unions Thread-Index: AQHZhCLuf5m2WRG8LkCSJk7/seKYAK9VQycAgAAsSQCAAB2sAIAABWAAgACX0ACAChguAIAATHOA Date: Thu, 18 May 2023 20:59:15 +0000 Message-ID: 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.3696.120.41.1.3) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|LV8PR10MB7752:EE_ x-ms-office365-filtering-correlation-id: 83cbb086-c84a-43e6-fe45-08db57e2bd21 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1xyypgYXoo8GthasoUqlJICn5JvsbDOUcWlV0W9ft/q1IMOYo5MRaDMhuxUy5O4hBS5LtVWDTa5Z3w4IAG5+yjqPzfJEAqxRxBNqyAsOct28lNm1RbMkBntSfcRO4xrSgpF4LeR0HngW8jGqNUrdok/dyMC+lQkAhc5J7dI2nM83nMglEOSTEwmmkdwwhBbM1BAywx32c+3oxnfqQHWlyRrF6xtd98JiYqtxwtqT3TE6v9gQ/MpwjahAWEctXjyA1681K2wkRIEn3T08J/1CUgWj0n8+oFT+E6zdpk9Gtmnm4BvupIA+jMKdtCjetqgH+NuknXfo21uUMLPVh8GLf5U+eod6ihwUZ/zp0kZiqqWtBy7YwbRnVxvsrQAWAD1u36IHy5E4DoEF3ONxbkGeTlngyu7Ejppu+O6QXfDzZg9K2yMejnMdfu/fKzSLOJ3OORpNijVXbL9QfK889au8o7vUYgqWl6Ax4N/Ec1mz3CouyMKSOrqEEPGDuGksqmgg1auKmGS82DZ3T2sGRgq76xD8YdlahMWueWwmGgSWEOTXJS79Lcte77uoejocJ9rAC01ldOYXwF4o0D9Ect5eX+N1xDIxJx6Wxd4U0THOyy57JQcdSG6WJyCiSvvKcyP8Hf/K4+pkut7iDz4jkErO8rAezVOB6e37IgY3lIf2BrhS2mHiQ1QunIusSJygSK01 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:(13230028)(376002)(346002)(136003)(39860400002)(366004)(396003)(451199021)(6512007)(6506007)(53546011)(966005)(36756003)(86362001)(33656002)(38070700005)(2616005)(38100700002)(122000001)(186003)(6486002)(54906003)(110136005)(44832011)(5660300002)(478600001)(2906002)(316002)(4326008)(8676002)(8936002)(41300700001)(91956017)(66446008)(64756008)(66476007)(66556008)(66946007)(76116006)(71200400001)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UmM2WSthSGFxRFNqTFIrbTZXYWtsL3h3NUU1eHdubk5lQjhjcTBoYWhORFh5?= =?utf-8?B?WUR1WVBqS3V5MHR5ZU9yakpsek0zS0d5bmZVZDVRbXRtS1UzbjZEanIzTlor?= =?utf-8?B?MFQzZzczK1lxalgwRjVZWEYvSFJXWUVZMGVDbXN4a1dXUU9mb0Y1OUtxdmJk?= =?utf-8?B?cnl6ck1RMm40cUJ4VUxCRmhMUkJ4UlR2ZnFRMGJNcFpPOFpUN3BCNkdTQ1dX?= =?utf-8?B?U1ZCSzRMMXREQnIxMWdFanI2TG5ZdWllN0RzUVBCaURLTDVmWjRLemxQZFAy?= =?utf-8?B?NXdRMzRaVnBHWEdhWFJOVUk3WFlJbEg0Z0tsRU1vR3JaQXhaditZano2NENY?= =?utf-8?B?eExtb2tsSU9MODRlZVhOSVVIUW5zVHliRndBdzhQQndpOU11OUdjMHpIODJK?= =?utf-8?B?eGExT2JZeStwMnpnMWlVa084dlpBR2lRNVl1SXB4amZiM29hNXJwbFVZRkZ3?= =?utf-8?B?OVdaNXRIcjdJS0J6dGxXVE4zRE9VVWU1cHo4TWpPQ25JcGZteDUwYlNRbktD?= =?utf-8?B?TU03OWx1bzY1VlM2ZlIrUm9QQUxRdE1yZG9JeCtKMzl0UDJ6elJRVWc2ekth?= =?utf-8?B?NU5oSFdIWnVydlM5Lzg0SGE3RUt4WVBTUktzSTNyQXlQUW9VbTRYZ1hBUWJD?= =?utf-8?B?VWFMNVE5c1B4TjUxSnNyU2Rad2cxMVhkbGVDTmdSaUJLOFd4cTFad1NRQXJO?= =?utf-8?B?MllxcWw3Tk5sNmw2RFo4WlN1dVkyUjE2VVRNUmdXYWtaV0JrUmFxRk8yMnR3?= =?utf-8?B?WFB3OGJCU1NrMUJLVkE4S3lmZ0dUUGMvTlBoZnZabzJHeG5lU3hjQVRBZDRz?= =?utf-8?B?VW83M1BvWVBDaFgrOUtCc01GUmRpeDBkVms4OC9LaUpPRmtmYjFhS0EzMVIr?= =?utf-8?B?VzNzUHJnOXJLZWZmdm9Cb2xOQTFudlVGUW9ud1BxdVZ2elhaMjlncnBYaTJU?= =?utf-8?B?cWdlMkJDWk1YcDZGU2lDOXB0Y3ErSm9vQmprSWJFMHpOckhydXl1UmJmYmZW?= =?utf-8?B?aVN1N0hmekc3SGlvUVh6QnIzUVZTOXRkOUdmVyswM1Q1MC9PdnNNaWZRdi9k?= =?utf-8?B?cU9JNlRuRVh6VlJ2UVVHUUE5WGFNdkkvWWc2aUNBUVZvanVPZ2tuMlpsTnNp?= =?utf-8?B?azB3RHp2NWZMSENsaS9zRkVtdUZkS0JLS0ZSc0p6VFA4Wis5Yk55dFZMazNm?= =?utf-8?B?cjhOcCtwbGJncnZYWkF1L0JCdFhoR1VBOFBYaGk2N0U2TmR2N1dzMXNLTGkz?= =?utf-8?B?dzdDZitGWFR2c3pNUjVwcHYwTWFHRXZoV3JwdFZPZnZ1K2JEc1JlOTVERUxM?= =?utf-8?B?bWJhM21Fa1VrSFNnSkJ4OWVUUnFuYy92Tnh4WGJnUWNtdmdMZ01KbytieHlV?= =?utf-8?B?NGRYTXJOcU5YS0NpME9wUTAwdWZHQWhyMExTcVRreGc1NVRHd1lvYm9PNVk5?= =?utf-8?B?SzBlTDFTaUtXekppVlBUa3NlUU96RnBKbWE0TFR6YkFwZ2ViaC96RnczWGN5?= =?utf-8?B?NkE5YXJIbXhQalEwVXR1eXFHYmpTeTVCb2RnQnJUSXBBdEtvbHI3OW5RYVdH?= =?utf-8?B?Qi8zYlFOaWpzRUgxazFXdjNwT2RjNWhtcndqVXZBajg4OWx6YWJSREVxaTVv?= =?utf-8?B?SklzQTQvMi9lRFdBM3Z2amFzeG1USURGcTFIYkt2MmtLZXVCRDVTRW1HL014?= =?utf-8?B?SHNOR2hLZGVhb2Y2c3dhTE1RZTk2b3lIUzhWRmtjbXlDS2NlRTlJQWh6dDB2?= =?utf-8?B?K1dQYURhZU0rTEEwV0ZObWZDTEF4MkhGOUFhL2QyQXo1ODVIc3BqaEZYRmRO?= =?utf-8?B?dUl2UUR3VjhaM1NlNXkrMm9rTXMwZ0E0NDE3emEvZjIzSGdLN0lpRWRHTDNw?= =?utf-8?B?WlZnRlZNcmhUb2tGTU9QY2hZWlNqWWpHaDlScFAzU25sbFNxeTFXL0kwcnJw?= =?utf-8?B?bUp1ZHAxWFhlR3RlV1FSNzFVZmJPOFlGN1dOaE5haXFnTHlGWGpiS3hDejJH?= =?utf-8?B?U1R3K0ovRzNJTkdNMnA3V0Jsc2RkZGJhSFl6ampnRDVWaEt3MXJWS29Cbm9K?= =?utf-8?B?anJvcW1xTS9YaFM3RWZDRjBFUWlxL2dTZDZlankvWmczK2JRbWJtMFM0Znhq?= =?utf-8?B?SjBnclZha2dpNUZnMjMwZHFkekZyL2xTdXRPWUM3S1k5T1pkQXFqcXRZUWlh?= =?utf-8?Q?SAGTL0UPxjPmGwfpeTPeu2M=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: aIpLWpLhA7Ndi3HnOH+Rh4y0XjaKFf6NRlezK9BjrnAwdUaA83SpBK9QUsWRjPPhsnCzVGsaGZaQ93tas9JCKGrrKGYxfX3MWHZWxTr+JjnqJSwkkO3BxxvwRYJfOmSmRNgQEWBzwltEWvSLReSplAbUOcVdkd6jMIY1eBB0KcXYf8o4zXoFjItC6geLI/wY15H1gpO7REGYpLQOy/5qSaBzWbBM4KeDHg/wJ/YmV8HtlP4LUHnmktrsVLVKwijUylVhG0OBsM/oNSjEeahpWvD4hualnpKWPHnTXfs5FdEL3tlH8W1zJYlu4LtM2rt/pMY4eqYFkWlmsogukfc1LgkQcARZ0NX4CYnRIhKp7VCrrQA46mIrvl3cknBQIvFHi3xIf/G+tk+//1M8f0QoLEf2jC251KfmQif6BLhv8D1IcTnGaTXpNIF1IPIK/6bYc9aLBWvdtW7u4jawEBo/G1DQBVhQ15M/DVi7rCVHHxVwj3owsNWF5jCQE3z0nG2X7M27mHacZGa/QDMd+rAVMwW3BJulRyOMWY5mqVLITLpndKK+LTXVcuHUUitOFGDaacexn0Knk8wnqUuGJTMQJ5mFAlg1E8o8KUZ9b/kfLdComG9ys8focSaaQYPnO/lzqFW3WiwQfLBHG3oLuyi3X2q4Y3ZOzoXhk5FPWlJaJXQkVNucNiKEUbnhHoj1ioteU5gplWrL1QKGYFMYP4UUebAkvT1OsQAohX1n+TvoeBZQ/66rkhSTWVQTaPXmycnsy7CuHaSIjTZEBWZYOsQcCqVC4x+HIuQv4vRTf0etpn4mLchw2bdWPq5mRg7V5ix8mHcyIcmcJaGdKQtMzHG/WfivQeDPqMsLtuvr3j5jSp5O3fv6Njmk0nljoNCaQ6ms 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: 83cbb086-c84a-43e6-fe45-08db57e2bd21 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2023 20:59:15.0278 (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: TMOr0Uc3oeESLhxnAaiBY/VEf3/iM0D0zLyPDWFVk09KWqAC3ep4AeTeloo++eJMgjKta0BbID/OKDHEZJhwQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7752 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-18_15,2023-05-17_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 mlxlogscore=999 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305180172 X-Proofpoint-GUID: 6DsVuZWHOTKFV1GxXguYREgXycs5eVKu X-Proofpoint-ORIG-GUID: 6DsVuZWHOTKFV1GxXguYREgXycs5eVKu X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_DNSWL_LOW,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 List-Id: DQoNCj4gT24gTWF5IDE4LCAyMDIzLCBhdCAxMjoyNSBQTSwgTWFydGluIFVlY2tlciB2aWEgR2Nj IDxnY2NAZ2NjLmdudS5vcmc+IHdyb3RlOg0KPiANCj4gDQo+IA0KPj4gT24gVGh1LCBNYXkgMTEs IDIwMjMgYXQgMTE6MTTigK9QTSBLZWVzIENvb2sgdmlhIEdjYyA8Z2NjQGdjYy5nbnUub3JnPiB3 cm90ZToNCj4+PiANCj4+PiBPbiBUaHUsIE1heSAxMSwgMjAyMyBhdCAwODo1Mzo1MlBNICswMDAw LCBKb3NlcGggTXllcnMgd3JvdGU6DQo+Pj4+IE9uIFRodSwgMTEgTWF5IDIwMjMsIEtlZXMgQ29v ayB2aWEgR2NjIHdyb3RlOg0KPj4+PiANCj4+Pj4+IE9uIFRodSwgTWF5IDExLCAyMDIzIGF0IDA2 OjI5OjEwUE0gKzAyMDAsIEFsZWphbmRybyBDb2xvbWFyIHdyb3RlOg0KPj4+Pj4+IE9uIDUvMTEv MjMgMTg6MDcsIEFsZWphbmRybyBDb2xvbWFyIHdyb3RlOg0KPj4+Pj4+IFsuLi5dDQo+Pj4+Pj4+ IFdvdWxkIHlvdSBhbGxvdyBmbGV4aWJsZSBhcnJheSBtZW1iZXJzIGluIHVuaW9ucz8gIElzIHRo ZXJlIGFueQ0KPj4+Pj4+PiBzdHJvbmcgcmVhc29uIHRvIGRpc2FsbG93IHRoZW0/DQo+Pj4+PiAN Cj4+Pj4+IFllcyBwbGVhc2UhISBBbmQgYWxvbmUgaW4gYSBzdHJ1Y3QsIHRvby4NCj4+Pj4+IA0K Pj4+Pj4gQUZBSUNULCB0aGVyZSBpcyBubyBtZWNoYW5pY2FsL2FyY2hpdGVjdHVyYWwgcmVhc29u IHRvIGRpc2FsbG93IHRoZW0NCj4+Pj4+IChlc3BlY2lhbGx5IHNpbmNlIHRoZXkgX2Nhbl8gYmUg Y29uc3RydWN0ZWQgd2l0aCBzb21lIGZhbmN5IHRyaWNrcywNCj4+Pj4+IGFuZCB0aGV5IGJlaGF2 ZSBhcyBleHBlY3RlZC4pIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCdzIGRpc2FsbG93ZWQN Cj4+Pj4+IGR1ZSB0byBhbiBvdmVybHkgc3RyaWN0IHJlYWRpbmcgb2YgdGhlIHZlcnkgdGVyc2Ug bGFuZ3VhZ2UgdGhhdCBjcmVhdGVkDQo+Pj4+PiBmbGV4aWJsZSBhcnJheXMgaW4gQzk5Lg0KPj4+ PiANCj4+Pj4gU3RhbmRhcmQgQyBoYXMgbm8gc3VjaCB0aGluZyBhcyBhIHplcm8tc2l6ZSBvYmpl Y3Qgb3IgdHlwZSwgd2hpY2ggd291bGQNCj4+Pj4gbGVhZCB0byBwcm9ibGVtcyB3aXRoIGEgc3Ry dWN0IG9yIHVuaW9uIHRoYXQgb25seSBjb250YWlucyBhIGZsZXhpYmxlDQo+Pj4+IGFycmF5IG1l bWJlciB0aGVyZS4NCj4gDQo+IChJIHRoaW5rIGl0IGlzIGZ1bmRhbWVudGFsbHkgbm90IHRvbyBw cm9ibGVtYXRpYyB0byBoYXZlIHplcm8tc2l6ZQ0KPiBvYmplY3RzLCBhbHRob3VnaCBpdCB3b3Vs ZCB0YWtlIHNvbWUgd29yayB0byBzcGVjaWZ5IHRoZSBzZW1hbnRpY3MNCj4gZXhhY3RseS4pDQo+ IA0KPiBCdXQgbXkgcHJlZmVyZW5jZSB3b3VsZCBiZSB0byBtYWtlIHN0cnVjdHMgLyB1bmlvbnMg d2l0aCBGQU0gYW4NCj4gaW5jb21wbGV0ZSB0eXBlIHdoaWNoIHdvdWxkIHRoZW4gcmVzdHJpY3Qg dGhlaXIgdXNlIChmb3IgdGhlIGNhc2VzDQo+IG5vdyBzdXBwb3J0ZWQgd2Ugd291bGQgbmVlZCBi YWNrd2FyZHMgY29tcGF0aWJsZSBleGNlcHRpb25zKS4NCj4gV2UgY291bGQgdGhlbiBhbGxvdyBz dWNoIGEgc3RydWN0IC8gdW5pb24gYXMgdGhlIGxhc3QgbWVtYmVyDQo+IG9mIGFub3RoZXIgc3Ry dWN0IC8gdW5pb24gd2hpY2ggd291bGQgbWFrZSB0aGlzIGFuIGluY29tcGxldGUNCj4gdHlwZSB0 b28uDQoNClllcywgSSBsaWtlIHRoaXMgYXBwcm9hY2guIA0KQW5kIHdlIGNhbiBtYWtlIHRoZW0g R0NDIGV4dGVuc2lvbnMgZmlyc3QsICBwcm9tb3RlIHRvIEMgc3RhbmRhcmQgbGF0ZXIuDQoNCk15 IHByb3Bvc2VkIHBhdGNoIHNldHMgKG9yaWdpbmFsbHkgdGFyZ2V0ZWQgb24gR0NDMTMsIG5vdyBt aWdodCBuZWVkIHRvIHRhcmdldCBvbiBHQ0MxNCkgd2lsbA0KbWFrZSBvbmUgcGFydCBvZiB0aGUg YWJvdmUgYSBHQ0MgZXh0ZW5zaW9uOg0KICAgIEFsbG93aW5nIHRoZSBzdHJ1Y3Qgd2l0aCBGQU0g YXMgdGhlIGxhc3QgbWVtYmVyIG9mIGFub3RoZXIgc3RydWN0LiAoU2VlIGh0dHBzOi8vZ2NjLmdu dS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwMTgzMikNCg0KaHR0cHM6Ly9nY2MuZ251 Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1NYXJjaC82MTQ3OTQuaHRtbA0KaHR0cHM6 Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1NYXJjaC82MTQ3OTMuaHRt bA0KaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAyMy1NYXJjaC82 MTQ3OTAuaHRtbA0KDQpJ4oCZZCBsaWtlIHRoZXNlIGNoYW5nZXMgZ29pbmcgaW50byBHQ0MgZmly c3QgdG8gaW1wcm92ZSB0aGlzIGFyZWEuDQoNCj4gDQo+IFdlIHRoZW4gd291bGQgbmVlZCBhIHNw ZWNpYWwgbWFjcm8gKGJhc2VkIG9uIGEgYnVpbHRpbikgaW5zdGVhZA0KPiBvZiBzaXplb2YgdG8g Z2V0IHRoZSBzaXplLCBidXQgdGhpcyB3b3VsZCBiZSBzYWZlciBhbnl3YXkuDQo+IA0KPiBJbiBw cmluY2lwbGUsIGFuIGV2ZW4gYmV0dGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIGFsbG93IGR5bmFt aWMNCj4gYXJyYXlzIGJlY2F1c2UgdGhlbiBpdCBoYXMgYSBkeW5hbWljIGJvdW5kIHdoZXJlIHRo ZSB0eXBlIHdpdGgNCj4gdGhlIGJvdW5kIGNvdWxkIHByb3BhZ2F0ZSB0byBzb21lIHVzZXIuIEJv dW5kcyBjaGVja2luZyB3b3VsZA0KPiB3b3JrIGFzIGV4cGVjdGVkIGFuZCBtb3JlIGNhc2VzLg0K PiANCj4gc3RydWN0IGZvbyB7DQo+ICBpbnQgbGVuOw0KPiAgY2hhciBidWZbLmxlbl07DQo+IH07 DQo+IA0KPiBCdXQgdGhpcyB0YWtlcyBhIGJpdCBtb3JlIHdvcmsgdG8gZ2V0IHJpZ2h0Lg0KPiAN Cj4+PiANCj4+PiBBaC1oYSwgb2theS4gVGhhdCByb290IGNhdXNlIG1ha2VzIHNlbnNlIG5vdy4N Cj4+IA0KPj4gSG1tLiBidXQgdGhlbiB0aGUgd29ya2Fyb3VuZA0KPj4gDQo+PiBzdHJ1Y3QgWCB7 DQo+PiAgaW50IG47DQo+PiAgdW5pb24gdSB7DQo+PiAgICAgIGNoYXIgYXRfbGVhc3Rfc2l6ZV9v bmU7DQo+PiAgICAgIGludCBpYXJyW107DQo+PiAgICAgIHNob3J0IHNhcnJbXTsNCj4+ICB9Ow0K Pj4gfTsNCj4+IA0KPj4gZG9lc24ndCB3b3JrIGVpdGhlci4gIFdlIGNvdWxkIG1ha2UgdGhhdCBh IEdOVSBleHRlbnNpb24gd2l0aG91dA0KPj4gYWR2ZXJzZSBlZmZlY3RzPw0KPiANCj4gSSB0aGlu ayB3ZSBjb3VsZCBhbGxvdyB0aGlzIGV2ZW4gd2l0aG91dCB0aGUgImF0X2xlYXN0X3NpemVfb25l Ig0KPiB3aXRob3V0IGEgcHJvYmxlbSB3aGVuIGFsbG93aW5nIHRoZSB1c2Ugb2Ygc3VjaCB1bmlv bnMgb25seSBhcw0KPiBhIGxhc3QgbWVtYmVyIG9mIHNvbWUgc3RydWN0dXJlLiBBbGxvd2luZyBp dCBlbHNld2hlcmUgc2VlbXMNCj4gcXVlc3Rpb25hYmxlIGFueXdheS4NCg0KWWVzLCAgU3VjaCBh biB1bmlvbiBjYW4gYmUgdHJlYXRlZCBhcyBhbiBmbGV4aWJsZSBhcnJheSBtZW1iZXIgDQooanVz dCBtdWx0aXBsZSBmbGV4aWJsZSBhcnJheXMgc2hhcmluZyB0aGUgc2FtZSBzdG9yYWdlKS4gIFRo ZXJlZm9yZSBpdOKAmXMgcmVhc29uYWJsZQ0KVG8gb25seSBhbGxvdyBpdCBhcyB0aGUgbGFzdCBm aWVsZCBvZiBhIHN0cnVjdHVyZS4gDQoNCnRoYW5rcy4NCg0KUWluZy4NCg0KPiANCj4+IFJpY2hh cmQuDQo+PiANCj4+PiBXaHkgYXJlIHplcm8tc2l6ZWQgb2JqZWN0cyBtaXNzaW5nIGluIFN0YW5k YXJkIEM/IE9yLCBwZXJoYXBzLCB0aGUgYmV0dGVyDQo+Pj4gcXVlc3Rpb24gaXM6IHdoYXQncyBu ZWVkZWQgdG8gc3VwcG9ydCB0aGUgaWRlYSBvZiBhIHplcm8tc2l6ZWQgb2JqZWN0Pw0KPiANCj4g UHJvYmFibHkgYSBsb3Qgb2YgY29udmluY2luZyB0aGF0IGl0IGFjdHVhbGx5IGRvZXMgbm90IGNh dXNlIHByb2JsZW1zLA0KPiBhbmQgaXMgdXNlZnVsLiBBbHNvIGEgbG90IG9mIHdvcmsgaW4gbWFr aW5nIHN1cmUgdGhlIHN0YW5kYXJkIGlzIHJldmlzZWQNCj4gZXZlcnl3aGVyZSB3aGVyZSBpdCBp cyBuZWNlc3NhcnkuIEkgdGhpbmsgemVybyBzaXplZCBvYmplY3RzIGFuZA0KPiBlc3BlY2lhbGx5 IGFycmF5cyBhcmUgdmVyeSB1c2VmdWwgYWxzbyB0byBhdm9pZCBzcGVjaWFsIGNvZGUgZm9yIGNv cm5lcg0KPiBjYXNlcyBpbiBudW1lcmljYWwgYWxnb3JpdGhtcy4gQnV0IEkgdGhpbmsgaGVyZSBz b21lIHJlc3RyaWN0aW9ucyBvbg0KPiB0aGUgdXNlIG9mIHRoZSBGQU0gd2lsbCBkby4NCj4gDQo+ IA0KPiBNYXJ0aW4NCg0K