From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (EUR01-VE1-obe.outbound.protection.outlook.com [40.107.14.42]) by mx.groups.io with SMTP id smtpd.web11.1285.1662080435741123598 for ; Thu, 01 Sep 2022 18:00:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=WwVGDryb; spf=pass (domain: arm.com, ip: 40.107.14.42, mailfrom: jianyong.wu@arm.com) ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=NuXrnziOzs7adANALimgO5EqyqoN0/yKIuoTe8zYgxsDPWiXgCehXF2JFLI0AM/RUaIJX4zgCqGK8gSj+orfPMb0/wCuLNE5wow4cW07WzfGwz3h4y7sUKpJxQw8u6LDRL5KqV5W+0/HB5AX5ymf4wl6DPbfsnpowWpzSuap948ehh7mqXWpwUuQ+gbeMSiU9/jiAOAll21zuNzj4Z0WkJ27/+2vNUCPhXTI7Y+2I9Bs1kaLh47+7r3wakngBtZI2noEEett1+uFtcRMCz5yYSl8vena0cmZCeBEJ85qwGDDyuJcFGxdXyrKH1ngqlFrACkc/kDdKG8pWCjUp3MQLQ== ARC-Message-Signature: i=2; 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=NITRautd02Z53YwmR7qGn6DJTR1Z5b9lswOy1A15hEQ=; b=fp7BE6uEyXnxXY7JQjaK915wgYH2grVqCQkFMQWhfZQAylM5l3AoJsiH0oUbJcP84d+ikcQT8vsrz99iUmB6V+XS1YuiiyugNVKDdp3B+ENeo4rBmrd56a/mOuBlSitVOVN84V/jNpPv8BOg/DRSaGY9CzDvPNo31W0j6NUG7S5TCjTpYb9nIQmP++4CipvJcONe2sK6W0hxvon0qgBxE4tBmEUc7U28z5a/F0aBqAvVrxmKeocSMx532kPafCcltaqv08TIHRYRQk3or2DxwxREqU+2LF7WLkA+nS9N8gYpW575rNoHpApgPUtuJCem2ydPU09evExTgf9eG4SNNw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NITRautd02Z53YwmR7qGn6DJTR1Z5b9lswOy1A15hEQ=; b=WwVGDryb0H49R6jSiDarJaKwxlQiOYHttjjgkDvLL+sOkkDgb4zCNWFxnBp20oagUQlnTOW6H4CdmVCGEDQT2qxS71FTEfzKMZayIurECXdbQuTVrUebU14RmGxLF66WvugaQDM5WZi8V0IDlhUvilbhCT9uVSxjrS2n73dlfpk= Received: from AS9PR06CA0319.eurprd06.prod.outlook.com (2603:10a6:20b:45b::12) by DU0PR08MB9629.eurprd08.prod.outlook.com (2603:10a6:10:44a::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.11; Fri, 2 Sep 2022 01:00:31 +0000 Received: from AM7EUR03FT034.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45b:cafe::b5) by AS9PR06CA0319.outlook.office365.com (2603:10a6:20b:45b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10 via Frontend Transport; Fri, 2 Sep 2022 01:00:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT034.mail.protection.outlook.com (100.127.140.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.10 via Frontend Transport; Fri, 2 Sep 2022 01:00:30 +0000 Received: ("Tessian outbound fa99bf31ee7d:v123"); Fri, 02 Sep 2022 01:00:30 +0000 X-CR-MTA-TID: 64aa7808 Received: from 0fcc31e23162.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5ADEA34C-7EE0-43E1-AEB6-A95AB6318D5A.1; Fri, 02 Sep 2022 01:00:24 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0fcc31e23162.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 02 Sep 2022 01:00:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BZ40HNn4BJ/YgwUJdR1UWLnwm6CuNO6hW096b2GlPnKXt11E+AW2Ql/K3sfFtAZ4IQED5Qu0W0ygRrqXE9t+wMKzmwBLIBQdxSQ8udpqjdOWBunJDUllZzHjL/zYKw/aUPIuL4UXhQUgOBfoknVW15U3s6tThCu+5gJJLYQ9y3Tg65vgQrRMYD6b95GDDQFkXiSi40rItrIeHuRDaz/BDcG9sWsJEnaMmGEkzV4kN71jo3kW501TJOdA80rzHiTSXP1VEh1QJfw9lWyYzE82apV+myUrWcqxwPK0LWDz3H5qVioZogz81a9HrolryZBT9t5/vs6tfADqe+Pu7QX/5A== 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=NITRautd02Z53YwmR7qGn6DJTR1Z5b9lswOy1A15hEQ=; b=YoyQ6jOZidXbc1UOcEJPipqRZZCTmWtES/4btD9cJsQMlq1zqSLZ9W4fTsqBGHpmYrlpd/HpIQCaowgRPrSfkH/2kVn6CPQ3mPmI9z7RHFYEh054FCBXAdUoA4eww8PWOHZoCvHnIByIZ2OYd0E+agpbDL0ahwppwGJZ1a+omiL2PxhNZiLUvx6fc3KzrRfeG6K89KEjPF/aG7JjbIUNH6k3IjF4RE5jsVQNt64mQ6R+2S2cdxk0Nb4hQg766qPemSgoQCYK4jlzE3DPNqm73TYU4ua2UdhxiO1VmnZvYoOd7art/dITyd/1FPKrSP8dAI2MOx0WBug3kOJGroW6OA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NITRautd02Z53YwmR7qGn6DJTR1Z5b9lswOy1A15hEQ=; b=WwVGDryb0H49R6jSiDarJaKwxlQiOYHttjjgkDvLL+sOkkDgb4zCNWFxnBp20oagUQlnTOW6H4CdmVCGEDQT2qxS71FTEfzKMZayIurECXdbQuTVrUebU14RmGxLF66WvugaQDM5WZi8V0IDlhUvilbhCT9uVSxjrS2n73dlfpk= Received: from AS4PR08MB7506.eurprd08.prod.outlook.com (2603:10a6:20b:4f8::19) by GV1PR08MB8617.eurprd08.prod.outlook.com (2603:10a6:150:81::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Fri, 2 Sep 2022 01:00:22 +0000 Received: from AS4PR08MB7506.eurprd08.prod.outlook.com ([fe80::5be:138c:8a5b:b68a]) by AS4PR08MB7506.eurprd08.prod.outlook.com ([fe80::5be:138c:8a5b:b68a%5]) with mapi id 15.20.5588.011; Fri, 2 Sep 2022 01:00:22 +0000 From: "Jianyong Wu" To: Sami Mujawar , "devel@edk2.groups.io" CC: "ardb+tianocore@kernel.org" , Justin He , nd Subject: Re: [PATCH v2 1/2] CloudHv/arm: add PeiMemInfoLib Thread-Topic: [PATCH v2 1/2] CloudHv/arm: add PeiMemInfoLib Thread-Index: AQHYs6MCE1rqFJsTVk2zESHGGeXwzq3Ky86AgACbSaA= Date: Fri, 2 Sep 2022 01:00:22 +0000 Message-ID: References: <20220819080911.188127-1-jianyong.wu@arm.com> <20220819080911.188127-2-jianyong.wu@arm.com> <3be210d1-6e81-106e-6551-70d138c97aa6@arm.com> In-Reply-To: <3be210d1-6e81-106e-6551-70d138c97aa6@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 9B838E067740AB45BB5A9B3ADE999974.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: 1f92fc8d-8b11-4fa9-cca6-08da8c7e887b x-ms-traffictypediagnostic: GV1PR08MB8617:EE_|AM7EUR03FT034:EE_|DU0PR08MB9629:EE_ x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: L2ERwI++ENb4b8BuCsvXeaQ4bKDGDzTmCrhAS5fWoDAyuj8WePtnY0qSCfBAdzit/rO+xW/Md+T2RTV4GXE4veYdLsdnlyM0IVbBaiRN/56XupzTqq8Mgsv5TATDmUr6JAoROIGR+8dnSLdLTcp7Y1+DNaqcpcJDNczjvrgQaXw+b3YDAjeuiO1HTFlhhY4kKCU3s03qBihmklowF0gLJeXXBIhoqDmCKlYCPqSzfK49Wid4yR51J7AEY/awqZCDgUU7r7XRmddc0zCZBJvqIsUxhPG1h9qNIyUWzXwGa3gQOIIMCG1z09Ryqg9Vh1HpOPQdDel29s6nVTsRkcic5n4bGUVntZB03RVHt8GOUUj8wblBxtDETDnfJG1qSxqSGNCVfJOPsaG4hZLF7o+MbDkWsAQ16C4jUUWUib8Aber6CAYzO779f9sOAedliy2AKzy7a2/d5jZZeypfMSwQMAvkJcYQkbmtXaLsRqwkgykLXUbFn8+qszpsgE+hw6uniBor2ZLLP7NWfSwj3+0WNkObFbs8LeRtrgFCCT0ngE8WgYqrdjHUM1aZY18y35069KNgbz92haFb4wpJDCUYPgCyqMezAEqsd2wAsVeFBzi3/pJY1Jo5DoN1qtHoSJCHBKjCoiPvSlJ64mgk+I9fgF39FdhxMQP+MQGZOuhUFefBP7qL2w14By1jBeYXghAzn7aRDZ1+tKWrfz7Lxtmg9KEzF2m+spYCZpEJdZoS/7yMj3dOW56hqQJOvjm3yFWDofsyhldJ1l/jQ0D2lPVfEg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR08MB7506.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(136003)(396003)(366004)(39860400002)(376002)(346002)(66476007)(41300700001)(38100700002)(8676002)(8936002)(122000001)(38070700005)(55016003)(66946007)(66446008)(64756008)(4326008)(66556008)(478600001)(52536014)(5660300002)(110136005)(76116006)(86362001)(54906003)(71200400001)(316002)(186003)(33656002)(53546011)(83380400001)(30864003)(6506007)(26005)(9686003)(7696005)(2906002);DIR:OUT;SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8617 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Return-Path: Jianyong.Wu@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: dc796a2f-0f0b-4dfb-53dd-08da8c7e833a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d8ejSjlEEXXzgMxWAU5XU4Mg8KCZRYGemKO8QMjbuVTikcPZa39KLRdDApdERZf7ncoJMVvT7BxFwSrZRsSCsi+y/i8EOISupK5Noto2N8F7pkKJFf1TJXED0TpCuoKs8lDjSKtv1zv4GVLYtJZHYonbNAnAvjjvXasa5cnS2DqTtL2aWQrglU1SSYBj0rgF9Mxhiyh768Gc0WKI/bJhJ/6ijBX0NOWhQHJ9CFVvigCVufe/BrPabyEdQMxebEhB/lsOG9gLLqT3BoOmILdKATfL3NE1cameBnIpH1yX59v8Mypihl65T61BSv6a9/XXw+5mAz3sKsXv0d0OV/EWTulyga+Ftk83CSHfdvzayU9x16UVKJALE2vXhDGM+m66XA4B/BilejX6peyBOYeA1oEvkm3CuKbLoAcKnNBzW5hO3Df6cBRtb4YOOsEBF9icS6Ev5+BA0GEWVsFyx05wMj3Odmv2DcxtuUKgR53Rtkxy73XFMN1/8t/A/HsvJsFKfHmT2A6m0VWzMUErHzS4jkI2Ha7KiPET+Y6ZPPrfA6sLUNQo8NYj1PJKYfhHgD9naFycE10C/0/Ztfyw0i6L9SogW7gd3YylwrDxTbjoGo1YDh1QjyoNmrkbPJzIRcENJpDoWaGPCxUXfp3lETPdXQ4OpD37gQneFIJWrrmH9IuSPgs4wYJDmrXQI0K+/VYbvKXepEzDiKGKdIrvfPefmPMooyoeOuG2XsudJ3n+swN28l0zSyGZTiniLvSqprGOFNCZHl67eq9lrrSgJVN+SQ== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230016)(4636009)(396003)(39860400002)(376002)(136003)(346002)(46966006)(40470700004)(36840700001)(81166007)(47076005)(30864003)(4326008)(33656002)(8676002)(186003)(356005)(336012)(55016003)(5660300002)(8936002)(2906002)(40480700001)(70586007)(70206006)(52536014)(110136005)(316002)(86362001)(82310400005)(9686003)(40460700003)(41300700001)(54906003)(7696005)(6506007)(53546011)(26005)(36860700001)(82740400003)(83380400001)(478600001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2022 01:00:30.9147 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f92fc8d-8b11-4fa9-cca6-08da8c7e887b X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9629 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzIFNhbWksIEkgd2lsbCBhZGRyZXNzIGFsbCB0aGUgY29tbWVudHMgaW4gdGhpcyBwYXRj aCBpbiBuZXh0IHZlcnNpb24uDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogU2FtaSBNdWphd2FyIDxTYW1pLk11amF3YXJAYXJtLmNvbT4NCj4gU2VudDogVGh1cnNkYXks IFNlcHRlbWJlciAxLCAyMDIyIDExOjQzIFBNDQo+IFRvOiBKaWFueW9uZyBXdSA8Smlhbnlvbmcu V3VAYXJtLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBhcmRiK3RpYW5vY29yZUBr ZXJuZWwub3JnOyBKdXN0aW4gSGUgPEp1c3Rpbi5IZUBhcm0uY29tPjsgbmQNCj4gPG5kQGFybS5j b20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMS8yXSBDbG91ZEh2L2FybTogYWRkIFBlaU1l bUluZm9MaWINCj4gDQo+IEhpIEppYW55b25nLA0KPiANCj4gVGhhbmsgeW91IGZvciB0aGUgdXBk YXRlZCBwYXRjaC4NCj4gDQo+IEkgaGF2ZSBvbmUgY29tbWVudCBtYXJrZWQgaW5saW5lIGFzIFtT QU1JXS4gT3RoZXIgdGhhbiB0aGF0IHRoaXMgcGF0Y2gNCj4gbG9va3MgZ29vZCB0byBtZS4NCj4g DQo+IFdpdGggdGhhdCBmaXhlZC4NCj4gDQo+IFJldmlld2VkLWJ5OiBTYW1pIE11amF3YXIgPHNh bWkubXVqYXdhckBhcm0uY29tPg0KPiANCj4gUmVnYXJkcywNCj4gDQo+IFNhbWkgTXVqYXdhcg0K PiANCj4gT24gMTkvMDgvMjAyMiAwOTowOSBhbSwgSmlhbnlvbmcgV3Ugd3JvdGU6DQo+ID4gTWVt b3J5IGxheW91dCBpbiBDTG91ZCBIeXBlcnZpc29yIGZvciBhcm0gaXMgY2hhbmdlZCBhbmQgaXMg ZGlmZmVyZW50DQo+ID4gd2l0aCBRZW11LCB0aHVzIHdlIHNob3VsZCBidWlsZCBpdHMgb3duIFBl aU1lbUluZm9MaWIuDQo+ID4gVGhlIG1haW4gY2hhbmdlIGluIHRoZSBtZW1vcnkgbGF5b3V0IGlz IHRoYXQgbm9ybWFsIHJhbSBtYXkgbm90DQo+ID4gY29udGlndW91cyB1bmRlciA0Ry4gVGhlIHRv cCA2NE0gdW5kZXIgNEcgaXMgcmVzZXJ2ZWQgZm9yIDMyYml0IGRldmljZS4NCj4gPg0KPiA+IFdo YXQgdGhpcyBwYXRjaCBkb2VzOg0KPiA+IDEuIGdldCBhbGwgb2YgdGhlIG1lbW9yeSBub2RlIGZy b20gRFQ7IDIuIEFkZCBhbGwgb2YgdGhlIG1lbW9yeSBub2Rlcw0KPiA+IHRvIEhvYjsgMy4gSW5p dCBwYWdlIHRhYmxlIGZvciBlYWNoIG1lbW9yeSBub2RlOw0KPiA+DQo+ID4gU2lnbmVkLW9mZi1i eTogSmlhbnlvbmcgV3UgPGppYW55b25nLnd1QGFybS5jb20+DQo+ID4gLS0tDQo+ID4gICAuLi4v Q2xvdWRIdlZpcnRNZW1JbmZvTGliLmMgICAgICAgICAgICAgICAgICAgfCAyMzAgKysrKysrKysr KysrKysrKysrDQo+ID4gICAuLi4vQ2xvdWRIdlZpcnRNZW1JbmZvTGliLmggICAgICAgICAgICAg ICAgICAgfCAgNDIgKysrKw0KPiA+ICAgLi4uL0Nsb3VkSHZWaXJ0TWVtSW5mb1BlaUxpYi5pbmYg ICAgICAgICAgICAgIHwgIDQ2ICsrKysNCj4gPiAgIDMgZmlsZXMgY2hhbmdlZCwgMzE4IGluc2Vy dGlvbnMoKykNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBBcm1WaXJ0UGtnL0xpYnJhcnkv Q2xvdWRIdlZpcnRNZW1JbmZvTGliL0Nsb3VkSHZWaXJ0TWVtSW5mb0xpYi5jDQo+ID4gICBjcmVh dGUgbW9kZSAxMDA2NDQNCj4gQXJtVmlydFBrZy9MaWJyYXJ5L0Nsb3VkSHZWaXJ0TWVtSW5mb0xp Yi9DbG91ZEh2VmlydE1lbUluZm9MaWIuaA0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4N Cj4gQXJtVmlydFBrZy9MaWJyYXJ5L0Nsb3VkSHZWaXJ0TWVtSW5mb0xpYi9DbG91ZEh2VmlydE1l bUluZm9QZWlMaWIuaW5mDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4gYS9Bcm1WaXJ0UGtnL0xp YnJhcnkvQ2xvdWRIdlZpcnRNZW1JbmZvTGliL0Nsb3VkSHZWaXJ0TWVtSW5mb0xpYi5jDQo+ID4g Yi9Bcm1WaXJ0UGtnL0xpYnJhcnkvQ2xvdWRIdlZpcnRNZW1JbmZvTGliL0Nsb3VkSHZWaXJ0TWVt SW5mb0xpYi5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAw Li5kOWM0MzQ3NTRlDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKw0KPiBiL0FybVZpcnRQa2cv TGlicmFyeS9DbG91ZEh2VmlydE1lbUluZm9MaWIvQ2xvdWRIdlZpcnRNZW1JbmZvTGliLmMNCj4g PiBAQCAtMCwwICsxLDIzMCBAQA0KPiA+ICsvKiogQGZpbGUNCj4gPiArDQo+ID4gKyAgQ29weXJp Z2h0IChjKSAyMDIyLCBBcm0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiArDQo+ ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiAr DQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPFBpUGVpLmg+DQo+ID4gKw0KPiA+ICsj aW5jbHVkZSA8QmFzZS5oPg0KPiA+ICsjaW5jbHVkZSA8bGliZmR0Lmg+DQo+ID4gKyNpbmNsdWRl IDxMaWJyYXJ5L0FybUxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGli Lmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxM aWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4gI2luY2x1ZGUgPExpYnJhcnkvUGNkTGliLmg+ DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QcmVQaUxpYi5oPg0KPiA+ICsNCj4gPiAr I2luY2x1ZGUgIkNsb3VkSHZWaXJ0TWVtSW5mb0xpYi5oIg0KPiA+ICsNCj4gPiArQ0xPVURIVl9N RU1fTk9ERV9JTkZPDQo+IENsb3VkSHZNZW1Ob2RlW0NMT1VESFZfTUFYX01FTV9OT0RFX05VTV07 DQo+ID4gKw0KPiA+ICtSRVRVUk5fU1RBVFVTDQo+ID4gK0VGSUFQSQ0KPiA+ICtDbG91ZEh2Vmly dE1lbUluZm9QZWlMaWJDb25zdHJ1Y3RvciAoDQo+ID4gKyAgVk9JRA0KPiA+ICsgICkNCj4gPiAr ew0KPiA+ICsgIFZPSUQgICAgICAgICAgICpEZXZpY2VUcmVlQmFzZTsNCj4gPiArICBFRklfUkVT T1VSQ0VfQVRUUklCVVRFX1RZUEUgIFJlc291cmNlQXR0cmlidXRlczsNCj4gPiArICBJTlQzMiAg ICAgICAgICBOb2RlLCBQcmV2Ow0KPiA+ICsgIFVJTlQ2NCAgICAgICAgIEZpck1lbU5vZGVCYXNl LCBGaXJNZW1Ob2RlU2l6ZTsNCj4gPiArICBVSU5UNjQgICAgICAgICBDdXJCYXNlLCBNZW1CYXNl Ow0KPiA+ICsgIFVJTlQ2NCAgICAgICAgIEN1clNpemU7DQo+ID4gKyAgQ09OU1QgQ0hBUjggICAg KlR5cGU7DQo+ID4gKyAgSU5UMzIgICAgICAgICAgTGVuOw0KPiA+ICsgIENPTlNUIFVJTlQ2NCAg ICpSZWdQcm9wOw0KPiA+ICsgIFJFVFVSTl9TVEFUVVMgIFBjZFN0YXR1czsNCj4gPiArICBVSU5U OCAgICAgICAgICBJbmRleDsNCj4gPiArDQo+ID4gKyAgWmVyb01lbSAoQ2xvdWRIdk1lbU5vZGUs IHNpemVvZihDbG91ZEh2TWVtTm9kZSkpOw0KPiA+ICsNCj4gPiArICBGaXJNZW1Ob2RlQmFzZSA9 IDA7DQo+ID4gKyAgRmlyTWVtTm9kZVNpemUgPSAwOw0KPiA+ICsgIEluZGV4ID0gMDsNCj4gPiAr ICBNZW1CYXNlID0gRml4ZWRQY2RHZXQ2NCAoUGNkU3lzdGVtTWVtb3J5QmFzZSk7DQo+IFJlc291 cmNlQXR0cmlidXRlcw0KPiA+ICsgPSAoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIEVG SV9SRVNPVVJDRV9BVFRSSUJVVEVfUFJFU0VOVCB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgIEVGSV9SRVNPVVJDRV9BVFRSSUJVVEVfSU5JVElBTElaRUQgfA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBFRklfUkVTT1VSQ0VfQVRUUklCVVRFX1dSSVRFX0JBQ0tfQ0FDSEVBQkxF IHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1JFU09VUkNFX0FUVFJJQlVURV9U RVNURUQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiArICBEZXZpY2VUcmVl QmFzZSA9IChWT0lEICopKFVJTlROKVBjZEdldDY0DQo+ID4gKyAoUGNkRGV2aWNlVHJlZUluaXRp YWxCYXNlQWRkcmVzcyk7DQo+ID4gKyAgaWYgKERldmljZVRyZWVCYXNlID09IE5VTEwpIHsNCj4g PiArICAgIHJldHVybiBFRklfTk9UX0ZPVU5EOw0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgLy8N Cj4gPiArICAvLyBNYWtlIHN1cmUgd2UgaGF2ZSBhIHZhbGlkIGRldmljZSB0cmVlIGJsb2IgIC8v ICBpZg0KPiA+ICsgKGZkdF9jaGVja19oZWFkZXIgKERldmljZVRyZWVCYXNlKSAhPSAwKSB7DQo+ ID4gKyAgICByZXR1cm4gRUZJX05PVF9GT1VORDsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8v DQo+ID4gKyAgLy8gTG9vayBmb3IgdGhlIGxvd2VzdCBtZW1vcnkgbm9kZQ0KPiA+ICsgIC8vDQo+ ID4gKyAgZm9yIChQcmV2ID0gMDsgOyBQcmV2ID0gTm9kZSkgew0KPiA+ICsgICAgTm9kZSA9IGZk dF9uZXh0X25vZGUgKERldmljZVRyZWVCYXNlLCBQcmV2LCBOVUxMKTsNCj4gPiArICAgIGlmIChO b2RlIDwgMCkgew0KPiA+ICsgICAgICBicmVhazsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAg ICAvLw0KPiA+ICsgICAgLy8gQ2hlY2sgZm9yIG1lbW9yeSBub2RlDQo+ID4gKyAgICAvLw0KPiA+ ICsgICAgVHlwZSA9IGZkdF9nZXRwcm9wIChEZXZpY2VUcmVlQmFzZSwgTm9kZSwgImRldmljZV90 eXBlIiwgJkxlbik7DQo+ID4gKyAgICBpZiAoVHlwZSAmJiAoQXNjaWlTdHJuQ21wIChUeXBlLCAi bWVtb3J5IiwgTGVuKSA9PSAwKSkgew0KPiANCj4gW1NBTUldIEFwb2xvZ2llcyBJIG1pc3NlZCB0 aGlzIGluIG15IGVhcmxpZXIgcmV2aWV3LiBUaGUgYWJvdmUgY2hlY2sgc2hvdWxkDQo+IGJlDQo+ IA0KPiAgwqArIGlmICgoVHlwZSAhPTApICYmIChBc2NpaVN0cm5DbXAgKFR5cGUsICJtZW1vcnki LCBMZW4pID09IDApKSB7DQo+IA0KPiBhcyBUeXBlIGlzIG5vdCBib29sZWFuLg0KPiANCj4gWy9T QU1JXQ0KPiANCj4gPiArICAgICAgLy8NCj4gPiArICAgICAgLy8gR2V0IHRoZSAncmVnJyBwcm9w ZXJ0eSBvZiB0aGlzIG5vZGUuIEZvciBub3csIHdlIHdpbGwgYXNzdW1lDQo+ID4gKyAgICAgIC8v IHR3byA4IGJ5dGUgcXVhbnRpdGllcyBmb3IgYmFzZSBhbmQgc2l6ZSwgcmVzcGVjdGl2ZWx5Lg0K PiA+ICsgICAgICAvLw0KPiA+ICsgICAgICBSZWdQcm9wID0gZmR0X2dldHByb3AgKERldmljZVRy ZWVCYXNlLCBOb2RlLCAicmVnIiwgJkxlbik7DQo+ID4gKyAgICAgIGlmICgoUmVnUHJvcCAhPSAw KSAmJiAoTGVuID09ICgyICogc2l6ZW9mIChVSU5UNjQpKSkpIHsNCj4gPiArICAgICAgICBDdXJC YXNlID0gZmR0NjRfdG9fY3B1IChSZWFkVW5hbGlnbmVkNjQgKFJlZ1Byb3ApKTsNCj4gPiArICAg ICAgICBDdXJTaXplID0gZmR0NjRfdG9fY3B1IChSZWFkVW5hbGlnbmVkNjQgKFJlZ1Byb3AgKyAx KSk7DQo+ID4gKw0KPiA+ICsgICAgICAgIERFQlVHICgoDQo+ID4gKyAgICAgICAgICBERUJVR19J TkZPLA0KPiA+ICsgICAgICAgICAgIiVhOiBTeXN0ZW0gUkFNIEAgMHglbHggLSAweCVseFxuIiwN Cj4gPiArICAgICAgICAgIF9fRlVOQ1RJT05fXywNCj4gPiArICAgICAgICAgIEN1ckJhc2UsDQo+ ID4gKyAgICAgICAgICBDdXJCYXNlICsgQ3VyU2l6ZSAtIDENCj4gPiArICAgICAgICAgICkpOw0K PiA+ICsNCj4gPiArICAgICAgICAvLyBXZSBzaG91bGQgYnVpbGQgSG9iIHNlcGVyYXRlbHkgZm9y IHRoZSBtZW1vcnkgbm9kZSBleGNlcHQgdGhlDQo+IGZpcnN0IG9uZQ0KPiA+ICsgICAgICAgIGlm IChDdXJCYXNlICE9IE1lbUJhc2UpIHsNCj4gPiArICAgICAgICAgIEJ1aWxkUmVzb3VyY2VEZXNj cmlwdG9ySG9iICgNCj4gPiArICAgICAgICAgICAgRUZJX1JFU09VUkNFX1NZU1RFTV9NRU1PUlks DQo+ID4gKyAgICAgICAgICAgIFJlc291cmNlQXR0cmlidXRlcywNCj4gPiArICAgICAgICAgICAg Q3VyQmFzZSwNCj4gPiArICAgICAgICAgICAgQ3VyU2l6ZQ0KPiA+ICsgICAgICAgICAgICApOw0K PiA+ICsgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICBGaXJNZW1Ob2RlQmFzZSA9IEN1 ckJhc2U7DQo+ID4gKyAgICAgICAgICBGaXJNZW1Ob2RlU2l6ZSA9IEN1clNpemU7DQo+ID4gKyAg ICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICBDbG91ZEh2TWVtTm9kZVtJbmRleF0uQmFzZSA9 IEN1ckJhc2U7DQo+ID4gKyAgICAgICAgQ2xvdWRIdk1lbU5vZGVbSW5kZXhdLlNpemUgPSBDdXJT aXplOw0KPiA+ICsgICAgICAgIEluZGV4Kys7DQo+ID4gKw0KPiA+ICsgICAgICAgIGlmIChJbmRl eCA+PSBDTE9VREhWX01BWF9NRU1fTk9ERV9OVU0pIHsNCj4gPiArICAgICAgICAgIERFQlVHICgo DQo+ID4gKyAgICAgICAgICAgIERFQlVHX1dBUk4sDQo+ID4gKyAgICAgICAgICAgICIlYTogbWVt b3J5IG5vZGUgbGFyZ2VyIHRoYW4gJWQgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW50byBNZW1vcnkN Cj4gU3lzdGVtXG4iLA0KPiA+ICsgICAgICAgICAgICBfX0ZVTkNUSU9OX18sDQo+ID4gKyAgICAg ICAgICAgIENMT1VESFZfTUFYX01FTV9OT0RFX05VTQ0KPiA+ICsgICAgICAgICAgICApKTsNCj4g PiArICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgICAgfSBlbHNlIHsN Cj4gPiArICAgICAgICBERUJVRyAoKA0KPiA+ICsgICAgICAgICAgREVCVUdfRVJST1IsDQo+ID4g KyAgICAgICAgICAiJWE6IEZhaWxlZCB0byBwYXJzZSBGRFQgbWVtb3J5IG5vZGVcbiIsDQo+ID4g KyAgICAgICAgICBfX0ZVTkNUSU9OX18NCj4gPiArICAgICAgICAgICkpOw0KPiA+ICsgICAgICB9 DQo+ID4gKyAgICB9DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIE1ha2Ug c3VyZSB0aGUgc3RhcnQgb2YgRFJBTSBtYXRjaGVzIG91ciBleHBlY3RhdGlvbiAgLy8gIGlmDQo+ ID4gKyAoRml4ZWRQY2RHZXQ2NCAoUGNkU3lzdGVtTWVtb3J5QmFzZSkgIT0gRmlyTWVtTm9kZUJh c2UpIHsNCj4gPiArICAgIHJldHVybiBFRklfTk9UX0ZPVU5EOw0KPiA+ICsgIH0NCj4gPiArICBQ Y2RTdGF0dXMgPSBQY2RTZXQ2NFMgKFBjZFN5c3RlbU1lbW9yeVNpemUsIEZpck1lbU5vZGVTaXpl KTsNCj4gPiArIEFTU0VSVF9SRVRVUk5fRVJST1IgKFBjZFN0YXR1cyk7ICBBU1NFUlQgKA0KPiA+ ICsgICAgKCgoVUlOVDY0KVBjZEdldDY0IChQY2RGZEJhc2VBZGRyZXNzKSArDQo+ID4gKyAgICAg IChVSU5UNjQpUGNkR2V0MzIgKFBjZEZkU2l6ZSkpIDw9IEZpck1lbU5vZGVCYXNlKSB8fA0KPiA+ ICsgICAgKChVSU5UNjQpUGNkR2V0NjQgKFBjZEZkQmFzZUFkZHJlc3MpID49IChGaXJNZW1Ob2Rl QmFzZSArDQo+IEZpck1lbU5vZGVTaXplKSkNCj4gPiArICAgICk7DQo+ID4gKw0KPiA+ICsgIHJl dHVybiBSRVRVUk5fU1VDQ0VTUzsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgUmV0 dXJuIHRoZSBWaXJ0dWFsIE1lbW9yeSBNYXAgb2YgeW91ciBwbGF0Zm9ybQ0KPiA+ICsNCj4gPiAr ICBUaGlzIFZpcnR1YWwgTWVtb3J5IE1hcCBpcyB1c2VkIGJ5IE1lbW9yeUluaXRQZWkgTW9kdWxl IHRvDQo+ID4gKyBpbml0aWFsaXplIHRoZSBNTVUgIG9uIHlvdXIgcGxhdGZvcm0uDQo+ID4gKw0K PiA+ICsgIEBwYXJhbVtvdXRdICAgVmlydHVhbE1lbW9yeU1hcCAgICBBcnJheSBvZg0KPiBBUk1f TUVNT1JZX1JFR0lPTl9ERVNDUklQVE9SDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRlc2NyaWJpbmcgYSBQaHlzaWNhbC10by1WaXJ0dWFsIE1lbW9yeQ0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nLiBUaGlzIGFycmF5IG11 c3QgYmUgZW5kZWQgYnkgYQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB6ZXJvLWZpbGxlZCBlbnRyeS4gVGhlIGFsbG9jYXRlZCBtZW1vcnkNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBub3QgYmUgZnJlZWQuDQo+ID4gKw0KPiA+ ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtBcm1WaXJ0R2V0TWVtb3J5TWFwICgNCj4gPiArICBPVVQg QVJNX01FTU9SWV9SRUdJT05fREVTQ1JJUFRPUiAgKipWaXJ0dWFsTWVtb3J5TWFwDQo+ID4gKyAg KQ0KPiA+ICt7DQo+ID4gKyAgQVJNX01FTU9SWV9SRUdJT05fREVTQ1JJUFRPUiAgKlZpcnR1YWxN ZW1vcnlUYWJsZTsNCj4gPiArICBVSU5UOCBJbmRleCA9IDAsIE1lbU5vZGVJbmRleCA9IDA7DQo+ ID4gKw0KPiA+ICsgIEFTU0VSVCAoVmlydHVhbE1lbW9yeU1hcCAhPSBOVUxMKTsNCj4gPiArDQo+ ID4gKyAgVmlydHVhbE1lbW9yeVRhYmxlID0gQWxsb2NhdGVQb29sICgNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgIHNpemVvZiAoQVJNX01FTU9SWV9SRUdJT05fREVTQ1JJUFRPUikgKg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgTUFYX1ZJUlRVQUxfTUVNT1JZX01BUF9ERVND UklQVE9SUw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiArDQo+ID4gKyAg aWYgKFZpcnR1YWxNZW1vcnlUYWJsZSA9PSBOVUxMKSB7DQo+ID4gKyAgICBERUJVRyAoKERFQlVH X0VSUk9SLCAiJWE6IEVycm9yOiBGYWlsZWQgQWxsb2NhdGVQb29sKClcbiIsDQo+IF9fRlVOQ1RJ T05fXykpOw0KPiA+ICsgICAgcmV0dXJuOw0KPiA+ICsgIH0NCj4gPiArICAgIC8vIFN5c3RlbSBE UkFNDQo+ID4gKyAgd2hpbGUgKChNZW1Ob2RlSW5kZXggPCBDTE9VREhWX01BWF9NRU1fTk9ERV9O VU0pICYmDQo+IChDbG91ZEh2TWVtTm9kZVtNZW1Ob2RlSW5kZXhdLlNpemUgIT0gMCkpIHsNCj4g PiArICAgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uUGh5c2ljYWxCYXNlID0NCj4gQ2xvdWRI dk1lbU5vZGVbTWVtTm9kZUluZGV4XS5CYXNlOw0KPiA+ICsgICAgVmlydHVhbE1lbW9yeVRhYmxl W0luZGV4XS5WaXJ0dWFsQmFzZSAgPQ0KPiBDbG91ZEh2TWVtTm9kZVtNZW1Ob2RlSW5kZXhdLkJh c2U7DQo+ID4gKyAgICBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICA9DQo+ IENsb3VkSHZNZW1Ob2RlW01lbU5vZGVJbmRleF0uU2l6ZTsNCj4gPiArICAgIFZpcnR1YWxNZW1v cnlUYWJsZVtJbmRleF0uQXR0cmlidXRlcyAgID0NCj4gQVJNX01FTU9SWV9SRUdJT05fQVRUUklC VVRFX1dSSVRFX0JBQ0s7DQo+ID4gKw0KPiA+ICsgICAgREVCVUcgKCgNCj4gPiArICAgICAgREVC VUdfSU5GTywNCj4gPiArICAgICAgIiVhOiBEdW1waW5nIFN5c3RlbSBEUkFNIE1lbW9yeSBOb2Rl JWQgTWFwOlxuIg0KPiA+ICsgICAgICAiXHRQaHlzaWNhbEJhc2U6IDB4JWxYXG4iDQo+ID4gKyAg ICAgICJcdFZpcnR1YWxCYXNlOiAweCVsWFxuIg0KPiA+ICsgICAgICAiXHRMZW5ndGg6IDB4JWxY XG4iLA0KPiA+ICsgICAgICBfX0ZVTkNUSU9OX18sDQo+ID4gKyAgICAgIE1lbU5vZGVJbmRleCwN Cj4gPiArICAgICAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5QaHlzaWNhbEJhc2UsDQo+ID4g KyAgICAgIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uVmlydHVhbEJhc2UsDQo+ID4gKyAgICAg IFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uTGVuZ3RoDQo+ID4gKyAgICAgICkpOw0KPiA+ICsg ICAgSW5kZXgrKzsNCj4gPiArICAgIE1lbU5vZGVJbmRleCsrOw0KPiA+ICsgIH0NCj4gPiArICAv LyBNZW1vcnkgbWFwcGVkIHBlcmlwaGVyYWxzIChVQVJULCBSVEMsIEdJQywgdmlydGlvLW1taW8s IGV0YykNCj4gPiArIFZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0uUGh5c2ljYWxCYXNlID0gTUFD SF9WSVJUX1BFUklQSF9CQVNFOw0KPiA+ICsgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5WaXJ0 dWFsQmFzZSAgPSBNQUNIX1ZJUlRfUEVSSVBIX0JBU0U7DQo+ID4gKyAgVmlydHVhbE1lbW9yeVRh YmxlW0luZGV4XS5MZW5ndGggICAgICAgPSBNQUNIX1ZJUlRfUEVSSVBIX1NJWkU7DQo+ID4gKyAg VmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5BdHRyaWJ1dGVzICAgPQ0KPiBBUk1fTUVNT1JZX1JF R0lPTl9BVFRSSUJVVEVfREVWSUNFOw0KPiA+ICsgIEluZGV4Kys7DQo+ID4gKw0KPiA+ICsgIC8v IE1hcCB0aGUgRlYgcmVnaW9uIGFzIG5vcm1hbCBleGVjdXRhYmxlIG1lbW9yeQ0KPiA+ICsgVmly dHVhbE1lbW9yeVRhYmxlW0luZGV4XS5QaHlzaWNhbEJhc2UgPSBQY2RHZXQ2NA0KPiA+ICsgKFBj ZEZ2QmFzZUFkZHJlc3MpOyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5WaXJ0dWFsQmFzZSAg PQ0KPiBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlBoeXNpY2FsQmFzZTsNCj4gPiArICBWaXJ0 dWFsTWVtb3J5VGFibGVbSW5kZXhdLkxlbmd0aCAgICAgICA9IEZpeGVkUGNkR2V0MzIgKFBjZEZ2 U2l6ZSk7DQo+ID4gKyAgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5BdHRyaWJ1dGVzICAgPQ0K PiBBUk1fTUVNT1JZX1JFR0lPTl9BVFRSSUJVVEVfV1JJVEVfQkFDSzsNCj4gPiArICBJbmRleCsr Ow0KPiA+ICsNCj4gPiArICAvLyBNZW1vcnkgbWFwcGVkIGZvciAzMmJpdCBkZXZpY2UgKGxpa2Ug VFBNKQ0KPiA+ICsgVmlydHVhbE1lbW9yeVRhYmxlW0luZGV4XS5QaHlzaWNhbEJhc2UgPSBUT1Bf MzJCSVRfREVWSUNFX0JBU0U7DQo+ID4gKyBWaXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLlZpcnR1 YWxCYXNlICA9IFRPUF8zMkJJVF9ERVZJQ0VfQkFTRTsNCj4gPiArICBWaXJ0dWFsTWVtb3J5VGFi bGVbSW5kZXhdLkxlbmd0aCAgICAgICA9IFRPUF8zMkJJVF9ERVZJQ0VfU0laRTsNCj4gPiArICBW aXJ0dWFsTWVtb3J5VGFibGVbSW5kZXhdLkF0dHJpYnV0ZXMgICA9DQo+IEFSTV9NRU1PUllfUkVH SU9OX0FUVFJJQlVURV9ERVZJQ0U7DQo+ID4gKyAgSW5kZXgrKzsNCj4gPiArDQo+ID4gKyAgLy8g RW5kIG9mIFRhYmxlDQo+ID4gKyAgWmVyb01lbSAoJlZpcnR1YWxNZW1vcnlUYWJsZVtJbmRleF0s IHNpemVvZg0KPiA+ICsgKEFSTV9NRU1PUllfUkVHSU9OX0RFU0NSSVBUT1IpKTsNCj4gPiArDQo+ ID4gKyAgKlZpcnR1YWxNZW1vcnlNYXAgPSBWaXJ0dWFsTWVtb3J5VGFibGU7IH0NCj4gPiBkaWZm IC0tZ2l0DQo+ID4gYS9Bcm1WaXJ0UGtnL0xpYnJhcnkvQ2xvdWRIdlZpcnRNZW1JbmZvTGliL0Ns b3VkSHZWaXJ0TWVtSW5mb0xpYi5oDQo+ID4gYi9Bcm1WaXJ0UGtnL0xpYnJhcnkvQ2xvdWRIdlZp cnRNZW1JbmZvTGliL0Nsb3VkSHZWaXJ0TWVtSW5mb0xpYi5oDQo+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwLi5lNjI0MzczNDcyDQo+ID4gLS0tIC9kZXYvbnVs bA0KPiA+ICsrKw0KPiBiL0FybVZpcnRQa2cvTGlicmFyeS9DbG91ZEh2VmlydE1lbUluZm9MaWIv Q2xvdWRIdlZpcnRNZW1JbmZvTGliLmgNCj4gPiBAQCAtMCwwICsxLDQyIEBADQo+ID4gKy8qKiBA ZmlsZQ0KPiA+ICsNCj4gPiArICBDb3B5cmlnaHQgKGMpIDIwMjIsIEFybSBMaW1pdGVkLiBBbGwg cmlnaHRzIHJlc2VydmVkLg0KPiA+ICsNCj4gPiArICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsNCj4gPiArKiovDQo+ID4gKw0KPiA+ICsjaWZuZGVm IF9DTE9VREhWX1ZJUlRfTUVNX0lORk9fTElCX0hfICNkZWZpbmUNCj4gPiArX0NMT1VESFZfVklS VF9NRU1fSU5GT19MSUJfSF8NCj4gPiArDQo+ID4gKy8vDQo+ID4gKy8vIENsb3VkIEh5cGVydmlz b3IgbWF5IGhhdmUgbW9yZSB0aGFuIG9uZSBtZW1vcnkgbm9kZXMuIEV2ZW4gdGhlcmUNCj4gPiAr aXMgbm8gbGltaXQgZm9yIHRoYXQsIC8vIEkgdGhpbmsgMTAgaXMgZW5vdWdoIGluIGdlbmVyYWwu DQo+ID4gKy8vDQo+ID4gKyNkZWZpbmUgQ0xPVURIVl9NQVhfTUVNX05PREVfTlVNIDEwDQo+ID4g Kw0KPiA+ICsvLyBSZWNvcmQgbWVtb3J5IG5vZGUgaW5mbyAoYmFzZSBhZGRyZXNzIGFuZCBzaXpl KSB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gKyAgVUlOVDY0IEJhc2U7DQo+ID4gKyAgVUlOVDY0IFNp emU7DQo+ID4gK30gQ0xPVURIVl9NRU1fTk9ERV9JTkZPOw0KPiA+ICsNCj4gPiArLy8gTnVtYmVy IG9mIFZpcnR1YWwgTWVtb3J5IE1hcCBEZXNjcmlwdG9ycyAjZGVmaW5lDQo+ID4gK01BWF9WSVJU VUFMX01FTU9SWV9NQVBfREVTQ1JJUFRPUlMgICg0ICsNCj4gQ0xPVURIVl9NQVhfTUVNX05PREVf TlVNKQ0KPiA+ICsNCj4gPiArLy8NCj4gPiArLy8gQ29yZSBwZXJpcGhlcmFscyBzdWNoIGFzIHRo ZSBVQVJULCB0aGUgR0lDIGFuZCB0aGUgUlRDIGFyZSAvLyBhbGwNCj4gPiArbWFwcGVkIGluIHRo ZSAnbWlzY2VsbGFuZW91cyBkZXZpY2UgSS9PJyByZWdpb24sIHdoaWNoIHdlIGp1c3QgbWFwIC8v DQo+ID4gK2luIGl0cyBlbnRpcmV0eSByYXRoZXIgdGhhbiBkZXZpY2UgYnkgZGV2aWNlLiBOb3Rl IHRoYXQgaXQgZG9lcyBub3QNCj4gPiArLy8gY292ZXIgYW55IG9mIHRoZSBOT1IgZmxhc2ggYmFu a3Mgb3IgUENJIHJlc291cmNlIHdpbmRvd3MuDQo+ID4gKy8vDQo+ID4gKyNkZWZpbmUgTUFDSF9W SVJUX1BFUklQSF9CQVNFICAweDAwNDAwMDAwICNkZWZpbmUNCj4gPiArTUFDSF9WSVJUX1BFUklQ SF9TSVpFICAweDBGQzAwMDAwDQo+ID4gKw0KPiA+ICsvLw0KPiA+ICsvLyBUaGUgdG9wIG9mIHRo ZSA2NE0gbWVtb3J5IHJlZ2lvbiB1bmRlciA0R0IgcmVzZXJ2ZWQgZm9yIGRldmljZSAvLw0KPiA+ ICsjZGVmaW5lIFRPUF8zMkJJVF9ERVZJQ0VfQkFTRSAgMHhGQzAwMDAwMCAjZGVmaW5lDQo+ID4g K1RPUF8zMkJJVF9ERVZJQ0VfU0laRSAgMHgwNDAwMDAwMA0KPiA+ICsNCj4gPiArI2VuZGlmIC8v IF9DTE9VREhWX1ZJUlRfTUVNX0lORk9fTElCX0hfDQo+ID4gZGlmZiAtLWdpdA0KPiA+DQo+IGEv QXJtVmlydFBrZy9MaWJyYXJ5L0Nsb3VkSHZWaXJ0TWVtSW5mb0xpYi9DbG91ZEh2VmlydE1lbUlu Zm9QZWlMaWIuaQ0KPiBuDQo+ID4gZg0KPiA+DQo+IGIvQXJtVmlydFBrZy9MaWJyYXJ5L0Nsb3Vk SHZWaXJ0TWVtSW5mb0xpYi9DbG91ZEh2VmlydE1lbUluZm9QZWlMaWIuaQ0KPiBuDQo+ID4gZg0K PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uMzA2MjY3NzZh ZQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysNCj4gYi9Bcm1WaXJ0UGtnL0xpYnJhcnkvQ2xv dWRIdlZpcnRNZW1JbmZvTGliL0Nsb3VkSHZWaXJ0TWVtSW5mb1BlaUxpDQo+ID4gKysrIGIuaW5m DQo+ID4gQEAgLTAsMCArMSw0NiBAQA0KPiA+ICsvKiogQGZpbGUNCj4gPiArDQo+ID4gKyAgQ29w eXJpZ2h0IChjKSAyMDIyLCBBcm0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiAr DQo+ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4g PiArDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArW0RlZmluZXNdDQo+ID4gKyAgSU5GX1ZFUlNJT04g ICAgICAgICAgICAgICAgICAgID0gMHgwMDAxMDAxQg0KPiA+ICsgIEJBU0VfTkFNRSAgICAgICAg ICAgICAgICAgICAgICA9IENsb3VkSHZWaXJ0TWVtSW5mb1BlaUxpYg0KPiA+ICsgIEZJTEVfR1VJ RCAgICAgICAgICAgICAgICAgICAgICA9IGM3YWRhMjMzLWQzNWItNDljMy1hYTUxLWUyYjVjZDgw YzkxMA0KPiA+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IEJBU0UNCj4gPiAr ICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gPiArICBMSUJSQVJZX0NM QVNTICAgICAgICAgICAgICAgICAgPSBBcm1WaXJ0TWVtSW5mb0xpYnxQRUlNDQo+ID4gKyAgQ09O U1RSVUNUT1IgICAgICAgICAgICAgICAgICAgID0gQ2xvdWRIdlZpcnRNZW1JbmZvUGVpTGliQ29u c3RydWN0b3INCj4gPiArDQo+ID4gK1tTb3VyY2VzXQ0KPiA+ICsgIENsb3VkSHZWaXJ0TWVtSW5m b0xpYi5jDQo+ID4gKyAgQ2xvdWRIdlZpcnRNZW1JbmZvTGliLmgNCj4gPiArDQo+ID4gK1tQYWNr YWdlc10NCj4gPiArICBBcm1Qa2cvQXJtUGtnLmRlYw0KPiA+ICsgIEFybVZpcnRQa2cvQXJtVmly dFBrZy5kZWMNCj4gPiArICBFbWJlZGRlZFBrZy9FbWJlZGRlZFBrZy5kZWMNCj4gPiArICBNZGVN b2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4g Kw0KPiA+ICtbTGlicmFyeUNsYXNzZXNdDQo+ID4gKyAgQXJtTGliDQo+ID4gKyAgQmFzZU1lbW9y eUxpYg0KPiA+ICsgIERlYnVnTGliDQo+ID4gKyAgRmR0TGliDQo+ID4gKyAgTWVtb3J5QWxsb2Nh dGlvbkxpYg0KPiA+ICsgIFBjZExpYg0KPiA+ICsNCj4gPiArW1BjZF0NCj4gPiArICBnQXJtVG9r ZW5TcGFjZUd1aWQuUGNkRmRCYXNlQWRkcmVzcw0KPiA+ICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5Q Y2RGdkJhc2VBZGRyZXNzDQo+ID4gKyAgZ0FybVRva2VuU3BhY2VHdWlkLlBjZFN5c3RlbU1lbW9y eUJhc2UNCj4gPiArICBnQXJtVG9rZW5TcGFjZUd1aWQuUGNkU3lzdGVtTWVtb3J5U2l6ZQ0KPiA+ ICsNCj4gPiArW0ZpeGVkUGNkXQ0KPiA+ICsgIGdBcm1Ub2tlblNwYWNlR3VpZC5QY2RGZFNpemUN Cj4gPiArICBnQXJtVG9rZW5TcGFjZUd1aWQuUGNkRnZTaXplDQo+ID4gKyAgZ0FybVZpcnRUb2tl blNwYWNlR3VpZC5QY2REZXZpY2VUcmVlSW5pdGlhbEJhc2VBZGRyZXNzDQo=