From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chong Li Subject: [PATCH v9 for Xen 4.7 3/4] libxl: enable per-VCPU parameter for RTDS Date: Thu, 31 Mar 2016 23:59:45 -0500 Message-ID: <1459486786-3085-4-git-send-email-lichong659@gmail.com> References: <1459486786-3085-1-git-send-email-lichong659@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1459486786-3085-1-git-send-email-lichong659@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.xen.org Cc: Chong Li , wei.liu2@citrix.com, Sisu Xi , george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, ian.jackson@eu.citrix.com, ian.campbell@eu.citrix.com, Meng Xu , lichong659@gmail.com, dgolomb@seas.upenn.edu List-Id: xen-devel@lists.xenproject.org QWRkIGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zX2dldC9zZXQgYW5kIHNjaGVkX3J0ZHNfdmNwdV9n ZXQvc2V0CmZ1bmN0aW9ucyB0byBzdXBwb3J0IHBlci1WQ1BVIHNldHRpbmdzLgoKU2lnbmVkLW9m Zi1ieTogQ2hvbmcgTGkgPGNob25nLmxpQHd1c3RsLmVkdT4KU2lnbmVkLW9mZi1ieTogTWVuZyBY dSA8bWVuZ3h1QGNpcy51cGVubi5lZHU+ClNpZ25lZC1vZmYtYnk6IFNpc3UgWGkgPHhpc2lzdUBn bWFpbC5jb20+CgpBY2tlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KUmV2aWV3 ZWQtYnk6IERhcmlvIEZhZ2dpb2xpIDxkYXJpby5mYWdnaW9saUBjaXRyaXguY29tPgotLS0KQ2hh bmdlcyBvbiBQQVRDSCB2ODoKMSkgQWRkIGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zX2dldF9hbGwo KSBhbmQKc2NoZWRfcnRkc192Y3B1X2dldF9hbGwoKSB0byBvdXRwdXQgYWxsIHZjcHVzIG9mIGEg ZG9tYWluLgoKQ2hhbmdlcyBvbiBQQVRDSCB2NzoKMSkgRml4IGEgbWlzdGFrZSBpbiBzY2hlZF9y dGRzX2RvbWFpbl9zZXQoKQoKQ2hhbmdlcyBvbiBQQVRDSCB2NjoKMSkgUmVzb2x2ZSBzb21lIGNv ZGluZyBzdHlsZSBpc3N1ZXMKMikgQ2hhbmdlIHNjaGVkX3J0ZHNfdmFsaWRhdGVfcGFyYW1zKCkK MykgU21hbGwgY2hhbmdlcyBmb3Igc2NoZWRfcnRkc192Y3B1c19wYXJhbXNfc2V0KGFsbCkgZnVu Y3Rpb25zCgpDaGFuZ2VzIG9uIFBBVENIIHY1OgoxKSBBZGQgYSBzZXBlcmF0ZSBmdW5jdGlvbiwg c2NoZWRfcnRkc192Y3B1c19wYXJhbXNfc2V0X2FsbCgpLCB0byBzZXQgCnRoZSBwYXJhbWV0ZXJz IG9mIGFsbCB2Y3B1cyBvZiBhIGRvbWFpbi4KCjIpIEFkZCBsaWJ4bF92Y3B1X3NjaGVkX3BhcmFt c19zZXRfYWxsKCkgdG8gaW52b2tlIHRoZSBhYm92ZSBmdW5jdGlvbi4KCjMpIENvZGluZyBzdHls ZSBjaGFuZ2VzLiAoSSBkaWRuJ3QgZmluZCB0aGUgaW5kZW50YXRpb24gcnVsZXMgZm9yIGZ1bmN0 aW9uCmNhbGxzIHdpdGggbG9uZyBwYXJhbWV0ZXJzIChzdGlsbCA0IHNwYWNlcz8pLCBzbyBJIGp1 c3QgaW1pdGF0ZWQgdGhlIAppbmRlbnRhdGlvbiBzdHlsZSBvZiBzb21lIGV4aXN0aW5nIGZ1bmN0 aW9ucykKCgpDaGFuZ2VzIG9uIFBBVENIIHY0OgoxKSBDb2Rpbmcgc3R5bGUgY2hhbmdlcwoKCkNo YW5nZXMgb24gUEFUQ0ggdjM6CjEpIEFkZCBzYW5pdHkgY2hlY2sgb24gdmNwdWlkCgoyKSBBZGQg Y29tbWVudHMgb24gcGVyLWRvbWFpbiBhbmQgcGVyLXZjcHUgZnVuY3Rpb25zIGZvciBsaWJ4bAp1 c2VycwoKCkNoYW5nZXMgb24gUEFUQ0ggdjI6CjEpIE5ldyBkYXRhIHN0cnVjdHVyZSAobGlieGxf dmNwdV9zY2hlZF9wYXJhbXMgYW5kIGxpYnhsX3NjaGVkX3BhcmFtcykgCnRvIGhlbHAgcGVyLVZD UFUgc2V0dGluZ3MuCgoyKSBzY2hlZF9ydGRzX3ZjcHVfZ2V0IG5vdyBjYW4gcmV0dXJuIGEgcmFu ZG9tIHN1YnNldCBvZiB0aGUgcGFyYW1ldGVycyAKb2YgdGhlIFZDUFVzIG9mIGEgc3BlY2lmaWMg ZG9tYWluLgoKCkNDOiA8ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4KQ0M6IDxnZW9yZ2UuZHVu bGFwQGV1LmNpdHJpeC5jb20+CkNDOiA8ZGdvbG9tYkBzZWFzLnVwZW5uLmVkdT4KQ0M6IDxtZW5n eHVAY2lzLnVwZW5uLmVkdT4KQ0M6IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogPGxpY2hvbmc2 NTlAZ21haWwuY29tPgpDQzogPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNDOiA8aWFuLmNh bXBiZWxsQGV1LmNpdHJpeC5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGwuYyAgICAgICAgIHwg Mzg2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiB0b29scy9s aWJ4bC9saWJ4bC5oICAgICAgICAgfCAgNDEgKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVz LmlkbCB8ICAxNCArKwogMyBmaWxlcyBjaGFuZ2VkLCA0MjAgaW5zZXJ0aW9ucygrKSwgMjEgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuYyBiL3Rvb2xzL2xpYnhs L2xpYnhsLmMKaW5kZXggYWM0ZDFmNi4uN2Q2ZWE5MSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGwuYworKysgYi90b29scy9saWJ4bC9saWJ4bC5jCkBAIC01Nzc5LDYgKzU3NzksMjM2IEBA IHN0YXRpYyBpbnQgc2NoZWRfY3JlZGl0Ml9kb21haW5fc2V0KGxpYnhsX19nYyAqZ2MsIHVpbnQz Ml90IGRvbWlkLAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHNjaGVkX3J0ZHNfdmFs aWRhdGVfcGFyYW1zKGxpYnhsX19nYyAqZ2MsIGludCBwZXJpb2QsIGludCBidWRnZXQpCit7Cisg ICAgaW50IHJjOworCisgICAgaWYgKHBlcmlvZCA8IDEpIHsKKyAgICAgICAgTE9HKEVSUk9SLCAi SW52YWxpZCBWQ1BVIHBlcmlvZCBvZiAlZCAoaXQgc2hvdWxkIGJlID49IDEpIiwgcGVyaW9kKTsK KyAgICAgICAgcmMgPSBFUlJPUl9JTlZBTDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisg ICAgaWYgKGJ1ZGdldCA8IDEpIHsKKyAgICAgICAgTE9HKEVSUk9SLCAiSW52YWxpZCBWQ1BVIGJ1 ZGdldCBvZiAlZCAoaXQgc2hvdWxkIGJlID49IDEpIiwgYnVkZ2V0KTsKKyAgICAgICAgcmMgPSBF UlJPUl9JTlZBTDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgaWYgKGJ1ZGdldCA+ IHBlcmlvZCkgeworICAgICAgICBMT0coRVJST1IsICJWQ1BVIGJ1ZGdldCBtdXN0IGJlIHNtYWxs ZXIgdGhhbiBvciBlcXVhbCB0byBwZXJpb2QsICIKKyAgICAgICAgICAgICAgICAgICAiYnV0ICVk ID4gJWQiLCBidWRnZXQsIHBlcmlvZCk7CisgICAgICAgIHJjID0gRVJST1JfSU5WQUw7CisgICAg ICAgIGdvdG8gb3V0OworICAgIH0KKyAgICByYyA9IDA7CitvdXQ6CisgICAgcmV0dXJuIHJjOwor fQorCisvKiBHZXQgdGhlIFJURFMgc2NoZWR1bGluZyBwYXJhbWV0ZXJzIG9mIHZjcHUocykgKi8K K3N0YXRpYyBpbnQgc2NoZWRfcnRkc192Y3B1X2dldChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBk b21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92Y3B1X3NjaGVkX3Bh cmFtcyAqc2NpbmZvKQoreworICAgIHVpbnQzMl90IG51bV92Y3B1czsKKyAgICBpbnQgaSwgciwg cmM7CisgICAgeGNfZG9taW5mb190IGluZm87CisgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRw YXJhbV92Y3B1ICp2Y3B1czsKKworICAgIHIgPSB4Y19kb21haW5fZ2V0aW5mbyhDVFgtPnhjaCwg ZG9taWQsIDEsICZpbmZvKTsKKyAgICBpZiAociA8IDApIHsKKyAgICAgICAgTE9HRShFUlJPUiwg ImdldHRpbmcgZG9tYWluIGluZm8iKTsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAg ICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBpZiAoc2NpbmZvLT5udW1fdmNwdXMgPD0gMCkgewor ICAgICAgICByYyA9IEVSUk9SX0lOVkFMOworICAgICAgICBnb3RvIG91dDsKKyAgICB9IGVsc2Ug eworICAgICAgICBudW1fdmNwdXMgPSBzY2luZm8tPm51bV92Y3B1czsKKyAgICAgICAgR0NORVdf QVJSQVkodmNwdXMsIG51bV92Y3B1cyk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdmNw dXM7IGkrKykgeworICAgICAgICAgICAgaWYgKHNjaW5mby0+dmNwdXNbaV0udmNwdWlkIDwgMCB8 fAorICAgICAgICAgICAgICAgIHNjaW5mby0+dmNwdXNbaV0udmNwdWlkID4gaW5mby5tYXhfdmNw dV9pZCkgeworICAgICAgICAgICAgICAgIExPRyhFUlJPUiwgIlZDUFUgaW5kZXggaXMgb3V0IG9m IHJhbmdlLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsaWQgdmFsdWVzIGFyZSB3 aXRoaW4gcmFuZ2UgZnJvbSAwIHRvICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu Zm8ubWF4X3ZjcHVfaWQpOworICAgICAgICAgICAgICAgIHJjID0gRVJST1JfSU5WQUw7CisgICAg ICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2Y3B1c1tp XS52Y3B1aWQgPSBzY2luZm8tPnZjcHVzW2ldLnZjcHVpZDsKKyAgICAgICAgfQorICAgIH0KKwor ICAgIHIgPSB4Y19zY2hlZF9ydGRzX3ZjcHVfZ2V0KENUWC0+eGNoLCBkb21pZCwgdmNwdXMsIG51 bV92Y3B1cyk7CisgICAgaWYgKHIgIT0gMCkgeworICAgICAgICBMT0dFKEVSUk9SLCAiZ2V0dGlu ZyB2Y3B1IHNjaGVkIHJ0ZHMiKTsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBn b3RvIG91dDsKKyAgICB9CisgICAgc2NpbmZvLT5zY2hlZCA9IExJQlhMX1NDSEVEVUxFUl9SVERT OworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdmNwdXM7IGkrKykgeworICAgICAgICBzY2luZm8t PnZjcHVzW2ldLnBlcmlvZCA9IHZjcHVzW2ldLnUucnRkcy5wZXJpb2Q7CisgICAgICAgIHNjaW5m by0+dmNwdXNbaV0uYnVkZ2V0ID0gdmNwdXNbaV0udS5ydGRzLmJ1ZGdldDsKKyAgICAgICAgc2Np bmZvLT52Y3B1c1tpXS52Y3B1aWQgPSB2Y3B1c1tpXS52Y3B1aWQ7CisgICAgfQorICAgIHJjID0g MDsKK291dDoKKyAgICByZXR1cm4gcmM7Cit9CisKKy8qIEdldCB0aGUgUlREUyBzY2hlZHVsaW5n IHBhcmFtZXRlcnMgb2YgYWxsIHZjcHVzIG9mIGEgZG9tYWluICovCitzdGF0aWMgaW50IHNjaGVk X3J0ZHNfdmNwdV9nZXRfYWxsKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF92Y3B1X3NjaGVkX3BhcmFtcyAqc2Np bmZvKQoreworICAgIHVpbnQzMl90IG51bV92Y3B1czsKKyAgICBpbnQgaSwgciwgcmM7CisgICAg eGNfZG9taW5mb190IGluZm87CisgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1 ICp2Y3B1czsKKworICAgIHIgPSB4Y19kb21haW5fZ2V0aW5mbyhDVFgtPnhjaCwgZG9taWQsIDEs ICZpbmZvKTsKKyAgICBpZiAociA8IDApIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImdldHRpbmcg ZG9tYWluIGluZm8iKTsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBnb3RvIG91 dDsKKyAgICB9CisKKyAgICBpZiAoc2NpbmZvLT5udW1fdmNwdXMgPiAwKSB7CisgICAgICAgIHJj ID0gRVJST1JfSU5WQUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0gZWxzZSB7CisgICAgICAg IG51bV92Y3B1cyA9IGluZm8ubWF4X3ZjcHVfaWQgKyAxOworICAgICAgICBHQ05FV19BUlJBWSh2 Y3B1cywgbnVtX3ZjcHVzKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV92Y3B1czsgaSsr KQorICAgICAgICAgICAgdmNwdXNbaV0udmNwdWlkID0gaTsKKyAgICB9CisKKyAgICByID0geGNf c2NoZWRfcnRkc192Y3B1X2dldChDVFgtPnhjaCwgZG9taWQsIHZjcHVzLCBudW1fdmNwdXMpOwor ICAgIGlmIChyICE9IDApIHsKKyAgICAgICAgTE9HRShFUlJPUiwgImdldHRpbmcgdmNwdSBzY2hl ZCBydGRzIik7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgZ290byBvdXQ7Cisg ICAgfQorICAgIHNjaW5mby0+c2NoZWQgPSBMSUJYTF9TQ0hFRFVMRVJfUlREUzsKKyAgICBzY2lu Zm8tPm51bV92Y3B1cyA9IG51bV92Y3B1czsKKyAgICBzY2luZm8tPnZjcHVzID0gbGlieGxfX2Nh bGxvYyhOT0dDLCBudW1fdmNwdXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mKGxpYnhsX3NjaGVkX3BhcmFtcykpOworCisgICAgZm9yIChpID0gMDsgaSA8IG51bV92 Y3B1czsgaSsrKSB7CisgICAgICAgIHNjaW5mby0+dmNwdXNbaV0ucGVyaW9kID0gdmNwdXNbaV0u dS5ydGRzLnBlcmlvZDsKKyAgICAgICAgc2NpbmZvLT52Y3B1c1tpXS5idWRnZXQgPSB2Y3B1c1tp XS51LnJ0ZHMuYnVkZ2V0OworICAgICAgICBzY2luZm8tPnZjcHVzW2ldLnZjcHVpZCA9IHZjcHVz W2ldLnZjcHVpZDsKKyAgICB9CisgICAgcmMgPSAwOworb3V0OgorICAgIHJldHVybiByYzsKK30K KworLyogU2V0IHRoZSBSVERTIHNjaGVkdWxpbmcgcGFyYW1ldGVycyBvZiB2Y3B1KHMpICovCitz dGF0aWMgaW50IHNjaGVkX3J0ZHNfdmNwdV9zZXQobGlieGxfX2djICpnYywgdWludDMyX3QgZG9t aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfdmNwdV9zY2hl ZF9wYXJhbXMgKnNjaW5mbykKK3sKKyAgICBpbnQgciwgcmM7CisgICAgaW50IGk7CisgICAgdWlu dDE2X3QgbWF4X3ZjcHVpZDsKKyAgICB4Y19kb21pbmZvX3QgaW5mbzsKKyAgICBzdHJ1Y3QgeGVu X2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHUgKnZjcHVzOworCisgICAgciA9IHhjX2RvbWFpbl9nZXRp bmZvKENUWC0+eGNoLCBkb21pZCwgMSwgJmluZm8pOworICAgIGlmIChyIDwgMCkgeworICAgICAg ICBMT0dFKEVSUk9SLCAiZ2V0dGluZyBkb21haW4gaW5mbyIpOworICAgICAgICByYyA9IEVSUk9S X0ZBSUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBtYXhfdmNwdWlkID0gaW5mby5t YXhfdmNwdV9pZDsKKworICAgIGlmIChzY2luZm8tPm51bV92Y3B1cyA8PSAwKSB7CisgICAgICAg IHJjID0gRVJST1JfSU5WQUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBmb3IgKGkg PSAwOyBpIDwgc2NpbmZvLT5udW1fdmNwdXM7IGkrKykgeworICAgICAgICBpZiAoc2NpbmZvLT52 Y3B1c1tpXS52Y3B1aWQgPCAwIHx8CisgICAgICAgICAgICBzY2luZm8tPnZjcHVzW2ldLnZjcHVp ZCA+IG1heF92Y3B1aWQpIHsKKyAgICAgICAgICAgIExPRyhFUlJPUiwgIkludmFsaWQgVkNQVSAl ZDogdmFsaWQgcmFuZ2UgaXMgWzAsICVkXSIsCisgICAgICAgICAgICAgICAgICAgICAgIHNjaW5m by0+dmNwdXNbaV0udmNwdWlkLCBtYXhfdmNwdWlkKTsKKyAgICAgICAgICAgIHJjID0gRVJST1Jf SU5WQUw7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgICAgICByYyA9IHNj aGVkX3J0ZHNfdmFsaWRhdGVfcGFyYW1zKGdjLCBzY2luZm8tPnZjcHVzW2ldLnBlcmlvZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2luZm8tPnZjcHVzW2ldLmJ1 ZGdldCk7CisgICAgICAgIGlmIChyYykgeworICAgICAgICAgICAgcmMgPSBFUlJPUl9JTlZBTDsK KyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisgICAgfQorICAgIEdDTkVXX0FSUkFZ KHZjcHVzLCBzY2luZm8tPm51bV92Y3B1cyk7CisgICAgZm9yIChpID0gMDsgaSA8IHNjaW5mby0+ bnVtX3ZjcHVzOyBpKyspIHsKKyAgICAgICAgdmNwdXNbaV0udmNwdWlkID0gc2NpbmZvLT52Y3B1 c1tpXS52Y3B1aWQ7CisgICAgICAgIHZjcHVzW2ldLnUucnRkcy5wZXJpb2QgPSBzY2luZm8tPnZj cHVzW2ldLnBlcmlvZDsKKyAgICAgICAgdmNwdXNbaV0udS5ydGRzLmJ1ZGdldCA9IHNjaW5mby0+ dmNwdXNbaV0uYnVkZ2V0OworICAgIH0KKworICAgIHIgPSB4Y19zY2hlZF9ydGRzX3ZjcHVfc2V0 KENUWC0+eGNoLCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Y3B1cywg c2NpbmZvLT5udW1fdmNwdXMpOworICAgIGlmIChyICE9IDApIHsKKyAgICAgICAgTE9HRShFUlJP UiwgInNldHRpbmcgdmNwdSBzY2hlZCBydGRzIik7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsK KyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIHJjID0gMDsKK291dDoKKyAgICByZXR1cm4g cmM7Cit9CisKKy8qIFNldCB0aGUgUlREUyBzY2hlZHVsaW5nIHBhcmFtZXRlcnMgb2YgYWxsIHZj cHVzIG9mIGEgZG9tYWluICovCitzdGF0aWMgaW50IHNjaGVkX3J0ZHNfdmNwdV9zZXRfYWxsKGxp YnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBsaWJ4bF92Y3B1X3NjaGVkX3BhcmFtcyAqc2NpbmZvKQoreworICAgIGlu dCByLCByYzsKKyAgICBpbnQgaTsKKyAgICB1aW50MTZfdCBtYXhfdmNwdWlkOworICAgIHhjX2Rv bWluZm9fdCBpbmZvOworICAgIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNwdSAqdmNw dXM7CisgICAgdWludDMyX3QgbnVtX3ZjcHVzOworCisgICAgciA9IHhjX2RvbWFpbl9nZXRpbmZv KENUWC0+eGNoLCBkb21pZCwgMSwgJmluZm8pOworICAgIGlmIChyIDwgMCkgeworICAgICAgICBM T0dFKEVSUk9SLCAiZ2V0dGluZyBkb21haW4gaW5mbyIpOworICAgICAgICByYyA9IEVSUk9SX0ZB SUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBtYXhfdmNwdWlkID0gaW5mby5tYXhf dmNwdV9pZDsKKworICAgIGlmIChzY2luZm8tPm51bV92Y3B1cyAhPSAxKSB7CisgICAgICAgIHJj ID0gRVJST1JfSU5WQUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBpZiAoc2NoZWRf cnRkc192YWxpZGF0ZV9wYXJhbXMoZ2MsIHNjaW5mby0+dmNwdXNbMF0ucGVyaW9kLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2luZm8tPnZjcHVzWzBdLmJ1ZGdldCkpIHsK KyAgICAgICAgcmMgPSBFUlJPUl9JTlZBTDsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAg IG51bV92Y3B1cyA9IG1heF92Y3B1aWQgKyAxOworICAgIEdDTkVXX0FSUkFZKHZjcHVzLCBudW1f dmNwdXMpOworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fdmNwdXM7IGkrKykgeworICAgICAgICB2 Y3B1c1tpXS52Y3B1aWQgPSBpOworICAgICAgICB2Y3B1c1tpXS51LnJ0ZHMucGVyaW9kID0gc2Np bmZvLT52Y3B1c1swXS5wZXJpb2Q7CisgICAgICAgIHZjcHVzW2ldLnUucnRkcy5idWRnZXQgPSBz Y2luZm8tPnZjcHVzWzBdLmJ1ZGdldDsKKyAgICB9CisKKyAgICByID0geGNfc2NoZWRfcnRkc192 Y3B1X3NldChDVFgtPnhjaCwgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmNwdXMsIG51bV92Y3B1cyk7CisgICAgaWYgKHIgIT0gMCkgeworICAgICAgICBMT0dFKEVSUk9S LCAic2V0dGluZyB2Y3B1IHNjaGVkIHJ0ZHMiKTsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwor ICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgcmMgPSAwOworb3V0OgorICAgIHJldHVybiBy YzsKK30KKwogc3RhdGljIGludCBzY2hlZF9ydGRzX2RvbWFpbl9nZXQobGlieGxfX2djICpnYywg dWludDMyX3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9t YWluX3NjaGVkX3BhcmFtcyAqc2NpbmZvKQogewpAQCAtNTgxMSwzMCArNjA0MSwxMiBAQCBzdGF0 aWMgaW50IHNjaGVkX3J0ZHNfZG9tYWluX3NldChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwKICAgICAgICAgTE9HRShFUlJPUiwgImdldHRpbmcgZG9tYWluIHNjaGVkIHJ0ZHMiKTsKICAg ICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiAgICAgfQotCi0gICAgaWYgKHNjaW5mby0+cGVyaW9k ICE9IExJQlhMX0RPTUFJTl9TQ0hFRF9QQVJBTV9QRVJJT0RfREVGQVVMVCkgewotICAgICAgICBp ZiAoc2NpbmZvLT5wZXJpb2QgPCAxKSB7Ci0gICAgICAgICAgICBMT0coRVJST1IsICJWQ1BVIHBl cmlvZCBpcyBub3Qgc2V0IG9yIG91dCBvZiByYW5nZSwgIgotICAgICAgICAgICAgICAgICAgICAg ICAidmFsaWQgdmFsdWVzIGFyZSBsYXJnZXIgdGhhbiAxIik7Ci0gICAgICAgICAgICByZXR1cm4g RVJST1JfSU5WQUw7Ci0gICAgICAgIH0KKyAgICBpZiAoc2NpbmZvLT5wZXJpb2QgIT0gTElCWExf RE9NQUlOX1NDSEVEX1BBUkFNX1BFUklPRF9ERUZBVUxUKQogICAgICAgICBzZG9tLnBlcmlvZCA9 IHNjaW5mby0+cGVyaW9kOwotICAgIH0KLQotICAgIGlmIChzY2luZm8tPmJ1ZGdldCAhPSBMSUJY TF9ET01BSU5fU0NIRURfUEFSQU1fQlVER0VUX0RFRkFVTFQpIHsKLSAgICAgICAgaWYgKHNjaW5m by0+YnVkZ2V0IDwgMSkgewotICAgICAgICAgICAgTE9HKEVSUk9SLCAiVkNQVSBidWRnZXQgaXMg bm90IHNldCBvciBvdXQgb2YgcmFuZ2UsICIKLSAgICAgICAgICAgICAgICAgICAgICAgInZhbGlk IHZhbHVlcyBhcmUgbGFyZ2VyIHRoYW4gMSIpOwotICAgICAgICAgICAgcmV0dXJuIEVSUk9SX0lO VkFMOwotICAgICAgICB9CisgICAgaWYgKHNjaW5mby0+YnVkZ2V0ICE9IExJQlhMX0RPTUFJTl9T Q0hFRF9QQVJBTV9CVURHRVRfREVGQVVMVCkKICAgICAgICAgc2RvbS5idWRnZXQgPSBzY2luZm8t PmJ1ZGdldDsKLSAgICB9Ci0KLSAgICBpZiAoc2RvbS5idWRnZXQgPiBzZG9tLnBlcmlvZCkgewot ICAgICAgICBMT0coRVJST1IsICJWQ1BVIGJ1ZGdldCBpcyBsYXJnZXIgdGhhbiBWQ1BVIHBlcmlv ZCwgIgotICAgICAgICAgICAgICAgICAgICJWQ1BVIGJ1ZGdldCBzaG91bGQgYmUgbm8gbGFyZ2Vy IHRoYW4gVkNQVSBwZXJpb2QiKTsKKyAgICBpZiAoc2NoZWRfcnRkc192YWxpZGF0ZV9wYXJhbXMo Z2MsIHNkb20ucGVyaW9kLCBzZG9tLmJ1ZGdldCkpCiAgICAgICAgIHJldHVybiBFUlJPUl9JTlZB TDsKLSAgICB9CiAKICAgICByYyA9IHhjX3NjaGVkX3J0ZHNfZG9tYWluX3NldChDVFgtPnhjaCwg ZG9taWQsICZzZG9tKTsKICAgICBpZiAocmMgPCAwKSB7CkBAIC01ODgyLDYgKzYwOTQsNzQgQEAg aW50IGxpYnhsX2RvbWFpbl9zY2hlZF9wYXJhbXNfc2V0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJf dCBkb21pZCwKICAgICByZXR1cm4gcmV0OwogfQogCitpbnQgbGlieGxfdmNwdV9zY2hlZF9wYXJh bXNfc2V0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgbGlieGxfdmNwdV9zY2hlZF9wYXJhbXMgKnNjaW5mbykKK3sK KyAgICBHQ19JTklUKGN0eCk7CisgICAgbGlieGxfc2NoZWR1bGVyIHNjaGVkID0gc2NpbmZvLT5z Y2hlZDsKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoc2NoZWQgPT0gTElCWExfU0NIRURVTEVSX1VO S05PV04pCisgICAgICAgIHNjaGVkID0gbGlieGxfX2RvbWFpbl9zY2hlZHVsZXIoZ2MsIGRvbWlk KTsKKworICAgIHN3aXRjaCAoc2NoZWQpIHsKKyAgICBjYXNlIExJQlhMX1NDSEVEVUxFUl9TRURG OgorICAgICAgICBMT0coRVJST1IsICJTRURGIHNjaGVkdWxlciBubyBsb25nZXIgYXZhaWxhYmxl Iik7CisgICAgICAgIHJjID0gRVJST1JfRkVBVFVSRV9SRU1PVkVEOworICAgICAgICBicmVhazsK KyAgICBjYXNlIExJQlhMX1NDSEVEVUxFUl9DUkVESVQ6CisgICAgY2FzZSBMSUJYTF9TQ0hFRFVM RVJfQ1JFRElUMjoKKyAgICBjYXNlIExJQlhMX1NDSEVEVUxFUl9BUklOQzY1MzoKKyAgICAgICAg TE9HKEVSUk9SLCAicGVyLVZDUFUgcGFyYW1ldGVyIHNldHRpbmcgbm90IHN1cHBvcnRlZCBmb3Ig dGhpcyBzY2hlZHVsZXIiKTsKKyAgICAgICAgcmMgPSBFUlJPUl9JTlZBTDsKKyAgICAgICAgYnJl YWs7CisgICAgY2FzZSBMSUJYTF9TQ0hFRFVMRVJfUlREUzoKKyAgICAgICAgcmMgPSBzY2hlZF9y dGRzX3ZjcHVfc2V0KGdjLCBkb21pZCwgc2NpbmZvKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVm YXVsdDoKKyAgICAgICAgTE9HKEVSUk9SLCAiVW5rbm93biBzY2hlZHVsZXIiKTsKKyAgICAgICAg cmMgPSBFUlJPUl9JTlZBTDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgR0NfRlJFRTsK KyAgICByZXR1cm4gcmM7Cit9CisKK2ludCBsaWJ4bF92Y3B1X3NjaGVkX3BhcmFtc19zZXRfYWxs KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zICpzY2luZm8pCit7Cisg ICAgR0NfSU5JVChjdHgpOworICAgIGxpYnhsX3NjaGVkdWxlciBzY2hlZCA9IHNjaW5mby0+c2No ZWQ7CisgICAgaW50IHJjOworCisgICAgaWYgKHNjaGVkID09IExJQlhMX1NDSEVEVUxFUl9VTktO T1dOKQorICAgICAgICBzY2hlZCA9IGxpYnhsX19kb21haW5fc2NoZWR1bGVyKGdjLCBkb21pZCk7 CisKKyAgICBzd2l0Y2ggKHNjaGVkKSB7CisgICAgY2FzZSBMSUJYTF9TQ0hFRFVMRVJfU0VERjoK KyAgICAgICAgTE9HKEVSUk9SLCAiU0VERiBzY2hlZHVsZXIgbm8gbG9uZ2VyIGF2YWlsYWJsZSIp OworICAgICAgICByYyA9IEVSUk9SX0ZFQVRVUkVfUkVNT1ZFRDsKKyAgICAgICAgYnJlYWs7Cisg ICAgY2FzZSBMSUJYTF9TQ0hFRFVMRVJfQ1JFRElUOgorICAgIGNhc2UgTElCWExfU0NIRURVTEVS X0NSRURJVDI6CisgICAgY2FzZSBMSUJYTF9TQ0hFRFVMRVJfQVJJTkM2NTM6CisgICAgICAgIExP RyhFUlJPUiwgInBlci1WQ1BVIHBhcmFtZXRlciBzZXR0aW5nIG5vdCBzdXBwb3J0ZWQgZm9yIHRo aXMgc2NoZWR1bGVyIik7CisgICAgICAgIHJjID0gRVJST1JfSU5WQUw7CisgICAgICAgIGJyZWFr OworICAgIGNhc2UgTElCWExfU0NIRURVTEVSX1JURFM6CisgICAgICAgIHJjID0gc2NoZWRfcnRk c192Y3B1X3NldF9hbGwoZ2MsIGRvbWlkLCBzY2luZm8pOworICAgICAgICBicmVhazsKKyAgICBk ZWZhdWx0OgorICAgICAgICBMT0coRVJST1IsICJVbmtub3duIHNjaGVkdWxlciIpOworICAgICAg ICByYyA9IEVSUk9SX0lOVkFMOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBHQ19GUkVF OworICAgIHJldHVybiByYzsKK30KKwogaW50IGxpYnhsX2RvbWFpbl9zY2hlZF9wYXJhbXNfZ2V0 KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9kb21haW5fc2NoZWRfcGFyYW1zICpzY2luZm8pCiB7CkBAIC01OTE2 LDYgKzYxOTYsNzAgQEAgaW50IGxpYnhsX2RvbWFpbl9zY2hlZF9wYXJhbXNfZ2V0KGxpYnhsX2N0 eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKICAgICByZXR1cm4gcmV0OwogfQogCitpbnQgbGlieGxf dmNwdV9zY2hlZF9wYXJhbXNfZ2V0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfdmNwdV9zY2hlZF9wYXJhbXMgKnNj aW5mbykKK3sKKyAgICBHQ19JTklUKGN0eCk7CisgICAgaW50IHJjOworCisgICAgc2NpbmZvLT5z Y2hlZCA9IGxpYnhsX19kb21haW5fc2NoZWR1bGVyKGdjLCBkb21pZCk7CisKKyAgICBzd2l0Y2gg KHNjaW5mby0+c2NoZWQpIHsKKyAgICBjYXNlIExJQlhMX1NDSEVEVUxFUl9TRURGOgorICAgICAg ICBMT0coRVJST1IsICJTRURGIHNjaGVkdWxlciBpcyBubyBsb25nZXIgYXZhaWxhYmxlIik7Cisg ICAgICAgIHJjID0gRVJST1JfRkVBVFVSRV9SRU1PVkVEOworICAgICAgICBicmVhazsKKyAgICBj YXNlIExJQlhMX1NDSEVEVUxFUl9DUkVESVQ6CisgICAgY2FzZSBMSUJYTF9TQ0hFRFVMRVJfQ1JF RElUMjoKKyAgICBjYXNlIExJQlhMX1NDSEVEVUxFUl9BUklOQzY1MzoKKyAgICAgICAgTE9HKEVS Uk9SLCAicGVyLVZDUFUgcGFyYW1ldGVyIGdldHRpbmcgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBz Y2hlZHVsZXIiKTsKKyAgICAgICAgcmMgPSBFUlJPUl9JTlZBTDsKKyAgICAgICAgYnJlYWs7Cisg ICAgY2FzZSBMSUJYTF9TQ0hFRFVMRVJfUlREUzoKKyAgICAgICAgcmMgPSBzY2hlZF9ydGRzX3Zj cHVfZ2V0KGdjLCBkb21pZCwgc2NpbmZvKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoK KyAgICAgICAgTE9HKEVSUk9SLCAiVW5rbm93biBzY2hlZHVsZXIiKTsKKyAgICAgICAgcmMgPSBF UlJPUl9JTlZBTDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgR0NfRlJFRTsKKyAgICBy ZXR1cm4gcmM7Cit9CisKK2ludCBsaWJ4bF92Y3B1X3NjaGVkX3BhcmFtc19nZXRfYWxsKGxpYnhs X2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zICpzY2luZm8pCit7CisgICAgR0NfSU5JVChj dHgpOworICAgIGludCByYzsKKworICAgIHNjaW5mby0+c2NoZWQgPSBsaWJ4bF9fZG9tYWluX3Nj aGVkdWxlcihnYywgZG9taWQpOworCisgICAgc3dpdGNoIChzY2luZm8tPnNjaGVkKSB7CisgICAg Y2FzZSBMSUJYTF9TQ0hFRFVMRVJfU0VERjoKKyAgICAgICAgTE9HKEVSUk9SLCAiU0VERiBzY2hl ZHVsZXIgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSIpOworICAgICAgICByYyA9IEVSUk9SX0ZFQVRV UkVfUkVNT1ZFRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMSUJYTF9TQ0hFRFVMRVJfQ1JF RElUOgorICAgIGNhc2UgTElCWExfU0NIRURVTEVSX0NSRURJVDI6CisgICAgY2FzZSBMSUJYTF9T Q0hFRFVMRVJfQVJJTkM2NTM6CisgICAgICAgIExPRyhFUlJPUiwgInBlci1WQ1BVIHBhcmFtZXRl ciBnZXR0aW5nIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgc2NoZWR1bGVyIik7CisgICAgICAgIHJj ID0gRVJST1JfSU5WQUw7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTElCWExfU0NIRURVTEVS X1JURFM6CisgICAgICAgIHJjID0gc2NoZWRfcnRkc192Y3B1X2dldF9hbGwoZ2MsIGRvbWlkLCBz Y2luZm8pOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBMT0coRVJST1Is ICJVbmtub3duIHNjaGVkdWxlciIpOworICAgICAgICByYyA9IEVSUk9SX0lOVkFMOworICAgICAg ICBicmVhazsKKyAgICB9CisKKyAgICBHQ19GUkVFOworICAgIHJldHVybiByYzsKK30KKwogc3Rh dGljIGludCBsaWJ4bF9fZG9tYWluX3MzX3Jlc3VtZShsaWJ4bF9fZ2MgKmdjLCBpbnQgZG9taWQp CiB7CiAgICAgaW50IHJjID0gMDsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmggYi90 b29scy9saWJ4bC9saWJ4bC5oCmluZGV4IDgzZDdjZDMuLjRjMzZhNjkgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuaApAQCAtMjE4LDYgKzIx OCwxNyBAQAogI2RlZmluZSBMSUJYTF9IQVZFX0RFVklDRV9NT0RFTF9VU0VSIDEKIAogLyoKKyAq IGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zIGlzIHVzZWQgdG8gc3RvcmUgcGVyLXZjcHUgcGFyYW1z LgorICovCisjZGVmaW5lIExJQlhMX0hBVkVfVkNQVV9TQ0hFRF9QQVJBTVMgMQorCisvKgorICog TElCWExfSEFWRV9TQ0hFRF9SVERTX1ZDUFVfUEFSQU1TIGluZGljYXRlcyBSVERTIHNjaGVkdWxl cgorICogbm93IHN1cHBvcnRzIHBlci12Y3B1IHNldHRpbmdzLgorICovCisjZGVmaW5lIExJQlhM X0hBVkVfU0NIRURfUlREU19WQ1BVX1BBUkFNUyAxCisKKy8qCiAgKiBsaWJ4bF9kb21haW5fYnVp bGRfaW5mbyBoYXMgdGhlIGFybS5naWNfdmVyc2lvbiBmaWVsZC4KICAqLwogI2RlZmluZSBMSUJY TF9IQVZFX0JVSUxESU5GT19BUk1fR0lDX1ZFUlNJT04gMQpAQCAtMTg0OSwxMSArMTg2MCw0MSBA QCBpbnQgbGlieGxfc2NoZWRfY3JlZGl0X3BhcmFtc19zZXQobGlieGxfY3R4ICpjdHgsIHVpbnQz Ml90IHBvb2xpZCwKICNkZWZpbmUgTElCWExfRE9NQUlOX1NDSEVEX1BBUkFNX0VYVFJBVElNRV9E RUZBVUxUIC0xCiAjZGVmaW5lIExJQlhMX0RPTUFJTl9TQ0hFRF9QQVJBTV9CVURHRVRfREVGQVVM VCAgICAtMQogCisvKiBQZXItVkNQVSBwYXJhbWV0ZXJzICovCisjZGVmaW5lIExJQlhMX1NDSEVE X1BBUkFNX1ZDUFVfSU5ERVhfREVGQVVMVCAgIC0xCisKKy8qIEdldCB0aGUgcGVyLWRvbWFpbiBz Y2hlZHVsaW5nIHBhcmFtZXRlcnMuCisgKiBGb3Igc2NoZWR1bGVycyB0aGF0IHN1cHBvcnQgcGVy LXZjcHUgc2V0dGluZ3MgKGUuZy4sIFJURFMpLAorICogY2FsbGluZyAqX2RvbWFpbl9nZXQgZnVu Y3Rpb25zIHdpbGwgZ2V0IGRlZmF1bHQgc2NoZWR1bGluZworICogcGFyYW1ldGVycy4KKyAqLwog aW50IGxpYnhsX2RvbWFpbl9zY2hlZF9wYXJhbXNfZ2V0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJf dCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5f c2NoZWRfcGFyYW1zICpwYXJhbXMpOworCisvKiBTZXQgdGhlIHBlci1kb21haW4gc2NoZWR1bGlu ZyBwYXJhbWV0ZXJzLgorICogRm9yIHNjaGVkdWxlcnMgdGhhdCBzdXBwb3J0IHBlci12Y3B1IHNl dHRpbmdzIChlLmcuLCBSVERTKSwKKyAqIGNhbGxpbmcgKl9kb21haW5fc2V0IGZ1bmN0aW9ucyB3 aWxsIHNldCBhbGwgdmNwdXMgd2l0aCB0aGUgc2FtZQorICogc2NoZWR1bGluZyBwYXJhbWV0ZXJz LgorICovCiBpbnQgbGlieGxfZG9tYWluX3NjaGVkX3BhcmFtc19zZXQobGlieGxfY3R4ICpjdHgs IHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxpYnhsX2RvbWFpbl9zY2hlZF9wYXJhbXMgKnBhcmFtcyk7CiAKKy8qIEdldCB0aGUgcGVyLXZj cHUgc2NoZWR1bGluZyBwYXJhbWV0ZXJzICovCitpbnQgbGlieGxfdmNwdV9zY2hlZF9wYXJhbXNf Z2V0KGxpYnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfdmNwdV9zY2hlZF9wYXJhbXMgKnBhcmFtcyk7CisKKy8qIEdldCB0 aGUgcGVyLXZjcHUgc2NoZWR1bGluZyBwYXJhbWV0ZXJzIG9mIGFsbCB2Y3B1cyBvZiBhIGRvbWFp biAqLworaW50IGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zX2dldF9hbGwobGlieGxfY3R4ICpjdHgs IHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfdmNwdV9zY2hlZF9wYXJhbXMgKnBhcmFtcyk7CisKKy8qIFNldCB0aGUgcGVyLXZjcHUgc2No ZWR1bGluZyBwYXJhbWV0ZXJzICovCitpbnQgbGlieGxfdmNwdV9zY2hlZF9wYXJhbXNfc2V0KGxp YnhsX2N0eCAqY3R4LCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGlieGxfdmNwdV9zY2hlZF9wYXJhbXMgKnBhcmFtcyk7CisKKy8qIFNldCB0 aGUgcGVyLXZjcHUgc2NoZWR1bGluZyBwYXJhbWV0ZXJzIG9mIGFsbCB2Y3B1cyBvZiBhIGRvbWFp biAqLworaW50IGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zX3NldF9hbGwobGlieGxfY3R4ICpjdHgs IHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgbGlieGxfdmNwdV9zY2hlZF9wYXJhbXMgKnBhcmFtcyk7CisKIGludCBsaWJ4bF9zZW5kX3Ry aWdnZXIobGlieGxfY3R4ICpjdHgsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF90cmlnZ2VyIHRyaWdnZXIsIHVpbnQzMl90IHZjcHVpZCk7CiBpbnQgbGlieGxf c2VuZF9zeXNycShsaWJ4bF9jdHggKmN0eCwgdWludDMyX3QgZG9taWQsIGNoYXIgc3lzcnEpOwpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGli eGxfdHlwZXMuaWRsCmluZGV4IDU5YjE4M2MuLmQzMzYwN2UgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKQEAg LTM4Nyw2ICszODcsMjAgQEAgbGlieGxfZG9tYWluX3Jlc3RvcmVfcGFyYW1zID0gU3RydWN0KCJk b21haW5fcmVzdG9yZV9wYXJhbXMiLCBbCiAgICAgKCJzdHJlYW1fdmVyc2lvbiIsIHVpbnQzMiwg eydpbml0X3ZhbCc6ICcxJ30pLAogICAgIF0pCiAKK2xpYnhsX3NjaGVkX3BhcmFtcyA9IFN0cnVj dCgic2NoZWRfcGFyYW1zIixbCisgICAgKCJ2Y3B1aWQiLCAgICAgICBpbnRlZ2VyLCB7J2luaXRf dmFsJzogJ0xJQlhMX1NDSEVEX1BBUkFNX1ZDUFVfSU5ERVhfREVGQVVMVCd9KSwKKyAgICAoIndl aWdodCIsICAgICAgIGludGVnZXIsIHsnaW5pdF92YWwnOiAnTElCWExfRE9NQUlOX1NDSEVEX1BB UkFNX1dFSUdIVF9ERUZBVUxUJ30pLAorICAgICgiY2FwIiwgICAgICAgICAgaW50ZWdlciwgeydp bml0X3ZhbCc6ICdMSUJYTF9ET01BSU5fU0NIRURfUEFSQU1fQ0FQX0RFRkFVTFQnfSksCisgICAg KCJwZXJpb2QiLCAgICAgICBpbnRlZ2VyLCB7J2luaXRfdmFsJzogJ0xJQlhMX0RPTUFJTl9TQ0hF RF9QQVJBTV9QRVJJT0RfREVGQVVMVCd9KSwKKyAgICAoImV4dHJhdGltZSIsICAgIGludGVnZXIs IHsnaW5pdF92YWwnOiAnTElCWExfRE9NQUlOX1NDSEVEX1BBUkFNX0VYVFJBVElNRV9ERUZBVUxU J30pLAorICAgICgiYnVkZ2V0IiwgICAgICAgaW50ZWdlciwgeydpbml0X3ZhbCc6ICdMSUJYTF9E T01BSU5fU0NIRURfUEFSQU1fQlVER0VUX0RFRkFVTFQnfSksCisgICAgXSkKKworbGlieGxfdmNw dV9zY2hlZF9wYXJhbXMgPSBTdHJ1Y3QoInZjcHVfc2NoZWRfcGFyYW1zIixbCisgICAgKCJzY2hl ZCIsICAgICAgICBsaWJ4bF9zY2hlZHVsZXIpLAorICAgICgidmNwdXMiLCAgICAgICAgQXJyYXko bGlieGxfc2NoZWRfcGFyYW1zLCAibnVtX3ZjcHVzIikpLAorICAgIF0pCisKIGxpYnhsX2RvbWFp bl9zY2hlZF9wYXJhbXMgPSBTdHJ1Y3QoImRvbWFpbl9zY2hlZF9wYXJhbXMiLFsKICAgICAoInNj aGVkIiwgICAgICAgIGxpYnhsX3NjaGVkdWxlciksCiAgICAgKCJ3ZWlnaHQiLCAgICAgICBpbnRl Z2VyLCB7J2luaXRfdmFsJzogJ0xJQlhMX0RPTUFJTl9TQ0hFRF9QQVJBTV9XRUlHSFRfREVGQVVM VCd9KSwKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK