From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web10.1625.1676053319194850650 for ; Fri, 10 Feb 2023 10:21:59 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=geHXlF/u; spf=pass (domain: intel.com, ip: 192.55.52.115, 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=1676053319; x=1707589319; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=1SnxfjwVmFd/0SftD4mrdyuJK2RGc8Ayqwrqzd2r2Go=; b=geHXlF/uH2OsDRCkYEqLNsHFEpWkymxWP/sK4GPmFbFSuxAiyZ4UWlUM 0GuxlOPHJEbrm+sJdoWMuhIKqjtTBvHMgSijhLqh9sDlYRTJW2xCcw7V6 BD0KQ8HUDbOv359klWa3CEHT1U1B5Wwwl/u3DD8NgNZNFrpMQtRbBJhJb UxmOA1UwBw2vPPHaX37dnr+n4FdPbRV5e175FLKa36KIIBX2Ic2feCwhz /Ublw1XMMUHGLRJ8KZvQY8iYdJaO5T63A8FylX2MPuCxIIr7ohLMKSr+2 ods/YuUAk1feINJz6RAUSBHEhS2OGlLNtyJvS8kyFdGP2KjE5SgYYuaEy A==; X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="330499980" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="330499980" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Feb 2023 10:21:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10617"; a="698494444" X-IronPort-AV: E=Sophos;i="5.97,287,1669104000"; d="scan'208";a="698494444" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga008.jf.intel.com with ESMTP; 10 Feb 2023 10:21:52 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Fri, 10 Feb 2023 10:21:52 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Fri, 10 Feb 2023 10:21:51 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) 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, 10 Feb 2023 10:21:51 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Fri, 10 Feb 2023 10:21:50 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VDDDrGaODwTnG4bgZgdvt3Ehvh4FSjJBQ0ciLR+1/DmjMIFWxXaZoJuiUziobDaLICF8jf3D3PX59uxqVBrVV/b3+J+s21drQDcjY3KRH++n6W0WSl1C7HqP7QpY0iVRzaQgypVKqa8GF5C/zfe0uzW/7tGKyEBwbjNDj7qNShpS6DdiLOddoaRnnpGg8hbD845t+SVHczhVYsEWW7ZlRUYGBBO3r/T/6Mvx9Y/uw94x7X8bZHELvjchU4b2AQVtGwp/XO0hXdCEi/7SX0NofgERjxPA/zhfGm0GqoHQBiEVmLSmI1g00Zemggx6YOPYjYKMJF9CO0b1iJ9rR47/rg== 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=1SnxfjwVmFd/0SftD4mrdyuJK2RGc8Ayqwrqzd2r2Go=; b=Ev+02KLFo3NDG6/Mh8ZFq20UPqRhbDSjUyyAHkgFN1Sm07pQMdXkpf45bPZVPISPSw7uUwq6wx5dy26Xpdhedr+Jtot9UPvNO/A8fIgWph5RDZDNijFD24iWTo3WCd58BzUj3LKwNheNffJCueGUbeLcLkd8p6HPNEwTT/D+IaIVWRUZJ9+x5h78+cqIOsEOoW9Z/PlEHieVFvmlOniatQMCwwuNxi1E61LhJVsA9xfM8kfDYar1VgUYxoyxG8nY+AO1mfQvwVwdSNz/EZEIudHOCSx0T7dNTAwKzQMV/1onbIxJUCdxY/YK/BjDiJzhG1sFs1AO7pkSsTnEE0RPEg== 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 DS7PR11MB7885.namprd11.prod.outlook.com (2603:10b6:8:d8::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.17; Fri, 10 Feb 2023 18:21:49 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68%6]) with mapi id 15.20.6086.021; Fri, 10 Feb 2023 18:21:49 +0000 From: "Michael D Kinney" To: Sunil V L , "devel@edk2.groups.io" CC: "Gao, Liming" , "Liu, Zhiguang" , Abner Chang , "Warkentin, Andrei" , "Kinney, Michael D" Subject: Re: [edk2-staging/RiscV64QemuVirt PATCH V8 03/19] MdePkg: Add BaseRiscVSbiLib Library for RISC-V Thread-Topic: [edk2-staging/RiscV64QemuVirt PATCH V8 03/19] MdePkg: Add BaseRiscVSbiLib Library for RISC-V Thread-Index: AQHZPUuQ1f36tBKk40eGtVpQXyFbY67IfmSQ Date: Fri, 10 Feb 2023 18:21:48 +0000 Message-ID: References: <20230210123041.1489506-1-sunilvl@ventanamicro.com> <20230210123041.1489506-4-sunilvl@ventanamicro.com> In-Reply-To: <20230210123041.1489506-4-sunilvl@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_|DS7PR11MB7885:EE_ x-ms-office365-filtering-correlation-id: d9f64cbd-522c-4331-219c-08db0b93acb4 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: 4VoEkZdUiUW7O55DOj7hrUJgc3T5TfX7gO0q36d3+zBa7FtvgkfRBz5qgpjjLpP76Pt8oe3RCr6nPixh2rWJ5jcBx+K8Udt7CZRyoNYO33ecOl/hg2EU1kRRCW7sc3sfTck/V5DdmQdjyxR1+Tw3SY/rTg4YrQTqGIHhSOI4kpet1+S9wPfX7rp1LCxDAdln7phovwwbH2iW3TXLwKVTQqeMOiUCfDDi++rUHEh+MSDpQgE09di1GpeKellA8KWTG9Oz5ay77WZe29jhbTQVRMHOUZPx78jiu2wAGiPzjMlUcCu5TwQ4JJetqumofPIhAsFFgmgyHFVjYGF5mHu/F1otZJ6X4jSeT6tgt4CuZFwuF2znH5bdtqfTlupTAkmana+h/gPIjZDxIEALp75UizZ75AUDCnFMw6O+q7D0bdmUexxmvBV4gzwtNGJYNW9OITD8LBrxSJK3y0NsJbbPziUZWeDAuAKTb9fhnwWiE2z5jolRVwkpEOTaF9sJJrkThgCCcsZLyn17tJbrQds/XtY8bV28DWZko4QqKnA/7cxZU5t4jCSlvul2Cd0TjoPa6TE8do+i0dytOlROjRGpXo0EXTRbqaEhDBtlLBweJVk4eAJDuqZlcJ+zf4PeqNS8PPt+sGQErUOyYLKCv856jugp+d8IbeGqYwJv/JaGDL2UuKes5TH0/bifDr3VQeomx4LNyxSnSwoZuU9xxBtPCOO5cB/kJ0SkMNBcfi02oXxhRugJFJV6//gBMF4oiQo+JoREHSBj715MEaeEOhX+Sg== 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)(39860400002)(366004)(396003)(376002)(136003)(346002)(451199018)(66446008)(30864003)(5660300002)(7696005)(2906002)(83380400001)(66476007)(82960400001)(76116006)(110136005)(38070700005)(55016003)(4326008)(8676002)(122000001)(54906003)(38100700002)(66946007)(8936002)(52536014)(107886003)(66556008)(64756008)(71200400001)(186003)(9686003)(33656002)(6506007)(41300700001)(478600001)(966005)(86362001)(26005)(316002)(53546011);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VTJFSUU0SVIwNFg5UHpWUlZMek9aNkV1WGE1aEJGazRBY0REVkNZblBvc0VP?= =?utf-8?B?cm9pTkV4M09sa0ZkSkVkakc5WXIzaXJaZUN5RTcxRXZZeThETTB6ZVRWd3Nq?= =?utf-8?B?ZU91YzRyUjBWcW1TdzloUjU1NXFScWpwRmxBM2swRTh1NEJ0NFZxMzBnbzZM?= =?utf-8?B?ZFVmUy9saVN2M1hETlY5RFJ4eVh6d0ZtWmFFbUlFTFFYazQ4Ry8ySk1FYU5j?= =?utf-8?B?Nmdna3Y1NUNQVDlSY0c2bFYzM3dDWHZLNGFoKzNiOUxRREVaY0JuSGZjbXhx?= =?utf-8?B?MHlyWm1TSk9PMTE2TFA2MHNaTGFtVnpmYXN4SUV0bUY4blQrQ0JVVDFsejRS?= =?utf-8?B?eEYvMkt6RUM0bEdEMFZRSjlRSXdXbGdPS0lXV041MzVOVVlzTGRNTlJ4elI1?= =?utf-8?B?V0pjb1BZVklVVEFUUzl4VkRVRXNiaVRZUU9Zb2laYTkxZjEwQjdITCtnWGE3?= =?utf-8?B?YXRsOU84YzlSSGw5TmlZcEhoc0x2S054Z0RGQzNCVHJiSkRqVTFJVHlMLzNq?= =?utf-8?B?L1dNNzRWNmluaHdGemovSnRLWk92VHUrUCt2ZVFpTWxJVHMwcmZaODl1bk54?= =?utf-8?B?MG1zWFhUWU5FcHZtNTQ4eWNlWUEzMnZMNWFiSDJPLzdYM3FEeDFWNFBWSnBz?= =?utf-8?B?UlRqU2hjdHIvck9UMFR1NXVPYVlTYW50U29RcEJpRzZ1UWZkS0kwUGQ4d25N?= =?utf-8?B?ZlRjMXR2WFBOOXJrQUNOc1YyZ1VEbUE2Q1RpeHZqb1ZibW9US0RiSkRtSXdi?= =?utf-8?B?QmNoaEVJYzRpU2VPVTF6c1ZXeTVoR0RWWUswZGFYek5DenhVeFJXQTIrUWUw?= =?utf-8?B?Ym81TW9IZEF2T2h3eW0vTVlRTE1yLy93Mlp6b2RLWjlhYTc5Z1pOR0kwbzUz?= =?utf-8?B?L09xc1FjeGduaDl2QklLNkhtSVBXeGpmbGNmVFlRMTQvYmNFZjcrNkRjMGFQ?= =?utf-8?B?bFZjNXJLVDNTemNzMis0bUMwQis4NkhJUjgvZEZhaHYyNkVLeC93V1RqSzVq?= =?utf-8?B?OVZVREc3VlEzSU9DVnpCNGpWdGRnZmdMVW9mV1VEOHZRMXhiei9xUHk3L3Q1?= =?utf-8?B?WG93TGpJcHdaN0NMOVJvUlk4RzlvSHZnRlBJb1NYZzljZTl1RlNXbjZodUtl?= =?utf-8?B?b2RxeHF5anBYbGo0OWUrU1hRMnl4NXNGb2tnSWpWbkdXTlh1WjFEOHUweWJM?= =?utf-8?B?cFJuY3lVMUYvVkVMclE2M1VuL2VHNFNwZy8wWFNEUlIwMkdhRklhMENsd2pt?= =?utf-8?B?Znc4Sk05dWhmaXJWMUlIYXYwL0FXQUszU3cxT001SnZoRTFTTmpvRjlWazVU?= =?utf-8?B?WXpjaG91OEJpVkwzUHNveUIwbmhEUDY3OXNUbHVjdkI0bVhva0dMMTJpRmNj?= =?utf-8?B?dFF6OWlWNjRmWm01K0lpalZpYjZSeEN1NFN0R0JQdzFPNXdxN0d2dDVkWU5a?= =?utf-8?B?YzVid0dPNXArR3QxbkJpQkl0Y2ptYkJOQ0dIOUdLdjk1SmZsVmZjRWpqeEg2?= =?utf-8?B?cmZraWtGdDlLUVRiaHQzUkpZUk1SSUdDbzJwMVdCemV5N21LcGF5WXkwRndk?= =?utf-8?B?NnBkT2ZhN1VQNXFqY01YZjFzQmY0SllMbHErMDNmTkhMZ3FUNVRoaTA4RnNN?= =?utf-8?B?bDNLUGRiNGYrU2I2QjJSZ2ZBTkhCbG1HVnhEOUExWlg4YmVCTm13c0dsbHg3?= =?utf-8?B?THJwMzBpTmw4OVY5VGZMK2hRcWxsT2w3SjEwRExwYmtFUWJmblJVbk5CT0ZJ?= =?utf-8?B?MTBTS2hRYzhYRmhROEZYaDhoWTV4K2NnMzNod1RRd0pwOXVFYVBxcW9qTFlN?= =?utf-8?B?RjJ1aGF1QkRJZ0VUOXJ1WlRyUjdKei80WEpTYkQ3UDRWRkhRdFFwWlZwb2FS?= =?utf-8?B?cm9XR2YwekJLWnh6ZU5LMFVpdG93RkREKzY1K2h4bFNQbkdHSzFCSHFhclA5?= =?utf-8?B?WVZKS0JWT1hGV1VYdjNIblBpZ0tzZFBEck11eEZYREQxRXRybnJVcC9YMzM5?= =?utf-8?B?RDRiamJhUlRBRmVzUWhYN04vWER6YkVKVDh2YmZjMS9tNlRuOTIwMmVXZWpG?= =?utf-8?B?WGdvK0FqSVVaSktNTVYySThSdEF6cGJyUGdPei9HWjh4Zm8yUGpwTG9TSzI2?= =?utf-8?B?SUJJQy9RT3MxRzFtQW0zOU00bTh3VFM5WTJtZE5XSFFPQ0ZGKytiU2NzQmJ2?= =?utf-8?B?eUE9PQ==?= 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: d9f64cbd-522c-4331-219c-08db0b93acb4 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2023 18:21:48.8172 (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: gIVuDlJNYHuKf+jueF0EZJFxx2N69gffPdXEA1xAT3Y5qiEfrB1qigIXbVE5xH6JKfd6BMVnB+/gQMxOViBrjQ8vhttFxnSqi8eShEVnYnA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR11MB7885 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 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFN1bmlsIFYgTCA8c3Vu aWx2bEB2ZW50YW5hbWljcm8uY29tPg0KPiBTZW50OiBGcmlkYXksIEZlYnJ1YXJ5IDEwLCAyMDIz IDQ6MzAgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZw0KPiA8emhpZ3VhbmcubGl1QGludGVsLmNv bT47IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPjsgV2Fya2VudGluLCBBbmRyZWkg PGFuZHJlaS53YXJrZW50aW5AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbZWRrMi1zdGFnaW5nL1Jp c2NWNjRRZW11VmlydCBQQVRDSCBWOCAwMy8xOV0gTWRlUGtnOiBBZGQgQmFzZVJpc2NWU2JpTGli IExpYnJhcnkgZm9yIFJJU0MtVg0KPiANCj4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29y ZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwNzYNCj4gDQo+IFRoaXMgbGlicmFyeSBpcyByZXF1aXJl ZCB0byBtYWtlIFNCSSBlY2FsbHMgZnJvbSB0aGUgUy1tb2RlIEVESzIuDQo+IFRoaXMgaXMgbW9z dGx5IGNvcGllZCBmcm9tDQo+IGVkazItcGxhdGZvcm1zL1NpbGljb24vUklTQy1WL1Byb2Nlc3Nv clBrZy9MaWJyYXJ5L1Jpc2NWRWRrMlNiaUxpYg0KPiANCj4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkg PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogTGltaW5nIEdhbyA8Z2FvbGltaW5n QGJ5b3NvZnQuY29tLmNuPg0KPiBDYzogWmhpZ3VhbmcgTGl1IDx6aGlndWFuZy5saXVAaW50ZWwu Y29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBTdW5pbCBWIEwgPHN1bmlsdmxAdmVudGFuYW1pY3JvLmNv bT4NCj4gQWNrZWQtYnk6IEFibmVyIENoYW5nIDxhYm5lci5jaGFuZ0BhbWQuY29tPg0KPiBSZXZp ZXdlZC1ieTogQW5kcmVpIFdhcmtlbnRpbiA8YW5kcmVpLndhcmtlbnRpbkBpbnRlbC5jb20+DQo+ IC0tLQ0KPiAgTWRlUGtnL01kZVBrZy5kZWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDQgKw0KPiAgTWRlUGtnL01kZVBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDMgKw0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VS aXNjVlNiaUxpYi5pbmYgfCAgMjYgKysrDQo+ICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VS aXNjVlNiaUxpYi5oICAgICAgICAgICB8IDE1NCArKysrKysrKysrKysrDQo+ICBNZGVQa2cvTGli cmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmMgICB8IDIzMSArKysrKysrKysr KysrKysrKysrKw0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL1Jpc2NWU2JpRWNh bGwuUyAgICAgfCAgNDIgKysrKw0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA0NjAgaW5zZXJ0aW9ucygr KQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9NZGVQa2cuZGVjIGIvTWRlUGtnL01kZVBrZy5k ZWMNCj4gaW5kZXggM2QwOGYyMGQxNWIwLi5jYTJlNGRjZjgxNWMgMTAwNjQ0DQo+IC0tLSBhL01k ZVBrZy9NZGVQa2cuZGVjDQo+ICsrKyBiL01kZVBrZy9NZGVQa2cuZGVjDQo+IEBAIC0zMTYsNiAr MzE2LDEwIEBAIFtMaWJyYXJ5Q2xhc3Nlcy5JQTMyLCBMaWJyYXJ5Q2xhc3Nlcy5YNjRdDQo+ICAg ICMjICBAbGlicmFyeWNsYXNzICBQcm92aWRlcyBmdW5jdGlvbiB0byBzdXBwb3J0IFREWCBwcm9j ZXNzaW5nLg0KPiAgICBUZHhMaWJ8SW5jbHVkZS9MaWJyYXJ5L1RkeExpYi5oDQo+IA0KPiArW0xp YnJhcnlDbGFzc2VzLlJJU0NWNjRdDQo+ICsgICMjICBAbGlicmFyeWNsYXNzICBQcm92aWRlcyBm dW5jdGlvbiB0byBtYWtlIGVjYWxscyB0byBTQkkNCj4gKyAgQmFzZVJpc2NWU2JpTGlifEluY2x1 ZGUvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIuaA0KPiArDQo+ICBbR3VpZHNdDQo+ICAgICMNCj4g ICAgIyBHVUlEIGRlZmluZWQgaW4gVUVGSTIuMS9VRUZJMi4wL0VGSTEuMQ0KPiBkaWZmIC0tZ2l0 IGEvTWRlUGtnL01kZVBrZy5kc2MgYi9NZGVQa2cvTWRlUGtnLmRzYw0KPiBpbmRleCAzMmE4NTJk YzQ2NmUuLjBhYzc2MThiNDYyMyAxMDA2NDQNCj4gLS0tIGEvTWRlUGtnL01kZVBrZy5kc2MNCj4g KysrIGIvTWRlUGtnL01kZVBrZy5kc2MNCj4gQEAgLTE5MCw0ICsxOTAsNyBAQCBbQ29tcG9uZW50 cy5BUk0sIENvbXBvbmVudHMuQUFSQ0g2NF0NCj4gICAgTWRlUGtnL0xpYnJhcnkvQmFzZUlvTGli SW50cmluc2ljL0Jhc2VJb0xpYkludHJpbnNpY0FybVZpcnQuaW5mDQo+ICAgIE1kZVBrZy9MaWJy YXJ5L0Jhc2VTdGFja0NoZWNrTGliL0Jhc2VTdGFja0NoZWNrTGliLmluZg0KPiANCj4gK1tDb21w b25lbnRzLlJJU0NWNjRdDQo+ICsgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNl UmlzY1ZTYmlMaWIuaW5mDQo+ICsNCj4gIFtCdWlsZE9wdGlvbnNdDQo+IGRpZmYgLS1naXQgYS9N ZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmluZiBiL01kZVBr Zy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuaW5mDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDZmZDNmNjYzYWYxDQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNj VlNiaUxpYi5pbmYNCj4gQEAgLTAsMCArMSwyNiBAQA0KPiArIyMgQGZpbGUNCj4gKyMgUklTQy1W IExpYnJhcnkgdG8gY2FsbCBTQkkgZWNhbGxzDQo+ICsjDQo+ICsjICBDb3B5cmlnaHQgKGMpIDIw MjAsIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gKyMNCj4gKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt Mi1DbGF1c2UtUGF0ZW50DQo+ICsjDQo+ICsjIw0KPiArDQo+ICtbRGVmaW5lc10NCj4gKyAgSU5G X1ZFUlNJT04gICAgICAgICA9IDB4MDAwMTAwMWINCj4gKyAgQkFTRV9OQU1FICAgICAgICAgICA9 IEJhc2VSaXNjVlNiaUxpYg0KPiArICBGSUxFX0dVSUQgICAgICAgICAgID0gRDc0MkNGM0QtRTYw MC00MDA5LThGQjUtMzE4MDczMDA4NTA4DQo+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgPSBCQVNF DQo+ICsgIFZFUlNJT05fU1RSSU5HICAgICAgPSAxLjANCj4gKyAgTElCUkFSWV9DTEFTUyAgICAg ICA9IFJpc2NWU2JpTGliDQo+ICsNCj4gK1tTb3VyY2VzXQ0KPiArICBCYXNlUmlzY1ZTYmlMaWIu Yw0KPiArICBSaXNjVlNiaUVjYWxsLlMNCj4gKw0KPiArW1BhY2thZ2VzXQ0KPiArICBNZGVQa2cv TWRlUGtnLmRlYw0KPiArDQo+ICtbTGlicmFyeUNsYXNzZXNdDQo+ICsgIEJhc2VMaWINCj4gZGlm ZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliLmggYi9NZGVQ a2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi5oDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZTc1NTIwYjRiODg4DQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIuaA0KPiBAQCAt MCwwICsxLDE1NCBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIExpYnJhcnkgdG8gY2FsbCB0aGUgUklT Qy1WIFNCSSBlY2FsbHMNCj4gKw0KPiArICBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgSGV3bGV0 dCBQYWNrYXJkIERldmVsb3BtZW50IExQLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKw0K PiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ ICsgIEBwYXIgR2xvc3Nhcnk6DQo+ICsgICAgLSBIYXJ0IC0gSGFyZHdhcmUgVGhyZWFkLCBzaW1p bGFyIHRvIGEgQ1BVIGNvcmUNCj4gKw0KPiArICBDdXJyZW50bHksIEVESzIgbmVlZHMgdG8gY2Fs bCBTQkkgb25seSB0byBzZXQgdGhlIHRpbWUgYW5kIHRvIGRvIHN5c3RlbSByZXNldC4NCj4gKw0K PiArKiovDQo+ICsNCj4gKyNpZm5kZWYgUklTQ1ZfU0JJX0xJQl9IXw0KPiArI2RlZmluZSBSSVND Vl9TQklfTElCX0hfDQo+ICsNCj4gKyNpbmNsdWRlIDxVZWZpLmg+DQo+ICsNCj4gKy8qIFNCSSBF eHRlbnNpb24gSURzICovDQo+ICsjZGVmaW5lIFNCSV9FWFRfVElNRSAgMHg1NDQ5NEQ0NQ0KPiAr I2RlZmluZSBTQklfRVhUX1NSU1QgIDB4NTM1MjUzNTQNCj4gKw0KPiArLyogU0JJIGZ1bmN0aW9u IElEcyBmb3IgVElNRSBleHRlbnNpb24qLw0KPiArI2RlZmluZSBTQklfRVhUX1RJTUVfU0VUX1RJ TUVSICAweDANCj4gKw0KPiArLyogU0JJIGZ1bmN0aW9uIElEcyBmb3IgU1JTVCBleHRlbnNpb24g Ki8NCj4gKyNkZWZpbmUgU0JJX0VYVF9TUlNUX1JFU0VUICAweDANCj4gKw0KPiArI2RlZmluZSBT QklfU1JTVF9SRVNFVF9UWVBFX1NIVVRET1dOICAgICAweDANCj4gKyNkZWZpbmUgU0JJX1NSU1Rf UkVTRVRfVFlQRV9DT0xEX1JFQk9PVCAgMHgxDQo+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1RZ UEVfV0FSTV9SRUJPT1QgIDB4Mg0KPiArDQo+ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1JFQVNP Tl9OT05FICAgICAweDANCj4gKyNkZWZpbmUgU0JJX1NSU1RfUkVTRVRfUkVBU09OX1NZU0ZBSUwg IDB4MQ0KPiArDQo+ICsvKiBTQkkgcmV0dXJuIGVycm9yIGNvZGVzICovDQo+ICsjZGVmaW5lIFNC SV9TVUNDRVNTICAgICAgICAgICAgICAgIDANCj4gKyNkZWZpbmUgU0JJX0VSUl9GQUlMRUQgICAg ICAgICAgICAgLTENCj4gKyNkZWZpbmUgU0JJX0VSUl9OT1RfU1VQUE9SVEVEICAgICAgLTINCj4g KyNkZWZpbmUgU0JJX0VSUl9JTlZBTElEX1BBUkFNICAgICAgLTMNCj4gKyNkZWZpbmUgU0JJX0VS Ul9ERU5JRUQgICAgICAgICAgICAgLTQNCj4gKyNkZWZpbmUgU0JJX0VSUl9JTlZBTElEX0FERFJF U1MgICAgLTUNCj4gKyNkZWZpbmUgU0JJX0VSUl9BTFJFQURZX0FWQUlMQUJMRSAgLTYNCj4gKyNk ZWZpbmUgU0JJX0VSUl9BTFJFQURZX1NUQVJURUQgICAgLTcNCj4gKyNkZWZpbmUgU0JJX0VSUl9B TFJFQURZX1NUT1BQRUQgICAgLTgNCj4gKw0KPiArI2RlZmluZSBTQklfTEFTVF9FUlIgIFNCSV9F UlJfQUxSRUFEWV9TVE9QUEVEDQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gKyAgVUlOVDY0 ICAgIEJvb3RIYXJ0SWQ7DQo+ICsgIFZPSUQgICAgICAqUGVpU2VydmljZVRhYmxlOyAgICAvLyBQ RUkgU2VydmljZSB0YWJsZQ0KPiArICBWT0lEICAgICAgKlByZVBpSG9iTGlzdDsgICAgICAgLy8g UHJlIFBJIEhvYiBMaXN0DQo+ICsgIFVJTlQ2NCAgICBGbGF0dGVuZWREZXZpY2VUcmVlOyAvLyBQ b2ludGVyIHRvIEZsYXR0ZW5lZCBEZXZpY2UgdHJlZQ0KPiArfSBFRklfUklTQ1ZfRklSTVdBUkVf Q09OVEVYVDsNCj4gKw0KPiArLy8NCj4gKy8vIEVESzIgT3BlblNCSSBmaXJtd2FyZSBleHRlbnNp b24gcmV0dXJuIHN0YXR1cy4NCj4gKy8vDQo+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ICsgIFVJTlRO ICAgIEVycm9yOyAvLy88IFNCSSBzdGF0dXMgY29kZQ0KPiArICBVSU5UTiAgICBWYWx1ZTsgLy8v PCBWYWx1ZSByZXR1cm5lZA0KPiArfSBTQklfUkVUOw0KPiArDQo+ICtWT0lEDQo+ICtFRklBUEkN Cj4gK1NiaVNldFRpbWVyICgNCj4gKyAgSU4gIFVJTlQ2NCAgVGltZQ0KPiArICApOw0KPiArDQo+ ICtFRklfU1RBVFVTDQo+ICtFRklBUEkNCj4gK1NiaVN5c3RlbVJlc2V0ICgNCj4gKyAgSU4gIFVJ TlROICBSZXNldFR5cGUsDQo+ICsgIElOICBVSU5UTiAgUmVzZXRSZWFzb24NCj4gKyAgKTsNCj4g Kw0KPiArLyoqDQo+ICsgIEdldCBmaXJtd2FyZSBjb250ZXh0IG9mIHRoZSBjYWxsaW5nIGhhcnQu DQo+ICsNCj4gKyAgQHBhcmFtW291dF0gRmlybXdhcmVDb250ZXh0ICAgICAgVGhlIGZpcm13YXJl IGNvbnRleHQgcG9pbnRlci4NCj4gKyoqLw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtHZXRGaXJt d2FyZUNvbnRleHQgKA0KPiArICBPVVQgRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICoqRmly bXdhcmVDb250ZXh0DQo+ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArICBTZXQgZmlybXdhcmUgY29u dGV4dCBvZiB0aGUgY2FsbGluZyBoYXJ0Lg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gRmlybXdhcmVD b250ZXh0ICAgICAgIFRoZSBmaXJtd2FyZSBjb250ZXh0IHBvaW50ZXIuDQo+ICsqKi8NCj4gK1ZP SUQNCj4gK0VGSUFQSQ0KPiArU2V0RmlybXdhcmVDb250ZXh0ICgNCj4gKyAgSU4gRUZJX1JJU0NW X0ZJUk1XQVJFX0NPTlRFWFQgICpGaXJtd2FyZUNvbnRleHQNCj4gKyAgKTsNCj4gKw0KPiArLyoq DQo+ICsgIEdldCBwb2ludGVyIHRvIE9wZW5TQkkgRmlybXdhcmUgQ29udGV4dA0KPiArDQo+ICsg IEdldCB0aGUgcG9pbnRlciBvZiBmaXJtd2FyZSBjb250ZXh0Lg0KPiArDQo+ICsgIEBwYXJhbSAg ICBGaXJtd2FyZUNvbnRleHRQdHIgICBQb2ludGVyIHRvIHJldHJpZXZlIHBvaW50ZXIgdG8gdGhl DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXJtd2FyZSBDb250ZXh0Lg0K PiArKiovDQo+ICtWT0lEDQo+ICtFRklBUEkNCj4gK0dldEZpcm13YXJlQ29udGV4dFBvaW50ZXIg KA0KPiArICBJTiBPVVQgRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICoqRmlybXdhcmVDb250 ZXh0UHRyDQo+ICsgICk7DQo+ICsNCj4gKy8qKg0KPiArICBTZXQgcG9pbnRlciB0byBPcGVuU0JJ IEZpcm13YXJlIENvbnRleHQNCj4gKw0KPiArICBTZXQgdGhlIHBvaW50ZXIgb2YgZmlybXdhcmUg Y29udGV4dC4NCj4gKw0KPiArICBAcGFyYW0gICAgRmlybXdhcmVDb250ZXh0UHRyICAgUG9pbnRl ciB0byBGaXJtd2FyZSBDb250ZXh0Lg0KPiArKiovDQo+ICtWT0lEDQo+ICtFRklBUEkNCj4gK1Nl dEZpcm13YXJlQ29udGV4dFBvaW50ZXIgKA0KPiArICBJTiBFRklfUklTQ1ZfRklSTVdBUkVfQ09O VEVYVCAgKkZpcm13YXJlQ29udGV4dFB0cg0KPiArICApOw0KPiArDQo+ICsvKioNCj4gKyAgTWFr ZSBFQ0FMTCBpbiBhc3NlbWJseQ0KPiArDQo+ICsgIFN3aXRjaCB0byBNLW1vZGUNCj4gKw0KPiAr ICBAcGFyYW1baW4sb3V0XSAgIEFyZzANCj4gKyAgQHBhcmFtW2luLG91dF0gICBBcmcxDQo+ICsg IEBwYXJhbVtpbl0gICAgICAgQXJnMg0KPiArICBAcGFyYW1baW5dICAgICAgIEFyZzMNCj4gKyAg QHBhcmFtW2luXSAgICAgICBBcmc0DQo+ICsgIEBwYXJhbVtpbl0gICAgICAgQXJnNQ0KPiArICBA cGFyYW1baW5dICAgICAgIEZJRA0KPiArICBAcGFyYW1baW5dICAgICAgIEVYVA0KPiArKiovDQo+ ICtWT0lEDQo+ICtFRklBUEkNCj4gK1Jpc2NWU2JpRWNhbGwgKA0KPiArICBJTiBPVVQgVUlOVE4g ICpBcmcwLA0KPiArICBJTiBPVVQgVUlOVE4gICpBcmcxLA0KPiArICBJTiBVSU5UTiAgICAgIEFy ZzIsDQo+ICsgIElOIFVJTlROICAgICAgQXJnMywNCj4gKyAgSU4gVUlOVE4gICAgICBBcmc0LA0K PiArICBJTiBVSU5UTiAgICAgIEFyZzUsDQo+ICsgIElOIFVJTlROICAgICAgRmlkLA0KPiArICBJ TiBVSU5UTiAgICAgIEV4dA0KPiArICApOw0KPiArDQo+ICsjZW5kaWYNCj4gZGlmZiAtLWdpdCBh L01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuYyBiL01kZVBr Zy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuYw0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjJiYThmNWVkMzY2YQ0KPiAtLS0gL2Rl di9udWxsDQo+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNlUmlzY1ZT YmlMaWIuYw0KPiBAQCAtMCwwICsxLDIzMSBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIEluc3RhbmNl IG9mIHRoZSBTQkkgZWNhbGwgbGlicmFyeS4NCj4gKw0KPiArICBJdCBhbGxvd3MgY2FsbGluZyBh biBTQkkgZnVuY3Rpb24gdmlhIGFuIGVjYWxsIGZyb20gUy1Nb2RlLg0KPiArDQo+ICsgIENvcHly aWdodCAoYykgMjAyMS0yMDIyLCBIZXdsZXR0IFBhY2thcmQgRGV2ZWxvcG1lbnQgTFAuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArDQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsNCj4gKyoqLw0KPiArDQo+ICsjaW5jbHVkZSA8TGlicmFy eS9CYXNlTGliLmg+DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQo+ICsj aW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZVJp c2NWU2JpTGliLmg+DQo+ICsNCj4gKy8vDQo+ICsvLyBNYXhpbXVtIGFyZ3VtZW50cyBmb3IgU0JJ IGVjYWxsDQo+ICsjZGVmaW5lIFNCSV9DQUxMX01BWF9BUkdTICA2DQo+ICsNCj4gKy8qKg0KPiAr ICBDYWxsIFNCSSBjYWxsIHVzaW5nIGVjYWxsIGluc3RydWN0aW9uLg0KPiArDQo+ICsgIEFzc2Vy dHMgd2hlbiBOdW1BcmdzIGV4Y2VlZHMgU0JJX0NBTExfTUFYX0FSR1MuDQo+ICsNCj4gKyAgQHBh cmFtW2luXSBFeHRJZCAgICBTQkkgZXh0ZW5zaW9uIElELg0KPiArICBAcGFyYW1baW5dIEZ1bmNJ ZCAgIFNCSSBmdW5jdGlvbiBJRC4NCj4gKyAgQHBhcmFtW2luXSBOdW1BcmdzICBOdW1iZXIgb2Yg YXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGVjYWxsLg0KPiArICBAcGFyYW1baW5dIC4uLiAgICAg IEFyZ3VtZW50IGxpc3QgZm9yIHRoZSBlY2FsbC4NCj4gKw0KPiArICBAcmV0dmFsICBSZXR1cm5z IFNCSV9SRVQgc3RydWN0dXJlIHdpdGggdmFsdWUgYW5kIGVycm9yIGNvZGUuDQo+ICsNCj4gKyoq Lw0KPiArU1RBVElDDQo+ICtTQklfUkVUDQo+ICtFRklBUEkNCj4gK1NiaUNhbGwgKA0KPiArICBJ TiAgVUlOVE4gIEV4dElkLA0KPiArICBJTiAgVUlOVE4gIEZ1bmNJZCwNCj4gKyAgSU4gIFVJTlRO ICBOdW1BcmdzLA0KPiArICAuLi4NCj4gKyAgKQ0KPiArew0KPiArICBVSU5UTiAgICBJOw0KPiAr ICBTQklfUkVUICBSZXQ7DQo+ICsgIFVJTlROICAgIEFyZ3NbU0JJX0NBTExfTUFYX0FSR1NdOw0K PiArICBWQV9MSVNUICBBcmdMaXN0Ow0KPiArDQo+ICsgIFZBX1NUQVJUIChBcmdMaXN0LCBOdW1B cmdzKTsNCj4gKw0KPiArICBpZiAoTnVtQXJncyA+IFNCSV9DQUxMX01BWF9BUkdTKSB7DQo+ICsg ICAgUmV0LkVycm9yID0gU0JJX0VSUl9JTlZBTElEX1BBUkFNOw0KPiArICAgIFJldC5WYWx1ZSA9 IC0xOw0KPiArICAgIHJldHVybiBSZXQ7DQo+ICsgIH0NCj4gKw0KPiArICBmb3IgKEkgPSAwOyBJ IDwgU0JJX0NBTExfTUFYX0FSR1M7IEkrKykgew0KPiArICAgIGlmIChJIDwgTnVtQXJncykgew0K PiArICAgICAgQXJnc1tJXSA9IFZBX0FSRyAoQXJnTGlzdCwgVUlOVE4pOw0KPiArICAgIH0gZWxz ZSB7DQo+ICsgICAgICAvLyBEZWZhdWx0IHRvIDAgZm9yIGFsbCBhcmd1bWVudHMgdGhhdCBhcmUg bm90IGdpdmVuDQo+ICsgICAgICBBcmdzW0ldID0gMDsNCj4gKyAgICB9DQo+ICsgIH0NCj4gKw0K PiArICBWQV9FTkQgKEFyZ0xpc3QpOw0KPiArDQo+ICsgIC8vIEVDQUxMIHVwZGF0ZXMgdGhlIGEw IGFuZCBhMSByZWdpc3RlcnMgYXMgcmV0dXJuIHZhbHVlcy4NCj4gKyAgUmlzY1ZTYmlFY2FsbCAo DQo+ICsgICAgJkFyZ3NbMF0sDQo+ICsgICAgJkFyZ3NbMV0sDQo+ICsgICAgQXJnc1syXSwNCj4g KyAgICBBcmdzWzNdLA0KPiArICAgIEFyZ3NbNF0sDQo+ICsgICAgQXJnc1s1XSwNCj4gKyAgICAo VUlOVE4pKEZ1bmNJZCksDQo+ICsgICAgKFVJTlROKShFeHRJZCkNCj4gKyAgICApOw0KPiArDQo+ ICsgIFJldC5FcnJvciA9IEFyZ3NbMF07DQo+ICsgIFJldC5WYWx1ZSA9IEFyZ3NbMV07DQo+ICsg IHJldHVybiBSZXQ7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBUcmFuc2xhdGUgU0JJIGVycm9y IGNvZGUgdG8gRUZJIHN0YXR1cy4NCj4gKw0KPiArICBAcGFyYW1baW5dIFNiaUVycm9yICAgU0JJ IGVycm9yIGNvZGUNCj4gKyAgQHJldHZhbCBFRklfU1RBVFVTDQo+ICsqKi8NCj4gK1NUQVRJQw0K PiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtUcmFuc2xhdGVFcnJvciAoDQo+ICsgIElOICBV SU5UTiAgU2JpRXJyb3INCj4gKyAgKQ0KPiArew0KPiArICBzd2l0Y2ggKFNiaUVycm9yKSB7DQo+ ICsgICAgY2FzZSBTQklfU1VDQ0VTUzoNCj4gKyAgICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4g KyAgICBjYXNlIFNCSV9FUlJfRkFJTEVEOg0KPiArICAgICAgcmV0dXJuIEVGSV9ERVZJQ0VfRVJS T1I7DQo+ICsgICAgICBicmVhazsNCj4gKyAgICBjYXNlIFNCSV9FUlJfTk9UX1NVUFBPUlRFRDoN Cj4gKyAgICAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQo+ICsgICAgICBicmVhazsNCj4gKyAg ICBjYXNlIFNCSV9FUlJfSU5WQUxJRF9QQVJBTToNCj4gKyAgICAgIHJldHVybiBFRklfSU5WQUxJ RF9QQVJBTUVURVI7DQo+ICsgICAgICBicmVhazsNCj4gKyAgICBjYXNlIFNCSV9FUlJfREVOSUVE Og0KPiArICAgICAgcmV0dXJuIEVGSV9BQ0NFU1NfREVOSUVEOw0KPiArICAgICAgYnJlYWs7DQo+ ICsgICAgY2FzZSBTQklfRVJSX0lOVkFMSURfQUREUkVTUzoNCj4gKyAgICAgIHJldHVybiBFRklf TE9BRF9FUlJPUjsNCj4gKyAgICAgIGJyZWFrOw0KPiArICAgIGNhc2UgU0JJX0VSUl9BTFJFQURZ X0FWQUlMQUJMRToNCj4gKyAgICAgIHJldHVybiBFRklfQUxSRUFEWV9TVEFSVEVEOw0KPiArICAg ICAgYnJlYWs7DQo+ICsgICAgZGVmYXVsdDoNCj4gKyAgICAgIC8vDQo+ICsgICAgICAvLyBSZWFj aGVzIGhlcmUgb25seSBpZiBTQkkgaGFzIGRlZmluZWQgYSBuZXcgZXJyb3IgdHlwZQ0KPiArICAg ICAgLy8NCj4gKyAgICAgIEFTU0VSVCAoRkFMU0UpOw0KPiArICAgICAgcmV0dXJuIEVGSV9VTlNV UFBPUlRFRDsNCj4gKyAgICAgIGJyZWFrOw0KPiArICB9DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiAr ICBDbGVhciBwZW5kaW5nIHRpbWVyIGludGVycnVwdCBiaXQgYW5kIHNldCB0aW1lciBmb3IgbmV4 dCBldmVudCBhZnRlciBUaW1lLg0KPiArDQo+ICsgIFRvIGNsZWFyIHRoZSB0aW1lciB3aXRob3V0 IHNjaGVkdWxpbmcgYSB0aW1lciBldmVudCwgc2V0IFRpbWUgdG8gYQ0KPiArICBwcmFjdGljYWxs eSBpbmZpbml0ZSB2YWx1ZSBvciBtYXNrIHRoZSB0aW1lciBpbnRlcnJ1cHQgYnkgY2xlYXJpbmcg c2llLlNUSUUuDQo+ICsNCj4gKyAgQHBhcmFtW2luXSAgVGltZSAgICAgICAgICAgICAgICAgVGhl IHRpbWUgb2Zmc2V0IHRvIHRoZSBuZXh0IHNjaGVkdWxlZCB0aW1lciBpbnRlcnJ1cHQuDQo+ICsq Ki8NCj4gK1ZPSUQNCj4gK0VGSUFQSQ0KPiArU2JpU2V0VGltZXIgKA0KPiArICBJTiAgVUlOVDY0 ICBUaW1lDQo+ICsgICkNCj4gK3sNCj4gKyAgU2JpQ2FsbCAoU0JJX0VYVF9USU1FLCBTQklfRVhU X1RJTUVfU0VUX1RJTUVSLCAxLCBUaW1lKTsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIFJlc2V0 IHRoZSBzeXN0ZW0gdXNpbmcgU1JTVCBTQkkgZXh0ZW5pb24NCj4gKw0KPiArICBAcGFyYW1baW5d ICBSZXNldFR5cGUgICAgICAgICAgICBUaGUgU1JTVCBTeXN0ZW0gUmVzZXQgVHlwZS4NCj4gKyAg QHBhcmFtW2luXSAgUmVzZXRSZWFzb24gICAgICAgICAgVGhlIFNSU1QgU3lzdGVtIFJlc2V0IFJl YXNvbi4NCj4gKyoqLw0KPiArRUZJX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtTYmlTeXN0ZW1SZXNl dCAoDQo+ICsgIElOICBVSU5UTiAgUmVzZXRUeXBlLA0KPiArICBJTiAgVUlOVE4gIFJlc2V0UmVh c29uDQo+ICsgICkNCj4gK3sNCj4gKyAgU0JJX1JFVCAgUmV0Ow0KPiArDQo+ICsgIFJldCA9IFNi aUNhbGwgKA0KPiArICAgICAgICAgIFNCSV9FWFRfU1JTVCwNCj4gKyAgICAgICAgICBTQklfRVhU X1NSU1RfUkVTRVQsDQo+ICsgICAgICAgICAgMiwNCj4gKyAgICAgICAgICBSZXNldFR5cGUsDQo+ ICsgICAgICAgICAgUmVzZXRSZWFzb24NCj4gKyAgICAgICAgICApOw0KPiArDQo+ICsgIHJldHVy biBUcmFuc2xhdGVFcnJvciAoUmV0LkVycm9yKTsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIEdl dCBmaXJtd2FyZSBjb250ZXh0IG9mIHRoZSBjYWxsaW5nIGhhcnQuDQo+ICsNCj4gKyAgQHBhcmFt W291dF0gRmlybXdhcmVDb250ZXh0ICAgICAgVGhlIGZpcm13YXJlIGNvbnRleHQgcG9pbnRlci4N Cj4gKyoqLw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtHZXRGaXJtd2FyZUNvbnRleHQgKA0KPiAr ICBPVVQgRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICoqRmlybXdhcmVDb250ZXh0DQo+ICsg ICkNCj4gK3sNCj4gKyAgKkZpcm13YXJlQ29udGV4dCA9IChFRklfUklTQ1ZfRklSTVdBUkVfQ09O VEVYVCAqKVJpc2NWR2V0U3VwZXJ2aXNvclNjcmF0Y2ggKCk7DQo+ICt9DQo+ICsNCj4gKy8qKg0K PiArICBTZXQgZmlybXdhcmUgY29udGV4dCBvZiB0aGUgY2FsbGluZyBoYXJ0Lg0KPiArDQo+ICsg IEBwYXJhbVtpbl0gRmlybXdhcmVDb250ZXh0ICAgICAgIFRoZSBmaXJtd2FyZSBjb250ZXh0IHBv aW50ZXIuDQo+ICsqKi8NCj4gK1ZPSUQNCj4gK0VGSUFQSQ0KPiArU2V0RmlybXdhcmVDb250ZXh0 ICgNCj4gKyAgSU4gRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICpGaXJtd2FyZUNvbnRleHQN Cj4gKyAgKQ0KPiArew0KPiArICBSaXNjVlNldFN1cGVydmlzb3JTY3JhdGNoICgoVUlOVDY0KUZp cm13YXJlQ29udGV4dCk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBHZXQgcG9pbnRlciB0byBP cGVuU0JJIEZpcm13YXJlIENvbnRleHQNCj4gKw0KPiArICBHZXQgdGhlIHBvaW50ZXIgb2YgZmly bXdhcmUgY29udGV4dCB0aHJvdWdoIE9wZW5TQkkgRlcgRXh0ZW5zaW9uIFNCSS4NCj4gKw0KPiAr ICBAcGFyYW0gICAgRmlybXdhcmVDb250ZXh0UHRyICAgUG9pbnRlciB0byByZXRyaWV2ZSBwb2lu dGVyIHRvIHRoZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlybXdhcmUg Q29udGV4dC4NCj4gKyoqLw0KPiArVk9JRA0KPiArRUZJQVBJDQo+ICtHZXRGaXJtd2FyZUNvbnRl eHRQb2ludGVyICgNCj4gKyAgSU4gT1VUIEVGSV9SSVNDVl9GSVJNV0FSRV9DT05URVhUICAqKkZp cm13YXJlQ29udGV4dFB0cg0KPiArICApDQo+ICt7DQo+ICsgIEdldEZpcm13YXJlQ29udGV4dCAo RmlybXdhcmVDb250ZXh0UHRyKTsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIFNldCB0aGUgcG9p bnRlciB0byBPcGVuU0JJIEZpcm13YXJlIENvbnRleHQNCj4gKw0KPiArICBTZXQgdGhlIHBvaW50 ZXIgb2YgZmlybXdhcmUgY29udGV4dCB0aHJvdWdoIE9wZW5TQkkgRlcgRXh0ZW5zaW9uIFNCSS4N Cj4gKw0KPiArICBAcGFyYW0gICAgRmlybXdhcmVDb250ZXh0UHRyICAgUG9pbnRlciB0byBGaXJt d2FyZSBDb250ZXh0Lg0KPiArKiovDQo+ICtWT0lEDQo+ICtFRklBUEkNCj4gK1NldEZpcm13YXJl Q29udGV4dFBvaW50ZXIgKA0KPiArICBJTiBFRklfUklTQ1ZfRklSTVdBUkVfQ09OVEVYVCAgKkZp cm13YXJlQ29udGV4dFB0cg0KPiArICApDQo+ICt7DQo+ICsgIFNldEZpcm13YXJlQ29udGV4dCAo RmlybXdhcmVDb250ZXh0UHRyKTsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5 L0Jhc2VSaXNjVlNiaUxpYi9SaXNjVlNiaUVjYWxsLlMgYi9NZGVQa2cvTGlicmFyeS9CYXNlUmlz Y1ZTYmlMaWIvUmlzY1ZTYmlFY2FsbC5TDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uOGJhNjlmODUxMmE1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvTWRl UGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL1Jpc2NWU2JpRWNhbGwuUw0KPiBAQCAtMCwwICsx LDQyIEBADQo+ICsvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArLy8NCj4gKy8vIE1ha2UgRUNB TEwgdG8gU0JJDQo+ICsvLw0KPiArLy8gQ29weXJpZ2h0IChjKSAyMDIzLCBWZW50YW5hIE1pY3Jv IFN5c3RlbXMgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKy8vDQo+ICsvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArLy8NCj4gKy8vLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ICsNCj4gKyNpbmNsdWRlIDxSZWdpc3Rlci9SaXNjVjY0L1Jp c2NWSW1wbC5oPg0KPiArDQo+ICsuZGF0YQ0KPiArLmFsaWduIDMNCj4gKy5zZWN0aW9uIC50ZXh0 DQo+ICsNCj4gKy8vDQo+ICsvLyBNYWtlIEVDQUxMIHRvIFNCSQ0KPiArLy8gZWNhbGwgdXBkYXRl cyB0aGUgc2FtZSBhMCBhbmQgYTEgcmVnaXN0ZXJzIHdpdGgNCj4gKy8vIHJldHVybiB2YWx1ZXMu IEhlbmNlLCB0aGUgQyBmdW5jdGlvbiB3aGljaCBjYWxscw0KPiArLy8gdGhpcyBzaG91bGQgcGFz cyB0aGUgYWRkcmVzcyBvZiBBcmcwIGFuZCBBcmcxLg0KPiArLy8gVGhpcyByb3V0aW5lIHNhdmVz IHRoZSBhZGRyZXNzIGFuZCB1cGRhdGVzIGl0DQo+ICsvLyB3aXRoIGEwIGFuZCBhMSBvbmNlIGVj YWxsIHJldHVybnMuDQo+ICsvLw0KPiArLy8gQHBhcmFtIGEwIDogUG9pbnRlciB0byBBcmcwDQo+ ICsvLyBAcGFyYW0gYTEgOiBQb2ludGVyIHRvIEFyZzENCj4gKy8vIEBwYXJhbSBhMiA6IEFyZzIN Cj4gKy8vIEBwYXJhbSBhMyA6IEFyZzMNCj4gKy8vIEBwYXJhbSBhNCA6IEFyZzQNCj4gKy8vIEBw YXJhbSBhNSA6IEFyZzUNCj4gKy8vIEBwYXJhbSBhNiA6IEZ1bmN0aW9uSUQNCj4gKy8vIEBwYXJh bSBhNyA6IEV4dGVuc2lvbklkDQo+ICsvLw0KPiArQVNNX0ZVTkMgKFJpc2NWU2JpRWNhbGwpDQo+ ICsgIG12IHQwLCBhMA0KPiArICBtdiB0MSwgYTENCj4gKyAgbGQgYTAsIDAoYTApDQo+ICsgIGxk IGExLCAwKGExKQ0KPiArICBlY2FsbA0KPiArICBzZCBhMCwgMCh0MCkNCj4gKyAgc2QgYTEsIDAo dDEpDQo+ICsgIHJldA0KPiAtLQ0KPiAyLjM0LjENCg0K