X-Spam-Check-By: sourceware.org Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C7B9A8.60375B64" Subject: possible compiler optimization error Date: Thu, 28 Jun 2007 13:18:40 -0400 Message-ID: From: "Frederich, Eric P21322" To: X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com ------_=_NextPart_001_01C7B9A8.60375B64 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable On Windows I have found that a program I wrote fails when compiled with -O1 and -O2 but runs fine with -O0. The program behaves correctly on Linux and Solaris with or without optimizations. The place it starts behaving differently on Windows is where two numbers (which should be equal) are failing a greater than or equal to (>=3D) if statement, but on Solaris and Linux it passes. My first thought was that this had to do with floating point representation differences on the systems but it doesn't appear to be. It appears to be a compiler error. The first thing I did was start to print out an equality matrix of the double array I was using. I was expecting to find a difference in the equality matrices between Linux/Solaris and Windows. There was none. This meant that two numbers which pass an equality (=3D=3D) check (for the purposes of printing the matrix), later failed on a greater than or equal to (>=3D) check which actually affected program flow. I then created a corresponding else statement and did some more checking of the two numbers and they then pass a greater than or equal to (>=3D) check. So, in summary two doubles pass on =3D=3D, then fail on >=3D, then pass =3D= =3D, >=3D, <=3D while never being modified. Does this imply compiler error? I have attached two files example.c and example.out which are just excerpts from the code and output. In example.c I have two versions of the function where the problem is happening. One is the original and one has all of the debugging fprintf statements that produced the example.out. Both versions have the same bad behavior, I just wanted to include the clean one so you can see what it is doing. The function in example.c that is failing is called combineOverlaps which just takes line sections (on a circle) and combines them if they overlap into a bigger section. A section is a simple structure with a double "from" and a double "to". The equality matrix for the failing iteration (Lines 214 to 223 from example.out) is... 0 1 2 3 ftftftft 0f=3D....... t.=3D=3D.=3D... 1f.=3D=3D.=3D... t...=3D.=3D=3D. 2f.=3D=3D.=3D... t...=3D.=3D=3D. 3f...=3D.=3D=3D. t.......=3D This shows that section[0]'s "to" is equal to section[1]'s "from" It actually passed twice since I'm printing the full matrix. Lines 228 to 230 of example.out are being printed from else clause (lines 129 to 136 in example.c) after it fails the >=3D check and shows that afterwards it passes all those other equality checks. Here is a summary of where it works and where it doesn't. OS Env GCC Options Pass/Fail Windows Msys/mingw 3.4.5 -O2 Fail Windows Cygwin 3.4.4 -mno-cygwin -02 Fail Windows Cygwin 3.4.4 -02 Fail Windows Cygwin 4.1.1 -02 Fail Windows Cygwin 3.4.4 -mno-cygwin -00 Pass Windows Cygwin 3.4.4 -00 Pass Windows Cygwin 4.1.1 -00 Pass Linux 4.1.1 -02 Pass Linux 3.4.6 -O2 Pass Solaris 4.1.1 -02 Pass It fails on Windows with any optimization in both 3.4.4 and 4.1.1, so it is not just happening on one particular version of the compiler. If a program compiled with -O0 has different output than the same program compiled with -O1 or -O2, is that defiantly a compile error? I do realize that it could be a combination of compiler optimizations along with the platform's representation of floating point numbers, but isn't that something the compiler should be aware of be careful about? Any insight is appreciated. Thanks, ~Eric ------_=_NextPart_001_01C7B9A8.60375B64 Content-Type: application/octet-stream; name="example.c" Content-Transfer-Encoding: base64 Content-Description: example.c Content-Disposition: attachment; filename="example.c" Ly8gcmVsZXZhbnQgc3RydWN0dXJlcwoKLy8gIHNlY3Rpb25zIGV4aXN0IGZy b20gImZyb20iIHRvICJ0byIgaW4gYSBDb3VudGVyLUNsb2Nrd2lzZSBtYW5u ZXIKdHlwZWRlZiBzdHJ1Y3Qgc2VjdGlvbnsKICAgIGRvdWJsZSBmcm9tOyAg ICAgICAgICAgICAgICAgICAgICAgIC8vICBzdGFydCBhbmdsZQogICAgZG91 YmxlIHRvOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGVuZCAgIGFu Z2xlCn0gc2VjdGlvbjsKCi8vIHJlbGV2YW50IGZ1bmN0aW9ucwoKLy8gcmV0 dXJucyBhbmd1bGFyIGRpc3RhbmNlIGZyb20gYTEgY291bnRlci1jbG9ja3dp c2UgdG8gYTIKZG91YmxlIGdldERpc3RhbmNlKGRvdWJsZSBhMSwgZG91Ymxl IGEyKXsKICAgIHJldHVybiBnZXRBbmdsZShnZXRBbmdsZShhMikgLSBnZXRB bmdsZShhMSkpOwp9CgovLyBlbnN1cmVzIGFuZ2xlIGlzIGJldHdlZW4gMCBh bmQgMzYwCmRvdWJsZSBnZXRBbmdsZShkb3VibGUgYSl7CiAgICB3aGlsZShh IDwgMC4wKSAgICAgIGEgKz0gMzYwLjA7CiAgICB3aGlsZShhID49IDM2MC4w KSAgICBhIC09IDM2MC4wOwogICAgcmV0dXJuIGE7Cn0KCi8vIHByb2JsZW0g ZnVuY3Rpb24Kdm9pZCBjb21iaW5lT3ZlcmxhcHMoc2VjdGlvbiogc2VjdGlv bnMsIGludCAqbnVtU2VjdGlvbnMpewoKICAgIGludCBzd2FwcGVkLGksajsK ICAgIAogICAgLy8gY29tYmluZSBzZWN0aW9ucyB0aGF0IG92ZXJsYXAKICAg IHN3YXBwZWQgPSAxOwogICAgd2hpbGUoc3dhcHBlZCl7CiAgICAgICAgc3dh cHBlZCA9IDA7CiAgICAgICAgZm9yKGkgPSAwIDsgKGkgPCAqbnVtU2VjdGlv bnMgJiYgc3dhcHBlZCA9PSAwKTsgaSsrKXsKICAgICAgICAgICAgZm9yKGog PSAwIDsgKGogPCAqbnVtU2VjdGlvbnMgJiYgc3dhcHBlZCA9PSAwKTsgaisr KXsKICAgICAgICAgICAgICAgIGlmKGkgIT0gail7CiAgICAgICAgICAgICAg ICAgICAgaWYoZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbaV0uZnJvbSxzZWN0aW9u c1tpXS50bykKICAgICAgICAgICAgICAgICAgICAgICA+PQogICAgICAgICAg ICAgICAgICAgICAgIGdldERpc3RhbmNlKHNlY3Rpb25zW2ldLmZyb20sc2Vj dGlvbnNbal0uZnJvbSkKICAgICAgICAgICAgICAgICAgICAgICl7CiAgICAg ICAgICAgICAgICAgICAgICAgIC8vIGNvbWJpbmUgdGhlIHNlY3Rpb25zCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmKGdldERpc3RhbmNlKHNlY3Rpb25z W2ldLmZyb20sIHNlY3Rpb25zW2ldLnRvKQogICAgICAgICAgICAgICAgICAg ICAgICAgICA8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldERpc3Rh bmNlKHNlY3Rpb25zW2ldLmZyb20sIHNlY3Rpb25zW2pdLnRvKSl7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbnNbaV0udG8gPSBz ZWN0aW9uc1tqXS50bzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgcmlkIG9mIGoKICAgICAg ICAgICAgICAgICAgICAgICAgc2VjdGlvbnNbal0gPSBzZWN0aW9uc1sqbnVt U2VjdGlvbnMgLSAxXTsKICAgICAgICAgICAgICAgICAgICAgICAgKm51bVNl Y3Rpb25zID0gKm51bVNlY3Rpb25zIC0gMTsKICAgICAgICAgICAgICAgICAg ICAgICAgc3dhcHBlZCA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9 CgovLyBwcm9ibGVtIGZ1bmN0aW9uIG1vZGlmaWVkIGZvciBkZWJ1Z2dpbmcK Ly8gYmVzaWRlcyB0aGUgYWRkZWQgZnByaW50ZidzIEkgYWxzbyBjaGFuZ2Vk IGl0IHNvCi8vIHRoYXQgdGhlIHR3byBvcGVyYW5kcyBvZiB0aGUgPj0gdGhh dCBpcyBmYWlsaW5nCi8vIGFyZSBiZWluZyBzdG9yZWQgaW4gZG91YmxlcyBz byB0aGF0IEkgY2FuIHByaW50Ci8vIHRoZW0gbGF0ZXIgd2l0aG91dCByZS1l dmFsdWF0aW5nIHRoZW0uCnZvaWQgY29tYmluZU92ZXJsYXBzKHNlY3Rpb24q IHNlY3Rpb25zLCBpbnQgKm51bVNlY3Rpb25zKXsKCiAgICBpbnQgc3dhcHBl ZCxpLGo7CiAgICBkb3VibGUgZHRtcGEsIGR0bXBiLGR0bXBjOwogICAgCiAg ICBmcHJpbnRmKHN0ZGVyciwiXG4iKTsKICAgIGZvcihpID0gMCA7IGkgPCAq bnVtU2VjdGlvbnM7IGkrKyl7CiAgICAgICAgZnByaW50ZihzdGRlcnIsIlNl Y3Rpb24gJTJkIDogJTEyZiAlMTJmXG4iLGksc2VjdGlvbnNbaV0uZnJvbSxz ZWN0aW9uc1tpXS50byk7CiAgICB9CgogICAgLy8gY29tYmluZSBzZWN0aW9u cyB0aGF0IG92ZXJsYXAKICAgIHN3YXBwZWQgPSAxOwogICAgd2hpbGUoc3dh cHBlZCl7CiAgICAgICAgZnByaW50ZihzdGRlcnIsInN3YXBwZWQgaXMgdHJ1 ZVxuIik7CiAgICAgICAgZnByaW50ZihzdGRlcnIsIkVxdWFsaXR5IG1hdHJp eC4uLlxuIik7CiAgICAgICAgLy8gaG9yaXpvbnRhbCBoZWFkZXIKICAgICAg ICBmcHJpbnRmKHN0ZGVyciwiICAiKTsKICAgICAgICBmb3IoaSA9IDAgOyBp IDwgKm51bVNlY3Rpb25zOyBpKyspewogICAgICAgICAgICBmcHJpbnRmKHN0 ZGVyciwiJTJkIixpKTsKICAgICAgICB9CiAgICAgICAgZnByaW50ZihzdGRl cnIsIlxuICAgIik7CiAgICAgICAgZm9yKGkgPSAwIDsgaSA8ICpudW1TZWN0 aW9uczsgaSsrKXsKICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsImZ0Iik7 CiAgICAgICAgfQogICAgICAgIGZwcmludGYoc3RkZXJyLCJcbiIpOwogICAg ICAgIAogICAgICAgIC8vIGJvZHkKICAgICAgICBmb3IoaSA9IDAgOyBpIDwg Km51bVNlY3Rpb25zOyBpKyspewogICAgICAgICAgICBmcHJpbnRmKHN0ZGVy ciwiJTJkZiIsaSk7CiAgICAgICAgICAgIGZvcihqID0gMCA7IGogPCAqbnVt U2VjdGlvbnM7IGorKyl7CiAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy ciwiJXMiLHNlY3Rpb25zW2ldLmZyb20gPT0gc2VjdGlvbnNbal0uZnJvbSA/ ICI9IiA6ICIuIik7CiAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwi JXMiLHNlY3Rpb25zW2ldLmZyb20gPT0gc2VjdGlvbnNbal0udG8gICA/ICI9 IiA6ICIuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnByaW50Zihz dGRlcnIsIlxuIik7CiAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCIgIHQi KTsKICAgICAgICAgICAgZm9yKGogPSAwIDsgaiA8ICpudW1TZWN0aW9uczsg aisrKXsKICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCIlcyIsc2Vj dGlvbnNbaV0udG8gICA9PSBzZWN0aW9uc1tqXS5mcm9tID8gIj0iIDogIi4i KTsKICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCIlcyIsc2VjdGlv bnNbaV0udG8gICA9PSBzZWN0aW9uc1tqXS50byAgID8gIj0iIDogIi4iKTsK ICAgICAgICAgICAgfQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwiXG4i KTsKICAgICAgICB9CiAgICAgICAgc3dhcHBlZCA9IDA7CiAgICAgICAgZm9y KGkgPSAwIDsgKGkgPCAqbnVtU2VjdGlvbnMgJiYgc3dhcHBlZCA9PSAwKTsg aSsrKXsKICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsImkgOiAlZFxuIixp KTsKICAgICAgICAgICAgZm9yKGogPSAwIDsgKGogPCAqbnVtU2VjdGlvbnMg JiYgc3dhcHBlZCA9PSAwKTsgaisrKXsKICAgICAgICAgICAgICAgIGZwcmlu dGYoc3RkZXJyLCJqIDogJWRcbiIsaik7CiAgICAgICAgICAgICAgICBpZihp ICE9IGopewogICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCIl ZCAhPSAlZFxuIixpLGopOwogICAgICAgICAgICAgICAgICAgIGR0bXBhID0g Z2V0RGlzdGFuY2Uoc2VjdGlvbnNbaV0uZnJvbSxzZWN0aW9uc1tpXS50byk7 CiAgICAgICAgICAgICAgICAgICAgZHRtcGIgPSBnZXREaXN0YW5jZShzZWN0 aW9uc1tpXS5mcm9tLHNlY3Rpb25zW2pdLmZyb20pOwogICAgICAgICAgICAg ICAgICAgIGlmKGR0bXBhCiAgICAgICAgICAgICAgICAgICAgICAgPj0KICAg ICAgICAgICAgICAgICAgICAgICBkdG1wYgogICAgICAgICAgICAgICAgICAg ICAgKXsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs ImdldERpc3RhbmNlKHNlY3Rpb25zWyVkXS5mcm9tICglMjAuMTVmKSxzZWN0 aW9uc1slZF0udG8gICAoJTIwLjE1ZikpIC4uLiAoJTI1LjIwZilcbiIsaSxz ZWN0aW9uc1tpXS5mcm9tLGksc2VjdGlvbnNbaV0udG8gICxkdG1wYSk7CiAg ICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCI+PVxuIik7 CiAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJnZXRE aXN0YW5jZShzZWN0aW9uc1slZF0uZnJvbSAoJTIwLjE1Ziksc2VjdGlvbnNb JWRdLmZyb20gKCUyMC4xNWYpKSAuLi4gKCUyNS4yMGYpXG4iLGksc2VjdGlv bnNbaV0uZnJvbSxqLHNlY3Rpb25zW2pdLmZyb20sZHRtcGIpOwogICAgICAg ICAgICAgICAgICAgICAgICAvLyBjb21iaW5lIHRoZSBzZWN0aW9ucwogICAg ICAgICAgICAgICAgICAgICAgICBpZihnZXREaXN0YW5jZShzZWN0aW9uc1tp XS5mcm9tLCBzZWN0aW9uc1tpXS50bykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgPAogICAgICAgICAgICAgICAgICAgICAgICAgICBnZXREaXN0YW5j ZShzZWN0aW9uc1tpXS5mcm9tLCBzZWN0aW9uc1tqXS50bykpewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zW2ldLnRvID0gc2Vj dGlvbnNbal0udG87CiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICAgICAgICAgICAgLy8gZ2V0IHJpZCBvZiBqCiAgICAgICAg ICAgICAgICAgICAgICAgIHNlY3Rpb25zW2pdID0gc2VjdGlvbnNbKm51bVNl Y3Rpb25zIC0gMV07CiAgICAgICAgICAgICAgICAgICAgICAgICpudW1TZWN0 aW9ucyA9ICpudW1TZWN0aW9ucyAtIDE7CiAgICAgICAgICAgICAgICAgICAg ICAgIHN3YXBwZWQgPSAxOwogICAgICAgICAgICAgICAgICAgIH1lbHNlewog ICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwiZ2V0RGlz dGFuY2Uoc2VjdGlvbnNbJWRdLmZyb20gKCUyMC4xNWYpLHNlY3Rpb25zWyVk XS50byAgICglMjAuMTVmKSkgLi4uICglMjUuMjBmKVxuIixpLHNlY3Rpb25z W2ldLmZyb20saSxzZWN0aW9uc1tpXS50byAgLGR0bXBhKTsKICAgICAgICAg ICAgICAgICAgICAgICAgaWYoZHRtcGEgPCAgZHRtcGIpIGZwcmludGYoc3Rk ZXJyLCIoPCApICIpOwogICAgICAgICAgICAgICAgICAgICAgICBpZihkdG1w YSA8PSBkdG1wYikgZnByaW50ZihzdGRlcnIsIig8PSkgIik7CiAgICAgICAg ICAgICAgICAgICAgICAgIGlmKGR0bXBhID4gIGR0bXBiKSBmcHJpbnRmKHN0 ZGVyciwiKD4gKSAiKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoZHRt cGEgPj0gZHRtcGIpIGZwcmludGYoc3RkZXJyLCIoVUggT0gpICIpOwogICAg ICAgICAgICAgICAgICAgICAgICBpZihkdG1wYSA9PSBkdG1wYikgZnByaW50 ZihzdGRlcnIsIig9PSkgIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGZw cmludGYoc3RkZXJyLCI8XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg ZnByaW50ZihzdGRlcnIsImdldERpc3RhbmNlKHNlY3Rpb25zWyVkXS5mcm9t ICglMjAuMTVmKSxzZWN0aW9uc1slZF0uZnJvbSAoJTIwLjE1ZikpIC4uLiAo JTI1LjIwZilcbiIsaSxzZWN0aW9uc1tpXS5mcm9tLGosc2VjdGlvbnNbal0u ZnJvbSxkdG1wYik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg== ------_=_NextPart_001_01C7B9A8.60375B64 Content-Type: application/octet-stream; name="example.out" Content-Transfer-Encoding: base64 Content-Description: example.out Content-Disposition: attachment; filename="example.out" U2VjdGlvbiAgMCA6ICAgMTA2LjUyMDY5MSAgIDIyMi43NzA2OTEKU2VjdGlv biAgMSA6ICAgMjIyLjc3MDY5MSAgIDM1Ny4yMDAwMDAKU2VjdGlvbiAgMiA6 ICAgMjg2LjUyMDY5MSAgICAgNi4yODA5NzkKU2VjdGlvbiAgMyA6ICAgMzU3 LjIwMDAwMCAgICAxMS4wODMzNzIKU2VjdGlvbiAgNCA6ICAgIDI1Ljc4MTcw MiAgICA0Mi43NzA2OTEKU2VjdGlvbiAgNSA6ICAgIDExLjA4MzM3MiAgICAy MS4yODA5NzkKU2VjdGlvbiAgNiA6ICAgICA2LjI4MDk3OSAgICAxMS4wODMz NzIKU2VjdGlvbiAgNyA6ICAgICA2LjI4MDk3OSAgICAxMS4wODMzNzIKU2Vj dGlvbiAgOCA6ICAgIDIxLjI4MDk3OSAgICAyNS43ODE3MDIKU2VjdGlvbiAg OSA6ICAgIDIxLjI4MDk3OSAgICAyNS43ODE3MDIKc3dhcHBlZCBpcyB0cnVl CkVxdWFsaXR5IG1hdHJpeC4uLgogICAwIDEgMiAzIDQgNSA2IDcgOCA5CiAg IGZ0ZnRmdGZ0ZnRmdGZ0ZnRmdGZ0CiAwZj0uLi4uLi4uLi4uLi4uLi4uLi4u CiAgdC49PS4uLi4uLi4uLi4uLi4uLi4uCiAxZi49PS4uLi4uLi4uLi4uLi4u Li4uCiAgdC4uLj0uLj0uLi4uLi4uLi4uLi4uCiAyZi4uLi49Li4uLi4uLi4u Li4uLi4uCiAgdC4uLi4uPS4uLi4uLj0uPS4uLi4uCiAzZi4uLj0uLj0uLi4u Li4uLi4uLi4uCiAgdC4uLi4uLi49Li49Li49Lj0uLi4uCiA0Zi4uLi4uLi4u PS4uLi4uLi4uPS49CiAgdC4uLi4uLi4uLj0uLi4uLi4uLi4uCiA1Zi4uLi4u Li49Li49Li49Lj0uLi4uCiAgdC4uLi4uLi4uLi4uPS4uLi49Lj0uCiA2Zi4u Li4uPS4uLi4uLj0uPS4uLi4uCiAgdC4uLi4uLi49Li49Li49Lj0uLi4uCiA3 Zi4uLi4uPS4uLi4uLj0uPS4uLi4uCiAgdC4uLi4uLi49Li49Li49Lj0uLi4u CiA4Zi4uLi4uLi4uLi4uPS4uLi49Lj0uCiAgdC4uLi4uLi4uPS4uLi4uLi4u PS49CiA5Zi4uLi4uLi4uLi4uPS4uLi49Lj0uCiAgdC4uLi4uLi4uPS4uLi4u Li4uPS49CmkgOiAwCmogOiAwCmogOiAxCjAgIT0gMQpnZXREaXN0YW5jZShz ZWN0aW9uc1swXS5mcm9tICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlv bnNbMF0udG8gICAoIDIyMi43NzA2OTA5MTk5OTk5OTMpKSAuLi4gKCAxMTYu MjUwMDAwMDAwMDAwMDAwMDAwMDApCj49CmdldERpc3RhbmNlKHNlY3Rpb25z WzBdLmZyb20gKCAxMDYuNTIwNjkwOTE5OTk5OTkzKSxzZWN0aW9uc1sxXS5m cm9tICggMjIyLjc3MDY5MDkxOTk5OTk5MykpIC4uLiAoIDExNi4yNTAwMDAw MDAwMDAwMDAwMDAwMCkKc3dhcHBlZCBpcyB0cnVlCkVxdWFsaXR5IG1hdHJp eC4uLgogICAwIDEgMiAzIDQgNSA2IDcgOAogICBmdGZ0ZnRmdGZ0ZnRmdGZ0 ZnQKIDBmPS4uLi4uLi4uLi4uLi4uLi4uCiAgdC49Li4uLj0uLi4uLi4uLi4u LgogMWYuLj0uLi4uLi4uLj0uLi4uPS4KICB0Li4uPS4uLi49Li4uLi4uLi49 CiAyZi4uLi49Li4uLi4uLi4uLi4uLgogIHQuLi4uLj0uLi4uLi49Lj0uLi4K IDNmLj0uLi4uPS4uLi4uLi4uLi4uCiAgdC4uLi4uLi49Li49Li49Lj0uLgog NGYuLi49Li4uLj0uLi4uLi4uLj0KICB0Li4uLi4uLi4uPS4uLi4uLi4uCiA1 Zi4uLi4uLi49Li49Li49Lj0uLgogIHQuLj0uLi4uLi4uLj0uLi4uPS4KIDZm Li4uLi49Li4uLi4uPS49Li4uCiAgdC4uLi4uLi49Li49Li49Lj0uLgogN2Yu Li4uLj0uLi4uLi49Lj0uLi4KICB0Li4uLi4uLj0uLj0uLj0uPS4uCiA4Zi4u PS4uLi4uLi4uPS4uLi49LgogIHQuLi49Li4uLj0uLi4uLi4uLj0KaSA6IDAK aiA6IDAKaiA6IDEKMCAhPSAxCmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZy b20gKCAxMDYuNTIwNjkwOTE5OTk5OTkzKSxzZWN0aW9uc1swXS50byAgICgg MzU3LjE5OTk5OTk5OTk5OTk4OSkpIC4uLiAoIDI1MC42NzkzMDkwNzk5OTk5 OTU5MDE3NCkKKDwgKSAoPD0pIDwKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0u ZnJvbSAoIDEwNi41MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzFdLmZyb20g KCAgMjEuMjgwOTc4NzgxMTAzNTM1KSkgLi4uICggMjc0Ljc2MDI4Nzg2MTEw MzUwNjY1Njk1KQpqIDogMgowICE9IDIKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNb MF0uZnJvbSAoIDEwNi41MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzBdLnRv ICAgKCAzNTcuMTk5OTk5OTk5OTk5OTg5KSkgLi4uICggMjUwLjY3OTMwOTA3 OTk5OTk5NTkwMTc0KQo+PQpnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9t ICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMl0uZnJvbSAoIDI4 Ni41MjA2OTA5MTk5OTk5OTMpKSAuLi4gKCAxODAuMDAwMDAwMDAwMDAwMDAw MDAwMDApCnN3YXBwZWQgaXMgdHJ1ZQpFcXVhbGl0eSBtYXRyaXguLi4KICAg MCAxIDIgMyA0IDUgNiA3CiAgIGZ0ZnRmdGZ0ZnRmdGZ0ZnQKIDBmPS4uLi4u Li4uLi4uLi4uLgogIHQuPS4uLi4uLi4uLi49Lj0uCiAxZi4uPS49Li4uLi4u PS4uLi4KICB0Li4uPS49Li49Li4uLi4uLgogMmYuLj0uPS4uLi4uLj0uLi4u CiAgdC4uLj0uPS4uPS4uLi4uLi4KIDNmLi4uLi4uPS4uLi4uLi4uLgogIHQu Li4uLi4uPS4uPS4uPS49CiA0Zi4uLj0uPS4uPS4uLi4uLi4KICB0Li4uLi4u Li4uPS4uLi4uLgogNWYuLi4uLi4uPS4uPS4uPS49CiAgdC4uPS49Li4uLi4u PS4uLi4KIDZmLj0uLi4uLi4uLi4uPS49LgogIHQuLi4uLi4uPS4uPS4uPS49 CiA3Zi49Li4uLi4uLi4uLj0uPS4KICB0Li4uLi4uLj0uLj0uLj0uPQppIDog MApqIDogMApqIDogMQowICE9IDEKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0u ZnJvbSAoIDEwNi41MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzBdLnRvICAg KCAgIDYuMjgwOTc4NzgxMTAzNTU2KSkgLi4uICggMjU5Ljc2MDI4Nzg2MTEw MzU2MzUwMDM2KQooPCApICg8PSkgPApnZXREaXN0YW5jZShzZWN0aW9uc1sw XS5mcm9tICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMV0uZnJv bSAoICAyMS4yODA5Nzg3ODExMDM1MzUpKSAuLi4gKCAyNzQuNzYwMjg3ODYx MTAzNTA2NjU2OTUpCmogOiAyCjAgIT0gMgpnZXREaXN0YW5jZShzZWN0aW9u c1swXS5mcm9tICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMF0u dG8gICAoICAgNi4yODA5Nzg3ODExMDM1NTYpKSAuLi4gKCAyNTkuNzYwMjg3 ODYxMTAzNTYzNTAwMzYpCig8ICkgKDw9KSA8CmdldERpc3RhbmNlKHNlY3Rp b25zWzBdLmZyb20gKCAxMDYuNTIwNjkwOTE5OTk5OTkzKSxzZWN0aW9uc1sy XS5mcm9tICggIDIxLjI4MDk3ODc4MTEwMzUzNSkpIC4uLiAoIDI3NC43NjAy ODc4NjExMDM1MDY2NTY5NSkKaiA6IDMKMCAhPSAzCmdldERpc3RhbmNlKHNl Y3Rpb25zWzBdLmZyb20gKCAxMDYuNTIwNjkwOTE5OTk5OTkzKSxzZWN0aW9u c1swXS50byAgICggICA2LjI4MDk3ODc4MTEwMzU1NikpIC4uLiAoIDI1OS43 NjAyODc4NjExMDM1NjM1MDAzNikKPj0KZ2V0RGlzdGFuY2Uoc2VjdGlvbnNb MF0uZnJvbSAoIDEwNi41MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzNdLmZy b20gKCAzNTcuMTk5OTk5OTk5OTk5OTg5KSkgLi4uICggMjUwLjY3OTMwOTA3 OTk5OTk5NTkwMTc0KQpzd2FwcGVkIGlzIHRydWUKRXF1YWxpdHkgbWF0cml4 Li4uCiAgIDAgMSAyIDMgNCA1IDYKICAgZnRmdGZ0ZnRmdGZ0ZnQKIDBmPS4u Li4uLi4uLi4uLi4KICB0Lj0uLi4uLj0uLj0uLj0KIDFmLi49Lj0uLi4uLi49 Li4KICB0Li4uPS49Li49Li4uLi4KIDJmLi49Lj0uLi4uLi49Li4KICB0Li4u PS49Li49Li4uLi4KIDNmLi4uLi4uPS4uLi4uPS4KICB0Lj0uLi4uLj0uLj0u Lj0KIDRmLi4uPS49Li49Li4uLi4KICB0Li4uLi4uLi4uPS4uLi4KIDVmLj0u Li4uLj0uLj0uLj0KICB0Li49Lj0uLi4uLi49Li4KIDZmLi4uLi4uPS4uLi4u PS4KICB0Lj0uLi4uLj0uLj0uLj0KaSA6IDAKaiA6IDAKaiA6IDEKMCAhPSAx CmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYuNTIwNjkwOTE5 OTk5OTkzKSxzZWN0aW9uc1swXS50byAgICggIDExLjA4MzM3MTczMjU5NzYz NykpIC4uLiAoIDI2NC41NjI2ODA4MTI1OTc2NDgxMjc4NSkKKDwgKSAoPD0p IDwKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEwNi41MjA2OTA5 MTk5OTk5OTMpLHNlY3Rpb25zWzFdLmZyb20gKCAgMjEuMjgwOTc4NzgxMTAz NTM1KSkgLi4uICggMjc0Ljc2MDI4Nzg2MTEwMzUwNjY1Njk1KQpqIDogMgow ICE9IDIKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEwNi41MjA2 OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzBdLnRvICAgKCAgMTEuMDgzMzcxNzMy NTk3NjM3KSkgLi4uICggMjY0LjU2MjY4MDgxMjU5NzY0ODEyNzg1KQooPCAp ICg8PSkgPApnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9tICggMTA2LjUy MDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMl0uZnJvbSAoICAyMS4yODA5Nzg3 ODExMDM1MzUpKSAuLi4gKCAyNzQuNzYwMjg3ODYxMTAzNTA2NjU2OTUpCmog OiAzCjAgIT0gMwpnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9tICggMTA2 LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMF0udG8gICAoICAxMS4wODMz NzE3MzI1OTc2MzcpKSAuLi4gKCAyNjQuNTYyNjgwODEyNTk3NjQ4MTI3ODUp Cj49CmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYuNTIwNjkw OTE5OTk5OTkzKSxzZWN0aW9uc1szXS5mcm9tICggICA2LjI4MDk3ODc4MTEw MzU1NikpIC4uLiAoIDI1OS43NjAyODc4NjExMDM1NjM1MDAzNikKc3dhcHBl ZCBpcyB0cnVlCkVxdWFsaXR5IG1hdHJpeC4uLgogICAwIDEgMiAzIDQgNQog ICBmdGZ0ZnRmdGZ0ZnQKIDBmPS4uLi4uLi4uLi4uCiAgdC49Li4uLi49Li49 LgogMWYuLj0uPS4uLi4uLj0KICB0Li4uPS49Li49Li4uCiAyZi4uPS49Li4u Li4uPQogIHQuLi49Lj0uLj0uLi4KIDNmLi4uLi4uPS4uLi4uCiAgdC49Li4u Li49Li49LgogNGYuLi49Lj0uLj0uLi4KICB0Li4uLi4uLi4uPS4uCiA1Zi49 Li4uLi49Li49LgogIHQuLj0uPS4uLi4uLj0KaSA6IDAKaiA6IDAKaiA6IDEK MCAhPSAxCmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYuNTIw NjkwOTE5OTk5OTkzKSxzZWN0aW9uc1swXS50byAgICggIDExLjA4MzM3MTcz MjU5NzYzNykpIC4uLiAoIDI2NC41NjI2ODA4MTI1OTc2NDgxMjc4NSkKKDwg KSAoPD0pIDwKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEwNi41 MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzFdLmZyb20gKCAgMjEuMjgwOTc4 NzgxMTAzNTM1KSkgLi4uICggMjc0Ljc2MDI4Nzg2MTEwMzUwNjY1Njk1KQpq IDogMgowICE9IDIKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEw Ni41MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzBdLnRvICAgKCAgMTEuMDgz MzcxNzMyNTk3NjM3KSkgLi4uICggMjY0LjU2MjY4MDgxMjU5NzY0ODEyNzg1 KQooPCApICg8PSkgPApnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9tICgg MTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMl0uZnJvbSAoICAyMS4y ODA5Nzg3ODExMDM1MzUpKSAuLi4gKCAyNzQuNzYwMjg3ODYxMTAzNTA2NjU2 OTUpCmogOiAzCjAgIT0gMwpnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9t ICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMF0udG8gICAoICAx MS4wODMzNzE3MzI1OTc2MzcpKSAuLi4gKCAyNjQuNTYyNjgwODEyNTk3NjQ4 MTI3ODUpCj49CmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYu NTIwNjkwOTE5OTk5OTkzKSxzZWN0aW9uc1szXS5mcm9tICggICA2LjI4MDk3 ODc4MTEwMzU1NikpIC4uLiAoIDI1OS43NjAyODc4NjExMDM1NjM1MDAzNikK c3dhcHBlZCBpcyB0cnVlCkVxdWFsaXR5IG1hdHJpeC4uLgogICAwIDEgMiAz IDQKICAgZnRmdGZ0ZnRmdAogMGY9Li4uLi4uLi4uCiAgdC49Li4uLj0uLi4K IDFmLi49Lj0uLj0uLgogIHQuLi49Lj0uLj0uCiAyZi4uPS49Li49Li4KICB0 Li4uPS49Li49LgogM2YuPS4uLi49Li4uCiAgdC4uPS49Li49Li4KIDRmLi4u PS49Li49LgogIHQuLi4uLi4uLi49CmkgOiAwCmogOiAwCmogOiAxCjAgIT0g MQpnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9tICggMTA2LjUyMDY5MDkx OTk5OTk5Myksc2VjdGlvbnNbMF0udG8gICAoICAxMS4wODMzNzE3MzI1OTc2 MzcpKSAuLi4gKCAyNjQuNTYyNjgwODEyNTk3NjQ4MTI3ODUpCig8ICkgKDw9 KSA8CmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYuNTIwNjkw OTE5OTk5OTkzKSxzZWN0aW9uc1sxXS5mcm9tICggIDIxLjI4MDk3ODc4MTEw MzUzNSkpIC4uLiAoIDI3NC43NjAyODc4NjExMDM1MDY2NTY5NSkKaiA6IDIK MCAhPSAyCmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYuNTIw NjkwOTE5OTk5OTkzKSxzZWN0aW9uc1swXS50byAgICggIDExLjA4MzM3MTcz MjU5NzYzNykpIC4uLiAoIDI2NC41NjI2ODA4MTI1OTc2NDgxMjc4NSkKKDwg KSAoPD0pIDwKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEwNi41 MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzJdLmZyb20gKCAgMjEuMjgwOTc4 NzgxMTAzNTM1KSkgLi4uICggMjc0Ljc2MDI4Nzg2MTEwMzUwNjY1Njk1KQpq IDogMwowICE9IDMKZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEw Ni41MjA2OTA5MTk5OTk5OTMpLHNlY3Rpb25zWzBdLnRvICAgKCAgMTEuMDgz MzcxNzMyNTk3NjM3KSkgLi4uICggMjY0LjU2MjY4MDgxMjU5NzY0ODEyNzg1 KQo+PQpnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9tICggMTA2LjUyMDY5 MDkxOTk5OTk5Myksc2VjdGlvbnNbM10uZnJvbSAoICAxMS4wODMzNzE3MzI1 OTc2MzcpKSAuLi4gKCAyNjQuNTYyNjgwODEyNTk3NjQ4MTI3ODUpCnN3YXBw ZWQgaXMgdHJ1ZQpFcXVhbGl0eSBtYXRyaXguLi4KICAgMCAxIDIgMwogICBm dGZ0ZnRmdAogMGY9Li4uLi4uLgogIHQuPT0uPS4uLgogMWYuPT0uPS4uLgog IHQuLi49Lj09LgogMmYuPT0uPS4uLgogIHQuLi49Lj09LgogM2YuLi49Lj09 LgogIHQuLi4uLi4uPQppIDogMApqIDogMApqIDogMQowICE9IDEKZ2V0RGlz dGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEwNi41MjA2OTA5MTk5OTk5OTMp LHNlY3Rpb25zWzBdLnRvICAgKCAgMjEuMjgwOTc4NzgxMTAzNTM1KSkgLi4u ICggMjc0Ljc2MDI4Nzg2MTEwMzUwNjY1Njk1KQooPD0pIChVSCBPSCkgKD09 KSA8CmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYuNTIwNjkw OTE5OTk5OTkzKSxzZWN0aW9uc1sxXS5mcm9tICggIDIxLjI4MDk3ODc4MTEw MzUzNSkpIC4uLiAoIDI3NC43NjAyODc4NjExMDM1MDY2NTY5NSkKaiA6IDIK MCAhPSAyCmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZyb20gKCAxMDYuNTIw NjkwOTE5OTk5OTkzKSxzZWN0aW9uc1swXS50byAgICggIDIxLjI4MDk3ODc4 MTEwMzUzNSkpIC4uLiAoIDI3NC43NjAyODc4NjExMDM1MDY2NTY5NSkKKDw9 KSAoVUggT0gpICg9PSkgPApnZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9t ICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMl0uZnJvbSAoICAy MS4yODA5Nzg3ODExMDM1MzUpKSAuLi4gKCAyNzQuNzYwMjg3ODYxMTAzNTA2 NjU2OTUpCmogOiAzCjAgIT0gMwpnZXREaXN0YW5jZShzZWN0aW9uc1swXS5m cm9tICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNbMF0udG8gICAo ICAyMS4yODA5Nzg3ODExMDM1MzUpKSAuLi4gKCAyNzQuNzYwMjg3ODYxMTAz NTA2NjU2OTUpCig8ICkgKDw9KSA8CmdldERpc3RhbmNlKHNlY3Rpb25zWzBd LmZyb20gKCAxMDYuNTIwNjkwOTE5OTk5OTkzKSxzZWN0aW9uc1szXS5mcm9t ICggIDI1Ljc4MTcwMjAzMTQ5NDExMCkpIC4uLiAoIDI3OS4yNjEwMTExMTE0 OTQwOTkxNjgzNCkKaSA6IDEKaiA6IDAKMSAhPSAwCmdldERpc3RhbmNlKHNl Y3Rpb25zWzFdLmZyb20gKCAgMjEuMjgwOTc4NzgxMTAzNTM1KSxzZWN0aW9u c1sxXS50byAgICggIDI1Ljc4MTcwMjAzMTQ5NDExMCkpIC4uLiAoICAgNC41 MDA3MjMyNTAzOTA1NzQ3NDc4MykKKDwgKSAoPD0pIDwKZ2V0RGlzdGFuY2Uo c2VjdGlvbnNbMV0uZnJvbSAoICAyMS4yODA5Nzg3ODExMDM1MzUpLHNlY3Rp b25zWzBdLmZyb20gKCAxMDYuNTIwNjkwOTE5OTk5OTkzKSkgLi4uICggIDg1 LjIzOTcxMjEzODg5NjQ2NDkyMTM0KQpqIDogMQpqIDogMgoxICE9IDIKZ2V0 RGlzdGFuY2Uoc2VjdGlvbnNbMV0uZnJvbSAoICAyMS4yODA5Nzg3ODExMDM1 MzUpLHNlY3Rpb25zWzFdLnRvICAgKCAgMjUuNzgxNzAyMDMxNDk0MTEwKSkg Li4uICggICA0LjUwMDcyMzI1MDM5MDU3NDc0NzgzKQo+PQpnZXREaXN0YW5j ZShzZWN0aW9uc1sxXS5mcm9tICggIDIxLjI4MDk3ODc4MTEwMzUzNSksc2Vj dGlvbnNbMl0uZnJvbSAoICAyMS4yODA5Nzg3ODExMDM1MzUpKSAuLi4gKCAg IDAuMDAwMDAwMDAwMDAwMDAwMDAwMDApCnN3YXBwZWQgaXMgdHJ1ZQpFcXVh bGl0eSBtYXRyaXguLi4KICAgMCAxIDIKICAgZnRmdGZ0CiAwZj0uLi4uLgog IHQuPT0uLi4KIDFmLj09Li4uCiAgdC4uLj09LgogMmYuLi49PS4KICB0Li4u Li49CmkgOiAwCmogOiAwCmogOiAxCjAgIT0gMQpnZXREaXN0YW5jZShzZWN0 aW9uc1swXS5mcm9tICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNb MF0udG8gICAoICAyMS4yODA5Nzg3ODExMDM1MzUpKSAuLi4gKCAyNzQuNzYw Mjg3ODYxMTAzNTA2NjU2OTUpCig8PSkgKFVIIE9IKSAoPT0pIDwKZ2V0RGlz dGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEwNi41MjA2OTA5MTk5OTk5OTMp LHNlY3Rpb25zWzFdLmZyb20gKCAgMjEuMjgwOTc4NzgxMTAzNTM1KSkgLi4u ICggMjc0Ljc2MDI4Nzg2MTEwMzUwNjY1Njk1KQpqIDogMgowICE9IDIKZ2V0 RGlzdGFuY2Uoc2VjdGlvbnNbMF0uZnJvbSAoIDEwNi41MjA2OTA5MTk5OTk5 OTMpLHNlY3Rpb25zWzBdLnRvICAgKCAgMjEuMjgwOTc4NzgxMTAzNTM1KSkg Li4uICggMjc0Ljc2MDI4Nzg2MTEwMzUwNjY1Njk1KQooPCApICg8PSkgPApn ZXREaXN0YW5jZShzZWN0aW9uc1swXS5mcm9tICggMTA2LjUyMDY5MDkxOTk5 OTk5Myksc2VjdGlvbnNbMl0uZnJvbSAoICAyNS43ODE3MDIwMzE0OTQxMTAp KSAuLi4gKCAyNzkuMjYxMDExMTExNDk0MDk5MTY4MzQpCmkgOiAxCmogOiAw CjEgIT0gMApnZXREaXN0YW5jZShzZWN0aW9uc1sxXS5mcm9tICggIDIxLjI4 MDk3ODc4MTEwMzUzNSksc2VjdGlvbnNbMV0udG8gICAoICAyNS43ODE3MDIw MzE0OTQxMTApKSAuLi4gKCAgIDQuNTAwNzIzMjUwMzkwNTc0NzQ3ODMpCig8 ICkgKDw9KSA8CmdldERpc3RhbmNlKHNlY3Rpb25zWzFdLmZyb20gKCAgMjEu MjgwOTc4NzgxMTAzNTM1KSxzZWN0aW9uc1swXS5mcm9tICggMTA2LjUyMDY5 MDkxOTk5OTk5MykpIC4uLiAoICA4NS4yMzk3MTIxMzg4OTY0NjQ5MjEzNCkK aiA6IDEKaiA6IDIKMSAhPSAyCmdldERpc3RhbmNlKHNlY3Rpb25zWzFdLmZy b20gKCAgMjEuMjgwOTc4NzgxMTAzNTM1KSxzZWN0aW9uc1sxXS50byAgICgg IDI1Ljc4MTcwMjAzMTQ5NDExMCkpIC4uLiAoICAgNC41MDA3MjMyNTAzOTA1 NzQ3NDc4MykKPj0KZ2V0RGlzdGFuY2Uoc2VjdGlvbnNbMV0uZnJvbSAoICAy MS4yODA5Nzg3ODExMDM1MzUpLHNlY3Rpb25zWzJdLmZyb20gKCAgMjUuNzgx NzAyMDMxNDk0MTEwKSkgLi4uICggICA0LjUwMDcyMzI1MDM5MDU3NDc0Nzgz KQpzd2FwcGVkIGlzIHRydWUKRXF1YWxpdHkgbWF0cml4Li4uCiAgIDAgMQog ICBmdGZ0CiAwZj0uLi4KICB0Lj09LgogMWYuPT0uCiAgdC4uLj0KaSA6IDAK aiA6IDAKaiA6IDEKMCAhPSAxCmdldERpc3RhbmNlKHNlY3Rpb25zWzBdLmZy b20gKCAxMDYuNTIwNjkwOTE5OTk5OTkzKSxzZWN0aW9uc1swXS50byAgICgg IDIxLjI4MDk3ODc4MTEwMzUzNSkpIC4uLiAoIDI3NC43NjAyODc4NjExMDM1 MDY2NTY5NSkKKDw9KSAoVUggT0gpICg9PSkgPApnZXREaXN0YW5jZShzZWN0 aW9uc1swXS5mcm9tICggMTA2LjUyMDY5MDkxOTk5OTk5Myksc2VjdGlvbnNb MV0uZnJvbSAoICAyMS4yODA5Nzg3ODExMDM1MzUpKSAuLi4gKCAyNzQuNzYw Mjg3ODYxMTAzNTA2NjU2OTUpCmkgOiAxCmogOiAwCjEgIT0gMApnZXREaXN0 YW5jZShzZWN0aW9uc1sxXS5mcm9tICggIDIxLjI4MDk3ODc4MTEwMzUzNSks c2VjdGlvbnNbMV0udG8gICAoICA0Mi43NzA2OTA5MTk5OTk5OTMpKSAuLi4g KCAgMjEuNDg5NzEyMTM4ODk2NDU3ODE1OTIpCig8ICkgKDw9KSA8CmdldERp c3RhbmNlKHNlY3Rpb25zWzFdLmZyb20gKCAgMjEuMjgwOTc4NzgxMTAzNTM1 KSxzZWN0aW9uc1swXS5mcm9tICggMTA2LjUyMDY5MDkxOTk5OTk5MykpIC4u LiAoICA4NS4yMzk3MTIxMzg4OTY0NjQ5MjEzNCkKaiA6IDEK ------_=_NextPart_001_01C7B9A8.60375B64 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ------_=_NextPart_001_01C7B9A8.60375B64--