Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119448 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 70091 invoked from network); 1 Feb 2023 19:50:58 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 1 Feb 2023 19:50:58 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 931B418033A for ; Wed, 1 Feb 2023 11:50:56 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8075 40.104.0.0/14 X-Spam-Virus: No X-Envelope-From: Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2075.outbound.protection.outlook.com [40.107.92.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 1 Feb 2023 11:50:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S/O1lyX/UOeynLHvIdeuhqut1jzoK5Yjbllxl9nJPNqxwPzu/dFEMVelZo/hYIy3UCH7WBxUtUYysisNTq+3R3xfU+nEhF7+eEYIS/f0kPb+It7FB7yqpBtZbRUZiWDGLQ5Gwi0DudVxxYl7I3RNzRpGpQVM4FuEVMc6DHjHl4aPw4R8a7SLg3zwYj11SmfnOJ44/qEm5QayJthIDqjcV8wW+e2hyFFhoOJshldiF/+uXxn1vmAIWLpFIaGpu84HLIcb+IeDCFvy12cpUQ0RF1XAzZosL5ilHD12KLT3ImzQluhUlKBzIp03dOt1kOzcI3bPV4Ox9AoQgxG+TYcwWg== 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=KIz0t4W6uLjjFlnsz8VvPIzZnTt/NcjAf8HvudIHRb0=; b=a3I8VLULIf1vRYkCrRS//Gd8NDDRq28nRxUWEd/XfbN22ecL4BuZJMKOhSm3KIbIZNUgnU7awYlItRNDsmYLl+lxeJZzZRkyXSSvfa4plV821kBNoZCAmGIbE7slpIupXF1ePklQcJp5k1nb7ZT0rMBB3uSZoAWX86f1aOOVvScgZQekxAyjDXvQXbmMXlMJCB0bB4PtLfh9YFsuET2wck9WX4Z2cu5A/XIzSIfFIXZVT1YHbKmmJur1TZg5xZMJW2F/r/wIR+E6gFA2ilXx3kUO2lgKcXBCnEi7M3hxfWxtGeLGicAumFQvzqgf5K7o9B9ORjzmOK/F+CvrHlDLVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=shymko.net; dmarc=pass action=none header.from=shymko.net; dkim=pass header.d=shymko.net; arc=none Received: from PH8PR10MB6337.namprd10.prod.outlook.com (2603:10b6:510:1cc::10) by CO6PR10MB5538.namprd10.prod.outlook.com (2603:10b6:303:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.22; Wed, 1 Feb 2023 19:50:51 +0000 Received: from PH8PR10MB6337.namprd10.prod.outlook.com ([fe80::ed95:e287:42b3:6a2d]) by PH8PR10MB6337.namprd10.prod.outlook.com ([fe80::ed95:e287:42b3:6a2d%7]) with mapi id 15.20.6064.017; Wed, 1 Feb 2023 19:50:50 +0000 To: =?utf-8?B?QWxleGFuZHJ1IFDEg3RyxINuZXNjdQ==?= CC: Marco Pivetta , PHP internals Thread-Topic: [PHP-DEV] RFC proposal: function array_filter_list() to avoid subtle bugs/workarounds Thread-Index: AQHZNmE0J1j9kkHlVEGnXGJGbZE+rK66V7aAgAACEMaAABaBgIAADlOP Date: Wed, 1 Feb 2023 19:50:50 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=shymko.net; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH8PR10MB6337:EE_|CO6PR10MB5538:EE_ x-ms-office365-filtering-correlation-id: fc0fd67c-704f-42ad-b9bb-08db048d9f15 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wvwC3qXSTIf+JBNeEbWmRIUoYmS644t+rXO0U7XlmGjdNfavEglQmZwDw+vN/jvsfIz/WWLFCs1/0lSLC34f28iTKCrM8mnK0ETD63CYqJwRGXBBJ0QMnOg9M1UyRQl/ujh7BjnTH7aXaUnMCMpPPouZvF6+yS+tLa2paxv5CHagOmjViyeZbFjOgHagMQZ75mCbgmDniVo3d8FUmcg8asGJn3kU26BDCbaaqnz2Lz64olsQgneu01zrKa5KptN0/PXMBB3/BWn2EmvLP/6kr9bLcf+Z/5dGoGPtRUPIwf5qS9E+kbdqrN+F8cywmun/AMg9c0vNGc/umu+nyFYFMcPxy2pfcymhmqJZ3DVR6pdBBKO9WCuITxu1fewUyRCiDo6KNcmeESD7vjzJYuqMe+3eDNgLyHglnWHV6UUhAh6MHsGzIz4XyGB81EYf2CamKkS+xBB3/BQHfMqyJJFCvPeIQdb9w2exkV81/C+4XBm4bOPfkdoVGIQo378i6+rLslZBNmAB0FbAu5X3GFiIlr85C9+gklq+f0VkElKKMIg8t13vjSka+SpHLOIIvIInxSUIC7LXmre9qWlVjW8hZ+J7c0UBLIP8VlfHz1gjC14VUXQOi09On0UtdO9v+UxClj1pkaubuvphhZYzQvwnZyuoX37Fu9jOkGAAn3ZFreSr3qY3Bqv50KGWfPFuOdstmpsxOjnrVDlUJaNAsW3pb5l9Ul4agv444//KYuiaUhc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH8PR10MB6337.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(376002)(396003)(136003)(346002)(366004)(39830400003)(451199018)(16799955002)(2906002)(33656002)(38100700002)(83380400001)(54906003)(71200400001)(316002)(66574015)(52536014)(966005)(478600001)(7696005)(6506007)(9686003)(186003)(64756008)(76116006)(6916009)(91956017)(38070700005)(66556008)(4326008)(8936002)(55016003)(66446008)(166002)(86362001)(8676002)(41300700001)(5660300002)(53546011)(122000001)(66476007)(66946007)(19627405001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eUZYWGVLTlpxNVB3R3gxR0U5L2I3ZUdvYmhBRjQrL0g0bWxXYW1WWEtLU1RM?= =?utf-8?B?MkU3REpCUDducGFmTUFKcW5hU3RwVmVCblowNFJodWhpK3VhZHJBeHZZd3B3?= =?utf-8?B?ME9iK1dMWWUzRTRCRmd6WDQvbDNIWXJXZENTUWwzZWpqZVVnQVU0NFVlcFRT?= =?utf-8?B?REdqUFlLSzU5ZkFVMTE5cHJrWXprd2lyOVZKVjF3WVBNNnFHeFZjRTJ6YU8x?= =?utf-8?B?S3pYZnUwa1hrMFQ2RWdoVDh4TFEwUjFwbWF2YXlaeU9GWlc0TitnQTd3UFV6?= =?utf-8?B?NEtTbGk4NWtsdkd3cVQxRWVxVHJKN0xhTXlqdG4xZ3F3QjB6RGR4bk1VZEor?= =?utf-8?B?VHZDNkF2amFaeW0zVlpMdXMxbXUwMEYvWkZ4TUpscXF6RklRVmwvTkl2SGs5?= =?utf-8?B?Tm1Sakg4czdncXpiVFZSdW4zTnp6czlINkdVZzhDWTA4S2tCTkozZU40RW9O?= =?utf-8?B?b3I1U0ovUUZ0K0taRitHUkdNaDFwRWtoa2hKMlNRbDBDSXNleGRLR2dFQXN5?= =?utf-8?B?Y0hzdHhtZG1VQTJ0L2phZk1jSm43OThqZ296VkJDQkowMEZ6VVY5WDM3UjRZ?= =?utf-8?B?SGNRVVMvN09tUFBPK3RsSHZiTmtuSWljbXFFMzNVOHBnYmQvNkNtSTM0bXNJ?= =?utf-8?B?eWZDamhIWTBNM0JQbHZUNFRPMTRxbnpWcnhweGRqbXVxbU9IeEg2OE04M3dv?= =?utf-8?B?eE1ISlNnWGdmWDdFSVBYOERJYTVJbkMrWElmNm0rVzR4R0ZpZWZGZ214NS9U?= =?utf-8?B?SE5qK2JQb0k4bncwSVZhZ3ZBVUxlWXY1M2FvSFRabVM5bDFLWjJBN1J4Nkhy?= =?utf-8?B?TTJPUVVHZXNKNkZMK3B5TjNjTjlvVWtHWEZ6VGp6RnlhcDQ0ZUZacXNOTlBV?= =?utf-8?B?N0JCZFJzbzFoWDFrNFNsZ3hYMnJnYnpqcW4vR2FNS2JWQ2FLUThtVi9CYW9I?= =?utf-8?B?ODB6cU14dmRKOVRmN3oybTZxZktxNUxETTBKOUtqS2xFd2dBbDhhZ1QvTzZu?= =?utf-8?B?K2tFTXN5MmZZemxMOVdTd0hjSGgxU0FLS0Z0c3BGRzQ5d3Y5bXprdW1CQWoy?= =?utf-8?B?MCtkcFhMZE96TEVpV3VLRTBRSU9pQmFKdVk1YmIwOWxzQ1dkeUdrb2NoYkx6?= =?utf-8?B?dGdpUVBwZGdJcENwdEZFVFdkdzBRQlV4SlZGR1V5YmZvc1k5QjNTLzlIU3Mv?= =?utf-8?B?V2NRdGZkcUZlcE0xcC9DanB0QXc5SGwyQi8wR0JPc3RlM1hzeWcvVk5kb01V?= =?utf-8?B?NXhvNWU2aXZqZnRJeE44MDZrQkt3N0pTSHZKQXFuYzRla3AySW9reVhoZS93?= =?utf-8?B?V0pCbHhMN0JjZ1JhZmlHTnhueWtVekRLRHQ0VzJRTVhwbTdDQnFhZDNzckdU?= =?utf-8?B?YzNuRDZNaytpMzVGdW1DUzFNVXh2b3hPd1R2WDlTWGY0OWljL29vaUR2eGg5?= =?utf-8?B?NXhZeHBnWURUQVp6OVl4M1BBaGZKcTNnYW9ON3YvVmJpZ09PZExBR2pQekls?= =?utf-8?B?T2lSODZkZ2NybFpKTXpDSER5WHcvNFpNdTB3a0xvVjltdzE2SXhuTDRheVhX?= =?utf-8?B?a0FDTG4zN2ZFMkMrcVphUjJvdnlyVG1yMmZqN1pUdkNCZU9vYWhYS3NJR3pD?= =?utf-8?B?YTg3NHUvUFNhUVhWb0hyRkE4c25URlczTDZLSEtubkhOZkMvMWVDZ3RKMFJy?= =?utf-8?B?RjNObGhmL0poZWduRjlMNHh3TEdNS05kWjgzTCtXNUZmYjNEL2FOZ3l3VEk5?= =?utf-8?B?eTc1OWhJQzJ2RHNkNVIvck84S3BrYWJiN2owQUlPZnpYeDJiUzN2L3g4ZSsy?= =?utf-8?B?QnJZMTBHbVBscnppbUJUaVRRUGprUWx5bStkVHMrQ3BjR1pJWUwzaDJvZTRa?= =?utf-8?B?OXFxbEhEYWRNeG1PSTNJU09aaGFOWGtoMFdpRGJ0NmdkVUNxcXBQMm1FSGFX?= =?utf-8?B?M2xPWDgxaVR4RVdMZ0Vtc2l3OUl4NzV6RXZNUU1Pa04yaU4wUHhYbWZEK3Rs?= =?utf-8?B?R2doWGhIT2tJS1dEekI0TVlHOVdMaW5Pb001ZGkveVJOTEQvTUNFVTlZTlRs?= =?utf-8?B?bjdqQVQ3MHY4UDJKdmljQmFuV2FKNVFPMUJNbW4wMFh3dDUrenNnRHBDaHpH?= =?utf-8?B?RjVLNHZkNUtQR0ZxNFhlbm9BNUFFUGlrMUdvTTZ5TVJwdzJRaFF1MlViSlEw?= =?utf-8?Q?avHYB0wf88U1oYFqRk+BNKw=3D?= Content-Type: multipart/alternative; boundary="_000_PH8PR10MB633797D920A0A6BA7EBEB5F1BFD19PH8PR10MB6337namp_" MIME-Version: 1.0 X-OriginatorOrg: shymko.net X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH8PR10MB6337.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc0fd67c-704f-42ad-b9bb-08db048d9f15 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2023 19:50:50.8801 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: d7878c48-41c7-48dd-bd7e-899af7355b7e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TFfzo5iuZuyTa6nlLDxgZaUh1EbOYQvHYt5FgmJxfIWf/5YdfJTWaT78GKHIQn6Xnh/paaTE7vre4KLqZrpkzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR10MB5538 Subject: Re: [PHP-DEV] RFC proposal: function array_filter_list() to avoid subtle bugs/workarounds From: sergey@shymko.net (Sergii Shymko) --_000_PH8PR10MB633797D920A0A6BA7EBEB5F1BFD19PH8PR10MB6337namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RnJvbTogQWxleGFuZHJ1IFDEg3RyxINuZXNjdSA8ZHJlYWxlY3NAZ21haWwuY29tPg0KU2VudDog V2VkbmVzZGF5LCBGZWJydWFyeSAxLCAyMDIzIDEwOjUzIEFNDQpUbzogU2VyZ2lpIFNoeW1rbyA8 c2VyZ2V5QHNoeW1rby5uZXQ+DQpDYzogTWFyY28gUGl2ZXR0YSA8b2NyYW1pdXNAZ21haWwuY29t PjsgUEhQIGludGVybmFscyA8aW50ZXJuYWxzQGxpc3RzLnBocC5uZXQ+DQpTdWJqZWN0OiBSZTog W1BIUC1ERVZdIFJGQyBwcm9wb3NhbDogZnVuY3Rpb24gYXJyYXlfZmlsdGVyX2xpc3QoKSB0byBh dm9pZCBzdWJ0bGUgYnVncy93b3JrYXJvdW5kcw0KDQoNCg0KT24gV2VkLCBGZWIgMSwgMjAyMywg MTk6NTkgU2VyZ2lpIFNoeW1rbyA8c2VyZ2V5QHNoeW1rby5uZXQ8bWFpbHRvOnNlcmdleUBzaHlt a28ubmV0Pj4gd3JvdGU6DQpIaSBNYXJjbywNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18NCkZyb206IE1hcmNvIFBpdmV0dGEgPG9jcmFtaXVzQGdtYWlsLmNvbTxtYWlsdG86b2Ny YW1pdXNAZ21haWwuY29tPj4NClNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgMSwgMjAyMyA5OjI1 IEFNDQpUbzogU2VyZ2lpIFNoeW1rbyA8c2VyZ2V5QHNoeW1rby5uZXQ8bWFpbHRvOnNlcmdleUBz aHlta28ubmV0Pj4NCkNjOiBpbnRlcm5hbHNAbGlzdHMucGhwLm5ldDxtYWlsdG86aW50ZXJuYWxz QGxpc3RzLnBocC5uZXQ+IDxpbnRlcm5hbHNAbGlzdHMucGhwLm5ldDxtYWlsdG86aW50ZXJuYWxz QGxpc3RzLnBocC5uZXQ+Pg0KU3ViamVjdDogUmU6IFtQSFAtREVWXSBSRkMgcHJvcG9zYWw6IGZ1 bmN0aW9uIGFycmF5X2ZpbHRlcl9saXN0KCkgdG8gYXZvaWQgc3VidGxlIGJ1Z3Mvd29ya2Fyb3Vu ZHMNCg0KSGV5IFNlcmdpaSwNCg0KDQpPbiBXZWQsIDEgRmViIDIwMjMgYXQgMTg6MjIsIFNlcmdp aSBTaHlta28gPHNlcmdleUBzaHlta28ubmV0PG1haWx0bzpzZXJnZXlAc2h5bWtvLm5ldD48bWFp bHRvOnNlcmdleUBzaHlta28ubmV0PG1haWx0bzpzZXJnZXlAc2h5bWtvLm5ldD4+PiB3cm90ZToN CkhpLA0KDQpBZnRlciBwcm9ncmFtbWluZyBpbiBQSFAgZm9yIHR3byBkZWNhZGVzLCBteSBnb2Fs IGZvciAyMDIzIGlzIHRvIHRyeSB0byBjb250cmlidXRlIHRvIHRoZSBsYW5ndWFnZS4NClRoZSBw bGFuIGlzIHRvIHN0YXJ0IHNtYWxsIGFuZCwgaWYgc3VjY2Vzc2Z1bCwgd29yayBteSB3YXkgdXAg aW5jcmVhc2luZyBjb21wbGV4aXR5IG9mIHByb3Bvc2Fscy4NClRoaXMgdG9waWMgaGFzIGJlZW4g Y2hvc2VuIGZvciBzdGFydGVycywgYmVjYXVzZSBJTU8gaXQgc3RyaWtlcyBhIGdvb2QgYmFsYW5j ZSBiZXR3ZWVuIHNpbXBsaWNpdHkgYW5kIHVzZWZ1bG5lc3MuDQpJIHNob3VsZCBiZSBhYmxlIHRv IGltcGxlbWVudCB0aGUgUkZDIG15c2VsZiwgdW5sZXNzIHNvbWUgZGVlcCBPUGNhY2hlL0pJVCBu dWFuY2VzIHBvcCB1cC4NCg0KTGV0IG1lIGdpdmUgeW91IGEgYnJpZWYgb3ZlcnZpZXcgb2YgdGhl IHByb2JsZW0gYW5kIHRoZSBwcm9wb3NlZCBzb2x1dGlvbi4NCkZ1bmN0aW9uIGFycmF5X2lzX2xp c3QoKSBhZGRlZCBpbiBQSFAgOC4xIGludHJvZHVjZXMgdGhlIGNvbmNlcHQgb2YgYSAibGlzdCIg 4oCTIGFycmF5IGhhdmluZyAwLi5jb3VudC0xIGluZGV4ZXMuDQpUaGUgZnVuY3Rpb24gaXMgYXdl c29tZSBhbmQgYXJyYXkgImxpc3RzIiBhcmUgY29tcGxldGVseSBjb21wYXRpYmxlIHdpdGggYWxs IGFycmF5XyogZnVuY3Rpb25zIQ0KSG93ZXZlciwgZnVuY3Rpb24gYXJyYXlfZmlsdGVyKCkgZXho aWJpdHMgYSBudWFuY2VkIGJlaGF2aW9yIHdoZW4gZmlsdGVyaW5nIGxpc3RzLg0KRm9yIGluc3Rh bmNlLCBpdCBwcmVzZXJ2ZXMgYXJyYXkga2V5cyB3aGljaCBtYXkgKG9yIG1heSBub3QpIGNyZWF0 ZSBnYXBzIGluIHNlcXVlbnRpYWwgaW5kZXhlcy4NClRoZXNlIGdhcHMgbWVhbiB0aGF0IGEgZmls dGVyZWQgbGlzdCBpcyBub3QgYSBsaXN0IGFueW1vcmUgYXMgdmFsaWRhdGVkIGJ5IGFycmF5X2lz X2xpc3QoKS4NCg0KRm9yIGV4YW1wbGU6DQokb3JpZ2luYWxMaXN0ID0gWydmaXJzdCcsICcnLCAn bGFzdCddOw0KJGZpbHRlcmVkTGlzdCA9IGFycmF5X2ZpbHRlcigkb3JpZ2luYWxMaXN0KTsNCnZh cl9leHBvcnQoZmlsdGVyZWRMaXN0KTsgIC8vIGFycmF5KDAgPT4gJ2ZpcnN0JywgMiA9PiAnbGFz dCcpDQp2YXJfZXhwb3J0KGFycmF5X2lzX2xpc3QoJG9yaWdpbmFsTGlzdCkpOyAgLy8gdHJ1ZQ0K dmFyX2V4cG9ydChhcnJheV9pc19saXN0KCRmaWx0ZXJlZExpc3QpKTsgIC8vIGZhbHNlDQoNClRo ZSBiZWhhdmlvciBpcyBjb3VudGVyaW50dWl0aXZlIGFuZCBjYW4gbGVhZCB0byBzdWJ0bGUgYnVn cywgc3VjaCBhcyBlbmNvZGluZyBpc3N1ZXM6DQplY2hvIGpzb25fZW5jb2RlKCRvcmlnaW5hbExp c3QpOyAgLy8gWyJmaXJzdCIsICIiLCAibGFzdCJdDQplY2hvIGpzb25fZW5jb2RlKCRmaWx0ZXJl ZExpc3QpOyAgLy8geyIwIjogImZpcnN0IiwgIjIiOiAibGFzdCJ9DQoNClRoZSB3b3JrYXJvdW5k IGlzIHRvIHBvc3QtcHJvY2VzcyB0aGUgZmlsdGVyZWQgYXJyYXkgd2l0aCBhcnJheV92YWx1ZXMo KSB0byByZXNldCB0aGUgaW5kZXhlcy4NClRoZSBwcm9wb3NhbCBpcyB0byBpbnRyb2R1Y2UgYSBm dW5jdGlvbiBhcnJheV9maWx0ZXJfbGlzdCgpIHRoYXQgd291bGQgd29yayBzb2xlbHkgb24gbGlz dHMuDQpJdCB3aWxsIGhhdmUgdGhlIHNhbWUgc2lnbmF0dXJlIGFzIGFycmF5X2ZpbHRlcigpIGFu ZCB3aWxsIGFsd2F5cyByZXR1cm4gYSB2YWxpZCBsaXN0Lg0KDQpTZWUgYSBkcmFmdCBSRkMgd2l0 aCBtb3JlIGRldGFpbHMgaGVyZToNCmh0dHBzOi8vZGV2LnRvL3NzaHlta28vcGhwLXJmYy1hcnJh eWZpbHRlcmxpc3QtZnVuY3Rpb24tMzVtYi10ZW1wLXNsdWctNzA3NDAwMD9wcmV2aWV3PTIxZDY3 NjAxMjZhMDI0NjRiMDUxMTQ5OGJiYjk1NzQ5MTUwYWZiMTdhN2ZmNjM3N2M0NThlZTU0YThmNTdj ZmUwMGQ0ZTI1OGFhMDZiYWQzMjMyYzBkZDllNzNhMmQ2MjEzOGZjOTkwMDQ4OTg3ZTllMjMzOWEz ZA0KDQpJIGp1c3QgcmVnaXN0ZXJlZCBhIHdpa2kgYWNjb3VudCAic3NoeW1rbyIgd2l0aCB0aGUg aW50ZW50aW9uIG9mIHN1Ym1pdHRpbmcgdGhlIFJGQy4NCkNvdWxkIHNvbWVvbmUgcGxlYXNlIGFw cHJvdmUgdGhlIGFjY291bnQgYW5kIGdpdmUgaXQgc29tZSBrYXJtYT8NCg0KTG9va2luZyBmb3J3 YXJkIHRvIGNvbGxhYm9yYXRpbmcgd2l0aCB0aGUgaW50ZXJuYWxzIHRlYW0hIPCfmYINCg0KDQpJ IGRvbid0IHdhbnQgdG8gc2hvb3QgdGhpcyBkb3duIHRvbyBlYXJseSwgYnV0Og0KDQogMS4gd2h5 IGluIHRoZSBsYW5ndWFnZSwgd2hlbiBhIHNpbXBsZSB1c2VybGFuZCBmdW5jdGlvbiBzdWZmaWNl cz8NCiAyLiB3aGF0J3Mgd3Jvbmcgd2l0aCB3cml0aW5nIGBhcnJheV92YWx1ZXMoYXJyYXlfZmls dGVyKC4uLikpYD8NCg0KTWFyY28gUGl2ZXR0YQ0KDQpodHRwczovL3R3aXR0ZXIuY29tL09jcmFt aXVzDQoNCmh0dHBzOi8vb2NyYW1pdXMuZ2l0aHViLmlvLw0KDQoNCkkgZG8gdW5kZXJzdGFuZCB0 aGUgYXZlcnNpb24gdG8gYWRkaW5nIG1vcmUgZnVuY3Rpb25zIHRvIFBIUCBjb3JlIPCfmYINCg0K SSB0aGluayB0aGF0J3MgcmF0aGVyIHNpbXBsZSBmcm9tIHRoZSBkaXNjdXNzaW9ucyBJJ3ZlIHNl ZW4gaGVyZSBpbiB0aGUgcGFzdCB5ZWFyczoNCkMgY29kZSBpcyBoYXJkZXIgdG8gd3JpdGUsIG1h aW50YWluIGFuZCB1bmRlcnN0YW5kIHdoaWxlIFBIUCBjb2RlIGlzIHNpbXBsZXIgYW5kIGlzIGFs c28gbm90IGJvdW5kIHRvIHBocCB2ZXJzaW9uaW5nIHNvIGl0IGNhbiBldm9sdmUgZmFzdGVyLg0K T2YgY291cnNlLCBnaXZlbiB0aGF0IHRoZSBwZXJmb3JtYW5jZSBpcyBzaW1pbGFyLg0KV2hlbiB0 aGUgcGVyZm9ybWFuY2UgaXMgZ3JlYXRseSBiZXR0ZXIgd2hlbiBoYXZpbmcgdGhlIGZ1bmN0aW9u IG5hdGl2ZSwgaXQgbWFrZXMgbW9yZSBzZW5zZSwgbGlrZSBpdCB3YXMgdGhlIGNhc2Ugd2l0aCBh cnJheV9pc19saXN0KCksIHdoZXJlIHRoZSBpbmZvcm1hdGlvbiBleGlzdHMgYXMgYSBmbGFnIGlu dGVybmFsbHkgYWxtb3N0IGFsd2F5cy4NCg0KSSB3b3VsZCBzdWdnZXN0IHlvdSBjaGVjayBodHRw czovL2dpdGh1Yi5jb20vYXpqZXp6L3BzbC9ibG9iL25leHQvc3JjL1BzbC9WZWMvZmlsdGVyLnBo cCNMMzQNCmFuZCBtYXliZSB1c2UgdGhlIGxpYnJhcnkgZm9yIG90aGVyIGZlYXR1cmVzIGFzIHdl bGwuDQoNCk9yIHlvdSBjYW4gYWN0dWFsbHkgZG8gdGhlIGltcGxlbWVudGF0aW9uIGFuZCBzaG93 IGFsc28gc29tZSBudW1iZXJzIHJlZ2FyZGluZyB0aGUgcGVyZm9ybWFuY2UgdG8gaGF2ZSBhIGJl dHRlciBjaGFuY2Ugb2YgaGF2aW5nIHRoZSByZmMgcGFzcy4gVGhhdCdzIHdoYXQgSSBvYnNlcnZl ZCBpdCBoZWxwcy4NCg0KUmVnYXJkcywNCkFsZXgNCg0KDQpMZXQgbWUgdHJ5IHRvIGFydGljdWxh dGUgdGhlIGFuc3dlcnMgdG8geW91ciBxdWVzdGlvbnM6DQoNCiAgMS4gIEEgdXNlcmxhbmQgZnVu Y3Rpb24gaXMgZW5vdWdoLCBpdCdzIGFsbW9zdCBhbHdheXMgcG9zc2libGUgdG8gY3JlYXRlIGEg dXNlcmxhbmQgZnVuY3Rpb24uDQpIb3dldmVyLCBwcmV0dHkgbXVjaCBldmVyeSBzaW5nbGUgUEhQ IHByb2plY3Qgd291bGQgbmVlZCBpdCBhbmQgdXNlIHByZXR0eSBvZnRlbi4NCkl0IHdvdWxkIGJl IGdyZWF0IHRvIHN0YW5kYXJkaXplIHRoZSBmdW5jdGlvbiBuYW1lLCBlc3BlY2lhbGx5IG5vdyB0 aGF0IGl0IGNvbXBsaW1lbnRzIGFycmF5X2lzX2xpc3QoKS4NClRoZSBzYW1lIHVzZXJsYW5kIGFy Z3VtZW50IGNhbiBiZSBtYWRlIGZvciBhcnJheV9pc19saXN0KCksIHlldCBwZW9wbGUgYXJlIGFw cHJlY2lhdGluZyB0aGUgZnVuY3Rpb24uDQpUaGUgcmVhc29uaW5nIGZvciBhZGRpbmcgYXJyYXlf ZmlsdGVyX2xpc3QoKSB0byB0aGUgY29yZSBpcyBzaW1pbGFyIHRvIGFycmF5X2lzX2xpc3QoKS4N CiAgMi4gIFRoZSBhcnJheV92YWx1ZXMoYXJyYXlfZmlsdGVyKCkpIHdvcmthcm91ZCBpcyB1c2Fi bGUgYW5kIGlzIGluZGVlZCB1c2VkIG9uIHRoZSBwcm9qZWN0cyBJJ20gaW52b2x2ZWQgd2l0aC4N Ckl0J3MgYSByZWxhdGl2ZWx5IHNob3J0IG9uZS1saW5lciBhbGxvd2luZyB0byBub3QgZ28gdG8g dGhlIGV4dGVudCBvZiB3cmFwcGluZyBpdCBpbiBhIHVzZXJsYW5kIGZ1bmN0aW9uLg0KU29tZSBv ZiB0aGUgZGlzYWR2YW50YWdlcyBpbmNsdWRlIGhhdmluZyB0byBhbHdheXMgbWVudGFsbHkgdHJh bnNsYXRlIGl0IGluIHlvdXIgaGVhZCB0byAiZmlsdGVyIGxpc3QiLg0KVGhlIHdvcnN0IHRoaW5n IGlzIHRoYXQgOS8xMCB0aW1lcyBkZXZlbG9wZXJzIChtZSBpbmNsdWRlZCkgd291bGQgb3Zlcmxv b2sgdGhpcyBudWFuY2VkIGJlaGF2aW9yLg0KTG9naWNhbGx5LCBwZW9wbGUgYXNzdW1lIHRoYXQg YSBzdWJzZXQgb2YgYSBsaXN0IGlzIGEgbGlzdCwgd2hpY2ggdW5mb3J0dW5hdGVseSBpc24ndCBh bHdheXMgdGhlIGNhc2UuDQpUaGV5J2QgZm9yZ2V0IHRvIGltcGxlbWVudCBhcnJheV92YWx1ZXMo KSBhbmQgY2F1c2UgYnVncyB0aGF0IGFyZSBub3QgaW1tZWRpYXRlbHkgZGV0ZWN0YWJsZS4NCkF0 IGxlYXN0IDMtNCBvZiBwcm9qZWN0cyBpbiBteSByZWNlbnQgbWVtb3J5IGV4cGVyaWVuY2VkIHRo aXMgaXNzdWUsIGl0IGdvdCBvdmVybG9va2VkIGF0IGNvZGUgcmV2aWV3Lg0KRXZlbiBhdXRvbWF0 ZWQgdGVzdHMgZGlkIG5vdCBjYXRjaCBpdCBhcyB0aGUgaXNzdWUgcmVtYWlucyBoaWRkZW4gd2hl biBmaWx0ZXJpbmcgb3V0IHRoZSB0YWlsIGVuZCBvZiBhIGxpc3QuDQpBZnRlciBicmFpbnN0b3Jt aW5nIHdpdGggZGV2ZWxvcGVycywgd2UgY29uY2x1ZGVkIGZvcm1hbGl6aW5nIHRoZSBjb25jZXB0 IG9mIGEgImxpc3QiIG1vcmUgd291bGQgaGVscC4NCkhhdmluZyBmdW5jdGlvbnMgYXJyYXlfaXNf bGlzdCgpIGFuZCBhcnJheV9maWx0ZXJfbGlzdCgpIHdvdWxkIG1ha2UgeW91IHRoaW5rIGluIHRl cm1zIG9mIGxpc3RzIG1vcmUuDQpPbmUgd291bGQgdXNlIGFycmF5X2ZpbHRlcl9saXN0KCkgaW5z dGVhZCBvZiBhcnJheV9maWx0ZXIoKSBieSBkZWZhdWx0IHVubGVzcyB0aGV5IHdvcmsgd2l0aCBh c3NvYyBhcnJheXMuDQoNCk1heWJlIHRoZXJlIGNvdWxkIGJlIGFuIGV2ZW4gbW9yZSBhZHZhbmNl ZCBhcHByb2FjaDogZm9ybWFsaXppbmcgdGhlIGxpc3QgZGF0YSB0eXBlLg0KQnV0IGl0IHdvdWxk IGJlIGFuIG92ZXJraWxsIHRvIHByb3Bvc2UgYSBtYWpvciBjaGFuZ2UgbGlrZSB0aGlzIGF0IHRo aXMgdGltZS4NCg0KUmVnYXJkcywNClNlcmdpaQ0KDQoNClRoYW5rcyBmb3IgeW91ciBmZWVkYmFj aywgQWxleC4NClBlcmZvcm1hbmNlIG9mIGFycmF5X2ZpbHRlcl9saXN0KCkgd2lsbCBiZSBpZGVu dGljYWwgdG8gYXJyYXlfZmlsdGVyKCkgd2l0aG91dCB0aGUgb3ZlcmhlYWQgb2YgYXJyYXlfdmFs dWVzKCkuDQpOb3Qgc3VyZSB0aGF0IHdvdWxkIGJlIHNpZ25pZmljYW50IGVub3VnaCBvZiBhIGRp ZmZlcmVuY2UgdG8gYmUgY29tcGFyYWJsZSB3aXRoIGFycmF5X2lzX2xpc3QoKS4NCkkgbWF5IGlt cGxlbWVudCB0aGlzIGp1c3QgdG8gcHJhY3RpY2UgQyBhbmQgd2lsbCBiZSBhYmxlIHRvIHByb3Zp ZGUgZXhhY3QgbWVhc3VyZW1lbnRzIHRoZW4uDQo= --_000_PH8PR10MB633797D920A0A6BA7EBEB5F1BFD19PH8PR10MB6337namp_--