From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web10.1683.1671235612708763449 for ; Fri, 16 Dec 2022 16:06:53 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Ok1ruI4/; spf=pass (domain: intel.com, ip: 134.134.136.65, 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=1671235612; x=1702771612; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=oFSko4A/7qfsRFnelxEkzhpCXhJX1LbWXVIjC8/sWZg=; b=Ok1ruI4/zsHr3Fbpb2yDbWZHi+DGYTnFn2i1VdCh4yqWidcfnoPug27y 6uGIkGSciwG7hYkqclj+93qzioLf9ph6GNay4sTrxB0W2DuVuP5T+FJCH A3k2A4hQ3obpHGPNUGU8w7NtHU3VU1a0xk0QhZq67NszfL07SvPPBVNKu PSfZlfldw9mVEx2Og7Z0HcRo6UGVPmUuW2xYxugNa58ABeH3ap6znpreP a5wizvUMO1wPazTYP3nEnel46CAfcjqSOzvSVMGfaS08Bbr1lRT/UJwng H3ftCUylQIhLw4edX1MAz20fpUVZt1YT+BPOJd7uG7wVztYXkWwzraWeV A==; X-IronPort-AV: E=McAfee;i="6500,9779,10563"; a="320969386" X-IronPort-AV: E=Sophos;i="5.96,251,1665471600"; d="scan'208";a="320969386" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Dec 2022 16:06:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10563"; a="682433206" X-IronPort-AV: E=Sophos;i="5.96,251,1665471600"; d="scan'208";a="682433206" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga001.jf.intel.com with ESMTP; 16 Dec 2022 16:06:51 -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; Fri, 16 Dec 2022 16:06:51 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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; Fri, 16 Dec 2022 16:06:51 -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; Fri, 16 Dec 2022 16:06:51 -0800 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.44) 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; Fri, 16 Dec 2022 16:06:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ax1clDcZVh4bi3GdnT4iPNmo0pTWEmmijDBHH7iUtpG8LPGzQ6Cn88BRGv6CFnlB+7VRmB/x2W+JCGTAG1F/KshaSVnzwcFec4x5gg8+semya03S67o111+/p213zLV4udyXiFThtVXbEbsoghogdpx7IVueyD9qL+UiqeStNCtdaY2ldYzPtkvAV7YkCBFz+i24uKkrSnoL4nUf44e0a67jHy0ru1P/5UOkU0kW/zD/deQ6N3e7kzEVl8kMJpidFpSu4L4ar+Tz265flq2wOpq4VjPvGsNbQCS9g9n6Mely40n5LTlPz1g03UzKpdtqeUMnML4K4eddXag3r5hPjw== 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=oFSko4A/7qfsRFnelxEkzhpCXhJX1LbWXVIjC8/sWZg=; b=YZNy+A4hnQUq2ARAgtxoNgmxaEC3oNAU8Ewd8NyDSk8cH3v3QDpSEe/fmaJmsVSkLkbgsq6sfYdiUFd8IhYlqq7lMGvK7ycKgpRbFeh18Ymyft2s5d3AiucZHFEmPJW+5V2Wd2hb+k78zBYEh8sDmL+SiSopAzMEtRLGaiMz60gYaisk7Qd3xnQ49J5j8dsKkzMe9w8kSnVVyYDHNAYJWBHQtKtV3ms6aJsTNUPjYHwq3fORFXuseIt22kzkdoRHJuY0wpoRznRfM234TBnTPp4NI/YatNL6Po8j6flViNw8jj+m2lm47aPXqAxhZeAyqTojuNcsW/tK/6c+35Y0VA== 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 BN9PR11MB5466.namprd11.prod.outlook.com (2603:10b6:408:11f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.19; Sat, 17 Dec 2022 00:06:48 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b%5]) with mapi id 15.20.5924.012; Sat, 17 Dec 2022 00:06:48 +0000 From: "Michael D Kinney" To: Tuan Phan , "Kinney, Michael D" CC: "devel@edk2.groups.io" , "sunilvl@ventanamicro.com" , "Yao, Jiewen" , "Wang, Jian J" , "Lu, Xiaoyu1" , "Jiang, Guomin" , "Kinney, Michael D" Subject: Re: [PATCH v2] CryptoPkg/IntrinsicLib: RiscV: Provide implementation of memcpy and __ctzdi2 Thread-Topic: [PATCH v2] CryptoPkg/IntrinsicLib: RiscV: Provide implementation of memcpy and __ctzdi2 Thread-Index: AQHZEX7+rLQL72f170eLAUjqMyx8Ja5xM0mg Date: Sat, 17 Dec 2022 00:06:48 +0000 Message-ID: References: <20221216184754.4381-1-tphan@ventanamicro.com> In-Reply-To: <20221216184754.4381-1-tphan@ventanamicro.com> 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_|BN9PR11MB5466:EE_ x-ms-office365-filtering-correlation-id: cca90dbc-5116-4093-afb6-08dadfc29740 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1a+2Uj5rb2oR8RCfaTszF2Yzj4lxXtUQ9wfjmKJlNmIpOAw9o+9peB0ph+y5qQKUTEhkeEUNAUrxrgrPYwjoAnBOxF2dx6oUPRm4LsXenaDvipC7CTi38qElyjI/hdr909i1eZScuxyrCrhs9ULbPchpQ4Ci7HkK7AfMilTcMkObnA+XEz5smNWDyv0EysEOLI5blEoSrly/UaMrWjHeSESMfN91w6OK61OrEZvbuc17e0UyT1tGHLgbhD5ZbebccL6M6qIiroctpPyvHLMCUsijYeimcADXsKwQUcY1aqQcO4vGXwWVcYlcmXYG9Rjqpe6e9K8Xtgn1+8L+NqGn8Q42GCjVcA+7+sGLi0u6kiuCNx5B2oexvEIzqNMZj7NWtBD1tEm7E5+pf6vlxFnjd7oa3VbKi9fuh8UMKBEtfCyG4d8ux7DM/W4sZbHFDCfpTx/sO3IaptH3xcG+x+1me4jMDH+5zbsXP0S6Zleqo2kb/ueW5Wi5UR7I/EdhvhmFoexHvQM4j1p+GiDkzkhorVIapsxBhsl51zxIb6R1ynq7Tv7B29PYWCO7/j58TrXHH0n64S+voGw2wxl1MS4Dga5JK8UrSgqqNc3sfgU52ta0J04/xQXiaNC/abOyBTB+AqrAtOWhD6u8dQSmM/qh8U+3iQd/ZNYWGvzMsIdCVkMLX2j4mL/QYB/QE6LH2Z4rHUvgv/aigLZ6N8ezQ93+orp7rTEvcv3T83nFULt9DgY= 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:(13230022)(366004)(39860400002)(136003)(346002)(376002)(396003)(451199015)(4326008)(122000001)(2906002)(82960400001)(38100700002)(55016003)(76116006)(41300700001)(107886003)(86362001)(6506007)(7696005)(66476007)(38070700005)(9686003)(66556008)(54906003)(8936002)(52536014)(478600001)(64756008)(316002)(26005)(5660300002)(66946007)(110136005)(8676002)(66446008)(186003)(966005)(33656002)(83380400001)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cUNzWUJ3WDBSRWxrK1Q2cUdMOHA1ajhzMjRrR0JiMTVtOWNXOHl5ZjZSem9K?= =?utf-8?B?V3VOSU96bUN1VzQvL0U5Sk9sbHk1T01hVHI4OEY2aTR6RWVvWWlmR05CMHk1?= =?utf-8?B?VnhKV1pNN3JIQWVTVHptTHdwWkR4VTNiczlPaUFoQWxWQjBhaSt1VW8zbDY4?= =?utf-8?B?d0dGaXJZUE94b3VjN1NqRHRFZzlDeXMwajNYWTVQYm9MVjhUSjltdWNaWGYx?= =?utf-8?B?QTIveEx6TzQ5ZXYvaUVCenZXWmNEWEgyeC9JRzJqRkVCR2thbks3eVV4bkpL?= =?utf-8?B?dnlKaVQxL0ttMGs3SUhka2IySFFXODZUUzZCcmtoWk56ZlhROUVkVlFCdVVi?= =?utf-8?B?Mm56VExMZk9zYXNYcXVzWjgwWnF0M2dwZVFHZU93QWlnZ0k0cDd4SlIrRlBo?= =?utf-8?B?WDJJWmdmODR0a1BYYklXQi9pdUtXclI3bXQ5eEtRbzVWcTF0MEdBckhtdnE2?= =?utf-8?B?bTd0bVliQ0YvUzc5WXhtbjVzK3NDNmJ1UmQwNFJFWFo2K2R6MEV1cDN6RHU3?= =?utf-8?B?b3dLT25VdnZZcC9iWW1DbFBuYUNKYmNnZy9LSys2dUU5bXByUnEwVTVHM2NX?= =?utf-8?B?ZjNDZm5JQnF3TEFpckl0NFlWUUllMmpLL3F2UGVBTVRuK1FiRXZRTXluQnVz?= =?utf-8?B?a0RnTEFuTjFjRDNuNkdaRGJaWnA4Nk12allQVTJoY0o3MjVmb01XUE1BVjhp?= =?utf-8?B?TUcvY0NxSzkrNDNaSmlYZ1hYU2NjRWwxUk9zeUUwQ1RFZnZWWXloUi8yZUxn?= =?utf-8?B?eGdZZUdpM2Rkbk5qaVdwWTMxeDllRnRMZmlCSHd4eUdRN0VUYm9OdkZrMUpM?= =?utf-8?B?YStpaWp1VVd0d2Jlb1FBemY5eUFYcVRnUDk4R0NEemNSZTEwaTkrdGFhNmJ1?= =?utf-8?B?cWtKV1R3cktueWtOTWdlYmczbDB1YWx4WmlJWnBYMnd2MUsrODFRK3VuY1BV?= =?utf-8?B?UTg1MzBTbzcyTW81QUx4UC9WK0ZMOWkrT3ppMklWSDFXcUpvUHFIbzRmSjJz?= =?utf-8?B?ZTRKUm9PYUVzK1VXNUh6d0hKMVg1WmZZWHlHUFZ4eXgwL3dQOXVXaS9EMUxn?= =?utf-8?B?bnc2T3JNeWJTMS92UjJIbjBpQkYvRlM0SVRmWFBPSXRPWXJsSklOcFlYY3hl?= =?utf-8?B?RXFnaVVTUndwM0c0dmsvV3dpZHFFWEFFR3ppaUFoeUx6QVg4eHdQeUFOb1hL?= =?utf-8?B?a3FZcTk5WGdna2NKaFF6aWxwRW12VHcrb0ZTeEYzdm1iNTJjMlprWVQzZ1dP?= =?utf-8?B?VkUrekNyMDliQ3plcGs1Z1JqZElibWJwOGpOZGk2dFNFZEhlQ25FV1BKcjRV?= =?utf-8?B?eWlGaFBIOHlWZlNSMXVabnhXS3dBNkVTU3B5U04wQ3JOb0h6ci9TdVNOcHho?= =?utf-8?B?U1hjWk56QVU5ckFZMjVjSmxtbVNoUVU0ZDZlejBQbkIyU3UvNzhLcGtZY3JC?= =?utf-8?B?bjc3T1A4WVFBbTBRbFh6VmdSSFdxUXR3ZEwrVi9RZXhiTUgwdmc5YWc5dkd1?= =?utf-8?B?U3ZsQW5ONUY4Y1FhLzc5cDRUcTFuSXdHTmtad0xnQU9YRUZSSkhZNzgxcXNL?= =?utf-8?B?R3BoTXRtYWF0amZyTzJzS1c3eC9MUmh3YXdYTXN1K09BckkxM0VuM255ditD?= =?utf-8?B?azM1Z1ZPcmE0OXlqd3ZoTElkRmY3djFtQXBqdDlicTdtNkdVU3Nxa0NGZk5y?= =?utf-8?B?bXNNUEU2K3ZYTkw5TUd0ejVSTEVPbXpBR200UEFqRU9SNEdYS1dRM2tiSnQ5?= =?utf-8?B?eE9SNzZxVUcwZkpNakdWODloU05wVFRxQUQ3Z2JQa21JWERKTVFobGNjU0Fp?= =?utf-8?B?TXVKcENGc0p2bmFvc2dOSjJOVUtab3lYUGt5UzBwOTd3UUhDYnlVcTZDaU0z?= =?utf-8?B?MGFCMW1jR0VGekErQW5FYlNrWFhoOUFFWGZuN3hROCtPR2ZJYkhpdnowajVH?= =?utf-8?B?UTV4QjRpK0prT0RzSiswSkU5a3FhQXhXekpsbUxBazhJWGNVNVprcVZJQXhk?= =?utf-8?B?eHNPN2FWQVFNdytLbVRveVBEMTdURVRJSTRwK0lDNnlnQjRCVThYYzA3T2Qr?= =?utf-8?B?OFRoTWFBSC9OUnJoUVAzKzdCU2lVR040Qml5SDViUmk1THN0UUZvN014c2k5?= =?utf-8?B?U2U0bFljMFlBZEhNOFo1WFhtSG1WajIyQ1dUN2RnWVhJZTZaRVdsWE9kUmI4?= =?utf-8?B?cEE9PQ==?= 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: cca90dbc-5116-4093-afb6-08dadfc29740 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2022 00:06:48.0282 (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: xIGHyS34IFOC4OUePQhmjsApXSuNGaIc9d+GnwEkGEhO3u5GOswAVEKNKkgN0+cgipqH+tMLZAVCXhUVvu6HpFnYN7T794DUsGD8p9dNWY0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5466 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 SWYgdGhhdCBpbnRyaW5zaWMgaXMgc3BlY2lmaWMgdG8gUklTQ1YsIHRoZW4gc2hvdWxkIENvbXBp bGVySGVscGVyLmMgZ28gaW50byBhIFJpc2NWNjQgc3ViZGlyPw0KDQpNaWtlDQoNCj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVHVhbiBQaGFuIDx0cGhhbkB2ZW50YW5hbWlj cm8uY29tPg0KPiBTZW50OiBGcmlkYXksIERlY2VtYmVyIDE2LCAyMDIyIDEwOjQ4IEFNDQo+IENj OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgc3VuaWx2bEB2ZW50YW5hbWljcm8uY29tOyBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPiA8 amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNv bT47IEx1LCBYaWFveXUxIDx4aWFveXUxLmx1QGludGVsLmNvbT47IEppYW5nLCBHdW9taW4NCj4g PGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBUdWFuIFBoYW4gPHRwaGFuQHZlbnRhbmFtaWNyby5j b20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2Ml0gQ3J5cHRvUGtnL0ludHJpbnNpY0xpYjogUmlzY1Y6 IFByb3ZpZGUgaW1wbGVtZW50YXRpb24gb2YgbWVtY3B5IGFuZCBfX2N0emRpMg0KPiANCj4gVGhl IFJpc2NWIHRvb2xjaGFpbiBkb2Vzbid0IHByb3ZpZGUgX19jdHpkaTIgaW1wbGVtZW50YXRpb24g d2hlbg0KPiBjb21waWxlZCB3aXRoIC1ub3N0ZGxpYiB0aGF0IG5lZWRlZCBieSBvcGVuc3NsIGxp YnJhcnkuDQo+IFNvIGFkZGluZyB0aGUgaW1wbGVtZW50YXRpb24gb2YgX19jdHpkaTIuDQo+IA0K PiBGb3JjaW5nIHRvIHVzZSBDb3B5TWVtIG9mIEVESzIgYXMgbWVtY3B5IGJ1aWxkaW4gZGlzYWJs ZWQgZm9yIFJpc2NWDQo+IHdpdGggLWZuby1idWlsdGluLW1lbWNweSBmbGFnLg0KPiANCj4gUkVG OiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxMDMNCj4g U2lnbmVkLW9mZi1ieTogVHVhbiBQaGFuIDx0cGhhbkB2ZW50YW5hbWljcm8uY29tPg0KPiBBY2tl ZC1ieTogU3VuaWwgViBMIDxzdW5pbHZsQHZlbnRhbmFtaWNyby5jb20+DQo+IC0tLQ0KPiBWMjoN Cj4gLSBBZGQgbGljZW5zZSBoZWFkZXIuDQo+IC0gQWRkIFJFRiB0byB0aGUgYnVnemlsbGEuDQo+ IA0KPiAgLi4uL0xpYnJhcnkvSW50cmluc2ljTGliL0NvbXBpbGVySGVscGVyLmMgICAgIHwgNDIg KysrKysrKysrKysrKysrKysrKw0KPiAgLi4uL0xpYnJhcnkvSW50cmluc2ljTGliL0ludHJpbnNp Y0xpYi5pbmYgICAgIHwgIDYgKystDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBDcnlwdG9Qa2cvTGlicmFy eS9JbnRyaW5zaWNMaWIvQ29tcGlsZXJIZWxwZXIuYw0KPiANCj4gZGlmZiAtLWdpdCBhL0NyeXB0 b1BrZy9MaWJyYXJ5L0ludHJpbnNpY0xpYi9Db21waWxlckhlbHBlci5jIGIvQ3J5cHRvUGtnL0xp YnJhcnkvSW50cmluc2ljTGliL0NvbXBpbGVySGVscGVyLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4zODQ0ZmQxNGFlNjYNCj4gLS0tIC9kZXYvbnVsbA0K PiArKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9JbnRyaW5zaWNMaWIvQ29tcGlsZXJIZWxwZXIuYw0K PiBAQCAtMCwwICsxLDQyIEBADQo+ICsvKiogQGZpbGUNCj4gKyAgSW1wbGVtZW50IGZ1bmN0aW9u cyB0aGF0IG5vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRoIC1ub3N0ZGxpYi4NCj4gKw0K PiArICBDb3B5cmlnaHQgKGMpIDIwMjIsIFZlbnRhbmEgTWljcm8gU3lzdGVtcyBJbmMuIEFsbCBS aWdodHMgUmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTIt Q2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArdW5zaWduZWQgaW50DQo+ICtfX2N0 emRpMiAodW5zaWduZWQgbG9uZyBsb25nIHgpDQo+ICt7DQo+ICsgIHVuc2lnbmVkIGludCByZXQg PSAwOw0KPiArDQo+ICsgIGlmICgheCkgew0KPiArICAgIHJldHVybiA2NDsNCj4gKyAgfQ0KPiAr ICBpZiAoISh4ICYgMHhmZmZmZmZmZikpIHsNCj4gKyAgICB4ID4+PSAzMjsNCj4gKyAgICByZXQg fD0gMzI7DQo+ICsgIH0NCj4gKyAgaWYgKCEoeCAmIDB4ZmZmZikpIHsNCj4gKyAgICB4ID4+PSAx NjsNCj4gKyAgICByZXQgfD0gMTY7DQo+ICsgIH0NCj4gKyAgaWYgKCEoeCAmIDB4ZmYpKSB7DQo+ ICsgICAgeCA+Pj0gODsNCj4gKyAgICByZXQgfD0gODsNCj4gKyAgfQ0KPiArICBpZiAoISh4ICYg MHhmKSkgew0KPiArICAgIHggPj49IDQ7DQo+ICsgICAgcmV0IHw9IDQ7DQo+ICsgIH0NCj4gKyAg aWYgKCEoeCAmIDB4MykpIHsNCj4gKyAgICB4ID4+PSAyOw0KPiArICAgIHJldCB8PSAyOw0KPiAr ICB9DQo+ICsgIGlmICghKHggJiAweDEpKSB7DQo+ICsgICAgeCA+Pj0gMTsNCj4gKyAgICByZXQg fD0gMTsNCj4gKyAgfQ0KPiArICByZXR1cm4gcmV0Ow0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvQ3J5 cHRvUGtnL0xpYnJhcnkvSW50cmluc2ljTGliL0ludHJpbnNpY0xpYi5pbmYgYi9DcnlwdG9Qa2cv TGlicmFyeS9JbnRyaW5zaWNMaWIvSW50cmluc2ljTGliLmluZg0KPiBpbmRleCA4NmU3NGI1N2Ix MDkuLjY3OTZiMzliMDdjZiAxMDA2NDQNCj4gLS0tIGEvQ3J5cHRvUGtnL0xpYnJhcnkvSW50cmlu c2ljTGliL0ludHJpbnNpY0xpYi5pbmYNCj4gKysrIGIvQ3J5cHRvUGtnL0xpYnJhcnkvSW50cmlu c2ljTGliL0ludHJpbnNpY0xpYi5pbmYNCj4gQEAgLTE4LDcgKzE4LDcgQEANCj4gICMNCj4gDQo+ ICAjIFRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gaXMgZm9yIHJlZmVyZW5jZSBvbmx5IGFuZCBu b3QgcmVxdWlyZWQgYnkgdGhlIGJ1aWxkIHRvb2xzLg0KPiANCj4gICMNCj4gDQo+IC0jICBWQUxJ RF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElBMzIgWDY0DQo+IA0KPiArIyAgVkFMSURfQVJD SElURUNUVVJFUyAgICAgICAgICAgPSBJQTMyIFg2NCBSSVNDVjY0DQo+IA0KPiAgIw0KPiANCj4g DQo+IA0KPiAgW1NvdXJjZXNdDQo+IA0KPiBAQCAtNDMsNiArNDMsMTAgQEANCj4gIFtTb3VyY2Vz Llg2NF0NCj4gDQo+ICAgIENvcHlNZW0uYw0KPiANCj4gDQo+IA0KPiArW1NvdXJjZXMuUklTQ1Y2 NF0NCj4gDQo+ICsgIENvcHlNZW0uYw0KPiANCj4gKyAgQ29tcGlsZXJIZWxwZXIuYw0KPiANCj4g Kw0KPiANCj4gIFtQYWNrYWdlc10NCj4gDQo+ICAgIE1kZVBrZy9NZGVQa2cuZGVjDQo+IA0KPiAN Cj4gDQo+IC0tDQo+IDIuMjUuMQ0KDQo=