From: anorland AT hem2 DOT passagen DOT se (Anders Norlander) Subject: windres: bug fixes 18 Aug 1998 09:47:04 -0700 Message-ID: <35D9AD76.A9DFEA9C.cygnus.cygwin32.developers@hem2.passagen.se> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------807260DCEA9CF44A8F09D6B1" To: cygwin32-developers AT cygnus DOT com This is a multi-part message in MIME format. --------------807260DCEA9CF44A8F09D6B1 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Here are some patches for windres 2.9.1 * rcparse.y: Handle CONTROL's with named classes * resbin.c: Bug in res_to_bin_dialog and bin_to_res_dialog when dialog is extended: The version and signature fields should be reversed (despite what the docs say). Id is 32 bits long in extended dialogs. * resrc.c: In write_rc_dialog: properly print controls with named classes. As far as I can see, windres is now a complete resource compiler. BTW, I sent in the FSF copyright assignment you asked me to. /Anders Norlander --------------807260DCEA9CF44A8F09D6B1 Content-Type: application/x-unknown-content-type-WinZip; name="windres-2.9.1-diffs.tar" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="windres-2.9.1-diffs.tar" cmNwYXJzZS5kaWZmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwMDY0NCAA ICAgNzY0IAAgICAgIDAgACAgICAgICAzMDU3ICA2NTY2MTA1MDcwICAxMjMzNAAgMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAGFub3Js YW5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcm9vdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqKiogcmNwYXJzZS55Lm9yaWcJTW9uIEF1ZyAx NyAxNzo1NzoxOCAxOTk4DQotLS0gcmNwYXJzZS55CU1vbiBBdWcgMTcgMjE6NTI6NDIgMTk5 OA0KKioqKioqKioqKioqKioqIGNvbnRyb2w6DQoqKiogNTU3LDU2MiAqKioqDQotLS0gNTU3 LDU4NiAtLS0tDQogIAkgICAgJCQtPmhlbHAgPSAkMTE7DQogIAkgICAgJCQtPmRhdGEgPSAk MTI7DQogIAkgIH0NCisgCXwgQ09OVFJPTCBvcHRzdHJpbmdjIG51bWV4cHIgJywnIFFVT1RF RFNUUklORyBjb250cm9sX3N0eWxlZXhwcg0KKyAJICAgIGNudW1leHByIGNudW1leHByIGNu dW1leHByIGNudW1leHByIG9wdGNudW1leHByIG9wdF9jb250cm9sX2RhdGENCisgCSAgew0K KyAJICAgICQkID0gZGVmaW5lX2NvbnRyb2wgKCQyLCAkMywgJDcsICQ4LCAkOSwgJDEwLCAw LCBzdHlsZSwgJDExKTsNCisgCSAgICBpZiAoJDEyICE9IE5VTEwpDQorIAkgICAgICB7DQor IAkJaWYgKGRpYWxvZy5leCA9PSBOVUxMKQ0KKyAJCSAgcmNwYXJzZV93YXJuaW5nICgiY29u dHJvbCBkYXRhIHJlcXVpcmVzIERJQUxPR0VYIik7DQorIAkJJCQtPmRhdGEgPSAkMTI7DQor IAkgICAgICB9DQorIAkgICAgJCQtPmNsYXNzLm5hbWVkID0gMTsNCisgICAJICAgIHVuaWNv ZGVfZnJvbV9hc2NpaSgmJCQtPmNsYXNzLnUubi5sZW5ndGgsICYkJC0+Y2xhc3MudS5uLm5h bWUsICQ1KTsNCisgCSAgfQ0KKyAJfCBDT05UUk9MIG9wdHN0cmluZ2MgbnVtZXhwciAnLCcg UVVPVEVEU1RSSU5HIGNvbnRyb2xfc3R5bGVleHByDQorIAkgICAgY251bWV4cHIgY251bWV4 cHIgY251bWV4cHIgY251bWV4cHIgY251bWV4cHIgY251bWV4cHIgb3B0X2NvbnRyb2xfZGF0 YQ0KKyAJICB7DQorIAkgICAgJCQgPSBkZWZpbmVfY29udHJvbCAoJDIsICQzLCAkNywgJDgs ICQ5LCAkMTAsIDAsIHN0eWxlLCAkMTEpOw0KKyAJICAgIGlmIChkaWFsb2cuZXggPT0gTlVM TCkNCisgCSAgICAgIHJjcGFyc2Vfd2FybmluZyAoImhlbHAgSUQgcmVxdWlyZXMgRElBTE9H RVgiKTsNCisgCSAgICAkJC0+aGVscCA9ICQxMjsNCisgCSAgICAkJC0+ZGF0YSA9ICQxMzsN CisgCSAgICAkJC0+Y2xhc3MubmFtZWQgPSAxOw0KKyAgIAkgICAgdW5pY29kZV9mcm9tX2Fz Y2lpKCYkJC0+Y2xhc3MudS5uLmxlbmd0aCwgJiQkLT5jbGFzcy51Lm4ubmFtZSwgJDUpOw0K KyAJICB9DQogIAl8IENURVhUDQogIAkgICAgew0KICAJICAgICAgZGVmYXVsdF9zdHlsZSA9 IFNTX0NFTlRFUiB8IFdTX0dST1VQOw0KKioqKioqKioqKioqKioqIG1lbnVleGl0ZW06DQoq KiogOTg4LDk5MyAqKioqDQotLS0gMTAxMiwxMDIxIC0tLS0NCiAgCSAgew0KICAJICAgICQk ID0gZGVmaW5lX21lbnVpdGVtICgkMiwgJDMsICQ0LCAkNSwgMCwgTlVMTCk7DQogIAkgIH0N CisgIAl8IE1FTlVJVEVNIFNFUEFSQVRPUg0KKyAgCSAgew0KKyAgCSAgICAkJCA9IGRlZmlu ZV9tZW51aXRlbSAoTlVMTCwgMCwgMCwgMCwgMCwgTlVMTCk7DQorICAJICB9DQogIAl8IFBP UFVQIFFVT1RFRFNUUklORyBCRUcgbWVudWV4aXRlbXMgRU5EDQogIAkgIHsNCiAgCSAgICAk JCA9IGRlZmluZV9tZW51aXRlbSAoJDIsIDAsIDAsIDAsIDAsICQ0KTsNCgAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJlc2Jpbi5kaWZmAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAxMDA2NDQgACAgIDc2NCAAICAgICAwIAAgICAgICAxMTIzNSAgNjU2 NjEwNjA3NiAgMTIyMDMAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdXN0YXIgIABhbm9ybGFuZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJvb3QA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKioqIHJl c2Jpbi5jLm9yaWcJTW9uIEF1ZyAxNyAyMTo0NTozOCAxOTk4DQotLS0gcmVzYmluLmMJTW9u IEF1ZyAxNyAyMjowMDo1NCAxOTk4DQoqKioqKioqKioqKioqKiogYmluX3RvX3Jlc19kaWFs b2cgKGRhdGEsIGxlbmd0aCwgYmlnX2VuZA0KKioqIDQ3MCw0NzYgKioqKg0KICAgIGQgPSAo c3RydWN0IGRpYWxvZyAqKSByZXNfYWxsb2MgKHNpemVvZiAqZCk7DQogIA0KICAgIHZlcnNp b24gPSBnZXRfMTYgKGJpZ19lbmRpYW4sIGRhdGEpOw0KISAgIGlmICh2ZXJzaW9uICE9IDB4 ZmZmZikNCiAgICAgIHsNCiAgICAgICAgZC0+ZXggPSBOVUxMOw0KICAgICAgICBkLT5zdHls ZSA9IGdldF8zMiAoYmlnX2VuZGlhbiwgZGF0YSk7DQotLS0gNDcwLDQ3NiAtLS0tDQogICAg ZCA9IChzdHJ1Y3QgZGlhbG9nICopIHJlc19hbGxvYyAoc2l6ZW9mICpkKTsNCiAgDQogICAg dmVyc2lvbiA9IGdldF8xNiAoYmlnX2VuZGlhbiwgZGF0YSk7DQohICAgaWYgKHZlcnNpb24g IT0gMSkNCiAgICAgIHsNCiAgICAgICAgZC0+ZXggPSBOVUxMOw0KICAgICAgICBkLT5zdHls ZSA9IGdldF8zMiAoYmlnX2VuZGlhbiwgZGF0YSk7DQoqKioqKioqKioqKioqKiogYmluX3Rv X3Jlc19kaWFsb2cgKGRhdGEsIGxlbmd0aCwgYmlnX2VuZA0KKioqIDQ4Miw0ODggKioqKg0K ICAgICAgICBpbnQgc2lnbmF0dXJlOw0KICANCiAgICAgICAgc2lnbmF0dXJlID0gZ2V0XzE2 IChiaWdfZW5kaWFuLCBkYXRhICsgMik7DQohICAgICAgIGlmIChzaWduYXR1cmUgIT0gMSkN CiAgCWZhdGFsICgidW5leHBlY3RlZCBkaWFsb2cgc2lnbmF0dXJlICVkIiwgc2lnbmF0dXJl KTsNCiAgDQogICAgICAgIGQtPmV4ID0gKHN0cnVjdCBkaWFsb2dfZXggKikgcmVzX2FsbG9j IChzaXplb2YgKHN0cnVjdCBkaWFsb2dfZXgpKTsNCi0tLSA0ODIsNDg4IC0tLS0NCiAgICAg ICAgaW50IHNpZ25hdHVyZTsNCiAgDQogICAgICAgIHNpZ25hdHVyZSA9IGdldF8xNiAoYmln X2VuZGlhbiwgZGF0YSArIDIpOw0KISAgICAgICBpZiAoc2lnbmF0dXJlICE9IDB4ZmZmZikN CiAgCWZhdGFsICgidW5leHBlY3RlZCBkaWFsb2cgc2lnbmF0dXJlICVkIiwgc2lnbmF0dXJl KTsNCiAgDQogICAgICAgIGQtPmV4ID0gKHN0cnVjdCBkaWFsb2dfZXggKikgcmVzX2FsbG9j IChzaXplb2YgKHN0cnVjdCBkaWFsb2dfZXgpKTsNCioqKioqKioqKioqKioqKiBiaW5fdG9f cmVzX2RpYWxvZyAoZGF0YSwgbGVuZ3RoLCBiaWdfZW5kDQoqKiogNTcxLDU3NyAqKioqDQog IAkgICAgdG9vc21hbGwgKCJkaWFsb2dleCBjb250cm9sIik7DQogIAkgIGRjLT5oZWxwID0g Z2V0XzMyIChiaWdfZW5kaWFuLCBkYXRhICsgb2ZmKTsNCiAgCSAgZGMtPmV4c3R5bGUgPSBn ZXRfMzIgKGJpZ19lbmRpYW4sIGRhdGEgKyBvZmYgKyA0KTsNCiEgCSAgZGMtPnN0eWxlID0g Z2V0XzMyIChiaWdfZW5kaWFuLCBkYXRhICsgb2ZmICsgMTgpOw0KICAJICBvZmYgKz0gMTI7 DQogIAl9DQogIA0KLS0tIDU3MSw1NzcgLS0tLQ0KICAJICAgIHRvb3NtYWxsICgiZGlhbG9n ZXggY29udHJvbCIpOw0KICAJICBkYy0+aGVscCA9IGdldF8zMiAoYmlnX2VuZGlhbiwgZGF0 YSArIG9mZik7DQogIAkgIGRjLT5leHN0eWxlID0gZ2V0XzMyIChiaWdfZW5kaWFuLCBkYXRh ICsgb2ZmICsgNCk7DQohIAkgIGRjLT5zdHlsZSA9IGdldF8zMiAoYmlnX2VuZGlhbiwgZGF0 YSArIG9mZiArIDgpOw0KICAJICBvZmYgKz0gMTI7DQogIAl9DQogIA0KKioqKioqKioqKioq KioqIGJpbl90b19yZXNfZGlhbG9nIChkYXRhLCBsZW5ndGgsIGJpZ19lbmQNCioqKiA1ODIs NTkwICoqKioNCiAgICAgICAgZGMtPnkgPSBnZXRfMTYgKGJpZ19lbmRpYW4sIGRhdGEgKyBv ZmYgKyAyKTsNCiAgICAgICAgZGMtPndpZHRoID0gZ2V0XzE2IChiaWdfZW5kaWFuLCBkYXRh ICsgb2ZmICsgNCk7DQogICAgICAgIGRjLT5oZWlnaHQgPSBnZXRfMTYgKGJpZ19lbmRpYW4s IGRhdGEgKyBvZmYgKyA2KTsNCi0gICAgICAgZGMtPmlkID0gZ2V0XzE2IChiaWdfZW5kaWFu LCBkYXRhICsgb2ZmICsgOCk7DQogIA0KISAgICAgICBvZmYgKz0gMTA7DQogIA0KICAgICAg ICBzdWJsZW4gPSBnZXRfcmVzaWQgKCZkYy0+Y2xhc3MsIGRhdGEgKyBvZmYsIGxlbmd0aCAt IG9mZiwgYmlnX2VuZGlhbik7DQogICAgICAgIG9mZiArPSBzdWJsZW47DQotLS0gNTgyLDU5 NCAtLS0tDQogICAgICAgIGRjLT55ID0gZ2V0XzE2IChiaWdfZW5kaWFuLCBkYXRhICsgb2Zm ICsgMik7DQogICAgICAgIGRjLT53aWR0aCA9IGdldF8xNiAoYmlnX2VuZGlhbiwgZGF0YSAr IG9mZiArIDQpOw0KICAgICAgICBkYy0+aGVpZ2h0ID0gZ2V0XzE2IChiaWdfZW5kaWFuLCBk YXRhICsgb2ZmICsgNik7DQogIA0KISAgICAgICBpZiAoZC0+ZXggIT0gTlVMTCkNCiEgICAg ICAgICBkYy0+aWQgPSBnZXRfMzIgKGJpZ19lbmRpYW4sIGRhdGEgKyBvZmYgKyA4KTsNCiEg ICAgICAgZWxzZQ0KISAgICAgICAgIGRjLT5pZCA9IGdldF8xNiAoYmlnX2VuZGlhbiwgZGF0 YSArIG9mZiArIDgpOw0KISANCiEgICAgICAgb2ZmICs9IDEwICsgKGQtPmV4ICE9IE5VTEwg PyAyIDogMCk7DQogIA0KICAgICAgICBzdWJsZW4gPSBnZXRfcmVzaWQgKCZkYy0+Y2xhc3Ms IGRhdGEgKyBvZmYsIGxlbmd0aCAtIG9mZiwgYmlnX2VuZGlhbik7DQogICAgICAgIG9mZiAr PSBzdWJsZW47DQoqKioqKioqKioqKioqKiogcmVzX3RvX2Jpbl9kaWFsb2cgKGRpYWxvZywg YmlnX2VuZGlhbikNCioqKiAxNTY2LDE1NzMgKioqKg0KICAgICAgfQ0KICAgIGVsc2UNCiAg ICAgIHsNCiEgICAgICAgcHV0XzE2IChiaWdfZW5kaWFuLCAweGZmZmYsIGZpcnN0LT5kYXRh KTsNCiEgICAgICAgcHV0XzE2IChiaWdfZW5kaWFuLCAxLCBmaXJzdC0+ZGF0YSArIDIpOw0K ICAgICAgICBpZiAoZGlhbG9nLT5leCA9PSBOVUxMKQ0KICAJcHV0XzMyIChiaWdfZW5kaWFu LCAwLCBmaXJzdC0+ZGF0YSArIDQpOw0KICAgICAgICBlbHNlDQotLS0gMTU3MCwxNTc4IC0t LS0NCiAgICAgIH0NCiAgICBlbHNlDQogICAgICB7DQohICAgICAgIHB1dF8xNiAoYmlnX2Vu ZGlhbiwgMSwgZmlyc3QtPmRhdGEpOw0KISAgICAgICBwdXRfMTYgKGJpZ19lbmRpYW4sIDB4 ZmZmZiwgZmlyc3QtPmRhdGEgKyAyKTsNCiEgDQogICAgICAgIGlmIChkaWFsb2ctPmV4ID09 IE5VTEwpDQogIAlwdXRfMzIgKGJpZ19lbmRpYW4sIDAsIGZpcnN0LT5kYXRhICsgNCk7DQog ICAgICAgIGVsc2UNCioqKioqKioqKioqKioqKiByZXNfdG9fYmluX2RpYWxvZyAoZGlhbG9n LCBiaWdfZW5kaWFuKQ0KKioqIDE2NDEsMTY0NyAqKioqDQogICAgICAgIGR3b3JkX2FsaWdu X2JpbiAoJnBwLCAmbGVuZ3RoKTsNCiAgDQogICAgICAgIGQgPSAoc3RydWN0IGJpbmRhdGEg KikgcmVzd3JfYWxsb2MgKHNpemVvZiAqZCk7DQohICAgICAgIGQtPmxlbmd0aCA9IGRpYWxv Z2V4ID8gMjIgOiAxODsNCiAgICAgICAgZC0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIHJl c3dyX2FsbG9jIChkLT5sZW5ndGgpOw0KICANCiAgICAgICAgbGVuZ3RoICs9IGQtPmxlbmd0 aDsNCi0tLSAxNjQ2LDE2NTIgLS0tLQ0KICAgICAgICBkd29yZF9hbGlnbl9iaW4gKCZwcCwg Jmxlbmd0aCk7DQogIA0KICAgICAgICBkID0gKHN0cnVjdCBiaW5kYXRhICopIHJlc3dyX2Fs bG9jIChzaXplb2YgKmQpOw0KISAgICAgICBkLT5sZW5ndGggPSBkaWFsb2dleCA/IDI0IDog MTg7DQogICAgICAgIGQtPmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSByZXN3cl9hbGxvYyAo ZC0+bGVuZ3RoKTsNCiAgDQogICAgICAgIGxlbmd0aCArPSBkLT5sZW5ndGg7DQoqKioqKioq KioqKioqKiogcmVzX3RvX2Jpbl9kaWFsb2cgKGRpYWxvZywgYmlnX2VuZGlhbikNCioqKiAx NjY0LDE2NzAgKioqKg0KICAgICAgICBwdXRfMTYgKGJpZ19lbmRpYW4sIGRjLT55LCBkLT5k YXRhICsgZGNvZmYgKyAyKTsNCiAgICAgICAgcHV0XzE2IChiaWdfZW5kaWFuLCBkYy0+d2lk dGgsIGQtPmRhdGEgKyBkY29mZiArIDQpOw0KICAgICAgICBwdXRfMTYgKGJpZ19lbmRpYW4s IGRjLT5oZWlnaHQsIGQtPmRhdGEgKyBkY29mZiArIDYpOw0KISAgICAgICBwdXRfMTYgKGJp Z19lbmRpYW4sIGRjLT5pZCwgZC0+ZGF0YSArIGRjb2ZmICsgOCk7DQogIA0KICAgICAgICAq cHAgPSBkOw0KICAgICAgICBwcCA9ICZkLT5uZXh0Ow0KLS0tIDE2NjksMTY3OSAtLS0tDQog ICAgICAgIHB1dF8xNiAoYmlnX2VuZGlhbiwgZGMtPnksIGQtPmRhdGEgKyBkY29mZiArIDIp Ow0KICAgICAgICBwdXRfMTYgKGJpZ19lbmRpYW4sIGRjLT53aWR0aCwgZC0+ZGF0YSArIGRj b2ZmICsgNCk7DQogICAgICAgIHB1dF8xNiAoYmlnX2VuZGlhbiwgZGMtPmhlaWdodCwgZC0+ ZGF0YSArIGRjb2ZmICsgNik7DQohIA0KISAgICAgICBpZiAoZGlhbG9nZXgpDQohICAgICAg ICAgcHV0XzMyIChiaWdfZW5kaWFuLCBkYy0+aWQsIGQtPmRhdGEgKyBkY29mZiArIDgpOw0K ISAgICAgICBlbHNlDQohICAgICAgICAgcHV0XzE2IChiaWdfZW5kaWFuLCBkYy0+aWQsIGQt PmRhdGEgKyBkY29mZiArIDgpOw0KICANCiAgICAgICAgKnBwID0gZDsNCiAgICAgICAgcHAg PSAmZC0+bmV4dDsNCioqKioqKioqKioqKioqKiByZXNfdG9fYmluX2RpYWxvZyAoZGlhbG9n LCBiaWdfZW5kaWFuKQ0KKioqIDE3MDgsMTcxNCAqKioqDQogIAkgIGxlbmd0aCArPSBzdWJs ZW47DQogIAl9DQogICAgICB9DQotIA0KICAgIHB1dF8xNiAoYmlnX2VuZGlhbiwgYywgZmly c3QtPmRhdGEgKyBvZmYpOw0KICANCiAgICByZXR1cm4gZmlyc3Q7DQotLS0gMTcxNywxNzIy IC0tLS0NCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZXNyYy5kaWZmAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTAwNjQ0IAAgICA3NjQgACAgICAgMCAA ICAgICAgIDIyMjYgIDY1NjYxMDYxNDYgIDEyMDE1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAYW5vcmxhbmQAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAByb290AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAACoqKiByZXNyYy5jLm9yaWcJTW9uIEF1ZyAxNyAyMTo0NTozMCAxOTk4DQot LS0gcmVzcmMuYwlNb24gQXVnIDE3IDIxOjQ1OjU0IDE5OTgNCioqKioqKioqKioqKioqKiB3 cml0ZV9yY19kaWFsb2dfY29udHJvbCAoZSwgY29udHJvbCkNCioqKiAxNzg3LDE3OTQgKioq Kg0KICAJCXx8IGNpLT5zdHlsZSA9PSAoY29udHJvbC0+c3R5bGUgJiAweGZmKSkpDQogIAkg IGJyZWFrOw0KICAgICAgfQ0KISANCiEgICBpZiAoY2ktPm5hbWUgIT0gTlVMTCkNCiAgICAg IGZwcmludGYgKGUsICIlcyIsIGNpLT5uYW1lKTsNCiAgICBlbHNlDQogICAgICBmcHJpbnRm IChlLCAiQ09OVFJPTCIpOw0KLS0tIDE3ODcsMTc5NSAtLS0tDQogIAkJfHwgY2ktPnN0eWxl ID09IChjb250cm9sLT5zdHlsZSAmIDB4ZmYpKSkNCiAgCSAgYnJlYWs7DQogICAgICB9DQoh ICAgaWYgKGNpID09IE5VTEwpDQohICAgICBmcHJpbnRmIChlLCAiQ09OVFJPTCIpOw0KISAg IGVsc2UgaWYgKGNpLT5uYW1lICE9IE5VTEwpDQogICAgICBmcHJpbnRmIChlLCAiJXMiLCBj aS0+bmFtZSk7DQogICAgZWxzZQ0KICAgICAgZnByaW50ZiAoZSwgIkNPTlRST0wiKTsNCioq KioqKioqKioqKioqKiB3cml0ZV9yY19kaWFsb2dfY29udHJvbCAoZSwgY29udHJvbCkNCioq KiAxODAyLDE4MTAgKioqKg0KICANCiAgICBmcHJpbnRmIChlLCAiICVkLCAiLCBjb250cm9s LT5pZCk7DQogIA0KISAgIGlmIChjaS0+bmFtZSA9PSBOVUxMKQ0KICAgICAgew0KICAgICAg ICByZXNfaWRfcHJpbnQgKGUsIGNvbnRyb2wtPmNsYXNzLCAwKTsNCiAgICAgICAgZnByaW50 ZiAoZSwgIiwgMHglbHgsICIsIGNvbnRyb2wtPnN0eWxlKTsNCiAgICAgIH0NCiAgDQotLS0g MTgwMywxODE1IC0tLS0NCiAgDQogICAgZnByaW50ZiAoZSwgIiAlZCwgIiwgY29udHJvbC0+ aWQpOw0KICANCiEgICBpZiAoY2kgPT0gTlVMTCkNCiAgICAgIHsNCisgICAgICAgaWYgKGNv bnRyb2wtPmNsYXNzLm5hbWVkKQ0KKyAJZnByaW50ZiAoZSwgIlwiIik7DQogICAgICAgIHJl c19pZF9wcmludCAoZSwgY29udHJvbC0+Y2xhc3MsIDApOw0KKyAgICAgICBpZiAoY29udHJv bC0+Y2xhc3MubmFtZWQpDQorIAlmcHJpbnRmIChlLCAiXCIiKTsNCiAgICAgICAgZnByaW50 ZiAoZSwgIiwgMHglbHgsICIsIGNvbnRyb2wtPnN0eWxlKTsNCiAgICAgIH0NCiAgDQoAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAA= --------------807260DCEA9CF44A8F09D6B1--