From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web10.4271.1607995728392839422 for ; Mon, 14 Dec 2020 17:28:48 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=cPZRcO61; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: hao.a.wu@intel.com) IronPort-SDR: 3y0+Cesl2p6O2rT2jDxHHR2RxzB2rTjFEX/rYfBClf6lPQahcvwtMZ0DDfPf1oCXiNxh2JGit5 wzu7JchIOI/Q== X-IronPort-AV: E=McAfee;i="6000,8403,9835"; a="174953175" X-IronPort-AV: E=Sophos;i="5.78,420,1599548400"; d="scan'208";a="174953175" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2020 17:28:47 -0800 IronPort-SDR: AnYLP4AflrBBzr8eVJphJtAAEhpPELWk/0AvG+uIhLTAjh6v/asQgXP5AaqeMOL+aFoLGzaKv+ e9T3OArcdh6Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,420,1599548400"; d="scan'208";a="556373610" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga005.jf.intel.com with ESMTP; 14 Dec 2020 17:28:46 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 14 Dec 2020 17:28:46 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 14 Dec 2020 17:28:45 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) 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, 14 Dec 2020 17:28:45 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) 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.1713.5; Mon, 14 Dec 2020 17:28:45 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=STyPG0rx7AnXFHhP8D8xM+BlKjZOAtds3sMQ65x0dfH9S2VPOa0S56nhvXnojrlBfMfajOypgEtgkiG1kB4MbovGlWik0Ajirszc/Cs+RsrfsCufAiA+Dyzv7V/22EDg8MDdEnqxisNcNtxaii53sVkGr5iEpLH+aEVyUrUuqtd8J4tfrq91EvupvudcqT/EwuB2DQsRUfR+j2YO0bfv1s3GL9vGyhTr34dMQ7NeO1thIk9G3sgsqWWEXmMy+e3xEDBt32RXETc5NSjYLUjH4Vgu7u/sjzcW+tvfDg6dPEOVDsHWEpTa314oWfSSiRhO9S7fAgVHocaseAAF+c3mAw== 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=yfUkSmELjcTRjBiH1fqaEZSUtIMDZApx3WAp1pt4pjA=; b=cDQCDwPNVulk9LX/i8dxFtbLCHlvBgOmIiO8WmdFBKzujkrCJbSVbfzPXwfgFucH2C8lMfHgLNaXtjcphW83BL0xArsfYz22TwpfFKCeARfeuEpm3oErq0ibaW6nhr6ozKrXV/mSfQw7W9b7F5oRtfLD8e/I0pnTV0KD0P3fONBus6/6fUH8SyEr++fT7qkwN1CG3aJ6MX4qdq/OxyK5RrJh+zUGXHlw0lAGkZvSEa0U+r2sguidqYSGfYk/64YQztfEAt9aTF9uk7WMfnjz5gnm4EdfMCAX3VTVG4bKhvWRDemzjhKOU/VJ5EEMyDOtPYGiH9u695R8u43cb9rJrA== 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=yfUkSmELjcTRjBiH1fqaEZSUtIMDZApx3WAp1pt4pjA=; b=cPZRcO61xaK7BS4GhRxhk7ApIbfRpc7xcdqfaCdpYAGqgGyb1TfzZRfMA0Z0+1akAJV5uEY3V8WB/1sHFetzKQ/BO604VPhmJ/G7FemjkQEi3jWMASGwY/I4Kyc1wvENK3UlezhIYpH4t0vP/8k77hEEBWP0Lfv74P+1sxC266w= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (2603:10b6:408:8c::19) by BN6PR11MB1284.namprd11.prod.outlook.com (2603:10b6:404:49::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.17; Tue, 15 Dec 2020 01:28:44 +0000 Received: from BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::4cda:993f:ffc1:f169]) by BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::4cda:993f:ffc1:f169%6]) with mapi id 15.20.3654.024; Tue, 15 Dec 2020 01:28:44 +0000 From: "Wu, Hao A" To: Vitaly Cheptsov CC: "Kinney, Michael D" , "Ni, Ray" , "devel@edk2.groups.io" , "Wang, Jian J" , "Albecki, Mateusz" , Laszlo Ersek Subject: Re: [edk2-devel] [PATCH 1/2] MdeModulePkg/SataControllerDxe: Add support for drives in RAID mode Thread-Topic: [edk2-devel] [PATCH 1/2] MdeModulePkg/SataControllerDxe: Add support for drives in RAID mode Thread-Index: AQHWz5+xKroIEV71V06Yg+/i73UOVKn2GUaQgAAeW4CAAAPxQIAAC3gAgAEWr2A= Date: Tue, 15 Dec 2020 01:28:43 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: ispras.ru; dkim=none (message not signed) header.d=none;ispras.ru; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 76af43fe-74e0-42e2-4efb-08d8a098c336 x-ms-traffictypediagnostic: BN6PR11MB1284: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rEg5RXh0DYJxX64XdY37R1+b+PuaTGhnrQPyB71iJLtfMCKa9ezWG3NWkRmbS7V62yn61wAYc8qv5G3Hsn4rNK90oN4fp7GEpvx+XwuOrIDXSZOow18lAiY5Ih+YexYMxhM6czuyQwcKF6hG7pP0bukY5ABs16KgBhGMj94R25r6/8SoggGmZxnmC0vfWtgd/ZoPDy5rE4irxXCDJgiWuWd1g8Q0TcJBWkko0sse6un8bPTLABUz6VOfjssq83HRxo3zYFb0GLCN+vu69OYfJsJSckqra9ggQJ4ipuVexK48VxVvH6H3W2pDrdkMOgCMp1Brvg+VHHOWciE6IUu38bs/xe8l4cyNiFlm7i/lkEYOvT8DldSD5+zZ1MqGdNijzdbhAKt+ihErmH6tpb+yBw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR11MB3666.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(366004)(346002)(376002)(76116006)(966005)(66946007)(5660300002)(71200400001)(55016002)(52536014)(86362001)(4326008)(2906002)(66446008)(508600001)(66556008)(33656002)(66476007)(64756008)(83380400001)(8936002)(26005)(9686003)(6506007)(186003)(53546011)(54906003)(6916009)(7696005)(8676002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?dWZDaVNRc3pKckN6Q2dER3UreVFaUkFwdjFnU2xsRkJKakk3dFRyRVJyWmRr?= =?utf-8?B?a2JvWkE5cTlLU1NSbGNWZ0Y2a3o0THpYczBvaXNqUHlJeFVBa0hybXlZWi9Y?= =?utf-8?B?QUtSb2QxTlQwMXFJSG5UYS9UenRucDBxSGJENHhMN0IxaTd4Q3FtOGxXYnR3?= =?utf-8?B?ZkZXU3NGUDlMUDQxQjB3R3VnRk15Uno1MUpsSVBqRUM1Rlcydm1MMXd2cFUw?= =?utf-8?B?aUN0WkZETVhwVzJ0Mjd4Snoya0dweXc0dDR6TUtoWVVjWEtYYW8xQnlDZlgw?= =?utf-8?B?cWRtSld4clhZT2hjbzY1c1lKaDRiSFZvNlhzZ2hKTGsvR0dWZHNac0lPeHVZ?= =?utf-8?B?cWVnSEFpd2RGMmd2N0Vzc25qWDc2YytqaVNDZ1Vta1Z6cmFZWlozS0VaMlFH?= =?utf-8?B?aXJod2RuenF1VlQydWUvNDZ0aTI3U1l3UHJ4MDdITTNxcWpJZW1BemFOSXBP?= =?utf-8?B?U3dKU0lTQUxXcTM4aU9CQ1F6S3NYNm5mc0xKYlB4ZE1QdmpPWVdQdXVTcGwz?= =?utf-8?B?VEtzWkJPMzRzd2F3RG1tWk1YUjhDNUxtQmYyeStTZExhMjRldDZ4WHFNSTdD?= =?utf-8?B?Z2tGdW9IakxwVnZIdS9vUzBQQmwrUFNGakxKZ2EyTC9IcXJFc3pieGZwZDBx?= =?utf-8?B?dDUxSUU3c091K3M5clBrSEZMaWdrMHI3UzEzUHBNL1puL2ZtVTdObXRJY1l3?= =?utf-8?B?bjJVMGViWUNKOVJtTjdFU0Y0eUg0QlQrYlFIZzhHMllPSjJaZWQzSVY1MGdn?= =?utf-8?B?NG02ajlvRzRoQnk1ZHVxejRodmpPSDFoU0hyK3R5NWs3SjlhNFFqY0ZnVVN2?= =?utf-8?B?dVEvZm1DWXFvZTZMVTAxTU11QkIxSzFucEtHVDcyaDAxTkhONEQ5dEkvTVd2?= =?utf-8?B?MVMxeGpFQVRWYXdWS2xKNldYaGVnaHpoTDhtdEkvOStDMkdSMnR6UVBWalVj?= =?utf-8?B?eGIrS082SEN0a1ZwY1ZJSXlJeitUbVcwTnltWmxleWVjclNZM3lzMTZpcFQ4?= =?utf-8?B?bGlaZVkrSXVDN3lhTXBjSENtdHF3MG1kaXZLeXdSWVZjUkVmVlVlelJTNUNt?= =?utf-8?B?K0oxRGVFbzdIQXhta05KbjlzejFaK3FLQXZBNjdoSDRmL3lWRWo1QitTNzhC?= =?utf-8?B?anl5WllqN2IyK2tPVXM1Qmw2V0o5TDFFQUJNTE5mbmZHV1ptT0t5NEJhYm9q?= =?utf-8?B?N0libWw2ZDdVSEwwUVdBbFVKRyt1cTM0TFZ4YVRKU0lMZVNISXJpQ000c0tC?= =?utf-8?B?VTRuc25QQmltRS9JY1QyVG5zZldlYjNzLzFOZGx4dWVnTm1mdkdmSUJobjgy?= =?utf-8?Q?WzRnKZYkZ2Ldc=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3666.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76af43fe-74e0-42e2-4efb-08d8a098c336 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Dec 2020 01:28:44.0946 (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: fW1paEYaXchzlvmSvCnyIoOu+Mc2xhvIWbERfw2pZHULq5pJ8UmZpwkbpLjISY2K0gLGQTG5vpJnd4UyRMeaSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1284 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 KExvb3BpbmcgaW4gTWlrZSBhbmQgUmF5IHRvIHNlZSBpZiB0aGV5IGhhdmUgYWRkaXRpb25hbCBj b21tZW50cykNCg0KSGVsbG8gVml0YWx5LA0KDQpJIGFtIG9rYXkgd2l0aCBpbnRyb2R1Y2luZyBh IFBDRCB0byBmb3JjZSB0aGUgZHJpdmVzIGJlaGluZCBhIFJBSUQgbW9kZSBjb250cm9sbGVyIHRv IGJlIHVzZWQgYXMgbm9ybWFsIG5vbi1SQUlEIGRldmljZXMuDQpUaGUgbmFtZSBQY2RGb3JjZVJh aWRBc1NpbmdsZURyaXZlIGlzIGZpbmUgd2l0aCBtZS4NCg0KSWYgbm8gY29tbWVudCBmcm9tIG90 aGVyIHJldmlld2VyczoNCjEuIENvdWxkIHlvdSBoZWxwIHRvIGNoYW5nZSB0aGUgQlogdHJhY2tl ciBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTMxMTggdG8g YSAiVGlhbm8gRmVhdHVyZSBSZXF1ZXN0cyI/DQpGb3IgbWUsIGl0IGxvb2tzIG1vcmUgbGlrZSBh IGZlYXR1cmUgcmVxdWVzdC4NCg0KMi4gQ291bGQgeW91IGhlbHAgdG8gaW5jbHVkZSAnQXRhQXRh cGlQYXNzVGhydScgaW4gdGhlIEJaIHRyYWNrZXIgc3ViamVjdCBmb3IgYmV0dGVyIHJlZmVyZW5j ZT8NCg0KMy4gRm9yIFBhdGNoIDIvMiwgaXMgdGhlcmUgYW55IHJlYXNvbiB0byBjbGVhciB0aGUg Yml0czoNCkVGSV9BVEFfUEFTU19USFJVX0FUVFJJQlVURVNfUEhZU0lDQUwNCkVGSV9FWFRfU0NT SV9QQVNTX1RIUlVfQVRUUklCVVRFU19QSFlTSUNBTA0KSWYgdGhlIGRyaXZlcyBhcmUgaW50ZW5k ZWQgdG8gYmUgdXNlZCBhcyBub24tUkFJRCBkZXZpY2VzLCBJIHRoaW5rIGJvdGggdGhlIEFUVFJJ QlVURVNfUEhZU0lDQUwgJiBBVFRSSUJVVEVTX0xPR0lDQUwgc2hvdWxkIGJlIHNldCBmb3IgdGhl IGNvbnRyb2xsZXIgYWNjb3JkaW5nIHRvIHRoZSBVRUZJIFNwZWMuDQoNCkJlc3QgUmVnYXJkcywN CkhhbyBXdQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFZpdGFseSBD aGVwdHNvdiA8Y2hlcHRzb3ZAaXNwcmFzLnJ1Pg0KPiBTZW50OiBNb25kYXksIERlY2VtYmVyIDE0 LCAyMDIwIDQ6MjkgUE0NCj4gVG86IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPg0KPiBD YzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwu Y29tPjsgQWxiZWNraSwNCj4gTWF0ZXVzeiA8bWF0ZXVzei5hbGJlY2tpQGludGVsLmNvbT47IExh c3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZl bF0gW1BBVENIIDEvMl0gTWRlTW9kdWxlUGtnL1NhdGFDb250cm9sbGVyRHhlOg0KPiBBZGQgc3Vw cG9ydCBmb3IgZHJpdmVzIGluIFJBSUQgbW9kZQ0KPiANCj4gSGVsbG8gSGFvLA0KPiANCj4gTm8s IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhhdCwgc2luY2UgdGhlcmUgaXMgbm8gZmly bXdhcmUgcHJlZmVyZW5jZQ0KPiBmb3IgdGhhdC4gVGhlIGZpcm13YXJlIGRvZXMgbm90IHN1cHBv cnQgVUVGSSwgYW5kIHdlIGFyZSBydW5uaW5nIHRocm91Z2gNCj4gRHVldFBrZy4NCj4gDQo+IEkg YmVsaWV2ZSBpdCBpcyBub3QgcXVpdGUgYSB3b3JrYXJvdW5kIGFzIHRoZSBmYWN0IHRoYXQgYW4g YWN0dWFsIFJBSUQgYXJyYXkgaXMNCj4gaW5zdGFsbGVkIGFuZCB0aGUgZmFjdCB0aGF0IGEgUkFJ RCBhcnJheSBpcyBzdXBwb3J0ZWQgYXJlIHNlcGFyYXRlIG1hdHRlcnMgYW5kDQo+IG1heSBub3Qg YmUgZGlzdGluZ3Vpc2hhYmxlIHZpYSBJU19SQUlELiBBdCBsZWFzdCB0aGlzIGlzIGhvdyBJbnRl bCBjb250cm9sbGVycw0KPiB3b3JrIHRvIGRhdGUuIEEgY2xlYXIgbmFtZSBmb3IgdGhlIFBDRCBz aG91bGQgbm90IGNhdXNlIGFueSBjb25mdXNpb24uIElmDQo+IHlvdSB0aGluayBUcmVhdFJhaWRB c1NhdGEgaXMgbm90IGdyZWF0LCB3ZSBjb3VsZCBjaG9vc2UNCj4gRm9yY2VSYWlkQXNTaW5nbGVE cml2ZS4NCj4gDQo+IEJlc3QgcmVnYXJkcywNCj4gVml0YWx5DQo+IA0KPiA+IE9uIDE0IERlYyAy MDIwLCBhdCAxMDo1NiwgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+ DQo+ID4g77u/SGVsbG8gVml0YWx5LA0KPiA+DQo+ID4gSXQgc291bmRzIHRvIG1lIHRoYXQgdGhl IGNvbnRyb2xsZXIgZHJpdmVyIHNob3VsZCBwcm9wZXJseSByZWZsZWN0IHRoZQ0KPiA+IG1vZGUg YWNjb3JkaW5nIHRvIHRoZSBhY3R1YWwgY29uZmlndXJhdGlvbi4gSXMgaXQgcG9zc2libGUgdG8g dXBkYXRlDQo+ID4gdGhlIGJlaGF2aW9yIG9mIHRoZSBjb250cm9sbGVyIGRyaXZlcj8NCj4gPg0K PiA+IEluIG15IG9waW5pb24sIGl0IHNlZW1zIHdlaXJkIHRvIGFkZCBXQSBpbiB0aGVzZSBnZW5l cmFsIGRyaXZlcnMgZm9yDQo+ID4gcGxhdGZvcm0gZHJpdmVyIGlzc3VlLiBJdCBtaWdodCBhbHNv IGNhdXNlIGNvbmZ1c2lvbiBmb3IgdXNlcnMgb2YNCj4gPiBBdGFBdGFwaVBhc3NUaHJ1IHRvIHRo aW5rIGl0IGhhcyBSQUlEIHN1cHBvcnQuDQo+ID4NCj4gPiBCZXN0IFJlZ2FyZHMsDQo+ID4gSGFv IFd1DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2 ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4g Vml0YWx5DQo+ID4+IENoZXB0c292DQo+ID4+IFNlbnQ6IE1vbmRheSwgRGVjZW1iZXIgMTQsIDIw MjAgMzozNCBQTQ0KPiA+PiBUbzogV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ID4+ IENjOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRl bC5jb20+Ow0KPiA+PiBBbGJlY2tpLCBNYXRldXN6IDxtYXRldXN6LmFsYmVja2lAaW50ZWwuY29t PjsgTGFzemxvIEVyc2VrDQo+ID4+IDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4gU3ViamVjdDog UmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8yXSBNZGVNb2R1bGVQa2cvU2F0YUNvbnRyb2xsZXJE eGU6DQo+ID4+IEFkZCBzdXBwb3J0IGZvciBkcml2ZXMgaW4gUkFJRCBtb2RlDQo+ID4+DQo+ID4+ IEhlbGxvIEhhbywNCj4gPj4NCj4gPj4gVGhpcyBpcyBmb3IgdGhlIGNhc2Ugd2hlbiB0aGUgZHJp dmVzIGFyZSBub3QgdXNlZCBhcyBhIFJBSUQsIGJ1dCB0aGUNCj4gPj4gY29udHJvbGxlciBpcyBp bml0aWFsaXNlZCBpbiBSQUlEIG1vZGUuIEhvd2V2ZXIsIHlvdSBhcmUgcmlnaHQgdGhhdA0KPiA+ PiBpZiBhIGRlZGljYXRlZCBSQUlEIGRyaXZlciBpcyBwcmVzZW50LCBpdCBpcyBiZXN0IHRvIHVz ZSBpdCBpbnN0ZWFkLg0KPiA+PiBUbyBzdXBwb3J0IGJvdGggY2FzZXMgY2FuIHdlIGludHJvZHVj ZSBhbiBvZmYtYnktZGVmYXVsdCBQQ0QgKGUuZy4NCj4gVHJlYXRSYWlkQXNTYXRhKSB0byB3b3Jr YXJvdW5kIHRoaXM/DQo+ID4+DQo+ID4+IEJlc3QgcmVnYXJkcywNCj4gPj4gVml0YWx5DQo+ID4+ DQo+ID4+Pj4gT24gMTQgRGVjIDIwMjAsIGF0IDA5OjIyLCBXdSwgSGFvIEEgPGhhby5hLnd1QGlu dGVsLmNvbT4gd3JvdGU6DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogVml0YWx5IENoZXB0c292IDxjaGVwdHNvdkBp c3ByYXMucnU+DQo+ID4+Pj4gU2VudDogRnJpZGF5LCBEZWNlbWJlciAxMSwgMjAyMCA1OjI1IFBN DQo+ID4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4+Pj4gQ2M6IFZpdGFseSBDaGVw dHNvdiA8Y2hlcHRzb3ZAaXNwcmFzLnJ1PjsgV2FuZywgSmlhbiBKDQo+ID4+Pj4gPGppYW4uai53 YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgQWxiZWNraSwN Cj4gPj4+PiBNYXRldXN6IDxtYXRldXN6LmFsYmVja2lAaW50ZWwuY29tPjsgTGFzemxvIEVyc2Vr DQo+ID4+Pj4gPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+Pj4+IFN1YmplY3Q6IFtQQVRDSCAxLzJd IE1kZU1vZHVsZVBrZy9TYXRhQ29udHJvbGxlckR4ZTogQWRkIHN1cHBvcnQNCj4gPj4+PiBmb3Ig ZHJpdmVzIGluIFJBSUQgbW9kZQ0KPiA+Pj4+DQo+ID4+Pj4gUkVGOiBodHRwczovL2J1Z3ppbGxh LnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTMxMTgNCj4gPj4+Pg0KPiA+Pj4+IFRoaXMg cmVzb2x2ZXMgdGhlIHByb2JsZW0gb2YgdXNpbmcgZHJpdmVycyBjb25uZWN0ZWQgdG8gSW50ZWwg RzMzDQo+ID4+Pj4gYnVpbHRpbiBTQVRBIGNvbnRyb2xsZXIgd2hlbiBydW4gZnJvbSBEdWV0UGtn IHdoZW4gaXQgY2FuIG9ubHkgYmUNCj4gPj4+PiBjb25maWd1cmVkIGluIFJBSUQgbW9kZSB0aHJv dWdoIHRoZSBmaXJtd2FyZSBzZXR0aW5ncy4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gSGVsbG8gVml0 YWx5LA0KPiA+Pj4NCj4gPj4+IElmIG15IHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdCwgdGhpcyBk cml2ZXIgKFNhdGFDb250cm9sbGVyRHhlKSBhbmQNCj4gPj4+IHRoZSBBdGFBdGFwaVBhc3NUaHJ1 IGRyaXZlciBhcmUgd3JpdHRlbiBmb3Igbm9uLVJBSUQgY2FzZSBvbmx5Lg0KPiA+Pj4NCj4gPj4+ IEJvdGggZHJpdmVycyAoZXNwZWNpYWxseSBBdGFBdGFwaVBhc3NUaHJ1KSBkbyBub3QgZGlzdGlu Z3Vpc2gNCj4gPj4+IGxvZ2ljL3BoeXNpY2FsIFNDU0kgY2hhbm5lbHMsIHdoaWNoIEkgdGhpbmsg b25seSB3b3JrcyBmb3IgdGhlDQo+ID4+PiBub24tUkFJRCBjYXNlLiBJIGFtIG5vdCBzdXJlIGlm IHRoaXMgcGF0Y2ggc2VyaWVzIHdpbGwgaGF2ZSBhbg0KPiA+Pj4gaW1wYWN0IHRvIGV4aXN0aW5n DQo+ID4+IFJBSUQgZHJpdmVycy4NCj4gPj4+DQo+ID4+PiBCZXN0IFJlZ2FyZHMsDQo+ID4+PiBI YW8gV3UNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+DQo+ID4+Pj4gQ2M6IEppYW4gSiBXYW5nIDxqaWFu Lmoud2FuZ0BpbnRlbC5jb20+DQo+ID4+Pj4gQ2M6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5j b20+DQo+ID4+Pj4gQ2M6IE1hdGV1c3ogQWxiZWNraSA8bWF0ZXVzei5hbGJlY2tpQGludGVsLmNv bT4NCj4gPj4+PiBDYzogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPj4+PiBT aWduZWQtb2ZmLWJ5OiBWaXRhbHkgQ2hlcHRzb3YgPGNoZXB0c292QGlzcHJhcy5ydT4NCj4gPj4+ PiAtLS0NCj4gPj4+PiBNZGVNb2R1bGVQa2cvQnVzL1BjaS9TYXRhQ29udHJvbGxlckR4ZS9TYXRh Q29udHJvbGxlci5jIHwgNCArKy0tDQo+ID4+Pj4gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPj4+Pg0KPiA+Pj4+IGRpZmYgLS1naXQNCj4gPj4+PiBh L01kZU1vZHVsZVBrZy9CdXMvUGNpL1NhdGFDb250cm9sbGVyRHhlL1NhdGFDb250cm9sbGVyLmMN Cj4gPj4+PiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NhdGFDb250cm9sbGVyRHhlL1NhdGFDb250 cm9sbGVyLmMNCj4gPj4+PiBpbmRleCBhYjA2ZTI4MzNjLi4zMDEzMzVjOTY3IDEwMDY0NA0KPiA+ Pj4+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NhdGFDb250cm9sbGVyRHhlL1NhdGFDb250 cm9sbGVyLmMNCj4gPj4+PiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TYXRhQ29udHJvbGxl ckR4ZS9TYXRhQ29udHJvbGxlci5jDQo+ID4+Pj4gQEAgLTMyNCw3ICszMjQsNyBAQCBTYXRhQ29u dHJvbGxlclN1cHBvcnRlZCAoDQo+ID4+Pj4gICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4g Pj4+PiAgfQ0KPiA+Pj4+DQo+ID4+Pj4gLSAgaWYgKElTX1BDSV9JREUgKCZQY2lEYXRhKSB8fCBJ U19QQ0lfU0FUQURQQSAoJlBjaURhdGEpKSB7DQo+ID4+Pj4gKyAgaWYgKElTX1BDSV9JREUgKCZQ Y2lEYXRhKSB8fCBJU19QQ0lfU0FUQURQQSAoJlBjaURhdGEpIHx8DQo+ID4+Pj4gKyBJU19QQ0lf UkFJRA0KPiA+Pj4+ICsgKCZQY2lEYXRhKSkgew0KPiA+Pj4+ICAgIHJldHVybiBFRklfU1VDQ0VT UzsNCj4gPj4+PiAgfQ0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTQ2NSw3ICs0NjUsNyBAQCBTYXRhQ29u dHJvbGxlclN0YXJ0ICggIGlmIChJU19QQ0lfSURFDQo+ID4+Pj4gKCZQY2lEYXRhKSkgew0KPiA+ Pj4+ICAgIFByaXZhdGUtPklkZUluaXQuQ2hhbm5lbENvdW50ID0gSURFX01BWF9DSEFOTkVMOw0K PiA+Pj4+ICAgIFByaXZhdGUtPkRldmljZUNvdW50ICAgICAgICAgID0gSURFX01BWF9ERVZJQ0VT Ow0KPiA+Pj4+IC0gIH0gZWxzZSBpZiAoSVNfUENJX1NBVEFEUEEgKCZQY2lEYXRhKSkgew0KPiA+ Pj4+ICsgIH0gZWxzZSBpZiAoSVNfUENJX1NBVEFEUEEgKCZQY2lEYXRhKSB8fCBJU19QQ0lfUkFJ RCAoJlBjaURhdGEpKQ0KPiA+Pj4+ICsgew0KPiA+Pj4+ICAgIC8vDQo+ID4+Pj4gICAgLy8gUmVh ZCBQb3J0cyBJbXBsZW1lbnRlZChQSSkgdG8gY2FsY3VsYXRlIG1heCBwb3J0IG51bWJlciAoMA0K PiBiYXNlZCkuDQo+ID4+Pj4gICAgLy8NCj4gPj4+PiAtLQ0KPiA+Pj4+IDIuMjQuMyAoQXBwbGUg R2l0LTEyOCkNCj4gPj4+DQo+ID4+DQo+ID4+DQo+ID4+IA0KPiA+Pg0KPiA+DQo=