Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ebpPk-0008Ie-GH for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Jan 2018 15:14:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ebpPj-00079V-Ig for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Jan 2018 15:14:07 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ebpPj-00079M-4U for pgsql-hackers@lists.postgresql.org; Wed, 17 Jan 2018 15:14:07 +0000 Received: from mx.wagner.pp.ru ([78.46.190.96]) by makus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ebpPg-000097-Ad for pgsql-hackers@lists.postgresql.org; Wed, 17 Jan 2018 15:14:05 +0000 Received: from fafnir.local.vm (unknown [93.174.131.141]) by mx.wagner.pp.ru (Postfix) with ESMTPSA id E1DB4E0043 for ; Wed, 17 Jan 2018 18:14:00 +0300 (MSK) Date: Wed, 17 Jan 2018 18:13:59 +0300 From: Victor Wagner To: pgsql-hackers@lists.postgresql.org Subject: Re: master make check fails on Solaris 10 Message-ID: <20180117181359.3a6cc06c@fafnir.local.vm> In-Reply-To: <90ab676392c8f9c84431976147097cf0@postgrespro.ru> References: <0d3a9fa264cebe1cb9966f37b7c06e86@postgrespro.ru> <20180111173938.jimybeayp2u5mmup@alap3.anarazel.de> <31a342fa6a025a8bdfc5b8b19c29d56d@postgrespro.ru> <1232.1515780057@sss.pgh.pa.us> <15299.1515867055@sss.pgh.pa.us> <18209.1516059711@sss.pgh.pa.us> <90ab676392c8f9c84431976147097cf0@postgrespro.ru> X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/ei55GH4uaf6iQ+JdO4Xji3W" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --MP_/ei55GH4uaf6iQ+JdO4Xji3W Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline On Wed, 17 Jan 2018 18:02:26 +0300 Marina Polyakova wrote: > > Attached is a possible test program. I can confirm it passes on a > > machine with working __int128, but I have no idea whether it will > > detect the problem on yours. If not, maybe you can tweak it? > > Thank you! Using gcc 5.5.0 it prints that everything is ok. But, > investigating the regression diffs, we found out that the error > occurs when we pass int128 as not the first argument to the function > (perhaps its value is replaced by the value of some address): I'm attaching stripped-down version of test program, which demonstrate the problem and two assembler listings produced with this C source using alignment 8 and 16. May be this stripped-down version can be used as base for configure test. As it turns out, Sparc GCC passes function arguments via register ring which is referenced as %on in the calling code and as %in in function. And somehow it happens that alignment attribute of typedef affects access to arguments in the function, but doesn't affect how regiser ring is filled before call. Looks like bug in GCC. Unfortunately, we have only one Sparc machine and started our investigation by upgrading GCC 5.2.0 to GCC 5.5.0, so it is hard to downgrade and test with older GCC. -- --MP_/ei55GH4uaf6iQ+JdO4Xji3W Content-Type: text/x-c++src Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=align_test.c #include #include # ifndef PG_ALIGN_128 #define PG_ALIGN_128 8 # endif /* GCC, Sunpro and XLC support aligned */ #if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__IBMC__) #define pg_attribute_aligned(a) __attribute__((aligned(a))) #endif typedef __int128 int128a #if defined(pg_attribute_aligned) pg_attribute_aligned(PG_ALIGN_128) #endif ; int128a holder; void pass_by_val(void *buffer,int128a par) { holder=par; } int main() { long int i64 = 97656225L << 12; int128a q; pass_by_val(main,(int128a) i64); q=(int128a) i64; printf("pass int 64 %s\n",(q==holder)?"OK":"FAILED"); if (q!=holder) return 1; return 0; } --MP_/ei55GH4uaf6iQ+JdO4Xji3W Content-Type: application/octet-stream; name=align_test8.s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=align_test8.s CS5maWxlCSJkYS5jIgohIEdOVSBDMTEgKEdDQykgdmVyc2lvbiA1LjUuMCAoc3BhcmMtc3VuLXNv bGFyaXMyLjEwKQohCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNS41LjAsIEdNUCB2ZXJzaW9u IDYuMS4yLCBNUEZSIHZlcnNpb24gMy4xLjUsIE1QQyB2ZXJzaW9uIDEuMC4yCiEgd2FybmluZzog TVBDIGhlYWRlciB2ZXJzaW9uIDEuMC4yIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gMS4w LjMuCiEgR0dDIGhldXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0g Z2djLW1pbi1oZWFwc2l6ZT0xMzEwNzIKISBvcHRpb25zIHBhc3NlZDogIC1pbXVsdGlsaWIgc3Bh cmN2OSAtRF9fYXJjaDY0X18gLURfX3NwYXJjdjkgZGEuYyAtbXB0cjY0CiEgLW1zdGFjay1iaWFz IC1tbm8tdjhwbHVzIC1tY3B1PXY5IC1tNjQgLWZ2ZXJib3NlLWFzbQohIG9wdGlvbnMgZW5hYmxl ZDogIC1mYWdncmVzc2l2ZS1sb29wLW9wdGltaXphdGlvbnMgLWZhdXRvLWluYy1kZWMKISAtZmNo a3AtY2hlY2staW5jb21wbGV0ZS10eXBlIC1mY2hrcC1jaGVjay1yZWFkIC1mY2hrcC1jaGVjay13 cml0ZQohIC1mY2hrcC1pbnN0cnVtZW50LWNhbGxzIC1mY2hrcC1uYXJyb3ctYm91bmRzIC1mY2hr cC1vcHRpbWl6ZQohIC1mY2hrcC1zdG9yZS1ib3VuZHMgLWZjaGtwLXVzZS1zdGF0aWMtYm91bmRz CiEgLWZjaGtwLXVzZS1zdGF0aWMtY29uc3QtYm91bmRzIC1mY2hrcC11c2Utd3JhcHBlcnMgLWZj b21tb24KISAtZmRlbGV0ZS1udWxsLXBvaW50ZXItY2hlY2tzIC1mZWFybHktaW5saW5pbmcKISAt ZmVsaW1pbmF0ZS11bnVzZWQtZGVidWctdHlwZXMgLWZmdW5jdGlvbi1jc2UgLWZnY3NlLWxtIC1m Z251LXJ1bnRpbWUKISAtZmdudS11bmlxdWUgLWZpZGVudCAtZmlubGluZS1hdG9taWNzIC1maXJh LWhvaXN0LXByZXNzdXJlCiEgLWZpcmEtc2hhcmUtc3BpbGwtc2xvdHMgLWZpdm9wdHMgLWZrZWVw LXN0YXRpYy1jb25zdHMKISAtZmxlYWRpbmctdW5kZXJzY29yZSAtZmxpZmV0aW1lLWRzZSAtZmx0 by1vZHItdHlwZS1tZXJnaW5nIC1mbWF0aC1lcnJubwohIC1mbWVyZ2UtZGVidWctc3RyaW5ncyAt ZnBlZXBob2xlIC1mcHJlZmV0Y2gtbG9vcC1hcnJheXMKISAtZnJlZy1zdHJ1Y3QtcmV0dXJuIC1m c2NoZWQtY3JpdGljYWwtcGF0aC1oZXVyaXN0aWMKISAtZnNjaGVkLWRlcC1jb3VudC1oZXVyaXN0 aWMgLWZzY2hlZC1ncm91cC1oZXVyaXN0aWMgLWZzY2hlZC1pbnRlcmJsb2NrCiEgLWZzY2hlZC1s YXN0LWluc24taGV1cmlzdGljIC1mc2NoZWQtcmFuay1oZXVyaXN0aWMgLWZzY2hlZC1zcGVjCiEg LWZzY2hlZC1zcGVjLWluc24taGV1cmlzdGljIC1mc2NoZWQtc3RhbGxlZC1pbnNucy1kZXAgLWZz Y2hlZHVsZS1mdXNpb24KISAtZnNlbWFudGljLWludGVycG9zaXRpb24gLWZzaG93LWNvbHVtbiAt ZnNpZ25lZC16ZXJvcwohIC1mc3BsaXQtaXZzLWluLXVucm9sbGVyIC1mc3RkYXJnLW9wdCAtZnN0 cmljdC12b2xhdGlsZS1iaXRmaWVsZHMKISAtZnN5bmMtbGliY2FsbHMgLWZ0cmFwcGluZy1tYXRo IC1mdHJlZS1jb2FsZXNjZS12YXJzIC1mdHJlZS1jc2VsaW0KISAtZnRyZWUtZm9yd3Byb3AgLWZ0 cmVlLWxvb3AtaWYtY29udmVydCAtZnRyZWUtbG9vcC1pbSAtZnRyZWUtbG9vcC1pdmNhbm9uCiEg LWZ0cmVlLWxvb3Atb3B0aW1pemUgLWZ0cmVlLXBhcmFsbGVsaXplLWxvb3BzPSAtZnRyZWUtcGhp cHJvcAohIC1mdHJlZS1yZWFzc29jIC1mdHJlZS1zY2V2LWNwcm9wIC1mdW5pdC1hdC1hLXRpbWUg LWZ2ZXJib3NlLWFzbQohIC1memVyby1pbml0aWFsaXplZC1pbi1ic3MgLW02NCAtbWFwcC1yZWdz IC1tZnB1IC1tcHRyNjQgLW1zb2Z0LXF1YWQtZmxvYXQKISAtbXN0YWNrLWJpYXMgLW11c2VyLW1v ZGUKCgkuY29tbW9uCWhvbGRlciwxNiw4Cgkuc2VjdGlvbgkiLnRleHQiCgkuYWxpZ24gNAoJLmds b2JhbCBwYXNzX2J5X3ZhbAoJLnR5cGUJcGFzc19ieV92YWwsICNmdW5jdGlvbgoJLnByb2MJMDIw CnBhc3NfYnlfdmFsOgoJLnJlZ2lzdGVyCSVnMiwgI3NjcmF0Y2gKCS5yZWdpc3RlcgklZzMsICNz Y3JhdGNoCglzYXZlCSVzcCwgLTE3NiwgJXNwCSEKCXN0eAklaTAsIFslZnArMjE3NV0JISBidWZm ZXIsIGJ1ZmZlcgoJc3R4CSVpMSwgWyVmcCsyMTkxXQkhIHBhciwgcGFyCglzdHgJJWkyLCBbJWZw KzIxOTldCSEgcGFyLCBwYXIKCXNldGhpCSVoNDQoaG9sZGVyKSwgJWcxCSEsIHRtcDExMAoJb3IJ JWcxLCAlbTQ0KGhvbGRlciksICVnMQkhIHRtcDExMCwsIHRtcDExMQoJc2xseAklZzEsIDEyLCAl ZzEJISB0bXAxMTEsLCB0bXAxMTIKCW9yCSVnMSwgJWw0NChob2xkZXIpLCAlZzEJISB0bXAxMTIs LCB0bXAxMDkKCWxkeAlbJWZwKzIxOTFdLCAlZzIJISBwYXIsCglsZHgJWyVmcCsyMTk5XSwgJWcz CSEgcGFyLCB0bXAxMTMKCXN0eAklZzIsIFslZzFdCSEsIGhvbGRlcgoJc3R4CSVnMywgWyVnMSs4 XQkhIHRtcDExMywgaG9sZGVyCglub3AKCXJldHVybgklaTcrOAoJIG5vcAoJLnNpemUJcGFzc19i eV92YWwsIC4tcGFzc19ieV92YWwKCS5zZWN0aW9uCSIucm9kYXRhIgoJLmFsaWduIDgKLkxMQzA6 CgkuYXNjaXoJIk9LIgoJLmFsaWduIDgKLkxMQzE6CgkuYXNjaXoJIkZBSUxFRCIKCS5hbGlnbiA4 Ci5MTEMyOgoJLmFzY2l6CSJwYXNzIGludCA2NCAlc1xuIgoJLnNlY3Rpb24JIi50ZXh0IgoJLmFs aWduIDQKCS5nbG9iYWwgbWFpbgoJLnR5cGUJbWFpbiwgI2Z1bmN0aW9uCgkucHJvYwkwNAptYWlu OgoJc2F2ZQklc3AsIC0yMDgsICVzcAkhCglzZXRoaQklaGkoOTc2NTU4MDgpLCAlZzEJISwgdG1w MTE2CglvcgklZzEsIDQxNywgJWcxCSEgdG1wMTE2LCwgdG1wMTE1CglzbGx4CSVnMSwgMTIsICVn MQkhIHRtcDExNSwsIHRtcDExNQoJc3R4CSVnMSwgWyVmcCsyMDM5XQkhIHRtcDExNSwgaTY0Cgls ZHgJWyVmcCsyMDM5XSwgJWcxCSEgaTY0LCB0bXAxMTcKCW1vdgklZzEsICVnMwkhIHRtcDExNywg RC4xNzE2CglzcmF4CSVnMSwgNjMsICVnMQkhIHRtcDExNywsIHRtcDExOAoJbW92CSVnMSwgJWcy CSEgdG1wMTE4LCBELjE3MTYKCW1vdgklZzIsICVvMgkhIEQuMTcxNiwKCW1vdgklZzMsICVvMwkh IEQuMTcxNiwgdG1wMTAKCXNldGhpCSVoNDQobWFpbiksICVnMQkhLCB0bXAxMTkKCW9yCSVnMSwg JW00NChtYWluKSwgJWcxCSEgdG1wMTE5LCwgdG1wMTIwCglzbGx4CSVnMSwgMTIsICVnMQkhIHRt cDEyMCwsIHRtcDEyMQoJb3IJJWcxLCAlbDQ0KG1haW4pLCAlbzAJISB0bXAxMjEsLAoJY2FsbAlw YXNzX2J5X3ZhbCwgMAoJIG5vcAkhLAoJbGR4CVslZnArMjAzOV0sICVnMQkhIGk2NCwgdG1wMTIy CglzdHgJJWcxLCBbJWZwKzIwMzFdCSEgdG1wMTIyLCBxCglzcmF4CSVnMSwgNjMsICVnMQkhIHRt cDEyMiwsIHRtcDEyMwoJc3R4CSVnMSwgWyVmcCsyMDIzXQkhIHRtcDEyMywgcQoJc2V0aGkJJWg0 NChob2xkZXIpLCAlZzEJISwgdG1wMTI1CglvcgklZzEsICVtNDQoaG9sZGVyKSwgJWcxCSEgdG1w MTI1LCwgdG1wMTI2CglzbGx4CSVnMSwgMTIsICVnMQkhIHRtcDEyNiwsIHRtcDEyNwoJb3IJJWcx LCAlbDQ0KGhvbGRlciksICVnMQkhIHRtcDEyNywsIHRtcDEyNAoJbGR4CVslZzFdLCAlZzIJISBo b2xkZXIsIEQuMTcxNgoJbGR4CVslZzErOF0sICVnMwkhIGhvbGRlciwgRC4xNzE2CglsZHgJWyVm cCsyMDIzXSwgJWcxCSEgcSwgdG1wMTI4CgljbXAJJWcxLCAlZzIJISB0bXAxMjgsIEQuMTcxNgoJ Ym5lCSV4Y2MsIC5MTDMKCSBub3AJIQoJbGR4CVslZnArMjAzMV0sICVnMQkhIHEsIHRtcDEyOQoJ Y21wCSVnMSwgJWczCSEgdG1wMTI5LCBELjE3MTYKCWJuZQkleGNjLCAuTEwzCgkgbm9wCSEKCXNl dGhpCSVoNDQoLkxMQzApLCAlZzEJISwgdG1wMTMwCglvcgklZzEsICVtNDQoLkxMQzApLCAlZzEJ ISB0bXAxMzAsLCB0bXAxMzEKCXNsbHgJJWcxLCAxMiwgJWcxCSEgdG1wMTMxLCwgdG1wMTMyCglv cgklZzEsICVsNDQoLkxMQzApLCAlZzEJISB0bXAxMzIsLCBELjE3MTQKCWJhLHB0CSV4Y2MsIC5M TDQKCSBub3AJIQouTEwzOgoJc2V0aGkJJWg0NCguTExDMSksICVnMQkhLCB0bXAxMzMKCW9yCSVn MSwgJW00NCguTExDMSksICVnMQkhIHRtcDEzMywsIHRtcDEzNAoJc2xseAklZzEsIDEyLCAlZzEJ ISB0bXAxMzQsLCB0bXAxMzUKCW9yCSVnMSwgJWw0NCguTExDMSksICVnMQkhIHRtcDEzNSwsIEQu MTcxNAouTEw0OgoJbW92CSVnMSwgJW8xCSEgRC4xNzE0LAoJc2V0aGkJJWg0NCguTExDMiksICVn MQkhLCB0bXAxMzYKCW9yCSVnMSwgJW00NCguTExDMiksICVnMQkhIHRtcDEzNiwsIHRtcDEzNwoJ c2xseAklZzEsIDEyLCAlZzEJISB0bXAxMzcsLCB0bXAxMzgKCW9yCSVnMSwgJWw0NCguTExDMiks ICVvMAkhIHRtcDEzOCwsCgljYWxsCXByaW50ZiwgMAoJIG5vcAkhLAoJc2V0aGkJJWg0NChob2xk ZXIpLCAlZzEJISwgdG1wMTQwCglvcgklZzEsICVtNDQoaG9sZGVyKSwgJWcxCSEgdG1wMTQwLCwg dG1wMTQxCglzbGx4CSVnMSwgMTIsICVnMQkhIHRtcDE0MSwsIHRtcDE0MgoJb3IJJWcxLCAlbDQ0 KGhvbGRlciksICVnMQkhIHRtcDE0MiwsIHRtcDEzOQoJbGR4CVslZzFdLCAlZzIJISBob2xkZXIs IEQuMTcxNgoJbGR4CVslZzErOF0sICVnMwkhIGhvbGRlciwgRC4xNzE2CglsZHgJWyVmcCsyMDIz XSwgJWcxCSEgcSwgdG1wMTQzCgljbXAJJWcxLCAlZzIJISB0bXAxNDMsIEQuMTcxNgoJYm5lCSV4 Y2MsIC5MTDgKCSBub3AJIQoJbGR4CVslZnArMjAzMV0sICVnMQkhIHEsIHRtcDE0NAoJY21wCSVn MSwgJWczCSEgdG1wMTQ0LCBELjE3MTYKCWJlCSV4Y2MsIC5MTDkKCSBub3AJIQouTEw4OgoJbW92 CTEsICVnMQkhLCBELjE3MTUKCWJhLHB0CSV4Y2MsIC5MTDcKCSBub3AJIQouTEw5OgoJbW92CTAs ICVnMQkhLCBELjE3MTUKLkxMNzoKCXNyYQklZzEsIDAsICVnMQkhIEQuMTcxNSwgdG1wMTQ2Cglt b3YJJWcxLCAlaTAJISA8cmV0dmFsPiwKCXJldHVybgklaTcrOAoJIG5vcAoJLnNpemUJbWFpbiwg Li1tYWluCgkuaWRlbnQJIkdDQzogKEdOVSkgNS41LjAiCg== --MP_/ei55GH4uaf6iQ+JdO4Xji3W Content-Type: application/octet-stream; name=align_test16.s Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=align_test16.s CS5maWxlCSJkYS5jIgohIEdOVSBDMTEgKEdDQykgdmVyc2lvbiA1LjUuMCAoc3BhcmMtc3VuLXNv bGFyaXMyLjEwKQohCWNvbXBpbGVkIGJ5IEdOVSBDIHZlcnNpb24gNS41LjAsIEdNUCB2ZXJzaW9u IDYuMS4yLCBNUEZSIHZlcnNpb24gMy4xLjUsIE1QQyB2ZXJzaW9uIDEuMC4yCiEgd2FybmluZzog TVBDIGhlYWRlciB2ZXJzaW9uIDEuMC4yIGRpZmZlcnMgZnJvbSBsaWJyYXJ5IHZlcnNpb24gMS4w LjMuCiEgR0dDIGhldXJpc3RpY3M6IC0tcGFyYW0gZ2djLW1pbi1leHBhbmQ9MTAwIC0tcGFyYW0g Z2djLW1pbi1oZWFwc2l6ZT0xMzEwNzIKISBvcHRpb25zIHBhc3NlZDogIC1pbXVsdGlsaWIgc3Bh cmN2OSAtRF9fYXJjaDY0X18gLURfX3NwYXJjdjkKISAtRCBQR19BTElHTl8xMjg9MTYgZGEuYyAt bXB0cjY0IC1tc3RhY2stYmlhcyAtbW5vLXY4cGx1cyAtbWNwdT12OSAtbTY0CiEgLWF1eGJhc2Ut c3RyaXAgZGExNi5zIC1mdmVyYm9zZS1hc20KISBvcHRpb25zIGVuYWJsZWQ6ICAtZmFnZ3Jlc3Np dmUtbG9vcC1vcHRpbWl6YXRpb25zIC1mYXV0by1pbmMtZGVjCiEgLWZjaGtwLWNoZWNrLWluY29t cGxldGUtdHlwZSAtZmNoa3AtY2hlY2stcmVhZCAtZmNoa3AtY2hlY2std3JpdGUKISAtZmNoa3At aW5zdHJ1bWVudC1jYWxscyAtZmNoa3AtbmFycm93LWJvdW5kcyAtZmNoa3Atb3B0aW1pemUKISAt ZmNoa3Atc3RvcmUtYm91bmRzIC1mY2hrcC11c2Utc3RhdGljLWJvdW5kcwohIC1mY2hrcC11c2Ut c3RhdGljLWNvbnN0LWJvdW5kcyAtZmNoa3AtdXNlLXdyYXBwZXJzIC1mY29tbW9uCiEgLWZkZWxl dGUtbnVsbC1wb2ludGVyLWNoZWNrcyAtZmVhcmx5LWlubGluaW5nCiEgLWZlbGltaW5hdGUtdW51 c2VkLWRlYnVnLXR5cGVzIC1mZnVuY3Rpb24tY3NlIC1mZ2NzZS1sbSAtZmdudS1ydW50aW1lCiEg LWZnbnUtdW5pcXVlIC1maWRlbnQgLWZpbmxpbmUtYXRvbWljcyAtZmlyYS1ob2lzdC1wcmVzc3Vy ZQohIC1maXJhLXNoYXJlLXNwaWxsLXNsb3RzIC1maXZvcHRzIC1ma2VlcC1zdGF0aWMtY29uc3Rz CiEgLWZsZWFkaW5nLXVuZGVyc2NvcmUgLWZsaWZldGltZS1kc2UgLWZsdG8tb2RyLXR5cGUtbWVy Z2luZyAtZm1hdGgtZXJybm8KISAtZm1lcmdlLWRlYnVnLXN0cmluZ3MgLWZwZWVwaG9sZSAtZnBy ZWZldGNoLWxvb3AtYXJyYXlzCiEgLWZyZWctc3RydWN0LXJldHVybiAtZnNjaGVkLWNyaXRpY2Fs LXBhdGgtaGV1cmlzdGljCiEgLWZzY2hlZC1kZXAtY291bnQtaGV1cmlzdGljIC1mc2NoZWQtZ3Jv dXAtaGV1cmlzdGljIC1mc2NoZWQtaW50ZXJibG9jawohIC1mc2NoZWQtbGFzdC1pbnNuLWhldXJp c3RpYyAtZnNjaGVkLXJhbmstaGV1cmlzdGljIC1mc2NoZWQtc3BlYwohIC1mc2NoZWQtc3BlYy1p bnNuLWhldXJpc3RpYyAtZnNjaGVkLXN0YWxsZWQtaW5zbnMtZGVwIC1mc2NoZWR1bGUtZnVzaW9u CiEgLWZzZW1hbnRpYy1pbnRlcnBvc2l0aW9uIC1mc2hvdy1jb2x1bW4gLWZzaWduZWQtemVyb3MK ISAtZnNwbGl0LWl2cy1pbi11bnJvbGxlciAtZnN0ZGFyZy1vcHQgLWZzdHJpY3Qtdm9sYXRpbGUt Yml0ZmllbGRzCiEgLWZzeW5jLWxpYmNhbGxzIC1mdHJhcHBpbmctbWF0aCAtZnRyZWUtY29hbGVz Y2UtdmFycyAtZnRyZWUtY3NlbGltCiEgLWZ0cmVlLWZvcndwcm9wIC1mdHJlZS1sb29wLWlmLWNv bnZlcnQgLWZ0cmVlLWxvb3AtaW0gLWZ0cmVlLWxvb3AtaXZjYW5vbgohIC1mdHJlZS1sb29wLW9w dGltaXplIC1mdHJlZS1wYXJhbGxlbGl6ZS1sb29wcz0gLWZ0cmVlLXBoaXByb3AKISAtZnRyZWUt cmVhc3NvYyAtZnRyZWUtc2Nldi1jcHJvcCAtZnVuaXQtYXQtYS10aW1lIC1mdmVyYm9zZS1hc20K ISAtZnplcm8taW5pdGlhbGl6ZWQtaW4tYnNzIC1tNjQgLW1hcHAtcmVncyAtbWZwdSAtbXB0cjY0 IC1tc29mdC1xdWFkLWZsb2F0CiEgLW1zdGFjay1iaWFzIC1tdXNlci1tb2RlCgoJLmNvbW1vbglo b2xkZXIsMTYsMTYKCS5zZWN0aW9uCSIudGV4dCIKCS5hbGlnbiA0CgkuZ2xvYmFsIHBhc3NfYnlf dmFsCgkudHlwZQlwYXNzX2J5X3ZhbCwgI2Z1bmN0aW9uCgkucHJvYwkwMjAKcGFzc19ieV92YWw6 CgkucmVnaXN0ZXIJJWcyLCAjc2NyYXRjaAoJLnJlZ2lzdGVyCSVnMywgI3NjcmF0Y2gKCXNhdmUJ JXNwLCAtMTc2LCAlc3AJIQoJc3R4CSVpMCwgWyVmcCsyMTc1XQkhIGJ1ZmZlciwgYnVmZmVyCglz dHgJJWkyLCBbJWZwKzIxOTFdCSEgcGFyLCBwYXIKCXN0eAklaTMsIFslZnArMjE5OV0JISBwYXIs IHBhcgoJc2V0aGkJJWg0NChob2xkZXIpLCAlZzEJISwgdG1wMTEwCglvcgklZzEsICVtNDQoaG9s ZGVyKSwgJWcxCSEgdG1wMTEwLCwgdG1wMTExCglzbGx4CSVnMSwgMTIsICVnMQkhIHRtcDExMSws IHRtcDExMgoJb3IJJWcxLCAlbDQ0KGhvbGRlciksICVnMQkhIHRtcDExMiwsIHRtcDEwOQoJbGR4 CVslZnArMjE5MV0sICVnMgkhIHBhciwKCWxkeAlbJWZwKzIxOTldLCAlZzMJISBwYXIsIHRtcDEx MwoJc3R4CSVnMiwgWyVnMV0JISwgaG9sZGVyCglzdHgJJWczLCBbJWcxKzhdCSEgdG1wMTEzLCBo b2xkZXIKCW5vcAoJcmV0dXJuCSVpNys4Cgkgbm9wCgkuc2l6ZQlwYXNzX2J5X3ZhbCwgLi1wYXNz X2J5X3ZhbAoJLnNlY3Rpb24JIi5yb2RhdGEiCgkuYWxpZ24gOAouTExDMDoKCS5hc2NpegkiT0si CgkuYWxpZ24gOAouTExDMToKCS5hc2NpegkiRkFJTEVEIgoJLmFsaWduIDgKLkxMQzI6CgkuYXNj aXoJInBhc3MgaW50IDY0ICVzXG4iCgkuc2VjdGlvbgkiLnRleHQiCgkuYWxpZ24gNAoJLmdsb2Jh bCBtYWluCgkudHlwZQltYWluLCAjZnVuY3Rpb24KCS5wcm9jCTA0Cm1haW46CglzYXZlCSVzcCwg LTIwOCwgJXNwCSEKCXNldGhpCSVoaSg5NzY1NTgwOCksICVnMQkhLCB0bXAxMTYKCW9yCSVnMSwg NDE3LCAlZzEJISB0bXAxMTYsLCB0bXAxMTUKCXNsbHgJJWcxLCAxMiwgJWcxCSEgdG1wMTE1LCwg dG1wMTE1CglzdHgJJWcxLCBbJWZwKzIwMzldCSEgdG1wMTE1LCBpNjQKCWxkeAlbJWZwKzIwMzld LCAlZzEJISBpNjQsIHRtcDExNwoJbW92CSVnMSwgJWczCSEgdG1wMTE3LCBELjE3MTYKCXNyYXgJ JWcxLCA2MywgJWcxCSEgdG1wMTE3LCwgdG1wMTE4Cgltb3YJJWcxLCAlZzIJISB0bXAxMTgsIEQu MTcxNgoJbW92CSVnMiwgJW8yCSEgRC4xNzE2LAoJbW92CSVnMywgJW8zCSEgRC4xNzE2LCB0bXAx MAoJc2V0aGkJJWg0NChtYWluKSwgJWcxCSEsIHRtcDExOQoJb3IJJWcxLCAlbTQ0KG1haW4pLCAl ZzEJISB0bXAxMTksLCB0bXAxMjAKCXNsbHgJJWcxLCAxMiwgJWcxCSEgdG1wMTIwLCwgdG1wMTIx CglvcgklZzEsICVsNDQobWFpbiksICVvMAkhIHRtcDEyMSwsCgljYWxsCXBhc3NfYnlfdmFsLCAw Cgkgbm9wCSEsCglsZHgJWyVmcCsyMDM5XSwgJWcxCSEgaTY0LCB0bXAxMjIKCXN0eAklZzEsIFsl ZnArMjAyM10JISB0bXAxMjIsIHEKCXNyYXgJJWcxLCA2MywgJWcxCSEgdG1wMTIyLCwgdG1wMTIz CglzdHgJJWcxLCBbJWZwKzIwMTVdCSEgdG1wMTIzLCBxCglzZXRoaQklaDQ0KGhvbGRlciksICVn MQkhLCB0bXAxMjUKCW9yCSVnMSwgJW00NChob2xkZXIpLCAlZzEJISB0bXAxMjUsLCB0bXAxMjYK CXNsbHgJJWcxLCAxMiwgJWcxCSEgdG1wMTI2LCwgdG1wMTI3CglvcgklZzEsICVsNDQoaG9sZGVy KSwgJWcxCSEgdG1wMTI3LCwgdG1wMTI0CglsZHgJWyVnMV0sICVnMgkhIGhvbGRlciwgRC4xNzE2 CglsZHgJWyVnMSs4XSwgJWczCSEgaG9sZGVyLCBELjE3MTYKCWxkeAlbJWZwKzIwMTVdLCAlZzEJ ISBxLCB0bXAxMjgKCWNtcAklZzEsICVnMgkhIHRtcDEyOCwgRC4xNzE2CglibmUJJXhjYywgLkxM MwoJIG5vcAkhCglsZHgJWyVmcCsyMDIzXSwgJWcxCSEgcSwgdG1wMTI5CgljbXAJJWcxLCAlZzMJ ISB0bXAxMjksIEQuMTcxNgoJYm5lCSV4Y2MsIC5MTDMKCSBub3AJIQoJc2V0aGkJJWg0NCguTExD MCksICVnMQkhLCB0bXAxMzAKCW9yCSVnMSwgJW00NCguTExDMCksICVnMQkhIHRtcDEzMCwsIHRt cDEzMQoJc2xseAklZzEsIDEyLCAlZzEJISB0bXAxMzEsLCB0bXAxMzIKCW9yCSVnMSwgJWw0NCgu TExDMCksICVnMQkhIHRtcDEzMiwsIEQuMTcxNAoJYmEscHQJJXhjYywgLkxMNAoJIG5vcAkhCi5M TDM6CglzZXRoaQklaDQ0KC5MTEMxKSwgJWcxCSEsIHRtcDEzMwoJb3IJJWcxLCAlbTQ0KC5MTEMx KSwgJWcxCSEgdG1wMTMzLCwgdG1wMTM0CglzbGx4CSVnMSwgMTIsICVnMQkhIHRtcDEzNCwsIHRt cDEzNQoJb3IJJWcxLCAlbDQ0KC5MTEMxKSwgJWcxCSEgdG1wMTM1LCwgRC4xNzE0Ci5MTDQ6Cglt b3YJJWcxLCAlbzEJISBELjE3MTQsCglzZXRoaQklaDQ0KC5MTEMyKSwgJWcxCSEsIHRtcDEzNgoJ b3IJJWcxLCAlbTQ0KC5MTEMyKSwgJWcxCSEgdG1wMTM2LCwgdG1wMTM3CglzbGx4CSVnMSwgMTIs ICVnMQkhIHRtcDEzNywsIHRtcDEzOAoJb3IJJWcxLCAlbDQ0KC5MTEMyKSwgJW8wCSEgdG1wMTM4 LCwKCWNhbGwJcHJpbnRmLCAwCgkgbm9wCSEsCglzZXRoaQklaDQ0KGhvbGRlciksICVnMQkhLCB0 bXAxNDAKCW9yCSVnMSwgJW00NChob2xkZXIpLCAlZzEJISB0bXAxNDAsLCB0bXAxNDEKCXNsbHgJ JWcxLCAxMiwgJWcxCSEgdG1wMTQxLCwgdG1wMTQyCglvcgklZzEsICVsNDQoaG9sZGVyKSwgJWcx CSEgdG1wMTQyLCwgdG1wMTM5CglsZHgJWyVnMV0sICVnMgkhIGhvbGRlciwgRC4xNzE2CglsZHgJ WyVnMSs4XSwgJWczCSEgaG9sZGVyLCBELjE3MTYKCWxkeAlbJWZwKzIwMTVdLCAlZzEJISBxLCB0 bXAxNDMKCWNtcAklZzEsICVnMgkhIHRtcDE0MywgRC4xNzE2CglibmUJJXhjYywgLkxMOAoJIG5v cAkhCglsZHgJWyVmcCsyMDIzXSwgJWcxCSEgcSwgdG1wMTQ0CgljbXAJJWcxLCAlZzMJISB0bXAx NDQsIEQuMTcxNgoJYmUJJXhjYywgLkxMOQoJIG5vcAkhCi5MTDg6Cgltb3YJMSwgJWcxCSEsIEQu MTcxNQoJYmEscHQJJXhjYywgLkxMNwoJIG5vcAkhCi5MTDk6Cgltb3YJMCwgJWcxCSEsIEQuMTcx NQouTEw3OgoJc3JhCSVnMSwgMCwgJWcxCSEgRC4xNzE1LCB0bXAxNDYKCW1vdgklZzEsICVpMAkh IDxyZXR2YWw+LAoJcmV0dXJuCSVpNys4Cgkgbm9wCgkuc2l6ZQltYWluLCAuLW1haW4KCS5pZGVu dAkiR0NDOiAoR05VKSA1LjUuMCIK --MP_/ei55GH4uaf6iQ+JdO4Xji3W--