From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 22/49] x86emul: support AVX512F legacy-equivalent scalar int/FP conversion insns Date: Wed, 19 Dec 2018 07:51:01 -0700 Message-ID: <5C1A5AD50200007800207998@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C1A52ED0200007800207865@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gZdBg-0005d2-PO for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 14:51:04 +0000 In-Reply-To: <5C1A52ED0200007800207865@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VkNWVHssVH1Te1MsRH0yU0kgdXNlIEVWRVguVyBmb3IgdGhlaXIgZGVzdGluYXRpb24gKHJlZ2lz dGVyKSByYXRoZXIKdGhhbiB0aGVpciAocG9zc2libHkgbWVtb3J5KSBzb3VyY2Ugb3BlcmFuZCBz aXplIGFuZCBoZW5jZSBuZWVkIGEKIm1hbnVhbCIgb3ZlcnJpZGUgb2YgZGlzcDhzY2FsZS4KCldo aWxlIHRoZSBTRE0gY2xhaW1zIHRoYXQgRVZFWC5MJ0wgbmVlZHMgdG8gYmUgemVybyBmb3IgdGhl IDMyLWJpdCBmb3JtcwpvZiBWQ1ZUeyxVfVNJMlNEIChleGNlcHRpb24gdHlwZSBFMTBORiksIG9i c2VydmF0aW9ucyBvbiBteSB0ZXN0IHN5c3RlbQpkbyBub3QgY29uZmlybSB0aGlzIChhbmQgSSd2 ZSBnb3QgaW5mb3JtYWwgY29uZmlybWF0aW9uIHRoYXQgdGhpcyBpcyBhCmRvYyBtaXN0YWtlKS4g TmV2ZXJ0aGVsZXNzLCB0byBiZSBvbiB0aGUgc2FmZSBzaWRlLCBmb3JjZSBldmV4LmxyIHRvIGJl Cnplcm8gaW4gdGhpcyBjYXNlIHRob3VnaCB3aGVuIGNvbnN0cnVjdGluZyB0aGUgc3R1Yi4KClNs aWdodGx5IGFkanVzdCB0aGUgc2NhbGFyIHRvX2ludCgpIGluIHRoZSB0ZXN0IGhhcm5lc3MsIHRv IGluY3JlYXNlIHRoZQpjaGFuY2VzIG9mIHRoZSBvcGVyYW5kIGVuZGluZyB1cCBpbiBtZW1vcnku CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2Nzog Rml4IFZDVlRTSTJTUyAtIGNhbm5vdCByZS11c2UgVk1PVntELFF9IGNvZGUgaGVyZSwgYXMgdGhl IHJlZ2lzdGVyCiAgICBmb3JtIGNhbid0IGJlIGNvbnZlcnRlZCB0byBhIG1lbW9yeSBvbmUgd2hl biBlbWJlZGRlZCByb3VuZGluZyBpcyBpbgogICAgZWZmZWN0LiBGb3JjZSBldmV4LmxyIHRvIHpl cm8gZm9yIDMyLWJpdCBWQ1ZUU0kyU0QuIFBlcm1pdCBlbWJlZGRlZAogICAgcm91bmRpbmcgZm9y IFZDVlR7LFR9U3tTLER9MlNJLiBSZS1iYXNlLgp2NDogTmV3LgoKLS0tIGEvdG9vbHMvdGVzdHMv eDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Iv ZXZleC1kaXNwOC5jCkBAIC0xMTcsOCArMTE3LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVz dCBhdng1MTJmX2FsbFtdID0KICAgICBJTlNOKGN2dHBzMmRxLCAgICAgNjYsICAgMGYsIDViLCAg ICB2bCwgICAgICBkLCB2bCksCiAgICAgSU5TTihjdnRwczJwZCwgICAgICAgLCAgIDBmLCA1YSwg ICAgdmxfMiwgICAgZCwgdmwpLAogICAgIElOU04oY3Z0cHMycGgsICAgICA2NiwgMGYzYSwgMWQs ICAgIHZsXzIsIGRfbmIsIHZsKSwKKyAgICBJTlNOKGN2dHNkMnNpLCAgICAgZjIsICAgMGYsIDJk LCAgICBlbCwgICAgICBxLCBlbCksCiAgICAgSU5TTihjdnRzZDJzcywgICAgIGYyLCAgIDBmLCA1 YSwgICAgZWwsICAgICAgcSwgZWwpLAorICAgIElOU04oY3Z0c2kyc2QsICAgICBmMiwgICAwZiwg MmEsICAgIGVsLCAgIGRxNjQsIGVsKSwKKyAgICBJTlNOKGN2dHNpMnNzLCAgICAgZjMsICAgMGYs IDJhLCAgICBlbCwgICBkcTY0LCBlbCksCiAgICAgSU5TTihjdnRzczJzZCwgICAgIGYzLCAgIDBm LCA1YSwgICAgZWwsICAgICAgZCwgZWwpLAorICAgIElOU04oY3Z0c3Myc2ksICAgICBmMywgICAw ZiwgMmQsICAgIGVsLCAgICAgIGQsIGVsKSwKKyAgICBJTlNOKGN2dHRwZDJkcSwgICAgNjYsICAg MGYsIGU2LCAgICB2bCwgICAgICBxLCB2bCksCisgICAgSU5TTihjdnR0cHMyZHEsICAgIGYzLCAg IDBmLCA1YiwgICAgdmwsICAgICAgZCwgdmwpLAorICAgIElOU04oY3Z0dHNkMnNpLCAgICBmMiwg ICAwZiwgMmMsICAgIGVsLCAgICAgIHEsIGVsKSwKKyAgICBJTlNOKGN2dHRzczJzaSwgICAgZjMs ICAgMGYsIDJjLCAgICBlbCwgICAgICBkLCBlbCksCiAgICAgSU5TTl9GUChkaXYsICAgICAgICAg ICAgIDBmLCA1ZSksCiAgICAgSU5TTihmbWFkZDEzMiwgICAgIDY2LCAwZjM4LCA5OCwgICAgdmws ICAgICBzZCwgdmwpLAogICAgIElOU04oZm1hZGQxMzIsICAgICA2NiwgMGYzOCwgOTksICAgIGVs LCAgICAgc2QsIGVsKSwKQEAgLTc0Niw4ICs3NTQsOSBAQCBzdGF0aWMgdm9pZCB0ZXN0X2dyb3Vw KGNvbnN0IHN0cnVjdCB0ZXN0CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAg IGNhc2UgRVNaX2RxOgotICAgICAgICAgICAgICAgIHRlc3RfcGFpcigmdGVzdHNbaV0sIHZsW2pd LCBFU1pfZCwgImQiLCBFU1pfcSwgInEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0 ciwgY3R4dCk7CisgICAgICAgICAgICAgICAgdGVzdF9wYWlyKCZ0ZXN0c1tpXSwgdmxbal0sIEVT Wl9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJuY21wKHRlc3RzW2ldLm1uZW1vbmlj LCAiY3Z0IiwgMykgPyAiZCIgOiAibCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEVTWl9x LCAicSIsIGluc3RyLCBjdHh0KTsKICAgICAgICAgICAgICAgICBicmVhazsKIAogI2lmZGVmIF9f aTM4Nl9fCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKKysrIGIvdG9vbHMv dGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAtODksNyArODksNyBAQCBzdGF0aWMgaW5saW5l IGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBiCiAjZW5kaWYKIAogI2lmIFZFQ19TSVpFID09IEZM T0FUX1NJWkUKLSMgZGVmaW5lIHRvX2ludCh4KSAoKHZlY190KXsgKGludCkoeClbMF0gfSkKKyMg ZGVmaW5lIHRvX2ludCh4KSAoeyBpbnQgaV8gPSAoeClbMF07IHRvdWNoKGlfKTsgKCh2ZWNfdCl7 IGlfIH0pOyB9KQogI2VsaWYgVkVDX1NJWkUgPT0gOCAmJiBGTE9BVF9TSVpFID09IDQgJiYgZGVm aW5lZChfXzNkTk9XX18pCiAjIGRlZmluZSB0b19pbnQoeCkgX19idWlsdGluX2lhMzJfcGkyZmQo X19idWlsdGluX2lhMzJfcGYyaWQoeCkpCiAjZWxpZiBkZWZpbmVkKEZMT0FUX1NJWkUpICYmIFZF Q19TSVpFID4gRkxPQVRfU0laRSAmJiBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBcCi0tLSBhL3Rv b2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxh dG9yL3NpbWQuaApAQCAtMzQwLDEwICszNDAsMjggQEAgT1ZSKGN2dHBzMmRxKTsKIE9WUihjdnRw czJwZCk7CiBPVlIoY3Z0cHMycGgpOwogT1ZSKGN2dHNkMnNzKTsKK09WUihjdnRzZDJzaSk7CitP VlIoY3Z0c2Qyc2lsKTsKK09WUihjdnRzZDJzaXEpOworT1ZSKGN2dHNpMnNkKTsKK09WUihjdnRz aTJzZGwpOworT1ZSKGN2dHNpMnNkcSk7CitPVlIoY3Z0c2kyc3MpOworT1ZSKGN2dHNpMnNzbCk7 CitPVlIoY3Z0c2kyc3NxKTsKIE9WUihjdnRzczJzZCk7CitPVlIoY3Z0c3Myc2kpOworT1ZSKGN2 dHNzMnNpbCk7CitPVlIoY3Z0c3Myc2lxKTsKIE9WUihjdnR0cGQyZHF4KTsKIE9WUihjdnR0cGQy ZHF5KTsKIE9WUihjdnR0cHMyZHEpOworT1ZSKGN2dHRzZDJzaSk7CitPVlIoY3Z0dHNkMnNpbCk7 CitPVlIoY3Z0dHNkMnNpcSk7CitPVlIoY3Z0dHNzMnNpKTsKK09WUihjdnR0c3Myc2lsKTsKK09W UihjdnR0c3Myc2lxKTsKIE9WUihtb3ZkZHVwKTsKIE9WUihtb3ZudGRxKTsKIE9WUihtb3ZudGRx YSk7Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hl bi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC0yOTYsNyArMjk2LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB0d29ieXRlX3RhYmxlIHsKICAgICBbMHgyMiAuLi4gMHgyM10g PSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSB9LAogICAgIFsweDI4XSA9IHsgRHN0SW1wbGlj aXR8U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9wYWNrZWRfZnAsIGQ4c192bCB9LAogICAgIFsweDI5 XSA9IHsgRHN0TWVtfFNyY0ltcGxpY2l0fE1vZFJNfE1vdiwgc2ltZF9wYWNrZWRfZnAsIGQ4c192 bCB9LAotICAgIFsweDJhXSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9v dGhlciB9LAorICAgIFsweDJhXSA9IHsgRHN0SW1wbGljaXR8U3JjTWVtfE1vZFJNfE1vdiwgc2lt ZF9vdGhlciwgZDhzX2RxNjQgfSwKICAgICBbMHgyYl0gPSB7IERzdE1lbXxTcmNJbXBsaWNpdHxN b2RSTXxNb3YsIHNpbWRfYW55X2ZwLCBkOHNfdmwgfSwKICAgICBbMHgyYyAuLi4gMHgyZF0gPSB7 IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3YsIHNpbWRfb3RoZXIgfSwKICAgICBbMHgyZSAu Li4gMHgyZl0gPSB7IEltcGxpY2l0T3BzfE1vZFJNfFR3b09wLCBzaW1kX25vbmUsIGQ4c19kcSB9 LApAQCAtMzA3Miw2ICszMDcyLDEyIEBAIHg4Nl9kZWNvZGUoCiAgICAgICAgICAgICAgICAgbW9k cm1fbW9kID0gMzsKICAgICAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICAgICAgY2FzZSAw eDJjOiAvKiB2Y3Z0dHN7cyxkfTJzaSBuZWVkIHNwZWNpYWwgY2FzaW5nICovCisgICAgICAgICAg ICBjYXNlIDB4MmQ6IC8qIHZjdnRze3MsZH0yc2kgbmVlZCBzcGVjaWFsIGNhc2luZyAqLworICAg ICAgICAgICAgICAgIGlmICggZXZleF9lbmNvZGVkKCkgKQorICAgICAgICAgICAgICAgICAgICBk aXNwOHNjYWxlID0gMiArIChldmV4LnBmeCAmIFZFWF9QUkVGSVhfRE9VQkxFX01BU0spOworICAg ICAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgICAgICBjYXNlIDB4NWE6IC8qIHZjdnRwczJw ZCBuZWVkcyBzcGVjaWFsIGNhc2luZyAqLwogICAgICAgICAgICAgICAgIGlmICggZGlzcDhzY2Fs ZSAmJiAhZXZleC5wZnggJiYgIWV2ZXguYnJzICkKICAgICAgICAgICAgICAgICAgICAgLS1kaXNw OHNjYWxlOwpAQCAtNjE5MCw2ICs2MTk2LDQ4IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBzdGF0 ZS0+c2ltZF9zaXplID0gc2ltZF9ub25lOwogICAgICAgICBnb3RvIHNpbWRfMGZfcm07CiAKKyAg ICBDQVNFX1NJTURfU0NBTEFSX0ZQKF9FVkVYLCAweDBmLCAweDJhKTogLyogdmN2dHNpMnN7cyxk fSByL20seG1tLHhtbSAqLworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5vcG1z ayB8fCAoZWEudHlwZSAhPSBPUF9SRUcgJiYgZXZleC5icnMpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRVhDX1VEKTsKKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4 NTEyZik7CisgICAgICAgIGlmICggIWV2ZXguYnJzICkKKyAgICAgICAgICAgIGF2eDUxMl92bGVu X2NoZWNrKHRydWUpOworICAgICAgICBnZXRfZnB1KFg4NkVNVUxfRlBVX3ptbSk7CisKKyAgICAg ICAgaWYgKCBlYS50eXBlID09IE9QX01FTSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0g cmVhZF91bG9uZyhlYS5tZW0uc2VnLCBlYS5tZW0ub2ZmLCAmc3JjLnZhbCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXhfcHJlZml4ICYgUkVYX1cgPyA4IDogNCwgY3R4dCwgb3BzKTsK KyAgICAgICAgICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKKyAgICAgICAgICAgICAgICBn b3RvIGRvbmU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3JjLnZhbCA9 ICplYS5yZWc7CisKKyAgICAgICAgb3BjID0gaW5pdF9ldmV4KHN0dWIpOworICAgICAgICBvcGNb MF0gPSBiOworICAgICAgICAvKiBDb252ZXJ0IG1lbW9yeS9HUFIgc291cmNlIHRvICVyQVguICov CisgICAgICAgIGV2ZXguYiA9IDE7CisgICAgICAgIGlmICggIW1vZGVfNjRiaXQoKSApCisgICAg ICAgICAgICBldmV4LncgPSAwOworICAgICAgICAvKgorICAgICAgICAgKiBTRE0gdmVyc2lvbiAw NjcgY2xhaW1zIHRoYXQgZXhjZXB0aW9uIHR5cGUgRTEwTkYgaW1wbGllcyAjVUQgd2hlbgorICAg ICAgICAgKiBFVkVYLkwnTCBpcyBub24temVybyBmb3IgMzItYml0IFZDVlR7LFV9U0kyU0QuIEV4 cGVyaW1lbnRhbGx5IHRoaXMKKyAgICAgICAgICogY2Fubm90IGJlIGNvbmZpcm1lZCwgYnV0IGJl IG9uIHRoZSBzYWZlIHNpZGUgZm9yIHRoZSBzdHViLgorICAgICAgICAgKi8KKyAgICAgICAgaWYg KCAhZXZleC53ICYmIGV2ZXgucGZ4ID09IHZleF9mMiApCisgICAgICAgICAgICBldmV4LmxyID0g MDsKKyAgICAgICAgb3BjWzFdID0gKG1vZHJtICYgMHgzOCkgfCAweGMwOworICAgICAgICBpbnNu X2J5dGVzID0gRVZFWF9QRlhfQllURVMgKyAyOworICAgICAgICBvcGNbMl0gPSAweGMzOworCisg ICAgICAgIGNvcHlfRVZFWChvcGMsIGV2ZXgpOworICAgICAgICBpbnZva2Vfc3R1YigiIiwgIiIs ICI9ZyIgKGR1bW15KSA6ICJhIiAoc3JjLnZhbCkpOworCisgICAgICAgIHB1dF9zdHViKHN0dWIp OworICAgICAgICBzdGF0ZS0+c2ltZF9zaXplID0gc2ltZF9ub25lOworICAgICAgICBicmVhazsK KwogICAgIENBU0VfU0lNRF9TQ0FMQVJfRlAoLCAweDBmLCAweDJjKTogICAgIC8qIGN2dHRze3Ms ZH0yc2kgeG1tL21lbSxyZWcgKi8KICAgICBDQVNFX1NJTURfU0NBTEFSX0ZQKF9WRVgsIDB4MGYs IDB4MmMpOiAvKiB2Y3Z0dHN7cyxkfTJzaSB4bW0vbWVtLHJlZyAqLwogICAgIENBU0VfU0lNRF9T Q0FMQVJfRlAoLCAweDBmLCAweDJkKTogICAgIC8qIGN2dHN7cyxkfTJzaSB4bW0vbWVtLHJlZyAq LwpAQCAtNjIxMywxNCArNjI2MSwxNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgfQogCiAgICAg ICAgIG9wYyA9IGluaXRfcHJlZml4ZXMoc3R1Yik7CisgICAgY3Z0c18yc2k6CiAgICAgICAgIG9w Y1swXSA9IGI7CiAgICAgICAgIC8qIENvbnZlcnQgR1BSIGRlc3RpbmF0aW9uIHRvICVyQVggYW5k IG1lbW9yeSBvcGVyYW5kIHRvICglckNYKS4gKi8KICAgICAgICAgcmV4X3ByZWZpeCAmPSB+UkVY X1I7CiAgICAgICAgIHZleC5yID0gMTsKKyAgICAgICAgZXZleC5yID0gMTsKICAgICAgICAgaWYg KCBlYS50eXBlID09IE9QX01FTSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHJleF9wcmVmaXgg Jj0gflJFWF9COwogICAgICAgICAgICAgdmV4LmIgPSAxOworICAgICAgICAgICAgZXZleC5iID0g MTsKICAgICAgICAgICAgIG9wY1sxXSA9IDB4MDE7CiAKICAgICAgICAgICAgIHJjID0gb3BzLT5y ZWFkKGVhLm1lbS5zZWcsIGVhLm1lbS5vZmYsIG1tdmFscCwKQEAgLTYyMzEsMTEgKzYyODIsMjIg QEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG9wY1sxXSA9IG1vZHJt ICYgMHhjNzsKICAgICAgICAgaWYgKCAhbW9kZV82NGJpdCgpICkKKyAgICAgICAgewogICAgICAg ICAgICAgdmV4LncgPSAwOwotICAgICAgICBpbnNuX2J5dGVzID0gUEZYX0JZVEVTICsgMjsKKyAg ICAgICAgICAgIGV2ZXgudyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBldmV4X2VuY29k ZWQoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGluc25fYnl0ZXMgPSBFVkVYX1BGWF9CWVRF UyArIDI7CisgICAgICAgICAgICBjb3B5X0VWRVgob3BjLCBldmV4KTsKKyAgICAgICAgfQorICAg ICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGluc25fYnl0ZXMgPSBQRlhfQllURVMg KyAyOworICAgICAgICAgICAgY29weV9SRVhfVkVYKG9wYywgcmV4X3ByZWZpeCwgdmV4KTsKKyAg ICAgICAgfQogICAgICAgICBvcGNbMl0gPSAweGMzOwogCi0gICAgICAgIGNvcHlfUkVYX1ZFWChv cGMsIHJleF9wcmVmaXgsIHZleCk7CiAgICAgICAgIGVhLnJlZyA9IGRlY29kZV9ncHIoJl9yZWdz LCBtb2RybV9yZWcpOwogICAgICAgICBpbnZva2Vfc3R1YigiIiwgIiIsICI9YSIgKCplYS5yZWcp IDogImMiIChtbXZhbHApLCAibSIgKCptbXZhbHApKTsKIApAQCAtNjI0Myw2ICs2MzA1LDE4IEBA IHg4Nl9lbXVsYXRlKAogICAgICAgICBzdGF0ZS0+c2ltZF9zaXplID0gc2ltZF9ub25lOwogICAg ICAgICBicmVhazsKIAorICAgIENBU0VfU0lNRF9TQ0FMQVJfRlAoX0VWRVgsIDB4MGYsIDB4MmMp OiAvKiB2Y3Z0dHN7cyxkfTJzaSB4bW0vbWVtLHJlZyAqLworICAgIENBU0VfU0lNRF9TQ0FMQVJf RlAoX0VWRVgsIDB4MGYsIDB4MmQpOiAvKiB2Y3Z0c3tzLGR9MnNpIHhtbS9tZW0scmVnICovCisg ICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZigoZXZleC5yZWcgIT0gMHhmIHx8ICFldmV4LlJY IHx8IGV2ZXgub3Btc2sgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWEudHlw ZSAhPSBPUF9SRUcgJiYgZXZleC5icnMpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVYQ19VRCk7CisgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmYpOworICAg ICAgICBpZiAoICFldmV4LmJycyApCisgICAgICAgICAgICBhdng1MTJfdmxlbl9jaGVjayh0cnVl KTsKKyAgICAgICAgZ2V0X2ZwdShYODZFTVVMX0ZQVV96bW0pOworICAgICAgICBvcGMgPSBpbml0 X2V2ZXgoc3R1Yik7CisgICAgICAgIGdvdG8gY3Z0c18yc2k7CisKICAgICBDQVNFX1NJTURfUEFD S0VEX0ZQKCwgMHgwZiwgMHgyZSk6ICAgICAvKiB1Y29taXN7cyxkfSB4bW0vbWVtLHhtbSAqLwog ICAgIENBU0VfU0lNRF9QQUNLRURfRlAoX1ZFWCwgMHgwZiwgMHgyZSk6IC8qIHZ1Y29taXN7cyxk fSB4bW0vbWVtLHhtbSAqLwogICAgIENBU0VfU0lNRF9QQUNLRURfRlAoLCAweDBmLCAweDJmKTog ICAgIC8qIGNvbWlze3MsZH0geG1tL21lbSx4bW0gKi8KCgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=