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 321CAFF8864 for ; Fri, 1 May 2026 07:09:32 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 529BB10E151; Fri, 1 May 2026 07:09:29 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="NpIYB177"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1479410E0F6; Fri, 1 May 2026 07:09:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1777619368; x=1809155368; h=date:from:to:cc:subject:message-id:references: content-transfer-encoding:in-reply-to:mime-version; bh=RJEZO2sJKGvqGlQS24CweENDdN6W6EZ7hnN2r/OsZSk=; b=NpIYB177FToIziqe8KQdhG/tlLLD5ebrfo/oBZFeBsnfp7qbRCZAyJk4 AdD0Unh9JRntjRO7JYK4odc4aOWN0R2IQmpVxNO7Vu8PGvd3NP56nsffR 0wF82MHSRXRHpUZJp8LSYrxddJ6DPuCF+v5Bv7hz5SgU4PtbqWWQQMZFV PHhBnBgIdSgo+BjTwgQTqSafADKQWs+4l+SUf+/Tg037tjfxpgE0b3p1R 7SBI567d6pE/9t61CF12OMjeQDIeWdglcbIn6qnlqVBmtR1/Ez1yxxeD6 Gy4UhaUvAsjIWHZqPiw95xo3PLCYj/ZjU8AFZIzHPjKygCd/HWrqv8O8L w==; X-CSE-ConnectionGUID: eRf342RJQG+4M6RLfcytFQ== X-CSE-MsgGUID: /Q1fGCDiRVeJFDzSkG7HnQ== X-IronPort-AV: E=McAfee;i="6800,10657,11772"; a="82437218" X-IronPort-AV: E=Sophos;i="6.23,209,1770624000"; d="scan'208";a="82437218" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 May 2026 00:09:26 -0700 X-CSE-ConnectionGUID: Vu3HT3qGS12OPfbAmZnf1A== X-CSE-MsgGUID: Ism16KGCTAG1qaiurgxefw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,209,1770624000"; d="scan'208";a="236598114" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by fmviesa004.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 May 2026 00:09:25 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Fri, 1 May 2026 00:09:24 -0700 Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Fri, 1 May 2026 00:09:24 -0700 Received: from SN4PR2101CU001.outbound.protection.outlook.com (40.93.195.56) by edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Fri, 1 May 2026 00:09:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z6cGkpx3oU/50oFv1m+WWB0MCbSW/PNll9D1gXzS2KxhDx1S8sYW0mZpLGj+15Ty2AsWdAE2nV2odkP8rkXjrZwu03vLOCyvIp17tddtgDDmchcn5IG6g8P6BoP3R7SKONoXDRpAFIx3PLiFqvnKJKfWdCR9VXRRGRvK4kFe5i+gJOd+5XrP0LPfC6Qf8Nv/EXyCpD5geXJYxWdicKfdA2Yk/E2dE9EEtE4/EaIG5JCxwJfZty/kl9MFswIQ5iN4Ikw95cJZwTmqmRJsYZjqHWzDGhnMu8rXfUUjNoR6yYz8GMaLMIK1vKzogx+yEUTuBfgKHsa8CALbF7wKEE0FFw== 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=szDM6KSxo2KfKFOfzHuCtMxAoiNKFkii01Vci7kbHBE=; b=PRatQduqLWw7SGqiEAqDR/FvRhChLoLwzupU8nrOF7pZIfECH4BdQPVztEm2M83QB+44LV2K6yQd1REQ5FcR02d4ooRDlxpvS+EtujlUcZ3Nr1r2OcRuk4JhQo4pbAVhjXwnarqAl48qn65ho3iKZFKTtCszswmFuQiNv0OMNGUA6Lbc3CUSssKEtoqwAWCDA7+CgWoBN61SD83//o8i6SSmnX+KyKC+bHSZ0NREVazreolhSyZAfgydRutCNcvJKPL6CgAYzQbwm/NVsBp6iK66wF5ZrXTCfZ6R+aARuSDXTEwe3AoOzG+2SHD4fX1/Rd9DX0M0WgaS02mOSC7qrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from PH7PR11MB6522.namprd11.prod.outlook.com (2603:10b6:510:212::12) by MW4PR11MB7079.namprd11.prod.outlook.com (2603:10b6:303:22b::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.23; Fri, 1 May 2026 07:09:14 +0000 Received: from PH7PR11MB6522.namprd11.prod.outlook.com ([fe80::e0c5:6cd8:6e67:dc0c]) by PH7PR11MB6522.namprd11.prod.outlook.com ([fe80::e0c5:6cd8:6e67:dc0c%7]) with mapi id 15.20.9870.022; Fri, 1 May 2026 07:09:14 +0000 Date: Fri, 1 May 2026 00:09:10 -0700 From: Matthew Brost To: Dave Chinner CC: , , "Dave Chinner" , Qi Zheng , "Roman Gushchin" , Johannes Weiner , Shakeel Butt , Kairui Song , Barry Song , Axel Rasmussen , Yuanchu Xie , Wei Xu , Tvrtko Ursulin , Thomas =?iso-8859-1?Q?Hellstr=F6m?= , Carlos Santa , Christian Koenig , Huang Rui , Matthew Auld , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Daniel Colascione , Andrew Morton , David Hildenbrand , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , , Subject: Re: [PATCH v4 0/6] mm, drm/ttm, drm/xe: Avoid reclaim/eviction loops under fragmentation Message-ID: References: <20260430191809.2142544-1-matthew.brost@intel.com> Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: base64 In-Reply-To: X-ClientProxiedBy: SJ0PR05CA0172.namprd05.prod.outlook.com (2603:10b6:a03:339::27) To PH7PR11MB6522.namprd11.prod.outlook.com (2603:10b6:510:212::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR11MB6522:EE_|MW4PR11MB7079:EE_ X-MS-Office365-Filtering-Correlation-Id: 710b5948-8105-46f1-623e-08dea7508d25 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|7416014|366016|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: uLqhwztd2S2iwhCaobMUd3WxS0hWrDChTu+8x8ypPko1fNl3X9PrQ/fcE7oor2v6r4Y0/5/7lddJE9Dqi7DcvxRx/kxfq6Q8478SRN62Pn592JTIsx2/C6fSLEakdWKT6fbHixRwbfAcvd97OAyJ8tKhMarcWkzyRpOMMFJJ/ErbUZ5SGYH+BwD5eWdF2vDAYHWjXZOJiS8+3XN9OjW8DD/b8DpsMuQbyd4Z/2pyYnSnKenFsz7U3MAypLONCEEyLNbJoiVaN36JjDu162zLHc876vjhqP63lqyZ7snCg1KMLuVwarMY4nQLcGB53E+zJkM9vGsD3T89B3NNGQhAA5ymgnuWXwUdwGgM6DPrg+LliN0F+BXq5XWdhjU7QtQxdOD/O5hGMFKpcf5ubHYEcRN6KfYNVo1Hl7goaTw+LUhbWMfhy5CYjk9ZP0EkngYApoyefifV805zQZTOps33qTz6sL81EXGt13vdgmi32+x0r1bIt5lhRavu2c0WC54MjWH++zQlq70P68qhu+vgK4iohkzVsdP1jsR/XFftLQG/2pP4cBY+a+Fc9ij5zfHmtZC5NxBXw7CkDKvFrOdl1zR7M+yZZFt+EMjnLDzbAfzglsh9ffmCV6pOv/j/TJx/Cv3dWcIZFh1G0fM2872WZg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR11MB6522.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(7416014)(366016)(22082099003)(18002099003)(56012099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VXFac1dIMWR4Vm9JSHM3K0s1NDZxUlowOVE2dXNUaTRBNFlCTmhjNVFZQXNI?= =?utf-8?B?cTNzM0ZtbXF0ZnJKV1o2dHdBVnhsMWhwdG9yOWtteUVhN0lEYjBOTnd1Z3dR?= =?utf-8?B?cWRPSkJiR3VnK0pZMWxCam8rMDB0WUdBelJUNW5La2VseElWTDA4QWoyTU9Z?= =?utf-8?B?TkdaT2I5SjN4OVJtUHlFU21velZvNVZKL0JWV1QybWFCTlBiN0U4ZFJ4M2hu?= =?utf-8?B?WU1QT2E3U3NRVDc1SEJTZGkzZDFEWnU1c1ExNnNIa3k5Y3F4Mmphb0tqT21w?= =?utf-8?B?UEg5bGlQRVJ5dW0wL3RxZXZQNUpRUjlyYkN1djNLMG9QUmNXOEFNY3owKzdw?= =?utf-8?B?ZmZ1S0xMVEoxbWdTSTI1WURWbTlYZmNTYWFaVGttK1E2ak40RHFvcVZMUzla?= =?utf-8?B?V2pmRTBOZDg4TWZ1cUxzZjFRZUZaTzZpQWttS3hLMDZKL2xOZUxMbWtYbk42?= =?utf-8?B?elYrMFJ2TjdXcElaT3YzdXM4SVFtTEdKRFNzblJoY3p2QWtEb1M1aGdIV2c0?= =?utf-8?B?NitrSGpNR0RZdlB4WityaDdnNjM4bDF4alhhWEs4VS9LUWwvMTIrYUI0OTJq?= =?utf-8?B?czJkOEtmVXRrR2Q2Y2hCNGhkcTNaaDUzMFJUQ0RLT05TNDFPNlp0MnVmZlFH?= =?utf-8?B?c0wwengxVlRLS1hRbHQ0Kzc1bDRWV0hoeWE2eTZ2dWxyTW1BRnFsWWkwUmtU?= =?utf-8?B?NHNuT3B0cGowaC9ieEE2Z0NhYWQ0ZUdVc0hJVmlaQVE4Y1piYnhhYXF5cURL?= =?utf-8?B?YWl1UTFDTTBValVUMXBwL203NmI1VFdhenpyOW1Od1BQbVVmaDF3NjVUc3JL?= =?utf-8?B?YXFLakNrYytRU29wNXBTaTZUczFOb2pOUUU1T2doY3pmdXZrLzF6NHpZd1pP?= =?utf-8?B?RkJlTWcrdHczQnhheWdtRHdnT09BWEJlbVhHVnI1NmVsRmFQTkx6cmxrQ2hQ?= =?utf-8?B?dUEyN0RxblhycmxjY1VNRWhjd2dnY3MyZGlEWDQ5eHgwa01maTF6bXJ4VEVN?= =?utf-8?B?K25jb29oY1lGdXluLytnVm1pWkp0eFk0M0xBUTk0RWNxc0lmeUw2dUppVkwy?= =?utf-8?B?WDBZbGJ4Rkc4ek1KM1RpMGpGaTZOcy8zOFFzUzFMOEN3RGFVUWNWdXFPYmI3?= =?utf-8?B?SXhvbFBDRWtma2RDK2lHcjJkWDl3dnpISXI4K1NwMG44Z0FLUytIVU9EVWNG?= =?utf-8?B?YXBTWXpKeXZVbk8zNlZDRDlMMWVDL1ZvMzRvQTFvaThMNWNFTDZOenkwWVFO?= =?utf-8?B?MFhmRzRsZnVJNjhHSVB6ZW9lbGNJVW5qQkxsV2VHV2I2SzBxNVlMdWZKYW5Y?= =?utf-8?B?S3EyQnZBUEMvaStBbXRWZVdmOEdrRU5zc20wZWlxSzFiTVJoT253MGp1NUFn?= =?utf-8?B?N25MS2VycWZNQ040eTdXTzZ4RzUwU01Pb3VGSTZEelYxM0dzK3JxQTZaa2VD?= =?utf-8?B?N0FtMGtKRzBaaWh6cnF4VkZOckJFUC9JWFJ5M0VsQytpbkdEdmszN3hkRVl1?= =?utf-8?B?QndoZWFWSkJvVXFyTTlsc1M0ZElRSCs0c3BhZU55K2tSQndFTC9XK2xyRE9j?= =?utf-8?B?eVpVeUk5L29sMWhpaS9QbzdHbDRtM2ZiL0l1eThUbG92MmMyRGdCbkRDM0w5?= =?utf-8?B?TlpRK3lZT2RPRGdhNEQvME13SzkvZGZ6UVBhV1lEY3BBUUhYSk9uMjBLUXdF?= =?utf-8?B?QzlVTmNiZzNRdmwwMlRVSmpoV2FGQkxkOGN4WFEwQm5iZ3FRTGFZT0VGQk9O?= =?utf-8?B?ZmwxNmcxc292clVHU2xLWndZVG91TE01N29YejJxdTRVUW9UK3ZBTmpmdlVz?= =?utf-8?B?RVBCaEpGelp0cWlocCtsUkoyeWxRZnJLZ1Njb21pbFdNSE5rRzg4SEw3NTdM?= =?utf-8?B?YmVyM1FtN2wzN2tXU3pURnFKMnFnbjZjWm9NZmJDTUJhVG1ScDB6NzJyaDVw?= =?utf-8?B?QTNsaityaEZHOHFSU1JpdWlqT3BEUTBLRG9QRTA0Tk5yaVhNSEkyWEpGTmRi?= =?utf-8?B?SEhia1JSejFtbTBNK1ZHYVpOWnlxUkpuc29PSmliS25GZWdFUUs4MUZOcGRL?= =?utf-8?B?aEl3YUJvaHQ0MEFLbW1lTWhKWmZyZnhpZGtPQjQ0d0xVOEs0NkpXdCsvanc3?= =?utf-8?B?ZUZWZHBTdDdUTDkwOGlORjEzU0FSdHlrODZxdExNTUF4SGFUdjhUdVFwUTEr?= =?utf-8?B?RGtySEhmYVNGZE5DS2VNOHZKUUdjSjdBTEpNNngrSmhsVFZMcnF2M2lOcDdS?= =?utf-8?B?MTlDWkpyVGVRcEtuSUFRS2k5SXR4Y1hldjlQUEs5dlV0R21KQ1RuMGdrNVhX?= =?utf-8?B?SStnSVB2Y1l4TnIyVHRzSUZKdGE4aFo5WU5YT2IvUk1hVDk4VGwvb3UxZEtP?= =?utf-8?Q?AaBs4Sw5xc3RJB1Y=3D?= X-Exchange-RoutingPolicyChecked: wYaj6gxOg1nptlMrsEWWnDt+4PeMYsG5T0v0ebSeAlK0Hi7tbuT85Kw5gMJy9oJd0rJuf1aKGt53NTkXtKKHRll25yDVRuhYxn2/xui7kb9YLKlDQ9nnMvzAdJ3NaAg+OxnL6e/fFJAPYfnEN1Sifx0x3W7auZP3+iDfksHsYY5Iekb2HdRaATZaxrdQM4u6SKhiIcih40s0sHcFW8sR3E+l0usvYN1OXWzz+eH/mjCtpD83x8loSGVNocvboSUsgdaKdEH6OmcCu6B3ouILr91aC+gFVhp4KOraItE4PfNYV7Be3CCbYwJsdSzM2DubUaEcedUsidAxBIfyPyH8YA== X-MS-Exchange-CrossTenant-Network-Message-Id: 710b5948-8105-46f1-623e-08dea7508d25 X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB6522.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2026 07:09:14.2114 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6P9sVdrF3GuskHDxAUQ6dENDrOxaE/1MYuGA3RPwE8z2vEdU+hcJrw3alu13H7ia4mZujCir2HSGkNdByi66ZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB7079 X-OriginatorOrg: intel.com 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" T24gRnJpLCBNYXkgMDEsIDIwMjYgYXQgMTE6NDI6MTlBTSArMTAwMCwgRGF2ZSBDaGlubmVyIHdy b3RlOgoKVGhhbmtzIGZvciB0aGUgZmVlZGJhY2suIEnigJltIGxvb2tpbmcgaW50byB0aGlzIG1v cmUsIGFuZCBpdOKAmXMgYmVjb21pbmcKY2xlYXIgdGhhdCB0aGlzIGlzIGEgaGFyZCBwcm9ibGVt 4oCUb25lIHRoYXQgd2lsbCBsaWtlbHkgcmVxdWlyZQpjb29yZGluYXRlZCB3b3JrIGJldHdlZW4g RFJNIGFuZCBjb3JlIE1NIHRvIHJlYWxseSBzb3J0IG91dC4gVGhhdCBzYWlkLApJIGRvIHRoaW5r IHdoYXQgSSBoYXZlIGluIHBsYWNlIGlzIGEgcmVhc29uYWJsZSBzaG9ydC10ZXJtIGZpeC4KCk1v cmUgYmVsb3cuCgo+IE9uIFRodSwgQXByIDMwLCAyMDI2IGF0IDEyOjE4OjAzUE0gLTA3MDAsIE1h dHRoZXcgQnJvc3Qgd3JvdGU6Cj4gPiBUVE0gYWxsb2NhdGlvbnMgYXQgaGlnaGVyIG9yZGVycyBj YW4gZHJpdmUgWGUgaW50byBhIHBhdGhvbG9naWNhbAo+ID4gcmVjbGFpbSBsb29wIHdoZW4gbWVt b3J5IGlzIGZyYWdtZW50ZWQ6Cj4gPiAKPiA+IGtzd2FwZCDihpIgc2hyaW5rZXIg4oaSIGV2aWN0 aW9uIOKGkiByZWJpbmQgKGV4ZWMgaW9jdGwpIOKGkiByZXBlYXQKPiA+IAo+ID4gSW4gdGhpcyBz dGF0ZSwgcmVjbGFpbSBpcyB0cmlnZ2VyZWQgZGVzcGl0ZSBzdWJzdGFudGlhbCBmcmVlIG1lbW9y eSwKPiA+IGJ1dCBmYWlscyB0byBwcm9kdWNlIGNvbnRpZ3VvdXMgaGlnaGVyLW9yZGVyIHBhZ2Vz LiBUaGUgWGUgc2hyaW5rZXIgdGhlbgo+ID4gZXZpY3RzIGFjdGl2ZSBidWZmZXIgb2JqZWN0cywg aW5jcmVhc2luZyBmYXVsdGluZyBhbmQgcmViaW5kIGFjdGl2aXR5Cj4gPiBhbmQgZnVydGhlciBm ZWVkaW5nIHRoZSBsb29wLiBUaGUgcmVzdWx0IGlzIGhpZ2ggQ1BVIG92ZXJoZWFkIGFuZCBwb29y Cj4gPiBHUFUgZm9yd2FyZCBwcm9ncmVzcy4KPiA+IAo+ID4gVGhpcyBpc3N1ZSB3YXMgZmlyc3Qg cmVwb3J0ZWQgaW4gWzFdIGFuZCBpbmRlcGVuZGVudGx5IG9ic2VydmVkCj4gPiBpbnRlcm5hbGx5 IGFuZCBieSBHb29nbGUuCj4gPiAKPiA+IEEgc2ltcGxlIHJlcHJvZHVjZXIgaXM6Cj4gPiAKPiA+ IC0gQm9vdCBhbiBpR1BVIHN5c3RlbSB3aXRoIG1lbT04Rwo+ID4gLSBMYXVuY2ggMTAgQ2hyb21l IHRhYnMgcnVubmluZyB0aGUgV2ViR0wgYXF1YXJpdW0gZGVtbwo+ID4gLSBDb25maWd1cmUgZWFj aCB0YWIgd2l0aCB+NWsgZmlzaAo+ID4gCj4gPiBVbmRlciB0aGlzIHdvcmtsb2FkLCBmdHJhY2Ug c2hvd3MgYSBjb250aW51b3VzIGxvb3Agb2Y6Cj4gPiAKPiA+IHhlX3Nocmlua2VyX3NjYW4gKGtz d2FwZCkKPiA+IHhlX3ZtYV9yZWJpbmRfZXhlYwo+ID4gCj4gPiBQZXJmb3JtYW5jZSBkZWdyYWRl cyBzaWduaWZpY2FudGx5LCB3aXRoIGVhY2ggdGFiIGRyb3BwaW5nIHRvIH4yIEZQUyBvbgo+ID4g UFRMIChVYnVudHUgMjQuMDQpLgo+ID4gCj4gPiBBdCB0aGUgc2FtZSB0aW1lLCAvcHJvYy9idWRk eWluZm8gc2hvd3Mgc3Vic3RhbnRpYWwgZnJlZSBtZW1vcnkgYnV0IG5vCj4gPiBoaWdoZXItb3Jk ZXIgYXZhaWxhYmlsaXR5LiBGb3IgZXhhbXBsZSwgdGhlIE5vcm1hbCB6b25lOgo+ID4gCj4gPiBD b3VudDogNDA2MyA0NTk1IDM0NTUgMzQwMCAzMTM5IDI3NjIgMjI5MyAxNjU1IDY0MyAwIDAKPiA+ IAo+ID4gVGhpcyBjb3JyZXNwb25kcyB0byB+Mi44R0IgZnJlZSBtZW1vcnksIGJ1dCBubyBvcmRl ci05ICgyTUIpIGJsb2NrcywKPiA+IGluZGljYXRpbmcgc2V2ZXJlIGZyYWdtZW50YXRpb24uCj4g PiAKPiA+IFRoaXMgc2VyaWVzIGFkZHJlc3NlcyB0aGUgaXNzdWUgaW4gdHdvIHdheXM6Cj4gPiAK PiA+IFRUTTogUmVzdHJpY3QgZGlyZWN0IHJlY2xhaW0gdG8gYmVuZWZpY2lhbF9vcmRlci4gTGFy Z2VyIGFsbG9jYXRpb25zCj4gPiB1c2UgX19HRlBfTk9SRVRSWSB0byBmYWlsIHF1aWNrbHkgcmF0 aGVyIHRoYW4gdHJpZ2dlcmluZyByZWNsYWltLgo+IAo+IE5BQ0suCj4gCj4gQXMgSSBoYXZlIHNh aWQgdG8gdGhlIHBlb3BsZSB0cnlpbmcgdG8gaGFjayBhcm91bmQgZGlyZWN0IHJlY2xhaW0KPiBm b3IgaGlnaCBvcmRlciBhbGxvY2F0aW9ucyBiZWluZyBjb3N0bHkgZm9yIHRoZSBwYWdlIGNhY2hl LCBmaXggdGhlCj4gcHJvYmxlbSB3aXRoIGRpcmVjdCByZWNsYWltLiAoZS5nLgo+IGh0dHBzOi8v bG9yZS5rZXJuZWwub3JnL2xpbnV4LXhmcy9hZExsclNaNW9SQWFfSGZkQGRyZWFkLykKPiAKCkkg cmVhZCB5b3VyIHJlc3BvbnNlLiBNYXliZSB0aGlzIGlzbid0IGNsZWFyIHdoYXQgaXMgZ29pbmcg aGVyZS4KCkF0IGJlbmVmaWNpYWxfb3JkZXI6IGdmcCA9PSBfX0dGUF9SRUNMQUlNIHwgX19HRlBf Tk9SRVRSWQpBdCBvcmRlciB6ZXJvOiBnZnAgPT0gX19HRlBfUkVDTEFJTQoKVGhpcyByb3VnaGx5 IGV4aXN0aW5nIGJlaGF2aW9yLCB0aGUgZXhhY3QgY2hhbmdlcyBhcmUgaGVyZSBbMV0uCgpbMV0g aHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzcyMjI0Ny8/c2VyaWVzPTE2 NTMyOSZyZXY9MwoKSWYgdGhpcyBpcyB0cnVseSBhIE5BQ0ssIHRoZW4gd2UgY2FuIHJldGhpbmsg aXTigJRsaWtlbHkgYnkgZGlzYWJsaW5nCnJlY2xhaW0gYXQgaGlnaGVyIG9yZGVyc+KAlGJ1dCB0 aGF0IGhhcyBpdHMgb3duIGRvd25zaWRlcyBmb3IgRFJNIGFuZApHUFVzLiBJZGVhbGx5LCB5b3Ug d2FudCBwdXJnZWFibGUgQk9zIHRvIGJlIGV2aWN0ZWQgd2hlbiBhIGhpZ2hlci1vcmRlcgphbGxv Y2F0aW9uIGZhaWxzOyB5b3UgcmVhbGx5IGRvbuKAmXQgd2FudCB0byBlbmQgdXAgaW4gYW4gaW5z YW5lIGtzd2FwCmxvb3AuCgo+IFdlIHNob3VsZCBub3QgYmUgaGFja2luZyBhcm91bmQgYSBwcm9i bGVtIGluIHRoZSBtbSBpbmZyYXN0cnVjdHVyZQo+IGJ5IGNoYW5naW5nIGFsbG9jYXRpb24gY29u dGV4dCBmbGFncyBldmVyeSBoaWdoIG9yZGVyIGFsbG9jYXRpb24gCj4gY2FsbCBzaXRlIHRoYXQg bmVlZHMgaGlnaCBvcmRlciBhbGxvY2F0aW9ucy4gVW5kZXJzdGFuZCBhbmQgZml4IHRoZQo+IGlu ZnJhc3RydWN0dXJlIHByb2JsZW0gb25jZSBhbmQgZm9yIGFsbC4KPiAKCldlbGwsIEkgYWdyZWUg dGhhdCB3ZSBzaG91bGQgYWltIHRvIGZpeCB0aGlzIGluIGNvcmUgTU0sIGJ1dCBhcyB0aGUKc2F5 aW5nIGdvZXMsIFJvbWUgd2FzbuKAmXQgYnVpbHQgaW4gYSBkYXkuIFRoZSBmYWN0IGlzIHRoYXQg dGhlc2UgR0ZQCmZsYWdzIGRvIGV4aXN0LCBhbmQgc3VkZGVubHkgZHJhd2luZyBhIGxpbmUgYW5k IGRlY2xhcmluZyB0aGVtIG5vIGxvbmdlcgp2YWxpZCBmZWVscyBhIGJpdCB1bmZhaXIuIEnigJls bCBhbHNvIG5vdGUgdGhhdCBJbnRlbOKAlGFuZCBJCnBlcnNvbmFsbHnigJRoYXZlIGFuIGludGVy ZXN0IGluIGZpeGluZyBzaHJpbmtpbmcsIHNvIHlvdSBjYW4gZXhwZWN0CmZvbGxvdy11cCB3b3Jr IGhlcmUuCgo+ID4gWGU6IEludHJvZHVjZSBhIGhldXJpc3RpYyBpbiB0aGUgc2hyaW5rZXIgdG8g YXZvaWQgZXZpY3Rpb24gd2hlbgo+ID4gcnVubmluZyB1bmRlciBrc3dhcGQgYW5kIHRoZSBzeXN0 ZW0gYXBwZWFycyBtZW1vcnktcmljaCBidXQKPiA+IGZyYWdtZW50ZWQuCj4gCj4gTkFDSyBvbiBh cmNoaXRlY3R1cmFsIGdyb3VuZHMuCj4gCj4gQ3VzdG9tIGhldXJpc3RpY3MgaW4gaW5kaXZpZHVh bCBzaHJpbmtlcnMgdG8gZGVjaWRlIHdoZXRoZXIgdGhlCj4gc2hvdWxkIGRvIHdoYXQgdGhlIG1t IHN1YnN5c3RlbSBoYXMgYXNrZWQgdGhlbSB0byBkbyBoYXMgLWFsd2F5cy0KPiBiZWVuIGEgbWlz dGFrZSB0byBhbGxvdy4gVGhlIG1tIHN1YnN5c3RlbSBtYWtlcyB0aGUgZGVjaXNpb24gb24gaG93 CgpJ4oCZbSBub3QgZ29pbmcgdG8gZGlzYWdyZWUgd2l0aCB1c2luZyBjdXN0b20gaGV1cmlzdGlj cyBpbiBpbmRpdmlkdWFsCnNocmlua2VycywgYnV0IEnigJlkIHdhZ2VyIHRoYXQgbW9zdCBzaHJp bmtlcnMgc2FkbHkgYWxyZWFkeSBpbXBsZW1lbnQKY3VzdG9tIGhldXJpc3RpY3MuCgo+IG11Y2gg Y2FjaGUgc2hyaW5rYWdlIG5lZWRzIHRvIG9jY3VyLCB0aGUgc2hyaW5rZXJzIGp1c3QgZG8gd2hh dCB0aGV5Cj4gYXJlIHRvbGQgdG8gZG8uCj4gCj4gSWYgd2UgaGF2ZSBhIHByb2JsZW0gd2hlcmUg YSB3b3JrbG9hZCBjYXVzZXMgZXhjZXNzaXZlIHNocmlua2VyCj4gcmVjbGFpbSwgdGhlbiB3ZSBu ZWVkIHRvIGFkZHJlc3MgdGhlIHByb2JsZW0gaW4gdGhlIGluZnJhc3RydWN0dXJlCj4gYmVjYXVz ZSBleGNlc3NpdmUgcmVjbGFpbSBhZmZlY3RzIHRoZSBwZXJmb3JtYW5jZSBvZiAtYWxsLQo+IHN1 YnN5c3RlbXMgd2l0aCBzaHJpbmthYmxlIGNhY2hlcywgbm90IGp1c3QgdGhlIFRUTSBzdWJzeXN0 ZW0uCj4gCgpZZXMsIEkgYWdyZWUsIGFuZCBJ4oCZdmUgdGhvdWdodCBhYm91dCB0aGUgaW1wbGlj YXRpb25zIG9mIHNpbXBseSBoYXZpbmcKVFRNIGJhY2sgb2ZmIHdoZW4gYSBoaWdoZXItb3JkZXIg YWxsb2NhdGlvbiBmYWlscywgZXZlbiB3aGVuIHdlIGFjdHVhbGx5CmhhdmUgZW5vdWdoIG1lbW9y eSwgYW5kIGhvdyB0aGF0IHdvdWxkIGFmZmVjdCBldmVyeW9uZS4gVGhpcyBzZXJpZXMgYXQKbGVh c3QgZml4ZXMgdGhlIOKAnHdlbGwsIHRoZXJlIGdvZXMgbXkgR1VJ4oCdIHByb2JsZW0uCgpJIGRv IGhhdmUgYW5vdGhlciBwYXRjaCBsb2NhbGx5IHRoYXQgcHJldmVudHMgVFRNIGZyb20gYWNjaWRl bnRhbGx5CmZyYWdtZW50aW5nIG1lbW9yeSBhbmQgdHJpZ2dlcmluZyB0aGUga3N3YXAgbG9vcCwg YnV0IHVuZGVyIGVub3VnaApwcmVzc3VyZSBJIGNhbiBzdGlsbCBnZXQgdGhlIEdVSSB0byBsb2Nr IHVwIGZvciBwZXJpb2RzIG9mIHRpbWUuIFdpdGgKdGhpcyBzZXJpZXMsIGhvd2V2ZXIsIEkgY2Fu 4oCZdCByZXByb2R1Y2UgdGhhdCBpc3N1ZS4KCj4gQXMgaXQgaXMsIEkgY2FuJ3QgcmV2aWV3IHdo YXQgeW91J3ZlIGFjdHVhbGx5IGltcGxlbWVudGVkIGJlY2F1c2UKPiB5b3Ugb25seSBjYydkIG1l IG9uIGEgc2luZ2xlIHBhdGNoIGluIHRoZSBzZXJpZXMuIEluIGZ1dHVyZSwgcGxlYXNlCj4gY2Mg bWUgb24gdGhlIHdob2xlIHBhdGNoc2V0IGJlY2F1c2Ugc2hyaW5rZXJzIG5lZWQgdG8gd29yayBh cyBhCj4gY29oZXJlbnQgd2hvbGUsIG5vdCBqdXN0IGluIGlzb2xhdGlvbi4uLi4KPiAKClNvcnJ5 IGFib3V0IHRoaXMgLSBBbmRyZXcganVzdCBzYWlkIHRoZSBzYW1lIHRoaW5nLiBIZXJlIGlzIFBX IGxpbmsgWzJdLgoKT3I6CgpiNCBtYm94IDIwMjYwNDMwMTkxODA5LjIxNDI1NDQtMS1tYXR0aGV3 LmJyb3N0QGludGVsLmNvbQoKWzJdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9z ZXJpZXMvMTY1MzI5LwoKSWYgeW91IGhhdmUgYW55IGlkZWFzIG9uIGhvdyB0byBmaXggdGhpcyBp biB0aGUgY29yZSwgbGV04oCZcyBkaXNjdXNzLiBJCmhhdmUgYSBidW5jaCBvZiBpZGVhcyBpbiBt eSBoZWFkLCBidXQgY29yZSBNTSBpc27igJl0IG15IG5hdGl2ZSBkb21haW4uCgpNYXR0Cgo+IC1E YXZlLgo+IC0tIAo+IERhdmUgQ2hpbm5lcgo+IGRnY0BrZXJuZWwub3JnCg==