From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38667) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bvMCy-0008Ei-Kc for qemu-devel@nongnu.org; Sat, 15 Oct 2016 06:28:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bvMCu-0002Id-Bm for qemu-devel@nongnu.org; Sat, 15 Oct 2016 06:28:51 -0400 Resent-Message-Id: Received: from sender163-mail.zoho.com ([74.201.84.163]:21380) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1bvMCu-0002I5-3K for qemu-devel@nongnu.org; Sat, 15 Oct 2016 06:28:48 -0400 In-Reply-To: <1476526326-32363-1-git-send-email-bd.aviv@gmail.com> Message-ID: <20161015102835.502017.65459@ex-std-node742.prod.rhcloud.com> Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 From: no-reply@patchew.org Date: Sat, 15 Oct 2016 03:28:44 -0700 (PDT) Subject: Re: [Qemu-devel] [PATCH v4 0/3] IOMMU: intel_iommu support map and unmap notifications List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: bd.aviv@gmail.com Cc: famz@redhat.com, qemu-devel@nongnu.org, jan.kiszka@siemens.com, alex.williamson@redhat.com, peterx@redhat.com, mst@redhat.com SGksCgpZb3VyIHNlcmllcyBzZWVtcyB0byBoYXZlIHNvbWUgY29kaW5nIHN0eWxlIHByb2JsZW1z LiBTZWUgb3V0cHV0IGJlbG93IGZvcgptb3JlIGluZm9ybWF0aW9uOgoKVHlwZTogc2VyaWVzCk1l c3NhZ2UtaWQ6IDE0NzY1MjYzMjYtMzIzNjMtMS1naXQtc2VuZC1lbWFpbC1iZC5hdml2QGdtYWls LmNvbQpTdWJqZWN0OiBbUWVtdS1kZXZlbF0gW1BBVENIIHY0IDAvM10gSU9NTVU6IGludGVsX2lv bW11IHN1cHBvcnQgbWFwIGFuZCB1bm1hcCBub3RpZmljYXRpb25zCgo9PT0gVEVTVCBTQ1JJUFQg QkVHSU4gPT09CiMhL2Jpbi9iYXNoCgpCQVNFPWJhc2UKbj0xCnRvdGFsPSQoZ2l0IGxvZyAtLW9u ZWxpbmUgJEJBU0UuLiB8IHdjIC1sKQpmYWlsZWQ9MAoKIyBVc2VmdWwgZ2l0IG9wdGlvbnMKZ2l0 IGNvbmZpZyAtLWxvY2FsIGRpZmYucmVuYW1lbGltaXQgMApnaXQgY29uZmlnIC0tbG9jYWwgZGlm Zi5yZW5hbWVzIFRydWUKCmNvbW1pdHM9IiQoZ2l0IGxvZyAtLWZvcm1hdD0lSCAtLXJldmVyc2Ug JEJBU0UuLikiCmZvciBjIGluICRjb21taXRzOyBkbwogICAgZWNobyAiQ2hlY2tpbmcgUEFUQ0gg JG4vJHRvdGFsOiAkKGdpdCBzaG93IC0tbm8tcGF0Y2ggLS1mb3JtYXQ9JXMgJGMpLi4uIgogICAg aWYgISBnaXQgc2hvdyAkYyAtLWZvcm1hdD1lbWFpbCB8IC4vc2NyaXB0cy9jaGVja3BhdGNoLnBs IC0tbWFpbGJhY2sgLTsgdGhlbgogICAgICAgIGZhaWxlZD0xCiAgICAgICAgZWNobwogICAgZmkK ICAgIG49JCgobisxKSkKZG9uZQoKZXhpdCAkZmFpbGVkCj09PSBURVNUIFNDUklQVCBFTkQgPT09 CgpVcGRhdGluZyAzYzhjZjVhOWMyMWZmODc4MjE2NGQxZGVmN2Y0NGJkODg4NzEzMzg0ClN3aXRj aGVkIHRvIGEgbmV3IGJyYW5jaCAndGVzdCcKMmJmMWFmNSBJT01NVTogZW5hYmxlIGludGVsX2lv bW11IG1hcCBhbmQgdW5tYXAgbm90aWZpZXJzCjg1OWQwNzAgSU9NTVU6IGNoYW5nZSBpb21tdV9v cC0+dHJhbnNsYXRlJ3MgaXNfd3JpdGUgdG8gZmxhZ3MsIGFkZCBzdXBwb3J0IHRvIE5PX0ZBSUwg ZmxhZyBtb2RlCjQ1ZjRiYjIgSU9NTVU6IGFkZCBvcHRpb24gdG8gZW5hYmxlIFZURF9DQVBfQ00g dG8gdklPTU1VIGNhcGlsaXR5IGV4cG9zb2VkIHRvIGd1ZXN0Cgo9PT0gT1VUUFVUIEJFR0lOID09 PQpDaGVja2luZyBQQVRDSCAxLzM6IElPTU1VOiBhZGQgb3B0aW9uIHRvIGVuYWJsZSBWVERfQ0FQ X0NNIHRvIHZJT01NVSBjYXBpbGl0eSBleHBvc29lZCB0byBndWVzdC4uLgpFUlJPUjogc3BhY2Ug cmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIGJyYWNlICd7JwojMzE6IEZJTEU6IGh3L2kzODYvaW50 ZWxfaW9tbXUuYzoyMzg5OgorICAgIGlmIChzLT5jYWNoZV9tb2RlX2VuYWJsZWQpewoKdG90YWw6 IDEgZXJyb3JzLCAwIHdhcm5pbmdzLCAzMiBsaW5lcyBjaGVja2VkCgpZb3VyIHBhdGNoIGhhcyBz dHlsZSBwcm9ibGVtcywgcGxlYXNlIHJldmlldy4gIElmIGFueSBvZiB0aGVzZSBlcnJvcnMKYXJl IGZhbHNlIHBvc2l0aXZlcyByZXBvcnQgdGhlbSB0byB0aGUgbWFpbnRhaW5lciwgc2VlCkNIRUNL UEFUQ0ggaW4gTUFJTlRBSU5FUlMuCgpDaGVja2luZyBQQVRDSCAyLzM6IElPTU1VOiBjaGFuZ2Ug aW9tbXVfb3AtPnRyYW5zbGF0ZSdzIGlzX3dyaXRlIHRvIGZsYWdzLCBhZGQgc3VwcG9ydCB0byBO T19GQUlMIGZsYWcgbW9kZS4uLgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjI6 IEZJTEU6IGV4ZWMuYzo0MzU6CisgICAgICAgIGlvdGxiID0gbXItPmlvbW11X29wcy0+dHJhbnNs YXRlKG1yLCBhZGRyLCBpc193cml0ZSA/IElPTU1VX1dPIDogSU9NTVVfUk8pOwoKV0FSTklORzog bGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzEwMjogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5j OjYzMjoKK3N0YXRpYyBpbnQgdnRkX2dwYV90b19zbHB0ZShWVERDb250ZXh0RW50cnkgKmNlLCB1 aW50NjRfdCBncGEsIElPTU1VQWNjZXNzRmxhZ3MgZmxhZ3MsCgpFUlJPUjogc3dpdGNoIGFuZCBj YXNlIHNob3VsZCBiZSBhdCB0aGUgc2FtZSBpbmRlbnQKIzExMTogRklMRTogaHcvaTM4Ni9pbnRl bF9pb21tdS5jOjY1MjoKKyAgICBzd2l0Y2goZmxhZ3MpeworICAgICAgICBjYXNlIElPTU1VX1dP OgpbLi4uXQorICAgICAgICBjYXNlIElPTU1VX1JPOgpbLi4uXQorICAgICAgICBjYXNlIElPTU1V X1JXOiAvKiBwYXNzdGhyb3cgKi8KKyAgICAgICAgY2FzZSBJT01NVV9OT19GQUlMOgpbLi4uXQor ICAgICAgICBkZWZhdWx0OgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBi cmFjZSAneycKIzExMTogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjY1MjoKKyAgICBzd2l0 Y2goZmxhZ3MpewoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRo ZXNpcyAnKCcKIzExMTogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjY1MjoKKyAgICBzd2l0 Y2goZmxhZ3MpewoKRVJST1I6IGxpbmUgb3ZlciA5MCBjaGFyYWN0ZXJzCiMxMzU6IEZJTEU6IGh3 L2kzODYvaW50ZWxfaW9tbXUuYzo2ODg6CisgICAgICAgICAgICByZXR1cm4gKGZsYWdzID09IElP TU1VX1JXIHx8IGZsYWdzID09IElPTU1VX1dPKSA/IC1WVERfRlJfV1JJVEUgOiAtVlREX0ZSX1JF QUQ7CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMTQ5OiBGSUxFOiBody9pMzg2 L2ludGVsX2lvbW11LmM6ODA5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50OF90IGRldmZuLCBod2FkZHIgYWRkciwgSU9NTVVBY2Nlc3NGbGFncyBmbGFncywKCkVSUk9S OiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gYnJhY2UgJ3snCiMxNzc6IEZJTEU6IGh3 L2kzODYvaW50ZWxfaW9tbXUuYzo4NzI6CisgICAgICAgICAgICBpZiAoZmxhZ3MgIT0gSU9NTVVf Tk9fRkFJTCl7CgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIGJyYWNlICd7 JwojMjAxOiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6ODk2OgorICAgICAgICBpZiAoZmxh Z3MgIT0gSU9NTVVfTk9fRkFJTCl7CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwoj MjAzOiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6ODk4OgorICAgICAgICAgICAgICAgIFZU RF9EUFJJTlRGKEZMT0csICJmYXVsdCBwcm9jZXNzaW5nIGlzIGRpc2FibGVkIGZvciBETUEgcmVx dWVzdHMgIgoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzI1MTogRklMRTogaW5j bHVkZS9leGVjL21lbW9yeS5oOjE3NDoKKyAgICBJT01NVVRMQkVudHJ5ICgqdHJhbnNsYXRlKShN ZW1vcnlSZWdpb24gKmlvbW11LCBod2FkZHIgYWRkciwgSU9NTVVBY2Nlc3NGbGFncyBmbGFncyk7 CgpXQVJOSU5HOiBsaW5lIG92ZXIgODAgY2hhcmFjdGVycwojMjY0OiBGSUxFOiBtZW1vcnkuYzox NTY2OgorICAgICAgICBpb3RsYiA9IG1yLT5pb21tdV9vcHMtPnRyYW5zbGF0ZShtciwgYWRkciwg aXNfd3JpdGUgPyBJT01NVV9XTyA6IElPTU1VX1JPKTsKCnRvdGFsOiA2IGVycm9ycywgNiB3YXJu aW5ncywgMjE0IGxpbmVzIGNoZWNrZWQKCllvdXIgcGF0Y2ggaGFzIHN0eWxlIHByb2JsZW1zLCBw bGVhc2UgcmV2aWV3LiAgSWYgYW55IG9mIHRoZXNlIGVycm9ycwphcmUgZmFsc2UgcG9zaXRpdmVz IHJlcG9ydCB0aGVtIHRvIHRoZSBtYWludGFpbmVyLCBzZWUKQ0hFQ0tQQVRDSCBpbiBNQUlOVEFJ TkVSUy4KCkNoZWNraW5nIFBBVENIIDMvMzogSU9NTVU6IGVuYWJsZSBpbnRlbF9pb21tdSBtYXAg YW5kIHVubWFwIG5vdGlmaWVycy4uLgpFUlJPUjogdHJhaWxpbmcgd2hpdGVzcGFjZQojMzM6IEZJ TEU6IGh3L2kzODYvaW50ZWxfaW9tbXUuYzoxNDg6CitzdGF0aWMgaW50IHZ0ZF9nZXRfZGlkX2Rl dihJbnRlbElPTU1VU3RhdGUgKnMsIHVpbnQ4X3QgYnVzX251bSwgdWludDhfdCBkZXZmbiwgJAoK RVJST1I6ICJmb28gKiBiYXIiIHNob3VsZCBiZSAiZm9vICpiYXIiCiMzNDogRklMRTogaHcvaTM4 Ni9pbnRlbF9pb21tdS5jOjE0OToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90 ICogZG9tYWluX2lkKQoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBicmFj ZSAneycKIzQyOiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6MTU3OgorICAgIGlmIChyZXRf ZnIpewoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzc3OiBGSUxFOiBody9pMzg2L2ludGVs X2lvbW11LmM6MTA3OToKK3N0YXRpYyB2b2lkIHZ0ZF9pb3RsYl9wYWdlX2ludmFsaWRhdGVfbm90 aWZ5KEludGVsSU9NTVVTdGF0ZSAqcywgJAoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UKIzc4 OiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6MTA4MDoKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBkb21haW5faWQsIGh3YWRkciBhZGRyLCAk CgpFUlJPUjogImZvbyAqIGJhciIgc2hvdWxkIGJlICJmb28gKmJhciIKIzgxOiBGSUxFOiBody9p Mzg2L2ludGVsX2lvbW11LmM6MTA4MzoKKyAgICBJbnRlbElPTU1VTm90aWZpZXJOb2RlICogbm9k ZTsKCkVSUk9SOiBzcGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gYnJhY2UgJ3snCiM4Mzog RklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjEwODU6CisgICAgUUxJU1RfRk9SRUFDSChub2Rl LCAmKHMtPm5vdGlmaWVyc19saXN0KSwgbmV4dCl7CgpFUlJPUjogdHJhaWxpbmcgd2hpdGVzcGFj ZQojODQ6IEZJTEU6IGh3L2kzODYvaW50ZWxfaW9tbXUuYzoxMDg2OgorICAgICAgICBWVERBZGRy ZXNzU3BhY2UgKnZ0ZF9hcyA9IG5vZGUtPnZ0ZF9hczsgJAoKRVJST1I6IHRyYWlsaW5nIHdoaXRl c3BhY2UKIzg1OiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6MTA4NzoKKyAgICAgICAgdWlu dDE2X3QgdmZpb19kb21haW5faWQ7ICQKCkVSUk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiM4Njog RklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjEwODg6CisgICAgICAgIGludCByZXQgPSB2dGRf Z2V0X2RpZF9kZXYocywgcGNpX2J1c19udW0odnRkX2FzLT5idXMpLCB2dGRfYXMtPmRldmZuLCAk CgpFUlJPUjogZG8gbm90IHVzZSBDOTkgLy8gY29tbWVudHMKIzg4OiBGSUxFOiBody9pMzg2L2lu dGVsX2lvbW11LmM6MTA5MDoKKyAgICAgICAgLy9pbnQgaT0wOwoKRVJST1I6IHNwYWNlIHJlcXVp cmVkIGJlZm9yZSB0aGUgb3BlbiBicmFjZSAneycKIzg5OiBGSUxFOiBody9pMzg2L2ludGVsX2lv bW11LmM6MTA5MToKKyAgICAgICAgaWYgKCFyZXQgJiYgZG9tYWluX2lkID09IHZmaW9fZG9tYWlu X2lkKXsKCkVSUk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiM5MDogRklMRTogaHcvaTM4Ni9pbnRl bF9pb21tdS5jOjEwOTI6CisgICAgICAgICAgICBJT01NVVRMQkVudHJ5IGVudHJ5OyAkCgpFUlJP UjogdHJhaWxpbmcgd2hpdGVzcGFjZQojOTE6IEZJTEU6IGh3L2kzODYvaW50ZWxfaW9tbXUuYzox MDkzOgorICAgICAgICAgICAgJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3Bl biBicmFjZSAneycKIzkzOiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6MTA5NToKKyAgICAg ICAgICAgIGlmIChub2RlLT5ub3RpZmllcl9mbGFnICYgSU9NTVVfTk9USUZJRVJfVU5NQVApewoK V0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzk0OiBGSUxFOiBody9pMzg2L2ludGVs X2lvbW11LmM6MTA5NjoKKyAgICAgICAgICAgICAgICBWVERfRFBSSU5URihHRU5FUkFMLCAiUmVt b3ZlIGFkZHIgMHglIlBSSXg2NCAiIG1hc2sgJWQiLCBhZGRyLCBhbSk7CgpFUlJPUjogdHJhaWxp bmcgd2hpdGVzcGFjZQojMTAyOiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6MTEwNDoKKyAg ICAgICAkCgpFUlJPUjogc3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIGJyYWNlICd7Jwoj MTA0OiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11LmM6MTEwNjoKKyAgICAgICAgICAgIGlmIChu b2RlLT5ub3RpZmllcl9mbGFnICYgSU9NTVVfTk9USUZJRVJfTUFQKXsKCkVSUk9SOiBzcGFjZXMg cmVxdWlyZWQgYXJvdW5kIHRoYXQgJzw8JyAoY3R4OlZ4VikKIzEwNzogRklMRTogaHcvaTM4Ni9p bnRlbF9pb21tdS5jOjExMDk6CisgICAgICAgICAgICAgICAgd2hpbGUgKGFkZHIgPCBvcmlnaW5h bF9hZGRyICsgKDE8PGFtKSAqIFZURF9QQUdFX1NJWkUpewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9y ZSB0aGUgb3BlbiBicmFjZSAneycKIzEwNzogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjEx MDk6CisgICAgICAgICAgICAgICAgd2hpbGUgKGFkZHIgPCBvcmlnaW5hbF9hZGRyICsgKDE8PGFt KSAqIFZURF9QQUdFX1NJWkUpewoKV0FSTklORzogbGluZSBvdmVyIDgwIGNoYXJhY3RlcnMKIzEx MDogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjExMTI6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbm9kZS0+dnRkX2FzLT5p b21tdSwKCkVSUk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiMxMTE6IEZJTEU6IGh3L2kzODYvaW50 ZWxfaW9tbXUuYzoxMTEzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWRkciwgJAoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3BhY2UK IzExMjogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjExMTQ6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9OT19GQUlM KTsgJAoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBicmFjZSAneycKIzEx MzogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjExMTU6CisgICAgICAgICAgICAgICAgICAg IGlmIChlbnRyeS5wZXJtICE9IElPTU1VX05PTkUpewoKRVJST1I6IHRyYWlsaW5nIHdoaXRlc3Bh Y2UKIzExNDogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjExMTY6CisgICAgICAgICAgICAg ICAgICAgICAgICBhZGRyICs9IGVudHJ5LmFkZHJfbWFzayArIDE7ICQKCkVSUk9SOiAiZm9vICog YmFyIiBzaG91bGQgYmUgImZvbyAqYmFyIgojMTQzOiBGSUxFOiBody9pMzg2L2ludGVsX2lvbW11 LmM6MjA2NjoKKyAgICBJbnRlbElPTU1VTm90aWZpZXJOb2RlICogbm9kZSA9IE5VTEw7CgpFUlJP Ujogc3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIGJyYWNlICd7JwojMTU2OiBGSUxFOiBo dy9pMzg2L2ludGVsX2lvbW11LmM6MjA3ODoKKyAgICBpZiAob2xkID09IElPTU1VX05PVElGSUVS X05PTkUpewoKRVJST1I6IHNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBicmFjZSAneycK IzE2NTogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21tdS5jOjIwODc6CisgICAgUUxJU1RfRk9SRUFD SChub2RlLCAmcy0+bm90aWZpZXJzX2xpc3QsIG5leHQpewoKRVJST1I6IHNwYWNlIHJlcXVpcmVk IGJlZm9yZSB0aGUgb3BlbiBicmFjZSAneycKIzE2NjogRklMRTogaHcvaTM4Ni9pbnRlbF9pb21t dS5jOjIwODg6CisgICAgICAgIGlmIChub2RlLT52dGRfYXMgPT0gdnRkX2FzKXsKCkVSUk9SOiBz cGFjZSByZXF1aXJlZCBiZWZvcmUgdGhlIG9wZW4gYnJhY2UgJ3snCiMxNjc6IEZJTEU6IGh3L2kz ODYvaW50ZWxfaW9tbXUuYzoyMDg5OgorICAgICAgICAgICAgaWYgKG5ldyA9PSBJT01NVV9OT1RJ RklFUl9OT05FKXsKCkVSUk9SOiB0cmFpbGluZyB3aGl0ZXNwYWNlCiMxOTk6IEZJTEU6IGluY2x1 ZGUvaHcvaTM4Ni9pbnRlbF9pb21tdS5oOjY2OgordHlwZWRlZiBzdHJ1Y3QgSW50ZWxJT01NVU5v dGlmaWVyTm9kZSBJbnRlbElPTU1VTm90aWZpZXJOb2RlOyAkCgpFUlJPUjogImZvbyAqIGJhciIg c2hvdWxkIGJlICJmb28gKmJhciIKIzIwODogRklMRTogaW5jbHVkZS9ody9pMzg2L2ludGVsX2lv bW11Lmg6MjUzOgorICAgIFZUREFkZHJlc3NTcGFjZSAqIHZ0ZF9hczsKCkVSUk9SOiBsaW5lIG92 ZXIgOTAgY2hhcmFjdGVycwojMjIwOiBGSUxFOiBpbmNsdWRlL2h3L2kzODYvaW50ZWxfaW9tbXUu aDoyOTU6CisgICAgUUxJU1RfSEVBRCgsIEludGVsSU9NTVVOb3RpZmllck5vZGUpIG5vdGlmaWVy c19saXN0OyAvKiBsaXN0IG9mIHJlZ2lzdGVyZWQgbm90aWZpZXJzICovCgp0b3RhbDogMzEgZXJy b3JzLCAyIHdhcm5pbmdzLCAxODUgbGluZXMgY2hlY2tlZAoKWW91ciBwYXRjaCBoYXMgc3R5bGUg cHJvYmxlbXMsIHBsZWFzZSByZXZpZXcuICBJZiBhbnkgb2YgdGhlc2UgZXJyb3JzCmFyZSBmYWxz ZSBwb3NpdGl2ZXMgcmVwb3J0IHRoZW0gdG8gdGhlIG1haW50YWluZXIsIHNlZQpDSEVDS1BBVENI IGluIE1BSU5UQUlORVJTLgoKPT09IE9VVFBVVCBFTkQgPT09CgpUZXN0IGNvbW1hbmQgZXhpdGVk IHdpdGggY29kZTogMQoKCi0tLQpFbWFpbCBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBQYXRj aGV3IFtodHRwOi8vcGF0Y2hldy5vcmcvXS4KUGxlYXNlIHNlbmQgeW91ciBmZWVkYmFjayB0byBw YXRjaGV3LWRldmVsQGZyZWVsaXN0cy5vcmc=