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.web08.29581.1632738987809776323 for ; Mon, 27 Sep 2021 03:36:28 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=rBxC1Cab; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: star.zeng@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10119"; a="224101312" X-IronPort-AV: E=Sophos;i="5.85,326,1624345200"; d="scan'208";a="224101312" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Sep 2021 03:36:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,326,1624345200"; d="scan'208";a="705893201" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga006.fm.intel.com with ESMTP; 27 Sep 2021 03:36:25 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Mon, 27 Sep 2021 03:36:24 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.2242.12 via Frontend Transport; Mon, 27 Sep 2021 03:36:24 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Mon, 27 Sep 2021 03:36:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KshIyLQ3VFnHnLjDSQNnzvzi4XUMdDWF4Y/h1PPFUuI6Ai01HpOweXiF2moO8jg+XhxOECL0jXk8RNThFcHlrLLRtqtqZAKcEVVl9IhgKhzf9wuVjqDB9Vx+DDVQy+WsVi3qPNFwBG1xesbJYTmmYXJbhr6IfXGfv4bYgkke7v/Mhj9+a7yu38eBnpDY8TE0HaWY04RKfYjWgAqqwgHHBjAzFu5251Nz8IuOeLltLCGyqUrPvAEvzKYVL0hkrH2xpbxh3Ot9HKCYwfJLHSrzXLCsxY2HhXMus6OJx9ugnvk24SrRewVLlHc5G3/s7xl1pfuyDHw3Kd2RxolCy+bgoQ== 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; bh=5P9A91FCiX/nHVJUBD0k76dQ5ruv1l/0QXAXovub3aw=; b=jDytWtHYOIee1fq7v7e9ZijY8vfl86JHKwK4B26OgYwvN+brshgIY4thprgl+X0EO9au1yQJ41RekMKBEKX5sLf34qLNGXXf87jvK3Fw9IB5yLgHnOIk/IUuHa2URzfXvqCGyImb3fSIWUSeRYb9XHY3FtLBhNR5OMbOVDxa/IJulp1Htto0atmitiDyi1uSySBg8v0AaQtw0/ug2UYIcwId7e2OXcS2AQ/5TLXDhOcBbW590JjC45VDLRo3RJZwaHmWeBZ+K/StLk/6flFAyKKt6t1A1LmBpgnrj/JsnHHyx//PguPJyV5eN4bAtvg7jCz9PJvcSYe6dz2PKpePVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5P9A91FCiX/nHVJUBD0k76dQ5ruv1l/0QXAXovub3aw=; b=rBxC1CabVCSYDKfX10rjoVM0yiUVd+mef7IsEiS8J37FSzK5TTuWlTyz97jyCKjVZIaBhMl+iE6vfnvE59avnGDnbcYmgCmmInFRAeAZHI4cdWAvbiDjztM2JuiqkVq/2X6FueZCb/J6v7rFBHkm7GWnh8gjnF2Efuuao3MsK+Q= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM5PR1101MB2140.namprd11.prod.outlook.com (2603:10b6:4:51::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.15; Mon, 27 Sep 2021 10:36:23 +0000 Received: from DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::dd12:1911:3b44:25b4]) by DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::dd12:1911:3b44:25b4%4]) with mapi id 15.20.4544.021; Mon, 27 Sep 2021 10:36:23 +0000 From: "Zeng, Star" To: "S, Ashraf Ali" , "Chiu, Chasel" , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" , "Kuo, Ted" , "Duggapu, Chinni B" , "Chaganty, Rangasai V" , "Solanki, Digant H" , "V, Sangeetha" , "Ni, Ray" , "Zeng, Star" Subject: Re: [PATCH v7] IntelFsp2WrapperPkg : FSPM/S UPD data address based on Build Type Thread-Topic: [PATCH v7] IntelFsp2WrapperPkg : FSPM/S UPD data address based on Build Type Thread-Index: AQHXsTlTJ6fjWxdzhUigwLgljBZrPau3Fl+AgAB9PxCAABsmAIAAAbTg Date: Mon, 27 Sep 2021 10:36:22 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US X-Mentions: chasel.chiu@intel.com X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 174458a4-b622-46b5-ea66-08d981a2a6c1 x-ms-traffictypediagnostic: DM5PR1101MB2140: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2089; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IX+rZIw0/LvdBM6611rzfUpj9W9qTcXYTaleM+5QsCRZAofPPJigQJq0esaWG7FPDIzyiYlHS9FsxzfW1bgBpJPhP7kiuYgp3fE1MPdDp9gT6uRS9oJdbvCovmXJiS04L1m9XYxFAwg/rJhFI7ZmdOOJRhFodF56Uja2UMmClM9SrSbqxh1meXXB3ybCPa+yJ0aFGRzlEWRHUzAbjSmhFaIkw2eyeDYAB5wD91odNNhIthf0NLQ2v8YRD2Ygl+vTihiD/7kjWCvBFQ/NeZQeIlZtM5c6akllsDOL8XEFazbuqGwhQtVp89tPsrx1qhTTRB9bbX/bpLu/YU0tF/s3Mw6vT6unExUhCFMRDj1NV2qlVwpYtl5A2w/CThKJYQb7zIoqc+gTWt5YzidQPrBp4k7nIOGbjLLGdTf0fowQb/BAK3CROrOZUEXi06hXqlNYd4SMai5tpqBPabadrDNHCKOmP0l2QTVNDUlpJkh2XOaW/XWA2BqmnQd85ZOOmb6HWFBTgKvBuf5b0r9gUyI7T6DPSZU4FNW/m3BAcbBKY9qvbMqONS966xHpGx+ot4V7bSfzI9cRzmIT7W3zpeQ4nMAuYoHOiM2ADzQ8J2KdcneImhVFyn49mErgJR5FAncSTmN/qUrqi41sl4T/0iAmAYJVWy7zPkzmkNQ/QIee/nA4U7Fdlb5fY+bQdAF0ZpXSsbVw3I/uv+RhFrH78cIkwDO32xYKTWCiBSVNNHzt9+mJcYt74CBz+gJbT9dahLOlWOKvtY5gtiz5fT0Roa1xX0mBlKxJmD8ZdAW0wlPVa5Q= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4058.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(19627235002)(107886003)(33656002)(110136005)(186003)(83380400001)(30864003)(54906003)(26005)(38070700005)(122000001)(64756008)(55016002)(498600001)(76116006)(9686003)(71200400001)(8936002)(5660300002)(4326008)(2906002)(66476007)(66556008)(6506007)(38100700002)(7696005)(66946007)(86362001)(8676002)(52536014)(53546011)(66446008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QnlxZFdpZElSSCs2ajRMY1pVdWhqNENPRzYvZG1maGNxVEdFRG1yWExodWdx?= =?utf-8?B?WmxCUUM1VkxlTGk1RE5LV240dmxRTWMyeVgvZ0dwUE40bEp3K2czRWJtSEdJ?= =?utf-8?B?cDNDczVXVWJUSHdYcTYxK3l0L1ZBWmM1QUdGVFFRRzc3blF4ZzdMT0UyeGtN?= =?utf-8?B?cnFiZC80d2dPY2VqRG5WRHdVeW40cVJIcHNmQmRQTWFET2t4RDBnK3kyVERZ?= =?utf-8?B?VW1uWkRpZzl6Ny9WenZPY0hQSEl4RTg4djNWS2daZ0ZtMW5PQkR6UlZlQXlV?= =?utf-8?B?OVJhNk52TE1aa2gwNW9LYlI5WENjMFF4eHR1T0psWjlwQndGYXlTenBYK2VS?= =?utf-8?B?c2RDei9BcGNSUGFTSm1neldHRUpJUy96THVZZ1dRU1FTRlM3NksvSW5SK3VB?= =?utf-8?B?MGoyeDAwNFBBNURldUFOeWlUelVUWStkS2JIVTV5SW5FWVkxdGxaMk9lREFk?= =?utf-8?B?LzlHV2tkT3pKelM4ZzhRUU1OZys0UU1iNWVIcmhUbE5JNTVRSnM1R3Q4RnZY?= =?utf-8?B?NkJCVlpkTG10RHVWdnRXMEcyUTF2cDl5U3RZY0pXZWx2U0dTb1RzR3BUcjNC?= =?utf-8?B?RmtDQVZHUkRvU2o0ZE1wY0tncUpKa1BqTHpHb0ZBRGtGb25UQmtkQXNCQVVz?= =?utf-8?B?WXowTGRzZTFxeEFCazBjeFR2ZmdLZEUraUVYcjNSUitSQVVRODY1YVhKL0VT?= =?utf-8?B?bjd2ZzhLTzJBSlBlVkVEM3FyL2dFdTMzUVhaQ1E1WUhMeGlRQ3NBMllMRHZY?= =?utf-8?B?WnpyWVFQQXRjc08vYUZsKzh1S2VSb3g5T3J3MG0zaEpqdTZlcnJ4NUxzdWUy?= =?utf-8?B?NjRuSGpvdzg1SUtYK2JSUnM1K1JHRTlsMC94TFV6KzU0NEhjVkVvWWtZQjdY?= =?utf-8?B?dnEwSUdWdHVxWG5wSEZBaDRWM01SYUtVeW9ERW9Zcy91Y0dFd29NMkg2SERn?= =?utf-8?B?czROdCtFbnRJZ3RqQ2RYRnpuVHNqMTRlM1lzYVgxcnRoZG5EMjZ6dmVNT2pj?= =?utf-8?B?U0dYV2dyRmFWU3hBanQwMjhMVW5XT2k5UVdMZDRreUlHQTdvZElmMmVQQk55?= =?utf-8?B?RHJ4ODBWdmFxRk02SDZMQUNhRS9PME5VNnFUYmtHR2p0QU9QMm93czdqblFR?= =?utf-8?B?dGpuREZaUnpUcUxSU0dBenJhbEliOU40UzN5dmExZU5YRWVENFdLZkNGcWl5?= =?utf-8?B?a0ZqaDBHcCt5Wjk2SEF5ZDRmdTQ0eUczdUdIdlduRW1ab0FaTzNkZVorUThU?= =?utf-8?B?b3I3TG5kOU1mVHNWZXUxbWExTUo0ZGVjOGhLSDQxS3YyaVlmOEc3N1RaUFdE?= =?utf-8?B?UVVvaFpWRW12OFQ0Z09jUDJIZWtCUHZlZFB2SnlSczd2NHVaVTJpcW1VU0pM?= =?utf-8?B?RkdqbWEwRDU0a3pqQlpoaVJmTnJPZ0RJZ3VrbmEzbzlWWDhaU0FjUi81aEsw?= =?utf-8?B?dHpoTHdHcENJb0EzY2ppYVJQOVduNk1KcXFlMVcraHo4NWhXUUdDNTJmMERO?= =?utf-8?B?Nk00MmgrenhGREs2Yll1RzY2TDFmckN2d1d6dVlUSkgwU0RnaFdzNkJaTWVT?= =?utf-8?B?MU9ySUlBbGFjbGlKendZQ25yK0x3Zlk0a2oxUkZNL3djRWhoaGVrSWI0NVJu?= =?utf-8?B?VkF5b0hETktleGdFRDUrSml1WFhCMkdMTHFmNlIzSHVveis3TURna0ZYSVlK?= =?utf-8?B?WExwc3BXQ2RzZWtidDJwZDlEa3lZK2NlYXU0UTBnTXZFWnhPTnIxS0RoNGFW?= =?utf-8?Q?7r+HUNayx/V5IltEP8=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 174458a4-b622-46b5-ea66-08d981a2a6c1 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Sep 2021 10:36:22.9888 (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: c0QG0nm0BTvbN7QITQqEB9BX0D2GB/se12+5aTqSgs1DCIm5lnBbVKrdll/YPExuZrhZm3ZchIzPYmSoPW+Xmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1101MB2140 Return-Path: star.zeng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SWYgc29tZW9uZSBzZXRzIHRoZSBQQ0QgUGNkRnNwbVVwZERhdGFBZGRyZXNzNjQgYWNjaWRlbnRh bGx5LCBpdCBpcyBiZXR0ZXIgdG8gYmUgY2F1Z2h0IGJ5IHNvbWUgd2F5IGJ1dCBpZ25vcmVkLg0K DQpCVFcsIGlmIHRoZSBmdW5jdGlvbiBHZXRGc3BtVXBkRGF0YUFkZHJlc3MoKSBpcyBhIGludGVy bmFsIGZ1bmN0aW9uIGluIHRoZSBtb2R1bGUsIG5vIEVGSUFQSSBpcyBuZWVkZWQgaW4gdGhlIGRl Y2xhcmF0aW9uLg0KDQpBbmQsIEBDaGl1LCBDaGFzZWwsIGlzIFBjZEZzcG1VcGREYXRhQWRkcmVz cyBzdXBwb3NlZCB0byBiZSBhbHdheXMgY29uZmlndXJlZCB0byBiZSBEeW5hbWljIHR5cGUgYnkg cGxhdGZvcm0/DQoNCklmIHllcywgbWF5YmUgd2UgY2FuIGhhdmUgdHdvIGhlbHAgZnVuY3Rpb25z IGluIEZzcFdyYXBwZXJQbGF0Zm9ybUxpYiBsaWtlIGJlbG93IGFuZCByZW1vdmUgIlBjZHNGaXhl ZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZSIgaW4gZGVjLiBQbGF0Zm9ybSBjYW4gdXNl IFNldEZzcG1VcGREYXRhQWRkcmVzcygpIHdpdGhvdXQgbmVlZCB0byBiZSBhd2FyZSBvZiB0aGUg UENEcy4NCg0KVUlOVE4NCkVGSUFQSQ0KR2V0RnNwbVVwZERhdGFBZGRyZXNzICgNCiAgVk9JRA0K ICApDQp7DQogIGlmIChQY2RHZXQ2NCAoUGNkRnNwbVVwZERhdGFBZGRyZXNzNjQpICE9IDApIHsN CiAgICByZXR1cm4gKFVJTlROKSBQY2RHZXQ2NCAoUGNkRnNwbVVwZERhdGFBZGRyZXNzNjQpOw0K ICB9IGVsc2Ugew0KICAgIHJldHVybiAoVUlOVE4pIFBjZEdldDMyIChQY2RGc3BtVXBkRGF0YUFk ZHJlc3MpOw0KICB9DQp9DQoNClZPSUQNCkVGSUFQSQ0KU2V0RnNwbVVwZERhdGFBZGRyZXNzICgN CiAgSU4gVUlOVE4gQWRkcmVzcw0KICApDQp7DQogIGlmIChBZGRyZXNzIDw9IE1BWF9VSU5UMzIp IHsNCiAgICBQY2RTZXQzMlMgKFBjZEZzcG1VcGREYXRhQWRkcmVzcywgKFVJTlQzMikgQWRkcmVz cyk7DQogIH0gZWxzZSB7DQogICAgUGNkU2V0NjRTIChQY2RGc3BtVXBkRGF0YUFkZHJlc3M2NCwg KFVJTlQ2NCkgQWRkcmVzcyk7DQogIH0NCn0NCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KRnJvbTogUywgQXNocmFmIEFsaSA8YXNocmFmLmFsaS5zQGludGVsLmNvbT4gDQpTZW50OiAy MDIx5bm0OeaciDI35pelIDE4OjE2DQpUbzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNv bT47IENoaXUsIENoYXNlbCA8Y2hhc2VsLmNoaXVAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91 cHMuaW8NCkNjOiBEZXNpbW9uZSwgTmF0aGFuaWVsIEwgPG5hdGhhbmllbC5sLmRlc2ltb25lQGlu dGVsLmNvbT47IEt1bywgVGVkIDx0ZWQua3VvQGludGVsLmNvbT47IER1Z2dhcHUsIENoaW5uaSBC IDxjaGlubmkuYi5kdWdnYXB1QGludGVsLmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5n YXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT47IFNvbGFua2ksIERpZ2FudCBIIDxkaWdhbnQuaC5z b2xhbmtpQGludGVsLmNvbT47IFYsIFNhbmdlZXRoYSA8c2FuZ2VldGhhLnZAaW50ZWwuY29tPjsg TmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT4NClN1YmplY3Q6IFJFOiBbUEFUQ0ggdjddIEludGVs RnNwMldyYXBwZXJQa2cgOiBGU1BNL1MgVVBEIGRhdGEgYWRkcmVzcyBiYXNlZCBvbiBCdWlsZCBU eXBlDQoNCkhpLiwgQFplbmcsIFN0YXINCg0KQ3JlYXRpbmcgYSBzaW5nbGUgZnVuY3Rpb24gaXMg ZG9hYmxlLCBidXQgdGhlIHByb2JsZW0gd2l0aCB0aGF0IGlzIElmIHNvbWVvbmUgc2V0IHRoZSBQ Q0QgIFBjZEZzcG1VcGREYXRhQWRkcmVzczY0IGFjY2lkZW50YWxseSB3aGljaCBzaG91bGQgYmUg YXBwbGljYWJsZSBvbmx5IGluIFg2NC4gU2luY2UgdGhlIFBDRCBoYXMgc29tZSBqdW5rIHZhbHVl LCBpdCB3aWxsIHJldHVybiB0aGUgZmFsc2UgZGF0YSBpbiBJQTMyIGNhc2UuIFdoaWNoIHdpbGwg YnJlYWsgZXZlcnl0aGluZyB3aXRoIHJlc3BlY3QgdG8gRlNQLVMvTS4NCg0KVG8gQXZvaWQgU3Vj aCBjYXNlcyBzZXBhcmF0aW5nIHRoZSBJQTMyIHZzIFg2NCBpcyBtb3JlIGZlYXNpYmxlLiBBbmQg ZWFzaWx5IGRpZmZlcmVudGlhdGluZyB3aXRoIElBMzIgYW5kIFg2NC4gDQoNClJlZ2FyZHMsDQpB c2hyYWYgQWxpIFMNCkludGVsIFRlY2hub2xvZ3kgSW5kaWEgUHZ0LiBMdGQuwqANCg0KLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5j b20+DQpTZW50OiBNb25kYXksIFNlcHRlbWJlciAyNywgMjAyMSAyOjE1IFBNDQpUbzogQ2hpdSwg Q2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+OyBTLCBBc2hyYWYgQWxpIDxhc2hyYWYuYWxp LnNAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiBEZXNpbW9uZSwgTmF0aGFu aWVsIEwgPG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT47IEt1bywgVGVkIDx0ZWQua3Vv QGludGVsLmNvbT47IER1Z2dhcHUsIENoaW5uaSBCIDxjaGlubmkuYi5kdWdnYXB1QGludGVsLmNv bT47IENoYWdhbnR5LCBSYW5nYXNhaSBWIDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT47 IFNvbGFua2ksIERpZ2FudCBIIDxkaWdhbnQuaC5zb2xhbmtpQGludGVsLmNvbT47IFYsIFNhbmdl ZXRoYSA8c2FuZ2VldGhhLnZAaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47 IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiBSRTogW1BBVENIIHY3 XSBJbnRlbEZzcDJXcmFwcGVyUGtnIDogRlNQTS9TIFVQRCBkYXRhIGFkZHJlc3MgYmFzZWQgb24g QnVpbGQgVHlwZQ0KDQpDdXJpb3VzOiBJdCBkb2VzIG5vdCB3b3JrIHRvIGhhdmUgb25lIGZ1bmN0 aW9uIGltcGxlbWVudGF0aW9uIGxpa2UgYmVsb3c/DQoNClVJTlRODQpFRklBUEkNCkdldEZzcG1V cGREYXRhQWRkcmVzcyAoDQogIFZPSUQNCiAgKQ0Kew0KICBpZiAoUGNkR2V0NjQgKFBjZEZzcG1V cGREYXRhQWRkcmVzczY0KSAhPSAwKSB7DQogICAgcmV0dXJuIChVSU5UTikgUGNkR2V0NjQgKFBj ZEZzcG1VcGREYXRhQWRkcmVzczY0KTsNCiAgfSBlbHNlIHsNCiAgICByZXR1cm4gKFVJTlROKSBQ Y2RHZXQzMiAoUGNkRnNwbVVwZERhdGFBZGRyZXNzKTsNCiAgfQ0KfQ0KDQpUaGFua3MsDQpTdGFy DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBDaGl1LCBDaGFzZWwgPGNoYXNl bC5jaGl1QGludGVsLmNvbT4NClNlbnQ6IE1vbmRheSwgU2VwdGVtYmVyIDI3LCAyMDIxIDk6MTAg QU0NClRvOiBTLCBBc2hyYWYgQWxpIDxhc2hyYWYuYWxpLnNAaW50ZWwuY29tPjsgZGV2ZWxAZWRr Mi5ncm91cHMuaW8NCkNjOiBEZXNpbW9uZSwgTmF0aGFuaWVsIEwgPG5hdGhhbmllbC5sLmRlc2lt b25lQGludGVsLmNvbT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBLdW8sIFRl ZCA8dGVkLmt1b0BpbnRlbC5jb20+OyBEdWdnYXB1LCBDaGlubmkgQiA8Y2hpbm5pLmIuZHVnZ2Fw dUBpbnRlbC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkgViA8cmFuZ2FzYWkudi5jaGFnYW50eUBp bnRlbC5jb20+OyBTb2xhbmtpLCBEaWdhbnQgSCA8ZGlnYW50Lmguc29sYW5raUBpbnRlbC5jb20+ OyBWLCBTYW5nZWV0aGEgPHNhbmdlZXRoYS52QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBp bnRlbC5jb20+DQpTdWJqZWN0OiBSRTogW1BBVENIIHY3XSBJbnRlbEZzcDJXcmFwcGVyUGtnIDog RlNQTS9TIFVQRCBkYXRhIGFkZHJlc3MgYmFzZWQgb24gQnVpbGQgVHlwZQ0KDQoNClJldmlld2Vk LWJ5OiBDaGFzZWwgQ2hpdSA8Y2hhc2VsLmNoaXVAaW50ZWwuY29tPg0KDQo+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFMsIEFzaHJhZiBBbGkgPGFzaHJhZi5hbGkuc0BpbnRl bC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDI0LCAyMDIxIDc6NDMgUE0NCj4gVG86 IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBTLCBBc2hyYWYgQWxpIDxhc2hyYWYuYWxpLnNA aW50ZWwuY29tPjsgQ2hpdSwgQ2hhc2VsIA0KPiA8Y2hhc2VsLmNoaXVAaW50ZWwuY29tPjsgRGVz aW1vbmUsIE5hdGhhbmllbCBMIA0KPiA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPjsg WmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IA0KPiBLdW8sIFRlZCA8dGVkLmt1b0Bp bnRlbC5jb20+OyBEdWdnYXB1LCBDaGlubmkgQiANCj4gPGNoaW5uaS5iLmR1Z2dhcHVAaW50ZWwu Y29tPjsgQ2hhZ2FudHksIFJhbmdhc2FpIFYgDQo+IDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVs LmNvbT47IFNvbGFua2ksIERpZ2FudCBIIA0KPiA8ZGlnYW50Lmguc29sYW5raUBpbnRlbC5jb20+ OyBWLCBTYW5nZWV0aGEgPHNhbmdlZXRoYS52QGludGVsLmNvbT47IA0KPiBOaSwgUmF5IDxyYXku bmlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggdjddIEludGVsRnNwMldyYXBwZXJQa2cg OiBGU1BNL1MgVVBEIGRhdGEgYWRkcmVzcyANCj4gYmFzZWQgb24gQnVpbGQgVHlwZQ0KPiANCj4g UkVGOmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzY0Mg0K PiB3aGVuIHRoZSBtb2R1bGUgaXMgbm90IGJ1aWxkaW5nIGluIElBMzIgbW9kZSB3aGljaCB3aWxs IGxlYWQgdG8gYnVpbGRpbmcgZXJyb3IuDQo+IHdoZW4gYSBtb2R1bGUgYnVpbHQtaW4gWDY0IGZ1 bmN0aW9uIHBvaW50ZXIgd2lsbCBiZSB0aGUgc2l6ZSBvZiA2NGJpdCANCj4gd2lkdGggd2hpY2gg Y2Fubm90IGJlIGZpdCBpbiAzMmJpdCBhZGRyZXNzIHdoaWNoIHdpbGwgbGVhZCB0byBlcnJvci4g DQo+IHRvIG92ZXJjb21lIHRoaXMgaXNzdWUgaW50cm9kdWNpbmcgdGhlIDIgbmV3IFBDRCdzIGZv ciB0aGUgNjRiaXQgbW9kdWxlcyBjYW4gY29uc3VtZSBpdC4NCj4gQ3JlYXRpbmcgdGhlIEFQSSdz IHRvIHN1cHBvcnQgZGlmZmVyZW50IGFyY2hpdGVjdHVyZQ0KPiANCj4gQ2M6IENoYXNlbCBDaGl1 IDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+IENjOiBOYXRlIERlU2ltb25lIDxuYXRoYW5pZWwu bC5kZXNpbW9uZUBpbnRlbC5jb20+DQo+IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5j b20+DQo+IENjOiBLdW8gVGVkIDx0ZWQua3VvQGludGVsLmNvbT4NCj4gQ2M6IER1Z2dhcHUgQ2hp bm5pIEIgPGNoaW5uaS5iLmR1Z2dhcHVAaW50ZWwuY29tPg0KPiBDYzogUmFuZ2FzYWkgViBDaGFn YW50eSA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+DQo+IENjOiBEaWdhbnQgSCBTb2xh bmtpIDxkaWdhbnQuaC5zb2xhbmtpQGludGVsLmNvbT4NCj4gQ2M6IFNhbmdlZXRoYSBWIDxzYW5n ZWV0aGEudkBpbnRlbC5jb20+DQo+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFNp Z25lZC1vZmYtYnk6IEFzaHJhZiBBbGkgUyA8YXNocmFmLmFsaS5zQGludGVsLmNvbT4NCj4gLS0t DQo+ICAuLi4vRnNwbVdyYXBwZXJQZWltL0ZzcG1XcmFwcGVyUGVpbS5jICAgICAgICAgfCAxOSAr KysrKysrKysrKy0tLQ0KPiAgLi4uL0ZzcG1XcmFwcGVyUGVpbS9Gc3BtV3JhcHBlclBlaW0uaW5m ICAgICAgIHwgMTYgKysrKysrKysrKy0tDQo+ICAuLi4vRnNwbVdyYXBwZXJQZWltL0lBMzIvRnNw bUhlbHBlci5jICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKysrDQo+ICAuLi4vRnNwbVdy YXBwZXJQZWltL1g2NC9Gc3BtSGVscGVyLmMgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysr KysrDQo+ICAuLi4vRnNwc1dyYXBwZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5jICAgICAgICAgfCAx NyArKysrKysrKystLS0NCj4gIC4uLi9Gc3BzV3JhcHBlclBlaW0vRnNwc1dyYXBwZXJQZWltLmlu ZiAgICAgICB8IDE0ICsrKysrKysrKy0NCj4gIC4uLi9Gc3BzV3JhcHBlclBlaW0vSUEzMi9Gc3Bz SGVscGVyLmMgICAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysrKysNCj4gIC4uLi9Gc3BzV3Jh cHBlclBlaW0vWDY0L0ZzcHNIZWxwZXIuYyAgICAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysr KysNCj4gIEludGVsRnNwMldyYXBwZXJQa2cvSW50ZWxGc3AyV3JhcHBlclBrZy5kZWMgICB8ICAy ICsrDQo+ICA5IGZpbGVzIGNoYW5nZWQsIDE2MiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMo LSkgIGNyZWF0ZSBtb2RlIA0KPiAxMDA2NDQgSW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BtV3JhcHBl clBlaW0vSUEzMi9Gc3BtSGVscGVyLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBJbnRlbEZz cDJXcmFwcGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9YNjQvRnNwbUhlbHBlci5jDQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQNCj4gSW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BzV3JhcHBlclBlaW0vSUEzMi9G c3BzSGVscGVyLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCANCj4gSW50ZWxGc3AyV3JhcHBlclBr Zy9Gc3BzV3JhcHBlclBlaW0vWDY0L0ZzcHNIZWxwZXIuYw0KPiANCj4gZGlmZiAtLWdpdCBhL0lu dGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL0ZzcG1XcmFwcGVyUGVpbS5jDQo+IGIv SW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BtV3JhcHBlclBlaW0vRnNwbVdyYXBwZXJQZWltLmMNCj4g aW5kZXggMjRhYjUzNDYyMC4uNGExNTEzNmMzOSAxMDA2NDQNCj4gLS0tIGEvSW50ZWxGc3AyV3Jh cHBlclBrZy9Gc3BtV3JhcHBlclBlaW0vRnNwbVdyYXBwZXJQZWltLmMNCj4gKysrIGIvSW50ZWxG c3AyV3JhcHBlclBrZy9Gc3BtV3JhcHBlclBlaW0vRnNwbVdyYXBwZXJQZWltLmMNCj4gQEAgLTMs NyArMyw3IEBADQo+ICAgIHJlZ2lzdGVyIFRlbXBvcmFyeVJhbURvbmVQcGkgdG8gY2FsbCBUZW1w UmFtRXhpdCBBUEksIGFuZCByZWdpc3RlciANCj4gTWVtb3J5RGlzY292ZXJlZFBwaQ0KPiAgICBu b3RpZnkgdG8gY2FsbCBGc3BTaWxpY29uSW5pdCBBUEkuDQo+IA0KPiAtICBDb3B5cmlnaHQgKGMp IDIwMTQgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQu PEJSPg0KPiArICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4g QWxsIHJpZ2h0cyANCj4gKyByZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiAgKiovDQo+IEBAIC0zOSw2ICszOSwxNyBA QA0KPiANCj4gIGV4dGVybiBFRklfR1VJRCBnRnNwSG9iR3VpZDsNCj4gDQo+ICsvKioNCj4gKyAg R2V0IHRoZSBGc3BtIFVwZCBEYXRhIEFkZHJlc3MgZnJvbSB0aGUgUENEDQo+ICsNCj4gKyAgQHJl dHVybiBGU1BNIFVQRCBEYXRhIEFkZHJlc3MNCj4gKyoqLw0KPiArVUlOVE4NCj4gK0VGSUFQSQ0K PiArR2V0RnNwbVVwZERhdGFBZGRyZXNzICgNCj4gKyAgVk9JRA0KPiArICApOw0KPiArDQo+ICAv KioNCj4gICAgQ2FsbCBGc3BNZW1vcnlJbml0IEFQSS4NCj4gDQo+IEBAIC01OSw3ICs3MCw3IEBA IFBlaUZzcE1lbW9yeUluaXQgKA0KPiANCj4gICAgREVCVUcgKChERUJVR19JTkZPLCAiUGVpRnNw TWVtb3J5SW5pdCBlbnRlclxuIikpOw0KPiANCj4gLSAgRnNwSG9iTGlzdFB0ciA9IE5VTEw7DQo+ ICsgIEZzcEhvYkxpc3RQdHIgID0gTlVMTDsNCj4gICAgRnNwbVVwZERhdGFQdHIgPSBOVUxMOw0K PiANCj4gICAgRnNwbUhlYWRlclB0ciA9IChGU1BfSU5GT19IRUFERVIgKikgRnNwRmluZEZzcEhl YWRlciAoUGNkR2V0MzIgDQo+IChQY2RGc3BtQmFzZUFkZHJlc3MpKTsgQEAgLTY4LDcgKzc5LDcg QEAgUGVpRnNwTWVtb3J5SW5pdCAoDQo+ICAgICAgcmV0dXJuIEVGSV9ERVZJQ0VfRVJST1I7DQo+ ICAgIH0NCj4gDQo+IC0gIGlmIChQY2RHZXQzMiAoUGNkRnNwbVVwZERhdGFBZGRyZXNzKSA9PSAw ICYmIChGc3BtSGVhZGVyUHRyLQ0KPiA+Q2ZnUmVnaW9uU2l6ZSAhPSAwKSAmJiAoRnNwbUhlYWRl clB0ci0+Q2ZnUmVnaW9uT2Zmc2V0ICE9IDApKSB7DQo+ICsgIGlmIChHZXRGc3BtVXBkRGF0YUFk ZHJlc3MgKCkgPT0gMCAmJiAoRnNwbUhlYWRlclB0ci0+Q2ZnUmVnaW9uU2l6ZSANCj4gKyAhPQ0K PiArIDApICYmIChGc3BtSGVhZGVyUHRyLT5DZmdSZWdpb25PZmZzZXQgIT0gMCkpIHsNCj4gICAg ICAvLw0KPiAgICAgIC8vIENvcHkgZGVmYXVsdCBGU1AtTSBVUEQgZGF0YSBmcm9tIEZsYXNoDQo+ ICAgICAgLy8NCj4gQEAgLTgwLDcgKzkxLDcgQEAgUGVpRnNwTWVtb3J5SW5pdCAoDQo+ICAgICAg Ly8NCj4gICAgICAvLyBFeHRlcm5hbCBVUEQgaXMgcmVhZHksIGdldCB0aGUgYnVmZmVyIGZyb20g UENEIHBvaW50ZXIuDQo+ICAgICAgLy8NCj4gLSAgICBGc3BtVXBkRGF0YVB0ciA9IChGU1BNX1VQ RF9DT01NT04gKilQY2RHZXQzMg0KPiAoUGNkRnNwbVVwZERhdGFBZGRyZXNzKTsNCj4gKyAgICBG c3BtVXBkRGF0YVB0ciA9IChGU1BNX1VQRF9DT01NT04gKikgR2V0RnNwbVVwZERhdGFBZGRyZXNz ICgpOw0KPiAgICAgIEFTU0VSVCAoRnNwbVVwZERhdGFQdHIgIT0gTlVMTCk7DQo+ICAgIH0NCj4g DQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9Gc3Bt V3JhcHBlclBlaW0uaW5mDQo+IGIvSW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BtV3JhcHBlclBlaW0v RnNwbVdyYXBwZXJQZWltLmluZg0KPiBpbmRleCAwMDE2NmU1NmEwLi41YjRhZDUzMWU3IDEwMDY0 NA0KPiAtLS0gYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcG1XcmFwcGVyUGVpbS9Gc3BtV3JhcHBl clBlaW0uaW5mDQo+ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL0Zz cG1XcmFwcGVyUGVpbS5pbmYNCj4gQEAgLTYsNyArNiw3IEBADQo+ICAjIHJlZ2lzdGVyIFRlbXBv cmFyeVJhbURvbmVQcGkgdG8gY2FsbCBUZW1wUmFtRXhpdCBBUEksIGFuZCByZWdpc3RlciANCj4g TWVtb3J5RGlzY292ZXJlZFBwaSAgIyBub3RpZnkgdG8gY2FsbCBGc3BTaWxpY29uSW5pdCBBUEku DQo+ICAjDQo+IC0jICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0KPiArIyAgQ29weXJpZ2h0IChjKSAyMDE0 IC0gMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgDQo+ICtyZXNlcnZlZC48QlI+ DQo+ICAjDQo+ICAjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVu dCAgIyBAQCAtNDUsNiArNDUsNyBAQA0KPiAgICBGc3BXcmFwcGVyQXBpTGliDQo+ICAgIEZzcFdy YXBwZXJBcGlUZXN0TGliDQo+ICAgIEZzcE1lYXN1cmVtZW50TGliDQo+ICsgIFBjZExpYg0KPiAN Cj4gIFtQYWNrYWdlc10NCj4gICAgTWRlUGtnL01kZVBrZy5kZWMNCj4gQEAgLTU2LDE0ICs1Nywy NSBAQA0KPiANCj4gIFtQY2RdDQo+ICAgIGdJbnRlbEZzcDJXcmFwcGVyVG9rZW5TcGFjZUd1aWQu UGNkRnNwbUJhc2VBZGRyZXNzICAgICAgICMjIENPTlNVTUVTDQo+IC0gIGdJbnRlbEZzcDJXcmFw cGVyVG9rZW5TcGFjZUd1aWQuUGNkRnNwbVVwZERhdGFBZGRyZXNzICAgICMjDQo+IENPTlNVTUVT DQo+ICAgIGdJbnRlbEZzcDJXcmFwcGVyVG9rZW5TcGFjZUd1aWQuUGNkRnNwTW9kZVNlbGVjdGlv biAgICAgICMjIENPTlNVTUVTDQo+ICAgIGdJbnRlbEZzcDJXcmFwcGVyVG9rZW5TcGFjZUd1aWQu UGNkRnNwdEJhc2VBZGRyZXNzICAgICAgICMjIENPTlNVTUVTDQo+ICAgIGdJbnRlbEZzcDJXcmFw cGVyVG9rZW5TcGFjZUd1aWQuUGNkRnNwTWVhc3VyZW1lbnRDb25maWcgICMjIA0KPiBDT05TVU1F Uw0KPiANCj4gK1tQY2QuSUEzMl0NCj4gKyAgZ0ludGVsRnNwMldyYXBwZXJUb2tlblNwYWNlR3Vp ZC5QY2RGc3BtVXBkRGF0YUFkZHJlc3MgICAgIyMNCj4gQ09OU1VNRVMNCj4gKw0KPiArW1BjZC5Y NjRdDQo+ICsgIGdJbnRlbEZzcDJXcmFwcGVyVG9rZW5TcGFjZUd1aWQuUGNkRnNwbVVwZERhdGFB ZGRyZXNzNjQgICMjDQo+IENPTlNVTUVTDQo+ICsNCj4gIFtTb3VyY2VzXQ0KPiAgICBGc3BtV3Jh cHBlclBlaW0uYw0KPiANCj4gK1tTb3VyY2VzLklBMzJdDQo+ICsgIElBMzIvRnNwbUhlbHBlci5j DQo+ICsNCj4gK1tTb3VyY2VzLlg2NF0NCj4gKyAgWDY0L0ZzcG1IZWxwZXIuYw0KPiArDQo+ICBb R3VpZHNdDQo+ICAgIGdGc3BIb2JHdWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgUFJP RFVDRVMgIyMgSE9CDQo+ICAgIGdGc3BBcGlQZXJmb3JtYW5jZUd1aWQgICAgICAgICAgICAgICAg IyMgU09NRVRJTUVTX0NPTlNVTUVTICMjIEdVSUQNCj4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMldy YXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL0lBMzIvRnNwbUhlbHBlci5jDQo+IGIvSW50ZWxGc3Ay V3JhcHBlclBrZy9Gc3BtV3JhcHBlclBlaW0vSUEzMi9Gc3BtSGVscGVyLmMNCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uY2FiMTExNzNjYw0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL0lBMzIvRnNw bUhlbHBlci5jDQo+IEBAIC0wLDAgKzEsMjYgQEANCj4gKy8qKiBAZmlsZQ0KPiArICBTYW1wbGUg dG8gcHJvdmlkZSBGU1Agd3JhcHBlciByZWxhdGVkIGZ1bmN0aW9uLg0KPiArDQo+ICsgIENvcHly aWdodCAoYykgMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAr DQo+ICsqKi8NCj4gKw0KPiArDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gKyNp bmNsdWRlIDxMaWJyYXJ5L0ZzcFdyYXBwZXJQbGF0Zm9ybUxpYi5oPiAjaW5jbHVkZSANCj4gKzxV ZWZpL1VlZmlCYXNlVHlwZS5oPg0KPiArDQo+ICsvKioNCj4gKyAgR2V0IHRoZSBGc3BtIFVwZCBE YXRhIEFkZHJlc3MgZnJvbSB0aGUgUENEDQo+ICsNCj4gKyAgQHJldHVybiBGU1BNIFVQRCBEYXRh IEFkZHJlc3MNCj4gKyoqLw0KPiArVUlOVE4NCj4gK0VGSUFQSQ0KPiArR2V0RnNwbVVwZERhdGFB ZGRyZXNzICgNCj4gKyAgVk9JRA0KPiArICApDQo+ICt7DQo+ICsgIHJldHVybiBQY2RHZXQzMiAo UGNkRnNwbVVwZERhdGFBZGRyZXNzKTsgfQ0KPiBkaWZmIC0tZ2l0IGEvSW50ZWxGc3AyV3JhcHBl clBrZy9Gc3BtV3JhcHBlclBlaW0vWDY0L0ZzcG1IZWxwZXIuYw0KPiBiL0ludGVsRnNwMldyYXBw ZXJQa2cvRnNwbVdyYXBwZXJQZWltL1g2NC9Gc3BtSGVscGVyLmMNCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uMjViODlmZjJlMQ0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwbVdyYXBwZXJQZWltL1g2NC9Gc3BtSGVscGVy LmMNCj4gQEAgLTAsMCArMSwyNiBAQA0KPiArLyoqIEBmaWxlDQo+ICsgIFNhbXBsZSB0byBwcm92 aWRlIEZTUCB3cmFwcGVyIHJlbGF0ZWQgZnVuY3Rpb24uDQo+ICsNCj4gKyAgQ29weXJpZ2h0IChj KSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICsg IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsNCj4gKyoq Lw0KPiArDQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5oPg0KPiArI2luY2x1ZGUg PExpYnJhcnkvRnNwV3JhcHBlclBsYXRmb3JtTGliLmg+ICNpbmNsdWRlIA0KPiArPFVlZmkvVWVm aUJhc2VUeXBlLmg+DQo+ICsNCj4gKy8qKg0KPiArICBHZXQgdGhlIEZzcG0gVXBkIERhdGEgQWRk cmVzcyBmcm9tIHRoZSBQQ0QNCj4gKw0KPiArICBAcmV0dXJuIEZTUE0gVVBEIERhdGEgQWRkcmVz cw0KPiArKiovDQo+ICtVSU5UTg0KPiArRUZJQVBJDQo+ICtHZXRGc3BtVXBkRGF0YUFkZHJlc3Mg KA0KPiArICBWT0lEDQo+ICsgICkNCj4gK3sNCj4gKyAgcmV0dXJuIFBjZEdldDY0IChQY2RGc3Bt VXBkRGF0YUFkZHJlc3M2NCk7IH0NCj4gZGlmZiAtLWdpdCBhL0ludGVsRnNwMldyYXBwZXJQa2cv RnNwc1dyYXBwZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5jDQo+IGIvSW50ZWxGc3AyV3JhcHBlclBr Zy9Gc3BzV3JhcHBlclBlaW0vRnNwc1dyYXBwZXJQZWltLmMNCj4gaW5kZXggOWQ0ZjI3OWU4MS4u OGJkNTEwNTAyZiAxMDA2NDQNCj4gLS0tIGEvSW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BzV3JhcHBl clBlaW0vRnNwc1dyYXBwZXJQZWltLmMNCj4gKysrIGIvSW50ZWxGc3AyV3JhcHBlclBrZy9Gc3Bz V3JhcHBlclBlaW0vRnNwc1dyYXBwZXJQZWltLmMNCj4gQEAgLTMsNyArMyw3IEBADQo+ICAgIHJl Z2lzdGVyIFRlbXBvcmFyeVJhbURvbmVQcGkgdG8gY2FsbCBUZW1wUmFtRXhpdCBBUEksIGFuZCBy ZWdpc3RlciANCj4gTWVtb3J5RGlzY292ZXJlZFBwaQ0KPiAgICBub3RpZnkgdG8gY2FsbCBGc3BT aWxpY29uSW5pdCBBUEkuDQo+IA0KPiAtICBDb3B5cmlnaHQgKGMpIDIwMTQgLSAyMDIwLCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0KPiArICBDb3B5cmln aHQgKGMpIDIwMTQgLSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gKyBy ZXNlcnZlZC48QlI+DQo+ICAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+IA0KPiAgKiovDQo+IEBAIC01OCw2ICs1OCwxNyBAQCBTM0VuZE9mUGVpTm90aWZ5 KA0KPiAgICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICpQcGkNCj4gICAgKTsNCj4gDQo+ ICsvKioNCj4gKyAgR2V0IHRoZSBGc3BzIFVwZCBEYXRhIEFkZHJlc3MgZnJvbSB0aGUgUENEDQo+ ICsNCj4gKyAgQHJldHVybiBGU1BTIFVQRCBEYXRhIEFkZHJlc3MNCj4gKyoqLw0KPiArVUlOVE4N Cj4gK0VGSUFQSQ0KPiArR2V0RnNwc1VwZERhdGFBZGRyZXNzICgNCj4gKyAgVk9JRA0KPiArICAp Ow0KPiArDQo+ICBFRklfUEVJX05PVElGWV9ERVNDUklQVE9SIG1TM0VuZE9mUGVpTm90aWZ5RGVz YyA9IHsNCj4gICAgKEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfTk9USUZZX0NBTExCQUNLIHwgDQo+ IEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfVEVSTUlOQVRFX0xJU1QpLA0KPiAgICAmZ0VmaUVuZE9m UGVpU2lnbmFsUHBpR3VpZCwNCj4gQEAgLTI4Myw3ICsyOTQsNyBAQCBQZWlNZW1vcnlEaXNjb3Zl cmVkTm90aWZ5ICgNCj4gICAgICByZXR1cm4gRUZJX0RFVklDRV9FUlJPUjsNCj4gICAgfQ0KPiAN Cj4gLSAgaWYgKFBjZEdldDMyIChQY2RGc3BzVXBkRGF0YUFkZHJlc3MpID09IDAgJiYgKEZzcHNI ZWFkZXJQdHItDQo+ID5DZmdSZWdpb25TaXplICE9IDApICYmIChGc3BzSGVhZGVyUHRyLT5DZmdS ZWdpb25PZmZzZXQgIT0gMCkpIHsNCj4gKyAgaWYgKEdldEZzcHNVcGREYXRhQWRkcmVzcyAoKSA9 PSAwICYmIChGc3BzSGVhZGVyUHRyLT5DZmdSZWdpb25TaXplIA0KPiArICE9DQo+ICsgMCkgJiYg KEZzcHNIZWFkZXJQdHItPkNmZ1JlZ2lvbk9mZnNldCAhPSAwKSkgew0KPiAgICAgIC8vDQo+ICAg ICAgLy8gQ29weSBkZWZhdWx0IEZTUC1TIFVQRCBkYXRhIGZyb20gRmxhc2gNCj4gICAgICAvLw0K PiBAQCAtMjkyLDcgKzMwMyw3IEBAIFBlaU1lbW9yeURpc2NvdmVyZWROb3RpZnkgKA0KPiAgICAg IFNvdXJjZURhdGEgPSAoVUlOVE4gKikoKFVJTlROKUZzcHNIZWFkZXJQdHItPkltYWdlQmFzZSAr IA0KPiAoVUlOVE4pRnNwc0hlYWRlclB0ci0+Q2ZnUmVnaW9uT2Zmc2V0KTsNCj4gICAgICBDb3B5 TWVtIChGc3BzVXBkRGF0YVB0ciwgU291cmNlRGF0YSwgKFVJTlROKUZzcHNIZWFkZXJQdHItDQo+ ID5DZmdSZWdpb25TaXplKTsNCj4gICAgfSBlbHNlIHsNCj4gLSAgICBGc3BzVXBkRGF0YVB0ciA9 IChGU1BTX1VQRF9DT01NT04gKilQY2RHZXQzMg0KPiAoUGNkRnNwc1VwZERhdGFBZGRyZXNzKTsN Cj4gKyAgICBGc3BzVXBkRGF0YVB0ciA9IChGU1BTX1VQRF9DT01NT04gKikgR2V0RnNwc1VwZERh dGFBZGRyZXNzICgpOw0KPiAgICAgIEFTU0VSVCAoRnNwc1VwZERhdGFQdHIgIT0gTlVMTCk7DQo+ ICAgIH0NCj4gDQo+IGRpZmYgLS1naXQgYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcHNXcmFwcGVy UGVpbS9Gc3BzV3JhcHBlclBlaW0uaW5mDQo+IGIvSW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BzV3Jh cHBlclBlaW0vRnNwc1dyYXBwZXJQZWltLmluZg0KPiBpbmRleCBhZWVjYTU4ZDZkLi5lOTg4ZWJh YjIxIDEwMDY0NA0KPiAtLS0gYS9JbnRlbEZzcDJXcmFwcGVyUGtnL0ZzcHNXcmFwcGVyUGVpbS9G c3BzV3JhcHBlclBlaW0uaW5mDQo+ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBw ZXJQZWltL0ZzcHNXcmFwcGVyUGVpbS5pbmYNCj4gQEAgLTQ1LDYgKzQ1LDcgQEANCj4gICAgRnNw V3JhcHBlckFwaUxpYg0KPiAgICBGc3BXcmFwcGVyQXBpVGVzdExpYg0KPiAgICBGc3BNZWFzdXJl bWVudExpYg0KPiArICBQY2RMaWINCj4gDQo+ICBbUGFja2FnZXNdDQo+ICAgIE1kZVBrZy9NZGVQ a2cuZGVjDQo+IEBAIC02NSwxMCArNjYsMTUgQEANCj4gDQo+ICBbUGNkXQ0KPiAgICBnSW50ZWxG c3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcHNCYXNlQWRkcmVzcyAgICAgICAjIyBDT05T VU1FUw0KPiAtICBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcHNVcGREYXRh QWRkcmVzcyAgICAjIyBDT05TVU1FUw0KPiAgICBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VH dWlkLlBjZEZzcE1vZGVTZWxlY3Rpb24gICAgICAjIyBDT05TVU1FUw0KPiAgICBnSW50ZWxGc3Ay V3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcE1lYXN1cmVtZW50Q29uZmlnICAjIyANCj4gQ09O U1VNRVMNCj4gDQo+ICtbUGNkLklBMzJdDQo+ICsgIGdJbnRlbEZzcDJXcmFwcGVyVG9rZW5TcGFj ZUd1aWQuUGNkRnNwc1VwZERhdGFBZGRyZXNzICAgICMjIENPTlNVTUVTDQo+ICsNCj4gK1tQY2Qu WDY0XQ0KPiArICBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBjZEZzcHNVcGREYXRh QWRkcmVzczY0ICAjIw0KPiBDT05TVU1FUw0KPiArDQo+ICBbR3VpZHNdDQo+ICAgIGdGc3BIb2JH dWlkICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgQ09OU1VNRVMgIyMgSE9CDQo+ICAgIGdG c3BBcGlQZXJmb3JtYW5jZUd1aWQgICAgICAgICAgICAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVT ICMjIEdVSUQNCj4gQEAgLTc2LDUgKzgyLDExIEBADQo+ICBbU291cmNlc10NCj4gICAgRnNwc1dy YXBwZXJQZWltLmMNCj4gDQo+ICtbU291cmNlcy5JQTMyXQ0KPiArICBJQTMyL0ZzcHNIZWxwZXIu Yw0KPiArDQo+ICtbU291cmNlcy5YNjRdDQo+ICsgIFg2NC9Gc3BzSGVscGVyLmMNCj4gKw0KPiAg W0RlcGV4XQ0KPiAgICBnRWZpUGVpTWVtb3J5RGlzY292ZXJlZFBwaUd1aWQNCj4gZGlmZiAtLWdp dCBhL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWltL0lBMzIvRnNwc0hlbHBlci5j DQo+IGIvSW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BzV3JhcHBlclBlaW0vSUEzMi9Gc3BzSGVscGVy LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uYzRhZTI5MmZm Yg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBw ZXJQZWltL0lBMzIvRnNwc0hlbHBlci5jDQo+IEBAIC0wLDAgKzEsMjYgQEANCj4gKy8qKiBAZmls ZQ0KPiArICBTYW1wbGUgdG8gcHJvdmlkZSBGU1Agd3JhcHBlciByZWxhdGVkIGZ1bmN0aW9uLg0K PiArDQo+ICsgIENvcHlyaWdodCAoYykgMjAyMSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9Q Y2RMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0ZzcFdyYXBwZXJQbGF0Zm9ybUxpYi5oPiAj aW5jbHVkZSANCj4gKzxVZWZpL1VlZmlCYXNlVHlwZS5oPg0KPiArDQo+ICsvKioNCj4gKyAgR2V0 IHRoZSBGc3BzIFVwZCBEYXRhIEFkZHJlc3MgZnJvbSB0aGUgUENEDQo+ICsNCj4gKyAgQHJldHVy biBGU1BTIFVQRCBEYXRhIEFkZHJlc3MNCj4gKyoqLw0KPiArVUlOVE4NCj4gK0VGSUFQSQ0KPiAr R2V0RnNwc1VwZERhdGFBZGRyZXNzICgNCj4gKyAgVk9JRA0KPiArICApDQo+ICt7DQo+ICsgIHJl dHVybiBQY2RHZXQzMiAoUGNkRnNwc1VwZERhdGFBZGRyZXNzKTsgfQ0KPiBkaWZmIC0tZ2l0IGEv SW50ZWxGc3AyV3JhcHBlclBrZy9Gc3BzV3JhcHBlclBlaW0vWDY0L0ZzcHNIZWxwZXIuYw0KPiBi L0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWltL1g2NC9Gc3BzSGVscGVyLmMNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uYTBkNmFkYjI4MQ0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL0ludGVsRnNwMldyYXBwZXJQa2cvRnNwc1dyYXBwZXJQZWlt L1g2NC9Gc3BzSGVscGVyLmMNCj4gQEAgLTAsMCArMSwyNiBAQA0KPiArLyoqIEBmaWxlDQo+ICsg IFNhbXBsZSB0byBwcm92aWRlIEZTUCB3cmFwcGVyIHJlbGF0ZWQgZnVuY3Rpb24uDQo+ICsNCj4g KyAgQ29weXJpZ2h0IChjKSAyMDIxLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ICsNCj4gKyoqLw0KPiArDQo+ICsNCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L1BjZExpYi5o Pg0KPiArI2luY2x1ZGUgPExpYnJhcnkvRnNwV3JhcHBlclBsYXRmb3JtTGliLmg+ICNpbmNsdWRl IA0KPiArPFVlZmkvVWVmaUJhc2VUeXBlLmg+DQo+ICsNCj4gKy8qKg0KPiArICBHZXQgdGhlIEZz cHMgVXBkIERhdGEgQWRkcmVzcyBmcm9tIHRoZSBQQ0QNCj4gKw0KPiArICBAcmV0dXJuIEZTUFMg VVBEIERhdGEgQWRkcmVzcw0KPiArKiovDQo+ICtVSU5UTg0KPiArRUZJQVBJDQo+ICtHZXRGc3Bz VXBkRGF0YUFkZHJlc3MgKA0KPiArICBWT0lEDQo+ICsgICkNCj4gK3sNCj4gKyAgcmV0dXJuIFBj ZEdldDY0IChQY2RGc3BzVXBkRGF0YUFkZHJlc3M2NCk7IH0NCj4gZGlmZiAtLWdpdCBhL0ludGVs RnNwMldyYXBwZXJQa2cvSW50ZWxGc3AyV3JhcHBlclBrZy5kZWMNCj4gYi9JbnRlbEZzcDJXcmFw cGVyUGtnL0ludGVsRnNwMldyYXBwZXJQa2cuZGVjDQo+IGluZGV4IGEzYjkzNjM3NzkuLjhjOThk YmQ1NWQgMTAwNjQ0DQo+IC0tLSBhL0ludGVsRnNwMldyYXBwZXJQa2cvSW50ZWxGc3AyV3JhcHBl clBrZy5kZWMNCj4gKysrIGIvSW50ZWxGc3AyV3JhcHBlclBrZy9JbnRlbEZzcDJXcmFwcGVyUGtn LmRlYw0KPiBAQCAtMTIxLDMgKzEyMSw1IEBADQo+ICAgICMNCj4gDQo+IGdJbnRlbEZzcDJXcmFw cGVyVG9rZW5TcGFjZUd1aWQuUGNkRnNwbVVwZERhdGFBZGRyZXNzfDB4MDAwMDAwMDB8VUlODQo+ IFQzMnwweDUwMDAwMDAwDQo+IA0KPiBnSW50ZWxGc3AyV3JhcHBlclRva2VuU3BhY2VHdWlkLlBj ZEZzcHNVcGREYXRhQWRkcmVzc3wweDAwMDAwMDAwfFVJTlQNCj4gMzJ8MHg1MDAwMDAwMQ0KPiAr DQo+ICsNCj4gZ0ludGVsRnNwMldyYXBwZXJUb2tlblNwYWNlR3VpZC5QY2RGc3BtVXBkRGF0YUFk ZHJlc3M2NHwweDAwMDAwMDAwfFUNCj4gSU4NCj4gKyBUNjR8MHg1MDAwMDAwMg0KPiArDQo+ICsN Cj4gZ0ludGVsRnNwMldyYXBwZXJUb2tlblNwYWNlR3VpZC5QY2RGc3BzVXBkRGF0YUFkZHJlc3M2 NHwweDAwMDAwMDAwfFVJDQo+IE4NCj4gKyBUNjR8MHg1MDAwMDAwMw0KPiAtLQ0KPiAyLjMwLjIu d2luZG93cy4xDQoNCg==