From: Juergen Gross Subject: [PATCH v4 04/19] xen: prepare common code for Xen PVH support Date: Fri, 2 Nov 2018 13:37:23 +0100 Message-ID: <20181102123738.16395-5-jgross@suse.com> References: <20181102123738.16395-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181102123738.16395-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: grub-devel@gnu.org Cc: hans@knorrie.org, phcoder@gmail.com, daniel.kiper@oracle.com, Juergen Gross , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org U29tZSBjb21tb24gY29kZSBuZWVkcyB0byBiZSBzcGVjaWFsIGNhc2VkIGZvciBYZW4gUFZIIG1v ZGUuIFRoaXMgaGl0cwptb3N0bHkgWGVuIFBWIG1vZGUgc3BlY2lmaWMgYXJlYXMuCgpTcGxpdCBp bmNsdWRlL2dydWIvaTM4Ni9wYy9pbnRfdHlwZXMuaCBvZmYgZnJvbQppbmNsdWRlL2dydWIvaTM4 Ni9wYy9pbnQuaCB0byBzdXBwb3J0IGluY2x1ZGluZyB0aGlzIGZpbGUgbGF0ZXIgZnJvbQp4ZW5f cHZoIGNvZGUgd2l0aG91dCB0aGUgZ3J1Yl9iaW9zX2ludGVycnVwdCBkZWZpbml0aW9uLgoKTW92 ZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBncnViX2U4MjBfbW1hcF9lbnRyeSBmcm9tCmdydWItY29y ZS9tbWFwL2kzODYvcGMvbW1hcC5jIHRvIGluY2x1ZGUvZ3J1Yi9pMzg2L21lbW9yeS5oIGluIG9y ZGVyCnRvIG1ha2UgaXQgdXNhYmxlIGZyb20geGVuX3B2aCBjb2RlLgoKU2lnbmVkLW9mZi1ieTog SnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjM6IEdSVUJfTUFDSElORV9YRU5Q VkggLT4gR1JVQl9NQUNISU5FX1hFTl9QVkggKERhbmllbCBLaXBlcikKICAgIHNwbGl0IGluY2x1 ZGUvZ3J1Yi9pMzg2L3BjL2ludC5oIChEYW5pZWwgS2lwZXIpCiAgICBtb3ZlIHN0cnVjdCBncnVi X2U4MjBfbW1hcF9lbnRyeSBkZWZpbml0aW9uIHRvIGhlYWRlciBmaWxlCi0tLQogZ3J1Yi1jb3Jl L2tlcm4vaTM4Ni90c2MuYyAgICAgICAgIHwgIDIgKy0KIGdydWItY29yZS9tbWFwL2kzODYvcGMv bW1hcC5jICAgICB8ICA3IC0tLS0tCiBpbmNsdWRlL2dydWIvaTM4Ni9tZW1vcnkuaCAgICAgICAg fCAgNyArKysrKwogaW5jbHVkZS9ncnViL2kzODYvcGMvaW50LmggICAgICAgIHwgMzYgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2dydWIvaTM4Ni9wYy9pbnRfdHlwZXMuaCAgfCA1 OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZ3J1Yi9p Mzg2L3RzYy5oICAgICAgICAgICB8ICAyICstCiBpbmNsdWRlL2dydWIvaTM4Ni94ZW4vaHlwZXJj YWxsLmggfCAgNSArKystCiBpbmNsdWRlL2dydWIva2VybmVsLmggICAgICAgICAgICAgfCAgNCAr Ky0KIDggZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9ncnViL2kzODYvcGMvaW50X3R5cGVzLmgKCmRpZmYg LS1naXQgYS9ncnViLWNvcmUva2Vybi9pMzg2L3RzYy5jIGIvZ3J1Yi1jb3JlL2tlcm4vaTM4Ni90 c2MuYwppbmRleCBmMjY2ZWIxMzEuLjkyOTNiMTYxZCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2tl cm4vaTM4Ni90c2MuYworKysgYi9ncnViLWNvcmUva2Vybi9pMzg2L3RzYy5jCkBAIC02NSw3ICs2 NSw3IEBAIGdydWJfdHNjX2luaXQgKHZvaWQpCiAKICAgdHNjX2Jvb3RfdGltZSA9IGdydWJfZ2V0 X3RzYyAoKTsKIAotI2lmZGVmIEdSVUJfTUFDSElORV9YRU4KKyNpZiBkZWZpbmVkIChHUlVCX01B Q0hJTkVfWEVOKSB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfWEVOX1BWSCkKICAgKHZvaWQpIChn cnViX3RzY19jYWxpYnJhdGVfZnJvbV94ZW4gKCkgfHwgY2FsaWJyYXRlX3RzY19oYXJkY29kZSgp KTsKICNlbGlmIGRlZmluZWQgKEdSVUJfTUFDSElORV9FRkkpCiAgICh2b2lkKSAoZ3J1Yl90c2Nf Y2FsaWJyYXRlX2Zyb21fcG10aW1lciAoKSB8fCBncnViX3RzY19jYWxpYnJhdGVfZnJvbV9waXQg KCkgfHwgZ3J1Yl90c2NfY2FsaWJyYXRlX2Zyb21fZWZpKCkgfHwgY2FsaWJyYXRlX3RzY19oYXJk Y29kZSgpKTsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9tbWFwL2kzODYvcGMvbW1hcC5jIGIvZ3J1 Yi1jb3JlL21tYXAvaTM4Ni9wYy9tbWFwLmMKaW5kZXggNjA5OTk0NTE2Li5iY2IwOTdjMzggMTAw NjQ0Ci0tLSBhL2dydWItY29yZS9tbWFwL2kzODYvcGMvbW1hcC5jCisrKyBiL2dydWItY29yZS9t bWFwL2kzODYvcGMvbW1hcC5jCkBAIC00MiwxMyArNDIsNiBAQCBleHRlcm4gZ3J1Yl91aW50MTZf dCBncnViX21hY2hpbmVfbW1hcGhvb2tfa2Jsb3c7CiBleHRlcm4gZ3J1Yl91aW50MTZfdCBncnVi X21hY2hpbmVfbW1hcGhvb2tfa2JpbjE2bWI7CiBleHRlcm4gZ3J1Yl91aW50MTZfdCBncnViX21h Y2hpbmVfbW1hcGhvb2tfNjRrYmluNGdiOwogCi1zdHJ1Y3QgZ3J1Yl9lODIwX21tYXBfZW50cnkK LXsKLSAgZ3J1Yl91aW50NjRfdCBhZGRyOwotICBncnViX3VpbnQ2NF90IGxlbjsKLSAgZ3J1Yl91 aW50MzJfdCB0eXBlOwotfSBHUlVCX1BBQ0tFRDsKLQogCiAvKiBIZWxwZXIgZm9yIHByZWJvb3Qu ICAqLwogc3RhdGljIGludCBmaWxsX2hvb2sgKGdydWJfdWludDY0X3QgYWRkciwgZ3J1Yl91aW50 NjRfdCBzaXplLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2kzODYvbWVtb3J5LmggYi9pbmNs dWRlL2dydWIvaTM4Ni9tZW1vcnkuaAppbmRleCA4YmI2ZTFjYmIuLjVjYjYwN2ZiNCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9ncnViL2kzODYvbWVtb3J5LmgKKysrIGIvaW5jbHVkZS9ncnViL2kzODYv bWVtb3J5LmgKQEAgLTQ0LDYgKzQ0LDEzIEBACiAKICNpbmNsdWRlIDxncnViL3R5cGVzLmg+CiAK K3N0cnVjdCBncnViX2U4MjBfbW1hcF9lbnRyeQoreworICBncnViX3VpbnQ2NF90IGFkZHI7Cisg IGdydWJfdWludDY0X3QgbGVuOworICBncnViX3VpbnQzMl90IHR5cGU7Cit9IEdSVUJfUEFDS0VE OworCiBncnViX3VpbnQ2NF90IGdydWJfbW1hcF9nZXRfdXBwZXIgKHZvaWQpOwogZ3J1Yl91aW50 NjRfdCBncnViX21tYXBfZ2V0X2xvd2VyICh2b2lkKTsKIGdydWJfdWludDY0X3QgZ3J1Yl9tbWFw X2dldF9wb3N0NjQgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2kzODYvcGMvaW50 LmggYi9pbmNsdWRlL2dydWIvaTM4Ni9wYy9pbnQuaAppbmRleCAxNmE1M2U0ZmUuLmE2MDEwNDAw MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ncnViL2kzODYvcGMvaW50LmgKKysrIGIvaW5jbHVkZS9n cnViL2kzODYvcGMvaW50LmgKQEAgLTIwLDQ1ICsyMCwxMSBAQAogI2RlZmluZSBHUlVCX0lOVEVS UlVQVF9NQUNISU5FX0hFQURFUgkxCiAKICNpbmNsdWRlIDxncnViL3N5bWJvbC5oPgotI2luY2x1 ZGUgPGdydWIvdHlwZXMuaD4KLQotc3RydWN0IGdydWJfYmlvc19pbnRfcmVnaXN0ZXJzCi17Ci0g IGdydWJfdWludDMyX3QgZWF4OwotICBncnViX3VpbnQxNl90IGVzOwotICBncnViX3VpbnQxNl90 IGRzOwotICBncnViX3VpbnQxNl90IGZsYWdzOwotICBncnViX3VpbnQxNl90IGR1bW15OwotICBn cnViX3VpbnQzMl90IGVieDsKLSAgZ3J1Yl91aW50MzJfdCBlY3g7Ci0gIGdydWJfdWludDMyX3Qg ZWRpOwotICBncnViX3VpbnQzMl90IGVzaTsKLSAgZ3J1Yl91aW50MzJfdCBlZHg7Ci19OwotCi0j ZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfQ0FSUlkgICAgIDB4MQotI2RlZmluZSAgR1JVQl9D UFVfSU5UX0ZMQUdTX1BBUklUWSAgICAweDQKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19B REpVU1QgICAgMHgxMAotI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX1pFUk8gICAgICAweDQw Ci0jZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfU0lHTiAgICAgIDB4ODAKLSNkZWZpbmUgIEdS VUJfQ1BVX0lOVF9GTEFHU19UUkFQICAgICAgMHgxMDAKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9G TEFHU19JTlRFUlJVUFQgMHgyMDAKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19ESVJFQ1RJ T04gMHg0MDAKLSNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19PVkVSRkxPVyAgMHg4MDAKLSNp ZmRlZiBHUlVCX01BQ0hJTkVfUENCSU9TCi0jZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfREVG QVVMVCAgIEdSVUJfQ1BVX0lOVF9GTEFHU19JTlRFUlJVUFQKLSNlbHNlCi0jZGVmaW5lICBHUlVC X0NQVV9JTlRfRkxBR1NfREVGQVVMVCAgIDAKLSNlbmRpZgorI2luY2x1ZGUgPGdydWIvaTM4Ni9w Yy9pbnRfdHlwZXMuaD4KIAogdm9pZCBFWFBPUlRfRlVOQyAoZ3J1Yl9iaW9zX2ludGVycnVwdCkg KGdydWJfdWludDhfdCBpbnRubywKIAkJCQkJc3RydWN0IGdydWJfYmlvc19pbnRfcmVnaXN0ZXJz ICpyZWdzKQogICAgICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgzKSkpOwotc3RydWN0IGdydWJf aTM4Nl9pZHQKLXsKLSAgZ3J1Yl91aW50MTZfdCBsaW1pdDsKLSAgZ3J1Yl91aW50MzJfdCBiYXNl OwotfSBHUlVCX1BBQ0tFRDsKIAogI2lmZGVmIEdSVUJfTUFDSElORV9QQ0JJT1MKIGV4dGVybiBz dHJ1Y3QgZ3J1Yl9pMzg2X2lkdCAqRVhQT1JUX1ZBUihncnViX3JlYWxpZHQpOwpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9ncnViL2kzODYvcGMvaW50X3R5cGVzLmggYi9pbmNsdWRlL2dydWIvaTM4Ni9w Yy9pbnRfdHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjM1YTRi NTA4NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZ3J1Yi9pMzg2L3BjL2ludF90eXBlcy5o CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiAgR1JVQiAgLS0gIEdSYW5kIFVuaWZpZWQgQm9vdGxv YWRlcgorICogIENvcHlyaWdodCAoQykgMjAxOCAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisgKgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lmbmRlZiBHUlVCX0lOVEVSUlVQVF9U WVBFU19NQUNISU5FX0hFQURFUgorI2RlZmluZSBHUlVCX0lOVEVSUlVQVF9UWVBFU19NQUNISU5F X0hFQURFUgkxCisKKyNpbmNsdWRlIDxncnViL3R5cGVzLmg+CisKK3N0cnVjdCBncnViX2Jpb3Nf aW50X3JlZ2lzdGVycworeworICBncnViX3VpbnQzMl90IGVheDsKKyAgZ3J1Yl91aW50MTZfdCBl czsKKyAgZ3J1Yl91aW50MTZfdCBkczsKKyAgZ3J1Yl91aW50MTZfdCBmbGFnczsKKyAgZ3J1Yl91 aW50MTZfdCBkdW1teTsKKyAgZ3J1Yl91aW50MzJfdCBlYng7CisgIGdydWJfdWludDMyX3QgZWN4 OworICBncnViX3VpbnQzMl90IGVkaTsKKyAgZ3J1Yl91aW50MzJfdCBlc2k7CisgIGdydWJfdWlu dDMyX3QgZWR4OworfTsKKworI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX0NBUlJZICAgICAw eDEKKyNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9GTEFHU19QQVJJVFkgICAgMHg0CisjZGVmaW5lICBH UlVCX0NQVV9JTlRfRkxBR1NfQURKVVNUICAgIDB4MTAKKyNkZWZpbmUgIEdSVUJfQ1BVX0lOVF9G TEFHU19aRVJPICAgICAgMHg0MAorI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX1NJR04gICAg ICAweDgwCisjZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfVFJBUCAgICAgIDB4MTAwCisjZGVm aW5lICBHUlVCX0NQVV9JTlRfRkxBR1NfSU5URVJSVVBUIDB4MjAwCisjZGVmaW5lICBHUlVCX0NQ VV9JTlRfRkxBR1NfRElSRUNUSU9OIDB4NDAwCisjZGVmaW5lICBHUlVCX0NQVV9JTlRfRkxBR1Nf T1ZFUkZMT1cgIDB4ODAwCisjaWZkZWYgR1JVQl9NQUNISU5FX1BDQklPUworI2RlZmluZSAgR1JV Ql9DUFVfSU5UX0ZMQUdTX0RFRkFVTFQgICBHUlVCX0NQVV9JTlRfRkxBR1NfSU5URVJSVVBUCisj ZWxzZQorI2RlZmluZSAgR1JVQl9DUFVfSU5UX0ZMQUdTX0RFRkFVTFQgICAwCisjZW5kaWYKKwor c3RydWN0IGdydWJfaTM4Nl9pZHQKK3sKKyAgZ3J1Yl91aW50MTZfdCBsaW1pdDsKKyAgZ3J1Yl91 aW50MzJfdCBiYXNlOworfSBHUlVCX1BBQ0tFRDsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNs dWRlL2dydWIvaTM4Ni90c2MuaCBiL2luY2x1ZGUvZ3J1Yi9pMzg2L3RzYy5oCmluZGV4IGEwYWEy YzU3My4uMzI0MTc0ZGVkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvaTM4Ni90c2MuaAorKysg Yi9pbmNsdWRlL2dydWIvaTM4Ni90c2MuaApAQCAtNTQsNyArNTQsNyBAQCBncnViX2dldF90c2Mg KHZvaWQpCiBzdGF0aWMgX19pbmxpbmUgaW50CiBncnViX2NwdV9pc190c2Nfc3VwcG9ydGVkICh2 b2lkKQogewotI2lmbmRlZiBHUlVCX01BQ0hJTkVfWEVOCisjaWYgIWRlZmluZWQoR1JVQl9NQUNI SU5FX1hFTikgJiYgIWRlZmluZWQoR1JVQl9NQUNISU5FX1hFTl9QVkgpCiAgIGdydWJfdWludDMy X3QgYSxiLGMsZDsKICAgaWYgKCEgZ3J1Yl9jcHVfaXNfY3B1aWRfc3VwcG9ydGVkICgpKQogICAg IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2kzODYveGVuL2h5cGVyY2FsbC5o IGIvaW5jbHVkZS9ncnViL2kzODYveGVuL2h5cGVyY2FsbC5oCmluZGV4IDE5OGVlOTRhZi4uNGU0 YzEyYTQ5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvaTM4Ni94ZW4vaHlwZXJjYWxsLmgKKysr IGIvaW5jbHVkZS9ncnViL2kzODYveGVuL2h5cGVyY2FsbC5oCkBAIC0yNiw3ICsyNiwxMCBAQCBF WFBPUlRfRlVOQyAoZ3J1Yl94ZW5faHlwZXJjYWxsKSAoZ3J1Yl91aW50MzJfdCBjYWxsbm8sIGdy dWJfdWludDMyX3QgYTAsCiAJCQkJICBncnViX3VpbnQzMl90IGExLCBncnViX3VpbnQzMl90IGEy LAogCQkJCSAgZ3J1Yl91aW50MzJfdCBhMywgZ3J1Yl91aW50MzJfdCBhNCwKIAkJCQkgIGdydWJf dWludDMyX3QgYTUpCi1fX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMyksIGNkZWNsKSk7CisjaWZk ZWYgR1JVQl9NQUNISU5FX1hFTgorICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMyksIGNkZWNs KSkKKyNlbmRpZgorICA7CiAKIHN0YXRpYyBpbmxpbmUgaW50CiBncnViX3hlbl9zY2hlZF9vcCAo aW50IGNtZCwgdm9pZCAqYXJnKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ncnViL2tlcm5lbC5oIGIv aW5jbHVkZS9ncnViL2tlcm5lbC5oCmluZGV4IGVjZDg4Y2E3Mi4uMTMzYTM3YzhkIDEwMDY0NAot LS0gYS9pbmNsdWRlL2dydWIva2VybmVsLmgKKysrIGIvaW5jbHVkZS9ncnViL2tlcm5lbC5oCkBA IC03OSw3ICs3OSw5IEBAIHN0cnVjdCBncnViX21vZHVsZV9pbmZvNjQKICNpZiBkZWZpbmVkIChH UlVCX01BQ0hJTkVfUENCSU9TKSB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfQ09SRUJPT1QpIFwK ICAgfHwgZGVmaW5lZCAoR1JVQl9NQUNISU5FX01VTFRJQk9PVCkgfHwgZGVmaW5lZCAoR1JVQl9N QUNISU5FX01JUFNfUUVNVV9NSVBTKSBcCiAgIHx8IGRlZmluZWQgKEdSVUJfTUFDSElORV9NSVBT X0xPT05HU09OKSB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfQVJDKSBcCi0gIHx8IChkZWZpbmVk IChfX3NwYXJjX18pICYmIGRlZmluZWQgKEdSVUJfTUFDSElORV9JRUVFMTI3NSkpIHx8IGRlZmlu ZWQgKEdSVUJfTUFDSElORV9VQk9PVCkgfHwgZGVmaW5lZCAoR1JVQl9NQUNISU5FX1hFTikKKyAg fHwgKGRlZmluZWQgKF9fc3BhcmNfXykgJiYgZGVmaW5lZCAoR1JVQl9NQUNISU5FX0lFRUUxMjc1 KSkgXAorICB8fCBkZWZpbmVkIChHUlVCX01BQ0hJTkVfVUJPT1QpIHx8IGRlZmluZWQgKEdSVUJf TUFDSElORV9YRU4pIFwKKyAgfHwgZGVmaW5lZChHUlVCX01BQ0hJTkVfWEVOX1BWSCkKIC8qIEZJ WE1FOiBzdGFjayBpcyBiZXR3ZWVuIDIgaGVhcCByZWdpb25zLiBNb3ZlIGl0LiAgKi8KICNkZWZp bmUgR1JVQl9LRVJORUxfUFJFTE9BRF9TUEFDRV9SRVVTQUJMRSAxCiAjZW5kaWYKLS0gCjIuMTYu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v bGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=