From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.1959.1681448841363394955 for ; Thu, 13 Apr 2023 22:07:21 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Y7WRMyFh; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681448841; x=1712984841; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=fMalTFU9SLKKPlmzvTozBx7QtqT9nZc+h0Pk9rVwMsk=; b=Y7WRMyFhsKZADpYrQe8f4XCNA7rh+VV4sIIv7n2hA6IZferc+wGjBeMX 2GCEWjMwUIpci2JWKdVZEgjQtt0tV888WqS6nQrt/fuMm0gJxWHWVM1IG J7+8edKS60ZoFjrtHl4re1PI1SXsN8CvWpI9oB3d87bCk8dlzJ9Uj6Gb+ ebfctTPa3VrgtjheDZFU2YeAsLfQhOB3gwugcidaEGejrCY0r762b5hAu 9+oUQBCJ1Kg6XjXuxTjbvuzdevgHzSjZm2qi8uweDXXgln0u7FO7ZJklQ HjgZbKNHd3Wa7Hmzx565WI2GaUKToNtLXttvuCUDqOZdKTFvzYV29CzMI Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10679"; a="346213314" X-IronPort-AV: E=Sophos;i="5.99,195,1677571200"; d="scan'208";a="346213314" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2023 22:07:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10679"; a="864063543" X-IronPort-AV: E=Sophos;i="5.99,195,1677571200"; d="scan'208";a="864063543" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga005.jf.intel.com with ESMTP; 13 Apr 2023 22:07:17 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 13 Apr 2023 22:07:15 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 13 Apr 2023 22:07:15 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 13 Apr 2023 22:07:15 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.49) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 13 Apr 2023 22:07:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ea93FX2Ou8eo+aOWcT39NjJzuw0+VyIUn1y4Au7r8XoEWHn17CY19kdhMx50XygbJgIQLXT0OLZkGetNjOBZJCstYyylFhuhA3qGCP8zZ7YIPvO2pjg7sEalr/ROAbWLHVmKhud6v75pKqKMA1eOa4mrFiMmWr6KJkw2xaBsMgzQcsC/ywuWBxRMBlWZtiXGn5Rzn7HB9N9Jm8R7fmjy/I1MI1ZncKMjeIrLCfgmuv0BbF3723eebUuR7LxqrWfML1kwFWLJTaRZYjVMCwZY4RiYLt2vDSS2Qq/cg2w+ffKhxjhDUPw4AUzwI0ItJGaOZlMbsnnwNtPn0pMnSTSLOg== 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=fMalTFU9SLKKPlmzvTozBx7QtqT9nZc+h0Pk9rVwMsk=; b=CHqF6aVXxr2UZhhjrPfHZyF6J1TC8IgMciDriXTxrHEL5mwP915gSwfQwuI3QjhyUvYt+MbXD3nXV4CEktpF5jbhnfpATm9ewyq4PstmT3OyrC6Ik/8RpGtp1Nb6H5JxAmZQcbQQmMIHHId19h/bj41rqJtJ39k+W2Iou1pMj73VymjxhDQpwFxlN+qAByhpPJweEutQ7h7PYytA8m1Ie4i3bVz2wZMDxzjL+chlqR0Ke0LJvB/XTr53GbUGTQSNmVu625JNMjfzrNq9GGzSiIP/2pnWBRH4OaW1yf197Z9PrnzggVW0jDxjX2FnLAc1M3lZJm9Mt80tKVn4taZUcQ== 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 MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by CO1PR11MB4898.namprd11.prod.outlook.com (2603:10b6:303:92::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.30; Fri, 14 Apr 2023 05:07:13 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%5]) with mapi id 15.20.6298.030; Fri, 14 Apr 2023 05:07:12 +0000 From: "Ni, Ray" To: Tom Lendacky , "Tan, Dun" , "devel@edk2.groups.io" Subject: Re: [edk2-devel] [Patch V2 0/8] Use CpuPageTableLib to create and update smm page table Thread-Topic: [edk2-devel] [Patch V2 0/8] Use CpuPageTableLib to create and update smm page table Thread-Index: AQHZbRyoGhev/k0Lh0ak5MT8foi7/q8nX/cggACu7wCAALRekIAAqcYAgADTs3A= Date: Fri, 14 Apr 2023 05:07:12 +0000 Message-ID: References: <1755241E6695EAE7.1885@groups.io> <2301e275-1f69-e5c0-997d-d967264aa590@amd.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: MN6PR11MB8244:EE_|CO1PR11MB4898:EE_ x-ms-office365-filtering-correlation-id: 6513ca14-dc8c-4ba5-e58b-08db3ca61b5b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6isT+3QC6kDRdBNV+uSJxHsR1cI4zemsTSFQB+RMxFJ8Vww6QgfOHpKi+JQcl6F23sWix9buWV1K7+1as6qKS/9NnmzQWFapYQICwHPYp2jPmP1Z6mnHrOssUsfxlhcACJCV5mOPwxoeU3gjt6UlMZ5wo4BL79vt3lGDnPKV9kKqWliFDKWe4LLOzOnMul1iR6x1zGiJv3rIChKotxqKwFTG1DL5jXub1IeuuxHIfNIr+D7c1stZH3NVQaWNWl2F0sq5AxL+KC8yvXzAId1zzVz/7tgiMocpf/m5abLsCTdkmmR1qe9fn+NUN720+Wm2yAJZXzEf4nLLlAnjDvG+Tf5ANirQ4yqANvry9n4qXLKXfqjEmg9x7u3O9Y0hHCnPOI1W4R+L1Vw/SChWnaOzksTHM+V0fEw41lnMZivrMmRK/ya95a7oZxOWKwG8ys7ItX0UajiaR/Au7/NNOlwSp4Bh3CzlN00PYhDJWJutYWaeQvf5I1TRxu5IGQFs5/0wJqB+QJI91oxh/sHyChkvKX+ooG8X5h7+QGtZQ4V8UpoBxZoIvKCwE4zXb18bsp5tG0NgLQlp0ZfaEV+BVV4/r3Azf51ozCE9JbySgBrd0dXIF8ga/kB5ir97dfONVz8et/ECNyQ0n5vktqMM6G/aiA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(396003)(39860400002)(376002)(136003)(451199021)(8676002)(66899021)(122000001)(5660300002)(38070700005)(38100700002)(316002)(52536014)(30864003)(15650500001)(64756008)(55016003)(8936002)(86362001)(66556008)(66476007)(66446008)(66946007)(2906002)(41300700001)(82960400001)(966005)(83380400001)(6506007)(76116006)(26005)(71200400001)(7696005)(110136005)(33656002)(9686003)(186003)(53546011)(19627235002)(478600001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SU5MbUp2TW1LbHU1bHNNODhSalZ0R3ozM3U3RHJiR2xlUktNYStYSW1TbmNR?= =?utf-8?B?US9UQ3FRb3FpRWZDcmgvNGJ5NDJqRmwzd1k5WmFsNnpncnRtSGFsUzBwaEpG?= =?utf-8?B?NlNtMWNlWVBQRzhJYUpKSVJuQmFjWDIvOTUvbHFqeHdxemdhMFFhT1pLZkUx?= =?utf-8?B?L1NMcDVPbTJ0RWoweDhqdmk3a05GL2oxMDlVckYvQXYxdGpZbktELzFJZFgz?= =?utf-8?B?cTlPamNhRThYV2NkT2hMdzc5WUhUNDFxU0RzR09pamlPeStsK3UzcVJuaU1l?= =?utf-8?B?c3krdkxRaXhUMlUyMHFqOWlHTjlScEJ1eWNiSUU3N0M3RGkvWHU5Z2ZEbG5Q?= =?utf-8?B?UnJFeHV2dk5DMXdva2FNL0lvbUtOd0VqejJGUG0zYjlld244TWVGb0ZMdzd3?= =?utf-8?B?cjlUeExCbm5lY1dFc2cwRHIybnBxUk5KaFByRUR4ZnlvT0hlNlRWbjR2VjVV?= =?utf-8?B?MnlQcm9jcEhSaEU3ZngvWTZaSzhOUy9raS9FMXphYThzWXNPeXYxZWVGVitw?= =?utf-8?B?LzI2NCtLOWU2VVdSQUxUY25iZ2NqaEdBR3VGSDZzcVhBWklMWklXRU51NzFS?= =?utf-8?B?TkE3cHdDcExrSktzdnpHdWk1QkltTWx1VVVuL3FBakJRUFhJNFRaNy9MRUJO?= =?utf-8?B?eWJjQkl6ckJoMmNSWXpSRUJyL2ViUHJoNWU0bSt3OTlISXFKVWQyak1CUFZx?= =?utf-8?B?dzhDRFkvSlJtNTNHSTVHUDltSEY4bUZLakozOVBhNzBhVGxadTJxUXByNFo5?= =?utf-8?B?QXEwVlJPbGFhUWdPTnFLSXNZeWhJREVxdzlJNkZ2VFd6UDBKZmFFeGQxOHJl?= =?utf-8?B?L1VKS3F2NllQNmZhWXE4ODhsRWR6b0k4S2M2Zis5UUVhWWk2Vmx2TWlZeGZX?= =?utf-8?B?VCtkb2xTTEdZOXE2RDRGU2hPMEs1SW5GcEplNWx0QWVlcG1seTg2ck5iN3lE?= =?utf-8?B?M08yV3J6c1VOTDhrT0s5YnNWV0IxSVV1clR1TnFpV29QRWgvb2JuZUZ2NFoz?= =?utf-8?B?Y2FMaC9ZdkZpQS9XWHNvQWxxRlQ1STR3VTFDaFArTzM1dy9TaGlxem85dUdo?= =?utf-8?B?RkVyVTZRQUZEdXo5WjFWc3dyNXlneG9wS3RXY0pZNkFwYzNRS2M0SlNHUC9S?= =?utf-8?B?Y255a1A1SXE3TU5rVjVPMGwxREMzOUltWWVWakhBS21ZUG5UWG5GY3Flei8z?= =?utf-8?B?a2hpdXRGaFMrV3VFeTcrd1Z2M29rN2xTbnZFeWUvU2pLMysyZXJmNU04b05R?= =?utf-8?B?NlZpVnl1Tk5ZYXVKRWEvVW81RUNsbzM0SEgxdW9kTGg5enJuRTk1S2Nkd3d0?= =?utf-8?B?ZXBoUE1jSE1yNG9vQVFXOExJY01hZVovRnpvSEZaL3MrNE96VG9OeDBtVXl1?= =?utf-8?B?d3RpbmsvbWp4MDVDM2hMemZpS0VyWTFHM1ZlcWNTZ0NubGVZVlFLMlVMUEtk?= =?utf-8?B?TUdrejlKaVpYb2hWbW55SW1abmlPQlRvb0NJSEhaZlpKRmx3TEtpUEhiMDBY?= =?utf-8?B?ckk5VDZwWjJrWlR1eExhMTg3L2VnakNJZmJaZmxUK01pTDE4dHlOcFNzMFlm?= =?utf-8?B?TkFUbDhuaXdPb2Z6M0VxbDcxWk1tM3BRbEkxcE53YXBnWHIrRHA3SkprNlla?= =?utf-8?B?QkZXMFBYMEVIUEp3MkZXTTRvWkVoVExVcG9LZm1yNFZNU3M4bmY5dnVKaDYz?= =?utf-8?B?Smh3QzZjNllNVGdLNDU0ZmVvN0ZQRWI2ZWlvenJpczBDMUV1Yll0Zjk1Sm9M?= =?utf-8?B?bWFsZ3hKQkZKM0s2SVY4cHFLb3duU0lpM2ZyRzJPejFVUW02OTRiTStiSFp6?= =?utf-8?B?cFY0UndDTnpZUzM1dGdTR1lud1VlVWJXVlFyRUFrSEFJcFNKL3Fpd0JTUkdR?= =?utf-8?B?Rnh5Z2lXRFQrWVFFUkFFUTRGYlkya2FkRFBhRnNIeElxUzdZazFKUUlNaktU?= =?utf-8?B?WnlQaE5kTjVMUHdPQWtITzQ0ZXY3SVBuU3ZxVnB6QnM1eEJvWlA1aXNPMEVq?= =?utf-8?B?MS8rOUtiek8zVFlUcndFOE5XVVBWZm9CUkdkaDg0eVZmRWVTQjA2QzdVdWVj?= =?utf-8?B?b2U4M2MyaXFTaUVISUxnaHlzUEs1OE5NWlY2SHAyKzFYSC81UHB3cVhqdDNF?= =?utf-8?Q?BdeQ=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6513ca14-dc8c-4ba5-e58b-08db3ca61b5b X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2023 05:07:12.3780 (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: u3orb11XfEAl2c0iTuIVXTyLAjY1Ermp2FTn+Vb5XAE7F7v8wlJFPQBsip9UoqRiCIev9XbjALjQmkcGHaPNSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4898 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVG9tIExlbmRhY2t5IDx0 aG9tYXMubGVuZGFja3lAYW1kLmNvbT4NCj4gU2VudDogRnJpZGF5LCBBcHJpbCAxNCwgMjAyMyAx MjoxOSBBTQ0KPiBUbzogVGFuLCBEdW4gPGR1bi50YW5AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gQ2M6IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gW1BhdGNoIFYyIDAvOF0gVXNlIENwdVBhZ2VUYWJsZUxpYiB0byBjcmVh dGUgYW5kDQo+IHVwZGF0ZSBzbW0gcGFnZSB0YWJsZQ0KPiANCj4gT24gNC8xMy8yMyAwNDoxNCwg VGFuLCBEdW4gd3JvdGU6DQo+ID4gSGkgVG9tLA0KPiA+DQo+ID4gVGhhbmsgeW91IGZvciB5b3Vy IGhlbHAgd2l0aCB0ZXN0aW5nLg0KPiA+IEZvciB0aGUgYnVpbGQgZmFpbHVyZSwgaXQncyBiZWNh dXNlIHRoYXQgdGhlIENwdVBhZ2VUYWJsZUxpYiBpbnN0YW5jZSBpcw0KPiBhZGRlZCBpbnRvIE92 bWZQa2cgRFNDIGluIHRoZSBsYXN0IHBhY3RoICcgT3ZtZlBrZzogQWRkIENwdVBhZ2VUYWJsZUxp Yg0KPiByZXF1aXJlZCBieSBQaVNtbUNwdUR4ZScuIEkgaGF2ZSBtb3ZlZCB0aGlzIHBhdGNoIHRv IHRoZSBoZWFkIG9mIHRoZSBwYXRjaA0KPiBzZXQuDQo+ID4NCj4gPiBGb3IgdGhlIGJvb3QgZmFp bHVyZSwgSSB0aGluayBpdCdzIGJlY2F1c2UgdGhhdCB0aGUgZW5jcnlwdCBtYXNrIHdhcyBub3QN Cj4gYXBwbGllZCB0byB0aGUgbWVtb3J5IHVzZWQgYnkgcGFnZSB0YWJsZSBpbiBwYWdlIHRhYmxl IG5vbi1sZWFmIGVudHJ5Lg0KPiBJbml0aWFsbHkgSSB0aG91Z2h0IHRoZSBlbmNyeXB0IG1hc2sg d291bGQgb25seSBiZSBhcHBsaWVkIHRvIHRoZSBsZWFmIGVudHJ5IGluDQo+IEFNRCBTRVYgZmVh dHVyZS4gU28gSSB0cmVhdGVkIHRoZSBlbmNyeXB0aW9uIHByb2Nlc3MgYXMgbm9uIDE6MSBtYXBw aW5nLA0KPiB3aGljaCBvbmx5IGFwcGxpZXMgdGhlIGVuY3J5cHQgbWFzayB0byBsZWFmIGVudHJ5 LiBJJ20gYWxzbyBjdXJpb3VzIHdoeSB0aGUNCj4gRHhlSXBsIHBhdGNoIHNldCB3b3JrcyBnb29k LiBBbGwgdGhlIHBhZ2UgdGFibGUgbm9uLWxlYWYgZW50cmllcyBhcmUgYWxzbyBub3QNCj4gZW5j cnlwdGVkIGluIHRoZSBEeGVJcGwgcGFnZSB0YWJsZSByZWxhdGVkIHBhdGNoIHNldC4NCj4gDQo+ IFJpZ2h0LCBhbmQgdGhhdCB3b3JrcyBmb3IgU0VWLiBBbGwgbm9uLWxlYWYgcGFnZXRhYmxlIGVu dHJpZXMgYXJlIHRyZWF0ZWQNCj4gYXMgZW5jcnlwdGVkIHJlZ2FyZGxlc3Mgb2YgdGhlIGVuY3J5 cHRpb24gYml0LiBTaW5jZSB0aGUgdGFibGVzIHdlcmUgYnVpbHQNCj4gYmVpbmcgbWFwcGVkIGVu Y3J5cHRlZCwgdGhlIHBhZ2V0YWJsZSB3YWxrIHdvcmtzIHdoZW4gdGhlIG5vbi1sZWFmDQo+IGVu dHJpZXMgZG9uJ3QgaGF2ZSB0aGUgZW5jcnlwdGlvbiBiaXQgc2V0LiBJbiB0aGlzIGNhc2UsIHRo b3VnaCwgdGhlIGVuY3J5cHRpb24NCj4gYml0IGlzIHByZXNlbnQgaW4gdGhlIG5vbi1sZWFmIGVu dHJ5IGFuZCB0aGF0IGlzIHRoZSByZWFzb24gd2h5IHRoZXJlIGFyZQ0KPiBpc3N1ZXMuDQoNCkNh biB5b3UgcG9pbnQgdXMgd2hpY2ggZG9jIGhlcmUgKGh0dHBzOi8vd3d3LmFtZC5jb20vZW4vZGV2 ZWxvcGVyL3Nldi5odG1sKQ0Kc2F5cyB0aGUgcGFnZSB0YWJsZSBpcyBlbmNyeXB0ZWQgcmVnYXJk bGVzcyB0aGUgS0VZX0lEIGJpdHMgdmFsdWU/DQpIb3cgY2FuIHRoZSBlbmNyeXB0aW9uIGVuZ2lu ZSBrbm93IGlmIGEgY2h1bmsgb2YgbWVtb3J5IGJlbG9uZ3MgdG8gcGFnZSB0YWJsZT8NCg0KTXkg dW5kZXJzdGFuZGluZyB0byBTRVYgaXMgYW55IHBoeXNpY2FsIGFkZHJlc3MgZmllbGQgaW4gZ3Vl c3QgcGFnZSB0YWJsZSBzaG91bGQgaGF2ZQ0KdGhlIEtFWV9JRCBiaXRzIHNldCBpZiB0aGUgcGh5 c2ljYWwgcGFnZXMgYXJlIHByaXZhdGUgdG8gZ3Vlc3QuIE9ubHkgc29tZSBwYWdlcyBmb3IgR01D Qg0KZG9uJ3QgaGF2ZSBLRVlfSUQgYml0cyBzZXQgYXMgdGhvc2UgYXJlIHNoYXJlZCBiZXR3ZWVu IGd1ZXN0IGFuZCBob3N0Lg0KDQpJIHRob3VnaHQgRHVuJ3MgcGF0Y2ggd29ya3MgYmVjYXVzZSBh bGwgZ3Vlc3QgbWVtb3J5IGlzIG1hcmtlZCBhcyBzaGFyZWQgYmVjYXVzZQ0KdGhlIEtFWV9JRCBi aXRzIGluIGFsbCBlbnRyaWVzIGFyZSBub3Qgc2V0LiBPbmx5IHNvbWUgcGFnZXMgdGhhdCdyZSB1 c2VkIGJ5IEdNQ0INCmhhdmUgdGhlIEtFWV9JRCBiaXRzIHNldC4NCg0KDQo+IA0KPiBIZXJlIGlz IHNvbWUgZGVidWcgYWZ0ZXIgc2V0dGluZyBQYWdpbmdFbnRyeSBhdCBsaW5lIDQzNiBvZg0KPiBV ZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1UGFnZVRhYmxlTGliL0NwdVBhZ2VUYWJsZU1hcC5jOg0KPiAN Cj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0g M0ZGODEwMDANCj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2lu Z0VudHJ5ID0gM0ZGODAwMDANCj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQz NyAtIFBhZ2luZ0VudHJ5ID0gM0ZGODMwMDANCj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJ bkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZGODEwMDANCj4gKioqIERFQlVHOiBQYWdlVGFi bGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZGODAwMDANCj4gKioqIERFQlVH OiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZGODMwMDANCj4g KioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0VudHJ5ID0gM0ZG ODEwMDANCj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAtIFBhZ2luZ0Vu dHJ5ID0gM0ZGODAwMDANCj4gKioqIERFQlVHOiBQYWdlVGFibGVMaWJNYXBJbkxldmVsOjQzNyAt IFBhZ2luZ0VudHJ5ID0gODAwMDAzRkMwMTAwMA0KDQpBcmUgeW91IHRlc3RpbmcgdGhlIFNNRSBv ciBTRVY/DQpNeSB1bmRlcnN0YW5kaW5nIGlzIHdpdGggU01FLCBvbmx5IHRoZSBoaWdoZXN0IEMg Yml0IHNob3VsZCBiZSBzZXQgaW5kaWNhdGluZw0KdGhlIHBoeXNpY2FsIHBhZ2UgaXMgZW5jcnlw dGVkLg0KDQoNCg0KPiAhISEhIFg2NCBFeGNlcHRpb24gVHlwZSAtIDBEKCNHUCAtIEdlbmVyYWwg UHJvdGVjdGlvbikgIENQVSBBcGljIElEIC0NCj4gMDAwMDAwMDAgISEhIQ0KPiANCj4gMHg4MDAw MDNGQzAxMDAwIGlzbid0IG1hcHBlZCBhbmQgc28gaXQgZmFpbHMgLSBJJ20gbm90IGV4YWN0bHkg c3VyZSBob3cNCj4gdGhlICNQRiB0dXJucyBpbnRvIGEgI0dQLCB0aG91Z2gsIG1heWJlIGJlY2F1 c2UgdGhlIHZpcnR1YWwgYWRkcmVzcyBpc24ndA0KPiBjYW5vbmljYWwgdGhhdCBwb2ludC4NCj4g DQo+IFRoYW5rcywNCj4gVG9tDQo+IA0KPiA+DQo+ID4gSSdsbCBhZGRlZCBhbm90aGVyIHBhdGNo IGluIG15IGNvZGUgYnJhbmNoIHRvIGZpeCB0aGlzIGlzc3VlIGxhdGVyLiBJbiB0aGUgbmV3DQo+ IGNvbW1pdCwgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2YgQ3B1UGFnZVRhYmxlTGliLCB0aGUgd2hv bGUgbWVtb3J5IGNhbg0KPiBiZSBkaXZpZGVkIGludG8gMyBjYXRlZ29yaWVzOiBtZW1vcnkgdXNl ZCBieSBwYWdlIHRhYmxlLCBndWVzdCBwcml2YXRlDQo+IG1lbW9yeSBhbmQgZ3Vlc3Qgc2hhcmVk IG1lbW9yeS4gQ3B1UGFnZVRhYmxlTGliIHdpbGwgYWx3YXlzIGFwcGx5IHRoZQ0KPiBlbmNyeXB0 IG1hc2sgdG8gbWVtb3J5IHVzZWQgYnkgcGFnZSB0YWJsZSwgd2hpY2ggbWVhbnMgYWxsIHRoZSBu b24tbGVhZg0KPiBwYWdlIHRhYmxlIGVudHJpZXMgYXJlIGVuY3J5cHRlZC4gRm9yIGd1ZXN0IHBy aXZhdGUgbWVtb3J5LCB0aGlzIGNhc2UgY2FuIGJlDQo+IHRyZWF0ZWQgYXMgbm9uLTE6MSBtYXBw aW5nLiBXZSBjYW4gYXBwbHkgdGhlIGVuY3J5cHQgbWFzayBieSBzZXR0aW5nIHRoZQ0KPiBpbnB1 dCBwYXJhbWV0ZXIgb2YgUGFnZVRhYmxlTWFwKCkgQVBJIGxpa2UgIiBBdHRyaWJ1dGUuVWludDY0 ID0NCj4gTGluZWFyQWRkcmVzcyB8IEFkZHJlc3NFbmNNYXNrIi4gRm9yIGd1ZXN0IHNoYXJlZCBt ZW1vcnksIHRoaXMgY2FzZSBjYW4NCj4gYmUgdHJlYXRlZCBhcyBub3JtYWwgMToxIG1hcHBpbmcu IEknbGwgbGV0IHlvdSBrbm93IG9uY2UgdGhlIG5ldyBwYXRjaCBpcw0KPiByZWFkeS4NCj4gPg0K PiA+IFRoYW5rcywNCj4gPiBEdW4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmIE9mDQo+IExlbmRhY2t5LCBUaG9tYXMgdmlhIGdyb3Vwcy5pbw0KPiA+IFNlbnQ6IFRodXJz ZGF5LCBBcHJpbCAxMywgMjAyMyAzOjI2IEFNDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBUYW4sIER1biA8ZHVuLnRhbkBpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRl dmVsXSBbUGF0Y2ggVjIgMC84XSBVc2UgQ3B1UGFnZVRhYmxlTGliIHRvIGNyZWF0ZQ0KPiBhbmQg dXBkYXRlIHNtbSBwYWdlIHRhYmxlDQo+ID4NCj4gPiBPbiA0LzEyLzIzIDA1OjE3LCBkdW50YW4g dmlhIGdyb3Vwcy5pbyB3cm90ZToNCj4gPj4gSGkgVG9tLA0KPiA+Pg0KPiA+PiBUaGlzIHBhdGNo IHNldCBpcyB0byBjaGFuZ2UgUGlTbW1DcHVEeGVTbW0gY29kZSB0byB1c2UNCj4gQ3B1UGFnZVRh YmxlTGliIHRvIGNyZWF0ZSBhbmQgdXBkYXRlIFNNTSBwYWdlIHRhYmxlLiBUaGUgUGNkDQo+IFBj ZFB0ZU1lbW9yeUVuY3J5cHRpb25BZGRyZXNzT3JNYXNrIGlzIGFsc28gdXNlZCBpbiBQaVNtbUNw dUR4ZVNtbQ0KPiBjb2RlIGFuZCB0aGUgd2hvbGUgcmFuZ2UgY292ZXJlZCBieSBwYWdlIHRhYmxl IGlzIG1hcHBlZCBlbmNyeXB0ZWQsDQo+IHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBzaXR1 YXRpb24gaW4gRHhlSXBsIG1vZHVsZS4NCj4gPj4gU28gY291bGQgeW91IGFsc28gaGVscCBkbyBh IHRlc3QgdG8gbWFrZSBzdXJlIHRoZSBBTUQgU0VWIGZlYXR1cmUgc3RpbGwNCj4gd29ya3MgZ29v ZCBpbiBTTU0gd2l0aCB0aGlzIHBhdGNoIHNldD8NCj4gPj4gSGVyZSBpcyB0aGUgY29kZSBicmFu Y2ggaW4gbXkgZm9yayByZXBvOg0KPiA+PiBodHRwczovL2dpdGh1Yi5jb20vdGQzNi9lZGsyL2Nv bW1pdHMvU21tUGFnZVRhYmxlX1YyDQo+ID4NCj4gPiBIaSBEdW4sDQo+ID4NCj4gPiBJIHRlc3Rl ZCBhdCB0aGUgZmluYWwgY29tbWl0IG9mIHRoZSBicmFuY2ggYW5kIGVuY291bnRlcmVkIGEgI0dQ IHdpdGggYW4NCj4gU0VWIGd1ZXN0LiBJdCBsb29rcyBsaWtlIHRoZSBDcHVQYWdlVGFibGVMaWJy YXJ5IGRvZXNuJ3QgdGFrZSB0aGUgZW5jcnlwdGlvbg0KPiBiaXQgaW50byBhY2NvdW50LiBGb3Ig ZXhhbXBsZToNCj4gPg0KPiA+IExpbmUgNDM2IG9mIFVlZmlDcHVQa2cvTGlicmFyeS9DcHVQYWdl VGFibGVMaWIvQ3B1UGFnZVRhYmxlTWFwLmMNCj4gPiAgICAgUGFnaW5nRW50cnkgPSAoSUEzMl9Q QUdJTkdfRU5UUlkNCj4gKikoVUlOVE4pSUEzMl9QTkxFX1BBR0VfVEFCTEVfQkFTRV9BRERSRVNT ICgmUGFyZW50UGFnaW5nRW50cnktDQo+ID5QbmxlKTsNCj4gPg0KPiA+IFRoaXMgd2lsbCBnZXQg YW4gYWRkcmVzcyB3aXRoIHRoZSBlbmNyeXB0aW9uIGJpdCBzZXQgYW5kIHRoZW4gdHJ5IHRvDQo+ IHJlZmVyZW5jZSBpdC4gV2hlbiBJIGNsZWFyIHRoZSBlbmNyeXB0aW9uIGJpdCwgdGhlIGNvZGUg cHJvY2VlZHMgYSBiaXQgZnVydGhlciwNCj4gYnV0IHRoZW4gZW5jb3VudGVycyBhICNHUCBpbiBh IGRpZmZlcmVudCBsb2NhdGlvbi4NCj4gPg0KPiA+IFNvIGl0IGFwcGVhcnMgdGhhdCB0aGUgQ3B1 UGFnZVRhYmxlTGlicmFyeSBkb2Vzbid0IGRlYWwgd2l0aCB0aGUNCj4gZW5jcnlwdGlvbiBiaXQg cHJvcGVybHkuDQo+ID4NCj4gPiBBbHNvLCBnb2luZyB0aHJvdWdoIGEgYnVpbGQvdGVzdCBvZiBl YWNoIGluZGl2aWR1YWwgcGF0Y2ggaGFkIG1peGVkIHJlc3VsdHMuDQo+ID4NCj4gPiAgICAgLSBX aXRoIHRoZSBzZWNvbmQgcGF0Y2ggaW4gdGhlIHNlcmllcyBhcHBsaWVkLCBJIGdldCBhIGJ1aWxk IGVycm9yOg0KPiA+DQo+ID4gICAgICAgL3Jvb3Qva2VybmVscy9vdm1mLWR1bi1idWlsZC1YNjQv T3ZtZlBrZy9Pdm1mUGtnWDY0LmRzYyguLi4pOg0KPiBlcnJvciA0MDAwOiBJbnN0YW5jZSBvZiBs aWJyYXJ5IGNsYXNzIFtDcHVQYWdlVGFibGVMaWJdIGlzIG5vdCBmb3VuZA0KPiA+ICAgICAgICAg ICAgICAgaW4gWy9yb290L2tlcm5lbHMvb3ZtZi1kdW4tYnVpbGQtDQo+IFg2NC9VZWZpQ3B1UGtn L1BpU21tQ3B1RHhlU21tL1BpU21tQ3B1RHhlU21tLmluZl0gW1g2NF0NCj4gPiAgICAgICAgICAg ICAgIGNvbnN1bWVkIGJ5IG1vZHVsZSBbL3Jvb3Qva2VybmVscy9vdm1mLWR1bi1idWlsZC0NCj4g WDY0L1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mXQ0KPiA+DQo+ ID4gICAgICAgdGhhdCBpc24ndCByZXNvbHZlZCB1bnRpbCB0aGUgZmluYWwgcGF0Y2guDQo+ID4N Cj4gPiBUaGFua3MsDQo+ID4gVG9tDQo+ID4NCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBEdW4N Cj4gPj4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gZHVu dGFuDQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwgQXByaWwgMTIsIDIwMjMgNDo1NCBQTQ0KPiA+PiBU bzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPj4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQYXRj aCBWMiAwLzhdIFVzZSBDcHVQYWdlVGFibGVMaWIgdG8gY3JlYXRlIGFuZA0KPiA+PiB1cGRhdGUg c21tIHBhZ2UgdGFibGUNCj4gPj4NCj4gPj4gSW4gVjIgcGF0Y2ggc2V0Og0KPiA+PiAxLkluICdS ZWZpbmVtZW50IHRvIGNvZGUgYWJvdXQgdXBkYXRpbmcgc21tIHBhZ2UgdGFibGUnLCB1c2UgUXVp Y2tTb3J0KCkNCj4gaW4gQmFzZUxpYiBpbnN0ZWFkIG9yIFBlcmZvcm1RdWlja1NvcnQoKSBpbiBC YXNlU29ydExpYi4NCj4gPj4gMi5SZW1vdmUgdGhlIHBhdGNoIHRvIGFkZCBCYXNlU29ydExpYiBp biBEU0MgZmlsZS4NCj4gPj4gMy5BZGQgYSBuZXcgcGF0Y2ggdG8gYWRkIENwdVBhZ2VUYWJsZUxp YiBpbiBVZWZpQ3B1UGtnLmRzYy4NCj4gPj4gNC5BZGQgYSB0ZW1wIHBhdGNoIHRvIGFkZCBDcHVQ YWdlVGFibGVMaWIgaW4gT3ZtZlBrZyBkc2MgZmlsZXMgZm9yDQo+ID4+IHRlc3QoQSBwcmV2aW91 cyBwYXRjaCBJIHNlbnQgYmVmb3JlICdbUGF0Y2ggVjIgNC84XSBPdm1mUGtnOiBBZGQNCj4gPj4g Q3B1UGFnZVRhYmxlTGliIHJlcXVpcmVkIGJ5IER4ZUlwbCBpbiBEU0MgZmlsZScgY29udGFpbnMg YWxsIHRoZQ0KPiA+PiBjaGFuZ2VzIGluIHRoaXMgcGF0Y2gpDQo+ID4+DQo+ID4+IER1biBUYW4g KDgpOg0KPiA+PiAgICAgT3ZtZlBrZzogQWRkIENwdVBhZ2VUYWJsZUxpYiByZXF1aXJlZCBieSBQ aVNtbUNwdUR4ZQ0KPiA+PiAgICAgVWVmaVBheWxvYWRQa2c6IEFkZCBDcHVQYWdlVGFibGVMaWIg cmVxdWlyZWQgYnkgUGlTbW1DcHVEeGUNCj4gPj4gICAgIFVlZmlDcHVQa2c6IFVzZSBDcHVQYWdl VGFibGVMaWIgdG8gY29udmVydCBTTU0gcGFnaW5nIGF0dHJpYnV0ZS4NCj4gPj4gICAgIFVlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW06IEF2b2lkIHNldHRpbmcgbm9uLXByZXNlbnQgcmFuZ2UgdG8N Cj4gUk8vTlgNCj4gPj4gICAgIFVlZmlDcHVQa2c6IEV4dGVybiBtU21tU2hhZG93U3RhY2tTaXpl IGluIFBpU21tQ3B1RHhlU21tLmgNCj4gPj4gICAgIFVlZmlDcHVQa2c6IFJlZmluZW1lbnQgdG8g Y3VycmVudCBzbW0gcGFnZSB0YWJsZSBnZW5lcmF0aW9uIGNvZGUNCj4gPj4gICAgIFVlZmlDcHVQ a2c6IFJlZmluZW1lbnQgdG8gY29kZSBhYm91dCB1cGRhdGluZyBzbW0gcGFnZSB0YWJsZQ0KPiA+ PiAgICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbTogUmVtb3ZlIHVubmVjZXNzYXJ5IGZ1bmN0 aW9uDQo+ID4+DQo+ID4+ICAgIE92bWZQa2cvQ2xvdWRIdi9DbG91ZEh2WDY0LmRzYyAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstDQo+ID4+ICAgIE92bWZQa2cvT3ZtZlBrZ0lhMzIuZHNjICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsrLQ0KPiA+PiAgICBPdm1mUGtnL092bWZQ a2dJYTMyWDY0LmRzYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQ0KPiA+PiAgICBP dm1mUGtnL092bWZQa2dYNjQuZHNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQ0KPiA+PiAgICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lhMzIvUGFnZVRibC5jICAgICAg ICAgICB8ICAgNSArKystLQ0KPiA+PiAgICBVZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL0lhMzIv U21tRnVuY3NBcmNoLmMgICAgICB8ICAgMyArLS0NCj4gPj4gICAgVWVmaUNwdVBrZy9QaVNtbUNw dUR4ZVNtbS9JYTMyL1NtbVByb2ZpbGVBcmNoLmMgICAgfCAgIDIgKy0NCj4gPj4gICAgVWVmaUNw dVBrZy9QaVNtbUNwdUR4ZVNtbS9NcFNlcnZpY2UuYyAgICAgICAgICAgICAgfCAxMzIgLS0tLS0t LS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPj4gICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9Q aVNtbUNwdUR4ZVNtbS5jICAgICAgICAgfCAgIDggKysrKysrLQ0KPiAtDQo+ID4+ICAgIFVlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaCAgICAgICAgIHwgIDk3DQo+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysN Cj4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+ICAgIFVlZmlD cHVQa2cvUGlTbW1DcHVEeGVTbW0vUGlTbW1DcHVEeGVTbW0uaW5mICAgICAgIHwgICAxICsNCj4g Pj4gICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9TbW1DcHVNZW1vcnlNYW5hZ2VtZW50LmMg fCA2MjkNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+PiAgICBVZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1NtbVByb2ZpbGUuYyAgICAgICAgICAgICB8IDM0OA0KPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCj4gKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+ICAgIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0v WDY0L1BhZ2VUYmwuYyAgICAgICAgICAgIHwgMjI5DQo+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+PiAgICBVZWZp Q3B1UGtnL1BpU21tQ3B1RHhlU21tL1g2NC9TbW1GdW5jc0FyY2guYyAgICAgICB8ICAgMyArLS0N Cj4gPj4gICAgVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9YNjQvU21tUHJvZmlsZUFyY2guYyAg ICAgfCAgMTkgKystLS0tLS0tDQo+IC0tLS0tLS0tLS0NCj4gPj4gICAgVWVmaVBheWxvYWRQa2cv VWVmaVBheWxvYWRQa2cuZHNjICAgICAgICAgICAgICAgICAgfCAgIDIgKy0NCj4gPj4gICAgMTcg ZmlsZXMgY2hhbmdlZCwgNTEwIGluc2VydGlvbnMoKyksIDk3NyBkZWxldGlvbnMoLSkNCj4gPj4N Cj4gPg0KPiA+DQo+ID4gDQo+ID4NCj4gPg0K