I2lmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpbmNsdWRlICJhcm1fYXJjaC5oIgoKLnRleHQKI2lmICFkZWZpbmVkKF9fY2xhbmdfXykKLmFyY2gJYXJtdjgtYStjcnlwdG8KI2VuZGlmCi5nbG9ibAlnY21faW5pdF92OAoudHlwZQlnY21faW5pdF92OCwlZnVuY3Rpb24KLmFsaWduCTQKZ2NtX2luaXRfdjg6CglsZDEJe3YxNy4yZH0sW3gxXQkJLy9sb2FkIGlucHV0IEgKCW1vdmkJdjE5LjE2YiwjMHhlMQoJc2hsCXYxOS4yZCx2MTkuMmQsIzU3CQkvLzB4YzIuMAoJZXh0CXYzLjE2Yix2MTcuMTZiLHYxNy4xNmIsIzgKCXVzaHIJdjE4LjJkLHYxOS4yZCwjNjMKCWR1cAl2MTcuNHMsdjE3LnNbMV0KCWV4dAl2MTYuMTZiLHYxOC4xNmIsdjE5LjE2YiwjOAkJLy90MD0weGMyLi4uLjAxCgl1c2hyCXYxOC4yZCx2My4yZCwjNjMKCXNzaHIJdjE3LjRzLHYxNy40cywjMzEJCS8vYnJvYWRjYXN0IGNhcnJ5IGJpdAoJYW5kCXYxOC4xNmIsdjE4LjE2Yix2MTYuMTZiCglzaGwJdjMuMmQsdjMuMmQsIzEKCWV4dAl2MTguMTZiLHYxOC4xNmIsdjE4LjE2YiwjOAoJYW5kCXYxNi4xNmIsdjE2LjE2Yix2MTcuMTZiCglvcnIJdjMuMTZiLHYzLjE2Yix2MTguMTZiCQkvL0g8PDw9MQoJZW9yCXYyMC4xNmIsdjMuMTZiLHYxNi4xNmIJCS8vdHdpc3RlZCBICglzdDEJe3YyMC4yZH0sW3gwXSwjMTYJCS8vc3RvcmUgSHRhYmxlWzBdCgoJLy9jYWxjdWxhdGUgSF4yCglleHQJdjE2LjE2Yix2MjAuMTZiLHYyMC4xNmIsIzgJCS8vS2FyYXRzdWJhIHByZS1wcm9jZXNzaW5nCglwbXVsbAl2MC4xcSx2MjAuMWQsdjIwLjFkCgllb3IJdjE2LjE2Yix2MTYuMTZiLHYyMC4xNmIKCXBtdWxsMgl2Mi4xcSx2MjAuMmQsdjIwLjJkCglwbXVsbAl2MS4xcSx2MTYuMWQsdjE2LjFkCgoJZXh0CXYxNy4xNmIsdjAuMTZiLHYyLjE2YiwjOAkJLy9LYXJhdHN1YmEgcG9zdC1wcm9jZXNzaW5nCgllb3IJdjE4LjE2Yix2MC4xNmIsdjIuMTZiCgllb3IJdjEuMTZiLHYxLjE2Yix2MTcuMTZiCgllb3IJdjEuMTZiLHYxLjE2Yix2MTguMTZiCglwbXVsbAl2MTguMXEsdjAuMWQsdjE5LjFkCQkvLzFzdCBwaGFzZQoKCWlucwl2Mi5kWzBdLHYxLmRbMV0KCWlucwl2MS5kWzFdLHYwLmRbMF0KCWVvcgl2MC4xNmIsdjEuMTZiLHYxOC4xNmIKCglleHQJdjE4LjE2Yix2MC4xNmIsdjAuMTZiLCM4CQkvLzJuZCBwaGFzZQoJcG11bGwJdjAuMXEsdjAuMWQsdjE5LjFkCgllb3IJdjE4LjE2Yix2MTguMTZiLHYyLjE2YgoJZW9yCXYyMi4xNmIsdjAuMTZiLHYxOC4xNmIKCglleHQJdjE3LjE2Yix2MjIuMTZiLHYyMi4xNmIsIzgJCS8vS2FyYXRzdWJhIHByZS1wcm9jZXNzaW5nCgllb3IJdjE3LjE2Yix2MTcuMTZiLHYyMi4xNmIKCWV4dAl2MjEuMTZiLHYxNi4xNmIsdjE3LjE2YiwjOAkJLy9wYWNrIEthcmF0c3ViYSBwcmUtcHJvY2Vzc2VkCglzdDEJe3YyMS4yZCx2MjIuMmR9LFt4MF0JCS8vc3RvcmUgSHRhYmxlWzEuLjJdCgoJcmV0Ci5zaXplCWdjbV9pbml0X3Y4LC4tZ2NtX2luaXRfdjgKLmdsb2JsCWdjbV9nbXVsdF92OAoudHlwZQlnY21fZ211bHRfdjgsJWZ1bmN0aW9uCi5hbGlnbgk0CmdjbV9nbXVsdF92ODoKCWxkMQl7djE3LjJkfSxbeDBdCQkvL2xvYWQgWGkKCW1vdmkJdjE5LjE2YiwjMHhlMQoJbGQxCXt2MjAuMmQsdjIxLjJkfSxbeDFdCS8vbG9hZCB0d2lzdGVkIEgsIC4uLgoJc2hsCXYxOS4yZCx2MTkuMmQsIzU3CiNpZm5kZWYgX19BUk1FQl9fCglyZXY2NAl2MTcuMTZiLHYxNy4xNmIKI2VuZGlmCglleHQJdjMuMTZiLHYxNy4xNmIsdjE3LjE2YiwjOAoKCXBtdWxsCXYwLjFxLHYyMC4xZCx2My4xZAkJLy9ILmxvt1hpLmxvCgllb3IJdjE3LjE2Yix2MTcuMTZiLHYzLjE2YgkJLy9LYXJhdHN1YmEgcHJlLXByb2Nlc3NpbmcKCXBtdWxsMgl2Mi4xcSx2MjAuMmQsdjMuMmQJCS8vSC5oabdYaS5oaQoJcG11bGwJdjEuMXEsdjIxLjFkLHYxNy4xZAkJLy8oSC5sbytILmhpKbcoWGkubG8rWGkuaGkpCgoJZXh0CXYxNy4xNmIsdjAuMTZiLHYyLjE2YiwjOAkJLy9LYXJhdHN1YmEgcG9zdC1wcm9jZXNzaW5nCgllb3IJdjE4LjE2Yix2MC4xNmIsdjIuMTZiCgllb3IJdjEuMTZiLHYxLjE2Yix2MTcuMTZiCgllb3IJdjEuMTZiLHYxLjE2Yix2MTguMTZiCglwbXVsbAl2MTguMXEsdjAuMWQsdjE5LjFkCQkvLzFzdCBwaGFzZSBvZiByZWR1Y3Rpb24KCglpbnMJdjIuZFswXSx2MS5kWzFdCglpbnMJdjEuZFsxXSx2MC5kWzBdCgllb3IJdjAuMTZiLHYxLjE2Yix2MTguMTZiCgoJZXh0CXYxOC4xNmIsdjAuMTZiLHYwLjE2YiwjOAkJLy8ybmQgcGhhc2Ugb2YgcmVkdWN0aW9uCglwbXVsbAl2MC4xcSx2MC4xZCx2MTkuMWQKCWVvcgl2MTguMTZiLHYxOC4xNmIsdjIuMTZiCgllb3IJdjAuMTZiLHYwLjE2Yix2MTguMTZiCgojaWZuZGVmIF9fQVJNRUJfXwoJcmV2NjQJdjAuMTZiLHYwLjE2YgojZW5kaWYKCWV4dAl2MC4xNmIsdjAuMTZiLHYwLjE2YiwjOAoJc3QxCXt2MC4yZH0sW3gwXQkJLy93cml0ZSBvdXQgWGkKCglyZXQKLnNpemUJZ2NtX2dtdWx0X3Y4LC4tZ2NtX2dtdWx0X3Y4Ci5nbG9ibAlnY21fZ2hhc2hfdjgKLnR5cGUJZ2NtX2doYXNoX3Y4LCVmdW5jdGlvbgouYWxpZ24JNApnY21fZ2hhc2hfdjg6CglsZDEJe3YwLjJkfSxbeDBdCQkvL2xvYWQgW3JvdGF0ZWRdIFhpCgkJCQkJCS8vIltyb3RhdGVkXSIgbWVhbnMgdGhhdAoJCQkJCQkvL2xvYWRlZCB2YWx1ZSB3b3VsZCBoYXZlCgkJCQkJCS8vdG8gYmUgcm90YXRlZCBpbiBvcmRlciB0bwoJCQkJCQkvL21ha2UgaXQgYXBwZWFyIGFzIGluCgkJCQkJCS8vYWxvcml0aG0gc3BlY2lmaWNhdGlvbgoJc3Vicwl4Myx4MywjMzIJCS8vc2VlIGlmIHgzIGlzIDMyIG9yIGxhcmdlcgoJbW92CXgxMiwjMTYJCS8veDEyIGlzIHVzZWQgYXMgcG9zdC0KCQkJCQkJLy9pbmNyZW1lbnQgZm9yIGlucHV0IHBvaW50ZXI7CgkJCQkJCS8vYXMgbG9vcCBpcyBtb2R1bG8tc2NoZWR1bGVkCgkJCQkJCS8veDEyIGlzIHplcm9lZCBqdXN0IGluIHRpbWUKCQkJCQkJLy90byBwcmVjbHVkZSBvdmVyc3RlcGluZwoJCQkJCQkvL2lucFtsZW5dLCB3aGljaCBtZWFucyB0aGF0CgkJCQkJCS8vbGFzdCBibG9ja1tzXSBhcmUgYWN0dWFsbHkKCQkJCQkJLy9sb2FkZWQgdHdpY2UsIGJ1dCBsYXN0CgkJCQkJCS8vY29weSBpcyBub3QgcHJvY2Vzc2VkCglsZDEJe3YyMC4yZCx2MjEuMmR9LFt4MV0sIzMyCS8vbG9hZCB0d2lzdGVkIEgsIC4uLiwgSF4yCgltb3ZpCXYxOS4xNmIsIzB4ZTEKCWxkMQl7djIyLjJkfSxbeDFdCgljc2VsCXgxMix4enIseDEyLGVxCQkJLy9pcyBpdCB0aW1lIHRvIHplcm8geDEyPwoJZXh0CXYwLjE2Yix2MC4xNmIsdjAuMTZiLCM4CQkvL3JvdGF0ZSBYaQoJbGQxCXt2MTYuMmR9LFt4Ml0sIzE2CS8vbG9hZCBbcm90YXRlZF0gSVswXQoJc2hsCXYxOS4yZCx2MTkuMmQsIzU3CQkvL2NvbXBvc2UgMHhjMi4wIGNvbnN0YW50CiNpZm5kZWYgX19BUk1FQl9fCglyZXY2NAl2MTYuMTZiLHYxNi4xNmIKCXJldjY0CXYwLjE2Yix2MC4xNmIKI2VuZGlmCglleHQJdjMuMTZiLHYxNi4xNmIsdjE2LjE2YiwjOAkJLy9yb3RhdGUgSVswXQoJYi5sbwkuTG9kZF90YWlsX3Y4CQkvL3gzIHdhcyBsZXNzIHRoYW4gMzIKCWxkMQl7djE3LjJkfSxbeDJdLHgxMgkvL2xvYWQgW3JvdGF0ZWRdIElbMV0KI2lmbmRlZiBfX0FSTUVCX18KCXJldjY0CXYxNy4xNmIsdjE3LjE2YgojZW5kaWYKCWV4dAl2Ny4xNmIsdjE3LjE2Yix2MTcuMTZiLCM4Cgllb3IJdjMuMTZiLHYzLjE2Yix2MC4xNmIJCS8vSVtpXV49WGkKCXBtdWxsCXY0LjFxLHYyMC4xZCx2Ny4xZAkJLy9It0lpKzEKCWVvcgl2MTcuMTZiLHYxNy4xNmIsdjcuMTZiCQkvL0thcmF0c3ViYSBwcmUtcHJvY2Vzc2luZwoJcG11bGwyCXY2LjFxLHYyMC4yZCx2Ny4yZAoJYgkuTG9vcF9tb2QyeF92OAoKLmFsaWduCTQKLkxvb3BfbW9kMnhfdjg6CglleHQJdjE4LjE2Yix2My4xNmIsdjMuMTZiLCM4CglzdWJzCXgzLHgzLCMzMgkJLy9pcyB0aGVyZSBtb3JlIGRhdGE/CglwbXVsbAl2MC4xcSx2MjIuMWQsdjMuMWQJCS8vSF4yLmxvt1hpLmxvCgljc2VsCXgxMix4enIseDEyLGxvCQkJLy9pcyBpdCB0aW1lIHRvIHplcm8geDEyPwoKCXBtdWxsCXY1LjFxLHYyMS4xZCx2MTcuMWQKCWVvcgl2MTguMTZiLHYxOC4xNmIsdjMuMTZiCQkvL0thcmF0c3ViYSBwcmUtcHJvY2Vzc2luZwoJcG11bGwyCXYyLjFxLHYyMi4yZCx2My4yZAkJLy9IXjIuaGm3WGkuaGkKCWVvcgl2MC4xNmIsdjAuMTZiLHY0LjE2YgkJLy9hY2N1bXVsYXRlCglwbXVsbDIJdjEuMXEsdjIxLjJkLHYxOC4yZAkJLy8oSF4yLmxvK0heMi5oaSm3KFhpLmxvK1hpLmhpKQoJbGQxCXt2MTYuMmR9LFt4Ml0seDEyCS8vbG9hZCBbcm90YXRlZF0gSVtpKzJdCgoJZW9yCXYyLjE2Yix2Mi4xNmIsdjYuMTZiCgljc2VsCXgxMix4enIseDEyLGVxCQkJLy9pcyBpdCB0aW1lIHRvIHplcm8geDEyPwoJZW9yCXYxLjE2Yix2MS4xNmIsdjUuMTZiCgoJZXh0CXYxNy4xNmIsdjAuMTZiLHYyLjE2YiwjOAkJLy9LYXJhdHN1YmEgcG9zdC1wcm9jZXNzaW5nCgllb3IJdjE4LjE2Yix2MC4xNmIsdjIuMTZiCgllb3IJdjEuMTZiLHYxLjE2Yix2MTcuMTZiCglsZDEJe3YxNy4yZH0sW3gyXSx4MTIJLy9sb2FkIFtyb3RhdGVkXSBJW2krM10KI2lmbmRlZiBfX0FSTUVCX18KCXJldjY0CXYxNi4xNmIsdjE2LjE2YgojZW5kaWYKCWVvcgl2MS4xNmIsdjEuMTZiLHYxOC4xNmIKCXBtdWxsCXYxOC4xcSx2MC4xZCx2MTkuMWQJCS8vMXN0IHBoYXNlIG9mIHJlZHVjdGlvbgoKI2lmbmRlZiBfX0FSTUVCX18KCXJldjY0CXYxNy4xNmIsdjE3LjE2YgojZW5kaWYKCWlucwl2Mi5kWzBdLHYxLmRbMV0KCWlucwl2MS5kWzFdLHYwLmRbMF0KCWV4dAl2Ny4xNmIsdjE3LjE2Yix2MTcuMTZiLCM4CglleHQJdjMuMTZiLHYxNi4xNmIsdjE2LjE2YiwjOAoJZW9yCXYwLjE2Yix2MS4xNmIsdjE4LjE2YgoJcG11bGwJdjQuMXEsdjIwLjFkLHY3LjFkCQkvL0i3SWkrMQoJZW9yCXYzLjE2Yix2My4xNmIsdjIuMTZiCQkvL2FjY3VtdWxhdGUgdjMuMTZiIGVhcmx5CgoJZXh0CXYxOC4xNmIsdjAuMTZiLHYwLjE2YiwjOAkJLy8ybmQgcGhhc2Ugb2YgcmVkdWN0aW9uCglwbXVsbAl2MC4xcSx2MC4xZCx2MTkuMWQKCWVvcgl2My4xNmIsdjMuMTZiLHYxOC4xNmIKCWVvcgl2MTcuMTZiLHYxNy4xNmIsdjcuMTZiCQkvL0thcmF0c3ViYSBwcmUtcHJvY2Vzc2luZwoJZW9yCXYzLjE2Yix2My4xNmIsdjAuMTZiCglwbXVsbDIJdjYuMXEsdjIwLjJkLHY3LjJkCgliLmhzCS5Mb29wX21vZDJ4X3Y4CQkvL3RoZXJlIHdhcyBhdCBsZWFzdCAzMiBtb3JlIGJ5dGVzCgoJZW9yCXYyLjE2Yix2Mi4xNmIsdjE4LjE2YgoJZXh0CXYzLjE2Yix2MTYuMTZiLHYxNi4xNmIsIzgJCS8vcmUtY29uc3RydWN0IHYzLjE2YgoJYWRkcwl4Myx4MywjMzIJCS8vcmUtY29uc3RydWN0IHgzCgllb3IJdjAuMTZiLHYwLjE2Yix2Mi4xNmIJCS8vcmUtY29uc3RydWN0IHYwLjE2YgoJYi5lcQkuTGRvbmVfdjgJCS8vaXMgeDMgemVybz8KLkxvZGRfdGFpbF92ODoKCWV4dAl2MTguMTZiLHYwLjE2Yix2MC4xNmIsIzgKCWVvcgl2My4xNmIsdjMuMTZiLHYwLjE2YgkJLy9pbnBePVhpCgllb3IJdjE3LjE2Yix2MTYuMTZiLHYxOC4xNmIJCS8vdjE3LjE2YiBpcyByb3RhdGVkIGlucF5YaQoKCXBtdWxsCXYwLjFxLHYyMC4xZCx2My4xZAkJLy9ILmxvt1hpLmxvCgllb3IJdjE3LjE2Yix2MTcuMTZiLHYzLjE2YgkJLy9LYXJhdHN1YmEgcHJlLXByb2Nlc3NpbmcKCXBtdWxsMgl2Mi4xcSx2MjAuMmQsdjMuMmQJCS8vSC5oabdYaS5oaQoJcG11bGwJdjEuMXEsdjIxLjFkLHYxNy4xZAkJLy8oSC5sbytILmhpKbcoWGkubG8rWGkuaGkpCgoJZXh0CXYxNy4xNmIsdjAuMTZiLHYyLjE2YiwjOAkJLy9LYXJhdHN1YmEgcG9zdC1wcm9jZXNzaW5nCgllb3IJdjE4LjE2Yix2MC4xNmIsdjIuMTZiCgllb3IJdjEuMTZiLHYxLjE2Yix2MTcuMTZiCgllb3IJdjEuMTZiLHYxLjE2Yix2MTguMTZiCglwbXVsbAl2MTguMXEsdjAuMWQsdjE5LjFkCQkvLzFzdCBwaGFzZSBvZiByZWR1Y3Rpb24KCglpbnMJdjIuZFswXSx2MS5kWzFdCglpbnMJdjEuZFsxXSx2MC5kWzBdCgllb3IJdjAuMTZiLHYxLjE2Yix2MTguMTZiCgoJZXh0CXYxOC4xNmIsdjAuMTZiLHYwLjE2YiwjOAkJLy8ybmQgcGhhc2Ugb2YgcmVkdWN0aW9uCglwbXVsbAl2MC4xcSx2MC4xZCx2MTkuMWQKCWVvcgl2MTguMTZiLHYxOC4xNmIsdjIuMTZiCgllb3IJdjAuMTZiLHYwLjE2Yix2MTguMTZiCgouTGRvbmVfdjg6CiNpZm5kZWYgX19BUk1FQl9fCglyZXY2NAl2MC4xNmIsdjAuMTZiCiNlbmRpZgoJZXh0CXYwLjE2Yix2MC4xNmIsdjAuMTZiLCM4CglzdDEJe3YwLjJkfSxbeDBdCQkvL3dyaXRlIG91dCBYaQoKCXJldAouc2l6ZQlnY21fZ2hhc2hfdjgsLi1nY21fZ2hhc2hfdjgKLmJ5dGUJNzEsNzIsNjUsODMsNzIsMzIsMTAyLDExMSwxMTQsMzIsNjUsODIsNzcsMTE4LDU2LDQ0LDMyLDY3LDgyLDg5LDgwLDg0LDc5LDcxLDY1LDc3LDgzLDMyLDk4LDEyMSwzMiw2MCw5NywxMTIsMTEyLDExNCwxMTEsNjQsMTExLDExMiwxMDEsMTEwLDExNSwxMTUsMTA4LDQ2LDExMSwxMTQsMTAzLDYyLDAKLmFsaWduCTIKLmFsaWduCTIKI2VuZGlm