From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v6 4/6] libxl: add new pvusb backend "qusb" provided by qemu Date: Thu, 31 Mar 2016 07:49:04 +0200 Message-ID: <1459403346-28677-5-git-send-email-jgross@suse.com> References: <1459403346-28677-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1459403346-28677-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Juergen Gross , wei.liu2@citrix.com, stefano.stabellini@eu.citrix.com, George.Dunlap@eu.citrix.com, ian.jackson@eu.citrix.com, cyliu@suse.com List-Id: xen-devel@lists.xenproject.org QWRkIGEgbmV3IHB2dXNiIGJhY2tlbmQgdHlwZSAicXVzYiIgd2hpY2ggaXMgcHJvdmlkZWQgYnkg cWVtdS4gSXQgY2FuCmJlIHNlbGVjdGVkIGVpdGhlciBieSBzcGVjaWZ5aW5nIHRoZSB0eXBlIGRp cmVjdGx5IGluIHRoZSBjb25maWd1cmF0aW9uCm9yIGl0IGlzIHNlbGVjdGVkIGF1dG9tYXRpY2Fs bHkgYnkgbGlieGwgaW4gY2FzZSB0aGVyZSBpcyBubyAidXNiYmFjayIKZHJpdmVyIGxvYWRlZC4K ClRoZSAicXVzYiIgYmFja2VuZCBpcyBhIGZ1bGwgcmVwbGFjZW1lbnQgZm9yIHRoZSBrZXJuZWwg YmFzZWQgYmFja2VuZAoidnVzYiIuIFRoZSBpbnRlcmZhY2UgdG8gdGhlIGZyb250ZW5kIGlzIHRo ZSB2ZXJ5IHNhbWUgaW5jbHVkaW5nIGFsbApYZW5zdG9yZSBwYXRocywgd2hpbGUgdGhlIGJhY2tl bmQgcGF0aHMgaW4gWGVuc3RvcmUgZGlmZmVyICgicXVzYiIKaW5zdGVhZCBvdiAidnVzYiIpLgoK U2lnbmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjY6IGFk ZCBYZW5zdG9yZSBwYXRoIGRvY3VtZW50YXRpb24KClY0OiBiYWlsIG91dCBpbiBjYXNlIG9mIHVz YmJhY2tfaXNfbG9hZGVkKCkgZXJyb3IgYXMgcmVxdWVzdGVkIGJ5CiAgICBDaHVuIFlhbiBMaXUK LS0tCiBkb2NzL21hbi94bC5jZmcucG9kLjUgICAgICAgICAgICAgICAgfCAgMTEgKysrLQogZG9j cy9taXNjL3hlbnN0b3JlLXBhdGhzLm1hcmtkb3duICAgIHwgICA3ICsrKwogdG9vbHMvbGlieGwv bGlieGxfZGV2aWNlLmMgICAgICAgICAgIHwgICAzICstCiB0b29scy9saWJ4bC9saWJ4bF9kbS5j ICAgICAgICAgICAgICAgfCAgIDggKysrCiB0b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oICAg ICAgICAgfCAgIDEgKwogdG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYyAgICAgICAgICAgIHwgMTE2 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB0b29scy9saWJ4bC9saWJ4bF90 eXBlcy5pZGwgICAgICAgICAgfCAgIDEgKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXNfaW50ZXJu YWwuaWRsIHwgICAxICsKIDggZmlsZXMgY2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDI2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWFuL3hsLmNmZy5wb2QuNSBiL2RvY3MvbWFu L3hsLmNmZy5wb2QuNQppbmRleCBlYzczOWNjLi5hNGNjMWIzIDEwMDY0NAotLS0gYS9kb2NzL21h bi94bC5jZmcucG9kLjUKKysrIGIvZG9jcy9tYW4veGwuY2ZnLnBvZC41CkBAIC03MzcsOCArNzM3 LDE1IEBAIFBvc3NpYmxlIEI8S0VZPnMgYXJlOgogCiA9aXRlbSBCPHR5cGU9VFlQRT4KIAotU3Bl Y2lmaWVzIHRoZSB1c2IgY29udHJvbGxlciB0eXBlLiAgQ3VycmVudGx5IG9ubHkgJ3B2JyBhbmQg J2F1dG8nCi1hcmUgc3VwcG9ydGVkLgorU3BlY2lmaWVzIHRoZSB1c2IgY29udHJvbGxlciB0eXBl LgorCisicHYiIGRlbm90ZXMgYSBrZXJuZWwgYmFzZWQgcHZ1c2IgYmFja2VuZC4KKworInF1c2Ii IHNwZWNpZmllcyBhIHFlbXUgYmFzZSBiYWNrZW5kIGZvciBwdnVzYi4KKworImF1dG8iICh0aGUg ZGVmYXVsdCkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEga2VybmVsIGJhc2VkIGJhY2tlbmQgaXMgaW5z dGFsbGVkLgorSWYgdGhpcyBpcyB0aGUgY2FzZSwgInB2IiBpcyBzZWxlY3RlZCwgInF1c2IiIHdp bGwgYmUgc2VsZWN0ZWQgaWYgbm8ga2VybmVsCitiYWNrZW5kIGlzIGN1cnJlbnRseSBhdmFpbGFi bGUuCiAKID1pdGVtIEI8dmVyc2lvbj1WRVJTSU9OPgogCmRpZmYgLS1naXQgYS9kb2NzL21pc2Mv eGVuc3RvcmUtcGF0aHMubWFya2Rvd24gYi9kb2NzL21pc2MveGVuc3RvcmUtcGF0aHMubWFya2Rv d24KaW5kZXggODkwZDI2MS4uZmE4OGVkNSAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL3hlbnN0b3Jl LXBhdGhzLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW5zdG9yZS1wYXRocy5tYXJrZG93bgpA QCAtMzQ4LDYgKzM0OCwxMyBAQCBBIFBWIFNDU0kgYmFja2VuZC4KIAogQSBQViBjb25zb2xlIGJh Y2tlbmQuIERlc2NyaWJlZCBpbiBbY29uc29sZS50eHRdKGNvbnNvbGUudHh0KQogCisjIyMjIH4v YmFja2VuZC9xdXNiLyRET01JRC8kREVWSUQvKiBbXQorCitBIFBWIFVTQiBkZXZpY2UgYmFja2Vu ZC4gRGVzY3JpYmVkIGJ5CitbeGVuL2luY2x1ZGUvcHVibGljL2lvL3VzYmlmLmhdW1VTQklGXQor CitVc2VzIHRoZSBxZW11IGJhc2VkIFVTQiBiYWNrZW5kLgorCiAjIyMjIH4vZGV2aWNlLW1vZGVs LyRET01JRC8qIFtJTlRFUk5BTF0KIAogSW5mb3JtYXRpb24gcmVsYXRpbmcgdG8gZGV2aWNlIG1v ZGVscyBydW5uaW5nIGluIHRoZSBkb21haW4uICRET01JRCBpcwpkaWZmIC0tZ2l0IGEvdG9vbHMv bGlieGwvbGlieGxfZGV2aWNlLmMgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwppbmRleCA0 Y2VkOWI2Li5lYmEzMDg3IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwor KysgYi90b29scy9saWJ4bC9saWJ4bF9kZXZpY2UuYwpAQCAtNjgwLDcgKzY4MCw4IEBAIHZvaWQg bGlieGxfX2RldmljZXNfZGVzdHJveShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19kZXZpY2VzX3Jl bW92ZV9zdGF0ZSAqZHJzKQogICAgICAgICAgICAgICAgIGFvZGV2LT5hY3Rpb24gPSBMSUJYTF9f REVWSUNFX0FDVElPTl9SRU1PVkU7CiAgICAgICAgICAgICAgICAgYW9kZXYtPmRldiA9IGRldjsK ICAgICAgICAgICAgICAgICBhb2Rldi0+Zm9yY2UgPSBkcnMtPmZvcmNlOwotICAgICAgICAgICAg ICAgIGlmIChkZXYtPmJhY2tlbmRfa2luZCA9PSBMSUJYTF9fREVWSUNFX0tJTkRfVlVTQikKKyAg ICAgICAgICAgICAgICBpZiAoZGV2LT5iYWNrZW5kX2tpbmQgPT0gTElCWExfX0RFVklDRV9LSU5E X1ZVU0IgfHwKKyAgICAgICAgICAgICAgICAgICAgZGV2LT5iYWNrZW5kX2tpbmQgPT0gTElCWExf X0RFVklDRV9LSU5EX1FVU0IpCiAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19pbml0aWF0ZV9k ZXZpY2VfdXNiY3RybF9yZW1vdmUoZWdjLCBhb2Rldik7CiAgICAgICAgICAgICAgICAgZWxzZQog ICAgICAgICAgICAgICAgICAgICBsaWJ4bF9faW5pdGlhdGVfZGV2aWNlX2dlbmVyaWNfcmVtb3Zl KGVnYywgYW9kZXYpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2RtLmMKaW5kZXggMWFkZTRlNC4uNjhjY2JkMSAxMDA2NDQKLS0tIGEvdG9v bHMvbGlieGwvbGlieGxfZG0uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kbS5jCkBAIC0yMTY3 LDYgKzIxNjcsMTQgQEAgaW50IGxpYnhsX19uZWVkX3hlbnB2X3FlbXUobGlieGxfX2djICpnYywg bGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBm b3IgKGkgPSAwOyBpIDwgZF9jb25maWctPm51bV91c2JjdHJsczsgaSsrKSB7CisgICAgICAgaWYg KGRfY29uZmlnLT51c2JjdHJsc1tpXS50eXBlID09IExJQlhMX1VTQkNUUkxfVFlQRV9RVVNCICYm CisgICAgICAgICAgIGRfY29uZmlnLT51c2JjdHJsc1tpXS5iYWNrZW5kX2RvbWlkID09IGRvbWlk KSB7CisgICAgICAgICAgICByZXQgPSAxOworICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAg IH0KKyAgICB9CisKIG91dDoKICAgICByZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvdG9vbHMv bGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5k ZXggYzA2ZmZjMC4uMjBiNjEyMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJu YWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC00ODcsNiArNDg3LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgewogI2RlZmluZSBRRU1VX0JBQ0tFTkQoZGV2KSAoXAogICAgIChk ZXYpLT5iYWNrZW5kX2tpbmQgPT0gTElCWExfX0RFVklDRV9LSU5EX1FESVNLIHx8IFwKICAgICAo ZGV2KS0+YmFja2VuZF9raW5kID09IExJQlhMX19ERVZJQ0VfS0lORF9WRkIgfHwgXAorICAgIChk ZXYpLT5iYWNrZW5kX2tpbmQgPT0gTElCWExfX0RFVklDRV9LSU5EX1FVU0IgfHwgXAogICAgIChk ZXYpLT5iYWNrZW5kX2tpbmQgPT0gTElCWExfX0RFVklDRV9LSU5EX1ZLQkQpCiAKICNkZWZpbmUg WENfUENJX0JERiAgICAgICAgICAgICAiMHgleCwgMHgleCwgMHgleCwgMHgleCIKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3B2dXNiLmMgYi90b29scy9saWJ4bC9saWJ4bF9wdnVzYi5j CmluZGV4IDVmOTI2MjguLjY4ZTU2NzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3B2 dXNiLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfcHZ1c2IuYwpAQCAtMjIsNiArMjIsMjEgQEAK IAogI2RlZmluZSBVU0JIVUJfQ0xBU1NfQ09ERSA5CiAKK3N0YXRpYyBpbnQgdXNiYmFja19pc19s b2FkZWQobGlieGxfX2djICpnYykKK3sKKyAgICBpbnQgcjsKKyAgICBzdHJ1Y3Qgc3RhdCBzdDsK KworICAgIHIgPSBsc3RhdChTWVNGU19VU0JCQUNLX0RSSVZFUiwgJnN0KTsKKworICAgIGlmIChy ID09IDApCisgICAgICAgIHJldHVybiAxOworICAgIGlmIChyIDwgMCAmJiBlcnJubyA9PSBFTk9F TlQpCisgICAgICAgIHJldHVybiAwOworICAgIExPR0UoRVJST1IsICJBY2Nlc3NpbmcgJXMiLCBT WVNGU19VU0JCQUNLX0RSSVZFUik7CisgICAgcmV0dXJuIEVSUk9SX0ZBSUw7Cit9CisKIHN0YXRp YyBpbnQgbGlieGxfX2RldmljZV91c2JjdHJsX3NldGRlZmF1bHQobGlieGxfX2djICpnYywgdWlu dDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX2RldmljZV91c2JjdHJsICp1c2JjdHJsKQogewpAQCAtMzYsNyArNTEsMTEgQEAgc3Rh dGljIGludCBsaWJ4bF9fZGV2aWNlX3VzYmN0cmxfc2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLCB1 aW50MzJfdCBkb21pZCwKIAogICAgIGlmICh1c2JjdHJsLT50eXBlID09IExJQlhMX1VTQkNUUkxf VFlQRV9BVVRPKSB7CiAgICAgICAgIGlmIChkb210eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX1BW KSB7Ci0gICAgICAgICAgICB1c2JjdHJsLT50eXBlID0gTElCWExfVVNCQ1RSTF9UWVBFX1BWOwor ICAgICAgICAgICAgcmMgPSB1c2JiYWNrX2lzX2xvYWRlZChnYyk7CisgICAgICAgICAgICBpZiAo cmMgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICAgICAgdXNiY3RybC0+ dHlwZSA9IHJjID8gTElCWExfVVNCQ1RSTF9UWVBFX1BWCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQjsKICAgICAgICAgfSBlbHNlIGlmIChk b210eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgewogICAgICAgICAgICAgLyogRklYTUU6 IFNlZSBpZiB3ZSBjYW4gZGV0ZWN0IFBWIGZyb250ZW5kICovCiAgICAgICAgICAgICB1c2JjdHJs LT50eXBlID0gTElCWExfVVNCQ1RSTF9UWVBFX0RFVklDRU1PREVMOwpAQCAtNDUsNiArNjQsOCBA QCBzdGF0aWMgaW50IGxpYnhsX19kZXZpY2VfdXNiY3RybF9zZXRkZWZhdWx0KGxpYnhsX19nYyAq Z2MsIHVpbnQzMl90IGRvbWlkLAogCiAgICAgcmMgPSBsaWJ4bF9fcmVzb2x2ZV9kb21pZChnYywg dXNiY3RybC0+YmFja2VuZF9kb21uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JnVzYmN0cmwtPmJhY2tlbmRfZG9taWQpOworCitvdXQ6CiAgICAgcmV0dXJuIHJjOwogfQogCkBA IC01NCw3ICs3NSw5IEBAIGludCBsaWJ4bF9fZGV2aWNlX2Zyb21fdXNiY3RybChsaWJ4bF9fZ2Mg KmdjLCB1aW50MzJfdCBkb21pZCwKIHsKICAgICBkZXZpY2UtPmJhY2tlbmRfZGV2aWQgICA9IHVz YmN0cmwtPmRldmlkOwogICAgIGRldmljZS0+YmFja2VuZF9kb21pZCAgID0gdXNiY3RybC0+YmFj a2VuZF9kb21pZDsKLSAgICBkZXZpY2UtPmJhY2tlbmRfa2luZCAgICA9IExJQlhMX19ERVZJQ0Vf S0lORF9WVVNCOworICAgIGRldmljZS0+YmFja2VuZF9raW5kICAgID0gKHVzYmN0cmwtPnR5cGUg PT0gTElCWExfVVNCQ1RSTF9UWVBFX1BWKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PyBMSUJYTF9fREVWSUNFX0tJTkRfVlVTQgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OiBMSUJYTF9fREVWSUNFX0tJTkRfUVVTQjsKICAgICBkZXZpY2UtPmRldmlkICAgICAgICAgICA9 IHVzYmN0cmwtPmRldmlkOwogICAgIGRldmljZS0+ZG9taWQgICAgICAgICAgID0gZG9taWQ7CiAg ICAgZGV2aWNlLT5raW5kICAgICAgICAgICAgPSBMSUJYTF9fREVWSUNFX0tJTkRfVlVTQjsKQEAg LTY0LDkgKzg3LDkgQEAgaW50IGxpYnhsX19kZXZpY2VfZnJvbV91c2JjdHJsKGxpYnhsX19nYyAq Z2MsIHVpbnQzMl90IGRvbWlkLAogCiAvKiBBZGQgdXNiY3RybCBpbmZvcm1hdGlvbiB0byB4ZW5z dG9yZS4KICAqCi0gKiBBZGRpbmcgYSB1c2IgY29udHJvbGxlciB3aWxsIGFkZCBhIG5ldyAndnVz YicgZGV2aWNlIGluIHhlbnN0b3JlLCBhbmQKLSAqIGFkZCBjb3JyZXNwb25kaW5nIGZyb250ZW5k LCBiYWNrZW5kIGluZm9ybWF0aW9uIHRvIGl0LiBBY2NvcmRpbmcgdG8KLSAqICJ1cGRhdGVfanNv biIsIGRlY2lkZSB3ZXRoZXIgdG8gdXBkYXRlIGpzb24gY29uZmlnIGZpbGUuCisgKiBBZGRpbmcg YSB1c2IgY29udHJvbGxlciB3aWxsIGFkZCBhIG5ldyAncXVzYicgb3IgJ3Z1c2InIGRldmljZSBp biB4ZW5zdG9yZSwKKyAqIGFuZCBhZGQgY29ycmVzcG9uZGluZyBmcm9udGVuZCwgYmFja2VuZCBp bmZvcm1hdGlvbiB0byBpdC4gQWNjb3JkaW5nIHRvCisgKiAidXBkYXRlX2pzb24iLCBkZWNpZGUg d2hldGhlciB0byB1cGRhdGUganNvbiBjb25maWcgZmlsZS4KICAqLwogc3RhdGljIGludCBsaWJ4 bF9fZGV2aWNlX3VzYmN0cmxfYWRkX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRv bWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X2RldmljZV91c2JjdHJsICp1c2JjdHJsLApAQCAtMTIxLDYgKzE0NCwxNSBAQCBzdGF0aWMgaW50 IGxpYnhsX19kZXZpY2VfdXNiY3RybF9hZGRfeGVuc3RvcmUobGlieGxfX2djICpnYywgdWludDMy X3QgZG9taWQsCiAKICAgICAgICAgREVWSUNFX0FERCh1c2JjdHJsLCB1c2JjdHJscywgZG9taWQs ICZ1c2JjdHJsX3NhdmVkLAogICAgICAgICAgICAgICAgICAgIENPTVBBUkVfVVNCQ1RSTCwgJmRf Y29uZmlnKTsKKworICAgICAgICBpZiAodXNiY3RybC0+dHlwZSA9PSBMSUJYTF9VU0JDVFJMX1RZ UEVfUVVTQikgeworICAgICAgICAgICAgaWYgKCFsaWJ4bF9fcXVlcnlfcWVtdV9iYWNrZW5kKGdj LCBkb21pZCwgdXNiY3RybC0+YmFja2VuZF9kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAicXVzYiIsIGZhbHNlKSkgeworICAgICAgICAgICAgICAgIExP RyhFUlJPUiwgImJhY2tlbmQgdHlwZSBub3Qgc3VwcG9ydGVkIGJ5IGRldmljZSBtb2RlbCIpOwor ICAgICAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgICAgICAgICBnb3RvIG91 dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIGZvciAoOzspIHsKQEAg LTE1OSw2ICsxOTEsMTggQEAgb3V0OgogICAgIHJldHVybiByYzsKIH0KIAorc3RhdGljIGNoYXIg KnB2dXNiX2dldF9kZXZpY2VfdHlwZShsaWJ4bF91c2JjdHJsX3R5cGUgdHlwZSkKK3sKKyAgICBz d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIExJQlhMX1VTQkNUUkxfVFlQRV9QVjoKKyAgICAgICAg cmV0dXJuICJ2dXNiIjsKKyAgICBjYXNlIExJQlhMX1VTQkNUUkxfVFlQRV9RVVNCOgorICAgICAg ICByZXR1cm4gInF1c2IiOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBOVUxMOworICAg IH0KK30KKwogLyogQU8gb3BlcmF0aW9uIHRvIGFkZCBhIHVzYiBjb250cm9sbGVyLgogICoKICAq IEdlbmVyYWxseSwgaXQgZG9lczoKQEAgLTE5MCw3ICsyMzQsOCBAQCB2b2lkIGxpYnhsX19kZXZp Y2VfdXNiY3RybF9hZGQobGlieGxfX2VnYyAqZWdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAg fQogICAgIH0KIAotICAgIGlmICh1c2JjdHJsLT50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9Q VikgeworICAgIGlmICh1c2JjdHJsLT50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9QViAmJgor ICAgICAgICB1c2JjdHJsLT50eXBlICE9IExJQlhMX1VTQkNUUkxfVFlQRV9RVVNCKSB7CiAgICAg ICAgIExPRyhFUlJPUiwgIlVuc3VwcG9ydGVkIFVTQiBjb250cm9sbGVyIHR5cGUiKTsKICAgICAg ICAgcmMgPSBFUlJPUl9GQUlMOwogICAgICAgICBnb3RvIG91dDsKQEAgLTI1Miw3ICsyOTcsOCBA QCB2b2lkIGxpYnhsX19pbml0aWF0ZV9kZXZpY2VfdXNiY3RybF9yZW1vdmUobGlieGxfX2VnYyAq ZWdjLAogICAgIHJjID0gbGlieGxfZGV2aWNlX3VzYmN0cmxfZ2V0aW5mbyhDVFgsIGRvbWlkLCAm dXNiY3RybCwgJnVzYmN0cmxpbmZvKTsKICAgICBpZiAocmMpIGdvdG8gb3V0OwogCi0gICAgaWYg KHVzYmN0cmxpbmZvLnR5cGUgIT0gTElCWExfVVNCQ1RSTF9UWVBFX1BWKSB7CisgICAgaWYgKHVz YmN0cmxpbmZvLnR5cGUgIT0gTElCWExfVVNCQ1RSTF9UWVBFX1BWICYmCisgICAgICAgIHVzYmN0 cmxpbmZvLnR5cGUgIT0gTElCWExfVVNCQ1RSTF9UWVBFX1FVU0IpIHsKICAgICAgICAgTE9HKEVS Uk9SLCAiVW5zdXBwb3J0ZWQgVVNCIGNvbnRyb2xsZXIgdHlwZSIpOwogICAgICAgICByYyA9IEVS Uk9SX0ZBSUw7CiAgICAgICAgIGdvdG8gb3V0OwpAQCAtMjkzLDYgKzMzOSw3IEBAIHN0YXRpYyBj b25zdCBjaGFyICp2dXNiX2JlX2Zyb21feHNfZmUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAq ZmVfcGF0aCwKICAgICBjb25zdCBjaGFyICpiZV9wYXRoOwogICAgIGludCByOwogICAgIHVpbnQz Ml90IGJlX2RvbWlkLCBmZV9kb21pZDsKKyAgICBjaGFyIGJlX3R5cGVbMTZdOwogCiAgICAgciA9 IGxpYnhsX194c19yZWFkX2NoZWNrZWQoZ2MsIFhCVF9OVUxMLCBHQ1NQUklOVEYoIiVzL2JhY2tl bmQiLCBmZV9wYXRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmVfcGF0aCk7 CkBAIC0zMDAsMTAgKzM0NywxMCBAQCBzdGF0aWMgY29uc3QgY2hhciAqdnVzYl9iZV9mcm9tX3hz X2ZlKGxpYnhsX19nYyAqZ2MsIGNvbnN0IGNoYXIgKmZlX3BhdGgsCiAKICAgICAvKiBDaGVjayB0 byBzZWUgdGhhdCBpdCBoYXMgdGhlIHByb3BlciBmb3JtLCBhbmQgdGhhdCBmZV9kb21pZCA9PQog ICAgICAqIHRhcmdldCBkb21pZCAqLwotICAgIHIgPSBzc2NhbmYoYmVfcGF0aCwgIi9sb2NhbC9k b21haW4vJWQvYmFja2VuZC92dXNiLyVkIiwKLSAgICAgICAgICAgICAgICZiZV9kb21pZCwgJmZl X2RvbWlkKTsKKyAgICByID0gc3NjYW5mKGJlX3BhdGgsICIvbG9jYWwvZG9tYWluLyVkL2JhY2tl bmQvJTE1W14vXS8lZCIsCisgICAgICAgICAgICAgICAmYmVfZG9taWQsIGJlX3R5cGUsICZmZV9k b21pZCk7CiAKLSAgICBpZiAociAhPSAyIHx8IGZlX2RvbWlkICE9IHRndF9kb21pZCkgeworICAg IGlmIChyICE9IDMgfHwgZmVfZG9taWQgIT0gdGd0X2RvbWlkKSB7CiAgICAgICAgIExPRyhFUlJP UiwgIk1hbGZvcm1lZCBiYWNrZW5kLCByZWZ1c2luZyB0byB1c2UiKTsKICAgICAgICAgcmV0dXJu IE5VTEw7CiAgICAgfQpAQCAtNzQwLDggKzc4Nyw5IEBAIGxpYnhsX19kZXZpY2VfdXNiZGV2X3Nl dF9kZWZhdWx0X3VzYmN0cmwobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAg IGZvciAoaiA9IDA7IGogPCB1c2JjdHJsc1tpXS5wb3J0czsgaisrKSB7CiAgICAgICAgICAgICBj b25zdCBjaGFyICpwYXRoLCAqdG1wOwogCi0gICAgICAgICAgICBwYXRoID0gR0NTUFJJTlRGKCIl cy9iYWNrZW5kL3Z1c2IvJWQvJWQvcG9ydC8lZCIsCisgICAgICAgICAgICBwYXRoID0gR0NTUFJJ TlRGKCIlcy9iYWNrZW5kLyVzLyVkLyVkL3BvcnQvJWQiLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIExJQlhMX1RPT0xTVEFDS19ET01JRCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB2dXNiX2dldF9kZXZpY2VfdHlwZSh1c2Jj dHJsc1tpXS50eXBlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWQsIHVzYmN0 cmxzW2ldLmRldmlkLCBqICsgMSk7CiAgICAgICAgICAgICByYyA9IGxpYnhsX194c19yZWFkX2No ZWNrZWQoZ2MsIFhCVF9OVUxMLCBwYXRoLCAmdG1wKTsKICAgICAgICAgICAgIGlmIChyYykgZ290 byBvdXQ7CkBAIC04ODMsMTEgKzkzMSwxMiBAQCBvdXQ6CiAKIC8qIEFkZCB1c2IgaW5mb3JtYXRp b24gdG8geGVuc3RvcmUKICAqCi0gKiBBZGRpbmcgYSB1c2IgZGV2aWNlIHdvbid0IGNyZWF0ZSBu ZXcgJ3Z1c2InIGRldmljZSwgYnV0IG9ubHkgd3JpdGUKKyAqIEFkZGluZyBhIHVzYiBkZXZpY2Ug d29uJ3QgY3JlYXRlIG5ldyAncXVzYicvJ3Z1c2InIGRldmljZSwgYnV0IG9ubHkgd3JpdGUKICAq IHRoZSBkZXZpY2UgYnVzaWQgdG8gdGhlIGNvbnRyb2xsZXI6cG9ydCBpbiB4ZW5zdG9yZS4KICAq Lwogc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3VzYmRldl9hZGRfeGVuc3RvcmUobGlieGxfX2dj ICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF91c2JjdHJsX3R5cGUgdHlwZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdXBkYXRlX2pz b24pCiB7CiAgICAgY2hhciAqYmVfcGF0aCwgKmJ1c2lkOwpAQCAtOTMxLDggKzk4MCw5IEBAIHN0 YXRpYyBpbnQgbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3JlKGxpYnhsX19nYyAqZ2Ms IHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKICAgICAgICAg fQogCi0gICAgICAgIGJlX3BhdGggPSBHQ1NQUklOVEYoIiVzL2JhY2tlbmQvdnVzYi8lZC8lZC9w b3J0LyVkIiwKKyAgICAgICAgYmVfcGF0aCA9IEdDU1BSSU5URigiJXMvYmFja2VuZC8lcy8lZC8l ZC9wb3J0LyVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feHNfZ2V0X2Rv bXBhdGgoZ2MsIExJQlhMX1RPT0xTVEFDS19ET01JRCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHZ1c2JfZ2V0X2RldmljZV90eXBlKHR5cGUpLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWlkLCB1c2JkZXYtPmN0cmwsIHVzYmRldi0+cG9ydCk7CiAKICAgICAgICAgTE9H KERFQlVHLCAiQWRkaW5nIHVzYiBkZXZpY2UgJXMgdG8geGVuc3RvcmU6IGNvbnRyb2xsZXIgJWQs IHBvcnQgJWQiLApAQCAtOTU2LDEyICsxMDA2LDE0IEBAIG91dDoKIH0KIAogc3RhdGljIGludCBs aWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVuc3RvcmUobGlieGxfX2djICpnYywgdWludDMy X3QgZG9taWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF91c2JjdHJs X3R5cGUgdHlwZSkKIHsKICAgICBjaGFyICpiZV9wYXRoOwogCi0gICAgYmVfcGF0aCA9IEdDU1BS SU5URigiJXMvYmFja2VuZC92dXNiLyVkLyVkL3BvcnQvJWQiLAorICAgIGJlX3BhdGggPSBHQ1NQ UklOVEYoIiVzL2JhY2tlbmQvJXMvJWQvJWQvcG9ydC8lZCIsCiAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9feHNfZ2V0X2RvbXBhdGgoZ2MsIExJQlhMX1RPT0xTVEFDS19ET01JRCksCisg ICAgICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUodHlwZSksCiAgICAg ICAgICAgICAgICAgICAgICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYtPnBvcnQpOwog CiAgICAgTE9HKERFQlVHLCAiUmVtb3ZpbmcgdXNiIGRldmljZSBmcm9tIHhlbnN0b3JlOiBjb250 cm9sbGVyICVkLCBwb3J0ICVkIiwKQEAgLTk3MSwxMiArMTAyMywxNCBAQCBzdGF0aWMgaW50IGxp YnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJf dCBkb21pZCwKIH0KIAogc3RhdGljIGNoYXIgKnVzYmRldl9idXNpZF9mcm9tX2N0cmxwb3J0KGxp YnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpYnhsX2RldmljZV91c2JkZXYgKnVzYmRldikKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdXNiZGV2ICp1c2JkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdXNiY3RybF90eXBl IHR5cGUpCiB7CiAgICAgcmV0dXJuIGxpYnhsX194c19yZWFkKGdjLCBYQlRfTlVMTCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcy9iYWNrZW5kL3Z1c2IvJWQvJWQvcG9y dC8lZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvYmFja2VuZC8l cy8lZC8lZC9wb3J0LyVkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194 c19nZXRfZG9tcGF0aChnYywgTElCWExfVE9PTFNUQUNLX0RPTUlEKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9taWQsIHVzYmRldi0+Y3RybCwgdXNiZGV2LT5wb3J0KSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwdnVzYl9nZXRfZGV2aWNlX3R5cGUodHlwZSksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZCwgdXNiZGV2LT5jdHJsLCB1c2JkZXYtPnBv cnQpKTsKIH0KIAogLyogZ2V0IG9yaWdpbmFsIGRyaXZlciBwYXRoIG9mIHVzYiBpbnRlcmZhY2Us IHN0b3JlZCBpbiBAZHJ2cGF0aCAqLwpAQCAtMTMzMywxNSArMTM4NywyNSBAQCBzdGF0aWMgaW50 IGRvX3VzYmRldl9hZGQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAgICAgICAg ICBnb3RvIG91dDsKICAgICAgICAgfQogCi0gICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2Jk ZXZfYWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LCB1cGRhdGVfanNvbik7CisgICAgICAg IHJjID0gbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9V U0JDVFJMX1RZUEVfUFYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVwZGF0ZV9qc29uKTsKICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKIAogICAgICAg ICByYyA9IHVzYmJhY2tfZGV2X2Fzc2lnbihnYywgYnVzaWQpOwogICAgICAgICBpZiAocmMpIHsK LSAgICAgICAgICAgIGxpYnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShnYywgZG9t aWQsIHVzYmRldik7CisgICAgICAgICAgICBsaWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVu c3RvcmUoZ2MsIGRvbWlkLCB1c2JkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTElCWExfVVNCQ1RSTF9UWVBFX1BWKTsKICAgICAgICAgICAgIGdv dG8gb3V0OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTElCWExfVVNCQ1RS TF9UWVBFX1FVU0I6CisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZfYWRkX3hlbnN0 b3JlKGdjLCBkb21pZCwgdXNiZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2pzb24pOworICAgICAgICBpZiAo cmMpIGdvdG8gb3V0OworCisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTElCWExfVVNCQ1RSTF9U WVBFX0RFVklDRU1PREVMOgogICAgIGRlZmF1bHQ6CiAgICAgICAgIExPRyhFUlJPUiwgIlVuc3Vw cG9ydGVkIHVzYiBjb250cm9sbGVyIHR5cGUiKTsKQEAgLTE0NTgsNyArMTUyMiw3IEBAIHN0YXRp YyBpbnQgZG9fdXNiZGV2X3JlbW92ZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKIAog ICAgIHN3aXRjaCAodXNiY3RybGluZm8udHlwZSkgewogICAgIGNhc2UgTElCWExfVVNCQ1RSTF9U WVBFX1BWOgotICAgICAgICBidXNpZCA9IHVzYmRldl9idXNpZF9mcm9tX2N0cmxwb3J0KGdjLCBk b21pZCwgdXNiZGV2KTsKKyAgICAgICAgYnVzaWQgPSB1c2JkZXZfYnVzaWRfZnJvbV9jdHJscG9y dChnYywgZG9taWQsIHVzYmRldiwgdXNiY3RybGluZm8udHlwZSk7CiAgICAgICAgIGlmICghYnVz aWQpIHsKICAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgICAgIGdvdG8gb3V0 OwpAQCAtMTQ4Myw3ICsxNTQ3LDggQEAgc3RhdGljIGludCBkb191c2JkZXZfcmVtb3ZlKGxpYnhs X19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAg IH0KIAotICAgICAgICByYyA9IGxpYnhsX19kZXZpY2VfdXNiZGV2X3JlbW92ZV94ZW5zdG9yZShn YywgZG9taWQsIHVzYmRldik7CisgICAgICAgIHJjID0gbGlieGxfX2RldmljZV91c2JkZXZfcmVt b3ZlX3hlbnN0b3JlKGdjLCBkb21pZCwgdXNiZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9VU0JDVFJMX1RZUEVfUFYpOwogICAgICAg ICBpZiAocmMpIHsKICAgICAgICAgICAgIExPRyhFUlJPUiwgIkVycm9yIHJlbW92aW5nIGRldmlj ZSBmcm9tIGd1ZXN0LiIKICAgICAgICAgICAgICAgICAiIFRyeSBydW5uaW5nIHVzYmRldi1kZXRh Y2ggYWdhaW4uIik7CkBAIC0xNDk5LDYgKzE1NjQsMTIgQEAgc3RhdGljIGludCBkb191c2JkZXZf cmVtb3ZlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICB9CiAKICAgICAg ICAgYnJlYWs7CisgICAgY2FzZSBMSUJYTF9VU0JDVFJMX1RZUEVfUVVTQjoKKyAgICAgICAgcmMg PSBsaWJ4bF9fZGV2aWNlX3VzYmRldl9yZW1vdmVfeGVuc3RvcmUoZ2MsIGRvbWlkLCB1c2JkZXYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhM X1VTQkNUUkxfVFlQRV9RVVNCKTsKKyAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgICAg ICBicmVhazsKICAgICBjYXNlIExJQlhMX1VTQkNUUkxfVFlQRV9ERVZJQ0VNT0RFTDoKICAgICBk ZWZhdWx0OgogICAgICAgICBMT0coRVJST1IsICJVbnN1cHBvcnRlZCB1c2IgY29udHJvbGxlciB0 eXBlIik7CkBAIC0xNTgzLDcgKzE2NTQsNiBAQCBpbnQgbGlieGxfY3RybHBvcnRfdG9fZGV2aWNl X3VzYmRldihsaWJ4bF9jdHggKmN0eCwKICAgICBkb21wYXRoID0gbGlieGxfX3hzX2dldF9kb21w YXRoKGdjLCBkb21pZCk7CiAKICAgICBmZV9wYXRoID0gR0NTUFJJTlRGKCIlcy9kZXZpY2UvdnVz Yi8lZCIsIGRvbXBhdGgsIGN0cmwpOwotCiAgICAgYmVfcGF0aCA9IHZ1c2JfYmVfZnJvbV94c19m ZShnYywgZmVfcGF0aCwgZG9taWQpOwogICAgIGlmICghYmVfcGF0aCkgewogICAgICAgICByYyA9 IEVSUk9SX0ZBSUw7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgYi90 b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKaW5kZXggNTliMTgzYy4uMzA0YWExMSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhs X3R5cGVzLmlkbApAQCAtNjE4LDYgKzYxOCw3IEBAIGxpYnhsX3VzYmN0cmxfdHlwZSA9IEVudW1l cmF0aW9uKCJ1c2JjdHJsX3R5cGUiLCBbCiAgICAgKDAsICJBVVRPIiksCiAgICAgKDEsICJQViIp LAogICAgICgyLCAiREVWSUNFTU9ERUwiKSwKKyAgICAoMywgIlFVU0IiKSwKICAgICBdKQogCiBs aWJ4bF91c2JkZXZfdHlwZSA9IEVudW1lcmF0aW9uKCJ1c2JkZXZfdHlwZSIsIFsKZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbCBiL3Rvb2xzL2xpYnhsL2xp YnhsX3R5cGVzX2ludGVybmFsLmlkbAppbmRleCA2OTZmNWY4Li4xNzdmOWI3IDEwMDY0NAotLS0g YS90b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwKKysrIGIvdG9vbHMvbGlieGwv bGlieGxfdHlwZXNfaW50ZXJuYWwuaWRsCkBAIC0yMyw2ICsyMyw3IEBAIGxpYnhsX19kZXZpY2Vf a2luZCA9IEVudW1lcmF0aW9uKCJkZXZpY2Vfa2luZCIsIFsKICAgICAoNywgIkNPTlNPTEUiKSwK ICAgICAoOCwgIlZUUE0iKSwKICAgICAoOSwgIlZVU0IiKSwKKyAgICAoMTAsICJRVVNCIiksCiAg ICAgXSkKIAogbGlieGxfX2NvbnNvbGVfYmFja2VuZCA9IEVudW1lcmF0aW9uKCJjb25zb2xlX2Jh Y2tlbmQiLCBbCi0tIAoyLjYuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==