From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.700.1611243516274899788 for ; Thu, 21 Jan 2021 07:38:36 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=gdWHOp1J; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: maurice.ma@intel.com) IronPort-SDR: bzh5p4/qniF9rhiJyGy8TMXyPWLuKwQEJ2dQpxLtTd2shXFEv0VIANIdv7yyzJjrCseobHqZMJ hGkNnc6/kx7A== X-IronPort-AV: E=McAfee;i="6000,8403,9870"; a="159065786" X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="159065786" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 07:38:35 -0800 IronPort-SDR: upzG5B7jUdr0kDeaV09NX5YumIfhWn1WJtjyUaLcIIfuSnFzPUwQYOD83x4cYtDVhQf+RdoZ86 ouIHiPLH177g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="570778520" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga005.jf.intel.com with ESMTP; 21 Jan 2021 07:38:35 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 21 Jan 2021 07:38:34 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 21 Jan 2021 07:38:34 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 21 Jan 2021 07:38:34 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.176) 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.1713.5; Thu, 21 Jan 2021 07:38:34 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Pwe+a3s3TnGc+K+ZfX5AabLPDuFs9t8Ek8rJ72bW/PP/VUgMMigYNxnLfvL3PA2XJuQKl14wSM7wXlWST7+7vTE78MCQ4jzQBya8H1b4XQOGLZ+LDatyHWikAMsicRcclEFO+HLA2fG7cOc1jpreTJfK0FMqLfQL6RBFVu29ORJcEZ4ERBJdW0n4JNfDuHarxjAHolrPo7hGadHl/36DifKlJ4nVUgHe5CnvC55So5Lwr85+3u3HfNXPkU5fpscm0O/1NbDvjbYp1wv8N1iIK/05//qBmlzVWvuZAO9H5uCX/JRFyEWLBvQZCnuTa5Uk4dTvvYoaB7bLUO9UhzQ9Kg== 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=PPx6dLPGHudJGKKa7cNV9VY315ZNg+K3DaeqlhBOQVg=; b=mKqrXkILVMbQWyAQm5p7iF9xjSunakwy4jOCDYYcIV43iZ6VBNHMSycHoG+y5jqkfx5hrdChPIcrj9VKzBMvFWo60ZEuQR6Ri1DTcWSdouTCy0ZhhlDYj2IF+2JyscKSxuXUKGjo8uTVvGJSD4RqEy4WJ0sgBVFHHzfaG9xZ37uftONS0MCSto5SVt7rXBTiXWcXGugKPqZgbOjObXG7LEXsahvMRiMKZgD6QmreWM0aeuWQ4IjAGKPTgWU1i/UuhU+g9kB5FiCt/zrQWCLkKGxM88xMWMF+3cnXyONlt8rZ0K/U6YePc/ec/hnVXhXu811WY5v8omy1qdeMZGX2iw== 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=PPx6dLPGHudJGKKa7cNV9VY315ZNg+K3DaeqlhBOQVg=; b=gdWHOp1JeGWdIPkkTZdzngzJ9N3+shTAIXEci8uKAEpgHFlYfodJzYWIhjo1YNJsZt89t0Gabsz8T/t2gQhqUYaJCZzuVMoJXi2uJL7OrV5wQWMLEivXmA68Pmba/OEY4dYcDfbijMIA1A33ItOYU6mR1llchof2UC4mj9bYpvA= Received: from DM6PR11MB2793.namprd11.prod.outlook.com (2603:10b6:5:c0::29) by DM5PR11MB1801.namprd11.prod.outlook.com (2603:10b6:3:106::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.11; Thu, 21 Jan 2021 15:38:32 +0000 Received: from DM6PR11MB2793.namprd11.prod.outlook.com ([fe80::19ca:d5c5:d1d4:a22f]) by DM6PR11MB2793.namprd11.prod.outlook.com ([fe80::19ca:d5c5:d1d4:a22f%6]) with mapi id 15.20.3763.014; Thu, 21 Jan 2021 15:38:32 +0000 From: "Ma, Maurice" To: "Kinney, Michael D" , "Gao, Liming" , "patrick.rudolph@9elements.com" CC: "Dong, Guo" , "You, Benjamin" , "devel@edk2.groups.io" , "Liu, Zhiguang" Subject: Re: [edk2-devel] [PATCH] UefiPayloadPkg: Add RNG support Thread-Topic: [edk2-devel] [PATCH] UefiPayloadPkg: Add RNG support Thread-Index: AQHW70Q5b0a2sAJn9UedyAxiO/tzUaoxPQFggACNiYCAAGx5kA== Date: Thu, 21 Jan 2021 15:38:32 +0000 Message-ID: References: <20210120155203.3342035-1-patrick.rudolph@9elements.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.5.1.3 dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.136.192] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 37043131-fc68-4517-d539-08d8be229bb4 x-ms-traffictypediagnostic: DM5PR11MB1801: 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: A4L/WZPg5orz/WDk+U7yWha9V8O4mvqGHRo54ua1qpaevC+iJlf0tFWsAVc8uAJC2NfhEejyXo6XVtWirAyqkaSvQNeX4BpIsABj//H69gR/F07/nXa0dvmvskge7704Sk0PO5IfuqDt+Y7h5BcrVlLhARDJFcmDvUAG2H9MwOJpQUiiwHbz6AaG6jh8Mfuv8h+g/iPnoF8CKNpebdSASrNWojT9k5isG6boU21GsUz5jHHWRfhhA9N/L10nwQvkENPcTRhHnvJ9m5wCIdog9Zm5s2RvG7wJEvbB4J5h1tnV1X8TtjiGOf3adhnmmXt/jjWh73Rrw6hw8I27SHkWtIh1hy63HeaHNAvZvaUq2efmGVu7jXuCwJdNCsiCC4ZDLywfJvPMtYP22X4jsI0ckJtbietQd6jpJiXjM2l2YdjuMtXilJFI4vw/cVfXXX+MvEelA1Muw6a7AHEp5i1eeQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2793.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(346002)(396003)(376002)(136003)(39860400002)(186003)(83380400001)(6506007)(86362001)(66476007)(26005)(33656002)(9686003)(4326008)(2906002)(66446008)(55016002)(66946007)(71200400001)(8676002)(5660300002)(478600001)(316002)(8936002)(53546011)(7696005)(52536014)(66556008)(64756008)(966005)(54906003)(107886003)(76116006)(110136005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?UC9lL1lDZXdmUVBYckE1WlY0Q2ZkUGdhU1RyZmhxNG85TGphR3ljcmp1UkhF?= =?utf-8?B?Z1oyV3ozekd6V2lSNUVhZjJ6eVBHM2pCTkVpRlBueXlEU243OFRUbnk2OXoz?= =?utf-8?B?dm0yVGRPZFBHMVBJbFVKelg1Y3dnNHB5TjFGZVRQd1piNkRzcmkxOWxlUDhn?= =?utf-8?B?aEJXN2d4RDdIL3NpYUZZajlNWjNFekJ0S0hMcHd6RVBUMWcrWm9VZE1pYXJY?= =?utf-8?B?MEZtZjI4TmtWZE1pRTByVFMxdm13U0hiczViTnZTV0c1RTRLcWEwUjZmMFdT?= =?utf-8?B?d1JHZ0xNZ0dnbitRNXpZWEZZL2F0UysxdUdxS3NuTjJuak5TZXV3SFh0emYy?= =?utf-8?B?a0RQUUJQUjZEMzQvb0ZyZTgyRHpkRzFyaUcyTTJmOTJNanE4T1kwU0hmY0tr?= =?utf-8?B?Vm81ak9KUmo0YWhJSExPNTQxSEMyalVmcUlyWUFxYjVncjU3aEx0WVdpTUNS?= =?utf-8?B?T0F1WmlBTkV0QkQxR2x1SzFZcWFsZ3pGaHB3eXRBR2EydCtXSkJXY3lyQnFU?= =?utf-8?B?dEE3NmRlRi9hb3N2QVNsMjZnTTFsdXBFS0hOSGVUeWJrNnRORzRnN1E2RWVX?= =?utf-8?B?WGhEbm1kbkt4ZzVVdDNOa3dYL1NYZDB4bG5QZi9sQ2crU2xEVVJhSjFKS2N4?= =?utf-8?B?ZkRFZUY3YmtJV3hCMmkxRE8zQjRJT2RiREV5SU5uR3JCNEFWWno4bHNLdGlN?= =?utf-8?B?cEtOL3Z6MFFaVHlLVzdCMlJwclJOdjg4UHRkM0s4eDlkQjFQcUxoYzBmVUps?= =?utf-8?B?Vk5EQlpaL0s3UEc2K0xKMko1YmEvWUFxcW40c1MyWHBKWTB0QnBDMkxCd3RJ?= =?utf-8?B?dE43TDBOd3hJWUoyWjlFaldYS3paeUZhM1BpL1liM3ZYSjNQcENNd1FKbEFR?= =?utf-8?B?WDJldmlHd2RjK0oyY1ZZeVhmRTF6Vy90OXhtcjFHcFBIMm5nOEx5WHhmZm0w?= =?utf-8?B?cTdUK1ZtTytTVGZPaXo0UlZPQWdESGZMWUJCdDNwc1lYKzhyZ0RqOEloSHhn?= =?utf-8?B?RUhoSTM2c3BhY0o5VGNGWTF0U1dwTDE3b2dxSTJESmloMXIyOU9wQUUrNmwr?= =?utf-8?B?bHpBaUJaMFRDbDFjSEcxM2lHQ0d4MHJ6L084RWs4QVYzUml5aDdPNkE0VERF?= =?utf-8?B?MVFkSGpXNVJTUHlCTForaFkveWFnVzRRTU4rMGtzMEtZWFg3Uk5BTERxOEsw?= =?utf-8?B?aDE1Q1g2bFBaeERRaThmcTdTeWczSEEyNDFJMjA2VEVFdzhmNFZwTWJNenNl?= =?utf-8?B?UURtd0ZPRVN0RGUyaERTZFBuaFYySEVVZGg0eE1uTmtybGRrYVVrTVp0QlUv?= =?utf-8?Q?hyMrtCtKHzIjjjTOq5Bjq8YsuqZbhOA3PK?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2793.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 37043131-fc68-4517-d539-08d8be229bb4 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2021 15:38:32.2410 (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: PRV4IVcMgprQqapmL7CB6O3wCbjSj9/P1vJlEx5RimRTRIse8VuL7YPgUiKukvHA14R1VwBYI0PTw1ZD250Zfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1801 Return-Path: maurice.ma@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksICBQYXRyaWNrDQpMZXQgdXMgYWRkIE1kZVBrZyBtYWludGFpbmVycyBpbnRvIHRoZSBkaXNj dXNzaW9uIHRvIHNlZSB3aGF0IGNvdWxkIGJlIHRoZSBiZXN0IGFwcHJvYWNoIGZvciB0aGlzLg0K DQpIaSwgTWlrZSBhbmQgTGltaW5nLA0KQW55IHJlY29tbWVuZGF0aW9uIGZyb20geW91ciBzaWRl ID8NCg0KVGhhbmtzDQpNYXVyaWNlDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhh bGYgT2YgUGF0cmljaw0KPiBSdWRvbHBoDQo+IFNlbnQ6IFRodXJzZGF5LCBKYW51YXJ5IDIxLCAy MDIxIDE6MDUNCj4gVG86IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT4NCj4gQ2M6 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBEb25nLCBHdW8gPGd1by5kb25nQGludGVsLmNvbT47IFlv dSwgQmVuamFtaW4NCj4gPGJlbmphbWluLnlvdUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBb ZWRrMi1kZXZlbF0gW1BBVENIXSBVZWZpUGF5bG9hZFBrZzogQWRkIFJORyBzdXBwb3J0DQo+IA0K PiBIaSBNYXVyaWNlLA0KPiBpdCdzIGEgY29weSBvZiB0aGUgTWRlTW9kdWxlUGtnJ3MgQmFzZVJu Z0xpYiB3aXRoIHJ1bnRpbWUgZGV0ZWN0aW9uIHN1cHBvcnQuDQo+IA0KPiBBcmUgdGhlIE1kZU1v ZHVsZVBrZyBtYWludGFpbmVycyBPSyB3aXRoIGFkZGluZyBydW50aW1lIGRldGVjdGlvbiBzdXBw b3J0Pw0KPiBJIGhhZCB0aGUgaW1wcmVzc2lvbiB0aGF0IGl0IHNob3VsZCBvbmx5IGJlIHVzZWQg b24gcGxhdGZvcm1zIHN1cHBvcnRpbmcgcmRyYW5kDQo+IGZvciBzdXJlLCBhbmQgdGhlcmVmb3Jl IG11c3Qgbm90IGJlIHVzZWQgb24gcGxhdGZvcm1zIG5vdCBzdXBwb3J0aW5nIHJkcmFuZC4NCj4g DQo+IEtpbmQgUmVnYXJkcywNCj4gUGF0cmljayBSdWRvbHBoDQo+IA0KPiBPbiBUaHUsIEphbiAy MSwgMjAyMSBhdCAxOjQyIEFNIE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT4gd3Jv dGU6DQo+ID4NCj4gPiBIaSwgIFBhdHJpY2sNCj4gPg0KPiA+IFRoZXJlIGlzIGEgQmFzZVJuZ0xp YiBpbiBNZGVQa2cgcGFja2FnZSBhbHJlYWR5LiAgSSBhbSB3b25kZXJpbmcgd2h5IGEgbmV3DQo+ IGluc3RhbmNlIHdhcyBjcmVhdGVkIHVuZGVyIFVlZmlQYXlsb2FkUGtnIGluIHRoZSBwYXRjaC4N Cj4gPiBDb3VsZCB3ZSBqdXN0IHJldXNlIHRoZSBzYW1lIGxpYnJhcnkgaW4gTWRlUGtnPw0KPiA+ IElmIG5vdCwgd2hhdCBpcyB0aGUgcmVhc29uPyAgIENhbiB3ZSB0cnkgdG8gZW5oYW5jZSB0aGUg bGlicmFyeSBpbiBNZGVQa2cgdG8NCj4gYWRkcmVzcyBpdCBpZiByZXF1aXJlZD8NCj4gPg0KPiA+ IFRoYW5rcw0KPiA+IE1hdXJpY2UNCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiBGcm9tOiBQYXRyaWNrIFJ1ZG9scGggPHBhdHJpY2sucnVkb2xwaEA5ZWxlbWVudHMuY29t Pg0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDIwLCAyMDIxIDc6NTINCj4gPiA+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1h QGludGVsLmNvbT47IERvbmcsIEd1bw0KPiA+ID4gPGd1by5kb25nQGludGVsLmNvbT47IFlvdSwg QmVuamFtaW4gPGJlbmphbWluLnlvdUBpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0OiBbUEFUQ0hd IFVlZmlQYXlsb2FkUGtnOiBBZGQgUk5HIHN1cHBvcnQNCj4gPiA+DQo+ID4gPiBVc2VzIHRoZSBS RFJBTkQgaW5zdHJ1Y3Rpb24gaWYgYXZhaWxhYmxlIGFuZCBpbnN0YWxsIEVmaVJuZ1Byb3RvY29s Lg0KPiA+ID4gVGhlIHByb3RvY29sIG1heSBiZSB1c2VkIGJ5IGlQWEUgb3IgdGhlIExpbnV4IGtl cm5lbCB0byBnYXRoZXIgZW50cm9weS4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYXRy aWNrIFJ1ZG9scGggPHBhdHJpY2sucnVkb2xwaEA5ZWxlbWVudHMuY29tPg0KPiA+ID4gLS0tDQo+ ID4gPiAgVWVmaVBheWxvYWRQa2cvTGlicmFyeS9CYXNlUm5nTGliL0Jhc2VSbmcuYyAgICAgIHwg MTk5DQo+ID4gPiArKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gIFVlZmlQYXlsb2FkUGtnL0xp YnJhcnkvQmFzZVJuZ0xpYi9CYXNlUm5nTGliLmluZiB8ICAzMiArKysrDQo+ID4gPiBVZWZpUGF5 bG9hZFBrZy9MaWJyYXJ5L0Jhc2VSbmdMaWIvQmFzZVJuZ0xpYi51bmkgfCAgMTcgKysNCj4gPiA+ ICBVZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kc2MgICAgICAgICAgICAgICAgfCAgIDgg Kw0KPiA+ID4gIFVlZmlQYXlsb2FkUGtnL1VlZmlQYXlsb2FkUGtnLmZkZiAgICAgICAgICAgICAg ICB8ICAgNCArDQo+ID4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAyNjAgaW5zZXJ0aW9ucygrKQ0KPiA+ ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0Jhc2VSbmdMaWIv QmFzZVJuZy5jDQo+ID4gPiBiL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvQmFzZVJuZ0xpYi9CYXNl Um5nLmMNCj4gPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAw Li4xZmU5ZTFkYmUwDQo+ID4gPiAtLS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi9VZWZpUGF5bG9h ZFBrZy9MaWJyYXJ5L0Jhc2VSbmdMaWIvQmFzZVJuZy5jDQo+ID4gPiBAQCAtMCwwICsxLDE5OSBA QA0KPiA+ID4gKy8qKiBAZmlsZSsgIFJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHNlcnZpY2VzIHRo YXQgdXNlcyBSZFJhbmQNCj4gPiA+ICtpbnN0cnVjdGlvbg0KPiA+ID4gYWNjZXNzKyAgdG8gcHJv dmlkZSBoaWdoLXF1YWxpdHkgcmFuZG9tIG51bWJlcnMuKytDb3B5cmlnaHQgKGMpDQo+ID4gPiBh Y2Nlc3MrIDIwMTUsIEludGVsDQo+ID4gPiBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl ZC48QlI+K1NQRFgtTGljZW5zZS1JZGVudGlmaWVyOg0KPiA+ID4gQlNELTItQ2xhdXNlLQ0KPiA+ ID4gUGF0ZW50KysqKi8rKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4rI2luY2x1ZGUNCj4g PiA+IDxMaWJyYXJ5L0RlYnVnTGliLmg+KyNpbmNsdWRlIDxSZWdpc3Rlci9JbnRlbC9DcHVpZC5o PisrU1RBVElDDQo+ID4gPiBCT09MRUFOIG1IYXNSZFJhbmQ7KysvLysvLyBCaXQgbWFzayB1c2Vk IHRvIGRldGVybWluZSBpZiBSZFJhbmQNCj4gaW5zdHJ1Y3Rpb24gaXMNCj4gPiA+IHN1cHBvcnRl ZC4rLy8rI2RlZmluZSBSRFJBTkRfTUFTSyAgICAgICAgICAgICAgICAgIEJJVDMwKysvLysvLyBM aW1pdGVkIHJldHJ5DQo+ID4gPiBudW1iZXIgd2hlbiB2YWxpZCByYW5kb20gZGF0YSBpcyByZXR1 cm5lZC4rLy8gVXNlcyB0aGUgcmVjb21tZW5kZWQNCj4gPiA+IHZhbHVlIGRlZmluZWQgaW4gU2Vj dGlvbiA3LjMuMTcgb2YgIkludGVsIDY0IGFuZCBJQS0zMisvLyBBcmNoaXRlY3R1cmVzDQo+IFNv ZnR3YXJlDQo+ID4gPiBEZXZlbG9wZXIncyBNYW5udWFsIi4rLy8rI2RlZmluZSBSRFJBTkRfUkVU UllfTElNSVQgICAgICAgICAgIDEwKysvKiorDQo+IFRoZQ0KPiA+ID4gY29uc3RydWN0b3IgZnVu Y3Rpb24gY2hlY2tzIHdoZXRoZXIgb3Igbm90IFJEUkFORCBpbnN0cnVjdGlvbiBpcw0KPiA+ID4g c3VwcG9ydGVkKyBieSB0aGUgaG9zdCBoYXJkd2FyZS4rKyAgVGhlIGNvbnN0cnVjdG9yIGZ1bmN0 aW9uIGNoZWNrcw0KPiA+ID4gd2hldGhlciBvciBub3QgUkRSQU5EIGluc3RydWN0aW9uIGlzIHN1 cHBvcnRlZC4rICBJdCB3aWxsIGFsd2F5cyByZXR1cm4NCj4gUkVUVVJOX1NVQ0NFU1MuKysNCj4g PiA+IEByZXR2YWwgUkVUVVJOX1NVQ0NFU1MgICBUaGUgY29uc3RydWN0b3IgYWx3YXlzIHJldHVy bnMNCj4gPiA+IEVGSV9TVUNDRVNTLisrKiovK1JFVFVSTl9TVEFUVVMrRUZJQVBJK0Jhc2VSbmdM aWJDb25zdHJ1Y3RvciAoKw0KPiA+ID4gVk9JRCsgICkreysgIFVJTlQzMiAgUmVnRWF4OysgIFVJ TlQzMiAgUmVnRWN4OysrICBBc21DcHVpZA0KPiA+ID4gKENQVUlEX1NJR05BVFVSRSwgJlJlZ0Vh eCwgTlVMTCwgTlVMTCwgTlVMTCk7KyAgaWYgKFJlZ0VheCA8IDEpIHsrDQo+ID4gPiBtSGFzUmRS YW5kID0gRkFMU0U7KyAgICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7KyAgfSsrICAvLysgIC8vIERl dGVybWluZQ0KPiA+ID4gUkRSQU5EIHN1cHBvcnQgYnkgZXhhbWluaW5nIGJpdCAzMCBvZiB0aGUg RUNYIHJlZ2lzdGVyIHJldHVybmVkIGJ5KyAgLy8NCj4gQ1BVSUQuDQo+ID4gPiBBIHZhbHVlIG9m IDEgaW5kaWNhdGVzIHRoYXQgcHJvY2Vzc29yIHN1cHBvcnQgUkRSQU5EIGluc3RydWN0aW9uLisN Cj4gPiA+IC8vKyBBc21DcHVpZCAoQ1BVSURfVkVSU0lPTl9JTkZPLCAwLCAwLCAmUmVnRWN4LCAw KTsrKyAgbUhhc1JkUmFuZCA9DQo+ID4gPiAoKFJlZ0VjeCAmIFJEUkFORF9NQVNLKSA9PSBSRFJB TkRfTUFTSyk7KysgIHJldHVybg0KPiA+ID4gUkVUVVJOX1NVQ0NFU1M7K30rKy8qKisgIEdlbmVy YXRlcyBhIDE2LWJpdCByYW5kb20gbnVtYmVyLisrICBpZiBSYW5kDQo+IGlzDQo+ID4gPiBOVUxM LCB0aGVuIEFTU0VSVCgpLisrICBAcGFyYW1bb3V0XSBSYW5kICAgICBCdWZmZXIgcG9pbnRlciB0 byBzdG9yZSB0aGUNCj4gMTYtYml0DQo+ID4gPiByYW5kb20gdmFsdWUuKysgIEByZXR2YWwgVFJV RSAgICAgICAgIFJhbmRvbSBudW1iZXIgZ2VuZXJhdGVkDQo+IHN1Y2Nlc3NmdWxseS4rDQo+ID4g PiBAcmV0dmFsIEZBTFNFICAgICAgICBGYWlsZWQgdG8gZ2VuZXJhdGUgdGhlIHJhbmRvbQ0KPiA+ ID4gbnVtYmVyLisrKiovK0JPT0xFQU4rRUZJQVBJK0dldFJhbmRvbU51bWJlcjE2ICgrICBPVVQg ICAgIFVJTlQxNg0KPiA+ID4gKlJhbmQrICApK3srICBVSU5UMzIgIEluZGV4OysrICBBU1NFUlQg KFJhbmQgIT0gTlVMTCk7KysgIGlmIChtSGFzUmRSYW5kKQ0KPiB7Kw0KPiA+ID4gLy8rICAgIC8v IEEgbG9vcCB0byBmZXRjaCBhIDE2IGJpdCByYW5kb20gdmFsdWUgd2l0aCBhIHJldHJ5IGNvdW50 IGxpbWl0LisgICAgLy8rDQo+ID4gPiBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBSRFJBTkRfUkVU UllfTElNSVQ7IEluZGV4KyspIHsrICAgICAgaWYNCj4gKEFzbVJkUmFuZDE2DQo+ID4gPiAoUmFu ZCkpIHsrICAgICAgICByZXR1cm4gVFJVRTsrICAgICAgfSsgICAgfSsgIH0rKyAgcmV0dXJuIEZB TFNFOyt9KysvKiorDQo+IEdlbmVyYXRlcyBhDQo+ID4gPiAzMi1iaXQgcmFuZG9tIG51bWJlci4r KyAgaWYgUmFuZCBpcyBOVUxMLCB0aGVuIEFTU0VSVCgpLisrICBAcGFyYW1bb3V0XQ0KPiA+ID4g UmFuZCAgICAgQnVmZmVyIHBvaW50ZXIgdG8gc3RvcmUgdGhlIDMyLWJpdCByYW5kb20gdmFsdWUu KysgIEByZXR2YWwgVFJVRQ0KPiA+ID4gUmFuZG9tIG51bWJlciBnZW5lcmF0ZWQgc3VjY2Vzc2Z1 bGx5LisgIEByZXR2YWwgRkFMU0UgICAgICAgIEZhaWxlZCB0bw0KPiBnZW5lcmF0ZQ0KPiA+ID4g dGhlIHJhbmRvbSBudW1iZXIuKysqKi8rQk9PTEVBTitFRklBUEkrR2V0UmFuZG9tTnVtYmVyMzIg KCsNCj4gT1VUDQo+ID4gPiBVSU5UMzIgICAgICAgICAgICAgICAgICAgICpSYW5kKyAgKSt7KyAg VUlOVDMyICBJbmRleDsrKyAgQVNTRVJUIChSYW5kICE9DQo+IE5VTEwpOysrICBpZg0KPiA+ID4g KG1IYXNSZFJhbmQpIHsrICAgIC8vKyAgICAvLyBBIGxvb3AgdG8gZmV0Y2ggYSAzMiBiaXQgcmFu ZG9tIHZhbHVlIHdpdGggYSByZXRyeQ0KPiA+ID4gY291bnQgbGltaXQuKyAgICAvLysgICAgZm9y IChJbmRleCA9IDA7IEluZGV4IDwgUkRSQU5EX1JFVFJZX0xJTUlUOyBJbmRleCsrKQ0KPiB7Kw0K PiA+ID4gaWYgKEFzbVJkUmFuZDMyIChSYW5kKSkgeysgICAgICAgIHJldHVybiBUUlVFOysgICAg ICB9KyAgICB9KyAgfSsrICByZXR1cm4NCj4gPiA+IEZBTFNFOyt9KysvKiorICBHZW5lcmF0ZXMg YSA2NC1iaXQgcmFuZG9tIG51bWJlci4rKyAgaWYgUmFuZCBpcyBOVUxMLA0KPiB0aGVuDQo+ID4g PiBBU1NFUlQoKS4rKyAgQHBhcmFtW291dF0gUmFuZCAgICAgQnVmZmVyIHBvaW50ZXIgdG8gc3Rv cmUgdGhlIDY0LWJpdA0KPiByYW5kb20NCj4gPiA+IHZhbHVlLisrICBAcmV0dmFsIFRSVUUgICAg ICAgICBSYW5kb20gbnVtYmVyIGdlbmVyYXRlZCBzdWNjZXNzZnVsbHkuKw0KPiBAcmV0dmFsDQo+ ID4gPiBGQUxTRSAgICAgICAgRmFpbGVkIHRvIGdlbmVyYXRlIHRoZSByYW5kb20NCj4gPiA+IG51 bWJlci4rKyoqLytCT09MRUFOK0VGSUFQSStHZXRSYW5kb21OdW1iZXI2NCAoKyAgT1VUICAgICBV SU5UNjQNCj4gPiA+ICpSYW5kKyAgKSt7KyAgVUlOVDMyICBJbmRleDsrKyAgQVNTRVJUIChSYW5k ICE9IE5VTEwpOysrICBpZiAobUhhc1JkUmFuZCkNCj4geysNCj4gPiA+IC8vKyAgICAvLyBBIGxv b3AgdG8gZmV0Y2ggYSA2NCBiaXQgcmFuZG9tIHZhbHVlIHdpdGggYSByZXRyeSBjb3VudCBsaW1p dC4rICAgIC8vKw0KPiA+ID4gZm9yIChJbmRleCA9IDA7IEluZGV4IDwgUkRSQU5EX1JFVFJZX0xJ TUlUOyBJbmRleCsrKSB7KyAgICAgIGlmDQo+IChBc21SZFJhbmQ2NA0KPiA+ID4gKFJhbmQpKSB7 KyAgICAgICAgcmV0dXJuIFRSVUU7KyAgICAgIH0rICAgIH0rICB9KysgIHJldHVybiBGQUxTRTsr fSsrLyoqKw0KPiBHZW5lcmF0ZXMgYQ0KPiA+ID4gMTI4LWJpdCByYW5kb20gbnVtYmVyLisrICBp ZiBSYW5kIGlzIE5VTEwsIHRoZW4gQVNTRVJUKCkuKysgIEBwYXJhbVtvdXRdDQo+ID4gPiBSYW5k ICAgICBCdWZmZXIgcG9pbnRlciB0byBzdG9yZSB0aGUgMTI4LWJpdCByYW5kb20gdmFsdWUuKysg IEByZXR2YWwgVFJVRQ0KPiA+ID4gUmFuZG9tIG51bWJlciBnZW5lcmF0ZWQgc3VjY2Vzc2Z1bGx5 LisgIEByZXR2YWwgRkFMU0UgICAgICAgIEZhaWxlZCB0bw0KPiBnZW5lcmF0ZQ0KPiA+ID4gdGhl IHJhbmRvbSBudW1iZXIuKysqKi8rQk9PTEVBTitFRklBUEkrR2V0UmFuZG9tTnVtYmVyMTI4ICgr DQo+IE9VVA0KPiA+ID4gVUlOVDY0ICAgICAgICAgICAgICAgICAgICAqUmFuZCsgICkreysgIEFT U0VSVCAoUmFuZCAhPSBOVUxMKTsrKyAgLy8rICAvLyBSZWFkIGZpcnN0DQo+IDY0DQo+ID4gPiBi aXRzKyAgLy8rICBpZiAoIUdldFJhbmRvbU51bWJlcjY0IChSYW5kKSkgeysgICAgcmV0dXJuIEZB TFNFOysgIH0rKyAgLy8rICAvLw0KPiA+ID4gUmVhZCBzZWNvbmQgNjQgYml0cysgIC8vKyAgcmV0 dXJuIEdldFJhbmRvbU51bWJlcjY0ICgrK1JhbmQpOyt9ZGlmZg0KPiA+ID4gLS1naXQgYS9VZWZp UGF5bG9hZFBrZy9MaWJyYXJ5L0Jhc2VSbmdMaWIvQmFzZVJuZ0xpYi5pbmYNCj4gPiA+IGIvVWVm aVBheWxvYWRQa2cvTGlicmFyeS9CYXNlUm5nTGliL0Jhc2VSbmdMaWIuaW5mDQo+ID4gPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXggMDAwMDAwMDAwMC4uNjdhOTFjY2ZmZg0KPiA+ ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gKysrIGIvVWVmaVBheWxvYWRQa2cvTGlicmFyeS9CYXNl Um5nTGliL0Jhc2VSbmdMaWIuaW5mDQo+ID4gPiBAQCAtMCwwICsxLDMyIEBADQo+ID4gPiArIyMg QGZpbGUrIyAgSW5zdGFuY2Ugb2YgUk5HIChSYW5kb20gTnVtYmVyIEdlbmVyYXRvcikgTGlicmFy eS4rIysjDQo+ID4gPiBDb3B5cmlnaHQgKGMpIDIwMjAgOWVsZW1lbnRzIEFnZW5jeSBHbWJILjxC Uj4rIysjICBTUERYLUxpY2Vuc2UtDQo+IElkZW50aWZpZXI6DQo+ID4gPiBCU0QtMi1DbGF1c2Ut UGF0ZW50KyMrIyMrK1tEZWZpbmVzXSsgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9 DQo+ID4gPiAweDAwMDEwMDA1KyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gQmFz ZVJuZ0xpYisgIE1PRFVMRV9VTklfRklMRQ0KPiA+ID4gPSBCYXNlUm5nTGliLnVuaSsgIEZJTEVf R1VJRCAgICAgICAgICAgICAgICAgICAgICA9IDA1QzQ4NDMxLURFMTgtNDU1MC05MzFBLQ0KPiA+ ID4gMzM1MEU4NTUxNDk4KyAgTU9EVUxFX1RZUEUgICAgICAgICAgICAgICAgICAgID0gQkFTRSsg IFZFUlNJT05fU1RSSU5HDQo+ID4gPiA9IDEuMCsgIExJQlJBUllfQ0xBU1MgICAgICAgICAgICAg ICAgICA9IFJuZ0xpYisgIENPTlNUUlVDVE9SICAgICAgICAgICAgICAgICAgICA9DQo+ID4gPiBC YXNlUm5nTGliQ29uc3RydWN0b3IrKyMrIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAgICAgICAg PSBJQTMyDQo+ID4gPiBYNjQrIysrW1NvdXJjZXMuSWEzMiwgU291cmNlcy5YNjRdKyAgQmFzZVJu Zy5jKytbUGFja2FnZXNdKw0KPiA+ID4gTWRlUGtnL01kZVBrZy5kZWMrK1tMaWJyYXJ5Q2xhc3Nl c10rICBCYXNlTGliKyAgRGVidWdMaWJkaWZmIC0tZ2l0DQo+ID4gPiBhL1VlZmlQYXlsb2FkUGtn L0xpYnJhcnkvQmFzZVJuZ0xpYi9CYXNlUm5nTGliLnVuaQ0KPiA+ID4gYi9VZWZpUGF5bG9hZFBr Zy9MaWJyYXJ5L0Jhc2VSbmdMaWIvQmFzZVJuZ0xpYi51bmkNCj4gPiA+IG5ldyBmaWxlIG1vZGUg MTAwNjQ0DQo+ID4gPiBpbmRleCAwMDAwMDAwMDAwLi5mM2VkOTU0YzUyDQo+ID4gPiAtLS0gL2Rl di9udWxsDQo+ID4gPiArKysgYi9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0Jhc2VSbmdMaWIvQmFz ZVJuZ0xpYi51bmkNCj4gPiA+IEBAIC0wLDAgKzEsMTcgQEANCj4gPiA+ICsvLyAvKiogQGZpbGUr Ly8gSW5zdGFuY2Ugb2YgUk5HIChSYW5kb20gTnVtYmVyIEdlbmVyYXRvcikNCj4gPiA+ICtMaWJy YXJ5LisvLysvLw0KPiA+ID4gQmFzZVJuZyBMaWJyYXJ5IHRoYXQgdXNlcyBDUFUgUmRSYW5kIGlu c3RydWN0aW9uIGFjY2VzcyB0bw0KPiA+ID4gcHJvdmlkZSsvLyBoaWdoLSBxdWFsaXR5IHJhbmRv bSBudW1iZXJzLisvLysvLyBDb3B5cmlnaHQgKGMpIDIwMTUsDQo+ID4gPiBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+Ky8vKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOg0KPiBCU0QtMi1DbGF1c2UtUGF0ZW50Ky8vKy8vDQo+ID4gPiAqKi8rKysjc3RyaW5nIFNU Ul9NT0RVTEVfQUJTVFJBQ1QgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJJbnN0YW5jZQ0K PiBvZg0KPiA+ID4gUk5HIExpYnJhcnkiKysjc3RyaW5nIFNUUl9NT0RVTEVfREVTQ1JJUFRJT04g ICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiAiQmFzZVJuZyBMaWJyYXJ5IHRoYXQgdXNl cyBDUFUgUmRSYW5kIGluc3RydWN0aW9uIGFjY2VzcyB0byBwcm92aWRlDQo+ID4gPiBoaWdoLSBx dWFsaXR5IHJhbmRvbSBudW1iZXJzIitkaWZmIC0tZ2l0DQo+ID4gPiBhL1VlZmlQYXlsb2FkUGtn L1VlZmlQYXlsb2FkUGtnLmRzYw0KPiA+ID4gYi9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBr Zy5kc2MNCj4gPiA+IGluZGV4IGFlNjJhOWM0ZDYuLjc4YTQ3NWVhMDIgMTAwNjQ0DQo+ID4gPiAt LS0gYS9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kc2MNCj4gPiA+ICsrKyBiL1VlZmlQ YXlsb2FkUGtnL1VlZmlQYXlsb2FkUGtnLmRzYw0KPiA+ID4gQEAgLTQ5NCw2ICs0OTQsMTQgQEAN Cj4gPiA+ICAhZW5kaWYgICBVZWZpUGF5bG9hZFBrZy9HcmFwaGljc091dHB1dER4ZS9HcmFwaGlj c091dHB1dER4ZS5pbmYgKyAgIysgICMNCj4gPiA+IFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yKyAg IysNCj4gPiA+IFNlY3VyaXR5UGtnL1JhbmRvbU51bWJlckdlbmVyYXRvci9SbmdEeGUvUm5nRHhl LmluZiB7Kw0KPiA+ID4gPExpYnJhcnlDbGFzc2VzPisNCj4gPiA+IFJuZ0xpYnxVZWZpUGF5bG9h ZFBrZy9MaWJyYXJ5L0Jhc2VSbmdMaWIvQmFzZVJuZ0xpYi5pbmYrICB9KyAgICMtLS0tLS0tLS0t LS0NCj4gLS0tLS0NCj4gPiA+IC0tLS0tLS0tLS0tLS0gICAjICBCdWlsZCB0aGUgc2hlbGwgICAj LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZGlmZiAtLWdpdA0KPiA+ID4gYS9VZWZpUGF5 bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5mZGYNCj4gPiA+IGIvVWVmaVBheWxvYWRQa2cvVWVmaVBh eWxvYWRQa2cuZmRmDQo+ID4gPiBpbmRleCBhOTdhY2U3Mzk1Li41N2MwNmM4NjIxIDEwMDY0NA0K PiA+ID4gLS0tIGEvVWVmaVBheWxvYWRQa2cvVWVmaVBheWxvYWRQa2cuZmRmDQo+ID4gPiArKysg Yi9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5mZGYNCj4gPiA+IEBAIC0xNjksNiArMTY5 LDEwIEBAIElORg0KPiA+ID4gTWRlTW9kdWxlUGtnL0J1cy9Vc2IvVXNiQnVzRHhlL1VzYkJ1c0R4 ZS5pbmYNCj4gPiA+ICBJTkYgTWRlTW9kdWxlUGtnL0J1cy9Vc2IvVXNiS2JEeGUvVXNiS2JEeGUu aW5mIElORg0KPiA+ID4gTWRlTW9kdWxlUGtnL0J1cy9Vc2IvVXNiTWFzc1N0b3JhZ2VEeGUvVXNi TWFzc1N0b3JhZ2VEeGUuaW5mDQo+ICsjKyMNCj4gPiA+IFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9y KyMrSU5GDQo+ID4gPiBTZWN1cml0eVBrZy9SYW5kb21OdW1iZXJHZW5lcmF0b3IvUm5nRHhlL1Ju Z0R4ZS5pbmYgICMgIyBTaGVsbC0tDQo+ID4gPiAyLjI2LjINCj4gPg0KPiANCj4gDQo+IA0KPiAN Cg0K