From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10225 invoked by alias); 21 Feb 2011 15:25:54 -0000 Received: (qmail 10053 invoked by uid 22791); 21 Feb 2011 15:25:47 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-qw0-f41.google.com (HELO mail-qw0-f41.google.com) (209.85.216.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 21 Feb 2011 15:25:38 +0000 Received: by qwd7 with SMTP id 7so2063257qwd.0 for ; Mon, 21 Feb 2011 07:25:36 -0800 (PST) MIME-Version: 1.0 Received: by 10.229.245.14 with SMTP id ls14mr1108886qcb.19.1298301935769; Mon, 21 Feb 2011 07:25:35 -0800 (PST) Received: by 10.229.214.131 with HTTP; Mon, 21 Feb 2011 07:25:35 -0800 (PST) In-Reply-To: References: <-8460070221060995487@unknownmsgid> <-6930711422310680743@unknownmsgid> Date: Mon, 21 Feb 2011 15:25:00 -0000 Message-ID: Subject: Re: [RFC patch]: Adjust the use of 'long' type in dwarf2.h header From: Kai Tietz To: Pierre Muller Cc: GCC Patches , Binutils , gdb , Jakub Jelinek , Joel Brobecker Content-Type: multipart/mixed; boundary=0016362849f8b15b96049ccc79c9 X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00257.txt.bz2 --0016362849f8b15b96049ccc79c9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1282 2011/2/21 Kai Tietz : > 2011/2/21 Pierre Muller : >>> Yes, I saw this too and it is a thorn here. But the issue about a >>> transformation function (like dwarf_vma) is that we have memory leaks >>> - as this function is to be used on some printf's more then once - as >>> static buffer would be overriden. Well printfs can be splitted into >>> smaller parts, but this then would make localization even harder. >> >> =A0In GDB code, this is solved in utils.c source by the use of the >> get_cell function, which rotates over 16 char arrays of size 50 each >> currently, in dwarf.c 4 arrays of 16 char (as long as longest address is >> 64-bit) >> for this dwarf_vma function would probably be enough, no? >> >> >> Pierre Muller >> GDB pascal language maintainer > > Yes, this sounds ok. I think maximum here are right now 3 dwarf_vma > prints within one printf. So it should be ok. I'll add here such a > rotating function. I don't assume we need here to handle > multi-threading, so rotation code can be pretty simple. > > Kai > So this version uses new function dwarf_vma_print function for printf-messages, which are getting localized. Tested for x86_64-w64-mingw32 and x86_64-pc-linux-gnu. Ok for apply? Regards, Kai --0016362849f8b15b96049ccc79c9 Content-Type: text/plain; charset=US-ASCII; name="b_dw2_inc.txt" Content-Disposition: attachment; filename="b_dw2_inc.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkfjerxy0 Content-length: 36019 SW5kZXg6IHNyYy9iaW51dGlscy9kd2FyZi5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHNyYy5vcmlnL2JpbnV0aWxzL2R3YXJmLmMJMjAxMS0wMi0w NSAyMTozNDozOS4wMDAwMDAwMDAgKzAxMDAKKysrIHNyYy9iaW51dGlscy9k d2FyZi5jCTIwMTEtMDItMjEgMTY6MjA6MDAuMTI0MjY1OTAwICswMTAwCkBA IC0xMjMsMTAgKzEyMywyOCBAQCBwcmludF9kd2FyZl92bWEgKGR3YXJmX3Zt YSB2YWwsIHVuc2lnbmVkCiAgIGZwdXRzIChidWZmICsgKGJ5dGVfc2l6ZSA9 PSA0ID8gOCA6IDApLCBzdGRvdXQpOwogfQogCi11bnNpZ25lZCBsb25nIGlu dAorc3RhdGljIGNvbnN0IGNoYXIgKgorZHdhcmZfdm1hX3ByaW50IChjb25z dCBjaGFyICpmbXRjaCwgYmZkX3ZtYSB2YWx1ZSkKK3sKKyAgc3RhdGljIGlu dCBidWZfcG9zID0gMDsKKyAgc3RhdGljIHN0cnVjdCBkd2FyZl92bWFfcHJp bnRfYnVmIHsKKyAgICBjaGFyIHBsYWNlWzY0XTsKKyAgfSBidWZbMTZdOwor ICBjaGFyIGZtdFszMl07CisgIGNoYXIgKnJldDsKKworICBzcHJpbnRmIChm bXQsICIlJSVzJXMiLCBCRkRfVk1BX0ZNVCwgZm10Y2gpOworICByZXQgPSAm YnVmW2J1Zl9wb3MrK10ucGxhY2VbMF07CisgIGJ1Zl9wb3MgJj0gMTU7CisK KyAgc25wcmludGYgKHJldCwgNjQsIGZtdCwgdmFsdWUpOworICByZXR1cm4g cmV0OworfQorCitiZmRfdm1hCiByZWFkX2xlYjEyOCAodW5zaWduZWQgY2hh ciAqZGF0YSwgdW5zaWduZWQgaW50ICpsZW5ndGhfcmV0dXJuLCBpbnQgc2ln bikKIHsKLSAgdW5zaWduZWQgbG9uZyBpbnQgcmVzdWx0ID0gMDsKKyAgYmZk X3ZtYSByZXN1bHQgPSAwOwogICB1bnNpZ25lZCBpbnQgbnVtX3JlYWQgPSAw OwogICB1bnNpZ25lZCBpbnQgc2hpZnQgPSAwOwogICB1bnNpZ25lZCBjaGFy IGJ5dGU7CkBAIC0xMzYsNyArMTU0LDcgQEAgcmVhZF9sZWIxMjggKHVuc2ln bmVkIGNoYXIgKmRhdGEsIHVuc2lnbgogICAgICAgYnl0ZSA9ICpkYXRhKys7 CiAgICAgICBudW1fcmVhZCsrOwogCi0gICAgICByZXN1bHQgfD0gKCh1bnNp Z25lZCBsb25nIGludCkgKGJ5dGUgJiAweDdmKSkgPDwgc2hpZnQ7CisgICAg ICByZXN1bHQgfD0gKChiZmRfdm1hKSAoYnl0ZSAmIDB4N2YpKSA8PCBzaGlm dDsKIAogICAgICAgc2hpZnQgKz0gNzsKIApAQCAtMTkzLDcgKzIxMSw3IEBA IHByb2Nlc3NfZXh0ZW5kZWRfbGluZV9vcCAodW5zaWduZWQgY2hhcgogICB1 bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKICAgdW5zaWduZWQgaW50IGxlbjsK ICAgdW5zaWduZWQgY2hhciAqbmFtZTsKLSAgdW5zaWduZWQgbG9uZyBhZHI7 CisgIGJmZF92bWEgYWRyOwogCiAgIGxlbiA9IHJlYWRfbGViMTI4IChkYXRh LCAmIGJ5dGVzX3JlYWQsIDApOwogICBkYXRhICs9IGJ5dGVzX3JlYWQ7CkBA IC0yMTgsNyArMjM2LDcgQEAgcHJvY2Vzc19leHRlbmRlZF9saW5lX29wICh1 bnNpZ25lZCBjaGFyCiAKICAgICBjYXNlIERXX0xORV9zZXRfYWRkcmVzczoK ICAgICAgIGFkciA9IGJ5dGVfZ2V0IChkYXRhLCBsZW4gLSBieXRlc19yZWFk IC0gMSk7Ci0gICAgICBwcmludGYgKF8oInNldCBBZGRyZXNzIHRvIDB4JWx4 XG4iKSwgYWRyKTsKKyAgICAgIHByaW50ZiAoXygic2V0IEFkZHJlc3MgdG8g MHglc1xuIiksIGR3YXJmX3ZtYV9wcmludCAoIngiLCBhZHIpKTsKICAgICAg IHN0YXRlX21hY2hpbmVfcmVncy5hZGRyZXNzID0gYWRyOwogICAgICAgc3Rh dGVfbWFjaGluZV9yZWdzLm9wX2luZGV4ID0gMDsKICAgICAgIGJyZWFrOwpA QCAtMjMwLDE3ICsyNDgsMTkgQEAgcHJvY2Vzc19leHRlbmRlZF9saW5lX29w ICh1bnNpZ25lZCBjaGFyCiAgICAgICBwcmludGYgKCIgICAlZFx0IiwgKytz dGF0ZV9tYWNoaW5lX3JlZ3MubGFzdF9maWxlX2VudHJ5KTsKICAgICAgIG5h bWUgPSBkYXRhOwogICAgICAgZGF0YSArPSBzdHJsZW4gKChjaGFyICopIGRh dGEpICsgMTsKLSAgICAgIHByaW50ZiAoIiVsdVx0IiwgcmVhZF9sZWIxMjgg KGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOworICAgICAgcHJpbnRmICgiJSIg QkZEX1ZNQV9GTVQgInVcdCIsIHJlYWRfbGViMTI4IChkYXRhLCAmIGJ5dGVz X3JlYWQsIDApKTsKICAgICAgIGRhdGEgKz0gYnl0ZXNfcmVhZDsKLSAgICAg IHByaW50ZiAoIiVsdVx0IiwgcmVhZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNf cmVhZCwgMCkpOworICAgICAgcHJpbnRmICgiJSIgQkZEX1ZNQV9GTVQgInVc dCIsCisJICAgICAgcmVhZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwg MCkpOwogICAgICAgZGF0YSArPSBieXRlc19yZWFkOwotICAgICAgcHJpbnRm ICgiJWx1XHQiLCByZWFkX2xlYjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAw KSk7CisgICAgICBwcmludGYgKCIlIiBCRkRfVk1BX0ZNVCAidVx0IiwgcmVh ZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOwogICAgICAgcHJp bnRmICgiJXNcblxuIiwgbmFtZSk7CiAgICAgICBicmVhazsKIAogICAgIGNh c2UgRFdfTE5FX3NldF9kaXNjcmltaW5hdG9yOgotICAgICAgcHJpbnRmIChf KCJzZXQgRGlzY3JpbWluYXRvciB0byAlbHVcbiIpLAotICAgICAgICAgICAg ICByZWFkX2xlYjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAwKSk7CisgICAg ICBwcmludGYgKF8oInNldCBEaXNjcmltaW5hdG9yIHRvICVzXG4iKSwKKwkg ICAgICBkd2FyZl92bWFfcHJpbnQgKCJ1IiwKKwkJCSAgICAgICByZWFkX2xl YjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAwKSkpOwogICAgICAgYnJlYWs7 CiAKICAgICAvKiBIUCBleHRlbnNpb25zLiAgKi8KQEAgLTI5MSw3ICszMTEs NyBAQCBwcm9jZXNzX2V4dGVuZGVkX2xpbmVfb3AgKHVuc2lnbmVkIGNoYXIK IH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKgotZmV0Y2hfaW5kaXJlY3Rfc3Ry aW5nICh1bnNpZ25lZCBsb25nIG9mZnNldCkKK2ZldGNoX2luZGlyZWN0X3N0 cmluZyAoYmZkX3ZtYSBvZmZzZXQpCiB7CiAgIHN0cnVjdCBkd2FyZl9zZWN0 aW9uICpzZWN0aW9uID0gJmRlYnVnX2Rpc3BsYXlzIFtzdHJdLnNlY3Rpb247 CiAKQEAgLTMwMiw3ICszMjIsNyBAQCBmZXRjaF9pbmRpcmVjdF9zdHJpbmcg KHVuc2lnbmVkIGxvbmcgb2ZmCiAgIG9mZnNldCAtPSBzZWN0aW9uLT5hZGRy ZXNzOwogICBpZiAob2Zmc2V0ID4gc2VjdGlvbi0+c2l6ZSkKICAgICB7Ci0g ICAgICB3YXJuIChfKCJEV19GT1JNX3N0cnAgb2Zmc2V0IHRvbyBiaWc6ICVs eFxuIiksIG9mZnNldCk7CisgICAgICB3YXJuIChfKCJEV19GT1JNX3N0cnAg b2Zmc2V0IHRvbyBiaWc6ICVseFxuIiksIChsb25nKSBvZmZzZXQpOwogICAg ICAgcmV0dXJuIF8oIjxvZmZzZXQgaXMgdG9vIGJpZz4iKTsKICAgICB9CiAK QEAgLTYwNSwxMyArNjI1LDEzIEBAIGRlY29kZV9sb2NhdGlvbl9leHByZXNz aW9uICh1bnNpZ25lZCBjaGEKIAkJCSAgICB1bnNpZ25lZCBpbnQgcG9pbnRl cl9zaXplLAogCQkJICAgIHVuc2lnbmVkIGludCBvZmZzZXRfc2l6ZSwKIAkJ CSAgICBpbnQgZHdhcmZfdmVyc2lvbiwKLQkJCSAgICB1bnNpZ25lZCBsb25n IGxlbmd0aCwKLQkJCSAgICB1bnNpZ25lZCBsb25nIGN1X29mZnNldCwKKwkJ CSAgICBiZmRfdm1hIGxlbmd0aCwKKwkJCSAgICBiZmRfdm1hIGN1X29mZnNl dCwKIAkJCSAgICBzdHJ1Y3QgZHdhcmZfc2VjdGlvbiAqIHNlY3Rpb24pCiB7 CiAgIHVuc2lnbmVkIG9wOwogICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsK LSAgdW5zaWduZWQgbG9uZyB1dmFsdWU7CisgIGJmZF92bWEgdXZhbHVlOwog ICB1bnNpZ25lZCBjaGFyICplbmQgPSBkYXRhICsgbGVuZ3RoOwogICBpbnQg bmVlZF9mcmFtZV9iYXNlID0gMDsKIApAQCAtNjYyLDExICs2ODIsMTMgQEAg ZGVjb2RlX2xvY2F0aW9uX2V4cHJlc3Npb24gKHVuc2lnbmVkIGNoYQogCSAg ZGF0YSArPSA4OwogCSAgYnJlYWs7CiAJY2FzZSBEV19PUF9jb25zdHU6Ci0J ICBwcmludGYgKCJEV19PUF9jb25zdHU6ICVsdSIsIHJlYWRfbGViMTI4IChk YXRhLCAmYnl0ZXNfcmVhZCwgMCkpOworCSAgcHJpbnRmICgiRFdfT1BfY29u c3R1OiAlIiBCRkRfVk1BX0ZNVCAidSIsCisJCSAgcmVhZF9sZWIxMjggKGRh dGEsICZieXRlc19yZWFkLCAwKSk7CiAJICBkYXRhICs9IGJ5dGVzX3JlYWQ7 CiAJICBicmVhazsKIAljYXNlIERXX09QX2NvbnN0czoKLQkgIHByaW50ZiAo IkRXX09QX2NvbnN0czogJWxkIiwgcmVhZF9sZWIxMjggKGRhdGEsICZieXRl c19yZWFkLCAxKSk7CisJICBwcmludGYgKCJEV19PUF9jb25zdHM6ICUiIEJG RF9WTUFfRk1UICJkIiwKKwkJICByZWFkX2xlYjEyOCAoZGF0YSwgJmJ5dGVz X3JlYWQsIDEpKTsKIAkgIGRhdGEgKz0gYnl0ZXNfcmVhZDsKIAkgIGJyZWFr OwogCWNhc2UgRFdfT1BfZHVwOgpAQCAtNzIxLDcgKzc0Myw3IEBAIGRlY29k ZV9sb2NhdGlvbl9leHByZXNzaW9uICh1bnNpZ25lZCBjaGEKIAkgIHByaW50 ZiAoIkRXX09QX3BsdXMiKTsKIAkgIGJyZWFrOwogCWNhc2UgRFdfT1BfcGx1 c191Y29uc3Q6Ci0JICBwcmludGYgKCJEV19PUF9wbHVzX3Vjb25zdDogJWx1 IiwKKwkgIHByaW50ZiAoIkRXX09QX3BsdXNfdWNvbnN0OiAlIiBCRkRfVk1B X0ZNVCAidSIsCiAJCSAgcmVhZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFk LCAwKSk7CiAJICBkYXRhICs9IGJ5dGVzX3JlYWQ7CiAJICBicmVhazsKQEAg LTg2Nyw3ICs4ODksOCBAQCBkZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbiAo dW5zaWduZWQgY2hhCiAJY2FzZSBEV19PUF9icmVnMjk6CiAJY2FzZSBEV19P UF9icmVnMzA6CiAJY2FzZSBEV19PUF9icmVnMzE6Ci0JICBwcmludGYgKCJE V19PUF9icmVnJWQgKCVzKTogJWxkIiwgb3AgLSBEV19PUF9icmVnMCwKKwkg IHByaW50ZiAoIkRXX09QX2JyZWclZCAoJXMpOiAlIiBCRkRfVk1BX0ZNVCAi ZCIsCisJCSAgb3AgLSBEV19PUF9icmVnMCwKIAkJICByZWduYW1lIChvcCAt IERXX09QX2JyZWcwLCAxKSwKIAkJICByZWFkX2xlYjEyOCAoZGF0YSwgJmJ5 dGVzX3JlYWQsIDEpKTsKIAkgIGRhdGEgKz0gYnl0ZXNfcmVhZDsKQEAgLTg3 NiwyMiArODk5LDI2IEBAIGRlY29kZV9sb2NhdGlvbl9leHByZXNzaW9uICh1 bnNpZ25lZCBjaGEKIAljYXNlIERXX09QX3JlZ3g6CiAJICB1dmFsdWUgPSBy ZWFkX2xlYjEyOCAoZGF0YSwgJmJ5dGVzX3JlYWQsIDApOwogCSAgZGF0YSAr PSBieXRlc19yZWFkOwotCSAgcHJpbnRmICgiRFdfT1BfcmVneDogJWx1ICgl cykiLCB1dmFsdWUsIHJlZ25hbWUgKHV2YWx1ZSwgMSkpOworCSAgcHJpbnRm ICgiRFdfT1BfcmVneDogJSIgQkZEX1ZNQV9GTVQgInUgKCVzKSIsCisJCSAg dXZhbHVlLCByZWduYW1lICh1dmFsdWUsIDEpKTsKIAkgIGJyZWFrOwogCWNh c2UgRFdfT1BfZmJyZWc6CiAJICBuZWVkX2ZyYW1lX2Jhc2UgPSAxOwotCSAg cHJpbnRmICgiRFdfT1BfZmJyZWc6ICVsZCIsIHJlYWRfbGViMTI4IChkYXRh LCAmYnl0ZXNfcmVhZCwgMSkpOworCSAgcHJpbnRmICgiRFdfT1BfZmJyZWc6 ICUiIEJGRF9WTUFfRk1UICJkIiwKKwkJICByZWFkX2xlYjEyOCAoZGF0YSwg JmJ5dGVzX3JlYWQsIDEpKTsKIAkgIGRhdGEgKz0gYnl0ZXNfcmVhZDsKIAkg IGJyZWFrOwogCWNhc2UgRFdfT1BfYnJlZ3g6CiAJICB1dmFsdWUgPSByZWFk X2xlYjEyOCAoZGF0YSwgJmJ5dGVzX3JlYWQsIDApOwogCSAgZGF0YSArPSBi eXRlc19yZWFkOwotCSAgcHJpbnRmICgiRFdfT1BfYnJlZ3g6ICVsdSAoJXMp ICVsZCIsIHV2YWx1ZSwgcmVnbmFtZSAodXZhbHVlLCAxKSwKKwkgIHByaW50 ZiAoIkRXX09QX2JyZWd4OiAlIiBCRkRfVk1BX0ZNVCAidSAoJXMpICUiIEJG RF9WTUFfRk1UICJkIiwKKwkJICB1dmFsdWUsIHJlZ25hbWUgKHV2YWx1ZSwg MSksCiAJCSAgcmVhZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFkLCAxKSk7 CiAJICBkYXRhICs9IGJ5dGVzX3JlYWQ7CiAJICBicmVhazsKIAljYXNlIERX X09QX3BpZWNlOgotCSAgcHJpbnRmICgiRFdfT1BfcGllY2U6ICVsdSIsIHJl YWRfbGViMTI4IChkYXRhLCAmYnl0ZXNfcmVhZCwgMCkpOworCSAgcHJpbnRm ICgiRFdfT1BfcGllY2U6ICUiIEJGRF9WTUFfRk1UICJ1IiwKKwkJICByZWFk X2xlYjEyOCAoZGF0YSwgJmJ5dGVzX3JlYWQsIDApKTsKIAkgIGRhdGEgKz0g Ynl0ZXNfcmVhZDsKIAkgIGJyZWFrOwogCWNhc2UgRFdfT1BfZGVyZWZfc2l6 ZToKQEAgLTkxMSwxMyArOTM4LDE1IEBAIGRlY29kZV9sb2NhdGlvbl9leHBy ZXNzaW9uICh1bnNpZ25lZCBjaGEKIAljYXNlIERXX09QX2NhbGwyOgogCSAg LyogWFhYOiBTdHJpY3RseSBzcGVha2luZyBmb3IgNjQtYml0IERXQVJGMyBm aWxlcwogCSAgICAgdGhpcyBvdWdodCB0byBiZSBhbiA4LWJ5dGUgd2lkZSBj b21wdXRhdGlvbi4gICovCi0JICBwcmludGYgKCJEV19PUF9jYWxsMjogPDB4 JWx4PiIsIChsb25nKSBieXRlX2dldCAoZGF0YSwgMikgKyBjdV9vZmZzZXQp OworCSAgcHJpbnRmICgiRFdfT1BfY2FsbDI6IDwweCUiIEJGRF9WTUFfRk1U ICJ4PiIsCisJCSAgKGJmZF9zaWduZWRfdm1hKSBieXRlX2dldCAoZGF0YSwg MikgKyBjdV9vZmZzZXQpOwogCSAgZGF0YSArPSAyOwogCSAgYnJlYWs7CiAJ Y2FzZSBEV19PUF9jYWxsNDoKIAkgIC8qIFhYWDogU3RyaWN0bHkgc3BlYWtp bmcgZm9yIDY0LWJpdCBEV0FSRjMgZmlsZXMKIAkgICAgIHRoaXMgb3VnaHQg dG8gYmUgYW4gOC1ieXRlIHdpZGUgY29tcHV0YXRpb24uICAqLwotCSAgcHJp bnRmICgiRFdfT1BfY2FsbDQ6IDwweCVseD4iLCAobG9uZykgYnl0ZV9nZXQg KGRhdGEsIDQpICsgY3Vfb2Zmc2V0KTsKKwkgIHByaW50ZiAoIkRXX09QX2Nh bGw0OiA8MHglIiBCRkRfVk1BX0ZNVCAieD4iLAorCQkgIChiZmRfc2lnbmVk X3ZtYSkgYnl0ZV9nZXQgKGRhdGEsIDQpICsgY3Vfb2Zmc2V0KTsKIAkgIGRh dGEgKz0gNDsKIAkgIGJyZWFrOwogCWNhc2UgRFdfT1BfY2FsbF9yZWY6CkBA IC05NTAsOSArOTc5LDExIEBAIGRlY29kZV9sb2NhdGlvbl9leHByZXNzaW9u ICh1bnNpZ25lZCBjaGEKIAkgIGJyZWFrOwogCWNhc2UgRFdfT1BfYml0X3Bp ZWNlOgogCSAgcHJpbnRmICgiRFdfT1BfYml0X3BpZWNlOiAiKTsKLQkgIHBy aW50ZiAoInNpemU6ICVsdSAiLCByZWFkX2xlYjEyOCAoZGF0YSwgJmJ5dGVz X3JlYWQsIDApKTsKKwkgIHByaW50ZiAoInNpemU6ICUiIEJGRF9WTUFfRk1U ICJ1ICIsCisJCSAgcmVhZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFkLCAw KSk7CiAJICBkYXRhICs9IGJ5dGVzX3JlYWQ7Ci0JICBwcmludGYgKCJvZmZz ZXQ6ICVsdSAiLCByZWFkX2xlYjEyOCAoZGF0YSwgJmJ5dGVzX3JlYWQsIDAp KTsKKwkgIHByaW50ZiAoIm9mZnNldDogJSIgQkZEX1ZNQV9GTVQgInUgIiwK KwkJICByZWFkX2xlYjEyOCAoZGF0YSwgJmJ5dGVzX3JlYWQsIDApKTsKIAkg IGRhdGEgKz0gYnl0ZXNfcmVhZDsKIAkgIGJyZWFrOwogCkBAIC0xMDAxLDE2 ICsxMDMyLDIwIEBAIGRlY29kZV9sb2NhdGlvbl9leHByZXNzaW9uICh1bnNp Z25lZCBjaGEKIAkgICAgfQogCSAgaWYgKGR3YXJmX3ZlcnNpb24gPT0gMikK IAkgICAgewotCSAgICAgIHByaW50ZiAoIkRXX09QX0dOVV9pbXBsaWNpdF9w b2ludGVyOiA8MHglbHg+ICVsZCIsCi0JCSAgICAgIChsb25nKSBieXRlX2dl dCAoZGF0YSwgcG9pbnRlcl9zaXplKSwKLQkJICAgICAgcmVhZF9sZWIxMjgg KGRhdGEgKyBwb2ludGVyX3NpemUsICZieXRlc19yZWFkLCAxKSk7CisJICAg ICAgcHJpbnRmICgiRFdfT1BfR05VX2ltcGxpY2l0X3BvaW50ZXI6ICIKKwkJ ICAgICAgIjwweCUiIEJGRF9WTUFfRk1UICJ4PiAlIiBCRkRfVk1BX0ZNVCAi ZCIsCisJCSAgICAgIChiZmRfdm1hKSBieXRlX2dldCAoZGF0YSwgcG9pbnRl cl9zaXplKSwKKwkJICAgICAgKGJmZF9zaWduZWRfdm1hKSByZWFkX2xlYjEy OCAoZGF0YSArIHBvaW50ZXJfc2l6ZSwKKwkJCQkJCSZieXRlc19yZWFkLCAx KSk7CiAJICAgICAgZGF0YSArPSBwb2ludGVyX3NpemUgKyBieXRlc19yZWFk OwogCSAgICB9CiAJICBlbHNlCiAJICAgIHsKLQkgICAgICBwcmludGYgKCJE V19PUF9HTlVfaW1wbGljaXRfcG9pbnRlcjogPDB4JWx4PiAlbGQiLAotCQkg ICAgICAobG9uZykgYnl0ZV9nZXQgKGRhdGEsIG9mZnNldF9zaXplKSwKLQkJ ICAgICAgcmVhZF9sZWIxMjggKGRhdGEgKyBvZmZzZXRfc2l6ZSwgJmJ5dGVz X3JlYWQsIDEpKTsKKwkgICAgICBwcmludGYgKCJEV19PUF9HTlVfaW1wbGlj aXRfcG9pbnRlcjogIgorCQkgICAgICAiPDB4JSIgQkZEX1ZNQV9GTVQgIng+ ICUiIEJGRF9WTUFfRk1UICJkIiwKKwkJICAgICAgKGJmZF92bWEpIGJ5dGVf Z2V0IChkYXRhLCBvZmZzZXRfc2l6ZSksCisJCSAgICAgIChiZmRfc2lnbmVk X3ZtYSkgcmVhZF9sZWIxMjggKGRhdGEgKyBvZmZzZXRfc2l6ZSwKKwkJCQkJ CSZieXRlc19yZWFkLCAxKSk7CiAJICAgICAgZGF0YSArPSBvZmZzZXRfc2l6 ZSArIGJ5dGVzX3JlYWQ7CiAJICAgIH0KIAkgIGJyZWFrOwpAQCAtMTA3Miwx NSArMTEwNywxNSBAQCBzdGF0aWMgdW5zaWduZWQgY2hhciAqCiByZWFkX2Fu ZF9kaXNwbGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxvbmcgYXR0cmlidXRl LAogCQkJICAgICB1bnNpZ25lZCBsb25nIGZvcm0sCiAJCQkgICAgIHVuc2ln bmVkIGNoYXIgKiBkYXRhLAotCQkJICAgICB1bnNpZ25lZCBsb25nIGN1X29m ZnNldCwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBwb2ludGVyX3NpemUsCi0J CQkgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0X3NpemUsCisJCQkgICAgIGJm ZF92bWEgY3Vfb2Zmc2V0LAorCQkJICAgICBiZmRfdm1hIHBvaW50ZXJfc2l6 ZSwKKwkJCSAgICAgYmZkX3ZtYSBvZmZzZXRfc2l6ZSwKIAkJCSAgICAgaW50 IGR3YXJmX3ZlcnNpb24sCiAJCQkgICAgIGRlYnVnX2luZm8gKiBkZWJ1Z19p bmZvX3AsCiAJCQkgICAgIGludCBkb19sb2MsCiAJCQkgICAgIHN0cnVjdCBk d2FyZl9zZWN0aW9uICogc2VjdGlvbikKIHsKLSAgdW5zaWduZWQgbG9uZyB1 dmFsdWUgPSAwOworICBiZmRfdm1hIHV2YWx1ZSA9IDA7CiAgIHVuc2lnbmVk IGNoYXIgKmJsb2NrX3N0YXJ0ID0gTlVMTDsKICAgdW5zaWduZWQgY2hhciAq IG9yaWdfZGF0YSA9IGRhdGE7CiAgIHVuc2lnbmVkIGludCBieXRlc19yZWFk OwpAQCAtMTE2Nyw3ICsxMjAyLDcgQEAgcmVhZF9hbmRfZGlzcGxheV9hdHRy X3ZhbHVlICh1bnNpZ25lZCBsbwogICAgIHsKICAgICBjYXNlIERXX0ZPUk1f cmVmX2FkZHI6CiAgICAgICBpZiAoIWRvX2xvYykKLQlwcmludGYgKCIgPDB4 JWx4PiIsIHV2YWx1ZSk7CisJcHJpbnRmICgiIDwweCUiIEJGRF9WTUFfRk1U ICJ4PiIsIHV2YWx1ZSk7CiAgICAgICBicmVhazsKIAogICAgIGNhc2UgRFdf Rk9STV9yZWYxOgpAQCAtMTE3NSwxNCArMTIxMCwxNCBAQCByZWFkX2FuZF9k aXNwbGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxvCiAgICAgY2FzZSBEV19G T1JNX3JlZjQ6CiAgICAgY2FzZSBEV19GT1JNX3JlZl91ZGF0YToKICAgICAg IGlmICghZG9fbG9jKQotCXByaW50ZiAoIiA8MHglbHg+IiwgdXZhbHVlICsg Y3Vfb2Zmc2V0KTsKKwlwcmludGYgKCIgPDB4JSIgQkZEX1ZNQV9GTVQgIng+ IiwgdXZhbHVlICsgY3Vfb2Zmc2V0KTsKICAgICAgIGJyZWFrOwogCiAgICAg Y2FzZSBEV19GT1JNX2RhdGE0OgogICAgIGNhc2UgRFdfRk9STV9hZGRyOgog ICAgIGNhc2UgRFdfRk9STV9zZWNfb2Zmc2V0OgogICAgICAgaWYgKCFkb19s b2MpCi0JcHJpbnRmICgiIDB4JWx4IiwgdXZhbHVlKTsKKwlwcmludGYgKCIg MHglIiBCRkRfVk1BX0ZNVCAieCIsIHV2YWx1ZSk7CiAgICAgICBicmVhazsK IAogICAgIGNhc2UgRFdfRk9STV9mbGFnX3ByZXNlbnQ6CkBAIC0xMTkyLDcg KzEyMjcsNyBAQCByZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUgKHVuc2ln bmVkIGxvCiAgICAgY2FzZSBEV19GT1JNX3NkYXRhOgogICAgIGNhc2UgRFdf Rk9STV91ZGF0YToKICAgICAgIGlmICghZG9fbG9jKQotCXByaW50ZiAoIiAl bGQiLCB1dmFsdWUpOworCXByaW50ZiAoIiAlIiBCRkRfVk1BX0ZNVCAiZCIs IHV2YWx1ZSk7CiAgICAgICBicmVhazsKIAogICAgIGNhc2UgRFdfRk9STV9y ZWY4OgpAQCAtMTIwMCw3ICsxMjM1LDcgQEAgcmVhZF9hbmRfZGlzcGxheV9h dHRyX3ZhbHVlICh1bnNpZ25lZCBsbwogICAgICAgaWYgKCFkb19sb2MpCiAJ ewogCSAgdXZhbHVlID0gYnl0ZV9nZXQgKGRhdGEsIDQpOwotCSAgcHJpbnRm ICgiIDB4JWx4IiwgdXZhbHVlKTsKKwkgIHByaW50ZiAoIiAweCUiIEJGRF9W TUFfRk1UICJ4IiwgdXZhbHVlKTsKIAkgIHByaW50ZiAoIiAweCVseCIsICh1 bnNpZ25lZCBsb25nKSBieXRlX2dldCAoZGF0YSArIDQsIDQpKTsKIAl9CiAg ICAgICBpZiAoKGRvX2xvYyB8fCBkb19kZWJ1Z19sb2MgfHwgZG9fZGVidWdf cmFuZ2VzKQpAQCAtMTIwOSw3ICsxMjQ0LDcgQEAgcmVhZF9hbmRfZGlzcGxh eV9hdHRyX3ZhbHVlICh1bnNpZ25lZCBsbwogCSAgaWYgKHNpemVvZiAodXZh bHVlKSA9PSA4KQogCSAgICB1dmFsdWUgPSBieXRlX2dldCAoZGF0YSwgOCk7 CiAJICBlbHNlCi0JICAgIGVycm9yIChfKCJEV19GT1JNX2RhdGE4IGlzIHVu c3VwcG9ydGVkIHdoZW4gc2l6ZW9mICh1bnNpZ25lZCBsb25nKSAhPSA4XG4i KSk7CisJICAgIGVycm9yIChfKCJEV19GT1JNX2RhdGE4IGlzIHVuc3VwcG9y dGVkIHdoZW4gc2l6ZW9mIChiZmRfdm1hKSAhPSA4XG4iKSk7CiAJfQogICAg ICAgZGF0YSArPSA4OwogICAgICAgYnJlYWs7CkBAIC0xMjU5LDggKzEyOTQs OSBAQCByZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxv CiAKICAgICBjYXNlIERXX0ZPUk1fc3RycDoKICAgICAgIGlmICghZG9fbG9j KQotCXByaW50ZiAoXygiIChpbmRpcmVjdCBzdHJpbmcsIG9mZnNldDogMHgl bHgpOiAlcyIpLAotCQl1dmFsdWUsIGZldGNoX2luZGlyZWN0X3N0cmluZyAo dXZhbHVlKSk7CisJcHJpbnRmIChfKCIgKGluZGlyZWN0IHN0cmluZywgb2Zm c2V0OiAweCVzKTogJXMiKSwKKwkJZHdhcmZfdm1hX3ByaW50ICgieCIsIHV2 YWx1ZSksCisJCWZldGNoX2luZGlyZWN0X3N0cmluZyAodXZhbHVlKSk7CiAg ICAgICBicmVhazsKIAogICAgIGNhc2UgRFdfRk9STV9pbmRpcmVjdDoKQEAg LTEzMTMsNyArMTM0OSw3IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1 ZSAodW5zaWduZWQgbG8KIAkgICAgICBpZiAobG1heCA9PSAwIHx8IG51bSA+ PSBsbWF4KQogCQl7CiAJCSAgbG1heCArPSAxMDI0OwotCQkgIGRlYnVnX2lu Zm9fcC0+bG9jX29mZnNldHMgPSAobG9uZyB1bnNpZ25lZCBpbnQgKikKKwkJ ICBkZWJ1Z19pbmZvX3AtPmxvY19vZmZzZXRzID0gKGJmZF92bWEgKikKICAg ICAgICAgICAgICAgICAgICAgICB4Y3JlYWxsb2MgKGRlYnVnX2luZm9fcC0+ bG9jX29mZnNldHMsCiAJCQkJIGxtYXgsIHNpemVvZiAoKmRlYnVnX2luZm9f cC0+bG9jX29mZnNldHMpKTsKIAkJICBkZWJ1Z19pbmZvX3AtPmhhdmVfZnJh bWVfYmFzZSA9IChpbnQgKikKQEAgLTEzNDQsNyArMTM4MCw3IEBAIHJlYWRf YW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSAodW5zaWduZWQgbG8KIAkgICAgICBp ZiAobG1heCA9PSAwIHx8IG51bSA+PSBsbWF4KQogCQl7CiAJCSAgbG1heCAr PSAxMDI0OwotCQkgIGRlYnVnX2luZm9fcC0+cmFuZ2VfbGlzdHMgPSAobG9u ZyB1bnNpZ25lZCBpbnQgKikKKwkJICBkZWJ1Z19pbmZvX3AtPnJhbmdlX2xp c3RzID0gKGJmZF92bWEgKikKICAgICAgICAgICAgICAgICAgICAgICB4Y3Jl YWxsb2MgKGRlYnVnX2luZm9fcC0+cmFuZ2VfbGlzdHMsCiAJCQkJIGxtYXgs IHNpemVvZiAoKmRlYnVnX2luZm9fcC0+cmFuZ2VfbGlzdHMpKTsKIAkJICBk ZWJ1Z19pbmZvX3AtPm1heF9yYW5nZV9saXN0cyA9IGxtYXg7CkBAIC0xMzgz LDcgKzE0MTksOCBAQCByZWFkX2FuZF9kaXNwbGF5X2F0dHJfdmFsdWUgKHVu c2lnbmVkIGxvCiAJICBwcmludGYgKF8oIihkZWNsYXJlZCBhcyBpbmxpbmUg YW5kIGlubGluZWQpIikpOwogCSAgYnJlYWs7CiAJZGVmYXVsdDoKLQkgIHBy aW50ZiAoXygiICAoVW5rbm93biBpbmxpbmUgYXR0cmlidXRlIHZhbHVlOiAl bHgpIiksIHV2YWx1ZSk7CisJICBwcmludGYgKF8oIiAgKFVua25vd24gaW5s aW5lIGF0dHJpYnV0ZSB2YWx1ZTogJXMpIiksCisJCSAgZHdhcmZfdm1hX3By aW50ICgieCIsIHV2YWx1ZSkpOwogCSAgYnJlYWs7CiAJfQogICAgICAgYnJl YWs7CkBAIC0xNDIxLDkgKzE0NTgsOSBAQCByZWFkX2FuZF9kaXNwbGF5X2F0 dHJfdmFsdWUgKHVuc2lnbmVkIGxvCiAJY2FzZSBEV19MQU5HX1VwYzoJCXBy aW50ZiAoIihVbmlmaWVkIFBhcmFsbGVsIEMpIik7IGJyZWFrOwogCWRlZmF1 bHQ6CiAJICBpZiAodXZhbHVlID49IERXX0xBTkdfbG9fdXNlciAmJiB1dmFs dWUgPD0gRFdfTEFOR19oaV91c2VyKQotCSAgICBwcmludGYgKCIoaW1wbGVt ZW50YXRpb24gZGVmaW5lZDogJWx4KSIsIHV2YWx1ZSk7CisJICAgIHByaW50 ZiAoIihpbXBsZW1lbnRhdGlvbiBkZWZpbmVkOiAlIiBCRkRfVk1BX0ZNVCAi eCkiLCB1dmFsdWUpOwogCSAgZWxzZQotCSAgICBwcmludGYgKCIoVW5rbm93 bjogJWx4KSIsIHV2YWx1ZSk7CisJICAgIHByaW50ZiAoIihVbmtub3duOiAl IiBCRkRfVk1BX0ZNVCAieCkiLCB1dmFsdWUpOwogCSAgYnJlYWs7CiAJfQog ICAgICAgYnJlYWs7CkBAIC0xNTg0LDggKzE2MjEsOSBAQCByZWFkX2FuZF9k aXNwbGF5X2F0dHJfdmFsdWUgKHVuc2lnbmVkIGxvCiAJICB1dmFsdWUgKz0g Y3Vfb2Zmc2V0OwogCiAJaWYgKHV2YWx1ZSA+PSBzZWN0aW9uLT5zaXplKQot CSAgd2FybiAoXygiT2Zmc2V0ICVseCB1c2VkIGFzIHZhbHVlIGZvciBEV19B VF9pbXBvcnQgYXR0cmlidXRlIG9mIERJRSBhdCBvZmZzZXQgJWx4IGlzIHRv byBiaWcuXG4iKSwKLQkJdXZhbHVlLCAodW5zaWduZWQgbG9uZykgKG9yaWdf ZGF0YSAtIHNlY3Rpb24tPnN0YXJ0KSk7CisJICB3YXJuIChfKCJPZmZzZXQg JXMgdXNlZCBhcyB2YWx1ZSBmb3IgRFdfQVRfaW1wb3J0IGF0dHJpYnV0ZSBv ZiBESUUgYXQgb2Zmc2V0ICVseCBpcyB0b28gYmlnLlxuIiksCisJCWR3YXJm X3ZtYV9wcmludCAoIngiLCB1dmFsdWUpLAorCQkodW5zaWduZWQgbG9uZykg KG9yaWdfZGF0YSAtIHNlY3Rpb24tPnN0YXJ0KSk7CiAJZWxzZQogCSAgewog CSAgICB1bnNpZ25lZCBsb25nIGFiYnJldl9udW1iZXI7CkBAIC0xNzg2LDkg KzE4MjQsOSBAQCBzdGF0aWMgdW5zaWduZWQgY2hhciAqCiByZWFkX2FuZF9k aXNwbGF5X2F0dHIgKHVuc2lnbmVkIGxvbmcgYXR0cmlidXRlLAogCQkgICAg ICAgdW5zaWduZWQgbG9uZyBmb3JtLAogCQkgICAgICAgdW5zaWduZWQgY2hh ciAqIGRhdGEsCi0JCSAgICAgICB1bnNpZ25lZCBsb25nIGN1X29mZnNldCwK LQkJICAgICAgIHVuc2lnbmVkIGxvbmcgcG9pbnRlcl9zaXplLAotCQkgICAg ICAgdW5zaWduZWQgbG9uZyBvZmZzZXRfc2l6ZSwKKwkJICAgICAgIGJmZF92 bWEgY3Vfb2Zmc2V0LAorCQkgICAgICAgYmZkX3ZtYSBwb2ludGVyX3NpemUs CisJCSAgICAgICBiZmRfdm1hIG9mZnNldF9zaXplLAogCQkgICAgICAgaW50 IGR3YXJmX3ZlcnNpb24sCiAJCSAgICAgICBkZWJ1Z19pbmZvICogZGVidWdf aW5mb19wLAogCQkgICAgICAgaW50IGRvX2xvYywKQEAgLTE5MDAsNyArMTkz OCw3IEBAIHByb2Nlc3NfZGVidWdfaW5mbyAoc3RydWN0IGR3YXJmX3NlY3Rp b24KICAgICAgIHVuc2lnbmVkIGNoYXIgKmhkcnB0cjsKICAgICAgIHVuc2ln bmVkIGNoYXIgKnRhZ3M7CiAgICAgICBpbnQgbGV2ZWw7Ci0gICAgICB1bnNp Z25lZCBsb25nIGN1X29mZnNldDsKKyAgICAgIGJmZF92bWEgY3Vfb2Zmc2V0 OwogICAgICAgaW50IG9mZnNldF9zaXplOwogICAgICAgaW50IGluaXRpYWxf bGVuZ3RoX3NpemU7CiAgICAgICB1bnNpZ25lZCBjaGFyIHNpZ25hdHVyZVs4 XSA9IHsgMCB9OwpAQCAtMTk3MCwxMSArMjAwOCwxNCBAQCBwcm9jZXNzX2Rl YnVnX2luZm8gKHN0cnVjdCBkd2FyZl9zZWN0aW9uCiAKICAgICAgIGlmICgh ZG9fbG9jKQogCXsKLQkgIHByaW50ZiAoXygiICBDb21waWxhdGlvbiBVbml0 IEAgb2Zmc2V0IDB4JWx4OlxuIiksIGN1X29mZnNldCk7Ci0JICBwcmludGYg KF8oIiAgIExlbmd0aDogICAgICAgIDB4JWx4ICglcylcbiIpLCBjb21wdW5p dC5jdV9sZW5ndGgsCisJICBwcmludGYgKF8oIiAgQ29tcGlsYXRpb24gVW5p dCBAIG9mZnNldCAweCVzOlxuIiksCisJCSAgZHdhcmZfdm1hX3ByaW50ICgi eCIsIGN1X29mZnNldCkpOworCSAgcHJpbnRmIChfKCIgICBMZW5ndGg6ICAg ICAgICAweCVzICglcylcbiIpLAorCQkgIGR3YXJmX3ZtYV9wcmludCAoIngi LCBjb21wdW5pdC5jdV9sZW5ndGgpLAogCQkgIGluaXRpYWxfbGVuZ3RoX3Np emUgPT0gOCA/ICI2NC1iaXQiIDogIjMyLWJpdCIpOwogCSAgcHJpbnRmIChf KCIgICBWZXJzaW9uOiAgICAgICAlZFxuIiksIGNvbXB1bml0LmN1X3ZlcnNp b24pOwotCSAgcHJpbnRmIChfKCIgICBBYmJyZXYgT2Zmc2V0OiAlbGRcbiIp LCBjb21wdW5pdC5jdV9hYmJyZXZfb2Zmc2V0KTsKKwkgIHByaW50ZiAoXygi ICAgQWJicmV2IE9mZnNldDogJXNcbiIpLAorCQkgIGR3YXJmX3ZtYV9wcmlu dCAoImQiLCBjb21wdW5pdC5jdV9hYmJyZXZfb2Zmc2V0KSk7CiAJICBwcmlu dGYgKF8oIiAgIFBvaW50ZXIgU2l6ZTogICVkXG4iKSwgY29tcHVuaXQuY3Vf cG9pbnRlcl9zaXplKTsKIAkgIGlmIChkb190eXBlcykKIAkgICAgewpAQCAt MTk5MCw4ICsyMDMxLDEwIEBAIHByb2Nlc3NfZGVidWdfaW5mbyAoc3RydWN0 IGR3YXJmX3NlY3Rpb24KICAgICAgIGlmIChjdV9vZmZzZXQgKyBjb21wdW5p dC5jdV9sZW5ndGggKyBpbml0aWFsX2xlbmd0aF9zaXplCiAJICA+IHNlY3Rp b24tPnNpemUpCiAJewotCSAgd2FybiAoXygiRGVidWcgaW5mbyBpcyBjb3Jy dXB0ZWQsIGxlbmd0aCBvZiBDVSBhdCAlbHggZXh0ZW5kcyBiZXlvbmQgZW5k IG9mIHNlY3Rpb24gKGxlbmd0aCA9ICVseClcbiIpLAotCQljdV9vZmZzZXQs IGNvbXB1bml0LmN1X2xlbmd0aCk7CisJICB3YXJuIChfKCJEZWJ1ZyBpbmZv IGlzIGNvcnJ1cHRlZCwgbGVuZ3RoIG9mIENVIGF0ICVzIgorCSAgCSAgIiBl eHRlbmRzIGJleW9uZCBlbmQgb2Ygc2VjdGlvbiAobGVuZ3RoID0gJXMpXG4i KSwKKwkJZHdhcmZfdm1hX3ByaW50ICgieCIsIGN1X29mZnNldCksCisJCWR3 YXJmX3ZtYV9wcmludCAoIngiLCBjb21wdW5pdC5jdV9sZW5ndGgpKTsKIAkg IGJyZWFrOwogCX0KICAgICAgIHRhZ3MgPSBoZHJwdHI7CkBAIC0yMDAxLDgg KzIwNDQsOSBAQCBwcm9jZXNzX2RlYnVnX2luZm8gKHN0cnVjdCBkd2FyZl9z ZWN0aW9uCiAJICAmJiBjb21wdW5pdC5jdV92ZXJzaW9uICE9IDMKIAkgICYm IGNvbXB1bml0LmN1X3ZlcnNpb24gIT0gNCkKIAl7Ci0JICB3YXJuIChfKCJD VSBhdCBvZmZzZXQgJWx4IGNvbnRhaW5zIGNvcnJ1cHQgb3IgdW5zdXBwb3J0 ZWQgdmVyc2lvbiBudW1iZXI6ICVkLlxuIiksCi0JCWN1X29mZnNldCwgY29t cHVuaXQuY3VfdmVyc2lvbik7CisJICB3YXJuIChfKCJDVSBhdCBvZmZzZXQg JXMgY29udGFpbnMgY29ycnVwdCBvciAiCisJCSAgInVuc3VwcG9ydGVkIHZl cnNpb24gbnVtYmVyOiAlZC5cbiIpLAorCQlkd2FyZl92bWFfcHJpbnQgKCJ4 IiwgY3Vfb2Zmc2V0KSwgY29tcHVuaXQuY3VfdmVyc2lvbik7CiAJICBjb250 aW51ZTsKIAl9CiAKQEAgLTIyNjgsNyArMjMxMiw3IEBAIGRpc3BsYXlfZGVi dWdfbGluZXNfcmF3IChzdHJ1Y3QgZHdhcmZfc2UKICAgICAgIGxpbmZvLmxp X2xpbmVfYmFzZSA+Pj0gMjQ7CiAKICAgICAgIHByaW50ZiAoXygiICBPZmZz ZXQ6ICAgICAgICAgICAgICAgICAgICAgIDB4JWx4XG4iKSwgaGRyb2ZmKTsK LSAgICAgIHByaW50ZiAoXygiICBMZW5ndGg6ICAgICAgICAgICAgICAgICAg ICAgICVsZFxuIiksIGxpbmZvLmxpX2xlbmd0aCk7CisgICAgICBwcmludGYg KF8oIiAgTGVuZ3RoOiAgICAgICAgICAgICAgICAgICAgICAlbGRcbiIpLCAo bG9uZykgbGluZm8ubGlfbGVuZ3RoKTsKICAgICAgIHByaW50ZiAoXygiICBE V0FSRiBWZXJzaW9uOiAgICAgICAgICAgICAgICVkXG4iKSwgbGluZm8ubGlf dmVyc2lvbik7CiAgICAgICBwcmludGYgKF8oIiAgUHJvbG9ndWUgTGVuZ3Ro OiAgICAgICAgICAgICAlZFxuIiksIGxpbmZvLmxpX3Byb2xvZ3VlX2xlbmd0 aCk7CiAgICAgICBwcmludGYgKF8oIiAgTWluaW11bSBJbnN0cnVjdGlvbiBM ZW5ndGg6ICAlZFxuIiksIGxpbmZvLmxpX21pbl9pbnNuX2xlbmd0aCk7CkBA IC0yMzI5LDExICsyMzczLDE0IEBAIGRpc3BsYXlfZGVidWdfbGluZXNfcmF3 IChzdHJ1Y3QgZHdhcmZfc2UKIAogCSAgICAgIGRhdGEgKz0gc3RybGVuICgo Y2hhciAqKSBkYXRhKSArIDE7CiAKLQkgICAgICBwcmludGYgKCIlbHVcdCIs IHJlYWRfbGViMTI4IChkYXRhLCAmIGJ5dGVzX3JlYWQsIDApKTsKKwkgICAg ICBwcmludGYgKCIlIiBCRkRfVk1BX0ZNVCAidVx0IiwKKwkJICAgICAgcmVh ZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOwogCSAgICAgIGRh dGEgKz0gYnl0ZXNfcmVhZDsKLQkgICAgICBwcmludGYgKCIlbHVcdCIsIHJl YWRfbGViMTI4IChkYXRhLCAmIGJ5dGVzX3JlYWQsIDApKTsKKwkgICAgICBw cmludGYgKCIlIiBCRkRfVk1BX0ZNVCAidVx0IiwKKwkJICAgICAgcmVhZF9s ZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOwogCSAgICAgIGRhdGEg Kz0gYnl0ZXNfcmVhZDsKLQkgICAgICBwcmludGYgKCIlbHVcdCIsIHJlYWRf bGViMTI4IChkYXRhLCAmIGJ5dGVzX3JlYWQsIDApKTsKKwkgICAgICBwcmlu dGYgKCIlIiBCRkRfVk1BX0ZNVCAidVx0IiwKKwkJICAgICAgcmVhZF9sZWIx MjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOwogCSAgICAgIGRhdGEgKz0g Ynl0ZXNfcmVhZDsKIAkgICAgICBwcmludGYgKCIlc1xuIiwgbmFtZSk7CiAJ ICAgIH0KQEAgLTI1MDUsNyArMjU1Miw4IEBAIGRpc3BsYXlfZGVidWdfbGlu ZXNfcmF3IChzdHJ1Y3QgZHdhcmZfc2UKIAogCSAgICAgIGZvciAoaSA9IHN0 YW5kYXJkX29wY29kZXNbb3BfY29kZSAtIDFdOyBpID4gMCA7IC0taSkKIAkJ ewotCQkgIHByaW50ZiAoIjB4JWx4JXMiLCByZWFkX2xlYjEyOCAoZGF0YSwg JmJ5dGVzX3JlYWQsIDApLAorCQkgIHByaW50ZiAoIjB4JSIgQkZEX1ZNQV9G TVQgInglcyIsCisJCQkgIHJlYWRfbGViMTI4IChkYXRhLCAmYnl0ZXNfcmVh ZCwgMCksCiAJCQkgIGkgPT0gMSA/ICIiIDogIiwgIik7CiAJCSAgZGF0YSAr PSBieXRlc19yZWFkOwogCQl9CkBAIC0yOTE4LDcgKzI5NjYsOCBAQCBkaXNw bGF5X2RlYnVnX2xpbmVzX2RlY29kZWQgKHN0cnVjdCBkd2FyCiAKICAgICAg ICAgICAgICAgZm9yIChpID0gc3RhbmRhcmRfb3Bjb2Rlc1tvcF9jb2RlIC0g MV07IGkgPiAwIDsgLS1pKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICAgIHByaW50ZiAoIjB4JWx4JXMiLCByZWFkX2xlYjEyOCAoZGF0 YSwgJmJ5dGVzX3JlYWQsIDApLAorICAgICAgICAgICAgICAgICAgcHJpbnRm ICgiMHglIiBCRkRfVk1BX0ZNVCAieCVzIiwKKwkJCSAgcmVhZF9sZWIxMjgg KGRhdGEsICZieXRlc19yZWFkLCAwKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgaSA9PSAxID8gIiIgOiAiLCAiKTsKICAgICAgICAgICAgICAgICAg IGRhdGEgKz0gYnl0ZXNfcmVhZDsKICAgICAgICAgICAgICAgICB9CkBAIC0z MDc2LDcgKzMxMjUsNyBAQCBkaXNwbGF5X2RlYnVnX3B1Ym5hbWVzIChzdHJ1 Y3QgZHdhcmZfc2VjCiAJICAmJiBudW1fZGVidWdfaW5mb19lbnRyaWVzID4g MAogCSAgJiYgZmluZF9kZWJ1Z19pbmZvX2Zvcl9vZmZzZXQgKG5hbWVzLnBu X29mZnNldCkgPT0gTlVMTCkKIAl3YXJuIChfKCIuZGVidWdfaW5mbyBvZmZz ZXQgb2YgMHglbHggaW4gJXMgc2VjdGlvbiBkb2VzIG5vdCBwb2ludCB0byBh IENVIGhlYWRlci5cbiIpLAotCSAgICAgIG5hbWVzLnBuX29mZnNldCwgc2Vj dGlvbi0+bmFtZSk7CisJICAgICAgKHVuc2lnbmVkIGxvbmcpIG5hbWVzLnBu X29mZnNldCwgc2VjdGlvbi0+bmFtZSk7CiAKICAgICAgIG5hbWVzLnBuX3Np emUgPSBieXRlX2dldCAoZGF0YSwgb2Zmc2V0X3NpemUpOwogICAgICAgZGF0 YSArPSBvZmZzZXRfc2l6ZTsKQEAgLTMwOTcsMTMgKzMxNDYsMTMgQEAgZGlz cGxheV9kZWJ1Z19wdWJuYW1lcyAoc3RydWN0IGR3YXJmX3NlYwogCX0KIAog ICAgICAgcHJpbnRmIChfKCIgIExlbmd0aDogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAlbGRcbiIpLAotCSAgICAgIG5hbWVzLnBuX2xlbmd0aCk7 CisJICAgICAgKGxvbmcpIG5hbWVzLnBuX2xlbmd0aCk7CiAgICAgICBwcmlu dGYgKF8oIiAgVmVyc2lvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICVkXG4iKSwKIAkgICAgICBuYW1lcy5wbl92ZXJzaW9uKTsKICAgICAgIHBy aW50ZiAoXygiICBPZmZzZXQgaW50byAuZGVidWdfaW5mbyBzZWN0aW9uOiAg ICAgMHglbHhcbiIpLAotCSAgICAgIG5hbWVzLnBuX29mZnNldCk7CisJICAg ICAgKHVuc2lnbmVkIGxvbmcpIG5hbWVzLnBuX29mZnNldCk7CiAgICAgICBw cmludGYgKF8oIiAgU2l6ZSBvZiBhcmVhIGluIC5kZWJ1Z19pbmZvIHNlY3Rp b246ICVsZFxuIiksCi0JICAgICAgbmFtZXMucG5fc2l6ZSk7CisJICAgICAg KGxvbmcpIG5hbWVzLnBuX3NpemUpOwogCiAgICAgICBwcmludGYgKF8oIlxu ICAgIE9mZnNldFx0TmFtZVxuIikpOwogCkBAIC0zMzIzLDggKzMzNzIsOSBA QCBkaXNwbGF5X2RlYnVnX2xvYyAoc3RydWN0IGR3YXJmX3NlY3Rpb24KICAg LyogRFdBUkYgc2VjdGlvbnMgdW5kZXIgTWFjaC1PIGhhdmUgbm9uLXplcm8g YWRkcmVzc2VzLiAgKi8KICAgaWYgKGRlYnVnX2luZm9ybWF0aW9uIFtmaXJz dF0ubnVtX2xvY19vZmZzZXRzID4gMAogICAgICAgJiYgZGVidWdfaW5mb3Jt YXRpb24gW2ZpcnN0XS5sb2Nfb2Zmc2V0cyBbMF0gIT0gc2VjdGlvbi0+YWRk cmVzcykKLSAgICB3YXJuIChfKCJMb2NhdGlvbiBsaXN0cyBpbiAlcyBzZWN0 aW9uIHN0YXJ0IGF0IDB4JWx4XG4iKSwKLQkgIHNlY3Rpb24tPm5hbWUsIGRl YnVnX2luZm9ybWF0aW9uIFtmaXJzdF0ubG9jX29mZnNldHMgWzBdKTsKKyAg ICB3YXJuIChfKCJMb2NhdGlvbiBsaXN0cyBpbiAlcyBzZWN0aW9uIHN0YXJ0 IGF0IDB4JXNcbiIpLAorCSAgc2VjdGlvbi0+bmFtZSwKKwkgIGR3YXJmX3Zt YV9wcmludCAoIngiLCBkZWJ1Z19pbmZvcm1hdGlvbiBbZmlyc3RdLmxvY19v ZmZzZXRzIFswXSkpOwogCiAgIHByaW50ZiAoXygiQ29udGVudHMgb2YgdGhl ICVzIHNlY3Rpb246XG5cbiIpLCBzZWN0aW9uLT5uYW1lKTsKICAgcHJpbnRm IChfKCIgICAgT2Zmc2V0ICAgQmVnaW4gICAgRW5kICAgICAgRXhwcmVzc2lv blxuIikpOwpAQCAtMzU5Niw3ICszNjQ2LDcgQEAgZGlzcGxheV9kZWJ1Z19h cmFuZ2VzIChzdHJ1Y3QgZHdhcmZfc2VjdAogCSAgJiYgbnVtX2RlYnVnX2lu Zm9fZW50cmllcyA+IDAKIAkgICYmIGZpbmRfZGVidWdfaW5mb19mb3Jfb2Zm c2V0IChhcmFuZ2UuYXJfaW5mb19vZmZzZXQpID09IE5VTEwpCiAJd2FybiAo XygiLmRlYnVnX2luZm8gb2Zmc2V0IG9mIDB4JWx4IGluICVzIHNlY3Rpb24g ZG9lcyBub3QgcG9pbnQgdG8gYSBDVSBoZWFkZXIuXG4iKSwKLQkgICAgICBh cmFuZ2UuYXJfaW5mb19vZmZzZXQsIHNlY3Rpb24tPm5hbWUpOworCSAgICAg ICh1bnNpZ25lZCBsb25nKSBhcmFuZ2UuYXJfaW5mb19vZmZzZXQsIHNlY3Rp b24tPm5hbWUpOwogCiAgICAgICBhcmFuZ2UuYXJfcG9pbnRlcl9zaXplID0g Ynl0ZV9nZXQgKGhkcnB0ciwgMSk7CiAgICAgICBoZHJwdHIgKz0gMTsKQEAg LTM2MTAsOSArMzY2MCwxMSBAQCBkaXNwbGF5X2RlYnVnX2FyYW5nZXMgKHN0 cnVjdCBkd2FyZl9zZWN0CiAJICBicmVhazsKIAl9CiAKLSAgICAgIHByaW50 ZiAoXygiICBMZW5ndGg6ICAgICAgICAgICAgICAgICAgICVsZFxuIiksIGFy YW5nZS5hcl9sZW5ndGgpOworICAgICAgcHJpbnRmIChfKCIgIExlbmd0aDog ICAgICAgICAgICAgICAgICAgJWxkXG4iKSwKKwkgICAgICAobG9uZykgYXJh bmdlLmFyX2xlbmd0aCk7CiAgICAgICBwcmludGYgKF8oIiAgVmVyc2lvbjog ICAgICAgICAgICAgICAgICAlZFxuIiksIGFyYW5nZS5hcl92ZXJzaW9uKTsK LSAgICAgIHByaW50ZiAoXygiICBPZmZzZXQgaW50byAuZGVidWdfaW5mbzog IDB4JWx4XG4iKSwgYXJhbmdlLmFyX2luZm9fb2Zmc2V0KTsKKyAgICAgIHBy aW50ZiAoXygiICBPZmZzZXQgaW50byAuZGVidWdfaW5mbzogIDB4JWx4XG4i KSwKKwkgICAgICAodW5zaWduZWQgbG9uZykgYXJhbmdlLmFyX2luZm9fb2Zm c2V0KTsKICAgICAgIHByaW50ZiAoXygiICBQb2ludGVyIFNpemU6ICAgICAg ICAgICAgICVkXG4iKSwgYXJhbmdlLmFyX3BvaW50ZXJfc2l6ZSk7CiAgICAg ICBwcmludGYgKF8oIiAgU2VnbWVudCBTaXplOiAgICAgICAgICAgICAlZFxu IiksIGFyYW5nZS5hcl9zZWdtZW50X3NpemUpOwogCkluZGV4OiBzcmMvYmlu dXRpbHMvZHdhcmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMu b3JpZy9iaW51dGlscy9kd2FyZi5oCTIwMTAtMTItMTggMTI6MjY6MjQuMDAw MDAwMDAwICswMTAwCisrKyBzcmMvYmludXRpbHMvZHdhcmYuaAkyMDExLTAy LTIxIDE1OjQ0OjM5LjQ2Nzk3MTMwMCArMDEwMApAQCAtMjIsNiArMjIsOTIg QEAKIHR5cGVkZWYgdW5zaWduZWQgSE9TVF9XSURFU1RfSU5UIGR3YXJmX3Zt YTsKIHR5cGVkZWYgdW5zaWduZWQgSE9TVF9XSURFU1RfSU5UIGR3YXJmX3Np emVfdHlwZTsKIAorLyogU3RydWN0dXJlIGZvdW5kIGluIHRoZSAuZGVidWdf bGluZSBzZWN0aW9uLiAgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisgIHVuc2ln bmVkIGNoYXIgbGlfbGVuZ3RoICAgICAgICAgIFs0XTsKKyAgdW5zaWduZWQg Y2hhciBsaV92ZXJzaW9uICAgICAgICAgWzJdOworICB1bnNpZ25lZCBjaGFy IGxpX3Byb2xvZ3VlX2xlbmd0aCBbNF07CisgIHVuc2lnbmVkIGNoYXIgbGlf bWluX2luc25fbGVuZ3RoIFsxXTsKKyAgdW5zaWduZWQgY2hhciBsaV9kZWZh dWx0X2lzX3N0bXQgWzFdOworICB1bnNpZ25lZCBjaGFyIGxpX2xpbmVfYmFz ZSAgICAgICBbMV07CisgIHVuc2lnbmVkIGNoYXIgbGlfbGluZV9yYW5nZSAg ICAgIFsxXTsKKyAgdW5zaWduZWQgY2hhciBsaV9vcGNvZGVfYmFzZSAgICAg WzFdOworfQorRFdBUkYyX0V4dGVybmFsX0xpbmVJbmZvOworCit0eXBlZGVm IHN0cnVjdAoreworICBiZmRfdm1hCSBsaV9sZW5ndGg7CisgIHVuc2lnbmVk IHNob3J0IGxpX3ZlcnNpb247CisgIHVuc2lnbmVkIGludCAgIGxpX3Byb2xv Z3VlX2xlbmd0aDsKKyAgdW5zaWduZWQgY2hhciAgbGlfbWluX2luc25fbGVu Z3RoOworICB1bnNpZ25lZCBjaGFyICBsaV9tYXhfb3BzX3Blcl9pbnNuOwor ICB1bnNpZ25lZCBjaGFyICBsaV9kZWZhdWx0X2lzX3N0bXQ7CisgIGludCAg ICAgICAgICAgIGxpX2xpbmVfYmFzZTsKKyAgdW5zaWduZWQgY2hhciAgbGlf bGluZV9yYW5nZTsKKyAgdW5zaWduZWQgY2hhciAgbGlfb3Bjb2RlX2Jhc2U7 Cit9CitEV0FSRjJfSW50ZXJuYWxfTGluZUluZm87CisKKy8qIFN0cnVjdHVy ZSBmb3VuZCBpbiAuZGVidWdfcHVibmFtZXMgc2VjdGlvbi4gICovCit0eXBl ZGVmIHN0cnVjdAoreworICB1bnNpZ25lZCBjaGFyIHBuX2xlbmd0aCAgWzRd OworICB1bnNpZ25lZCBjaGFyIHBuX3ZlcnNpb24gWzJdOworICB1bnNpZ25l ZCBjaGFyIHBuX29mZnNldCAgWzRdOworICB1bnNpZ25lZCBjaGFyIHBuX3Np emUgICAgWzRdOworfQorRFdBUkYyX0V4dGVybmFsX1B1Yk5hbWVzOworCit0 eXBlZGVmIHN0cnVjdAoreworICBiZmRfdm1hCSBwbl9sZW5ndGg7CisgIHVu c2lnbmVkIHNob3J0IHBuX3ZlcnNpb247CisgIGJmZF92bWEJIHBuX29mZnNl dDsKKyAgYmZkX3ZtYQkgcG5fc2l6ZTsKK30KK0RXQVJGMl9JbnRlcm5hbF9Q dWJOYW1lczsKKworLyogU3RydWN0dXJlIGZvdW5kIGluIC5kZWJ1Z19pbmZv IHNlY3Rpb24uICAqLwordHlwZWRlZiBzdHJ1Y3QKK3sKKyAgdW5zaWduZWQg Y2hhciAgY3VfbGVuZ3RoICAgICAgICBbNF07CisgIHVuc2lnbmVkIGNoYXIg IGN1X3ZlcnNpb24gICAgICAgWzJdOworICB1bnNpZ25lZCBjaGFyICBjdV9h YmJyZXZfb2Zmc2V0IFs0XTsKKyAgdW5zaWduZWQgY2hhciAgY3VfcG9pbnRl cl9zaXplICBbMV07Cit9CitEV0FSRjJfRXh0ZXJuYWxfQ29tcFVuaXQ7CisK K3R5cGVkZWYgc3RydWN0Cit7CisgIGJmZF92bWEJIGN1X2xlbmd0aDsKKyAg dW5zaWduZWQgc2hvcnQgY3VfdmVyc2lvbjsKKyAgYmZkX3ZtYQkgY3VfYWJi cmV2X29mZnNldDsKKyAgdW5zaWduZWQgY2hhciAgY3VfcG9pbnRlcl9zaXpl OworfQorRFdBUkYyX0ludGVybmFsX0NvbXBVbml0OworCit0eXBlZGVmIHN0 cnVjdAoreworICB1bnNpZ25lZCBjaGFyICBhcl9sZW5ndGggICAgICAgWzRd OworICB1bnNpZ25lZCBjaGFyICBhcl92ZXJzaW9uICAgICAgWzJdOworICB1 bnNpZ25lZCBjaGFyICBhcl9pbmZvX29mZnNldCAgWzRdOworICB1bnNpZ25l ZCBjaGFyICBhcl9wb2ludGVyX3NpemUgWzFdOworICB1bnNpZ25lZCBjaGFy ICBhcl9zZWdtZW50X3NpemUgWzFdOworfQorRFdBUkYyX0V4dGVybmFsX0FS YW5nZTsKKwordHlwZWRlZiBzdHJ1Y3QKK3sKKyAgYmZkX3ZtYQkgYXJfbGVu Z3RoOworICB1bnNpZ25lZCBzaG9ydCBhcl92ZXJzaW9uOworICBiZmRfdm1h CSBhcl9pbmZvX29mZnNldDsKKyAgdW5zaWduZWQgY2hhciAgYXJfcG9pbnRl cl9zaXplOworICB1bnNpZ25lZCBjaGFyICBhcl9zZWdtZW50X3NpemU7Cit9 CitEV0FSRjJfSW50ZXJuYWxfQVJhbmdlOworCiBzdHJ1Y3QgZHdhcmZfc2Vj dGlvbgogewogICAvKiBBIGRlYnVnIHNlY3Rpb24gaGFzIGEgZGlmZmVyZW50 IG5hbWUgd2hlbiBpdCdzIHN0b3JlZCBjb21wcmVzc2VkCkBAIC03OSwxNSAr MTY1LDE1IEBAIHR5cGVkZWYgc3RydWN0CiAgIHVuc2lnbmVkIGludCAgIHBv aW50ZXJfc2l6ZTsKICAgdW5zaWduZWQgaW50ICAgb2Zmc2V0X3NpemU7CiAg IGludCAgICAgICAgICAgIGR3YXJmX3ZlcnNpb247Ci0gIHVuc2lnbmVkIGxv bmcgIGN1X29mZnNldDsKLSAgdW5zaWduZWQgbG9uZwkgYmFzZV9hZGRyZXNz OworICBiZmRfdm1hCSBjdV9vZmZzZXQ7CisgIGJmZF92bWEJIGJhc2VfYWRk cmVzczsKICAgLyogVGhpcyBpcyBhbiBhcnJheSBvZiBvZmZzZXRzIHRvIHRo ZSBsb2NhdGlvbiBsaXN0IHRhYmxlLiAgKi8KLSAgdW5zaWduZWQgbG9uZyAq bG9jX29mZnNldHM7CisgIGJmZF92bWEJKmxvY19vZmZzZXRzOwogICBpbnQJ CSpoYXZlX2ZyYW1lX2Jhc2U7CiAgIHVuc2lnbmVkIGludCAgIG51bV9sb2Nf b2Zmc2V0czsKICAgdW5zaWduZWQgaW50ICAgbWF4X2xvY19vZmZzZXRzOwog ICAvKiBMaXN0IG9mIC5kZWJ1Z19yYW5nZXMgb2Zmc2V0cyBzZWVuIGluIHRo aXMgLmRlYnVnX2luZm8uICAqLwotICB1bnNpZ25lZCBsb25nICpyYW5nZV9s aXN0czsKKyAgYmZkX3ZtYQkqcmFuZ2VfbGlzdHM7CiAgIHVuc2lnbmVkIGlu dCAgIG51bV9yYW5nZV9saXN0czsKICAgdW5zaWduZWQgaW50ICAgbWF4X3Jh bmdlX2xpc3RzOwogfQpAQCAtMTMxLDUgKzIxNyw1IEBAIHZvaWQgKmNtYWxs b2MgKHNpemVfdCwgc2l6ZV90KTsKIHZvaWQgKnhjbWFsbG9jIChzaXplX3Qs IHNpemVfdCk7CiB2b2lkICp4Y3JlYWxsb2MgKHZvaWQgKiwgc2l6ZV90LCBz aXplX3QpOwogCi11bnNpZ25lZCBsb25nIGludCByZWFkX2xlYjEyOCAodW5z aWduZWQgY2hhciAqZGF0YSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgKmxl bmd0aF9yZXR1cm4sIGludCBzaWduKTsKK2JmZF92bWEgcmVhZF9sZWIxMjgg KHVuc2lnbmVkIGNoYXIgKmRhdGEsCisJCSAgICAgdW5zaWduZWQgaW50ICps ZW5ndGhfcmV0dXJuLCBpbnQgc2lnbik7CkluZGV4OiBzcmMvaW5jbHVkZS9k d2FyZjIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzcmMub3JpZy9p bmNsdWRlL2R3YXJmMi5oCTIwMTEtMDItMDggMTk6NTI6MzIuMDAwMDAwMDAw ICswMTAwCisrKyBzcmMvaW5jbHVkZS9kd2FyZjIuaAkyMDExLTAyLTIxIDE1 OjQ0OjM5LjQ3MTk3MTYwMCArMDEwMApAQCAtNDQsOTUgKzQ0LDggQEAKIC8q IFRoaXMgZmlsZSBpcyBzaGFyZWQgYmV0d2VlbiBHQ0MgYW5kIEdEQiwgYW5k IHNob3VsZCBub3QgY29udGFpbgogICAgcHJvdG90eXBlcy4gICovCiAKLSNp Zm5kZWYgX0VMRl9EV0FSRjJfSAotI2RlZmluZSBfRUxGX0RXQVJGMl9ICi0K LS8qIFN0cnVjdHVyZSBmb3VuZCBpbiB0aGUgLmRlYnVnX2xpbmUgc2VjdGlv bi4gICovCi10eXBlZGVmIHN0cnVjdAotewotICB1bnNpZ25lZCBjaGFyIGxp X2xlbmd0aCAgICAgICAgICBbNF07Ci0gIHVuc2lnbmVkIGNoYXIgbGlfdmVy c2lvbiAgICAgICAgIFsyXTsKLSAgdW5zaWduZWQgY2hhciBsaV9wcm9sb2d1 ZV9sZW5ndGggWzRdOwotICB1bnNpZ25lZCBjaGFyIGxpX21pbl9pbnNuX2xl bmd0aCBbMV07Ci0gIHVuc2lnbmVkIGNoYXIgbGlfZGVmYXVsdF9pc19zdG10 IFsxXTsKLSAgdW5zaWduZWQgY2hhciBsaV9saW5lX2Jhc2UgICAgICAgWzFd OwotICB1bnNpZ25lZCBjaGFyIGxpX2xpbmVfcmFuZ2UgICAgICBbMV07Ci0g IHVuc2lnbmVkIGNoYXIgbGlfb3Bjb2RlX2Jhc2UgICAgIFsxXTsKLX0KLURX QVJGMl9FeHRlcm5hbF9MaW5lSW5mbzsKLQotdHlwZWRlZiBzdHJ1Y3QKLXsK LSAgdW5zaWduZWQgbG9uZyAgbGlfbGVuZ3RoOwotICB1bnNpZ25lZCBzaG9y dCBsaV92ZXJzaW9uOwotICB1bnNpZ25lZCBpbnQgICBsaV9wcm9sb2d1ZV9s ZW5ndGg7Ci0gIHVuc2lnbmVkIGNoYXIgIGxpX21pbl9pbnNuX2xlbmd0aDsK LSAgdW5zaWduZWQgY2hhciAgbGlfbWF4X29wc19wZXJfaW5zbjsKLSAgdW5z aWduZWQgY2hhciAgbGlfZGVmYXVsdF9pc19zdG10OwotICBpbnQgICAgICAg ICAgICBsaV9saW5lX2Jhc2U7Ci0gIHVuc2lnbmVkIGNoYXIgIGxpX2xpbmVf cmFuZ2U7Ci0gIHVuc2lnbmVkIGNoYXIgIGxpX29wY29kZV9iYXNlOwotfQot RFdBUkYyX0ludGVybmFsX0xpbmVJbmZvOwotCi0vKiBTdHJ1Y3R1cmUgZm91 bmQgaW4gLmRlYnVnX3B1Ym5hbWVzIHNlY3Rpb24uICAqLwotdHlwZWRlZiBz dHJ1Y3QKLXsKLSAgdW5zaWduZWQgY2hhciBwbl9sZW5ndGggIFs0XTsKLSAg dW5zaWduZWQgY2hhciBwbl92ZXJzaW9uIFsyXTsKLSAgdW5zaWduZWQgY2hh ciBwbl9vZmZzZXQgIFs0XTsKLSAgdW5zaWduZWQgY2hhciBwbl9zaXplICAg IFs0XTsKLX0KLURXQVJGMl9FeHRlcm5hbF9QdWJOYW1lczsKLQotdHlwZWRl ZiBzdHJ1Y3QKLXsKLSAgdW5zaWduZWQgbG9uZyAgcG5fbGVuZ3RoOwotICB1 bnNpZ25lZCBzaG9ydCBwbl92ZXJzaW9uOwotICB1bnNpZ25lZCBsb25nICBw bl9vZmZzZXQ7Ci0gIHVuc2lnbmVkIGxvbmcgIHBuX3NpemU7Ci19Ci1EV0FS RjJfSW50ZXJuYWxfUHViTmFtZXM7Ci0KLS8qIFN0cnVjdHVyZSBmb3VuZCBp biAuZGVidWdfaW5mbyBzZWN0aW9uLiAgKi8KLXR5cGVkZWYgc3RydWN0Ci17 Ci0gIHVuc2lnbmVkIGNoYXIgIGN1X2xlbmd0aCAgICAgICAgWzRdOwotICB1 bnNpZ25lZCBjaGFyICBjdV92ZXJzaW9uICAgICAgIFsyXTsKLSAgdW5zaWdu ZWQgY2hhciAgY3VfYWJicmV2X29mZnNldCBbNF07Ci0gIHVuc2lnbmVkIGNo YXIgIGN1X3BvaW50ZXJfc2l6ZSAgWzFdOwotfQotRFdBUkYyX0V4dGVybmFs X0NvbXBVbml0OwotCi10eXBlZGVmIHN0cnVjdAotewotICB1bnNpZ25lZCBs b25nICBjdV9sZW5ndGg7Ci0gIHVuc2lnbmVkIHNob3J0IGN1X3ZlcnNpb247 Ci0gIHVuc2lnbmVkIGxvbmcgIGN1X2FiYnJldl9vZmZzZXQ7Ci0gIHVuc2ln bmVkIGNoYXIgIGN1X3BvaW50ZXJfc2l6ZTsKLX0KLURXQVJGMl9JbnRlcm5h bF9Db21wVW5pdDsKLQotdHlwZWRlZiBzdHJ1Y3QKLXsKLSAgdW5zaWduZWQg Y2hhciAgYXJfbGVuZ3RoICAgICAgIFs0XTsKLSAgdW5zaWduZWQgY2hhciAg YXJfdmVyc2lvbiAgICAgIFsyXTsKLSAgdW5zaWduZWQgY2hhciAgYXJfaW5m b19vZmZzZXQgIFs0XTsKLSAgdW5zaWduZWQgY2hhciAgYXJfcG9pbnRlcl9z aXplIFsxXTsKLSAgdW5zaWduZWQgY2hhciAgYXJfc2VnbWVudF9zaXplIFsx XTsKLX0KLURXQVJGMl9FeHRlcm5hbF9BUmFuZ2U7Ci0KLXR5cGVkZWYgc3Ry dWN0Ci17Ci0gIHVuc2lnbmVkIGxvbmcgIGFyX2xlbmd0aDsKLSAgdW5zaWdu ZWQgc2hvcnQgYXJfdmVyc2lvbjsKLSAgdW5zaWduZWQgbG9uZyAgYXJfaW5m b19vZmZzZXQ7Ci0gIHVuc2lnbmVkIGNoYXIgIGFyX3BvaW50ZXJfc2l6ZTsK LSAgdW5zaWduZWQgY2hhciAgYXJfc2VnbWVudF9zaXplOwotfQotRFdBUkYy X0ludGVybmFsX0FSYW5nZTsKLQorI2lmbmRlZiBfRFdBUkYyX0gKKyNkZWZp bmUgX0RXQVJGMl9ICiAKIC8qIFRhZyBuYW1lcyBhbmQgY29kZXMuICAqLwog ZW51bSBkd2FyZl90YWcKQEAgLTk1Myw0ICs4NjYsNCBAQCBlbnVtIGR3YXJm X21hY2luZm9fcmVjb3JkX3R5cGUKIAogI2RlZmluZSBEV19FSF9QRV9pbmRp cmVjdAkweDgwCiAKLSNlbmRpZiAvKiBfRUxGX0RXQVJGMl9IICovCisjZW5k aWYgLyogX0RXQVJGMl9IICovCg== --0016362849f8b15b96049ccc79c9--