From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web08.5825.1608601586305915115 for ; Mon, 21 Dec 2020 17:46:26 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=bqbTvAfS; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: aaron.li@intel.com) IronPort-SDR: Sj7tBJMZow0oQCRe6wP/0KNoYwOc+wfZeTQiqN5jF17XzlcD//+W4TANWaYQGf9q4Ov3SSW6R0 jkBKWLYa8Fvg== X-IronPort-AV: E=McAfee;i="6000,8403,9842"; a="194240839" X-IronPort-AV: E=Sophos;i="5.78,438,1599548400"; d="scan'208";a="194240839" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Dec 2020 17:46:21 -0800 IronPort-SDR: /+3ZNGdUc3AbNll6miV58r8eT8L/QdqMM+CZlfmL8LooXoTx2Eu/VACVXJmOfIQDgTduKwxGrB 0gplt0Wl7mxA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,438,1599548400"; d="scan'208";a="341197059" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga003.jf.intel.com with ESMTP; 21 Dec 2020 17:46:20 -0800 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 21 Dec 2020 17:46:20 -0800 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 21 Dec 2020 17:46:19 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 21 Dec 2020 17:46:19 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.105) 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.1713.5; Mon, 21 Dec 2020 17:46:16 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NViZNhorMPstIIEvVJ71+RPp9AX9wuaTef2tUg/WQpDHre4pMVcdMDFuQMZ8ZDd1ys7mKtZ6WFZcx+7rBkft+Tw5n1PsIDjp3gTV05oy65akaQ+6qf74UQ2a3LiiiNUmIFwWYhNQZFIYPeYyfdBhZRQsnNq6C9DYHQxdX/6IxNnkegtONdJI9/pP2LMvvRqE5+KPEiV3UpOhO6x2xo9yaUoLnpJweYh+Vv4I+P/0jgdkIi4fEL6sDAQkOE9uUSNAxBsphxsB4mR+N5+YBrAb0/vxCnMQt48d4xjHyOKmdc4FsrwI13sdJCdJScOioorrXYg56n0MeXuio06t/X5otw== 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-SenderADCheck; bh=fPPRxqa9jn9PZeCRwtFkK0XSWqS2tUssFltLbpPrBh8=; b=AQhpJtL4pQ6ZZ6y4vkPqxklhD70WbnWyCiukHZXZ9+z5Kh7x+HYrOvANQSpw+5YYmPR5GR98TVXl+GMXJT/MGOJbnakG6I8HeCqXyZcX3qW8Piv3FHvcx1U9RzoxLp7WazrBG1bzpUvQaNWmT2qxvgwepg1IJyBh4A8nsZsJ+NjyJbRISKlGFrpboH/WjqPknzt8mzeCzZ5t/axOjeWxalrWcaNmJvmrI9htVqLdTsZ4tVKCtLldC07SJnxHKN4NqDlPi5NjMJErO38kfjQfPYZ0mgf4lTWWbI0f9OVdHh8W7mZTRsQJDczQOnNSVp6aq6nLhE89nUP60YZumN3w4w== 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=fPPRxqa9jn9PZeCRwtFkK0XSWqS2tUssFltLbpPrBh8=; b=bqbTvAfSmBNyHzLRN6Ruf9B6Yu/y/wb8fjR+GGX6zVTz4KaIt13q8h1PsW3YOlUt6DHiYoc2QTxEyHTwyChWxvDUGTCSyRMtm5BPA3h1uBBd9h2uEr4bSnhfXXBSOUeNog3F+GUzpHh+9ue3y+efWGDINzQRuJAKjR0Qj7IFSUc= Received: from SJ0PR11MB4895.namprd11.prod.outlook.com (2603:10b6:a03:2de::23) by BYAPR11MB2872.namprd11.prod.outlook.com (2603:10b6:a02:c9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3676.25; Tue, 22 Dec 2020 01:46:15 +0000 Received: from SJ0PR11MB4895.namprd11.prod.outlook.com ([fe80::9d2c:de8a:5a90:cc47]) by SJ0PR11MB4895.namprd11.prod.outlook.com ([fe80::9d2c:de8a:5a90:cc47%2]) with mapi id 15.20.3676.033; Tue, 22 Dec 2020 01:46:15 +0000 From: "Aaron Li" To: "devel@edk2.groups.io" , "gaoliming@byosoft.com.cn" CC: "Feng, Bob C" Subject: Re: [edk2-devel] [PATCH v2 1/1] Silicon/FitGen: Enhance Slot mode support force mode for multiple FV. Thread-Topic: [edk2-devel] [PATCH v2 1/1] Silicon/FitGen: Enhance Slot mode support force mode for multiple FV. Thread-Index: AQHQMeOugSfCG7Gk7sT8rbsP88GJUKoPoPFggAACIkA= Date: Tue, 22 Dec 2020 01:46:15 +0000 Message-ID: References: <20201221062546.10545-1-aaron.li@intel.com> <004001d6d802$f247e320$d6d7a960$@byosoft.com.cn> In-Reply-To: <004001d6d802$f247e320$d6d7a960$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.212] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 90ae5cf2-dd42-40a2-b60c-08d8a61b5eb9 x-ms-traffictypediagnostic: BYAPR11MB2872: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MfUDR+0FQwnR0k1GJZ9uW7eDdBqcfgnzb8F6GKPXSIztArkqJeQQQK+3zWB3vGP9p//sUios6cMLtA318Sls9w7+r18pbGI/9osIVzfgorz0PD5bY8xOUJ3b9Qi1yTcX9n9rondWrECcDUWit/TYJTzVYchaazcC5ml1taGZHZ3mPJbkoRbhZMN71CdOkk+Jn3F04PgnJidoXVpQ/gx5S918eTxY4EQwyKx6lR6f4ao5nkdTG2YthapaIFBVC1zDWpj5A5eZv50buWkKAMlx00TWl0h80FqTDp6+mcZdSVRPqvUuzcIlcObIN72TItF6yjt4rzp/DEyRSxtm7C301GAjP9CM3X8bR1Jvt0TLCGejFbKD8kJRXofIs9a9jmMSO4TazO2OobmItRUoURd1DBCWoJb/XkMr3thUJoOaZS+jr3Fb79DbVXSFkVK8Jwjdyp34tVyST20bJuuYpROKtg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB4895.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(366004)(39860400002)(396003)(136003)(376002)(26005)(478600001)(107886003)(86362001)(66946007)(186003)(6506007)(53546011)(52536014)(71200400001)(66446008)(110136005)(83380400001)(8936002)(66476007)(2906002)(33656002)(66556008)(5660300002)(9686003)(7696005)(64756008)(8676002)(76116006)(55016002)(316002)(966005)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?Z2VnUzVDNG5RSERSRzBuMlREWGovekw4aXdybWJreG9CazRaVXBLTWRUcEpv?= =?utf-8?B?RlZEQU5Bb285cFREeHZ2K3VJVTFsTnBQTjMxQVFNOVN0WFk5blg0NUNPTEVR?= =?utf-8?B?QkkrL1U1NjZCNlE1MFZCYStxbnZEUm4xdjVMWlNoZm5EQmV0MDd3UjRZVXBZ?= =?utf-8?B?ZndXeTdCL3AybERCQi9uNGYzOHc1SldvVWpaUEgvU0Uwem16NVhzMi81RWlO?= =?utf-8?B?bS9XeXU5YzdqRVFWcCtveE4vemlONnFnU1Z1Y0hBUGR4KzNjcVJ3b3RPNlNi?= =?utf-8?B?RUtKbzJBZ1U5dFhpMVpRUWdtV0lPVGdtMEg4a0lIMWZlZ04vVHYwMFNtVGtn?= =?utf-8?B?bDhDSGwrRUdPbWYzZ05ONm9UbjJRYlYyZXFDd21zWkNPQXdkRnZBVGQxRzNY?= =?utf-8?B?MWNndmo4VmRMNStmbU5ENHVsZXd3a2Jtc082ZXpzOEFrblpEMkxENml5Y2Jz?= =?utf-8?B?QnNIY1hNS21qcjNqZ1VNaUJCZHVSdlBrMWpyTzR5dVl6VnZRaWJnRkV4amdm?= =?utf-8?B?T1R1TWNRczJaeWJ5TWJKSWs4bjZaWnVhZ00wSG1ZVVlJMDRJc3pEcjhyd3lK?= =?utf-8?B?UWdSOUs2azAwNHQrbEticHgxMWNvQnRvWlBWS3dwY1R6d3Y0WU5IR0lZS2xG?= =?utf-8?B?dmhWbG9iWVlqK2c0NSs1L1pqMVpXRjFKR0pmZ1MxS2U2dWhLUjhkMHlGWmV2?= =?utf-8?B?RHhEbm1xNkpvNVR0OUhmNTB5VmhjcUg1QVBmRVk0SkdyNWM4aVVqUWNwa09G?= =?utf-8?B?N2xaZGMwaU1kM0IzeTNVWDBhc0Y2cmkwZm1DVUZPeUpIRkhuMEVDdEpsVzdl?= =?utf-8?B?MUZEU2I3VVJ1SzhTbVhHZDlsakxXTWRTUWRxWVZQajFmeHQ2NTJ3citjQ3h4?= =?utf-8?B?M3FaVUtIYWtDTUFGQWwrR2hKN2RTaEh1R1J5Q0JFZEVCOHdrSnZ4OTJTQW9C?= =?utf-8?B?b3hCcW5oSzJQa0xIUnlsdzNXeW41VStjaUc5MUxEd2lvVEE1YU9JMTNQK1g3?= =?utf-8?B?em5CaXFCeWVhOGREYnBIdzVhbGpacCtOQ0dxN2JUTnp5ZThwdThhQkNyNkVJ?= =?utf-8?B?T0ZlYWhsbnF4ZzZaak01VnJVMG1sT0NoWGFUblZnQlEyd3VySnQ1TEs0VEJp?= =?utf-8?B?SDFuN0pidUEyRVlXZlBoUXB6OXhKWkJNNTB5MEovZjNEaE0yWHkvYko4REFk?= =?utf-8?B?SEtuMk5XRlltUUJTQllEMGx3TWluR1ZZbDBwamtxTmkzUERvZ25PSFdPYnlV?= =?utf-8?B?a2t4RzlIVm40ZGFDcUY4a0t2dnZGYk9XRWJvcXVQMVhmVVRtZGNGYmsrbzhw?= =?utf-8?Q?R4omUXIxfikkU=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB4895.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 90ae5cf2-dd42-40a2-b60c-08d8a61b5eb9 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Dec 2020 01:46:15.4968 (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: vvRPwkjU+/kOg8jPel/EVM2yFfb6myOS1uXVTiAm05kqNbKmXVZDYQ9AclrW4rkedfxh2oUv2AY5O+VOLvbIgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2872 Return-Path: aaron.li@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGltaW5nLA0KDQpJIGhhZCByZXBsaWVkIHVuZGVyIHlvdXIgY29tbWVudHMuDQpJJ2xsIHNl bmQgdGhlIHYzIHZlcnNpb24gb2YgdGhpcyBwYXRjaC4NCg0KQmVzdCwNCkFhcm9uDQoNCi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxA ZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBnYW9saW1pbmcNClNlbnQ6IFR1ZXNkYXksIERl Y2VtYmVyIDIyLCAyMDIwIDk6MzcgQU0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTGksIEFh cm9uIDxhYXJvbi5saUBpbnRlbC5jb20+DQpDYzogRmVuZywgQm9iIEMgPGJvYi5jLmZlbmdAaW50 ZWwuY29tPg0KU3ViamVjdDog5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEvMV0gU2ls aWNvbi9GaXRHZW46IEVuaGFuY2UgU2xvdCBtb2RlIHN1cHBvcnQgZm9yY2UgbW9kZSBmb3IgbXVs dGlwbGUgRlYuDQoNCkFhcm9uOg0KICBJIGFkZCBteSBjb21tZW50LiANCg0KVGhhbmtzDQpMaW1p bmcNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IGJvdW5jZSsyNzk1Mis2 OTMwMSs0OTA1OTUzKzg3NjEwNDVAZ3JvdXBzLmlvDQo+IDxib3VuY2UrMjc5NTIrNjkzMDErNDkw NTk1Mys4NzYxMDQ1QGdyb3Vwcy5pbz4g5Luj6KGoIEFhcm9uIExpDQo+IOWPkemAgeaXtumXtDog MjAyMOW5tDEy5pyIMjHml6UgMTQ6MjYNCj4g5pS25Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiDmioTpgIE6IEJvYiBGZW5nIDxib2IuYy5mZW5nQGludGVsLmNvbT47IExpbWluZyBHYW8N Cj4gPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4NCj4g5Li76aKYOiBbZWRrMi1kZXZlbF0gW1BB VENIIHYyIDEvMV0gU2lsaWNvbi9GaXRHZW46IEVuaGFuY2UgU2xvdCBtb2RlDQpzdXBwb3J0DQo+ IGZvcmNlIG1vZGUgZm9yIG11bHRpcGxlIEZWLg0KPiANCj4gQlo6IGh0dHBzOi8vYnVnemlsbGEu dGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEyMg0KPiANCj4gQWRkaW5nICItTEYiLyIt bGYiIG9wdGlvbiB0byBzdXBwb3J0IHNsb3QgbW9kZSB3aXRob3V0IEZGUyBHVUlEIGNoZWNrLg0K PiBJdCB3aWxsIHN1cHBvcnQgdGhlIHNjZW5hcmlvIHRoYXQgbXVsdGlwbGUgTWljcm9jb2RlIEZW IHdpdGggZGlmZmVyZW50IEZGUw0KPiBHVUlEIGVuYWJsZSBzbG90IG1vZGUuDQo+IFRoZSBzaXpl IG9mIHNsb3Qgc2hvdWxkIGJlIDE2IGJ5dGUtYWxpZ25lZCwgYW5kIGxhcmdlciB0aGFuIGV2ZXJ5 DQo+IG1pY3JvY29kZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEFhcm9uIExpIDxhYXJvbi5saUBp bnRlbC5jb20+DQo+IENjOiBCb2IgRmVuZyA8Ym9iLmMuZmVuZ0BpbnRlbC5jb20+DQo+IENjOiBM aW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+IC0tLQ0KPiAgU2lsaWNvbi9J bnRlbC9Ub29scy9GaXRHZW4vRml0R2VuLmMgfCAzOSArKysrKysrKysrKysrLS0tLS0tLQ0KPiAg U2lsaWNvbi9JbnRlbC9Ub29scy9GaXRHZW4vRml0R2VuLmggfCAgMiArLQ0KPiAgMiBmaWxlcyBj aGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n aXQgYS9TaWxpY29uL0ludGVsL1Rvb2xzL0ZpdEdlbi9GaXRHZW4uYw0KPiBiL1NpbGljb24vSW50 ZWwvVG9vbHMvRml0R2VuL0ZpdEdlbi5jDQo+IGluZGV4IGU5NTQxYzFlOTVjYi4uNmY3ZGRlZGY3 ZTVmIDEwMDY0NA0KPiAtLS0gYS9TaWxpY29uL0ludGVsL1Rvb2xzL0ZpdEdlbi9GaXRHZW4uYw0K PiArKysgYi9TaWxpY29uL0ludGVsL1Rvb2xzL0ZpdEdlbi9GaXRHZW4uYw0KPiBAQCAtMzMzLDkg KzMzMywxMCBAQCBSZXR1cm5zOg0KPiAgICAgICAgICAgICJcdFstRiA8Rml0VGFibGVQb2ludGVy T2Zmc2V0Pl0gWy1GIDxGaXRUYWJsZVBvaW50ZXJPZmZzZXQ+XQ0KWy1WDQo+IDxGaXRIZWFkZXJW ZXJzaW9uPl1cbiINCj4gDQo+ICAgICAgICAgICAgIlx0Wy1OQV1cbiINCj4gDQo+ICAgICAgICAg ICAgIlx0Wy1BIDxNaWNyb2NvZGVBbGlnbm1lbnQ+XVxuIg0KPiANCj4gLSAgICAgICAgICAgIlx0 Wy1SRU1BUCA8VG9wRmxhc2hBZGRyZXNzPlxuIg0KPiANCj4gKyAgICAgICAgICAiXHRbLVJFTUFQ IDxUb3BGbGFzaEFkZHJlc3M+XG4iDQo+IA0KPiAgICAgICAgICAgICJcdFstQ0xFQVJdXG4iDQo+ IA0KPiAgICAgICAgICAgICJcdFstTCA8TWljcm9jb2RlU2xvdFNpemU+IDxNaWNyb2NvZGVGZnNH dWlkPl1cbiINCj4gDQo+ICsgICAgICAgICAgIlx0Wy1MRiA8TWljcm9jb2RlU2xvdFNpemU+XVxu Ig0KPiANCj4gICAgICAgICAgICAiXHRbLUkgPEJpb3NJbmZvR3VpZD5dXG4iDQo+IA0KPiAgICAg ICAgICAgICJcdFstUyA8U3RhcnR1cEFjbUFkZHJlc3MNCj4gU3RhcnR1cEFjbVNpemU+fDxTdGFy dHVwQWNtR3VpZD5dIFstViA8U3RhcnR1cEFjbVZlcnNpb24+XVxuIg0KPiANCj4gICAgICAgICAg ICAiXHRbLVUgPERpYWduc3RBY21BZGRyZXNzPnw8RGlhZ25zdEFjbUd1aWQ+XVxuIg0KPiANCj4g QEAgLTM2Niw2ICszNjcsNyBAQCBSZXR1cm5zOg0KPiAgICBwcmludGYgKCJcdE1pY3JvY29kZUd1 aWQgICAgICAgICAgLSBHdWlkIG9mIE1pY3JvY29kZSBNb2R1bGUuXG4iKTsNCj4gDQo+ICAgIHBy aW50ZiAoIlx0TWljcm9jb2RlU2xvdFNpemUgICAgICAtIE9jY3VwaWVkIHJlZ2lvbiBzaXplIG9m IGVhY2gNCj4gTWljcm9jb2RlIGJpbmFyeS5cbiIpOw0KPiANCj4gICAgcHJpbnRmICgiXHRNaWNy b2NvZGVGZnNHdWlkICAgICAgIC0gR3VpZCBvZiBGRlMgd2hpY2ggaXMgdXNlZCB0byBzYXZlDQo+ IE1pY3JvY29kZSBiaW5hcnkiKTsNCj4gDQo+ICsgIHByaW50ZiAoIlx0LUxGICAgICAgICAgICAg ICAgICAgICAtIE1pY3JvY29kZSBTbG90IG1vZGUgd2l0aG91dCBGRlMNCj4gY2hlY2ssIHRyZWF0 IGFsbCBNaWNyb2NvZGUgRlYgYXMgc2xvdCBtb2RlLiBJbiB0aGlzIGNhc2UgdGhlIE1pY3JvY29k ZSBGVg0KPiBzaG91bGQgb25seSBjb250YWluIG9uZSBGRlMuXG4iKTsNCj4gDQo+ICAgIHByaW50 ZiAoIlx0LU5BICAgICAgICAgICAgICAgICAgICAtIE5vIDB4ODAwIGFsaWduZWQgTWljcm9jb2Rl DQo+IHJlcXVpcmVtZW50LiBObyAtTkEgbWVhbnMgTWljcm9jb2RlIGlzIGFsaWduZWQgd2l0aCBv cHRpb24NCj4gTWljcm9jb2RlQWxpZ25tZW50IHZhbHVlLlxuIik7DQo+IA0KPiAgICBwcmludGYg KCJcdE1pY3JvY29kZUFsaWdubWVudCAgICAgLSBIRVggdmFsdWUgb2YgTWljcm9jb2RlIGFsaWdu bWVudC4NCj4gSWdub3JlZCBpZiBcIi1OQVwiIGlzIHNwZWNpZmllZC4gRGVmYXVsdCB2YWx1ZSBp cyAweDgwMC4gVGhlIE1pY3JvY29kZQ0KdXBkYXRlDQo+IGRhdGEgbXVzdCBzdGFydCBhdCBhIDE2 LWJ5dGUgYWxpZ25lZCBsaW5lYXIgYWRkcmVzcy5cbiIpOw0KPiANCj4gICAgcHJpbnRmICgiXHRS ZWNvcmRUeXBlICAgICAgICAgICAgIC0gRklUIGVudHJ5IHJlY29yZCB0eXBlLiBVc2VyIHNob3Vs ZA0KPiBlbnN1cmUgaXQgaXMgb3JkZXJlZC5cbiIpOw0KPiANCj4gQEAgLTg4MiwxMSArODg0LDEz IEBAIFJldHVybnM6DQo+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICBGaXRFbnRyeU51 bWJlcjsNCj4gDQo+ICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICBCaW9zSW5mb0V4aXN0 Ow0KPiANCj4gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIFNsb3RNb2RlOw0KPiANCj4g KyAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIFNsb3RNb2RlRm9yY2U7DQo+IA0KPiAgICBC SU9TX0lORk9fSEVBREVSICAgICAgICAgICAgKkJpb3NJbmZvOw0KPiANCj4gICAgQklPU19JTkZP X1NUUlVDVCAgICAgICAgICAgICpCaW9zSW5mb1N0cnVjdDsNCj4gDQo+ICAgIFVJTlROICAgICAg ICAgICAgICAgICAgICAgICBCaW9zSW5mb0luZGV4Ow0KPiANCj4gDQo+IA0KPiAtICBTbG90TW9k ZSA9IEZBTFNFOw0KPiANCj4gKyAgU2xvdE1vZGUgICAgICA9IEZBTFNFOw0KPiANCj4gKyAgU2xv dE1vZGVGb3JjZSA9IEZBTFNFOw0KPiANCj4gDQo+IA0KPiAgICAvLw0KPiANCj4gICAgLy8gSW5p dCBpbmRleA0KPiANCj4gQEAgLTEwMzEsNyArMTAzNSw5IEBAIFJldHVybnM6DQo+ICAgIC8vDQo+ IA0KPiAgICBpZiAoKEluZGV4ICsgMSA+PSBhcmdjKSB8fA0KPiANCj4gICAgICAgICgoc3RyY21w IChhcmd2W0luZGV4XSwgIi1MIikgIT0gMCkgJiYNCj4gDQo+IC0gICAgICAgKHN0cmNtcCAoYXJn dltJbmRleF0sICItbCIpICE9IDApKSApIHsNCj4gDQo+ICsgICAgICAgKHN0cmNtcCAoYXJndltJ bmRleF0sICItbCIpICE9IDApICYmDQo+IA0KPiArICAgICAgIChzdHJjbXAgKGFyZ3ZbSW5kZXhd LCAiLUxGIikgIT0gMCkgJiYNCj4gDQo+ICsgICAgICAgKHN0cmNtcCAoYXJndltJbmRleF0sICIt bGYiKSAhPSAwKSkpIHsNCj4gDQo+ICAgICAgLy8NCj4gDQo+ICAgICAgLy8gQnlwYXNzDQo+IA0K PiAgICAgIC8vDQo+IA0KPiBAQCAtMTAzOSwxOCArMTA0NSwyMSBAQCBSZXR1cm5zOg0KPiAgICB9 IGVsc2Ugew0KPiANCj4gICAgICBTbG90U2l6ZSA9IHh0b2kgKGFyZ3ZbSW5kZXggKyAxXSk7DQo+ IA0KPiANCj4gDQo+IC0gICAgaWYgKFNsb3RTaXplID09IDApIHsNCj4gDQo+IC0gICAgICBwcmlu dGYgKCJJbnZhbGlkIHNsb3RzaXplID0gJWRcbiIsIFNsb3RTaXplKTsNCj4gDQo+ICsgICAgaWYg KFNsb3RTaXplICYgMHhGKSB7DQo+IA0KPiArICAgICAgcHJpbnRmICgiSW52YWxpZCBzbG90c2l6 ZSA9IDB4JXgsIE1pY3JvY29kZSBkYXRhIG11c3Qgc3RhcnQgYXQgYQ0KPiAxNi1ieXRlIGFsaWdu ZWQgbGluZWFyIGFkZHJlc3MhXG4iLCBTbG90U2l6ZSk7DQo+IA0KPiAgICAgICAgcmV0dXJuIDA7 DQo+IA0KPiAgICAgIH0NCj4gDQpJZiBTbG90U2l6ZSBpcyB6ZXJvLCBpcyBpdCB2YWxpZCBvciBu b3Q/DQotLSBTbG90IHNpemUgc2hvdWxkIG5vdCBiZSB6ZXJvLCBJJ2xsIGNoYW5nZSB0aGUgY29k ZS4NCg0KPiAtDQo+IA0KPiAtICAgIFNsb3RNb2RlID0gSXNHdWlkRGF0YShhcmd2W0luZGV4ICsg Ml0sICZNaWNyb2NvZGVGZnNHdWlkKTsNCj4gDQo+IC0gICAgaWYgKCFTbG90TW9kZSkgew0KPiAN Cj4gLSAgICAgIHByaW50ZiAoIk5lZWQgYSBmZnMgR1VJRCBmb3Igc2VhcmNoIHVDb2RlIGZmc1xu Iik7DQo+IA0KPiAtICAgICAgcmV0dXJuIDA7DQo+IA0KPiArICAgIGlmIChzdHJjbXAgKGFyZ3Zb SW5kZXhdLCAiLUxGIikgPT0gMCB8fCBzdHJjbXAgKGFyZ3ZbSW5kZXhdLCAiLWxmIikNCj09IDAp IHsNCj4gDQo+ICsgICAgICBTbG90TW9kZUZvcmNlID0gVFJVRTsNCj4gDQo+ICsgICAgICBJbmRl eCArPSAyOw0KPiANCj4gKyAgICB9IGVsc2Ugew0KPiANCj4gKyAgICAgIFNsb3RNb2RlID0gSXNH dWlkRGF0YShhcmd2W0luZGV4ICsgMl0sICZNaWNyb2NvZGVGZnNHdWlkKTsNCj4gDQo+ICsgICAg ICBpZiAoIVNsb3RNb2RlKSB7DQo+IA0KPiArICAgICAgICBwcmludGYgKCJOZWVkIGEgZmZzIEdV SUQgZm9yIHNlYXJjaCB1Q29kZSBmZnNcbiIpOw0KPiANCj4gKyAgICAgICAgcmV0dXJuIDA7DQo+ IA0KPiArICAgICAgfQ0KPiANCj4gKyAgICAgIEluZGV4ICs9IDM7DQo+IA0KPiAgICAgIH0NCj4g DQo+IC0NCj4gDQo+IC0gICAgSW5kZXggKz0gMzsNCj4gDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4g ICAgLy8NCj4gDQo+IEBAIC0xMjE5LDYgKzEyMjgsMTAgQEAgUmV0dXJuczoNCj4gICAgICAgICAg ICAgICAgZ0ZpdFRhYmxlQ29udGV4dC5GaXRFbnRyeU51bWJlcisrOw0KPiANCj4gDQo+IA0KPiAg ICAgICAgICAgICAgICBpZiAoU2xvdFNpemUgIT0gMCkgew0KPiANCj4gKyAgICAgICAgICAgICAg ICBpZiAoU2xvdFNpemUgPCBNaWNyb2NvZGVTaXplKSB7DQo+IA0KPiArICAgICAgICAgICAgICAg ICAgcHJpbnRmICgiUGFyYW1ldGVyIGluY29ycmVjdCwgU2xvdCBzaXplOiAleCBpcyB0b28NCnNt YWxsDQo+IGZvciBNaWNyb2NvZGUgc2l6ZTogJXghXG4iLCBTbG90U2l6ZSwgTWljcm9jb2RlU2l6 ZSk7DQo+IA0KPiArICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+IA0KPiArICAgICAgICAg ICAgICAgIH0NCg0KV2hhdCBwdXJwb3NlIGlzIGZvciB0aGlzIG5ldyBjaGVjaz8NCi0tIFRoZSBz bG90IHNpemUgc2hvdWxkIGJlIGxhcmdlciB0aGFuIG1pY3JvY29kZSBzaXplLCBzaW5jZSB0aGUg bWljcm9jb2RlIGlzIGNvbnRhaW5lZCBieSBzbG90Lg0KDQpUaGFua3MNCkxpbWluZw0KPiANCj4g ICAgICAgICAgICAgICAgICBNaWNyb2NvZGVCdWZmZXIgKz0gU2xvdFNpemU7DQo+IA0KPiAgICAg ICAgICAgICAgICB9IGVsc2Ugew0KPiANCj4gICAgICAgICAgICAgICAgICBNaWNyb2NvZGVCdWZm ZXIgKz0gTWljcm9jb2RlU2l6ZTsNCj4gDQo+IEBAIC0xMjI4LDcgKzEyNDEsNyBAQCBSZXR1cm5z Og0KPiAgICAgICAgICAgICAgLy8vDQo+IA0KPiAgICAgICAgICAgICAgLy8vIENoZWNrIHRoZSBy ZW1haW5pbmcgYnVmZmVyDQo+IA0KPiAgICAgICAgICAgICAgLy8vDQo+IA0KPiAtICAgICAgICAg ICAgaWYgKCgoVUlOVDMyKShNaWNyb2NvZGVCdWZmZXIgLSBNaWNyb2NvZGVGaWxlQnVmZmVyKSA8 DQo+IE1pY3JvY29kZUZpbGVTaXplKSAmJiBTbG90TW9kZSAhPSAwKSB7DQo+IA0KPiArICAgICAg ICAgICAgaWYgKCgoVUlOVDMyKShNaWNyb2NvZGVCdWZmZXIgLSBNaWNyb2NvZGVGaWxlQnVmZmVy KSA8DQo+IE1pY3JvY29kZUZpbGVTaXplKSAmJiAoU2xvdE1vZGUgfHwgU2xvdE1vZGVGb3JjZSkp IHsNCj4gDQo+ICAgICAgICAgICAgICAgIGZvciAoV2Fsa2VyID0gTWljcm9jb2RlQnVmZmVyOyBX YWxrZXIgPA0KPiBNaWNyb2NvZGVGaWxlQnVmZmVyICsgTWljcm9jb2RlRmlsZVNpemU7IFdhbGtl cisrKSB7DQo+IA0KPiAgICAgICAgICAgICAgICAgIGlmICgqV2Fsa2VyICE9IDB4RkYpIHsNCj4g DQo+ICAgICAgICAgICAgICAgICAgICBwcmludGYgKCJFcnJvcjogZGV0ZWN0IG5vbi1zcGFyZSBz cGFjZSBhZnRlciB1Q29kZQ0KPiBhcnJheSwgcGxlYXNlIGNoZWNrIHVDb2RlIGFycmF5IVxuIik7 DQo+IA0KPiBkaWZmIC0tZ2l0IGEvU2lsaWNvbi9JbnRlbC9Ub29scy9GaXRHZW4vRml0R2VuLmgN Cj4gYi9TaWxpY29uL0ludGVsL1Rvb2xzL0ZpdEdlbi9GaXRHZW4uaA0KPiBpbmRleCA0MzVmYzI2 MjA5ZGEuLjVhZGQ2YTg4NzBlOSAxMDA2NDQNCj4gLS0tIGEvU2lsaWNvbi9JbnRlbC9Ub29scy9G aXRHZW4vRml0R2VuLmgNCj4gKysrIGIvU2lsaWNvbi9JbnRlbC9Ub29scy9GaXRHZW4vRml0R2Vu LmgNCj4gQEAgLTMxLDcgKzMxLDcgQEAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNs YXVzZS1QYXRlbnQNCj4gIC8vIFV0aWxpdHkgdmVyc2lvbiBpbmZvcm1hdGlvbg0KPiANCj4gIC8v DQo+IA0KPiAgI2RlZmluZSBVVElMSVRZX01BSk9SX1ZFUlNJT04gMA0KPiANCj4gLSNkZWZpbmUg VVRJTElUWV9NSU5PUl9WRVJTSU9OIDYzDQo+IA0KPiArI2RlZmluZSBVVElMSVRZX01JTk9SX1ZF UlNJT04gNjQNCj4gDQo+ICAjZGVmaW5lIFVUSUxJVFlfREFURSAgICAgICAgICBfX0RBVEVfXw0K PiANCj4gDQo+IA0KPiAgLy8NCj4gDQo+IC0tDQo+IDIuMjkuMi53aW5kb3dzLjINCj4gDQo+IA0K PiANCj4gLT0tPS09LT0tPS09DQo+IEdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1l c3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4NCj4gVmlldy9SZXBseSBPbmxpbmUgKCM2OTMwMSk6 IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzY5MzAxDQo+IE11dGUgVGhp cyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvNzkxMjA5OTAvNDkwNTk1Mw0KPiBHcm91cCBP d25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8NCj4gVW5zdWJzY3JpYmU6IGh0dHBzOi8v ZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1Yg0KPiBbZ2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu XQ0KPiAtPS09LT0tPS09LT0NCj4gDQoNCg0KDQoNCg0KDQoNCg0K