From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1IqqyX-0007Y9-Au for mharc-grub-devel@gnu.org; Sat, 10 Nov 2007 09:06:17 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IqqyV-0007Xo-Tw for grub-devel@gnu.org; Sat, 10 Nov 2007 09:06:15 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IqqyS-0007VW-AL for grub-devel@gnu.org; Sat, 10 Nov 2007 09:06:14 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IqqyS-0007VT-4f for grub-devel@gnu.org; Sat, 10 Nov 2007 09:06:12 -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 1IqqyR-0007fJ-Uj for grub-devel@gnu.org; Sat, 10 Nov 2007 09:06:12 -0500 Received: from [127.0.0.1] (88.193.32.97) by pne-smtpout3-sn1.fre.skanova.net (7.3.129) id 4717E5DD00136A7E for grub-devel@gnu.org; Sat, 10 Nov 2007 15:05:52 +0100 Message-ID: <4735BA5D.4020800@nic.fi> Date: Sat, 10 Nov 2007 16:04:13 +0200 From: =?UTF-8?B?VmVzYSBKw6TDpHNrZWzDpGluZW4=?= User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: The development of GRUB 2 X-Enigmail-Version: 0.95.5 Content-Type: multipart/mixed; boundary="------------090203030504010701030801" X-detected-kernel: by monty-python.gnu.org: Solaris 10 (beta) Subject: [patch] Fix for vga terminal 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: Sat, 10 Nov 2007 14:06:16 -0000 This is a multi-part message in MIME format. --------------090203030504010701030801 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: Quoted-Printable Hi All, Here is patch for fixing vga terminal. At least it worked fine on qemu. Now it uses only font system to get fonts so you need to load font module and use fonts. See gfxterm section on the wiki on how to do that. I had to edit patch by hand as 64bit patch is still pending and I need that to compile my codes. But it should still apply nicely to current CVS= =2E Thanks, Vesa J=C3=A4=C3=A4skel=C3=A4inen --------------090203030504010701030801 Content-Type: text/plain; name="vgaterm-fix.diff" Content-Disposition: inline; filename="vgaterm-fix.diff" Content-Transfer-Encoding: Base64 SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvc291cmNlcy9ncnVi L2dydWIyL0NoYW5nZUxvZyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MzgKZGlmZiAtdSAt cjEuNDM4IENoYW5nZUxvZwotLS0gQ2hhbmdlTG9nCTYgTm92IDIwMDcgMjE6MjM6NTkgLTAw MDAJMS40MzgKKysrIENoYW5nZUxvZwkxMCBOb3YgMjAwNyAxMzo1NzowNyAtMDAwMApAQCAt MSwzICsxLDIzIEBACisyMDA3LTExLTEwICBWZXNhIEphYXNrZWxhaW5lbiAgPGNoYWFjQG5p Yy5maT4KKworCSogY29uZi9pMzg2LXBjLnJtayAocGtnZGF0YV9NT0RVTEVTKTogQWRkZWQg dmdhLm1vZC4KKwkodmdhX21vZF9TT1VSQ0VTKTogQWRkZWQuCisJKHZnYV9tb2RfQ0ZMQUdT KTogTGlrZXdpc2UuCisJKHZnYV9tb2RfTERGTEFHUyk6IExpa2V3aXNlLgorCisJKiB0ZXJt L2kzODYvcGMvdmdhLmMgKGdldF9tYXBfbWFzayk6IFN3aXRjaCBvcmRlciBvZiBhcmd1bWVu dHMgaW4KKwlncnViX291dGIoKSBjYWxscy4KKwkoc2V0X21hcF9tYXNrKTogTGlrZXdpc2Uu CisJKHNldF9yZWFkX21hcCk6IExpa2V3aXNlLgorCShzZXRfcmVhZF9hZGRyZXNzKTogTGlr ZXdpc2UuCisJKHZnYV9mb250KTogUmVtb3ZlZCB2YXJpYWJsZS4KKwkoZ2V0X3ZnYV9nbHlw aCk6IFJlbW92ZWQgZnVuY3Rpb24uCisJKGludmFsaWRhdGVfY2hhcik6IExpa2V3aXNlLgor CSh3cml0ZV9jaGFyKTogQ2hhbmdlZCB0byB1c2UgZ3J1Yl9mb250X2dldF9nbHlwaCgpIGZv ciBmb250CisJaW5mb3JtYXRpb24uCisJKGdydWJfdmdhX3B1dGNoYXIpOiBMaWtld2lzZS4K KwkoZ3J1Yl92Z2FfZ2V0Y2hhcndpZHRoKTogTGlrZXdpc2UuCisKIDIwMDctMTEtMDYgIFJv YmVydCBNaWxsYW4gIDxybWhAYXliYWJ0dS5jb20+CiAKIAkqIHRlcm0vaTM4Ni9wYy9zZXJp YWwuYyAoc2VyaWFsX2h3X3B1dCk6IFN3aXRjaCBvcmRlciBvZiBhcmd1bWVudHMKSW5kZXg6 IGNvbmYvaTM4Ni1wYy5ybWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvZ3J1 Yi9ncnViMi9jb25mL2kzODYtcGMucm1rLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkxCmRp ZmYgLXUgLXIxLjkxIGkzODYtcGMucm1rCi0tLSBjb25mL2kzODYtcGMucm1rCTMxIE9jdCAy MDA3IDIyOjI5OjIwIC0wMDAwCTEuOTEKKysrIGNvbmYvaTM4Ni1wYy5ybWsJMTAgTm92IDIw MDcgMTM6NTc6MTMgLTAwMDAKQEAgLTEyOSw3ICsxMjksOCBAQAogcGtnZGF0YV9NT0RVTEVT ID0gYmlvc2Rpc2subW9kIF9jaGFpbi5tb2QgX2xpbnV4Lm1vZCBsaW51eC5tb2Qgbm9ybWFs Lm1vZCBcCiAJX211bHRpYm9vdC5tb2QgY2hhaW4ubW9kIG11bHRpYm9vdC5tb2QgcmVib290 Lm1vZCBoYWx0Lm1vZAlcCiAJdmJlLm1vZCB2YmV0ZXN0Lm1vZCB2YmVpbmZvLm1vZCB2aWRl by5tb2QgZ2Z4dGVybS5tb2QgXAotCXZpZGVvdGVzdC5tb2QgcGxheS5tb2QgYml0bWFwLm1v ZCB0Z2EubW9kIGNwdWlkLm1vZCBzZXJpYWwubW9kIGF0YS5tb2QKKwl2aWRlb3Rlc3QubW9k IHBsYXkubW9kIGJpdG1hcC5tb2QgdGdhLm1vZCBjcHVpZC5tb2Qgc2VyaWFsLm1vZCBhdGEu bW9kIFwKKwl2Z2EubW9kCiAKICMgRm9yIGJpb3NkaXNrLm1vZC4KIGJpb3NkaXNrX21vZF9T T1VSQ0VTID0gZGlzay9pMzg2L3BjL2Jpb3NkaXNrLmMKQEAgLTI1MSw0ICsyNTIsOSBAQAog YXRhX21vZF9DRkxBR1MgPSAkKENPTU1PTl9DRkxBR1MpCiBhdGFfbW9kX0xERkxBR1MgPSAk KENPTU1PTl9MREZMQUdTKQogCisjIEZvciB2Z2EubW9kLgordmdhX21vZF9TT1VSQ0VTID0g dGVybS9pMzg2L3BjL3ZnYS5jCit2Z2FfbW9kX0NGTEFHUyA9ICQoQ09NTU9OX0NGTEFHUykK K3ZnYV9tb2RfTERGTEFHUyA9ICQoQ09NTU9OX0xERkxBR1MpCisKIGluY2x1ZGUgJChzcmNk aXIpL2NvbmYvY29tbW9uLm1rCkluZGV4OiB0ZXJtL2kzODYvcGMvdmdhLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpSQ1MgZmlsZTogL3NvdXJjZXMvZ3J1Yi9ncnViMi90ZXJtL2kzODYvcGMvdmdhLmMs dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTIKZGlmZiAtdSAtcjEuMTIgdmdhLmMKLS0tIHRl cm0vaTM4Ni9wYy92Z2EuYwkzIE9jdCAyMDA3IDIwOjEzOjIxIC0wMDAwCTEuMTIKKysrIHRl cm0vaTM4Ni9wYy92Z2EuYwkxMCBOb3YgMjAwNyAxMzo1NzoxNSAtMDAwMApAQCAtMTgsNiAr MTgsNyBAQAogCiAjaW5jbHVkZSA8Z3J1Yi9tYWNoaW5lL3ZnYS5oPgogI2luY2x1ZGUgPGdy dWIvbWFjaGluZS9jb25zb2xlLmg+CisjaW5jbHVkZSA8Z3J1Yi9jcHUvaW8uaD4KICNpbmNs dWRlIDxncnViL3Rlcm0uaD4KICNpbmNsdWRlIDxncnViL3R5cGVzLmg+CiAjaW5jbHVkZSA8 Z3J1Yi9kbC5oPgpAQCAtNjIsNyArNjMsNiBAQAogc3RhdGljIGludCBjdXJzb3Jfc3RhdGU7 CiBzdGF0aWMgdW5zaWduZWQgY2hhciBmZ19jb2xvciwgYmdfY29sb3I7CiBzdGF0aWMgc3Ry dWN0IGNvbG9yZWRfY2hhciB0ZXh0X2J1ZltURVhUX1dJRFRIICogVEVYVF9IRUlHSFRdOwot c3RhdGljIHVuc2lnbmVkIGNoYXIgKnZnYV9mb250Owogc3RhdGljIHVuc2lnbmVkIGNoYXIg c2F2ZWRfbWFwX21hc2s7CiBzdGF0aWMgaW50IHBhZ2UgPSAwOwogCkBAIC05NywxMSArOTcs MTEgQEAKICAgdW5zaWduZWQgY2hhciBvbGRfZGF0YTsKICAgCiAgIG9sZF9hZGRyID0gZ3J1 Yl9pbmIgKFNFUVVFTkNFUl9BRERSX1BPUlQpOwotICBncnViX291dGIgKFNFUVVFTkNFUl9B RERSX1BPUlQsIE1BUF9NQVNLX1JFR0lTVEVSKTsKKyAgZ3J1Yl9vdXRiIChNQVBfTUFTS19S RUdJU1RFUiwgU0VRVUVOQ0VSX0FERFJfUE9SVCk7CiAgIAogICBvbGRfZGF0YSA9IGdydWJf aW5iIChTRVFVRU5DRVJfREFUQV9QT1JUKTsKICAgCi0gIGdydWJfb3V0YiAoU0VRVUVOQ0VS X0FERFJfUE9SVCwgb2xkX2FkZHIpOworICBncnViX291dGIgKG9sZF9hZGRyLCBTRVFVRU5D RVJfQUREUl9QT1JUKTsKIAogICByZXR1cm4gb2xkX2RhdGE7CiB9CkBAIC0xMTMsMTEgKzEx MywxMSBAQAogICB1bnNpZ25lZCBjaGFyIG9sZF9hZGRyOwogICAKICAgb2xkX2FkZHIgPSBn cnViX2luYiAoU0VRVUVOQ0VSX0FERFJfUE9SVCk7Ci0gIGdydWJfb3V0YiAoU0VRVUVOQ0VS X0FERFJfUE9SVCwgTUFQX01BU0tfUkVHSVNURVIpOworICBncnViX291dGIgKE1BUF9NQVNL X1JFR0lTVEVSLCBTRVFVRU5DRVJfQUREUl9QT1JUKTsKICAgCi0gIGdydWJfb3V0YiAoU0VR VUVOQ0VSX0RBVEFfUE9SVCwgbWFzayk7CisgIGdydWJfb3V0YiAobWFzaywgU0VRVUVOQ0VS X0RBVEFfUE9SVCk7CiAgIAotICBncnViX291dGIgKFNFUVVFTkNFUl9BRERSX1BPUlQsIG9s ZF9hZGRyKTsKKyAgZ3J1Yl9vdXRiIChvbGRfYWRkciwgU0VRVUVOQ0VSX0FERFJfUE9SVCk7 CiB9CiAKIC8qIFNldCBSZWFkIE1hcCBSZWdpc3Rlci4gICovCkBAIC0xMjgsMTAgKzEyOCwx MCBAQAogICAKICAgb2xkX2FkZHIgPSBncnViX2luYiAoR1JBUEhJQ1NfQUREUl9QT1JUKTsK IAotICBncnViX291dGIgKEdSQVBISUNTX0FERFJfUE9SVCwgUkVBRF9NQVBfUkVHSVNURVIp OwotICBncnViX291dGIgKEdSQVBISUNTX0RBVEFfUE9SVCwgbWFwKTsKKyAgZ3J1Yl9vdXRi IChSRUFEX01BUF9SRUdJU1RFUiwgR1JBUEhJQ1NfQUREUl9QT1JUKTsKKyAgZ3J1Yl9vdXRi IChtYXAsIEdSQVBISUNTX0RBVEFfUE9SVCk7CiAKLSAgZ3J1Yl9vdXRiIChHUkFQSElDU19B RERSX1BPUlQsIG9sZF9hZGRyKTsKKyAgZ3J1Yl9vdXRiIChvbGRfYWRkciwgR1JBUEhJQ1Nf QUREUl9QT1JUKTsKIH0KIAogLyogU2V0IHN0YXJ0IGFkZHJlc3MuICAqLwpAQCAtMTQyLDE5 ICsxNDIsMTggQEAKICAgCiAgIG9sZF9hZGRyID0gZ3J1Yl9pbmIgKENSVENfQUREUl9QT1JU KTsKICAgCi0gIGdydWJfb3V0YiAoQ1JUQ19BRERSX1BPUlQsIFNUQVJUX0FERFJfTE9XX1JF R0lTVEVSKTsKLSAgZ3J1Yl9vdXRiIChDUlRDX0RBVEFfUE9SVCwgc3RhcnQgJiAweEZGKTsK KyAgZ3J1Yl9vdXRiIChTVEFSVF9BRERSX0xPV19SRUdJU1RFUiwgQ1JUQ19BRERSX1BPUlQp OworICBncnViX291dGIgKHN0YXJ0ICYgMHhGRiwgQ1JUQ19EQVRBX1BPUlQpOwogICAKLSAg Z3J1Yl9vdXRiIChDUlRDX0FERFJfUE9SVCwgU1RBUlRfQUREUl9ISUdIX1JFR0lTVEVSKTsK LSAgZ3J1Yl9vdXRiIChDUlRDX0RBVEFfUE9SVCwgc3RhcnQgPj4gOCk7CisgIGdydWJfb3V0 YiAoU1RBUlRfQUREUl9ISUdIX1JFR0lTVEVSLCBDUlRDX0FERFJfUE9SVCk7CisgIGdydWJf b3V0YiAoc3RhcnQgPj4gOCwgQ1JUQ19EQVRBX1BPUlQpOwogCi0gIGdydWJfb3V0YiAoQ1JU Q19BRERSX1BPUlQsIG9sZF9hZGRyKTsKKyAgZ3J1Yl9vdXRiIChvbGRfYWRkciwgQ1JUQ19B RERSX1BPUlQpOwogfQogCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZ3J1Yl92Z2FfbW9kX2luaXQg KHZvaWQpCiB7Ci0gIHZnYV9mb250ID0gZ3J1Yl92Z2FfZ2V0X2ZvbnQgKCk7CiAgIHRleHRf bW9kZSA9IGdydWJfdmdhX3NldF9tb2RlICgweDEwKTsKICAgY3Vyc29yX3N0YXRlID0gMTsK ICAgZmdfY29sb3IgPSBERUZBVUxUX0ZHX0NPTE9SOwpAQCAtMTc1LDc3ICsxNzQsNiBAQAog fQogCiBzdGF0aWMgaW50Ci1nZXRfdmdhX2dseXBoIChncnViX3VpbnQzMl90IGNvZGUsIHVu c2lnbmVkIGNoYXIgYml0bWFwWzMyXSwgdW5zaWduZWQgKndpZHRoKQotewotICBpZiAoY29k ZSA+IDB4N2YpCi0gICAgewotICAgICAgLyogTWFwIHNvbWUgdW5pY29kZSBjaGFyYWN0ZXJz IHRvIHRoZSBWR0EgZm9udCwgaWYgcG9zc2libGUuICAqLwotICAgICAgc3dpdGNoIChjb2Rl KQotCXsKLQljYXNlIDB4MjE5MDoJLyogbGVmdCBhcnJvdyAqLwotCSAgY29kZSA9IDB4MWI7 Ci0JICBicmVhazsKLQljYXNlIDB4MjE5MToJLyogdXAgYXJyb3cgKi8KLQkgIGNvZGUgPSAw eDE4OwotCSAgYnJlYWs7Ci0JY2FzZSAweDIxOTI6CS8qIHJpZ2h0IGFycm93ICovCi0JICBj b2RlID0gMHgxYTsKLQkgIGJyZWFrOwotCWNhc2UgMHgyMTkzOgkvKiBkb3duIGFycm93ICov Ci0JICBjb2RlID0gMHgxOTsKLQkgIGJyZWFrOwotCWNhc2UgMHgyNTAxOgkvKiBob3Jpem9u dGFsIGxpbmUgKi8KLQkgIGNvZGUgPSAweGM0OwotCSAgYnJlYWs7Ci0JY2FzZSAweDI1MDM6 CS8qIHZlcnRpY2FsIGxpbmUgKi8KLQkgIGNvZGUgPSAweGIzOwotCSAgYnJlYWs7Ci0JY2Fz ZSAweDI1MEY6CS8qIHVwcGVyLWxlZnQgY29ybmVyICovCi0JICBjb2RlID0gMHhkYTsKLQkg IGJyZWFrOwotCWNhc2UgMHgyNTEzOgkvKiB1cHBlci1yaWdodCBjb3JuZXIgKi8KLQkgIGNv ZGUgPSAweGJmOwotCSAgYnJlYWs7Ci0JY2FzZSAweDI1MTc6CS8qIGxvd2VyLWxlZnQgY29y bmVyICovCi0JICBjb2RlID0gMHhjMDsKLQkgIGJyZWFrOwotCWNhc2UgMHgyNTFCOgkvKiBs b3dlci1yaWdodCBjb3JuZXIgKi8KLQkgIGNvZGUgPSAweGQ5OwotCSAgYnJlYWs7Ci0KLQlk ZWZhdWx0OgotCSAgcmV0dXJuIGdydWJfZm9udF9nZXRfZ2x5cGggKGNvZGUsIGJpdG1hcCwg d2lkdGgpOwotCX0KLSAgICB9Ci0KLSAgaWYgKGJpdG1hcCkKLSAgICBncnViX21lbWNweSAo Yml0bWFwLCB2Z2FfZm9udCArIGNvZGUgKiBDSEFSX0hFSUdIVCwgQ0hBUl9IRUlHSFQpOwot ICAKLSAgKndpZHRoID0gMTsKLSAgcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyB2b2lkCi1pbnZh bGlkYXRlX2NoYXIgKHN0cnVjdCBjb2xvcmVkX2NoYXIgKnApCi17Ci0gIHAtPmNvZGUgPSAw eEZGRkY7Ci0gIAotICBpZiAocC0+d2lkdGgpCi0gICAgewotICAgICAgc3RydWN0IGNvbG9y ZWRfY2hhciAqcTsKLQotICAgICAgZm9yIChxID0gcCArIDE7IHEgPD0gcCArIHAtPndpZHRo OyBxKyspCi0JewotCSAgcS0+Y29kZSA9IDB4RkZGRjsKLQkgIHEtPndpZHRoID0gMDsKLQkg IHEtPmluZGV4ID0gMDsKLQl9Ci0gICAgfQotCi0gIHAtPndpZHRoID0gMDsKLX0KLQotc3Rh dGljIGludAogY2hlY2tfdmdhX21lbSAodm9pZCAqcCkKIHsKICAgcmV0dXJuIChwID49ICh2 b2lkICopIChWR0FfTUVNICsgUEFHRV9PRkZTRVQgKHBhZ2UpKQpAQCAtMjU3LDggKzE4NSw3 IEBACiB3cml0ZV9jaGFyICh2b2lkKQogewogICBzdHJ1Y3QgY29sb3JlZF9jaGFyICpwID0g dGV4dF9idWYgKyB4cG9zICsgeXBvcyAqIFRFWFRfV0lEVEg7Ci0gIHVuc2lnbmVkIGNoYXIg Yml0bWFwWzMyXTsKLSAgdW5zaWduZWQgd2lkdGg7CisgIHN0cnVjdCBncnViX2ZvbnRfZ2x5 cGggZ2x5cGg7CiAgIHVuc2lnbmVkIGNoYXIgKm1lbV9iYXNlOwogICB1bnNpZ25lZCBwbGFu ZTsKIApAQCAtMjY2LDggKzE5Myw4IEBACiAJICAgICAgeXBvcyAqIENIQVJfSEVJR0hUICog VEVYVF9XSURUSCArIFBBR0VfT0ZGU0VUIChwYWdlKSkgLSBwLT5pbmRleDsKICAgcCAtPSBw LT5pbmRleDsKIAotICBpZiAoISBnZXRfdmdhX2dseXBoIChwLT5jb2RlLCBiaXRtYXAsICZ3 aWR0aCkpCi0gICAgaW52YWxpZGF0ZV9jaGFyIChwKTsKKyAgLyogR2V0IGdseXBoIGZvciBj aGFyYWN0ZXIuICAqLworICBncnViX2ZvbnRfZ2V0X2dseXBoIChwLT5jb2RlLCAmZ2x5cGgp OwogICAKICAgZm9yIChwbGFuZSA9IDB4MDE7IHBsYW5lIDw9IDB4MDg7IHBsYW5lIDw8PSAx KQogICAgIHsKQEAgLTI4MywxMiArMjEwLDEyIEBACiAJewogCSAgdW5zaWduZWQgaTsKIAot CSAgZm9yIChpID0gMDsgaSA8IHdpZHRoICYmIG9mZnNldCA8IDMyOyBpKyspCisJICBmb3Ig KGkgPSAwOyBpIDwgZ2x5cGguY2hhcl93aWR0aCAmJiBvZmZzZXQgPCAzMjsgaSsrKQogCSAg ICB7CiAJICAgICAgdW5zaWduZWQgY2hhciBmZ19tYXNrLCBiZ19tYXNrOwogCSAgICAgIAot CSAgICAgIGZnX21hc2sgPSAocC0+ZmdfY29sb3IgJiBwbGFuZSkgPyBiaXRtYXBbb2Zmc2V0 XSA6IDA7Ci0JICAgICAgYmdfbWFzayA9IChwLT5iZ19jb2xvciAmIHBsYW5lKSA/IH4oYml0 bWFwW29mZnNldF0pIDogMDsKKwkgICAgICBmZ19tYXNrID0gKHAtPmZnX2NvbG9yICYgcGxh bmUpID8gZ2x5cGguYml0bWFwW29mZnNldF0gOiAwOworCSAgICAgIGJnX21hc2sgPSAocC0+ YmdfY29sb3IgJiBwbGFuZSkgPyB+KGdseXBoLmJpdG1hcFtvZmZzZXRdKSA6IDA7CiAJICAg ICAgb2Zmc2V0Kys7CiAKIAkgICAgICBpZiAoY2hlY2tfdmdhX21lbSAobWVtICsgaSkpCkBA IC0zOTMsMzYgKzMyMCwzNiBAQAogICAgIH0KICAgZWxzZQogICAgIHsKLSAgICAgIHVuc2ln bmVkIHdpZHRoOworICAgICAgc3RydWN0IGdydWJfZm9udF9nbHlwaCBnbHlwaDsKICAgICAg IHN0cnVjdCBjb2xvcmVkX2NoYXIgKnA7CiAgICAgICAKLSAgICAgIGdldF92Z2FfZ2x5cGgg KGMsIDAsICZ3aWR0aCk7CisgICAgICBncnViX2ZvbnRfZ2V0X2dseXBoKGMsICZnbHlwaCk7 CiAKLSAgICAgIGlmICh4cG9zICsgd2lkdGggPiBURVhUX1dJRFRIKQorICAgICAgaWYgKHhw b3MgKyBnbHlwaC5jaGFyX3dpZHRoID4gVEVYVF9XSURUSCkKIAlncnViX3B1dGNoYXIgKCdc bicpOwogCiAgICAgICBwID0gdGV4dF9idWYgKyB4cG9zICsgeXBvcyAqIFRFWFRfV0lEVEg7 CiAgICAgICBwLT5jb2RlID0gYzsKICAgICAgIHAtPmZnX2NvbG9yID0gZmdfY29sb3I7CiAg ICAgICBwLT5iZ19jb2xvciA9IGJnX2NvbG9yOwotICAgICAgcC0+d2lkdGggPSB3aWR0aCAt IDE7CisgICAgICBwLT53aWR0aCA9IGdseXBoLmNoYXJfd2lkdGggLSAxOwogICAgICAgcC0+ aW5kZXggPSAwOwogCi0gICAgICBpZiAod2lkdGggPiAxKQorICAgICAgaWYgKGdseXBoLmNo YXJfd2lkdGggPiAxKQogCXsKIAkgIHVuc2lnbmVkIGk7CiAKLQkgIGZvciAoaSA9IDE7IGkg PCB3aWR0aDsgaSsrKQorCSAgZm9yIChpID0gMTsgaSA8IGdseXBoLmNoYXJfd2lkdGg7IGkr KykKIAkgICAgewogCSAgICAgIHBbaV0uY29kZSA9ICcgJzsKLQkgICAgICBwW2ldLndpZHRo ID0gd2lkdGggLSAxOworCSAgICAgIHBbaV0ud2lkdGggPSBnbHlwaC5jaGFyX3dpZHRoIC0g MTsKIAkgICAgICBwW2ldLmluZGV4ID0gaTsKIAkgICAgfQogCX0KIAkgIAogICAgICAgd3Jp dGVfY2hhciAoKTsKICAgCi0gICAgICB4cG9zICs9IHdpZHRoOworICAgICAgeHBvcyArPSBn bHlwaC5jaGFyX3dpZHRoOwogICAgICAgaWYgKHhwb3MgPj0gVEVYVF9XSURUSCkKIAl7CiAJ ICB4cG9zID0gMDsKQEAgLTQ1NCwxMiArMzgxLDExIEBACiBzdGF0aWMgZ3J1Yl9zc2l6ZV90 CiBncnViX3ZnYV9nZXRjaGFyd2lkdGggKGdydWJfdWludDMyX3QgYykKIHsKLSAgdW5zaWdu ZWQgd2lkdGg7CisgIHN0cnVjdCBncnViX2ZvbnRfZ2x5cGggZ2x5cGg7CiAgIAotICBpZiAo ISBnZXRfdmdhX2dseXBoIChjLCAwLCAmd2lkdGgpKQotICAgIHJldHVybiAwOwotCi0gIHJl dHVybiB3aWR0aDsKKyAgZ3J1Yl9mb250X2dldF9nbHlwaCAoYywgJmdseXBoKTsKKyAgCisg IHJldHVybiBnbHlwaC5jaGFyX3dpZHRoOwogfQogCiBzdGF0aWMgZ3J1Yl91aW50MTZfdAo= --------------090203030504010701030801--