From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/3] x86/emul: Drop segment_attributes_t Date: Fri, 30 Jun 2017 16:04:02 +0100 Message-ID: <1498835042-22501-4-git-send-email-andrew.cooper3@citrix.com> References: <1498835042-22501-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1498835042-22501-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGFtb3VudCBvZiBuYW1lc3BhY2UgcmVzb2x1dGlvbiBpcyB1bm5lY2Vzc2FyaWx5IGxhcmdl LCBhcyBhbGwgY29kZSBkZWFscwppbiB0ZXJtcyBvZiBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3Rlci4g IFRoaXMgcmVtb3ZlcyB0aGUgYXR0ci5maWVsZHMgcGFydCBvZiBhbGwKcmVmZXJlbmNlcywgYW5k IGFsdGVycyBhdHRyLmJ5dGVzIHRvIGp1c3QgYXR0ci4KClRocmVlIGFyZWFzIG9mIGNvZGUgdXNp bmcgaW5pdGlhbGlzZXJzIGZvciBzZWdtZW50X3JlZ2lzdGVyIGFyZSB0d2Vha2VkIHRvCmNvbXBp bGUgd2l0aCBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBhcmNoX3NldF9pbmZvX2h2bV9ndWVzdCgp IGhhcyBpdHMgU0VHKCkKbWFjcm9zIGFsdGVyZWQgdG8gdXNlIHBsYWluIGNvbW1hLWJhc2VkIGlu aXRpYWxpc2F0aW9uLCB3aGlsZQp7cm0sdm04Nn1fe2NzLGRzfV9hdHRyIGFyZSBzaW1wbGlmaWVk IHRvIHBsYWluIG51bWJlcnMgd2hpY2ggbWF0Y2hlcyB0aGVpcgpkZXNjcmlwdGlvbiBpbiB0aGUg bWFudWFscy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlLiAgKEZvciBzb21lIHJlYXNvbiwgdGhlIG9s ZCB7cm0sdm04Nn1fe2NzLGRzfV9hdHRyIGNhdXNlcwpHQ0MgdG8gY3JlYXRlIHZhcmlhYmxlIGlu IC5yb2RhdGEsIHdoZXJlYXMgdGhlIG5ldyBjb2RlIHVzZXMgaW1tZWRpYXRlCm9wZXJhbmRzLiAg QXMgYSByZXN1bHQsIHZteF97Z2V0LHNldH1fc2VnbWVudF9yZWdpc3RlcigpIGFyZSBzbGlnaHRs eQpzaG9ydGVyLikKClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIz QGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgoKU2lu Y2UgUkZDOgogKiBEcm9wIGF0dHIgc3ViIHVuaW9uIGVudGlyZWx5CiAqIENvbXBpbGUgdGVzdGVk IHdpdGggR0NDIDQuMQotLS0KIHRvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1 enotZW11bC5jIHwgIDEwICstCiB0b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94ODZfZW11 bGF0b3IuYyAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L2NwdS92cG11LmMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQzICsrKystLS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAg ICAgICAgICAgICAgICAgICAgIHwgIDIwICstLQogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxNTQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4v YXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQogeGVu L2FyY2gveDg2L2h2bS9zdm0vc3ZtZGVidWcuYyAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHhl bi9hcmNoL3g4Ni9odm0vc3ZtL3ZtY2IuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICstLQog eGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYyAgICAgICAgICAgICAgICAgfCAgMTAgKy0K IHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsr Ky0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgICAgICAgICAgICAgICAgIHwg ICA2ICstCiB4ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMgICAgICAgICAgICAgICAgICB8 ICA0MCArKystLS0KIHhlbi9hcmNoL3g4Ni92bV9ldmVudC5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYyAgICAg ICAgICB8ICA1NSArKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0 ZS5oICAgICAgICAgIHwgIDM3ICsrKy0tLQogMTYgZmlsZXMgY2hhbmdlZCwgMjE5IGluc2VydGlv bnMoKyksIDIzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mdXp6L3g4Nl9pbnN0 cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9u X2VtdWxhdG9yL2Z1enotZW11bC5jCmluZGV4IGFhZGJiNDAuLmEyMzI5ZjggMTAwNjQ0Ci0tLSBh L3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCisrKyBiL3Rv b2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCkBAIC01ODMsNyAr NTgzLDcgQEAgc3RhdGljIGJvb2wgaW5fbG9uZ21vZGUoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQg KmN0eHQpCiAgICAgY29uc3Qgc3RydWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOwogICAg IGNvbnN0IHN0cnVjdCBmdXp6X2NvcnB1cyAqYyA9IHMtPmNvcnB1czsKIAotICAgIHJldHVybiBs b25nX21vZGVfYWN0aXZlKGN0eHQpICYmIGMtPnNlZ21lbnRzW3g4Nl9zZWdfY3NdLmF0dHIuZmll bGRzLmw7CisgICAgcmV0dXJuIGxvbmdfbW9kZV9hY3RpdmUoY3R4dCkgJiYgYy0+c2VnbWVudHNb eDg2X3NlZ19jc10ubDsKIH0KIAogc3RhdGljIHZvaWQgc2V0X3NpemVzKHN0cnVjdCB4ODZfZW11 bGF0ZV9jdHh0ICpjdHh0KQpAQCAtNTk3LDggKzU5Nyw4IEBAIHN0YXRpYyB2b2lkIHNldF9zaXpl cyhzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKICAgICAgICAgY3R4dC0+YWRkcl9zaXpl ID0gY3R4dC0+c3Bfc2l6ZSA9IDY0OwogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIGN0eHQtPmFk ZHJfc2l6ZSA9IGMtPnNlZ21lbnRzW3g4Nl9zZWdfY3NdLmF0dHIuZmllbGRzLmRiID8gMzIgOiAx NjsKLSAgICAgICAgY3R4dC0+c3Bfc2l6ZSAgID0gYy0+c2VnbWVudHNbeDg2X3NlZ19zc10uYXR0 ci5maWVsZHMuZGIgPyAzMiA6IDE2OworICAgICAgICBjdHh0LT5hZGRyX3NpemUgPSBjLT5zZWdt ZW50c1t4ODZfc2VnX2NzXS5kYiA/IDMyIDogMTY7CisgICAgICAgIGN0eHQtPnNwX3NpemUgICA9 IGMtPnNlZ21lbnRzW3g4Nl9zZWdfc3NdLmRiID8gMzIgOiAxNjsKICAgICB9CiB9CiAKQEAgLTc0 MSw4ICs3NDEsOCBAQCBzdGF0aWMgdm9pZCBzYW5pdGl6ZV9pbnB1dChzdHJ1Y3QgeDg2X2VtdWxh dGVfY3R4dCAqY3R4dCkKICAgICAvKiBFRkxBR1MuVk0gaW1wbGllcyAxNi1iaXQgbW9kZSAqLwog ICAgIGlmICggcmVncy0+cmZsYWdzICYgWDg2X0VGTEFHU19WTSApCiAgICAgewotICAgICAgICBj LT5zZWdtZW50c1t4ODZfc2VnX2NzXS5hdHRyLmZpZWxkcy5kYiA9IDA7Ci0gICAgICAgIGMtPnNl Z21lbnRzW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRiID0gMDsKKyAgICAgICAgYy0+c2VnbWVu dHNbeDg2X3NlZ19jc10uZGIgPSAwOworICAgICAgICBjLT5zZWdtZW50c1t4ODZfc2VnX3NzXS5k YiA9IDA7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS90b29scy90ZXN0cy94ODZfZW11bGF0b3Iv dGVzdF94ODZfZW11bGF0b3IuYyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9l bXVsYXRvci5jCmluZGV4IDE5NTUzMzIuLjc2NjY1YWIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rz L3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9l bXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCkBAIC0yNjQsNyArMjY0LDcgQEAgc3RhdGljIGlu dCByZWFkX3NlZ21lbnQoCiAgICAgaWYgKCAhaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpICkKICAg ICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogICAgIG1lbXNldChyZWcsIDAsIHNp emVvZigqcmVnKSk7Ci0gICAgcmVnLT5hdHRyLmZpZWxkcy5wID0gMTsKKyAgICByZWctPnAgPSAx OwogICAgIHJldHVybiBYODZFTVVMX09LQVk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9jcHUvdnBtdS5jIGIveGVuL2FyY2gveDg2L2NwdS92cG11LmMKaW5kZXggMjEzODNkMy4uOTA5 NTRjYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS92cG11LmMKKysrIGIveGVuL2FyY2gv eDg2L2NwdS92cG11LmMKQEAgLTMwNCw3ICszMDQsNyBAQCB2b2lkIHZwbXVfZG9faW50ZXJydXB0 KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICAgICAgICAgIHItPmNzID0gc2Vn LnNlbDsKICAgICAgICAgICAgICAgICBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIoc2FtcGxlZCwg eDg2X3NlZ19zcywgJnNlZyk7CiAgICAgICAgICAgICAgICAgci0+c3MgPSBzZWcuc2VsOwotICAg ICAgICAgICAgICAgIHItPmNwbCA9IHNlZy5hdHRyLmZpZWxkcy5kcGw7CisgICAgICAgICAgICAg ICAgci0+Y3BsID0gc2VnLmRwbDsKICAgICAgICAgICAgICAgICBpZiAoICEoc2FtcGxlZC0+YXJj aC5odm1fdmNwdS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEUpICkKICAgICAgICAgICAgICAgICAg ICAgKmZsYWdzIHw9IFBNVV9TQU1QTEVfUkVBTDsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RvbWFpbi5jCmlu ZGV4IDIwYTUyOTQuLjc4Y2M1ZmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG9tYWlu LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kb21haW4uYwpAQCAtMjcsMTMgKzI3LDEzIEBACiBz dGF0aWMgaW50IGNoZWNrX3NlZ21lbnQoc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgKnJlZywgZW51 bSB4ODZfc2VnbWVudCBzZWcpCiB7CiAKLSAgICBpZiAoIHJlZy0+YXR0ci5maWVsZHMucGFkICE9 IDAgKQorICAgIGlmICggcmVnLT5wYWQgIT0gMCApCiAgICAgewogICAgICAgICBncHJpbnRrKFhF TkxPR19FUlIsICJTZWdtZW50IGF0dHJpYnV0ZSBiaXRzIDEyLTE1IGFyZSBub3QgemVyb1xuIik7 CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAotICAgIGlmICggcmVnLT5hdHRyLmJ5 dGVzID09IDAgKQorICAgIGlmICggcmVnLT5hdHRyID09IDAgKQogICAgIHsKICAgICAgICAgaWYg KCBzZWcgIT0geDg2X3NlZ19kcyAmJiBzZWcgIT0geDg2X3NlZ19lcyApCiAgICAgICAgIHsKQEAg LTQ1LDI2ICs0NSwyNiBAQCBzdGF0aWMgaW50IGNoZWNrX3NlZ21lbnQoc3RydWN0IHNlZ21lbnRf cmVnaXN0ZXIgKnJlZywgZW51bSB4ODZfc2VnbWVudCBzZWcpCiAKICAgICBpZiAoIHNlZyA9PSB4 ODZfc2VnX3RyICkKICAgICB7Ci0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy5zICkKKyAg ICAgICAgaWYgKCByZWctPnMgKQogICAgICAgICB7CiAgICAgICAgICAgICBncHJpbnRrKFhFTkxP R19FUlIsICJDb2RlIG9yIGRhdGEgc2VnbWVudCBwcm92aWRlZCBmb3IgVFJcbiIpOwogICAgICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIHJlZy0+YXR0 ci5maWVsZHMudHlwZSAhPSBTWVNfREVTQ190c3NfYnVzeSApCisgICAgICAgIGlmICggcmVnLT50 eXBlICE9IFNZU19ERVNDX3Rzc19idXN5ICkKICAgICAgICAgewogICAgICAgICAgICAgZ3ByaW50 ayhYRU5MT0dfRVJSLCAiTm9uLTMyLWJpdC1UU1Mgc2VnbWVudCBwcm92aWRlZCBmb3IgVFJcbiIp OwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KICAgICB9Ci0gICAgZWxz ZSBpZiAoICFyZWctPmF0dHIuZmllbGRzLnMgKQorICAgIGVsc2UgaWYgKCAhcmVnLT5zICkKICAg ICB7CiAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwKICAgICAgICAgICAgICAgICAiU3lzdGVt IHNlZ21lbnQgcHJvdmlkZWQgZm9yIGEgY29kZSBvciBkYXRhIHNlZ21lbnRcbiIpOwogICAgICAg ICByZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKLSAgICBpZiAoICFyZWctPmF0dHIuZmllbGRzLnAg KQorICAgIGlmICggIXJlZy0+cCApCiAgICAgewogICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIs ICJOb24tcHJlc2VudCBzZWdtZW50IHByb3ZpZGVkXG4iKTsKICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfc2VnbWVudChzdHJ1Y3Qgc2Vn bWVudF9yZWdpc3RlciAqcmVnLCBlbnVtIHg4Nl9zZWdtZW50IHNlZykKICAgICBzd2l0Y2ggKCBz ZWcgKQogICAgIHsKICAgICBjYXNlIHg4Nl9zZWdfY3M6Ci0gICAgICAgIGlmICggIShyZWctPmF0 dHIuZmllbGRzLnR5cGUgJiAweDgpICkKKyAgICAgICAgaWYgKCAhKHJlZy0+dHlwZSAmIDB4OCkg KQogICAgICAgICB7CiAgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIsICJOb24tY29kZSBz ZWdtZW50IHByb3ZpZGVkIGZvciBDU1xuIik7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK QEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIGludCBjaGVja19zZWdtZW50KHN0cnVjdCBzZWdtZW50 X3JlZ2lzdGVyICpyZWcsIGVudW0geDg2X3NlZ21lbnQgc2VnKQogICAgICAgICBicmVhazsKIAog ICAgIGNhc2UgeDg2X3NlZ19zczoKLSAgICAgICAgaWYgKCAocmVnLT5hdHRyLmZpZWxkcy50eXBl ICYgMHg4KSB8fCAhKHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIDB4MikgKQorICAgICAgICBpZiAo IChyZWctPnR5cGUgJiAweDgpIHx8ICEocmVnLT50eXBlICYgMHgyKSApCiAgICAgICAgIHsKICAg ICAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwgIk5vbi13cml0ZWFibGUgc2VnbWVudCBwcm92 aWRlZCBmb3IgU1NcbiIpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC05MCw3ICs5 MCw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfc2VnbWVudChzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciAq cmVnLCBlbnVtIHg4Nl9zZWdtZW50IHNlZykKIAogICAgIGNhc2UgeDg2X3NlZ19kczoKICAgICBj YXNlIHg4Nl9zZWdfZXM6Ci0gICAgICAgIGlmICggKHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIDB4 OCkgJiYgIShyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDIpICkKKyAgICAgICAgaWYgKCAocmVn LT50eXBlICYgMHg4KSAmJiAhKHJlZy0+dHlwZSAmIDB4MikgKQogICAgICAgICB7CiAgICAgICAg ICAgICBncHJpbnRrKFhFTkxPR19FUlIsICJOb24tcmVhZGFibGUgc2VnbWVudCBwcm92aWRlZCBm b3IgRFMgb3IgRVNcbiIpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC0xMzIsMTIg KzEzMiwxMSBAQCBpbnQgYXJjaF9zZXRfaW5mb19odm1fZ3Vlc3Qoc3RydWN0IHZjcHUgKnYsIGNv bnN0IHZjcHVfaHZtX2NvbnRleHRfdCAqY3R4KQogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CiAKICNkZWZpbmUgU0VHKHMsIHIpICh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgcyA9IChzdHJ1Y3Qgc2VnbWVudF9yZWdpc3Rl cil7IC5iYXNlID0gKHIpLT5zICMjIF9iYXNlLCAgICAgICAgICAgICAgICAgXAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAubGltaXQgPSAociktPnMgIyMgX2xpbWl0LCAgICAg ICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmF0dHIuYnl0 ZXMgPSAociktPnMgIyMgX2FyIH07ICAgICAgICAgICBcCisgICAgcyA9IChzdHJ1Y3Qgc2VnbWVu dF9yZWdpc3RlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICB7IDAsIHsgKHIpLT5zICMjIF9hciB9LCAociktPnMgIyMgX2Jhc2UsIChyKS0+cyAj IyBfbGltaXQgfTsgICAgICAgIFwKICAgICAvKiBTZXQgYWNjZXNzZWQgLyBidXN5IGJpdCBmb3Ig cHJlc2VudCBzZWdtZW50cy4gKi8gICAgICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCBzLmF0 dHIuZmllbGRzLnAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAotICAgICAgICBzLmF0dHIuZmllbGRzLnR5cGUgfD0gKHg4Nl9zZWdfIyNzICE9IHg4 Nl9zZWdfdHIgPyAxIDogMik7ICAgICAgICAgIFwKKyAgICBpZiAoIHMucCApICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgIHMudHlwZSB8PSAoeDg2X3NlZ18jI3MgIT0geDg2X3NlZ190ciA/IDEgOiAyKTsgICAgICAg ICAgICAgICAgICAgICAgXAogICAgIGNoZWNrX3NlZ21lbnQoJnMsIHg4Nl9zZWdfICMjIHMpOyB9 KQogCiAgICAgICAgIHJjID0gU0VHKGNzLCByZWdzKTsKQEAgLTE1Miw3ICsxNTEsNyBAQCBpbnQg YXJjaF9zZXRfaW5mb19odm1fZ3Vlc3Qoc3RydWN0IHZjcHUgKnYsIGNvbnN0IHZjcHVfaHZtX2Nv bnRleHRfdCAqY3R4KQogCiAgICAgICAgIC8qIEJhc2ljIHNhbml0eSBjaGVja3MuICovCiAgICAg ICAgIGxpbWl0ID0gY3MubGltaXQ7Ci0gICAgICAgIGlmICggY3MuYXR0ci5maWVsZHMuZyApCisg ICAgICAgIGlmICggY3MuZyApCiAgICAgICAgICAgICBsaW1pdCA9IChsaW1pdCA8PCAxMikgfCAw eGZmZjsKICAgICAgICAgaWYgKCByZWdzLT5laXAgPiBsaW1pdCApCiAgICAgICAgIHsKQEAgLTE2 MSwyNCArMTYwLDI0IEBAIGludCBhcmNoX3NldF9pbmZvX2h2bV9ndWVzdChzdHJ1Y3QgdmNwdSAq diwgY29uc3QgdmNwdV9odm1fY29udGV4dF90ICpjdHgpCiAgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKICAgICAgICAgfQogCi0gICAgICAgIGlmICggc3MuYXR0ci5maWVsZHMuZHBsICE9IGNz LmF0dHIuZmllbGRzLmRwbCApCisgICAgICAgIGlmICggc3MuZHBsICE9IGNzLmRwbCApCiAgICAg ICAgIHsKICAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwgIlNTLkRQTCAoJXUpIGlzIGRp ZmZlcmVudCB0aGFuIENTLkRQTCAoJXUpXG4iLAotICAgICAgICAgICAgICAgICAgICBzcy5hdHRy LmZpZWxkcy5kcGwsIGNzLmF0dHIuZmllbGRzLmRwbCk7CisgICAgICAgICAgICAgICAgICAgIHNz LmRwbCwgY3MuZHBsKTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CiAK LSAgICAgICAgaWYgKCBkcy5hdHRyLmZpZWxkcy5wICYmIGRzLmF0dHIuZmllbGRzLmRwbCA+IGNz LmF0dHIuZmllbGRzLmRwbCApCisgICAgICAgIGlmICggZHMucCAmJiBkcy5kcGwgPiBjcy5kcGwg KQogICAgICAgICB7CiAgICAgICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIsICJEUy5EUEwgKCV1 KSBpcyBncmVhdGVyIHRoYW4gQ1MuRFBMICgldSlcbiIsCi0gICAgICAgICAgICAgICAgICAgIGRz LmF0dHIuZmllbGRzLmRwbCwgY3MuYXR0ci5maWVsZHMuZHBsKTsKKyAgICAgICAgICAgICAgICAg ICAgZHMuZHBsLCBjcy5kcGwpOwogICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAg IH0KIAotICAgICAgICBpZiAoIGVzLmF0dHIuZmllbGRzLnAgJiYgZXMuYXR0ci5maWVsZHMuZHBs ID4gY3MuYXR0ci5maWVsZHMuZHBsICkKKyAgICAgICAgaWYgKCBlcy5wICYmIGVzLmRwbCA+IGNz LmRwbCApCiAgICAgICAgIHsKICAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwgIkVTLkRQ TCAoJXUpIGlzIGdyZWF0ZXIgdGhhbiBDUy5EUEwgKCV1KVxuIiwKLSAgICAgICAgICAgICAgICAg ICAgZXMuYXR0ci5maWVsZHMuZHBsLCBjcy5hdHRyLmZpZWxkcy5kcGwpOworICAgICAgICAgICAg ICAgICAgICBlcy5kcGwsIGNzLmRwbCk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAg ICAgICAgfQogCkBAIC0yNTYsNyArMjU1LDcgQEAgaW50IGFyY2hfc2V0X2luZm9faHZtX2d1ZXN0 KHN0cnVjdCB2Y3B1ICp2LCBjb25zdCB2Y3B1X2h2bV9jb250ZXh0X3QgKmN0eCkKICAgICAgICAg di0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSA9IHJlZ3MtPmNyNDsKICAgICAgICAgdi0+YXJj aC5odm1fdmNwdS5ndWVzdF9lZmVyICA9IHJlZ3MtPmVmZXI7CiAKLSNkZWZpbmUgU0VHKGwsIGEp IChzdHJ1Y3Qgc2VnbWVudF9yZWdpc3Rlcil7IC5saW1pdCA9IChsKSwgLmF0dHIuYnl0ZXMgPSAo YSkgfQorI2RlZmluZSBTRUcobCwgYSkgKHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyKXsgMCwgeyAo YSkgfSwgKGwpLCAwIH0KICAgICAgICAgY3MgPSBTRUcofjB1LCAweGE5Yik7IC8qIDY0Yml0IGNv ZGUgc2VnbWVudC4gKi8KICAgICAgICAgZHMgPSBzcyA9IGVzID0gU0VHKH4wdSwgMHhjOTMpOwog ICAgICAgICB0ciA9IFNFRygweDY3LCAweDhiKTsgLyogNjRiaXQgVFNTIChidXN5KS4gKi8KZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9l bXVsYXRlLmMKaW5kZXggMTFlNGFiYS4uZjI0OWFkZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKQEAgLTg3Myw3 ICs4NzMsNyBAQCBzdGF0aWMgaW50IF9faHZtZW11bF9yZWFkKAogCiAgICAgaWYgKCBpc194ODZf c3lzdGVtX3NlZ21lbnQoc2VnKSApCiAgICAgICAgIHBmZWMgfD0gUEZFQ19pbXBsaWNpdDsKLSAg ICBlbHNlIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRz LmRwbCA9PSAzICkKKyAgICBlbHNlIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdf c3NdLmRwbCA9PSAzICkKICAgICAgICAgcGZlYyB8PSBQRkVDX3VzZXJfbW9kZTsKIAogICAgIHJj ID0gaHZtZW11bF92aXJ0dWFsX3RvX2xpbmVhcigKQEAgLTk4NCw3ICs5ODQsNyBAQCBzdGF0aWMg aW50IGh2bWVtdWxfd3JpdGUoCiAKICAgICBpZiAoIGlzX3g4Nl9zeXN0ZW1fc2VnbWVudChzZWcp ICkKICAgICAgICAgcGZlYyB8PSBQRkVDX2ltcGxpY2l0OwotICAgIGVsc2UgaWYgKCBodm1lbXVs X2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5maWVsZHMuZHBsID09IDMgKQorICAgIGVs c2UgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uZHBsID09IDMgKQogICAg ICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwogCiAgICAgcmMgPSBodm1lbXVsX3ZpcnR1YWxf dG9fbGluZWFyKApAQCAtMTE2MSw3ICsxMTYxLDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JlcF9p bnMoCiAgICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgKQogICAgICAgICByZXR1cm4gcmM7CiAK LSAgICBpZiAoIGh2bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5k cGwgPT0gMyApCisgICAgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uZHBs ID09IDMgKQogICAgICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwogCiAgICAgcmMgPSBodm1l bXVsX2xpbmVhcl90b19waHlzKApAQCAtMTIzMCw3ICsxMjMwLDcgQEAgc3RhdGljIGludCBodm1l bXVsX3JlcF9vdXRzKAogICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZICkKICAgICAgICAgcmV0 dXJuIHJjOwogCi0gICAgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0 ci5maWVsZHMuZHBsID09IDMgKQorICAgIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9z ZWdfc3NdLmRwbCA9PSAzICkKICAgICAgICAgcGZlYyB8PSBQRkVDX3VzZXJfbW9kZTsKIAogICAg IHJjID0gaHZtZW11bF9saW5lYXJfdG9fcGh5cygKQEAgLTEyNzcsNyArMTI3Nyw3IEBAIHN0YXRp YyBpbnQgaHZtZW11bF9yZXBfbW92cygKICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSApCiAg ICAgICAgIHJldHVybiByYzsKIAotICAgIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9z ZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAzICkKKyAgICBpZiAoIGh2bWVtdWxfY3R4dC0+c2Vn X3JlZ1t4ODZfc2VnX3NzXS5kcGwgPT0gMyApCiAgICAgICAgIHBmZWMgfD0gUEZFQ191c2VyX21v ZGU7CiAKICAgICBpZiAoIHZpby0+bW1pb19hY2Nlc3MucmVhZF9hY2Nlc3MgJiYKQEAgLTE0MzUs NyArMTQzNSw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9yZXBfc3RvcygKICAgICB7CiAgICAgICAg IHVpbnQzMl90IHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNfd3JpdGVfYWNjZXNzOwog Ci0gICAgICAgIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIuZmll bGRzLmRwbCA9PSAzICkKKyAgICAgICAgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3Nl Z19zc10uZHBsID09IDMgKQogICAgICAgICAgICAgcGZlYyB8PSBQRkVDX3VzZXJfbW9kZTsKIAog ICAgICAgICByYyA9IGh2bWVtdWxfbGluZWFyX3RvX3BoeXMoYWRkciwgJmdwYSwgYnl0ZXNfcGVy X3JlcCwgcmVwcywgcGZlYywKQEAgLTIxMzMsMTcgKzIxMzMsMTcgQEAgdm9pZCBodm1fZW11bGF0 ZV9pbml0X3Blcl9pbnNuKAogICAgIGh2bWVtdWxfY3R4dC0+Y3R4dC5sbWEgPSBodm1fbG9uZ19t b2RlX2FjdGl2ZShjdXJyKTsKIAogICAgIGlmICggaHZtZW11bF9jdHh0LT5jdHh0LmxtYSAmJgot ICAgICAgICAgaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfY3NdLmF0dHIuZmllbGRzLmwg KQorICAgICAgICAgaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfY3NdLmwgKQogICAgICAg ICBodm1lbXVsX2N0eHQtPmN0eHQuYWRkcl9zaXplID0gaHZtZW11bF9jdHh0LT5jdHh0LnNwX3Np emUgPSA2NDsKICAgICBlbHNlCiAgICAgewogICAgICAgICBodm1lbXVsX2N0eHQtPmN0eHQuYWRk cl9zaXplID0KLSAgICAgICAgICAgIGh2bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX2NzXS5h dHRyLmZpZWxkcy5kYiA/IDMyIDogMTY7CisgICAgICAgICAgICBodm1lbXVsX2N0eHQtPnNlZ19y ZWdbeDg2X3NlZ19jc10uZGIgPyAzMiA6IDE2OwogICAgICAgICBodm1lbXVsX2N0eHQtPmN0eHQu c3Bfc2l6ZSA9Ci0gICAgICAgICAgICBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10u YXR0ci5maWVsZHMuZGIgPyAzMiA6IDE2OworICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5zZWdf cmVnW3g4Nl9zZWdfc3NdLmRiID8gMzIgOiAxNjsKICAgICB9CiAKLSAgICBpZiAoIGh2bWVtdWxf Y3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kcGwgPT0gMyApCisgICAgaWYg KCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uZHBsID09IDMgKQogICAgICAgICBw ZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwogCiAgICAgaHZtZW11bF9jdHh0LT5pbnNuX2J1Zl9laXAg PSBodm1lbXVsX2N0eHQtPmN0eHQucmVncy0+cmlwOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggM2VkNmVjNC4uYWE3MzM0 NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYv aHZtL2h2bS5jCkBAIC04MDMsNDkgKzgwMyw0OSBAQCBzdGF0aWMgaW50IGh2bV9zYXZlX2NwdV9j dHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogICAgICAgICBj dHh0LmNzX3NlbCA9IHNlZy5zZWw7CiAgICAgICAgIGN0eHQuY3NfbGltaXQgPSBzZWcubGltaXQ7 CiAgICAgICAgIGN0eHQuY3NfYmFzZSA9IHNlZy5iYXNlOwotICAgICAgICBjdHh0LmNzX2FyYnl0 ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAgICAgY3R4dC5jc19hcmJ5dGVzID0gc2VnLmF0dHI7 CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZHMsICZzZWcp OwogICAgICAgICBjdHh0LmRzX3NlbCA9IHNlZy5zZWw7CiAgICAgICAgIGN0eHQuZHNfbGltaXQg PSBzZWcubGltaXQ7CiAgICAgICAgIGN0eHQuZHNfYmFzZSA9IHNlZy5iYXNlOwotICAgICAgICBj dHh0LmRzX2FyYnl0ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAgICAgY3R4dC5kc19hcmJ5dGVz ID0gc2VnLmF0dHI7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9z ZWdfZXMsICZzZWcpOwogICAgICAgICBjdHh0LmVzX3NlbCA9IHNlZy5zZWw7CiAgICAgICAgIGN0 eHQuZXNfbGltaXQgPSBzZWcubGltaXQ7CiAgICAgICAgIGN0eHQuZXNfYmFzZSA9IHNlZy5iYXNl OwotICAgICAgICBjdHh0LmVzX2FyYnl0ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAgICAgY3R4 dC5lc19hcmJ5dGVzID0gc2VnLmF0dHI7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lz dGVyKHYsIHg4Nl9zZWdfc3MsICZzZWcpOwogICAgICAgICBjdHh0LnNzX3NlbCA9IHNlZy5zZWw7 CiAgICAgICAgIGN0eHQuc3NfbGltaXQgPSBzZWcubGltaXQ7CiAgICAgICAgIGN0eHQuc3NfYmFz ZSA9IHNlZy5iYXNlOwotICAgICAgICBjdHh0LnNzX2FyYnl0ZXMgPSBzZWcuYXR0ci5ieXRlczsK KyAgICAgICAgY3R4dC5zc19hcmJ5dGVzID0gc2VnLmF0dHI7CiAKICAgICAgICAgaHZtX2dldF9z ZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZnMsICZzZWcpOwogICAgICAgICBjdHh0LmZzX3Nl bCA9IHNlZy5zZWw7CiAgICAgICAgIGN0eHQuZnNfbGltaXQgPSBzZWcubGltaXQ7CiAgICAgICAg IGN0eHQuZnNfYmFzZSA9IHNlZy5iYXNlOwotICAgICAgICBjdHh0LmZzX2FyYnl0ZXMgPSBzZWcu YXR0ci5ieXRlczsKKyAgICAgICAgY3R4dC5mc19hcmJ5dGVzID0gc2VnLmF0dHI7CiAKICAgICAg ICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZ3MsICZzZWcpOwogICAgICAg ICBjdHh0LmdzX3NlbCA9IHNlZy5zZWw7CiAgICAgICAgIGN0eHQuZ3NfbGltaXQgPSBzZWcubGlt aXQ7CiAgICAgICAgIGN0eHQuZ3NfYmFzZSA9IHNlZy5iYXNlOwotICAgICAgICBjdHh0LmdzX2Fy Ynl0ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAgICAgY3R4dC5nc19hcmJ5dGVzID0gc2VnLmF0 dHI7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfdHIsICZz ZWcpOwogICAgICAgICBjdHh0LnRyX3NlbCA9IHNlZy5zZWw7CiAgICAgICAgIGN0eHQudHJfbGlt aXQgPSBzZWcubGltaXQ7CiAgICAgICAgIGN0eHQudHJfYmFzZSA9IHNlZy5iYXNlOwotICAgICAg ICBjdHh0LnRyX2FyYnl0ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAgICAgY3R4dC50cl9hcmJ5 dGVzID0gc2VnLmF0dHI7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4 Nl9zZWdfbGR0ciwgJnNlZyk7CiAgICAgICAgIGN0eHQubGR0cl9zZWwgPSBzZWcuc2VsOwogICAg ICAgICBjdHh0LmxkdHJfbGltaXQgPSBzZWcubGltaXQ7CiAgICAgICAgIGN0eHQubGR0cl9iYXNl ID0gc2VnLmJhc2U7Ci0gICAgICAgIGN0eHQubGR0cl9hcmJ5dGVzID0gc2VnLmF0dHIuYnl0ZXM7 CisgICAgICAgIGN0eHQubGR0cl9hcmJ5dGVzID0gc2VnLmF0dHI7CiAKICAgICAgICAgaWYgKCB2 LT5mcHVfaW5pdGlhbGlzZWQgKQogICAgICAgICB7CkBAIC0xMDU3LDQ5ICsxMDU3LDQ5IEBAIHN0 YXRpYyBpbnQgaHZtX2xvYWRfY3B1X2N0eHQoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9j b250ZXh0X3QgKmgpCiAgICAgc2VnLnNlbCA9IGN0eHQuY3Nfc2VsOwogICAgIHNlZy5saW1pdCA9 IGN0eHQuY3NfbGltaXQ7CiAgICAgc2VnLmJhc2UgPSBjdHh0LmNzX2Jhc2U7Ci0gICAgc2VnLmF0 dHIuYnl0ZXMgPSBjdHh0LmNzX2FyYnl0ZXM7CisgICAgc2VnLmF0dHIgPSBjdHh0LmNzX2FyYnl0 ZXM7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfY3MsICZzZWcpOwog CiAgICAgc2VnLnNlbCA9IGN0eHQuZHNfc2VsOwogICAgIHNlZy5saW1pdCA9IGN0eHQuZHNfbGlt aXQ7CiAgICAgc2VnLmJhc2UgPSBjdHh0LmRzX2Jhc2U7Ci0gICAgc2VnLmF0dHIuYnl0ZXMgPSBj dHh0LmRzX2FyYnl0ZXM7CisgICAgc2VnLmF0dHIgPSBjdHh0LmRzX2FyYnl0ZXM7CiAgICAgaHZt X3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZHMsICZzZWcpOwogCiAgICAgc2VnLnNl bCA9IGN0eHQuZXNfc2VsOwogICAgIHNlZy5saW1pdCA9IGN0eHQuZXNfbGltaXQ7CiAgICAgc2Vn LmJhc2UgPSBjdHh0LmVzX2Jhc2U7Ci0gICAgc2VnLmF0dHIuYnl0ZXMgPSBjdHh0LmVzX2FyYnl0 ZXM7CisgICAgc2VnLmF0dHIgPSBjdHh0LmVzX2FyYnl0ZXM7CiAgICAgaHZtX3NldF9zZWdtZW50 X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZXMsICZzZWcpOwogCiAgICAgc2VnLnNlbCA9IGN0eHQuc3Nf c2VsOwogICAgIHNlZy5saW1pdCA9IGN0eHQuc3NfbGltaXQ7CiAgICAgc2VnLmJhc2UgPSBjdHh0 LnNzX2Jhc2U7Ci0gICAgc2VnLmF0dHIuYnl0ZXMgPSBjdHh0LnNzX2FyYnl0ZXM7CisgICAgc2Vn LmF0dHIgPSBjdHh0LnNzX2FyYnl0ZXM7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYs IHg4Nl9zZWdfc3MsICZzZWcpOwogCiAgICAgc2VnLnNlbCA9IGN0eHQuZnNfc2VsOwogICAgIHNl Zy5saW1pdCA9IGN0eHQuZnNfbGltaXQ7CiAgICAgc2VnLmJhc2UgPSBjdHh0LmZzX2Jhc2U7Ci0g ICAgc2VnLmF0dHIuYnl0ZXMgPSBjdHh0LmZzX2FyYnl0ZXM7CisgICAgc2VnLmF0dHIgPSBjdHh0 LmZzX2FyYnl0ZXM7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZnMs ICZzZWcpOwogCiAgICAgc2VnLnNlbCA9IGN0eHQuZ3Nfc2VsOwogICAgIHNlZy5saW1pdCA9IGN0 eHQuZ3NfbGltaXQ7CiAgICAgc2VnLmJhc2UgPSBjdHh0LmdzX2Jhc2U7Ci0gICAgc2VnLmF0dHIu Ynl0ZXMgPSBjdHh0LmdzX2FyYnl0ZXM7CisgICAgc2VnLmF0dHIgPSBjdHh0LmdzX2FyYnl0ZXM7 CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZ3MsICZzZWcpOwogCiAg ICAgc2VnLnNlbCA9IGN0eHQudHJfc2VsOwogICAgIHNlZy5saW1pdCA9IGN0eHQudHJfbGltaXQ7 CiAgICAgc2VnLmJhc2UgPSBjdHh0LnRyX2Jhc2U7Ci0gICAgc2VnLmF0dHIuYnl0ZXMgPSBjdHh0 LnRyX2FyYnl0ZXM7CisgICAgc2VnLmF0dHIgPSBjdHh0LnRyX2FyYnl0ZXM7CiAgICAgaHZtX3Nl dF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfdHIsICZzZWcpOwogCiAgICAgc2VnLnNlbCA9 IGN0eHQubGR0cl9zZWw7CiAgICAgc2VnLmxpbWl0ID0gY3R4dC5sZHRyX2xpbWl0OwogICAgIHNl Zy5iYXNlID0gY3R4dC5sZHRyX2Jhc2U7Ci0gICAgc2VnLmF0dHIuYnl0ZXMgPSBjdHh0LmxkdHJf YXJieXRlczsKKyAgICBzZWcuYXR0ciA9IGN0eHQubGR0cl9hcmJ5dGVzOwogICAgIGh2bV9zZXRf c2VnbWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX2xkdHIsICZzZWcpOwogCiAgICAgLyogQ292ZXIg eHNhdmUtYWJzZW50IHNhdmUgZmlsZSByZXN0b3JhdGlvbiBvbiB4c2F2ZS1jYXBhYmxlIGhvc3Qu ICovCkBAIC0xOTY1LDkgKzE5NjUsOSBAQCBpbnQgaHZtX3NldF9lZmVyKHVpbnQ2NF90IHZhbHVl KQogICAgICAgICAgKiBXaGVuIExNRSBiZWNvbWVzIHNldCwgY2xvYmJlciAlY3MuTCB0byBrZWVw IHRoZSBndWVzdCBmaXJtbHkgaW4KICAgICAgICAgICogY29tcGF0aWJpbGl0eSBtb2RlIHVudGls IGl0IHJlbG9hZHMgJWNzIGl0c2VsZi4KICAgICAgICAgICovCi0gICAgICAgIGlmICggY3MuYXR0 ci5maWVsZHMubCApCisgICAgICAgIGlmICggY3MubCApCiAgICAgICAgIHsKLSAgICAgICAgICAg IGNzLmF0dHIuZmllbGRzLmwgPSAwOworICAgICAgICAgICAgY3MubCA9IDA7CiAgICAgICAgICAg ICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19jcywgJmNzKTsKICAgICAgICAg fQogICAgIH0KQEAgLTI0MjksMTQgKzI0MjksMTQgQEAgYm9vbF90IGh2bV92aXJ0dWFsX3RvX2xp bmVhcl9hZGRyKAogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogICAgIGVsc2UgaWYgKCBo dm1fbG9uZ19tb2RlX2FjdGl2ZShjdXJyKSAmJgotICAgICAgICAgICAgICAoaXNfeDg2X3N5c3Rl bV9zZWdtZW50KHNlZykgfHwgYWN0aXZlX2NzLT5hdHRyLmZpZWxkcy5sKSApCisgICAgICAgICAg ICAgIChpc194ODZfc3lzdGVtX3NlZ21lbnQoc2VnKSB8fCBhY3RpdmVfY3MtPmwpICkKICAgICB7 CiAgICAgICAgIC8qCiAgICAgICAgICAqIFVzZXIgc2VnbWVudHMgYXJlIGFsd2F5cyB0cmVhdGVk IGFzIHByZXNlbnQuICBTeXN0ZW0gc2VnbWVudCBtYXkKICAgICAgICAgICogbm90IGJlLCBhbmQg YWxzbyBpbmN1ciBsaW1pdCBjaGVja3MuCiAgICAgICAgICAqLwogICAgICAgICBpZiAoIGlzX3g4 Nl9zeXN0ZW1fc2VnbWVudChzZWcpICYmCi0gICAgICAgICAgICAgKCFyZWctPmF0dHIuZmllbGRz LnAgfHwgKG9mZnNldCArIGJ5dGVzIC0gISFieXRlcykgPiByZWctPmxpbWl0KSApCisgICAgICAg ICAgICAgKCFyZWctPnAgfHwgKG9mZnNldCArIGJ5dGVzIC0gISFieXRlcykgPiByZWctPmxpbWl0 KSApCiAgICAgICAgICAgICBnb3RvIG91dDsKIAogICAgICAgICAvKgpAQCAtMjQ2NCwyMCArMjQ2 NCwyMCBAQCBib29sX3QgaHZtX3ZpcnR1YWxfdG9fbGluZWFyX2FkZHIoCiAgICAgICAgIGFkZHIg PSAodWludDMyX3QpKGFkZHIgKyByZWctPmJhc2UpOwogCiAgICAgICAgIC8qIFNlZ21lbnQgbm90 IHZhbGlkIGZvciB1c2UgKGNvb2tlZCBtZWFuaW5nIG9mIC5wKT8gKi8KLSAgICAgICAgaWYgKCAh cmVnLT5hdHRyLmZpZWxkcy5wICkKKyAgICAgICAgaWYgKCAhcmVnLT5wICkKICAgICAgICAgICAg IGdvdG8gb3V0OwogCiAgICAgICAgIC8qIFJlYWQvd3JpdGUgcmVzdHJpY3Rpb25zIG9ubHkgZXhp c3QgZm9yIHVzZXIgc2VnbWVudHMuICovCi0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy5z ICkKKyAgICAgICAgaWYgKCByZWctPnMgKQogICAgICAgICB7CiAgICAgICAgICAgICBzd2l0Y2gg KCBhY2Nlc3NfdHlwZSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBjYXNlIGh2bV9hY2Nl c3NfcmVhZDoKLSAgICAgICAgICAgICAgICBpZiAoIChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAw eGEpID09IDB4OCApCisgICAgICAgICAgICAgICAgaWYgKCAocmVnLT50eXBlICYgMHhhKSA9PSAw eDggKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsgLyogZXhlY3V0ZS1vbmx5IGNvZGUg c2VnbWVudCAqLwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBodm1f YWNjZXNzX3dyaXRlOgotICAgICAgICAgICAgICAgIGlmICggKHJlZy0+YXR0ci5maWVsZHMudHlw ZSAmIDB4YSkgIT0gMHgyICkKKyAgICAgICAgICAgICAgICBpZiAoIChyZWctPnR5cGUgJiAweGEp ICE9IDB4MiApCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OyAvKiBub3QgYSB3cml0YWJs ZSBkYXRhIHNlZ21lbnQgKi8KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRl ZmF1bHQ6CkBAIC0yNDg4LDEwICsyNDg4LDEwIEBAIGJvb2xfdCBodm1fdmlydHVhbF90b19saW5l YXJfYWRkcigKICAgICAgICAgbGFzdF9ieXRlID0gKHVpbnQzMl90KW9mZnNldCArIGJ5dGVzIC0g ISFieXRlczsKIAogICAgICAgICAvKiBJcyB0aGlzIGEgZ3Jvd3MtZG93biBkYXRhIHNlZ21lbnQ/ IFNwZWNpYWwgbGltaXQgY2hlY2sgaWYgc28uICovCi0gICAgICAgIGlmICggcmVnLT5hdHRyLmZp ZWxkcy5zICYmIChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweGMpID09IDB4NCApCisgICAgICAg IGlmICggcmVnLT5zICYmIChyZWctPnR5cGUgJiAweGMpID09IDB4NCApCiAgICAgICAgIHsKICAg ICAgICAgICAgIC8qIElzIHVwcGVyIGxpbWl0IDB4RkZGRiBvciAweEZGRkZGRkZGPyAqLwotICAg ICAgICAgICAgaWYgKCAhcmVnLT5hdHRyLmZpZWxkcy5kYiApCisgICAgICAgICAgICBpZiAoICFy ZWctPmRiICkKICAgICAgICAgICAgICAgICBsYXN0X2J5dGUgPSAodWludDE2X3QpbGFzdF9ieXRl OwogCiAgICAgICAgICAgICAvKiBDaGVjayBmaXJzdCBieXRlIGFuZCBsYXN0IGJ5dGUgYWdhaW5z dCByZXNwZWN0aXZlIGJvdW5kcy4gKi8KQEAgLTI2ODcsNyArMjY4Nyw3IEBAIHN0YXRpYyBpbnQg aHZtX2xvYWRfc2VnbWVudF9zZWxlY3RvcigKICAgICAgICAgc2Vnci5zZWwgPSBzZWw7CiAgICAg ICAgIHNlZ3IuYmFzZSA9ICh1aW50MzJfdClzZWwgPDwgNDsKICAgICAgICAgc2Vnci5saW1pdCA9 IDB4ZmZmZnU7Ci0gICAgICAgIHNlZ3IuYXR0ci5ieXRlcyA9IDB4ZjM7CisgICAgICAgIHNlZ3Iu YXR0ciA9IDB4ZjM7CiAgICAgICAgIGh2bV9zZXRfc2VnbWVudF9yZWdpc3Rlcih2LCBzZWcsICZz ZWdyKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMjcxMSw3ICsyNzExLDcgQEAgc3Rh dGljIGludCBodm1fbG9hZF9zZWdtZW50X3NlbGVjdG9yKAogICAgICAgICB2LCAoc2VsICYgNCkg PyB4ODZfc2VnX2xkdHIgOiB4ODZfc2VnX2dkdHIsICZkZXNjdGFiKTsKIAogICAgIC8qIFNlZ21l bnQgbm90IHZhbGlkIGZvciB1c2UgKGNvb2tlZCBtZWFuaW5nIG9mIC5wKT8gKi8KLSAgICBpZiAo ICFkZXNjdGFiLmF0dHIuZmllbGRzLnAgKQorICAgIGlmICggIWRlc2N0YWIucCApCiAgICAgICAg IGdvdG8gZmFpbDsKIAogICAgIC8qIENoZWNrIGFnYWluc3QgZGVzY3JpcHRvciB0YWJsZSBsaW1p dC4gKi8KQEAgLTI3ODksMTAgKzI3ODksMTAgQEAgc3RhdGljIGludCBodm1fbG9hZF9zZWdtZW50 X3NlbGVjdG9yKAogICAgIHNlZ3IuYmFzZSA9ICgoKGRlc2MuYiA8PCAgMCkgJiAweGZmMDAwMDAw dSkgfAogICAgICAgICAgICAgICAgICAoKGRlc2MuYiA8PCAxNikgJiAweDAwZmYwMDAwdSkgfAog ICAgICAgICAgICAgICAgICAoKGRlc2MuYSA+PiAxNikgJiAweDAwMDBmZmZmdSkpOwotICAgIHNl Z3IuYXR0ci5ieXRlcyA9ICgoKGRlc2MuYiA+PiAgOCkgJiAweDAwZmZ1KSB8Ci0gICAgICAgICAg ICAgICAgICAgICAgICgoZGVzYy5iID4+IDEyKSAmIDB4MGYwMHUpKTsKKyAgICBzZWdyLmF0dHIg PSAoKChkZXNjLmIgPj4gIDgpICYgMHgwMGZmdSkgfAorICAgICAgICAgICAgICAgICAoKGRlc2Mu YiA+PiAxMikgJiAweDBmMDB1KSk7CiAgICAgc2Vnci5saW1pdCA9IChkZXNjLmIgJiAweDAwMGYw MDAwdSkgfCAoZGVzYy5hICYgMHgwMDAwZmZmZnUpOwotICAgIGlmICggc2Vnci5hdHRyLmZpZWxk cy5nICkKKyAgICBpZiAoIHNlZ3IuZyApCiAgICAgICAgIHNlZ3IubGltaXQgPSAoc2Vnci5saW1p dCA8PCAxMikgfCAweGZmZnU7CiAgICAgc2Vnci5zZWwgPSBzZWw7CiAgICAgaHZtX3NldF9zZWdt ZW50X3JlZ2lzdGVyKHYsIHNlZywgJnNlZ3IpOwpAQCAtMjg5MCwxMyArMjg5MCwxMyBAQCB2b2lk IGh2bV90YXNrX3N3aXRjaCgKICAgICB0ci5iYXNlID0gKCgodHNzX2Rlc2MuYiA8PCAgMCkgJiAw eGZmMDAwMDAwdSkgfAogICAgICAgICAgICAgICAgKCh0c3NfZGVzYy5iIDw8IDE2KSAmIDB4MDBm ZjAwMDB1KSB8CiAgICAgICAgICAgICAgICAoKHRzc19kZXNjLmEgPj4gMTYpICYgMHgwMDAwZmZm ZnUpKTsKLSAgICB0ci5hdHRyLmJ5dGVzID0gKCgodHNzX2Rlc2MuYiA+PiAgOCkgJiAweDAwZmZ1 KSB8Ci0gICAgICAgICAgICAgICAgICAgICAoKHRzc19kZXNjLmIgPj4gMTIpICYgMHgwZjAwdSkp OworICAgIHRyLmF0dHIgPSAoKCh0c3NfZGVzYy5iID4+ICA4KSAmIDB4MDBmZnUpIHwKKyAgICAg ICAgICAgICAgICgodHNzX2Rlc2MuYiA+PiAxMikgJiAweDBmMDB1KSk7CiAgICAgdHIubGltaXQg PSAodHNzX2Rlc2MuYiAmIDB4MDAwZjAwMDB1KSB8ICh0c3NfZGVzYy5hICYgMHgwMDAwZmZmZnUp OwotICAgIGlmICggdHIuYXR0ci5maWVsZHMuZyApCisgICAgaWYgKCB0ci5nICkKICAgICAgICAg dHIubGltaXQgPSAodHIubGltaXQgPDwgMTIpIHwgMHhmZmZ1OwogCi0gICAgaWYgKCB0ci5hdHRy LmZpZWxkcy50eXBlICE9ICgodGFza3N3aXRjaF9yZWFzb24gPT0gVFNXX2lyZXQpID8gMHhiIDog MHg5KSApCisgICAgaWYgKCB0ci50eXBlICE9ICgodGFza3N3aXRjaF9yZWFzb24gPT0gVFNXX2ly ZXQpID8gMHhiIDogMHg5KSApCiAgICAgewogICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlv bigKICAgICAgICAgICAgICh0YXNrc3dpdGNoX3JlYXNvbiA9PSBUU1dfaXJldCkgPyBUUkFQX2lu dmFsaWRfdHNzIDogVFJBUF9ncF9mYXVsdCwKQEAgLTI5MDQsNyArMjkwNCw3IEBAIHZvaWQgaHZt X3Rhc2tfc3dpdGNoKAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBpZiAoICF0ci5h dHRyLmZpZWxkcy5wICkKKyAgICBpZiAoICF0ci5wICkKICAgICB7CiAgICAgICAgIGh2bV9pbmpl Y3RfaHdfZXhjZXB0aW9uKFRSQVBfbm9fc2VnbWVudCwgdHNzX3NlbCAmIDB4ZmZmOCk7CiAgICAg ICAgIGdvdG8gb3V0OwpAQCAtMzAyMiw3ICszMDIyLDcgQEAgdm9pZCBodm1fdGFza19zd2l0Y2go CiAgICAgICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICB0ci5hdHRyLmZpZWxkcy50eXBl ID0gMHhiOyAvKiBidXN5IDMyLWJpdCB0c3MgKi8KKyAgICB0ci50eXBlID0gMHhiOyAvKiBidXN5 IDMyLWJpdCB0c3MgKi8KICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ190 ciwgJnRyKTsKIAogICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF0gfD0gWDg2X0NSMF9U UzsKQEAgLTMwNDIsOSArMzA0Miw5IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogICAgICAgICB1 bnNpZ25lZCBpbnQgb3Bzeiwgc3A7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVy KHYsIHg4Nl9zZWdfY3MsICZjcyk7Ci0gICAgICAgIG9wc3ogPSBjcy5hdHRyLmZpZWxkcy5kYiA/ IDQgOiAyOworICAgICAgICBvcHN6ID0gY3MuZGIgPyA0IDogMjsKICAgICAgICAgaHZtX2dldF9z ZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfc3MsICZzZWdyKTsKLSAgICAgICAgaWYgKCBzZWdy LmF0dHIuZmllbGRzLmRiICkKKyAgICAgICAgaWYgKCBzZWdyLmRiICkKICAgICAgICAgICAgIHNw ID0gcmVncy0+ZXNwIC09IG9wc3o7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHNwID0gcmVn cy0+c3AgLT0gb3BzejsKQEAgLTM2NjQsNyArMzY2NCw3IEBAIHZvaWQgaHZtX3VkX2ludGVyY2Vw dChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBpZiAoIG9wdF9odm1fZmVwICkKICAg ICB7CiAgICAgICAgIGNvbnN0IHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyICpjcyA9ICZjdHh0LnNl Z19yZWdbeDg2X3NlZ19jc107Ci0gICAgICAgIHVpbnQzMl90IHdhbGsgPSAoY3R4dC5zZWdfcmVn W3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAzKQorICAgICAgICB1aW50MzJfdCB3YWxr ID0gKGN0eHQuc2VnX3JlZ1t4ODZfc2VnX3NzXS5kcGwgPT0gMykKICAgICAgICAgICAgID8gUEZF Q191c2VyX21vZGUgOiAwOwogICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHI7CiAgICAgICAgIGNo YXIgc2lnWzVdOyAvKiB1ZDI7IC5hc2NpaSAieGVuIiAqLwpAQCAtMzY4MCw3ICszNjgwLDcgQEAg dm9pZCBodm1fdWRfaW50ZXJjZXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAg ICAgICAgcmVncy0+ZWZsYWdzICY9IH5YODZfRUZMQUdTX1JGOwogCiAgICAgICAgICAgICAvKiBa ZXJvIHRoZSB1cHBlciAzMiBiaXRzIG9mICVyaXAgaWYgbm90IGluIDY0Yml0IG1vZGUuICovCi0g ICAgICAgICAgICBpZiAoICEoaHZtX2xvbmdfbW9kZV9hY3RpdmUoY3VyKSAmJiBjcy0+YXR0ci5m aWVsZHMubCkgKQorICAgICAgICAgICAgaWYgKCAhKGh2bV9sb25nX21vZGVfYWN0aXZlKGN1cikg JiYgY3MtPmwpICkKICAgICAgICAgICAgICAgICByZWdzLT5yaXAgPSByZWdzLT5laXA7CiAKICAg ICAgICAgICAgIGFkZF90YWludChUQUlOVF9IVk1fRkVQKTsKQEAgLTM4MzIsMjUgKzM4MzIsMjUg QEAgdm9pZCBodm1fdmNwdV9yZXNldF9zdGF0ZShzdHJ1Y3QgdmNwdSAqdiwgdWludDE2X3QgY3Ms IHVpbnQxNl90IGlwKQogICAgIHJlZy5zZWwgPSBjczsKICAgICByZWcuYmFzZSA9ICh1aW50MzJf dClyZWcuc2VsIDw8IDQ7CiAgICAgcmVnLmxpbWl0ID0gMHhmZmZmOwotICAgIHJlZy5hdHRyLmJ5 dGVzID0gMHgwOWI7CisgICAgcmVnLmF0dHIgPSAweDA5YjsKICAgICBodm1fc2V0X3NlZ21lbnRf cmVnaXN0ZXIodiwgeDg2X3NlZ19jcywgJnJlZyk7CiAKICAgICByZWcuc2VsID0gcmVnLmJhc2Ug PSAwOwogICAgIHJlZy5saW1pdCA9IDB4ZmZmZjsKLSAgICByZWcuYXR0ci5ieXRlcyA9IDB4MDkz OworICAgIHJlZy5hdHRyID0gMHgwOTM7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYs IHg4Nl9zZWdfZHMsICZyZWcpOwogICAgIGh2bV9zZXRfc2VnbWVudF9yZWdpc3Rlcih2LCB4ODZf c2VnX2VzLCAmcmVnKTsKICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19m cywgJnJlZyk7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZ3MsICZy ZWcpOwogICAgIGh2bV9zZXRfc2VnbWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX3NzLCAmcmVnKTsK IAotICAgIHJlZy5hdHRyLmJ5dGVzID0gMHg4MjsgLyogTERUICovCisgICAgcmVnLmF0dHIgPSAw eDgyOyAvKiBMRFQgKi8KICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19s ZHRyLCAmcmVnKTsKIAotICAgIHJlZy5hdHRyLmJ5dGVzID0gMHg4YjsgLyogMzItYml0IFRTUyAo YnVzeSkgKi8KKyAgICByZWcuYXR0ciA9IDB4OGI7IC8qIDMyLWJpdCBUU1MgKGJ1c3kpICovCiAg ICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfdHIsICZyZWcpOwogCi0gICAg cmVnLmF0dHIuYnl0ZXMgPSAwOworICAgIHJlZy5hdHRyID0gMDsKICAgICBodm1fc2V0X3NlZ21l bnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19nZHRyLCAmcmVnKTsKICAgICBodm1fc2V0X3NlZ21lbnRf cmVnaXN0ZXIodiwgeDg2X3NlZ19pZHRyLCAmcmVnKTsKIApAQCAtNDc4Niw4ICs0Nzg2LDggQEAg dm9pZCBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0geDg2X3Nl Z21lbnQgc2VnLAogICAgIHsKICAgICBjYXNlIHg4Nl9zZWdfc3M6CiAgICAgICAgIC8qIFNWTSBt YXkgcmV0YWluICVzcy5EQiB3aGVuICVzcyBpcyBsb2FkZWQgd2l0aCBhIE5VTEwgc2VsZWN0b3Iu ICovCi0gICAgICAgIGlmICggIXJlZy0+YXR0ci5maWVsZHMucCApCi0gICAgICAgICAgICByZWct PmF0dHIuZmllbGRzLmRiID0gMDsKKyAgICAgICAgaWYgKCAhcmVnLT5wICkKKyAgICAgICAgICAg IHJlZy0+ZGIgPSAwOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgeDg2X3NlZ190cjoKQEAg LTQ3OTUsMTQgKzQ3OTUsMTQgQEAgdm9pZCBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0 IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAgICAgICAgKiBTVk0gZG9lc24ndCB0 cmFjayAldHIuQi4gQXJjaGl0ZWN0dXJhbGx5LCBhIGxvYWRlZCBUU1Mgc2VnbWVudCB3aWxsCiAg ICAgICAgICAqIGFsd2F5cyBiZSBidXN5LgogICAgICAgICAgKi8KLSAgICAgICAgcmVnLT5hdHRy LmZpZWxkcy50eXBlIHw9IDB4MjsKKyAgICAgICAgcmVnLT50eXBlIHw9IDB4MjsKIAogICAgICAg ICAvKgogICAgICAgICAgKiAlY3MgYW5kICV0ciBhcmUgdW5jb25kaXRpb25hbGx5IHByZXNlbnQu ICBTVk0gaWdub3JlcyB0aGVzZSBwcmVzZW50CiAgICAgICAgICAqIGJpdHMgYW5kIHdpbGwgaGFw cGlseSBydW4gd2l0aG91dCB0aGVtIHNldC4KICAgICAgICAgICovCiAgICAgY2FzZSB4ODZfc2Vn X2NzOgotICAgICAgICByZWctPmF0dHIuZmllbGRzLnAgPSAxOworICAgICAgICByZWctPnAgPSAx OwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgeDg2X3NlZ19nZHRyOgpAQCAtNDgxMSwyMSAr NDgxMSwyMSBAQCB2b2lkIGh2bV9nZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwg ZW51bSB4ODZfc2VnbWVudCBzZWcsCiAgICAgICAgICAqIFRyZWF0IEdEVFIvSURUUiBhcyBiZWlu ZyBwcmVzZW50IHN5c3RlbSBzZWdtZW50cy4gIFRoaXMgYXZvaWRzIHRoZW0KICAgICAgICAgICog bmVlZGluZyBzcGVjaWFsIGNhc2luZyBmb3Igc2VnbWVudGF0aW9uIGNoZWNrcy4KICAgICAgICAg ICovCi0gICAgICAgIHJlZy0+YXR0ci5ieXRlcyA9IDB4ODA7CisgICAgICAgIHJlZy0+YXR0ciA9 IDB4ODA7CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDogLyogQXZvaWQgdHJpZ2dlcmlu ZyAtV2Vycm9yPXN3aXRjaCAqLwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAoIHJl Zy0+YXR0ci5maWVsZHMucCApCisgICAgaWYgKCByZWctPnAgKQogICAgIHsKICAgICAgICAgLyoK ICAgICAgICAgICogRm9yIHNlZ21lbnRzIHdoaWNoIGFyZSBwcmVzZW50L3VzYWJsZSwgY29vayB0 aGUgc3lzdGVtIGZsYWcuICBTVk0KICAgICAgICAgICogaWdub3JlcyB0aGUgUyBiaXQgb24gYWxs IHNlZ21lbnRzIGFuZCB3aWxsIGhhcHBpbHkgcnVuIHdpdGggdGhlbSBpbgogICAgICAgICAgKiBh bnkgc3RhdGUuCiAgICAgICAgICAqLwotICAgICAgICByZWctPmF0dHIuZmllbGRzLnMgPSBpc194 ODZfdXNlcl9zZWdtZW50KHNlZyk7CisgICAgICAgIHJlZy0+cyA9IGlzX3g4Nl91c2VyX3NlZ21l bnQoc2VnKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBTVk0gZGlzY2FyZHMgJWNzLkcgb24g I1ZNRVhJVC4gIE90aGVyIHVzZXIgc2VnbWVudHMgZG8gaGF2ZSAuRwpAQCAtNDgzNSwxNCArNDgz NSwxNCBAQCB2b2lkIGh2bV9nZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51 bSB4ODZfc2VnbWVudCBzZWcsCiAgICAgICAgICAqCiAgICAgICAgICAqIFVuY29uZGl0aW9uYWxs eSByZWNhbGN1bGF0ZSBHLgogICAgICAgICAgKi8KLSAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5n ID0gISEocmVnLT5saW1pdCA+PiAyMCk7CisgICAgICAgIHJlZy0+ZyA9ICEhKHJlZy0+bGltaXQg Pj4gMjApOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIFNWTSBkb2Vzbid0IHRyYWNrIHRoZSBB Y2Nlc3NlZCBmbGFnLiAgSXQgd2lsbCBhbHdheXMgYmUgc2V0IGZvcgogICAgICAgICAgKiB1c2Fi bGUgdXNlciBzZWdtZW50cyBsb2FkZWQgaW50byB0aGUgZGVzY3JpcHRvciBjYWNoZS4KICAgICAg ICAgICovCiAgICAgICAgIGlmICggaXNfeDg2X3VzZXJfc2VnbWVudChzZWcpICkKLSAgICAgICAg ICAgIHJlZy0+YXR0ci5maWVsZHMudHlwZSB8PSAweDE7CisgICAgICAgICAgICByZWctPnR5cGUg fD0gMHgxOwogICAgIH0KIH0KIApAQCAtNDg1MCwyNSArNDg1MCwyNSBAQCB2b2lkIGh2bV9zZXRf c2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciAqcmVn KQogewogICAgIC8qIFNldCBHIHRvIG1hdGNoIHRoZSBsaW1pdCBmaWVsZC4gIFZULXggY2FyZXMs IHdoaWxlIFNWTSBkb2Vzbid0LiAqLwotICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy5wICkKLSAg ICAgICAgcmVnLT5hdHRyLmZpZWxkcy5nID0gISEocmVnLT5saW1pdCA+PiAyMCk7CisgICAgaWYg KCByZWctPnAgKQorICAgICAgICByZWctPmcgPSAhIShyZWctPmxpbWl0ID4+IDIwKTsKIAogICAg IHN3aXRjaCAoIHNlZyApCiAgICAgewogICAgIGNhc2UgeDg2X3NlZ19jczoKLSAgICAgICAgQVNT RVJUKHJlZy0+YXR0ci5maWVsZHMucCk7ICAgICAgICAgICAgICAgICAgLyogVXNhYmxlLiAqLwot ICAgICAgICBBU1NFUlQocmVnLT5hdHRyLmZpZWxkcy5zKTsgICAgICAgICAgICAgICAgICAvKiBV c2VyIHNlZ21lbnQuICovCi0gICAgICAgIEFTU0VSVChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAw eDEpOyAgICAgICAgIC8qIEFjY2Vzc2VkLiAqLworICAgICAgICBBU1NFUlQocmVnLT5wKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVc2FibGUuICovCisgICAgICAgIEFTU0VSVChy ZWctPnMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVzZXIgc2VnbWVudC4gKi8K KyAgICAgICAgQVNTRVJUKHJlZy0+dHlwZSAmIDB4MSk7ICAgICAgICAgICAgICAgICAgICAgLyog QWNjZXNzZWQuICovCiAgICAgICAgIEFTU0VSVCgocmVnLT5iYXNlID4+IDMyKSA9PSAwKTsgICAg ICAgICAgICAgIC8qIFVwcGVyIGJpdHMgY2xlYXIuICovCiAgICAgICAgIGJyZWFrOwogCiAgICAg Y2FzZSB4ODZfc2VnX3NzOgotICAgICAgICBpZiAoIHJlZy0+YXR0ci5maWVsZHMucCApCisgICAg ICAgIGlmICggcmVnLT5wICkKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKHJlZy0+YXR0 ci5maWVsZHMucyk7ICAgICAgICAgICAgICAvKiBVc2VyIHNlZ21lbnQuICovCi0gICAgICAgICAg ICBBU1NFUlQoIShyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDgpKTsgIC8qIERhdGEgc2VnbWVu dC4gKi8KLSAgICAgICAgICAgIEFTU0VSVChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDIpOyAg ICAgLyogV3JpdGVhYmxlLiAqLwotICAgICAgICAgICAgQVNTRVJUKHJlZy0+YXR0ci5maWVsZHMu dHlwZSAmIDB4MSk7ICAgICAvKiBBY2Nlc3NlZC4gKi8KKyAgICAgICAgICAgIEFTU0VSVChyZWct PnMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVXNlciBzZWdtZW50LiAqLworICAgICAg ICAgICAgQVNTRVJUKCEocmVnLT50eXBlICYgMHg4KSk7ICAgICAgICAgICAgICAvKiBEYXRhIHNl Z21lbnQuICovCisgICAgICAgICAgICBBU1NFUlQocmVnLT50eXBlICYgMHgyKTsgICAgICAgICAg ICAgICAgIC8qIFdyaXRlYWJsZS4gKi8KKyAgICAgICAgICAgIEFTU0VSVChyZWctPnR5cGUgJiAw eDEpOyAgICAgICAgICAgICAgICAgLyogQWNjZXNzZWQuICovCiAgICAgICAgICAgICBBU1NFUlQo KHJlZy0+YmFzZSA+PiAzMikgPT0gMCk7ICAgICAgICAgIC8qIFVwcGVyIGJpdHMgY2xlYXIuICov CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC00ODc3LDE0ICs0ODc3LDE0IEBAIHZvaWQg aHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50 IHNlZywKICAgICBjYXNlIHg4Nl9zZWdfZXM6CiAgICAgY2FzZSB4ODZfc2VnX2ZzOgogICAgIGNh c2UgeDg2X3NlZ19nczoKLSAgICAgICAgaWYgKCByZWctPmF0dHIuZmllbGRzLnAgKQorICAgICAg ICBpZiAoIHJlZy0+cCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChyZWctPmF0dHIu ZmllbGRzLnMpOyAgICAgICAgICAgICAgLyogVXNlciBzZWdtZW50LiAqLworICAgICAgICAgICAg QVNTRVJUKHJlZy0+cyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVc2VyIHNlZ21lbnQu ICovCiAKLSAgICAgICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHg4ICkKLSAg ICAgICAgICAgICAgICBBU1NFUlQocmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHgyKTsgLyogUmVh ZGFibGUuICovCisgICAgICAgICAgICBpZiAoIHJlZy0+dHlwZSAmIDB4OCApCisgICAgICAgICAg ICAgICAgQVNTRVJUKHJlZy0+dHlwZSAmIDB4Mik7ICAgICAgICAgICAgIC8qIFJlYWRhYmxlLiAq LwogCi0gICAgICAgICAgICBBU1NFUlQocmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHgxKTsgICAg IC8qIEFjY2Vzc2VkLiAqLworICAgICAgICAgICAgQVNTRVJUKHJlZy0+dHlwZSAmIDB4MSk7ICAg ICAgICAgICAgICAgICAvKiBBY2Nlc3NlZC4gKi8KIAogICAgICAgICAgICAgaWYgKCBzZWcgPT0g eDg2X3NlZ19mcyB8fCBzZWcgPT0geDg2X3NlZ19ncyApCiAgICAgICAgICAgICAgICAgQVNTRVJU KGlzX2Nhbm9uaWNhbF9hZGRyZXNzKHJlZy0+YmFzZSkpOwpAQCAtNDg5NCwyMyArNDg5NCwyMyBA QCB2b2lkIGh2bV9zZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZf c2VnbWVudCBzZWcsCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSB4ODZfc2VnX3RyOgotICAg ICAgICBBU1NFUlQocmVnLT5hdHRyLmZpZWxkcy5wKTsgICAgICAgICAgICAgICAgICAvKiBVc2Fi bGUuICovCi0gICAgICAgIEFTU0VSVCghcmVnLT5hdHRyLmZpZWxkcy5zKTsgICAgICAgICAgICAg ICAgIC8qIFN5c3RlbSBzZWdtZW50LiAqLworICAgICAgICBBU1NFUlQocmVnLT5wKTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBVc2FibGUuICovCisgICAgICAgIEFTU0VSVCghcmVn LT5zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBzZWdtZW50LiAqLwog ICAgICAgICBBU1NFUlQoIShyZWctPnNlbCAmIDB4NCkpOyAgICAgICAgICAgICAgICAgICAvKiAh VEkuICovCi0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBlID09IFNZU19ERVNDX3Rz c19idXN5ICkKKyAgICAgICAgaWYgKCByZWctPnR5cGUgPT0gU1lTX0RFU0NfdHNzX2J1c3kgKQog ICAgICAgICAgICAgQVNTRVJUKGlzX2Nhbm9uaWNhbF9hZGRyZXNzKHJlZy0+YmFzZSkpOwotICAg ICAgICBlbHNlIGlmICggcmVnLT5hdHRyLmZpZWxkcy50eXBlID09IFNZU19ERVNDX3RzczE2X2J1 c3kgKQorICAgICAgICBlbHNlIGlmICggcmVnLT50eXBlID09IFNZU19ERVNDX3RzczE2X2J1c3kg KQogICAgICAgICAgICAgQVNTRVJUKChyZWctPmJhc2UgPj4gMzIpID09IDApOwogICAgICAgICBl bHNlCiAgICAgICAgICAgICBBU1NFUlQoISIldHIgdHlwZWNoZWNrIGZhaWx1cmUiKTsKICAgICAg ICAgYnJlYWs7CiAKICAgICBjYXNlIHg4Nl9zZWdfbGR0cjoKLSAgICAgICAgaWYgKCByZWctPmF0 dHIuZmllbGRzLnAgKQorICAgICAgICBpZiAoIHJlZy0+cCApCiAgICAgICAgIHsKLSAgICAgICAg ICAgIEFTU0VSVCghcmVnLT5hdHRyLmZpZWxkcy5zKTsgICAgICAgICAgICAgLyogU3lzdGVtIHNl Z21lbnQuICovCisgICAgICAgICAgICBBU1NFUlQoIXJlZy0+cyk7ICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIFN5c3RlbSBzZWdtZW50LiAqLwogICAgICAgICAgICAgQVNTRVJUKCEocmVnLT5z ZWwgJiAweDQpKTsgICAgICAgICAgICAgICAvKiAhVEkuICovCi0gICAgICAgICAgICBBU1NFUlQo cmVnLT5hdHRyLmZpZWxkcy50eXBlID09IFNZU19ERVNDX2xkdCk7CisgICAgICAgICAgICBBU1NF UlQocmVnLT50eXBlID09IFNZU19ERVNDX2xkdCk7CiAgICAgICAgICAgICBBU1NFUlQoaXNfY2Fu b25pY2FsX2FkZHJlc3MocmVnLT5iYXNlKSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0v c3ZtL3N2bS5jCmluZGV4IDQwMmU4MTUuLjI0NGRhMTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vc3ZtL3N2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCkBAIC01MjYs OSArNTI2LDkgQEAgc3RhdGljIGludCBzdm1fZ3Vlc3RfeDg2X21vZGUoc3RydWN0IHZjcHUgKnYp CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICggdW5saWtlbHkoZ3Vlc3RfY3B1X3VzZXJfcmVn cygpLT5lZmxhZ3MgJiBYODZfRUZMQUdTX1ZNKSApCiAgICAgICAgIHJldHVybiAxOwotICAgIGlm ICggaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgJiYgbGlrZWx5KHZtY2ItPmNzLmF0dHIuZmllbGRz LmwpICkKKyAgICBpZiAoIGh2bV9sb25nX21vZGVfYWN0aXZlKHYpICYmIGxpa2VseSh2bWNiLT5j cy5sKSApCiAgICAgICAgIHJldHVybiA4OwotICAgIHJldHVybiAobGlrZWx5KHZtY2ItPmNzLmF0 dHIuZmllbGRzLmRiKSA/IDQgOiAyKTsKKyAgICByZXR1cm4gbGlrZWx5KHZtY2ItPmNzLmRiKSA/ IDQgOiAyOwogfQogCiB2b2lkIHN2bV91cGRhdGVfZ3Vlc3RfY3Ioc3RydWN0IHZjcHUgKnYsIHVu c2lnbmVkIGludCBjcikKQEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCBzdm1fZ2V0X3Nl Z21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAg ICAgICBicmVhazsKICAgICBjYXNlIHg4Nl9zZWdfc3M6CiAgICAgICAgICpyZWcgPSB2bWNiLT5z czsKLSAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5kcGwgPSB2bWNiX2dldF9jcGwodm1jYik7Cisg ICAgICAgIHJlZy0+ZHBsID0gdm1jYl9nZXRfY3BsKHZtY2IpOwogICAgICAgICBicmVhazsKICAg ICBjYXNlIHg4Nl9zZWdfdHI6CiAgICAgICAgIHN2bV9zeW5jX3ZtY2Iodik7CkBAIC03MjYsNyAr NzI2LDcgQEAgc3RhdGljIHZvaWQgc3ZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1 ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSB4ODZf c2VnX3NzOgogICAgICAgICB2bWNiLT5zcyA9ICpyZWc7Ci0gICAgICAgIHZtY2Jfc2V0X2NwbCh2 bWNiLCByZWctPmF0dHIuZmllbGRzLmRwbCk7CisgICAgICAgIHZtY2Jfc2V0X2NwbCh2bWNiLCBy ZWctPmRwbCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgeDg2X3NlZ190cjoKICAgICAgICAg dm1jYi0+dHIgPSAqcmVnOwpAQCAtMTQ0Miw3ICsxNDQyLDcgQEAgc3RhdGljIHZvaWQgc3ZtX2lu amVjdF9ldmVudChjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpldmVudCkKICAgICAgKiBJZiBpbmpl Y3RpbmcgYW4gZXZlbnQgb3V0c2lkZSBvZiA2NGJpdCBtb2RlLCB6ZXJvIHRoZSB1cHBlciBiaXRz IG9mIHRoZQogICAgICAqICVlaXAgYW5kIG5leHRyaXAgYWZ0ZXIgdGhlIGFkanVzdG1lbnRzIGFi b3ZlLgogICAgICAqLwotICAgIGlmICggISgodm1jYl9nZXRfZWZlcih2bWNiKSAmIEVGRVJfTE1B KSAmJiB2bWNiLT5jcy5hdHRyLmZpZWxkcy5sKSApCisgICAgaWYgKCAhKCh2bWNiX2dldF9lZmVy KHZtY2IpICYgRUZFUl9MTUEpICYmIHZtY2ItPmNzLmwpICkKICAgICB7CiAgICAgICAgIHJlZ3Mt PnJpcCA9IHJlZ3MtPmVpcDsKICAgICAgICAgdm1jYi0+bmV4dHJpcCA9ICh1aW50MzJfdCl2bWNi LT5uZXh0cmlwOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtZGVidWcuYyBi L3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bWRlYnVnLmMKaW5kZXggYTNmODY4NS4uY2U3ODhlNCAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtZGVidWcuYworKysgYi94ZW4vYXJj aC94ODYvaHZtL3N2bS9zdm1kZWJ1Zy5jCkBAIC0yNCw3ICsyNCw3IEBACiBzdGF0aWMgdm9pZCBz dm1fZHVtcF9zZWwoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qgc3ZtX3NlZ21lbnRfcmVnaXN0ZXJf dCAqcykKIHsKICAgICBwcmludGsoIiVzOiAlMDR4ICUwNHggJTA4eCAlMDE2IlBSSXg2NCJcbiIs Ci0gICAgICAgICAgIG5hbWUsIHMtPnNlbCwgcy0+YXR0ci5ieXRlcywgcy0+bGltaXQsIHMtPmJh c2UpOworICAgICAgICAgICBuYW1lLCBzLT5zZWwsIHMtPmF0dHIsIHMtPmxpbWl0LCBzLT5iYXNl KTsKIH0KIAogdm9pZCBzdm1fdm1jYl9kdW1wKGNvbnN0IGNoYXIgKmZyb20sIGNvbnN0IHN0cnVj dCB2bWNiX3N0cnVjdCAqdm1jYikKQEAgLTE0Nyw3ICsxNDcsNyBAQCBib29sIHN2bV92bWNiX2lz dmFsaWQoY29uc3QgY2hhciAqZnJvbSwgY29uc3Qgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiLAog ICAgIH0KIAogICAgIGlmICggKGVmZXIgJiBFRkVSX0xNRSkgJiYgKGNyMCAmIFg4Nl9DUjBfUEcp ICYmIChjcjQgJiBYODZfQ1I0X1BBRSkgJiYKLSAgICAgICAgIHZtY2ItPmNzLmF0dHIuZmllbGRz LmwgJiYgdm1jYi0+Y3MuYXR0ci5maWVsZHMuZGIgKQorICAgICAgICAgdm1jYi0+Y3MubCAmJiB2 bWNiLT5jcy5kYiApCiAgICAgICAgIFBSSU5URigiRUZFUl9MTUUsIENSMC5QRywgQ1I0LlBBRSwg Q1MuTCBhbmQgQ1MuRCBhcmUgYWxsIG5vbi16ZXJvXG4iKTsKIAogICAgIGlmICggISh2bWNiX2dl dF9nZW5lcmFsMl9pbnRlcmNlcHRzKHZtY2IpICYgR0VORVJBTDJfSU5URVJDRVBUX1ZNUlVOKSAp CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS92bWNiLmMgYi94ZW4vYXJjaC94ODYv aHZtL3N2bS92bWNiLmMKaW5kZXggOTZhYmY4ZC4uODJmZTlkMiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS9zdm0vdm1jYi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3ZtY2IuYwpA QCAtMTU4LDEyICsxNTgsMTIgQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfdm1jYihzdHJ1Y3QgdmNw dSAqdikKICAgICB2bWNiLT5ncy5iYXNlID0gMDsKIAogICAgIC8qIEd1ZXN0IHNlZ21lbnQgQVIg Ynl0ZXMuICovCi0gICAgdm1jYi0+ZXMuYXR0ci5ieXRlcyA9IDB4YzkzOyAvKiByZWFkL3dyaXRl LCBhY2Nlc3NlZCAqLwotICAgIHZtY2ItPnNzLmF0dHIuYnl0ZXMgPSAweGM5MzsKLSAgICB2bWNi LT5kcy5hdHRyLmJ5dGVzID0gMHhjOTM7Ci0gICAgdm1jYi0+ZnMuYXR0ci5ieXRlcyA9IDB4Yzkz OwotICAgIHZtY2ItPmdzLmF0dHIuYnl0ZXMgPSAweGM5MzsKLSAgICB2bWNiLT5jcy5hdHRyLmJ5 dGVzID0gMHhjOWI7IC8qIGV4ZWMvcmVhZCwgYWNjZXNzZWQgKi8KKyAgICB2bWNiLT5lcy5hdHRy ID0gMHhjOTM7IC8qIHJlYWQvd3JpdGUsIGFjY2Vzc2VkICovCisgICAgdm1jYi0+c3MuYXR0ciA9 IDB4YzkzOworICAgIHZtY2ItPmRzLmF0dHIgPSAweGM5MzsKKyAgICB2bWNiLT5mcy5hdHRyID0g MHhjOTM7CisgICAgdm1jYi0+Z3MuYXR0ciA9IDB4YzkzOworICAgIHZtY2ItPmNzLmF0dHIgPSAw eGM5YjsgLyogZXhlYy9yZWFkLCBhY2Nlc3NlZCAqLwogCiAgICAgLyogR3Vlc3QgSURULiAqLwog ICAgIHZtY2ItPmlkdHIuYmFzZSA9IDA7CkBAIC0xNzcsMTAgKzE3NywxMCBAQCBzdGF0aWMgaW50 IGNvbnN0cnVjdF92bWNiKHN0cnVjdCB2Y3B1ICp2KQogICAgIHZtY2ItPmxkdHIuc2VsID0gMDsK ICAgICB2bWNiLT5sZHRyLmJhc2UgPSAwOwogICAgIHZtY2ItPmxkdHIubGltaXQgPSAwOwotICAg IHZtY2ItPmxkdHIuYXR0ci5ieXRlcyA9IDA7CisgICAgdm1jYi0+bGR0ci5hdHRyID0gMDsKIAog ICAgIC8qIEd1ZXN0IFRTUy4gKi8KLSAgICB2bWNiLT50ci5hdHRyLmJ5dGVzID0gMHgwOGI7IC8q IDMyLWJpdCBUU1MgKGJ1c3kpICovCisgICAgdm1jYi0+dHIuYXR0ciA9IDB4MDhiOyAvKiAzMi1i aXQgVFNTIChidXN5KSAqLwogICAgIHZtY2ItPnRyLmJhc2UgPSAwOwogICAgIHZtY2ItPnRyLmxp bWl0ID0gMHhmZjsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUu YyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMKaW5kZXggMTk5NmIxZi4uMTFiZGU1 OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYworKysgYi94ZW4v YXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyB2b2lk IHJlYWxtb2RlX2RlbGl2ZXJfZXhjZXB0aW9uKAogICAgIGZyYW1lWzJdID0gcmVncy0+ZmxhZ3Mg JiB+WDg2X0VGTEFHU19SRjsKIAogICAgIC8qIFdlIGNhbid0IHRlc3QgaHZtZW11bF9jdHh0LT5j dHh0LnNwX3NpemU6IGl0IG1heSBub3QgYmUgaW5pdGlhbGlzZWQuICovCi0gICAgaWYgKCBodm1l bXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5maWVsZHMuZGIgKQorICAgIGlmICgg aHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfc3NdLmRiICkKICAgICAgICAgcHN0ayA9IHJl Z3MtPmVzcCAtPSA2OwogICAgIGVsc2UKICAgICAgICAgcHN0ayA9IHJlZ3MtPnNwIC09IDY7CkBA IC0yMDcsMTMgKzIwNywxMyBAQCB2b2lkIHZteF9yZWFsbW9kZShzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKICAgICAgICAgICogRFMsIEVTLCBGUyBhbmQgR1MgdGhlIG1vc3QgdW5pbnZhc2l2 ZSB0cmljayBpcyB0byBzZXQgRFBMID09IFJQTC4KICAgICAgICAgICovCiAgICAgICAgIHNyZWcg PSBodm1lbXVsX2dldF9zZWdfcmVnKHg4Nl9zZWdfZHMsICZodm1lbXVsX2N0eHQpOwotICAgICAg ICBzcmVnLT5hdHRyLmZpZWxkcy5kcGwgPSBzcmVnLT5zZWwgJiAzOworICAgICAgICBzcmVnLT5k cGwgPSBzcmVnLT5zZWwgJiAzOwogICAgICAgICBzcmVnID0gaHZtZW11bF9nZXRfc2VnX3JlZyh4 ODZfc2VnX2VzLCAmaHZtZW11bF9jdHh0KTsKLSAgICAgICAgc3JlZy0+YXR0ci5maWVsZHMuZHBs ID0gc3JlZy0+c2VsICYgMzsKKyAgICAgICAgc3JlZy0+ZHBsID0gc3JlZy0+c2VsICYgMzsKICAg ICAgICAgc3JlZyA9IGh2bWVtdWxfZ2V0X3NlZ19yZWcoeDg2X3NlZ19mcywgJmh2bWVtdWxfY3R4 dCk7Ci0gICAgICAgIHNyZWctPmF0dHIuZmllbGRzLmRwbCA9IHNyZWctPnNlbCAmIDM7CisgICAg ICAgIHNyZWctPmRwbCA9IHNyZWctPnNlbCAmIDM7CiAgICAgICAgIHNyZWcgPSBodm1lbXVsX2dl dF9zZWdfcmVnKHg4Nl9zZWdfZ3MsICZodm1lbXVsX2N0eHQpOwotICAgICAgICBzcmVnLT5hdHRy LmZpZWxkcy5kcGwgPSBzcmVnLT5zZWwgJiAzOworICAgICAgICBzcmVnLT5kcGwgPSBzcmVnLT5z ZWwgJiAzOwogICAgICAgICBodm1lbXVsX2N0eHQuc2VnX3JlZ19kaXJ0eSB8PQogICAgICAgICAg ICAgKDF1bCA8PCB4ODZfc2VnX2RzKSB8ICgxdWwgPDwgeDg2X3NlZ19lcykgfAogICAgICAgICAg ICAgKDF1bCA8PCB4ODZfc2VnX2ZzKSB8ICgxdWwgPDwgeDg2X3NlZ19ncyk7CmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j CmluZGV4IDAwYTUyMWQuLmZkMjA1NTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC0xMDY4LDI0ICsxMDY4 LDIwIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgX3ZteF9nZXRfY3BsKHN0cnVjdCB2Y3B1ICp2KQog ICAgIHJldHVybiBjcGw7CiB9CiAKLS8qIFNETSB2b2x1bWUgM2Igc2VjdGlvbiAyMi4zLjEuMjog d2UgY2FuIG9ubHkgZW50ZXIgdmlydHVhbCA4MDg2IG1vZGUKLSAqIGlmIGFsbCBvZiBDUywgU1Ms IERTLCBFUywgRlMgYW5kIEdTIGFyZSAxNmJpdCByaW5nLTMgZGF0YSBzZWdtZW50cy4KLSAqIFRo ZSBndWVzdCB0aGlua3MgaXQncyBnb3QgcmluZy0wIHNlZ21lbnRzLCBzbyB3ZSBuZWVkIHRvIGZ1 ZGdlCi0gKiB0aGluZ3MuICBXZSBzdG9yZSB0aGUgcmluZy0zIHZlcnNpb24gaW4gdGhlIFZNQ1Mg dG8gYXZvaWQgbG90cyBvZgotICogc2h1ZmZsaW5nIG9uIHZtZW50ZXIgYW5kIHZtZXhpdCwgYW5k IHRyYW5zbGF0ZSBpbiB0aGVzZSBhY2Nlc3NvcnMuICovCi0KLSNkZWZpbmUgcm1fY3NfYXR0ciAo KCh1bmlvbiBzZWdtZW50X2F0dHJpYnV0ZXMpIHsgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgICAgLmZpZWxkcyA9IHsgLnR5cGUgPSAweGIsIC5zID0gMSwgLmRwbCA9IDAsIC5wID0gMSwg LmF2bCA9IDAsICAgIFwKLSAgICAgICAgICAgICAgICAgICAgLmwgPSAwLCAuZGIgPSAwLCAuZyA9 IDAsIC5wYWQgPSAwIH0gfSkuYnl0ZXMpCi0jZGVmaW5lIHJtX2RzX2F0dHIgKCgodW5pb24gc2Vn bWVudF9hdHRyaWJ1dGVzKSB7ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIC5maWVs ZHMgPSB7IC50eXBlID0gMHgzLCAucyA9IDEsIC5kcGwgPSAwLCAucCA9IDEsIC5hdmwgPSAwLCAg ICBcCi0gICAgICAgICAgICAgICAgICAgIC5sID0gMCwgLmRiID0gMCwgLmcgPSAwLCAucGFkID0g MCB9IH0pLmJ5dGVzKQotI2RlZmluZSB2bTg2X2RzX2F0dHIgKCgodW5pb24gc2VnbWVudF9hdHRy aWJ1dGVzKSB7ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAuZmllbGRzID0geyAudHlw ZSA9IDB4MywgLnMgPSAxLCAuZHBsID0gMywgLnAgPSAxLCAuYXZsID0gMCwgICAgXAotICAgICAg ICAgICAgICAgICAgICAubCA9IDAsIC5kYiA9IDAsIC5nID0gMCwgLnBhZCA9IDAgfSB9KS5ieXRl cykKLSNkZWZpbmUgdm04Nl90cl9hdHRyICgoKHVuaW9uIHNlZ21lbnRfYXR0cmlidXRlcykgeyAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgLmZpZWxkcyA9IHsgLnR5cGUgPSAweGIsIC5z ID0gMCwgLmRwbCA9IDAsIC5wID0gMSwgLmF2bCA9IDAsICAgIFwKLSAgICAgICAgICAgICAgICAg ICAgLmwgPSAwLCAuZGIgPSAwLCAuZyA9IDAsIC5wYWQgPSAwIH0gfSkuYnl0ZXMpCisvKgorICog U0RNIFZvbCAzOiBWTSBFbnRyaWVzID4gQ2hlY2tzIG9uIEd1ZXN0IFNlZ21lbnQgUmVnaXN0ZXJz OgorICoKKyAqIFdlIGNhbiBvbmx5IGVudGVyIHZpcnR1YWwgODA4NiBtb2RlIGlmIGFsbCBvZiBD UywgU1MsIERTLCBFUywgRlMgYW5kIEdTIGFyZQorICogMTZiaXQgcmluZy0zIGRhdGEgc2VnbWVu dHMuICBPbiBoYXJkd2FyZSBsYWNraW5nIHRoZSB1bnJlc3RyaWN0ZWRfZ3Vlc3QKKyAqIGZlYXR1 cmUsIFhlbiBmYWtlcyB1cCByZWFsIG1vZGUgdXNpbmcgdm04NiBtb2RlLiAgVGhlIGd1ZXN0IHRo aW5rcyBpdCdzIGdvdAorICogcmluZy0wIHNlZ21lbnRzLCBzbyB3ZSBuZWVkIHRvIGZ1ZGdlIHRo aW5ncy4gIFdlIHN0b3JlIHRoZSByaW5nLTMgdmVyc2lvbgorICogaW4gdGhlIFZNQ1MgdG8gYXZv aWQgbG90cyBvZiBzaHVmZmxpbmcgb24gdm1lbnRlciBhbmQgdm1leGl0LCBhbmQgdHJhbnNsYXRl CisgKiBpbiB0aGVzZSBhY2Nlc3NvcnMuCisgKi8KKyNkZWZpbmUgcm1fY3NfYXR0ciAgIDB4OWIK KyNkZWZpbmUgcm1fZHNfYXR0ciAgIDB4OTMKKyNkZWZpbmUgdm04Nl9kc19hdHRyIDB4ZjMKKyNk ZWZpbmUgdm04Nl90cl9hdHRyIDB4OGIKIAogc3RhdGljIHZvaWQgdm14X2dldF9zZWdtZW50X3Jl Z2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciAqcmVnKQpA QCAtMTE1Niw3ICsxMTUyLDcgQEAgc3RhdGljIHZvaWQgdm14X2dldF9zZWdtZW50X3JlZ2lzdGVy KHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgKiBGb2xkIFZULXgg cmVwcmVzZW50YXRpb24gaW50byBYZW4ncyByZXByZXNlbnRhdGlvbi4gIFRoZSBQcmVzZW50IGJp dCBpcwogICAgICAqIHVuY29uZGl0aW9uYWxseSBzZXQgdG8gdGhlIGludmVyc2Ugb2YgdW51c2Fi bGUuCiAgICAgICovCi0gICAgcmVnLT5hdHRyLmJ5dGVzID0KKyAgICByZWctPmF0dHIgPQogICAg ICAgICAoIShhdHRyICYgKDF1IDw8IDE2KSkgPDwgNykgfCAoYXR0ciAmIDB4N2YpIHwgKChhdHRy ID4+IDQpICYgMHhmMDApOwogCiAgICAgLyogQWRqdXN0IGZvciB2aXJ0dWFsIDgwODYgbW9kZSAq LwpAQCAtMTE3NSw3ICsxMTcxLDcgQEAgc3RhdGljIHZvaWQgdm14X2dldF9zZWdtZW50X3JlZ2lz dGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgICAgICAgICAq IGJ1dCBmb3IgU1Mgd2UgYXNzdW1lIGl0IGhhczogdGhlIFVidW50dSBncmFwaGljYWwgYm9vdGxv YWRlcgogICAgICAgICAgICAgICogZG9lcyB0aGlzIGFuZCBnZXRzIGJhZGx5IGNvbmZ1c2VkIGlm IHdlIGxlYXZlIHRoZSBvbGQgU1MgaW4gCiAgICAgICAgICAgICAgKiBwbGFjZS4gKi8KLSAgICAg ICAgICAgIHJlZy0+YXR0ci5ieXRlcyA9IChzZWcgPT0geDg2X3NlZ19jcyA/IHJtX2NzX2F0dHIg OiBybV9kc19hdHRyKTsKKyAgICAgICAgICAgIHJlZy0+YXR0ciA9IChzZWcgPT0geDg2X3NlZ19j cyA/IHJtX2NzX2F0dHIgOiBybV9kc19hdHRyKTsKICAgICAgICAgICAgICpzcmVnID0gKnJlZzsK ICAgICAgICAgfQogICAgICAgICBlbHNlIApAQCAtMTE5NSw3ICsxMTkxLDcgQEAgc3RhdGljIHZv aWQgdm14X3NldF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdt ZW50IHNlZywKICAgICB1aW50NjRfdCBiYXNlOwogCiAgICAgc2VsID0gcmVnLT5zZWw7Ci0gICAg YXR0ciA9IHJlZy0+YXR0ci5ieXRlczsKKyAgICBhdHRyID0gcmVnLT5hdHRyOwogICAgIGxpbWl0 ID0gcmVnLT5saW1pdDsKICAgICBiYXNlID0gcmVnLT5iYXNlOwogCkBAIC0xMjMzLDggKzEyMjks NyBAQCBzdGF0aWMgdm9pZCB2bXhfc2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYs IGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAgICAgICAgICAgICogY2F1c2UgY29uZnVzaW9uIGZv ciB0aGUgZ3Vlc3QgaWYgaXQgcmVhZHMgdGhlIHNlbGVjdG9yLAogICAgICAgICAgICAgICogYnV0 IG90aGVyd2lzZSB3ZSBoYXZlIHRvIGVtdWxhdGUgaWYgKmFueSogc2VnbWVudCBoYXNuJ3QKICAg ICAgICAgICAgICAqIGJlZW4gcmVsb2FkZWQuICovCi0gICAgICAgICAgICBpZiAoIGJhc2UgPCAw eDEwMDAwMCAmJiAhKGJhc2UgJiAweGYpICYmIGxpbWl0ID49IDB4ZmZmZgotICAgICAgICAgICAg ICAgICAmJiByZWctPmF0dHIuZmllbGRzLnAgKQorICAgICAgICAgICAgaWYgKCBiYXNlIDwgMHgx MDAwMDAgJiYgIShiYXNlICYgMHhmKSAmJiBsaW1pdCA+PSAweGZmZmYgJiYgcmVnLT5wICkKICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzZWwgPSBiYXNlID4+IDQ7CiAgICAgICAgICAg ICAgICAgYXR0ciA9IHZtODZfZHNfYXR0cjsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jCmluZGV4IDJl NjRhNzcuLjU2NjJjYWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9u LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYwpAQCAtMzMyLDEzICszMzIs MTMgQEAgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyAqc2hhZG93X2luaXRfZW11bGF0aW9u KAogICAgIGNyZWcgPSBodm1fZ2V0X3NlZ19yZWcoeDg2X3NlZ19jcywgc2hfY3R4dCk7CiAKICAg ICAvKiBXb3JrIG91dCB0aGUgZW11bGF0aW9uIG1vZGUuICovCi0gICAgaWYgKCBzaF9jdHh0LT5j dHh0LmxtYSAmJiBjcmVnLT5hdHRyLmZpZWxkcy5sICkKKyAgICBpZiAoIHNoX2N0eHQtPmN0eHQu bG1hICYmIGNyZWctPmwgKQogICAgICAgICBzaF9jdHh0LT5jdHh0LmFkZHJfc2l6ZSA9IHNoX2N0 eHQtPmN0eHQuc3Bfc2l6ZSA9IDY0OwogICAgIGVsc2UKICAgICB7CiAgICAgICAgIHNyZWcgPSBo dm1fZ2V0X3NlZ19yZWcoeDg2X3NlZ19zcywgc2hfY3R4dCk7Ci0gICAgICAgIHNoX2N0eHQtPmN0 eHQuYWRkcl9zaXplID0gY3JlZy0+YXR0ci5maWVsZHMuZGIgPyAzMiA6IDE2OwotICAgICAgICBz aF9jdHh0LT5jdHh0LnNwX3NpemUgICA9IHNyZWctPmF0dHIuZmllbGRzLmRiID8gMzIgOiAxNjsK KyAgICAgICAgc2hfY3R4dC0+Y3R4dC5hZGRyX3NpemUgPSBjcmVnLT5kYiA/IDMyIDogMTY7Cisg ICAgICAgIHNoX2N0eHQtPmN0eHQuc3Bfc2l6ZSAgID0gc3JlZy0+ZGIgPyAzMiA6IDE2OwogICAg IH0KIAogICAgIC8qIEF0dGVtcHQgdG8gcHJlZmV0Y2ggd2hvbGUgaW5zdHJ1Y3Rpb24uICovCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMgYi94ZW4vYXJjaC94ODYv cHYvZW11bC1wcml2LW9wLmMKaW5kZXggODUxODViNi4uZDUwZjUxOSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXBy aXYtb3AuYwpAQCAtNDc5LDcgKzQ3OSw3IEBAIHN0YXRpYyBpbnQgcHJpdl9vcF9yZWFkX3NlZ21l bnQoZW51bSB4ODZfc2VnbWVudCBzZWcsCiAgICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhB TkRMRUFCTEU7CiAKICAgICAgICAgcmVnLT5saW1pdCA9IGxpbWl0OwotICAgICAgICByZWctPmF0 dHIuYnl0ZXMgPSBhciA+PiA4OworICAgICAgICByZWctPmF0dHIgPSBhciA+PiA4OwogICAgIH0K ICAgICBlbHNlCiAgICAgewpAQCAtNTAwLDE5ICs1MDAsMTkgQEAgc3RhdGljIGludCBwcml2X29w X3JlYWRfc2VnbWVudChlbnVtIHg4Nl9zZWdtZW50IHNlZywKIAogICAgICAgICByZWctPmxpbWl0 ID0gfjBVOwogCi0gICAgICAgIHJlZy0+YXR0ci5ieXRlcyA9IDA7Ci0gICAgICAgIHJlZy0+YXR0 ci5maWVsZHMudHlwZSA9IF9TRUdNRU5UX1dSID4+IDg7CisgICAgICAgIHJlZy0+YXR0ciA9IDA7 CisgICAgICAgIHJlZy0+dHlwZSA9IF9TRUdNRU5UX1dSID4+IDg7CiAgICAgICAgIGlmICggc2Vn ID09IHg4Nl9zZWdfY3MgKQogICAgICAgICB7Ci0gICAgICAgICAgICByZWctPmF0dHIuZmllbGRz LnR5cGUgfD0gX1NFR01FTlRfQ09ERSA+PiA4OwotICAgICAgICAgICAgcmVnLT5hdHRyLmZpZWxk cy5sID0gMTsKKyAgICAgICAgICAgIHJlZy0+dHlwZSB8PSBfU0VHTUVOVF9DT0RFID4+IDg7Cisg ICAgICAgICAgICByZWctPmwgPSAxOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKLSAgICAgICAg ICAgIHJlZy0+YXR0ci5maWVsZHMuZGIgPSAxOwotICAgICAgICByZWctPmF0dHIuZmllbGRzLnMg ICA9IDE7Ci0gICAgICAgIHJlZy0+YXR0ci5maWVsZHMuZHBsID0gMzsKLSAgICAgICAgcmVnLT5h dHRyLmZpZWxkcy5wICAgPSAxOwotICAgICAgICByZWctPmF0dHIuZmllbGRzLmcgICA9IDE7Cisg ICAgICAgICAgICByZWctPmRiID0gMTsKKyAgICAgICAgcmVnLT5zICAgPSAxOworICAgICAgICBy ZWctPmRwbCA9IDM7CisgICAgICAgIHJlZy0+cCAgID0gMTsKKyAgICAgICAgcmVnLT5nICAgPSAx OwogICAgIH0KIAogICAgIC8qCkBAIC01MjEsOSArNTIxLDkgQEAgc3RhdGljIGludCBwcml2X29w X3JlYWRfc2VnbWVudChlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgKi8KICAgICBpZiAoIChz ZWcgPT0geDg2X3NlZ19zcyB8fAogICAgICAgICAgIChzZWcgPT0geDg2X3NlZ19jcyAmJgotICAg ICAgICAgICAhKHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIChfU0VHTUVOVF9FQyA+PiA4KSkpKSAm JgorICAgICAgICAgICAhKHJlZy0+dHlwZSAmIChfU0VHTUVOVF9FQyA+PiA4KSkpKSAmJgogICAg ICAgICAgZ3Vlc3Rfa2VybmVsX21vZGUoY3VycmVudCwgY3R4dC0+cmVncykgKQotICAgICAgICBy ZWctPmF0dHIuZmllbGRzLmRwbCA9IDA7CisgICAgICAgIHJlZy0+ZHBsID0gMDsKIAogICAgIHJl dHVybiBYODZFTVVMX09LQVk7CiB9CkBAIC01NzgsMTEgKzU3OCwxMSBAQCBzdGF0aWMgaW50IHBy aXZfb3BfcmVwX2lucyh1aW50MTZfdCBwb3J0LAogICAgIGlmICggcmMgIT0gWDg2RU1VTF9PS0FZ ICkKICAgICAgICAgcmV0dXJuIHJjOwogCi0gICAgaWYgKCAhc3JlZy5hdHRyLmZpZWxkcy5wICkK KyAgICBpZiAoICFzcmVnLnAgKQogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7 Ci0gICAgaWYgKCAhc3JlZy5hdHRyLmZpZWxkcy5zIHx8Ci0gICAgICAgICAoc3JlZy5hdHRyLmZp ZWxkcy50eXBlICYgKF9TRUdNRU5UX0NPREUgPj4gOCkpIHx8Ci0gICAgICAgICAhKHNyZWcuYXR0 ci5maWVsZHMudHlwZSAmIChfU0VHTUVOVF9XUiA+PiA4KSkgKQorICAgIGlmICggIXNyZWcucyB8 fAorICAgICAgICAgKHNyZWcudHlwZSAmIChfU0VHTUVOVF9DT0RFID4+IDgpKSB8fAorICAgICAg ICAgIShzcmVnLnR5cGUgJiAoX1NFR01FTlRfV1IgPj4gOCkpICkKICAgICB7CiAgICAgICAgIHg4 Nl9lbXVsX2h3X2V4Y2VwdGlvbihUUkFQX2dwX2ZhdWx0LCAwLCBjdHh0KTsKICAgICAgICAgcmV0 dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwpAQCAtNjQzLDExICs2NDMsMTEgQEAgc3RhdGljIGludCBw cml2X29wX3JlcF9vdXRzKGVudW0geDg2X3NlZ21lbnQgc2VnLCB1bnNpZ25lZCBsb25nIG9mZnNl dCwKICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSApCiAgICAgICAgIHJldHVybiByYzsKIAot ICAgIGlmICggIXNyZWcuYXR0ci5maWVsZHMucCApCisgICAgaWYgKCAhc3JlZy5wICkKICAgICAg ICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwotICAgIGlmICggIXNyZWcuYXR0ci5maWVs ZHMucyB8fAotICAgICAgICAgKChzcmVnLmF0dHIuZmllbGRzLnR5cGUgJiAoX1NFR01FTlRfQ09E RSA+PiA4KSkgJiYKLSAgICAgICAgICAhKHNyZWcuYXR0ci5maWVsZHMudHlwZSAmIChfU0VHTUVO VF9XUiA+PiA4KSkpICkKKyAgICBpZiAoICFzcmVnLnMgfHwKKyAgICAgICAgICgoc3JlZy50eXBl ICYgKF9TRUdNRU5UX0NPREUgPj4gOCkpICYmCisgICAgICAgICAgIShzcmVnLnR5cGUgJiAoX1NF R01FTlRfV1IgPj4gOCkpKSApCiAgICAgewogICAgICAgICB4ODZfZW11bF9od19leGNlcHRpb24o c2VnICE9IHg4Nl9zZWdfc3MgPyBUUkFQX2dwX2ZhdWx0CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRSQVBfc3RhY2tfZXJyb3IsCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCmluZGV4 IGE2ZWE0MmMuLmY5MWFhZGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCisr KyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCB2bV9l dmVudF9maWxsX3JlZ3Modm1fZXZlbnRfcmVxdWVzdF90ICpyZXEpCiAgICAgcmVxLT5kYXRhLnJl Z3MueDg2LmdzX2Jhc2UgPSBzZWcuYmFzZTsKIAogICAgIGh2bV9nZXRfc2VnbWVudF9yZWdpc3Rl cihjdXJyLCB4ODZfc2VnX2NzLCAmc2VnKTsKLSAgICByZXEtPmRhdGEucmVncy54ODYuY3NfYXJi eXRlcyA9IHNlZy5hdHRyLmJ5dGVzOworICAgIHJlcS0+ZGF0YS5yZWdzLng4Ni5jc19hcmJ5dGVz ID0gc2VnLmF0dHI7CiB9CiAKIHZvaWQgdm1fZXZlbnRfZW11bGF0ZV9jaGVjayhzdHJ1Y3QgdmNw dSAqdiwgdm1fZXZlbnRfcmVzcG9uc2VfdCAqcnNwKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2 X2VtdWxhdGUuYwppbmRleCA1ODA1ZDcwLi45MGNjMzBlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxh dGUveDg2X2VtdWxhdGUuYwpAQCAtOTczLDcgKzk3Myw3IEBAIGRvIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgQVNTRVJUKCFjdHh0LT5sbWEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKChpcCkgPiAoY3Mp LT5saW1pdCwgRVhDX0dQLCAwKTsgICAgICAgICAgIFwKICAgICB9IGVsc2UgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg ICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGN0eHQtPmxtYSAmJiAoY3MpLT5hdHRyLmZpZWxkcy5s ICAgICAgICAgIFwKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGN0eHQtPmxtYSAmJiAo Y3MpLT5sICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID8gIWlzX2Nhbm9uaWNhbF9hZGRyZXNzKGlwKSAgICAgICAgICAgICAgIFwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogKGlwKSA+IChjcyktPmxpbWl0LCBFWENfR1AsIDApOyAg ICAgICAgIFwKIH0pCkBAIC0xNDE0LDcgKzE0MTQsNyBAQCBnZXRfY3BsKAogICAgICAgICAgb3Bz LT5yZWFkX3NlZ21lbnQoeDg2X3NlZ19zcywgJnJlZywgY3R4dCkgKQogICAgICAgICByZXR1cm4g LTE7CiAKLSAgICByZXR1cm4gcmVnLmF0dHIuZmllbGRzLmRwbDsKKyAgICByZXR1cm4gcmVnLmRw bDsKIH0KIAogc3RhdGljIGludApAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGludCBpb3Bv cnRfYWNjZXNzX2NoZWNrKAogICAgICAgICByZXR1cm4gcmMgPT0gWDg2RU1VTF9ET05FID8gWDg2 RU1VTF9PS0FZIDogcmM7CiAKICAgICAvKiBFbnN1cmUgdGhlIFRTUyBoYXMgYW4gaW8tYml0bWFw LW9mZnNldCBmaWVsZC4gKi8KLSAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYodHIuYXR0ci5maWVs ZHMudHlwZSAhPSAweGIsIEVYQ19HUCwgMCk7CisgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHRy LnR5cGUgIT0gMHhiLCBFWENfR1AsIDApOwogCiAgICAgc3dpdGNoICggcmMgPSByZWFkX3Vsb25n KHg4Nl9zZWdfdHIsIDB4NjYsICZpb2JtcCwgMiwgY3R4dCwgb3BzKSApCiAgICAgewpAQCAtMTY5 MywxMiArMTY5MywxMiBAQCBwcm90bW9kZV9sb2FkX3NlZygKICAgICAgICAgICAgICBvcHMtPnJl YWRfc2VnbWVudChzZWcsIHNyZWcsIGN0eHQpICE9IFg4NkVNVUxfT0tBWSApCiAgICAgICAgICAg ICBtZW1zZXQoc3JlZywgMCwgc2l6ZW9mKCpzcmVnKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAg ICAgIHNyZWctPmF0dHIuYnl0ZXMgPSAwOworICAgICAgICAgICAgc3JlZy0+YXR0ciA9IDA7CiAg ICAgICAgIHNyZWctPnNlbCA9IHNlbDsKIAogICAgICAgICAvKiBTaW5jZSBDUEwgPT0gU1MuRFBM LCB3ZSBuZWVkIHRvIHB1dCBiYWNrIERQTC4gKi8KICAgICAgICAgaWYgKCBzZWcgPT0geDg2X3Nl Z19zcyApCi0gICAgICAgICAgICBzcmVnLT5hdHRyLmZpZWxkcy5kcGwgPSBzZWw7CisgICAgICAg ICAgICBzcmVnLT5kcGwgPSBzZWw7CiAKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKICAg ICB9CkBAIC0xODczLDEwICsxODczLDEwIEBAIHByb3Rtb2RlX2xvYWRfc2VnKAogICAgICAgICAg ICAgICAgICAgKChkZXNjLmIgPDwgIDApICYgMHhmZjAwMDAwMHUpIHwKICAgICAgICAgICAgICAg ICAgICgoZGVzYy5iIDw8IDE2KSAmIDB4MDBmZjAwMDB1KSB8CiAgICAgICAgICAgICAgICAgICAo KGRlc2MuYSA+PiAxNikgJiAweDAwMDBmZmZmdSkpOwotICAgIHNyZWctPmF0dHIuYnl0ZXMgPSAo KChkZXNjLmIgPj4gIDgpICYgMHgwMGZmdSkgfAotICAgICAgICAgICAgICAgICAgICAgICAgKChk ZXNjLmIgPj4gMTIpICYgMHgwZjAwdSkpOworICAgIHNyZWctPmF0dHIgPSAoKChkZXNjLmIgPj4g IDgpICYgMHgwMGZmdSkgfAorICAgICAgICAgICAgICAgICAgKChkZXNjLmIgPj4gMTIpICYgMHgw ZjAwdSkpOwogICAgIHNyZWctPmxpbWl0ID0gKGRlc2MuYiAmIDB4MDAwZjAwMDB1KSB8IChkZXNj LmEgJiAweDAwMDBmZmZmdSk7Ci0gICAgaWYgKCBzcmVnLT5hdHRyLmZpZWxkcy5nICkKKyAgICBp ZiAoIHNyZWctPmcgKQogICAgICAgICBzcmVnLT5saW1pdCA9IChzcmVnLT5saW1pdCA8PCAxMikg fCAweGZmZnU7CiAgICAgc3JlZy0+c2VsID0gc2VsOwogICAgIHJldHVybiBYODZFTVVMX09LQVk7 CkBAIC00OTYzLDkgKzQ5NjMsOSBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnNyZWcsIGN0eHQsIG9wcykgKQogICAgICAgICAgICAg ewogICAgICAgICAgICAgY2FzZSBYODZFTVVMX09LQVk6Ci0gICAgICAgICAgICAgICAgaWYgKCBz cmVnLmF0dHIuZmllbGRzLnMgJiYKLSAgICAgICAgICAgICAgICAgICAgICgobW9kcm1fcmVnICYg MSkgPyAoKHNyZWcuYXR0ci5maWVsZHMudHlwZSAmIDB4YSkgPT0gMHgyKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoc3JlZy5hdHRyLmZpZWxkcy50eXBlICYgMHhh KSAhPSAweDgpKSApCisgICAgICAgICAgICAgICAgaWYgKCBzcmVnLnMgJiYKKyAgICAgICAgICAg ICAgICAgICAgICgobW9kcm1fcmVnICYgMSkgPyAoKHNyZWcudHlwZSAmIDB4YSkgPT0gMHgyKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICgoc3JlZy50eXBlICYgMHhh KSAhPSAweDgpKSApCiAgICAgICAgICAgICAgICAgICAgIF9yZWdzLmVmbGFncyB8PSBYODZfRUZM QUdTX1pGOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBYODZFTVVM X0VYQ0VQVElPTjoKQEAgLTUxODgsOSArNTE4OCw5IEBAIHg4Nl9lbXVsYXRlKAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eHQsIG9wcykgKQogICAgICAgICB7CiAg ICAgICAgIGNhc2UgWDg2RU1VTF9PS0FZOgotICAgICAgICAgICAgaWYgKCAhc3JlZy5hdHRyLmZp ZWxkcy5zICkKKyAgICAgICAgICAgIGlmICggIXNyZWcucyApCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgc3dpdGNoICggc3JlZy5hdHRyLmZpZWxkcy50eXBlICkKKyAgICAgICAgICAg ICAgICBzd2l0Y2ggKCBzcmVnLnR5cGUgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICBjYXNlIDB4MDE6IC8qIGF2YWlsYWJsZSAxNi1iaXQgVFNTICovCiAgICAgICAgICAgICAg ICAgY2FzZSAweDAzOiAvKiBidXN5IDE2LWJpdCBUU1MgKi8KQEAgLTUyMjIsMTAgKzUyMjIsOSBA QCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlm ICggX3JlZ3MuZWZsYWdzICYgWDg2X0VGTEFHU19aRiApCi0gICAgICAgICAgICBkc3QudmFsID0g KChzcmVnLmF0dHIuYnl0ZXMgJiAweGZmKSA8PCA4KSB8Ci0gICAgICAgICAgICAgICAgICAgICAg KChzcmVnLmxpbWl0ID4+IChzcmVnLmF0dHIuZmllbGRzLmcgPyAxMiA6IDApKSAmCi0gICAgICAg ICAgICAgICAgICAgICAgIDB4ZjAwMDApIHwKLSAgICAgICAgICAgICAgICAgICAgICAoKHNyZWcu YXR0ci5ieXRlcyAmIDB4ZjAwKSA8PCAxMik7CisgICAgICAgICAgICBkc3QudmFsID0gKChzcmVn LmF0dHIgJiAweGZmKSA8PCA4KSB8CisgICAgICAgICAgICAgICAgICAgICAgKChzcmVnLmxpbWl0 ID4+IChzcmVnLmcgPyAxMiA6IDApKSAmIDB4ZjAwMDApIHwKKyAgICAgICAgICAgICAgICAgICAg ICAoKHNyZWcuYXR0ciAmIDB4ZjAwKSA8PCAxMik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg IGRzdC50eXBlID0gT1BfTk9ORTsKICAgICAgICAgYnJlYWs7CkBAIC01MjM3LDkgKzUyMzYsOSBA QCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj dHh0LCBvcHMpICkKICAgICAgICAgewogICAgICAgICBjYXNlIFg4NkVNVUxfT0tBWToKLSAgICAg ICAgICAgIGlmICggIXNyZWcuYXR0ci5maWVsZHMucyApCisgICAgICAgICAgICBpZiAoICFzcmVn LnMgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHN3aXRjaCAoIHNyZWcuYXR0ci5m aWVsZHMudHlwZSApCisgICAgICAgICAgICAgICAgc3dpdGNoICggc3JlZy50eXBlICkKICAgICAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY2FzZSAweDAxOiAvKiBhdmFpbGFibGUgMTYt Yml0IFRTUyAqLwogICAgICAgICAgICAgICAgIGNhc2UgMHgwMzogLyogYnVzeSAxNi1iaXQgVFNT ICovCkBAIC01MjkwLDEyICs1Mjg5LDEyIEBAIHg4Nl9lbXVsYXRlKAogCiAgICAgICAgIGNzLmJh c2UgPSBzcmVnLmJhc2UgPSAwOyAvKiBmbGF0IHNlZ21lbnQgKi8KICAgICAgICAgY3MubGltaXQg PSBzcmVnLmxpbWl0ID0gfjB1OyAgLyogNEdCIGxpbWl0ICovCi0gICAgICAgIHNyZWcuYXR0ci5i eXRlcyA9IDB4YzkzOyAvKiBHK0RCK1ArUytEYXRhICovCisgICAgICAgIHNyZWcuYXR0ciA9IDB4 YzkzOyAvKiBHK0RCK1ArUytEYXRhICovCiAKICNpZmRlZiBfX3g4Nl82NF9fCiAgICAgICAgIGlm ICggY3R4dC0+bG1hICkKICAgICAgICAgewotICAgICAgICAgICAgY3MuYXR0ci5ieXRlcyA9IDB4 YTliOyAvKiBMK0RCK1ArUytDb2RlICovCisgICAgICAgICAgICBjcy5hdHRyID0gMHhhOWI7IC8q IEwrREIrUCtTK0NvZGUgKi8KIAogICAgICAgICAgICAgX3JlZ3MucmN4ID0gX3JlZ3MucmlwOwog ICAgICAgICAgICAgX3JlZ3MucjExID0gX3JlZ3MuZWZsYWdzICYgflg4Nl9FRkxBR1NfUkY7CkBA IC01MzEzLDcgKzUzMTIsNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZWxzZQogI2VuZGlmCiAg ICAgICAgIHsKLSAgICAgICAgICAgIGNzLmF0dHIuYnl0ZXMgPSAweGM5YjsgLyogRytEQitQK1Mr Q29kZSAqLworICAgICAgICAgICAgY3MuYXR0ciA9IDB4YzliOyAvKiBHK0RCK1ArUytDb2RlICov CiAKICAgICAgICAgICAgIF9yZWdzLnIoY3gpID0gX3JlZ3MuZWlwOwogICAgICAgICAgICAgX3Jl Z3MuZWlwID0gbXNyX3ZhbDsKQEAgLTU3NDYsMTMgKzU3NDUsMTMgQEAgeDg2X2VtdWxhdGUoCiAg ICAgICAgIGNzLnNlbCA9IG1zcl92YWwgJiB+MzsgLyogU0VMRUNUT1JfUlBMX01BU0sgKi8KICAg ICAgICAgY3MuYmFzZSA9IDA7ICAgLyogZmxhdCBzZWdtZW50ICovCiAgICAgICAgIGNzLmxpbWl0 ID0gfjB1OyAgLyogNEdCIGxpbWl0ICovCi0gICAgICAgIGNzLmF0dHIuYnl0ZXMgPSBjdHh0LT5s bWEgPyAweGE5YiAgLyogRytMK1ArUytDb2RlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiAweGM5YjsgLyogRytEQitQK1MrQ29kZSAqLworICAgICAgICBjcy5hdHRyID0g Y3R4dC0+bG1hID8gMHhhOWIgIC8qIEcrTCtQK1MrQ29kZSAqLworICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogMHhjOWI7IC8qIEcrREIrUCtTK0NvZGUgKi8KIAogICAgICAgICBzcmVnLnNl bCA9IGNzLnNlbCArIDg7CiAgICAgICAgIHNyZWcuYmFzZSA9IDA7ICAgLyogZmxhdCBzZWdtZW50 ICovCiAgICAgICAgIHNyZWcubGltaXQgPSB+MHU7ICAvKiA0R0IgbGltaXQgKi8KLSAgICAgICAg c3JlZy5hdHRyLmJ5dGVzID0gMHhjOTM7IC8qIEcrREIrUCtTK0RhdGEgKi8KKyAgICAgICAgc3Jl Zy5hdHRyID0gMHhjOTM7IC8qIEcrREIrUCtTK0RhdGEgKi8KIAogICAgICAgICBmYWlsX2lmKG9w cy0+d3JpdGVfc2VnbWVudCA9PSBOVUxMKTsKICAgICAgICAgaWYgKCAocmMgPSBvcHMtPndyaXRl X3NlZ21lbnQoeDg2X3NlZ19jcywgJmNzLCBjdHh0KSkgIT0gMCB8fApAQCAtNTc5MiwxMyArNTc5 MSwxMyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgICAgICAgICAgKG9wX2J5dGVzID09IDggPyAz MiA6IDE2KTsKICAgICAgICAgY3MuYmFzZSA9IDA7ICAgLyogZmxhdCBzZWdtZW50ICovCiAgICAg ICAgIGNzLmxpbWl0ID0gfjB1OyAgLyogNEdCIGxpbWl0ICovCi0gICAgICAgIGNzLmF0dHIuYnl0 ZXMgPSBvcF9ieXRlcyA9PSA4ID8gMHhhZmIgIC8qIEwrREIrUCtEUEwzK1MrQ29kZSAqLwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDB4Y2ZiOyAvKiBHK0RCK1ArRFBM MytTK0NvZGUgKi8KKyAgICAgICAgY3MuYXR0ciA9IG9wX2J5dGVzID09IDggPyAweGFmYiAgLyog TCtEQitQK0RQTDMrUytDb2RlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog MHhjZmI7IC8qIEcrREIrUCtEUEwzK1MrQ29kZSAqLwogCiAgICAgICAgIHNyZWcuc2VsID0gY3Mu c2VsICsgODsKICAgICAgICAgc3JlZy5iYXNlID0gMDsgICAvKiBmbGF0IHNlZ21lbnQgKi8KICAg ICAgICAgc3JlZy5saW1pdCA9IH4wdTsgIC8qIDRHQiBsaW1pdCAqLwotICAgICAgICBzcmVnLmF0 dHIuYnl0ZXMgPSAweGNmMzsgLyogRytEQitQK0RQTDMrUytEYXRhICovCisgICAgICAgIHNyZWcu YXR0ciA9IDB4Y2YzOyAvKiBHK0RCK1ArRFBMMytTK0RhdGEgKi8KIAogICAgICAgICBmYWlsX2lm KG9wcy0+d3JpdGVfc2VnbWVudCA9PSBOVUxMKTsKICAgICAgICAgaWYgKCAocmMgPSBvcHMtPndy aXRlX3NlZ21lbnQoeDg2X3NlZ19jcywgJmNzLCBjdHh0KSkgIT0gMCB8fApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmggYi94ZW4vYXJjaC94ODYveDg2 X2VtdWxhdGUveDg2X2VtdWxhdGUuaAppbmRleCBlNWVjOGE2Li40NjI3MTM2IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaAorKysgYi94ZW4vYXJjaC94 ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaApAQCAtODMsMzMgKzgzLDI2IEBAIHN0cnVjdCB4 ODZfZXZlbnQgewogICAgIHVuc2lnbmVkIGxvbmcgY3IyOyAgICAgICAgICAvKiBPbmx5IGZvciBU UkFQX3BhZ2VfZmF1bHQgaC93IGV4Y2VwdGlvbiAqLwogfTsKIAotLyogCi0gKiBBdHRyaWJ1dGUg Zm9yIHNlZ21lbnQgc2VsZWN0b3IuIFRoaXMgaXMgYSBjb3B5IG9mIGJpdCA0MDo0NyAmIDUyOjU1 IG9mIHRoZQotICogc2VnbWVudCBkZXNjcmlwdG9yLiBJdCBoYXBwZW5zIHRvIG1hdGNoIHRoZSBm b3JtYXQgb2YgYW4gQU1EIFNWTSBWTUNCLgotICovCi10eXBlZGVmIHVuaW9uIHNlZ21lbnRfYXR0 cmlidXRlcyB7Ci0gICAgdWludDE2X3QgYnl0ZXM7Ci0gICAgc3RydWN0Ci0gICAgewotICAgICAg ICB1aW50MTZfdCB0eXBlOjQ7ICAgIC8qIDA7ICBCaXQgNDAtNDMgKi8KLSAgICAgICAgdWludDE2 X3QgczogICAxOyAgICAvKiA0OyAgQml0IDQ0ICovCi0gICAgICAgIHVpbnQxNl90IGRwbDogMjsg ICAgLyogNTsgIEJpdCA0NS00NiAqLwotICAgICAgICB1aW50MTZfdCBwOiAgIDE7ICAgIC8qIDc7 ICBCaXQgNDcgKi8KLSAgICAgICAgdWludDE2X3QgYXZsOiAxOyAgICAvKiA4OyAgQml0IDUyICov Ci0gICAgICAgIHVpbnQxNl90IGw6ICAgMTsgICAgLyogOTsgIEJpdCA1MyAqLwotICAgICAgICB1 aW50MTZfdCBkYjogIDE7ICAgIC8qIDEwOyBCaXQgNTQgKi8KLSAgICAgICAgdWludDE2X3QgZzog ICAxOyAgICAvKiAxMTsgQml0IDU1ICovCi0gICAgICAgIHVpbnQxNl90IHBhZDogNDsKLSAgICB9 IGZpZWxkczsKLX0gc2VnbWVudF9hdHRyaWJ1dGVzX3Q7Ci0KIC8qCiAgKiBGdWxsIHN0YXRlIG9m IGEgc2VnbWVudCByZWdpc3RlciAodmlzaWJsZSBhbmQgaGlkZGVuIHBvcnRpb25zKS4KLSAqIEFn YWluLCB0aGlzIGhhcHBlbnMgdG8gbWF0Y2ggdGhlIGZvcm1hdCBvZiBhbiBBTUQgU1ZNIFZNQ0Iu CisgKiBDaG9zZW4gdG8gbWF0Y2ggdGhlIGZvcm1hdCBvZiBhbiBBTUQgU1ZNIFZNQ0IuCiAgKi8K IHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyIHsKICAgICB1aW50MTZfdCAgIHNlbDsKLSAgICBzZWdt ZW50X2F0dHJpYnV0ZXNfdCBhdHRyOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDE2X3QgYXR0 cjsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQxNl90IHR5cGU6NDsgICAgLyog MDsgIEJpdCA0MC00MyAqLworICAgICAgICAgICAgdWludDE2X3QgczogICAxOyAgICAvKiA0OyAg Qml0IDQ0ICovCisgICAgICAgICAgICB1aW50MTZfdCBkcGw6IDI7ICAgIC8qIDU7ICBCaXQgNDUt NDYgKi8KKyAgICAgICAgICAgIHVpbnQxNl90IHA6ICAgMTsgICAgLyogNzsgIEJpdCA0NyAqLwor ICAgICAgICAgICAgdWludDE2X3QgYXZsOiAxOyAgICAvKiA4OyAgQml0IDUyICovCisgICAgICAg ICAgICB1aW50MTZfdCBsOiAgIDE7ICAgIC8qIDk7ICBCaXQgNTMgKi8KKyAgICAgICAgICAgIHVp bnQxNl90IGRiOiAgMTsgICAgLyogMTA7IEJpdCA1NCAqLworICAgICAgICAgICAgdWludDE2X3Qg ZzogICAxOyAgICAvKiAxMTsgQml0IDU1ICovCisgICAgICAgICAgICB1aW50MTZfdCBwYWQ6IDQ7 CisgICAgICAgIH07CisgICAgfTsKICAgICB1aW50MzJfdCAgIGxpbWl0OwogICAgIHVpbnQ2NF90 ICAgYmFzZTsKIH07Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=