From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 15/49] x86emul: basic AVX512DQ testing Date: Wed, 19 Dec 2018 07:46:03 -0700 Message-ID: <5C1A59AB0200007800207943@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 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 1gZd6v-0004Az-36 for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 14:46:09 +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 VGVzdCB2YXJpb3VzIG9mIHRoZSBpbnNucyB3aGljaCBoYXZlIGJlZW4gaW1wbGVtZW50ZWQgYWxy ZWFkeS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0t CnY2OiBSZS1iYXNlLgp2NTogUmUtYmFzZSBvdmVyIGNoYW5nZXMgZWFybGllciBpbiB0aGUgc2Vy aWVzLgp2NDogV3JhcCBPVlIocG11bGxxKSBpbiBfX0FWWDUxMlZMX18gY29uZGl0aW9uYWwuCnYz OiBOZXcuCgotLS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3IvTWFrZWZpbGUKKysrIGIvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL01ha2VmaWxlCkBAIC0xOSw3ICsxOSw3IEBAIHZwYXRoICUu YyAkKFhFTl9ST09UKS94ZW4vbGliL3g4NgogCiBDRkxBR1MgKz0gJChDRkxBR1NfeGVuaW5jbHVk ZSkKIAotU0lNRCA6PSAzZG5vdyBzc2Ugc3NlMiBzc2U0IGF2eCBhdngyIHhvcCBhdng1MTJmIGF2 eDUxMmJ3CitTSU1EIDo9IDNkbm93IHNzZSBzc2UyIHNzZTQgYXZ4IGF2eDIgeG9wIGF2eDUxMmYg YXZ4NTEyYncgYXZ4NTEyZHEKIEZNQSA6PSBmbWE0IGZtYQogU0cgOj0gYXZ4Mi1zZwogVEVTVENB U0VTIDo9IGJsb3dmaXNoICQoU0lNRCkgJChGTUEpICQoU0cpCkBAIC03Miw5ICs3MiwxMiBAQCBh dng1MTJmLWZsdHMgOj0gNCA4CiBhdng1MTJidy12ZWNzIDo9ICQoYXZ4NTEyZi12ZWNzKQogYXZ4 NTEyYnctaW50cyA6PSAxIDIKIGF2eDUxMmJ3LWZsdHMgOj0KK2F2eDUxMmRxLXZlY3MgOj0gJChh dng1MTJmLXZlY3MpCithdng1MTJkcS1pbnRzIDo9ICQoYXZ4NTEyZi1pbnRzKQorYXZ4NTEyZHEt Zmx0cyA6PSAkKGF2eDUxMmYtZmx0cykKIAogYXZ4NTEyZi1vcG1hc2stdmVjcyA6PSAyCi1hdng1 MTJkcS1vcG1hc2stdmVjcyA6PSAxCithdng1MTJkcS1vcG1hc2stdmVjcyA6PSAxIDIKIGF2eDUx MmJ3LW9wbWFzay12ZWNzIDo9IDQgOAogCiAjIFN1cHByZXNzIGJ1aWxkaW5nIGJ5IGRlZmF1bHQg b2YgdGhlIGhhcm5lc3MgaWYgdGhlIGNvbXBpbGVyIGNhbid0IGRlYWwKLS0tIGEvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3NpbWQuaAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2lt ZC5oCkBAIC0xMjEsNiArMTIxLDM0IEBAIHR5cGVkZWYgaW50IF9fYXR0cmlidXRlX18oKHZlY3Rv cl9zaXplKEUKIHR5cGVkZWYgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKEVJ R0hUSF9TSVpFKSkpIHZkaV9laWdodGhfdDsKICMgZW5kaWYKIAorIyBkZWZpbmUgREVDTF9QQUlS KHcpIFwKK3R5cGVkZWYgdyAjIyBfdCBwYWlyX3Q7IFwKK3R5cGVkZWYgdnNpXyAjIyB3ICMjIF90 IHZzaV9wYWlyX3Q7IFwKK3R5cGVkZWYgdmRpXyAjIyB3ICMjIF90IHZkaV9wYWlyX3QKKyMgZGVm aW5lIERFQ0xfUVVBUlRFVCh3KSBcCit0eXBlZGVmIHcgIyMgX3QgcXVhcnRldF90OyBcCit0eXBl ZGVmIHZzaV8gIyMgdyAjIyBfdCB2c2lfcXVhcnRldF90OyBcCit0eXBlZGVmIHZkaV8gIyMgdyAj IyBfdCB2ZGlfcXVhcnRldF90CisjIGRlZmluZSBERUNMX09DVEVUKHcpIFwKK3R5cGVkZWYgdyAj IyBfdCBvY3RldF90OyBcCit0eXBlZGVmIHZzaV8gIyMgdyAjIyBfdCB2c2lfb2N0ZXRfdDsgXAor dHlwZWRlZiB2ZGlfICMjIHcgIyMgX3QgdmRpX29jdGV0X3QKKworIyBpZiBFTEVNX0NPVU5UID09 IDQKK0RFQ0xfUEFJUihoYWxmKTsKKyMgZWxpZiBFTEVNX0NPVU5UID09IDgKK0RFQ0xfUEFJUihx dWFydGVyKTsKK0RFQ0xfUVVBUlRFVChoYWxmKTsKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CitE RUNMX1BBSVIoZWlnaHRoKTsKK0RFQ0xfUVVBUlRFVChxdWFydGVyKTsKK0RFQ0xfT0NURVQoaGFs Zik7CisjIGVuZGlmCisKKyMgdW5kZWYgREVDTF9PQ1RFVAorIyB1bmRlZiBERUNMX1FVQVJURVQK KyMgdW5kZWYgREVDTF9QQUlSCisKICNlbmRpZgogCiAjaWYgVkVDX1NJWkUgPT0gMTYKQEAgLTE0 Niw2ICsxNzQsMTQgQEAgdHlwZWRlZiBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygodmVjdG9yXwog I2lmZGVmIF9fQVZYNTEyRl9fCiAKIC8qIFNhZGx5IHRoZXJlIGFyZSBhIGZldyBleGNlcHRpb25z IHRvIHRoZSBnZW5lcmFsIG5hbWluZyBydWxlcy4gKi8KKyMgZGVmaW5lIF9fYnVpbHRpbl9pYTMy X2Jyb2FkY2FzdGYzMng0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX2Jyb2FkY2FzdGYzMng0XzUx MgorIyBkZWZpbmUgX19idWlsdGluX2lhMzJfYnJvYWRjYXN0aTMyeDRfNTEyX21hc2sgX19idWls dGluX2lhMzJfYnJvYWRjYXN0aTMyeDRfNTEyCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNl cnRmMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4NF9tYXNrCisjIGRlZmlu ZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRmMzJ4OF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNl cnRmMzJ4OF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRmNjR4NF81MTJfbWFz ayBfX2J1aWx0aW5faWEzMl9pbnNlcnRmNjR4NF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEz Ml9pbnNlcnRpMzJ4NF81MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4NF9tYXNrCisj IGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4OF81MTJfbWFzayBfX2J1aWx0aW5faWEz Ml9pbnNlcnRpMzJ4OF9tYXNrCisjIGRlZmluZSBfX2J1aWx0aW5faWEzMl9pbnNlcnRpNjR4NF81 MTJfbWFzayBfX2J1aWx0aW5faWEzMl9pbnNlcnRpNjR4NF9tYXNrCiAjIGRlZmluZSBfX2J1aWx0 aW5faWEzMl9zaHVmX2YzMng0XzUxMl9tYXNrIF9fYnVpbHRpbl9pYTMyX3NodWZfZjMyeDRfbWFz awogIyBkZWZpbmUgX19idWlsdGluX2lhMzJfc2h1Zl9mNjR4Ml81MTJfbWFzayBfX2J1aWx0aW5f aWEzMl9zaHVmX2Y2NHgyX21hc2sKICMgZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3NodWZfaTMyeDRf NTEyX21hc2sgX19idWlsdGluX2lhMzJfc2h1Zl9pMzJ4NF9tYXNrCkBAIC0zMzEsNiArMzY3LDIw IEBAIE9WUihzcmxkcSk7CiAjICBlbmRpZgogIyBlbmRpZgogCisjIGlmZGVmIF9fQVZYNTEyRFFf XworT1ZSX1ZGUChhbmQpOworT1ZSX1ZGUChhbmRuKTsKK09WUl9WRlAob3IpOworT1ZSKHBleHRy ZCk7CitPVlIocGV4dHJxKTsKK09WUihwaW5zcmQpOworT1ZSKHBpbnNycSk7CisjICBpZmRlZiBf X0FWWDUxMlZMX18KK09WUihwbXVsbHEpOworIyAgZW5kaWYKK09WUl9WRlAoeG9yKTsKKyMgZW5k aWYKKwogIyB1bmRlZiBPVlJfVkZQCiAjIHVuZGVmIE9WUl9TRlAKICMgdW5kZWYgT1ZSX0lOVAot LS0gYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4 Nl9lbXVsYXRvci9zaW1kLmMKQEAgLTEzOSw2ICsxMzksMjcgQEAgc3RhdGljIGlubGluZSBib29s IF90b19ib29sKGJ5dGVfdmVjX3QgYgogIyBlbmRpZgogI2VsaWYgZGVmaW5lZChGTE9BVF9TSVpF KSAmJiBkZWZpbmVkKF9fQVZYNTEyRl9fKSAmJiBcCiAgICAgICAoVkVDX1NJWkUgPT0gNjQgfHwg ZGVmaW5lZChfX0FWWDUxMlZMX18pKQorIyBpZiBFTEVNX0NPVU5UID09IDggLyogdmV4dHJhY3Rm ezMyLDY0fXg0ICovIHx8IFwKKyAgICAgKEVMRU1fQ09VTlQgPT0gMTYgJiYgRUxFTV9TSVpFID09 IDQgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pKSAvKiB2ZXh0cmFjdGYzMng4ICovIHx8IFwKKyAg ICAgKEVMRU1fQ09VTlQgPT0gNCAmJiBFTEVNX1NJWkUgPT0gOCAmJiBkZWZpbmVkKF9fQVZYNTEy RFFfXykpIC8qIHZleHRyYWN0ZjY0eDIgKi8KKyMgIGRlZmluZSBsb3dfaGFsZih4KSAoeyBcCisg ICAgaGFsZl90IHRfOyBcCisgICAgYXNtICggInZleHRyYWN0ZiVjW3ddeCVjW25dICQwLCAlW3Nd LCAlW2RdIiBcCisgICAgICAgICAgOiBbZF0gIj1tIiAodF8pIFwKKyAgICAgICAgICA6IFtzXSAi diIgKHgpLCBbd10gImkiIChFTEVNX1NJWkUgKiA4KSwgW25dICJpIiAoRUxFTV9DT1VOVCAvIDIp ICk7IFwKKyAgICB0XzsgXAorfSkKKyMgZW5kaWYKKyMgaWYgKEVMRU1fQ09VTlQgPT0gMTYgJiYg RUxFTV9TSVpFID09IDQpIC8qIHZleHRyYWN0ZjMyeDQgKi8gfHwgXAorICAgICAoRUxFTV9DT1VO VCA9PSA4ICYmIEVMRU1fU0laRSA9PSA4ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKSkgLyogdmV4 dHJhY3RmNjR4MiAqLworIyAgZGVmaW5lIGxvd19xdWFydGVyKHgpICh7IFwKKyAgICBxdWFydGVy X3QgdF87IFwKKyAgICBhc20gKCAidmV4dHJhY3RmJWNbd114JWNbbl0gJDAsICVbc10sICVbZF0i IFwKKyAgICAgICAgICA6IFtkXSAiPW0iICh0XykgXAorICAgICAgICAgIDogW3NdICJ2IiAoeCks IFt3XSAiaSIgKEVMRU1fU0laRSAqIDgpLCBbbl0gImkiIChFTEVNX0NPVU5UIC8gNCkgKTsgXAor ICAgIHRfOyBcCit9KQorIyBlbmRpZgogIyBpZiBGTE9BVF9TSVpFID09IDQKICMgIGRlZmluZSBi cm9hZGNhc3QoeCkgKHsgXAogICAgIHZlY190IHRfOyBcCkBAIC0xNDYsNiArMTY3LDE3IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICAgICAgICA6ICI9diIg KHRfKSA6ICJtIiAoKihmbG9hdFsxXSl7IHggfSkgKTsgXAogICAgIHRfOyBcCiB9KQorIyAgaWYg VkVDX1NJWkUgPj0gMzIgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pCisjICAgZGVmaW5lIGJyb2Fk Y2FzdF9wYWlyKHgpICh7IFwKKyAgICB2ZWNfdCB0XzsgXAorICAgIGFzbSAoICJ2YnJvYWRjYXN0 ZjMyeDIgJTEsICUwIiA6ICI9diIgKHRfKSA6ICJtIiAoeCkgKTsgXAorICAgIHRfOyBcCit9KQor IyAgZW5kaWYKKyMgIGlmIFZFQ19TSVpFID09IDY0ICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKQor IyAgIGRlZmluZSBicm9hZGNhc3Rfb2N0ZXQoeCkgQihicm9hZGNhc3RmMzJ4OF8sIF9tYXNrLCB4 LCB1bmRlZigpLCB+MCkKKyMgICBkZWZpbmUgaW5zZXJ0X29jdGV0KHgsIHksIHApIEIoaW5zZXJ0 ZjMyeDhfLCBfbWFzaywgeCwgeSwgcCwgdW5kZWYoKSwgfjApCisjICBlbmRpZgogIyAgZGVmaW5l IG1heCh4LCB5KSBCUl8obWF4cHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgIGRlZmlu ZSBtaW4oeCwgeSkgQlJfKG1pbnBzLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBkZWZp bmUgbWl4KHgsIHkpIEIobW92YXBzLCBfbWFzaywgeCwgeSwgKDBiMDEwMTAxMDEwMTAxMDEwMSAm IEFMTF9UUlVFKSkKQEAgLTE1NSw2ICsxODcsMTMgQEAgc3RhdGljIGlubGluZSBib29sIF90b19i b29sKGJ5dGVfdmVjX3QgYgogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpIEIodW5wY2ts cHMsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgICBkZWZpbmUgc3dhcCh4KSBCKHNodWZw cywgX21hc2ssIHgsIHgsIDBiMDAwMTEwMTEsIHVuZGVmKCksIH4wKQogIyAgZWxzZQorIyAgIGRl ZmluZSBicm9hZGNhc3RfcXVhcnRldCh4KSBCKGJyb2FkY2FzdGYzMng0XywgX21hc2ssIHgsIHVu ZGVmKCksIH4wKQorIyAgIGRlZmluZSBpbnNlcnRfcGFpcih4LCB5LCBwKSBcCisgICAgQihpbnNl cnRmMzJ4NF8sIF9tYXNrLCB4LCBcCisgICAgICAvKiBDYXN0IG5lZWRlZCBiZWxvdyB0byB3b3Jr IGFyb3VuZCBnY2MgNy54IHF1aXJrLiAqLyBcCisgICAgICAocCkgJiAxID8gKHR5cGVvZih5KSlf X2J1aWx0aW5faWEzMl9zaHVmcHMoeSwgeSwgMGIwMTAwMDEwMCkgOiAoeSksIFwKKyAgICAgIChw KSA+PiAxLCB4LCAzIDw8ICgocCkgKiAyKSkKKyMgICBkZWZpbmUgaW5zZXJ0X3F1YXJ0ZXQoeCwg eSwgcCkgQihpbnNlcnRmMzJ4NF8sIF9tYXNrLCB4LCB5LCBwLCB1bmRlZigpLCB+MCkKICMgICBk ZWZpbmUgaW50ZXJsZWF2ZV9oaSh4LCB5KSBCKHZwZXJtaTJ2YXJwcywgX21hc2ssIHgsIGludGVy bGVhdmVfaGksIHksIH4wKQogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2xvKHgsIHkpIEIodnBlcm10 MnZhcnBzLCBfbWFzaywgaW50ZXJsZWF2ZV9sbywgeCwgeSwgfjApCiAjICAgZGVmaW5lIHN3YXAo eCkgKHsgXApAQCAtMTc4LDYgKzIxNywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2wo Ynl0ZV92ZWNfdCBiCiAgICAgdF87IFwKIH0pCiAjICBlbmRpZgorIyAgaWYgVkVDX1NJWkUgPj0g MzIgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pCisjICAgZGVmaW5lIGJyb2FkY2FzdF9wYWlyKHgp IEIoYnJvYWRjYXN0ZjY0eDJfLCBfbWFzaywgeCwgdW5kZWYoKSwgfjApCisjICAgZGVmaW5lIGlu c2VydF9wYWlyKHgsIHksIHApIEIoaW5zZXJ0ZjY0eDJfLCBfbWFzaywgeCwgeSwgcCwgdW5kZWYo KSwgfjApCisjICBlbmRpZgorIyAgaWYgVkVDX1NJWkUgPT0gNjQKKyMgICBkZWZpbmUgYnJvYWRj YXN0X3F1YXJ0ZXQoeCkgQihicm9hZGNhc3RmNjR4NF8sICwgeCwgdW5kZWYoKSwgfjApCisjICAg ZGVmaW5lIGluc2VydF9xdWFydGV0KHgsIHksIHApIEIoaW5zZXJ0ZjY0eDRfLCBfbWFzaywgeCwg eSwgcCwgdW5kZWYoKSwgfjApCisjICBlbmRpZgogIyAgZGVmaW5lIG1heCh4LCB5KSBCUl8obWF4 cGQsIF9tYXNrLCB4LCB5LCB1bmRlZigpLCB+MCkKICMgIGRlZmluZSBtaW4oeCwgeSkgQlJfKG1p bnBkLCBfbWFzaywgeCwgeSwgdW5kZWYoKSwgfjApCiAjICBkZWZpbmUgbWl4KHgsIHkpIEIobW92 YXBkLCBfbWFzaywgeCwgeSwgMGIwMTAxMDEwMSkKQEAgLTMwNiw2ICszNTMsMTYgQEAgc3RhdGlj IGlubGluZSBib29sIF90b19ib29sKGJ5dGVfdmVjX3QgYgogICAgIHRfOyBcCiB9KQogIyBlbmRp ZgorIyBpZiAoRUxFTV9DT1VOVCA9PSAxNiAmJiBFTEVNX1NJWkUgPT0gNCkgLyogdmV4dHJhY3Rp MzJ4NCAqLyB8fCBcCisgICAgICAgKEVMRU1fQ09VTlQgPT0gOCAmJiBFTEVNX1NJWkUgPT0gOCAm JiBkZWZpbmVkKF9fQVZYNTEyRFFfXykpIC8qIHZleHRyYWN0aTY0eDIgKi8KKyMgIGRlZmluZSBs b3dfcXVhcnRlcih4KSAoeyBcCisgICAgcXVhcnRlcl90IHRfOyBcCisgICAgYXNtICggInZleHRy YWN0aSVjW3ddeCVjW25dICQwLCAlW3NdLCAlW2RdIiBcCisgICAgICAgICAgOiBbZF0gIj1tIiAo dF8pIFwKKyAgICAgICAgICA6IFtzXSAidiIgKHgpLCBbd10gImkiIChFTEVNX1NJWkUgKiA4KSwg W25dICJpIiAoRUxFTV9DT1VOVCAvIDQpICk7IFwKKyAgICB0XzsgXAorfSkKKyMgZW5kaWYKICMg aWYgSU5UX1NJWkUgPT0gNCB8fCBVSU5UX1NJWkUgPT0gNAogIyAgZGVmaW5lIGJyb2FkY2FzdCh4 KSAoeyBcCiAgICAgdmVjX3QgdF87IFwKQEAgLTMxOCwxMSArMzc1LDMwIEBAIHN0YXRpYyBpbmxp bmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICAgICBhc20gKCAidnBicm9hZGNhc3RkICVr MSwgJTAiIDogIj12IiAodF8pIDogInIiICh4KSApOyBcCiAgICAgdF87IFwKIH0pCisjICBpZmRl ZiBfX0FWWDUxMkRRX18KKyMgICBkZWZpbmUgYnJvYWRjYXN0X3BhaXIoeCkgKHsgXAorICAgIHZl Y190IHRfOyBcCisgICAgYXNtICggInZicm9hZGNhc3RpMzJ4MiAlMSwgJTAiIDogIj12IiAodF8p IDogIm0iICh4KSApOyBcCisgICAgdF87IFwKK30pCisjICBlbmRpZgorIyAgaWYgVkVDX1NJWkUg PT0gNjQgJiYgZGVmaW5lZChfX0FWWDUxMkRRX18pCisjICAgZGVmaW5lIGJyb2FkY2FzdF9vY3Rl dCh4KSAoKHZlY190KUIoYnJvYWRjYXN0aTMyeDhfLCBfbWFzaywgKHZzaV9vY3RldF90KSh4KSwg KHZzaV90KXVuZGVmKCksIH4wKSkKKyMgICBkZWZpbmUgaW5zZXJ0X29jdGV0KHgsIHksIHApICgo dmVjX3QpQihpbnNlcnRpMzJ4OF8sIF9tYXNrLCAodnNpX3QpKHgpLCAodnNpX29jdGV0X3QpKHkp LCBwLCAodnNpX3QpdW5kZWYoKSwgfjApKQorIyAgZW5kaWYKICMgIGlmIFZFQ19TSVpFID09IDE2 CiAjICAgZGVmaW5lIGludGVybGVhdmVfaGkoeCwgeSkgKCh2ZWNfdClCKHB1bnBja2hkcSwgX21h c2ssICh2c2lfdCkoeCksICh2c2lfdCkoeSksICh2c2lfdCl1bmRlZigpLCB+MCkpCiAjICAgZGVm aW5lIGludGVybGVhdmVfbG8oeCwgeSkgKCh2ZWNfdClCKHB1bnBja2xkcSwgX21hc2ssICh2c2lf dCkoeCksICh2c2lfdCkoeSksICh2c2lfdCl1bmRlZigpLCB+MCkpCiAjICAgZGVmaW5lIHN3YXAo eCkgKCh2ZWNfdClCKHBzaHVmZCwgX21hc2ssICh2c2lfdCkoeCksIDBiMDAwMTEwMTEsICh2c2lf dCl1bmRlZigpLCB+MCkpCiAjICBlbHNlCisjICAgZGVmaW5lIGJyb2FkY2FzdF9xdWFydGV0KHgp ICgodmVjX3QpQihicm9hZGNhc3RpMzJ4NF8sIF9tYXNrLCAodnNpX3F1YXJ0ZXRfdCkoeCksICh2 c2lfdCl1bmRlZigpLCB+MCkpCisjICAgZGVmaW5lIGluc2VydF9wYWlyKHgsIHksIHApIFwKKyAg ICAodmVjX3QpKEIoaW5zZXJ0aTMyeDRfLCBfbWFzaywgKHZzaV90KSh4KSwgXAorICAgICAgICAg ICAgICAvKiBGaXJzdCBjYXN0IG5lZWRlZCBiZWxvdyB0byB3b3JrIGFyb3VuZCBnY2MgNy54IHF1 aXJrLiAqLyBcCisgICAgICAgICAgICAgIChwKSAmIDEgPyAodnNpX3BhaXJfdClfX2J1aWx0aW5f aWEzMl9wc2h1ZmQoKHZzaV9wYWlyX3QpKHkpLCAwYjAxMDAwMTAwKSBcCisgICAgICAgICAgICAg ICAgICAgICAgOiAodnNpX3BhaXJfdCkoeSksIFwKKyAgICAgICAgICAgICAgKHApID4+IDEsICh2 c2lfdCkoeCksIDMgPDwgKChwKSAqIDIpKSkKKyMgICBkZWZpbmUgaW5zZXJ0X3F1YXJ0ZXQoeCwg eSwgcCkgKCh2ZWNfdClCKGluc2VydGkzMng0XywgX21hc2ssICh2c2lfdCkoeCksICh2c2lfcXVh cnRldF90KSh5KSwgcCwgKHZzaV90KXVuZGVmKCksIH4wKSkKICMgICBkZWZpbmUgaW50ZXJsZWF2 ZV9oaSh4LCB5KSAoKHZlY190KUIodnBlcm1pMnZhcmQsIF9tYXNrLCAodnNpX3QpKHgpLCBpbnRl cmxlYXZlX2hpLCAodnNpX3QpKHkpLCB+MCkpCiAjICAgZGVmaW5lIGludGVybGVhdmVfbG8oeCwg eSkgKCh2ZWNfdClCKHZwZXJtdDJ2YXJkLCBfbWFzaywgaW50ZXJsZWF2ZV9sbywgKHZzaV90KSh4 KSwgKHZzaV90KSh5KSwgfjApKQogIyAgIGRlZmluZSBzd2FwKHgpICgodmVjX3QpQihwc2h1ZmQs IF9tYXNrLCBcCkBAIC0zNDcsNiArNDIzLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9v bChieXRlX3ZlY190IGIKICAgICB0XzsgXAogfSkKICMgIGVuZGlmCisjICBpZiBWRUNfU0laRSA+ PSAzMiAmJiBkZWZpbmVkKF9fQVZYNTEyRFFfXykKKyMgICBkZWZpbmUgYnJvYWRjYXN0X3BhaXIo eCkgKCh2ZWNfdClCKGJyb2FkY2FzdGk2NHgyXywgX21hc2ssICh2ZGlfcGFpcl90KSh4KSwgKHZk aV90KXVuZGVmKCksIH4wKSkKKyMgICBkZWZpbmUgaW5zZXJ0X3BhaXIoeCwgeSwgcCkgKCh2ZWNf dClCKGluc2VydGk2NHgyXywgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfcGFpcl90KSh5KSwgcCwg KHZkaV90KXVuZGVmKCksIH4wKSkKKyMgIGVuZGlmCisjICBpZiBWRUNfU0laRSA9PSA2NAorIyAg IGRlZmluZSBicm9hZGNhc3RfcXVhcnRldCh4KSAoKHZlY190KUIoYnJvYWRjYXN0aTY0eDRfLCAs ICh2ZGlfcXVhcnRldF90KSh4KSwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgICBkZWZpbmUgaW5z ZXJ0X3F1YXJ0ZXQoeCwgeSwgcCkgKCh2ZWNfdClCKGluc2VydGk2NHg0XywgX21hc2ssICh2ZGlf dCkoeCksICh2ZGlfcXVhcnRldF90KSh5KSwgcCwgKHZkaV90KXVuZGVmKCksIH4wKSkKKyMgIGVu ZGlmCiAjICBpZiBWRUNfU0laRSA9PSAxNgogIyAgIGRlZmluZSBpbnRlcmxlYXZlX2hpKHgsIHkp ICgodmVjX3QpQihwdW5wY2tocWRxLCBfbWFzaywgKHZkaV90KSh4KSwgKHZkaV90KSh5KSwgKHZk aV90KXVuZGVmKCksIH4wKSkKICMgICBkZWZpbmUgaW50ZXJsZWF2ZV9sbyh4LCB5KSAoKHZlY190 KUIocHVucGNrbHFkcSwgX21hc2ssICh2ZGlfdCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCl1bmRl ZigpLCB+MCkpCkBAIC04OTgsNyArOTgyLDcgQEAgc3RhdGljIGlubGluZSBlaWdodGhfdCBsb3df ZWlnaHRoKHZlY190CiAgICAgZWlnaHRoX3QgeTsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAg IGZvciAoIGkgPSAwOyBpIDwgRUxFTV9DT1VOVCAvIDQ7ICsraSApCisgICAgZm9yICggaSA9IDA7 IGkgPCBFTEVNX0NPVU5UIC8gODsgKytpICkKICAgICAgICAgeVtpXSA9IHhbaV07CiAKICAgICBy ZXR1cm4geTsKQEAgLTkxMCw2ICs5OTQsNTAgQEAgc3RhdGljIGlubGluZSBlaWdodGhfdCBsb3df ZWlnaHRoKHZlY190CiAKICNlbmRpZgogCisjaWZkZWYgYnJvYWRjYXN0X3BhaXIKKyMgaWYgRUxF TV9DT1VOVCA9PSA0CisjICBkZWZpbmUgYnJvYWRjYXN0X2hhbGYgYnJvYWRjYXN0X3BhaXIKKyMg ZWxpZiBFTEVNX0NPVU5UID09IDgKKyMgIGRlZmluZSBicm9hZGNhc3RfcXVhcnRlciBicm9hZGNh c3RfcGFpcgorIyBlbGlmIEVMRU1fQ09VTlQgPT0gMTYKKyMgIGRlZmluZSBicm9hZGNhc3RfZWln aHRoIGJyb2FkY2FzdF9wYWlyCisjIGVuZGlmCisjZW5kaWYKKworI2lmZGVmIGluc2VydF9wYWly CisjIGlmIEVMRU1fQ09VTlQgPT0gNAorIyAgZGVmaW5lIGluc2VydF9oYWxmIGluc2VydF9wYWly CisjIGVsaWYgRUxFTV9DT1VOVCA9PSA4CisjICBkZWZpbmUgaW5zZXJ0X3F1YXJ0ZXIgaW5zZXJ0 X3BhaXIKKyMgZWxpZiBFTEVNX0NPVU5UID09IDE2CisjICBkZWZpbmUgaW5zZXJ0X2VpZ2h0aCBp bnNlcnRfcGFpcgorIyBlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBicm9hZGNhc3RfcXVhcnRldAor IyBpZiBFTEVNX0NPVU5UID09IDgKKyMgIGRlZmluZSBicm9hZGNhc3RfaGFsZiBicm9hZGNhc3Rf cXVhcnRldAorIyBlbGlmIEVMRU1fQ09VTlQgPT0gMTYKKyMgIGRlZmluZSBicm9hZGNhc3RfcXVh cnRlciBicm9hZGNhc3RfcXVhcnRldAorIyBlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBpbnNlcnRf cXVhcnRldAorIyBpZiBFTEVNX0NPVU5UID09IDgKKyMgIGRlZmluZSBpbnNlcnRfaGFsZiBpbnNl cnRfcXVhcnRldAorIyBlbGlmIEVMRU1fQ09VTlQgPT0gMTYKKyMgIGRlZmluZSBpbnNlcnRfcXVh cnRlciBpbnNlcnRfcXVhcnRldAorIyBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKGJyb2Fk Y2FzdF9vY3RldCkgJiYgRUxFTV9DT1VOVCA9PSAxNgorIyBkZWZpbmUgYnJvYWRjYXN0X2hhbGYg YnJvYWRjYXN0X29jdGV0CisjZW5kaWYKKworI2lmIGRlZmluZWQoaW5zZXJ0X29jdGV0KSAmJiBF TEVNX0NPVU5UID09IDE2CisjIGRlZmluZSBpbnNlcnRfaGFsZiBpbnNlcnRfb2N0ZXQKKyNlbmRp ZgorCiAjaWYgZGVmaW5lZChfX0FWWDUxMkZfXykgJiYgZGVmaW5lZChGTE9BVF9TSVpFKQogIyBp bmNsdWRlICJzaW1kLWZtYS5jIgogI2VuZGlmCkBAIC0xMjA1LDYgKzEzMzMsNjAgQEAgaW50IHNp bWRfdGVzdCh2b2lkKQogICAgIGlmICggIWVxKGJyb2FkY2FzdDIoRUxFTV9DT1VOVCArIDEpLCBz cmMgKyBpbnYpICkgcmV0dXJuIF9fTElORV9fOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKGJyb2Fk Y2FzdF9oYWxmKSAmJiBkZWZpbmVkKGluc2VydF9oYWxmKQorICAgIHsKKyAgICAgICAgaGFsZl90 IGF1eCA9IGxvd19oYWxmKHNyYyk7CisKKyAgICAgICAgdG91Y2goYXV4KTsKKyAgICAgICAgeCA9 IGJyb2FkY2FzdF9oYWxmKGF1eCk7CisgICAgICAgIHRvdWNoKGF1eCk7CisgICAgICAgIHkgPSBp bnNlcnRfaGFsZihzcmMsIGF1eCwgMSk7CisgICAgICAgIGlmICggIWVxKHgsIHkpICkgcmV0dXJu IF9fTElORV9fOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChicm9hZGNhc3RfcXVhcnRl cikgJiYgZGVmaW5lZChpbnNlcnRfcXVhcnRlcikKKyAgICB7CisgICAgICAgIHF1YXJ0ZXJfdCBh dXggPSBsb3dfcXVhcnRlcihzcmMpOworCisgICAgICAgIHRvdWNoKGF1eCk7CisgICAgICAgIHgg PSBicm9hZGNhc3RfcXVhcnRlcihhdXgpOworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5 ID0gaW5zZXJ0X3F1YXJ0ZXIoc3JjLCBhdXgsIDEpOworICAgICAgICB0b3VjaChhdXgpOworICAg ICAgICB5ID0gaW5zZXJ0X3F1YXJ0ZXIoeSwgYXV4LCAyKTsKKyAgICAgICAgdG91Y2goYXV4KTsK KyAgICAgICAgeSA9IGluc2VydF9xdWFydGVyKHksIGF1eCwgMyk7CisgICAgICAgIGlmICggIWVx KHgsIHkpICkgcmV0dXJuIF9fTElORV9fOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChi cm9hZGNhc3RfZWlnaHRoKSAmJiBkZWZpbmVkKGluc2VydF9laWdodGgpICYmIFwKKyAgICAvKiBB dCBsZWFzdCBnY2MgNy4zICJvcHRpbWl6ZXMiIGF3YXkgYWxsIGluc2VydF9laWdodGgoKSBjYWxs cyBiZWxvdy4gKi8gXAorICAgIF9fR05VQ19fID49IDgKKyAgICB7CisgICAgICAgIGVpZ2h0aF90 IGF1eCA9IGxvd19laWdodGgoc3JjKTsKKworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB4 ID0gYnJvYWRjYXN0X2VpZ2h0aChhdXgpOworICAgICAgICB0b3VjaChhdXgpOworICAgICAgICB5 ID0gaW5zZXJ0X2VpZ2h0aChzcmMsIGF1eCwgMSk7CisgICAgICAgIHRvdWNoKGF1eCk7CisgICAg ICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgMik7CisgICAgICAgIHRvdWNoKGF1eCk7Cisg ICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgMyk7CisgICAgICAgIHRvdWNoKGF1eCk7 CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgNCk7CisgICAgICAgIHRvdWNoKGF1 eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgNSk7CisgICAgICAgIHRvdWNo KGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgNik7CisgICAgICAgIHRv dWNoKGF1eCk7CisgICAgICAgIHkgPSBpbnNlcnRfZWlnaHRoKHksIGF1eCwgNyk7CisgICAgICAg IGlmICggIWVxKHgsIHkpICkgcmV0dXJuIF9fTElORV9fOworICAgIH0KKyNlbmRpZgorCiAjaWYg ZGVmaW5lZChpbnRlcmxlYXZlX2xvKSAmJiBkZWZpbmVkKGludGVybGVhdmVfaGkpCiAgICAgdG91 Y2goc3JjKTsKICAgICB4ID0gaW50ZXJsZWF2ZV9sbyhpbnYsIHNyYyk7Ci0tLSBhL3Rvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4 Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCkBAIC0yMyw2ICsyMyw3IEBAIGFzbSAoICIu cHVzaHNlY3Rpb24gLnRlc3QsIFwiYXhcIiwgQHByb2cKICNpbmNsdWRlICJhdng1MTJidy1vcG1h c2suaCIKICNpbmNsdWRlICJhdng1MTJmLmgiCiAjaW5jbHVkZSAiYXZ4NTEyYncuaCIKKyNpbmNs dWRlICJhdng1MTJkcS5oIgogCiAjZGVmaW5lIHZlcmJvc2UgZmFsc2UgLyogU3dpdGNoIHRvIHRy dWUgZm9yIGZhciBtb3JlIGxvZ2dpbmcuICovCiAKQEAgLTEwMCw2ICsxMDEsMTEgQEAgc3RhdGlj IGJvb2wgc2ltZF9jaGVja19hdng1MTJkcSh2b2lkKQogfQogI2RlZmluZSBzaW1kX2NoZWNrX2F2 eDUxMmRxX29wbWFzayBzaW1kX2NoZWNrX2F2eDUxMmRxCiAKK3N0YXRpYyBib29sIHNpbWRfY2hl Y2tfYXZ4NTEyZHFfdmwodm9pZCkKK3sKKyAgICByZXR1cm4gY3B1X2hhc19hdng1MTJkcSAmJiBj cHVfaGFzX2F2eDUxMnZsOworfQorCiBzdGF0aWMgYm9vbCBzaW1kX2NoZWNrX2F2eDUxMmJ3KHZv aWQpCiB7CiAgICAgcmV0dXJuIGNwdV9oYXNfYXZ4NTEyYnc7CkBAIC0yNjcsOSArMjczLDEwIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIFNJTUQoWE9QIGkzMng4LCAgICAgICAgICAgICAg IHhvcCwgICAgICAzMmk0KSwKICAgICBTSU1EKFhPUCBpNjR4NCwgICAgICAgICAgICAgICB4b3As ICAgICAgMzJpOCksCiAgICAgU0lNRChPUE1BU0svdywgICAgIGF2eDUxMmZfb3BtYXNrLCAgICAg ICAgIDIpLAotICAgIFNJTUQoT1BNQVNLL2IsICAgIGF2eDUxMmRxX29wbWFzaywgICAgICAgICAx KSwKLSAgICBTSU1EKE9QTUFTSy9kLCAgICBhdng1MTJid19vcG1hc2ssICAgICAgICAgNCksCi0g ICAgU0lNRChPUE1BU0svcSwgICAgYXZ4NTEyYndfb3BtYXNrLCAgICAgICAgIDgpLAorICAgIFNJ TUQoT1BNQVNLK0RRL2IsIGF2eDUxMmRxX29wbWFzaywgICAgICAgICAxKSwKKyAgICBTSU1EKE9Q TUFTSytEUS93LCBhdng1MTJkcV9vcG1hc2ssICAgICAgICAgMiksCisgICAgU0lNRChPUE1BU0sr QlcvZCwgYXZ4NTEyYndfb3BtYXNrLCAgICAgICAgIDQpLAorICAgIFNJTUQoT1BNQVNLK0JXL3Es IGF2eDUxMmJ3X29wbWFzaywgICAgICAgICA4KSwKICAgICBTSU1EKEFWWDUxMkYgZjMyIHNjYWxh ciwgIGF2eDUxMmYsICAgICAgICBmNCksCiAgICAgU0lNRChBVlg1MTJGIGYzMngxNiwgICAgICBh dng1MTJmLCAgICAgIDY0ZjQpLAogICAgIFNJTUQoQVZYNTEyRiBmNjQgc2NhbGFyLCAgYXZ4NTEy ZiwgICAgICAgIGY4KSwKQEAgLTMwMiw2ICszMDksMjQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7 CiAgICAgQVZYNTEyVkwoQlcrVkwgdTE2eDgsICAgIGF2eDUxMmJ3LCAgICAgIDE2dTIpLAogICAg IEFWWDUxMlZMKEJXK1ZMIHMxNngxNiwgICBhdng1MTJidywgICAgICAzMmkyKSwKICAgICBBVlg1 MTJWTChCVytWTCB1MTZ4MTYsICAgYXZ4NTEyYncsICAgICAgMzJ1MiksCisgICAgU0lNRChBVlg1 MTJEUSBmMzJ4MTYsICAgIGF2eDUxMmRxLCAgICAgIDY0ZjQpLAorICAgIFNJTUQoQVZYNTEyRFEg ZjY0eDgsICAgICBhdng1MTJkcSwgICAgICA2NGY4KSwKKyAgICBTSU1EKEFWWDUxMkRRIHMzMngx NiwgICAgYXZ4NTEyZHEsICAgICAgNjRpNCksCisgICAgU0lNRChBVlg1MTJEUSB1MzJ4MTYsICAg IGF2eDUxMmRxLCAgICAgIDY0dTQpLAorICAgIFNJTUQoQVZYNTEyRFEgczY0eDgsICAgICBhdng1 MTJkcSwgICAgICA2NGk4KSwKKyAgICBTSU1EKEFWWDUxMkRRIHU2NHg4LCAgICAgYXZ4NTEyZHEs ICAgICAgNjR1OCksCisgICAgQVZYNTEyVkwoRFErVkwgZjMyeDQsICAgIGF2eDUxMmRxLCAgICAg IDE2ZjQpLAorICAgIEFWWDUxMlZMKERRK1ZMIGY2NHgyLCAgICBhdng1MTJkcSwgICAgICAxNmY4 KSwKKyAgICBBVlg1MTJWTChEUStWTCBmMzJ4OCwgICAgYXZ4NTEyZHEsICAgICAgMzJmNCksCisg ICAgQVZYNTEyVkwoRFErVkwgZjY0eDQsICAgIGF2eDUxMmRxLCAgICAgIDMyZjgpLAorICAgIEFW WDUxMlZMKERRK1ZMIHMzMng0LCAgICBhdng1MTJkcSwgICAgICAxNmk0KSwKKyAgICBBVlg1MTJW TChEUStWTCB1MzJ4NCwgICAgYXZ4NTEyZHEsICAgICAgMTZ1NCksCisgICAgQVZYNTEyVkwoRFEr VkwgczMyeDgsICAgIGF2eDUxMmRxLCAgICAgIDMyaTQpLAorICAgIEFWWDUxMlZMKERRK1ZMIHUz Mng4LCAgICBhdng1MTJkcSwgICAgICAzMnU0KSwKKyAgICBBVlg1MTJWTChEUStWTCBzNjR4Miwg ICAgYXZ4NTEyZHEsICAgICAgMTZpOCksCisgICAgQVZYNTEyVkwoRFErVkwgdTY0eDIsICAgIGF2 eDUxMmRxLCAgICAgIDE2dTgpLAorICAgIEFWWDUxMlZMKERRK1ZMIHM2NHg0LCAgICBhdng1MTJk cSwgICAgICAzMmk4KSwKKyAgICBBVlg1MTJWTChEUStWTCB1NjR4NCwgICAgYXZ4NTEyZHEsICAg ICAgMzJ1OCksCiAjdW5kZWYgQVZYNTEyVkxfCiAjdW5kZWYgQVZYNTEyVkwKICN1bmRlZiBTSU1E XwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==