From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 03/49] x86emul: support AVX512{F, BW, DQ} extract insns Date: Wed, 19 Dec 2018 07:36:49 -0700 Message-ID: <5C1A578102000078002078A4@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 1gZcxy-0001nI-Jt for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 14:36:54 +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 U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0Kdjc6IFJl LWJhc2UuCnY0OiBNYWtlIHVzZSBvZiBkOHNfZHE2NC4KdjM6IE5ldy4KCi0tLSBhL3Rvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxh dG9yL2V2ZXgtZGlzcDguYwpAQCAtMjEyLDYgKzIxMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dGVzdCBhdng1MTJmX2FsbFtdID0KIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1 MTJmXzEyOFtdID0geworICAgIElOU04oZXh0cmFjdHBzLCA2NiwgMGYzYSwgMTcsIGVsLCAgICBk LCBlbCksCiAgICAgSU5TTihtb3YsICAgICAgIDY2LCAgIDBmLCA2ZSwgZWwsIGRxNjQsIGVsKSwK ICAgICBJTlNOKG1vdiwgICAgICAgNjYsICAgMGYsIDdlLCBlbCwgZHE2NCwgZWwpLAogICAgIElO U04obW92cSwgICAgICBmMywgICAwZiwgN2UsIGVsLCAgICBxLCBlbCksCkBAIC0yMjEsMTAgKzIy MiwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl8xMjhbXSA9CiBzdGF0aWMg Y29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZl9ubzEyOFtdID0gewogICAgIElOU04oYnJvYWRjYXN0 ZjMyeDQsIDY2LCAwZjM4LCAxYSwgZWxfNCwgIGQsIHZsKSwKICAgICBJTlNOKGJyb2FkY2FzdHNk LCAgICA2NiwgMGYzOCwgMTksIGVsLCAgICBxLCBlbCksCisgICAgSU5TTihleHRyYWN0ZjMyeDQs ICAgNjYsIDBmM2EsIDE5LCBlbF80LCAgZCwgdmwpLAorICAgIElOU04oZXh0cmFjdGkzMng0LCAg IDY2LCAwZjNhLCAzOSwgZWxfNCwgIGQsIHZsKSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dGVzdCBhdng1MTJmXzUxMltdID0gewogICAgIElOU04oYnJvYWRjYXN0ZjY0eDQsIDY2LCAwZjM4 LCAxYiwgZWxfNCwgcSwgdmwpLAorICAgIElOU04oZXh0cmFjdGY2NHg0LCAgIDY2LCAwZjNhLCAx YiwgZWxfNCwgcSwgdmwpLAorICAgIElOU04oZXh0cmFjdGk2NHg0LCAgIDY2LCAwZjNhLCAzYiwg ZWxfNCwgcSwgdmwpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmJ3X2Fs bFtdID0gewpAQCAtMjgwLDYgKzI4NSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4 NTEyYndfYWxsW10KICAgICBJTlNOKHB0ZXN0bm0sICAgICBmMywgMGYzOCwgMjYsICAgIHZsLCAg IGJ3LCB2bCksCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyYndfMTI4W10g PSB7CisgICAgSU5TTihwZXh0cmIsIDY2LCAwZjNhLCAxNCwgZWwsIGIsIGVsKSwKKy8vICAgICAg IHBleHRydywgNjYsICAgMGYsIGM1LCAgICAgdworICAgIElOU04ocGV4dHJ3LCA2NiwgMGYzYSwg MTUsIGVsLCB3LCBlbCksCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFf YWxsW10gPSB7CiAgICAgSU5TTl9QRlAoYW5kLCAgICAgICAgICAgICAgMGYsIDU0KSwKICAgICBJ TlNOX1BGUChhbmRuLCAgICAgICAgICAgICAwZiwgNTUpLApAQCAtMjg4LDEzICsyOTksMjEgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCB0ZXN0IGF2eDUxMmRxX2FsbFtdCiAgICAgSU5TTl9QRlAoeG9y LCAgICAgICAgICAgICAgMGYsIDU3KSwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBh dng1MTJkcV8xMjhbXSA9IHsKKyAgICBJTlNOKHBleHRyLCA2NiwgMGYzYSwgMTYsIGVsLCBkcTY0 LCBlbCksCit9OworCiBzdGF0aWMgY29uc3Qgc3RydWN0IHRlc3QgYXZ4NTEyZHFfbm8xMjhbXSA9 IHsKICAgICBJTlNOKGJyb2FkY2FzdGYzMngyLCA2NiwgMGYzOCwgMTksIGVsXzIsIGQsIHZsKSwK ICAgICBJTlNOKGJyb2FkY2FzdGY2NHgyLCA2NiwgMGYzOCwgMWEsIGVsXzIsIHEsIHZsKSwKKyAg ICBJTlNOKGV4dHJhY3RmNjR4MiwgICA2NiwgMGYzYSwgMTksIGVsXzIsIHEsIHZsKSwKKyAgICBJ TlNOKGV4dHJhY3RpNjR4MiwgICA2NiwgMGYzYSwgMzksIGVsXzIsIHEsIHZsKSwKIH07CiAKIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBhdng1MTJkcV81MTJbXSA9IHsKICAgICBJTlNOKGJyb2Fk Y2FzdGYzMng4LCA2NiwgMGYzOCwgMWIsIGVsXzgsIGQsIHZsKSwKKyAgICBJTlNOKGV4dHJhY3Rm MzJ4OCwgICA2NiwgMGYzYSwgMWIsIGVsXzgsIGQsIHZsKSwKKyAgICBJTlNOKGV4dHJhY3RpMzJ4 OCwgICA2NiwgMGYzYSwgM2IsIGVsXzgsIGQsIHZsKSwKIH07CiAKIHN0YXRpYyBjb25zdCB1bnNp Z25lZCBjaGFyIHZsX2FsbFtdID0geyBWTF81MTIsIFZMXzEyOCwgVkxfMjU2IH07CkBAIC02MzIs NyArNjUxLDkgQEAgdm9pZCBldmV4X2Rpc3A4X3Rlc3Qodm9pZCAqaW5zdHIsIHN0cnVjdAogICAg IFJVTihhdng1MTJmLCBubzEyOCk7CiAgICAgUlVOKGF2eDUxMmYsIDUxMik7CiAgICAgUlVOKGF2 eDUxMmJ3LCBhbGwpOworICAgIFJVTihhdng1MTJidywgMTI4KTsKICAgICBSVU4oYXZ4NTEyZHEs IGFsbCk7CisgICAgUlVOKGF2eDUxMmRxLCAxMjgpOwogICAgIFJVTihhdng1MTJkcSwgbm8xMjgp OwogICAgIFJVTihhdng1MTJkcSwgNTEyKTsKIH0KLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlL3g4Nl9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmMKQEAgLTUxMiw5ICs1MTIsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjNhX3Rh YmxlIHsKICAgICBbMHgwYSAuLi4gMHgwYl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl9v cGMgfSwKICAgICBbMHgwYyAuLi4gMHgwZF0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9m cCB9LAogICAgIFsweDBlIC4uLiAweDBmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2lu dCB9LAotICAgIFsweDE0IC4uLiAweDE3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfbm9uZSwgLnRv X21lbSA9IDEsIC50d29fb3AgPSAxIH0sCisgICAgWzB4MTRdID0geyAuc2ltZF9zaXplID0gc2lt ZF9ub25lLCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEsIC5kOHMgPSAwIH0sCisgICAgWzB4MTVd ID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAudG9fbWVtID0gMSwgLnR3b19vcCA9IDEsIC5k OHMgPSAxIH0sCisgICAgWzB4MTZdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lLCAudG9fbWVt ID0gMSwgLnR3b19vcCA9IDEsIC5kOHMgPSBkOHNfZHE2NCB9LAorICAgIFsweDE3XSA9IHsgLnNp bWRfc2l6ZSA9IHNpbWRfbm9uZSwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxLCAuZDhzID0gMiB9 LAogICAgIFsweDE4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4IH0sCi0gICAgWzB4MTldID0g eyAuc2ltZF9zaXplID0gc2ltZF8xMjgsIC50b19tZW0gPSAxLCAudHdvX29wID0gMSB9LAorICAg IFsweDE5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAudG9fbWVtID0gMSwgLnR3b19vcCA9 IDEsIC5kOHMgPSA0IH0sCisgICAgWzB4MWJdID0geyAuc2ltZF9zaXplID0gc2ltZF8yNTYsIC50 b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bF9ieV8yIH0sCiAgICAgWzB4MWRd ID0geyAuc2ltZF9zaXplID0gc2ltZF9vdGhlciwgLnRvX21lbSA9IDEsIC50d29fb3AgPSAxIH0s CiAgICAgWzB4MWUgLi4uIDB4MWZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAu ZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4MjBdID0geyAuc2ltZF9zaXplID0gc2ltZF9ub25lIH0s CkBAIC01MjMsNyArNTI3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHQwZjNhX3RhYmxlIHsK ICAgICBbMHgyNV0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5kOHMgPSBkOHNf dmwgfSwKICAgICBbMHgzMCAuLi4gMHgzM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX290aGVyLCAu dHdvX29wID0gMSB9LAogICAgIFsweDM4XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4IH0sCi0g ICAgWzB4MzldID0geyAuc2ltZF9zaXplID0gc2ltZF8xMjgsIC50b19tZW0gPSAxLCAudHdvX29w ID0gMSB9LAorICAgIFsweDM5XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfMTI4LCAudG9fbWVtID0g MSwgLnR3b19vcCA9IDEsIC5kOHMgPSA0IH0sCisgICAgWzB4M2JdID0geyAuc2ltZF9zaXplID0g c2ltZF8yNTYsIC50b19tZW0gPSAxLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4c192bF9ieV8yIH0s CiAgICAgWzB4M2UgLi4uIDB4M2ZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAu ZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4NDAgLi4uIDB4NDFdID0geyAuc2ltZF9zaXplID0gc2lt ZF9wYWNrZWRfZnAgfSwKICAgICBbMHg0Ml0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9p bnQgfSwKQEAgLTI2NzYsNiArMjY4MSw4IEBAIHg4Nl9kZWNvZGVfMGYzYSgKICAgICAgLi4uIFg4 NkVNVUxfT1BDXzY2KDAsIDB4MTcpOiAgICAgLyogcGV4dHIqLCBleHRyYWN0cHMgKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX1ZFWF82NigwLCAweDE0KQogICAgICAuLi4gWDg2RU1VTF9PUENfVkVY XzY2KDAsIDB4MTcpOiAvKiB2cGV4dHIqLCB2ZXh0cmFjdHBzICovCisgICAgY2FzZSBYODZFTVVM X09QQ19FVkVYXzY2KDAsIDB4MTQpCisgICAgIC4uLiBYODZFTVVMX09QQ19FVkVYXzY2KDAsIDB4 MTcpOiAvKiB2cGV4dHIqLCB2ZXh0cmFjdHBzICovCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhf RjIoMCwgMHhmMCk6IC8qIHJvcnggKi8KICAgICAgICAgYnJlYWs7CiAKQEAgLTg4NjYsOSArODg3 Myw5IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBvcGNbMF0gPSBiOwogICAgICAgICAvKiBDb252 ZXJ0IG1lbW9yeS9HUFIgb3BlcmFuZCB0byAoJXJBWCkuICovCiAgICAgICAgIHJleF9wcmVmaXgg Jj0gflJFWF9COwotICAgICAgICB2ZXguYiA9IDE7CisgICAgICAgIGV2ZXguYiA9IHZleC5iID0g MTsKICAgICAgICAgaWYgKCAhbW9kZV82NGJpdCgpICkKLSAgICAgICAgICAgIHZleC53ID0gMDsK KyAgICAgICAgICAgIGV2ZXgudyA9IHZleC53ID0gMDsKICAgICAgICAgb3BjWzFdID0gbW9kcm0g JiAweDM4OwogICAgICAgICBvcGNbMl0gPSBpbW0xOwogICAgICAgICBvcGNbM10gPSAweGMzOwpA QCAtODg3OCw3ICs4ODg1LDEwIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAgICAgLS1vcGM7CiAg ICAgICAgIH0KIAotICAgICAgICBjb3B5X1JFWF9WRVgob3BjLCByZXhfcHJlZml4LCB2ZXgpOwor ICAgICAgICBpZiAoIGV2ZXhfZW5jb2RlZCgpICkKKyAgICAgICAgICAgIGNvcHlfRVZFWChvcGMs IGV2ZXgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb3B5X1JFWF9WRVgob3BjLCByZXhf cHJlZml4LCB2ZXgpOwogICAgICAgICBpbnZva2Vfc3R1YigiIiwgIiIsICI9bSIgKGRzdC52YWwp IDogImEiICgmZHN0LnZhbCkpOwogICAgICAgICBwdXRfc3R1YihzdHViKTsKIApAQCAtODkwMyw2 ICs4OTEzLDUyIEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICBvcGMgPSBpbml0X3ByZWZpeGVzKHN0 dWIpOwogICAgICAgICBnb3RvIHBleHRyOwogCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2 KDB4MGYsIDB4YzUpOiAgIC8qIHZwZXh0cncgJGltbTgseG1tLHJlZyAqLworICAgICAgICBnZW5l cmF0ZV9leGNlcHRpb25faWYoZWEudHlwZSAhPSBPUF9SRUcsIEVYQ19VRCk7CisgICAgICAgIC8q IENvbnZlcnQgdG8gYWx0ZXJuYXRpdmUgZW5jb2Rpbmc6IFdlIHdhbnQgdG8gdXNlIGEgbWVtb3J5 IG9wZXJhbmQuICovCisgICAgICAgIGV2ZXgub3BjeCA9IGV4dF8wZjNhOworICAgICAgICBiID0g MHgxNTsKKyAgICAgICAgbW9kcm0gPDw9IDM7CisgICAgICAgIGV2ZXguciA9IGV2ZXguYjsKKyAg ICAgICAgZXZleC5SID0gZXZleC54OworICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweDE0KTogLyogdnBleHRyYiAkaW1tOCx4 bW0sci9tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgxNSk6IC8q IHZwZXh0cncgJGltbTgseG1tLHIvbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfRVZFWF82Nigw eDBmM2EsIDB4MTYpOiAvKiB2cGV4dHJ7ZCxxfSAkaW1tOCx4bW0sci9tICovCisgICAgY2FzZSBY ODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzYSwgMHgxNyk6IC8qIHZleHRyYWN0cHMgJGltbTgseG1t LHIvbSAqLworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoKGV2ZXgubHIgfHwgZXZleC5y ZWcgIT0gMHhmIHx8ICFldmV4LlJYIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXZleC5vcG1zayB8fCBldmV4LmJycyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF WENfVUQpOworICAgICAgICBpZiAoICEoYiAmIDIpICkKKyAgICAgICAgICAgIGhvc3RfYW5kX3Zj cHVfbXVzdF9oYXZlKGF2eDUxMmJ3KTsKKyAgICAgICAgZWxzZSBpZiAoICEoYiAmIDEpICkKKyAg ICAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGF2eDUxMmRxKTsKKyAgICAgICAgZWxz ZQorICAgICAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoYXZ4NTEyZik7CisgICAgICAg IGdldF9mcHUoWDg2RU1VTF9GUFVfem1tKTsKKyAgICAgICAgb3BjID0gaW5pdF9ldmV4KHN0dWIp OworICAgICAgICBnb3RvIHBleHRyOworCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4 MGYzYSwgMHgxOSk6IC8qIHZleHRyYWN0ZjMyeDQgJGltbTgse3ksen1tbSx4bW0vbTEyOHtrfSAq LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2ZXh0cmFj dGY2NHgyICRpbW04LHt5LHp9bW0seG1tL20xMjh7a30gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BD X0VWRVhfNjYoMHgwZjNhLCAweDM5KTogLyogdmV4dHJhY3RpMzJ4NCAkaW1tOCx7eSx6fW1tLHht bS9tMTI4e2t9ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIHZleHRyYWN0aTY0eDIgJGltbTgse3ksen1tbSx4bW0vbTEyOHtrfSAqLworICAgICAgICBp ZiAoIGV2ZXgudyApCisgICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJk cSk7CisgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZighZXZleC5sciB8fCBldmV4LmJycywg RVhDX1VEKTsKKyAgICAgICAgZmF1bHRfc3VwcHJlc3Npb24gPSBmYWxzZTsKKyAgICAgICAgZ290 byBhdng1MTJmX2ltbThfbm9fc2FlOworCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4 MGYzYSwgMHgxYik6IC8qIHZleHRyYWN0ZjMyeDggJGltbTgsem1tLHltbS9tMjU2e2t9ICovCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZleHRyYWN0ZjY0 eDQgJGltbTgsem1tLHltbS9tMjU2e2t9ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2 KDB4MGYzYSwgMHgzYik6IC8qIHZleHRyYWN0aTMyeDggJGltbTgsem1tLHltbS9tMjU2e2t9ICov CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZleHRyYWN0 aTY0eDQgJGltbTgsem1tLHltbS9tMjU2e2t9ICovCisgICAgICAgIGlmICggIWV2ZXgudyApCisg ICAgICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShhdng1MTJkcSk7CisgICAgICAgIGdl bmVyYXRlX2V4Y2VwdGlvbl9pZihldmV4LmxyICE9IDIgfHwgZXZleC5icnMsIEVYQ19VRCk7Cisg ICAgICAgIGZhdWx0X3N1cHByZXNzaW9uID0gZmFsc2U7CisgICAgICAgIGdvdG8gYXZ4NTEyZl9p bW04X25vX3NhZTsKKwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzYSwgMHgxZCk6 IC8qIHZjdnRwczJwaCAkaW1tOCx7eCx5fW1tLHhtbS9tZW0gKi8KICAgICB7CiAgICAgICAgIHVp bnQzMl90IG14Y3NyOwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVj dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1k ZXZlbA==