From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH v3 01/11] xen: sched: make implementing .alloc_pdata optional Date: Fri, 08 Apr 2016 03:23:21 +0200 Message-ID: <20160408012320.10762.68823.stgit@Solace.fritz.box> References: <20160408011204.10762.14241.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aoL8w-0007fv-4A for xen-devel@lists.xenproject.org; Fri, 08 Apr 2016 01:23:26 +0000 Received: by mail-wm0-f68.google.com with SMTP id n3so758341wmn.1 for ; Thu, 07 Apr 2016 18:23:24 -0700 (PDT) In-Reply-To: <20160408011204.10762.14241.stgit@Solace.fritz.box> 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: Juergen Gross , George Dunlap , Robert VanVossen , Josh Whitehead , Meng Xu , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIC5hbGxvY19wZGF0YSBzY2hlZHVsZXIgaG9vayBtdXN0LCBiZWZvcmUgdGhpcyBjaGFuZ2Us CmJlIGltcGxlbWVudGVkIGJ5IGFsbCBzY2hlZHVsZXJzIC0tZXZlbiB0aG9zZSBvbmVzIHRoYXQK ZG9uJ3QgbmVlZCB0byBhbGxvY2F0ZSBhbnl0aGluZy4KCk1ha2UgaXQgcG9zc2libGUgdG8ganVz dCB1c2UgdGhlIFNDSEVEX09QKCksIGxpa2UgZm9yCnRoZSBvdGhlciBob29rcywgYnkgdXNpbmcg RVJSX1BUUigpIGFuZCBJU19FUlIoKSBmb3IKZXJyb3IgcmVwb3J0aW5nLiBUaGlzOgogLSBtYWtl cyBOVUxMIGEgdmFyaWFudCBvZiBzdWNjZXNzOwogLSBhbGxvd3MgZm9yIGVycm9ycyBvdGhlciB0 aGFuIEVOT01FTSB0byBiZSBwcm9wZXJseQogICBjb21tdW5pY2F0ZWQgKGlmIGV2ZXIgbmVjZXNz YXJ5KS4KClRoaXMsIGluIHR1cm4sIG1lYW5zIHRoYXQgc2NoZWR1bGVycyBub3QgbmVlZGluZyB0 bwphbGxvY2F0ZSBhbnkgcGVyLXBDUFUgZGF0YSwgY2FuIGF2b2lkIGltcGxlbWVudGluZyB0aGUK aG9vay4gSW4gZmFjdCwgdGhlIGFydGlmaWNpYWwgaW1wbGVtZW50YXRpb24gb2YKLmFsbG9jX3Bk YXRhIGluIHRoZSBBUklOQzY1MyBpcyByZW1vdmVkIChhbmQsIHdoaWxlIHRoZXJlLApudWtlIC5m cmVlX3BkYXRhIHRvbywgYXMgaXQgaXMgZXF1YWxseSB1c2VsZXNzKS4KClNpZ25lZC1vZmYtYnk6 IERhcmlvIEZhZ2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTog TWVuZyBYdSA8bWVuZ3h1QGNpcy51cGVubi5lZHU+ClJldmlld2VkLWJ5OiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+CkFja2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFw QGV1LmNpdHJpeC5jb20+Ci0tLQpDYzogUm9iZXJ0IFZhblZvc3NlbiA8cm9iZXJ0LnZhbnZvc3Nl bkBkb3JuZXJ3b3Jrcy5jb20+CkNjOiBKb3NoIFdoaXRlaGVhZCA8am9zaC53aGl0ZWhlYWRAZG9y bmVyd29ya3MuY29tPgpDYzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgotLS0KQ2hh bmdlcyBmcm9tIHYxOgogKiBvbmx5IHVwZGF0ZSBzZC0+c2NoZWRfcHJpdiBpZiBhbGxvY19wZGF0 YSBkb2VzIG5vdCByZXR1cm4KICAgSVNfRVJSLCBzbyB0aGF0IHhmcmVlKCkgY2FuIGFsd2F5cyBi ZSBzYWZlbHkgY2FsbGVkIG9uCiAgIHNkLT5zY2hlZF9wcml2IGl0c2VsZiwgYXMgcmVxdWVzdGVk IGR1cmluZyByZXZpZXc7CiAqIHhlbi9lcnIuaCBpbmNsdWRlZCBpbiAuYyBmaWxlcyB0aGF0IGFj dHVhbGx5IG5lZWQgaXQsCiAgIGluc3RlYWQgdGhhbiBpbiBzY2hlZC1pZi5oLgotLS0KIHhlbi9j b21tb24vc2NoZWRfYXJpbmM2NTMuYyB8ICAgMzEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyAgIHwgICAgNSArKystLQogeGVuL2NvbW1v bi9zY2hlZF9jcmVkaXQyLmMgIHwgICAgMiArLQogeGVuL2NvbW1vbi9zY2hlZF9ydC5jICAgICAg IHwgICAgOCArKysrLS0tLQogeGVuL2NvbW1vbi9zY2hlZHVsZS5jICAgICAgIHwgICAyNyArKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygr KSwgNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1 My5jIGIveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jCmluZGV4IDhhMTFhMmYuLmI3OWZjZGYg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYworKysgYi94ZW4vY29tbW9u L3NjaGVkX2FyaW5jNjUzLmMKQEAgLTQ1NiwzNCArNDU2LDYgQEAgYTY1M3NjaGVkX2ZyZWVfdmRh dGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQogfQogCiAvKioKLSAq IFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIHNjaGVkdWxlci1zcGVjaWZpYyBkYXRhIGZvciBhIHBo eXNpY2FsIENQVQotICoKLSAqIFdlIGRvIG5vdCBhY3R1YWxseSBtYWtlIHVzZSBvZiBhbnkgcGVy LUNQVSBkYXRhIGJ1dCB0aGUgaHlwZXJ2aXNvciBleHBlY3RzCi0gKiBhIG5vbi1OVUxMIHJldHVy biB2YWx1ZQotICoKLSAqIEBwYXJhbSBvcHMgICAgICAgUG9pbnRlciB0byB0aGlzIGluc3RhbmNl IG9mIHRoZSBzY2hlZHVsZXIgc3RydWN0dXJlCi0gKgotICogQHJldHVybiAgICAgICAgICBQb2lu dGVyIHRvIHRoZSBhbGxvY2F0ZWQgZGF0YQotICovCi1zdGF0aWMgdm9pZCAqCi1hNjUzc2NoZWRf YWxsb2NfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1KQotewotICAg IC8qIHJldHVybiBhIG5vbi1OVUxMIHZhbHVlIHRvIGtlZXAgc2NoZWR1bGUuYyBoYXBweSAqLwot ICAgIHJldHVybiBTQ0hFRF9QUklWKG9wcyk7Ci19Ci0KLS8qKgotICogVGhpcyBmdW5jdGlvbiBm cmVlcyBzY2hlZHVsZXItc3BlY2lmaWMgZGF0YSBmb3IgYSBwaHlzaWNhbCBDUFUKLSAqCi0gKiBA cGFyYW0gb3BzICAgICAgIFBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1bGVy IHN0cnVjdHVyZQotICovCi1zdGF0aWMgdm9pZAotYTY1M3NjaGVkX2ZyZWVfcGRhdGEoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwY3B1LCBpbnQgY3B1KQotewotICAgIC8qIG5v cCAqLwotfQotCi0vKioKICAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIHNjaGVkdWxlci1zcGVj aWZpYyBkYXRhIGZvciBhIGRvbWFpbgogICoKICAqIFdlIGRvIG5vdCBhY3R1YWxseSBtYWtlIHVz ZSBvZiBhbnkgcGVyLWRvbWFpbiBkYXRhIGJ1dCB0aGUgaHlwZXJ2aXNvcgpAQCAtNzM3LDkgKzcw OSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyIHNjaGVkX2FyaW5jNjUzX2RlZiA9 IHsKICAgICAuZnJlZV92ZGF0YSAgICAgPSBhNjUzc2NoZWRfZnJlZV92ZGF0YSwKICAgICAuYWxs b2NfdmRhdGEgICAgPSBhNjUzc2NoZWRfYWxsb2NfdmRhdGEsCiAKLSAgICAuZnJlZV9wZGF0YSAg ICAgPSBhNjUzc2NoZWRfZnJlZV9wZGF0YSwKLSAgICAuYWxsb2NfcGRhdGEgICAgPSBhNjUzc2No ZWRfYWxsb2NfcGRhdGEsCi0KICAgICAuZnJlZV9kb21kYXRhICAgPSBhNjUzc2NoZWRfZnJlZV9k b21kYXRhLAogICAgIC5hbGxvY19kb21kYXRhICA9IGE2NTNzY2hlZF9hbGxvY19kb21kYXRhLAog CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVuL2NvbW1vbi9zY2hl ZF9jcmVkaXQuYwppbmRleCA0YzQ5MjdmLi42M2E0YTYzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L3NjaGVkX2NyZWRpdC5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKQEAgLTIzLDYg KzIzLDcgQEAKICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNpbmNsdWRlIDx4ZW4va2V5aGFuZGxl ci5oPgogI2luY2x1ZGUgPHhlbi90cmFjZS5oPgorI2luY2x1ZGUgPHhlbi9lcnIuaD4KIAogCiAv KgpAQCAtNTMyLDEyICs1MzMsMTIgQEAgY3NjaGVkX2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICAvKiBBbGxvY2F0ZSBwZXItUENQVSBpbmZvICov CiAgICAgc3BjID0geHphbGxvYyhzdHJ1Y3QgY3NjaGVkX3BjcHUpOwogICAgIGlmICggc3BjID09 IE5VTEwgKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVO T01FTSk7CiAKICAgICBpZiAoICFhbGxvY19jcHVtYXNrX3Zhcigmc3BjLT5iYWxhbmNlX21hc2sp ICkKICAgICB7CiAgICAgICAgIHhmcmVlKHNwYyk7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAg ICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKICAgICB9CiAKICAgICBzcGluX2xvY2tfaXJx c2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2Ny ZWRpdDIuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCmluZGV4IGI4YzhlNDAuLmU5N2Q4 YmUgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCisrKyBiL3hlbi9jb21t b24vc2NoZWRfY3JlZGl0Mi5jCkBAIC0yMDQ3LDcgKzIwNDcsNyBAQCBjc2NoZWQyX2FsbG9jX3Bk YXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICAgICAgcHJpbnRr KCIlczogY3B1ICVkIG5vdCBvbmxpbmUgeWV0LCBkZWZlcnJpbmcgaW5pdGlhbGl6YXRnaW9uXG4i LAogICAgICAgICAgICAgICAgX19mdW5jX18sIGNwdSk7CiAKLSAgICByZXR1cm4gKHZvaWQgKikx OworICAgIHJldHVybiBOVUxMOwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9zY2hlZF9ydC5jIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCmluZGV4IDMyMWIwYTUuLmFl Y2UzMTggMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfcnQuYworKysgYi94ZW4vY29tbW9u L3NjaGVkX3J0LmMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx4ZW4vY3B1Lmg+CiAjaW5j bHVkZSA8eGVuL2tleWhhbmRsZXIuaD4KICNpbmNsdWRlIDx4ZW4vdHJhY2UuaD4KKyNpbmNsdWRl IDx4ZW4vZXJyLmg+CiAjaW5jbHVkZSA8eGVuL2d1ZXN0X2FjY2Vzcy5oPgogCiAvKgpAQCAtNjgx LDcgKzY4Miw3IEBAIHJ0X2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywg aW50IGNwdSkKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKG9sZF9sb2NrLCBmbGFncyk7CiAK ICAgICBpZiAoICFhbGxvY19jcHVtYXNrX3ZhcigmX2NwdW1hc2tfc2NyYXRjaFtjcHVdKSApCi0g ICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAog ICAgIGlmICggcHJ2LT5yZXBsX3RpbWVyID09IE5VTEwgKQogICAgIHsKQEAgLTY4OSwxMyArNjkw LDEyIEBAIHJ0X2FsbG9jX3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNw dSkKICAgICAgICAgcHJ2LT5yZXBsX3RpbWVyID0geHphbGxvYyhzdHJ1Y3QgdGltZXIpOwogCiAg ICAgICAgIGlmICggcHJ2LT5yZXBsX3RpbWVyID09IE5VTEwgKQotICAgICAgICAgICAgcmV0dXJu IE5VTEw7CisgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAogICAgICAgICBp bml0X3RpbWVyKHBydi0+cmVwbF90aW1lciwgcmVwbF90aW1lcl9oYW5kbGVyLCAodm9pZCAqKW9w cywgY3B1KTsKICAgICB9CiAKLSAgICAvKiAxIGluZGljYXRlcyBhbGxvYy4gc3VjY2VlZCBpbiBz Y2hlZHVsZS5jICovCi0gICAgcmV0dXJuICh2b2lkICopMTsKKyAgICByZXR1cm4gTlVMTDsKIH0K IAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWR1bGUuYyBiL3hlbi9j b21tb24vc2NoZWR1bGUuYwppbmRleCBiN2RlZTE2Li4xOTQxNjEzIDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCkBAIC0zNyw2ICsz Nyw3IEBACiAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL3NjaGVkLmg+ CiAjaW5jbHVkZSA8eHNtL3hzbS5oPgorI2luY2x1ZGUgPHhlbi9lcnIuaD4KIAogLyogb3B0X3Nj aGVkOiBzY2hlZHVsZXIgLSBkZWZhdWx0IHRvIGNvbmZpZ3VyZWQgdmFsdWUgKi8KIHN0YXRpYyBj aGFyIF9faW5pdGRhdGEgb3B0X3NjaGVkWzEwXSA9IENPTkZJR19TQ0hFRF9ERUZBVUxUOwpAQCAt MTQ2Miw2ICsxNDYzLDcgQEAgc3RhdGljIHZvaWQgcG9sbF90aW1lcl9mbih2b2lkICpkYXRhKQog c3RhdGljIGludCBjcHVfc2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKIHsKICAgICBzdHJ1 Y3Qgc2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOworICAg IHZvaWQgKnNjaGVkX3ByaXY7CiAKICAgICBwZXJfY3B1KHNjaGVkdWxlciwgY3B1KSA9ICZvcHM7 CiAgICAgc3Bpbl9sb2NrX2luaXQoJnNkLT5fbG9jayk7CkBAIC0xNTAwLDkgKzE1MDIsMTYgQEAg c3RhdGljIGludCBjcHVfc2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAoIGlk bGVfdmNwdVtjcHVdID09IE5VTEwgKQogICAgICAgICByZXR1cm4gLUVOT01FTTsKIAotICAgIGlm ICggKG9wcy5hbGxvY19wZGF0YSAhPSBOVUxMKSAmJgotICAgICAgICAgKChzZC0+c2NoZWRfcHJp diA9IG9wcy5hbGxvY19wZGF0YSgmb3BzLCBjcHUpKSA9PSBOVUxMKSApCi0gICAgICAgIHJldHVy biAtRU5PTUVNOworICAgIC8qCisgICAgICogV2UgZG9uJ3Qgd2FudCB0byByaXNrIGNhbGxpbmcg eGZyZWUoKSBvbiBhbiBzZC0+c2NoZWRfcHJpdgorICAgICAqIChlLmcuLCBpbnNpZGUgZnJlZV9w ZGF0YSwgZnJvbSBjcHVfc2NoZWR1bGVfZG93bigpIGNhbGxlZAorICAgICAqIGR1cmluZyBDUFVf VVBfQ0FOQ0VMTEVEKSB0aGF0IGNvbnRhaW5zIGFuIElTX0VSUiB2YWx1ZS4KKyAgICAgKi8KKyAg ICBzY2hlZF9wcml2ID0gU0NIRURfT1AoJm9wcywgYWxsb2NfcGRhdGEsIGNwdSk7CisgICAgaWYg KCBJU19FUlIoc2NoZWRfcHJpdikgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihzY2hlZF9wcml2 KTsKKworICAgIHNkLT5zY2hlZF9wcml2ID0gc2NoZWRfcHJpdjsKIAogICAgIHJldHVybiAwOwog fQpAQCAtMTUxMiw4ICsxNTIxLDcgQEAgc3RhdGljIHZvaWQgY3B1X3NjaGVkdWxlX2Rvd24odW5z aWduZWQgaW50IGNwdSkKICAgICBzdHJ1Y3Qgc2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShz Y2hlZHVsZV9kYXRhLCBjcHUpOwogICAgIHN0cnVjdCBzY2hlZHVsZXIgKnNjaGVkID0gcGVyX2Nw dShzY2hlZHVsZXIsIGNwdSk7CiAKLSAgICBpZiAoIHNkLT5zY2hlZF9wcml2ICE9IE5VTEwgKQot ICAgICAgICBTQ0hFRF9PUChzY2hlZCwgZnJlZV9wZGF0YSwgc2QtPnNjaGVkX3ByaXYsIGNwdSk7 CisgICAgU0NIRURfT1Aoc2NoZWQsIGZyZWVfcGRhdGEsIHNkLT5zY2hlZF9wcml2LCBjcHUpOwog ICAgIFNDSEVEX09QKHNjaGVkLCBmcmVlX3ZkYXRhLCBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfcHJp dik7CiAKICAgICBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfcHJpdiA9IE5VTEw7CkBAIC0xNjA4LDkg KzE2MTYsOCBAQCB2b2lkIF9faW5pdCBzY2hlZHVsZXJfaW5pdCh2b2lkKQogICAgIGlkbGVfZG9t YWluLT5tYXhfdmNwdXMgPSBucl9jcHVfaWRzOwogICAgIGlmICggYWxsb2NfdmNwdShpZGxlX2Rv bWFpbiwgMCwgMCkgPT0gTlVMTCApCiAgICAgICAgIEJVRygpOwotICAgIGlmICggb3BzLmFsbG9j X3BkYXRhICYmCi0gICAgICAgICAhKHRoaXNfY3B1KHNjaGVkdWxlX2RhdGEpLnNjaGVkX3ByaXYg PSBvcHMuYWxsb2NfcGRhdGEoJm9wcywgMCkpICkKLSAgICAgICAgQlVHKCk7CisgICAgdGhpc19j cHUoc2NoZWR1bGVfZGF0YSkuc2NoZWRfcHJpdiA9IFNDSEVEX09QKCZvcHMsIGFsbG9jX3BkYXRh LCAwKTsKKyAgICBCVUdfT04oSVNfRVJSKHRoaXNfY3B1KHNjaGVkdWxlX2RhdGEpLnNjaGVkX3By aXYpKTsKICAgICBTQ0hFRF9PUCgmb3BzLCBpbml0X3BkYXRhLCB0aGlzX2NwdShzY2hlZHVsZV9k YXRhKS5zY2hlZF9wcml2LCAwKTsKIH0KIApAQCAtMTY1Myw4ICsxNjYwLDggQEAgaW50IHNjaGVk dWxlX2NwdV9zd2l0Y2godW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdXBvb2wgKmMpCiAKICAg ICBpZGxlID0gaWRsZV92Y3B1W2NwdV07CiAgICAgcHByaXYgPSBTQ0hFRF9PUChuZXdfb3BzLCBh bGxvY19wZGF0YSwgY3B1KTsKLSAgICBpZiAoIHBwcml2ID09IE5VTEwgKQotICAgICAgICByZXR1 cm4gLUVOT01FTTsKKyAgICBpZiAoIElTX0VSUihwcHJpdikgKQorICAgICAgICByZXR1cm4gUFRS X0VSUihwcHJpdik7CiAgICAgU0NIRURfT1AobmV3X29wcywgaW5pdF9wZGF0YSwgcHByaXYsIGNw dSk7CiAgICAgdnByaXYgPSBTQ0hFRF9PUChuZXdfb3BzLCBhbGxvY192ZGF0YSwgaWRsZSwgaWRs ZS0+ZG9tYWluLT5zY2hlZF9wcml2KTsKICAgICBpZiAoIHZwcml2ID09IE5VTEwgKQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==