From kmail-devel Mon Apr 24 13:50:50 2000 From: Daniel Naber Date: Mon, 24 Apr 2000 13:50:50 +0000 To: kmail-devel Subject: HTML cleanup X-MARC-Message: https://marc.info/?l=kmail-devel&m=95658457605318 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--Boundary-=_IajpiFnpBRCsqtQMnHhCxjyCeZiO" --Boundary-=_IajpiFnpBRCsqtQMnHhCxjyCeZiO Content-Type: text/plain Content-Transfer-Encoding: 8bit Hi, patch to clean up some HTML. Most of it isn't really necessary, but who knows, maybe someday we want to feed XHTML to KHTML? :-) So the tags are now all written with small letters. There have also been syntax errors which might have been the cause for KHTML::find() still not working (they were not, but I fixed them anyway). Regards Daniel --Boundary-=_IajpiFnpBRCsqtQMnHhCxjyCeZiO Content-Type: text/plain; name="html-fixes.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="html-fixes.diff" LS0tIGttcmVhZGVyd2luLmNwcAlNb24gQXByIDI0IDE1OjMxOjI5IDIwMDAKKysrIGttcmVhZGVy d2luLmNwcC5vcmcJTW9uIEFwciAyNCAxNDowMDoyMCAyMDAwCkBAIC0yNjEsNyArMjYxLDcgQEAK ICAgICB9CiAgIH0KIAotICBRU3RyaW5nIHN0ciA9IFFTdHJpbmcoIjxmb250IGNvbG9yPVwiJTFc Ij4iKS5hcmcoIGNvbG9yLm5hbWUoKSApOworICBRU3RyaW5nIHN0ciA9IFFTdHJpbmcoIjxmb250 IGNvbG9yPSUxPiIpLmFyZyggY29sb3IubmFtZSgpICk7CiAgIGlmKCBmb250Lml0YWxpYygpICkg eyBzdHIgKz0gIjxpPiI7IH0KICAgaWYoIGZvbnQuYm9sZCgpICkgeyBzdHIgKz0gIjxiPiI7IH0K ICAgcmV0dXJuKCBzdHIgKTsKQEAgLTM2NCwxMiArMzY0LDEyIEBACiAgIGVsc2UKICAgewogICAg IG1WaWV3ZXItPmJlZ2luKCBLVVJMKCAiZmlsZTovIiApICk7Ci0gICAgbVZpZXdlci0+d3JpdGUo IjxodG1sPjxib2R5IiArCi0JCSAgIFFTdHJpbmcoIiBiZ2NvbG9yPVwiIyUxXCIiKS5hcmcoY29s b3JUb1N0cmluZyhjNCkpKTsKKyAgICBtVmlld2VyLT53cml0ZSgiPEhUTUw+PEJPRFkiICsKKwkJ ICAgUVN0cmluZygiIEJHQ09MT1I9IyUxIikuYXJnKGNvbG9yVG9TdHJpbmcoYzQpKSk7CiAKICAg ICBpZiAobUJhY2tpbmdQaXhtYXBPbikKICAgICAgIG1WaWV3ZXItPndyaXRlKCIgYmFja2dyb3Vu ZD1cImZpbGU6Ly8iICsgbUJhY2tpbmdQaXhtYXBTdHIgKyAiXCIiKTsKLSAgICBtVmlld2VyLT53 cml0ZSgiPjwvYm9keT48L2h0bWw+Iik7CisgICAgbVZpZXdlci0+d3JpdGUoIj48L0JPRFk+PC9I VE1MPiIpOwogICAgIG1WaWV3ZXItPmVuZCgpOwogICB9CiAKQEAgLTM5MSwxOSArMzkxLDE2IEBA CiAgICAgcmV0dXJuOwogCiAgIG1WaWV3ZXItPmJlZ2luKCBLVVJMKCAiZmlsZTovIiApICk7Ci0g IG1WaWV3ZXItPndyaXRlKCI8aHRtbD48aGVhZD48c3R5bGUgdHlwZT1cInRleHQvY3NzXCI+IiAr Ci0JCSBRU3RyaW5nKCJhIHsgY29sb3I6ICMlMTsiKS5hcmcoY29sb3JUb1N0cmluZyhjMikpICsK KyAgbVZpZXdlci0+d3JpdGUoIjxIVE1MPjxIRUFEPjxTVFlMRT4iICsKKwkJIFFTdHJpbmcoImFb aHJlZl0geyBjb2xvcjogIyUxOyIpLmFyZyhjb2xvclRvU3RyaW5nKGMyKSkgKwogCQkgInRleHQt ZGVjb3JhdGlvbjogbm9uZTsgfSIgKyAvLyBqdXN0IHBsYXlpbmcKLQkJICI8L3N0eWxlPjwvaGVh ZD48Ym9keSAiICsKLQkJIC8vIFRPRE86IG1vdmUgdGhlc2UgdG8gc3R5bGVzaGVldCwgdG9vOgot ICAgICAgICAgICAgICAgICBRU3RyaW5nKCIgdGV4dD1cIiMlMVwiIikuYXJnKGNvbG9yVG9TdHJp bmcoYzEpKSArCi0JCSBRU3RyaW5nKCIgYmdjb2xvcj1cIiMlMVwiIikuYXJnKGNvbG9yVG9TdHJp bmcoYzQpKSk7CisJCSAiPC9TVFlMRT48Qk9EWSAiICsKKyAgICAgICAgICAgICAgICAgUVN0cmlu ZygiIFRFWFQ9IyUxIikuYXJnKGNvbG9yVG9TdHJpbmcoYzEpKSArCisJCSBRU3RyaW5nKCIgQkdD T0xPUj0jJTEiKS5hcmcoY29sb3JUb1N0cmluZyhjNCkpKTsKIAogICBpZiAobUJhY2tpbmdQaXht YXBPbikKICAgICBtVmlld2VyLT53cml0ZSgiIGJhY2tncm91bmQ9XCJmaWxlOi8vIiArIG1CYWNr aW5nUGl4bWFwU3RyICsgIlwiIik7Ci0KLSAgLy8gVE9ETzogbW92ZSB0aGlzIHRvIHN0eWxlc2hl ZXQsIHRvbzoKLSAgbVZpZXdlci0+d3JpdGUoIj48Zm9udCBmYWNlPVwiIiArIG1Cb2R5Rm9udCAr IlwiPiIpOworICBtVmlld2VyLT53cml0ZSgiPjxGT05UIEZBQ0U9XCIiICsgbUJvZHlGb250ICsi XCI+Iik7CiAKICNpZiBkZWZpbmVkIENIQVJTRVRTCiAgIHByaW50ZigiU2V0dGluZyB2aWV3ZXIg Y2hhcnNldCB0byAlc1xuIiwoY29uc3QgY2hhciAqKW1Nc2ctPmNoYXJzZXQoKSk7CkBAIC00MTIs NyArNDA5LDcgQEAKIAogICBwYXJzZU1zZyhtTXNnKTsKIAotICBtVmlld2VyLT53cml0ZSgiPC9m b250PjwvYm9keT48L2h0bWw+Iik7CisgIG1WaWV3ZXItPndyaXRlKCI8L0ZPTlQ+PC9CT0RZPjwv SFRNTD4iKTsKICAgbVZpZXdlci0+ZW5kKCk7CiB9CiAKQEAgLTQ4OSw3ICs0ODYsNyBAQAogCWlm ICgodHlwZSA9PSAiIikgfHwgKHN0cmljbXAodHlwZSwgInRleHQiKT09MCkpLy98fHN0cmljbXAo dHlwZSwgIm1lc3NhZ2UiKT09MCkKIAl7CiAJICBzdHIgPSBRQ1N0cmluZyhtc2dQYXJ0LmJvZHlE ZWNvZGVkKCkpOwotCSAgaWYgKGk+MCkgbVZpZXdlci0+d3JpdGUoIjxicj48aHI+PGJyPiIpOwor CSAgaWYgKGk+MCkgbVZpZXdlci0+d3JpdGUoIjxCUj48SFI+PEJSPiIpOwogCiAJICBpZiAoc3Ry aWNtcChzdWJ0eXBlLCAiaHRtbCIpPT0wKQogICAgICAgICAgIHsKQEAgLTU0NCw5MiArNTQxLDky IEBACiAgIHN3aXRjaCAobUhlYWRlclN0eWxlKQogICB7CiAgICAgY2FzZSBIZHJCcmllZjoKLSAg ICBtVmlld2VyLT53cml0ZSgiPGZvbnQgc2l6ZT1cIisxXCI+PGI+IiArIHN0clRvSHRtbChtTXNn LT5zdWJqZWN0KCkpICsKLSAgICAgICAgICAgICAgICAgICAiPC9iPjwvZm9udD4mbmJzcDsgKCIg KworICAgIG1WaWV3ZXItPndyaXRlKCI8Rk9OVCBTSVpFPSsxPjxCPiIgKyBzdHJUb0h0bWwobU1z Zy0+c3ViamVjdCgpKSArCisgICAgICAgICAgICAgICAgICAgIjwvQj48L0ZPTlQ+Jm5ic3A7ICgi ICsKICAgICAgICAgICAgICAgICAgICBLTU1lc3NhZ2U6OmVtYWlsQWRkckFzQW5jaG9yKG1Nc2ct PmZyb20oKSxUUlVFKSArICIsICIpOwogICAgIGlmICghbU1zZy0+Y2MoKS5pc0VtcHR5KCkpCiAg ICAgICBtVmlld2VyLT53cml0ZShpMThuKCJDYzogIikrCiAgICAgICAgICAgICAgICAgICAgICBL TU1lc3NhZ2U6OmVtYWlsQWRkckFzQW5jaG9yKG1Nc2ctPmNjKCksVFJVRSkgKyAiLCAiKTsKLSAg ICBtVmlld2VyLT53cml0ZShzdHJUb0h0bWwobU1zZy0+ZGF0ZVNob3J0U3RyKCkpICsgIik8YnI+ XG4iKTsKKyAgICBtVmlld2VyLT53cml0ZShzdHJUb0h0bWwobU1zZy0+ZGF0ZVNob3J0U3RyKCkp ICsgIik8QlI+XG4iKTsKICAgICBicmVhazsKIAogICBjYXNlIEhkclN0YW5kYXJkOgotICAgIG1W aWV3ZXItPndyaXRlKCI8Zm9udCBzaXplPVwiKzFcIj48Yj4iICsKLSAgICAgICAgICAgICAgICAg ICBzdHJUb0h0bWwobU1zZy0+c3ViamVjdCgpKSArICI8L2I+PC9mb250Pjxicj5cbiIpOworICAg IG1WaWV3ZXItPndyaXRlKCI8Rk9OVCBTSVpFPSsxPjxCPiIgKworICAgICAgICAgICAgICAgICAg IHN0clRvSHRtbChtTXNnLT5zdWJqZWN0KCkpICsgIjwvQj48L0ZPTlQ+PEJSPlxuIik7CiAgICAg bVZpZXdlci0+d3JpdGUoaTE4bigiRnJvbTogIikgKwotICAgICAgICAgICAgICAgICAgIEtNTWVz c2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+ZnJvbSgpLEZBTFNFKSArICI8YnI+XG4iKTsK KyAgICAgICAgICAgICAgICAgICBLTU1lc3NhZ2U6OmVtYWlsQWRkckFzQW5jaG9yKG1Nc2ctPmZy b20oKSxGQUxTRSkgKyAiPEJSPlxuIik7CiAgICAgbVZpZXdlci0+d3JpdGUoaTE4bigiVG86ICIp ICsKLSAgICAgICAgICAgICAgICAgICBLTU1lc3NhZ2U6OmVtYWlsQWRkckFzQW5jaG9yKG1Nc2ct PnRvKCksRkFMU0UpICsgIjxicj5cbiIpOworICAgICAgICAgICAgICAgICAgIEtNTWVzc2FnZTo6 ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+dG8oKSxGQUxTRSkgKyAiPEJSPlxuIik7CiAgICAgaWYg KCFtTXNnLT5jYygpLmlzRW1wdHkoKSkKICAgICAgIG1WaWV3ZXItPndyaXRlKGkxOG4oIkNjOiAi KSsKLSAgICAgICAgICAgICAgICAgICAgIEtNTWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1z Zy0+Y2MoKSxGQUxTRSkgKyAiPGJyPlxuIik7CisgICAgICAgICAgICAgICAgICAgICBLTU1lc3Nh Z2U6OmVtYWlsQWRkckFzQW5jaG9yKG1Nc2ctPmNjKCksRkFMU0UpICsgIjxCUj5cbiIpOwogI2lm ZGVmIEtSTgogICAgIGlmICghbU1zZy0+cmVmZXJlbmNlcygpLmlzRW1wdHkoKSkKICAgICAgICAg bVZpZXdlci0+d3JpdGUoaTE4bigiUmVmZXJlbmNlczogIikgKwotICAgICAgICAgICAgICAgICAg ICAgICBLTU1lc3NhZ2U6OnJlZnNBc0FuY2hvcihtTXNnLT5yZWZlcmVuY2VzKCkpICsgIjxicj4i KTsKKyAgICAgICAgICAgICAgICAgICAgICAgS01NZXNzYWdlOjpyZWZzQXNBbmNob3IobU1zZy0+ cmVmZXJlbmNlcygpKSArICI8QlI+Iik7CiAjZW5kaWYKLSAgICBtVmlld2VyLT53cml0ZSgiPGJy PiIpOworICAgIG1WaWV3ZXItPndyaXRlKCI8QlI+Iik7CiAgICAgYnJlYWs7CiAKICAgY2FzZSBI ZHJGYW5jeToKLSAgICBtVmlld2VyLT53cml0ZShRU3RyaW5nKCI8dGFibGU+PHRyPjx0ZD48aW1n IHNyYz0iKSArCisgICAgbVZpZXdlci0+d3JpdGUoUVN0cmluZygiPFRBQkxFPjxUUj48VEQ+PElN RyBTUkM9IikgKwogCQkgICBsb2NhdGUoImRhdGEiLCAia21haWwvcGljcy9rZGVsb2dvLnhwbSIp ICsKLSAgICAgICAgICAgICAgICAgICAiPjwvdGQ+PHRkIGhzcGFjZT1cIjUwXCI+PGI+PGZvbnQg c2l6ZT1cIisyXCI+Iik7Ci0gICAgbVZpZXdlci0+d3JpdGUoc3RyVG9IdG1sKG1Nc2ctPnN1Ympl Y3QoKSkgKyAiPC9mb250PjwvYj48YnI+Iik7CisgICAgICAgICAgICAgICAgICAgIj48L1REPjxU RCBIU1BBQ0U9NTA+PEI+PEZPTlQgU0laRT0rMj4iKTsKKyAgICBtVmlld2VyLT53cml0ZShzdHJU b0h0bWwobU1zZy0+c3ViamVjdCgpKSArICI8L0ZPTlQ+PC9CPjxCUj4iKTsKICAgICBtVmlld2Vy LT53cml0ZShpMThuKCJGcm9tOiAiKSsKLSAgICAgICAgICAgICAgICAgICBLTU1lc3NhZ2U6OmVt YWlsQWRkckFzQW5jaG9yKG1Nc2ctPmZyb20oKSxGQUxTRSkgKyAiPGJyPlxuIik7CisgICAgICAg ICAgICAgICAgICAgS01NZXNzYWdlOjplbWFpbEFkZHJBc0FuY2hvcihtTXNnLT5mcm9tKCksRkFM U0UpICsgIjxCUj5cbiIpOwogICAgIG1WaWV3ZXItPndyaXRlKGkxOG4oIlRvOiAiKSsKLSAgICAg ICAgICAgICAgICAgICBLTU1lc3NhZ2U6OmVtYWlsQWRkckFzQW5jaG9yKG1Nc2ctPnRvKCksRkFM U0UpICsgIjxicj5cbiIpOworICAgICAgICAgICAgICAgICAgIEtNTWVzc2FnZTo6ZW1haWxBZGRy QXNBbmNob3IobU1zZy0+dG8oKSxGQUxTRSkgKyAiPEJSPlxuIik7CiAgICAgaWYgKCFtTXNnLT5j YygpLmlzRW1wdHkoKSkKICAgICAgIG1WaWV3ZXItPndyaXRlKGkxOG4oIkNjOiAiKSsKLSAgICAg ICAgICAgICAgICAgICAgIEtNTWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+Y2MoKSxG QUxTRSkgKyAiPGJyPlxuIik7CisgICAgICAgICAgICAgICAgICAgICBLTU1lc3NhZ2U6OmVtYWls QWRkckFzQW5jaG9yKG1Nc2ctPmNjKCksRkFMU0UpICsgIjxCUj5cbiIpOwogICAgIG1WaWV3ZXIt PndyaXRlKGkxOG4oIkRhdGU6ICIpKwotICAgICAgICAgICAgICAgICAgIHN0clRvSHRtbChtTXNn LT5kYXRlU3RyKCkpICsgIjxicj5cbiIpOworICAgICAgICAgICAgICAgICAgIHN0clRvSHRtbCht TXNnLT5kYXRlU3RyKCkpICsgIjxCUj5cbiIpOwogI2lmZGVmIEtSTgogICAgIGlmICghbU1zZy0+ cmVmZXJlbmNlcygpLmlzRW1wdHkoKSkKICAgICAgICAgbVZpZXdlci0+d3JpdGUoaTE4bigiUmVm ZXJlbmNlczogIikgKwotICAgICAgICAgICAgICAgICAgICAgICBLTU1lc3NhZ2U6OnJlZnNBc0Fu Y2hvcihtTXNnLT5yZWZlcmVuY2VzKCkpICsgIjxicj48YnI+XG4iKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgS01NZXNzYWdlOjpyZWZzQXNBbmNob3IobU1zZy0+cmVmZXJlbmNlcygpKSArICI8 QlI+PEJSPlxuIik7CiAjZW5kaWYKLSAgICBtVmlld2VyLT53cml0ZSgiPC9iPjwvdGQ+PC90cj48 L3RhYmxlPjxicj5cbiIpOworICAgIG1WaWV3ZXItPndyaXRlKCI8L0I+PC9URD48L1RSPjwvVEFC TEU+PEJSPlxuIik7CiAgICAgYnJlYWs7CiAKICAgY2FzZSBIZHJMb25nOgotICAgIG1WaWV3ZXIt PndyaXRlKCI8Zm9udCBzaXplPVwiKzFcIj48Yj4iICsKLSAgICAgICAgICAgICAgICAgICBzdHJU b0h0bWwobU1zZy0+c3ViamVjdCgpKSArICI8L0I+PC9mb250Pjxicj4iKTsKLSAgICBtVmlld2Vy LT53cml0ZShpMThuKCJEYXRlOiAiKStzdHJUb0h0bWwobU1zZy0+ZGF0ZVN0cigpKSsiPGJyPiIp OworICAgIG1WaWV3ZXItPndyaXRlKCI8Rk9OVCBTSVpFPSsxPjxCPiIgKworICAgICAgICAgICAg ICAgICAgIHN0clRvSHRtbChtTXNnLT5zdWJqZWN0KCkpICsgIjwvQj48L0ZPTlQ+PEJSPiIpOwor ICAgIG1WaWV3ZXItPndyaXRlKGkxOG4oIkRhdGU6ICIpK3N0clRvSHRtbChtTXNnLT5kYXRlU3Ry KCkpKyI8QlI+Iik7CiAgICAgbVZpZXdlci0+d3JpdGUoaTE4bigiRnJvbTogIikrCi0JCSAgIEtN TWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+ZnJvbSgpLEZBTFNFKSArICI8YnI+Iik7 CisJCSAgIEtNTWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+ZnJvbSgpLEZBTFNFKSAr ICI8QlI+Iik7CiAgICAgbVZpZXdlci0+d3JpdGUoaTE4bigiVG86ICIpKwotICAgICAgICAgICAg ICAgICAgIEtNTWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+dG8oKSxGQUxTRSkgKyAi PGJyPiIpOworICAgICAgICAgICAgICAgICAgIEtNTWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3Io bU1zZy0+dG8oKSxGQUxTRSkgKyAiPEJSPiIpOwogICAgIGlmICghbU1zZy0+Y2MoKS5pc0VtcHR5 KCkpCiAgICAgICBtVmlld2VyLT53cml0ZShpMThuKCJDYzogIikrCi0JCSAgICAgS01NZXNzYWdl OjplbWFpbEFkZHJBc0FuY2hvcihtTXNnLT5jYygpLEZBTFNFKSArICI8YnI+Iik7CisJCSAgICAg S01NZXNzYWdlOjplbWFpbEFkZHJBc0FuY2hvcihtTXNnLT5jYygpLEZBTFNFKSArICI8QlI+Iik7 CiAgICAgaWYgKCFtTXNnLT5iY2MoKS5pc0VtcHR5KCkpCiAgICAgICBtVmlld2VyLT53cml0ZShp MThuKCJCY2M6ICIpKwotCQkgICAgIEtNTWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+ YmNjKCksRkFMU0UpICsgIjxicj4iKTsKKwkJICAgICBLTU1lc3NhZ2U6OmVtYWlsQWRkckFzQW5j aG9yKG1Nc2ctPmJjYygpLEZBTFNFKSArICI8QlI+Iik7CiAgICAgaWYgKCFtTXNnLT5yZXBseVRv KCkuaXNFbXB0eSgpKQogICAgICAgbVZpZXdlci0+d3JpdGUoaTE4bigiUmVwbHkgdG86ICIpKwot CQkgICAgIEtNTWVzc2FnZTo6ZW1haWxBZGRyQXNBbmNob3IobU1zZy0+cmVwbHlUbygpLEZBTFNF KSArICI8YnI+Iik7CisJCSAgICAgS01NZXNzYWdlOjplbWFpbEFkZHJBc0FuY2hvcihtTXNnLT5y ZXBseVRvKCksRkFMU0UpICsgIjxCUj4iKTsKICNpZmRlZiBLUk4KICAgICBpZiAoIW1Nc2ctPnJl ZmVyZW5jZXMoKS5pc0VtcHR5KCkpCiAgICAgICAgIG1WaWV3ZXItPndyaXRlKGkxOG4oIlJlZmVy ZW5jZXM6ICIpKwotICAgICAgICAgICAgICAgICAgICAgICBLTU1lc3NhZ2U6OnJlZnNBc0FuY2hv cihtTXNnLT5yZWZlcmVuY2VzKCkpICsgIjxicj5cbiIpOworICAgICAgICAgICAgICAgICAgICAg ICBLTU1lc3NhZ2U6OnJlZnNBc0FuY2hvcihtTXNnLT5yZWZlcmVuY2VzKCkpICsgIjxCUj5cbiIp OwogICAgIGlmICghbU1zZy0+Z3JvdXBzKCkuaXNFbXB0eSgpKQotICAgICAgICBtVmlld2VyLT53 cml0ZShpMThuKCJHcm91cHM6ICIpICsgbU1zZy0+Z3JvdXBzKCkrIjxicj5cbiIpOworICAgICAg ICBtVmlld2VyLT53cml0ZShpMThuKCJHcm91cHM6ICIpICsgbU1zZy0+Z3JvdXBzKCkrIjxCUj5c biIpOwogI2VuZGlmCi0gICAgbVZpZXdlci0+d3JpdGUoIjxicj5cbiIpOworICAgIG1WaWV3ZXIt PndyaXRlKCI8QlI+XG4iKTsKICAgICBicmVhazsKIAogICBjYXNlIEhkckFsbDoKICAgICBzdHIg PSBzdHJUb0h0bWwobU1zZy0+aGVhZGVyQXNTdHJpbmcoKSk7CiAgICAgbVZpZXdlci0+d3JpdGUo c3RyKTsKLSAgICBtVmlld2VyLT53cml0ZSgiXG48YnI+XG4iKTsKKyAgICBtVmlld2VyLT53cml0 ZSgiXG48QlI+XG4iKTsKICAgICBicmVhazsKIAogICBkZWZhdWx0OgogICAgIHdhcm5pbmcoIlVu c3VwcG9ydGVkIGhlYWRlciBzdHlsZSAlZCIsIG1IZWFkZXJTdHlsZSk7CiAgIH0KLSAgbVZpZXdl ci0+d3JpdGUoIjxicj5cbiIpOworICBtVmlld2VyLT53cml0ZSgiPEJSPlxuIik7CiB9CiAKIApA QCAtNjQ2LDE3ICs2NDMsMTcgQEAKICAgewogICAgIFFTdHJpbmcgc3RyID0gcGdwLT5mcm9udG1h dHRlcigpOwogICAgIGlmKCFzdHIuaXNFbXB0eSgpKSBodG1sU3RyICs9IHF1b3RlZEhUTUwoc3Ry KTsKLSAgICBodG1sU3RyICs9ICI8YnI+IjsKKyAgICBodG1sU3RyICs9ICI8QlI+IjsKICAgICBp ZiAocGdwLT5pc0VuY3J5cHRlZCgpKQogICAgIHsKICAgICAgIHBncE1lc3NhZ2UgPSB0cnVlOwog ICAgICAgaWYocGdwLT5kZWNyeXB0KCkpCiAgICAgICB7Ci0JaHRtbFN0ciArPSBRU3RyaW5nKCI8 Yj4lMTwvYj48YnI+IikuYXJnKGkxOG4oIkVuY3J5cHRlZCBtZXNzYWdlIikpOworCWh0bWxTdHIg Kz0gUVN0cmluZygiPEI+JTE8L0I+PEJSPiIpLmFyZyhpMThuKCJFbmNyeXB0ZWQgbWVzc2FnZSIp KTsKICAgICAgIH0KICAgICAgIGVsc2UKICAgICAgIHsKLQlodG1sU3RyICs9IFFTdHJpbmcoIjxi PiUxPC9iPjxicj4lMjxicj48YnI+IikKKwlodG1sU3RyICs9IFFTdHJpbmcoIjxCPiUxPC9CPjxC Uj4lMjxCUj48QlI+IikKICAgICAgICAgICAgICAgICAgICAgLmFyZyhpMThuKCJDYW5ub3QgZGVj cnlwdCBtZXNzYWdlOiIpKQogICAgICAgICAgICAgICAgICAgICAuYXJnKHBncC0+bGFzdEVycm9y TXNnKCkpOwogICAgICAgfQpAQCAtNjc5LDE1ICs2NzYsMTUgQEAKICAgICAgIGlmIChzZGF0YS5j b250YWlucyhRUmVnRXhwKCJ1bmtub3duIGtleSBJRCIpKSkKICAgICAgIHsKICAgICAgICAgIHNk YXRhLnJlcGxhY2UoUVJlZ0V4cCgidW5rbm93biBrZXkgSUQiKSwgaTE4bigidW5rbm93biBrZXkg SUQiKSk7Ci0gICAgICAgICBodG1sU3RyICs9IFFTdHJpbmcoIjxiPiUxICUyPC9iPjxicj4iKS5h cmcoc2lnKS5hcmcoc2RhdGEpOworICAgICAgICAgaHRtbFN0ciArPSBRU3RyaW5nKCI8Qj4lMSAl MjwvQj48QlI+IikuYXJnKHNpZykuYXJnKHNkYXRhKTsKICAgICAgIH0KICAgICAgIGVsc2Ugewot ICAgICAgICAgaHRtbFN0ciArPSBRU3RyaW5nKCI8Yj4lMSA8YSBocmVmPVwibWFpbHRvOiUyXCI+ JTM8L2E+PC9iPjxicj4iKQorICAgICAgICAgaHRtbFN0ciArPSBRU3RyaW5nKCI8Qj4lMSA8QSBI UkVGPVwibWFpbHRvOiUyXCI+JTM8L0E+PC9CPjxCUj4iKQogICAgICAgICAgICAgICAgICAgICAg IC5hcmcoc2lnKS5hcmcoc2RhdGEpLmFyZyhzZGF0YSk7CiAgICAgICB9CiAgICAgfQogICAgIGh0 bWxTdHIgKz0gcXVvdGVkSFRNTChwZ3AtPm1lc3NhZ2UoKSk7Ci0gICAgaWYocGdwTWVzc2FnZSkg aHRtbFN0ciArPSAiPGJyPjxiPkVuZCBwZ3AgbWVzc2FnZTwvYj48YnI+PGJyPiI7CisgICAgaWYo cGdwTWVzc2FnZSkgaHRtbFN0ciArPSAiPEJSPjxCPkVuZCBwZ3AgbWVzc2FnZTwvQj48QlI+PEJS PiI7CiAgICAgc3RyID0gcGdwLT5iYWNrbWF0dGVyKCk7CiAgICAgaWYoIXN0ci5pc0VtcHR5KCkp IGh0bWxTdHIgKz0gcXVvdGVkSFRNTChzdHIpOwogICB9CkBAIC03NDAsMTEgKzczNywxMSBAQAog ICAgICAgfQogICAgICAgZWxzZSBpZiggcHJldlF1b3RlTGV2ZWwgPj0gMCApCiAgICAgICB7Ci0J bGluZS5wcmVwZW5kKCAiPC9mb250Pjxicj5cbiIgKTsgLy8gQWRkZWQgZXh0cmEgQlIgdG8gd29y ayBhcm91bmQgYnVnCisJbGluZS5wcmVwZW5kKCAiPC9mb250PjxCUj5cbiIgKTsgLy8gQWRkZWQg ZXh0cmEgQlIgdG8gd29yayBhcm91bmQgYnVnCiAJcHJldlF1b3RlTGV2ZWwgPSAtMTsKICAgICAg IH0KIAotICAgICAgdG1wU3RyICs9IGxpbmUgKyAiPGJyPlxuIjsKKyAgICAgIHRtcFN0ciArPSBs aW5lICsgIjxCUj5cbiI7CiAgICAgICBpZiggKG5ld2xpbmVDb3VudCAlIDEwMCkgPT0gMCApIAog ICAgICAgewogCWh0bWxTdHIgKz0gdG1wU3RyOwpAQCAtODQ5LDkgKzg0Niw5IEBACiAgICAgYU1z Z1BhcnQtPm1hZ2ljU2V0VHlwZSgpOwogICAgIGljb25OYW1lID0gYU1zZ1BhcnQtPmljb25OYW1l KCk7CiAgIH0KLSAgbVZpZXdlci0+d3JpdGUoIjx0YWJsZT48dHI+PHRkPjxhIGhyZWY9XCIiICsg aHJlZiArICJcIj48aW1nIHNyYz1cIiIgKwotCQkgaWNvbk5hbWUgKyAiXCIgYm9yZGVyPVwiMFwi PiIgKyBsYWJlbCArCi0JCSAiPC9hPjwvdGQ+PC90cj48L3RhYmxlPiIgKyBjb21tZW50ICsgIjxi cj4iKTsKKyAgbVZpZXdlci0+d3JpdGUoIjxUQUJMRT48VFI+PFREPjxBIEhSRUY9XCIiICsgaHJl ZiArICJcIj48SU1HIFNSQz1cIiIgKworCQkgaWNvbk5hbWUgKyAiXCIgQk9SREVSPTA+IiArIGxh YmVsICsKKwkJICI8L0E+PC9URD48L1RSPjwvVEFCTEU+IiArIGNvbW1lbnQgKyAiPEJSPiIpOwog fQogCiAKQEAgLTkwOSw3ICs5MDYsNyBAQAogICAgIH0KICAgICBpZiAoY2g9PSc8JykgSFRNTF9B REQoIiZsdDsiLCA0KTsKICAgICBlbHNlIGlmIChjaD09Jz4nKSBIVE1MX0FERCgiJmd0OyIsIDQp OwotICAgIGVsc2UgaWYgKGNoPT0nXG4nKSBIVE1MX0FERCgiPGJyPiIsIDQpOworICAgIGVsc2Ug aWYgKGNoPT0nXG4nKSBIVE1MX0FERCgiPEJSPiIsIDQpOwogICAgIGVsc2UgaWYgKGNoPT0nJicp IEhUTUxfQUREKCImYW1wOyIsIDUpOwogICAgIGVsc2UgaWYgKChjaD09J2gnICYmIHN0cm5jbXAo cG9zLCJodHRwOiIsIDUpPT0wKSB8fAogCSAgICAgKGNoPT0nZicgJiYgc3RybmNtcChwb3MsImZ0 cDoiLCA0KT09MCkgfHwKQEAgLTkyNCwxMSArOTIxLDExIEBACiAJcG9zLS07CiAgICAgICB9CiAg ICAgICBzdHJbaV0gPSAnXDAnOwotICAgICAgSFRNTF9BREQoIjxhIGhyZWY9XCIiLCA5KTsKKyAg ICAgIEhUTUxfQUREKCI8QSBIUkVGPVwiIiwgOSk7CiAgICAgICBIVE1MX0FERChzdHIsIHN0cmxl bihzdHIpKTsKICAgICAgIEhUTUxfQUREKCJcIj4iLCAyKTsKICAgICAgIEhUTUxfQUREKHN0ciwg c3RybGVuKHN0cikpOwotICAgICAgSFRNTF9BREQoIjwvYT4iLCA0KTsKKyAgICAgIEhUTUxfQURE KCI8L0E+IiwgNCk7CiAgICAgfQogICAgIGVsc2UgaWYgKGNoPT0nQCcpCiAgICAgewpAQCAtOTYw LDcgKzk1Nyw3IEBACiAKICAgICAgIGh0bWxQb3MgLT0gKGkxIC0gMSk7CiAgICAgICBpZiAoaVN0 ci5sZW5ndGgoKT4zKQotCWlTdHIgPSAiPGEgaHJlZj1cIm1haWx0bzoiICsgaVN0ciArICJcIj4i ICsgaVN0ciArICI8L2E+IjsKKwlpU3RyID0gIjxBIEhSRUY9XCJtYWlsdG86IiArIGlTdHIgKyAi XCI+IiArIGlTdHIgKyAiPC9BPiI7CiAgICAgICBIVE1MX0FERChpU3RyLmRhdGEoKSwgaVN0ci5s ZW5ndGgoKSk7CiAgICAgICBpU3RyID0gIiI7CiAgICAgfQpAQCAtMTEzNiwxMyArMTEzMywxMyBA QAogICAgIGlmIChzdHJpY21wKG1zZ1BhcnQudHlwZVN0cigpLCAidGV4dCIpPT0wKQogICAgIHsK ICAgICAgIHdpbi0+bVZpZXdlci0+YmVnaW4oIEtVUkwoICJmaWxlOi8iICkgKTsKLSAgICAgIHdp bi0+bVZpZXdlci0+d3JpdGUoIjxodG1sPjxib2R5PiIpOworICAgICAgd2luLT5tVmlld2VyLT53 cml0ZSgiPEhUTUw+PEJPRFk+Iik7CiAgICAgICBRU3RyaW5nIHN0ciA9IG1zZ1BhcnQuYm9keURl Y29kZWQoKTsKICAgICAgIGlmIChzdHJpY21wKG1zZ1BhcnQuc3VidHlwZVN0cigpLCAiaHRtbCIp PT0wKQogICAgICAgICB3aW4tPm1WaWV3ZXItPndyaXRlKHN0cik7CiAgICAgICBlbHNlICAvL3Bs YWluIHRleHQKICAgICAgICAgd2luLT53cml0ZUJvZHlTdHIoc3RyKTsKLSAgICAgIHdpbi0+bVZp ZXdlci0+d3JpdGUoIjwvYm9keT48L2h0bWw+Iik7CisgICAgICB3aW4tPm1WaWV3ZXItPndyaXRl KCI8L0JPRFk+PC9IVE1MPiIpOwogICAgICAgd2luLT5tVmlld2VyLT5lbmQoKTsKICAgICAgIHdp bi0+c2V0Q2FwdGlvbihpMThuKCJWaWV3IEF0dGFjaG1lbnQ6ICIpICsgcG5hbWUpOwogICAgICAg d2luLT5zaG93KCk7CkBAIC0xMTU0LDkgKzExNTEsOSBAQAogICAgICAgUVN0cmluZyBsaW5rTmFt ZSA9IFFTdHJpbmcoIjxpbWcgc3JjPVwiZmlsZTolMS9wYXJ0JTIvJTNcIiBib3JkZXI9MD4iKQog ICAgICAgICAgICAgICAgICAgICAgICAgLmFyZyhtQXR0YWNoRGlyKS5hcmcobUF0bUN1cnJlbnQr MSkuYXJnKHBuYW1lKTsKICAgICAgIHdpbi0+bVZpZXdlci0+YmVnaW4oIEtVUkwoICJmaWxlOi8i ICkgKTsKLSAgICAgIHdpbi0+bVZpZXdlci0+d3JpdGUoIjxodG1sPjxib2R5PiIpOworICAgICAg d2luLT5tVmlld2VyLT53cml0ZSgiPEhUTUw+PEJPRFk+Iik7CiAgICAgICB3aW4tPm1WaWV3ZXIt PndyaXRlKGxpbmtOYW1lLmRhdGEoKSk7Ci0gICAgICB3aW4tPm1WaWV3ZXItPndyaXRlKCI8L2Jv ZHk+PC9odG1sPiIpOworICAgICAgd2luLT5tVmlld2VyLT53cml0ZSgiPC9CT0RZPjwvSFRNTD4i KTsKICAgICAgIHdpbi0+bVZpZXdlci0+ZW5kKCk7CiAgICAgICB3aW4tPnNldENhcHRpb24oaTE4 bigiVmlldyBBdHRhY2htZW50OiAiKSArIHBuYW1lKTsKICAgICAgIHdpbi0+c2hvdygpOwotLS0g a21tZXNzYWdlLmNwcF9vbGRodG1sCU1vbiBBcHIgMjQgMTU6Mzc6NTMgMjAwMAorKysga21tZXNz YWdlLmNwcAlNb24gQXByIDI0IDE1OjM5OjM1IDIwMDAKQEAgLTE2OTEsNyArMTY5MSw3IEBACiAK ICAgaWYgKGVtYWlsLmlzRW1wdHkoKSkgcmV0dXJuIGVtYWlsOwogCi0gIHJlc3VsdCA9ICI8QSBI UkVGPVwibWFpbHRvOiI7CisgIHJlc3VsdCA9ICI8YSBocmVmPVwibWFpbHRvOiI7CiAgIGZvciAo cG9zPWVtYWlsLmRhdGEoKTsgKnBvczsgcG9zKyspCiAgIHsKICAgICBjaCA9ICpwb3M7CkBAIC0x NzA4LDEwICsxNzA4LDEwIEBACiAgICAgICByZXN1bHQgKz0gIlwiPiI7CiAgICAgICBpZiAoc3Ry aXBwZWQpIHJlc3VsdCArPSBLTU1lc3NhZ2U6OnN0cmlwRW1haWxBZGRyKGFFbWFpbCk7CiAgICAg ICBlbHNlIHJlc3VsdCArPSBhZGRyOwotICAgICAgcmVzdWx0ICs9ICI8L0E+IjsKKyAgICAgIHJl c3VsdCArPSAiPC9hPiI7CiAgICAgICBpZiAoY2ggPT0gJywnKQogICAgICAgewotCXJlc3VsdCAr PSAiLCA8QSBIUkVGPVwibWFpbHRvOiI7CisJcmVzdWx0ICs9ICIsIDxhIGhyZWY9XCJtYWlsdG86 IjsKIAl3aGlsZSAocG9zWzFdPT0nICcpIHBvcysrOwogICAgICAgfQogICAgICAgYWRkciA9ICIi Owo= --Boundary-=_IajpiFnpBRCsqtQMnHhCxjyCeZiO--