From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web11.8475.1676503133971875233 for ; Wed, 15 Feb 2023 15:18:54 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=TKXWnuNE; spf=pass (domain: intel.com, ip: 134.134.136.100, 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=1676503134; x=1708039134; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=i1+yzVHfCKkteOYERkoCKi8ZyVrmpbZu6T4+yKrCeUY=; b=TKXWnuNEy0Wto4QP39+BKNTelOhZzZ+z9E7X6KfkN3xqTuBlKxzpvgVy QWjQOW3GyeZ39fIxDbTOcYvzgIw7P4s7Pb2+jrUAWT6u0PwJ/KTG9Hflo gXbwUgNkfBIVAU3PTkLi3T5GDSP6T7LXRgd44Yeybux59Zsju69VXaje7 WYPmS80phZvaCQ4KlznlEvGEfPBQoZxXQSj16ThtEgEJ8ru2SVXMjQNKu lxUNWQ4MtZFDjz8jgWPSDShijus95XW6GAn1BijpzMGL/G9Y+BXE7fmHr kGF6U9Kp9pyAspSK2f6PLssU1fdoXuKO2US4Gl5shyVtZzOYrpU9HkRej A==; X-IronPort-AV: E=McAfee;i="6500,9779,10622"; a="396204266" X-IronPort-AV: E=Sophos;i="5.97,301,1669104000"; d="scan'208";a="396204266" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 15:18:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10622"; a="669904305" X-IronPort-AV: E=Sophos;i="5.97,301,1669104000"; d="scan'208";a="669904305" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 15 Feb 2023 15:18:50 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 15 Feb 2023 15:18:48 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Wed, 15 Feb 2023 15:18:47 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.106) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Wed, 15 Feb 2023 15:18:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HfnAuEjDWuX5bk7Ja4IcoVPAQu/uBxSTS1xwpdjSdXG0fgsLNKJaqhPfWbjhQFp/g8q36NHAGLlgFV0r5SRDFJJiD/x4RRmIgTB9Fn2q1wZZQ2PDCdE8IHdATOBj7IQE4q978Mqm8DEa9tHItbzeWz/GrF129OZF0Db2eAcoElWx13He7hU0jSZWTpl352+POxqGQowWxQeW+mvghu9m/sun4M/vvZJsfnZH+EAgmwziZxFG7FsYSSDgH1DmD8nK7iOe6GW4uI2r5zc7NHcl/2Fr4D9x3KN82w+1xVDpmFYZ8wsdW3ztwk+3b6UJ8QQ1gkLhKRd5zyfOqytgKe8jPw== 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=i1+yzVHfCKkteOYERkoCKi8ZyVrmpbZu6T4+yKrCeUY=; b=WIc4sepcm9NGi1NSUdnjj7K9RNWoaGE110ME0uFwqvd9a1aGIN3NKam2Og4eUeXGZnZp4gZAaK4kOq0yChHnlBBT6GdFG2JjI8pbGITJKDJBppIQVJ+CVXOPzg1wzgDTMtRdxlLuR+Xe7X+LY6qRyWB9cf1t3aJ7zfRe+D/bveCJrHfYAldteb/Xa6uYdLGnEOBfRnv0w8dxAc8DcSbVNPWWcQVW2SxKKh2fRkR1AcsKToFIbo7uZYgMiH2Kh9pP4URN+33DxFdbHae8ETTBnPPz62HC/Bcpf/GObjwDcrpulH0VR52QE95pC8MMRntF7l6DcIqGd+0ZFBZTGsGkug== 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 IA1PR11MB7890.namprd11.prod.outlook.com (2603:10b6:208:3ff::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26; Wed, 15 Feb 2023 23:18:43 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::c4d0:989a:e319:fe68%5]) with mapi id 15.20.6086.026; Wed, 15 Feb 2023 23:18:43 +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: AQHZPUuQ1f36tBKk40eGtVpQXyFbY67IfmSQgAgtuNA= Date: Wed, 15 Feb 2023 23:18:43 +0000 Message-ID: References: <20230210123041.1489506-1-sunilvl@ventanamicro.com> <20230210123041.1489506-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_|IA1PR11MB7890:EE_ x-ms-office365-filtering-correlation-id: 58434302-2af9-4c09-cd8d-08db0faafb20 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: L18HNVaLu/Q+4srlPKnGhgzj5SUU0Ha93OaswnsxZrzE6SYbeyJBVPB5f8SU+SRCQS5Jk6l6HKCE+RHbWiVkXoPrR+Nye6UH/wYrn8Or9Sgji/RxPTLS1E2AQr0gqwmxV2zcigOBpBEcFbMeznq4aXGU/35v1ln5vD8+6sHnFbGFOupm26Xuotxw/RyNz4KD0SxUgAGzLRtvM9v878d234omSF7AN06CllPPKaRV3IrBF5FS4VoJXXHNkUrMbJiwp3cqBCoEViwXjtuR5kGS8zxDPNN9DTRWVn7+9GF9o7nq7eUOyg8gJz2t1ty/roGNJIRs0JWUZ2cTqsCptLE3c7aDlACMrdW8Qa/Jc8eO/NdtQQHRDmTXf4A1vT5Z96FGmzyRO+RQezmI8lUyAhrtSCTvIcsDYYg0lMfhBSKeLnvwn5iMXClvR3lk7+GDIVWkqespZuvLUFqXEC+q4QYRUUb57N0eTeWJJd4TZ17CyRTZK8qRJkc7VjzF7uuN7eOnu/0USTukGVqwoLZ02WCiOtcx7VD5wAeU75eozoFNWqOw2+PjviQFXsXH2CzlJ8ji7GU2/hQy+OqzSJRiktzew2/1Yf8kw7vEEVfq65sAJXI7U6v6WsPzadRnkjThw7+CbBz1ZbuwunNHpuDC1mo3M07lQNdSyAkw+f9HDzhwykI7QBlgd8FHiO7SzRaovoDe6vCvFJ7lcJrkQlU872eS2dVL6FoeJIzyjhsmn0wzmRc= 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)(396003)(39860400002)(346002)(366004)(136003)(376002)(451199018)(966005)(107886003)(53546011)(6506007)(7696005)(26005)(186003)(71200400001)(64756008)(66476007)(66446008)(66946007)(76116006)(66556008)(8676002)(4326008)(478600001)(316002)(41300700001)(83380400001)(9686003)(52536014)(8936002)(5660300002)(2906002)(30864003)(122000001)(38070700005)(82960400001)(38100700002)(86362001)(110136005)(54906003)(55016003)(33656002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmU3RXoxZm5BTnQ3MTREcDVvTzFyYWRLQ3grTTh4aDBBT1BHUm4rbHNZSmxi?= =?utf-8?B?SmJHb2dRNTVBSE15bkcwQkJFNmxVUGM5U1ZwTDlSUW90dlozcnlkNElXdUtZ?= =?utf-8?B?UGwyb1pwcEZ4VTllQmEvUWRZNWEwRDFyWXREOGJ3bHBBVk93SUhicXROU1Fs?= =?utf-8?B?U1ZqSEhMTEVvSTd5NDZsRHh0N0lZN3NEek52QXo2RjZNMCswRUQrcnBKNUxL?= =?utf-8?B?aitVSThCNTZpN2kwdU1nREFuWjU5amdvL0YxdnVzUjZiZDB5QklYL0FQdEFT?= =?utf-8?B?ZXNUd3ZjVUFQaDJGRjU5Q2t2R2kzd0dOVGJHSTVmMUdUQ0FhUkhVVTFjZ2Fk?= =?utf-8?B?SlFTY3gxbnVaVm5PdnBnT3NQeC9qVGZLTkx6M2lLNzRyMkMwQ21JWk9MbkY3?= =?utf-8?B?a2pNUENyNC9JdytKaWp3U0hFUWdSUlNId1F5VFNzdnI4K1NEdmtrb25oRnkz?= =?utf-8?B?YWxvcS8vb0x3N3grUTFsUWp2eTFMd0xmWDhMNUJ3ZkdRd2pET25ObFU2a0lm?= =?utf-8?B?bW9BK2htcS8vN3F5QVNWVzJpUVJQU1BsbGUvdXkzUndmYzZuS2lXUk01RTBi?= =?utf-8?B?amZiaEt6ZnZtR1V6S0pZeXg4WUdsZDFuUk8yQnpjZWhpZmZyZGl1dks4b0Vx?= =?utf-8?B?aXRnMUZiVmJGeG5LV1g2OVJ5SnZaZkZlcWJNS1hLRGtHZjgwcjFseW4xTkhw?= =?utf-8?B?NFgyZVhsNjFjVmhreFdMSVlZNHB2QURTVVQ3bUE3QVdVT0xFSUM1c0s1TnNG?= =?utf-8?B?TDk1U3prTGl0TWErLzZUb3JZeG04RjVnYWdSVDJSMW8rcVRibjVUeHd4K055?= =?utf-8?B?R1BTSmk4NnRrMFJNYW54ZHBGM3IwRjJBZ1hkUWQ5VjcrYzJ0cWpoaTFlYURv?= =?utf-8?B?KzVEY011czU3Q2pILzdxQmdxZXBUT3NGZm5rYkpaQlh5VUFHSzN2V2VOcHNB?= =?utf-8?B?QTNDbDc1NHd4c09TekNhbHV2NGRlbjg2WUFBM25DMEVhYlRGYkRJb2tUYUJH?= =?utf-8?B?N2laQW1seUFQMXU0eFh0THNsRlZpU21QeXp2WmVKc01xNURiSFNHVTdXWWVz?= =?utf-8?B?cU5nc29jYW85VkMyRTVKSmhDT0gycWlOSFB3N2dMWExQSUdJdjVCQk9tRDR6?= =?utf-8?B?UmUvSThtVEN1WVZHRzdJZ05CeHlJWUEvSVpVcFpEV0lnRUNpWjlMVlFQcXFY?= =?utf-8?B?S2tlRmw0TkMwNDZibzhkcTZmbDcyRGs5c2Z4S0RqUklBOExXMGN3VEdlbFlO?= =?utf-8?B?UFlRenBuQTRHOGFpYTNOS08xQUJGSVZjcTY1Tk84VlRmTkNTdEp0N2NHQ0Fk?= =?utf-8?B?SGk2Rjl5TXJCZWhFNHQ2SU8xc2hLdEJyTGJkVEtDNVNNVHVIam9TaHZCZGZL?= =?utf-8?B?cTl1ZWhpRXJaUVFXWXo4S09JQkNDWWkyczd2bVRUaWppZkVYTEFNK0prOVIr?= =?utf-8?B?VysyWlQwN3kyZkhTQ0FacVY1VnZBZUtVUzJKbWJHRGNFalpaNUp2bXRzMWZx?= =?utf-8?B?NEV2dmt1QlZmbU5CVWw1Q3dmcHV6QlFPQ1ZDL2M2Y3FyOXc2V3duNHVMNTBJ?= =?utf-8?B?dHNxdDNRY1ZuVXEzRG11aC9jQldvZTJMUlBYeFJ6V1BqOTNjNkVMK1ZIclR0?= =?utf-8?B?YThyQkUxMDBTb0MzZzJlMTYxZllaU0RXcFRkUE1pam8xaGprNWIxYXR0YnFv?= =?utf-8?B?cm02VExxTi9lNTMraFVBRVAvcC9NNHVLUWVHV3RqTjBsc28vZW5TR1ZSdXRI?= =?utf-8?B?cGREREs0b2xBOWZwVUFvMHI5ZDdNRHVSaUtjYm5HMmhscTVPQk16SUdDQ2tF?= =?utf-8?B?QlViMlMxbmY5Qk03MjJKT1FvWW8vNkFQUWIrdHdiL0pwVDJoZlh4bU1zdEhR?= =?utf-8?B?RHF2VmNNTDRtT1ZJRkVLOXZaUzMrbGdldzlpR25qV3ROWUY2ckc1dmJ4cWtH?= =?utf-8?B?ZURWRU1wMFozRnU4c1dVT28yS0Fhc1ZJTk43ZnJ1bU0rTEdiNTF1bTU5L0k2?= =?utf-8?B?OHVwVjJLc3R1cnYyN2phYVBKV0NGdjlLeTRHN3VRTDV4cGhSbWJSM29sQmMx?= =?utf-8?B?YS8zUTlFd3hWbWhpbk9kOWllbFFNeVM3bVFTc1lBY3B4YUFTZEViMmliVWNG?= =?utf-8?B?Z1pudlpTV1UyeW1ieTJWMGdkY09BZm1mMTNubmViVk05ZHcrR2lRb0c1c091?= =?utf-8?B?RUE9PQ==?= 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: 58434302-2af9-4c09-cd8d-08db0faafb20 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Feb 2023 23:18:43.4677 (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: fIfBRIlfFtaxgu2msiNX0Jvod6zSnbs+3GDKtk6qjm/i6qLLw/xTmH5thfhrbdEuhsS3FiZtLfar9W/AppfJ+4MKgs9A91todbbeunSwPnk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB7890 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 SGkgU3VuaWwsDQoNCklzIHRoaXMgdGhlIGNvcnJlY3QgUFIgd2l0aCBhbGwgY29tbWl0IG1lc3Nh Z2VzIHVwZGF0ZWQgd2l0aCBhbGwgUmIvQWIgdGFncz8NCg0KaHR0cHM6Ly9naXRodWIuY29tL3Rp YW5vY29yZS9lZGsyL3B1bGwvNDAyMw0KDQpUaGFua3MsDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgRmVicnVhcnkgMTAsIDIwMjMgMTA6MjIg QU0NCj4gVG86IFN1bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29tPjsgZGV2ZWxAZWRr Mi5ncm91cHMuaW8NCj4gQ2M6IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+ OyBMaXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgQWJuZXIgQ2hhbmcgPGFi bmVyLmNoYW5nQGFtZC5jb20+Ow0KPiBXYXJrZW50aW4sIEFuZHJlaSA8YW5kcmVpLndhcmtlbnRp bkBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1zdGFnaW5nL1Jpc2NWNjRRZW11VmlydCBQQVRDSCBW OCAwMy8xOV0gTWRlUGtnOiBBZGQgQmFzZVJpc2NWU2JpTGliIExpYnJhcnkgZm9yIFJJU0MtVg0K PiANCj4gUmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50 ZWwuY29tPg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFN1 bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29tPg0KPiA+IFNlbnQ6IEZyaWRheSwgRmVi cnVhcnkgMTAsIDIwMjMgNDozMCBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8s IExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgTGl1LCBaaGlndWFuZw0KPiA+IDx6 aGlndWFuZy5saXVAaW50ZWwuY29tPjsgQWJuZXIgQ2hhbmcgPGFibmVyLmNoYW5nQGFtZC5jb20+ OyBXYXJrZW50aW4sIEFuZHJlaSA8YW5kcmVpLndhcmtlbnRpbkBpbnRlbC5jb20+DQo+ID4gU3Vi amVjdDogW2VkazItc3RhZ2luZy9SaXNjVjY0UWVtdVZpcnQgUEFUQ0ggVjggMDMvMTldIE1kZVBr ZzogQWRkIEJhc2VSaXNjVlNiaUxpYiBMaWJyYXJ5IGZvciBSSVNDLVYNCj4gPg0KPiA+IFJFRjog aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDc2DQo+ID4N Cj4gPiBUaGlzIGxpYnJhcnkgaXMgcmVxdWlyZWQgdG8gbWFrZSBTQkkgZWNhbGxzIGZyb20gdGhl IFMtbW9kZSBFREsyLg0KPiA+IFRoaXMgaXMgbW9zdGx5IGNvcGllZCBmcm9tDQo+ID4gZWRrMi1w bGF0Zm9ybXMvU2lsaWNvbi9SSVNDLVYvUHJvY2Vzc29yUGtnL0xpYnJhcnkvUmlzY1ZFZGsyU2Jp TGliDQo+ID4NCj4gPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+DQo+ID4gQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4g PiBDYzogWmhpZ3VhbmcgTGl1IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1v ZmYtYnk6IFN1bmlsIFYgTCA8c3VuaWx2bEB2ZW50YW5hbWljcm8uY29tPg0KPiA+IEFja2VkLWJ5 OiBBYm5lciBDaGFuZyA8YWJuZXIuY2hhbmdAYW1kLmNvbT4NCj4gPiBSZXZpZXdlZC1ieTogQW5k cmVpIFdhcmtlbnRpbiA8YW5kcmVpLndhcmtlbnRpbkBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4g IE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0 ICsNCj4gPiAgTWRlUGtnL01kZVBrZy5kc2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDMgKw0KPiA+ICBNZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NW U2JpTGliLmluZiB8ICAyNiArKysNCj4gPiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9CYXNlUmlz Y1ZTYmlMaWIuaCAgICAgICAgICAgfCAxNTQgKysrKysrKysrKysrKw0KPiA+ICBNZGVQa2cvTGli cmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGliLmMgICB8IDIzMSArKysrKysrKysr KysrKysrKysrKw0KPiA+ICBNZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIvUmlzY1ZTYmlF Y2FsbC5TICAgICB8ICA0MiArKysrDQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgNDYwIGluc2VydGlv bnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9NZGVQa2cvTWRlUGtnLmRlYyBiL01kZVBrZy9N ZGVQa2cuZGVjDQo+ID4gaW5kZXggM2QwOGYyMGQxNWIwLi5jYTJlNGRjZjgxNWMgMTAwNjQ0DQo+ ID4gLS0tIGEvTWRlUGtnL01kZVBrZy5kZWMNCj4gPiArKysgYi9NZGVQa2cvTWRlUGtnLmRlYw0K PiA+IEBAIC0zMTYsNiArMzE2LDEwIEBAIFtMaWJyYXJ5Q2xhc3Nlcy5JQTMyLCBMaWJyYXJ5Q2xh c3Nlcy5YNjRdDQo+ID4gICAgIyMgIEBsaWJyYXJ5Y2xhc3MgIFByb3ZpZGVzIGZ1bmN0aW9uIHRv IHN1cHBvcnQgVERYIHByb2Nlc3NpbmcuDQo+ID4gICAgVGR4TGlifEluY2x1ZGUvTGlicmFyeS9U ZHhMaWIuaA0KPiA+DQo+ID4gK1tMaWJyYXJ5Q2xhc3Nlcy5SSVNDVjY0XQ0KPiA+ICsgICMjICBA bGlicmFyeWNsYXNzICBQcm92aWRlcyBmdW5jdGlvbiB0byBtYWtlIGVjYWxscyB0byBTQkkNCj4g PiArICBCYXNlUmlzY1ZTYmlMaWJ8SW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi5oDQo+ ID4gKw0KPiA+ICBbR3VpZHNdDQo+ID4gICAgIw0KPiA+ICAgICMgR1VJRCBkZWZpbmVkIGluIFVF RkkyLjEvVUVGSTIuMC9FRkkxLjENCj4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL01kZVBrZy5kc2Mg Yi9NZGVQa2cvTWRlUGtnLmRzYw0KPiA+IGluZGV4IDMyYTg1MmRjNDY2ZS4uMGFjNzYxOGI0NjIz IDEwMDY0NA0KPiA+IC0tLSBhL01kZVBrZy9NZGVQa2cuZHNjDQo+ID4gKysrIGIvTWRlUGtnL01k ZVBrZy5kc2MNCj4gPiBAQCAtMTkwLDQgKzE5MCw3IEBAIFtDb21wb25lbnRzLkFSTSwgQ29tcG9u ZW50cy5BQVJDSDY0XQ0KPiA+ICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNpYy9C YXNlSW9MaWJJbnRyaW5zaWNBcm1WaXJ0LmluZg0KPiA+ICAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VT dGFja0NoZWNrTGliL0Jhc2VTdGFja0NoZWNrTGliLmluZg0KPiA+DQo+ID4gK1tDb21wb25lbnRz LlJJU0NWNjRdDQo+ID4gKyAgTWRlUGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNj VlNiaUxpYi5pbmYNCj4gPiArDQo+ID4gIFtCdWlsZE9wdGlvbnNdDQo+ID4gZGlmZiAtLWdpdCBh L01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9CYXNlUmlzY1ZTYmlMaWIuaW5mIGIvTWRl UGtnL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNjVlNiaUxpYi5pbmYNCj4gPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uZDZmZDNmNjYzYWYxDQo+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxp Yi9CYXNlUmlzY1ZTYmlMaWIuaW5mDQo+ID4gQEAgLTAsMCArMSwyNiBAQA0KPiA+ICsjIyBAZmls ZQ0KPiA+ICsjIFJJU0MtViBMaWJyYXJ5IHRvIGNhbGwgU0JJIGVjYWxscw0KPiA+ICsjDQo+ID4g KyMgIENvcHlyaWdodCAoYykgMjAyMCwgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgRGV2ZWxv cG1lbnQgTFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsjDQo+ID4gKyMgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gKyMNCj4gPiArIyMN Cj4gPiArDQo+ID4gK1tEZWZpbmVzXQ0KPiA+ICsgIElORl9WRVJTSU9OICAgICAgICAgPSAweDAw MDEwMDFiDQo+ID4gKyAgQkFTRV9OQU1FICAgICAgICAgICA9IEJhc2VSaXNjVlNiaUxpYg0KPiA+ ICsgIEZJTEVfR1VJRCAgICAgICAgICAgPSBENzQyQ0YzRC1FNjAwLTQwMDktOEZCNS0zMTgwNzMw MDg1MDgNCj4gPiArICBNT0RVTEVfVFlQRSAgICAgICAgID0gQkFTRQ0KPiA+ICsgIFZFUlNJT05f U1RSSU5HICAgICAgPSAxLjANCj4gPiArICBMSUJSQVJZX0NMQVNTICAgICAgID0gUmlzY1ZTYmlM aWINCj4gPiArDQo+ID4gK1tTb3VyY2VzXQ0KPiA+ICsgIEJhc2VSaXNjVlNiaUxpYi5jDQo+ID4g KyAgUmlzY1ZTYmlFY2FsbC5TDQo+ID4gKw0KPiA+ICtbUGFja2FnZXNdDQo+ID4gKyAgTWRlUGtn L01kZVBrZy5kZWMNCj4gPiArDQo+ID4gK1tMaWJyYXJ5Q2xhc3Nlc10NCj4gPiArICBCYXNlTGli DQo+ID4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvQmFzZVJpc2NWU2JpTGli LmggYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi5oDQo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmU3NTUyMGI0Yjg4OA0KPiA+ IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L0Jhc2VSaXNj VlNiaUxpYi5oDQo+ID4gQEAgLTAsMCArMSwxNTQgQEANCj4gPiArLyoqIEBmaWxlDQo+ID4gKyAg TGlicmFyeSB0byBjYWxsIHRoZSBSSVNDLVYgU0JJIGVjYWxscw0KPiA+ICsNCj4gPiArICBDb3B5 cmlnaHQgKGMpIDIwMjEtMjAyMiwgSGV3bGV0dCBQYWNrYXJkIERldmVsb3BtZW50IExQLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArDQo+ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiArDQo+ID4gKyAgQHBhciBHbG9zc2FyeToNCj4g PiArICAgIC0gSGFydCAtIEhhcmR3YXJlIFRocmVhZCwgc2ltaWxhciB0byBhIENQVSBjb3JlDQo+ ID4gKw0KPiA+ICsgIEN1cnJlbnRseSwgRURLMiBuZWVkcyB0byBjYWxsIFNCSSBvbmx5IHRvIHNl dCB0aGUgdGltZSBhbmQgdG8gZG8gc3lzdGVtIHJlc2V0Lg0KPiA+ICsNCj4gPiArKiovDQo+ID4g Kw0KPiA+ICsjaWZuZGVmIFJJU0NWX1NCSV9MSUJfSF8NCj4gPiArI2RlZmluZSBSSVNDVl9TQklf TElCX0hfDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8VWVmaS5oPg0KPiA+ICsNCj4gPiArLyogU0JJ IEV4dGVuc2lvbiBJRHMgKi8NCj4gPiArI2RlZmluZSBTQklfRVhUX1RJTUUgIDB4NTQ0OTRENDUN Cj4gPiArI2RlZmluZSBTQklfRVhUX1NSU1QgIDB4NTM1MjUzNTQNCj4gPiArDQo+ID4gKy8qIFNC SSBmdW5jdGlvbiBJRHMgZm9yIFRJTUUgZXh0ZW5zaW9uKi8NCj4gPiArI2RlZmluZSBTQklfRVhU X1RJTUVfU0VUX1RJTUVSICAweDANCj4gPiArDQo+ID4gKy8qIFNCSSBmdW5jdGlvbiBJRHMgZm9y IFNSU1QgZXh0ZW5zaW9uICovDQo+ID4gKyNkZWZpbmUgU0JJX0VYVF9TUlNUX1JFU0VUICAweDAN Cj4gPiArDQo+ID4gKyNkZWZpbmUgU0JJX1NSU1RfUkVTRVRfVFlQRV9TSFVURE9XTiAgICAgMHgw DQo+ID4gKyNkZWZpbmUgU0JJX1NSU1RfUkVTRVRfVFlQRV9DT0xEX1JFQk9PVCAgMHgxDQo+ID4g KyNkZWZpbmUgU0JJX1NSU1RfUkVTRVRfVFlQRV9XQVJNX1JFQk9PVCAgMHgyDQo+ID4gKw0KPiA+ ICsjZGVmaW5lIFNCSV9TUlNUX1JFU0VUX1JFQVNPTl9OT05FICAgICAweDANCj4gPiArI2RlZmlu ZSBTQklfU1JTVF9SRVNFVF9SRUFTT05fU1lTRkFJTCAgMHgxDQo+ID4gKw0KPiA+ICsvKiBTQkkg cmV0dXJuIGVycm9yIGNvZGVzICovDQo+ID4gKyNkZWZpbmUgU0JJX1NVQ0NFU1MgICAgICAgICAg ICAgICAgMA0KPiA+ICsjZGVmaW5lIFNCSV9FUlJfRkFJTEVEICAgICAgICAgICAgIC0xDQo+ID4g KyNkZWZpbmUgU0JJX0VSUl9OT1RfU1VQUE9SVEVEICAgICAgLTINCj4gPiArI2RlZmluZSBTQklf RVJSX0lOVkFMSURfUEFSQU0gICAgICAtMw0KPiA+ICsjZGVmaW5lIFNCSV9FUlJfREVOSUVEICAg ICAgICAgICAgIC00DQo+ID4gKyNkZWZpbmUgU0JJX0VSUl9JTlZBTElEX0FERFJFU1MgICAgLTUN Cj4gPiArI2RlZmluZSBTQklfRVJSX0FMUkVBRFlfQVZBSUxBQkxFICAtNg0KPiA+ICsjZGVmaW5l IFNCSV9FUlJfQUxSRUFEWV9TVEFSVEVEICAgIC03DQo+ID4gKyNkZWZpbmUgU0JJX0VSUl9BTFJF QURZX1NUT1BQRUQgICAgLTgNCj4gPiArDQo+ID4gKyNkZWZpbmUgU0JJX0xBU1RfRVJSICBTQklf RVJSX0FMUkVBRFlfU1RPUFBFRA0KPiA+ICsNCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ICsg IFVJTlQ2NCAgICBCb290SGFydElkOw0KPiA+ICsgIFZPSUQgICAgICAqUGVpU2VydmljZVRhYmxl OyAgICAvLyBQRUkgU2VydmljZSB0YWJsZQ0KPiA+ICsgIFZPSUQgICAgICAqUHJlUGlIb2JMaXN0 OyAgICAgICAvLyBQcmUgUEkgSG9iIExpc3QNCj4gPiArICBVSU5UNjQgICAgRmxhdHRlbmVkRGV2 aWNlVHJlZTsgLy8gUG9pbnRlciB0byBGbGF0dGVuZWQgRGV2aWNlIHRyZWUNCj4gPiArfSBFRklf UklTQ1ZfRklSTVdBUkVfQ09OVEVYVDsNCj4gPiArDQo+ID4gKy8vDQo+ID4gKy8vIEVESzIgT3Bl blNCSSBmaXJtd2FyZSBleHRlbnNpb24gcmV0dXJuIHN0YXR1cy4NCj4gPiArLy8NCj4gPiArdHlw ZWRlZiBzdHJ1Y3Qgew0KPiA+ICsgIFVJTlROICAgIEVycm9yOyAvLy88IFNCSSBzdGF0dXMgY29k ZQ0KPiA+ICsgIFVJTlROICAgIFZhbHVlOyAvLy88IFZhbHVlIHJldHVybmVkDQo+ID4gK30gU0JJ X1JFVDsNCj4gPiArDQo+ID4gK1ZPSUQNCj4gPiArRUZJQVBJDQo+ID4gK1NiaVNldFRpbWVyICgN Cj4gPiArICBJTiAgVUlOVDY0ICBUaW1lDQo+ID4gKyAgKTsNCj4gPiArDQo+ID4gK0VGSV9TVEFU VVMNCj4gPiArRUZJQVBJDQo+ID4gK1NiaVN5c3RlbVJlc2V0ICgNCj4gPiArICBJTiAgVUlOVE4g IFJlc2V0VHlwZSwNCj4gPiArICBJTiAgVUlOVE4gIFJlc2V0UmVhc29uDQo+ID4gKyAgKTsNCj4g PiArDQo+ID4gKy8qKg0KPiA+ICsgIEdldCBmaXJtd2FyZSBjb250ZXh0IG9mIHRoZSBjYWxsaW5n IGhhcnQuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtvdXRdIEZpcm13YXJlQ29udGV4dCAgICAgIFRo ZSBmaXJtd2FyZSBjb250ZXh0IHBvaW50ZXIuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VG SUFQSQ0KPiA+ICtHZXRGaXJtd2FyZUNvbnRleHQgKA0KPiA+ICsgIE9VVCBFRklfUklTQ1ZfRklS TVdBUkVfQ09OVEVYVCAgKipGaXJtd2FyZUNvbnRleHQNCj4gPiArICApOw0KPiA+ICsNCj4gPiAr LyoqDQo+ID4gKyAgU2V0IGZpcm13YXJlIGNvbnRleHQgb2YgdGhlIGNhbGxpbmcgaGFydC4NCj4g PiArDQo+ID4gKyAgQHBhcmFtW2luXSBGaXJtd2FyZUNvbnRleHQgICAgICAgVGhlIGZpcm13YXJl IGNvbnRleHQgcG9pbnRlci4NCj4gPiArKiovDQo+ID4gK1ZPSUQNCj4gPiArRUZJQVBJDQo+ID4g K1NldEZpcm13YXJlQ29udGV4dCAoDQo+ID4gKyAgSU4gRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRF WFQgICpGaXJtd2FyZUNvbnRleHQNCj4gPiArICApOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAg R2V0IHBvaW50ZXIgdG8gT3BlblNCSSBGaXJtd2FyZSBDb250ZXh0DQo+ID4gKw0KPiA+ICsgIEdl dCB0aGUgcG9pbnRlciBvZiBmaXJtd2FyZSBjb250ZXh0Lg0KPiA+ICsNCj4gPiArICBAcGFyYW0g ICAgRmlybXdhcmVDb250ZXh0UHRyICAgUG9pbnRlciB0byByZXRyaWV2ZSBwb2ludGVyIHRvIHRo ZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXJtd2FyZSBDb250ZXh0 Lg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArR2V0RmlybXdhcmVDb250 ZXh0UG9pbnRlciAoDQo+ID4gKyAgSU4gT1VUIEVGSV9SSVNDVl9GSVJNV0FSRV9DT05URVhUICAq KkZpcm13YXJlQ29udGV4dFB0cg0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBT ZXQgcG9pbnRlciB0byBPcGVuU0JJIEZpcm13YXJlIENvbnRleHQNCj4gPiArDQo+ID4gKyAgU2V0 IHRoZSBwb2ludGVyIG9mIGZpcm13YXJlIGNvbnRleHQuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSAg ICBGaXJtd2FyZUNvbnRleHRQdHIgICBQb2ludGVyIHRvIEZpcm13YXJlIENvbnRleHQuDQo+ID4g KyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtTZXRGaXJtd2FyZUNvbnRleHRQb2lu dGVyICgNCj4gPiArICBJTiBFRklfUklTQ1ZfRklSTVdBUkVfQ09OVEVYVCAgKkZpcm13YXJlQ29u dGV4dFB0cg0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBNYWtlIEVDQUxMIGlu IGFzc2VtYmx5DQo+ID4gKw0KPiA+ICsgIFN3aXRjaCB0byBNLW1vZGUNCj4gPiArDQo+ID4gKyAg QHBhcmFtW2luLG91dF0gICBBcmcwDQo+ID4gKyAgQHBhcmFtW2luLG91dF0gICBBcmcxDQo+ID4g KyAgQHBhcmFtW2luXSAgICAgICBBcmcyDQo+ID4gKyAgQHBhcmFtW2luXSAgICAgICBBcmczDQo+ ID4gKyAgQHBhcmFtW2luXSAgICAgICBBcmc0DQo+ID4gKyAgQHBhcmFtW2luXSAgICAgICBBcmc1 DQo+ID4gKyAgQHBhcmFtW2luXSAgICAgICBGSUQNCj4gPiArICBAcGFyYW1baW5dICAgICAgIEVY VA0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArUmlzY1ZTYmlFY2FsbCAo DQo+ID4gKyAgSU4gT1VUIFVJTlROICAqQXJnMCwNCj4gPiArICBJTiBPVVQgVUlOVE4gICpBcmcx LA0KPiA+ICsgIElOIFVJTlROICAgICAgQXJnMiwNCj4gPiArICBJTiBVSU5UTiAgICAgIEFyZzMs DQo+ID4gKyAgSU4gVUlOVE4gICAgICBBcmc0LA0KPiA+ICsgIElOIFVJTlROICAgICAgQXJnNSwN Cj4gPiArICBJTiBVSU5UTiAgICAgIEZpZCwNCj4gPiArICBJTiBVSU5UTiAgICAgIEV4dA0KPiA+ ICsgICk7DQo+ID4gKw0KPiA+ICsjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJh cnkvQmFzZVJpc2NWU2JpTGliL0Jhc2VSaXNjVlNiaUxpYi5jIGIvTWRlUGtnL0xpYnJhcnkvQmFz ZVJpc2NWU2JpTGliL0Jhc2VSaXNjVlNiaUxpYi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQN Cj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjJiYThmNWVkMzY2YQ0KPiA+IC0tLSAvZGV2L251bGwN Cj4gPiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlUmlzY1ZTYmlMaWIvQmFzZVJpc2NWU2JpTGli LmMNCj4gPiBAQCAtMCwwICsxLDIzMSBAQA0KPiA+ICsvKiogQGZpbGUNCj4gPiArICBJbnN0YW5j ZSBvZiB0aGUgU0JJIGVjYWxsIGxpYnJhcnkuDQo+ID4gKw0KPiA+ICsgIEl0IGFsbG93cyBjYWxs aW5nIGFuIFNCSSBmdW5jdGlvbiB2aWEgYW4gZWNhbGwgZnJvbSBTLU1vZGUuDQo+ID4gKw0KPiA+ ICsgIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBIZXdsZXR0IFBhY2thcmQgRGV2ZWxvcG1lbnQg TFAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsNCj4gPiArICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsNCj4gPiArKiovDQo+ID4gKw0K PiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5 L0Jhc2VNZW1vcnlMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4g PiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZVJpc2NWU2JpTGliLmg+DQo+ID4gKw0KPiA+ICsvLw0K PiA+ICsvLyBNYXhpbXVtIGFyZ3VtZW50cyBmb3IgU0JJIGVjYWxsDQo+ID4gKyNkZWZpbmUgU0JJ X0NBTExfTUFYX0FSR1MgIDYNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIENhbGwgU0JJIGNhbGwg dXNpbmcgZWNhbGwgaW5zdHJ1Y3Rpb24uDQo+ID4gKw0KPiA+ICsgIEFzc2VydHMgd2hlbiBOdW1B cmdzIGV4Y2VlZHMgU0JJX0NBTExfTUFYX0FSR1MuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0g RXh0SWQgICAgU0JJIGV4dGVuc2lvbiBJRC4NCj4gPiArICBAcGFyYW1baW5dIEZ1bmNJZCAgIFNC SSBmdW5jdGlvbiBJRC4NCj4gPiArICBAcGFyYW1baW5dIE51bUFyZ3MgIE51bWJlciBvZiBhcmd1 bWVudHMgdG8gcGFzcyB0byB0aGUgZWNhbGwuDQo+ID4gKyAgQHBhcmFtW2luXSAuLi4gICAgICBB cmd1bWVudCBsaXN0IGZvciB0aGUgZWNhbGwuDQo+ID4gKw0KPiA+ICsgIEByZXR2YWwgIFJldHVy bnMgU0JJX1JFVCBzdHJ1Y3R1cmUgd2l0aCB2YWx1ZSBhbmQgZXJyb3IgY29kZS4NCj4gPiArDQo+ ID4gKyoqLw0KPiA+ICtTVEFUSUMNCj4gPiArU0JJX1JFVA0KPiA+ICtFRklBUEkNCj4gPiArU2Jp Q2FsbCAoDQo+ID4gKyAgSU4gIFVJTlROICBFeHRJZCwNCj4gPiArICBJTiAgVUlOVE4gIEZ1bmNJ ZCwNCj4gPiArICBJTiAgVUlOVE4gIE51bUFyZ3MsDQo+ID4gKyAgLi4uDQo+ID4gKyAgKQ0KPiA+ ICt7DQo+ID4gKyAgVUlOVE4gICAgSTsNCj4gPiArICBTQklfUkVUICBSZXQ7DQo+ID4gKyAgVUlO VE4gICAgQXJnc1tTQklfQ0FMTF9NQVhfQVJHU107DQo+ID4gKyAgVkFfTElTVCAgQXJnTGlzdDsN Cj4gPiArDQo+ID4gKyAgVkFfU1RBUlQgKEFyZ0xpc3QsIE51bUFyZ3MpOw0KPiA+ICsNCj4gPiAr ICBpZiAoTnVtQXJncyA+IFNCSV9DQUxMX01BWF9BUkdTKSB7DQo+ID4gKyAgICBSZXQuRXJyb3Ig PSBTQklfRVJSX0lOVkFMSURfUEFSQU07DQo+ID4gKyAgICBSZXQuVmFsdWUgPSAtMTsNCj4gPiAr ICAgIHJldHVybiBSZXQ7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBmb3IgKEkgPSAwOyBJIDwg U0JJX0NBTExfTUFYX0FSR1M7IEkrKykgew0KPiA+ICsgICAgaWYgKEkgPCBOdW1BcmdzKSB7DQo+ ID4gKyAgICAgIEFyZ3NbSV0gPSBWQV9BUkcgKEFyZ0xpc3QsIFVJTlROKTsNCj4gPiArICAgIH0g ZWxzZSB7DQo+ID4gKyAgICAgIC8vIERlZmF1bHQgdG8gMCBmb3IgYWxsIGFyZ3VtZW50cyB0aGF0 IGFyZSBub3QgZ2l2ZW4NCj4gPiArICAgICAgQXJnc1tJXSA9IDA7DQo+ID4gKyAgICB9DQo+ID4g KyAgfQ0KPiA+ICsNCj4gPiArICBWQV9FTkQgKEFyZ0xpc3QpOw0KPiA+ICsNCj4gPiArICAvLyBF Q0FMTCB1cGRhdGVzIHRoZSBhMCBhbmQgYTEgcmVnaXN0ZXJzIGFzIHJldHVybiB2YWx1ZXMuDQo+ ID4gKyAgUmlzY1ZTYmlFY2FsbCAoDQo+ID4gKyAgICAmQXJnc1swXSwNCj4gPiArICAgICZBcmdz WzFdLA0KPiA+ICsgICAgQXJnc1syXSwNCj4gPiArICAgIEFyZ3NbM10sDQo+ID4gKyAgICBBcmdz WzRdLA0KPiA+ICsgICAgQXJnc1s1XSwNCj4gPiArICAgIChVSU5UTikoRnVuY0lkKSwNCj4gPiAr ICAgIChVSU5UTikoRXh0SWQpDQo+ID4gKyAgICApOw0KPiA+ICsNCj4gPiArICBSZXQuRXJyb3Ig PSBBcmdzWzBdOw0KPiA+ICsgIFJldC5WYWx1ZSA9IEFyZ3NbMV07DQo+ID4gKyAgcmV0dXJuIFJl dDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgVHJhbnNsYXRlIFNCSSBlcnJvciBj b2RlIHRvIEVGSSBzdGF0dXMuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gU2JpRXJyb3IgICBT QkkgZXJyb3IgY29kZQ0KPiA+ICsgIEByZXR2YWwgRUZJX1NUQVRVUw0KPiA+ICsqKi8NCj4gPiAr U1RBVElDDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiArRUZJQVBJDQo+ID4gK1RyYW5zbGF0ZUVycm9y ICgNCj4gPiArICBJTiAgVUlOVE4gIFNiaUVycm9yDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAg c3dpdGNoIChTYmlFcnJvcikgew0KPiA+ICsgICAgY2FzZSBTQklfU1VDQ0VTUzoNCj4gPiArICAg ICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ICsgICAgY2FzZSBTQklfRVJSX0ZBSUxFRDoNCj4g PiArICAgICAgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1I7DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ ICsgICAgY2FzZSBTQklfRVJSX05PVF9TVVBQT1JURUQ6DQo+ID4gKyAgICAgIHJldHVybiBFRklf VU5TVVBQT1JURUQ7DQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsgICAgY2FzZSBTQklfRVJSX0lO VkFMSURfUEFSQU06DQo+ID4gKyAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsgICAgY2FzZSBTQklfRVJSX0RFTklFRDoNCj4gPiArICAg ICAgcmV0dXJuIEVGSV9BQ0NFU1NfREVOSUVEOw0KPiA+ICsgICAgICBicmVhazsNCj4gPiArICAg IGNhc2UgU0JJX0VSUl9JTlZBTElEX0FERFJFU1M6DQo+ID4gKyAgICAgIHJldHVybiBFRklfTE9B RF9FUlJPUjsNCj4gPiArICAgICAgYnJlYWs7DQo+ID4gKyAgICBjYXNlIFNCSV9FUlJfQUxSRUFE WV9BVkFJTEFCTEU6DQo+ID4gKyAgICAgIHJldHVybiBFRklfQUxSRUFEWV9TVEFSVEVEOw0KPiA+ ICsgICAgICBicmVhazsNCj4gPiArICAgIGRlZmF1bHQ6DQo+ID4gKyAgICAgIC8vDQo+ID4gKyAg ICAgIC8vIFJlYWNoZXMgaGVyZSBvbmx5IGlmIFNCSSBoYXMgZGVmaW5lZCBhIG5ldyBlcnJvciB0 eXBlDQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIEFTU0VSVCAoRkFMU0UpOw0KPiA+ICsgICAg ICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KPiA+ICsgICAgICBicmVhazsNCj4gPiArICB9DQo+ ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIENsZWFyIHBlbmRpbmcgdGltZXIgaW50ZXJy dXB0IGJpdCBhbmQgc2V0IHRpbWVyIGZvciBuZXh0IGV2ZW50IGFmdGVyIFRpbWUuDQo+ID4gKw0K PiA+ICsgIFRvIGNsZWFyIHRoZSB0aW1lciB3aXRob3V0IHNjaGVkdWxpbmcgYSB0aW1lciBldmVu dCwgc2V0IFRpbWUgdG8gYQ0KPiA+ICsgIHByYWN0aWNhbGx5IGluZmluaXRlIHZhbHVlIG9yIG1h c2sgdGhlIHRpbWVyIGludGVycnVwdCBieSBjbGVhcmluZyBzaWUuU1RJRS4NCj4gPiArDQo+ID4g KyAgQHBhcmFtW2luXSAgVGltZSAgICAgICAgICAgICAgICAgVGhlIHRpbWUgb2Zmc2V0IHRvIHRo ZSBuZXh0IHNjaGVkdWxlZCB0aW1lciBpbnRlcnJ1cHQuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ ID4gK0VGSUFQSQ0KPiA+ICtTYmlTZXRUaW1lciAoDQo+ID4gKyAgSU4gIFVJTlQ2NCAgVGltZQ0K PiA+ICsgICkNCj4gPiArew0KPiA+ICsgIFNiaUNhbGwgKFNCSV9FWFRfVElNRSwgU0JJX0VYVF9U SU1FX1NFVF9USU1FUiwgMSwgVGltZSk7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsg IFJlc2V0IHRoZSBzeXN0ZW0gdXNpbmcgU1JTVCBTQkkgZXh0ZW5pb24NCj4gPiArDQo+ID4gKyAg QHBhcmFtW2luXSAgUmVzZXRUeXBlICAgICAgICAgICAgVGhlIFNSU1QgU3lzdGVtIFJlc2V0IFR5 cGUuDQo+ID4gKyAgQHBhcmFtW2luXSAgUmVzZXRSZWFzb24gICAgICAgICAgVGhlIFNSU1QgU3lz dGVtIFJlc2V0IFJlYXNvbi4NCj4gPiArKiovDQo+ID4gK0VGSV9TVEFUVVMNCj4gPiArRUZJQVBJ DQo+ID4gK1NiaVN5c3RlbVJlc2V0ICgNCj4gPiArICBJTiAgVUlOVE4gIFJlc2V0VHlwZSwNCj4g PiArICBJTiAgVUlOVE4gIFJlc2V0UmVhc29uDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgU0JJ X1JFVCAgUmV0Ow0KPiA+ICsNCj4gPiArICBSZXQgPSBTYmlDYWxsICgNCj4gPiArICAgICAgICAg IFNCSV9FWFRfU1JTVCwNCj4gPiArICAgICAgICAgIFNCSV9FWFRfU1JTVF9SRVNFVCwNCj4gPiAr ICAgICAgICAgIDIsDQo+ID4gKyAgICAgICAgICBSZXNldFR5cGUsDQo+ID4gKyAgICAgICAgICBS ZXNldFJlYXNvbg0KPiA+ICsgICAgICAgICAgKTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuIFRyYW5z bGF0ZUVycm9yIChSZXQuRXJyb3IpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBH ZXQgZmlybXdhcmUgY29udGV4dCBvZiB0aGUgY2FsbGluZyBoYXJ0Lg0KPiA+ICsNCj4gPiArICBA cGFyYW1bb3V0XSBGaXJtd2FyZUNvbnRleHQgICAgICBUaGUgZmlybXdhcmUgY29udGV4dCBwb2lu dGVyLg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArR2V0RmlybXdhcmVD b250ZXh0ICgNCj4gPiArICBPVVQgRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICoqRmlybXdh cmVDb250ZXh0DQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgKkZpcm13YXJlQ29udGV4dCA9IChF RklfUklTQ1ZfRklSTVdBUkVfQ09OVEVYVCAqKVJpc2NWR2V0U3VwZXJ2aXNvclNjcmF0Y2ggKCk7 DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFNldCBmaXJtd2FyZSBjb250ZXh0IG9m IHRoZSBjYWxsaW5nIGhhcnQuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gRmlybXdhcmVDb250 ZXh0ICAgICAgIFRoZSBmaXJtd2FyZSBjb250ZXh0IHBvaW50ZXIuDQo+ID4gKyoqLw0KPiA+ICtW T0lEDQo+ID4gK0VGSUFQSQ0KPiA+ICtTZXRGaXJtd2FyZUNvbnRleHQgKA0KPiA+ICsgIElOIEVG SV9SSVNDVl9GSVJNV0FSRV9DT05URVhUICAqRmlybXdhcmVDb250ZXh0DQo+ID4gKyAgKQ0KPiA+ ICt7DQo+ID4gKyAgUmlzY1ZTZXRTdXBlcnZpc29yU2NyYXRjaCAoKFVJTlQ2NClGaXJtd2FyZUNv bnRleHQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBHZXQgcG9pbnRlciB0byBP cGVuU0JJIEZpcm13YXJlIENvbnRleHQNCj4gPiArDQo+ID4gKyAgR2V0IHRoZSBwb2ludGVyIG9m IGZpcm13YXJlIGNvbnRleHQgdGhyb3VnaCBPcGVuU0JJIEZXIEV4dGVuc2lvbiBTQkkuDQo+ID4g Kw0KPiA+ICsgIEBwYXJhbSAgICBGaXJtd2FyZUNvbnRleHRQdHIgICBQb2ludGVyIHRvIHJldHJp ZXZlIHBvaW50ZXIgdG8gdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZpcm13YXJlIENvbnRleHQuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0KPiA+ ICtHZXRGaXJtd2FyZUNvbnRleHRQb2ludGVyICgNCj4gPiArICBJTiBPVVQgRUZJX1JJU0NWX0ZJ Uk1XQVJFX0NPTlRFWFQgICoqRmlybXdhcmVDb250ZXh0UHRyDQo+ID4gKyAgKQ0KPiA+ICt7DQo+ ID4gKyAgR2V0RmlybXdhcmVDb250ZXh0IChGaXJtd2FyZUNvbnRleHRQdHIpOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICsvKioNCj4gPiArICBTZXQgdGhlIHBvaW50ZXIgdG8gT3BlblNCSSBGaXJtd2Fy ZSBDb250ZXh0DQo+ID4gKw0KPiA+ICsgIFNldCB0aGUgcG9pbnRlciBvZiBmaXJtd2FyZSBjb250 ZXh0IHRocm91Z2ggT3BlblNCSSBGVyBFeHRlbnNpb24gU0JJLg0KPiA+ICsNCj4gPiArICBAcGFy YW0gICAgRmlybXdhcmVDb250ZXh0UHRyICAgUG9pbnRlciB0byBGaXJtd2FyZSBDb250ZXh0Lg0K PiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtFRklBUEkNCj4gPiArU2V0RmlybXdhcmVDb250ZXh0 UG9pbnRlciAoDQo+ID4gKyAgSU4gRUZJX1JJU0NWX0ZJUk1XQVJFX0NPTlRFWFQgICpGaXJtd2Fy ZUNvbnRleHRQdHINCj4gPiArICApDQo+ID4gK3sNCj4gPiArICBTZXRGaXJtd2FyZUNvbnRleHQg KEZpcm13YXJlQ29udGV4dFB0cik7DQo+ID4gK30NCj4gPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvQmFzZVJpc2NWU2JpTGliL1Jpc2NWU2JpRWNhbGwuUyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VSaXNjVlNiaUxpYi9SaXNjVlNiaUVjYWxsLlMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uOGJhNjlmODUxMmE1DQo+ID4gLS0tIC9kZXYvbnVsbA0K PiA+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VSaXNjVlNiaUxpYi9SaXNjVlNiaUVjYWxsLlMN Cj4gPiBAQCAtMCwwICsxLDQyIEBADQo+ID4gKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g Ky8vDQo+ID4gKy8vIE1ha2UgRUNBTEwgdG8gU0JJDQo+ID4gKy8vDQo+ID4gKy8vIENvcHlyaWdo dCAoYykgMjAyMywgVmVudGFuYSBNaWNybyBTeXN0ZW1zIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+DQo+ID4gKy8vDQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50DQo+ID4gKy8vDQo+ID4gKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4g Kw0KPiA+ICsjaW5jbHVkZSA8UmVnaXN0ZXIvUmlzY1Y2NC9SaXNjVkltcGwuaD4NCj4gPiArDQo+ ID4gKy5kYXRhDQo+ID4gKy5hbGlnbiAzDQo+ID4gKy5zZWN0aW9uIC50ZXh0DQo+ID4gKw0KPiA+ ICsvLw0KPiA+ICsvLyBNYWtlIEVDQUxMIHRvIFNCSQ0KPiA+ICsvLyBlY2FsbCB1cGRhdGVzIHRo ZSBzYW1lIGEwIGFuZCBhMSByZWdpc3RlcnMgd2l0aA0KPiA+ICsvLyByZXR1cm4gdmFsdWVzLiBI ZW5jZSwgdGhlIEMgZnVuY3Rpb24gd2hpY2ggY2FsbHMNCj4gPiArLy8gdGhpcyBzaG91bGQgcGFz cyB0aGUgYWRkcmVzcyBvZiBBcmcwIGFuZCBBcmcxLg0KPiA+ICsvLyBUaGlzIHJvdXRpbmUgc2F2 ZXMgdGhlIGFkZHJlc3MgYW5kIHVwZGF0ZXMgaXQNCj4gPiArLy8gd2l0aCBhMCBhbmQgYTEgb25j ZSBlY2FsbCByZXR1cm5zLg0KPiA+ICsvLw0KPiA+ICsvLyBAcGFyYW0gYTAgOiBQb2ludGVyIHRv IEFyZzANCj4gPiArLy8gQHBhcmFtIGExIDogUG9pbnRlciB0byBBcmcxDQo+ID4gKy8vIEBwYXJh bSBhMiA6IEFyZzINCj4gPiArLy8gQHBhcmFtIGEzIDogQXJnMw0KPiA+ICsvLyBAcGFyYW0gYTQg OiBBcmc0DQo+ID4gKy8vIEBwYXJhbSBhNSA6IEFyZzUNCj4gPiArLy8gQHBhcmFtIGE2IDogRnVu Y3Rpb25JRA0KPiA+ICsvLyBAcGFyYW0gYTcgOiBFeHRlbnNpb25JZA0KPiA+ICsvLw0KPiA+ICtB U01fRlVOQyAoUmlzY1ZTYmlFY2FsbCkNCj4gPiArICBtdiB0MCwgYTANCj4gPiArICBtdiB0MSwg YTENCj4gPiArICBsZCBhMCwgMChhMCkNCj4gPiArICBsZCBhMSwgMChhMSkNCj4gPiArICBlY2Fs bA0KPiA+ICsgIHNkIGEwLCAwKHQwKQ0KPiA+ICsgIHNkIGExLCAwKHQxKQ0KPiA+ICsgIHJldA0K PiA+IC0tDQo+ID4gMi4zNC4xDQoNCg==