From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1J91PG-0007qu-8D for mharc-grub-devel@gnu.org; Sun, 30 Dec 2007 11:52:58 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1J91PE-0007qh-W3 for grub-devel@gnu.org; Sun, 30 Dec 2007 11:52:57 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1J91PE-0007qO-62 for grub-devel@gnu.org; Sun, 30 Dec 2007 11:52:56 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1J91PE-0007qL-0j for grub-devel@gnu.org; Sun, 30 Dec 2007 11:52:56 -0500 Received: from pne-smtpout3-sn1.fre.skanova.net ([81.228.11.120]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1J91PC-0000SM-NY for grub-devel@gnu.org; Sun, 30 Dec 2007 11:52:55 -0500 Received: from [127.0.0.1] (88.193.32.97) by pne-smtpout3-sn1.fre.skanova.net (7.3.129) id 474FCCB00016237E for grub-devel@gnu.org; Sun, 30 Dec 2007 17:52:02 +0100 Message-ID: <4777CCE7.7050108@nic.fi> Date: Sun, 30 Dec 2007 18:52:55 +0200 From: =?UTF-8?B?VmVzYSBKw6TDpHNrZWzDpGluZW4=?= User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: The development of GRUB 2 X-Enigmail-Version: 0.95.5 Content-Type: multipart/mixed; boundary="------------060307060309010409040008" X-detected-kernel: by monty-python.gnu.org: Solaris 10 (beta) Subject: [patch] Background support for gfxterm and improved scrolling performance. X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Dec 2007 16:52:57 -0000 This is a multi-part message in MIME format. --------------060307060309010409040008 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: Quoted-Printable Hi All, Here is a patch that adds background image support to gfxterm. At same time I added some small optimizations that didn't need any extra memory. I also added some new commands to video subsystem interface to make it more easier to use it. There are still some issues about saving and restoring state for video adapter that I think should be added but are still not there. Eg. trying different adapter/mode that is not working correctly and then restoring back to working configuration. This patch should also fix Robert's problem with menu colors. To make it absolute clear this patch does NOT make graphical menu, it is just to meet demands for background image support while waiting for the implementation ;). Usage: insmod video insmod vbe insmod gfxterm insmod tga terminal gfxterm background_image Thanks, Vesa J=C3=A4=C3=A4skel=C3=A4inen --------------060307060309010409040008 Content-Type: text/plain; name="grub2-gfxterm-and-video-fix.diff" Content-Disposition: inline; filename="grub2-gfxterm-and-video-fix.diff" Content-Transfer-Encoding: Base64 SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvc291cmNlcy9ncnVi L2dydWIyL0NoYW5nZUxvZyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40NjEKZGlmZiAtdSAt cCAtMSAtcjEuNDYxIENoYW5nZUxvZwotLS0gQ2hhbmdlTG9nCTMwIERlYyAyMDA3IDA4OjQ5 OjU2IC0wMDAwCTEuNDYxCisrKyBDaGFuZ2VMb2cJMzAgRGVjIDIwMDcgMTY6NDE6MTggLTAw MDAKQEAgLTEgKzEsNTIgQEAKKzIwMDctMTItMzAgIFZlc2EgSmFhc2tlbGFpbmVuICA8Y2hh YWNAbmljLmZpPgorCisJKiBpbmNsdWRlL2dydWIvdmlkZW8uaDogQWRkZWQgZ3J1Yl92aWRl b191bm1hcF9jb2xvciBhbmQgCisJZ3J1Yl92aWRlb19nZXRfYWN0aXZlX3JlbmRlcl90YXJn ZXQuCisJKGdydWJfdmlkZW9fYWRhcHRlcik6IEFkZGVkIHVubWFwX2NvbG9yIGFuZCBnZXRf YWN0aXZlX3JlbmRlcl90YXJnZXQuCisKKwkqIHZpZGVvL3ZpZGVvLmM6IEFkZGVkIGdydWJf dmlkZW9fdW5tYXBfY29sb3IgYW5kIAorCWdydWJfdmlkZW9fZ2V0X2FjdGl2ZV9yZW5kZXJf dGFyZ2V0LgorCShncnViX3ZpZGVvX2dldF9pbmZvKTogQ2hhbmdlZCBtZXRob2QgdG8gYWNj ZXB0IE5VTEwgcG9pbnRlciBhcyBhbgorCWFyZ3VtZW50IHRvIGFsbG93IGRldGVjdGlvbiBv ZiBhY3RpdmUgdmlkZW8gYWRhcHRlci4KKworCSogdmlkZW8vaTM4Ni9wYy92YmUuYzogUmVu YW1lZCBncnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvciBhcworCWdydWJfdmlkZW9fdmJlX3Vu bWFwX2NvbG9yX2ludC4KKwlBZGRlZCBncnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvciBhbmQK KwlncnViX3ZpZGVvX3ZiZV9nZXRfYWN0aXZlX3JlbmRlcl90YXJnZXQuCisJKGdydWJfdmlk ZW9fdmJlX2FkYXB0ZXIpOiBBZGRlZCB1bm1hcF9jb2xvciBhbmQKKwlnZXRfYWN0aXZlX3Jl bmRlcl90YXJnZXQuCisKKwkqIHZpZGVvL2kzODYvcGMvdmJlYmxpdC5jOiBSZXBsYWNlZCBn cnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvciB1c2FnZSAKKwl3aXRoIGdydWJfdmlkZW9fdmJl X3VubWFwX2NvbG9yX2ludC4KKworCSogdGVybS9nZnh0ZXJtLmMgKERFRkFVTFRfU1RBTkRB UkRfQ09MT1IpOiBBZGRlZC4KKwkoREVGQVVMVF9OT1JNQUxfQ09MT1IpOiBMaWtld2lzZS4K KwkoREVGQVVMVF9ISUdITElHSFRfQ09MT1IpIExpa2V3aXNlLgorCShERUZBVUxUX0ZHX0NP TE9SKTogUmVtb3ZlZC4KKwkoREVGQVVMVF9CR19DT0xPUik6IExpa2V3aXNlLgorCShERUZB VUxUX0NVUlNPUl9DT0xPUik6IENoYW5nZWQgdmFsdWUuCisJKGdydWJfdmlydHVhbF9zY3Jl ZW4pOiBBZGRlZCBzdGFuZGFyZF9jb2xvcl9zZXR0aW5nLAorCW5vcm1hbF9jb2xvcl9zZXR0 aW5nLCBoaWdobGlnaHRfY29sb3Jfc2V0dGluZyBhbmQgdGVybV9jb2xvci4KKwkoZ3J1Yl92 aXJ0dWFsX3NjcmVlbik6IFJlbW92ZWQgZmdfY29sb3Jfc2V0dGluZyBhbmQgYmdfY29sb3Jf c2V0dGluZy4KKwkoYml0bWFwX3dpZHRoKTogQWRkZWQuCisJKGJpdG1hcF9oZWlnaHQpOiBM aWtld2lzZS4KKwkoYml0bWFwKTogTGlrZXdpc2UuCisJKHNldF90ZXJtX2NvbG9yKTogTGlr ZXdpc2UuCisJKGdydWJfdmlydHVhbF9zY3JlZW5fc2V0dXApOiBDaGFuZ2VkIHRvIHVzZSBu ZXcgdGVybWluYWwgY29sb3JpbmcKKwlzZXR0aW5ncy4KKwkoZ3J1Yl9nZnh0ZXJtX2luaXQp OiBBZGRlZCBpbml0IGZvciBiaXRtYXAuCisJKGdydWJfZ2Z4dGVybV9maW5pKTogQWRkZWQg ZGVzdHJveSBmb3IgYml0bWFwLgorCShyZWRyYXdfc2NyZWVuX3JlY3QpOiBVcGRhdGVkIHRv IHVzZSBiYWNrZ3JvdW5kIGJpdG1hcCBhbmQgbmV3CisJdGVybWluYWwgY29sb3JpbmcuCisJ KHNjcm9sbF91cCk6IEFkZGVkIG9wdGltaXphdGlvbiBmb3IgY2FzZSB3aGVuIHRoZXJlIGlz IG5vIGJpdG1hcC4KKwkoZ3J1Yl9nZnh0ZXJtX2Nscyk6IEZpeGVkIHRvIHVzZSBjb3JyZWN0 IGJhY2tncm91bmQgY29sb3IuCisJKGdydWJfdmlydHVhbF9zY3JlZW5fc2V0Y29sb3JzdGF0 ZSk6IENoYW5nZWQgdG8gdXNlIG5ldyB0ZXJtaW5hbAorCWNvbG9yaW5nLgorCShncnViX3Zp cnR1YWxfc2NyZWVuX3NldGNvbG9yKTogTGlrZXdpc2UuCisJKGdydWJfdmlydHVhbF9zY3Jl ZW5fZ2V0Y29sb3IpOiBBZGRlZC4KKwkoZ3J1Yl9nZnh0ZXJtX2JhY2tncm91bmRfaW1hZ2Vf Y21kKTogTGlrZXdpc2UuCisJKGdydWJfdmlkZW9fdGVybSk6IEFkZGVkIHNldGNvbG9yIGFu ZCBnZXRjb2xvci4KKwkoTU9EX0lOSVQpOiBBZGRlZCByZWdpc3RyYXRpb24gb2YgYmFja2dy b3VuZF9pbWFnZSBjb21tYW5kLgorCShNT0RfVEVSTSk6IEFkZGVkIHVucmVnaXN0cmF0aW9u IGZvciBiYWNrZ3JvdW5kX2ltYWdlIGNvbW1hbmQuCisKIDIwMDctMTItMzAgIFBhdmVsIFJv c2tpbiAgPHByb3NraUBnbnUub3JnPgpJbmRleDogaW5jbHVkZS9ncnViL3ZpZGVvLmgKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvZ3J1Yi9ncnViMi9pbmNsdWRlL2dydWIv dmlkZW8uaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43CmRpZmYgLXUgLXAgLTEgLXIxLjcg dmlkZW8uaAotLS0gaW5jbHVkZS9ncnViL3ZpZGVvLmgJMzAgRGVjIDIwMDcgMDg6NTI6MDMg LTAwMDAJMS43CisrKyBpbmNsdWRlL2dydWIvdmlkZW8uaAkzMCBEZWMgMjAwNyAxNjo0MTox OCAtMDAwMApAQCAtMTc1LDIgKzE3NSw2IEBAIHN0cnVjdCBncnViX3ZpZGVvX2FkYXB0ZXIK IAorICBncnViX2Vycl90ICgqdW5tYXBfY29sb3IpIChncnViX3ZpZGVvX2NvbG9yX3QgY29s b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDhfdCAqcmVkLCBn cnViX3VpbnQ4X3QgKmdyZWVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnVi X3VpbnQ4X3QgKmJsdWUsIGdydWJfdWludDhfdCAqYWxwaGEpOworCiAgIGdydWJfZXJyX3Qg KCpmaWxsX3JlY3QpIChncnViX3ZpZGVvX2NvbG9yX3QgY29sb3IsIGludCB4LCBpbnQgeSwK QEAgLTIwMywyICsyMDcsNCBAQCBzdHJ1Y3QgZ3J1Yl92aWRlb19hZGFwdGVyCiAKKyAgZ3J1 Yl9lcnJfdCAoKmdldF9hY3RpdmVfcmVuZGVyX3RhcmdldCkgKHN0cnVjdCBncnViX3ZpZGVv X3JlbmRlcl90YXJnZXQgKip0YXJnZXQpOworCiAgIC8qIFRoZSBuZXh0IHZpZGVvIGFkYXB0 ZXIuICAqLwpAQCAtMjQxLDIgKzI0Nyw2IEBAIGdydWJfdmlkZW9fY29sb3JfdCBncnViX3Zp ZGVvX21hcF9yZ2JhICgKIAorZ3J1Yl9lcnJfdCBncnViX3ZpZGVvX3VubWFwX2NvbG9yIChn cnViX3ZpZGVvX2NvbG9yX3QgY29sb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdydWJfdWludDhfdCAqcmVkLCBncnViX3VpbnQ4X3QgKmdyZWVuLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncnViX3VpbnQ4X3QgKmJsdWUsIGdydWJf dWludDhfdCAqYWxwaGEpOworCiBncnViX2Vycl90IGdydWJfdmlkZW9fZmlsbF9yZWN0IChn cnViX3ZpZGVvX2NvbG9yX3QgY29sb3IsIGludCB4LCBpbnQgeSwKQEAgLTI3MiwyICsyODIs NCBAQCBncnViX2Vycl90IGdydWJfdmlkZW9fc2V0X2FjdGl2ZV9yZW5kZXJfCiAKK2dydWJf ZXJyX3QgZ3J1Yl92aWRlb19nZXRfYWN0aXZlX3JlbmRlcl90YXJnZXQgKHN0cnVjdCBncnVi X3ZpZGVvX3JlbmRlcl90YXJnZXQgKip0YXJnZXQpOworCiAjZW5kaWYgLyogISBHUlVCX1ZJ REVPX0hFQURFUiAqLwpJbmRleDogaW5jbHVkZS9ncnViL2kzODYvcGMvdmJlLmgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvZ3J1Yi9ncnViMi9pbmNsdWRlL2dydWIvaTM4 Ni9wYy92YmUuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXUgLXAgLTEgLXIx LjkgdmJlLmgKLS0tIGluY2x1ZGUvZ3J1Yi9pMzg2L3BjL3ZiZS5oCTMwIERlYyAyMDA3IDA4 OjUyOjA0IC0wMDAwCTEuOQorKysgaW5jbHVkZS9ncnViL2kzODYvcGMvdmJlLmgJMzAgRGVj IDIwMDcgMTY6NDE6MTggLTAwMDAKQEAgLTI0Miw2ICsyNDIsMTQgQEAgZ3J1Yl92aWRlb19j b2xvcl90IGdydWJfdmlkZW9fdmJlX21hcF9yZwogCi12b2lkIGdydWJfdmlkZW9fdmJlX3Vu bWFwX2NvbG9yIChzdHJ1Y3QgZ3J1Yl92aWRlb19pMzg2X3ZiZWJsaXRfaW5mbyAqc291cmNl LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl92aWRlb19jb2xvcl90 IGNvbG9yLCBncnViX3VpbnQ4X3QgKnJlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdydWJfdWludDhfdCAqZ3JlZW4sIGdydWJfdWludDhfdCAqYmx1ZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDhfdCAqYWxwaGEpOworZ3J1 Yl9lcnJfdCBncnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvciAoZ3J1Yl92aWRlb19jb2xvcl90 IGNvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl91 aW50OF90ICpyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn cnViX3VpbnQ4X3QgKmdyZWVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3J1Yl91aW50OF90ICpibHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3J1Yl91aW50OF90ICphbHBoYSk7CisKK3ZvaWQgZ3J1Yl92aWRlb192 YmVfdW5tYXBfY29sb3JfaW50IChzdHJ1Y3QgZ3J1Yl92aWRlb19pMzg2X3ZiZWJsaXRfaW5m byAqc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJf dmlkZW9fY29sb3JfdCBjb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBncnViX3VpbnQ4X3QgKnJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBncnViX3VpbnQ4X3QgKmdyZWVuLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdydWJfdWludDhfdCAqYmx1ZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBncnViX3VpbnQ4X3QgKmFscGhhKTsKIApJbmRleDogdGVybS9n Znh0ZXJtLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvZ3J1Yi9ncnViMi90 ZXJtL2dmeHRlcm0uYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRpZmYgLXUgLXAgLTEg LXIxLjggZ2Z4dGVybS5jCi0tLSB0ZXJtL2dmeHRlcm0uYwkzMCBEZWMgMjAwNyAwODo1Mjow NSAtMDAwMAkxLjgKKysrIHRlcm0vZ2Z4dGVybS5jCTMwIERlYyAyMDA3IDE2OjQxOjE5IC0w MDAwCkBAIC0zMCwyICszMCwzIEBACiAjaW5jbHVkZSA8Z3J1Yi92aWRlby5oPgorI2luY2x1 ZGUgPGdydWIvYml0bWFwLmg+CiAKQEAgLTQwLDUgKzQxLDYgQEAKIAotI2RlZmluZSBERUZB VUxUX0ZHX0NPTE9SICAgIAkweDBhCi0jZGVmaW5lIERFRkFVTFRfQkdfQ09MT1IgICAgCTB4 MDAKLSNkZWZpbmUgREVGQVVMVF9DVVJTT1JfQ09MT1IJMHgwZgorI2RlZmluZSBERUZBVUxU X1NUQU5EQVJEX0NPTE9SICAweDA3CisjZGVmaW5lIERFRkFVTFRfTk9STUFMX0NPTE9SICAg IDB4MDcKKyNkZWZpbmUgREVGQVVMVF9ISUdITElHSFRfQ09MT1IgMHg3MAorI2RlZmluZSBE RUZBVUxUX0NVUlNPUl9DT0xPUgkweDA3CiAKQEAgLTkxLDUgKzkzLDkgQEAgc3RydWN0IGdy dWJfdmlydHVhbF9zY3JlZW4KIAorICAvKiBUZXJtaW5hbCBjb2xvciBzZXR0aW5ncy4gICov CisgIGdydWJfdWludDhfdCBzdGFuZGFyZF9jb2xvcl9zZXR0aW5nOworICBncnViX3VpbnQ4 X3Qgbm9ybWFsX2NvbG9yX3NldHRpbmc7CisgIGdydWJfdWludDhfdCBoaWdobGlnaHRfY29s b3Jfc2V0dGluZzsKKyAgZ3J1Yl91aW50OF90IHRlcm1fY29sb3I7CisgIAogICAvKiBDb2xv ciBzZXR0aW5ncy4gICovCi0gIGdydWJfdmlkZW9fY29sb3JfdCBmZ19jb2xvcl9zZXR0aW5n OwotICBncnViX3ZpZGVvX2NvbG9yX3QgYmdfY29sb3Jfc2V0dGluZzsKICAgZ3J1Yl92aWRl b19jb2xvcl90IGZnX2NvbG9yOwpAQCAtMTEwLDIgKzExNiw2IEBAIHN0YXRpYyBzdHJ1Y3Qg Z3J1Yl92aWRlb19yZW5kZXJfdGFyZ2V0ICoKIAorc3RhdGljIHVuc2lnbmVkIGludCBiaXRt YXBfd2lkdGg7CitzdGF0aWMgdW5zaWduZWQgaW50IGJpdG1hcF9oZWlnaHQ7CitzdGF0aWMg c3RydWN0IGdydWJfdmlkZW9fYml0bWFwICpiaXRtYXA7CisKIHN0YXRpYyBzdHJ1Y3QgZ3J1 Yl9kaXJ0eV9yZWdpb24gZGlydHlfcmVnaW9uOwpAQCAtMTIwLDIgKzEzMCwyOCBAQCBzdGF0 aWMgdm9pZCBkaXJ0eV9yZWdpb25fYWRkIChpbnQgeCwgaW50CiBzdGF0aWMgdm9pZAorc2V0 X3Rlcm1fY29sb3IgKGdydWJfdWludDhfdCB0ZXJtX2NvbG9yKQoreworICBzdHJ1Y3QgZ3J1 Yl92aWRlb19yZW5kZXJfdGFyZ2V0ICpvbGRfdGFyZ2V0OworCisgIC8qIFNhdmUgcHJldmlv dXMgdGFyZ2V0IGFuZCBzd2l0Y2ggdG8gdGV4dCBsYXllci4gICovCisgIGdydWJfdmlkZW9f Z2V0X2FjdGl2ZV9yZW5kZXJfdGFyZ2V0ICgmb2xkX3RhcmdldCk7CisgIGdydWJfdmlkZW9f c2V0X2FjdGl2ZV9yZW5kZXJfdGFyZ2V0ICh0ZXh0X2xheWVyKTsKKworICAvKiBNYXAgdGVy bWluYWwgY29sb3IgdG8gdGV4dCBsYXllciBjb21wYXRpYmxlIHZpZGVvIGNvbG9ycy4gICov CisgIHZpcnR1YWxfc2NyZWVuLmZnX2NvbG9yID0gZ3J1Yl92aWRlb19tYXBfY29sb3IodGVy bV9jb2xvciAmIDB4MGYpOworICAKKyAgLyogU3BlY2lhbCBjYXNlOiB1c2UgYmxhY2sgYXMg dHJhbnNwYXJlbnQgY29sb3IuICAqLworICBpZiAoKCh0ZXJtX2NvbG9yID4+IDQpICYgMHgw ZikgPT0gMCkKKyAgICB7CisgICAgICB2aXJ0dWFsX3NjcmVlbi5iZ19jb2xvciA9IGdydWJf dmlkZW9fbWFwX3JnYmEoMCwgMCwgMCwgMCk7CisgICAgfSAKKyAgZWxzZQorICAgIHsKKyAg ICAgIHZpcnR1YWxfc2NyZWVuLmJnX2NvbG9yID0gZ3J1Yl92aWRlb19tYXBfY29sb3IoKHRl cm1fY29sb3IgPj4gNCkgJiAweDBmKTsKKyAgICB9CisKKyAgLyogUmVzdG9yZSBwcmV2aW91 cyB0YXJnZXQuICAqLworICBncnViX3ZpZGVvX3NldF9hY3RpdmVfcmVuZGVyX3RhcmdldCAo b2xkX3RhcmdldCk7Cit9CisKK3N0YXRpYyB2b2lkCiBncnViX3ZpcnR1YWxfc2NyZWVuX2Zy ZWUgKHZvaWQpCkBAIC0xNzcsNiArMjEzLDEwIEBAIGdydWJfdmlydHVhbF9zY3JlZW5fc2V0 dXAgKHVuc2lnbmVkIGludCAKIAotICB2aXJ0dWFsX3NjcmVlbi5mZ19jb2xvcl9zZXR0aW5n ID0gZ3J1Yl92aWRlb19tYXBfY29sb3IgKERFRkFVTFRfRkdfQ09MT1IpOwotICB2aXJ0dWFs X3NjcmVlbi5iZ19jb2xvcl9zZXR0aW5nID0gZ3J1Yl92aWRlb19tYXBfY29sb3IgKERFRkFV TFRfQkdfQ09MT1IpOwotICB2aXJ0dWFsX3NjcmVlbi5mZ19jb2xvciA9IHZpcnR1YWxfc2Ny ZWVuLmZnX2NvbG9yX3NldHRpbmc7Ci0gIHZpcnR1YWxfc2NyZWVuLmJnX2NvbG9yID0gdmly dHVhbF9zY3JlZW4uYmdfY29sb3Jfc2V0dGluZzsKKyAgdmlydHVhbF9zY3JlZW4uc3RhbmRh cmRfY29sb3Jfc2V0dGluZyA9IERFRkFVTFRfU1RBTkRBUkRfQ09MT1I7CisgIHZpcnR1YWxf c2NyZWVuLm5vcm1hbF9jb2xvcl9zZXR0aW5nID0gREVGQVVMVF9OT1JNQUxfQ09MT1I7Cisg IHZpcnR1YWxfc2NyZWVuLmhpZ2hsaWdodF9jb2xvcl9zZXR0aW5nID0gREVGQVVMVF9ISUdI TElHSFRfQ09MT1I7CisgIAorICB2aXJ0dWFsX3NjcmVlbi50ZXJtX2NvbG9yID0gdmlydHVh bF9zY3JlZW4ubm9ybWFsX2NvbG9yX3NldHRpbmc7CisgIAorICBzZXRfdGVybV9jb2xvciAo dmlydHVhbF9zY3JlZW4udGVybV9jb2xvcik7CisKICAgdmlydHVhbF9zY3JlZW4uY3Vyc29y X2NvbG9yID0gZ3J1Yl92aWRlb19tYXBfY29sb3IgKERFRkFVTFRfQ1VSU09SX0NPTE9SKTsK QEAgLTQyOSwyICs0NjksMyBAQCBncnViX2dmeHRlcm1faW5pdCAodm9pZCkKICAgZ3J1Yl92 aWRlb19maWxsX3JlY3QgKGNvbG9yLCAwLCAwLCBtb2RlX2luZm8ud2lkdGgsIG1vZGVfaW5m by5oZWlnaHQpOworICBiaXRtYXAgPSAwOwogCkBAIC00NTIsMiArNDkzLDggQEAgZ3J1Yl9n Znh0ZXJtX2ZpbmkgKHZvaWQpCiB7CisgIGlmIChiaXRtYXApCisgICAgeworICAgICAgZ3J1 Yl92aWRlb19iaXRtYXBfZGVzdHJveSAoYml0bWFwKTsKKyAgICAgIGJpdG1hcCA9IDA7Cisg ICAgfQorCiAgIGdydWJfdmlydHVhbF9zY3JlZW5fZnJlZSAoKTsKQEAgLTQ2NywxMSArNTE0 LDY4IEBAIHJlZHJhd19zY3JlZW5fcmVjdCAodW5zaWduZWQgaW50IHgsIHVuc2kKIAotICAv KiBSZW5kZXIgYmFja2dyb3VuZCBsYXllci4gICovCi0gIGNvbG9yID0gdmlydHVhbF9zY3Jl ZW4uYmdfY29sb3I7Ci0gIGdydWJfdmlkZW9fZmlsbF9yZWN0IChjb2xvciwgeCwgeSwgd2lk dGgsIGhlaWdodCk7CiAKLSAgLyogUmVuZGVyIHRleHQgbGF5ZXIuICAqLwotICBncnViX3Zp ZGVvX2JsaXRfcmVuZGVyX3RhcmdldCAodGV4dF9sYXllciwgR1JVQl9WSURFT19CTElUX0JM RU5ELCB4LCB5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCAtIHZpcnR1 YWxfc2NyZWVuLm9mZnNldF94LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eSAtIHZpcnR1YWxfc2NyZWVuLm9mZnNldF95LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgd2lkdGgsIGhlaWdodCk7CisgIGlmIChiaXRtYXApCisgICAgeworICAgICAg LyogUmVuZGVyIGJpdG1hcCBhcyBiYWNrZ3JvdW5kLiAgKi8KKyAgICAgIGdydWJfdmlkZW9f YmxpdF9iaXRtYXAgKGJpdG1hcCwgR1JVQl9WSURFT19CTElUX1JFUExBQ0UsIHgsIHksIAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCwgeSwgCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgIAorICAgICAgLyogSWYgYml0 bWFwIGlzIHNtYWxsZXIgdGhhbiByZXF1ZXN0ZWQgYmxpdCBhcmVhLCB1c2UgYmFja2dyb3Vu ZCAKKyAgICAgICAgIGNvbG9yLiAgKi8KKyAgICAgIGNvbG9yID0gdmlydHVhbF9zY3JlZW4u YmdfY29sb3I7CisKKyAgICAgIC8qIEZpbGwgcmlnaHQgc2lkZSBvZiB0aGUgYml0bWFwIGlm IG5lZWRlZC4gICovCisgICAgICBpZiAoKHggKyB3aWR0aCA+PSBiaXRtYXBfd2lkdGgpICYm ICh5IDwgYml0bWFwX2hlaWdodCkpCisgICAgICAgIHsKKyAgICAgICAgICBpbnQgdyA9ICh4 ICsgd2lkdGgpIC0gYml0bWFwX3dpZHRoOworICAgICAgICAgIGludCBoID0gaGVpZ2h0Owor ICAgICAgICAgIHVuc2lnbmVkIGludCB0eCA9IHg7CisKKyAgICAgICAgICBpZiAoeSArIGhl aWdodCA+PSBiaXRtYXBfaGVpZ2h0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBo ID0gYml0bWFwX2hlaWdodCAtIHk7CisgICAgICAgICAgICB9CisgICAgICAgICAgCisgICAg ICAgICAgaWYgKGJpdG1hcF93aWR0aCA+IHR4KQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICB0eCA9IGJpdG1hcF93aWR0aDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAKKyAg ICAgICAgICAvKiBSZW5kZXIgYmFja2dyb3VuZCBsYXllci4gICovCisgICAgICAgICAgZ3J1 Yl92aWRlb19maWxsX3JlY3QgKGNvbG9yLCB0eCwgeSwgdywgaCk7ICAgICAgICAKKyAgICAg ICAgfQorICAgICAgCisgICAgICAvKiBGaWxsIGJvdHRvbSBzaWRlIG9mIHRoZSBiaXRtYXAg aWYgbmVlZGVkLiAgKi8KKyAgICAgIGlmICh5ICsgaGVpZ2h0ID49IGJpdG1hcF9oZWlnaHQp CisgICAgICAgIHsKKyAgICAgICAgICBpbnQgaCA9ICh5ICsgaGVpZ2h0KSAtIGJpdG1hcF9o ZWlnaHQ7CisgICAgICAgICAgdW5zaWduZWQgaW50IHR5ID0geTsKKyAgICAgICAgICAKKyAg ICAgICAgICBpZiAoYml0bWFwX2hlaWdodCA+IHR5KQorICAgICAgICAgICAgeworICAgICAg ICAgICAgICB0eSA9IGJpdG1hcF9oZWlnaHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAg CisgICAgICAgICAgLyogUmVuZGVyIGJhY2tncm91bmQgbGF5ZXIuICAqLworICAgICAgICAg IGdydWJfdmlkZW9fZmlsbF9yZWN0IChjb2xvciwgeCwgdHksIHdpZHRoLCBoKTsgICAgICAg IAorICAgICAgICB9CisKKyAgICAgIC8qIFJlbmRlciB0ZXh0IGxheWVyIGFzIGJsZW5kZWQu ICAqLworICAgICAgZ3J1Yl92aWRlb19ibGl0X3JlbmRlcl90YXJnZXQgKHRleHRfbGF5ZXIs IEdSVUJfVklERU9fQkxJVF9CTEVORCwgeCwgeSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB4IC0gdmlydHVhbF9zY3JlZW4ub2Zmc2V0X3gsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeSAtIHZpcnR1YWxfc2NyZWVuLm9mZnNldF95 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCBoZWlnaHQp OworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIFJlbmRlciBiYWNrZ3JvdW5kIGxh eWVyLiAgKi8KKyAgICAgIGNvbG9yID0gdmlydHVhbF9zY3JlZW4uYmdfY29sb3I7CisgICAg ICBncnViX3ZpZGVvX2ZpbGxfcmVjdCAoY29sb3IsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwor CisgICAgICAvKiBSZW5kZXIgdGV4dCBsYXllciBhcyByZXBsYWNlZCAodG8gZ2V0IHRleHRz IGJhY2tncm91bmQgY29sb3IpLiAgKi8KKyAgICAgIGdydWJfdmlkZW9fYmxpdF9yZW5kZXJf dGFyZ2V0ICh0ZXh0X2xheWVyLCBHUlVCX1ZJREVPX0JMSVRfUkVQTEFDRSwgeCwgeSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4IC0gdmlydHVhbF9zY3JlZW4u b2Zmc2V0X3gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSAtIHZp cnR1YWxfc2NyZWVuLm9mZnNldF95LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdpZHRoLCBoZWlnaHQpOyAgICAgIAorICAgIH0KIH0KQEAgLTYyNSwyICs3Mjks MTIgQEAgc2Nyb2xsX3VwICh2b2lkKQogCisgIC8qIElmIHdlIGRvbid0IGhhdmUgYmFja2dy b3VuZCBiaXRtYXAsIHJlbW92ZSBjdXJzb3IuICovCisgIGlmICghYml0bWFwKQorICAgIHsK KyAgICAgIC8qIFJlbW92ZSBjdXJzb3IuICAqLworICAgICAgd3JpdGVfY2hhciAoKTsKKwor ICAgICAgLyogUmVkcmF3IG9ubHkgY2hhbmdlZCByZWdpb25zLiAgKi8KKyAgICAgIGRpcnR5 X3JlZ2lvbl9yZWRyYXcgKCk7CisgICAgfQorICAKICAgLyogU2Nyb2xsIHRleHQgYnVmZmVy IHdpdGggb25lIGxpbmUgdG8gdXAuICAqLwpAQCAtNjQ5LDUgKzc2MywyMyBAQCBzY3JvbGxf dXAgKHZvaWQpCiAgIGdydWJfdmlkZW9fc2V0X2FjdGl2ZV9yZW5kZXJfdGFyZ2V0IChHUlVC X1ZJREVPX1JFTkRFUl9UQVJHRVRfRElTUExBWSk7CisgIAorICAvKiBJZiB3ZSBoYXZlIGJp dG1hcCwgcmUtZHJhdyBzY3JlZW4sIG90aGVyd2lzZSBzY3JvbGwgcGh5c2ljYWwgc2NyZWVu IHRvby4gICovCisgIGlmIChiaXRtYXApCisgICAgeworICAgICAgLyogTWFyayB2aXJ0dWFs IHNjcmVlbiB0byBiZSByZWRyYXduLiAgKi8KKyAgICAgIGRpcnR5X3JlZ2lvbl9hZGRfdmly dHVhbHNjcmVlbiAoKTsKKyAgICB9CisgIGVsc2UKKyAgICB7ICAgICAgCisgICAgICAvKiBD bGVhciBuZXcgYm9yZGVyIGFyZWEuICAqLworICAgICAgZ3J1Yl92aWRlb19maWxsX3JlY3Qg KGNvbG9yLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsX3NjcmVlbi5v ZmZzZXRfeCwgdmlydHVhbF9zY3JlZW4ub2Zmc2V0X3ksIAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZpcnR1YWxfc2NyZWVuLndpZHRoLCB2aXJ0dWFsX3NjcmVlbi5jaGFyX2hl aWdodCk7CisgICAgICAKKyAgICAgIC8qIFNjcm9sbCBwaHlzaWNhbCBzY3JlZW4uICAqLwor ICAgICAgZ3J1Yl92aWRlb19zY3JvbGwgKGNvbG9yLCAwLCAtdmlydHVhbF9zY3JlZW4uY2hh cl9oZWlnaHQpOyAgICAgIAogCi0gIC8qIE1hcmsgdmlydHVhbCBzY3JlZW4gdG8gYmUgcmVk cmF3bi4gICovCi0gIGRpcnR5X3JlZ2lvbl9hZGRfdmlydHVhbHNjcmVlbiAoKTsKKyAgICAg IC8qIERyYXcgY3Vyc29yIGlmIHZpc2libGUuICAqLworICAgICAgaWYgKHZpcnR1YWxfc2Ny ZWVuLmN1cnNvcl9zdGF0ZSkKKyAgICAgICAgd3JpdGVfY3Vyc29yICgpOworICAgIH0KIH0K QEAgLTgxNCwzICs5NDYsMyBAQCBncnViX2dmeHRlcm1fY2xzICh2b2lkKQogICBncnViX3Zp ZGVvX3NldF9hY3RpdmVfcmVuZGVyX3RhcmdldCAodGV4dF9sYXllcik7Ci0gIGNvbG9yID0g dmlydHVhbF9zY3JlZW4uYmdfY29sb3Jfc2V0dGluZzsKKyAgY29sb3IgPSB2aXJ0dWFsX3Nj cmVlbi5iZ19jb2xvcjsKICAgZ3J1Yl92aWRlb19maWxsX3JlY3QgKGNvbG9yLCAwLCAwLCBt b2RlX2luZm8ud2lkdGgsIG1vZGVfaW5mby5oZWlnaHQpOwpAQCAtODI4LDEwICs5NjAsMTMg QEAgZ3J1Yl92aXJ0dWFsX3NjcmVlbl9zZXRjb2xvcnN0YXRlIChncnViXwogICAgIGNhc2Ug R1JVQl9URVJNX0NPTE9SX1NUQU5EQVJEOgorICAgICAgdmlydHVhbF9zY3JlZW4udGVybV9j b2xvciA9IHZpcnR1YWxfc2NyZWVuLnN0YW5kYXJkX2NvbG9yX3NldHRpbmc7CisgICAgICBi cmVhazsKKyAgICAgIAogICAgIGNhc2UgR1JVQl9URVJNX0NPTE9SX05PUk1BTDoKLSAgICAg IHZpcnR1YWxfc2NyZWVuLmZnX2NvbG9yID0gdmlydHVhbF9zY3JlZW4uZmdfY29sb3Jfc2V0 dGluZzsKLSAgICAgIHZpcnR1YWxfc2NyZWVuLmJnX2NvbG9yID0gdmlydHVhbF9zY3JlZW4u YmdfY29sb3Jfc2V0dGluZzsKKyAgICAgIHZpcnR1YWxfc2NyZWVuLnRlcm1fY29sb3IgPSB2 aXJ0dWFsX3NjcmVlbi5ub3JtYWxfY29sb3Jfc2V0dGluZzsKICAgICAgIGJyZWFrOworICAg ICAgCiAgICAgY2FzZSBHUlVCX1RFUk1fQ09MT1JfSElHSExJR0hUOgotICAgICAgdmlydHVh bF9zY3JlZW4uZmdfY29sb3IgPSB2aXJ0dWFsX3NjcmVlbi5iZ19jb2xvcl9zZXR0aW5nOwot ICAgICAgdmlydHVhbF9zY3JlZW4uYmdfY29sb3IgPSB2aXJ0dWFsX3NjcmVlbi5mZ19jb2xv cl9zZXR0aW5nOworICAgICAgdmlydHVhbF9zY3JlZW4udGVybV9jb2xvciA9IHZpcnR1YWxf c2NyZWVuLmhpZ2hsaWdodF9jb2xvcl9zZXR0aW5nOwogICAgICAgYnJlYWs7CisgICAgICAK ICAgICBkZWZhdWx0OgpAQCAtODM5LDIgKzk3NCwyMSBAQCBncnViX3ZpcnR1YWxfc2NyZWVu X3NldGNvbG9yc3RhdGUgKGdydWJfCiAgICAgfQorCisgIC8qIENoYW5nZSBjb2xvciB0byB2 aXJ0dWFsIHRlcm1pbmFsLiAgKi8KKyAgc2V0X3Rlcm1fY29sb3IgKHZpcnR1YWxfc2NyZWVu LnRlcm1fY29sb3IpOworfQorCitzdGF0aWMgdm9pZAorZ3J1Yl92aXJ0dWFsX3NjcmVlbl9z ZXRjb2xvciAoZ3J1Yl91aW50OF90IG5vcm1hbF9jb2xvciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdydWJfdWludDhfdCBoaWdobGlnaHRfY29sb3IpCit7CisgIHZpcnR1 YWxfc2NyZWVuLm5vcm1hbF9jb2xvcl9zZXR0aW5nID0gbm9ybWFsX2NvbG9yOworICB2aXJ0 dWFsX3NjcmVlbi5oaWdobGlnaHRfY29sb3Jfc2V0dGluZyA9IGhpZ2hsaWdodF9jb2xvcjsK K30KKworc3RhdGljIHZvaWQKK2dydWJfdmlydHVhbF9zY3JlZW5fZ2V0Y29sb3IgKGdydWJf dWludDhfdCAqbm9ybWFsX2NvbG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3J1Yl91aW50OF90ICpoaWdobGlnaHRfY29sb3IpCit7CisgICpub3JtYWxfY29sb3IgPSB2 aXJ0dWFsX3NjcmVlbi5ub3JtYWxfY29sb3Jfc2V0dGluZzsKKyAgKmhpZ2hsaWdodF9jb2xv ciA9IHZpcnR1YWxfc2NyZWVuLmhpZ2hsaWdodF9jb2xvcl9zZXR0aW5nOwogfQpAQCAtODYy LDIgKzEwMTYsNDggQEAgZ3J1Yl9nZnh0ZXJtX3JlZnJlc2ggKHZvaWQpCiAKK3N0YXRpYyBn cnViX2Vycl90CitncnViX2dmeHRlcm1fYmFja2dyb3VuZF9pbWFnZV9jbWQgKHN0cnVjdCBn cnViX2FyZ19saXN0ICpzdGF0ZSBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhcmdjLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFyICoqYXJncykKK3sKKyAgLyogQ2hlY2sgdGhhdCB3 ZSBoYXZlIHZpZGVvIGFkYXB0ZXIgYWN0aXZlLiAgKi8KKyAgaWYgKGdydWJfdmlkZW9fZ2V0 X2luZm8oTlVMTCkgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICByZXR1cm4gZ3J1Yl9lcnJubzsK KyAgCisgIC8qIERlc3Ryb3kgZXhpc3RpbmcgYmFja2dyb3VuZCBiaXRtYXAgaWYgbG9hZGVk LiAgKi8KKyAgaWYgKGJpdG1hcCkKKyAgICB7CisgICAgICBncnViX3ZpZGVvX2JpdG1hcF9k ZXN0cm95IChiaXRtYXApOworICAgICAgYml0bWFwID0gMDsKKyAgICAgIAorICAgICAgLyog TWFyayB3aG9sZSBzY3JlZW4gYXMgZGlydHkuICAqLworICAgICAgZGlydHlfcmVnaW9uX3Jl c2V0ICgpOworICAgICAgZGlydHlfcmVnaW9uX2FkZCAoMCwgMCwgbW9kZV9pbmZvLndpZHRo LCBtb2RlX2luZm8uaGVpZ2h0KTsKKyAgICB9CisKKyAgLyogSWYgZmlsZW5hbWUgd2FzIHBy b3ZpZGVkLCB0cnkgdG8gbG9hZCB0aGF0LiAgKi8KKyAgaWYgKGFyZ2MgPj0gMSkKKyAgICB7 CisgICAgLyogVHJ5IHRvIGxvYWQgbmV3IG9uZS4gICovCisgICAgZ3J1Yl92aWRlb19iaXRt YXBfbG9hZCAoJmJpdG1hcCwgYXJnc1swXSk7ICAgIAorICAgIGlmIChncnViX2Vycm5vICE9 IEdSVUJfRVJSX05PTkUpCisgICAgICByZXR1cm4gZ3J1Yl9lcnJubzsKKworICAgIC8qIElm IGJpdG1hcCB3YXMgbG9hZGVkIGNvcnJlY3RseSwgZGlzcGxheSBpdC4gICovCisgICAgaWYg KGJpdG1hcCkKKyAgICAgIHsKKyAgICAgICAgLyogRGV0ZXJtaW5lIGJpdG1hcCBkaW1lbnNp b25zLiAgKi8KKyAgICAgICAgYml0bWFwX3dpZHRoID0gZ3J1Yl92aWRlb19iaXRtYXBfZ2V0 X3dpZHRoIChiaXRtYXApOworICAgICAgICBiaXRtYXBfaGVpZ2h0ID0gZ3J1Yl92aWRlb19i aXRtYXBfZ2V0X3dpZHRoIChiaXRtYXApOworICAgICAgICAKKyAgICAgICAgLyogTWFyayB3 aG9sZSBzY3JlZW4gYXMgZGlydHkuICAqLworICAgICAgICBkaXJ0eV9yZWdpb25fcmVzZXQg KCk7CisgICAgICAgIGRpcnR5X3JlZ2lvbl9hZGQgKDAsIDAsIG1vZGVfaW5mby53aWR0aCwg bW9kZV9pbmZvLmhlaWdodCk7CisgICAgICB9CisgICAgfQorICAKKyAgLyogQWxsIHdhcyBv ay4gICovCisgIGdydWJfZXJybm8gPSBHUlVCX0VSUl9OT05FOworICByZXR1cm4gZ3J1Yl9l cnJubzsKK30KKwogc3RhdGljIHN0cnVjdCBncnViX3Rlcm0gZ3J1Yl92aWRlb190ZXJtID0K QEAgLTg3NiwyICsxMDc2LDQgQEAgc3RhdGljIHN0cnVjdCBncnViX3Rlcm0gZ3J1Yl92aWRl b190ZXJtIAogICAgIC5zZXRjb2xvcnN0YXRlID0gZ3J1Yl92aXJ0dWFsX3NjcmVlbl9zZXRj b2xvcnN0YXRlLAorICAgIC5zZXRjb2xvciA9IGdydWJfdmlydHVhbF9zY3JlZW5fc2V0Y29s b3IsCisgICAgLmdldGNvbG9yID0gZ3J1Yl92aXJ0dWFsX3NjcmVlbl9nZXRjb2xvciwKICAg ICAuc2V0Y3Vyc29yID0gZ3J1Yl9nZnh0ZXJtX3NldGN1cnNvciwKQEAgLTg4NiwyICsxMDg4 LDkgQEAgR1JVQl9NT0RfSU5JVCh0ZXJtX2dmeHRlcm0pCiAgIGdydWJfdGVybV9yZWdpc3Rl ciAoJmdydWJfdmlkZW9fdGVybSk7CisKKyAgZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYmFj a2dyb3VuZF9pbWFnZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9nZnh0ZXJt X2JhY2tncm91bmRfaW1hZ2VfY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgIEdSVUJf Q09NTUFORF9GTEFHX0JPVEgsCisgICAgICAgICAgICAgICAgICAgICAgICAgImJhY2tncm91 bmRfaW1hZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJMb2FkIGJhY2tncm91bmQg aW1hZ2UgZm9yIGFjdGl2ZSB0ZXJtaW5hbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg MCk7CiB9CkBAIC04OTAsMiArMTA5OSwzIEBAIEdSVUJfTU9EX0ZJTkkodGVybV9nZnh0ZXJt KQogeworICBncnViX3VucmVnaXN0ZXJfY29tbWFuZCAoImJnaW1hZ2UiKTsKICAgZ3J1Yl90 ZXJtX3VucmVnaXN0ZXIgKCZncnViX3ZpZGVvX3Rlcm0pOwpJbmRleDogdmlkZW8vdmlkZW8u Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvc291cmNlcy9ncnViL2dydWIyL3ZpZGVvL3Zp ZGVvLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNgpkaWZmIC11IC1wIC0xIC1yMS42IHZp ZGVvLmMKLS0tIHZpZGVvL3ZpZGVvLmMJMzAgRGVjIDIwMDcgMDg6NTI6MDYgLTAwMDAJMS42 CisrKyB2aWRlby92aWRlby5jCTMwIERlYyAyMDA3IDE2OjQxOjE5IC0wMDAwCkBAIC0xMzYs MiArMTM2LDkgQEAgZ3J1Yl92aWRlb19nZXRfaW5mbyAoc3RydWN0IGdydWJfdmlkZW9fbQog CisgIC8qIElmIG1vZGVfaW5mbyBpcyBOVUxMIGp1c3QgcmVwb3J0IHRoYXQgdmlkZW8gYWRh cHRlciBpcyBhY3RpdmUuICAqLworICBpZiAoISBtb2RlX2luZm8pCisgICAgeworICAgICAg Z3J1Yl9lcnJubyA9IEdSVUJfRVJSX05PTkU7CisgICAgICByZXR1cm4gZ3J1Yl9lcnJubzsK KyAgICB9CisgIAogICByZXR1cm4gZ3J1Yl92aWRlb19hZGFwdGVyX2FjdGl2ZS0+Z2V0X2lu Zm8gKG1vZGVfaW5mbyk7CkBAIC0yNjIsMiArMjY5LDE4IEBAIGdydWJfdmlkZW9fbWFwX3Jn YmEgKGdydWJfdWludDhfdCByZWQsIGcKIAorLyogVW5tYXAgdmlkZW8gY29sb3IgYmFjayB0 byBSR0JBIGNvbXBvbmVudHMuICAqLworZ3J1Yl9lcnJfdAorZ3J1Yl92aWRlb191bm1hcF9j b2xvciAoZ3J1Yl92aWRlb19jb2xvcl90IGNvbG9yLCBncnViX3VpbnQ4X3QgKnJlZCwgCisg ICAgICAgICAgICAgICAgICAgICAgICBncnViX3VpbnQ4X3QgKmdyZWVuLCBncnViX3VpbnQ4 X3QgKmJsdWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl91aW50OF90ICphbHBo YSkKK3sKKyAgaWYgKCEgZ3J1Yl92aWRlb19hZGFwdGVyX2FjdGl2ZSkKKyAgICByZXR1cm4g Z3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0RFVklDRSwgIk5vIHZpZGVvIG1vZGUgYWN0aXZh dGVkIik7CisKKyAgcmV0dXJuIGdydWJfdmlkZW9fYWRhcHRlcl9hY3RpdmUtPnVubWFwX2Nv bG9yIChjb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ3JlZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYmx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbHBoYSk7Cit9CisKIC8qIEZpbGwgcmVjdGFuZ2xlIHVzaW5nIHNw ZWNpZmllZCBjb2xvci4gICovCkBAIC0zNjgsMiArMzkxLDEyIEBAIGdydWJfdmlkZW9fc2V0 X2FjdGl2ZV9yZW5kZXJfdGFyZ2V0IChzdHIKIAorLyogR2V0IGFjdGl2ZSByZW5kZXIgdGFy Z2V0LiAgKi8KK2dydWJfZXJyX3QKK2dydWJfdmlkZW9fZ2V0X2FjdGl2ZV9yZW5kZXJfdGFy Z2V0IChzdHJ1Y3QgZ3J1Yl92aWRlb19yZW5kZXJfdGFyZ2V0ICoqdGFyZ2V0KQoreworICBp ZiAoISBncnViX3ZpZGVvX2FkYXB0ZXJfYWN0aXZlKQorICAgIHJldHVybiBncnViX2Vycm9y IChHUlVCX0VSUl9CQURfREVWSUNFLCAiTm8gdmlkZW8gbW9kZSBhY3RpdmF0ZWQiKTsKKwor ICByZXR1cm4gZ3J1Yl92aWRlb19hZGFwdGVyX2FjdGl2ZS0+Z2V0X2FjdGl2ZV9yZW5kZXJf dGFyZ2V0ICh0YXJnZXQpOworfQorCiAvKiBJbml0aWFsaXplIFZpZGVvIEFQSSBtb2R1bGUu ICAqLwpJbmRleDogdmlkZW8vaTM4Ni9wYy92YmUuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvc291cmNlcy9ncnViL2dydWIyL3ZpZGVvL2kzODYvcGMvdmJlLmMsdgpyZXRyaWV2aW5n IHJldmlzaW9uIDEuMTIKZGlmZiAtdSAtcCAtMSAtcjEuMTIgdmJlLmMKLS0tIHZpZGVvL2kz ODYvcGMvdmJlLmMJMzAgRGVjIDIwMDcgMDg6NTI6MDYgLTAwMDAJMS4xMgorKysgdmlkZW8v aTM4Ni9wYy92YmUuYwkzMCBEZWMgMjAwNyAxNjo0MToxOSAtMDAwMApAQCAtNzU2LDcgKzc1 NiwyMSBAQCBncnViX3ZpZGVvX3ZiZV9tYXBfcmdiYSAoZ3J1Yl91aW50OF90IHJlCiAKK2dy dWJfZXJyX3QgZ3J1Yl92aWRlb192YmVfdW5tYXBfY29sb3IgKGdydWJfdmlkZW9fY29sb3Jf dCBjb2xvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJf dWludDhfdCAqcmVkLCBncnViX3VpbnQ4X3QgKmdyZWVuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ3J1Yl91aW50OF90ICpibHVlLCBncnViX3VpbnQ4X3Qg KmFscGhhKQoreworICBzdHJ1Y3QgZ3J1Yl92aWRlb19pMzg2X3ZiZWJsaXRfaW5mbyB0YXJn ZXRfaW5mbzsKKworICB0YXJnZXRfaW5mby5tb2RlX2luZm8gPSAmcmVuZGVyX3RhcmdldC0+ bW9kZV9pbmZvOworICB0YXJnZXRfaW5mby5kYXRhID0gcmVuZGVyX3RhcmdldC0+ZGF0YTsK KworICBncnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvcl9pbnQgKCZ0YXJnZXRfaW5mbywgY29s b3IsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKKyAgCisgIHJldHVybiBHUlVCX0VSUl9O T05FOworfQorCiB2b2lkCi1ncnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvciAoc3RydWN0IGdy dWJfdmlkZW9faTM4Nl92YmVibGl0X2luZm8gKiBzb3VyY2UsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ3J1Yl92aWRlb19jb2xvcl90IGNvbG9yLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdydWJfdWludDhfdCAqcmVkLCBncnViX3VpbnQ4X3QgKmdyZWVuLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDhfdCAqYmx1ZSwgZ3J1Yl91 aW50OF90ICphbHBoYSkKK2dydWJfdmlkZW9fdmJlX3VubWFwX2NvbG9yX2ludCAoc3RydWN0 IGdydWJfdmlkZW9faTM4Nl92YmVibGl0X2luZm8gKiBzb3VyY2UsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdydWJfdmlkZW9fY29sb3JfdCBjb2xvciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl91aW50OF90ICpyZWQsIGdydWJfdWludDhf dCAqZ3JlZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDhf dCAqYmx1ZSwgZ3J1Yl91aW50OF90ICphbHBoYSkKIHsKQEAgLTE1MTIsMiArMTUyNiwxMCBA QCBncnViX3ZpZGVvX3ZiZV9zZXRfYWN0aXZlX3JlbmRlcl90YXJnZXQgCiAKK3N0YXRpYyBn cnViX2Vycl90CitncnViX3ZpZGVvX3ZiZV9nZXRfYWN0aXZlX3JlbmRlcl90YXJnZXQgKHN0 cnVjdCBncnViX3ZpZGVvX3JlbmRlcl90YXJnZXQgKip0YXJnZXQpCit7CisgICp0YXJnZXQg PSByZW5kZXJfdGFyZ2V0OworICAKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKIHN0 YXRpYyBzdHJ1Y3QgZ3J1Yl92aWRlb19hZGFwdGVyIGdydWJfdmlkZW9fdmJlX2FkYXB0ZXIg PQpAQCAtMTUyNywyICsxNTQ5LDMgQEAgc3RhdGljIHN0cnVjdCBncnViX3ZpZGVvX2FkYXB0 ZXIgZ3J1Yl92aQogICAgIC5tYXBfcmdiYSA9IGdydWJfdmlkZW9fdmJlX21hcF9yZ2JhLAor ICAgIC51bm1hcF9jb2xvciA9IGdydWJfdmlkZW9fdmJlX3VubWFwX2NvbG9yLAogICAgIC5m aWxsX3JlY3QgPSBncnViX3ZpZGVvX3ZiZV9maWxsX3JlY3QsCkBAIC0xNTM2LDIgKzE1NTks MyBAQCBzdGF0aWMgc3RydWN0IGdydWJfdmlkZW9fYWRhcHRlciBncnViX3ZpCiAgICAgLnNl dF9hY3RpdmVfcmVuZGVyX3RhcmdldCA9IGdydWJfdmlkZW9fdmJlX3NldF9hY3RpdmVfcmVu ZGVyX3RhcmdldCwKKyAgICAuZ2V0X2FjdGl2ZV9yZW5kZXJfdGFyZ2V0ID0gZ3J1Yl92aWRl b192YmVfZ2V0X2FjdGl2ZV9yZW5kZXJfdGFyZ2V0LAogCkluZGV4OiB2aWRlby9pMzg2L3Bj L3ZiZWJsaXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvc291cmNlcy9ncnViL2dydWIy L3ZpZGVvL2kzODYvcGMvdmJlYmxpdC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQKZGlm ZiAtdSAtcCAtMSAtcjEuNCB2YmVibGl0LmMKLS0tIHZpZGVvL2kzODYvcGMvdmJlYmxpdC5j CTIxIEp1bCAyMDA3IDIzOjMyOjMyIC0wMDAwCTEuNAorKysgdmlkZW8vaTM4Ni9wYy92YmVi bGl0LmMJMzAgRGVjIDIwMDcgMTY6NDE6MTkgLTAwMDAKQEAgLTI4MywzICsyODMsMyBAQCBn cnViX3ZpZGVvX2kzODZfdmJlYmxpdF9pbmRleF9SOEc4QjhBOCAoCiAKLSAgICAgICAgICBn cnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvciAoZHN0LCAqZHN0cHRyLCAmZHIsICZkZywgJmRi LCAmZGEpOworICAgICAgICAgIGdydWJfdmlkZW9fdmJlX3VubWFwX2NvbG9yX2ludCAoZHN0 LCAqZHN0cHRyLCAmZHIsICZkZywgJmRiLCAmZGEpOwogCkBAIC00ODMsMyArNDgzLDMgQEAg Z3J1Yl92aWRlb19pMzg2X3ZiZWJsaXRfYmxlbmQgKHN0cnVjdCBncgogICAgICAgICAgIHNy Y19jb2xvciA9IGdldF9waXhlbCAoc3JjLCBpICsgb2Zmc2V0X3gsIGogKyBvZmZzZXRfeSk7 Ci0gICAgICAgICAgZ3J1Yl92aWRlb192YmVfdW5tYXBfY29sb3IgKHNyYywgc3JjX2NvbG9y LCAmc3JjX3JlZCwgJnNyY19ncmVlbiwKKyAgICAgICAgICBncnViX3ZpZGVvX3ZiZV91bm1h cF9jb2xvcl9pbnQgKHNyYywgc3JjX2NvbG9yLCAmc3JjX3JlZCwgJnNyY19ncmVlbiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNyY19ibHVlLCAmc3JjX2Fs cGhhKTsKQEAgLTQ5OSwzICs0OTksMyBAQCBncnViX3ZpZGVvX2kzODZfdmJlYmxpdF9ibGVu ZCAoc3RydWN0IGdyCiAKLSAgICAgICAgICBncnViX3ZpZGVvX3ZiZV91bm1hcF9jb2xvciAo ZHN0LCBkc3RfY29sb3IsICZkc3RfcmVkLAorICAgICAgICAgIGdydWJfdmlkZW9fdmJlX3Vu bWFwX2NvbG9yX2ludCAoZHN0LCBkc3RfY29sb3IsICZkc3RfcmVkLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmZHN0X2dyZWVuLCAmZHN0X2JsdWUsICZkc3Rf YWxwaGEpOwpAQCAtNTQxLDMgKzU0MSwzIEBAIGdydWJfdmlkZW9faTM4Nl92YmVibGl0X3Jl cGxhY2UgKHN0cnVjdCAKICAgICAgIHNyY19jb2xvciA9IGdldF9waXhlbCAoc3JjLCBpICsg b2Zmc2V0X3gsIGogKyBvZmZzZXRfeSk7Ci0gICAgICBncnViX3ZpZGVvX3ZiZV91bm1hcF9j b2xvciAoc3JjLCBzcmNfY29sb3IsICZzcmNfcmVkLCAmc3JjX2dyZWVuLAorICAgICAgZ3J1 Yl92aWRlb192YmVfdW5tYXBfY29sb3JfaW50IChzcmMsIHNyY19jb2xvciwgJnNyY19yZWQs ICZzcmNfZ3JlZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNyY19i bHVlLCAmc3JjX2FscGhhKTsK --------------060307060309010409040008--