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 63137C433FE for ; Tue, 22 Nov 2022 09:17:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0364F6B0071; Tue, 22 Nov 2022 04:17:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F28198E0002; Tue, 22 Nov 2022 04:17:06 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D7BB18E0001; Tue, 22 Nov 2022 04:17:06 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C66996B0071 for ; Tue, 22 Nov 2022 04:17:06 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 9087AA0F41 for ; Tue, 22 Nov 2022 09:17:06 +0000 (UTC) X-FDA: 80160524052.05.CFEF49A Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by imf18.hostedemail.com (Postfix) with ESMTP id 9F7E31C000D for ; Tue, 22 Nov 2022 09:17:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1669108624; x=1700644624; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=cUtHtHXDze6NrPed/BCi9TmsiMdWOFKrEsHg3e4T9MI=; b=m6X6ocWy/pm1/NQiF2sgrJInwI2qDh1e+pLoAuR25b0hM6710wUT83oC s2Vg5BJyguGPgq2/uwhXMjAaZhavBlOSMHcLZxfMTtFvcQCgsr1aMl2G2 EOYB1NA8GsDzCMu+Uz7MSw2vR2iT2TMeIKszKF4kI5SKDb13AreiJEGVY Um0nPMKFpegFsV2lMASHKs0BMpGxMlSeeFImCzo1m6Q49WTAlniPwe11m rIGsk51TWBC54Nc1eAZa915jTGONjzIfGJJpsDRxcyF7zklTRXFuwvAcD gVzYzN1WNKGZFgnONLpIFb8szqf8fAcPA7vyifcvd25S9x/8iMsZ1KxTN g==; X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="340640427" X-IronPort-AV: E=Sophos;i="5.96,183,1665471600"; d="scan'208";a="340640427" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2022 01:17:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10538"; a="674287393" X-IronPort-AV: E=Sophos;i="5.96,183,1665471600"; d="scan'208";a="674287393" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga001.jf.intel.com with ESMTP; 22 Nov 2022 01:17:00 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 22 Nov 2022 01:16:14 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 22 Nov 2022 01:16:14 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 22 Nov 2022 01:16:14 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 22 Nov 2022 01:16:14 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VfZR0f9cYJMV8SCA/7J2pv4ar3gj5pIxGL9u1Os7iTfGHsbWbVOP4zP13JHuKUKWVxtuRqj9HVhX3eHcDKvNWKxTBDAf2Y8q6KTjjp4U6eys/uRfZ0LpbY+6t9eiMzC7i7V0tdOP9jFcYS70qjqWh5K7KHfVUYaW89Y++ZUDxz5ywDP7ct88sj/8kWEQg1yqPVW9tVEEH8+BFCMoU82OfahOM61mV2PHWQQR1C2YBBEQmhK17+/W2gN9BAPUlGTbLyfIlu4rmGJ9l5hixdWkN6F5uyGv78wvRTy/3/Qeiwj4nUJLAEbadOzNnNvekAwISaJohXHOIDSIcGwGfNm79Q== 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=cUtHtHXDze6NrPed/BCi9TmsiMdWOFKrEsHg3e4T9MI=; b=X7uVk6tbGJUfwmNhBguPfnvRecaZQfz4HCbNamimCLwlCJlqVWKokilAzG0FXrYyo5g4+F8wtVsneabik5Uy6T/oRkb2iP4ZtG4ym2l+xskHZoUeysPT22tHYZ37gnzE3usky5iqVpH9fxOLQZHgPLHvFAJkdR+pgIjj8g/PrwWOTkvlIrAh7mBFQSaePwCNlwE+Z83CkQN5Y8fuZGvTfIPJCbehbsIXWfplcua5FsO5cLP8TIF9W1VJ5CpSdggJHuFCPeNZZdjxq1Zo98qTqSgIn7gu21E1gayDeBk/cPi4PF4OC2JRm76mve/XO53tbIoAIZ6VbIIngPgi2JdMBA== 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 Received: from BL1PR11MB5978.namprd11.prod.outlook.com (2603:10b6:208:385::18) by SJ0PR11MB5120.namprd11.prod.outlook.com (2603:10b6:a03:2d1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Tue, 22 Nov 2022 09:16:11 +0000 Received: from BL1PR11MB5978.namprd11.prod.outlook.com ([fe80::2fb7:be18:a20d:9b6e]) by BL1PR11MB5978.namprd11.prod.outlook.com ([fe80::2fb7:be18:a20d:9b6e%8]) with mapi id 15.20.5834.015; Tue, 22 Nov 2022 09:16:11 +0000 From: "Huang, Kai" To: "Huang, Ying" CC: "kvm@vger.kernel.org" , "Hansen, Dave" , "Luck, Tony" , "bagasdotme@gmail.com" , "ak@linux.intel.com" , "Wysocki, Rafael J" , "linux-kernel@vger.kernel.org" , "Christopherson,, Sean" , "Chatre, Reinette" , "pbonzini@redhat.com" , "linux-mm@kvack.org" , "Yamahata, Isaku" , "kirill.shutemov@linux.intel.com" , "Shahar, Sagi" , "imammedo@redhat.com" , "peterz@infradead.org" , "Gao, Chao" , "Brown, Len" , "sathyanarayanan.kuppuswamy@linux.intel.com" , "Williams, Dan J" Subject: Re: [PATCH v7 10/20] x86/virt/tdx: Use all system memory when initializing TDX module as TDX memory Thread-Topic: [PATCH v7 10/20] x86/virt/tdx: Use all system memory when initializing TDX module as TDX memory Thread-Index: AQHY/T3KCI/2IUKL7kSgXbHXnV3Az65I3JTQgAA63oCAARkUfIAAex0A Date: Tue, 22 Nov 2022 09:16:11 +0000 Message-ID: <973ca04b3323d28a31dbc1cfeb52bd10bd9d9bf3.camel@intel.com> References: <9b545148275b14a8c7edef1157f8ec44dc8116ee.1668988357.git.kai.huang@intel.com> <87cz9gvpej.fsf@yhuang6-desk2.ccr.corp.intel.com> <87sfibpxda.fsf@yhuang6-desk2.ccr.corp.intel.com> In-Reply-To: <87sfibpxda.fsf@yhuang6-desk2.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4 (3.44.4-2.fc36) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BL1PR11MB5978:EE_|SJ0PR11MB5120:EE_ x-ms-office365-filtering-correlation-id: b74717ec-5050-45c4-aaf9-08dacc6a3296 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pMK2JQOA8bO6tvlbNt/uJ5/gfk6eSSKMEoxHCDrBmVDyiNXJzRZ0+wraKn3CWQ3IQE3lqLw9GbnComrF88113vsV9PZH0d3yrNuVWptOndB+UcRfaAq2Pa7ZekLPhKaKbCS0monT0HH6kiCcTCtyF0mFo+S6vPaROBkyK4b3uCCVbzsUK5tHC1iwwC/Xu2JCc2FBMHLHgmmRlumfMscj/QdQ+JKHFDtr2UbcYXl8Hk8zRQyGjsrtFgbuCSNNG7ICkwsbHgDUbwkQKCPIjAPqCqI8dw5oUSsopMBM5exR4mFlvKYhfvkjJdcX5sBX2KGYWUsYqAyidmQE4zD6WSMcU0LSncKqD8Y8CYHPQdgVzZf2WyeW+KmmtMgd9SmLqOz4mVHFCKuXAFzjDeQYFkzZ1KNmmY9YO8Nc7e2TWyy7v5Jb7fL07uebiVN/HQ1UP7Z4nFI9MhCA0AgG2URWzfKzttP2vyM2dbrDrhyw2ErZuMxwVCm+vSk2uOEi8Li934rVgmRI4jPZYe3klQTjEDxK65WrO+7E8WEV/IIH3jGoJesb/vsFMGB8kIbVg9w1GTn2rBQm6ipM5gJXtU49bcIFs3S+ft9Xuccc8cLsEGDrt9sGMKnp8kUpgtCo86KdMsONng8ClIWkE0zdjy9Xuf6jY418qVlAqw29LkmfI4sQPcB8BCxHj76QdVuOtITPE6WKCZvbXdScuZD7+HQwRUMzhw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5978.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(136003)(376002)(346002)(366004)(451199015)(6862004)(8936002)(38070700005)(2616005)(6512007)(186003)(26005)(82960400001)(7416002)(5660300002)(316002)(36756003)(6506007)(86362001)(6486002)(478600001)(6636002)(37006003)(54906003)(122000001)(66446008)(41300700001)(8676002)(76116006)(64756008)(66476007)(91956017)(66556008)(4326008)(71200400001)(38100700002)(66946007)(83380400001)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NWFYSHJ0U09yd2d3VDFHT0I5SFNibVJqVVpDTE00NnUzSkwrakU1YmU5aC9S?= =?utf-8?B?Nm55QWJjQVhDS0VuOUhWRFVIdFc3VlAvQXMwNFYreGNQeGcyekdxb0FaV2tI?= =?utf-8?B?by9qVWxoT0VuSzlSRmVJYWlDL3J6WXNkSDJJNm02c3B3V016Y2Zjdk9vUVVB?= =?utf-8?B?V3RCQXhKWS9FQmZ0ZXJjd2psN3ZxRDBzV2EraVc0YlhZT2hidUdFUVBwbW4x?= =?utf-8?B?R2JCM2RKdTRrRkhncTUweXNjcFZmWE1rNWNWY3NHSDladXZyaEYvT0xmM1lW?= =?utf-8?B?aUpEMDlMRWFiSnFzaFEyV0VSR2IzbkVZQ2RnbmJXUUJTbHNXQ2VTTkRLb1dp?= =?utf-8?B?QThDWmxKQ3Z0OTdnRnh3SHNQUGdIMThpS0kzWXlwT2pKNUZzdDQwU05BYVhm?= =?utf-8?B?cDQxbnN2N2dkTmVhaGp0NnNES3FtaDE4NFZheHpMOTJkTXZ0cTBSOE1tSlh1?= =?utf-8?B?SmhjY1BSNEtMay9EdHMzb3owWThMMko5WXF0NTVTYzNXZitYM2NMUTU1NG5y?= =?utf-8?B?ODBYdUdtYUwxTEpQSmhaOHYvTDhCUDRmS01qWVdqWFNhbEw1LzNNTkFOeXo3?= =?utf-8?B?TmFnb21JbHBZM3piK2xkSXd4RWdqUEM2YzJIQlBHeURxbGo1d0NoN3FzRUdp?= =?utf-8?B?dzVJbjhIRy9rVGtNVzdFbkJWZHh2NW9hOWV2L3RMY0JaY085ckFQNFZZdGsw?= =?utf-8?B?VUpnaHE0Y2VZRFYycStReERrN2J4UWMxUUZyTVdmVWpCMUpmUnFWVDkvWnNh?= =?utf-8?B?VHFMWURXVVN6VnRCcXBlZ1FKaVVJZk5wZk9ZWkNCZlBxT1I1VzJQZWRNV2Rv?= =?utf-8?B?c3kxRitXL3dKYWtBQW8wUFhqcXB3aVV4bUhtT3VsTjZ5WWZzZWtaazhISktz?= =?utf-8?B?QkNoMGJQOGUzeVU2bzgrdzFGV05Ic3R6WW5jTEhyRXdMa1JvLy95dnNVbTdS?= =?utf-8?B?d2piLytaazFYdzV0dkFMVjBWS3hqbjFmRVcvTEFEbkxCRHJrZ3NReVpFMTIv?= =?utf-8?B?NnpGM0xPM09jbmdrbGNEZFJBSFN0SjQwaVpBd1JGMnNKNFJhWUNVbi9MUC9E?= =?utf-8?B?RHhWMmYvTllGeUJ0Wndyc1NPdTB1d000TEo5aVVFSGtGMkhLSzVGWTQ2NTJ6?= =?utf-8?B?b2F1T1YxU0pkVlpRa1RGcUNSeGNSY2hSWW9Ca3QxOFdZQTV3ODlLQmp0UERt?= =?utf-8?B?Zk1USThIeGNvSGxyYmNmSEQ5M2NESzlTZWdETnprY1E1THdGMXlqa2ZWQ3FM?= =?utf-8?B?UTNibzBKT0JtY0RJdE5lUlhhUGgyd0UyaVBCbUlXTGJ0RkJHeEZSMGdNSmZQ?= =?utf-8?B?a0JLZWJNdGtLY01LdkkwWU1JWUhNRHUwWkdxVnlybzhFNGM5NXAyTGw5TFo2?= =?utf-8?B?TzJDUXgwb0Y4VmRnOTI0M3NmSkg1Y21YdUNzMGkrSEN1RTdaOUhuR3FMWi9M?= =?utf-8?B?RHdhRGdXMWVIOWpGelFmN1FiTjNySG9KMHFRZHZKb1NUb2ZWZ2ZyUllEQnk2?= =?utf-8?B?N0V4SUlYRWhhcHZnN1hKWTQ0RzBqSTZIRGc0N2p4QUtxdG00UDgrNkFZL3pq?= =?utf-8?B?eDEwam5qMDZtZ0RRSysvQVY2UzVsdXJzZ0xMNDlXRU83WEU4L1pvR1dZOTAy?= =?utf-8?B?NFpwaXJndU5ZN3UyVW5HWXpUSE52aEZTcEFHNktBNGRTaW1UaUJoRmZYcnVV?= =?utf-8?B?d2xVdHZHWER6enRMK1owS3ZLSC9pQVFHVWZDbGJibUZ2OE1BNnlBbUhIeDcy?= =?utf-8?B?cjdnVUt5K05ZckROY1FGOWJreGVrRy93dmhROGorSWIxcjRVVmdNb0lSeGxS?= =?utf-8?B?RW9wU09SbjBzem9ka0RQa0Z2WGd1WWFxdGZ3NnVJQnIzY0VESmVhcHpSK0tl?= =?utf-8?B?WjBnaGk2d1piUkxvMkI3NDcybmttQzJnMi9YYzVWYjJTeERUNUV3OUNwTGZW?= =?utf-8?B?ZXBPaWlPYVRwSW9QNHhHaFdMTVRTK1htSmxhSXY0Y2xhUk9HNnNJZFhqekV6?= =?utf-8?B?Ukh6SEQ3S2E0T3RTM1RyVGVxWnV4TEhwdjEwNHlUSDkycFRqNmhwaDlsOWtl?= =?utf-8?B?SFlBMjJMdWM4NHRXcUZ0bU5Zdlh5M1Nja0ZmUGd6ZExZMVJ0c2Z3M2pmZ0JH?= =?utf-8?B?ZG9CdnhoZzl2Q25kWlNaenZ4aDQ3cmxqMTM0aHVFSWMzYnk0a3l6MGJiNiti?= =?utf-8?B?ekE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5978.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b74717ec-5050-45c4-aaf9-08dacc6a3296 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2022 09:16:11.3525 (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: x9LhVXrV7Ib1i64ZGkbnVtScAiwLQawOSKGga00fP6txm7E8g8b47tA8cmUkTNwLG2qiYxrRRtuzopeVoBP0Ew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5120 X-OriginatorOrg: intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1669108625; a=rsa-sha256; cv=pass; b=Sq11bVLRlXXZOs2BR8HAQl1NPsxMnzvCrv2clIPGAGNYwSPaUCcaAxuohToUzZIF7QiaSS VE9rVcnoE79vKK+7PoCFZuqOt6qbSANDynDSeMKdYe6lwIWXWnZw0yiofnYDB2uWzIyQ2N fL3BHx6Q+73Sy8AkEilQ4AI3YQES71A= ARC-Authentication-Results: i=2; imf18.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=m6X6ocWy; dmarc=pass (policy=none) header.from=intel.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf18.hostedemail.com: domain of kai.huang@intel.com designates 192.55.52.88 as permitted sender) smtp.mailfrom=kai.huang@intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1669108625; 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=cUtHtHXDze6NrPed/BCi9TmsiMdWOFKrEsHg3e4T9MI=; b=GHsLQEBydC2brUmxSlEg2WiDfmV7zfcqzFBKqgrm+674umoe+7y8JxUB8wY44xfaYcirng 56mZ//yoAYKscpxcZK1PhzKgYW3pk4PmhNC4RVZgTmhkCC4DvH6gH9xoZM+TyE+XHktbtC XdsU4lCu6fJPuuFxnkyswpM3v9H7gL0= Authentication-Results: imf18.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b=m6X6ocWy; dmarc=pass (policy=none) header.from=intel.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf18.hostedemail.com: domain of kai.huang@intel.com designates 192.55.52.88 as permitted sender) smtp.mailfrom=kai.huang@intel.com X-Stat-Signature: fpmnn8cksk74jymwct5o51c69pw6wxyi X-Rspamd-Queue-Id: 9F7E31C000D X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1669108623-153656 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: DQo+ID4gPiA+ICsvKg0KPiA+ID4gPiArICogQWRkIGFsbCBtZW1ibG9jayBtZW1vcnkgcmVnaW9u cyB0byB0aGUgQHRkeF9tZW1saXN0IGFzIFREWCBtZW1vcnkuDQo+ID4gPiA+ICsgKiBNdXN0IGJl IGNhbGxlZCB3aGVuIGdldF9vbmxpbmVfbWVtcygpIGlzIGNhbGxlZCBieSB0aGUgY2FsbGVyLg0K PiA+ID4gPiArICovDQo+ID4gPiA+ICtzdGF0aWMgaW50IGJ1aWxkX3RkeF9tZW1vcnkodm9pZCkN Cj4gPiA+ID4gK3sNCj4gPiA+ID4gKyAgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZu Ow0KPiA+ID4gPiArICAgaW50IGksIG5pZCwgcmV0Ow0KPiA+ID4gPiArDQo+ID4gPiA+ICsgICBm b3JfZWFjaF9tZW1fcGZuX3JhbmdlKGksIE1BWF9OVU1OT0RFUywgJnN0YXJ0X3BmbiwgJmVuZF9w Zm4sICZuaWQpIHsNCj4gPiA+ID4gKyAgICAgICAgICAgLyoNCj4gPiA+ID4gKyAgICAgICAgICAg ICogVGhlIGZpcnN0IDFNQiBtYXkgbm90IGJlIHJlcG9ydGVkIGFzIFREWCBjb252ZXJ0aWJsZQ0K PiA+ID4gPiArICAgICAgICAgICAgKiBtZW1vcnkuICBNYW51YWxseSBleGNsdWRlIHRoZW0gYXMg VERYIG1lbW9yeS4NCj4gPiA+ID4gKyAgICAgICAgICAgICoNCj4gPiA+ID4gKyAgICAgICAgICAg ICogVGhpcyBpcyBmaW5lIGFzIHRoZSBmaXJzdCAxTUIgaXMgYWxyZWFkeSByZXNlcnZlZCBpbg0K PiA+ID4gPiArICAgICAgICAgICAgKiByZXNlcnZlX3JlYWxfbW9kZSgpIGFuZCB3b24ndCBlbmQg dXAgdG8gWk9ORV9ETUEgYXMNCj4gPiA+ID4gKyAgICAgICAgICAgICogZnJlZSBwYWdlIGFueXdh eS4NCj4gPiA+ID4gKyAgICAgICAgICAgICovDQo+ID4gPiA+ICsgICAgICAgICAgIHN0YXJ0X3Bm biA9IG1heChzdGFydF9wZm4sICh1bnNpZ25lZCBsb25nKVNaXzFNID4+IFBBR0VfU0hJRlQpOw0K PiA+ID4gPiArICAgICAgICAgICBpZiAoc3RhcnRfcGZuID49IGVuZF9wZm4pDQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiANCj4gPiA+IEhvdyBhYm91dCBjaGVj ayB3aGV0aGVyIGZpcnN0IDFNQiBpcyByZXNlcnZlZCBpbnN0ZWFkIG9mIGRlcGVuZGluZyBvbg0K PiA+ID4gdGhlIGNvcnJlc3BvbmRpbmcgY29kZSBpc24ndCBjaGFuZ2VkPyAgVmlhIGZvcl9lYWNo X3Jlc2VydmVkX21lbV9yYW5nZSgpPw0KPiA+IA0KPiA+IElJVUMsIHNvbWUgcmVzZXJ2ZWQgbWVt b3J5IGNhbiBiZSBmcmVlZCB0byBwYWdlIGFsbG9jYXRvciBkaXJlY3RseSwgaS5lLiBrZXJuZWwN Cj4gPiBpbml0IGNvZGUvZGF0YS4gIEkgZmVlbCBpdCdzIG5vdCBzYWZlIHRvIGp1c3QgdHJlYXQg cmVzZXJ2ZWQgbWVtb3J5IHdpbGwgbmV2ZXINCj4gPiBiZSBpbiBwYWdlIGFsbG9jYXRvci4gIE90 aGVyd2lzZSB3ZSBoYXZlIGZvcl9lYWNoX2ZyZWVfbWVtX3JhbmdlKCkgY2FuIHVzZS4NCj4gDQo+ IFllcy4gIG1lbWJsb2NrIHJldmVyc2UgaW5mb3JtYXRpb24gaXNuJ3QgcGVyZmVjdC4gIEJ1dCBJ IHN0aWxsIHRoaW5rDQo+IHRoYXQgaXQgaXMgc3RpbGwgYmV0dGVyIHRoYW4ganVzdCBhc3N1bXB0 aW9uIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGZyaXN0DQo+IDFNQiBpcyByZXNlcnZlZCBpbiBtZW1i bG9jay4gIE9yLCB3ZSBjYW4gY2hlY2sgd2hldGhlciB0aGUgcGFnZXMgb2YgdGhlDQo+IGZpcnN0 IDFNQiBpcyByZXZlcnNlZCB2aWEgY2hlY2tpbmcgc3RydWN0IHBhZ2UgZGlyZWN0bHk/DQo+IA0K DQpTb3JyeSBJIGFtIGEgbGl0dGxlIGJpdCBjb25mdXNlZCB3aGF0IHlvdSB3YW50IHRvIGFjaGll dmUgaGVyZS4gIERvIHlvdSB3YW50IHRvDQptYWtlIHNvbWUgc2FuaXR5IGNoZWNrIHRvIG1ha2Ug c3VyZSB0aGUgZmlyc3QgMU1CIGlzIGluZGVlZCBub3QgaW4gdGhlIHBhZ2UNCmFsbG9jYXRvcj8N Cg0KSUlVQywgaXQgaXMgaW5kZWVkIHRydWUuICBQbGVhc2Ugc2VlIHRoZSBjb21tZW50IG9mIGNh bGxpbmcgcmVzZXJ2ZV9yZWFsX21vZGUoKQ0KaW4gc2V0dXBfYXJjaCgpLiAgQWxzbyBwbGVhc2Ug c2VlIGVmaV9mcmVlX2Jvb3Rfc2VydmljZXMoKSwgd2hpY2ggZG9lc24ndCBmcmVlDQp0aGUgYm9v dCBzZXJ2aWNlIGlmIGl0IGlzIGJlbG93IDFNQi4NCg0KQWxzbywgbXkgdW5kZXJzdGFuZGluZyBp cyBrZXJuZWwncyBpbnRlbnRpb24gaXMgdG8gYWx3YXlzIHJlc2VydmUgdGhlIGZpcnN0IDFNQjoN Cg0KICAgICAgICAgICAgICAgIC8qDQogICAgICAgICAgICAgICAgICogRG9uJ3QgZnJlZSBtZW1v cnkgdW5kZXIgMU0gZm9yIHR3byByZWFzb25zOiAgICAgICAgICAgICAgICAgDQogICAgICAgICAg ICAgICAgICogLSBCSU9TIG1pZ2h0IGNsb2JiZXIgaXQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICogLSBDcmFzaCBrZXJuZWwgbmVlZHMgaXQg dG8gYmUgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICov ICAgICAgICANCg0KU28gaWYgYW55IHBhZ2UgaW4gZmlyc3QgMU1CIGVuZGVkIHVwIHRvIHRoZSBw YWdlIGFsbG9jYXRvciwgaXQgc2hvdWxkIGJlIHRoZQ0Ka2VybmVsIGJ1ZyB3aGljaCBpcyBub3Qg cmVsYXRlZCB0byBURFgsIGNvcnJlY3Q/DQoNCg0K