From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?C=C3=A9dric=20Bosdonnat?= Subject: [PATCH v2 01/35] libxl: add LIBXL_LOGD_* and LOG*D function families. Date: Thu, 17 Nov 2016 18:35:43 +0100 Message-ID: <20161117173617.6697-2-cbosdonnat@suse.com> References: <20161117173617.6697-1-cbosdonnat@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161117173617.6697-1-cbosdonnat@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: Wei Liu , Ian Jackson , Cedric Bosdonnat List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2VkcmljIEJvc2Rvbm5hdCA8Y2Jvc2Rvbm5hdEBzdXNlLmNvbT4KClRoZXNlIGZ1bmN0 aW9ucyBzaG91bGQgYmUgdXNlZCB0byBsb2cgbWVzc2FnZXMgd2hlbiB0aGUgZG9tYWluCmlkIGlz IGtub3duLiBsaWJ4bF9fbG9nIHdpbGwgbm93IHByZXBlbmQgdGhlIGxvZyBtZXNzYWdlIGJ5CiJE b21haW4gJVBSSXUzMjoiIGlmIHRoZSBkb21haW4gaWQgaXMgYSB2YWxpZCBvbmUuCgpUaGlzIGFp bXMgYXQgaGVscGluZyBjb25zdW1lcnMgZmlsdGVyIGxvZ3Mgb24gZG9tYWluIElEcy4KClNpZ25l ZC1vZmYtYnk6IEPDqWRyaWMgQm9zZG9ubmF0IDxjYm9zZG9ubmF0QHN1c2UuY29tPgotLS0KICB2 MjoKICAgICogdXNlIHRoZSBkb21pZCBmcm9tIGFvIG9yIGl0cyBwYXJlbnQgaWYgYW55LgogICAg KiBmaXggc3R5bGUKICAgICogcmVtb3ZlIHVzZWxlc3Mgd3JpdGUgb2YgMCBhdCB0aGUgZW5kIG9m IHNucHJpbnRmIHJlc3VsdC4KLS0tCiB0b29scy9saWJ4bC9saWJ4bF9ldmVudC5jICAgIHwgMTAg KysrKysrKy0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuYyB8IDE2ICsrKysrKysrKyst LS0tLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggfCAzOCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCsp LCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9ldmVudC5j IGIvdG9vbHMvbGlieGwvbGlieGxfZXZlbnQuYwppbmRleCAwMmIzOWU2Li40ODRmOWJhIDEwMDY0 NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9ldmVudC5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2V2ZW50LmMKQEAgLTEzNjIsNyArMTM2Miw3IEBAIHZvaWQgbGlieGxfX2V2ZW50X2Rpc2FzdGVy KGxpYnhsX19lZ2MgKmVnYywgY29uc3QgY2hhciAqbXNnLCBpbnQgZXJybm92YWwsCiB7CiAgICAg RUdDX0dDOwogCi0gICAgbGlieGxfX2xvZyhDVFgsIFhUTF9DUklUSUNBTCwgZXJybm92YWwsIGZp bGUsIGxpbmUsIGZ1bmMsCisgICAgbGlieGxfX2xvZyhDVFgsIFhUTF9DUklUSUNBTCwgZXJybm92 YWwsIGZpbGUsIGxpbmUsIGZ1bmMsIElOVkFMSURfRE9NSUQsCiAgICAgICAgICAgICAgICAiRElT QVNURVIgaW4gZXZlbnQgbG9vcDogJXMlcyVzJXMiLAogICAgICAgICAgICAgICAgbXNnLAogICAg ICAgICAgICAgICAgdHlwZSA/ICIgKHJlbGF0ZXMgdG8gZXZlbnQgdHlwZSAiIDogIiIsCkBAIC0x OTQzLDcgKzE5NDMsNyBAQCBsaWJ4bF9fYW8gKmxpYnhsX19hb19jcmVhdGUobGlieGxfY3R4ICpj dHgsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICBhby0+cG9sbGVyID0gbGlieGxfX3BvbGxlcl9n ZXQoJmFvLT5nYyk7CiAgICAgICAgIGlmICghYW8tPnBvbGxlcikgZ290byBvdXQ7CiAgICAgfQot ICAgIGxpYnhsX19sb2coY3R4LFhUTF9ERUJVRywtMSxmaWxlLGxpbmUsZnVuYywKKyAgICBsaWJ4 bF9fbG9nKGN0eCxYVExfREVCVUcsLTEsZmlsZSxsaW5lLGZ1bmMsZG9taWQsCiAgICAgICAgICAg ICAgICAiYW8gJXA6IGNyZWF0ZTogaG93PSVwIGNhbGxiYWNrPSVwIHBvbGxlcj0lcCIsCiAgICAg ICAgICAgICAgICBhbywgaG93LCBhby0+aG93LmNhbGxiYWNrLCBhby0+cG9sbGVyKTsKIApAQCAt MTk2MiwxMyArMTk2MiwxNyBAQCBpbnQgbGlieGxfX2FvX2lucHJvZ3Jlc3MobGlieGxfX2FvICph bywKIHsKICAgICBBT19HQzsKICAgICBpbnQgcmM7CisgICAgdWludDMyX3QgZG9taWQgPSBhby0+ ZG9taWQ7CiAKICAgICBhc3NlcnQoYW8tPm1hZ2ljID09IExJQlhMX19BT19NQUdJQyk7CiAgICAg YXNzZXJ0KGFvLT5jb25zdHJ1Y3RpbmcpOwogICAgIGFzc2VydChhby0+aW5faW5pdGlhdG9yKTsK ICAgICBhby0+Y29uc3RydWN0aW5nID0gMDsKIAotICAgIGxpYnhsX19sb2coQ1RYLFhUTF9ERUJV RywtMSxmaWxlLGxpbmUsZnVuYywKKyAgICBpZiAoYW8tPm5lc3RlZF9yb290KQorICAgICAgICBk b21pZCA9IGFvLT5uZXN0ZWRfcm9vdC0+ZG9taWQ7CisKKyAgICBsaWJ4bF9fbG9nKENUWCxYVExf REVCVUcsLTEsZmlsZSxsaW5lLGZ1bmMsZG9taWQsCiAgICAgICAgICAgICAgICAiYW8gJXA6IGlu cHJvZ3Jlc3M6IHBvbGxlcj0lcCwgZmxhZ3M9JXMlcyVzJXMiLAogICAgICAgICAgICAgICAgYW8s IGFvLT5wb2xsZXIsCiAgICAgICAgICAgICAgICBhby0+Y29uc3RydWN0aW5nID8gIm8iIDogIiIs CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5jIGIvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuYwppbmRleCA0NDhkZDYxLi5jMjcwYTI0IDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFs LmMKQEAgLTIyLDcgKzIyLDcgQEAgdm9pZCBsaWJ4bF9fYWxsb2NfZmFpbGVkKGxpYnhsX2N0eCAq Y3R4LCBjb25zdCBjaGFyICpmdW5jLAogI2RlZmluZSBNICJsaWJ4bDogRkFUQUwgRVJST1I6IG1l bW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUiCiAjZGVmaW5lIEwgKHNpemUgPyBNICIgKCVzLCAlbHUg eCAlbHUpXG4iIDogTSAiICglcylcbiIpLCBcCiAgICAgICAgICAgZnVuYywgKHVuc2lnbmVkIGxv bmcpbm1lbWIsICh1bnNpZ25lZCBsb25nKXNpemUKLSAgICBsaWJ4bF9fbG9nKGN0eCwgWFRMX0NS SVRJQ0FMLCBFTk9NRU0sIDAsMCwgZnVuYywgTCk7CisgICAgbGlieGxfX2xvZyhjdHgsIFhUTF9D UklUSUNBTCwgRU5PTUVNLCAwLDAsIGZ1bmMsIElOVkFMSURfRE9NSUQsIEwpOwogICAgIGZwcmlu dGYoc3RkZXJyLCBMKTsKICAgICBmZmx1c2goc3RkZXJyKTsKICAgICBfZXhpdCgtMSk7CkBAIC0y MDIsNyArMjAyLDcgQEAgY2hhciAqbGlieGxfX2Rpcm5hbWUobGlieGxfX2djICpnYywgY29uc3Qg Y2hhciAqcykKIAogdm9pZCBsaWJ4bF9fbG9ndihsaWJ4bF9jdHggKmN0eCwgeGVudG9vbGxvZ19s ZXZlbCBtc2dsZXZlbCwgaW50IGVycm5vdmFsLAogICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZp bGUsIGludCBsaW5lLCBjb25zdCBjaGFyICpmdW5jLAotICAgICAgICAgICAgIGNvbnN0IGNoYXIg KmZtdCwgdmFfbGlzdCBhcCkKKyAgICAgICAgICAgICB1aW50MzJfdCBkb21pZCwgY29uc3QgY2hh ciAqZm10LCB2YV9saXN0IGFwKQogewogICAgIC8qIFdBUk5JTkcgdGhpcyBmdW5jdGlvbiBtYXkg bm90IGNhbGwgYW55IGxpYnhsLXByb3ZpZGVkCiAgICAgICogbWVtb3J5IGFsbG9jYXRpb24gZnVu Y3Rpb24sIGFzIHRob3NlIG1heQpAQCAtMjExLDYgKzIxMSw3IEBAIHZvaWQgbGlieGxfX2xvZ3Yo bGlieGxfY3R4ICpjdHgsIHhlbnRvb2xsb2dfbGV2ZWwgbXNnbGV2ZWwsIGludCBlcnJub3ZhbCwK ICAgICBjaGFyICpiYXNlID0gTlVMTDsKICAgICBpbnQgcmMsIGVzYXZlOwogICAgIGNoYXIgZmls ZWxpbmVbMjU2XTsKKyAgICBjaGFyIGRvbWFpblsyNTZdOwogCiAgICAgZXNhdmUgPSBlcnJubzsK IApAQCAtMjIxLDIyICsyMjIsMjUgQEAgdm9pZCBsaWJ4bF9fbG9ndihsaWJ4bF9jdHggKmN0eCwg eGVudG9vbGxvZ19sZXZlbCBtc2dsZXZlbCwgaW50IGVycm5vdmFsLAogICAgIGlmIChmaWxlKSBz bnByaW50ZihmaWxlbGluZSwgc2l6ZW9mKGZpbGVsaW5lKSwgIiVzOiVkIixmaWxlLGxpbmUpOwog ICAgIGZpbGVsaW5lW3NpemVvZihmaWxlbGluZSktMV0gPSAwOwogCisgICAgZG9tYWluWzBdID0g MDsKKyAgICBpZiAoZG9taWQgIT0gSU5WQUxJRF9ET01JRCkKKyAgICAgICAgc25wcmludGYoZG9t YWluLCBzaXplb2YoZG9tYWluKSwgIkRvbWFpbiAlIlBSSXUzMiI6IiwgZG9taWQpOwogIHg6CiAg ICAgeHRsX2xvZyhjdHgtPmxnLCBtc2dsZXZlbCwgZXJybm92YWwsICJsaWJ4bCIsCi0gICAgICAg ICAgICAiJXMlcyVzJXMiICIlcyIsCisgICAgICAgICAgICAiJXMlcyVzJXMlcyIgIiVzIiwKICAg ICAgICAgICAgIGZpbGVsaW5lLCBmdW5jJiZmaWxlPyI6IjoiIiwgZnVuYz9mdW5jOiIiLCBmdW5j fHxmaWxlPyI6ICI6IiIsCi0gICAgICAgICAgICBiYXNlKTsKKyAgICAgICAgICAgIGRvbWFpbiwg YmFzZSk7CiAgICAgaWYgKGJhc2UgIT0gZW5vbWVtKSBmcmVlKGJhc2UpOwogICAgIGVycm5vID0g ZXNhdmU7CiB9CiAKIHZvaWQgbGlieGxfX2xvZyhsaWJ4bF9jdHggKmN0eCwgeGVudG9vbGxvZ19s ZXZlbCBtc2dsZXZlbCwgaW50IGVycm5vdmFsLAogICAgICAgICAgICAgY29uc3QgY2hhciAqZmls ZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZ1bmMsCi0gICAgICAgICAgICBjb25zdCBjaGFyICpm bXQsIC4uLikKKyAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICpmbXQsIC4u LikKIHsKICAgICB2YV9saXN0IGFwOwogICAgIHZhX3N0YXJ0KGFwLCBmbXQpOwotICAgIGxpYnhs X19sb2d2KGN0eCwgbXNnbGV2ZWwsIGVycm5vdmFsLCBmaWxlLCBsaW5lLCBmdW5jLCBmbXQsIGFw KTsKKyAgICBsaWJ4bF9fbG9ndihjdHgsIG1zZ2xldmVsLCBlcnJub3ZhbCwgZmlsZSwgbGluZSwg ZnVuYywgZG9taWQsIGZtdCwgYXApOwogICAgIHZhX2VuZChhcCk7CiB9CiAKZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5h bC5oCmluZGV4IDgzNjZmZWUuLjVmNDY1NzggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaApAQCAtMTUyLDEz ICsxNTIsMjIgQEAKICNkZWZpbmUgTElCWExfX0xPR0dJTkdfRU5BQkxFRAogCiAjaWZkZWYgTElC WExfX0xPR0dJTkdfRU5BQkxFRAotI2RlZmluZSBMSUJYTF9fTE9HKGN0eCwgbG9nbGV2ZWwsIF9m LCBfYS4uLikgICBsaWJ4bF9fbG9nKGN0eCwgbG9nbGV2ZWwsIC0xLCBfX0ZJTEVfXywgX19MSU5F X18sIF9fZnVuY19fLCBfZiwgIyNfYSkKLSNkZWZpbmUgTElCWExfX0xPR19FUlJOTyhjdHgsIGxv Z2xldmVsLCBfZiwgX2EuLi4pICAgbGlieGxfX2xvZyhjdHgsIGxvZ2xldmVsLCBlcnJubywgX19G SUxFX18sIF9fTElORV9fLCBfX2Z1bmNfXywgX2YsICMjX2EpCi0jZGVmaW5lIExJQlhMX19MT0df RVJSTk9WQUwoY3R4LCBsb2dsZXZlbCwgZXJybm92YWwsIF9mLCBfYS4uLikgICBsaWJ4bF9fbG9n KGN0eCwgbG9nbGV2ZWwsIGVycm5vdmFsLCBfX0ZJTEVfXywgX19MSU5FX18sIF9fZnVuY19fLCBf ZiwgIyNfYSkKKyNkZWZpbmUgTElCWExfX0xPRyhjdHgsIGxvZ2xldmVsLCBfZiwgX2EuLi4pICAg bGlieGxfX2xvZyhjdHgsIGxvZ2xldmVsLCAtMSwgX19GSUxFX18sIF9fTElORV9fLCBfX2Z1bmNf XywgSU5WQUxJRF9ET01JRCwgX2YsICMjX2EpCisjZGVmaW5lIExJQlhMX19MT0dfRVJSTk8oY3R4 LCBsb2dsZXZlbCwgX2YsIF9hLi4uKSAgIGxpYnhsX19sb2coY3R4LCBsb2dsZXZlbCwgZXJybm8s IF9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18sIElOVkFMSURfRE9NSUQsIF9mLCAjI19hKQor I2RlZmluZSBMSUJYTF9fTE9HX0VSUk5PVkFMKGN0eCwgbG9nbGV2ZWwsIGVycm5vdmFsLCBfZiwg X2EuLi4pICAgbGlieGxfX2xvZyhjdHgsIGxvZ2xldmVsLCBlcnJub3ZhbCwgX19GSUxFX18sIF9f TElORV9fLCBfX2Z1bmNfXywgSU5WQUxJRF9ET01JRCwgX2YsICMjX2EpCisKKy8qIFNhbWUgbG9n IGZ1bmN0aW9ucyBhcyBhYm92ZSwgYnV0IHdpdGggX2QgYmVpbmcgYSBkb21haW4gaWQuICovCisj ZGVmaW5lIExJQlhMX19MT0dEKGN0eCwgbG9nbGV2ZWwsIF9kLCBfZiwgX2EuLi4pICAgbGlieGxf X2xvZyhjdHgsIGxvZ2xldmVsLCAtMSwgX19GSUxFX18sIF9fTElORV9fLCBfX2Z1bmNfXywgX2Qs IF9mLCAjI19hKQorI2RlZmluZSBMSUJYTF9fTE9HRF9FUlJOTyhjdHgsIGxvZ2xldmVsLCBfZCwg X2YsIF9hLi4uKSAgIGxpYnhsX19sb2coY3R4LCBsb2dsZXZlbCwgZXJybm8sIF9fRklMRV9fLCBf X0xJTkVfXywgX19mdW5jX18sIF9kLCBfZiwgIyNfYSkKKyNkZWZpbmUgTElCWExfX0xPR0RfRVJS Tk9WQUwoY3R4LCBsb2dsZXZlbCwgZXJybm92YWwsIF9kLCBfZiwgX2EuLi4pICAgbGlieGxfX2xv ZyhjdHgsIGxvZ2xldmVsLCBlcnJub3ZhbCwgX19GSUxFX18sIF9fTElORV9fLCBfX2Z1bmNfXywg X2QsIF9mLCAjI19hKQogI2Vsc2UKICNkZWZpbmUgTElCWExfX0xPRyhjdHgsIGxvZ2xldmVsLCBf ZiwgX2EuLi4pCiAjZGVmaW5lIExJQlhMX19MT0dfRVJSTk8oY3R4LCBsb2dsZXZlbCwgX2YsIF9h Li4uKQogI2RlZmluZSBMSUJYTF9fTE9HX0VSUk5PVkFMKGN0eCwgbG9nbGV2ZWwsIGVycm5vdmFs LCBfZiwgX2EuLi4pCisKKyNkZWZpbmUgTElCWExEX19MT0coY3R4LCBsb2dsZXZlbCwgX2QsIF9m LCBfYS4uLikKKyNkZWZpbmUgTElCWExEX19MT0dfRVJSTk8oY3R4LCBsb2dsZXZlbCwgX2QsIF9m LCBfYS4uLikKKyNkZWZpbmUgTElCWExEX19MT0dfRVJSTk9WQUwoY3R4LCBsb2dsZXZlbCwgZXJy bm92YWwsIF9kLCBfZiwgX2EuLi4pCiAjZW5kaWYKICAgLyogYWxsIG9mIHRoZXNlIG1hY3JvcyBw cmVzZXJ2ZSBlcnJubyAoc2F2aW5nIGFuZCByZXN0b3JpbmcpICovCiAKQEAgLTE2OSwxNCArMTc4 LDE2IEBACiBfaGlkZGVuIHZvaWQgbGlieGxfX2xvZ3YobGlieGxfY3R4ICpjdHgsIHhlbnRvb2xs b2dfbGV2ZWwgbXNnbGV2ZWwsIGludCBlcnJub3ZhbCwKICAgICAgICAgICAgICBjb25zdCBjaGFy ICpmaWxlIC8qIG1heSBiZSAwICovLCBpbnQgbGluZSAvKiBpZ25vcmVkIGlmICFmaWxlICovLAog ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZ1bmMgLyogbWF5IGJlIDAgKi8sCisgICAgICAgICAg ICAgdWludDMyX3QgZG9taWQgLyogbWF5IGJlIElOVkFMSURfRE9NSUQgKi8sCiAgICAgICAgICAg ICAgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFsKQotICAgICBfX2F0dHJpYnV0ZV9fKChmb3Jt YXQocHJpbnRmLDcsMCkpKTsKKyAgICAgX19hdHRyaWJ1dGVfXygoZm9ybWF0KHByaW50Ziw4LDAp KSk7CiAKIF9oaWRkZW4gdm9pZCBsaWJ4bF9fbG9nKGxpYnhsX2N0eCAqY3R4LCB4ZW50b29sbG9n X2xldmVsIG1zZ2xldmVsLCBpbnQgZXJybm92YWwsCiAgICAgICAgICAgICBjb25zdCBjaGFyICpm aWxlIC8qIG1heSBiZSAwICovLCBpbnQgbGluZSAvKiBpZ25vcmVkIGlmICFmaWxlICovLAogICAg ICAgICAgICAgY29uc3QgY2hhciAqZnVuYyAvKiBtYXkgYmUgMCAqLywKKyAgICAgICAgICAgIHVp bnQzMl90IGRvbWlkIC8qIG1heSBiZSBJTlZBTElEX0RPTUlEICovLAogICAgICAgICAgICAgY29u c3QgY2hhciAqZm10LCAuLi4pCi0gICAgIF9fYXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsNyw4 KSkpOworICAgICBfX2F0dHJpYnV0ZV9fKChmb3JtYXQocHJpbnRmLDgsOSkpKTsKIAogICAgICAv KiB0aGVzZSBmdW5jdGlvbnMgcHJlc2VydmUgZXJybm8gKHNhdmluZyBhbmQgcmVzdG9yaW5nKSAq LwogCkBAIC0zODc1LDIyICszODg2LDM1IEBAIF9oaWRkZW4gdm9pZCBsaWJ4bF9fcmVtdXNfcmVz dG9yZV9zZXR1cChsaWJ4bF9fZWdjICplZ2MsCiAgKiAgICB2b2lkIExPRyg8eHRsX2xldmVsX3N1 ZmZpeD4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKICAqICAgIHZvaWQgTE9HRSg8eHRsX2xldmVs X3N1ZmZpeD4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKICAqICAgIHZvaWQgTE9HRVYoPHh0bF9s ZXZlbF9zdWZmaXg+LCBpbnQgZXJybm92YWwsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKyAqCisg KiAgICB2b2lkIExPR0QoPHh0bF9sZXZlbF9zdWZmaXg+LCB1aW50MzJfdCBkb21pZCwgY29uc3Qg Y2hhciAqZm10LCAuLi4pOworICogICAgdm9pZCBMT0dFRCg8eHRsX2xldmVsX3N1ZmZpeD4sIHVp bnQzMl90IGRvbWlkLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CisgKiAgICB2b2lkIExPR0VWRCg8 eHRsX2xldmVsX3N1ZmZpeD4sIGludCBlcnJub3ZhbCwgdWludDMyX3QgZG9taWQsIGNvbnN0IGNo YXIgKmZtdCwgLi4uKTsKICAqIFVzZQogICogICAgbGlieGxfX2djICpnYzsKICAqCi0gKiBUcml2 aWFsIGNvbnZlbmllbmNlIHdyYXBwZXJzIGZvciBMSUJYTF9fTE9HLCBMSUJYTF9fTE9HX0VSUk5P IGFuZAotICogTElCWExfX0xPR19FUlJOT1ZBTCwgcmVzcGVjdGl2ZWx5IChhbmQgdGh1cyBmb3Ig bGlieGxfX2xvZykuCisgKiBUcml2aWFsIGNvbnZlbmllbmNlIHdyYXBwZXJzIGZvciBMSUJYTF9f TE9HLCBMSUJYTF9fTE9HX0VSUk5PLAorICogTElCWExfX0xPR19FUlJOT1ZBTCwgTElCWExfX0xP R0QsIExJQlhMX19MT0dEX0VSUk5PIGFuZAorICogTElCWExfX0xPR0RfRVJSTk9WQUwgcmVzcGVj dGl2ZWx5IChhbmQgdGh1cyBmb3IgbGlieGxfX2xvZykuCiAgKgogICogWFRMXzx4dGxfbGV2ZWxf c3VmZml4PiBzaG91bGQgZXhpc3QgYW5kIGJlIGFuIHhlbnRvb2xsb2cuaCBsb2cgbGV2ZWwKICAq IFNvIDx4dGxfbGV2ZWxfc3VmZml4PiBzaG91bGQgYmUgb25lIG9mCiAgKiAgIERFQlVHIFZFUkJP U0UgREVUQUlMIFBST0dSRVNTIElORk8gTk9USUNFIFdBUk4gRVJST1IgRVJST1IgQ1JJVElDQUwK ICAqIE9mIHRoZXNlLCBtb3N0IG9mIGxpYnhsIHVzZXMKICAqICAgREVCVUcgSU5GTyBXQVJOIEVS Uk9SCisgKgorICogVGhlIExPRypEIGZhbWlseSB3aWxsIHByZXByZW5kIHRoZSBsb2cgbWVzc2Fn ZSB3aXRoIGEgc3RyaW5nIGZvcm1hdHRlZAorICogYXMgZm9sbG93czogJ0RvbWFpbiAlUFJJdTMy OicuIFRoaXMgc2hvdWxkIGhlbHAgYmV0dGVyIGF1dG9tYXRpYyBzb3J0aW5nCisgKiBvZiBsb2cg bWVzc2FnZXMgcGVyIGRvbWFpbi4KICAqLwogI2RlZmluZSBMT0cobCxmLCAuLi4pICAgICBMSUJY TF9fTE9HKENUWCxYVExfIyNsLChmKSwjI19fVkFfQVJHU19fKQogI2RlZmluZSBMT0dFKGwsZiwg Li4uKSAgICBMSUJYTF9fTE9HX0VSUk5PKENUWCxYVExfIyNsLChmKSwjI19fVkFfQVJHU19fKQog I2RlZmluZSBMT0dFVihsLGUsZiwgLi4uKSBMSUJYTF9fTE9HX0VSUk5PVkFMKENUWCxYVExfIyNs LChlKSwoZiksIyNfX1ZBX0FSR1NfXykKIAorI2RlZmluZSBMT0dEKGwsZCxmLCAuLi4pICAgICBM SUJYTF9fTE9HRChDVFgsWFRMXyMjbCwoZCksKGYpLCMjX19WQV9BUkdTX18pCisjZGVmaW5lIExP R0VEKGwsZCxmLCAuLi4pICAgIExJQlhMX19MT0dEX0VSUk5PKENUWCxYVExfIyNsLChkKSwoZiks IyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9HRVZEKGwsZSxkLGYsIC4uLikgTElCWExfX0xPR0Rf RVJSTk9WQUwoQ1RYLFhUTF8jI2wsKGUpLChkKSwoZiksIyNfX1ZBX0FSR1NfXykKKwogCiAvKiBM b2NraW5nIGZ1bmN0aW9ucy4gIFNlZSBjb21tZW50IGZvciAibG9jayIgbWVtYmVyIG9mIGxpYnhs X19jdHguICovCiAKLS0gCjIuMTAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=