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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D6CADCD37B6 for ; Wed, 13 May 2026 07:47:51 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5CE8610ECE4; Wed, 13 May 2026 07:47:50 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="m9ER6tYw"; dkim-atps=neutral Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013036.outbound.protection.outlook.com [40.107.201.36]) by gabe.freedesktop.org (Postfix) with ESMTPS id D2E3E88A27; Wed, 13 May 2026 07:47:48 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AjT60frQXRXX6LCF4peQKIX+FQOti13BmK+MC5qro9ZqRmePxgTmjbiBEd1CLaf+L+2r6NzOhPmQiCfXihpQiRfMGkSPP43ZeVQqzjQwPMPghTR6A4qo3Fw0thmyqnh+YE/pPpObOwH4DaAAiG06cSreYmdL0CutK2ULhik/jLmtZXkTgL/JCRCPqbPgd08Z6ePXRY3toONe6f2mhEOPxK2vRl51pTJV2nY4htRe8juag+Gi7BUoY5lD2sa0dQr5Hmtw7nmmoSUDT5eZ6NvfTigExdkXMLtoXRooRhZYBZ+2wA+duhrsfqluUtpoK1KJPBx2h6W8lrUKFNO9tDorgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=eSMMze0X1t3niHEonNZoaeG5b8BHCbIE51hU9k2o1f0=; b=vDGH51ywaYEPUz4beOlvc/NRI0b3TQFqvBFQl7KfwCHwB7OX2X3plUHLSd6FteUVGph6vfJcOpIVpfymUkBFd90SCqMs+E7bhGjxEkk2Aap8CHVR8f/doXE4IUg/bUSqV84DBwgiyikLoeV6pMNyP6Q1wWkBS4u6AxhUsy3/41KeSBfP4GAdJnaGDhExBIcaH5sj4TeYt4hkxBh2rLP7gVJw3rXgLF0uvsavfrDUcIXr/9LiT0iwgaSVEnEZbhpSan3xC2+X0eoLzqKyx2wZaQVkEYYjDzg/nTfdQbidATX4F3qLnrZ/efwKbBwsj+R9C728WD9HR1OQYCUMw0wWPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eSMMze0X1t3niHEonNZoaeG5b8BHCbIE51hU9k2o1f0=; b=m9ER6tYw5Yr4L8kLV3uk0d4w6dlnw8uW+eywlhICq6pNiMCh6H0hPlcaNLWMfZ891+vOXo5qodWWH45MSmhM9D91qDrBCuxufDuj7kcrAEBEykblGJr+zSUblPx+4fl+gJjDE/XyvL4Z0fIh+kJA+oyL38gj8pTciGK9iPN9P30= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) by PH7PR12MB7841.namprd12.prod.outlook.com (2603:10b6:510:273::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Wed, 13 May 2026 07:47:43 +0000 Received: from PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c]) by PH7PR12MB5685.namprd12.prod.outlook.com ([fe80::ce69:cfae:774d:a65c%5]) with mapi id 15.20.9891.021; Wed, 13 May 2026 07:47:43 +0000 Message-ID: Date: Wed, 13 May 2026 09:47:31 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/2] mm/shmem: add shmem_insert_folio() To: "David Hildenbrand (Arm)" , =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , intel-xe@lists.freedesktop.org Cc: Andrew Morton , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Hugh Dickins , Baolin Wang , Brendan Jackman , Johannes Weiner , Zi Yan , Huang Rui , Matthew Auld , Matthew Brost , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20260512110339.6244-1-thomas.hellstrom@linux.intel.com> <20260512110339.6244-2-thomas.hellstrom@linux.intel.com> <26479389-459b-4cc4-914d-e7d29d5e5cc9@kernel.org> Content-Language: en-US From: =?UTF-8?Q?Christian_K=C3=B6nig?= In-Reply-To: <26479389-459b-4cc4-914d-e7d29d5e5cc9@kernel.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: MN2PR22CA0004.namprd22.prod.outlook.com (2603:10b6:208:238::9) To PH7PR12MB5685.namprd12.prod.outlook.com (2603:10b6:510:13c::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB5685:EE_|PH7PR12MB7841:EE_ X-MS-Office365-Filtering-Correlation-Id: 0bb75a48-a8f2-485e-1dc9-08deb0c3ea53 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|376014|7416014|1800799024|11063799003|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: v0QwQ+C83A1YKYpv+F34ZsFc2ITQJCB6StcZJOjD85+DbYJ4FnaHvhGF0rt4g7fWMV67p1EBzdXRD7iHlR+MAzE9JjKAKq54KlXyk69wGpwMJ7sF+oscjmGuLUza9jlmTwv9p3UIYPIBQjSa5Tq0pBioosZJCHT+B8vXQMSkUaoZsDuRs+wsOYuo3lsMCXph+Ejz++knnzAmudK7tT/4q8uF8s+71QamV3zBLWI+8nVSCMbjMEriaMktLr/+sBispnxT6ZaNkMLPjzxVvxhkU79yLjYNYriLyBXIxLFNWV7Ppp8ruYaBkL/FqMjMXiDs8NjQ8NdYjkjgETfokj6Id+ZtYy+RWvrnyX/EXu+LChAbH7K3VF5PZNexaF6XaQQC8wyiWSmOUgBz5dIloA5XZKlxJBfv54Ahf/LN3XbDOTBBwjE8DOa78IPkMSO8WWN7355FxiMPDokPBjM8YX2p6uuxd+tgHjDnUGDrwkRly1AT/v7n1zo5TOdSIJpmsmdwWFL0N+2CiZ9CasKByW9r4hZf936N+IMDcw7eRs1hRTHsDCNDMygeiibQuYlrZZgdvKqKdIuIo8Q8SABKrzBIn6Jkty4uOyh4dElnLdpaMFK4PR/V6/cZa/nS8rpyOiSsCeFTM0KZmSgBectKGi7ueKNKzM30loc+759nRH/YTdy0za+fWlS1pljLVQ7+PUb0 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR12MB5685.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(7416014)(1800799024)(11063799003)(22082099003)(18002099003)(56012099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VGROYk9VTDFzaXhqRVZoNjRVVEVpZzUxZWNsbjkrbTRqK3BEajFaejh3Sncx?= =?utf-8?B?Z0xoZ3pFRUl2c0N5M0hjRU9vUHF2ektUeEh5SkgxbXM1NmpzZHBZSXJHaUUx?= =?utf-8?B?TG02NGlLVGVkcXYvK2RJYWpwcXZxL1NuQzBrRUVhWmhrSm8zZWNHUUp0MlVP?= =?utf-8?B?U1FrbHM2T0JoL3FDTHBCRUpnRlJUaTMwTUlHUjQ1THBaY3UyWVZDKzhmaVU5?= =?utf-8?B?RGx6dzk1TXlBMytMY29PWHVCQjFzbFViN2pyWDdjTlZlQTNrT092cDBkc0dK?= =?utf-8?B?dDFNVUMzU1lSb3F4V2xKb2dRYlU1MW1DS1BwVWRteEJyQmJVQ0hVUzFqdXhT?= =?utf-8?B?VjlDYzcrTXJNaGpGMmtJeGJxMk5FZTRiSGJHbG5NMGhydVU0V3IzeDVpenVx?= =?utf-8?B?L0grQW5iTWJtK1kzM0daa0E4V1IzU3FLR1p6Zmh5ZG1tQmtSdkpMdk1FQ243?= =?utf-8?B?TzczQzh1azFRTTRxc3U2b2pCbHFhMnNoMzhuc3ZRU0NSdThpaUpIdVdVZ2E0?= =?utf-8?B?eEd2SjNFMHBVM2RrLzl6eHBoUU5QTFVPTU5aVVZMVk1QT0pNemZIdkdhOVp2?= =?utf-8?B?S2doWGhvL0xJd1o0U1pvZHlNZ2UycjM4eEtXTnRhUnk4Z0FRSTAwK2xnQ3pL?= =?utf-8?B?S21KR0UyNE9pYmN2S0h1azJMd0RERXFsaFVlMmpnQmhBVUgySUVZWnkyMkdP?= =?utf-8?B?SkREb093Z0RqcE40ZjJNcWsvdlMvbGtDUnEzM1pxRnhTT0Y1MlJoeXUwMmR3?= =?utf-8?B?c2lYRHpYRnFrb1NkWU1EczVpcWxMb013Z0RpOUFOb2NtSmlNTGlNNmgwL2l3?= =?utf-8?B?endTTmhHSlFNaWlxNFpvT0wwRU1pRW9GS090Y1k4OGh5VGdlRk1CY2FZTjQw?= =?utf-8?B?dlRMcjlKWGdOREdLMlhCakkzYzJRNllKbjZWNVlHQjJqMmNrSkZNOVBFL2Z2?= =?utf-8?B?UXVBWUJRQmJIY2ZPU2RRa0xKOUoyaTBXWnZ2V2ZjT0orVVNObmZydjd2WDVJ?= =?utf-8?B?b1N1YkloRDREcDZqM2NwUFNlUEErRStTUjBMQURGZ25KRHB2Y1dTNy9Jb01R?= =?utf-8?B?U3A5L1NoNHh0czFlSGo1QnZLeXBHWVlQOFNiRldJMzVQSUNtZEU3b1NYTWlw?= =?utf-8?B?MzUvTkltb3ZZY1ZLTkNuQWZxVGJjdTJXTjFqSVdTSEZHeHpXeTEzMGtzUVNu?= =?utf-8?B?a1dldlM0M0xqK0NhdXI5cWNNUGdWMFRoWGczVFMyZjNnSWpUVFpNSTNjTFFH?= =?utf-8?B?WmcxZDBqVDc2VnJQejczRHBNdkw4OHFyc1JOclZrbFdHbld5T2RHWUJLcmZu?= =?utf-8?B?bmhEUnc1UUkrVEZ5QTdCT3NldUp2V2lLRGtldEFMVkY1clFQUTdrYkdyU2pm?= =?utf-8?B?RkpHd2tTUk9yVU9Cc1JlaTBEZHQxNWZMTGdWRHV6d0l4RWdrbEwxNGt4Viti?= =?utf-8?B?N3dKWi9NWTZhQ3ViYWx1ckJnVk5ObmI0aDFYRitkcGFGWUwrOVdBVU9qWloy?= =?utf-8?B?Qlh3QS8wdlErbW4vbmNQT0Jrdmk2M2I2aDBGRVEzT0tnNVVGeDhmMHBhS1ZB?= =?utf-8?B?dVRnZTFzM0pLYmduc0UvY1c4QUtndkhrOUNoWXVaYlR5OWc0TXJOam90TUor?= =?utf-8?B?dlZHOTJjM2dMTFp0NElIRTNzdkRzVUJNKzlSNWlZbHhPcHk1MGsxdWpqdGox?= =?utf-8?B?dzdRRjNhRHlzQVJjaFdnbDVaK0xFQ292NVNPSnFGRHJPNjFKckg1K21wN3Jw?= =?utf-8?B?dWswMGlDN2s5T1VHZzVYNm12aTZSZWlBaWFNUU03LzVPWFM4cExiY3BvYUZj?= =?utf-8?B?RHQ0RGkxUTYvcnNadk94UnJBL0E5c0RGallyUXhxOUJnOGNvdUY1eUU2Tjlo?= =?utf-8?B?b0gyZjMwNnpONUNDZnRZNU1HUTJQYjIwUU9kbjd0VjJMNmVpaEw5NHNXdGcv?= =?utf-8?B?NTExYTh1NmlZLzYxL2JoajFKRHRlRjZiblRUT3hSVHR2ZlNCNHV6bVJNMEtC?= =?utf-8?B?UnVoYUIzcjVPdTh0RHQ2TnlyVEExczcrS2xvYUV3SVh6WjRPZmRkSm0zQ1BM?= =?utf-8?B?R2IvaUtxelozZGY4MC9ZT2dpb3lvdTJ0UGVDQVpsVVViUDFiVWttMm0wcC9Y?= =?utf-8?B?bDNUbDdXb2xnQ2xoQVlEbU5oL242a0p4MmY3VnZvZHhHYVB4QWJDK2RYYzk5?= =?utf-8?B?QVZmcERoR0dXeEVadlBMQUFhWWxBOFhxWVA4Rk9wdy9ubFViT0UwVWlRWVRw?= =?utf-8?B?bkVJOGduT3RqeWZEWEZGZFhITkxWSXNvaHdLNXNzYWkxNHd2Y1dlR00wQW1F?= =?utf-8?Q?0Rig9V76BKIizvZxTY?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0bb75a48-a8f2-485e-1dc9-08deb0c3ea53 X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB5685.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2026 07:47:43.1512 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OvqxOCohnrjrUGfxzguY1DJ4hZA586CCsUVBcjTFROd/sGdyiVa1P1oewztKaEBh X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7841 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgRGF2aWQgJiBUaG9tYXMsCgpPbiA1LzEyLzI2IDIyOjAzLCBEYXZpZCBIaWxkZW5icmFuZCAo QXJtKSB3cm90ZToKPiBPbiA1LzEyLzI2IDEzOjMxLCBUaG9tYXMgSGVsbHN0csO2bSB3cm90ZToK Li4uCj4+Pj4gK2ludCBzaG1lbV9pbnNlcnRfZm9saW8oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBmb2xpbyAqZm9saW8sCj4+Pj4gdW5zaWduZWQgaW50IG9yZGVyLAo+Pj4+ICsJCcKgwqDCoMKg wqDCoCBwZ29mZl90IGluZGV4LCBib29sIHdyaXRlYmFjaywgZ2ZwX3QKPj4+PiBmb2xpb19nZnAp Cj4+Pj4gK3sKPj4+PiArCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gZmlsZS0+Zl9t YXBwaW5nOwo+Pj4+ICsJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7Cj4+Pj4g Kwlib29sIHByb21vdGVkOwo+Pj4+ICsJbG9uZyBucl9wYWdlczsKPj4+PiArCWludCByZXQ7Cj4+ Pj4gKwo+Pj4+ICsJcHJvbW90ZWQgPSBvcmRlciA+IDAgJiYgIWZvbGlvX3Rlc3RfbGFyZ2UoZm9s aW8pOwo+Pj4+ICsJaWYgKHByb21vdGVkKQo+Pj4+ICsJCXByZXBfY29tcG91bmRfcGFnZSgmZm9s aW8tPnBhZ2UsIG9yZGVyKTsKPj4+PiArCW5yX3BhZ2VzID0gZm9saW9fbnJfcGFnZXMoZm9saW8p Owo+Pj4+ICsKPj4+PiArCVZNX0JVR19PTl9GT0xJTyhmb2xpb190ZXN0X2xydShmb2xpbyksIGZv bGlvKTsKPj4+PiArCVZNX0JVR19PTl9GT0xJTyhmb2xpb19tYXBwZWQoZm9saW8pLCBmb2xpbyk7 Cj4+Pj4gKwlWTV9CVUdfT05fRk9MSU8oZm9saW9fdGVzdF9zd2FwY2FjaGUoZm9saW8pLCBmb2xp byk7Cj4+Pj4gKwlWTV9CVUdfT05fRk9MSU8oZm9saW8tPm1hcHBpbmcsIGZvbGlvKTsKPj4+PiAr CVZNX0JVR19PTihpbmRleCAhPSByb3VuZF9kb3duKGluZGV4LCBucl9wYWdlcykpOwo+Pj4KPj4+ IE5vIG5ldyBWTV9CVUdfT05fRk9MSU8gZXRjLgo+Pgo+PiBPSywgY2FuIGVsaW1pbmF0ZSB0aG9z ZS4gSXMgVk1fV0FSTl9PTl9GT0xJTygpIHByZWZlcnJlZCwKPj4gb3IgYW55IG90aGVyIHR5cGUg b2YgYXNzZXJ0Pwo+IAo+IFZNX1dBUk5fT05fRk9MSU8oKSBpcyB1c3VhbGx5IHdoYXQgeW91IHdh bnQsIG9yIFZNX1dBUk5fT05fT05DRSgpLgo+IAo+Pgo+Pj4KPj4+IEJ1dCBpbiBnZW5lcmFsLCBw dXNoaW5nIGluIHJhbmRvbSBhbGxvY2F0ZWQgcGFnZXMgaW50byBzaG1lbSwKPj4+IGNvbnZlcnRp bmcgdGhlbSB0bwo+Pj4gZm9saW9zIGlzIG5vdCBzb21ldGhpbmcgSSBwYXJ0aWN1bGFybHkgZW5q b3kgc2VlaW5nLgo+Pj4KPj4KPj4gT0ssIGxldCBtZSB1bmRlcnN0YW5kIHRoZSBjb25jZXJuLiBU aGUgcGFnZXMgYXJlIGFsbG9jYXRlZCBhcyBtdWx0aS0KPj4gcGFnZSBmb2xpb3MgdXNpbmcgYWxs b2NfcGFnZXMoZ2ZwLCBvcmRlciksIGJ1dCB0eXBpY2FsbHkgbm90IHByb21vdGVkCj4+IHRvIGNv bXBvdW5kIHBhZ2VzLCB1bnRpbCBpbnNlcnRlZCBoZXJlLiBJcyBpdCB0aGF0IHByb21vdGlvbiB0 aGF0IGlzIG9mCj4+IGNvbmNlcm4gb3IgaW5zZXJ0aW5nIHBhZ2VzIG9mIHVua25vd24gb3JpZ2lu IGludG8gc2htZW0/IEFueXRoaW5nIHdlCj4+IGNhbiBkbyB0byBhbGxldmlhdGUgdGhhdCBjb25j ZXJuPwo+IAo+IEl0J3MgYWxsIHJhdGhlciBxdWVzdGlvbmFibGUuCj4gCj4gQSBjb3VwbGUgb2Yg cG9pbnRzOgo+IAo+IGEpIFRoZSBwYWdlcyBhcmUgYWxsb2NhdGVkIHRvIGJlIHVubW92YWJsZSwg YnV0IGFkZGluZyB0aGVtIHRvIHNobWVtIGVmZmVjdGl2ZWx5Cj4gICAgdHVybnMgdGhlbSBtb3Zh YmxlLiBOb3cgeW91IGludGVyZmVyZSB3aXRoIHRoZSBwYWdlIGFsbG9jYXRvciBsb2dpYyBvZgo+ ICAgIHBsYWNpbmcgbW92YWJsZSBhbmQgdW5tb3ZhYmxlIHBhZ2VzIGEgcmVhc29uYWJsZSB3YXkg aW50bwo+ICAgIHBhZ2VibG9ja3MgdGhhdCBncm91cCBhbGxvY2F0aW9ucyBvZiBzaW1pbGFyIHR5 cGVzLgo+IAo+IGIpIEEgZHJpdmVyIGlzIG5vdCBzdXBwb3NlZCB0byBkZWNpZGUgd2hpY2ggZm9s aW8gc2l6ZSB3aWxsIGJlIGFsbG9jYXRlZCBmb3IKPiAgICBzaG1lbS4KCkV4YWN0bHkgdGhhdCBp cyBvbmUgb2YgdGhlIG1ham9yIHJlYXNvbnMgd2h5IHdlIGFyZW4ndCB1c2luZyBhIHNobWVtIGFz IGJhY2tpbmcgc3RvcmUgZm9yIFRUTSBidWZmZXJzIGluIHRoZSBmaXJzdCBwbGFjZS4KCldoaWxl IEhXIHRvZGF5IGNhbiB1c3VhbGx5IHdvcmsgd2l0aCBldmVyeXRoaW5nIGRvd24gdG8gNGsgaXQg bmVlZHMgaGlnaGVyIG9yZGVyIHBhZ2VzIGZvciBvcHRpbWFsIHBlcmZvcm1hbmNlLgoKU28gZm9y IGV4YW1wbGUgZm9yIEFNRCBHUFVzIHlvdSBuZWVkIDJNIHBhZ2VzIG9yIG90aGVyd2lzZSB0aGUg cGVyZm9ybWFuY2UgZ29lcyBkb3duIGJ5IH4zMCUgaW4gcXVpdGUgYSBudW1iZXIgb2YgdXNlIGNh c2VzLgoKRXZlcnl0aGluZyBiZXR3ZWVuIDRrIGFuZCAyTSBhbmQgYWJvdmUgMk0gaXMgc3RpbGwg cHJlZmVycmVkIGJlY2F1c2UgaXQgcmVzdWx0cyBpbiBiZXR0ZXIgTDAvTDEgcmVhY2gsIGJ1dCBp ZiB5b3UgY2FuJ3QgZ2V0IDJNIHRoZSBMMiByZWFjaCBnb2VzIGRvd24gc28gcmFwaWRseSB0aGF0 IHBlb3BsZSBzdGFydCB0byBjb21wbGFpbiBpbW1lZGlhdGVseS4gCgpBbmQgdGhhdCBzdHVmZiBp cyB2ZXJ5IHNwZWNpZmljIGZvciBlYWNoIHZlbmRvciBhbmQgSFcgZ2VuZXJhdGlvbi4gU29tZSBo YXZlIHRoZSBzd2VldCBzcG90IGF0IDY0aywgc29tZSBhdCAyNTZrLCBtb3N0IGF0IDJNLgoKPiAg ICBJIGFtIG5vdCBldmVuIHN1cmUgaWYgdGhlcmUgaXMgYSBmZW5jaW5nIG9uCj4gICAgQ09ORklH X1RSQU5TUEFSRU5UX0hVR0VQQUdFIHNvbWV3aGVyZSB3aGVuIGVuZGluZyB1cCB3aXRoIGxhcmdl IGZvbGlvcy4gb3JkZXIKPiAgICA+IFBNRF9PUkRFUiBpcyBjdXJyZW50bHkgZXNzZW50aWFsbHkg dW5zdXBwb3J0ZWQsIGFuZCBJIHN1c3BlY3QgeW91ciBjb2RlCj4gICAgd291bGQgIGV2ZW4gYWxs b3cgZm9yIHRoYXQgKGxvb2tpbmcgYXQgdHRtX3Bvb2xfYWxsb2NfZmluZF9vcmRlcikuCj4gCj4g ICAgV2UgYWxzbyBoYXZlIHNvbWUgcHJvYmxlbXMgd2l0aCB0aGUgcGFnZWNhY2hlIG5vdCBhY3R1 YWxseSBzdXBwb3J0aW5nIGFsbAo+ICAgIE1BWF9QQUdFX09SREVSIG9yZGVycyAoc2VlIE1BWF9Q QUdFQ0FDSEVfT1JERVIpLgo+IAo+ICAgIFlvdSBhcmUgYnlwYXNzaW5nIHNobWVtIGxvZ2ljIHRv IGRlY2lkZSBvbiB0aGF0IGNvbXBsZXRlbHkuCj4gCj4gICAgV2hpbGUgdGhlc2UgdGhpbmdzIG1p Z2h0IG5vdCBhY3R1YWxseSBjYXVzZSBoYXJtIGZvciB5b3UgdG9kYXkgKGFsdGhvdWdoIEkKPiAg ICBzdXNwZWN0IHNvbWUgb2YgdGhlbSBtaWdodCBpbiBzaG1lbSBzd2Fwb3V0IGNvZGUpLCB3ZSBk b24ndCB3YW50IGRyaXZlcnMgdG8KPiAgICBtYWtlIG91ciBsaWZlIGhhcmRlciBieSBkb2luZyBj b21wbGV0ZWx5IHVuZXhwZWN0ZWQgdGhpbmdzLgoKWWVhaCBidXQgdGhhdCBpcyB0aGUgcmVxdWly ZW1lbnQgdGhlIEhXIGhhcy4KCkkgbWVhbiB3ZSBjYW4ga2VlcCB0b3J0dXJpbmcgdGhlIGJ1ZGR5 IGFsbG9jYXRvciB0byBnaXZlIHVzIDJNIHBhZ2VzLCBidXQgZXNzZW50aWFsbHkgd2Ugd2FudCB0 byBnZXQgYXdheSBmcm9tIHRob3NlIHNwZWNpYWxpemVkIHNvbHV0aW9ucyBhbmQgaGFzIG1vcmUg b2YgdGhlIGZ1bmN0aW9uYWxpdHkgbmVjZXNzYXJ5IHRvIGRyaXZlciB0aGUgSFcgaW4gdGhlIGNv bW1vbiBMaW51eCBtZW1vcnkgbWFuYWdlbWVudCBjb2RlIGJlY2F1c2UgdGhhdCBwcmV2ZW50cyB2 ZW5kb3JzIGZyb20gcmUtaW1wbGVtZW50aW5nIHRoYXQgc3R1ZmYgaW4gdGhlaXIgc3BlY2lmaWMg ZHJpdmVyIG92ZXIgYW5kIG92ZXIgYWdhaW4uCgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+IGMpIFlv dSBwYXNzIGZvbGlvICsgb3JkZXIsIHdoaWNoIGlzIGp1c3QgdGhlIHJlZCBmbGFnIHRoYXQgeW91 IGFyZSBkb2luZwo+ICAgIHNvbWV0aGluZyBleHRyZW1lbHkgZG9kZ3kuCj4gCj4gICAgWW91IGp1 c3QgY2FzdCBzb21ldGhpbmcgdGhhdCBpcyBub3QgYSBmb2xpbywgYW5kIHdhcyBub3QgYWxsb2Nh dGVkIHRvIGJlIGEKPiAgICBmb2xpbyB0byBhIGZvbGlvIHRocm91Z2ggcGFnZV9mb2xpbyhwYWdl KS4gVGhhdCB3aWxsIHN0b3Agd29ya2luZyBjb21wbGV0ZWx5Cj4gICAgaW4gdGhlIGZ1dHVyZSBv bmNlIHdlIGRlY291cGxlIHN0cnVjdCBwYWdlIGZyb20gc3RydWN0IGZvbGlvLgo+IAo+ICAgIElm IGl0J3Mgbm90IGEgZm9saW8gd2l0aCBhIHByb3BlciBzZXQgb3JkZXIsIHlvdSBzaG91bGQgYmUg cGFzc2luZyBwYWdlICsKPiAgICBvcmRlci4KPiAKPiBkKSBXZSBhcmUgb25jZSBtb3JlIG9wZW4t Y29kaW5nIGNyZWF0aW9uIG9mIGEgZm9saW8sIGJ5IGhhbmQtY3JhZnRpbmcgaXQKPiAgICBvdXJz ZWx2ZXMuCj4gCj4gICAgV2UgaGF2ZSBmb2xpb19hbGxvYygpIGFuZCBmcmllbmRzIGZvciBhIHJl YXNvbi4gV2hlcmUgd2UsIGZvciBleGFtcGxlLCBkbyBhCj4gICAgcGFnZV9ybWFwcGFibGVfZm9s aW8oKS4KPiAKPiAgICBJIGFtIHByZXR0eSBzdXJlIHRoYXQgeW91IGFyZSBtaXNzaW5nIGEgY2Fs bCB0byBwYWdlX3JtYXBwYWJsZV9mb2xpbygpLAo+ICAgIHJlc3VsdGluZyBpbiB0aGUgbGFyZ2Ug Zm9saW9zIG5vdCBnZXR0aW5nIGZvbGlvX3NldF9sYXJnZV9ybWFwcGFibGUoKSBzZXQuCj4gCj4g ZSkgdW5kb19jb21wb3VuZF9wYWdlKCkuIE5vIHdvcmRzLgo+IAo+IAo+IAo+ICptYXliZSogaXQg d291bGQgYmUgYSBsaXR0bGUgbGVzcyBiYWQgaWYgeW91IHdvdWxkIGp1c3QgYWxsb2NhdGUgYSBj b21wb3VuZCBwYWdlCj4gaW4geW91ciBkcml2ZXIgYW5kIHVzZSBwYWdlX3JtYXBwYWJsZV9mb2xp bygpIGluIHRoZXJlLgo+IAo+IFRoYXQgd291bGRuJ3QgY2hhbmdlIGEpIG9yIGIpLCB0aG91Z2gu Cj4gCj4gCj4+Cj4+IEdpdmVuIHRoZSBwcm9ibGVtIHN0YXRlbWVudCBpbiB0aGUgY292ZXItbGV0 dGVyLCB3b3VsZCB0aGVyZSBiZSBhCj4+IGJldHRlciBkaXJlY3Rpb24gdG8gdGFrZSBoZXJlPyBX ZSBjb3VsZCwgZm9yIGV4YW1wbGUsIGJ5cGFzcyBzaG1lbSBhbmQKPj4gaW5zZXJ0IHRoZSBmb2xp b3MgZGlyZWN0bHkgaW50byB0aGUgc3dhcC1jYWNoZSwgKGFsdGhvdWdoIHRoZXJlIGlzIGFuCj4+ IGlzc3VlIHdpdGggdGhlIHN3YXAtY2FjaGUgd2hlbiB0aGUgbnVtYmVyIG9mIHN3YXBfZW50cmll cyBhcmUgY2xvc2UgdG8KPj4gYmVpbmcgZGVwbGV0ZWQpLgo+IAo+IEdvb2QgcXVlc3Rpb24uCj4g V2UnZCBoYXZlIHRvIGtlZXAgc3dhcG9mZiBhbmQgYWxsIG9mIHRoYXQgd29ya2luZy4gRm9yIGV4 YW1wbGUsIGluCj4gdHJ5X3RvX3VudXNlKCksIHdlIHNwZWNpYWwtY2FzZSBzaG1lbV91bnVzZSgp IHRvIGhhbmRsZSBub24tYW5vbnltb3VzIHBhZ2VzLgo+IAo+IEJ1dCB0aGVuLCB0aGUgd2hvbGUg c3dhcGNhY2hlIG9wZXJhdGVzIG9uIGZvbGlvcyAuLi4gc28gSSBhbSBub3Qgc3VyZSBpZiB0aGVy ZQo+IGlzIGEgbG90IHRvIGJlIHdvbiBieSByZS1pbXBsZW1lbnRpbmcgd2hhdCBzaG1lbSBhbHJl YWR5IGRvZXM/Cj4gCgo=