From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) (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 23353392C25 for ; Thu, 14 May 2026 18:23:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.10 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778783018; cv=fail; b=PPHuoKv7WrPjAhjumhif+BQwX/NgjdqCIH1CJvQ8eT0pQOhoXvp6WcXbALneKy1HcTQjyRoEqEEcevTtjZLO0RyGz8opDayPjlHBiq63aRvYg/veNYdQAGJhZxvm3YTG1HKGi/hcqjT+lDXe7hufYTdcFIz9NlmP6clZmBfCSiE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778783018; c=relaxed/simple; bh=6pmonqrNehhQ+Vc9oo3dz43fothdO+ppdmHmoiSHcHU=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=A8Lj07GUuvpiuZDvY8Oa8VnB70zWDVs76tOWKL1whMwL3AdsckknJ+ncMk/8o1Tr3DYI9lF1LKcRgTfk6O/j65IBbOAWo/xHVaUVu1B5AvvKcHUfp37qFoK6FhsOmfLlIdJ/3h/41tnIoSf0+NcF/zMzp2RH1+L7QxU9feO1AM0= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=K6/QPgBJ; arc=fail smtp.client-ip=192.198.163.10 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="K6/QPgBJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1778783017; x=1810319017; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=6pmonqrNehhQ+Vc9oo3dz43fothdO+ppdmHmoiSHcHU=; b=K6/QPgBJXt94Def4QHadU3ak++PfkSMjZ0fufoT2tUUcrMJM3S6Umf6z Fok4+7BZ8IgqnmMd6NlCefcVifcWtXGQzvODj373XQTQ91y68D/jqaYqt oryYaSa60m4IrIz+QEJ8mO9734etVi9VEe7fEfm3NNpy3KoUTBEm7jdrb HCIbR/uJitdhAH5SSneTB9vasoV3hk7G20qzyk2M4MQ+EvhtUOS3Sxyhp 0Y0+6sdgJM1s4ORZlUm48vbD44RRQmLw2QGx2MEV2H2bAx6Jagtrj30mk 2ZQk+aWlcFlRSu3EZIuFLOzaot+LRwHrfnh6LJDvGkLqb7Bm3vNtJM6e6 g==; X-CSE-ConnectionGUID: /tJsPoP4TmyvolGlO9HS+w== X-CSE-MsgGUID: OSC0JqWiQziq82Zjxo2ZfQ== X-IronPort-AV: E=McAfee;i="6800,10657,11786"; a="91119377" X-IronPort-AV: E=Sophos;i="6.23,235,1770624000"; d="scan'208";a="91119377" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2026 11:23:36 -0700 X-CSE-ConnectionGUID: vSz+0RVuTo2PSdXUVF9eTg== X-CSE-MsgGUID: V9bS3FJCTs2XRYVMcSXoqA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,235,1770624000"; d="scan'208";a="237597365" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2026 11:23:37 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Thu, 14 May 2026 11:23:35 -0700 Received: from ORSEDG903.ED.cps.intel.com (10.7.248.13) 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; Thu, 14 May 2026 11:23:35 -0700 Received: from CO1PR03CU002.outbound.protection.outlook.com (52.101.46.66) by edgegateway.intel.com (134.134.137.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Thu, 14 May 2026 11:23:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MDLwV1ka0B9VcUJ0uiJvKmNttUtiV67Y1TRzb+5ueCcMRE4+Qh5tMU5EadDz+fi1EmcdE4B/862/gHnw5JReoi+XhuciyCyNYGf/fWga689dgB85uUcMw7E9mQFaU5SzBk2RdptwZjunLdoEHzFeWOoiNfMVlguTJH6CwNI0UchDlcK+6bdjSQubp5rdwfiAtGvnkPS5cJylAHB9onwE/Uiot+mM5Xz3YhJiTKsFZslKriY0AewutWqZKjUYF/UrYCb91aSB2pS+EqVrs2mdus4d5UQJDySs643hPXWEEOx9A7Y/5v9ozTnycpVx7/dumWAvnwvcuwVQ2HQN2+JQ4A== 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=6pmonqrNehhQ+Vc9oo3dz43fothdO+ppdmHmoiSHcHU=; b=F+SRKaSGsuEwfTkMvdbXa31JuG1MFKsoB9KEI/HLbqhXppKdocVc1tvzjY7AXMz1C9iOytEEAK54p6vsb8NArDsbj2FaXBxHxAeQi6jhp6iH5eZx1dBukcBSXbsVhh3/OdVk0TBJPgKlOYyd5xtag82NWgMarI+1gKURRyHonJXUFMrnR9eLwP2RQa0/oXt//u0a1nimxSJ0cscG/1Bjsssac+20rAJmHTAjCtpk7Kw6Zzh9AnugAXv+BvrLEQ8feEKqKb3Vf5sG8orn6nJsNTtcw1kXCdnTjaat0CXAHTcAxlwRxWJzKwGQHKLXGpnNn37DtUeB1qdtT7TDCNrbCQ== 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 DM6PR11MB3018.namprd11.prod.outlook.com (2603:10b6:5:68::11) by DM4PR11MB6360.namprd11.prod.outlook.com (2603:10b6:8:bd::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.12; Thu, 14 May 2026 18:23:29 +0000 Received: from DM6PR11MB3018.namprd11.prod.outlook.com ([fe80::d5a2:c5ee:1227:9d1f]) by DM6PR11MB3018.namprd11.prod.outlook.com ([fe80::d5a2:c5ee:1227:9d1f%6]) with mapi id 15.20.9891.021; Thu, 14 May 2026 18:23:29 +0000 From: "Edgecombe, Rick P" To: "bp@alien8.de" CC: "peterz@infradead.org" , "mingo@redhat.com" , "minipli@grsecurity.net" , "tglx@kernel.org" , "linux-kernel@vger.kernel.org" , "dave.hansen@linux.intel.com" , "x86@kernel.org" Subject: Re: [PATCH v3] x86/cpufeatures: Make X86_FEATURE_SHSTK clearcpuid-able Thread-Topic: [PATCH v3] x86/cpufeatures: Make X86_FEATURE_SHSTK clearcpuid-able Thread-Index: AQHc47wy4EZmuZ51CUOmfip4M1RclbYNvo0AgAACRICAAAGGAIAAE7aA Date: Thu, 14 May 2026 18:23:29 +0000 Message-ID: References: <20260514160932.91556-1-minipli@grsecurity.net> <20260514165922.GGagX_amNCc0mZcz4d@fat_crate.local> <8380b063f933ac3b909b6a5c9adfa03a116da1f7.camel@intel.com> <20260514171256.GHagYCmFMsc1FYZ57B@fat_crate.local> In-Reply-To: <20260514171256.GHagYCmFMsc1FYZ57B@fat_crate.local> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2.1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB3018:EE_|DM4PR11MB6360:EE_ x-ms-office365-filtering-correlation-id: c5fa3d10-215e-4dd0-41c9-08deb1e5e5ff x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|366016|1800799024|376014|56012099003|22082099003|18002099003|3023799003|38070700021|11063799003|4143699003; x-microsoft-antispam-message-info: QEwDC63rmMOcgETcLpLp69Hy3A2PE9AKMmqFYNVOqE8FMsXm2b3p8Cw8Qf18c2Yat4UJ/i26/rb2Trn3zXvVuyqhTpafmg0EYv1HGUO88rNAIIketcVccPRocYdt4WHPCeneQSfEv3nfUHjUOEvrxBXJAlS6ipTVXrUL5piF5cFTWtOpLFmGz9r8n3fk0TRSznFFE77GILiNaNjpIVZD0xndZ+ULuRjkpLF2Bq+vIse1+Mru+D19U/foMUlrkkayOi7R5aPGA5zm4sOzn/NHx5BSQmdRbSdlhO3sfR6Hu1oJ1ZQGq4DfmjXOoksZJsQmIxDSOFS0AnUwYEH9kKszImZMgto9GAY2d1Vparv8PmBHJV0cr0P5gXfRyojarQ0u+d8p+g+twtiU7p2th3yT6mzZ7XXqlLbBHtYyTFxbpeQgvgeiwlfd7qwCCwWdy7TZkQBl1H7qUJpqQHSgKW7h66laICEXvCrxAGtAfiKnS1UNpRdQfIwslpIdi6Q4i+uJbM1uEZ6a4Q2BKijSSuDZx7cKtoeSgN3uLFgm4LV7/gSX9warwccXU+7xEWT/ZehYl8NYSQlsvfsCYkSSaxd86ZLSXCABrt6p8n5dTnMfJegdpQu2NZksQg0asl7G0WpyLvQQeikVzrGo6HR7mfDmC4smxV8ZSrRWnXOPZwa6T7Ulpn+P77Eo9uoHlXZ2bKiVUDNzKB8jo7thqiZbVi9R06jEAK1HOEzn7e1LvdKky0CBeMdXm5F4IqNG5I9HoetY x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3018.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(56012099003)(22082099003)(18002099003)(3023799003)(38070700021)(11063799003)(4143699003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V25mUlFMRUs5Q0JPWjBMdDBKYm5lR0Fzb2JxWndOWEpMY1hITU8wY21HTEFI?= =?utf-8?B?bFltNHcwOWlaM2JTT0hFdmhhaU9zR3RzK1MzYnh5SE9nV1VGUUFTUGxHMnF3?= =?utf-8?B?eHorZkZRblRLMXR5ejByc01FeHVlYXFBZ0JidG5qVjJxcGZPZ2dJNzYwajlk?= =?utf-8?B?UFZyc3Z3SHorUkZRRHl6UU1wU0V3akxJNUxoY0JlcW94alJIWlpCenFkMVli?= =?utf-8?B?cG1XeFhGRUE4SUdoU1ZoYnNMR0hFeXJuSzRQSk5ZMTRhWi9HV2Rkam51QXZm?= =?utf-8?B?Z2M2S1NERmM0L3BTckZRQXAyVDNXeEcxa2JrREljNGdvQTFVeVYyNGprd2sz?= =?utf-8?B?djJ2NW9zOGtianQ2bkF4SmNNWkd1YlVCU08zaDhmU3FIN1p2MXl4VDV1ZlNQ?= =?utf-8?B?TjN3cnUyMllVOUtMbUI2RytuZ0Z5dldXNWhCdFpVWE9VcmxzR1Zkb2lsNkRW?= =?utf-8?B?elpDVDY4ZnhQNW52UHd2aUpOWUVYYmY0b2tKK2VXV3EwamdrZkg5VGNUMU52?= =?utf-8?B?eFkxaDFiWFFvd2pHak1DSGRKdDVwR3JITEtIVGhkNmF1NUNHdHJOT3o5UE1t?= =?utf-8?B?RkM3bnpGZTdrNU1ES1R6YUl6R1NCZ2ZORmJacmp5d2pJLzBPamdyanNIb0VN?= =?utf-8?B?OTJsNTE1UTVnOWtKZmFaK25DYW0zQzVrcndGZHdSUWd0cTVEbWtyUmJQakhs?= =?utf-8?B?UUx5ajhrTjFnSThkVjVjdzh4Q2dSbVhVS1dZS0pkVkZZLy9yZXpoc0x5czBM?= =?utf-8?B?Qm9TRkx4cEY3eGViZ0VQNmVZcFhTRTJUS2JIbWRQRTkwby8zWnpSMU9UR3RJ?= =?utf-8?B?b1JEaURDRXdnMnA4S3pidDhxWGRFMEpLNE9DV0xLclMzYkc3Y2dYNWQ1VWx5?= =?utf-8?B?cDh0RXJWMkN0TTZESVUzVFpwM25nRjV4R1h6cEdJK0NsaWhqZFJpejEyNmtD?= =?utf-8?B?WmdiRkJxYXFaZUxKeUxOaHNDdm83d1FtS1doaHY0aXZuV0hoV0wxbUJ3TkJX?= =?utf-8?B?VGlyT0dzYkhPTkRVUFRzVENLRjVKczZLWU5PMTZpQ1VKekYydEtZT25BZ1dj?= =?utf-8?B?RWVINW05bFoxamppQXg5bG11Nk9Tc2kxYWNRcjMxbUpNZjdaMGUzSmFoT05S?= =?utf-8?B?L3BEbDB5ZERPTlo4Nmp0ZlVZN0Y3a05aUHlydzVQVnB6YXlCMFhZTXU3TFFW?= =?utf-8?B?VFhsc25ScUwvM2xpb1ZCZk8yYkt3cy9OWTV6NkVVL2FQMWZtcjg0STJHV0M4?= =?utf-8?B?aXpPYUZRSTZDYkRFNDkwYVFhNlZVR0VqczNYNGtPQ21GRGRKbmhxc1N2OHc1?= =?utf-8?B?MnU3UzUrTmlIcGJsOVFEYURRb2VSb2w1RWNyVXJnZXN4Q084SFUyd1dTVWdZ?= =?utf-8?B?Nk51cGRlcXdIYW02NUtBNkhHeWhuRUZSMGpuZVF1ZlRwbnFVdTNhVmFpYk1r?= =?utf-8?B?djdWblBWQTBraGhUUzg1dzhGSGJXd0k1VDBNOGFrSG1vbFNZVHowclN4b0Y2?= =?utf-8?B?ZUdFbk9JSllIUzMzQVpWKzNhUFliRzg0cFNRTXU1bHRjRHZtZDRrTWIwd0RY?= =?utf-8?B?S096bDQ1SGZ6YkR3NlpsTzdTL280aWNCT1VZWHVWaFFIMlV6SEtXUUJSbDNY?= =?utf-8?B?ZDNubUpTdjNSSEQ3VEN0VHY5M1V5WHFWdnFIS2I2RlFrU3ZXeld3bzlEQmRk?= =?utf-8?B?b0F3OFpmQUdvd2Y4Qk5iSEVjQWNRMEs0ZE45SnEwOE9mLy9NTC9MTld3bjNO?= =?utf-8?B?TVVpZXFEVXhwcGhFdE1RZUhueThiUnQxWHBnVWxTWnp6YkttN2ptOFdYRkNV?= =?utf-8?B?a1p5aS9IRndGYy9zeXpOMmVhc0kvTWJQZnFKVTY2b1M4RWYzNU1hREFiT2dK?= =?utf-8?B?R3BtYVFsVXJZV2JUU1RpTmZDYVROYXZQc3QvUzFycm1kY2EzVG5Ya0RpR01M?= =?utf-8?B?dC9SakhJdjlsRjJyald1dmRXS01XdTZrbDgwV2xpQzg3bHgxb2c5VDhBMkpX?= =?utf-8?B?cHZucGpsV2RMSUNOdlREeTJ5N0FTK0hveGh5bThSNGRiejJJNFJLcXhTZy9p?= =?utf-8?B?RVptRnFjSUkyWlB5THZ2RVdqckVZNUtWVDRZUVZWR3AxZzlKR1RiYmVIb2hu?= =?utf-8?B?cW83cjRVajY2WjNYQUF3eERrSkJkWFVJVkVwY3ptK0VzNWVTRlR0Smc3MTRK?= =?utf-8?B?aWRZMzdkS0h6b2dOWnFwV2ZDVi9mQUNkdjhpcU9xWnorWGIzM1o2WlhmbGFh?= =?utf-8?B?M3VEODU1Sy9iKzRiQTJYSXdpYWw2NTZZZDhUeEw4anpOcmpuTmNCTGdxSStU?= =?utf-8?B?WkVyeWhZcFo0R0JXQThHbXJyK2lxeTBJdmVPTzBWRWlydlQ5R0loV1o3NkRK?= =?utf-8?Q?D91p05Oub52ITbWE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: cM78FUaveh+VhVdwx/YZ4/VInjW379gPBFSzmGVCk5WAEjs02p0ccJSe2+SJMIbkonR6p94WV/GnZUbAHeh7h8e8Uecn+zoWN0suGCFOC8OcDFFrZwwvSuTED4M+TPIYwnBUtD4NNMX6lFrrViENNekG6ekxnRJSQw0YAc8TUaMzwNHH/idnJ0sisHT53Y09W/vWR9VMQ6pSGambFEAMaDj5okLHGSyoGhE1JsGliEcQNtJ5whPv5B6NAG3jWR0N7+bSLVgycBFfWU2ryaF9eUiIgv5ncjOYVCmlBAmIJPVv6MS9WHx268KKaxpCcD7QmCsoZV1vm5UiEBCAElEa0A== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB3018.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5fa3d10-215e-4dd0-41c9-08deb1e5e5ff X-MS-Exchange-CrossTenant-originalarrivaltime: 14 May 2026 18:23:29.7424 (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: 9PNLQt/sFLWwwTJcZAa6gLijxCHR7aWdL5y4t4WsJgXQ7s1cb4Baih1+V5U2h1dRX/jFA/jd50ZptitHJtZ5vwnYyiBO3ELx5gGvZBwAB+c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6360 X-OriginatorOrg: intel.com T24gVGh1LCAyMDI2LTA1LTE0IGF0IDE5OjEyICswMjAwLCBCb3Jpc2xhdiBQZXRrb3Ygd3JvdGU6 DQo+IE9uIFRodSwgTWF5IDE0LCAyMDI2IGF0IDA1OjA3OjMwUE0gKzAwMDAsIEVkZ2Vjb21iZSwg UmljayBQIHdyb3RlOg0KPiA+IERvIHdlIHdhbnQgYSBub24tdGFpbnQgdmVyc2lvbiBvZiB0aGlz IGNhcGFiaWxpdHk/IFRoYXQgd2FzIE1hdGhpYXMnIG9yaWdpbmFsDQo+ID4gYXBwcm9hY2gsIGJ1 dCBoaXMgdXNlIHdhcyBqdXN0IGRlYnVnZ2luZy4gU28gaGVuY2UsIHRoaXMuDQo+IA0KPiBObywg d2UgZG9uJ3Q6DQo+IA0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIEFsc28gbm90ZSB0aGF0IHVzZXIgcHJvZ3JhbXMgY2FsbGluZyBDUFVJRCBkaXJlY3Rs eQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG9yIHVz aW5nIHRoZSBmZWF0dXJlIHdpdGhvdXQgY2hlY2tpbmcgYW55dGhpbmcNCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3aWxsIHN0aWxsIHNlZSBpdC4gVGhp cyBqdXN0IHByZXZlbnRzIGl0IGZyb20NCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBiZWluZyB1c2VkIGJ5IHRoZSBrZXJuZWwgb3Igc2hvd24gaW4gL3By b2MvY3B1aW5mby4NCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBBbHNvIG5vdGUgdGhlIGtlcm5lbCBtaWdodCBtYWxmdW5jdGlvbiBpZiB5b3UgZGlzYWJs ZQ0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNvbWUg Y3JpdGljYWwgYml0cy4NCj4gDQo+IERvIHlvdSB3YW50IHRvIGRlYnVnIGlzc3VlcyBiZWNhdXNl IHNvbWVvbmUgZGVjaWRlZCB0byBzaG9vdCBvdXINCj4gcmVwcmVzZW50YXRpb24gb2YgYSBDUFVJ RCBmbGFnIGFuZCBzb21ldGhpbmcgaXMgbm90IGJlaW5nIGRldGVjdGVkIGJlY2F1c2Ugb2YNCj4g dGhpcyBhbmQgeW91J3JlIHNjcmF0Y2hpbmcgeW91ciBoZWFkIHdoeSBURiBpdCBoYXBwZW5zPw0K DQpJIGRpZG4ndCBtZWFuIHRvIHN1cHBvcnQgZGlzYWJsaW5nIHRoZW0gYWxsLiBJIG1lYW50IGhh dmUgYSB0aGluZyB3aXRoIHRoZSBzYW1lDQpmb3JtYXQgYXMgY2xlYXJjcHVpZCwgYnV0IG9ubHkg d29ya3MgZm9yIGZlYXR1cmVzIHdlIHdhbnQgdG8gc3VwcG9ydC4gU28gbWF5YmUNCmxpa2UgZGlz YWJsZT11c2Vyc2hzdGsuIEFuZCB0aGVuIGhhdmUganVzdCBsZXNzIGNvZGUgdG8gaGF2ZSB0byBj b3ZlciBhbGwgdGhlDQpub2ZvbyBjYXNlcy4gSXQgd291bGQgb25seSBzdXBwb3J0IGxpbWl0ZWQg Yml0cyB0aGF0IHdlcmUgaW50ZW50aW9uYWxseSBhZGRlZC4NCg0KVGhpcyBpcyBub3QgYSB3ZWxs IHRob3VnaHQgb3V0IGlkZWEgdGhvdWdoLg0KDQo+IA0KPiA+IEFsc28sIGhhdmUgeW91IGV2ZXIg dGhvdWdodCBhYm91dCBrZWVwaW5nIGEgbGlzdCBvZiBhcHByb3ZlZCBjbGVhcmNwdWlkIHZhbHVl cw0KPiA+IHRoYXQgYXJlIHN1cHBvcnRlZCBmb3Igbm9ybWFsIHJ1bnRpbWUuIFBlb3BsZSBjb3Vs ZCB1c2UgaXQgdG8gdHVybiBvZmYgZmVhdHVyZXMNCj4gPiB3aXRob3V0IHBpY2tpbmcgdXAgYSB0 YWludD8gTGlrZSBtYXliZSBwZW9wbGUgd2FudCB0byB0dXJuIG9mZiBzb21ldGhpbmcgZm9yDQo+ ID4gcGVyZm9ybWFuY2UgcmVhc29ucyBvciBzb21ldGhpbmcuIFRoZW4gd2UgY2FuIGhhdmUgb25l IGludGVyZmFjZSBmb3IgaXQgYWxsLA0KPiA+IGluc3RlYWQgb2YgdmFyaW91cyBub3VzZXJzaHN0 ay1saWtlIGZsYWdzLiBOb3Qgc3VyZSBpZiBpdCdzIGEgZ29vZC4NCj4gDQo+IE5vLCB3ZSBoYXZl ICJuby4uLiIgY21kbGluZSBhcmd1bWVudHMgZm9yIHRoaW5ncyB3aGVyZSBkaXNhYmxpbmcgdGhl IGZlYXR1cmUNCj4gbWFrZXMgc2Vuc2UuIEFuZCB3ZSBzdXBwb3J0IHRob3NlLg0KPiANCj4gVGhl IG90aGVyICJuby4uLiIgc3dpdGNoZXMgd2UgYWRkIHVzdWFsbHkgYXMgcGFydCBvZiBhIGNoaWNr ZW4gYml0IHdoZW4gYWRkaW5nDQo+IGEgbmV3IGZlYXR1cmUuIFN1YnNlcXVlbnRseSwgd2UgZGVs ZXRlIHRoZW0gYWZ0ZXIgaXQgdHVybnMgb3V0IHRoZQ0KPiBpbXBsZW1lbnRhdGlvbiBpcyBmaW5l IGFuZCB0aGVyZSdzIG5vIG5lZWQgZm9yIGFueSBjaGlja2VuIGJpdCBhbnltb3JlLg0KDQpPaCwg SSBkaWRuJ3QgcmVhbGl6ZSB0aGV5IHdlcmUgaW50ZW5kZWQgdG8gYmUgc2hvcnQgdGVybSB0aGlu Z3MuDQoNCj4gDQo+IElmICJub3VzZXJzaHN0ayIgaGFzIGEgZ29vZCB1c2UgY2FzZSBsaWtlIGJl aW5nIGFibGUgdG8gZGlzYWJsZSBDRVQgaXNzdWVzLA0KPiB0aGVuIGJ5IGFsbCBtZWFucywgdGhh dCBqdXN0aWZpZXMgc3VwcG9ydGluZyBpdCBmdWxseS4NCg0KRmFpciBlbm91Z2gsIHRoYW5rcyBm b3IgdGhlIGNvbnNpZGVyYXRpb24uDQo=