From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by mx.groups.io with SMTP id smtpd.web10.8460.1602826341276280608 for ; Thu, 15 Oct 2020 22:32:21 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=aZ4GtJd6; spf=pass (domain: hpe.com, ip: 148.163.147.86, mailfrom: prvs=0558ce792e=terry.lee@hpe.com) Received: from pps.filterd (m0134420.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 09G5VB1F003323; Fri, 16 Oct 2020 05:32:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=v946sZEe8NDvIQC1gRmp9yFKeXIZZrQyNvtOf5ecOJs=; b=aZ4GtJd6d3jhEcWCzBY5JRp450Q/qwwPYmabv7WsaStu+mYNf+/aG6jGPSPNDWqpQDaV qEnu/nM+b/jym817pPaw5Rd2QXWAxdgf4xzW7c7FMdqMowWm356SW2yt7VHfDEL6nKpT dNBtrk71WmMUilJRWY6lB6m7MCc0YYMqsWQk+IShSNPXgMmU4AlLL4DnFcCMPTdKpadG hgm7XRjtBpAlps1LseX84P260ZdW+9hLTzrWLn5wGBttSBgh7WWk0WKhPwW4VsU/UY/g 2ELT9fwpnG80lNaNS6d2sOsCABurxvb6Ig9nqy3Snv4lV+AT3ezmk/K5JZ2t/7Kab5Qw iA== Received: from g2t2353.austin.hpe.com (g2t2353.austin.hpe.com [15.233.44.26]) by mx0b-002e3701.pphosted.com with ESMTP id 345gq7hj5g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 16 Oct 2020 05:32:20 +0000 Received: from G9W8453.americas.hpqcorp.net (exchangepmrr1.us.hpecorp.net [16.216.160.211]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g2t2353.austin.hpe.com (Postfix) with ESMTPS id 9A2B593; Fri, 16 Oct 2020 05:32:19 +0000 (UTC) Received: from G2W6310.americas.hpqcorp.net (2002:10c5:4034::10c5:4034) by G9W8453.americas.hpqcorp.net (2002:10d8:a0d3::10d8:a0d3) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 16 Oct 2020 05:32:19 +0000 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (15.241.52.10) by G2W6310.americas.hpqcorp.net (16.197.64.52) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Fri, 16 Oct 2020 05:32:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mawE8A0WU92L3bb+O4dQhTO1uJza7dfagDM/RS5T6eWgGX/nBRQeBR5unrne0O9p30d3e1t/OG8c6tZxBO2783yHCL5qmF6/9wsRn1SfMrZtql1/cTGnFwkD3q/IahuHl5Yf1tVK/+udjkqmRlOfx7b9zjFYFvlQnAgYS4Ip9+4Ckzv64rtoBJQWOvy6eM41G7JVvVMTbF5KdSxMhX9vpSFpkMstYFrjXH3zbJbG102MM0EZTbngks/7EuG0qq7/w713/b8N7UHjRNBKCM2V/JcyXTxZIuGrYF0os5pB6C5TV2VzIaLOxqIfsuRP5yLAU2XjEaL/PeKwD7R9Yb6eMg== 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=9cf1CJ7UlI48RCGYaiRplcQ7kaOt6e3HZaf9lV3Z2ds=; b=EeIFCuMf9XchVnVNGp/LXM11i8NkU9uE+YgrJfpGfBc/yoI+8we/3GzkJvcm1+iUa7z8KiDkSTA+tV3eM6MDKPY7fMQ2yHFLPD65tIhgdMkggbnpILN9PTDHffGxWFjENeCHb0GHV3WL9HtxmdDzvpnt6PB2NRoQMpnnVUZXKrOv4evKODUzM9zJ23lema8z/okzLMZQSM4dOBmhZ8at0MvagBNVrf/hlq4ZjMI3ikh066d3pt5HzNnxObslmIVH5zDlQlxk9jQ67SYNjlUYnhUnZZ9TVdddWmhhxYpc/5Sx5OvVXF2qLjPEzL784BN52GvbqOC1Qbzk7loBGhOr2g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Received: from DF4PR8401MB0523.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:760a::23) by DF4PR8401MB0586.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7608::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21; Fri, 16 Oct 2020 05:32:17 +0000 Received: from DF4PR8401MB0523.NAMPRD84.PROD.OUTLOOK.COM ([fe80::18e:8dab:e82a:395e]) by DF4PR8401MB0523.NAMPRD84.PROD.OUTLOOK.COM ([fe80::18e:8dab:e82a:395e%4]) with mapi id 15.20.3477.024; Fri, 16 Oct 2020 05:32:17 +0000 From: "Lee, Terry" To: "Yao, Jiewen" , "devel@edk2.groups.io" , "stefanb@linux.ibm.com" , "lersek@redhat.com" , "Gao, Zhichao" CC: "Wang, Jian J" , "Zhang, Chao B" , =?utf-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Subject: Re: [edk2-devel] [PATCH] SecurityPkg/Tcg2PhysicalPresenceLib: Fix incorrect TCG VER comparision Thread-Topic: [edk2-devel] [PATCH] SecurityPkg/Tcg2PhysicalPresenceLib: Fix incorrect TCG VER comparision Thread-Index: AQHWVZtB1WiaOW7xZkeX1UsjG9Ewyaj/BMIAgAD2pQCAAFN4gIAAkmXAgJicICCAAIkyYIAAFRPQgAAAtyCAADOBwA== Date: Fri, 16 Oct 2020 05:32:16 +0000 Message-ID: References: <20200709024647.31672-1-zhichao.gao@intel.com> <280267d2-3d61-04a6-26da-96fd46ad5439@redhat.com> <1620688EE0DC3449.7755@groups.io> <6db37279-ddd0-4adf-6439-403ac90dd1e9@linux.ibm.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hpe.com; x-originating-ip: [64.30.99.183] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 13c9d1d7-f313-45d3-8e77-08d87194d84f x-ms-traffictypediagnostic: DF4PR8401MB0586: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2276; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4HUTsNAR9ZBk5IkF7NvT65Enr49tefIB1u6oI8QGSEwWcUVgPMCQJYC0O5hjsCSWCBMPrayYcCKlYbyH6g7vHCr/nCsWAMnz2qFaS9S/qNlWLwXuukQOicjtrRMC5SBYgi7nIlJRnY3BnNc198VwQN8uU5p8CL6HaroTFqPTD9p9rZfKy46cDx8bQJezsZYvLMNHBbUEzIV1QngCADdajvRrovUSyzutWOoKaxJFPuNyBSgKPLQRDIVsPSrDoHz5OUNJG5iI8UCp/y2ZGo6yOL3CYKAHTVC8yDyTvHPOEmiKTiAwIYRHvdBOrXteO+ScTgErMiyKq1JVmp47I7IIf0tiQ18mJ12JJhNCkl7FnK7fuIGceo4AYIyQFDrJvZTVwIs8RId5q4qhzQfpOERFOQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DF4PR8401MB0523.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(396003)(366004)(346002)(39860400002)(376002)(136003)(9686003)(5660300002)(4326008)(478600001)(966005)(316002)(86362001)(52536014)(83380400001)(15650500001)(2906002)(33656002)(186003)(26005)(8676002)(8936002)(6506007)(66446008)(64756008)(66946007)(71200400001)(110136005)(66556008)(66476007)(54906003)(76116006)(7696005)(19627235002)(55016002)(53546011);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: B1VEdnFM9rA6MfCYZBTBLg6GqgzW8skP7xfn0P1X5dsdFvWgUfNf/ZYee6EimYZwFmrC/T3rZ/5A7WYXUvoJJOzOcQH6+gRjCVshX+Z3O7AYQEbselso7yUqMrmly9n+Nmooshd5uey4RmFfNw40e5CDS82TdoqvCPk8WAeW5AyBWJw5kh/NhEewKlYGllHZzsRV0CuAIuA0SBc8ysz8T3k9f90o9PqNydTKqG558bL2d151O4DSgQW+v6rWIxONir64U/dJ+YWYmaoDgJp8MBYD5QQ7Akxxbo/Dwis8fpXTBJPDH8YEjZrg3c63SWK1fQCmWHRZCIDfIiHUSUgZTg2TLY7bk2d2xJIQpoJIPSCdlNoaGw2CKaQwe2zsSnvDIvmysc0cMhew1x7tw/Tl03W9Ftkh73Veb/TjIwNbOVNaKzSeSNBsayRXHIZfwrJIWIZoYF3REZL+0JqPN5Sq9t4F0NXGFc4udOrI+r55Y3u9OHtokcyqaX60rKmqfXLuwbxkojdk4QHT/ilUfzoKz84NkaVfPJgDlYruM8PYr5RgOstFS/G3Ho902NFy4ZnU0TxpANlQHTTVne2ke31n0KGcmQaJQoEXQvCqS/STzP08SYh1jYtaWzpFOhcwO1Md0kjlS7lP+W22h/UA4Ur6kA== x-ms-exchange-transport-forked: True X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DF4PR8401MB0523.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 13c9d1d7-f313-45d3-8e77-08d87194d84f X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2020 05:32:16.9566 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CIG6qg+TkTQHWcso7YqspbHebUMEz5qPGUTvzro2xlufQ4okueh314+RyzAief/GTTUlcACrZ8l1DhT+LGgzgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DF4PR8401MB0586 X-OriginatorOrg: hpe.com X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-10-16_02:2020-10-16,2020-10-16 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 malwarescore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 adultscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2010160036 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Smlld2VuLA0KDQoJSSBoYXZlIG9ubHkgUFAxLjMgY29uZmlndXJhdGlvbi4gIFRoZSBvbmx5IFdI Q0sgdGVzdCBmYWlsdXJlIGlzIGEga25vd24gV2luZG93cyBpc3N1ZSB0aGF0IEkgYmVsaWV2ZSBp cyB1bnJlbGF0ZWQgdG8gUFAuDQoNCgkJCQlUZXJyeQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KRnJvbTogWWFvLCBKaWV3ZW4gW21haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbV0gDQpT ZW50OiBUaHVyc2RheSwgT2N0b2JlciAxNSwgMjAyMCA3OjMxIFBNDQpUbzogTGVlLCBUZXJyeSA8 dGVycnkubGVlQGhwZS5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgc3RlZmFuYkBsaW51eC5p Ym0uY29tOyBsZXJzZWtAcmVkaGF0LmNvbTsgR2FvLCBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRl bC5jb20+DQpDYzogV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBaaGFuZywg Q2hhbyBCIDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPjsgTWFyYy1BbmRyw6kgTHVyZWF1IDxtYXJj YW5kcmUubHVyZWF1QHJlZGhhdC5jb20+DQpTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRD SF0gU2VjdXJpdHlQa2cvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWI6IEZpeCBpbmNvcnJlY3QgVENH IFZFUiBjb21wYXJpc2lvbg0KDQpUaGFua3MgVGVycnkuDQpJIHRlbmQgdG8gZ2l2ZSBSLUIuIEkg cmVhZCB0aGUgY29kZSBpdCBzZWVtcyBubyBpbXBhY3QuIA0KDQpXb3VsZCB5b3UgcGxlYXNlIGNv bmZpcm0geW91IGhhdmUgdGVzdGVkIGJvdGggUFAxLjIgYW5kIFBQMS4zIGNvbmZpZ3VyYXRpb24s IHdpdGggd2luZG93cyBXSENLIHRlc3QgcGFzcz8NCg0KVGhhbmsgeW91DQpZYW8gSmlld2VuDQoN Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGVlLCBUZXJyeSA8dGVycnku bGVlQGhwZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAxNiwgMjAyMCAxMDoyNSBBTQ0K PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91 cHMuaW87IA0KPiBzdGVmYW5iQGxpbnV4LmlibS5jb207IGxlcnNla0ByZWRoYXQuY29tOyBHYW8s IFpoaWNoYW8gDQo+IDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IENjOiBXYW5nLCBKaWFuIEog PGppYW4uai53YW5nQGludGVsLmNvbT47IFpoYW5nLCBDaGFvIEIgDQo+IDxjaGFvLmIuemhhbmdA aW50ZWwuY29tPjsgTWFyYy1BbmRyw6kgTHVyZWF1IA0KPiA8bWFyY2FuZHJlLmx1cmVhdUByZWRo YXQuY29tPg0KPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gU2VjdXJpdHlQa2cv VGNnMlBoeXNpY2FsUHJlc2VuY2VMaWI6IA0KPiBGaXggaW5jb3JyZWN0IFRDRyBWRVIgY29tcGFy aXNpb24NCj4gDQo+IEppZXdlbiwNCj4gDQo+IEkgdGVzdGVkIHRoaXMgcGF0Y2ggb24gSFBFIFN1 cGVyZG9tZSBGbGV4IHdpdGggYm90aCBMaW51eCBhbmQgV2luZG93cy4NCj4gDQo+IFRlcnJ5DQo+ IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZYW8sIEppZXdlbiBbbWFp bHRvOmppZXdlbi55YW9AaW50ZWwuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxNSwg MjAyMCA2OjA5IFBNDQo+IFRvOiBMZWUsIFRlcnJ5IDx0ZXJyeS5sZWVAaHBlLmNvbT47IGRldmVs QGVkazIuZ3JvdXBzLmlvOyANCj4gc3RlZmFuYkBsaW51eC5pYm0uY29tOyBsZXJzZWtAcmVkaGF0 LmNvbTsgR2FvLCBaaGljaGFvIA0KPiA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0KPiBDYzogV2Fu ZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBaaGFuZywgQ2hhbyBCIA0KPiA8Y2hh by5iLnpoYW5nQGludGVsLmNvbT47IE1hcmMtQW5kcsOpIEx1cmVhdSANCj4gPG1hcmNhbmRyZS5s dXJlYXVAcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIFNl Y3VyaXR5UGtnL1RjZzJQaHlzaWNhbFByZXNlbmNlTGliOiANCj4gRml4IGluY29ycmVjdCBUQ0cg VkVSIGNvbXBhcmlzaW9uDQo+IA0KPiBIZWxsbw0KPiBJcyB0aGVyZSBhbnkgb25lIGNhbiBzaGFy ZSB0aGUgaW5mb3JtYXRpb24gb24gd2hhdCB0ZXN0IGhhcyBiZWVuIGRvbmUgDQo+IGZvciB0aGlz ID8NCj4gDQo+IFRoYW5rIHlvdQ0KPiBZYW8gSmlld2VuDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogTGVlLCBUZXJyeSA8dGVycnkubGVlQGhwZS5jb20+DQo+ ID4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDE2LCAyMDIwIDEyOjU5IEFNDQo+ID4gVG86IGRldmVs QGVkazIuZ3JvdXBzLmlvOyBzdGVmYW5iQGxpbnV4LmlibS5jb207IGxlcnNla0ByZWRoYXQuY29t OyANCj4gPiBHYW8sIFpoaWNoYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPiBDYzogWWFv LCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKIA0KPiA+IDxqaWFu Lmoud2FuZ0BpbnRlbC5jb20+OyBaaGFuZywgQ2hhbyBCIDxjaGFvLmIuemhhbmdAaW50ZWwuY29t PjsgDQo+ID4gTWFyYy0gQW5kcsOpIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQuY29t Pg0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBTZWN1cml0eVBrZy9UY2cy UGh5c2ljYWxQcmVzZW5jZUxpYjoNCj4gPiBGaXggaW5jb3JyZWN0IFRDRyBWRVIgY29tcGFyaXNp b24NCj4gPg0KPiA+IENvdWxkIHRoZSBwYWNrYWdlIG1haW50YWluZXIgbWVyZ2UgdGhpcyBwYXRj aD8gIFRoYW5rcy4NCj4gPg0KPiA+IFRlcnJ5DQo+ID4NCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+IEZyb206IFN0ZWZhbiBCZXJnZXIgW21haWx0bzpzdGVmYW5iQGxpbnV4Lmli bS5jb21dDQo+ID4gU2VudDogRnJpZGF5LCBKdWx5IDEwLCAyMDIwIDc6MjcgQU0NCj4gPiBUbzog ZGV2ZWxAZWRrMi5ncm91cHMuaW87IGxlcnNla0ByZWRoYXQuY29tOyBHYW8sIFpoaWNoYW8gDQo+ ID4gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPiBDYzogTGVlLCBUZXJyeSA8dGVycnkubGVl QGhwZS5jb20+OyBZYW8sIEppZXdlbiANCj4gPiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5n LCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFpoYW5nLCANCj4gPiBDaGFvIEIgPGNo YW8uYi56aGFuZ0BpbnRlbC5jb20+OyBNYXJjLUFuZHLDqSBMdXJlYXUgDQo+ID4gPG1hcmNhbmRy ZS5sdXJlYXVAcmVkaGF0LmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRD SF0gU2VjdXJpdHlQa2cvVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWI6DQo+ID4gRml4IGluY29ycmVj dCBUQ0cgVkVSIGNvbXBhcmlzaW9uDQo+ID4NCj4gPiBPbiA3LzEwLzIwIDk6NTMgQU0sIFN0ZWZh biBCZXJnZXIgd3JvdGU6DQo+ID4gPiBPbiA3LzEwLzIwIDE6NDMgQU0sIExhc3psbyBFcnNlayB3 cm90ZToNCj4gPiA+PiAoK01hcmMtQW5kcsOpLCBTdGVmYW4pDQo+ID4gPj4NCj4gPiA+PiBPbiAw Ny8xMC8yMCAwMjo0NCwgR2FvLCBaaGljaGFvIHdyb3RlOg0KPiA+ID4+PiBUaGlzIGJ1ZyBpcyBu b3Qgb2Jlc2VydmVkIGJ5IG1lLiBCdXQgSSB2aWV3IHRoZSBjb2RlLiBUaGUgDQo+ID4gPj4+IGNv bmRpdGlvbiBpcyBpbmNvcnJlY3QgYW5kIGl0IHdvdWxkIGFmZmVjdCB0aGUgVENHIG9wZXJhdGlv bjoNCj4gPiA+Pj4gICAgICBpZiAoIW1Jc1RjZzJQUFZlckxvd2VyVGhhbl8xXzMpIHsNCj4gPiA+ Pj4gICAgICAgICAgaWYgKE9wZXJhdGlvblJlcXVlc3QgPA0KPiA+ID4+PiBUQ0cyX1BIWVNJQ0FM X1BSRVNFTkNFX1ZFTkRPUl9TUEVDSUZJQ19PUEVSQVRJT04pIHsNCj4gPiA+Pj4gICAgICAgICAg ICAvLw0KPiA+ID4+PiAgICAgICAgICAgIC8vIFRDRzIgUFAxLjMgc3BlYyBkZWZpbmVkIG9wZXJh dGlvbnMgdGhhdCBhcmUgDQo+ID4gPj4+IHJlc2VydmVkIG9yIHVuLWltcGxlbWVudGVkDQo+ID4g Pj4+ICAgICAgICAgICAgLy8NCj4gPiA+Pj4gICAgICAgICAgICByZXR1cm4gVENHX1BQX0dFVF9V U0VSX0NPTkZJUk1BVElPTl9OT1RfSU1QTEVNRU5URUQ7DQo+ID4gPj4+ICAgICAgICAgIH0NCj4g PiA+Pj4gICAgICAgIH0gZWxzZSB7DQo+ID4gPj4+ICAgICAgICAgLy8NCj4gPiA+Pj4gICAgICAg ICAvLyBUQ0cgUFAgbG93ZXIgdGhhbiAxLjMuICgxLjAsIDEuMSwgMS4yKQ0KPiA+ID4+PiAgICAg ICAgIC8vDQo+ID4gPj4+ICAgICAgICAgaWYgKE9wZXJhdGlvblJlcXVlc3QgPD0NCj4gPiA+Pj4g VENHMl9QSFlTSUNBTF9QUkVTRU5DRV9OT19BQ1RJT05fTUFYKSB7DQo+ID4gPj4+ICAgICAgICAg ICBSZXF1ZXN0Q29uZmlybWVkID0gVFJVRTsNCj4gPiA+Pj4gICAgICAgICB9IGVsc2UgaWYgKE9w ZXJhdGlvblJlcXVlc3QgPA0KPiA+ID4+PiBUQ0cyX1BIWVNJQ0FMX1BSRVNFTkNFX1ZFTkRPUl9T UEVDSUZJQ19PUEVSQVRJT04pIHsNCj4gPiA+Pj4gICAgICAgICAgIHJldHVybiBUQ0dfUFBfR0VU X1VTRVJfQ09ORklSTUFUSU9OX05PVF9JTVBMRU1FTlRFRDsNCj4gPiA+Pj4gICAgICAgICB9DQo+ ID4gPj4+ICAgICAgICB9DQo+ID4gPj4+DQo+ID4gPj4gSSd2ZSBmb3VuZCB0aGF0IGNvZGUgbXlz ZWxmLCBidXQgSSdtIG5vdCBmYW1pbGlhciBlbm91Z2ggd2l0aCBUUE0gDQo+ID4gPj4gUFBJIHN0 dWZmIHRvIHVuZGVyc3RhbmQgaW1tZWRpYXRlbHkgdGhlIGVmZmVjdHMgb2YgdGhpcyBjaGFuZ2Uu IEkgDQo+ID4gPj4gY2FuIHNlZSB0aGF0IHdoZXJlIHdlIHVzZWQgdG8gcmV0dXJuIA0KPiA+ID4+ IFRDR19QUF9HRVRfVVNFUl9DT05GSVJNQVRJT05fTk9UX0lNUExFTUVOVEVEIGJlZm9yZSwgd2UN Cj4gPiBjb3VsZCBub3cNCj4gPiA+PiBhc3NpZ24gIlJlcXVlc3RDb25maXJtZWQgPSBUUlVFIiwg YW5kIHZpY2UgdmVyc2EsIGR1ZSB0byANCj4gPiA+PiAibUlzVGNnMlBQVmVyTG93ZXJUaGFuXzFf MyIgYmVpbmcgcG90ZW50aWFsbHkgaW52ZXJ0ZWQuDQo+ID4gPj4NCj4gPiA+PiBCdXQgd2hhdCBk b2VzIHRoYXQgKm1lYW4qPyBXaGF0IGlzIHRoZSBiZWhhdmlvcmFsIGNoYW5nZSB0aGF0IA0KPiA+ ID4+IGh1bWFuIGVuZC11c2Vycywgb3Igc29mdHdhcmUgY29tcG9uZW50cywgd2lsbCBleHBlcmll bmNlPw0KPiA+ID4NCj4gPiA+DQo+ID4gPiBUaGUgYWJvdmUgY29kZSBzbmlwcGVkIGlzIGxvY2F0 ZWQgaW4gYSBkZWZhdWx0IGJyYW5jaCBvZiBhIGxhcmdlIA0KPiA+ID4gc3dpdGNoIHN0YXRlbWVu dCB0aGF0IGhhbmRsZXMgbW9zdCBvZiB0aGUgY29tbW9uIFBQSSBvcGVyYXRpb25zIA0KPiA+ID4g aW5kZXBlbmRlbnQgb2YgdGhpcyBjaGFuZ2UsIHNvIHRoYXQgYXQgbGVhc3QgaXMgZ29vZC4NCj4g PiA+DQo+ID4gPiBJIHdvdWxkIHNheSB0aGF0IGluIHRoZSB3b3JzdCBjYXNlIHNvbWUgb2YgdGhl IG9wZXJhdGlvbnMgbm90IA0KPiA+ID4gb3RoZXJ3aXNlIGhhbmRsZWQgbWF5IGhhdmUgbWlzdGFr ZW5seSBmYWlsZWQgb3IgY291bGQgaGF2ZSBiZWVuIA0KPiA+ID4gZXhlY3V0ZWQgd2l0aG91dCB1 c2VyIGNvbmZpcm1hdGlvbi9pbnRlcmFjdGlvbi4gT24gTGludXggYXQgbGVhc3QgDQo+ID4gPiBQ UEkgcmVxdWVzdHMgY2FuIG9ubHkgYmUgc2VudCBieSByb290Lg0KPiA+DQo+ID4NCj4gPiBJIGFt IHJ1bm5pbmcgYSBzb21ld2hhdCBkYXRlZCB2ZXJzaW9uIG9mIGVkazIgKEZlZG9yYSAzMSkuIFRo ZSANCj4gPiBvcGVyYXRpb25zIGFkdmVydGlzZWQgYXJlOiAwLDUsMTQsMjEsMjIsMjMsMjQsMzMs OTYsOTcuIEFsbCBvZiB0aGVzZSANCj4gPiBhcmUgaW5kaXZpZHVhbGx5IGhhbmRsZWQgaW4gdGhl IHN3aXRjaCBzdGF0ZW1lbnQsIHNvIHRoZXJlIHNob3VsZCBubyANCj4gPiBiZSBhbnkgaW1wYWN0 LiBJIGFtIGN1cnJlbnRseSBub3QgYXdhcmUgb2Ygd2hldGhlciB0aGlzIGxpc3QgY2FuIGJlIA0K PiA+IGV4dGVuZGVkIHdpdGggc29tZSBzb3J0IG9mIG1vZHVsZS4NCj4gPg0KPiA+DQo+ID4gPg0K PiA+ID4NCj4gPiA+Pg0KPiA+ID4+IFRoYW5rcw0KPiA+ID4+IExhc3psbw0KPiA+ID4+DQo+ID4g Pj4+IFNvIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGZpeGVkLg0KPiA+ID4+Pg0KPiA+ID4+PiBUaGFu a3MsDQo+ID4gPj4+IFpoaWNoYW8NCj4gPiA+Pj4NCj4gPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPj4+PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiANCj4gPiA+Pj4+IExhc3psbyBFcnNlaw0KPiA+ID4+ Pj4gU2VudDogVGh1cnNkYXksIEp1bHkgOSwgMjAyMCA2OjAyIFBNDQo+ID4gPj4+PiBUbzogZGV2 ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29tPg0K PiA+ID4+Pj4gQ2M6IFRlcnJ5IExlZSA8dGVycnkubGVlQGhwZS5jb20+OyBZYW8sIEppZXdlbiAN Cj4gPiA+Pj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFdhbmcsIEppYW4gSiA8amlhbi5qLndh bmdAaW50ZWwuY29tPjsgDQo+ID4gPj4+PiBaaGFuZywgQ2hhbyBCIDxjaGFvLmIuemhhbmdAaW50 ZWwuY29tPg0KPiA+ID4+Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdDQo+ID4g Pj4+PiBTZWN1cml0eVBrZy9UY2cyUGh5c2ljYWxQcmVzZW5jZUxpYjogRml4IGluY29ycmVjdCBU Q0cgVkVSIA0KPiA+ID4+Pj4gY29tcGFyaXNpb24NCj4gPiA+Pj4+DQo+ID4gPj4+PiBPbiAwNy8w OS8yMCAwNDo0NiwgR2FvLCBaaGljaGFvIHdyb3RlOg0KPiA+ID4+Pj4+IEZyb206IFRlcnJ5IExl ZSA8dGVycnkubGVlQGhwZS5jb20+DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBSRUY6DQo+ID4gPj4+ Pj4gSU5WQUxJRCBVUkkgUkVNT1ZFRC4NCj4gPiA+Pj4+PiB0aQ0KPiA+ID4+Pj4+IGFuDQo+ID4g Pj4+Pj4gb2NvcmUub3JnX3Nob3ctNUZidWcuY2dpLTNGaWQtDQo+ID4gM0QyNjk3JmQ9RHdJRGFR JmM9QzViOHpSUU8xbWlHbUJlVloyDQo+ID4gPj4+Pj4gTEZXZyZyPUpsYzBKeHI2MjBFWi0NCj4g PiBDcHB5cmpHb3RueEg5RHJUMEt2d2NMamVrWjlEb3cmbT1XUHYzdm41VkVlbFJDDQo+ID4gPj4+ Pj4gcy0NCj4gPg0KPiBXOHBmTk0wMHdNT2ZwS0Jlc1huQWhSZnlsRjdnJnM9aUZVWXRoVUNmSExl ZVFBdnJfT2hUUEhUaUE5aFp2dw0KPiA+IDQ4DQo+ID4gPj4+Pj4gQmo4WWhYaFFBSSZlPQ0KPiA+ ID4+Pj4+DQo+ID4gPj4+Pj4gVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWJDb25zdHJ1Y3RvciBzZXQg dGhlIG1vZHVsZSB2YXJpYWJsZQ0KPiA+ID4+Pj4+IG1Jc1RjZzJQUFZlckxvd2VyVGhhbl8xXzMg d2l0aCBpbmNvcnJlY3QgVENHIHZlcnNpb24NCj4gY29tcGFyaXNpb24uDQo+ID4gPj4+Pj4NCj4g PiA+Pj4+PiBDYzogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4g Q2M6IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4gQ2M6IENo YW8gWmhhbmcgPGNoYW8uYi56aGFuZ0BpbnRlbC5jb20+DQo+ID4gPj4+Pj4gU2lnbmVkLW9mZi1i eTogWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPiA+Pj4+PiAtLS0NCj4g PiA+Pj4+PiAuLi4vU21tVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIvU21tVGNnMlBoeXNpY2FsUHJl c2VuY2VMaWIuYyB8IA0KPiA+ID4+Pj4+IDINCj4gKy0NCj4gPiA+Pj4+PiAgIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4g ZGlmZiAtLWdpdA0KPiA+ID4+Pj4+DQo+ID4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L1NtbVRjZzJQ aHlzaWNhbFByZXNlbmNlTGliL1NtbVRjZzJQaHlzaWNhbFByDQo+ID4gPj4+Pj4gZXNlbg0KPiA+ ID4+Pj4+DQo+ID4gPj4+Pj4gY2VMaWIuYw0KPiA+ID4+Pj4+DQo+ID4gYi9TZWN1cml0eVBrZy9M aWJyYXJ5L1NtbVRjZzJQaHlzaWNhbFByZXNlbmNlTGliL1NtbVRjZzJQaHlzaWNhbFByDQo+ID4g Pj4+Pj4gZXNlbg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gY2VMaWIuYw0KPiA+ID4+Pj4+IGluZGV4 IDFjNDZkNWU2OWQuLjhhZmFhMGE3ODUgMTAwNjQ0DQo+ID4gPj4+Pj4gLS0tDQo+ID4gPj4+Pj4N Cj4gPiBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvU21tVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIvU21t VGNnMlBoeXNpY2FsUHINCj4gPiA+Pj4+PiBlc2VuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBjZUxp Yi5jDQo+ID4gPj4+Pj4gKysrDQo+ID4gPj4+Pj4NCj4gPiBiL1NlY3VyaXR5UGtnL0xpYnJhcnkv U21tVGNnMlBoeXNpY2FsUHJlc2VuY2VMaWIvU21tVGNnMlBoeXNpY2FsUHINCj4gPiA+Pj4+PiAr KysgZXNlbmNlTGliLmMNCj4gPiA+Pj4+PiBAQCAtMzg3LDcgKzM4Nyw3IEBAIFRjZzJQaHlzaWNh bFByZXNlbmNlTGliQ29uc3RydWN0b3IgKCB7DQo+ID4gPj4+Pj4gICAgIEVGSV9TVEFUVVMgIFN0 YXR1czsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0gIGlmIChBc2NpaVN0cm5DbXAoUFBfSU5GX1ZF UlNJT05fMV8yLCAoQ0hBUjggDQo+ID4gPj4+Pj4gKilQY2RHZXRQdHIoUGNkVGNnUGh5c2ljYWxQ cmVzZW5jZUludGVyZmFjZVZlciksDQo+ID4gPj4+Pj4gc2l6ZW9mKFBQX0lORl9WRVJTSU9OXzFf MikgLSAxKSA8PSAwKSB7DQo+ID4gPj4+Pj4gKyAgaWYgKEFzY2lpU3RybkNtcChQUF9JTkZfVkVS U0lPTl8xXzIsIChDSEFSOCANCj4gPiA+Pj4+PiArKilQY2RHZXRQdHIoUGNkVGNnUGh5c2ljYWxQ cmVzZW5jZUludGVyZmFjZVZlciksDQo+ID4gPj4+Pj4gKyBzaXplb2YoUFBfSU5GX1ZFUlNJT05f MV8yKSAtIDEpID49IDApIHsNCj4gPiA+Pj4+PiAgICAgICBtSXNUY2cyUFBWZXJMb3dlclRoYW5f MV8zID0gVFJVRTsNCj4gPiA+Pj4+PiAgICAgfQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4NCj4gPiA+ Pj4+IFdoYXQgaXMgdGhlIHByYWN0aWNhbCBpbXBhY3Qgb2YgdGhpcyBidWcgLyBmaXg/DQo+ID4g Pj4+Pg0KPiA+ID4+Pj4gVGhhbmtzDQo+ID4gPj4+PiBMYXN6bG8NCj4gPiA+Pj4+DQo+ID4gPj4+ Pg0KPiA+ID4+Pj4NCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4NCj4gPiA+DQo+ID4gPg0KPiA+ID4g DQo+ID4gPg0KPiA+DQo+IA0KDQo=