From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002c1b01.pphosted.com (mx0a-002c1b01.pphosted.com [148.163.151.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D7193AEF44; Mon, 23 Mar 2026 14:49:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=148.163.151.68 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774277379; cv=fail; b=c/WxnapFKeaER5nUQoCgSUJNUCkWU9nF3h6BJAlV5DMMBSNukzLfIZqDeJiUEY0qbHL1PtQ/QuY31alflHaXbcjH1vC5oLppNfV81PaNa7q0/ZLh9ZSmiEDz8NynE45Go606Z5x3jIHOEr6PnlBMwPmXMMDFm9TZsfxBuZEyX+w= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774277379; c=relaxed/simple; bh=Nl0sK5PUI7q5f7a5wqaq11E7tgpIoT9i00J8L+N428I=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=oS/VTFokM+SekrXUoyRm6ZX0fMt0NRdwvMZrz7O3uncURr9aB7d/jMOCppphPT9fnpQpwXoh/wfJG6iyBMzhKdcZY9k2B+VU8HWuUojCwv+kGGdhB83NPFjY2Wuy1wuFstICdNNm/9Hn2ARAtMSvVJpUGVHV13kZwIoAONugLyY= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nutanix.com; spf=pass smtp.mailfrom=nutanix.com; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b=fDh94AJx; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b=uYI1m+oH; arc=fail smtp.client-ip=148.163.151.68 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nutanix.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nutanix.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b="fDh94AJx"; dkim=pass (2048-bit key) header.d=nutanix.com header.i=@nutanix.com header.b="uYI1m+oH" Received: from pps.filterd (m0127839.ppops.net [127.0.0.1]) by mx0a-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NDNCVC146481; Mon, 23 Mar 2026 07:49:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-id:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=Nl0sK5PUI7q5f7a5wqaq11E7tgpIoT9i00J8L+N42 8I=; b=fDh94AJxq3D5Oz30jYHbCJNyq08blyoXsspj6QLVZuQ8qcmowyadEuSxv rZ9f9M3c/UzDSENJd8aWDMPdRDRIivLjp47xbNM/9a3W9n3XqE1RxrwuOovPumgT M93ZqVQfKx6DGjz16M+W1Dlx47n5Ox+AU5UWSCJ3uNBWGTZvxas4cMFwMpkGClWi 1n+/E9nl1QVFFTbTd2BhloQ24FA4pgiKQXznkBAg0P0WvxAJxRwDTeiqxa/ti3Hv n5l7u7wva7XQ/l+cHZMKHMnAmKC+SNR1+q3Mig3NZ1VAipZOIhfm740B8fpJ8RXg 0ZogpRvfXJbBg44Z85NvSC1bOM9jQ== Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11022078.outbound.protection.outlook.com [40.107.200.78]) by mx0a-002c1b01.pphosted.com (PPS) with ESMTPS id 4d1tddkwcx-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Mon, 23 Mar 2026 07:49:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UJITZRQ/m+msOzF0fQKwMUWI7HeQtUZn7RMRh5OLgfRZLeYzxhD9kgYk7h+7jhDkixvRbDXWrA02tdZFdMLIz0EBhYDMYeI9lJAidCBcz0qy0h4dr/53m4uuUWSsw9vE3YBD7kKxT6ZwCgQbHkSvN/DIm/7CYJuAdxmnPiJLuV8moeaUXA2BlDBokTvCwW5GsrZ7QqqwPhJS0c3Vz4Oz9el4qVshBRnS+E0MTFd90LaJ/kAVCMlzWdRSK1ysrxe6g08gjMTVG8qK75HyAvtasslLpHW0vVyrx8ndL7ulv+yVYlcxtSW8zkYsVESb2kWFcfdFPrgD9SsSUnuoi8BqCg== 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=Nl0sK5PUI7q5f7a5wqaq11E7tgpIoT9i00J8L+N428I=; b=iWx4DKwa/iVYBl2LlEurkC4vdraLtPLPc3VJ8p7+gs6wbSPjF6jsxMjEaBQEXkmam2i+dlVa/Y5BtpPh0laMbUHXEeAi2JAZ/tWeqMqKJ9ewNLEIk2YPEdnLjsdewm1SvBYnV0OHlusXsJUQauhaMpTrtggJ5+zC6uIk2FKLfaAnXDYaqfBKpwrGvrmN6VmMs+BB5dGnDW9Qgey54RrtTPWrvUd6Kh/7n2hiCoXHPLtMLwiM88N7TBOuGANj7LV1CpAxLPibjw/GEhTbZNMiTmlHoMqVGZzRGJZwThiBnwfQKwkLpAWGaPZaCm2ML92cBRYYd9HNSeTekgy1CIC1sw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Nl0sK5PUI7q5f7a5wqaq11E7tgpIoT9i00J8L+N428I=; b=uYI1m+oHO1VWN1NyvthS0VoYU8HxIpHsldUQ9yjL7+xveJWm7HXPEFV4xYdWNvHox/S4CSiFFnzZeq5Fu1/lJ5h3RFzrZEWH+enz3SojhkJsVxcoSLtEZpBTY+Gho7BCFXZ7FFdHrulIeCKKVH/wOMk0Nsmfi/cbMGqiqkEw+IUCMiJxcSr+X6N8mXi2c+6r/TIwlard4yH7oX1MXsO4TvuDqYIYC8BTai6d8ypsum6F2Bz3pwe4z4zD0LdRzsaXfTKOK8XLNsXwtMi4PPMsAF0PMpXetkSjqtXXVXZ0kAhkTHdk26ch2AYXz/ttrVGgInCKnI2THY7jFVdBfgkhiQ== Received: from LV0PR02MB11133.namprd02.prod.outlook.com (2603:10b6:408:333::18) by IA0PR02MB9919.namprd02.prod.outlook.com (2603:10b6:208:485::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.25; Mon, 23 Mar 2026 14:49:26 +0000 Received: from LV0PR02MB11133.namprd02.prod.outlook.com ([fe80::10e5:8031:1b1b:b2dc]) by LV0PR02MB11133.namprd02.prod.outlook.com ([fe80::10e5:8031:1b1b:b2dc%3]) with mapi id 15.20.9723.030; Mon, 23 Mar 2026 14:49:26 +0000 From: Jon Kohler To: Paolo Bonzini CC: "linux-kernel@vger.kernel.org" , "kvm@vger.kernel.org" , Marcelo Tosatti , Nikunj A Dadhania , Amit Shah , Sean Christopherson Subject: Re: [PATCH 08/22] KVM: x86/mmu: introduce ACC_READ_MASK Thread-Topic: [PATCH 08/22] KVM: x86/mmu: introduce ACC_READ_MASK Thread-Index: AQHcuMcQlPuvvXzttEq92AJdb+ZWTrW8NuGA Date: Mon, 23 Mar 2026 14:49:26 +0000 Message-ID: References: <20260321000931.1947084-1-pbonzini@redhat.com> <20260321000931.1947084-9-pbonzini@redhat.com> In-Reply-To: <20260321000931.1947084-9-pbonzini@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3864.300.41.1.7) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV0PR02MB11133:EE_|IA0PR02MB9919:EE_ x-ms-office365-filtering-correlation-id: 886b3147-4e4a-44bd-0660-08de88eb6139 x-proofpoint-crosstenant: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|10070799003|366016|376014|1800799024|38070700021|18002099003|22082099003|56012099003; x-microsoft-antispam-message-info: dIl/YdfW60VM0+O2Yu5zmm4zeSiEpATJP2tVu2FU1J8oYQSm6US8Vi6Mfo4QrHauiKWcomBx3olI/BnQlv/nMzY/tpUNYaf5+fKfLeN/oLI+WhY5hzZTvCRdMLZpUhLMiqWMpcO4NmlV4rKwlcb+9FQ0Nit7PB2ylxc5ufk1hE4/QJQZtBaPm4SVuA8/Incl1c1XxY2vClx6E7IqMgiIih6OVjZ/ovlZNc+Emk21L7pzdUQZCeyzpDohU+nYWEJ3BFx8bO7pPefqTEsj3abYkzjExmWQKtBFDHeCqYLXQXpIErN8SLCNBd+wX3aqTc1DJ/c56qsL1egYAfIT52T5xysZZsxWswpvIfpO+K+7IQLuSJepD2kTN2NRTKMrZbUL6BZ/G/AZm3Zhjggw+Phv2+Zs8aiOg610qrAuj84Rq9vlnk1ABz4BLIG7v1LAzuAiV0+Pnjx+lYMJA+YKnnZ0sqXGobrUHgim7bKwmZ0mC4/pmJ7cmdp0jvVsHm5TNjqOp81i4/pmUGCN8l9mNMwEEX4HNi2QgydzBN0jX+oQdf5dUDPD5x7zShmUr6cnrk0mVdPChy8VfJDd5a81lJIVh7puj4ihnoBCXaoed6DxgebvPj98rrWZIcamPV2WTmXjC+PyIhzxyXsOTmiUVfdbM1hxsaEibi6UlICHBD4M46h16gxMUbVZOGmVzySoIwOd4C4bpyQgZKsCl9rj5WSpPEf7uhJHZso5zbRQ/cY8CtssdO3o8C2ajead8iSZu10GXS8VDaHijO9e7/V209XAO0//ZggrWzRVZjoJxlJ6+LQ= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV0PR02MB11133.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(366016)(376014)(1800799024)(38070700021)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 2 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?R2R2TEwyS2MzTTRCQnIzZ1dKSFU3NnF6b0l5Q2srUzV3UU84QUExRURpQ2pL?= =?utf-8?B?bkZGSC9MQStNOTYvTVU4VGFSMlRPbkMrS2tXWlM1NlVOSzFxUXhQTjdsVzdo?= =?utf-8?B?NmRPMUVLSXVkS05nU2psQ253M1ZmZlAveHJ3U3V3UlJSeGpxL3I4UmNsNHhX?= =?utf-8?B?R0Y0VXI4UlpIbGsyeGw0VDVmT3BvZE9nZ2cyL05QY3FCeVdSVWdmT0xQalM4?= =?utf-8?B?bWlLRnU2YytVdVNTc2had2R4TzVYRzFuUzRmKzAyY3ZMMmFNemowalVpemdD?= =?utf-8?B?bVFEaDdPUGk4LzkzLzBNckEwQkh5VHJ2NFgwdlZabnI2bjFUbnN2bVUwbVJn?= =?utf-8?B?VHBybkQwNUVvTy96TUI4NEgrN0JkUlhDYUFDWU1RZmp1UVhvdWpVNU9jUmUw?= =?utf-8?B?d0NnRkF6UnBwUnVUSnpBRGo0aXV2Y1hjNStKaXJoUEladGhGS1ZaaGF4QnFW?= =?utf-8?B?U0ZqM1YvSFdUZDh0amhQWGpiMWhFRWZiRThzNnhGSHhEY0RMNzFJY3JTWWoz?= =?utf-8?B?R1pXaTE3QXdvcFg4VFZnN2JVT1BTWkxuOWRLTFRmdGxnNmFMWmNjcFh0aldF?= =?utf-8?B?YURWWUZSOW94L05ZdUxMVWpCdGE2a0hMakpSd0VNSFkzNDVOS1ZYalhCUUps?= =?utf-8?B?WHdrS3V4S2xFWVpMNjRaZitWU0p3NEYzOGh6dWRMeWt6c0hBZlBRSm8vSlha?= =?utf-8?B?U0xDTStIaERtc214RTFCNjBLMUxxWURvRU44Ujh0UUIwdGhwdmZ6UTZBTE1L?= =?utf-8?B?aHBRRTFaOTdVWkU0MWtodFFHS0VCZElidElRbnQzcHRwbW93ZHM2aUFyak4y?= =?utf-8?B?YjNDTzJvbmN3MDRBKzFlSTEvdTA4TGdBaDVIbWNYcktjbGp2NCs5YnFETDU0?= =?utf-8?B?ekh4RWVhVUM3eFF5QkxOdVZQYWEyODAvVmtJSGpqekNsRFRZVE5UK00vbVNo?= =?utf-8?B?RWV5Y3lwblZiUy9NTXNiSWgreElPRTRPMTBoMWdxQXFHcWsvemx0VnRZS25R?= =?utf-8?B?RndaRlZpYXF1amNFd1VRQXUvamRsdG9LbXhhMXdCVGZ5dG9LZlhGTlhTS0g2?= =?utf-8?B?OUsrRFB2dGFxSVlCMUpWNFBXakU5d2drRzBVa2ZPV0oxa0xEaWlLa3hUTGox?= =?utf-8?B?bG9DU0UyZEVTQk1pSkFtbWhVYWdqSDdibjAvWWY0Rm54WlIxM2tWaXNVRkJC?= =?utf-8?B?TEt3MkxvM29pQ2VtNnEzQk5FSzVDbnc1OVNXQmxFbzRjMTJ6dml2ZjV6c0Y2?= =?utf-8?B?VDVzYzZLaVltOHpjYUNLZmxTQW9zYVBqQWtBMUdRTVg0YkpsWTZDc3BURzZy?= =?utf-8?B?cy9MdWFnTTZGenk5blhKZGdCQWhVdHArNXhydzlzaVRNekt6N1FsbnV1UUN3?= =?utf-8?B?bVRQN2hMb3dwNm9DazUreVZUamtQQUIyb0hSeXFrbzJteFBtd3pydFRRakpL?= =?utf-8?B?YUVYSis1QzdwUnBiNks1aHQxSGwxTDh6YkxaNkE0YTd0bjhSSG1HZk9IRXRC?= =?utf-8?B?djkzd0lDclc4ZGRhM1ZJQXBscUp2NHNwVDZMcXZtTE83SGFLaXZUWGR0S2Iv?= =?utf-8?B?YTVrdnJCL2hTMG9uNGlHVnNOcEtxNnRGUjg3cXRZeDQzVm1RQlBEQXRxRngz?= =?utf-8?B?WnRCSFlHTTNIVzAvakpCZjlvWUthNm5YdHBiODZ0RnhPcjNMeXVYZEFTaFlQ?= =?utf-8?B?MDFQRkc4SEwrVDQvZ0tEcFdmb2JkaEdSaXhaZC95dzhINENmRzR0YWNzS05O?= =?utf-8?B?WFYxYTdsMEtZQVFNVEZQMHFtR1hnSThlNjI1RzZpc1N0Tk5tWTd1enhoKzRC?= =?utf-8?B?ZStIa21hVnNTMFUyeW9kejNUMHdJaEhYMkt4THBNRWRVVXc4MFVGWU92SXIz?= =?utf-8?B?VXY5djBZdStZc1BrbjViSFF0WktaeTRENGlMeVkvemNmUm5jQ0NQNTFrUUdS?= =?utf-8?B?Vi9Qa0hSazhpc2dNNVN5eXJCbk5uTEZhR0JRL200VWcvanNxZy93UHVYYjJQ?= =?utf-8?B?RGpIUTJudVB5YVBvS0Y5VDB6L2p0b1JlaWs1UHFGTTY2bmtJTC96bkZ0VEtZ?= =?utf-8?B?WXZxeHN2anNGdXQrWktTc2JCclZVVnZoYzFNb0tPU2s0T3hzSGZOdVZkY3NK?= =?utf-8?B?dnNkcWgrUmd2VWF1UGVuQytCSlEycE1GcWFRR25mN0RUeGUyRnBjaEZ1clRi?= =?utf-8?B?ZkcxU29nZEc3dEQyanRTMHpFaDVWTEM3QWc1YkNvUTRVTXhvbENoMnU3ejRu?= =?utf-8?B?TEpFNE1sYXRlVExqNWdoZFcveEVDdzNjK0daMmZtWmZWNWd6a0lsOVVZeU85?= =?utf-8?B?MTJMMnYxdElWQjNCZ1ZVbS9KOXBVcXJ2TFB2ekExbittRWowR000MkxaUHY1?= =?utf-8?Q?PWoZ2tyzuHhAVbjKOoP4MMlQ9D5zrwSp4ZTcLRrciaBHf?= x-ms-exchange-antispam-messagedata-1: nqDsvnHt3w+9MRoNXLdV/QZreg06Wwqol0c= Content-Type: text/plain; charset="utf-8" Content-ID: <984756AB8B21CC46BFB6A38C43F0F837@namprd02.prod.outlook.com> Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: HxYmRfsA8QMqD5Irr/hlJRjQ1gkTX9PeILw1VmjMW0WIxkPK72Hyp16rvw6pSeauPkuxadlQ3ttJjm+WcmaCQhg3fzF+FAXM9X7YrI7M4+lKRfhBaqhIL8T8c+5DKWXMRFN8ADJWU1dg+YiWbMpU2ms87zH3IiRC+s1sjPBbPvybULuf1JGaEdSf9C82rpf2ozZ3mwU73ejpG6qnU/qV+oSn5fA+zXg9sYzAUgHy5+ujnd2jPhgKmPFHHokkd5AvVvTnBid47tkG1b25J/mDS1iDGSJKIUdhFFrv5vI3PBppSJPTCwcjmC5iVw31py+gk1z1DQsnWBc/4fNvOZnXWA== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV0PR02MB11133.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 886b3147-4e4a-44bd-0660-08de88eb6139 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2026 14:49:26.2541 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: x8atP4BNZUWCYDnfSy5fL651Gs8JlGQnWT51hsygrjQot1dDKHgRglZH/BBPAUP0gJ3S0rekhoIN7IL0oq7t+illqTfK01LXL8zd8GGgCgo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR02MB9919 X-Proofpoint-ORIG-GUID: kTI9wgBQ0SkpnyZUIMhXOqZn-nPGOWTg X-Proofpoint-GUID: kTI9wgBQ0SkpnyZUIMhXOqZn-nPGOWTg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDExNCBTYWx0ZWRfXzb5Xj4IZDPFH NnW6u/DTj0+SIeK7jLscYcNmtfexnhAS8OmwJ8iGtPDusUBFnrpa7dhmKcSp76Gyh6+pVp47RV8 r7K8M7xkXmUCPEj6kyd8bjxEOKkbHje4kFku00DDKvw2ySGLRiOOskEk268LZv/aQ6mecPGfYmf +L/CHZQY65X29c5LT8vnlJm/F+/FwN3HfJOkjRauRkQFKaqyKFV0kaeXPZOtJEnZvBiJ9A59WYU X+4begY982O02WgHrT1kzHGvJQE900I1mYzcdgDifKx0oELydCBeIs+QrUDHElCChnmcUBbLPSH DBGm/Ce7o9O0jZcxGACp+WhVYls/hJtNUcHxBC75hefDufuGmYdcazHKLq3FJDw0eubxpIRHoSR jV7vgIYfvdn7QIKRrj2cKTqF/i7e7QevfPE/GgMsjU/KVK/NDuw6nVTc+UmQCwwJmQcuZnzJhmK 4h9aylEBQv8nY+Qt1kQ== X-Authority-Analysis: v=2.4 cv=YN2SCBGx c=1 sm=1 tr=0 ts=69c152f8 cx=c_pps a=kwEHbe0FhOXiazSsKgGQ8w==:117 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=y4UcunY2MAxhM4LwGdWI:22 a=20KFwNOVAAAA:8 a=dfUY3JMY_tR6CCAtEz8A:9 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_04,2026-03-23_01,2025-10-01_01 X-Proofpoint-Spam-Reason: safe DQoNCj4gT24gTWFyIDIwLCAyMDI2LCBhdCA4OjA54oCvUE0sIFBhb2xvIEJvbnppbmkgPHBib256 aW5pQHJlZGhhdC5jb20+IHdyb3RlOg0KPiANCj4gUmVhZCBwZXJtaXNzaW9ucyBzbyBmYXIgd2Vy ZSBvbmx5IG5lZWRlZCBmb3IgRVBULCB3aGljaCBkb2VzIG5vdCBuZWVkDQo+IEFDQ19VU0VSX01B U0suICBUaGVyZWZvcmUsIGZvciBFUFQgcGFnZSB0YWJsZXMgQUNDX1VTRVJfTUFTSyB3YXMgcmVw dXJwb3NlZA0KPiBhcyBhIHJlYWQgcGVybWlzc2lvbiBiaXQuDQo+IA0KPiBJbiBvcmRlciB0byBp bXBsZW1lbnQgbmVzdGVkIE1CRUMsIEVQVCB3aWxsIGdlbnVpbmVseSBoYXZlIGZvdXIga2luZHMg b2YNCj4gYWNjZXNzZXMsIGFuZCB0aGVyZSB3aWxsIGJlIG5vIHJvb20gZm9yIHN1Y2ggaGFja3M7 IGJpdGUgdGhlIGJ1bGxldCBhdA0KPiBsYXN0LCBlbmxhcmdpbmcgQUNDX0FMTCB0byBmb3VyIGJp dHMgYW5kIHBlcm1pc3Npb25zW10gdG8gMl40IGJpdHMgKHUxNikuDQo+IA0KPiBUaGUgbmV3IGNv ZGUgZG9lcyBub3QgZW5mb3JjZSB0aGF0IHRoZSBYV1IgYml0cyBvbiBub24tZXhlY29ubHkgcHJv Y2Vzc29ycw0KPiBoYXZlIHRoZWlyIFIgYml0IHNldCwgZXZlbiB3aGVuIHJ1bm5pbmcgbmVzdGVk OiBub25lIG9mIHRoZSBzaGFkb3dfKl9tYXNrDQo+IHZhbHVlcyBoYXZlIGJpdCAwIHNldCwgYW5k IG1ha2Vfc3B0ZSgpIGdlbnVpbmVseSByZWxpZXMgb24gQUNDX1JFQURfTUFTSw0KPiBiZWluZyBy ZXF1ZXN0ZWQhICBUaGlzIHdvcmtzIGJlY2FzZSwgaWYgZXhlY29ubHkgaXMgbm90IHN1cHBvcnRl ZCBieSB0aGUNCj4gcHJvY2Vzc29yLCBzaGFkb3cgRVBUIHdpbGwgZ2VuZXJhdGUgYW4gRVBUIG1p c2NvbmZpZyB2bWV4aXQgaWYgdGhlIFhXUg0KPiBiaXRzIHJlcHJlc2VudCBhIG5vbi1yZWFkYWJs ZSBwYWdlLCBhbmQgdGhlcmVmb3JlIHRoZSBwdGVfYWNjZXNzIGFyZ3VtZW50DQo+IHRvIG1ha2Vf c3B0ZSgpIHdpbGwgYWxzbyBhbHdheXMgaGF2ZSBBQ0NfUkVBRF9NQVNLIHNldC4NCj4gDQo+IFNp Z25lZC1vZmYtYnk6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+DQo+IC0tLQ0K PiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oIHwgMTIgKysrKystLS0tLQ0KPiBhcmNo L3g4Ni9rdm0vbW11LmggICAgICAgICAgICAgIHwgIDIgKy0NCj4gYXJjaC94ODYva3ZtL21tdS9t bXUuYyAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPiBh cmNoL3g4Ni9rdm0vbW11L21tdXRyYWNlLmggICAgIHwgIDMgKystDQo+IGFyY2gveDg2L2t2bS9t bXUvcGFnaW5nX3RtcGwuaCAgfCAyMSArKysrKysrKystLS0tLS0tLS0NCj4gYXJjaC94ODYva3Zt L21tdS9zcHRlLmMgICAgICAgICB8IDE4ICsrKysrKy0tLS0tLS0tLQ0KPiBhcmNoL3g4Ni9rdm0v bW11L3NwdGUuaCAgICAgICAgIHwgIDUgKysrLS0NCj4gYXJjaC94ODYva3ZtL3ZteC9jYXBhYmls aXRpZXMuaCB8ICA1IC0tLS0tDQo+IGFyY2gveDg2L2t2bS92bXgvY29tbW9uLmggICAgICAgfCAg NSArLS0tLQ0KPiBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jICAgICAgICAgIHwgIDMgKy0tDQo+IDEw IGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDU3IGRlbGV0aW9ucygtKQ0KPiANCj4g ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9rdm1faG9zdC5oDQo+IGluZGV4IDg3MWM3ZmY0ZmIyOS4uM2VmYjIzOGM2ODNj IDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1faG9zdC5oDQo+ICsrKyBi L2FyY2gveDg2L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgNCj4gQEAgLTMxNywxMSArMzE3LDExIEBA IHN0cnVjdCBrdm1fa2VybmVsX2lycV9yb3V0aW5nX2VudHJ5Ow0KPiAgKiB0aGUgbnVtYmVyIG9m IHVuaXF1ZSBTUHMgdGhhdCBjYW4gdGhlb3JldGljYWxseSBiZSBjcmVhdGVkIGlzIDJebiwgd2hl cmUgbg0KPiAgKiBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgdGhhdCBhcmUgdXNlZCB0byBjb21wdXRl IHRoZSByb2xlLg0KPiAgKg0KPiAtICogQnV0LCBldmVuIHRob3VnaCB0aGVyZSBhcmUgMjAgYml0 cyBpbiB0aGUgbWFzayBiZWxvdywgbm90IGFsbCBjb21iaW5hdGlvbnMNCj4gKyAqIEJ1dCwgZXZl biB0aG91Z2ggdGhlcmUgYXJlIDIxIGJpdHMgaW4gdGhlIG1hc2sgYmVsb3csIG5vdCBhbGwgY29t YmluYXRpb25zDQo+ICAqIG9mIG1vZGVzIGFuZCBmbGFncyBhcmUgcG9zc2libGU6DQo+ICAqDQo+ ICAqICAgLSBpbnZhbGlkIHNoYWRvdyBwYWdlcyBhcmUgbm90IGFjY291bnRlZCwgbWlycm9yIHBh Z2VzIGFyZSBub3Qgc2hhZG93ZWQsDQo+IC0gKiAgICAgc28gdGhlIGJpdHMgYXJlIGVmZmVjdGl2 ZWx5IDE4Lg0KPiArICogICAgIHNvIHRoZSBiaXRzIGFyZSBlZmZlY3RpdmVseSAxOS4NCj4gICoN Cj4gICogICAtIHF1YWRyYW50IHdpbGwgb25seSBiZSB1c2VkIGlmIGhhc180X2J5dGVfZ3B0ZT0x IChub24tUEFFIHBhZ2luZyk7DQo+ICAqICAgICBleGVjb25seSBhbmQgYWRfZGlzYWJsZWQgYXJl IG9ubHkgdXNlZCBmb3IgbmVzdGVkIEVQVCB3aGljaCBoYXMNCj4gQEAgLTMzNiw3ICszMzYsNyBA QCBzdHJ1Y3Qga3ZtX2tlcm5lbF9pcnFfcm91dGluZ19lbnRyeTsNCj4gICogICAgIGNyMF93cD0w LCB0aGVyZWZvcmUgdGhlc2UgdGhyZWUgYml0cyBvbmx5IGdpdmUgcmlzZSB0byA1IHBvc3NpYmls aXRpZXMuDQo+ICAqDQo+ICAqIFRoZXJlZm9yZSwgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBvc3Np YmxlIHVwcGVyLWxldmVsIHNoYWRvdyBwYWdlcyBmb3IgYQ0KPiAtICogc2luZ2xlIGdmbiBpcyBh IGJpdCBsZXNzIHRoYW4gMl4xMy4NCj4gKyAqIHNpbmdsZSBnZm4gaXMgYSBiaXQgbGVzcyB0aGFu IDJeMTQuDQo+ICAqLw0KPiB1bmlvbiBrdm1fbW11X3BhZ2Vfcm9sZSB7DQo+IHUzMiB3b3JkOw0K PiBAQCAtMzQ1LDcgKzM0NSw3IEBAIHVuaW9uIGt2bV9tbXVfcGFnZV9yb2xlIHsNCj4gdW5zaWdu ZWQgaGFzXzRfYnl0ZV9ncHRlOjE7DQo+IHVuc2lnbmVkIHF1YWRyYW50OjI7DQo+IHVuc2lnbmVk IGRpcmVjdDoxOw0KPiAtIHVuc2lnbmVkIGFjY2VzczozOw0KPiArIHVuc2lnbmVkIGFjY2Vzczo0 Ow0KPiB1bnNpZ25lZCBpbnZhbGlkOjE7DQo+IHVuc2lnbmVkIGVmZXJfbng6MTsNCj4gdW5zaWdu ZWQgY3IwX3dwOjE7DQo+IEBAIC0zNTUsNyArMzU1LDcgQEAgdW5pb24ga3ZtX21tdV9wYWdlX3Jv bGUgew0KPiB1bnNpZ25lZCBndWVzdF9tb2RlOjE7DQo+IHVuc2lnbmVkIHBhc3N0aHJvdWdoOjE7 DQo+IHVuc2lnbmVkIGlzX21pcnJvcjoxOw0KPiAtIHVuc2lnbmVkIDo0Ow0KPiArIHVuc2lnbmVk IDozOw0KDQpjaGVja3BhdGNoLnBsIGNvbXBsYWludDoNCkVSUk9SOiBzcGFjZSBwcm9oaWJpdGVk IGJlZm9yZSB0aGF0ICc6JyAoY3R4Old4VikNCiM3ODogRklMRTogYXJjaC94ODYvaW5jbHVkZS9h c20va3ZtX2hvc3QuaDozNjA6DQorICAgICAgICAgICAgICAgdW5zaWduZWQgOjM7DQogICAgICAg ICAgICAgICAgICAgICAgICAgXg0KDQo+IA0KPiAvKg0KPiAqIFRoaXMgaXMgbGVmdCBhdCB0aGUg dG9wIG9mIHRoZSB3b3JkIHNvIHRoYXQNCj4gQEAgLTQ4MSw3ICs0ODEsNyBAQCBzdHJ1Y3Qga3Zt X21tdSB7DQo+ICogQnl0ZSBpbmRleDogcGFnZSBmYXVsdCBlcnJvciBjb2RlIFs0OjFdDQo+ICog Qml0IGluZGV4OiBwdGUgcGVybWlzc2lvbnMgaW4gQUNDXyogZm9ybWF0DQo+ICovDQo+IC0gdTgg cGVybWlzc2lvbnNbMTZdOw0KPiArIHUxNiBwZXJtaXNzaW9uc1sxNl07DQo+IA0KPiB1NjQgKnBh ZV9yb290Ow0KPiB1NjQgKnBtbDRfcm9vdDsNCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9t bXUuaCBiL2FyY2gveDg2L2t2bS9tbXUuaA0KPiBpbmRleCBiNGI2ODYwYWI5NzEuLmY1ZDM1ZjY2 NzUwYiAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL21tdS5oDQo+ICsrKyBiL2FyY2gveDg2 L2t2bS9tbXUuaA0KPiBAQCAtODEsNyArODEsNyBAQCB1OCBrdm1fbW11X2dldF9tYXhfdGRwX2xl dmVsKHZvaWQpOw0KPiB2b2lkIGt2bV9tbXVfc2V0X21taW9fc3B0ZV9tYXNrKHU2NCBtbWlvX3Zh bHVlLCB1NjQgbW1pb19tYXNrLCB1NjQgYWNjZXNzX21hc2spOw0KPiB2b2lkIGt2bV9tbXVfc2V0 X21taW9fc3B0ZV92YWx1ZShzdHJ1Y3Qga3ZtICprdm0sIHU2NCBtbWlvX3ZhbHVlKTsNCj4gdm9p ZCBrdm1fbW11X3NldF9tZV9zcHRlX21hc2sodTY0IG1lX3ZhbHVlLCB1NjQgbWVfbWFzayk7DQo+ IC12b2lkIGt2bV9tbXVfc2V0X2VwdF9tYXNrcyhib29sIGhhc19hZF9iaXRzLCBib29sIGhhc19l eGVjX29ubHkpOw0KPiArdm9pZCBrdm1fbW11X3NldF9lcHRfbWFza3MoYm9vbCBoYXNfYWRfYml0 cyk7DQo+IA0KPiB2b2lkIGt2bV9pbml0X21tdShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOw0KPiB2 b2lkIGt2bV9pbml0X3NoYWRvd19ucHRfbW11KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWdu ZWQgbG9uZyBjcjAsDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbW11L21tdS5jIGIvYXJj aC94ODYva3ZtL21tdS9tbXUuYw0KPiBpbmRleCA4NDM1MWRmOGE5Y2IuLmI4N2RiZjllNDJiOSAx MDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL21tdS9tbXUuYw0KPiArKysgYi9hcmNoL3g4Ni9r dm0vbW11L21tdS5jDQo+IEBAIC0yMDI5LDcgKzIwMjksNyBAQCBzdGF0aWMgYm9vbCBrdm1fc3lu Y19wYWdlX2NoZWNrKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9tbXVfcGFnZSAq c3ApDQo+ICovDQo+IGNvbnN0IHVuaW9uIGt2bV9tbXVfcGFnZV9yb2xlIHN5bmNfcm9sZV9pZ24g PSB7DQo+IC5sZXZlbCA9IDB4ZiwNCj4gLSAuYWNjZXNzID0gMHg3LA0KPiArIC5hY2Nlc3MgPSBB Q0NfQUxMLA0KPiAucXVhZHJhbnQgPSAweDMsDQo+IC5wYXNzdGhyb3VnaCA9IDB4MSwNCj4gfTsN Cj4gQEAgLTU0MjYsNyArNTQyNiw3IEBAIHJlc2V0X2VwdF9zaGFkb3dfemVyb19iaXRzX21hc2so c3RydWN0IGt2bV9tbXUgKmNvbnRleHQsIGJvb2wgZXhlY29ubHkpDQo+ICAqIHVwZGF0ZV9wZXJt aXNzaW9uX2JpdG1hc2soKSBidWlsZHMgd2hhdCBpcyBlZmZlY3RpdmVseSBhDQo+ICAqIHR3by1k aW1lbnNpb25hbCBhcnJheSBvZiBib29scy4gIFRoZSBzZWNvbmQgZGltZW5zaW9uIGlzDQo+ICAq IHByb3ZpZGVkIGJ5IGluZGl2aWR1YWwgYml0cyBvZiBwZXJtaXNzaW9uc1twZmVjID4+IDFdLCBh bmQNCj4gLSAqIGxvZ2ljYWwgJiwgfCBhbmQgfiBvcGVyYXRpb25zIG9wZXJhdGUgb24gYWxsIHRo ZSA4IHBvc3NpYmxlDQo+ICsgKiBsb2dpY2FsICYsIHwgYW5kIH4gb3BlcmF0aW9ucyBvcGVyYXRl IG9uIGFsbCB0aGUgMTYgcG9zc2libGUNCj4gICogY29tYmluYXRpb25zIG9mIEFDQ18qIGJpdHMu DQo+ICAqLw0KPiAjZGVmaW5lIEFDQ19CSVRTX01BU0soYWNjZXNzKSBcDQo+IEBAIC01NDM2LDE1 ICs1NDM2LDI0IEBAIHJlc2V0X2VwdF9zaGFkb3dfemVyb19iaXRzX21hc2soc3RydWN0IGt2bV9t bXUgKmNvbnRleHQsIGJvb2wgZXhlY29ubHkpDQo+ICg0ICYgKGFjY2VzcykgPyAxIDw8IDQgOiAw KSB8IFwNCj4gKDUgJiAoYWNjZXNzKSA/IDEgPDwgNSA6IDApIHwgXA0KPiAoNiAmIChhY2Nlc3Mp ID8gMSA8PCA2IDogMCkgfCBcDQo+IC0gKDcgJiAoYWNjZXNzKSA/IDEgPDwgNyA6IDApKQ0KPiAr ICg3ICYgKGFjY2VzcykgPyAxIDw8IDcgOiAwKSB8IFwNCj4gKyAoOCAmIChhY2Nlc3MpID8gMSA8 PCA4IDogMCkgfCBcDQo+ICsgKDkgJiAoYWNjZXNzKSA/IDEgPDwgOSA6IDApIHwgXA0KPiArICgx MCAmIChhY2Nlc3MpID8gMSA8PCAxMCA6IDApIHwgXA0KPiArICgxMSAmIChhY2Nlc3MpID8gMSA8 PCAxMSA6IDApIHwgXA0KPiArICgxMiAmIChhY2Nlc3MpID8gMSA8PCAxMiA6IDApIHwgXA0KPiAr ICgxMyAmIChhY2Nlc3MpID8gMSA8PCAxMyA6IDApIHwgXA0KPiArICgxNCAmIChhY2Nlc3MpID8g MSA8PCAxNCA6IDApIHwgXA0KPiArICgxNSAmIChhY2Nlc3MpID8gMSA8PCAxNSA6IDApKQ0KPiAN Cj4gc3RhdGljIHZvaWQgdXBkYXRlX3Blcm1pc3Npb25fYml0bWFzayhzdHJ1Y3Qga3ZtX21tdSAq bW11LCBib29sIGVwdCkNCj4gew0KPiB1bnNpZ25lZCBieXRlOw0KPiANCj4gLSBjb25zdCB1OCB4 ID0gQUNDX0JJVFNfTUFTSyhBQ0NfRVhFQ19NQVNLKTsNCj4gLSBjb25zdCB1OCB3ID0gQUNDX0JJ VFNfTUFTSyhBQ0NfV1JJVEVfTUFTSyk7DQo+IC0gY29uc3QgdTggdSA9IEFDQ19CSVRTX01BU0so QUNDX1VTRVJfTUFTSyk7DQo+ICsgY29uc3QgdTE2IHggPSBBQ0NfQklUU19NQVNLKEFDQ19FWEVD X01BU0spOw0KPiArIGNvbnN0IHUxNiB3ID0gQUNDX0JJVFNfTUFTSyhBQ0NfV1JJVEVfTUFTSyk7 DQo+ICsgY29uc3QgdTE2IHUgPSBBQ0NfQklUU19NQVNLKEFDQ19VU0VSX01BU0spOw0KPiArIGNv bnN0IHUxNiByID0gQUNDX0JJVFNfTUFTSyhBQ0NfUkVBRF9NQVNLKTsNCj4gDQo+IGJvb2wgY3I0 X3NtZXAgPSBpc19jcjRfc21lcChtbXUpOw0KPiBib29sIGNyNF9zbWFwID0gaXNfY3I0X3NtYXAo bW11KTsNCj4gQEAgLTU0NjcsMjQgKzU0NzYsMjYgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3Blcm1p c3Npb25fYml0bWFzayhzdHJ1Y3Qga3ZtX21tdSAqbW11LCBib29sIGVwdCkNCj4gdW5zaWduZWQg cGZlYyA9IGJ5dGUgPDwgMTsNCj4gDQo+IC8qDQo+IC0gKiBFYWNoICIqZiIgdmFyaWFibGUgaGFz IGEgMSBiaXQgZm9yIGVhY2ggVVdYIHZhbHVlDQo+ICsgKiBFYWNoICIqZiIgdmFyaWFibGUgaGFz IGEgMSBiaXQgZm9yIGVhY2ggQUNDXyogY29tYm8NCj4gKiB0aGF0IGNhdXNlcyBhIGZhdWx0IHdp dGggdGhlIGdpdmVuIFBGRUMuDQo+ICovDQo+IA0KPiArIC8qIEZhdWx0cyBmcm9tIHJlYWRzIHRv IG5vbi1yZWFkYWJsZSBwYWdlcyAqLw0KPiArIHUxNiByZiA9IChwZmVjICYgKFBGRVJSX1dSSVRF X01BU0t8UEZFUlJfRkVUQ0hfTUFTSykpID8gMCA6ICh1MTYpfnI7DQo+IC8qIEZhdWx0cyBmcm9t IHdyaXRlcyB0byBub24td3JpdGFibGUgcGFnZXMgKi8NCj4gLSB1OCB3ZiA9IChwZmVjICYgUEZF UlJfV1JJVEVfTUFTSykgPyAodTgpfncgOiAwOw0KPiArIHUxNiB3ZiA9IChwZmVjICYgUEZFUlJf V1JJVEVfTUFTSykgPyAodTE2KX53IDogMDsNCj4gLyogRmF1bHRzIGZyb20gdXNlciBtb2RlIGFj Y2Vzc2VzIHRvIHN1cGVydmlzb3IgcGFnZXMgKi8NCj4gLSB1OCB1ZiA9IChwZmVjICYgUEZFUlJf VVNFUl9NQVNLKSA/ICh1OCl+dSA6IDA7DQo+ICsgdTE2IHVmID0gKHBmZWMgJiBQRkVSUl9VU0VS X01BU0spID8gKHUxNil+dSA6IDA7DQo+IC8qIEZhdWx0cyBmcm9tIGZldGNoZXMgb2Ygbm9uLWV4 ZWN1dGFibGUgcGFnZXMqLw0KPiAtIHU4IGZmID0gKHBmZWMgJiBQRkVSUl9GRVRDSF9NQVNLKSA/ ICh1OCl+eCA6IDA7DQo+ICsgdTE2IGZmID0gKHBmZWMgJiBQRkVSUl9GRVRDSF9NQVNLKSA/ICh1 MTYpfnggOiAwOw0KPiAvKiBGYXVsdHMgZnJvbSBrZXJuZWwgbW9kZSBmZXRjaGVzIG9mIHVzZXIg cGFnZXMgKi8NCj4gLSB1OCBzbWVwZiA9IDA7DQo+ICsgdTE2IHNtZXBmID0gMDsNCj4gLyogRmF1 bHRzIGZyb20ga2VybmVsIG1vZGUgYWNjZXNzZXMgb2YgdXNlciBwYWdlcyAqLw0KPiAtIHU4IHNt YXBmID0gMDsNCj4gKyB1MTYgc21hcGYgPSAwOw0KPiANCj4gaWYgKCFlcHQpIHsNCj4gLyogRmF1 bHRzIGZyb20ga2VybmVsIG1vZGUgYWNjZXNzZXMgdG8gdXNlciBwYWdlcyAqLw0KPiAtIHU4IGtm ID0gKHBmZWMgJiBQRkVSUl9VU0VSX01BU0spID8gMCA6IHU7DQo+ICsgdTE2IGtmID0gKHBmZWMg JiBQRkVSUl9VU0VSX01BU0spID8gMCA6IHU7DQo+IA0KPiAvKiBOb3QgcmVhbGx5IG5lZWRlZDog IW54IHdpbGwgY2F1c2UgcHRlLm54IHRvIGZhdWx0ICovDQo+IGlmICghZWZlcl9ueCkNCj4gQEAg LTU1MTcsNyArNTUyOCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9wZXJtaXNzaW9uX2JpdG1hc2so c3RydWN0IGt2bV9tbXUgKm1tdSwgYm9vbCBlcHQpDQo+IHNtYXBmID0gKHBmZWMgJiAoUEZFUlJf UlNWRF9NQVNLfFBGRVJSX0ZFVENIX01BU0spKSA/IDAgOiBrZjsNCj4gfQ0KPiANCj4gLSBtbXUt PnBlcm1pc3Npb25zW2J5dGVdID0gZmYgfCB1ZiB8IHdmIHwgc21lcGYgfCBzbWFwZjsNCj4gKyBt bXUtPnBlcm1pc3Npb25zW2J5dGVdID0gZmYgfCB1ZiB8IHdmIHwgcmYgfCBzbWVwZiB8IHNtYXBm Ow0KPiB9DQo+IH0NCj4gDQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vbW11L21tdXRyYWNl LmggYi9hcmNoL3g4Ni9rdm0vbW11L21tdXRyYWNlLmgNCj4gaW5kZXggZjM1YTgzMGNlNDY5Li40 NDU0NWY2Zjg2MGEgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2bS9tbXUvbW11dHJhY2UuaA0K PiArKysgYi9hcmNoL3g4Ni9rdm0vbW11L21tdXRyYWNlLmgNCj4gQEAgLTI1LDcgKzI1LDggQEAN Cj4gI2RlZmluZSBLVk1fTU1VX1BBR0VfUFJJTlRLKCkgKHsgICAgICAgIFwNCj4gY29uc3QgY2hh ciAqc2F2ZWRfcHRyID0gdHJhY2Vfc2VxX2J1ZmZlcl9wdHIocCk7IFwNCj4gc3RhdGljIGNvbnN0 IGNoYXIgKmFjY2Vzc19zdHJbXSA9IHsgICAgICAgIFwNCj4gLSAiLS0tIiwgIi0teCIsICJ3LS0i LCAidy14IiwgIi11LSIsICItdXgiLCAid3UtIiwgInd1eCIgIFwNCj4gKyAiLS0tLSIsICJyLS0t IiwgIi13LS0iLCAicnctLSIsICItLXUtIiwgInItdS0iLCAiLXd1LSIsICJyd3UtIiwgXA0KPiAr ICItLS14IiwgInItLXgiLCAiLXcteCIsICJydy14IiwgIi0tdXgiLCAici11eCIsICItd3V4Iiwg InJ3dXgiIFwNCj4gfTsgICAgICAgIFwNCj4gdW5pb24ga3ZtX21tdV9wYWdlX3JvbGUgcm9sZTsg ICAgICAgIFwNCj4gICAgICAgIFwNCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9tbXUvcGFn aW5nX3RtcGwuaCBiL2FyY2gveDg2L2t2bS9tbXUvcGFnaW5nX3RtcGwuaA0KPiBpbmRleCBlZDc2 MmJiNGIwMDcuLmJiZGJmNGFlMmQ2NSAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva3ZtL21tdS9w YWdpbmdfdG1wbC5oDQo+ICsrKyBiL2FyY2gveDg2L2t2bS9tbXUvcGFnaW5nX3RtcGwuaA0KPiBA QCAtMTcwLDI1ICsxNzAsMjQgQEAgc3RhdGljIGJvb2wgRk5BTUUocHJlZmV0Y2hfaW52YWxpZF9n cHRlKShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQo+IHJldHVybiB0cnVlOw0KPiB9DQo+IA0KPiAt LyoNCj4gLSAqIEZvciBQVFRZUEVfRVBULCBhIHBhZ2UgdGFibGUgY2FuIGJlIGV4ZWN1dGFibGUg YnV0IG5vdCByZWFkYWJsZQ0KPiAtICogb24gc3VwcG9ydGVkIHByb2Nlc3NvcnMuIFRoZXJlZm9y ZSwgc2V0X3NwdGUgZG9lcyBub3QgYXV0b21hdGljYWxseQ0KPiAtICogc2V0IGJpdCAwIGlmIGV4 ZWN1dGUgb25seSBpcyBzdXBwb3J0ZWQuIEhlcmUsIHdlIHJlcHVycG9zZSBBQ0NfVVNFUl9NQVNL DQo+IC0gKiB0byBzaWduaWZ5IHJlYWRhYmlsaXR5IHNpbmNlIGl0IGlzbid0IHVzZWQgaW4gdGhl IEVQVCBjYXNlDQo+IC0gKi8NCj4gc3RhdGljIGlubGluZSB1bnNpZ25lZCBGTkFNRShncHRlX2Fj Y2VzcykodTY0IGdwdGUpDQo+IHsNCj4gdW5zaWduZWQgYWNjZXNzOw0KPiAjaWYgUFRUWVBFID09 IFBUVFlQRV9FUFQNCj4gYWNjZXNzID0gKChncHRlICYgVk1YX0VQVF9XUklUQUJMRV9NQVNLKSA/ IEFDQ19XUklURV9NQVNLIDogMCkgfA0KPiAoKGdwdGUgJiBWTVhfRVBUX0VYRUNVVEFCTEVfTUFT SykgPyBBQ0NfRVhFQ19NQVNLIDogMCkgfA0KPiAtICgoZ3B0ZSAmIFZNWF9FUFRfUkVBREFCTEVf TUFTSykgPyBBQ0NfVVNFUl9NQVNLIDogMCk7DQo+ICsgKChncHRlICYgVk1YX0VQVF9SRUFEQUJM RV9NQVNLKSA/IEFDQ19SRUFEX01BU0sgOiAwKTsNCj4gI2Vsc2UNCj4gLSBCVUlMRF9CVUdfT04o QUNDX0VYRUNfTUFTSyAhPSBQVF9QUkVTRU5UX01BU0spOw0KPiAtIEJVSUxEX0JVR19PTihBQ0Nf RVhFQ19NQVNLICE9IDEpOw0KPiArIC8qDQo+ICsgKiBQIGlzIHNldCBoZXJlLCBzbyB0aGUgcGFn ZSBpcyBhbHdheXMgcmVhZGFibGUgYW5kIFcvVS8hTlggcmVwcmVzZW50DQo+ICsgKiBhbGxvd2Vk IGFjY2Vzc2VzLg0KPiArICovDQo+ICsgQlVJTERfQlVHX09OKEFDQ19SRUFEX01BU0sgIT0gUFRf UFJFU0VOVF9NQVNLKTsNCj4gKyBCVUlMRF9CVUdfT04oQUNDX1dSSVRFX01BU0sgIT0gUFRfV1JJ VEFCTEVfTUFTSyk7DQo+ICsgQlVJTERfQlVHX09OKEFDQ19VU0VSX01BU0sgIT0gUFRfVVNFUl9N QVNLKTsNCj4gKyBCVUlMRF9CVUdfT04oQUNDX0VYRUNfTUFTSyAmIChQVF9XUklUQUJMRV9NQVNL IHwgUFRfVVNFUl9NQVNLIHwgUFRfUFJFU0VOVF9NQVNLKSk7DQo+IGFjY2VzcyA9IGdwdGUgJiAo UFRfV1JJVEFCTEVfTUFTSyB8IFBUX1VTRVJfTUFTSyB8IFBUX1BSRVNFTlRfTUFTSyk7DQo+IC0g LyogQ29tYmluZSBOWCB3aXRoIFAgKHdoaWNoIGlzIHNldCBoZXJlKSB0byBnZXQgQUNDX0VYRUNf TUFTSy4gICovDQo+IC0gYWNjZXNzIF49IChncHRlID4+IFBUNjRfTlhfU0hJRlQpOw0KPiArIGFj Y2VzcyB8PSBncHRlICYgUFQ2NF9OWF9NQVNLID8gMCA6IEFDQ19FWEVDX01BU0s7DQo+ICNlbmRp Zg0KPiANCj4gcmV0dXJuIGFjY2VzczsNCj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9tbXUv c3B0ZS5jIGIvYXJjaC94ODYva3ZtL21tdS9zcHRlLmMNCj4gaW5kZXggZTJhY2Q5ZWQ5ZGJhLi4w YjA5MTI0YjBkNTQgMTAwNjQ0DQo+IC0tLSBhL2FyY2gveDg2L2t2bS9tbXUvc3B0ZS5jDQo+ICsr KyBiL2FyY2gveDg2L2t2bS9tbXUvc3B0ZS5jDQo+IEBAIC0xOTQsMTIgKzE5NCw2IEBAIGJvb2wg bWFrZV9zcHRlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9tbXVfcGFnZSAqc3As DQo+IGludCBpc19ob3N0X21taW8gPSAtMTsNCj4gYm9vbCB3cnByb3QgPSBmYWxzZTsNCj4gDQo+ IC0gLyoNCj4gLSAqIEZvciB0aGUgRVBUIGNhc2UsIHNoYWRvd19wcmVzZW50X21hc2sgaGFzIG5v IFJXWCBiaXRzIHNldCBpZg0KPiAtICogZXhlYy1vbmx5IHBhZ2UgdGFibGUgZW50cmllcyBhcmUg c3VwcG9ydGVkLiAgSW4gdGhhdCBjYXNlLA0KPiAtICogQUNDX1VTRVJfTUFTSyBhbmQgc2hhZG93 X3VzZXJfbWFzayBhcmUgdXNlZCB0byByZXByZXNlbnQNCj4gLSAqIHJlYWQgYWNjZXNzLiAgU2Vl IEZOQU1FKGdwdGVfYWNjZXNzKSBpbiBwYWdpbmdfdG1wbC5oLg0KPiAtICovDQo+IFdBUk5fT05f T05DRSgocHRlX2FjY2VzcyB8IHNoYWRvd19wcmVzZW50X21hc2spID09IFNIQURPV19OT05QUkVT RU5UX1ZBTFVFKTsNCj4gDQo+IGlmIChzcC0+cm9sZS5hZF9kaXNhYmxlZCkNCj4gQEAgLTIyOCw2 ICsyMjIsOSBAQCBib29sIG1ha2Vfc3B0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBr dm1fbW11X3BhZ2UgKnNwLA0KPiBwdGVfYWNjZXNzICY9IH5BQ0NfRVhFQ19NQVNLOw0KPiB9DQo+ IA0KPiArIGlmIChwdGVfYWNjZXNzICYgQUNDX1JFQURfTUFTSykNCj4gKyBzcHRlIHw9IFBUX1BS RVNFTlRfTUFTSzsgLyogb3IgVk1YX0VQVF9SRUFEQUJMRV9NQVNLICovDQo+ICsNCj4gaWYgKHB0 ZV9hY2Nlc3MgJiBBQ0NfRVhFQ19NQVNLKQ0KPiBzcHRlIHw9IHNoYWRvd194X21hc2s7DQo+IGVs c2UNCj4gQEAgLTM5MCw2ICszODcsNyBAQCB1NjQgbWFrZV9ub25sZWFmX3NwdGUodTY0ICpjaGls ZF9wdCwgYm9vbCBhZF9kaXNhYmxlZCkNCj4gdTY0IHNwdGUgPSBTUFRFX01NVV9QUkVTRU5UX01B U0s7DQo+IA0KPiBzcHRlIHw9IF9fcGEoY2hpbGRfcHQpIHwgc2hhZG93X3ByZXNlbnRfbWFzayB8 IFBUX1dSSVRBQkxFX01BU0sgfA0KPiArIFBUX1BSRVNFTlRfTUFTSyAvKiBvciBWTVhfRVBUX1JF QURBQkxFX01BU0sgKi8gfA0KPiBzaGFkb3dfdXNlcl9tYXNrIHwgc2hhZG93X3hfbWFzayB8IHNo YWRvd19tZV92YWx1ZTsNCj4gDQo+IGlmIChhZF9kaXNhYmxlZCkNCj4gQEAgLTQ5MCwxOCArNDg4 LDE2IEBAIHZvaWQga3ZtX21tdV9zZXRfbWVfc3B0ZV9tYXNrKHU2NCBtZV92YWx1ZSwgdTY0IG1l X21hc2spDQo+IH0NCj4gRVhQT1JUX1NZTUJPTF9HUEwoa3ZtX21tdV9zZXRfbWVfc3B0ZV9tYXNr KTsNCj4gDQo+IC12b2lkIGt2bV9tbXVfc2V0X2VwdF9tYXNrcyhib29sIGhhc19hZF9iaXRzLCBi b29sIGhhc19leGVjX29ubHkpDQo+ICt2b2lkIGt2bV9tbXVfc2V0X2VwdF9tYXNrcyhib29sIGhh c19hZF9iaXRzKQ0KPiB7DQo+IGt2bV9hZF9lbmFibGVkID0gaGFzX2FkX2JpdHM7DQo+IA0KPiAt IHNoYWRvd191c2VyX21hc2sgPSBWTVhfRVBUX1JFQURBQkxFX01BU0s7DQo+ICsgc2hhZG93X3Vz ZXJfbWFzayA9IDA7DQo+IHNoYWRvd19hY2Nlc3NlZF9tYXNrID0gVk1YX0VQVF9BQ0NFU1NfQklU Ow0KPiBzaGFkb3dfZGlydHlfbWFzayA9IFZNWF9FUFRfRElSVFlfQklUOw0KPiBzaGFkb3dfbnhf bWFzayA9IDB1bGw7DQo+IHNoYWRvd194X21hc2sgPSBWTVhfRVBUX0VYRUNVVEFCTEVfTUFTSzsN Cj4gLSAvKiBWTVhfRVBUX1NVUFBSRVNTX1ZFX0JJVCBpcyBuZWVkZWQgZm9yIFcgb3IgWCB2aW9s YXRpb24uICovDQo+IC0gc2hhZG93X3ByZXNlbnRfbWFzayA9DQo+IC0gKGhhc19leGVjX29ubHkg PyAwdWxsIDogVk1YX0VQVF9SRUFEQUJMRV9NQVNLKSB8IFZNWF9FUFRfU1VQUFJFU1NfVkVfQklU Ow0KPiArIHNoYWRvd19wcmVzZW50X21hc2sgPSBWTVhfRVBUX1NVUFBSRVNTX1ZFX0JJVDsNCj4g DQo+IHNoYWRvd19hY2NfdHJhY2tfbWFzayA9IFZNWF9FUFRfUldYX01BU0s7DQo+IHNoYWRvd19o b3N0X3dyaXRhYmxlX21hc2sgPSBFUFRfU1BURV9IT1NUX1dSSVRBQkxFOw0KPiBkaWZmIC0tZ2l0 IGEvYXJjaC94ODYva3ZtL21tdS9zcHRlLmggYi9hcmNoL3g4Ni9rdm0vbW11L3NwdGUuaA0KPiBp bmRleCAzZDc3NzU1YjZiMTAuLjBjMzA1ZjJmNGJhMCAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYv a3ZtL21tdS9zcHRlLmgNCj4gKysrIGIvYXJjaC94ODYva3ZtL21tdS9zcHRlLmgNCj4gQEAgLTUy LDEwICs1MiwxMSBAQCBzdGF0aWNfYXNzZXJ0KFNQVEVfVERQX0FEX0VOQUJMRUQgPT0gMCk7DQo+ ICNkZWZpbmUgU1BURV9CQVNFX0FERFJfTUFTSyAoKCgxVUxMIDw8IDUyKSAtIDEpICYgfih1NjQp KFBBR0VfU0laRS0xKSkNCj4gI2VuZGlmDQo+IA0KPiAtI2RlZmluZSBBQ0NfRVhFQ19NQVNLICAg IDENCj4gKyNkZWZpbmUgQUNDX1JFQURfTUFTSyAgICBQVF9QUkVTRU5UX01BU0sNCj4gI2RlZmlu ZSBBQ0NfV1JJVEVfTUFTSyAgIFBUX1dSSVRBQkxFX01BU0sNCj4gI2RlZmluZSBBQ0NfVVNFUl9N QVNLICAgIFBUX1VTRVJfTUFTSw0KPiAtI2RlZmluZSBBQ0NfQUxMICAgICAgICAgIChBQ0NfRVhF Q19NQVNLIHwgQUNDX1dSSVRFX01BU0sgfCBBQ0NfVVNFUl9NQVNLKQ0KPiArI2RlZmluZSBBQ0Nf RVhFQ19NQVNLICAgIDgNCj4gKyNkZWZpbmUgQUNDX0FMTCAgICAgICAgICAoQUNDX0VYRUNfTUFT SyB8IEFDQ19XUklURV9NQVNLIHwgQUNDX1VTRVJfTUFTSyB8IEFDQ19SRUFEX01BU0spDQo+IA0K PiAjZGVmaW5lIFNQVEVfTEVWRUxfQklUUyA5DQo+ICNkZWZpbmUgU1BURV9MRVZFTF9TSElGVChs ZXZlbCkgX19QVF9MRVZFTF9TSElGVChsZXZlbCwgU1BURV9MRVZFTF9CSVRTKQ0KPiBkaWZmIC0t Z2l0IGEvYXJjaC94ODYva3ZtL3ZteC9jYXBhYmlsaXRpZXMuaCBiL2FyY2gveDg2L2t2bS92bXgv Y2FwYWJpbGl0aWVzLmgNCj4gaW5kZXggNTMxNmMyN2Y2MDk5Li4zYmRhNmE2MjFkOGEgMTAwNjQ0 DQo+IC0tLSBhL2FyY2gveDg2L2t2bS92bXgvY2FwYWJpbGl0aWVzLmgNCj4gKysrIGIvYXJjaC94 ODYva3ZtL3ZteC9jYXBhYmlsaXRpZXMuaA0KPiBAQCAtMjg4LDExICsyODgsNiBAQCBzdGF0aWMg aW5saW5lIGJvb2wgY3B1X2hhc192bXhfZmxleHByaW9yaXR5KHZvaWQpDQo+IGNwdV9oYXNfdm14 X3ZpcnR1YWxpemVfYXBpY19hY2Nlc3NlcygpOw0KPiB9DQo+IA0KPiAtc3RhdGljIGlubGluZSBi b29sIGNwdV9oYXNfdm14X2VwdF9leGVjdXRlX29ubHkodm9pZCkNCj4gLXsNCj4gLSByZXR1cm4g dm14X2NhcGFiaWxpdHkuZXB0ICYgVk1YX0VQVF9FWEVDVVRFX09OTFlfQklUOw0KPiAtfQ0KPiAt DQo+IHN0YXRpYyBpbmxpbmUgYm9vbCBjcHVfaGFzX3ZteF9lcHRfNGxldmVscyh2b2lkKQ0KPiB7 DQo+IHJldHVybiB2bXhfY2FwYWJpbGl0eS5lcHQgJiBWTVhfRVBUX1BBR0VfV0FMS180X0JJVDsN Cj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvY29tbW9uLmggYi9hcmNoL3g4Ni9rdm0v dm14L2NvbW1vbi5oDQo+IGluZGV4IGFkZjkyNTUwMGI5ZS4uMWFmYmYyNzJlZmFlIDEwMDY0NA0K PiAtLS0gYS9hcmNoL3g4Ni9rdm0vdm14L2NvbW1vbi5oDQo+ICsrKyBiL2FyY2gveDg2L2t2bS92 bXgvY29tbW9uLmgNCj4gQEAgLTg1LDExICs4NSw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fdm14 X2hhbmRsZV9lcHRfdmlvbGF0aW9uKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgZ3BhX3QgZ3BhLA0K PiB7DQo+IHU2NCBlcnJvcl9jb2RlOw0KPiANCj4gLSAvKiBJcyBpdCBhIHJlYWQgZmF1bHQ/ICov DQo+IC0gZXJyb3JfY29kZSA9IChleGl0X3F1YWxpZmljYXRpb24gJiBFUFRfVklPTEFUSU9OX0FD Q19SRUFEKQ0KPiAtICAgICA/IFBGRVJSX1VTRVJfTUFTSyA6IDA7DQo+IC8qIElzIGl0IGEgd3Jp dGUgZmF1bHQ/ICovDQo+IC0gZXJyb3JfY29kZSB8PSAoZXhpdF9xdWFsaWZpY2F0aW9uICYgRVBU X1ZJT0xBVElPTl9BQ0NfV1JJVEUpDQo+ICsgZXJyb3JfY29kZSA9IChleGl0X3F1YWxpZmljYXRp b24gJiBFUFRfVklPTEFUSU9OX0FDQ19XUklURSkNCj4gICAgICA/IFBGRVJSX1dSSVRFX01BU0sg OiAwOw0KPiAvKiBJcyBpdCBhIGZldGNoIGZhdWx0PyAqLw0KPiBlcnJvcl9jb2RlIHw9IChleGl0 X3F1YWxpZmljYXRpb24gJiBFUFRfVklPTEFUSU9OX0FDQ19JTlNUUikNCj4gZGlmZiAtLWdpdCBh L2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jDQo+IGluZGV4 IDJlNjg3NzYxYWVhZi4uOTg4MDFjNDA4YjhjIDEwMDY0NA0KPiAtLS0gYS9hcmNoL3g4Ni9rdm0v dm14L3ZteC5jDQo+ICsrKyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmMNCj4gQEAgLTg0MjUsOCAr ODQyNSw3IEBAIF9faW5pdCBpbnQgdm14X2hhcmR3YXJlX3NldHVwKHZvaWQpDQo+IHNldF9iaXQo MCwgdm14X3ZwaWRfYml0bWFwKTsgLyogMCBpcyByZXNlcnZlZCBmb3IgaG9zdCAqLw0KPiANCj4g aWYgKGVuYWJsZV9lcHQpDQo+IC0ga3ZtX21tdV9zZXRfZXB0X21hc2tzKGVuYWJsZV9lcHRfYWRf Yml0cywNCj4gLSAgICAgIGNwdV9oYXNfdm14X2VwdF9leGVjdXRlX29ubHkoKSk7DQo+ICsga3Zt X21tdV9zZXRfZXB0X21hc2tzKGVuYWJsZV9lcHRfYWRfYml0cyk7DQo+IGVsc2UNCj4gdnRfeDg2 X29wcy5nZXRfbXRfbWFzayA9IE5VTEw7DQo+IA0KPiAtLSANCj4gMi41Mi4wDQo+IA0KDQo=