From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web11.19058.1675957656870145304 for ; Thu, 09 Feb 2023 07:47:37 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=X5Kld3jC; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675957656; x=1707493656; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=LMmrX5+fib6TzR/B7fXzZKhEmKxOaBic77vsoQKCbQU=; b=X5Kld3jCJzpUJZOlETxBK4y+NGtzBY07RjC248JHeeeeZq9npzVxKA9k mBP08HLcZtbEgTjgf2Y0FUBjHgYJBm1SpWDdM9jOFXIvA/5/iz1DEYOx/ 9XLDCd7oi7HK9hsjP5eGYNn7r0pubhG/AjbLFh8kjiCSCb+EEDDZxrHNL OABXU1hIBjHzK+w2JTojpXBE7kWt7C8aRFXOanDIrOKU+a8oLkIq/0CHT J1hW9yaZhaJgdzP87RJ/AqOrj7en6ZV4jNINgwBs8dZiNxAOC7YAC2lnj 9e+MitWpjKME99YhOtZWtIXOaTAPAvHHoV1tpqZdsu7A0h2XrUx38Q7D1 g==; X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="357543703" X-IronPort-AV: E=Sophos;i="5.97,284,1669104000"; d="scan'208";a="357543703" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Feb 2023 07:47:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="731363164" X-IronPort-AV: E=Sophos;i="5.97,284,1669104000"; d="scan'208";a="731363164" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP; 09 Feb 2023 07:47:20 -0800 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.16; Thu, 9 Feb 2023 07:47:20 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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.16 via Frontend Transport; Thu, 9 Feb 2023 07:47:20 -0800 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.43) 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.16; Thu, 9 Feb 2023 07:47:19 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U6fssg0+C+TmBbqtcUjol0myoUMt2upWgufnuaaCSsgGQ86KFXdT1FBUoUNmfu7je9bObnX0CF2ni9Sw7hsFsykDvWmlDar1A7vd8hrLCs/ciSH+xGSxw47UpXRB8eBffFDalfpFqLmLmg/k9UKCUN7/ArbpO64JOYR8ks5/Av6GCSIn8YNL315xEYhBKcwS+wgAfxAD/fP/gQuIe7SqtvySmd/KZocgy5/hQhSa0J/dyAJTpsIh+opa+Zf+O50JDxqTsQn0lEo/am6M+zYbYSEVD2ukPdgaSS5gbkRixxgom2PrGy9lSe0RQhHKBtKUMDpqpPBA4OYTkMi4StJEnA== 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=LMmrX5+fib6TzR/B7fXzZKhEmKxOaBic77vsoQKCbQU=; b=awTU6V4rlpAH+JDfaLYpgOSXb7eYD5V3xyOPUkLHpNWJiPxL77keZBIaVdtbS5IOfcnZNWIHzNGkYWOaupRePbipVIbHZdgI0EM//Yy49AQ6OGmQYo+PrBHjFuwNS7pqN+j2rDqls66K+Lf+K9S8tgYGbLtWx5DIRgDc46WQdk3Xdp1W6Y4ADvV7oTaEbZKuE0RPZfDiaJqHI1y4bJKrxXA6ZAjXBeEZpkWP9aKF0gyOj1H9a2D2xQZAi5zxohQaqo1ZcbvuUVeV+EUxvqMSekXhLHzXlbAF/PmtHTPpbF/UZDM8+ipn4sFX8bbEo0aMuDVqCrtc1Ey0thkVrRimbQ== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by SN7PR11MB6702.namprd11.prod.outlook.com (2603:10b6:806:269::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Thu, 9 Feb 2023 15:47:14 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68%7]) with mapi id 15.20.6086.019; Thu, 9 Feb 2023 15:47:14 +0000 From: "Michael D Kinney" To: Sunil V L , "devel@edk2.groups.io" CC: "Gao, Liming" , "Liu, Zhiguang" , Abner Chang , "Kinney, Michael D" Subject: Re: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V7 03/20] MdePkg: Add BaseRiscVSbiLib Library for RISC-V Thread-Topic: [edk2-devel] [edk2-staging/RiscV64QemuVirt PATCH V7 03/20] MdePkg: Add BaseRiscVSbiLib Library for RISC-V Thread-Index: AQHZM01XBrJ8kPdYlUK+QcpFNnx0ga7F6ZKwgABdVgCAAI3UsA== Date: Thu, 9 Feb 2023 15:47:13 +0000 Message-ID: References: <20230128191807.2080547-1-sunilvl@ventanamicro.com> <20230128191807.2080547-4-sunilvl@ventanamicro.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: CO1PR11MB4929:EE_|SN7PR11MB6702:EE_ x-ms-office365-filtering-correlation-id: fa8dd322-26cc-410f-03fc-08db0ab4e9d4 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: 1tTXwhahd6+el9i73pXXwauevsmG78bFS9WTNava6GrzmYH30CywY/DRErEp/W79QNrcVnlb5My3/atj/deEk+UWAku88hCLCOx6Le5LkBa+YdNrRCrFFbfw1n7AOk2QPtfqXOxJPxt0dV1WORR5gaTfUpNxgR/K0uqEGgcu956A8bqem0FAg0pytjlhGtM+iB0q7GbKVCPVuhEnW8vVDY7jiuTb64WWgtoprhwgR/FQukimC+O1uNucCb4Ok+zGu5/RB7JOvpV45bdSwB4qi6aIrT9M8ZYcAbdzQNJdUwFtd1pLVpKN5vGFb/cvNlTA2g2KifQ4b0/0w+lRw5wRghzXXzaA7ef6W94ruGFRTqQRSSYaosKq5MOVUzPo3VBEw8A+1yvOsnydaplI57x2aP9UUNTavh3bDTPnj4giyf2sRWWGAPqg+qaVpwP5RBYAbIOk8Z/FUEJgdXzJKWkh1ZHFYiPSMqXcqaNrNJ52frBkMaqUxYrEZchbtch6FItu+2rEQbt3qXp32ID5C93FOPoyxJ7pSVUsdhKvLcXl3Y3v0hOz66UFMp/ZOMlCntkgX44tZw/U9RZXvgV1w34FmD8CPAzSO7yE2ERBJjLZRCDQIYXnnLPS12NzKlEszWb5gVFLsSsNEdGcpwuPWjlrfOu/L2rcbIdkuyrIZ031MzWcBxk7doKA1pG537QOGNckFZyjDFMyZ1dXHyZcSN4eI9pBJb4QeKkzqnC7/Ju79/Q= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(376002)(366004)(346002)(396003)(136003)(39860400002)(451199018)(2906002)(8936002)(52536014)(55016003)(30864003)(71200400001)(5660300002)(66556008)(86362001)(64756008)(8676002)(66476007)(4326008)(76116006)(66446008)(66946007)(54906003)(41300700001)(33656002)(83380400001)(316002)(110136005)(966005)(478600001)(38070700005)(7696005)(122000001)(186003)(26005)(82960400001)(53546011)(6506007)(38100700002)(9686003)(107886003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MnFUSHBUUzU0YStWMUZ1SythdDR2Yjc5cXkwVUtQWUtBTVdiMWh6REhDQWl5?= =?utf-8?B?NWZaQ09ud3Z3NWNCWjc4SlNFUFNjZUFhdGJTYjdCRTFzalM1aUduLzVhbnJ4?= =?utf-8?B?WGxQSi9FZ2Fray9xUUJWUHJDM05oRjdiWlBEOGRYMVNmd2Zoa0lzZE1IN2Fi?= =?utf-8?B?NXBQQStCdldrWnUrVUJ3NzRlQi9NV1dKQ0tlL1pzMzl2eDArMDkvRktES08x?= =?utf-8?B?MEcrRGRBM1NIUmw5bVhBU2g3WUJjTzNwYXUvR3YwSnljeVIyTjNYSjBUZVZq?= =?utf-8?B?Qm9VU2lYMHpQQ3JQcFZ3aFFGdHUyMjd6UGFsbkd0dndDVnVjazBwTTZXbHhX?= =?utf-8?B?NnZDK2hhZkJkNTVyZWRubGF3b0psV2ROZXFDMlZiQjhNUEkrQnV1YnBTcEdq?= =?utf-8?B?NVhtUGpEYkpPU1RtSTJBaktBaGtlTFpYellKeTBPSjdla2FmVnNIMk9oQXhy?= =?utf-8?B?WVRSKzI4TThIV3h1RkZscFowUUk4ekxIdUl6enRYRkNMbUhmSDNGVzVwQ0VV?= =?utf-8?B?YXNuc1VPSmJBK0U5WE1CeDdkbnBnNFdtNzhaN2M1QkdpZ3FVZEdjdHhuZFhD?= =?utf-8?B?bXVIaHNvRmJuU3RReGhveUdDR2I0U0NMZWNIT3dYSkhKaklaTkVSb0c3dmpw?= =?utf-8?B?TDQrOWRMOFRTcG56a2l3Qlg1Znc5Mlh4NGdsbFc5TDJIMjdPbUFMbWExQkUr?= =?utf-8?B?VG4rM3pWR1VKZFh6c2NnUEVEV1pLYXBVUHh5SndKdi9jRmU3OEg3ZUc1VEsx?= =?utf-8?B?ZlN4c0hLY1pvbHQwWlppUjBWekpVaU1YTk5yaHptSC9tNE5Qd2lsQlhwR2F4?= =?utf-8?B?WFlBVnBaOFZTL3lzVEY4STJUdmY2b2F3OVJBeVloOG1JMXJDY01qd1JYbWR1?= =?utf-8?B?Q2EzU3BnbzhXTjN4a2gyOCt1Z0lTeDF0N2U3QVRRVEtlYjVLVVAyZUFGWXN2?= =?utf-8?B?OFkwVnc0RDk0NmhhMTQvUHpTeDE0eThldUs5Zm9GRlJjMU1DMDFmU2pick44?= =?utf-8?B?WitHWmZjRm5lUEZQaXdxWUZJV0tMU2VoUkFZNEpQU2IzdXdmTGU3YTAzSXpN?= =?utf-8?B?WjZGVU5ZSk9SZndIR0VhVldFTW1iY2hiOUhzall0RUZZdTFlcDhLZDcvellK?= =?utf-8?B?TDEwU1ZmTnFaWHlNU01XKzhWQ3NzUmw0ZFlSSEp3aUwxMkp3bW5IQ25mNnBH?= =?utf-8?B?ZklwemdvMjFVbmhqMlJhNHBtamZBY3UyTlFnSUI1U1NBNi9mR29ZelFZOTRv?= =?utf-8?B?aUtkeVdXUmdPcXAwOTBDWnh4MEV2dFF1ZXp4L0RuZ21LWHJTdDZtMzNqTkRv?= =?utf-8?B?a0xtUHRjR2xEZktzSmd0THQwQWdwRE9MMXNzMGczT1NCU3hmV2NKZ09ldW1h?= =?utf-8?B?TFVndDBrNk9LOWZiZ3BjUkEwbW80cElHaEtVamRtalhVR0UvLzFKNWN5eWdP?= =?utf-8?B?MnUzRDkzd0ZoZFhDd0xRMFRCcHV2TllCVWRZdi9wWkJMeVF1ZXZwQTBWSUhv?= =?utf-8?B?QWFuOUFqN2ErdE5hUS9nUDFCaTdxdmM5VjRPYVBqUHBPZGJhMmhDWTJKdWVS?= =?utf-8?B?NUhHOTlLbmtCVE52cnZDRS9WRERJYnR4SXpjNHBQQnZrMUZnZWFBaWdyTy82?= =?utf-8?B?TFVTUTlqam91ZzZvaER0TGJtNENjUUdWT20zaCs2NFR5Y2VxMVZKSm8rREVt?= =?utf-8?B?aXRzMW12Y25rUVBrMzh3eHNGZ1BtakphYWZtYUdnUWdxbXhPRDUvNkcxTmhT?= =?utf-8?B?SUNtbjZFSTRObWtBcXk0V3RWcVlEVVEzWnZ5YVZrcFl0SmdpdTlwaHBXZUUr?= =?utf-8?B?REo2aW9Wd0pKNFptSVhhRkt0UW1lbUd5VHdEeVgxaGltY2JJNWI0UDZNeXdG?= =?utf-8?B?RThMSVdROUlOZ1ZwL244RG54TnFkcXUzL2Z3OUpteXQ2R1ZjZXRTUVJRbmIv?= =?utf-8?B?Qm90aHBlT3ArK1BwSkNNaHluR1NOQ0wwcW05a2pxY2lTb1M2S0M1aEVpQjJM?= =?utf-8?B?K2dKL2Z0QTFJczhPTkV1NEEzOTAwT3BxMVFmbERYSWp6QmZXWVpmSGFPNmxr?= =?utf-8?B?UzQ2RVUwd2JCU0pmTWRPNFh3aEVVM3Vsa0VNSnNiVDd1RmkvZUx2MEk0aTdt?= =?utf-8?B?NkxHVlc2Ui9vT1FVNTdhRUc4UkFjWmp6akc4MW9LZWlsUWpocjdIZ1I1N0Zi?= =?utf-8?B?anc9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa8dd322-26cc-410f-03fc-08db0ab4e9d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 15:47:13.6277 (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: Ezpkp/mO6nm+0tebkNnkOT6TaqU0pp5r22zyOH7+U0WRV9WSQO4lAJGtZuVGHBjXKXuasp0BFYUZIvMjOIleM0ibHSZYC6O0zCQ4Lu4X8QQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6702 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSBhZ3JlZSB3aXRoIGtlZXBpbmcgdGhlIC5TIGZpbGUgaW4gdGhpcyBjb21wb25lbnQuDQoNCkkg d2FzIG9ubHkgcmVmZXJyaW5nIHRvIEJhc2VMaWIgYXMgb3RoZXIgZXhhbXBsZXMgdGhhdCB1c2Vk DQouUyBpbnN0ZWFkIG9mIGlubGluZSBhc3NlbWJseS4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFN1bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8u Y29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDgsIDIwMjMgMTE6MTkgUE0NCj4gVG86 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQo+IENjOiBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu PjsgTGl1LCBaaGlndWFuZyA8emhpZ3VhbmcubGl1QGludGVsLmNvbT47IEFibmVyIENoYW5nIDxh Ym5lci5jaGFuZ0BhbWQuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyLXN0 YWdpbmcvUmlzY1Y2NFFlbXVWaXJ0IFBBVENIIFY3IDAzLzIwXSBNZGVQa2c6IEFkZCBCYXNlUmlz Y1ZTYmlMaWIgTGlicmFyeSBmb3IgUklTQy1WDQo+IA0KPiBIaSBNaWtlLA0KPiANCj4gT24gVGh1 LCBGZWIgMDksIDIwMjMgYXQgMDE6NDU6NDhBTSArMDAwMCwgTWljaGFlbCBEIEtpbm5leSB3cm90 ZToNCj4gPiBPbmUgY29tbWVudCBiZWxvdy4NCj4gPg0KPiA+IE1pa2UNCj4gPg0KPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IFN1bmlsIFYgTCA8c3VuaWx2bEB2 ZW50YW5hbWljcm8uY29tPg0KPiA+ID4gU2VudDogU2F0dXJkYXksIEphbnVhcnkgMjgsIDIwMjMg MTE6MTggQU0NCj4gPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywgTGltaW5nIDxn YW9saW1pbmdAYnlvc29mdC5jb20uY24+OyBMaXUsIFpoaWd1YW5nDQo+IDx6aGlndWFuZy5saXVA aW50ZWwuY29tPjsNCj4gPiA+IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPiA+ ID4gU3ViamVjdDogW2VkazItc3RhZ2luZy9SaXNjVjY0UWVtdVZpcnQgUEFUQ0ggVjcgMDMvMjBd IE1kZVBrZzogQWRkIEJhc2VSaXNjVlNiaUxpYiBMaWJyYXJ5IGZvciBSSVNDLVYNCj4gPiA+DQo+ ID4gPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9 NDA3Ng0KPiA+ID4NCj4gPiA+IFRoaXMgbGlicmFyeSBpcyByZXF1aXJlZCB0byBtYWtlIFNCSSBl Y2FsbHMgZnJvbSB0aGUgUy1tb2RlIEVESzIuDQo+ID4gPiBUaGlzIGlzIG1vc3RseSBjb3BpZWQg ZnJvbQ0KPiA+ID4gZWRrMi1wbGF0Zm9ybXMvU2lsaWNvbi9SSVNDLVYvUHJvY2Vzc29yUGtnL0xp YnJhcnkvUmlzY1ZFZGsyU2JpTGliDQo+ID4gPg0KPiA+ID4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xp bWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4gPiA+IENjOiBaaGlndWFuZyBMaXUgPHpoaWd1YW5nLmxp dUBpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTdW5pbCBWIEwgPHN1bmlsdmxAdmVu dGFuYW1pY3JvLmNvbT4NCj4gPiA+IEFja2VkLWJ5OiBBYm5lciBDaGFuZyA8YWJuZXIuY2hhbmdA YW1kLmNvbT4NCj4gPiA+IC0tLQ0KPiA+ID4gIE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCj4gPiA+ICBNZGVQa2cvTWRlUGtnLmRzYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArDQo+ID4gPiAgTWRlUGtnL0xp YnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNjVlNiaUxpYi5pbmYgfCAgMjUgKysrDQo+ID4g PiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIuaCAgICAgICAgICAgfCAx MjcgKysrKysrKysrKysNCj4gPiA+ICBNZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFz ZVJpc2NWU2JpTGliLmMgICB8IDIyNyArKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gIDUgZmls ZXMgY2hhbmdlZCwgMzg2IGluc2VydGlvbnMoKykNCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEv TWRlUGtnL01kZVBrZy5kZWMgYi9NZGVQa2cvTWRlUGtnLmRlYw0KPiA+ID4gaW5kZXggM2QwOGYy MGQxNWIwLi5jYTJlNGRjZjgxNWMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9NZGVQa2cvTWRlUGtnLmRl Yw0KPiA+ID4gKysrIGIvTWRlUGtnL01kZVBrZy5kZWMNCj4gPiA+IEBAIC0zMTYsNiArMzE2LDEw IEBAIFtMaWJyYXJ5Q2xhc3Nlcy5JQTMyLCBMaWJyYXJ5Q2xhc3Nlcy5YNjRdDQo+ID4gPiAgICAj IyAgQGxpYnJhcnljbGFzcyAgUHJvdmlkZXMgZnVuY3Rpb24gdG8gc3VwcG9ydCBURFggcHJvY2Vz c2luZy4NCj4gPiA+ICAgIFRkeExpYnxJbmNsdWRlL0xpYnJhcnkvVGR4TGliLmgNCj4gPiA+DQo+ ID4gPiArW0xpYnJhcnlDbGFzc2VzLlJJU0NWNjRdDQo+ID4gPiArICAjIyAgQGxpYnJhcnljbGFz cyAgUHJvdmlkZXMgZnVuY3Rpb24gdG8gbWFrZSBlY2FsbHMgdG8gU0JJDQo+ID4gPiArICBCYXNl UmlzY1ZTYmlMaWJ8SW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi5oDQo+ID4gPiArDQo+ ID4gPiAgW0d1aWRzXQ0KPiA+ID4gICAgIw0KPiA+ID4gICAgIyBHVUlEIGRlZmluZWQgaW4gVUVG STIuMS9VRUZJMi4wL0VGSTEuMQ0KPiA+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZHNj IGIvTWRlUGtnL01kZVBrZy5kc2MNCj4gPiA+IGluZGV4IDMyYTg1MmRjNDY2ZS4uMGFjNzYxOGI0 NjIzIDEwMDY0NA0KPiA+ID4gLS0tIGEvTWRlUGtnL01kZVBrZy5kc2MNCj4gPiA+ICsrKyBiL01k ZVBrZy9NZGVQa2cuZHNjDQo+ID4gPiBAQCAtMTkwLDQgKzE5MCw3IEBAIFtDb21wb25lbnRzLkFS TSwgQ29tcG9uZW50cy5BQVJDSDY0XQ0KPiA+ID4gICAgTWRlUGtnL0xpYnJhcnkvQmFzZUlvTGli SW50cmluc2ljL0Jhc2VJb0xpYkludHJpbnNpY0FybVZpcnQuaW5mDQo+ID4gPiAgICBNZGVQa2cv TGlicmFyeS9CYXNlU3RhY2tDaGVja0xpYi9CYXNlU3RhY2tDaGVja0xpYi5pbmYNCj4gPiA+DQo+ ID4gPiArW0NvbXBvbmVudHMuUklTQ1Y2NF0NCj4gPiA+ICsgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VS aXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuaW5mDQo+ID4gPiArDQo+ID4gPiAgW0J1aWxkT3B0 aW9uc10NCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIv QmFzZVJpc2NWU2JpTGliLmluZiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNl UmlzY1ZTYmlMaWIuaW5mDQo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXgg MDAwMDAwMDAwMDAwLi5kMDMxMzJiZjAxYzENCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsr KyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuaW5mDQo+ ID4gPiBAQCAtMCwwICsxLDI1IEBADQo+ID4gPiArIyMgQGZpbGUNCj4gPiA+ICsjIFJJU0MtViBM aWJyYXJ5IHRvIGNhbGwgU0JJIGVjYWxscw0KPiA+ID4gKyMNCj4gPiA+ICsjICBDb3B5cmlnaHQg KGMpIDIwMjAsIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsjDQo+ID4gPiArIyAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiA+ICsjDQo+ID4gPiArIyMNCj4gPiA+ ICsNCj4gPiA+ICtbRGVmaW5lc10NCj4gPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgPSAweDAw MDEwMDFiDQo+ID4gPiArICBCQVNFX05BTUUgICAgICAgICAgID0gQmFzZVJpc2NWU2JpTGliDQo+ ID4gPiArICBGSUxFX0dVSUQgICAgICAgICAgID0gRDc0MkNGM0QtRTYwMC00MDA5LThGQjUtMzE4 MDczMDA4NTA4DQo+ID4gPiArICBNT0RVTEVfVFlQRSAgICAgICAgID0gQkFTRQ0KPiA+ID4gKyAg VkVSU0lPTl9TVFJJTkcgICAgICA9IDEuMA0KPiA+ID4gKyAgTElCUkFSWV9DTEFTUyAgICAgICA9 IFJpc2NWU2JpTGliDQo+ID4gPiArDQo+ID4gPiArW1NvdXJjZXNdDQo+ID4gPiArICBCYXNlUmlz Y1ZTYmlMaWIuYw0KPiA+ID4gKw0KPiA+ID4gK1tQYWNrYWdlc10NCj4gPiA+ICsgIE1kZVBrZy9N ZGVQa2cuZGVjDQo+ID4gPiArDQo+ID4gPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiA+ID4gKyAgQmFz ZUxpYg0KPiA+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVJpc2NW U2JpTGliLmggYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi5oDQo+ID4g PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi4zYTNjYmZi ODc5ZjENCj4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xp YnJhcnkvQmFzZVJpc2NWU2JpTGliLmgNCj4gPiA+IEBAIC0wLDAgKzEsMTI3IEBADQo+ID4gPiAr LyoqIEBmaWxlDQo+ID4gPiArICBMaWJyYXJ5IHRvIGNhbGwgdGhlIFJJU0MtViBTQkkgZWNhbGxz DQo+ID4gPiArDQo+ID4gPiArICBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgSGV3bGV0dCBQYWNr YXJkIERldmVsb3BtZW50IExQLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiA+ICsNCj4g PiA+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4g PiArDQo+ID4gPiArICBAcGFyIEdsb3NzYXJ5Og0KPiA+ID4gKyAgICAtIEhhcnQgLSBIYXJkd2Fy ZSBUaHJlYWQsIHNpbWlsYXIgdG8gYSBDUFUgY29yZQ0KPiA+ID4gKw0KPiA+ID4gKyAgQ3VycmVu dGx5LCBFREsyIG5lZWRzIHRvIGNhbGwgU0JJIG9ubHkgdG8gc2V0IHRoZSB0aW1lIGFuZCB0byBk byBzeXN0ZW0gcmVzZXQuDQo+ID4gPiArDQo+ID4gPiArKiovDQo+ID4gPiArDQo+ID4gPiArI2lm bmRlZiBSSVNDVl9TQklfTElCX0hfDQo+ID4gPiArI2RlZmluZSBSSVNDVl9TQklfTElCX0hfDQo+ ID4gPiArDQo+ID4gPiArI2luY2x1ZGUgPFVlZmkuaD4NCj4gPiA+ICsNCj4gPiA+ICsvKiBTQkkg RXh0ZW5zaW9uIElEcyAqLw0KPiA+ID4gKyNkZWZpbmUgU0JJX0VYVF9USU1FICAweDU0NDk0RDQ1 DQo+ID4gPiArI2RlZmluZSBTQklfRVhUX1NSU1QgIDB4NTM1MjUzNTQNCj4gPiA+ICsNCj4gPiA+ ICsvKiBTQkkgZnVuY3Rpb24gSURzIGZvciBUSU1FIGV4dGVuc2lvbiovDQo+ID4gPiArI2RlZmlu ZSBTQklfRVhUX1RJTUVfU0VUX1RJTUVSICAweDANCj4gPiA+ICsNCj4gPiA+ICsvKiBTQkkgZnVu Y3Rpb24gSURzIGZvciBTUlNUIGV4dGVuc2lvbiAqLw0KPiA+ID4gKyNkZWZpbmUgU0JJX0VYVF9T UlNUX1JFU0VUICAweDANCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1RZ UEVfU0hVVERPV04gICAgIDB4MA0KPiA+ID4gKyNkZWZpbmUgU0JJX1NSU1RfUkVTRVRfVFlQRV9D T0xEX1JFQk9PVCAgMHgxDQo+ID4gPiArI2RlZmluZSBTQklfU1JTVF9SRVNFVF9UWVBFX1dBUk1f UkVCT09UICAweDINCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1JFQVNP Tl9OT05FICAgICAweDANCj4gPiA+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1JFQVNPTl9TWVNG QUlMICAweDENCj4gPiA+ICsNCj4gPiA+ICsvKiBTQkkgcmV0dXJuIGVycm9yIGNvZGVzICovDQo+ ID4gPiArI2RlZmluZSBTQklfU1VDQ0VTUyAgICAgICAgICAgICAgICAwDQo+ID4gPiArI2RlZmlu ZSBTQklfRVJSX0ZBSUxFRCAgICAgICAgICAgICAtMQ0KPiA+ID4gKyNkZWZpbmUgU0JJX0VSUl9O T1RfU1VQUE9SVEVEICAgICAgLTINCj4gPiA+ICsjZGVmaW5lIFNCSV9FUlJfSU5WQUxJRF9QQVJB TSAgICAgIC0zDQo+ID4gPiArI2RlZmluZSBTQklfRVJSX0RFTklFRCAgICAgICAgICAgICAtNA0K PiA+ID4gKyNkZWZpbmUgU0JJX0VSUl9JTlZBTElEX0FERFJFU1MgICAgLTUNCj4gPiA+ICsjZGVm aW5lIFNCSV9FUlJfQUxSRUFEWV9BVkFJTEFCTEUgIC02DQo+ID4gPiArI2RlZmluZSBTQklfRVJS X0FMUkVBRFlfU1RBUlRFRCAgICAtNw0KPiA+ID4gKyNkZWZpbmUgU0JJX0VSUl9BTFJFQURZX1NU T1BQRUQgICAgLTgNCj4gPiA+ICsNCj4gPiA+ICsjZGVmaW5lIFNCSV9MQVNUX0VSUiAgU0JJX0VS Ul9BTFJFQURZX1NUT1BQRUQNCj4gPiA+ICsNCj4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4g PiArICBVSU5UNjQgICAgQm9vdEhhcnRJZDsNCj4gPiA+ICsgIFZPSUQgICAgICAqUGVpU2Vydmlj ZVRhYmxlOyAgICAvLyBQRUkgU2VydmljZSB0YWJsZQ0KPiA+ID4gKyAgVk9JRCAgICAgICpQcmVQ aUhvYkxpc3Q7ICAgICAgIC8vIFByZSBQSSBIb2IgTGlzdA0KPiA+ID4gKyAgVUlOVDY0ICAgIEZs YXR0ZW5lZERldmljZVRyZWU7IC8vIFBvaW50ZXIgdG8gRmxhdHRlbmVkIERldmljZSB0cmVlDQo+ ID4gPiArfSBFRklfUklTQ1ZfRklSTVdBUkVfQ09OVEVYVDsNCj4gPiA+ICsNCj4gPiA+ICsvLw0K PiA+ID4gKy8vIEVESzIgT3BlblNCSSBmaXJtd2FyZSBleHRlbnNpb24gcmV0dXJuIHN0YXR1cy4N Cj4gPiA+ICsvLw0KPiA+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4gPiA+ICsgIFVJTlROICAgIEVy cm9yOyAvLy88IFNCSSBzdGF0dXMgY29kZQ0KPiA+ID4gKyAgVUlOVE4gICAgVmFsdWU7IC8vLzwg VmFsdWUgcmV0dXJuZWQNCj4gPiA+ICt9IFNCSV9SRVQ7DQo+ID4gPiArDQo+ID4gPiArVk9JRA0K PiA+ID4gK0VGSUFQSQ0KPiA+ID4gK1NiaVNldFRpbWVyICgNCj4gPiA+ICsgIElOICBVSU5UNjQg IFRpbWUNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gK0VG SUFQSQ0KPiA+ID4gK1NiaVN5c3RlbVJlc2V0ICgNCj4gPiA+ICsgIElOICBVSU5UTiAgUmVzZXRU eXBlLA0KPiA+ID4gKyAgSU4gIFVJTlROICBSZXNldFJlYXNvbg0KPiA+ID4gKyAgKTsNCj4gPiA+ ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIEdldCBmaXJtd2FyZSBjb250ZXh0IG9mIHRoZSBjYWxs aW5nIGhhcnQuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1bb3V0XSBGaXJtd2FyZUNvbnRleHQg ICAgICBUaGUgZmlybXdhcmUgY29udGV4dCBwb2ludGVyLg0KPiA+ID4gKyoqLw0KPiA+ID4gK1ZP SUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtHZXRGaXJtd2FyZUNvbnRleHQgKA0KPiA+ID4gKyAg T1VUIEVGSV9SSVNDVl9GSVJNV0FSRV9DT05URVhUICAqKkZpcm13YXJlQ29udGV4dA0KPiA+ID4g KyAgKTsNCj4gPiA+ICsNCj4gPiA+ICsvKioNCj4gPiA+ICsgIFNldCBmaXJtd2FyZSBjb250ZXh0 IG9mIHRoZSBjYWxsaW5nIGhhcnQuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1baW5dIEZpcm13 YXJlQ29udGV4dCAgICAgICBUaGUgZmlybXdhcmUgY29udGV4dCBwb2ludGVyLg0KPiA+ID4gKyoq Lw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtTZXRGaXJtd2FyZUNvbnRleHQg KA0KPiA+ID4gKyAgSU4gRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICpGaXJtd2FyZUNvbnRl eHQNCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4gPiArLyoqDQo+ID4gPiArICBHZXQgcG9pbnRl ciB0byBPcGVuU0JJIEZpcm13YXJlIENvbnRleHQNCj4gPiA+ICsNCj4gPiA+ICsgIEdldCB0aGUg cG9pbnRlciBvZiBmaXJtd2FyZSBjb250ZXh0Lg0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICAg IEZpcm13YXJlQ29udGV4dFB0ciAgIFBvaW50ZXIgdG8gcmV0cmlldmUgcG9pbnRlciB0byB0aGUN Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXJtd2FyZSBDb250ZXh0 Lg0KPiA+ID4gKyoqLw0KPiA+ID4gK1ZPSUQNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtHZXRGaXJt d2FyZUNvbnRleHRQb2ludGVyICgNCj4gPiA+ICsgIElOIE9VVCBFRklfUklTQ1ZfRklSTVdBUkVf Q09OVEVYVCAgKipGaXJtd2FyZUNvbnRleHRQdHINCj4gPiA+ICsgICk7DQo+ID4gPiArDQo+ID4g PiArLyoqDQo+ID4gPiArICBTZXQgcG9pbnRlciB0byBPcGVuU0JJIEZpcm13YXJlIENvbnRleHQN Cj4gPiA+ICsNCj4gPiA+ICsgIFNldCB0aGUgcG9pbnRlciBvZiBmaXJtd2FyZSBjb250ZXh0Lg0K PiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFtICAgIEZpcm13YXJlQ29udGV4dFB0ciAgIFBvaW50ZXIg dG8gRmlybXdhcmUgQ29udGV4dC4NCj4gPiA+ICsqKi8NCj4gPiA+ICtWT0lEDQo+ID4gPiArRUZJ QVBJDQo+ID4gPiArU2V0RmlybXdhcmVDb250ZXh0UG9pbnRlciAoDQo+ID4gPiArICBJTiBFRklf UklTQ1ZfRklSTVdBUkVfQ09OVEVYVCAgKkZpcm13YXJlQ29udGV4dFB0cg0KPiA+ID4gKyAgKTsN Cj4gPiA+ICsNCj4gPiA+ICsjZW5kaWYNCj4gPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFy eS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmMgYi9NZGVQa2cvTGlicmFyeS9CYXNl UmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmMNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjE1MjIyYTUyODc1Mw0KPiA+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ID4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNj VlNiaUxpYi5jDQo+ID4gPiBAQCAtMCwwICsxLDIyNyBAQA0KPiA+ID4gKy8qKiBAZmlsZQ0KPiA+ ID4gKyAgSW5zdGFuY2Ugb2YgdGhlIFNCSSBlY2FsbCBsaWJyYXJ5Lg0KPiA+ID4gKw0KPiA+ID4g KyAgSXQgYWxsb3dzIGNhbGxpbmcgYW4gU0JJIGZ1bmN0aW9uIHZpYSBhbiBlY2FsbCBmcm9tIFMt TW9kZS4NCj4gPiA+ICsNCj4gPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBIZXdsZXR0 IFBhY2thcmQgRGV2ZWxvcG1lbnQgTFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ID4g Kw0KPiA+ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPiA+ICsNCj4gPiA+ICsqKi8NCj4gPiA+ICsNCj4gPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9C YXNlTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZU1lbW9yeUxpYi5oPg0KPiA+ ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gPiArI2luY2x1ZGUgPExpYnJh cnkvQmFzZVJpc2NWU2JpTGliLmg+DQo+ID4gPiArDQo+ID4gPiArLy8NCj4gPiA+ICsvLyBNYXhp bXVtIGFyZ3VtZW50cyBmb3IgU0JJIGVjYWxsDQo+ID4gPiArI2RlZmluZSBTQklfQ0FMTF9NQVhf QVJHUyAgNg0KPiA+ID4gKw0KPiA+ID4gKy8qKg0KPiA+ID4gKyAgQ2FsbCBTQkkgY2FsbCB1c2lu ZyBlY2FsbCBpbnN0cnVjdGlvbi4NCj4gPiA+ICsNCj4gPiA+ICsgIEFzc2VydHMgd2hlbiBOdW1B cmdzIGV4Y2VlZHMgU0JJX0NBTExfTUFYX0FSR1MuDQo+ID4gPiArDQo+ID4gPiArICBAcGFyYW1b aW5dIEV4dElkICAgIFNCSSBleHRlbnNpb24gSUQuDQo+ID4gPiArICBAcGFyYW1baW5dIEZ1bmNJ ZCAgIFNCSSBmdW5jdGlvbiBJRC4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gTnVtQXJncyAgTnVtYmVy IG9mIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBlY2FsbC4NCj4gPiA+ICsgIEBwYXJhbVtpbl0g Li4uICAgICAgQXJndW1lbnQgbGlzdCBmb3IgdGhlIGVjYWxsLg0KPiA+ID4gKw0KPiA+ID4gKyAg QHJldHZhbCAgUmV0dXJucyBTQklfUkVUIHN0cnVjdHVyZSB3aXRoIHZhbHVlIGFuZCBlcnJvciBj b2RlLg0KPiA+ID4gKw0KPiA+ID4gKyoqLw0KPiA+ID4gK1NUQVRJQw0KPiA+ID4gK1NCSV9SRVQN Cj4gPiA+ICtFRklBUEkNCj4gPiA+ICtTYmlDYWxsICgNCj4gPiA+ICsgIElOICBVSU5UTiAgRXh0 SWQsDQo+ID4gPiArICBJTiAgVUlOVE4gIEZ1bmNJZCwNCj4gPiA+ICsgIElOICBVSU5UTiAgTnVt QXJncywNCj4gPiA+ICsgIC4uLg0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIFVJTlRO ICAgIEk7DQo+ID4gPiArICBTQklfUkVUICBSZXQ7DQo+ID4gPiArICBVSU5UTiAgICBBcmdzW1NC SV9DQUxMX01BWF9BUkdTXTsNCj4gPiA+ICsgIFZBX0xJU1QgIEFyZ0xpc3Q7DQo+ID4gPiArDQo+ ID4gPiArICBWQV9TVEFSVCAoQXJnTGlzdCwgTnVtQXJncyk7DQo+ID4gPiArDQo+ID4gPiArICBp ZiAoTnVtQXJncyA+IFNCSV9DQUxMX01BWF9BUkdTKSB7DQo+ID4gPiArICAgIFJldC5FcnJvciA9 IFNCSV9FUlJfSU5WQUxJRF9QQVJBTTsNCj4gPiA+ICsgICAgUmV0LlZhbHVlID0gLTE7DQo+ID4g PiArICAgIHJldHVybiBSZXQ7DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICBmb3IgKEkg PSAwOyBJIDwgU0JJX0NBTExfTUFYX0FSR1M7IEkrKykgew0KPiA+ID4gKyAgICBpZiAoSSA8IE51 bUFyZ3MpIHsNCj4gPiA+ICsgICAgICBBcmdzW0ldID0gVkFfQVJHIChBcmdMaXN0LCBVSU5UTik7 DQo+ID4gPiArICAgIH0gZWxzZSB7DQo+ID4gPiArICAgICAgLy8gRGVmYXVsdCB0byAwIGZvciBh bGwgYXJndW1lbnRzIHRoYXQgYXJlIG5vdCBnaXZlbg0KPiA+ID4gKyAgICAgIEFyZ3NbSV0gPSAw Ow0KPiA+ID4gKyAgICB9DQo+ID4gPiArICB9DQo+ID4gPiArDQo+ID4gPiArICBWQV9FTkQgKEFy Z0xpc3QpOw0KPiA+ID4gKw0KPiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGEwIGFzbSAoImEwIikg PSBBcmdzWzBdOw0KPiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGExIGFzbSAoImExIikgPSBBcmdz WzFdOw0KPiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGEyIGFzbSAoImEyIikgPSBBcmdzWzJdOw0K PiA+ID4gKyAgcmVnaXN0ZXIgVUlOVE4gIGEzIGFzbSAoImEzIikgPSBBcmdzWzNdOw0KPiA+ID4g KyAgcmVnaXN0ZXIgVUlOVE4gIGE0IGFzbSAoImE0IikgPSBBcmdzWzRdOw0KPiA+ID4gKyAgcmVn aXN0ZXIgVUlOVE4gIGE1IGFzbSAoImE1IikgPSBBcmdzWzVdOw0KPiA+ID4gKyAgcmVnaXN0ZXIg VUlOVE4gIGE2IGFzbSAoImE2IikgPSAoVUlOVE4pKEZ1bmNJZCk7DQo+ID4gPiArICByZWdpc3Rl ciBVSU5UTiAgYTcgYXNtICgiYTciKSA9IChVSU5UTikoRXh0SWQpOw0KPiA+ID4gKw0KPiA+ID4g KyAgYXNtIHZvbGF0aWxlICgiZWNhbGwiIFwNCj4gPiA+ICsgICAgICAgOiAiK3IiIChhMCksICIr ciIgKGExKSBcDQo+ID4gPiArICAgICAgIDogInIiIChhMiksICJyIiAoYTMpLCAiciIgKGE0KSwg InIiIChhNSksICJyIiAoYTYpLCAiciIgKGE3KSBcDQo+ID4gPiArICAgICAgIDogIm1lbW9yeSIp OyBcDQo+ID4gPiArICBSZXQuRXJyb3IgPSBhMDsNCj4gPiA+ICsgIFJldC5WYWx1ZSA9IGExOw0K PiA+DQo+ID4gV2h5IGlzIGlubGluZSBhc3NlbWJseSB1c2VkIGhlcmU/ICBJIHNlZSB1c2Ugb2Yg LlMgZmlsZXMgaW4gQmFzZUxpYg0KPiA+IENhbiB0aGlzIGJlIGNvbnZlcnRlZCB0byAuUyBmaWxl Pw0KPiA+DQo+IEl0IHdhcyBwb3J0ZWQgYXMgaXMgZnJvbSBlZGsyLXBsYXRmb3Jtcy4gSSBjYW4g Y29udmVydCBpbnRvIC5TIGZpbGUgYW5kDQo+IEkgcHJlZmVyIHRvIGFkZCBpdCBpbiB0aGlzIGxp YnJhcnkgaXRzZWxmIHRoYW4gQmFzZUxpYi4NCj4gDQo+IFRoYW5rcyEsDQo+IFN1bmlsDQo=