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 DAA9F385501B for ; Thu, 12 Aug 2021 22:46:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DAA9F385501B Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17CMawHW026425; Thu, 12 Aug 2021 22:46:02 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3acw9p23gb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 Aug 2021 22:46:02 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17CMeHQ9191887; Thu, 12 Aug 2021 22:46:01 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2101.outbound.protection.outlook.com [104.47.70.101]) by userp3030.oracle.com with ESMTP id 3abjw9ep4m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 Aug 2021 22:46:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QqBN+X5JzC0UJ4chO+wDhSBVXsb4NCfdA2dsrAVK3i+ox3/qcyyGm+FGzTZEGWnoMwJC48PiHd8v+OtoM+4j3BqvpMqh7PSqh9JENzr/4jwOI6lXROttCtr14tXW4fZAQDdXy0Qqw9/fOn2/SdmnUnsCJ4BEZktxy4OEVdNoDpogwm7lcdOzo/r0R4TdxVnndxyPcELzEempooEqFMMnZWd0/mAfitvfyYsNt1PnJKPfGJdPrc/ZJ7/HI36kIAK2j7SUJXMYiGk16W/i74ki8aTlsGZRz3O5cT6r5gX5M0LC4GhlM5NdeBmkG/xCjHUBd6DOTh5WXjdJoXgv8WeHTA== 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-SenderADCheck; bh=WrbWwd09WTPkSRSUKXbx4UkE+qdGBd6wFEDWWFvz6sE=; b=kr6rqcpcchOLmB5dnBH+sUdnJFZcRCt/v6X6A66eAEMvEZK9thZIRGMqRQxJ3KznBPgglSAZcTyGY3JXCoHbsuqY5I0aNyhSkudaxmiEIcgKLdChdGQA9XNImNsrXLGdcgJRZhkYmH7g99gCKbOPg2qdLWQPzYq9NTE14Qwtqt3YNAWbkV9wRuobOH5GfKbHz50zxb7o8F+btkERZRZgh+vAW1ZFJKAfJKzPckQ0TFCZW5MeRFktnj3BmUKLKAMUYRvbZ92zgAURQicd7C1BYZf5WGDwb1ROqdUs8Q4jMh6t6c6LoVlFsvA1PIOTnWoycgIOfDZaiVkxQZmmUWpubQ== 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 CH2PR10MB4391.namprd10.prod.outlook.com (2603:10b6:610:7d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.14; Thu, 12 Aug 2021 22:45:57 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547%9]) with mapi id 15.20.4415.018; Thu, 12 Aug 2021 22:45:57 +0000 From: Qing Zhao To: Richard Biener CC: Jakub Jelinek , Nick Alcock via Gcc-patches , Kees Cook Subject: Re: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Topic: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Index: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAUO6ICAADhWgA== Date: Thu, 12 Aug 2021 22:45:57 +0000 Message-ID: <3D282310-784B-4CD8-92FB-4A6A613894C4@oracle.com> References: <52E29277-1403-4755-901A-528116C43FB8@oracle.com> <517EA40B-9500-4090-8F03-B4A9CECC62F8@oracle.com> In-Reply-To: <517EA40B-9500-4090-8F03-B4A9CECC62F8@oracle.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: 4965891c-d55e-4386-e5f4-08d95de2f376 x-ms-traffictypediagnostic: CH2PR10MB4391: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:525; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XV/2EHlKm0KRu4Jvoudh/nDq1TXgcZlQnyifLZCGiF/wB8hB3LsbHDedg1HAFJwtIJnh/L8LfSpfJrrtg8SNZoTpZp9bgG24jnglJvhZ6bv3YUiSZ7QtrJgZGDT0P0J617t95mYMHaQbSfOXKpb7vbQOVKaBKApZvxv3G05UgnnAOqNHSiNj9rs2O1wpHnMIrzezVeij6wrXwDG/HEz7UAE7/xsG744hJ6kehU0tIlgk4CBdyzQLlmdMYaV8ryoj0Q+x2pxJkB7gux6f/xDqX4Y+QeP2kKNooZb6fcK10UxNkLlLBtF3q418WmPL/XCW0GsoFhPMrqlIdMSfU9UPyQD41/QLDdBL0FvorLBWS0JhD2dnNMZlJ1tCOt0FSX8DuPotDnI/6H5XqwaQZDPesMWKTxzOHFtjNCscRjbPRraWIlWfPJiHM6LjLiwXtACaz0zJpu+JTZ74aw6TSwku1jWsjlF9Z2UT3X79v0a5iaiDqV8f8TawJCaNzm/9MtAUvRt2dwpBVjc9lwaxatlRaO78dM+4DUAPUIqUq2utEaW61+U7iy4Y84RnWIFeXSKGSJRaFEgwdN8JGCAR7LtzMIxc4Yre8KjcTMoLFimguAqBUh7+5HkIV++TDNKkhet02iPGjKgIXyRqTS3Mxatp0siR/VhaN4dLpaXLjMBj/F4Vse5cFiwWJ/RoLUzGeARUWjKGD2VjeRtFCJboIbJNaCEbIuN9bqUi0juS1XA8TUjv14rPbxjaKmZ9Io42K/EmEcuX0ns5WialViXqhJJtLQ== 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:(39860400002)(396003)(366004)(136003)(376002)(346002)(86362001)(33656002)(38100700002)(478600001)(4326008)(2906002)(53546011)(122000001)(8936002)(6506007)(71200400001)(26005)(6916009)(5660300002)(66446008)(6512007)(66556008)(44832011)(316002)(36756003)(66476007)(64756008)(83380400001)(186003)(76116006)(8676002)(38070700005)(91956017)(54906003)(66946007)(2616005)(6486002)(45980500001)(266184004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ODdRN1lLY2hNa21samcwcXA5em5wMEc5NENjQ0xPNjhvNjFJM0ZYNjR5NXUv?= =?utf-8?B?ZFNLYThmdFNwejVrM0F1aHlURzdwQTB0M0doMWo1WTg0SGxkWlIyRzRSWTRn?= =?utf-8?B?aDVpVVd6Z2xnZEdtaXBzOElacXQ1cVY0dGpXYnhOZlZXK1F3Nk9EQ24wT0Rj?= =?utf-8?B?cmY4MEM5b0YrNmcxcnB1cEJ3T2NFYTFTcy9JbTJaeXFEcktzbHNLSlpHY213?= =?utf-8?B?ZDlPUGx1ODFqbXlQVGZFZnNBajVXWnpiZWdFcVhOMHl2M2tIdllBZ3pLbzRt?= =?utf-8?B?Yk9aZVdNeEZrdURaVkZQYkk4OTcyNXZYU0p5Mlg0UDdMNFVqUzFhbDRuRjA2?= =?utf-8?B?eTZSbGtuVUtsSlRKR2oyMkhhZXVSMEcxVG0wckFIZUVLd21kekZPd0M1ckVK?= =?utf-8?B?MWRJZU9iazNVT1hKeVJmaXZoc1ZYMkVKVXBIek55cnVTbktiQTlRaDBDeW5M?= =?utf-8?B?U0Z6TXVySk1SM3RxRkdzOWVudFJkQUVJUmgxaHBSVXhNWVdwbnczMUI3dUF4?= =?utf-8?B?eTlSZjRUS0pnOHBvN0Q2V3NVQVVVWGtJZ3BqTUhSZjYyWWk1dVNYeXJ0WmlS?= =?utf-8?B?REZyODRKZjdoTDNMS29qRUJlK0g2THRhQytjdVRWbWZJLzFwRkdDQnJUZW5D?= =?utf-8?B?SmNKR3RUK1h0VEQyaThkdHpKeFp4OHNzeUJKRzJLc1pONDhQeVVLa0FJck1x?= =?utf-8?B?VkJWL204dDFkckJCa2l0eWV4ZVFEZFZDTzY3OVozVG1UczdLY3B3M2Y5V0kz?= =?utf-8?B?bmp6UlZXdUhnbWNIV0U5Z0dTeVNHZ29aNmZlbEFwRUVDUEt0bUExZDJDRlFL?= =?utf-8?B?b1VUcVpHNDVFWFpCN1o5OFZJdWd4U2kvTE4xY2tLU1k2TnBueWNOUnRDL29T?= =?utf-8?B?emdIS0Z5QndwVVRHOEpFbytvWFFEajc0aWxPM0UwdWtiL2s2bXVLOWVueTZ4?= =?utf-8?B?TTJHcGYrUWptTlE2Qi8vaGdPZ2E1ejJDVWVyYTlsZlBPNVZYNnF3TVZvZ3F1?= =?utf-8?B?UExVZUltY1M2bCtpcHNCT2JmQTlQS1k0Q0JCVU14RmxVeWxiREE2R3dBV1Q5?= =?utf-8?B?ZXpZY2dFNWN2UE5uUkxHYUgwTHhETGgwaGZrc25JcFdOMi9FS1hQTENxRWtw?= =?utf-8?B?WGY1bnFQbXF3OEhhUFI5NGtwZlB5MEhsaVFUY2tUTTVqaHlKK3VnVGpHc3NP?= =?utf-8?B?K1g3VjJMS1hDN24vOXA1K0NvMFRaZ1VpSGdxdTJmckJjRUVXbGNJN0xxMXUw?= =?utf-8?B?RjRLckxqb1pmaGpOL05CMGFURkN3OU1pQzBjakN0MW1iSnB2a0I1Sm5nUkFI?= =?utf-8?B?YUdKMmNuNUdKUWdYTk9KS0t6TExYL1FvT0EzdnRhT0xVdFovc1JGRWZMZHV5?= =?utf-8?B?cDB0dElsZXdrdkduKzQvd3Yxa0RmaVdweUMzTHozVm1DemxSYWRWSVZkTytM?= =?utf-8?B?SlRVSmdpQ0RCek1DdHFoVnJGbVpkMU1DbWNCd1ZtOUpRRHphYURVVFp4N3dm?= =?utf-8?B?NGIvZzY1bEpMKzQrYkhPUnJsSFRzbFdlTEM2OHNGZGtuWHVuaXpDNTgwNDdV?= =?utf-8?B?Y3haelpiRHA4bVdaMDdRUWJ0eTlIbGdyc0d3aTdLbm9EakE4NTBvT0Jjc0di?= =?utf-8?B?UUNxd3lUVyt2RnF3RyswUHNQQ0VOZzlySUlKZ3l1ajQ2Rzl4UGZuK0tlSHc5?= =?utf-8?B?N09hc0lZTTVIb1A2M2xXM0VqN2ZHTi92NkJnQTQyR1dpMW9DaC9mMlA5eThR?= =?utf-8?Q?XWkBeRVe3HH5Kw6BxYzHOMZuCaGs1juyiqZ0Y29?= x-ms-exchange-transport-forked: True 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: 4965891c-d55e-4386-e5f4-08d95de2f376 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Aug 2021 22:45:57.7417 (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: td/AIMHwsL6LIvBBzAEb7SLNaEVIxP3YSXDaNmlr2uX4akFhE/vnxROtJMbWA6uoUlQfdjrJ86if68e9/tiEZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4391 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10074 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 bulkscore=0 suspectscore=0 mlxscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108120142 X-Proofpoint-GUID: c22mnyxbO1kiwr8ros5kKqVt4HlVXwUX X-Proofpoint-ORIG-GUID: c22mnyxbO1kiwr8ros5kKqVt4HlVXwUX X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_BL, RCVD_IN_MSPIKE_L3, SPF_HELO_NONE, SPF_NONE, 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: Thu, 12 Aug 2021 22:46:15 -0000 SGksDQpBbHRob3VnaCBJIGtlcHQgbXkgcHJldmlvdXMgInVzZV9yZWdpc3Rlcl9mb3JfZGVjbChs aHMp4oCdIHRvIGRlY2lkZSDigJxtZW1zZXTigJ0gZXhwYW5zaW9uIG9yIOKAnGFzc2lnbuKAnSBl eHBhbnNpb24gd2hlbiBleHBhbmRpbmcgLkRFRkVSUkVEX0lOSVQgDQoNCldoZW4gZ2VuZXJhdGlu ZyDigJxwYXR0ZXJu4oCdIGZvciDigJxhc3NpZ27igJ0gZXhwYW5zaW9uLCBJIGZvdW5kIHRoYXQg 4oCcY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9wKHZhcl90eXBlKeKAnSAgY29tYmluZWQgd2l0 aCDigJxuYXRpdmVfaW50ZXJwcmV0X2V4cHLigJ0gbWFrZQ0KdGhlIGltcGxlbWVudGF0aW9uIGNs ZWFuZXIgYW5kIHNpbXBsZXIgYXMgZm9sbG93aW5nOg0KDQogICAgICBpZiAoaW5pdF90eXBlID09 IEFVVE9fSU5JVF9QQVRURVJOKQ0KICAgICAgICB7DQogICAgICAgICAgaWYgKGNhbl9uYXRpdmVf aW50ZXJwcmV0X3R5cGVfcCAodmFyX3R5cGUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICB1bnNpZ25lZCBjaGFyICpidWYgPSAodW5zaWduZWQgY2hhciAqKSB4bWFsbG9jICh0b3RhbF9i eXRlcyk7DQogICAgICAgICAgICAgIG1lbXNldCAoYnVmLCBJTklUX1BBVFRFUk5fVkFMVUUsIHRv dGFsX2J5dGVzKTsNCiAgICAgICAgICAgICAgcGF0dGVybiA9IG5hdGl2ZV9pbnRlcnByZXRfZXhw ciAodmFyX3R5cGUsIGJ1ZiwgdG90YWxfYnl0ZXMpOw0KICAgICAgICAgICAgICBnY2NfYXNzZXJ0 IChwYXR0ZXJuKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgIHRyZWUgaW5kZXhfdHlwZSA9IGJ1aWxkX2luZGV4X3R5cGUgKHNpemVf aW50ICh0b3RhbF9ieXRlcyAtIDEpKTsNCiAgICAgICAgICAgICAgdHJlZSBhcnJheV90eXBlID0g YnVpbGRfYXJyYXlfdHlwZSAodW5zaWduZWRfY2hhcl90eXBlX25vZGUsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X3R5cGUpOw0KICAgICAg ICAgICAgICB0cmVlIGVsZW1lbnQgPSBidWlsZF9pbnRfY3N0ICh1bnNpZ25lZF9jaGFyX3R5cGVf bm9kZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5JVF9Q QVRURVJOX1ZBTFVFKTsNCiAgICAgICAgICAgICAgdmVjPGNvbnN0cnVjdG9yX2VsdCwgdmFfZ2M+ ICplbHRzID0gTlVMTDsNCiAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg PCB0b3RhbF9ieXRlczsgaSsrKQ0KICAgICAgICAgICAgICAgIENPTlNUUlVDVE9SX0FQUEVORF9F TFQgKGVsdHMsIE5VTExfVFJFRSwgZWxlbWVudCk7DQogICAgICAgICAgICAgIHBhdHRlcm4gPSBi dWlsZF9jb25zdHJ1Y3RvciAoYXJyYXlfdHlwZSwgZWx0cyk7DQogICAgICAgICAgICAgIHBhdHRl cm4gPSBidWlsZDEgKFZJRVdfQ09OVkVSVF9FWFBSLCB2YXJfdHlwZSwgcGF0dGVybik7DQogICAg ICAgICAgICB9DQogICAgICAgIH0NCg0KVGhhbmtzLg0KDQpRaW5nDQoNCk9uIEF1ZyAxMiwgMjAy MSwgYXQgMjoyNCBQTSwgUWluZyBaaGFvIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2Nj LmdudS5vcmc+IHdyb3RlOg0KPiANCj4gDQo+IEhpLCBSaWNoYXJkLA0KPiANCj4gRm9yIFJUTCBl eHBhbnNpb24gb2YgY2FsbCB0byAuREVGRVJSRURfSU5JVCwgSSBjaGFuZ2VkIG15IGNvZGUgcGVy IHlvdXIgc3VnZ2VzdGlvbnMgbGlrZSBmb2xsb3dpbmc6DQo+IA0KPiA9PT09PT09PT09PT09PT09 PT09PT09DQo+ICNkZWZpbmUgSU5JVF9QQVRURVJOX1ZBTFVFICAweEZFDQo+IHN0YXRpYyB2b2lk DQo+IGV4cGFuZF9ERUZFUlJFRF9JTklUIChpbnRlcm5hbF9mbiwgZ2NhbGwgKnN0bXQpDQo+IHsN Cj4gIHRyZWUgbGhzID0gZ2ltcGxlX2NhbGxfbGhzIChzdG10KTsNCj4gIHRyZWUgdmFyX3NpemUg PSBnaW1wbGVfY2FsbF9hcmcgKHN0bXQsIDApOw0KPiAgZW51bSBhdXRvX2luaXRfdHlwZSBpbml0 X3R5cGUNCj4gICAgPSAoZW51bSBhdXRvX2luaXRfdHlwZSkgVFJFRV9JTlRfQ1NUX0xPVyAoZ2lt cGxlX2NhbGxfYXJnIChzdG10LCAxKSk7DQo+ICBib29sIGlzX3ZsYSA9IChib29sKSBUUkVFX0lO VF9DU1RfTE9XIChnaW1wbGVfY2FsbF9hcmcgKHN0bXQsIDIpKTsNCj4gDQo+ICB0cmVlIHZhcl90 eXBlID0gVFJFRV9UWVBFIChsaHMpOw0KPiAgZ2NjX2Fzc2VydCAoaW5pdF90eXBlID4gQVVUT19J TklUX1VOSU5JVElBTElaRUQpOw0KPiANCj4gIGlmIChpc192bGEgfHwgKCFjYW5fbmF0aXZlX2lu dGVycHJldF90eXBlX3AgKHZhcl90eXBlKSkpDQo+ICAgIHsNCj4gICAgLyogSWYgdGhpcyBpcyBh IFZMQSBvciB0aGUgdHlwZSBvZiB0aGUgdmFyaWFibGUgY2Fubm90IGJlIG5hdGl2ZWx5DQo+ICAg ICAgIGludGVycHJldGVkLCBleHBhbmQgdG8gYSBtZW1zZXQgdG8gaW5pdGlhbGl6ZSBpdC4gICov DQo+ICAgICAgaWYgKFRSRUVfQ09ERSAobGhzKSA9PSBTU0FfTkFNRSkNCj4gICAgICAgIGxocyA9 IFNTQV9OQU1FX1ZBUiAobGhzKTsNCj4gICAgICB0cmVlIHZhcl9hZGRyID0gTlVMTF9UUkVFOw0K PiAgICAgIGlmIChpc192bGEpDQo+ICAgICAgICB2YXJfYWRkciA9IFRSRUVfT1BFUkFORCAobGhz LCAwKTsNCj4gICAgICBlbHNlDQo+ICAgICAgICB7DQo+ICAgICAgICAgVFJFRV9BRERSRVNTQUJM RSAobGhzKSA9IDE7DQo+ICAgICAgICAgdmFyX2FkZHIgPSBidWlsZF9mb2xkX2FkZHJfZXhwciAo bGhzKTsNCj4gICAgICAgIH0NCj4gICAgICB0cmVlIHZhbHVlID0gKGluaXRfdHlwZSA9PSBBVVRP X0lOSVRfUEFUVEVSTikgPw0KPiAgICAgICAgICAgICAgICAgICAgYnVpbGRfaW50X2NzdCAodW5z aWduZWRfY2hhcl90eXBlX25vZGUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJTklUX1BBVFRFUk5fVkFMVUUpIDoNCj4gICAgICAgICAgICAgICAgICAgIGJ1aWxkX3plcm9f Y3N0ICh1bnNpZ25lZF9jaGFyX3R5cGVfbm9kZSk7DQo+ICAgICAgdHJlZSBtX2NhbGwgPSBidWls ZF9jYWxsX2V4cHIgKGJ1aWx0aW5fZGVjbF9pbXBsaWNpdCAoQlVJTFRfSU5fTUVNU0VUKSwNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMywgdmFyX2FkZHIsIHZhbHVlLCB2 YXJfc2l6ZSk7DQo+ICAgICAgLyogRXhwYW5kIHRoaXMgbWVtc2V0IGNhbGwuICAqLw0KPiAgICAg IGV4cGFuZF9idWlsdGluX21lbXNldCAobV9jYWxsLCBOVUxMX1JUWCwgVFlQRV9NT0RFICh2YXJf dHlwZSkpOw0KPiAgICB9DQo+ICBlbHNlDQo+ICAgIHsNCj4gICAgLyogSWYgdGhpcyBpcyBub3Qg YSBWTEEgYW5kIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJsZSBjYW4gYmUgbmF0aXZlbHkgDQo+ICAg ICAgIGludGVycHJldGVkLCBleHBhbmQgdG8gYXNzaWdubWVudCB0byBnZW5lcmF0ZSBiZXR0ZXIg Y29kZS4gICovDQo+ICAgICAgdHJlZSBwYXR0ZXJuID0gTlVMTF9UUkVFOw0KPiAgICAgIHVuc2ln bmVkIEhPU1RfV0lERV9JTlQgdG90YWxfYnl0ZXMNCj4gICAgICAgID0gdHJlZV90b191aHdpIChU WVBFX1NJWkVfVU5JVCAodmFyX3R5cGUpKTsNCj4gDQo+ICAgICAgaWYgKGluaXRfdHlwZSA9PSBB VVRPX0lOSVRfUEFUVEVSTikNCj4gICAgICAgIHsNCj4gICAgICAgICAgdW5zaWduZWQgY2hhciAq YnVmID0gKHVuc2lnbmVkIGNoYXIgKikgeG1hbGxvYyAodG90YWxfYnl0ZXMpOw0KPiAgICAgICAg ICBtZW1zZXQgKGJ1ZiwgSU5JVF9QQVRURVJOX1ZBTFVFLCB0b3RhbF9ieXRlcyk7DQo+ICAgICAg ICAgIHBhdHRlcm4gPSBuYXRpdmVfaW50ZXJwcmV0X2V4cHIgKHZhcl90eXBlLCBidWYsIHRvdGFs X2J5dGVzKTsNCj4gICAgICAgICAgZ2NjX2Fzc2VydCAocGF0dGVybik7DQo+ICAgICAgICB9DQo+ IA0KPiAgICAgIHRyZWUgaW5pdCA9IChpbml0X3R5cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pID8N Cj4gICAgICAgICAgICAgICAgICAgcGF0dGVybiA6DQo+ICAgICAgICAgICAgICAgICAgIGJ1aWxk X3plcm9fY3N0ICh2YXJfdHlwZSk7DQo+ICAgICAgZXhwYW5kX2Fzc2lnbm1lbnQgKGxocywgaW5p dCwgZmFsc2UpOw0KPiAgICB9DQo+IH0NCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ IA0KPiBOb3csIEkgdXNlZCDigJxjYW5fbmF0aXZlX2ludGVycHJldF90eXBlX3AgKHZhcl90eXBl KeKAnSBpbnN0ZWFkIG9mIOKAnHVzZV9yZWdpc3Rlcl9mb3JfZGVjbCAobGhzKeKAnSB0byBkZWNp ZGUgDQo+IHdoZXRoZXIgdG8gdXNlIOKAnG1lbXNldOKAnSBvciB1c2Ug4oCcYXNzaWdu4oCdIHRv IGV4cGFuZCB0aGlzIGZ1bmN0aW9uLg0KPiANCj4gSG93ZXZlciwgdGhpcyBleHBvc2VkIGFuIGJ1 ZyB0aGF0IGlzIHZlcnkgaGFyZCB0byBiZSBhZGRyZXNzZWQ6DQo+IA0KPiAqKioqKioqRm9yIHRo ZSB0ZXN0aW5nIGNhc2U6IHRlc3Qgc3VpdGUvZ2NjLmRnL3VuaW5pdC1JLmM6DQo+IA0KPiAvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiAvKiB7IGRnLW9wdGlvbnMgIi1PMiAtV3VuaW5pdGlhbGl6 ZWQiIH0gKi8NCj4gDQo+IGludCBzeXNfbXNnY3RsICh2b2lkKQ0KPiB7DQo+ICBzdHJ1Y3QgeyBp bnQgbW9kZTsgfSBzZXRidWY7DQo+ICByZXR1cm4gc2V0YnVmLm1vZGU7ICAvKiB7IGRnLXdhcm5p bmcgIidzZXRidWZcLm1vZGUnIGlzIHVzZWQiIH0gKi8NCj4gPT0NCj4gDQo+ICoqKioqKnRoZSBh Ym92ZSBhdXRvIHZhciDigJxzZXRidWbigJ0gaGFzIOKAnHN0cnVjdOKAnSB0eXBlLCB3aGljaCDi gJxjYW5fbmF0aXZlX2ludGVycHJldF90eXBlX3AodmFyX3R5cGUp4oCdIGlzIGZhbHNlLCB0aGVy ZWZvcmUsIA0KPiBFeHBhbmRpbmcgdGhpcyAuREVGRVJSRURfSU5JVCBjYWxsIHdlbnQgZG93biB0 aGUg4oCcbWVtc2V04oCdIGV4cGFuc2lvbiByb3V0ZS4gDQo+IA0KPiBIb3dldmVyLCB0aGlzIHN0 cnVjdHVyZSB0eXBlIGNhbiBiZSBmaXR0ZWQgaW50byBhIHJlZ2lzdGVyLCB0aGVyZWZvcmUgY2Fu bm90IGJlIHRha2VuIGFkZHJlc3MgYW55bW9yZSBhdCB0aGlzIHN0YWdlLCBldmVuIHRob3VnaCBJ IHRyaWVkOg0KPiANCj4gICAgICAgICBUUkVFX0FERFJFU1NBQkxFIChsaHMpID0gMTsNCj4gICAg ICAgICB2YXJfYWRkciA9IGJ1aWxkX2ZvbGRfYWRkcl9leHByIChsaHMpOw0KPiANCj4gVG8gY3Jl YXRlIGFuIGFkZHJlc3MgdmFyaWFibGUgZm9yIGl0LCB0aGUgZXhwYW5zaW9uIHN0aWxsIGZhaWxl ZCBhdCBleHByLmM6IGxpbmUgODQxMjoNCj4gZHVyaW5nIFJUTCBwYXNzOiBleHBhbmQNCj4gL2hv bWUvb3BjL1dvcmsvR0NDL2xhdGVzdC1nY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYXV0by1pbml0 LXVuaW5pdC1JLmM6NjoyNDogaW50ZXJuYWwgY29tcGlsZXIgZXJyb3I6IGluIGV4cGFuZF9leHBy X2FkZHJfZXhwcl8xLCBhdCBleHByLmM6ODQxMg0KPiAweGQwNDEwNCBleHBhbmRfZXhwcl9hZGRy X2V4cHJfMQ0KPiAJLi4vLi4vbGF0ZXN0LWdjYy9nY2MvZXhwci5jOjg0MTINCj4gMHhkMDRhOTUg ZXhwYW5kX2V4cHJfYWRkcl9leHByDQo+IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9leHByLmM6ODUy NQ0KPiAweGQxMzU5MiBleHBhbmRfZXhwcl9yZWFsXzEodHJlZV9ub2RlKiwgcnR4X2RlZiosIG1h Y2hpbmVfbW9kZSwgZXhwYW5kX21vZGlmaWVyLCBydHhfZGVmKiosIGJvb2wpDQo+IAkuLi8uLi9s YXRlc3QtZ2NjL2djYy9leHByLmM6MTE3NDENCj4gMHhkMDUxNDIgZXhwYW5kX2V4cHJfcmVhbCh0 cmVlX25vZGUqLCBydHhfZGVmKiwgbWFjaGluZV9tb2RlLCBleHBhbmRfbW9kaWZpZXIsIHJ0eF9k ZWYqKiwgYm9vbCkNCj4gCS4uLy4uL2xhdGVzdC1nY2MvZ2NjL2V4cHIuYzo4NzEzDQo+IDB4YWVk MWQzIGV4cGFuZF9leHByDQo+IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9leHByLmg6MzAxDQo+IDB4 YWYwZDg5IGdldF9tZW1vcnlfcnR4DQo+IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9idWlsdGlucy5j OjEzNzANCj4gMHhhZmI0ZmIgZXhwYW5kX2J1aWx0aW5fbWVtc2V0X2FyZ3MNCj4gCS4uLy4uL2xh dGVzdC1nY2MvZ2NjL2J1aWx0aW5zLmM6NDEwMg0KPiAweGFmYWNkZSBleHBhbmRfYnVpbHRpbl9t ZW1zZXQodHJlZV9ub2RlKiwgcnR4X2RlZiosIG1hY2hpbmVfbW9kZSkNCj4gCS4uLy4uL2xhdGVz dC1nY2MvZ2NjL2J1aWx0aW5zLmM6Mzg4Ng0KPiAweGU5N2ZiMyBleHBhbmRfREVGRVJSRURfSU5J VA0KPiANCj4gKioqKioqVGhhdOKAmXMgdGhlIG1ham9yIHJlYXNvbiB3aHkgSSBjaG9zZSDigJx1 c2VfcmVnaXN0ZXJfZm9yX2RlY2wobGhzKeKAnSB0byBkZWNpZGUg4oCcbWVtc2V04oCdIGV4cGFu c2lvbiBvciDigJxhc3NpZ27igJ0gZXhwYW5zaW9uLCDigJxtZW1zZXTigJ0gZXhwYW5zaW9uDQo+ IG5lZWRzIHRvIHRha2UgYWRkcmVzcyBvZiB0aGUgdmFyaWFibGUsIGlmIHRoZSB2YXJpYWJsZSBo YXMgYmVlbiBkZWNpZGVkIHRvIGZpdCBpbnRvIGEgcmVnaXN0ZXIsIHRoZW4gaXRzIGFkZHJlc3Mg Y2Fubm90IHRha2VuIGFueW1vcmUgYXQgdGhpcyBzdGFnZS4NCj4gDQo+ICoqKioqKnVzaW5nIOKA nGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcOKAnSBkaWQgbWFrZSB0aGUg4oCccGF0dGVybuKA nSBnZW5lcmF0aW9uIHBhcnQgbXVjaCAgY2xlYW5lciBhbmQgc2ltcGxlciwgaG93ZXZlciwgbG9v a3MgbGlrZSBpdCBkaWRu4oCZdCB3b3JrIGNvcnJlY3RseS4NCj4gDQo+IEJhc2VkIG9uIHRoaXMs IEnigJlkIGxpa2UgdG8ga2VlcCBteSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiBieSB1c2luZyDi gJx1c2VfcmVnaXN0ZXJfZm9yX2RlY2zigJ0gdG8gZGVjaWRlIHdoZXRoZXIgdG8gdGFrZSDigJxt ZW1zZXTigJ0gZXhwYW5zaW9uIG9yIOKAnGFzc2lnbuKAnSBleHBhbnNpb24uDQo+IFRoZXJlZm9y ZSwgSSBtaWdodCBzdGlsbCBuZWVkIHRvIGtlZXAgdGhlIOKAnFVHTFnigJ0gIGltcGxlbWVudGF0 aW9uIG9mIGdlbmVyYXR0aW5nIOKAnHBhdHRlcm7igJ0gY29uc3RhbnQgZm9yIGRpZmZlcmVudCB0 eXBlcz8NCj4gDQo+IExldCBtZSBrbm93IHlvdXIgb3BpbmlvbiBvbiB0aGlzLg0KPiANCj4gVGhh bmtzIGEgbG90IGZvciB0aGUgaGVscC4NCj4gDQo+IFFpbmcNCj4gDQo+IA0KPj4gT24gQXVnIDks IDIwMjEsIGF0IDk6MDkgQU0sIFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4gd3Jv dGU6DQo+PiANCj4+IE9uIFR1ZSwgMjcgSnVsIDIwMjEsIFFpbmcgWmhhbyB3cm90ZToNCj4+IA0K Pj4gKyAgICAgICAgY3JlYXRlZCBkdXJpbmcgZ2ltcGxpZmljYXRpb24gcGhhc2UuICBSZWZlciB0 byBnaW1wbGlmeV92bGFfZGVjbA0KPj4gKyAgICAgICAgZm9yIGRldGFpbHMuICAqLw0KPj4gKyAg ICAgIHRyZWUgdmFyX2RlY2wgPSAoVFJFRV9DT0RFICh2YXIpID09IFNTQV9OQU1FKSA/DQo+PiAr ICAgICAgICAgICAgICAgICAgICAgIFNTQV9OQU1FX1ZBUiAodmFyKSA6IHZhcjsNCj4+ICsgICAg ICBnY2NfYXNzZXJ0IChERUNMX0hBU19WQUxVRV9FWFBSX1AgKHZhcl9kZWNsKSk7DQo+PiArICAg ICAgZ2NjX2Fzc2VydCAoVFJFRV9DT0RFIChERUNMX1ZBTFVFX0VYUFIgKHZhcl9kZWNsKSkgPT0g DQo+PiBJTkRJUkVDVF9SRUYpOw0KPj4gKyAgICAgIC8qIEdldCB0aGUgYWRkcmVzcyBvZiB0aGlz IHZsYSB2YXJpYWJsZS4gICovDQo+PiArICAgICAgdmxhYWRkciA9IFRSRUVfT1BFUkFORCAoREVD TF9WQUxVRV9FWFBSICh2YXJfZGVjbCksIDApOw0KPj4gDQo+PiBlcnIgLSBpc24ndCB0aGUgYWRk cmVzcyBvZiB0aGUgZGVjbCByZXByZXNlbnRlZCBieSB0aGUgTEhTIA0KPj4gcmVnYXJkbGVzcyB3 aGV0aGVyIHRoaXMgaXMgYSBWTEEgb3Igbm90PyAgTG9va2luZyBhdCBERUNMX1ZBTFVFX0VYUFIN Cj4+IGxvb2tzIHF1aXRlIGZyYWdpbGUgc2luY2UgdGhhdCdzIG5vdCBzdGggZGF0YSBkZXBlbmRl bmNlIGhvbm9ycy4NCj4+IEl0IGxvb2tzIHlvdSBvbmx5IHBhcnRseSBnaW1wbGlmeSB0aGUgYnVp bGQgaW5pdCBoZXJlPyAgQWxsDQo+PiBERUNMX1ZBTFVFX0VYUFJzIHNob3VsZCBoYXZlIGJlZW4g cmVzb2x2ZWQuDQo+PiANCj4+ICsgIGlmIChpc192bGEgfHwgKCF1c2VfcmVnaXN0ZXJfZm9yX2Rl Y2wgKHZhcikpKQ0KPj4gLi4uDQo+PiArICBlbHNlDQo+PiArICAgIHsNCj4+ICsgICAgLyogSWYg dGhpcyB2YXJpYWJsZSBpcyBpbiBhIHJlZ2lzdGVyLCB1c2UgZXhwYW5kX2Fzc2lnbm1lbnQgbWln aHQNCj4+ICsgICAgICAgZ2VuZXJhdGUgYmV0dGVyIGNvZGUuICAqLw0KPj4gDQo+PiB5b3UgY29t cHV0ZSB0aGUgcGF0dGVyIGluaXRpYWxpemVyIGV2ZW4gd2hlbiBub3QgbmVlZGluZyBpdCwNCj4+ IHRoYXQncyB3YXN0ZWZ1bC4gIEl0J3MgYWxzbyBxdWl0ZSB1Z2x5LCBJTUhPIHlvdSBzaG91bGQN Cj4+IHVzZSBjYW5fbmF0aXZlX2ludGVycHJldF90eXBlX3AgKHZhcl90eXBlKSBhbmQgbmF0aXZl X2ludGVycHJldA0KPj4gYSBjaGFyIFtdIGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSBwYXR0ZXJu IGFuZCBpZg0KPj4gIWNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcCAoKSBnbyB0aGUgbWVtc2V0 IHJvdXRlLg0KDQo=