From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web11.22909.1670524136376794733 for ; Thu, 08 Dec 2022 10:28:56 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=V2u5NNkc; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1670524136; x=1702060136; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Eysqr02GI0XykLgZV4jxHYTRV+2BA/87lYiXr6dcE9g=; b=V2u5NNkcEFVJ6ZJqO46ci9xynxC785IxIDXAeICgPrtGbDQqKT/k8+gd lEnW8QS5HEg+bPOh9eAaD2mgww59yWIh8v7t6g8iu0uGJm53z9Bxg/1FM RzHxIalxR0wBusFDgaGjf/T5qYuWJXT34L6Rveg19z6kPw6M4HvEkFamA NTj88ZoyVQd9cbKeCN4s6vgx7rMAOHIrXH8JOEHfMMOlenGbotJJ5+GAQ D/RMQYvNXeGhaCekwumUr7eV/N8CNsBqQKo0H6krkb2EIrnyN01A5OF7Z z6RQfG1IckokhVRqs30NxX/A+vEf8RiCYCPL6YeVHQwTG+qxDpUX7RLel Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10555"; a="296941557" X-IronPort-AV: E=Sophos;i="5.96,227,1665471600"; d="scan'208";a="296941557" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Dec 2022 10:28:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10555"; a="640731048" X-IronPort-AV: E=Sophos;i="5.96,227,1665471600"; d="scan'208";a="640731048" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga007.jf.intel.com with ESMTP; 08 Dec 2022 10:28:50 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 8 Dec 2022 10:28:49 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Thu, 8 Dec 2022 10:28:49 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Thu, 8 Dec 2022 10:28:49 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Thu, 8 Dec 2022 10:28:49 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gdirU9FZJqXajEYxrjhksX64w4EUf+rOq4kA24+z+RjMO0LsHu6SPcEngbdX3fke/5bZ41md6nnkYJu3i2cGM9IYAZznswmSqpjsHDGg9D29DNduXNSoJ9iJVmpx2dA1ECQP1/pDUG2eW01NYcDLfkX5P8iYEsCYdb6IJva+o7u0T257asCjgsyvqMZDJuDBTNPugc4irnpyQ8Cryu9ChdxtH5BVImG8x1UUw5P9JAInmm3s+mn7bjtTWQHBQkc5IN/hM8Ka5dW8ud24qo4iFD0xVzjBxqhEw6/7A+xo9VHyO0cKfgXLiJyl03yj5YyDqjOP+YwU9FSSHjHsL2T6Sw== 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=Eysqr02GI0XykLgZV4jxHYTRV+2BA/87lYiXr6dcE9g=; b=M5sgQhBPm49A9rU//RFks98+8e7VmORhoE548E9R2KTKt9HJAx5OkZqIbizT8D/dk5MMVbEvkLcXlFFmeHB4Vew2rFR0qIrTSDvZbark7i+XvfM1wLjeznJTf7cCUpLiM/Gg/+xvTVlSoXokysjShltFgftfD3BUoqpjnL6aF0ueagf+Gs92KGj/gtnEJzvPeYhQyg0XWvKxQq6nFUu8cwD8E6JIHA4N5nPZHCXqY/PBG963JSdWiVGYSJGcMiYXHAzj6v4Fvwnc75jP5it4h0VaUB960ooDirouBr9ZREgO+L77Okj2YW5dus/4p+91mb3xS3Bui2+NklVTrE7WLA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by MN0PR11MB6087.namprd11.prod.outlook.com (2603:10b6:208:3cd::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Thu, 8 Dec 2022 18:28:46 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::5b3:916c:706d:b41b%6]) with mapi id 15.20.5880.016; Thu, 8 Dec 2022 18:28:46 +0000 From: "Michael D Kinney" To: Ard Biesheuvel , "devel@edk2.groups.io" , "Kinney, Michael D" CC: "Ni, Ray" , "Gao, Zhichao" Subject: Re: [edk2-devel] [PATCH] ShellPkg: Avoid corrupting installed device path protocols Thread-Topic: [edk2-devel] [PATCH] ShellPkg: Avoid corrupting installed device path protocols Thread-Index: AQHZClbUinpGwqLgmkaFxYxlqW/6X65kNccQgAAI5gCAAA6Y8A== Date: Thu, 8 Dec 2022 18:28:46 +0000 Message-ID: References: <20221207161245.2554193-1-ardb@kernel.org> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO1PR11MB4929:EE_|MN0PR11MB6087:EE_ x-ms-office365-filtering-correlation-id: 5a96890f-3851-45b3-b442-08dad94a0b4f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cbxW3J49iTeF+HoJd4hfb4VTBVfOBeGZLN5P6p9EkYy7jpM++xEtAQ+NbbjGO0RSdRMs8HYuYXSK/E67gb2wU1kg+xGNhLGdj5+4BLwrrCo/+bXMvUST5oJO2F5ODe8ycG67BeMdS07SByDz2ZhHPYYktd6zbgB/RHgWlaQ8KMosnVnpHSqCP9aVSYSt9N/Uju+AfEBgs/+dK9gRoV0SqyDM/1mJa4NLmwn/YoX0vDRc5vPvBR6Mv2j26UlxU1p1Ym+E7eljQbVUIMyEKTCAtV8vfAsRn8ku7L0+PkhkthgaQXT950lmX8BBgZEyuPsA6DFTTVrrWk58vKZmYOW8c/SY64ohhVAaCI19cbRicPbPMHISR/3sbYnYi4r/UhZxF4fGsehjnsr9mxZe69g1SjDqsBqtoZbpeoxNcRfgt4LnKB7AvAMxONpV9GrRj3sGJ9K6cUqiEV7NeyVjTOt7R2ZQpJ2swx+gfOQzYLxkFbnFQ9rAtK5wAwB9iHblSh2K6X1QRQn1YceAD7yvjL8adV0oTFItEyrj/s1KZdvFgiwY2SZmz1bOyxFcPyEKjBZu0nQJ8vk5zBah/y9Jd1o9EF3Xyrwo7fi+fUBF4SqM3BHgD63sdFZufN1mqRw2nmpIuayCQ8Me1JMBfhCQhXsoNvCSdRuU1bxHV1Llr98QtcrFmh9ubAQ8VVn45NLpuhwYPlrd5JWQKG4Kaj6wM2AoOoMdUCofGvQlbst3rmZXoNTcQfjTR15/3JRx3EnZDt3di77H10ADtULDm4jRKS3x+w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(136003)(376002)(346002)(366004)(39860400002)(396003)(451199015)(186003)(66899015)(316002)(19627235002)(966005)(54906003)(478600001)(71200400001)(110136005)(33656002)(82960400001)(55016003)(86362001)(38070700005)(83380400001)(26005)(6506007)(7696005)(122000001)(107886003)(76116006)(9686003)(38100700002)(2906002)(41300700001)(52536014)(5660300002)(53546011)(66446008)(66946007)(8676002)(8936002)(66476007)(66556008)(64756008)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VlN2T1lxZno2ZmpZT1YrRlkxQWFITEpVeGlDSHhjN1E1MUlYU2xrMU5zUFo1?= =?utf-8?B?aHdDSVArckFhZnpSMXdUS2lEUFZUZkljZ3JldUxCUFFGcWdEUE9uWGljRUt3?= =?utf-8?B?bDlpRE9WK293c0pkeGRJNktaVUxObWtQQjFMSWFOaWFidTg0V2tjSlR2QVdr?= =?utf-8?B?SHZaWWZzeGdQOEtRNzMvMnFINjkzYWFhODJPb0IvT3gvRmpPZ3V5dFlmaWZN?= =?utf-8?B?VENyRGlyK1NUNXFJRFovV2VaQ25HdE1GL0thb3ZZV2JVd0doWGJVUnBmNmpt?= =?utf-8?B?ZkR2QUhrVFgrazdqOUExNTBSVVlvY29BUml5dG94cldveld5Z3BHNjBTSGVR?= =?utf-8?B?RTFEQml2YXVGVVZGTWM0S1AxWTViejY1UkUwMDRFNlhPRVRPVkR1Y2pWMG1I?= =?utf-8?B?RUtPeDU5ZzBLMEZoby9KVWxtUEQ0VG1GeWR0U1RFRzNqMkovZ2VpOU9iMUU3?= =?utf-8?B?NVFmaGJCWlVqZHFZK25jYnF1NmRrM3pDeDhmOVlKZER3T0JSWXB4cU5rN2lv?= =?utf-8?B?L3dIZk5DQmV1N0Z2VWk2ODgwdHNUdmdOZ1Ywdm85TXgvNHJtamlFNzVhTlFB?= =?utf-8?B?b1g4TFplR2dDbTR0aGRtTE16MW8rcjRrd0ZkWkY2NlFXTFBCUkNzTDNYcGJk?= =?utf-8?B?L1V6YUdyejRYV1B6M25TalFMcHlhS3lRV3M3ZHczQ0xLR0wwTXNpeXdyUVZD?= =?utf-8?B?YWMvSUoyVFp3WEFwNnB4aDFMY1I3aUNqck9walp6N1JUMUF2RElPMG1UK2hy?= =?utf-8?B?dDRheVZTMlluMGkwNnBHcGY5V1hRa3BsK2FSL01EcC9yTGt6dTAwR21EU3BW?= =?utf-8?B?RkdjQ2ZSaDUrSkZDRlRhREgydndiNEh1MnpUMTNaUlh6RjU0RUFVUzBnaXpl?= =?utf-8?B?STBVQ2hDWVBUdGF4R0lPNVlORTBlWXdzNEIxelZXVkxmb2pUcThFZmQ2dlhq?= =?utf-8?B?WEZGWFk3SmRuNm9DTm1DZldxaXdEYnNVVDNtdGUxdGF3U0paWm9sZ2dvNW1R?= =?utf-8?B?Rm9oSm5JZ1hWemF1T2xXOVRqZHAzN29nT2VvTzBaR0lhNVY1ZzhNMW1wWDll?= =?utf-8?B?cjNaMU8rRHFvUlcvWmZhaUM0Qys3b2tCR2t0ejFrdnVWK3kwbm50a3F2aEhZ?= =?utf-8?B?Ri9Zdkl2NEpaaStlSmZRc0FWdHY4bm11RmxEcWNFaW1qc2xSVDZtNDdINzRm?= =?utf-8?B?V0ZXc1AyWUxhYVNuWmRwYjh1WGRVNmVUUXVRekQ3bE1WVE5yK3B0ODhPSXdY?= =?utf-8?B?MHpmUGJtUXB1WWtRUlNCUnlFanovN0lVeEd2UFVBcUVkQ1ZPRUJEYmRhSXNJ?= =?utf-8?B?SE5TVFFiMUkvekVXeDVqMkRqY1M1Wnd1V3QxM0U1VWpjY1VtQzR3bFhYOStF?= =?utf-8?B?WFZJSnhoRUhFUXVnb0VlOXJmZy93TllKUTh1Q1dxR0Y2bElsU3VrOU42U1lm?= =?utf-8?B?TVp4YTFzTXUxREZ4N3JHN1dSL2JzNGRNbTh4SkJoYWZDcXUyZ1Vua3JYNDND?= =?utf-8?B?cnUxUkVqKzlrTXRGWlFUZTNvOWFhNDdSWTMyOE0vTjFFK1ZabVd1S2dFZXJJ?= =?utf-8?B?dGNEY2NkckNtY3gxMHYzKy9tT2lFcFlVd1VvUERCS3o0MW1MOE9GQTBaU2Qy?= =?utf-8?B?d2d2UTEwVTZVZjhCUXFlbnhjZ0FUeEVTOWthYWhWZk9aUmYxalZOT2NzSS81?= =?utf-8?B?dmN1WXdXdzBYMVI4MEtYQ1gvVm5NZ1N4Z2NaYW82ZWlJNUNtT1haZlk2dzJT?= =?utf-8?B?b1ZCNHJLNW1aMnJlV0EvSEF2RWE1akw0Nk9LQStudTF3WlFydmttUHFHWGds?= =?utf-8?B?eXFiYmRUQktTbmhtTHorMHJFY1B4c3NPU2R2TlhNaWE4NTFpNE5ucFRpQjBR?= =?utf-8?B?L3FpS3FVTUE5cHYwaUY0aUZuUys3ekdBejdHZDYyQVQvNTBYcDhrUXA4R0p4?= =?utf-8?B?TEo4S25BYmNDUWRNMnhrZ09LSnNVOGJzMW90LzN6cldiNFdCQmhpUHZnQU43?= =?utf-8?B?UEdiODE5ME5wTDgvNFhyOUhpeGU5Mkd5RjgyQ3d4MTdPTzhKbVI5R1Z1UzRt?= =?utf-8?B?M2JwVWZMZkdvQ0JTY0crYVA1cTVGeWkwNzIzNzZQRytKTldUeXpMNFA5VmVI?= =?utf-8?B?aVZPL3NmMEtPK0wzaUo5ajV6bHZUaXVXbkpXZ3AyYXl3akJkK1c5VlNPQTl1?= =?utf-8?B?blE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a96890f-3851-45b3-b442-08dad94a0b4f X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2022 18:28:46.6614 (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: Ggog1gZuuIcv2aRHTx/KYEkwyuDAXF5fdgzKNNcL2XW0IpeAda8Rj0/ShpXli8tTgXqcfjbg0brXsI7P5KcoMGAnqWrX4Y2FyNSRQ38CZ6k= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6087 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXJkLA0KDQpGcm9tIHRoaXMgZGVzY3JpcHRpb24sIGl0IGRvZXMgbm90IGxvb2sgbGlrZSBp dCBzaG91bGQgYmUgbW9kaWZ5aW5nIHRoZQ0KY29udGVudHMgb2YgdGhlIGRldmljZSBwYXRoLiAg SnVzdCBwb2ludCB0byB0aGUgZGV2aWNlIHBhdGggZW5kIG5vZGUgdGhhdA0KZm9sbG93cyB0aGUg bWF0Y2ggZm91bmQuDQoNCi8qKg0KICBHZXRzIHRoZSBtYXBwaW5nIHRoYXQgbW9zdCBjbG9zZWx5 IG1hdGNoZXMgdGhlIGRldmljZSBwYXRoLg0KDQogIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgbWFw cGluZyB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgZGV2aWNlIHBhdGggKkRldmljZVBhdGguIElm DQogIHRoZXJlIGlzIG5vIGV4YWN0IG1hdGNoLCB0aGVuIHRoZSBtYXBwaW5nIHdoaWNoIG1vc3Qg Y2xvc2VseSBtYXRjaGVzICpEZXZpY2VQYXRoDQogIGlzIHJldHVybmVkLCBhbmQgKkRldmljZVBh dGggaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUgcmVtYWluaW5nIHBvcnRpb24gb2YgdGhlDQog IGRldmljZSBwYXRoLiBJZiB0aGVyZSBpcyBhbiBleGFjdCBtYXRjaCwgdGhlIG1hcHBpbmcgaXMg cmV0dXJuZWQgYW5kICpEZXZpY2VQYXRoDQogIHBvaW50cyB0byB0aGUgZW5kLW9mLWRldmljZS1w YXRoIG5vZGUuDQoNCiAgQHBhcmFtIERldmljZVBhdGggICAgICAgICAgICAgT24gZW50cnksIHBv aW50cyB0byBhIGRldmljZSBwYXRoIHBvaW50ZXIuIE9uDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGV4aXQsIHVwZGF0ZXMgdGhlIHBvaW50ZXIgdG8gcG9pbnQgdG8gdGhlDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRpb24gb2YgdGhlIGRldmljZSBwYXRoIGFm dGVyIHRoZSBtYXBwaW5nLg0KDQogIEByZXR2YWwgTlVMTCAgICAgICAgICAgICAgICAgIE5vIG1h cHBpbmcgd2FzIGZvdW5kLg0KICBAcmV0dXJuICE9TlVMTCAgICAgICAgICAgICAgICBQb2ludGVy IHRvIE5VTEwtdGVybWluYXRlZCBtYXBwaW5nLiBUaGUgYnVmZmVyDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlzIGNhbGxlZSBhbGxvY2F0ZWQgYW5kIHNob3VsZCBiZSBmcmVlZCBi eSB0aGUgY2FsbGVyLg0KKiovDQpDT05TVCBDSEFSMTYgKg0KRUZJQVBJDQpFZmlTaGVsbEdldE1h cEZyb21EZXZpY2VQYXRoICgNCiAgSU4gT1VUIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgKipE ZXZpY2VQYXRoDQogICk7DQoNCkkgc2VlIHRoaXMgQVBJIHVzZWQgaW4gbWFueSBwbGFjZXMsIGFu ZCBpdCBsb29rcyBsaWtlIGl0IHdvdWxkIGJlDQpkZXN0cnVjdGl2ZSB0byBhbnkgbXVsdGktaW5z dGFuY2UgZGV2aWNlIHBhdGguIE11bHRpLWluc3RhbmNlDQpkZXZpY2UgcGF0aHMgYXJlIHR5cGlj YWxseSB1c2VkIGZvciBjb25zb2xlcywgc28gd2UgbWF5IG5vdCBoYXZlDQpub3RpY2VkIHRoaXMg ZGVzdHJ1Y3RpdmUgYmVoYXZpb3Igd2l0aCBmaWxlIHN5c3RlbSBtYXBwaW5nIHBhdGhzLg0KDQpE aWQgeW91IHRyeSByZW1vdmluZyB0aGUgY2FsbCB0byBTZXREZXZpY2VQYXRoRW5kTm9kZSAoKkRl dmljZVBhdGgpOyAgPw0KDQpUaGFua3MsDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBBcmQgQmllc2hldXZlbCA8YXJkYkBrZXJuZWwub3JnPg0KPiBTZW50 OiBUaHVyc2RheSwgRGVjZW1iZXIgOCwgMjAyMiA5OjIzIEFNDQo+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K PiBDYzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEdhbywgWmhpY2hhbyA8emhpY2hhby5n YW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gU2hlbGxQ a2c6IEF2b2lkIGNvcnJ1cHRpbmcgaW5zdGFsbGVkIGRldmljZSBwYXRoIHByb3RvY29scw0KPiAN Cj4gT24gVGh1LCA4IERlYyAyMDIyIGF0IDE3OjUxLCBNaWNoYWVsIEQgS2lubmV5DQo+IDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBIaSBBcmQsDQo+ID4NCj4g PiBBcmUgeW91IHNheWluZyB0aGF0IENvbnZlcnRFZmlGaWxlUHJvdG9jb2xUb1NoZWxsSGFuZGxl KCkgbW9kaWZpZXMgdGhlIGRldmljZSBwYXRoIHBhc3NlZCBpbj8NCj4gPg0KPiA+IElzIHRoYXQg YSBidWcgaW4gdGhpcyBBUEk/DQo+ID4NCj4gDQo+IE5vLCB0aGUgaXNzdWUgaXMgaW4gRWZpU2hl bGxHZXRNYXBGcm9tRGV2aWNlUGF0aCgpLCB3aGljaCBjYWxscw0KPiBTZXREZXZpY2VQYXRoRW5k Tm9kZSgpIChvbiBsaW5lIDI5Nykgb24gdGhlIHByb3ZpZGVkIGRldmljZSBwYXRoLCB0bw0KPiB0 dXJuIGFuIGVuZC1vZi1pbnN0YW5jZSBub2RlIGludG8gYSBlbmQtb2YtZW50aXJlLWRldmljZS1w YXRoIG5vZGUuIEl0DQo+IGV2ZW4gZG9lcyB0aGlzIGlmIHRoZSBkZXZpY2UgcGF0aCBlbmQgbm9k ZSBlbmRzIHRoZSBlbnRpcmUgZGV2aWNlIHBhdGgNCj4gYWxyZWFkeSwgYW5kIHRoZSByZXN1bHRp bmcgc3RvcmUgcmVzdWx0cyBpbiBhIGZhdWx0IGlmIHRoZSBkZXZpY2UgcGF0aA0KPiBwcm90b2Nv bCBwb2ludHMgdG8gYSBkZXZpY2UgcGF0aCBpbiAucm9kYXRhLg0KPiANCj4gQnV0IHRoZSBwcm9i bGVtIGlzIHJlYWxseSB0aGF0IHRoaXMgZnVuY3Rpb24gc2hvdWxkIG5vdCBiZSBjYWxsZWQgd2l0 aA0KPiB0aGUgb3JpZ2luYWwgZGV2aWNlIHBhdGggcG9pbnRlciBmcm9tIHRoZSBwcm90b2NvbCwg d2hpY2ggaXMgb3duZWQgYnkNCj4gdGhlIGFnZW50IHRoYXQgaW5zdGFsbGVkIGl0LCBub3Qgc29t ZSByYW5kb20gY29uc3VtZXIgb2YgdGhlIHByb3RvY29sLg0KPiANCj4gPg0KPiA+DQo+ID4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMu aW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgQXJkIEJpZXNoZXV2ZWwNCj4g PiA+IFNlbnQ6IFdlZG5lc2RheSwgRGVjZW1iZXIgNywgMjAyMiA4OjEzIEFNDQo+ID4gPiBUbzog ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IENjOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29t PjsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbCA8 YXJkYkBrZXJuZWwub3JnPg0KPiA+ID4gU3ViamVjdDogW2VkazItZGV2ZWxdIFtQQVRDSF0gU2hl bGxQa2c6IEF2b2lkIGNvcnJ1cHRpbmcgaW5zdGFsbGVkIGRldmljZSBwYXRoIHByb3RvY29scw0K PiA+ID4NCj4gPiA+IFRoZSBTaGVsbCBsb2NhdGVzIGRldmljZSBwYXRoIHByb3RvY29sIGluc3Rh bmNlcyBmcm9tIHRoZSBkYXRhYmFzZSBhbmQNCj4gPiA+IGhhcHBpbHkgcGFzc2VzIHRoZW0gdG8g ZGVzdHJ1Y3RpdmUgZGV2aWNlIHBhdGggb3BlcmF0aW9ucywgcmVzdWx0aW5nIGluDQo+ID4gPiB0 aGUgb3JpZ2luYWwgcHJvdG9jb2wgdG8gZ2V0IGNvcnJ1cHRlZCBhcyB3ZWxsLiBTbyB0YWtlIGEg Y29weSBpbnN0ZWFkLA0KPiA+ID4gYW5kIGRpc2NhcmQgaXQgb25jZSB3ZSBubyBsb25nZXIgbmVl ZCBpdC4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBBcmQgQmllc2hldXZlbCA8YXJkYkBr ZXJuZWwub3JnPg0KPiA+ID4gLS0tDQo+ID4gPiAgU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwv U2hlbGxQcm90b2NvbC5jICAgIHwgMTAgKysrLQ0KPiA+ID4gIC4uLi9MaWJyYXJ5L1VlZmlTaGVs bExldmVsMkNvbW1hbmRzTGliL01hcC5jICB8IDQ3ICsrKysrKysrKysrLS0tLS0tLS0NCj4gPiA+ ICAyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQ0KPiA+ ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbFBy b3RvY29sLmMgYi9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbFByb3RvY29sLmMNCj4g PiA+IGluZGV4IDUwOWViNjBlNDBmNC4uNmRiZjM0NDUyMGQwIDEwMDY0NA0KPiA+ID4gLS0tIGEv U2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5jDQo+ID4gPiArKysgYi9T aGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbFByb3RvY29sLmMNCj4gPiA+IEBAIC04Mzgs NyArODM4LDkgQEAgRWZpU2hlbGxPcGVuUm9vdEJ5SGFuZGxlICgNCj4gPiA+ICAgIEVGSV9TVEFU VVMgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gPiA+DQo+ID4gPiAgICBFRklfU0lN UExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MICAqU2ltcGxlRmlsZVN5c3RlbTsNCj4gPiA+DQo+ID4g PiAgICBFRklfRklMRV9QUk9UT0NPTCAgICAgICAgICAgICAgICAqUmVhbEZpbGVIYW5kbGU7DQo+ ID4gPg0KPiA+ID4gLSAgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAgICAgICAgKkRldlBhdGg7 DQo+ID4gPg0KPiA+ID4gKyAgQ09OU1QgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAgKkRldlBh dGg7DQo+ID4gPg0KPiA+ID4gKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKkRl dlBhdGhCdWY7DQo+ID4gPg0KPiA+ID4gKyAgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAgICAg ICAgKkRldlBhdGhDb3B5Ow0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gICAgLy8NCj4gPiA+ DQo+ID4gPiAgICAvLyBnZXQgdGhlIHNpbXBsZSBmaWxlIHN5c3RlbSBpbnRlcmZhY2UNCj4gPiA+ DQo+ID4gPiBAQCAtODc1LDcgKzg3NywxMSBAQCBFZmlTaGVsbE9wZW5Sb290QnlIYW5kbGUgKA0K PiA+ID4gICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4NCj4gPiA+ICAgIH0NCj4gPiA+DQo+ID4g Pg0KPiA+ID4NCj4gPiA+IC0gICpGaWxlSGFuZGxlID0gQ29udmVydEVmaUZpbGVQcm90b2NvbFRv U2hlbGxIYW5kbGUgKFJlYWxGaWxlSGFuZGxlLCBFZmlTaGVsbEdldE1hcEZyb21EZXZpY2VQYXRo ICgmRGV2UGF0aCkpOw0KPiA+ID4NCj4gPiA+ICsgIERldlBhdGhDb3B5ID0gRGV2UGF0aEJ1ZiA9 IER1cGxpY2F0ZURldmljZVBhdGggKERldlBhdGgpOw0KPiA+ID4NCj4gPiA+ICsgICpGaWxlSGFu ZGxlID0gQ29udmVydEVmaUZpbGVQcm90b2NvbFRvU2hlbGxIYW5kbGUgKFJlYWxGaWxlSGFuZGxl LA0KPiA+ID4NCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVmaVNoZWxsR2V0TWFwRnJvbURldmljZVBhdGggKCZEZXZQYXRoQ29weSkN Cj4gPiA+DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOw0KPiA+ID4NCj4gPiA+ICsgIFNIRUxMX0ZSRUVfTk9OX05VTEwgKERldlBh dGhCdWYpOw0KPiA+ID4NCj4gPiA+ICAgIHJldHVybiAoRUZJX1NVQ0NFU1MpOw0KPiA+ID4NCj4g PiA+ICB9DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cv TGlicmFyeS9VZWZpU2hlbGxMZXZlbDJDb21tYW5kc0xpYi9NYXAuYyBiL1NoZWxsUGtnL0xpYnJh cnkvVWVmaVNoZWxsTGV2ZWwyQ29tbWFuZHNMaWIvTWFwLmMNCj4gPiA+IGluZGV4IGYzYzg4OGVk ZDQ4Yy4uMDk0ZTA4ZWFiNGE1IDEwMDY0NA0KPiA+ID4gLS0tIGEvU2hlbGxQa2cvTGlicmFyeS9V ZWZpU2hlbGxMZXZlbDJDb21tYW5kc0xpYi9NYXAuYw0KPiA+ID4gKysrIGIvU2hlbGxQa2cvTGli cmFyeS9VZWZpU2hlbGxMZXZlbDJDb21tYW5kc0xpYi9NYXAuYw0KPiA+ID4gQEAgLTEzNCw3ICsx MzQsNyBAQCBTZWFyY2hMaXN0ICgNCj4gPiA+ICAqKi8NCj4gPiA+DQo+ID4gPiAgQ0hBUjE2ICoN Cj4gPiA+DQo+ID4gPiAgR2V0RGV2aWNlTWVkaWFUeXBlICgNCj4gPiA+DQo+ID4gPiAtICBJTiAg RUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAqRGV2aWNlUGF0aA0KPiA+ID4NCj4gPiA+ICsgIElO ICBDT05TVCBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgICpEZXZpY2VQYXRoDQo+ID4gPg0KPiA+ ID4gICAgKQ0KPiA+ID4NCj4gPiA+ICB7DQo+ID4gPg0KPiA+ID4gICAgQUNQSV9ISURfREVWSUNF X1BBVEggICpBY3BpOw0KPiA+ID4NCj4gPiA+IEBAIC0xNzksNyArMTc5LDcgQEAgR2V0RGV2aWNl TWVkaWFUeXBlICgNCj4gPiA+ICAqKi8NCj4gPiA+DQo+ID4gPiAgQk9PTEVBTg0KPiA+ID4NCj4g PiA+ICBJc1JlbW92ZWFibGVEZXZpY2UgKA0KPiA+ID4NCj4gPiA+IC0gIElOIEVGSV9ERVZJQ0Vf UEFUSF9QUk9UT0NPTCAgKkRldmljZVBhdGgNCj4gPiA+DQo+ID4gPiArICBJTiBDT05TVCBFRklf REVWSUNFX1BBVEhfUFJPVE9DT0wgICpEZXZpY2VQYXRoDQo+ID4gPg0KPiA+ID4gICAgKQ0KPiA+ ID4NCj4gPiA+ICB7DQo+ID4gPg0KPiA+ID4gICAgaWYgKE5VTEwgPT0gRGV2aWNlUGF0aCkgew0K PiA+ID4NCj4gPiA+IEBAIC0zMDcsMjQgKzMwNywyOSBAQCBQZXJmb3JtU2luZ2xlTWFwcGluZ0Rp c3BsYXkgKA0KPiA+ID4gICAgSU4gQ09OU1QgRUZJX0hBTkRMRSAgSGFuZGxlDQo+ID4gPg0KPiA+ ID4gICAgKQ0KPiA+ID4NCj4gPiA+ICB7DQo+ID4gPg0KPiA+ID4gLSAgRUZJX0RFVklDRV9QQVRI X1BST1RPQ09MICAqRGV2UGF0aDsNCj4gPiA+DQo+ID4gPiAtICBFRklfREVWSUNFX1BBVEhfUFJP VE9DT0wgICpEZXZQYXRoQ29weTsNCj4gPiA+DQo+ID4gPiAtICBDT05TVCBDSEFSMTYgICAgICAg ICAgICAgICpNYXBMaXN0Ow0KPiA+ID4NCj4gPiA+IC0gIENIQVIxNiAgICAgICAgICAgICAgICAg ICAgKkN1cnJlbnROYW1lOw0KPiA+ID4NCj4gPiA+IC0gIENIQVIxNiAgICAgICAgICAgICAgICAg ICAgKk1lZGlhVHlwZTsNCj4gPiA+DQo+ID4gPiAtICBDSEFSMTYgICAgICAgICAgICAgICAgICAg ICpEZXZQYXRoU3RyaW5nOw0KPiA+ID4NCj4gPiA+IC0gIENIQVIxNiAgICAgICAgICAgICAgICAg ICAgKlRlbXBTcG90Ow0KPiA+ID4NCj4gPiA+IC0gIENIQVIxNiAgICAgICAgICAgICAgICAgICAg KkFsaWFzOw0KPiA+ID4NCj4gPiA+IC0gIFVJTlROICAgICAgICAgICAgICAgICAgICAgVGVtcExl bjsNCj4gPiA+DQo+ID4gPiAtICBCT09MRUFOICAgICAgICAgICAgICAgICAgIFJlbW92YWJsZTsN Cj4gPiA+DQo+ID4gPiAtICBDT05TVCBDSEFSMTYgICAgICAgICAgICAgICpUZW1wU3BvdDI7DQo+ ID4gPg0KPiA+ID4gKyAgQ09OU1QgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAqRGV2UGF0aDsN Cj4gPiA+DQo+ID4gPiArICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAgICAgICpEZXZQYXRo QnVmOw0KPiA+ID4NCj4gPiA+ICsgIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgICAgICAgKkRl dlBhdGhDb3B5Ow0KPiA+ID4NCj4gPiA+ICsgIENPTlNUIENIQVIxNiAgICAgICAgICAgICAgICAg ICAgKk1hcExpc3Q7DQo+ID4gPg0KPiA+ID4gKyAgQ0hBUjE2ICAgICAgICAgICAgICAgICAgICAg ICAgICAqQ3VycmVudE5hbWU7DQo+ID4gPg0KPiA+ID4gKyAgQ0hBUjE2ICAgICAgICAgICAgICAg ICAgICAgICAgICAqTWVkaWFUeXBlOw0KPiA+ID4NCj4gPiA+ICsgIENIQVIxNiAgICAgICAgICAg ICAgICAgICAgICAgICAgKkRldlBhdGhTdHJpbmc7DQo+ID4gPg0KPiA+ID4gKyAgQ0hBUjE2ICAg ICAgICAgICAgICAgICAgICAgICAgICAqVGVtcFNwb3Q7DQo+ID4gPg0KPiA+ID4gKyAgQ0hBUjE2 ICAgICAgICAgICAgICAgICAgICAgICAgICAqQWxpYXM7DQo+ID4gPg0KPiA+ID4gKyAgVUlOVE4g ICAgICAgICAgICAgICAgICAgICAgICAgICBUZW1wTGVuOw0KPiA+ID4NCj4gPiA+ICsgIEJPT0xF QU4gICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3ZhYmxlOw0KPiA+ID4NCj4gPiA+ICsgIENP TlNUIENIQVIxNiAgICAgICAgICAgICAgICAgICAgKlRlbXBTcG90MjsNCj4gPiA+DQo+ID4gPg0K PiA+ID4NCj4gPiA+ICAgIEFsaWFzICAgICAgID0gTlVMTDsNCj4gPiA+DQo+ID4gPiAgICBUZW1w U3BvdDIgICA9IE5VTEw7DQo+ID4gPg0KPiA+ID4gICAgQ3VycmVudE5hbWUgPSBOVUxMOw0KPiA+ ID4NCj4gPiA+ICAgIERldlBhdGggICAgID0gRGV2aWNlUGF0aEZyb21IYW5kbGUgKEhhbmRsZSk7 DQo+ID4gPg0KPiA+ID4gLSAgRGV2UGF0aENvcHkgPSBEZXZQYXRoOw0KPiA+ID4NCj4gPiA+ICsg IERldlBhdGhCdWYgID0gRHVwbGljYXRlRGV2aWNlUGF0aCAoRGV2UGF0aCk7DQo+ID4gPg0KPiA+ ID4gKyAgRGV2UGF0aENvcHkgPSBEZXZQYXRoQnVmOw0KPiA+ID4NCj4gPiA+ICAgIE1hcExpc3Qg ICAgID0gZ0VmaVNoZWxsUHJvdG9jb2wtPkdldE1hcEZyb21EZXZpY2VQYXRoICgmRGV2UGF0aENv cHkpOw0KPiA+ID4NCj4gPiA+ICsNCj4gPiA+DQo+ID4gPiArICBTSEVMTF9GUkVFX05PTl9OVUxM IChEZXZQYXRoQnVmKTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gICAgaWYgKE1hcExp c3QgPT0gTlVMTCkgew0KPiA+ID4NCj4gPiA+ICAgICAgcmV0dXJuIEVGSV9OT1RfRk9VTkQ7DQo+ ID4gPg0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+IEBAIC00ODUsMTYgKzQ5MCwyMCBAQCBQZXJm b3JtU2luZ2xlTWFwcGluZ0RlbGV0ZSAoDQo+ID4gPiAgICBJTiBDT05TVCBFRklfSEFORExFICBI YW5kbGUNCj4gPiA+DQo+ID4gPiAgICApDQo+ID4gPg0KPiA+ID4gIHsNCj4gPiA+DQo+ID4gPiAt ICBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgICpEZXZQYXRoOw0KPiA+ID4NCj4gPiA+IC0gIEVG SV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgKkRldlBhdGhDb3B5Ow0KPiA+ID4NCj4gPiA+IC0gIENP TlNUIENIQVIxNiAgICAgICAgICAgICAgKk1hcExpc3Q7DQo+ID4gPg0KPiA+ID4gLSAgQ0hBUjE2 ICAgICAgICAgICAgICAgICAgICAqQ3VycmVudE5hbWU7DQo+ID4gPg0KPiA+ID4gKyAgQ09OU1Qg RUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICAqRGV2UGF0aDsNCj4gPiA+DQo+ID4gPiArICBWT0lE ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpEZXZQYXRoQnVmOw0KPiA+ID4NCj4gPiA+ICsg IEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgICAgICAgKkRldlBhdGhDb3B5Ow0KPiA+ID4NCj4g PiA+ICsgIENPTlNUIENIQVIxNiAgICAgICAgICAgICAgICAgICAgKk1hcExpc3Q7DQo+ID4gPg0K PiA+ID4gKyAgQ0hBUjE2ICAgICAgICAgICAgICAgICAgICAgICAgICAqQ3VycmVudE5hbWU7DQo+ ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiAgICBEZXZQYXRoICAgICA9IERldmljZVBhdGhGcm9t SGFuZGxlIChIYW5kbGUpOw0KPiA+ID4NCj4gPiA+IC0gIERldlBhdGhDb3B5ID0gRGV2UGF0aDsN Cj4gPiA+DQo+ID4gPiArICBEZXZQYXRoQnVmICA9IER1cGxpY2F0ZURldmljZVBhdGggKERldlBh dGgpOw0KPiA+ID4NCj4gPiA+ICsgIERldlBhdGhDb3B5ID0gRGV2UGF0aEJ1ZjsNCj4gPiA+DQo+ ID4gPiAgICBNYXBMaXN0ICAgICA9IGdFZmlTaGVsbFByb3RvY29sLT5HZXRNYXBGcm9tRGV2aWNl UGF0aCAoJkRldlBhdGhDb3B5KTsNCj4gPiA+DQo+ID4gPiAgICBDdXJyZW50TmFtZSA9IE5VTEw7 DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiArICBTSEVMTF9GUkVFX05PTl9OVUxMIChEZXZQ YXRoQnVmKTsNCj4gPiA+DQo+ID4gPiArDQo+ID4gPg0KPiA+ID4gICAgaWYgKE1hcExpc3QgPT0g TlVMTCkgew0KPiA+ID4NCj4gPiA+ICAgICAgcmV0dXJuIChFRklfTk9UX0ZPVU5EKTsNCj4gPiA+ DQo+ID4gPiAgICB9DQo+ID4gPg0KPiA+ID4gLS0NCj4gPiA+IDIuMzUuMQ0KPiA+ID4NCj4gPiA+ DQo+ID4gPg0KPiA+ID4gLT0tPS09LT0tPS09DQo+ID4gPiBHcm91cHMuaW8gTGlua3M6IFlvdSBy ZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRoaXMgZ3JvdXAuDQo+ID4gPiBWaWV3L1JlcGx5 IE9ubGluZSAoIzk3MDkwKTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2Uv OTcwOTANCj4gPiA+IE11dGUgVGhpcyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvOTU1MTgz NzMvMTY0MzQ5Ng0KPiA+ID4gR3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlv DQo+ID4gPiBVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3Vuc3Vi IFttaWNoYWVsLmQua2lubmV5QGludGVsLmNvbV0NCj4gPiA+IC09LT0tPS09LT0tPQ0KPiA+ID4N Cj4gPg0KPiA+DQo+ID4NCj4gPiANCj4gPg0KPiA+DQo=