I2lmbmRlZiBfX1pQSU5HX0hfXwojZGVmaW5lIF9fWlBJTkdfSF9fCgojaW5jbHVkZSAiaGVhZGVycy5oIgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ7Cgp0eXBlZGVmIHNpZ25lZCBjaGFyIGludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVfaW50OF90Owp0eXBlZGVmIHNpZ25lZCBzaG9ydCBpbnQxNl90Owp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfaW50MTZfdDsKdHlwZWRlZiBzaWduZWQgaW50IGludDMyX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MzJfdDsKdHlwZWRlZiBzaWduZWQgbG9uZyBsb25nIGludDY0X3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVfaW50NjRfdDsKCiNkZWZpbmUgWlBJTkdfRVhDTFVERSAweDAxCgojZGVmaW5lIERFRkFVTFRfQlVGRkVSX1NJWkUgMTQ2MAoKI2RlZmluZSBERUZBVUxUX0JVRkZFUl9DT1BZX1RJTUVPVVQgMwoKdHlwZWRlZiBlbnVtIHsKCS8vcGOy4Mq508O3ts6nMH4zMQoJTEFCRUxfTlVMTCA9IDAsCgoJQ0xJTkVUX1JFQ1YsCglDTElORVRfU0VORCwKCVNFUlZFUl9SRUNWLAoJU0VSVkVSX1NFTkQsCgoJLy9BULLgzfi/2tLUMzK/qsq8o6yyu82stcS6y7LJ08Oyu82stcTK/b7dts62qNLlLDMyfjYzCglBUF9VU0JfSU4gPSAzMiwKCUFQX1VTQl9PVVQsCglBUF9QU19JTiwKCUFQX1BTX09VVCwKCUFQX1dJRklfV0FOX0lOLAoJQVBfV0lGSV9XQU5fT1VULAoJQVBfV0lGSV9MQU5fSU4sCglBUF9XSUZJX0xBTl9PVVQsCglBUF9FVEhfV0FOX0lOLAoJQVBfRVRIX1dBTl9PVVQsCglBUF9FVEhfTEFOX0lOLAoJQVBfRVRIX0xBTl9PVVQsCglBUF9QU19FWFQxX0lOLAoJQVBfUFNfRVhUMV9PVVQsCglBUF9QU19FWFQyX0lOLAoJQVBfUFNfRVhUMl9PVVQsCglBUF9QU19FWFQzX0lOLAoJQVBfUFNfRVhUM19PVVQsCglBUF9QU19FWFQ0X0lOLAoJQVBfUFNfRVhUNF9PVVQsCgoJLy9DULLgzfi/2tLRNjS/qsq8LjY0fjk1CglDUF9FVEgxX0lOID0gNjQsCglDUF9FVEgxX09VVCwKCUNQX0VUSDJfSU4sCglDUF9FVEgyX09VVCwKCUNQX0VUSDNfSU4sCglDUF9FVEgzX09VVCwKCUNQX0VUSDRfSU4sCglDUF9FVEg0X09VVCwKCUNQX1BTMV9JTiwKCUNQX1BTMV9PVVQsCglDUF9QUzJfSU4sCglDUF9QUzJfT1VULAoJQ1BfUFMzX0lOLAoJQ1BfUFMzX09VVCwKCUNQX1BTNF9JTiwKCUNQX1BTNF9PVVQsCglDUF9DVFJNMV9JTiwKCUNQX0NUUk0xX09VVCwKCUNQX0NUUk0yX0lOLAoJQ1BfQ1RSTTJfT1VULAoJQ1BfQ1RSTTNfSU4sCglDUF9DVFJNM19PVVQsCglDUF9DVFJNNF9JTiwKCUNQX0NUUk00X09VVCwKfSB6cGluZ19sYWJlbDsKCnR5cGVkZWYgc3RydWN0IHsKCXpwaW5nX2xhYmVsIGxhYmVsOwoJY2hhciBuYW1lWzMyXTsKfSB6cGluZ19wcmludF90OwoKCiNwcmFnbWEgcGFjayhwdXNoKQojcHJhZ21hIHBhY2soMSkKdHlwZWRlZiBzdHJ1Y3QgeyAvLyA0IGJ5dGVzIGFsaWduCgl1X2ludDE2X3QgaWQ7IC8vIHVzZWxlc3MgaW4gdGhpcyBjYXNlLCB1c2UgaWQgaW4gdGhlIGljbXAgaGVhZGVyIGluc3RlYWQKCXVfaW50MTZfdCBpdGVtX2NvdW50OwoJdV9pbnQxNl90IGl0ZW1faW5kZXg7Cgl1X2ludDE2X3QgaXRlbV9pbmRleF9wYWRkaW5nOwoJdV9pbnQxNl90IGZsYWdzOwoJdV9pbnQxNl90IGZsYWdzX3BhZGRpbmc7Cn0genBpbmdfaGRyX3Q7Cgp0eXBlZGVmIHN0cnVjdCB7IC8vIDQgYnl0ZXMgYWxpZ24KCXVfaW50MTZfdCBsYWJlbDsKCXVfaW50MTZfdCBsYWJlbF9wYWRkaW5nOwoKCXVfaW50MzJfdCBzZWNzOwoJdV9pbnQzMl90IHNlY3NfcGFkZGluZzsKCgl1X2ludDMyX3QgdXNlY3M7Cgl1X2ludDMyX3QgdXNlY3NfcGFkZGluZzsKCgl1X2ludDE2X3QgbGFzdF9zZXE7Cgl1X2ludDE2X3QgbGFzdF9zZXFfcGFkZGluZzsKfSB6cGluZ19pdGVtX3QgOwoKdHlwZWRlZiBzdHJ1Y3QgeyAvLyA0IGJ5dGVzIGFsaWduCgl1X2ludDE2X3QgbGFiZWw7Cgl1X2ludDE2X3QgbGFiZWxfcGFkZGluZzsKCgl1X2ludDE2X3QgbGFzdF9zZXE7Cgl1X2ludDE2X3QgbGFzdF9zZXFfcGFkZGluZzsKfSB6cGluZ19wa3Rsb3N0X2l0ZW1fdDsKI3ByYWdtYSBwYWNrKHBvcCkKCiNlbmRpZiAvKiBfX1pQSU5HX0hfXyAqLwo=