From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 411BBC43334 for ; Fri, 24 Jun 2022 02:42:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A7BCB8E01BB; Thu, 23 Jun 2022 22:42:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A2BC88E01B9; Thu, 23 Jun 2022 22:42:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8A40C8E01BB; Thu, 23 Jun 2022 22:42:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 75AE18E01B9 for ; Thu, 23 Jun 2022 22:42:26 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 38ED233D13 for ; Fri, 24 Jun 2022 02:42:26 +0000 (UTC) X-FDA: 79611580692.10.3D8F780 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2067.outbound.protection.outlook.com [40.107.220.67]) by imf23.hostedemail.com (Postfix) with ESMTP id 967D6140023 for ; Fri, 24 Jun 2022 02:42:25 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fKUmVg5ihU3A5MfocR47vu14Kem7fE5poiDFZERKMDyEhLlIcmwZl2f4DhPXRrEA4OGPhCdVSDBU1D3TEiu6D/nDSQdH3Gyw/h+oGuHKDJk8eMFpZSsA/Bw7pqtmRTjndUqi6NCvYXAB0u6I64dd/QDqVAyosyS7ZImt4Z+m3tEQAOnOWTVhh+tjm9eNye7SszQbWNtKrxn8RPN3R8HhomoGULedSWCGXcamC0zC8GlacJL4qqyhkNVb1G3J9eSHY9BMw3HUAvJyx0HGf69fOS8+9W2cUcjyERctu1SUWQ3EkfLtjygWl33/h2pp88xJBsMtEAerF9YsarT8cJK2ag== 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=FnPPgCB/6hTwTesYJR4aymyjNDl/L32vGdRRFvKS9vc=; b=m/TEbFvD3o7lsYbEG73sws/x9dwedAdmr03PASTQ/c15Lumyfewd99T+Cpx3ksX1J9S1jZ/2F6tDNo4pyFJny2bLnqo4b2+ByFx6coEbxl8CtUwn34sqvTWrckBYZvYduoeElzJn583eXP4obKYAf/wEnczO6LI/Yfr1Y9Y/Iw96jZmj5woOYgvrqSvZtUfS0elhAk0lgxTJQaGy5Oyyp3+M6zsSkBhacpDhjNqABsN//WNaY7618laYrWHHLuuiRXgbF2847MK5oOLUUpgH3dD13iCRAwDmSL+lPPGcx3OjdUIlDkLr5nH7YYKWPbx+h3VU/m34h2XqZvwAhON7NA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FnPPgCB/6hTwTesYJR4aymyjNDl/L32vGdRRFvKS9vc=; b=Qj/nPJO5LeO4bh1ZwzSe2MovN/2jvajerGGA9MizbGDlIj6zCbNALX+QImMtrGRFhtn7cvSvx/0rXKp5oetzP6npe9K3cdqX9lEp2x/jC1db9nYML96SNuhxfdS1IRlpdOeay2qm5gLVVNciqiMcsKc7gNh8OaVscN8sOEY2Nhs= Received: from BY3PR05MB8531.namprd05.prod.outlook.com (2603:10b6:a03:3ce::6) by DM5PR05MB3644.namprd05.prod.outlook.com (2603:10b6:4:42::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Fri, 24 Jun 2022 02:42:21 +0000 Received: from BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::a4f8:718a:b2a0:977f]) by BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::a4f8:718a:b2a0:977f%5]) with mapi id 15.20.5373.016; Fri, 24 Jun 2022 02:42:21 +0000 From: Nadav Amit To: Peter Xu CC: Linux MM , Mike Kravetz , Hugh Dickins , Andrew Morton , Axel Rasmussen , David Hildenbrand , Mike Rapoport Subject: Re: [PATCH v1 2/5] userfaultfd: introduce access-likely mode for common operations Thread-Topic: [PATCH v1 2/5] userfaultfd: introduce access-likely mode for common operations Thread-Index: AQHYhqiRUk3vhOHs90CD+bXeUTpwQa1do3aAgAAC7YCAAAQpgIAAA9gAgAAh8ACAAApnAA== Date: Fri, 24 Jun 2022 02:42:21 +0000 Message-ID: <6EF7D3B4-CF17-407B-A50F-B14D595E99A5@vmware.com> References: <20220622185038.71740-1-namit@vmware.com> <20220622185038.71740-3-namit@vmware.com> <18BCC23E-B344-41A8-926D-A49D768485AF@vmware.com> 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.100.31) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4070de86-a064-48c8-d309-08da558b297d x-ms-traffictypediagnostic: DM5PR05MB3644:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: =?utf-8?B?MnZTQkhUdTVhaEd4Um9LaEFrRE9XRGRmckFxbzVPL0sxWTYrd1FpV1BIUzRn?= =?utf-8?B?RktPb2xFSlNkdlZXTENtdTdLNW5FS1dNMERwOEtkZGd2eTYyOU5PWGg5cEJS?= =?utf-8?B?b3FhdGtIQ2UxR1B1NVFLekE5MUprT285NkdmdFM1YTZQMFNuem9JT1lkaXlq?= =?utf-8?B?Rk1Wc1pWMGhLak9tNklaUlk0UTlITFkyR3MrcDFmNjZsZEE3YmswaEZJcE1p?= =?utf-8?B?RDZNTE9ub0Z0bWdYalFxZWkwS0ZpQUVROUhWdjJ1WWNFT3R3cW1Sc1JzVnd2?= =?utf-8?B?VERscjgvd3grWFBLQlF2MVlvMHRuWjA3Z1lnT3RtbDVFNmRrd2tqS2tSR2pS?= =?utf-8?B?Z1ZlTXg5bXk3MUEyVGlSNTlKTGlJa3Z6Z0xFM25namN3YmNuYVk2S0V5K09D?= =?utf-8?B?cFNMNjVQQUxqRE9MZEg2L1REeUZaaXo5ZVl5VElDWTg0VTRmcGNQVElFQ0I0?= =?utf-8?B?eWpwWms5TjhNYmszNFFEbGVVeVB5N0VHdm1iR21sZzc4MG83TS9SNHNhZ1BN?= =?utf-8?B?SFJscmJpVy9aaHRsMXg0R2xZTTVVN0tBdEY0WWhQMlB0TjJ2eEwveW4xRytj?= =?utf-8?B?dnJEay83MzgxczZ6RisxeGhaTFpqUThhL0xFT3NwNVZzUS9VNy9rRmZjTStP?= =?utf-8?B?bVJINU14V2NlUXJnYTB2cDhqbzNKOTVNMnBzQlNZb3k2aFJBZW8zNVE2SW5Z?= =?utf-8?B?RjhycjhiSmVnazY4VjY3ZGZoeXZMOGc5VDdvU1Mxak5OalJpZEgxYWQvaVpB?= =?utf-8?B?K3IrQS9kV1JPUkRkUE13OGhKRmllSEYwc0tSUEgxbmljQVdDYm9vNm8yMjQz?= =?utf-8?B?NGdlWHd4YXpJT1FUODJaNlVvUHFWL0FTNk1XektLUUNSOHg4eFJiRytMaUlq?= =?utf-8?B?YkFULyt2cm4wcVh3ZDgvR244ME9wSVhjNWZGTDdibXllTDVLV2RISkhWZnh1?= =?utf-8?B?UWFQNVhZalQ3aXdYZjI1UjdpRlZrMnhIMGVMZVY5NHUxcmZZL0NhaVNISUxT?= =?utf-8?B?cVNSbUMzQzdwZTUyNHZrQmQzcTFKWVludWlJNDhxVHVYSlJLMG9tNVhFSHhZ?= =?utf-8?B?MW9saEpqT0xHL3VtMXEwUkdPYUpXYzRoYkdNelNWcFBQOVZPaURQM2VRR2cr?= =?utf-8?B?UzFkNUF4NDgvTjRsblN1aG9mcWRBb003b1NmUXdSL0VrVjdldXJUOC8rcGpG?= =?utf-8?B?UGtQMHA4cmExQVF5YkdCdnJZaXE1eHJzQ0FtenVyZkRUR0Q1b0c4MXpjTURx?= =?utf-8?B?MXBtdXpRVHBlcXA4K1A1SThMNEtEWmJRa2JFWExhYnZiTUlFQT09?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY3PR05MB8531.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(39860400002)(376002)(366004)(346002)(136003)(396003)(8936002)(122000001)(38070700005)(86362001)(2906002)(5660300002)(316002)(53546011)(38100700002)(6506007)(6916009)(6512007)(26005)(6486002)(71200400001)(36756003)(54906003)(83380400001)(478600001)(8676002)(4326008)(966005)(66946007)(66556008)(64756008)(66446008)(76116006)(2616005)(66476007)(41300700001)(186003)(33656002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q2c3MXI3T3hmZUhlMElJa25McDhsNndQU2NMeFIyYkVSU0ZLdTdCZ3BCKzJN?= =?utf-8?B?TzVEWmR5VWF0VkpBckFRRUF1RTdrbStTaFJ1OWNrNW5SUDFJRXJVbS9DS1c5?= =?utf-8?B?SDZpdzduRU5zcHJpTS83eEV3czdmdisvQTdHT0hxS0ZJRUV3RmpFZTJtMHV4?= =?utf-8?B?cmJkU2hCRGxUQys1MkpiRmRmUXQrampkTzJpRlNwVUt1dnRPVGtDeW1BZHh6?= =?utf-8?B?WE0rOHRyY1g0OGpmdlNzRldvZnZoSVhhandiRm13VWhCUTc3THRjRzJsa2N1?= =?utf-8?B?UERsYllkZHk4TURXdGk5YkdhTjhMWEh4SFpRelFIVjB1QXdJTVNBR0F0REx6?= =?utf-8?B?dlNxcE1VYmlRNWNyQXg5dUVRdGZrT1V1R0FrbHZTSkdkNy9kRkhKeVZaVGk1?= =?utf-8?B?eE1JMlowWW9UVERUVjBqcEVBRmU2dVpPcE5MZ21WQTByR3RvTWd5N0pyYktt?= =?utf-8?B?VWVZOVZ2MkthdFdjbHpseGRsNlFxY2IvTWZOMk9nSUNYTjRDbnR2MnhlNE5H?= =?utf-8?B?MlRaK3REQ0N1cEkyMklXdC9uc0lXNzMxd0ZFQmUyVGlUM2J1ZlFtTWZSTE42?= =?utf-8?B?cy9MNjlHYTdWeGpCTVR6RDNibnVJSFYxdllVUGJTd0F0RUxUdEFadzRnOUZH?= =?utf-8?B?YlpMRkpvWGtud0Z4WjJpWlF6djZaeGU3NDlNd0IrRSt6cTd1TFhHc2Zvd2pR?= =?utf-8?B?S1lnWmNCei8yN3lGWVliNFRyYnlWQkVaTDlhS1VnTEZLeGxIV2dNbUkzTDFy?= =?utf-8?B?NDVOWUN5MU5Ob0lNbnRsSXdSMVdMVG9RdEpIckU3OUM2anl2akYwRHFCTnBa?= =?utf-8?B?ZTlsaThqTUwxU09RWll3b1RSaFIzTXRlVTVGYWJkenp4bDNpdDMrUHlnOCtE?= =?utf-8?B?WUdGdjVWSnA0aTFndEdhc2FpU0Z4c0l3ZE9KYnloTmEyM2tKSG5waEVHZ0xN?= =?utf-8?B?dWI4L1QyOXArNHhldHBxZW9lTkpVdmlLSXcvSndIcW5SVjNHZ0pkKzkyMDJL?= =?utf-8?B?MWc3TlI1Sjg0NnVKeGhwWklIbEpTMFZMdXcvVnFZQ1dNemxIWXpielgxTE42?= =?utf-8?B?Tk8ycUJNNjNuNDNnL1BiY0tOK3MwejhkeUJWMTlRaHdDUkdyVkM4dlBhSGhy?= =?utf-8?B?WG5UVFZzNXFpYVpHVWRjS2tkaE5hWUgrVTVEVzIxd3FhVTdCTExyczZlV3lj?= =?utf-8?B?UlZxRHJuWTRGZE1CSnU4Z011cWRLb0drRGpzZ2JyRWRNTTQxMjBrWlBiNWNH?= =?utf-8?B?MmpVVDIrOFJVQlMwdFc3TDI2Ylc5c0NQOGY5aGt0MDAzZDVaaVI1SGEyREkw?= =?utf-8?B?UGk2N2R4S1ZJbFhxQVBGSTBlaEhEOWJmM1Njei95K3lmTGtMZE9yYjMxeGNQ?= =?utf-8?B?MEo3SG1IQXhFck5Fb1EyaFhGWG91cG9KUCtzYmRidmFCYnlnNUcwYS90TGQr?= =?utf-8?B?aFpsTDdPUHg0VXlTa084NzBMTkxZSFFBMU1UTEx0K1pCclgweGdZcmVORi80?= =?utf-8?B?RGZHK2h4YVRiMlV6NkZWK25mVGZHNmVqdXA5Z1dsZjlkR2FGMHZWdlhpZWhw?= =?utf-8?B?Sm80bnNEbUVPYitkVkNPUnp4VU93NW1DTEtlcmRtbVEwNllEYlpHV21COWVp?= =?utf-8?B?RU5OL1lwV0Fmb1N2SXJEaGxWNFFidDA2RnNVUDhJZzJ6YWcrQjdMeTVRZmlJ?= =?utf-8?B?YkYzZDM5MkFOdXhZWVBidnJHeXgxVlArMkU3YVhNQWJJTUozWG9aZndyK3NZ?= =?utf-8?B?aVpXcWd1Lzh1cHRITFlvR1lFTXcveUVCUHVHc1BDbE8vaVRGWWJlaFZtb3pW?= =?utf-8?B?TDZsYXUyNGZrc0lCN29IYmx3VXpXWFMxU2ZLMHZ0UFBLVmNoQk1VSllCdlBY?= =?utf-8?B?c3kwWmZ3QzNJakptMnNFbjRIdVNsVnNTdVAwRDhLTlZ1Mnd1em1EcDNpZU1L?= =?utf-8?B?bDZmRXlaOHMvVm81eUpZc1N2NUlRQWlDb25lSTkvTHFUY2VGVnNSNldDNkI5?= =?utf-8?B?aGxXdEI2QXlxTFZ2MkpBS2wyb245WGhlRTRPSWhic0h5d0NRMFdpVHdNaGFI?= =?utf-8?B?ZktJN2NMYmkyWHRURFVnZVBVRVpzUUhSOW4yWjAwZ01DeGlVdkNvZWtVQnVE?= =?utf-8?Q?F9H7NjmWsMPDN/FRcj2vn/qX/?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR05MB8531.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4070de86-a064-48c8-d309-08da558b297d X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2022 02:42:21.0961 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: C9eSPdmfqNGbAPu/1Kj0EKWQ8nVZ+Z0iDeFGqxbGTBCk7OG9nPm3y5SjGLLNBE6UVoRbNEzYKOrddcZCWvPrFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR05MB3644 ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656038545; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=FnPPgCB/6hTwTesYJR4aymyjNDl/L32vGdRRFvKS9vc=; b=J6UN2pZk6EpAk6kdAayWA17JV+bW7SJPMtHhj9MoRppBFQZzZ/xaftCAbs205sOrr9SSkk 2whyTl3Z1thDUBV4VVeOYTrpJVCRfOoWWpE55AfzBrhNHyl1n3RMr2d2I+xAwHzA8uL8zO skluQwq94rSwpTnNpowNPiZ8tCkf2GA= ARC-Authentication-Results: i=2; imf23.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b="Qj/nPJO5"; dmarc=pass (policy=quarantine) header.from=vmware.com; spf=none (imf23.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.220.67) smtp.mailfrom=namit@vmware.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1656038545; a=rsa-sha256; cv=pass; b=LZ9DYvzLeLT+JPdz7E7fEsK1aXaHlGV5iY1y0BMvnYau8m83lEEufcJetwSKmNC5V+PJxB ViRhItg2t+Ko9TqduY4Cqbw2KyeqDiHxKE535O+BjXt50yPVq5p5011my6zmOTfQr1dOWK 6oKvf1iL0H0/d3HHQK0k4LNUdnKdxa4= X-Rspamd-Queue-Id: 967D6140023 Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b="Qj/nPJO5"; dmarc=pass (policy=quarantine) header.from=vmware.com; spf=none (imf23.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.220.67) smtp.mailfrom=namit@vmware.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: o3swctg17fk9ergdabqf8fbudigo6eh5 X-HE-Tag: 1656038545-986733 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: DQoNCj4gT24gSnVuIDIzLCAyMDIyLCBhdCA3OjA1IFBNLCBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhh dC5jb20+IHdyb3RlOg0KPiANCj4gT24gRnJpLCBKdW4gMjQsIDIwMjIgYXQgMTI6MDM6MzhBTSAr MDAwMCwgTmFkYXYgQW1pdCB3cm90ZToNCj4+IE15IHRha2UgaXMgdGhhdCBoaW50cyBhcmUgaGlu dHMuIEZvbGxvd2luZyBEYXZpZOKAmXMgKG9yIHdhcyBpdCB5b3Vycz8pDQo+PiBmZWVkYmFjaywg SSBmaXhlZCB0aGUgZGVzY3JpcHRpb24gdG8gaW5kaWNhdGUgdGhhdCB0aGlzIGlzIG1lcmVseSBh IGhpbnQgYW5kDQo+PiByZW1vdmVkIGFsbCByZWZlcmVuY2VzIHRvIGRpcnR5L2FjY2VzcyBiaXRz LiBUaGUga2VybmVsIHRoZXJlZm9yZSBjYW4gaWdub3JlDQo+PiB0aGUgaGludCB3aGVuIGl0IHdh bnRzIHRvIG9yIHVzZSBpdCBpbiBhbnkgb3RoZXIgd2F5LiBJIGZ1bGx5IGFncmVlIHRoYXQNCj4+ IHRoaXMgZ2l2ZXMgdGhlIGtlcm5lbCB0aGUgYWJpbGl0eSB0byBjaGFuZ2UgdGhlIGJlaGF2aW9y IGFzIG5lZWRlZC4NCj4+IA0KPj4gTm90ZSB0aGF0IGZvciB3cml0ZS1wcm90ZWN0ZWQgNEtCIHpl cm8tcGFnZSAod2hlcmUgd2Ugc2hhcmUgdGhlIHplcm8tcGFnZSkNCj4+IHdlIGFsd2F5cyBzZXQg dGhlIGFjY2Vzcy1iaXQsIHJlZ2FyZGxlc3Mgb2YgdGhlIGhpbnQsIGJlY2F1c2UgaXQgbWFrZXMN Cj4+IHNlbnNlOiB0aGUgemVyby1wYWdlIGlzIG5vdCBzd2FwcGFibGUgYW5kIHRoZXJlZm9yZSB0 aGUgYWNjZXNzLWJpdCBpcyBzZXQuDQo+IA0KPiBUaGUgemVyby1wYWdlIGV4YW1wbGUgbWFrZXMg c2Vuc2UsIGFuZCB5ZWFoIHRoYXQgbWFrZXMgdGhlIGh1Z2V0bGIgYmVoYXZpb3INCj4gbWFraW5n IG1vcmUgc2Vuc2UgdG9vLg0KPiANCj4+IA0KPj4gSSB0aGluayB0aGF0IHRoZSBsZXNzZXIgdXNl ci1mYWNpbmcgZG9jdW1lbnRhdGlvbiB0aGVyZSBpcyBvbiBob3cgdGhlDQo+PiBmZWF0dXJlIGlz ICpleGFjdGx5KiB1c2VkIGJ5IHRoZSBrZXJuZWwgLSBpcyBiZXR0ZXIgZnJvbSBhbiBBUEkgcG9p bnQgb2YNCj4+IHZpZXcuDQo+PiANCj4+IFNvIEkgc2VlIG5vIHJlYXNvbiB0byBmYWlsIG9yIGJl IGZvcmNlZCBub3QgdG8gc2V0IGEgcGFnZSBhcyB5b3VuZywganVzdA0KPj4gYmVjYXVzZSBhIGhp bnQgd2FzICpub3QqIHByb3ZpZGVkLiBUaGlzIHdvdWxkIGV2ZW4gYmUgYSByZWdyZXNzaW9uIGlu IHRoZQ0KPj4gYmVoYXZpb3IuIFRoZSBoaW50IGlzIGFjdHVhbGx5IGFsd2F5cyByZXNwZWN0ZWQg cmlnaHQgbm93LCBpdCBpcyBqdXN0IHRoYXQNCj4+IGV2ZW4gaWYgeW91IGRvIG5vdCBwcm92aWRl IHRoZSBoaW50LCB0aGUgYWNjZXNzL2RpcnR5IGlzIHNldC4NCj4+IA0KPj4gVGhlIG9ubHkgY29u c2lzdGVuY3kgSSB0aGluayB3b3J0aCB0aGlua2luZyBhYm91dCBpcyB3aXRoIHRoZSBkaXJ0eS1i aXQsIGFuZA0KPj4gSSBjYW4gYWRkIGl0IGlmIHlvdSB3YW50LiBOb3RlIHRoYXQgdGhlIGFjY2Vz cy1iaXQgKGluIHg4NikgbWlnaHQgYmUgc2V0DQo+PiBzcGVjdWxhdGl2ZWx5IGluIGNvbnRyYXN0 IHRvIHRoZSBkaXJ0eS1iaXQgaXMgb25seSBzZXQgYXRvbWljYWxseSB3aXRoIGENCj4+IHJlYWwg YWNjZXNzLiBUaGF04oCZcyB0aGUgcmVhc29uIEkgdGhpbmsgaXQgbWF5IG1ha2Ugc2Vuc2Ugbm90 IHRvIHNldCB0aGUNCj4+IGRpcnR5IHdpdGhvdXQgYSBoaW50Lg0KPiANCj4gU29ycnkgdG8gYXNr IGlmIHRoaXMgaXMgKGFub3RoZXIpIG5haXZlIHF1ZXN0aW9uOiBhbnkgbGluay9oZWxwIHRvIGV4 cGxhaW4NCj4gdGhlIHNwZWN1bGF0aXZlIGJlaGF2aW9yIG9uIGFjY2VzcyBiaXQ/IElzIGl0IHBh cnQgb2Ygc3BlY3VsYXRpdmUNCj4gZXhlY3V0aW9uICh3aGljaCwgaWl1Yywgd291bGQgaXQgYmUg cmV2ZXJ0ZWQgaWYgdGhlIHNwZWN1bGF0aW9uIGZhaWxlZCk/DQoNCk9oIG1hbiwgaXQgaXMgaGFy ZCB0byBmaW5kIGEgcmVmZXJlbmNlLiBJIG1hZGUgdGhpcyBjbGFpbSBpdCBiYXNlZCBvbiBteQ0K cmVjb2xsZWN0aW9uIChhbmQgbG9naWMpLg0KDQpUaGUgYWNjZXNzLWJpdCBvbiBJbnRlbCBpcyBz ZXQgd2hlbiB0aGUgUFRFIGlzIGxvYWRlZCBpbnRvIHRoZSBUTEIsIHNvIGlmIHlvdQ0KYWxsb3cg c3BlY3VsYXRpdmUgbG9hZGluZyBvZiB0aGUgVExCLCB0aGF04oCZcyB3aGF0IHlvdSBnZXQuDQoN Ckdvb2dsaW5nIHNob3dzIFl1IFpoYW8gc2F5aW5nOiAiSUlSQywgdGhlcmUgYXJlIGFsc28gZmFs c2UgcG9zaXRpdmVzLCBpLmUuLA0KdGhlIGFjY2Vzc2VkIGJpdCBpcyBzZXQgb24gZW50cmllcyB1 c2VkIGJ5IHNwZWN1bGF0aXZlIGV4ZWN1dGlvbiBvbmx5LuKAnSBbMV0NCg0KSW50ZWwgU0RNIHNh eXM6ICJXaGVuZXZlciB0aGUgcHJvY2Vzc29yIHVzZXMgYSBwYWdpbmctc3RydWN0dXJlIGVudHJ5 IGFzIHBhcnQNCm9mIGxpbmVhci1hZGRyZXNzIHRyYW5zbGF0aW9uLCBpdCBzZXRzIHRoZSBhY2Nl c3NlZCBmbGFnIGluIHRoYXQgZW50cnkuLi4NCldoZW5ldmVyIHRoZXJlIGlzIGEgd3JpdGUgdG8g YSBsaW5lYXIgYWRkcmVzcywgdGhlIHByb2Nlc3NvciBzZXRzIHRoZSBkaXJ0eQ0KZmxhZyAoaWYg aXQgaXMgbm90IGFscmVhZHkgc2V0KSBpbiB0aGUgcGFnaW5nLSBzdHJ1Y3R1cmUgZW50cnkuLi4i DQoNCllvdSBjYW4gYXJndWUgdGhhdCB0aGlzIGluZGljYXRlcyB0aGF0IHRoZSBhY2Nlc3MtYml0 IGlzIHVwZGF0ZWQNCnNwZWN1bGF0aXZlbHkgKHRyYW5zbGF0aW9ucyBjYW4gYmUgc3BlY3VsYXRp dmUpIGFuZCBkaXJ0eS1iaXQgaXMgb24gYWN0dWFsDQp3cml0ZS4gQnV0IGl0IGlzIHNvbWV3aGF0 IG9mIGEgY3JlYXRpdmUgcmVhZGluZy4NCg0KR29vZ2xpbmcgZnVydGhlciBkaWQgbm90IGhlbHAg bXVjaCwgYnV0IEkgZm91bmQgYSByZWxldmFudCBkaXNjdXNzaW9uIG9uDQpSSVNDLVYsIGluIHdo aWNoIHRoZXkgYWN0dWFsbHkgY29uc2lkZXIgYSBzaW1pbGFyIGJlaGF2aW9yLiBbMl0NCg0KSWYg eW91IHdhbnQgKGFuZCBjYXJlKSwgd2UgY2FuIGNjIERhdmUgSGFuc2VuIHRvIGdldCBhIGNsZWFy IGFuc3dlci4NCg0KWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvWUU3UmslMkZZQTFV ajd5Rm4yQGdvb2dsZS5jb20vDQpbMl0gaHR0cHM6Ly9saXN0cy5yaXNjdi5vcmcvZy90ZWNoLXZp cnQtbWVtL3RvcGljL2FjY2Vzc2VkX2JpdC83NzY5OTg4Mz9wPSwsLDIwLDAsMCwwOjpyZWNlbnRw b3N0ZGF0ZSUyRnN0aWNreSwsLDIwLDEsODAsNzc2OTk4ODMNCg0KPiANCj4+IA0KPj4gSXMgdGhh dCBhY2NlcHRhYmxlPyBBY2Nlc3MtYml0IGFsd2F5cyBzZXQsIGRpcnR5LWJpdCBhY2NvcmRpbmcg dG8gaGludD8NCj4gDQo+IEknbSBzdGlsbCB0cnlpbmcgdG8gZGlnZXN0IHdoYXQgeW91IHNhaWQg YWJvdmUsIHNvcnJ5Lg0KPiANCj4gQXJlbid0IGJvdGggYWNjZXNzIGFuZCBkaXJ0eSBiaXRzIG5l ZWQgYW4gYXRvbWljIG9wIHRvIGJlIHNldCBhbnl3YXk/IFRoZW4NCj4gZnJvbSBwZXJmIHBvdiBz aG91bGQgd2Ugc2ltcGx5IGtlZXAgc2V0dGluZyB0aGVtIGJvdGggdG9vIGxpa2Ugd2hhdCB5b3Ug ZGlkDQo+IHdpdGggdGhpcyB2ZXJzaW9uPyBiZWNhdXNlIGl0IHNlZW1zIHRoYXQnbGwgYWx3YXlz IGF2b2lkIGFuIGV4dHJhIHBndGFibGUNCj4gdXBkYXRlIGFjY2Vzcz8NCg0KSSBndWVzcyBieSBh dG9taWMtb3AgeW91IG1lYW4gYXRvbWljLXVwZGF0ZSBieSB0aGUgaGFyZHdhcmUgQUQtYXNzaXN0 Lg0KDQpJIGFncmVlIHRoYXQgaWYgYSBwYWdlIGlzIHdyaXR0ZW4sIHRoZSBiaXRzIHdvdWxkIG5l ZWQgdG8gYmUgdXBkYXRlZCBhbmQNCnRoZXNlIHdvdWxkIGludHJvZHVjZSBhbiBvdmVyaGVhZC4g SG93ZXZlciwgaWYgdGhlIHBhZ2UgY2Fubm90IGJlIHdyaXR0ZW4sDQp3ZWxsLCB0aGUgZGlydHkg Yml0IHdvdWxkIG5ldmVyIGJlIHNldC4NCg0KaHVnZXRsYl9tY29weV9hdG9taWNfcHRlKCkgY3Vy cmVudGx5IGRvZXMgdGhlIGZvbGxvd2luZzoNCg0KICAgICAgICBfZHN0X3B0ZSA9IGh1Z2VfcHRl X21rZGlydHkoX2RzdF9wdGUpOw0KICAgICAgICBfZHN0X3B0ZSA9IHB0ZV9ta3lvdW5nKF9kc3Rf cHRlKTsNCg0KICAgICAgICBpZiAod3BfY29weSkNCiAgICAgICAgICAgICAgICBfZHN0X3B0ZSA9 IGh1Z2VfcHRlX21rdWZmZF93cChfZHN0X3B0ZSk7DQoNClNpbmNlIHlvdSBhc2tlZCB0byB1cGRh dGUgaHVnZXRsYl9tY29weV9hdG9taWNfcHRlKCksIEkgY2FuIG9mZmVyIHRocmVlDQpvcHRpb25z Og0KDQoxLiBEbyBub3Qgc2V0IGRpcnR5IGlmICh3cF9jb3B5KS4NCjIuIERvIG5vdCBzZXQgZGly dHkgaWYgKHdwX2NvcHkgfHwgIXdyaXRlX2hpbnQpIA0KMy4gS2VlcCBpdCBhcyBpcy4NCg0KSSBh bSBmaW5lIHdpdGggd2hhdGV2ZXIgd291bGQgbWFrZSB5b3UgaGFwcHkuIDopDQoNCg==