From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Grytsov Subject: [PATCH v1 1/5] libxl: add PV sound device Date: Wed, 1 Nov 2017 17:04:43 +0200 Message-ID: <1509548687-6071-2-git-send-email-al1img@gmail.com> References: <1509548687-6071-1-git-send-email-al1img@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e9uZd-00054c-Ju for xen-devel@lists.xenproject.org; Wed, 01 Nov 2017 15:04:57 +0000 Received: by mail-lf0-f66.google.com with SMTP id l23so2856738lfk.10 for ; Wed, 01 Nov 2017 08:04:55 -0700 (PDT) In-Reply-To: <1509548687-6071-1-git-send-email-al1img@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, wei.liu2@citrix.com, Oleksandr Grytsov List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgoKQWRk IFBWIHNvdW5kIGRldmljZSBkZXNjcmliZWQgaW4gc25kaWYuaAoKU2lnbmVkLW9mZi1ieTogT2xl a3NhbmRyIEdyeXRzb3YgPG9sZWtzYW5kcl9ncnl0c292QGVwYW0uY29tPgotLS0KIHRvb2xzL2xp YnhsL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMiArLQogdG9vbHMvbGlieGwvbGlieGwu aCAgICAgICAgICAgICAgICAgIHwgIDE0ICsrCiB0b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyAg ICAgICAgICAgfCAgIDEgKwogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCAgICAgICAgIHwg ICAxICsKIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCAgICAgICAgICB8ICA2NCArKysrKysr CiB0b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwgfCAgIDEgKwogdG9vbHMvbGli eGwvbGlieGxfdnNuZC5jICAgICAgICAgICAgIHwgMzMwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDQxMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGlieGwvbGlieGxfdnNuZC5jCgpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvTWFrZWZpbGUgYi90b29scy9saWJ4bC9NYWtlZmlsZQppbmRl eCA0OWIyYzYzLi4yZDUyNDM1IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9NYWtlZmlsZQorKysg Yi90b29scy9saWJ4bC9NYWtlZmlsZQpAQCAtMTM4LDcgKzEzOCw3IEBAIExJQlhMX09CSlMgPSBm bGV4YXJyYXkubyBsaWJ4bC5vIGxpYnhsX2NyZWF0ZS5vIGxpYnhsX2RtLm8gbGlieGxfcGNpLm8g XAogCQkJbGlieGxfZG9tX3N1c3BlbmQubyBsaWJ4bF9kb21fc2F2ZS5vIGxpYnhsX3VzYi5vIFwK IAkJCWxpYnhsX3Z0cG0ubyBsaWJ4bF9uaWMubyBsaWJ4bF9kaXNrLm8gbGlieGxfY29uc29sZS5v IFwKIAkJCWxpYnhsX2NwdXBvb2wubyBsaWJ4bF9tZW0ubyBsaWJ4bF9zY2hlZC5vIGxpYnhsX3Rt ZW0ubyBcCi0JCQlsaWJ4bF85cGZzLm8gbGlieGxfZG9tYWluLm8gbGlieGxfdmRpc3BsLm8gXAor CQkJbGlieGxfOXBmcy5vIGxpYnhsX2RvbWFpbi5vIGxpYnhsX3ZkaXNwbC5vIGxpYnhsX3ZzbmQu byBcCiAgICAgICAgICAgICAgICAgICAgICAgICAkKExJQlhMX09CSlMteSkKIExJQlhMX09CSlMg Kz0gbGlieGxfZ2VuaWQubwogTElCWExfT0JKUyArPSBfbGlieGxfdHlwZXMubyBsaWJ4bF9mbGFz ay5vIF9saWJ4bF90eXBlc19pbnRlcm5hbC5vCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4 bC5oIGIvdG9vbHMvbGlieGwvbGlieGwuaAppbmRleCA3ZDg1M2NhLi43MjAwZDQ5IDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTE5 MTMsNiArMTkxMywyMCBAQCBpbnQgbGlieGxfZGV2aWNlX3ZkaXNwbF9nZXRpbmZvKGxpYnhsX2N0 eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfdmRpc3BsaW5mbyAqdmRpc3BsaW5mbykKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVSU19PTkxZOwogCisvKiBWaXJ0dWFsIHNvdW5kcyAq LworaW50IGxpYnhsX2RldmljZV92c25kX2FkZChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9t aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RldmljZV92c25kICp2c25kLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9faG93 KQorICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9FWFRFUk5BTF9DQUxMRVJTX09OTFk7 CitpbnQgbGlieGxfZGV2aWNlX3ZzbmRfcmVtb3ZlKGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBk b21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZz bmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2FzeW5jb3BfaG93 ICphb19ob3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJQlhMX0VYVEVSTkFMX0NB TExFUlNfT05MWTsKK2ludCBsaWJ4bF9kZXZpY2VfdnNuZF9kZXN0cm95KGxpYnhsX2N0eCAqY3R4 LCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2Rl dmljZV92c25kICp2c25kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGli eGxfYXN5bmNvcF9ob3cgKmFvX2hvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExJ QlhMX0VYVEVSTkFMX0NBTExFUlNfT05MWTsKKwogLyogS2V5Ym9hcmQgKi8KIGludCBsaWJ4bF9k ZXZpY2VfdmtiX2FkZChsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGxpYnhsX2Rldmlj ZV92a2IgKnZrYiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29w X2hvdyAqYW9faG93KQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90 b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwppbmRleCAwZWY1NGQyLi5mODEzMTE0IDEwMDY0NAot LS0gYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9j cmVhdGUuYwpAQCAtMTQ0OSw2ICsxNDQ5LDcgQEAgY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90 eXBlICpkZXZpY2VfdHlwZV90YmxbXSA9IHsKICAgICAmbGlieGxfX3BjaWRldl9kZXZ0eXBlLAog ICAgICZsaWJ4bF9fZHRkZXZfZGV2dHlwZSwKICAgICAmbGlieGxfX3ZkaXNwbF9kZXZ0eXBlLAor ICAgICZsaWJ4bF9fdnNuZF9kZXZ0eXBlLAogICAgIE5VTEwKIH07CiAKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5o CmluZGV4IDhiNzE1MTcuLjZiNDAzZGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaApAQCAtMzU3NSw2ICsz NTc1LDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2VfdHlwZSBsaWJ4bF9fdXNi ZGV2X2RldnR5cGU7CiBleHRlcm4gY29uc3Qgc3RydWN0IGxpYnhsX2RldmljZV90eXBlIGxpYnhs X19wY2lkZXZfZGV2dHlwZTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNlX3R5cGUg bGlieGxfX3ZkaXNwbF9kZXZ0eXBlOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4bF9kZXZpY2Vf dHlwZSBsaWJ4bF9fcDlfZGV2dHlwZTsKK2V4dGVybiBjb25zdCBzdHJ1Y3QgbGlieGxfZGV2aWNl X3R5cGUgbGlieGxfX3ZzbmRfZGV2dHlwZTsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBsaWJ4bF9k ZXZpY2VfdHlwZSAqZGV2aWNlX3R5cGVfdGJsW107CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsX3R5cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAppbmRleCA3NTZl MTIwLi5hYTMwMTk2IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKKysr IGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC03OTMsNiArNzkzLDY5IEBAIGxpYnhs X2RldmljZV92ZGlzcGwgPSBTdHJ1Y3QoImRldmljZV92ZGlzcGwiLCBbCiAgICAgKCJjb25uZWN0 b3JzIiwgQXJyYXkobGlieGxfY29ubmVjdG9yX3BhcmFtLCAibnVtX2Nvbm5lY3RvcnMiKSkKICAg ICBdKQogCitsaWJ4bF92c25kX3BjbV9mb3JtYXQgPSBFbnVtZXJhdGlvbigidnNuZF9wY21fZm9y bWF0IiwgWworICAgICgxLCAgIlM4IiksCisgICAgKDIsICAiVTgiKSwKKyAgICAoMywgICJTMTZf TEUiKSwKKyAgICAoNCwgICJTMTZfQkUiKSwKKyAgICAoNSwgICJVMTZfTEUiKSwKKyAgICAoNiwg ICJVMTZfQkUiKSwKKyAgICAoNywgICJTMjRfTEUiKSwKKyAgICAoOCwgICJTMjRfQkUiKSwKKyAg ICAoOSwgICJVMjRfTEUiKSwKKyAgICAoMTAsICJVMjRfQkUiKSwKKyAgICAoMTEsICJTMzJfTEUi KSwKKyAgICAoMTIsICJTMzJfQkUiKSwKKyAgICAoMTMsICJVMzJfTEUiKSwKKyAgICAoMTQsICJV MzJfQkUiKSwKKyAgICAoMTUsICJGMzJfTEUiKSwKKyAgICAoMTYsICJGMzJfQkUiKSwKKyAgICAo MTcsICJGNjRfTEUiKSwKKyAgICAoMTgsICJGNjRfQkUiKSwKKyAgICAoMTksICJJRUM5NThfU1VC RlJBTUVfTEUiKSwKKyAgICAoMjAsICJJRUM5NThfU1VCRlJBTUVfQkUiKSwKKyAgICAoMjEsICJN VV9MQVciKSwKKyAgICAoMjIsICJBX0xBVyIpLAorICAgICgyMywgIklNQV9BRFBDTSIpLAorICAg ICgyNCwgIk1QRUciKSwKKyAgICAoMjUsICJHU00iKQorICAgIF0pCisKK2xpYnhsX3ZzbmRfcGFy YW1zID0gU3RydWN0KCJ2c25kX3BhcmFtcyIsIFsKKyAgICAoInNhbXBsZV9yYXRlcyIsIEFycmF5 KHVpbnQzMiwgIm51bV9zYW1wbGVfcmF0ZXMiKSksCisgICAgKCJzYW1wbGVfZm9ybWF0cyIsIEFy cmF5KGxpYnhsX3ZzbmRfcGNtX2Zvcm1hdCwgIm51bV9zYW1wbGVfZm9ybWF0cyIpKSwKKyAgICAo ImNoYW5uZWxzX21pbiIsIHVpbnQzMiksCisgICAgKCJjaGFubmVsc19tYXgiLCB1aW50MzIpLAor ICAgICgiYnVmZmVyX3NpemUiLCB1aW50MzIpCisgICAgXSkKKworbGlieGxfdnNuZF9zdHJlYW1f dHlwZSA9IEVudW1lcmF0aW9uKCJ2c25kX3N0cmVhbV90eXBlIiwgWworICAgICgxLCAiUCIpLAor ICAgICgyLCAiQyIpCisgICAgXSkKKworbGlieGxfdnNuZF9zdHJlYW0gPSBTdHJ1Y3QoInZzbmRf c3RyZWFtIiwgWworICAgICgiaWQiLCBzdHJpbmcpLAorICAgICgidHlwZSIsIGxpYnhsX3ZzbmRf c3RyZWFtX3R5cGUpLAorICAgICgicGFyYW1zIiwgbGlieGxfdnNuZF9wYXJhbXMpCisgICAgXSkK KworbGlieGxfdnNuZF9wY20gPSBTdHJ1Y3QoInZzbmRfcGNtIiwgWworICAgICgibmFtZSIsIHN0 cmluZyksCisgICAgKCJwYXJhbXMiLCBsaWJ4bF92c25kX3BhcmFtcyksCisgICAgKCJzdHJlYW1z IiwgQXJyYXkobGlieGxfdnNuZF9zdHJlYW0sICJudW1fdnNuZF9zdHJlYW1zIikpCisgICAgXSkK KworbGlieGxfZGV2aWNlX3ZzbmQgPSBTdHJ1Y3QoImRldmljZV92c25kIiwgWworICAgICgiYmFj a2VuZF9kb21pZCIsIGxpYnhsX2RvbWlkKSwKKyAgICAoImJhY2tlbmRfZG9tbmFtZSIsIHN0cmlu ZyksCisgICAgKCJkZXZpZCIsIGxpYnhsX2RldmlkKSwKKyAgICAoInNob3J0X25hbWUiLCBzdHJp bmcpLAorICAgICgibG9uZ19uYW1lIiwgc3RyaW5nKSwKKyAgICAoInBhcmFtcyIsIGxpYnhsX3Zz bmRfcGFyYW1zKSwKKyAgICAoInBjbXMiLCBBcnJheShsaWJ4bF92c25kX3BjbSwgIm51bV92c25k X3BjbXMiKSkKKyAgICBdKQorCiBsaWJ4bF9kb21haW5fY29uZmlnID0gU3RydWN0KCJkb21haW5f Y29uZmlnIiwgWwogICAgICgiY19pbmZvIiwgbGlieGxfZG9tYWluX2NyZWF0ZV9pbmZvKSwKICAg ICAoImJfaW5mbyIsIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvKSwKQEAgLTgwNyw2ICs4NzAsNyBA QCBsaWJ4bF9kb21haW5fY29uZmlnID0gU3RydWN0KCJkb21haW5fY29uZmlnIiwgWwogICAgICgi dnRwbXMiLCBBcnJheShsaWJ4bF9kZXZpY2VfdnRwbSwgIm51bV92dHBtcyIpKSwKICAgICAoInA5 cyIsIEFycmF5KGxpYnhsX2RldmljZV9wOSwgIm51bV9wOXMiKSksCiAgICAgKCJ2ZGlzcGxzIiwg QXJyYXkobGlieGxfZGV2aWNlX3ZkaXNwbCwgIm51bV92ZGlzcGxzIikpLAorICAgICgidnNuZHMi LCBBcnJheShsaWJ4bF9kZXZpY2VfdnNuZCwgIm51bV92c25kcyIpKSwKICAgICAjIGEgY2hhbm5l bCBtYW5pZmVzdHMgYXMgYSBjb25zb2xlIHdpdGggYSBuYW1lLAogICAgICMgc2VlIGRvY3MvbWlz Yy9jaGFubmVscy50eHQKICAgICAoImNoYW5uZWxzIiwgQXJyYXkobGlieGxfZGV2aWNlX2NoYW5u ZWwsICJudW1fY2hhbm5lbHMiKSksCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBl c19pbnRlcm5hbC5pZGwgYi90b29scy9saWJ4bC9saWJ4bF90eXBlc19pbnRlcm5hbC5pZGwKaW5k ZXggNjczYTZkNS4uNzg5OGRhZSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXNf aW50ZXJuYWwuaWRsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzX2ludGVybmFsLmlkbApA QCAtMjcsNiArMjcsNyBAQCBsaWJ4bF9fZGV2aWNlX2tpbmQgPSBFbnVtZXJhdGlvbigiZGV2aWNl X2tpbmQiLCBbCiAgICAgKDEwLCAiUVVTQiIpLAogICAgICgxMSwgIjlQRlMiKSwKICAgICAoMTIs ICJWRElTUEwiKSwKKyAgICAoMTMsICJWU05EIikKICAgICBdKQogCiBsaWJ4bF9fY29uc29sZV9i YWNrZW5kID0gRW51bWVyYXRpb24oImNvbnNvbGVfYmFja2VuZCIsIFsKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhsL2xpYnhsX3ZzbmQuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3ZzbmQuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWU0YmUzCi0tLSAvZGV2L251bGwKKysrIGIv dG9vbHMvbGlieGwvbGlieGxfdnNuZC5jCkBAIC0wLDAgKzEsMzMwIEBACisvKgorICogQ29weXJp Z2h0IChDKSAyMDE2IEVQQU0gU3lzdGVtcyBJbmMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZAorICogYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lv biAyLjEgb25seS4gd2l0aCB0aGUgc3BlY2lhbAorICogZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVz Y3JpYmVkIGluIGZpbGUgTElDRU5TRS4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyAqLworCisjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKKyNpbmNsdWRlIDx4ZW4vaW8vc25k aWYuaD4KKworc3RhdGljIGludCBsaWJ4bF9fZGV2aWNlX3ZzbmRfc2V0ZGVmYXVsdChsaWJ4bF9f Z2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQgKnZzbmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgaG90cGx1ZykKK3sKKyAgICByZXR1cm4gbGlieGxfX3Jl c29sdmVfZG9taWQoZ2MsIHZzbmQtPmJhY2tlbmRfZG9tbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnZzbmQtPmJhY2tlbmRfZG9taWQpOworfQorCitzdGF0aWMgaW50IGxp YnhsX19kZXZpY2VfZnJvbV92c25kKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RldmljZSAqZGV2aWNl KQoreworICAgZGV2aWNlLT5iYWNrZW5kX2RldmlkICAgPSB2c25kLT5kZXZpZDsKKyAgIGRldmlj ZS0+YmFja2VuZF9kb21pZCAgID0gdnNuZC0+YmFja2VuZF9kb21pZDsKKyAgIGRldmljZS0+YmFj a2VuZF9raW5kICAgID0gTElCWExfX0RFVklDRV9LSU5EX1ZTTkQ7CisgICBkZXZpY2UtPmRldmlk ICAgICAgICAgICA9IHZzbmQtPmRldmlkOworICAgZGV2aWNlLT5kb21pZCAgICAgICAgICAgPSBk b21pZDsKKyAgIGRldmljZS0+a2luZCAgICAgICAgICAgID0gTElCWExfX0RFVklDRV9LSU5EX1ZT TkQ7CisKKyAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxpYnhsX192c25kX2Zyb21feGVu c3RvcmUobGlieGxfX2djICpnYywgY29uc3QgY2hhciAqbGlieGxfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpZCBkZXZpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNuZCkKK3sKKyAg ICBjb25zdCBjaGFyICpiZV9wYXRoOworICAgIGludCByYzsKKworICAgIHZzbmQtPmRldmlkID0g ZGV2aWQ7CisgICAgcmMgPSBsaWJ4bF9feHNfcmVhZF9tYW5kYXRvcnkoZ2MsIFhCVF9OVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJXMvYmFja2VuZCIs IGxpYnhsX3BhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZiZV9wYXRo KTsKKyAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgcmMgPSBsaWJ4bF9fYmFja2VuZHBhdGhf cGFyc2VfZG9taWQoZ2MsIGJlX3BhdGgsICZ2c25kLT5iYWNrZW5kX2RvbWlkKTsKKyAgICBpZiAo cmMpIGdvdG8gb3V0OworCisgICAgcmMgPSAwOworCitvdXQ6CisKKyAgICByZXR1cm4gcmM7Cit9 CisKK3N0YXRpYyB2b2lkIGxpYnhsX191cGRhdGVfY29uZmlnX3ZzbmQobGlieGxfX2djICpnYywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNlX3ZzbmQg KmRzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGV2aWNl X3ZzbmQgKnNyYykKK3sKKyAgICBkc3QtPmRldmlkID0gc3JjLT5kZXZpZDsKK30KKworc3RhdGlj IGludCBsaWJ4bF9kZXZpY2VfdnNuZF9jb21wYXJlKGxpYnhsX2RldmljZV92c25kICpkMSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqZDIp Cit7CisgICAgcmV0dXJuIENPTVBBUkVfREVWSUQoZDEsIGQyKTsKK30KKworc3RhdGljIHZvaWQg bGlieGxfX2RldmljZV92c25kX2FkZChsaWJ4bF9fZWdjICplZ2MsIHVpbnQzMl90IGRvbWlkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfdnNuZCAqdnNu ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2FvX2RldmljZSAq YW9kZXYpCit7CisgICAgbGlieGxfX2RldmljZV9hZGRfYXN5bmMoZWdjLCBkb21pZCwgJmxpYnhs X192c25kX2RldnR5cGUsIHZzbmQsIGFvZGV2KTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBs aWJ4bF9fcmF0ZXNfdG9fc3RyX3ZzbmQoY2hhciAqc3RyLCB1aW50MzJfdCAqc2FtcGxlX3JhdGVz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9z YW1wbGVfcmF0ZXMpCit7CisgICAgdW5zaWduZWQgaW50IGxlbjsKKyAgICBpbnQgaTsKKworICAg IGxlbiA9IDA7CisKKyAgICBpZiAobnVtX3NhbXBsZV9yYXRlcyA9PSAwKSBnb3RvIG91dDsKKwor ICAgIGZvciAoaSA9IDA7IGkgPCBudW1fc2FtcGxlX3JhdGVzIC0gMTsgaSsrKSB7CisgICAgICAg IGlmIChzdHIpIHsKKyAgICAgICAgICAgIGxlbiArPSBzcHJpbnRmKCZzdHJbbGVuXSwgIiV1LCIs IHNhbXBsZV9yYXRlc1tpXSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsZW4gKz0g c25wcmludGYoTlVMTCwgMCwgIiV1LCIsIHNhbXBsZV9yYXRlc1tpXSk7CisgICAgICAgIH0KKyAg ICB9CisKKyAgICBpZiAoc3RyKSB7CisgICAgICAgIGxlbiArPSBzcHJpbnRmKCZzdHJbbGVuXSwg IiV1Iiwgc2FtcGxlX3JhdGVzW2ldKTsKKyAgICB9IGVsc2UgeworICAgICAgICBsZW4gKz0gc25w cmludGYoTlVMTCwgMCwgIiV1Iiwgc2FtcGxlX3JhdGVzW2ldKTsKKyAgICB9CisKK291dDoKKwor ICAgIHJldHVybiBsZW47Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbGlieGxfX2Zvcm1hdHNf dG9fc3RyX3ZzbmQoY2hhciAqc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF92c25kX3BjbV9mb3JtYXQgKnNhbXBsZV9mb3JtYXRzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX3NhbXBs ZV9mb3JtYXRzKQoreworICAgIHVuc2lnbmVkIGludCBsZW47CisgICAgaW50IGk7CisKKyAgICBs ZW4gPSAwOworCisgICAgaWYgKG51bV9zYW1wbGVfZm9ybWF0cyA9PSAwKSBnb3RvIG91dDsKKwor ICAgIGZvciAoaSA9IDA7IGkgPCBudW1fc2FtcGxlX2Zvcm1hdHMgLSAxOyBpKyspIHsKKyAgICAg ICAgaWYgKHN0cikgeworICAgICAgICAgICAgbGVuICs9IHNwcmludGYoJnN0cltsZW5dLCAiJXMs IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3ZzbmRfcGNtX2Zvcm1hdF90b19z dHJpbmcoc2FtcGxlX2Zvcm1hdHNbaV0pKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg IGxlbiArPSBzbnByaW50ZihOVUxMLCAwLCAiJXMsIiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF92c25kX3BjbV9mb3JtYXRfdG9fc3RyaW5nKHNhbXBsZV9mb3JtYXRzW2ldKSk7 CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc3RyKSB7CisgICAgICAgIGxlbiArPSBzcHJp bnRmKCZzdHJbbGVuXSwgIiVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdnNuZF9w Y21fZm9ybWF0X3RvX3N0cmluZyhzYW1wbGVfZm9ybWF0c1tpXSkpOworICAgIH0gZWxzZSB7Cisg ICAgICAgIGxlbiArPSBzbnByaW50ZihOVUxMLCAwLCAiJXMiLAorICAgICAgICAgICAgICAgICAg ICAgICAgbGlieGxfdnNuZF9wY21fZm9ybWF0X3RvX3N0cmluZyhzYW1wbGVfZm9ybWF0c1tpXSkp OworICAgIH0KKworb3V0OgorCisgICAgcmV0dXJuIGxlbjsKK30KKworc3RhdGljIGludCBsaWJ4 bF9fc2V0X3BhcmFtc192c25kKGxpYnhsX19nYyAqZ2MsIGNoYXIgKnBhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdnNuZF9wYXJhbXMgKnBhcmFtcywgZmxleGFy cmF5X3QgKmZyb250KQoreworICAgIGNoYXIgKmJ1ZmZlcjsKKyAgICBpbnQgbGVuOworICAgIGlu dCByYzsKKworICAgIGlmIChwYXJhbXMtPnNhbXBsZV9yYXRlcykgeworICAgICAgICAvKiBjYWxj dWxhdGUgcmVxdWlyZWQgc3RyaW5nIHNpemUgKi8KKyAgICAgICAgbGVuID0gbGlieGxfX3JhdGVz X3RvX3N0cl92c25kKE5VTEwsIHBhcmFtcy0+c2FtcGxlX3JhdGVzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLT5udW1fc2FtcGxlX3JhdGVzKTsKKworICAg ICAgICBpZiAobGVuKSB7CisgICAgICAgICAgICBidWZmZXIgPSBsaWJ4bF9fbWFsbG9jKGdjLCBs ZW4gKyAxKTsKKworICAgICAgICAgICAgbGlieGxfX3JhdGVzX3RvX3N0cl92c25kKGJ1ZmZlciwg cGFyYW1zLT5zYW1wbGVfcmF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFyYW1zLT5udW1fc2FtcGxlX3JhdGVzKTsKKyAgICAgICAgICAgIHJjID0gZmxleGFycmF5 X2FwcGVuZF9wYWlyKGZyb250LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0NTUFJJTlRGKCIlcyJYRU5TTkRfRklFTERfU0FNUExFX1JBVEVTLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgpLCBidWZmZXIpOworICAg ICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChw YXJhbXMtPnNhbXBsZV9mb3JtYXRzKSB7CisgICAgICAgIC8qIGNhbGN1bGF0ZSByZXF1aXJlZCBz dHJpbmcgc2l6ZSAqLworICAgICAgICBsZW4gPSBsaWJ4bF9fZm9ybWF0c190b19zdHJfdnNuZChO VUxMLCBwYXJhbXMtPnNhbXBsZV9mb3JtYXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXJhbXMtPm51bV9zYW1wbGVfZm9ybWF0cyk7CisKKyAgICAgICAgaWYg KGxlbikgeworICAgICAgICAgICAgYnVmZmVyID0gbGlieGxfX21hbGxvYyhnYywgbGVuICsgMSk7 CisKKyAgICAgICAgICAgIGxpYnhsX19mb3JtYXRzX3RvX3N0cl92c25kKGJ1ZmZlciwgcGFyYW1z LT5zYW1wbGVfZm9ybWF0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YXJhbXMtPm51bV9zYW1wbGVfZm9ybWF0cyk7CisgICAgICAgICAgICByYyA9IGZsZXhhcnJheV9h cHBlbmRfcGFpcihmcm9udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdDU1BSSU5URigiJXMiWEVOU05EX0ZJRUxEX1NBTVBMRV9GT1JNQVRTLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgpLCBidWZmZXIpOworICAg ICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChw YXJhbXMtPmNoYW5uZWxzX21pbikgeworICAgICAgICByYyA9IGZsZXhhcnJheV9hcHBlbmRfcGFp cihmcm9udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIl cyJYRU5TTkRfRklFTERfQ0hBTk5FTFNfTUlOLCBwYXRoKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIldSIsIHBhcmFtcy0+Y2hhbm5lbHNfbWluKSk7Cisg ICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgfQorCisgICAgaWYgKHBhcmFtcy0+Y2hhbm5l bHNfbWF4KSB7CisgICAgICAgIHJjID0gZmxleGFycmF5X2FwcGVuZF9wYWlyKGZyb250LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiVzIlhFTlNORF9GSUVM RF9DSEFOTkVMU19NQVgsIHBhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHQ1NQUklOVEYoIiV1IiwgcGFyYW1zLT5jaGFubmVsc19tYXgpKTsKKyAgICAgICAgaWYgKHJj KSBnb3RvIG91dDsKKyAgICB9CisKKyAgICBpZiAocGFyYW1zLT5idWZmZXJfc2l6ZSkgeworICAg ICAgICByYyA9IGZsZXhhcnJheV9hcHBlbmRfcGFpcihmcm9udCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcyJYRU5TTkRfRklFTERfQlVGRkVSX1NJWkUs IHBhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ1NQUklOVEYoIiV1 IiwgcGFyYW1zLT5idWZmZXJfc2l6ZSkpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAg IH0KKworICAgIHJjID0gMDsKKworb3V0OgorCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMg aW50IGxpYnhsX19zZXRfc3RyZWFtc192c25kKGxpYnhsX19nYyAqZ2MsIGNoYXIgKnBhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX3ZzbmRfc3RyZWFtICpzdHJl YW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX3N0cmVhbXMs IGZsZXhhcnJheV90ICpmcm9udCkKK3sKKyAgICBpbnQgaTsKKyAgICBpbnQgcmM7CisKKyAgICBm b3IgKGkgPSAwOyBpIDwgbnVtX3N0cmVhbXM7IGkrKykgeworICAgICAgICByYyA9IGZsZXhhcnJh eV9hcHBlbmRfcGFpcihmcm9udCwKKyAgICAgICAgICAgICAgICAgR0NTUFJJTlRGKCIlcyVkLyJY RU5TTkRfRklFTERfU1RSRUFNX1VOSVFVRV9JRCwgcGF0aCwgaSksCisgICAgICAgICAgICAgICAg IHN0cmVhbXNbaV0uaWQpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworCisgICAgICAgIGNv bnN0IGNoYXIgKnR5cGUgPSBsaWJ4bF92c25kX3N0cmVhbV90eXBlX3RvX3N0cmluZyhzdHJlYW1z W2ldLnR5cGUpOworCisgICAgICAgIGlmICh0eXBlKSB7CisgICAgICAgICAgICByYyA9IGZsZXhh cnJheV9hcHBlbmRfcGFpcihmcm9udCwKKyAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigi JXMlZC8iWEVOU05EX0ZJRUxEX1RZUEUsIHBhdGgsIGkpLAorICAgICAgICAgICAgICAgICAgICAg KGNoYXIgKil0eXBlKTsKKyAgICAgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAgICAgIH0K KworICAgICAgICByYyA9IGxpYnhsX19zZXRfcGFyYW1zX3ZzbmQoZ2MsIEdDU1BSSU5URigiJXMl ZC8iLCBwYXRoLCBpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdHJl YW1zW2ldLnBhcmFtcywgZnJvbnQpOworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0K KworICAgIHJjID0gMDsKKworb3V0OgorCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50 IGxpYnhsX19zZXRfcGNtc192c25kKGxpYnhsX19nYyAqZ2MsIGxpYnhsX3ZzbmRfcGNtICpwY21z LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX3BjbXMsIGZsZXhhcnJh eV90ICpmcm9udCkKK3sKKyAgICBpbnQgaTsKKyAgICBpbnQgcmM7CisKKyAgICBmb3IgKGkgPSAw OyBpIDwgbnVtX3BjbXM7IGkrKykgeworICAgICAgICBpZiAocGNtc1tpXS5uYW1lKSB7CisgICAg ICAgICAgICByYyA9IGZsZXhhcnJheV9hcHBlbmRfcGFpcihmcm9udCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdDU1BSSU5URigiJWQvIlhFTlNORF9GSUVMRF9ERVZJ Q0VfTkFNRSwgaSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY21z W2ldLm5hbWUpOworICAgICAgICAgICAgaWYgKHJjKSBnb3RvIG91dDsKKyAgICAgICAgfQorCisg ICAgICAgIGNoYXIgKnBhdGggPSBHQ1NQUklOVEYoIiVkLyIsIGkpOworCisgICAgICAgIHJjID0g bGlieGxfX3NldF9wYXJhbXNfdnNuZChnYywgcGF0aCwgJnBjbXNbaV0ucGFyYW1zLCBmcm9udCk7 CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICAgICAgcmMgPSBsaWJ4bF9fc2V0X3N0 cmVhbXNfdnNuZChnYywgcGF0aCwgcGNtc1tpXS5zdHJlYW1zLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBjbXNbaV0ubnVtX3ZzbmRfc3RyZWFtcywgZnJvbnQpOworICAg ICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIHJjID0gMDsKKworb3V0OgorCisg ICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGxpYnhsX19zZXRfeGVuc3RvcmVfdnNuZChs aWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RldmljZV92c25kICp2c25kLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmxleGFycmF5X3QgKmJhY2ssIGZsZXhhcnJheV90ICpmcm9udCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhhcnJheV90ICpyb19mcm9udCkK K3sKKyAgICBpbnQgcmM7CisKKyAgICBpZiAodnNuZC0+bG9uZ19uYW1lKSB7CisgICAgICAgIHJj ID0gZmxleGFycmF5X2FwcGVuZF9wYWlyKGZyb250LCBYRU5TTkRfRklFTERfVkNBUkRfTE9OR19O QU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2c25kLT5sb25nX25hbWUp OworICAgICAgICBpZiAocmMpIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmICh2c25kLT5zaG9y dF9uYW1lKSB7CisgICAgICAgIHJjID0gZmxleGFycmF5X2FwcGVuZF9wYWlyKGZyb250LCBYRU5T TkRfRklFTERfVkNBUkRfU0hPUlRfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdnNuZC0+c2hvcnRfbmFtZSk7CisgICAgICAgIGlmIChyYykgZ290byBvdXQ7CisgICAg fQorCisgICAgcmMgPSBsaWJ4bF9fc2V0X3BhcmFtc192c25kKGdjLCAiIiwgJnZzbmQtPnBhcmFt cywgZnJvbnQpOworICAgIGlmIChyYykgZ290byBvdXQ7CisKKyAgICByYyA9IGxpYnhsX19zZXRf cGNtc192c25kKGdjLCB2c25kLT5wY21zLCB2c25kLT5udW1fdnNuZF9wY21zLCBmcm9udCk7Cisg ICAgaWYgKHJjKSBnb3RvIG91dDsKKworICAgIHJjID0gMDsKKworb3V0OgorCisgICAgcmV0dXJu IHJjOworfQorCitMSUJYTF9ERUZJTkVfREVWSUNFX0FERCh2c25kKQorc3RhdGljIExJQlhMX0RF RklORV9ERVZJQ0VTX0FERCh2c25kKQorTElCWExfREVGSU5FX0RFVklDRV9SRU1PVkUodnNuZCkK K3N0YXRpYyBMSUJYTF9ERUZJTkVfVVBEQVRFX0RFVklEKHZzbmQsICJ2c25kIikKKworREVGSU5F X0RFVklDRV9UWVBFX1NUUlVDVCh2c25kLAorICAgIC51cGRhdGVfY29uZmlnID0gKGRldmljZV91 cGRhdGVfY29uZmlnX2ZuX3QpIGxpYnhsX191cGRhdGVfY29uZmlnX3ZzbmQsCisgICAgLmZyb21f eGVuc3RvcmUgPSAoZGV2aWNlX2Zyb21feGVuc3RvcmVfZm5fdCkgbGlieGxfX3ZzbmRfZnJvbV94 ZW5zdG9yZSwKKyAgICAuc2V0X3hlbnN0b3JlX2NvbmZpZyA9IChkZXZpY2Vfc2V0X3hlbnN0b3Jl X2NvbmZpZ19mbl90KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3NldF94ZW5z dG9yZV92c25kCispOworCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICog Yy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICov Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=