Re: zlib not found
Jan Callewaert <[email protected]> Sat, 22 Oct 2005 12:09:35 +0200
| Newsgroups | gmane.comp.breve |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_1820_29339147.1129975775104 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline I have attached my config.log, but I can't make up a lot about it. This should be the relevant part: | /* confdefs.h. */ | | #define PACKAGE_NAME "the breve simulation environment" | #define PACKAGE_TARNAME "the-breve-simulation-environment" | #define PACKAGE_VERSION "2.3" | #define PACKAGE_STRING "the breve simulation environment 2.3" | #define PACKAGE_BUGREPORT "[email protected]" | #ifdef __cplusplus | extern "C" void std::exit (int) throw (); using std::exit; | #endif | #define TIME_WITH_SYS_TIME 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_SYS_TIME_H 1 | #define HAVE_WCTYPE_H 1 | #define HAVE_PTHREAD_H 1 | #define HAVE_PTHREADS 10 | #define HAVE_LINUX_THREADS 1 | #define HAVE_SCHED_H 1 | /* end confdefs.h. */ | | /* Override any gcc2 internal prototype to avoid an error. */ | #ifdef __cplusplus | extern "C" | #endif | /* We use char because int might match the return type of a gcc2 | builtin and then its argument prototype would still apply. */ | char gzopen (); | int | main () | { | gzopen (); | ; | return 0; | } configure:7943: result: no configure:7954: error: Missing zlib library -- see http://www.zlib.org See `config.log' for more details. Regards, Jan 2005/10/21, jon klein <[email protected]>: > > On Oct 21, 2005, at 9:32 AM, Jan Callewaert wrote: > > > $ ./configure > > <...> > > checking for gzopen in -lz... no > > configure: error: Missing zlib library -- see http://www.zlib.org > > See `config.log' for more details. > > > > > > Other programs wich require zlib configure and compile just fine. Is > > this some kind of bug in the configure, or is there a problem on my > > system? > > Have a look at the file config.log -- you should find a more detailed > error describing exactly why it's not working with the zlib you have > installed. > > - jon klein > _______________________________________________ > breve mailing list > [email protected] > http://lists.spiderland.org/mailman/listinfo/breve > ------=_Part_1820_29339147.1129975775104 Content-Type: application/octet-stream; name="config.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.log" VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IHRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmly b25tZW50IGNvbmZpZ3VyZSAyLjMsIHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25m IDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSAKCiMj IC0tLS0tLS0tLSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMgLS0tLS0tLS0tICMjCgpob3N0bmFtZSA9 IGNsdXN0aXMyLmlkaS5udG51Lm5vCnVuYW1lIC1tID0gaTY4Ngp1bmFtZSAtciA9IDIuNi45LTUu MC41LkVMc21wCnVuYW1lIC1zID0gTGludXgKdW5hbWUgLXYgPSAjMSBTTVAgV2VkIEFwciAyMCAw MDoxNjo0MCBCU1QgMjAwNQoKL3Vzci9iaW4vdW5hbWUgLXAgPSB1bmtub3duCi9iaW4vdW5hbWUg LVggICAgID0gdW5rbm93bgoKL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGk2ODYKL3Vzci9iaW4v YXJjaCAtayAgICAgICA9IHVua25vd24KL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IHVua25vd24K aG9zdGluZm8gICAgICAgICAgICAgICA9IHVua25vd24KL2Jpbi9tYWNoaW5lICAgICAgICAgICA9 IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25vd24KL2Jpbi91bml2ZXJzZSAg ICAgICAgICA9IHVua25vd24KClBBVEg6IC9vcHQvbXBpY2gvaW50ZWwvMS4yLjQvYmluClBBVEg6 IC9vcHQvbXBpZXhlYy9pbnRlbC8wLjgwL2JpbgpQQVRIOiAvb3B0L2lmb3J0LzkuMC9iaW4KUEFU SDogL29wdC9pY2MvOS4wL2JpbgpQQVRIOiAvaG9tZS9jYWxsZXdhZS9sb2NhbC9iaW4KUEFUSDog L3Vzci9rZXJiZXJvcy9iaW4KUEFUSDogL3Vzci9sb2NhbC9iaW4KUEFUSDogL2JpbgpQQVRIOiAv dXNyL2JpbgpQQVRIOiAvdXNyL1gxMVI2L2JpbgpQQVRIOiAvb3B0L2dhbmdsaWEvYmluClBBVEg6 IC9vcHQvbWF1aS9iaW4KUEFUSDogL29wdC90b3JxdWUvYmluClBBVEg6IC9vcHQvdG9ycXVlL3Ni aW4KUEFUSDogL29wdC9yb2Nrcy9iaW4KUEFUSDogL29wdC9yb2Nrcy9zYmluClBBVEg6IC9ob21l L2NhbGxld2FlL2JpbgoKCiMjIC0tLS0tLS0tLS0tICMjCiMjIENvcmUgdGVzdHMuICMjCiMjIC0t LS0tLS0tLS0tICMjCgpjb25maWd1cmU6MTM3NjogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUK Y29uZmlndXJlOjEzOTQ6IHJlc3VsdDogaTY4Ni1wYy1saW51eC1nbnUKY29uZmlndXJlOjE0MDI6 IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUKY29uZmlndXJlOjE0MTY6IHJlc3VsdDogaTY4Ni1w Yy1saW51eC1nbnUKY29uZmlndXJlOjE0NzY6IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6MTQ5 MjogZm91bmQgL3Vzci9iaW4vYXIKY29uZmlndXJlOjE1MDI6IHJlc3VsdDogYXIKY29uZmlndXJl OjE1NjE6IGNoZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjE1Nzc6IGZvdW5kIC91c3IvYmluL2dj Ywpjb25maWd1cmU6MTU4NzogcmVzdWx0OiBnY2MKY29uZmlndXJlOjE4MzE6IGNoZWNraW5nIGZv ciBDIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjE4MzQ6IGdjYyAtLXZlcnNpb24gPC9kZXYv bnVsbCA+JjUKZ2NjIChHQ0MpIDMuNC4zIDIwMDQxMjEyIChSZWQgSGF0IDMuNC4zLTkuRUw0KQpD b3B5cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgaXMg ZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRo ZXJlIGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKY29uZmlndXJlOjE4Mzc6ICQ/ID0gMApjb25m aWd1cmU6MTgzOTogZ2NjIC12IDwvZGV2L251bGwgPiY1ClJlYWRpbmcgc3BlY3MgZnJvbSAvdXNy L2xpYi9nY2MvaTM4Ni1yZWRoYXQtbGludXgvMy40LjMvc3BlY3MKQ29uZmlndXJlZCB3aXRoOiAu Li9jb25maWd1cmUgLS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9k aXI9L3Vzci9zaGFyZS9pbmZvIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4 IC0tZGlzYWJsZS1jaGVja2luZyAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFfYXRl eGl0IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1qYXZhLWF3dD1ndGsg LS1ob3N0PWkzODYtcmVkaGF0LWxpbnV4ClRocmVhZCBtb2RlbDogcG9zaXgKZ2NjIHZlcnNpb24g My40LjMgMjAwNDEyMTIgKFJlZCBIYXQgMy40LjMtOS5FTDQpCmNvbmZpZ3VyZToxODQyOiAkPyA9 IDAKY29uZmlndXJlOjE4NDQ6IGdjYyAtViA8L2Rldi9udWxsID4mNQpnY2M6IGAtVicgb3B0aW9u IG11c3QgaGF2ZSBhcmd1bWVudApjb25maWd1cmU6MTg0NzogJD8gPSAxCmNvbmZpZ3VyZToxODcw OiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUKY29uZmln dXJlOjE4NzM6IGdjYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgIC1ML2hvbWUvY2Fs bGV3YWUvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MTg3NjogJD8gPSAwCmNv bmZpZ3VyZToxOTIyOiByZXN1bHQ6IGEub3V0CmNvbmZpZ3VyZToxOTI3OiBjaGVja2luZyB3aGV0 aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZToxOTMzOiAuL2Eub3V0CmNvbmZpZ3Vy ZToxOTM2OiAkPyA9IDAKY29uZmlndXJlOjE5NTM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxOTYw OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcKY29uZmlndXJlOjE5NjI6 IHJlc3VsdDogbm8KY29uZmlndXJlOjE5NjU6IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0 YWJsZXMKY29uZmlndXJlOjE5Njc6IGdjYyAtbyBjb25mdGVzdCAtSS9ob21lL2NhbGxld2FlL2xv Y2FsL2luY2x1ZGUgIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6MTk3MDogJD8gPSAwCmNvbmZpZ3VyZToxOTk1OiByZXN1bHQ6IApjb25maWd1cmU6 MjAwMTogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmlndXJlOjIwMjI6 IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZpZ3VyZToyMDI1OiAkPyA9IDAKY29uZmlndXJlOjIwNDc6IHJlc3VsdDogbwpjb25maWd1cmU6 MjA1MTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyCmNv bmZpZ3VyZToyMDc1OiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICBjb25m dGVzdC5jID4mNQpjb25maWd1cmU6MjA4MTogJD8gPSAwCmNvbmZpZ3VyZToyMDg1OiB0ZXN0IC16 IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6MjA4ODogJD8gPSAwCmNv bmZpZ3VyZToyMDkxOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJlOjIwOTQ6ICQ/ID0gMApj b25maWd1cmU6MjEwNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjIxMTM6IGNoZWNraW5nIHdoZXRo ZXIgZ2NjIGFjY2VwdHMgLWcKY29uZmlndXJlOjIxMzQ6IGdjYyAtYyAtZyAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjIxNDA6ICQ/ID0gMApjb25maWd1cmU6MjE0NDogdGVzdCAteiAKCQkJIHx8 IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjIxNDc6ICQ/ID0gMApjb25maWd1cmU6 MjE1MDogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZToyMTUzOiAkPyA9IDAKY29uZmlndXJl OjIxNjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyMTgxOiBjaGVja2luZyBmb3IgZ2NjIG9wdGlv biB0byBhY2NlcHQgQU5TSSBDCmNvbmZpZ3VyZToyMjUxOiBnY2MgIC1jIC1JL2hvbWUvY2FsbGV3 YWUvbG9jYWwvaW5jbHVkZSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjIyNTc6ICQ/ID0gMApj b25maWd1cmU6MjI2MTogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29u ZmlndXJlOjIyNjQ6ICQ/ID0gMApjb25maWd1cmU6MjI2NzogdGVzdCAtcyBjb25mdGVzdC5vCmNv bmZpZ3VyZToyMjcwOiAkPyA9IDAKY29uZmlndXJlOjIyODg6IHJlc3VsdDogbm9uZSBuZWVkZWQK Y29uZmlndXJlOjIzMDY6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgIGNv bmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MjogZXJyb3I6IHN5bnRheCBlcnJvciBiZWZvcmUgIm1l Igpjb25maWd1cmU6MjMxMjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 ICNpZm5kZWYgX19jcGx1c3BsdXMKfCAgIGNob2tlIG1lCnwgI2VuZGlmCmNvbmZpZ3VyZToyNDk3 OiBjaGVja2luZyBmb3IgZysrCmNvbmZpZ3VyZToyNTEzOiBmb3VuZCAvdXNyL2Jpbi9nKysKY29u ZmlndXJlOjI1MjM6IHJlc3VsdDogZysrCmNvbmZpZ3VyZToyNTM5OiBjaGVja2luZyBmb3IgQysr IGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjI1NDI6IGcrKyAtLXZlcnNpb24gPC9kZXYvbnVs bCA+JjUKZysrIChHQ0MpIDMuNC4zIDIwMDQxMjEyIChSZWQgSGF0IDMuNC4zLTkuRUw0KQpDb3B5 cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgaXMgZnJl ZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJl IGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKY29uZmlndXJlOjI1NDU6ICQ/ID0gMApjb25maWd1 cmU6MjU0NzogZysrIC12IDwvZGV2L251bGwgPiY1ClJlYWRpbmcgc3BlY3MgZnJvbSAvdXNyL2xp Yi9nY2MvaTM4Ni1yZWRoYXQtbGludXgvMy40LjMvc3BlY3MKQ29uZmlndXJlZCB3aXRoOiAuLi9j b25maWd1cmUgLS1wcmVmaXg9L3VzciAtLW1hbmRpcj0vdXNyL3NoYXJlL21hbiAtLWluZm9kaXI9 L3Vzci9zaGFyZS9pbmZvIC0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS10aHJlYWRzPXBvc2l4IC0t ZGlzYWJsZS1jaGVja2luZyAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFibGUtX19jeGFfYXRleGl0 IC0tZGlzYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyAtLWVuYWJsZS1qYXZhLWF3dD1ndGsgLS1o b3N0PWkzODYtcmVkaGF0LWxpbnV4ClRocmVhZCBtb2RlbDogcG9zaXgKZ2NjIHZlcnNpb24gMy40 LjMgMjAwNDEyMTIgKFJlZCBIYXQgMy40LjMtOS5FTDQpCmNvbmZpZ3VyZToyNTUwOiAkPyA9IDAK Y29uZmlndXJlOjI1NTI6IGcrKyAtViA8L2Rldi9udWxsID4mNQpnKys6IGAtVicgb3B0aW9uIG11 c3QgaGF2ZSBhcmd1bWVudApjb25maWd1cmU6MjU1NTogJD8gPSAxCmNvbmZpZ3VyZToyNTU4OiBj aGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlcgpjb25maWd1 cmU6MjU4MjogZysrIC1jICAgY29uZnRlc3QuY2MgPiY1CmNvbmZpZ3VyZToyNTg4OiAkPyA9IDAK Y29uZmlndXJlOjI1OTI6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNv bmZpZ3VyZToyNTk1OiAkPyA9IDAKY29uZmlndXJlOjI1OTg6IHRlc3QgLXMgY29uZnRlc3Qubwpj b25maWd1cmU6MjYwMTogJD8gPSAwCmNvbmZpZ3VyZToyNjE0OiByZXN1bHQ6IHllcwpjb25maWd1 cmU6MjYyMDogY2hlY2tpbmcgd2hldGhlciBnKysgYWNjZXB0cyAtZwpjb25maWd1cmU6MjY0MTog ZysrIC1jIC1nICBjb25mdGVzdC5jYyA+JjUKY29uZmlndXJlOjI2NDc6ICQ/ID0gMApjb25maWd1 cmU6MjY1MTogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJl OjI2NTQ6ICQ/ID0gMApjb25maWd1cmU6MjY1NzogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3Vy ZToyNjYwOiAkPyA9IDAKY29uZmlndXJlOjI2NzE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNzEz OiBnKysgLWMgLWcgLU8yICBjb25mdGVzdC5jYyA+JjUKY29uZmlndXJlOjI3MTk6ICQ/ID0gMApj b25maWd1cmU6MjcyMzogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29u ZmlndXJlOjI3MjY6ICQ/ID0gMApjb25maWd1cmU6MjcyOTogdGVzdCAtcyBjb25mdGVzdC5vCmNv bmZpZ3VyZToyNzMyOiAkPyA9IDAKY29uZmlndXJlOjI3NTg6IGcrKyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmNjID4mNQpjb25mdGVzdC5jYzogSW4gZnVuY3Rpb24gYGludCBtYWluKCknOgpjb25mdGVz dC5jYzoxMzogZXJyb3I6IGBleGl0JyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgdGhpcyBmdW5jdGlv bikKY29uZnRlc3QuY2M6MTM6IGVycm9yOiAoRWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMg cmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQpjb25m aWd1cmU6Mjc2NDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNv bmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxh dGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNp bXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAy LjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiamtAc3BpZGVybGFuZC5vcmciCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgZXhpdCAoNDIpOwp8 ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MjcxMzogZysrIC1jIC1nIC1PMiAgY29u ZnRlc3QuY2MgPiY1CmNvbmZpZ3VyZToyNzE5OiAkPyA9IDAKY29uZmlndXJlOjI3MjM6IHRlc3Qg LXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZToyNzI2OiAkPyA9IDAK Y29uZmlndXJlOjI3Mjk6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6MjczMjogJD8gPSAw CmNvbmZpZ3VyZToyNzU4OiBnKysgLWMgLWcgLU8yICBjb25mdGVzdC5jYyA+JjUKY29uZmlndXJl OjI3NjQ6ICQ/ID0gMApjb25maWd1cmU6Mjc2ODogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBj b25mdGVzdC5lcnIKY29uZmlndXJlOjI3NzE6ICQ/ID0gMApjb25maWd1cmU6Mjc3NDogdGVzdCAt cyBjb25mdGVzdC5vCmNvbmZpZ3VyZToyNzc3OiAkPyA9IDAKY29uZmlndXJlOjI4MDU6IGNoZWNr aW5nIGZvciBqYXIKY29uZmlndXJlOjI4MzQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjI4MDU6IGNo ZWNraW5nIGZvciBmYXN0amFyCmNvbmZpZ3VyZToyODM0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToy ODA1OiBjaGVja2luZyBmb3IgZWphcgpjb25maWd1cmU6MjgzNDogcmVzdWx0OiBubwpjb25maWd1 cmU6Mjg1NDogY2hlY2tpbmcgZm9yIGphdmFjCmNvbmZpZ3VyZToyODgzOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToyODU0OiBjaGVja2luZyBmb3IgZ2NqCmNvbmZpZ3VyZToyODgzOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToyODU0OiBjaGVja2luZyBmb3IgZWdjagpjb25maWd1cmU6Mjg4MzogcmVzdWx0 OiBubwpjb25maWd1cmU6Mjg1NDogY2hlY2tpbmcgZm9yIGd1YXZhYwpjb25maWd1cmU6Mjg4Mzog cmVzdWx0OiBubwpjb25maWd1cmU6Mjg1NDogY2hlY2tpbmcgZm9yIGppa2VzCmNvbmZpZ3VyZToy ODgzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyODk3OiBjaGVja2luZyBpZiA6IHdvcmtzCmNvbmZp Z3VyZToyOTExOiA6ICBUZXN0LmphdmEKY29uZmlndXJlOjI5MTQ6ICQ/ID0gMApjb25maWd1cmU6 MjkyNzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI5Mzk6IGNoZWNraW5nIGZvciBmbGV4CmNvbmZp Z3VyZToyOTY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTM5OiBjaGVja2luZyBmb3IgbGV4CmNv bmZpZ3VyZToyOTY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyOTc4OiBjaGVja2luZyBmb3IgeXl3 cmFwIGluIC1sZmwKY29uZmlndXJlOjMwMDg6IGdjYyAtbyBjb25mdGVzdCAtSS9ob21lL2NhbGxl d2FlL2xvY2FsL2luY2x1ZGUgIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliIGNvbmZ0ZXN0LmMg LWxmbCAgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxmbApjb2xsZWN0MjogbGQgcmV0 dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MzAxNDogJD8gPSAxCmNvbmZpZ3VyZTogZmFp bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUg c2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi amtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2b2lk IHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBw cm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4 dGVybiAiQyIKfCAjZW5kaWYKfCAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRj aCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJn dW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCBjaGFyIHl5d3JhcCAoKTsK fCBpbnQKfCBtYWluICgpCnwgewp8IHl5d3JhcCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjMwNDA6IHJlc3VsdDogbm8KY29uZmlndXJlOjMwNDU6IGNoZWNraW5nIGZvciB5 eXdyYXAgaW4gLWxsCmNvbmZpZ3VyZTozMDc1OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxs ZXdhZS9sb2NhbC9pbmNsdWRlICAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiBjb25mdGVzdC5j IC1sbCAgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxsCmNvbGxlY3QyOiBsZCByZXR1 cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTozMDgxOiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50Igp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJ0aGUtYnJldmUtc2ltdWxhdGlvbi1lbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInRoZSBicmV2ZSBz aW11bGF0aW9uIGVudmlyb25tZW50IDIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJq a0BzcGlkZXJsYW5kLm9yZyIKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiIHZvaWQg c3RkOjpleGl0IChpbnQpIHRocm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7CnwgI2VuZGlmCnwgLyog ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0 ZXJuICJDIgp8ICNlbmRpZgp8IC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1 bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8IGNoYXIgeXl3cmFwICgpOwp8 IGludAp8IG1haW4gKCkKfCB7CnwgeXl3cmFwICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpj b25maWd1cmU6MzEwNzogcmVzdWx0OiBubwpjb25maWd1cmU6MzIwOTogY2hlY2tpbmcgd2hldGhl ciBtYWtlIHNldHMgJChNQUtFKQpjb25maWd1cmU6MzIyOTogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjMyNzk6IGNoZWNraW5nIGZvciByYW5saWIKY29uZmlndXJlOjMyOTU6IGZvdW5kIC91c3IvYmlu L3JhbmxpYgpjb25maWd1cmU6MzMwNjogcmVzdWx0OiByYW5saWIKY29uZmlndXJlOjMzMjI6IGNo ZWNraW5nIGZvciBiaXNvbgpjb25maWd1cmU6MzM1MTogcmVzdWx0OiBubwpjb25maWd1cmU6MzMy MjogY2hlY2tpbmcgZm9yIGJ5YWNjCmNvbmZpZ3VyZTozMzUxOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTozMzcxOiBjaGVja2luZyBmb3IgbWtkZXAKY29uZmlndXJlOjM0MDQ6IHJlc3VsdDogbm8KY29u ZmlndXJlOjM0MTA6IGNoZWNraW5nIGZvciBtYWtlZGVwZW5kCmNvbmZpZ3VyZTozNDI4OiBmb3Vu ZCAvdXNyL1gxMVI2L2Jpbi9tYWtlZGVwZW5kCmNvbmZpZ3VyZTozNDQwOiByZXN1bHQ6IC91c3Iv WDExUjYvYmluL21ha2VkZXBlbmQKY29uZmlndXJlOjM0NDg6IGNoZWNraW5nIGhvdyB0byBnZW5l cmF0ZSBkZXBlbmRlbmN5IGluZm8KY29uZmlndXJlOjM0NTE6IHJlc3VsdDogZysrIC1NTQpjb25m aWd1cmU6MzQ3NDogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IKY29uZmln dXJlOjM1MDk6IGdjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6MzUxNTogJD8gPSAwCmNvbmZp Z3VyZTozNTQ3OiBnY2MgLUUgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzoxMjoyODogYWNfbm9uZXhp c3RlbnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpjb25maWd1cmU6MzU1MzogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1l bnQiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiamtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg ZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0 Owp8ICNlbmRpZgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8YWNfbm9uZXhp c3RlbnQuaD4KY29uZmlndXJlOjM1OTI6IHJlc3VsdDogZ2NjIC1FCmNvbmZpZ3VyZTozNjE2OiBn Y2MgLUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjM2MjI6ICQ/ID0gMApjb25maWd1cmU6MzY1NDog Z2NjIC1FICBjb25mdGVzdC5jCmNvbmZ0ZXN0LmM6MTI6Mjg6IGFjX25vbmV4aXN0ZW50Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKY29uZmlndXJlOjM2NjA6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAKfCAjZGVmaW5lIFBB Q0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50Igp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyLjMiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAidGhlIGJy ZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImprQHNwaWRlcmxhbmQub3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIg dm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsKfCAjZW5kaWYK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNv bmZpZ3VyZTozNzA0OiBjaGVja2luZyBmb3IgWApjb25maWd1cmU6MzkzNDogcmVzdWx0OiBsaWJy YXJpZXMgL3Vzci9YMTFSNi9saWIsIGhlYWRlcnMgL3Vzci9YMTFSNi9pbmNsdWRlCmNvbmZpZ3Vy ZTo0MTA2OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAt TC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiBjb25mdGVzdC5jICAgLUwvdXNyL1gxMVI2L2xpYiAt bFgxMSA+JjUKY29uZmlndXJlOjQxMTI6ICQ/ID0gMApjb25maWd1cmU6NDExNjogdGVzdCAteiAK CQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjQxMTk6ICQ/ID0gMApjb25m aWd1cmU6NDEyMjogdGVzdCAtcyBjb25mdGVzdApjb25maWd1cmU6NDEyNTogJD8gPSAwCmNvbmZp Z3VyZTo0MjgzOiBjaGVja2luZyBmb3IgZ2V0aG9zdGJ5bmFtZQpjb25maWd1cmU6NDM0MDogZ2Nj IC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgLUwvaG9tZS9jYWxs ZXdhZS9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0MzQ2OiAkPyA9IDAKY29u ZmlndXJlOjQzNTA6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZp Z3VyZTo0MzUzOiAkPyA9IDAKY29uZmlndXJlOjQzNTY6IHRlc3QgLXMgY29uZnRlc3QKY29uZmln dXJlOjQzNTk6ICQ/ID0gMApjb25maWd1cmU6NDM3MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ1 MjI6IGNoZWNraW5nIGZvciBjb25uZWN0CmNvbmZpZ3VyZTo0NTc5OiBnY2MgLW8gY29uZnRlc3Qg LUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xp YiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjQ1ODU6ICQ/ID0gMApjb25maWd1cmU6NDU4OTog dGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjQ1OTI6ICQ/ ID0gMApjb25maWd1cmU6NDU5NTogdGVzdCAtcyBjb25mdGVzdApjb25maWd1cmU6NDU5ODogJD8g PSAwCmNvbmZpZ3VyZTo0NjEwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDY4NTogY2hlY2tpbmcg Zm9yIHJlbW92ZQpjb25maWd1cmU6NDc0MjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3 YWUvbG9jYWwvaW5jbHVkZSAgLUwvaG9tZS9jYWxsZXdhZS9sb2NhbC9saWIgY29uZnRlc3QuYyAg PiY1CmNvbmZpZ3VyZTo0NzQ4OiAkPyA9IDAKY29uZmlndXJlOjQ3NTI6IHRlc3QgLXogCgkJCSB8 fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo0NzU1OiAkPyA9IDAKY29uZmlndXJl OjQ3NTg6IHRlc3QgLXMgY29uZnRlc3QKY29uZmlndXJlOjQ3NjE6ICQ/ID0gMApjb25maWd1cmU6 NDc3MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ4NDg6IGNoZWNraW5nIGZvciBzaG1hdApjb25m aWd1cmU6NDkwNTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVk ZSAgLUwvaG9tZS9jYWxsZXdhZS9sb2NhbC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0 OTExOiAkPyA9IDAKY29uZmlndXJlOjQ5MTU6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCmNvbmZpZ3VyZTo0OTE4OiAkPyA9IDAKY29uZmlndXJlOjQ5MjE6IHRlc3QgLXMg Y29uZnRlc3QKY29uZmlndXJlOjQ5MjQ6ICQ/ID0gMApjb25maWd1cmU6NDkzNjogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjUwMjA6IGNoZWNraW5nIGZvciBJY2VDb25uZWN0aW9uTnVtYmVyIGluIC1s SUNFCmNvbmZpZ3VyZTo1MDUwOiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxsZXdhZS9sb2Nh bC9pbmNsdWRlICAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiAtTC91c3IvWDExUjYvbGliIGNv bmZ0ZXN0LmMgLWxJQ0UgICA+JjUKY29uZmlndXJlOjUwNTY6ICQ/ID0gMApjb25maWd1cmU6NTA2 MDogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjUwNjM6 ICQ/ID0gMApjb25maWd1cmU6NTA2NjogdGVzdCAtcyBjb25mdGVzdApjb25maWd1cmU6NTA2OTog JD8gPSAwCmNvbmZpZ3VyZTo1MDgyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTE3NjogY2hlY2tp bmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5jbHVkZWQKY29u ZmlndXJlOjUyMDE6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91 c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTIwNzogJD8gPSAwCmNv bmZpZ3VyZTo1MjExOiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25m aWd1cmU6NTIxNDogJD8gPSAwCmNvbmZpZ3VyZTo1MjE3OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29u ZmlndXJlOjUyMjA6ICQ/ID0gMApjb25maWd1cmU6NTIzMTogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjUyNDE6IGNoZWNraW5nIGZvciBlZ3JlcApjb25maWd1cmU6NTI1MTogcmVzdWx0OiBncmVwIC1F CmNvbmZpZ3VyZTo1MjU2OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcwpjb25maWd1 cmU6NTI4MTogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9Y MTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1Mjg3OiAkPyA9IDAKY29uZmln dXJlOjUyOTE6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3Vy ZTo1Mjk0OiAkPyA9IDAKY29uZmlndXJlOjUyOTc6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1 cmU6NTMwMDogJD8gPSAwCmNvbmZpZ3VyZTo1Mzg5OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9j YWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgLUwvaG9tZS9jYWxs ZXdhZS9sb2NhbC9saWIgIC1ML3Vzci9YMTFSNi9saWIgY29uZnRlc3QuYyAtbGdsdXQgLWxHTFUg LWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5u b3QgZmluZCAtbGdsdXQKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmln dXJlOjUzOTI6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzIDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaC4gICovCnwgCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50Igp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJ0aGUtYnJldmUtc2ltdWxhdGlvbi1lbnZpcm9ubWVu dCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50IDIuMyIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJqa0BzcGlkZXJsYW5kLm9yZyIKfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBl eHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpIHRocm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7 CnwgI2VuZGlmCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lTX1RJTUUgMQp8IC8qIGVuZCBjb25mZGVm cy5oLiAgKi8KfCAjaW5jbHVkZSA8Y3R5cGUuaD4KfCAjaWYgKCgnICcgJiAweDBGRikgPT0gMHgw MjApCnwgIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQp8ICMg ZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkK fCAjZWxzZQp8ICMgZGVmaW5lIElTTE9XRVIoYykgCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9 ICdpJykgCQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIAkJICAgICB8fCAoJ3Mn IDw9IChjKSAmJiAoYykgPD0gJ3onKSkKfCAjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMp ID8gKChjKSB8IDB4NDApIDogKGMpKQp8ICNlbmRpZgp8IAp8ICNkZWZpbmUgWE9SKGUsIGYpICgo KGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAgIGlu dCBpOwp8ICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQp8ICAgICBpZiAoWE9SIChpc2xvd2Vy IChpKSwgSVNMT1dFUiAoaSkpCnwgCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQp8ICAg ICAgIGV4aXQoMik7CnwgICBleGl0ICgwKTsKfCB9CmNvbmZpZ3VyZTo1NDEyOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo1NDM2OiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKY29uZmlndXJlOjU0NTI6 IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDExUjYvaW5j bHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTQ1ODogJD8gPSAwCmNvbmZpZ3VyZTo1NDYy OiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6NTQ2NTog JD8gPSAwCmNvbmZpZ3VyZTo1NDY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJlOjU0NzE6 ICQ/ID0gMApjb25maWd1cmU6NTQ4MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU0MzY6IGNoZWNr aW5nIGZvciBzeXMvc3RhdC5oCmNvbmZpZ3VyZTo1NDUyOiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdh ZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29u ZmlndXJlOjU0NTg6ICQ/ID0gMApjb25maWd1cmU6NTQ2MjogdGVzdCAteiAKCQkJIHx8IHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjU0NjU6ICQ/ID0gMApjb25maWd1cmU6NTQ2ODog dGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZTo1NDcxOiAkPyA9IDAKY29uZmlndXJlOjU0ODI6 IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDM2OiBjaGVja2luZyBmb3Igc3RkbGliLmgKY29uZmln dXJlOjU0NTI6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3Iv WDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTQ1ODogJD8gPSAwCmNvbmZp Z3VyZTo1NDYyOiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1 cmU6NTQ2NTogJD8gPSAwCmNvbmZpZ3VyZTo1NDY4OiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmln dXJlOjU0NzE6ICQ/ID0gMApjb25maWd1cmU6NTQ4MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU0 MzY6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1cmU6NTQ1MjogZ2NjIC1jIC1JL2hvbWUv Y2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMg PiY1CmNvbmZpZ3VyZTo1NDU4OiAkPyA9IDAKY29uZmlndXJlOjU0NjI6IHRlc3QgLXogCgkJCSB8 fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NDY1OiAkPyA9IDAKY29uZmlndXJl OjU0Njg6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTQ3MTogJD8gPSAwCmNvbmZpZ3Vy ZTo1NDgyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTQzNjogY2hlY2tpbmcgZm9yIG1lbW9yeS5o CmNvbmZpZ3VyZTo1NDUyOiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAg LUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU0NTg6ICQ/ID0g MApjb25maWd1cmU6NTQ2MjogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIK Y29uZmlndXJlOjU0NjU6ICQ/ID0gMApjb25maWd1cmU6NTQ2ODogdGVzdCAtcyBjb25mdGVzdC5v CmNvbmZpZ3VyZTo1NDcxOiAkPyA9IDAKY29uZmlndXJlOjU0ODI6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo1NDM2OiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCmNvbmZpZ3VyZTo1NDUyOiBnY2MgLWMg LUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29u ZnRlc3QuYyA+JjUKY29uZmlndXJlOjU0NTg6ICQ/ID0gMApjb25maWd1cmU6NTQ2MjogdGVzdCAt eiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjU0NjU6ICQ/ID0gMApj b25maWd1cmU6NTQ2ODogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZTo1NDcxOiAkPyA9IDAK Y29uZmlndXJlOjU0ODI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDM2OiBjaGVja2luZyBmb3Ig aW50dHlwZXMuaApjb25maWd1cmU6NTQ1MjogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwv aW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1 NDU4OiAkPyA9IDAKY29uZmlndXJlOjU0NjI6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NDY1OiAkPyA9IDAKY29uZmlndXJlOjU0Njg6IHRlc3QgLXMg Y29uZnRlc3Qubwpjb25maWd1cmU6NTQ3MTogJD8gPSAwCmNvbmZpZ3VyZTo1NDgyOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6NTQzNjogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo1NDUy OiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2lu Y2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU0NTg6ICQ/ID0gMApjb25maWd1cmU6NTQ2 MjogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIKY29uZmlndXJlOjU0NjU6 ICQ/ID0gMApjb25maWd1cmU6NTQ2ODogdGVzdCAtcyBjb25mdGVzdC5vCmNvbmZpZ3VyZTo1NDcx OiAkPyA9IDAKY29uZmlndXJlOjU0ODI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NDM2OiBjaGVj a2luZyBmb3IgdW5pc3RkLmgKY29uZmlndXJlOjU0NTI6IGdjYyAtYyAtSS9ob21lL2NhbGxld2Fl L2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25m aWd1cmU6NTQ1ODogJD8gPSAwCmNvbmZpZ3VyZTo1NDYyOiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6NTQ2NTogJD8gPSAwCmNvbmZpZ3VyZTo1NDY4OiB0 ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJlOjU0NzE6ICQ/ID0gMApjb25maWd1cmU6NTQ4Mjog cmVzdWx0OiB5ZXMKY29uZmlndXJlOjU1MDk6IGNoZWNraW5nIHN5cy90aW1lLmggdXNhYmlsaXR5 CmNvbmZpZ3VyZTo1NTIxOiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAg LUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjU1Mjc6ICQ/ID0g MApjb25maWd1cmU6NTUzMTogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnIK Y29uZmlndXJlOjU1MzQ6ICQ/ID0gMApjb25maWd1cmU6NTUzNzogdGVzdCAtcyBjb25mdGVzdC5v CmNvbmZpZ3VyZTo1NTQwOiAkPyA9IDAKY29uZmlndXJlOjU1NTA6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo1NTU0OiBjaGVja2luZyBzeXMvdGltZS5oIHByZXNlbmNlCmNvbmZpZ3VyZTo1NTY0OiBn Y2MgLUUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZTo1NTcwOiAk PyA9IDAKY29uZmlndXJlOjU1OTA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1NjI1OiBjaGVja2lu ZyBmb3Igc3lzL3RpbWUuaApjb25maWd1cmU6NTYzMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU1 MDk6IGNoZWNraW5nIHdjdHlwZS5oIHVzYWJpbGl0eQpjb25maWd1cmU6NTUyMTogZ2NjIC1jIC1J L2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0 ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1NTI3OiAkPyA9IDAKY29uZmlndXJlOjU1MzE6IHRlc3QgLXog CgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NTM0OiAkPyA9IDAKY29u ZmlndXJlOjU1Mzc6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTU0MDogJD8gPSAwCmNv bmZpZ3VyZTo1NTUwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTU1NDogY2hlY2tpbmcgd2N0eXBl LmggcHJlc2VuY2UKY29uZmlndXJlOjU1NjQ6IGdjYyAtRSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRl IGNvbmZ0ZXN0LmMKY29uZmlndXJlOjU1NzA6ICQ/ID0gMApjb25maWd1cmU6NTU5MDogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjU2MjU6IGNoZWNraW5nIGZvciB3Y3R5cGUuaApjb25maWd1cmU6NTYz MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjU2NDY6IGNoZWNraW5nIGZvciBhbiBBTlNJIEMtY29u Zm9ybWluZyBjb25zdApjb25maWd1cmU6NTcxMzogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9j YWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy ZTo1NzE5OiAkPyA9IDAKY29uZmlndXJlOjU3MjM6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1NzI2OiAkPyA9IDAKY29uZmlndXJlOjU3Mjk6IHRlc3Qg LXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTczMjogJD8gPSAwCmNvbmZpZ3VyZTo1NzQzOiByZXN1 bHQ6IHllcwpjb25maWd1cmU6NTc1MzogY2hlY2tpbmcgZm9yIGlubGluZQpjb25maWd1cmU6NTc3 NDogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9p bmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo1NzgwOiAkPyA9IDAKY29uZmlndXJlOjU3 ODQ6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1Nzg3 OiAkPyA9IDAKY29uZmlndXJlOjU3OTA6IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTc5 MzogJD8gPSAwCmNvbmZpZ3VyZTo1ODA1OiByZXN1bHQ6IGlubGluZQpjb25maWd1cmU6NTgyNDog Y2hlY2tpbmcgZm9yIHNpemVfdApjb25maWd1cmU6NTg0ODogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3 YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNv bmZpZ3VyZTo1ODU0OiAkPyA9IDAKY29uZmlndXJlOjU4NTg6IHRlc3QgLXogCgkJCSB8fCB0ZXN0 ICEgLXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo1ODYxOiAkPyA9IDAKY29uZmlndXJlOjU4NjQ6 IHRlc3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NTg2NzogJD8gPSAwCmNvbmZpZ3VyZTo1ODc4 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTg5MjogY2hlY2tpbmcgZm9yIGlzbmFuIGluIC1sbQpj b25maWd1cmU6NTkyMjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5j bHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAt TC91c3IvWDExUjYvbGliIGNvbmZ0ZXN0LmMgLWxtICAtbGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAt bFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGds dXQKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjU5Mjg6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8K fCAKfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1l bnQiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9uLWVudmly b25tZW50Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjMiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImprQHNwaWRlcmxhbmQub3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1 cwp8IGV4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6 ZXhpdDsKfCAjZW5kaWYKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBI QVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBI QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9N RU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZ UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1dDVFlQRV9IIDEK fCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJu YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMK fCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgY2hhciBpc25hbiAo KTsKfCBpbnQKfCBtYWluICgpCnwgewp8IGlzbmFuICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7Cnwg fQpjb25maWd1cmU6NTk1NDogcmVzdWx0OiBubwpjb25maWd1cmU6NTk4MDogY2hlY2tpbmcgcHRo cmVhZC5oIHVzYWJpbGl0eQpjb25maWd1cmU6NTk5MjogZ2NjIC1jIC1JL2hvbWUvY2FsbGV3YWUv bG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp Z3VyZTo1OTk4OiAkPyA9IDAKY29uZmlndXJlOjYwMDI6IHRlc3QgLXogCgkJCSB8fCB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyCmNvbmZpZ3VyZTo2MDA1OiAkPyA9IDAKY29uZmlndXJlOjYwMDg6IHRl c3QgLXMgY29uZnRlc3Qubwpjb25maWd1cmU6NjAxMTogJD8gPSAwCmNvbmZpZ3VyZTo2MDIxOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6NjAyNTogY2hlY2tpbmcgcHRocmVhZC5oIHByZXNlbmNlCmNv bmZpZ3VyZTo2MDM1OiBnY2MgLUUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jCmNv bmZpZ3VyZTo2MDQxOiAkPyA9IDAKY29uZmlndXJlOjYwNjE6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo2MDk2OiBjaGVja2luZyBmb3IgcHRocmVhZC5oCmNvbmZpZ3VyZTo2MTAzOiByZXN1bHQ6IHll cwpjb25maWd1cmU6NjEyMDogY2hlY2tpbmcgUE9TSVggdGhyZWFkIHZlcnNpb24KY29uZmlndXJl OjYxNDY6IGdjYyAtYyAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDEx UjYvaW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjE1MjogJD8gPSAwCmNvbmZpZ3Vy ZTo2MTU2OiB0ZXN0IC16IAoJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgpjb25maWd1cmU6 NjE1OTogJD8gPSAwCmNvbmZpZ3VyZTo2MTYyOiB0ZXN0IC1zIGNvbmZ0ZXN0Lm8KY29uZmlndXJl OjYxNjU6ICQ/ID0gMApjb25maWd1cmU6NjI1MzogcmVzdWx0OiAxMApjb25maWd1cmU6NjI3Mjog Y2hlY2tpbmcgZm9yIExpbnV4VGhyZWFkcyBwdGhyZWFkLmgKY29uZmlndXJlOjYyOTU6IHJlc3Vs dDogeWVzCmNvbmZpZ3VyZTo2MzA2OiBjaGVja2luZyBmb3IgR05VIFB0aCBwdGhyZWFkLmgKY29u ZmlndXJlOjYzMzM6IHJlc3VsdDogbm8KY29uZmlndXJlOjYzNTI6IGNoZWNraW5nIHNjaGVkLmgg dXNhYmlsaXR5CmNvbmZpZ3VyZTo2MzY0OiBnY2MgLWMgLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9p bmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYz NzA6ICQ/ID0gMApjb25maWd1cmU6NjM3NDogdGVzdCAteiAKCQkJIHx8IHRlc3QgISAtcyBjb25m dGVzdC5lcnIKY29uZmlndXJlOjYzNzc6ICQ/ID0gMApjb25maWd1cmU6NjM4MDogdGVzdCAtcyBj b25mdGVzdC5vCmNvbmZpZ3VyZTo2MzgzOiAkPyA9IDAKY29uZmlndXJlOjYzOTM6IHJlc3VsdDog eWVzCmNvbmZpZ3VyZTo2Mzk3OiBjaGVja2luZyBzY2hlZC5oIHByZXNlbmNlCmNvbmZpZ3VyZTo2 NDA3OiBnY2MgLUUgICAtSS91c3IvWDExUjYvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZTo2 NDEzOiAkPyA9IDAKY29uZmlndXJlOjY0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2NDY4OiBj aGVja2luZyBmb3Igc2NoZWQuaApjb25maWd1cmU6NjQ3NTogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjY0OTA6IGNoZWNraW5nIGZvciBwdGhyZWFkX2NyZWF0ZSBpbiBkZWZhdWx0IGxpYnJhcmllcwpj b25maWd1cmU6NjY4MTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5j bHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAt TC91c3IvWDExUjYvbGliIGNvbmZ0ZXN0LmMgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAg LWxYMTEgIC1sU00gLWxJQ0UgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxnbHV0CmNv bGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo2Njg0OiAkPyA9IDEK Y29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUgc2lt dWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiamtA c3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2b2lkIHN0 ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8ICNkZWZp bmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZpbmUgSEFWRV9MSU5VWF9USFJF QURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4KfCAjaWYg SEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4KfCAjZW5kaWYKfCAjaWZuZGVm IE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYKfCAKfCBzdGF0aWMgdm9pZCAq dGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lkICopIChwID09IE5VTEwpOwp8 IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQgYXJnYzsKfCAJY2hhciAqKmFy Z3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24gKi8KfCAjaWZuZGVmIFBUSFJF QURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRAkxCnwg I2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8IAlpbnQgZGV0YWNoID0gUFRI UkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPiA0CnwgCS8qIEZp bmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7CnwgCnwgCXN0YXR1cyA9IHB0 aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0dXM7Cnwg CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9zZXRkZXRh Y2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMgPCAwICkgc3RhdHVzID0gZXJy bm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlKCZhdHRy LCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAJc3Rh dHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywgTlVMTCApOwp8ICNpZiBIQVZF X1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1cyA9IGVycm5vOwp8ICNlbmRp Zgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxzZQp8IAkvKiBEcmFmdCA0IHB0 aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgcHRocmVhZF9hdHRyX2Rl ZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBlcnJubzsKfCAKfCAJ LyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8KfCAJLyogaXQgc2hvdWxkIHJl bWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8IAlzbGVlcCggMSApOwp8IAp8 IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBl cnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9USFJFQURTCnwgCXB0aHJlYWRf a2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwgCXJldHVybiAwOwp8IAp8IH0K fCAKY29uZmlndXJlOjY3MDM6IHJlc3VsdDogbm8KY29uZmlndXJlOjY3MTQ6IGNoZWNraW5nIGZv ciBwdGhyZWFkIGxpbmsgd2l0aCAta3RocmVhZApjb25maWd1cmU6NjkwOTogZ2NjIC1vIGNvbmZ0 ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1JL3Vzci9YMTFSNi9pbmNsdWRl IC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAtTC91c3IvWDExUjYvbGliIGNvbmZ0ZXN0LmMg LWt0aHJlYWQgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAgLWxYMTEgIC1sU00gLWxJQ0Ug ID4mNQpnY2M6IHVucmVjb2duaXplZCBvcHRpb24gYC1rdGhyZWFkJwovdXNyL2Jpbi9sZDogY2Fu bm90IGZpbmQgLWxnbHV0CmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZp Z3VyZTo2OTEyOiAkPyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1l bnQiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RS SU5HICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiamtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwg ZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0 Owp8ICNlbmRpZgp8ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVf U1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9S WV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNf SCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8 ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNk ZWZpbmUgSEFWRV9QVEhSRUFEX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZp bmUgSEFWRV9MSU5VWF9USFJFQURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUg PHB0aHJlYWQuaD4KfCAjaWYgSEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4K fCAjZW5kaWYKfCAjaWZuZGVmIE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYK fCAKfCBzdGF0aWMgdm9pZCAqdGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lk ICopIChwID09IE5VTEwpOwp8IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQg YXJnYzsKfCAJY2hhciAqKmFyZ3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24g Ki8KfCAjaWZuZGVmIFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NS RUFURV9ERVRBQ0hFRAkxCnwgI2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8 IAlpbnQgZGV0YWNoID0gUFRIUkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRI UkVBRFMgPiA0CnwgCS8qIEZpbmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7 CnwgCnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyAp IHJldHVybiBzdGF0dXM7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0 aHJlYWRfYXR0cl9zZXRkZXRhY2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMg PCAwICkgc3RhdHVzID0gZXJybm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3Nl dGRldGFjaHN0YXRlKCZhdHRyLCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0 dXJuIHN0YXR1czsKfCAJc3RhdHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywg TlVMTCApOwp8ICNpZiBIQVZFX1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1 cyA9IGVycm5vOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxz ZQp8IAkvKiBEcmFmdCA0IHB0aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAm dCwgcHRocmVhZF9hdHRyX2RlZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJl dHVybiBlcnJubzsKfCAKfCAJLyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8K fCAJLyogaXQgc2hvdWxkIHJlbWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8 IAlzbGVlcCggMSApOwp8IAp8IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYo IHN0YXR1cyApIHJldHVybiBlcnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9U SFJFQURTCnwgCXB0aHJlYWRfa2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwg CXJldHVybiAwOwp8IAp8IH0KfCAKY29uZmlndXJlOjY5MzU6IHJlc3VsdDogbm8KY29uZmlndXJl OjY5NDc6IGNoZWNraW5nIGZvciBwdGhyZWFkIGxpbmsgd2l0aCAtcHRocmVhZApjb25maWd1cmU6 NzE0MjogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1J L3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAtTC91c3IvWDEx UjYvbGliIGNvbmZ0ZXN0LmMgLXB0aHJlYWQgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAg LWxYMTEgIC1sU00gLWxJQ0UgID4mNQovdXNyL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxnbHV0CmNv bGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo3MTQ1OiAkPyA9IDEK Y29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJldmUgc2lt dWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiamtA c3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2b2lkIHN0 ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8ICNkZWZp bmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNk ZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp bmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhB VkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF X1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNf VElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFE X0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZpbmUgSEFWRV9MSU5VWF9USFJF QURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4KfCAjaWYg SEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4KfCAjZW5kaWYKfCAjaWZuZGVm IE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYKfCAKfCBzdGF0aWMgdm9pZCAq dGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lkICopIChwID09IE5VTEwpOwp8 IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQgYXJnYzsKfCAJY2hhciAqKmFy Z3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24gKi8KfCAjaWZuZGVmIFBUSFJF QURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRAkxCnwg I2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8IAlpbnQgZGV0YWNoID0gUFRI UkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPiA0CnwgCS8qIEZp bmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7CnwgCnwgCXN0YXR1cyA9IHB0 aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0dXM7Cnwg CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9zZXRkZXRh Y2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMgPCAwICkgc3RhdHVzID0gZXJy bm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlKCZhdHRy LCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAJc3Rh dHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywgTlVMTCApOwp8ICNpZiBIQVZF X1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1cyA9IGVycm5vOwp8ICNlbmRp Zgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxzZQp8IAkvKiBEcmFmdCA0IHB0 aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgcHRocmVhZF9hdHRyX2Rl ZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBlcnJubzsKfCAKfCAJ LyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8KfCAJLyogaXQgc2hvdWxkIHJl bWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8IAlzbGVlcCggMSApOwp8IAp8 IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBl cnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9USFJFQURTCnwgCXB0aHJlYWRf a2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwgCXJldHVybiAwOwp8IAp8IH0K fCAKY29uZmlndXJlOjcxNjg6IHJlc3VsdDogbm8KY29uZmlndXJlOjcxODA6IGNoZWNraW5nIGZv ciBwdGhyZWFkIGxpbmsgd2l0aCAtbHB0aHJlYWQKY29uZmlndXJlOjczNzU6IGdjYyAtbyBjb25m dGVzdCAtSS9ob21lL2NhbGxld2FlL2xvY2FsL2luY2x1ZGUgICAtSS91c3IvWDExUjYvaW5jbHVk ZSAtTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYiAgLUwvdXNyL1gxMVI2L2xpYiBjb25mdGVzdC5j IC1scHRocmVhZCAtbGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElD RSAgPiY1Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbGdsdXQKY29sbGVjdDI6IGxkIHJldHVy bmVkIDEgZXhpdCBzdGF0dXMKY29uZmlndXJlOjczNzg6ICQ/ID0gMQpjb25maWd1cmU6IHByb2dy YW0gZXhpdGVkIHdpdGggc3RhdHVzIDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaC4gICovCnwgCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgInRoZSBicmV2ZSBz aW11bGF0aW9uIGVudmlyb25tZW50Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJ0aGUtYnJl dmUtc2ltdWxhdGlvbi1lbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4z Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25t ZW50IDIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJqa0BzcGlkZXJsYW5kLm9yZyIK fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiIHZvaWQgc3RkOjpleGl0IChpbnQpIHRo cm93ICgpOyB1c2luZyBzdGQ6OmV4aXQ7CnwgI2VuZGlmCnwgI2RlZmluZSBUSU1FX1dJVEhfU1lT X1RJTUUgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19T VEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19I IDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8 ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNk ZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZp bmUgSEFWRV9XQ1RZUEVfSCAxCnwgI2RlZmluZSBIQVZFX1BUSFJFQURfSCAxCnwgI2RlZmluZSBI QVZFX1BUSFJFQURTIDEwCnwgI2RlZmluZSBIQVZFX0xJTlVYX1RIUkVBRFMgMQp8ICNkZWZpbmUg SEFWRV9TQ0hFRF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogcHRocmVhZCB0ZXN0 IGhlYWRlcnMgKi8KfCAjaW5jbHVkZSA8cHRocmVhZC5oPgp8ICNpZiBIQVZFX1BUSFJFQURTIDwg Nwp8ICNpbmNsdWRlIDxlcnJuby5oPgp8ICNlbmRpZgp8ICNpZm5kZWYgTlVMTAp8ICNkZWZpbmUg TlVMTCAodm9pZCopMAp8ICNlbmRpZgp8IAp8IHN0YXRpYyB2b2lkICp0YXNrKHApCnwgCXZvaWQg KnA7Cnwgewp8IAlyZXR1cm4gKHZvaWQgKikgKHAgPT0gTlVMTCk7CnwgfQp8IAp8IAp8IGludCBt YWluKGFyZ2MsIGFyZ3YpCnwgCWludCBhcmdjOwp8IAljaGFyICoqYXJndjsKfCB7CnwgCnwgCS8q IHB0aHJlYWQgdGVzdCBmdW5jdGlvbiAqLwp8ICNpZm5kZWYgUFRIUkVBRF9DUkVBVEVfREVUQUNI RUQKfCAjZGVmaW5lCVBUSFJFQURfQ1JFQVRFX0RFVEFDSEVECTEKfCAjZW5kaWYKfCAJcHRocmVh ZF90IHQ7CnwgCWludCBzdGF0dXM7CnwgCWludCBkZXRhY2ggPSBQVEhSRUFEX0NSRUFURV9ERVRB Q0hFRDsKfCAKfCAjaWYgSEFWRV9QVEhSRUFEUyA+IDQKfCAJLyogRmluYWwgcHRocmVhZHMgKi8K fCAJcHRocmVhZF9hdHRyX3QgYXR0cjsKfCAKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX2luaXQo JmF0dHIpOwp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAKfCAjaWYgSEFWRV9QVEhS RUFEUyA8IDcKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRlKCZhdHRyLCAm ZGV0YWNoKTsKfCAJaWYoIHN0YXR1cyA8IDAgKSBzdGF0dXMgPSBlcnJubzsKfCAjZWxzZQp8IAlz dGF0dXMgPSBwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUoJmF0dHIsIGRldGFjaCk7CnwgI2Vu ZGlmCnwgCWlmKCBzdGF0dXMgKSByZXR1cm4gc3RhdHVzOwp8IAlzdGF0dXMgPSBwdGhyZWFkX2Ny ZWF0ZSggJnQsICZhdHRyLCB0YXNrLCBOVUxMICk7CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3Cnwg CWlmKCBzdGF0dXMgPCAwICkgc3RhdHVzID0gZXJybm87CnwgI2VuZGlmCnwgCWlmKCBzdGF0dXMg KSByZXR1cm4gc3RhdHVzOwp8ICNlbHNlCnwgCS8qIERyYWZ0IDQgcHRocmVhZHMgKi8KfCAJc3Rh dHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCBwdGhyZWFkX2F0dHJfZGVmYXVsdCwgdGFzaywgTlVM TCApOwp8IAlpZiggc3RhdHVzICkgcmV0dXJuIGVycm5vOwp8IAp8IAkvKiBnaXZlIHRocmVhZCBh IGNoYW5jZSB0byBjb21wbGV0ZSAqLwp8IAkvKiBpdCBzaG91bGQgcmVtYWluIGpvaW5hYmxlIGFu ZCBoZW5jZSBkZXRhY2hhYmxlICovCnwgCXNsZWVwKCAxICk7CnwgCnwgCXN0YXR1cyA9IHB0aHJl YWRfZGV0YWNoKCAmdCApOwp8IAlpZiggc3RhdHVzICkgcmV0dXJuIGVycm5vOwp8ICNlbmRpZgp8 IAp8ICNpZmRlZiBIQVZFX0xJTlVYX1RIUkVBRFMKfCAJcHRocmVhZF9raWxsX290aGVyX3RocmVh ZHNfbnAoKTsKfCAjZW5kaWYKfCAKfCAJcmV0dXJuIDA7CnwgCnwgfQp8IApjb25maWd1cmU6NzQw MTogcmVzdWx0OiBubwpjb25maWd1cmU6NzQxMzogY2hlY2tpbmcgZm9yIHB0aHJlYWQgbGluayB3 aXRoIC1sY19yCmNvbmZpZ3VyZTo3NjA4OiBnY2MgLW8gY29uZnRlc3QgLUkvaG9tZS9jYWxsZXdh ZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgLUwvaG9tZS9jYWxsZXdhZS9s b2NhbC9saWIgIC1ML3Vzci9YMTFSNi9saWIgY29uZnRlc3QuYyAtbGNfciAtbGdsdXQgLWxHTFUg LWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5u b3QgZmluZCAtbGNfcgpjb2xsZWN0MjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1 cmU6NzYxMTogJD8gPSAxCmNvbmZpZ3VyZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAKfCAj ZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQiCnwg I2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50 Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyLjMiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImprQHNwaWRlcmxhbmQub3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4 dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsK fCAjZW5kaWYKfCAjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZ U19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NU RExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllf SCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAj ZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX1dDVFlQRV9IIDEKfCAjZGVm aW5lIEhBVkVfUFRIUkVBRF9IIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRFMgMTAKfCAjZGVmaW5l IEhBVkVfTElOVVhfVEhSRUFEUyAxCnwgI2RlZmluZSBIQVZFX1NDSEVEX0ggMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAvKiBwdGhyZWFkIHRlc3QgaGVhZGVycyAqLwp8ICNpbmNsdWRlIDxw dGhyZWFkLmg+CnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgI2luY2x1ZGUgPGVycm5vLmg+Cnwg I2VuZGlmCnwgI2lmbmRlZiBOVUxMCnwgI2RlZmluZSBOVUxMICh2b2lkKikwCnwgI2VuZGlmCnwg Cnwgc3RhdGljIHZvaWQgKnRhc2socCkKfCAJdm9pZCAqcDsKfCB7CnwgCXJldHVybiAodm9pZCAq KSAocCA9PSBOVUxMKTsKfCB9CnwgCnwgCnwgaW50IG1haW4oYXJnYywgYXJndikKfCAJaW50IGFy Z2M7CnwgCWNoYXIgKiphcmd2Owp8IHsKfCAKfCAJLyogcHRocmVhZCB0ZXN0IGZ1bmN0aW9uICov CnwgI2lmbmRlZiBQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRAp8ICNkZWZpbmUJUFRIUkVBRF9DUkVB VEVfREVUQUNIRUQJMQp8ICNlbmRpZgp8IAlwdGhyZWFkX3QgdDsKfCAJaW50IHN0YXR1czsKfCAJ aW50IGRldGFjaCA9IFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVEOwp8IAp8ICNpZiBIQVZFX1BUSFJF QURTID4gNAp8IAkvKiBGaW5hbCBwdGhyZWFkcyAqLwp8IAlwdGhyZWFkX2F0dHJfdCBhdHRyOwp8 IAp8IAlzdGF0dXMgPSBwdGhyZWFkX2F0dHJfaW5pdCgmYXR0cik7CnwgCWlmKCBzdGF0dXMgKSBy ZXR1cm4gc3RhdHVzOwp8IAp8ICNpZiBIQVZFX1BUSFJFQURTIDwgNwp8IAlzdGF0dXMgPSBwdGhy ZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUoJmF0dHIsICZkZXRhY2gpOwp8IAlpZiggc3RhdHVzIDwg MCApIHN0YXR1cyA9IGVycm5vOwp8ICNlbHNlCnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9zZXRk ZXRhY2hzdGF0ZSgmYXR0ciwgZGV0YWNoKTsKfCAjZW5kaWYKfCAJaWYoIHN0YXR1cyApIHJldHVy biBzdGF0dXM7CnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgJmF0dHIsIHRhc2ssIE5V TEwgKTsKfCAjaWYgSEFWRV9QVEhSRUFEUyA8IDcKfCAJaWYoIHN0YXR1cyA8IDAgKSBzdGF0dXMg PSBlcnJubzsKfCAjZW5kaWYKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0dXM7CnwgI2Vsc2UK fCAJLyogRHJhZnQgNCBwdGhyZWFkcyAqLwp8IAlzdGF0dXMgPSBwdGhyZWFkX2NyZWF0ZSggJnQs IHB0aHJlYWRfYXR0cl9kZWZhdWx0LCB0YXNrLCBOVUxMICk7CnwgCWlmKCBzdGF0dXMgKSByZXR1 cm4gZXJybm87CnwgCnwgCS8qIGdpdmUgdGhyZWFkIGEgY2hhbmNlIHRvIGNvbXBsZXRlICovCnwg CS8qIGl0IHNob3VsZCByZW1haW4gam9pbmFibGUgYW5kIGhlbmNlIGRldGFjaGFibGUgKi8KfCAJ c2xlZXAoIDEgKTsKfCAKfCAJc3RhdHVzID0gcHRocmVhZF9kZXRhY2goICZ0ICk7CnwgCWlmKCBz dGF0dXMgKSByZXR1cm4gZXJybm87CnwgI2VuZGlmCnwgCnwgI2lmZGVmIEhBVkVfTElOVVhfVEhS RUFEUwp8IAlwdGhyZWFkX2tpbGxfb3RoZXJfdGhyZWFkc19ucCgpOwp8ICNlbmRpZgp8IAp8IAly ZXR1cm4gMDsKfCAKfCB9CnwgCmNvbmZpZ3VyZTo3NjM0OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3 NjQ2OiBjaGVja2luZyBmb3IgcHRocmVhZCBsaW5rIHdpdGggLWxwdGhyZWFkcwpjb25maWd1cmU6 Nzg0MTogZ2NjIC1vIGNvbmZ0ZXN0IC1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZSAgIC1J L3Vzci9YMTFSNi9pbmNsdWRlIC1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAtTC91c3IvWDEx UjYvbGliIGNvbmZ0ZXN0LmMgLWxwdGhyZWFkcyAtbGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAtbFhp ICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3IvYmluL2xkOiBjYW5ub3QgZmluZCAtbHB0aHJl YWRzCmNvbGxlY3QyOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTo3ODQ0OiAk PyA9IDEKY29uZmlndXJlOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmguICAqLwp8IAp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJ0aGUgYnJldmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAidGhlLWJyZXZlLXNpbXVsYXRpb24tZW52aXJvbm1lbnQiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjIuMyIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJ0aGUgYnJl dmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCAyLjMiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiamtAc3BpZGVybGFuZC5vcmciCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIiB2 b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0Owp8ICNlbmRpZgp8 ICNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1FIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0gg MQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8 ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVm aW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmlu ZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFW RV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfV0NUWVBFX0ggMQp8ICNkZWZpbmUgSEFWRV9Q VEhSRUFEX0ggMQp8ICNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAp8ICNkZWZpbmUgSEFWRV9MSU5V WF9USFJFQURTIDEKfCAjZGVmaW5lIEhBVkVfU0NIRURfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IC8qIHB0aHJlYWQgdGVzdCBoZWFkZXJzICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4K fCAjaWYgSEFWRV9QVEhSRUFEUyA8IDcKfCAjaW5jbHVkZSA8ZXJybm8uaD4KfCAjZW5kaWYKfCAj aWZuZGVmIE5VTEwKfCAjZGVmaW5lIE5VTEwgKHZvaWQqKTAKfCAjZW5kaWYKfCAKfCBzdGF0aWMg dm9pZCAqdGFzayhwKQp8IAl2b2lkICpwOwp8IHsKfCAJcmV0dXJuICh2b2lkICopIChwID09IE5V TEwpOwp8IH0KfCAKfCAKfCBpbnQgbWFpbihhcmdjLCBhcmd2KQp8IAlpbnQgYXJnYzsKfCAJY2hh ciAqKmFyZ3Y7Cnwgewp8IAp8IAkvKiBwdGhyZWFkIHRlc3QgZnVuY3Rpb24gKi8KfCAjaWZuZGVm IFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVECnwgI2RlZmluZQlQVEhSRUFEX0NSRUFURV9ERVRBQ0hF RAkxCnwgI2VuZGlmCnwgCXB0aHJlYWRfdCB0Owp8IAlpbnQgc3RhdHVzOwp8IAlpbnQgZGV0YWNo ID0gUFRIUkVBRF9DUkVBVEVfREVUQUNIRUQ7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPiA0Cnwg CS8qIEZpbmFsIHB0aHJlYWRzICovCnwgCXB0aHJlYWRfYXR0cl90IGF0dHI7CnwgCnwgCXN0YXR1 cyA9IHB0aHJlYWRfYXR0cl9pbml0KCZhdHRyKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBzdGF0 dXM7CnwgCnwgI2lmIEhBVkVfUFRIUkVBRFMgPCA3CnwgCXN0YXR1cyA9IHB0aHJlYWRfYXR0cl9z ZXRkZXRhY2hzdGF0ZSgmYXR0ciwgJmRldGFjaCk7CnwgCWlmKCBzdGF0dXMgPCAwICkgc3RhdHVz ID0gZXJybm87CnwgI2Vsc2UKfCAJc3RhdHVzID0gcHRocmVhZF9hdHRyX3NldGRldGFjaHN0YXRl KCZhdHRyLCBkZXRhY2gpOwp8ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsK fCAJc3RhdHVzID0gcHRocmVhZF9jcmVhdGUoICZ0LCAmYXR0ciwgdGFzaywgTlVMTCApOwp8ICNp ZiBIQVZFX1BUSFJFQURTIDwgNwp8IAlpZiggc3RhdHVzIDwgMCApIHN0YXR1cyA9IGVycm5vOwp8 ICNlbmRpZgp8IAlpZiggc3RhdHVzICkgcmV0dXJuIHN0YXR1czsKfCAjZWxzZQp8IAkvKiBEcmFm dCA0IHB0aHJlYWRzICovCnwgCXN0YXR1cyA9IHB0aHJlYWRfY3JlYXRlKCAmdCwgcHRocmVhZF9h dHRyX2RlZmF1bHQsIHRhc2ssIE5VTEwgKTsKfCAJaWYoIHN0YXR1cyApIHJldHVybiBlcnJubzsK fCAKfCAJLyogZ2l2ZSB0aHJlYWQgYSBjaGFuY2UgdG8gY29tcGxldGUgKi8KfCAJLyogaXQgc2hv dWxkIHJlbWFpbiBqb2luYWJsZSBhbmQgaGVuY2UgZGV0YWNoYWJsZSAqLwp8IAlzbGVlcCggMSAp Owp8IAp8IAlzdGF0dXMgPSBwdGhyZWFkX2RldGFjaCggJnQgKTsKfCAJaWYoIHN0YXR1cyApIHJl dHVybiBlcnJubzsKfCAjZW5kaWYKfCAKfCAjaWZkZWYgSEFWRV9MSU5VWF9USFJFQURTCnwgCXB0 aHJlYWRfa2lsbF9vdGhlcl90aHJlYWRzX25wKCk7CnwgI2VuZGlmCnwgCnwgCXJldHVybiAwOwp8 IAp8IH0KfCAKY29uZmlndXJlOjc4Njc6IHJlc3VsdDogbm8KY29uZmlndXJlOjc4ODE6IGNoZWNr aW5nIGZvciBnem9wZW4gaW4gLWx6CmNvbmZpZ3VyZTo3OTExOiBnY2MgLW8gY29uZnRlc3QgLUkv aG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlICAgLUkvdXNyL1gxMVI2L2luY2x1ZGUgLUwvaG9t ZS9jYWxsZXdhZS9sb2NhbC9saWIgIC1ML3Vzci9YMTFSNi9saWIgY29uZnRlc3QuYyAtbHogICAt bGdsdXQgLWxHTFUgLWxHTCAtbFhtdSAtbFhpICAtbFgxMSAgLWxTTSAtbElDRSAgPiY1Ci91c3Iv YmluL2xkOiBjYW5ub3QgZmluZCAtbGdsdXQKY29sbGVjdDI6IGxkIHJldHVybmVkIDEgZXhpdCBz dGF0dXMKY29uZmlndXJlOjc5MTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oLiAgKi8KfCAKfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJy ZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRo ZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9O ICIyLjMiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52 aXJvbm1lbnQgMi4zIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImprQHNwaWRlcmxhbmQu b3JnIgp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGlu dCkgdGhyb3cgKCk7IHVzaW5nIHN0ZDo6ZXhpdDsKfCAjZW5kaWYKfCAjZGVmaW5lIFRJTUVfV0lU SF9TWVNfVElNRSAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwg I2RlZmluZSBIQVZFX1dDVFlQRV9IIDEKfCAjZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEKfCAjZGVm aW5lIEhBVkVfUFRIUkVBRFMgMTAKfCAjZGVmaW5lIEhBVkVfTElOVVhfVEhSRUFEUyAxCnwgI2Rl ZmluZSBIQVZFX1NDSEVEX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVy cmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwp8 ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCAvKiBXZSB1c2UgY2hh ciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCnwgICAg YnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5 LiAgKi8KfCBjaGFyIGd6b3BlbiAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IGd6b3BlbiAoKTsK fCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjc5NDM6IHJlc3VsdDogbm8KY29uZmln dXJlOjc5NTQ6IGVycm9yOiBNaXNzaW5nIHpsaWIgbGlicmFyeSAtLSBzZWUgaHR0cDovL3d3dy56 bGliLm9yZwpTZWUgYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuCgojIyAtLS0tLS0tLS0t LS0tLS0tICMjCiMjIENhY2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwoK YWNfY3ZfYnVpbGQ9aTY4Ni1wYy1saW51eC1nbnUKYWNfY3ZfYnVpbGRfYWxpYXM9aTY4Ni1wYy1s aW51eC1nbnUKYWNfY3ZfY19jb21waWxlcl9nbnU9eWVzCmFjX2N2X2NfY29uc3Q9eWVzCmFjX2N2 X2NfaW5saW5lPWlubGluZQphY19jdl9jeHhfY29tcGlsZXJfZ251PXllcwphY19jdl9lbnZfQ0Nf c2V0PQphY19jdl9lbnZfQ0NfdmFsdWU9CmFjX2N2X2Vudl9DRkxBR1Nfc2V0PXNldAphY19jdl9l bnZfQ0ZMQUdTX3ZhbHVlPS1JL2hvbWUvY2FsbGV3YWUvbG9jYWwvaW5jbHVkZQphY19jdl9lbnZf Q1BQRkxBR1Nfc2V0PQphY19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBfc2V0 PQphY19jdl9lbnZfQ1BQX3ZhbHVlPQphY19jdl9lbnZfQ1hYQ1BQX3NldD0KYWNfY3ZfZW52X0NY WENQUF92YWx1ZT0KYWNfY3ZfZW52X0NYWEZMQUdTX3NldD0KYWNfY3ZfZW52X0NYWEZMQUdTX3Zh bHVlPQphY19jdl9lbnZfQ1hYX3NldD0KYWNfY3ZfZW52X0NYWF92YWx1ZT0KYWNfY3ZfZW52X0pB Ul9zZXQ9CmFjX2N2X2Vudl9KQVJfdmFsdWU9CmFjX2N2X2Vudl9KQVZBQ19zZXQ9CmFjX2N2X2Vu dl9KQVZBQ192YWx1ZT0KYWNfY3ZfZW52X0xERkxBR1Nfc2V0PXNldAphY19jdl9lbnZfTERGTEFH U192YWx1ZT0tTC9ob21lL2NhbGxld2FlL2xvY2FsL2xpYgphY19jdl9lbnZfYnVpbGRfYWxpYXNf c2V0PQphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3Nl dD0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl90YXJnZXRfYWxpYXNfc2V0 PQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPQphY19jdl9leGVleHQ9CmFjX2N2X2Z1bmNf Y29ubmVjdD15ZXMKYWNfY3ZfZnVuY19nZXRob3N0YnluYW1lPXllcwphY19jdl9mdW5jX3JlbW92 ZT15ZXMKYWNfY3ZfZnVuY19zaG1hdD15ZXMKYWNfY3ZfaGF2ZV94PSdoYXZlX3g9eWVzIAkJYWNf eF9pbmNsdWRlcz0vdXNyL1gxMVI2L2luY2x1ZGUgYWNfeF9saWJyYXJpZXM9L3Vzci9YMTFSNi9s aWInCmFjX2N2X2hlYWRlcl9pbnR0eXBlc19oPXllcwphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVz CmFjX2N2X2hlYWRlcl9wdGhyZWFkX2g9eWVzCmFjX2N2X2hlYWRlcl9zY2hlZF9oPXllcwphY19j dl9oZWFkZXJfc3RkYz1ubwphY19jdl9oZWFkZXJfc3RkaW50X2g9eWVzCmFjX2N2X2hlYWRlcl9z dGRsaWJfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwphY19jdl9oZWFkZXJfc3RyaW5n c19oPXllcwphY19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c190aW1l X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfdHlwZXNfaD15ZXMKYWNfY3ZfaGVhZGVyX3RpbWU9eWVz CmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNfY3ZfaGVhZGVyX3djdHlwZV9oPXllcwphY19j dl9ob3N0PWk2ODYtcGMtbGludXgtZ251CmFjX2N2X2hvc3RfYWxpYXM9aTY4Ni1wYy1saW51eC1n bnUKYWNfY3ZfbGliX0lDRV9JY2VDb25uZWN0aW9uTnVtYmVyPXllcwphY19jdl9saWJfZmxfeXl3 cmFwPW5vCmFjX2N2X2xpYl9sX3l5d3JhcD1ubwphY19jdl9saWJfbV9pc25hbj1ubwphY19jdl9s aWJfel9nem9wZW49bm8KYWNfY3Zfb2JqZXh0PW8KYWNfY3ZfcGF0aF9NQUtFREVQRU5EPS91c3Iv WDExUjYvYmluL21ha2VkZXBlbmQKYWNfY3ZfcHJvZ19DUFA9J2djYyAtRScKYWNfY3ZfcHJvZ19h Y19jdF9BUj1hcgphY19jdl9wcm9nX2FjX2N0X0NDPWdjYwphY19jdl9wcm9nX2FjX2N0X0NYWD1n KysKYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUI9cmFubGliCmFjX2N2X3Byb2dfY2NfZz15ZXMKYWNf Y3ZfcHJvZ19jY19zdGRjPQphY19jdl9wcm9nX2N4eF9nPXllcwphY19jdl9wcm9nX2VncmVwPSdn cmVwIC1FJwphY19jdl9wcm9nX2phdmFjX3dvcmtzPXllcwphY19jdl9wcm9nX21ha2VfbWFrZV9z ZXQ9eWVzCmFjX2N2X3R5cGVfc2l6ZV90PXllcwpvbF9jdl9oZWFkZXJfZ251X3B0aF9wdGhyZWFk X2g9bm8Kb2xfY3ZfaGVhZGVyX2xpbnV4X3RocmVhZHM9eWVzCm9sX2N2X3B0aHJlYWRfY3JlYXRl PW5vCm9sX2N2X3B0aHJlYWRfa3RocmVhZD1ubwpvbF9jdl9wdGhyZWFkX2xjX3I9bm8Kb2xfY3Zf cHRocmVhZF9saWJfbHB0aHJlYWRzPW5vCm9sX2N2X3B0aHJlYWRfbHB0aHJlYWQ9bm8Kb2xfY3Zf cHRocmVhZF9wdGhyZWFkPW5vCm9sX2N2X3B0aHJlYWRfdmVyc2lvbj0xMAoKIyMgLS0tLS0tLS0t LS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0g IyMKCkFSPSdhcicKQVJDSElWRVI9J3RhciBjemYnCkFSQ0hJVkVfU1VGRklYPSd0YXIuZ3onCkND PSdnY2MnCkNGTEFHUz0nLUkvaG9tZS9jYWxsZXdhZS9sb2NhbC9pbmNsdWRlJwpDUFA9J2djYyAt RScKQ1BQRkxBR1M9JyAgLUkvdXNyL1gxMVI2L2luY2x1ZGUnCkNYWD0nZysrJwpDWFhDUFA9JycK Q1hYRkxBR1M9Jy1nIC1PMicKREVGUz0nJwpFQ0hPX0M9JycKRUNIT19OPSctbicKRUNIT19UPScn CkVHUkVQPSdncmVwIC1FJwpFWEVFWFQ9JycKRVhFX1NVRkZJWD0nJwpFWFRSQU9QVEZMQUdTPScn CkpBUj0nOicKSkFWQUM9JzonCkxERkxBR1M9Jy1ML2hvbWUvY2FsbGV3YWUvbG9jYWwvbGliICAt TC91c3IvWDExUjYvbGliJwpMRVg9JzonCkxFWExJQj0nJwpMRVhfT1VUUFVUX1JPT1Q9JycKTElC T0JKUz0nJwpMSUJTPScgLWxnbHV0IC1sR0xVIC1sR0wgLWxYbXUgLWxYaSAgLWxYMTEgIC1sU00g LWxJQ0UgJwpMVExJQk9CSlM9JycKTUFLRURFUEVORD0nL3Vzci9YMTFSNi9iaW4vbWFrZWRlcGVu ZCcKTUtERVA9J2crKyAtTU0nCk9CSkVYVD0nbycKUEFDS0FHRV9CVUdSRVBPUlQ9J2prQHNwaWRl cmxhbmQub3JnJwpQQUNLQUdFX05BTUU9J3RoZSBicmV2ZSBzaW11bGF0aW9uIGVudmlyb25tZW50 JwpQQUNLQUdFX1NUUklORz0ndGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJvbm1lbnQgMi4zJwpQ QUNLQUdFX1RBUk5BTUU9J3RoZS1icmV2ZS1zaW11bGF0aW9uLWVudmlyb25tZW50JwpQQUNLQUdF X1ZFUlNJT049JzIuMycKUEFUSF9TRVBBUkFUT1I9JzonClBMQVRGT1JNPSdsaW51eC1nbnUnClBM VUdJTkZMQUdTPSctc2hhcmVkJwpQTFVHSU5JTVA9Jy1XbCwtRScKUExVR0lOTElCPScnClFVSUNL VElNRUZMQUdTPScnClJBTkxJQj0ncmFubGliJwpSRUdFWExJQj0nJwpTRVRfTUFLRT0nJwpTSEVM TD0nL2Jpbi9zaCcKVkVSU0lPTj0nMi4zJwpXWENPTkZJRz0nd3gtY29uZmlnJwpYX0NGTEFHUz0n IC1JL3Vzci9YMTFSNi9pbmNsdWRlJwpYX0VYVFJBX0xJQlM9JycKWF9MSUJTPScgLUwvdXNyL1gx MVI2L2xpYicKWF9QUkVfTElCUz0nIC1sU00gLWxJQ0UnCllBQ0M9J3lhY2MnCmFjX2N0X0FSPSdh cicKYWNfY3RfQ0M9J2djYycKYWNfY3RfQ1hYPSdnKysnCmFjX2N0X1JBTkxJQj0ncmFubGliJwpi aW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKYnVpbGQ9J2k2ODYtcGMtbGludXgtZ251JwpidWls ZF9hbGlhcz0nJwpidWlsZF9jcHU9J2k2ODYnCmJ1aWxkX29zPSdsaW51eC1nbnUnCmJ1aWxkX3Zl bmRvcj0ncGMnCmRhdGFkaXI9JyR7cHJlZml4fS9zaGFyZScKZXhlY19wcmVmaXg9J05PTkUnCmhv c3Q9J2k2ODYtcGMtbGludXgtZ251Jwpob3N0X2FsaWFzPScnCmhvc3RfY3B1PSdpNjg2Jwpob3N0 X29zPSdsaW51eC1nbnUnCmhvc3RfdmVuZG9yPSdwYycKaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2lu Y2x1ZGUnCmluZm9kaXI9JyR7cHJlZml4fS9pbmZvJwpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xp YicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKbG9jYWxzdGF0ZWRpcj0nJHtw cmVmaXh9L3ZhcicKbWFuZGlyPScke3ByZWZpeH0vbWFuJwpvbGRpbmNsdWRlZGlyPScvdXNyL2lu Y2x1ZGUnCnByZWZpeD0nTk9ORScKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgsJwpzYmlu ZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwpzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScK c3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKdGFyZ2V0X2FsaWFzPScnCgojIyAtLS0tLS0tLS0t LSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAjIwoKI2RlZmluZSBIQVZFX0lO VFRZUEVTX0ggMQojZGVmaW5lIEhBVkVfTElOVVhfVEhSRUFEUyAxCiNkZWZpbmUgSEFWRV9NRU1P UllfSCAxCiNkZWZpbmUgSEFWRV9QVEhSRUFEUyAxMAojZGVmaW5lIEhBVkVfUFRIUkVBRF9IIDEK I2RlZmluZSBIQVZFX1NDSEVEX0ggMQojZGVmaW5lIEhBVkVfU1RESU5UX0ggMQojZGVmaW5lIEhB VkVfU1RETElCX0ggMQojZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKI2RlZmluZSBIQVZFX1NUUklO R19IIDEKI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQojZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAx CiNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZp bmUgSEFWRV9XQ1RZUEVfSCAxCiNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImprQHNwaWRlcmxh bmQub3JnIgojZGVmaW5lIFBBQ0tBR0VfTkFNRSAidGhlIGJyZXZlIHNpbXVsYXRpb24gZW52aXJv bm1lbnQiCiNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgInRoZSBicmV2ZSBzaW11bGF0aW9uIGVudmly b25tZW50IDIuMyIKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgInRoZS1icmV2ZS1zaW11bGF0aW9u LWVudmlyb25tZW50IgojZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMi4zIgojZGVmaW5lIFRJTUVf V0lUSF9TWVNfVElNRSAxCiNlbmRpZgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB2b2lk IHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0OwoKY29uZmlndXJlOiBl eGl0IDEK ------=_Part_1820_29339147.1129975775104 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ breve mailing list [email protected] http://lists.spiderland.org/mailman/listinfo/breve ------=_Part_1820_29339147.1129975775104--