From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v4 44/44] x86emul: support AVX512{F, DQ} FP-to-uint conversion insns Date: Tue, 25 Sep 2018 07:55:51 -0600 Message-ID: <5BAA3E6702000078001EBBB8@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5BAA34B502000078001EB9B6@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 1g4non-0002ae-8z for xen-devel@lists.xenproject.org; Tue, 25 Sep 2018 13:56:01 +0000 In-Reply-To: <5BAA34B502000078001EB9B6@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 List-Id: xen-devel@lists.xenproject.org QWxvbmcgdGhlIGxpbmVzIG9mIHByaW9yIHBhdGNoZXMsIFZDVlR7LFR9UFMyVVFRIGFzIHdlbGwg YXMKVkNWVHssVH1Te1MsRH0yVVNJIG5lZWQgIm1hbnVhbCIgb3ZlcnJpZGVzIG9mIGRpc3A4c2Nh bGUuCgpUaGUgdHdvYnl0ZV90YWJsZVtdIGVudHJpZXMgZ2V0IGFsdGVyZWQsIHdpdGggdGhlaXIg cHJpb3IgdmFsdWVzCm5vdyBwdXQgaW4gcGxhY2UgaW4geDg2X2RlY29kZV90d29ieXRlKCkuCgpT aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NDogTmV3 LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL2V2ZXgtZGlzcDguYworKysgYi90b29s cy90ZXN0cy94ODZfZW11bGF0b3IvZXZleC1kaXNwOC5jCkBAIC0xMDEsMjEgKzEwMSwyOSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9hbGxbXSA9CiAgICAgSU5TTihjdnRkcTJw ZCwgICAgIGYzLCAgIDBmLCBlNiwgICAgdmxfMiwgICAgZCwgdmwpLAogICAgIElOU04oY3Z0ZHEy cHMsICAgICAgICwgICAwZiwgNWIsICAgIHZsLCAgICAgIGQsIHZsKSwKICAgICBJTlNOKGN2dHBk MmRxLCAgICAgZjIsICAgMGYsIGU2LCAgICB2bCwgICAgICBxLCB2bCksCisgICAgSU5TTihjdnRw ZDJ1ZHEsICAgICAgLCAgIDBmLCA3OSwgICAgdmwsICAgICAgcSwgdmwpLAogICAgIElOU04oY3Z0 cGQycHMsICAgICA2NiwgICAwZiwgNWEsICAgIHZsLCAgICAgIHEsIHZsKSwKICAgICBJTlNOKGN2 dHBoMnBzLCAgICAgNjYsIDBmMzgsIDEzLCAgICB2bF8yLCBkX25iLCB2bCksCiAgICAgSU5TTihj dnRwczJkcSwgICAgIDY2LCAgIDBmLCA1YiwgICAgdmwsICAgICAgZCwgdmwpLAogICAgIElOU04o Y3Z0cHMycGQsICAgICAgICwgICAwZiwgNWEsICAgIHZsXzIsICAgIGQsIHZsKSwKICAgICBJTlNO KGN2dHBzMnBoLCAgICAgNjYsIDBmM2EsIDFkLCAgICB2bF8yLCBkX25iLCB2bCksCisgICAgSU5T TihjdnRwczJ1ZHEsICAgICAgLCAgIDBmLCA3OSwgICAgdmwsICAgICAgZCwgdmwpLAogICAgIElO U04oY3Z0c2Qyc2ksICAgICBmMiwgICAwZiwgMmQsICAgIGVsLCAgICAgIHEsIGVsKSwKKyAgICBJ TlNOKGN2dHNkMnVzaSwgICAgZjIsICAgMGYsIDc5LCAgICBlbCwgICAgICBxLCBlbCksCiAgICAg SU5TTihjdnRzZDJzcywgICAgIGYyLCAgIDBmLCA1YSwgICAgZWwsICAgICAgcSwgZWwpLAogICAg IElOU04oY3Z0c2kyc2QsICAgICBmMiwgICAwZiwgMmEsICAgIGVsLCAgIGRxNjQsIGVsKSwKICAg ICBJTlNOKGN2dHNpMnNzLCAgICAgZjMsICAgMGYsIDJhLCAgICBlbCwgICBkcTY0LCBlbCksCiAg ICAgSU5TTihjdnRzczJzZCwgICAgIGYzLCAgIDBmLCA1YSwgICAgZWwsICAgICAgZCwgZWwpLAog ICAgIElOU04oY3Z0c3Myc2ksICAgICBmMywgICAwZiwgMmQsICAgIGVsLCAgICAgIGQsIGVsKSwK KyAgICBJTlNOKGN2dHNzMnVzaSwgICAgZjMsICAgMGYsIDc5LCAgICBlbCwgICAgICBkLCBlbCks CiAgICAgSU5TTihjdnR0cGQyZHEsICAgIDY2LCAgIDBmLCBlNiwgICAgdmwsICAgICAgcSwgdmwp LAorICAgIElOU04oY3Z0dHBkMnVkcSwgICAgICwgICAwZiwgNzgsICAgIHZsLCAgICAgIHEsIHZs KSwKICAgICBJTlNOKGN2dHRwczJkcSwgICAgZjMsICAgMGYsIDViLCAgICB2bCwgICAgICBkLCB2 bCksCisgICAgSU5TTihjdnR0cHMydWRxLCAgICAgLCAgIDBmLCA3OCwgICAgdmwsICAgICAgZCwg dmwpLAogICAgIElOU04oY3Z0dHNkMnNpLCAgICBmMiwgICAwZiwgMmMsICAgIGVsLCAgICAgIHEs IGVsKSwKKyAgICBJTlNOKGN2dHRzZDJ1c2ksICAgZjIsICAgMGYsIDc4LCAgICBlbCwgICAgICBx LCBlbCksCiAgICAgSU5TTihjdnR0c3Myc2ksICAgIGYzLCAgIDBmLCAyYywgICAgZWwsICAgICAg ZCwgZWwpLAorICAgIElOU04oY3Z0dHNzMnVzaSwgICBmMywgICAwZiwgNzgsICAgIGVsLCAgICAg IGQsIGVsKSwKICAgICBJTlNOKGN2dHVkcTJwZCwgICAgZjMsICAgMGYsIDdhLCAgICB2bF8yLCAg ICBkLCB2bCksCiAgICAgSU5TTihjdnR1ZHEycHMsICAgIGYyLCAgIDBmLCA3YSwgICAgdmwsICAg ICAgZCwgdmwpLAogICAgIElOU04oY3Z0dXNpMnNkLCAgICBmMiwgICAwZiwgN2IsICAgIGVsLCAg IGRxNjQsIGVsKSwKQEAgLTQwNSwxMSArNDEzLDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVz dCBhdng1MTJkcV9hbGxbXQogICAgIElOU05fUEZQKGFuZG4sICAgICAgICAgICAgIDBmLCA1NSks CiAgICAgSU5TTihicm9hZGNhc3RpMzJ4MiwgNjYsIDBmMzgsIDU5LCBlbF8yLCAgZCwgdmwpLAog ICAgIElOU04oY3Z0cGQycXEsICAgICAgIDY2LCAgIDBmLCA3YiwgICB2bCwgIHEsIHZsKSwKKyAg ICBJTlNOKGN2dHBkMnVxcSwgICAgICA2NiwgICAwZiwgNzksICAgdmwsICBxLCB2bCksCiAgICAg SU5TTihjdnRwczJxcSwgICAgICAgNjYsICAgMGYsIDdiLCB2bF8yLCAgZCwgdmwpLAorICAgIElO U04oY3Z0cHMydXFxLCAgICAgIDY2LCAgIDBmLCA3OSwgdmxfMiwgIGQsIHZsKSwKICAgICBJTlNO KGN2dHFxMnBkLCAgICAgICBmMywgICAwZiwgZTYsICAgdmwsICBxLCB2bCksCiAgICAgSU5TTihj dnRxcTJwcywgICAgICAgICAsICAgMGYsIDViLCAgIHZsLCAgcSwgdmwpLAogICAgIElOU04oY3Z0 dHBkMnFxLCAgICAgIDY2LCAgIDBmLCA3YSwgICB2bCwgIHEsIHZsKSwKKyAgICBJTlNOKGN2dHRw ZDJ1cXEsICAgICA2NiwgICAwZiwgNzgsICAgdmwsICBxLCB2bCksCiAgICAgSU5TTihjdnR0cHMy cXEsICAgICAgNjYsICAgMGYsIDdhLCB2bF8yLCAgZCwgdmwpLAorICAgIElOU04oY3Z0dHBzMnVx cSwgICAgIDY2LCAgIDBmLCA3OCwgdmxfMiwgIGQsIHZsKSwKICAgICBJTlNOKGN2dHVxcTJwZCwg ICAgICBmMywgICAwZiwgN2EsICAgdmwsICBxLCB2bCksCiAgICAgSU5TTihjdnR1cXEycHMsICAg ICAgZjIsICAgMGYsIDdhLCAgIHZsLCAgcSwgdmwpLAogICAgIElOU05fUEZQKG9yLCAgICAgICAg ICAgICAgIDBmLCA1NiksCi0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9zaW1kLmMKKysr IGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQuYwpAQCAtOTMsMzEgKzkzLDY1IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCBfdG9fYm9vbChieXRlX3ZlY190IGIKICMgaWZkZWYgX194ODZfNjRf XwogIyAgZGVmaW5lIHRvX3dpbnQoeCkgKHsgbG9uZyBsXyA9ICh4KVswXTsgdG91Y2gobF8pOyAo KHZlY190KXsgbF8gfSk7IH0pCiAjIGVuZGlmCisjIGlmZGVmIF9fQVZYNTEyRl9fCisvKgorICog U2FkbHkgZXZlbiBnY2MgOS54LCBhdCB0aGUgdGltZSBvZiB3cml0aW5nLCBkb2VzIG5vdCBjYXJy eSBvdXQgYXQgbGVhc3QKKyAqIHVpbnQgLT4gRlAgY29udmVyc2lvbnMgdXNpbmcgVkNWVFVTSTJT e1MsRH0sIHNvIHdlIG5lZWQgdG8gdXNlIGJ1aWx0aW5zCisgKiBvciBpbmxpbmUgYXNzZW1ibHkg aGVyZS4gVGhlIGZ1bGwtdmVjdG9yIHBhcmFtZXRlciB0eXBlcyBvZiB0aGUgYnVpbHRpbnMKKyAq IGFyZW4ndCB2ZXJ5IGhlbHBmdWwgZm9yIG91ciBwdXJwb3Nlcywgc28gdXNlIGlubGluZSBhc3Nl bWJseS4KKyAqLworIyAgaWYgRkxPQVRfU0laRSA9PSA0CisjICAgZGVmaW5lIHRvX3VfaW50KHR5 cGUsIHgpICh7IFwKKyAgICB1bnNpZ25lZCB0eXBlIHVfOyBcCisgICAgZmxvYXQgX19hdHRyaWJ1 dGVfXygodmVjdG9yX3NpemUoMTYpKSkgdF87IFwKKyAgICBhc20gKCAidmN2dHNzMnVzaSAlMSwg JTAiIDogIj1yIiAodV8pIDogIm0iICgoeClbMF0pICk7IFwKKyAgICBhc20gKCAidmN2dHVzaTJz cyV6MSAlMSwgJTAsICUwIiA6ICI9diIgKHRfKSA6ICJtIiAodV8pICk7IFwKKyAgICAodmVjX3Qp eyB0X1swXSB9OyBcCit9KQorIyAgZWxpZiBGTE9BVF9TSVpFID09IDgKKyMgICBkZWZpbmUgdG9f dV9pbnQodHlwZSwgeCkgKHsgXAorICAgIHVuc2lnbmVkIHR5cGUgdV87IFwKKyAgICBkb3VibGUg X19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpKSkgdF87IFwKKyAgICBhc20gKCAidmN2dHNk MnVzaSAlMSwgJTAiIDogIj1yIiAodV8pIDogIm0iICgoeClbMF0pICk7IFwKKyAgICBhc20gKCAi dmN2dHVzaTJzZCV6MSAlMSwgJTAsICUwIiA6ICI9diIgKHRfKSA6ICJtIiAodV8pICk7IFwKKyAg ICAodmVjX3QpeyB0X1swXSB9OyBcCit9KQorIyAgZW5kaWYKKyMgIGRlZmluZSB0b191aW50KHgp IHRvX3VfaW50KGludCwgeCkKKyMgIGlmZGVmIF9feDg2XzY0X18KKyMgICBkZWZpbmUgdG9fdXdp bnQoeCkgdG9fdV9pbnQobG9uZywgeCkKKyMgIGVuZGlmCisjIGVuZGlmCiAjZWxpZiBWRUNfU0la RSA9PSA4ICYmIEZMT0FUX1NJWkUgPT0gNCAmJiBkZWZpbmVkKF9fM2ROT1dfXykKICMgZGVmaW5l IHRvX2ludCh4KSBfX2J1aWx0aW5faWEzMl9waTJmZChfX2J1aWx0aW5faWEzMl9wZjJpZCh4KSkK ICNlbGlmIGRlZmluZWQoRkxPQVRfU0laRSkgJiYgVkVDX1NJWkUgPiBGTE9BVF9TSVpFICYmIGRl ZmluZWQoX19BVlg1MTJGX18pICYmIFwKICAgICAgIChWRUNfU0laRSA9PSA2NCB8fCBkZWZpbmVk KF9fQVZYNTEyVkxfXykpCiAjIGlmIEZMT0FUX1NJWkUgPT0gNAogIyAgZGVmaW5lIHRvX2ludCh4 KSBCUihjdnRkcTJwcywgX21hc2ssIEJSKGN2dHBzMmRxLCBfbWFzaywgeCwgKHZzaV90KXVuZGVm KCksIH4wKSwgdW5kZWYoKSwgfjApCisjICBkZWZpbmUgdG9fdWludCh4KSBCUihjdnR1ZHEycHMs IF9tYXNrLCBCUihjdnRwczJ1ZHEsIF9tYXNrLCB4LCAodnNpX3QpdW5kZWYoKSwgfjApLCB1bmRl ZigpLCB+MCkKICMgIGlmZGVmIF9fQVZYNTEyRFFfXwotIyAgIGRlZmluZSB0b193aW50KHgpICh7 IFwKKyMgICBkZWZpbmUgdG9fd19pbnQoeCwgcykgKHsgXAogICAgIHZzZl9oYWxmX3QgdF8gPSBs b3dfaGFsZih4KTsgXAogICAgIHZkaV90IGxvXywgaGlfOyBcCiAgICAgdG91Y2godF8pOyBcCi0g ICAgbG9fID0gQlIoY3Z0cHMycXEsIF9tYXNrLCB0XywgKHZkaV90KXVuZGVmKCksIH4wKTsgXAor ICAgIGxvXyA9IEJSKGN2dHBzMiAjIyBzICMjIHFxLCBfbWFzaywgdF8sICh2ZGlfdCl1bmRlZigp LCB+MCk7IFwKICAgICB0XyA9IGhpZ2hfaGFsZih4KTsgXAogICAgIHRvdWNoKHRfKTsgXAotICAg IGhpXyA9IEJSKGN2dHBzMnFxLCBfbWFzaywgdF8sICh2ZGlfdCl1bmRlZigpLCB+MCk7IFwKKyAg ICBoaV8gPSBCUihjdnRwczIgIyMgcyAjIyBxcSwgX21hc2ssIHRfLCAodmRpX3QpdW5kZWYoKSwg fjApOyBcCiAgICAgdG91Y2gobG9fKTsgdG91Y2goaGlfKTsgXAogICAgIGluc2VydF9oYWxmKGlu c2VydF9oYWxmKHVuZGVmKCksIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBCUihjdnRx cTJwcywgX21hc2ssIGxvXywgKHZzZl9oYWxmX3Qpe30sIH4wKSwgMCksIFwKLSAgICAgICAgICAg ICAgICBCUihjdnRxcTJwcywgX21hc2ssIGhpXywgKHZzZl9oYWxmX3Qpe30sIH4wKSwgMSk7IFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCUihjdnQgIyMgcyAjIyBxcTJwcywgX21hc2ss IGxvXywgKHZzZl9oYWxmX3Qpe30sIH4wKSwgMCksIFwKKyAgICAgICAgICAgICAgICBCUihjdnQg IyMgcyAjIyBxcTJwcywgX21hc2ssIGhpXywgKHZzZl9oYWxmX3Qpe30sIH4wKSwgMSk7IFwKIH0p CisjICAgZGVmaW5lIHRvX3dpbnQoeCkgdG9fd19pbnQoeCwgKQorIyAgIGRlZmluZSB0b191d2lu dCh4KSB0b193X2ludCh4LCB1KQogIyAgZW5kaWYKICMgZWxpZiBGTE9BVF9TSVpFID09IDgKICMg IGRlZmluZSB0b19pbnQoeCkgQihjdnRkcTJwZCwgX21hc2ssIEJSKGN2dHBkMmRxLCBfbWFzaywg eCwgKHZzaV9oYWxmX3Qpe30sIH4wKSwgdW5kZWYoKSwgfjApCisjICBkZWZpbmUgdG9fdWludCh4 KSBCKGN2dHVkcTJwZCwgX21hc2ssIEJSKGN2dHBkMnVkcSwgX21hc2ssIHgsICh2c2lfaGFsZl90 KXt9LCB+MCksIHVuZGVmKCksIH4wKQogIyAgaWZkZWYgX19BVlg1MTJEUV9fCiAjICAgZGVmaW5l IHRvX3dpbnQoeCkgQlIoY3Z0cXEycGQsIF9tYXNrLCBCUihjdnRwZDJxcSwgX21hc2ssIHgsICh2 ZGlfdCl1bmRlZigpLCB+MCksIHVuZGVmKCksIH4wKQorIyAgIGRlZmluZSB0b191d2ludCh4KSBC UihjdnR1cXEycGQsIF9tYXNrLCBCUihjdnRwZDJ1cXEsIF9tYXNrLCB4LCAodmRpX3QpdW5kZWYo KSwgfjApLCB1bmRlZigpLCB+MCkKICMgIGVuZGlmCiAjIGVuZGlmCiAjZWxpZiBWRUNfU0laRSA9 PSAxNiAmJiBkZWZpbmVkKF9fU1NFMl9fKQpAQCAtMTIwOCw2ICsxMjQyLDIwIEBAIGludCBzaW1k X3Rlc3Qodm9pZCkKICAgICB0b3VjaChzcmMpOwogICAgIGlmICggIWVxKHgsIHNyYykgKSByZXR1 cm4gX19MSU5FX187CiAjIGVuZGlmCisKKyMgaWZkZWYgdG9fdWludAorICAgIHRvdWNoKHNyYyk7 CisgICAgeCA9IHRvX3VpbnQoc3JjKTsKKyAgICB0b3VjaChzcmMpOworICAgIGlmICggIWVxKHgs IHNyYykgKSByZXR1cm4gX19MSU5FX187CisjIGVuZGlmCisKKyMgaWZkZWYgdG9fdXdpbnQKKyAg ICB0b3VjaChzcmMpOworICAgIHggPSB0b191d2ludChzcmMpOworICAgIHRvdWNoKHNyYyk7Cisg ICAgaWYgKCAhZXEoeCwgc3JjKSApIHJldHVybiBfX0xJTkVfXzsKKyMgZW5kaWYKIAogIyBpZmRl ZiBzcXJ0CiAgICAgeCA9IHNyYyAqIHNyYzsKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRl L3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRl LmMKQEAgLTMyMyw4ICszMjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHR3b2J5dGVfdGFibGUg ewogICAgIFsweDcxIC4uLiAweDczXSA9IHsgRHN0SW1wbGljaXR8U3JjSW1tQnl0ZXxNb2RSTSwg c2ltZF9ub25lLCBkOHNfdmwgfSwKICAgICBbMHg3NCAuLi4gMHg3Nl0gPSB7IERzdEltcGxpY2l0 fFNyY01lbXxNb2RSTSwgc2ltZF9wYWNrZWRfaW50LCBkOHNfdmwgfSwKICAgICBbMHg3N10gPSB7 IERzdEltcGxpY2l0fFNyY05vbmUgfSwKLSAgICBbMHg3OF0gPSB7IEltcGxpY2l0T3BzfE1vZFJN IH0sCi0gICAgWzB4NzldID0geyBEc3RSZWd8U3JjTWVtfE1vZFJNLCBzaW1kX3BhY2tlZF9pbnQg fSwKKyAgICBbMHg3OCAuLi4gMHg3OV0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTXxNb3Ys IHNpbWRfb3RoZXIsIGQ4c192bCB9LAogICAgIFsweDdhXSA9IHsgRHN0SW1wbGljaXR8U3JjTWVt fE1vZFJNfE1vdiwgc2ltZF9wYWNrZWRfZnAsIGQ4c192bCB9LAogICAgIFsweDdiXSA9IHsgRHN0 SW1wbGljaXR8U3JjTWVtfE1vZFJNfE1vdiwgc2ltZF9vdGhlciwgZDhzX2RxNjQgfSwKICAgICBb MHg3YyAuLi4gMHg3ZF0gPSB7IERzdEltcGxpY2l0fFNyY01lbXxNb2RSTSwgc2ltZF9vdGhlciB9 LApAQCAtMjUwNyw2ICsyNTA2LDggQEAgeDg2X2RlY29kZV90d29ieXRlKAogICAgICAgICBicmVh azsKIAogICAgIGNhc2UgMHg3ODoKKyAgICAgICAgc3RhdGUtPmRlc2MgPSBJbXBsaWNpdE9wczsK KyAgICAgICAgc3RhdGUtPnNpbWRfc2l6ZSA9IHNpbWRfbm9uZTsKICAgICAgICAgc3dpdGNoICgg dmV4LnBmeCApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSB2ZXhfNjY6IC8qIGV4dHJxICRpbW04 LCAkaW1tOCwgeG1tICovCkBAIC0yNTE5LDcgKzI1MjAsNyBAQCB4ODZfZGVjb2RlX3R3b2J5dGUo CiAgICAgY2FzZSAweDEwIC4uLiAweDE4OgogICAgIGNhc2UgMHgyOCAuLi4gMHgyZjoKICAgICBj YXNlIDB4NTAgLi4uIDB4Nzc6Ci0gICAgY2FzZSAweDc5IC4uLiAweDdkOgorICAgIGNhc2UgMHg3 YSAuLi4gMHg3ZDoKICAgICBjYXNlIDB4N2Y6CiAgICAgY2FzZSAweGMyIC4uLiAweGMzOgogICAg IGNhc2UgMHhjNSAuLi4gMHhjNjoKQEAgLTI1NDEsNiArMjU0MiwxMiBAQCB4ODZfZGVjb2RlX3R3 b2J5dGUoCiAgICAgICAgIG9wX2J5dGVzID0gbW9kZV82NGJpdCgpID8gOCA6IDQ7CiAgICAgICAg IGJyZWFrOwogCisgICAgY2FzZSAweDc5OgorICAgICAgICBzdGF0ZS0+ZGVzYyA9IERzdFJlZyB8 IFNyY01lbTsKKyAgICAgICAgc3RhdGUtPnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludDsKKyAg ICAgICAgY3R4dC0+b3Bjb2RlIHw9IE1BU0tfSU5TUih2ZXgucGZ4LCBYODZFTVVMX09QQ19QRlhf TUFTSyk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSAweDdlOgogICAgICAgICBjdHh0LT5v cGNvZGUgfD0gTUFTS19JTlNSKHZleC5wZngsIFg4NkVNVUxfT1BDX1BGWF9NQVNLKTsKICAgICAg ICAgaWYgKCB2ZXgucGZ4ID09IHZleF9mMyApIC8qIG1vdnEgeG1tL202NCx4bW0gKi8KQEAgLTMw NjIsNiArMzA2OSwxOCBAQCB4ODZfZGVjb2RlKAogICAgICAgICAgICAgICAgIG1vZHJtX21vZCA9 IDM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgICAgIGNhc2UgMHg3ODoKKyAg ICAgICAgICAgIGNhc2UgMHg3OToKKyAgICAgICAgICAgICAgICBpZiAoICFldmV4LnBmeCApCisg ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIC8qIHZjdnR7LHR9cHMy dXFxIG5lZWQgc3BlY2lhbCBjYXNpbmcgKi8KKyAgICAgICAgICAgICAgICBpZiAoIGV2ZXgucGZ4 ID09IHZleF82NiApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpZiAo ICFldmV4LncgJiYgIWV2ZXguYnIgKQorICAgICAgICAgICAgICAgICAgICAgICAgLS1kaXNwOHNj YWxlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgLyogdmN2dHssdH1ze3MsZH0ydXNpIG5lZWQgc3BlY2lhbCBjYXNpbmc6IGZh bGwgdGhyb3VnaCAqLwogICAgICAgICAgICAgY2FzZSAweDJjOiAvKiB2Y3Z0dHN7cyxkfTJzaSBu ZWVkIHNwZWNpYWwgY2FzaW5nICovCiAgICAgICAgICAgICBjYXNlIDB4MmQ6IC8qIHZjdnRze3Ms ZH0yc2kgbmVlZCBzcGVjaWFsIGNhc2luZyAqLwogICAgICAgICAgICAgICAgIGlmICggZXZleF9l bmNvZGVkKCkgKQpAQCAtNjI3NCw2ICs2MjkzLDggQEAgeDg2X2VtdWxhdGUoCiAKICAgICBDQVNF X1NJTURfU0NBTEFSX0ZQKF9FVkVYLCAweDBmLCAweDJjKTogLyogdmN2dHRze3MsZH0yc2kgeG1t L21lbSxyZWcgKi8KICAgICBDQVNFX1NJTURfU0NBTEFSX0ZQKF9FVkVYLCAweDBmLCAweDJkKTog LyogdmN2dHN7cyxkfTJzaSB4bW0vbWVtLHJlZyAqLworICAgIENBU0VfU0lNRF9TQ0FMQVJfRlAo X0VWRVgsIDB4MGYsIDB4NzgpOiAvKiB2Y3Z0dHN7cyxkfTJ1c2kgeG1tL21lbSxyZWcgKi8KKyAg ICBDQVNFX1NJTURfU0NBTEFSX0ZQKF9FVkVYLCAweDBmLCAweDc5KTogLyogdmN2dHN7cyxkfTJ1 c2kgeG1tL21lbSxyZWcgKi8KICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKChldmV4LnJl ZyAhPSAweGYgfHwgIWV2ZXguUlggfHwgZXZleC5vcG1zayB8fAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChlYS50eXBlICE9IE9QX1JFRyAmJiBldmV4LmJyKSksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFWENfVUQpOwpAQCAtNjYzMyw3ICs2NjU0LDExIEBAIHg4Nl9l bXVsYXRlKAogICAgICAgICBpZiAoIGV2ZXgudyApCiAgICAgICAgICAgICBob3N0X2FuZF92Y3B1 X211c3RfaGF2ZShhdng1MTJkcSk7CiAgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgIGNhc2Ug WDg2RU1VTF9PUENfRVZFWCgweDBmLCAweDc4KTogICAgLyogdmN2dHRwe3MsZH0ydWRxIFt4eXpd bW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX0VWRVgoMHgwZiwgMHg3 OSk6ICAgIC8qIHZjdnRwe3MsZH0ydWRxIFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KICAgICAg ICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmYpOworICAgICAgICB9CiAgICAg ICAgIGlmICggZWEudHlwZSA9PSBPUF9NRU0gfHwgIWV2ZXguYnIgKQogICAgICAgICAgICAgYXZ4 NTEyX3ZsZW5fY2hlY2soZmFsc2UpOwogICAgICAgICBkIHw9IFR3b09wOwpAQCAtNzMxMSw2ICs3 MzM2LDEwIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hh dmUoYXZ4NTEyZik7CiAgICAgICAgIGVsc2UgaWYgKCBldmV4LncgKQogICAgICAgICB7CisgICAg Y2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4NzgpOiAgIC8qIHZjdnR0cHMydXFxIHt4 LHl9bW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogdmN2dHRwZDJ1cXEgW3h5el1tbS9tZW0sW3h5el1tbXtrfSAqLworICAg IGNhc2UgWDg2RU1VTF9PUENfRVZFWF82NigweDBmLCAweDc5KTogICAvKiB2Y3Z0cHMydXFxIHt4 LHl9bW0vbWVtLFt4eXpdbW17a30gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogdmN2dHBkMnVxcSBbeHl6XW1tL21lbSxbeHl6XW1te2t9ICovCiAgICAg Y2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYsIDB4N2EpOiAgIC8qIHZjdnR0cHMycXEge3gs eX1tbS9tZW0sW3h5el1tbXtrfSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiB2Y3Z0dHBkMnFxIFt4eXpdbW0vbWVtLFt4eXpdbW17a30gKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZiwgMHg3Yik6ICAgLyogdmN2dHBzMnFxIHt4LHl9 bW0vbWVtLFt4eXpdbW17a30gKi8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=