From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.61]) by mx.groups.io with SMTP id smtpd.web11.3027.1583879301865541696 for ; Tue, 10 Mar 2020 15:28:22 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=VwwqpQdD; spf=pass (domain: redhat.com, ip: 205.139.110.61, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1583879300; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=F89v4qe80QcZOEfD+A9Yz1BHsKxiVkWCq4gFGBYYbno=; b=VwwqpQdD579i5SL3gvoTZNk38rkkTPGpxWjXJcgZEBzSRyYir8vj1XgGNLYqZ1FV3tnrZm SYUPEteya9r3IIb4rC6hM/XwZ/cJ0rwEOQw83LMDDUPZveQx55jM0y/IUUt4mI22tDjQ0O VpqsPI6L42P9T8tuFFRP1JrbTy1yK9Q= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-188-o6M9zJRBPKOt1bubC_8yjQ-1; Tue, 10 Mar 2020 18:28:16 -0400 X-MC-Unique: o6M9zJRBPKOt1bubC_8yjQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C69DF18B5FA0; Tue, 10 Mar 2020 22:28:15 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-246.ams2.redhat.com [10.36.116.246]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2F6BE8F364; Tue, 10 Mar 2020 22:28:10 +0000 (UTC) From: "Laszlo Ersek" To: edk2-devel-groups-io Cc: Ard Biesheuvel , Jordan Justen , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH 5/5] OvmfPkg: improve SMM comms security with adaptive MemoryTypeInformation Date: Tue, 10 Mar 2020 23:27:39 +0100 Message-Id: <20200310222739.26717-6-lersek@redhat.com> In-Reply-To: <20200310222739.26717-1-lersek@redhat.com> References: <20200310222739.26717-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 KiBJbiB0aGUgSW50ZWwgd2hpdGVwYXBlcjoKCi0tdi0tCkEgVG91ciBCZXlvbmQgQklPUyAtLSBT ZWN1cmUgU01NIENvbW11bmljYXRpb24KCmh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvdGlh bm9jb3JlLmdpdGh1Yi5pby93aWtpL0VESy1JSS1TZWN1cml0eS1XaGl0ZS1QYXBlcnMKaHR0cHM6 Ly9naXRodWIuY29tL3RpYW5vY29yZS1kb2NzL0RvY3MvcmF3L21hc3Rlci9XaGl0ZV9QYXBlcnMv QV9Ub3VyX0JleW9uZF9CSU9TX1NlY3VyZV9TTU1fQ29tbXVuaWNhdGlvbi5wZGYKLS1eLS0KCmJ1 bGxldCMzIGluIHNlY3Rpb24gIkFzc3VtcHRpb24gYW5kIFJlY29tbWVuZGF0aW9uIiwgYW5kIGJ1 bGxldCM0IGluICJDYWxsCmZvciBhY3Rpb24iLCByZWNvbW1lbmQgZW5hYmxpbmcgdGhlIChhZGFw dGl2ZSkgTWVtb3J5IFR5cGUgSW5mb3JtYXRpb24KZmVhdHVyZS4KCiogSW4gdGhlIEludGVsIHdo aXRlcGFwZXI6CgotLXYtLQpBIFRvdXIgQmV5b25kIEJJT1MgLS0gTWVtb3J5IE1hcCBhbmQgUHJh Y3RpY2VzIGluIFVFRkkgQklPUwoKaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS90aWFub2Nv cmUuZ2l0aHViLmlvL3dpa2kvRURLLUlJLXdoaXRlLXBhcGVycwpodHRwczovL2dpdGh1Yi5jb20v dGlhbm9jb3JlLWRvY3MvRG9jcy9yYXcvbWFzdGVyL1doaXRlX1BhcGVycy9BX1RvdXJfQmV5b25k X0JJT1NfTWVtb3J5X01hcF9BbmRfUHJhY3RpY2VzX2luX1VFRklfQklPU19WMi5wZGYKLS1eLS0K CmZpZ3VyZSM2IGRlc2NyaWJlcyB0aGUgTWVtb3J5IFR5cGUgSW5mb3JtYXRpb24gZmVhdHVyZSBp biBkZXRhaWw7IG5hbWVseQphcyBhIGZlZWRiYWNrIGxvb3AgYmV0d2VlbiB0aGUgUGxhdGZvcm0g UEVJTSwgdGhlIERYRSBJUEwgUEVJTSwgdGhlIERYRQpDb3JlLCBhbmQgQkRTLgoKSW1wbGVtZW50 IHRoZSBtaXNzaW5nIFBsYXRmb3JtUGVpIGZ1bmN0aW9uYWxpdHkgaW4gT3ZtZlBrZywgZm9yIGZ1 bGZpbGxpbmcKdGhlIFNlY3VyZSBTTU0gQ29tbXVuaWNhdGlvbiByZWNvbW1lbmRhdGlvbi4KCklu IHRoZSBsb25nZXIgdGVybSwgT1ZNRiBzaG91bGQgaW5zdGFsbCB0aGUgV1NNVCBBQ1BJIHRhYmxl LCBhbmQgdGhpcwpwYXRjaCBjb250cmlidXRlcyB0byB0aGF0LgoKTm90ZXM6CgotIHRoZSBzdGVw IGluIGZpZ3VyZSM2IHdoZXJlIHRoZSBVRUZJIHZhcmlhYmxlIGlzIGNvcGllZCBpbnRvIHRoZSBI T0IgaXMKICBjb3ZlcmVkIGJ5IHRoZSBEWEUgSVBMIFBFSU0sIGluIHRoZSBEeGVMb2FkQ29yZSgp IGZ1bmN0aW9uLAoKLSAiUGNkUmVzZXRPbk1lbW9yeVR5cGVJbmZvcm1hdGlvbkNoYW5nZSIgbXVz dCBiZSByZXZlcnRlZCB0byB0aGUgREVDCiAgZGVmYXVsdCBUUlVFIHZhbHVlLCBiZWNhdXNlIGJv dGggd2hpdGVwYXBlcnMgaW5kaWNhdGUgdGhhdCBCRFMgbmVlZHMgdG8KICByZXNldCB0aGUgc3lz dGVtIGlmIHRoZSBNZW1vcnkgVHlwZSBJbmZvcm1hdGlvbiBjaGFuZ2VzLgoKQ2M6IEFyZCBCaWVz aGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPgpDYzogSm9yZGFuIEp1c3RlbiA8am9y ZGFuLmwuanVzdGVuQGludGVsLmNvbT4KQ2M6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGls bWRAcmVkaGF0LmNvbT4KUmVmOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19i dWcuY2dpP2lkPTM4NgpTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQu Y29tPgotLS0KIE92bWZQa2cvT3ZtZlBrZ0lhMzIuZHNjICAgICAgICAgICAgIHwgICAyICsKIE92 bWZQa2cvT3ZtZlBrZ0lhMzJYNjQuZHNjICAgICAgICAgIHwgICAyICsKIE92bWZQa2cvT3ZtZlBr Z1g2NC5kc2MgICAgICAgICAgICAgIHwgICAyICsKIE92bWZQa2cvUGxhdGZvcm1QZWkvUGxhdGZv cm1QZWkuaW5mIHwgICAyICsKIE92bWZQa2cvUGxhdGZvcm1QZWkvUGxhdGZvcm0uaCAgICAgIHwg ICA1ICsKIE92bWZQa2cvUGxhdGZvcm1QZWkvTWVtVHlwZUluZm8uYyAgIHwgMTQ3ICsrKysrKysr KysrKysrKysrKysrCiBPdm1mUGtnL1BsYXRmb3JtUGVpL1BsYXRmb3JtLmMgICAgICB8ICAyMyAr LS0KIDcgZmlsZXMgY2hhbmdlZCwgMTYxIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL092bWZQa2cvT3ZtZlBrZ0lhMzIuZHNjIGIvT3ZtZlBrZy9Pdm1mUGtnSWEz Mi5kc2MKaW5kZXggNGM5ZmY0MTljNDYyLi4wMmNhMTdkYjhiMmEgMTAwNjQ0Ci0tLSBhL092bWZQ a2cvT3ZtZlBrZ0lhMzIuZHNjCisrKyBiL092bWZQa2cvT3ZtZlBrZ0lhMzIuZHNjCkBAIC00NDgs NyArNDQ4LDkgQEAgW1BjZHNGZWF0dXJlRmxhZ10KIA0KIFtQY2RzRml4ZWRBdEJ1aWxkXQ0KICAg Z0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFN0YXR1c0NvZGVNZW1vcnlTaXplfDEN CishaWYgJChTTU1fUkVRVUlSRSkgPT0gRkFMU0UNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNw YWNlR3VpZC5QY2RSZXNldE9uTWVtb3J5VHlwZUluZm9ybWF0aW9uQ2hhbmdlfEZBTFNFDQorIWVu ZGlmDQogICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4aW11bUd1aWRlZEV4dHJhY3RI YW5kbGVyfDB4MTANCiAhaWYgKCQoRkRfU0laRV9JTl9LQikgPT0gMTAyNCkgfHwgKCQoRkRfU0la RV9JTl9LQikgPT0gMjA0OCkNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RN YXhWYXJpYWJsZVNpemV8MHgyMDAwDQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9Pdm1mUGtnSWEzMlg2 NC5kc2MgYi9Pdm1mUGtnL092bWZQa2dJYTMyWDY0LmRzYwppbmRleCA1NjY4MWU5ZTQ1ODAuLmQw OGNmNTU4YzZhYSAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9Pdm1mUGtnSWEzMlg2NC5kc2MKKysrIGIv T3ZtZlBrZy9Pdm1mUGtnSWEzMlg2NC5kc2MKQEAgLTQ1Miw3ICs0NTIsOSBAQCBbUGNkc0ZlYXR1 cmVGbGFnXQogDQogW1BjZHNGaXhlZEF0QnVpbGRdDQogICBnRWZpTWRlTW9kdWxlUGtnVG9rZW5T cGFjZUd1aWQuUGNkU3RhdHVzQ29kZU1lbW9yeVNpemV8MQ0KKyFpZiAkKFNNTV9SRVFVSVJFKSA9 PSBGQUxTRQ0KICAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJlc2V0T25NZW1v cnlUeXBlSW5mb3JtYXRpb25DaGFuZ2V8RkFMU0UNCishZW5kaWYNCiAgIGdFZmlNZGVQa2dUb2tl blNwYWNlR3VpZC5QY2RNYXhpbXVtR3VpZGVkRXh0cmFjdEhhbmRsZXJ8MHgxMA0KICFpZiAoJChG RF9TSVpFX0lOX0tCKSA9PSAxMDI0KSB8fCAoJChGRF9TSVpFX0lOX0tCKSA9PSAyMDQ4KQ0KICAg Z0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heFZhcmlhYmxlU2l6ZXwweDIwMDAN CmRpZmYgLS1naXQgYS9Pdm1mUGtnL092bWZQa2dYNjQuZHNjIGIvT3ZtZlBrZy9Pdm1mUGtnWDY0 LmRzYwppbmRleCAwZTc0YjZmNGQyNmMuLmIyZGNjYzQwYTg2NSAxMDA2NDQKLS0tIGEvT3ZtZlBr Zy9Pdm1mUGtnWDY0LmRzYworKysgYi9Pdm1mUGtnL092bWZQa2dYNjQuZHNjCkBAIC00NTIsNyAr NDUyLDkgQEAgW1BjZHNGZWF0dXJlRmxhZ10KIA0KIFtQY2RzRml4ZWRBdEJ1aWxkXQ0KICAgZ0Vm aU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFN0YXR1c0NvZGVNZW1vcnlTaXplfDENCish aWYgJChTTU1fUkVRVUlSRSkgPT0gRkFMU0UNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNl R3VpZC5QY2RSZXNldE9uTWVtb3J5VHlwZUluZm9ybWF0aW9uQ2hhbmdlfEZBTFNFDQorIWVuZGlm DQogICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkTWF4aW11bUd1aWRlZEV4dHJhY3RIYW5k bGVyfDB4MTANCiAhaWYgKCQoRkRfU0laRV9JTl9LQikgPT0gMTAyNCkgfHwgKCQoRkRfU0laRV9J Tl9LQikgPT0gMjA0OCkNCiAgIGdFZmlNZGVNb2R1bGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhW YXJpYWJsZVNpemV8MHgyMDAwDQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0 Zm9ybVBlaS5pbmYgYi9Pdm1mUGtnL1BsYXRmb3JtUGVpL1BsYXRmb3JtUGVpLmluZgppbmRleCBj NTFhNjE3NmFhMmUuLjg1MzFjNjM5OTVjMSAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9QbGF0Zm9ybVBl aS9QbGF0Zm9ybVBlaS5pbmYKKysrIGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybVBlaS5p bmYKQEAgLTMwLDYgKzMwLDcgQEAgW1NvdXJjZXNdCiAgIEZlYXR1cmVDb250cm9sLmMNCiAgIEZ2 LmMNCiAgIE1lbURldGVjdC5jDQorICBNZW1UeXBlSW5mby5jDQogICBQbGF0Zm9ybS5jDQogICBQ bGF0Zm9ybS5oDQogICBYZW4uYw0KQEAgLTExMiw2ICsxMTMsNyBAQCBbRmVhdHVyZVBjZF0KIFtQ cGlzXQ0KICAgZ0VmaVBlaU1hc3RlckJvb3RNb2RlUHBpR3VpZA0KICAgZ0VmaVBlaU1wU2Vydmlj ZXNQcGlHdWlkDQorICBnRWZpUGVpUmVhZE9ubHlWYXJpYWJsZTJQcGlHdWlkDQogDQogW0RlcGV4 XQ0KICAgVFJVRQ0KZGlmZiAtLWdpdCBhL092bWZQa2cvUGxhdGZvcm1QZWkvUGxhdGZvcm0uaCBi L092bWZQa2cvUGxhdGZvcm1QZWkvUGxhdGZvcm0uaAppbmRleCA0M2YyMGYwNjdmMjIuLjA0ODRl YzllNmI0YyAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybS5oCisrKyBi L092bWZQa2cvUGxhdGZvcm1QZWkvUGxhdGZvcm0uaApAQCAtODIsNiArODIsMTEgQEAgUGVpRnZJ bml0aWFsaXphdGlvbiAoCiAgIFZPSUQNCiAgICk7DQogDQorVk9JRA0KK01lbVR5cGVJbmZvSW5p dGlhbGl6YXRpb24gKA0KKyAgVk9JRA0KKyAgKTsNCisNCiBWT0lEDQogSW5zdGFsbEZlYXR1cmVD b250cm9sQ2FsbGJhY2sgKA0KICAgVk9JRA0KZGlmZiAtLWdpdCBhL092bWZQa2cvUGxhdGZvcm1Q ZWkvTWVtVHlwZUluZm8uYyBiL092bWZQa2cvUGxhdGZvcm1QZWkvTWVtVHlwZUluZm8uYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmM3MDkyMzZhNDU3YQotLS0gL2Rl di9udWxsCisrKyBiL092bWZQa2cvUGxhdGZvcm1QZWkvTWVtVHlwZUluZm8uYwpAQCAtMCwwICsx LDE0NyBAQAorLyoqIEBmaWxlDQorICBQcm9kdWNlIGEgZGVmYXVsdCBtZW1vcnkgdHlwZSBpbmZv cm1hdGlvbiBIT0IgdW5sZXNzIHdlIGNhbiBkZXRlcm1pbmUsIGZyb20NCisgIHRoZSBleGlzdGVu Y2Ugb2YgdGhlICJNZW1vcnlUeXBlSW5mb3JtYXRpb24iIHZhcmlhYmxlLCB0aGF0IHRoZSBEWEUg SVBMIFBFSU0NCisgIHdpbGwgcHJvZHVjZSB0aGUgSE9CLg0KKw0KKyAgQ29weXJpZ2h0IChDKSAy MDE3LTIwMjAsIFJlZCBIYXQsIEluYy4NCisNCisgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQorKiovDQorDQorI2luY2x1ZGUgPEd1aWQvTWVtb3J5VHlwZUlu Zm9ybWF0aW9uLmg+DQorI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KKyNpbmNsdWRlIDxM aWJyYXJ5L0RlYnVnTGliLmg+DQorI2luY2x1ZGUgPExpYnJhcnkvSG9iTGliLmg+DQorI2luY2x1 ZGUgPExpYnJhcnkvUGNkTGliLmg+DQorI2luY2x1ZGUgPExpYnJhcnkvUGVpU2VydmljZXNMaWIu aD4NCisjaW5jbHVkZSA8UHBpL1JlYWRPbmx5VmFyaWFibGUyLmg+DQorI2luY2x1ZGUgPFVlZmkv VWVmaU11bHRpUGhhc2UuaD4NCisNCisjaW5jbHVkZSAiUGxhdGZvcm0uaCINCisNCitTVEFUSUMg RUZJX01FTU9SWV9UWVBFX0lORk9STUFUSU9OIG1EZWZhdWx0TWVtb3J5VHlwZUluZm9ybWF0aW9u W10gPSB7DQorICB7IEVmaUFDUElNZW1vcnlOVlMsICAgICAgIDB4MDA0IH0sDQorICB7IEVmaUFD UElSZWNsYWltTWVtb3J5LCAgIDB4MDA4IH0sDQorICB7IEVmaVJlc2VydmVkTWVtb3J5VHlwZSwg IDB4MDA0IH0sDQorICB7IEVmaVJ1bnRpbWVTZXJ2aWNlc0RhdGEsIDB4MDI0IH0sDQorICB7IEVm aVJ1bnRpbWVTZXJ2aWNlc0NvZGUsIDB4MDMwIH0sDQorICB7IEVmaUJvb3RTZXJ2aWNlc0NvZGUs ICAgIDB4MTgwIH0sDQorICB7IEVmaUJvb3RTZXJ2aWNlc0RhdGEsICAgIDB4RjAwIH0sDQorICB7 IEVmaU1heE1lbW9yeVR5cGUsICAgICAgIDB4MDAwIH0NCit9Ow0KKw0KK1NUQVRJQw0KK1ZPSUQN CitCdWlsZE1lbVR5cGVJbmZvSG9iICgNCisgIFZPSUQNCisgICkNCit7DQorICBCdWlsZEd1aWRE YXRhSG9iICgNCisgICAgJmdFZmlNZW1vcnlUeXBlSW5mb3JtYXRpb25HdWlkLA0KKyAgICBtRGVm YXVsdE1lbW9yeVR5cGVJbmZvcm1hdGlvbiwNCisgICAgc2l6ZW9mIG1EZWZhdWx0TWVtb3J5VHlw ZUluZm9ybWF0aW9uDQorICAgICk7DQorICBERUJVRyAoKERFQlVHX0lORk8sICIlYTogZGVmYXVs dCBtZW1vcnkgdHlwZSBpbmZvcm1hdGlvbiBIT0IgYnVpbHRcbiIsDQorICAgIF9fRlVOQ1RJT05f XykpOw0KK30NCisNCisvKioNCisgIE5vdGlmaWNhdGlvbiBmdW5jdGlvbiBjYWxsZWQgd2hlbiBF RklfUEVJX1JFQURfT05MWV9WQVJJQUJMRTJfUFBJIGJlY29tZXMNCisgIGF2YWlsYWJsZS4NCisN CisgIEBwYXJhbVtpbl0gUGVpU2VydmljZXMgICAgICBJbmRpcmVjdCByZWZlcmVuY2UgdG8gdGhl IFBFSSBTZXJ2aWNlcyBUYWJsZS4NCisgIEBwYXJhbVtpbl0gTm90aWZ5RGVzY3JpcHRvciBBZGRy ZXNzIG9mIHRoZSBub3RpZmljYXRpb24gZGVzY3JpcHRvciBkYXRhDQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0dXJlLg0KKyAgQHBhcmFtW2luXSBQcGkgICAgICAgICAgICAg IEFkZHJlc3Mgb2YgdGhlIFBQSSB0aGF0IHdhcyBpbnN0YWxsZWQuDQorDQorICBAcmV0dXJuICBT dGF0dXMgb2YgdGhlIG5vdGlmaWNhdGlvbi4gVGhlIHN0YXR1cyBjb2RlIHJldHVybmVkIGZyb20g dGhpcw0KKyAgICAgICAgICAgZnVuY3Rpb24gaXMgaWdub3JlZC4NCisqKi8NCitTVEFUSUMNCitF RklfU1RBVFVTDQorRUZJQVBJDQorT25SZWFkT25seVZhcmlhYmxlMkF2YWlsYWJsZSAoDQorICBJ TiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAqKlBlaVNlcnZpY2VzLA0KKyAgSU4gRUZJX1BF SV9OT1RJRllfREVTQ1JJUFRPUiAgKk5vdGlmeURlc2NyaXB0b3IsDQorICBJTiBWT0lEICAgICAg ICAgICAgICAgICAgICAgICAqUHBpDQorICApDQorew0KKyAgRUZJX1BFSV9SRUFEX09OTFlfVkFS SUFCTEUyX1BQSSAqUmVhZE9ubHlWYXJpYWJsZTI7DQorICBVSU5UTiAgICAgICAgICAgICAgICAg ICAgICAgICAgIERhdGFTaXplOw0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICBT dGF0dXM7DQorDQorICBERUJVRyAoKERFQlVHX1ZFUkJPU0UsICIlYVxuIiwgX19GVU5DVElPTl9f KSk7DQorDQorICAvLw0KKyAgLy8gQ2hlY2sgaWYgdGhlICJNZW1vcnlUeXBlSW5mb3JtYXRpb24i IHZhcmlhYmxlIGV4aXN0cywgaW4gdGhlDQorICAvLyBnRWZpTWVtb3J5VHlwZUluZm9ybWF0aW9u R3VpZCBuYW1lc3BhY2UuDQorICAvLw0KKyAgUmVhZE9ubHlWYXJpYWJsZTIgPSBQcGk7DQorICBE YXRhU2l6ZSA9IDA7DQorICBTdGF0dXMgPSBSZWFkT25seVZhcmlhYmxlMi0+R2V0VmFyaWFibGUg KA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVhZE9ubHlWYXJpYWJsZTIsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfTUVNT1JZX1RZUEVfSU5GT1JNQVRJ T05fVkFSSUFCTEVfTkFNRSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnRWZp TWVtb3J5VHlwZUluZm9ybWF0aW9uR3VpZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRGF0YVNpemUsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApOw0KKyAgc3dpdGNoIChTdGF0dXMpIHsNCisgIGNhc2UgRUZJX0JVRkZF Ul9UT09fU01BTEw6DQorICAgIC8vDQorICAgIC8vIFRoZSB2YXJpYWJsZSBleGlzdHM7IHRoZSBE WEUgSVBMIFBFSU0gd2lsbCBidWlsZCB0aGUgSE9CIGZyb20gaXQuDQorICAgIC8vDQorICAgIGJy ZWFrOw0KKyAgY2FzZSBFRklfTk9UX0ZPVU5EOg0KKyAgICAvLw0KKyAgICAvLyBUaGUgdmFyaWFi bGUgZG9lcyBub3QgZXhpc3Q7IGluc3RhbGwgdGhlIGRlZmF1bHQgbWVtb3J5IHR5cGUgaW5mb3Jt YXRpb24NCisgICAgLy8gSE9CLg0KKyAgICAvLw0KKyAgICBCdWlsZE1lbVR5cGVJbmZvSG9iICgp Ow0KKyAgICBicmVhazsNCisgIGRlZmF1bHQ6DQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICIl YTogdW5leHBlY3RlZDogR2V0VmFyaWFibGUoKTogJXJcbiIsIF9fRlVOQ1RJT05fXywNCisgICAg ICBTdGF0dXMpKTsNCisgICAgQVNTRVJUIChGQUxTRSk7DQorICAgIENwdURlYWRMb29wICgpOw0K KyAgICBicmVhazsNCisgIH0NCisNCisgIHJldHVybiBFRklfU1VDQ0VTUzsNCit9DQorDQorLy8N CisvLyBOb3RpZmljYXRpb24gb2JqZWN0IGZvciByZWdpc3RlcmluZyB0aGUgY2FsbGJhY2ssIGZv ciB3aGVuDQorLy8gRUZJX1BFSV9SRUFEX09OTFlfVkFSSUFCTEUyX1BQSSBiZWNvbWVzIGF2YWls YWJsZS4NCisvLw0KK1NUQVRJQyBDT05TVCBFRklfUEVJX05PVElGWV9ERVNDUklQVE9SIG1SZWFk T25seVZhcmlhYmxlMk5vdGlmeSA9IHsNCisgIChFRklfUEVJX1BQSV9ERVNDUklQVE9SX05PVElG WV9ESVNQQVRDSCB8DQorICAgRUZJX1BFSV9QUElfREVTQ1JJUFRPUl9URVJNSU5BVEVfTElTVCks ICAvLyBGbGFncw0KKyAgJmdFZmlQZWlSZWFkT25seVZhcmlhYmxlMlBwaUd1aWQsICAgICAgICAg Ly8gR3VpZA0KKyAgT25SZWFkT25seVZhcmlhYmxlMkF2YWlsYWJsZSAgICAgICAgICAgICAgLy8g Tm90aWZ5DQorfTsNCisNCitWT0lEDQorTWVtVHlwZUluZm9Jbml0aWFsaXphdGlvbiAoDQorICBW T0lEDQorICApDQorew0KKyAgRUZJX1NUQVRVUyBTdGF0dXM7DQorDQorICBpZiAoIUZlYXR1cmVQ Y2RHZXQgKFBjZFNtbVNtcmFtUmVxdWlyZSkpIHsNCisgICAgLy8NCisgICAgLy8gRUZJX1BFSV9S RUFEX09OTFlfVkFSSUFCTEUyX1BQSSB3aWxsIG5ldmVyIGJlIGF2YWlsYWJsZTsgaW5zdGFsbA0K KyAgICAvLyB0aGUgZGVmYXVsdCBtZW1vcnkgdHlwZSBpbmZvcm1hdGlvbiBIT0IgcmlnaHQgYXdh eS4NCisgICAgLy8NCisgICAgQnVpbGRNZW1UeXBlSW5mb0hvYiAoKTsNCisgICAgcmV0dXJuOw0K KyAgfQ0KKw0KKyAgU3RhdHVzID0gUGVpU2VydmljZXNOb3RpZnlQcGkgKCZtUmVhZE9ubHlWYXJp YWJsZTJOb3RpZnkpOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICBERUJVRyAo KERFQlVHX0VSUk9SLCAiJWE6IGZhaWxlZCB0byBzZXQgdXAgUi9PIFZhcmlhYmxlIDIgY2FsbGJh Y2s6ICVyXG4iLA0KKyAgICAgIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7DQorICAgIEFTU0VSVCAo RkFMU0UpOw0KKyAgICBDcHVEZWFkTG9vcCAoKTsNCisgIH0NCit9DQpkaWZmIC0tZ2l0IGEvT3Zt ZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9ybS5jIGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9y bS5jCmluZGV4IDQ3M2FmMTAyNzgzYS4uNTg3Y2E2OGZjMjEwIDEwMDY0NAotLS0gYS9Pdm1mUGtn L1BsYXRmb3JtUGVpL1BsYXRmb3JtLmMKKysrIGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9QbGF0Zm9y bS5jCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSA8TGlicmFyeS9RZW11RndDZmdMaWIuaD4N CiAjaW5jbHVkZSA8TGlicmFyeS9RZW11RndDZmdTM0xpYi5oPg0KICNpbmNsdWRlIDxMaWJyYXJ5 L1Jlc291cmNlUHVibGljYXRpb25MaWIuaD4NCi0jaW5jbHVkZSA8R3VpZC9NZW1vcnlUeXBlSW5m b3JtYXRpb24uaD4NCiAjaW5jbHVkZSA8UHBpL01hc3RlckJvb3RNb2RlLmg+DQogI2luY2x1ZGUg PEluZHVzdHJ5U3RhbmRhcmQvSTQ0MEZ4UGlpeDQuaD4NCiAjaW5jbHVkZSA8SW5kdXN0cnlTdGFu ZGFyZC9QY2kyMi5oPg0KQEAgLTM5LDE4ICszOCw2IEBACiAjaW5jbHVkZSAiUGxhdGZvcm0uaCIN CiAjaW5jbHVkZSAiQ21vcy5oIg0KIA0KLUVGSV9NRU1PUllfVFlQRV9JTkZPUk1BVElPTiBtRGVm YXVsdE1lbW9yeVR5cGVJbmZvcm1hdGlvbltdID0gew0KLSAgeyBFZmlBQ1BJTWVtb3J5TlZTLCAg ICAgICAweDAwNCB9LA0KLSAgeyBFZmlBQ1BJUmVjbGFpbU1lbW9yeSwgICAweDAwOCB9LA0KLSAg eyBFZmlSZXNlcnZlZE1lbW9yeVR5cGUsICAweDAwNCB9LA0KLSAgeyBFZmlSdW50aW1lU2Vydmlj ZXNEYXRhLCAweDAyNCB9LA0KLSAgeyBFZmlSdW50aW1lU2VydmljZXNDb2RlLCAweDAzMCB9LA0K LSAgeyBFZmlCb290U2VydmljZXNDb2RlLCAgICAweDE4MCB9LA0KLSAgeyBFZmlCb290U2Vydmlj ZXNEYXRhLCAgICAweEYwMCB9LA0KLSAgeyBFZmlNYXhNZW1vcnlUeXBlLCAgICAgICAweDAwMCB9 DQotfTsNCi0NCi0NCiBFRklfUEVJX1BQSV9ERVNDUklQVE9SICAgbVBwaUJvb3RNb2RlW10gPSB7 DQogICB7DQogICAgIEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfUFBJIHwgRUZJX1BFSV9QUElfREVT Q1JJUFRPUl9URVJNSU5BVEVfTElTVCwNCkBAIC0xNjIsMTUgKzE0OSw2IEBAIE1lbU1hcEluaXRp YWxpemF0aW9uICgKICAgUGNpSW9CYXNlID0gMHhDMDAwOw0KICAgUGNpSW9TaXplID0gMHg0MDAw Ow0KIA0KLSAgLy8NCi0gIC8vIENyZWF0ZSBNZW1vcnkgVHlwZSBJbmZvcm1hdGlvbiBIT0INCi0g IC8vDQotICBCdWlsZEd1aWREYXRhSG9iICgNCi0gICAgJmdFZmlNZW1vcnlUeXBlSW5mb3JtYXRp b25HdWlkLA0KLSAgICBtRGVmYXVsdE1lbW9yeVR5cGVJbmZvcm1hdGlvbiwNCi0gICAgc2l6ZW9m KG1EZWZhdWx0TWVtb3J5VHlwZUluZm9ybWF0aW9uKQ0KLSAgICApOw0KLQ0KICAgLy8NCiAgIC8v IFZpZGVvIG1lbW9yeSArIExlZ2FjeSBCSU9TIHJlZ2lvbg0KICAgLy8NCkBAIC04MTEsNiArNzg5 LDcgQEAgSW5pdGlhbGl6ZVBsYXRmb3JtICgKICAgICAgIFJlc2VydmVFbXVWYXJpYWJsZU52U3Rv cmUgKCk7DQogICAgIH0NCiAgICAgUGVpRnZJbml0aWFsaXphdGlvbiAoKTsNCisgICAgTWVtVHlw ZUluZm9Jbml0aWFsaXphdGlvbiAoKTsNCiAgICAgTWVtTWFwSW5pdGlhbGl6YXRpb24gKCk7DQog ICAgIE5vZXhlY0R4ZUluaXRpYWxpemF0aW9uICgpOw0KICAgfQ0KLS0gCjIuMTkuMS4zLmczMDI0 N2FhNWQyMDEKCg==