From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.80876.1629447091328264260 for ; Fri, 20 Aug 2021 01:11:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=cuIJZqL0; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10081"; a="196315079" X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="196315079" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Aug 2021 01:11:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="506405557" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga001.jf.intel.com with ESMTP; 20 Aug 2021 01:11:29 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Fri, 20 Aug 2021 01:11:29 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) 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.2242.10; Fri, 20 Aug 2021 01:11:29 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Fri, 20 Aug 2021 01:11:29 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.172) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Fri, 20 Aug 2021 01:11:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JLGy4Xr5h8lb4w923g2z6ou6r1J62Ny8lPQnaPVKn8Wt4VZZOqBU20glRDz0xSg5OSbCLIJGSW0PAjNDOGvok3FIrjq1fPDaEvPXR5A0dijXWM//XkqHW7w0zpXLTTKYt9uYdm4Jw85+EWjiwStu8g/zLN6lVUxBqdnSjkJ3VPhOgPppQPA8tgVj6t/lztwgIzlGnjSA0DY3tdVakSRtYVLkFeKMFv3nKmSDbMdefOd4MWHPLwNE4ECUIhr+eiq8bEALf7IMVBGBfwgDl/8LkbFvELLRbx5DNgd4HCTT5vMMifau7yBTo77msyweZqy3dL5nBnOWQtt0QZdhGWAiRg== 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-SenderADCheck; bh=sgqUL42rem8KhNVFnlc1Zzctj92J9g12ezW/CetIdqI=; b=FPJGWJiw/n38LZf+jDBJFr6ndWFYfesS45WxeYDI4MclZzIfC+WSGzs7+7N0dETPU/HXgNf9bwD40MSPIeOjdKh5kUswYCaiAH+0mS32nTNlgIxz1fhwrftrCaUvprswhlGulNSDPbHiUBA4vq4EAr83FtD9YZBjUQplEfbDGKNZlIfbyeZ0/FQY/q0DdjvVgw1SszJHkUr/HixPk9K+bVvZ7z60JgkuLvd14vWFHThEq7TWh0tY9lkp/pdb2+vqEl3rX+BRssZEkLNyk0TXwZ/99DK4AO8wI0nrCeUFKLtpj4Xr8FCuTRzllQhRztjUscB1OygKxmjlqWjWABYelw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sgqUL42rem8KhNVFnlc1Zzctj92J9g12ezW/CetIdqI=; b=cuIJZqL0o+csn5vfsFMN5PKyJxWSk6Mbo4O/stBiJg6ehvslKdxafHxAAvjp5Z9AUr4+mJmknhvzEIhm/kxbjW9/XXxeRU4cHhNxCkLhAgDNIrGEhULl9dzSmsEOzEdw4nQuPfBY2yUIc0k0MpNzYrPS1P/UQg2umb2kFumu1wc= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by CO1PR11MB5075.namprd11.prod.outlook.com (2603:10b6:303:9e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Fri, 20 Aug 2021 08:11:02 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::c98d:a1f9:48a8:8865]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::c98d:a1f9:48a8:8865%6]) with mapi id 15.20.4436.019; Fri, 20 Aug 2021 08:11:02 +0000 From: "Ni, Ray" To: Michael Kubacki , "devel@edk2.groups.io" , "Yao, Jiewen" , "Chaganty, Rangasai V" Subject: Re: [edk2-devel] [edk2-platforms][PATCH v1 1/1] IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement Thread-Topic: [edk2-devel] [edk2-platforms][PATCH v1 1/1] IntelSiliconPkg/PeiSmmAccessLib: Remove S3 requirement Thread-Index: AQHXjSQn8KjI+iTiQ06ihTX377ndNKtrxnaAgAAyitCAAOelgIACdyDwgApQrYCAAHmKgIAAg6qwgABMqYCAAFjUAIAAzvNg Date: Fri, 20 Aug 2021 08:11:02 +0000 Message-ID: References: <20210809133938.2430-1-mikuback@linux.microsoft.com> <9a5c7c6b-70c5-c1c0-6405-51149013c295@linux.microsoft.com> <153f6512-b336-b328-e711-7444ea0a9bb9@linux.microsoft.com> In-Reply-To: <153f6512-b336-b328-e711-7444ea0a9bb9@linux.microsoft.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.100.41 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: linux.microsoft.com; dkim=none (message not signed) header.d=none;linux.microsoft.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6fc6e732-b5ab-4696-41d7-08d963b20d28 x-ms-traffictypediagnostic: CO1PR11MB5075: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B33xM5zqvCwejbZToda0GPLmxsS9xeeBnzlPpLrVzTMOnRlVq8W5ctnr34GjEm+DzWMKcjbjIFU3u5HFe1j+fUxFNklxs0BtKOVSkC2+npori5QH6R1Pb0VWr9nsoiS8C0whhEXvOV2w7e12u7vWrhDGGLhsi+VQKfFlz5DFyuIAxuNeJPuFQfW/bFNWqVCrPRfX1A0g/E7sLusj7Y92dBC0r0+o8S5/g966VlW9sQUdXWmlJ/N3RQmG4ALt/T6LtFLA1pV2l6aPFz3zuUbTm79939EBWfny6CoA6uBSC0go7rthigFfOo+EUGLwQyOflNqE0LrfkR4XsjaZC1Is9rsmgMwsbU5FqRvJsjfXwFfahrxEd0VagoXONZKE0SzjxLNeH90cn1pU+qxuIfZ8GNyP3bALe4RH5w84XABov9VdJyoyfiNLO8TO/8WkwnsUWNZT/4oHRjtTHi2muYUlwrrxR4LL+pVkVBLS7GW285jvK2klwKJca2Pzd2yAjM6DX4nx079QIeD1Ope8rcM0Sq2W5Hxz+m2t3048duaEkd2VU+GZWJvLZSTnlt8KMQk9JkwRY+GCTaTnCMOd79FSwYGs084AICvlDzdF272TwQ6EqjuACARp6Co68ww2q+S/gxp92eIbLdj74qYR87MFIdZ1httpW5UvTZ4H56LZe6f5qyzUL4Cc+Ol6HepIVMveY0z+w1wbra6q+LfVMkHIY/utE5Yo7XWqizHU/zfwwoHYuhr37W0OH1pbTkELXffSttWfk6BFAH2FuMINNwPJ1IUjoAo31c2TFtNTziKLxxWRgEymEE/XK/l0iF56iEQ09rC4wt5kcr2jxM/Db/EOsg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39860400002)(346002)(396003)(376002)(136003)(366004)(9686003)(110136005)(6506007)(6636002)(8936002)(53546011)(33656002)(316002)(5660300002)(8676002)(71200400001)(26005)(86362001)(83380400001)(186003)(30864003)(122000001)(66446008)(64756008)(478600001)(76116006)(38100700002)(55016002)(966005)(2906002)(7696005)(52536014)(66946007)(66476007)(38070700005)(66556008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VmNXRjQzNjJCWWVWVFNRRCtHaW41R052V1Y1Rlp1Q1NENnN6RFM3NEdGKytW?= =?utf-8?B?ZjQvazhZRFhSOUYzUkJ2bndncWozQWdEdTBSWVMzMUpTRFoxZ0RjUkFaRGtB?= =?utf-8?B?emdyQ3VIS3lhdzRwUEd3K01iZjdYSUtHbGRFZjNqSXEzUVY4YXBvMEhaOEd0?= =?utf-8?B?NnpyQzRiZ2hWNEdEZ3krc3NQUjlmVi8rVEVuUi9yVWdFelNXWFhhMHZ2UUox?= =?utf-8?B?Z2cycGsrOGt2citxUFNubHk1Q2tlOHM3eWs0eHRqd2FuSTM4YmZsTytrYjZk?= =?utf-8?B?anlMdENtTWZhZE9NS0JkVTZiYWZWdC9tOHplbVN0QmhjQ2s2MGJpVnZKS2R6?= =?utf-8?B?Q0JJdVNZS3A3RDZqbkRqc2paeHBVN0xkQUdTSTJBS0JKQmVLdXJxZzY2RUVu?= =?utf-8?B?QThUbjcvN3hXYWlvTmd1SExCNWhHb2MwTjhOVWlxQ2IwNDZoQWZ1NFBDMXVs?= =?utf-8?B?R2tsQnVvUFZMZFZsdVBnejZqclIvTTRmeEh2ZmZSdFk2ZFJrRVZ3Y3Fuc0pM?= =?utf-8?B?VjRHaVVxeDVuL1Fmd0lpbjBGeUQzaCtOaFMwODEzYnVjK3hzUFpnem1ubWND?= =?utf-8?B?dlZmYnl2TzByZTBBbWtRcjh2MnVWMVdDN0U2ZDVrSERhZEdFTXoraE9TRG5X?= =?utf-8?B?SDVZY08xZDAxZ1lWeE9ZOGE5ZmZtd2FuQlhhYkZHYjRmRlFUei9HSlNvdGhq?= =?utf-8?B?c21aOHV4WGQ1NG1sMmYxK3JxUlo4SlI1cllPaTF3VklDMVZOV0Q4SFpydUVR?= =?utf-8?B?S3BBeXZLdTBablBZaWgxTFArN0JGM3ljcysydU5mNXk0dHF4Q3FqVUtCRHNI?= =?utf-8?B?Yjd6RXFKWFE2Sk8zNzNhZHBLT3pwVGdBZFBLRzBUOUo1WUp5ZjU4L1J6TjBD?= =?utf-8?B?ZFlYOVg1a2dEYjI5SWhwTmFJeXFOdGRVWlN3bUxLZHZIOFozaGFNazh1SHZY?= =?utf-8?B?Nnc4cFE3UzZKWVlMd0JaYUVoQkYxRnFyNFUzbDFuaUEzODI3VUJxbGFld2Vy?= =?utf-8?B?VFc2RmJxYlZIY1BOaXZPanh3Y1loWEp3aUczM0x2ZGRGdFVmYjZHTDU0TWJ6?= =?utf-8?B?MDJxbFU5eEhIOU5ESlB2K1hWMVVhNFNpUTJqU3VzSUc5cHk1b28rKzFvQ1Zl?= =?utf-8?B?ZTdrUUR3Zko1OHhEMzJ3Rjd2QUJCTktNV0NERlJzb1JOeEljS1ZhT1NFdXhB?= =?utf-8?B?YWEyZFJIakM3STY3cWZPczIrWGJGbEg4WVgxYTFyZTlsY0s0SEY1NEJjblJU?= =?utf-8?B?K251Wk9oWnQrZ0wxY29UU3RkUWxWSFZVNWxGQlk3eWRmdGNsN0NMVUc0U2xo?= =?utf-8?B?WkFOcTlMaml0RXEweGZIdEN6V3FoY2YvUlA2Y2U5bG1GU2hRT0J5WjJKUlg5?= =?utf-8?B?Z2dVMnVnNk1CWkVjYXMvc1QrTENNL1F0MjJtdEp6azhjQUIxTytSVy82cFE0?= =?utf-8?B?Y1o5dFpIYkZWQWdnK2pIM3ppQkpGRTZTcEd1OXFaaHF2QSs4WXVVb1JqR0gv?= =?utf-8?B?VlVlUjV6N2xsdGdUS2FNbTQwVnNKUk9YeG1YMEdiRWlJMkhFaXRNOHo4OFY0?= =?utf-8?B?ZHZMMGdVN0pYTXhYc2dQMnBYeU1lTExjK2I3LzB0Nlk5N1R3V1Q2RHJycnlh?= =?utf-8?B?cDlkQ3owZ0RQMnBEbm41b0NabDlTYkYvOUFQeFU0Q3c5YVRYa2didHV4K0Fx?= =?utf-8?B?MmpRZTBTeTFYUFVCOGt0Kzc2RlFGU3Y1eUFER3p6bXFNWHdzQjZXVXVBdGVn?= =?utf-8?Q?2iy21iINMbC19CGVgRbFELFpJW7ekyh4TOVDycC?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6fc6e732-b5ab-4696-41d7-08d963b20d28 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2021 08:11:02.4661 (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: 8aGq32CleE+Swg4IK2mUaW4RUIYORccZg9FEnHshwUD04z2cFvamNatJXj6CPfLXeZr2G1MYWVg3m1DXTCE5BA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5075 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 TWljaGFlbCwNCkkgYW0gb2sgd2l0aCB0aGUgY2hhbmdlIHRoYXQgcmVtb3ZlcyBTMyBjaGVjay4g SSBhbHNvIGNvbmZpcm1lZCB0aGF0IEppZXdlbidzIGNvbmNlcm4gYWJvdXQgaW5jb25zaXN0ZW50 IFNNUkFNIHN0YXRlIGRvZXNuJ3QgZXhpc3QuDQoNClJldmlld2VkLWJ5OiBSYXkgTmkgPHJheS5u aUBpbnRlbC5jb20+DQoNCkkgYWdyZWUgd2l0aCB5b3UgdGhhdCBjb252ZXJ0aW5nIHRoaXMgbGli IHRvIGEgUEVJTSBpcyBiZXR0ZXIuDQoNClRoYW5rcywNClJheQ0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IE1pY2hhZWwgS3ViYWNraSA8bWlrdWJhY2tAbGludXgubWlj cm9zb2Z0LmNvbT4NCj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMjAsIDIwMjEgMzo0NSBBTQ0KPiBU bzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkgVg0KPiA8 cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW2VkazItcGxhdGZvcm1zXVtQQVRDSCB2MSAxLzFdIEludGVsU2lsaWNvblBrZy9QZWlTbW1B Y2Nlc3NMaWI6IFJlbW92ZSBTMyByZXF1aXJlbWVudA0KPiANCj4gUmF5LA0KPiANCj4gSW4gdGhl IGVuZCwgUEkgbW9kdWxlcyBhcmUgYWxsb3dlZCB0byBkZXBlbmQgb24gbm9uLWRlcHJlY2F0ZWQg UEkgUFBJcy4NCj4gVGhlIHNjb3BlIG9mIHRoaXMgY2hhbmdlIGlzIGFib3V0IHRoZSBBUEkgdGhh dCBpbnN0YWxscyB0aGUgUFBJLiBTbyBJIGRvDQo+IG5vdCB3YW50IHRvIGRpdmVyZ2UgdGhlIGNv bnZlcnNhdGlvbiBhYm91dCBjaGFuZ2luZyBvdGhlciBjb2RlIHRvIGF2b2lkDQo+IHRoZSBQUEku DQo+IA0KPiBJJ3ZlIGFscmVhZHkgYmVlbiB3YWl0aW5nIHNpbmNlIEFwcmlsIHRvIGdldCBvdGhl ciBJbnRlbFNpbGljb25Qa2cNCj4gY2hhbmdlcyBtZXJnZWQgKGh0dHBzOi8vZWRrMi5ncm91cHMu aW8vZy9kZXZlbC9tZXNzYWdlLzc4NjAwKSBhbmQgSQ0KPiB3b3VsZCBsaWtlIHRvIGtlZXAgdGhp cyBjb252ZXJzYXRpb24gZm9jdXNlZCBvbiB0aGUgcGF0Y2guDQo+IA0KPiBUaGlzIGNvbnZlcnNh dGlvbiBoYXMgdGFrZW4gc2V2ZXJhbCB0YW5nZW50cyBhcyBJIHRyaWVkIHRvIGNsZWFyIHVwIGlu DQo+IHRoaXMgbWVzc2FnZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2Uv Nzk1NDQuIEkgZGlkIG5vdA0KPiBzZWUgYSByZXNwb25zZSwgcGxlYXNlIHJlYWQgdGhhdCBpZiB5 b3UgaGF2ZSBub3QuDQo+IA0KPiBUaGUgbWFpbnRhaW5hYmlsaXR5IGlzc3VlcyBvZiB0aGUgY29k ZSBoYXZlIGJlY29tZSBldmlkZW50LiBUaGUgY29kZSBpcw0KPiBjb3VwbGluZyB1bm5lY2Vzc2Fy eSBhc3N1bXB0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGFuZCB0aGF0IGlzIGluY3JlYXNpbmcNCj4g dGhlIGRpZmZpY3VsdHkgb2YgdW5kZXJzdGFuZGluZyBhbmQgbW9kaWZ5aW5nIHRoZSBjb2RlLg0K PiANCj4gVGhlIGdvYWwgb2YgdGhpcyBjaGFuZ2Ugd2FzIGZvciB0aGUgUGVpSW5zdGFsbFNtbUFj Y2Vzc1BwaSgpIGZ1bmN0aW9uIHRvDQo+IHNpbXBseSBpbnN0YWxsIHRoZSBQUEkgd2l0aG91dCB0 aGUgYm9vdCBtb2RlIGJlaW5nIEJPT1RfT05fUzNfUkVTVU1FDQo+IHdoaWNoIGl0IGFscmVhZHkg ZG9jdW1lbnRzIHNob3VsZCBiZSB0aGUgY2FzZS4NCj4gDQo+IEJlY2F1c2UgdGhlIGV4aXN0aW5n IGNvZGUgYXR0ZW1wdGVkIHRvIGNvdXBsZSBwbGF0Zm9ybSBkZXNpZ24NCj4gYXNzdW1wdGlvbnMg aW50byBhIGdlbmVyaWMgc2lsaWNvbiBwYWNrYWdlLCB3ZSBoYWQgdG8gdGFsayBhYm91dDoNCj4g DQo+IC0gSGlzdG9yaWNhbCBwbGF0Zm9ybSBTMyByZXF1aXJlbWVudHMNCj4gLSBJbnRlcmZhY2Ug ZG9jdW1lbnRhdGlvbiB0aGF0IGlzIGluYWNjdXJhdGUNCj4gLSBDbGFyaWZpY2F0aW9uIGFyb3Vu ZCBzZWN1cml0eSBhbWJpZ3VpdHkgYW5kIGltcGxpY2F0aW9ucyB0byBtb2RpZnlpbmcNCj4gdGhl IGltcGxlbWVudGF0aW9uDQo+IC0gR2VuZXJhbCBkZXBlbmRlbmNpZXMgZm9yIFN0YW5kYWxvbmUg TU0NCj4gLSBQb3RlbnRpYWwgc3luY2hyb25pemF0aW9uIGlzc3VlcyBiZXR3ZWVuIHRoZSBQSSBT cGVjIGRlZmluZWQNCj4gaW50ZXJmYWNlcyBFRklfU01BUkFNX0hPQl9ERVNDUklQVE9SX0JMT0NL IGFuZCBFRklfUEVJX01NX0FDQ0VTU19QUEkNCj4gLSBUaGUgcm9sZSBvZiBNTSBBY2Nlc3MgUFBJ IGluIG90aGVyIGFyY2hpdGVjdHVyZSBib290IGZsb3dzDQo+IA0KPiBJbiB0aGUgcHJvY2Vzcywg c29tZSBvZiB0aGVzZSB0b3BpY3MgZGlkIHlpZWxkIGlzc3VlcyBmb3IgZm9sbG93IHVwOg0KPiAN Cj4gMS4gVGhlIGRvY3VtZW50YXRpb24gaW50ZXJmYWNlIHNob3VsZCBhY2N1cmF0ZWx5IHJlZmxl Y3QgYWN0dWFsIGJlaGF2aW9yLg0KPiAyLiBUaGUgcG90ZW50aWFsIHN5bmNocm9uaXphdGlvbiBp c3N1ZSBzaG91bGQgYmUgYmV0dGVyIHVuZGVyc3Rvb2QgYW5kDQo+IHJlc29sdmVkLiBOb3RlIHRo YXQgdGhpcyBpc3N1ZSBpcyBub3Qgc3BlY2lmaWMgdG8gbm9uLVMzIGZsb3dzLiBQRUlNcyBvbg0K PiBTMyBmbG93cyBjb3VsZCBlYXNpbHkgcmVhZCB0aGUgSE9CLg0KPiANCj4gQlogZm9yIDE6IGh0 dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU3NQ0KPiBCWiBm b3IgMjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTc2 DQo+IA0KPiBJdCBhbHNvIHNlZW1zIHRoZSBsaWJyYXJ5IHdvdWxkIGJlIGJldHRlciBhcyBhIFBF SU0gYnV0IHRoYXQncyBhbm90aGVyDQo+IHRvcGljLg0KPiANCj4gVGhhbmtzLA0KPiBNaWNoYWVs DQo+IA0KPiBPbiA4LzE5LzIwMjEgMTA6MjcgQU0sIFlhbywgSmlld2VuIHdyb3RlOg0KPiA+IERv IHlvdSB3YW50IHRvIG9wZW4vY2xvc2UvbG9jayBTTVJBTT8gSWYgeWVzLCB0aGVuIHlvdSBuZWVk IFBQSS4NCj4gPiBJZiBubywgdGhlbiB5b3UgZG9u4oCZdCBuZWVkIFBQSS4gSG9iIHNob3VsZCBi ZSBlbm91Z2ggdG8gcHJvdmlkZSBzdWNoIGluZm8uDQo+ID4NCj4gPiBUaGFuayB5b3UNCj4gPiBZ YW8gSmlld2VuDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4gU2VudDogVGh1cnNkYXksIEF1Z3Vz dCAxOSwgMjAyMSA2OjAyIFBNDQo+ID4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRl bC5jb20+OyBNaWNoYWVsIEt1YmFja2kNCj4gPj4gPG1pY2hhZWwua3ViYWNraUBvdXRsb29rLmNv bT47IGRldmVsQGVkazIuZ3JvdXBzLmlvOw0KPiA+PiBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQu Y29tOyBDaGFnYW50eSwgUmFuZ2FzYWkgVg0KPiA+PiA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRl bC5jb20+DQo+ID4+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW2VkazItcGxhdGZvcm1zXVtQ QVRDSCB2MSAxLzFdDQo+ID4+IEludGVsU2lsaWNvblBrZy9QZWlTbW1BY2Nlc3NMaWI6IFJlbW92 ZSBTMyByZXF1aXJlbWVudA0KPiA+Pg0KPiA+PiBKaWV3ZW4sDQo+ID4+IFdlIGhhdmUgTW1BY2Nl c3MgUFBJIGFuZCBnRWZpTW1QZWlTbXJhbU1lbW9yeVJlc2VydmVHdWlkIEhPQi4NCj4gPj4NCj4g Pj4gSWYgU3RhbmRhbG9uZSBJUEwgY2FuIGdldCB0aGUgU01SQU0gcmFuZ2UgZnJvbSB0aGUgSE9C LCB3aGF0J3MgdGhlIHB1cnBvc2UNCj4gPj4gb2YgTW1BY2Nlc3MgUFBJPw0KPiA+Pg0KPiA+PiBY ODYgc2lsaWNvbiBkb2Vzbid0IHJlbHkgb24gTW1BY2Nlc3MuQ2xvc2UvTG9jayB0byBjbG9zZSBT TVJBTSBhbnltb3JlLg0KPiA+PiBEb2VzIEFSTSBuZWVkPw0KPiA+Pg0KPiA+PiBNaWNoYWVsLA0K PiA+PiBIYXZlIHlvdSBjb25zaWRlcmVkIHRvIHJlbW92ZSB0aGUgZGVwIG9uIE1tQWNjZXNzIFBQ SSBmcm9tIHN0YW5kYWxvbmUgTU0/DQo+ID4+DQo+ID4+IFRoYW5rcywNCj4gPj4gUmF5DQo+ID4+ DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFlhbywgSmlld2Vu IDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAxOSwg MjAyMSAxMDowMiBBTQ0KPiA+PiBUbzogTWljaGFlbCBLdWJhY2tpIDxtaWNoYWVsLmt1YmFja2lA b3V0bG9vay5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gPj4gTmksIFJheSA8cmF5Lm5p QGludGVsLmNvbT47IG1pa3ViYWNrQGxpbnV4Lm1pY3Jvc29mdC5jb207IENoYWdhbnR5LA0KPiA+ PiBSYW5nYXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gPj4gU3ViamVj dDogUkU6IFtlZGsyLWRldmVsXSBbZWRrMi1wbGF0Zm9ybXNdW1BBVENIIHYxIDEvMV0NCj4gPj4g SW50ZWxTaWxpY29uUGtnL1BlaVNtbUFjY2Vzc0xpYjogUmVtb3ZlIFMzIHJlcXVpcmVtZW50DQo+ ID4+DQo+ID4+IFRoZSBoaXN0b3J5IHdhcyB0aGF0IHdlIGRpZG7igJl0IG5lZWQgTW1BY2Nlc3NQ ZWkgd2l0aG91dCBTMy4NCj4gPj4gTW1BY2Nlc3NQZWkgd2FzIGFkZGVkIGZvciBTMyByZXN1bWUg cHVycG9zZSBvbmx5Lg0KPiA+Pg0KPiA+PiBUb2RheSwgaWYgdGhlcmUgaXMgcmVhbCB1c2UgY2Fz ZSB0byByZWx5IG9uIE1tQWNjZXNzUGVpIGluIG5vcm1hbCBib290IHBhdGguDQo+ID4+IFRoZW4g d2UgY2FuIGFkZCBpdC4NCj4gPj4NCj4gPj4gSSBjb3VsZCBzZWUgdGhlIHBvdGVudGlhbCBpbXBh Y3QgaXM6IElmIE1tQWNjZXNzUGVpIGNoYW5nZXMgdGhlIFNNUkFNDQo+ID4+IGF0dHJpYnV0ZSBp biBub3JtYWwgYm9vdCBwYXRoLCBpdCBNVVNUIGJlIHJlZmxlY3RlZCBpbiB0aGUgU21yYW1Ib2Iu IE90aGVyd2lzZSwNCj4gPj4gdGhlcmUgaXMgaW5jb25zaXN0ZW5jeSBpc3N1ZSBpbiBQRUkvRFhF LCB3aGVuIERYRSBjb25zdW1lcyB0aGUgU21yYW1Ib2IuDQo+ID4+IFRoaXMgaXMgTk9UIHJlcXVp cmVkIGluIFMzLCBiZWNhdXNlIHdlIGRvbuKAmXQgcnVuIERYRSBpbiBTMyBwYXRoLg0KPiA+Pg0K PiA+PiBUaGFuayB5b3UNCj4gPj4gWWFvIEppZXdlbg0KPiA+Pg0KPiA+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4+IEZyb206IE1pY2hhZWwgS3ViYWNraSA8bWljaGFlbC5rdWJh Y2tpQG91dGxvb2suY29tPg0KPiA+Pj4gU2VudDogVGh1cnNkYXksIEF1Z3VzdCAxOSwgMjAyMSAy OjQ3IEFNDQo+ID4+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IE5pLCBSYXkgPHJheS5uaUBp bnRlbC5jb20+Ow0KPiA+Pj4gbWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbTsgQ2hhZ2FudHks IFJhbmdhc2FpIFYNCj4gPj4+IDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT47IFlhbywg Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT4NCj4gPj4+IFN1YmplY3Q6IFJlOiBbZWRrMi1k ZXZlbF0gW2VkazItcGxhdGZvcm1zXVtQQVRDSCB2MSAxLzFdDQo+ID4+PiBJbnRlbFNpbGljb25Q a2cvUGVpU21tQWNjZXNzTGliOiBSZW1vdmUgUzMgcmVxdWlyZW1lbnQNCj4gPj4+DQo+ID4+PiBK aWV3ZW4vU2FpLCBhcmUgeW91IHRoaW5raW5nIGFib3V0IHRoaXM/DQo+ID4+Pg0KPiA+Pj4gVGhh bmtzLA0KPiA+Pj4gTWljaGFlbA0KPiA+Pj4NCj4gPj4+IE9uIDgvMTIvMjAyMSAxOjIwIEFNLCBO aSwgUmF5IHdyb3RlOg0KPiA+Pj4+IE1pY2hhZWwsDQo+ID4+Pj4gSSBuZWVkIEppZXdlbidzIGlu cHV0IG9uIHdoeSBNbUFjY2VzcyBhbmQgTW1Db21tdW5pY2F0aW9uIFBQSXMgd2VyZQ0KPiA+Pj4+ IG5vdA0KPiA+Pj4gaW5zdGFsbGVkIGluIG5vcm1hbCBib290IHBhdGguIFdpdGhvdXQgdW5kZXJz dGFuZGluZyB0aGUgcmVhc29uLCBJDQo+ID4+PiBkb24ndCBoYXZlIGNvbmZpZGVuY2UgdG8gYXBw cm92ZSB0aGUgY2hhbmdlLg0KPiA+Pj4+DQo+ID4+Pj4gU2FpLA0KPiA+Pj4+IERvIHlvdSBzZWUg b3RoZXIgaW1wYWN0cyB0byBJbnRlbCBwbGF0Zm9ybXMgd2l0aCB0aGlzIGJlaGF2aW9yIGNoYW5n ZT8NCj4gPj4+Pg0KPiA+Pj4+IFRoYW5rcywNCj4gPj4+PiBSYXkNCj4gPj4+Pg0KPiA+Pj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMu aW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPj4+PiBNaWNoYWVsDQo+ ID4+PiBLdWJhY2tpDQo+ID4+Pj4gU2VudDogVHVlc2RheSwgQXVndXN0IDEwLCAyMDIxIDExOjM2 IFBNDQo+ID4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPjsgQ2hhZ2FudHksDQo+ID4+Pj4gUmFuZ2FzYWkgVg0KPiA+Pj4gPHJhbmdhc2FpLnYu Y2hhZ2FudHlAaW50ZWwuY29tPg0KPiA+Pj4+IENjOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0Bp bnRlbC5jb20+DQo+ID4+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbZWRrMi1wbGF0Zm9y bXNdW1BBVENIIHYxIDEvMV0NCj4gPj4+IEludGVsU2lsaWNvblBrZy9QZWlTbW1BY2Nlc3NMaWI6 IFJlbW92ZSBTMyByZXF1aXJlbWVudA0KPiA+Pj4+DQo+ID4+Pj4gSW5zdGFsbGF0aW9uIGlzIGEg cGxhdGZvcm0gZGVjaXNpb24uIFRoZSBidXJpZWQgZGVwZW5kZW5jeSBvbiBib290DQo+ID4+Pj4g bW9kZSBpbiB0aGlzDQo+ID4+PiBwYXJ0aWN1bGFyIGZ1bmN0aW9uIGlzIGp1c3QgYSByb2FkYmxv Y2sgcGxhdGZvcm1zIGhhdmUgdG8gd29yayBhcm91bmQuDQo+ID4+PiBUaGUgcm9sZSBvZiB0aGlz IEFQSSBpcyB0byBpbnN0YWxsIHRoZSBQUEkuDQo+ID4+Pj4NCj4gPj4+PiBUaGFua3MsDQo+ID4+ Pj4gTWljaGFlbA0KPiA+Pj4+DQo+ID4+Pj4gT24gOC85LzIwMjEgOTo0NyBQTSwgTmksIFJheSB3 cm90ZToNCj4gPj4+Pj4gTWljaGFlbCwNCj4gPj4+Pj4gQWxsb3dpbmcgdGhlIGdQZWlTbW1BY2Nl c3NQcGlHdWlkIFBQSSBpbnN0YWxsYXRpb24gaW4gbm9ybWFsIGJvb3QNCj4gPj4+Pj4gd2lsbCBm dXJ0aGVyIGFsbG93IGdFZmlQZWlTbW1Db21tdW5pY2F0aW9uUHBpR3VpZCBpbnN0YWxsYXRpb24g aW4NCj4gPj4+Pj4gbm9ybWFsIHBhdGgsDQo+ID4+PiB3aGlsZSB3aXRob3V0IHlvdXIgY2hhbmdl IG5laXRoZXIgb2YgdGhlIFBQSXMgaXMgaW5zdGFsbGVkIGluIG5vcm1hbCBib290Lg0KPiA+Pj4+ Pg0KPiA+Pj4+PiArIEppZXdlbiBmb3IgcG90ZW50aWFsIHNlY3VyaXR5IGNvbmNlcm4uDQo+ID4+ Pj4+DQo+ID4+Pj4+IFRoYW5rcywNCj4gPj4+Pj4gUmF5DQo+ID4+Pj4+DQo+ID4+Pj4+PiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJvbTogQ2hhZ2FudHksIFJhbmdhc2Fp IFYgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KPiA+Pj4+Pj4gU2VudDogVHVlc2Rh eSwgQXVndXN0IDEwLCAyMDIxIDY6NDYgQU0NCj4gPj4+Pj4+IFRvOiBtaWt1YmFja0BsaW51eC5t aWNyb3NvZnQuY29tOyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+Pj4+Pj4gQ2M6IE5pLCBSYXkg PHJheS5uaUBpbnRlbC5jb20+DQo+ID4+Pj4+PiBTdWJqZWN0OiBSRTogW2VkazItcGxhdGZvcm1z XVtQQVRDSCB2MSAxLzFdDQo+ID4+Pj4+PiBJbnRlbFNpbGljb25Qa2cvUGVpU21tQWNjZXNzTGli OiBSZW1vdmUgUzMgcmVxdWlyZW1lbnQNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBSZXZpZXdlZC1ieTog U2FpIENoYWdhbnR5IDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gPj4+Pj4+DQo+ ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJvbTogbWlrdWJh Y2tAbGludXgubWljcm9zb2Z0LmNvbSA8bWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbT4NCj4g Pj4+Pj4+IFNlbnQ6IE1vbmRheSwgQXVndXN0IDA5LCAyMDIxIDY6NDAgQU0NCj4gPj4+Pj4+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+Pj4+Pj4gQ2M6IE5pLCBSYXkgPHJheS5uaUBpbnRl bC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkgVg0KPiA+Pj4+Pj4gPHJhbmdhc2FpLnYuY2hhZ2Fu dHlAaW50ZWwuY29tPg0KPiA+Pj4+Pj4gU3ViamVjdDogW2VkazItcGxhdGZvcm1zXVtQQVRDSCB2 MSAxLzFdDQo+ID4+Pj4+PiBJbnRlbFNpbGljb25Qa2cvUGVpU21tQWNjZXNzTGliOiBSZW1vdmUg UzMgcmVxdWlyZW1lbnQNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBGcm9tOiBNaWNoYWVsIEt1YmFja2kg PG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29tPg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFJFRjpo dHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM1MzkNCj4gPj4+ Pj4+DQo+ID4+Pj4+PiBQZWlJbnN0YWxsU21tQWNjZXNzUHBpKCkgY3VycmVudGx5IHJlcXVpcmVz IHRoZSBib290IG1vZGUgYmUgc2V0DQo+ID4+Pj4+PiB0byBTMyB0bw0KPiA+Pj4gYWN0dWFsbHkg aW5zdGFsbCBnRWZpUGVpTW1BY2Nlc3NQcGlHdWlkLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFRoaXMg Y2hhbmdlIHJlbW92ZXMgdGhpcyByZXF1aXJlbWVudCBpbiB0aGUgZnVuY3Rpb24NCj4gPj4+Pj4+ IGltcGxlbWVudGF0aW9uIGZvcg0KPiA+Pj4gdHdvIHJlYXNvbnM6DQo+ID4+Pj4+Pg0KPiA+Pj4+ Pj4gMS4gUHJhY3RpY2FsIHVzZSBjYXNlcyBleGlzdCB0byByZXF1aXJlIHRoaXMgUFBJIGluIGNh c2VzIG90aGVyIHRoYW4NCj4gPj4+Pj4+ICAgICAgIHRoZSBib290IG1vZGUgYmVpbmcgc2V0IHRv IEJPT1RfT05fUzNfUkVTVU1FLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IDIuIEl0IGlzIHBvb3IgQVBJ IGRlc2lnbiB0byBpbXBsaWNpdGx5IGJ1cnkgdGhpcyByZXF1aXJlbWVudCB3aXRoaW4NCj4gPj4+ Pj4+ICAgICAgIGEgZnVuY3Rpb24gd2hvc2UgcmVzcG9uc2liaWxpdHkgaXMgdG8gaW5zdGFsbCB0 aGUgUFBJLiBUaGUgY2FsbGVyDQo+ID4+Pj4+PiAgICAgICBjYW4gZWFzaWx5IHBsYWNlIGFyYml0 cmFyeSBjb25zdHJhaW50cyBhcm91bmQgd2hldGhlciB0byBjYWxsDQo+ID4+Pj4+PiAgICAgICBi YXNlZCBvbiBjb25kaXRpb25zIHN1Y2ggYXMgdGhlIGJvb3QgbW9kZSBiZWluZw0KPiA+Pj4+Pj4g ICAgICAgQk9PVF9PTl9TM19SRVNVTUUuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQ2M6IFJheSBOaSA8 cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+Pj4+IENjOiBSYW5nYXNhaSBWIENoYWdhbnR5IDxyYW5n YXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE1pY2hh ZWwgS3ViYWNraSA8bWljaGFlbC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+ID4+Pj4+PiAtLS0N Cj4gPj4+Pj4+DQo+ID4+PiBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1Nt bUFjY2Vzcy9MaWJyYXJ5L1BlaVNtbUFjY2Vzc0xpDQo+ID4+PiBiL1BlaVMNCj4gPj4+IG1tQWNj ZXNzTGliLmMgfCAxMiAtLS0tLS0tLS0tLS0NCj4gPj4+Pj4+ICAgICAxIGZpbGUgY2hhbmdlZCwg MTIgZGVsZXRpb25zKC0pDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+Pj4+Pj4g YS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL1NtbUFjY2Vzcy9MaWJyYXJ5 L1BlaVNtbUFjDQo+ID4+Pj4+PiBjZXMNCj4gPj4+Pj4+IHNMaWIvUGVpU21tQWNjZXNzTGliLmMN Cj4gPj4+Pj4+IGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9TbW1BY2Nl c3MvTGlicmFyeS9QZWlTbW1BYw0KPiA+Pj4+Pj4gY2VzIHNMaWIvUGVpU21tQWNjZXNzTGliLmMg aW5kZXggZDliZjRmYmE5ODNlLi40ZGYwZDY5NWZkYWYgMTAwNjQ0DQo+ID4+Pj4+PiAtLS0NCj4g Pj4+Pj4+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9TbW1BY2Nlc3Mv TGlicmFyeS9QZWlTbW1BYw0KPiA+Pj4+Pj4gY2VzDQo+ID4+Pj4+PiBzTGliL1BlaVNtbUFjY2Vz c0xpYi5jDQo+ID4+Pj4+PiArKysgYi9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0 dXJlL1NtbUFjY2Vzcy9MaWJyYXJ5L1BlaVMNCj4gPj4+Pj4+ICsrKyBtbUENCj4gPj4+Pj4+ICsr KyBjY2UNCj4gPj4+Pj4+ICsrKyBzc0xpYi9QZWlTbW1BY2Nlc3NMaWIuYw0KPiA+Pj4+Pj4gQEAg LTI1MiwxOSArMjUyLDcgQEAgUGVpSW5zdGFsbFNtbUFjY2Vzc1BwaSAoDQo+ID4+Pj4+PiAgICAg ICBFRklfU01SQU1fSE9CX0RFU0NSSVBUT1JfQkxPQ0sgICpEZXNjcmlwdG9yQmxvY2s7DQo+ID4+ Pj4+PiAgICAgICBTTU1fQUNDRVNTX1BSSVZBVEVfREFUQSAgICAgICAgICpTbW1BY2Nlc3NQcml2 YXRlOw0KPiA+Pj4+Pj4gICAgICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqSG9i TGlzdDsNCj4gPj4+Pj4+IC0gIEVGSV9CT09UX01PREUgICAgICAgICAgICAgICAgICAgQm9vdE1v ZGU7DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gLSAgU3RhdHVzID0gUGVpU2VydmljZXNHZXRCb290TW9k ZSAoJkJvb3RNb2RlKTsNCj4gPj4+Pj4+IC0gIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4g Pj4+Pj4+IC0gICAgLy8NCj4gPj4+Pj4+IC0gICAgLy8gSWYgbm90IGluIFMzIGJvb3QgcGF0aC4g ZG8gbm90aGluZw0KPiA+Pj4+Pj4gLSAgICAvLw0KPiA+Pj4+Pj4gLSAgICByZXR1cm4gRUZJX1NV Q0NFU1M7DQo+ID4+Pj4+PiAtICB9DQo+ID4+Pj4+PiAtDQo+ID4+Pj4+PiAtICBpZiAoQm9vdE1v ZGUgIT0gQk9PVF9PTl9TM19SRVNVTUUpIHsNCj4gPj4+Pj4+IC0gICAgcmV0dXJuIEVGSV9TVUND RVNTOw0KPiA+Pj4+Pj4gLSAgfQ0KPiA+Pj4+Pj4gICAgICAgLy8NCj4gPj4+Pj4+ICAgICAgIC8v IEluaXRpYWxpemUgcHJpdmF0ZSBkYXRhDQo+ID4+Pj4+PiAgICAgICAvLw0KPiA+Pj4+Pj4gLS0N Cj4gPj4+Pj4+IDIuMjguMC53aW5kb3dzLjENCj4gPj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4NCj4g Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+DQo+ID4NCj4gPiANCj4g Pg0KPiA+DQo=