From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v8 08/50] x86emul: support AVX512{F, BW} down conversion moves Date: Fri, 15 Mar 2019 04:40:34 -0600 Message-ID: <5C8B8122020000780021F161@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C8B7EC0020000780021F10B@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h4kGV-0004Ad-RD for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 10:40:39 +0000 In-Reply-To: <5C8B7EC0020000780021F10B@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 Tm90ZSB0aGF0IHRoZSB2cG1vdnsscyx1c317ZCxxfXcgdGFibGUgZW50cmllcyBpbiBldmV4LWRp c3A4LmMgYXJlCnNsaWdodGx5IGRpZmZlcmVudCBmcm9tIHdoYXQgb25lIHdvdWxkIGV4cGVjdCwg ZHVlIHRvIHRoZW0gcmVxdWlyaW5nCkVWRVguVyB0byBiZSB6ZXJvLgoKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0Kdjg6IEFkanVzdG1lbnQgZm9yIFhT QS0yODk6IFVzZSBYT1IgaW5zdGVhZCBvZiBBREQgd2hlbiBmaWRkbGluZyB3aXRoIGIKICAgIGFz IGFuIGFycmF5IGluZGV4Lgp2NzogZWEudHlwZSA9PSBPUF8qIC0+IGVhLnR5cGUgIT0gT1BfKi4g UmUtYmFzZSBvdmVyIGNoYW5nZSBpbiBwcmV2aW91cwogICAgcGF0Y2guIFJlLWJhc2UuCnY1OiBB bHNvIGFkanVzdCB4ODZfaW5zbl9pc19tZW1fd3JpdGUoKS4KdjQ6IEFsc28gI1VEIHdoZW4gZXZl eC56IGlzIHNldCB3aXRoIGEgbWVtb3J5IG9wZXJhbmQuCnYzOiBOZXcuCgotLS0gYS90b29scy90 ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVs YXRvci9ldmV4LWRpc3A4LmMKQEAgLTE3NywxMSArMTc3LDI2IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgdGVzdCBhdng1MTJmX2FsbFtdID0KICAgICBJTlNOKHBtYXh1LCAgICAgICAgNjYsIDBmMzgs IDNmLCAgICB2bCwgICAgIGRxLCB2bCksCiAgICAgSU5TTihwbWlucywgICAgICAgIDY2LCAwZjM4 LCAzOSwgICAgdmwsICAgICBkcSwgdmwpLAogICAgIElOU04ocG1pbnUsICAgICAgICA2NiwgMGYz OCwgM2IsICAgIHZsLCAgICAgZHEsIHZsKSwKKyAgICBJTlNOKHBtb3ZkYiwgICAgICAgZjMsIDBm MzgsIDMxLCAgICB2bF80LCAgICBiLCB2bCksCisgICAgSU5TTihwbW92ZHcsICAgICAgIGYzLCAw ZjM4LCAzMywgICAgdmxfMiwgICAgYiwgdmwpLAorICAgIElOU04ocG1vdnFiLCAgICAgICBmMywg MGYzOCwgMzIsICAgIHZsXzgsICAgIGIsIHZsKSwKKyAgICBJTlNOKHBtb3ZxZCwgICAgICAgZjMs IDBmMzgsIDM1LCAgICB2bF8yLCBkX25iLCB2bCksCisgICAgSU5TTihwbW92cXcsICAgICAgIGYz LCAwZjM4LCAzNCwgICAgdmxfNCwgICAgYiwgdmwpLAorICAgIElOU04ocG1vdnNkYiwgICAgICBm MywgMGYzOCwgMjEsICAgIHZsXzQsICAgIGIsIHZsKSwKKyAgICBJTlNOKHBtb3ZzZHcsICAgICAg ZjMsIDBmMzgsIDIzLCAgICB2bF8yLCAgICBiLCB2bCksCisgICAgSU5TTihwbW92c3FiLCAgICAg IGYzLCAwZjM4LCAyMiwgICAgdmxfOCwgICAgYiwgdmwpLAorICAgIElOU04ocG1vdnNxZCwgICAg ICBmMywgMGYzOCwgMjUsICAgIHZsXzIsIGRfbmIsIHZsKSwKKyAgICBJTlNOKHBtb3ZzcXcsICAg ICAgZjMsIDBmMzgsIDI0LCAgICB2bF80LCAgICBiLCB2bCksCiAgICAgSU5TTihwbW92c3hiZCwg ICAgIDY2LCAwZjM4LCAyMSwgICAgdmxfNCwgICAgYiwgdmwpLAogICAgIElOU04ocG1vdnN4YnEs ICAgICA2NiwgMGYzOCwgMjIsICAgIHZsXzgsICAgIGIsIHZsKSwKICAgICBJTlNOKHBtb3ZzeHdk LCAgICAgNjYsIDBmMzgsIDIzLCAgICB2bF8yLCAgICB3LCB2bCksCiAgICAgSU5TTihwbW92c3h3 cSwgICAgIDY2LCAwZjM4LCAyNCwgICAgdmxfNCwgICAgdywgdmwpLAogICAgIElOU04ocG1vdnN4 ZHEsICAgICA2NiwgMGYzOCwgMjUsICAgIHZsXzIsIGRfbmIsIHZsKSwKKyAgICBJTlNOKHBtb3Z1 c2RiLCAgICAgZjMsIDBmMzgsIDExLCAgICB2bF80LCAgICBiLCB2bCksCisgICAgSU5TTihwbW92 dXNkdywgICAgIGYzLCAwZjM4LCAxMywgICAgdmxfMiwgICAgYiwgdmwpLAorICAgIElOU04ocG1v dnVzcWIsICAgICBmMywgMGYzOCwgMTIsICAgIHZsXzgsICAgIGIsIHZsKSwKKyAgICBJTlNOKHBt b3Z1c3FkLCAgICAgZjMsIDBmMzgsIDE1LCAgICB2bF8yLCBkX25iLCB2bCksCisgICAgSU5TTihw bW92dXNxdywgICAgIGYzLCAwZjM4LCAxNCwgICAgdmxfNCwgICAgYiwgdmwpLAogICAgIElOU04o cG1vdnp4YmQsICAgICA2NiwgMGYzOCwgMzEsICAgIHZsXzQsICAgIGIsIHZsKSwKICAgICBJTlNO KHBtb3Z6eGJxLCAgICAgNjYsIDBmMzgsIDMyLCAgICB2bF84LCAgICBiLCB2bCksCiAgICAgSU5T TihwbW92enh3ZCwgICAgIDY2LCAwZjM4LCAzMywgICAgdmxfMiwgICAgdywgdmwpLApAQCAtMjg0 LDcgKzI5OSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyYndfYWxsW10KICAg ICBJTlNOKHBtaW5zdywgICAgICA2NiwgICAwZiwgZWEsICAgIHZsLCAgICB3LCB2bCksCiAgICAg SU5TTihwbWludWIsICAgICAgNjYsICAgMGYsIGRhLCAgICB2bCwgICAgYiwgdmwpLAogICAgIElO U04ocG1pbnV3LCAgICAgIDY2LCAwZjM4LCAzYSwgICAgdmwsICAgIHcsIHZsKSwKKyAgICBJTlNO KHBtb3Zzd2IsICAgICBmMywgMGYzOCwgMjAsICAgIHZsXzIsICBiLCB2bCksCiAgICAgSU5TTihw bW92c3hidywgICAgNjYsIDBmMzgsIDIwLCAgICB2bF8yLCAgYiwgdmwpLAorICAgIElOU04ocG1v dnVzd2IsICAgIGYzLCAwZjM4LCAxMCwgICAgdmxfMiwgIGIsIHZsKSwKKyAgICBJTlNOKHBtb3Z3 YiwgICAgICBmMywgMGYzOCwgMzAsICAgIHZsXzIsICBiLCB2bCksCiAgICAgSU5TTihwbW92enhi dywgICAgNjYsIDBmMzgsIDMwLCAgICB2bF8yLCAgYiwgdmwpLAogICAgIElOU04ocG11bGh1dywg ICAgIDY2LCAgIDBmLCBlNCwgICAgdmwsICAgIHcsIHZsKSwKICAgICBJTlNOKHBtdWxodywgICAg ICA2NiwgICAwZiwgZTUsICAgIHZsLCAgICB3LCB2bCksCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9l bXVsYXRvci9zaW1kLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAt Mjc3LDYgKzI3NywxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92ZWNfdCBi CiAjZW5kaWYKICNpZiAoSU5UX1NJWkUgPT0gNCB8fCBVSU5UX1NJWkUgPT0gNCB8fCBJTlRfU0la RSA9PSA4IHx8IFVJTlRfU0laRSA9PSA4KSAmJiBcCiAgICAgIGRlZmluZWQoX19BVlg1MTJGX18p ICYmIChWRUNfU0laRSA9PSA2NCB8fCBkZWZpbmVkKF9fQVZYNTEyVkxfXykpCisjIGlmIEVMRU1f Q09VTlQgPT0gOCAvKiB2ZXh0cmFjdGl7MzIsNjR9eDQgKi8gfHwgXAorICAgICAoRUxFTV9DT1VO VCA9PSAxNiAmJiBFTEVNX1NJWkUgPT0gNCAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykpIC8qIHZl eHRyYWN0aTMyeDggKi8gfHwgXAorICAgICAoRUxFTV9DT1VOVCA9PSA0ICYmIEVMRU1fU0laRSA9 PSA4ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKSkgLyogdmV4dHJhY3RpNjR4MiAqLworIyAgZGVm aW5lIGxvd19oYWxmKHgpICh7IFwKKyAgICBoYWxmX3QgdF87IFwKKyAgICBhc20gKCAidmV4dHJh Y3RpJWNbd114JWNbbl0gJDAsICVbc10sICVbZF0iIFwKKyAgICAgICAgICA6IFtkXSAiPW0iICh0 XykgXAorICAgICAgICAgIDogW3NdICJ2IiAoeCksIFt3XSAiaSIgKEVMRU1fU0laRSAqIDgpLCBb bl0gImkiIChFTEVNX0NPVU5UIC8gMikgKTsgXAorICAgIHRfOyBcCit9KQorIyBlbmRpZgogIyBp ZiBJTlRfU0laRSA9PSA0IHx8IFVJTlRfU0laRSA9PSA0CiAjICBkZWZpbmUgYnJvYWRjYXN0KHgp ICh7IFwKICAgICB2ZWNfdCB0XzsgXApAQCAtMjkxLDYgKzMwMiw3IEBAIHN0YXRpYyBpbmxpbmUg Ym9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKIH0pCiAjICBkZWZpbmUgbWl4KHgsIHkpICgodmVj X3QpQihtb3ZkcWEzMl8sIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX3QpKHkpLCBcCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoMGIwMTAxMDEwMTAxMDEwMTAxICYgKCgxIDw8IEVMRU1f Q09VTlQpIC0gMSkpKSkKKyMgIGRlZmluZSBzaHJpbmsxKHgpICgoaGFsZl90KUIocG1vdnFkLCBf bWFzaywgKHZkaV90KSh4KSwgKHZzaV9oYWxmX3Qpe30sIH4wKSkKICMgZWxpZiBJTlRfU0laRSA9 PSA4IHx8IFVJTlRfU0laRSA9PSA4CiAjICBkZWZpbmUgYnJvYWRjYXN0KHgpICh7IFwKICAgICB2 ZWNfdCB0XzsgXApAQCAtNzIwLDYgKzczMiwyNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jv b2woYnl0ZV92ZWNfdCBiCiAjIGVuZGlmCiAjZW5kaWYKIAorI2lmIFZFQ19TSVpFID49IDE2CisK KyMgaWYgIWRlZmluZWQobG93X2hhbGYpICYmIGRlZmluZWQoSEFMRl9TSVpFKQorc3RhdGljIGlu bGluZSBoYWxmX3QgbG93X2hhbGYodmVjX3QgeCkKK3sKKyMgIGlmIEhBTEZfU0laRSA8IFZFQ19T SVpFCisgICAgaGFsZl90IHk7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBmb3IgKCBpID0g MDsgaSA8IEVMRU1fQ09VTlQgLyAyOyArK2kgKQorICAgICAgICB5W2ldID0geFtpXTsKKworICAg IHJldHVybiB5OworIyAgZWxzZQorICAgIHJldHVybiB4OworIyAgZW5kaWYKK30KKyMgZW5kaWYK KworI2VuZGlmCisKICNpZiBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBkZWZpbmVkKEZMT0FUX1NJ WkUpCiAjIGluY2x1ZGUgInNpbWQtZm1hLmMiCiAjZW5kaWYKQEAgLTEwODcsNiArMTEyMCwyMSBA QCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAKICNlbmRpZgogCisjaWYgZGVmaW5lZCh3aWRlbjEpICYm IGRlZmluZWQoc2hyaW5rMSkKKyAgICB7CisgICAgICAgIGhhbGZfdCBhdXgxID0gbG93X2hhbGYo c3JjKSwgYXV4MjsKKworICAgICAgICB0b3VjaChhdXgxKTsKKyAgICAgICAgeCA9IHdpZGVuMShh dXgxKTsKKyAgICAgICAgdG91Y2goeCk7CisgICAgICAgIGF1eDIgPSBzaHJpbmsxKHgpOworICAg ICAgICB0b3VjaChhdXgyKTsKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBFTEVNX0NPVU5UIC8g MjsgKytpICkKKyAgICAgICAgICAgIGlmICggYXV4MltpXSAhPSBzcmNbaV0gKQorICAgICAgICAg ICAgICAgIHJldHVybiBfX0xJTkVfXzsKKyAgICB9CisjZW5kaWYKKwogI2lmZGVmIGR1cF9sbwog ICAgIHRvdWNoKHNyYyk7CiAgICAgeCA9IGR1cF9sbyhzcmMpOwotLS0gYS90b29scy90ZXN0cy94 ODZfZW11bGF0b3Ivc2ltZC5oCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmgK QEAgLTcwLDYgKzcwLDIzIEBAIHR5cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXpl KFYKIHR5cGVkZWYgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKFZFQ19TSVpF KSkpIHZkaV90OwogI2VuZGlmCiAKKyNpZiBWRUNfU0laRSA+PSAxNgorCisjIGlmIEVMRU1fQ09V TlQgPj0gMgorIyAgaWYgVkVDX1NJWkUgPiAzMgorIyAgIGRlZmluZSBIQUxGX1NJWkUgKFZFQ19T SVpFIC8gMikKKyMgIGVsc2UKKyMgICBkZWZpbmUgSEFMRl9TSVpFIDE2CisjICBlbmRpZgordHlw ZWRlZiB0eXBlb2YoKHZlY190KXt9WzBdKSBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZShIQUxG X1NJWkUpKSkgaGFsZl90OwordHlwZWRlZiBjaGFyIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXpl KEhBTEZfU0laRSkpKSB2cWlfaGFsZl90OwordHlwZWRlZiBzaG9ydCBfX2F0dHJpYnV0ZV9fKCh2 ZWN0b3Jfc2l6ZShIQUxGX1NJWkUpKSkgdmhpX2hhbGZfdDsKK3R5cGVkZWYgaW50IF9fYXR0cmli dXRlX18oKHZlY3Rvcl9zaXplKEhBTEZfU0laRSkpKSB2c2lfaGFsZl90OwordHlwZWRlZiBsb25n IGxvbmcgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoSEFMRl9TSVpFKSkpIHZkaV9oYWxmX3Q7 CisjIGVuZGlmCisKKyNlbmRpZgorCiAjaWYgVkVDX1NJWkUgPT0gMTYKICMgZGVmaW5lIEIobiwg cywgYS4uLikgICBfX2J1aWx0aW5faWEzMl8gIyMgbiAjIyAxMjggIyMgcyhhKQogIyBkZWZpbmUg Ql8obiwgcywgYS4uLikgIF9fYnVpbHRpbl9pYTMyXyAjIyBuICMjICAgICAgICBzKGEpCi0tLSBh L3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC0zMDY4LDcgKzMwNjgsMjIgQEAgeDg2X2Rl Y29kZSgKICAgICAgICAgICAgICAgICBkIHw9IHZTSUI7CiAgICAgICAgICAgICBzdGF0ZS0+c2lt ZF9zaXplID0gZXh0MGYzOF90YWJsZVtiXS5zaW1kX3NpemU7CiAgICAgICAgICAgICBpZiAoIGV2 ZXhfZW5jb2RlZCgpICkKLSAgICAgICAgICAgICAgICBkaXNwOHNjYWxlID0gZGVjb2RlX2Rpc3A4 c2NhbGUoZXh0MGYzOF90YWJsZVtiXS5kOHMsIHN0YXRlKTsKKyAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFZQTU9WVVMqIGFyZSBpZGVudGljYWwg dG8gVlBNT1ZTKiBEaXNwOC1zY2FsaW5nLXdpc2UsIGJ1dAorICAgICAgICAgICAgICAgICAqIHRo ZWlyIGF0dHJpYnV0ZXMgZG9uJ3QgbWF0Y2ggdGhvc2Ugb2YgdGhlIHZleF82NiBlbmNvZGVkCisg ICAgICAgICAgICAgICAgICogaW5zbnMgd2l0aCB0aGUgc2FtZSBiYXNlIG9wY29kZXMuIFJhdGhl ciB0aGFuIGFkZGluZyBuZXcKKyAgICAgICAgICAgICAgICAgKiBjb2x1bW5zIHRvIHRoZSB0YWJs ZSwgaGFuZGxlIHRoaXMgaGVyZSBmb3Igbm93LgorICAgICAgICAgICAgICAgICAqLworICAgICAg ICAgICAgICAgIGlmICggZXZleC5wZnggIT0gdmV4X2YzIHx8IChiICYgMHhmOCkgIT0gMHgxMCAp CisgICAgICAgICAgICAgICAgICAgIGRpc3A4c2NhbGUgPSBkZWNvZGVfZGlzcDhzY2FsZShleHQw ZjM4X3RhYmxlW2JdLmQ4cywgc3RhdGUpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGRpc3A4c2NhbGUgPSBkZWNvZGVfZGlzcDhz Y2FsZShleHQwZjM4X3RhYmxlW2IgXiAweDMwXS5kOHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAg IHN0YXRlLT5zaW1kX3NpemUgPSBzaW1kX290aGVyOworICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgZXh0XzBmM2E6CkBA IC04MzU5LDEwICs4Mzc0LDE0IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBvcF9ieXRlcyA9IDE2 ID4+IChwbW92X2NvbnZlcnRfZGVsdGFbYiAmIDddIC0gdmV4LmwpOwogICAgICAgICBnb3RvIHNp bWRfMGZfaW50OwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgxMCk6 IC8qIHZwbW92dXN3YiBbeHl6XW1tLHt4LHl9bW0vbWVte2t9ICovCiAgICAgY2FzZSBYODZFTVVM X09QQ19FVkVYXzY2KDB4MGYzOCwgMHgyMCk6IC8qIHZwbW92c3hidyB7eCx5fW1tL21lbSxbeHl6 XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgyMCk6IC8q IHZwbW92c3diIFt4eXpdbW0se3gseX1tbS9tZW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZjM4LCAweDMwKTogLyogdnBtb3Z6eGJ3IHt4LHl9bW0vbWVtLFt4eXpdbW17 a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDMwKTogLyogdnBt b3Z3YiBbeHl6XW1tLHt4LHl9bW0vbWVte2t9ICovCiAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVz dF9oYXZlKGF2eDUxMmJ3KTsKLSAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgICAgIGlm ICggZXZleC5wZnggIT0gdmV4X2YzICkKKyAgICAgICAgewogICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF82NigweDBmMzgsIDB4MjEpOiAvKiB2cG1vdnN4YmQgeG1tL21lbSxbeHl6XW1te2t9ICov CiAgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHgyMik6IC8qIHZwbW92c3hi cSB4bW0vbWVtLFt4eXpdbW17a30gKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgw ZjM4LCAweDIzKTogLyogdnBtb3ZzeHdkIHt4LHl9bW0vbWVtLFt4eXpdbW17a30gKi8KQEAgLTgz NzMsNyArODM5MiwyOSBAQCB4ODZfZW11bGF0ZSgKICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhf NjYoMHgwZjM4LCAweDMzKTogLyogdnBtb3Z6eHdkIHt4LHl9bW0vbWVtLFt4eXpdbW17a30gKi8K ICAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjM4LCAweDM0KTogLyogdnBtb3Z6eHdx IHhtbS9tZW0sW3h5el1tbXtrfSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBm MzgsIDB4MzUpOiAvKiB2cG1vdnp4ZHEge3gseX1tbS9tZW0sW3h5el1tbXtrfSAqLwotICAgICAg ICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC5icnMgfHwgKGV2ZXgudyAmJiAoYiAmIDcpID09 IDUpLCBFWENfVUQpOworICAgICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGV2ZXgudyAm JiAoYiAmIDcpID09IDUsIEVYQ19VRCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg ICB7CisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgxMSk6IC8qIHZwbW92 dXNkYiBbeHl6XW1tLHhtbS9tZW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMo MHgwZjM4LCAweDEyKTogLyogdnBtb3Z1c3FiIFt4eXpdbW0seG1tL21lbXtrfSAqLworICAgIGNh c2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MTMpOiAvKiB2cG1vdnVzZHcgW3h5el1t bSx7eCx5fW1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgs IDB4MTQpOiAvKiB2cG1vdnVzcXcgW3h5el1tbSx4bW0vbWVte2t9ICovCisgICAgY2FzZSBYODZF TVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgxNSk6IC8qIHZwbW92dXNxZCBbeHl6XW1tLHt4LHl9 bW0vbWVte2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgyMSk6 IC8qIHZwbW92c2RiIFt4eXpdbW0seG1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENf RVZFWF9GMygweDBmMzgsIDB4MjIpOiAvKiB2cG1vdnNxYiBbeHl6XW1tLHhtbS9tZW17a30gKi8K KyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDIzKTogLyogdnBtb3ZzZHcg W3h5el1tbSx7eCx5fW1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygw eDBmMzgsIDB4MjQpOiAvKiB2cG1vdnNxdyBbeHl6XW1tLHhtbS9tZW17a30gKi8KKyAgICBjYXNl IFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDI1KTogLyogdnBtb3ZzcWQgW3h5el1tbSx7 eCx5fW1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4 MzEpOiAvKiB2cG1vdmRiIFt4eXpdbW0seG1tL21lbXtrfSAqLworICAgIGNhc2UgWDg2RU1VTF9P UENfRVZFWF9GMygweDBmMzgsIDB4MzIpOiAvKiB2cG1vdnFiIFt4eXpdbW0seG1tL21lbXtrfSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MzMpOiAvKiB2cG1vdmR3 IFt4eXpdbW0se3gseX1tbS9tZW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVhfRjMo MHgwZjM4LCAweDM0KTogLyogdnBtb3ZxdyBbeHl6XW1tLHhtbS9tZW17a30gKi8KKyAgICBjYXNl IFg4NkVNVUxfT1BDX0VWRVhfRjMoMHgwZjM4LCAweDM1KTogLyogdnBtb3ZxZCBbeHl6XW1tLHt4 LHl9bW0vbWVte2t9ICovCisgICAgICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoZXZleC53 IHx8IChlYS50eXBlICE9IE9QX1JFRyAmJiBldmV4LnopLCBFWENfVUQpOworICAgICAgICAgICAg ZCA9IERzdE1lbSB8IFNyY1JlZyB8IFR3b09wOworICAgICAgICB9CisgICAgICAgIGdlbmVyYXRl X2V4Y2VwdGlvbl9pZihldmV4LmJycywgRVhDX1VEKTsKICAgICAgICAgb3BfYnl0ZXMgPSAzMiA+ PiAocG1vdl9jb252ZXJ0X2RlbHRhW2IgJiA3XSArIDEgLSBldmV4LmxyKTsKICAgICAgICAgZWxl bV9ieXRlcyA9IChiICYgNykgPCAzID8gMSA6IChiICYgNykgIT0gNSA/IDIgOiA0OwogICAgICAg ICBnb3RvIGF2eDUxMmZfbm9fc2FlOwpAQCAtMTAyMTIsNiArMTAyNTMsMTIgQEAgeDg2X2luc25f aXNfbWVtX3dyaXRlKGNvbnN0IHN0cnVjdCB4ODZfZQogICAgIGNhc2UgWDg2RU1VTF9PUEMoMHgw ZiwgMHhhYik6ICAgICAgICAvKiBCVFMgKi8KICAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYsIDB4 YjMpOiAgICAgICAgLyogQlRSICovCiAgICAgY2FzZSBYODZFTVVMX09QQygweDBmLCAweGJiKTog ICAgICAgIC8qIEJUQyAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4 MTApIC4uLgorICAgICAgICAgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MTUpOiAvKiBW UE1PVlVTKiAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MjApIC4u LgorICAgICAgICAgWDg2RU1VTF9PUENfRVZFWF9GMygweDBmMzgsIDB4MjUpOiAvKiBWUE1PVlMq ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgzMCkgLi4uCisgICAg ICAgICBYODZFTVVMX09QQ19FVkVYX0YzKDB4MGYzOCwgMHgzNSk6IC8qIFZQTU9We0QsUSxXfSog Ki8KICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBjYXNlIDB4ZDk6CgoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs