ZGlmZiAtLWdpdCBhL2JlbmNobWFya3MvYmVuY2htYXJrX21haW4uY3BwIGIvYmVuY2htYXJrcy9iZW5jaG1hcmtfbWFpbi5jcHAKaW5kZXggZjhlODViYi4uZDYwNjcwYiAxMDA2NDQKLS0tIGEvYmVuY2htYXJrcy9iZW5jaG1hcmtfbWFpbi5jcHAKKysrIGIvYmVuY2htYXJrcy9iZW5jaG1hcmtfbWFpbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKIHR5cGVkZWYgc3RkOjptYXA8c3RkOjpzdHJpbmcsIDo6dGVzdGluZzo6QmVuY2htYXJrKj4gQmVuY2htYXJrTWFwOwogdHlwZWRlZiBCZW5jaG1hcmtNYXA6Oml0ZXJhdG9yIEJlbmNobWFya01hcEl0Owogc3RhdGljIEJlbmNobWFya01hcCBnX2JlbmNobWFya3M7CitzdGF0aWMgaW50IGdfbmFtZV9jb2x1bW5fd2lkdGggPSAyMDsKIAogc3RhdGljIGludCBSb3VuZChpbnQgbikgewogICBpbnQgYmFzZSA9IDE7CkBAIC0xNjQsNyArMTY1LDcgQEAKICAgICBzbnByaW50ZihmdWxsX25hbWUsIHNpemVvZihmdWxsX25hbWUpLCAiJXMiLCBuYW1lXyk7CiAgIH0KIAotICBwcmludGYoIiUtMjBzICUxMGQgJTEwIiBQUklkNjQgIiVzXG4iLCBmdWxsX25hbWUsCisgIHByaW50ZigiJS0qcyAlMTBkICUxMCIgUFJJZDY0ICIlc1xuIiwgZ19uYW1lX2NvbHVtbl93aWR0aCwgZnVsbF9uYW1lLAogICAgICAgICAgaXRlcmF0aW9ucywgZ19iZW5jaG1hcmtfdG90YWxfdGltZV9ucy9pdGVyYXRpb25zLCB0aHJvdWdocHV0KTsKICAgZmZsdXNoKHN0ZG91dCk7CiB9CkBAIC0xOTQsMTIgKzE5NSwxNyBAQAogICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgfQogCisgIGZvciAoQmVuY2htYXJrTWFwSXQgaXQgPSBnX2JlbmNobWFya3MuYmVnaW4oKTsgaXQgIT0gZ19iZW5jaG1hcmtzLmVuZCgpOyArK2l0KSB7CisgICAgaW50IG5hbWVfd2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KHN0cmxlbihpdC0+c2Vjb25kLT5OYW1lKCkpKTsKKyAgICBnX25hbWVfY29sdW1uX3dpZHRoID0gc3RkOjptYXgoZ19uYW1lX2NvbHVtbl93aWR0aCwgbmFtZV93aWR0aCk7CisgIH0KKwogICBib29sIG5lZWRfaGVhZGVyID0gdHJ1ZTsKICAgZm9yIChCZW5jaG1hcmtNYXBJdCBpdCA9IGdfYmVuY2htYXJrcy5iZWdpbigpOyBpdCAhPSBnX2JlbmNobWFya3MuZW5kKCk7ICsraXQpIHsKICAgICA6OnRlc3Rpbmc6OkJlbmNobWFyayogYiA9IGl0LT5zZWNvbmQ7CiAgICAgaWYgKGItPlNob3VsZFJ1bihhcmdjLCBhcmd2KSkgewogICAgICAgaWYgKG5lZWRfaGVhZGVyKSB7Ci0gICAgICAgIHByaW50ZigiJS0yMHMgJTEwcyAlMTBzXG4iLCAiIiwgIml0ZXJhdGlvbnMiLCAibnMvb3AiKTsKKyAgICAgICAgcHJpbnRmKCIlLSpzICUxMHMgJTEwc1xuIiwgZ19uYW1lX2NvbHVtbl93aWR0aCwgIiIsICJpdGVyYXRpb25zIiwgIm5zL29wIik7CiAgICAgICAgIGZmbHVzaChzdGRvdXQpOwogICAgICAgICBuZWVkX2hlYWRlciA9IGZhbHNlOwogICAgICAgfQpkaWZmIC0tZ2l0IGEvYmVuY2htYXJrcy9tYXRoX2JlbmNobWFyay5jcHAgYi9iZW5jaG1hcmtzL21hdGhfYmVuY2htYXJrLmNwcAppbmRleCAzNjAyZGU0Li5hOTc0OGNkIDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL21hdGhfYmVuY2htYXJrLmNwcAorKysgYi9iZW5jaG1hcmtzL21hdGhfYmVuY2htYXJrLmNwcApAQCAtMTYsNiArMTYsNyBAQAogCiAjaW5jbHVkZSAiYmVuY2htYXJrLmgiCiAKKyNpbmNsdWRlIDxmZW52Lmg+CiAjaW5jbHVkZSA8bWF0aC5oPgogCiAvLyBBdm9pZCBvcHRpbWl6YXRpb24uCkBAIC0xMTMsMTAgKzExNCw0OSBAQAogfQogQkVOQ0hNQVJLKEJNX21hdGhfaXNpbmZfWkVSTyk7CiAKK3N0YXRpYyB2b2lkIEJNX21hdGhfc2luX2Zhc3QoaW50IGl0ZXJzKSB7CisgIFN0YXJ0QmVuY2htYXJrVGltaW5nKCk7CiAKKyAgZCA9IDEuMDsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyczsgKytpKSB7CisgICAgZCArPSBzaW4oZCk7CisgIH0KIAorICBTdG9wQmVuY2htYXJrVGltaW5nKCk7Cit9CitCRU5DSE1BUksoQk1fbWF0aF9zaW5fZmFzdCk7CiAKK3N0YXRpYyB2b2lkIEJNX21hdGhfc2luX2ZldXBkYXRlZW52KGludCBpdGVycykgeworICBTdGFydEJlbmNobWFya1RpbWluZygpOwogCisgIGQgPSAxLjA7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcnM7ICsraSkgeworICAgIGZlbnZfdCBfX2xpYmNfc2F2ZV9ybTsKKyAgICBmZWhvbGRleGNlcHQoJl9fbGliY19zYXZlX3JtKTsKKyAgICBmZXNldHJvdW5kKEZFX1RPTkVBUkVTVCk7CisgICAgZCArPSBzaW4oZCk7CisgICAgZmV1cGRhdGVlbnYoJl9fbGliY19zYXZlX3JtKTsKKyAgfQorCisgIFN0b3BCZW5jaG1hcmtUaW1pbmcoKTsKK30KK0JFTkNITUFSSyhCTV9tYXRoX3Npbl9mZXVwZGF0ZWVudik7CisKK3N0YXRpYyB2b2lkIEJNX21hdGhfc2luX2Zlc2V0ZW52KGludCBpdGVycykgeworICBTdGFydEJlbmNobWFya1RpbWluZygpOworCisgIGQgPSAxLjA7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcnM7ICsraSkgeworICAgIGZlbnZfdCBfX2xpYmNfc2F2ZV9ybTsKKyAgICBmZWhvbGRleGNlcHQoJl9fbGliY19zYXZlX3JtKTsKKyAgICBmZXNldHJvdW5kKEZFX1RPTkVBUkVTVCk7CisgICAgZCArPSBzaW4oZCk7CisgICAgZmVzZXRlbnYoJl9fbGliY19zYXZlX3JtKTsKKyAgfQorCisgIFN0b3BCZW5jaG1hcmtUaW1pbmcoKTsKK30KK0JFTkNITUFSSyhCTV9tYXRoX3Npbl9mZXNldGVudik7CiAKIHN0YXRpYyB2b2lkIEJNX21hdGhfZnBjbGFzc2lmeV9OT1JNQUwoaW50IGl0ZXJzKSB7CiAgIFN0YXJ0QmVuY2htYXJrVGltaW5nKCk7CmRpZmYgLS1naXQgYS9iZW5jaG1hcmtzL3B0aHJlYWRfYmVuY2htYXJrLmNwcCBiL2JlbmNobWFya3MvcHRocmVhZF9iZW5jaG1hcmsuY3BwCmluZGV4IDYyMWZjYjYuLmMwMTBkZDIgMTAwNjQ0Ci0tLSBhL2JlbmNobWFya3MvcHRocmVhZF9iZW5jaG1hcmsuY3BwCisrKyBiL2JlbmNobWFya3MvcHRocmVhZF9iZW5jaG1hcmsuY3BwCkBAIC0xOCwxMSArMTgsMTQgQEAKIAogI2luY2x1ZGUgPHB0aHJlYWQuaD4KIAorLy8gU3RvcCBHQ0Mgb3B0aW1pemluZyBvdXQgb3VyIHB1cmUgZnVuY3Rpb24uCisvKiBNdXN0IG5vdCBiZSBzdGF0aWMhICovIHB0aHJlYWRfdCAoKnB0aHJlYWRfc2VsZl9mcCkoKSA9IHB0aHJlYWRfc2VsZjsKKwogc3RhdGljIHZvaWQgQk1fcHRocmVhZF9zZWxmKGludCBpdGVycykgewogICBTdGFydEJlbmNobWFya1RpbWluZygpOwogCiAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcnM7ICsraSkgewotICAgIHB0aHJlYWRfc2VsZigpOworICAgIHB0aHJlYWRfc2VsZl9mcCgpOwogICB9CiAKICAgU3RvcEJlbmNobWFya1RpbWluZygpOwpkaWZmIC0tZ2l0IGEvYmVuY2htYXJrcy90aW1lX2JlbmNobWFyay5jcHAgYi9iZW5jaG1hcmtzL3RpbWVfYmVuY2htYXJrLmNwcAppbmRleCA3NTEzMmU1Li4zYmY4YzA3IDEwMDY0NAotLS0gYS9iZW5jaG1hcmtzL3RpbWVfYmVuY2htYXJrLmNwcAorKysgYi9iZW5jaG1hcmtzL3RpbWVfYmVuY2htYXJrLmNwcApAQCAtMzUsNCArMzUsMTcgQEAKICAgU3RvcEJlbmNobWFya1RpbWluZygpOwogfQogQkVOQ0hNQVJLKEJNX3RpbWVfbG9jYWx0aW1lX3R6KTsKKwogI2VuZGlmCisKK3N0YXRpYyB2b2lkIEJNX3RpbWVfY2xvY2tfZ2V0dGltZShpbnQgaXRlcnMpIHsKKyAgU3RhcnRCZW5jaG1hcmtUaW1pbmcoKTsKKworICBzdHJ1Y3QgdGltZXNwZWMgdDsKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVyczsgKytpKSB7CisgICAgY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0KTsKKyAgfQorCisgIFN0b3BCZW5jaG1hcmtUaW1pbmcoKTsKK30KK0JFTkNITUFSSyhCTV90aW1lX2Nsb2NrX2dldHRpbWUpOwpkaWZmIC0tZ2l0IGEvYmVuY2htYXJrcy91bmlzdGRfYmVuY2htYXJrLmNwcCBiL2JlbmNobWFya3MvdW5pc3RkX2JlbmNobWFyay5jcHAKaW5kZXggMTJiNzg4YS4uN2UyYWMzMCAxMDA2NDQKLS0tIGEvYmVuY2htYXJrcy91bmlzdGRfYmVuY2htYXJrLmNwcAorKysgYi9iZW5jaG1hcmtzL3VuaXN0ZF9iZW5jaG1hcmsuY3BwCkBAIC0xNiw2ICsxNiw3IEBACiAKICNpbmNsdWRlICJiZW5jaG1hcmsuaCIKIAorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIHN0YXRpYyB2b2lkIEJNX3VuaXN0ZF9nZXRwaWQoaW50IGl0ZXJzKSB7CkBAIC0yOSwxMyArMzAsMzggQEAKIH0KIEJFTkNITUFSSyhCTV91bmlzdGRfZ2V0cGlkKTsKIAorc3RhdGljIHZvaWQgQk1fdW5pc3RkX2dldHBpZF9zeXNjYWxsKGludCBpdGVycykgeworICBTdGFydEJlbmNobWFya1RpbWluZygpOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcnM7ICsraSkgeworICAgIHN5c2NhbGwoX19OUl9nZXRwaWQpOworICB9CisKKyAgU3RvcEJlbmNobWFya1RpbWluZygpOworfQorQkVOQ0hNQVJLKEJNX3VuaXN0ZF9nZXRwaWRfc3lzY2FsbCk7CisKKy8vIFN0b3AgR0NDIG9wdGltaXppbmcgb3V0IG91ciBwdXJlIGZ1bmN0aW9uLgorLyogTXVzdCBub3QgYmUgc3RhdGljISAqLyBwaWRfdCAoKmdldHRpZF9mcCkoKSA9IGdldHRpZDsKKwogc3RhdGljIHZvaWQgQk1fdW5pc3RkX2dldHRpZChpbnQgaXRlcnMpIHsKICAgU3RhcnRCZW5jaG1hcmtUaW1pbmcoKTsKIAogICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZXJzOyArK2kpIHsKLSAgICBnZXR0aWQoKTsKKyAgICBnZXR0aWRfZnAoKTsKICAgfQogCiAgIFN0b3BCZW5jaG1hcmtUaW1pbmcoKTsKIH0KIEJFTkNITUFSSyhCTV91bmlzdGRfZ2V0dGlkKTsKKworc3RhdGljIHZvaWQgQk1fdW5pc3RkX2dldHRpZF9zeXNjYWxsKGludCBpdGVycykgeworICBTdGFydEJlbmNobWFya1RpbWluZygpOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlcnM7ICsraSkgeworICAgIHN5c2NhbGwoX19OUl9nZXR0aWQpOworICB9CisKKyAgU3RvcEJlbmNobWFya1RpbWluZygpOworfQorQkVOQ0hNQVJLKEJNX3VuaXN0ZF9nZXR0aWRfc3lzY2FsbCk7CmRpZmYgLS1naXQgYS9saWJjL0FuZHJvaWQubWsgYi9saWJjL0FuZHJvaWQubWsKaW5kZXggNzdjNzdjOC4uYzFhM2RmZiAxMDA2NDQKLS0tIGEvbGliYy9BbmRyb2lkLm1rCisrKyBiL2xpYmMvQW5kcm9pZC5tawpAQCAtNDMsOSArNDMsNyBAQAogICAgIGJpb25pYy9lcnIuYyBcCiAgICAgYmlvbmljL2V0aGVyX2F0b24uYyBcCiAgICAgYmlvbmljL2V0aGVyX250b2EuYyBcCi0gICAgYmlvbmljL2Z0aW1lLmMgXAogICAgIGJpb25pYy9mdHMuYyBcCi0gICAgYmlvbmljL2dldGR0YWJsZXNpemUuYyBcCiAgICAgYmlvbmljL2dldGhvc3RuYW1lLmMgXAogICAgIGJpb25pYy9nZXRwcmlvcml0eS5jIFwKICAgICBiaW9uaWMvZ2V0cHQuYyBcCkBAIC01NCw3ICs1Miw2IEBACiAgICAgYmlvbmljL2luaXRncm91cHMuYyBcCiAgICAgYmlvbmljL2lvY3RsLmMgXAogICAgIGJpb25pYy9pc2F0dHkuYyBcCi0gICAgYmlvbmljL21kNS5jIFwKICAgICBiaW9uaWMvbWVtbWVtLmMgXAogICAgIGJpb25pYy9wYXRoY29uZi5jIFwKICAgICBiaW9uaWMvcHRzbmFtZS5jIFwKQEAgLTEzMCw2ICsxMjcsNyBAQAogICAgIGJpb25pYy9nZXRhdXh2YWwuY3BwIFwKICAgICBiaW9uaWMvZ2V0Y3dkLmNwcCBcCiAgICAgYmlvbmljL2dldHBncnAuY3BwIFwKKyAgICBiaW9uaWMvZ2V0cGlkLmNwcCBcCiAgICAgYmlvbmljL2dldHRpZC5jcHAgXAogICAgIGJpb25pYy9pbm90aWZ5X2luaXQuY3BwIFwKICAgICBiaW9uaWMvbGNob3duLmNwcCBcCkBAIC0yMTksMTEgKzIxNywxMiBAQAogICAgIGJpb25pYy9zeXN0ZW1fcHJvcGVydGllcy5jcHAgXAogICAgIGJpb25pYy90ZGVzdHJveS5jcHAgXAogICAgIGJpb25pYy90ZXJtaW9zLmNwcCBcCi0gICAgYmlvbmljL3RocmVhZF9hdGV4aXQuY3BwIFwKKyAgICBiaW9uaWMvdGhyZWFkX3ByaXZhdGUuY3BwIFwKICAgICBiaW9uaWMvdG1wZmlsZS5jcHAgXAogICAgIGJpb25pYy91bW91bnQuY3BwIFwKICAgICBiaW9uaWMvdW5saW5rLmNwcCBcCiAgICAgYmlvbmljL3V0aW1lcy5jcHAgXAorICAgIGJpb25pYy92Zm9yay5jcHAgXAogICAgIGJpb25pYy93YWl0LmNwcCBcCiAgICAgYmlvbmljL3djaGFyLmNwcCBcCiAgICAgYmlvbmljL3djdHlwZS5jcHAgXApAQCAtMjY0LDE3ICsyNjMsMTQgQEAKICAgICB1cHN0cmVhbS1mcmVlYnNkL2xpYi9saWJjL3N0cmluZy93bWVtc2V0LmMgXAogCiBsaWJjX3Vwc3RyZWFtX25ldGJzZF9zcmNfZmlsZXMgOj0gXAotICAgIHVwc3RyZWFtLW5ldGJzZC9jb21tb24vbGliL2xpYmMvaGFzaC9zaGExL3NoYTEuYyBcCisgICAgdXBzdHJlYW0tbmV0YnNkL2NvbW1vbi9saWIvbGliYy9zdGRsaWIvcmFuZG9tLmMgXAogICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9nZW4vZnR3LmMgXAogICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9nZW4vbmZ0dy5jIFwKICAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvZ2VuL25pY2UuYyBcCiAgICAgdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL2dlbi9wb3Blbi5jIFwKICAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvZ2VuL3BzaWduYWwuYyBcCi0gICAgdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL2dlbi9zZXRqbXBlcnIuYyBcCiAgICAgdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL2dlbi91dGltZS5jIFwKICAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvZ2VuL3V0bXAuYyBcCi0gICAgdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL2lzYy9ldl9zdHJlYW1zLmMgXAotICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9pc2MvZXZfdGltZXJzLmMgXAogICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9yZWdleC9yZWdjb21wLmMgXAogICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9yZWdleC9yZWdlcnJvci5jIFwKICAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvcmVnZXgvcmVnZXhlYy5jIFwKQEAgLTI5MSw2ICsyODcsOCBAQAogICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9zdGRsaWIvbXJhbmQ0OC5jIFwKICAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvc3RkbGliL25yYW5kNDguYyBcCiAgICAgdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL3N0ZGxpYi9fcmFuZDQ4LmMgXAorICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9zdGRsaWIvcmFuZC5jIFwKKyAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvc3RkbGliL3JhbmRfci5jIFwKICAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvc3RkbGliL3NlZWQ0OC5jIFwKICAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvc3RkbGliL3NyYW5kNDguYyBcCiAgICAgdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL3N0ZGxpYi90ZGVsZXRlLmMgXApAQCAtNDE5LDcgKzQxNyw2IEBACiAgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdGRpby9wdXRjLmMgXAogICAgIHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RkaW8vcHV0Y2hhci5jIFwKICAgICB1cHN0cmVhbS1vcGVuYnNkL2xpYi9saWJjL3N0ZGlvL3B1dHMuYyBcCi0gICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdGRpby9wdXR3LmMgXAogICAgIHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RkaW8vcHV0d2MuYyBcCiAgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdGRpby9wdXR3Y2hhci5jIFwKICAgICB1cHN0cmVhbS1vcGVuYnNkL2xpYi9saWJjL3N0ZGlvL3JlZmlsbC5jIFwKQEAgLTQ4MSw3ICs0NzgsNiBAQAogICAgIHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RyaW5nL3N0cnRvay5jIFwKICAgICB1cHN0cmVhbS1vcGVuYnNkL2xpYi9saWJjL3N0cmluZy93Y3NsY3B5LmMgXAogICAgIHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RyaW5nL3djc3N0ci5jIFwKLSAgICB1cHN0cmVhbS1vcGVuYnNkL2xpYi9saWJjL3N0cmluZy93Y3N3Y3MuYyBcCiAgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdHJpbmcvd2Nzd2lkdGguYyBcCiAKIGxpYmNfYXJjaF9zdGF0aWNfc3JjX2ZpbGVzIDo9IFwKQEAgLTUwNSw3ICs1MDEsNyBAQAogCiBpZmVxICgkKE1BTExPQ19JTVBMKSxqZW1hbGxvYykKICAgbGliY19jb21tb25fY2ZsYWdzICs9IC1EVVNFX0pFTUFMTE9DCi0gIGxpYmNfbWFsbG9jX3NyYyA6PSBiaW9uaWMvamVtYWxsb2MuY3BwCisgIGxpYmNfbWFsbG9jX3NyYyA6PSBiaW9uaWMvamVtYWxsb2Nfd3JhcHBlci5jcHAKIGVsc2UKICAgbGliY19jb21tb25fY2ZsYWdzICs9IC1EVVNFX0RMTUFMTE9DCiAgIGxpYmNfbWFsbG9jX3NyYyA6PSBiaW9uaWMvZGxtYWxsb2MuYwpAQCAtNTg5LDcgKzU4NSwxMCBAQAogIyB0emNvZGUgZG9lc24ndCBpbmNsdWRlIHdjc2Z0aW1lLCBzbyB3ZSB1c2UgdGhlIE9wZW5CU0Qgb25lLgogTE9DQUxfU1JDX0ZJTEVTICs9IHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvdGltZS93Y3NmdGltZS5jCiAKLUxPQ0FMX0NGTEFHUyA6PSAkKGxpYmNfY29tbW9uX2NmbGFncykKK0xPQ0FMX0NGTEFHUyA6PSAkKGxpYmNfY29tbW9uX2NmbGFncykgXAorICAgIC1mdmlzaWJpbGl0eT1oaWRkZW4gXAorICAgIC1XZXJyb3IgXAorCiAjIERvbid0IHVzZSByaWRpY3Vsb3VzIGFtb3VudHMgb2Ygc3RhY2suCiBMT0NBTF9DRkxBR1MgKz0gLURBTExfU1RBVEUKICMgSW5jbHVkZSB0enNldHdhbGwsIHRpbWVsb2NhbCwgdGltZWdtLCB0aW1lMnBvc2l4LCBhbmQgcG9zaXgydGltZS4KQEAgLTYwMSw2ICs2MDAsNyBAQAogIyBJbmNsdWRlIHRpbWV6b25lIGFuZCBkYXlsaWdodCBnbG9iYWxzLgogTE9DQUxfQ0ZMQUdTICs9IC1EVVNHX0NPTVBBVD0xCiBMT0NBTF9DRkxBR1MgKz0gLUROT19SVU5fVElNRV9XQVJOSU5HU19BQk9VVF9ZRUFSXzIwMDBfUFJPQkxFTVNfVEhBTktfWU9VCitMT0NBTF9DRkxBR1MgKz0gLURsaW50CiAKIExPQ0FMX0NPTkxZRkxBR1MgOj0gJChsaWJjX2NvbW1vbl9jb25seWZsYWdzKQogTE9DQUxfQ1BQRkxBR1MgOj0gJChsaWJjX2NvbW1vbl9jcHBmbGFncykKQEAgLTYxOSwxNSArNjE5LDIxIEBACiAKIGluY2x1ZGUgJChDTEVBUl9WQVJTKQogCi1MT0NBTF9TUkNfRklMRVMgOj0gJChjYWxsIGFsbC1jLWZpbGVzLXVuZGVyLGRucykKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgJChjYWxsIGFsbC1jLWZpbGVzLXVuZGVyLGRucykgXAorICAgIHVwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9pc2MvZXZfc3RyZWFtcy5jIFwKKyAgICB1cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvaXNjL2V2X3RpbWVycy5jIFwKKwogTE9DQUxfQ0ZMQUdTIDo9IFwKICAgICAkKGxpYmNfY29tbW9uX2NmbGFncykgXAogICAgIC1EQU5EUk9JRF9DSEFOR0VTIFwKICAgICAtRElORVQ2IFwKKyAgICAtZnZpc2liaWxpdHk9aGlkZGVuIFwKICAgICAtSSQoTE9DQUxfUEFUSCkvZG5zL2luY2x1ZGUgXAogICAgIC1JJChMT0NBTF9QQVRIKS9wcml2YXRlIFwKICAgICAtSSQoTE9DQUxfUEFUSCkvdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL2luY2x1ZGUgXAotICAgIC1pbmNsdWRlIHVwc3RyZWFtLW5ldGJzZC9hbmRyb2lkL2luY2x1ZGUvbmV0YnNkLWNvbXBhdC5oIFwKKyAgICAtSSQoTE9DQUxfUEFUSCkvdXBzdHJlYW0tbmV0YnNkL2FuZHJvaWQvaW5jbHVkZSBcCisgICAgLWluY2x1ZGUgbmV0YnNkLWNvbXBhdC5oIFwKICMgICAgLVdlcnJvciBcCiAKIExPQ0FMX0NPTkxZRkxBR1MgOj0gJChsaWJjX2NvbW1vbl9jb25seWZsYWdzKQpAQCAtNjk3LDYgKzcwMyw3IEBACiBMT0NBTF9TWVNURU1fU0hBUkVEX0xJQlJBUklFUyA6PQogCiAkKGV2YWwgJChjYWxsIHBhdGNoLXVwLWFyY2gtc3BlY2lmaWMtZmxhZ3MsTE9DQUxfQ0ZMQUdTLGxpYmNfY29tbW9uX2NmbGFncykpCiskKGV2YWwgJChjYWxsIHBhdGNoLXVwLWFyY2gtc3BlY2lmaWMtZmxhZ3MsTE9DQUxfU1JDX0ZJTEVTLGxpYmNfbmV0YnNkX3NyY19maWxlcykpCiBpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCiAKIApkaWZmIC0tZ2l0IGEvbGliYy9TWVNDQUxMUy5UWFQgYi9saWJjL1NZU0NBTExTLlRYVAppbmRleCA1ODRjMWFlLi5iNGM4MTM0IDEwMDY0NAotLS0gYS9saWJjL1NZU0NBTExTLlRYVAorKysgYi9saWJjL1NZU0NBTExTLlRYVApAQCAtNzcsNyArNzcsNiBAQAogaW50ICAgICBzZXRncm91cHM6c2V0Z3JvdXBzMzIoaW50LCBjb25zdCBnaWRfdCopICAgYXJtLHg4NgogaW50ICAgICBzZXRncm91cHM6c2V0Z3JvdXBzKGludCwgY29uc3QgZ2lkX3QqKSAgICAgYXJtNjQsbWlwcyxtaXBzNjQseDg2XzY0CiBpbnQgICAgIHNldHBnaWQocGlkX3QsIHBpZF90KSAgYWxsCi1waWRfdCAgIHZmb3JrKHZvaWQpICBhcm0KIGludCAgICAgc2V0cmVnaWQ6c2V0cmVnaWQzMihnaWRfdCwgZ2lkX3QpICBhcm0seDg2CiBpbnQgICAgIHNldHJlZ2lkOnNldHJlZ2lkKGdpZF90LCBnaWRfdCkgICAgYXJtNjQsbWlwcyxtaXBzNjQseDg2XzY0CiBpbnQgICAgIGNocm9vdChjb25zdCBjaGFyKikgIGFsbApAQCAtOTgsNyArOTcsNyBAQAogc3NpemVfdCAgICAgcHdyaXRlNjQoaW50LCB2b2lkKiwgc2l6ZV90LCBvZmY2NF90KSBhcm0sbWlwcyx4ODYKIHNzaXplX3QgICAgIHB3cml0ZTY0fHB3cml0ZShpbnQsIHZvaWQqLCBzaXplX3QsIG9mZl90KSBhcm02NCxtaXBzNjQseDg2XzY0CiBpbnQgICAgICAgICBjbG9zZShpbnQpICAgICAgICAgICAgICAgICAgICAgIGFsbAotcGlkX3QgICAgICAgZ2V0cGlkKCkgICAgYWxsCitwaWRfdCAgICAgICBfX2dldHBpZDpnZXRwaWQoKSAgYWxsCiBpbnQgICAgICAgICBtdW5tYXAodm9pZCosIHNpemVfdCkgIGFsbAogdm9pZCogICAgICAgbXJlbWFwKHZvaWQqLCBzaXplX3QsIHNpemVfdCwgdW5zaWduZWQgbG9uZykgIGFsbAogaW50ICAgICAgICAgbXN5bmMoY29uc3Qgdm9pZCosIHNpemVfdCwgaW50KSAgICBhbGwKQEAgLTEyOSwxMiArMTI4LDcgQEAKIHNzaXplX3QgICAgIGZsaXN0eGF0dHIoaW50LCBjaGFyKiwgc2l6ZV90KSBhbGwKIGludCAgICAgICAgIGZyZW1vdmV4YXR0cihpbnQsIGNvbnN0IGNoYXIqKSBhbGwKIAotIyBtaXBzNjQgZG9lc24ndCBoYXZlIGdldGRlbnRzNjQgdW50aWwgMy4xMCBrZXJuZWxzLgotIyBXZSBuZWVkIHRoaXMgc3BlY2lhbC1jYXNlIGhhY2sgYXMgbG9uZyBhcyB3ZSBuZWVkIHRvIHN1cHBvcnQgbWlwczY0IG9uIG9sZGVyIGtlcm5lbHMuCi0jIFRoZSBjdXJyZW50bHktYXZhaWxhYmxlIERlYmlhbiBxZW11IGltYWdlIGlzIG9uIGEgMy4yIGtlcm5lbC4KLWludCBnZXRkZW50czpnZXRkZW50czY0KHVuc2lnbmVkIGludCwgc3RydWN0IGRpcmVudCosIHVuc2lnbmVkIGludCkgICBhcm0sYXJtNjQsbWlwcyx4ODYseDg2XzY0Ci1pbnQgX19nZXRkZW50czY0OmdldGRlbnRzNjQodW5zaWduZWQgaW50LCBzdHJ1Y3QgZGlyZW50KiwgdW5zaWduZWQgaW50KSAgIG1pcHM2NAotaW50IF9fZ2V0ZGVudHM6Z2V0ZGVudHModW5zaWduZWQgaW50LCB2b2lkKiwgdW5zaWduZWQgaW50KSAgIG1pcHM2NAoraW50IF9fZ2V0ZGVudHM2NDpnZXRkZW50czY0KHVuc2lnbmVkIGludCwgc3RydWN0IGRpcmVudCosIHVuc2lnbmVkIGludCkgICBhcm0sYXJtNjQsbWlwcyxtaXBzNjQseDg2LHg4Nl82NAogCiBpbnQgX19vcGVuYXQ6b3BlbmF0KGludCwgY29uc3QgY2hhciosIGludCwgbW9kZV90KSBhbGwKIGludCBmYWNjZXNzYXQoaW50LCBjb25zdCBjaGFyKiwgaW50LCBpbnQpICBhbGwKQEAgLTI4MSwxMCArMjc1LDYgQEAKIGludCBfX3NjaGVkX2dldGFmZmluaXR5OnNjaGVkX2dldGFmZmluaXR5KHBpZF90IHBpZCwgc2l6ZV90IHNldHNpemUsIGNwdV9zZXRfdCogc2V0KSAgYWxsCiBpbnQgX19nZXRjcHU6Z2V0Y3B1KHVuc2lnbmVkKiwgdW5zaWduZWQqLCB2b2lkKikgYWxsCiAKLSMgaW8gcHJpb3JpdGllcwotaW50IGlvcHJpb19zZXQoaW50IHdoaWNoLCBpbnQgd2hvLCBpbnQgaW9wcmlvKSBhbGwKLWludCBpb3ByaW9fZ2V0KGludCB3aGljaCwgaW50IHdobykgYWxsCi0KICMgb3RoZXIKIGludCAgICAgdW5hbWUoc3RydWN0IHV0c25hbWUqKSAgYWxsCiBtb2RlX3QgIHVtYXNrKG1vZGVfdCkgIGFsbApAQCAtMjk1LDYgKzI4NSwxMCBAQAogaW50ICAgICBzeXNpbmZvKHN0cnVjdCBzeXNpbmZvKikgIGFsbAogaW50ICAgICBwZXJzb25hbGl0eSh1bnNpZ25lZCBsb25nKSAgYWxsCiAKK3NzaXplX3QgdGVlKGludCwgaW50LCBzaXplX3QsIHVuc2lnbmVkIGludCkgIGFsbAorc3NpemVfdCBzcGxpY2UoaW50LCBvZmY2NF90KiwgaW50LCBvZmY2NF90Kiwgc2l6ZV90LCB1bnNpZ25lZCBpbnQpICBhbGwKK3NzaXplX3Qgdm1zcGxpY2UoaW50LCBjb25zdCBzdHJ1Y3QgaW92ZWMqLCBzaXplX3QsIHVuc2lnbmVkIGludCkgIGFsbAorCiBpbnQgZXBvbGxfY3JlYXRlMShpbnQpICBhbGwKIGludCBlcG9sbF9jdGwoaW50LCBpbnQgb3AsIGludCwgc3RydWN0IGVwb2xsX2V2ZW50KikgIGFsbAogaW50IF9fZXBvbGxfcHdhaXQ6ZXBvbGxfcHdhaXQoaW50LCBzdHJ1Y3QgZXBvbGxfZXZlbnQqLCBpbnQsIGludCwgY29uc3Qgc2lnc2V0X3QqLCBzaXplX3QpICBhbGwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm0vYXJtLm1rIGIvbGliYy9hcmNoLWFybS9hcm0ubWsKaW5kZXggN2M0MjNhYi4uNDdlNDM2YyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybS9hcm0ubWsKKysrIGIvbGliYy9hcmNoLWFybS9hcm0ubWsKQEAgLTUsMTMgKzUsMTMgQEAKICAgICBiaW9uaWMvbGVnYWN5XzMyX2JpdF9zdXBwb3J0LmNwcCBcCiAgICAgYmlvbmljL25ka19jcnVmdC5jcHAgXAogICAgIGJpb25pYy90aW1lNjQuYyBcCisgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdGRpby9wdXR3LmMgXAogCiAjIFRoZXNlIGFyZSBzaGFyZWQgYnkgYWxsIHRoZSAzMi1iaXQgdGFyZ2V0cywgYnV0IG5vdCB0aGUgNjQtYml0IG9uZXMuCiBsaWJjX2Jpb25pY19zcmNfZmlsZXNfYXJtIDo9IFwKICAgICBiaW9uaWMvbW1hcC5jcHAKIAogbGliY19jb21tb25fc3JjX2ZpbGVzX2FybSArPSBcCi0gICAgYmlvbmljL2luZGV4LmNwcCBcCiAgICAgYmlvbmljL21lbWNoci5jIFwKICAgICBiaW9uaWMvbWVtcmNoci5jIFwKICAgICBiaW9uaWMvc3RyY2hyLmNwcCBcCkBAIC01Niw3ICs1Niw2IEBACiAgICAgYXJjaC1hcm0vYmlvbmljL19leGl0X3dpdGhfc3RhY2tfdGVhcmRvd24uUyBcCiAgICAgYXJjaC1hcm0vYmlvbmljL19fZ2V0X3NwLlMgXAogICAgIGFyY2gtYXJtL2Jpb25pYy9saWJnY2NfY29tcGF0LmMgXAotICAgIGFyY2gtYXJtL2Jpb25pYy9tZW1jbXAxNi5TIFwKICAgICBhcmNoLWFybS9iaW9uaWMvbWVtY21wLlMgXAogICAgIGFyY2gtYXJtL2Jpb25pYy9fc2V0am1wLlMgXAogICAgIGFyY2gtYXJtL2Jpb25pYy9zZXRqbXAuUyBcCkBAIC02Niw2ICs2NSw5IEBACiBsaWJjX2FyY2hfc3RhdGljX3NyY19maWxlc19hcm0gOj0gYXJjaC1hcm0vYmlvbmljL2V4aWR4X3N0YXRpYy5jCiBsaWJjX2FyY2hfZHluYW1pY19zcmNfZmlsZXNfYXJtIDo9IGFyY2gtYXJtL2Jpb25pYy9leGlkeF9keW5hbWljLmMKIAorbGliY19uZXRic2Rfc3JjX2ZpbGVzX2FybSA6PSBcCisgICAgdXBzdHJlYW0tbmV0YnNkL2NvbW1vbi9saWIvbGliYy9oYXNoL3NoYTEvc2hhMS5jIFwKKwogIyMgQ1BVIHZhcmlhbnQgc3BlY2lmaWMgc291cmNlIGZpbGVzCiBpZmVxICgkKHN0cmlwICQoVEFSR0VUXyQobXlfMm5kX2FyY2hfcHJlZml4KUNQVV9WQVJJQU5UKSksKQogICAkKHdhcm5pbmcgVEFSR0VUXyQobXlfMm5kX2FyY2hfcHJlZml4KUFSQ0ggaXMgYXJtLCBidXQgVEFSR0VUXyQobXlfMm5kX2FyY2hfcHJlZml4KUNQVV9WQVJJQU5UIGlzIG5vdCBkZWZpbmVkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybS9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUyBiL2xpYmMvYXJjaC1hcm0vYmlvbmljL19fYmlvbmljX2Nsb25lLlMKaW5kZXggMjY0M2FlMC4uNDhmMmY5OCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybS9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUworKysgYi9saWJjL2FyY2gtYXJtL2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCkBAIC02MCwxMCArNjAsMTAgQEAKICAgICBiICAgICAgIF9fc2V0X2Vycm5vCiAKIDE6ICAjIFRoZSBjaGlsZC4KLSAgICAjIFNldHRpbmcgbHIgdG8gMCB3aWxsIG1ha2UgdGhlIHVud2luZGVyIHN0b3AgYXQgX19iaW9uaWNfY2xvbmVfZW50cnkKKyAgICAjIFNldHRpbmcgbHIgdG8gMCB3aWxsIG1ha2UgdGhlIHVud2luZGVyIHN0b3AgYXQgX19zdGFydF90aHJlYWQKICAgICBtb3YgICAgbHIsICMwCiAgICAgbGRyICAgIHIwLCBbc3AsICMtNF0KICAgICBsZHIgICAgcjEsIFtzcCwgIy04XQotICAgIGIgICAgICBfX2Jpb25pY19jbG9uZV9lbnRyeQorICAgIGIgICAgICBfX3N0YXJ0X3RocmVhZAogRU5EKF9fYmlvbmljX2Nsb25lKQogLmhpZGRlbiBfX2Jpb25pY19jbG9uZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybS9iaW9uaWMvbWVtY21wMTYuUyBiL2xpYmMvYXJjaC1hcm0vYmlvbmljL21lbWNtcDE2LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmMmYyZjEuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLWFybS9iaW9uaWMvbWVtY21wMTYuUworKysgL2Rldi9udWxsCkBAIC0xLDIzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDxtYWNoaW5lL2NwdS1mZWF0dXJlcy5oPgotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotCi0vKgotICogT3B0aW1pemVkIG1lbWNtcDE2KCkgZm9yIEFSTTkuCi0gKiBUaGlzIHdvdWxkIG5vdCBiZSBvcHRpbWFsIG9uIFhTY2FsZSBvciBBUk0xMSwgd2hlcmUgbW9yZSBwcmVmZXRjaGluZwotICogYW5kIHVzZSBvZiBwbGQgd2lsbCBiZSBuZWVkZWQuCi0gKiBUaGUgMiBtYWpvciBvcHRpbXphdGlvbnMgaGVyZSBhcmUKLSAqICgxKSBUaGUgbWFpbiBsb29wIGNvbXBhcmVzIDE2IGJ5dGVzIGF0IGEgdGltZQotICogKDIpIFRoZSBsb2FkcyBhcmUgc2NoZWR1bGVkIGluIGEgd2F5IHRoZXkgd29uJ3Qgc3RhbGwKLSAqLwotCi1FTlRSWShfX21lbWNtcDE2KQotICAgICAgICBwbGQgICAgICAgICBbcjAsICMwXQotICAgICAgICBwbGQgICAgICAgICBbcjEsICMwXQotCi0gICAgICAgIC8qIHRha2Ugb2YgdGhlIGNhc2Ugd2hlcmUgbGVuZ3RoIGlzIG51bCBvciB0aGUgYnVmZmVycyBhcmUgdGhlIHNhbWUgKi8KLSAgICAgICAgY21wICAgICAgICAgcjAsIHIxCi0gICAgICAgIGNtcG5lICAgICAgIHIyLCAjMAotICAgICAgICBtb3ZlcSAgICAgICByMCwgIzAKLSAgICAgICAgYnhlcSAgICAgICAgbHIKLQotICAgICAgICAvKiBzaW5jZSByMCBob2xkIHRoZSByZXN1bHQsIG1vdmUgdGhlIGZpcnN0IHNvdXJjZQotICAgICAgICAgKiBwb2ludGVyIHNvbWV3aGVyZSBlbHNlCi0gICAgICAgICAqLwotCi0gICAgICAgIG1vdiAgICAgICAgIHIzLCByMAotCi0gICAgICAgICAvKiBtYWtlIHN1cmUgd2UgaGF2ZSBhdCBsZWFzdCAxMiB3b3JkcywgdGhpcyBzaW1wbGlmeSB0aGluZ3MgYmVsb3cKLSAgICAgICAgICAqIGFuZCBhdm9pZCBzb21lIG92ZXJoZWFkIGZvciBzbWFsbCBibG9ja3MKLSAgICAgICAgICAqLwotCi0gICAgICAgIGNtcCAgICAgICAgIHIyLCAjMTIKLSAgICAgICAgYnBsICAgICAgICAgMGYKLQotICAgICAgICAvKiBzbWFsbCBibG9ja3MgKGxlc3MgdGhlbiAxMiB3b3JkcykgKi8KLSAgICAgICAgcGxkICAgICAgICAgW3IwLCAjMzJdCi0gICAgICAgIHBsZCAgICAgICAgIFtyMSwgIzMyXQotCi0xOiAgICAgIGxkcmggICAgICAgIHIwLCBbcjNdLCAjMgotICAgICAgICBsZHJoICAgICAgICBpcCwgW3IxXSwgIzIKLSAgICAgICAgc3VicyAgICAgICAgcjAsIHIwLCBpcAotICAgICAgICBieG5lICAgICAgICBscgotICAgICAgICBzdWJzICAgICAgICByMiwgcjIsICMxCi0gICAgICAgIGJuZSAgICAgICAgIDFiCi0gICAgICAgIGJ4ICAgICAgICAgIGxyCi0KLQotICAgICAgICAvKiBzYXZlIHJlZ2lzdGVycyAqLwotMDogICAgICBzdG1mZCAgICAgICBzcCEsIHtyNCwgbHJ9Ci0gICAgICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgOAotICAgICAgICAuY2ZpX3JlbF9vZmZzZXQgcjQsIDAKLSAgICAgICAgLmNmaV9yZWxfb2Zmc2V0IGxyLCA0Ci0KLSAgICAgICAgLyogYWxpZ24gZmlyc3QgcG9pbnRlciB0byB3b3JkIGJvdW5kYXJ5ICovCi0gICAgICAgIHRzdCAgICAgICAgIHIzLCAjMgotICAgICAgICBiZXEgICAgICAgICAwZgotCi0gICAgICAgIGxkcmggICAgICAgIHIwLCBbcjNdLCAjMgotICAgICAgICBsZHJoICAgICAgICBpcCwgW3IxXSwgIzIKLSAgICAgICAgc3ViICAgICAgICAgcjIsIHIyLCAjMQotICAgICAgICBzdWJzICAgICAgICByMCwgcjAsIGlwCi0gICAgICAgIC8qIHJlc3RvcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gKi8KLSAgICAgICAgbGRtbmVmZCAgICAgc3AhLCB7cjQsIGxyfQotICAgICAgICBieG5lICAgICAgICBscgotCi0KLTA6ICAgICAgLyogaGVyZSB0aGUgZmlyc3QgcG9pbnRlciBpcyBhbGlnbmVkLCBhbmQgd2UgaGF2ZSBhdCBsZWFzdCAzIHdvcmRzCi0gICAgICAgICAqIHRvIHByb2Nlc3MuCi0gICAgICAgICAqLwotCi0gICAgICAgIC8qIHNlZSBpZiB0aGUgcG9pbnRlcnMgYXJlIGNvbmdydWVudCAqLwotICAgICAgICBlb3IgICAgICAgICByMCwgcjMsIHIxCi0gICAgICAgIGFuZHMgICAgICAgIHIwLCByMCwgIzIKLSAgICAgICAgYm5lICAgICAgICAgNWYKLQotICAgICAgICAvKiBjb25ncnVlbnQgY2FzZSwgMTYgaGFsZi13b3JkcyBwZXIgaXRlcmF0aW9uCi0gICAgICAgICAqIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBhdCBsZWFzdCAxNisyIHdvcmRzIGxlZnQKLSAgICAgICAgICogYmVjYXVzZSB3ZSBlZmZlY3RpdmVseSByZWFkIGFoZWFkIG9uZSBsb25nIHdvcmQsIGFuZCB3ZSBjb3VsZAotICAgICAgICAgKiByZWFkIHBhc3QgdGhlIGJ1ZmZlciAoYW5kIHNlZ2ZhdWx0KSBpZiB3ZSdyZSBub3QgY2FyZWZ1bC4KLSAgICAgICAgICovCi0KLSAgICAgICAgbGRyICAgICAgICAgaXAsIFtyMV0KLSAgICAgICAgc3VicyAgICAgICAgcjIsIHIyLCAjKDE2ICsgMikKLSAgICAgICAgYm1pICAgICAgICAgMWYKLQotMDoKLSAgICAgICAgcGxkICAgICAgICAgW3IzLCAjNjRdCi0gICAgICAgIHBsZCAgICAgICAgIFtyMSwgIzY0XQotICAgICAgICBsZHIgICAgICAgICByMCwgW3IzXSwgIzQKLSAgICAgICAgbGRyICAgICAgICAgbHIsIFtyMSwgIzRdIQotICAgICAgICBlb3JzICAgICAgICByMCwgcjAsIGlwCi0gICAgICAgIGxkcmVxICAgICAgIHIwLCBbcjNdLCAjNAotICAgICAgICBsZHJlcSAgICAgICBpcCwgW3IxLCAjNF0hCi0gICAgICAgIGVvcmVxcyAgICAgIHIwLCByMCwgbHIKLSAgICAgICAgbGRyZXEgICAgICAgcjAsIFtyM10sICM0Ci0gICAgICAgIGxkcmVxICAgICAgIGxyLCBbcjEsICM0XSEKLSAgICAgICAgZW9yZXFzICAgICAgcjAsIHIwLCBpcAotICAgICAgICBsZHJlcSAgICAgICByMCwgW3IzXSwgIzQKLSAgICAgICAgbGRyZXEgICAgICAgaXAsIFtyMSwgIzRdIQotICAgICAgICBlb3JlcXMgICAgICByMCwgcjAsIGxyCi0gICAgICAgIGxkcmVxICAgICAgIHIwLCBbcjNdLCAjNAotICAgICAgICBsZHJlcSAgICAgICBsciwgW3IxLCAjNF0hCi0gICAgICAgIGVvcmVxcyAgICAgIHIwLCByMCwgaXAKLSAgICAgICAgbGRyZXEgICAgICAgcjAsIFtyM10sICM0Ci0gICAgICAgIGxkcmVxICAgICAgIGlwLCBbcjEsICM0XSEKLSAgICAgICAgZW9yZXFzICAgICAgcjAsIHIwLCBscgotICAgICAgICBsZHJlcSAgICAgICByMCwgW3IzXSwgIzQKLSAgICAgICAgbGRyZXEgICAgICAgbHIsIFtyMSwgIzRdIQotICAgICAgICBlb3JlcXMgICAgICByMCwgcjAsIGlwCi0gICAgICAgIGxkcmVxICAgICAgIHIwLCBbcjNdLCAjNAotICAgICAgICBsZHJlcSAgICAgICBpcCwgW3IxLCAjNF0hCi0gICAgICAgIGVvcmVxcyAgICAgIHIwLCByMCwgbHIKLSAgICAgICAgYm5lICAgICAgICAgMmYKLSAgICAgICAgc3VicyAgICAgICAgcjIsIHIyLCAjMTYKLSAgICAgICAgYmhzICAgICAgICAgMGIKLQotICAgICAgICAvKiBkbyB3ZSBoYXZlIGF0IGxlYXN0IDIgd29yZHMgbGVmdD8gKi8KLTE6ICAgICAgYWRkcyAgICAgICAgcjIsIHIyLCAjKDE2IC0gMiArIDIpCi0gICAgICAgIGJtaSAgICAgICAgIDRmCi0KLSAgICAgICAgLyogZmluaXNoIG9mZiAyIHdvcmRzIGF0IGEgdGltZSAqLwotMzogICAgICBsZHIgICAgICAgICByMCwgW3IzXSwgIzQKLSAgICAgICAgbGRyICAgICAgICAgaXAsIFtyMV0sICM0Ci0gICAgICAgIGVvcnMgICAgICAgIHIwLCByMCwgaXAKLSAgICAgICAgYm5lICAgICAgICAgMmYKLSAgICAgICAgc3VicyAgICAgICAgcjIsIHIyLCAjMgotICAgICAgICBiaHMgICAgICAgICAzYgotCi0gICAgICAgIC8qIGFyZSB3ZSBkb25lPyAqLwotNDogICAgICBhZGRzICAgICAgICByMiwgcjIsICMyCi0gICAgICAgIGJuZSAgICAgICAgIDhmCi0gICAgICAgIC8qIHJlc3RvcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gKi8KLSAgICAgICAgbW92ICAgICAgICAgcjAsICMwCi0gICAgICAgIGxkbWZkICAgICAgIHNwISwge3I0LCBscn0KLSAgICAgICAgYnggICAgICAgICAgbHIKLQotMjogICAgICAvKiB0aGUgbGFzdCAyIHdvcmRzIGFyZSBkaWZmZXJlbnQsIHJlc3RhcnQgdGhlbSAqLwotICAgICAgICBsZHJoICAgICAgICByMCwgW3IzLCAjLTRdCi0gICAgICAgIGxkcmggICAgICAgIGlwLCBbcjEsICMtNF0KLSAgICAgICAgc3VicyAgICAgICAgcjAsIHIwLCBpcAotICAgICAgICBsZHJlcWggICAgICByMCwgW3IzLCAjLTJdCi0gICAgICAgIGxkcmVxaCAgICAgIGlwLCBbcjEsICMtMl0KLSAgICAgICAgc3ViZXFzICAgICAgcjAsIHIwLCBpcAotICAgICAgICAvKiByZXN0b3JlIHJlZ2lzdGVycyBhbmQgcmV0dXJuICovCi0gICAgICAgIGxkbWZkICAgICAgIHNwISwge3I0LCBscn0KLSAgICAgICAgYnggICAgICAgICAgbHIKLQotICAgICAgICAvKiBwcm9jZXNzIHRoZSBsYXN0IGZldyB3b3JkcyAqLwotODogICAgICBsZHJoICAgICAgICByMCwgW3IzXSwgIzIKLSAgICAgICAgbGRyaCAgICAgICAgaXAsIFtyMV0sICMyCi0gICAgICAgIHN1YnMgICAgICAgIHIwLCByMCwgaXAKLSAgICAgICAgYm5lICAgICAgICAgOWYKLSAgICAgICAgc3VicyAgICAgICAgcjIsIHIyLCAjMQotICAgICAgICBibmUgICAgICAgICA4YgotCi05OiAgICAgIC8qIHJlc3RvcmUgcmVnaXN0ZXJzIGFuZCByZXR1cm4gKi8KLSAgICAgICAgbGRtZmQgICAgICAgc3AhLCB7cjQsIGxyfQotICAgICAgICBieCAgICAgICAgICBscgotCi0KLTU6ICAgICAgLyoqKioqKioqKioqKioqKiBub24tY29uZ3J1ZW50IGNhc2UgKioqKioqKioqKioqKioqLwotCi0gICAgICAgIC8qIGFsaWduIHRoZSB1bmFsaWduZWQgcG9pbnRlciAqLwotICAgICAgICBiaWMgICAgICAgICByMSwgcjEsICMzCi0gICAgICAgIGxkciAgICAgICAgIGxyLCBbcjFdLCAjNAotICAgICAgICBzdWIgICAgICAgICByMiwgcjIsICM4Ci0KLTY6Ci0gICAgICAgIHBsZCAgICAgICAgIFtyMywgIzY0XQotICAgICAgICBwbGQgICAgICAgICBbcjEsICM2NF0KLSAgICAgICAgbW92ICAgICAgICAgaXAsIGxyLCBsc3IgIzE2Ci0gICAgICAgIGxkciAgICAgICAgIGxyLCBbcjFdLCAjNAotICAgICAgICBsZHIgICAgICAgICByMCwgW3IzXSwgIzQKLSAgICAgICAgb3JyICAgICAgICAgaXAsIGlwLCBsciwgbHNsICMxNgotICAgICAgICBlb3JzICAgICAgICByMCwgcjAsIGlwCi0gICAgICAgIG1vdmVxICAgICAgIGlwLCBsciwgbHNyICMxNgotICAgICAgICBsZHJlcSAgICAgICBsciwgW3IxXSwgIzQKLSAgICAgICAgbGRyZXEgICAgICAgcjAsIFtyM10sICM0Ci0gICAgICAgIG9ycmVxICAgICAgIGlwLCBpcCwgbHIsIGxzbCAjMTYKLSAgICAgICAgZW9yZXFzICAgICAgcjAsIHIwLCBpcAotICAgICAgICBtb3ZlcSAgICAgICBpcCwgbHIsIGxzciAjMTYKLSAgICAgICAgbGRyZXEgICAgICAgbHIsIFtyMV0sICM0Ci0gICAgICAgIGxkcmVxICAgICAgIHIwLCBbcjNdLCAjNAotICAgICAgICBvcnJlcSAgICAgICBpcCwgaXAsIGxyLCBsc2wgIzE2Ci0gICAgICAgIGVvcmVxcyAgICAgIHIwLCByMCwgaXAKLSAgICAgICAgbW92ZXEgICAgICAgaXAsIGxyLCBsc3IgIzE2Ci0gICAgICAgIGxkcmVxICAgICAgIGxyLCBbcjFdLCAjNAotICAgICAgICBsZHJlcSAgICAgICByMCwgW3IzXSwgIzQKLSAgICAgICAgb3JyZXEgICAgICAgaXAsIGlwLCBsciwgbHNsICMxNgotICAgICAgICBlb3JlcXMgICAgICByMCwgcjAsIGlwCi0gICAgICAgIGJuZSAgICAgICAgIDdmCi0gICAgICAgIHN1YnMgICAgICAgIHIyLCByMiwgIzgKLSAgICAgICAgYmhzICAgICAgICAgNmIKLSAgICAgICAgc3ViICAgICAgICAgcjEsIHIxLCAjMgotICAgICAgICAvKiBhcmUgd2UgZG9uZT8gKi8KLSAgICAgICAgYWRkcyAgICAgICAgcjIsIHIyLCAjOAotICAgICAgICBtb3ZlcSAgICAgICByMCwgIzAKLSAgICAgICAgYmVxICAgICAgICAgOWIKLSAgICAgICAgLyogZmluaXNoIG9mZiB0aGUgcmVtYWluaW5nIGJ5dGVzICovCi0gICAgICAgIGIgICAgICAgICAgIDhiCi0KLTc6ICAgICAgLyogZml4IHVwIHRoZSAyIHBvaW50ZXJzIGFuZCBmYWxsdGhyb3VnaC4uLiAqLwotICAgICAgICBzdWIgICAgICAgICByMSwgcjEsICMyCi0gICAgICAgIGIgICAgICAgICAgIDJiCi1FTkQoX19tZW1jbXAxNikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvZ2V0ZGVudHMuUyBiL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvX19nZXRkZW50czY0LlMKc2ltaWxhcml0eSBpbmRleCA4NiUKcmVuYW1lIGZyb20gbGliYy9hcmNoLWFybS9zeXNjYWxscy9nZXRkZW50cy5TCnJlbmFtZSB0byBsaWJjL2FyY2gtYXJtL3N5c2NhbGxzL19fZ2V0ZGVudHM2NC5TCmluZGV4IDhmMGU4MWEuLmMzZDVlNWIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvZ2V0ZGVudHMuUworKysgYi9saWJjL2FyY2gtYXJtL3N5c2NhbGxzL19fZ2V0ZGVudHM2NC5TCkBAIC0yLDcgKzIsNyBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldGRlbnRzKQorRU5UUlkoX19nZXRkZW50czY0KQogICAgIG1vdiAgICAgaXAsIHI3CiAgICAgbGRyICAgICByNywgPV9fTlJfZ2V0ZGVudHM2NAogICAgIHN3aSAgICAgIzAKQEAgLTExLDQgKzExLDQgQEAKICAgICBieGxzICAgIGxyCiAgICAgbmVnICAgICByMCwgcjAKICAgICBiICAgICAgIF9fc2V0X2Vycm5vCi1FTkQoZ2V0ZGVudHMpCitFTkQoX19nZXRkZW50czY0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybS9zeXNjYWxscy9nZXRwaWQuUyBiL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvX19nZXRwaWQuUwpzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBsaWJjL2FyY2gtYXJtL3N5c2NhbGxzL2dldHBpZC5TCnJlbmFtZSB0byBsaWJjL2FyY2gtYXJtL3N5c2NhbGxzL19fZ2V0cGlkLlMKaW5kZXggMTBiY2I4ZS4uZWVkYzMzYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybS9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gtYXJtL3N5c2NhbGxzL19fZ2V0cGlkLlMKQEAgLTIsNyArMiw3IEBACiAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAotRU5UUlkoZ2V0cGlkKQorRU5UUlkoX19nZXRwaWQpCiAgICAgbW92ICAgICBpcCwgcjcKICAgICBsZHIgICAgIHI3LCA9X19OUl9nZXRwaWQKICAgICBzd2kgICAgICMwCkBAIC0xMSw0ICsxMSw0IEBACiAgICAgYnhscyAgICBscgogICAgIG5lZyAgICAgcjAsIHIwCiAgICAgYiAgICAgICBfX3NldF9lcnJubwotRU5EKGdldHBpZCkKK0VORChfX2dldHBpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvaW9wcmlvX2dldC5TIGIvbGliYy9hcmNoLWFybS9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZTA0ZWQuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLWFybS9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0vKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLUVOVFJZKGlvcHJpb19nZXQpCi0gICAgbW92ICAgICBpcCwgcjcKLSAgICBsZHIgICAgIHI3LCA9X19OUl9pb3ByaW9fZ2V0Ci0gICAgc3dpICAgICAjMAotICAgIG1vdiAgICAgcjcsIGlwCi0gICAgY21uICAgICByMCwgIyhNQVhfRVJSTk8gKyAxKQotICAgIGJ4bHMgICAgbHIKLSAgICBuZWcgICAgIHIwLCByMAotICAgIGIgICAgICAgX19zZXRfZXJybm8KLUVORChpb3ByaW9fZ2V0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybS9zeXNjYWxscy9pb3ByaW9fc2V0LlMgYi9saWJjL2FyY2gtYXJtL3N5c2NhbGxzL2lvcHJpb19zZXQuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWI5NGVmYi4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gtYXJtL3N5c2NhbGxzL2lvcHJpb19zZXQuUworKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLS8qIEdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weS4gRG8gbm90IGVkaXQuICovCi0KLSNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KLQotRU5UUlkoaW9wcmlvX3NldCkKLSAgICBtb3YgICAgIGlwLCByNwotICAgIGxkciAgICAgcjcsID1fX05SX2lvcHJpb19zZXQKLSAgICBzd2kgICAgICMwCi0gICAgbW92ICAgICByNywgaXAKLSAgICBjbW4gICAgIHIwLCAjKE1BWF9FUlJOTyArIDEpCi0gICAgYnhscyAgICBscgotICAgIG5lZyAgICAgcjAsIHIwCi0gICAgYiAgICAgICBfX3NldF9lcnJubwotRU5EKGlvcHJpb19zZXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtL3N5c2NhbGxzL3NwbGljZS5TIGIvbGliYy9hcmNoLWFybS9zeXNjYWxscy9zcGxpY2UuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODJiYTZjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLWFybS9zeXNjYWxscy9zcGxpY2UuUwpAQCAtMCwwICsxLDIyIEBACisvKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLworCisjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CisKK0VOVFJZKHNwbGljZSkKKyAgICBtb3YgICAgIGlwLCBzcAorICAgIHN0bWZkICAgc3AhLCB7cjQsIHI1LCByNiwgcjd9CisgICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgorICAgIC5jZmlfcmVsX29mZnNldCByNCwgMAorICAgIC5jZmlfcmVsX29mZnNldCByNSwgNAorICAgIC5jZmlfcmVsX29mZnNldCByNiwgOAorICAgIC5jZmlfcmVsX29mZnNldCByNywgMTIKKyAgICBsZG1mZCAgIGlwLCB7cjQsIHI1LCByNn0KKyAgICBsZHIgICAgIHI3LCA9X19OUl9zcGxpY2UKKyAgICBzd2kgICAgICMwCisgICAgbGRtZmQgICBzcCEsIHtyNCwgcjUsIHI2LCByN30KKyAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKKyAgICBjbW4gICAgIHIwLCAjKE1BWF9FUlJOTyArIDEpCisgICAgYnhscyAgICBscgorICAgIG5lZyAgICAgcjAsIHIwCisgICAgYiAgICAgICBfX3NldF9lcnJubworRU5EKHNwbGljZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvdmZvcmsuUyBiL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvdGVlLlMKc2ltaWxhcml0eSBpbmRleCA4MSUKcmVuYW1lIGZyb20gbGliYy9hcmNoLWFybS9zeXNjYWxscy92Zm9yay5TCnJlbmFtZSB0byBsaWJjL2FyY2gtYXJtL3N5c2NhbGxzL3RlZS5TCmluZGV4IGUxMmZiYTUuLjkxNzQ2MTcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvdmZvcmsuUworKysgYi9saWJjL2FyY2gtYXJtL3N5c2NhbGxzL3RlZS5TCkBAIC0yLDEzICsyLDEzIEBACiAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAotRU5UUlkodmZvcmspCitFTlRSWSh0ZWUpCiAgICAgbW92ICAgICBpcCwgcjcKLSAgICBsZHIgICAgIHI3LCA9X19OUl92Zm9yaworICAgIGxkciAgICAgcjcsID1fX05SX3RlZQogICAgIHN3aSAgICAgIzAKICAgICBtb3YgICAgIHI3LCBpcAogICAgIGNtbiAgICAgcjAsICMoTUFYX0VSUk5PICsgMSkKICAgICBieGxzICAgIGxyCiAgICAgbmVnICAgICByMCwgcjAKICAgICBiICAgICAgIF9fc2V0X2Vycm5vCi1FTkQodmZvcmspCitFTkQodGVlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybS9zeXNjYWxscy9nZXRkZW50cy5TIGIvbGliYy9hcmNoLWFybS9zeXNjYWxscy92bXNwbGljZS5TCnNpbWlsYXJpdHkgaW5kZXggNzglCmNvcHkgZnJvbSBsaWJjL2FyY2gtYXJtL3N5c2NhbGxzL2dldGRlbnRzLlMKY29weSB0byBsaWJjL2FyY2gtYXJtL3N5c2NhbGxzL3Ztc3BsaWNlLlMKaW5kZXggOGYwZTgxYS4uM2I4OTYyMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybS9zeXNjYWxscy9nZXRkZW50cy5TCisrKyBiL2xpYmMvYXJjaC1hcm0vc3lzY2FsbHMvdm1zcGxpY2UuUwpAQCAtMiwxMyArMiwxMyBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldGRlbnRzKQorRU5UUlkodm1zcGxpY2UpCiAgICAgbW92ICAgICBpcCwgcjcKLSAgICBsZHIgICAgIHI3LCA9X19OUl9nZXRkZW50czY0CisgICAgbGRyICAgICByNywgPV9fTlJfdm1zcGxpY2UKICAgICBzd2kgICAgICMwCiAgICAgbW92ICAgICByNywgaXAKICAgICBjbW4gICAgIHIwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgYnhscyAgICBscgogICAgIG5lZyAgICAgcjAsIHIwCiAgICAgYiAgICAgICBfX3NldF9lcnJubwotRU5EKGdldGRlbnRzKQorRU5EKHZtc3BsaWNlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L2FybTY0Lm1rIGIvbGliYy9hcmNoLWFybTY0L2FybTY0Lm1rCmluZGV4IDYyOTc0YjYuLjg3Zjk1NGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9hcm02NC5taworKysgYi9saWJjL2FyY2gtYXJtNjQvYXJtNjQubWsKQEAgLTEsMTEgKzEsOCBAQAogIyBhcm02NCBzcGVjaWZpYyBjb25maWdzCiAKIGxpYmNfY29tbW9uX3NyY19maWxlc19hcm02NCA6PSBcCi0gICAgYmlvbmljL2luZGV4LmNwcCBcCiAgICAgYmlvbmljL21lbWNoci5jIFwKLSAgICBiaW9uaWMvX19tZW1jbXAxNi5jcHAgXAogICAgIGJpb25pYy9tZW1yY2hyLmMgXAotICAgIGJpb25pYy9zdHJjaHIuY3BwIFwKICAgICBiaW9uaWMvc3RycmNoci5jcHAgXAogICAgIHVwc3RyZWFtLWZyZWVic2QvbGliL2xpYmMvc3RyaW5nL3djc2NhdC5jIFwKICAgICB1cHN0cmVhbS1mcmVlYnNkL2xpYi9saWJjL3N0cmluZy93Y3NjaHIuYyBcCkBAIC0xNyw3ICsxNCw2IEBACiAgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdHJpbmcvc3RwY3B5LmMgXAogICAgIHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RyaW5nL3N0cG5jcHkuYyBcCiAgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdHJpbmcvc3RyY2F0LmMgXAotICAgIHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RyaW5nL3N0cmNweS5jIFwKICAgICB1cHN0cmVhbS1vcGVuYnNkL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMgXAogICAgIHVwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RyaW5nL3N0cmxjcHkuYyBcCiAgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdHJpbmcvc3RybmNhdC5jIFwKQEAgLTQyLDcgKzM4LDYgQEAKICAgICBhcmNoLWFybTY0L2Jpb25pYy9fX3NldF90bHMuYyBcCiAgICAgYXJjaC1hcm02NC9iaW9uaWMvc2lnc2V0am1wLlMgXAogICAgIGFyY2gtYXJtNjQvYmlvbmljL3N5c2NhbGwuUyBcCi0gICAgYXJjaC1hcm02NC9iaW9uaWMvdmZvcmsuUyBcCiAKIAogbGliY19jcnRfdGFyZ2V0X2NmbGFnc19hcm02NCA6PSBcCkBAIC02MCw3ICs1NSw3IEBACiBlbmRpZgogY3B1X3ZhcmlhbnRfbWsgOj0gJChMT0NBTF9QQVRIKS9hcmNoLWFybTY0LyQoVEFSR0VUX0NQVV9WQVJJQU5UKS8kKFRBUkdFVF9DUFVfVkFSSUFOVCkubWsKIGlmZXEgKCQod2lsZGNhcmQgJChjcHVfdmFyaWFudF9taykpLCkKLSQoZXJyb3IgIlRBUkdFVF9DUFVfVkFSSUFOVCBub3Qgc2V0IG9yIHNldCB0byBhbiB1bmtub3duIHZhbHVlLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGdlbmVyaWMsIGdlbmVyaWMtbmVvbi4gVXNlIGdlbmVyaWMgZm9yIGRldmljZXMgdGhhdCBkbyBub3QgaGF2ZSBhIENQVSBzaW1pbGFyIHRvIGFueSBvZiB0aGUgc3VwcG9ydGVkIGNwdSB2YXJpYW50cy4iKQorJChlcnJvciAiVEFSR0VUX0NQVV9WQVJJQU5UIG5vdCBzZXQgb3Igc2V0IHRvIGFuIHVua25vd24gdmFsdWUuIFBvc3NpYmxlIHZhbHVlcyBhcmUgZ2VuZXJpYywgZ2VuZXJpYy1uZW9uLCBkZW52ZXI2NC4gVXNlIGdlbmVyaWMgZm9yIGRldmljZXMgdGhhdCBkbyBub3QgaGF2ZSBhIENQVSBzaW1pbGFyIHRvIGFueSBvZiB0aGUgc3VwcG9ydGVkIGNwdSB2YXJpYW50cy4iKQogZW5kaWYKIGluY2x1ZGUgJChjcHVfdmFyaWFudF9taykKIGxpYmNfY29tbW9uX2FkZGl0aW9uYWxfZGVwZW5kZW5jaWVzICs9ICQoY3B1X3ZhcmlhbmtfbWspCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvYmlvbmljL19fYmlvbmljX2Nsb25lLlMgYi9saWJjL2FyY2gtYXJtNjQvYmlvbmljL19fYmlvbmljX2Nsb25lLlMKaW5kZXggZDNjMDM3NC4uNzRkYjRiNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUwpAQCAtMzEsMTIgKzMxLDYgQEAKIC8vIHBpZF90IF9fYmlvbmljX2Nsb25lKGludCBmbGFncywgdm9pZCogY2hpbGRfc3RhY2ssIHBpZF90KiBwYXJlbnRfdGlkLCB2b2lkKiB0bHMsIHBpZF90KiBjaGlsZF90aWQsIGludCAoKmZuKSh2b2lkKiksIHZvaWQqIGFyZyk7CiAKIEVOVFJZKF9fYmlvbmljX2Nsb25lKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgIyBDb3B5ICdmbicgYW5kICdhcmcnIG9udG8gdGhlIGNoaWxkIHN0YWNrLgogICAgIHN0cCAgICAgeDUsIHg2LCBbeDEsICMtMTZdCiAKQEAgLTQ3LDExICs0MSw2IEBACiAgICAgIyBBcmUgd2UgdGhlIGNoaWxkPwogICAgIGNieiAgICAgeDAsIC5MX2JjX2NoaWxkCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgIyBTZXQgZXJybm8gaWYgc29tZXRoaW5nIHdlbnQgd3JvbmcuCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQpAQCAtNjIsMTAgKzUxLDEwIEBACiAuTF9iY19jaGlsZDoKICAgICAjIFdlJ3JlIGluIHRoZSBjaGlsZCBub3cuIFNldCB0aGUgZW5kIG9mIHRoZSBmcmFtZSByZWNvcmQgY2hhaW4uLi4KICAgICBtb3YgICAgIHgyOSwgeHpyCi0gICAgIyBTZXR0aW5nIHgzMCB0byAwIHdpbGwgbWFrZSB0aGUgdW53aW5kZXIgc3RvcCBhdCBfX2Jpb25pY19jbG9uZV9lbnRyeQorICAgICMgU2V0dGluZyB4MzAgdG8gMCB3aWxsIG1ha2UgdGhlIHVud2luZGVyIHN0b3AgYXQgX19zdGFydF90aHJlYWQKICAgICBtb3YgICAgIHgzMCwgeHpyCi0gICAgIyAuLi5hbmQgY2FsbCBfX2Jpb25pY19jbG9uZV9lbnRyeSB3aXRoIHRoZSAnZm4nIGFuZCAnYXJnJyB3ZSBzdG9yZWQgb24gdGhlIGNoaWxkIHN0YWNrLgorICAgICMgLi4uYW5kIGNhbGwgX19zdGFydF90aHJlYWQgd2l0aCB0aGUgJ2ZuJyBhbmQgJ2FyZycgd2Ugc3RvcmVkIG9uIHRoZSBjaGlsZCBzdGFjay4KICAgICBsZHAgICAgIHgwLCB4MSwgW3NwLCAjLTE2XQotICAgIGIgICAgICAgX19iaW9uaWNfY2xvbmVfZW50cnkKKyAgICBiICAgICAgIF9fc3RhcnRfdGhyZWFkCiBFTkQoX19iaW9uaWNfY2xvbmUpCiAuaGlkZGVuIF9fYmlvbmljX2Nsb25lCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvYmlvbmljL3N5c2NhbGwuUyBiL2xpYmMvYXJjaC1hcm02NC9iaW9uaWMvc3lzY2FsbC5TCmluZGV4IDQyZTg4ODMuLjY1OGFmNzggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9iaW9uaWMvc3lzY2FsbC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9iaW9uaWMvc3lzY2FsbC5TCkBAIC0yOSwxMyArMjksNiBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzeXNjYWxsKQotICAgIC8qIGNyZWF0ZSBBQVBDUyBmcmFtZSBwb2ludGVyICovCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICAvKiBNb3ZlIHN5c2NhbGwgTm8uIGZyb20geDAgdG8geDggKi8KICAgICBtb3YgICAgIHg4LCB4MAogICAgIC8qIE1vdmUgc3lzY2FsbCBwYXJhbWV0ZXJzIGZyb20geDEgdGhydSB4NiB0byB4MCB0aHJ1IHg1ICovCkBAIC00NywxMSArNDAsNiBAQAogICAgIG1vdiAgICAgeDUsIHg2CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIC8qIGNoZWNrIGlmIHN5c2NhbGwgcmV0dXJuZWQgc3VjY2Vzc2Z1bGx5ICovCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L2Jpb25pYy92Zm9yay5TIGIvbGliYy9hcmNoLWFybTY0L2Jpb25pYy92Zm9yay5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzAwNjIzLi4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC1hcm02NC9iaW9uaWMvdmZvcmsuUworKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCi0gKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCi0gKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUwotICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECi0gKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKLSAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotI2luY2x1ZGUgPGFzbS9zaWduYWwuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotCi1FTlRSWSh2Zm9yaykKLSAgICBtb3YgICAgIHgwLCAjKENMT05FX1ZNIHwgQ0xPTkVfVkZPUksgfCBTSUdDSExEKQotICAgIG1vdiAgICAgeDEsIHh6cgotICAgIG1vdiAgICAgeDIsIHh6cgotICAgIG1vdiAgICAgeDMsIHh6cgotICAgIG1vdiAgICAgeDQsIHh6cgotCi0gICAgbW92ICAgICB4OCwgX19OUl9jbG9uZQotICAgIHN2YyAgICAgIzAKLQotICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKLSAgICBjbmVnICAgIHgwLCB4MCwgaGkKLSAgICBiLmhpICAgIF9fc2V0X2Vycm5vCi0KLSAgICByZXQKLUVORCh2Zm9yaykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9kZW52ZXI2NC9iaW9uaWMvbWVtY3B5LlMgYi9saWJjL2FyY2gtYXJtNjQvZGVudmVyNjQvYmlvbmljL21lbWNweS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMGYwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtYXJtNjQvZGVudmVyNjQvYmlvbmljL21lbWNweS5TCkBAIC0wLDAgKzEsMjA1IEBACisvKiBDb3B5cmlnaHQgKGMpIDIwMTIsIExpbmFybyBMaW1pdGVkCisgICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICAgQ29weXJpZ2h0IChjKSAyMDE0LCBOVklESUEgQ29ycG9yYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAgIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICAgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAgICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICAgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgTGluYXJvIG5vciB0aGUKKyAgICAgICAgIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgICAgICAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAgIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAgIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisvKiBBc3N1bXB0aW9uczoKKyAqCisgKiBkZW52ZXIsIEFSTXY4LWEsIEFBcmNoNjQKKyAqIFVuYWxpZ25lZCBhY2Nlc3NlcworICoKKyAqLworCisjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CisKKyNkZWZpbmUgZHN0aW4JeDAKKyNkZWZpbmUgc3JjCXgxCisjZGVmaW5lIGNvdW50CXgyCisjZGVmaW5lIHRtcDEJeDMKKyNkZWZpbmUgdG1wMXcJdzMKKyNkZWZpbmUgdG1wMgl4NAorI2RlZmluZSB0bXAydwl3NAorI2RlZmluZSB0bXAzCXg1CisjZGVmaW5lIHRtcDN3CXc1CisjZGVmaW5lIGRzdAl4NgorCisjZGVmaW5lIEFfbAl4NworI2RlZmluZSBBX2gJeDgKKyNkZWZpbmUgQl9sCXg5CisjZGVmaW5lIEJfaAl4MTAKKyNkZWZpbmUgQ19sCXgxMQorI2RlZmluZSBDX2gJeDEyCisjZGVmaW5lIERfbAl4MTMKKyNkZWZpbmUgRF9oCXgxNAorCisjZGVmaW5lIFFBX2wJcTAKKyNkZWZpbmUgUUFfaAlxMQorI2RlZmluZSBRQl9sCXEyCisjZGVmaW5lIFFCX2gJcTMKKworRU5UUlkobWVtY3B5KQorCisJbW92CWRzdCwgZHN0aW4KKwljbXAJY291bnQsICM2NAorCWIuZ2UJLkxjcHlfbm90X3Nob3J0CisJY21wCWNvdW50LCAjMTUKKwliLmxlCS5MdGFpbDE1dGlueQorCisJLyogRGVhbCB3aXRoIHNtYWxsIGNvcGllcyBxdWlja2x5IGJ5IGRyb3BwaW5nIHN0cmFpZ2h0IGludG8gdGhlCisJICogZXhpdCBibG9jay4gICovCisuTHRhaWw2MzoKKwkvKiBDb3B5IHVwIHRvIDQ4IGJ5dGVzIG9mIGRhdGEuICBBdCB0aGlzIHBvaW50IHdlIG9ubHkgbmVlZCB0aGUKKwkgKiBib3R0b20gNiBiaXRzIG9mIGNvdW50IHRvIGJlIGFjY3VyYXRlLiAgKi8KKwlhbmRzCXRtcDEsIGNvdW50LCAjMHgzMAorCWIuZXEJLkx0YWlsMTUKKwlhZGQJZHN0LCBkc3QsIHRtcDEKKwlhZGQJc3JjLCBzcmMsIHRtcDEKKwljbXAJdG1wMXcsICMweDIwCisJYi5lcQkxZgorCWIubHQJMmYKKwlsZHAJQV9sLCBBX2gsIFtzcmMsICMtNDhdCisJc3RwCUFfbCwgQV9oLCBbZHN0LCAjLTQ4XQorMToKKwlsZHAJQV9sLCBBX2gsIFtzcmMsICMtMzJdCisJc3RwCUFfbCwgQV9oLCBbZHN0LCAjLTMyXQorMjoKKwlsZHAJQV9sLCBBX2gsIFtzcmMsICMtMTZdCisJc3RwCUFfbCwgQV9oLCBbZHN0LCAjLTE2XQorCisuTHRhaWwxNToKKwlhbmRzCWNvdW50LCBjb3VudCwgIzE1CisJYmVxCTFmCisJYWRkCXNyYywgc3JjLCBjb3VudAorCWxkcAlBX2wsIEFfaCwgW3NyYywgIy0xNl0KKwlhZGQJZHN0LCBkc3QsIGNvdW50CisJc3RwCUFfbCwgQV9oLCBbZHN0LCAjLTE2XQorMToKKwlyZXQKKworLkx0YWlsMTV0aW55OgorCS8qIENvcHkgdXAgdG8gMTUgYnl0ZXMgb2YgZGF0YS4gIERvZXMgbm90IGFzc3VtZSBhZGRpdGlvbmFsIGRhdGEKKwkgICBiZWluZyBjb3BpZWQuICAqLworCXRiegljb3VudCwgIzMsIDFmCisJbGRyCXRtcDEsIFtzcmNdLCAjOAorCXN0cgl0bXAxLCBbZHN0XSwgIzgKKzE6CisJdGJ6CWNvdW50LCAjMiwgMWYKKwlsZHIJdG1wMXcsIFtzcmNdLCAjNAorCXN0cgl0bXAxdywgW2RzdF0sICM0CisxOgorCXRiegljb3VudCwgIzEsIDFmCisJbGRyaAl0bXAxdywgW3NyY10sICMyCisJc3RyaAl0bXAxdywgW2RzdF0sICMyCisxOgorCXRiegljb3VudCwgIzAsIDFmCisJbGRyYgl0bXAxdywgW3NyY10KKwlzdHJiCXRtcDF3LCBbZHN0XQorMToKKwlyZXQKKworLkxjcHlfbm90X3Nob3J0OgorCS8qIFdlIGRvbid0IG11Y2ggY2FyZSBhYm91dCB0aGUgYWxpZ25tZW50IG9mIERTVCwgYnV0IHdlIHdhbnQgU1JDCisJICogdG8gYmUgMTI4LWJpdCAoMTYgYnl0ZSkgYWxpZ25lZCBzbyB0aGF0IHdlIGRvbid0IGNyb3NzIGNhY2hlIGxpbmUKKwkgKiBib3VuZGFyaWVzIG9uIGJvdGggbG9hZHMgYW5kIHN0b3Jlcy4gICovCisJbmVnCXRtcDIsIHNyYworCWFuZHMJdG1wMiwgdG1wMiwgIzE1CQkvKiBCeXRlcyB0byByZWFjaCBhbGlnbm1lbnQuICAqLworCWIuZXEJMmYKKwlzdWIJY291bnQsIGNvdW50LCB0bXAyCisJLyogQ29weSBtb3JlIGRhdGEgdGhhbiBuZWVkZWQ7IGl0J3MgZmFzdGVyIHRoYW4ganVtcGluZworCSAqIGFyb3VuZCBjb3B5aW5nIHN1Yi1RdWFkd29yZCBxdWFudGl0aWVzLiAgV2Uga25vdyB0aGF0CisJICogaXQgY2FuJ3Qgb3ZlcnJ1bi4gICovCisJbGRwCUFfbCwgQV9oLCBbc3JjXQorCWFkZAlzcmMsIHNyYywgdG1wMgorCXN0cAlBX2wsIEFfaCwgW2RzdF0KKwlhZGQJZHN0LCBkc3QsIHRtcDIKKwkvKiBUaGVyZSBtYXkgYmUgbGVzcyB0aGFuIDYzIGJ5dGVzIHRvIGdvIG5vdy4gICovCisJY21wCWNvdW50LCAjNjMKKwliLmxlCS5MdGFpbDYzCisyOgorCXN1YnMJY291bnQsIGNvdW50LCAjMTI4CisJYi5nZQkuTGNweV9ib2R5X2xhcmdlCisJLyogTGVzcyB0aGFuIDEyOCBieXRlcyB0byBjb3B5LCBzbyBoYW5kbGUgNjQgaGVyZSBhbmQgdGhlbiBqdW1wCisJICogdG8gdGhlIHRhaWwuICAqLworCWxkcAlRQV9sLCBRQV9oLCBbc3JjXQorCWxkcAlRQl9sLCBRQl9oLCBbc3JjLCAjMzJdCisJc3RwCVFBX2wsIFFBX2gsIFtkc3RdCisJc3RwCVFCX2wsIFFCX2gsIFtkc3QsICMzMl0KKwl0c3QJY291bnQsICMweDNmCisJYWRkCXNyYywgc3JjLCAjNjQKKwlhZGQJZHN0LCBkc3QsICM2NAorCWIubmUJLkx0YWlsNjMKKwlyZXQKKworCS8qIENyaXRpY2FsIGxvb3AuICBTdGFydCBhdCBhIG5ldyBjYWNoZSBsaW5lIGJvdW5kYXJ5LiAgQXNzdW1pbmcKKwkgKiA2NCBieXRlcyBwZXIgbGluZSB0aGlzIGVuc3VyZXMgdGhlIGVudGlyZSBsb29wIGlzIGluIG9uZSBsaW5lLiAgKi8KKwkucDJhbGlnbiA2CisuTGNweV9ib2R5X2xhcmdlOgorCWNtcAljb3VudCwgNjU1MzYKKwliaGkJLkxjcHlfYm9keV9odWdlCisJLyogVGhlcmUgYXJlIGF0IGxlYXN0IDEyOCBieXRlcyB0byBjb3B5LiAgKi8KKwlsZHAJUUFfbCwgUUFfaCwgW3NyYywgIzBdCisJc3ViCWRzdCwgZHN0LCAjMzIJCS8qIFByZS1iaWFzLiAgKi8KKwlsZHAJUUJfbCwgUUJfaCwgW3NyYywgIzMyXSEJLyogc3JjICs9IDY0IC0gUHJlLWJpYXMuICAqLworMToKKwlzdHAJUUFfbCwgUUFfaCwgW2RzdCwgIzMyXQorCWxkcAlRQV9sLCBRQV9oLCBbc3JjLCAjMzJdCisJc3RwCVFCX2wsIFFCX2gsIFtkc3QsICM2NF0hCisJbGRwCVFCX2wsIFFCX2gsIFtzcmMsICM2NF0hCisKKwlzdWJzCWNvdW50LCBjb3VudCwgIzY0CisJYi5nZQkxYgorCisJc3RwCVFBX2wsIFFBX2gsIFtkc3QsICMzMl0KKwlzdHAJUUJfbCwgUUJfaCwgW2RzdCwgIzY0XQorCWFkZAlzcmMsIHNyYywgIzMyCisJYWRkCWRzdCwgZHN0LCAjNjQgKyAzMgorCXRzdAljb3VudCwgIzB4M2YKKwliLm5lCS5MdGFpbDYzCisJcmV0CisuTGNweV9ib2R5X2h1Z2U6CisJLyogVGhlcmUgYXJlIGF0IGxlYXN0IDEyOCBieXRlcyB0byBjb3B5LiAgKi8KKwlsZHAJUUFfbCwgUUFfaCwgW3NyYywgIzBdCisJc3ViCWRzdCwgZHN0LCAjMzIJCS8qIFByZS1iaWFzLiAgKi8KKwlsZHAJUUJfbCwgUUJfaCwgW3NyYywgIzMyXSEKKzE6CisJc3RucAlRQV9sLCBRQV9oLCBbZHN0LCAjMzJdCisJc3RucAlRQl9sLCBRQl9oLCBbZHN0LCAjNjRdCisJbGRwCVFBX2wsIFFBX2gsIFtzcmMsICMzMl0KKwlsZHAJUUJfbCwgUUJfaCwgW3NyYywgIzY0XSEKKwlhZGQJZHN0LCBkc3QsICM2NAorCisJc3Vicwljb3VudCwgY291bnQsICM2NAorCWIuZ2UJMWIKKworCXN0bnAJUUFfbCwgUUFfaCwgW2RzdCwgIzMyXQorCXN0bnAJUUJfbCwgUUJfaCwgW2RzdCwgIzY0XQorCWFkZAlzcmMsIHNyYywgIzMyCisJYWRkCWRzdCwgZHN0LCAjNjQgKyAzMgorCXRzdAljb3VudCwgIzB4M2YKKwliLm5lCS5MdGFpbDYzCisJcmV0CisKK0VORChtZW1jcHkpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvZGVudmVyNjQvYmlvbmljL21lbXNldC5TIGIvbGliYy9hcmNoLWFybTY0L2RlbnZlcjY0L2Jpb25pYy9tZW1zZXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTI3ZDg5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLWFybTY0L2RlbnZlcjY0L2Jpb25pYy9tZW1zZXQuUwpAQCAtMCwwICsxLDI3MSBAQAorLyogQ29weXJpZ2h0IChjKSAyMDEyLCBMaW5hcm8gTGltaXRlZAorICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgIENvcHlyaWdodCAoYykgMjAxNCwgTlZJRElBIENvcnBvcmF0aW9uLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAgICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICAgICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAgICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIExpbmFybyBub3IgdGhlCisgICAgICAgICBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICAgICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKKyAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgICBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgICBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworLyogQXNzdW1wdGlvbnM6CisgKgorICogZGVudmVyLCBBUk12OC1hLCBBQXJjaDY0CisgKiBVbmFsaWduZWQgYWNjZXNzZXMKKyAqCisgKi8KKworI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgorCisvKiBCeSBkZWZhdWx0IHdlIGFzc3VtZSB0aGF0IHRoZSBEQyBpbnN0cnVjdGlvbiBjYW4gYmUgdXNlZCB0byB6ZXJvCisgICBkYXRhIGJsb2NrcyBtb3JlIGVmZmljaWVudGx5LiAgSW4gc29tZSBjaXJjdW1zdGFuY2VzIHRoaXMgbWlnaHQgYmUKKyAgIHVuc2FmZSwgZm9yIGV4YW1wbGUgaW4gYW4gYXN5bW1ldHJpYyBtdWx0aXByb2Nlc3NvciBlbnZpcm9ubWVudCB3aXRoCisgICBkaWZmZXJlbnQgREMgY2xlYXIgbGVuZ3RocyAobmVpdGhlciB0aGUgdXBwZXIgbm9yIGxvd2VyIGxlbmd0aHMgYXJlCisgICBzYWZlIHRvIHVzZSkuICBUaGUgZmVhdHVyZSBjYW4gYmUgZGlzYWJsZWQgYnkgZGVmaW5pbmcgRE9OVF9VU0VfREMuCisKKyAgIElmIGNvZGUgbWF5IGJlIHJ1biBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB0aGVuIGRlZmluZQorICAgTUFZQkVfVklSVC4gIFRoaXMgd2lsbCBjYXVzZSB0aGUgY29kZSB0byBjYWNoZSB0aGUgc3lzdGVtIHJlZ2lzdGVyCisgICB2YWx1ZXMgcmF0aGVyIHRoYW4gcmUtcmVhZGluZyB0aGVtIGVhY2ggY2FsbC4gICovCisKKyNkZWZpbmUgZHN0aW4JCXgwCisjZGVmaW5lIHZhbAkJdzEKKyNkZWZpbmUgY291bnQJCXgyCisjZGVmaW5lIHRtcDEJCXgzCisjZGVmaW5lIHRtcDF3CQl3MworI2RlZmluZSB0bXAyCQl4NAorI2RlZmluZSB0bXAydwkJdzQKKyNkZWZpbmUgenZhX2xlbl94CXg1CisjZGVmaW5lIHp2YV9sZW4JCXc1CisjZGVmaW5lIHp2YV9iaXRzX3gJeDYKKworI2RlZmluZSBBX2wJCXg3CisjZGVmaW5lIEFfbHcJCXc3CisjZGVmaW5lIGRzdAkJeDgKKyNkZWZpbmUgdG1wM3cJCXc5CisKKyNkZWZpbmUgUUFfbAkJcTAKKworRU5UUlkobWVtc2V0KQorCisJbW92CWRzdCwgZHN0aW4JCS8qIFByZXNlcnZlIHJldHVybiB2YWx1ZS4gICovCisJYW5kcwlBX2x3LCB2YWwsICMyNTUKKyNpZm5kZWYgRE9OVF9VU0VfREMKKyMJYi5lcQkuTHplcm9fbWVtCisjZW5kaWYKKwlvcnIJQV9sdywgQV9sdywgQV9sdywgbHNsICM4CisJb3JyCUFfbHcsIEFfbHcsIEFfbHcsIGxzbCAjMTYKKwlvcnIJQV9sLCBBX2wsIEFfbCwgbHNsICMzMgorLkx0YWlsX21heWJlX2xvbmc6CisJY21wCWNvdW50LCAjMjU2CisJYi5nZQkuTG5vdF9zaG9ydAorLkx0YWlsX21heWJlX3Rpbnk6CisJY21wCWNvdW50LCAjMTUKKwliLmxlCS5MdGFpbDE1dGlueQorLkx0YWlsMjU1OgorCWFuZHMJdG1wMSwgY291bnQsICMweEMwCisJYi5lcQkuTHRhaWw2MworCWR1cAl2MC40cywgQV9sdworCWNtcAl0bXAxdywgIzB4ODAKKwliLmVxCTFmCisJYi5sdAkyZgorCXN0cAlRQV9sLCBRQV9sLCBbZHN0XSwgIzMyCisJc3RwCVFBX2wsIFFBX2wsIFtkc3RdLCAjMzIKKzE6CisJc3RwCVFBX2wsIFFBX2wsIFtkc3RdLCAjMzIKKwlzdHAJUUFfbCwgUUFfbCwgW2RzdF0sICMzMgorMjoKKwlzdHAJUUFfbCwgUUFfbCwgW2RzdF0sICMzMgorCXN0cAlRQV9sLCBRQV9sLCBbZHN0XSwgIzMyCisuTHRhaWw2MzoKKwlhbmRzCXRtcDEsIGNvdW50LCAjMHgzMAorCWIuZXEJLkx0YWlsMTUKKwlhZGQJZHN0LCBkc3QsIHRtcDEKKwljbXAJdG1wMXcsICMweDIwCisJYi5lcQkxZgorCWIubHQJMmYKKwlzdHAJQV9sLCBBX2wsIFtkc3QsICMtNDhdCisxOgorCXN0cAlBX2wsIEFfbCwgW2RzdCwgIy0zMl0KKzI6CisJc3RwCUFfbCwgQV9sLCBbZHN0LCAjLTE2XQorCisuTHRhaWwxNToKKwlhbmQJY291bnQsIGNvdW50LCAjMTUKKwlhZGQJZHN0LCBkc3QsIGNvdW50CisJc3RwCUFfbCwgQV9sLCBbZHN0LCAjLTE2XQkvKiBSZXBlYXQgc29tZS9hbGwgb2YgbGFzdCBzdG9yZS4gKi8KKwlyZXQKKworLkx0YWlsMTV0aW55OgorCS8qIFNldCB1cCB0byAxNSBieXRlcy4gIERvZXMgbm90IGFzc3VtZSBlYXJsaWVyIG1lbW9yeQorCSAgIGJlaW5nIHNldC4gICovCisJdGJ6CWNvdW50LCAjMywgMWYKKwlzdHIJQV9sLCBbZHN0XSwgIzgKKzE6CisJdGJ6CWNvdW50LCAjMiwgMWYKKwlzdHIJQV9sdywgW2RzdF0sICM0CisxOgorCXRiegljb3VudCwgIzEsIDFmCisJc3RyaAlBX2x3LCBbZHN0XSwgIzIKKzE6CisJdGJ6CWNvdW50LCAjMCwgMWYKKwlzdHJiCUFfbHcsIFtkc3RdCisxOgorCXJldAorCisJLyogQ3JpdGljYWwgbG9vcC4gIFN0YXJ0IGF0IGEgbmV3IGNhY2hlIGxpbmUgYm91bmRhcnkuICBBc3N1bWluZworCSAqIDY0IGJ5dGVzIHBlciBsaW5lLCB0aGlzIGVuc3VyZXMgdGhlIGVudGlyZSBsb29wIGlzIGluIG9uZSBsaW5lLiAgKi8KKwkucDJhbGlnbiA2CisuTG5vdF9zaG9ydDoKKwlkdXAJdjAuNHMsIEFfbHcKKwluZWcJdG1wMiwgZHN0CisJYW5kcwl0bXAyLCB0bXAyLCAjMTUKKwliLmVxCTJmCisJLyogQnJpbmcgRFNUIHRvIDEyOC1iaXQgKDE2LWJ5dGUpIGFsaWdubWVudC4gIFdlIGtub3cgdGhhdCB0aGVyZSdzCisJICogbW9yZSB0aGFuIHRoYXQgdG8gc2V0LCBzbyB3ZSBzaW1wbHkgc3RvcmUgMTYgYnl0ZXMgYW5kIGFkdmFuY2UgYnkKKwkgKiB0aGUgYW1vdW50IHJlcXVpcmVkIHRvIHJlYWNoIGFsaWdubWVudC4gICovCisJc3ViCWNvdW50LCBjb3VudCwgdG1wMgorCXN0cAlBX2wsIEFfbCwgW2RzdF0KKwlhZGQJZHN0LCBkc3QsIHRtcDIKKwkvKiBUaGVyZSBtYXkgYmUgbGVzcyB0aGFuIDYzIGJ5dGVzIHRvIGdvIG5vdy4gICovCisJY21wCWNvdW50LCAjMjU1CisJYi5sZQkuTHRhaWwyNTUKKzI6CisJY21wCWNvdW50LCAjMjA5NzE1MgorCWIuZ3QJM2YKKzE6CisJc3ViCWNvdW50LCBjb3VudCwgIzI1NgorMjoKKwlzdHAJUUFfbCwgUUFfbCwgW2RzdF0sICMzMgorCXN0cAlRQV9sLCBRQV9sLCBbZHN0XSwgIzMyCisJc3RwCVFBX2wsIFFBX2wsIFtkc3RdLCAjMzIKKwlzdHAJUUFfbCwgUUFfbCwgW2RzdF0sICMzMgorCXN0cAlRQV9sLCBRQV9sLCBbZHN0XSwgIzMyCisJc3RwCVFBX2wsIFFBX2wsIFtkc3RdLCAjMzIKKwlzdHAJUUFfbCwgUUFfbCwgW2RzdF0sICMzMgorCXN0cAlRQV9sLCBRQV9sLCBbZHN0XSwgIzMyCisJc3Vicwljb3VudCwgY291bnQsICMyNTYKKwliLmdlCTJiCisJdHN0CWNvdW50LCAjMHhmZgorCWIubmUJLkx0YWlsMjU1CisJcmV0CiszOgorCXN1Ygljb3VudCwgY291bnQsICM2NAorNDoKKwlzdWJzCWNvdW50LCBjb3VudCwgIzY0CisJc3RucAlRQV9sLCBRQV9sLCBbZHN0XQorCXN0bnAJUUFfbCwgUUFfbCwgW2RzdCwgIzMyXQorCWFkZAlkc3QsIGRzdCwgIzY0CisJYi5nZQk0YgorCXRzdAljb3VudCwgIzB4M2YKKwliLm5lCS5MdGFpbDYzCisJcmV0CisKKyNpZm5kZWYgRE9OVF9VU0VfREMKKwkvKiBGb3IgemVyb2luZyBtZW1vcnksIGNoZWNrIHRvIHNlZSBpZiB3ZSBjYW4gdXNlIHRoZSBaVkEgZmVhdHVyZSB0bworCSAqIHplcm8gZW50aXJlICdjYWNoZScgbGluZXMuICAqLworLkx6ZXJvX21lbToKKwltb3YJQV9sLCAjMAorCWNtcAljb3VudCwgIzYzCisJYi5sZQkuTHRhaWxfbWF5YmVfdGlueQorCW5lZwl0bXAyLCBkc3QKKwlhbmRzCXRtcDIsIHRtcDIsICMxNQorCWIuZXEJMWYKKwlzdWIJY291bnQsIGNvdW50LCB0bXAyCisJc3RwCUFfbCwgQV9sLCBbZHN0XQorCWFkZAlkc3QsIGRzdCwgdG1wMgorCWNtcAljb3VudCwgIzYzCisJYi5sZQkuTHRhaWw2MworMToKKwkvKiBGb3IgemVyb2luZyBzbWFsbCBhbW91bnRzIG9mIG1lbW9yeSwgaXQncyBub3Qgd29ydGggc2V0dGluZyB1cAorCSAqIHRoZSBsaW5lLWNsZWFyIGNvZGUuICAqLworCWNtcAljb3VudCwgIzEyOAorCWIubHQJLkxub3Rfc2hvcnQKKyNpZmRlZiBNQVlCRV9WSVJUCisJLyogRm9yIGVmZmljaWVuY3kgd2hlbiB2aXJ0dWFsaXplZCwgd2UgY2FjaGUgdGhlIFpWQSBjYXBhYmlsaXR5LiAgKi8KKwlhZHJwCXRtcDIsIC5MY2FjaGVfY2xlYXIKKwlsZHIJenZhX2xlbiwgW3RtcDIsICM6bG8xMjouTGNhY2hlX2NsZWFyXQorCXRibnoJenZhX2xlbiwgIzMxLCAuTG5vdF9zaG9ydAorCWNibnoJenZhX2xlbiwgLkx6ZXJvX2J5X2xpbmUKKwltcnMJdG1wMSwgZGN6aWRfZWwwCisJdGJ6CXRtcDEsICM0LCAxZgorCS8qIFpWQSBub3QgYXZhaWxhYmxlLiAgUmVtZW1iZXIgdGhpcyBmb3IgbmV4dCB0aW1lLiAgKi8KKwltb3YJenZhX2xlbiwgI34wCisJc3RyCXp2YV9sZW4sIFt0bXAyLCAjOmxvMTI6LkxjYWNoZV9jbGVhcl0KKwliCS5Mbm90X3Nob3J0CisxOgorCW1vdgl0bXAzdywgIzQKKwlhbmQJenZhX2xlbiwgdG1wMXcsICMxNQkvKiBTYWZldHk6IG90aGVyIGJpdHMgcmVzZXJ2ZWQuICAqLworCWxzbAl6dmFfbGVuLCB0bXAzdywgenZhX2xlbgorCXN0cgl6dmFfbGVuLCBbdG1wMiwgIzpsbzEyOi5MY2FjaGVfY2xlYXJdCisjZWxzZQorCW1ycwl0bXAxLCBkY3ppZF9lbDAKKwl0Ym56CXRtcDEsICM0LCAuTG5vdF9zaG9ydAorCW1vdgl0bXAzdywgIzQKKwlhbmQJenZhX2xlbiwgdG1wMXcsICMxNQkvKiBTYWZldHk6IG90aGVyIGJpdHMgcmVzZXJ2ZWQuICAqLworCWxzbAl6dmFfbGVuLCB0bXAzdywgenZhX2xlbgorI2VuZGlmCisKKy5MemVyb19ieV9saW5lOgorCS8qIENvbXB1dGUgaG93IGZhciB3ZSBuZWVkIHRvIGdvIHRvIGJlY29tZSBzdWl0YWJseSBhbGlnbmVkLiAgV2UncmUKKwkgKiBhbHJlYWR5IGF0IHF1YWQtd29yZCBhbGlnbm1lbnQuICAqLworCWNtcAljb3VudCwgenZhX2xlbl94CisJYi5sdAkuTG5vdF9zaG9ydAkJLyogTm90IGVub3VnaCB0byByZWFjaCBhbGlnbm1lbnQuICAqLworCXN1Ygl6dmFfYml0c194LCB6dmFfbGVuX3gsICMxCisJbmVnCXRtcDIsIGRzdAorCWFuZHMJdG1wMiwgdG1wMiwgenZhX2JpdHNfeAorCWIuZXEJMWYJCQkvKiBBbHJlYWR5IGFsaWduZWQuICAqLworCS8qIE5vdCBhbGlnbmVkLCBjaGVjayB0aGF0IHRoZXJlJ3MgZW5vdWdoIHRvIGNvcHkgYWZ0ZXIgYWxpZ25tZW50LiAgKi8KKwlzdWIJdG1wMSwgY291bnQsIHRtcDIKKwljbXAJdG1wMSwgIzY0CisJY2NtcAl0bXAxLCB6dmFfbGVuX3gsICM4LCBnZQkvKiBOWkNWPTBiMTAwMCAqLworCWIubHQJLkxub3Rfc2hvcnQKKwkvKiBXZSBrbm93IHRoYXQgdGhlcmUncyBhdCBsZWFzdCA2NCBieXRlcyB0byB6ZXJvIGFuZCB0aGF0IGl0J3Mgc2FmZQorCSAqIHRvIG92ZXJydW4gYnkgNjQgYnl0ZXMuICAqLworCW1vdgljb3VudCwgdG1wMQorMjoKKwlzdHAJQV9sLCBBX2wsIFtkc3RdCisJc3RwCUFfbCwgQV9sLCBbZHN0LCAjMTZdCisJc3RwCUFfbCwgQV9sLCBbZHN0LCAjMzJdCisJc3Vicwl0bXAyLCB0bXAyLCAjNjQKKwlzdHAJQV9sLCBBX2wsIFtkc3QsICM0OF0KKwlhZGQJZHN0LCBkc3QsICM2NAorCWIuZ2UJMmIKKwkvKiBXZSd2ZSBvdmVycnVuIGEgYml0LCBzbyBhZGp1c3QgZHN0IGRvd253YXJkcy4gICovCisJYWRkCWRzdCwgZHN0LCB0bXAyCisxOgorCXN1Ygljb3VudCwgY291bnQsIHp2YV9sZW5feAorMzoKKwlkYwl6dmEsIGRzdAorCWFkZAlkc3QsIGRzdCwgenZhX2xlbl94CisJc3Vicwljb3VudCwgY291bnQsIHp2YV9sZW5feAorCWIuZ2UJM2IKKwlhbmRzCWNvdW50LCBjb3VudCwgenZhX2JpdHNfeAorCWIubmUJLkx0YWlsX21heWJlX2xvbmcKKwlyZXQKK0VORChtZW1zZXQpCisKKyNpZmRlZiBNQVlCRV9WSVJUCisJLmJzcworCS5wMmFsaWduIDIKKy5MY2FjaGVfY2xlYXI6CisJLnNwYWNlIDQKKyNlbmRpZgorI2VuZGlmIC8qIERPTlRfVVNFX0RDICovCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvZGVudmVyNjQvZGVudmVyNjQubWsgYi9saWJjL2FyY2gtYXJtNjQvZGVudmVyNjQvZGVudmVyNjQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYzZGUyZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1hcm02NC9kZW52ZXI2NC9kZW52ZXI2NC5tawpAQCAtMCwwICsxLDEyIEBACitsaWJjX2Jpb25pY19zcmNfZmlsZXNfYXJtNjQgKz0gXAorICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvbWVtY21wLlMgXAorICAgIGFyY2gtYXJtNjQvZGVudmVyNjQvYmlvbmljL21lbWNweS5TIFwKKyAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL21lbW1vdmUuUyBcCisgICAgYXJjaC1hcm02NC9kZW52ZXI2NC9iaW9uaWMvbWVtc2V0LlMgXAorICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RyY2hyLlMgXAorICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RyY21wLlMgXAorICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RyY3B5LlMgXAorICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RybGVuLlMgXAorICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RybmNtcC5TIFwKKyAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cm5sZW4uUyBcCisgICAgYXJjaC1hcm02NC9nZW5lcmljL2Jpb25pYy93bWVtbW92ZS5TCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvZ2VuZXJpYy1uZW9uL2dlbmVyaWMtbmVvbi5tayBiL2xpYmMvYXJjaC1hcm02NC9nZW5lcmljLW5lb24vZ2VuZXJpYy1uZW9uLm1rCmluZGV4IDJjYmUzY2YuLmI0NjRkOTYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9nZW5lcmljLW5lb24vZ2VuZXJpYy1uZW9uLm1rCisrKyBiL2xpYmMvYXJjaC1hcm02NC9nZW5lcmljLW5lb24vZ2VuZXJpYy1uZW9uLm1rCkBAIC0yLDcgKzIsOSBAQAogICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvbWVtY21wLlMgXAogICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvbWVtbW92ZS5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL21lbXNldC5TIFwKKyAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNoci5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNtcC5TIFwKKyAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNweS5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmxlbi5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cm5jbXAuUyBcCiAgICAgYXJjaC1hcm02NC9nZW5lcmljL2Jpb25pYy9zdHJubGVuLlMgXApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNoci5TIGIvbGliYy9hcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNoci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1OGVhZjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RyY2hyLlMKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgICBzdHJjaHIgLSBmaW5kIGEgY2hhcmFjdGVyIGluIGEgc3RyaW5nCisKKyAgIENvcHlyaWdodCAoYykgMjAxNCwgQVJNIExpbWl0ZWQKKyAgIEFsbCByaWdodHMgUmVzZXJ2ZWQuCisgICBDb3B5cmlnaHQgKGMpIDIwMTQsIExpbmFybyBMdGQuCisKKyAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICAgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICAgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgICAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb21wYW55IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICAgICAgICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgICAgICAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworICAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICAgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAgIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICAgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAgIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAgIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAgIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICAgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgICBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAgIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuICAqLworCisvKiBBc3N1bXB0aW9uczoKKyAqCisgKiBBUk12OC1hLCBBQXJjaDY0CisgKiBOZW9uIEF2YWlsYWJsZS4KKyAqLworCisjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CisKKy8qIEFyZ3VtZW50cyBhbmQgcmVzdWx0cy4gICovCisjZGVmaW5lIHNyY2luCQl4MAorI2RlZmluZSBjaHJpbgkJdzEKKworI2RlZmluZSByZXN1bHQJCXgwCisKKyNkZWZpbmUgc3JjCQl4MgorI2RlZmluZQl0bXAxCQl4MworI2RlZmluZSB3dG1wMgkJdzQKKyNkZWZpbmUgdG1wMwkJeDUKKworI2RlZmluZSB2cmVwY2hyCQl2MAorI2RlZmluZSB2ZGF0YTEJCXYxCisjZGVmaW5lIHZkYXRhMgkJdjIKKyNkZWZpbmUgdmhhc19udWwxCXYzCisjZGVmaW5lIHZoYXNfbnVsMgl2NAorI2RlZmluZSB2aGFzX2NocjEJdjUKKyNkZWZpbmUgdmhhc19jaHIyCXY2CisjZGVmaW5lIHZyZXBtYXNrXzAJdjcKKyNkZWZpbmUgdnJlcG1hc2tfYwl2MTYKKyNkZWZpbmUgdmVuZDEJCXYxNworI2RlZmluZSB2ZW5kMgkJdjE4CisKKy8qIENvcmUgYWxnb3JpdGhtLgorCisgICBGb3IgZWFjaCAzMi1ieXRlIGh1bmsgd2UgY2FsY3VsYXRlIGEgNjQtYml0IHN5bmRyb21lIHZhbHVlLCB3aXRoCisgICB0d28gYml0cyBwZXIgYnl0ZSAoTFNCIGlzIGFsd2F5cyBpbiBiaXRzIDAgYW5kIDEsIGZvciBib3RoIGJpZworICAgYW5kIGxpdHRsZS1lbmRpYW4gc3lzdGVtcykuICBGb3IgZWFjaCB0dXBsZSwgYml0IDAgaXMgc2V0IGlmZgorICAgdGhlIHJlbGV2YW50IGJ5dGUgbWF0Y2hlZCB0aGUgcmVxdWVzdGVkIGNoYXJhY3RlcjsgYml0IDEgaXMgc2V0CisgICBpZmYgdGhlIHJlbGV2YW50IGJ5dGUgbWF0Y2hlZCB0aGUgTlVMIGVuZCBvZiBzdHJpbmcgKHdlIHRyaWdnZXIKKyAgIG9mZiBiaXQwIGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIGxvb2tpbmcgZm9yIE5VTCkuICBTaW5jZSB0aGUgYml0cworICAgaW4gdGhlIHN5bmRyb21lIHJlZmxlY3QgZXhhY3RseSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhpbmdzIG9jY3VyCisgICBpbiB0aGUgb3JpZ2luYWwgc3RyaW5nIGEgY291bnRfdHJhaWxpbmdfemVyb3MoKSBvcGVyYXRpb24gd2lsbAorICAgaWRlbnRpZnkgZXhhY3RseSB3aGljaCBieXRlIGlzIGNhdXNpbmcgdGhlIHRlcm1pbmF0aW9uLCBhbmQgd2h5LiAgKi8KKworLyogTG9jYWxzIGFuZCB0ZW1wb3Jhcmllcy4gICovCisKK0VOVFJZKHN0cmNocikKKwkvKiBNYWdpYyBjb25zdGFudCAweDQwMTAwNDAxIHRvIGFsbG93IHVzIHRvIGlkZW50aWZ5IHdoaWNoIGxhbmUKKwkgICBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgYnl0ZS4gIE1hZ2ljIGNvbnN0YW50IDB4ODAyMDA4MDIgdXNlZAorCSAgIHNpbWlsYXJseSBmb3IgTlVMIHRlcm1pbmF0aW9uLiAgKi8KKwltb3YJd3RtcDIsICMweDA0MDEKKwltb3ZrCXd0bXAyLCAjMHg0MDEwLCBsc2wgIzE2CisJZHVwCXZyZXBjaHIuMTZiLCBjaHJpbgorCWJpYwlzcmMsIHNyY2luLCAjMzEJCS8qIFdvcmsgd2l0aCBhbGlnbmVkIDMyLWJ5dGUgaHVua3MuICAqLworCWR1cAl2cmVwbWFza19jLjRzLCB3dG1wMgorCWFuZHMJdG1wMSwgc3JjaW4sICMzMQorCWFkZAl2cmVwbWFza18wLjRzLCB2cmVwbWFza19jLjRzLCB2cmVwbWFza19jLjRzIC8qIGVxdWl2OiBsc2wgIzEgKi8KKwliLmVxCS5MbG9vcAorCisJLyogSW5wdXQgc3RyaW5nIGlzIG5vdCAzMi1ieXRlIGFsaWduZWQuICBSYXRoZXIgdGhhbiBmb3JjaW5nCisJICAgdGhlIHBhZGRpbmcgYnl0ZXMgdG8gYSBzYWZlIHZhbHVlLCB3ZSBjYWxjdWxhdGUgdGhlIHN5bmRyb21lCisJICAgZm9yIGFsbCB0aGUgYnl0ZXMsIGJ1dCB0aGVuIG1hc2sgb2ZmIHRob3NlIGJpdHMgb2YgdGhlCisJICAgc3luZHJvbWUgdGhhdCBhcmUgcmVsYXRlZCB0byB0aGUgcGFkZGluZy4gICovCisJbGQxCXt2ZGF0YTEuMTZiLCB2ZGF0YTIuMTZifSwgW3NyY10sICMzMgorCW5lZwl0bXAxLCB0bXAxCisJY21lcQl2aGFzX251bDEuMTZiLCB2ZGF0YTEuMTZiLCAjMAorCWNtZXEJdmhhc19jaHIxLjE2YiwgdmRhdGExLjE2YiwgdnJlcGNoci4xNmIKKwljbWVxCXZoYXNfbnVsMi4xNmIsIHZkYXRhMi4xNmIsICMwCisJY21lcQl2aGFzX2NocjIuMTZiLCB2ZGF0YTIuMTZiLCB2cmVwY2hyLjE2YgorCWFuZAl2aGFzX251bDEuMTZiLCB2aGFzX251bDEuMTZiLCB2cmVwbWFza18wLjE2YgorCWFuZAl2aGFzX251bDIuMTZiLCB2aGFzX251bDIuMTZiLCB2cmVwbWFza18wLjE2YgorCWFuZAl2aGFzX2NocjEuMTZiLCB2aGFzX2NocjEuMTZiLCB2cmVwbWFza19jLjE2YgorCWFuZAl2aGFzX2NocjIuMTZiLCB2aGFzX2NocjIuMTZiLCB2cmVwbWFza19jLjE2YgorCW9ycgl2ZW5kMS4xNmIsIHZoYXNfbnVsMS4xNmIsIHZoYXNfY2hyMS4xNmIKKwlvcnIJdmVuZDIuMTZiLCB2aGFzX251bDIuMTZiLCB2aGFzX2NocjIuMTZiCisJbHNsCXRtcDEsIHRtcDEsICMxCisJYWRkcAl2ZW5kMS4xNmIsIHZlbmQxLjE2YiwgdmVuZDIuMTZiCQkvLyAyNTYtPjEyOAorCW1vdgl0bXAzLCAjfjAKKwlhZGRwCXZlbmQxLjE2YiwgdmVuZDEuMTZiLCB2ZW5kMi4xNmIJCS8vIDEyOC0+NjQKKwlsc3IJdG1wMSwgdG1wMywgdG1wMQorCisJbW92CXRtcDMsIHZlbmQxLjJkWzBdCisJYmljCXRtcDEsIHRtcDMsIHRtcDEJLy8gTWFzayBwYWRkaW5nIGJpdHMuCisJY2Juegl0bXAxLCAuTHRhaWwKKworLkxsb29wOgorCWxkMQl7dmRhdGExLjE2YiwgdmRhdGEyLjE2Yn0sIFtzcmNdLCAjMzIKKwljbWVxCXZoYXNfbnVsMS4xNmIsIHZkYXRhMS4xNmIsICMwCisJY21lcQl2aGFzX2NocjEuMTZiLCB2ZGF0YTEuMTZiLCB2cmVwY2hyLjE2YgorCWNtZXEJdmhhc19udWwyLjE2YiwgdmRhdGEyLjE2YiwgIzAKKwljbWVxCXZoYXNfY2hyMi4xNmIsIHZkYXRhMi4xNmIsIHZyZXBjaHIuMTZiCisJLyogVXNlIGEgZmFzdCBjaGVjayBmb3IgdGhlIHRlcm1pbmF0aW9uIGNvbmRpdGlvbi4gICovCisJb3JyCXZlbmQxLjE2Yiwgdmhhc19udWwxLjE2Yiwgdmhhc19jaHIxLjE2YgorCW9ycgl2ZW5kMi4xNmIsIHZoYXNfbnVsMi4xNmIsIHZoYXNfY2hyMi4xNmIKKwlvcnIJdmVuZDEuMTZiLCB2ZW5kMS4xNmIsIHZlbmQyLjE2YgorCWFkZHAJdmVuZDEuMmQsIHZlbmQxLjJkLCB2ZW5kMS4yZAorCW1vdgl0bXAxLCB2ZW5kMS4yZFswXQorCWNiegl0bXAxLCAuTGxvb3AKKworCS8qIFRlcm1pbmF0aW9uIGNvbmRpdGlvbiBmb3VuZC4gIE5vdyBuZWVkIHRvIGVzdGFibGlzaCBleGFjdGx5IHdoeQorCSAgIHdlIHRlcm1pbmF0ZWQuICAqLworCWFuZAl2aGFzX251bDEuMTZiLCB2aGFzX251bDEuMTZiLCB2cmVwbWFza18wLjE2YgorCWFuZAl2aGFzX251bDIuMTZiLCB2aGFzX251bDIuMTZiLCB2cmVwbWFza18wLjE2YgorCWFuZAl2aGFzX2NocjEuMTZiLCB2aGFzX2NocjEuMTZiLCB2cmVwbWFza19jLjE2YgorCWFuZAl2aGFzX2NocjIuMTZiLCB2aGFzX2NocjIuMTZiLCB2cmVwbWFza19jLjE2YgorCW9ycgl2ZW5kMS4xNmIsIHZoYXNfbnVsMS4xNmIsIHZoYXNfY2hyMS4xNmIKKwlvcnIJdmVuZDIuMTZiLCB2aGFzX251bDIuMTZiLCB2aGFzX2NocjIuMTZiCisJYWRkcAl2ZW5kMS4xNmIsIHZlbmQxLjE2YiwgdmVuZDIuMTZiCQkvLyAyNTYtPjEyOAorCWFkZHAJdmVuZDEuMTZiLCB2ZW5kMS4xNmIsIHZlbmQyLjE2YgkJLy8gMTI4LT42NAorCisJbW92CXRtcDEsIHZlbmQxLjJkWzBdCisuTHRhaWw6CisJLyogQ291bnQgdGhlIHRyYWlsaW5nIHplcm9zLCBieSBiaXQgcmV2ZXJzaW5nLi4uICAqLworCXJiaXQJdG1wMSwgdG1wMQorCS8qIFJlLWJpYXMgc291cmNlLiAgKi8KKwlzdWIJc3JjLCBzcmMsICMzMgorCWNsegl0bXAxLCB0bXAxCS8qIEFuZCBjb3VudGluZyB0aGUgbGVhZGluZyB6ZXJvcy4gICovCisJLyogVG1wMSBpcyBldmVuIGlmIHRoZSB0YXJnZXQgY2hhcmFnZXIgd2FzIGZvdW5kIGZpcnN0LiAgT3RoZXJ3aXNlCisJICAgd2UndmUgZm91bmQgdGhlIGVuZCBvZiBzdHJpbmcgYW5kIHdlIHdlcmVuJ3QgbG9va2luZyBmb3IgTlVMLiAgKi8KKwl0c3QJdG1wMSwgIzEKKwlhZGQJcmVzdWx0LCBzcmMsIHRtcDEsIGxzciAjMQorCWNzZWwJcmVzdWx0LCByZXN1bHQsIHh6ciwgZXEKKwlyZXQKK0VORChzdHJjaHIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RyY3B5LlMgYi9saWJjL2FyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvc3RyY3B5LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE1ZTA2ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1hcm02NC9nZW5lcmljL2Jpb25pYy9zdHJjcHkuUwpAQCAtMCwwICsxLDE5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KKyAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAorICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCisgKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKKyAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAorICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworLyogQ29weXJpZ2h0IChjKSAyMDE0LCBMaW5hcm8gTGltaXRlZAorICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgICBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAgICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgICAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICAgICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAgICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIExpbmFybyBub3IgdGhlCisgICAgICAgICBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICAgICAgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKKyAgIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAgICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgICBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAgIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgICBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgICBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgICBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAgIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICAgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgICBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworLyogQXNzdW1wdGlvbnM6CisgKgorICogQVJNdjgtYSwgQUFyY2g2NAorICovCisKKyNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KKworLyogQXJndW1lbnRzIGFuZCByZXN1bHRzLiAgKi8KKyNkZWZpbmUgZHN0aW4gICAgICAgeDAKKyNkZWZpbmUgc3JjICAgICAgICAgeDEKKworLyogTG9jYWxzIGFuZCB0ZW1wb3Jhcmllcy4gICovCisjZGVmaW5lIGRzdCAgICAgICAgIHgyCisjZGVmaW5lIGRhdGExICAgICAgIHgzCisjZGVmaW5lIGRhdGExX3cgICAgIHczCisjZGVmaW5lIGRhdGEyICAgICAgIHg0CisjZGVmaW5lIGRhdGEyX3cgICAgIHc0CisjZGVmaW5lIGhhc19udWwxICAgIHg1CisjZGVmaW5lIGhhc19udWwxX3cgIHc1CisjZGVmaW5lIGhhc19udWwyICAgIHg2CisjZGVmaW5lIHRtcDEgICAgICAgIHg3CisjZGVmaW5lIHRtcDIgICAgICAgIHg4CisjZGVmaW5lIHRtcDMgICAgICAgIHg5CisjZGVmaW5lIHRtcDQgICAgICAgIHgxMAorI2RlZmluZSB6ZXJvb25lcyAgICB4MTEKKyNkZWZpbmUgemVyb29uZXNfdyAgdzExCisjZGVmaW5lIHBvcyAgICAgICAgIHgxMgorCisjZGVmaW5lIFJFUDhfMDEgMHgwMTAxMDEwMTAxMDEwMTAxCisjZGVmaW5lIFJFUDhfN2YgMHg3ZjdmN2Y3ZjdmN2Y3ZjdmCisjZGVmaW5lIFJFUDhfODAgMHg4MDgwODA4MDgwODA4MDgwCisKK0VOVFJZKHN0cmNweSkKKyAgICBtb3YgICAgIHplcm9vbmVzLCAjUkVQOF8wMQorICAgIG1vdiAgICAgZHN0LCBkc3RpbgorICAgIGFuZHMgICAgdG1wMSwgc3JjLCAjMTUKKyAgICBiLm5lICAgIC5MbWlzYWxpZ25lZAorICAgIC8vIE5VTCBkZXRlY3Rpb24gd29ya3Mgb24gdGhlIHByaW5jaXBsZSB0aGF0IChYIC0gMSkgJiAoflgpICYgMHg4MAorICAgIC8vICg9PiAoWCAtIDEpICYgfihYIHwgMHg3ZikpIGlzIG5vbi16ZXJvIGlmZiBhIGJ5dGUgaXMgemVybywgYW5kCisgICAgLy8gY2FuIGJlIGRvbmUgaW4gcGFyYWxsZWwgYWNyb3NzIHRoZSBlbnRpcmUgd29yZC4KKyAgICAvLyBUaGUgaW5uZXIgbG9vcCBkZWFscyB3aXRoIHR3byBEd29yZHMgYXQgYSB0aW1lLiAgVGhpcyBoYXMgYQorICAgIC8vIHNsaWdodGx5IGhpZ2hlciBzdGFydC11cCBjb3N0LCBidXQgd2Ugc2hvdWxkIHdpbiBxdWl0ZSBxdWlja2x5LAorICAgIC8vIGVzcGVjaWFsbHkgb24gY29yZXMgd2l0aCBhIGhpZ2ggbnVtYmVyIG9mIGlzc3VlIHNsb3RzIHBlcgorICAgIC8vIGN5Y2xlLCBhcyB3ZSBnZXQgbXVjaCBiZXR0ZXIgcGFyYWxsZWxpc20gb3V0IG9mIHRoZSBvcGVyYXRpb25zLgorLkxsb29wOgorICAgIGxkcCAgICAgZGF0YTEsIGRhdGEyLCBbc3JjXSwgIzE2CisgICAgc3ViICAgICB0bXAxLCBkYXRhMSwgemVyb29uZXMKKyAgICBvcnIgICAgIHRtcDIsIGRhdGExLCAjUkVQOF83ZgorICAgIGJpYyAgICAgaGFzX251bDEsIHRtcDEsIHRtcDIKKyAgICBjYm56ICAgIGhhc19udWwxLCAuTG51bF9pbl9kYXRhMQorICAgIHN1YiAgICAgdG1wMywgZGF0YTIsIHplcm9vbmVzCisgICAgb3JyICAgICB0bXA0LCBkYXRhMiwgI1JFUDhfN2YKKyAgICBiaWMgICAgIGhhc19udWwyLCB0bXAzLCB0bXA0CisgICAgY2JueiAgICBoYXNfbnVsMiwgLkxudWxfaW5fZGF0YTIKKyAgICAvLyBObyBOVUwgaW4gZWl0aGVyIHJlZ2lzdGVyLCBjb3B5IGl0IGluIGEgc2luZ2xlIGluc3RydWN0aW9uLgorICAgIHN0cCAgICAgZGF0YTEsIGRhdGEyLCBbZHN0XSwgIzE2CisgICAgYiAgICAgICAuTGxvb3AKKworLkxudWxfaW5fZGF0YTE6CisgICAgcmV2ICAgICBoYXNfbnVsMSwgaGFzX251bDEKKyAgICBjbHogICAgIHBvcywgaGFzX251bDEKKyAgICBhZGQgICAgIHRtcDEsIHBvcywgIzB4OAorCisgICAgdGJ6ICAgICB0bXAxLCAjNiwgMWYKKyAgICBzdHIgICAgIGRhdGExLCBbZHN0XQorICAgIHJldAorMToKKyAgICB0YnogICAgIHRtcDEsICM1LCAxZgorICAgIHN0ciAgICAgZGF0YTFfdywgW2RzdF0sICM0CisgICAgbHNyICAgICBkYXRhMSwgZGF0YTEsICMzMgorMToKKyAgICB0YnogICAgIHRtcDEsICM0LCAxZgorICAgIHN0cmggICAgZGF0YTFfdywgW2RzdF0sICMyCisgICAgbHNyICAgICBkYXRhMSwgZGF0YTEsICMxNgorMToKKyAgICB0YnogICAgIHRtcDEsICMzLCAxZgorICAgIHN0cmIgICAgZGF0YTFfdywgW2RzdF0KKzE6CisgICAgcmV0CisKKy5MbnVsX2luX2RhdGEyOgorICAgIHN0ciAgICAgZGF0YTEsIFtkc3RdLCAjOAorICAgIHJldiAgICAgaGFzX251bDIsIGhhc19udWwyCisgICAgY2x6ICAgICBwb3MsIGhhc19udWwyCisgICAgYWRkICAgICB0bXAxLCBwb3MsICMweDgKKworICAgIHRieiAgICAgdG1wMSwgIzYsIDFmCisgICAgc3RyICAgICBkYXRhMiwgW2RzdF0KKyAgICByZXQKKzE6CisgICAgdGJ6ICAgICB0bXAxLCAjNSwgMWYKKyAgICBzdHIgICAgIGRhdGEyX3csIFtkc3RdLCAjNAorICAgIGxzciAgICAgZGF0YTIsIGRhdGEyLCAjMzIKKzE6CisgICAgdGJ6ICAgICB0bXAxLCAjNCwgMWYKKyAgICBzdHJoICAgIGRhdGEyX3csIFtkc3RdLCAjMgorICAgIGxzciAgICAgZGF0YTIsIGRhdGEyLCAjMTYKKzE6CisgICAgdGJ6ICAgICB0bXAxLCAjMywgMWYKKyAgICBzdHJiICAgIGRhdGEyX3csIFtkc3RdCisxOgorICAgIHJldAorCisuTG1pc2FsaWduZWQ6CisgICAgdGJ6ICAgICBzcmMsICMwLCAxZgorICAgIGxkcmIgICAgZGF0YTFfdywgW3NyY10sICMxCisgICAgc3RyYiAgICBkYXRhMV93LCBbZHN0XSwgIzEKKyAgICBjYm56ICAgIGRhdGExX3csIDFmCisgICAgcmV0CisxOgorICAgIHRieiAgICAgc3JjLCAjMSwgMWYKKyAgICBsZHJiICAgIGRhdGExX3csIFtzcmNdLCAjMQorICAgIHN0cmIgICAgZGF0YTFfdywgW2RzdF0sICMxCisgICAgY2J6ICAgICBkYXRhMV93LCAuTGRvbmUKKyAgICBsZHJiICAgIGRhdGEyX3csIFtzcmNdLCAjMQorICAgIHN0cmIgICAgZGF0YTJfdywgW2RzdF0sICMxCisgICAgY2JueiAgICBkYXRhMl93LCAxZgorLkxkb25lOgorICAgIHJldAorMToKKyAgICB0YnogICAgIHNyYywgIzIsIDFmCisgICAgbGRyICAgICBkYXRhMV93LCBbc3JjXSwgIzQKKyAgICAvLyBDaGVjayBmb3IgYSB6ZXJvLgorICAgIHN1YiAgICAgaGFzX251bDFfdywgZGF0YTFfdywgemVyb29uZXNfdworICAgIGJpYyAgICAgaGFzX251bDFfdywgaGFzX251bDFfdywgZGF0YTFfdworICAgIGFuZHMgICAgaGFzX251bDFfdywgaGFzX251bDFfdywgIzB4ODA4MDgwODAKKyAgICBiLm5lICAgIC5MbnVsX2luX2RhdGExCisgICAgc3RyICAgICBkYXRhMV93LCBbZHN0XSwgIzQKKzE6CisgICAgdGJ6ICAgICBzcmMsICMzLCAuTGxvb3AKKyAgICBsZHIgICAgIGRhdGExLCBbc3JjXSwgIzgKKyAgICAvLyBDaGVjayBmb3IgYSB6ZXJvLgorICAgIHN1YiAgICAgdG1wMSwgZGF0YTEsIHplcm9vbmVzCisgICAgb3JyICAgICB0bXAyLCBkYXRhMSwgI1JFUDhfN2YKKyAgICBiaWNzICAgIGhhc19udWwxLCB0bXAxLCB0bXAyCisgICAgYi5uZSAgICAuTG51bF9pbl9kYXRhMQorICAgIHN0ciAgICAgZGF0YTEsIFtkc3RdLCAjOAorICAgIGIgICAgICAgLkxsb29wCitFTkQoc3RyY3B5KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L2dlbmVyaWMvZ2VuZXJpYy5tayBiL2xpYmMvYXJjaC1hcm02NC9nZW5lcmljL2dlbmVyaWMubWsKaW5kZXggZTEwY2Y2Ni4uMmFlZDdlMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L2dlbmVyaWMvZ2VuZXJpYy5taworKysgYi9saWJjL2FyY2gtYXJtNjQvZ2VuZXJpYy9nZW5lcmljLm1rCkBAIC0zLDcgKzMsOSBAQAogICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvbWVtY3B5LlMgXAogICAgIGFyY2gtYXJtNjQvZ2VuZXJpYy9iaW9uaWMvbWVtbW92ZS5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL21lbXNldC5TIFwKKyAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNoci5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNtcC5TIFwKKyAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmNweS5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cmxlbi5TIFwKICAgICBhcmNoLWFybTY0L2dlbmVyaWMvYmlvbmljL3N0cm5jbXAuUyBcCiAgICAgYXJjaC1hcm02NC9nZW5lcmljL2Jpb25pYy9zdHJubGVuLlMgXApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fYWNjZXB0NC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fYWNjZXB0NC5TCmluZGV4IDM0ZjJjNTIuLjFjMmE2NzQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2FjY2VwdDQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19hY2NlcHQ0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX2FjY2VwdDQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2FjY2VwdDQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2Jyay5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fYnJrLlMKaW5kZXggZmI2M2ZiOS4uODVlZDc2NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fYnJrLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fYnJrLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX2JyaykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfYnJrCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19jb25uZWN0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19jb25uZWN0LlMKaW5kZXggZTU3OGNjYy4uMGQ2NjRmMCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fY29ubmVjdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2Nvbm5lY3QuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fY29ubmVjdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfY29ubmVjdAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZXBvbGxfcHdhaXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2Vwb2xsX3B3YWl0LlMKaW5kZXggNTdiMDFjMi4uNDUyNzVjMCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZXBvbGxfcHdhaXQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19lcG9sbF9wd2FpdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX19lcG9sbF9wd2FpdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZXBvbGxfcHdhaXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2V4aXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2V4aXQuUwppbmRleCA4NjAwYjEzLi5lMzU4NTEzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19leGl0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZXhpdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX19leGl0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9leGl0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19nZXRjcHUuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2dldGNwdS5TCmluZGV4IGU4MWJhMjMuLjVlNDM2OGYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2dldGNwdS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2dldGNwdS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX19nZXRjcHUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldGNwdQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZ2V0Y3dkLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19nZXRjd2QuUwppbmRleCBmYzQ4ZjgwLi5iZDRmYmFhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19nZXRjd2QuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19nZXRjd2QuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fZ2V0Y3dkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9nZXRjd2QKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2dldGRlbnRzNjQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2dldGRlbnRzNjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjBmOWE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZ2V0ZGVudHM2NC5TCkBAIC0wLDAgKzEsMTUgQEAKKy8qIEdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weS4gRG8gbm90IGVkaXQuICovCisKKyNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KKworRU5UUlkoX19nZXRkZW50czY0KQorICAgIG1vdiAgICAgeDgsIF9fTlJfZ2V0ZGVudHM2NAorICAgIHN2YyAgICAgIzAKKworICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKKyAgICBjbmVnICAgIHgwLCB4MCwgaGkKKyAgICBiLmhpICAgIF9fc2V0X2Vycm5vCisKKyAgICByZXQKK0VORChfX2dldGRlbnRzNjQpCisuaGlkZGVuIF9fZ2V0ZGVudHM2NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZ2V0cGlkLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19nZXRwaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzAwM2MzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZ2V0cGlkLlMKQEAgLTAsMCArMSwxNSBAQAorLyogR2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5LiBEbyBub3QgZWRpdC4gKi8KKworI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgorCitFTlRSWShfX2dldHBpZCkKKyAgICBtb3YgICAgIHg4LCBfX05SX2dldHBpZAorICAgIHN2YyAgICAgIzAKKworICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKKyAgICBjbmVnICAgIHgwLCB4MCwgaGkKKyAgICBiLmhpICAgIF9fc2V0X2Vycm5vCisKKyAgICByZXQKK0VORChfX2dldHBpZCkKKy5oaWRkZW4gX19nZXRwaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2dldHByaW9yaXR5LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19nZXRwcmlvcml0eS5TCmluZGV4IDQ4NmVhOGYuLjU3Y2VhYmYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2dldHByaW9yaXR5LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fZ2V0cHJpb3JpdHkpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHByaW9yaXR5CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19pb2N0bC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19faW9jdGwuUwppbmRleCAzMGZmNzNjLi5mNjMyNTU1IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19pb2N0bC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX2lvY3RsLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX2lvY3RsKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9pb2N0bAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fb3BlbmF0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19vcGVuYXQuUwppbmRleCAyMmUyZjZhLi5lMWIwZGEzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19vcGVuYXQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19vcGVuYXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fb3BlbmF0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9vcGVuYXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3Bwb2xsLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19wcG9sbC5TCmluZGV4IDE3MzlkZWEuLjMxZTU1NzggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3Bwb2xsLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcHBvbGwuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fcHBvbGwpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3Bwb2xsCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19wc2VsZWN0Ni5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcHNlbGVjdDYuUwppbmRleCAyNzcwMTY0Li5iMGU0NzcwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19wc2VsZWN0Ni5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3BzZWxlY3Q2LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX3BzZWxlY3Q2KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9wc2VsZWN0NgogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcHRyYWNlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19wdHJhY2UuUwppbmRleCAzNzQ2NTMwLi4wNTRiYjZmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19wdHJhY2UuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19wdHJhY2UuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fcHRyYWNlKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9wdHJhY2UKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3JlYm9vdC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcmVib290LlMKaW5kZXggYjFlYTQxOC4uZTI0NTUzYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcmVib290LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcmVib290LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX3JlYm9vdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcmVib290CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3J0X3NpZ2FjdGlvbi5TCmluZGV4IDMzZTA3Y2IuLjNkODQ1NDQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3J0X3NpZ2FjdGlvbi5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3J0X3NpZ2FjdGlvbi5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX19ydF9zaWdhY3Rpb24pCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3J0X3NpZ2FjdGlvbgogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcnRfc2lncGVuZGluZy5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcnRfc2lncGVuZGluZy5TCmluZGV4IGZhNjgxMmUuLjYwZjBhMTAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3J0X3NpZ3BlbmRpbmcuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWdwZW5kaW5nLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX3J0X3NpZ3BlbmRpbmcpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3J0X3NpZ3BlbmRpbmcKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3J0X3NpZ3Byb2NtYXNrLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCmluZGV4IDUzN2Y4YmQuLjdmNWIzYWMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3J0X3NpZ3Byb2NtYXNrLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcnRfc2lncHJvY21hc2suUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fcnRfc2lncHJvY21hc2spCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3J0X3NpZ3Byb2NtYXNrCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWdzdXNwZW5kLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWdzdXNwZW5kLlMKaW5kZXggYjhhOTljNi4uMDhiMTE5NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcnRfc2lnc3VzcGVuZC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3J0X3NpZ3N1c3BlbmQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fcnRfc2lnc3VzcGVuZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcnRfc2lnc3VzcGVuZAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fcnRfc2lndGltZWR3YWl0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUwppbmRleCA4Njk0NDJjLi44YmM5YTdhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fcnRfc2lndGltZWR3YWl0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9ydF9zaWd0aW1lZHdhaXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3NjaGVkX2dldGFmZmluaXR5LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCmluZGV4IDhjYTIzZDQuLmMwZDM5MmMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3NjaGVkX2dldGFmZmluaXR5LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fc2NoZWRfZ2V0YWZmaW5pdHkuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fc2NoZWRfZ2V0YWZmaW5pdHkpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NjaGVkX2dldGFmZmluaXR5CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19zZXRfdGlkX2FkZHJlc3MuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3NldF90aWRfYWRkcmVzcy5TCmluZGV4IDU1MTRhZWQuLjI5NmM5MDcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3NldF90aWRfYWRkcmVzcy5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3NldF90aWRfYWRkcmVzcy5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX19zZXRfdGlkX2FkZHJlc3MpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NldF90aWRfYWRkcmVzcwogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fc2lnbmFsZmQ0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19zaWduYWxmZDQuUwppbmRleCBlYTQ5ZmM1Li4zOTMyMDAzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19zaWduYWxmZDQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX19zaWduYWxmZDQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fc2lnbmFsZmQ0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zaWduYWxmZDQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3NvY2tldC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fc29ja2V0LlMKaW5kZXggZjk2YTFhYi4uZGI3ZjJhYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fc29ja2V0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fc29ja2V0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX3NvY2tldCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc29ja2V0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9jcmVhdGUuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCmluZGV4IDg3MTgzYjQuLmE1ZTY5ZTMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX190aW1lcl9jcmVhdGUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3RpbWVyX2NyZWF0ZQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fdGltZXJfZGVsZXRlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUwppbmRleCBjMjFlYzRmLi40NGE3NDgxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fdGltZXJfZGVsZXRlKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl90aW1lcl9kZWxldGUKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3RpbWVyX2dldG92ZXJydW4uUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3RpbWVyX2dldG92ZXJydW4uUwppbmRleCA0N2YxZWY5Li5lMWQ5NTlhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9nZXRvdmVycnVuLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fdGltZXJfZ2V0b3ZlcnJ1bi5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX190aW1lcl9nZXRvdmVycnVuKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl90aW1lcl9nZXRvdmVycnVuCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMKaW5kZXggNGVhYTY1NS4uNzYzMjI5MCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fdGltZXJfZ2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3RpbWVyX2dldHRpbWUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKF9fdGltZXJfZ2V0dGltZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfdGltZXJfZ2V0dGltZQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TCmluZGV4IGFlZjBjYzQuLjkyZTRhNzYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3RpbWVyX3NldHRpbWUuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX190aW1lcl9zZXR0aW1lLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX3RpbWVyX3NldHRpbWUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3RpbWVyX3NldHRpbWUKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fX3dhaXRpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fd2FpdGlkLlMKaW5kZXggNmQ5ZTk0MC4uOTI2NzIzOSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fd2FpdGlkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL19fd2FpdGlkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShfX3dhaXRpZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfd2FpdGlkCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvX2V4aXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fZXhpdC5TCmluZGV4IDM3ZDE0OTkuLjM4YjA3M2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fZXhpdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9fZXhpdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoX2V4aXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2V4aXRfZ3JvdXAKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9hY2N0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvYWNjdC5TCmluZGV4IGYzOTFjZDguLjE1ZTMwODYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9hY2N0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2FjY3QuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGFjY3QpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2FjY3QKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9iaW5kLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvYmluZC5TCmluZGV4IDEwZGQwMWYuLmIzOTI1ZGIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9iaW5kLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2JpbmQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGJpbmQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2JpbmQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jYXBnZXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jYXBnZXQuUwppbmRleCBkMDFkYzQ3Li5iODk3ZTVkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvY2FwZ2V0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2NhcGdldC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoY2FwZ2V0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9jYXBnZXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jYXBzZXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jYXBzZXQuUwppbmRleCBjNGVkOTJlLi4xZDk0YWEzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvY2Fwc2V0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2NhcHNldC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoY2Fwc2V0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9jYXBzZXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jaGRpci5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2NoZGlyLlMKaW5kZXggNmYxYmFmMC4uYTdiZjZjMiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2NoZGlyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2NoZGlyLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShjaGRpcikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfY2hkaXIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jaHJvb3QuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jaHJvb3QuUwppbmRleCBiMTVmMDRhLi45OGJkNWQxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvY2hyb290LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nocm9vdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoY2hyb290KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9jaHJvb3QKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19nZXRyZXMuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19nZXRyZXMuUwppbmRleCBiMThjMTBiLi5iNmU3ZTU2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvY2xvY2tfZ2V0cmVzLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nsb2NrX2dldHJlcy5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoY2xvY2tfZ2V0cmVzKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9jbG9ja19nZXRyZXMKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19nZXR0aW1lLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TCmluZGV4IGIzNTE4YzEuLmZmZGRlNTcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19nZXR0aW1lLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nsb2NrX2dldHRpbWUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGNsb2NrX2dldHRpbWUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2Nsb2NrX2dldHRpbWUKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19uYW5vc2xlZXAuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19uYW5vc2xlZXAuUwppbmRleCBlZGRmNmYxLi5iNjRmZjY4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvY2xvY2tfbmFub3NsZWVwLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nsb2NrX25hbm9zbGVlcC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoY2xvY2tfbmFub3NsZWVwKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9jbG9ja19uYW5vc2xlZXAKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19zZXR0aW1lLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCmluZGV4IGM2YmE1YzAuLmFkYzE2ODAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9ja19zZXR0aW1lLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nsb2NrX3NldHRpbWUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGNsb2NrX3NldHRpbWUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2Nsb2NrX3NldHRpbWUKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9jbG9zZS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nsb3NlLlMKaW5kZXggYTYyMzg5NS4uYjRiNzJkOSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nsb3NlLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Nsb3NlLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShjbG9zZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfY2xvc2UKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZGVsZXRlX21vZHVsZS5TCmluZGV4IGE1NzUxN2QuLmVkNTE4NDcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2RlbGV0ZV9tb2R1bGUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGRlbGV0ZV9tb2R1bGUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2RlbGV0ZV9tb2R1bGUKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9kdXAuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9kdXAuUwppbmRleCBiN2UwNGVkLi45NTg0YzUxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZHVwLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2R1cC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZHVwKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9kdXAKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9kdXAzLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZHVwMy5TCmluZGV4IGZhZGE2M2QuLmUzMDNmYmEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9kdXAzLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2R1cDMuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGR1cDMpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2R1cDMKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9lcG9sbF9jcmVhdGUxLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZXBvbGxfY3JlYXRlMS5TCmluZGV4IDk0OTkwYmYuLjRjYThiZmEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9lcG9sbF9jcmVhdGUxLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZTEuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGVwb2xsX2NyZWF0ZTEpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2Vwb2xsX2NyZWF0ZTEKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9lcG9sbF9jdGwuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9lcG9sbF9jdGwuUwppbmRleCBlYTZmNzM1Li5jMWMwZGJhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZXBvbGxfY3RsLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Vwb2xsX2N0bC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZXBvbGxfY3RsKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9lcG9sbF9jdGwKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9ldmVudGZkLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZXZlbnRmZC5TCmluZGV4IGFmYTg4YjMuLmFjZTYwOGUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9ldmVudGZkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2V2ZW50ZmQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGV2ZW50ZmQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2V2ZW50ZmQyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZXhlY3ZlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZXhlY3ZlLlMKaW5kZXggMDMxYjZkNC4uYWIwY2I1NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2V4ZWN2ZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9leGVjdmUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGV4ZWN2ZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZXhlY3ZlCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmFjY2Vzc2F0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmFjY2Vzc2F0LlMKaW5kZXggY2ViYmYxOC4uMzBhMzg1MiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZhY2Nlc3NhdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mYWNjZXNzYXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZhY2Nlc3NhdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZmFjY2Vzc2F0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmFsbG9jYXRlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmFsbG9jYXRlLlMKaW5kZXggOTQ4MzJhYS4uMzA5MmIzNCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZhbGxvY2F0ZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mYWxsb2NhdGUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZhbGxvY2F0ZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZmFsbG9jYXRlCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNoZGlyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNoZGlyLlMKaW5kZXggYWZiYTNjMS4uZjc2ODdmOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZjaGRpci5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2hkaXIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZjaGRpcikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZmNoZGlyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNobW9kLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNobW9kLlMKaW5kZXggMzVmOWRlYy4uYWNjNjcxOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZjaG1vZC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2htb2QuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZjaG1vZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZmNobW9kCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNobW9kYXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2htb2RhdC5TCmluZGV4IDU5YmZiOGEuLjIzYzJmZDUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2htb2RhdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2htb2RhdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZmNobW9kYXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2ZjaG1vZGF0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNob3duLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNob3duLlMKaW5kZXggMjI5NDE4Ny4uOGU5ZGI2MiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZjaG93bi5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2hvd24uUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZjaG93bikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZmNob3duCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNob3duYXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2hvd25hdC5TCmluZGV4IGZmMjQxODcuLjNjZjJjM2QgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2hvd25hdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY2hvd25hdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZmNob3duYXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2ZjaG93bmF0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmNudGwuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY250bC5TCmluZGV4IGE5ZDY5NzYuLjQ1ZWZmNzQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY250bC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mY250bC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZmNudGwpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2ZjbnRsCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmRhdGFzeW5jLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmRhdGFzeW5jLlMKaW5kZXggNGNmNGRlMy4uNzdiNzZjNCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZkYXRhc3luYy5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mZGF0YXN5bmMuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZkYXRhc3luYykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZmRhdGFzeW5jCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmdldHhhdHRyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmdldHhhdHRyLlMKaW5kZXggOTE0ZWE3Zi4uMWY4ZWRiNiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZnZXR4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mZ2V0eGF0dHIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZnZXR4YXR0cikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZmdldHhhdHRyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmxpc3R4YXR0ci5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZsaXN0eGF0dHIuUwppbmRleCAyYTY0MzgxLi45OTc1MjllIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmxpc3R4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mbGlzdHhhdHRyLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShmbGlzdHhhdHRyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9mbGlzdHhhdHRyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZmxvY2suUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mbG9jay5TCmluZGV4IDBkODcyMzMuLjBlMWMzZjUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mbG9jay5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mbG9jay5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZmxvY2spCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2Zsb2NrCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnJlbW92ZXhhdHRyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnJlbW92ZXhhdHRyLlMKaW5kZXggZTJlZjY0OS4uZDQzNDMwZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mcmVtb3ZleGF0dHIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZyZW1vdmV4YXR0cikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZnJlbW92ZXhhdHRyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnNldHhhdHRyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnNldHhhdHRyLlMKaW5kZXggZWI0MTk1MS4uZjQwZjg3NSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZzZXR4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc2V0eGF0dHIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZzZXR4YXR0cikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZnNldHhhdHRyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnN0YXQ2NC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZzdGF0NjQuUwppbmRleCBlZTBkOWU3Li45YWZlOTViIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnN0YXQ2NC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc3RhdDY0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShmc3RhdDY0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9mc3RhdAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZzdGF0YXQ2NC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZzdGF0YXQ2NC5TCmluZGV4IDRmZjMwMzkuLjMwZWZkM2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc3RhdGF0NjQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnN0YXRhdDY0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShmc3RhdGF0NjQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX25ld2ZzdGF0YXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc3RhdGZzNjQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc3RhdGZzNjQuUwppbmRleCBiOTA4YjU3Li42N2FlNjdlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnN0YXRmczY0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2ZzdGF0ZnM2NC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZnN0YXRmczY0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9mc3RhdGZzCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnN5bmMuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc3luYy5TCmluZGV4IGJhYzJlOGIuLmUyMjU4OWUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc3luYy5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mc3luYy5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZnN5bmMpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2ZzeW5jCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnRydW5jYXRlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZnRydW5jYXRlLlMKaW5kZXggY2E0MzE1YS4uYjQ1YTE3MCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2Z0cnVuY2F0ZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9mdHJ1bmNhdGUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGZ0cnVuY2F0ZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZnRydW5jYXRlCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0ZGVudHMuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRkZW50cy5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2QzY2E3Li4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRkZW50cy5TCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotLyogR2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5LiBEbyBub3QgZWRpdC4gKi8KLQotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotCi1FTlRSWShnZXRkZW50cykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQotICAgIG1vdiAgICAgeDgsIF9fTlJfZ2V0ZGVudHM2NAotICAgIHN2YyAgICAgIzAKLQotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KLSAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCi0gICAgY25lZyAgICB4MCwgeDAsIGhpCi0gICAgYi5oaSAgICBfX3NldF9lcnJubwotCi0gICAgcmV0Ci1FTkQoZ2V0ZGVudHMpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0ZWdpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldGVnaWQuUwppbmRleCA1OTNmNTFkLi42NzU3MzFjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0ZWdpZC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRlZ2lkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRlZ2lkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9nZXRlZ2lkCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0ZXVpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldGV1aWQuUwppbmRleCA4NDVhY2JjLi44ZDk0NjFlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0ZXVpZC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRldWlkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRldWlkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9nZXRldWlkCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0Z2lkLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0Z2lkLlMKaW5kZXggNWYzNDM1NS4uNDY1M2ZkOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldGdpZC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRnaWQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGdldGdpZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZ2V0Z2lkCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0Z3JvdXBzLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0Z3JvdXBzLlMKaW5kZXggZDBlMjU0MC4uZjIyZjFlOSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldGdyb3Vwcy5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRncm91cHMuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGdldGdyb3VwcykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZ2V0Z3JvdXBzCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0aXRpbWVyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0aXRpbWVyLlMKaW5kZXggMmQ0ZDU0MS4uMjVkMGIzOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldGl0aW1lci5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRpdGltZXIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGdldGl0aW1lcikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZ2V0aXRpbWVyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cGVlcm5hbWUuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRwZWVybmFtZS5TCmluZGV4IDFmNjQxMzAuLmFlZmQwYzUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRwZWVybmFtZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRwZWVybmFtZS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZ2V0cGVlcm5hbWUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHBlZXJuYW1lCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cGdpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHBnaWQuUwppbmRleCAwMWQ4NzZmLi40Yzc1MGZiIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cGdpZC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRwZ2lkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRwZ2lkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9nZXRwZ2lkCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cGlkLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0YjgyM2MuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHBpZC5TCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotLyogR2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5LiBEbyBub3QgZWRpdC4gKi8KLQotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotCi1FTlRSWShnZXRwaWQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KLSAgICBtb3YgICAgIHg4LCBfX05SX2dldHBpZAotICAgIHN2YyAgICAgIzAKLQotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KLSAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCi0gICAgY25lZyAgICB4MCwgeDAsIGhpCi0gICAgYi5oaSAgICBfX3NldF9lcnJubwotCi0gICAgcmV0Ci1FTkQoZ2V0cGlkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHBwaWQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRwcGlkLlMKaW5kZXggMGE0Njg3OC4uNTQwZWNjNCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHBwaWQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cHBpZC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZ2V0cHBpZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZ2V0cHBpZAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJlc2dpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJlc2dpZC5TCmluZGV4IGJjMTIxZmMuLjNjZTU3OTkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRyZXNnaWQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cmVzZ2lkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRyZXNnaWQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHJlc2dpZAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJlc3VpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJlc3VpZC5TCmluZGV4IDI4Y2Q5YTQuLjU2ODUxY2MgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRyZXN1aWQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cmVzdWlkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRyZXN1aWQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHJlc3VpZAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJsaW1pdC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJsaW1pdC5TCmluZGV4IGFhOTY2Y2EuLjFmNzQ3NzMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRybGltaXQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cmxpbWl0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRybGltaXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHJsaW1pdAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJ1c2FnZS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHJ1c2FnZS5TCmluZGV4IGFhYWYzYTIuLjgxNTRlNGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRydXNhZ2UuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0cnVzYWdlLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRydXNhZ2UpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHJ1c2FnZQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHNpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHNpZC5TCmluZGV4IGU3NWI3YjQuLmY5OTYyM2YgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRzaWQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0c2lkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXRzaWQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHNpZAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHNvY2tuYW1lLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0c29ja25hbWUuUwppbmRleCA2MWU0YjRiLi5lOGJjMDA2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0c29ja25hbWUuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0c29ja25hbWUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGdldHNvY2tuYW1lKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9nZXRzb2NrbmFtZQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHNvY2tvcHQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXRzb2Nrb3B0LlMKaW5kZXggMzc0MGRmOS4uNDU1OWQxZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHNvY2tvcHQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0c29ja29wdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoZ2V0c29ja29wdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfZ2V0c29ja29wdAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHRpbWVvZmRheS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHRpbWVvZmRheS5TCmluZGV4IGE3MmFjOTEuLjNiNjEwNGIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXR0aW1lb2ZkYXkuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0dGltZW9mZGF5LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXR0aW1lb2ZkYXkpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHRpbWVvZmRheQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHVpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHVpZC5TCmluZGV4IGQ3NDljYzMuLjRlMzdkNDcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9nZXR1aWQuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0dWlkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShnZXR1aWQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2dldHVpZAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2dldHhhdHRyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0eGF0dHIuUwppbmRleCA0NTFlZWY1Li4zZjY5OTU2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0eGF0dHIuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvZ2V0eGF0dHIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGdldHhhdHRyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9nZXR4YXR0cgogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2luaXRfbW9kdWxlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUwppbmRleCA0MmVjNzY1Li5jYzFhMGRhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGluaXRfbW9kdWxlKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9pbml0X21vZHVsZQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2lub3RpZnlfYWRkX3dhdGNoLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUwppbmRleCAwNjY4MTZjLi5mYmM4ZGQ0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGlub3RpZnlfYWRkX3dhdGNoKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9pbm90aWZ5X2FkZF93YXRjaAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2lub3RpZnlfaW5pdDEuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9pbm90aWZ5X2luaXQxLlMKaW5kZXggZDZiZWU4Yy4uNTcyNmQwYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2lub3RpZnlfaW5pdDEuUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5vdGlmeV9pbml0MS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoaW5vdGlmeV9pbml0MSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfaW5vdGlmeV9pbml0MQogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2lub3RpZnlfcm1fd2F0Y2guUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9pbm90aWZ5X3JtX3dhdGNoLlMKaW5kZXggZWU5YzcwZi4uMzdlYWJjZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2lub3RpZnlfcm1fd2F0Y2guUworKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW5vdGlmeV9ybV93YXRjaC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoaW5vdGlmeV9ybV93YXRjaCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfaW5vdGlmeV9ybV93YXRjaAogICAgIHN2YyAgICAgIzAKIAotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KICAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCiAgICAgY25lZyAgICB4MCwgeDAsIGhpCiAgICAgYi5oaSAgICBfX3NldF9lcnJubwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2lvcHJpb19nZXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhNGE3NDkuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2lvcHJpb19nZXQuUworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLS8qIEdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weS4gRG8gbm90IGVkaXQuICovCi0KLSNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KLQotRU5UUlkoaW9wcmlvX2dldCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQotICAgIG1vdiAgICAgeDgsIF9fTlJfaW9wcmlvX2dldAotICAgIHN2YyAgICAgIzAKLQotICAgIGxkcCAgICAgeDI5LCB4MzAsIFtzcF0sICMxNgotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMAotICAgIC5jZmlfcmVzdG9yZSB4MjkKLSAgICAuY2ZpX3Jlc3RvcmUgeDMwCi0KLSAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCi0gICAgY25lZyAgICB4MCwgeDAsIGhpCi0gICAgYi5oaSAgICBfX3NldF9lcnJubwotCi0gICAgcmV0Ci1FTkQoaW9wcmlvX2dldCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9pb3ByaW9fc2V0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvaW9wcmlvX3NldC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjQ4ZjEyLi4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9pb3ByaW9fc2V0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0vKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLUVOVFJZKGlvcHJpb19zZXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KLSAgICBtb3YgICAgIHg4LCBfX05SX2lvcHJpb19zZXQKLSAgICBzdmMgICAgICMwCi0KLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCi0gICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQotICAgIGNuZWcgICAgeDAsIHgwLCBoaQotICAgIGIuaGkgICAgX19zZXRfZXJybm8KLQotICAgIHJldAotRU5EKGlvcHJpb19zZXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMva2lsbC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2tpbGwuUwppbmRleCAxNWMzOTliLi43ZmMyYzVhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMva2lsbC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9raWxsLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShraWxsKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9raWxsCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMva2xvZ2N0bC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2tsb2djdGwuUwppbmRleCAxZDE2MWVjLi5hYmJlZTU1IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMva2xvZ2N0bC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9rbG9nY3RsLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShrbG9nY3RsKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zeXNsb2cKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9sZ2V0eGF0dHIuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9sZ2V0eGF0dHIuUwppbmRleCAyNzk5Mjg1Li5lMWE3NjBjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbGdldHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xnZXR4YXR0ci5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobGdldHhhdHRyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9sZ2V0eGF0dHIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9saW5rYXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9saW5rYXQuUwppbmRleCBlNjVhYTNmLi5jM2UyY2Q4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbGlua2F0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xpbmthdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobGlua2F0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9saW5rYXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9saXN0ZW4uUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9saXN0ZW4uUwppbmRleCA0NGFlMjg4Li45YjdiZTI4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbGlzdGVuLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xpc3Rlbi5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobGlzdGVuKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9saXN0ZW4KICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9saXN0eGF0dHIuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9saXN0eGF0dHIuUwppbmRleCBiMzFkMjJjLi5hNWU1NWM3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbGlzdHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xpc3R4YXR0ci5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobGlzdHhhdHRyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9saXN0eGF0dHIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9sbGlzdHhhdHRyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbGxpc3R4YXR0ci5TCmluZGV4IGZkY2FmZGUuLjQ0N2UyMDggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9sbGlzdHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xsaXN0eGF0dHIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKGxsaXN0eGF0dHIpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX2xsaXN0eGF0dHIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9scmVtb3ZleGF0dHIuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9scmVtb3ZleGF0dHIuUwppbmRleCA3NDFmYTg2Li4xZjYyMGRiIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xyZW1vdmV4YXR0ci5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobHJlbW92ZXhhdHRyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9scmVtb3ZleGF0dHIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9sc2Vlay5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xzZWVrLlMKaW5kZXggM2QxNmU3NS4uMWI4NThiMiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xzZWVrLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xzZWVrLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShsc2VlaykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfbHNlZWsKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9sc2V0eGF0dHIuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9sc2V0eGF0dHIuUwppbmRleCBhN2ZlMWRmLi44MzE1YmJhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbHNldHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL2xzZXR4YXR0ci5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobHNldHhhdHRyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9sc2V0eGF0dHIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tYWR2aXNlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbWFkdmlzZS5TCmluZGV4IDhlZWQyNzQuLjE3MjgyYzAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tYWR2aXNlLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21hZHZpc2UuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKG1hZHZpc2UpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX21hZHZpc2UKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9taW5jb3JlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbWluY29yZS5TCmluZGV4IDIxZGJlMTQuLmFiZGNmNmMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9taW5jb3JlLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21pbmNvcmUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKG1pbmNvcmUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX21pbmNvcmUKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9ta2RpcmF0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbWtkaXJhdC5TCmluZGV4IGVmZDk3ODYuLmQ2YmFmY2EgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9ta2RpcmF0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21rZGlyYXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKG1rZGlyYXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX21rZGlyYXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9ta25vZGF0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbWtub2RhdC5TCmluZGV4IDFiZjQyZDAuLjU5OGU3ODkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9ta25vZGF0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21rbm9kYXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKG1rbm9kYXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX21rbm9kYXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tbG9jay5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21sb2NrLlMKaW5kZXggZTA5ZTdmYy4uNjMxY2UwMiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21sb2NrLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21sb2NrLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShtbG9jaykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfbWxvY2sKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tbG9ja2FsbC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21sb2NrYWxsLlMKaW5kZXggYmZiMmI2MC4uNDJkYWM5ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21sb2NrYWxsLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21sb2NrYWxsLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShtbG9ja2FsbCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfbWxvY2thbGwKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tbWFwLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbW1hcC5TCmluZGV4IDQzNzY5OGEuLmRhMThlMTAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tbWFwLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21tYXAuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKG1tYXApCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX21tYXAKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tb3VudC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21vdW50LlMKaW5kZXggMzQxNzBkOC4uYzQzYTcxZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21vdW50LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21vdW50LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShtb3VudCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfbW91bnQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tcHJvdGVjdC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21wcm90ZWN0LlMKaW5kZXggY2RiNGJjOC4uYTdkMjZkZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21wcm90ZWN0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21wcm90ZWN0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShtcHJvdGVjdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfbXByb3RlY3QKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tcmVtYXAuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tcmVtYXAuUwppbmRleCA2MDViMzlkLi4zMzdiYmFlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbXJlbWFwLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21yZW1hcC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobXJlbWFwKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9tcmVtYXAKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tc3luYy5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21zeW5jLlMKaW5kZXggZTUxMWU4Ni4uYzU0Nzk3ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21zeW5jLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL21zeW5jLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShtc3luYykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfbXN5bmMKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tdW5sb2NrLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbXVubG9jay5TCmluZGV4IGY4MzdjOWMuLmIxZWMwMTYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tdW5sb2NrLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL211bmxvY2suUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKG11bmxvY2spCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX211bmxvY2sKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tdW5sb2NrYWxsLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbXVubG9ja2FsbC5TCmluZGV4IDkzZTkxMjEuLmY5MTYyYTggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tdW5sb2NrYWxsLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL211bmxvY2thbGwuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKG11bmxvY2thbGwpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX211bmxvY2thbGwKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tdW5tYXAuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9tdW5tYXAuUwppbmRleCBmMmIyMmJkLi42YmQ1YWZlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbXVubWFwLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL211bm1hcC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobXVubWFwKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9tdW5tYXAKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9uYW5vc2xlZXAuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9uYW5vc2xlZXAuUwppbmRleCBlMzMzMTFhLi5jODRhY2NjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvbmFub3NsZWVwLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL25hbm9zbGVlcC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkobmFub3NsZWVwKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9uYW5vc2xlZXAKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9wZXJzb25hbGl0eS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKaW5kZXggYzM3Y2FlMi4uMDJiY2Y5YiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShwZXJzb25hbGl0eSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcGVyc29uYWxpdHkKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9waXBlMi5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3BpcGUyLlMKaW5kZXggYWIyZTI1OS4uZjRkYTM3ZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3BpcGUyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3BpcGUyLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShwaXBlMikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcGlwZTIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9wcmN0bC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3ByY3RsLlMKaW5kZXggZGQ0NmZkNC4uMmU2ZGNhNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3ByY3RsLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3ByY3RsLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShwcmN0bCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcHJjdGwKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9wcmVhZDY0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvcHJlYWQ2NC5TCmluZGV4IGRkYzZjMTIuLjJhYmE1OTYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9wcmVhZDY0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3ByZWFkNjQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHByZWFkNjQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3ByZWFkNjQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9wcmxpbWl0NjQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9wcmxpbWl0NjQuUwppbmRleCAzOWQzMWIwLi5hMjE3M2Q5IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvcHJsaW1pdDY0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3BybGltaXQ2NC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkocHJsaW1pdDY0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9wcmxpbWl0NjQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9wd3JpdGU2NC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3B3cml0ZTY0LlMKaW5kZXggODFlMmNmNy4uNTY3NGE3YyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3B3cml0ZTY0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3B3cml0ZTY0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShwd3JpdGU2NCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcHdyaXRlNjQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWFkLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvcmVhZC5TCmluZGV4IGM1Mjk1NzYuLjkwNmZiOTggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWFkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlYWQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHJlYWQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3JlYWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWFkYWhlYWQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWFkYWhlYWQuUwppbmRleCBlODM5NGNjLi4yOTk0YjgzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvcmVhZGFoZWFkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlYWRhaGVhZC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkocmVhZGFoZWFkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9yZWFkYWhlYWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWFkbGlua2F0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvcmVhZGxpbmthdC5TCmluZGV4IGQ3Y2FkY2MuLjE3ODJjOTQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWFkbGlua2F0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlYWRsaW5rYXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHJlYWRsaW5rYXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3JlYWRsaW5rYXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWFkdi5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlYWR2LlMKaW5kZXggOThkMDc0Mi4uYmM5ODhkNCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlYWR2LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlYWR2LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShyZWFkdikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcmVhZHYKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWN2ZnJvbS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlY3Zmcm9tLlMKaW5kZXggNjMxODFmMS4uMTZmOTdkNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlY3Zmcm9tLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlY3Zmcm9tLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShyZWN2ZnJvbSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcmVjdmZyb20KICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWN2bW1zZy5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlY3ZtbXNnLlMKaW5kZXggY2IxZmJmYy4uYmQxNDk1YSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlY3ZtbXNnLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlY3ZtbXNnLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShyZWN2bW1zZykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcmVjdm1tc2cKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWN2bXNnLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvcmVjdm1zZy5TCmluZGV4IDhhOTFhNWYuLmM5Yjc4YzQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZWN2bXNnLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlY3Ztc2cuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHJlY3Ztc2cpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3JlY3Ztc2cKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZW1vdmV4YXR0ci5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKaW5kZXggNmZiNTU3YS4uYzEyY2M4NCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShyZW1vdmV4YXR0cikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcmVtb3ZleGF0dHIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9yZW5hbWVhdC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlbmFtZWF0LlMKaW5kZXggZTRlZmViOC4uY2Y3OTQ3MiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlbmFtZWF0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3JlbmFtZWF0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShyZW5hbWVhdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfcmVuYW1lYXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21heC5TCmluZGV4IDc0ZjkxOWIuLjY3MmQwZWEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9tYXguUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHNjaGVkX2dldF9wcmlvcml0eV9tYXgpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9tYXgKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWluLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCmluZGV4IGQwNDNiM2IuLmY1Y2YxZjMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWluLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9taW4uUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHNjaGVkX2dldF9wcmlvcml0eV9taW4pCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9taW4KICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9nZXRwYXJhbS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX2dldHBhcmFtLlMKaW5kZXggZmVkY2VjOC4uN2ZmZThmYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX2dldHBhcmFtLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX2dldHBhcmFtLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzY2hlZF9nZXRwYXJhbSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2NoZWRfZ2V0cGFyYW0KICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9nZXRzY2hlZHVsZXIuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9nZXRzY2hlZHVsZXIuUwppbmRleCAxMjI1NjAxLi5iNjliOGMwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2NoZWRfZ2V0c2NoZWR1bGVyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX2dldHNjaGVkdWxlci5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2NoZWRfZ2V0c2NoZWR1bGVyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwuUwppbmRleCA3OTZlZGRhLi4wYmUxNGJhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2NoZWRfcnJfZ2V0X2ludGVydmFsLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2NoZWRfcnJfZ2V0X2ludGVydmFsKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9zZXRhZmZpbml0eS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3NldGFmZmluaXR5LlMKaW5kZXggMmE3MDIyZC4uZjVjYmM3NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3NldGFmZmluaXR5LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3NldGFmZmluaXR5LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzY2hlZF9zZXRhZmZpbml0eSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2NoZWRfc2V0YWZmaW5pdHkKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9zZXRwYXJhbS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKaW5kZXggZGQ4MmExMC4uY2ZmNjRmNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzY2hlZF9zZXRwYXJhbSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2NoZWRfc2V0cGFyYW0KICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUwppbmRleCAyNWUxZTM2Li4zMTYwMGEwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2NoZWRfc2V0c2NoZWR1bGVyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3NldHNjaGVkdWxlci5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2NoZWRfc2V0c2NoZWR1bGVyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zY2hlZF95aWVsZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMKaW5kZXggY2JlZTAyMC4uMjFhZDYwMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzY2hlZF95aWVsZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2NoZWRfeWllbGQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZW5kZmlsZS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmRmaWxlLlMKaW5kZXggMTcwNWQzYy4uZGI5MGNhYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmRmaWxlLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmRmaWxlLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzZW5kZmlsZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2VuZGZpbGUKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZW5kbW1zZy5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmRtbXNnLlMKaW5kZXggMjI3NzExMC4uZTg1Nzk4YSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmRtbXNnLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmRtbXNnLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzZW5kbW1zZykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2VuZG1tc2cKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZW5kbXNnLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2VuZG1zZy5TCmluZGV4IDk2ZmNiOWEuLjI1ZWZmODQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZW5kbXNnLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmRtc2cuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHNlbmRtc2cpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NlbmRtc2cKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZW5kdG8uUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZW5kdG8uUwppbmRleCA2NzU4OWJhLi4zOWU0ZTRlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2VuZHRvLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NlbmR0by5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2VuZHRvKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZW5kdG8KICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRnaWQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRnaWQuUwppbmRleCBmYmFhNzg1Li5hOTc4OWY3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0Z2lkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldGdpZC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0Z2lkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXRnaWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRncm91cHMuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRncm91cHMuUwppbmRleCA0ODAzNWI2Li5jZTliZjAxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0Z3JvdXBzLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldGdyb3Vwcy5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0Z3JvdXBzKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXRncm91cHMKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRpdGltZXIuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRpdGltZXIuUwppbmRleCA0MmFmOTRiLi5kOGUzZDdlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0aXRpbWVyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldGl0aW1lci5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0aXRpbWVyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXRpdGltZXIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRucy5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldG5zLlMKaW5kZXggZjY5NTU5Ny4uNjE1Zjg4OCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldG5zLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldG5zLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzZXRucykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2V0bnMKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRwZ2lkLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0cGdpZC5TCmluZGV4IDU2NTMyNTYuLjYwMTUyNjQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRwZ2lkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHBnaWQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHNldHBnaWQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NldHBnaWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRwcmlvcml0eS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHByaW9yaXR5LlMKaW5kZXggMTIxYmNhYS4uZDJmNTE3ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHByaW9yaXR5LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHByaW9yaXR5LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzZXRwcmlvcml0eSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2V0cHJpb3JpdHkKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRyZWdpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJlZ2lkLlMKaW5kZXggNjM4OTU1MS4uN2IzMzNiZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJlZ2lkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJlZ2lkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzZXRyZWdpZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2V0cmVnaWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRyZXNnaWQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRyZXNnaWQuUwppbmRleCBiZjc4MjQ5Li4zOTUwNGJkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0cmVzZ2lkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJlc2dpZC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0cmVzZ2lkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXRyZXNnaWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRyZXN1aWQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRyZXN1aWQuUwppbmRleCA4MzIwMGRhLi41YWNiZmZkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0cmVzdWlkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJlc3VpZC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0cmVzdWlkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXRyZXN1aWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRyZXVpZC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJldWlkLlMKaW5kZXggMjI1M2VlYy4uNjM2MzBkNiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJldWlkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJldWlkLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzZXRyZXVpZCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2V0cmV1aWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRybGltaXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRybGltaXQuUwppbmRleCAwMzRhZTM2Li5mOWY1NmE2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0cmxpbWl0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHJsaW1pdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0cmxpbWl0KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXRybGltaXQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRzaWQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRzaWQuUwppbmRleCA2NDEyM2RmLi4wNGMyOGUzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0c2lkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHNpZC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0c2lkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXRzaWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRzb2Nrb3B0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0c29ja29wdC5TCmluZGV4IGZlOGRhMjIuLjBlYmM2ZDAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXRzb2Nrb3B0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHNvY2tvcHQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHNldHNvY2tvcHQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NldHNvY2tvcHQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXR0aW1lb2ZkYXkuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXR0aW1lb2ZkYXkuUwppbmRleCA1MGRlYmY5Li40NzRlNDBkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0dGltZW9mZGF5LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHRpbWVvZmRheS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0dGltZW9mZGF5KQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXR0aW1lb2ZkYXkKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXR1aWQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXR1aWQuUwppbmRleCAwYTlhZGJlLi5mZTUyOTIxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc2V0dWlkLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHVpZC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkoc2V0dWlkKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zZXR1aWQKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zZXR4YXR0ci5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHhhdHRyLlMKaW5kZXggZWJmZDYwNy4uOGQwYjQxNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NldHhhdHRyLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzZXR4YXR0cikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2V0eGF0dHIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zaHV0ZG93bi5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NodXRkb3duLlMKaW5kZXggNmU4NzhkNi4uZTM1Y2RlYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NodXRkb3duLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NodXRkb3duLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzaHV0ZG93bikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2h1dGRvd24KICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zaWdhbHRzdGFjay5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMKaW5kZXggNDY3OTRkNC4uNmEzODIwMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzaWdhbHRzdGFjaykKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc2lnYWx0c3RhY2sKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zb2NrZXRwYWlyLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc29ja2V0cGFpci5TCmluZGV4IGM0MmZmMjQuLmRjZDcyMjMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zb2NrZXRwYWlyLlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NvY2tldHBhaXIuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHNvY2tldHBhaXIpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3NvY2tldHBhaXIKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zcGxpY2UuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zcGxpY2UuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDM4MDVhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3NwbGljZS5TCkBAIC0wLDAgKzEsMTQgQEAKKy8qIEdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weS4gRG8gbm90IGVkaXQuICovCisKKyNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KKworRU5UUlkoc3BsaWNlKQorICAgIG1vdiAgICAgeDgsIF9fTlJfc3BsaWNlCisgICAgc3ZjICAgICAjMAorCisgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQorICAgIGNuZWcgICAgeDAsIHgwLCBoaQorICAgIGIuaGkgICAgX19zZXRfZXJybm8KKworICAgIHJldAorRU5EKHNwbGljZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zdGF0ZnM2NC5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N0YXRmczY0LlMKaW5kZXggNjY2NjJlZS4uNTU2MzNjMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N0YXRmczY0LlMKKysrIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N0YXRmczY0LlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzdGF0ZnM2NCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc3RhdGZzCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3dhcG9mZi5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N3YXBvZmYuUwppbmRleCAxZDQ2NWIwLi5kY2VmNGFmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3dhcG9mZi5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zd2Fwb2ZmLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzd2Fwb2ZmKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zd2Fwb2ZmCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3dhcG9uLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3dhcG9uLlMKaW5kZXggN2U1Zjg1MC4uYWVmNzYyNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N3YXBvbi5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zd2Fwb24uUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHN3YXBvbikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc3dhcG9uCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3ltbGlua2F0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3ltbGlua2F0LlMKaW5kZXggMDA4MWNmMi4uOTgzMDg2NSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N5bWxpbmthdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zeW1saW5rYXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHN5bWxpbmthdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfc3ltbGlua2F0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3luYy5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N5bmMuUwppbmRleCA2N2JjNTU0Li4zZWYwNDYwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3luYy5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zeW5jLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzeW5jKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zeW5jCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3lzaW5mby5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3N5c2luZm8uUwppbmRleCAwNzk3YTM5Li43ZGJlMTUyIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvc3lzaW5mby5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy9zeXNpbmZvLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWShzeXNpbmZvKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl9zeXNpbmZvCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGVlLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGVlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDczMDA3NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90ZWUuUwpAQCAtMCwwICsxLDE0IEBACisvKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLworCisjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CisKK0VOVFJZKHRlZSkKKyAgICBtb3YgICAgIHg4LCBfX05SX3RlZQorICAgIHN2YyAgICAgIzAKKworICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKKyAgICBjbmVnICAgIHgwLCB4MCwgaGkKKyAgICBiLmhpICAgIF9fc2V0X2Vycm5vCisKKyAgICByZXQKK0VORCh0ZWUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGdraWxsLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGdraWxsLlMKaW5kZXggOTM2NmM3MC4uNDc3YzQ3NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3Rna2lsbC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90Z2tpbGwuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHRna2lsbCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfdGdraWxsCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGltZXJmZF9jcmVhdGUuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcmZkX2NyZWF0ZS5TCmluZGV4IDFlOWQyZTMuLjgzYjU5MTAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcmZkX2NyZWF0ZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcmZkX2NyZWF0ZS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkodGltZXJmZF9jcmVhdGUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3RpbWVyZmRfY3JlYXRlCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGltZXJmZF9nZXR0aW1lLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGltZXJmZF9nZXR0aW1lLlMKaW5kZXggNTZkN2Y5Ni4uMjUzY2I3OSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3RpbWVyZmRfZ2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcmZkX2dldHRpbWUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHRpbWVyZmRfZ2V0dGltZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfdGltZXJmZF9nZXR0aW1lCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGltZXJmZF9zZXR0aW1lLlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGltZXJmZF9zZXR0aW1lLlMKaW5kZXggMjlhZjBmMS4uODg3MjQ4MSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3RpbWVyZmRfc2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcmZkX3NldHRpbWUuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHRpbWVyZmRfc2V0dGltZSkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfdGltZXJmZF9zZXR0aW1lCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdGltZXMuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcy5TCmluZGV4IDk0ODcxODYuLjMzYzdkNTUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcy5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90aW1lcy5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkodGltZXMpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3RpbWVzCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdHJ1bmNhdGUuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90cnVuY2F0ZS5TCmluZGV4IDNiYmUzNTYuLmYxNTI1M2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90cnVuY2F0ZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy90cnVuY2F0ZS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkodHJ1bmNhdGUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3RydW5jYXRlCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdW1hc2suUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bWFzay5TCmluZGV4IGNhNzIwOTIuLjhiOTA3YjQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bWFzay5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bWFzay5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkodW1hc2spCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3VtYXNrCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdW1vdW50Mi5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3Vtb3VudDIuUwppbmRleCBhOTU5NjI1Li41NjQ2ZGJhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdW1vdW50Mi5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bW91bnQyLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWSh1bW91bnQyKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl91bW91bnQyCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdW5hbWUuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bmFtZS5TCmluZGV4IDJmODc1NjMuLjA5ZWMwOTYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bmFtZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bmFtZS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkodW5hbWUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3VuYW1lCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdW5saW5rYXQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bmxpbmthdC5TCmluZGV4IDAwMjU3MjYuLjk5MmY2NzUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bmxpbmthdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bmxpbmthdC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkodW5saW5rYXQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3VubGlua2F0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdW5zaGFyZS5TIGIvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3Vuc2hhcmUuUwppbmRleCA1NTQ2MmI0Li4xMDYyZGNkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdW5zaGFyZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91bnNoYXJlLlMKQEAgLTMsMjAgKzMsOSBAQAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCiBFTlRSWSh1bnNoYXJlKQotICAgIHN0cCAgICAgeDI5LCB4MzAsIFtzcCwgIy0xNl0hCi0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAxNgotICAgIC5jZmlfcmVsX29mZnNldCB4MjksIDAKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDMwLCA4Ci0gICAgbW92ICAgICB4MjksICBzcAotCiAgICAgbW92ICAgICB4OCwgX19OUl91bnNoYXJlCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdXRpbWVuc2F0LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdXRpbWVuc2F0LlMKaW5kZXggYWE1Y2ZiZi4uOGEyNWVkNiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3V0aW1lbnNhdC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy91dGltZW5zYXQuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHV0aW1lbnNhdCkKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfdXRpbWVuc2F0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdm1zcGxpY2UuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy92bXNwbGljZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YmVjM2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvdm1zcGxpY2UuUwpAQCAtMCwwICsxLDE0IEBACisvKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLworCisjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CisKK0VOVFJZKHZtc3BsaWNlKQorICAgIG1vdiAgICAgeDgsIF9fTlJfdm1zcGxpY2UKKyAgICBzdmMgICAgICMwCisKKyAgICBjbW4gICAgIHgwLCAjKE1BWF9FUlJOTyArIDEpCisgICAgY25lZyAgICB4MCwgeDAsIGhpCisgICAgYi5oaSAgICBfX3NldF9lcnJubworCisgICAgcmV0CitFTkQodm1zcGxpY2UpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvd2FpdDQuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy93YWl0NC5TCmluZGV4IDkzMTgzZTUuLmEwZDVkNjIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy93YWl0NC5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy93YWl0NC5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkod2FpdDQpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3dhaXQ0CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvd3JpdGUuUyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy93cml0ZS5TCmluZGV4IGI3Mjg4ZDEuLmQ2NDU1MmUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy93cml0ZS5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy93cml0ZS5TCkBAIC0zLDIwICszLDkgQEAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAogRU5UUlkod3JpdGUpCi0gICAgc3RwICAgICB4MjksIHgzMCwgW3NwLCAjLTE2XSEKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDE2Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IHgyOSwgMAotICAgIC5jZmlfcmVsX29mZnNldCB4MzAsIDgKLSAgICBtb3YgICAgIHgyOSwgIHNwCi0KICAgICBtb3YgICAgIHg4LCBfX05SX3dyaXRlCiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvd3JpdGV2LlMgYi9saWJjL2FyY2gtYXJtNjQvc3lzY2FsbHMvd3JpdGV2LlMKaW5kZXggMTNhZjQ1NC4uNDVkNWM4ZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLWFybTY0L3N5c2NhbGxzL3dyaXRldi5TCisrKyBiL2xpYmMvYXJjaC1hcm02NC9zeXNjYWxscy93cml0ZXYuUwpAQCAtMywyMCArMyw5IEBACiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKIEVOVFJZKHdyaXRldikKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsIF9fTlJfd3JpdGV2CiAgICAgc3ZjICAgICAjMAogCi0gICAgbGRwICAgICB4MjksIHgzMCwgW3NwXSwgIzE2Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCAwCi0gICAgLmNmaV9yZXN0b3JlIHgyOQotICAgIC5jZmlfcmVzdG9yZSB4MzAKLQogICAgIGNtbiAgICAgeDAsICMoTUFYX0VSUk5PICsgMSkKICAgICBjbmVnICAgIHgwLCB4MCwgaGkKICAgICBiLmhpICAgIF9fc2V0X2Vycm5vCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUyBiL2xpYmMvYXJjaC1taXBzL2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCmluZGV4IDdiMTM4YWUuLjRiNDQ5OGQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1taXBzL2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCisrKyBiL2xpYmMvYXJjaC1taXBzL2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCkBAIC02MCw4ICs2MCw4IEBACiAgICAgICAgIGx3CWEwLDAoc3ApCSMgIGZuCiAgICAgICAgIGx3CWExLDQoc3ApCSMgIGFyZwogCi0JIyB2b2lkIF9fYmlvbmljX2Nsb25lX2VudHJ5KGludCAoKmZ1bmMpKHZvaWQqKSwgdm9pZCAqYXJnKQotICAgICAgICBsYQl0OSxfX2Jpb25pY19jbG9uZV9lbnRyeQorCSMgdm9pZCBfX3N0YXJ0X3RocmVhZChpbnQgKCpmdW5jKSh2b2lkKiksIHZvaWQgKmFyZykKKyAgICAgICAgbGEJdDksX19zdGFydF90aHJlYWQKICAgICAgICAgagl0OQogCiAuTF9fZXJyb3JfYmM6CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9iaW9uaWMvbWVtY21wMTYuUyBiL2xpYmMvYXJjaC1taXBzL2Jpb25pYy9tZW1jbXAxNi5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOWQxNGE5Li4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC1taXBzL2Jpb25pYy9tZW1jbXAxNi5TCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLS8vIHU0IF9fbWVtY21wMTYoY29uc3QgdTIqLCBjb25zdCB1MiosIHNpemVfdCk7Ci1FTlRSWShfX21lbWNtcDE2KQotCWxpCXQwLDAKLQlsaQl0MSwwCi0JYmVxeglhMixkb25lCQkvKiAwIGxlbmd0aCBzdHJpbmcgKi8gCi0JYmVxCWEwLGExLGRvbmUJCS8qIHN0cmluZ3MgYXJlIGlkZW50aWNhbCAqLwotCi0JLyogVW5vcHRpbWlzZWQuLi4gKi8KLTE6CWxodQl0MCwwKGEwKQotCWxodQl0MSwwKGExKQotCWFkZHUJYTEsMgotCWJuZQl0MCx0MSxkb25lCi0JYWRkdQlhMCwyCi0Jc3VidQlhMiwxCi0JYm5leglhMiwxYgotCi1kb25lOgotCXN1YnUJdjAsdDAsdDEKLQlqCXJhCi1FTkQoX19tZW1jbXAxNikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL2Jpb25pYy92Zm9yay5TIGIvbGliYy9hcmNoLW1pcHMvYmlvbmljL3Zmb3JrLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2ZGU2OWUuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLW1pcHMvYmlvbmljL3Zmb3JrLlMKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotCi0vLyBUT0RPOiBtaXBzJyB1YXBpIHNpZ25hbC5oIGlzIG1pc3NpbmcgI2lmbmRlZiBfX0FTU0VNQkxZX18uCi0vLyAjaW5jbHVkZSA8YXNtL3NpZ25hbC5oPgotI2RlZmluZSBTSUdDSExEIDE4Ci0KLUVOVFJZKHZmb3JrKQotCS5zZXQJbm9yZW9yZGVyCi0JLmNwbG9hZAl0OQotCi0JbGkJYTAsIChDTE9ORV9WTSB8IENMT05FX1ZGT1JLIHwgU0lHQ0hMRCkKLQlsaQlhMSwgMAotCWxpCWEyLCAwCi0JbGkJYTMsIDAKLQlzdWJ1CXNwLCA4Ci0Jc3cJJDAsIDE2KHNwKQotCWxpCXYwLCBfX05SX2Nsb25lCi0Jc3lzY2FsbAotCWFkZHUJc3AsIDgKLQlibmV6CWEzLCAxZgotCSBtb3ZlCWEwLCB2MAotCi0JaglyYQotCSBub3AKLTE6Ci0JbGEJdDksIF9fc2V0X2Vycm5vCi0Jagl0OQotCSBub3AKLUVORCh2Zm9yaykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL21pcHMubWsgYi9saWJjL2FyY2gtbWlwcy9taXBzLm1rCmluZGV4IDAyNDQ3MTIuLjBhMzcxOGIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1taXBzL21pcHMubWsKKysrIGIvbGliYy9hcmNoLW1pcHMvbWlwcy5tawpAQCAtNSwxMyArNSwxMyBAQAogICAgIGJpb25pYy9sZWdhY3lfMzJfYml0X3N1cHBvcnQuY3BwIFwKICAgICBiaW9uaWMvbmRrX2NydWZ0LmNwcCBcCiAgICAgYmlvbmljL3RpbWU2NC5jIFwKKyAgICB1cHN0cmVhbS1vcGVuYnNkL2xpYi9saWJjL3N0ZGlvL3B1dHcuYyBcCiAKICMgVGhlc2UgYXJlIHNoYXJlZCBieSBhbGwgdGhlIDMyLWJpdCB0YXJnZXRzLCBidXQgbm90IHRoZSA2NC1iaXQgb25lcy4KIGxpYmNfYmlvbmljX3NyY19maWxlc19taXBzICs9IFwKICAgICAgYmlvbmljL21tYXAuY3BwCiAKIGxpYmNfY29tbW9uX3NyY19maWxlc19taXBzICs9IFwKLSAgICBiaW9uaWMvaW5kZXguY3BwIFwKICAgICBiaW9uaWMvbWVtY2hyLmMgXAogICAgIGJpb25pYy9tZW1jbXAuYyBcCiAgICAgYmlvbmljL21lbW1vdmUuYyBcCkBAIC02MCwxNiArNjAsMTYgQEAKICAgICBhcmNoLW1pcHMvYmlvbmljL2NhY2hlZmx1c2guY3BwIFwKICAgICBhcmNoLW1pcHMvYmlvbmljL19leGl0X3dpdGhfc3RhY2tfdGVhcmRvd24uUyBcCiAgICAgYXJjaC1taXBzL2Jpb25pYy9fX2dldF9zcC5TIFwKLSAgICBhcmNoLW1pcHMvYmlvbmljL21lbWNtcDE2LlMgXAogICAgIGFyY2gtbWlwcy9iaW9uaWMvX3NldGptcC5TIFwKICAgICBhcmNoLW1pcHMvYmlvbmljL3NldGptcC5TIFwKICAgICBhcmNoLW1pcHMvYmlvbmljL3NpZ3NldGptcC5TIFwKICAgICBhcmNoLW1pcHMvYmlvbmljL3N5c2NhbGwuUyBcCi0gICAgYXJjaC1taXBzL2Jpb25pYy92Zm9yay5TIFwKICAgICBhcmNoLW1pcHMvc3RyaW5nL21lbWNweS5TIFwKICAgICBhcmNoLW1pcHMvc3RyaW5nL21lbXNldC5TIFwKICAgICBhcmNoLW1pcHMvc3RyaW5nL21pcHNfc3RybGVuLmMgXAogCitsaWJjX25ldGJzZF9zcmNfZmlsZXNfbWlwcyA6PSBcCisgICAgdXBzdHJlYW0tbmV0YnNkL2NvbW1vbi9saWIvbGliYy9oYXNoL3NoYTEvc2hhMS5jIFwKIAogbGliY19jcnRfdGFyZ2V0X2NmbGFnc19taXBzIDo9IFwKICAgICAkKCQobXlfMm5kX2FyY2hfcHJlZml4KVRBUkdFVF9HTE9CQUxfQ0ZMQUdTKSBcCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRkZW50cy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRkZW50czY0LlMKc2ltaWxhcml0eSBpbmRleCA4NyUKcmVuYW1lIGZyb20gbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZGVudHMuUwpyZW5hbWUgdG8gbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRkZW50czY0LlMKaW5kZXggY2U5Mjg4Ni4uMTM2YjQwOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZGVudHMuUworKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2dldGRlbnRzNjQuUwpAQCAtMiw3ICsyLDcgQEAKIAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCi1FTlRSWShnZXRkZW50cykKK0VOVFJZKF9fZ2V0ZGVudHM2NCkKICAgICAuc2V0IG5vcmVvcmRlcgogICAgIC5jcGxvYWQgdDkKICAgICBsaSB2MCwgX19OUl9nZXRkZW50czY0CkBAIC0xNiw0ICsxNiw0IEBACiAgICAgaiB0OQogICAgIG5vcAogICAgIC5zZXQgcmVvcmRlcgotRU5EKGdldGRlbnRzKQorRU5EKF9fZ2V0ZGVudHM2NCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRwaWQuUwpzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBsaWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUwpyZW5hbWUgdG8gbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRwaWQuUwppbmRleCBhMDUzZjViLi41MmNmNmY0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2dldHBpZC5TCkBAIC0yLDcgKzIsNyBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldHBpZCkKK0VOVFJZKF9fZ2V0cGlkKQogICAgIC5zZXQgbm9yZW9yZGVyCiAgICAgLmNwbG9hZCB0OQogICAgIGxpIHYwLCBfX05SX2dldHBpZApAQCAtMTYsNCArMTYsNCBAQAogICAgIGogdDkKICAgICBub3AKICAgICAuc2V0IHJlb3JkZXIKLUVORChnZXRwaWQpCitFTkQoX19nZXRwaWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fZ2V0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiYzhiMTcuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW9wcmlvX2dldC5TCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLyogR2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5LiBEbyBub3QgZWRpdC4gKi8KLQotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotCi1FTlRSWShpb3ByaW9fZ2V0KQotICAgIC5zZXQgbm9yZW9yZGVyCi0gICAgLmNwbG9hZCB0OQotICAgIGxpIHYwLCBfX05SX2lvcHJpb19nZXQKLSAgICBzeXNjYWxsCi0gICAgYm5leiBhMywgMWYKLSAgICBtb3ZlIGEwLCB2MAotICAgIGogcmEKLSAgICBub3AKLTE6Ci0gICAgbGEgdDksX19zZXRfZXJybm8KLSAgICBqIHQ5Ci0gICAgbm9wCi0gICAgLnNldCByZW9yZGVyCi1FTkQoaW9wcmlvX2dldCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lvcHJpb19zZXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lvcHJpb19zZXQuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDAzMjBlZC4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fc2V0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0vKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLUVOVFJZKGlvcHJpb19zZXQpCi0gICAgLnNldCBub3Jlb3JkZXIKLSAgICAuY3Bsb2FkIHQ5Ci0gICAgbGkgdjAsIF9fTlJfaW9wcmlvX3NldAotICAgIHN5c2NhbGwKLSAgICBibmV6IGEzLCAxZgotICAgIG1vdmUgYTAsIHYwCi0gICAgaiByYQotICAgIG5vcAotMToKLSAgICBsYSB0OSxfX3NldF9lcnJubwotICAgIGogdDkKLSAgICBub3AKLSAgICAuc2V0IHJlb3JkZXIKLUVORChpb3ByaW9fc2V0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zcGxpY2UuUwpzaW1pbGFyaXR5IGluZGV4IDgyJQpjb3B5IGZyb20gbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMKY29weSB0byBsaWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zcGxpY2UuUwppbmRleCBhMDUzZjViLi5kMzQ0YTZjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zcGxpY2UuUwpAQCAtMiwxMCArMiwxMCBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldHBpZCkKK0VOVFJZKHNwbGljZSkKICAgICAuc2V0IG5vcmVvcmRlcgogICAgIC5jcGxvYWQgdDkKLSAgICBsaSB2MCwgX19OUl9nZXRwaWQKKyAgICBsaSB2MCwgX19OUl9zcGxpY2UKICAgICBzeXNjYWxsCiAgICAgYm5leiBhMywgMWYKICAgICBtb3ZlIGEwLCB2MApAQCAtMTYsNCArMTYsNCBAQAogICAgIGogdDkKICAgICBub3AKICAgICAuc2V0IHJlb3JkZXIKLUVORChnZXRwaWQpCitFTkQoc3BsaWNlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy90ZWUuUwpzaW1pbGFyaXR5IGluZGV4IDgyJQpjb3B5IGZyb20gbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMKY29weSB0byBsaWJjL2FyY2gtbWlwcy9zeXNjYWxscy90ZWUuUwppbmRleCBhMDUzZjViLi5lNTE3MzJkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy90ZWUuUwpAQCAtMiwxMCArMiwxMCBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldHBpZCkKK0VOVFJZKHRlZSkKICAgICAuc2V0IG5vcmVvcmRlcgogICAgIC5jcGxvYWQgdDkKLSAgICBsaSB2MCwgX19OUl9nZXRwaWQKKyAgICBsaSB2MCwgX19OUl90ZWUKICAgICBzeXNjYWxsCiAgICAgYm5leiBhMywgMWYKICAgICBtb3ZlIGEwLCB2MApAQCAtMTYsNCArMTYsNCBAQAogICAgIGogdDkKICAgICBub3AKICAgICAuc2V0IHJlb3JkZXIKLUVORChnZXRwaWQpCitFTkQodGVlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy92bXNwbGljZS5TCnNpbWlsYXJpdHkgaW5kZXggODAlCmNvcHkgZnJvbSBsaWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUwpjb3B5IHRvIGxpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3Ztc3BsaWNlLlMKaW5kZXggYTA1M2Y1Yi4uMjRkYTUxNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdm1zcGxpY2UuUwpAQCAtMiwxMCArMiwxMCBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldHBpZCkKK0VOVFJZKHZtc3BsaWNlKQogICAgIC5zZXQgbm9yZW9yZGVyCiAgICAgLmNwbG9hZCB0OQotICAgIGxpIHYwLCBfX05SX2dldHBpZAorICAgIGxpIHYwLCBfX05SX3Ztc3BsaWNlCiAgICAgc3lzY2FsbAogICAgIGJuZXogYTMsIDFmCiAgICAgbW92ZSBhMCwgdjAKQEAgLTE2LDQgKzE2LDQgQEAKICAgICBqIHQ5CiAgICAgbm9wCiAgICAgLnNldCByZW9yZGVyCi1FTkQoZ2V0cGlkKQorRU5EKHZtc3BsaWNlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHM2NC9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUyBiL2xpYmMvYXJjaC1taXBzNjQvYmlvbmljL19fYmlvbmljX2Nsb25lLlMKaW5kZXggODY4NzkwNi4uNGYwNTNmOSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLW1pcHM2NC9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUworKysgYi9saWJjL2FyY2gtbWlwczY0L2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCkBAIC03OCwxMCArNzgsMTAgQEAKIAkjIENsZWFyIHJldHVybiBhZGRyZXNzIGluIGNoaWxkIHNvIHdlIGRvbid0IHVud2luZCBmdXJ0aGVyLgogCWxpCXJhLDAKIAotCSMgdm9pZCBfX2Jpb25pY19jbG9uZV9lbnRyeShpbnQgKCpmdW5jKSh2b2lkKiksIHZvaWQgKmFyZykKKwkjIHZvaWQgX19zdGFydF90aHJlYWQoaW50ICgqZnVuYykodm9pZCopLCB2b2lkICphcmcpCiAJUFRSX0wJYTAsRlJBTUVfRk4oc3ApCQkjICBmbgogCVBUUl9MCWExLEZSQU1FX0FSRyhzcCkJIyAgYXJnCi0JTEEJdDksX19iaW9uaWNfY2xvbmVfZW50cnkKKwlMQQl0OSxfX3N0YXJ0X3RocmVhZAogCVJFU1RPUkVfR1A2NAogCS8qCiAJICogRm9yIE8zMiBldGMgdGhlIGNoaWxkIHN0YWNrIG11c3QgaGF2ZSBzcGFjZSBmb3IgYTAuLmEzIHRvIGJlIHN0b3JlZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHM2NC9iaW9uaWMvZ2V0ZGVudHMuY3BwIGIvbGliYy9hcmNoLW1pcHM2NC9iaW9uaWMvZ2V0ZGVudHMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NmE2MWVjLi4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC1taXBzNjQvYmlvbmljL2dldGRlbnRzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCi0gKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCi0gKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUwotICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECi0gKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKLSAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotLyoKLSAqIFRoZSBNSVBTNjQgZ2V0ZGVudHM2NCgpIHN5c3RlbSBjYWxsIGlzIG9ubHkgcHJlc2VudCBpbiAzLjEwKyBrZXJuZWxzLgotICogSWYgdGhlIGdldGRlbnRzNjQoKSBzeXN0ZW0gY2FsbCBpcyBub3QgYXZhaWxhYmxlIGZhbGwgYmFjayB0byB1c2luZwotICogZ2V0ZGVudHMoKSBhbmQgbW9kaWZ5IHRoZSByZXN1bHQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIGdldGRlbnRzNjQoKS4KLSAqLwotCi0jaW5jbHVkZSA8ZGlyZW50Lmg+Ci0KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotCi0vKiBUaGUgbWlwc19nZXRkZW50cyB0eXBlIGlzIDY0Yml0IGNsZWFuICovCi1zdHJ1Y3QgbWlwc19kaXJlbnQgewotICAgICAgICB1aW50NjRfdCBkX2lubzsgICAgIC8qIElub2RlIG51bWJlciAqLwotICAgICAgICB1aW50NjRfdCBkX29mZjsgICAgIC8qIE9mZnNldCB0byBuZXh0IG1pcHNfZGlyZW50ICovCi0gICAgICAgIHVpbnQxNl90IGRfcmVjbGVuOyAgLyogTGVuZ3RoIG9mIHRoaXMgbWlwc19kaXJlbnQgKi8KLSAgICAgICAgY2hhciAgICAgZF9uYW1lW107ICAvKiBGaWxlbmFtZSAobnVsbC10ZXJtaW5hdGVkKSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBpcyBhY3R1YWxseSAoZF9yZWNsZW4gLSAyIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgbWlwc19kaXJlbnQsIGRfbmFtZSkgKi8KLSAgICAgICAgLy8gY2hhciAgcGFkOyAgICAgICAvKiBaZXJvIHBhZGRpbmcgYnl0ZSAqLwotICAgICAgICAvLyBjaGFyICBkX3R5cGU7ICAgIC8qIEZpbGUgdHlwZSAob25seSBzaW5jZSBMaW51eCAyLjYuNDsgb2Zmc2V0IGlzIChkX3JlY2xlbiAtIDEpKSAqLwotfTsKLQotZXh0ZXJuICJDIiBpbnQgX19nZXRkZW50czY0KHVuc2lnbmVkIGludCBmZCwgc3RydWN0IGRpcmVudCAqZGlycCwgdW5zaWduZWQgaW50IGNvdW50KTsKLWV4dGVybiAiQyIgaW50IF9fZ2V0ZGVudHModW5zaWduZWQgaW50IGZkLCBzdHJ1Y3QgbWlwc19kaXJlbnQgKmRpcnAsIHVuc2lnbmVkIGludCBjb3VudCk7Ci1pbnQgZ2V0ZGVudHModW5zaWduZWQgaW50IGZkLCBzdHJ1Y3QgZGlyZW50ICpkaXJwLCB1bnNpZ25lZCBpbnQgY291bnQpCi17Ci0gICAgICAgIGludCByOwotICAgICAgICBpbnQgb2Vycm5vID0gZXJybm87Ci0KLSAgICAgICAgLyogVXNlIGdldGRlbnRzNjQoKSBpZiBpdCBpcyBhdmFpbGFibGUgKi8KLSAgICAgICAgciA9IF9fZ2V0ZGVudHM2NChmZCwgZGlycCwgY291bnQpOwotICAgICAgICBpZiAociA+PSAwIHx8IGVycm5vICE9IEVOT1NZUykKLSAgICAgICAgICAgICAgICByZXR1cm4gcjsKLQotICAgICAgICAvKiBGYWxsYmFjayB0byBnZXRkZW50cygpICovCi0gICAgICAgIGVycm5vID0gb2Vycm5vOwotICAgICAgICByID0gX19nZXRkZW50cyhmZCwgKHN0cnVjdCBtaXBzX2RpcmVudCAqKWRpcnAsIGNvdW50KTsKLSAgICAgICAgaWYgKHIgPiAwKSB7Ci0gICAgICAgICAgICAgICAgY2hhciAqcDsKLSAgICAgICAgICAgICAgICBjaGFyIHR5cGU7Ci0gICAgICAgICAgICAgICAgdW5pb24gZGlyZW50cyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbWlwc19kaXJlbnQgbTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkaXJlbnQgZDsKLSAgICAgICAgICAgICAgICB9ICp1OwotCi0gICAgICAgICAgICAgICAgcCA9IChjaGFyICopZGlycDsKLSAgICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1ID0gKHVuaW9uIGRpcmVudHMgKilwOwotCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQganVzdCBpbiBjYXNlLi4uICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocCArIHUtPm0uZF9yZWNsZW4gPiAoY2hhciAqKWRpcnAgKyByKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgICAgICAgICAgLyogc2h1ZmZsZSB0aGUgZGlyZW50ICovCi0gICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gKihwICsgdS0+bS5kX3JlY2xlbiAtIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWVtbW92ZSh1LT5kLmRfbmFtZSwgdS0+bS5kX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUtPm0uZF9yZWNsZW4gLSAyIC0gb2Zmc2V0b2Yoc3RydWN0IG1pcHNfZGlyZW50LCBkX25hbWUpICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1LT5kLmRfdHlwZSA9IHR5cGU7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIHAgKz0gdS0+bS5kX3JlY2xlbjsKLSAgICAgICAgICAgICAgICB9IHdoaWxlIChwIDwgKGNoYXIgKilkaXJwICsgcik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHI7Ci19CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwczY0L2Jpb25pYy9tZW1jbXAxNi5TIGIvbGliYy9hcmNoLW1pcHM2NC9iaW9uaWMvbWVtY21wMTYuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM1OGMxYi4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gtbWlwczY0L2Jpb25pYy9tZW1jbXAxNi5TCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCS50ZXh0Ci0KLSNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KLQotLyoKLSAqIHU0IF9fbWVtY21wMTYoY29uc3QgdTIqIHMwLCBjb25zdCB1MiogczEsIHNpemVfdCBjb3VudCk7Ci0gKi8KLUxFQUYoX19tZW1jbXAxNiwwKQotCW1vdmUJdDAsJDAKLQltb3ZlCXQxLCQwCi0JYmVxeglhMiwuTF9kb25lCQkvKiAwIGxlbmd0aCBzdHJpbmcgKi8KLQliZXEJYTAsYTEsLkxfZG9uZQkJLyogc3RyaW5ncyBhcmUgaWRlbnRpY2FsICovCi0KLQkvKiBVbm9wdGltaXNlZC4uLiAqLwotMToJbGh1CXQwLDAoYTApCi0JbGh1CXQxLDAoYTEpCi0JUFRSX0FERFUgYTEsMgotCWJuZQl0MCx0MSwuTF9kb25lCi0JUFRSX0FERFUgYTAsMgotCVNVQlUJYTIsMQotCWJuZXoJYTIsMWIKLQotLkxfZG9uZToKLQlTVUJVCXYwLHQwLHQxCi0JaglyYQotCUVORChfX21lbWNtcDE2KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHM2NC9iaW9uaWMvdmZvcmsuUyBiL2xpYmMvYXJjaC1taXBzNjQvYmlvbmljL3Zmb3JrLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMWEyNjQuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLW1pcHM2NC9iaW9uaWMvdmZvcmsuUworKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCi0gKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCi0gKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUwotICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECi0gKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKLSAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0KLS8vIFRPRE86IG1pcHMnIHVhcGkgc2lnbmFsLmggaXMgbWlzc2luZyAjaWZuZGVmIF9fQVNTRU1CTFlfXy4KLS8vICNpbmNsdWRlIDxhc20vc2lnbmFsLmg+Ci0jZGVmaW5lIFNJR0NITEQgMTgKLQotCS50ZXh0Ci0KLSNpZiAoX01JUFNfU0lNID09IF9BQklPMzIpIHx8IChfTUlQU19TSU0gPT0gX0FCSTMyKQotRlJBTUVTWgkJPQlNS0ZTSVooNSwwKQotI2Vsc2UKLUZSQU1FU1oJCT0JTUtGU0laKDAsMCkKLSNlbmRpZgotCi1MRUFGKHZmb3JrLEZSQU1FU1opCi0jaWYgRlJBTUVTWiE9MAotCVBUUl9TVUJVIHNwLCBGUkFNRVNaCi0jZW5kaWYKLQlTRVRVUF9HUDY0KGE1LCB2Zm9yaykKLQlMSQlhMCwgKENMT05FX1ZNIHwgQ0xPTkVfVkZPUksgfCBTSUdDSExEKQotCW1vdmUJYTEsICQwCi0JbW92ZQlhMiwgJDAKLQltb3ZlCWEzLCAkMAotI2lmIChfTUlQU19TSU0gPT0gX0FCSU8zMikgfHwgKF9NSVBTX1NJTSA9PSBfQUJJMzIpCi0JUkVHX1MJJDAsIDQqUkVHU1ooc3ApCi0jZWxzZQotCW1vdmUJYTQsICQwCi0jZW5kaWYKLQlMSQl2MCwgX19OUl9jbG9uZQotCXN5c2NhbGwKLSNpZiBGUkFNRVNaIT0wCi0JUFRSX0FERFUgc3AsRlJBTUVTWgotI2VuZGlmCi0JbW92ZQlhMCwgdjAKLQlibmV6CWEzLCAxZgotCVJFU1RPUkVfR1A2NAotCWoJcmEKLTE6Ci0JTEEJdDksX19zZXRfZXJybm8KLQlSRVNUT1JFX0dQNjQKLQlqCXQ5Ci0JRU5EKHZmb3JrKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHM2NC9taXBzNjQubWsgYi9saWJjL2FyY2gtbWlwczY0L21pcHM2NC5tawppbmRleCA5YTI0YzYxLi42ZjdhOTI4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtbWlwczY0L21pcHM2NC5taworKysgYi9saWJjL2FyY2gtbWlwczY0L21pcHM2NC5tawpAQCAtMSw3ICsxLDYgQEAKICMgbWlwczY0IHNwZWNpZmljIGNvbmZpZ3MKIAogbGliY19jb21tb25fc3JjX2ZpbGVzX21pcHM2NCA6PSBcCi0gICAgYmlvbmljL2luZGV4LmNwcCBcCiAgICAgYmlvbmljL21lbWNoci5jIFwKICAgICBiaW9uaWMvbWVtY21wLmMgXAogICAgIGJpb25pYy9tZW1tb3ZlLmMgXApAQCAtNDMsMTMgKzQyLDEwIEBACiAgICAgYXJjaC1taXBzNjQvYmlvbmljL19fYmlvbmljX2Nsb25lLlMgXAogICAgIGFyY2gtbWlwczY0L2Jpb25pYy9fZXhpdF93aXRoX3N0YWNrX3RlYXJkb3duLlMgXAogICAgIGFyY2gtbWlwczY0L2Jpb25pYy9fX2dldF9zcC5TIFwKLSAgICBhcmNoLW1pcHM2NC9iaW9uaWMvZ2V0ZGVudHMuY3BwIFwKLSAgICBhcmNoLW1pcHM2NC9iaW9uaWMvbWVtY21wMTYuUyBcCiAgICAgYXJjaC1taXBzNjQvYmlvbmljL19zZXRqbXAuUyBcCiAgICAgYXJjaC1taXBzNjQvYmlvbmljL3NldGptcC5TIFwKICAgICBhcmNoLW1pcHM2NC9iaW9uaWMvc2lnc2V0am1wLlMgXAogICAgIGFyY2gtbWlwczY0L2Jpb25pYy9zeXNjYWxsLlMgXAotICAgIGFyY2gtbWlwczY0L2Jpb25pYy92Zm9yay5TIFwKIAogIyBGSVhNRSBUT0RPCiAjIyBsaWJjX2Jpb25pY19zcmNfZmlsZXNfbWlwczY0ICs9IGFyY2gtbWlwczY0L3N0cmluZy9tZW1jcHkuUwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy9fX2dldGRlbnRzLlMgYi9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL19fZ2V0ZGVudHMuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE3MGE3Mi4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL19fZ2V0ZGVudHMuUworKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qIEdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weS4gRG8gbm90IGVkaXQuICovCi0KLSNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KLQotRU5UUlkoX19nZXRkZW50cykKLSAgICAuc2V0IHB1c2gKLSAgICAuc2V0IG5vcmVvcmRlcgotICAgIGxpIHYwLCBfX05SX2dldGRlbnRzCi0gICAgc3lzY2FsbAotICAgIGJuZXogYTMsIDFmCi0gICAgbW92ZSBhMCwgdjAKLSAgICBqIHJhCi0gICAgbm9wCi0xOgotICAgIG1vdmUgdDAsIHJhCi0gICAgYmFsICAgICAyZgotICAgIG5vcAotMjoKLSAgICAuY3BzZXR1cCByYSwgdDEsIDJiCi0gICAgTEEgdDksX19zZXRfZXJybm8KLSAgICAuY3ByZXR1cm4KLSAgICBqIHQ5Ci0gICAgbW92ZSByYSwgdDAKLSAgICAuc2V0IHBvcAotRU5EKF9fZ2V0ZGVudHMpCi0uaGlkZGVuIF9fZ2V0ZGVudHMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL19fZ2V0cGlkLlMKc2ltaWxhcml0eSBpbmRleCA4NyUKcmVuYW1lIGZyb20gbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy9nZXRwaWQuUwpyZW5hbWUgdG8gbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy9fX2dldHBpZC5TCmluZGV4IDNiNDU3YjUuLjA5NzdmZjAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvZ2V0cGlkLlMKKysrIGIvbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy9fX2dldHBpZC5TCkBAIC0yLDcgKzIsNyBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldHBpZCkKK0VOVFJZKF9fZ2V0cGlkKQogICAgIC5zZXQgcHVzaAogICAgIC5zZXQgbm9yZW9yZGVyCiAgICAgbGkgdjAsIF9fTlJfZ2V0cGlkCkBAIC0yMiw0ICsyMiw1IEBACiAgICAgaiB0OQogICAgIG1vdmUgcmEsIHQwCiAgICAgLnNldCBwb3AKLUVORChnZXRwaWQpCitFTkQoX19nZXRwaWQpCisuaGlkZGVuIF9fZ2V0cGlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL2lvcHJpb19nZXQuUyBiL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvaW9wcmlvX2dldC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTE4OTBjLi4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvaW9wcmlvX2dldC5TCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotLyogR2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5LiBEbyBub3QgZWRpdC4gKi8KLQotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotCi1FTlRSWShpb3ByaW9fZ2V0KQotICAgIC5zZXQgcHVzaAotICAgIC5zZXQgbm9yZW9yZGVyCi0gICAgbGkgdjAsIF9fTlJfaW9wcmlvX2dldAotICAgIHN5c2NhbGwKLSAgICBibmV6IGEzLCAxZgotICAgIG1vdmUgYTAsIHYwCi0gICAgaiByYQotICAgIG5vcAotMToKLSAgICBtb3ZlIHQwLCByYQotICAgIGJhbCAgICAgMmYKLSAgICBub3AKLTI6Ci0gICAgLmNwc2V0dXAgcmEsIHQxLCAyYgotICAgIExBIHQ5LF9fc2V0X2Vycm5vCi0gICAgLmNwcmV0dXJuCi0gICAgaiB0OQotICAgIG1vdmUgcmEsIHQwCi0gICAgLnNldCBwb3AKLUVORChpb3ByaW9fZ2V0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy9pb3ByaW9fc2V0LlMgYi9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL2lvcHJpb19zZXQuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM4NDAzYS4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL2lvcHJpb19zZXQuUworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLS8qIEdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weS4gRG8gbm90IGVkaXQuICovCi0KLSNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KLQotRU5UUlkoaW9wcmlvX3NldCkKLSAgICAuc2V0IHB1c2gKLSAgICAuc2V0IG5vcmVvcmRlcgotICAgIGxpIHYwLCBfX05SX2lvcHJpb19zZXQKLSAgICBzeXNjYWxsCi0gICAgYm5leiBhMywgMWYKLSAgICBtb3ZlIGEwLCB2MAotICAgIGogcmEKLSAgICBub3AKLTE6Ci0gICAgbW92ZSB0MCwgcmEKLSAgICBiYWwgICAgIDJmCi0gICAgbm9wCi0yOgotICAgIC5jcHNldHVwIHJhLCB0MSwgMmIKLSAgICBMQSB0OSxfX3NldF9lcnJubwotICAgIC5jcHJldHVybgotICAgIGogdDkKLSAgICBtb3ZlIHJhLCB0MAotICAgIC5zZXQgcG9wCi1FTkQoaW9wcmlvX3NldCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL3NwbGljZS5TCnNpbWlsYXJpdHkgaW5kZXggODYlCmNvcHkgZnJvbSBsaWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL2dldHBpZC5TCmNvcHkgdG8gbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy9zcGxpY2UuUwppbmRleCAzYjQ1N2I1Li5kNjI2OTA0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL2dldHBpZC5TCisrKyBiL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvc3BsaWNlLlMKQEAgLTIsMTAgKzIsMTAgQEAKIAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCi1FTlRSWShnZXRwaWQpCitFTlRSWShzcGxpY2UpCiAgICAgLnNldCBwdXNoCiAgICAgLnNldCBub3Jlb3JkZXIKLSAgICBsaSB2MCwgX19OUl9nZXRwaWQKKyAgICBsaSB2MCwgX19OUl9zcGxpY2UKICAgICBzeXNjYWxsCiAgICAgYm5leiBhMywgMWYKICAgICBtb3ZlIGEwLCB2MApAQCAtMjIsNCArMjIsNCBAQAogICAgIGogdDkKICAgICBtb3ZlIHJhLCB0MAogICAgIC5zZXQgcG9wCi1FTkQoZ2V0cGlkKQorRU5EKHNwbGljZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL3RlZS5TCnNpbWlsYXJpdHkgaW5kZXggODYlCmNvcHkgZnJvbSBsaWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL2dldHBpZC5TCmNvcHkgdG8gbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy90ZWUuUwppbmRleCAzYjQ1N2I1Li40Mjk3MDBjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL2dldHBpZC5TCisrKyBiL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvdGVlLlMKQEAgLTIsMTAgKzIsMTAgQEAKIAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCi1FTlRSWShnZXRwaWQpCitFTlRSWSh0ZWUpCiAgICAgLnNldCBwdXNoCiAgICAgLnNldCBub3Jlb3JkZXIKLSAgICBsaSB2MCwgX19OUl9nZXRwaWQKKyAgICBsaSB2MCwgX19OUl90ZWUKICAgICBzeXNjYWxsCiAgICAgYm5leiBhMywgMWYKICAgICBtb3ZlIGEwLCB2MApAQCAtMjIsNCArMjIsNCBAQAogICAgIGogdDkKICAgICBtb3ZlIHJhLCB0MAogICAgIC5zZXQgcG9wCi1FTkQoZ2V0cGlkKQorRU5EKHRlZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvZ2V0cGlkLlMgYi9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL3Ztc3BsaWNlLlMKc2ltaWxhcml0eSBpbmRleCA4NSUKY29weSBmcm9tIGxpYmMvYXJjaC1taXBzNjQvc3lzY2FsbHMvZ2V0cGlkLlMKY29weSB0byBsaWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL3Ztc3BsaWNlLlMKaW5kZXggM2I0NTdiNS4uYWEwMzU4NSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLW1pcHM2NC9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gtbWlwczY0L3N5c2NhbGxzL3Ztc3BsaWNlLlMKQEAgLTIsMTAgKzIsMTAgQEAKIAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCi1FTlRSWShnZXRwaWQpCitFTlRSWSh2bXNwbGljZSkKICAgICAuc2V0IHB1c2gKICAgICAuc2V0IG5vcmVvcmRlcgotICAgIGxpIHYwLCBfX05SX2dldHBpZAorICAgIGxpIHYwLCBfX05SX3Ztc3BsaWNlCiAgICAgc3lzY2FsbAogICAgIGJuZXogYTMsIDFmCiAgICAgbW92ZSBhMCwgdjAKQEAgLTIyLDQgKzIyLDQgQEAKICAgICBqIHQ5CiAgICAgbW92ZSByYSwgdDAKICAgICAuc2V0IHBvcAotRU5EKGdldHBpZCkKK0VORCh2bXNwbGljZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvYXRvbS9hdG9tLm1rIGIvbGliYy9hcmNoLXg4Ni9hdG9tL2F0b20ubWsKaW5kZXggYmY0MDhiNC4uM2YyOGZiMiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9hdG9tL2F0b20ubWsKKysrIGIvbGliYy9hcmNoLXg4Ni9hdG9tL2F0b20ubWsKQEAgLTEsNiArMSw1IEBACiBsaWJjX2Jpb25pY19zcmNfZmlsZXNfeDg2ICs9IFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLWJ6ZXJvLWF0b20uUyBcCi0gICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NlMi1pbmRleC1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItbWVtY2hyLWF0b20uUyBcCiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NlMi1tZW1yY2hyLWF0b20uUyBcCiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NlMi1tZW1zZXQtYXRvbS5TIFwKQEAgLTE0LDcgKzEzLDYgQEAKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLXdjc2NtcC1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLWJjb3B5LWF0b20uUyBcCiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NzZTMtbWVtY21wLWF0b20uUyBcCi0gICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NzZTMtbWVtY21wMTYtYXRvbS5TIFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc3NlMy1tZW1jcHktYXRvbS5TIFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc3NlMy1tZW1tb3ZlLWF0b20uUyBcCiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NzZTMtc3RyY2F0LWF0b20uUyBcCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItaW5kZXgtYXRvbS5TIGIvbGliYy9hcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLWluZGV4LWF0b20uUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDUxZTFkNC4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItaW5kZXgtYXRvbS5TCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyoKLUNvcHlyaWdodCAoYykgMjAxMSwgSW50ZWwgQ29ycG9yYXRpb24KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAgICAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEludGVsIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICAgICogbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0gICAgKiB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotI2RlZmluZSBzdHJjaHIgIGluZGV4Ci0jaW5jbHVkZSAic3NlMi1zdHJjaHItYXRvbS5TIgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9hdG9tL3N0cmluZy9zc3NlMy1tZW1jbXAxNi1hdG9tLlMgYi9saWJjL2FyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLW1lbWNtcDE2LWF0b20uUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWJlOGYzZC4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLW1lbWNtcDE2LWF0b20uUworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLS8qCi1Db3B5cmlnaHQgKGMpIDIwMTMsIEludGVsIENvcnBvcmF0aW9uCi1BbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gICAgKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBJbnRlbCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAgICAqIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICAgICogd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLUFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi1XQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi1ESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLUxPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi1TT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNkZWZpbmUgTUVNQ01QICBfX21lbWNtcDE2Ci0KLS8qIGludCBfX21lbWNtcDE2KGNvbnN0IHVuc2lnbmVkIHNob3J0ICpwdHIxLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqcHRyMiwgc2l6ZV90IG4pOyAqLwotCi0jZGVmaW5lIFVTRV9VVEYxNgotI2RlZmluZSBVU0VfQVNfTUVNQ01QMTYgMQotI2luY2x1ZGUgInNzc2UzLW1lbWNtcC1hdG9tLlMiCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TIGIvbGliYy9hcmNoLXg4Ni9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUwppbmRleCA3Yzk3MmRlLi45MTdkYzY4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvYmlvbmljL19fYmlvbmljX2Nsb25lLlMKQEAgLTI1LDggKzI1LDggQEAKICAgICAgICAgaW50ICAgICAkMHg4MAogCiAgICAgICAgICMgQ2hlY2sgcmVzdWx0LgotICAgICAgICBjbXBsICAgICQwLCAlZWF4Ci0gICAgICAgIGplICAgICAgLkxfYmNfY2hpbGQKKyAgICAgICAgdGVzdGwgICAgJWVheCwgJWVheAorICAgICAgICBqeiAgICAgIC5MX2JjX2NoaWxkCiAgICAgICAgIGpnICAgICAgLkxfYmNfcGFyZW50CiAKICAgICAgICAgIyBBbiBlcnJvciBvY2N1cnJlZCwgc28gc2V0IGVycm5vIGFuZCByZXR1cm4gLTEuCkBAIC0zNCwxNyArMzQsMTYgQEAKICAgICAgICAgcHVzaGwgICAlZWF4CiAgICAgICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgICAgICBvcmwgICAgICQtMSwgJWVheAogICAgICAgICBqbXAgICAgIC5MX2JjX3JldHVybgogCiAuTF9iY19jaGlsZDoKICAgICAgICAgIyBXZSBkb24ndCB3YW50IGFueW9uZSB0byB1bndpbmQgcGFzdCB0aGlzIHBvaW50LgogICAgICAgICAuY2ZpX3VuZGVmaW5lZCAlZWlwCi0gICAgICAgIGNhbGwgICAgX19iaW9uaWNfY2xvbmVfZW50cnkKKyAgICAgICAgY2FsbCAgICBfX3N0YXJ0X3RocmVhZAogICAgICAgICBobHQKIAogLkxfYmNfcGFyZW50OgotICAgICAgICAjIHdlJ3JlIHRoZSBwYXJlbnQ7IG5vdGhpbmcgdG8gZG8uCisgICAgICAgICMgV2UncmUgdGhlIHBhcmVudDsgbm90aGluZyB0byBkby4KIC5MX2JjX3JldHVybjoKICAgICAgICAgcG9wbCAgICAlZWRpCiAgICAgICAgIHBvcGwgICAgJWVzaQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9iaW9uaWMvc3lzY2FsbC5TIGIvbGliYy9hcmNoLXg4Ni9iaW9uaWMvc3lzY2FsbC5TCmluZGV4IDAxNzhmNDEuLjhlNzZjNGUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvYmlvbmljL3N5c2NhbGwuUworKysgYi9saWJjL2FyY2gteDg2L2Jpb25pYy9zeXNjYWxsLlMKQEAgLTQwLDcgKzQwLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgICMgUmVzdG9yZSB0aGUgY2FsbGVlIHNhdmUgcmVnaXN0ZXJzLgogICAgIHBvcCAgICAlZWJwCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L2Jpb25pYy92Zm9yay5TIGIvbGliYy9hcmNoLXg4Ni9iaW9uaWMvdmZvcmsuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM2ZjZjYS4uMDAwMDAwMAotLS0gYS9saWJjL2FyY2gteDg2L2Jpb25pYy92Zm9yay5TCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLS8vIFRoaXMgY3VzdG9tIGNvZGUgcHJlc2VydmVzIHRoZSByZXR1cm4gYWRkcmVzcyBhY3Jvc3MgdGhlIHN5c3RlbSBjYWxsLgotCi1FTlRSWSh2Zm9yaykKLSAgcG9wbCAgICAlZWN4ICAvLyBHcmFiIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgbW92bCAgICAkX19OUl92Zm9yaywgJWVheAotICBpbnQgICAgICQweDgwCi0gIGNtcGwgICAgJC1NQVhfRVJSTk8sICVlYXgKLSAgamIgICAgICAxZgotICBuZWdsICAgICVlYXgKLSAgcHVzaGwgICAlZWF4Ci0gIGNhbGwgICAgX19zZXRfZXJybm8KLSAgb3JsICAgICAkLTEsICVlYXgKLTE6Ci0gICAgam1wICAgICAqJWVjeCAgLy8gSnVtcCB0byB0aGUgc3RvcmVkIHJldHVybiBhZGRyZXNzLgotRU5EKHZmb3JrKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9nZW5lcmljL2dlbmVyaWMubWsgYi9saWJjL2FyY2gteDg2L2dlbmVyaWMvZ2VuZXJpYy5tawppbmRleCBjOGI0MGVlLi40YWVlNWRjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L2dlbmVyaWMvZ2VuZXJpYy5taworKysgYi9saWJjL2FyY2gteDg2L2dlbmVyaWMvZ2VuZXJpYy5tawpAQCAtMSw1ICsxLDQgQEAKIGxpYmNfYmlvbmljX3NyY19maWxlc194ODYgKz0gXAotICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItaW5kZXgtYXRvbS5TIFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLW1lbWNoci1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItbWVtcmNoci1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItc3RyY2hyLWF0b20uUyBcCkBAIC0yOCw3ICsyNyw2IEBACiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NzZTMtc3RyY21wLWF0b20uUyBcCiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NzZTMtc3RybmNtcC1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLXN0cmNhdC1hdG9tLlMgXAotICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLW1lbWNtcDE2LWF0b20uUyBcCiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NzZTMtd2NzY2F0LWF0b20uUyBcCiAgICAgYXJjaC14ODYvYXRvbS9zdHJpbmcvc3NzZTMtd2NzY3B5LWF0b20uUwogZWxzZQpAQCAtMzYsNyArMzQsNiBAQAogICAgIGFyY2gteDg2L2dlbmVyaWMvc3RyaW5nL3N0cmNtcC5TIFwKICAgICBhcmNoLXg4Ni9nZW5lcmljL3N0cmluZy9zdHJuY21wLlMgXAogICAgIGFyY2gteDg2L2dlbmVyaWMvc3RyaW5nL3N0cmNhdC5TIFwKLSAgICBiaW9uaWMvX19tZW1jbXAxNi5jcHAgXAogICAgIHVwc3RyZWFtLWZyZWVic2QvbGliL2xpYmMvc3RyaW5nL3djc2NweS5jIFwKICAgICB1cHN0cmVhbS1mcmVlYnNkL2xpYi9saWJjL3N0cmluZy93Y3NjYXQuYyBcCiAgICAgdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdHJpbmcvc3RybGNhdC5jIFwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc2lsdmVybW9udC9zaWx2ZXJtb250Lm1rIGIvbGliYy9hcmNoLXg4Ni9zaWx2ZXJtb250L3NpbHZlcm1vbnQubWsKaW5kZXggYjk1MWFkNS4uMTc2YmVlMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zaWx2ZXJtb250L3NpbHZlcm1vbnQubWsKKysrIGIvbGliYy9hcmNoLXg4Ni9zaWx2ZXJtb250L3NpbHZlcm1vbnQubWsKQEAgLTE3LDcgKzE3LDYgQEAKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLW1lbXJjaHItYXRvbS5TIFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLXN0cmNoci1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItc3RycmNoci1hdG9tLlMgXAotICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItaW5kZXgtYXRvbS5TIFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLXN0cm5sZW4tYXRvbS5TIFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc2UyLXdjc2Noci1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3NzZTItd2NzcmNoci1hdG9tLlMgXApAQCAtMjksNiArMjgsNSBAQAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLXN0cmNtcC1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLXN0cm5jbXAtYXRvbS5TIFwKICAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc3NlMy1zdHJjYXQtYXRvbS5TIFwKLSAgICBhcmNoLXg4Ni9hdG9tL3N0cmluZy9zc3NlMy1tZW1jbXAxNi1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLXdjc2NhdC1hdG9tLlMgXAogICAgIGFyY2gteDg2L2F0b20vc3RyaW5nL3Nzc2UzLXdjc2NweS1hdG9tLlMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc2lsdmVybW9udC9zdHJpbmcvc3NlMi1tZW1tb3ZlLXNsbS5TIGIvbGliYy9hcmNoLXg4Ni9zaWx2ZXJtb250L3N0cmluZy9zc2UyLW1lbW1vdmUtc2xtLlMKaW5kZXggNzlhMGEzNi4uYjk3MWYwYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zaWx2ZXJtb250L3N0cmluZy9zc2UyLW1lbW1vdmUtc2xtLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zaWx2ZXJtb250L3N0cmluZy9zc2UyLW1lbW1vdmUtc2xtLlMKQEAgLTc0LDEzICs3NCwxMyBAQAogI2VuZGlmCiAKICNpZmRlZiBVU0VfQVNfQkNPUFkKLSMgZGVmaW5lIFNSQyAgICAgICAgICAgUEFSTVMKLSMgZGVmaW5lIERFU1QgICAgICAgICAgU1JDKzQKLSMgZGVmaW5lIExFTiAgICAgICAgICAgREVTVCs0CisjIGRlZmluZSBTUkMJCVBBUk1TCisjIGRlZmluZSBERVNUCQlTUkMrNAorIyBkZWZpbmUgTEVOCQlERVNUKzQKICNlbHNlCi0jIGRlZmluZSBERVNUICAgICAgICAgIFBBUk1TCi0jIGRlZmluZSBTUkMgICAgICAgICAgIERFU1QrNAotIyBkZWZpbmUgTEVOICAgICAgICAgICBTUkMrNAorIyBkZWZpbmUgREVTVAkJUEFSTVMKKyMgZGVmaW5lIFNSQwkJREVTVCs0CisjIGRlZmluZSBMRU4JCVNSQys0CiAjZW5kaWYKIAogI2RlZmluZSBDRklfUFVTSChSRUcpCQlcCkBAIC0xMDksMTUgKzEwOSwxNSBAQAogLyogQ2hlY2sgd2hldGhlciB3ZSBzaG91bGQgY29weSBiYWNrd2FyZCBvciBmb3J3YXJkLiAgKi8KIAljbXAJJWVheCwgJWVkeAogCWplCUwobW1fcmV0dXJuKQotCWphCUwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCkKKwlqZwlMKG1tX2xlbl8wX29yX21vcmVfYmFja3dhcmQpCiAKIC8qIE5vdyBkbyBjaGVja3MgZm9yIGxlbmd0aHMuIFdlIGRvIFswLi4xNl0sIFswLi4zMl0sIFswLi42NF0sIFswLi4xMjhdCiAJc2VwYXJhdGVseS4gICovCiAJY21wCSQxNiwgJWVjeAogCWpiZQlMKG1tX2xlbl8wXzE2X2J5dGVzX2ZvcndhcmQpCiAKLQljbXBsICAgICQzMiwgJWVjeAotCWpnCUwobW1fbGVuXzMyX29yX21vcmVfZm9yd2FyZCkKKwljbXBsCSQzMiwgJWVjeAorCWphCUwobW1fbGVuXzMyX29yX21vcmVfZm9yd2FyZCkKIAogLyogQ29weSBbMC4uMzJdIGFuZCByZXR1cm4uICAqLwogCW1vdmRxdQkoJWVheCksICV4bW0wCkBAIC0xMjcsOCArMTI3LDggQEAKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fbGVuXzMyX29yX21vcmVfZm9yd2FyZCk6Ci0JY21wbCAgICAkNjQsICVlY3gKLQlqZwlMKG1tX2xlbl82NF9vcl9tb3JlX2ZvcndhcmQpCisJY21wbAkkNjQsICVlY3gKKwlqYQlMKG1tX2xlbl82NF9vcl9tb3JlX2ZvcndhcmQpCiAKIC8qIENvcHkgWzAuLjY0XSBhbmQgcmV0dXJuLiAgKi8KIAltb3ZkcXUJKCVlYXgpLCAleG1tMApAQCAtMTQyLDggKzE0Miw4IEBACiAJam1wCUwobW1fcmV0dXJuKQogCiBMKG1tX2xlbl82NF9vcl9tb3JlX2ZvcndhcmQpOgotCWNtcGwgICAgJDEyOCwgJWVjeAotCWpnCUwobW1fbGVuXzEyOF9vcl9tb3JlX2ZvcndhcmQpCisJY21wbAkkMTI4LCAlZWN4CisJamEJTChtbV9sZW5fMTI4X29yX21vcmVfZm9yd2FyZCkKIAogLyogQ29weSBbMC4uMTI4XSBhbmQgcmV0dXJuLiAgKi8KIAltb3ZkcXUJKCVlYXgpLCAleG1tMApAQCAtMTY1LDcyICsxNjUsNjYgQEAKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fbGVuXzEyOF9vcl9tb3JlX2ZvcndhcmQpOgotCi0JY21wICAgICAkU0hBUkVEX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAotCWphZSAgICAgTChtbV9sYXJnZV9wYWdlX2ZvcndhcmQpCi0KIAlQVVNIICglZXNpKQogCVBVU0ggKCVlZGkpCi0JbW92bAklZWF4LCAlZXNpCi0JbW92bAklZWR4LCAlZWRpCiAKIC8qIEFsaWduaW5nIHRoZSBhZGRyZXNzIG9mIGRlc3RpbmF0aW9uLiAgKi8KLQltb3ZkcXUJKCVlc2kpLCAleG1tMAotCW1vdmRxdQkxNiglZXNpKSwgJXhtbTEKLQltb3ZkcXUJMzIoJWVzaSksICV4bW0yCi0JbW92ZHF1CTQ4KCVlc2kpLCAleG1tMworCW1vdmRxdQkoJWVheCksICV4bW0wCisJbW92ZHF1CTE2KCVlYXgpLCAleG1tMQorCW1vdmRxdQkzMiglZWF4KSwgJXhtbTIKKwltb3ZkcXUJNDgoJWVheCksICV4bW0zCiAKLQlsZWFsCTY0KCVlZGkpLCAlZWR4Ci0JYW5kbAkkLTY0LCAlZWR4CisJbGVhbAk2NCglZWR4KSwgJWVkaQorCWFuZGwJJC02NCwgJWVkaQorCXN1YmwJJWVkeCwgJWVheAogCi0JbW92bAklZXNpLCAlZWF4Ci0Jc3VibAklZWRpLCAlZWF4CisJbW92ZHF1CSglZWF4LCAlZWRpKSwgJXhtbTQKKwltb3ZkcXUJMTYoJWVheCwgJWVkaSksICV4bW01CisJbW92ZHF1CTMyKCVlYXgsICVlZGkpLCAleG1tNgorCW1vdmRxdQk0OCglZWF4LCAlZWRpKSwgJXhtbTcKIAotCW1vdmRxdQkoJWVkeCwgJWVheCksICV4bW00Ci0JbW92ZHF1CTE2KCVlZHgsICVlYXgpLCAleG1tNQotCW1vdmRxdQkzMiglZWR4LCAlZWF4KSwgJXhtbTYKLQltb3ZkcXUJNDgoJWVkeCwgJWVheCksICV4bW03CisJbW92ZHF1CSV4bW0wLCAoJWVkeCkKKwltb3ZkcXUJJXhtbTEsIDE2KCVlZHgpCisJbW92ZHF1CSV4bW0yLCAzMiglZWR4KQorCW1vdmRxdQkleG1tMywgNDgoJWVkeCkKKwltb3ZkcWEJJXhtbTQsICglZWRpKQorCW1vdmFwcwkleG1tNSwgMTYoJWVkaSkKKwltb3ZhcHMJJXhtbTYsIDMyKCVlZGkpCisJbW92YXBzCSV4bW03LCA0OCglZWRpKQorCWFkZGwJJDY0LCAlZWRpCiAKLQltb3ZkcXUJJXhtbTAsICglZWRpKQotCW1vdmRxdQkleG1tMSwgMTYoJWVkaSkKLQltb3ZkcXUJJXhtbTIsIDMyKCVlZGkpCi0JbW92ZHF1CSV4bW0zLCA0OCglZWRpKQotCW1vdmRxYQkleG1tNCwgKCVlZHgpCi0JbW92ZHFhCSV4bW01LCAxNiglZWR4KQotCW1vdmRxYQkleG1tNiwgMzIoJWVkeCkKLQltb3ZkcWEJJXhtbTcsIDQ4KCVlZHgpCi0JYWRkbAkkNjQsICVlZHgKLQotCWxlYWwJKCVlZGksICVlY3gpLCAlZWJ4CisJbGVhbAkoJWVkeCwgJWVjeCksICVlYngKIAlhbmRsCSQtNjQsICVlYngKLQotCWNtcAklZWR4LCAlZWJ4CisJY21wCSVlZGksICVlYngKIAlqYmUJTChtbV9jb3B5X3JlbWFpbmluZ19mb3J3YXJkKQogCisJY21wCSRTSEFSRURfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisJamFlCUwobW1fbGFyZ2VfcGFnZV9sb29wX2ZvcndhcmQpCisKIAkucDJhbGlnbiA0CiBMKG1tX21haW5fbG9vcF9mb3J3YXJkKToKIAotCXByZWZldGNodDAgMTI4KCVlZHgsICVlYXgpCisJcHJlZmV0Y2h0MCAxMjgoJWVheCwgJWVkaSkKIAotCW1vdmRxdQkoJWVkeCwgJWVheCksICV4bW0wCi0JbW92ZHF1CTE2KCVlZHgsICVlYXgpLCAleG1tMQotCW1vdmRxdQkzMiglZWR4LCAlZWF4KSwgJXhtbTIKLQltb3ZkcXUJNDgoJWVkeCwgJWVheCksICV4bW0zCi0JbW92ZHFhCSV4bW0wLCAoJWVkeCkKLQltb3ZkcWEJJXhtbTEsIDE2KCVlZHgpCi0JbW92ZHFhCSV4bW0yLCAzMiglZWR4KQotCW1vdmRxYQkleG1tMywgNDgoJWVkeCkKLQlsZWFsCTY0KCVlZHgpLCAlZWR4Ci0JY21wCSVlZHgsICVlYngKKwltb3ZkcXUJKCVlYXgsICVlZGkpLCAleG1tMAorCW1vdmRxdQkxNiglZWF4LCAlZWRpKSwgJXhtbTEKKwltb3ZkcXUJMzIoJWVheCwgJWVkaSksICV4bW0yCisJbW92ZHF1CTQ4KCVlYXgsICVlZGkpLCAleG1tMworCW1vdmRxYQkleG1tMCwgKCVlZGkpCisJbW92YXBzCSV4bW0xLCAxNiglZWRpKQorCW1vdmFwcwkleG1tMiwgMzIoJWVkaSkKKwltb3ZhcHMJJXhtbTMsIDQ4KCVlZGkpCisJbGVhbAk2NCglZWRpKSwgJWVkaQorCWNtcAklZWRpLCAlZWJ4CiAJamEJTChtbV9tYWluX2xvb3BfZm9yd2FyZCkKIAogTChtbV9jb3B5X3JlbWFpbmluZ19mb3J3YXJkKToKLQlhZGRsCSVlZGksICVlY3gKLQlzdWJsCSVlZHgsICVlY3gKLS8qIFdlIGNvcGllZCBhbGwgdXAgdGlsbCAlZWR4IHBvc2l0aW9uIGluIHRoZSBkc3QuCisJYWRkbAklZWR4LCAlZWN4CisJc3VibAklZWRpLCAlZWN4CisvKiBXZSBjb3BpZWQgYWxsIHVwIHRpbGwgJWVkaSBwb3NpdGlvbiBpbiB0aGUgZHN0LgogCUluICVlY3ggbm93IGlzIGhvdyBtYW55IGJ5dGVzIGFyZSBsZWZ0IHRvIGNvcHkuCiAJTm93IHdlIG5lZWQgdG8gYWR2YW5jZSAlZXNpLiAqLwotCWxlYWwJKCVlZHgsICVlYXgpLCAlZXNpCisJbGVhbAkoJWVkaSwgJWVheCksICVlc2kKIAogTChtbV9yZW1haW5pbmdfMF82NF9ieXRlc19mb3J3YXJkKToKIAljbXAJJDMyLCAlZWN4CkBAIC0yNTEsOCArMjQ1LDggQEAKIAlqYQlMKG1tX3JlbWFpbmluZ18zXzRfYnl0ZXNfZm9yd2FyZCkKIAltb3Z6YmwJLTEoJWVzaSwlZWN4KSwgJWVheAogCW1vdnpibAkoJWVzaSksICVlYngKLQltb3ZiCSVhbCwgLTEoJWVkeCwlZWN4KQotCW1vdmIJJWJsLCAoJWVkeCkKKwltb3ZiCSVhbCwgLTEoJWVkaSwlZWN4KQorCW1vdmIJJWJsLCAoJWVkaSkKIAlqbXAJTChtbV9yZXR1cm5fcG9wX2FsbCkKIAogTChtbV9yZW1haW5pbmdfMzNfNjRfYnl0ZXNfZm9yd2FyZCk6CkBAIC0yNjAsNDAgKzI1NCwzOSBAQAogCW1vdmRxdQkxNiglZXNpKSwgJXhtbTEKIAltb3ZkcXUJLTMyKCVlc2ksICVlY3gpLCAleG1tMgogCW1vdmRxdQktMTYoJWVzaSwgJWVjeCksICV4bW0zCi0JbW92ZHF1CSV4bW0wLCAoJWVkeCkKLQltb3ZkcXUJJXhtbTEsIDE2KCVlZHgpCi0JbW92ZHF1CSV4bW0yLCAtMzIoJWVkeCwgJWVjeCkKLQltb3ZkcXUJJXhtbTMsIC0xNiglZWR4LCAlZWN4KQorCW1vdmRxdQkleG1tMCwgKCVlZGkpCisJbW92ZHF1CSV4bW0xLCAxNiglZWRpKQorCW1vdmRxdQkleG1tMiwgLTMyKCVlZGksICVlY3gpCisJbW92ZHF1CSV4bW0zLCAtMTYoJWVkaSwgJWVjeCkKIAlqbXAJTChtbV9yZXR1cm5fcG9wX2FsbCkKIAogTChtbV9yZW1haW5pbmdfMTdfMzJfYnl0ZXNfZm9yd2FyZCk6CiAJbW92ZHF1CSglZXNpKSwgJXhtbTAKIAltb3ZkcXUJLTE2KCVlc2ksICVlY3gpLCAleG1tMQotCW1vdmRxdQkleG1tMCwgKCVlZHgpCi0JbW92ZHF1CSV4bW0xLCAtMTYoJWVkeCwgJWVjeCkKLQlqbXAJTChtbV9yZXR1cm5fcG9wX2FsbCkKLQotTChtbV9yZW1haW5pbmdfM180X2J5dGVzX2ZvcndhcmQpOgotCW1vdnp3bAktMiglZXNpLCVlY3gpLCAlZWF4Ci0JbW92endsCSglZXNpKSwgJWVieAotCW1vdncJJWF4LCAtMiglZWR4LCVlY3gpCi0JbW92dwklYngsICglZWR4KQotCWptcAlMKG1tX3JldHVybl9wb3BfYWxsKQotCi1MKG1tX3JlbWFpbmluZ181XzhfYnl0ZXNfZm9yd2FyZCk6Ci0JbW92bAkoJWVzaSksICVlYXgKLQltb3ZsCS00KCVlc2ksJWVjeCksICVlYngKLQltb3ZsCSVlYXgsICglZWR4KQotCW1vdmwJJWVieCwgLTQoJWVkeCwlZWN4KQorCW1vdmRxdQkleG1tMCwgKCVlZGkpCisJbW92ZHF1CSV4bW0xLCAtMTYoJWVkaSwgJWVjeCkKIAlqbXAJTChtbV9yZXR1cm5fcG9wX2FsbCkKIAogTChtbV9yZW1haW5pbmdfOV8xNl9ieXRlc19mb3J3YXJkKToKIAltb3ZxCSglZXNpKSwgJXhtbTAKIAltb3ZxCS04KCVlc2ksICVlY3gpLCAleG1tMQotCW1vdnEJJXhtbTAsICglZWR4KQotCW1vdnEJJXhtbTEsIC04KCVlZHgsICVlY3gpCisJbW92cQkleG1tMCwgKCVlZGkpCisJbW92cQkleG1tMSwgLTgoJWVkaSwgJWVjeCkKIAlqbXAJTChtbV9yZXR1cm5fcG9wX2FsbCkKIAorTChtbV9yZW1haW5pbmdfNV84X2J5dGVzX2ZvcndhcmQpOgorCW1vdmwJKCVlc2kpLCAlZWF4CisJbW92bAktNCglZXNpLCVlY3gpLCAlZWJ4CisJbW92bAklZWF4LCAoJWVkaSkKKwltb3ZsCSVlYngsIC00KCVlZGksJWVjeCkKKwlqbXAJTChtbV9yZXR1cm5fcG9wX2FsbCkKKworTChtbV9yZW1haW5pbmdfM180X2J5dGVzX2ZvcndhcmQpOgorCW1vdnp3bAktMiglZXNpLCVlY3gpLCAlZWF4CisJbW92endsCSglZXNpKSwgJWVieAorCW1vdncJJWF4LCAtMiglZWRpLCVlY3gpCisJbW92dwklYngsICglZWRpKQorCWptcAlMKG1tX3JldHVybl9wb3BfYWxsKQogCiBMKG1tX2xlbl8wXzE2X2J5dGVzX2ZvcndhcmQpOgogCXRlc3RiCSQyNCwgJWNsCkBAIC0zMzQsMTUgKzMyNywyMCBAQAogCW1vdnEJJXhtbTEsIC04KCVlZHgsICVlY3gpCiAJam1wCUwobW1fcmV0dXJuKQogCitMKG1tX3JlY2FsY19sZW4pOgorLyogQ29tcHV0ZSBpbiAlZWN4IGhvdyBtYW55IGJ5dGVzIGFyZSBsZWZ0IHRvIGNvcHkgYWZ0ZXIKKwl0aGUgbWFpbiBsb29wIHN0b3BzLiAgKi8KKwltb3ZsCSVlYngsICVlY3gKKwlzdWJsCSVlZHgsICVlY3gKIC8qIFRoZSBjb2RlIGZvciBjb3B5aW5nIGJhY2t3YXJkcy4gICovCiBMKG1tX2xlbl8wX29yX21vcmVfYmFja3dhcmQpOgogCi0vKiBOb3cgZG8gY2hlY2tzIGZvciBsZW5ndGhzLiBXZSBkbyBbMC4uMTZdLCBbMC4uMzJdLCBbMC4uNjRdLCBbMC4uMTI4XQorLyogTm93IGRvIGNoZWNrcyBmb3IgbGVuZ3Rocy4gV2UgZG8gWzAuLjE2XSwgWzE2Li4zMl0sIFszMi4uNjRdLCBbNjQuLjEyOF0KIAlzZXBhcmF0ZWx5LiAgKi8KIAljbXAJJDE2LCAlZWN4CiAJamJlCUwobW1fbGVuXzBfMTZfYnl0ZXNfYmFja3dhcmQpCiAKLQljbXBsICAgICQzMiwgJWVjeAorCWNtcGwJJDMyLCAlZWN4CiAJamcJTChtbV9sZW5fMzJfb3JfbW9yZV9iYWNrd2FyZCkKIAogLyogQ29weSBbMC4uMzJdIGFuZCByZXR1cm4uICAqLwpAQCAtMzUzLDcgKzM1MSw3IEBACiAJam1wCUwobW1fcmV0dXJuKQogCiBMKG1tX2xlbl8zMl9vcl9tb3JlX2JhY2t3YXJkKToKLQljbXBsICAgICQ2NCwgJWVjeAorCWNtcGwJJDY0LCAlZWN4CiAJamcJTChtbV9sZW5fNjRfb3JfbW9yZV9iYWNrd2FyZCkKIAogLyogQ29weSBbMC4uNjRdIGFuZCByZXR1cm4uICAqLwpAQCAtMzY4LDcgKzM2Niw3IEBACiAJam1wCUwobW1fcmV0dXJuKQogCiBMKG1tX2xlbl82NF9vcl9tb3JlX2JhY2t3YXJkKToKLQljbXBsICAgICQxMjgsICVlY3gKKwljbXBsCSQxMjgsICVlY3gKIAlqZwlMKG1tX2xlbl8xMjhfb3JfbW9yZV9iYWNrd2FyZCkKIAogLyogQ29weSBbMC4uMTI4XSBhbmQgcmV0dXJuLiAgKi8KQEAgLTM5MSwxMCArMzg5LDYgQEAKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fbGVuXzEyOF9vcl9tb3JlX2JhY2t3YXJkKToKLQotCWNtcCAgICAgJFNIQVJFRF9DQUNIRV9TSVpFX0hBTEYsICVlY3gKLQlqYWUgICAgIEwobW1fbGFyZ2VfcGFnZV9iYWNrd2FyZCkKLQogCVBVU0ggKCVlc2kpCiAJUFVTSCAoJWVkaSkKIApAQCAtNDI5LDE3ICs0MjMsMTEgQEAKIAlsZWFsCTY0KCVlZHgpLCAlZWJ4CiAJYW5kbAkkLTY0LCAlZWJ4CiAKLS8qIENvbXB1dGUgaW4gJWVjeCBob3cgbWFueSBieXRlcyBhcmUgbGVmdCB0byBjb3B5IGFmdGVyCi0JdGhlIG1haW4gbG9vcCBzdG9wcy4gICovCi0JbW92bAklZWJ4LCAlZWN4Ci0Jc3VibAklZWR4LCAlZWN4Ci0KIAljbXAJJWVkaSwgJWVieAotCWpiCUwobW1fbWFpbl9sb29wX2JhY2t3YXJkKQorCWphZQlMKG1tX21haW5fbG9vcF9iYWNrd2FyZF9lbmQpCiAKLQlQT1AgKCVlZGkpCi0JUE9QICglZXNpKQotCWptcAlMKG1tX2xlbl8wX29yX21vcmVfYmFja3dhcmQpCisJY21wCSRTSEFSRURfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisJamFlCUwobW1fbGFyZ2VfcGFnZV9sb29wX2JhY2t3YXJkKQogCiAJLnAyYWxpZ24gNAogTChtbV9tYWluX2xvb3BfYmFja3dhcmQpOgpAQCAtNDU3LDkgKzQ0NSwxMCBAQAogCWxlYWwJLTY0KCVlZGkpLCAlZWRpCiAJY21wCSVlZGksICVlYngKIAlqYglMKG1tX21haW5fbG9vcF9iYWNrd2FyZCkKK0wobW1fbWFpbl9sb29wX2JhY2t3YXJkX2VuZCk6CiAJUE9QICglZWRpKQogCVBPUCAoJWVzaSkKLQlqbXAJTChtbV9sZW5fMF9vcl9tb3JlX2JhY2t3YXJkKQorCWptcAlMKG1tX3JlY2FsY19sZW4pCiAKIC8qIENvcHkgWzAuLjE2XSBhbmQgcmV0dXJuLiAgKi8KIEwobW1fbGVuXzBfMTZfYnl0ZXNfYmFja3dhcmQpOgpAQCAtNTA4LDE1MSArNDk3LDMwIEBACiAJUkVUVVJOCiAKIEwobW1fcmV0dXJuX3BvcF9hbGwpOgotCW1vdmwJJWVkaSwgJWVheAorCW1vdmwJJWVkeCwgJWVheAogCVBPUCAoJWVkaSkKIAlQT1AgKCVlc2kpCiAJUkVUVVJOCiAKIC8qIEJpZyBsZW5ndGggY29weSBmb3J3YXJkIHBhcnQuICAqLwogCi1MKG1tX2xhcmdlX3BhZ2VfZm9yd2FyZCk6Ci0vKiBBbGlnbmluZyB0aGUgYWRkcmVzcyBvZiBkZXN0aW5hdGlvbi4gV2UgbmVlZCB0byBzYXZlCi0JMTYgYml0cyBmcm9tIHRoZSBzb3VyY2UgaW4gb3JkZXIgbm90IHRvIG92ZXJ3cml0ZSB0aGVtLiAgKi8KLQotCVBVU0ggKCVlc2kpCi0JUFVTSCAoJWVkaSkKLQltb3ZsCSVlYXgsICVlc2kKLQltb3ZsCSVlZHgsICVlZGkKLQotCW1vdmRxdQkoJWVzaSksICV4bW0wCi0JbW92ZHF1CTE2KCVlc2kpLCAleG1tMQotCW1vdmRxdQkzMiglZXNpKSwgJXhtbTIKLQltb3ZkcXUJNDgoJWVzaSksICV4bW0zCi0KLQlsZWFsCTY0KCVlZGkpLCAlZWR4Ci0JYW5kbAkkLTY0LCAlZWR4Ci0KLQltb3ZsCSVlc2ksICVlYXgKLQlzdWJsCSVlZGksICVlYXgKLQotCW1vdmRxdQkoJWVkeCwgJWVheCksICV4bW00Ci0JbW92ZHF1CTE2KCVlZHgsICVlYXgpLCAleG1tNQotCW1vdmRxdQkzMiglZWR4LCAlZWF4KSwgJXhtbTYKLQltb3ZkcXUJNDgoJWVkeCwgJWVheCksICV4bW03Ci0KLQltb3ZkcXUJJXhtbTAsICglZWRpKQotCW1vdmRxdQkleG1tMSwgMTYoJWVkaSkKLQltb3ZkcXUJJXhtbTIsIDMyKCVlZGkpCi0JbW92ZHF1CSV4bW0zLCA0OCglZWRpKQotCW1vdm50ZHEJJXhtbTQsICglZWR4KQotCW1vdm50ZHEJJXhtbTUsIDE2KCVlZHgpCi0JbW92bnRkcQkleG1tNiwgMzIoJWVkeCkKLQltb3ZudGRxCSV4bW03LCA0OCglZWR4KQotCWFkZGwJJDY0LCAlZWR4Ci0KLQlsZWFsCSglZWRpLCAlZWN4KSwgJWVieAotCWFuZGwJJC0xMjgsICVlYngKLQotCWNtcAklZWR4LCAlZWJ4Ci0JamJlCUwobW1fY29weV9yZW1haW5pbmdfZm9yd2FyZCkKLQogCS5wMmFsaWduIDQKIEwobW1fbGFyZ2VfcGFnZV9sb29wX2ZvcndhcmQpOgotCW1vdmRxdQkoJWVkeCwgJWVheCksICV4bW0wCi0JbW92ZHF1CTE2KCVlZHgsICVlYXgpLCAleG1tMQotCW1vdmRxdQkzMiglZWR4LCAlZWF4KSwgJXhtbTIKLQltb3ZkcXUJNDgoJWVkeCwgJWVheCksICV4bW0zCi0JbW92ZHF1CTY0KCVlZHgsICVlYXgpLCAleG1tNAotCW1vdmRxdQk4MCglZWR4LCAlZWF4KSwgJXhtbTUKLQltb3ZkcXUJOTYoJWVkeCwgJWVheCksICV4bW02Ci0JbW92ZHF1CTExMiglZWR4LCAlZWF4KSwgJXhtbTcKLQltb3ZudGRxCSV4bW0wLCAoJWVkeCkKLQltb3ZudGRxCSV4bW0xLCAxNiglZWR4KQotCW1vdm50ZHEJJXhtbTIsIDMyKCVlZHgpCi0JbW92bnRkcQkleG1tMywgNDgoJWVkeCkKLQltb3ZudGRxCSV4bW00LCA2NCglZWR4KQotCW1vdm50ZHEJJXhtbTUsIDgwKCVlZHgpCi0JbW92bnRkcQkleG1tNiwgOTYoJWVkeCkKLQltb3ZudGRxCSV4bW03LCAxMTIoJWVkeCkKLQlsZWFsCTEyOCglZWR4KSwgJWVkeAotCWNtcAklZWR4LCAlZWJ4CisJbW92ZHF1CSglZWF4LCAlZWRpKSwgJXhtbTAKKwltb3ZkcXUJMTYoJWVheCwgJWVkaSksICV4bW0xCisJbW92ZHF1CTMyKCVlYXgsICVlZGkpLCAleG1tMgorCW1vdmRxdQk0OCglZWF4LCAlZWRpKSwgJXhtbTMKKwltb3ZudGRxCSV4bW0wLCAoJWVkaSkKKwltb3ZudGRxCSV4bW0xLCAxNiglZWRpKQorCW1vdm50ZHEJJXhtbTIsIDMyKCVlZGkpCisJbW92bnRkcQkleG1tMywgNDgoJWVkaSkKKwlsZWFsCTY0KCVlZGkpLCAlZWRpCisJY21wCSVlZGksICVlYngKIAlqYQlMKG1tX2xhcmdlX3BhZ2VfbG9vcF9mb3J3YXJkKQogCXNmZW5jZQotCi0JYWRkbAklZWRpLCAlZWN4Ci0Jc3VibAklZWR4LCAlZWN4Ci0vKiBXZSBjb3BpZWQgYWxsIHVwIHRpbGwgJWVkeCBwb3NpdGlvbiBpbiB0aGUgZHN0LgotCUluICVlY3ggbm93IGlzIGhvdyBtYW55IGJ5dGVzIGFyZSBsZWZ0IHRvIGNvcHkuCi0JTm93IHdlIG5lZWQgdG8gYWR2YW5jZSAlZXNpLiAqLwotCWxlYWwJKCVlZHgsICVlYXgpLCAlZXNpCi0KLQljbXAJJDY0LCAlZWN4Ci0JamIJTChtbV9yZW1haW5pbmdfMF82NF9ieXRlc19mb3J3YXJkKQotCi0JbW92ZHF1CSglZXNpKSwgJXhtbTAKLQltb3ZkcXUJMTYoJWVzaSksICV4bW0xCi0JbW92ZHF1CTMyKCVlc2kpLCAleG1tMgotCW1vdmRxdQk0OCglZXNpKSwgJXhtbTMKLQltb3ZkcXUJLTY0KCVlc2ksICVlY3gpLCAleG1tNAotCW1vdmRxdQktNDgoJWVzaSwgJWVjeCksICV4bW01Ci0JbW92ZHF1CS0zMiglZXNpLCAlZWN4KSwgJXhtbTYKLQltb3ZkcXUJLTE2KCVlc2ksICVlY3gpLCAleG1tNwotCW1vdmRxdQkleG1tMCwgKCVlZHgpCi0JbW92ZHF1CSV4bW0xLCAxNiglZWR4KQotCW1vdmRxdQkleG1tMiwgMzIoJWVkeCkKLQltb3ZkcXUJJXhtbTMsIDQ4KCVlZHgpCi0JbW92ZHF1CSV4bW00LCAtNjQoJWVkeCwgJWVjeCkKLQltb3ZkcXUJJXhtbTUsIC00OCglZWR4LCAlZWN4KQotCW1vdmRxdQkleG1tNiwgLTMyKCVlZHgsICVlY3gpCi0JbW92ZHF1CSV4bW03LCAtMTYoJWVkeCwgJWVjeCkKLQlqbXAJTChtbV9yZXR1cm5fcG9wX2FsbCkKLQorCWptcAlMKG1tX2NvcHlfcmVtYWluaW5nX2ZvcndhcmQpCiAKIC8qIEJpZyBsZW5ndGggY29weSBiYWNrd2FyZCBwYXJ0LiAgKi8KLUwobW1fbGFyZ2VfcGFnZV9iYWNrd2FyZCk6Ci0vKiBBbGlnbmluZyB0aGUgYWRkcmVzcyBvZiBkZXN0aW5hdGlvbi4gV2UgbmVlZCB0byBzYXZlCi0JMTYgYml0cyBmcm9tIHRoZSBzb3VyY2UgaW4gb3JkZXIgbm90IHRvIG92ZXJ3cml0ZSB0aGVtLiAgKi8KLQotCVBVU0ggKCVlc2kpCi0JUFVTSCAoJWVkaSkKLQotCW1vdmRxdQktMTYoJWVheCwgJWVjeCksICV4bW0wCi0JbW92ZHF1CS0zMiglZWF4LCAlZWN4KSwgJXhtbTEKLQltb3ZkcXUJLTQ4KCVlYXgsICVlY3gpLCAleG1tMgotCW1vdmRxdQktNjQoJWVheCwgJWVjeCksICV4bW0zCi0KLQlsZWFsCSglZWR4LCAlZWN4KSwgJWVkaQotCWFuZGwJJC02NCwgJWVkaQotCi0JbW92bAklZWF4LCAlZXNpCi0Jc3VibAklZWR4LCAlZXNpCi0KLQltb3ZkcXUJLTE2KCVlZGksICVlc2kpLCAleG1tNAotCW1vdmRxdQktMzIoJWVkaSwgJWVzaSksICV4bW01Ci0JbW92ZHF1CS00OCglZWRpLCAlZXNpKSwgJXhtbTYKLQltb3ZkcXUJLTY0KCVlZGksICVlc2kpLCAleG1tNwotCi0JbW92ZHF1CSV4bW0wLCAtMTYoJWVkeCwgJWVjeCkKLQltb3ZkcXUJJXhtbTEsIC0zMiglZWR4LCAlZWN4KQotCW1vdmRxdQkleG1tMiwgLTQ4KCVlZHgsICVlY3gpCi0JbW92ZHF1CSV4bW0zLCAtNjQoJWVkeCwgJWVjeCkKLQltb3ZudGRxCSV4bW00LCAtMTYoJWVkaSkKLQltb3ZudGRxCSV4bW01LCAtMzIoJWVkaSkKLQltb3ZudGRxCSV4bW02LCAtNDgoJWVkaSkKLQltb3ZudGRxCSV4bW03LCAtNjQoJWVkaSkKLQlsZWFsCS02NCglZWRpKSwgJWVkaQotCi0JbGVhbAkxMjgoJWVkeCksICVlYngKLQlhbmRsCSQtNjQsICVlYngKLQotLyogQ29tcHV0ZSBpbiAlZWN4IGhvdyBtYW55IGJ5dGVzIGFyZSBsZWZ0IHRvIGNvcHkgYWZ0ZXIKLQl0aGUgbWFpbiBsb29wIHN0b3BzLiAgKi8KLQltb3ZsCSVlYngsICVlY3gKLQlzdWJsCSVlZHgsICVlY3gKLQotCWNtcAklZWRpLCAlZWJ4Ci0JamFlCUwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCkKLQogCS5wMmFsaWduIDQKIEwobW1fbGFyZ2VfcGFnZV9sb29wX2JhY2t3YXJkKToKIAltb3ZkcXUJLTY0KCVlZGksICVlc2kpLCAleG1tMApAQCAtNjY2LDggKzUzNCw5IEBACiAJbGVhbAktNjQoJWVkaSksICVlZGkKIAljbXAJJWVkaSwgJWVieAogCWpiCUwobW1fbGFyZ2VfcGFnZV9sb29wX2JhY2t3YXJkKQorCXNmZW5jZQogCVBPUCAoJWVkaSkKIAlQT1AgKCVlc2kpCi0Jam1wCUwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCkKKwlqbXAJTChtbV9yZWNhbGNfbGVuKQogCiBFTkQgKE1FTU1PVkUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fYWNjZXB0NC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2FjY2VwdDQuUwppbmRleCAxOGE3NmExLi4yZDljYzQyIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fYWNjZXB0NC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19hY2NlcHQ0LlMKQEAgLTIwLDcgKzIwLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2Jyay5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2Jyay5TCmluZGV4IDI0Mzk3NTIuLjYzMmRmY2YgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19icmsuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fYnJrLlMKQEAgLTE1LDcgKzE1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVieAogICAgIHJldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2Nvbm5lY3QuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19jb25uZWN0LlMKaW5kZXggMzE0OWU4Yy4uNWVlNGZiZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2Nvbm5lY3QuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fY29ubmVjdC5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19lcG9sbF9wd2FpdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2Vwb2xsX3B3YWl0LlMKaW5kZXggNjc1NDViMS4uNjQxY2E2ZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2Vwb2xsX3B3YWl0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2Vwb2xsX3B3YWl0LlMKQEAgLTM1LDcgKzM1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVicAogICAgIHBvcGwgICAgJWVkaQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2V4aXQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19leGl0LlMKaW5kZXggZDc2ODMwNi4uODU3OGY1NiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2V4aXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZXhpdC5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19mY250bDY0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZmNudGw2NC5TCmluZGV4IGIyZDU2NjQuLmVmNThkMTUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19mY250bDY0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2ZjbnRsNjQuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZnN0YXRmczY0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZnN0YXRmczY0LlMKaW5kZXggZDgwZWNjNS4uMGNhMzM2MCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2ZzdGF0ZnM2NC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19mc3RhdGZzNjQuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0Y3B1LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0Y3B1LlMKaW5kZXggMjNjZTNmMC4uYjE4MTg3NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2dldGNwdS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19nZXRjcHUuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0Y3dkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0Y3dkLlMKaW5kZXggNTQ1NGQ3YS4uYjcxYmEwZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2dldGN3ZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19nZXRjd2QuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGRlbnRzLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0ZGVudHM2NC5TCnNpbWlsYXJpdHkgaW5kZXggOTElCnJlbmFtZSBmcm9tIGxpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0ZGVudHMuUwpyZW5hbWUgdG8gbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2dldGRlbnRzNjQuUwppbmRleCAwYjA0NWIyLi4zZmM4NzE5IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGRlbnRzLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2dldGRlbnRzNjQuUwpAQCAtMiw3ICsyLDcgQEAKIAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCi1FTlRSWShnZXRkZW50cykKK0VOVFJZKF9fZ2V0ZGVudHM2NCkKICAgICBwdXNobCAgICVlYngKICAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDgKICAgICAuY2ZpX3JlbF9vZmZzZXQgZWJ4LCAwCkBAIC0yMywxMCArMjMsOSBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0Ci1FTkQoZ2V0ZGVudHMpCitFTkQoX19nZXRkZW50czY0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRwaWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19nZXRwaWQuUwpzaW1pbGFyaXR5IGluZGV4IDg0JQpyZW5hbWUgZnJvbSBsaWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHBpZC5TCnJlbmFtZSB0byBsaWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0cGlkLlMKaW5kZXggY2VjYWY3NC4uZjEzOGQyZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0cGlkLlMKQEAgLTIsNyArMiw3IEBACiAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAotRU5UUlkoZ2V0cGlkKQorRU5UUlkoX19nZXRwaWQpCiAgICAgbW92bCAgICAkX19OUl9nZXRwaWQsICVlYXgKICAgICBpbnQgICAgICQweDgwCiAgICAgY21wbCAgICAkLU1BWF9FUlJOTywgJWVheApAQCAtMTEsNyArMTEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcmV0Ci1FTkQoZ2V0cGlkKQorRU5EKF9fZ2V0cGlkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2dldHByaW9yaXR5LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUwppbmRleCAyZDk3ZjBkLi4xMDM0MzFkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19faW9jdGwuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19pb2N0bC5TCmluZGV4IGViMjQ4ZmIuLjk5ZDJkMmMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19pb2N0bC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19pb2N0bC5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19sbHNlZWsuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19sbHNlZWsuUwppbmRleCA3YTFlYTgzLi4wY2RiOThhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fbGxzZWVrLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX2xsc2Vlay5TCkBAIC0zMSw3ICszMSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZGkKICAgICBwb3BsICAgICVlc2kKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19tbWFwMi5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX21tYXAyLlMKaW5kZXggNjAzZWUyYi4uNDcxMzFlZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX21tYXAyLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX21tYXAyLlMKQEAgLTM1LDcgKzM1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVicAogICAgIHBvcGwgICAgJWVkaQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX29wZW5hdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX29wZW5hdC5TCmluZGV4IGE2ZGI2NzIuLmFlYzEwZTUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19vcGVuYXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fb3BlbmF0LlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3Bwb2xsLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcHBvbGwuUwppbmRleCBkOGFjOThhLi45MjE5N2I3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcHBvbGwuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcHBvbGwuUwpAQCAtMzEsNyArMzEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWRpCiAgICAgcG9wbCAgICAlZXNpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcHNlbGVjdDYuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19wc2VsZWN0Ni5TCmluZGV4IDljNjZhM2MuLjM4NDAyZjAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19wc2VsZWN0Ni5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19wc2VsZWN0Ni5TCkBAIC0zNSw3ICszNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYnAKICAgICBwb3BsICAgICVlZGkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19wdHJhY2UuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19wdHJhY2UuUwppbmRleCA1NGU4MjIxLi5jZWE1ODQ3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcHRyYWNlLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3B0cmFjZS5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19yZWJvb3QuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19yZWJvb3QuUwppbmRleCBkYWVhNjZlLi40NTQ2OTk0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcmVib290LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3JlYm9vdC5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUwppbmRleCBkMTgyYTgyLi5iZmJlNWJhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcnRfc2lnYWN0aW9uLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3J0X3NpZ2FjdGlvbi5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdwZW5kaW5nLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcnRfc2lncGVuZGluZy5TCmluZGV4IGQ4M2NjYzAuLmRhYzQ3OGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdwZW5kaW5nLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3J0X3NpZ3BlbmRpbmcuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcnRfc2lncHJvY21hc2suUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCmluZGV4IDRjYTk0NDMuLmYxMTIzNjAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdzdXNwZW5kLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcnRfc2lnc3VzcGVuZC5TCmluZGV4IGYxYTRjZjMuLmVmNTA1YzAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWdzdXNwZW5kLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3J0X3NpZ3N1c3BlbmQuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcnRfc2lndGltZWR3YWl0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fcnRfc2lndGltZWR3YWl0LlMKaW5kZXggNGZhZTBmNy4uZDE5YzdkYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3J0X3NpZ3RpbWVkd2FpdC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUwpAQCAtMjcsNyArMjcsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZXNpCiAgICAgcG9wbCAgICAlZWR4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fc2NoZWRfZ2V0YWZmaW5pdHkuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCmluZGV4IGJkZGJhYjUuLmU3Y2I4ZjEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zZXRfdGhyZWFkX2FyZWEuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zZXRfdGhyZWFkX2FyZWEuUwppbmRleCAwNzcyZmZlLi5kZGEyM2EwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fc2V0X3RocmVhZF9hcmVhLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3NldF90aHJlYWRfYXJlYS5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zZXRfdGlkX2FkZHJlc3MuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zZXRfdGlkX2FkZHJlc3MuUwppbmRleCBlNjFjMmFjLi4xNTY2ZDlhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fc2V0X3RpZF9hZGRyZXNzLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3NldF90aWRfYWRkcmVzcy5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zaWdhY3Rpb24uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zaWdhY3Rpb24uUwppbmRleCBiNGNhMjkyLi5mMWE1MWQyIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fc2lnYWN0aW9uLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3NpZ2FjdGlvbi5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zaWduYWxmZDQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zaWduYWxmZDQuUwppbmRleCAxZmFhZmFjLi4zMzVlMjA2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fc2lnbmFsZmQ0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3NpZ25hbGZkNC5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zb2NrZXQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zb2NrZXQuUwppbmRleCAyMzg2Yjk4Li4zNjg2ODBmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fc29ja2V0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3NvY2tldC5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX19zdGF0ZnM2NC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3N0YXRmczY0LlMKaW5kZXggNjlkZDg3ZS4uNmJiOWQ5OSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3N0YXRmczY0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3N0YXRmczY0LlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCmluZGV4IDUyMDA0NmYuLjNkMjhhZTkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX190aW1lcl9jcmVhdGUuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fdGltZXJfY3JlYXRlLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX2RlbGV0ZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX2RlbGV0ZS5TCmluZGV4IDhmZmY3MjcuLjdkNjRkNmQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fdGltZXJfZGVsZXRlLlMKQEAgLTE1LDcgKzE1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVieAogICAgIHJldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX2dldG92ZXJydW4uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX190aW1lcl9nZXRvdmVycnVuLlMKaW5kZXggMzcyNjI1Yi4uY2IzNzc2NSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX2dldG92ZXJydW4uUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fdGltZXJfZ2V0b3ZlcnJ1bi5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fdGltZXJfZ2V0dGltZS5TCmluZGV4IDk1ODhiZjcuLjVjNDNmNGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX2dldHRpbWUuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3RpbWVyX3NldHRpbWUuUwppbmRleCA3YjBhYjQzLi5kYTdjNTg3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX190aW1lcl9zZXR0aW1lLlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3dhaXRpZC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fX3dhaXRpZC5TCmluZGV4IDdlNjNmOGEuLjdlM2VjZGQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX193YWl0aWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19fd2FpdGlkLlMKQEAgLTMxLDcgKzMxLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkaQogICAgIHBvcGwgICAgJWVzaQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fZXhpdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9fZXhpdC5TCmluZGV4IDViNTY5YjkuLjM2ZTg4NGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvX2V4aXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL19leGl0LlMKQEAgLTE1LDcgKzE1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVieAogICAgIHJldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9hY2N0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2FjY3QuUwppbmRleCA3ZmE0NTA4Li5hMDM2MTE0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2FjY3QuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2FjY3QuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2JpbmQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvYmluZC5TCmluZGV4IGM5OWFkYTEuLmFiNWEyOWUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvYmluZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvYmluZC5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2FwZ2V0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2NhcGdldC5TCmluZGV4IDgyMDY1Y2YuLjU0NDFlNDkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2FwZ2V0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jYXBnZXQuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2NhcHNldC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jYXBzZXQuUwppbmRleCA4YzkzNjdmLi5kMDRlNDExIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2NhcHNldC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2Fwc2V0LlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jaGRpci5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jaGRpci5TCmluZGV4IDAwOTg2ZDQuLmQzMmEwYmQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2hkaXIuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2NoZGlyLlMKQEAgLTE1LDcgKzE1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVieAogICAgIHJldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jaHJvb3QuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2hyb290LlMKaW5kZXggY2I4YTA5OS4uNjNkN2UwMCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jaHJvb3QuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Nocm9vdC5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfZ2V0cmVzLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Nsb2NrX2dldHJlcy5TCmluZGV4IDVmZWY1MWEuLjMyMTI5OWMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfZ2V0cmVzLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jbG9ja19nZXRyZXMuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Nsb2NrX2dldHRpbWUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TCmluZGV4IDQyNzVlZGMuLjU0Zjc2OWEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfbmFub3NsZWVwLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Nsb2NrX25hbm9zbGVlcC5TCmluZGV4IDFmMGZjYzYuLmNhOTYxYzAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfbmFub3NsZWVwLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jbG9ja19uYW5vc2xlZXAuUwpAQCAtMjcsNyArMjcsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZXNpCiAgICAgcG9wbCAgICAlZWR4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Nsb2NrX3NldHRpbWUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCmluZGV4IDRmNTlhMTAuLmFiOGM0M2UgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvc2UuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvY2xvc2UuUwppbmRleCAzZjRlMDM0Li4wYjNlNzNhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Nsb3NlLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9jbG9zZS5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZGVsZXRlX21vZHVsZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKaW5kZXggODkyM2Y0Ni4uNzU3YzhjMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kdXAuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZHVwLlMKaW5kZXggZWQ5MjJkZS4uNjRlMTUzOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kdXAuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2R1cC5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZHVwMy5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kdXAzLlMKaW5kZXggZDFhNzE0ZC4uYTBlY2QxOSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kdXAzLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9kdXAzLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9lcG9sbF9jcmVhdGUxLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZTEuUwppbmRleCA2OWRkZDliLi41YjZhMWJhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZTEuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZTEuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Vwb2xsX2N0bC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9lcG9sbF9jdGwuUwppbmRleCAyYTUwZGI4Li4zZmQ4YWNkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Vwb2xsX2N0bC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZXBvbGxfY3RsLlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9ldmVudGZkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2V2ZW50ZmQuUwppbmRleCA0OGEwN2EyLi41NWM1ZTZhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2V2ZW50ZmQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2V2ZW50ZmQuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2V4ZWN2ZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9leGVjdmUuUwppbmRleCAzNDViNWE0Li43YWQ1NGY3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2V4ZWN2ZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZXhlY3ZlLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mYWNjZXNzYXQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmFjY2Vzc2F0LlMKaW5kZXggMWYzNDBmNy4uMTE1ZDY0NSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mYWNjZXNzYXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZhY2Nlc3NhdC5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmFsbG9jYXRlNjQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmFsbG9jYXRlNjQuUwppbmRleCBiZTNkNDViLi5mOGJkZTYyIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZhbGxvY2F0ZTY0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mYWxsb2NhdGU2NC5TCkBAIC0zNSw3ICszNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYnAKICAgICBwb3BsICAgICVlZGkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmNoZGlyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZjaGRpci5TCmluZGV4IGRhOTVjMGIuLjU2ZTQ5NmMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmNoZGlyLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mY2hkaXIuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZjaG1vZC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mY2htb2QuUwppbmRleCBmZTE4OWY0Li40YmFkY2VhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZjaG1vZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmNobW9kLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mY2htb2RhdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mY2htb2RhdC5TCmluZGV4IDc5NDQ1MGIuLjU1MmU4NWMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmNobW9kYXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZjaG1vZGF0LlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mY2hvd24uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmNob3duLlMKaW5kZXggNWU4MjM4OC4uN2U4MjYzNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mY2hvd24uUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZjaG93bi5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmNob3duYXQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmNob3duYXQuUwppbmRleCBiZmU2MWU5Li5kZTAzOWQwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZjaG93bmF0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mY2hvd25hdC5TCkBAIC0zMSw3ICszMSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZGkKICAgICBwb3BsICAgICVlc2kKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmRhdGFzeW5jLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZkYXRhc3luYy5TCmluZGV4IDE3ODQ2Y2UuLmZkYjU1NzggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmRhdGFzeW5jLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mZGF0YXN5bmMuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZnZXR4YXR0ci5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mZ2V0eGF0dHIuUwppbmRleCAzMzVkMjk4Li4zZWQ2M2QzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZnZXR4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmdldHhhdHRyLlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mbGlzdHhhdHRyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZsaXN0eGF0dHIuUwppbmRleCA1Y2FiNWFkLi4yODQwMTE0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZsaXN0eGF0dHIuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZsaXN0eGF0dHIuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Zsb2NrLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Zsb2NrLlMKaW5kZXggMjc3ZGQyYS4uZGM5ZWYwMiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mbG9jay5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZmxvY2suUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mcmVtb3ZleGF0dHIuUwppbmRleCBhNjBlMDMxLi4xZTc3ZjgyIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnJlbW92ZXhhdHRyLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc2V0eGF0dHIuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnNldHhhdHRyLlMKaW5kZXggYzRkNDg1NC4uNzAzYThkNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc2V0eGF0dHIuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZzZXR4YXR0ci5TCkBAIC0zMSw3ICszMSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZGkKICAgICBwb3BsICAgICVlc2kKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnN0YXQ2NC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc3RhdDY0LlMKaW5kZXggMDU0ZjZkZS4uOTcwZWViMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc3RhdDY0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc3RhdDY0LlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc3RhdGF0NjQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnN0YXRhdDY0LlMKaW5kZXggOTI4ZDA3MS4uNDc2NTc4ZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc3RhdGF0NjQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZzdGF0YXQ2NC5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnN5bmMuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnN5bmMuUwppbmRleCBmMTJkMDEwLi45ZmM4NGI3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2ZzeW5jLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mc3luYy5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnRydW5jYXRlLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Z0cnVuY2F0ZS5TCmluZGV4IDA2Mjk4MmMuLjY3NjVkOTggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnRydW5jYXRlLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mdHJ1bmNhdGUuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Z0cnVuY2F0ZTY0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2Z0cnVuY2F0ZTY0LlMKaW5kZXggNzE5MjBiZS4uMjFlMjZjZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9mdHJ1bmNhdGU2NC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZnRydW5jYXRlNjQuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGVnaWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0ZWdpZC5TCmluZGV4IDYxZTc4MzkuLjQ0NWNkOTcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0ZWdpZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0ZWdpZC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICByZXQKIEVORChnZXRlZ2lkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRldWlkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGV1aWQuUwppbmRleCA4MGJjZjdhLi44MjkwYTkzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGV1aWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGV1aWQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0ZXVpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0Z2lkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGdpZC5TCmluZGV4IDg3ZDMxYTcuLmQ5MDc2N2YgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0Z2lkLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRnaWQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0Z2lkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRncm91cHMuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0Z3JvdXBzLlMKaW5kZXggZDliN2Q4MC4uZDM2YzA5YyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRncm91cHMuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGdyb3Vwcy5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0aXRpbWVyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGl0aW1lci5TCmluZGV4IDhmM2EwZWUuLmViZjEyNjAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0aXRpbWVyLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRpdGltZXIuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHBlZXJuYW1lLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHBlZXJuYW1lLlMKaW5kZXggMWVhNDJhMC4uYWJlY2Q0ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRwZWVybmFtZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cGVlcm5hbWUuUwpAQCAtMjAsNyArMjAsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHBnaWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cGdpZC5TCmluZGV4IDE3OWM3ZGIuLmU3NGVkM2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cGdpZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cGdpZC5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cHBpZC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRwcGlkLlMKaW5kZXggYjkzMjA0NC4uMDI1ZmE0MiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRwcGlkLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRwcGlkLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHJldAogRU5EKGdldHBwaWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHJlc2dpZC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRyZXNnaWQuUwppbmRleCBjZThkODlhLi5mZTA4Y2RmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHJlc2dpZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cmVzZ2lkLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRyZXN1aWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cmVzdWlkLlMKaW5kZXggZjQ0NGQxNi4uOGUyOTJmYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRyZXN1aWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHJlc3VpZC5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cmxpbWl0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHJsaW1pdC5TCmluZGV4IDY2ZjRlNmYuLmZkYjVhMDMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cmxpbWl0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRybGltaXQuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHJ1c2FnZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRydXNhZ2UuUwppbmRleCA4ZDRmZDdiLi5hZTVmNzk2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHJ1c2FnZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0cnVzYWdlLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRzaWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0c2lkLlMKaW5kZXggMzllNTU1MS4uZTFkYzg3ZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRzaWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHNpZC5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0c29ja25hbWUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0c29ja25hbWUuUwppbmRleCBlYzBjYzg0Li4yNTRiNzU1IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHNvY2tuYW1lLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRzb2NrbmFtZS5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0c29ja29wdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRzb2Nrb3B0LlMKaW5kZXggY2YxMDlmMS4uMmVmNjMwYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRzb2Nrb3B0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXRzb2Nrb3B0LlMKQEAgLTIwLDcgKzIwLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXR0aW1lb2ZkYXkuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0dGltZW9mZGF5LlMKaW5kZXggODAxZTdhYi4uNzA5YTE3YiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXR0aW1lb2ZkYXkuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHRpbWVvZmRheS5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0dWlkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHVpZC5TCmluZGV4IGU5MTMwNWEuLmMzNzVkMzAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0dWlkLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXR1aWQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0dWlkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXR4YXR0ci5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9nZXR4YXR0ci5TCmluZGV4IDViZDFhYjguLmRiOWM5ZGQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0eGF0dHIuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldHhhdHRyLlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pbml0X21vZHVsZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pbml0X21vZHVsZS5TCmluZGV4IDhhZmQ2NDQuLjU0M2IzMWUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2luaXRfbW9kdWxlLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pbm90aWZ5X2FkZF93YXRjaC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pbm90aWZ5X2FkZF93YXRjaC5TCmluZGV4IDBkZThmODguLmY1OGM2ZDEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2lub3RpZnlfYWRkX3dhdGNoLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pbm90aWZ5X2luaXQxLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2lub3RpZnlfaW5pdDEuUwppbmRleCAwOTIwNjE4Li4yYzdiMTAwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2lub3RpZnlfaW5pdDEuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2lub3RpZnlfaW5pdDEuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2lub3RpZnlfcm1fd2F0Y2guUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvaW5vdGlmeV9ybV93YXRjaC5TCmluZGV4IDM3Mzk0YzUuLmM0NTM0NzggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvaW5vdGlmeV9ybV93YXRjaC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvaW5vdGlmeV9ybV93YXRjaC5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvaW9wcmlvX2dldC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNzg3NzMuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0vKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLUVOVFJZKGlvcHJpb19nZXQpCi0gICAgcHVzaGwgICAlZWJ4Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCA4Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IGVieCwgMAotICAgIHB1c2hsICAgJWVjeAotICAgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgNAotICAgIC5jZmlfcmVsX29mZnNldCBlY3gsIDAKLSAgICBtb3YgICAgIDEyKCVlc3ApLCAlZWJ4Ci0gICAgbW92ICAgICAxNiglZXNwKSwgJWVjeAotICAgIG1vdmwgICAgJF9fTlJfaW9wcmlvX2dldCwgJWVheAotICAgIGludCAgICAgJDB4ODAKLSAgICBjbXBsICAgICQtTUFYX0VSUk5PLCAlZWF4Ci0gICAgamIgICAgICAxZgotICAgIG5lZ2wgICAgJWVheAotICAgIHB1c2hsICAgJWVheAotICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKLTE6Ci0gICAgcG9wbCAgICAlZWN4Ci0gICAgcG9wbCAgICAlZWJ4Ci0gICAgcmV0Ci1FTkQoaW9wcmlvX2dldCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvaW9wcmlvX3NldC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pb3ByaW9fc2V0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhM2U5MTkuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9pb3ByaW9fc2V0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0vKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLUVOVFJZKGlvcHJpb19zZXQpCi0gICAgcHVzaGwgICAlZWJ4Ci0gICAgLmNmaV9kZWZfY2ZhX29mZnNldCA4Ci0gICAgLmNmaV9yZWxfb2Zmc2V0IGVieCwgMAotICAgIHB1c2hsICAgJWVjeAotICAgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgNAotICAgIC5jZmlfcmVsX29mZnNldCBlY3gsIDAKLSAgICBwdXNobCAgICVlZHgKLSAgICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IDQKLSAgICAuY2ZpX3JlbF9vZmZzZXQgZWR4LCAwCi0gICAgbW92ICAgICAxNiglZXNwKSwgJWVieAotICAgIG1vdiAgICAgMjAoJWVzcCksICVlY3gKLSAgICBtb3YgICAgIDI0KCVlc3ApLCAlZWR4Ci0gICAgbW92bCAgICAkX19OUl9pb3ByaW9fc2V0LCAlZWF4Ci0gICAgaW50ICAgICAkMHg4MAotICAgIGNtcGwgICAgJC1NQVhfRVJSTk8sICVlYXgKLSAgICBqYiAgICAgIDFmCi0gICAgbmVnbCAgICAlZWF4Ci0gICAgcHVzaGwgICAlZWF4Ci0gICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAotMToKLSAgICBwb3BsICAgICVlZHgKLSAgICBwb3BsICAgICVlY3gKLSAgICBwb3BsICAgICVlYngKLSAgICByZXQKLUVORChpb3ByaW9fc2V0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9raWxsLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2tpbGwuUwppbmRleCBmYmY1ZmE4Li4wYzFlMjRhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2tpbGwuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2tpbGwuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2tsb2djdGwuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMva2xvZ2N0bC5TCmluZGV4IDAzZjI0YjguLjg2OTMyNGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMva2xvZ2N0bC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMva2xvZ2N0bC5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGdldHhhdHRyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xnZXR4YXR0ci5TCmluZGV4IDZlZTJjNTUuLjNlZDRmMTEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGdldHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9sZ2V0eGF0dHIuUwpAQCAtMjcsNyArMjcsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZXNpCiAgICAgcG9wbCAgICAlZWR4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xpbmthdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9saW5rYXQuUwppbmRleCBkOTg3NmViLi5lMGM3ZTVmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xpbmthdC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGlua2F0LlMKQEAgLTMxLDcgKzMxLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkaQogICAgIHBvcGwgICAgJWVzaQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9saXN0ZW4uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGlzdGVuLlMKaW5kZXggYjY3MWIyNS4uYzY1Zjk3MCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9saXN0ZW4uUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xpc3Rlbi5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGlzdHhhdHRyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xpc3R4YXR0ci5TCmluZGV4IGU4NmI4MmUuLjk4YTUxMTQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGlzdHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9saXN0eGF0dHIuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xsaXN0eGF0dHIuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGxpc3R4YXR0ci5TCmluZGV4IDhkMTNkYTguLmE1YWI2MzYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGxpc3R4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbGxpc3R4YXR0ci5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xyZW1vdmV4YXR0ci5TCmluZGV4IDlkYWIwYTMuLjUwOGFiYmEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9scmVtb3ZleGF0dHIuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xzZWVrLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xzZWVrLlMKaW5kZXggMmQwM2Y0Ni4uNWY3NzgzMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9sc2Vlay5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbHNlZWsuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xzZXR4YXR0ci5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9sc2V0eGF0dHIuUwppbmRleCAxNDUyMjk4Li5kODc4Njg0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2xzZXR4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbHNldHhhdHRyLlMKQEAgLTMxLDcgKzMxLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkaQogICAgIHBvcGwgICAgJWVzaQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tYWR2aXNlLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21hZHZpc2UuUwppbmRleCBmZDRhZjExLi4zZThjN2ZkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21hZHZpc2UuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21hZHZpc2UuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21pbmNvcmUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbWluY29yZS5TCmluZGV4IDAxZWI1MTkuLjcwOTZmNmMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbWluY29yZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbWluY29yZS5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbWtkaXJhdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9ta2RpcmF0LlMKaW5kZXggYjAyMjgzOC4uODYyYTE4YyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9ta2RpcmF0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9ta2RpcmF0LlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9ta25vZGF0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21rbm9kYXQuUwppbmRleCAyMzNjMGIyLi5lMDNiYTQyIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21rbm9kYXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21rbm9kYXQuUwpAQCAtMjcsNyArMjcsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZXNpCiAgICAgcG9wbCAgICAlZWR4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21sb2NrLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21sb2NrLlMKaW5kZXggZmI0NjQxZi4uZjU4MmY3NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tbG9jay5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbWxvY2suUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21sb2NrYWxsLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21sb2NrYWxsLlMKaW5kZXggOTQwMzM1MS4uYmVjY2E4MSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tbG9ja2FsbC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbWxvY2thbGwuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21vdW50LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21vdW50LlMKaW5kZXggZDk5ZjVmNC4uN2JlMjgxMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tb3VudC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbW91bnQuUwpAQCAtMzEsNyArMzEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWRpCiAgICAgcG9wbCAgICAlZXNpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21wcm90ZWN0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21wcm90ZWN0LlMKaW5kZXggMzIwNWY4My4uMDUxNmM0NSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tcHJvdGVjdC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbXByb3RlY3QuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21yZW1hcC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tcmVtYXAuUwppbmRleCAyYjIwMDc5Li40MmU3NWNlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21yZW1hcC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbXJlbWFwLlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tc3luYy5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tc3luYy5TCmluZGV4IDMzOWUzODEuLjY2NzIyZjIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbXN5bmMuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL21zeW5jLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tdW5sb2NrLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL211bmxvY2suUwppbmRleCA1ZmIyOWNiLi4yZmMzYWE3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL211bmxvY2suUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL211bmxvY2suUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL211bmxvY2thbGwuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbXVubG9ja2FsbC5TCmluZGV4IDIzOGY4MTIuLjFiYzk5ZWEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbXVubG9ja2FsbC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbXVubG9ja2FsbC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICByZXQKIEVORChtdW5sb2NrYWxsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tdW5tYXAuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbXVubWFwLlMKaW5kZXggMmQzNDhkYi4uODc4YWFlNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9tdW5tYXAuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL211bm1hcC5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbmFub3NsZWVwLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL25hbm9zbGVlcC5TCmluZGV4IDlkOGFlOWQuLmZlOGFmOTAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvbmFub3NsZWVwLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9uYW5vc2xlZXAuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKaW5kZXggNDEyYmJlZC4uOGM4ZTBmZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9wZXJzb25hbGl0eS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcGVyc29uYWxpdHkuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3BpcGUyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3BpcGUyLlMKaW5kZXggYmZlMDNhMi4uOTljNGU4YiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9waXBlMi5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcGlwZTIuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3ByY3RsLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3ByY3RsLlMKaW5kZXggZmNhMzQzZi4uNjNlYzg5OSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9wcmN0bC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcHJjdGwuUwpAQCAtMzEsNyArMzEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWRpCiAgICAgcG9wbCAgICAlZXNpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3ByZWFkNjQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcHJlYWQ2NC5TCmluZGV4IDZjZjRlNGIuLjZiM2M4YWQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcHJlYWQ2NC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcHJlYWQ2NC5TCkBAIC0zMSw3ICszMSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZGkKICAgICBwb3BsICAgICVlc2kKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcHJsaW1pdDY0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3BybGltaXQ2NC5TCmluZGV4IDY1MzE2YTcuLjZhYTg3NWYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcHJsaW1pdDY0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9wcmxpbWl0NjQuUwpAQCAtMjcsNyArMjcsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZXNpCiAgICAgcG9wbCAgICAlZWR4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3B3cml0ZTY0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3B3cml0ZTY0LlMKaW5kZXggY2NjZWE4Yi4uN2Q1MzA5NSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9wd3JpdGU2NC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcHdyaXRlNjQuUwpAQCAtMzEsNyArMzEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWRpCiAgICAgcG9wbCAgICAlZXNpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlYWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZC5TCmluZGV4IGY4MGRiMzEuLjk4MTRjOGYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZC5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZGFoZWFkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlYWRhaGVhZC5TCmluZGV4IGY1Mzc2OWEuLjQ5YTE3ZDAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZGFoZWFkLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZWFkYWhlYWQuUwpAQCAtMjcsNyArMjcsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZXNpCiAgICAgcG9wbCAgICAlZWR4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlYWRsaW5rYXQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZGxpbmthdC5TCmluZGV4IDIyOWRhZmUuLjFhMTYxYzAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZGxpbmthdC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZGxpbmthdC5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZHYuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVhZHYuUwppbmRleCA4Y2IwMWEwLi44YjVmZjQxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlYWR2LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZWFkdi5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVjdmZyb20uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVjdmZyb20uUwppbmRleCBkZDk5YTA5Li41M2QwOGY2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlY3Zmcm9tLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZWN2ZnJvbS5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVjdm1tc2cuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVjdm1tc2cuUwppbmRleCBmOTE2ZmNkLi4zZWY4NzQwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlY3ZtbXNnLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZWN2bW1zZy5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVjdm1zZy5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZWN2bXNnLlMKaW5kZXggMTJkYWQyOC4uMTUwNjcyZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZWN2bXNnLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZWN2bXNnLlMKQEAgLTIwLDcgKzIwLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZW1vdmV4YXR0ci5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZW1vdmV4YXR0ci5TCmluZGV4IDM5NzRhMDcuLmU3YzU1ZWIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVtb3ZleGF0dHIuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZW5hbWVhdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9yZW5hbWVhdC5TCmluZGV4IDI5ODJmNTEuLjVkZmU2NWYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvcmVuYW1lYXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3JlbmFtZWF0LlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9tYXguUwppbmRleCAzMjA1YzcyLi5kOGRlYmUyIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9tYXguUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9tYXguUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9taW4uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCmluZGV4IDM5YzRkMmMuLmU5Njg5ZmEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfZ2V0cGFyYW0uUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfZ2V0cGFyYW0uUwppbmRleCA0N2NiNGFmLi42YjVlN2M4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX2dldHBhcmFtLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9nZXRwYXJhbS5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfZ2V0c2NoZWR1bGVyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX2dldHNjaGVkdWxlci5TCmluZGV4IDA3ZmJlNmIuLmEyYzU3NDYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfZ2V0c2NoZWR1bGVyLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9nZXRzY2hlZHVsZXIuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwuUwppbmRleCBlN2ExMDM4Li5mODAxMmYzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfcnJfZ2V0X2ludGVydmFsLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9zZXRhZmZpbml0eS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9zZXRhZmZpbml0eS5TCmluZGV4IGJiMzUyNTkuLjc2MDEzZjkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfc2V0YWZmaW5pdHkuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX3NldGFmZmluaXR5LlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9zZXRwYXJhbS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9zZXRwYXJhbS5TCmluZGV4IDNlOTNjNGMuLmFjYTRiZDkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfc2V0cGFyYW0uUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfc2V0c2NoZWR1bGVyLlMKaW5kZXggZmNhYmYxMi4uZmFkNzJjNiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX3NldHNjaGVkdWxlci5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfeWllbGQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2NoZWRfeWllbGQuUwppbmRleCBhOGIyMmUzLi44YjRhOWJlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zY2hlZF95aWVsZC5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2VuZGZpbGUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2VuZGZpbGUuUwppbmRleCAzMGJmM2FkLi43YmQ4NmQwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NlbmRmaWxlLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kZmlsZS5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2VuZGZpbGU2NC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kZmlsZTY0LlMKaW5kZXggNWE3ZjJiYi4uYmQ3NjA0MyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kZmlsZTY0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kZmlsZTY0LlMKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kbW1zZy5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kbW1zZy5TCmluZGV4IDA5YTMyOTIuLjRiYzNjNDAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2VuZG1tc2cuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NlbmRtbXNnLlMKQEAgLTIwLDcgKzIwLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kbXNnLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NlbmRtc2cuUwppbmRleCBlYWY3ZmIzLi5lYjhmYzYzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NlbmRtc2cuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NlbmRtc2cuUwpAQCAtMjAsNyArMjAsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NlbmR0by5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZW5kdG8uUwppbmRleCAwY2Y1ZTBhLi44Y2I3MmM4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NlbmR0by5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2VuZHRvLlMKQEAgLTIwLDcgKzIwLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRnaWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0Z2lkLlMKaW5kZXggYjBiNzE4NS4uYmFhMWIxYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRnaWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldGdpZC5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0Z3JvdXBzLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldGdyb3Vwcy5TCmluZGV4IGJlMjI3Y2EuLjM2NGFhYWQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0Z3JvdXBzLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRncm91cHMuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldGl0aW1lci5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRpdGltZXIuUwppbmRleCA0YTMyM2RhLi40MDljNGM2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldGl0aW1lci5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0aXRpbWVyLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRucy5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRucy5TCmluZGV4IGZhNjliNGEuLmRkYmU3NTggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0bnMuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldG5zLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRwZ2lkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHBnaWQuUwppbmRleCBlYmE3ODBjLi5hYzFiMTJkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHBnaWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHBnaWQuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHByaW9yaXR5LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHByaW9yaXR5LlMKaW5kZXggNWVhMDUxOS4uOTNjMWUwNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRwcmlvcml0eS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cHJpb3JpdHkuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHJlZ2lkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHJlZ2lkLlMKaW5kZXggYWU1YmZjYS4uMGVjZmE5YSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRyZWdpZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cmVnaWQuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHJlc2dpZC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRyZXNnaWQuUwppbmRleCA2NGI1ZjdlLi5hNjkxNGM0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHJlc2dpZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cmVzZ2lkLlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRyZXN1aWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cmVzdWlkLlMKaW5kZXggMmEyOWZhNS4uYzMzYzFjYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRyZXN1aWQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHJlc3VpZC5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cmV1aWQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cmV1aWQuUwppbmRleCAyMDBhODNhLi40MjQ0OTg4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHJldWlkLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRyZXVpZC5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cmxpbWl0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHJsaW1pdC5TCmluZGV4IDY0YTQ2YzAuLjNlODY1MDQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0cmxpbWl0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRybGltaXQuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHNpZC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRzaWQuUwppbmRleCAzODJhZDBjLi4zOThjMTEwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHNpZC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0c2lkLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHJldAogRU5EKHNldHNpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0c29ja29wdC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRzb2Nrb3B0LlMKaW5kZXggZTU3YzlkMi4uNmVmMTY4ZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRzb2Nrb3B0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXRzb2Nrb3B0LlMKQEAgLTIwLDcgKzIwLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXR0aW1lb2ZkYXkuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0dGltZW9mZGF5LlMKaW5kZXggNGIyZWNhOS4uMzdlMTFjNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXR0aW1lb2ZkYXkuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHRpbWVvZmRheS5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0dWlkLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHVpZC5TCmluZGV4IGNmMTBhZDYuLmZjZWE2NmQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0dWlkLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXR1aWQuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHhhdHRyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NldHhhdHRyLlMKaW5kZXggNWVkYmEyZC4uZDY0NzNjZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zZXR4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2V0eGF0dHIuUwpAQCAtMzEsNyArMzEsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWRpCiAgICAgcG9wbCAgICAlZXNpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NodXRkb3duLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NodXRkb3duLlMKaW5kZXggZjFkNjA2YS4uMzJmYTE3YSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zaHV0ZG93bi5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2h1dGRvd24uUwpAQCAtMjAsNyArMjAsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMKaW5kZXggNjQ4NzJkZi4uNjg4MmE3OCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zaWdhbHRzdGFjay5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc2lnYWx0c3RhY2suUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NvY2tldHBhaXIuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc29ja2V0cGFpci5TCmluZGV4IDQwMjc3NTIuLjk0NWZhYTAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc29ja2V0cGFpci5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc29ja2V0cGFpci5TCkBAIC0yMCw3ICsyMCw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc3BsaWNlLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NwbGljZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ZTIzMTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3NwbGljZS5TCkBAIC0wLDAgKzEsNDYgQEAKKy8qIEdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weS4gRG8gbm90IGVkaXQuICovCisKKyNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KKworRU5UUlkoc3BsaWNlKQorICAgIHB1c2hsICAgJWVieAorICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgOAorICAgIC5jZmlfcmVsX29mZnNldCBlYngsIDAKKyAgICBwdXNobCAgICVlY3gKKyAgICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IDQKKyAgICAuY2ZpX3JlbF9vZmZzZXQgZWN4LCAwCisgICAgcHVzaGwgICAlZWR4CisgICAgLmNmaV9hZGp1c3RfY2ZhX29mZnNldCA0CisgICAgLmNmaV9yZWxfb2Zmc2V0IGVkeCwgMAorICAgIHB1c2hsICAgJWVzaQorICAgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgNAorICAgIC5jZmlfcmVsX29mZnNldCBlc2ksIDAKKyAgICBwdXNobCAgICVlZGkKKyAgICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IDQKKyAgICAuY2ZpX3JlbF9vZmZzZXQgZWRpLCAwCisgICAgcHVzaGwgICAlZWJwCisgICAgLmNmaV9hZGp1c3RfY2ZhX29mZnNldCA0CisgICAgLmNmaV9yZWxfb2Zmc2V0IGVicCwgMAorICAgIG1vdiAgICAgMjgoJWVzcCksICVlYngKKyAgICBtb3YgICAgIDMyKCVlc3ApLCAlZWN4CisgICAgbW92ICAgICAzNiglZXNwKSwgJWVkeAorICAgIG1vdiAgICAgNDAoJWVzcCksICVlc2kKKyAgICBtb3YgICAgIDQ0KCVlc3ApLCAlZWRpCisgICAgbW92ICAgICA0OCglZXNwKSwgJWVicAorICAgIG1vdmwgICAgJF9fTlJfc3BsaWNlLCAlZWF4CisgICAgaW50ICAgICAkMHg4MAorICAgIGNtcGwgICAgJC1NQVhfRVJSTk8sICVlYXgKKyAgICBqYiAgICAgIDFmCisgICAgbmVnbCAgICAlZWF4CisgICAgcHVzaGwgICAlZWF4CisgICAgY2FsbCAgICBfX3NldF9lcnJubworICAgIGFkZGwgICAgJDQsICVlc3AKKzE6CisgICAgcG9wbCAgICAlZWJwCisgICAgcG9wbCAgICAlZWRpCisgICAgcG9wbCAgICAlZXNpCisgICAgcG9wbCAgICAlZWR4CisgICAgcG9wbCAgICAlZWN4CisgICAgcG9wbCAgICAlZWJ4CisgICAgcmV0CitFTkQoc3BsaWNlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zd2Fwb2ZmLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N3YXBvZmYuUwppbmRleCAxNjU3ZTY0Li4wZTIxMDMzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N3YXBvZmYuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N3YXBvZmYuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N3YXBvbi5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zd2Fwb24uUwppbmRleCAxNmQwNjE3Li5hNGQ1ZTAzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N3YXBvbi5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc3dhcG9uLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zeW1saW5rYXQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc3ltbGlua2F0LlMKaW5kZXggNzhmOWZhNy4uNjE4ZjVkOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zeW1saW5rYXQuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N5bWxpbmthdC5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvc3luYy5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zeW5jLlMKaW5kZXggYTBjZjY2Zi4uYTFmMTc4MiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zeW5jLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zeW5jLlMKQEAgLTE1LDcgKzE1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVieAogICAgIHJldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy9zeXNpbmZvLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N5c2luZm8uUwppbmRleCAxNjE5ZWRiLi5jM2VhYmIwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N5c2luZm8uUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3N5c2luZm8uUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGRlbnRzLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RlZS5TCnNpbWlsYXJpdHkgaW5kZXggNjclCmNvcHkgZnJvbSBsaWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGRlbnRzLlMKY29weSB0byBsaWJjL2FyY2gteDg2L3N5c2NhbGxzL3RlZS5TCmluZGV4IDBiMDQ1YjIuLjk0MjI2NjAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0ZGVudHMuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RlZS5TCkBAIC0yLDcgKzIsNyBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldGRlbnRzKQorRU5UUlkodGVlKQogICAgIHB1c2hsICAgJWVieAogICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgOAogICAgIC5jZmlfcmVsX29mZnNldCBlYngsIDAKQEAgLTEyLDEwICsxMiwxNCBAQAogICAgIHB1c2hsICAgJWVkeAogICAgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgNAogICAgIC5jZmlfcmVsX29mZnNldCBlZHgsIDAKLSAgICBtb3YgICAgIDE2KCVlc3ApLCAlZWJ4Ci0gICAgbW92ICAgICAyMCglZXNwKSwgJWVjeAotICAgIG1vdiAgICAgMjQoJWVzcCksICVlZHgKLSAgICBtb3ZsICAgICRfX05SX2dldGRlbnRzNjQsICVlYXgKKyAgICBwdXNobCAgICVlc2kKKyAgICAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IDQKKyAgICAuY2ZpX3JlbF9vZmZzZXQgZXNpLCAwCisgICAgbW92ICAgICAyMCglZXNwKSwgJWVieAorICAgIG1vdiAgICAgMjQoJWVzcCksICVlY3gKKyAgICBtb3YgICAgIDI4KCVlc3ApLCAlZWR4CisgICAgbW92ICAgICAzMiglZXNwKSwgJWVzaQorICAgIG1vdmwgICAgJF9fTlJfdGVlLCAlZWF4CiAgICAgaW50ICAgICAkMHg4MAogICAgIGNtcGwgICAgJC1NQVhfRVJSTk8sICVlYXgKICAgICBqYiAgICAgIDFmCkBAIC0yMywxMCArMjcsMTAgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgorICAgIHBvcGwgICAgJWVzaQogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieAogICAgIHJldAotRU5EKGdldGRlbnRzKQorRU5EKHRlZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdGdraWxsLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3Rna2lsbC5TCmluZGV4IDY5ZmZkZjguLjM4NTgyN2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdGdraWxsLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90Z2tpbGwuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RpbWVyZmRfY3JlYXRlLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RpbWVyZmRfY3JlYXRlLlMKaW5kZXggYzBiYzViNS4uMzQzMTk1ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90aW1lcmZkX2NyZWF0ZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdGltZXJmZF9jcmVhdGUuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RpbWVyZmRfZ2V0dGltZS5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90aW1lcmZkX2dldHRpbWUuUwppbmRleCA1ZGQ3YWQ3Li45YjNhMzE0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RpbWVyZmRfZ2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdGltZXJmZF9nZXR0aW1lLlMKQEAgLTE5LDcgKzE5LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVjeAogICAgIHBvcGwgICAgJWVieApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90aW1lcmZkX3NldHRpbWUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdGltZXJmZF9zZXR0aW1lLlMKaW5kZXggYmIwMjdkZi4uODE5YjcyMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90aW1lcmZkX3NldHRpbWUuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RpbWVyZmRfc2V0dGltZS5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdGltZXMuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdGltZXMuUwppbmRleCAwNzU3NTBkLi5mNTczOWQzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RpbWVzLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90aW1lcy5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdHJ1bmNhdGUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdHJ1bmNhdGUuUwppbmRleCA5MjcwYTUzLi40MjdmOTVmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3RydW5jYXRlLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90cnVuY2F0ZS5TCkBAIC0xOSw3ICsxOSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdHJ1bmNhdGU2NC5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90cnVuY2F0ZTY0LlMKaW5kZXggODljMmM0YS4uMmM0OTc1MSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90cnVuY2F0ZTY0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy90cnVuY2F0ZTY0LlMKQEAgLTIzLDcgKzIzLDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVkeAogICAgIHBvcGwgICAgJWVjeApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy91bWFzay5TIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy91bWFzay5TCmluZGV4IDgxZGY2NGQuLjNhZmZjOGQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdW1hc2suUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3VtYXNrLlMKQEAgLTE1LDcgKzE1LDYgQEAKICAgICBwdXNobCAgICVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJWVzcAotICAgIG9ybCAgICAgJC0xLCAlZWF4CiAxOgogICAgIHBvcGwgICAgJWVieAogICAgIHJldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy91bW91bnQyLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3Vtb3VudDIuUwppbmRleCBjZDIxNjIzLi5kMmIzNTQ5IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3Vtb3VudDIuUworKysgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3Vtb3VudDIuUwpAQCAtMTksNyArMTksNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWN4CiAgICAgcG9wbCAgICAlZWJ4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3VuYW1lLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3VuYW1lLlMKaW5kZXggOWQ2NWU4NS4uZTk5NjgwNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy91bmFtZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdW5hbWUuUwpAQCAtMTUsNyArMTUsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWJ4CiAgICAgcmV0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3VubGlua2F0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3VubGlua2F0LlMKaW5kZXggNjhiZjA1Yi4uNjQxN2QyYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy91bmxpbmthdC5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdW5saW5rYXQuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3Vuc2hhcmUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdW5zaGFyZS5TCmluZGV4IDdlNDhjYjEuLmEyODlkNGQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdW5zaGFyZS5TCisrKyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdW5zaGFyZS5TCkBAIC0xNSw3ICsxNSw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlYngKICAgICByZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdXRpbWVuc2F0LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3V0aW1lbnNhdC5TCmluZGV4IDRiMmE5YjYuLmQ4YzkwODAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvdXRpbWVuc2F0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy91dGltZW5zYXQuUwpAQCAtMjcsNyArMjcsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZXNpCiAgICAgcG9wbCAgICAlZWR4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGRlbnRzLlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3Ztc3BsaWNlLlMKc2ltaWxhcml0eSBpbmRleCA2NSUKY29weSBmcm9tIGxpYmMvYXJjaC14ODYvc3lzY2FsbHMvZ2V0ZGVudHMuUwpjb3B5IHRvIGxpYmMvYXJjaC14ODYvc3lzY2FsbHMvdm1zcGxpY2UuUwppbmRleCAwYjA0NWIyLi4yYWZiYTYwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL2dldGRlbnRzLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy92bXNwbGljZS5TCkBAIC0yLDcgKzIsNyBAQAogCiAjaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+CiAKLUVOVFJZKGdldGRlbnRzKQorRU5UUlkodm1zcGxpY2UpCiAgICAgcHVzaGwgICAlZWJ4CiAgICAgLmNmaV9kZWZfY2ZhX29mZnNldCA4CiAgICAgLmNmaV9yZWxfb2Zmc2V0IGVieCwgMApAQCAtMTIsMTAgKzEyLDE0IEBACiAgICAgcHVzaGwgICAlZWR4CiAgICAgLmNmaV9hZGp1c3RfY2ZhX29mZnNldCA0CiAgICAgLmNmaV9yZWxfb2Zmc2V0IGVkeCwgMAotICAgIG1vdiAgICAgMTYoJWVzcCksICVlYngKLSAgICBtb3YgICAgIDIwKCVlc3ApLCAlZWN4Ci0gICAgbW92ICAgICAyNCglZXNwKSwgJWVkeAotICAgIG1vdmwgICAgJF9fTlJfZ2V0ZGVudHM2NCwgJWVheAorICAgIHB1c2hsICAgJWVzaQorICAgIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQgNAorICAgIC5jZmlfcmVsX29mZnNldCBlc2ksIDAKKyAgICBtb3YgICAgIDIwKCVlc3ApLCAlZWJ4CisgICAgbW92ICAgICAyNCglZXNwKSwgJWVjeAorICAgIG1vdiAgICAgMjgoJWVzcCksICVlZHgKKyAgICBtb3YgICAgIDMyKCVlc3ApLCAlZXNpCisgICAgbW92bCAgICAkX19OUl92bXNwbGljZSwgJWVheAogICAgIGludCAgICAgJDB4ODAKICAgICBjbXBsICAgICQtTUFYX0VSUk5PLCAlZWF4CiAgICAgamIgICAgICAxZgpAQCAtMjMsMTAgKzI3LDEwIEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKKyAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKICAgICBwb3BsICAgICVlYngKICAgICByZXQKLUVORChnZXRkZW50cykKK0VORCh2bXNwbGljZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvd2FpdDQuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvd2FpdDQuUwppbmRleCBiZDRiZDUwLi5mZGE3NWMwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3dhaXQ0LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy93YWl0NC5TCkBAIC0yNyw3ICsyNyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlc2kKICAgICBwb3BsICAgICVlZHgKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvd3JpdGUuUyBiL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvd3JpdGUuUwppbmRleCBhNDY0MTk2Li4xMTU5NzRlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3dyaXRlLlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy93cml0ZS5TCkBAIC0yMyw3ICsyMyw2IEBACiAgICAgcHVzaGwgICAlZWF4CiAgICAgY2FsbCAgICBfX3NldF9lcnJubwogICAgIGFkZGwgICAgJDQsICVlc3AKLSAgICBvcmwgICAgICQtMSwgJWVheAogMToKICAgICBwb3BsICAgICVlZHgKICAgICBwb3BsICAgICVlY3gKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvd3JpdGV2LlMgYi9saWJjL2FyY2gteDg2L3N5c2NhbGxzL3dyaXRldi5TCmluZGV4IGRhOWFlN2MuLjc3ZTVjZDEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYvc3lzY2FsbHMvd3JpdGV2LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zeXNjYWxscy93cml0ZXYuUwpAQCAtMjMsNyArMjMsNiBAQAogICAgIHB1c2hsICAgJWVheAogICAgIGNhbGwgICAgX19zZXRfZXJybm8KICAgICBhZGRsICAgICQ0LCAlZXNwCi0gICAgb3JsICAgICAkLTEsICVlYXgKIDE6CiAgICAgcG9wbCAgICAlZWR4CiAgICAgcG9wbCAgICAlZWN4CmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2L3g4Ni5tayBiL2xpYmMvYXJjaC14ODYveDg2Lm1rCmluZGV4IGQxM2E5MzQuLjhhYTI2NDUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODYveDg2Lm1rCisrKyBiL2xpYmMvYXJjaC14ODYveDg2Lm1rCkBAIC01LDYgKzUsNyBAQAogICAgIGJpb25pYy9sZWdhY3lfMzJfYml0X3N1cHBvcnQuY3BwIFwKICAgICBiaW9uaWMvbmRrX2NydWZ0LmNwcCBcCiAgICAgYmlvbmljL3RpbWU2NC5jIFwKKyAgICB1cHN0cmVhbS1vcGVuYnNkL2xpYi9saWJjL3N0ZGlvL3B1dHcuYyBcCiAKICMgRm9ydGlmeSBpbXBsZW1lbnRhdGlvbnMgb2YgbGliYyBmdW5jdGlvbnMuCiBsaWJjX2NvbW1vbl9zcmNfZmlsZXNfeDg2ICs9IFwKQEAgLTMwLDcgKzMxLDYgQEAKICAgICBhcmNoLXg4Ni9iaW9uaWMvX19zZXRfdGxzLmMgXAogICAgIGFyY2gteDg2L2Jpb25pYy9zaWdzZXRqbXAuUyBcCiAgICAgYXJjaC14ODYvYmlvbmljL3N5c2NhbGwuUyBcCi0gICAgYXJjaC14ODYvYmlvbmljL3Zmb3JrLlMgXAogCiAjIyBBUkNIIHZhcmlhbnQgc3BlY2lmaWMgc291cmNlIGZpbGVzCiBhcmNoX3ZhcmlhbnRfbWsgOj0gJChMT0NBTF9QQVRIKS9hcmNoLXg4Ni8kKFRBUkdFVF9BUkNIX1ZBUklBTlQpLyQoVEFSR0VUX0FSQ0hfVkFSSUFOVCkubWsKQEAgLTQwLDYgKzQwLDkgQEAKIGluY2x1ZGUgJChhcmNoX3ZhcmlhbnRfbWspCiBsaWJjX2NvbW1vbl9hZGRpdGlvbmFsX2RlcGVuZGVuY2llcyArPSAkKGFyY2hfdmFyaWFudF9taykKIAorbGliY19uZXRic2Rfc3JjX2ZpbGVzX3g4NiA6PSBcCisgICAgdXBzdHJlYW0tbmV0YnNkL2NvbW1vbi9saWIvbGliYy9oYXNoL3NoYTEvc2hhMS5jIFwKKwogYXJjaF92YXJpYW50X21rIDo9CiAKIGxpYmNfY3J0X3RhcmdldF9jZmxhZ3NfeDg2IDo9IFwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvYmlvbmljL19fYmlvbmljX2Nsb25lLlMgYi9saWJjL2FyY2gteDg2XzY0L2Jpb25pYy9fX2Jpb25pY19jbG9uZS5TCmluZGV4IGRiN2QwNWMuLmUwY2U1YTYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvYmlvbmljL19fYmlvbmljX2Nsb25lLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9iaW9uaWMvX19iaW9uaWNfY2xvbmUuUwpAQCAtNDUsMjYgKzQ1LDMzIEBACiAgICAgICAgICMgTWFrZSB0aGUgc3lzdGVtIGNhbGwuCiAgICAgICAgIG1vdmwgICAgJF9fTlJfY2xvbmUsICVlYXgKICAgICAgICAgc3lzY2FsbAotICAgICAgICB0ZXN0bCAgICVlYXgsICVlYXgKLSAgICAgICAgam5zICAgICAxZgorCisgICAgICAgICMgQ2hlY2sgcmVzdWx0LgorICAgICAgICB0ZXN0cSAgICVyYXgsICVyYXgKKyAgICAgICAganogICAgICAuTF9iY19jaGlsZAorICAgICAgICBqZyAgICAgIC5MX2JjX3BhcmVudAogCiAgICAgICAgICMgQW4gZXJyb3Igb2NjdXJyZWQsIHNldCBlcnJubyBhbmQgcmV0dXJuIC0xLgogICAgICAgICBuZWdsICAgICVlYXgKICAgICAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICAgICAgb3JsICAgICAkLTEsICVlYXgKLSAgICAgICAgam1wICAgICAyZgotMToKLSAgICAgICAgam56ICAgICAyZgorICAgICAgICByZXQKIAotICAgICAgICAjIFdlJ3JlIGluIHRoZSBjaGlsZCBub3csIHNvIGNhbGwgX19iaW9uaWNfY2xvbmVfZW50cnkKKy5MX2JjX2NoaWxkOgorICAgICAgICAjIFdlIGRvbid0IHdhbnQgYW55b25lIHRvIHVud2luZCBwYXN0IHRoaXMgcG9pbnQuCisgICAgICAgIC5jZmlfdW5kZWZpbmVkICVyaXAKKyAgICAgICAgLmNmaV91bmRlZmluZWQgJXJicAorCisgICAgICAgICMgV2UncmUgaW4gdGhlIGNoaWxkIG5vdywgc28gY2FsbCBfX3N0YXJ0X3RocmVhZAogICAgICAgICAjIHdpdGggdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBjaGlsZCBzdGFjayBtb3ZlZCBpbnRvCiAgICAgICAgICMgdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVycy4KICAgICAgICAgcG9wcSAgICAlcmRpICAjIGZuCiAgICAgICAgIHBvcHEgICAgJXJzaSAgIyBhcmcKLSAgICAgICAgY2FsbCAgICBfX2Jpb25pY19jbG9uZV9lbnRyeQorICAgICAgICBjYWxsICAgIF9fc3RhcnRfdGhyZWFkCiAgICAgICAgIGhsdAotMjoKKworLkxfYmNfcGFyZW50OgorICAgICAgICAjIFdlJ3JlIHRoZSBwYXJlbnQ7IG5vdGhpbmcgdG8gZG8uCiAgICAgICAgIHJldAogRU5EKF9fYmlvbmljX2Nsb25lKQogLmhpZGRlbiBfX2Jpb25pY19jbG9uZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9iaW9uaWMvc3lzY2FsbC5TIGIvbGliYy9hcmNoLXg4Nl82NC9iaW9uaWMvc3lzY2FsbC5TCmluZGV4IGE5OGE0MzYuLmQ1Njk0Y2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvYmlvbmljL3N5c2NhbGwuUworKysgYi9saWJjL2FyY2gteDg2XzY0L2Jpb25pYy9zeXNjYWxsLlMKQEAgLTU4LDcgKzU4LDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc3lzY2FsbCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvYmlvbmljL3Zmb3JrLlMgYi9saWJjL2FyY2gteDg2XzY0L2Jpb25pYy92Zm9yay5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzIzZjMwLi4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC14ODZfNjQvYmlvbmljL3Zmb3JrLlMKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KLQotLy8gVGhpcyBjdXN0b20gY29kZSBwcmVzZXJ2ZXMgdGhlIHJldHVybiBhZGRyZXNzIGFjcm9zcyB0aGUgc3lzdGVtIGNhbGwuCi0KLUVOVFJZKHZmb3JrKQotICBwb3BxICAgICVyZGkgIC8vIEdyYWIgdGhlIHJldHVybiBhZGRyZXNzLgotICBtb3ZsICAgICRfX05SX3Zmb3JrLCAlZWF4Ci0gIHN5c2NhbGwKLSAgcHVzaHEgICAlcmRpICAvLyBSZXN0b3JlIHRoZSByZXR1cm4gYWRkcmVzcy4KLSAgY21wcSAgICAkLU1BWF9FUlJOTywgJXJheAotICBqYiAgICAgIDFmCi0gIG5lZ2wgICAgJWVheAotICBtb3ZsICAgICVlYXgsICVlZGkKLSAgY2FsbCAgICBfX3NldF9lcnJubwotICBvcnEgICAgICQtMSwgJXJheAotMToKLSAgcmV0Ci1FTkQodmZvcmspCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N0cmluZy9zc2UyLW1lbW1vdmUtc2xtLlMgYi9saWJjL2FyY2gteDg2XzY0L3N0cmluZy9zc2UyLW1lbW1vdmUtc2xtLlMKaW5kZXggZWU4NDQwZS4uMGRiZmZhZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zdHJpbmcvc3NlMi1tZW1tb3ZlLXNsbS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3RyaW5nL3NzZTItbWVtbW92ZS1zbG0uUwpAQCAtOTksNyArOTksNyBAQAogLyogQ2hlY2sgd2hldGhlciB3ZSBzaG91bGQgY29weSBiYWNrd2FyZCBvciBmb3J3YXJkLiAgKi8KIAljbXAJJXJzaSwgJXJkaQogCWplCUwobW1fcmV0dXJuKQotCWphCUwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCkKKwlqZwlMKG1tX2xlbl8wX29yX21vcmVfYmFja3dhcmQpCiAKIC8qIE5vdyBkbyBjaGVja3MgZm9yIGxlbmd0aHMuIFdlIGRvIFswLi4xNl0sIFswLi4zMl0sIFswLi42NF0sIFswLi4xMjhdCiAJc2VwYXJhdGVseS4gICovCkBAIC0xMDcsNyArMTA3LDcgQEAKIAlqYmUJTChtbV9sZW5fMF8xNl9ieXRlc19mb3J3YXJkKQogCiAJY21wCSQzMiwgJXJkeAotCWpnCUwobW1fbGVuXzMyX29yX21vcmVfZm9yd2FyZCkKKwlqYQlMKG1tX2xlbl8zMl9vcl9tb3JlX2ZvcndhcmQpCiAKIC8qIENvcHkgWzAuLjMyXSBhbmQgcmV0dXJuLiAgKi8KIAltb3ZkcXUJKCVyc2kpLCAleG1tMApAQCAtMTE4LDcgKzExOCw3IEBACiAKIEwobW1fbGVuXzMyX29yX21vcmVfZm9yd2FyZCk6CiAJY21wCSQ2NCwgJXJkeAotCWpnCUwobW1fbGVuXzY0X29yX21vcmVfZm9yd2FyZCkKKwlqYQlMKG1tX2xlbl82NF9vcl9tb3JlX2ZvcndhcmQpCiAKIC8qIENvcHkgWzAuLjY0XSBhbmQgcmV0dXJuLiAgKi8KIAltb3ZkcXUJKCVyc2kpLCAleG1tMApAQCAtMTMzLDcgKzEzMyw3IEBACiAKIEwobW1fbGVuXzY0X29yX21vcmVfZm9yd2FyZCk6CiAJY21wCSQxMjgsICVyZHgKLQlqZwlMKG1tX2xlbl8xMjhfb3JfbW9yZV9mb3J3YXJkKQorCWphCUwobW1fbGVuXzEyOF9vcl9tb3JlX2ZvcndhcmQpCiAKIC8qIENvcHkgWzAuLjEyOF0gYW5kIHJldHVybi4gICovCiAJbW92ZHF1CSglcnNpKSwgJXhtbTAKQEAgLTE1NSwxMyArMTU1LDYgQEAKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fbGVuXzEyOF9vcl9tb3JlX2ZvcndhcmQpOgotCi0JY21wCSRTSEFSRURfQ0FDSEVfU0laRV9IQUxGLCAlcmR4Ci0JamFlCUwobW1fbGFyZ2VfcGFnZV9mb3J3YXJkKQotCi0JbW92CSVyc2ksICVyOCAgLy8gY29weSBzcmMgdG8gcjgKLQltb3YJJXJkaSwgJXI5ICAvLyBjb3B5IGRzdCB0byByOQotCiAvKiBBbGlnbmluZyB0aGUgYWRkcmVzcyBvZiBkZXN0aW5hdGlvbi4gICovCiAvKiAgc2F2ZSBmaXJzdCB1bmFsaWduZWQgNjQgYnl0ZXMgKi8KIAltb3ZkcXUJKCVyc2kpLCAleG1tMApAQCAtMTY5LDU2ICsxNjIsNTcgQEAKIAltb3ZkcXUJMzIoJXJzaSksICV4bW0yCiAJbW92ZHF1CTQ4KCVyc2kpLCAleG1tMwogCi0JbGVhCTY0KCVyOSksICVyZGkKLQlhbmQJJC02NCwgJXJkaSAgLyogcmRpIG5vdyBhbGlnbmVkIHRvIG5leHQgNjQgYnl0ZSBib3VuZGFyeSAqLworCWxlYQk2NCglcmRpKSwgJXI4CisJYW5kCSQtNjQsICVyOCAgLyogcjggbm93IGFsaWduZWQgdG8gbmV4dCA2NCBieXRlIGJvdW5kYXJ5ICovCisJc3ViCSVyZGksICVyc2kgLyogcnNpID0gc3JjIC0gZHN0ID0gZGlmZiAqLwogCi0Jc3ViCSVyOSwgJXJzaSAvKiByc2kgPSBzcmMgLSBkc3QgPSBkaWZmICovCisJbW92ZHF1CSglcjgsICVyc2kpLCAleG1tNAorCW1vdmRxdQkxNiglcjgsICVyc2kpLCAleG1tNQorCW1vdmRxdQkzMiglcjgsICVyc2kpLCAleG1tNgorCW1vdmRxdQk0OCglcjgsICVyc2kpLCAleG1tNwogCi0JbW92ZHF1CSglcmRpLCAlcnNpKSwgJXhtbTQKLQltb3ZkcXUJMTYoJXJkaSwgJXJzaSksICV4bW01Ci0JbW92ZHF1CTMyKCVyZGksICVyc2kpLCAleG1tNgotCW1vdmRxdQk0OCglcmRpLCAlcnNpKSwgJXhtbTcKKwltb3ZkcXUJJXhtbTAsICglcmRpKQorCW1vdmRxdQkleG1tMSwgMTYoJXJkaSkKKwltb3ZkcXUJJXhtbTIsIDMyKCVyZGkpCisJbW92ZHF1CSV4bW0zLCA0OCglcmRpKQorCW1vdmRxYQkleG1tNCwgKCVyOCkKKwltb3ZhcHMJJXhtbTUsIDE2KCVyOCkKKwltb3ZhcHMJJXhtbTYsIDMyKCVyOCkKKwltb3ZhcHMJJXhtbTcsIDQ4KCVyOCkKKwlhZGQJJDY0LCAlcjgKIAotCW1vdmRxdQkleG1tMCwgKCVyOSkKLQltb3ZkcXUJJXhtbTEsIDE2KCVyOSkKLQltb3ZkcXUJJXhtbTIsIDMyKCVyOSkKLQltb3ZkcXUJJXhtbTMsIDQ4KCVyOSkKLQltb3ZkcWEJJXhtbTQsICglcmRpKQotCW1vdmRxYQkleG1tNSwgMTYoJXJkaSkKLQltb3ZkcWEJJXhtbTYsIDMyKCVyZGkpCi0JbW92ZHFhCSV4bW03LCA0OCglcmRpKQotCWFkZAkkNjQsICVyZGkKLQotCWxlYQkoJXI5LCAlcmR4KSwgJXJieAorCWxlYQkoJXJkaSwgJXJkeCksICVyYngKIAlhbmQJJC02NCwgJXJieAotCi0JY21wCSVyZGksICVyYngKKwljbXAJJXI4LCAlcmJ4CiAJamJlCUwobW1fY29weV9yZW1haW5pbmdfZm9yd2FyZCkKIAorCWNtcAkkU0hBUkVEX0NBQ0hFX1NJWkVfSEFMRiwgJXJkeAorCWphZQlMKG1tX2xhcmdlX3BhZ2VfbG9vcF9mb3J3YXJkKQorCiAJLnAyYWxpZ24gNAogTChtbV9tYWluX2xvb3BfZm9yd2FyZCk6CiAKLQlwcmVmZXRjaHQwIDEyOCglcmRpLCAlcnNpKQorCXByZWZldGNodDAgMTI4KCVyOCwgJXJzaSkKIAotCW1vdmRxdQkoJXJkaSwgJXJzaSksICV4bW0wCi0JbW92ZHF1CTE2KCVyZGksICVyc2kpLCAleG1tMQotCW1vdmRxdQkzMiglcmRpLCAlcnNpKSwgJXhtbTIKLQltb3ZkcXUJNDgoJXJkaSwgJXJzaSksICV4bW0zCi0JbW92ZHFhCSV4bW0wLCAoJXJkaSkKLQltb3ZkcWEJJXhtbTEsIDE2KCVyZGkpCi0JbW92ZHFhCSV4bW0yLCAzMiglcmRpKQotCW1vdmRxYQkleG1tMywgNDgoJXJkaSkKLQlsZWEJNjQoJXJkaSksICVyZGkKLQljbXAJJXJkaSwgJXJieAorCW1vdmRxdQkoJXI4LCAlcnNpKSwgJXhtbTAKKwltb3ZkcXUJMTYoJXI4LCAlcnNpKSwgJXhtbTEKKwltb3ZkcXUJMzIoJXI4LCAlcnNpKSwgJXhtbTIKKwltb3ZkcXUJNDgoJXI4LCAlcnNpKSwgJXhtbTMKKwltb3ZkcWEJJXhtbTAsICglcjgpCisJbW92YXBzCSV4bW0xLCAxNiglcjgpCisJbW92YXBzCSV4bW0yLCAzMiglcjgpCisJbW92YXBzCSV4bW0zLCA0OCglcjgpCisJbGVhCTY0KCVyOCksICVyOAorCWNtcAklcjgsICVyYngKIAlqYQlMKG1tX21haW5fbG9vcF9mb3J3YXJkKQogCiBMKG1tX2NvcHlfcmVtYWluaW5nX2ZvcndhcmQpOgotCWFkZAklcjksICVyZHgKLQlzdWIJJXJkaSwgJXJkeAorCWFkZAklcmRpLCAlcmR4CisJc3ViCSVyOCwgJXJkeAogLyogV2UgY29waWVkIGFsbCB1cCB0aWxsICVyZGkgcG9zaXRpb24gaW4gdGhlIGRzdC4KIAlJbiAlcmR4IG5vdyBpcyBob3cgbWFueSBieXRlcyBhcmUgbGVmdCB0byBjb3B5LgogCU5vdyB3ZSBuZWVkIHRvIGFkdmFuY2UgJXI4LiAqLwotCWxlYQkoJXJkaSwgJXJzaSksICVyOAorCWxlYQkoJXI4LCAlcnNpKSwgJXI5CiAKIEwobW1fcmVtYWluaW5nXzBfNjRfYnl0ZXNfZm9yd2FyZCk6CiAJY21wCSQzMiwgJXJkeApAQCAtMjM3LDQ5ICsyMzEsNDkgQEAKIAljbXBiCSQyLCAlZGwKIAkucDJhbGlnbiA0LCwxCiAJamEJTChtbV9yZW1haW5pbmdfM180X2J5dGVzX2ZvcndhcmQpCi0JbW92emJsCS0xKCVyOCwlcmR4KSwgJWVzaQotCW1vdnpibAkoJXI4KSwgJWVieAotCW1vdmIJJXNpbCwgLTEoJXJkaSwlcmR4KQotCW1vdmIJJWJsLCAoJXJkaSkKKwltb3Z6YmwJLTEoJXI5LCVyZHgpLCAlZXNpCisJbW92emJsCSglcjkpLCAlZWJ4CisJbW92Ygklc2lsLCAtMSglcjgsJXJkeCkKKwltb3ZiCSVibCwgKCVyOCkKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fcmVtYWluaW5nXzMzXzY0X2J5dGVzX2ZvcndhcmQpOgotCW1vdmRxdQkoJXI4KSwgJXhtbTAKLQltb3ZkcXUJMTYoJXI4KSwgJXhtbTEKLQltb3ZkcXUJLTMyKCVyOCwgJXJkeCksICV4bW0yCi0JbW92ZHF1CS0xNiglcjgsICVyZHgpLCAleG1tMwotCW1vdmRxdQkleG1tMCwgKCVyZGkpCi0JbW92ZHF1CSV4bW0xLCAxNiglcmRpKQotCW1vdmRxdQkleG1tMiwgLTMyKCVyZGksICVyZHgpCi0JbW92ZHF1CSV4bW0zLCAtMTYoJXJkaSwgJXJkeCkKKwltb3ZkcXUJKCVyOSksICV4bW0wCisJbW92ZHF1CTE2KCVyOSksICV4bW0xCisJbW92ZHF1CS0zMiglcjksICVyZHgpLCAleG1tMgorCW1vdmRxdQktMTYoJXI5LCAlcmR4KSwgJXhtbTMKKwltb3ZkcXUJJXhtbTAsICglcjgpCisJbW92ZHF1CSV4bW0xLCAxNiglcjgpCisJbW92ZHF1CSV4bW0yLCAtMzIoJXI4LCAlcmR4KQorCW1vdmRxdQkleG1tMywgLTE2KCVyOCwgJXJkeCkKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fcmVtYWluaW5nXzE3XzMyX2J5dGVzX2ZvcndhcmQpOgotCW1vdmRxdQkoJXI4KSwgJXhtbTAKLQltb3ZkcXUJLTE2KCVyOCwgJXJkeCksICV4bW0xCi0JbW92ZHF1CSV4bW0wLCAoJXJkaSkKLQltb3ZkcXUJJXhtbTEsIC0xNiglcmRpLCAlcmR4KQotCWptcAlMKG1tX3JldHVybikKLQotTChtbV9yZW1haW5pbmdfM180X2J5dGVzX2ZvcndhcmQpOgotCW1vdnp3bAktMiglcjgsJXJkeCksICVlc2kKLQltb3Z6d2wJKCVyOCksICVlYngKLQltb3Z3CSVzaSwgLTIoJXJkaSwlcmR4KQotCW1vdncJJWJ4LCAoJXJkaSkKKwltb3ZkcXUJKCVyOSksICV4bW0wCisJbW92ZHF1CS0xNiglcjksICVyZHgpLCAleG1tMQorCW1vdmRxdQkleG1tMCwgKCVyOCkKKwltb3ZkcXUJJXhtbTEsIC0xNiglcjgsICVyZHgpCiAJam1wCUwobW1fcmV0dXJuKQogCiBMKG1tX3JlbWFpbmluZ181XzhfYnl0ZXNfZm9yd2FyZCk6Ci0JbW92bAkoJXI4KSwgJWVzaQotCW1vdmwJLTQoJXI4LCVyZHgpLCAlZWJ4Ci0JbW92bAklZXNpLCAoJXJkaSkKLQltb3ZsCSVlYngsIC00KCVyZGksJXJkeCkKKwltb3ZsCSglcjkpLCAlZXNpCisJbW92bAktNCglcjksJXJkeCksICVlYngKKwltb3ZsCSVlc2ksICglcjgpCisJbW92bAklZWJ4LCAtNCglcjgsJXJkeCkKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fcmVtYWluaW5nXzlfMTZfYnl0ZXNfZm9yd2FyZCk6Ci0JbW92CSglcjgpLCAlcnNpCi0JbW92CS04KCVyOCwgJXJkeCksICVyYngKLQltb3YJJXJzaSwgKCVyZGkpCi0JbW92CSVyYngsIC04KCVyZGksICVyZHgpCisJbW92CSglcjkpLCAlcnNpCisJbW92CS04KCVyOSwgJXJkeCksICVyYngKKwltb3YJJXJzaSwgKCVyOCkKKwltb3YJJXJieCwgLTgoJXI4LCAlcmR4KQorCWptcAlMKG1tX3JldHVybikKKworTChtbV9yZW1haW5pbmdfM180X2J5dGVzX2ZvcndhcmQpOgorCW1vdnp3bAktMiglcjksJXJkeCksICVlc2kKKwltb3Z6d2wJKCVyOSksICVlYngKKwltb3Z3CSVzaSwgLTIoJXI4LCVyZHgpCisJbW92dwklYngsICglcjgpCiAJam1wCUwobW1fcmV0dXJuKQogCiBMKG1tX2xlbl8wXzE2X2J5dGVzX2ZvcndhcmQpOgpAQCAtMzIxLDE2ICszMTUsMjEgQEAKIAltb3YJJXJzaSwgLTgoJXJkaSwgJXJkeCkKIAlqbXAJTChtbV9yZXR1cm4pCiAKK0wobW1fcmVjYWxjX2xlbik6CisvKiBDb21wdXRlIGluICVyZHggaG93IG1hbnkgYnl0ZXMgYXJlIGxlZnQgdG8gY29weSBhZnRlcgorCXRoZSBtYWluIGxvb3Agc3RvcHMuICAqLworCW1vdiAJJXJieCwgJXJkeAorCXN1YiAJJXJkaSwgJXJkeAogLyogVGhlIGNvZGUgZm9yIGNvcHlpbmcgYmFja3dhcmRzLiAgKi8KIEwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCk6CiAKLS8qIE5vdyBkbyBjaGVja3MgZm9yIGxlbmd0aHMuIFdlIGRvIFswLi4xNl0sIFswLi4zMl0sIFswLi42NF0sIFswLi4xMjhdCisvKiBOb3cgZG8gY2hlY2tzIGZvciBsZW5ndGhzLiBXZSBkbyBbMC4uMTZdLCBbMTYuLjMyXSwgWzMyLi42NF0sIFs2NC4uMTI4XQogCXNlcGFyYXRlbHkuICAqLwogCWNtcAkkMTYsICVyZHgKIAlqYmUJTChtbV9sZW5fMF8xNl9ieXRlc19iYWNrd2FyZCkKIAogCWNtcAkkMzIsICVyZHgKLQlqZwlMKG1tX2xlbl8zMl9vcl9tb3JlX2JhY2t3YXJkKQorCWphCUwobW1fbGVuXzMyX29yX21vcmVfYmFja3dhcmQpCiAKIC8qIENvcHkgWzAuLjMyXSBhbmQgcmV0dXJuLiAgKi8KIAltb3ZkcXUJKCVyc2kpLCAleG1tMApAQCAtMzQxLDcgKzM0MCw3IEBACiAKIEwobW1fbGVuXzMyX29yX21vcmVfYmFja3dhcmQpOgogCWNtcAkkNjQsICVyZHgKLQlqZwlMKG1tX2xlbl82NF9vcl9tb3JlX2JhY2t3YXJkKQorCWphCUwobW1fbGVuXzY0X29yX21vcmVfYmFja3dhcmQpCiAKIC8qIENvcHkgWzAuLjY0XSBhbmQgcmV0dXJuLiAgKi8KIAltb3ZkcXUJKCVyc2kpLCAleG1tMApAQCAtMzU2LDcgKzM1NSw3IEBACiAKIEwobW1fbGVuXzY0X29yX21vcmVfYmFja3dhcmQpOgogCWNtcAkkMTI4LCAlcmR4Ci0JamcJTChtbV9sZW5fMTI4X29yX21vcmVfYmFja3dhcmQpCisJamEJTChtbV9sZW5fMTI4X29yX21vcmVfYmFja3dhcmQpCiAKIC8qIENvcHkgWzAuLjEyOF0gYW5kIHJldHVybi4gICovCiAJbW92ZHF1CSglcnNpKSwgJXhtbTAKQEAgLTM3OCwxMCArMzc3LDYgQEAKIAlqbXAJTChtbV9yZXR1cm4pCiAKIEwobW1fbGVuXzEyOF9vcl9tb3JlX2JhY2t3YXJkKToKLQotCWNtcAkkU0hBUkVEX0NBQ0hFX1NJWkVfSEFMRiwgJXJkeAotCWphZQlMKG1tX2xhcmdlX3BhZ2VfYmFja3dhcmQpCi0KIC8qIEFsaWduaW5nIHRoZSBhZGRyZXNzIG9mIGRlc3RpbmF0aW9uLiBXZSBuZWVkIHRvIHNhdmUKIAkxNiBiaXRzIGZyb20gdGhlIHNvdXJjZSBpbiBvcmRlciBub3QgdG8gb3ZlcndyaXRlIHRoZW0uICAqLwogCW1vdmRxdQktMTYoJXJzaSwgJXJkeCksICV4bW0wCkBAIC00MDUsMjIgKzQwMCwxOSBAQAogCW1vdmRxdQkleG1tMiwgLTQ4KCVyZGksICVyZHgpCiAJbW92ZHF1CSV4bW0zLCAtNjQoJXJkaSwgJXJkeCkKIAltb3ZkcWEJJXhtbTQsIC0xNiglcjkpCi0JbW92ZHFhCSV4bW01LCAtMzIoJXI5KQotCW1vdmRxYQkleG1tNiwgLTQ4KCVyOSkKLQltb3ZkcWEJJXhtbTcsIC02NCglcjkpCisJbW92YXBzCSV4bW01LCAtMzIoJXI5KQorCW1vdmFwcwkleG1tNiwgLTQ4KCVyOSkKKwltb3ZhcHMJJXhtbTcsIC02NCglcjkpCiAJbGVhCS02NCglcjkpLCAlcjkKIAogCWxlYQk2NCglcmRpKSwgJXJieAogCWFuZAkkLTY0LCAlcmJ4CiAKLS8qIENvbXB1dGUgaW4gJXJkeCBob3cgbWFueSBieXRlcyBhcmUgbGVmdCB0byBjb3B5IGFmdGVyCi0JdGhlIG1haW4gbG9vcCBzdG9wcy4gICovCi0JbW92IAklcmJ4LCAlcmR4Ci0Jc3ViIAklcmRpLCAlcmR4Ci0KIAljbXAJJXI5LCAlcmJ4Ci0JamIJTChtbV9tYWluX2xvb3BfYmFja3dhcmQpCi0Jam1wCUwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCkKKwlqYWUJTChtbV9yZWNhbGNfbGVuKQorCisJY21wCSRTSEFSRURfQ0FDSEVfU0laRV9IQUxGLCAlcmR4CisJamFlCUwobW1fbGFyZ2VfcGFnZV9sb29wX2JhY2t3YXJkKQogCiAJLnAyYWxpZ24gNAogTChtbV9tYWluX2xvb3BfYmFja3dhcmQpOgpAQCAtNDMyLDEzICs0MjQsMTMgQEAKIAltb3ZkcXUJLTMyKCVyOSwgJXI4KSwgJXhtbTIKIAltb3ZkcXUJLTE2KCVyOSwgJXI4KSwgJXhtbTMKIAltb3ZkcWEJJXhtbTAsIC02NCglcjkpCi0JbW92ZHFhCSV4bW0xLCAtNDgoJXI5KQotCW1vdmRxYQkleG1tMiwgLTMyKCVyOSkKLQltb3ZkcWEJJXhtbTMsIC0xNiglcjkpCisJbW92YXBzCSV4bW0xLCAtNDgoJXI5KQorCW1vdmFwcwkleG1tMiwgLTMyKCVyOSkKKwltb3ZhcHMJJXhtbTMsIC0xNiglcjkpCiAJbGVhCS02NCglcjkpLCAlcjkKIAljbXAJJXI5LCAlcmJ4CiAJamIJTChtbV9tYWluX2xvb3BfYmFja3dhcmQpCi0Jam1wCUwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCkKKwlqbXAJTChtbV9yZWNhbGNfbGVuKQogCiAvKiBDb3B5IFswLi4xNl0gYW5kIHJldHVybi4gICovCiBMKG1tX2xlbl8wXzE2X2J5dGVzX2JhY2t3YXJkKToKQEAgLTQ4NSwxMzggKzQ3NywyMyBAQAogCiAvKiBCaWcgbGVuZ3RoIGNvcHkgZm9yd2FyZCBwYXJ0LiAgKi8KIAotTChtbV9sYXJnZV9wYWdlX2ZvcndhcmQpOgotLyogQWxpZ25pbmcgdGhlIGFkZHJlc3Mgb2YgZGVzdGluYXRpb24uIFdlIG5lZWQgdG8gc2F2ZQotCTE2IGJpdHMgZnJvbSB0aGUgc291cmNlIGluIG9yZGVyIG5vdCB0byBvdmVyd3JpdGUgdGhlbS4gICovCi0KLQltb3YJJXJzaSwgJXI4Ci0JbW92CSVyZGksICVyOQotCi0JbW92ZHF1CSglcnNpKSwgJXhtbTAKLQltb3ZkcXUJMTYoJXJzaSksICV4bW0xCi0JbW92ZHF1CTMyKCVyc2kpLCAleG1tMgotCW1vdmRxdQk0OCglcnNpKSwgJXhtbTMKLQotCWxlYQk2NCglcjkpLCAlcmRpCi0JYW5kCSQtNjQsICVyZGkgICAgICAvKiByZGkgPSBhbGlnbmVkIGRzdCAqLwotCi0Jc3ViCSVyOSwgJXJzaSAgICAgICAgLyogcnNpID0gZGlmZiAqLwotCi0JbW92ZHF1CSglcmRpLCAlcnNpKSwgJXhtbTQKLQltb3ZkcXUJMTYoJXJkaSwgJXJzaSksICV4bW01Ci0JbW92ZHF1CTMyKCVyZGksICVyc2kpLCAleG1tNgotCW1vdmRxdQk0OCglcmRpLCAlcnNpKSwgJXhtbTcKLQotCW1vdmRxdQkleG1tMCwgKCVyOSkKLQltb3ZkcXUJJXhtbTEsIDE2KCVyOSkKLQltb3ZkcXUJJXhtbTIsIDMyKCVyOSkKLQltb3ZkcXUJJXhtbTMsIDQ4KCVyOSkKLQltb3ZudGRxCSV4bW00LCAoJXJkaSkKLQltb3ZudGRxCSV4bW01LCAxNiglcmRpKQotCW1vdm50ZHEJJXhtbTYsIDMyKCVyZGkpCi0JbW92bnRkcQkleG1tNywgNDgoJXJkaSkKLQlhZGQJJDY0LCAlcmRpCi0KLQlsZWEJKCVyOSwgJXJkeCksICVyYngKLQlhbmQJJC0xMjgsICVyYngKLQotCWNtcAklcmRpLCAlcmJ4Ci0JamJlCUwobW1fY29weV9yZW1haW5pbmdfZm9yd2FyZCkKLQogCS5wMmFsaWduIDQKIEwobW1fbGFyZ2VfcGFnZV9sb29wX2ZvcndhcmQpOgotCW1vdmRxdQkoJXJkaSwgJXJzaSksICV4bW0wCi0JbW92ZHF1CTE2KCVyZGksICVyc2kpLCAleG1tMQotCW1vdmRxdQkzMiglcmRpLCAlcnNpKSwgJXhtbTIKLQltb3ZkcXUJNDgoJXJkaSwgJXJzaSksICV4bW0zCi0JbW92ZHF1CTY0KCVyZGksICVyc2kpLCAleG1tNAotCW1vdmRxdQk4MCglcmRpLCAlcnNpKSwgJXhtbTUKLQltb3ZkcXUJOTYoJXJkaSwgJXJzaSksICV4bW02Ci0JbW92ZHF1CTExMiglcmRpLCAlcnNpKSwgJXhtbTcKLQltb3ZudGRxCSV4bW0wLCAoJXJkaSkKLQltb3ZudGRxCSV4bW0xLCAxNiglcmRpKQotCW1vdm50ZHEJJXhtbTIsIDMyKCVyZGkpCi0JbW92bnRkcQkleG1tMywgNDgoJXJkaSkKLQltb3ZudGRxCSV4bW00LCA2NCglcmRpKQotCW1vdm50ZHEJJXhtbTUsIDgwKCVyZGkpCi0JbW92bnRkcQkleG1tNiwgOTYoJXJkaSkKLQltb3ZudGRxCSV4bW03LCAxMTIoJXJkaSkKLQlsZWEgCTEyOCglcmRpKSwgJXJkaQotCWNtcAklcmRpLCAlcmJ4CisJbW92ZHF1CSglcjgsICVyc2kpLCAleG1tMAorCW1vdmRxdQkxNiglcjgsICVyc2kpLCAleG1tMQorCW1vdmRxdQkzMiglcjgsICVyc2kpLCAleG1tMgorCW1vdmRxdQk0OCglcjgsICVyc2kpLCAleG1tMworCW1vdm50ZHEJJXhtbTAsICglcjgpCisJbW92bnRkcQkleG1tMSwgMTYoJXI4KQorCW1vdm50ZHEJJXhtbTIsIDMyKCVyOCkKKwltb3ZudGRxCSV4bW0zLCA0OCglcjgpCisJbGVhIAk2NCglcjgpLCAlcjgKKwljbXAJJXI4LCAlcmJ4CiAJamEJTChtbV9sYXJnZV9wYWdlX2xvb3BfZm9yd2FyZCkKIAlzZmVuY2UKLQotCWFkZCAJJXI5LCAlcmR4Ci0Jc3ViIAklcmRpLCAlcmR4Ci0vKiBXZSBjb3BpZWQgYWxsIHVwIHRpbGwgJXJkaSBwb3NpdGlvbiBpbiB0aGUgZHN0LgotCUluICVyZHggbm93IGlzIGhvdyBtYW55IGJ5dGVzIGFyZSBsZWZ0IHRvIGNvcHkuCi0JTm93IHdlIG5lZWQgdG8gYWR2YW5jZSAlcjguICovCi0JbGVhIAkoJXJkaSwgJXJzaSksICVyOAotCi0JY21wCSQ2NCwgJXJkeAotCWpiCUwobW1fcmVtYWluaW5nXzBfNjRfYnl0ZXNfZm9yd2FyZCkKLQotCW1vdmRxdQkoJXI4KSwgJXhtbTAKLQltb3ZkcXUJMTYoJXI4KSwgJXhtbTEKLQltb3ZkcXUJMzIoJXI4KSwgJXhtbTIKLQltb3ZkcXUJNDgoJXI4KSwgJXhtbTMKLQltb3ZkcXUJLTY0KCVyOCwgJXJkeCksICV4bW00Ci0JbW92ZHF1CS00OCglcjgsICVyZHgpLCAleG1tNQotCW1vdmRxdQktMzIoJXI4LCAlcmR4KSwgJXhtbTYKLQltb3ZkcXUJLTE2KCVyOCwgJXJkeCksICV4bW03Ci0JbW92ZHF1CSV4bW0wLCAoJXJkaSkKLQltb3ZkcXUJJXhtbTEsIDE2KCVyZGkpCi0JbW92ZHF1CSV4bW0yLCAzMiglcmRpKQotCW1vdmRxdQkleG1tMywgNDgoJXJkaSkKLQltb3ZkcXUJJXhtbTQsIC02NCglcmRpLCAlcmR4KQotCW1vdmRxdQkleG1tNSwgLTQ4KCVyZGksICVyZHgpCi0JbW92ZHF1CSV4bW02LCAtMzIoJXJkaSwgJXJkeCkKLQltb3ZkcXUJJXhtbTcsIC0xNiglcmRpLCAlcmR4KQotCWptcAlMKG1tX3JldHVybikKLQorCWptcAlMKG1tX2NvcHlfcmVtYWluaW5nX2ZvcndhcmQpCiAKIC8qIEJpZyBsZW5ndGggY29weSBiYWNrd2FyZCBwYXJ0LiAgKi8KLUwobW1fbGFyZ2VfcGFnZV9iYWNrd2FyZCk6Ci0vKiBBbGlnbmluZyB0aGUgYWRkcmVzcyBvZiBkZXN0aW5hdGlvbi4gV2UgbmVlZCB0byBzYXZlCi0JMTYgYml0cyBmcm9tIHRoZSBzb3VyY2UgaW4gb3JkZXIgbm90IHRvIG92ZXJ3cml0ZSB0aGVtLiAgKi8KLQotCW1vdmRxdQktMTYoJXJzaSwgJXJkeCksICV4bW0wCi0JbW92ZHF1CS0zMiglcnNpLCAlcmR4KSwgJXhtbTEKLQltb3ZkcXUJLTQ4KCVyc2ksICVyZHgpLCAleG1tMgotCW1vdmRxdQktNjQoJXJzaSwgJXJkeCksICV4bW0zCi0KLQlsZWEJKCVyZGksICVyZHgpLCAlcjkKLQlhbmQJJC02NCwgJXI5Ci0KLQltb3YgCSVyc2ksICVyOAotCXN1YiAJJXJkaSwgJXI4Ci0KLQltb3ZkcXUJLTE2KCVyOSwgJXI4KSwgJXhtbTQKLQltb3ZkcXUJLTMyKCVyOSwgJXI4KSwgJXhtbTUKLQltb3ZkcXUJLTQ4KCVyOSwgJXI4KSwgJXhtbTYKLQltb3ZkcXUJLTY0KCVyOSwgJXI4KSwgJXhtbTcKLQotCW1vdmRxdQkleG1tMCwgLTE2KCVyZGksICVyZHgpCi0JbW92ZHF1CSV4bW0xLCAtMzIoJXJkaSwgJXJkeCkKLQltb3ZkcXUJJXhtbTIsIC00OCglcmRpLCAlcmR4KQotCW1vdmRxdQkleG1tMywgLTY0KCVyZGksICVyZHgpCi0JbW92bnRkcQkleG1tNCwgLTE2KCVyOSkKLQltb3ZudGRxCSV4bW01LCAtMzIoJXI5KQotCW1vdm50ZHEJJXhtbTYsIC00OCglcjkpCi0JbW92bnRkcQkleG1tNywgLTY0KCVyOSkKLQlsZWEgCS02NCglcjkpLCAlcjkKLQotCWxlYSAJMTI4KCVyZGkpLCAlcmJ4Ci0JYW5kIAkkLTY0LCAlcmJ4Ci0KLS8qIENvbXB1dGUgaW4gJXJkeCBob3cgbWFueSBieXRlcyBhcmUgbGVmdCB0byBjb3B5IGFmdGVyCi0JdGhlIG1haW4gbG9vcCBzdG9wcy4gICovCi0JbW92IAklcmJ4LCAlcmR4Ci0Jc3ViIAklcmRpLCAlcmR4Ci0KLQljbXAJJXI5LCAlcmJ4Ci0JamFlCUwobW1fbGVuXzBfb3JfbW9yZV9iYWNrd2FyZCkKLQogCS5wMmFsaWduIDQKIEwobW1fbGFyZ2VfcGFnZV9sb29wX2JhY2t3YXJkKToKIAltb3ZkcXUJLTY0KCVyOSwgJXI4KSwgJXhtbTAKQEAgLTYzMCw2ICs1MDcsNyBAQAogCWxlYSAJLTY0KCVyOSksICVyOQogCWNtcAklcjksICVyYngKIAlqYglMKG1tX2xhcmdlX3BhZ2VfbG9vcF9iYWNrd2FyZCkKLQlqbXAJTChtbV9sZW5fMF9vcl9tb3JlX2JhY2t3YXJkKQorCXNmZW5jZQorCWptcAlMKG1tX3JlY2FsY19sZW4pCiAKIEVORCAoTUVNTU9WRSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19hY2NlcHQ0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fYWNjZXB0NC5TCmluZGV4IGNmNDgzN2YuLjM3NWE3OGIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19hY2NlcHQ0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2FjY2VwdDQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX2FjY2VwdDQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fYXJjaF9wcmN0bC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2FyY2hfcHJjdGwuUwppbmRleCBhYzVkOTZlLi42YzcyYTZjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fYXJjaF9wcmN0bC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19hcmNoX3ByY3RsLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19hcmNoX3ByY3RsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2Jyay5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2Jyay5TCmluZGV4IGE2OWY0MDQuLjE4ZWJjMTAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19icmsuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fYnJrLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19icmspCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fY29ubmVjdC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2Nvbm5lY3QuUwppbmRleCAyODg0ODRlLi5hN2QyZTkzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fY29ubmVjdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19jb25uZWN0LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19jb25uZWN0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2Vwb2xsX3B3YWl0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZXBvbGxfcHdhaXQuUwppbmRleCAzMDZlMTJlLi40MjcxYjUzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZXBvbGxfcHdhaXQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZXBvbGxfcHdhaXQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX2Vwb2xsX3B3YWl0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2V4aXQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19leGl0LlMKaW5kZXggYWYzYWRhNC4uYmNiYWZmYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2V4aXQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZXhpdC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fZXhpdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19nZXRjcHUuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19nZXRjcHUuUwppbmRleCA4NjUwZGI0Li5jMjVmMjk0IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZ2V0Y3B1LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2dldGNwdS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fZ2V0Y3B1KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2dldGN3ZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2dldGN3ZC5TCmluZGV4IGM3NjI4MDQuLjE3NDM4MzggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19nZXRjd2QuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZ2V0Y3dkLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19nZXRjd2QpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGRlbnRzLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZ2V0ZGVudHM2NC5TCnNpbWlsYXJpdHkgaW5kZXggODAlCnJlbmFtZSBmcm9tIGxpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0ZGVudHMuUwpyZW5hbWUgdG8gbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2dldGRlbnRzNjQuUwppbmRleCBhNDdjMjZiLi42NGY4MmZkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGRlbnRzLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX2dldGRlbnRzNjQuUwpAQCAtMiw3ICsyLDcgQEAKIAogI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgogCi1FTlRSWShnZXRkZW50cykKK0VOVFJZKF9fZ2V0ZGVudHM2NCkKICAgICBtb3ZsICAgICRfX05SX2dldGRlbnRzNjQsICVlYXgKICAgICBzeXNjYWxsCiAgICAgY21wcSAgICAkLU1BWF9FUlJOTywgJXJheApAQCAtMTAsNyArMTAsNyBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKLUVORChnZXRkZW50cykKK0VORChfX2dldGRlbnRzNjQpCisuaGlkZGVuIF9fZ2V0ZGVudHM2NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwaWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19nZXRwaWQuUwpzaW1pbGFyaXR5IGluZGV4IDgzJQpyZW5hbWUgZnJvbSBsaWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHBpZC5TCnJlbmFtZSB0byBsaWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZ2V0cGlkLlMKaW5kZXggNjViOGRmNC4uYmQxYmYxZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZ2V0cGlkLlMKQEAgLTIsNyArMiw3IEBACiAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAotRU5UUlkoZ2V0cGlkKQorRU5UUlkoX19nZXRwaWQpCiAgICAgbW92bCAgICAkX19OUl9nZXRwaWQsICVlYXgKICAgICBzeXNjYWxsCiAgICAgY21wcSAgICAkLU1BWF9FUlJOTywgJXJheApAQCAtMTAsNyArMTAsNyBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKLUVORChnZXRwaWQpCitFTkQoX19nZXRwaWQpCisuaGlkZGVuIF9fZ2V0cGlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19nZXRwcmlvcml0eS5TCmluZGV4IDhhYWFlOGYuLjM0OWY1NzQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19nZXRwcmlvcml0eS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19nZXRwcmlvcml0eS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fZ2V0cHJpb3JpdHkpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19faW9jdGwuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19pb2N0bC5TCmluZGV4IDY0NmQ4MTkuLjI3NzU5MTEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19pb2N0bC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19pb2N0bC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9faW9jdGwpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fb3BlbmF0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fb3BlbmF0LlMKaW5kZXggZTA2NWNjYS4uZGNlNGM3YyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX29wZW5hdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19vcGVuYXQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX29wZW5hdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19wcG9sbC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3Bwb2xsLlMKaW5kZXggNmVkYWEzNi4uMzFiYTdlOSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3Bwb2xsLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3Bwb2xsLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19wcG9sbCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19wc2VsZWN0Ni5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3BzZWxlY3Q2LlMKaW5kZXggYTJhZWM3YS4uYTIxMmM0ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3BzZWxlY3Q2LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3BzZWxlY3Q2LlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19wc2VsZWN0NikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19wdHJhY2UuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19wdHJhY2UuUwppbmRleCA4ZWM4YWMxLi4wYTY0ZmVlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcHRyYWNlLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3B0cmFjZS5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fcHRyYWNlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3JlYm9vdC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3JlYm9vdC5TCmluZGV4IDliOGVmNzAuLjM5OGQwNzggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19yZWJvb3QuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcmVib290LlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19yZWJvb3QpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcnRfc2lnYWN0aW9uLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcnRfc2lnYWN0aW9uLlMKaW5kZXggYjAzOGY2ZS4uZjE0NmIwMiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3J0X3NpZ2FjdGlvbi5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX3J0X3NpZ2FjdGlvbikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWdwZW5kaW5nLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcnRfc2lncGVuZGluZy5TCmluZGV4IGUwYzUwYzEuLjlkMTY5OGIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWdwZW5kaW5nLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3J0X3NpZ3BlbmRpbmcuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX3J0X3NpZ3BlbmRpbmcpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcnRfc2lncHJvY21hc2suUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCmluZGV4IDJhMGFiNWUuLjFhYzliODEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fcnRfc2lncHJvY21hc2spCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcnRfc2lnc3VzcGVuZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3J0X3NpZ3N1c3BlbmQuUwppbmRleCA2ZmE2NTY1Li4xMDU5ZjBiIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcnRfc2lnc3VzcGVuZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWdzdXNwZW5kLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19ydF9zaWdzdXNwZW5kKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3J0X3NpZ3RpbWVkd2FpdC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3J0X3NpZ3RpbWVkd2FpdC5TCmluZGV4IDQ2ZWUwNGIuLmRlMmU0Y2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fcnRfc2lndGltZWR3YWl0LlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19ydF9zaWd0aW1lZHdhaXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fc2NoZWRfZ2V0YWZmaW5pdHkuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCmluZGV4IDM3MDcyMjYuLjQxMDk1NGMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fc2NoZWRfZ2V0YWZmaW5pdHkpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fc2V0X3RpZF9hZGRyZXNzLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fc2V0X3RpZF9hZGRyZXNzLlMKaW5kZXggNGE4ZjE1My4uYzU5YzhiOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3NldF90aWRfYWRkcmVzcy5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19zZXRfdGlkX2FkZHJlc3MuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX3NldF90aWRfYWRkcmVzcykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19zaWduYWxmZDQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19zaWduYWxmZDQuUwppbmRleCBmYWZlMzcxLi42ZGRjZjVhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fc2lnbmFsZmQ0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3NpZ25hbGZkNC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fc2lnbmFsZmQ0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3NvY2tldC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3NvY2tldC5TCmluZGV4IDY3NjIxZmMuLjIwOWUzMjkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX19zb2NrZXQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fc29ja2V0LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX19zb2NrZXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fdGltZXJfY3JlYXRlLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fdGltZXJfY3JlYXRlLlMKaW5kZXggMmY0MWM4OC4uMzQ1MGQyYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX190aW1lcl9jcmVhdGUuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX3RpbWVyX2NyZWF0ZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUwppbmRleCAyMDA5OTE2Li5mZDYwYTE2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fdGltZXJfZGVsZXRlLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3RpbWVyX2RlbGV0ZS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fdGltZXJfZGVsZXRlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3RpbWVyX2dldG92ZXJydW4uUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX190aW1lcl9nZXRvdmVycnVuLlMKaW5kZXggZmU3MWVmZS4uZjUzMDlhMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3RpbWVyX2dldG92ZXJydW4uUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fdGltZXJfZ2V0b3ZlcnJ1bi5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKF9fdGltZXJfZ2V0b3ZlcnJ1bikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fdGltZXJfZ2V0dGltZS5TCmluZGV4IDQ0ZmUyZmYuLjdlMmJjOTIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3RpbWVyX2dldHRpbWUuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfX3RpbWVyX2dldHRpbWUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3RpbWVyX3NldHRpbWUuUwppbmRleCAxMjQwYWExLi5mNTQwMWEwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fdGltZXJfc2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX190aW1lcl9zZXR0aW1lLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX190aW1lcl9zZXR0aW1lKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3dhaXRpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fX3dhaXRpZC5TCmluZGV4IDBkNGZjNTguLjIyOWYyMGMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX193YWl0aWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19fd2FpdGlkLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoX193YWl0aWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19leGl0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL19leGl0LlMKaW5kZXggM2MxNTg5Ny4uOWM4MGYwMCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9fZXhpdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvX2V4aXQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChfZXhpdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvYWNjdC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9hY2N0LlMKaW5kZXggNTlhZjE3ZC4uOTFlY2Y1YiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9hY2N0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9hY2N0LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoYWNjdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvYmluZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9iaW5kLlMKaW5kZXggMjBkZmEyZC4uNWQ0MjZjYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9iaW5kLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9iaW5kLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoYmluZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2FwZ2V0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2NhcGdldC5TCmluZGV4IDljZjczZmIuLmQzZDE1MWUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2FwZ2V0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jYXBnZXQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChjYXBnZXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2NhcHNldC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jYXBzZXQuUwppbmRleCBmNmNmMmViLi40MjFmMTU2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2NhcHNldC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2Fwc2V0LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoY2Fwc2V0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jaGRpci5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jaGRpci5TCmluZGV4IGEwNGYzYWEuLjdhNmY2NTEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2hkaXIuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2NoZGlyLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoY2hkaXIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Nocm9vdC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jaHJvb3QuUwppbmRleCA0OTEwODZkLi4wZjUzZmQ5IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Nocm9vdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2hyb290LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoY2hyb290KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jbG9ja19nZXRyZXMuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvY2tfZ2V0cmVzLlMKaW5kZXggZDFkNDkxZS4uYmFkMGQ3OCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jbG9ja19nZXRyZXMuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Nsb2NrX2dldHJlcy5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGNsb2NrX2dldHJlcykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jbG9ja19nZXR0aW1lLlMKaW5kZXggODlhZTYxNi4uMjA4NTBjOCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jbG9ja19nZXR0aW1lLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jbG9ja19nZXR0aW1lLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoY2xvY2tfZ2V0dGltZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvY2tfbmFub3NsZWVwLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Nsb2NrX25hbm9zbGVlcC5TCmluZGV4IDM4MzMxMTMuLjJlZjBkMDUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvY2tfbmFub3NsZWVwLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jbG9ja19uYW5vc2xlZXAuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChjbG9ja19uYW5vc2xlZXApCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Nsb2NrX3NldHRpbWUuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCmluZGV4IDE1YjI3YWEuLjZhM2I3NWIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGNsb2NrX3NldHRpbWUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Nsb3NlLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Nsb3NlLlMKaW5kZXggMzYxZDgyZi4uNDFjODQwMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9jbG9zZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvY2xvc2UuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChjbG9zZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZGVsZXRlX21vZHVsZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKaW5kZXggMzNmMjM1NC4uZDNmMzg2MiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZGVsZXRlX21vZHVsZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZHVwLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2R1cC5TCmluZGV4IGRmYzBkZWYuLmJmMmNhNTEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZHVwLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9kdXAuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChkdXApCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2R1cDMuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZHVwMy5TCmluZGV4IGRjYjQxNTUuLmY1YzkyOWMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZHVwMy5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZHVwMy5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGR1cDMpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZTEuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZXBvbGxfY3JlYXRlMS5TCmluZGV4IGZhM2M2ZDcuLjE5NmEzYzcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZXBvbGxfY3JlYXRlMS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZXBvbGxfY3JlYXRlMS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGVwb2xsX2NyZWF0ZTEpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Vwb2xsX2N0bC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9lcG9sbF9jdGwuUwppbmRleCA3MmRmOTdmLi4yYTM1MTdjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Vwb2xsX2N0bC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZXBvbGxfY3RsLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZXBvbGxfY3RsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9ldmVudGZkLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2V2ZW50ZmQuUwppbmRleCA5OWY1ODVjLi4zZWQ0YmFmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2V2ZW50ZmQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2V2ZW50ZmQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChldmVudGZkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9leGVjdmUuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZXhlY3ZlLlMKaW5kZXggZWE4OWQ3ZC4uMWZlMjljNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9leGVjdmUuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2V4ZWN2ZS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGV4ZWN2ZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmFjY2Vzc2F0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZhY2Nlc3NhdC5TCmluZGV4IDIzOGE0ZTEuLjNlYTkwNWMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmFjY2Vzc2F0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mYWNjZXNzYXQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmYWNjZXNzYXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZhbGxvY2F0ZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mYWxsb2NhdGUuUwppbmRleCA5YmEzNmI5Li5hYmFhMzAzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZhbGxvY2F0ZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmFsbG9jYXRlLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZmFsbG9jYXRlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mY2hkaXIuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNoZGlyLlMKaW5kZXggZGExNGVkZC4uYjAxYmI1NyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mY2hkaXIuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjaGRpci5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGZjaGRpcikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNobW9kLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjaG1vZC5TCmluZGV4IGE2ZDE1ZmMuLjg2ODYzOGYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNobW9kLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mY2htb2QuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmY2htb2QpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjaG1vZGF0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjaG1vZGF0LlMKaW5kZXggZGFmNzFhYi4uZTA0NWExMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mY2htb2RhdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNobW9kYXQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmY2htb2RhdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNob3duLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjaG93bi5TCmluZGV4IDhjNjhhMTUuLjliYTc3NWIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNob3duLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mY2hvd24uUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmY2hvd24pCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjaG93bmF0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjaG93bmF0LlMKaW5kZXggZTUyNjVkZC4uNzc4OWQyZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mY2hvd25hdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNob3duYXQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmY2hvd25hdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNudGwuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmNudGwuUwppbmRleCBjNTYyMzg1Li5hMjBkOTM4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZjbnRsLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mY250bC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGZjbnRsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mZGF0YXN5bmMuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmRhdGFzeW5jLlMKaW5kZXggM2Y5ZWU3Mi4uNWVhOGViZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mZGF0YXN5bmMuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZkYXRhc3luYy5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGZkYXRhc3luYykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmdldHhhdHRyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZnZXR4YXR0ci5TCmluZGV4IDc3ZjA5NWIuLjA5NmMzMGYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmdldHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mZ2V0eGF0dHIuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmZ2V0eGF0dHIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZsaXN0eGF0dHIuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmxpc3R4YXR0ci5TCmluZGV4IGNkMzkyOTguLmUwZTViOGIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmxpc3R4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmxpc3R4YXR0ci5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGZsaXN0eGF0dHIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Zsb2NrLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Zsb2NrLlMKaW5kZXggYWYyZGJlZi4uOTgxZDg2ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mbG9jay5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZmxvY2suUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmbG9jaykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnJlbW92ZXhhdHRyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TCmluZGV4IDQzODc1NjMuLjY1NWJkZWYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnJlbW92ZXhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mcmVtb3ZleGF0dHIuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmcmVtb3ZleGF0dHIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzZXR4YXR0ci5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mc2V0eGF0dHIuUwppbmRleCA2MTA4OTBjLi5mYTJiZGRjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzZXR4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnNldHhhdHRyLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZnNldHhhdHRyKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mc3RhdDY0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzdGF0NjQuUwppbmRleCA2YWJiMTQ2Li45ZTdhYTJkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzdGF0NjQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzdGF0NjQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmc3RhdDY0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mc3RhdGF0NjQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnN0YXRhdDY0LlMKaW5kZXggYjg1NTA2Yy4uNTQxOGNkMCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mc3RhdGF0NjQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzdGF0YXQ2NC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGZzdGF0YXQ2NCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnN0YXRmczY0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzdGF0ZnM2NC5TCmluZGV4IDk4M2U2YjcuLmVlMmRhYTIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnN0YXRmczY0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mc3RhdGZzNjQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmc3RhdGZzNjQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzeW5jLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2ZzeW5jLlMKaW5kZXggMDM5MjYyMC4uMTJlYWJkMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mc3luYy5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnN5bmMuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmc3luYykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnRydW5jYXRlLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2Z0cnVuY2F0ZS5TCmluZGV4IDQzN2IzZTIuLjExMTYxYTcgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZnRydW5jYXRlLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9mdHJ1bmNhdGUuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChmdHJ1bmNhdGUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGVnaWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0ZWdpZC5TCmluZGV4IGMxYjhmYWUuLjZmOWMyYTggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0ZWdpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0ZWdpZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGdldGVnaWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGV1aWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0ZXVpZC5TCmluZGV4IGYyZjEwMzUuLjg4MDAwZWYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0ZXVpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0ZXVpZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGdldGV1aWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGdpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRnaWQuUwppbmRleCBlOWIzOGM3Li44ZjhlYWE2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGdpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0Z2lkLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0Z2lkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRncm91cHMuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0Z3JvdXBzLlMKaW5kZXggYjEyODM2ZS4uNTM1OGEzZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRncm91cHMuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGdyb3Vwcy5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGdldGdyb3VwcykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0aXRpbWVyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldGl0aW1lci5TCmluZGV4IDc5NDg0ZDEuLmI2YTZlOGUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0aXRpbWVyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRpdGltZXIuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChnZXRpdGltZXIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHBlZXJuYW1lLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHBlZXJuYW1lLlMKaW5kZXggYTI3NmNhYy4uOThlMDZmYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwZWVybmFtZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cGVlcm5hbWUuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChnZXRwZWVybmFtZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cGdpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwZ2lkLlMKaW5kZXggYzJmNWMwOS4uMTU4ZjE0ZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwZ2lkLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwZ2lkLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0cGdpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cHBpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwcGlkLlMKaW5kZXggY2UzZGJkYS4uZTQ4NTNlMCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwcGlkLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwcGlkLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0cHBpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cmVzZ2lkLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHJlc2dpZC5TCmluZGV4IDBlZGMyMGEuLmQ2NWZiMTMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cmVzZ2lkLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRyZXNnaWQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChnZXRyZXNnaWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHJlc3VpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRyZXN1aWQuUwppbmRleCBiOTAwYzk5Li44MGQ4NWM2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHJlc3VpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cmVzdWlkLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0cmVzdWlkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRybGltaXQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cmxpbWl0LlMKaW5kZXggNmE5YzliNi4uZWEwY2E3ZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRybGltaXQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHJsaW1pdC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGdldHJsaW1pdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cnVzYWdlLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHJ1c2FnZS5TCmluZGV4IDIxMGQ1ODYuLjdhNjA3MzggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cnVzYWdlLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRydXNhZ2UuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChnZXRydXNhZ2UpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHNpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRzaWQuUwppbmRleCBkZTNlM2MwLi43NWUzZmFkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHNpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0c2lkLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0c2lkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRzb2NrbmFtZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRzb2NrbmFtZS5TCmluZGV4IGNjYWJmNzEuLjNjN2MyZjggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0c29ja25hbWUuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHNvY2tuYW1lLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0c29ja25hbWUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHNvY2tvcHQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0c29ja29wdC5TCmluZGV4IGM0ZjQ1NmUuLjcyNTc1N2MgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0c29ja29wdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0c29ja29wdC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGdldHNvY2tvcHQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHRpbWVvZmRheS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXR0aW1lb2ZkYXkuUwppbmRleCAyNjFiYjZlLi40ODY3YzMwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHRpbWVvZmRheS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0dGltZW9mZGF5LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoZ2V0dGltZW9mZGF5KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXR1aWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0dWlkLlMKaW5kZXggNGNiOWVmZC4uZDczMDZlMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXR1aWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHVpZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGdldHVpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0eGF0dHIuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0eGF0dHIuUwppbmRleCA2YmRiNzYyLi43YzY2YjBlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXR4YXR0ci5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGdldHhhdHRyKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbml0X21vZHVsZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbml0X21vZHVsZS5TCmluZGV4IGViMDQ4YzAuLjE4N2Y1YTIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2luaXRfbW9kdWxlLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoaW5pdF9tb2R1bGUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2lub3RpZnlfYWRkX3dhdGNoLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2lub3RpZnlfYWRkX3dhdGNoLlMKaW5kZXggM2UxMjRlNy4uNDdlMTVhYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbm90aWZ5X2FkZF93YXRjaC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChpbm90aWZ5X2FkZF93YXRjaCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvaW5vdGlmeV9pbml0MS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbm90aWZ5X2luaXQxLlMKaW5kZXggOGQ4MjExNS4uMTYwYjBkNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbm90aWZ5X2luaXQxLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbm90aWZ5X2luaXQxLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoaW5vdGlmeV9pbml0MSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvaW5vdGlmeV9ybV93YXRjaC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbm90aWZ5X3JtX3dhdGNoLlMKaW5kZXggZWNlMTUxMC4uNGM1ODc0ZSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbm90aWZ5X3JtX3dhdGNoLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pbm90aWZ5X3JtX3dhdGNoLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoaW5vdGlmeV9ybV93YXRjaCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvaW9wcmlvX2dldC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4YzE0MDIuLjAwMDAwMDAKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi0vKiBHZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkuIERvIG5vdCBlZGl0LiAqLwotCi0jaW5jbHVkZSA8cHJpdmF0ZS9iaW9uaWNfYXNtLmg+Ci0KLUVOVFJZKGlvcHJpb19nZXQpCi0gICAgbW92bCAgICAkX19OUl9pb3ByaW9fZ2V0LCAlZWF4Ci0gICAgc3lzY2FsbAotICAgIGNtcHEgICAgJC1NQVhfRVJSTk8sICVyYXgKLSAgICBqYiAgICAgIDFmCi0gICAgbmVnbCAgICAlZWF4Ci0gICAgbW92bCAgICAlZWF4LCAlZWRpCi0gICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4Ci0xOgotICAgIHJldAotRU5EKGlvcHJpb19nZXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2lvcHJpb19zZXQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvaW9wcmlvX3NldC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Y2RjOGIzLi4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvaW9wcmlvX3NldC5TCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotLyogR2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5LiBEbyBub3QgZWRpdC4gKi8KLQotI2luY2x1ZGUgPHByaXZhdGUvYmlvbmljX2FzbS5oPgotCi1FTlRSWShpb3ByaW9fc2V0KQotICAgIG1vdmwgICAgJF9fTlJfaW9wcmlvX3NldCwgJWVheAotICAgIHN5c2NhbGwKLSAgICBjbXBxICAgICQtTUFYX0VSUk5PLCAlcmF4Ci0gICAgamIgICAgICAxZgotICAgIG5lZ2wgICAgJWVheAotICAgIG1vdmwgICAgJWVheCwgJWVkaQotICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAotMToKLSAgICByZXQKLUVORChpb3ByaW9fc2V0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9raWxsLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2tpbGwuUwppbmRleCA1MWNhMzVjLi5mMjM0NTg1IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2tpbGwuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2tpbGwuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChraWxsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9rbG9nY3RsLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2tsb2djdGwuUwppbmRleCA4YzBjY2NlLi4wNTdiMDY2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2tsb2djdGwuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2tsb2djdGwuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChrbG9nY3RsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9sZ2V0eGF0dHIuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbGdldHhhdHRyLlMKaW5kZXggNmYxOTVlYS4uNTI1ZWUzYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9sZ2V0eGF0dHIuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xnZXR4YXR0ci5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGxnZXR4YXR0cikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbGlua2F0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xpbmthdC5TCmluZGV4IGI5YTJiMTQuLjgxNWFmODYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbGlua2F0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9saW5rYXQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChsaW5rYXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xpc3Rlbi5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9saXN0ZW4uUwppbmRleCAxMDRiNTE0Li5kM2Q3MTAzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xpc3Rlbi5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbGlzdGVuLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQobGlzdGVuKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9saXN0eGF0dHIuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbGlzdHhhdHRyLlMKaW5kZXggZmU1N2UzOS4uODlmZDYzYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9saXN0eGF0dHIuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xpc3R4YXR0ci5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKGxpc3R4YXR0cikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbGxpc3R4YXR0ci5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9sbGlzdHhhdHRyLlMKaW5kZXggYWEwYTU0ZC4uY2ZmZjJlNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9sbGlzdHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9sbGlzdHhhdHRyLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQobGxpc3R4YXR0cikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xyZW1vdmV4YXR0ci5TCmluZGV4IDRiNWVlNjUuLjBiNjk5NGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9scmVtb3ZleGF0dHIuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChscmVtb3ZleGF0dHIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xzZWVrLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xzZWVrLlMKaW5kZXggY2YxOTc3Ni4uYjJlOGMxNiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9sc2Vlay5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbHNlZWsuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChsc2VlaykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbHNldHhhdHRyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2xzZXR4YXR0ci5TCmluZGV4IDY3ZDkzZWIuLmZkYWY5OGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbHNldHhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9sc2V0eGF0dHIuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChsc2V0eGF0dHIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21hZHZpc2UuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWFkdmlzZS5TCmluZGV4IGU0ZWY5MjMuLjNmNTY3ZmQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWFkdmlzZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWFkdmlzZS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKG1hZHZpc2UpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21pbmNvcmUuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWluY29yZS5TCmluZGV4IGQ5Mjc1NWMuLmU2YjI1MjEgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWluY29yZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWluY29yZS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKG1pbmNvcmUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21rZGlyYXQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWtkaXJhdC5TCmluZGV4IDllNWRiZDYuLmFiYmEyZDUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWtkaXJhdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWtkaXJhdC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKG1rZGlyYXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21rbm9kYXQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWtub2RhdC5TCmluZGV4IDQ5YWFjMzUuLmQzZDc4YzkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWtub2RhdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWtub2RhdC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKG1rbm9kYXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21sb2NrLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21sb2NrLlMKaW5kZXggZjBiMGM2ZS4uMGM2OWViNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tbG9jay5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWxvY2suUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChtbG9jaykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWxvY2thbGwuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbWxvY2thbGwuUwppbmRleCA0MjBjYjAzLi44OWJhOWI2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21sb2NrYWxsLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tbG9ja2FsbC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKG1sb2NrYWxsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tbWFwLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21tYXAuUwppbmRleCA5YzNmYzBmLi43YjlmNmUwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21tYXAuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21tYXAuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChtbWFwKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tb3VudC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tb3VudC5TCmluZGV4IGRmNDg4YzMuLjA0NTM0YzkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbW91bnQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21vdW50LlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQobW91bnQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21wcm90ZWN0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21wcm90ZWN0LlMKaW5kZXggOWVmNjFiNS4uZDg0OWJiMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tcHJvdGVjdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXByb3RlY3QuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChtcHJvdGVjdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXJlbWFwLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21yZW1hcC5TCmluZGV4IDU1ZTI0YmYuLjhhZjM2N2UgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXJlbWFwLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tcmVtYXAuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChtcmVtYXApCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21zeW5jLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL21zeW5jLlMKaW5kZXggNDA1MjRlMy4uYzBmZjBmOSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tc3luYy5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXN5bmMuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChtc3luYykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXVubG9jay5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tdW5sb2NrLlMKaW5kZXggYjUwODI1OS4uZDY2OWY1NCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tdW5sb2NrLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tdW5sb2NrLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQobXVubG9jaykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXVubG9ja2FsbC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tdW5sb2NrYWxsLlMKaW5kZXggNDMxNGUyYi4uYjdhOWFiYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tdW5sb2NrYWxsLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tdW5sb2NrYWxsLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQobXVubG9ja2FsbCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXVubWFwLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL211bm1hcC5TCmluZGV4IDE1ZDUwM2MuLjQzNjBiZDAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbXVubWFwLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9tdW5tYXAuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChtdW5tYXApCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL25hbm9zbGVlcC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9uYW5vc2xlZXAuUwppbmRleCBkMzAzZmNiLi4yZWNlZDViIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL25hbm9zbGVlcC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvbmFub3NsZWVwLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQobmFub3NsZWVwKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9wZXJzb25hbGl0eS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9wZXJzb25hbGl0eS5TCmluZGV4IDAzNzk3MDcuLjE3YWQ3ZWUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcGVyc29uYWxpdHkuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQocGVyc29uYWxpdHkpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3BpcGUyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3BpcGUyLlMKaW5kZXggZDBhNjc2OC4uODNlYjBhNiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9waXBlMi5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcGlwZTIuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChwaXBlMikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcHJjdGwuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcHJjdGwuUwppbmRleCBmN2Y1NjFiLi5jNzkyMjBkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3ByY3RsLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9wcmN0bC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHByY3RsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9wcmVhZDY0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3ByZWFkNjQuUwppbmRleCA1ODI4YTA2Li4xYzRkYzY4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3ByZWFkNjQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3ByZWFkNjQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChwcmVhZDY0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9wcmxpbWl0NjQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcHJsaW1pdDY0LlMKaW5kZXggMTJiZTUzYS4uODIzZmViYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9wcmxpbWl0NjQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3BybGltaXQ2NC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHBybGltaXQ2NCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcHdyaXRlNjQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcHdyaXRlNjQuUwppbmRleCAxYWRhOWQ5Li4xM2JjYjU4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3B3cml0ZTY0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9wd3JpdGU2NC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHB3cml0ZTY0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWFkLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlYWQuUwppbmRleCAwZmY2YzJhLi40MDBjODdhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlYWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlYWQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChyZWFkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWFkYWhlYWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVhZGFoZWFkLlMKaW5kZXggYTMyYzFjMi4uMmEyOTc4YiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWFkYWhlYWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlYWRhaGVhZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHJlYWRhaGVhZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVhZGxpbmthdC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWFkbGlua2F0LlMKaW5kZXggYTFjM2FkZS4uNTFkMWYwYyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWFkbGlua2F0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWFkbGlua2F0LlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQocmVhZGxpbmthdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVhZHYuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVhZHYuUwppbmRleCBhNmY1MWNmLi40MTk5NzUxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlYWR2LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWFkdi5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHJlYWR2KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWN2ZnJvbS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWN2ZnJvbS5TCmluZGV4IGZlYjNhNjMuLjYxY2ExYjIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVjdmZyb20uUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlY3Zmcm9tLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQocmVjdmZyb20pCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlY3ZtbXNnLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlY3ZtbXNnLlMKaW5kZXggOWRhNzBlMi4uY2UxNGJhNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWN2bW1zZy5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVjdm1tc2cuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChyZWN2bW1zZykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVjdm1zZy5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWN2bXNnLlMKaW5kZXggNjcxNmFjYS4uODY1NWQwNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWN2bXNnLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZWN2bXNnLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQocmVjdm1zZykKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVtb3ZleGF0dHIuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVtb3ZleGF0dHIuUwppbmRleCA4OWIyYzRmLi45NzM2NDYzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZW1vdmV4YXR0ci5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHJlbW92ZXhhdHRyKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZW5hbWVhdC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9yZW5hbWVhdC5TCmluZGV4IDlkNjljM2UuLjBiZTJlZjkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvcmVuYW1lYXQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3JlbmFtZWF0LlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQocmVuYW1lYXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9tYXguUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21heC5TCmluZGV4IDQxYjJkMWQuLjBmOTI3MzkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21heC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21heC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNjaGVkX2dldF9wcmlvcml0eV9tYXgpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9taW4uUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCmluZGV4IDYxYjc0NmYuLjg0NTBlOWQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNjaGVkX2dldF9wcmlvcml0eV9taW4pCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX2dldHBhcmFtLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX2dldHBhcmFtLlMKaW5kZXggMjNkMzRiMi4uYTc4NDY0MCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF9nZXRwYXJhbS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0cGFyYW0uUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzY2hlZF9nZXRwYXJhbSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0c2NoZWR1bGVyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX2dldHNjaGVkdWxlci5TCmluZGV4IDEyZjBiYTAuLjA5MGIzMjIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfZ2V0c2NoZWR1bGVyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF9nZXRzY2hlZHVsZXIuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzY2hlZF9nZXRzY2hlZHVsZXIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwuUwppbmRleCAwZmY4NTJmLi4wOTc3ZjJlIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3JyX2dldF9pbnRlcnZhbC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfcnJfZ2V0X2ludGVydmFsLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2NoZWRfcnJfZ2V0X2ludGVydmFsKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF9zZXRhZmZpbml0eS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF9zZXRhZmZpbml0eS5TCmluZGV4IDI1MGVjYjYuLmFmOGU3YTIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfc2V0YWZmaW5pdHkuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3NldGFmZmluaXR5LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2NoZWRfc2V0YWZmaW5pdHkpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKaW5kZXggMzBhNzk2My4uMjk2NDYwNyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF9zZXRwYXJhbS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfc2V0cGFyYW0uUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzY2hlZF9zZXRwYXJhbSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfc2V0c2NoZWR1bGVyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3NldHNjaGVkdWxlci5TCmluZGV4IDEzN2Y5ZjAuLjMzM2QxYjggMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfc2V0c2NoZWR1bGVyLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzY2hlZF9zZXRzY2hlZHVsZXIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMKaW5kZXggMDk3YzdkYy4uYTk3MjE1NCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zY2hlZF95aWVsZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2NoZWRfeWllbGQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzY2hlZF95aWVsZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2VuZGZpbGUuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2VuZGZpbGUuUwppbmRleCA3MmU1ZGU0Li5jMWI2NDk3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NlbmRmaWxlLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZW5kZmlsZS5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNlbmRmaWxlKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZW5kbW1zZy5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZW5kbW1zZy5TCmluZGV4IDc0MDdjMTIuLjk0MGMwYjYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2VuZG1tc2cuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NlbmRtbXNnLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2VuZG1tc2cpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NlbmRtc2cuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2VuZG1zZy5TCmluZGV4IGU1NmU1OGMuLjZkOTRiYjYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2VuZG1zZy5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2VuZG1zZy5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNlbmRtc2cpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NlbmR0by5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZW5kdG8uUwppbmRleCBmMGMxNGIwLi5iZmU0NjM2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NlbmR0by5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2VuZHRvLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2VuZHRvKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRnaWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0Z2lkLlMKaW5kZXggYWJhZjM0My4uZWY0ZmIzMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRnaWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldGdpZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNldGdpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0Z3JvdXBzLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldGdyb3Vwcy5TCmluZGV4IDRiYmM3ZWMuLjY1ZTYxODAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0Z3JvdXBzLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRncm91cHMuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXRncm91cHMpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldGl0aW1lci5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRpdGltZXIuUwppbmRleCBkYTgxZDBiLi5iZWU0OTk2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldGl0aW1lci5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0aXRpbWVyLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2V0aXRpbWVyKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRucy5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRucy5TCmluZGV4IGJhYjE0N2IuLjUyMTc2OWIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0bnMuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldG5zLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2V0bnMpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHBnaWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cGdpZC5TCmluZGV4IDZkZmVmYTMuLjM0ODYxMmIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cGdpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cGdpZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNldHBnaWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHByaW9yaXR5LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHByaW9yaXR5LlMKaW5kZXggODk3NzBlOS4uMDk0MDM2OCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRwcmlvcml0eS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cHJpb3JpdHkuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXRwcmlvcml0eSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmVnaWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmVnaWQuUwppbmRleCA5ZWFhN2U5Li4wMzM4ZWNmIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHJlZ2lkLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRyZWdpZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNldHJlZ2lkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRyZXNnaWQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmVzZ2lkLlMKaW5kZXggOTUyMDZiMy4uMTBlMTI0NCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRyZXNnaWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHJlc2dpZC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNldHJlc2dpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmVzdWlkLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHJlc3VpZC5TCmluZGV4IGM0MmRkYTkuLjIyOWIxMWIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmVzdWlkLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRyZXN1aWQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXRyZXN1aWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHJldWlkLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHJldWlkLlMKaW5kZXggOTM1Zjc1MS4uZTk2ZTJkMyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRyZXVpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmV1aWQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXRyZXVpZCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmxpbWl0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHJsaW1pdC5TCmluZGV4IGRkMzkzYWUuLjY2MjU4N2QgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0cmxpbWl0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRybGltaXQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXRybGltaXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHNpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRzaWQuUwppbmRleCA5YzUwYTg5Li4yOTNlY2Y1IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHNpZC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0c2lkLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2V0c2lkKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXRzb2Nrb3B0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHNvY2tvcHQuUwppbmRleCAyMzMyZWM5Li5hZWU2NjEzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHNvY2tvcHQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHNvY2tvcHQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXRzb2Nrb3B0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXR0aW1lb2ZkYXkuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0dGltZW9mZGF5LlMKaW5kZXggMTIxYzBiNi4uMGQwMGM4OSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXR0aW1lb2ZkYXkuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHRpbWVvZmRheS5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNldHRpbWVvZmRheSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0dWlkLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHVpZC5TCmluZGV4IGY0MjY3MDUuLjE5ZTJhMTAgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0dWlkLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXR1aWQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXR1aWQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHhhdHRyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NldHhhdHRyLlMKaW5kZXggYzAyYWE4NC4uM2U0ZDUwYiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zZXR4YXR0ci5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2V0eGF0dHIuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzZXR4YXR0cikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2h1dGRvd24uUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2h1dGRvd24uUwppbmRleCA5NmE2NWY4Li4zNDZiZTMzIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NodXRkb3duLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zaHV0ZG93bi5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNodXRkb3duKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zaWdhbHRzdGFjay5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zaWdhbHRzdGFjay5TCmluZGV4IDU3ZGM0MWEuLjI3MWZhZmMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc2lnYWx0c3RhY2suUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQoc2lnYWx0c3RhY2spCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NvY2tldHBhaXIuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc29ja2V0cGFpci5TCmluZGV4IDRlNzZlODMuLjU0NjZkYzkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc29ja2V0cGFpci5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc29ja2V0cGFpci5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHNvY2tldHBhaXIpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHBpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zcGxpY2UuUwpzaW1pbGFyaXR5IGluZGV4IDcyJQpjb3B5IGZyb20gbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwaWQuUwpjb3B5IHRvIGxpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3BsaWNlLlMKaW5kZXggNjViOGRmNC4uM2MyNDVhNSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3NwbGljZS5TCkBAIC0yLDE1ICsyLDE1IEBACiAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAotRU5UUlkoZ2V0cGlkKQotICAgIG1vdmwgICAgJF9fTlJfZ2V0cGlkLCAlZWF4CitFTlRSWShzcGxpY2UpCisgICAgbW92cSAgICAlcmN4LCAlcjEwCisgICAgbW92bCAgICAkX19OUl9zcGxpY2UsICVlYXgKICAgICBzeXNjYWxsCiAgICAgY21wcSAgICAkLU1BWF9FUlJOTywgJXJheAogICAgIGpiICAgICAgMWYKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0Ci1FTkQoZ2V0cGlkKQorRU5EKHNwbGljZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3RhdGZzNjQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3RhdGZzNjQuUwppbmRleCA5MzQxZDQzLi42YTI2MzdjIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N0YXRmczY0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zdGF0ZnM2NC5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHN0YXRmczY0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zd2Fwb2ZmLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N3YXBvZmYuUwppbmRleCAyZjJkYWZlLi43ZTU1NzU4IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N3YXBvZmYuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N3YXBvZmYuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzd2Fwb2ZmKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zd2Fwb24uUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3dhcG9uLlMKaW5kZXggM2RiNzkyMS4uZDJmNWY2NiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zd2Fwb24uUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N3YXBvbi5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHN3YXBvbikKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3ltbGlua2F0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N5bWxpbmthdC5TCmluZGV4IDU0YjRkNGUuLjViYmYxY2IgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3ltbGlua2F0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9zeW1saW5rYXQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORChzeW1saW5rYXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N5bmMuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3luYy5TCmluZGV4IGY1OGM3ODguLjk5MTE3MTUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3luYy5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3luYy5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHN5bmMpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3N5c2luZm8uUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3lzaW5mby5TCmluZGV4IGQ0ODM2OTMuLjEwNGJiMmMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3lzaW5mby5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvc3lzaW5mby5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHN5c2luZm8pCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHBpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90ZWUuUwpzaW1pbGFyaXR5IGluZGV4IDcyJQpjb3B5IGZyb20gbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwaWQuUwpjb3B5IHRvIGxpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGVlLlMKaW5kZXggNjViOGRmNC4uYWQ1Njk4YyAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy9nZXRwaWQuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RlZS5TCkBAIC0yLDE1ICsyLDE1IEBACiAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAotRU5UUlkoZ2V0cGlkKQotICAgIG1vdmwgICAgJF9fTlJfZ2V0cGlkLCAlZWF4CitFTlRSWSh0ZWUpCisgICAgbW92cSAgICAlcmN4LCAlcjEwCisgICAgbW92bCAgICAkX19OUl90ZWUsICVlYXgKICAgICBzeXNjYWxsCiAgICAgY21wcSAgICAkLU1BWF9FUlJOTywgJXJheAogICAgIGpiICAgICAgMWYKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0Ci1FTkQoZ2V0cGlkKQorRU5EKHRlZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGdraWxsLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3Rna2lsbC5TCmluZGV4IDdkMjE3YjAuLmUzYjk5NzIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGdraWxsLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90Z2tpbGwuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORCh0Z2tpbGwpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RpbWVyZmRfY3JlYXRlLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RpbWVyZmRfY3JlYXRlLlMKaW5kZXggYTUxOGU0Zi4uM2YxYjIzYSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90aW1lcmZkX2NyZWF0ZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGltZXJmZF9jcmVhdGUuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORCh0aW1lcmZkX2NyZWF0ZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGltZXJmZF9nZXR0aW1lLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RpbWVyZmRfZ2V0dGltZS5TCmluZGV4IDFkMDg1M2EuLmIxMDE3YWQgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGltZXJmZF9nZXR0aW1lLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90aW1lcmZkX2dldHRpbWUuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORCh0aW1lcmZkX2dldHRpbWUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RpbWVyZmRfc2V0dGltZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90aW1lcmZkX3NldHRpbWUuUwppbmRleCBhMjNhZjRlLi44NjEwYTFkIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RpbWVyZmRfc2V0dGltZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGltZXJmZF9zZXR0aW1lLlMKQEAgLTExLDcgKzExLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQodGltZXJmZF9zZXR0aW1lKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90aW1lcy5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90aW1lcy5TCmluZGV4IDUyMGQwNjIuLjA3NTkwYjkgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdGltZXMuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RpbWVzLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQodGltZXMpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RydW5jYXRlLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3RydW5jYXRlLlMKaW5kZXggZGZiNjY4Ny4uZGIyMTIxZiAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy90cnVuY2F0ZS5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdHJ1bmNhdGUuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORCh0cnVuY2F0ZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdW1hc2suUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdW1hc2suUwppbmRleCAzNjBhZDcxLi5iYWRlYTc2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3VtYXNrLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bWFzay5TCkBAIC0xMCw3ICsxMCw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHVtYXNrKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bW91bnQyLlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3Vtb3VudDIuUwppbmRleCBlMmRlNDRiLi45M2U2ZmEwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3Vtb3VudDIuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3Vtb3VudDIuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORCh1bW91bnQyKQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bmFtZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bmFtZS5TCmluZGV4IDhhZDQwZmEuLjRiMGQxYzUgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdW5hbWUuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3VuYW1lLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQodW5hbWUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3VubGlua2F0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3VubGlua2F0LlMKaW5kZXggODNiYjU5Zi4uZjMyMmY3ZCAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bmxpbmthdC5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdW5saW5rYXQuUwpAQCAtMTAsNyArMTAsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORCh1bmxpbmthdCkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdW5zaGFyZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bnNoYXJlLlMKaW5kZXggMDQ0YWY5OS4uYjUzOTVjMSAxMDA2NDQKLS0tIGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bnNoYXJlLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91bnNoYXJlLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQodW5zaGFyZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdXRpbWVuc2F0LlMgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3V0aW1lbnNhdC5TCmluZGV4IDRkMjYzZmYuLmY5MGNhZjIgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvdXRpbWVuc2F0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy91dGltZW5zYXQuUwpAQCAtMTEsNyArMTEsNiBAQAogICAgIG5lZ2wgICAgJWVheAogICAgIG1vdmwgICAgJWVheCwgJWVkaQogICAgIGNhbGwgICAgX19zZXRfZXJybm8KLSAgICBvcnEgICAgICQtMSwgJXJheAogMToKICAgICByZXQKIEVORCh1dGltZW5zYXQpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHBpZC5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy92bXNwbGljZS5TCnNpbWlsYXJpdHkgaW5kZXggNzElCmNvcHkgZnJvbSBsaWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL2dldHBpZC5TCmNvcHkgdG8gbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy92bXNwbGljZS5TCmluZGV4IDY1YjhkZjQuLmNjOTRjYzYgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvZ2V0cGlkLlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy92bXNwbGljZS5TCkBAIC0yLDE1ICsyLDE1IEBACiAKICNpbmNsdWRlIDxwcml2YXRlL2Jpb25pY19hc20uaD4KIAotRU5UUlkoZ2V0cGlkKQotICAgIG1vdmwgICAgJF9fTlJfZ2V0cGlkLCAlZWF4CitFTlRSWSh2bXNwbGljZSkKKyAgICBtb3ZxICAgICVyY3gsICVyMTAKKyAgICBtb3ZsICAgICRfX05SX3Ztc3BsaWNlLCAlZWF4CiAgICAgc3lzY2FsbAogICAgIGNtcHEgICAgJC1NQVhfRVJSTk8sICVyYXgKICAgICBqYiAgICAgIDFmCiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAotRU5EKGdldHBpZCkKK0VORCh2bXNwbGljZSkKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvd2FpdDQuUyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvd2FpdDQuUwppbmRleCA3ZGU3OGFjLi43OTQ4MzMxIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3dhaXQ0LlMKKysrIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy93YWl0NC5TCkBAIC0xMSw3ICsxMSw2IEBACiAgICAgbmVnbCAgICAlZWF4CiAgICAgbW92bCAgICAlZWF4LCAlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlcmF4CiAxOgogICAgIHJldAogRU5EKHdhaXQ0KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy93cml0ZS5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy93cml0ZS5TCmluZGV4IGVhYjM5MDQuLjdlM2E1NjMgMTAwNjQ0Ci0tLSBhL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvd3JpdGUuUworKysgYi9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3dyaXRlLlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQod3JpdGUpCmRpZmYgLS1naXQgYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3dyaXRldi5TIGIvbGliYy9hcmNoLXg4Nl82NC9zeXNjYWxscy93cml0ZXYuUwppbmRleCBiMjFlM2Q2Li41ZmMwNDBhIDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3N5c2NhbGxzL3dyaXRldi5TCisrKyBiL2xpYmMvYXJjaC14ODZfNjQvc3lzY2FsbHMvd3JpdGV2LlMKQEAgLTEwLDcgKzEwLDYgQEAKICAgICBuZWdsICAgICVlYXgKICAgICBtb3ZsICAgICVlYXgsICVlZGkKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCi0gICAgb3JxICAgICAkLTEsICVyYXgKIDE6CiAgICAgcmV0CiBFTkQod3JpdGV2KQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLXg4Nl82NC94ODZfNjQubWsgYi9saWJjL2FyY2gteDg2XzY0L3g4Nl82NC5tawppbmRleCAyZjBjZjJkLi4yMzRjZjY3IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2XzY0L3g4Nl82NC5taworKysgYi9saWJjL2FyY2gteDg2XzY0L3g4Nl82NC5tawpAQCAtMSw3ICsxLDYgQEAKICMgeDg2XzY0IHNwZWNpZmljIGNvbmZpZ3MKIAogbGliY19jb21tb25fc3JjX2ZpbGVzX3g4Nl82NCA6PSBcCi0gICAgYmlvbmljL2luZGV4LmNwcCBcCiAgICAgYmlvbmljL21lbWNoci5jIFwKICAgICBiaW9uaWMvbWVtcmNoci5jIFwKICAgICBiaW9uaWMvc3RyY2hyLmNwcCBcCkBAIC0zOCw4ICszNyw2IEBACiAgICAgYXJjaC14ODZfNjQvYmlvbmljL19fc2V0X3Rscy5jIFwKICAgICBhcmNoLXg4Nl82NC9iaW9uaWMvc2lnc2V0am1wLlMgXAogICAgIGFyY2gteDg2XzY0L2Jpb25pYy9zeXNjYWxsLlMgXAotICAgIGFyY2gteDg2XzY0L2Jpb25pYy92Zm9yay5TIFwKLSAgICBiaW9uaWMvX19tZW1jbXAxNi5jcHAgXAogCiBsaWJjX2Jpb25pY19zcmNfZmlsZXNfeDg2XzY0ICs9IFwKICAgICBhcmNoLXg4Nl82NC9zdHJpbmcvc3NlMi1tZW1jcHktc2xtLlMgXApkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvX19tZW1jbXAxNi5jcHAgYi9saWJjL2Jpb25pYy9fX21lbWNtcDE2LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWIzYTA4Yi4uMDAwMDAwMAotLS0gYS9saWJjL2Jpb25pYy9fX21lbWNtcDE2LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi1Db3B5cmlnaHQgKGMpIDIwMTMgSW50ZWwgQ29ycG9yYXRpb24KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAgICAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEludGVsIENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICAgICogbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0gICAgKiB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLVdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLURJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi1BTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLVNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotI2luY2x1ZGUgPHN0ZGRlZi5oPgotCi0vLyBVbm9wdGltaXplZCB2ZXJzaW9uIG9mIF9fbWVtY21wMTYuCi1leHRlcm4gIkMiIGludCBfX21lbWNtcDE2KGNvbnN0IHVuc2lnbmVkIHNob3J0KiBsaHMsIGNvbnN0IHVuc2lnbmVkIHNob3J0KiByaHMsIHNpemVfdCBuKSB7Ci0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0gICAgaWYgKCpsaHMgIT0gKnJocykgewotICAgICAgcmV0dXJuICpsaHMgLSAqcmhzOwotICAgIH0KLSAgICBsaHMrKzsKLSAgICByaHMrKzsKLSAgfQotICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL2FyYzRyYW5kb20uYyBiL2xpYmMvYmlvbmljL2FyYzRyYW5kb20uYwppbmRleCA2ODcwMzBiLi45YmRmMzQxIDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9hcmM0cmFuZG9tLmMKKysrIGIvbGliYy9iaW9uaWMvYXJjNHJhbmRvbS5jCkBAIC0xLDggKzEsOSBAQAotLyogICAgICAkT3BlbkJTRDogYXJjNHJhbmRvbS5jLHYgMS4xOSAyMDA4LzA2LzA0IDAwOjUwOjIzIGRqbSBFeHAgJCAgICAgICAgKi8KKy8qCSRPcGVuQlNEOiBhcmM0cmFuZG9tLmMsdiAxLjMzIDIwMTQvMDYvMTMgMTg6NTg6NTggZGVyYWFkdCBFeHAgJAkqLwogCiAvKgogICogQ29weXJpZ2h0IChjKSAxOTk2LCBEYXZpZCBNYXppZXJlcyA8ZG1AdXVuLm9yZz4KICAqIENvcHlyaWdodCAoYykgMjAwOCwgRGFtaWVuIE1pbGxlciA8ZGptQG9wZW5ic2Qub3JnPgorICogQ29weXJpZ2h0IChjKSAyMDEzLCBNYXJrdXMgRnJpZWRsIDxtYXJrdXNAb3BlbmJzZC5vcmc+CiAgKgogICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55CiAgKiBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlCkBAIC0xOCwyMTQgKzE5LDIzNiBAQAogICovCiAKIC8qCi0gKiBBcmM0IHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGZvciBPcGVuQlNELgotICoKLSAqIFRoaXMgY29kZSBpcyBkZXJpdmVkIGZyb20gc2VjdGlvbiAxNy4xIG9mIEFwcGxpZWQgQ3J5cHRvZ3JhcGh5LAotICogc2Vjb25kIGVkaXRpb24sIHdoaWNoIGRlc2NyaWJlcyBhIHN0cmVhbSBjaXBoZXIgYWxsZWdlZGx5Ci0gKiBjb21wYXRpYmxlIHdpdGggUlNBIExhYnMgIlJDNCIgY2lwaGVyICh0aGUgYWN0dWFsIGRlc2NyaXB0aW9uIG9mCi0gKiB3aGljaCBpcyBhIHRyYWRlIHNlY3JldCkuICBUaGUgc2FtZSBhbGdvcml0aG0gaXMgdXNlZCBhcyBhIHN0cmVhbQotICogY2lwaGVyIGNhbGxlZCAiYXJjZm91ciIgaW4gVGF0dSBZbG9uZW4ncyBzc2ggcGFja2FnZS4KLSAqCi0gKiBIZXJlIHRoZSBzdHJlYW0gY2lwaGVyIGhhcyBiZWVuIG1vZGlmaWVkIGFsd2F5cyB0byBpbmNsdWRlIHRoZSB0aW1lCi0gKiB3aGVuIGluaXRpYWxpemluZyB0aGUgc3RhdGUuICBUaGF0IG1ha2VzIGl0IGltcG9zc2libGUgdG8KLSAqIHJlZ2VuZXJhdGUgdGhlIHNhbWUgcmFuZG9tIHNlcXVlbmNlIHR3aWNlLCBzbyB0aGlzIGNhbid0IGJlIHVzZWQKLSAqIGZvciBlbmNyeXB0aW9uLCBidXQgd2lsbCBnZW5lcmF0ZSBnb29kIHJhbmRvbSBudW1iZXJzLgotICoKLSAqIFJDNCBpcyBhIHJlZ2lzdGVyZWQgdHJhZGVtYXJrIG9mIFJTQSBMYWJvcmF0b3JpZXMuCisgKiBDaGFDaGEgYmFzZWQgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgZm9yIE9wZW5CU0QuCiAgKi8KIAogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorCisjaWYgZGVmaW5lZChfX0FORFJPSURfXykKKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgInByaXZhdGUvbGliY19sb2dnaW5nLmgiCiAjaW5jbHVkZSAicHJpdmF0ZS90aHJlYWRfcHJpdmF0ZS5oIgogCi0vKiBCSU9OSUMtQkVHSU4gKi8KLS8qIHRoaXMgbG9jayBzaG91bGQgcHJvdGVjdCB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBpbiB0aGlzIGZpbGUgKi8KLXN0YXRpYyBwdGhyZWFkX211dGV4X3QgIF9hcmM0X2xvY2sgPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOwotI2RlZmluZSAgX0FSQzRfTE9DSygpICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZfYXJjNF9sb2NrKQotI2RlZmluZSAgX0FSQzRfVU5MT0NLKCkgICAgcHRocmVhZF9tdXRleF91bmxvY2soJl9hcmM0X2xvY2spCi0vKiBCSU9OSUMtRU5EICovCisjZGVmaW5lIGV4cGxpY2l0X2J6ZXJvKHAsIHMpIG1lbXNldChwLCAwLCBzKQorCisjdW5kZWYgTUFQX0FOT04KKyNkZWZpbmUgTUFQX0FOT04gKE1BUF9QUklWQVRFIHwgTUFQX0FOT05ZTU9VUykKKworLyoKKyAqIFhYWCBTaG91bGQgYmUgcmVwbGFjZWQgd2l0aCBhIHByb3BlciBlbnRyb3B5IG1lYXN1cmUuCisgKi8KK3N0YXRpYyBpbnQKK2dvdGRhdGEodV9jaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJY2hhcglhbnlfc2V0ID0gMDsKKwlzaXplX3QJaTsKKworCWZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkKKwkJYW55X3NldCB8PSBidWZbaV07CisJaWYgKGFueV9zZXQgPT0gMCkKKwkJcmV0dXJuIC0xOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitnZXRlbnRyb3B5LypfdXJhbmRvbSovKHVfY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCWludCBzYXZlX2Vycm5vID0gZXJybm87CisKKwlpbnQgZmQgPSBURU1QX0ZBSUxVUkVfUkVUUlkob3BlbigiL2Rldi91cmFuZG9tIiwgT19SRE9OTFl8T19DTE9FWEVDfE9fTk9GT0xMT1csIDApKTsKKwlpZiAoZmQgPT0gLTEpIHsKKwkJX19saWJjX2ZhdGFsKCJnZXRlbnRyb3B5X3VyYW5kb20gZmFpbGVkIHRvIG9wZW4gXCIvZGV2L3VyYW5kb21cIjogJXMiLAorCQkJCXN0cmVycm9yKGVycm5vKSk7CisJfQorCisJLyogTGlnaHRseSB2ZXJpZnkgdGhhdCB0aGUgZGV2aWNlIG5vZGUgbG9va3Mgc2FuZSAqLworCXN0cnVjdCBzdGF0IHN0OworCWlmIChmc3RhdChmZCwgJnN0KSA9PSAtMSB8fCAhU19JU0NIUihzdC5zdF9tb2RlKSkgeworCQlfX2xpYmNfZmF0YWwoImdldGVudHJvcHlfdXJhbmRvbSBmYWlsZWQgdG8gZnN0YXQgXCIvZGV2L3VyYW5kb21cIjogJXMiLAorCQkJCXN0cmVycm9yKGVycm5vKSk7CisJfQorCWludCBjbnQ7CisJaWYgKGlvY3RsKGZkLCBSTkRHRVRFTlRDTlQsICZjbnQpID09IC0xKSB7CisJCV9fbGliY19mYXRhbCgiZ2V0ZW50cm9weV91cmFuZG9tIGZhaWxlZCB0byBpb2N0bCBcIi9kZXYvdXJhbmRvbVwiOiAlcyIsCisJCQkJc3RyZXJyb3IoZXJybm8pKTsKKwl9CisJZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW47ICkgeworCQlzaXplX3Qgd2FudGVkID0gbGVuIC0gaTsKKwkJc3NpemVfdCByZXQgPSBURU1QX0ZBSUxVUkVfUkVUUlkocmVhZChmZCwgYnVmICsgaSwgd2FudGVkKSk7CisKKwkJaWYgKHJldCA9PSAtMSkgeworCQkJX19saWJjX2ZhdGFsKCJnZXRlbnRyb3B5X3VyYW5kb20gZmFpbGVkIHRvIHJlYWQgXCIvZGV2L3VyYW5kb21cIjogJXMiLAorCQkJCQlzdHJlcnJvcihlcnJubykpOworCQl9CisJCWkgKz0gcmV0OworCX0KKwljbG9zZShmZCk7CisJaWYgKGdvdGRhdGEoYnVmLCBsZW4pID09IC0xKSB7CisJCV9fbGliY19mYXRhbCgiZ2V0ZW50cm9weV91cmFuZG9tIGZhaWxlZCB0byBnZXQgZW5vdWdoIGVudHJvcHk6ICVzIiwKKwkJCQlzdHJlcnJvcihlcnJubykpOworCX0KKworCWVycm5vID0gc2F2ZV9lcnJubzsKKwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBfX0FORFJPSURfXyAqLworCisjZGVmaW5lIEtFWVNUUkVBTV9PTkxZCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtcGFyYW1ldGVyIgorI2luY2x1ZGUgIi4uL3Vwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvY3J5cHQvY2hhY2hhX3ByaXZhdGUuaCIKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCiAKICNpZmRlZiBfX0dOVUNfXwogI2RlZmluZSBpbmxpbmUgX19pbmxpbmUKLSNlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIV9fR05VQ19fICovCisjZWxzZQkJCQkvKiAhX19HTlVDX18gKi8KICNkZWZpbmUgaW5saW5lCi0jZW5kaWYgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICFfX0dOVUNfXyAqLworI2VuZGlmCQkJCS8qICFfX0dOVUNfXyAqLwogCi1zdHJ1Y3QgYXJjNF9zdHJlYW0gewotICAgICAgICB1X2ludDhfdCBpOwotICAgICAgICB1X2ludDhfdCBqOwotICAgICAgICB1X2ludDhfdCBzWzI1Nl07Ci19OwotCisjZGVmaW5lIEtFWVNaCTMyCisjZGVmaW5lIElWU1oJOAorI2RlZmluZSBCTE9DS1NaCTY0CisjZGVmaW5lIFJTQlVGU1oJKDE2KkJMT0NLU1opCiBzdGF0aWMgaW50IHJzX2luaXRpYWxpemVkOwotc3RhdGljIHN0cnVjdCBhcmM0X3N0cmVhbSByczsKLXN0YXRpYyBwaWRfdCBhcmM0X3N0aXJfcGlkOwotc3RhdGljIGludCBhcmM0X2NvdW50Oworc3RhdGljIHBpZF90IHJzX3N0aXJfcGlkOworc3RhdGljIGNoYWNoYV9jdHggKnJzOwkJLyogY2hhY2hhIGNvbnRleHQgZm9yIHJhbmRvbSBrZXlzdHJlYW0gKi8KK3N0YXRpYyB1X2NoYXIgKnJzX2J1ZjsJCS8qIGtleXN0cmVhbSBibG9ja3MgKi8KK3N0YXRpYyBzaXplX3QgcnNfaGF2ZTsJCS8qIHZhbGlkIGJ5dGVzIGF0IGVuZCBvZiByc19idWYgKi8KK3N0YXRpYyBzaXplX3QgcnNfY291bnQ7CQkvKiBieXRlcyB0aWxsIHJlc2VlZCAqLwogCi1zdGF0aWMgaW5saW5lIHVfaW50OF90IGFyYzRfZ2V0Ynl0ZSh2b2lkKTsKK3N0YXRpYyBpbmxpbmUgdm9pZCBfcnNfcmVrZXkodV9jaGFyICpkYXQsIHNpemVfdCBkYXRsZW4pOwogCiBzdGF0aWMgaW5saW5lIHZvaWQKLWFyYzRfaW5pdCh2b2lkKQorX3JzX2luaXQodV9jaGFyICpidWYsIHNpemVfdCBuKQogewotICAgICAgICBpbnQgICAgIG47CisJaWYgKG4gPCBLRVlTWiArIElWU1opCisJCXJldHVybjsKIAotICAgICAgICBmb3IgKG4gPSAwOyBuIDwgMjU2OyBuKyspCi0gICAgICAgICAgICAgICAgcnMuc1tuXSA9IG47Ci0gICAgICAgIHJzLmkgPSAwOwotICAgICAgICBycy5qID0gMDsKLX0KKwlpZiAocnMgPT0gTlVMTCAmJiAocnMgPSBtbWFwKE5VTEwsIHNpemVvZigqcnMpLCBQUk9UX1JFQUR8UFJPVF9XUklURSwKKwkgICAgTUFQX0FOT04sIC0xLCAwKSkgPT0gTUFQX0ZBSUxFRCkKKwkJYWJvcnQoKTsKKwlpZiAocnNfYnVmID09IE5VTEwgJiYgKHJzX2J1ZiA9IG1tYXAoTlVMTCwgUlNCVUZTWiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsCisJICAgIE1BUF9BTk9OLCAtMSwgMCkpID09IE1BUF9GQUlMRUQpCisJCWFib3J0KCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZAotYXJjNF9hZGRyYW5kb20odV9jaGFyICpkYXQsIGludCBkYXRsZW4pCi17Ci0gICAgICAgIGludCAgICAgbjsKLSAgICAgICAgdV9pbnQ4X3Qgc2k7Ci0KLSAgICAgICAgcnMuaS0tOwotICAgICAgICBmb3IgKG4gPSAwOyBuIDwgMjU2OyBuKyspIHsKLSAgICAgICAgICAgICAgICBycy5pID0gKHJzLmkgKyAxKTsKLSAgICAgICAgICAgICAgICBzaSA9IHJzLnNbcnMuaV07Ci0gICAgICAgICAgICAgICAgcnMuaiA9IChycy5qICsgc2kgKyBkYXRbbiAlIGRhdGxlbl0pOwotICAgICAgICAgICAgICAgIHJzLnNbcnMuaV0gPSBycy5zW3JzLmpdOwotICAgICAgICAgICAgICAgIHJzLnNbcnMual0gPSBzaTsKLSAgICAgICAgfQotICAgICAgICBycy5qID0gcnMuaTsKKwljaGFjaGFfa2V5c2V0dXAocnMsIGJ1ZiwgS0VZU1ogKiA4LCAwKTsKKwljaGFjaGFfaXZzZXR1cChycywgYnVmICsgS0VZU1opOwogfQogCiBzdGF0aWMgdm9pZAotYXJjNF9zdGlyKHZvaWQpCitfcnNfc3Rpcih2b2lkKQogewotI2lmIDEgIC8qIEJJT05JQy1CRUdJTiAqLwotCWludCAgICAgaSwgZmQ7Ci0JdW5pb24gewotCQlzdHJ1Y3QgdGltZXZhbCB0djsKLQkJdV9pbnQgcm5kWzEyOCAvIHNpemVvZih1X2ludCldOwotCX0gICAgICAgcmRhdDsKLQlpbnQJbjsKKwl1X2NoYXIgcm5kW0tFWVNaICsgSVZTWl07CiAKLSAgICAgICAgaWYgKCFyc19pbml0aWFsaXplZCkgewotICAgICAgICAgICAgICAgIGFyYzRfaW5pdCgpOwotICAgICAgICAgICAgICAgIHJzX2luaXRpYWxpemVkID0gMTsKLSAgICAgICAgfQorCS8qIFhYWCAqLworCSh2b2lkKSBnZXRlbnRyb3B5KHJuZCwgc2l6ZW9mIHJuZCk7CiAKLQlmZCA9IG9wZW4oIi9kZXYvdXJhbmRvbSIsIE9fUkRPTkxZKTsKLQlpZiAoZmQgIT0gLTEpIHsKLQkJcmVhZChmZCwgcmRhdC5ybmQsIHNpemVvZihyZGF0LnJuZCkpOwotCQljbG9zZShmZCk7Ci0JfQotICAgICAgICBlbHNlCi0gICAgICAgIHsKLQkgICAgLyogZmQgPCAwID8gIEFoLCB3aGF0IHRoZSBoZWNrLiBXZSdsbCBqdXN0IHRha2UKLQkgICAgICogd2hhdGV2ZXIgd2FzIG9uIHRoZSBzdGFjay4ganVzdCBhZGQgYSBsaXR0bGUgbW9yZQotICAgICAgICAgICAgICogdGltZS1iYXNlZCByYW5kb21uZXNzIHRob3VnaAotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBnZXR0aW1lb2ZkYXkoJnJkYXQudHYsIE5VTEwpOwotICAgICAgICB9CisJaWYgKCFyc19pbml0aWFsaXplZCkgeworCQlyc19pbml0aWFsaXplZCA9IDE7CisJCV9yc19pbml0KHJuZCwgc2l6ZW9mKHJuZCkpOworCX0gZWxzZQorCQlfcnNfcmVrZXkocm5kLCBzaXplb2Yocm5kKSk7CisJZXhwbGljaXRfYnplcm8ocm5kLCBzaXplb2Yocm5kKSk7CiAKLSAgICAgICAgYXJjNF9zdGlyX3BpZCA9IGdldHBpZCgpOwotCWFyYzRfYWRkcmFuZG9tKCh2b2lkICopICZyZGF0LCBzaXplb2YocmRhdCkpOwotI2Vsc2UgIC8qIEJJT05JQy1FTkQgKi8KLSAgICAgICAgaW50ICAgICBpLCBtaWJbMl07Ci0gICAgICAgIHNpemVfdCAgICAgICAgbGVuOwotICAgICAgICB1X2NoYXIgcm5kWzEyOF07CisJLyogaW52YWxpZGF0ZSByc19idWYgKi8KKwlyc19oYXZlID0gMDsKKwltZW1zZXQocnNfYnVmLCAwLCBSU0JVRlNaKTsKIAotICAgICAgICBpZiAoIXJzX2luaXRpYWxpemVkKSB7Ci0gICAgICAgICAgICAgICAgYXJjNF9pbml0KCk7Ci0gICAgICAgICAgICAgICAgcnNfaW5pdGlhbGl6ZWQgPSAxOwotICAgICAgICB9CisJcnNfY291bnQgPSAxNjAwMDAwOworfQogCi0gICAgICAgIG1pYlswXSA9IENUTF9LRVJOOwotICAgICAgICBtaWJbMV0gPSBLRVJOX0FSTkQ7CitzdGF0aWMgaW5saW5lIHZvaWQKK19yc19zdGlyX2lmX25lZWRlZChzaXplX3QgbGVuKQoreworCXBpZF90IHBpZCA9IGdldHBpZCgpOwogCi0gICAgICAgIGxlbiA9IHNpemVvZihybmQpOwotICAgICAgICBzeXNjdGwobWliLCAyLCBybmQsICZsZW4sIE5VTEwsIDApOworCWlmIChyc19jb3VudCA8PSBsZW4gfHwgIXJzX2luaXRpYWxpemVkIHx8IHJzX3N0aXJfcGlkICE9IHBpZCkgeworCQlyc19zdGlyX3BpZCA9IHBpZDsKKwkJX3JzX3N0aXIoKTsKKwl9IGVsc2UKKwkJcnNfY291bnQgLT0gbGVuOworfQogCi0gICAgICAgIGFyYzRfc3Rpcl9waWQgPSBnZXRwaWQoKTsKLSAgICAgICAgYXJjNF9hZGRyYW5kb20ocm5kLCBzaXplb2Yocm5kKSk7CitzdGF0aWMgaW5saW5lIHZvaWQKK19yc19yZWtleSh1X2NoYXIgKmRhdCwgc2l6ZV90IGRhdGxlbikKK3sKKyNpZm5kZWYgS0VZU1RSRUFNX09OTFkKKwltZW1zZXQocnNfYnVmLCAwLFJTQlVGU1opOwogI2VuZGlmCi0gICAgICAgIC8qCi0gICAgICAgICAqIERpc2NhcmQgZWFybHkga2V5c3RyZWFtLCBhcyBwZXIgcmVjb21tZW5kYXRpb25zIGluOgotICAgICAgICAgKiBodHRwOi8vd3d3Lndpc2RvbS53ZWl6bWFubi5hYy5pbC9+aXRzaWsvUkM0L1BhcGVycy9SYzRfa3NhLnBzCi0gICAgICAgICAqLwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0gICAgICAgICAgICAgICAgKHZvaWQpYXJjNF9nZXRieXRlKCk7Ci0gICAgICAgIGFyYzRfY291bnQgPSAxNjAwMDAwOworCS8qIGZpbGwgcnNfYnVmIHdpdGggdGhlIGtleXN0cmVhbSAqLworCWNoYWNoYV9lbmNyeXB0X2J5dGVzKHJzLCByc19idWYsIHJzX2J1ZiwgUlNCVUZTWik7CisJLyogbWl4IGluIG9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgZGF0YSAqLworCWlmIChkYXQpIHsKKwkJc2l6ZV90IGksIG07CisKKwkJbSA9IE1JTihkYXRsZW4sIEtFWVNaICsgSVZTWik7CisJCWZvciAoaSA9IDA7IGkgPCBtOyBpKyspCisJCQlyc19idWZbaV0gXj0gZGF0W2ldOworCX0KKwkvKiBpbW1lZGlhdGVseSByZWluaXQgZm9yIGJhY2t0cmFja2luZyByZXNpc3RhbmNlICovCisJX3JzX2luaXQocnNfYnVmLCBLRVlTWiArIElWU1opOworCW1lbXNldChyc19idWYsIDAsIEtFWVNaICsgSVZTWik7CisJcnNfaGF2ZSA9IFJTQlVGU1ogLSBLRVlTWiAtIElWU1o7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdV9pbnQ4X3QKLWFyYzRfZ2V0Ynl0ZSh2b2lkKQorc3RhdGljIGlubGluZSB2b2lkCitfcnNfcmFuZG9tX2J1Zih2b2lkICpfYnVmLCBzaXplX3QgbikKIHsKLSAgICAgICAgdV9pbnQ4X3Qgc2ksIHNqOworCXVfY2hhciAqYnVmID0gKHVfY2hhciAqKV9idWY7CisJc2l6ZV90IG07CiAKLSAgICAgICAgcnMuaSA9IChycy5pICsgMSk7Ci0gICAgICAgIHNpID0gcnMuc1tycy5pXTsKLSAgICAgICAgcnMuaiA9IChycy5qICsgc2kpOwotICAgICAgICBzaiA9IHJzLnNbcnMual07Ci0gICAgICAgIHJzLnNbcnMuaV0gPSBzajsKLSAgICAgICAgcnMuc1tycy5qXSA9IHNpOwotICAgICAgICByZXR1cm4gKHJzLnNbKHNpICsgc2opICYgMHhmZl0pOworCV9yc19zdGlyX2lmX25lZWRlZChuKTsKKwl3aGlsZSAobiA+IDApIHsKKwkJaWYgKHJzX2hhdmUgPiAwKSB7CisJCQltID0gTUlOKG4sIHJzX2hhdmUpOworCQkJbWVtY3B5KGJ1ZiwgcnNfYnVmICsgUlNCVUZTWiAtIHJzX2hhdmUsIG0pOworCQkJbWVtc2V0KHJzX2J1ZiArIFJTQlVGU1ogLSByc19oYXZlLCAwLCBtKTsKKwkJCWJ1ZiArPSBtOworCQkJbiAtPSBtOworCQkJcnNfaGF2ZSAtPSBtOworCQl9CisJCWlmIChyc19oYXZlID09IDApCisJCQlfcnNfcmVrZXkoTlVMTCwgMCk7CisJfQogfQogCi1zdGF0aWMgaW5saW5lIHVfaW50MzJfdAotYXJjNF9nZXR3b3JkKHZvaWQpCitzdGF0aWMgaW5saW5lIHZvaWQKK19yc19yYW5kb21fdTMyKHVfaW50MzJfdCAqdmFsKQogewotICAgICAgICB1X2ludDMyX3QgdmFsOwotICAgICAgICB2YWwgPSBhcmM0X2dldGJ5dGUoKSA8PCAyNDsKLSAgICAgICAgdmFsIHw9IGFyYzRfZ2V0Ynl0ZSgpIDw8IDE2OwotICAgICAgICB2YWwgfD0gYXJjNF9nZXRieXRlKCkgPDwgODsKLSAgICAgICAgdmFsIHw9IGFyYzRfZ2V0Ynl0ZSgpOwotICAgICAgICByZXR1cm4gdmFsOwotfQotCi12b2lkCi1hcmM0cmFuZG9tX3N0aXIodm9pZCkKLXsKLSAgICAgICAgX0FSQzRfTE9DSygpOwotICAgICAgICBhcmM0X3N0aXIoKTsKLSAgICAgICAgX0FSQzRfVU5MT0NLKCk7Ci19Ci0KLXZvaWQKLWFyYzRyYW5kb21fYWRkcmFuZG9tKHVfY2hhciAqZGF0LCBpbnQgZGF0bGVuKQotewotICAgICAgICBfQVJDNF9MT0NLKCk7Ci0gICAgICAgIGlmICghcnNfaW5pdGlhbGl6ZWQpCi0gICAgICAgICAgICAgICAgYXJjNF9zdGlyKCk7Ci0gICAgICAgIGFyYzRfYWRkcmFuZG9tKGRhdCwgZGF0bGVuKTsKLSAgICAgICAgX0FSQzRfVU5MT0NLKCk7CisJX3JzX3N0aXJfaWZfbmVlZGVkKHNpemVvZigqdmFsKSk7CisJaWYgKHJzX2hhdmUgPCBzaXplb2YoKnZhbCkpCisJCV9yc19yZWtleShOVUxMLCAwKTsKKwltZW1jcHkodmFsLCByc19idWYgKyBSU0JVRlNaIC0gcnNfaGF2ZSwgc2l6ZW9mKCp2YWwpKTsKKwltZW1zZXQocnNfYnVmICsgUlNCVUZTWiAtIHJzX2hhdmUsIDAsIHNpemVvZigqdmFsKSk7CisJcnNfaGF2ZSAtPSBzaXplb2YoKnZhbCk7CiB9CiAKIHVfaW50MzJfdAogYXJjNHJhbmRvbSh2b2lkKQogewotICAgICAgICB1X2ludDMyX3QgdmFsOwotICAgICAgICBfQVJDNF9MT0NLKCk7Ci0gICAgICAgIGFyYzRfY291bnQgLT0gNDsKLSAgICAgICAgaWYgKGFyYzRfY291bnQgPD0gMCB8fCAhcnNfaW5pdGlhbGl6ZWQgfHwgYXJjNF9zdGlyX3BpZCAhPSBnZXRwaWQoKSkKLSAgICAgICAgICAgICAgICBhcmM0X3N0aXIoKTsKLSAgICAgICAgdmFsID0gYXJjNF9nZXR3b3JkKCk7Ci0gICAgICAgIF9BUkM0X1VOTE9DSygpOwotICAgICAgICByZXR1cm4gdmFsOworCXVfaW50MzJfdCB2YWw7CisKKwlfQVJDNF9MT0NLKCk7CisJX3JzX3JhbmRvbV91MzIoJnZhbCk7CisJX0FSQzRfVU5MT0NLKCk7CisJcmV0dXJuIHZhbDsKIH0KIAogdm9pZAotYXJjNHJhbmRvbV9idWYodm9pZCAqX2J1Ziwgc2l6ZV90IG4pCithcmM0cmFuZG9tX2J1Zih2b2lkICpidWYsIHNpemVfdCBuKQogewotICAgICAgICB1X2NoYXIgKmJ1ZiA9ICh1X2NoYXIgKilfYnVmOwotICAgICAgICBfQVJDNF9MT0NLKCk7Ci0gICAgICAgIGlmICghcnNfaW5pdGlhbGl6ZWQgfHwgYXJjNF9zdGlyX3BpZCAhPSBnZXRwaWQoKSkKLSAgICAgICAgICAgICAgICBhcmM0X3N0aXIoKTsKLSAgICAgICAgd2hpbGUgKG4tLSkgewotICAgICAgICAgICAgICAgIGlmICgtLWFyYzRfY291bnQgPD0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyYzRfc3RpcigpOwotICAgICAgICAgICAgICAgIGJ1ZltuXSA9IGFyYzRfZ2V0Ynl0ZSgpOwotICAgICAgICB9Ci0gICAgICAgIF9BUkM0X1VOTE9DSygpOworCV9BUkM0X0xPQ0soKTsKKwlfcnNfcmFuZG9tX2J1ZihidWYsIG4pOworCV9BUkM0X1VOTE9DSygpOwogfQogCiAvKgpAQCAtMjQxLDU1ICsyNjQsMjUgQEAKIHVfaW50MzJfdAogYXJjNHJhbmRvbV91bmlmb3JtKHVfaW50MzJfdCB1cHBlcl9ib3VuZCkKIHsKLSAgICAgICAgdV9pbnQzMl90IHIsIG1pbjsKKwl1X2ludDMyX3QgciwgbWluOwogCi0gICAgICAgIGlmICh1cHBlcl9ib3VuZCA8IDIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisJaWYgKHVwcGVyX2JvdW5kIDwgMikKKwkJcmV0dXJuIDA7CiAKLSNpZiAoVUxPTkdfTUFYID4gMHhmZmZmZmZmZlVMKQotICAgICAgICBtaW4gPSAweDEwMDAwMDAwMFVMICUgdXBwZXJfYm91bmQ7Ci0jZWxzZQotICAgICAgICAvKiBDYWxjdWxhdGUgKDIqKjMyICUgdXBwZXJfYm91bmQpIGF2b2lkaW5nIDY0LWJpdCBtYXRoICovCi0gICAgICAgIGlmICh1cHBlcl9ib3VuZCA+IDB4ODAwMDAwMDApCi0gICAgICAgICAgICAgICAgbWluID0gMSArIH51cHBlcl9ib3VuZDsgICAgICAgICAgICAgICAgLyogMioqMzIgLSB1cHBlcl9ib3VuZCAqLwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAvKiAoMioqMzIgLSAoeCAqIDIpKSAlIHggPT0gMioqMzIgJSB4IHdoZW4geCA8PSAyKiozMSAqLwotICAgICAgICAgICAgICAgIG1pbiA9ICgoMHhmZmZmZmZmZiAtICh1cHBlcl9ib3VuZCAqIDIpKSArIDEpICUgdXBwZXJfYm91bmQ7Ci0gICAgICAgIH0KLSNlbmRpZgorCS8qIDIqKjMyICUgeCA9PSAoMioqMzIgLSB4KSAlIHggKi8KKwltaW4gPSAtdXBwZXJfYm91bmQgJSB1cHBlcl9ib3VuZDsKIAotICAgICAgICAvKgotICAgICAgICAgKiBUaGlzIGNvdWxkIHRoZW9yZXRpY2FsbHkgbG9vcCBmb3JldmVyIGJ1dCBlYWNoIHJldHJ5IGhhcwotICAgICAgICAgKiBwID4gMC41ICh3b3JzdCBjYXNlLCB1c3VhbGx5IGZhciBiZXR0ZXIpIG9mIHNlbGVjdGluZyBhCi0gICAgICAgICAqIG51bWJlciBpbnNpZGUgdGhlIHJhbmdlIHdlIG5lZWQsIHNvIGl0IHNob3VsZCByYXJlbHkgbmVlZAotICAgICAgICAgKiB0byByZS1yb2xsLgotICAgICAgICAgKi8KLSAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgICAgIHIgPSBhcmM0cmFuZG9tKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHIgPj0gbWluKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKwkvKgorCSAqIFRoaXMgY291bGQgdGhlb3JldGljYWxseSBsb29wIGZvcmV2ZXIgYnV0IGVhY2ggcmV0cnkgaGFzCisJICogcCA+IDAuNSAod29yc3QgY2FzZSwgdXN1YWxseSBmYXIgYmV0dGVyKSBvZiBzZWxlY3RpbmcgYQorCSAqIG51bWJlciBpbnNpZGUgdGhlIHJhbmdlIHdlIG5lZWQsIHNvIGl0IHNob3VsZCByYXJlbHkgbmVlZAorCSAqIHRvIHJlLXJvbGwuCisJICovCisJZm9yICg7OykgeworCQlyID0gYXJjNHJhbmRvbSgpOworCQlpZiAociA+PSBtaW4pCisJCQlicmVhazsKKwl9CiAKLSAgICAgICAgcmV0dXJuIHIgJSB1cHBlcl9ib3VuZDsKKwlyZXR1cm4gciAlIHVwcGVyX2JvdW5kOwogfQotCi0jaWYgMAotLyotLS0tLS0tLSBUZXN0IGNvZGUgZm9yIGkzODYgLS0tLS0tLS0qLwotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8bWFjaGluZS9wY3RyLmg+Ci1pbnQKLW1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotewotICAgICAgICBjb25zdCBpbnQgaXRlciA9IDEwMDAwMDA7Ci0gICAgICAgIGludCAgICAgaTsKLSAgICAgICAgcGN0cnZhbCB2OwotCi0gICAgICAgIHYgPSByZHRzYygpOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaXRlcjsgaSsrKQotICAgICAgICAgICAgICAgIGFyYzRyYW5kb20oKTsKLSAgICAgICAgdiA9IHJkdHNjKCkgLSB2OwotICAgICAgICB2IC89IGl0ZXI7Ci0KLSAgICAgICAgcHJpbnRmKCIlcWQgY3ljbGVzXG4iLCB2KTsKLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvYXNzZXJ0LmNwcCBiL2xpYmMvYmlvbmljL2Fzc2VydC5jcHAKaW5kZXggYmE2NzE0My4uOTg1ZmMzOCAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvYXNzZXJ0LmNwcAorKysgYi9saWJjL2Jpb25pYy9hc3NlcnQuY3BwCkBAIC0zNCwxMCArMzQsMTIgQEAKIAogdm9pZCBfX2Fzc2VydChjb25zdCBjaGFyKiBmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciogZmFpbGVkX2V4cHJlc3Npb24pIHsKICAgX19saWJjX2ZhdGFsKCIlczolZDogYXNzZXJ0aW9uIFwiJXNcIiBmYWlsZWQiLCBmaWxlLCBsaW5lLCBmYWlsZWRfZXhwcmVzc2lvbik7Ci0gIC8qIE5PVFJFQUNIRUQgKi8KIH0KIAogdm9pZCBfX2Fzc2VydDIoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBjb25zdCBjaGFyKiBmYWlsZWRfZXhwcmVzc2lvbikgewogICBfX2xpYmNfZmF0YWwoIiVzOiVkOiAlczogYXNzZXJ0aW9uIFwiJXNcIiBmYWlsZWQiLCBmaWxlLCBsaW5lLCBmdW5jdGlvbiwgZmFpbGVkX2V4cHJlc3Npb24pOwotICAvKiBOT1RSRUFDSEVEICovCit9CisKK2V4dGVybiAiQyIgX19MSUJDX0hJRERFTl9fIHZvaWQgbG9uZ2ptcGVycm9yKCkgeworICBfX2xpYmNfZmF0YWwoImxvbmdqbXAgYm90Y2giKTsKIH0KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL2Nsb25lLmNwcCBiL2xpYmMvYmlvbmljL2Nsb25lLmNwcAppbmRleCBkMzhhNDIyLi4wYTBmZGQ1IDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9jbG9uZS5jcHAKKysrIGIvbGliYy9iaW9uaWMvY2xvbmUuY3BwCkBAIC0zMSwxMSArMzEsMTMgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdGRhcmcuaD4KIAorI2luY2x1ZGUgInB0aHJlYWRfaW50ZXJuYWwuaCIKKwogZXh0ZXJuICJDIiBwaWRfdCBfX2Jpb25pY19jbG9uZSh1aW50MzJfdCBmbGFncywgdm9pZCogY2hpbGRfc3RhY2ssIGludCogcGFyZW50X3RpZCwgdm9pZCogdGxzLCBpbnQqIGNoaWxkX3RpZCwgaW50ICgqZm4pKHZvaWQqKSwgdm9pZCogYXJnKTsKIGV4dGVybiAiQyIgX19ub3JldHVybiB2b2lkIF9fZXhpdChpbnQgc3RhdHVzKTsKIAogLy8gQ2FsbGVkIGZyb20gdGhlIF9fYmlvbmljX2Nsb25lIGFzc2VtYmxlciB0byBjYWxsIHRoZSB0aHJlYWQgZnVuY3Rpb24gdGhlbiBleGl0LgotZXh0ZXJuICJDIiBfX0xJQkNfSElEREVOX18gdm9pZCBfX2Jpb25pY19jbG9uZV9lbnRyeShpbnQgKCpmbikodm9pZCopLCB2b2lkKiBhcmcpIHsKK2V4dGVybiAiQyIgX19MSUJDX0hJRERFTl9fIHZvaWQgX19zdGFydF90aHJlYWQoaW50ICgqZm4pKHZvaWQqKSwgdm9pZCogYXJnKSB7CiAgIGludCBzdGF0dXMgPSAoKmZuKShhcmcpOwogICBfX2V4aXQoc3RhdHVzKTsKIH0KQEAgLTY0LDUgKzY2LDE4IEBACiAgIGNoaWxkX3N0YWNrX2FkZHIgJj0gfjB4ZjsKICAgY2hpbGRfc3RhY2sgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihjaGlsZF9zdGFja19hZGRyKTsKIAotICByZXR1cm4gX19iaW9uaWNfY2xvbmUoZmxhZ3MsIGNoaWxkX3N0YWNrLCBwYXJlbnRfdGlkLCBuZXdfdGxzLCBjaGlsZF90aWQsIGZuLCBhcmcpOworICAvLyBSZW1lbWJlciB0aGUgcGFyZW50IHBpZCBhbmQgaW52YWxpZGF0ZSB0aGUgY2FjaGVkIHZhbHVlIHdoaWxlIHdlIGNsb25lLgorICBwdGhyZWFkX2ludGVybmFsX3QqIHNlbGYgPSBfX2dldF90aHJlYWQoKTsKKyAgcGlkX3QgcGFyZW50X3BpZCA9IHNlbGYtPmludmFsaWRhdGVfY2FjaGVkX3BpZCgpOworCisgIC8vIEFjdHVhbGx5IGRvIHRoZSBjbG9uZS4KKyAgaW50IGNsb25lX3Jlc3VsdCA9IF9fYmlvbmljX2Nsb25lKGZsYWdzLCBjaGlsZF9zdGFjaywgcGFyZW50X3RpZCwgbmV3X3RscywgY2hpbGRfdGlkLCBmbiwgYXJnKTsKKworICAvLyBXZSdyZSB0aGUgcGFyZW50LCBzbyBwdXQgb3VyIGtub3duIHBpZCBiYWNrIGluIHBsYWNlLgorICAvLyBXZSBsZWF2ZSB0aGUgY2hpbGQgd2l0aG91dCBhIGNhY2hlZCBwaWQsIGJ1dDoKKyAgLy8gMS4gcHRocmVhZF9jcmVhdGUgZ2l2ZXMgaXRzIGNoaWxkcmVuIHRoZWlyIG93biBwdGhyZWFkX2ludGVybmFsX3Qgd2l0aCB0aGUgY29ycmVjdCBwaWQuCisgIC8vIDIuIGZvcmsgbWFrZXMgYSBjbG9uZSBzeXN0ZW0gY2FsbCBkaXJlY3RseS4KKyAgLy8gSWYgYW55IG90aGVyIGNhc2VzIGJlY29tZSBpbXBvcnRhbnQsIHdlIGNvdWxkIHVzZSBhIGRvdWJsZSB0cmFtcG9saW5lIGxpa2UgX19wdGhyZWFkX3N0YXJ0LgorICBzZWxmLT5zZXRfY2FjaGVkX3BpZChwYXJlbnRfcGlkKTsKKyAgcmV0dXJuIGNsb25lX3Jlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL2Ntc2dfbnh0aGRyLmNwcCBiL2xpYmMvYmlvbmljL2Ntc2dfbnh0aGRyLmNwcAppbmRleCA2ZjBhNDdjLi44YTJiMzNlIDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9jbXNnX254dGhkci5jcHAKKysrIGIvbGliYy9iaW9uaWMvY21zZ19ueHRoZHIuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAKLWNtc2doZHIqIGNtc2dfbnh0aGRyKG1zZ2hkciogbXNnLCBjbXNnaGRyKiBjbXNnKSB7CitjbXNnaGRyKiBfX2Ntc2dfbnh0aGRyKG1zZ2hkciogbXNnLCBjbXNnaGRyKiBjbXNnKSB7CiAgIGNtc2doZHIqIHB0cjsKICAgcHRyID0gcmVpbnRlcnByZXRfY2FzdDxjbXNnaGRyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY21zZykgKyBDTVNHX0FMSUdOKGNtc2ctPmNtc2dfbGVuKSk7CiAgIHNpemVfdCBsZW4gPSByZWludGVycHJldF9jYXN0PGNoYXIqPihwdHIrMSkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihtc2ctPm1zZ19jb250cm9sKTsKQEAgLTM3LDMgKzM3LDYgQEAKICAgfQogICByZXR1cm4gcHRyOwogfQorCisvLyBUT0RPOiByZW1vdmUgYWZ0ZXIgTkRLIHJlZnJlc2guCitfX3dlYWtfYWxpYXMoY21zZ19ueHRoZHIsIF9fY21zZ19ueHRoZHIpOwpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvZGlyZW50LmNwcCBiL2xpYmMvYmlvbmljL2RpcmVudC5jcHAKaW5kZXggMGY5YjI2YS4uN2FiYzdmMyAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvZGlyZW50LmNwcAorKysgYi9saWJjL2Jpb25pYy9kaXJlbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSAicHJpdmF0ZS9FcnJub1Jlc3RvcmVyLmgiCiAjaW5jbHVkZSAicHJpdmF0ZS9TY29wZWRQdGhyZWFkTXV0ZXhMb2NrZXIuaCIKIAorZXh0ZXJuICJDIiBpbnQgX19nZXRkZW50czY0KHVuc2lnbmVkIGludCwgZGlyZW50KiwgdW5zaWduZWQgaW50KTsKKwogc3RydWN0IERJUiB7CiAgIGludCBmZF87CiAgIHNpemVfdCBhdmFpbGFibGVfYnl0ZXNfOwpAQCAtODEsNyArODMsNyBAQAogfQogCiBzdGF0aWMgYm9vbCBfX2ZpbGxfRElSKERJUiogZCkgewotICBpbnQgcmMgPSBURU1QX0ZBSUxVUkVfUkVUUlkoZ2V0ZGVudHMoZC0+ZmRfLCBkLT5idWZmXywgc2l6ZW9mKGQtPmJ1ZmZfKSkpOworICBpbnQgcmMgPSBURU1QX0ZBSUxVUkVfUkVUUlkoX19nZXRkZW50czY0KGQtPmZkXywgZC0+YnVmZl8sIHNpemVvZihkLT5idWZmXykpKTsKICAgaWYgKHJjIDw9IDApIHsKICAgICByZXR1cm4gZmFsc2U7CiAgIH0KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL2ZvcmsuY3BwIGIvbGliYy9iaW9uaWMvZm9yay5jcHAKaW5kZXggYTBmOThlNC4uNmNmYzczNiAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvZm9yay5jcHAKKysrIGIvbGliYy9iaW9uaWMvZm9yay5jcHAKQEAgLTMxLDE5ICszMSwyNiBAQAogCiAjaW5jbHVkZSAicHRocmVhZF9pbnRlcm5hbC5oIgogCisjZGVmaW5lIEZPUktfRkxBR1MgKENMT05FX0NISUxEX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEIHwgU0lHQ0hMRCkKKwogaW50IGZvcmsoKSB7CiAgIF9fYmlvbmljX2F0Zm9ya19ydW5fcHJlcGFyZSgpOwogCiAgIHB0aHJlYWRfaW50ZXJuYWxfdCogc2VsZiA9IF9fZ2V0X3RocmVhZCgpOwotICBpbnQgZmxhZ3MgPSBDTE9ORV9DSElMRF9TRVRUSUQgfCBDTE9ORV9DSElMRF9DTEVBUlRJRCB8IFNJR0NITEQ7CisKKyAgLy8gUmVtZW1iZXIgdGhlIHBhcmVudCBwaWQgYW5kIGludmFsaWRhdGUgdGhlIGNhY2hlZCB2YWx1ZSB3aGlsZSB3ZSBmb3JrLgorICBwaWRfdCBwYXJlbnRfcGlkID0gc2VsZi0+aW52YWxpZGF0ZV9jYWNoZWRfcGlkKCk7CisKICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIC8vIHN5c19jbG9uZSdzIGxhc3QgdHdvIGFyZ3VtZW50cyBhcmUgZmxpcHBlZCBvbiB4ODYtNjQuCi0gIGludCByZXN1bHQgPSBzeXNjYWxsKF9fTlJfY2xvbmUsIGZsYWdzLCBOVUxMLCBOVUxMLCAmKHNlbGYtPnRpZCksIE5VTEwpOworICBpbnQgcmVzdWx0ID0gc3lzY2FsbChfX05SX2Nsb25lLCBGT1JLX0ZMQUdTLCBOVUxMLCBOVUxMLCAmKHNlbGYtPnRpZCksIE5VTEwpOwogI2Vsc2UKLSAgaW50IHJlc3VsdCA9IHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIE5VTEwsIE5VTEwsIE5VTEwsICYoc2VsZi0+dGlkKSk7CisgIGludCByZXN1bHQgPSBzeXNjYWxsKF9fTlJfY2xvbmUsIEZPUktfRkxBR1MsIE5VTEwsIE5VTEwsIE5VTEwsICYoc2VsZi0+dGlkKSk7CiAjZW5kaWYKICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgc2VsZi0+c2V0X2NhY2hlZF9waWQoZ2V0dGlkKCkpOwogICAgIF9fYmlvbmljX2F0Zm9ya19ydW5fY2hpbGQoKTsKICAgfSBlbHNlIHsKKyAgICBzZWxmLT5zZXRfY2FjaGVkX3BpZChwYXJlbnRfcGlkKTsKICAgICBfX2Jpb25pY19hdGZvcmtfcnVuX3BhcmVudCgpOwogICB9CiAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9mdGltZS5jIGIvbGliYy9iaW9uaWMvZnRpbWUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjUxMzU5My4uMDAwMDAwMAotLS0gYS9saWJjL2Jpb25pYy9mdGltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotI2luY2x1ZGUgPHN5cy90aW1lYi5oPgotCi1pbnQgZnRpbWUoc3RydWN0IHRpbWViICp0YikKLXsKLSAgICBzdHJ1Y3QgdGltZXZhbCAgdHY7Ci0gICAgc3RydWN0IHRpbWV6b25lIHR6OwotCi0gICAgaWYgKGdldHRpbWVvZmRheSAoJnR2LCAmdHopIDwgMCkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgdGItPnRpbWUgICAgPSB0di50dl9zZWM7Ci0gICAgdGItPm1pbGxpdG0gPSAodHYudHZfdXNlYyArIDUwMCkgLyAxMDAwOwotCi0gICAgaWYgKHRiLT5taWxsaXRtID09IDEwMDApIHsKLSAgICAgICAgKyt0Yi0+dGltZTsKLSAgICAgICAgdGItPm1pbGxpdG0gPSAwOwotICAgIH0KLSAgICB0Yi0+dGltZXpvbmUgPSB0ei50el9taW51dGVzd2VzdDsKLSAgICB0Yi0+ZHN0ZmxhZyAgPSB0ei50el9kc3R0aW1lOwotCi0gICAgcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy90aHJlYWRfYXRleGl0LmNwcCBiL2xpYmMvYmlvbmljL2dldHBpZC5jcHAKc2ltaWxhcml0eSBpbmRleCA3MSUKY29weSBmcm9tIGxpYmMvYmlvbmljL3RocmVhZF9hdGV4aXQuY3BwCmNvcHkgdG8gbGliYy9iaW9uaWMvZ2V0cGlkLmNwcAppbmRleCA2OGMxMTlkLi5hM2Q1YjM1IDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy90aHJlYWRfYXRleGl0LmNwcAorKysgYi9saWJjL2Jpb25pYy9nZXRwaWQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI2LDIxICsyNiwyMiBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAotLyogc29tZSBzaW1wbGUgZ2x1ZSB1c2VkIHRvIG1ha2UgdGhlIEJTRCBhdGV4aXQgY29kZSBoYXBweSAqLworI2luY2x1ZGUgPHVuaXN0ZC5oPgogCi0jaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgInB0aHJlYWRfaW50ZXJuYWwuaCIKIAotc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBnX2F0ZXhpdF9sb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKK2V4dGVybiAiQyIgcGlkX3QgX19nZXRwaWQoKTsKIAotX19CRUdJTl9ERUNMUwotX19MSUJDX0hJRERFTl9fIHZvaWQgX3RocmVhZF9hdGV4aXRfbG9jaygpOwotX19MSUJDX0hJRERFTl9fIHZvaWQgX3RocmVhZF9hdGV4aXRfdW5sb2NrKCk7Ci1fX0VORF9ERUNMUworcGlkX3QgZ2V0cGlkKCkgeworICBwdGhyZWFkX2ludGVybmFsX3QqIHNlbGYgPSBfX2dldF90aHJlYWQoKTsKIAotdm9pZCBfdGhyZWFkX2F0ZXhpdF9sb2NrKCkgewotICBwdGhyZWFkX211dGV4X2xvY2soJmdfYXRleGl0X2xvY2spOwotfQorICAvLyBEbyB3ZSBoYXZlIGEgdmFsaWQgY2FjaGVkIHBpZD8KKyAgcGlkX3QgY2FjaGVkX3BpZDsKKyAgaWYgKF9fcHJlZGljdF90cnVlKHNlbGYtPmdldF9jYWNoZWRfcGlkKCZjYWNoZWRfcGlkKSkpIHsKKyAgICByZXR1cm4gY2FjaGVkX3BpZDsKKyAgfQogCi12b2lkIF90aHJlYWRfYXRleGl0X3VubG9jaygpIHsKLSAgcHRocmVhZF9tdXRleF91bmxvY2soJmdfYXRleGl0X2xvY2spOworICAvLyBXZSdyZSBzdGlsbCBpbiB0aGUgZHluYW1pYyBsaW5rZXIgb3Igd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBmb3JraW5nLCBzbyBhc2sgdGhlIGtlcm5lbC4KKyAgLy8gV2UgZG9uJ3Qga25vdyB3aGV0aGVyIGl0J3Mgc2FmZSB0byB1cGRhdGUgdGhlIGNhY2hlZCB2YWx1ZSwgc28gZG9uJ3QgdHJ5LgorICByZXR1cm4gX19nZXRwaWQoKTsKIH0KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL2plbWFsbG9jLmNwcCBiL2xpYmMvYmlvbmljL2plbWFsbG9jX3dyYXBwZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggNzclCnJlbmFtZSBmcm9tIGxpYmMvYmlvbmljL2plbWFsbG9jLmNwcApyZW5hbWUgdG8gbGliYy9iaW9uaWMvamVtYWxsb2Nfd3JhcHBlci5jcHAKaW5kZXggNjI1ZDc4OS4uZDFmZTk2MCAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvamVtYWxsb2MuY3BwCisrKyBiL2xpYmMvYmlvbmljL2plbWFsbG9jX3dyYXBwZXIuY3BwCkBAIC0xNCwxMyArMTQsMTkgQEAKICAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogICovCiAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgImplbWFsbG9jLmgiCisjaW5jbHVkZSAicHJpdmF0ZS9iaW9uaWNfbWFjcm9zLmgiCiAKIHZvaWQqIGplX3B2YWxsb2Moc2l6ZV90IGJ5dGVzKSB7CiAgIHNpemVfdCBwYWdlc2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VTSVpFKTsKLSAgcmV0dXJuIGplX21lbWFsaWduKHBhZ2VzaXplLCAoYnl0ZXMgKyBwYWdlc2l6ZSAtIDEpICYgfihwYWdlc2l6ZSAtIDEpKTsKKyAgc2l6ZV90IHNpemUgPSBCSU9OSUNfQUxJR04oYnl0ZXMsIHBhZ2VzaXplKTsKKyAgaWYgKHNpemUgPCBieXRlcykgeworICAgIHJldHVybiBOVUxMOworICB9CisgIHJldHVybiBqZV9tZW1hbGlnbihwYWdlc2l6ZSwgc2l6ZSk7CiB9CiAKICNpZmRlZiBqZV9tZW1hbGlnbgpAQCAtMzEsMTEgKzM3LDkgQEAKIC8vIGJ1dCB0aGlzIGlzIG5vdCB0cnVlLiBCb3RoIGdsaWJjIGFuZCBkbG1hbGxvYyByb3VuZCB1cCB0byB0aGUgbmV4dCBwb3dlcgogLy8gb2YgMiwgc28gd2UnbGwgZG8gdGhlIHNhbWUuCiB2b2lkKiBqZV9tZW1hbGlnbl9yb3VuZF91cF9ib3VuZGFyeShzaXplX3QgYm91bmRhcnksIHNpemVfdCBzaXplKSB7Ci0gIHVuc2lnbmVkIGludCBwb3dlcl9vZl8yID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihib3VuZGFyeSk7Ci0gIGlmIChwb3dlcl9vZl8yICE9IDApIHsKLSAgICBwb3dlcl9vZl8yID0gMVVMIDw8IChzaXplb2YodW5zaWduZWQgaW50KSo4IC0gMSAtIF9fYnVpbHRpbl9jbHoocG93ZXJfb2ZfMikpOwotICAgIGlmIChwb3dlcl9vZl8yICE9IGJvdW5kYXJ5KSB7Ci0gICAgICBib3VuZGFyeSA9IHBvd2VyX29mXzIgPDwgMTsKKyAgaWYgKGJvdW5kYXJ5ICE9IDApIHsKKyAgICBpZiAoIXBvd2Vyb2YyKGJvdW5kYXJ5KSkgeworICAgICAgYm91bmRhcnkgPSBCSU9OSUNfUk9VTkRfVVBfUE9XRVJfT0ZfMihib3VuZGFyeSk7CiAgICAgfQogICB9IGVsc2UgewogICAgIGJvdW5kYXJ5ID0gMTsKZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL2xpYmNfaW5pdF9jb21tb24uY3BwIGIvbGliYy9iaW9uaWMvbGliY19pbml0X2NvbW1vbi5jcHAKaW5kZXggYWJmMmQzNi4uZmE2MWMzYyAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvbGliY19pbml0X2NvbW1vbi5jcHAKKysrIGIvbGliYy9iaW9uaWMvbGliY19pbml0X2NvbW1vbi5jcHAKQEAgLTg2LDIxICs4NiwyNCBAQAogdm9pZCBfX2xpYmNfaW5pdF90bHMoS2VybmVsQXJndW1lbnRCbG9jayYgYXJncykgewogICBfX2xpYmNfYXV4diA9IGFyZ3MuYXV4djsKIAotICB1aW50cHRyX3Qgc3RhY2tfdG9wID0gKF9fZ2V0X3NwKCkgJiB+KFBBR0VfU0laRSAtIDEpKSArIFBBR0VfU0laRTsKLSAgc2l6ZV90IHN0YWNrX3NpemUgPSBnZXRfbWFpbl90aHJlYWRfc3RhY2tfc2l6ZSgpOwotICB1aW50cHRyX3Qgc3RhY2tfYm90dG9tID0gc3RhY2tfdG9wIC0gc3RhY2tfc2l6ZTsKLQogICBzdGF0aWMgdm9pZCogdGxzW0JJT05JQ19UTFNfU0xPVFNdOwogICBzdGF0aWMgcHRocmVhZF9pbnRlcm5hbF90IG1haW5fdGhyZWFkOwogICBtYWluX3RocmVhZC50bHMgPSB0bHM7CiAKICAgLy8gVGVsbCB0aGUga2VybmVsIHRvIGNsZWFyIG91ciB0aWQgZmllbGQgd2hlbiB3ZSBleGl0LCBzbyB3ZSdyZSBsaWtlIGFueSBvdGhlciBwdGhyZWFkLgorICAvLyBBcyBhIHNpZGUtZWZmZWN0LCB0aGlzIHRlbGxzIHVzIG91ciBwaWQgKHdoaWNoIGlzIHRoZSBzYW1lIGFzIHRoZSBtYWluIHRocmVhZCdzIHRpZCkuCiAgIG1haW5fdGhyZWFkLnRpZCA9IF9fc2V0X3RpZF9hZGRyZXNzKCZtYWluX3RocmVhZC50aWQpOworICBtYWluX3RocmVhZC5zZXRfY2FjaGVkX3BpZChtYWluX3RocmVhZC50aWQpOwogCi0gIC8vIFdlIGFscmVhZHkgaGF2ZSBhIHN0YWNrLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBmcmVlIGl0IHVwIG9uIGV4aXQgKGJlY2F1c2UgdGhpbmdzIGxpa2UKLSAgLy8gZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggZ2xvYmFsIHNjb3BlIGxpdmUgb24gaXQpLgorICAvLyBXb3JrIG91dCB0aGUgZXh0ZW50IG9mIHRoZSBtYWluIHRocmVhZCdzIHN0YWNrLgorICB1aW50cHRyX3Qgc3RhY2tfdG9wID0gKF9fZ2V0X3NwKCkgJiB+KFBBR0VfU0laRSAtIDEpKSArIFBBR0VfU0laRTsKKyAgc2l6ZV90IHN0YWNrX3NpemUgPSBnZXRfbWFpbl90aHJlYWRfc3RhY2tfc2l6ZSgpOworICB2b2lkKiBzdGFja19ib3R0b20gPSByZWludGVycHJldF9jYXN0PHZvaWQqPihzdGFja190b3AgLSBzdGFja19zaXplKTsKKworICAvLyBXZSBkb24ndCB3YW50IHRvIGZyZWUgdGhlIG1haW4gdGhyZWFkJ3Mgc3RhY2sgZXZlbiB3aGVuIHRoZSBtYWluIHRocmVhZCBleGl0cworICAvLyBiZWNhdXNlIHRoaW5ncyBsaWtlIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIGdsb2JhbCBzY29wZSBsaXZlIG9uIGl0LgogICBwdGhyZWFkX2F0dHJfaW5pdCgmbWFpbl90aHJlYWQuYXR0cik7Ci0gIHB0aHJlYWRfYXR0cl9zZXRzdGFjaygmbWFpbl90aHJlYWQuYXR0ciwgKHZvaWQqKSBzdGFja19ib3R0b20sIHN0YWNrX3NpemUpOworICBwdGhyZWFkX2F0dHJfc2V0c3RhY2soJm1haW5fdGhyZWFkLmF0dHIsIHN0YWNrX2JvdHRvbSwgc3RhY2tfc2l6ZSk7CiAgIG1haW5fdGhyZWFkLmF0dHIuZmxhZ3MgPSBQVEhSRUFEX0FUVFJfRkxBR19VU0VSX0FMTE9DQVRFRF9TVEFDSyB8IFBUSFJFQURfQVRUUl9GTEFHX01BSU5fVEhSRUFEOwogCiAgIF9faW5pdF90aHJlYWQoJm1haW5fdGhyZWFkLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9saWJjX2luaXRfY29tbW9uLmggYi9saWJjL2Jpb25pYy9saWJjX2luaXRfY29tbW9uLmgKaW5kZXggNTlkYzdkZi4uMzAzMmY5OSAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvbGliY19pbml0X2NvbW1vbi5oCisrKyBiL2xpYmMvYmlvbmljL2xpYmNfaW5pdF9jb21tb24uaApAQCAtNDMsMTQgKzQzLDE0IEBACiBfX25vcmV0dXJuIHZvaWQgX19saWJjX2luaXQodm9pZCogcmF3X2FyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKm9uZXhpdCkodm9pZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqc2xpbmdzaG90KShpbnQsIGNoYXIqKiwgY2hhcioqKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RvcnNfYXJyYXlfdCBjb25zdCAqIGNvbnN0IHN0cnVjdG9ycyk7Ci12b2lkIF9fbGliY19maW5pKHZvaWQqIGZpbml0X2FycmF5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RvcnNfYXJyYXlfdCBjb25zdCogY29uc3Qgc3RydWN0b3JzKTsKK19fTElCQ19ISURERU5fXyB2b2lkIF9fbGliY19maW5pKHZvaWQqIGZpbml0X2FycmF5KTsKIAogX19FTkRfREVDTFMKIAogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiBjbGFzcyBLZXJuZWxBcmd1bWVudEJsb2NrOwotdm9pZCBfX0xJQkNfSElEREVOX18gX19saWJjX2luaXRfY29tbW9uKEtlcm5lbEFyZ3VtZW50QmxvY2smIGFyZ3MpOworX19MSUJDX0hJRERFTl9fIHZvaWQgX19saWJjX2luaXRfY29tbW9uKEtlcm5lbEFyZ3VtZW50QmxvY2smIGFyZ3MpOwogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2NoZWNrLmNwcCBiL2xpYmMvYmlvbmljL21hbGxvY19kZWJ1Z19jaGVjay5jcHAKaW5kZXggMjU5MGNlNy4uZTRlNGMyZSAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2NoZWNrLmNwcAorKysgYi9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfY2hlY2suY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8c3lzL3N5c3RlbV9wcm9wZXJ0aWVzLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CkBAIC00NywxNCArNDgsMTEgQEAKIAogI2luY2x1ZGUgImRlYnVnX21hcGluZm8uaCIKICNpbmNsdWRlICJkZWJ1Z19zdGFja3RyYWNlLmgiCi0jaW5jbHVkZSAicHJpdmF0ZS9saWJjX2xvZ2dpbmcuaCIKICNpbmNsdWRlICJtYWxsb2NfZGVidWdfY29tbW9uLmgiCisjaW5jbHVkZSAicHJpdmF0ZS9iaW9uaWNfbWFjcm9zLmgiCisjaW5jbHVkZSAicHJpdmF0ZS9saWJjX2xvZ2dpbmcuaCIKICNpbmNsdWRlICJwcml2YXRlL1Njb3BlZFB0aHJlYWRNdXRleExvY2tlci5oIgogCi0vKiBsaWJjLmRlYnVnLm1hbGxvYy5iYWNrbG9nICovCi1leHRlcm4gdW5zaWduZWQgaW50IGdfbWFsbG9jX2RlYnVnX2JhY2tsb2c7Ci1leHRlcm4gaW50IGdfbWFsbG9jX2RlYnVnX2xldmVsOwotCiAjZGVmaW5lIE1BWF9CQUNLVFJBQ0VfREVQVEggMTYKICNkZWZpbmUgQUxMT0NBVElPTl9UQUcgICAgICAweDFlZTdkMDBkCiAjZGVmaW5lIEJBQ0tMT0dfVEFHICAgICAgICAgMHhiYWJlY2FmZQpAQCAtMTIwLDYgKzExOCwxMiBAQAogc3RhdGljIGhkcl90KiBiYWNrbG9nX2hlYWQ7CiBzdGF0aWMgcHRocmVhZF9tdXRleF90IGJhY2tsb2dfbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CiAKKy8vIFRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIHRoZSB2YWx1ZSBvZiBwcm9wZXJ0eSBsaWJjLmRlYnVnLm1hbGxvYy5iYWNrbG9nLgorLy8gSXQgZGV0ZXJtaW5lcyB0aGUgc2l6ZSBvZiB0aGUgYmFja2xvZyB3ZSB1c2UgdG8gZGV0ZWN0IG11bHRpcGxlIGZyZWVzLgorc3RhdGljIHVuc2lnbmVkIGdfbWFsbG9jX2RlYnVnX2JhY2tsb2cgPSAxMDA7CisKK19fTElCQ19ISURERU5fXyBIYXNoVGFibGUqIGdfaGFzaF90YWJsZTsKKwogc3RhdGljIGlubGluZSB2b2lkIGluaXRfZnJvbnRfZ3VhcmQoaGRyX3QqIGhkcikgewogICAgIG1lbXNldChoZHItPmZyb250X2d1YXJkLCBGUk9OVF9HVUFSRCwgRlJPTlRfR1VBUkRfTEVOKTsKIH0KQEAgLTMyNCwxNCArMzI4LDE5IEBACiAgICAgfQogfQogCi1leHRlcm4gIkMiIHZvaWQqIGNoa19tYWxsb2Moc2l6ZV90IHNpemUpIHsKK2V4dGVybiAiQyIgdm9pZCogY2hrX21hbGxvYyhzaXplX3QgYnl0ZXMpIHsKIC8vICBsb2dfbWVzc2FnZSgiJXM6ICVzXG4iLCBfX0ZJTEVfXywgX19GVU5DVElPTl9fKTsKIAotICAgIGhkcl90KiBoZHIgPSBzdGF0aWNfY2FzdDxoZHJfdCo+KE1hbGxvYyhtYWxsb2MpKHNpemVvZihoZHJfdCkgKyBzaXplICsgc2l6ZW9mKGZ0cl90KSkpOworICAgIHNpemVfdCBzaXplID0gc2l6ZW9mKGhkcl90KSArIGJ5dGVzICsgc2l6ZW9mKGZ0cl90KTsKKyAgICBpZiAoc2l6ZSA8IGJ5dGVzKSB7IC8vIE92ZXJmbG93CisgICAgICAgIGVycm5vID0gRU5PTUVNOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaGRyX3QqIGhkciA9IHN0YXRpY19jYXN0PGhkcl90Kj4oTWFsbG9jKG1hbGxvYykoc2l6ZSkpOwogICAgIGlmIChoZHIpIHsKICAgICAgICAgaGRyLT5iYXNlID0gaGRyOwogICAgICAgICBoZHItPmJ0X2RlcHRoID0gZ2V0X2JhY2t0cmFjZShoZHItPmJ0LCBNQVhfQkFDS1RSQUNFX0RFUFRIKTsKLSAgICAgICAgYWRkKGhkciwgc2l6ZSk7CisgICAgICAgIGFkZChoZHIsIGJ5dGVzKTsKICAgICAgICAgcmV0dXJuIHVzZXIoaGRyKTsKICAgICB9CiAgICAgcmV0dXJuIE5VTEw7CkBAIC0zNDMsOCArMzUyLDggQEAKICAgICB9CiAKICAgICAvLyBNYWtlIHRoZSBhbGlnbm1lbnQgYSBwb3dlciBvZiB0d28uCi0gICAgaWYgKGFsaWdubWVudCAmIChhbGlnbm1lbnQtMSkpIHsKLSAgICAgICAgYWxpZ25tZW50ID0gMUwgPDwgKDMxIC0gX19idWlsdGluX2NseihhbGlnbm1lbnQpKTsKKyAgICBpZiAoIXBvd2Vyb2YyKGFsaWdubWVudCkpIHsKKyAgICAgICAgYWxpZ25tZW50ID0gQklPTklDX1JPVU5EX1VQX1BPV0VSX09GXzIoYWxpZ25tZW50KTsKICAgICB9CiAKICAgICAvLyBoZXJlLCBhbGlnbm1lbnQgaXMgYXQgbGVhc3QgTUFMTE9DX0FMSUdOTUVOVDw8MSBieXRlcwpAQCAtNDA5LDE1ICs0MTgsMTUgQEAKICAgICB9CiB9CiAKLWV4dGVybiAiQyIgdm9pZCogY2hrX3JlYWxsb2Modm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkgeworZXh0ZXJuICJDIiB2b2lkKiBjaGtfcmVhbGxvYyh2b2lkKiBwdHIsIHNpemVfdCBieXRlcykgewogLy8gIGxvZ19tZXNzYWdlKCIlczogJXNcbiIsIF9fRklMRV9fLCBfX0ZVTkNUSU9OX18pOwogCiAgICAgaWYgKCFwdHIpIHsKLSAgICAgICAgcmV0dXJuIGNoa19tYWxsb2Moc2l6ZSk7CisgICAgICAgIHJldHVybiBjaGtfbWFsbG9jKGJ5dGVzKTsKICAgICB9CiAKICNpZmRlZiBSRUFMTE9DX1pFUk9fQllURVNfRlJFRQotICAgIGlmICghc2l6ZSkgeworICAgIGlmICghYnl0ZXMpIHsKICAgICAgICAgY2hrX2ZyZWUocHRyKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQpAQCAtNDMwLDcgKzQzOSw3IEBACiAgICAgICAgIGludCBkZXB0aCA9IGdldF9iYWNrdHJhY2UoYnQsIE1BWF9CQUNLVFJBQ0VfREVQVEgpOwogICAgICAgICBpZiAoaGRyLT50YWcgPT0gQkFDS0xPR19UQUcpIHsKICAgICAgICAgICAgIGxvZ19tZXNzYWdlKCIrKysgUkVBTExPQ0FUSU9OICVwIFNJWkUgJWQgT0YgRlJFRUQgTUVNT1JZIVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgdXNlcihoZHIpLCBzaXplLCBoZHItPnNpemUpOworICAgICAgICAgICAgICAgICAgICAgICB1c2VyKGhkciksIGJ5dGVzLCBoZHItPnNpemUpOwogICAgICAgICAgICAgbG9nX21lc3NhZ2UoIisrKyBBTExPQ0FUSU9OICVwIFNJWkUgJWQgQUxMT0NBVEVEIEhFUkU6XG4iLAogICAgICAgICAgICAgICAgICAgICAgICB1c2VyKGhkciksIGhkci0+c2l6ZSk7CiAgICAgICAgICAgICBsb2dfYmFja3RyYWNlKGhkci0+YnQsIGhkci0+YnRfZGVwdGgpOwpAQCAtNDQ5LDQ3ICs0NTgsNTQgQEAKICAgICAgICAgICAgIGRlbF9mcm9tX2JhY2tsb2coaGRyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGxvZ19tZXNzYWdlKCIrKysgUkVBTExPQ0FUSU9OICVwIFNJWkUgJWQgSVMgQ09SUlVQVEVEIE9SIE5PVCBBTExPQ0FURUQgVklBIFRSQUNLRVIhXG4iLAotICAgICAgICAgICAgICAgICAgICAgICB1c2VyKGhkciksIHNpemUpOworICAgICAgICAgICAgICAgICAgICAgICB1c2VyKGhkciksIGJ5dGVzKTsKICAgICAgICAgICAgIGxvZ19iYWNrdHJhY2UoYnQsIGRlcHRoKTsKICAgICAgICAgICAgIC8vIGp1c3QgZ2V0IGEgd2hvbGUgbmV3IGFsbG9jYXRpb24gYW5kIGxlYWsgdGhlIG9sZCBvbmUKLSAgICAgICAgICAgIHJldHVybiBNYWxsb2MocmVhbGxvYykoMCwgc2l6ZSk7Ci0gICAgICAgICAgICAvLyByZXR1cm4gcmVhbGxvYyh1c2VyKGhkciksIHNpemUpOyAvLyBhc3N1bWluZyBpdCB3YXMgYWxsb2NhdGVkIGV4dGVybmFsbHkKKyAgICAgICAgICAgIHJldHVybiBNYWxsb2MocmVhbGxvYykoMCwgYnl0ZXMpOworICAgICAgICAgICAgLy8gcmV0dXJuIHJlYWxsb2ModXNlcihoZHIpLCBieXRlcyk7IC8vIGFzc3VtaW5nIGl0IHdhcyBhbGxvY2F0ZWQgZXh0ZXJuYWxseQogICAgICAgICB9CiAgICAgfQogCisgICAgc2l6ZV90IHNpemUgPSBzaXplb2YoaGRyX3QpICsgYnl0ZXMgKyBzaXplb2YoZnRyX3QpOworICAgIGlmIChzaXplIDwgYnl0ZXMpIHsgLy8gT3ZlcmZsb3cKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KICAgICBpZiAoaGRyLT5iYXNlICE9IGhkcikgewogICAgICAgICAvLyBBbiBhbGxvY2F0aW9uIGZyb20gbWVtYWxpZ24sIHNvIGNyZWF0ZSBhbm90aGVyIGFsbG9jYXRpb24gYW5kCiAgICAgICAgIC8vIGNvcHkgdGhlIGRhdGEgb3V0LgotICAgICAgICB2b2lkKiBuZXdNZW0gPSBNYWxsb2MobWFsbG9jKShzaXplb2YoaGRyX3QpICsgc2l6ZSArIHNpemVvZihmdHJfdCkpOwotICAgICAgICBpZiAobmV3TWVtKSB7Ci0gICAgICAgICAgICBtZW1jcHkobmV3TWVtLCBoZHIsIHNpemVvZihoZHJfdCkgKyBoZHItPnNpemUpOwotICAgICAgICAgICAgTWFsbG9jKGZyZWUpKGhkci0+YmFzZSk7Ci0gICAgICAgICAgICBoZHIgPSBzdGF0aWNfY2FzdDxoZHJfdCo+KG5ld01lbSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBNYWxsb2MoZnJlZSkoaGRyLT5iYXNlKTsKLSAgICAgICAgICAgIGhkciA9IE5VTEw7CisgICAgICAgIHZvaWQqIG5ld01lbSA9IE1hbGxvYyhtYWxsb2MpKHNpemUpOworICAgICAgICBpZiAobmV3TWVtID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CisgICAgICAgIG1lbWNweShuZXdNZW0sIGhkciwgc2l6ZW9mKGhkcl90KSArIGhkci0+c2l6ZSk7CisgICAgICAgIE1hbGxvYyhmcmVlKShoZHItPmJhc2UpOworICAgICAgICBoZHIgPSBzdGF0aWNfY2FzdDxoZHJfdCo+KG5ld01lbSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaGRyID0gc3RhdGljX2Nhc3Q8aGRyX3QqPihNYWxsb2MocmVhbGxvYykoaGRyLCBzaXplb2YoaGRyX3QpICsgc2l6ZSArIHNpemVvZihmdHJfdCkpKTsKKyAgICAgICAgaGRyID0gc3RhdGljX2Nhc3Q8aGRyX3QqPihNYWxsb2MocmVhbGxvYykoaGRyLCBzaXplKSk7CiAgICAgfQogICAgIGlmIChoZHIpIHsKICAgICAgICAgaGRyLT5iYXNlID0gaGRyOwogICAgICAgICBoZHItPmJ0X2RlcHRoID0gZ2V0X2JhY2t0cmFjZShoZHItPmJ0LCBNQVhfQkFDS1RSQUNFX0RFUFRIKTsKLSAgICAgICAgYWRkKGhkciwgc2l6ZSk7CisgICAgICAgIGFkZChoZHIsIGJ5dGVzKTsKICAgICAgICAgcmV0dXJuIHVzZXIoaGRyKTsKICAgICB9Ci0KICAgICByZXR1cm4gTlVMTDsKIH0KIAotZXh0ZXJuICJDIiB2b2lkKiBjaGtfY2FsbG9jKGludCBubWVtYiwgc2l6ZV90IHNpemUpIHsKK2V4dGVybiAiQyIgdm9pZCogY2hrX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBieXRlcykgewogLy8gIGxvZ19tZXNzYWdlKCIlczogJXNcbiIsIF9fRklMRV9fLCBfX0ZVTkNUSU9OX18pOwotICAgIHNpemVfdCB0b3RhbF9zaXplID0gbm1lbWIgKiBzaXplOwotICAgIGhkcl90KiBoZHIgPSBzdGF0aWNfY2FzdDxoZHJfdCo+KE1hbGxvYyhjYWxsb2MpKDEsIHNpemVvZihoZHJfdCkgKyB0b3RhbF9zaXplICsgc2l6ZW9mKGZ0cl90KSkpOworICAgIHNpemVfdCB0b3RhbF9ieXRlcyA9IG5tZW1iICogYnl0ZXM7CisgICAgc2l6ZV90IHNpemUgPSBzaXplb2YoaGRyX3QpICsgdG90YWxfYnl0ZXMgKyBzaXplb2YoZnRyX3QpOworICAgIGlmIChzaXplIDwgdG90YWxfYnl0ZXMgfHwgKG5tZW1iICYmIFNJWkVfTUFYIC8gbm1lbWIgPCBieXRlcykpIHsgLy8gT3ZlcmZsb3cKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBoZHJfdCogaGRyID0gc3RhdGljX2Nhc3Q8aGRyX3QqPihNYWxsb2MoY2FsbG9jKSgxLCBzaXplKSk7CiAgICAgaWYgKGhkcikgewogICAgICAgICBoZHItPmJhc2UgPSBoZHI7CiAgICAgICAgIGhkci0+YnRfZGVwdGggPSBnZXRfYmFja3RyYWNlKGhkci0+YnQsIE1BWF9CQUNLVFJBQ0VfREVQVEgpOwotICAgICAgICBhZGQoaGRyLCB0b3RhbF9zaXplKTsKKyAgICAgICAgYWRkKGhkciwgdG90YWxfYnl0ZXMpOwogICAgICAgICByZXR1cm4gdXNlcihoZHIpOwogICAgIH0KICAgICByZXR1cm4gTlVMTDsKQEAgLTUwNywxMiArNTIzLDM0IEBACiAgICAgcmV0dXJuIGhkci0+c2l6ZTsKIH0KIAotc3RhdGljIHZvaWQgUmVwb3J0TWVtb3J5TGVha3MoKSB7Ci0gIC8vIFdlIG9ubHkgdHJhY2sgbGVha3MgYXQgbGV2ZWwgMTAuCi0gIGlmIChnX21hbGxvY19kZWJ1Z19sZXZlbCAhPSAxMCkgewotICAgIHJldHVybjsKLSAgfQorZXh0ZXJuICJDIiBzdHJ1Y3QgbWFsbGluZm8gY2hrX21hbGxpbmZvKCkgeworICByZXR1cm4gTWFsbG9jKG1hbGxpbmZvKSgpOworfQogCitleHRlcm4gIkMiIGludCBjaGtfcG9zaXhfbWVtYWxpZ24odm9pZCoqIG1lbXB0ciwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIHsKKyAgaWYgKCFwb3dlcm9mMihhbGlnbm1lbnQpKSB7CisgICAgcmV0dXJuIEVJTlZBTDsKKyAgfQorICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsKKyAgKm1lbXB0ciA9IGNoa19tZW1hbGlnbihhbGlnbm1lbnQsIHNpemUpOworICBlcnJubyA9IHNhdmVkX2Vycm5vOworICByZXR1cm4gKCptZW1wdHIgIT0gTlVMTCkgPyAwIDogRU5PTUVNOworfQorCitleHRlcm4gIkMiIHZvaWQqIGNoa19wdmFsbG9jKHNpemVfdCBieXRlcykgeworICBzaXplX3QgcGFnZXNpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgIHNpemVfdCBzaXplID0gQklPTklDX0FMSUdOKGJ5dGVzLCBwYWdlc2l6ZSk7CisgIGlmIChzaXplIDwgYnl0ZXMpIHsgLy8gT3ZlcmZsb3cKKyAgICByZXR1cm4gTlVMTDsKKyAgfQorICByZXR1cm4gY2hrX21lbWFsaWduKHBhZ2VzaXplLCBzaXplKTsKK30KKworZXh0ZXJuICJDIiB2b2lkKiBjaGtfdmFsbG9jKHNpemVfdCBzaXplKSB7CisgIHJldHVybiBjaGtfbWVtYWxpZ24oc3lzY29uZihfU0NfUEFHRVNJWkUpLCBzaXplKTsKK30KKworc3RhdGljIHZvaWQgUmVwb3J0TWVtb3J5TGVha3MoKSB7CiAgIC8vIFVzZSAvcHJvYy9zZWxmL2V4ZSBsaW5rIHRvIG9idGFpbiB0aGUgcHJvZ3JhbSBuYW1lIGZvciBsb2dnaW5nCiAgIC8vIHB1cnBvc2VzLiBJZiBpdCdzIG5vdCBhdmFpbGFibGUsIHdlIHNldCBpdCB0byAiPHVua25vd24+Ii4KICAgY2hhciBleGVbUEFUSF9NQVhdOwpAQCAtNTQ2LDEyICs1ODQsMjMgQEAKICAgfQogfQogCi1leHRlcm4gIkMiIGludCBtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZSgpIHsKK2V4dGVybiAiQyIgYm9vbCBtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZShIYXNoVGFibGUqIGhhc2hfdGFibGUpIHsKKyAgZ19oYXNoX3RhYmxlID0gaGFzaF90YWJsZTsKKworICBjaGFyIGRlYnVnX2JhY2tsb2dbUFJPUF9WQUxVRV9NQVhdOworICBpZiAoX19zeXN0ZW1fcHJvcGVydHlfZ2V0KCJsaWJjLmRlYnVnLm1hbGxvYy5iYWNrbG9nIiwgZGVidWdfYmFja2xvZykpIHsKKyAgICBnX21hbGxvY19kZWJ1Z19iYWNrbG9nID0gYXRvaShkZWJ1Z19iYWNrbG9nKTsKKyAgICBpbmZvX2xvZygiJXM6IHNldHRpbmcgYmFja2xvZyBsZW5ndGggdG8gJWRcbiIsIGdldHByb2duYW1lKCksIGdfbWFsbG9jX2RlYnVnX2JhY2tsb2cpOworICB9CisKICAgYmFja3RyYWNlX3N0YXJ0dXAoKTsKLSAgcmV0dXJuIDA7CisgIHJldHVybiB0cnVlOwogfQogCi1leHRlcm4gIkMiIHZvaWQgbWFsbG9jX2RlYnVnX2ZpbmFsaXplKCkgewotICBSZXBvcnRNZW1vcnlMZWFrcygpOworZXh0ZXJuICJDIiB2b2lkIG1hbGxvY19kZWJ1Z19maW5hbGl6ZShpbnQgbWFsbG9jX2RlYnVnX2xldmVsKSB7CisgIC8vIFdlIG9ubHkgdHJhY2sgbGVha3MgYXQgbGV2ZWwgMTAuCisgIGlmIChtYWxsb2NfZGVidWdfbGV2ZWwgPT0gMTApIHsKKyAgICBSZXBvcnRNZW1vcnlMZWFrcygpOworICB9CiAgIGJhY2t0cmFjZV9zaHV0ZG93bigpOwogfQpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2NvbW1vbi5jcHAgYi9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfY29tbW9uLmNwcAppbmRleCBkYjNmOTk1Li5jYmNhMTYwIDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfY29tbW9uLmNwcAorKysgYi9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfY29tbW9uLmNwcApAQCAtMjYsMTkgKzI2LDE3IEBACiAgKiBTVUNIIERBTUFHRS4KICAqLwogCi0vKgotICogQ29udGFpbnMgZGVmaW5pdGlvbiBvZiBzdHJ1Y3R1cmVzLCBnbG9iYWwgdmFyaWFibGVzLCBhbmQgaW1wbGVtZW50YXRpb24gb2YKLSAqIHJvdXRpbmVzIHRoYXQgYXJlIHVzZWQgYnkgbWFsbG9jIGxlYWsgZGV0ZWN0aW9uIGNvZGUgYW5kIG90aGVyIGNvbXBvbmVudHMgaW4KLSAqIHRoZSBzeXN0ZW0uIFRoZSB0cmljayBpcyB0aGF0IHNvbWUgY29tcG9uZW50cyBleHBlY3QgdGhlc2UgZGF0YSBhbmQKLSAqIHJvdXRpbmVzIHRvIGJlIGRlZmluZWQgLyBpbXBsZW1lbnRlZCBpbiBsaWJjLnNvIGxpYnJhcnksIHJlZ2FyZGxlc3MKLSAqIHdoZXRoZXIgb3Igbm90IE1BTExPQ19MRUFLX0NIRUNLIG1hY3JvIGlzIGRlZmluZWQuIFRvIG1ha2UgdGhpbmdzIGV2ZW4KLSAqIG1vcmUgdHJpY2t5LCBtYWxsb2MgbGVhayBkZXRlY3Rpb24gY29kZSwgaW1wbGVtZW50ZWQgaW4KLSAqIGxpYmNfbWFsbG9jX2RlYnVnLnNvIGFsc28gcmVxdWlyZXMgYWNjZXNzIHRvIHRoZXNlIHZhcmlhYmxlcyBhbmQgcm91dGluZXMKLSAqICh0byBmaWxsIGFsbG9jYXRpb24gZW50cnkgaGFzaCB0YWJsZSwgZm9yIGV4YW1wbGUpLiBTbywgYWxsIHJlbGV2YW50Ci0gKiB2YXJpYWJsZXMgYW5kIHJvdXRpbmVzIGFyZSBkZWZpbmVkIC8gaW1wbGVtZW50ZWQgaGVyZSBhbmQgZXhwb3J0ZWQKLSAqIHRvIGFsbCwgbGVhayBkZXRlY3Rpb24gY29kZSBhbmQgb3RoZXIgY29tcG9uZW50cyB2aWEgZHluYW1pYyAobGliYy5zbyksCi0gKiBvciBzdGF0aWMgKGxpYmMuYSkgbGlua2luZy4KLSAqLworLy8gQ29udGFpbnMgZGVmaW5pdGlvbiBvZiBzdHJ1Y3R1cmVzLCBnbG9iYWwgdmFyaWFibGVzLCBhbmQgaW1wbGVtZW50YXRpb24gb2YKKy8vIHJvdXRpbmVzIHRoYXQgYXJlIHVzZWQgYnkgbWFsbG9jIGxlYWsgZGV0ZWN0aW9uIGNvZGUgYW5kIG90aGVyIGNvbXBvbmVudHMgaW4KKy8vIHRoZSBzeXN0ZW0uIFRoZSB0cmljayBpcyB0aGF0IHNvbWUgY29tcG9uZW50cyBleHBlY3QgdGhlc2UgZGF0YSBhbmQKKy8vIHJvdXRpbmVzIHRvIGJlIGRlZmluZWQgLyBpbXBsZW1lbnRlZCBpbiBsaWJjLnNvIGxpYnJhcnksIHJlZ2FyZGxlc3MKKy8vIHdoZXRoZXIgb3Igbm90IE1BTExPQ19MRUFLX0NIRUNLIG1hY3JvIGlzIGRlZmluZWQuIFRvIG1ha2UgdGhpbmdzIGV2ZW4KKy8vIG1vcmUgdHJpY2t5LCBtYWxsb2MgbGVhayBkZXRlY3Rpb24gY29kZSwgaW1wbGVtZW50ZWQgaW4KKy8vIGxpYmNfbWFsbG9jX2RlYnVnLnNvIGFsc28gcmVxdWlyZXMgYWNjZXNzIHRvIHRoZXNlIHZhcmlhYmxlcyBhbmQgcm91dGluZXMKKy8vICh0byBmaWxsIGFsbG9jYXRpb24gZW50cnkgaGFzaCB0YWJsZSwgZm9yIGV4YW1wbGUpLiBTbywgYWxsIHJlbGV2YW50CisvLyB2YXJpYWJsZXMgYW5kIHJvdXRpbmVzIGFyZSBkZWZpbmVkIC8gaW1wbGVtZW50ZWQgaGVyZSBhbmQgZXhwb3J0ZWQKKy8vIHRvIGFsbCwgbGVhayBkZXRlY3Rpb24gY29kZSBhbmQgb3RoZXIgY29tcG9uZW50cyB2aWEgZHluYW1pYyAobGliYy5zbyksCisvLyBvciBzdGF0aWMgKGxpYmMuYSkgbGlua2luZy4KIAogI2luY2x1ZGUgIm1hbGxvY19kZWJ1Z19jb21tb24uaCIKIApAQCAtNDgsNDc1ICs0Niw0NzMgQEAKIAogI2luY2x1ZGUgInByaXZhdGUvU2NvcGVkUHRocmVhZE11dGV4TG9ja2VyLmgiCiAKLS8qCi0gKiBJbiBhIFZNIHByb2Nlc3MsIHRoaXMgaXMgc2V0IHRvIDEgYWZ0ZXIgZm9yaygpaW5nIG91dCBvZiB6eWdvdGUuCi0gKi8KKy8vIEluIGEgVk0gcHJvY2VzcywgdGhpcyBpcyBzZXQgdG8gMSBhZnRlciBmb3JrKClpbmcgb3V0IG9mIHp5Z290ZS4KIGludCBnTWFsbG9jTGVha1p5Z290ZUNoaWxkID0gMDsKIAotX19MSUJDX0hJRERFTl9fIHB0aHJlYWRfbXV0ZXhfdCBnX2FsbG9jYXRpb25zX211dGV4ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKLV9fTElCQ19ISURERU5fXyBIYXNoVGFibGUgZ19oYXNoX3RhYmxlOworc3RhdGljIEhhc2hUYWJsZSBnX2hhc2hfdGFibGU7CisKKy8vIFN1cHBvcnQgZm9yIG1hbGxvYyBkZWJ1Z2dpbmcuCisvLyBUYWJsZSBmb3IgZGlzcGF0Y2hpbmcgbWFsbG9jIGNhbGxzLCBpbml0aWFsaXplZCB3aXRoIGRlZmF1bHQgZGlzcGF0Y2hlcnMuCitzdGF0aWMgY29uc3QgTWFsbG9jRGVidWcgX19saWJjX21hbGxvY19kZWZhdWx0X2Rpc3BhdGNoIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMzIpKSkgPSB7CisgIE1hbGxvYyhjYWxsb2MpLAorICBNYWxsb2MoZnJlZSksCisgIE1hbGxvYyhtYWxsaW5mbyksCisgIE1hbGxvYyhtYWxsb2MpLAorICBNYWxsb2MobWFsbG9jX3VzYWJsZV9zaXplKSwKKyAgTWFsbG9jKG1lbWFsaWduKSwKKyAgTWFsbG9jKHBvc2l4X21lbWFsaWduKSwKKyNpZiBkZWZpbmVkKEhBVkVfREVQUkVDQVRFRF9NQUxMT0NfRlVOQ1MpCisgIE1hbGxvYyhwdmFsbG9jKSwKKyNlbmRpZgorICBNYWxsb2MocmVhbGxvYyksCisjaWYgZGVmaW5lZChIQVZFX0RFUFJFQ0FURURfTUFMTE9DX0ZVTkNTKQorICBNYWxsb2ModmFsbG9jKSwKKyNlbmRpZgorfTsKKworLy8gU2VsZWN0b3Igb2YgZGlzcGF0Y2ggdGFibGUgdG8gdXNlIGZvciBkaXNwYXRjaGluZyBtYWxsb2MgY2FsbHMuCisvLyBUT0RPOiBmaXggaHR0cDovL2IvMTU0MzI3NTMgYW5kIG1ha2UgdGhpcyBzdGF0aWMgYWdhaW4uCitjb25zdCBNYWxsb2NEZWJ1ZyogX19saWJjX21hbGxvY19kaXNwYXRjaCA9ICZfX2xpYmNfbWFsbG9jX2RlZmF1bHRfZGlzcGF0Y2g7CisKKy8vIEhhbmRsZSB0byBzaGFyZWQgbGlicmFyeSB3aGVyZSBhY3R1YWwgbWVtb3J5IGFsbG9jYXRpb24gaXMgaW1wbGVtZW50ZWQuCisvLyBUaGlzIGxpYnJhcnkgaXMgbG9hZGVkIGFuZCBtZW1vcnkgYWxsb2NhdGlvbiBjYWxscyBhcmUgcmVkaXJlY3RlZCB0aGVyZQorLy8gd2hlbiBsaWJjLmRlYnVnLm1hbGxvYyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjb250YWlucyB2YWx1ZSBvdGhlciB0aGFuCisvLyB6ZXJvOgorLy8gMSAgLSBGb3IgbWVtb3J5IGxlYWsgZGV0ZWN0aW9ucy4KKy8vIDUgIC0gRm9yIGZpbGxpbmcgYWxsb2NhdGVkIC8gZnJlZWQgbWVtb3J5IHdpdGggcGF0dGVybnMgZGVmaW5lZCBieQorLy8gICAgICBDSEtfU0VOVElORUxfVkFMVUUsIGFuZCBDSEtfRklMTF9GUkVFIG1hY3Jvcy4KKy8vIDEwIC0gRm9yIGFkZGluZyBwcmUtLCBhbmQgcG9zdC0gYWxsb2NhdGlvbiBzdHVicyBpbiBvcmRlciB0byBkZXRlY3QKKy8vICAgICAgYnVmZmVyIG92ZXJydW5zLgorLy8gTm90ZSB0aGF0IGVtdWxhdG9yJ3MgbWVtb3J5IGFsbG9jYXRpb24gaW5zdHJ1bWVudGF0aW9uIGlzIG5vdCBjb250cm9sbGVkIGJ5CisvLyBsaWJjLmRlYnVnLm1hbGxvYyB2YWx1ZSwgYnV0IHJhdGhlciBieSBlbXVsYXRvciwgc3RhcnRlZCB3aXRoIC1tZW1jaGVjaworLy8gb3B0aW9uLiBOb3RlIGFsc28sIHRoYXQgaWYgZW11bGF0b3IgaGFzIHN0YXJ0ZWQgd2l0aCAtbWVtY2hlY2sgb3B0aW9uLAorLy8gZW11bGF0b3IncyBpbnN0cnVtZW50ZWQgbWVtb3J5IGFsbG9jYXRpb24gd2lsbCB0YWtlIG92ZXIgdmFsdWUgc2F2ZWQgaW4KKy8vIGxpYmMuZGVidWcubWFsbG9jLiBJbiBvdGhlciB3b3JkcywgaWYgZW11bGF0b3IgaGFzIHN0YXJ0ZWQgd2l0aCAtbWVtY2hlY2sKKy8vIG9wdGlvbiwgbGliYy5kZWJ1Zy5tYWxsb2MgdmFsdWUgaXMgaWdub3JlZC4KKy8vIEFjdHVhbCBmdW5jdGlvbmFsaXR5IGZvciBkZWJ1ZyBsZXZlbHMgMS0xMCBpcyBpbXBsZW1lbnRlZCBpbgorLy8gbGliY19tYWxsb2NfZGVidWdfbGVhay5zbywgd2hpbGUgZnVuY3Rpb25hbGl0eSBmb3IgZW11bGF0b3IncyBpbnN0cnVtZW50ZWQKKy8vIGFsbG9jYXRpb25zIGlzIGltcGxlbWVudGVkIGluIGxpYmNfbWFsbG9jX2RlYnVnX3FlbXUuc28gYW5kIGNhbiBiZSBydW4gaW5zaWRlCisvLyB0aGUgZW11bGF0b3Igb25seS4KKyNpZiAhZGVmaW5lZChMSUJDX1NUQVRJQykKK3N0YXRpYyB2b2lkKiBsaWJjX21hbGxvY19pbXBsX2hhbmRsZSA9IE5VTEw7CisjZW5kaWYKKworCisvLyBUaGUgdmFsdWUgb2YgbGliYy5kZWJ1Zy5tYWxsb2MuCisjaWYgIWRlZmluZWQoTElCQ19TVEFUSUMpCitzdGF0aWMgaW50IGdfbWFsbG9jX2RlYnVnX2xldmVsID0gMDsKKyNlbmRpZgogCiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gb3V0cHV0IGZ1bmN0aW9ucwogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogc3RhdGljIGludCBoYXNoX2VudHJ5X2NvbXBhcmUoY29uc3Qgdm9pZCogYXJnMSwgY29uc3Qgdm9pZCogYXJnMikgewotICAgIGludCByZXN1bHQ7CisgIGludCByZXN1bHQ7CiAKLSAgICBjb25zdCBIYXNoRW50cnkqIGUxID0gKnN0YXRpY19jYXN0PEhhc2hFbnRyeSogY29uc3QqPihhcmcxKTsKLSAgICBjb25zdCBIYXNoRW50cnkqIGUyID0gKnN0YXRpY19jYXN0PEhhc2hFbnRyeSogY29uc3QqPihhcmcyKTsKKyAgY29uc3QgSGFzaEVudHJ5KiBlMSA9ICpzdGF0aWNfY2FzdDxIYXNoRW50cnkqIGNvbnN0Kj4oYXJnMSk7CisgIGNvbnN0IEhhc2hFbnRyeSogZTIgPSAqc3RhdGljX2Nhc3Q8SGFzaEVudHJ5KiBjb25zdCo+KGFyZzIpOwogCi0gICAgLy8gaWYgb25lIG9yIGJvdGggYXJnIHBvaW50ZXJzIGFyZSBudWxsLCBkZWFsIGdyYWNlZnVsbHkKLSAgICBpZiAoZTEgPT0gTlVMTCkgewotICAgICAgICByZXN1bHQgPSAoZTIgPT0gTlVMTCkgPyAwIDogMTsKLSAgICB9IGVsc2UgaWYgKGUyID09IE5VTEwpIHsKLSAgICAgICAgcmVzdWx0ID0gLTE7CisgIC8vIGlmIG9uZSBvciBib3RoIGFyZyBwb2ludGVycyBhcmUgbnVsbCwgZGVhbCBncmFjZWZ1bGx5CisgIGlmIChlMSA9PSBOVUxMKSB7CisgICAgcmVzdWx0ID0gKGUyID09IE5VTEwpID8gMCA6IDE7CisgIH0gZWxzZSBpZiAoZTIgPT0gTlVMTCkgeworICAgIHJlc3VsdCA9IC0xOworICB9IGVsc2UgeworICAgIHNpemVfdCBuYkFsbG9jMSA9IGUxLT5hbGxvY2F0aW9uczsKKyAgICBzaXplX3QgbmJBbGxvYzIgPSBlMi0+YWxsb2NhdGlvbnM7CisgICAgc2l6ZV90IHNpemUxID0gZTEtPnNpemUgJiB+U0laRV9GTEFHX01BU0s7CisgICAgc2l6ZV90IHNpemUyID0gZTItPnNpemUgJiB+U0laRV9GTEFHX01BU0s7CisgICAgc2l6ZV90IGFsbG9jMSA9IG5iQWxsb2MxICogc2l6ZTE7CisgICAgc2l6ZV90IGFsbG9jMiA9IG5iQWxsb2MyICogc2l6ZTI7CisKKyAgICAvLyBzb3J0IGluIGRlc2NlbmRpbmcgb3JkZXIgYnk6CisgICAgLy8gMSkgdG90YWwgc2l6ZQorICAgIC8vIDIpIG51bWJlciBvZiBhbGxvY2F0aW9ucworICAgIC8vCisgICAgLy8gVGhpcyBpcyB1c2VkIGZvciBzb3J0aW5nLCBub3QgZGV0ZXJtaW5hdGlvbiBvZiBlcXVhbGl0eSwgc28gd2UgZG9uJ3QKKyAgICAvLyBuZWVkIHRvIGNvbXBhcmUgdGhlIGJpdCBmbGFncy4KKyAgICBpZiAoYWxsb2MxID4gYWxsb2MyKSB7CisgICAgICByZXN1bHQgPSAtMTsKKyAgICB9IGVsc2UgaWYgKGFsbG9jMSA8IGFsbG9jMikgeworICAgICAgcmVzdWx0ID0gMTsKICAgICB9IGVsc2UgewotICAgICAgICBzaXplX3QgbmJBbGxvYzEgPSBlMS0+YWxsb2NhdGlvbnM7Ci0gICAgICAgIHNpemVfdCBuYkFsbG9jMiA9IGUyLT5hbGxvY2F0aW9uczsKLSAgICAgICAgc2l6ZV90IHNpemUxID0gZTEtPnNpemUgJiB+U0laRV9GTEFHX01BU0s7Ci0gICAgICAgIHNpemVfdCBzaXplMiA9IGUyLT5zaXplICYgflNJWkVfRkxBR19NQVNLOwotICAgICAgICBzaXplX3QgYWxsb2MxID0gbmJBbGxvYzEgKiBzaXplMTsKLSAgICAgICAgc2l6ZV90IGFsbG9jMiA9IG5iQWxsb2MyICogc2l6ZTI7Ci0KLSAgICAgICAgLy8gc29ydCBpbiBkZXNjZW5kaW5nIG9yZGVyIGJ5OgotICAgICAgICAvLyAxKSB0b3RhbCBzaXplCi0gICAgICAgIC8vIDIpIG51bWJlciBvZiBhbGxvY2F0aW9ucwotICAgICAgICAvLwotICAgICAgICAvLyBUaGlzIGlzIHVzZWQgZm9yIHNvcnRpbmcsIG5vdCBkZXRlcm1pbmF0aW9uIG9mIGVxdWFsaXR5LCBzbyB3ZSBkb24ndAotICAgICAgICAvLyBuZWVkIHRvIGNvbXBhcmUgdGhlIGJpdCBmbGFncy4KLSAgICAgICAgaWYgKGFsbG9jMSA+IGFsbG9jMikgewotICAgICAgICAgICAgcmVzdWx0ID0gLTE7Ci0gICAgICAgIH0gZWxzZSBpZiAoYWxsb2MxIDwgYWxsb2MyKSB7Ci0gICAgICAgICAgICByZXN1bHQgPSAxOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG5iQWxsb2MxID4gbmJBbGxvYzIpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQgPSAtMTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAobmJBbGxvYzEgPCBuYkFsbG9jMikgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgIGlmIChuYkFsbG9jMSA+IG5iQWxsb2MyKSB7CisgICAgICAgIHJlc3VsdCA9IC0xOworICAgICAgfSBlbHNlIGlmIChuYkFsbG9jMSA8IG5iQWxsb2MyKSB7CisgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICB9IGVsc2UgeworICAgICAgICByZXN1bHQgPSAwOworICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OworICB9CisgIHJldHVybiByZXN1bHQ7CiB9CiAKLS8qCi0gKiBSZXRyaWV2ZSBuYXRpdmUgaGVhcCBpbmZvcm1hdGlvbi4KLSAqCi0gKiAiKmluZm8iIGlzIHNldCB0byBhIGJ1ZmZlciB3ZSBhbGxvY2F0ZQotICogIipvdmVyYWxsU2l6ZSIgaXMgc2V0IHRvIHRoZSBzaXplIG9mIHRoZSAiaW5mbyIgYnVmZmVyCi0gKiAiKmluZm9TaXplIiBpcyBzZXQgdG8gdGhlIHNpemUgb2YgYSBzaW5nbGUgZW50cnkKLSAqICIqdG90YWxNZW1vcnkiIGlzIHNldCB0byB0aGUgc3VtIG9mIGFsbCBhbGxvY2F0aW9ucyB3ZSdyZSB0cmFja2luZzsgZG9lcwotICogICBub3QgaW5jbHVkZSBoZWFwIG92ZXJoZWFkCi0gKiAiKmJhY2t0cmFjZVNpemUiIGlzIHNldCB0byB0aGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgYmFjayB0cmFjZQotICovCisvLyBSZXRyaWV2ZSBuYXRpdmUgaGVhcCBpbmZvcm1hdGlvbi4KKy8vCisvLyAiKmluZm8iIGlzIHNldCB0byBhIGJ1ZmZlciB3ZSBhbGxvY2F0ZQorLy8gIipvdmVyYWxsU2l6ZSIgaXMgc2V0IHRvIHRoZSBzaXplIG9mIHRoZSAiaW5mbyIgYnVmZmVyCisvLyAiKmluZm9TaXplIiBpcyBzZXQgdG8gdGhlIHNpemUgb2YgYSBzaW5nbGUgZW50cnkKKy8vICIqdG90YWxNZW1vcnkiIGlzIHNldCB0byB0aGUgc3VtIG9mIGFsbCBhbGxvY2F0aW9ucyB3ZSdyZSB0cmFja2luZzsgZG9lcworLy8gICBub3QgaW5jbHVkZSBoZWFwIG92ZXJoZWFkCisvLyAiKmJhY2t0cmFjZVNpemUiIGlzIHNldCB0byB0aGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgYmFjayB0cmFjZQogCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gRXhwb3J0ZWQgZm9yIHVzZSBieSBkZG1zLgorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGV4dGVybiAiQyIgdm9pZCBnZXRfbWFsbG9jX2xlYWtfaW5mbyh1aW50OF90KiogaW5mbywgc2l6ZV90KiBvdmVyYWxsU2l6ZSwKLSAgICAgICAgc2l6ZV90KiBpbmZvU2l6ZSwgc2l6ZV90KiB0b3RhbE1lbW9yeSwgc2l6ZV90KiBiYWNrdHJhY2VTaXplKSB7Ci0gICAgLy8gZG9uJ3QgZG8gYW55dGhpbmcgaWYgd2UgaGF2ZSBpbnZhbGlkIGFyZ3VtZW50cwotICAgIGlmIChpbmZvID09IE5VTEwgfHwgb3ZlcmFsbFNpemUgPT0gTlVMTCB8fCBpbmZvU2l6ZSA9PSBOVUxMIHx8Ci0gICAgICAgICAgICB0b3RhbE1lbW9yeSA9PSBOVUxMIHx8IGJhY2t0cmFjZVNpemUgPT0gTlVMTCkgewotICAgICAgICByZXR1cm47CisgICAgc2l6ZV90KiBpbmZvU2l6ZSwgc2l6ZV90KiB0b3RhbE1lbW9yeSwgc2l6ZV90KiBiYWNrdHJhY2VTaXplKSB7CisgIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIHdlIGhhdmUgaW52YWxpZCBhcmd1bWVudHMuCisgIGlmIChpbmZvID09IE5VTEwgfHwgb3ZlcmFsbFNpemUgPT0gTlVMTCB8fCBpbmZvU2l6ZSA9PSBOVUxMIHx8CisgICAgdG90YWxNZW1vcnkgPT0gTlVMTCB8fCBiYWNrdHJhY2VTaXplID09IE5VTEwpIHsKKyAgICByZXR1cm47CisgIH0KKyAgKnRvdGFsTWVtb3J5ID0gMDsKKworICBTY29wZWRQdGhyZWFkTXV0ZXhMb2NrZXIgbG9ja2VyKCZnX2hhc2hfdGFibGUubG9jayk7CisgIGlmIChnX2hhc2hfdGFibGUuY291bnQgPT0gMCkgeworICAgICppbmZvID0gTlVMTDsKKyAgICAqb3ZlcmFsbFNpemUgPSAwOworICAgICppbmZvU2l6ZSA9IDA7CisgICAgKmJhY2t0cmFjZVNpemUgPSAwOworICAgIHJldHVybjsKKyAgfQorCisgIEhhc2hFbnRyeSoqIGxpc3QgPSBzdGF0aWNfY2FzdDxIYXNoRW50cnkqKj4oTWFsbG9jKG1hbGxvYykoc2l6ZW9mKHZvaWQqKSAqIGdfaGFzaF90YWJsZS5jb3VudCkpOworCisgIC8vIEdldCB0aGUgZW50cmllcyBpbnRvIGFuIGFycmF5IHRvIGJlIHNvcnRlZC4KKyAgc2l6ZV90IGluZGV4ID0gMDsKKyAgZm9yIChzaXplX3QgaSA9IDAgOyBpIDwgSEFTSFRBQkxFX1NJWkUgOyArK2kpIHsKKyAgICBIYXNoRW50cnkqIGVudHJ5ID0gZ19oYXNoX3RhYmxlLnNsb3RzW2ldOworICAgIHdoaWxlIChlbnRyeSAhPSBOVUxMKSB7CisgICAgICBsaXN0W2luZGV4XSA9IGVudHJ5OworICAgICAgKnRvdGFsTWVtb3J5ID0gKnRvdGFsTWVtb3J5ICsgKChlbnRyeS0+c2l6ZSAmIH5TSVpFX0ZMQUdfTUFTSykgKiBlbnRyeS0+YWxsb2NhdGlvbnMpOworICAgICAgaW5kZXgrKzsKKyAgICAgIGVudHJ5ID0gZW50cnktPm5leHQ7CiAgICAgfQotICAgICp0b3RhbE1lbW9yeSA9IDA7CisgIH0KIAotICAgIFNjb3BlZFB0aHJlYWRNdXRleExvY2tlciBsb2NrZXIoJmdfYWxsb2NhdGlvbnNfbXV0ZXgpOworICAvLyBYWFg6IHRoZSBwcm90b2NvbCBkb2Vzbid0IGFsbG93IHZhcmlhYmxlIHNpemUgZm9yIHRoZSBzdGFjayB0cmFjZSAoeWV0KQorICAqaW5mb1NpemUgPSAoc2l6ZW9mKHNpemVfdCkgKiAyKSArIChzaXplb2YodWludHB0cl90KSAqIEJBQ0tUUkFDRV9TSVpFKTsKKyAgKm92ZXJhbGxTaXplID0gKmluZm9TaXplICogZ19oYXNoX3RhYmxlLmNvdW50OworICAqYmFja3RyYWNlU2l6ZSA9IEJBQ0tUUkFDRV9TSVpFOwogCi0gICAgaWYgKGdfaGFzaF90YWJsZS5jb3VudCA9PSAwKSB7Ci0gICAgICAgICppbmZvID0gTlVMTDsKLSAgICAgICAgKm92ZXJhbGxTaXplID0gMDsKLSAgICAgICAgKmluZm9TaXplID0gMDsKLSAgICAgICAgKmJhY2t0cmFjZVNpemUgPSAwOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgSGFzaEVudHJ5KiogbGlzdCA9IHN0YXRpY19jYXN0PEhhc2hFbnRyeSoqPihNYWxsb2MobWFsbG9jKShzaXplb2Yodm9pZCopICogZ19oYXNoX3RhYmxlLmNvdW50KSk7Ci0KLSAgICAvLyBnZXQgdGhlIGVudHJpZXMgaW50byBhbiBhcnJheSB0byBiZSBzb3J0ZWQKLSAgICBpbnQgaW5kZXggPSAwOwotICAgIGZvciAoc2l6ZV90IGkgPSAwIDsgaSA8IEhBU0hUQUJMRV9TSVpFIDsgKytpKSB7Ci0gICAgICAgIEhhc2hFbnRyeSogZW50cnkgPSBnX2hhc2hfdGFibGUuc2xvdHNbaV07Ci0gICAgICAgIHdoaWxlIChlbnRyeSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBsaXN0W2luZGV4XSA9IGVudHJ5OwotICAgICAgICAgICAgKnRvdGFsTWVtb3J5ID0gKnRvdGFsTWVtb3J5ICsKLSAgICAgICAgICAgICAgICAoKGVudHJ5LT5zaXplICYgflNJWkVfRkxBR19NQVNLKSAqIGVudHJ5LT5hbGxvY2F0aW9ucyk7Ci0gICAgICAgICAgICBpbmRleCsrOwotICAgICAgICAgICAgZW50cnkgPSBlbnRyeS0+bmV4dDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIFhYWDogdGhlIHByb3RvY29sIGRvZXNuJ3QgYWxsb3cgdmFyaWFibGUgc2l6ZSBmb3IgdGhlIHN0YWNrIHRyYWNlICh5ZXQpCi0gICAgKmluZm9TaXplID0gKHNpemVvZihzaXplX3QpICogMikgKyAoc2l6ZW9mKHVpbnRwdHJfdCkgKiBCQUNLVFJBQ0VfU0laRSk7Ci0gICAgKm92ZXJhbGxTaXplID0gKmluZm9TaXplICogZ19oYXNoX3RhYmxlLmNvdW50OwotICAgICpiYWNrdHJhY2VTaXplID0gQkFDS1RSQUNFX1NJWkU7Ci0KLSAgICAvLyBub3cgZ2V0IGEgYnl0ZSBhcnJheSBiaWcgZW5vdWdoIGZvciB0aGlzCi0gICAgKmluZm8gPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oTWFsbG9jKG1hbGxvYykoKm92ZXJhbGxTaXplKSk7Ci0KLSAgICBpZiAoKmluZm8gPT0gTlVMTCkgewotICAgICAgICAqb3ZlcmFsbFNpemUgPSAwOwotICAgICAgICBNYWxsb2MoZnJlZSkobGlzdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBxc29ydChsaXN0LCBnX2hhc2hfdGFibGUuY291bnQsIHNpemVvZih2b2lkKiksIGhhc2hfZW50cnlfY29tcGFyZSk7Ci0KLSAgICB1aW50OF90KiBoZWFkID0gKmluZm87Ci0gICAgY29uc3QgaW50IGNvdW50ID0gZ19oYXNoX3RhYmxlLmNvdW50OwotICAgIGZvciAoaW50IGkgPSAwIDsgaSA8IGNvdW50IDsgKytpKSB7Ci0gICAgICAgIEhhc2hFbnRyeSogZW50cnkgPSBsaXN0W2ldOwotICAgICAgICBzaXplX3QgZW50cnlTaXplID0gKHNpemVvZihzaXplX3QpICogMikgKyAoc2l6ZW9mKHVpbnRwdHJfdCkgKiBlbnRyeS0+bnVtRW50cmllcyk7Ci0gICAgICAgIGlmIChlbnRyeVNpemUgPCAqaW5mb1NpemUpIHsKLSAgICAgICAgICAgIC8qIHdlJ3JlIHdyaXRpbmcgbGVzcyB0aGFuIGEgZnVsbCBlbnRyeSwgY2xlYXIgb3V0IHRoZSByZXN0ICovCi0gICAgICAgICAgICBtZW1zZXQoaGVhZCArIGVudHJ5U2l6ZSwgMCwgKmluZm9TaXplIC0gZW50cnlTaXplKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qIG1ha2Ugc3VyZSB0aGUgYW1vdW50IHdlJ3JlIGNvcHlpbmcgZG9lc24ndCBleGNlZWQgdGhlIGxpbWl0ICovCi0gICAgICAgICAgICBlbnRyeVNpemUgPSAqaW5mb1NpemU7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtY3B5KGhlYWQsICYoZW50cnktPnNpemUpLCBlbnRyeVNpemUpOwotICAgICAgICBoZWFkICs9ICppbmZvU2l6ZTsKLSAgICB9Ci0KKyAgLy8gbm93IGdldCBhIGJ5dGUgYXJyYXkgYmlnIGVub3VnaCBmb3IgdGhpcworICAqaW5mbyA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihNYWxsb2MobWFsbG9jKSgqb3ZlcmFsbFNpemUpKTsKKyAgaWYgKCppbmZvID09IE5VTEwpIHsKKyAgICAqb3ZlcmFsbFNpemUgPSAwOwogICAgIE1hbGxvYyhmcmVlKShsaXN0KTsKKyAgICByZXR1cm47CisgIH0KKworICBxc29ydChsaXN0LCBnX2hhc2hfdGFibGUuY291bnQsIHNpemVvZih2b2lkKiksIGhhc2hfZW50cnlfY29tcGFyZSk7CisKKyAgdWludDhfdCogaGVhZCA9ICppbmZvOworICBjb25zdCBzaXplX3QgY291bnQgPSBnX2hhc2hfdGFibGUuY291bnQ7CisgIGZvciAoc2l6ZV90IGkgPSAwIDsgaSA8IGNvdW50IDsgKytpKSB7CisgICAgSGFzaEVudHJ5KiBlbnRyeSA9IGxpc3RbaV07CisgICAgc2l6ZV90IGVudHJ5U2l6ZSA9IChzaXplb2Yoc2l6ZV90KSAqIDIpICsgKHNpemVvZih1aW50cHRyX3QpICogZW50cnktPm51bUVudHJpZXMpOworICAgIGlmIChlbnRyeVNpemUgPCAqaW5mb1NpemUpIHsKKyAgICAgIC8vIFdlJ3JlIHdyaXRpbmcgbGVzcyB0aGFuIGEgZnVsbCBlbnRyeSwgY2xlYXIgb3V0IHRoZSByZXN0LgorICAgICAgbWVtc2V0KGhlYWQgKyBlbnRyeVNpemUsIDAsICppbmZvU2l6ZSAtIGVudHJ5U2l6ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgYW1vdW50IHdlJ3JlIGNvcHlpbmcgZG9lc24ndCBleGNlZWQgdGhlIGxpbWl0LgorICAgICAgZW50cnlTaXplID0gKmluZm9TaXplOworICAgIH0KKyAgICBtZW1jcHkoaGVhZCwgJihlbnRyeS0+c2l6ZSksIGVudHJ5U2l6ZSk7CisgICAgaGVhZCArPSAqaW5mb1NpemU7CisgIH0KKworICBNYWxsb2MoZnJlZSkobGlzdCk7CiB9CiAKLS8vIEV4cG9ydGVkIGZvciB1c2UgYnkgZGRtcy4KIGV4dGVybiAiQyIgdm9pZCBmcmVlX21hbGxvY19sZWFrX2luZm8odWludDhfdCogaW5mbykgewotICAgIE1hbGxvYyhmcmVlKShpbmZvKTsKKyAgTWFsbG9jKGZyZWUpKGluZm8pOwogfQogCi1leHRlcm4gIkMiIHN0cnVjdCBtYWxsaW5mbyBtYWxsaW5mbygpIHsKLSAgICByZXR1cm4gTWFsbG9jKG1hbGxpbmZvKSgpOwotfQotCi1leHRlcm4gIkMiIHZvaWQqIHZhbGxvYyhzaXplX3QgYnl0ZXMpIHsKLSAgICByZXR1cm4gTWFsbG9jKHZhbGxvYykoYnl0ZXMpOwotfQotCi1leHRlcm4gIkMiIHZvaWQqIHB2YWxsb2Moc2l6ZV90IGJ5dGVzKSB7Ci0gICAgcmV0dXJuIE1hbGxvYyhwdmFsbG9jKShieXRlcyk7Ci19Ci0KLWV4dGVybiAiQyIgaW50IHBvc2l4X21lbWFsaWduKHZvaWQqKiBtZW1wdHIsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSB7Ci0gICAgcmV0dXJuIE1hbGxvYyhwb3NpeF9tZW1hbGlnbikobWVtcHRyLCBhbGlnbm1lbnQsIHNpemUpOwotfQotCi0vLyBTdXBwb3J0IGZvciBtYWxsb2MgZGVidWdnaW5nLgotLy8gVGFibGUgZm9yIGRpc3BhdGNoaW5nIG1hbGxvYyBjYWxscywgaW5pdGlhbGl6ZWQgd2l0aCBkZWZhdWx0IGRpc3BhdGNoZXJzLgotZXh0ZXJuIGNvbnN0IE1hbGxvY0RlYnVnIF9fbGliY19tYWxsb2NfZGVmYXVsdF9kaXNwYXRjaDsKLWNvbnN0IE1hbGxvY0RlYnVnIF9fbGliY19tYWxsb2NfZGVmYXVsdF9kaXNwYXRjaCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDMyKSkpID0KLXsKLSAgICBNYWxsb2MobWFsbG9jKSwgTWFsbG9jKGZyZWUpLCBNYWxsb2MoY2FsbG9jKSwgTWFsbG9jKHJlYWxsb2MpLCBNYWxsb2MobWVtYWxpZ24pLCBNYWxsb2MobWFsbG9jX3VzYWJsZV9zaXplKSwKLX07Ci0KLS8qIFNlbGVjdG9yIG9mIGRpc3BhdGNoIHRhYmxlIHRvIHVzZSBmb3IgZGlzcGF0Y2hpbmcgbWFsbG9jIGNhbGxzLiAqLwotY29uc3QgTWFsbG9jRGVidWcqIF9fbGliY19tYWxsb2NfZGlzcGF0Y2ggPSAmX19saWJjX21hbGxvY19kZWZhdWx0X2Rpc3BhdGNoOwotCi1leHRlcm4gIkMiIHZvaWQqIG1hbGxvYyhzaXplX3QgYnl0ZXMpIHsKLSAgICByZXR1cm4gX19saWJjX21hbGxvY19kaXNwYXRjaC0+bWFsbG9jKGJ5dGVzKTsKKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisvLyBBbGxvY2F0aW9uIGZ1bmN0aW9ucworLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2V4dGVybiAiQyIgdm9pZCogY2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbV9zaXplKSB7CisgIHJldHVybiBfX2xpYmNfbWFsbG9jX2Rpc3BhdGNoLT5jYWxsb2Mobl9lbGVtZW50cywgZWxlbV9zaXplKTsKIH0KIAogZXh0ZXJuICJDIiB2b2lkIGZyZWUodm9pZCogbWVtKSB7Ci0gICAgX19saWJjX21hbGxvY19kaXNwYXRjaC0+ZnJlZShtZW0pOworICBfX2xpYmNfbWFsbG9jX2Rpc3BhdGNoLT5mcmVlKG1lbSk7CiB9CiAKLWV4dGVybiAiQyIgdm9pZCogY2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbV9zaXplKSB7Ci0gICAgcmV0dXJuIF9fbGliY19tYWxsb2NfZGlzcGF0Y2gtPmNhbGxvYyhuX2VsZW1lbnRzLCBlbGVtX3NpemUpOworZXh0ZXJuICJDIiBzdHJ1Y3QgbWFsbGluZm8gbWFsbGluZm8oKSB7CisgIHJldHVybiBfX2xpYmNfbWFsbG9jX2Rpc3BhdGNoLT5tYWxsaW5mbygpOwogfQogCi1leHRlcm4gIkMiIHZvaWQqIHJlYWxsb2Modm9pZCogb2xkTWVtLCBzaXplX3QgYnl0ZXMpIHsKLSAgICByZXR1cm4gX19saWJjX21hbGxvY19kaXNwYXRjaC0+cmVhbGxvYyhvbGRNZW0sIGJ5dGVzKTsKLX0KLQotZXh0ZXJuICJDIiB2b2lkKiBtZW1hbGlnbihzaXplX3QgYWxpZ25tZW50LCBzaXplX3QgYnl0ZXMpIHsKLSAgICByZXR1cm4gX19saWJjX21hbGxvY19kaXNwYXRjaC0+bWVtYWxpZ24oYWxpZ25tZW50LCBieXRlcyk7CitleHRlcm4gIkMiIHZvaWQqIG1hbGxvYyhzaXplX3QgYnl0ZXMpIHsKKyAgcmV0dXJuIF9fbGliY19tYWxsb2NfZGlzcGF0Y2gtPm1hbGxvYyhieXRlcyk7CiB9CiAKIGV4dGVybiAiQyIgc2l6ZV90IG1hbGxvY191c2FibGVfc2l6ZShjb25zdCB2b2lkKiBtZW0pIHsKLSAgICByZXR1cm4gX19saWJjX21hbGxvY19kaXNwYXRjaC0+bWFsbG9jX3VzYWJsZV9zaXplKG1lbSk7CisgIHJldHVybiBfX2xpYmNfbWFsbG9jX2Rpc3BhdGNoLT5tYWxsb2NfdXNhYmxlX3NpemUobWVtKTsKIH0KIAotLyogV2UgaW1wbGVtZW50IG1hbGxvYyBkZWJ1Z2dpbmcgb25seSBpbiBsaWJjLnNvLCBzbyBjb2RlIGJlbG93Ci0gKiBtdXN0IGJlIGV4Y2x1ZGVkIGlmIHdlIGNvbXBpbGUgdGhpcyBmaWxlIGZvciBzdGF0aWMgbGliYy5hCi0gKi8KK2V4dGVybiAiQyIgdm9pZCogbWVtYWxpZ24oc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IGJ5dGVzKSB7CisgIHJldHVybiBfX2xpYmNfbWFsbG9jX2Rpc3BhdGNoLT5tZW1hbGlnbihhbGlnbm1lbnQsIGJ5dGVzKTsKK30KKworZXh0ZXJuICJDIiBpbnQgcG9zaXhfbWVtYWxpZ24odm9pZCoqIG1lbXB0ciwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIHsKKyAgcmV0dXJuIF9fbGliY19tYWxsb2NfZGlzcGF0Y2gtPnBvc2l4X21lbWFsaWduKG1lbXB0ciwgYWxpZ25tZW50LCBzaXplKTsKK30KKworI2lmIGRlZmluZWQoSEFWRV9ERVBSRUNBVEVEX01BTExPQ19GVU5DUykKK2V4dGVybiAiQyIgdm9pZCogcHZhbGxvYyhzaXplX3QgYnl0ZXMpIHsKKyAgcmV0dXJuIF9fbGliY19tYWxsb2NfZGlzcGF0Y2gtPnB2YWxsb2MoYnl0ZXMpOworfQorI2VuZGlmCisKK2V4dGVybiAiQyIgdm9pZCogcmVhbGxvYyh2b2lkKiBvbGRNZW0sIHNpemVfdCBieXRlcykgeworICByZXR1cm4gX19saWJjX21hbGxvY19kaXNwYXRjaC0+cmVhbGxvYyhvbGRNZW0sIGJ5dGVzKTsKK30KKworI2lmIGRlZmluZWQoSEFWRV9ERVBSRUNBVEVEX01BTExPQ19GVU5DUykKK2V4dGVybiAiQyIgdm9pZCogdmFsbG9jKHNpemVfdCBieXRlcykgeworICByZXR1cm4gX19saWJjX21hbGxvY19kaXNwYXRjaC0+dmFsbG9jKGJ5dGVzKTsKK30KKyNlbmRpZgorCisvLyBXZSBpbXBsZW1lbnQgbWFsbG9jIGRlYnVnZ2luZyBvbmx5IGluIGxpYmMuc28sIHNvIHRoZSBjb2RlIGJlbG93CisvLyBtdXN0IGJlIGV4Y2x1ZGVkIGlmIHdlIGNvbXBpbGUgdGhpcyBmaWxlIGZvciBzdGF0aWMgbGliYy5hCiAjaWZuZGVmIExJQkNfU1RBVElDCiAjaW5jbHVkZSA8c3lzL3N5c3RlbV9wcm9wZXJ0aWVzLmg+CiAjaW5jbHVkZSA8ZGxmY24uaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgInByaXZhdGUvbGliY19sb2dnaW5nLmgiCiAKLS8qIFRhYmxlIGZvciBkaXNwYXRjaGluZyBtYWxsb2MgY2FsbHMsIGRlcGVuZGluZyBvbiBlbnZpcm9ubWVudC4gKi8KLXN0YXRpYyBNYWxsb2NEZWJ1ZyBnX21hbGxvY19kaXNwYXRjaF90YWJsZSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDMyKSkpID0gewotICAgIE1hbGxvYyhtYWxsb2MpLCBNYWxsb2MoZnJlZSksIE1hbGxvYyhjYWxsb2MpLCBNYWxsb2MocmVhbGxvYyksIE1hbGxvYyhtZW1hbGlnbiksIE1hbGxvYyhtYWxsb2NfdXNhYmxlX3NpemUpCi19OwotCi1leHRlcm4gY29uc3QgY2hhciogX19wcm9nbmFtZTsKLQotLyogSGFuZGxlIHRvIHNoYXJlZCBsaWJyYXJ5IHdoZXJlIGFjdHVhbCBtZW1vcnkgYWxsb2NhdGlvbiBpcyBpbXBsZW1lbnRlZC4KLSAqIFRoaXMgbGlicmFyeSBpcyBsb2FkZWQgYW5kIG1lbW9yeSBhbGxvY2F0aW9uIGNhbGxzIGFyZSByZWRpcmVjdGVkIHRoZXJlCi0gKiB3aGVuIGxpYmMuZGVidWcubWFsbG9jIGVudmlyb25tZW50IHZhcmlhYmxlIGNvbnRhaW5zIHZhbHVlIG90aGVyIHRoYW4KLSAqIHplcm86Ci0gKiAxICAtIEZvciBtZW1vcnkgbGVhayBkZXRlY3Rpb25zLgotICogNSAgLSBGb3IgZmlsbGluZyBhbGxvY2F0ZWQgLyBmcmVlZCBtZW1vcnkgd2l0aCBwYXR0ZXJucyBkZWZpbmVkIGJ5Ci0gKiAgICAgIENIS19TRU5USU5FTF9WQUxVRSwgYW5kIENIS19GSUxMX0ZSRUUgbWFjcm9zLgotICogMTAgLSBGb3IgYWRkaW5nIHByZS0sIGFuZCBwb3N0LSBhbGxvY2F0aW9uIHN0dWJzIGluIG9yZGVyIHRvIGRldGVjdAotICogICAgICBidWZmZXIgb3ZlcnJ1bnMuCi0gKiBOb3RlIHRoYXQgZW11bGF0b3IncyBtZW1vcnkgYWxsb2NhdGlvbiBpbnN0cnVtZW50YXRpb24gaXMgbm90IGNvbnRyb2xsZWQgYnkKLSAqIGxpYmMuZGVidWcubWFsbG9jIHZhbHVlLCBidXQgcmF0aGVyIGJ5IGVtdWxhdG9yLCBzdGFydGVkIHdpdGggLW1lbWNoZWNrCi0gKiBvcHRpb24uIE5vdGUgYWxzbywgdGhhdCBpZiBlbXVsYXRvciBoYXMgc3RhcnRlZCB3aXRoIC1tZW1jaGVjayBvcHRpb24sCi0gKiBlbXVsYXRvcidzIGluc3RydW1lbnRlZCBtZW1vcnkgYWxsb2NhdGlvbiB3aWxsIHRha2Ugb3ZlciB2YWx1ZSBzYXZlZCBpbgotICogbGliYy5kZWJ1Zy5tYWxsb2MuIEluIG90aGVyIHdvcmRzLCBpZiBlbXVsYXRvciBoYXMgc3RhcnRlZCB3aXRoIC1tZW1jaGVjawotICogb3B0aW9uLCBsaWJjLmRlYnVnLm1hbGxvYyB2YWx1ZSBpcyBpZ25vcmVkLgotICogQWN0dWFsIGZ1bmN0aW9uYWxpdHkgZm9yIGRlYnVnIGxldmVscyAxLTEwIGlzIGltcGxlbWVudGVkIGluCi0gKiBsaWJjX21hbGxvY19kZWJ1Z19sZWFrLnNvLCB3aGlsZSBmdW5jdGlvbmFsaXR5IGZvciBlbXVsdG9yJ3MgaW5zdHJ1bWVudGVkCi0gKiBhbGxvY2F0aW9ucyBpcyBpbXBsZW1lbnRlZCBpbiBsaWJjX21hbGxvY19kZWJ1Z19xZW11LnNvIGFuZCBjYW4gYmUgcnVuIGluc2lkZQotICogdGhlIGVtdWxhdG9yIG9ubHkuCi0gKi8KLXN0YXRpYyB2b2lkKiBsaWJjX21hbGxvY19pbXBsX2hhbmRsZSA9IE5VTEw7Ci0KLS8qIFRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIHRoZSB2YWx1ZSBvZiBwcm9wZXJ0eSBsaWJjLmRlYnVnLm1hbGxvYy5iYWNrbG9nLAotICogd2hlbiB0aGUgdmFsdWUgb2YgbGliYy5kZWJ1Zy5tYWxsb2MgPSAxMC4gIEl0IGRldGVybWluZXMgdGhlIHNpemUgb2YgdGhlCi0gKiBiYWNrbG9nIHdlIHVzZSB0byBkZXRlY3QgbXVsdGlwbGUgZnJlZXMuICBJZiB0aGUgcHJvcGVydHkgaXMgbm90IHNldCwgdGhlCi0gKiBiYWNrbG9nIGxlbmd0aCBkZWZhdWx0cyB0byBCQUNLTE9HX0RFRkFVTFRfTEVOLgotICovCi1fX0xJQkNfSElEREVOX18gdW5zaWduZWQgaW50IGdfbWFsbG9jX2RlYnVnX2JhY2tsb2c7Ci0jZGVmaW5lIEJBQ0tMT0dfREVGQVVMVF9MRU4gMTAwCi0KLS8qIFRoZSB2YWx1ZSBvZiBsaWJjLmRlYnVnLm1hbGxvYy4gKi8KLV9fTElCQ19ISURERU5fXyBpbnQgZ19tYWxsb2NfZGVidWdfbGV2ZWw7Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KIHN0YXRpYyB2b2lkIEluaXRNYWxsb2NGdW5jdGlvbih2b2lkKiBtYWxsb2NfaW1wbF9oYW5kbGVyLCBGdW5jdGlvblR5cGUqIGZ1bmMsIGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgY2hhciogc3VmZml4KSB7Ci0gICAgY2hhciBzeW1ib2xbMTI4XTsKLSAgICBzbnByaW50ZihzeW1ib2wsIHNpemVvZihzeW1ib2wpLCAiJXNfJXMiLCBwcmVmaXgsIHN1ZmZpeCk7Ci0gICAgKmZ1bmMgPSByZWludGVycHJldF9jYXN0PEZ1bmN0aW9uVHlwZT4oZGxzeW0obWFsbG9jX2ltcGxfaGFuZGxlciwgc3ltYm9sKSk7Ci0gICAgaWYgKCpmdW5jID09IE5VTEwpIHsKLSAgICAgICAgZXJyb3JfbG9nKCIlczogZGxzeW0oXCIlc1wiKSBmYWlsZWQiLCBfX3Byb2duYW1lLCBzeW1ib2wpOwotICAgIH0KKyAgY2hhciBzeW1ib2xbMTI4XTsKKyAgc25wcmludGYoc3ltYm9sLCBzaXplb2Yoc3ltYm9sKSwgIiVzXyVzIiwgcHJlZml4LCBzdWZmaXgpOworICAqZnVuYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8RnVuY3Rpb25UeXBlPihkbHN5bShtYWxsb2NfaW1wbF9oYW5kbGVyLCBzeW1ib2wpKTsKKyAgaWYgKCpmdW5jID09IE5VTEwpIHsKKyAgICBlcnJvcl9sb2coIiVzOiBkbHN5bShcIiVzXCIpIGZhaWxlZCIsIGdldHByb2duYW1lKCksIHN5bWJvbCk7CisgIH0KIH0KIAogc3RhdGljIHZvaWQgSW5pdE1hbGxvYyh2b2lkKiBtYWxsb2NfaW1wbF9oYW5kbGVyLCBNYWxsb2NEZWJ1ZyogdGFibGUsIGNvbnN0IGNoYXIqIHByZWZpeCkgewotICAgIF9fbGliY19mb3JtYXRfbG9nKEFORFJPSURfTE9HX0lORk8sICJsaWJjIiwgIiVzOiB1c2luZyBsaWJjLmRlYnVnLm1hbGxvYyAlZCAoJXMpXG4iLAotICAgICAgICAgICAgICAgICAgICAgIF9fcHJvZ25hbWUsIGdfbWFsbG9jX2RlYnVnX2xldmVsLCBwcmVmaXgpOworICBfX2xpYmNfZm9ybWF0X2xvZyhBTkRST0lEX0xPR19JTkZPLCAibGliYyIsICIlczogdXNpbmcgbGliYy5kZWJ1Zy5tYWxsb2MgJWQgKCVzKVxuIiwKKyAgICAgICAgICAgICAgICAgICAgZ2V0cHJvZ25hbWUoKSwgZ19tYWxsb2NfZGVidWdfbGV2ZWwsIHByZWZpeCk7CiAKLSAgICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdNYWxsb2M+KG1hbGxvY19pbXBsX2hhbmRsZXIsICZ0YWJsZS0+bWFsbG9jLCBwcmVmaXgsICJtYWxsb2MiKTsKLSAgICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdGcmVlPihtYWxsb2NfaW1wbF9oYW5kbGVyLCAmdGFibGUtPmZyZWUsIHByZWZpeCwgImZyZWUiKTsKLSAgICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdDYWxsb2M+KG1hbGxvY19pbXBsX2hhbmRsZXIsICZ0YWJsZS0+Y2FsbG9jLCBwcmVmaXgsICJjYWxsb2MiKTsKLSAgICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdSZWFsbG9jPihtYWxsb2NfaW1wbF9oYW5kbGVyLCAmdGFibGUtPnJlYWxsb2MsIHByZWZpeCwgInJlYWxsb2MiKTsKLSAgICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdNZW1hbGlnbj4obWFsbG9jX2ltcGxfaGFuZGxlciwgJnRhYmxlLT5tZW1hbGlnbiwgcHJlZml4LCAibWVtYWxpZ24iKTsKLSAgICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdNYWxsb2NVc2FibGVTaXplPihtYWxsb2NfaW1wbF9oYW5kbGVyLCAmdGFibGUtPm1hbGxvY191c2FibGVfc2l6ZSwgcHJlZml4LCAibWFsbG9jX3VzYWJsZV9zaXplIik7CisgIEluaXRNYWxsb2NGdW5jdGlvbjxNYWxsb2NEZWJ1Z0NhbGxvYz4obWFsbG9jX2ltcGxfaGFuZGxlciwgJnRhYmxlLT5jYWxsb2MsIHByZWZpeCwgImNhbGxvYyIpOworICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdGcmVlPihtYWxsb2NfaW1wbF9oYW5kbGVyLCAmdGFibGUtPmZyZWUsIHByZWZpeCwgImZyZWUiKTsKKyAgSW5pdE1hbGxvY0Z1bmN0aW9uPE1hbGxvY0RlYnVnTWFsbGluZm8+KG1hbGxvY19pbXBsX2hhbmRsZXIsICZ0YWJsZS0+bWFsbGluZm8sIHByZWZpeCwgIm1hbGxpbmZvIik7CisgIEluaXRNYWxsb2NGdW5jdGlvbjxNYWxsb2NEZWJ1Z01hbGxvYz4obWFsbG9jX2ltcGxfaGFuZGxlciwgJnRhYmxlLT5tYWxsb2MsIHByZWZpeCwgIm1hbGxvYyIpOworICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdNYWxsb2NVc2FibGVTaXplPihtYWxsb2NfaW1wbF9oYW5kbGVyLCAmdGFibGUtPm1hbGxvY191c2FibGVfc2l6ZSwgcHJlZml4LCAibWFsbG9jX3VzYWJsZV9zaXplIik7CisgIEluaXRNYWxsb2NGdW5jdGlvbjxNYWxsb2NEZWJ1Z01lbWFsaWduPihtYWxsb2NfaW1wbF9oYW5kbGVyLCAmdGFibGUtPm1lbWFsaWduLCBwcmVmaXgsICJtZW1hbGlnbiIpOworICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdQb3NpeE1lbWFsaWduPihtYWxsb2NfaW1wbF9oYW5kbGVyLCAmdGFibGUtPnBvc2l4X21lbWFsaWduLCBwcmVmaXgsICJwb3NpeF9tZW1hbGlnbiIpOworI2lmIGRlZmluZWQoSEFWRV9ERVBSRUNBVEVEX01BTExPQ19GVU5DUykKKyAgSW5pdE1hbGxvY0Z1bmN0aW9uPE1hbGxvY0RlYnVnUHZhbGxvYz4obWFsbG9jX2ltcGxfaGFuZGxlciwgJnRhYmxlLT5wdmFsbG9jLCBwcmVmaXgsICJwdmFsbG9jIik7CisjZW5kaWYKKyAgSW5pdE1hbGxvY0Z1bmN0aW9uPE1hbGxvY0RlYnVnUmVhbGxvYz4obWFsbG9jX2ltcGxfaGFuZGxlciwgJnRhYmxlLT5yZWFsbG9jLCBwcmVmaXgsICJyZWFsbG9jIik7CisjaWYgZGVmaW5lZChIQVZFX0RFUFJFQ0FURURfTUFMTE9DX0ZVTkNTKQorICBJbml0TWFsbG9jRnVuY3Rpb248TWFsbG9jRGVidWdWYWxsb2M+KG1hbGxvY19pbXBsX2hhbmRsZXIsICZ0YWJsZS0+dmFsbG9jLCBwcmVmaXgsICJ2YWxsb2MiKTsKKyNlbmRpZgogfQogCi0vKiBJbml0aWFsaXplcyBtZW1vcnkgYWxsb2NhdGlvbiBmcmFtZXdvcmsgb25jZSBwZXIgcHJvY2Vzcy4gKi8KKy8vIEluaXRpYWxpemVzIG1lbW9yeSBhbGxvY2F0aW9uIGZyYW1ld29yayBvbmNlIHBlciBwcm9jZXNzLgogc3RhdGljIHZvaWQgbWFsbG9jX2luaXRfaW1wbCgpIHsKLSAgICBjb25zdCBjaGFyKiBzb19uYW1lID0gTlVMTDsKLSAgICBNYWxsb2NEZWJ1Z0luaXQgbWFsbG9jX2RlYnVnX2luaXRpYWxpemUgPSBOVUxMOwotICAgIHVuc2lnbmVkIGludCBxZW11X3J1bm5pbmcgPSAwOwotICAgIHVuc2lnbmVkIGludCBtZW1jaGVja19lbmFibGVkID0gMDsKLSAgICBjaGFyIGVudltQUk9QX1ZBTFVFX01BWF07Ci0gICAgY2hhciBtZW1jaGVja190cmFjaW5nW1BST1BfVkFMVUVfTUFYXTsKLSAgICBjaGFyIGRlYnVnX3Byb2dyYW1bUFJPUF9WQUxVRV9NQVhdOworICBjb25zdCBjaGFyKiBzb19uYW1lID0gTlVMTDsKKyAgTWFsbG9jRGVidWdJbml0IG1hbGxvY19kZWJ1Z19pbml0aWFsaXplID0gTlVMTDsKKyAgdW5zaWduZWQgaW50IHFlbXVfcnVubmluZyA9IDA7CisgIHVuc2lnbmVkIGludCBtZW1jaGVja19lbmFibGVkID0gMDsKKyAgY2hhciBlbnZbUFJPUF9WQUxVRV9NQVhdOworICBjaGFyIG1lbWNoZWNrX3RyYWNpbmdbUFJPUF9WQUxVRV9NQVhdOworICBjaGFyIGRlYnVnX3Byb2dyYW1bUFJPUF9WQUxVRV9NQVhdOwogCi0gICAgLyogR2V0IGN1c3RvbSBtYWxsb2MgZGVidWcgbGV2ZWwuIE5vdGUgdGhhdCBlbXVsYXRvciBzdGFydGVkIHdpdGgKLSAgICAgKiBtZW1vcnkgY2hlY2tpbmcgb3B0aW9uIHdpbGwgaGF2ZSBwcmlvcml0eSBvdmVyIGRlYnVnIGxldmVsIHNldCBpbgotICAgICAqIGxpYmMuZGVidWcubWFsbG9jIHN5c3RlbSBwcm9wZXJ0eS4gKi8KLSAgICBpZiAoX19zeXN0ZW1fcHJvcGVydHlfZ2V0KCJyby5rZXJuZWwucWVtdSIsIGVudikgJiYgYXRvaShlbnYpKSB7Ci0gICAgICAgIHFlbXVfcnVubmluZyA9IDE7Ci0gICAgICAgIGlmIChfX3N5c3RlbV9wcm9wZXJ0eV9nZXQoInJvLmtlcm5lbC5tZW1jaGVjayIsIG1lbWNoZWNrX3RyYWNpbmcpKSB7Ci0gICAgICAgICAgICBpZiAobWVtY2hlY2tfdHJhY2luZ1swXSAhPSAnMCcpIHsKLSAgICAgICAgICAgICAgICAvLyBFbXVsYXRvciBoYXMgc3RhcnRlZCB3aXRoIG1lbW9yeSB0cmFjaW5nIGVuYWJsZWQuIEVuZm9yY2UgaXQuCi0gICAgICAgICAgICAgICAgZ19tYWxsb2NfZGVidWdfbGV2ZWwgPSAyMDsKLSAgICAgICAgICAgICAgICBtZW1jaGVja19lbmFibGVkID0gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAvLyBHZXQgY3VzdG9tIG1hbGxvYyBkZWJ1ZyBsZXZlbC4gTm90ZSB0aGF0IGVtdWxhdG9yIHN0YXJ0ZWQgd2l0aAorICAvLyBtZW1vcnkgY2hlY2tpbmcgb3B0aW9uIHdpbGwgaGF2ZSBwcmlvcml0eSBvdmVyIGRlYnVnIGxldmVsIHNldCBpbgorICAvLyBsaWJjLmRlYnVnLm1hbGxvYyBzeXN0ZW0gcHJvcGVydHkuCisgIGlmIChfX3N5c3RlbV9wcm9wZXJ0eV9nZXQoInJvLmtlcm5lbC5xZW11IiwgZW52KSAmJiBhdG9pKGVudikpIHsKKyAgICBxZW11X3J1bm5pbmcgPSAxOworICAgIGlmIChfX3N5c3RlbV9wcm9wZXJ0eV9nZXQoInJvLmtlcm5lbC5tZW1jaGVjayIsIG1lbWNoZWNrX3RyYWNpbmcpKSB7CisgICAgICBpZiAobWVtY2hlY2tfdHJhY2luZ1swXSAhPSAnMCcpIHsKKyAgICAgICAgLy8gRW11bGF0b3IgaGFzIHN0YXJ0ZWQgd2l0aCBtZW1vcnkgdHJhY2luZyBlbmFibGVkLiBFbmZvcmNlIGl0LgorICAgICAgICBnX21hbGxvY19kZWJ1Z19sZXZlbCA9IDIwOworICAgICAgICBtZW1jaGVja19lbmFibGVkID0gMTsKKyAgICAgIH0KICAgICB9CisgIH0KIAotICAgIC8qIElmIGRlYnVnIGxldmVsIGhhcyBub3QgYmVlbiBzZXQgYnkgbWVtY2hlY2sgb3B0aW9uIGluIHRoZSBlbXVsYXRvciwKLSAgICAgKiBsZXRzIGdyYWIgaXQgZnJvbSBsaWJjLmRlYnVnLm1hbGxvYyBzeXN0ZW0gcHJvcGVydHkuICovCi0gICAgaWYgKGdfbWFsbG9jX2RlYnVnX2xldmVsID09IDAgJiYgX19zeXN0ZW1fcHJvcGVydHlfZ2V0KCJsaWJjLmRlYnVnLm1hbGxvYyIsIGVudikpIHsKLSAgICAgICAgZ19tYWxsb2NfZGVidWdfbGV2ZWwgPSBhdG9pKGVudik7CisgIC8vIElmIGRlYnVnIGxldmVsIGhhcyBub3QgYmVlbiBzZXQgYnkgbWVtY2hlY2sgb3B0aW9uIGluIHRoZSBlbXVsYXRvciwKKyAgLy8gbGV0cyBncmFiIGl0IGZyb20gbGliYy5kZWJ1Zy5tYWxsb2Mgc3lzdGVtIHByb3BlcnR5LgorICBpZiAoZ19tYWxsb2NfZGVidWdfbGV2ZWwgPT0gMCAmJiBfX3N5c3RlbV9wcm9wZXJ0eV9nZXQoImxpYmMuZGVidWcubWFsbG9jIiwgZW52KSkgeworICAgIGdfbWFsbG9jX2RlYnVnX2xldmVsID0gYXRvaShlbnYpOworICB9CisKKyAgLy8gRGVidWcgbGV2ZWwgMCBtZWFucyB0aGF0IHdlIHNob3VsZCB1c2UgZGVmYXVsdCBhbGxvY2F0aW9uIHJvdXRpbmVzLgorICBpZiAoZ19tYWxsb2NfZGVidWdfbGV2ZWwgPT0gMCkgeworICAgIHJldHVybjsKKyAgfQorCisgIC8vIElmIGxpYmMuZGVidWcubWFsbG9jLnByb2dyYW0gaXMgc2V0IGFuZCBpcyBub3QgYSBzdWJzdHJpbmcgb2YgcHJvZ25hbWUsCisgIC8vIHRoZW4gZXhpdC4KKyAgaWYgKF9fc3lzdGVtX3Byb3BlcnR5X2dldCgibGliYy5kZWJ1Zy5tYWxsb2MucHJvZ3JhbSIsIGRlYnVnX3Byb2dyYW0pKSB7CisgICAgaWYgKCFzdHJzdHIoZ2V0cHJvZ25hbWUoKSwgZGVidWdfcHJvZ3JhbSkpIHsKKyAgICAgIHJldHVybjsKICAgICB9CisgIH0KIAotICAgIC8qIERlYnVnIGxldmVsIDAgbWVhbnMgdGhhdCB3ZSBzaG91bGQgdXNlIGRlZmF1bHQgYWxsb2NhdGlvbiByb3V0aW5lcy4gKi8KLSAgICBpZiAoZ19tYWxsb2NfZGVidWdfbGV2ZWwgPT0gMCkgeworICAvLyBta3NoIGlzIHdheSB0b28gbGVha3kuIGh0dHA6Ly9iLzcyOTEyODcuCisgIGlmIChnX21hbGxvY19kZWJ1Z19sZXZlbCA+PSAxMCkgeworICAgIGlmIChzdHJjbXAoZ2V0cHJvZ25hbWUoKSwgInNoIikgPT0gMCB8fCBzdHJjbXAoZ2V0cHJvZ25hbWUoKSwgIi9zeXN0ZW0vYmluL3NoIikgPT0gMCkgeworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQorCisgIC8vIENob29zZSB0aGUgYXBwcm9wcmlhdGUgLnNvIGZvciB0aGUgcmVxdWVzdGVkIGRlYnVnIGxldmVsLgorICBzd2l0Y2ggKGdfbWFsbG9jX2RlYnVnX2xldmVsKSB7CisgICAgY2FzZSAxOgorICAgIGNhc2UgNToKKyAgICBjYXNlIDEwOgorICAgICAgc29fbmFtZSA9ICJsaWJjX21hbGxvY19kZWJ1Z19sZWFrLnNvIjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgMjA6CisgICAgICAvLyBRdWljayBjaGVjazogZGVidWcgbGV2ZWwgMjAgY2FuIG9ubHkgYmUgaGFuZGxlZCBpbiBlbXVsYXRvci4KKyAgICAgIGlmICghcWVtdV9ydW5uaW5nKSB7CisgICAgICAgIGVycm9yX2xvZygiJXM6IERlYnVnIGxldmVsICVkIGNhbiBvbmx5IGJlIHNldCBpbiBlbXVsYXRvclxuIiwKKyAgICAgICAgICAgICAgICAgIGdldHByb2duYW1lKCksIGdfbWFsbG9jX2RlYnVnX2xldmVsKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8qIElmIGxpYmMuZGVidWcubWFsbG9jLnByb2dyYW0gaXMgc2V0IGFuZCBpcyBub3QgYSBzdWJzdHJpbmcgb2YgcHJvZ25hbWUsCi0gICAgICogdGhlbiBleGl0LgotICAgICAqLwotICAgIGlmIChfX3N5c3RlbV9wcm9wZXJ0eV9nZXQoImxpYmMuZGVidWcubWFsbG9jLnByb2dyYW0iLCBkZWJ1Z19wcm9ncmFtKSkgewotICAgICAgICBpZiAoIXN0cnN0cihfX3Byb2duYW1lLCBkZWJ1Z19wcm9ncmFtKSkgewotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gbWtzaCBpcyB3YXkgdG9vIGxlYWt5LiBodHRwOi8vYi83MjkxMjg3LgotICAgIGlmIChnX21hbGxvY19kZWJ1Z19sZXZlbCA+PSAxMCkgewotICAgICAgICBpZiAoc3RyY21wKF9fcHJvZ25hbWUsICJzaCIpID09IDAgfHwgc3RyY21wKF9fcHJvZ25hbWUsICIvc3lzdGVtL2Jpbi9zaCIpID09IDApIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENob29zZSB0aGUgYXBwcm9wcmlhdGUgLnNvIGZvciB0aGUgcmVxdWVzdGVkIGRlYnVnIGxldmVsLgotICAgIHN3aXRjaCAoZ19tYWxsb2NfZGVidWdfbGV2ZWwpIHsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICBjYXNlIDU6Ci0gICAgICAgIGNhc2UgMTA6IHsKLSAgICAgICAgICAgIGNoYXIgZGVidWdfYmFja2xvZ1tQUk9QX1ZBTFVFX01BWF07Ci0gICAgICAgICAgICBpZiAoX19zeXN0ZW1fcHJvcGVydHlfZ2V0KCJsaWJjLmRlYnVnLm1hbGxvYy5iYWNrbG9nIiwgZGVidWdfYmFja2xvZykpIHsKLSAgICAgICAgICAgICAgICBnX21hbGxvY19kZWJ1Z19iYWNrbG9nID0gYXRvaShkZWJ1Z19iYWNrbG9nKTsKLSAgICAgICAgICAgICAgICBpbmZvX2xvZygiJXM6IHNldHRpbmcgYmFja2xvZyBsZW5ndGggdG8gJWRcbiIsIF9fcHJvZ25hbWUsIGdfbWFsbG9jX2RlYnVnX2JhY2tsb2cpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGdfbWFsbG9jX2RlYnVnX2JhY2tsb2cgPT0gMCkgewotICAgICAgICAgICAgICAgIGdfbWFsbG9jX2RlYnVnX2JhY2tsb2cgPSBCQUNLTE9HX0RFRkFVTFRfTEVOOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc29fbmFtZSA9ICJsaWJjX21hbGxvY19kZWJ1Z19sZWFrLnNvIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2UgMjA6Ci0gICAgICAgICAgICAvLyBRdWljayBjaGVjazogZGVidWcgbGV2ZWwgMjAgY2FuIG9ubHkgYmUgaGFuZGxlZCBpbiBlbXVsYXRvci4KLSAgICAgICAgICAgIGlmICghcWVtdV9ydW5uaW5nKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JfbG9nKCIlczogRGVidWcgbGV2ZWwgJWQgY2FuIG9ubHkgYmUgc2V0IGluIGVtdWxhdG9yXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfX3Byb2duYW1lLCBnX21hbGxvY19kZWJ1Z19sZXZlbCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbWVtb3J5IGNoZWNraW5nIGhhcyBiZWVuIGVuYWJsZWQgaW4gZW11bGF0b3IuCi0gICAgICAgICAgICBpZiAoIW1lbWNoZWNrX2VuYWJsZWQpIHsKLSAgICAgICAgICAgICAgICBlcnJvcl9sb2coIiVzOiBNZW1vcnkgY2hlY2tpbmcgaXMgbm90IGVuYWJsZWQgaW4gdGhlIGVtdWxhdG9yXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfX3Byb2duYW1lKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzb19uYW1lID0gImxpYmNfbWFsbG9jX2RlYnVnX3FlbXUuc28iOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBlcnJvcl9sb2coIiVzOiBEZWJ1ZyBsZXZlbCAlZCBpcyB1bmtub3duXG4iLCBfX3Byb2duYW1lLCBnX21hbGxvY19kZWJ1Z19sZXZlbCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gTG9hZCAuc28gdGhhdCBpbXBsZW1lbnRzIHRoZSByZXF1aXJlZCBtYWxsb2MgZGVidWdnaW5nIGZ1bmN0aW9uYWxpdHkuCi0gICAgdm9pZCogbWFsbG9jX2ltcGxfaGFuZGxlID0gZGxvcGVuKHNvX25hbWUsIFJUTERfTEFaWSk7Ci0gICAgaWYgKG1hbGxvY19pbXBsX2hhbmRsZSA9PSBOVUxMKSB7Ci0gICAgICAgIGVycm9yX2xvZygiJXM6IE1pc3NpbmcgbW9kdWxlICVzIHJlcXVpcmVkIGZvciBtYWxsb2MgZGVidWcgbGV2ZWwgJWQ6ICVzIiwKLSAgICAgICAgICAgICAgICAgIF9fcHJvZ25hbWUsIHNvX25hbWUsIGdfbWFsbG9jX2RlYnVnX2xldmVsLCBkbGVycm9yKCkpOworICAgICAgfQorICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgbWVtb3J5IGNoZWNraW5nIGhhcyBiZWVuIGVuYWJsZWQgaW4gZW11bGF0b3IuCisgICAgICBpZiAoIW1lbWNoZWNrX2VuYWJsZWQpIHsKKyAgICAgICAgZXJyb3JfbG9nKCIlczogTWVtb3J5IGNoZWNraW5nIGlzIG5vdCBlbmFibGVkIGluIHRoZSBlbXVsYXRvclxuIiwgZ2V0cHJvZ25hbWUoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHNvX25hbWUgPSAibGliY19tYWxsb2NfZGVidWdfcWVtdS5zbyI7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgZXJyb3JfbG9nKCIlczogRGVidWcgbGV2ZWwgJWQgaXMgdW5rbm93blxuIiwgZ2V0cHJvZ25hbWUoKSwgZ19tYWxsb2NfZGVidWdfbGV2ZWwpOworICAgICAgcmV0dXJuOworICB9CisKKyAgLy8gTG9hZCAuc28gdGhhdCBpbXBsZW1lbnRzIHRoZSByZXF1aXJlZCBtYWxsb2MgZGVidWdnaW5nIGZ1bmN0aW9uYWxpdHkuCisgIHZvaWQqIG1hbGxvY19pbXBsX2hhbmRsZSA9IGRsb3Blbihzb19uYW1lLCBSVExEX0xBWlkpOworICBpZiAobWFsbG9jX2ltcGxfaGFuZGxlID09IE5VTEwpIHsKKyAgICBlcnJvcl9sb2coIiVzOiBNaXNzaW5nIG1vZHVsZSAlcyByZXF1aXJlZCBmb3IgbWFsbG9jIGRlYnVnIGxldmVsICVkOiAlcyIsCisgICAgICAgICAgICAgIGdldHByb2duYW1lKCksIHNvX25hbWUsIGdfbWFsbG9jX2RlYnVnX2xldmVsLCBkbGVycm9yKCkpOworICAgIHJldHVybjsKKyAgfQorCisgIC8vIEluaXRpYWxpemUgbWFsbG9jIGRlYnVnZ2luZyBpbiB0aGUgbG9hZGVkIG1vZHVsZS4KKyAgbWFsbG9jX2RlYnVnX2luaXRpYWxpemUgPSByZWludGVycHJldF9jYXN0PE1hbGxvY0RlYnVnSW5pdD4oZGxzeW0obWFsbG9jX2ltcGxfaGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFsbG9jX2RlYnVnX2luaXRpYWxpemUiKSk7CisgIGlmIChtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZSA9PSBOVUxMKSB7CisgICAgZXJyb3JfbG9nKCIlczogSW5pdGlhbGl6YXRpb24gcm91dGluZSBpcyBub3QgZm91bmQgaW4gJXNcbiIsIGdldHByb2duYW1lKCksIHNvX25hbWUpOworICAgIGRsY2xvc2UobWFsbG9jX2ltcGxfaGFuZGxlKTsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKG1hbGxvY19kZWJ1Z19pbml0aWFsaXplKCZnX2hhc2hfdGFibGUpID09IC0xKSB7CisgICAgZGxjbG9zZShtYWxsb2NfaW1wbF9oYW5kbGUpOworICAgIHJldHVybjsKKyAgfQorCisgIGlmIChnX21hbGxvY19kZWJ1Z19sZXZlbCA9PSAyMCkgeworICAgIC8vIEZvciBtZW1vcnkgY2hlY2tlciB3ZSBuZWVkIHRvIGRvIGV4dHJhIGluaXRpYWxpemF0aW9uLgorICAgIHR5cGVkZWYgaW50ICgqTWVtQ2hlY2tJbml0KShpbnQsIGNvbnN0IGNoYXIqKTsKKyAgICBNZW1DaGVja0luaXQgbWVtY2hlY2tfaW5pdGlhbGl6ZSA9CisgICAgICByZWludGVycHJldF9jYXN0PE1lbUNoZWNrSW5pdD4oZGxzeW0obWFsbG9jX2ltcGxfaGFuZGxlLCAibWVtY2hlY2tfaW5pdGlhbGl6ZSIpKTsKKyAgICBpZiAobWVtY2hlY2tfaW5pdGlhbGl6ZSA9PSBOVUxMKSB7CisgICAgICBlcnJvcl9sb2coIiVzOiBtZW1jaGVja19pbml0aWFsaXplIHJvdXRpbmUgaXMgbm90IGZvdW5kIGluICVzXG4iLAorICAgICAgICAgICAgICAgIGdldHByb2duYW1lKCksIHNvX25hbWUpOworICAgICAgZGxjbG9zZShtYWxsb2NfaW1wbF9oYW5kbGUpOworICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEluaXRpYWxpemUgbWFsbG9jIGRlYnVnZ2luZyBpbiB0aGUgbG9hZGVkIG1vZHVsZS4KLSAgICBtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8TWFsbG9jRGVidWdJbml0PihkbHN5bShtYWxsb2NfaW1wbF9oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hbGxvY19kZWJ1Z19pbml0aWFsaXplIikpOwotICAgIGlmIChtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZSA9PSBOVUxMKSB7Ci0gICAgICAgIGVycm9yX2xvZygiJXM6IEluaXRpYWxpemF0aW9uIHJvdXRpbmUgaXMgbm90IGZvdW5kIGluICVzXG4iLAotICAgICAgICAgICAgICAgICAgX19wcm9nbmFtZSwgc29fbmFtZSk7Ci0gICAgICAgIGRsY2xvc2UobWFsbG9jX2ltcGxfaGFuZGxlKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChtZW1jaGVja19pbml0aWFsaXplKE1BTExPQ19BTElHTk1FTlQsIG1lbWNoZWNrX3RyYWNpbmcpKSB7CisgICAgICBkbGNsb3NlKG1hbGxvY19pbXBsX2hhbmRsZSk7CisgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZSgpID09IC0xKSB7Ci0gICAgICAgIGRsY2xvc2UobWFsbG9jX2ltcGxfaGFuZGxlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgfQogCi0gICAgaWYgKGdfbWFsbG9jX2RlYnVnX2xldmVsID09IDIwKSB7Ci0gICAgICAgIC8vIEZvciBtZW1vcnkgY2hlY2tlciB3ZSBuZWVkIHRvIGRvIGV4dHJhIGluaXRpYWxpemF0aW9uLgotICAgICAgICB0eXBlZGVmIGludCAoKk1lbUNoZWNrSW5pdCkoaW50LCBjb25zdCBjaGFyKik7Ci0gICAgICAgIE1lbUNoZWNrSW5pdCBtZW1jaGVja19pbml0aWFsaXplID0KLSAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8TWVtQ2hlY2tJbml0PihkbHN5bShtYWxsb2NfaW1wbF9oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lbWNoZWNrX2luaXRpYWxpemUiKSk7Ci0gICAgICAgIGlmIChtZW1jaGVja19pbml0aWFsaXplID09IE5VTEwpIHsKLSAgICAgICAgICAgIGVycm9yX2xvZygiJXM6IG1lbWNoZWNrX2luaXRpYWxpemUgcm91dGluZSBpcyBub3QgZm91bmQgaW4gJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgX19wcm9nbmFtZSwgc29fbmFtZSk7Ci0gICAgICAgICAgICBkbGNsb3NlKG1hbGxvY19pbXBsX2hhbmRsZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgLy8gTm8gbmVlZCB0byBpbml0IHRoZSBkaXNwYXRjaCB0YWJsZSBiZWNhdXNlIHdlIGNhbiBvbmx5IGdldAorICAvLyBoZXJlIGlmIGRlYnVnIGxldmVsIGlzIDEsIDUsIDEwLCBvciAyMC4KKyAgc3RhdGljIE1hbGxvY0RlYnVnIG1hbGxvY19kaXNwYXRjaF90YWJsZSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDMyKSkpOworICBzd2l0Y2ggKGdfbWFsbG9jX2RlYnVnX2xldmVsKSB7CisgICAgY2FzZSAxOgorICAgICAgSW5pdE1hbGxvYyhtYWxsb2NfaW1wbF9oYW5kbGUsICZtYWxsb2NfZGlzcGF0Y2hfdGFibGUsICJsZWFrIik7CisgICAgICBicmVhazsKKyAgICBjYXNlIDU6CisgICAgICBJbml0TWFsbG9jKG1hbGxvY19pbXBsX2hhbmRsZSwgJm1hbGxvY19kaXNwYXRjaF90YWJsZSwgImZpbGwiKTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgMTA6CisgICAgICBJbml0TWFsbG9jKG1hbGxvY19pbXBsX2hhbmRsZSwgJm1hbGxvY19kaXNwYXRjaF90YWJsZSwgImNoayIpOworICAgICAgYnJlYWs7CisgICAgY2FzZSAyMDoKKyAgICAgIEluaXRNYWxsb2MobWFsbG9jX2ltcGxfaGFuZGxlLCAmbWFsbG9jX2Rpc3BhdGNoX3RhYmxlLCAicWVtdV9pbnN0cnVtZW50ZWQiKTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgfQogCi0gICAgICAgIGlmIChtZW1jaGVja19pbml0aWFsaXplKE1BTExPQ19BTElHTk1FTlQsIG1lbWNoZWNrX3RyYWNpbmcpKSB7Ci0gICAgICAgICAgICBkbGNsb3NlKG1hbGxvY19pbXBsX2hhbmRsZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLQotICAgIC8vIEluaXRpYWxpemUgbWFsbG9jIGRpc3BhdGNoIHRhYmxlIHdpdGggYXBwcm9wcmlhdGUgcm91dGluZXMuCi0gICAgc3dpdGNoIChnX21hbGxvY19kZWJ1Z19sZXZlbCkgewotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBJbml0TWFsbG9jKG1hbGxvY19pbXBsX2hhbmRsZSwgJmdfbWFsbG9jX2Rpc3BhdGNoX3RhYmxlLCAibGVhayIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgNToKLSAgICAgICAgICAgIEluaXRNYWxsb2MobWFsbG9jX2ltcGxfaGFuZGxlLCAmZ19tYWxsb2NfZGlzcGF0Y2hfdGFibGUsICJmaWxsIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxMDoKLSAgICAgICAgICAgIEluaXRNYWxsb2MobWFsbG9jX2ltcGxfaGFuZGxlLCAmZ19tYWxsb2NfZGlzcGF0Y2hfdGFibGUsICJjaGsiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDIwOgotICAgICAgICAgICAgSW5pdE1hbGxvYyhtYWxsb2NfaW1wbF9oYW5kbGUsICZnX21hbGxvY19kaXNwYXRjaF90YWJsZSwgInFlbXVfaW5zdHJ1bWVudGVkIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIC8vIE1ha2Ugc3VyZSBkaXNwYXRjaCB0YWJsZSBpcyBpbml0aWFsaXplZAotICAgIGlmICgoZ19tYWxsb2NfZGlzcGF0Y2hfdGFibGUubWFsbG9jID09IE5VTEwpIHx8Ci0gICAgICAgIChnX21hbGxvY19kaXNwYXRjaF90YWJsZS5mcmVlID09IE5VTEwpIHx8Ci0gICAgICAgIChnX21hbGxvY19kaXNwYXRjaF90YWJsZS5jYWxsb2MgPT0gTlVMTCkgfHwKLSAgICAgICAgKGdfbWFsbG9jX2Rpc3BhdGNoX3RhYmxlLnJlYWxsb2MgPT0gTlVMTCkgfHwKLSAgICAgICAgKGdfbWFsbG9jX2Rpc3BhdGNoX3RhYmxlLm1lbWFsaWduID09IE5VTEwpIHx8Ci0gICAgICAgIChnX21hbGxvY19kaXNwYXRjaF90YWJsZS5tYWxsb2NfdXNhYmxlX3NpemUgPT0gTlVMTCkpIHsKLSAgICAgICAgZXJyb3JfbG9nKCIlczogc29tZSBzeW1ib2xzIGZvciBsaWJjLmRlYnVnLm1hbGxvYyBsZXZlbCAlZCB3ZXJlIG5vdCBmb3VuZCAoc2VlIGFib3ZlKSIsCi0gICAgICAgICAgICAgICAgICBfX3Byb2duYW1lLCBnX21hbGxvY19kZWJ1Z19sZXZlbCk7Ci0gICAgICAgIGRsY2xvc2UobWFsbG9jX2ltcGxfaGFuZGxlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBfX2xpYmNfbWFsbG9jX2Rpc3BhdGNoID0gJmdfbWFsbG9jX2Rpc3BhdGNoX3RhYmxlOwotICAgICAgICBsaWJjX21hbGxvY19pbXBsX2hhbmRsZSA9IG1hbGxvY19pbXBsX2hhbmRsZTsKLSAgICB9CisgIC8vIE1ha2Ugc3VyZSBkaXNwYXRjaCB0YWJsZSBpcyBpbml0aWFsaXplZAorICBpZiAoKG1hbGxvY19kaXNwYXRjaF90YWJsZS5jYWxsb2MgPT0gTlVMTCkgfHwKKyAgICAgIChtYWxsb2NfZGlzcGF0Y2hfdGFibGUuZnJlZSA9PSBOVUxMKSB8fAorICAgICAgKG1hbGxvY19kaXNwYXRjaF90YWJsZS5tYWxsaW5mbyA9PSBOVUxMKSB8fAorICAgICAgKG1hbGxvY19kaXNwYXRjaF90YWJsZS5tYWxsb2MgPT0gTlVMTCkgfHwKKyAgICAgIChtYWxsb2NfZGlzcGF0Y2hfdGFibGUubWFsbG9jX3VzYWJsZV9zaXplID09IE5VTEwpIHx8CisgICAgICAobWFsbG9jX2Rpc3BhdGNoX3RhYmxlLm1lbWFsaWduID09IE5VTEwpIHx8CisgICAgICAobWFsbG9jX2Rpc3BhdGNoX3RhYmxlLnBvc2l4X21lbWFsaWduID09IE5VTEwpIHx8CisjaWYgZGVmaW5lZChIQVZFX0RFUFJFQ0FURURfTUFMTE9DX0ZVTkNTKQorICAgICAgKG1hbGxvY19kaXNwYXRjaF90YWJsZS5wdmFsbG9jID09IE5VTEwpIHx8CisjZW5kaWYKKyAgICAgIChtYWxsb2NfZGlzcGF0Y2hfdGFibGUucmVhbGxvYyA9PSBOVUxMKQorI2lmIGRlZmluZWQoSEFWRV9ERVBSRUNBVEVEX01BTExPQ19GVU5DUykKKyAgICAgIHx8IChtYWxsb2NfZGlzcGF0Y2hfdGFibGUudmFsbG9jID09IE5VTEwpCisjZW5kaWYKKyAgICAgICkgeworICAgIGVycm9yX2xvZygiJXM6IHNvbWUgc3ltYm9scyBmb3IgbGliYy5kZWJ1Zy5tYWxsb2MgbGV2ZWwgJWQgd2VyZSBub3QgZm91bmQgKHNlZSBhYm92ZSkiLAorICAgICAgICAgICAgICBnZXRwcm9nbmFtZSgpLCBnX21hbGxvY19kZWJ1Z19sZXZlbCk7CisgICAgZGxjbG9zZShtYWxsb2NfaW1wbF9oYW5kbGUpOworICB9IGVsc2UgeworICAgIF9fbGliY19tYWxsb2NfZGlzcGF0Y2ggPSAmbWFsbG9jX2Rpc3BhdGNoX3RhYmxlOworICAgIGxpYmNfbWFsbG9jX2ltcGxfaGFuZGxlID0gbWFsbG9jX2ltcGxfaGFuZGxlOworICB9CiB9CiAKIHN0YXRpYyB2b2lkIG1hbGxvY19maW5pX2ltcGwoKSB7Ci0gICAgLy8gT3VyIEJTRCBzdGRpbyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGNsb3NlIHRoZSBzdGFuZGFyZCBzdHJlYW1zLCBpdCBvbmx5IGZsdXNoZXMgdGhlbS4KLSAgICAvLyBBbmQgaXQgZG9lc24ndCBkbyB0aGF0IHVudGlsIGl0cyBhdGV4aXQgaGFuZGxlciAoX2NsZWFudXApIGlzIHJ1biwgYW5kIHdlIHJ1biBmaXJzdCEKLSAgICAvLyBJdCdzIGdyZWF0IHRoYXQgb3RoZXIgdW5jbG9zZWQgRklMRSpzIHNob3cgdXAgYXMgbWFsbG9jIGxlYWtzLCBidXQgd2UgbmVlZCB0byBtYW51YWxseQotICAgIC8vIGNsZWFuIHVwIHRoZSBzdGFuZGFyZCBzdHJlYW1zIG91cnNlbHZlcy4KLSAgICBmY2xvc2Uoc3RkaW4pOwotICAgIGZjbG9zZShzdGRvdXQpOwotICAgIGZjbG9zZShzdGRlcnIpOworICAvLyBPdXIgQlNEIHN0ZGlvIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY2xvc2UgdGhlIHN0YW5kYXJkIHN0cmVhbXMsIGl0IG9ubHkgZmx1c2hlcyB0aGVtLgorICAvLyBBbmQgaXQgZG9lc24ndCBkbyB0aGF0IHVudGlsIGl0cyBhdGV4aXQgaGFuZGxlciBpcyBydW4sIGFuZCB3ZSBydW4gZmlyc3QhCisgIC8vIEl0J3MgZ3JlYXQgdGhhdCBvdGhlciB1bmNsb3NlZCBGSUxFKnMgc2hvdyB1cCBhcyBtYWxsb2MgbGVha3MsIGJ1dCB3ZSBuZWVkIHRvIG1hbnVhbGx5CisgIC8vIGNsZWFuIHVwIHRoZSBzdGFuZGFyZCBzdHJlYW1zIG91cnNlbHZlcy4KKyAgZmNsb3NlKHN0ZGluKTsKKyAgZmNsb3NlKHN0ZG91dCk7CisgIGZjbG9zZShzdGRlcnIpOwogCi0gICAgaWYgKGxpYmNfbWFsbG9jX2ltcGxfaGFuZGxlICE9IE5VTEwpIHsKLSAgICAgICAgTWFsbG9jRGVidWdGaW5pIG1hbGxvY19kZWJ1Z19maW5hbGl6ZSA9Ci0gICAgICAgICAgICByZWludGVycHJldF9jYXN0PE1hbGxvY0RlYnVnRmluaT4oZGxzeW0obGliY19tYWxsb2NfaW1wbF9oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hbGxvY19kZWJ1Z19maW5hbGl6ZSIpKTsKLSAgICAgICAgaWYgKG1hbGxvY19kZWJ1Z19maW5hbGl6ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBtYWxsb2NfZGVidWdfZmluYWxpemUoKTsKLSAgICAgICAgfQorICBpZiAobGliY19tYWxsb2NfaW1wbF9oYW5kbGUgIT0gTlVMTCkgeworICAgIE1hbGxvY0RlYnVnRmluaSBtYWxsb2NfZGVidWdfZmluYWxpemUgPQorICAgICAgcmVpbnRlcnByZXRfY2FzdDxNYWxsb2NEZWJ1Z0Zpbmk+KGRsc3ltKGxpYmNfbWFsbG9jX2ltcGxfaGFuZGxlLCAibWFsbG9jX2RlYnVnX2ZpbmFsaXplIikpOworICAgIGlmIChtYWxsb2NfZGVidWdfZmluYWxpemUgIT0gTlVMTCkgeworICAgICAgbWFsbG9jX2RlYnVnX2ZpbmFsaXplKGdfbWFsbG9jX2RlYnVnX2xldmVsKTsKICAgICB9CisgIH0KIH0KIAotc3RhdGljIHB0aHJlYWRfb25jZV90ICBtYWxsb2NfaW5pdF9vbmNlX2N0bCA9IFBUSFJFQURfT05DRV9JTklUOwotc3RhdGljIHB0aHJlYWRfb25jZV90ICBtYWxsb2NfZmluaV9vbmNlX2N0bCA9IFBUSFJFQURfT05DRV9JTklUOwotCiAjZW5kaWYgIC8vICFMSUJDX1NUQVRJQwogCi0vKiBJbml0aWFsaXplcyBtZW1vcnkgYWxsb2NhdGlvbiBmcmFtZXdvcmsuCi0gKiBUaGlzIHJvdXRpbmUgaXMgY2FsbGVkIGZyb20gX19saWJjX2luaXQgcm91dGluZXMgaW1wbGVtZW50ZWQKLSAqIGluIGxpYmNfaW5pdF9zdGF0aWMuYyBhbmQgbGliY19pbml0X2R5bmFtaWMuYyBmaWxlcy4KLSAqLworLy8gSW5pdGlhbGl6ZXMgbWVtb3J5IGFsbG9jYXRpb24gZnJhbWV3b3JrLgorLy8gVGhpcyByb3V0aW5lIGlzIGNhbGxlZCBmcm9tIF9fbGliY19pbml0IHJvdXRpbmVzIGltcGxlbWVudGVkCisvLyBpbiBsaWJjX2luaXRfc3RhdGljLmMgYW5kIGxpYmNfaW5pdF9keW5hbWljLmMgZmlsZXMuCiBleHRlcm4gIkMiIF9fTElCQ19ISURERU5fXyB2b2lkIG1hbGxvY19kZWJ1Z19pbml0KCkgewotICAgIC8qIFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBtYWxsb2MgaWZmIHdlIGltcGxlbWVudCBoZXJlIGN1c3RvbQotICAgICAqIG1hbGxvYyByb3V0aW5lcyAoaS5lLiBVU0VfRExfUFJFRklYIGlzIGRlZmluZWQpIGZvciBsaWJjLnNvICovCi0jaWYgZGVmaW5lZChVU0VfRExfUFJFRklYKSAmJiAhZGVmaW5lZChMSUJDX1NUQVRJQykKLSAgICBpZiAocHRocmVhZF9vbmNlKCZtYWxsb2NfaW5pdF9vbmNlX2N0bCwgbWFsbG9jX2luaXRfaW1wbCkpIHsKLSAgICAgICAgZXJyb3JfbG9nKCJVbmFibGUgdG8gaW5pdGlhbGl6ZSBtYWxsb2NfZGVidWcgY29tcG9uZW50LiIpOwotICAgIH0KLSNlbmRpZiAgLy8gVVNFX0RMX1BSRUZJWCAmJiAhTElCQ19TVEFUSUMKKyNpZiAhZGVmaW5lZChMSUJDX1NUQVRJQykKKyAgc3RhdGljIHB0aHJlYWRfb25jZV90IG1hbGxvY19pbml0X29uY2VfY3RsID0gUFRIUkVBRF9PTkNFX0lOSVQ7CisgIGlmIChwdGhyZWFkX29uY2UoJm1hbGxvY19pbml0X29uY2VfY3RsLCBtYWxsb2NfaW5pdF9pbXBsKSkgeworICAgIGVycm9yX2xvZygiVW5hYmxlIHRvIGluaXRpYWxpemUgbWFsbG9jX2RlYnVnIGNvbXBvbmVudC4iKTsKKyAgfQorI2VuZGlmICAvLyAhTElCQ19TVEFUSUMKIH0KIAogZXh0ZXJuICJDIiBfX0xJQkNfSElEREVOX18gdm9pZCBtYWxsb2NfZGVidWdfZmluaSgpIHsKLSAgICAvKiBXZSBuZWVkIHRvIGZpbmFsaXplIG1hbGxvYyBpZmYgd2UgaW1wbGVtZW50IGhlcmUgY3VzdG9tCi0gICAgICogbWFsbG9jIHJvdXRpbmVzIChpLmUuIFVTRV9ETF9QUkVGSVggaXMgZGVmaW5lZCkgZm9yIGxpYmMuc28gKi8KLSNpZiBkZWZpbmVkKFVTRV9ETF9QUkVGSVgpICYmICFkZWZpbmVkKExJQkNfU1RBVElDKQotICAgIGlmIChwdGhyZWFkX29uY2UoJm1hbGxvY19maW5pX29uY2VfY3RsLCBtYWxsb2NfZmluaV9pbXBsKSkgewotICAgICAgICBlcnJvcl9sb2coIlVuYWJsZSB0byBmaW5hbGl6ZSBtYWxsb2NfZGVidWcgY29tcG9uZW50LiIpOwotICAgIH0KLSNlbmRpZiAgLy8gVVNFX0RMX1BSRUZJWCAmJiAhTElCQ19TVEFUSUMKKyNpZiAhZGVmaW5lZChMSUJDX1NUQVRJQykKKyAgc3RhdGljIHB0aHJlYWRfb25jZV90IG1hbGxvY19maW5pX29uY2VfY3RsID0gUFRIUkVBRF9PTkNFX0lOSVQ7CisgIGlmIChwdGhyZWFkX29uY2UoJm1hbGxvY19maW5pX29uY2VfY3RsLCBtYWxsb2NfZmluaV9pbXBsKSkgeworICAgIGVycm9yX2xvZygiVW5hYmxlIHRvIGZpbmFsaXplIG1hbGxvY19kZWJ1ZyBjb21wb25lbnQuIik7CisgIH0KKyNlbmRpZiAgLy8gIUxJQkNfU1RBVElDCiB9CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfY29tbW9uLmggYi9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfY29tbW9uLmgKaW5kZXggYzFjM2M4OS4uZmIyZjAzZCAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2NvbW1vbi5oCisrKyBiL2xpYmMvYmlvbmljL21hbGxvY19kZWJ1Z19jb21tb24uaApAQCAtMzMsOCArMzMsMTEgQEAKICNpZm5kZWYgTUFMTE9DX0RFQlVHX0NPTU1PTl9ICiAjZGVmaW5lIE1BTExPQ19ERUJVR19DT01NT05fSAogCisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCisjaW5jbHVkZSAicHJpdmF0ZS9iaW9uaWNfY29uZmlnLmgiCiAjaW5jbHVkZSAicHJpdmF0ZS9saWJjX2xvZ2dpbmcuaCIKIAogI2RlZmluZSBIQVNIVEFCTEVfU0laRSAgICAgIDE1NDMKQEAgLTQzLDggKzQ2LDYgQEAKICNkZWZpbmUgU0laRV9GTEFHX1pZR09URV9DSElMRCAgKDE8PDMxKQogI2RlZmluZSBTSVpFX0ZMQUdfTUFTSyAgICAgICAgICAoU0laRV9GTEFHX1pZR09URV9DSElMRCkKIAotI2RlZmluZSBNQVhfU0laRV9UICAgICAgICAgICAofihzaXplX3QpMCkKLQogLy8gVGhpcyBtdXN0IG1hdGNoIHRoZSBhbGlnbm1lbnQgdXNlZCBieSB0aGUgbWFsbG9jIGltcGxlbWVudGF0aW9uLgogI2lmbmRlZiBNQUxMT0NfQUxJR05NRU5UCiAjZGVmaW5lIE1BTExPQ19BTElHTk1FTlQgKChzaXplX3QpKDIgKiBzaXplb2Yodm9pZCAqKSkpCkBAIC03Nyw0MCArNzgsNDYgQEAKIH07CiAKIHN0cnVjdCBIYXNoVGFibGUgeworICAgIHB0aHJlYWRfbXV0ZXhfdCBsb2NrOwogICAgIHNpemVfdCBjb3VudDsKICAgICBIYXNoRW50cnkqIHNsb3RzW0hBU0hUQUJMRV9TSVpFXTsKIH07CiAKIC8qIEVudHJ5IGluIG1hbGxvYyBkaXNwYXRjaCB0YWJsZS4gKi8KLXR5cGVkZWYgdm9pZCogKCpNYWxsb2NEZWJ1Z01hbGxvYykoc2l6ZV90KTsKLXR5cGVkZWYgdm9pZCAoKk1hbGxvY0RlYnVnRnJlZSkodm9pZCopOwogdHlwZWRlZiB2b2lkKiAoKk1hbGxvY0RlYnVnQ2FsbG9jKShzaXplX3QsIHNpemVfdCk7Ci10eXBlZGVmIHZvaWQqICgqTWFsbG9jRGVidWdSZWFsbG9jKSh2b2lkKiwgc2l6ZV90KTsKLXR5cGVkZWYgdm9pZCogKCpNYWxsb2NEZWJ1Z01lbWFsaWduKShzaXplX3QsIHNpemVfdCk7Cit0eXBlZGVmIHZvaWQgKCpNYWxsb2NEZWJ1Z0ZyZWUpKHZvaWQqKTsKK3R5cGVkZWYgc3RydWN0IG1hbGxpbmZvICgqTWFsbG9jRGVidWdNYWxsaW5mbykoKTsKK3R5cGVkZWYgdm9pZCogKCpNYWxsb2NEZWJ1Z01hbGxvYykoc2l6ZV90KTsKIHR5cGVkZWYgc2l6ZV90ICgqTWFsbG9jRGVidWdNYWxsb2NVc2FibGVTaXplKShjb25zdCB2b2lkKik7Cit0eXBlZGVmIHZvaWQqICgqTWFsbG9jRGVidWdNZW1hbGlnbikoc2l6ZV90LCBzaXplX3QpOwordHlwZWRlZiBpbnQgKCpNYWxsb2NEZWJ1Z1Bvc2l4TWVtYWxpZ24pKHZvaWQqKiwgc2l6ZV90LCBzaXplX3QpOworI2lmIGRlZmluZWQoSEFWRV9ERVBSRUNBVEVEX01BTExPQ19GVU5DUykKK3R5cGVkZWYgdm9pZCogKCpNYWxsb2NEZWJ1Z1B2YWxsb2MpKHNpemVfdCk7CisjZW5kaWYKK3R5cGVkZWYgdm9pZCogKCpNYWxsb2NEZWJ1Z1JlYWxsb2MpKHZvaWQqLCBzaXplX3QpOworI2lmIGRlZmluZWQoSEFWRV9ERVBSRUNBVEVEX01BTExPQ19GVU5DUykKK3R5cGVkZWYgdm9pZCogKCpNYWxsb2NEZWJ1Z1ZhbGxvYykoc2l6ZV90KTsKKyNlbmRpZgorCiBzdHJ1Y3QgTWFsbG9jRGVidWcgewotICBNYWxsb2NEZWJ1Z01hbGxvYyBtYWxsb2M7Ci0gIE1hbGxvY0RlYnVnRnJlZSBmcmVlOwogICBNYWxsb2NEZWJ1Z0NhbGxvYyBjYWxsb2M7Ci0gIE1hbGxvY0RlYnVnUmVhbGxvYyByZWFsbG9jOwotICBNYWxsb2NEZWJ1Z01lbWFsaWduIG1lbWFsaWduOworICBNYWxsb2NEZWJ1Z0ZyZWUgZnJlZTsKKyAgTWFsbG9jRGVidWdNYWxsaW5mbyBtYWxsaW5mbzsKKyAgTWFsbG9jRGVidWdNYWxsb2MgbWFsbG9jOwogICBNYWxsb2NEZWJ1Z01hbGxvY1VzYWJsZVNpemUgbWFsbG9jX3VzYWJsZV9zaXplOworICBNYWxsb2NEZWJ1Z01lbWFsaWduIG1lbWFsaWduOworICBNYWxsb2NEZWJ1Z1Bvc2l4TWVtYWxpZ24gcG9zaXhfbWVtYWxpZ247CisjaWYgZGVmaW5lZChIQVZFX0RFUFJFQ0FURURfTUFMTE9DX0ZVTkNTKQorICBNYWxsb2NEZWJ1Z1B2YWxsb2MgcHZhbGxvYzsKKyNlbmRpZgorICBNYWxsb2NEZWJ1Z1JlYWxsb2MgcmVhbGxvYzsKKyNpZiBkZWZpbmVkKEhBVkVfREVQUkVDQVRFRF9NQUxMT0NfRlVOQ1MpCisgIE1hbGxvY0RlYnVnVmFsbG9jIHZhbGxvYzsKKyNlbmRpZgogfTsKIAotLyogTWFsbG9jIGRlYnVnZ2luZyBpbml0aWFsaXphdGlvbiBhbmQgZmluYWxpemF0aW9uIHJvdXRpbmVzLgotICoKLSAqIFRoZXNlIHJvdXRpbmVzIG11c3QgYmUgaW1wbGVtZW50ZWQgaW4gLnNvIG1vZHVsZXMgdGhhdCBpbXBsZW1lbnQgbWFsbG9jCi0gKiBkZWJ1Z2dpbmcuIFRoZSBhcmUgaXMgY2FsbGVkIG9uY2UgcGVyIHByb2Nlc3MgZnJvbSBtYWxsb2NfaW5pdF9pbXBsIGFuZAotICogbWFsbG9jX2ZpbmlfaW1wbCByZXNwZWN0aXZlbHkuCi0gKgotICogVGhleSBhcmUgaW1wbGVtZW50ZWQgaW4gYmlvbmljL2xpYmMvYmlvbmljL21hbGxvY19kZWJ1Z19jb21tb24uYyB3aGVuIG1hbGxvYwotICogZGVidWdnaW5nIGdldHMgaW5pdGlhbGl6ZWQgZm9yIHRoZSBwcm9jZXNzLgotICoKLSAqIE1hbGxvY0RlYnVnSW5pdCByZXR1cm5zOgotICogICAgMCBvbiBzdWNjZXNzLCAtMSBvbiBmYWlsdXJlLgotICovCi10eXBlZGVmIGludCAoKk1hbGxvY0RlYnVnSW5pdCkoKTsKLXR5cGVkZWYgdm9pZCAoKk1hbGxvY0RlYnVnRmluaSkoKTsKK3R5cGVkZWYgYm9vbCAoKk1hbGxvY0RlYnVnSW5pdCkoSGFzaFRhYmxlKik7Cit0eXBlZGVmIHZvaWQgKCpNYWxsb2NEZWJ1Z0ZpbmkpKGludCk7CiAKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBsb2cgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfbGVhay5jcHAgYi9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfbGVhay5jcHAKaW5kZXggMDM1NzY1Zi4uMzA4ZDQwYiAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2xlYWsuY3BwCisrKyBiL2xpYmMvYmlvbmljL21hbGxvY19kZWJ1Z19sZWFrLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAjaW5jbHVkZSA8c3lzL3NlbGVjdC5oPgogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDxzeXMvc3lzdGVtX3Byb3BlcnRpZXMuaD4KQEAgLTQ4LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJkZWJ1Z19zdGFja3RyYWNlLmgiCiAjaW5jbHVkZSAibWFsbG9jX2RlYnVnX2NvbW1vbi5oIgogCisjaW5jbHVkZSAicHJpdmF0ZS9iaW9uaWNfbWFjcm9zLmgiCiAjaW5jbHVkZSAicHJpdmF0ZS9saWJjX2xvZ2dpbmcuaCIKICNpbmNsdWRlICJwcml2YXRlL1Njb3BlZFB0aHJlYWRNdXRleExvY2tlci5oIgogCkBAIC01OCwxMCArNjAsOCBAQAogI2Vycm9yIE1BTExPQ19MRUFLX0NIRUNLIGlzIG5vdCBkZWZpbmVkLgogI2VuZGlmICAvLyAhTUFMTE9DX0xFQUtfQ0hFQ0sKIAotLy8gR2xvYmFsIHZhcmlhYmxlcyBkZWZpbmVkIGluIG1hbGxvY19kZWJ1Z19jb21tb24uYwogZXh0ZXJuIGludCBnTWFsbG9jTGVha1p5Z290ZUNoaWxkOwotZXh0ZXJuIHB0aHJlYWRfbXV0ZXhfdCBnX2FsbG9jYXRpb25zX211dGV4OwotZXh0ZXJuIEhhc2hUYWJsZSBnX2hhc2hfdGFibGU7CitleHRlcm4gSGFzaFRhYmxlKiBnX2hhc2hfdGFibGU7CiAKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBzdGFjayB0cmFjZSBmdW5jdGlvbnMKQEAgLTEzNyw3ICsxMzcsNyBAQAogICAgICAgICBzaXplIHw9IFNJWkVfRkxBR19aWUdPVEVfQ0hJTEQ7CiAgICAgfQogCi0gICAgSGFzaEVudHJ5KiBlbnRyeSA9IGZpbmRfZW50cnkoJmdfaGFzaF90YWJsZSwgc2xvdCwgYmFja3RyYWNlLCBudW1FbnRyaWVzLCBzaXplKTsKKyAgICBIYXNoRW50cnkqIGVudHJ5ID0gZmluZF9lbnRyeShnX2hhc2hfdGFibGUsIHNsb3QsIGJhY2t0cmFjZSwgbnVtRW50cmllcywgc2l6ZSk7CiAKICAgICBpZiAoZW50cnkgIT0gTlVMTCkgewogICAgICAgICBlbnRyeS0+YWxsb2NhdGlvbnMrKzsKQEAgLTE1MCw1OCArMTUwLDU0IEBACiAgICAgICAgIGVudHJ5LT5hbGxvY2F0aW9ucyA9IDE7CiAgICAgICAgIGVudHJ5LT5zbG90ID0gc2xvdDsKICAgICAgICAgZW50cnktPnByZXYgPSBOVUxMOwotICAgICAgICBlbnRyeS0+bmV4dCA9IGdfaGFzaF90YWJsZS5zbG90c1tzbG90XTsKKyAgICAgICAgZW50cnktPm5leHQgPSBnX2hhc2hfdGFibGUtPnNsb3RzW3Nsb3RdOwogICAgICAgICBlbnRyeS0+bnVtRW50cmllcyA9IG51bUVudHJpZXM7CiAgICAgICAgIGVudHJ5LT5zaXplID0gc2l6ZTsKIAogICAgICAgICBtZW1jcHkoZW50cnktPmJhY2t0cmFjZSwgYmFja3RyYWNlLCBudW1FbnRyaWVzICogc2l6ZW9mKHVpbnRwdHJfdCkpOwogCi0gICAgICAgIGdfaGFzaF90YWJsZS5zbG90c1tzbG90XSA9IGVudHJ5OworICAgICAgICBnX2hhc2hfdGFibGUtPnNsb3RzW3Nsb3RdID0gZW50cnk7CiAKICAgICAgICAgaWYgKGVudHJ5LT5uZXh0ICE9IE5VTEwpIHsKICAgICAgICAgICAgIGVudHJ5LT5uZXh0LT5wcmV2ID0gZW50cnk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyB3ZSBqdXN0IGFkZGVkIGFuIGVudHJ5LCBpbmNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgaGFzaHRhYmxlCi0gICAgICAgIGdfaGFzaF90YWJsZS5jb3VudCsrOworICAgICAgICBnX2hhc2hfdGFibGUtPmNvdW50Kys7CiAgICAgfQogCiAgICAgcmV0dXJuIGVudHJ5OwogfQogCiBzdGF0aWMgaW50IGlzX3ZhbGlkX2VudHJ5KEhhc2hFbnRyeSogZW50cnkpIHsKLSAgICBpZiAoZW50cnkgIT0gTlVMTCkgewotICAgICAgICBpbnQgaTsKLSAgICAgICAgZm9yIChpID0gMCA7IGkgPCBIQVNIVEFCTEVfU0laRSA7IGkrKykgewotICAgICAgICAgICAgSGFzaEVudHJ5KiBlMSA9IGdfaGFzaF90YWJsZS5zbG90c1tpXTsKLQotICAgICAgICAgICAgd2hpbGUgKGUxICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBpZiAoZTEgPT0gZW50cnkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgZTEgPSBlMS0+bmV4dDsKLSAgICAgICAgICAgIH0KKyAgaWYgKGVudHJ5ICE9IE5VTEwpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEhBU0hUQUJMRV9TSVpFOyArK2kpIHsKKyAgICAgIEhhc2hFbnRyeSogZTEgPSBnX2hhc2hfdGFibGUtPnNsb3RzW2ldOworICAgICAgd2hpbGUgKGUxICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGUxID09IGVudHJ5KSB7CisgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KKyAgICAgICAgZTEgPSBlMS0+bmV4dDsKKyAgICAgIH0KICAgICB9Ci0KLSAgICByZXR1cm4gMDsKKyAgfQorICByZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgcmVtb3ZlX2VudHJ5KEhhc2hFbnRyeSogZW50cnkpIHsKLSAgICBIYXNoRW50cnkqIHByZXYgPSBlbnRyeS0+cHJldjsKLSAgICBIYXNoRW50cnkqIG5leHQgPSBlbnRyeS0+bmV4dDsKKyAgSGFzaEVudHJ5KiBwcmV2ID0gZW50cnktPnByZXY7CisgIEhhc2hFbnRyeSogbmV4dCA9IGVudHJ5LT5uZXh0OwogCi0gICAgaWYgKHByZXYgIT0gTlVMTCkgZW50cnktPnByZXYtPm5leHQgPSBuZXh0OwotICAgIGlmIChuZXh0ICE9IE5VTEwpIGVudHJ5LT5uZXh0LT5wcmV2ID0gcHJldjsKKyAgaWYgKHByZXYgIT0gTlVMTCkgZW50cnktPnByZXYtPm5leHQgPSBuZXh0OworICBpZiAobmV4dCAhPSBOVUxMKSBlbnRyeS0+bmV4dC0+cHJldiA9IHByZXY7CiAKLSAgICBpZiAocHJldiA9PSBOVUxMKSB7Ci0gICAgICAgIC8vIHdlIGFyZSB0aGUgaGVhZCBvZiB0aGUgbGlzdC4gc2V0IHRoZSBoZWFkIHRvIGJlIG5leHQKLSAgICAgICAgZ19oYXNoX3RhYmxlLnNsb3RzW2VudHJ5LT5zbG90XSA9IGVudHJ5LT5uZXh0OwotICAgIH0KKyAgaWYgKHByZXYgPT0gTlVMTCkgeworICAgIC8vIHdlIGFyZSB0aGUgaGVhZCBvZiB0aGUgbGlzdC4gc2V0IHRoZSBoZWFkIHRvIGJlIG5leHQKKyAgICBnX2hhc2hfdGFibGUtPnNsb3RzW2VudHJ5LT5zbG90XSA9IGVudHJ5LT5uZXh0OworICB9CiAKLSAgICAvLyB3ZSBqdXN0IHJlbW92ZWQgYW5kIGVudHJ5LCBkZWNyZWFzZSB0aGUgc2l6ZSBvZiB0aGUgaGFzaHRhYmxlCi0gICAgZ19oYXNoX3RhYmxlLmNvdW50LS07CisgIC8vIHdlIGp1c3QgcmVtb3ZlZCBhbmQgZW50cnksIGRlY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBoYXNodGFibGUKKyAgZ19oYXNoX3RhYmxlLT5jb3VudC0tOwogfQogCiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjU2LDYgKzI1MiwzMyBAQAogICAgIHJldHVybiBNYWxsb2MobWFsbG9jX3VzYWJsZV9zaXplKShtZW0pOwogfQogCitleHRlcm4gIkMiIHN0cnVjdCBtYWxsaW5mbyBmaWxsX21hbGxpbmZvKCkgeworICByZXR1cm4gTWFsbG9jKG1hbGxpbmZvKSgpOworfQorCitleHRlcm4gIkMiIGludCBmaWxsX3Bvc2l4X21lbWFsaWduKHZvaWQqKiBtZW1wdHIsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSB7CisgIGlmICghcG93ZXJvZjIoYWxpZ25tZW50KSkgeworICAgIHJldHVybiBFSU5WQUw7CisgIH0KKyAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87CisgICptZW1wdHIgPSBmaWxsX21lbWFsaWduKGFsaWdubWVudCwgc2l6ZSk7CisgIGVycm5vID0gc2F2ZWRfZXJybm87CisgIHJldHVybiAoKm1lbXB0ciAhPSBOVUxMKSA/IDAgOiBFTk9NRU07Cit9CisKK2V4dGVybiAiQyIgdm9pZCogZmlsbF9wdmFsbG9jKHNpemVfdCBieXRlcykgeworICBzaXplX3QgcGFnZXNpemUgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgIHNpemVfdCBzaXplID0gQklPTklDX0FMSUdOKGJ5dGVzLCBwYWdlc2l6ZSk7CisgIGlmIChzaXplIDwgYnl0ZXMpIHsgLy8gT3ZlcmZsb3cKKyAgICByZXR1cm4gTlVMTDsKKyAgfQorICByZXR1cm4gZmlsbF9tZW1hbGlnbihwYWdlc2l6ZSwgc2l6ZSk7Cit9CisKK2V4dGVybiAiQyIgdm9pZCogZmlsbF92YWxsb2Moc2l6ZV90IHNpemUpIHsKKyAgcmV0dXJuIGZpbGxfbWVtYWxpZ24oc3lzY29uZihfU0NfUEFHRVNJWkUpLCBzaXplKTsKK30KKwogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIG1hbGxvYyBsZWFrIGZ1bmN0aW9ucwogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI3MSwxMiArMjk0LDEzIEBACiAKICAgICBzaXplX3Qgc2l6ZSA9IGJ5dGVzICsgc2l6ZW9mKEFsbG9jYXRpb25FbnRyeSk7CiAgICAgaWYgKHNpemUgPCBieXRlcykgeyAvLyBPdmVyZmxvdy4KKyAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAogICAgIHZvaWQqIGJhc2UgPSBNYWxsb2MobWFsbG9jKShzaXplKTsKICAgICBpZiAoYmFzZSAhPSBOVUxMKSB7Ci0gICAgICAgIFNjb3BlZFB0aHJlYWRNdXRleExvY2tlciBsb2NrZXIoJmdfYWxsb2NhdGlvbnNfbXV0ZXgpOworICAgICAgICBTY29wZWRQdGhyZWFkTXV0ZXhMb2NrZXIgbG9ja2VyKCZnX2hhc2hfdGFibGUtPmxvY2spOwogCiAgICAgICAgIHVpbnRwdHJfdCBiYWNrdHJhY2VbQkFDS1RSQUNFX1NJWkVdOwogICAgICAgICBzaXplX3QgbnVtRW50cmllcyA9IGdldF9iYWNrdHJhY2UoYmFja3RyYWNlLCBCQUNLVFJBQ0VfU0laRSk7CkBAIC0yOTQsNDMgKzMxOCw0NiBAQAogfQogCiBleHRlcm4gIkMiIHZvaWQgbGVha19mcmVlKHZvaWQqIG1lbSkgewotICAgIGlmIChtZW0gIT0gTlVMTCkgewotICAgICAgICBTY29wZWRQdGhyZWFkTXV0ZXhMb2NrZXIgbG9ja2VyKCZnX2FsbG9jYXRpb25zX211dGV4KTsKKyAgaWYgKG1lbSA9PSBOVUxMKSB7CisgICAgcmV0dXJuOworICB9CiAKLSAgICAgICAgLy8gY2hlY2sgdGhlIGd1YXJkIHRvIG1ha2Ugc3VyZSBpdCBpcyB2YWxpZAotICAgICAgICBBbGxvY2F0aW9uRW50cnkqIGhlYWRlciA9IHRvX2hlYWRlcihtZW0pOworICBTY29wZWRQdGhyZWFkTXV0ZXhMb2NrZXIgbG9ja2VyKCZnX2hhc2hfdGFibGUtPmxvY2spOwogCi0gICAgICAgIGlmIChoZWFkZXItPmd1YXJkICE9IEdVQVJEKSB7Ci0gICAgICAgICAgICAvLyBjb3VsZCBiZSBhIG1lbWFsaWduZWQgYmxvY2sKLSAgICAgICAgICAgIGlmIChoZWFkZXItPmd1YXJkID09IE1FTUFMSUdOX0dVQVJEKSB7Ci0gICAgICAgICAgICAgICAgLy8gRm9yIG1lbWFsaWduZWQgYmxvY2tzLCBoZWFkZXItPmVudHJ5IHBvaW50cyB0byB0aGUgbWVtb3J5Ci0gICAgICAgICAgICAgICAgLy8gYWxsb2NhdGVkIHRocm91Z2ggbGVha19tYWxsb2MuCi0gICAgICAgICAgICAgICAgaGVhZGVyID0gdG9faGVhZGVyKGhlYWRlci0+ZW50cnkpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgIC8vIGNoZWNrIHRoZSBndWFyZCB0byBtYWtlIHN1cmUgaXQgaXMgdmFsaWQKKyAgQWxsb2NhdGlvbkVudHJ5KiBoZWFkZXIgPSB0b19oZWFkZXIobWVtKTsKIAotICAgICAgICBpZiAoaGVhZGVyLT5ndWFyZCA9PSBHVUFSRCB8fCBpc192YWxpZF9lbnRyeShoZWFkZXItPmVudHJ5KSkgewotICAgICAgICAgICAgLy8gZGVjcmVtZW50IHRoZSBhbGxvY2F0aW9ucwotICAgICAgICAgICAgSGFzaEVudHJ5KiBlbnRyeSA9IGhlYWRlci0+ZW50cnk7Ci0gICAgICAgICAgICBlbnRyeS0+YWxsb2NhdGlvbnMtLTsKLSAgICAgICAgICAgIGlmIChlbnRyeS0+YWxsb2NhdGlvbnMgPD0gMCkgewotICAgICAgICAgICAgICAgIHJlbW92ZV9lbnRyeShlbnRyeSk7Ci0gICAgICAgICAgICAgICAgTWFsbG9jKGZyZWUpKGVudHJ5KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8gbm93IGZyZWUgdGhlIG1lbW9yeSEKLSAgICAgICAgICAgIE1hbGxvYyhmcmVlKShoZWFkZXIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZGVidWdfbG9nKCJXQVJOSU5HIGJhZCBoZWFkZXIgZ3VhcmQ6ICcweCV4JyEgYW5kIGludmFsaWQgZW50cnk6ICVwXG4iLAotICAgICAgICAgICAgICAgICAgICBoZWFkZXItPmd1YXJkLCBoZWFkZXItPmVudHJ5KTsKLSAgICAgICAgfQorICBpZiAoaGVhZGVyLT5ndWFyZCAhPSBHVUFSRCkgeworICAgIC8vIGNvdWxkIGJlIGEgbWVtYWxpZ25lZCBibG9jaworICAgIGlmIChoZWFkZXItPmd1YXJkID09IE1FTUFMSUdOX0dVQVJEKSB7CisgICAgICAvLyBGb3IgbWVtYWxpZ25lZCBibG9ja3MsIGhlYWRlci0+ZW50cnkgcG9pbnRzIHRvIHRoZSBtZW1vcnkKKyAgICAgIC8vIGFsbG9jYXRlZCB0aHJvdWdoIGxlYWtfbWFsbG9jLgorICAgICAgaGVhZGVyID0gdG9faGVhZGVyKGhlYWRlci0+ZW50cnkpOwogICAgIH0KKyAgfQorCisgIGlmIChoZWFkZXItPmd1YXJkID09IEdVQVJEIHx8IGlzX3ZhbGlkX2VudHJ5KGhlYWRlci0+ZW50cnkpKSB7CisgICAgLy8gZGVjcmVtZW50IHRoZSBhbGxvY2F0aW9ucworICAgIEhhc2hFbnRyeSogZW50cnkgPSBoZWFkZXItPmVudHJ5OworICAgIGVudHJ5LT5hbGxvY2F0aW9ucy0tOworICAgIGlmIChlbnRyeS0+YWxsb2NhdGlvbnMgPD0gMCkgeworICAgICAgcmVtb3ZlX2VudHJ5KGVudHJ5KTsKKyAgICAgIE1hbGxvYyhmcmVlKShlbnRyeSk7CisgICAgfQorCisgICAgLy8gbm93IGZyZWUgdGhlIG1lbW9yeSEKKyAgICBNYWxsb2MoZnJlZSkoaGVhZGVyKTsKKyAgfSBlbHNlIHsKKyAgICBkZWJ1Z19sb2coIldBUk5JTkcgYmFkIGhlYWRlciBndWFyZDogJzB4JXgnISBhbmQgaW52YWxpZCBlbnRyeTogJXBcbiIsCisgICAgICAgICAgICAgIGhlYWRlci0+Z3VhcmQsIGhlYWRlci0+ZW50cnkpOworICB9CiB9CiAKIGV4dGVybiAiQyIgdm9pZCogbGVha19jYWxsb2Moc2l6ZV90IG5fZWxlbWVudHMsIHNpemVfdCBlbGVtX3NpemUpIHsKLSAgICAvKiBGYWlsIG9uIG92ZXJmbG93IC0ganVzdCB0byBiZSBzYWZlIGV2ZW4gdGhvdWdoIHRoaXMgY29kZSBydW5zIG9ubHkKLSAgICAgKiB3aXRoaW4gdGhlIGRlYnVnZ2luZyBDIGxpYnJhcnksIG5vdCB0aGUgcHJvZHVjdGlvbiBvbmUgKi8KLSAgICBpZiAobl9lbGVtZW50cyAmJiBNQVhfU0laRV9UIC8gbl9lbGVtZW50cyA8IGVsZW1fc2l6ZSkgeworICAgIC8vIEZhaWwgb24gb3ZlcmZsb3cgLSBqdXN0IHRvIGJlIHNhZmUgZXZlbiB0aG91Z2ggdGhpcyBjb2RlIHJ1bnMgb25seQorICAgIC8vIHdpdGhpbiB0aGUgZGVidWdnaW5nIEMgbGlicmFyeSwgbm90IHRoZSBwcm9kdWN0aW9uIG9uZS4KKyAgICBpZiAobl9lbGVtZW50cyAmJiBTSVpFX01BWCAvIG5fZWxlbWVudHMgPCBlbGVtX3NpemUpIHsKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBzaXplX3Qgc2l6ZSA9IG5fZWxlbWVudHMgKiBlbGVtX3NpemU7CkBAIC0zNTQsNiArMzgxLDcgQEAKICAgICB9IGVsc2UgaWYgKGhlYWRlci0+Z3VhcmQgIT0gR1VBUkQpIHsKICAgICAgICAgZGVidWdfbG9nKCJXQVJOSU5HIGJhZCBoZWFkZXIgZ3VhcmQ6ICcweCV4JyEgYW5kIGludmFsaWQgZW50cnk6ICVwXG4iLAogICAgICAgICAgICAgICAgICAgIGhlYWRlci0+Z3VhcmQsIGhlYWRlci0+ZW50cnkpOworICAgICAgICBlcnJubyA9IEVOT01FTTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCkBAIC0zNjIsOCArMzkwLDggQEAKICAgICAgICAgc2l6ZV90IG9sZFNpemUgPSBoZWFkZXItPmVudHJ5LT5zaXplICYgflNJWkVfRkxBR19NQVNLOwogICAgICAgICBzaXplX3QgY29weVNpemUgPSAob2xkU2l6ZSA8PSBieXRlcykgPyBvbGRTaXplIDogYnl0ZXM7CiAgICAgICAgIG1lbWNweShuZXdNZW0sIG9sZE1lbSwgY29weVNpemUpOworICAgICAgICBsZWFrX2ZyZWUob2xkTWVtKTsKICAgICB9Ci0gICAgbGVha19mcmVlKG9sZE1lbSk7CiAKICAgICByZXR1cm4gbmV3TWVtOwogfQpAQCAtMzc1LDggKzQwMyw4IEBACiAgICAgfQogCiAgICAgLy8gbmVlZCB0byBtYWtlIHN1cmUgaXQncyBhIHBvd2VyIG9mIHR3bwotICAgIGlmIChhbGlnbm1lbnQgJiAoYWxpZ25tZW50LTEpKSB7Ci0gICAgICAgIGFsaWdubWVudCA9IDFMIDw8ICgzMSAtIF9fYnVpbHRpbl9jbHooYWxpZ25tZW50KSk7CisgICAgaWYgKCFwb3dlcm9mMihhbGlnbm1lbnQpKSB7CisgICAgICAgIGFsaWdubWVudCA9IEJJT05JQ19ST1VORF9VUF9QT1dFUl9PRl8yKGFsaWdubWVudCk7CiAgICAgfQogCiAgICAgLy8gaGVyZSwgYWxpZ25tZW50IGlzIGF0IGxlYXN0IE1BTExPQ19BTElHTk1FTlQ8PDEgYnl0ZXMKQEAgLTQzMiwzICs0NjAsMzAgQEAKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CisKK2V4dGVybiAiQyIgc3RydWN0IG1hbGxpbmZvIGxlYWtfbWFsbGluZm8oKSB7CisgIHJldHVybiBNYWxsb2MobWFsbGluZm8pKCk7Cit9CisKK2V4dGVybiAiQyIgaW50IGxlYWtfcG9zaXhfbWVtYWxpZ24odm9pZCoqIG1lbXB0ciwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpIHsKKyAgaWYgKCFwb3dlcm9mMihhbGlnbm1lbnQpKSB7CisgICAgcmV0dXJuIEVJTlZBTDsKKyAgfQorICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsKKyAgKm1lbXB0ciA9IGxlYWtfbWVtYWxpZ24oYWxpZ25tZW50LCBzaXplKTsKKyAgZXJybm8gPSBzYXZlZF9lcnJubzsKKyAgcmV0dXJuICgqbWVtcHRyICE9IE5VTEwpID8gMCA6IEVOT01FTTsKK30KKworZXh0ZXJuICJDIiB2b2lkKiBsZWFrX3B2YWxsb2Moc2l6ZV90IGJ5dGVzKSB7CisgIHNpemVfdCBwYWdlc2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VTSVpFKTsKKyAgc2l6ZV90IHNpemUgPSBCSU9OSUNfQUxJR04oYnl0ZXMsIHBhZ2VzaXplKTsKKyAgaWYgKHNpemUgPCBieXRlcykgeyAvLyBPdmVyZmxvdworICAgIHJldHVybiBOVUxMOworICB9CisgIHJldHVybiBsZWFrX21lbWFsaWduKHBhZ2VzaXplLCBzaXplKTsKK30KKworZXh0ZXJuICJDIiB2b2lkKiBsZWFrX3ZhbGxvYyhzaXplX3Qgc2l6ZSkgeworICByZXR1cm4gbGVha19tZW1hbGlnbihzeXNjb25mKF9TQ19QQUdFU0laRSksIHNpemUpOworfQpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX3FlbXUuY3BwIGIvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX3FlbXUuY3BwCmluZGV4IGFjNjBjM2IuLmZkNTE2MWEgMTAwNjQ0Ci0tLSBhL2xpYmMvYmlvbmljL21hbGxvY19kZWJ1Z19xZW11LmNwcAorKysgYi9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfcWVtdS5jcHAKQEAgLTQ3LDExICs0NywxMyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxzeXMvbW1hbi5oPgorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KICNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgInByaXZhdGUvbGliY19sb2dnaW5nLmgiCiAjaW5jbHVkZSAibWFsbG9jX2RlYnVnX2NvbW1vbi5oIgorI2luY2x1ZGUgInByaXZhdGUvYmlvbmljX21hY3Jvcy5oIgorI2luY2x1ZGUgInByaXZhdGUvbGliY19sb2dnaW5nLmgiCiAKIC8qIFRoaXMgZmlsZSBzaG91bGQgYmUgaW5jbHVkZWQgaW50byB0aGUgYnVpbGQgb25seSB3aGVuCiAgKiBNQUxMT0NfUUVNVV9JTlNUUlVNRU5UIG1hY3JvIGlzIGRlZmluZWQuICovCkBAIC01NzMsMTIgKzU3NSwxNiBAQAogLy8gQVBJIHJvdXRpbmVzCiAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi1leHRlcm4gIkMiIHZvaWQqIHFlbXVfaW5zdHJ1bWVudGVkX21hbGxvYyhzaXplX3QgYnl0ZXMpOwotZXh0ZXJuICJDIiB2b2lkICBxZW11X2luc3RydW1lbnRlZF9mcmVlKHZvaWQqIG1lbSk7Ci1leHRlcm4gIkMiIHZvaWQqIHFlbXVfaW5zdHJ1bWVudGVkX2NhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1fc2l6ZSk7Ci1leHRlcm4gIkMiIHZvaWQqIHFlbXVfaW5zdHJ1bWVudGVkX3JlYWxsb2Modm9pZCogbWVtLCBzaXplX3QgYnl0ZXMpOwotZXh0ZXJuICJDIiB2b2lkKiBxZW11X2luc3RydW1lbnRlZF9tZW1hbGlnbihzaXplX3QgYWxpZ25tZW50LCBzaXplX3QgYnl0ZXMpOwotZXh0ZXJuICJDIiBzaXplX3QgcWVtdV9pbnN0cnVtZW50ZWRfbWFsbG9jX3VzYWJsZV9zaXplKGNvbnN0IHZvaWQqIG1lbSk7CitleHRlcm4gIkMiIHZvaWQqIHFlbXVfaW5zdHJ1bWVudGVkX2NhbGxvYyhzaXplX3QsIHNpemVfdCk7CitleHRlcm4gIkMiIHZvaWQgIHFlbXVfaW5zdHJ1bWVudGVkX2ZyZWUodm9pZCopOworZXh0ZXJuICJDIiBzdHJ1Y3QgbWFsbGluZm8gcWVtdV9pbnN0cnVtZW50ZWRfbWFsbGluZm8oKTsKK2V4dGVybiAiQyIgdm9pZCogcWVtdV9pbnN0cnVtZW50ZWRfbWFsbG9jKHNpemVfdCk7CitleHRlcm4gIkMiIHNpemVfdCBxZW11X2luc3RydW1lbnRlZF9tYWxsb2NfdXNhYmxlX3NpemUoY29uc3Qgdm9pZCopOworZXh0ZXJuICJDIiB2b2lkKiBxZW11X2luc3RydW1lbnRlZF9tZW1hbGlnbihzaXplX3QsIHNpemVfdCk7CitleHRlcm4gIkMiIGludCBxZW11X2luc3RydW1lbnRlZF9wb3NpeF9tZW1hbGlnbih2b2lkKiosIHNpemVfdCwgc2l6ZV90KTsKK2V4dGVybiAiQyIgdm9pZCogcWVtdV9pbnN0cnVtZW50ZWRfcHZhbGxvYyhzaXplX3QpOworZXh0ZXJuICJDIiB2b2lkKiBxZW11X2luc3RydW1lbnRlZF9yZWFsbG9jKHZvaWQqLCBzaXplX3QpOworZXh0ZXJuICJDIiB2b2lkKiBxZW11X2luc3RydW1lbnRlZF92YWxsb2Moc2l6ZV90KTsKIAogLyogSW5pdGlhbGl6ZXMgbWFsbG9jIGRlYnVnZ2luZyBpbnN0cnVtZW50YXRpb24gZm9yIHRoZSBlbXVsYXRvci4KICAqIFRoaXMgcm91dGluZSBpcyBjYWxsZWQgZnJvbSBtYWxsb2NfaW5pdF9pbXBsIHJvdXRpbmUgaW1wbGVtZW50ZWQgaW4KQEAgLTU4OSw3ICs1OTUsNyBAQAogICogUmV0dXJuOgogICogIDAgb24gc3VjY2Vzcywgb3IgLTEgb24gZmFpbHVyZS4KICovCi1leHRlcm4gIkMiIGludCBtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZSgpIHsKK2V4dGVybiAiQyIgYm9vbCBtYWxsb2NfZGVidWdfaW5pdGlhbGl6ZShIYXNoVGFibGUqKSB7CiAgICAgLyogV2Ugd2lsbCBiZSB1c2luZyBlbXVsYXRvcidzIG1hZ2ljIHBhZ2UgdG8gcmVwb3J0IG1lbW9yeSBhbGxvY2F0aW9uCiAgICAgICogYWN0aXZpdGllcy4gSW4gZXNzZW5jZSwgd2hhdCBtYWdpYyBwYWdlIGRvZXMsIGl0IHRyYW5zbGF0ZXMgd3JpdGVzIHRvCiAgICAgICogdGhlIG1lbW9yeSBtYXBwZWQgc3BhY2VzIGludG8gd3JpdGVzIHRvIGFuIEkvTyBwb3J0IHRoYXQgZW11bGF0b3IKQEAgLTU5OCw3ICs2MDQsNyBAQAogICAgIGludCBmZCA9IG9wZW4oIi9kZXYvcWVtdV90cmFjZSIsIE9fUkRXUik7CiAgICAgaWYgKGZkIDwgMCkgewogICAgICAgICBlcnJvcl9sb2coIlVuYWJsZSB0byBvcGVuIC9kZXYvcWVtdV90cmFjZSIpOwotICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgewogICAgICAgICBxdHJhY2UgPSBtbWFwKE5VTEwsIFBBR0VTSVpFLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCBmZCwgMCk7CiAgICAgICAgIGNsb3NlKGZkKTsKQEAgLTYwNiwxNCArNjEyLDEzIEBACiAgICAgICAgIGlmIChxdHJhY2UgPT0gTUFQX0ZBSUxFRCkgewogICAgICAgICAgICAgcXRyYWNlID0gTlVMTDsKICAgICAgICAgICAgIGVycm9yX2xvZygiVW5hYmxlIHRvIG1tYXAgL2Rldi9xZW11X3RyYWNlIik7Ci0gICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CiAKICAgICAvKiBDYWNoZSBwaWQgb2YgdGhlIHByb2Nlc3MgdGhpcyBsaWJyYXJ5IGhhcyBiZWVuIGluaXRpYWxpemVkIGZvci4gKi8KICAgICBtYWxsb2NfcGlkID0gZ2V0cGlkKCk7Ci0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogLyogQ29tcGxldGVzIG1hbGxvYyBkZWJ1Z2dpbmcgaW5zdHJ1bWVudGF0aW9uIGZvciB0aGUgZW11bGF0b3IuCkBAIC02ODEsMTAgKzY4NiwxNyBAQAogICAgIGRlc2MucHJlZml4X3NpemUgPSBERUZBVUxUX1BSRUZJWF9TSVpFOwogICAgIGRlc2MucmVxdWVzdGVkX2J5dGVzID0gYnl0ZXM7CiAgICAgZGVzYy5zdWZmaXhfc2l6ZSA9IERFRkFVTFRfU1VGRklYX1NJWkU7Ci0gICAgZGVzYy5wdHIgPSBNYWxsb2MobWFsbG9jKShtYWxsb2NkZXNjX2FsbG9jX3NpemUoJmRlc2MpKTsKKyAgICBzaXplX3Qgc2l6ZSA9IG1hbGxvY2Rlc2NfYWxsb2Nfc2l6ZSgmZGVzYyk7CisgICAgaWYgKHNpemUgPCBieXRlcykgeyAvLyBPdmVyZmxvdworICAgICAgICBxZW11X2Vycm9yX2xvZygiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PiBtYWxsb2M6IG1hbGxvYyglenUpIG92ZXJmbG93IGNhdXNlZCBmYWlsdXJlLiIsCisgICAgICAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBieXRlcyk7CisgICAgICAgIGVycm5vID0gRU5PTUVNOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZGVzYy5wdHIgPSBNYWxsb2MobWFsbG9jKShzaXplKTsKICAgICBpZiAoZGVzYy5wdHIgPT0gTlVMTCkgewotICAgICAgICBxZW11X2Vycm9yX2xvZygiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PiBtYWxsb2MoJXpkKTogbWFsbG9jKCV1KSBmYWlsZWQuIiwKLSAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBieXRlcywgbWFsbG9jZGVzY19hbGxvY19zaXplKCZkZXNjKSk7CisgICAgICAgIHFlbXVfZXJyb3JfbG9nKCI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IG1hbGxvYyglenUpOiBtYWxsb2MoJXp1KSBmYWlsZWQuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIGJ5dGVzLCBzaXplKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCkBAIC02OTMsMTIgKzcwNSwxMyBAQAogICAgICAgICBsb2dfbWRlc2MoZXJyb3IsICZkZXNjLCAiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PjogbWFsbG9jOiBub3RpZnlfbWFsbG9jIGZhaWxlZCBmb3IgIiwKICAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpKTsKICAgICAgICAgTWFsbG9jKGZyZWUpKGRlc2MucHRyKTsKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0gZWxzZSB7CiAjaWYgVEVTVF9BQ0NFU1NfVklPTEFUSU9OUwogICAgICAgICB0ZXN0X2FjY2Vzc192aW9sYXRpb24oJmRlc2MpOwogI2VuZGlmICAvLyBURVNUX0FDQ0VTU19WSU9MQVRJT05TCi0gICAgICAgIGxvZ19tZGVzYyhpbmZvLCAmZGVzYywgIisrKyA8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IG1hbGxvYyglemQpIC0+ICIsCisgICAgICAgIGxvZ19tZGVzYyhpbmZvLCAmZGVzYywgIisrKyA8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IG1hbGxvYyglenUpIC0+ICIsCiAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgYnl0ZXMpOwogICAgICAgICByZXR1cm4gbWFsbG9jZGVzY191c2VyX3B0cigmZGVzYyk7CiAgICAgfQpAQCAtNzU1LDEzICs3NjgsMTYgQEAKICAgICBpZiAobl9lbGVtZW50cyA9PSAwIHx8IGVsZW1fc2l6ZSA9PSAwKSB7CiAgICAgICAgIC8vIEp1c3QgbGV0IGdvIHplcm8gYnl0ZXMgYWxsb2NhdGlvbi4KICAgICAgICAgcWVtdV9pbmZvX2xvZygiOjo6IDxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IFplcm8gY2FsbG9jIHJlZGlyIHRvIG1hbGxvYyIsCi0gICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSk7CiAgICAgICAgIHJldHVybiBxZW11X2luc3RydW1lbnRlZF9tYWxsb2MoMCk7CiAgICAgfQogCi0gICAgLyogRmFpbCBvbiBvdmVyZmxvdyAtIGp1c3QgdG8gYmUgc2FmZSBldmVuIHRob3VnaCB0aGlzIGNvZGUgcnVucyBvbmx5Ci0gICAgICogd2l0aGluIHRoZSBkZWJ1Z2dpbmcgQyBsaWJyYXJ5LCBub3QgdGhlIHByb2R1Y3Rpb24gb25lICovCi0gICAgaWYgKG5fZWxlbWVudHMgJiYgTUFYX1NJWkVfVCAvIG5fZWxlbWVudHMgPCBlbGVtX3NpemUpIHsKKyAgICAvLyBGYWlsIG9uIG92ZXJmbG93IC0ganVzdCB0byBiZSBzYWZlIGV2ZW4gdGhvdWdoIHRoaXMgY29kZSBydW5zIG9ubHkKKyAgICAvLyB3aXRoaW4gdGhlIGRlYnVnZ2luZyBDIGxpYnJhcnksIG5vdCB0aGUgcHJvZHVjdGlvbiBvbmUuCisgICAgaWYgKG5fZWxlbWVudHMgJiYgU0laRV9NQVggLyBuX2VsZW1lbnRzIDwgZWxlbV9zaXplKSB7CisgICAgICAgIHFlbXVfZXJyb3JfbG9nKCI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IGNhbGxvYzogY2FsbG9jKCV6dSwgJXp1KSBvdmVyZmxvdyBjYXVzZWQgZmFpbHVyZS4iLAorICAgICAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgbl9lbGVtZW50cywgZWxlbV9zaXplKTsKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApAQCAtNzg3LDYgKzgwMywxMiBAQAogICAgIH0KICAgICBkZXNjLnJlcXVlc3RlZF9ieXRlcyA9IG5fZWxlbWVudHMgKiBlbGVtX3NpemU7CiAgICAgc2l6ZV90IHRvdGFsX3NpemUgPSBkZXNjLnJlcXVlc3RlZF9ieXRlcyArIGRlc2MucHJlZml4X3NpemUgKyBkZXNjLnN1ZmZpeF9zaXplOworICAgIGlmICh0b3RhbF9zaXplIDwgZGVzYy5yZXF1ZXN0ZWRfYnl0ZXMpIHsgLy8gT3ZlcmZsb3cKKyAgICAgICAgcWVtdV9lcnJvcl9sb2coIjxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT4gY2FsbG9jOiBjYWxsb2MoJXp1LCAlenUpIG92ZXJmbG93IGNhdXNlZCBmYWlsdXJlLiIsCisgICAgICAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBuX2VsZW1lbnRzLCBlbGVtX3NpemUpOworICAgICAgICBlcnJubyA9IEVOT01FTTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogICAgIHNpemVfdCB0b3RhbF9lbGVtZW50cyA9IHRvdGFsX3NpemUgLyBlbGVtX3NpemU7CiAgICAgdG90YWxfc2l6ZSAlPSBlbGVtX3NpemU7CiAgICAgaWYgKHRvdGFsX3NpemUgIT0gMCkgewpAQCAtNzk2LDIyICs4MTgsMjMgQEAKICAgICB9CiAgICAgZGVzYy5wdHIgPSBNYWxsb2MoY2FsbG9jKSh0b3RhbF9lbGVtZW50cywgZWxlbV9zaXplKTsKICAgICBpZiAoZGVzYy5wdHIgPT0gTlVMTCkgewotICAgICAgICBlcnJvcl9sb2coIjxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT4gY2FsbG9jOiBjYWxsb2MoJXpkKCV6ZCksICV6ZCkgKHByeD0ldSwgc2Z4PSV1KSBmYWlsZWQuIiwKKyAgICAgICAgZXJyb3JfbG9nKCI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IGNhbGxvYzogY2FsbG9jKCV6dSglenUpLCAlenUpIChwcng9JXUsIHNmeD0ldSkgZmFpbGVkLiIsCiAgICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIG5fZWxlbWVudHMsIHRvdGFsX2VsZW1lbnRzLCBlbGVtX3NpemUsCiAgICAgICAgICAgICAgICAgICAgZGVzYy5wcmVmaXhfc2l6ZSwgZGVzYy5zdWZmaXhfc2l6ZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAogICAgIGlmIChub3RpZnlfcWVtdV9tYWxsb2MoJmRlc2MpKSB7Ci0gICAgICAgIGxvZ19tZGVzYyhlcnJvciwgJmRlc2MsICI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiBjYWxsb2MoJXpkKCV6ZCksICV6ZCk6IG5vdGlmeV9tYWxsb2MgZmFpbGVkIGZvciAiLAorICAgICAgICBsb2dfbWRlc2MoZXJyb3IsICZkZXNjLCAiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PjogY2FsbG9jKCV6dSglenUpLCAlenUpOiBub3RpZnlfbWFsbG9jIGZhaWxlZCBmb3IgIiwKICAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBuX2VsZW1lbnRzLCB0b3RhbF9lbGVtZW50cywgZWxlbV9zaXplKTsKICAgICAgICAgTWFsbG9jKGZyZWUpKGRlc2MucHRyKTsKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0gZWxzZSB7CiAjaWYgVEVTVF9BQ0NFU1NfVklPTEFUSU9OUwogICAgICAgICB0ZXN0X2FjY2Vzc192aW9sYXRpb24oJmRlc2MpOwogI2VuZGlmICAvLyBURVNUX0FDQ0VTU19WSU9MQVRJT05TCi0gICAgICAgIGxvZ19tZGVzYyhpbmZvLCAmZGVzYywgIiMjIyA8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IGNhbGxvYyglemQoJXpkKSwgJXpkKSAtPiAiLAorICAgICAgICBsb2dfbWRlc2MoaW5mbywgJmRlc2MsICIjIyMgPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PiBjYWxsb2MoJXp1KCV6dSksICV6dSkgLT4gIiwKICAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBuX2VsZW1lbnRzLCB0b3RhbF9lbGVtZW50cywgZWxlbV9zaXplKTsKICAgICAgICAgcmV0dXJuIG1hbGxvY2Rlc2NfdXNlcl9wdHIoJmRlc2MpOwogICAgIH0KQEAgLTgyNCwyMiArODQ3LDE3IEBACiAgKiBzaG91bGQgbm90IGV4cGVjdCB0aGF0IHBvaW50ZXIgcmV0dXJuZWQgYWZ0ZXIgc2hyaW5raW5nIHdpbGwgcmVtYWluIHRoZSBzYW1lLgogICovCiBleHRlcm4gIkMiIHZvaWQqIHFlbXVfaW5zdHJ1bWVudGVkX3JlYWxsb2Modm9pZCogbWVtLCBzaXplX3QgYnl0ZXMpIHsKLSAgICBNYWxsb2NEZXNjIG5ld19kZXNjOwotICAgIE1hbGxvY0Rlc2MgY3VyX2Rlc2M7Ci0gICAgc2l6ZV90IHRvX2NvcHk7Ci0gICAgdm9pZCogcmV0OwotCiAgICAgaWYgKG1lbSA9PSBOVUxMKSB7CiAgICAgICAgIC8vIE5vdGhpbmcgdG8gcmVhbGxvYy4ganVzdCBkbyByZWd1bGFyIG1hbGxvYy4KLSAgICAgICAgcWVtdV9pbmZvX2xvZygiOjo6IDxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IHJlYWxsb2MoJXAsICV6ZCkgcmVkaXIgdG8gbWFsbG9jIiwKLSAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIG1lbSwgYnl0ZXMpOworICAgICAgICBxZW11X2luZm9fbG9nKCI6OjogPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PjogcmVhbGxvYyglcCwgJXp1KSByZWRpciB0byBtYWxsb2MiLAorICAgICAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBtZW0sIGJ5dGVzKTsKICAgICAgICAgcmV0dXJuIHFlbXVfaW5zdHJ1bWVudGVkX21hbGxvYyhieXRlcyk7CiAgICAgfQogCiAgICAgaWYgKGJ5dGVzID09IDApIHsKICAgICAgICAgLy8gVGhpcyBpcyBhICJmcmVlIiBjb25kaXRpb24uCi0gICAgICAgIHFlbXVfaW5mb19sb2coIjo6OiA8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiByZWFsbG9jKCVwLCAlemQpIHJlZGlyIHRvIGZyZWUgYW5kIG1hbGxvYyIsCi0gICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBtZW0sIGJ5dGVzKTsKKyAgICAgICAgcWVtdV9pbmZvX2xvZygiOjo6IDxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IHJlYWxsb2MoJXAsICV6dSkgcmVkaXIgdG8gZnJlZSBhbmQgbWFsbG9jIiwKKyAgICAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgbWVtLCBieXRlcyk7CiAgICAgICAgIHFlbXVfaW5zdHJ1bWVudGVkX2ZyZWUobWVtKTsKIAogICAgICAgICAvLyBUaGlzIGlzIHdoYXQgcmVhbGxvYyBkb2VzIGZvciBhICJmcmVlIiByZWFsbG9jLgpAQCAtODQ3LDEwICs4NjUsMTIgQEAKICAgICB9CiAKICAgICAvLyBRdWVyeSBlbXVsYXRvciBmb3IgdGhlIHJlYWxsb2NhdGluZyBibG9jayBpbmZvcm1hdGlvbi4KKyAgICBNYWxsb2NEZXNjIGN1cl9kZXNjOwogICAgIGlmIChxdWVyeV9xZW11X21hbGxvY19pbmZvKG1lbSwgJmN1cl9kZXNjLCAyKSkgewogICAgICAgICAvLyBOb3RlIHRoYXQgdGhpcyB2aW9sYXRpb24gc2hvdWxkIGJlIGFscmVhZHkgY2F1Z2h0IGluIHRoZSBlbXVsYXRvci4KLSAgICAgICAgZXJyb3JfbG9nKCI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiByZWFsbG9jKCVwLCAlemQpIHF1ZXJ5X2luZm8gZmFpbGVkLiIsCisgICAgICAgIGVycm9yX2xvZygiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PjogcmVhbGxvYyglcCwgJXp1KSBxdWVyeV9pbmZvIGZhaWxlZC4iLAogICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIG1lbSwgYnl0ZXMpOworICAgICAgICBlcnJubyA9IEVOT01FTTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCkBAIC04NjIsOCArODgyLDkgQEAKICAgICAgKiBmb3IgdGhpcyBtZW1vcnkgYmxvY2suIE5vdGUgdGhhdCB0aGlzIHZpb2xhdGlvbiBzaG91bGQgYmUgYWxyZWFkeSBjYXVnaHQKICAgICAgKiBpbiB0aGUgZW11bGF0b3IuKi8KICAgICBpZiAobWVtICE9IG1hbGxvY2Rlc2NfdXNlcl9wdHIoJmN1cl9kZXNjKSkgewotICAgICAgICBsb2dfbWRlc2MoZXJyb3IsICZjdXJfZGVzYywgIjxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IHJlYWxsb2MoJXAsICV6ZCkgaXMgaW52YWxpZCBmb3IgIiwKKyAgICAgICAgbG9nX21kZXNjKGVycm9yLCAmY3VyX2Rlc2MsICI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiByZWFsbG9jKCVwLCAlenUpIGlzIGludmFsaWQgZm9yICIsCiAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgbWVtLCBieXRlcyk7CisgICAgICAgIGVycm5vID0gRU5PTUVNOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTg3MywzMSArODk0LDM4IEBACiAgICAgICogZm9yIHRoaXMgYmxvY2sgdGhhdCBpcyBzdG9yZWQgaW4gdGhlIGVtdWxhdG9yLiAqLwogCiAgICAgLy8gSW5pdGlhbGl6ZSBkZXNjcmlwdG9yIGZvciB0aGUgbmV3IGJsb2NrLgorICAgIE1hbGxvY0Rlc2MgbmV3X2Rlc2M7CiAgICAgbmV3X2Rlc2MucHJlZml4X3NpemUgPSBERUZBVUxUX1BSRUZJWF9TSVpFOwogICAgIG5ld19kZXNjLnJlcXVlc3RlZF9ieXRlcyA9IGJ5dGVzOwogICAgIG5ld19kZXNjLnN1ZmZpeF9zaXplID0gREVGQVVMVF9TVUZGSVhfU0laRTsKLSAgICBuZXdfZGVzYy5wdHIgPSBNYWxsb2MobWFsbG9jKShtYWxsb2NkZXNjX2FsbG9jX3NpemUoJm5ld19kZXNjKSk7Ci0gICAgaWYgKG5ld19kZXNjLnB0ciA9PSBOVUxMKSB7Ci0gICAgICAgIGxvZ19tZGVzYyhlcnJvciwgJmN1cl9kZXNjLCAiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PjogcmVhbGxvYyglcCwgJXpkKTogbWFsbG9jKCV1KSBmYWlsZWQgb24gIiwKLSAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBtZW0sIGJ5dGVzLAotICAgICAgICAgICAgICAgICAgbWFsbG9jZGVzY19hbGxvY19zaXplKCZuZXdfZGVzYykpOworICAgIHNpemVfdCBuZXdfc2l6ZSA9IG1hbGxvY2Rlc2NfYWxsb2Nfc2l6ZSgmbmV3X2Rlc2MpOworICAgIGlmIChuZXdfc2l6ZSA8IGJ5dGVzKSB7IC8vIE92ZXJmbG93CisgICAgICAgIHFlbXVfZXJyb3JfbG9nKCI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiByZWFsbG9jKCVwLCAlenUpOiBtYWxsb2MoJXp1KSBmYWlsZWQgZHVlIHRvIG92ZXJmbG93IiwKKyAgICAgICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIG1lbSwgYnl0ZXMsIG5ld19zaXplKTsKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXQgPSBtYWxsb2NkZXNjX3VzZXJfcHRyKCZuZXdfZGVzYyk7CisgICAgbmV3X2Rlc2MucHRyID0gTWFsbG9jKG1hbGxvYykobmV3X3NpemUpOworICAgIGlmIChuZXdfZGVzYy5wdHIgPT0gTlVMTCkgeworICAgICAgICBsb2dfbWRlc2MoZXJyb3IsICZjdXJfZGVzYywgIjxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IHJlYWxsb2MoJXAsICV6dSk6IG1hbGxvYyglenUpIGZhaWxlZCBvbiAiLAorICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIG1lbSwgYnl0ZXMsIG5ld19zaXplKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHZvaWQqIG5ld19tZW0gPSBtYWxsb2NkZXNjX3VzZXJfcHRyKCZuZXdfZGVzYyk7CiAKICAgICAvLyBDb3B5IHVzZXIgZGF0YSBmcm9tIG9sZCBibG9jayB0byB0aGUgbmV3IG9uZS4KLSAgICB0b19jb3B5ID0gYnl0ZXMgPCBjdXJfZGVzYy5yZXF1ZXN0ZWRfYnl0ZXMgPyBieXRlcyA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyX2Rlc2MucmVxdWVzdGVkX2J5dGVzOworICAgIHNpemVfdCB0b19jb3B5ID0gYnl0ZXMgPCBjdXJfZGVzYy5yZXF1ZXN0ZWRfYnl0ZXMgPyBieXRlcyA6IGN1cl9kZXNjLnJlcXVlc3RlZF9ieXRlczsKICAgICBpZiAodG9fY29weSAhPSAwKSB7Ci0gICAgICAgIG1lbWNweShyZXQsIG1hbGxvY2Rlc2NfdXNlcl9wdHIoJmN1cl9kZXNjKSwgdG9fY29weSk7CisgICAgICAgIG1lbWNweShuZXdfbWVtLCBtYWxsb2NkZXNjX3VzZXJfcHRyKCZjdXJfZGVzYyksIHRvX2NvcHkpOwogICAgIH0KIAogICAgIC8vIFJlZ2lzdGVyIG5ldyBibG9jayB3aXRoIGVtdWxhdG9yLgogICAgIGlmIChub3RpZnlfcWVtdV9tYWxsb2MoJm5ld19kZXNjKSkgewotICAgICAgICBsb2dfbWRlc2MoZXJyb3IsICZuZXdfZGVzYywgIjxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IHJlYWxsb2MoJXAsICV6ZCkgbm90aWZ5X21hbGxvYyBmYWlsZWQgLT4gIiwKKyAgICAgICAgbG9nX21kZXNjKGVycm9yLCAmbmV3X2Rlc2MsICI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiByZWFsbG9jKCVwLCAlenUpIG5vdGlmeV9tYWxsb2MgZmFpbGVkIC0+ICIsCiAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgbWVtLCBieXRlcyk7CiAgICAgICAgIGxvZ19tZGVzYyhlcnJvciwgJmN1cl9kZXNjLCAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwtICIpOwogICAgICAgICBNYWxsb2MoZnJlZSkobmV3X2Rlc2MucHRyKTsKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApAQCAtOTA3LDIxICs5MzUsMjIgQEAKIAogICAgIC8vIEZyZWUgb2xkIGJsb2NrLgogICAgIGlmIChub3RpZnlfcWVtdV9mcmVlKG1lbSkpIHsKLSAgICAgICAgbG9nX21kZXNjKGVycm9yLCAmY3VyX2Rlc2MsICI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiByZWFsbG9jKCVwLCAlemQpOiBub3RpZnlfZnJlZSBmYWlsZWQgZm9yICIsCisgICAgICAgIGxvZ19tZGVzYyhlcnJvciwgJmN1cl9kZXNjLCAiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PjogcmVhbGxvYyglcCwgJXp1KTogbm90aWZ5X2ZyZWUgZmFpbGVkIGZvciAiLAogICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIG1lbSwgYnl0ZXMpOwogICAgICAgICAvKiBTaW5jZSB3ZSByZWdpc3RlcmVkIG5ldyBkZWNyaXB0b3Igd2l0aCB0aGUgZW11bGF0b3IsIHdlIG5lZWQKICAgICAgICAgICogdG8gdW5yZWdpc3RlciBpdCBiZWZvcmUgZnJlZWluZyBuZXdseSBhbGxvY2F0ZWQgYmxvY2suICovCiAgICAgICAgIG5vdGlmeV9xZW11X2ZyZWUobWFsbG9jZGVzY191c2VyX3B0cigmbmV3X2Rlc2MpKTsKICAgICAgICAgTWFsbG9jKGZyZWUpKG5ld19kZXNjLnB0cik7CisgICAgICAgIGVycm5vID0gRU5PTUVNOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgTWFsbG9jKGZyZWUpKGN1cl9kZXNjLnB0cik7CiAKLSAgICBsb2dfbWRlc2MoaW5mbywgJm5ld19kZXNjLCAiPT09IDxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IHJlYWxsb2MoJXAsICV6ZCkgLT4gIiwKKyAgICBsb2dfbWRlc2MoaW5mbywgJm5ld19kZXNjLCAiPT09IDxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IHJlYWxsb2MoJXAsICV6dSkgLT4gIiwKICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIG1lbSwgYnl0ZXMpOwogICAgIGxvZ19tZGVzYyhpbmZvLCAmY3VyX2Rlc2MsICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwtICIpOwogCi0gICAgcmV0dXJuIHJldDsKKyAgICByZXR1cm4gbmV3X21lbTsKIH0KIAogLyogVGhpcyByb3V0aW5lIHNlcnZlcyBhcyBlbnRyeSBwb2ludCBmb3IgJ21lbWFsaWduJy4KQEAgLTkzMiwyOCArOTYxLDM4IEBACiAKICAgICBpZiAoYnl0ZXMgPT0gMCkgewogICAgICAgICAvLyBKdXN0IGxldCBnbyB6ZXJvIGJ5dGVzIGFsbG9jYXRpb24uCi0gICAgICAgIHFlbXVfaW5mb19sb2coIjo6OiA8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiBtZW1hbGlnbiglengsICV6ZCkgcmVkaXIgdG8gbWFsbG9jIiwKKyAgICAgICAgcWVtdV9pbmZvX2xvZygiOjo6IDxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IG1lbWFsaWduKCV6eCwgJXp1KSByZWRpciB0byBtYWxsb2MiLAogICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgYWxpZ25tZW50LCBieXRlcyk7CiAgICAgICAgIHJldHVybiBxZW11X2luc3RydW1lbnRlZF9tYWxsb2MoMCk7CiAgICAgfQogCi0gICAgLyogUHJlZml4IHNpemUgZm9yIGFsaWduZWQgYWxsb2NhdGlvbiBtdXN0IGJlIGVxdWFsIHRvIHRoZSBhbGlnbm1lbnQgdXNlZAotICAgICAqIGZvciBhbGxvY2F0aW9uIGluIG9yZGVyIHRvIGVuc3VyZSBwcm9wZXIgYWxpZ25tZW50IG9mIHRoZSByZXR1cm5lZAotICAgICAqIHBvaW50ZXIsIGluIGNhc2UgdGhhdCBhbGlnbm1lbnQgcmVxdWlyZW1lbnQgaXMgZ3JlYXRlciB0aGFuIHByZWZpeAotICAgICAqIHNpemUuICovCi0gICAgZGVzYy5wcmVmaXhfc2l6ZSA9IGFsaWdubWVudCA+IERFRkFVTFRfUFJFRklYX1NJWkUgPyBhbGlnbm1lbnQgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9QUkVGSVhfU0laRTsKKyAgICAvLyBQcmVmaXggc2l6ZSBmb3IgYWxpZ25lZCBhbGxvY2F0aW9uIG11c3QgYmUgZXF1YWwgdG8gdGhlIGFsaWdubWVudCB1c2VkCisgICAgLy8gZm9yIGFsbG9jYXRpb24gaW4gb3JkZXIgdG8gZW5zdXJlIHByb3BlciBhbGlnbm1lbnQgb2YgdGhlIHJldHVybmVkCisgICAgLy8gcG9pbnRlci4gaW4gY2FzZSB0aGF0IGFsaWdubWVudCByZXF1aXJlbWVudCBpcyBncmVhdGVyIHRoYW4gcHJlZml4CisgICAgLy8gc2l6ZS4KKyAgICBpZiAoYWxpZ25tZW50IDwgREVGQVVMVF9QUkVGSVhfU0laRSkgeworICAgICAgICBhbGlnbm1lbnQgPSBERUZBVUxUX1BSRUZJWF9TSVpFOworICAgIH0gZWxzZSBpZiAoIXBvd2Vyb2YyKGFsaWdubWVudCkpIHsKKyAgICAgICAgYWxpZ25tZW50ID0gQklPTklDX1JPVU5EX1VQX1BPV0VSX09GXzIoYWxpZ25tZW50KTsKKyAgICB9CisgICAgZGVzYy5wcmVmaXhfc2l6ZSA9IGFsaWdubWVudDsKICAgICBkZXNjLnJlcXVlc3RlZF9ieXRlcyA9IGJ5dGVzOwogICAgIGRlc2Muc3VmZml4X3NpemUgPSBERUZBVUxUX1NVRkZJWF9TSVpFOwotICAgIGRlc2MucHRyID0gTWFsbG9jKG1lbWFsaWduKShkZXNjLnByZWZpeF9zaXplLCBtYWxsb2NkZXNjX2FsbG9jX3NpemUoJmRlc2MpKTsKKyAgICBzaXplX3Qgc2l6ZSA9IG1hbGxvY2Rlc2NfYWxsb2Nfc2l6ZSgmZGVzYyk7CisgICAgaWYgKHNpemUgPCBieXRlcykgeyAvLyBPdmVyZmxvdworICAgICAgICBxZW11X2Vycm9yX2xvZygiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PiBtZW1hbGlnbiglengsICV6dSk6IG1hbGxvYyglenUpIGZhaWxlZCBkdWUgdG8gb3ZlcmZsb3cuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIGFsaWdubWVudCwgYnl0ZXMsIHNpemUpOworCisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBkZXNjLnB0ciA9IE1hbGxvYyhtZW1hbGlnbikoZGVzYy5wcmVmaXhfc2l6ZSwgc2l6ZSk7CiAgICAgaWYgKGRlc2MucHRyID09IE5VTEwpIHsKLSAgICAgICAgZXJyb3JfbG9nKCI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IG1lbWFsaWduKCV6eCwgJXpkKTogbWFsbG9jKCV1KSBmYWlsZWQuIiwKLSAgICAgICAgICAgICAgICAgIG1hbGxvY19waWQsIGdldHBpZCgpLCBhbGlnbm1lbnQsIGJ5dGVzLAotICAgICAgICAgICAgICAgICAgbWFsbG9jZGVzY19hbGxvY19zaXplKCZkZXNjKSk7CisgICAgICAgIGVycm9yX2xvZygiPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PiBtZW1hbGlnbiglengsICV6dSk6IG1hbGxvYyglenUpIGZhaWxlZC4iLAorICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIGFsaWdubWVudCwgYnl0ZXMsIHNpemUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKG5vdGlmeV9xZW11X21hbGxvYygmZGVzYykpIHsKLSAgICAgICAgbG9nX21kZXNjKGVycm9yLCAmZGVzYywgIjxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT46IG1lbWFsaWduKCV6eCwgJXpkKTogbm90aWZ5X21hbGxvYyBmYWlsZWQgZm9yICIsCisgICAgICAgIGxvZ19tZGVzYyhlcnJvciwgJmRlc2MsICI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+OiBtZW1hbGlnbiglengsICV6dSk6IG5vdGlmeV9tYWxsb2MgZmFpbGVkIGZvciAiLAogICAgICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIGFsaWdubWVudCwgYnl0ZXMpOwogICAgICAgICBNYWxsb2MoZnJlZSkoZGVzYy5wdHIpOwogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTk2Myw3ICsxMDAyLDcgQEAKICAgICB0ZXN0X2FjY2Vzc192aW9sYXRpb24oJmRlc2MpOwogI2VuZGlmICAvLyBURVNUX0FDQ0VTU19WSU9MQVRJT05TCiAKLSAgICBsb2dfbWRlc2MoaW5mbywgJmRlc2MsICJAQEAgPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PiBtZW1hbGlnbiglengsICV6ZCkgLT4gIiwKKyAgICBsb2dfbWRlc2MoaW5mbywgJmRlc2MsICJAQEAgPGxpYmNfcGlkPSUwM3UsIHBpZD0lMDN1PiBtZW1hbGlnbiglengsICV6dSkgLT4gIiwKICAgICAgICAgICAgICAgbWFsbG9jX3BpZCwgZ2V0cGlkKCksIGFsaWdubWVudCwgYnl0ZXMpOwogICAgIHJldHVybiBtYWxsb2NkZXNjX3VzZXJfcHRyKCZkZXNjKTsKIH0KQEAgLTk5MSwzICsxMDMwLDM0IEBACiAgICAgLyogZHVyaW5nIGluc3RydW1lbnRhdGlvbiwgd2UgY2FuJ3QgcmVhbGx5IHJlcG9ydCBhbnl0aGluZyBtb3JlIHRoYW4gcmVxdWVzdGVkX2J5dGVzICovCiAgICAgcmV0dXJuIGN1cl9kZXNjLnJlcXVlc3RlZF9ieXRlczsKIH0KKworZXh0ZXJuICJDIiBzdHJ1Y3QgbWFsbGluZm8gcWVtdV9pbnN0cnVtZW50ZWRfbWFsbGluZm8oKSB7CisgIHJldHVybiBNYWxsb2MobWFsbGluZm8pKCk7Cit9CisKK2V4dGVybiAiQyIgaW50IHFlbXVfaW5zdHJ1bWVudGVkX3Bvc2l4X21lbWFsaWduKHZvaWQqKiBtZW1wdHIsIHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKSB7CisgIGlmICgoYWxpZ25tZW50ICYgKGFsaWdubWVudCAtIDEpKSAhPSAwKSB7CisgICAgcWVtdV9lcnJvcl9sb2coIjxsaWJjX3BpZD0lMDN1LCBwaWQ9JTAzdT4gcG9zaXhfbWVtYWxpZ24oJXAsICV6dSwgJXp1KTogaW52YWxpZCBhbGlnbm1lbnQuIiwKKyAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgbWVtcHRyLCBhbGlnbm1lbnQsIHNpemUpOworICAgIHJldHVybiBFSU5WQUw7CisgIH0KKyAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87CisgICptZW1wdHIgPSBxZW11X2luc3RydW1lbnRlZF9tZW1hbGlnbihhbGlnbm1lbnQsIHNpemUpOworICBlcnJubyA9IHNhdmVkX2Vycm5vOworICByZXR1cm4gKCptZW1wdHIgIT0gTlVMTCkgPyAwIDogRU5PTUVNOworfQorCitleHRlcm4gIkMiIHZvaWQqIHFlbXVfaW5zdHJ1bWVudGVkX3B2YWxsb2Moc2l6ZV90IGJ5dGVzKSB7CisgIHNpemVfdCBwYWdlc2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VTSVpFKTsKKyAgc2l6ZV90IHNpemUgPSBCSU9OSUNfQUxJR04oYnl0ZXMsIHBhZ2VzaXplKTsKKyAgaWYgKHNpemUgPCBieXRlcykgeyAvLyBPdmVyZmxvdworICAgIHFlbXVfZXJyb3JfbG9nKCI8bGliY19waWQ9JTAzdSwgcGlkPSUwM3U+IHB2YWxsb2MoJXp1KTogb3ZlcmZsb3cgKCV6dSkuIiwKKyAgICAgICAgICAgICAgICAgICBtYWxsb2NfcGlkLCBnZXRwaWQoKSwgYnl0ZXMsIHNpemUpOworICAgIHJldHVybiBOVUxMOworICB9CisgIHJldHVybiBxZW11X2luc3RydW1lbnRlZF9tZW1hbGlnbihwYWdlc2l6ZSwgc2l6ZSk7Cit9CisKK2V4dGVybiAiQyIgdm9pZCogcWVtdV9pbnN0cnVtZW50ZWRfdmFsbG9jKHNpemVfdCBzaXplKSB7CisgIHJldHVybiBxZW11X2luc3RydW1lbnRlZF9tZW1hbGlnbihzeXNjb25mKF9TQ19QQUdFU0laRSksIHNpemUpOworfQpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvbWQ1LmMgYi9saWJjL2Jpb25pYy9tZDUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE0YWFlZC4uMDAwMDAwMAotLS0gYS9saWJjL2Jpb25pYy9tZDUuYworKysgL2Rldi9udWxsCkBAIC0xLDI3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAxOTk1IC0gMjAwMSBLdW5nbGlnYSBUZWtuaXNrYSBI9mdza29sYW4KLSAqIChSb3lhbCBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSwgU3RvY2tob2xtLCBTd2VkZW4pLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAKLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogCi0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBJbnN0aXR1dGUgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBJTlNUSVRVVEUgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0gKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0gKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBJTlNUSVRVVEUgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0gKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0gKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0gKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZkZWYgSEFWRV9DT05GSUdfSAotI2luY2x1ZGUgImNvbmZpZy5oIgotCi1fX1JDU0lEKCIkSGVpbWRhbDogbWQ1LmMsdiAxLjE1IDIwMDEvMDEvMjkgMDQ6MzM6NDQgYXNzYXIgRXhwICQiCi0gICAgICAgICIkTmV0QlNEOiBtZDUuYyx2IDEuMS4xLjQgMjAwMi8wOS8xMiAxMjo0MTo0MiBqb2RhIEV4cCAkIik7Ci0jZW5kaWYKLQotI2luY2x1ZGUgPGVuZGlhbi5oPgotI2luY2x1ZGUgIm1kNS5oIgotI2luY2x1ZGUgImhhc2guaCIKLQotI2RlZmluZSBBIG0tPmNvdW50ZXJbMF0KLSNkZWZpbmUgQiBtLT5jb3VudGVyWzFdCi0jZGVmaW5lIEMgbS0+Y291bnRlclsyXQotI2RlZmluZSBEIG0tPmNvdW50ZXJbM10KLSNkZWZpbmUgWCBkYXRhCi0KLXZvaWQKLU1ENV9Jbml0IChzdHJ1Y3QgbWQ1ICptKQotewotICBtLT5zelswXSA9IDA7Ci0gIG0tPnN6WzFdID0gMDsKLSAgRCA9IDB4MTAzMjU0NzY7Ci0gIEMgPSAweDk4YmFkY2ZlOwotICBCID0gMHhlZmNkYWI4OTsKLSAgQSA9IDB4Njc0NTIzMDE7Ci19Ci0KLSNkZWZpbmUgRih4LHkseikgQ1JBWUZJWCgoeCAmIHkpIHwgKH54ICYgeikpCi0jZGVmaW5lIEcoeCx5LHopIENSQVlGSVgoKHggJiB6KSB8ICh5ICYgfnopKQotI2RlZmluZSBIKHgseSx6KSAoeCBeIHkgXiB6KQotI2RlZmluZSBJKHgseSx6KSBDUkFZRklYKHkgXiAoeCB8IH56KSkKLQotI2RlZmluZSBET0lUKGEsYixjLGQsayxzLGksT1ApIFwKLWEgPSBiICsgY3NoaWZ0KGEgKyBPUChiLGMsZCkgKyBYW2tdICsgKGkpLCBzKQotCi0jZGVmaW5lIERPMShhLGIsYyxkLGsscyxpKSBET0lUKGEsYixjLGQsayxzLGksRikKLSNkZWZpbmUgRE8yKGEsYixjLGQsayxzLGkpIERPSVQoYSxiLGMsZCxrLHMsaSxHKQotI2RlZmluZSBETzMoYSxiLGMsZCxrLHMsaSkgRE9JVChhLGIsYyxkLGsscyxpLEgpCi0jZGVmaW5lIERPNChhLGIsYyxkLGsscyxpKSBET0lUKGEsYixjLGQsayxzLGksSSkKLQotc3RhdGljIGlubGluZSB2b2lkCi1jYWxjIChzdHJ1Y3QgbWQ1ICptLCB1X2ludDMyX3QgKmRhdGEpCi17Ci0gIHVfaW50MzJfdCBBQSwgQkIsIENDLCBERDsKLQotICBBQSA9IEE7Ci0gIEJCID0gQjsKLSAgQ0MgPSBDOwotICBERCA9IEQ7Ci0KLSAgLyogUm91bmQgMSAqLwotCi0gIERPMShBLEIsQyxELDAsNywweGQ3NmFhNDc4KTsKLSAgRE8xKEQsQSxCLEMsMSwxMiwweGU4YzdiNzU2KTsKLSAgRE8xKEMsRCxBLEIsMiwxNywweDI0MjA3MGRiKTsKLSAgRE8xKEIsQyxELEEsMywyMiwweGMxYmRjZWVlKTsKLQotICBETzEoQSxCLEMsRCw0LDcsMHhmNTdjMGZhZik7Ci0gIERPMShELEEsQixDLDUsMTIsMHg0Nzg3YzYyYSk7Ci0gIERPMShDLEQsQSxCLDYsMTcsMHhhODMwNDYxMyk7Ci0gIERPMShCLEMsRCxBLDcsMjIsMHhmZDQ2OTUwMSk7Ci0KLSAgRE8xKEEsQixDLEQsOCw3LDB4Njk4MDk4ZDgpOwotICBETzEoRCxBLEIsQyw5LDEyLDB4OGI0NGY3YWYpOwotICBETzEoQyxELEEsQiwxMCwxNywweGZmZmY1YmIxKTsKLSAgRE8xKEIsQyxELEEsMTEsMjIsMHg4OTVjZDdiZSk7Ci0KLSAgRE8xKEEsQixDLEQsMTIsNywweDZiOTAxMTIyKTsKLSAgRE8xKEQsQSxCLEMsMTMsMTIsMHhmZDk4NzE5Myk7Ci0gIERPMShDLEQsQSxCLDE0LDE3LDB4YTY3OTQzOGUpOwotICBETzEoQixDLEQsQSwxNSwyMiwweDQ5YjQwODIxKTsKLQotICAvKiBSb3VuZCAyICovCi0KLSAgRE8yKEEsQixDLEQsMSw1LDB4ZjYxZTI1NjIpOwotICBETzIoRCxBLEIsQyw2LDksMHhjMDQwYjM0MCk7Ci0gIERPMihDLEQsQSxCLDExLDE0LDB4MjY1ZTVhNTEpOwotICBETzIoQixDLEQsQSwwLDIwLDB4ZTliNmM3YWEpOwotCi0gIERPMihBLEIsQyxELDUsNSwweGQ2MmYxMDVkKTsKLSAgRE8yKEQsQSxCLEMsMTAsOSwweDI0NDE0NTMpOwotICBETzIoQyxELEEsQiwxNSwxNCwweGQ4YTFlNjgxKTsKLSAgRE8yKEIsQyxELEEsNCwyMCwweGU3ZDNmYmM4KTsKLQotICBETzIoQSxCLEMsRCw5LDUsMHgyMWUxY2RlNik7Ci0gIERPMihELEEsQixDLDE0LDksMHhjMzM3MDdkNik7Ci0gIERPMihDLEQsQSxCLDMsMTQsMHhmNGQ1MGQ4Nyk7Ci0gIERPMihCLEMsRCxBLDgsMjAsMHg0NTVhMTRlZCk7Ci0KLSAgRE8yKEEsQixDLEQsMTMsNSwweGE5ZTNlOTA1KTsKLSAgRE8yKEQsQSxCLEMsMiw5LDB4ZmNlZmEzZjgpOwotICBETzIoQyxELEEsQiw3LDE0LDB4Njc2ZjAyZDkpOwotICBETzIoQixDLEQsQSwxMiwyMCwweDhkMmE0YzhhKTsKLQotICAvKiBSb3VuZCAzICovCi0KLSAgRE8zKEEsQixDLEQsNSw0LDB4ZmZmYTM5NDIpOwotICBETzMoRCxBLEIsQyw4LDExLDB4ODc3MWY2ODEpOwotICBETzMoQyxELEEsQiwxMSwxNiwweDZkOWQ2MTIyKTsKLSAgRE8zKEIsQyxELEEsMTQsMjMsMHhmZGU1MzgwYyk7Ci0KLSAgRE8zKEEsQixDLEQsMSw0LDB4YTRiZWVhNDQpOwotICBETzMoRCxBLEIsQyw0LDExLDB4NGJkZWNmYTkpOwotICBETzMoQyxELEEsQiw3LDE2LDB4ZjZiYjRiNjApOwotICBETzMoQixDLEQsQSwxMCwyMywweGJlYmZiYzcwKTsKLQotICBETzMoQSxCLEMsRCwxMyw0LDB4Mjg5YjdlYzYpOwotICBETzMoRCxBLEIsQywwLDExLDB4ZWFhMTI3ZmEpOwotICBETzMoQyxELEEsQiwzLDE2LDB4ZDRlZjMwODUpOwotICBETzMoQixDLEQsQSw2LDIzLDB4NDg4MWQwNSk7Ci0KLSAgRE8zKEEsQixDLEQsOSw0LDB4ZDlkNGQwMzkpOwotICBETzMoRCxBLEIsQywxMiwxMSwweGU2ZGI5OWU1KTsKLSAgRE8zKEMsRCxBLEIsMTUsMTYsMHgxZmEyN2NmOCk7Ci0gIERPMyhCLEMsRCxBLDIsMjMsMHhjNGFjNTY2NSk7Ci0KLSAgLyogUm91bmQgNCAqLwotCi0gIERPNChBLEIsQyxELDAsNiwweGY0MjkyMjQ0KTsKLSAgRE80KEQsQSxCLEMsNywxMCwweDQzMmFmZjk3KTsKLSAgRE80KEMsRCxBLEIsMTQsMTUsMHhhYjk0MjNhNyk7Ci0gIERPNChCLEMsRCxBLDUsMjEsMHhmYzkzYTAzOSk7Ci0KLSAgRE80KEEsQixDLEQsMTIsNiwweDY1NWI1OWMzKTsKLSAgRE80KEQsQSxCLEMsMywxMCwweDhmMGNjYzkyKTsKLSAgRE80KEMsRCxBLEIsMTAsMTUsMHhmZmVmZjQ3ZCk7Ci0gIERPNChCLEMsRCxBLDEsMjEsMHg4NTg0NWRkMSk7Ci0KLSAgRE80KEEsQixDLEQsOCw2LDB4NmZhODdlNGYpOwotICBETzQoRCxBLEIsQywxNSwxMCwweGZlMmNlNmUwKTsKLSAgRE80KEMsRCxBLEIsNiwxNSwweGEzMDE0MzE0KTsKLSAgRE80KEIsQyxELEEsMTMsMjEsMHg0ZTA4MTFhMSk7Ci0KLSAgRE80KEEsQixDLEQsNCw2LDB4Zjc1MzdlODIpOwotICBETzQoRCxBLEIsQywxMSwxMCwweGJkM2FmMjM1KTsKLSAgRE80KEMsRCxBLEIsMiwxNSwweDJhZDdkMmJiKTsKLSAgRE80KEIsQyxELEEsOSwyMSwweGViODZkMzkxKTsKLQotICBBICs9IEFBOwotICBCICs9IEJCOwotICBDICs9IENDOwotICBEICs9IEREOwotfQotCi0vKgotICogRnJvbSBgUGVyZm9ybWFuY2UgYW5hbHlzaXMgb2YgTUQ1JyBieSBKb3NlcGggRC4gVG91Y2ggPHRvdWNoQGlzaS5lZHU+Ci0gKi8KLSNpZiAhZGVmaW5lZChfX0JZVEVfT1JERVIpIHx8ICFkZWZpbmVkIChfX0JJR19FTkRJQU4pCi0jZXJyb3IgX19CWVRFX09SREVSIG1hY3JvcyBub3QgZGVmaW5lZAotI2VuZGlmCi0KLSNpZiBfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOCi1zdGF0aWMgaW5saW5lIHVfaW50MzJfdAotc3dhcF91X2ludDMyX3QgKHVfaW50MzJfdCB0KQotewotICB1X2ludDMyX3QgdGVtcDEsIHRlbXAyOwotCi0gIHRlbXAxICAgPSBjc2hpZnQodCwgMTYpOwotICB0ZW1wMiAgID0gdGVtcDEgPj4gODsKLSAgdGVtcDEgICY9IDB4MDBmZjAwZmY7Ci0gIHRlbXAyICAmPSAweDAwZmYwMGZmOwotICB0ZW1wMSA8PD0gODsKLSAgcmV0dXJuIHRlbXAxIHwgdGVtcDI7Ci19Ci0jZW5kaWYKLQotc3RydWN0IHgzMnsKLSAgdW5zaWduZWQgaW50IGE6MzI7Ci0gIHVuc2lnbmVkIGludCBiOjMyOwotfTsKLQotdm9pZAotTUQ1X1VwZGF0ZSAoc3RydWN0IG1kNSAqbSwgY29uc3Qgdm9pZCAqdiwgc2l6ZV90IGxlbikKLXsKLSAgY29uc3QgdW5zaWduZWQgY2hhciAqcCA9IHY7Ci0gIHNpemVfdCBvbGRfc3ogPSBtLT5zelswXTsKLSAgc2l6ZV90IG9mZnNldDsKLQotICBtLT5zelswXSArPSBsZW4gKiA4OwotICBpZiAobS0+c3pbMF0gPCBvbGRfc3opCi0gICAgICArK20tPnN6WzFdOwotICBvZmZzZXQgPSAob2xkX3N6IC8gOCkgICUgNjQ7Ci0gIHdoaWxlKGxlbiA+IDApewotICAgIHNpemVfdCBsID0gbWluKGxlbiwgNjQgLSBvZmZzZXQpOwotICAgIG1lbWNweShtLT5zYXZlICsgb2Zmc2V0LCBwLCBsKTsKLSAgICBvZmZzZXQgKz0gbDsKLSAgICBwICs9IGw7Ci0gICAgbGVuIC09IGw7Ci0gICAgaWYob2Zmc2V0ID09IDY0KXsKLSNpZiBfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOCi0gICAgICBpbnQgaTsKLSAgICAgIHVfaW50MzJfdCBjdXJyZW50WzE2XTsKLSAgICAgIHN0cnVjdCB4MzIgKnUgPSAoc3RydWN0IHgzMiopbS0+c2F2ZTsKLSAgICAgIGZvcihpID0gMDsgaSA8IDg7IGkrKyl7Ci0JY3VycmVudFsyKmkrMF0gPSBzd2FwX3VfaW50MzJfdCh1W2ldLmEpOwotCWN1cnJlbnRbMippKzFdID0gc3dhcF91X2ludDMyX3QodVtpXS5iKTsKLSAgICAgIH0KLSAgICAgIGNhbGMobSwgY3VycmVudCk7Ci0jZWxzZQotICAgICAgY2FsYyhtLCAodV9pbnQzMl90KiltLT5zYXZlKTsKLSNlbmRpZgotICAgICAgb2Zmc2V0ID0gMDsKLSAgICB9Ci0gIH0KLX0KLQotdm9pZAotTUQ1X0ZpbmFsICh2b2lkICpyZXMsIHN0cnVjdCBtZDUgKm0pCi17Ci0gIHVuc2lnbmVkIGNoYXIgemVyb3NbNzJdOwotICB1bnNpZ25lZCBvZmZzZXQgPSAobS0+c3pbMF0gLyA4KSAlIDY0OwotICB1bnNpZ25lZCBpbnQgZHN0YXJ0ID0gKDEyMCAtIG9mZnNldCAtIDEpICUgNjQgKyAxOwotCi0gICp6ZXJvcyA9IDB4ODA7Ci0gIG1lbXNldCAoemVyb3MgKyAxLCAwLCBzaXplb2YoemVyb3MpIC0gMSk7Ci0gIHplcm9zW2RzdGFydCswXSA9IChtLT5zelswXSA+PiAwKSAmIDB4ZmY7Ci0gIHplcm9zW2RzdGFydCsxXSA9IChtLT5zelswXSA+PiA4KSAmIDB4ZmY7Ci0gIHplcm9zW2RzdGFydCsyXSA9IChtLT5zelswXSA+PiAxNikgJiAweGZmOwotICB6ZXJvc1tkc3RhcnQrM10gPSAobS0+c3pbMF0gPj4gMjQpICYgMHhmZjsKLSAgemVyb3NbZHN0YXJ0KzRdID0gKG0tPnN6WzFdID4+IDApICYgMHhmZjsKLSAgemVyb3NbZHN0YXJ0KzVdID0gKG0tPnN6WzFdID4+IDgpICYgMHhmZjsKLSAgemVyb3NbZHN0YXJ0KzZdID0gKG0tPnN6WzFdID4+IDE2KSAmIDB4ZmY7Ci0gIHplcm9zW2RzdGFydCs3XSA9IChtLT5zelsxXSA+PiAyNCkgJiAweGZmOwotICBNRDVfVXBkYXRlIChtLCB6ZXJvcywgZHN0YXJ0ICsgOCk7Ci0gIHsKLSAgICAgIGludCBpOwotICAgICAgdW5zaWduZWQgY2hhciAqciA9ICh1bnNpZ25lZCBjaGFyICopcmVzOwotCi0gICAgICBmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7Ci0JICByWzQqaV0gICA9IG0tPmNvdW50ZXJbaV0gJiAweEZGOwotCSAgcls0KmkrMV0gPSAobS0+Y291bnRlcltpXSA+PiA4KSAmIDB4RkY7Ci0JICByWzQqaSsyXSA9IChtLT5jb3VudGVyW2ldID4+IDE2KSAmIDB4RkY7Ci0JICByWzQqaSszXSA9IChtLT5jb3VudGVyW2ldID4+IDI0KSAmIDB4RkY7Ci0gICAgICB9Ci0gIH0KLSNpZiAwCi0gIHsKLSAgICBpbnQgaTsKLSAgICB1X2ludDMyX3QgKnIgPSAodV9pbnQzMl90ICopcmVzOwotCi0gICAgZm9yIChpID0gMDsgaSA8IDQ7ICsraSkKLSAgICAgIHJbaV0gPSBzd2FwX3VfaW50MzJfdCAobS0+Y291bnRlcltpXSk7Ci0gIH0KLSNlbmRpZgotfQpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvbWQ1LmggYi9saWJjL2Jpb25pYy9tZDUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTM4MTk5NC4uMDAwMDAwMAotLS0gYS9saWJjL2Jpb25pYy9tZDUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTUgLSAyMDAxIEt1bmdsaWdhIFRla25pc2thIEj2Z3Nrb2xhbgotICogKFJveWFsIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBTdG9ja2hvbG0sIFN3ZWRlbikuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIAotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIAotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIEluc3RpdHV0ZSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIElOU1RJVFVURSBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLSAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIElOU1RJVFVURSBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0gKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLS8qICRIZWltZGFsOiBtZDUuaCx2IDEuOCAyMDAxLzAxLzI5IDAyOjA4OjU3IGFzc2FyIEV4cCAkCi0gICAkTmV0QlNEOiBtZDUuaCx2IDEuMS4xLjQgMjAwMi8wOS8xMiAxMjo0MTo0MiBqb2RhIEV4cCAkICovCi0KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLQotc3RydWN0IG1kNSB7Ci0gIHVuc2lnbmVkIGludCBzelsyXTsKLSAgdV9pbnQzMl90IGNvdW50ZXJbNF07Ci0gIHVuc2lnbmVkIGNoYXIgc2F2ZVs2NF07Ci19OwotCi10eXBlZGVmIHN0cnVjdCBtZDUgTUQ1X0NUWDsKLQotdm9pZCBNRDVfSW5pdCAoc3RydWN0IG1kNSAqbSk7Ci12b2lkIE1ENV9VcGRhdGUgKHN0cnVjdCBtZDUgKm0sIGNvbnN0IHZvaWQgKnAsIHNpemVfdCBsZW4pOwotdm9pZCBNRDVfRmluYWwgKHZvaWQgKnJlcywgc3RydWN0IG1kNSAqbSk7IC8qIHVfaW50MzJfdCByZXNbNF0gKi8KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL25ka19jcnVmdC5jcHAgYi9saWJjL2Jpb25pYy9uZGtfY3J1ZnQuY3BwCmluZGV4IDEyODRiOWEuLmUzZTY0MGEgMTAwNjQ0Ci0tLSBhL2xpYmMvYmlvbmljL25ka19jcnVmdC5jcHAKKysrIGIvbGliYy9iaW9uaWMvbmRrX2NydWZ0LmNwcApAQCAtMzAsMTYgKzMwLDIwIEBACiAjaWYgIWRlZmluZWQoX19MUDY0X18pCiAKICNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGRpcmVudC5oPgogI2luY2x1ZGUgPGludHR5cGVzLmg+CiAjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CiAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy93YWl0Lmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8d2NoYXIuaD4KIAogLy8gVGhlc2Ugd2VyZSBhY2NpZGVudGFsbHkgZGVjbGFyZWQgaW4gPHVuaXN0ZC5oPiBiZWNhdXNlIHdlIHN0dXBpZGx5IHVzZWQgdG8gaW5saW5lCiAvLyBnZXRwYWdlc2l6ZSgpIGFuZCBfX2dldHBhZ2VzaGlmdCgpLiBOZWVkZWQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIE5ESyBhcHBzLgpAQCAtMjIxLDQgKzIyNSw4MSBAQAogICByZXR1cm4gc3lzY2FsbChfX05SX3RraWxsLCB0aWQsIHNpZyk7CiB9CiAKK2V4dGVybiAiQyIgd2NoYXJfdCogd2Nzd2NzKHdjaGFyX3QqIGhheXN0YWNrLCB3Y2hhcl90KiBuZWVkbGUpIHsKKyAgcmV0dXJuIHdjc3N0cihoYXlzdGFjaywgbmVlZGxlKTsKK30KKworLy8gVGhpcyB3YXMgcmVtb3ZlZCBmcm9tIFBPU0lYIDIwMDguCitleHRlcm4gIkMiIHNpZ2hhbmRsZXJfdCBic2Rfc2lnbmFsKGludCBzaWdudW0sIHNpZ2hhbmRsZXJfdCBoYW5kbGVyKSB7CisgIHJldHVybiBzaWduYWwoc2lnbnVtLCBoYW5kbGVyKTsKK30KKworLy8gc3lzdl9zaWduYWwoKSB3YXMgbmV2ZXIgaW4gUE9TSVguCitleHRlcm4gc2lnaGFuZGxlcl90IF9zaWduYWwoaW50IHNpZ251bSwgc2lnaGFuZGxlcl90IGhhbmRsZXIsIGludCBmbGFncyk7CitleHRlcm4gIkMiIHNpZ2hhbmRsZXJfdCBzeXN2X3NpZ25hbChpbnQgc2lnbnVtLCBzaWdoYW5kbGVyX3QgaGFuZGxlcikgeworICByZXR1cm4gX3NpZ25hbChzaWdudW0sIGhhbmRsZXIsIFNBX1JFU0VUSEFORCk7Cit9CisKKy8vIFRoaXMgaXMgYSBzeXN0ZW0gY2FsbCB0aGF0IHdhcyBuZXZlciBpbiBQT1NJWC4gVXNlIHJlYWRkaXIoMykgaW5zdGVhZC4KK2V4dGVybiAiQyIgaW50IF9fZ2V0ZGVudHM2NCh1bnNpZ25lZCBpbnQsIGRpcmVudCosIHVuc2lnbmVkIGludCk7CitleHRlcm4gIkMiIGludCBnZXRkZW50cyh1bnNpZ25lZCBpbnQgZmQsIGRpcmVudCogZGlycCwgdW5zaWduZWQgaW50IGNvdW50KSB7CisgIHJldHVybiBfX2dldGRlbnRzNjQoZmQsIGRpcnAsIGNvdW50KTsKK30KKworLy8gVGhpcyBpcyBhIEJTRGlzbSB0aGF0IHdlIG5ldmVyIGltcGxlbWVudGVkIGNvcnJlY3RseS4gVXNlZCBieSBGaXJlZm94LgorZXh0ZXJuICJDIiBpbnQgaXNzZXR1Z2lkKCkgeworICByZXR1cm4gMDsKK30KKworLy8gVGhpcyB3YXMgcmVtb3ZlZCBmcm9tIFBPU0lYIDIwMDQuCitleHRlcm4gIkMiIHBpZF90IHdhaXQzKGludCogc3RhdHVzLCBpbnQgb3B0aW9ucywgc3RydWN0IHJ1c2FnZSogcnVzYWdlKSB7CisgIHJldHVybiB3YWl0NCgtMSwgc3RhdHVzLCBvcHRpb25zLCBydXNhZ2UpOworfQorCisvLyBUaGlzIHdhcyByZW1vdmVkIGZyb20gUE9TSVggMjAwNC4KK2V4dGVybiAiQyIgaW50IGdldGR0YWJsZXNpemUoKSB7CisgIHN0cnVjdCBybGltaXQgcjsKKworICBpZiAoZ2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZyKSA8IDApIHsKKyAgICByZXR1cm4gc3lzY29uZihfU0NfT1BFTl9NQVgpOworICB9CisKKyAgcmV0dXJuIHIucmxpbV9jdXI7Cit9CisKKy8vIE9ubHkgdXNlZCBieSBmdGltZSwgd2hpY2ggd2FzIHJlbW92ZWQgZnJvbSBQT1NJWC4KK3N0cnVjdCB0aW1lYiB7CisgIHRpbWVfdCAgICAgICAgICB0aW1lOworICB1bnNpZ25lZCBzaG9ydCAgbWlsbGl0bTsKKyAgc2hvcnQgICAgICAgICAgIHRpbWV6b25lOworICBzaG9ydCAgICAgICAgICAgZHN0ZmxhZzsKK307CisKKy8vIFRoaXMgd2FzIHJlbW92ZWQgZnJvbSBQT1NJWCAyMDA4LgorZXh0ZXJuICJDIiBpbnQgZnRpbWUoc3RydWN0IHRpbWViKiB0YikgeworICBzdHJ1Y3QgdGltZXZhbCAgdHY7CisgIHN0cnVjdCB0aW1lem9uZSB0ejsKKworICBpZiAoZ2V0dGltZW9mZGF5KCZ0diwgJnR6KSA8IDApCisgICAgcmV0dXJuIC0xOworCisgIHRiLT50aW1lICAgID0gdHYudHZfc2VjOworICB0Yi0+bWlsbGl0bSA9ICh0di50dl91c2VjICsgNTAwKSAvIDEwMDA7CisKKyAgaWYgKHRiLT5taWxsaXRtID09IDEwMDApIHsKKyAgICArK3RiLT50aW1lOworICAgIHRiLT5taWxsaXRtID0gMDsKKyAgfQorCisgIHRiLT50aW1lem9uZSA9IHR6LnR6X21pbnV0ZXN3ZXN0OworICB0Yi0+ZHN0ZmxhZyAgPSB0ei50el9kc3R0aW1lOworCisgIHJldHVybiAwOworfQorCisvLyBUaGlzIHdhcyByZW1vdmVkIGZyb20gUE9TSVggMjAwOC4KK2V4dGVybiAiQyIgY2hhciogaW5kZXgoY29uc3QgY2hhciogc3RyLCBpbnQgY2gpIHsKKyAgcmV0dXJuIHN0cmNocihzdHIsIGNoKTsKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9wdGhyZWFkX2NyZWF0ZS5jcHAgYi9saWJjL2Jpb25pYy9wdGhyZWFkX2NyZWF0ZS5jcHAKaW5kZXggYzRjYjI2Mi4uMmRlZDIyYiAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvcHRocmVhZF9jcmVhdGUuY3BwCisrKyBiL2xpYmMvYmlvbmljL3B0aHJlYWRfY3JlYXRlLmNwcApAQCAtMzAsOSArMzAsMTEgQEAKIAogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgInB0aHJlYWRfaW50ZXJuYWwuaCIKIAorI2luY2x1ZGUgInByaXZhdGUvYmlvbmljX21hY3Jvcy5oIgogI2luY2x1ZGUgInByaXZhdGUvYmlvbmljX3NzcC5oIgogI2luY2x1ZGUgInByaXZhdGUvYmlvbmljX3Rscy5oIgogI2luY2x1ZGUgInByaXZhdGUvbGliY19sb2dnaW5nLmgiCkBAIC0xODMsOCArMTg1LDggQEAKICAgfQogCiAgIC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgc2l6ZSBhbmQgZ3VhcmQgc2l6ZSBhcmUgbXVsdGlwbGVzIG9mIFBBR0VfU0laRS4KLSAgdGhyZWFkLT5hdHRyLnN0YWNrX3NpemUgPSAodGhyZWFkLT5hdHRyLnN0YWNrX3NpemUgKyAoUEFHRV9TSVpFLTEpKSAmIH4oUEFHRV9TSVpFLTEpOwotICB0aHJlYWQtPmF0dHIuZ3VhcmRfc2l6ZSA9ICh0aHJlYWQtPmF0dHIuZ3VhcmRfc2l6ZSArIChQQUdFX1NJWkUtMSkpICYgfihQQUdFX1NJWkUtMSk7CisgIHRocmVhZC0+YXR0ci5zdGFja19zaXplID0gQklPTklDX0FMSUdOKHRocmVhZC0+YXR0ci5zdGFja19zaXplLCBQQUdFX1NJWkUpOworICB0aHJlYWQtPmF0dHIuZ3VhcmRfc2l6ZSA9IEJJT05JQ19BTElHTih0aHJlYWQtPmF0dHIuZ3VhcmRfc2l6ZSwgUEFHRV9TSVpFKTsKIAogICBpZiAodGhyZWFkLT5hdHRyLnN0YWNrX2Jhc2UgPT0gTlVMTCkgewogICAgIC8vIFRoZSBjYWxsZXIgZGlkbid0IHByb3ZpZGUgYSBzdGFjaywgc28gYWxsb2NhdGUgb25lLgpAQCAtMjE5LDYgKzIyMSw4IEBACiAgIHRocmVhZC0+c3RhcnRfcm91dGluZSA9IHN0YXJ0X3JvdXRpbmU7CiAgIHRocmVhZC0+c3RhcnRfcm91dGluZV9hcmcgPSBhcmc7CiAKKyAgdGhyZWFkLT5zZXRfY2FjaGVkX3BpZChnZXRwaWQoKSk7CisKICAgaW50IGZsYWdzID0gQ0xPTkVfVk0gfCBDTE9ORV9GUyB8IENMT05FX0ZJTEVTIHwgQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCB8IENMT05FX1NZU1ZTRU0gfAogICAgICAgQ0xPTkVfU0VUVExTIHwgQ0xPTkVfUEFSRU5UX1NFVFRJRCB8IENMT05FX0NISUxEX0NMRUFSVElEOwogICB2b2lkKiB0bHMgPSB0aHJlYWQtPnRsczsKZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL3B0aHJlYWRfaW50ZXJuYWwuaCBiL2xpYmMvYmlvbmljL3B0aHJlYWRfaW50ZXJuYWwuaAppbmRleCA0OTBhZTg2Li5lMDVkMTVjIDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9wdGhyZWFkX2ludGVybmFsLmgKKysrIGIvbGliYy9iaW9uaWMvcHRocmVhZF9pbnRlcm5hbC5oCkBAIC0zNiw2ICszNiwyNiBAQAogCiAgIHBpZF90IHRpZDsKIAorIHByaXZhdGU6CisgIHBpZF90IGNhY2hlZF9waWRfOworCisgcHVibGljOgorICBwaWRfdCBpbnZhbGlkYXRlX2NhY2hlZF9waWQoKSB7CisgICAgcGlkX3Qgb2xkX3ZhbHVlOworICAgIGdldF9jYWNoZWRfcGlkKCZvbGRfdmFsdWUpOworICAgIHNldF9jYWNoZWRfcGlkKDApOworICAgIHJldHVybiBvbGRfdmFsdWU7CisgIH0KKworICB2b2lkIHNldF9jYWNoZWRfcGlkKHBpZF90IHZhbHVlKSB7CisgICAgY2FjaGVkX3BpZF8gPSB2YWx1ZTsKKyAgfQorCisgIGJvb2wgZ2V0X2NhY2hlZF9waWQocGlkX3QqIGNhY2hlZF9waWQpIHsKKyAgICAqY2FjaGVkX3BpZCA9IGNhY2hlZF9waWRfOworICAgIHJldHVybiAoKmNhY2hlZF9waWQgIT0gMCk7CisgIH0KKwogICB2b2lkKiogdGxzOwogCiAgIHB0aHJlYWRfYXR0cl90IGF0dHI7CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9zaWduYWwuY3BwIGIvbGliYy9iaW9uaWMvc2lnbmFsLmNwcAppbmRleCA0OGIyZTcyLi42NmQ3NWJkIDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9zaWduYWwuY3BwCisrKyBiL2xpYmMvYmlvbmljL3NpZ25hbC5jcHAKQEAgLTI4LDcgKzI4LDEyIEBACiAKICNpbmNsdWRlIDxzaWduYWwuaD4KIAotc3RhdGljIHNpZ2hhbmRsZXJfdCBfc2lnbmFsKGludCBzaWdudW0sIHNpZ2hhbmRsZXJfdCBoYW5kbGVyLCBpbnQgZmxhZ3MpIHsKKyNpZmRlZiBfX0xQNjRfXworc3RhdGljCisjZWxzZQorX19MSUJDX0hJRERFTl9fCisjZW5kaWYKK3NpZ2hhbmRsZXJfdCBfc2lnbmFsKGludCBzaWdudW0sIHNpZ2hhbmRsZXJfdCBoYW5kbGVyLCBpbnQgZmxhZ3MpIHsKICAgc3RydWN0IHNpZ2FjdGlvbiBzYTsKICAgc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOwogICBzYS5zYV9oYW5kbGVyID0gaGFuZGxlcjsKQEAgLTQxLDE0ICs0Niw2IEBACiAgIHJldHVybiAoc2lnaGFuZGxlcl90KSBzYS5zYV9oYW5kbGVyOwogfQogCi1zaWdoYW5kbGVyX3QgYnNkX3NpZ25hbChpbnQgc2lnbnVtLCBzaWdoYW5kbGVyX3QgaGFuZGxlcikgewotICByZXR1cm4gX3NpZ25hbChzaWdudW0sIGhhbmRsZXIsIFNBX1JFU1RBUlQpOwotfQotCi1zaWdoYW5kbGVyX3Qgc3lzdl9zaWduYWwoaW50IHNpZ251bSwgc2lnaGFuZGxlcl90IGhhbmRsZXIpIHsKLSAgcmV0dXJuIF9zaWduYWwoc2lnbnVtLCBoYW5kbGVyLCBTQV9SRVNFVEhBTkQpOwotfQotCiBzaWdoYW5kbGVyX3Qgc2lnbmFsKGludCBzaWdudW0sIHNpZ2hhbmRsZXJfdCBoYW5kbGVyKSB7Ci0gIHJldHVybiBic2Rfc2lnbmFsKHNpZ251bSwgaGFuZGxlcik7CisgIHJldHVybiBfc2lnbmFsKHNpZ251bSwgaGFuZGxlciwgU0FfUkVTVEFSVCk7CiB9CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9zeXN0ZW1fcHJvcGVydGllcy5jcHAgYi9saWJjL2Jpb25pYy9zeXN0ZW1fcHJvcGVydGllcy5jcHAKaW5kZXggNzYxODU4Ni4uYTU2NGMzOSAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvc3lzdGVtX3Byb3BlcnRpZXMuY3BwCisrKyBiL2xpYmMvYmlvbmljL3N5c3RlbV9wcm9wZXJ0aWVzLmNwcApAQCAtNTUsOSArNTUsNiBAQAogI2luY2x1ZGUgInByaXZhdGUvYmlvbmljX2Z1dGV4LmgiCiAjaW5jbHVkZSAicHJpdmF0ZS9iaW9uaWNfbWFjcm9zLmgiCiAKLSNkZWZpbmUgQUxJR04oeCwgYSkgKCgoeCkgKyAoYSAtIDEpKSAmIH4oYSAtIDEpKQotCi0KIHN0YXRpYyBjb25zdCBjaGFyIHByb3BlcnR5X3NlcnZpY2Vfc29ja2V0W10gPSAiL2Rldi9zb2NrZXQvIiBQUk9QX1NFUlZJQ0VfTkFNRTsKIAogCkBAIC0zMDEsNyArMjk4LDcgQEAKIHN0YXRpYyB2b2lkICphbGxvY2F0ZV9vYmooY29uc3Qgc2l6ZV90IHNpemUsIHVpbnQzMl90ICpjb25zdCBvZmYpCiB7CiAgICAgcHJvcF9hcmVhICpwYSA9IF9fc3lzdGVtX3Byb3BlcnR5X2FyZWFfXzsKLSAgICBjb25zdCBzaXplX3QgYWxpZ25lZCA9IEFMSUdOKHNpemUsIHNpemVvZih1aW50MzJfdCkpOworICAgIGNvbnN0IHNpemVfdCBhbGlnbmVkID0gQklPTklDX0FMSUdOKHNpemUsIHNpemVvZih1aW50MzJfdCkpOwogICAgIGlmIChwYS0+Ynl0ZXNfdXNlZCArIGFsaWduZWQgPiBwYV9kYXRhX3NpemUpIHsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvdGhyZWFkX2F0ZXhpdC5jcHAgYi9saWJjL2Jpb25pYy90aHJlYWRfcHJpdmF0ZS5jcHAKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gbGliYy9iaW9uaWMvdGhyZWFkX2F0ZXhpdC5jcHAKcmVuYW1lIHRvIGxpYmMvYmlvbmljL3RocmVhZF9wcml2YXRlLmNwcAppbmRleCA2OGMxMTlkLi4xYzA0MDE5IDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy90aHJlYWRfYXRleGl0LmNwcAorKysgYi9saWJjL2Jpb25pYy90aHJlYWRfcHJpdmF0ZS5jcHAKQEAgLTI2LDE3ICsyNiwxMyBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAotLyogc29tZSBzaW1wbGUgZ2x1ZSB1c2VkIHRvIG1ha2UgdGhlIEJTRCBhdGV4aXQgY29kZSBoYXBweSAqLwotCiAjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgInByaXZhdGUvdGhyZWFkX3ByaXZhdGUuaCIKKworLy8gU29tZSBzaW1wbGUgZ2x1ZSB1c2VkIHRvIG1ha2UgQlNEIGNvZGUgdGhyZWFkLXNhZmUuCiAKIHN0YXRpYyBwdGhyZWFkX211dGV4X3QgZ19hdGV4aXRfbG9jayA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CiAKLV9fQkVHSU5fREVDTFMKLV9fTElCQ19ISURERU5fXyB2b2lkIF90aHJlYWRfYXRleGl0X2xvY2soKTsKLV9fTElCQ19ISURERU5fXyB2b2lkIF90aHJlYWRfYXRleGl0X3VubG9jaygpOwotX19FTkRfREVDTFMKLQogdm9pZCBfdGhyZWFkX2F0ZXhpdF9sb2NrKCkgewogICBwdGhyZWFkX211dGV4X2xvY2soJmdfYXRleGl0X2xvY2spOwogfQpAQCAtNDQsMyArNDAsMTMgQEAKIHZvaWQgX3RocmVhZF9hdGV4aXRfdW5sb2NrKCkgewogICBwdGhyZWFkX211dGV4X3VubG9jaygmZ19hdGV4aXRfbG9jayk7CiB9CisKK3N0YXRpYyBwdGhyZWFkX211dGV4X3QgZ19hcmM0X2xvY2sgPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOworCit2b2lkIF90aHJlYWRfYXJjNF9sb2NrKCkgeworICBwdGhyZWFkX211dGV4X2xvY2soJmdfYXJjNF9sb2NrKTsKK30KKwordm9pZCBfdGhyZWFkX2FyYzRfdW5sb2NrKCkgeworICBwdGhyZWFkX211dGV4X3VubG9jaygmZ19hcmM0X2xvY2spOworfQpkaWZmIC0tZ2l0IGEvbGliYy9iaW9uaWMvZ2V0ZHRhYmxlc2l6ZS5jIGIvbGliYy9iaW9uaWMvdmZvcmsuY3BwCnNpbWlsYXJpdHkgaW5kZXggODMlCnJlbmFtZSBmcm9tIGxpYmMvYmlvbmljL2dldGR0YWJsZXNpemUuYwpyZW5hbWUgdG8gbGliYy9iaW9uaWMvdmZvcmsuY3BwCmluZGV4IDkxMzE1YTUuLmI3MDZhN2YgMTAwNjQ0Ci0tLSBhL2xpYmMvYmlvbmljL2dldGR0YWJsZXNpemUuYworKysgYi9saWJjL2Jpb25pYy92Zm9yay5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxNCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjUsMTUgKzI1LDExIEBACiAgKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKICAqIFNVQ0ggREFNQUdFLgogICovCi0jaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Ci0jaW5jbHVkZSA8c3lzL3N5c2NvbmYuaD4KIAotaW50IGdldGR0YWJsZXNpemUoKQotewotICAgIHN0cnVjdCBybGltaXQgcjsKKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAotICAgIGlmIChnZXRybGltaXQoUkxJTUlUX05PRklMRSwgJnIpIDwgMCkgewotICAgICAgICByZXR1cm4gc3lzY29uZihfU0NfT1BFTl9NQVgpOwotICAgIH0KLSAgICByZXR1cm4gci5ybGltX2N1cjsKKy8vIHZmb3JrKDIpIHdhcyByZW1vdmVkIGZyb20gUE9TSVggMjAwOCwgYnV0IGl0J3MgY29tbW9uIGVub3VnaCB0aGF0IHdlIGNhbid0CisvLyBhY3R1YWxseSByZW1vdmUgaXQgZW50aXJlbHkuCitleHRlcm4gIkMiIHBpZF90IHZmb3JrKHZvaWQpIHsKKyAgcmV0dXJuIGZvcmsoKTsKIH0KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL3dhaXQuY3BwIGIvbGliYy9iaW9uaWMvd2FpdC5jcHAKaW5kZXggY2Q3NWMxMC4uZTVjOTNhYSAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvd2FpdC5jcHAKKysrIGIvbGliYy9iaW9uaWMvd2FpdC5jcHAKQEAgLTM1LDEwICszNSw2IEBACiAgIHJldHVybiB3YWl0NCgtMSwgc3RhdHVzLCAwLCBOVUxMKTsKIH0KIAotcGlkX3Qgd2FpdDMoaW50KiBzdGF0dXMsIGludCBvcHRpb25zLCBzdHJ1Y3QgcnVzYWdlKiBydXNhZ2UpIHsKLSAgcmV0dXJuIHdhaXQ0KC0xLCBzdGF0dXMsIG9wdGlvbnMsIHJ1c2FnZSk7Ci19Ci0KIHBpZF90IHdhaXRwaWQocGlkX3QgcGlkLCBpbnQqIHN0YXR1cywgaW50IG9wdGlvbnMpIHsKICAgcmV0dXJuIHdhaXQ0KHBpZCwgc3RhdHVzLCBvcHRpb25zLCBOVUxMKTsKIH0KZGlmZiAtLWdpdCBhL2xpYmMvZG5zL2luY2x1ZGUvcmVzb2x2X25ldGlkLmggYi9saWJjL2Rucy9pbmNsdWRlL3Jlc29sdl9uZXRpZC5oCmluZGV4IDk5MWEwYmYuLmJhZGExOGEgMTAwNjQ0Ci0tLSBhL2xpYmMvZG5zL2luY2x1ZGUvcmVzb2x2X25ldGlkLmgKKysrIGIvbGliYy9kbnMvaW5jbHVkZS9yZXNvbHZfbmV0aWQuaApAQCAtNTAsMjAgKzUwLDI3IEBACiAKIHN0cnVjdCBhZGRyaW5mbzsKIAotc3RydWN0IGhvc3RlbnQgKmFuZHJvaWRfZ2V0aG9zdGJ5YWRkcmZvcm5ldChjb25zdCB2b2lkICosIHNvY2tsZW5fdCwgaW50LCB1bnNpZ25lZCwgdW5zaWduZWQpOwotc3RydWN0IGhvc3RlbnQgKmFuZHJvaWRfZ2V0aG9zdGJ5YWRkcmZvcm5ldF9wcm94eShjb25zdCB2b2lkICosIHNvY2tsZW5fdCwgaW50ICwgdW5zaWduZWQpOwotc3RydWN0IGhvc3RlbnQgKmFuZHJvaWRfZ2V0aG9zdGJ5bmFtZWZvcm5ldChjb25zdCBjaGFyICosIGludCwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKyNkZWZpbmUgX191c2VkX2luX25ldGQgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSAoImRlZmF1bHQiKSkpCisKK3N0cnVjdCBob3N0ZW50ICphbmRyb2lkX2dldGhvc3RieWFkZHJmb3JuZXQoY29uc3Qgdm9pZCAqLCBzb2NrbGVuX3QsIGludCwgdW5zaWduZWQsIHVuc2lnbmVkKSBfX3VzZWRfaW5fbmV0ZDsKK3N0cnVjdCBob3N0ZW50ICphbmRyb2lkX2dldGhvc3RieW5hbWVmb3JuZXQoY29uc3QgY2hhciAqLCBpbnQsIHVuc2lnbmVkLCB1bnNpZ25lZCkgX191c2VkX2luX25ldGQ7CiBpbnQgYW5kcm9pZF9nZXRhZGRyaW5mb2Zvcm5ldChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0IGFkZHJpbmZvICosIHVuc2lnbmVkLAotCQl1bnNpZ25lZCwgc3RydWN0IGFkZHJpbmZvICoqKTsKLWludCBhbmRyb2lkX2dldG5hbWVpbmZvZm9ybmV0KGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QsIGNoYXIgKiwgc2l6ZV90LCBjaGFyICosIHNpemVfdCwKLQkJIGludCwgdW5zaWduZWQsIHVuc2lnbmVkKTsKKwkJdW5zaWduZWQsIHN0cnVjdCBhZGRyaW5mbyAqKikgX191c2VkX2luX25ldGQ7CiAKIC8qIHNldCBuYW1lIHNlcnZlcnMgZm9yIGEgbmV0d29yayAqLwogZXh0ZXJuIHZvaWQgX3Jlc29sdl9zZXRfbmFtZXNlcnZlcnNfZm9yX25ldCh1bnNpZ25lZCBuZXRpZCwKLSAgICBjb25zdCBjaGFyKiogc2VydmVycywgaW50IG51bXNlcnZlcnMsIGNvbnN0IGNoYXIgKmRvbWFpbnMpOworICAgIGNvbnN0IGNoYXIqKiBzZXJ2ZXJzLCBpbnQgbnVtc2VydmVycywgY29uc3QgY2hhciAqZG9tYWlucykgX191c2VkX2luX25ldGQ7CiAKIC8qIGZsdXNoIHRoZSBjYWNoZSBhc3NvY2lhdGVkIHdpdGggYSBjZXJ0YWluIG5ldHdvcmsgKi8KLWV4dGVybiB2b2lkIF9yZXNvbHZfZmx1c2hfY2FjaGVfZm9yX25ldCh1bnNpZ25lZCBuZXRpZCk7CitleHRlcm4gdm9pZCBfcmVzb2x2X2ZsdXNoX2NhY2hlX2Zvcl9uZXQodW5zaWduZWQgbmV0aWQpIF9fdXNlZF9pbl9uZXRkOworCisvKiBkZWxldGUgdGhlIGNhY2hlIGFzc29jaWF0ZWQgd2l0aCBhIGNlcnRhaW4gbmV0d29yayAqLworZXh0ZXJuIHZvaWQgX3Jlc29sdl9kZWxldGVfY2FjaGVfZm9yX25ldCh1bnNpZ25lZCBuZXRpZCkgX191c2VkX2luX25ldGQ7CisKKy8qIEludGVybmFsIHVzZSBvbmx5LiAqLworc3RydWN0IGhvc3RlbnQgKmFuZHJvaWRfZ2V0aG9zdGJ5YWRkcmZvcm5ldF9wcm94eShjb25zdCB2b2lkICosIHNvY2tsZW5fdCwgaW50ICwgdW5zaWduZWQpOworaW50IGFuZHJvaWRfZ2V0bmFtZWluZm9mb3JuZXQoY29uc3Qgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCwgY2hhciAqLCBzaXplX3QsIGNoYXIgKiwgc2l6ZV90LAorCQkgaW50LCB1bnNpZ25lZCwgdW5zaWduZWQpOwogCiBfX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9saWJjL2Rucy9pbmNsdWRlL3Jlc29sdl9wcml2YXRlLmggYi9saWJjL2Rucy9pbmNsdWRlL3Jlc29sdl9wcml2YXRlLmgKaW5kZXggODkxNGZhZS4uZjRjNjdmMyAxMDA2NDQKLS0tIGEvbGliYy9kbnMvaW5jbHVkZS9yZXNvbHZfcHJpdmF0ZS5oCisrKyBiL2xpYmMvZG5zL2luY2x1ZGUvcmVzb2x2X3ByaXZhdGUuaApAQCAtNjAsNiArNjAsOSBAQAogI2luY2x1ZGUgInJlc29sdl9zdGF0aWMuaCIKICNpbmNsdWRlIDxuZXQvaWYuaD4KIAorLyogRGVzcGl0ZSB0aGlzIGZpbGUncyBuYW1lLCBpdCdzIHBhcnQgb2YgbGlicmVzb2x2LiBPbiBBbmRyb2lkLCB0aGF0IG1lYW5zIGl0J3MgcGFydCBvZiBsaWJjIDotKCAqLworI3ByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwdXNoKGRlZmF1bHQpCisKIC8qCiAgKiBSZXZpc2lvbiBpbmZvcm1hdGlvbi4gIFRoaXMgaXMgdGhlIHJlbGVhc2UgZGF0ZSBpbiBZWVlZTU1ERCBmb3JtYXQuCiAgKiBJdCBjYW4gY2hhbmdlIGV2ZXJ5IGRheSBzbyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gd2l0aCBpdCBpcyB1c2UgaXQKQEAgLTI3OSw4ICsyODIsOSBAQAogCiAvKiBUaGluZ3MgaW52b2x2aW5nIGFuIGludGVybmFsIChzdGF0aWMpIHJlc29sdmVyIGNvbnRleHQuICovCiBfX0JFR0lOX0RFQ0xTCi1leHRlcm4gc3RydWN0IF9fcmVzX3N0YXRlICpfX3Jlc19nZXRfc3RhdGUodm9pZCk7Ci1leHRlcm4gdm9pZCBfX3Jlc19wdXRfc3RhdGUoc3RydWN0IF9fcmVzX3N0YXRlICopOworCitfX0xJQkNfSElEREVOX18gZXh0ZXJuIHN0cnVjdCBfX3Jlc19zdGF0ZSAqX19yZXNfZ2V0X3N0YXRlKHZvaWQpOworX19MSUJDX0hJRERFTl9fIGV4dGVybiB2b2lkIF9fcmVzX3B1dF9zdGF0ZShzdHJ1Y3QgX19yZXNfc3RhdGUgKik7CiAKICNpZm5kZWYgQU5EUk9JRF9DSEFOR0VTCiAvKgpAQCAtMzIwLDcgKzMyNCw3IEBACiB2b2lkCQlwX3F1ZXJ5KGNvbnN0IHVfY2hhciAqKTsKIHZvaWQJCXJlc19jbG9zZSh2b2lkKTsKIGludAkJcmVzX2luaXQodm9pZCk7Ci1pbnQJCXJlc19vcHQoaW50LCB1X2NoYXIgKiwgaW50LCBpbnQpOworX19MSUJDX0hJRERFTl9fIGludAkJcmVzX29wdChpbnQsIHVfY2hhciAqLCBpbnQsIGludCk7CiBpbnQJCXJlc19pc291cnNlcnZlcihjb25zdCBzdHJ1Y3Qgc29ja2FkZHJfaW4gKik7CiBpbnQJCXJlc19ta3F1ZXJ5KGludCwgY29uc3QgY2hhciAqLCBpbnQsIGludCwgY29uc3QgdV9jaGFyICosIGludCwgY29uc3QgdV9jaGFyICosIHVfY2hhciAqLCBpbnQpOwogaW50CQlyZXNfcXVlcnkoY29uc3QgY2hhciAqLCBpbnQsIGludCwgdV9jaGFyICosIGludCk7CkBAIC0zMzksMTEgKzM0MywxMSBAQAogICogTWFrZSB0aGVtIGdvIGF3YXkgaWYgYSBjbGllbnQgaXMgaW5jbHVkaW5nIHRoaXMKICAqCiAgKi8KLWV4dGVybiBjb25zdCBzdHJ1Y3QgcmVzX3N5bSBfX3Bfa2V5X3N5bXNbXTsKLWV4dGVybiBjb25zdCBzdHJ1Y3QgcmVzX3N5bSBfX3BfY2VydF9zeW1zW107CitfX0xJQkNfSElEREVOX18gZXh0ZXJuIGNvbnN0IHN0cnVjdCByZXNfc3ltIF9fcF9rZXlfc3ltc1tdOworX19MSUJDX0hJRERFTl9fIGV4dGVybiBjb25zdCBzdHJ1Y3QgcmVzX3N5bSBfX3BfY2VydF9zeW1zW107CiBleHRlcm4gY29uc3Qgc3RydWN0IHJlc19zeW0gX19wX2NsYXNzX3N5bXNbXTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgcmVzX3N5bSBfX3BfdHlwZV9zeW1zW107Ci1leHRlcm4gY29uc3Qgc3RydWN0IHJlc19zeW0gX19wX3Jjb2RlX3N5bXNbXTsKK19fTElCQ19ISURERU5fXyBleHRlcm4gY29uc3Qgc3RydWN0IHJlc19zeW0gX19wX3Jjb2RlX3N5bXNbXTsKICNlbmRpZiAvKiBTSEFSRURfTElCQklORCAqLwogCiAjaWZuZGVmIEFORFJPSURfQ0hBTkdFUwpAQCAtNDM0LDcgKzQzOCw3IEBACiBjb25zdCBjaGFyICoJcF90aW1lKHVpbnQzMl90KTsKIGNvbnN0IGNoYXIgKglwX3R5cGUoaW50KTsKIGNvbnN0IGNoYXIgKglwX3Jjb2RlKGludCk7Ci1jb25zdCBjaGFyICoJcF9zb2NrdW4odW5pb24gcmVzX3NvY2thZGRyX3VuaW9uLCBjaGFyICosIHNpemVfdCk7CitfX0xJQkNfSElEREVOX18gY29uc3QgY2hhciAqCXBfc29ja3VuKHVuaW9uIHJlc19zb2NrYWRkcl91bmlvbiwgY2hhciAqLCBzaXplX3QpOwogY29uc3QgdV9jaGFyICoJcF9jZG5uYW1lKGNvbnN0IHVfY2hhciAqLCBjb25zdCB1X2NoYXIgKiwgaW50LCBGSUxFICopOwogY29uc3QgdV9jaGFyICoJcF9jZG5hbWUoY29uc3QgdV9jaGFyICosIGNvbnN0IHVfY2hhciAqLCBGSUxFICopOwogY29uc3QgdV9jaGFyICoJcF9mcW5uYW1lKGNvbnN0IHVfY2hhciAqLCBjb25zdCB1X2NoYXIgKiwKQEAgLTQ0OCwxMiArNDUyLDEyIEBACiAJCQkJICAgICBjb25zdCB1X2NoYXIgKik7CiBpbnQJCXJlc19xdWVyaWVzbWF0Y2goY29uc3QgdV9jaGFyICosIGNvbnN0IHVfY2hhciAqLAogCQkJCSAgICAgIGNvbnN0IHVfY2hhciAqLCBjb25zdCB1X2NoYXIgKik7Ci1jb25zdCBjaGFyICoJcF9zZWN0aW9uKGludCwgaW50KTsKK19fTElCQ19ISURERU5fXyBjb25zdCBjaGFyICoJcF9zZWN0aW9uKGludCwgaW50KTsKIC8qIFRoaW5ncyBpbnZvbHZpbmcgYSByZXNvbHZlciBjb250ZXh0LiAqLwogaW50CQlyZXNfbmluaXQocmVzX3N0YXRlKTsKIGludAkJcmVzX25pc291cnNlcnZlcihjb25zdCByZXNfc3RhdGUsIGNvbnN0IHN0cnVjdCBzb2NrYWRkcl9pbiAqKTsKIHZvaWQJCWZwX3Jlc3N0YXQoY29uc3QgcmVzX3N0YXRlLCBGSUxFICopOwotdm9pZAkJcmVzX3BxdWVyeShjb25zdCByZXNfc3RhdGUsIGNvbnN0IHVfY2hhciAqLCBpbnQsIEZJTEUgKik7CitfX0xJQkNfSElEREVOX18gdm9pZAkJcmVzX3BxdWVyeShjb25zdCByZXNfc3RhdGUsIGNvbnN0IHVfY2hhciAqLCBpbnQsIEZJTEUgKik7CiBjb25zdCBjaGFyICoJcmVzX2hvc3RhbGlhcyhjb25zdCByZXNfc3RhdGUsIGNvbnN0IGNoYXIgKiwgY2hhciAqLCBzaXplX3QpOwogaW50CQlyZXNfbnF1ZXJ5KHJlc19zdGF0ZSwgY29uc3QgY2hhciAqLCBpbnQsIGludCwgdV9jaGFyICosIGludCk7CiBpbnQJCXJlc19uc2VhcmNoKHJlc19zdGF0ZSwgY29uc3QgY2hhciAqLCBpbnQsIGludCwgdV9jaGFyICosIGludCk7CkBAIC00NzEsMjkgKzQ3NSwzMSBAQAogCQkJCSAgICAgIGNoYXIgKiwgc2l6ZV90LAogCQkJCSAgICAgIHVuaW9uIHJlc19zb2NrYWRkcl91bmlvbiAqLCBpbnQpOwogdm9pZAkJcmVzX25jbG9zZShyZXNfc3RhdGUpOwotaW50CQlyZXNfbm9wdChyZXNfc3RhdGUsIGludCwgdV9jaGFyICosIGludCwgaW50KTsKK19fTElCQ19ISURERU5fXyBpbnQJCXJlc19ub3B0KHJlc19zdGF0ZSwgaW50LCB1X2NoYXIgKiwgaW50LCBpbnQpOwogdm9pZAkJcmVzX3NlbmRfc2V0cWhvb2socmVzX3NlbmRfcWhvb2spOwogdm9pZAkJcmVzX3NlbmRfc2V0cmhvb2socmVzX3NlbmRfcmhvb2spOwotaW50CQlfX3Jlc192aW5pdChyZXNfc3RhdGUsIGludCk7CitfX0xJQkNfSElEREVOX18gaW50CQlfX3Jlc192aW5pdChyZXNfc3RhdGUsIGludCk7CiB2b2lkCQlyZXNfZGVzdHJveXNlcnZpY2VsaXN0KHZvaWQpOwogY29uc3QgY2hhciAqCXJlc19zZXJ2aWNlbmFtZSh1aW50MTZfdCwgY29uc3QgY2hhciAqKTsKIGNvbnN0IGNoYXIgKglyZXNfcHJvdG9jb2xuYW1lKGludCk7CiB2b2lkCQlyZXNfZGVzdHJveXByb3RvbGlzdCh2b2lkKTsKIHZvaWQJCXJlc19idWlsZHByb3RvbGlzdCh2b2lkKTsKLWNvbnN0IGNoYXIgKglyZXNfZ2V0X25pYmJsZXN1ZmZpeChyZXNfc3RhdGUpOwotY29uc3QgY2hhciAqCXJlc19nZXRfbmliYmxlc3VmZml4MihyZXNfc3RhdGUpOwotdm9pZAkJcmVzX25kZXN0cm95KHJlc19zdGF0ZSk7Ci11aW50MTZfdAlyZXNfbmFtZXRvY2xhc3MoY29uc3QgY2hhciAqLCBpbnQgKik7Ci11aW50MTZfdAlyZXNfbmFtZXRvdHlwZShjb25zdCBjaGFyICosIGludCAqKTsKLXZvaWQJCXJlc19zZXRzZXJ2ZXJzKHJlc19zdGF0ZSwKK19fTElCQ19ISURERU5fXyBjb25zdCBjaGFyICoJcmVzX2dldF9uaWJibGVzdWZmaXgocmVzX3N0YXRlKTsKK19fTElCQ19ISURERU5fXyBjb25zdCBjaGFyICoJcmVzX2dldF9uaWJibGVzdWZmaXgyKHJlc19zdGF0ZSk7CitfX0xJQkNfSElEREVOX18gdm9pZAkJcmVzX25kZXN0cm95KHJlc19zdGF0ZSk7CitfX0xJQkNfSElEREVOX18gdWludDE2X3QJcmVzX25hbWV0b2NsYXNzKGNvbnN0IGNoYXIgKiwgaW50ICopOworX19MSUJDX0hJRERFTl9fIHVpbnQxNl90CXJlc19uYW1ldG90eXBlKGNvbnN0IGNoYXIgKiwgaW50ICopOworX19MSUJDX0hJRERFTl9fIHZvaWQJCXJlc19zZXRzZXJ2ZXJzKHJlc19zdGF0ZSwKIAkJCQkgICAgY29uc3QgdW5pb24gcmVzX3NvY2thZGRyX3VuaW9uICosIGludCk7Ci1pbnQJCXJlc19nZXRzZXJ2ZXJzKHJlc19zdGF0ZSwKK19fTElCQ19ISURERU5fXyBpbnQJCXJlc19nZXRzZXJ2ZXJzKHJlc19zdGF0ZSwKIAkJCQkgICAgdW5pb24gcmVzX3NvY2thZGRyX3VuaW9uICosIGludCk7CiAKLXZvaWQgcmVzX3NldG5ldGlkKHJlc19zdGF0ZSwgdW5zaWduZWQpOwotdm9pZCByZXNfc2V0bWFyayhyZXNfc3RhdGUsIHVuc2lnbmVkKTsKK19fTElCQ19ISURERU5fXyB2b2lkIHJlc19zZXRuZXRpZChyZXNfc3RhdGUsIHVuc2lnbmVkKTsKK19fTElCQ19ISURERU5fXyB2b2lkIHJlc19zZXRtYXJrKHJlc19zdGF0ZSwgdW5zaWduZWQpOwogdV9pbnQgIHJlc19yYW5kb21pZCh2b2lkKTsKIAogX19FTkRfREVDTFMKIAorI3ByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwb3AKKwogI2VuZGlmIC8qICFfUkVTT0xWX1BSSVZBVEVfSF8gKi8KZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9kaXJlbnQuaCBiL2xpYmMvaW5jbHVkZS9kaXJlbnQuaAppbmRleCA3MWViMmU3Li5hODQ5YTYxIDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvZGlyZW50LmgKKysrIGIvbGliYy9pbmNsdWRlL2RpcmVudC5oCkBAIC03NSw3ICs3NSw2IEBACiBleHRlcm4gaW50IGFscGhhc29ydDY0KGNvbnN0IHN0cnVjdCBkaXJlbnQ2NCoqLCBjb25zdCBzdHJ1Y3QgZGlyZW50NjQqKik7CiBleHRlcm4gaW50IHNjYW5kaXIoY29uc3QgY2hhciosIHN0cnVjdCBkaXJlbnQqKiosIGludCAoKikoY29uc3Qgc3RydWN0IGRpcmVudCopLCBpbnQgKCopKGNvbnN0IHN0cnVjdCBkaXJlbnQqKiwgY29uc3Qgc3RydWN0IGRpcmVudCoqKSk7CiBleHRlcm4gaW50IHNjYW5kaXI2NChjb25zdCBjaGFyKiwgc3RydWN0IGRpcmVudDY0KioqLCBpbnQgKCopKGNvbnN0IHN0cnVjdCBkaXJlbnQ2NCopLCBpbnQgKCopKGNvbnN0IHN0cnVjdCBkaXJlbnQ2NCoqLCBjb25zdCBzdHJ1Y3QgZGlyZW50NjQqKikpOwotZXh0ZXJuIGludCBnZXRkZW50cyh1bnNpZ25lZCBpbnQsIHN0cnVjdCBkaXJlbnQqLCB1bnNpZ25lZCBpbnQpOwogCiBfX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvZXJybm8uaCBiL2xpYmMvaW5jbHVkZS9lcnJuby5oCmluZGV4IDJlNWNlNWYuLjFhMzZiN2EgMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9lcnJuby5oCisrKyBiL2xpYmMvaW5jbHVkZS9lcnJuby5oCkBAIC00MSw3ICs0MSw3IEBACiAjZW5kaWYKIAogLyogaW50ZXJuYWwgZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSB0aHJlYWQtc3BlY2lmaWMgZXJybm8gKi8KLWV4dGVybiB2b2xhdGlsZSBpbnQqICAgX19lcnJubyh2b2lkKTsKK2V4dGVybiB2b2xhdGlsZSBpbnQqIF9fZXJybm8odm9pZCkgX19wdXJlMjsKIAogLyogYSBtYWNybyBleHBhbmRpbmcgdG8gdGhlIGVycm5vIGwtdmFsdWUgKi8KICNkZWZpbmUgIGVycm5vICAgKCpfX2Vycm5vKCkpCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvZmNudGwuaCBiL2xpYmMvaW5jbHVkZS9mY250bC5oCmluZGV4IGNkNjgxNTQuLjQ0NTBiYjYgMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9mY250bC5oCisrKyBiL2xpYmMvaW5jbHVkZS9mY250bC5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZmFkdmlzZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZjbnRsLmg+CisjaW5jbHVkZSA8bGludXgvdWlvLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+ICAvKiB0aGlzIGlzIG5vdCByZXF1aXJlZCwgYnV0IG1ha2VzIGNsaWVudCBjb2RlIG11Y2ggaGFwcGllciAqLwogCiBfX0JFR0lOX0RFQ0xTCkBAIC01MSw5ICs1MiwxMiBAQAogI2RlZmluZSBGX1NFVExLVzY0IEZfU0VUTEtXCiAjZW5kaWYKIAotI2lmbmRlZiBPX0FTWU5DCi0jZGVmaW5lIE9fQVNZTkMgIEZBU1lOQwotI2VuZGlmCisjZGVmaW5lIE9fQVNZTkMgRkFTWU5DCisKKyNkZWZpbmUgU1BMSUNFX0ZfTU9WRSAxCisjZGVmaW5lIFNQTElDRV9GX05PTkJMT0NLIDIKKyNkZWZpbmUgU1BMSUNFX0ZfTU9SRSA0CisjZGVmaW5lIFNQTElDRV9GX0dJRlQgOAogCiAjZGVmaW5lIFNZTkNfRklMRV9SQU5HRV9XQUlUX0JFRk9SRSAxCiAjZGVmaW5lIFNZTkNfRklMRV9SQU5HRV9XUklURSAyCkBAIC03MCw3ICs3NCwxMCBAQAogZXh0ZXJuIGludCBvcGVuNjQoY29uc3QgY2hhciosIGludCwgLi4uKTsKIGV4dGVybiBpbnQgcG9zaXhfZmFsbG9jYXRlNjQoaW50LCBvZmY2NF90LCBvZmY2NF90KTsKIGV4dGVybiBpbnQgcG9zaXhfZmFsbG9jYXRlKGludCwgb2ZmX3QsIG9mZl90KTsKK2V4dGVybiBzc2l6ZV90IHNwbGljZShpbnQsIG9mZjY0X3QqLCBpbnQsIG9mZjY0X3QqLCBzaXplX3QsIHVuc2lnbmVkIGludCk7CitleHRlcm4gc3NpemVfdCB0ZWUoaW50LCBpbnQsIHNpemVfdCwgdW5zaWduZWQgaW50KTsKIGV4dGVybiBpbnQgdW5saW5rYXQoaW50LCBjb25zdCBjaGFyKiwgaW50KTsKK2V4dGVybiBzc2l6ZV90IHZtc3BsaWNlKGludCwgY29uc3Qgc3RydWN0IGlvdmVjKiwgc2l6ZV90LCB1bnNpZ25lZCBpbnQpOwogCiAjaWYgZGVmaW5lZChfX0JJT05JQ19GT1JUSUZZKQogCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvbGltaXRzLmggYi9saWJjL2luY2x1ZGUvbGltaXRzLmgKaW5kZXggZGM0NTkwMi4uZmIwOTY1NyAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL2xpbWl0cy5oCisrKyBiL2xpYmMvaW5jbHVkZS9saW1pdHMuaApAQCAtMTEyLDcgKzExMiw3IEBACiAKICNkZWZpbmUgU1NJWkVfTUFYIExPTkdfTUFYCiAKLSNkZWZpbmUgTUJfTEVOX01BWCA2CisjZGVmaW5lIE1CX0xFTl9NQVggNAogCiAvKiBOZXcgY29kZSBzaG91bGQgdXNlIHN5c2NvbmYoX1NDX1BBR0VfU0laRSkgaW5zdGVhZC4gKi8KICNpZm5kZWYgUEFHRV9TSVpFCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvbWFsbG9jLmggYi9saWJjL2luY2x1ZGUvbWFsbG9jLmgKaW5kZXggOWE0ZTMyNC4uZTZlYTI3NiAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL21hbGxvYy5oCisrKyBiL2xpYmMvaW5jbHVkZS9tYWxsb2MuaApAQCAtMzUsOSArMzUsNiBAQAogZXh0ZXJuIHZvaWQqIG1lbWFsaWduKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBieXRlX2NvdW50KSBfX21hbGxvY2Z1bmMgX193dXIgX19hdHRyaWJ1dGVfXygoYWxsb2Nfc2l6ZSgyKSkpOwogZXh0ZXJuIHNpemVfdCBtYWxsb2NfdXNhYmxlX3NpemUoY29uc3Qgdm9pZCogcCk7CiAKLWV4dGVybiB2b2lkKiB2YWxsb2Moc2l6ZV90IGJ5dGVfY291bnQpIF9fbWFsbG9jZnVuYyBfX3d1ciBfX2F0dHJpYnV0ZV9fKChhbGxvY19zaXplKDEpKSk7Ci1leHRlcm4gdm9pZCogcHZhbGxvYyhzaXplX3QgYnl0ZV9jb3VudCkgX19tYWxsb2NmdW5jIF9fd3VyIF9fYXR0cmlidXRlX18oKGFsbG9jX3NpemUoMSkpKTsKLQogI2lmbmRlZiBTVFJVQ1RfTUFMTElORk9fREVDTEFSRUQKICNkZWZpbmUgU1RSVUNUX01BTExJTkZPX0RFQ0xBUkVEIDEKIHN0cnVjdCBtYWxsaW5mbyB7CmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvbmV0ZGIuaCBiL2xpYmMvaW5jbHVkZS9uZXRkYi5oCmluZGV4IGVhZDU5NTQuLjUyN2Q1YzEgMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9uZXRkYi5oCisrKyBiL2xpYmMvaW5jbHVkZS9uZXRkYi5oCkBAIC0xOTYsNiArMTk2LDggQEAKICNkZWZpbmUJU0NPUEVfREVMSU1JVEVSCSclJwogCiBfX0JFR0lOX0RFQ0xTCisjcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2goZGVmYXVsdCkKKwogLyogQklPTklDLUJFR0lOICovCiAjZGVmaW5lICBoX2Vycm5vICAgKCpfX2dldF9oX2Vycm5vKCkpCiBpbnQqICBfX2dldF9oX2Vycm5vKHZvaWQpOwpAQCAtMjQ1LDYgKzI0Nyw3IEBACiB2b2lkIHNldG5ldGdyZW50KGNvbnN0IGNoYXIgKik7CiB2b2lkIHNldHNlcnZlbnQoaW50KTsKIAorI3ByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwb3AKIF9fRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiAhX05FVERCX0hfICovCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvcHRocmVhZC5oIGIvbGliYy9pbmNsdWRlL3B0aHJlYWQuaAppbmRleCA1YzliNjI2Li4yOWNhYWZjIDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvcHRocmVhZC5oCisrKyBiL2xpYmMvaW5jbHVkZS9wdGhyZWFkLmgKQEAgLTIyNiw3ICsyMjYsNyBAQAogaW50IHB0aHJlYWRfcndsb2NrX3VubG9jayhwdGhyZWFkX3J3bG9ja190ICpyd2xvY2spIF9fbm9ubnVsbCgoMSkpOwogaW50IHB0aHJlYWRfcndsb2NrX3dybG9jayhwdGhyZWFkX3J3bG9ja190KikgX19ub25udWxsKCgxKSk7CiAKLXB0aHJlYWRfdCBwdGhyZWFkX3NlbGYodm9pZCk7CitwdGhyZWFkX3QgcHRocmVhZF9zZWxmKHZvaWQpIF9fcHVyZTI7CiAKIGludCBwdGhyZWFkX3NldG5hbWVfbnAocHRocmVhZF90LCBjb25zdCBjaGFyKikgX19ub25udWxsKCgyKSk7CiAKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9yZXNvbHYuaCBiL2xpYmMvaW5jbHVkZS9yZXNvbHYuaAppbmRleCAzNmI5M2VlLi5jODg5OWVkIDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvcmVzb2x2LmgKKysrIGIvbGliYy9pbmNsdWRlL3Jlc29sdi5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgogCiBfX0JFR0lOX0RFQ0xTCisjcHJhZ21hIEdDQyB2aXNpYmlsaXR5IHB1c2goZGVmYXVsdCkKIAogc3RydWN0IHJlc19zdGF0ZTsKIApAQCAtNTIsNiArNTMsNyBAQAogZXh0ZXJuIGludCBkbl9jb21wKGNvbnN0IGNoYXIqLCB1X2NoYXIqLCBpbnQsIHVfY2hhcioqLCB1X2NoYXIqKik7CiBleHRlcm4gaW50IGRuX2V4cGFuZChjb25zdCB1X2NoYXIqLCBjb25zdCB1X2NoYXIqLCBjb25zdCB1X2NoYXIqLCBjaGFyKiwgaW50KTsKIAorI3ByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwb3AKIF9fRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBfUkVTT0xWX0hfICovCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvc2V0am1wLmggYi9saWJjL2luY2x1ZGUvc2V0am1wLmgKaW5kZXggNjhmZGNlZi4uMDJiMDZmNSAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL3NldGptcC5oCisrKyBiL2xpYmMvaW5jbHVkZS9zZXRqbXAuaApAQCAtNTAsNyArNTAsNiBAQAogCiBpbnQgICAgIF9zZXRqbXAoam1wX2J1Zik7CiB2b2lkICAgIF9sb25nam1wKGptcF9idWYsIGludCk7Ci12b2lkICAgIGxvbmdqbXBlcnJvcih2b2lkKTsKIAogaW50ICAgICBzZXRqbXAoam1wX2J1Zik7CiB2b2lkICAgIGxvbmdqbXAoam1wX2J1ZiwgaW50KTsKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zaWduYWwuaCBiL2xpYmMvaW5jbHVkZS9zaWduYWwuaAppbmRleCA0NWMxY2RhLi5mMTg0OWM1IDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvc2lnbmFsLmgKKysrIGIvbGliYy9pbmNsdWRlL3NpZ25hbC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bGltaXRzLmg+CQkvKiBGb3IgTE9OR19CSVQgKi8KICNpbmNsdWRlIDxzdHJpbmcuaD4JCS8qIEZvciBtZW1zZXQoKSAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9zaWdjb250ZXh0Lmg+CiAKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQogLyogRm9yIDY0LWJpdCAoYW5kIG1pcHMpLCB0aGUga2VybmVsJ3Mgc3RydWN0IHNpZ2FjdGlvbiBkb2Vzbid0IG1hdGNoIHRoZSBQT1NJWCBvbmUsCkBAIC0xMDIsOCArMTAzLDYgQEAKIGV4dGVybiBpbnQgc2lnYWN0aW9uKGludCwgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiosIHN0cnVjdCBzaWdhY3Rpb24qKTsKIAogZXh0ZXJuIHNpZ2hhbmRsZXJfdCBzaWduYWwoaW50LCBzaWdoYW5kbGVyX3QpOwotZXh0ZXJuIHNpZ2hhbmRsZXJfdCBic2Rfc2lnbmFsKGludCwgc2lnaGFuZGxlcl90KTsKLWV4dGVybiBzaWdoYW5kbGVyX3Qgc3lzdl9zaWduYWwoaW50LCBzaWdoYW5kbGVyX3QpOwogCiBleHRlcm4gaW50IHNpZ2ludGVycnVwdChpbnQsIGludCk7CiAKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zdGRpby5oIGIvbGliYy9pbmNsdWRlL3N0ZGlvLmgKaW5kZXggOTBmNTk1Yy4uZTUzMmRlNCAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL3N0ZGlvLmgKKysrIGIvbGliYy9pbmNsdWRlL3N0ZGlvLmgKQEAgLTI1NCw3ICsyNTQsOSBAQAogaW50IHZkcHJpbnRmKGludCwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3QsIF9fdmFfbGlzdCkgX19wcmludGZsaWtlKDIsIDApOwogCiAjaWZuZGVmIF9fQVVESVRfXworI2lmICFkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pIHx8IF9fU1REQ19WRVJTSU9OX18gPCAyMDExMTJMCiBjaGFyKiBnZXRzKGNoYXIqKSBfX3dhcm5hdHRyKCJnZXRzIGlzIHZlcnkgdW5zYWZlOyBjb25zaWRlciB1c2luZyBmZ2V0cyIpOworI2VuZGlmCiBpbnQgc3ByaW50ZihjaGFyKiBfX3Jlc3RyaWN0LCBjb25zdCBjaGFyKiBfX3Jlc3RyaWN0LCAuLi4pCiAgICAgX19wcmludGZsaWtlKDIsIDMpIF9fd2FybmF0dHIoInNwcmludGYgaXMgb2Z0ZW4gbWlzdXNlZDsgcGxlYXNlIHVzZSBzbnByaW50ZiIpOwogY2hhciogdG1wbmFtKGNoYXIqKSBfX3dhcm5hdHRyKCJ0bXBuYW0gcG9zc2libHkgdXNlZCB1bnNhZmVseTsgY29uc2lkZXIgdXNpbmcgbWtzdGVtcCIpOwpAQCAtMjk2LDEyICsyOTgsMTAgQEAKICAqLwogI2lmIF9fQlNEX1ZJU0lCTEUgfHwgX19QT1NJWF9WSVNJQkxFIHx8IF9fWFBHX1ZJU0lCTEUKICNkZWZpbmUJTF9jdGVybWlkCTEwMjQJLyogc2l6ZSBmb3IgY3Rlcm1pZCgpOyBQQVRIX01BWCAqLwotI2RlZmluZSBMX2N1c2VyaWQJOQkvKiBzaXplIGZvciBjdXNlcmlkKCk7IFVUX05BTUVTSVpFICsgMSAqLwogCiBfX0JFR0lOX0RFQ0xTCiAjaWYgMCAvKiBNSVNTSU5HIEZST00gQklPTklDICovCiBjaGFyCSpjdGVybWlkKGNoYXIgKik7Ci1jaGFyCSpjdXNlcmlkKGNoYXIgKik7CiAjZW5kaWYgLyogTUlTU0lORyAqLwogRklMRQkqZmRvcGVuKGludCwgY29uc3QgY2hhciAqKTsKIGludAkgZmlsZW5vKEZJTEUgKik7CkBAIC0zMzksOCArMzM5LDYgQEAKIAkJX19wcmludGZsaWtlKDIsIDMpOwogY2hhcgkqZmdldGxuKEZJTEUgKiBfX3Jlc3RyaWN0LCBzaXplX3QgKiBfX3Jlc3RyaWN0KTsKIGludAkgZnB1cmdlKEZJTEUgKik7Ci1pbnQJIGdldHcoRklMRSAqKTsKLWludAkgcHV0dyhpbnQsIEZJTEUgKik7CiB2b2lkCSBzZXRidWZmZXIoRklMRSAqLCBjaGFyICosIGludCk7CiBpbnQJIHNldGxpbmVidWYoRklMRSAqKTsKIGludAkgdmFzcHJpbnRmKGNoYXIgKiogX19yZXN0cmljdCwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3QsCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvc3RkbGliLmggYi9saWJjL2luY2x1ZGUvc3RkbGliLmgKaW5kZXggODM0ZGNkYS4uNjJiN2E2NyAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL3N0ZGxpYi5oCisrKyBiL2xpYmMvaW5jbHVkZS9zdGRsaWIuaApAQCAtMTAwLDI1ICsxMDAsMjcgQEAKIGV4dGVybiBkb3VibGUgZXJhbmQ0OCh1bnNpZ25lZCBzaG9ydCB4c3ViaVszXSk7CiBleHRlcm4gZG91YmxlIGRyYW5kNDgodm9pZCk7CiBleHRlcm4gdm9pZCBzcmFuZDQ4KGxvbmcpOwotZXh0ZXJuIHVuc2lnbmVkIGludCBhcmM0cmFuZG9tKHZvaWQpOwotZXh0ZXJuIHZvaWQgYXJjNHJhbmRvbV9zdGlyKHZvaWQpOwotZXh0ZXJuIHZvaWQgYXJjNHJhbmRvbV9hZGRyYW5kb20odW5zaWduZWQgY2hhciAqLCBpbnQpOworCit1bnNpZ25lZCBpbnQgYXJjNHJhbmRvbSh2b2lkKTsKK3Vuc2lnbmVkIGludCBhcmM0cmFuZG9tX3VuaWZvcm0odW5zaWduZWQgaW50KTsKK3ZvaWQgYXJjNHJhbmRvbV9idWYodm9pZCosIHNpemVfdCk7CiAKICNkZWZpbmUgUkFORF9NQVggMHg3ZmZmZmZmZgotc3RhdGljIF9faW5saW5lX18gaW50IHJhbmQodm9pZCkgewotICAgIHJldHVybiAoaW50KWxyYW5kNDgoKTsKLX0KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc3JhbmQodW5zaWduZWQgaW50IF9fcykgewotICAgIHNyYW5kNDgoX19zKTsKLX0KLXN0YXRpYyBfX2lubGluZV9fIGxvbmcgcmFuZG9tKHZvaWQpCi17Ci0gICAgcmV0dXJuIGxyYW5kNDgoKTsKLX0KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgc3JhbmRvbSh1bnNpZ25lZCBpbnQgX19zKQotewotICAgIHNyYW5kNDgoX19zKTsKLX0KKworLyogV29yayBhcm91bmQgeDg2L3g4Ni02NCBsaWJ2cHggYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IHBvc3Rwcm9jX3g4Ni5jLiAqLworI2lmIChkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pKSAmJiBkZWZpbmVkKHJhbmQpCisjdW5kZWYgcmFuZAorI2RlZmluZSBfX3JhbmQgbHJhbmQ0OAorI2VuZGlmCisKK2ludCByYW5kKHZvaWQpOworaW50IHJhbmRfcih1bnNpZ25lZCBpbnQqKTsKK3ZvaWQgc3JhbmQodW5zaWduZWQgaW50KTsKKworY2hhciogaW5pdHN0YXRlKHVuc2lnbmVkIGludCwgY2hhciosIHNpemVfdCk7Citsb25nIHJhbmRvbSh2b2lkKTsKK2NoYXIqIHNldHN0YXRlKGNoYXIqKTsKK3ZvaWQgc3JhbmRvbSh1bnNpZ25lZCBpbnQpOwogCiAvKiBCYXNpYyBQVFkgZnVuY3Rpb25zLiAgVGhlc2Ugb25seSB3b3JrIGlmIGRldnB0cyBpcyBtb3VudGVkISAqLwogCkBAIC0xMzgsMjEgKzE0MCwyMSBAQAogICAgIGludCAgcmVtOwogfSBkaXZfdDsKIAotZXh0ZXJuIGRpdl90ICAgZGl2KGludCwgaW50KTsKK2V4dGVybiBkaXZfdCAgIGRpdihpbnQsIGludCkgX19wdXJlMjsKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIGxvbmcgaW50ICBxdW90OwogICAgIGxvbmcgaW50ICByZW07CiB9IGxkaXZfdDsKIAotZXh0ZXJuIGxkaXZfdCAgIGxkaXYobG9uZywgbG9uZyk7CitleHRlcm4gbGRpdl90ICAgbGRpdihsb25nLCBsb25nKSBfX3B1cmUyOwogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgbG9uZyBsb25nIGludCAgcXVvdDsKICAgICBsb25nIGxvbmcgaW50ICByZW07CiB9IGxsZGl2X3Q7CiAKLWV4dGVybiBsbGRpdl90ICAgbGxkaXYobG9uZyBsb25nLCBsb25nIGxvbmcpOworZXh0ZXJuIGxsZGl2X3QgICBsbGRpdihsb25nIGxvbmcsIGxvbmcgbG9uZykgX19wdXJlMjsKIAogLyogQlNEIGNvbXBhdGliaWxpdHkuICovCiBleHRlcm4gY29uc3QgY2hhciogZ2V0cHJvZ25hbWUodm9pZCk7CkBAIC0xNjcsNyArMTY5LDcgQEAKIGV4dGVybiBpbnQJd2N0b21iKGNoYXIgKiwgd2NoYXJfdCk7CiBleHRlcm4gc2l6ZV90CXdjc3RvbWJzKGNoYXIgKiwgY29uc3Qgd2NoYXJfdCAqLCBzaXplX3QpOwogCi0jZGVmaW5lIE1CX0NVUl9NQVggMQorI2RlZmluZSBNQl9DVVJfTUFYIDRVCiAKICNpZiAwIC8qIE1JU1NJTkcgRlJPTSBCSU9OSUMgKi8KIGV4dGVybiBpbnQgb25fZXhpdCh2b2lkICgqKShpbnQsIHZvaWQgKiksIHZvaWQgKik7CmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvc3RyaW5nLmggYi9saWJjL2luY2x1ZGUvc3RyaW5nLmgKaW5kZXggYzlhZTAzYi4uNzcyN2MwZSAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL3N0cmluZy5oCisrKyBiL2xpYmMvaW5jbHVkZS9zdHJpbmcuaApAQCAtNDMsNyArNDMsNiBAQAogZXh0ZXJuIHZvaWQqICBtZW1zZXQodm9pZCAqLCBpbnQsIHNpemVfdCk7CiBleHRlcm4gdm9pZCogIG1lbW1lbShjb25zdCB2b2lkICosIHNpemVfdCwgY29uc3Qgdm9pZCAqLCBzaXplX3QpIF9fcHVyZWZ1bmM7CiAKLWV4dGVybiBjaGFyKiAgaW5kZXgoY29uc3QgY2hhciAqLCBpbnQpIF9fcHVyZWZ1bmM7CiBleHRlcm4gY2hhciogIHN0cmNocihjb25zdCBjaGFyICosIGludCkgX19wdXJlZnVuYzsKIGV4dGVybiBjaGFyKiBfX3N0cmNocl9jaGsoY29uc3QgY2hhciAqLCBpbnQsIHNpemVfdCk7CiAKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zdHJpbmdzLmggYi9saWJjL2luY2x1ZGUvc3RyaW5ncy5oCmluZGV4IDhmNWZlYzUuLmFlMjYxY2YgMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9zdHJpbmdzLmgKKysrIGIvbGliYy9pbmNsdWRlL3N0cmluZ3MuaApAQCAtNDMsMTEgKzQzLDE4IEBACiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiAKIF9fQkVHSU5fREVDTFMKLSNkZWZpbmUgYmNvcHkoYjEsIGIyLCBsZW4pICh2b2lkKShtZW1tb3ZlKChiMiksIChiMSksIChsZW4pKSkKLSNkZWZpbmUgYnplcm8oYiwgbGVuKSAodm9pZCkobWVtc2V0KChiKSwgJ1wwJywgKGxlbikpKQorI2lmIGRlZmluZWQoX19CSU9OSUNfRk9SVElGWSkKKyNkZWZpbmUgYmNvcHkoYjEsIGIyLCBsZW4pIFwKKyAgKHZvaWQpKF9fYnVpbHRpbl9fX21lbW1vdmVfY2hrKChiMiksIChiMSksIChsZW4pLCBfX2JvczAoYjIpKSkKKyNkZWZpbmUgYnplcm8oYiwgbGVuKSBcCisgICh2b2lkKShfX2J1aWx0aW5fX19tZW1zZXRfY2hrKChiKSwgJ1wwJywgKGxlbiksIF9fYm9zMChiKSkpCisjZWxzZQorI2RlZmluZSBiY29weShiMSwgYjIsIGxlbikgKHZvaWQpKF9fYnVpbHRpbl9tZW1tb3ZlKChiMiksIChiMSksIChsZW4pKSkKKyNkZWZpbmUgYnplcm8oYiwgbGVuKSAodm9pZCkoX19idWlsdGluX21lbXNldCgoYiksICdcMCcsIChsZW4pKSkKKyNlbmRpZgorCiAKIGludAkgZmZzKGludCk7Ci1jaGFyCSppbmRleChjb25zdCBjaGFyICosIGludCk7CiBpbnQJIHN0cmNhc2VjbXAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwogaW50CSBzdHJuY2FzZWNtcChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKIApkaWZmIC0tZ2l0IGEvbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oIGIvbGliYy9pbmNsdWRlL3N5cy9pb2N0bC5oCmluZGV4IDQ5ZDQ1MmMuLmExMDE0ZGMgMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9zeXMvaW9jdGwuaAorKysgYi9saWJjL2luY2x1ZGUvc3lzL2lvY3RsLmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxhc20vaW9jdGxzLmg+CiAjaW5jbHVkZSA8YXNtL3Rlcm1iaXRzLmg+CiAjaW5jbHVkZSA8c3lzL2lvY3RsX2NvbXBhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgogCiBfX0JFR0lOX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zeXMvc29ja2V0LmggYi9saWJjL2luY2x1ZGUvc3lzL3NvY2tldC5oCmluZGV4IDdlZGFhYzkuLmFlMmYyMzggMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9zeXMvc29ja2V0LmgKKysrIGIvbGliYy9pbmNsdWRlL3N5cy9zb2NrZXQuaApAQCAtMTA3LDcgKzEwNyw3IEBACiAgIGludCBjbXNnX3R5cGU7CiB9OwogCi0jZGVmaW5lIENNU0dfTlhUSERSKG1oZHIsIGNtc2cpIGNtc2dfbnh0aGRyKChtaGRyKSwgKGNtc2cpKQorI2RlZmluZSBDTVNHX05YVEhEUihtaGRyLCBjbXNnKSBfX2Ntc2dfbnh0aGRyKChtaGRyKSwgKGNtc2cpKQogI2RlZmluZSBDTVNHX0FMSUdOKGxlbikgKCAoKGxlbikrc2l6ZW9mKGxvbmcpLTEpICYgfihzaXplb2YobG9uZyktMSkgKQogI2RlZmluZSBDTVNHX0RBVEEoY21zZykgKCh2b2lkKikoKGNoYXIqKShjbXNnKSArIENNU0dfQUxJR04oc2l6ZW9mKHN0cnVjdCBjbXNnaGRyKSkpKQogI2RlZmluZSBDTVNHX1NQQUNFKGxlbikgKENNU0dfQUxJR04oc2l6ZW9mKHN0cnVjdCBjbXNnaGRyKSkgKyBDTVNHX0FMSUdOKGxlbikpCkBAIC0xMTcsNyArMTE3LDcgQEAKICAgID8gKHN0cnVjdCBjbXNnaGRyKikgKG1zZyktPm1zZ19jb250cm9sIDogKHN0cnVjdCBjbXNnaGRyKikgTlVMTCkKICNkZWZpbmUgQ01TR19PSyhtaGRyLCBjbXNnKSAoKGNtc2cpLT5jbXNnX2xlbiA+PSBzaXplb2Yoc3RydWN0IGNtc2doZHIpICYmICAgKGNtc2cpLT5jbXNnX2xlbiA8PSAodW5zaWduZWQgbG9uZykgICAoKG1oZHIpLT5tc2dfY29udHJvbGxlbiAtICAgKChjaGFyKikoY21zZykgLSAoY2hhciopKG1oZHIpLT5tc2dfY29udHJvbCkpKQogCi1zdHJ1Y3QgY21zZ2hkciogY21zZ19ueHRoZHIoc3RydWN0IG1zZ2hkciosIHN0cnVjdCBjbXNnaGRyKik7CitzdHJ1Y3QgY21zZ2hkciogX19jbXNnX254dGhkcihzdHJ1Y3QgbXNnaGRyKiwgc3RydWN0IGNtc2doZHIqKTsKIAogI2RlZmluZSBTQ01fUklHSFRTIDB4MDEKICNkZWZpbmUgU0NNX0NSRURFTlRJQUxTIDB4MDIKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zeXMvdGltZWIuaCBiL2xpYmMvaW5jbHVkZS9zeXMvdGltZWIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y2ZjI1NS4uMDAwMDAwMAotLS0gYS9saWJjL2luY2x1ZGUvc3lzL3RpbWViLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0jaWZuZGVmIF9TWVNfVElNRUJfSAotI2RlZmluZSBfU1lTX1RJTUVCX0gKLQotI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0KLV9fQkVHSU5fREVDTFMKLQotc3RydWN0IHRpbWViIHsKLSAgICB0aW1lX3QgICAgICAgICAgdGltZTsKLSAgICB1bnNpZ25lZCBzaG9ydCAgbWlsbGl0bTsKLSAgICBzaG9ydCAgICAgICAgICAgdGltZXpvbmU7Ci0gICAgc2hvcnQgICAgICAgICAgIGRzdGZsYWc7Ci19OwotCi1leHRlcm4gaW50ICBmdGltZShzdHJ1Y3QgdGltZWIqICB0aW1lYnVmKTsKLQotX19FTkRfREVDTFMKLQotI2VuZGlmIC8qIF9TWVNfVElNRUJfSCAqLwpkaWZmIC0tZ2l0IGEvbGliYy9pbmNsdWRlL3N5cy90eXBlcy5oIGIvbGliYy9pbmNsdWRlL3N5cy90eXBlcy5oCmluZGV4IDlhNzZhZDIuLmE1ZmE2OTIgMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9zeXMvdHlwZXMuaAorKysgYi9saWJjL2luY2x1ZGUvc3lzL3R5cGVzLmgKQEAgLTkxLDEyICs5MSwxNyBAQAogdHlwZWRlZiBfX3RpbWVfdCB0aW1lX3Q7CiAKIC8qIFRoaXMgaGlzdG9yaWNhbCBhY2NpZGVudCBtZWFucyB0aGF0IHdlIGhhZCBhIDMyLWJpdCBvZmZfdCBvbiAzMi1iaXQgYXJjaGl0ZWN0dXJlcy4gKi8KLSNpZm5kZWYgX09GRl9UX0RFRklORURfCi0jZGVmaW5lIF9PRkZfVF9ERUZJTkVEXworI2lmICFkZWZpbmVkKF9fTFA2NF9fKQogdHlwZWRlZiBfX2tlcm5lbF9vZmZfdCBvZmZfdDsKLSNlbmRpZgogdHlwZWRlZiBfX2tlcm5lbF9sb2ZmX3QgbG9mZl90OwogdHlwZWRlZiBsb2ZmX3Qgb2ZmNjRfdDsKKyNlbHNlCisvKiBXZSBjb3VsZCByZS11c2UgdGhlIExQMzIgZGVmaW5pdGlvbnMsIGJ1dCB0aGF0IHdvdWxkIG1lYW4gdGhhdCBhbHRob3VnaCBvZmZfdCBhbmQgbG9mZl90L29mZjY0X3QKKyAqIHdvdWxkIGJlIHRoZSBzYW1lIHNpemUsIHRoZXkgd291bGRuJ3QgYWN0dWFsbHkgYmUgdGhlIHNhbWUgdHlwZSwgd2hpY2ggY2FuIGxlYWQgdG8gd2FybmluZ3MuICovCit0eXBlZGVmIF9fa2VybmVsX29mZl90IG9mZl90OwordHlwZWRlZiBvZmZfdCBsb2ZmX3Q7Cit0eXBlZGVmIGxvZmZfdCBvZmY2NF90OworI2VuZGlmCiAKIC8qIHdoaWxlIFBPU0lYIHdhbnRzIHRoZXNlIGluIDxzeXMvdHlwZXMuaD4sIHdlCiAgKiBkZWNsYXJlIHRoZW4gaW4gPHB0aHJlYWQuaD4gaW5zdGVhZCAqLwpkaWZmIC0tZ2l0IGEvbGliYy9pbmNsdWRlL3N5cy93YWl0LmggYi9saWJjL2luY2x1ZGUvc3lzL3dhaXQuaAppbmRleCBiMzBiN2VjLi44ZDlhNWY2IDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvc3lzL3dhaXQuaAorKysgYi9saWJjL2luY2x1ZGUvc3lzL3dhaXQuaApAQCAtNDcsNyArNDcsNiBAQAogCiBleHRlcm4gcGlkX3QgIHdhaXQoaW50ICopOwogZXh0ZXJuIHBpZF90ICB3YWl0cGlkKHBpZF90LCBpbnQgKiwgaW50KTsKLWV4dGVybiBwaWRfdCAgd2FpdDMoaW50ICosIGludCwgc3RydWN0IHJ1c2FnZSAqKTsKIGV4dGVybiBwaWRfdCAgd2FpdDQocGlkX3QsIGludCAqLCBpbnQsIHN0cnVjdCBydXNhZ2UgKik7CiAKIC8qIFBvc2l4IHN0YXRlcyB0aGF0IGlkdHlwZV90IHNob3VsZCBiZSBhbiBlbnVtZXJhdGlvbiB0eXBlLCBidXQKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zeXNsb2cuaCBiL2xpYmMvaW5jbHVkZS9zeXNsb2cuaAppbmRleCA0Njc3YzE0Li5hNTJlODExIDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvc3lzbG9nLmgKKysrIGIvbGliYy9pbmNsdWRlL3N5c2xvZy5oCkBAIC0yNSw2ICsyNSw3IEBACiAgKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKICAqIFNVQ0ggREFNQUdFLgogICovCisKICNpZm5kZWYgX1NZU0xPR19ICiAjZGVmaW5lIF9TWVNMT0dfSAogCkBAIC0zNCw3ICszNSw2IEBACiAKIF9fQkVHSU5fREVDTFMKIAotLyogQWxlcnQgbGV2ZWxzICovCiAjZGVmaW5lIExPR19FTUVSRwkwCiAjZGVmaW5lIExPR19BTEVSVAkxCiAjZGVmaW5lIExPR19DUklUCTIKQEAgLTQ3LDggKzQ3LDYgQEAKICNkZWZpbmUgTE9HX1BSSU1BU0sJNwogI2RlZmluZSBMT0dfUFJJKHgpCSgoeCkgJiBMT0dfUFJJTUFTSykKIAotCi0vKiBGYWNpbGl0aWVzOyBub3QgYWN0dWFsbHkgdXNlZCAqLwogI2RlZmluZSBMT0dfS0VSTgkwMDAwCiAjZGVmaW5lIExPR19VU0VSCTAwMTAKICNkZWZpbmUgTE9HX01BSUwJMDAyMApAQCAtNzMsMzAgKzcxLDE1IEBACiAjZGVmaW5lIExPR19GQUNNQVNLCTAxNzcwCiAjZGVmaW5lIExPR19GQUMoeCkJKCgoeCkgPj4gMykgJiAoTE9HX0ZBQ01BU0sgPj4gMykpCiAKLSNkZWZpbmUJTE9HX01BU0socHJpKQkoMSA8PCAocHJpKSkJCS8qIG1hc2sgZm9yIG9uZSBwcmlvcml0eSAqLwotI2RlZmluZQlMT0dfVVBUTyhwcmkpCSgoMSA8PCAoKHByaSkrMSkpIC0gMSkJLyogYWxsIHByaW9yaXRpZXMgdGhyb3VnaCBwcmkgKi8KKyNkZWZpbmUgTE9HX01BU0socHJpKSAoMSA8PCAocHJpKSkKKyNkZWZpbmUgTE9HX1VQVE8ocHJpKSAoKDEgPDwgKChwcmkpKzEpKSAtIDEpCiAKLS8qIG9wZW5sb2coKSBmbGFnczsgb25seSBMT0dfUElEIGFuZCBMT0dfUEVSUk9SIHN1cHBvcnRlZCAqLwotI2RlZmluZSAgICAgICAgTE9HX1BJRCAgICAgICAgIDB4MDEgICAgLyogaW5jbHVkZSBwaWQgd2l0aCBtZXNzYWdlICovCi0jZGVmaW5lICAgICAgICBMT0dfQ09OUyAgICAgICAgMHgwMiAgICAvKiB3cml0ZSB0byBjb25zb2xlIG9uIGxvZ2dlciBlcnJvciAqLwotI2RlZmluZSAgICAgICAgTE9HX09ERUxBWSAgICAgIDB4MDQgICAgLyogZGVsYXkgY29ubmVjdGlvbiB1bnRpbCBzeXNsb2coKSAqLwotI2RlZmluZSAgICAgICAgTE9HX05ERUxBWSAgICAgIDB4MDggICAgLyogb3BlbiBjb25uZWN0aW9uIGltbWVkaWF0ZWx5ICovCi0jZGVmaW5lICAgICAgICBMT0dfTk9XQUlUICAgICAgMHgxMCAgICAvKiB3YWl0IGZvciBjaGlsZCBwcm9jZXNzZXMgKHVudXNlZCBvbiBsaW51eCkgKi8KLSNkZWZpbmUgICAgICAgIExPR19QRVJST1IgICAgICAweDIwICAgIC8qIGFkZGl0aW9uYWwgbG9nZ2luZyB0byBzdGRlcnIgKi8KLQotLyogQklPTklDOiB0aGUgZm9sbG93aW5nIGRlZmluaXRpb25zIGFyZSBmcm9tIE9wZW5CU0QncyBzeXMvc3lzbG9nLmgKLSAqLwotc3RydWN0IHN5c2xvZ19kYXRhIHsKLQlpbnQJbG9nX2ZpbGU7Ci0gICAgICAgIGludAljb25uZWN0ZWQ7Ci0gICAgICAgIGludAlvcGVuZWQ7Ci0gICAgICAgIGludAlsb2dfc3RhdDsKLSAgICAgICAgY29uc3QgY2hhciAJKmxvZ190YWc7Ci0gICAgICAgIGludCAJbG9nX2ZhYzsKLSAgICAgICAgaW50IAlsb2dfbWFzazsKLX07Ci0KLSNkZWZpbmUgU1lTTE9HX0RBVEFfSU5JVCB7LTEsIDAsIDAsIDAsIChjb25zdCBjaGFyICopMCwgTE9HX1VTRVIsIDB4ZmZ9CisjZGVmaW5lIExPR19QSUQgICAgMHgwMSAgICAvKiBpbmNsdWRlIHBpZCB3aXRoIG1lc3NhZ2UgKi8KKyNkZWZpbmUgTE9HX0NPTlMgICAweDAyICAgIC8qIHdyaXRlIHRvIGNvbnNvbGUgb24gbG9nZ2VyIGVycm9yICovCisjZGVmaW5lIExPR19PREVMQVkgMHgwNCAgICAvKiBkZWxheSBjb25uZWN0aW9uIHVudGlsIHN5c2xvZygpICovCisjZGVmaW5lIExPR19OREVMQVkgMHgwOCAgICAvKiBvcGVuIGNvbm5lY3Rpb24gaW1tZWRpYXRlbHkgKi8KKyNkZWZpbmUgTE9HX05PV0FJVCAweDEwICAgIC8qIHdhaXQgZm9yIGNoaWxkIHByb2Nlc3NlcyAodW51c2VkIG9uIGxpbnV4KSAqLworI2RlZmluZSBMT0dfUEVSUk9SIDB4MjAgICAgLyogYWRkaXRpb25hbCBsb2dnaW5nIHRvIHN0ZGVyciAqLwogCiAjZGVmaW5lIF9QQVRIX0xPRyAgIi9kZXYvc3lzbG9nIgogCkBAIC0xMDUsMTEgKzg4LDYgQEAKIGV4dGVybiBpbnQJc2V0bG9nbWFzayhpbnQpOwogZXh0ZXJuIHZvaWQJc3lzbG9nKGludCwgY29uc3QgY2hhciAqLCAuLi4pIF9fcHJpbnRmbGlrZSgyLCAzKTsKIGV4dGVybiB2b2lkCXZzeXNsb2coaW50LCBjb25zdCBjaGFyICosIHZhX2xpc3QpIF9fcHJpbnRmbGlrZSgyLCAwKTsKLWV4dGVybiB2b2lkCWNsb3NlbG9nX3Ioc3RydWN0IHN5c2xvZ19kYXRhICopOwotZXh0ZXJuIHZvaWQJb3BlbmxvZ19yKGNvbnN0IGNoYXIgKiwgaW50LCBpbnQsIHN0cnVjdCBzeXNsb2dfZGF0YSAqKTsKLWV4dGVybiBpbnQJc2V0bG9nbWFza19yKGludCwgc3RydWN0IHN5c2xvZ19kYXRhICopOwotZXh0ZXJuIHZvaWQJc3lzbG9nX3IoaW50LCBzdHJ1Y3Qgc3lzbG9nX2RhdGEgKiwgY29uc3QgY2hhciAqLCAuLi4pIF9fcHJpbnRmbGlrZSgzLCA0KTsKLWV4dGVybiB2b2lkCXZzeXNsb2dfcihpbnQsIHN0cnVjdCBzeXNsb2dfZGF0YSAqLCBjb25zdCBjaGFyICosIHZhX2xpc3QpIF9fcHJpbnRmbGlrZSgzLCAwKTsKIAogX19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvbGliYy9pbmNsdWRlL3RpbWUuaCBiL2xpYmMvaW5jbHVkZS90aW1lLmgKaW5kZXggMGY4NmZkMy4uMDU4N2EyZCAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL3RpbWUuaAorKysgYi9saWJjL2luY2x1ZGUvdGltZS5oCkBAIC0zNiw5ICszNiw5IEBACiAKICNkZWZpbmUgQ0xPQ0tTX1BFUl9TRUMgMTAwMDAwMAogCi1leHRlcm4gY2hhciogdHpuYW1lW107Ci1leHRlcm4gaW50IGRheWxpZ2h0OwotZXh0ZXJuIGxvbmcgaW50IHRpbWV6b25lOworZXh0ZXJuIGNoYXIqIHR6bmFtZVtdIF9fTElCQ19BQklfUFVCTElDX187CitleHRlcm4gaW50IGRheWxpZ2h0IF9fTElCQ19BQklfUFVCTElDX187CitleHRlcm4gbG9uZyBpbnQgdGltZXpvbmUgX19MSUJDX0FCSV9QVUJMSUNfXzsKIAogc3RydWN0IHNpZ2V2ZW50OwogCkBAIC01OCw0NCArNTgsNDMgQEAKIAogI2RlZmluZSBUTV9aT05FIHRtX3pvbmUKIAotZXh0ZXJuIHRpbWVfdCB0aW1lKHRpbWVfdCopOwotZXh0ZXJuIGludCBuYW5vc2xlZXAoY29uc3Qgc3RydWN0IHRpbWVzcGVjKiwgc3RydWN0IHRpbWVzcGVjKik7CitleHRlcm4gdGltZV90IHRpbWUodGltZV90KikgX19MSUJDX0FCSV9QVUJMSUNfXzsKK2V4dGVybiBpbnQgbmFub3NsZWVwKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyosIHN0cnVjdCB0aW1lc3BlYyopIF9fTElCQ19BQklfUFVCTElDX187CiAKLWV4dGVybiBjaGFyKiBhc2N0aW1lKGNvbnN0IHN0cnVjdCB0bSopOwotZXh0ZXJuIGNoYXIqIGFzY3RpbWVfcihjb25zdCBzdHJ1Y3QgdG0qLCBjaGFyKik7CitleHRlcm4gY2hhciogYXNjdGltZShjb25zdCBzdHJ1Y3QgdG0qKSBfX0xJQkNfQUJJX1BVQkxJQ19fOworZXh0ZXJuIGNoYXIqIGFzY3RpbWVfcihjb25zdCBzdHJ1Y3QgdG0qLCBjaGFyKikgX19MSUJDX0FCSV9QVUJMSUNfXzsKIAotZXh0ZXJuIGRvdWJsZSBkaWZmdGltZSh0aW1lX3QsIHRpbWVfdCk7Ci1leHRlcm4gdGltZV90IG1rdGltZShzdHJ1Y3QgdG0qKTsKK2V4dGVybiBkb3VibGUgZGlmZnRpbWUodGltZV90LCB0aW1lX3QpIF9fTElCQ19BQklfUFVCTElDX187CitleHRlcm4gdGltZV90IG1rdGltZShzdHJ1Y3QgdG0qKSBfX0xJQkNfQUJJX1BVQkxJQ19fOwogCi1leHRlcm4gc3RydWN0IHRtKiBsb2NhbHRpbWUoY29uc3QgdGltZV90Kik7Ci1leHRlcm4gc3RydWN0IHRtKiBsb2NhbHRpbWVfcihjb25zdCB0aW1lX3QqLCBzdHJ1Y3QgdG0qKTsKK2V4dGVybiBzdHJ1Y3QgdG0qIGxvY2FsdGltZShjb25zdCB0aW1lX3QqKSBfX0xJQkNfQUJJX1BVQkxJQ19fOworZXh0ZXJuIHN0cnVjdCB0bSogbG9jYWx0aW1lX3IoY29uc3QgdGltZV90Kiwgc3RydWN0IHRtKikgX19MSUJDX0FCSV9QVUJMSUNfXzsKIAotZXh0ZXJuIHN0cnVjdCB0bSogZ210aW1lKGNvbnN0IHRpbWVfdCopOwotZXh0ZXJuIHN0cnVjdCB0bSogZ210aW1lX3IoY29uc3QgdGltZV90Kiwgc3RydWN0IHRtKik7CitleHRlcm4gc3RydWN0IHRtKiBnbXRpbWUoY29uc3QgdGltZV90KikgX19MSUJDX0FCSV9QVUJMSUNfXzsKK2V4dGVybiBzdHJ1Y3QgdG0qIGdtdGltZV9yKGNvbnN0IHRpbWVfdCosIHN0cnVjdCB0bSopIF9fTElCQ19BQklfUFVCTElDX187CiAKLWV4dGVybiBjaGFyKiBzdHJwdGltZShjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIHN0cnVjdCB0bSopOwotZXh0ZXJuIHNpemVfdCBzdHJmdGltZShjaGFyKiwgc2l6ZV90LCBjb25zdCBjaGFyKiwgY29uc3Qgc3RydWN0IHRtKik7CitleHRlcm4gY2hhciogc3RycHRpbWUoY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBzdHJ1Y3QgdG0qKSBfX0xJQkNfQUJJX1BVQkxJQ19fOworZXh0ZXJuIHNpemVfdCBzdHJmdGltZShjaGFyKiwgc2l6ZV90LCBjb25zdCBjaGFyKiwgY29uc3Qgc3RydWN0IHRtKikgX19MSUJDX0FCSV9QVUJMSUNfXzsKIAotZXh0ZXJuIGNoYXIqIGN0aW1lKGNvbnN0IHRpbWVfdCopOwotZXh0ZXJuIGNoYXIqIGN0aW1lX3IoY29uc3QgdGltZV90KiwgY2hhciopOworZXh0ZXJuIGNoYXIqIGN0aW1lKGNvbnN0IHRpbWVfdCopIF9fTElCQ19BQklfUFVCTElDX187CitleHRlcm4gY2hhciogY3RpbWVfcihjb25zdCB0aW1lX3QqLCBjaGFyKikgX19MSUJDX0FCSV9QVUJMSUNfXzsKIAotZXh0ZXJuIHZvaWQgdHpzZXQodm9pZCk7CitleHRlcm4gdm9pZCB0enNldCh2b2lkKSBfX0xJQkNfQUJJX1BVQkxJQ19fOwogCi1leHRlcm4gY2xvY2tfdCBjbG9jayh2b2lkKTsKK2V4dGVybiBjbG9ja190IGNsb2NrKHZvaWQpIF9fTElCQ19BQklfUFVCTElDX187CiAKLWV4dGVybiBpbnQgY2xvY2tfZ2V0cmVzKGludCwgc3RydWN0IHRpbWVzcGVjKik7Ci1leHRlcm4gaW50IGNsb2NrX2dldHRpbWUoaW50LCBzdHJ1Y3QgdGltZXNwZWMqKTsKK2V4dGVybiBpbnQgY2xvY2tfZ2V0cmVzKGludCwgc3RydWN0IHRpbWVzcGVjKikgX19MSUJDX0FCSV9QVUJMSUNfXzsKK2V4dGVybiBpbnQgY2xvY2tfZ2V0dGltZShpbnQsIHN0cnVjdCB0aW1lc3BlYyopIF9fTElCQ19BQklfUFVCTElDX187CiAKLWV4dGVybiBpbnQgdGltZXJfY3JlYXRlKGludCwgc3RydWN0IHNpZ2V2ZW50KiwgdGltZXJfdCopOwotZXh0ZXJuIGludCB0aW1lcl9kZWxldGUodGltZXJfdCk7Ci1leHRlcm4gaW50IHRpbWVyX3NldHRpbWUodGltZXJfdCwgaW50LCBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyosIHN0cnVjdCBpdGltZXJzcGVjKik7Ci1leHRlcm4gaW50IHRpbWVyX2dldHRpbWUodGltZXJfdCwgc3RydWN0IGl0aW1lcnNwZWMqKTsKLWV4dGVybiBpbnQgdGltZXJfZ2V0b3ZlcnJ1bih0aW1lcl90KTsKK2V4dGVybiBpbnQgdGltZXJfY3JlYXRlKGludCwgc3RydWN0IHNpZ2V2ZW50KiwgdGltZXJfdCopIF9fTElCQ19BQklfUFVCTElDX187CitleHRlcm4gaW50IHRpbWVyX2RlbGV0ZSh0aW1lcl90KSBfX0xJQkNfQUJJX1BVQkxJQ19fOworZXh0ZXJuIGludCB0aW1lcl9zZXR0aW1lKHRpbWVyX3QsIGludCwgY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMqLCBzdHJ1Y3QgaXRpbWVyc3BlYyopIF9fTElCQ19BQklfUFVCTElDX187CitleHRlcm4gaW50IHRpbWVyX2dldHRpbWUodGltZXJfdCwgc3RydWN0IGl0aW1lcnNwZWMqKSBfX0xJQkNfQUJJX1BVQkxJQ19fOworZXh0ZXJuIGludCB0aW1lcl9nZXRvdmVycnVuKHRpbWVyX3QpIF9fTElCQ19BQklfUFVCTElDX187CiAKLWV4dGVybiB0aW1lX3QgdGltZWxvY2FsKHN0cnVjdCB0bSopOwotZXh0ZXJuIHRpbWVfdCB0aW1lZ20oc3RydWN0IHRtKik7Ci1leHRlcm4gdGltZV90IHRpbWUycG9zaXgodGltZV90KTsKLWV4dGVybiB0aW1lX3QgcG9zaXgydGltZSh0aW1lX3QpOworLyogTm9uLXN0YW5kYXJkIGV4dGVuc2lvbnMgdGhhdCBhcmUgaW4gdGhlIEJTRHMgYW5kIGdsaWJjLiAqLworZXh0ZXJuIHRpbWVfdCB0aW1lbG9jYWwoc3RydWN0IHRtKikgX19MSUJDX0FCSV9QVUJMSUNfXzsKK2V4dGVybiB0aW1lX3QgdGltZWdtKHN0cnVjdCB0bSopIF9fTElCQ19BQklfUFVCTElDX187CiAKIF9fRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS91bmlzdGQuaCBiL2xpYmMvaW5jbHVkZS91bmlzdGQuaAppbmRleCBiNDk4MmNiLi5hZmU1ZjFhIDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvdW5pc3RkLmgKKysrIGIvbGliYy9pbmNsdWRlL3VuaXN0ZC5oCkBAIC01NCw3ICs1NCw3IEBACiBleHRlcm4gcGlkX3QgIGZvcmsodm9pZCk7CiBleHRlcm4gcGlkX3QgIHZmb3JrKHZvaWQpOwogZXh0ZXJuIHBpZF90ICBnZXRwaWQodm9pZCk7Ci1leHRlcm4gcGlkX3QgIGdldHRpZCh2b2lkKTsKK2V4dGVybiBwaWRfdCAgZ2V0dGlkKHZvaWQpIF9fcHVyZTI7CiBleHRlcm4gcGlkX3QgIGdldHBnaWQocGlkX3QpOwogZXh0ZXJuIGludCAgICBzZXRwZ2lkKHBpZF90LCBwaWRfdCk7CiBleHRlcm4gcGlkX3QgIGdldHBwaWQodm9pZCk7CkBAIC0xNjQsOCArMTY0LDYgQEAKIAogZXh0ZXJuIGludCBnZXRob3N0bmFtZShjaGFyICosIHNpemVfdCk7CiAKLWV4dGVybiBpbnQgZ2V0ZHRhYmxlc2l6ZSh2b2lkKTsKLQogZXh0ZXJuIHZvaWQgKl9fYnJrKHZvaWQgKik7CiBleHRlcm4gaW50IGJyayh2b2lkICopOwogZXh0ZXJuIHZvaWQgKnNicmsocHRyZGlmZl90KTsKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS93Y2hhci5oIGIvbGliYy9pbmNsdWRlL3djaGFyLmgKaW5kZXggYWY3NTkzZi4uMDE0ZmVkMyAxMDA2NDQKLS0tIGEvbGliYy9pbmNsdWRlL3djaGFyLmgKKysrIGIvbGliYy9pbmNsdWRlL3djaGFyLmgKQEAgLTExOCw3ICsxMTgsNyBAQAogZXh0ZXJuIGludCAgICAgICAgICAgICAgIHdjc2NvbGwoY29uc3Qgd2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICopOwogZXh0ZXJuIHdjaGFyX3QgICAgICAgICAgKndjc2NweSh3Y2hhcl90ICosIGNvbnN0IHdjaGFyX3QgKik7CiBleHRlcm4gc2l6ZV90ICAgICAgICAgICAgd2NzY3Nwbihjb25zdCB3Y2hhcl90ICosIGNvbnN0IHdjaGFyX3QgKik7Ci1leHRlcm4gc2l6ZV90ICAgICAgICAgICAgd2NzZnRpbWUod2NoYXJfdCAqLCBzaXplX3QsIGNvbnN0IHdjaGFyX3QgKiwgY29uc3Qgc3RydWN0IHRtICopOworZXh0ZXJuIHNpemVfdCAgICAgICAgICAgIHdjc2Z0aW1lKHdjaGFyX3QgKiwgc2l6ZV90LCBjb25zdCB3Y2hhcl90ICosIGNvbnN0IHN0cnVjdCB0bSAqKSBfX0xJQkNfQUJJX1BVQkxJQ19fOwogZXh0ZXJuIHNpemVfdCAgICAgICAgICAgIHdjc2xlbihjb25zdCB3Y2hhcl90ICopOwogZXh0ZXJuIGludCAgICAgICAgICAgICAgIHdjc25jYXNlY21wKGNvbnN0IHdjaGFyX3QgKiwgY29uc3Qgd2NoYXJfdCAqLCBzaXplX3QpOwogZXh0ZXJuIHdjaGFyX3QgICAgICAgICAgKndjc25jYXQod2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICosIHNpemVfdCk7CkBAIC0xMzgsNyArMTM4LDYgQEAKIGV4dGVybiBsb25nIGRvdWJsZSB3Y3N0b2xkKGNvbnN0IHdjaGFyX3QqLCB3Y2hhcl90KiopOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgd2NzdG91bChjb25zdCB3Y2hhcl90Kiwgd2NoYXJfdCoqLCBpbnQpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyB3Y3N0b3VsbChjb25zdCB3Y2hhcl90Kiwgd2NoYXJfdCoqLCBpbnQpOwotZXh0ZXJuIHdjaGFyX3QgICAgICAgICAgKndjc3djcyhjb25zdCB3Y2hhcl90ICosIGNvbnN0IHdjaGFyX3QgKik7CiBleHRlcm4gaW50ICAgICAgICAgICAgICAgd2Nzd2lkdGgoY29uc3Qgd2NoYXJfdCAqLCBzaXplX3QpOwogZXh0ZXJuIHNpemVfdCAgICAgICAgICAgIHdjc3hmcm0od2NoYXJfdCAqLCBjb25zdCB3Y2hhcl90ICosIHNpemVfdCk7CiBleHRlcm4gaW50ICAgICAgICAgICAgICAgd2N0b2Iod2ludF90KTsKZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL1JFQURNRS5UWFQgYi9saWJjL2tlcm5lbC9SRUFETUUuVFhUCmluZGV4IGU0YzExYTEuLjBlZGJjYzYgMTAwNjQ0Ci0tLSBhL2xpYmMva2VybmVsL1JFQURNRS5UWFQKKysrIGIvbGliYy9rZXJuZWwvUkVBRE1FLlRYVApAQCAtMSw5MyArMSw0NyBAQAotQmlvbmljIGNvbWVzIHdpdGggYSBzZXQgb2YgJ2NsZWFuJyBMaW51eCBrZXJuZWwgaGVhZGVycyB0aGF0IGNhbiBzYWZlbHkgYmUKLWluY2x1ZGVkIGJ5IHVzZXJsYW5kIGFwcGxpY2F0aW9ucyBhbmQgbGlicmFyaWVzIHdpdGhvdXQgZmVhciBvZiBoaWRlb3VzCi1jb25mbGljdHMuIGZvciBtb3JlIGluZm9ybWF0aW9uIHdoeSB0aGlzIGlzIG5lZWRlZCwgc2VlIHRoZSAiUkFUSU9OQUxFIgotc2VjdGlvbiBhdCB0aGUgZW5kIG9mIHRoaXMgZG9jdW1lbnQuCitCaW9uaWMgY29tZXMgd2l0aCBhIHByb2Nlc3NlZCBzZXQgb2YgYWxsIG9mIHRoZSB1YXBpIExpbnV4IGtlcm5lbCBoZWFkZXJzIHRoYXQKK2NhbiBzYWZlbHkgYmUgaW5jbHVkZWQgYnkgdXNlcmxhbmQgYXBwbGljYXRpb25zIGFuZCBsaWJyYXJpZXMuCiAKLXRoZXNlIGNsZWFuIGhlYWRlcnMgYXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHNldmVyYWwgc2NyaXB0cyBsb2NhdGVkCi1pbiB0aGUgJ2Jpb25pYy9rZXJuZWwvdG9vbHMnIGRpcmVjdG9yeSwgd2hpY2ggcHJvY2VzcyBhIHNldCBvZiBvcmlnaW5hbAotYW5kIHVubW9kaWZpZWQga2VybmVsIGhlYWRlcnMgaW4gb3JkZXIgdG8gZ2V0IHJpZCBvZiBtYW55IGFubm95aW5nCitUaGVzZSBjbGVhbiBoZWFkZXJzIGFyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBzZXZlcmFsIHNjcmlwdHMgbG9jYXRlZAoraW4gdGhlICdiaW9uaWMva2VybmVsL3Rvb2xzJyBkaXJlY3RvcnkuIFRoZSB0b29scyBwcm9jZXNzIHRoZSBvcmlnaW5hbAordW5tb2RpZmllZCBrZXJuZWwgaGVhZGVycyBpbiBvcmRlciB0byBnZXQgcmlkIG9mIG1hbnkgYW5ub3lpbmcKIGRlY2xhcmF0aW9ucyBhbmQgY29uc3RydWN0cyB0aGF0IHVzdWFsbHkgcmVzdWx0IGluIGNvbXBpbGF0aW9uIGZhaWx1cmUuCiAKLXRoZSAnY2xlYW4gaGVhZGVycycgb25seSBjb250YWluIHR5cGUgYW5kIG1hY3JvIGRlZmluaXRpb25zLCB3aXRoIHRoZQorVGhlICdjbGVhbiBoZWFkZXJzJyBvbmx5IGNvbnRhaW4gdHlwZSBhbmQgbWFjcm8gZGVmaW5pdGlvbnMsIHdpdGggdGhlCiBleGNlcHRpb24gb2YgYSBjb3VwbGUgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgdXNlZCBmb3IgcGVyZm9ybWFuY2UKLXJlYXNvbiAoZS5nLiBvcHRpbWl6ZWQgQ1BVLXNwZWNpZmljIGJ5dGUtc3dhcHBpbmcgcm91dGluZXMpCityZWFzb24gKGUuZy4gb3B0aW1pemVkIENQVS1zcGVjaWZpYyBieXRlLXN3YXBwaW5nIHJvdXRpbmVzKS4KIAotdGhleSBjYW4gYmUgaW5jbHVkZWQgZnJvbSBDKyssIG9yIHdoZW4gY29tcGlsaW5nIGNvZGUgaW4gc3RyaWN0IEFOU0kgbW9kZS4KLXRoZXkgY2FuIGJlIGFsc28gaW5jbHVkZWQgYmVmb3JlIG9yIGFmdGVyIGFueSBCaW9uaWMgQyBsaWJyYXJ5IGhlYWRlci4KK1RoZXkgY2FuIGJlIGluY2x1ZGVkIGZyb20gQysrLCBvciB3aGVuIGNvbXBpbGluZyBjb2RlIGluIHN0cmljdCBBTlNJIG1vZGUuCitUaGV5IGNhbiBiZSBhbHNvIGluY2x1ZGVkIGJlZm9yZSBvciBhZnRlciBhbnkgQmlvbmljIEMgbGlicmFyeSBoZWFkZXIuCiAKLXRoZSBnZW5lcmF0aW9uIHByb2Nlc3Mgd29ya3MgYXMgZm9sbG93czoKK0Rlc2NyaXB0aW9uIG9mIHRoZSBkaXJlY3RvcmllcyBpbnZvbHZlZCBpbiBnZW5lcmF0aW5nIHRoZSBwYXJzZWQga2VybmVsIGhlYWRlcnM6CiAKICAgKiAnZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvJwotICAgIGNvbnRhaW5zIGEgc2V0IG9mIGtlcm5lbCBoZWFkZXJzIGFzIG5vcm1hbGx5IGZvdW5kIGluIHRoZSAnaW5jbHVkZScKLSAgICBkaXJlY3Rvcnkgb2YgYSBub3JtYWwgTGludXgga2VybmVsIHNvdXJjZSB0cmVlLiBub3RlIHRoYXQgdGhpcyBzaG91bGQKLSAgICBvbmx5IGNvbnRhaW4gdGhlIGZpbGVzIHRoYXQgYXJlIHJlYWxseSBuZWVkZWQgYnkgQW5kcm9pZCAodXNlCi0gICAgJ2ZpbmRfaGVhZGVycy5weScgdG8gZmluZCB0aGVzZSBhdXRvbWF0aWNhbGx5KS4KKyAgICBDb250YWlucyB0aGUgdWFwaSBrZXJuZWwgaGVhZGVycyBmb3VuZCBpbiB0aGUgYW5kcm9pZCBrZXJuZWwuIE5vdGUgdGhpcworICAgIGFsc28gaW5jbHVkZXMgdGhlIGhlYWRlciBmaWxlcyB0aGF0IGFyZSBnZW5lcmF0ZWQgYnkgYnVpbGRpbmcgdGhlIGtlcm5lbAorICAgIHNvdXJjZXMuCiAKLSAgKiAnYmlvbmljL2xpYmMva2VybmVsL2NvbW1vbicKLSAgICBjb250YWlucyB0aGUgbm9uLWFyY2gtc3BlY2lmaWMgY2xlYW4gaGVhZGVycyBhbmQgZGlyZWN0b3JpZXMKLSAgICAoZS5nLiBsaW51eCwgYXNtLWdlbmVyaWMgYW5kIG10ZCkKKyAgKiAnYmlvbmljL2xpYmMva2VybmVsL3VhcGknCisgICAgQ29udGFpbnMgdGhlIGNsZWFuZWQga2VybmVsIGhlYWRlcnMgYW5kIG1pcnJvcnMgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUKKyAgICBpbiAnZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMvb3JpZ2luYWwvdWFwaS8nLgogCi0gICogJ2Jpb25pYy9saWJjL2tlcm5lbC9hcmNoLWFybS8nCi0gICAgY29udGFpbnMgdGhlIEFSTS1zcGVjaWZpYyBkaXJlY3RvcnkgdHJlZSBvZiBjbGVhbiBoZWFkZXJzLgorICAqICdiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMnCisgICAgQ29udGFpbnMgdmFyaW91cyBQeXRob24gYW5kIHNoZWxsIHNjcmlwdHMgdXNlZCB0byBnZXQgYW5kIHJlLWdlbmVyYXRlCisgICAgdGhlIGhlYWRlcnMuCiAKLSAgKiAnYmlvbmljL2xpYmMva2VybmVsL2FyY2gtYXJtL2FzbScKLSAgICBjb250YWlucyB0aGUgcmVhbCBBUk0tc3BlY2lmaWMgaGVhZGVycworVGhlIHRvb2xzIHRvIGdldC9wYXJzZSB0aGUgaGVhZGVyczoKIAotICAqICdiaW9uaWMvbGliYy9rZXJuZWwvYXJjaC14ODYnCi0gICAgJ2Jpb25pYy9saWJjL2tlcm5lbC9hcmNoLXg4Ni9hc20nCi0gICAgc2ltaWxhcmx5IGNvbnRhaW5zIGFsbCBoZWFkZXJzIGFuZCBzeW1saW5rcyB0byBiZSB1c2VkIG9uIHg4NgotCi0gICogJ2Jpb25pYy9saWJjL2tlcm5lbC90b29scycgY29udGFpbnMgdmFyaW91cyBQeXRob24gYW5kIHNoZWxsIHNjcmlwdHMgdXNlZAotICAgIHRvIG1hbmFnZSBhbmQgcmUtZ2VuZXJhdGUgdGhlIGhlYWRlcnMKLQotdGhlIHRvb2xzIHlvdSBjYW4gdXNlIGFyZToKLQotICAqIHRvb2xzL2ZpbmRfdXNlcnMucHkKLSAgICBzY2FucyBhIGxpc3Qgb2Ygc291cmNlIGZpbGVzIG9yIGRpcmVjdG9yaWVzIGFuZCBwcmludHMgd2hpY2ggb25lcyBkbwotICAgIGluY2x1ZGUgTGludXggaGVhZGVycy4KLQotICAqIHRvb2xzL2ZpbmRfaGVhZGVycy5weQotICAgIHNjYW5zIGEgbGlzdCBvZiBzb3VyY2UgZmlsZXMgb3IgZGlyZWN0b3JpZXMgYW5kIHJlY3Vyc2l2ZWx5IGZpbmRzIGFsbAotICAgIHRoZSBvcmlnaW5hbCBrZXJuZWwgaGVhZGVycyB0aGV5IG5lZWQuCisgICogdG9vbHMvZ2VuZXJhdGVfdWFwaV9oZWFkZXJzLnNoCisgICAgQ2hlY2tzIG91dCB0aGUgYW5kcm9pZCBrZXJuZWwgYW5kIGdlbmVyYXRlcyBhbGwgdWFwaSBoZWFkZXIgZmlsZXMuCisgICAgY29waWVzIGFsbCB0aGUgY2hhbmdlZCBmaWxlcyBpbnRvIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzLgogCiAgICogdG9vbHMvY2xlYW5faGVhZGVyLnB5Ci0gICAgcHJpbnRzIHRoZSBjbGVhbiB2ZXJzaW9uIG9mIGEgZ2l2ZW4ga2VybmVsIGhlYWRlci4gd2l0aCB0aGUgLXUgb3B0aW9uLAorICAgIFByaW50cyB0aGUgY2xlYW4gdmVyc2lvbiBvZiBhIGdpdmVuIGtlcm5lbCBoZWFkZXIuIFdpdGggdGhlIC11IG9wdGlvbiwKICAgICB0aGlzIHdpbGwgYWxzbyB1cGRhdGUgdGhlIGNvcnJlc3BvbmRpbmcgY2xlYW4gaGVhZGVyIGZpbGUgaWYgaXRzCi0gICAgY29udGVudCBoYXMgY2hhbmdlZC4geW91IGNhbiBhbHNvIHByb2Nlc3MgbW9yZSB0aGFuIG9uZSBmaWxlIHdpdGggLXUKKyAgICBjb250ZW50IGhhcyBjaGFuZ2VkLiBZb3UgY2FuIGFsc28gcHJvY2VzcyBtb3JlIHRoYW4gb25lIGZpbGUgd2l0aCAtdS4KIAogICAqIHRvb2xzL3VwZGF0ZV9hbGwucHkKLSAgICBhdXRvbWF0aWNhbGx5IHVwZGF0ZSBhbGwgY2xlYW4gaGVhZGVycyBmcm9tIHRoZSBjb250ZW50IG9mIAotICAgICdleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbCcuIHRoaXMgaXMgdGhlIHNjcmlwdCB5b3UncmUgbGlrZWx5IGdvaW5nIHRvCi0gICAgcnVuIHdoZW5ldmVyIHlvdSB1cGRhdGUgdGhlIG9yaWdpbmFsIGhlYWRlcnMuCi0KLQotSE9XIFRPIEJVSUxEIEJJT05JQyBBTkQgT1RIRVIgUFJPR1JBTVMgV0lUSCBUSEUgQ0xFQU4gSEVBREVSUzoKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLWFkZCBiaW9uaWMva2VybmVsL2NvbW1vbiBhbmQgYmlvbmljL2tlcm5lbC9hcmNoLTx5b3VyYXJjaD4gdG8geW91ciBDCi1pbmNsdWRlIHBhdGguIHRoYXQgc2hvdWxkIGJlIGVub3VnaC4gTm90ZSB0aGF0IEJpb25pYyB3aWxsIG5vdCBjb21waWxlIHByb3Blcmx5IAotaWYgeW91IGRvbid0LgotCi0KLUhPVyBUTyBTVVBQT1JUIEFOT1RIRVIgQVJDSElURUNUVVJFOgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXNlZSB0aGUgY29udGVudCBvZiB0b29scy9kZWZhdWx0cy5weSwgeW91IHdpbGwgbmVlZCB0byBtYWtlIGEgZmV3IHVwZGF0ZXMKLWhlcmU6Ci0KLSAgLSBhZGQgYSBuZXcgaXRlbSB0byB0aGUgJ2tlcm5lbF9hcmNocycgbGlzdCBvZiBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlcwotCi0gIC0gYWRkIGEgcHJvcGVyIGRlZmluaXRpb24gZm9yICdrZXJuZWxfa25vd25fPGFyY2g+X3N0YXRpY3MnIHdpdGgKLSAgICByZWxldmFudCBkZWZpbml0aW9ucy4KLQotICAtIHVwZGF0ZSAna2VybmVsX2tub3duX3N0YXRpY3MnIHRvIG1hcCAiPGFyY2g+IiB0bwotICAgICdrZXJuZWxfa25vd25fPGFyY2g+X3N0YXRpY3MnCi0KLXRoZW4sIGFkZCB0aGUgbmV3IGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoZWFkZXJzIHRvIG9yaWdpbmFsL2FzbS08YXJjaD4uCi0ocGxlYXNlIGVuc3VyZSB0aGF0IHRoZXNlIGFyZSByZWFsbHkgbmVlZGVkLCBlLmcuIHdpdGggdG9vbHMvZmluZF9oZWFkZXJzLnB5KQotCi1maW5hbGx5LCBydW4gdG9vbHMvdXBkYXRlX2FsbC5weQotCisgICAgQXV0b21hdGljYWxseSB1cGRhdGUgYWxsIGNsZWFuIGhlYWRlcnMgZnJvbSB0aGUgY29udGVudCBvZgorICAgICdleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbCcuCiAKIAogSE9XIFRPIFVQREFURSBUSEUgSEVBREVSUyBXSEVOIE5FRURFRDoKQEAgLTk5LDgxICs1MywxMyBAQAogICBOT1QgQlJFQUsgVEhFIEtFUk5FTCA8LT4gVVNFUiBBQkksIEZPUiBFWEFNUExFIEJZIENIQU5HSU5HIFRIRSBTSVpFCiAgIE9GIEEgR0lWRU4gVFlQRS4gVEhJUyBUQVNLIENBTk5PVCBCRSBFQVNJTFkgQVVUT01BVEVEIEFUIFRIRSBNT01FTlQKIAotY29weSBhbnkgdXBkYXRlZCBrZXJuZWwgaGVhZGVyIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgbG9jYXRpb24gdW5kZXIKLSdiaW9uaWMva2VybmVsL29yaWdpbmFsJy4KK0dyYWIgdGhlIGxhdGVzdCBoZWFkZXJzIGZyb20gdGhlIGFuZHJvaWQga2VybmVsIGJ5IHJ1bm5pbmcgdGhpcyBjb21tYW5kOgogCi1mb3IgYW55IG5ldyBrZXJuZWwgaGVhZGVyIHlvdSB3YW50IHRvIGFkZCwgZmlyc3QgcnVuIHRvb2xzL2ZpbmRfaGVhZGVycy5weSB0byBiZQotc3VyZSB0aGF0IGl0IGlzIHJlYWxseSBuZWVkZWQgYnkgdGhlIEFuZHJvaWQgc291cmNlcy4gdGhlbiBhZGQgaXQgdG8KLSdiaW9uaWMva2VybmVsL29yaWdpbmFsJworICBiaW9uaWMva2VybmVsL3Rvb2xzL2dlbmVyYXRlX3VhcGlfaGVhZGVycy5zaCAtLWRvd25sb2FkLWtlcm5lbAogCi10aGVuLCBydW4gdG9vbHMvdXBkYXRlX2FsbC5weSB0byByZS1ydW4gdGhlIGF1dG8tY2xlYW5pbmcKK05leHQsIHJ1biB0aGlzIGNvbW1hbmQgdG8gY29weSB0aGUgcGFyc2VkIGZpbGVzIHRvIGJpb25pYy9saWJjL2tlcm5lbC91YXBpOgogCisgIGJpb25pYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQogCi0KLUhPVyBUSEUgQ0xFQU5VUCBQUk9DRVNTIFdPUktTOgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGFjdGlvbiBwZXJmb3JtZWQgYnkgdGhlIGNsZWFudXAgcHJvZ3JhbShzKSB3aGVuIHRoZXkKLXByb2Nlc3MgdGhlIG9yaWdpbmFsIGtlcm5lbCBoZWFkZXJzIGludG8gY2xlYW4gb25lczoKLQotMS4gT3B0aW1pemUgd2VsbC1rbm93biBtYWNyb3MgKGUuZy4gX19LRVJORUxfXywgX19LRVJORUxfU1RSSUNUX05BTUVTKQotCi0gICAgdGhpcyBwYXNzIGdldHMgcmlkIG9mIGV2ZXJ5dGhpbmcgdGhhdCBpcyBndWFyZGVkIGJ5IGEgd2VsbC1rbm93biBtYWNybwotICAgIGRlZmluaXRpb24uIHRoaXMgbWVhbnMgdGhhdCBhIGJsb2NrIGxpa2UKLQotICAgICAgICNpZmRlZiBfX0tFUk5FTF9fCi0gICAgICAgLi4uLgotICAgICAgICNlbmRpZgotCi0gICAgd2lsbCBiZSB0b3RhbGx5IG9taXR0ZWQgZnJvbSB0aGUgb3V0cHV0LiB0aGUgb3B0aW1pemVyIGlzIHNtYXJ0IGVub3VnaCB0bwotICAgIGhhbmRsZSBhbGwgY29tcGxleCBDLXByZXByb2Nlc3NvciBjb25kaXRpb25hbCBleHByZXNzaW9uIGFwcHJvcHJpYXRlbHkuCi0gICAgdGhpcyBtZWFucyB0aGF0LCBmb3IgZXhhbXBsZToKLQotICAgICAgICNpZiBkZWZpbmVkKF9fS0VSTkVMX18pIHx8IGRlZmluZWQoRk9PKQotICAgICAgIC4uLgotICAgICAgICNlbmRpZgotCi0gICAgd2lsbCBiZSB0cmFuc2Zvcm1lZCBpbnRvOgotCi0gICAgICAgI2lmZGVmIEZPTwotICAgICAgIC4uLgotICAgICAgICNlbmRpZgotCi0gICAgc2VlIHRvb2xzL2RlZmF1bHRzLnB5IGZvciB0aGUgbGlzdCBvZiB3ZWxsLWtub3duIG1hY3JvcyB1c2VkIGluIHRoaXMgcGFzcywKLSAgICBpbiBjYXNlIHlvdSBuZWVkIHRvIHVwZGF0ZSBpdCBpbiB0aGUgZnV0dXJlLgotCi0gICAgbm90ZSB0aGF0IHRoaXMgYWxzbyByZW1vdmUgYW55IHJlZmVyZW5jZSB0byBhIGtlcm5lbC1zcGVjaWZpYyBjb25maWd1cmF0aW9uCi0gICAgbWFjcm8gbGlrZSBDT05GSUdfRk9PIGZyb20gdGhlIGNsZWFuIGhlYWRlcnMuCi0KLQotMi4gcmVtb3ZlIHZhcmlhYmxlIGFuZCBmdW5jdGlvbiBkZWNsYXJhdGlvbnM6Ci0KLSAgdGhpcyBwYXNzIHNjYW5zIG5vbi1kaXJlY3RpdmUgdGV4dCBhbmQgb25seSBrZWVwcyB0aGluZ3MgdGhhdCBsb29rIGxpa2UgYQotICB0eXBlZGVmL3N0cnVjdC91bmlvbi9lbnVtIGRlY2xhcmF0aW9uLiB0aGlzIGFsbG93cyB0byBnZXQgcmlkIG9mIGFueSB2YXJpYWJsZQotICBvciBmdW5jdGlvbiBkZWNsYXJhdGlvbiB0aGF0IHNob3VsZCBvbmx5IGJlIHVzZWQgd2l0aGluIHRoZSBrZXJuZWwgYW55d2F5Ci0gIChhbmQgd2hpY2ggbm9ybWFsbHkgKnNob3VsZCogYmUgZ3VhcmRlZCBpbiBhICNpZmRlZiBfX0tFUk5FTF9fIC4uLiAjZW5kaWYKLSAgYmxvY2ssIGlmIHRoZSBrZXJuZWwgd3JpdGVycyB3ZXJlIG5vdCBzbyBtZXNzeSkKLQotICB0aGVyZSBhcmUgaG93ZXZlciBhIGZldyBleGNlcHRpb25zOiBpdCBpcyBzZWxkb20gdXNlZnVsIHRvIGtlZXAgdGhlIGRlZmluaXRpb24KLSAgb2Ygc29tZSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBwZXJmb3JtaW5nIHZlcnkgc2ltcGxlIG9wZXJhdGlvbnMuIGEgZ29vZAotICBleGFtcGxlIGlzIHRoZSBvcHRpbWl6ZWQgMzItYml0IGJ5dGUtc3dhcCBmdW5jdGlvbiBmb3VuZCBpbgotICBhcmNoLWFybS9hc20vYnl0ZW9yZGVyLmgKLQotICB0aGUgbGlzdCBvZiBleGNlcHRpb25zIGlzIGluIHRvb2xzL2RlZmF1bHRzLnB5IGluIGNhc2UgeW91IG5lZWQgdG8gdXBkYXRlIGl0Ci0gIGluIHRoZSBmdXR1cmUuCi0KLSAgbm90ZSB0aGF0IHdlIGRvICpub3QqIHJlbW92ZSBtYWNybyBkZWZpbml0aW9ucywgaW5jbHVkaW5nIHRoZXNlIG1hY3JvIHRoYXQKLSAgcGVyZm9ybSBhIGNhbGwgdG8gb25lIG9mIHRoZXNlIGtlcm5lbC1oZWFkZXIgZnVuY3Rpb25zLCBvciBldmVuIGRlZmluZSBvdGhlcgotICBmdW5jdGlvbnMuIHdlIGNvbnNpZGVyIGl0IHNhZmUgc2luY2UgdXNlcmxhbmQgYXBwbGljYXRpb25zIGhhdmUgbm8gYnVzaW5lc3MKLSAgdXNpbmcgdGhlbSBhbnl3YXkuCi0KLQotMy4gd2hpdGVzcGFjZSBjbGVhbnVwOgotCi0gIHRoZSBmaW5hbCBwYXNzIHJlbW92ZSBhbnkgY29tbWVudHMgYW5kIGVtcHR5IGxpbmVzIGZyb20gdGhlIGZpbmFsIGhlYWRlcnMuCi0KLQotNC4gYWRkIGEgc3RhbmRhcmQgZGlzY2xhaW1lcjoKLQotICBwcmVwZW5kZWQgdG8gZWFjaCBnZW5lcmF0ZWQgaGVhZGVyLCBjb250YWlucyBhIG1lc3NhZ2UgbGlrZQotICAiZG8gbm90IGVkaXQgZGlyZWN0bHkgLSBmaWxlIHdhcyBhdXRvLWdlbmVyYXRlZCBieSAuLi4uIgorQWZ0ZXIgdGhpcywgeW91IHdpbGwgbmVlZCB0byBidWlsZC90ZXN0IHRoZSB0cmVlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXNlCitjaGFuZ2VzIGRvIG5vdCBpbnRyb2R1Y2UgYW55IGVycm9ycy4KZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL3Rvb2xzL2NsZWFuX2hlYWRlci5weSBiL2xpYmMva2VybmVsL3Rvb2xzL2NsZWFuX2hlYWRlci5weQppbmRleCAyMzgwODdiLi42NjAxODE3IDEwMDc1NQotLS0gYS9saWJjL2tlcm5lbC90b29scy9jbGVhbl9oZWFkZXIucHkKKysrIGIvbGliYy9rZXJuZWwvdG9vbHMvY2xlYW5faGVhZGVyLnB5CkBAIC0xLDUgKzEsNzggQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIERlc2NyaXB0aW9uIG9mIHRoZSBoZWFkZXIgY2xlYW4gcHJvY2VzcworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBIZXJlIGlzIHRoZSBsaXN0IG9mIGFjdGlvbnMgcGVyZm9ybWVkIGJ5IHRoaXMgc2NyaXB0IHRvIGNsZWFuIHRoZSBvcmlnaW5hbAorIyBrZXJuZWwgaGVhZGVycy4KICMKKyMgMS4gT3B0aW1pemUgd2VsbC1rbm93biBtYWNyb3MgKGUuZy4gX19LRVJORUxfXywgX19LRVJORUxfU1RSSUNUX05BTUVTKQorIworIyAgICAgVGhpcyBwYXNzIGdldHMgcmlkIG9mIGV2ZXJ5dGhpbmcgdGhhdCBpcyBndWFyZGVkIGJ5IGEgd2VsbC1rbm93biBtYWNybworIyAgICAgZGVmaW5pdGlvbi4gVGhpcyBtZWFucyB0aGF0IGEgYmxvY2sgbGlrZToKKyMKKyMgICAgICAgICNpZmRlZiBfX0tFUk5FTF9fCisjICAgICAgICAuLi4uCisjICAgICAgICAjZW5kaWYKKyMKKyMgICAgIFdpbGwgYmUgdG90YWxseSBvbWl0dGVkIGZyb20gdGhlIG91dHB1dC4gVGhlIG9wdGltaXplciBpcyBzbWFydCBlbm91Z2ggdG8KKyMgICAgIGhhbmRsZSBhbGwgY29tcGxleCBDLXByZXByb2Nlc3NvciBjb25kaXRpb25hbCBleHByZXNzaW9uIGFwcHJvcHJpYXRlbHkuCisjICAgICBUaGlzIG1lYW5zIHRoYXQsIGZvciBleGFtcGxlOgorIworIyAgICAgICAgI2lmIGRlZmluZWQoX19LRVJORUxfXykgfHwgZGVmaW5lZChGT08pCisjICAgICAgICAuLi4KKyMgICAgICAgICNlbmRpZgorIworIyAgICAgV2lsbCBiZSB0cmFuc2Zvcm1lZCBpbnRvOgorIworIyAgICAgICAgI2lmZGVmIEZPTworIyAgICAgICAgLi4uCisjICAgICAgICAjZW5kaWYKKyMKKyMgICAgIFNlZSB0b29scy9kZWZhdWx0cy5weSBmb3IgdGhlIGxpc3Qgb2Ygd2VsbC1rbm93biBtYWNyb3MgdXNlZCBpbiB0aGlzIHBhc3MsCisjICAgICBpbiBjYXNlIHlvdSBuZWVkIHRvIHVwZGF0ZSBpdCBpbiB0aGUgZnV0dXJlLgorIworIyAgICAgTm90ZSB0aGF0IHRoaXMgYWxzbyByZW1vdmVzIGFueSByZWZlcmVuY2UgdG8gYSBrZXJuZWwtc3BlY2lmaWMKKyMgICAgIGNvbmZpZ3VyYXRpb24gbWFjcm8gbGlrZSBDT05GSUdfRk9PIGZyb20gdGhlIGNsZWFuIGhlYWRlcnMuCisjCisjCisjIDIuIFJlbW92ZSB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gZGVjbGFyYXRpb25zOgorIworIyAgIFRoaXMgcGFzcyBzY2FucyBub24tZGlyZWN0aXZlIHRleHQgYW5kIG9ubHkga2VlcHMgdGhpbmdzIHRoYXQgbG9vayBsaWtlIGEKKyMgICB0eXBlZGVmL3N0cnVjdC91bmlvbi9lbnVtIGRlY2xhcmF0aW9uLiBUaGlzIGFsbG93cyB1cyB0byBnZXQgcmlkIG9mIGFueQorIyAgIHZhcmlhYmxlcyBvciBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdGhhdCBzaG91bGQgb25seSBiZSB1c2VkIHdpdGhpbiB0aGUKKyMgICBrZXJuZWwgYW55d2F5IChhbmQgd2hpY2ggbm9ybWFsbHkgKnNob3VsZCogYmUgZ3VhcmRlZCBieSBhbiAjaWZkZWYKKyMgICBfX0tFUk5FTF9fIC4uLiAgI2VuZGlmIGJsb2NrLCBpZiB0aGUga2VybmVsIHdyaXRlcnMgd2VyZSBub3Qgc28gbWVzc3kpLgorIworIyAgIFRoZXJlIGFyZSwgaG93ZXZlciwgYSBmZXcgZXhjZXB0aW9uczogaXQgaXMgc2VsZG9tIHVzZWZ1bCB0byBrZWVwIHRoZQorIyAgIGRlZmluaXRpb24gb2Ygc29tZSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBwZXJmb3JtaW5nIHZlcnkgc2ltcGxlCisjICAgb3BlcmF0aW9ucy4gQSBnb29kIGV4YW1wbGUgaXMgdGhlIG9wdGltaXplZCAzMi1iaXQgYnl0ZS1zd2FwIGZ1bmN0aW9uCisjICAgZm91bmQgaW46CisjCisjICAgICBhcmNoLWFybS9hc20vYnl0ZW9yZGVyLmgKKyMKKyMgICBUaGUgbGlzdCBvZiBleGNlcHRpb25zIGlzIGluIHRvb2xzL2RlZmF1bHRzLnB5IGluIGNhc2UgeW91IG5lZWQgdG8gdXBkYXRlCisjICAgaXQgaW4gdGhlIGZ1dHVyZS4KKyMKKyMgICBOb3RlIHRoYXQgd2UgZG8gKm5vdCogcmVtb3ZlIG1hY3JvIGRlZmluaXRpb25zLCBpbmNsdWRpbmcgdGhlc2UgbWFjcm8gdGhhdAorIyAgIHBlcmZvcm0gYSBjYWxsIHRvIG9uZSBvZiB0aGVzZSBrZXJuZWwtaGVhZGVyIGZ1bmN0aW9ucywgb3IgZXZlbiBkZWZpbmUgb3RoZXIKKyMgICBmdW5jdGlvbnMuIFdlIGNvbnNpZGVyIGl0IHNhZmUgc2luY2UgdXNlcmxhbmQgYXBwbGljYXRpb25zIGhhdmUgbm8gYnVzaW5lc3MKKyMgICB1c2luZyB0aGVtIGFueXdheS4KKyMKKyMKKyMgMy4gV2hpdGVzcGFjZSBjbGVhbnVwOgorIworIyAgIFRoZSBmaW5hbCBwYXNzIHJlbW92ZXMgYW55IGNvbW1lbnRzIGFuZCBlbXB0eSBsaW5lcyBmcm9tIHRoZSBmaW5hbCBoZWFkZXJzLgorIworIworIyA0LiBBZGQgYSBzdGFuZGFyZCBkaXNjbGFpbWVyOgorIworIyAgIFRoZSBtZXNzYWdlOgorIworIyAgIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjCisjICAgSXMgcHJlcGVuZGVkIHRvIGVhY2ggZ2VuZXJhdGVkIGhlYWRlci4KKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogaW1wb3J0IHN5cywgY3BwLCBrZXJuZWwsIGdsb2IsIG9zLCByZSwgZ2V0b3B0CiBmcm9tIGRlZmF1bHRzIGltcG9ydCAqCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC90b29scy9kZWZhdWx0cy5weSBiL2xpYmMva2VybmVsL3Rvb2xzL2RlZmF1bHRzLnB5CmluZGV4IDY3YWI3MDIuLjJlZmQ0NTUgMTAwNjQ0Ci0tLSBhL2xpYmMva2VybmVsL3Rvb2xzL2RlZmF1bHRzLnB5CisrKyBiL2xpYmMva2VybmVsL3Rvb2xzL2RlZmF1bHRzLnB5CkBAIC00NCw3ICs0NCwxMSBAQAoga2VybmVsX2RlZmF1bHRfYXJjaF9tYWNyb3MgPSB7CiAgICAgImFybSI6IHsiX19BUk1FQl9fIjoga0NwcFVuZGVmaW5lZE1hY3JvLCAiX19BUk1fRUFCSV9fIjogIjEifSwKICAgICAiYXJtNjQiOiB7fSwKLSAgICAibWlwcyI6IHsiQ09ORklHXzMyQklUIjoiMSIsICJfX01JUFNFQl9fIjoga0NwcFVuZGVmaW5lZE1hY3JvLCAiX19NSVBTRUxfXyI6ICIxIn0sCisgICAgIm1pcHMiOiB7Il9fTUlQU0VCX18iOiBrQ3BwVW5kZWZpbmVkTWFjcm8sCisgICAgICAgICAgICAgIl9fTUlQU0VMX18iOiAiMSIsCisgICAgICAgICAgICAgIkNPTkZJR18zMkJJVCI6ICJfQUJJTzMyIiwKKyAgICAgICAgICAgICAiQ09ORklHX0NQVV9MSVRUTEVfRU5ESUFOIjogIjEiLAorICAgICAgICAgICAgICJfX1NBTkVfVVNFUlNQQUNFX1RZUEVTX18iOiAiMSIsfSwKICAgICAieDg2Ijoge30sCiAgICAgfQogCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC90b29scy9maW5kX2hlYWRlcnMucHkgYi9saWJjL2tlcm5lbC90b29scy9maW5kX2hlYWRlcnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDliMzU3MmEuLjAwMDAwMDAKLS0tIGEvbGliYy9rZXJuZWwvdG9vbHMvZmluZF9oZWFkZXJzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTcwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyB0aGlzIHByb2dyYW0gaXMgdXNlZCB0byBmaW5kIHNvdXJjZSBjb2RlIHRoYXQgaW5jbHVkZXMgbGludXgga2VybmVsIGhlYWRlcnMgZGlyZWN0bHkKLSMgKGUuZy4gd2l0aCAjaW5jbHVkZSA8bGludXgvLi4uPiBvciAjaW5jbHVkZSA8YXNtLy4uLj4pCi0jCi0jIHRoZW4gaXQgbGlzdHMgdGhlbSBvbiB0aGUgc3RhbmRhcmQgb3V0cHV0LgotCi1pbXBvcnQgc3lzLCBjcHAsIGdsb2IsIG9zLCByZSwgZ2V0b3B0LCBrZXJuZWwKLWZyb20gdXRpbHMgaW1wb3J0ICoKLWZyb20gZGVmYXVsdHMgaW1wb3J0ICoKLQotcHJvZ3JhbV9kaXIgPSBmaW5kX3Byb2dyYW1fZGlyKCkKLQotd2FudGVkX2FyY2hzICAgPSBrZXJuZWxfYXJjaHMKLXdhbnRlZF9jb25maWcgID0gTm9uZQotCi1kZWYgdXNhZ2UoKToKLSAgICBwcmludCAiIiJcCi0gIHVzYWdlOiAgZmluZF9oZWFkZXJzLnB5IFtvcHRpb25zXSA8a2VybmVsLXJvb3Q+IChmaWxlfGRpcmVjdG9yeXxAbGlzdGZpbGUpKwotCi0gICAgIG9wdGlvbnM6Ci0gICAgICAgIC1jIDxmaWxlPiAgICAgICAgICBzcGVjaWZ5IC5jb25maWcgZmlsZSAobm9uZSBieSBkZWZhdWx0KQotCi0gICAgICAgIC1hIDxhcmNocz4gICAgICAgICB1c2VkIHRvIHNwZWNpZnkgYW4gYWx0ZXJuYXRpdmUgbGlzdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYXJjaGl0ZWN0dXJlcyB0byBzdXBwb3J0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAoJyVzJyBieSBkZWZhdWx0KQotCi0gICAgICAgIC12ICAgICAgICAgICAgICAgICBlbmFibGUgdmVyYm9zZSBtb2RlCi0KLSAgICB0aGlzIHByb2dyYW0gaXMgdXNlZCB0byBmaW5kIGFsbCB0aGUga2VybmVsIGhlYWRlcnMgdGhhdCBhcmUgdXNlZAotICAgIGJ5IGEgc2V0IG9mIHNvdXJjZSBmaWxlcyBvciBkaXJlY3RvcmllcyBjb250YWluaW5nIHRoZW0uIHRoZSBzZWFyY2gKLSAgICBpcyByZWN1cnNpdmUgdG8gZmluZCAqYWxsKiByZXF1aXJlZCBmaWxlcy4KLQotIiIiICUgKCBzdHJpbmcuam9pbihrZXJuZWxfYXJjaHMsIiwiKSApCi0gICAgc3lzLmV4aXQoMSkKLQotCi10cnk6Ci0gICAgb3B0bGlzdCwgYXJncyA9IGdldG9wdC5nZXRvcHQoIHN5cy5hcmd2WzE6XSwgJ3ZjOmQ6YTprOicgKQotZXhjZXB0OgotICAgICMgdW5yZWNvZ25pemVkIG9wdGlvbgotICAgIHByaW50ICJlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbiIKLSAgICB1c2FnZSgpCi0KLWZvciBvcHQsIGFyZyBpbiBvcHRsaXN0OgotICAgIGlmIG9wdCA9PSAnLWEnOgotICAgICAgICB3YW50ZWRfYXJjaHMgPSBzdHJpbmcuc3BsaXQoYXJnLCcsJykKLSAgICBlbGlmIG9wdCA9PSAnLWMnOgotICAgICAgICB3YW50ZWRfY29uZmlnID0gYXJnCi0gICAgZWxpZiBvcHQgPT0gJy12JzoKLSAgICAgICAga2VybmVsLnZlcmJvc2VTZWFyY2ggPSAxCi0gICAgICAgIGtlcm5lbC52ZXJib3NlRmluZCAgID0gMQotICAgICAgICB2ZXJib3NlID0gMQotICAgIGVsc2U6Ci0gICAgICAgIHVzYWdlKCkKLQotaWYgbGVuKGFyZ3MpIDwgMjoKLSAgICB1c2FnZSgpCi0KLWtlcm5lbF9yb290ID0gYXJnc1swXQotaWYgbm90IG9zLnBhdGguZXhpc3RzKGtlcm5lbF9yb290KToKLSAgICBzeXMuc3RkZXJyLndyaXRlKCAiZXJyb3I6IGRpcmVjdG9yeSAnJXMnIGRvZXMgbm90IGV4aXN0XG4iICUga2VybmVsX3Jvb3QgKQotICAgIHN5cy5leGl0KDEpCi0KLWlmIG5vdCBvcy5wYXRoLmlzZGlyKGtlcm5lbF9yb290KToKLSAgICBzeXMuc3RkZXJyLndyaXRlKCAiZXJyb3I6ICclcycgaXMgbm90IGEgZGlyZWN0b3J5XG4iICUga2VybmVsX3Jvb3QgKQotICAgIHN5cy5leGl0KDEpCi0KLWlmIG5vdCBvcy5wYXRoLmlzZGlyKGtlcm5lbF9yb290KyIvaW5jbHVkZS9saW51eCIpOgotICAgIHN5cy5zdGRlcnIud3JpdGUoICJlcnJvcjogJyVzJyBkb2VzIG5vdCBoYXZlIGFuICdpbmNsdWRlL2xpbnV4JyBkaXJlY3RvcnlcbiIgJSBrZXJuZWxfcm9vdCApCi0gICAgc3lzLmV4aXQoMSkKLQotaWYgd2FudGVkX2NvbmZpZzoKLSAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMod2FudGVkX2NvbmZpZyk6Ci0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoICJlcnJvcjogZmlsZSAnJXMnIGRvZXMgbm90IGV4aXN0XG4iICUgd2FudGVkX2NvbmZpZyApCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUod2FudGVkX2NvbmZpZyk6Ci0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoICJlcnJvcjogJyVzJyBpcyBub3QgYSBmaWxlXG4iICUgd2FudGVkX2NvbmZpZyApCi0gICAgICAgIHN5cy5leGl0KDEpCi0KLSMgZmluZCBhbGwgYXJjaGl0ZWN0dXJlcyBpbiB0aGUga2VybmVsIHRyZWUKLWFyY2hzICAgPSBbXQotZm9yIGFyY2hkaXIgaW4gb3MubGlzdGRpcihrZXJuZWxfcm9vdCsiL2FyY2giKToKLSAgICBpZiBvcy5wYXRoLmV4aXN0cygiJXMvYXJjaC8lcy9pbmNsdWRlL2FzbSIgJSAoa2VybmVsX3Jvb3QsIGFyY2hkaXIpKToKLSAgICAgICAgaWYgdmVyYm9zZToKLSAgICAgICAgICAgIHByaW50ICJGb3VuZCBhcmNoICclcyciICUgYXJjaGRpcgotICAgICAgICBhcmNocy5hcHBlbmQoYXJjaGRpcikKLQotIyBpZiB3ZSdyZSB1c2luZyB0aGUgJ2tlcm5lbF9oZWFkZXJzJyBkaXJlY3RvcnksIHRoZXJlIGlzIG9ubHkgYXNtLwotIyBhbmQgbm8gb3RoZXIgYXNtLTxhcmNoPiBkaXJlY3RvcmllcwotIwotaW5fa2VybmVsX2hlYWRlcnMgPSBGYWxzZQotaWYgbGVuKGFyY2hzKSA9PSAwOgotICAgICMgdGhpcyBjYW4gaGFwcGVuIHdoZW4gd2UncmUgdXNpbmcgdGhlICdrZXJuZWxfaGVhZGVycycgZGlyZWN0b3J5Ci0gICAgaWYgb3MucGF0aC5pc2RpcihrZXJuZWxfcm9vdCsiL2FzbSIpOgotICAgICAgICBpbl9rZXJuZWxfaGVhZGVycyA9IFRydWUKLSAgICAgICAgYXJjaHMgPSBbICJhcm0iLCAibWlwcyJdCi0KLSMgaWYgdGhlIHVzZXIgaGFzIHNwZWNpZmllZCBzb21lIGFyY2hpdGVjdHVyZXMgd2l0aCAtYSA8YXJjaHM+IGVuc3VyZSB0aGF0Ci0jIGFsbCB0aG9zZSBoZSB3YW50cyBhcmUgYXZhaWxhYmxlIGZyb20gdGhlIGtlcm5lbCBpbmNsdWRlIHRyZWUKLWlmIHdhbnRlZF9hcmNocyAhPSBOb25lOgotICAgIGlmIGluX2tlcm5lbF9oZWFkZXJzIGFuZCB3YW50ZWRfYXJjaHMgIT0gWyAiYXJtIiwgIm1pcHMiIF06Ci0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoICJlcnJvcjogd2hlbiBwYXJzaW5nIGtlcm5lbF9oZWFkZXJzLCBvbmx5ICdhcm0nIGFuZCAnbWlwcycgYXJjaGl0ZWN0dXJlcyBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnRcbiIgKQotICAgICAgICBzeXMuZXhpdCgxKQotICAgIG1pc3NpbmcgPSBbXQotICAgIGZvciBhcmNoIGluIHdhbnRlZF9hcmNoczoKLSAgICAgICAgaWYgYXJjaCBub3QgaW4gYXJjaHM6Ci0gICAgICAgICAgICBtaXNzaW5nLmFwcGVuZChhcmNoKQotICAgIGlmIGxlbihtaXNzaW5nKSA+IDA6Ci0gICAgICAgIHN5cy5zdGRlcnIud3JpdGUoICJlcnJvcjogdGhlIGZvbGxvd2luZyByZXF1ZXN0ZWQgYXJjaGl0ZWN0dXJlcyBhcmUgbm90IGluIHRoZSBrZXJuZWwgdHJlZTogIiApCi0gICAgICAgIGZvciBhIGluIG1pc3Npbmc6Ci0gICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCAiICVzIiAlIGEgKQotICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCAiXG4iICkKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGFyY2hzID0gd2FudGVkX2FyY2hzCi0KLSMgaGVscGVyIGZ1bmN0aW9uIHVzZWQgdG8gd2FsayB0aGUgdXNlciBmaWxlcwotZGVmIHBhcnNlX2ZpbGUocGF0aCwgcGFyc2VyKToKLSAgICAjcHJpbnQgInBhcnNlICVzIiAlIHBhdGgKLSAgICBwYXJzZXIucGFyc2VGaWxlKHBhdGgpCi0KLQotIyByZW1vdmUgcHJldmlvdXMgZGVzdGluYXRpb24gZGlyZWN0b3J5Ci0jZGVzdGRpciA9ICIvdG1wL2Jpb25pYy1rZXJuZWwtaGVhZGVycy8iCi0jY2xlYW51cF9kaXIoZGVzdGRpcikKLQotIyB0cnkgdG8gcmVhZCB0aGUgY29uZmlnIGZpbGUKLXRyeToKLSAgICBjcGFyc2VyID0ga2VybmVsLkNvbmZpZ1BhcnNlcigpCi0gICAgaWYgd2FudGVkX2NvbmZpZzoKLSAgICAgICAgY3BhcnNlci5wYXJzZUZpbGUoIHdhbnRlZF9jb25maWcgKQotZXhjZXB0OgotICAgIHN5cy5zdGRlcnIud3JpdGUoICJlcnJvcjogY2FuJ3QgcGFyc2UgJyVzJyIgJSB3YW50ZWRfY29uZmlnICkKLSAgICBzeXMuZXhpdCgxKQotCi1rZXJuZWxfY29uZmlnID0gY3BhcnNlci5nZXREZWZpbml0aW9ucygpCi0KLSMgZmlyc3QsIG9idGFpbiB0aGUgbGlzdCBvZiBrZXJuZWwgZmlsZXMgdXNlZCBieSBvdXIgY2xpZW50cwotZnBhcnNlciA9IGtlcm5lbC5IZWFkZXJTY2FubmVyKCkKLWRpcl9leGNsdWRlcz1bIi5yZXBvIiwiZXh0ZXJuYWwva2VybmVsLWhlYWRlcnMiLCJuZGsiLCJvdXQiLCJwcmVidWlsdCIsImJpb25pYy9saWJjL2tlcm5lbCIsImRldmVsb3BtZW50L25kayIsImV4dGVybmFsL3FlbXUvZGlzdHJpYiJdCi13YWxrX3NvdXJjZV9maWxlcyggYXJnc1sxOl0sIHBhcnNlX2ZpbGUsIGZwYXJzZXIsIGV4Y2x1ZGVzPVsiLi8iK2YgZm9yIGYgaW4gZGlyX2V4Y2x1ZGVzXSApCi1oZWFkZXJzID0gZnBhcnNlci5nZXRIZWFkZXJzKCkKLWZpbGVzICAgPSBmcGFyc2VyLmdldEZpbGVzKCkKLQotIyBub3cgcmVjdXJzaXZlbHkgc2NhbiB0aGUga2VybmVsIGhlYWRlcnMgZm9yIGFkZGl0aW9ubmFsIHN1Yi1pbmNsdWRlZCBoZWFkZXJzCi1ocGFyc2VyID0ga2VybmVsLktlcm5lbEhlYWRlckZpbmRlcihoZWFkZXJzLGFyY2hzLGtlcm5lbF9yb290LGtlcm5lbF9jb25maWcpCi1oZWFkZXJzID0gaHBhcnNlci5zY2FuRm9yQWxsQXJjaHMoKQotCi1pZiAwOiAgICAjIGp1c3QgZm9yIGRlYnVnZ2luZwotICAgIGR1bXBIZWFkZXJVc2VycyA9IEZhbHNlCi0KLSAgICBwcmludCAidGhlIGZvbGxvd2luZyAlZCBoZWFkZXJzOiIgJSBsZW4oaGVhZGVycykKLSAgICBmb3IgaCBpbiBzb3J0ZWQoaGVhZGVycyk6Ci0gICAgICAgIGlmIGR1bXBIZWFkZXJVc2VyczoKLSAgICAgICAgICAgIHByaW50ICIgICVzICglcykiICUgKGgsIHJlcHIoaHBhcnNlci5nZXRIZWFkZXJVc2VycyhoKSkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCAiICAlcyIgJSBoCi0KLSAgICBwcmludCAiYXJlIHVzZWQgYnkgdGhlIGZvbGxvd2luZyAlZCBmaWxlczoiICUgbGVuKGZpbGVzKQotICAgIGZvciBmIGluIHNvcnRlZChmaWxlcyk6Ci0gICAgICAgIHByaW50ICIgICVzIiAlIGYKLQotICAgIHN5cy5leGl0KDApCi0KLWZvciBoIGluIHNvcnRlZChoZWFkZXJzKToKLSAgICBwcmludCAiJXMiICUgaAotCi1zeXMuZXhpdCgwKQpkaWZmIC0tZ2l0IGEvbGliYy9rZXJuZWwvdG9vbHMvZmluZF91c2Vycy5weSBiL2xpYmMva2VybmVsL3Rvb2xzL2ZpbmRfdXNlcnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDVlZTMwOGMuLjAwMDAwMDAKLS0tIGEvbGliYy9rZXJuZWwvdG9vbHMvZmluZF91c2Vycy5weQorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyB0aGlzIHByb2dyYW0gaXMgdXNlZCB0byBmaW5kIHNvdXJjZSBjb2RlIHRoYXQgaW5jbHVkZXMgbGludXgga2VybmVsIGhlYWRlcnMgZGlyZWN0bHkKLSMgKGUuZy4gd2l0aCAjaW5jbHVkZSA8bGludXgvLi4uPiBvciAjaW5jbHVkZSA8YXNtLy4uLj4pCi0jCi0jIHRoZW4gaXQgbGlzdHMKLQotaW1wb3J0IHN5cywgY3BwLCBnbG9iLCBvcywgcmUsIGdldG9wdAotaW1wb3J0IGtlcm5lbAotZnJvbSB1dGlscyBpbXBvcnQgKgotZnJvbSBkZWZhdWx0cyBpbXBvcnQgKgotCi0KLWRlZiB1c2FnZSgpOgotICAgIHByaW50ICIiIlwKLSAgdXNhZ2U6ICBmaW5kX3VzZXJzLnB5IFstdl0gKGZpbGV8ZGlyZWN0b3J5fEBsaXN0ZmlsZSkrCi0KLSAgICB0aGlzIHByb2dyYW0gaXMgdXNlZCB0byBzY2FuIGEgbGlzdCBvZiBmaWxlcyBvciBkaXJlY3RvcmllcyBmb3IKLSAgICBzb3VyY2VzIHRoYXQgaW5jbHVkZSBrZXJuZWwgaGVhZGVycyBkaXJlY3RseS4gdGhlIHByb2dyYW0gcHJpbnRzCi0gICAgdGhlIGxpc3Qgb2Ygc2FpZCBzb3VyY2UgZmlsZXMgd2hlbiBpdCdzIGRvbmUuCi0KLSAgICB3aGVuIHNjYW5uaW5nIGRpcmVjdG9yaWVzLCBvbmx5IGZpbGVzIG1hdGNoaW5nIHRoZSBmb2xsb3dpbmcKLSAgICBleHRlbnNpb24gd2lsbCBiZSBzZWFyY2hlZDogLmMgLmNwcCAuUyAuaAotCi0gICAgdXNlIC12IHRvIGVuYWJsZSB2ZXJib3NlIG91dHB1dAotIiIiCi0gICAgc3lzLmV4aXQoMSkKLQotCi10cnk6Ci0gICAgb3B0bGlzdCwgYXJncyA9IGdldG9wdC5nZXRvcHQoIHN5cy5hcmd2WzE6XSwgJ3YnICkKLWV4Y2VwdDoKLSAgICAjIHVucmVjb2duaXplZCBvcHRpb24KLSAgICBwcmludCAiZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb24iCi0gICAgdXNhZ2UoKQotCi1mb3Igb3B0LCBhcmcgaW4gb3B0bGlzdDoKLSAgICBpZiBvcHQgPT0gJy12JzoKLSAgICAgICAga2VybmVsLnZlcmJvc2VTZWFyY2ggPSAxCi0gICAgICAgIGtlcm5lbC52ZXJib3NlRmluZCAgID0gMQotICAgIGVsc2U6Ci0gICAgICAgIHVzYWdlKCkKLQotaWYgbGVuKGFyZ3MpIDwgMToKLSAgICB1c2FnZSgpCi0KLSMgaGVscGVyIGZ1bmN0aW9uIHVzZWQgdG8gd2FsayB0aGUgdXNlciBmaWxlcwotZGVmIHBhcnNlX2ZpbGUocGF0aCwgcGFyc2VyKToKLSAgICBwYXJzZXIucGFyc2VGaWxlKHBhdGgpCi0KLQotIyBmaXJzdCwgb2J0YWluIHRoZSBsaXN0IG9mIGtlcm5lbCBmaWxlcyB1c2VkIGJ5IG91ciBjbGllbnRzCi0jIGF2b2lkIHBhcnNpbmcgdGhlICdrZXJuZWxfaGVhZGVycycgZGlyZWN0b3J5IGl0c2VsZiBzaW5jZSB3ZQotIyB1c2UgdGhpcyBwcm9ncmFtIHdpdGggdGhlIEFuZHJvaWQgc291cmNlIHRyZWUgYnkgZGVmYXVsdC4KLSMKLWZwYXJzZXIgPSBrZXJuZWwuSGVhZGVyU2Nhbm5lcigpCi13YWxrX3NvdXJjZV9maWxlcyggYXJncywgcGFyc2VfZmlsZSwgZnBhcnNlciwgZXhjbHVkZXM9WyJrZXJuZWxfaGVhZGVycyIsIm9yaWdpbmFsIl0gKQotZmlsZXMgICA9IGZwYXJzZXIuZ2V0RmlsZXMoKQotCi1mb3IgZiBpbiBzb3J0ZWQoZmlsZXMpOgotICAgIHByaW50IGYKLQotc3lzLmV4aXQoMCkKZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL2ZjbnRsLmggYi9saWJjL2tlcm5lbC91YXBpL2FzbS1taXBzL2FzbS9mY250bC5oCmluZGV4IDRhOWJmNWMuLmU3N2Y3OWEgMTAwNjQ0Ci0tLSBhL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL2ZjbnRsLmgKKysrIGIvbGliYy9rZXJuZWwvdWFwaS9hc20tbWlwcy9hc20vZmNudGwuaApAQCAtNDYsMTkgKzQ2LDIxIEBACiAjZGVmaW5lIEZfU0VUTEtXNjQgMzUKICNlbmRpZgogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNpZmRlZiBfQUJJTzMyCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIHN0cnVjdCBmbG9jayB7CiAgc2hvcnQgbF90eXBlOwotIHNob3J0IGxfd2hlbmNlOwogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyBzaG9ydCBsX3doZW5jZTsKICBfX2tlcm5lbF9vZmZfdCBsX3N0YXJ0OwogIF9fa2VybmVsX29mZl90IGxfbGVuOwogIGxvbmcgbF9zeXNpZDsKLSBfX2tlcm5lbF9waWRfdCBsX3BpZDsKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisgX19rZXJuZWxfcGlkX3QgbF9waWQ7CiAgbG9uZyBwYWRbNF07CiB9OwogI2RlZmluZSBIQVZFX0FSQ0hfU1RSVUNUX0ZMT0NLCi0jaW5jbHVkZSA8YXNtLWdlbmVyaWMvZmNudGwuaD4KIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAjZW5kaWYKKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9mY250bC5oPgorI2VuZGlmCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC91YXBpL2FzbS1taXBzL2FzbS9tc2didWYuaCBiL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL21zZ2J1Zi5oCmluZGV4IGQ4MWRhNzMuLjYyNGJkZGYgMTAwNjQ0Ci0tLSBhL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL21zZ2J1Zi5oCisrKyBiL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL21zZ2J1Zi5oCkBAIC0yMSwyMSArMjEsMjkgQEAKIHN0cnVjdCBtc3FpZDY0X2RzIHsKICBzdHJ1Y3QgaXBjNjRfcGVybSBtc2dfcGVybTsKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCi0gdW5zaWduZWQgbG9uZyBfX3VudXNlZDE7CiAgX19rZXJuZWxfdGltZV90IG1zZ19zdGltZTsKLSB1bnNpZ25lZCBsb25nIF9fdW51c2VkMjsKLSBfX2tlcm5lbF90aW1lX3QgbXNnX3J0aW1lOworI2lmZGVmIF9BQklPMzIKKyB1bnNpZ25lZCBsb25nIF9fdW51c2VkMTsKKyNlbmRpZgogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KLSB1bnNpZ25lZCBsb25nIF9fdW51c2VkMzsKKyBfX2tlcm5lbF90aW1lX3QgbXNnX3J0aW1lOworI2lmZGVmIF9BQklPMzIKKyB1bnNpZ25lZCBsb25nIF9fdW51c2VkMjsKKyNlbmRpZgorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBfX2tlcm5lbF90aW1lX3QgbXNnX2N0aW1lOworI2lmZGVmIF9BQklPMzIKKyB1bnNpZ25lZCBsb25nIF9fdW51c2VkMzsKKyNlbmRpZgorLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICB1bnNpZ25lZCBsb25nIG1zZ19jYnl0ZXM7CiAgdW5zaWduZWQgbG9uZyBtc2dfcW51bTsKLS8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAgdW5zaWduZWQgbG9uZyBtc2dfcWJ5dGVzOwogIF9fa2VybmVsX3BpZF90IG1zZ19sc3BpZDsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAgX19rZXJuZWxfcGlkX3QgbXNnX2xycGlkOwogIHVuc2lnbmVkIGxvbmcgX191bnVzZWQ0OwotLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICB1bnNpZ25lZCBsb25nIF9fdW51c2VkNTsKIH07CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC91YXBpL2FzbS1taXBzL2FzbS9yZXNvdXJjZS5oIGIvbGliYy9rZXJuZWwvdWFwaS9hc20tbWlwcy9hc20vcmVzb3VyY2UuaAppbmRleCA4NzYxNjk3Li5mZjdjZmQ1IDEwMDY0NAotLS0gYS9saWJjL2tlcm5lbC91YXBpL2FzbS1taXBzL2FzbS9yZXNvdXJjZS5oCisrKyBiL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL3Jlc291cmNlLmgKQEAgLTI0LDcgKzI0LDEwIEBACiAjZGVmaW5lIFJMSU1JVF9SU1MgNwogI2RlZmluZSBSTElNSVRfTlBST0MgOAogI2RlZmluZSBSTElNSVRfTUVNTE9DSyA5Ci0jZGVmaW5lIFJMSU1fSU5GSU5JVFkgMHg3ZmZmZmZmZlVMCisjaWZkZWYgX0FCSU8zMgogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNkZWZpbmUgUkxJTV9JTkZJTklUWSAweDdmZmZmZmZmVUwKKyNlbmRpZgogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3Jlc291cmNlLmg+CiAjZW5kaWYKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCmRpZmYgLS1naXQgYS9saWJjL2tlcm5lbC91YXBpL2FzbS1taXBzL2FzbS9zaWdpbmZvLmggYi9saWJjL2tlcm5lbC91YXBpL2FzbS1taXBzL2FzbS9zaWdpbmZvLmgKaW5kZXggNDViNDE4YS4uNGFiYzdhZiAxMDA2NDQKLS0tIGEvbGliYy9rZXJuZWwvdWFwaS9hc20tbWlwcy9hc20vc2lnaW5mby5oCisrKyBiL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL3NpZ2luZm8uaApAQCAtMjQsODAgKzI0LDgyIEBACiAjZGVmaW5lIEhBVkVfQVJDSF9TSUdJTkZPX1QKICNkZWZpbmUgSEFWRV9BUkNIX0NPUFlfU0lHSU5GTwogc3RydWN0IHNpZ2luZm87Ci0jZGVmaW5lIF9fQVJDSF9TSV9QUkVBTUJMRV9TSVpFICgzICogc2l6ZW9mKGludCkpCisjaWZkZWYgX0FCSU8zMgogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNkZWZpbmUgX19BUkNIX1NJX1BSRUFNQkxFX1NJWkUgKDMgKiBzaXplb2YoaW50KSkKKyNlbmRpZgogI2lmZGVmIF9fTFA2NF9fCiAjZGVmaW5lIF9fQVJDSF9TSV9QUkVBTUJMRV9TSVpFICg0ICogc2l6ZW9mKGludCkpCisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogI2VuZGlmCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvc2lnaW5mby5oPgotLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KIHR5cGVkZWYgc3RydWN0IHNpZ2luZm8gewogIGludCBzaV9zaWdubzsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAgaW50IHNpX2NvZGU7CiAgaW50IHNpX2Vycm5vOwotLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBpbnQgX19wYWQwW1NJX01BWF9TSVpFIC8gc2l6ZW9mKGludCkgLSBTSV9QQURfU0laRSAtIDNdOwogIHVuaW9uIHsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAgaW50IF9wYWRbU0lfUEFEX1NJWkVdOwogIHN0cnVjdCB7Ci0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIHBpZF90IF9waWQ7CiAgX19BUkNIX1NJX1VJRF9UIF91aWQ7CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIH0gX2tpbGw7CiAgc3RydWN0IHsKLS8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAgdGltZXJfdCBfdGlkOwogIGludCBfb3ZlcnJ1bjsKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAgY2hhciBfcGFkW3NpemVvZiggX19BUkNIX1NJX1VJRF9UKSAtIHNpemVvZihpbnQpXTsKICBzaWd2YWxfdCBfc2lndmFsOwotLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBpbnQgX3N5c19wcml2YXRlOwogIH0gX3RpbWVyOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBzdHJ1Y3QgewogIHBpZF90IF9waWQ7Ci0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIF9fQVJDSF9TSV9VSURfVCBfdWlkOwogIHNpZ3ZhbF90IF9zaWd2YWw7CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIH0gX3J0OwogIHN0cnVjdCB7Ci0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIHBpZF90IF9waWQ7CiAgX19BUkNIX1NJX1VJRF9UIF91aWQ7CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIGludCBfc3RhdHVzOwogIGNsb2NrX3QgX3V0aW1lOwotLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBjbG9ja190IF9zdGltZTsKICB9IF9zaWdjaGxkOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBzdHJ1Y3QgewogIHBpZF90IF9waWQ7Ci0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIGNsb2NrX3QgX3V0aW1lOwogIGludCBfc3RhdHVzOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBjbG9ja190IF9zdGltZTsKICB9IF9pcml4X3NpZ2NobGQ7Ci0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIHN0cnVjdCB7CiAgdm9pZCBfX3VzZXIgKl9hZGRyOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICNpZmRlZiBfX0FSQ0hfU0lfVFJBUE5PCiAgaW50IF90cmFwbm87Ci0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogI2VuZGlmCiAgc2hvcnQgX2FkZHJfbHNiOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICB9IF9zaWdmYXVsdDsKICBzdHJ1Y3QgewotLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICBfX0FSQ0hfU0lfQkFORF9UIF9iYW5kOwogIGludCBfZmQ7CisvKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogIH0gX3NpZ3BvbGw7CiAgfSBfc2lmaWVsZHM7Ci0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogfSBzaWdpbmZvX3Q7CiAjdW5kZWYgU0lfQVNZTkNJTworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICN1bmRlZiBTSV9USU1FUgogI3VuZGVmIFNJX01FU0dRCi0vKiBXQVJOSU5HOiBETyBOT1QgRURJVCwgQVVUTy1HRU5FUkFURUQgQ09ERSAtIFNFRSBUT1AgRk9SIElOU1RSVUNUSU9OUyAqLwogI2RlZmluZSBTSV9BU1lOQ0lPIC0yCiAjZGVmaW5lIFNJX1RJTUVSIF9fU0lfQ09ERShfX1NJX1RJTUVSLCAtMykKKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCiAjZGVmaW5lIFNJX01FU0dRIF9fU0lfQ09ERShfX1NJX01FU0dRLCAtNCkKICNlbmRpZgotLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL3R5cGVzLmggYi9saWJjL2tlcm5lbC91YXBpL2FzbS1taXBzL2FzbS90eXBlcy5oCmluZGV4IDQ1ZmVhNmMuLjllZjdiN2MgMTAwNjQ0Ci0tLSBhL2xpYmMva2VybmVsL3VhcGkvYXNtLW1pcHMvYXNtL3R5cGVzLmgKKysrIGIvbGliYy9rZXJuZWwvdWFwaS9hc20tbWlwcy9hc20vdHlwZXMuaApAQCAtMTgsMTEgKzE4LDYgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2lmbmRlZiBfVUFQSV9BU01fVFlQRVNfSAogI2RlZmluZSBfVUFQSV9BU01fVFlQRVNfSAotI2lmIF9NSVBTX1NaTE9ORyA9PSA2NAotI2luY2x1ZGUgPGFzbS1nZW5lcmljL2ludC1sNjQuaD4KLS8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCi0jZWxzZQogI2luY2x1ZGUgPGFzbS1nZW5lcmljL2ludC1sbDY0Lmg+CiAjZW5kaWYKLSNlbmRpZgogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zaGExLmggYi9saWJjL3ByaXZhdGUvYmlvbmljX2NvbmZpZy5oCnNpbWlsYXJpdHkgaW5kZXggNjElCmNvcHkgZnJvbSBsaWJjL2luY2x1ZGUvc2hhMS5oCmNvcHkgdG8gbGliYy9wcml2YXRlL2Jpb25pY19jb25maWcuaAppbmRleCA3ZjZjZjVkLi4wYzk4MTFjIDEwMDY0NAotLS0gYS9saWJjL2luY2x1ZGUvc2hhMS5oCisrKyBiL2xpYmMvcHJpdmF0ZS9iaW9uaWNfY29uZmlnLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqIENvcHlyaWdodCAoQykgMjAxNCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CiAgKgogICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCkBAIC0xNCwxMCArMTQsMTMgQEAKICAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogICovCiAKLSNpZm5kZWYgX1NIQTFfSF8KLSNkZWZpbmUgX1NIQTFfSF8KKyNpZm5kZWYgX0JJT05JQ19DT05GSUdfSF8KKyNkZWZpbmUgX0JJT05JQ19DT05GSUdfSF8KIAotI3dhcm5pbmcgImluY2x1ZGUgPHN5cy9zaGExLmg+IGluc3RlYWQgZm9yIGJldHRlciBwb3J0YWJpbGl0eSIKLSNpbmNsdWRlIDxzeXMvc2hhMS5oPgotCisvLyB2YWxsb2MoMykgYW5kIHB2YWxsb2MoMykgd2VyZSByZW1vdmVkIGZyb20gUE9TSVggMjAwNC4gV2UgZG8gbm90IGluY2x1ZGUgdGhlbQorLy8gZm9yIExQNjQsIGJ1dCB0aGUgc3ltYm9scyByZW1haW4gaW4gTFAzMiBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkuCisjaWYgIWRlZmluZWQoX19MUDY0X18pCisjZGVmaW5lIEhBVkVfREVQUkVDQVRFRF9NQUxMT0NfRlVOQ1MgMQogI2VuZGlmCisKKyNlbmRpZiAvLyBfQklPTklDX0NPTkZJR19IXwpkaWZmIC0tZ2l0IGEvbGliYy9wcml2YXRlL2Jpb25pY19tYWNyb3MuaCBiL2xpYmMvcHJpdmF0ZS9iaW9uaWNfbWFjcm9zLmgKaW5kZXggMzRkYTUwMS4uYTNhNjk4NSAxMDA2NDQKLS0tIGEvbGliYy9wcml2YXRlL2Jpb25pY19tYWNyb3MuaAorKysgYi9saWJjL3ByaXZhdGUvYmlvbmljX21hY3Jvcy5oCkBAIC0zMyw0ICszMywxMCBAQAogICBUeXBlTmFtZSgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFR5cGVOYW1lKQogCisjZGVmaW5lIEJJT05JQ19BTElHTih2YWx1ZSwgYWxpZ25tZW50KSBcCisgICgoKHZhbHVlKSArIChhbGlnbm1lbnQpIC0gMSkgJiB+KChhbGlnbm1lbnQpIC0gMSkpCisKKyNkZWZpbmUgQklPTklDX1JPVU5EX1VQX1BPV0VSX09GXzIodmFsdWUpIFwKKyAgKDFVTCA8PCAoc2l6ZW9mKHZhbHVlKSAqIDggLSAxIC0gX19idWlsdGluX2Nseih2YWx1ZSkpKQorCiAjZW5kaWYgLy8gX0JJT05JQ19NQUNST1NfSF8KZGlmZiAtLWdpdCBhL2xpYmMvcHJpdmF0ZS9iaW9uaWNfdGltZS5oIGIvbGliYy9wcml2YXRlL2Jpb25pY190aW1lLmgKaW5kZXggN2M4MGY1OS4uY2E1YzE0NiAxMDA2NDQKLS0tIGEvbGliYy9wcml2YXRlL2Jpb25pY190aW1lLmgKKysrIGIvbGliYy9wcml2YXRlL2Jpb25pY190aW1lLmgKQEAgLTUyLDEwICs1MiwxMSBAQAogCiAvKgogICogTm90ZTogeW91IHNob3VsZCBjb25zaWRlciB0aGVzZSBleHRlbnNpb25zIGRlcHJlY2F0ZWQgYW5kIHVzZSBtYW5hZ2VkIGNvZGUgb3IgaWN1NGMgaW5zdGVhZC4KKyAqIFdlJ2QgbGlrZSB0byBoaWRlIHRoZW0gYnV0IHRoZXkncmUgY3VycmVudGx5IHN0aWxsIHVzZWQgaW4gZnJhbWV3b3JrcyBjb2RlLgogICovCi1leHRlcm4gc2l6ZV90IHN0cmZ0aW1lX3R6KGNoYXIqIHMsIHNpemVfdCBtYXgsIGNvbnN0IGNoYXIqIGZvcm1hdCwgY29uc3Qgc3RydWN0IHRtKiB0bSwgY29uc3Qgc3RydWN0IHN0cmZ0aW1lX2xvY2FsZSogbGMpOwotZXh0ZXJuIHRpbWVfdCBta3RpbWVfdHooc3RydWN0IHRtKiBjb25zdCB0bXAsIGNoYXIgY29uc3QqIHR6KTsKLWV4dGVybiB2b2lkIGxvY2FsdGltZV90eihjb25zdCB0aW1lX3QqIGNvbnN0IHRpbWVwLCBzdHJ1Y3QgdG0qIHRtcCwgY29uc3QgY2hhciogdHopOworZXh0ZXJuIHNpemVfdCBzdHJmdGltZV90eihjaGFyKiwgc2l6ZV90LCBjb25zdCBjaGFyKiwgY29uc3Qgc3RydWN0IHRtKiwgY29uc3Qgc3RydWN0IHN0cmZ0aW1lX2xvY2FsZSopOworZXh0ZXJuIHRpbWVfdCBta3RpbWVfdHooc3RydWN0IHRtKiBjb25zdCwgY2hhciBjb25zdCopOworZXh0ZXJuIHZvaWQgbG9jYWx0aW1lX3R6KGNvbnN0IHRpbWVfdCogY29uc3QsIHN0cnVjdCB0bSosIGNvbnN0IGNoYXIqKTsKIAogI2VuZGlmIC8qIF9CSU9OSUNfU1RSRlRJTUVfVFpfREVDTEFSRUQgKi8KIApkaWZmIC0tZ2l0IGEvbGliYy9wcml2YXRlL2Jpb25pY190bHMuaCBiL2xpYmMvcHJpdmF0ZS9iaW9uaWNfdGxzLmgKaW5kZXggYjUyMDEzZi4uNTZhNjFiZSAxMDA2NDQKLS0tIGEvbGliYy9wcml2YXRlL2Jpb25pY190bHMuaAorKysgYi9saWJjL3ByaXZhdGUvYmlvbmljX3Rscy5oCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICNpbmNsdWRlIDxzeXMvbGltaXRzLmg+CisjaW5jbHVkZSAiYmlvbmljX21hY3Jvcy5oIgogI2luY2x1ZGUgIl9fZ2V0X3Rscy5oIgogCiBfX0JFR0lOX0RFQ0xTCkBAIC04NCw4ICs4NSw2IEBACiAjZGVmaW5lIEJJT05JQ19UTFNfUkVTRVJWRURfU0xPVFMgR0xPQkFMX0lOSVRfVEhSRUFEX0xPQ0FMX0JVRkZFUl9DT1VOVAogI2VuZGlmCiAKLSNkZWZpbmUgQklPTklDX0FMSUdOKHgsIGEpICgoKHgpICsgKGEgLSAxKSkgJiB+KGEgLSAxKSkKLQogLyoKICAqIE1heGltdW0gbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZSBUTFMgYXJyYXkuCiAgKiBUaGlzIGluY2x1ZGVzIHNwYWNlIGZvciBwdGhyZWFkIGtleXMgYW5kIG91ciBvd24gaW50ZXJuYWwgc2xvdHMuCmRpZmYgLS1naXQgYS9saWJjL3ByaXZhdGUvdGhyZWFkX3ByaXZhdGUuaCBiL2xpYmMvcHJpdmF0ZS90aHJlYWRfcHJpdmF0ZS5oCmluZGV4IGY3MzExODEuLjcyNDgwOGEgMTAwNjQ0Ci0tLSBhL2xpYmMvcHJpdmF0ZS90aHJlYWRfcHJpdmF0ZS5oCisrKyBiL2xpYmMvcHJpdmF0ZS90aHJlYWRfcHJpdmF0ZS5oCkBAIC03LDYgKzcsOCBAQAogCiAjaW5jbHVkZSA8cHRocmVhZC5oPgogCitfX0JFR0lOX0RFQ0xTCisKIC8qCiAgKiBUaGlzIGZpbGUgZGVmaW5lcyB0aGUgdGhyZWFkIGxpYnJhcnkgaW50ZXJmYWNlIHRvIGxpYmMuICBUaHJlYWQKICAqIGxpYnJhcmllcyBtdXN0IGltcGxlbWVudCB0aGUgZnVuY3Rpb25zIGRlc2NyaWJlZCBoZXJlIGZvciBwcm9wZXIKQEAgLTMxLDEwICszMywxOCBAQAogI2RlZmluZSBfVEhSRUFEX1BSSVZBVEVfTVVURVhfVU5MT0NLKG5hbWUpIFwKIAlwdGhyZWFkX211dGV4X3VubG9jayggJl9fVEhSRUFEX05BTUUobmFtZSkuX3ByaXZhdGVfbG9jayApCiAKLXZvaWQJX3RocmVhZF9hdGV4aXRfbG9jayh2b2lkKTsKLXZvaWQJX3RocmVhZF9hdGV4aXRfdW5sb2NrKHZvaWQpOworX19MSUJDX0hJRERFTl9fIHZvaWQJX3RocmVhZF9hdGV4aXRfbG9jayh2b2lkKTsKK19fTElCQ19ISURERU5fXyB2b2lkCV90aHJlYWRfYXRleGl0X3VubG9jayh2b2lkKTsKIAogI2RlZmluZSBfQVRFWElUX0xPQ0soKSBfdGhyZWFkX2F0ZXhpdF9sb2NrKCkKICNkZWZpbmUgX0FURVhJVF9VTkxPQ0soKSBfdGhyZWFkX2F0ZXhpdF91bmxvY2soKQogCitfX0xJQkNfSElEREVOX18gdm9pZCAgICBfdGhyZWFkX2FyYzRfbG9jayh2b2lkKTsKK19fTElCQ19ISURERU5fXyB2b2lkICAgIF90aHJlYWRfYXJjNF91bmxvY2sodm9pZCk7CisKKyNkZWZpbmUgIF9BUkM0X0xPQ0soKSBfdGhyZWFkX2FyYzRfbG9jaygpCisjZGVmaW5lICBfQVJDNF9VTkxPQ0soKSBfdGhyZWFkX2FyYzRfdW5sb2NrKCkKKworX19FTkRfREVDTFMKKwogI2VuZGlmIC8qIF9USFJFQURfUFJJVkFURV9IXyAqLwpkaWZmIC0tZ2l0IGEvbGliYy9zdGRsaWIvYXRleGl0LmMgYi9saWJjL3N0ZGxpYi9hdGV4aXQuYwppbmRleCBjNjA3MjA2Li4wNWYyZmFhIDEwMDY0NAotLS0gYS9saWJjL3N0ZGxpYi9hdGV4aXQuYworKysgYi9saWJjL3N0ZGxpYi9hdGV4aXQuYwpAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgImF0ZXhpdC5oIgogI2luY2x1ZGUgInByaXZhdGUvdGhyZWFkX3ByaXZhdGUuaCIKIAotaW50IF9fYXRleGl0X2ludmFsaWQgPSAxOwogc3RydWN0IGF0ZXhpdCAqX19hdGV4aXQ7CiAKIC8qCkBAIC0xMzEsOCArMTMwLDYgQEAKIAkJICAgIHNpemVvZihwLT5mbnNbMF0pOwogCQlwLT5uZXh0ID0gX19hdGV4aXQ7CiAJCV9fYXRleGl0ID0gcDsKLQkJaWYgKF9fYXRleGl0X2ludmFsaWQpCi0JCQlfX2F0ZXhpdF9pbnZhbGlkID0gMDsKIAl9CiAJZm5wID0gJnAtPmZuc1twLT5pbmQrK107CiAJZm5wLT5jeGFfZnVuYyA9IGZ1bmM7CkBAIC0xNTksOCArMTU2LDYgQEAKIAlpbnQgbiwgcGdzaXplID0gZ2V0cGFnZXNpemUoKSwgb3JpZ2luYWxfaW5kOwogCXN0YXRpYyBpbnQgY2FsbF9kZXB0aDsKIAotCWlmIChfX2F0ZXhpdF9pbnZhbGlkKQotCQlyZXR1cm47CiAJX0FURVhJVF9MT0NLKCk7CiAJY2FsbF9kZXB0aCsrOwogCmRpZmYgLS1naXQgYS9saWJjL3N0ZGxpYi9hdGV4aXQuaCBiL2xpYmMvc3RkbGliL2F0ZXhpdC5oCmluZGV4IDJlODhhZDYuLmI1MzBhZGUgMTAwNjQ0Ci0tLSBhL2xpYmMvc3RkbGliL2F0ZXhpdC5oCisrKyBiL2xpYmMvc3RkbGliL2F0ZXhpdC5oCkBAIC00NSw4ICs0NSw3IEBACiAKIF9fQkVHSU5fREVDTFMKIAotZXh0ZXJuIGludCBfX2F0ZXhpdF9pbnZhbGlkOwotZXh0ZXJuIHN0cnVjdCBhdGV4aXQgKl9fYXRleGl0OwkJLyogcG9pbnRzIHRvIGhlYWQgb2YgTElGTyBzdGFjayAqLworX19MSUJDX0hJRERFTl9fIGV4dGVybiBzdHJ1Y3QgYXRleGl0ICpfX2F0ZXhpdDsJCS8qIHBvaW50cyB0byBoZWFkIG9mIExJRk8gc3RhY2sgKi8KIAogaW50CV9fY3hhX2F0ZXhpdCh2b2lkICgqKSh2b2lkICopLCB2b2lkICosIHZvaWQgKik7CiB2b2lkCV9fY3hhX2ZpbmFsaXplKHZvaWQgKik7CmRpZmYgLS1naXQgYS9saWJjL3Rvb2xzL2NoZWNrLXN5bWJvbHMtZ2xpYmMucHkgYi9saWJjL3Rvb2xzL2NoZWNrLXN5bWJvbHMtZ2xpYmMucHkKaW5kZXggOTEzYjIwYi4uNThhMTBlMCAxMDA3NTUKLS0tIGEvbGliYy90b29scy9jaGVjay1zeW1ib2xzLWdsaWJjLnB5CisrKyBiL2xpYmMvdG9vbHMvY2hlY2stc3ltYm9scy1nbGliYy5weQpAQCAtMTEsNyArMTEsNiBAQAogYXJjaCA9IHJlLnN1YihyJy4qL2xpbnV4LXg4Ni8oW14vXSspLy4qJywgcidcMScsIHRvb2xjaGFpbikKIAogZGVmIEdldFN5bWJvbHNGcm9tU28oc29fZmlsZSk6Ci0KICAgIyBFeGFtcGxlIHJlYWRlbGYgb3V0cHV0OgogICAjICAgMjY0OiAwMDAxNjIzYyAgICAgNCBGVU5DICAgIEdMT0JBTCBERUZBVUxUICAgIDggY2Fic2YKICAgIyAgIDI2NjogMDAwMTYyNDQgICAgIDQgRlVOQyAgICBHTE9CQUwgREVGQVVMVCAgICA4IGRyZW1mCkBAIC0yMywxMyArMjIsMTMgQEAKICAgc3ltYm9scyA9IHNldCgpCiAKICAgZm9yIGxpbmUgaW4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWydyZWFkZWxmJywgJy0tZHluLXN5bXMnLCAnLVcnLCBzb19maWxlXSkuc3BsaXQoJ1xuJyk6Ci0gICAgIGlmICcgSElEREVOICcgaW4gbGluZSBvciAnIFVORCAnIGluIGxpbmU6Ci0gICAgICAgY29udGludWUKLSAgICAgbSA9IHIubWF0Y2gobGluZSkKLSAgICAgaWYgbToKLSAgICAgICBzeW1ib2wgPSBtLmdyb3VwKDIpCi0gICAgICAgc3ltYm9sID0gcmUuc3ViKCdALionLCAnJywgc3ltYm9sKQotICAgICAgIHN5bWJvbHMuYWRkKHN5bWJvbCkKKyAgICBpZiAnIEhJRERFTiAnIGluIGxpbmUgb3IgJyBVTkQgJyBpbiBsaW5lOgorICAgICAgY29udGludWUKKyAgICBtID0gci5tYXRjaChsaW5lKQorICAgIGlmIG06CisgICAgICBzeW1ib2wgPSBtLmdyb3VwKDIpCisgICAgICBzeW1ib2wgPSByZS5zdWIoJ0AuKicsICcnLCBzeW1ib2wpCisgICAgICBzeW1ib2xzLmFkZChzeW1ib2wpCiAKICAgcmV0dXJuIHN5bWJvbHMKIApAQCAtNDYsOSArNDUsMjMgQEAKICAgICBzeW1ib2xzID0gc3ltYm9scyB8IEdldFN5bWJvbHNGcm9tU28oZikKICAgcmV0dXJuIHN5bWJvbHMKIAorZGVmIE1hbmdsZUdsaWJjTmFtZVRvQmlvbmljKG5hbWUpOgorICBpZiBuYW1lIGluIGdsaWJjX3RvX2Jpb25pY19uYW1lczoKKyAgICByZXR1cm4gZ2xpYmNfdG9fYmlvbmljX25hbWVzW25hbWVdCisgIHJldHVybiBuYW1lCisKK2dsaWJjX3RvX2Jpb25pY19uYW1lcyA9IHsKKyAgJ19fcmVzX2luaXQnOiAncmVzX2luaXQnLAorICAnX19yZXNfbWtxdWVyeSc6ICdyZXNfbWtxdWVyeScsCisgICdfX3Jlc19xdWVyeSc6ICdyZXNfcXVlcnknLAorICAnX19yZXNfc2VhcmNoJzogJ3Jlc19zZWFyY2gnLAorfQorCiBnbGliYyA9IEdldFN5bWJvbHNGcm9tU3lzdGVtU28oJ2xpYmMuc28uKicsICdsaWJydC5zby4qJywgJ2xpYnB0aHJlYWQuc28uKicsICdsaWJyZXNvbHYuc28uKicsICdsaWJtLnNvLionKQogYmlvbmljID0gR2V0U3ltYm9sc0Zyb21BbmRyb2lkU28oJ2xpYmMuc28nLCAnbGlibS5zbycpCiAKK2dsaWJjID0gbWFwKE1hbmdsZUdsaWJjTmFtZVRvQmlvbmljLCBnbGliYykKKwogIyBiaW9uaWMgaW5jbHVkZXMgdmFyaW91cyBCU0Qgc3ltYm9scyB0byBlYXNlIHBvcnRpbmcgb3RoZXIgQlNELWxpY2Vuc2VkIGNvZGUuCiBic2Rfc3R1ZmYgPSBzZXQoWwogICAnYmFzZW5hbWVfcicsCkBAIC05Niw3ICsxMDksMTEgQEAKIF0pCiAjIFNvbWUgc3RhbmRhcmQgc3R1ZmYgaXNuJ3QgeWV0IGluIHRoZSB2ZXJzaW9ucyBvZiBnbGliYyB3ZSdyZSB1c2luZy4KIHN0ZF9zdHVmZiA9IHNldChbCi0gICdhdF9xdWlja19leGl0JworICAnYXRfcXVpY2tfZXhpdCcsCisgICdjMTZydG9tYicsCisgICdjMzJydG9tYicsCisgICdtYnJ0b2MxNicsCisgICdtYnJ0b2MzMicsCiBdKQogIyBUaGVzZSBoYXZlIG1hbmdsZWQgbmFtZXMgaW4gZ2xpYmMsIHdpdGggYSBtYWNybyB0YWtpbmcgdGhlICJvYnZpb3VzIiBuYW1lLgogd2VpcmRfc3R1ZmYgPSBzZXQoWwpkaWZmIC0tZ2l0IGEvbGliYy90b29scy9nZW5zeXNjYWxscy5weSBiL2xpYmMvdG9vbHMvZ2Vuc3lzY2FsbHMucHkKaW5kZXggNWU0ZGRjNS4uOTY1ODNkNiAxMDA3NTUKLS0tIGEvbGliYy90b29scy9nZW5zeXNjYWxscy5weQorKysgYi9saWJjL3Rvb2xzL2dlbnN5c2NhbGxzLnB5CkBAIC05NSwyMCArOTUsOSBAQAogIwogCiBhcm02NF9jYWxsID0gc3lzY2FsbF9zdHViX2hlYWRlciArICIiIlwKLSAgICBzdHAgICAgIHgyOSwgeDMwLCBbc3AsICMtMTZdIQotICAgIC5jZmlfZGVmX2NmYV9vZmZzZXQgMTYKLSAgICAuY2ZpX3JlbF9vZmZzZXQgeDI5LCAwCi0gICAgLmNmaV9yZWxfb2Zmc2V0IHgzMCwgOAotICAgIG1vdiAgICAgeDI5LCAgc3AKLQogICAgIG1vdiAgICAgeDgsICUoX19OUl9uYW1lKXMKICAgICBzdmMgICAgICMwCiAKLSAgICBsZHAgICAgIHgyOSwgeDMwLCBbc3BdLCAjMTYKLSAgICAuY2ZpX2RlZl9jZmFfb2Zmc2V0IDAKLSAgICAuY2ZpX3Jlc3RvcmUgeDI5Ci0gICAgLmNmaV9yZXN0b3JlIHgzMAotCiAgICAgY21uICAgICB4MCwgIyhNQVhfRVJSTk8gKyAxKQogICAgIGNuZWcgICAgeDAsIHgwLCBoaQogICAgIGIuaGkgICAgX19zZXRfZXJybm8KQEAgLTE4Myw3ICsxNzIsNiBAQAogICAgIHB1c2hsICAgJSVlYXgKICAgICBjYWxsICAgIF9fc2V0X2Vycm5vCiAgICAgYWRkbCAgICAkNCwgJSVlc3AKLSAgICBvcmwgICAgICQtMSwgJSVlYXgKIDE6CiAiIiIKIApAQCAtMjA1LDcgKzE5Myw2IEBACiAgICAgbmVnbCAgICAlJWVheAogICAgIG1vdmwgICAgJSVlYXgsICUlZWRpCiAgICAgY2FsbCAgICBfX3NldF9lcnJubwotICAgIG9ycSAgICAgJC0xLCAlJXJheAogMToKICAgICByZXQKIEVORCglKGZ1bmMpcykKZGlmZiAtLWdpdCBhL2xpYmMvdHpjb2RlL2xvY2FsdGltZS5jIGIvbGliYy90emNvZGUvbG9jYWx0aW1lLmMKaW5kZXggYzQwNTY5Yy4uNGRkN2FiMCAxMDA2NDQKLS0tIGEvbGliYy90emNvZGUvbG9jYWx0aW1lLmMKKysrIGIvbGliYy90emNvZGUvbG9jYWx0aW1lLmMKQEAgLTc0LDcgKzc0LDcgQEAKICNkZWZpbmUgV0lMREFCQlIgICAgIiAgICIKICNlbmRpZiAvKiAhZGVmaW5lZCBXSUxEQUJCUiAqLwogCi1zdGF0aWMgY2hhciAgICAgICB3aWxkYWJicltdID0gV0lMREFCQlI7CitzdGF0aWMgY29uc3QgY2hhciAgICAgICB3aWxkYWJicltdID0gV0lMREFCQlI7CiAKIHN0YXRpYyBjb25zdCBjaGFyIGdtdFtdID0gIkdNVCI7CiAKQEAgLTEyOCwxNiArMTI4LDE2IEBACiB9OwogCiBzdHJ1Y3QgcnVsZSB7Ci0gICAgaW50ICAgICAgICAgIHJfdHlwZTsgLyogdHlwZSBvZiBydWxlLS1zZWUgYmVsb3cgKi8KKyAgICBpbnQgICAgICAgICAgcl90eXBlOyAvKiB0eXBlIG9mIHJ1bGU7IHNlZSBiZWxvdyAqLwogICAgIGludCAgICAgICAgICByX2RheTsgIC8qIGRheSBudW1iZXIgb2YgcnVsZSAqLwogICAgIGludCAgICAgICAgICByX3dlZWs7IC8qIHdlZWsgbnVtYmVyIG9mIHJ1bGUgKi8KICAgICBpbnQgICAgICAgICAgcl9tb247ICAvKiBtb250aCBudW1iZXIgb2YgcnVsZSAqLwogICAgIGludF9mYXN0MzJfdCByX3RpbWU7IC8qIHRyYW5zaXRpb24gdGltZSBvZiBydWxlICovCiB9OwogCi0jZGVmaW5lIEpVTElBTl9EQVkgICAgICAgICAgICAwIC8qIEpuIC0gSnVsaWFuIGRheSAqLwotI2RlZmluZSBEQVlfT0ZfWUVBUiAgICAgICAgICAgMSAvKiBuIC0gZGF5IG9mIHllYXIgKi8KLSNkZWZpbmUgTU9OVEhfTlRIX0RBWV9PRl9XRUVLIDIgLyogTW0ubi5kIC0gbW9udGgsIHdlZWssIGRheSBvZiB3ZWVrICovCisjZGVmaW5lIEpVTElBTl9EQVkgICAgICAgICAgICAgMCAgICAgICAvKiBKbiA9IEp1bGlhbiBkYXkgKi8KKyNkZWZpbmUgREFZX09GX1lFQVIgICAgICAgICAgICAxICAgICAgIC8qIG4gPSBkYXkgb2YgeWVhciAqLworI2RlZmluZSBNT05USF9OVEhfREFZX09GX1dFRUsgIDIgICAgICAgLyogTW0ubi5kID0gbW9udGgsIHdlZWssIGRheSBvZiB3ZWVrICovCiAKIC8qCiAqKiBQcm90b3R5cGVzIGZvciBzdGF0aWMgZnVuY3Rpb25zLgpAQCAtMTU4LDEwICsxNTgsMTAgQEAKIHN0YXRpYyBjb25zdCBjaGFyICogZ2V0b2Zmc2V0KGNvbnN0IGNoYXIgKiBzdHJwLCBpbnRfZmFzdDMyX3QgKiBvZmZzZXRwKTsKIHN0YXRpYyBjb25zdCBjaGFyICogZ2V0cnVsZShjb25zdCBjaGFyICogc3RycCwgc3RydWN0IHJ1bGUgKiBydWxlcCk7CiBzdGF0aWMgdm9pZCAgICAgZ210bG9hZChzdHJ1Y3Qgc3RhdGUgKiBzcCk7Ci1zdGF0aWMgc3RydWN0IHRtICogIGdtdHN1Yihjb25zdCB0aW1lX3QgKiB0aW1lcCwgY29uc3QgaW50X2Zhc3QzMl90IG9mZnNldCwKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKiB0bXAsIGNvbnN0IHN0cnVjdCBzdGF0ZSAqIHNwKTsgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KK3N0YXRpYyBzdHJ1Y3QgdG0gKiAgZ210c3ViKGNvbnN0IHRpbWVfdCAqIHRpbWVwLCBpbnRfZmFzdDMyX3Qgb2Zmc2V0LAorICAgICAgICAgICAgICAgIHN0cnVjdCB0bSAqIHRtcCwgc3RydWN0IHN0YXRlICogc3ApOyAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgogc3RhdGljIHN0cnVjdCB0bSAqICBsb2NhbHN1Yihjb25zdCB0aW1lX3QgKiB0aW1lcCwgaW50X2Zhc3QzMl90IG9mZnNldCwKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKiB0bXAsIGNvbnN0IHN0cnVjdCBzdGF0ZSAqIHNwKTsgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KKyAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKiB0bXAsIHN0cnVjdCBzdGF0ZSAqIHNwKTsgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KIHN0YXRpYyBpbnQgICAgICBpbmNyZW1lbnRfb3ZlcmZsb3coaW50ICogbnVtYmVyLCBpbnQgZGVsdGEpOwogc3RhdGljIGludCAgICAgIGxlYXBzX3RocnVfZW5kX29mKGludCB5KSBBVFRSSUJVVEVfUFVSRTsKIHN0YXRpYyBpbnQgICAgICBpbmNyZW1lbnRfb3ZlcmZsb3czMihpbnRfZmFzdDMyX3QgKiBudW1iZXIsIGludCBkZWx0YSk7CkBAIC0xNzMsMTYgKzE3MywxNiBAQAogc3RhdGljIHZvaWQgICAgIHNldHR6bmFtZSh2b2lkKTsKIHN0YXRpYyB0aW1lX3QgICAgICAgdGltZTEoc3RydWN0IHRtICogdG1wLAogICAgICAgICAgICAgICAgIHN0cnVjdCB0bSAqICgqZnVuY3ApKGNvbnN0IHRpbWVfdCAqLAotICAgICAgICAgICAgICAgIGludF9mYXN0MzJfdCwgc3RydWN0IHRtICosIGNvbnN0IHN0cnVjdCBzdGF0ZSAqKSwgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzdGF0ZSouCi0gICAgICAgICAgICAgICAgaW50X2Zhc3QzMl90IG9mZnNldCwgY29uc3Qgc3RydWN0IHN0YXRlICogc3ApOyAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgotc3RhdGljIHRpbWVfdCAgICAgICB0aW1lMihzdHJ1Y3QgdG0gKiBjb25zdCB0bXAsCi0gICAgICAgICAgICAgICAgc3RydWN0IHRtICogKCpjb25zdCBmdW5jcCkoY29uc3QgdGltZV90ICosCi0gICAgICAgICAgICAgICAgaW50X2Zhc3QzMl90LCBzdHJ1Y3QgdG0qLCBjb25zdCBzdHJ1Y3Qgc3RhdGUgKiksIC8vIGFuZHJvaWQtY2hhbmdlZDogYWRkZWQgc3RhdGUqLgotICAgICAgICAgICAgICAgIGludF9mYXN0MzJfdCBvZmZzZXQsIGludCAqIG9rYXlwLCBjb25zdCBzdHJ1Y3Qgc3RhdGUgKiBzcCk7IC8vIGFuZHJvaWQtY2hhbmdlZDogYWRkZWQgc3AuCisgICAgICAgICAgICAgICAgaW50X2Zhc3QzMl90LCBzdHJ1Y3QgdG0gKiwgc3RydWN0IHN0YXRlICopLCAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHN0YXRlKi4KKyAgICAgICAgICAgICAgICBpbnRfZmFzdDMyX3QsIHN0cnVjdCBzdGF0ZSAqIHNwKTsgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KK3N0YXRpYyB0aW1lX3QgICAgICAgdGltZTIoc3RydWN0IHRtICogdG1wLAorICAgICAgICAgICAgICAgIHN0cnVjdCB0bSAqICgqZnVuY3ApKGNvbnN0IHRpbWVfdCAqLAorICAgICAgICAgICAgICAgIGludF9mYXN0MzJfdCwgc3RydWN0IHRtKiwgc3RydWN0IHN0YXRlICopLCAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHN0YXRlKi4KKyAgICAgICAgICAgICAgICBpbnRfZmFzdDMyX3Qgb2Zmc2V0LCBpbnQgKiBva2F5cCwgc3RydWN0IHN0YXRlICogc3ApOyAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgogc3RhdGljIHRpbWVfdCAgICAgICB0aW1lMnN1YihzdHJ1Y3QgdG0gKnRtcCwKICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKiAoKmZ1bmNwKSAoY29uc3QgdGltZV90ICosCi0gICAgICAgICAgICAgICAgaW50X2Zhc3QzMl90LCBzdHJ1Y3QgdG0qLCBjb25zdCBzdHJ1Y3Qgc3RhdGUgKiksIC8vIGFuZHJvaWQtY2hhbmdlZDogYWRkZWQgc3RhdGUqLgotICAgICAgICAgICAgICAgIGludF9mYXN0MzJfdCBvZmZzZXQsIGludCAqIG9rYXlwLCBpbnQgZG9fbm9ybV9zZWNzLCBjb25zdCBzdHJ1Y3Qgc3RhdGUgKiBzcCk7IC8vIGFuZHJvaWQtY2hhbmdlOiBhZGRlZCBzcC4KKyAgICAgICAgICAgICAgICBpbnRfZmFzdDMyX3QsIHN0cnVjdCB0bSosIHN0cnVjdCBzdGF0ZSAqKSwgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzdGF0ZSouCisgICAgICAgICAgICAgICAgaW50X2Zhc3QzMl90IG9mZnNldCwgaW50ICogb2theXAsIGludCBkb19ub3JtX3NlY3MsIHN0cnVjdCBzdGF0ZSAqIHNwKTsgLy8gYW5kcm9pZC1jaGFuZ2U6IGFkZGVkIHNwLgogc3RhdGljIHN0cnVjdCB0bSAqICB0aW1lc3ViKGNvbnN0IHRpbWVfdCAqIHRpbWVwLCBpbnRfZmFzdDMyX3Qgb2Zmc2V0LAogICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzdGF0ZSAqIHNwLCBzdHJ1Y3QgdG0gKiB0bXApOwogc3RhdGljIGludCAgICAgIHRtY29tcChjb25zdCBzdHJ1Y3QgdG0gKiBhdG1wLApAQCAtMjE3LDggKzIxNyw4IEBACiBzdGF0aWMgaW50ICBnbXRfaXNfc2V0OwogCiBjaGFyICogdHpuYW1lWzJdID0gewotICAgIHdpbGRhYmJyLAotICAgIHdpbGRhYmJyCisgICAgKGNoYXIgKikgd2lsZGFiYnIsCisgICAgKGNoYXIgKikgd2lsZGFiYnIKIH07CiAKIC8qCkBAIC0yNzAsOCArMjcwLDcgQEAKICAgICByZWdpc3RlciBzdHJ1Y3Qgc3RhdGUgKiBjb25zdCBzcCA9IGxjbHB0cjsKICAgICByZWdpc3RlciBpbnQgICAgICAgICAgICAgICAgICBpOwogCi0gICAgdHpuYW1lWzBdID0gd2lsZGFiYnI7Ci0gICAgdHpuYW1lWzFdID0gd2lsZGFiYnI7CisgICAgdHpuYW1lWzBdID0gdHpuYW1lWzFdID0gKGNoYXIgKikgd2lsZGFiYnI7CiAjaWZkZWYgVVNHX0NPTVBBVAogICAgIGRheWxpZ2h0ID0gMDsKICAgICB0aW1lem9uZSA9IDA7CkBAIC0yNzksMTIgKzI3OCwxMCBAQAogI2lmZGVmIEFMVFpPTkUKICAgICBhbHR6b25lID0gMDsKICNlbmRpZiAvKiBkZWZpbmVkIEFMVFpPTkUgKi8KLSNpZmRlZiBBTExfU1RBVEUKICAgICBpZiAoc3AgPT0gTlVMTCkgewotICAgICAgICB0em5hbWVbMF0gPSB0em5hbWVbMV0gPSBnbXQ7CisgICAgICAgIHR6bmFtZVswXSA9IHR6bmFtZVsxXSA9IChjaGFyICopIGdtdDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZiAvKiBkZWZpbmVkIEFMTF9TVEFURSAqLwogICAgIC8qCiAgICAgKiogQW5kIHRvIGdldCB0aGUgbGF0ZXN0IHpvbmUgbmFtZXMgaW50byB0em5hbWUuIC4gLgogICAgICovCkBAIC0zMzIsMTEgKzMyOSwxMSBAQAogfQogCiBzdGF0aWMgaW50Ci1kaWZmZXJfYnlfcmVwZWF0KGNvbnN0IHRpbWVfdCB0MSwgY29uc3QgdGltZV90IHQwKQorZGlmZmVyX2J5X3JlcGVhdChjb25zdCB0aW1lX3QgdDEgX191bnVzZWQsIGNvbnN0IHRpbWVfdCB0MCBfX3VudXNlZCkKIHsKICAgICBpZiAoVFlQRV9CSVQodGltZV90KSAtIFRZUEVfU0lHTkVEKHRpbWVfdCkgPCBTRUNTUEVSUkVQRUFUX0JJVFMpCiAgICAgICAgIHJldHVybiAwOwotI2lmIF9fTFA2NF9fIC8vIDMyLWJpdCBBbmRyb2lkIG9ubHkgaGFzIGEgc2lnbmVkIDMyLWJpdCB0aW1lX3Q7IDY0LWJpdCBBbmRyb2lkIGlzIGZpeGVkLgorI2lmIGRlZmluZWQoX19MUDY0X18pIC8vIDMyLWJpdCBBbmRyb2lkIG9ubHkgaGFzIGEgc2lnbmVkIDMyLWJpdCB0aW1lX3Q7IDY0LWJpdCBBbmRyb2lkIGlzIGZpeGVkLgogICAgIHJldHVybiB0MSAtIHQwID09IFNFQ1NQRVJSRVBFQVQ7CiAjZW5kaWYKIH0KQEAgLTM1NiwyNSArMzUzLDUwIEBACiAgICAgICAgICAgICAgICAgICAgICAgMiAqIHNpemVvZiAqc3AgKwogICAgICAgICAgICAgICAgICAgICAgIDQgKiBUWl9NQVhfVElNRVNdOwogICAgIH0gdV90OwotI2lmZGVmIEFMTF9TVEFURQotICAgIHJlZ2lzdGVyIHVfdCAqICAgICAgICB1cDsKKyAgICB1bmlvbiBsb2NhbF9zdG9yYWdlIHsKKyAgICAgICAgLyoKKyAgICAgICAgKiogU2VjdGlvbiA0LjkuMSBvZiB0aGUgQyBzdGFuZGFyZCBzYXlzIHRoYXQKKyAgICAgICAgKiogIkZJTEVOQU1FX01BWCBleHBhbmRzIHRvIGFuIGludGVncmFsIGNvbnN0YW50IGV4cHJlc3Npb24KKyAgICAgICAgKiogdGhhdCBpcyB0aGUgc2l6ZSBuZWVkZWQgZm9yIGFuIGFycmF5IG9mIGNoYXIgbGFyZ2UgZW5vdWdoCisgICAgICAgICoqIHRvIGhvbGQgdGhlIGxvbmdlc3QgZmlsZSBuYW1lIHN0cmluZyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICAqKiBndWFyYW50ZWVzIGNhbiBiZSBvcGVuZWQuIgorICAgICAgICAqLworICAgICAgICAvL2NoYXIgICAgICAgICAgICBmdWxsbmFtZVtGSUxFTkFNRV9NQVggKyAxXTsKIAotICAgIHVwID0gKHVfdCAqKSBjYWxsb2MoMSwgc2l6ZW9mICp1cCk7Ci0gICAgaWYgKHVwID09IE5VTEwpCisgICAgICAgIC8qIFRoZSBtYWluIHBhcnQgb2YgdGhlIHN0b3JhZ2UgZm9yIHRoaXMgZnVuY3Rpb24uICAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdV90IHU7CisgICAgICAgICAgICBzdHJ1Y3Qgc3RhdGUgc3Q7CisgICAgICAgIH0gdTsKKyAgICB9OworICAgIC8vcmVnaXN0ZXIgY2hhciAqZnVsbG5hbWU7CisgICAgcmVnaXN0ZXIgdV90ICp1cDsKKyAgICByZWdpc3RlciB1bmlvbiBsb2NhbF9zdG9yYWdlICpsc3A7CisjaWZkZWYgQUxMX1NUQVRFCisgICAgbHNwID0gbWFsbG9jKHNpemVvZiAqbHNwKTsKKyAgICBpZiAoIWxzcCkKICAgICAgICAgcmV0dXJuIC0xOwogI2Vsc2UgLyogIWRlZmluZWQgQUxMX1NUQVRFICovCi0gICAgdV90ICAgICAgICAgICAgICAgICAgIHU7Ci0gICAgcmVnaXN0ZXIgdV90ICogY29uc3QgIHVwID0gJnU7CisgICAgdW5pb24gbG9jYWxfc3RvcmFnZSBsczsKKyAgICBsc3AgPSAmbHM7CiAjZW5kaWYgLyogIWRlZmluZWQgQUxMX1NUQVRFICovCisgICAgLy9mdWxsbmFtZSA9IGxzcC0+ZnVsbG5hbWU7CisgICAgdXAgPSAmbHNwLT51LnU7CiAKICAgICBzcC0+Z29iYWNrID0gc3AtPmdvYWhlYWQgPSBGQUxTRTsKLSAgICBpZiAobmFtZSA9PSBOVUxMICYmIChuYW1lID0gVFpERUZBVUxUKSA9PSBOVUxMKQotICAgICAgICBnb3RvIG9vcHM7CisKKyAgICBpZiAoISBuYW1lKSB7CisgICAgICAgIG5hbWUgPSBUWkRFRkFVTFQ7CisgICAgICAgIGlmICghIG5hbWUpCisgICAgICAgICAgICBnb3RvIG9vcHM7CisgICAgfQorCiAgICAgaW50IHRvcmVhZDsKICAgICBmaWQgPSBfX2Jpb25pY19vcGVuX3R6ZGF0YShuYW1lLCAmdG9yZWFkKTsKICAgICBpZiAoZmlkIDwgMCkKICAgICAgICAgZ290byBvb3BzOwotICAgIG5yZWFkID0gcmVhZChmaWQsIHVwLT5idWYsIHRvcmVhZCk7CisKKyAgICBucmVhZCA9IHJlYWQoZmlkLCB1cC0+YnVmLCBzaXplb2YgdXAtPmJ1Zik7CiAgICAgaWYgKGNsb3NlKGZpZCkgPCAwIHx8IG5yZWFkIDw9IDApCiAgICAgICAgIGdvdG8gb29wczsKICAgICBmb3IgKHN0b3JlZCA9IDQ7IHN0b3JlZCA8PSA4OyBzdG9yZWQgKj0gMikgewpAQCAtNTA2LDEyICs1MjgsOSBAQAogICAgIGlmIChkb2V4dGVuZCAmJiBucmVhZCA+IDIgJiYKICAgICAgICAgdXAtPmJ1ZlswXSA9PSAnXG4nICYmIHVwLT5idWZbbnJlYWQgLSAxXSA9PSAnXG4nICYmCiAgICAgICAgIHNwLT50eXBlY250ICsgMiA8PSBUWl9NQVhfVFlQRVMpIHsKLSAgICAgICAgICAgIHN0cnVjdCBzdGF0ZSAqIHRzID0gbWFsbG9jKHNpemVvZiAqdHMpOworICAgICAgICAgICAgc3RydWN0IHN0YXRlICAgICp0cyA9ICZsc3AtPnUuc3Q7CiAgICAgICAgICAgICByZWdpc3RlciBpbnQgcmVzdWx0OwogCi0gICAgICAgICAgICBpZiAodHMgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBnb3RvIG9vcHM7Ci0KICAgICAgICAgICAgIHVwLT5idWZbbnJlYWQgLSAxXSA9ICdcMCc7CiAgICAgICAgICAgICByZXN1bHQgPSB0enBhcnNlKCZ1cC0+YnVmWzFdLCB0cywgRkFMU0UpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSAwICYmIHRzLT50eXBlY250ID09IDIgJiYKQEAgLTU0MCw3ICs1NTksNiBAQAogICAgICAgICAgICAgICAgICAgICBzcC0+dHRpc1tzcC0+dHlwZWNudCsrXSA9IHRzLT50dGlzWzBdOwogICAgICAgICAgICAgICAgICAgICBzcC0+dHRpc1tzcC0+dHlwZWNudCsrXSA9IHRzLT50dGlzWzFdOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZnJlZSh0cyk7CiAgICAgfQogICAgIGlmIChzcC0+dGltZWNudCA+IDEpIHsKICAgICAgICAgZm9yIChpID0gMTsgaSA8IHNwLT50aW1lY250OyArK2kpCkBAIC03MTIsMTAgKzczMCwxMCBAQAogICAgIGludCBudW07CiAKICAgICAvKgotICAgICoqIGBIT1VSU1BFUkRBWSAqIERBWVNQRVJXRUVLIC0gMScgYWxsb3dzIHF1YXNpLVBvc2l4IHJ1bGVzIGxpa2UKKyAgICAqKiAnSE9VUlNQRVJEQVkgKiBEQVlTUEVSV0VFSyAtIDEnIGFsbG93cyBxdWFzaS1Qb3NpeCBydWxlcyBsaWtlCiAgICAgKiogIk0xMC40LjYvMjYiLCB3aGljaCBkb2VzIG5vdCBjb25mb3JtIHRvIFBvc2l4LAogICAgICoqIGJ1dCB3aGljaCBzcGVjaWZpZXMgdGhlIGVxdWl2YWxlbnQgb2YKLSAgICAqKiBgYDAyOjAwIG9uIHRoZSBmaXJzdCBTdW5kYXkgb24gb3IgYWZ0ZXIgMjMgT2N0JycuCisgICAgKiogIjAyOjAwIG9uIHRoZSBmaXJzdCBTdW5kYXkgb24gb3IgYWZ0ZXIgMjMgT2N0Ii4KICAgICAqLwogICAgIHN0cnAgPSBnZXRudW0oc3RycCwgJm51bSwgMCwgSE9VUlNQRVJEQVkgKiBEQVlTUEVSV0VFSyAtIDEpOwogICAgIGlmIChzdHJwID09IE5VTEwpCkBAIC03MjksNyArNzQ3LDcgQEAKICAgICAgICAgKnNlY3NwICs9IG51bSAqIFNFQ1NQRVJNSU47CiAgICAgICAgIGlmICgqc3RycCA9PSAnOicpIHsKICAgICAgICAgICAgICsrc3RycDsKLSAgICAgICAgICAgIC8qIGBTRUNTUEVSTUlOJyBhbGxvd3MgZm9yIGxlYXAgc2Vjb25kcy4gKi8KKyAgICAgICAgICAgIC8qICdTRUNTUEVSTUlOJyBhbGxvd3MgZm9yIGxlYXAgc2Vjb25kcy4gKi8KICAgICAgICAgICAgIHN0cnAgPSBnZXRudW0oc3RycCwgJm51bSwgMCwgU0VDU1BFUk1JTik7CiAgICAgICAgICAgICBpZiAoc3RycCA9PSBOVUxMKQogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtOTI3LDcgKzk0NSw2IEBACiAgICAgcmVnaXN0ZXIgaW50ICAgICAgICAgbG9hZF9yZXN1bHQ7CiAgICAgc3RhdGljIHN0cnVjdCB0dGluZm8genR0aW5mbzsKIAotICAgIElOSVRJQUxJWkUoZHN0bmFtZSk7CiAgICAgc3RkbmFtZSA9IG5hbWU7CiAgICAgaWYgKGxhc3RkaXRjaCkgewogICAgICAgICBzdGRsZW4gPSBzdHJsZW4obmFtZSk7ICAvKiBsZW5ndGggb2Ygc3RhbmRhcmQgem9uZSBuYW1lICovCkBAIC0xMDA1LDYgKzEwMjIsNyBAQAogICAgICAgICAgICAgc3AtPnR0aXNbMV0udHRfZ210b2ZmID0gLXN0ZG9mZnNldDsKICAgICAgICAgICAgIHNwLT50dGlzWzFdLnR0X2lzZHN0ID0gMDsKICAgICAgICAgICAgIHNwLT50dGlzWzFdLnR0X2FiYnJpbmQgPSAwOworICAgICAgICAgICAgc3AtPmRlZmF1bHR0eXBlID0gMDsKICAgICAgICAgICAgIHRpbWVjbnQgPSAwOwogICAgICAgICAgICAgamFuZmlyc3QgPSAwOwogICAgICAgICAgICAgeWVhcmxpbSA9IEVQT0NIX1lFQVIgKyBZRUFSU1BFUlJFUEVBVDsKQEAgLTExMzAsNiArMTE0OCw3IEBACiAgICAgICAgICAgICBzcC0+dHRpc1sxXS50dF9pc2RzdCA9IFRSVUU7CiAgICAgICAgICAgICBzcC0+dHRpc1sxXS50dF9hYmJyaW5kID0gc3RkbGVuICsgMTsKICAgICAgICAgICAgIHNwLT50eXBlY250ID0gMjsKKyAgICAgICAgICAgIHNwLT5kZWZhdWx0dHlwZSA9IDA7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBkc3RsZW4gPSAwOwpAQCAtMTEzOSw2ICsxMTU4LDcgQEAKICAgICAgICAgc3AtPnR0aXNbMF0udHRfZ210b2ZmID0gLXN0ZG9mZnNldDsKICAgICAgICAgc3AtPnR0aXNbMF0udHRfaXNkc3QgPSAwOwogICAgICAgICBzcC0+dHRpc1swXS50dF9hYmJyaW5kID0gMDsKKyAgICAgICAgc3AtPmRlZmF1bHR0eXBlID0gMDsKICAgICB9CiAgICAgc3AtPmNoYXJjbnQgPSBzdGRsZW4gKyAxOwogICAgIGlmIChkc3RsZW4gIT0gMCkKQEAgLTExNzksNyArMTE5OSw3IEBACiAKICNpZmRlZiBBTExfU1RBVEUKICAgICBpZiAobGNscHRyID09IE5VTEwpIHsKLSAgICAgICAgbGNscHRyID0gY2FsbG9jKDEsIHNpemVvZiAqbGNscHRyKTsKKyAgICAgICAgbGNscHRyID0gbWFsbG9jKHNpemVvZiAqbGNscHRyKTsKICAgICAgICAgaWYgKGxjbHB0ciA9PSBOVUxMKSB7CiAgICAgICAgICAgICBzZXR0em5hbWUoKTsgICAgLyogYWxsIHdlIGNhbiBkbyAqLwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTE5Niw3ICsxMjE2LDcgQEAKIHN0YXRpYyB2b2lkCiB0enNldF9sb2NrZWQodm9pZCkKIHsKLSAgICByZWdpc3RlciBjb25zdCBjaGFyICogbmFtZSA9IE5VTEw7CisgICAgcmVnaXN0ZXIgY29uc3QgY2hhciAqIG5hbWU7CiAKICAgICBuYW1lID0gZ2V0ZW52KCJUWiIpOwogCkBAIC0xMjE5LDcgKzEyMzksNyBAQAogCiAjaWZkZWYgQUxMX1NUQVRFCiAgICAgaWYgKGxjbHB0ciA9PSBOVUxMKSB7Ci0gICAgICAgIGxjbHB0ciA9IGNhbGxvYygxLCBzaXplb2YgKmxjbHB0cik7CisgICAgICAgIGxjbHB0ciA9IG1hbGxvYyhzaXplb2YgKmxjbHB0cik7CiAgICAgICAgIGlmIChsY2xwdHIgPT0gTlVMTCkgewogICAgICAgICAgICAgc2V0dHpuYW1lKCk7ICAgIC8qIGFsbCB3ZSBjYW4gZG8gKi8KICAgICAgICAgICAgIHJldHVybjsKQEAgLTEyNjMsNyArMTI4Myw3IEBACiAvKkFSR1NVU0VEKi8KIHN0YXRpYyBzdHJ1Y3QgdG0gKgogbG9jYWxzdWIoY29uc3QgdGltZV90ICogY29uc3QgdGltZXAsIGNvbnN0IGludF9mYXN0MzJfdCBvZmZzZXQsCi0gICAgICAgICBzdHJ1Y3QgdG0gKiBjb25zdCB0bXAsIGNvbnN0IHN0cnVjdCBzdGF0ZSAqIHNwKSAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgorICAgICAgICAgc3RydWN0IHRtICogY29uc3QgdG1wLCBzdHJ1Y3Qgc3RhdGUgKiBzcCkgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KIHsKICAgICByZWdpc3RlciBjb25zdCBzdHJ1Y3QgdHRpbmZvICogdHRpc3A7CiAgICAgcmVnaXN0ZXIgaW50ICAgICAgICAgaTsKQEAgLTEyNzUsMTAgKzEyOTUsOCBAQAogICAgICAgICBzcCA9IGxjbHB0cjsKICAgICB9CiAgICAgLy8gRU5EIGFuZHJvaWQtY2hhbmdlZAotI2lmZGVmIEFMTF9TVEFURQogICAgIGlmIChzcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gZ210c3ViKHRpbWVwLCBvZmZzZXQsIHRtcCwgc3ApOyAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgotI2VuZGlmIC8qIGRlZmluZWQgQUxMX1NUQVRFICovCiAgICAgaWYgKChzcC0+Z29iYWNrICYmIHQgPCBzcC0+YXRzWzBdKSB8fAogICAgICAgICAoc3AtPmdvYWhlYWQgJiYgdCA+IHNwLT5hdHNbc3AtPnRpbWVjbnQgLSAxXSkpIHsKICAgICAgICAgICAgIHRpbWVfdCAgICAgICAgICBuZXd0ID0gdDsKQEAgLTEzNzEsMTggKzEzODksMTggQEAKIAogc3RhdGljIHN0cnVjdCB0bSAqCiBnbXRzdWIoY29uc3QgdGltZV90ICogY29uc3QgdGltZXAsIGNvbnN0IGludF9mYXN0MzJfdCBvZmZzZXQsCi0gICAgICAgc3RydWN0IHRtICpjb25zdCB0bXAsIGNvbnN0IHN0cnVjdCBzdGF0ZSAqIHNwKSAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgorICAgICAgIHN0cnVjdCB0bSAqY29uc3QgdG1wLCBzdHJ1Y3Qgc3RhdGUgKiBzcCBfX3VudXNlZCkgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KIHsKICAgICByZWdpc3RlciBzdHJ1Y3QgdG0gKiByZXN1bHQ7CiAKLSAgICAodm9pZCkgc3A7IC8vIGFuZHJvaWQtYWRkZWQ6IHVudXNlZC4KLQogICAgIGlmICghZ210X2lzX3NldCkgewotICAgICAgICBnbXRfaXNfc2V0ID0gVFJVRTsKICNpZmRlZiBBTExfU1RBVEUKLSAgICAgICAgZ210cHRyID0gY2FsbG9jKDEsIHNpemVvZiAqZ210cHRyKTsKLSAgICAgICAgaWYgKGdtdHB0ciAhPSBOVUxMKQorICAgICAgICBnbXRwdHIgPSBtYWxsb2Moc2l6ZW9mICpnbXRwdHIpOworICAgICAgICBnbXRfaXNfc2V0ID0gZ210cHRyICE9IE5VTEw7CisjZWxzZQorICAgICAgICBnbXRfaXNfc2V0ID0gVFJVRTsKICNlbmRpZiAvKiBkZWZpbmVkIEFMTF9TVEFURSAqLworICAgICAgICBpZiAoZ210X2lzX3NldCkKICAgICAgICAgICAgIGdtdGxvYWQoZ210cHRyKTsKICAgICB9CiAgICAgcmVzdWx0ID0gdGltZXN1Yih0aW1lcCwgb2Zmc2V0LCBnbXRwdHIsIHRtcCk7CkBAIC0xMzkyLDE4ICsxNDEwLDcgQEAKICAgICAqKiAiVVQreHh4eCIgb3IgIlVULXh4eHgiIGlmIG9mZnNldCBpcyBub24temVybywKICAgICAqKiBidXQgdGhpcyBpcyBubyB0aW1lIGZvciBhIHRyZWFzdXJlIGh1bnQuCiAgICAgKi8KLSAgICBpZiAob2Zmc2V0ICE9IDApCi0gICAgICAgIHRtcC0+VE1fWk9ORSA9IHdpbGRhYmJyOwotICAgIGVsc2UgewotI2lmZGVmIEFMTF9TVEFURQotICAgICAgICBpZiAoZ210cHRyID09IE5VTEwpCi0gICAgICAgICAgICB0bXAtPlRNX1pPTkUgPSBnbXQ7Ci0gICAgICAgIGVsc2UgICAgdG1wLT5UTV9aT05FID0gZ210cHRyLT5jaGFyczsKLSNlbmRpZiAvKiBkZWZpbmVkIEFMTF9TVEFURSAqLwotI2lmbmRlZiBBTExfU1RBVEUKLSAgICAgICAgdG1wLT5UTV9aT05FID0gZ210cHRyLT5jaGFyczsKLSNlbmRpZiAvKiBTdGF0ZSBGYXJtICovCi0gICAgfQorICAgIHRtcC0+VE1fWk9ORSA9IG9mZnNldCA/IHdpbGRhYmJyIDogZ210cHRyID8gZ210cHRyLT5jaGFycyA6IGdtdDsKICNlbmRpZiAvKiBkZWZpbmVkIFRNX1pPTkUgKi8KICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTQzMCw2ICsxNDM3LDE2IEBACiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lmZGVmIFNURF9JTlNQSVJFRAorCitzdHJ1Y3QgdG0gKgorb2ZmdGltZShjb25zdCB0aW1lX3QgKmNvbnN0IHRpbWVwLCBjb25zdCBsb25nIG9mZnNldCkKK3sKKyAgICByZXR1cm4gZ210c3ViKHRpbWVwLCBvZmZzZXQsICZ0bUdsb2JhbCwgTlVMTCk7IC8vIGFuZHJvaWQtY2hhbmdlZDogZXh0cmEgcGFyYW1ldGVyLgorfQorCisjZW5kaWYgLyogZGVmaW5lZCBTVERfSU5TUElSRUQgKi8KKwogLyoKICoqIFJldHVybiB0aGUgbnVtYmVyIG9mIGxlYXAgeWVhcnMgdGhyb3VnaCB0aGUgZW5kIG9mIHRoZSBnaXZlbiB5ZWFyCiAqKiB3aGVyZSwgdG8gbWFrZSB0aGUgbWF0aCBlYXN5LCB0aGUgYW5zd2VyIGZvciB5ZWFyIHplcm8gaXMgZGVmaW5lZCBhcyB6ZXJvLgpAQCAtMTQ1OSwxMiArMTQ3Niw3IEBACiAKICAgICBjb3JyID0gMDsKICAgICBoaXQgPSAwOwotI2lmZGVmIEFMTF9TVEFURQogICAgIGkgPSAoc3AgPT0gTlVMTCkgPyAwIDogc3AtPmxlYXBjbnQ7Ci0jZW5kaWYgLyogZGVmaW5lZCBBTExfU1RBVEUgKi8KLSNpZm5kZWYgQUxMX1NUQVRFCi0gICAgaSA9IHNwLT5sZWFwY250OwotI2VuZGlmIC8qIFN0YXRlIEZhcm0gKi8KICAgICB3aGlsZSAoLS1pID49IDApIHsKICAgICAgICAgbHAgPSAmc3AtPmxzaXNbaV07CiAgICAgICAgIGlmICgqdGltZXAgPj0gbHAtPmxzX3RyYW5zKSB7CkBAIC0xNjk5LDEwICsxNzExLDEwIEBACiAKIHN0YXRpYyB0aW1lX3QKIHRpbWUyc3ViKHN0cnVjdCB0bSAqIGNvbnN0IHRtcCwKLSAgICAgICAgIHN0cnVjdCB0bSAqKCpjb25zdCBmdW5jcCkoY29uc3QgdGltZV90KiwgaW50X2Zhc3QzMl90LCBzdHJ1Y3QgdG0qLCBjb25zdCBzdHJ1Y3Qgc3RhdGUqKSwKKyAgICAgICAgIHN0cnVjdCB0bSAqKCpjb25zdCBmdW5jcCkoY29uc3QgdGltZV90KiwgaW50X2Zhc3QzMl90LCBzdHJ1Y3QgdG0qLCBzdHJ1Y3Qgc3RhdGUqKSwKICAgICAgICAgIGNvbnN0IGludF9mYXN0MzJfdCBvZmZzZXQsCiAgICAgICAgICBpbnQgKiBjb25zdCBva2F5cCwKLSAgICAgICAgIGNvbnN0IGludCBkb19ub3JtX3NlY3MsIGNvbnN0IHN0cnVjdCBzdGF0ZSAqIHNwKSAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwCisgICAgICAgICBjb25zdCBpbnQgZG9fbm9ybV9zZWNzLCBzdHJ1Y3Qgc3RhdGUgKiBzcCkgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcAogewogICAgIHJlZ2lzdGVyIGludCAgICAgICAgICBkaXI7CiAgICAgcmVnaXN0ZXIgaW50ICAgICAgICAgIGksIGo7CkBAIC0xODM3LDE0ICsxODQ5LDEyIEBACiAgICAgICAgICovCiAgICAgICAgIC8vIEJFR0lOIGFuZHJvaWQtY2hhbmdlZDogc3VwcG9ydCB1c2VyLXN1cHBsaWVkIHNwCiAgICAgICAgIGlmIChzcCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBzcCA9IChjb25zdCBzdHJ1Y3Qgc3RhdGUgKikKKyAgICAgICAgICAgIHNwID0gKHN0cnVjdCBzdGF0ZSAqKQogICAgICAgICAgICAgICAgICgoZnVuY3AgPT0gbG9jYWxzdWIpID8gbGNscHRyIDogZ210cHRyKTsKICAgICAgICAgfQogICAgICAgICAvLyBFTkQgYW5kcm9pZC1jaGFuZ2VkCi0jaWZkZWYgQUxMX1NUQVRFCiAgICAgICAgIGlmIChzcCA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIFdST05HOwotI2VuZGlmIC8qIGRlZmluZWQgQUxMX1NUQVRFICovCiAgICAgICAgIGZvciAoaSA9IHNwLT50eXBlY250IC0gMTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgICAgIGlmIChzcC0+dHRpc1tpXS50dF9pc2RzdCAhPSB5b3VydG0udG1faXNkc3QpCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0xODgwLDkgKzE4OTAsOSBAQAogCiBzdGF0aWMgdGltZV90CiB0aW1lMihzdHJ1Y3QgdG0gKiBjb25zdCB0bXAsCi0gICAgICBzdHJ1Y3QgdG0gKiAoKmNvbnN0IGZ1bmNwKShjb25zdCB0aW1lX3QgKiwgaW50X2Zhc3QzMl90LCBzdHJ1Y3QgdG0gKiwgY29uc3Qgc3RydWN0IHN0YXRlICopLCAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgorICAgICAgc3RydWN0IHRtICogKCpjb25zdCBmdW5jcCkoY29uc3QgdGltZV90ICosIGludF9mYXN0MzJfdCwgc3RydWN0IHRtICosIHN0cnVjdCBzdGF0ZSAqKSwgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KICAgICAgIGNvbnN0IGludF9mYXN0MzJfdCBvZmZzZXQsCi0gICAgICBpbnQgKmNvbnN0IG9rYXlwLCBjb25zdCBzdHJ1Y3Qgc3RhdGUqIHNwKSAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgorICAgICAgaW50ICpjb25zdCBva2F5cCwgc3RydWN0IHN0YXRlKiBzcCkgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KIHsKICAgICB0aW1lX3QgdDsKIApAQCAtMTg5NywxNiArMTkwNywxNiBAQAogCiBzdGF0aWMgdGltZV90CiB0aW1lMShzdHJ1Y3QgdG0gKiBjb25zdCB0bXAsCi0gICAgICBzdHJ1Y3QgdG0gKiAoKiBjb25zdCBmdW5jcCkgKGNvbnN0IHRpbWVfdCAqLCBpbnRfZmFzdDMyX3QsIHN0cnVjdCB0bSAqLCBjb25zdCBzdHJ1Y3Qgc3RhdGUgKiksIC8vIGFuZHJvaWQtY2hhbmdlZDogYWRkZWQgc3AuCi0gICAgICBjb25zdCBpbnRfZmFzdDMyX3Qgb2Zmc2V0LCBjb25zdCBzdHJ1Y3Qgc3RhdGUgKiBzcCkgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KKyAgICAgIHN0cnVjdCB0bSAqICgqIGNvbnN0IGZ1bmNwKSAoY29uc3QgdGltZV90ICosIGludF9mYXN0MzJfdCwgc3RydWN0IHRtICosIHN0cnVjdCBzdGF0ZSAqKSwgLy8gYW5kcm9pZC1jaGFuZ2VkOiBhZGRlZCBzcC4KKyAgICAgIGNvbnN0IGludF9mYXN0MzJfdCBvZmZzZXQsIHN0cnVjdCBzdGF0ZSAqIHNwKSAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgogewogICAgIHJlZ2lzdGVyIHRpbWVfdCB0OwogICAgIHJlZ2lzdGVyIGludCAgICBzYW1laSwgb3RoZXJpOwogICAgIHJlZ2lzdGVyIGludCAgICBzYW1laW5kLCBvdGhlcmluZDsKICAgICByZWdpc3RlciBpbnQgICAgaTsKICAgICByZWdpc3RlciBpbnQgICAgbnNlZW47Ci0gICAgaW50ICAgICAgICAgICAgIHNlZW5bVFpfTUFYX1RZUEVTXTsKLSAgICBpbnQgICAgICAgICAgICAgdHlwZXNbVFpfTUFYX1RZUEVTXTsKKyAgICBjaGFyICAgICAgICAgICAgc2VlbltUWl9NQVhfVFlQRVNdOworICAgIHVuc2lnbmVkIGNoYXIgICB0eXBlc1tUWl9NQVhfVFlQRVNdOwogICAgIGludCAgICAgICAgICAgICBva2F5OwogCiAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CkBAIC0xOTE2LDE3ICsxOTI2LDE1IEBACiAgICAgaWYgKHRtcC0+dG1faXNkc3QgPiAxKQogICAgICAgICB0bXAtPnRtX2lzZHN0ID0gMTsKICAgICB0ID0gdGltZTIodG1wLCBmdW5jcCwgb2Zmc2V0LCAmb2theSwgc3ApOyAvLyBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIHNwLgotI2lmZGVmIFBDVFMKLSAgICAvKgotICAgICoqIFBDVFMgY29kZSBjb3VydGVzeSBHcmFudCBTdWxsaXZhbi4KLSAgICAqLwogICAgIGlmIChva2F5KQogICAgICAgICByZXR1cm4gdDsKICAgICBpZiAodG1wLT50bV9pc2RzdCA8IDApCisjaWZkZWYgUENUUworICAgICAgICAvKgorICAgICAgICAqKiBQT1NJWCBDb25mb3JtYW5jZSBUZXN0IFN1aXRlIGNvZGUgY291cnRlc3kgR3JhbnQgU3VsbGl2YW4uCisgICAgICAgICovCiAgICAgICAgIHRtcC0+dG1faXNkc3QgPSAwOyAgLyogcmVzZXQgdG8gc3RkIGFuZCB0cnkgYWdhaW4gKi8KLSNlbmRpZiAvKiBkZWZpbmVkIFBDVFMgKi8KLSNpZm5kZWYgUENUUwotICAgIGlmIChva2F5IHx8IHRtcC0+dG1faXNkc3QgPCAwKQorI2Vsc2UKICAgICAgICAgcmV0dXJuIHQ7CiAjZW5kaWYgLyogIWRlZmluZWQgUENUUyAqLwogICAgIC8qCkBAIC0xOTM3LDEzICsxOTQ1LDExIEBACiAgICAgKi8KICAgICAvLyBCRUdJTiBhbmRyb2lkLWNoYW5nZWQ6IHN1cHBvcnQgdXNlci1zdXBwbGllZCBzcC4KICAgICBpZiAoc3AgPT0gTlVMTCkgewotICAgICAgICBzcCA9IChjb25zdCBzdHJ1Y3Qgc3RhdGUgKikgKChmdW5jcCA9PSBsb2NhbHN1YikgPyAgbGNscHRyIDogZ210cHRyKTsKKyAgICAgICAgc3AgPSAoc3RydWN0IHN0YXRlICopICgoZnVuY3AgPT0gbG9jYWxzdWIpID8gIGxjbHB0ciA6IGdtdHB0cik7CiAgICAgfQogICAgIC8vIEJFR0lOIGFuZHJvaWQtY2hhbmdlZAotI2lmZGVmIEFMTF9TVEFURQogICAgIGlmIChzcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gV1JPTkc7Ci0jZW5kaWYgLyogZGVmaW5lZCBBTExfU1RBVEUgKi8KICAgICBmb3IgKGkgPSAwOyBpIDwgc3AtPnR5cGVjbnQ7ICsraSkKICAgICAgICAgc2VlbltpXSA9IEZBTFNFOwogICAgIG5zZWVuID0gMDsKQEAgLTIwMDgsNiArMjAxNCwxNCBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3RpbWVfdAordGltZW9mZihzdHJ1Y3QgdG0gKmNvbnN0IHRtcCwgY29uc3QgbG9uZyBvZmZzZXQpCit7CisgICAgaWYgKHRtcCAhPSBOVUxMKQorICAgICAgICB0bXAtPnRtX2lzZHN0ID0gMDsKKyAgICByZXR1cm4gdGltZTEodG1wLCBnbXRzdWIsIG9mZnNldCwgTlVMTCk7IC8vIGFuZHJvaWQtY2hhbmdlZDogZXh0cmEgcGFyYW1ldGVyLgorfQorCiAjZW5kaWYgLyogZGVmaW5lZCBTVERfSU5TUElSRUQgKi8KIAogI2lmZGVmIENNVUNTCkBAIC0yMTA4LDEwICsyMTIyLDYgQEAKICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxhcnBhL2luZXQuaD4gLy8gRm9yIG50b2hsKDMpLgogCi1zdGF0aWMgaW50IHRvX2ludCh1bnNpZ25lZCBjaGFyKiBzKSB7Ci0gIHJldHVybiAoc1swXSA8PCAyNCkgfCAoc1sxXSA8PCAxNikgfCAoc1syXSA8PCA4KSB8IHNbM107Ci19Ci0KIHN0YXRpYyBpbnQgX19iaW9uaWNfb3Blbl90emRhdGFfcGF0aChjb25zdCBjaGFyKiBwYXRoX3ByZWZpeF92YXJpYWJsZSwgY29uc3QgY2hhciogcGF0aF9zdWZmaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogb2xzb25faWQsIGludCogZGF0YV9zaXplKSB7CiAgIGNvbnN0IGNoYXIqIHBhdGhfcHJlZml4ID0gZ2V0ZW52KHBhdGhfcHJlZml4X3ZhcmlhYmxlKTsKQEAgLTIyODMsNyArMjI5Myw3IEBACiB9CiAKIC8vIE5vbi1zdGFuZGFyZCBBUEk6IG1rdGltZSgzKSBidXQgd2l0aCBhbiBleHBsaWNpdCB0aW1lem9uZSBwYXJhbWV0ZXIuCi10aW1lX3QgbWt0aW1lX3R6KHN0cnVjdCB0bSogY29uc3QgdG1wLCBjb25zdCBjaGFyKiB0eikgewordGltZV90IF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpIG1rdGltZV90eihzdHJ1Y3QgdG0qIGNvbnN0IHRtcCwgY29uc3QgY2hhciogdHopIHsKICAgc3RydWN0IHN0YXRlKiBzdCA9IG1hbGxvYyhzaXplb2YoKnN0KSk7CiAgIHRpbWVfdCByZXR1cm5fdmFsdWU7CiAKQEAgLTIzMDAsNyArMjMxMCw3IEBACiB9CiAKIC8vIE5vbi1zdGFuZGFyZCBBUEk6IGxvY2FsdGltZSgzKSBidXQgd2l0aCBhbiBleHBsaWNpdCB0aW1lem9uZSBwYXJhbWV0ZXIuCi12b2lkIGxvY2FsdGltZV90eihjb25zdCB0aW1lX3QqIGNvbnN0IHRpbWVwLCBzdHJ1Y3QgdG0qIHRtcCwgY29uc3QgY2hhciogdHopIHsKK3ZvaWQgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkgbG9jYWx0aW1lX3R6KGNvbnN0IHRpbWVfdCogY29uc3QgdGltZXAsIHN0cnVjdCB0bSogdG1wLCBjb25zdCBjaGFyKiB0eikgewogICBzdHJ1Y3Qgc3RhdGUqIHN0ID0gbWFsbG9jKHNpemVvZigqc3QpKTsKIAogICBpZiAoc3QgPT0gTlVMTCkKZGlmZiAtLWdpdCBhL2xpYmMvdHpjb2RlL3ByaXZhdGUuaCBiL2xpYmMvdHpjb2RlL3ByaXZhdGUuaAppbmRleCA0ZWIwYWI2Li5jMzBjNzExIDEwMDY0NAotLS0gYS9saWJjL3R6Y29kZS9wcml2YXRlLmgKKysrIGIvbGliYy90emNvZGUvcHJpdmF0ZS5oCkBAIC0xOSw3ICsxOSw3IEBACiAKIC8qCiAqKiBEZWZhdWx0cyBmb3IgcHJlcHJvY2Vzc29yIHN5bWJvbHMuCi0qKiBZb3UgY2FuIG92ZXJyaWRlIHRoZXNlIGluIHlvdXIgQyBjb21waWxlciBvcHRpb25zLCBlLmcuIGAtREhBVkVfQURKVElNRT0wJy4KKyoqIFlvdSBjYW4gb3ZlcnJpZGUgdGhlc2UgaW4geW91ciBDIGNvbXBpbGVyIG9wdGlvbnMsIGUuZy4gJy1ESEFWRV9BREpUSU1FPTAnLgogKi8KIAogI2lmbmRlZiBIQVZFX0FESlRJTUUKQEAgLTYyLDkgKzYyLDExIEBACiAjZGVmaW5lIEhBVkVfVVRNUFhfSAkJMAogI2VuZGlmIC8qICFkZWZpbmVkIEhBVkVfVVRNUFhfSCAqLwogCisjaWYgIWRlZmluZWQoX19BTkRST0lEX18pCiAjaWZuZGVmIExPQ0FMRV9IT01FCiAjZGVmaW5lIExPQ0FMRV9IT01FCQkiL3Vzci9saWIvbG9jYWxlIgogI2VuZGlmIC8qICFkZWZpbmVkIExPQ0FMRV9IT01FICovCisjZW5kaWYgLy8gX19BTkRST0lEX18KIAogI2lmIEhBVkVfSU5DT01QQVRJQkxFX0NUSU1FX1IKICNkZWZpbmUgYXNjdGltZV9yIF9pbmNvbXBhdGlibGVfYXNjdGltZV9yCkBAIC0xMjAsOCArMTIyLDkgQEAKICovCiAjaWZuZGVmIEhBVkVfU1RESU5UX0gKICNkZWZpbmUgSEFWRV9TVERJTlRfSCBcCi0JKDE5OTkwMSA8PSBfX1NURENfVkVSU0lPTl9fIHx8IFwKLQkyIDwgKF9fR0xJQkNfXyArICgwIDwgX19HTElCQ19NSU5PUl9fKSkpCisgICAoMTk5OTAxIDw9IF9fU1REQ19WRVJTSU9OX18gXAorICAgIHx8IDIgPCBfX0dMSUJDX18gKyAoMSA8PSBfX0dMSUJDX01JTk9SX18pCVwKKyAgICB8fCBfX0NZR1dJTl9fKQogI2VuZGlmIC8qICFkZWZpbmVkIEhBVkVfU1RESU5UX0ggKi8KIAogI2lmIEhBVkVfU1RESU5UX0gKQEAgLTIwNSw2ICsyMDgsMTAgQEAKICNkZWZpbmUgSU5UMzJfTUlOICgtMSAtIElOVDMyX01BWCkKICNlbmRpZiAvKiAhZGVmaW5lZCBJTlQzMl9NSU4gKi8KIAorI2lmbmRlZiBTSVpFX01BWAorI2RlZmluZSBTSVpFX01BWCAoKHNpemVfdCkgLTEpCisjZW5kaWYKKwogI2lmIDIgPCBfX0dOVUNfXyArICg5NiA8PSBfX0dOVUNfTUlOT1JfXykKICMgZGVmaW5lIEFUVFJJQlVURV9DT05TVCBfX2F0dHJpYnV0ZV9fICgoY29uc3QpKQogIyBkZWZpbmUgQVRUUklCVVRFX1BVUkUgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSkKQEAgLTM0NywyOSArMzU0LDE1IEBACiAqKiBJTklUSUFMSVpFKHgpCiAqLwogCi0jaWZuZGVmIEdOVUNfb3JfbGludAogI2lmZGVmIGxpbnQKLSNkZWZpbmUgR05VQ19vcl9saW50Ci0jZW5kaWYgLyogZGVmaW5lZCBsaW50ICovCi0jaWZuZGVmIGxpbnQKLSNpZmRlZiBfX0dOVUNfXwotI2RlZmluZSBHTlVDX29yX2xpbnQKLSNlbmRpZiAvKiBkZWZpbmVkIF9fR05VQ19fICovCi0jZW5kaWYgLyogIWRlZmluZWQgbGludCAqLwotI2VuZGlmIC8qICFkZWZpbmVkIEdOVUNfb3JfbGludCAqLwotCi0jaWZuZGVmIElOSVRJQUxJWkUKLSNpZmRlZiBHTlVDX29yX2xpbnQKLSNkZWZpbmUgSU5JVElBTElaRSh4KQkoKHgpID0gMCkKLSNlbmRpZiAvKiBkZWZpbmVkIEdOVUNfb3JfbGludCAqLwotI2lmbmRlZiBHTlVDX29yX2xpbnQKLSNkZWZpbmUgSU5JVElBTElaRSh4KQotI2VuZGlmIC8qICFkZWZpbmVkIEdOVUNfb3JfbGludCAqLwotI2VuZGlmIC8qICFkZWZpbmVkIElOSVRJQUxJWkUgKi8KKyMgZGVmaW5lIElOSVRJQUxJWkUoeCkJKCh4KSA9IDApCisjZWxzZQorIyBkZWZpbmUgSU5JVElBTElaRSh4KQorI2VuZGlmCiAKIC8qCiAqKiBGb3IgdGhlIGJlbmVmaXQgb2YgR05VIGZvbGsuLi4KLSoqIGBfKE1TR0lEKScgdXNlcyB0aGUgY3VycmVudCBsb2NhbGUncyBtZXNzYWdlIGxpYnJhcnkgc3RyaW5nIGZvciBNU0dJRC4KKyoqICdfKE1TR0lEKScgdXNlcyB0aGUgY3VycmVudCBsb2NhbGUncyBtZXNzYWdlIGxpYnJhcnkgc3RyaW5nIGZvciBNU0dJRC4KICoqIFRoZSBkZWZhdWx0IGlzIHRvIHVzZSBnZXR0ZXh0IGlmIGF2YWlsYWJsZSwgYW5kIHVzZSBNU0dJRCBvdGhlcndpc2UuCiAqLwogCkBAIC0zODEsOSArMzc0LDkgQEAKICNlbmRpZiAvKiAhSEFWRV9HRVRURVhUICovCiAjZW5kaWYgLyogIWRlZmluZWQgXyAqLwogCi0jaWZuZGVmIFRaX0RPTUFJTgotI2RlZmluZSBUWl9ET01BSU4gInR6IgotI2VuZGlmIC8qICFkZWZpbmVkIFRaX0RPTUFJTiAqLworI2lmICFkZWZpbmVkIFRaX0RPTUFJTiAmJiBkZWZpbmVkIFRaX0RPTUFJTkRJUgorIyBkZWZpbmUgVFpfRE9NQUlOICJ0eiIKKyNlbmRpZgogCiAjaWYgSEFWRV9JTkNPTVBBVElCTEVfQ1RJTUVfUgogI3VuZGVmIGFzY3RpbWVfcgpkaWZmIC0tZ2l0IGEvbGliYy90emNvZGUvc3RyZnRpbWUuYyBiL2xpYmMvdHpjb2RlL3N0cmZ0aW1lLmMKaW5kZXggOTY3NjI5ZC4uZjk5NmY0OCAxMDA2NDQKLS0tIGEvbGliYy90emNvZGUvc3RyZnRpbWUuYworKysgYi9saWJjL3R6Y29kZS9zdHJmdGltZS5jCkBAIC0xLDEyICsxLDkgQEAKLSNpZm5kZWYgbGludAotI2lmbmRlZiBOT0lECi1zdGF0aWMgY2hhciBlbHNpZWlkW10gPSAiQCgjKXN0cmZ0aW1lLmMgOC4xIjsKIC8qCi0qKiBCYXNlZCBvbiB0aGUgVUNCIHZlcnNpb24gd2l0aCB0aGUgSUQgYXBwZWFyaW5nIGJlbG93LgorKiogQmFzZWQgb24gdGhlIFVDQiB2ZXJzaW9uIHdpdGggdGhlIGNvcHlyaWdodCBub3RpY2UgYW5kIHNjY3NpZAorKiogYXBwZWFyaW5nIGJlbG93LgorKioKICoqIFRoaXMgaXMgQU5TSWlzaCBvbmx5IHdoZW4gIm11bHRpYnl0ZSBjaGFyYWN0ZXIgPT0gcGxhaW4gY2hhcmFjdGVyIi4KICovCi0jZW5kaWYgLyogIWRlZmluZWQgTk9JRCAqLwotI2VuZGlmIC8qICFkZWZpbmVkIGxpbnQgKi8KIAogI2luY2x1ZGUgInByaXZhdGUuaCIKIApAQCAtMjIsMzUgKzE5LDI3IEBACiAqKiBieSB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBCZXJrZWxleS4gVGhlIG5hbWUgb2YgdGhlCiAqKiBVbml2ZXJzaXR5IG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAogKiogZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotKiogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIFdJVEhPVVQgQU5ZIEVYUFJFU1MgT1IKKyoqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiBBTkQgV0lUSE9VVCBBTlkgRVhQUkVTUyBPUgogKiogSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgVEhFIElNUExJRUQKICoqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KICovCiAKLSNpZm5kZWYgTElCQ19TQ0NTCi0jaWZuZGVmIGxpbnQKLXN0YXRpYyBjb25zdCBjaGFyICAgc2Njc2lkW10gPSAiQCgjKXN0cmZ0aW1lLmMgIDUuNCAoQmVya2VsZXkpIDMvMTQvODkiOwotI2VuZGlmIC8qICFkZWZpbmVkIGxpbnQgKi8KLSNlbmRpZiAvKiAhZGVmaW5lZCBMSUJDX1NDQ1MgKi8KLQogI2luY2x1ZGUgInR6ZmlsZS5oIgogI2luY2x1ZGUgImZjbnRsLmgiCiAjaW5jbHVkZSAibG9jYWxlLmgiCi0jaW5jbHVkZSA8Y3R5cGUuaD4KKworI2lmIF9fQU5EUk9JRF9fCisvKiBBbmRyb2lkOiBzdHJ1Y3QgbGNfdGltZV9UIGlzIGRlZmluZWQgYXMgc3RyZnRpbWVfbG9jYWxlIGluICJiaW9uaWNfdGltZS5oIiAqLworI2luY2x1ZGUgInByaXZhdGUvYmlvbmljX3RpbWUuaCIgIC8qIGZvciBzdHJmdGltZV90eiAqLworI2RlZmluZSAgbGNfdGltZV9UICAgIHN0cmZ0aW1lX2xvY2FsZQogI2lmIGRlZmluZWQoX19MUDY0X18pCiAjZGVmaW5lIHRpbWU2NF90IHRpbWVfdAogI2RlZmluZSBta3RpbWU2NCBta3RpbWUKICNlbHNlCiAjaW5jbHVkZSA8dGltZTY0Lmg+CiAjZW5kaWYKLSNpbmNsdWRlICJwcml2YXRlL2Jpb25pY190aW1lLmgiICAvKiBmb3Igc3RyZnRpbWVfdHogKi8KLQotLyogc3RydWN0IGxjX3RpbWVfVCBpcyBub3cgZGVmaW5lZCBhcyBzdHJmdGltZV9sb2NhbGUKLSAqIGluIDx0aW1lLmg+Ci0gKi8KLSNpZiAxCi0jZGVmaW5lICBsY190aW1lX1QgICAgc3RyZnRpbWVfbG9jYWxlCi0jZWxzZQorI2luY2x1ZGUgPGN0eXBlLmg+CisjZWxzZSAvLyBub3QgX19BTkRST0lEX18KIHN0cnVjdCBsY190aW1lX1QgewogICAgIGNvbnN0IGNoYXIgKiAgICBtb25bTU9OU1BFUllFQVJdOwogICAgIGNvbnN0IGNoYXIgKiAgICBtb250aFtNT05TUEVSWUVBUl07CkBAIC02NSw3ICs1NCwxNSBAQAogfTsKICNlbmRpZgogCisjaWYgTE9DQUxFX0hPTUUKKyNpbmNsdWRlICJzeXMvc3RhdC5oIgorc3RhdGljIHN0cnVjdCBsY190aW1lX1QgICAgICAgICAgICAgICAgbG9jYWxlYnVmOworc3RhdGljIHN0cnVjdCBsY190aW1lX1QgKiAgICAgIF9sb2Modm9pZCk7CisjZGVmaW5lIExvY2FsZSBfbG9jKCkKKyNlbmRpZiAvKiBkZWZpbmVkIExPQ0FMRV9IT01FICovCisjaWZuZGVmIExPQ0FMRV9IT01FCiAjZGVmaW5lIExvY2FsZSAgKCZDX3RpbWVfbG9jYWxlKQorI2VuZGlmIC8qICFkZWZpbmVkIExPQ0FMRV9IT01FICovCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbGNfdGltZV9UICAgQ190aW1lX2xvY2FsZSA9IHsKICAgICB7CkBAIC0xNDcsNyArMTQ0LDcgQEAKIH0KIAogc2l6ZV90Ci1zdHJmdGltZV90eihzLCBtYXhzaXplLCBmb3JtYXQsIHQsIGxvY2FsZSkKK19fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpIHN0cmZ0aW1lX3R6KHMsIG1heHNpemUsIGZvcm1hdCwgdCwgbG9jYWxlKQogY2hhciAqIGNvbnN0ICAgICAgICBzOwogY29uc3Qgc2l6ZV90ICAgICAgICBtYXhzaXplOwogY29uc3QgY2hhciAqIGNvbnN0ICBmb3JtYXQ7CmRpZmYgLS1naXQgYS9saWJjL3VuaXN0ZC9zeXNsb2cuYyBiL2xpYmMvdW5pc3RkL3N5c2xvZy5jCmluZGV4IDc4Nzg0NzUuLjMzOWRmNjggMTAwNjQ0Ci0tLSBhL2xpYmMvdW5pc3RkL3N5c2xvZy5jCisrKyBiL2xpYmMvdW5pc3RkL3N5c2xvZy5jCkBAIC00NCw2ICs0NCwxOCBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHN0ZGFyZy5oPgogCitzdHJ1Y3Qgc3lzbG9nX2RhdGEgeworICBpbnQgbG9nX2ZpbGU7CisgIGludCBjb25uZWN0ZWQ7CisgIGludCBvcGVuZWQ7CisgIGludCBsb2dfc3RhdDsKKyAgY29uc3QgY2hhciogbG9nX3RhZzsKKyAgaW50IGxvZ19mYWM7CisgIGludCBsb2dfbWFzazsKK307CisKKyNkZWZpbmUgU1lTTE9HX0RBVEFfSU5JVCB7LTEsIDAsIDAsIDAsIChjb25zdCBjaGFyICopMCwgTE9HX1VTRVIsIDB4ZmZ9CisKIHN0YXRpYyBzdHJ1Y3Qgc3lzbG9nX2RhdGEgc2RhdGEgPSBTWVNMT0dfREFUQV9JTklUOwogCiBleHRlcm4gY29uc3QgY2hhcgkqX19wcm9nbmFtZTsJCS8qIFByb2dyYW0gbmFtZSwgZnJvbSBjcnQwLiAqLwpAQCAtNTEsNiArNjMsMTggQEAKIHN0YXRpYyB2b2lkCWRpc2Nvbm5lY3Rsb2dfcihzdHJ1Y3Qgc3lzbG9nX2RhdGEgKik7CS8qIGRpc2Nvbm5lY3QgZnJvbSBzeXNsb2dkICovCiBzdGF0aWMgdm9pZAljb25uZWN0bG9nX3Ioc3RydWN0IHN5c2xvZ19kYXRhICopOwkvKiAocmUpY29ubmVjdCB0byBzeXNsb2dkICovCiAKKyNpZiBkZWZpbmVkKF9fTFA2NF9fKQorI2RlZmluZSBTWVNMT0dfUl9WSVNJQklMSVRZIHN0YXRpYworI2Vsc2UKKyNkZWZpbmUgU1lTTE9HX1JfVklTSUJJTElUWSBleHRlcm4KKyNlbmRpZgorCitTWVNMT0dfUl9WSVNJQklMSVRZIHZvaWQgY2xvc2Vsb2dfcihzdHJ1Y3Qgc3lzbG9nX2RhdGEqKTsKK1NZU0xPR19SX1ZJU0lCSUxJVFkgdm9pZCBvcGVubG9nX3IoY29uc3QgY2hhciosIGludCwgaW50LCBzdHJ1Y3Qgc3lzbG9nX2RhdGEqKTsKK1NZU0xPR19SX1ZJU0lCSUxJVFkgaW50IHNldGxvZ21hc2tfcihpbnQsIHN0cnVjdCBzeXNsb2dfZGF0YSopOworU1lTTE9HX1JfVklTSUJJTElUWSB2b2lkIHN5c2xvZ19yKGludCwgc3RydWN0IHN5c2xvZ19kYXRhKiwgY29uc3QgY2hhciosIC4uLikgX19wcmludGZsaWtlKDMsIDQpOworU1lTTE9HX1JfVklTSUJJTElUWSB2b2lkIHZzeXNsb2dfcihpbnQsIHN0cnVjdCBzeXNsb2dfZGF0YSosIGNvbnN0IGNoYXIqLCB2YV9saXN0KSBfX3ByaW50Zmxpa2UoMywgMCk7CisKIC8qCiAgKiBzeXNsb2csIHZzeXNsb2cgLS0KICAqCXByaW50IG1lc3NhZ2Ugb24gbG9nIGZpbGU7IG91dHB1dCBpcyBpbnRlbmRlZCBmb3Igc3lzbG9nZCg4KS4KQEAgLTE1Nyw3ICsxODEsNyBAQAogCXBybGVuID0gc25wcmludGYocCwgdGJ1Zl9sZWZ0LCAiPCVkPiIsIHByaSk7CiAJREVDKCk7CiAKLQkvKiAKKwkvKgogCSAqIHN5c2xvZ2Qgd2lsbCBleHBhbmQgdGltZSBhdXRvbWFnaWNhbGx5IGZvciByZWVudHJhbnQgY2FzZSwgYW5kCiAJICogZm9yIG5vcm1hbCBjYXNlLCBqdXN0IGRvIGxpa2UgYmVmb3JlCiAJICovCkBAIC0xOTYsMTAgKzIyMCwxMCBAQAogCQkJKytmbXQ7CiAJCQlpZiAoZGF0YSA9PSAmc2RhdGEpIHsKIAkJCQlwcmxlbiA9IHNucHJpbnRmKHQsIGZtdF9sZWZ0LCAiJXMiLAotCQkJCSAgICBzdHJlcnJvcihzYXZlZF9lcnJubykpOyAKKwkJCQkgICAgc3RyZXJyb3Ioc2F2ZWRfZXJybm8pKTsKIAkJCX0gZWxzZSB7CiAJCQkJcHJsZW4gPSBzbnByaW50Zih0LCBmbXRfbGVmdCwgIkVycm9yICVkIiwKLQkJCQkgICAgc2F2ZWRfZXJybm8pOyAKKwkJCQkgICAgc2F2ZWRfZXJybm8pOwogCQkJfQogCQkJaWYgKHBybGVuIDwgMCkKIAkJCQlwcmxlbiA9IDA7CkBAIC0yNjksNyArMjkzLDcgQEAKIAlpZiAoZXJyb3IgPT0gLTEgJiYgKGRhdGEtPmxvZ19zdGF0ICYgTE9HX0NPTlMpICYmCiAJICAgIChmZCA9IG9wZW4oX1BBVEhfQ09OU09MRSwgT19XUk9OTFl8T19OT05CTE9DSywgMCkpID49IDApIHsKIAkJc3RydWN0IGlvdmVjIGlvdlsyXTsKLQkJCisKIAkJcCA9IHN0cmNocih0YnVmLCAnPicpICsgMTsKIAkJaW92WzBdLmlvdl9iYXNlID0gcDsKIAkJaW92WzBdLmlvdl9sZW4gPSBjbnQgLSAocCAtIHRidWYpOwpkaWZmIC0tZ2l0IGEvbGliYy91cHN0cmVhbS1kbG1hbGxvYy9tYWxsb2MuYyBiL2xpYmMvdXBzdHJlYW0tZGxtYWxsb2MvbWFsbG9jLmMKaW5kZXggM2VmOWI2MS4uNDM2MmY0OSAxMDA2NDQKLS0tIGEvbGliYy91cHN0cmVhbS1kbG1hbGxvYy9tYWxsb2MuYworKysgYi9saWJjL3Vwc3RyZWFtLWRsbWFsbG9jL21hbGxvYy5jCkBAIC01MzE3LDEyICs1MzE3LDE5IEBACiAgIHJldHVybiBkbG1lbWFsaWduKHBhZ2VzeiwgYnl0ZXMpOwogfQogCisvKiBCRUdJTiBhbmRyb2lkLWNoYW5nZWQ6IGFkZGVkIG92ZXJmbG93IGNoZWNrICovCiB2b2lkKiBkbHB2YWxsb2Moc2l6ZV90IGJ5dGVzKSB7CiAgIHNpemVfdCBwYWdlc3o7CisgIHNpemVfdCBzaXplOwogICBlbnN1cmVfaW5pdGlhbGl6YXRpb24oKTsKICAgcGFnZXN6ID0gbXBhcmFtcy5wYWdlX3NpemU7Ci0gIHJldHVybiBkbG1lbWFsaWduKHBhZ2VzeiwgKGJ5dGVzICsgcGFnZXN6IC0gU0laRV9UX09ORSkgJiB+KHBhZ2VzeiAtIFNJWkVfVF9PTkUpKTsKKyAgc2l6ZSA9IChieXRlcyArIHBhZ2VzeiAtIFNJWkVfVF9PTkUpICYgfihwYWdlc3ogLSBTSVpFX1RfT05FKTsKKyAgaWYgKHNpemUgPCBieXRlcykgeworICAgIHJldHVybiBOVUxMOworICB9CisgIHJldHVybiBkbG1lbWFsaWduKHBhZ2Vzeiwgc2l6ZSk7CiB9CisvKiBFTkQgYW5kcm9pZC1jaGFuZ2UgKi8KIAogdm9pZCoqIGRsaW5kZXBlbmRlbnRfY2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGNodW5rc1tdKSB7CmRpZmYgLS1naXQgYS9saWJjL3Vwc3RyZWFtLW5ldGJzZC9hbmRyb2lkL2luY2x1ZGUvcmFuZDQ4LmggYi9saWJjL3Vwc3RyZWFtLW5ldGJzZC9hbmRyb2lkL2luY2x1ZGUvcmFuZDQ4LmgKaW5kZXggMWFkOGIwZC4uMTI3OTkwNiAxMDA2NDQKLS0tIGEvbGliYy91cHN0cmVhbS1uZXRic2QvYW5kcm9pZC9pbmNsdWRlL3JhbmQ0OC5oCisrKyBiL2xpYmMvdXBzdHJlYW0tbmV0YnNkL2FuZHJvaWQvaW5jbHVkZS9yYW5kNDguaApAQCAtMTgsMTAgKzE4LDEwIEBACiAKICNpbmNsdWRlIDxzdGRsaWIuaD4KIAotZXh0ZXJuIHZvaWQJCV9fZG9yYW5kNDgodW5zaWduZWQgc2hvcnRbM10pOwotZXh0ZXJuIHVuc2lnbmVkIHNob3J0CV9fcmFuZDQ4X3NlZWRbM107Ci1leHRlcm4gdW5zaWduZWQgc2hvcnQJX19yYW5kNDhfbXVsdFszXTsKLWV4dGVybiB1bnNpZ25lZCBzaG9ydAlfX3JhbmQ0OF9hZGQ7CitfX0xJQkNfSElEREVOX18gdm9pZAkJX19kb3JhbmQ0OCh1bnNpZ25lZCBzaG9ydFszXSk7CitfX0xJQkNfSElEREVOX18gdW5zaWduZWQgc2hvcnQJX19yYW5kNDhfc2VlZFszXTsKK19fTElCQ19ISURERU5fXyB1bnNpZ25lZCBzaG9ydAlfX3JhbmQ0OF9tdWx0WzNdOworX19MSUJDX0hJRERFTl9fIHVuc2lnbmVkIHNob3J0CV9fcmFuZDQ4X2FkZDsKIAogI2RlZmluZQlSQU5ENDhfU0VFRF8wCSgweDMzMGUpCiAjZGVmaW5lCVJBTkQ0OF9TRUVEXzEJKDB4YWJjZCkKZGlmZiAtLWdpdCBhL2xpYmMvaW5jbHVkZS9zeXMvc2hhMS5oIGIvbGliYy91cHN0cmVhbS1uZXRic2QvYW5kcm9pZC9pbmNsdWRlL3N5cy9zaGExLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGxpYmMvaW5jbHVkZS9zeXMvc2hhMS5oCnJlbmFtZSB0byBsaWJjL3Vwc3RyZWFtLW5ldGJzZC9hbmRyb2lkL2luY2x1ZGUvc3lzL3NoYTEuaApkaWZmIC0tZ2l0IGEvbGliYy91cHN0cmVhbS1uZXRic2QvY29tbW9uL2xpYi9saWJjL3N0ZGxpYi9yYW5kb20uYyBiL2xpYmMvdXBzdHJlYW0tbmV0YnNkL2NvbW1vbi9saWIvbGliYy9zdGRsaWIvcmFuZG9tLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc1MDNjNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvdXBzdHJlYW0tbmV0YnNkL2NvbW1vbi9saWIvbGliYy9zdGRsaWIvcmFuZG9tLmMKQEAgLTAsMCArMSw1MzAgQEAKKy8qCSROZXRCU0Q6IHJhbmRvbS5jLHYgMS40IDIwMTQvMDYvMTIgMjA6NTk6NDYgY2hyaXN0b3MgRXhwICQJKi8KKworLyoKKyAqIENvcHlyaWdodCAoYykgMTk4MywgMTk5MworICoJVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiAhZGVmaW5lZChfS0VSTkVMKSAmJiAhZGVmaW5lZChfU1RBTkRBTE9ORSkKKyNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyNpZiBkZWZpbmVkKExJQkNfU0NDUykgJiYgIWRlZmluZWQobGludCkKKyNpZiAwCitzdGF0aWMgY2hhciBzY2NzaWRbXSA9ICJAKCMpcmFuZG9tLmMJOC4yIChCZXJrZWxleSkgNS8xOS85NSI7CisjZWxzZQorX19SQ1NJRCgiJE5ldEJTRDogcmFuZG9tLmMsdiAxLjQgMjAxNC8wNi8xMiAyMDo1OTo0NiBjaHJpc3RvcyBFeHAgJCIpOworI2VuZGlmCisjZW5kaWYgLyogTElCQ19TQ0NTIGFuZCBub3QgbGludCAqLworCisjaW5jbHVkZSAibmFtZXNwYWNlLmgiCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgInJlZW50cmFudC5oIgorCisjaWZkZWYgX193ZWFrX2FsaWFzCitfX3dlYWtfYWxpYXMoaW5pdHN0YXRlLF9pbml0c3RhdGUpCitfX3dlYWtfYWxpYXMocmFuZG9tLF9yYW5kb20pCitfX3dlYWtfYWxpYXMoc2V0c3RhdGUsX3NldHN0YXRlKQorX193ZWFrX2FsaWFzKHNyYW5kb20sX3NyYW5kb20pCisjZW5kaWYKKworCisjaWZkZWYgX1JFRU5UUkFOVAorc3RhdGljIG11dGV4X3QgcmFuZG9tX211dGV4ID0gTVVURVhfSU5JVElBTElaRVI7CisjZW5kaWYKKyNlbHNlCisjaW5jbHVkZSA8bGliL2xpYmtlcm4vbGlia2Vybi5oPgorI2RlZmluZSBtdXRleF9sb2NrKGEpCSh2b2lkKTAKKyNkZWZpbmUgbXV0ZXhfdW5sb2NrKGEpICh2b2lkKTAKKyNlbmRpZgorCisjaWZuZGVmIFNNQUxMX1JBTkRPTQorc3RhdGljIHZvaWQgc3JhbmRvbV91bmxvY2tlZCh1bnNpZ25lZCBpbnQpOworc3RhdGljIGxvbmcgcmFuZG9tX3VubG9ja2VkKHZvaWQpOworCisjZGVmaW5lIFVTRV9CRVRURVJfUkFORE9NCisKKy8qCisgKiByYW5kb20uYzoKKyAqCisgKiBBbiBpbXByb3ZlZCByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24gcGFja2FnZS4gIEluIGFkZGl0aW9uIHRvIHRoZSBzdGFuZGFyZAorICogcmFuZCgpL3NyYW5kKCkgbGlrZSBpbnRlcmZhY2UsIHRoaXMgcGFja2FnZSBhbHNvIGhhcyBhIHNwZWNpYWwgc3RhdGUgaW5mbworICogaW50ZXJmYWNlLiAgVGhlIGluaXRzdGF0ZSgpIHJvdXRpbmUgaXMgY2FsbGVkIHdpdGggYSBzZWVkLCBhbiBhcnJheSBvZgorICogYnl0ZXMsIGFuZCBhIGNvdW50IG9mIGhvdyBtYW55IGJ5dGVzIGFyZSBiZWluZyBwYXNzZWQgaW47IHRoaXMgYXJyYXkgaXMKKyAqIHRoZW4gaW5pdGlhbGl6ZWQgdG8gY29udGFpbiBpbmZvcm1hdGlvbiBmb3IgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIHdpdGgKKyAqIHRoYXQgbXVjaCBzdGF0ZSBpbmZvcm1hdGlvbi4gIEdvb2Qgc2l6ZXMgZm9yIHRoZSBhbW91bnQgb2Ygc3RhdGUKKyAqIGluZm9ybWF0aW9uIGFyZSAzMiwgNjQsIDEyOCwgYW5kIDI1NiBieXRlcy4gIFRoZSBzdGF0ZSBjYW4gYmUgc3dpdGNoZWQgYnkKKyAqIGNhbGxpbmcgdGhlIHNldHN0YXRlKCkgcm91dGluZSB3aXRoIHRoZSBzYW1lIGFycmF5IGFzIHdhcyBpbml0aWFsbGl6ZWQKKyAqIHdpdGggaW5pdHN0YXRlKCkuICBCeSBkZWZhdWx0LCB0aGUgcGFja2FnZSBydW5zIHdpdGggMTI4IGJ5dGVzIG9mIHN0YXRlCisgKiBpbmZvcm1hdGlvbiBhbmQgZ2VuZXJhdGVzIGZhciBiZXR0ZXIgcmFuZG9tIG51bWJlcnMgdGhhbiBhIGxpbmVhcgorICogY29uZ3J1ZW50aWFsIGdlbmVyYXRvci4gIElmIHRoZSBhbW91bnQgb2Ygc3RhdGUgaW5mb3JtYXRpb24gaXMgbGVzcyB0aGFuCisgKiAzMiBieXRlcywgYSBzaW1wbGUgbGluZWFyIGNvbmdydWVudGlhbCBSLk4uRy4gaXMgdXNlZC4KKyAqCisgKiBJbnRlcm5hbGx5LCB0aGUgc3RhdGUgaW5mb3JtYXRpb24gaXMgdHJlYXRlZCBhcyBhbiBhcnJheSBvZiBpbnRzOyB0aGUKKyAqIHplcm9ldGggZWxlbWVudCBvZiB0aGUgYXJyYXkgaXMgdGhlIHR5cGUgb2YgUi5OLkcuIGJlaW5nIHVzZWQgKHNtYWxsCisgKiBpbnRlZ2VyKTsgdGhlIHJlbWFpbmRlciBvZiB0aGUgYXJyYXkgaXMgdGhlIHN0YXRlIGluZm9ybWF0aW9uIGZvciB0aGUKKyAqIFIuTi5HLiAgVGh1cywgMzIgYnl0ZXMgb2Ygc3RhdGUgaW5mb3JtYXRpb24gd2lsbCBnaXZlIDcgaW50cyB3b3J0aCBvZgorICogc3RhdGUgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYWxsb3cgYSBkZWdyZWUgc2V2ZW4gcG9seW5vbWlhbC4gIChOb3RlOgorICogdGhlIHplcm9ldGggd29yZCBvZiBzdGF0ZSBpbmZvcm1hdGlvbiBhbHNvIGhhcyBzb21lIG90aGVyIGluZm9ybWF0aW9uCisgKiBzdG9yZWQgaW4gaXQgLS0gc2VlIHNldHN0YXRlKCkgZm9yIGRldGFpbHMpLgorICogCisgKiBUaGUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIHRlY2huaXF1ZSBpcyBhIGxpbmVhciBmZWVkYmFjayBzaGlmdCByZWdpc3RlcgorICogYXBwcm9hY2gsIGVtcGxveWluZyB0cmlub21pYWxzIChzaW5jZSB0aGVyZSBhcmUgZmV3ZXIgdGVybXMgdG8gc3VtIHVwIHRoYXQKKyAqIHdheSkuICBJbiB0aGlzIGFwcHJvYWNoLCB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGFsbCB0aGUgbnVtYmVycyBpbgorICogdGhlIHN0YXRlIHRhYmxlIHdpbGwgYWN0IGFzIGEgbGluZWFyIGZlZWRiYWNrIHNoaWZ0IHJlZ2lzdGVyLCBhbmQgd2lsbAorICogaGF2ZSBwZXJpb2QgMl5kZWcgLSAxICh3aGVyZSBkZWcgaXMgdGhlIGRlZ3JlZSBvZiB0aGUgcG9seW5vbWlhbCBiZWluZworICogdXNlZCwgYXNzdW1pbmcgdGhhdCB0aGUgcG9seW5vbWlhbCBpcyBpcnJlZHVjaWJsZSBhbmQgcHJpbWl0aXZlKS4gIFRoZQorICogaGlnaGVyIG9yZGVyIGJpdHMgd2lsbCBoYXZlIGxvbmdlciBwZXJpb2RzLCBzaW5jZSB0aGVpciB2YWx1ZXMgYXJlIGFsc28KKyAqIGluZmx1ZW5jZWQgYnkgcHNldWRvLXJhbmRvbSBjYXJyaWVzIG91dCBvZiB0aGUgbG93ZXIgYml0cy4gIFRoZSB0b3RhbAorICogcGVyaW9kIG9mIHRoZSBnZW5lcmF0b3IgaXMgYXBwcm94aW1hdGVseSBkZWcqKDIqKmRlZyAtIDEpOyB0aHVzIGRvdWJsaW5nCisgKiB0aGUgYW1vdW50IG9mIHN0YXRlIGluZm9ybWF0aW9uIGhhcyBhIHZhc3QgaW5mbHVlbmNlIG9uIHRoZSBwZXJpb2Qgb2YgdGhlCisgKiBnZW5lcmF0b3IuICBOb3RlOiB0aGUgZGVnKigyKipkZWcgLSAxKSBpcyBhbiBhcHByb3hpbWF0aW9uIG9ubHkgZ29vZCBmb3IKKyAqIGxhcmdlIGRlZywgd2hlbiB0aGUgcGVyaW9kIG9mIHRoZSBzaGlmdCByZWdpc3RlciBpcyB0aGUgZG9taW5hbnQgZmFjdG9yLgorICogV2l0aCBkZWcgZXF1YWwgdG8gc2V2ZW4sIHRoZSBwZXJpb2QgaXMgYWN0dWFsbHkgbXVjaCBsb25nZXIgdGhhbiB0aGUKKyAqIDcqKDIqKjcgLSAxKSBwcmVkaWN0ZWQgYnkgdGhpcyBmb3JtdWxhLgorICoKKyAqIE1vZGlmaWVkIDI4IERlY2VtYmVyIDE5OTQgYnkgSmFjb2IgUy4gUm9zZW5iZXJnLgorICogVGhlIGZvbGxvd2luZyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlOgorICogQWxsIHJlZmVyZW5jZXMgdG8gdGhlIHR5cGUgdV9pbnQgaGF2ZSBiZWVuIGNoYW5nZWQgdG8gdW5zaWduZWQgbG9uZy4KKyAqIEFsbCByZWZlcmVuY2VzIHRvIHR5cGUgaW50IGhhdmUgYmVlbiBjaGFuZ2VkIHRvIHR5cGUgbG9uZy4gIE90aGVyCisgKiBjbGVhbnVwcyBoYXZlIGJlZW4gbWFkZSBhcyB3ZWxsLiAgQSB3YXJuaW5nIGZvciBib3RoIGluaXRzdGF0ZSBhbmQKKyAqIHNldHN0YXRlIGhhcyBiZWVuIGluc2VydGVkIHRvIHRoZSBlZmZlY3QgdGhhdCBvbiBTcGFyYyBwbGF0Zm9ybXMKKyAqIHRoZSAnYXJnX3N0YXRlJyB2YXJpYWJsZSBtdXN0IGJlIGZvcmNlZCB0byBiZWdpbiBvbiB3b3JkIGJvdW5kYXJpZXMuCisgKiBUaGlzIGNhbiBiZSBlYXNpbHkgZG9uZSBieSBjYXN0aW5nIGEgbG9uZyBpbnRlZ2VyIGFycmF5IHRvIGNoYXIgKi4KKyAqIFRoZSBvdmVyYWxsIGxvZ2ljIGhhcyBiZWVuIGxlZnQgU1RSSUNUTFkgYWxvbmUuICBUaGlzIHNvZnR3YXJlIHdhcworICogdGVzdGVkIG9uIGJvdGggYSBWQVggYW5kIFN1biBTcGFjc1N0YXRpb24gd2l0aCBleGFjdGx5IHRoZSBzYW1lCisgKiByZXN1bHRzLiAgVGhlIG5ldyB2ZXJzaW9uIGFuZCB0aGUgb3JpZ2luYWwgZ2l2ZSBJREVOVElDQUwgcmVzdWx0cy4KKyAqIFRoZSBuZXcgdmVyc2lvbiBpcyBzb21ld2hhdCBmYXN0ZXIgdGhhbiB0aGUgb3JpZ2luYWwuICBBcyB0aGUKKyAqIGRvY3VtZW50YXRpb24gc2F5czogICJCeSBkZWZhdWx0LCB0aGUgcGFja2FnZSBydW5zIHdpdGggMTI4IGJ5dGVzIG9mCisgKiBzdGF0ZSBpbmZvcm1hdGlvbiBhbmQgZ2VuZXJhdGVzIGZhciBiZXR0ZXIgcmFuZG9tIG51bWJlcnMgdGhhbiBhIGxpbmVhcgorICogY29uZ3J1ZW50aWFsIGdlbmVyYXRvci4gIElmIHRoZSBhbW91bnQgb2Ygc3RhdGUgaW5mb3JtYXRpb24gaXMgbGVzcyB0aGFuCisgKiAzMiBieXRlcywgYSBzaW1wbGUgbGluZWFyIGNvbmdydWVudGlhbCBSLk4uRy4gaXMgdXNlZC4iICBGb3IgYSBidWZmZXIgb2YKKyAqIDEyOCBieXRlcywgdGhpcyBuZXcgdmVyc2lvbiBydW5zIGFib3V0IDE5IHBlcmNlbnQgZmFzdGVyIGFuZCBmb3IgYSAxNgorICogYnl0ZSBidWZmZXIgaXQgaXMgYWJvdXQgNSBwZXJjZW50IGZhc3Rlci4KKyAqCisgKiBNb2RpZmllZCAwNyBKYW51YXJ5IDIwMDIgYnkgSmFzb24gUi4gVGhvcnBlLgorICogVGhlIGZvbGxvd2luZyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlOgorICogQWxsIHRoZSByZWZlcmVuY2VzIHRvICJsb25nIiBoYXZlIGJlZW4gY2hhbmdlZCBiYWNrIHRvICJpbnQiLiAgVGhpcworICogZml4ZXMgbWVtb3J5IGNvcnJ1cHRpb24gcHJvYmxlbXMgb24gTFA2NCBwbGF0Zm9ybXMuCisgKi8KKworLyoKKyAqIEZvciBlYWNoIG9mIHRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9ycywgd2UgaGF2ZSBhCisgKiBicmVhayB2YWx1ZSBvbiB0aGUgYW1vdW50IG9mIHN0YXRlIGluZm9ybWF0aW9uICh5b3UgbmVlZCBhdCBsZWFzdCB0aGlzCisgKiBtYW55IGJ5dGVzIG9mIHN0YXRlIGluZm8gdG8gc3VwcG9ydCB0aGlzIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yKSwgYSBkZWdyZWUKKyAqIGZvciB0aGUgcG9seW5vbWlhbCAoYWN0dWFsbHkgYSB0cmlub21pYWwpIHRoYXQgdGhlIFIuTi5HLiBpcyBiYXNlZCBvbiwgYW5kCisgKiB0aGUgc2VwYXJhdGlvbiBiZXR3ZWVuIHRoZSB0d28gbG93ZXIgb3JkZXIgY29lZmZpY2llbnRzIG9mIHRoZSB0cmlub21pYWwuCisgKi8KKyNkZWZpbmUJVFlQRV8wCQkwCQkvKiBsaW5lYXIgY29uZ3J1ZW50aWFsICovCisjZGVmaW5lCUJSRUFLXzAJCTgKKyNkZWZpbmUJREVHXzAJCTAKKyNkZWZpbmUJU0VQXzAJCTAKKworI2RlZmluZQlUWVBFXzEJCTEJCS8qIHgqKjcgKyB4KiozICsgMSAqLworI2RlZmluZQlCUkVBS18xCQkzMgorI2RlZmluZQlERUdfMQkJNworI2RlZmluZQlTRVBfMQkJMworCisjZGVmaW5lCVRZUEVfMgkJMgkJLyogeCoqMTUgKyB4ICsgMSAqLworI2RlZmluZQlCUkVBS18yCQk2NAorI2RlZmluZQlERUdfMgkJMTUKKyNkZWZpbmUJU0VQXzIJCTEKKworI2RlZmluZQlUWVBFXzMJCTMJCS8qIHgqKjMxICsgeCoqMyArIDEgKi8KKyNkZWZpbmUJQlJFQUtfMwkJMTI4CisjZGVmaW5lCURFR18zCQkzMQorI2RlZmluZQlTRVBfMwkJMworCisjZGVmaW5lCVRZUEVfNAkJNAkJLyogeCoqNjMgKyB4ICsgMSAqLworI2RlZmluZQlCUkVBS180CQkyNTYKKyNkZWZpbmUJREVHXzQJCTYzCisjZGVmaW5lCVNFUF80CQkxCisKKy8qCisgKiBBcnJheSB2ZXJzaW9ucyBvZiB0aGUgYWJvdmUgaW5mb3JtYXRpb24gdG8gbWFrZSBjb2RlIHJ1biBmYXN0ZXIgLS0KKyAqIHJlbGllcyBvbiBmYWN0IHRoYXQgVFlQRV9pID09IGkuCisgKi8KKyNkZWZpbmUJTUFYX1RZUEVTCTUJCS8qIG1heCBudW1iZXIgb2YgdHlwZXMgYWJvdmUgKi8KKworc3RhdGljIGNvbnN0IGludCBkZWdyZWVzW01BWF9UWVBFU10gPQl7IERFR18wLCBERUdfMSwgREVHXzIsIERFR18zLCBERUdfNCB9Oworc3RhdGljIGNvbnN0IGludCBzZXBzW01BWF9UWVBFU10gPQl7IFNFUF8wLCBTRVBfMSwgU0VQXzIsIFNFUF8zLCBTRVBfNCB9OworCisvKgorICogSW5pdGlhbGx5LCBldmVyeXRoaW5nIGlzIHNldCB1cCBhcyBpZiBmcm9tOgorICoKKyAqCWluaXRzdGF0ZSgxLCAmcmFuZHRibCwgMTI4KTsKKyAqCisgKiBOb3RlIHRoYXQgdGhpcyBpbml0aWFsaXphdGlvbiB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCBzcmFuZG9tKCkKKyAqIGFkdmFuY2VzIHRoZSBmcm9udCBhbmQgcmVhciBwb2ludGVycyAxMCpyYW5kX2RlZyB0aW1lcywgYW5kIGhlbmNlIHRoZQorICogcmVhciBwb2ludGVyIHdoaWNoIHN0YXJ0cyBhdCAwIHdpbGwgYWxzbyBlbmQgdXAgYXQgemVybzsgdGh1cyB0aGUgemVyb2V0aAorICogZWxlbWVudCBvZiB0aGUgc3RhdGUgaW5mb3JtYXRpb24sIHdoaWNoIGNvbnRhaW5zIGluZm8gYWJvdXQgdGhlIGN1cnJlbnQKKyAqIHBvc2l0aW9uIG9mIHRoZSByZWFyIHBvaW50ZXIgaXMganVzdAorICoKKyAqCU1BWF9UWVBFUyAqIChycHRyIC0gc3RhdGUpICsgVFlQRV8zID09IFRZUEVfMy4KKyAqLworCisvKiBMSU5URUQgKi8KK3N0YXRpYyBpbnQgcmFuZHRibFtERUdfMyArIDFdID0geworCVRZUEVfMywKKyNpZmRlZiBVU0VfQkVUVEVSX1JBTkRPTQorCTB4OTkxNTM5YjEsIDB4MTZhNWJjZTMsIDB4Njc3NGE0Y2QsCisJMHgzZTAxNTExZSwgMHg0ZTUwOGFhYSwgMHg2MTA0OGMwNSwKKwkweGY1NTAwNjE3LCAweDg0NmI3MTE1LCAweDZhMTk4OTJjLAorCTB4ODk2YTk3YWYsIDB4ZGI0OGY5MzYsIDB4MTQ4OTg0NTQsCisJMHgzN2ZmZDEwNiwgMHhiNThiZmY5YywgMHg1OWUxNzEwNCwKKwkweGNmOTE4YTQ5LCAweDA5Mzc4YzgzLCAweDUyYzdhNDcxLAorCTB4OGQyOTNlYTksIDB4MWY0ZmMzMDEsIDB4YzNkYjcxYmUsCisJMHgzOWI0NGUxYywgMHhmOGE0NGVmOSwgMHg0YzhiODBiMSwKKwkweDE5ZWRjMzI4LCAweDg3YmY0YmRkLCAweGM5YjI0MGU1LAorCTB4ZTllZTRiMWIsIDB4NDM4MmFlZTcsIDB4NTM1YjZiNDEsCisJMHhmM2JlYzVkYSwKKyNlbHNlCisJMHg5YTMxOTAzOSwgMHgzMmQ5YzAyNCwgMHg5YjY2MzE4MiwKKwkweDVkYTFmMzQyLCAweGRlM2I4MWUwLCAweGRmMGE2ZmI1LAorCTB4ZjEwM2JjMDIsIDB4NDhmMzQwZmIsIDB4NzQ0OWU1NmIsCisJMHhiZWIxZGJiMCwgMHhhYjVjNTkxOCwgMHg5NDY1NTRmZCwKKwkweDhjMmU2ODBmLCAweGViM2Q3OTlmLCAweGIxMWVlMGI3LAorCTB4MmQ0MzZiODYsIDB4ZGE2NzJlMmEsIDB4MTU4OGNhODgsCisJMHhlMzY5NzM1ZCwgMHg5MDRmMzVmNywgMHhkNzE1OGZkNiwKKwkweDZmYTZmMDUxLCAweDYxNmU2Yjk2LCAweGFjOTRlZmRjLAorCTB4MzY0MTNmOTMsIDB4YzYyMmMyOTgsIDB4ZjVhNDJhYjgsCisJMHg4YTg4ZDc3YiwgMHhmNWFkOWQwZSwgMHg4OTk5MjIwYiwKKwkweDI3ZmI0N2I5LAorI2VuZGlmIC8qIFVTRV9CRVRURVJfUkFORE9NICovCit9OworCisvKgorICogZnB0ciBhbmQgcnB0ciBhcmUgdHdvIHBvaW50ZXJzIGludG8gdGhlIHN0YXRlIGluZm8sIGEgZnJvbnQgYW5kIGEgcmVhcgorICogcG9pbnRlci4gIFRoZXNlIHR3byBwb2ludGVycyBhcmUgYWx3YXlzIHJhbmRfc2VwIHBsYWNlcyBhcGFydHMsIGFzIHRoZXkKKyAqIGN5Y2xlIGN5Y2xpY2FsbHkgdGhyb3VnaCB0aGUgc3RhdGUgaW5mb3JtYXRpb24uICAoWWVzLCB0aGlzIGRvZXMgbWVhbiB3ZQorICogY291bGQgZ2V0IGF3YXkgd2l0aCBqdXN0IG9uZSBwb2ludGVyLCBidXQgdGhlIGNvZGUgZm9yIHJhbmRvbSgpIGlzIG1vcmUKKyAqIGVmZmljaWVudCB0aGlzIHdheSkuICBUaGUgcG9pbnRlcnMgYXJlIGxlZnQgcG9zaXRpb25lZCBhcyB0aGV5IHdvdWxkIGJlCisgKiBmcm9tIHRoZSBjYWxsCisgKgorICoJaW5pdHN0YXRlKDEsIHJhbmR0YmwsIDEyOCk7CisgKgorICogKFRoZSBwb3NpdGlvbiBvZiB0aGUgcmVhciBwb2ludGVyLCBycHRyLCBpcyByZWFsbHkgMCAoYXMgZXhwbGFpbmVkIGFib3ZlCisgKiBpbiB0aGUgaW5pdGlhbGl6YXRpb24gb2YgcmFuZHRibCkgYmVjYXVzZSB0aGUgc3RhdGUgdGFibGUgcG9pbnRlciBpcyBzZXQKKyAqIHRvIHBvaW50IHRvIHJhbmR0YmxbMV0gKGFzIGV4cGxhaW5lZCBiZWxvdykuCisgKi8KK3N0YXRpYyBpbnQgKmZwdHIgPSAmcmFuZHRibFtTRVBfMyArIDFdOworc3RhdGljIGludCAqcnB0ciA9ICZyYW5kdGJsWzFdOworCisvKgorICogVGhlIGZvbGxvd2luZyB0aGluZ3MgYXJlIHRoZSBwb2ludGVyIHRvIHRoZSBzdGF0ZSBpbmZvcm1hdGlvbiB0YWJsZSwgdGhlCisgKiB0eXBlIG9mIHRoZSBjdXJyZW50IGdlbmVyYXRvciwgdGhlIGRlZ3JlZSBvZiB0aGUgY3VycmVudCBwb2x5bm9taWFsIGJlaW5nCisgKiB1c2VkLCBhbmQgdGhlIHNlcGFyYXRpb24gYmV0d2VlbiB0aGUgdHdvIHBvaW50ZXJzLiAgTm90ZSB0aGF0IGZvciBlZmZpY2llbmN5CisgKiBvZiByYW5kb20oKSwgd2UgcmVtZW1iZXIgdGhlIGZpcnN0IGxvY2F0aW9uIG9mIHRoZSBzdGF0ZSBpbmZvcm1hdGlvbiwgbm90CisgKiB0aGUgemVyb2V0aC4gIEhlbmNlIGl0IGlzIHZhbGlkIHRvIGFjY2VzcyBzdGF0ZVstMV0sIHdoaWNoIGlzIHVzZWQgdG8KKyAqIHN0b3JlIHRoZSB0eXBlIG9mIHRoZSBSLk4uRy4gIEFsc28sIHdlIHJlbWVtYmVyIHRoZSBsYXN0IGxvY2F0aW9uLCBzaW5jZQorICogdGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIGluZGV4aW5nIGV2ZXJ5IHRpbWUgdG8gZmluZCB0aGUgYWRkcmVzcyBvZgorICogdGhlIGxhc3QgZWxlbWVudCB0byBzZWUgaWYgdGhlIGZyb250IGFuZCByZWFyIHBvaW50ZXJzIGhhdmUgd3JhcHBlZC4KKyAqLworc3RhdGljIGludCAqc3RhdGUgPSAmcmFuZHRibFsxXTsKK3N0YXRpYyBpbnQgcmFuZF90eXBlID0gVFlQRV8zOworc3RhdGljIGludCByYW5kX2RlZyA9IERFR18zOworc3RhdGljIGludCByYW5kX3NlcCA9IFNFUF8zOworc3RhdGljIGludCAqZW5kX3B0ciA9ICZyYW5kdGJsW0RFR18zICsgMV07CisKKy8qCisgKiBzcmFuZG9tOgorICoKKyAqIEluaXRpYWxpemUgdGhlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGJhc2VkIG9uIHRoZSBnaXZlbiBzZWVkLiAgSWYgdGhlCisgKiB0eXBlIGlzIHRoZSB0cml2aWFsIG5vLXN0YXRlLWluZm9ybWF0aW9uIHR5cGUsIGp1c3QgcmVtZW1iZXIgdGhlIHNlZWQuCisgKiBPdGhlcndpc2UsIGluaXRpYWxpemVzIHN0YXRlW10gYmFzZWQgb24gdGhlIGdpdmVuICJzZWVkIiB2aWEgYSBsaW5lYXIKKyAqIGNvbmdydWVudGlhbCBnZW5lcmF0b3IuICBUaGVuLCB0aGUgcG9pbnRlcnMgYXJlIHNldCB0byBrbm93biBsb2NhdGlvbnMKKyAqIHRoYXQgYXJlIGV4YWN0bHkgcmFuZF9zZXAgcGxhY2VzIGFwYXJ0LiAgTGFzdGx5LCBpdCBjeWNsZXMgdGhlIHN0YXRlCisgKiBpbmZvcm1hdGlvbiBhIGdpdmVuIG51bWJlciBvZiB0aW1lcyB0byBnZXQgcmlkIG9mIGFueSBpbml0aWFsIGRlcGVuZGVuY2llcworICogaW50cm9kdWNlZCBieSB0aGUgTC5DLlIuTi5HLiAgTm90ZSB0aGF0IHRoZSBpbml0aWFsaXphdGlvbiBvZiByYW5kdGJsW10KKyAqIGZvciBkZWZhdWx0IHVzYWdlIHJlbGllcyBvbiB2YWx1ZXMgcHJvZHVjZWQgYnkgdGhpcyByb3V0aW5lLgorICovCitzdGF0aWMgdm9pZAorc3JhbmRvbV91bmxvY2tlZCh1bnNpZ25lZCBpbnQgeCkKK3sKKwlpbnQgaTsKKworCWlmIChyYW5kX3R5cGUgPT0gVFlQRV8wKQorCQlzdGF0ZVswXSA9IHg7CisJZWxzZSB7CisJCXN0YXRlWzBdID0geDsKKwkJZm9yIChpID0gMTsgaSA8IHJhbmRfZGVnOyBpKyspIHsKKyNpZmRlZiBVU0VfQkVUVEVSX1JBTkRPTQorCQkJaW50IHgxLCBoaSwgbG8sIHQ7CisKKwkJCS8qCisJCQkgKiBDb21wdXRlIHhbbiArIDFdID0gKDdeNSAqIHhbbl0pIG1vZCAoMl4zMSAtIDEpLgorCQkJICogRnJvbSAiUmFuZG9tIG51bWJlciBnZW5lcmF0b3JzOiBnb29kIG9uZXMgYXJlIGhhcmQKKwkJCSAqIHRvIGZpbmQiLCBQYXJrIGFuZCBNaWxsZXIsIENvbW11bmljYXRpb25zIG9mIHRoZSBBQ00sCisJCQkgKiB2b2wuIDMxLCBuby4gMTAsCisJCQkgKiBPY3RvYmVyIDE5ODgsIHAuIDExOTUuCisJCQkgKi8KKwkJCXgxID0gc3RhdGVbaSAtIDFdOworCQkJaGkgPSB4MSAvIDEyNzc3MzsKKwkJCWxvID0geDEgJSAxMjc3NzM7CisJCQl0ID0gMTY4MDcgKiBsbyAtIDI4MzYgKiBoaTsKKwkJCWlmICh0IDw9IDApCisJCQkJdCArPSAweDdmZmZmZmZmOworCQkJc3RhdGVbaV0gPSB0OworI2Vsc2UKKwkJCXN0YXRlW2ldID0gMTEwMzUxNTI0NSAqIHN0YXRlW2kgLSAxXSArIDEyMzQ1OworI2VuZGlmIC8qIFVTRV9CRVRURVJfUkFORE9NICovCisJCX0KKwkJZnB0ciA9ICZzdGF0ZVtyYW5kX3NlcF07CisJCXJwdHIgPSAmc3RhdGVbMF07CisJCWZvciAoaSA9IDA7IGkgPCAxMCAqIHJhbmRfZGVnOyBpKyspCisJCQkodm9pZClyYW5kb21fdW5sb2NrZWQoKTsKKwl9Cit9CisKK3ZvaWQKK3NyYW5kb20odW5zaWduZWQgaW50IHgpCit7CisKKwltdXRleF9sb2NrKCZyYW5kb21fbXV0ZXgpOworCXNyYW5kb21fdW5sb2NrZWQoeCk7CisJbXV0ZXhfdW5sb2NrKCZyYW5kb21fbXV0ZXgpOworfQorCisvKgorICogaW5pdHN0YXRlOgorICoKKyAqIEluaXRpYWxpemUgdGhlIHN0YXRlIGluZm9ybWF0aW9uIGluIHRoZSBnaXZlbiBhcnJheSBvZiBuIGJ5dGVzIGZvciBmdXR1cmUKKyAqIHJhbmRvbSBudW1iZXIgZ2VuZXJhdGlvbi4gIEJhc2VkIG9uIHRoZSBudW1iZXIgb2YgYnl0ZXMgd2UgYXJlIGdpdmVuLCBhbmQKKyAqIHRoZSBicmVhayB2YWx1ZXMgZm9yIHRoZSBkaWZmZXJlbnQgUi5OLkcuJ3MsIHdlIGNob29zZSB0aGUgYmVzdCAobGFyZ2VzdCkKKyAqIG9uZSB3ZSBjYW4gYW5kIHNldCB0aGluZ3MgdXAgZm9yIGl0LiAgc3JhbmRvbSgpIGlzIHRoZW4gY2FsbGVkIHRvCisgKiBpbml0aWFsaXplIHRoZSBzdGF0ZSBpbmZvcm1hdGlvbi4KKyAqIAorICogTm90ZSB0aGF0IG9uIHJldHVybiBmcm9tIHNyYW5kb20oKSwgd2Ugc2V0IHN0YXRlWy0xXSB0byBiZSB0aGUgdHlwZQorICogbXVsdGlwbGV4ZWQgd2l0aCB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgcmVhciBwb2ludGVyOyB0aGlzIGlzIHNvCisgKiBzdWNjZXNzaXZlIGNhbGxzIHRvIGluaXRzdGF0ZSgpIHdvbid0IGxvc2UgdGhpcyBpbmZvcm1hdGlvbiBhbmQgd2lsbCBiZQorICogYWJsZSB0byByZXN0YXJ0IHdpdGggc2V0c3RhdGUoKS4KKyAqIAorICogTm90ZTogdGhlIGZpcnN0IHRoaW5nIHdlIGRvIGlzIHNhdmUgdGhlIGN1cnJlbnQgc3RhdGUsIGlmIGFueSwganVzdCBsaWtlCisgKiBzZXRzdGF0ZSgpIHNvIHRoYXQgaXQgZG9lc24ndCBtYXR0ZXIgd2hlbiBpbml0c3RhdGUgaXMgY2FsbGVkLgorICoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBvbGQgc3RhdGUuCisgKgorICogTm90ZTogVGhlIFNwYXJjIHBsYXRmb3JtIHJlcXVpcmVzIHRoYXQgYXJnX3N0YXRlIGJlZ2luIG9uIGFuIGludAorICogd29yZCBib3VuZGFyeTsgb3RoZXJ3aXNlIGEgYnVzIGVycm9yIHdpbGwgb2NjdXIuIEV2ZW4gc28sIGxpbnQgd2lsbAorICogY29tcGxhaW4gYWJvdXQgbWlzLWFsaWdubWVudCwgYnV0IHlvdSBzaG91bGQgZGlzcmVnYXJkIHRoZXNlIG1lc3NhZ2VzLgorICovCitjaGFyICoKK2luaXRzdGF0ZSgKKwl1bnNpZ25lZCBpbnQgc2VlZCwJCS8qIHNlZWQgZm9yIFIuTi5HLiAqLworCWNoYXIgKmFyZ19zdGF0ZSwJCS8qIHBvaW50ZXIgdG8gc3RhdGUgYXJyYXkgKi8KKwlzaXplX3QgbikJCQkvKiAjIGJ5dGVzIG9mIHN0YXRlIGluZm8gKi8KK3sKKwl2b2lkICpvc3RhdGUgPSAodm9pZCAqKSgmc3RhdGVbLTFdKTsKKwlpbnQgKmludF9hcmdfc3RhdGU7CisKKwlfRElBR0FTU0VSVChhcmdfc3RhdGUgIT0gTlVMTCk7CisKKwlpbnRfYXJnX3N0YXRlID0gKGludCAqKSh2b2lkICopYXJnX3N0YXRlOworCisJbXV0ZXhfbG9jaygmcmFuZG9tX211dGV4KTsKKwlpZiAocmFuZF90eXBlID09IFRZUEVfMCkKKwkJc3RhdGVbLTFdID0gcmFuZF90eXBlOworCWVsc2UKKwkJc3RhdGVbLTFdID0gTUFYX1RZUEVTICogKGludCkocnB0ciAtIHN0YXRlKSArIHJhbmRfdHlwZTsKKwlpZiAobiA8IEJSRUFLXzApIHsKKwkJbXV0ZXhfdW5sb2NrKCZyYW5kb21fbXV0ZXgpOworCQlyZXR1cm4gKE5VTEwpOworCX0gZWxzZSBpZiAobiA8IEJSRUFLXzEpIHsKKwkJcmFuZF90eXBlID0gVFlQRV8wOworCQlyYW5kX2RlZyA9IERFR18wOworCQlyYW5kX3NlcCA9IFNFUF8wOworCX0gZWxzZSBpZiAobiA8IEJSRUFLXzIpIHsKKwkJcmFuZF90eXBlID0gVFlQRV8xOworCQlyYW5kX2RlZyA9IERFR18xOworCQlyYW5kX3NlcCA9IFNFUF8xOworCX0gZWxzZSBpZiAobiA8IEJSRUFLXzMpIHsKKwkJcmFuZF90eXBlID0gVFlQRV8yOworCQlyYW5kX2RlZyA9IERFR18yOworCQlyYW5kX3NlcCA9IFNFUF8yOworCX0gZWxzZSBpZiAobiA8IEJSRUFLXzQpIHsKKwkJcmFuZF90eXBlID0gVFlQRV8zOworCQlyYW5kX2RlZyA9IERFR18zOworCQlyYW5kX3NlcCA9IFNFUF8zOworCX0gZWxzZSB7CisJCXJhbmRfdHlwZSA9IFRZUEVfNDsKKwkJcmFuZF9kZWcgPSBERUdfNDsKKwkJcmFuZF9zZXAgPSBTRVBfNDsKKwl9CisJc3RhdGUgPSAoaW50ICopIChpbnRfYXJnX3N0YXRlICsgMSk7IC8qIGZpcnN0IGxvY2F0aW9uICovCisJZW5kX3B0ciA9ICZzdGF0ZVtyYW5kX2RlZ107CS8qIG11c3Qgc2V0IGVuZF9wdHIgYmVmb3JlIHNyYW5kb20gKi8KKwlzcmFuZG9tX3VubG9ja2VkKHNlZWQpOworCWlmIChyYW5kX3R5cGUgPT0gVFlQRV8wKQorCQlpbnRfYXJnX3N0YXRlWzBdID0gcmFuZF90eXBlOworCWVsc2UKKwkJaW50X2FyZ19zdGF0ZVswXSA9IE1BWF9UWVBFUyAqIChpbnQpKHJwdHIgLSBzdGF0ZSkgKyByYW5kX3R5cGU7CisJbXV0ZXhfdW5sb2NrKCZyYW5kb21fbXV0ZXgpOworCXJldHVybigoY2hhciAqKW9zdGF0ZSk7Cit9CisKKy8qCisgKiBzZXRzdGF0ZToKKyAqCisgKiBSZXN0b3JlIHRoZSBzdGF0ZSBmcm9tIHRoZSBnaXZlbiBzdGF0ZSBhcnJheS4KKyAqCisgKiBOb3RlOiBpdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBhbHNvIHJlbWVtYmVyIHRoZSBsb2NhdGlvbnMgb2YgdGhlIHBvaW50ZXJzCisgKiBpbiB0aGUgY3VycmVudCBzdGF0ZSBpbmZvcm1hdGlvbiwgYW5kIHJlc3RvcmUgdGhlIGxvY2F0aW9ucyBvZiB0aGUgcG9pbnRlcnMKKyAqIGZyb20gdGhlIG9sZCBzdGF0ZSBpbmZvcm1hdGlvbi4gIFRoaXMgaXMgZG9uZSBieSBtdWx0aXBsZXhpbmcgdGhlIHBvaW50ZXIKKyAqIGxvY2F0aW9uIGludG8gdGhlIHplcm9ldGggd29yZCBvZiB0aGUgc3RhdGUgaW5mb3JtYXRpb24uCisgKgorICogTm90ZSB0aGF0IGR1ZSB0byB0aGUgb3JkZXIgaW4gd2hpY2ggdGhpbmdzIGFyZSBkb25lLCBpdCBpcyBPSyB0byBjYWxsCisgKiBzZXRzdGF0ZSgpIHdpdGggdGhlIHNhbWUgc3RhdGUgYXMgdGhlIGN1cnJlbnQgc3RhdGUuCisgKgorICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG9sZCBzdGF0ZSBpbmZvcm1hdGlvbi4KKyAqCisgKiBOb3RlOiBUaGUgU3BhcmMgcGxhdGZvcm0gcmVxdWlyZXMgdGhhdCBhcmdfc3RhdGUgYmVnaW4gb24gYSBsb25nCisgKiB3b3JkIGJvdW5kYXJ5OyBvdGhlcndpc2UgYSBidXMgZXJyb3Igd2lsbCBvY2N1ci4gRXZlbiBzbywgbGludCB3aWxsCisgKiBjb21wbGFpbiBhYm91dCBtaXMtYWxpZ25tZW50LCBidXQgeW91IHNob3VsZCBkaXNyZWdhcmQgdGhlc2UgbWVzc2FnZXMuCisgKi8KK2NoYXIgKgorc2V0c3RhdGUoY2hhciAqYXJnX3N0YXRlKQkJLyogcG9pbnRlciB0byBzdGF0ZSBhcnJheSAqLworeworCWludCAqbmV3X3N0YXRlOworCWludCB0eXBlOworCWludCByZWFyOworCXZvaWQgKm9zdGF0ZSA9ICh2b2lkICopKCZzdGF0ZVstMV0pOworCisJX0RJQUdBU1NFUlQoYXJnX3N0YXRlICE9IE5VTEwpOworCisJbmV3X3N0YXRlID0gKGludCAqKSh2b2lkICopYXJnX3N0YXRlOworCXR5cGUgPSAoaW50KShuZXdfc3RhdGVbMF0gJSBNQVhfVFlQRVMpOworCXJlYXIgPSAoaW50KShuZXdfc3RhdGVbMF0gLyBNQVhfVFlQRVMpOworCisJbXV0ZXhfbG9jaygmcmFuZG9tX211dGV4KTsKKwlpZiAocmFuZF90eXBlID09IFRZUEVfMCkKKwkJc3RhdGVbLTFdID0gcmFuZF90eXBlOworCWVsc2UKKwkJc3RhdGVbLTFdID0gTUFYX1RZUEVTICogKGludCkocnB0ciAtIHN0YXRlKSArIHJhbmRfdHlwZTsKKwlzd2l0Y2godHlwZSkgeworCWNhc2UgVFlQRV8wOgorCWNhc2UgVFlQRV8xOgorCWNhc2UgVFlQRV8yOgorCWNhc2UgVFlQRV8zOgorCWNhc2UgVFlQRV80OgorCQlyYW5kX3R5cGUgPSB0eXBlOworCQlyYW5kX2RlZyA9IGRlZ3JlZXNbdHlwZV07CisJCXJhbmRfc2VwID0gc2Vwc1t0eXBlXTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJbXV0ZXhfdW5sb2NrKCZyYW5kb21fbXV0ZXgpOworCQlyZXR1cm4gKE5VTEwpOworCX0KKwlzdGF0ZSA9IChpbnQgKikgKG5ld19zdGF0ZSArIDEpOworCWlmIChyYW5kX3R5cGUgIT0gVFlQRV8wKSB7CisJCXJwdHIgPSAmc3RhdGVbcmVhcl07CisJCWZwdHIgPSAmc3RhdGVbKHJlYXIgKyByYW5kX3NlcCkgJSByYW5kX2RlZ107CisJfQorCWVuZF9wdHIgPSAmc3RhdGVbcmFuZF9kZWddOwkJLyogc2V0IGVuZF9wdHIgdG9vICovCisJbXV0ZXhfdW5sb2NrKCZyYW5kb21fbXV0ZXgpOworCXJldHVybigoY2hhciAqKW9zdGF0ZSk7Cit9CisKKy8qCisgKiByYW5kb206CisgKgorICogSWYgd2UgYXJlIHVzaW5nIHRoZSB0cml2aWFsIFRZUEVfMCBSLk4uRy4sIGp1c3QgZG8gdGhlIG9sZCBsaW5lYXIKKyAqIGNvbmdydWVudGlhbCBiaXQuICBPdGhlcndpc2UsIHdlIGRvIG91ciBmYW5jeSB0cmlub21pYWwgc3R1ZmYsIHdoaWNoIGlzCisgKiB0aGUgc2FtZSBpbiBhbGwgdGhlIG90aGVyIGNhc2VzIGR1ZSB0byBhbGwgdGhlIGdsb2JhbCB2YXJpYWJsZXMgdGhhdCBoYXZlCisgKiBiZWVuIHNldCB1cC4gIFRoZSBiYXNpYyBvcGVyYXRpb24gaXMgdG8gYWRkIHRoZSBudW1iZXIgYXQgdGhlIHJlYXIgcG9pbnRlcgorICogaW50byB0aGUgb25lIGF0IHRoZSBmcm9udCBwb2ludGVyLiAgVGhlbiBib3RoIHBvaW50ZXJzIGFyZSBhZHZhbmNlZCB0bworICogdGhlIG5leHQgbG9jYXRpb24gY3ljbGljYWxseSBpbiB0aGUgdGFibGUuICBUaGUgdmFsdWUgcmV0dXJuZWQgaXMgdGhlIHN1bQorICogZ2VuZXJhdGVkLCByZWR1Y2VkIHRvIDMxIGJpdHMgYnkgdGhyb3dpbmcgYXdheSB0aGUgImxlYXN0IHJhbmRvbSIgbG93IGJpdC4KKyAqCisgKiBOb3RlOiB0aGUgY29kZSB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCBib3RoIHRoZSBmcm9udCBhbmQKKyAqIHJlYXIgcG9pbnRlcnMgY2FuJ3Qgd3JhcCBvbiB0aGUgc2FtZSBjYWxsIGJ5IG5vdCB0ZXN0aW5nIHRoZSByZWFyCisgKiBwb2ludGVyIGlmIHRoZSBmcm9udCBvbmUgaGFzIHdyYXBwZWQuCisgKgorICogUmV0dXJucyBhIDMxLWJpdCByYW5kb20gbnVtYmVyLgorICovCitzdGF0aWMgbG9uZworcmFuZG9tX3VubG9ja2VkKHZvaWQpCit7CisJaW50IGk7CisJaW50ICpmLCAqcjsKKworCWlmIChyYW5kX3R5cGUgPT0gVFlQRV8wKSB7CisJCWkgPSBzdGF0ZVswXTsKKwkJc3RhdGVbMF0gPSBpID0gKGkgKiAxMTAzNTE1MjQ1ICsgMTIzNDUpICYgMHg3ZmZmZmZmZjsKKwl9IGVsc2UgeworCQkvKgorCQkgKiBVc2UgbG9jYWwgdmFyaWFibGVzIHJhdGhlciB0aGFuIHN0YXRpYyB2YXJpYWJsZXMgZm9yIHNwZWVkLgorCQkgKi8KKwkJZiA9IGZwdHI7IHIgPSBycHRyOworCQkqZiArPSAqcjsKKwkJLyogY2h1Y2tpbmcgbGVhc3QgcmFuZG9tIGJpdCAqLworCQlpID0gKCh1bnNpZ25lZCBpbnQpKmYgPj4gMSkgJiAweDdmZmZmZmZmOworCQlpZiAoKytmID49IGVuZF9wdHIpIHsKKwkJCWYgPSBzdGF0ZTsKKwkJCSsrcjsKKwkJfQorCQllbHNlIGlmICgrK3IgPj0gZW5kX3B0cikgeworCQkJciA9IHN0YXRlOworCQl9CisKKwkJZnB0ciA9IGY7IHJwdHIgPSByOworCX0KKwlyZXR1cm4oaSk7Cit9CisKK2xvbmcKK3JhbmRvbSh2b2lkKQoreworCWxvbmcgcjsKKworCW11dGV4X2xvY2soJnJhbmRvbV9tdXRleCk7CisJciA9IHJhbmRvbV91bmxvY2tlZCgpOworCW11dGV4X3VubG9jaygmcmFuZG9tX211dGV4KTsKKwlyZXR1cm4gKHIpOworfQorI2Vsc2UKK2xvbmcKK3JhbmRvbSh2b2lkKQoreworCXN0YXRpYyB1X2xvbmcgcmFuZHNlZWQgPSAxOworCWxvbmcgeCwgaGksIGxvLCB0OworIAorCS8qCisJICogQ29tcHV0ZSB4W24gKyAxXSA9ICg3XjUgKiB4W25dKSBtb2QgKDJeMzEgLSAxKS4KKwkgKiBGcm9tICJSYW5kb20gbnVtYmVyIGdlbmVyYXRvcnM6IGdvb2Qgb25lcyBhcmUgaGFyZCB0byBmaW5kIiwKKwkgKiBQYXJrIGFuZCBNaWxsZXIsIENvbW11bmljYXRpb25zIG9mIHRoZSBBQ00sIHZvbC4gMzEsIG5vLiAxMCwKKwkgKiBPY3RvYmVyIDE5ODgsIHAuIDExOTUuCisJICovCisJeCA9IHJhbmRzZWVkOworCWhpID0geCAvIDEyNzc3MzsKKwlsbyA9IHggJSAxMjc3NzM7CisJdCA9IDE2ODA3ICogbG8gLSAyODM2ICogaGk7CisJaWYgKHQgPD0gMCkKKwkJdCArPSAweDdmZmZmZmZmOworCXJhbmRzZWVkID0gdDsKKwlyZXR1cm4gKHQpOworfQorI2VuZGlmIC8qIFNNQUxMX1JBTkRPTSAqLwpkaWZmIC0tZ2l0IGEvbGliYy91cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvZ2VuL3NldGptcGVyci5jIGIvbGliYy91cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvc3RkbGliL3JhbmQuYwpzaW1pbGFyaXR5IGluZGV4IDczJQpyZW5hbWUgZnJvbSBsaWJjL3Vwc3RyZWFtLW5ldGJzZC9saWIvbGliYy9nZW4vc2V0am1wZXJyLmMKcmVuYW1lIHRvIGxpYmMvdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL3N0ZGxpYi9yYW5kLmMKaW5kZXggNWIxNDMyZS4uNDkwOWQxNCAxMDA2NDQKLS0tIGEvbGliYy91cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvZ2VuL3NldGptcGVyci5jCisrKyBiL2xpYmMvdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL3N0ZGxpYi9yYW5kLmMKQEAgLTEsNyArMSw3IEBACi0vKgkkTmV0QlNEOiBzZXRqbXBlcnIuYyx2IDEuOCAyMDEyLzA2LzI0IDE1OjI2OjAzIGNocmlzdG9zIEV4cCAkCSovCisvKgkkTmV0QlNEOiByYW5kLmMsdiAxLjEyIDIwMTIvMDYvMjUgMjI6MzI6NDUgYWJzIEV4cCAkCSovCiAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDE5ODAsIDE5OTMKKy8qLQorICogQ29weXJpZ2h0IChjKSAxOTkwLCAxOTkzCiAgKglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMyLDI1ICszMiwyNiBAQAogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgogI2lmIGRlZmluZWQoTElCQ19TQ0NTKSAmJiAhZGVmaW5lZChsaW50KQogI2lmIDAKLXN0YXRpYyBjaGFyIHNjY3NpZFtdID0gIkAoIylzZXRqbXBlcnIuYwk4LjEgKEJlcmtlbGV5KSA2LzQvOTMiOworc3RhdGljIGNoYXIgc2Njc2lkW10gPSAiQCgjKXJhbmQuYwk4LjEgKEJlcmtlbGV5KSA2LzE0LzkzIjsKICNlbHNlCi1fX1JDU0lEKCIkTmV0QlNEOiBzZXRqbXBlcnIuYyx2IDEuOCAyMDEyLzA2LzI0IDE1OjI2OjAzIGNocmlzdG9zIEV4cCAkIik7CitfX1JDU0lEKCIkTmV0QlNEOiByYW5kLmMsdiAxLjEyIDIwMTIvMDYvMjUgMjI6MzI6NDUgYWJzIEV4cCAkIik7CiAjZW5kaWYKICNlbmRpZiAvKiBMSUJDX1NDQ1MgYW5kIG5vdCBsaW50ICovCiAKLS8qCi0gKiBUaGlzIHJvdXRpbmUgaXMgY2FsbGVkIGZyb20gbG9uZ2ptcCgpIHdoZW4gYW4gZXJyb3Igb2NjdXJzLgotICogUHJvZ3JhbXMgdGhhdCB3aXNoIHRvIGV4aXQgZ3JhY2VmdWxseSBmcm9tIHRoaXMgZXJyb3IgbWF5Ci0gKiB3cml0ZSB0aGVpciBvd24gdmVyc2lvbnMuCi0gKiBJZiB0aGlzIHJvdXRpbmUgcmV0dXJucywgdGhlIHByb2dyYW0gaXMgYWJvcnRlZC4KLSAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgogCi0jaW5jbHVkZSA8c2V0am1wLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+CitzdGF0aWMgdV9sb25nIG5leHQgPSAxOworCitpbnQKK3JhbmQodm9pZCkKK3sKKwkvKiBMSU5URUQgaW50ZWdlciBvdmVyZmxvdyAqLworCXJldHVybiAoaW50KSgobmV4dCA9IG5leHQgKiAxMTAzNTE1MjQ1ICsgMTIzNDUpICUgKCh1X2xvbmcpUkFORF9NQVggKyAxKSk7Cit9CiAKIHZvaWQKLWxvbmdqbXBlcnJvcih2b2lkKQorc3JhbmQodV9pbnQgc2VlZCkKIHsKLSNkZWZpbmUJRVJSTVNHCSJsb25nam1wIGJvdGNoLlxuIgotCSh2b2lkKXdyaXRlKFNUREVSUl9GSUxFTk8sIEVSUk1TRywgc2l6ZW9mKEVSUk1TRykgLSAxKTsKKwluZXh0ID0gc2VlZDsKIH0KZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL2luZGV4LmNwcCBiL2xpYmMvdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL3N0ZGxpYi9yYW5kX3IuYwpzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSBsaWJjL2Jpb25pYy9pbmRleC5jcHAKcmVuYW1lIHRvIGxpYmMvdXBzdHJlYW0tbmV0YnNkL2xpYi9saWJjL3N0ZGxpYi9yYW5kX3IuYwppbmRleCBjYzIyZDgxLi4yNzJiMmJkIDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9pbmRleC5jcHAKKysrIGIvbGliYy91cHN0cmVhbS1uZXRic2QvbGliL2xpYmMvc3RkbGliL3JhbmRfci5jCkBAIC0xLDMgKzEsNSBAQAorLyoJJE5ldEJTRDogcmFuZF9yLmMsdiAxLjYgMjAxMi8wNi8yNSAyMjozMjo0NSBhYnMgRXhwICQJKi8KKwogLyotCiAgKiBDb3B5cmlnaHQgKGMpIDE5OTAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC0yNyw5ICsyOSwyMyBAQAogICogU1VDSCBEQU1BR0UuCiAgKi8KIAotI3VuZGVmIF9GT1JUSUZZX1NPVVJDRQotI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorI2lmIGRlZmluZWQoTElCQ19TQ0NTKSAmJiAhZGVmaW5lZChsaW50KQorI2lmIDAKK3N0YXRpYyBjaGFyICpzY2NzaWQgPSAiZnJvbTogQCgjKXJhbmQuYwk1LjYgKEJlcmtlbGV5KSA2LzI0LzkxIjsKKyNlbHNlCitfX1JDU0lEKCIkTmV0QlNEOiByYW5kX3IuYyx2IDEuNiAyMDEyLzA2LzI1IDIyOjMyOjQ1IGFicyBFeHAgJCIpOworI2VuZGlmCisjZW5kaWYgLyogTElCQ19TQ0NTIGFuZCBub3QgbGludCAqLwogCi1jaGFyKiBpbmRleChjb25zdCBjaGFyKiBwLCBpbnQgY2gpIHsKLSAgcmV0dXJuIF9fc3RyY2hyX2NoayhwLCBjaCwgX19CSU9OSUNfRk9SVElGWV9VTktOT1dOX1NJWkUpOworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKK2ludAorcmFuZF9yKHVuc2lnbmVkIGludCAqc2VlZCkKK3sKKwlfRElBR0FTU0VSVChzZWVkICE9IE5VTEwpOworCisJcmV0dXJuICgoKnNlZWQgPSAqc2VlZCAqIDExMDM1MTUyNDUgKyAxMjM0NSkgJiBSQU5EX01BWCk7CiB9CmRpZmYgLS1naXQgYS9saWJjL3Vwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvY3J5cHQvY2hhY2hhX3ByaXZhdGUuaCBiL2xpYmMvdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9jcnlwdC9jaGFjaGFfcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMzY4MGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL3Vwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvY3J5cHQvY2hhY2hhX3ByaXZhdGUuaApAQCAtMCwwICsxLDIyMiBAQAorLyoKK2NoYWNoYS1tZXJnZWQuYyB2ZXJzaW9uIDIwMDgwMTE4CitELiBKLiBCZXJuc3RlaW4KK1B1YmxpYyBkb21haW4uCisqLworCisvKiAkT3BlbkJTRDogY2hhY2hhX3ByaXZhdGUuaCx2IDEuMiAyMDEzLzEwLzA0IDA3OjAyOjI3IGRqbSBFeHAgJCAqLworCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdTg7Cit0eXBlZGVmIHVuc2lnbmVkIGludCB1MzI7CisKK3R5cGVkZWYgc3RydWN0Cit7CisgIHUzMiBpbnB1dFsxNl07IC8qIGNvdWxkIGJlIGNvbXByZXNzZWQgKi8KK30gY2hhY2hhX2N0eDsKKworI2RlZmluZSBVOEModikgKHYjI1UpCisjZGVmaW5lIFUzMkModikgKHYjI1UpCisKKyNkZWZpbmUgVThWKHYpICgodTgpKHYpICYgVThDKDB4RkYpKQorI2RlZmluZSBVMzJWKHYpICgodTMyKSh2KSAmIFUzMkMoMHhGRkZGRkZGRikpCisKKyNkZWZpbmUgUk9UTDMyKHYsIG4pIFwKKyAgKFUzMlYoKHYpIDw8IChuKSkgfCAoKHYpID4+ICgzMiAtIChuKSkpKQorCisjZGVmaW5lIFU4VE8zMl9MSVRUTEUocCkgXAorICAoKCh1MzIpKChwKVswXSkgICAgICApIHwgXAorICAgKCh1MzIpKChwKVsxXSkgPDwgIDgpIHwgXAorICAgKCh1MzIpKChwKVsyXSkgPDwgMTYpIHwgXAorICAgKCh1MzIpKChwKVszXSkgPDwgMjQpKQorCisjZGVmaW5lIFUzMlRPOF9MSVRUTEUocCwgdikgXAorICBkbyB7IFwKKyAgICAocClbMF0gPSBVOFYoKHYpICAgICAgKTsgXAorICAgIChwKVsxXSA9IFU4VigodikgPj4gIDgpOyBcCisgICAgKHApWzJdID0gVThWKCh2KSA+PiAxNik7IFwKKyAgICAocClbM10gPSBVOFYoKHYpID4+IDI0KTsgXAorICB9IHdoaWxlICgwKQorCisjZGVmaW5lIFJPVEFURSh2LGMpIChST1RMMzIodixjKSkKKyNkZWZpbmUgWE9SKHYsdykgKCh2KSBeICh3KSkKKyNkZWZpbmUgUExVUyh2LHcpIChVMzJWKCh2KSArICh3KSkpCisjZGVmaW5lIFBMVVNPTkUodikgKFBMVVMoKHYpLDEpKQorCisjZGVmaW5lIFFVQVJURVJST1VORChhLGIsYyxkKSBcCisgIGEgPSBQTFVTKGEsYik7IGQgPSBST1RBVEUoWE9SKGQsYSksMTYpOyBcCisgIGMgPSBQTFVTKGMsZCk7IGIgPSBST1RBVEUoWE9SKGIsYyksMTIpOyBcCisgIGEgPSBQTFVTKGEsYik7IGQgPSBST1RBVEUoWE9SKGQsYSksIDgpOyBcCisgIGMgPSBQTFVTKGMsZCk7IGIgPSBST1RBVEUoWE9SKGIsYyksIDcpOworCitzdGF0aWMgY29uc3QgY2hhciBzaWdtYVsxNl0gPSAiZXhwYW5kIDMyLWJ5dGUgayI7CitzdGF0aWMgY29uc3QgY2hhciB0YXVbMTZdID0gImV4cGFuZCAxNi1ieXRlIGsiOworCitzdGF0aWMgdm9pZAorY2hhY2hhX2tleXNldHVwKGNoYWNoYV9jdHggKngsY29uc3QgdTggKmssdTMyIGtiaXRzLHUzMiBpdmJpdHMpCit7CisgIGNvbnN0IGNoYXIgKmNvbnN0YW50czsKKworICB4LT5pbnB1dFs0XSA9IFU4VE8zMl9MSVRUTEUoayArIDApOworICB4LT5pbnB1dFs1XSA9IFU4VE8zMl9MSVRUTEUoayArIDQpOworICB4LT5pbnB1dFs2XSA9IFU4VE8zMl9MSVRUTEUoayArIDgpOworICB4LT5pbnB1dFs3XSA9IFU4VE8zMl9MSVRUTEUoayArIDEyKTsKKyAgaWYgKGtiaXRzID09IDI1NikgeyAvKiByZWNvbW1lbmRlZCAqLworICAgIGsgKz0gMTY7CisgICAgY29uc3RhbnRzID0gc2lnbWE7CisgIH0gZWxzZSB7IC8qIGtiaXRzID09IDEyOCAqLworICAgIGNvbnN0YW50cyA9IHRhdTsKKyAgfQorICB4LT5pbnB1dFs4XSA9IFU4VE8zMl9MSVRUTEUoayArIDApOworICB4LT5pbnB1dFs5XSA9IFU4VE8zMl9MSVRUTEUoayArIDQpOworICB4LT5pbnB1dFsxMF0gPSBVOFRPMzJfTElUVExFKGsgKyA4KTsKKyAgeC0+aW5wdXRbMTFdID0gVThUTzMyX0xJVFRMRShrICsgMTIpOworICB4LT5pbnB1dFswXSA9IFU4VE8zMl9MSVRUTEUoY29uc3RhbnRzICsgMCk7CisgIHgtPmlucHV0WzFdID0gVThUTzMyX0xJVFRMRShjb25zdGFudHMgKyA0KTsKKyAgeC0+aW5wdXRbMl0gPSBVOFRPMzJfTElUVExFKGNvbnN0YW50cyArIDgpOworICB4LT5pbnB1dFszXSA9IFU4VE8zMl9MSVRUTEUoY29uc3RhbnRzICsgMTIpOworfQorCitzdGF0aWMgdm9pZAorY2hhY2hhX2l2c2V0dXAoY2hhY2hhX2N0eCAqeCxjb25zdCB1OCAqaXYpCit7CisgIHgtPmlucHV0WzEyXSA9IDA7CisgIHgtPmlucHV0WzEzXSA9IDA7CisgIHgtPmlucHV0WzE0XSA9IFU4VE8zMl9MSVRUTEUoaXYgKyAwKTsKKyAgeC0+aW5wdXRbMTVdID0gVThUTzMyX0xJVFRMRShpdiArIDQpOworfQorCitzdGF0aWMgdm9pZAorY2hhY2hhX2VuY3J5cHRfYnl0ZXMoY2hhY2hhX2N0eCAqeCxjb25zdCB1OCAqbSx1OCAqYyx1MzIgYnl0ZXMpCit7CisgIHUzMiB4MCwgeDEsIHgyLCB4MywgeDQsIHg1LCB4NiwgeDcsIHg4LCB4OSwgeDEwLCB4MTEsIHgxMiwgeDEzLCB4MTQsIHgxNTsKKyAgdTMyIGowLCBqMSwgajIsIGozLCBqNCwgajUsIGo2LCBqNywgajgsIGo5LCBqMTAsIGoxMSwgajEyLCBqMTMsIGoxNCwgajE1OworICB1OCAqY3RhcmdldCA9IE5VTEw7CisgIHU4IHRtcFs2NF07CisgIHVfaW50IGk7CisKKyAgaWYgKCFieXRlcykgcmV0dXJuOworCisgIGowID0geC0+aW5wdXRbMF07CisgIGoxID0geC0+aW5wdXRbMV07CisgIGoyID0geC0+aW5wdXRbMl07CisgIGozID0geC0+aW5wdXRbM107CisgIGo0ID0geC0+aW5wdXRbNF07CisgIGo1ID0geC0+aW5wdXRbNV07CisgIGo2ID0geC0+aW5wdXRbNl07CisgIGo3ID0geC0+aW5wdXRbN107CisgIGo4ID0geC0+aW5wdXRbOF07CisgIGo5ID0geC0+aW5wdXRbOV07CisgIGoxMCA9IHgtPmlucHV0WzEwXTsKKyAgajExID0geC0+aW5wdXRbMTFdOworICBqMTIgPSB4LT5pbnB1dFsxMl07CisgIGoxMyA9IHgtPmlucHV0WzEzXTsKKyAgajE0ID0geC0+aW5wdXRbMTRdOworICBqMTUgPSB4LT5pbnB1dFsxNV07CisKKyAgZm9yICg7OykgeworICAgIGlmIChieXRlcyA8IDY0KSB7CisgICAgICBmb3IgKGkgPSAwO2kgPCBieXRlczsrK2kpIHRtcFtpXSA9IG1baV07CisgICAgICBtID0gdG1wOworICAgICAgY3RhcmdldCA9IGM7CisgICAgICBjID0gdG1wOworICAgIH0KKyAgICB4MCA9IGowOworICAgIHgxID0gajE7CisgICAgeDIgPSBqMjsKKyAgICB4MyA9IGozOworICAgIHg0ID0gajQ7CisgICAgeDUgPSBqNTsKKyAgICB4NiA9IGo2OworICAgIHg3ID0gajc7CisgICAgeDggPSBqODsKKyAgICB4OSA9IGo5OworICAgIHgxMCA9IGoxMDsKKyAgICB4MTEgPSBqMTE7CisgICAgeDEyID0gajEyOworICAgIHgxMyA9IGoxMzsKKyAgICB4MTQgPSBqMTQ7CisgICAgeDE1ID0gajE1OworICAgIGZvciAoaSA9IDIwO2kgPiAwO2kgLT0gMikgeworICAgICAgUVVBUlRFUlJPVU5EKCB4MCwgeDQsIHg4LHgxMikKKyAgICAgIFFVQVJURVJST1VORCggeDEsIHg1LCB4OSx4MTMpCisgICAgICBRVUFSVEVSUk9VTkQoIHgyLCB4Nix4MTAseDE0KQorICAgICAgUVVBUlRFUlJPVU5EKCB4MywgeDcseDExLHgxNSkKKyAgICAgIFFVQVJURVJST1VORCggeDAsIHg1LHgxMCx4MTUpCisgICAgICBRVUFSVEVSUk9VTkQoIHgxLCB4Nix4MTEseDEyKQorICAgICAgUVVBUlRFUlJPVU5EKCB4MiwgeDcsIHg4LHgxMykKKyAgICAgIFFVQVJURVJST1VORCggeDMsIHg0LCB4OSx4MTQpCisgICAgfQorICAgIHgwID0gUExVUyh4MCxqMCk7CisgICAgeDEgPSBQTFVTKHgxLGoxKTsKKyAgICB4MiA9IFBMVVMoeDIsajIpOworICAgIHgzID0gUExVUyh4MyxqMyk7CisgICAgeDQgPSBQTFVTKHg0LGo0KTsKKyAgICB4NSA9IFBMVVMoeDUsajUpOworICAgIHg2ID0gUExVUyh4NixqNik7CisgICAgeDcgPSBQTFVTKHg3LGo3KTsKKyAgICB4OCA9IFBMVVMoeDgsajgpOworICAgIHg5ID0gUExVUyh4OSxqOSk7CisgICAgeDEwID0gUExVUyh4MTAsajEwKTsKKyAgICB4MTEgPSBQTFVTKHgxMSxqMTEpOworICAgIHgxMiA9IFBMVVMoeDEyLGoxMik7CisgICAgeDEzID0gUExVUyh4MTMsajEzKTsKKyAgICB4MTQgPSBQTFVTKHgxNCxqMTQpOworICAgIHgxNSA9IFBMVVMoeDE1LGoxNSk7CisKKyNpZm5kZWYgS0VZU1RSRUFNX09OTFkKKyAgICB4MCA9IFhPUih4MCxVOFRPMzJfTElUVExFKG0gKyAwKSk7CisgICAgeDEgPSBYT1IoeDEsVThUTzMyX0xJVFRMRShtICsgNCkpOworICAgIHgyID0gWE9SKHgyLFU4VE8zMl9MSVRUTEUobSArIDgpKTsKKyAgICB4MyA9IFhPUih4MyxVOFRPMzJfTElUVExFKG0gKyAxMikpOworICAgIHg0ID0gWE9SKHg0LFU4VE8zMl9MSVRUTEUobSArIDE2KSk7CisgICAgeDUgPSBYT1IoeDUsVThUTzMyX0xJVFRMRShtICsgMjApKTsKKyAgICB4NiA9IFhPUih4NixVOFRPMzJfTElUVExFKG0gKyAyNCkpOworICAgIHg3ID0gWE9SKHg3LFU4VE8zMl9MSVRUTEUobSArIDI4KSk7CisgICAgeDggPSBYT1IoeDgsVThUTzMyX0xJVFRMRShtICsgMzIpKTsKKyAgICB4OSA9IFhPUih4OSxVOFRPMzJfTElUVExFKG0gKyAzNikpOworICAgIHgxMCA9IFhPUih4MTAsVThUTzMyX0xJVFRMRShtICsgNDApKTsKKyAgICB4MTEgPSBYT1IoeDExLFU4VE8zMl9MSVRUTEUobSArIDQ0KSk7CisgICAgeDEyID0gWE9SKHgxMixVOFRPMzJfTElUVExFKG0gKyA0OCkpOworICAgIHgxMyA9IFhPUih4MTMsVThUTzMyX0xJVFRMRShtICsgNTIpKTsKKyAgICB4MTQgPSBYT1IoeDE0LFU4VE8zMl9MSVRUTEUobSArIDU2KSk7CisgICAgeDE1ID0gWE9SKHgxNSxVOFRPMzJfTElUVExFKG0gKyA2MCkpOworI2VuZGlmCisKKyAgICBqMTIgPSBQTFVTT05FKGoxMik7CisgICAgaWYgKCFqMTIpIHsKKyAgICAgIGoxMyA9IFBMVVNPTkUoajEzKTsKKyAgICAgIC8qIHN0b3BwaW5nIGF0IDJeNzAgYnl0ZXMgcGVyIG5vbmNlIGlzIHVzZXIncyByZXNwb25zaWJpbGl0eSAqLworICAgIH0KKworICAgIFUzMlRPOF9MSVRUTEUoYyArIDAseDApOworICAgIFUzMlRPOF9MSVRUTEUoYyArIDQseDEpOworICAgIFUzMlRPOF9MSVRUTEUoYyArIDgseDIpOworICAgIFUzMlRPOF9MSVRUTEUoYyArIDEyLHgzKTsKKyAgICBVMzJUTzhfTElUVExFKGMgKyAxNix4NCk7CisgICAgVTMyVE84X0xJVFRMRShjICsgMjAseDUpOworICAgIFUzMlRPOF9MSVRUTEUoYyArIDI0LHg2KTsKKyAgICBVMzJUTzhfTElUVExFKGMgKyAyOCx4Nyk7CisgICAgVTMyVE84X0xJVFRMRShjICsgMzIseDgpOworICAgIFUzMlRPOF9MSVRUTEUoYyArIDM2LHg5KTsKKyAgICBVMzJUTzhfTElUVExFKGMgKyA0MCx4MTApOworICAgIFUzMlRPOF9MSVRUTEUoYyArIDQ0LHgxMSk7CisgICAgVTMyVE84X0xJVFRMRShjICsgNDgseDEyKTsKKyAgICBVMzJUTzhfTElUVExFKGMgKyA1Mix4MTMpOworICAgIFUzMlRPOF9MSVRUTEUoYyArIDU2LHgxNCk7CisgICAgVTMyVE84X0xJVFRMRShjICsgNjAseDE1KTsKKworICAgIGlmIChieXRlcyA8PSA2NCkgeworICAgICAgaWYgKGJ5dGVzIDwgNjQpIHsKKyAgICAgICAgZm9yIChpID0gMDtpIDwgYnl0ZXM7KytpKSBjdGFyZ2V0W2ldID0gY1tpXTsKKyAgICAgIH0KKyAgICAgIHgtPmlucHV0WzEyXSA9IGoxMjsKKyAgICAgIHgtPmlucHV0WzEzXSA9IGoxMzsKKyAgICAgIHJldHVybjsKKyAgICB9CisgICAgYnl0ZXMgLT0gNjQ7CisgICAgYyArPSA2NDsKKyNpZm5kZWYgS0VZU1RSRUFNX09OTFkKKyAgICBtICs9IDY0OworI2VuZGlmCisgIH0KK30KZGlmZiAtLWdpdCBhL2xpYmMvdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdHJpbmcvd2Nzd2NzLmMgYi9saWJjL3Vwc3RyZWFtLW9wZW5ic2QvbGliL2xpYmMvc3RyaW5nL3djc3djcy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDM1NjA1Li4wMDAwMDAwCi0tLSBhL2xpYmMvdXBzdHJlYW0tb3BlbmJzZC9saWIvbGliYy9zdHJpbmcvd2Nzd2NzLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLS8qCSRPcGVuQlNEOiB3Y3N3Y3MuYyx2IDEuMSAyMDA1LzA0LzEzIDE2OjM1OjU4IGVzcGllIEV4cCAkCSovCi0vKiAkTmV0QlNEOiB3Y3N3Y3MuYyx2IDEuMSAyMDAzLzAzLzA1IDIwOjE4OjE3IHRzaGlvemFrIEV4cCAkICovCi0KLSNkZWZpbmUgV0NTV0NTCi0jaW5jbHVkZSAid2Nzc3RyLmMiCmRpZmYgLS1naXQgYS9saWJjL3pvbmVpbmZvL3R6ZGF0YSBiL2xpYmMvem9uZWluZm8vdHpkYXRhCmluZGV4IGIzYzk0NDQuLmE1YWUxZjYgMTAwNjQ0Ci0tLSBhL2xpYmMvem9uZWluZm8vdHpkYXRhCisrKyBiL2xpYmMvem9uZWluZm8vdHpkYXRhCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2xpYm0vQW5kcm9pZC5tayBiL2xpYm0vQW5kcm9pZC5tawppbmRleCBiNjczOTVmLi45MGI0OTA2IDEwMDY0NAotLS0gYS9saWJtL0FuZHJvaWQubWsKKysrIGIvbGlibS9BbmRyb2lkLm1rCkBAIC0xLDMgKzEsNCBAQAoraWZuZXEgKCQoVEFSR0VUX1VTRV9QUklWQVRFX0xJQk0pLHRydWUpCiBMT0NBTF9QQVRIOj0gJChjYWxsIG15LWRpcikKIAogIyBUT0RPOiB0aGlzIGNvbWVzIGZyb20gZnJvbSB1cHN0cmVhbSdzIGxpYmMsIG5vdCBsaWJtLCBidXQgaXQncyBhbgpAQCAtMjkxLDMgKzI5Miw0IEBACiBMT0NBTF9TWVNURU1fU0hBUkVEX0xJQlJBUklFUyA6PSBsaWJjCiBMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IGxpYm0KIGluY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKK2VuZGlmCmRpZmYgLS1naXQgYS9saWJtL2FtZDY0L2ZlbnYuYyBiL2xpYm0vYW1kNjQvZmVudi5jCmluZGV4IGIwNThkZTIuLjRiMjRmZjkgMTAwNzU1Ci0tLSBhL2xpYm0vYW1kNjQvZmVudi5jCisrKyBiL2xpYm0vYW1kNjQvZmVudi5jCkBAIC0zMCw2ICszMCwxNSBAQAogI2luY2x1ZGUgPGZlbnYuaD4KICNpbmNsdWRlIDxtYWNoaW5lL2ZwdS5oPgogCisjZGVmaW5lIFNTRV9NQVNLX1NISUZUIDcKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgc3ltYm9sIGlzIHNpbXBseSB0aGUgYml0d2lzZS1pbmNsdXNpdmUgT1Igb2YgYWxsIGZsb2F0aW5nLXBvaW50CisgKiByb3VuZGluZyBkaXJlY3Rpb24gY29uc3RhbnRzIGRlZmluZWQgYWJvdmUuCisgKi8KKyNkZWZpbmUgWDg3X1JPVU5EX01BU0sgIChGRV9UT05FQVJFU1QgfCBGRV9ET1dOV0FSRCB8IEZFX1VQV0FSRCB8IEZFX1RPV0FSRFpFUk8pCisjZGVmaW5lIFNTRV9ST1VORF9TSElGVCAzCisKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGNvbnN0YW50IHJlcHJlc2VudHMgdGhlIGRlZmF1bHQgZmxvYXRpbmctcG9pbnQgZW52aXJvbm1lbnQKICAqICh0aGF0IGlzLCB0aGUgb25lIGluc3RhbGxlZCBhdCBwcm9ncmFtIHN0YXJ0dXApIGFuZCBoYXMgdHlwZSBwb2ludGVyIHRvCkBAIC0yMDMsNyArMjEyLDcgQEAKICAgICovCiAgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKGNvbnRyb2wpKTsKIAotICByZXR1cm4gKGNvbnRyb2wgJiBfWDg3X1JPVU5EX01BU0spOworICByZXR1cm4gKGNvbnRyb2wgJiBYODdfUk9VTkRfTUFTSyk7CiB9CiAKIC8qCkBAIC0yMTgsMTQgKzIyNywxNCBAQAogICB1bnNpZ25lZCBpbnQgbXhjc3I7CiAKICAgLyogQ2hlY2sgd2hldGhlciByZXF1ZXN0ZWQgcm91bmRpbmcgZGlyZWN0aW9uIGlzIHN1cHBvcnRlZCAqLwotICBpZiAocm91bmQgJiB+X1g4N19ST1VORF9NQVNLKQorICBpZiAocm91bmQgJiB+WDg3X1JPVU5EX01BU0spCiAgICAgcmV0dXJuICgtMSk7CiAKICAgLyogU3RvcmUgdGhlIGN1cnJlbnQgeDg3IGNvbnRyb2wgd29yZCByZWdpc3RlciAqLwogICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iIChjb250cm9sKSk7CiAKICAgLyogU2V0IHRoZSByb3VuZGluZyBkaXJlY3Rpb24gKi8KLSAgY29udHJvbCAmPSB+X1g4N19ST1VORF9NQVNLOworICBjb250cm9sICY9IH5YODdfUk9VTkRfTUFTSzsKICAgY29udHJvbCB8PSByb3VuZDsKIAogICAvKiBMb2FkIHRoZSB4ODcgY29udHJvbCB3b3JkIHJlZ2lzdGVyICovCkBAIC0yMzMsOCArMjQyLDggQEAKIAogICAvKiBTYW1lIGZvciB0aGUgU1NFIGVudmlyb25tZW50ICovCiAgIF9fYXNtX18gX192b2xhdGlsZV9fICgic3RteGNzciAlMCIgOiAiPW0iIChteGNzcikpOwotICBteGNzciAmPSB+KF9YODdfUk9VTkRfTUFTSyA8PCBfU1NFX1JPVU5EX1NISUZUKTsKLSAgbXhjc3IgfD0gcm91bmQgPDwgX1NTRV9ST1VORF9TSElGVDsKKyAgbXhjc3IgJj0gfihYODdfUk9VTkRfTUFTSyA8PCBTU0VfUk9VTkRfU0hJRlQpOworICBteGNzciB8PSByb3VuZCA8PCBTU0VfUk9VTkRfU0hJRlQ7CiAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibGRteGNzciAlMCIgOiA6ICJtIiAobXhjc3IpKTsKIAogICByZXR1cm4gKDApOwpAQCAtMjkxLDcgKzMwMCw3IEBACiAgIG14Y3NyICY9IH5GRV9BTExfRVhDRVBUOwogCiAgIC8qIE1hc2sgYWxsIGV4Y2VwdGlvbnMgKi8KLSAgbXhjc3IgfD0gRkVfQUxMX0VYQ0VQVCA8PCBfU1NFX01BU0tfU0hJRlQ7CisgIG14Y3NyIHw9IEZFX0FMTF9FWENFUFQgPDwgU1NFX01BU0tfU0hJRlQ7CiAKICAgLyogU3RvcmUgdGhlIE1YQ1NSIHJlZ2lzdGVyICovCiAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibGRteGNzciAlMCIgOiA6ICJtIiAobXhjc3IpKTsKQEAgLTM2MiwxMSArMzcxLDExIEBACiAgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKGNvbnRyb2wpKTsKICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzdG14Y3NyICUwIiA6ICI9bSIgKG14Y3NyKSk7CiAKLSAgb21hc2sgPSB+KGNvbnRyb2wgfCAobXhjc3IgPj4gX1NTRV9NQVNLX1NISUZUKSkgJiBGRV9BTExfRVhDRVBUOworICBvbWFzayA9IH4oY29udHJvbCB8IChteGNzciA+PiBTU0VfTUFTS19TSElGVCkpICYgRkVfQUxMX0VYQ0VQVDsKICAgY29udHJvbCAmPSB+bWFzazsKICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoY29udHJvbCkpOwogCi0gIG14Y3NyICY9IH4obWFzayA8PCBfU1NFX01BU0tfU0hJRlQpOworICBteGNzciAmPSB+KG1hc2sgPDwgU1NFX01BU0tfU0hJRlQpOwogICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxkbXhjc3IgJTAiIDogOiAibSIgKG14Y3NyKSk7CiAKICAgcmV0dXJuIChvbWFzayk7CkBAIC0zODMsMTEgKzM5MiwxMSBAQAogICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iIChjb250cm9sKSk7CiAgIF9fYXNtX18gX192b2xhdGlsZV9fICgic3RteGNzciAlMCIgOiAiPW0iIChteGNzcikpOwogCi0gIG9tYXNrID0gfihjb250cm9sIHwgKG14Y3NyID4+IF9TU0VfTUFTS19TSElGVCkpICYgRkVfQUxMX0VYQ0VQVDsKKyAgb21hc2sgPSB+KGNvbnRyb2wgfCAobXhjc3IgPj4gU1NFX01BU0tfU0hJRlQpKSAmIEZFX0FMTF9FWENFUFQ7CiAgIGNvbnRyb2wgfD0gbWFzazsKICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoY29udHJvbCkpOwogCi0gIG14Y3NyIHw9IG1hc2sgPDwgX1NTRV9NQVNLX1NISUZUOworICBteGNzciB8PSBtYXNrIDw8IFNTRV9NQVNLX1NISUZUOwogICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImxkbXhjc3IgJTAiIDogOiAibSIgKG14Y3NyKSk7CiAKICAgcmV0dXJuIChvbWFzayk7CmRpZmYgLS1naXQgYS9saWJtL2FybS9mZW52LmMgYi9saWJtL2FybS9mZW52LmMKaW5kZXggYTAxMDhlOC4uMjEyNDczMCAxMDA2NDQKLS0tIGEvbGlibS9hcm0vZmVudi5jCisrKyBiL2xpYm0vYXJtL2ZlbnYuYwpAQCAtMjgsMTAgKzI4LDExIEBACiAKICNpbmNsdWRlIDxmZW52Lmg+CiAKLS8qCi0gKiBIb3BlZnVsbHkgdGhlIHN5c3RlbSBJRCBieXRlIGlzIGltbXV0YWJsZSwgc28gaXQncyB2YWxpZCB0byB1c2UKLSAqIHRoaXMgYXMgYSBkZWZhdWx0IGVudmlyb25tZW50LgotICovCisjZGVmaW5lIEZQU0NSX0VOQUJMRV9TSElGVCA4CisjZGVmaW5lIEZQU0NSX0VOQUJMRV9NQVNLICAoRkVfQUxMX0VYQ0VQVCA8PCBGUFNDUl9FTkFCTEVfU0hJRlQpCisKKyNkZWZpbmUgRlBTQ1JfUk1PREVfU0hJRlQgMjIKKwogY29uc3QgZmVudl90IF9fZmVfZGZsX2VudiA9IDA7CiAKIGludCBmZWdldGVudihmZW52X3QqIF9fZW52cCkgewpAQCAtODYsMTQgKzg3LDE0IEBACiBpbnQgZmVnZXRyb3VuZCh2b2lkKSB7CiAgIGZlbnZfdCBfZnBzY3I7CiAgIGZlZ2V0ZW52KCZfZnBzY3IpOwotICByZXR1cm4gKChfZnBzY3IgPj4gX0ZQU0NSX1JNT0RFX1NISUZUKSAmIDB4Myk7CisgIHJldHVybiAoKF9mcHNjciA+PiBGUFNDUl9STU9ERV9TSElGVCkgJiAweDMpOwogfQogCiBpbnQgZmVzZXRyb3VuZChpbnQgX19yb3VuZCkgewogICBmZW52X3QgX2Zwc2NyOwogICBmZWdldGVudigmX2Zwc2NyKTsKLSAgX2Zwc2NyICY9IH4oMHgzIDw8IF9GUFNDUl9STU9ERV9TSElGVCk7Ci0gIF9mcHNjciB8PSAoX19yb3VuZCA8PCBfRlBTQ1JfUk1PREVfU0hJRlQpOworICBfZnBzY3IgJj0gfigweDMgPDwgRlBTQ1JfUk1PREVfU0hJRlQpOworICBfZnBzY3IgfD0gKF9fcm91bmQgPDwgRlBTQ1JfUk1PREVfU0hJRlQpOwogICBmZXNldGVudigmX2Zwc2NyKTsKICAgcmV0dXJuIDA7CiB9CkBAIC0xMDIsNyArMTAzLDcgQEAKICAgZmVudl90IF9fZW52OwogICBmZWdldGVudigmX19lbnYpOwogICAqX19lbnZwID0gX19lbnY7Ci0gIF9fZW52ICY9IH4oRkVfQUxMX0VYQ0VQVCB8IF9GUFNDUl9FTkFCTEVfTUFTSyk7CisgIF9fZW52ICY9IH4oRkVfQUxMX0VYQ0VQVCB8IEZQU0NSX0VOQUJMRV9NQVNLKTsKICAgZmVzZXRlbnYoJl9fZW52KTsKICAgcmV0dXJuIDA7CiB9CkBAIC0xMTgsMjEgKzExOSwyMSBAQAogaW50IGZlZW5hYmxlZXhjZXB0KGludCBfX21hc2spIHsKICAgZmVudl90IF9fb2xkX2Zwc2NyLCBfX25ld19mcHNjcjsKICAgZmVnZXRlbnYoJl9fb2xkX2Zwc2NyKTsKLSAgX19uZXdfZnBzY3IgPSBfX29sZF9mcHNjciB8IChfX21hc2sgJiBGRV9BTExfRVhDRVBUKSA8PCBfRlBTQ1JfRU5BQkxFX1NISUZUOworICBfX25ld19mcHNjciA9IF9fb2xkX2Zwc2NyIHwgKF9fbWFzayAmIEZFX0FMTF9FWENFUFQpIDw8IEZQU0NSX0VOQUJMRV9TSElGVDsKICAgZmVzZXRlbnYoJl9fbmV3X2Zwc2NyKTsKLSAgcmV0dXJuICgoX19vbGRfZnBzY3IgPj4gX0ZQU0NSX0VOQUJMRV9TSElGVCkgJiBGRV9BTExfRVhDRVBUKTsKKyAgcmV0dXJuICgoX19vbGRfZnBzY3IgPj4gRlBTQ1JfRU5BQkxFX1NISUZUKSAmIEZFX0FMTF9FWENFUFQpOwogfQogCiBpbnQgZmVkaXNhYmxlZXhjZXB0KGludCBfX21hc2spIHsKICAgZmVudl90IF9fb2xkX2Zwc2NyLCBfX25ld19mcHNjcjsKICAgZmVnZXRlbnYoJl9fb2xkX2Zwc2NyKTsKLSAgX19uZXdfZnBzY3IgPSBfX29sZF9mcHNjciAmIH4oKF9fbWFzayAmIEZFX0FMTF9FWENFUFQpIDw8IF9GUFNDUl9FTkFCTEVfU0hJRlQpOworICBfX25ld19mcHNjciA9IF9fb2xkX2Zwc2NyICYgfigoX19tYXNrICYgRkVfQUxMX0VYQ0VQVCkgPDwgRlBTQ1JfRU5BQkxFX1NISUZUKTsKICAgZmVzZXRlbnYoJl9fbmV3X2Zwc2NyKTsKLSAgcmV0dXJuICgoX19vbGRfZnBzY3IgPj4gX0ZQU0NSX0VOQUJMRV9TSElGVCkgJiBGRV9BTExfRVhDRVBUKTsKKyAgcmV0dXJuICgoX19vbGRfZnBzY3IgPj4gRlBTQ1JfRU5BQkxFX1NISUZUKSAmIEZFX0FMTF9FWENFUFQpOwogfQogCiBpbnQgZmVnZXRleGNlcHQodm9pZCkgewogICBmZW52X3QgX19mcHNjcjsKICAgZmVnZXRlbnYoJl9fZnBzY3IpOwotICByZXR1cm4gKChfX2Zwc2NyICYgX0ZQU0NSX0VOQUJMRV9NQVNLKSA+PiBfRlBTQ1JfRU5BQkxFX1NISUZUKTsKKyAgcmV0dXJuICgoX19mcHNjciAmIEZQU0NSX0VOQUJMRV9NQVNLKSA+PiBGUFNDUl9FTkFCTEVfU0hJRlQpOwogfQpkaWZmIC0tZ2l0IGEvbGlibS9hcm02NC9mZW52LmMgYi9saWJtL2FybTY0L2ZlbnYuYwppbmRleCA5ZGIyMWVmLi5jZTU2MGE3IDEwMDY0NAotLS0gYS9saWJtL2FybTY0L2ZlbnYuYworKysgYi9saWJtL2FybTY0L2ZlbnYuYwpAQCAtMjgsMTE0ICsyOCwxNjggQEAKIAogI2luY2x1ZGUgPGZlbnYuaD4KIAotLyoKLSAqIEhvcGVmdWxseSB0aGUgc3lzdGVtIElEIGJ5dGUgaXMgaW1tdXRhYmxlLCBzbyBpdCdzIHZhbGlkIHRvIHVzZQotICogdGhpcyBhcyBhIGRlZmF1bHQgZW52aXJvbm1lbnQuCi0gKi8KLWNvbnN0IGZlbnZfdCBfX2ZlX2RmbF9lbnYgPSAwOworI2RlZmluZSBGUENSX0VYQ0VQVF9TSElGVCA4CisjZGVmaW5lIEZQQ1JfRVhDRVBUX01BU0sgIChGRV9BTExfRVhDRVBUIDw8IEZQQ1JfRVhDRVBUX1NISUZUKQogCi1pbnQgZmVnZXRlbnYoZmVudl90KiBfX2VudnApIHsKLSAgZmVudl90IF9mcGNyLCBfZnBzcjsKLSAgX19hc21fXyBfX3ZvbGF0aWxlX18oIm1ycyAlMCxmcGNyIiA6ICI9ciIgKF9mcGNyKSk7Ci0gIF9fYXNtX18gX192b2xhdGlsZV9fKCJtcnMgJTAsZnBzciIgOiAiPXIiIChfZnBzcikpOwotICAqX19lbnZwID0gKF9mcGNyIHwgX2Zwc3IpOworI2RlZmluZSBGUENSX1JNT0RFX1NISUZUIDIyCisKK2NvbnN0IGZlbnZfdCBfX2ZlX2RmbF9lbnYgPSB7IDAgLyogY29udHJvbCAqLywgMCAvKiBzdGF0dXMgKi99OworCit0eXBlZGVmIF9fdWludDMyX3QgZnB1X2NvbnRyb2xfdDsgICAvLyBGUENSLCBGbG9hdGluZy1wb2ludCBDb250cm9sIFJlZ2lzdGVyLgordHlwZWRlZiBfX3VpbnQzMl90IGZwdV9zdGF0dXNfdDsgICAgLy8gRlBTUiwgRmxvYXRpbmctcG9pbnQgU3RhdHVzIFJlZ2lzdGVyLgorCisjZGVmaW5lIF9fZ2V0X2ZwY3IoX19mcGNyKSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibXJzICUwLGZwY3IiIDogIj1yIiAoX19mcGNyKSkKKyNkZWZpbmUgX19nZXRfZnBzcihfX2Zwc3IpIF9fYXNtX18gX192b2xhdGlsZV9fKCJtcnMgJTAsZnBzciIgOiAiPXIiIChfX2Zwc3IpKQorI2RlZmluZSBfX3NldF9mcGNyKF9fZnBjcikgX19hc21fXyBfX3ZvbGF0aWxlX18oIm1zciBmcGNyLCUwIiA6IDoicmkiIChfX2ZwY3IpKQorI2RlZmluZSBfX3NldF9mcHNyKF9fZnBzcikgX19hc21fXyBfX3ZvbGF0aWxlX18oIm1zciBmcHNyLCUwIiA6IDoicmkiIChfX2Zwc3IpKQorCitpbnQgZmVnZXRlbnYoZmVudl90KiBlbnZwKSB7CisgIF9fZ2V0X2ZwY3IoZW52cC0+X19jb250cm9sKTsKKyAgX19nZXRfZnBzcihlbnZwLT5fX3N0YXR1cyk7CiAgIHJldHVybiAwOwogfQogCi1pbnQgZmVzZXRlbnYoY29uc3QgZmVudl90KiBfX2VudnApIHsKLSAgZmVudl90IF9mcGNyID0gKCpfX2VudnAgJiBGUENSX01BU0spOwotICBmZW52X3QgX2Zwc3IgPSAoKl9fZW52cCAmIEZQU1JfTUFTSyk7Ci0gIF9fYXNtX18gX192b2xhdGlsZV9fKCJtc3IgZnBjciwlMCIgOiA6InJpIiAoX2ZwY3IpKTsKLSAgX19hc21fXyBfX3ZvbGF0aWxlX18oIm1zciBmcHNyLCUwIiA6IDoicmkiIChfZnBzcikpOworaW50IGZlc2V0ZW52KGNvbnN0IGZlbnZfdCogZW52cCkgeworICBmcHVfY29udHJvbF90IGZwY3I7CisKKyAgX19nZXRfZnBjcihmcGNyKTsKKyAgaWYgKGVudnAtPl9fY29udHJvbCAhPSBmcGNyKSB7CisgICAgX19zZXRfZnBjcihlbnZwLT5fX2NvbnRyb2wpOworICB9CisgIF9fc2V0X2Zwc3IoZW52cC0+X19zdGF0dXMpOwogICByZXR1cm4gMDsKIH0KIAotaW50IGZlY2xlYXJleGNlcHQoaW50IF9fZXhjZXB0cykgewotICBmZXhjZXB0X3QgX19mcHNjcjsKLSAgZmVnZXRlbnYoJl9fZnBzY3IpOwotICBfX2Zwc2NyICY9IH5fX2V4Y2VwdHM7Ci0gIGZlc2V0ZW52KCZfX2Zwc2NyKTsKK2ludCBmZWNsZWFyZXhjZXB0KGludCBleGNlcHRzKSB7CisgIGZwdV9zdGF0dXNfdCBmcHNyOworCisgIGV4Y2VwdHMgJj0gRkVfQUxMX0VYQ0VQVDsKKyAgX19nZXRfZnBzcihmcHNyKTsKKyAgZnBzciAmPSB+ZXhjZXB0czsKKyAgX19zZXRfZnBzcihmcHNyKTsKICAgcmV0dXJuIDA7CiB9CiAKLWludCBmZWdldGV4Y2VwdGZsYWcoZmV4Y2VwdF90KiBfX2ZsYWdwLCBpbnQgX19leGNlcHRzKSB7Ci0gIGZleGNlcHRfdCBfX2Zwc2NyOwotICBmZWdldGVudigmX19mcHNjcik7Ci0gICpfX2ZsYWdwID0gX19mcHNjciAmIF9fZXhjZXB0czsKK2ludCBmZWdldGV4Y2VwdGZsYWcoZmV4Y2VwdF90KiBmbGFncCwgaW50IGV4Y2VwdHMpIHsKKyAgZnB1X3N0YXR1c190IGZwc3I7CisKKyAgZXhjZXB0cyAmPSBGRV9BTExfRVhDRVBUOworICBfX2dldF9mcHNyKGZwc3IpOworICAqZmxhZ3AgPSBmcHNyICYgZXhjZXB0czsKICAgcmV0dXJuIDA7CiB9CiAKLWludCBmZXNldGV4Y2VwdGZsYWcoY29uc3QgZmV4Y2VwdF90KiBfX2ZsYWdwLCBpbnQgX19leGNlcHRzKSB7Ci0gIGZleGNlcHRfdCBfX2Zwc2NyOwotICBmZWdldGVudigmX19mcHNjcik7Ci0gIF9fZnBzY3IgJj0gfl9fZXhjZXB0czsKLSAgX19mcHNjciB8PSAqX19mbGFncCAmIF9fZXhjZXB0czsKLSAgZmVzZXRlbnYoJl9fZnBzY3IpOworaW50IGZlc2V0ZXhjZXB0ZmxhZyhjb25zdCBmZXhjZXB0X3QqIGZsYWdwLCBpbnQgZXhjZXB0cykgeworICBmcHVfc3RhdHVzX3QgZnBzcjsKKworICBleGNlcHRzICY9IEZFX0FMTF9FWENFUFQ7CisgIF9fZ2V0X2Zwc3IoZnBzcik7CisgIGZwc3IgJj0gfmV4Y2VwdHM7CisgIGZwc3IgfD0gKmZsYWdwICYgZXhjZXB0czsKKyAgX19zZXRfZnBzcihmcHNyKTsKICAgcmV0dXJuIDA7CiB9CiAKLWludCBmZXJhaXNlZXhjZXB0KGludCBfX2V4Y2VwdHMpIHsKLSAgZmV4Y2VwdF90IF9fZXggPSBfX2V4Y2VwdHM7Ci0gIGZlc2V0ZXhjZXB0ZmxhZygmX19leCwgX19leGNlcHRzKTsKK2ludCBmZXJhaXNlZXhjZXB0KGludCBleGNlcHRzKSB7CisgIGZleGNlcHRfdCBleCA9IGV4Y2VwdHM7CisKKyAgZmVzZXRleGNlcHRmbGFnKCZleCwgZXhjZXB0cyk7CiAgIHJldHVybiAwOwogfQogCi1pbnQgZmV0ZXN0ZXhjZXB0KGludCBfX2V4Y2VwdHMpIHsKLSAgZmV4Y2VwdF90IF9fZnBzY3I7Ci0gIGZlZ2V0ZW52KCZfX2Zwc2NyKTsKLSAgcmV0dXJuIChfX2Zwc2NyICYgX19leGNlcHRzKTsKK2ludCBmZXRlc3RleGNlcHQoaW50IGV4Y2VwdHMpIHsKKyAgZnB1X3N0YXR1c190IGZwc3I7CisKKyAgZXhjZXB0cyAmPSBGRV9BTExfRVhDRVBUOworICBfX2dldF9mcHNyKGZwc3IpOworICByZXR1cm4gKGZwc3IgJiBleGNlcHRzKTsKIH0KIAogaW50IGZlZ2V0cm91bmQodm9pZCkgewotICBmZW52X3QgX2Zwc2NyOwotICBmZWdldGVudigmX2Zwc2NyKTsKLSAgcmV0dXJuICgoX2Zwc2NyID4+IF9GUFNDUl9STU9ERV9TSElGVCkgJiAweDMpOworICBmcHVfY29udHJvbF90IGZwY3I7CisKKyAgX19nZXRfZnBjcihmcGNyKTsKKyAgcmV0dXJuICgoZnBjciA+PiBGUENSX1JNT0RFX1NISUZUKSAmIEZFX1RPV0FSRFpFUk8pOwogfQogCi1pbnQgZmVzZXRyb3VuZChpbnQgX19yb3VuZCkgewotICBmZW52X3QgX2Zwc2NyOwotICBmZWdldGVudigmX2Zwc2NyKTsKLSAgX2Zwc2NyICY9IH4oMHgzIDw8IF9GUFNDUl9STU9ERV9TSElGVCk7Ci0gIF9mcHNjciB8PSAoX19yb3VuZCA8PCBfRlBTQ1JfUk1PREVfU0hJRlQpOwotICBmZXNldGVudigmX2Zwc2NyKTsKK2ludCBmZXNldHJvdW5kKGludCByb3VuZCkgeworICBmcHVfY29udHJvbF90IGZwY3IsIG5ld19mcGNyOworCisgIHJvdW5kICY9IEZFX1RPV0FSRFpFUk87CisgIF9fZ2V0X2ZwY3IoZnBjcik7CisgIG5ld19mcGNyID0gZnBjciAmIH4oRkVfVE9XQVJEWkVSTyA8PCBGUENSX1JNT0RFX1NISUZUKTsKKyAgbmV3X2ZwY3IgfD0gKHJvdW5kIDw8IEZQQ1JfUk1PREVfU0hJRlQpOworICBpZiAobmV3X2ZwY3IgIT0gZnBjcikgeworICAgIF9fc2V0X2ZwY3IobmV3X2ZwY3IpOworICB9CiAgIHJldHVybiAwOwogfQogCi1pbnQgZmVob2xkZXhjZXB0KGZlbnZfdCogX19lbnZwKSB7Ci0gIGZlbnZfdCBfX2VudjsKLSAgZmVnZXRlbnYoJl9fZW52KTsKLSAgKl9fZW52cCA9IF9fZW52OwotICBfX2VudiAmPSB+KEZFX0FMTF9FWENFUFQgfCBfRlBTQ1JfRU5BQkxFX01BU0spOwotICBmZXNldGVudigmX19lbnYpOworaW50IGZlaG9sZGV4Y2VwdChmZW52X3QqIGVudnApIHsKKyAgZmVudl90IGVudjsKKyAgZnB1X3N0YXR1c190IGZwc3I7CisgIGZwdV9jb250cm9sX3QgZnBjciwgbmV3X2ZwY3I7CisKKyAgX19nZXRfZnBzcihmcHNyKTsKKyAgX19nZXRfZnBjcihmcGNyKTsKKyAgZW52Ll9fc3RhdHVzID0gZnBzcjsKKyAgZW52Ll9fY29udHJvbCA9IGZwY3I7CisgICplbnZwID0gZW52OworCisgIC8vIFNldCBleGNlcHRpb25zIHRvIHVudHJhcHBlZC4KKyAgbmV3X2ZwY3IgPSBmcGNyICYgfihGRV9BTExfRVhDRVBUIDw8IEZQQ1JfRVhDRVBUX1NISUZUKTsKKyAgaWYgKG5ld19mcGNyICE9IGZwY3IpIHsKKyAgICBfX3NldF9mcGNyKG5ld19mcGNyKTsKKyAgfQorCisgIC8vIENsZWFyIGFsbCBleGNlcHRpb25zLgorICBmcHNyICY9IH5GRV9BTExfRVhDRVBUOworICBfX3NldF9mcHNyKGZwc3IpOwogICByZXR1cm4gMDsKIH0KIAotaW50IGZldXBkYXRlZW52KGNvbnN0IGZlbnZfdCogX19lbnZwKSB7Ci0gIGZleGNlcHRfdCBfX2Zwc2NyOwotICBmZWdldGVudigmX19mcHNjcik7Ci0gIGZlc2V0ZW52KF9fZW52cCk7Ci0gIGZlcmFpc2VleGNlcHQoX19mcHNjciAmIEZFX0FMTF9FWENFUFQpOworaW50IGZldXBkYXRlZW52KGNvbnN0IGZlbnZfdCogZW52cCkgeworICBmcHVfc3RhdHVzX3QgZnBzcjsKKyAgZnB1X2NvbnRyb2xfdCBmcGNyOworCisgIC8vIFNldCBGUFUgQ29udHJvbCByZWdpc3Rlci4KKyAgX19nZXRfZnBjcihmcGNyKTsKKyAgaWYgKGVudnAtPl9fY29udHJvbCAhPSBmcGNyKSB7CisgICAgX19zZXRfZnBjcihlbnZwLT5fX2NvbnRyb2wpOworICB9CisKKyAgLy8gU2V0IEZQVSBTdGF0dXMgcmVnaXN0ZXIgdG8gc3RhdHVzIHwgY3VycmVudGx5IHJhaXNlZCBleGNlcHRpb25zLgorICBfX2dldF9mcHNyKGZwc3IpOworICBmcHNyID0gZW52cC0+X19zdGF0dXMgfCAoZnBzciAmIEZFX0FMTF9FWENFUFQpOworICBfX3NldF9mcHNyKGZwc3IpOwogICByZXR1cm4gMDsKIH0KIAotaW50IGZlZW5hYmxlZXhjZXB0KGludCBfX21hc2spIHsKLSAgZmVudl90IF9fb2xkX2Zwc2NyLCBfX25ld19mcHNjcjsKLSAgZmVnZXRlbnYoJl9fb2xkX2Zwc2NyKTsKLSAgX19uZXdfZnBzY3IgPSBfX29sZF9mcHNjciB8IChfX21hc2sgJiBGRV9BTExfRVhDRVBUKSA8PCBfRlBTQ1JfRU5BQkxFX1NISUZUOwotICBmZXNldGVudigmX19uZXdfZnBzY3IpOwotICByZXR1cm4gKChfX29sZF9mcHNjciA+PiBfRlBTQ1JfRU5BQkxFX1NISUZUKSAmIEZFX0FMTF9FWENFUFQpOworaW50IGZlZW5hYmxlZXhjZXB0KGludCBtYXNrKSB7CisgIGZwdV9jb250cm9sX3Qgb2xkX2ZwY3IsIG5ld19mcGNyOworCisgIF9fZ2V0X2ZwY3Iob2xkX2ZwY3IpOworICBuZXdfZnBjciA9IG9sZF9mcGNyIHwgKChtYXNrICYgRkVfQUxMX0VYQ0VQVCkgPDwgRlBDUl9FWENFUFRfU0hJRlQpOworICBpZiAobmV3X2ZwY3IgIT0gb2xkX2ZwY3IpIHsKKyAgICBfX3NldF9mcGNyKG5ld19mcGNyKTsKKyAgfQorICByZXR1cm4gKChvbGRfZnBjciA+PiBGUENSX0VYQ0VQVF9TSElGVCkgJiBGRV9BTExfRVhDRVBUKTsKIH0KIAotaW50IGZlZGlzYWJsZWV4Y2VwdChpbnQgX19tYXNrKSB7Ci0gIGZlbnZfdCBfX29sZF9mcHNjciwgX19uZXdfZnBzY3I7Ci0gIGZlZ2V0ZW52KCZfX29sZF9mcHNjcik7Ci0gIF9fbmV3X2Zwc2NyID0gX19vbGRfZnBzY3IgJiB+KChfX21hc2sgJiBGRV9BTExfRVhDRVBUKSA8PCBfRlBTQ1JfRU5BQkxFX1NISUZUKTsKLSAgZmVzZXRlbnYoJl9fbmV3X2Zwc2NyKTsKLSAgcmV0dXJuICgoX19vbGRfZnBzY3IgPj4gX0ZQU0NSX0VOQUJMRV9TSElGVCkgJiBGRV9BTExfRVhDRVBUKTsKK2ludCBmZWRpc2FibGVleGNlcHQoaW50IG1hc2spIHsKKyAgZnB1X2NvbnRyb2xfdCBvbGRfZnBjciwgbmV3X2ZwY3I7CisKKyAgX19nZXRfZnBjcihvbGRfZnBjcik7CisgIG5ld19mcGNyID0gb2xkX2ZwY3IgJiB+KChtYXNrICYgRkVfQUxMX0VYQ0VQVCkgPDwgRlBDUl9FWENFUFRfU0hJRlQpOworICBpZiAobmV3X2ZwY3IgIT0gb2xkX2ZwY3IpIHsKKyAgICBfX3NldF9mcGNyKG5ld19mcGNyKTsKKyAgfQorICByZXR1cm4gKChvbGRfZnBjciA+PiBGUENSX0VYQ0VQVF9TSElGVCkgJiBGRV9BTExfRVhDRVBUKTsKIH0KIAogaW50IGZlZ2V0ZXhjZXB0KHZvaWQpIHsKLSAgZmVudl90IF9fZnBzY3I7Ci0gIGZlZ2V0ZW52KCZfX2Zwc2NyKTsKLSAgcmV0dXJuICgoX19mcHNjciAmIF9GUFNDUl9FTkFCTEVfTUFTSykgPj4gX0ZQU0NSX0VOQUJMRV9TSElGVCk7CisgIGZwdV9jb250cm9sX3QgZnBjcjsKKworICBfX2dldF9mcGNyKGZwY3IpOworICByZXR1cm4gKChmcGNyICYgRlBDUl9FWENFUFRfTUFTSykgPj4gRlBDUl9FWENFUFRfU0hJRlQpOwogfQpkaWZmIC0tZ2l0IGEvbGlibS9pMzg3L2ZlbnYuYyBiL2xpYm0vaTM4Ny9mZW52LmMKaW5kZXggM2FiOWM1OC4uZjY0ZjhkYyAxMDA2NDQKLS0tIGEvbGlibS9pMzg3L2ZlbnYuYworKysgYi9saWJtL2kzODcvZmVudi5jCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAibnB4LmgiCiAjaW5jbHVkZSAiZmVudi5oIgogCisjZGVmaW5lIFJPVU5EX01BU0sgICAoRkVfVE9ORUFSRVNUIHwgRkVfRE9XTldBUkQgfCBGRV9VUFdBUkQgfCBGRV9UT1dBUkRaRVJPKQorCiAvKgogICogQXMgY29tcGFyZWQgdG8gdGhlIHg4NyBjb250cm9sIHdvcmQsIHRoZSBTU0UgdW5pdCdzIGNvbnRyb2wgd29yZAogICogaGFzIHRoZSByb3VuZGluZyBjb250cm9sIGJpdHMgb2Zmc2V0IGJ5IDMgYW5kIHRoZSBleGNlcHRpb24gbWFzawpAQCAtMzI3LDcgKzMyOSw3IEBACiAgICAqIHVuaXQgb24gYW4gT3B0ZXJvbiAyNDQuCiAgICAqLwogICBfX2Zuc3RjdygmY29udHJvbCk7Ci0gIHJldHVybiAoY29udHJvbCAmIF9ST1VORF9NQVNLKTsKKyAgcmV0dXJuIChjb250cm9sICYgUk9VTkRfTUFTSyk7CiB9CiAKIGludApAQCAtMzM2LDE2ICszMzgsMTYgQEAKICAgX191aW50MzJfdCBteGNzcjsKICAgX191aW50MTZfdCBjb250cm9sOwogCi0gIGlmIChyb3VuZCAmIH5fUk9VTkRfTUFTSykgeworICBpZiAocm91bmQgJiB+Uk9VTkRfTUFTSykgewogICAgIHJldHVybiAoLTEpOwogICB9IGVsc2UgewogICAgIF9fZm5zdGN3KCZjb250cm9sKTsKLSAgICBjb250cm9sICY9IH5fUk9VTkRfTUFTSzsKKyAgICBjb250cm9sICY9IH5ST1VORF9NQVNLOwogICAgIGNvbnRyb2wgfD0gcm91bmQ7CiAgICAgX19mbGRjdyhjb250cm9sKTsKICAgICBpZiAoX19IQVNfU1NFKCkpIHsKICAgICAgIF9fc3RteGNzcigmbXhjc3IpOwotICAgICAgbXhjc3IgJj0gfihfUk9VTkRfTUFTSyA8PCBfU1NFX1JPVU5EX1NISUZUKTsKKyAgICAgIG14Y3NyICY9IH4oUk9VTkRfTUFTSyA8PCBfU1NFX1JPVU5EX1NISUZUKTsKICAgICAgIG14Y3NyIHw9IHJvdW5kIDw8IF9TU0VfUk9VTkRfU0hJRlQ7CiAgICAgICBfX2xkbXhjc3IobXhjc3IpOwogICAgIH0KZGlmZiAtLWdpdCBhL2xpYm0vaW5jbHVkZS9hbWQ2NC9tYWNoaW5lL2ZlbnYuaCBiL2xpYm0vaW5jbHVkZS9hbWQ2NC9tYWNoaW5lL2ZlbnYuaAppbmRleCA3OWE0MTIwLi5jMmIyNWVkIDEwMDY0NAotLS0gYS9saWJtL2luY2x1ZGUvYW1kNjQvbWFjaGluZS9mZW52LmgKKysrIGIvbGlibS9pbmNsdWRlL2FtZDY0L21hY2hpbmUvZmVudi5oCkBAIC01MSw3ICs1MSw2IEBACiAgKi8KICNkZWZpbmUgRkVfQUxMX0VYQ0VQVCAgIChGRV9JTlZBTElEIHwgRkVfREVOT1JNQUwgfCBGRV9ESVZCWVpFUk8gfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgRkVfT1ZFUkZMT1cgfCBGRV9VTkRFUkZMT1cgfCBGRV9JTkVYQUNUKQotI2RlZmluZSBfU1NFX01BU0tfU0hJRlQgNwogCiAvKgogICogRWFjaCBzeW1ib2wgcmVwcmVzZW50aW5nIHRoZSByb3VuZGluZyBkaXJlY3Rpb24sIGV4cGFuZHMgdG8gYW4gaW50ZWdlcgpAQCAtNjUsMTQgKzY0LDYgQEAKICNkZWZpbmUgRkVfVE9XQVJEWkVSTyAweGMwMAogCiAvKgotICogVGhlIGZvbGxvd2luZyBzeW1ib2wgaXMgc2ltcGx5IHRoZSBiaXR3aXNlLWluY2x1c2l2ZSBPUiBvZiBhbGwgZmxvYXRpbmctcG9pbnQKLSAqIHJvdW5kaW5nIGRpcmVjdGlvbiBjb25zdGFudHMgZGVmaW5lZCBhYm92ZS4KLSAqLwotI2RlZmluZSBfWDg3X1JPVU5EX01BU0sgIChGRV9UT05FQVJFU1QgfCBGRV9ET1dOV0FSRCB8IEZFX1VQV0FSRCB8IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgRkVfVE9XQVJEWkVSTykKLSNkZWZpbmUgX1NTRV9ST1VORF9TSElGVCAzCi0KLS8qCiAgKiBmZW52X3QgcmVwcmVzZW50cyB0aGUgZW50aXJlIGZsb2F0aW5nLXBvaW50IGVudmlyb25tZW50LgogICovCiB0eXBlZGVmIHN0cnVjdCB7CmRpZmYgLS1naXQgYS9saWJtL2luY2x1ZGUvYXJtL21hY2hpbmUvZmVudi5oIGIvbGlibS9pbmNsdWRlL2FybS9tYWNoaW5lL2ZlbnYuaAppbmRleCBkODc0OWRkLi4wZTQ4M2UzIDEwMDY0NAotLS0gYS9saWJtL2luY2x1ZGUvYXJtL21hY2hpbmUvZmVudi5oCisrKyBiL2xpYm0vaW5jbHVkZS9hcm0vbWFjaGluZS9mZW52LmgKQEAgLTUyLDE3ICs1MiwxMiBAQAogI2RlZmluZSBGRV9BTExfRVhDRVBUIChGRV9ESVZCWVpFUk8gfCBGRV9JTkVYQUNUIHwgRkVfSU5WQUxJRCB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgRkVfT1ZFUkZMT1cgfCBGRV9VTkRFUkZMT1cpCiAKLSNkZWZpbmUgX0ZQU0NSX0VOQUJMRV9TSElGVCA4Ci0jZGVmaW5lIF9GUFNDUl9FTkFCTEVfTUFTSyAgKEZFX0FMTF9FWENFUFQgPDwgX0ZQU0NSX0VOQUJMRV9TSElGVCkKLQogLyogUm91bmRpbmcgbW9kZXMuICovCiAjZGVmaW5lIEZFX1RPTkVBUkVTVCAgMHgwCiAjZGVmaW5lIEZFX1VQV0FSRCAgICAgMHgxCiAjZGVmaW5lIEZFX0RPV05XQVJEICAgMHgyCiAjZGVmaW5lIEZFX1RPV0FSRFpFUk8gMHgzCiAKLSNkZWZpbmUgX0ZQU0NSX1JNT0RFX1NISUZUIDIyCi0KIF9fRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiAhX0FSTV9GRU5WX0hfICovCmRpZmYgLS1naXQgYS9saWJtL2luY2x1ZGUvYXJtNjQvbWFjaGluZS9mZW52LmggYi9saWJtL2luY2x1ZGUvYXJtNjQvbWFjaGluZS9mZW52LmgKaW5kZXggMmVmZWVlMy4uYTg1NjhiOCAxMDA2NDQKLS0tIGEvbGlibS9pbmNsdWRlL2FybTY0L21hY2hpbmUvZmVudi5oCisrKyBiL2xpYm0vaW5jbHVkZS9hcm02NC9tYWNoaW5lL2ZlbnYuaApAQCAtMjcsMTUgKzI3LDQ0IEBACiAgKi8KIAogLyoKLSAqIFJld3JpdHRlbiBmb3IgQW5kcm9pZC4KKyAqIEluIEFSTXY4LCBBQXJjaDY0IHN0YXRlLCBmbG9hdGluZy1wb2ludCBvcGVyYXRpb24gaXMgY29udHJvbGxlZCBieToKICAqCi0gKiBUaGUgQVJNIEZQU0NSIChGbG9hdGluZy1wb2ludCBTdGF0dXMgYW5kIENvbnRyb2wgUmVnaXN0ZXIpIGRlc2NyaWJlZCBoZXJlOgotICogaHR0cDovL2luZm9jZW50ZXIuYXJtLmNvbS9oZWxwL2luZGV4LmpzcD90b3BpYz0vY29tLmFybS5kb2MuZGRpMDM0NGIvQ2hkZmFmaWEuaHRtbAotICogaGFzIGJlZW4gc3BsaXQgaW50byB0aGUgRlBDUiAoRmxvYXRpbmctcG9pbnQgQ29udHJvbCBSZWdpc3RlcikgYW5kIEZQU1IKLSAqIChGbG9hdGluZy1wb2ludCBTdGF0dXMgUmVnaXN0ZXIpIG9uIHRoZSBBUk12OC4gVGhlc2UgYXJlIGRlc2NyaWJlZCBicmllZmx5IGluCi0gKiAiUHJvY2VkdXJlIENhbGwgU3RhbmRhcmQgZm9yIHRoZSBBUk0gNjQtYml0IEFyY2hpdGVjdHVyZSIKLSAqIGh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVscC90b3BpYy9jb20uYXJtLmRvYy5paGkwMDU1YS9JSEkwMDU1QV9hYXBjczY0LnBkZgotICogc2VjdGlvbiA1LjEuMiBTSU1EIGFuZCBGbG9hdGluZy1Qb2ludCBSZWdpc3RlcnMKKyAqICAqIEZQQ1IgLSAzMkJpdCBGbG9hdGluZy1Qb2ludCBDb250cm9sIFJlZ2lzdGVyOgorICogICAgICAqIFszMToyN10gLSBSZXNlcnZlZCwgUmVzMDsKKyAqICAgICAgKiBbMjZdICAgIC0gQUhQLCBBbHRlcm5hdGl2ZSBoYWxmLXByZWNpc2lvbiBjb250cm9sIGJpdDsKKyAqICAgICAgKiBbMjVdICAgIC0gRE4sIERlZmF1bHQgTmFOIG1vZGUgY29udHJvbCBiaXQ7CisgKiAgICAgICogWzI0XSAgICAtIEZaLCBGbHVzaC10by16ZXJvIG1vZGUgY29udHJvbCBiaXQ7CisgKiAgICAgICogWzIzOjIyXSAtIFJNb2RlLCBSb3VuZGluZyBNb2RlIGNvbnRyb2wgZmllbGQ6CisgKiAgICAgICAgICAgICogMDAgIC0gUm91bmQgdG8gTmVhcmVzdCAoUk4pIG1vZGU7CisgKiAgICAgICAgICAgICogMDEgIC0gUm91bmQgdG93YXJkcyBQbHVzIEluZmluaXR5IChSUCkgbW9kZTsKKyAqICAgICAgICAgICAgKiAxMCAgLSBSb3VuZCB0b3dhcmRzIE1pbnVzIEluZmluaXR5IChSTSkgbW9kZTsKKyAqICAgICAgICAgICAgKiAxMSAgLSBSb3VuZCB0b3dhcmRzIFplcm8gKFJaKSBtb2RlLgorICogICAgICAqIFsyMToyMF0gLSBTdHJpZGUsIGlnbm9yZWQgZHVyaW5nIEFBcmNoNjQgZXhlY3V0aW9uOworICogICAgICAqIFsxOV0gICAgLSBSZXNlcnZlZCwgUmVzMDsKKyAqICAgICAgKiBbMTg6MTZdIC0gTGVuLCBpZ25vcmVkIGR1cmluZyBBQXJjaDY0IGV4ZWN1dGlvbjsKKyAqICAgICAgKiBbMTVdICAgIC0gSURFLCBJbnB1dCBEZW5vcm1hbCBleGNlcHRpb24gdHJhcDsKKyAqICAgICAgKiBbMTQ6MTNdIC0gUmVzZXJ2ZWQsIFJlczA7CisgKiAgICAgICogWzEyXSAgICAtIElYRSwgSW5leGFjdCBleGNlcHRpb24gdHJhcDsKKyAqICAgICAgKiBbMTFdICAgIC0gVUZFLCBVbmRlcmZsb3cgZXhjZXB0aW9uIHRyYXA7CisgKiAgICAgICogWzEwXSAgICAtIE9GRSwgT3ZlcmZsb3cgZXhjZXB0aW9uIHRyYXA7CisgKiAgICAgICogWzldICAgICAtIERaRSwgRGl2aXNpb24gYnkgWmVybyBleGNlcHRpb247CisgKiAgICAgICogWzhdICAgICAtIElPRSwgSW52YWxpZCBPcGVyYXRpb24gZXhjZXB0aW9uOworICogICAgICAqIFs3OjBdICAgLSBSZXNlcnZlZCwgUmVzMC4KKyAqCisgKiAgKiBGUFNSIC0gMzJCaXQgRmxvYXRpbmctUG9pbnQgU3RhdHVzIFJlZ2lzdGVyOgorICogICAgICAqIFszMV0gICAgLSBOLCBOZWdhdGl2ZSBjb25kaXRpb24gZmxhZyBmb3IgQUFyY2gzMiAoQUFyY2g2NCBzZXRzIFBTVEFURS5OKTsKKyAqICAgICAgKiBbMzBdICAgIC0gWiwgWmVybyBjb25kaXRpb24gZmxhZyBmb3IgQUFyY2gzMiAoQUFyY2g2NCBzZXRzIFBTVEFURS5aKTsKKyAqICAgICAgKiBbMjldICAgIC0gQywgQ2FycnkgY29uZGl0b24gZmxhZyBmb3IgQUFyY2gzMiAoQUFyY2g2NCBzZXRzIFBTVEFURS5DKTsKKyAqICAgICAgKiBbMjhdICAgIC0gViwgT3ZlcmZsb3cgY29uZGl0b24gZmxhZyBmb3IgQUFyY2gzMiAoQUFyY2g2NCBzZXRzIFBTVEFURS5WKTsKKyAqICAgICAgKiBbMjddICAgIC0gUUMsIEN1bXVsYXRpdmUgc2F0dXJhdGlvbiBiaXQsIEFkdmFuY2VkIFNJTUQgb25seTsKKyAqICAgICAgKiBbMjY6OF0gIC0gUmVzZXJ2ZWQsIFJlczA7CisgKiAgICAgICogWzddICAgICAtIElEQywgSW5wdXQgRGVub3JtYWwgY3VtdWxhdGl2ZSBleGNlcHRpb247CisgKiAgICAgICogWzY6NV0gICAtIFJlc2VydmVkLCBSZXMwOworICogICAgICAqIFs0XSAgICAgLSBJWEMsIEluZXhhY3QgY3VtdWxhdGl2ZSBleGNlcHRpb247CisgKiAgICAgICogWzNdICAgICAtIFVGQywgVW5kZXJmbG93IGN1bXVsYXRpdmUgZXhjZXB0aW9uOworICogICAgICAqIFsyXSAgICAgLSBPRkMsIE92ZXJmbG93IGN1bXVsYXRpdmUgZXhjZXB0aW9uOworICogICAgICAqIFsxXSAgICAgLSBEWkMsIERpdmlzaW9uIGJ5IFplcm8gY3VtdWxhdGl2ZSBleGNlcHRpb247CisgKiAgICAgICogWzBdICAgICAtIElPQywgSW52YWxpZCBPcGVyYXRpb24gY3VtdWxhdGl2ZSBleGNlcHRpb24uCiAgKi8KIAogI2lmbmRlZiBfQVJNNjRfRkVOVl9IXwpAQCAtNDUsNyArNzQsMTEgQEAKIAogX19CRUdJTl9ERUNMUwogCi10eXBlZGVmIF9fdWludDMyX3QgZmVudl90OwordHlwZWRlZiBzdHJ1Y3QgeworICBfX3VpbnQzMl90IF9fY29udHJvbDsgICAgIC8qIEZQQ1IsIEZsb2F0aW5nLXBvaW50IENvbnRyb2wgUmVnaXN0ZXIgKi8KKyAgX191aW50MzJfdCBfX3N0YXR1czsgICAgICAvKiBGUFNSLCBGbG9hdGluZy1wb2ludCBTdGF0dXMgUmVnaXN0ZXIgKi8KK30gZmVudl90OworCiB0eXBlZGVmIF9fdWludDMyX3QgZmV4Y2VwdF90OwogCiAvKiBFeGNlcHRpb24gZmxhZ3MuICovCkBAIC01NCwxMSArODcsOSBAQAogI2RlZmluZSBGRV9PVkVSRkxPVyAgIDB4MDQKICNkZWZpbmUgRkVfVU5ERVJGTE9XICAweDA4CiAjZGVmaW5lIEZFX0lORVhBQ1QgICAgMHgxMAorI2RlZmluZSBGRV9ERU5PUk1BTCAgIDB4ODAKICNkZWZpbmUgRkVfQUxMX0VYQ0VQVCAoRkVfRElWQllaRVJPIHwgRkVfSU5FWEFDVCB8IEZFX0lOVkFMSUQgfCBcCi0gICAgICAgICAgICAgICAgICAgICAgIEZFX09WRVJGTE9XIHwgRkVfVU5ERVJGTE9XKQotCi0jZGVmaW5lIF9GUFNDUl9FTkFCTEVfU0hJRlQgOAotI2RlZmluZSBfRlBTQ1JfRU5BQkxFX01BU0sgIChGRV9BTExfRVhDRVBUIDw8IF9GUFNDUl9FTkFCTEVfU0hJRlQpCisgICAgICAgICAgICAgICAgICAgICAgIEZFX09WRVJGTE9XIHwgRkVfVU5ERVJGTE9XIHwgRkVfREVOT1JNQUwpCiAKIC8qIFJvdW5kaW5nIG1vZGVzLiAqLwogI2RlZmluZSBGRV9UT05FQVJFU1QgIDB4MApAQCAtNjYsNTYgKzk3LDYgQEAKICNkZWZpbmUgRkVfRE9XTldBUkQgICAweDIKICNkZWZpbmUgRkVfVE9XQVJEWkVSTyAweDMKIAotI2RlZmluZSBfRlBTQ1JfUk1PREVfU0hJRlQgMjIKLQotI2RlZmluZSBGUENSX0lPRSAgICAoMSA8PCA4KQotI2RlZmluZSBGUENSX0RaRSAgICAoMSA8PCA5KQotI2RlZmluZSBGUENSX09GRSAgICAoMSA8PCAxMCkKLSNkZWZpbmUgRlBDUl9VRkUgICAgKDEgPDwgMTEpCi0jZGVmaW5lIEZQQ1JfSVhFICAgICgxIDw8IDEyKQotI2RlZmluZSBGUENSX0lERSAgICAoMSA8PCAxNSkKLSNkZWZpbmUgRlBDUl9MRU4gICAgKDcgPDwgMTYpCi0jZGVmaW5lIEZQQ1JfU1RSSURFICgzIDw8IDIwKQotI2RlZmluZSBGUENSX1JNT0RFICAoMyA8PCAyMikKLSNkZWZpbmUgRlBDUl9GWiAgICAgKDEgPDwgMjQpCi0jZGVmaW5lIEZQQ1JfRE4gICAgICgxIDw8IDI1KQotI2RlZmluZSBGUENSX0FIUCAgICAoMSA8PCAyNikKLSNkZWZpbmUgRlBDUl9NQVNLICAgKEZQQ1JfSU9FIHwgXAotICAgICAgICAgICAgICAgICAgICAgRlBDUl9EWkUgfCBcCi0gICAgICAgICAgICAgICAgICAgICBGUENSX09GRSB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQQ1JfVUZFIHwgXAotICAgICAgICAgICAgICAgICAgICAgRlBDUl9JWEUgfCBcCi0gICAgICAgICAgICAgICAgICAgICBGUENSX0lERSB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQQ1JfTEVOIHwgXAotICAgICAgICAgICAgICAgICAgICAgRlBDUl9TVFJJREUgfCBcCi0gICAgICAgICAgICAgICAgICAgICBGUENSX1JNT0RFIHwgXAotICAgICAgICAgICAgICAgICAgICAgRlBDUl9GWiB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQQ1JfRE4gfCBcCi0gICAgICAgICAgICAgICAgICAgICBGUENSX0FIUCApCi0KLSNkZWZpbmUgRlBTUl9JT0MgICAgKDEgPDwgMCkKLSNkZWZpbmUgRlBTUl9EWkMgICAgKDEgPDwgMSkKLSNkZWZpbmUgRlBTUl9PRkMgICAgKDEgPDwgMikKLSNkZWZpbmUgRlBTUl9VRkMgICAgKDEgPDwgMykKLSNkZWZpbmUgRlBTUl9JWEMgICAgKDEgPDwgNCkKLSNkZWZpbmUgRlBTUl9JREMgICAgKDEgPDwgNykKLSNkZWZpbmUgRlBTUl9RQyAgICAgKDEgPDwgMjcpCi0jZGVmaW5lIEZQU1JfViAgICAgICgxIDw8IDI4KQotI2RlZmluZSBGUFNSX0MgICAgICAoMSA8PCAyOSkKLSNkZWZpbmUgRlBTUl9aICAgICAgKDEgPDwgMzApCi0jZGVmaW5lIEZQU1JfTiAgICAgICgxIDw8IDMxKQotI2RlZmluZSBGUFNSX01BU0sgICAoRlBTUl9JT0MgfCBcCi0gICAgICAgICAgICAgICAgICAgICBGUFNSX0RaQyB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQU1JfT0ZDIHwgXAotICAgICAgICAgICAgICAgICAgICAgRlBTUl9VRkMgfCBcCi0gICAgICAgICAgICAgICAgICAgICBGUFNSX0lYQyB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQU1JfSURDIHwgXAotICAgICAgICAgICAgICAgICAgICAgRlBTUl9RQyB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQU1JfViB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQU1JfQyB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQU1JfWiB8IFwKLSAgICAgICAgICAgICAgICAgICAgIEZQU1JfTiApCi0KIF9fRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiAhX0FSTTY0X0ZFTlZfSF8gKi8KZGlmZiAtLWdpdCBhL2xpYm0vaW5jbHVkZS9pMzg3L21hY2hpbmUvZmVudi5oIGIvbGlibS9pbmNsdWRlL2kzODcvbWFjaGluZS9mZW52LmgKaW5kZXggZjNmYWJiNi4uZGU0NWFkZCAxMDA2NDQKLS0tIGEvbGlibS9pbmNsdWRlL2kzODcvbWFjaGluZS9mZW52LmgKKysrIGIvbGlibS9pbmNsdWRlL2kzODcvbWFjaGluZS9mZW52LmgKQEAgLTYzLDggKzYzLDYgQEAKICNkZWZpbmUgRkVfRE9XTldBUkQgICAweDA0MDAKICNkZWZpbmUgRkVfVVBXQVJEICAgICAweDA4MDAKICNkZWZpbmUgRkVfVE9XQVJEWkVSTyAweDBjMDAKLSNkZWZpbmUgX1JPVU5EX01BU0sgICAoRkVfVE9ORUFSRVNUIHwgRkVfRE9XTldBUkQgfCBcCi0gICAgICAgICAgICAgICAgICAgICAgIEZFX1VQV0FSRCB8IEZFX1RPV0FSRFpFUk8pCiAKIF9fRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL2xpYm0vaW5jbHVkZS9taXBzL21hY2hpbmUvZmVudi5oIGIvbGlibS9pbmNsdWRlL21pcHMvbWFjaGluZS9mZW52LmgKaW5kZXggMzdmMGY5Yy4uNjg5ZTFjYiAxMDA2NDQKLS0tIGEvbGlibS9pbmNsdWRlL21pcHMvbWFjaGluZS9mZW52LmgKKysrIGIvbGlibS9pbmNsdWRlL21pcHMvbWFjaGluZS9mZW52LmgKQEAgLTg3LDE5ICs4NywxMiBAQAogI2RlZmluZSBGRV9BTExfRVhDRVBUIChGRV9ESVZCWVpFUk8gfCBGRV9JTkVYQUNUIHwgXAogICAgICAgICAgICAgICAgICAgICAgICBGRV9JTlZBTElEIHwgRkVfT1ZFUkZMT1cgfCBGRV9VTkRFUkZMT1cpCiAKLSNkZWZpbmUgX0ZDU1JfQ0FVU0VfU0hJRlQgMTAKLSNkZWZpbmUgX0VOQUJMRV9TSElGVCAgICAgNQotI2RlZmluZSBfRkNTUl9FTkFCTEVfTUFTSyAoRkVfQUxMX0VYQ0VQVCA8PCBfRU5BQkxFX1NISUZUKQotCiAvKiBSb3VuZGluZyBtb2RlcyAqLwogI2RlZmluZSBGRV9UT05FQVJFU1QgIDB4MDAwMAogI2RlZmluZSBGRV9UT1dBUkRaRVJPIDB4MDAwMQogI2RlZmluZSBGRV9VUFdBUkQgICAgIDB4MDAwMgogI2RlZmluZSBGRV9ET1dOV0FSRCAgIDB4MDAwMwogCi0jZGVmaW5lIF9GQ1NSX1JNT0RFX1NISUZUIDAKLSNkZWZpbmUgX0ZDU1JfUk1BU0sgICAgICAgMHgzCi0KIF9fRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiAhX01JUFNfRkVOVl9IXyAqLwpkaWZmIC0tZ2l0IGEvbGlibS9taXBzL2ZlbnYuYyBiL2xpYm0vbWlwcy9mZW52LmMKaW5kZXggODkzYmMzMC4uYWFjZDUyNiAxMDA2NDQKLS0tIGEvbGlibS9taXBzL2ZlbnYuYworKysgYi9saWJtL21pcHMvZmVudi5jCkBAIC0yOCw2ICsyOCwxMiBAQAogCiAjaW5jbHVkZSA8ZmVudi5oPgogCisjZGVmaW5lIEZDU1JfQ0FVU0VfU0hJRlQgMTAKKyNkZWZpbmUgRkNTUl9FTkFCTEVfU0hJRlQgNQorI2RlZmluZSBGQ1NSX0VOQUJMRV9NQVNLIChGRV9BTExfRVhDRVBUIDw8IEZDU1JfRU5BQkxFX1NISUZUKQorCisjZGVmaW5lIEZDU1JfUk1BU0sgICAgICAgMHgzCisKIC8qCiAgKiBIb3BlZnVsbHkgdGhlIHN5c3RlbSBJRCBieXRlIGlzIGltbXV0YWJsZSwgc28gaXQncyB2YWxpZCB0byB1c2UKICAqIHRoaXMgYXMgYSBkZWZhdWx0IGVudmlyb25tZW50LgpAQCAtNTUsNyArNjEsNyBAQAogICBmZXhjZXB0X3QgX19mY3NyOwogICBmZWdldGVudigmX19mY3NyKTsKICAgX19leGNlcHRzICY9IEZFX0FMTF9FWENFUFQ7Ci0gIF9fZmNzciAmPSB+KF9fZXhjZXB0cyB8IChfX2V4Y2VwdHMgPDwgX0ZDU1JfQ0FVU0VfU0hJRlQpKTsKKyAgX19mY3NyICY9IH4oX19leGNlcHRzIHwgKF9fZXhjZXB0cyA8PCBGQ1NSX0NBVVNFX1NISUZUKSk7CiAgIGZlc2V0ZW52KCZfX2Zjc3IpOwogICByZXR1cm4gMDsKIH0KQEAgLTg0LDcgKzkwLDcgQEAKICAgLyogRW5zdXJlIHRoYXQgZmxhZ3MgYXJlIGFsbCBsZWdhbCAqLwogICBfX2V4Y2VwdHMgJj0gRkVfQUxMX0VYQ0VQVDsKICAgLyogQ2F1c2UgYml0IG5lZWRzIHRvIGJlIHNldCBhcyB3ZWxsIGZvciBnZW5lcmF0aW5nIHRoZSBleGNlcHRpb24qLwotICBfX2Zjc3IgfD0gX19leGNlcHRzIHwgKF9fZXhjZXB0cyA8PCBfRkNTUl9DQVVTRV9TSElGVCk7CisgIF9fZmNzciB8PSBfX2V4Y2VwdHMgfCAoX19leGNlcHRzIDw8IEZDU1JfQ0FVU0VfU0hJRlQpOwogICBmZXNldGVudigmX19mY3NyKTsKICAgcmV0dXJuIDA7CiB9CkBAIC05OCwxNCArMTA0LDE0IEBACiBpbnQgZmVnZXRyb3VuZCh2b2lkKSB7CiAgIGZlbnZfdCBfZmNzcjsKICAgZmVnZXRlbnYoJl9mY3NyKTsKLSAgcmV0dXJuIChfZmNzciAmIF9GQ1NSX1JNQVNLKTsKKyAgcmV0dXJuIChfZmNzciAmIEZDU1JfUk1BU0spOwogfQogCiBpbnQgZmVzZXRyb3VuZChpbnQgX19yb3VuZCkgewogICBmZW52X3QgX2Zjc3I7CiAgIGZlZ2V0ZW52KCZfZmNzcik7Ci0gIF9mY3NyICY9IH5fRkNTUl9STUFTSzsKLSAgX2Zjc3IgfD0gKF9fcm91bmQgJiBfRkNTUl9STUFTSyApIDsKKyAgX2Zjc3IgJj0gfkZDU1JfUk1BU0s7CisgIF9mY3NyIHw9IChfX3JvdW5kICYgRkNTUl9STUFTSyk7CiAgIGZlc2V0ZW52KCZfZmNzcik7CiAgIHJldHVybiAwOwogfQpAQCAtMTE0LDcgKzEyMCw3IEBACiAgIGZlbnZfdCBfX2VudjsKICAgZmVnZXRlbnYoJl9fZW52KTsKICAgKl9fZW52cCA9IF9fZW52OwotICBfX2VudiAmPSB+KEZFX0FMTF9FWENFUFQgfCBfRkNTUl9FTkFCTEVfTUFTSyk7CisgIF9fZW52ICY9IH4oRkVfQUxMX0VYQ0VQVCB8IEZDU1JfRU5BQkxFX01BU0spOwogICBmZXNldGVudigmX19lbnYpOwogICByZXR1cm4gMDsKIH0KQEAgLTEzMCwyMSArMTM2LDIxIEBACiBpbnQgZmVlbmFibGVleGNlcHQoaW50IF9fbWFzaykgewogICBmZW52X3QgX19vbGRfZmNzciwgX19uZXdfZmNzcjsKICAgZmVnZXRlbnYoJl9fb2xkX2Zjc3IpOwotICBfX25ld19mY3NyID0gX19vbGRfZmNzciB8IChfX21hc2sgJiBGRV9BTExfRVhDRVBUKSA8PCBfRU5BQkxFX1NISUZUOworICBfX25ld19mY3NyID0gX19vbGRfZmNzciB8IChfX21hc2sgJiBGRV9BTExfRVhDRVBUKSA8PCBGQ1NSX0VOQUJMRV9TSElGVDsKICAgZmVzZXRlbnYoJl9fbmV3X2Zjc3IpOwotICByZXR1cm4gKChfX29sZF9mY3NyID4+IF9FTkFCTEVfU0hJRlQpICYgRkVfQUxMX0VYQ0VQVCk7CisgIHJldHVybiAoKF9fb2xkX2Zjc3IgPj4gRkNTUl9FTkFCTEVfU0hJRlQpICYgRkVfQUxMX0VYQ0VQVCk7CiB9CiAKIGludCBmZWRpc2FibGVleGNlcHQoaW50IF9fbWFzaykgewogICBmZW52X3QgX19vbGRfZmNzciwgX19uZXdfZmNzcjsKICAgZmVnZXRlbnYoJl9fb2xkX2Zjc3IpOwotICBfX25ld19mY3NyID0gX19vbGRfZmNzciAmIH4oKF9fbWFzayAmIEZFX0FMTF9FWENFUFQpIDw8IF9FTkFCTEVfU0hJRlQpOworICBfX25ld19mY3NyID0gX19vbGRfZmNzciAmIH4oKF9fbWFzayAmIEZFX0FMTF9FWENFUFQpIDw8IEZDU1JfRU5BQkxFX1NISUZUKTsKICAgZmVzZXRlbnYoJl9fbmV3X2Zjc3IpOwotICByZXR1cm4gKChfX29sZF9mY3NyID4+IF9FTkFCTEVfU0hJRlQpICYgRkVfQUxMX0VYQ0VQVCk7CisgIHJldHVybiAoKF9fb2xkX2Zjc3IgPj4gRkNTUl9FTkFCTEVfU0hJRlQpICYgRkVfQUxMX0VYQ0VQVCk7CiB9CiAKIGludCBmZWdldGV4Y2VwdCh2b2lkKSB7CiAgIGZlbnZfdCBfX2Zjc3I7CiAgIGZlZ2V0ZW52KCZfX2Zjc3IpOwotICByZXR1cm4gKChfX2Zjc3IgJiBfRkNTUl9FTkFCTEVfTUFTSykgPj4gX0VOQUJMRV9TSElGVCk7CisgIHJldHVybiAoKF9fZmNzciAmIEZDU1JfRU5BQkxFX01BU0spID4+IEZDU1JfRU5BQkxFX1NISUZUKTsKIH0KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy9pbmNsdWRlL2NzdGRpbyBiL2xpYnN0ZGMrKy9pbmNsdWRlL2NzdGRpbwppbmRleCAzYzhiNWM2Li4yOTQ4ZDg1IDEwMDY0NAotLS0gYS9saWJzdGRjKysvaW5jbHVkZS9jc3RkaW8KKysrIGIvbGlic3RkYysrL2luY2x1ZGUvY3N0ZGlvCkBAIC02Myw3ICs2Myw5IEBACiB1c2luZyA6OmZ3cml0ZTsKIHVzaW5nIDo6Z2V0YzsKIHVzaW5nIDo6Z2V0Y2hhcjsKKyNpZiAhZGVmaW5lZChfX1NURENfVkVSU0lPTl9fKSB8fCBfX1NURENfVkVSU0lPTl9fIDwgMjAxMTEyTAogdXNpbmcgOjpnZXRzOworI2VuZGlmCiB1c2luZyA6OnBlcnJvcjsKIHVzaW5nIDo6cHJpbnRmOwogdXNpbmcgOjpwdXRjOwpkaWZmIC0tZ2l0IGEvbGlua2VyL0FuZHJvaWQubWsgYi9saW5rZXIvQW5kcm9pZC5tawppbmRleCA4MTFjZjZlLi42OGU4MDFkIDEwMDY0NAotLS0gYS9saW5rZXIvQW5kcm9pZC5taworKysgYi9saW5rZXIvQW5kcm9pZC5tawpAQCAtMTYsNiArMTYsNyBAQAogTE9DQUxfU1JDX0ZJTEVTX3g4NiAgICAgOj0gYXJjaC94ODYvYmVnaW4uYwogTE9DQUxfU1JDX0ZJTEVTX3g4Nl82NCAgOj0gYXJjaC94ODZfNjQvYmVnaW4uUwogTE9DQUxfU1JDX0ZJTEVTX21pcHMgICAgOj0gYXJjaC9taXBzL2JlZ2luLlMKK0xPQ0FMX1NSQ19GSUxFU19taXBzNjQgIDo9IGFyY2gvbWlwczY0L2JlZ2luLlMKIAogTE9DQUxfTERGTEFHUyA6PSBcCiAgICAgLXNoYXJlZCBcCmRpZmYgLS1naXQgYS9saW5rZXIvZGxmY24uY3BwIGIvbGlua2VyL2RsZmNuLmNwcAppbmRleCBmMGI2YzhhLi41MjllMjBmIDEwMDY0NAotLS0gYS9saW5rZXIvZGxmY24uY3BwCisrKyBiL2xpbmtlci9kbGZjbi5jcHAKQEAgLTExOCw3ICsxMTgsNyBAQAogICBpZiAoc3ltICE9IE5VTEwpIHsKICAgICB1bnNpZ25lZCBiaW5kID0gRUxGX1NUX0JJTkQoc3ltLT5zdF9pbmZvKTsKIAotICAgIGlmIChiaW5kID09IFNUQl9HTE9CQUwgJiYgc3ltLT5zdF9zaG5keCAhPSAwKSB7CisgICAgaWYgKChiaW5kID09IFNUQl9HTE9CQUwgfHwgYmluZCA9PSBTVEJfV0VBSykgJiYgc3ltLT5zdF9zaG5keCAhPSAwKSB7CiAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3ltLT5zdF92YWx1ZSArIGZvdW5kLT5sb2FkX2JpYXMpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvbGlua2VyL2xpbmtlci5jcHAgYi9saW5rZXIvbGlua2VyLmNwcAppbmRleCBhMjIyMzNkLi5lMjAyYWFmIDEwMDY0NAotLS0gYS9saW5rZXIvbGlua2VyLmNwcAorKysgYi9saW5rZXIvbGlua2VyLmNwcApAQCAtNTksNiArNTksNyBAQAogICoKICAqIG9wZW4gaXNzdWVzIC8gdG9kbzoKICAqCisgKiAtIGFyZSB3ZSBkb2luZyBldmVyeXRoaW5nIHdlIHNob3VsZCBmb3IgQVJNX0NPUFkgcmVsb2NhdGlvbnM/CiAgKiAtIGNsZWFuZXIgZXJyb3IgcmVwb3J0aW5nCiAgKiAtIGFmdGVyIGxpbmtpbmcsIHNldCBhcyBtdWNoIHN0dWZmIGFzIHBvc3NpYmxlIHRvIFJFQURPTkxZCiAgKiAgIGFuZCBOT0VYRUMKQEAgLTEwMzcsMTcgKzEwMzgsNTIgQEAKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFJfQUFSQ0g2NF9DT1BZOgotICAgICAgICAvKgotICAgICAgICAgKiBFVF9FWEVDIGlzIG5vdCBzdXBwb3J0ZWQgc28gdGhpcyBzaG91bGQgbm90IGhhcHBlbi4KLSAgICAgICAgICoKLSAgICAgICAgICogaHR0cDovL2luZm9jZW50ZXIuYXJtLmNvbS9oZWxwL3RvcGljL2NvbS5hcm0uZG9jLmloaTAwNDRkL0lISTAwNDREX2FhZWxmLnBkZgotICAgICAgICAgKgotICAgICAgICAgKiBTZWN0aW9uIDQuNy4xLjEwICJEeW5hbWljIHJlbG9jYXRpb25zIgotICAgICAgICAgKiBSX0FBUkNINjRfQ09QWSBtYXkgb25seSBhcHBlYXIgaW4gZXhlY3V0YWJsZSBvYmplY3RzIHdoZXJlIGVfdHlwZSBpcwotICAgICAgICAgKiBzZXQgdG8gRVRfRVhFQy4KLSAgICAgICAgICovCi0gICAgICAgIERMX0VSUigiJXMgUl9BQVJDSDY0X0NPUFkgcmVsb2NhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiLCBzaS0+bmFtZSk7Ci0gICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgaWYgKChzaS0+ZmxhZ3MgJiBGTEFHX0VYRSkgPT0gMCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgKiBodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuaWhpMDA0NGQvSUhJMDA0NERfYWFlbGYucGRmCisgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgKiBTZWN0aW9uIDQuNy4xLjEwICJEeW5hbWljIHJlbG9jYXRpb25zIgorICAgICAgICAgICAgICAqIFJfQUFSQ0g2NF9DT1BZIG1heSBvbmx5IGFwcGVhciBpbiBleGVjdXRhYmxlIG9iamVjdHMgd2hlcmUgZV90eXBlIGlzCisgICAgICAgICAgICAgICogc2V0IHRvIEVUX0VYRUMuCisgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgKiBGTEFHX0VYRSBpcyBzZXQgZm9yIGJvdGggRVRfRFlOIGFuZCBFVF9FWEVDIGV4ZWN1dGFibGVzLgorICAgICAgICAgICAgICAqIFdlIHNob3VsZCBleHBsaWNpdGx5IGRpc2FsbG93IEVUX0RZTiBleGVjdXRhYmxlcyBmcm9tIGhhdmluZworICAgICAgICAgICAgICAqIFJfQUFSQ0g2NF9DT1BZIHJlbG9jYXRpb25zLgorICAgICAgICAgICAgICAqLworICAgICAgICAgICAgRExfRVJSKCIlcyBSX0FBUkNINjRfQ09QWSByZWxvY2F0aW9ucyBvbmx5IHN1cHBvcnRlZCBmb3IgRVRfRVhFQyIsIHNpLT5uYW1lKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBjb3VudF9yZWxvY2F0aW9uKGtSZWxvY0NvcHkpOworICAgICAgICBNQVJLKHJlbGEtPnJfb2Zmc2V0KTsKKyAgICAgICAgVFJBQ0VfVFlQRShSRUxPLCAiUkVMTyBDT1BZICUxNmxseCA8LSAlbGxkIEAgJTE2bGx4ICVzXG4iLAorICAgICAgICAgICAgICAgICAgIHJlbG9jLAorICAgICAgICAgICAgICAgICAgIHMtPnN0X3NpemUsCisgICAgICAgICAgICAgICAgICAgKHN5bV9hZGRyICsgcmVsYS0+cl9hZGRlbmQpLAorICAgICAgICAgICAgICAgICAgIHN5bV9uYW1lKTsKKyAgICAgICAgaWYgKHJlbG9jID09IChzeW1fYWRkciArIHJlbGEtPnJfYWRkZW5kKSkgeworICAgICAgICAgICAgRWxmVyhTeW0pKiBzcmMgPSBzb2luZm9fZG9fbG9va3VwKE5VTEwsIHN5bV9uYW1lLCAmbHNpLCBuZWVkZWQpOworCisgICAgICAgICAgICBpZiAoc3JjID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBETF9FUlIoIiVzIFJfQUFSQ0g2NF9DT1BZIHJlbG9jYXRpb24gc291cmNlIGNhbm5vdCBiZSByZXNvbHZlZCIsIHNpLT5uYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobHNpLT5oYXNfRFRfU1lNQk9MSUMpIHsKKyAgICAgICAgICAgICAgICBETF9FUlIoIiVzIGludmFsaWQgUl9BQVJDSDY0X0NPUFkgcmVsb2NhdGlvbiBhZ2FpbnN0IERUX1NZTUJPTElDIHNoYXJlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5ICVzIChidWlsdCB3aXRoIC1Cc3ltYm9saWM/KSIsIHNpLT5uYW1lLCBsc2ktPm5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzLT5zdF9zaXplIDwgc3JjLT5zdF9zaXplKSB7CisgICAgICAgICAgICAgICAgRExfRVJSKCIlcyBSX0FBUkNINjRfQ09QWSByZWxvY2F0aW9uIHNpemUgbWlzbWF0Y2ggKCVsbGQgPCAlbGxkKSIsCisgICAgICAgICAgICAgICAgICAgICAgIHNpLT5uYW1lLCBzLT5zdF9zaXplLCBzcmMtPnN0X3NpemUpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1lbWNweShyZWludGVycHJldF9jYXN0PHZvaWQqPihyZWxvYyksCisgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oc3JjLT5zdF92YWx1ZSArIGxzaS0+bG9hZF9iaWFzKSwgc3JjLT5zdF9zaXplKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIERMX0VSUigiJXMgUl9BQVJDSDY0X0NPUFkgcmVsb2NhdGlvbiB0YXJnZXQgY2Fubm90IGJlIHJlc29sdmVkIiwgc2ktPm5hbWUpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUl9BQVJDSDY0X1RMU19UUFJFTDY0OgogICAgICAgICBUUkFDRV9UWVBFKFJFTE8sICJSRUxPIFRMU19UUFJFTDY0ICoqKiAlMTZsbHggPC0gJTE2bGx4IC0gJTE2bGx4XG4iLAogICAgICAgICAgICAgICAgICAgIHJlbG9jLCAoc3ltX2FkZHIgKyByZWxhLT5yX2FkZGVuZCksIHJlbGEtPnJfb2Zmc2V0KTsKQEAgLTEyMjUsMTcgKzEyNjEsNDggQEAKICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PEVsZlcoQWRkcikqPihyZWxvYykgKz0gc3ltX2FkZHIgLSByZWwtPnJfb2Zmc2V0OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUl9BUk1fQ09QWToKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgKiBFVF9FWEVDIGlzIG5vdCBzdXBwb3J0ZWQgc28gdGhpcyBzaG91bGQgbm90IGhhcHBlbi4KLSAgICAgICAgICAgICAqCi0gICAgICAgICAgICAgKiBodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuaWhpMDA0NGQvSUhJMDA0NERfYWFlbGYucGRmCi0gICAgICAgICAgICAgKgotICAgICAgICAgICAgICogU2VjdGlvbiA0LjcuMS4xMCAiRHluYW1pYyByZWxvY2F0aW9ucyIKLSAgICAgICAgICAgICAqIFJfQVJNX0NPUFkgbWF5IG9ubHkgYXBwZWFyIGluIGV4ZWN1dGFibGUgb2JqZWN0cyB3aGVyZSBlX3R5cGUgaXMKLSAgICAgICAgICAgICAqIHNldCB0byBFVF9FWEVDLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBETF9FUlIoIiVzIFJfQVJNX0NPUFkgcmVsb2NhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiLCBzaS0+bmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoKHNpLT5mbGFncyAmIEZMQUdfRVhFKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuaWhpMDA0NGQvSUhJMDA0NERfYWFlbGYucGRmCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiBTZWN0aW9uIDQuNy4xLjEwICJEeW5hbWljIHJlbG9jYXRpb25zIgorICAgICAgICAgICAgICAgICAqIFJfQVJNX0NPUFkgbWF5IG9ubHkgYXBwZWFyIGluIGV4ZWN1dGFibGUgb2JqZWN0cyB3aGVyZSBlX3R5cGUgaXMKKyAgICAgICAgICAgICAgICAgKiBzZXQgdG8gRVRfRVhFQy4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIFRPRE86IEZMQUdfRVhFIGlzIHNldCBmb3IgYm90aCBFVF9EWU4gYW5kIEVUX0VYRUMgZXhlY3V0YWJsZXMuCisgICAgICAgICAgICAgICAgICogV2Ugc2hvdWxkIGV4cGxpY2l0bHkgZGlzYWxsb3cgRVRfRFlOIGV4ZWN1dGFibGVzIGZyb20gaGF2aW5nCisgICAgICAgICAgICAgICAgICogUl9BUk1fQ09QWSByZWxvY2F0aW9ucy4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBETF9FUlIoIiVzIFJfQVJNX0NPUFkgcmVsb2NhdGlvbnMgb25seSBzdXBwb3J0ZWQgZm9yIEVUX0VYRUMiLCBzaS0+bmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY291bnRfcmVsb2NhdGlvbihrUmVsb2NDb3B5KTsKKyAgICAgICAgICAgIE1BUksocmVsLT5yX29mZnNldCk7CisgICAgICAgICAgICBUUkFDRV9UWVBFKFJFTE8sICJSRUxPICUwOHggPC0gJWQgQCAlMDh4ICVzIiwgcmVsb2MsIHMtPnN0X3NpemUsIHN5bV9hZGRyLCBzeW1fbmFtZSk7CisgICAgICAgICAgICBpZiAocmVsb2MgPT0gc3ltX2FkZHIpIHsKKyAgICAgICAgICAgICAgICBFbGZXKFN5bSkqIHNyYyA9IHNvaW5mb19kb19sb29rdXAoTlVMTCwgc3ltX25hbWUsICZsc2ksIG5lZWRlZCk7CisKKyAgICAgICAgICAgICAgICBpZiAoc3JjID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgRExfRVJSKCIlcyBSX0FSTV9DT1BZIHJlbG9jYXRpb24gc291cmNlIGNhbm5vdCBiZSByZXNvbHZlZCIsIHNpLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAobHNpLT5oYXNfRFRfU1lNQk9MSUMpIHsKKyAgICAgICAgICAgICAgICAgICAgRExfRVJSKCIlcyBpbnZhbGlkIFJfQVJNX0NPUFkgcmVsb2NhdGlvbiBhZ2FpbnN0IERUX1NZTUJPTElDIHNoYXJlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeSAlcyAoYnVpbHQgd2l0aCAtQnN5bWJvbGljPykiLCBzaS0+bmFtZSwgbHNpLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocy0+c3Rfc2l6ZSA8IHNyYy0+c3Rfc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBETF9FUlIoIiVzIFJfQVJNX0NPUFkgcmVsb2NhdGlvbiBzaXplIG1pc21hdGNoICglZCA8ICVkKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaS0+bmFtZSwgcy0+c3Rfc2l6ZSwgc3JjLT5zdF9zaXplKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtZW1jcHkocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVsb2MpLAorICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihzcmMtPnN0X3ZhbHVlICsgbHNpLT5sb2FkX2JpYXMpLCBzcmMtPnN0X3NpemUpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBETF9FUlIoIiVzIFJfQVJNX0NPUFkgcmVsb2NhdGlvbiB0YXJnZXQgY2Fubm90IGJlIHJlc29sdmVkIiwgc2ktPm5hbWUpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogI2VsaWYgZGVmaW5lZChfX2kzODZfXykKICAgICAgICAgY2FzZSBSXzM4Nl9KTVBfU0xPVDoKICAgICAgICAgICAgIGNvdW50X3JlbG9jYXRpb24oa1JlbG9jQWJzb2x1dGUpOwpAQCAtMjEwNSwxMSArMjE3MiwxMyBAQAogICAgIHNpLT5keW5hbWljID0gTlVMTDsKICAgICBzaS0+cmVmX2NvdW50ID0gMTsKIAorI2lmIGRlZmluZWQoX19MUDY0X18pCiAgICAgRWxmVyhFaGRyKSogZWxmX2hkciA9IHJlaW50ZXJwcmV0X2Nhc3Q8RWxmVyhFaGRyKSo+KHNpLT5iYXNlKTsKICAgICBpZiAoZWxmX2hkci0+ZV90eXBlICE9IEVUX0RZTikgewogICAgICAgICBfX2xpYmNfZm9ybWF0X2ZkKDIsICJlcnJvcjogb25seSBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlcyAoUElFKSBhcmUgc3VwcG9ydGVkLlxuIik7CiAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKICAgICB9CisjZW5kaWYKIAogICAgIC8vIFVzZSBMRF9MSUJSQVJZX1BBVEggYW5kIExEX1BSRUxPQUQgKGJ1dCBvbmx5IGlmIHdlIGFyZW4ndCBzZXR1aWQvc2V0Z2lkKS4KICAgICBwYXJzZV9MRF9MSUJSQVJZX1BBVEgobGRwYXRoX2Vudik7CmRpZmYgLS1naXQgYS90ZXN0cy9BbmRyb2lkLmJ1aWxkLm1rIGIvdGVzdHMvQW5kcm9pZC5idWlsZC5tawppbmRleCBjMWEwZjE2Li42NDMzZDU1IDEwMDY0NAotLS0gYS90ZXN0cy9BbmRyb2lkLmJ1aWxkLm1rCisrKyBiL3Rlc3RzL0FuZHJvaWQuYnVpbGQubWsKQEAgLTE4LDIwICsxOCwyNCBAQAogCiBMT0NBTF9NT0RVTEUgOj0gJChtb2R1bGUpCiBMT0NBTF9NT0RVTEVfVEFHUyA6PSAkKG1vZHVsZV90YWcpCitpZmVxICgkKGJ1aWxkX3R5cGUpLGhvc3QpCisjIEFsd2F5cyBtYWtlIGhvc3QgbXVsdGlsaWIKK0xPQ0FMX01VTFRJTElCIDo9IGJvdGgKK2Vsc2UKIExPQ0FMX01VTFRJTElCIDo9ICQoJChtb2R1bGUpX211bHRpbGliKQorZW5kaWYKKworaWZuZXEgKCQoZmluZHN0cmluZyBMSUJSQVJZLCAkKGJ1aWxkX3RhcmdldCkpLExJQlJBUlkpCiBpZmVxICgkKExPQ0FMX01VTFRJTElCKSxib3RoKQogICAgIExPQ0FMX01PRFVMRV9TVEVNXzMyIDo9ICQobW9kdWxlKTMyCiAgICAgTE9DQUxfTU9EVUxFX1NURU1fNjQgOj0gJChtb2R1bGUpNjQKIGVuZGlmCitlbmRpZgogCiBMT0NBTF9DTEFORyA6PSAkKCQobW9kdWxlKV9jbGFuZ18kKGJ1aWxkX3R5cGUpKQogCiBMT0NBTF9GT1JDRV9TVEFUSUNfRVhFQ1VUQUJMRSA6PSAkKCQobW9kdWxlKV9mb3JjZV9zdGF0aWNfZXhlY3V0YWJsZSkKIAotTE9DQUxfQURESVRJT05BTF9ERVBFTkRFTkNJRVMgOj0gXAotICAgICQoTE9DQUxfUEFUSCkvQW5kcm9pZC5tayBcCi0gICAgJChMT0NBTF9QQVRIKS9BbmRyb2lkLmJ1aWxkLm1rIFwKLQogTE9DQUxfQ0ZMQUdTIDo9IFwKICAgICAkKGNvbW1vbl9jZmxhZ3MpIFwKICAgICAkKCQobW9kdWxlKV9jZmxhZ3MpIFwKZGlmZiAtLWdpdCBhL3Rlc3RzL0FuZHJvaWQubWsgYi90ZXN0cy9BbmRyb2lkLm1rCmluZGV4IDI1ZjhiMmIuLjQ3ZTYyNzIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL0FuZHJvaWQubWsKKysrIGIvdGVzdHMvQW5kcm9pZC5tawpAQCAtMTE1LDkgKzExNSwxOCBAQAogbGliQmlvbmljU3RhbmRhcmRUZXN0c19jZmxhZ3MgOj0gXAogICAgICQodGVzdF9jZmxhZ3MpIFwKIAoraWZlcSAoJChNQUxMT0NfSU1QTCksamVtYWxsb2MpCisgIGxpYkJpb25pY1N0YW5kYXJkVGVzdHNfY2ZsYWdzICs9IC1EVVNFX0pFTUFMTE9DCitlbHNlCisgIGxpYkJpb25pY1N0YW5kYXJkVGVzdHNfY2ZsYWdzICs9IC1EVVNFX0RMTUFMTE9DCitlbmRpZgorCiBsaWJCaW9uaWNTdGFuZGFyZFRlc3RzX2NwcGZsYWdzIDo9IFwKICAgICAkKHRlc3RfY3BwZmxhZ3MpIFwKIAorbGliQmlvbmljU3RhbmRhcmRUZXN0c19jX2luY2x1ZGVzIDo9IFwKKyAgICBiaW9uaWMvbGliYyBcCisKIGxpYkJpb25pY1N0YW5kYXJkVGVzdHNfbGRsaWJzX2hvc3QgOj0gXAogICAgIC1scnQgXAogCkBAIC0yMjQsMTAyICsyMzMsNiBAQAogaW5jbHVkZSAkKExPQ0FMX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBMaWJyYXJ5IHVzZWQgYnkgZGxmY24gdGVzdHMuCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1pZm5lcSAoJChUQVJHRVRfQVJDSCksJChmaWx0ZXIgJChUQVJHRVRfQVJDSCksbWlwcyBtaXBzNjQpKQotbm8tZWxmLWhhc2gtdGFibGUtbGlicmFyeV9zcmNfZmlsZXMgOj0gXAotICAgIGVtcHR5LmNwcCBcCi0KLW5vLWVsZi1oYXNoLXRhYmxlLWxpYnJhcnlfbGRmbGFncyA6PSBcCi0gICAgLVdsLC0taGFzaC1zdHlsZT1nbnUgXAotCi1tb2R1bGUgOj0gbm8tZWxmLWhhc2gtdGFibGUtbGlicmFyeQotbW9kdWxlX3RhZyA6PSBvcHRpb25hbAotYnVpbGRfdHlwZSA6PSB0YXJnZXQKLWJ1aWxkX3RhcmdldCA6PSBTSEFSRURfTElCUkFSWQotaW5jbHVkZSAkKExPQ0FMX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKLWVuZGlmCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgTGlicmFyeSB1c2VkIGJ5IGRsZXh0IHRlc3RzIC0gd2l0aC93aXRob3V0IEdOVSBSRUxSTyBwcm9ncmFtIGhlYWRlcgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotbGliZGxleHRfdGVzdF9zcmNfZmlsZXMgOj0gXAotICAgIGRsZXh0X3Rlc3RfbGlicmFyeS5jcHAgXAotCi1saWJkbGV4dF90ZXN0X2xkZmxhZ3MgOj0gXAotICAgIC1XbCwteixyZWxybyBcCi0KLW1vZHVsZSA6PSBsaWJkbGV4dF90ZXN0Ci1tb2R1bGVfdGFnIDo9IG9wdGlvbmFsCi1idWlsZF90eXBlIDo9IHRhcmdldAotYnVpbGRfdGFyZ2V0IDo9IFNIQVJFRF9MSUJSQVJZCi1pbmNsdWRlICQoTE9DQUxfUEFUSCkvQW5kcm9pZC5idWlsZC5tawotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIGNyZWF0ZSBzeW1saW5rIHRvIGxpYmRsZXh0X3Rlc3Quc28gZm9yIHN5bWxpbmsgdGVzdAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotbGliZGxleHRfb3JpZ2luIDo9ICQoTE9DQUxfSU5TVEFMTEVEX01PRFVMRSkKLWxpYmRsZXh0X3N5bSA6PSAkKHN1YnN0IGxpYmRsZXh0X3Rlc3QsbGliZGxleHRfdGVzdF92MiwkKGxpYmRsZXh0X29yaWdpbikpCi0kKGxpYmRsZXh0X3N5bSk6ICQobGliZGxleHRfb3JpZ2luKQotCUBlY2hvICJTeW1saW5rOiAkQCAtPiAkKG5vdGRpciAkPCkiCi0JQG1rZGlyIC1wICQoZGlyICRAKQotCSQoaGlkZSkgbG4gLXNmICQobm90ZGlyICQ8KSAkQAotCi1BTExfTU9EVUxFUyA6PSBcCi0gICQoQUxMX01PRFVMRVMpICQobGliZGxleHRfc3ltKQotCi1pZm5lcSAoJChUQVJHRVRfMk5EX0FSQ0gpLCkKLSMgbGluayA2NCBiaXQgLnNvCi1saWJkbGV4dF9vcmlnaW4gOj0gJChUQVJHRVRfT1VUKS9saWI2NC9saWJkbGV4dF90ZXN0LnNvCi1saWJkbGV4dF9zeW0gOj0gJChzdWJzdCBsaWJkbGV4dF90ZXN0LGxpYmRsZXh0X3Rlc3RfdjIsJChsaWJkbGV4dF9vcmlnaW4pKQotJChsaWJkbGV4dF9zeW0pOiAkKGxpYmRsZXh0X29yaWdpbikKLQlAZWNobyAiU3ltbGluazogJEAgLT4gJChub3RkaXIgJDwpIgotCUBta2RpciAtcCAkKGRpciAkQCkKLQkkKGhpZGUpIGxuIC1zZiAkKG5vdGRpciAkPCkgJEAKLQotQUxMX01PRFVMRVMgOj0gXAotICAkKEFMTF9NT0RVTEVTKSAkKGxpYmRsZXh0X3N5bSkKLWVuZGlmCi0KLWxpYmRsZXh0X3Rlc3Rfbm9yZWxyb19zcmNfZmlsZXMgOj0gXAotICAgIGRsZXh0X3Rlc3RfbGlicmFyeS5jcHAgXAotCi1saWJkbGV4dF90ZXN0X25vcmVscm9fbGRmbGFncyA6PSBcCi0gICAgLVdsLC16LG5vcmVscm8gXAotCi1tb2R1bGUgOj0gbGliZGxleHRfdGVzdF9ub3JlbHJvCi1tb2R1bGVfdGFnIDo9IG9wdGlvbmFsCi1idWlsZF90eXBlIDo9IHRhcmdldAotYnVpbGRfdGFyZ2V0IDo9IFNIQVJFRF9MSUJSQVJZCi1pbmNsdWRlICQoTE9DQUxfUEFUSCkvQW5kcm9pZC5idWlsZC5tawotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIExpYnJhcnkgdXNlZCBieSBkbGZjbiB0ZXN0cwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotbGlidGVzdF9zaW1wbGVfc3JjX2ZpbGVzIDo9IFwKLSAgICBkbG9wZW5fdGVzdGxpYl9zaW1wbGUuY3BwCi0KLW1vZHVsZSA6PSBsaWJ0ZXN0X3NpbXBsZQotYnVpbGRfdHlwZSA6PSB0YXJnZXQKLWJ1aWxkX3RhcmdldCA6PSBTSEFSRURfTElCUkFSWQotaW5jbHVkZSAkKExPQ0FMX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKLQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIExpYnJhcnkgdXNlZCBieSBhdGV4aXQgdGVzdHMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotbGlidGVzdF9hdGV4aXRfc3JjX2ZpbGVzIDo9IFwKLSAgICBhdGV4aXRfdGVzdGxpYi5jcHAKLQotbW9kdWxlIDo9IGxpYnRlc3RfYXRleGl0Ci1idWlsZF90YXJnZXQgOj0gU0hBUkVEX0xJQlJBUlkKLWJ1aWxkX3R5cGUgOj0gdGFyZ2V0Ci1pbmNsdWRlICQoTE9DQUxfUEFUSCkvQW5kcm9pZC5idWlsZC5tawotYnVpbGRfdHlwZSA6PSBob3N0Ci1pbmNsdWRlICQoTE9DQUxfUEFUSCkvQW5kcm9pZC5idWlsZC5tawotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFRlc3RzIGZvciB0aGUgZGV2aWNlIHVzaW5nIGJpb25pYydzIC5zby4gUnVuIHdpdGg6CiAjICAgYWRiIHNoZWxsIC9kYXRhL25hdGl2ZXRlc3QvYmlvbmljLXVuaXQtdGVzdHMvYmlvbmljLXVuaXQtdGVzdHMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM3OSw3ICsyOTIsNyBAQAogIyAgIGNkIGJpb25pYy90ZXN0czsgbW0gYmlvbmljLXVuaXQtdGVzdHMtZ2xpYmMtcnVuCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlmZXEgKCQoSE9TVF9PUyktJChIT1NUX0FSQ0gpLGxpbnV4LXg4NikKK2lmZXEgKCQoSE9TVF9PUyktJChIT1NUX0FSQ0gpLCQoZmlsdGVyICQoSE9TVF9PUyktJChIT1NUX0FSQ0gpLGxpbnV4LXg4NiBsaW51eC14ODZfNjQpKQogCiBiaW9uaWMtdW5pdC10ZXN0cy1nbGliY19zcmNfZmlsZXMgOj0gXAogICAgIGF0ZXhpdF90ZXN0LmNwcCBcCkBAIC00NDMsNCArMzU2LDUgQEAKIAogZW5kaWYgIyBsaW51eC14ODYKIAoraW5jbHVkZSAkKGNhbGwgZmlyc3QtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCiBlbmRpZiAjICFCVUlMRF9USU5ZX0FORFJPSUQKZGlmZiAtLWdpdCBhL3Rlc3RzL1RlbXBvcmFyeUZpbGUuaCBiL3Rlc3RzL1RlbXBvcmFyeUZpbGUuaAppbmRleCBhN2IxM2IwLi5jNGVlMmQ1IDEwMDY0NAotLS0gYS90ZXN0cy9UZW1wb3JhcnlGaWxlLmgKKysrIGIvdGVzdHMvVGVtcG9yYXJ5RmlsZS5oCkBAIC0xNCw2ICsxNCw3IEBACiAgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAqLwogCisjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KIAogdGVtcGxhdGU8aW50ICgqbWtfZm4pKGNoYXIqKT4KQEAgLTM5LDYgKzQwLDExIEBACiAgICAgdW5saW5rKGZpbGVuYW1lKTsKICAgfQogCisgIHZvaWQgcmVvcGVuKCkgeworICAgIGNsb3NlKGZkKTsKKyAgICBmZCA9IG9wZW4oZmlsZW5hbWUsIE9fUkRXUik7CisgIH0KKwogICBpbnQgZmQ7CiAgIGNoYXIgZmlsZW5hbWVbMTAyNF07CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2RsZmNuX3Rlc3QuY3BwIGIvdGVzdHMvZGxmY25fdGVzdC5jcHAKaW5kZXggNDljYmI3ZC4uOGI4OTE4MyAxMDA2NDQKLS0tIGEvdGVzdHMvZGxmY25fdGVzdC5jcHAKKysrIGIvdGVzdHMvZGxmY25fdGVzdC5jcHAKQEAgLTI1NCw2ICsyNTQsMTggQEAKICAgQVNTRVJUX1RSVUUoYWRkciAhPSBOVUxMKTsKIH0KIAorVEVTVChkbGZjbiwgZGxzeW1fd2Vha19mdW5jKSB7CisgIGRsZXJyb3IoKTsKKyAgdm9pZCogaGFuZGxlID0gZGxvcGVuKCJsaWJ0ZXN0X2Rsc3ltX3dlYWtfZnVuYy5zbyIsUlRMRF9OT1cpOworICBBU1NFUlRfVFJVRShoYW5kbGUgIT0gTlVMTCk7CisKKyAgaW50ICgqd2Vha19mdW5jKSgpOworICB3ZWFrX2Z1bmMgPSByZWludGVycHJldF9jYXN0PGludCAoKikoKT4oZGxzeW0oaGFuZGxlLCAid2Vha19mdW5jIikpOworICBBU1NFUlRfVFJVRSh3ZWFrX2Z1bmMgIT0gTlVMTCkgPDwgImRsZXJyb3I6ICIgPDwgZGxlcnJvcigpOworICBFWFBFQ1RfRVEoNDIsIHdlYWtfZnVuYygpKTsKKyAgZGxjbG9zZShoYW5kbGUpOworfQorCiBURVNUKGRsZmNuLCBkbG9wZW5fc3ltbGluaykgewogICB2b2lkKiBoYW5kbGUxID0gZGxvcGVuKCJsaWJkbGV4dF90ZXN0LnNvIiwgUlRMRF9OT1cpOwogICB2b2lkKiBoYW5kbGUyID0gZGxvcGVuKCJsaWJkbGV4dF90ZXN0X3YyLnNvIiwgUlRMRF9OT1cpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvZmNudGxfdGVzdC5jcHAgYi90ZXN0cy9mY250bF90ZXN0LmNwcAppbmRleCBmYjZiMDdlLi41ZjIwMjk1IDEwMDY0NAotLS0gYS90ZXN0cy9mY250bF90ZXN0LmNwcAorKysgYi90ZXN0cy9mY250bF90ZXN0LmNwcApAQCAtMTMyLDMgKzEzMiw4NyBAQAogCiAgIGNsb3NlKGZkKTsKIH0KKworVEVTVChmY250bCwgc3BsaWNlKSB7CisgIGludCBwaXBlX2Zkc1syXTsKKyAgQVNTRVJUX0VRKDAsIHBpcGUocGlwZV9mZHMpKTsKKworICBpbnQgaW4gPSBvcGVuKCIvcHJvYy9jcHVpbmZvIiwgT19SRE9OTFkpOworICBBU1NFUlRfTkUoaW4sIC0xKTsKKworICBUZW1wb3JhcnlGaWxlIHRmOworCisgIHNzaXplX3QgYnl0ZXNfcmVhZCA9IHNwbGljZShpbiwgMCwgcGlwZV9mZHNbMV0sIE5VTEwsIDgqMTAyNCwgU1BMSUNFX0ZfTU9SRSB8IFNQTElDRV9GX01PVkUpOworICBBU1NFUlRfTkUoYnl0ZXNfcmVhZCwgLTEpOworCisgIHNzaXplX3QgYnl0ZXNfd3JpdHRlbiA9IHNwbGljZShwaXBlX2Zkc1swXSwgTlVMTCwgdGYuZmQsIDAsIGJ5dGVzX3JlYWQsIFNQTElDRV9GX01PUkUgfCBTUExJQ0VfRl9NT1ZFKTsKKyAgQVNTRVJUX0VRKGJ5dGVzX3JlYWQsIGJ5dGVzX3dyaXR0ZW4pOworCisgIGNsb3NlKHBpcGVfZmRzWzBdKTsKKyAgY2xvc2UocGlwZV9mZHNbMV0pOworICBjbG9zZShpbik7Cit9CisKK1RFU1QoZmNudGwsIHZtc3BsaWNlKSB7CisgIGludCBwaXBlX2Zkc1syXTsKKyAgQVNTRVJUX0VRKDAsIHBpcGUocGlwZV9mZHMpKTsKKworICBpb3ZlYyB2WzJdOworICB2WzBdLmlvdl9iYXNlID0gY29uc3RfY2FzdDxjaGFyKj4oImhlbGxvICIpOworICB2WzBdLmlvdl9sZW4gPSA2OworICB2WzFdLmlvdl9iYXNlID0gY29uc3RfY2FzdDxjaGFyKj4oIndvcmxkXG4iKTsKKyAgdlsxXS5pb3ZfbGVuID0gNjsKKyAgc3NpemVfdCBieXRlc193cml0dGVuID0gdm1zcGxpY2UocGlwZV9mZHNbMV0sIHYsIHNpemVvZih2KS9zaXplb2YoaW92ZWMpLCAwKTsKKyAgQVNTRVJUX0VRKHZbMF0uaW92X2xlbiArIHZbMV0uaW92X2xlbiwgc3RhdGljX2Nhc3Q8c2l6ZV90PihieXRlc193cml0dGVuKSk7CisgIGNsb3NlKHBpcGVfZmRzWzFdKTsKKworICBjaGFyIGJ1ZltCVUZTSVpdOworICBGSUxFKiBmcCA9IGZkb3BlbihwaXBlX2Zkc1swXSwgInIiKTsKKyAgQVNTRVJUX1RSVUUoZnAgIT0gTlVMTCk7CisgIEFTU0VSVF9UUlVFKGZnZXRzKGJ1Ziwgc2l6ZW9mKGJ1ZiksIGZwKSAhPSBOVUxMKTsKKyAgZmNsb3NlKGZwKTsKKyAgQVNTRVJUX1NUUkVRKCJoZWxsbyB3b3JsZFxuIiwgYnVmKTsKK30KKworVEVTVChmY250bCwgdGVlKSB7CisgIGNoYXIgZXhwZWN0ZWRbMjU2XTsKKyAgRklMRSogZXhwZWN0ZWRfZnAgPSBmb3BlbigiL3Byb2MvdmVyc2lvbiIsICJyIik7CisgIEFTU0VSVF9UUlVFKGV4cGVjdGVkX2ZwICE9IE5VTEwpOworICBBU1NFUlRfVFJVRShmZ2V0cyhleHBlY3RlZCwgc2l6ZW9mKGV4cGVjdGVkKSwgZXhwZWN0ZWRfZnApICE9IE5VTEwpOworICBmY2xvc2UoZXhwZWN0ZWRfZnApOworCisgIGludCBwaXBlMVsyXTsKKyAgQVNTRVJUX0VRKDAsIHBpcGUocGlwZTEpKTsKKworICBpbnQgcGlwZTJbMl07CisgIEFTU0VSVF9FUSgwLCBwaXBlKHBpcGUyKSk7CisKKyAgaW50IGluID0gb3BlbigiL3Byb2MvdmVyc2lvbiIsIE9fUkRPTkxZKTsKKyAgQVNTRVJUX05FKGluLCAtMSk7CisKKyAgLy8gV3JpdGUgL3Byb2MvdmVyc2lvbiBpbnRvIHBpcGUxLgorICBzc2l6ZV90IGJ5dGVzX3JlYWQgPSBzcGxpY2UoaW4sIDAsIHBpcGUxWzFdLCBOVUxMLCA4KjEwMjQsIFNQTElDRV9GX01PUkUgfCBTUExJQ0VfRl9NT1ZFKTsKKyAgQVNTRVJUX05FKGJ5dGVzX3JlYWQsIC0xKTsKKyAgY2xvc2UocGlwZTFbMV0pOworCisgIC8vIFRlZSAvcHJvYy92ZXJzaW9uIGZyb20gcGlwZTEgaW50byBwaXBlMi4KKyAgc3NpemVfdCBieXRlc190ZWVkID0gdGVlKHBpcGUxWzBdLCBwaXBlMlsxXSwgU0laRV9NQVgsIDApOworICBBU1NFUlRfRVEoYnl0ZXNfcmVhZCwgYnl0ZXNfdGVlZCk7CisgIGNsb3NlKHBpcGUyWzFdKTsKKworICAvLyBUaGUgb3V0IGZkcyBvZiBib3RoIHBpcGUxIGFuZCBwaXBlMiBzaG91bGQgbm93IGNvbnRhaW4gL3Byb2MvdmVyc2lvbi4KKyAgY2hhciBidWYxW0JVRlNJWl07CisgIEZJTEUqIGZwMSA9IGZkb3BlbihwaXBlMVswXSwgInIiKTsKKyAgQVNTRVJUX1RSVUUoZnAxICE9IE5VTEwpOworICBBU1NFUlRfVFJVRShmZ2V0cyhidWYxLCBzaXplb2YoYnVmMSksIGZwMSkgIT0gTlVMTCk7CisgIGZjbG9zZShmcDEpOworCisgIGNoYXIgYnVmMltCVUZTSVpdOworICBGSUxFKiBmcDIgPSBmZG9wZW4ocGlwZTJbMF0sICJyIik7CisgIEFTU0VSVF9UUlVFKGZwMiAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUoZmdldHMoYnVmMiwgc2l6ZW9mKGJ1ZjIpLCBmcDIpICE9IE5VTEwpOworICBmY2xvc2UoZnAyKTsKKworICBBU1NFUlRfU1RSRVEoZXhwZWN0ZWQsIGJ1ZjEpOworICBBU1NFUlRfU1RSRVEoZXhwZWN0ZWQsIGJ1ZjIpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbGlicy9BbmRyb2lkLm1rIGIvdGVzdHMvbGlicy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZWE1NjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9saWJzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMTcgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEyIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKK1RFU1RfUEFUSCA6PSAkKExPQ0FMX1BBVEgpLy4uCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTGlicmFyeSB1c2VkIGJ5IGRsZmNuIHRlc3RzLgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoraWZuZXEgKCQoVEFSR0VUX0FSQ0gpLCQoZmlsdGVyICQoVEFSR0VUX0FSQ0gpLG1pcHMgbWlwczY0KSkKK25vLWVsZi1oYXNoLXRhYmxlLWxpYnJhcnlfc3JjX2ZpbGVzIDo9IFwKKyAgICBlbXB0eS5jcHAgXAorCituby1lbGYtaGFzaC10YWJsZS1saWJyYXJ5X2xkZmxhZ3MgOj0gXAorICAgIC1XbCwtLWhhc2gtc3R5bGU9Z251IFwKKworbW9kdWxlIDo9IG5vLWVsZi1oYXNoLXRhYmxlLWxpYnJhcnkKK21vZHVsZV90YWcgOj0gb3B0aW9uYWwKK2J1aWxkX3R5cGUgOj0gdGFyZ2V0CitidWlsZF90YXJnZXQgOj0gU0hBUkVEX0xJQlJBUlkKK2luY2x1ZGUgJChURVNUX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKK2VuZGlmCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgTGlicmFyeSB1c2VkIGJ5IGRsZXh0IHRlc3RzIC0gd2l0aCBHTlUgUkVMUk8gcHJvZ3JhbSBoZWFkZXIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2xpYmRsZXh0X3Rlc3Rfc3JjX2ZpbGVzIDo9IFwKKyAgICBkbGV4dF90ZXN0X2xpYnJhcnkuY3BwIFwKKworbGliZGxleHRfdGVzdF9sZGZsYWdzIDo9IFwKKyAgICAtV2wsLXoscmVscm8gXAorCittb2R1bGUgOj0gbGliZGxleHRfdGVzdAorbW9kdWxlX3RhZyA6PSBvcHRpb25hbAorYnVpbGRfdHlwZSA6PSB0YXJnZXQKK2J1aWxkX3RhcmdldCA6PSBTSEFSRURfTElCUkFSWQoraW5jbHVkZSAkKFRFU1RfUEFUSCkvQW5kcm9pZC5idWlsZC5taworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGNyZWF0ZSBzeW1saW5rIHRvIGxpYmRsZXh0X3Rlc3Quc28gZm9yIHN5bWxpbmsgdGVzdAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBVc2UgPSBpbnN0ZWFkIG9mIDo9IHRvIGRlZmVyIHRoZSBldmFsdWF0aW9uIG9mICRACiskKExPQ0FMX0lOU1RBTExFRF9NT0RVTEUpOiBQUklWQVRFX1BPU1RfSU5TVEFMTF9DTUQgPSBcCisgICAgJChoaWRlKSBjZCAkKGRpciAkQCkgJiYgbG4gLXNmICQobm90ZGlyICRAKSBsaWJkbGV4dF90ZXN0X3YyLnNvCisKK2lmbmVxICgkKFRBUkdFVF8yTkRfQVJDSCksKQorIyBsaW5rIDY0IGJpdCAuc28KKyQoVEFSR0VUX09VVCkvbGliNjQvbGliZGxleHRfdGVzdC5zbzogUFJJVkFURV9QT1NUX0lOU1RBTExfQ01EID0gXAorICAgICQoaGlkZSkgY2QgJChkaXIgJEApICYmIGxuIC1zZiAkKG5vdGRpciAkQCkgbGliZGxleHRfdGVzdF92Mi5zbworZW5kaWYKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBMaWJyYXJ5IHVzZWQgYnkgZGxleHQgdGVzdHMgLSB3aXRob3V0IEdOVSBSRUxSTyBwcm9ncmFtIGhlYWRlcgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbGliZGxleHRfdGVzdF9ub3JlbHJvX3NyY19maWxlcyA6PSBcCisgICAgZGxleHRfdGVzdF9saWJyYXJ5LmNwcCBcCisKK2xpYmRsZXh0X3Rlc3Rfbm9yZWxyb19sZGZsYWdzIDo9IFwKKyAgICAtV2wsLXosbm9yZWxybyBcCisKK21vZHVsZSA6PSBsaWJkbGV4dF90ZXN0X25vcmVscm8KK21vZHVsZV90YWcgOj0gb3B0aW9uYWwKK2J1aWxkX3R5cGUgOj0gdGFyZ2V0CitidWlsZF90YXJnZXQgOj0gU0hBUkVEX0xJQlJBUlkKK2luY2x1ZGUgJChURVNUX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBMaWJyYXJ5IHVzZWQgYnkgZGxmY24gdGVzdHMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK2xpYnRlc3Rfc2ltcGxlX3NyY19maWxlcyA6PSBcCisgICAgZGxvcGVuX3Rlc3RsaWJfc2ltcGxlLmNwcAorCittb2R1bGUgOj0gbGlidGVzdF9zaW1wbGUKK2J1aWxkX3R5cGUgOj0gdGFyZ2V0CitidWlsZF90YXJnZXQgOj0gU0hBUkVEX0xJQlJBUlkKK2luY2x1ZGUgJChURVNUX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKKworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIExpYnJhcnkgdXNlZCBieSBhdGV4aXQgdGVzdHMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbGlidGVzdF9hdGV4aXRfc3JjX2ZpbGVzIDo9IFwKKyAgICBhdGV4aXRfdGVzdGxpYi5jcHAKKworbW9kdWxlIDo9IGxpYnRlc3RfYXRleGl0CitidWlsZF90YXJnZXQgOj0gU0hBUkVEX0xJQlJBUlkKK2J1aWxkX3R5cGUgOj0gdGFyZ2V0CitpbmNsdWRlICQoVEVTVF9QQVRIKS9BbmRyb2lkLmJ1aWxkLm1rCitidWlsZF90eXBlIDo9IGhvc3QKK2luY2x1ZGUgJChURVNUX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBMaWJyYXJ5IHdpdGggd2VhayBmdW5jdGlvbgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorbGlidGVzdF9kbHN5bV93ZWFrX2Z1bmNfc3JjX2ZpbGVzIDo9IFwKKyAgICBkbHN5bV93ZWFrX2Z1bmN0aW9uLmNwcAorCittb2R1bGUgOj0gbGlidGVzdF9kbHN5bV93ZWFrX2Z1bmMKK2J1aWxkX3RhcmdldCA6PSBTSEFSRURfTElCUkFSWQorYnVpbGRfdHlwZSA6PSB0YXJnZXQKK2luY2x1ZGUgJChURVNUX1BBVEgpL0FuZHJvaWQuYnVpbGQubWsKK2J1aWxkX3R5cGUgOj0gaG9zdAoraW5jbHVkZSAkKFRFU1RfUEFUSCkvQW5kcm9pZC5idWlsZC5tawpkaWZmIC0tZ2l0IGEvdGVzdHMvYXRleGl0X3Rlc3RsaWIuY3BwIGIvdGVzdHMvbGlicy9hdGV4aXRfdGVzdGxpYi5jcHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRlc3RzL2F0ZXhpdF90ZXN0bGliLmNwcApyZW5hbWUgdG8gdGVzdHMvbGlicy9hdGV4aXRfdGVzdGxpYi5jcHAKZGlmZiAtLWdpdCBhL3Rlc3RzL2RsZXh0X3Rlc3RfbGlicmFyeS5jcHAgYi90ZXN0cy9saWJzL2RsZXh0X3Rlc3RfbGlicmFyeS5jcHAKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHRlc3RzL2RsZXh0X3Rlc3RfbGlicmFyeS5jcHAKcmVuYW1lIHRvIHRlc3RzL2xpYnMvZGxleHRfdGVzdF9saWJyYXJ5LmNwcApkaWZmIC0tZ2l0IGEvdGVzdHMvZGxvcGVuX3Rlc3RsaWJfc2ltcGxlLmNwcCBiL3Rlc3RzL2xpYnMvZGxvcGVuX3Rlc3RsaWJfc2ltcGxlLmNwcApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdGVzdHMvZGxvcGVuX3Rlc3RsaWJfc2ltcGxlLmNwcApyZW5hbWUgdG8gdGVzdHMvbGlicy9kbG9wZW5fdGVzdGxpYl9zaW1wbGUuY3BwCmRpZmYgLS1naXQgYS9saWJjL2luY2x1ZGUvc2hhMS5oIGIvdGVzdHMvbGlicy9kbHN5bV93ZWFrX2Z1bmN0aW9uLmNwcApzaW1pbGFyaXR5IGluZGV4IDc1JQpyZW5hbWUgZnJvbSBsaWJjL2luY2x1ZGUvc2hhMS5oCnJlbmFtZSB0byB0ZXN0cy9saWJzL2Rsc3ltX3dlYWtfZnVuY3Rpb24uY3BwCmluZGV4IDdmNmNmNWQuLmUzOGYyYjggMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9zaGExLmgKKysrIGIvdGVzdHMvbGlicy9kbHN5bV93ZWFrX2Z1bmN0aW9uLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogQ29weXJpZ2h0IChDKSAyMDE0IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKICAqCiAgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KQEAgLTE0LDEwICsxNCw3IEBACiAgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICAqLwogCi0jaWZuZGVmIF9TSEExX0hfCi0jZGVmaW5lIF9TSEExX0hfCitleHRlcm4gIkMiIGludCBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgd2Vha19mdW5jKCkgeworICByZXR1cm4gNDI7Cit9CiAKLSN3YXJuaW5nICJpbmNsdWRlIDxzeXMvc2hhMS5oPiBpbnN0ZWFkIGZvciBiZXR0ZXIgcG9ydGFiaWxpdHkiCi0jaW5jbHVkZSA8c3lzL3NoYTEuaD4KLQotI2VuZGlmCmRpZmYgLS1naXQgYS90ZXN0cy9lbXB0eS5jcHAgYi90ZXN0cy9saWJzL2VtcHR5LmNwcApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gdGVzdHMvZW1wdHkuY3BwCnJlbmFtZSB0byB0ZXN0cy9saWJzL2VtcHR5LmNwcApkaWZmIC0tZ2l0IGEvdGVzdHMvbWFsbG9jX3Rlc3QuY3BwIGIvdGVzdHMvbWFsbG9jX3Rlc3QuY3BwCmluZGV4IDEyYTVmZmEuLjZiN2EyOGIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21hbGxvY190ZXN0LmNwcAorKysgYi90ZXN0cy9tYWxsb2NfdGVzdC5jcHAKQEAgLTE2LDE4ICsxNiwyOCBAQAogCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAicHJpdmF0ZS9iaW9uaWNfY29uZmlnLmgiCiAKIFRFU1QobWFsbG9jLCBtYWxsb2Nfc3RkKSB7CiAgIC8vIFNpbXBsZSBtYWxsb2MgdGVzdC4KICAgdm9pZCAqcHRyID0gbWFsbG9jKDEwMCk7CiAgIEFTU0VSVF9UUlVFKHB0ciAhPSBOVUxMKTsKICAgQVNTRVJUX0xFKDEwMFUsIG1hbGxvY191c2FibGVfc2l6ZShwdHIpKTsKLQogICBmcmVlKHB0cik7CiB9CiAKK1RFU1QobWFsbG9jLCBtYWxsb2Nfb3ZlcmZsb3cpIHsKKyAgZXJybm8gPSAwOworICBBU1NFUlRfRVEoTlVMTCwgbWFsbG9jKFNJWkVfTUFYKSk7CisgIEFTU0VSVF9FUShFTk9NRU0sIGVycm5vKTsKK30KKwogVEVTVChtYWxsb2MsIGNhbGxvY19zdGQpIHsKICAgLy8gU2ltcGxlIGNhbGxvYyB0ZXN0LgogICBzaXplX3QgYWxsb2NfbGVuID0gMTAwOwpAQCAtMzcsMjQgKzQ3LDY3IEBACiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYWxsb2NfbGVuOyBpKyspIHsKICAgICBBU1NFUlRfRVEoMCwgcHRyW2ldKTsKICAgfQotCiAgIGZyZWUocHRyKTsKIH0KIAorVEVTVChtYWxsb2MsIGNhbGxvY19pbGxlZ2FsKSB7CisgIGVycm5vID0gMDsKKyAgQVNTRVJUX0VRKE5VTEwsIGNhbGxvYygtMSwgMTAwKSk7CisgIEFTU0VSVF9FUShFTk9NRU0sIGVycm5vKTsKK30KKworVEVTVChtYWxsb2MsIGNhbGxvY19vdmVyZmxvdykgeworICBlcnJubyA9IDA7CisgIEFTU0VSVF9FUShOVUxMLCBjYWxsb2MoMSwgU0laRV9NQVgpKTsKKyAgQVNTRVJUX0VRKEVOT01FTSwgZXJybm8pOworICBlcnJubyA9IDA7CisgIEFTU0VSVF9FUShOVUxMLCBjYWxsb2MoU0laRV9NQVgsIFNJWkVfTUFYKSk7CisgIEFTU0VSVF9FUShFTk9NRU0sIGVycm5vKTsKKyAgZXJybm8gPSAwOworICBBU1NFUlRfRVEoTlVMTCwgY2FsbG9jKDIsIFNJWkVfTUFYKSk7CisgIEFTU0VSVF9FUShFTk9NRU0sIGVycm5vKTsKKyAgZXJybm8gPSAwOworICBBU1NFUlRfRVEoTlVMTCwgY2FsbG9jKFNJWkVfTUFYLCAyKSk7CisgIEFTU0VSVF9FUShFTk9NRU0sIGVycm5vKTsKK30KKwogVEVTVChtYWxsb2MsIG1lbWFsaWduX211bHRpcGxlKSB7CiAgIC8vIE1lbWFsaWduIHRlc3Qgd2hlcmUgdGhlIGFsaWdubWVudCBpcyBhbnkgdmFsdWUuCiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDw9IDEyOyBpKyspIHsKICAgICBmb3IgKHNpemVfdCBhbGlnbm1lbnQgPSAxIDw8IGk7IGFsaWdubWVudCA8ICgxVSA8PCAoaSsxKSk7IGFsaWdubWVudCsrKSB7Ci0gICAgICBjaGFyICpwdHIgPSAoY2hhciopbWVtYWxpZ24oYWxpZ25tZW50LCAxMDApOwotICAgICAgQVNTRVJUX1RSVUUocHRyICE9IE5VTEwpIDw8IGFsaWdubWVudDsKLSAgICAgIEFTU0VSVF9MRSgxMDBVLCBtYWxsb2NfdXNhYmxlX3NpemUocHRyKSk7Ci0gICAgICBBU1NFUlRfRVEoMCwgKGludHB0cl90KXB0ciAlICgxIDw8IGkpKTsKLQorICAgICAgY2hhciAqcHRyID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWVtYWxpZ24oYWxpZ25tZW50LCAxMDApKTsKKyAgICAgIEFTU0VSVF9UUlVFKHB0ciAhPSBOVUxMKSA8PCAiRmFpbGVkIGF0IGFsaWdubWVudCAiIDw8IGFsaWdubWVudDsKKyAgICAgIEFTU0VSVF9MRSgxMDBVLCBtYWxsb2NfdXNhYmxlX3NpemUocHRyKSkgPDwgIkZhaWxlZCBhdCBhbGlnbm1lbnQgIiA8PCBhbGlnbm1lbnQ7CisgICAgICBBU1NFUlRfRVEoMFUsIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpICUgKCgxVSA8PCBpKSkpCisgICAgICAgICAgPDwgIkZhaWxlZCBhdCBhbGlnbm1lbnQgIiA8PCBhbGlnbm1lbnQ7CiAgICAgICBmcmVlKHB0cik7CiAgICAgfQogICB9CiB9CiAKK1RFU1QobWFsbG9jLCBtZW1hbGlnbl9vdmVyZmxvdykgeworICBBU1NFUlRfRVEoTlVMTCwgbWVtYWxpZ24oNDA5NiwgU0laRV9NQVgpKTsKK30KKworVEVTVChtYWxsb2MsIG1lbWFsaWduX25vbl9wb3dlcjIpIHsKKyAgdm9pZCogcHRyOworICBmb3IgKHNpemVfdCBhbGlnbiA9IDA7IGFsaWduIDw9IDI1NjsgYWxpZ24rKykgeworICAgIHB0ciA9IG1lbWFsaWduKGFsaWduLCAxMDI0KTsKKyAgICBBU1NFUlRfVFJVRShwdHIgIT0gTlVMTCkgPDwgIkZhaWxlZCBhdCBhbGlnbiAiIDw8IGFsaWduOworICAgIGZyZWUocHRyKTsKKyAgfQorfQorCitURVNUKG1hbGxvYywgcG9zaXhfbWVtYWxpZ25fbm9uX3Bvd2VyMikgeworICB2b2lkKiBwdHI7CisgIEFTU0VSVF9FUShFSU5WQUwsIHBvc2l4X21lbWFsaWduKCZwdHIsIDE3LCAxMDI0KSk7Cit9CisKK1RFU1QobWFsbG9jLCBwb3NpeF9tZW1hbGlnbl9vdmVyZmxvdykgeworICB2b2lkKiBwdHI7CisgIEFTU0VSVF9ORSgwLCBwb3NpeF9tZW1hbGlnbigmcHRyLCAxNiwgU0laRV9NQVgpKTsKK30KKwogVEVTVChtYWxsb2MsIG1lbWFsaWduX3JlYWxsb2MpIHsKICAgLy8gTWVtYWxpZ24gYW5kIHRoZW4gcmVhbGxvYyB0aGUgcG9pbnRlciBhIGNvdXBsZSBvZiB0aW1lcy4KICAgZm9yIChzaXplX3QgYWxpZ25tZW50ID0gMTsgYWxpZ25tZW50IDw9IDQwOTY7IGFsaWdubWVudCA8PD0gMSkgewpAQCAtODcsNyArMTQwLDYgQEAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDI1MDsgaSsrKSB7CiAgICAgICBBU1NFUlRfRVEoMHg2NywgcHRyW2ldKTsKICAgICB9Ci0KICAgICBmcmVlKHB0cik7CiAgIH0KIH0KQEAgLTEwNSw3ICsxNTcsNiBAQAogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CiAgICAgQVNTRVJUX0VRKDY3LCBwdHJbaV0pOwogICB9Ci0KICAgZnJlZShwdHIpOwogfQogCkBAIC0xMjIsNyArMTczLDYgQEAKICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDA7IGkrKykgewogICAgIEFTU0VSVF9FUSg2NywgcHRyW2ldKTsKICAgfQotCiAgIGZyZWUocHRyKTsKIH0KIApAQCAtMTYxLDkgKzIxMSw5IEBACiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTUwOyBpKyspIHsKICAgICBBU1NFUlRfRVEoMHgyMywgcHRyW2ldKTsKICAgfQotCiAgIGZyZWUocHRyKTsKIH0KKwogVEVTVChtYWxsb2MsIGNhbGxvY19yZWFsbG9jX2xhcmdlcikgewogICAvLyBSZWFsbG9jIHRvIGEgbGFyZ2VyIHNpemUsIGNhbGxvYyBpcyB1c2VkIGZvciB0aGUgb3JpZ2luYWwgYWxsb2NhdGlvbi4KICAgY2hhciAqcHRyID0gKGNoYXIgKiljYWxsb2MoMSwgMTAwKTsKQEAgLTE3Niw3ICsyMjYsNiBAQAogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CiAgICAgQVNTRVJUX0VRKDAsIHB0cltpXSk7CiAgIH0KLQogICBmcmVlKHB0cik7CiB9CiAKQEAgLTE5Miw3ICsyNDEsNiBAQAogICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CiAgICAgQVNTRVJUX0VRKDAsIHB0cltpXSk7CiAgIH0KLQogICBmcmVlKHB0cik7CiB9CiAKQEAgLTIzMCwyMSArMjc4LDQ3IEBACiAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTUwOyBpKyspIHsKICAgICBBU1NFUlRfRVEoMCwgcHRyW2ldKTsKICAgfQotCiAgIGZyZWUocHRyKTsKIH0KIAotVEVTVChtYWxsb2MsIHBvc2l4X21lbWFsaWduX25vbl9wb3dlcjIpIHsKLSAgdm9pZCogcHRyOwotCi0gIEFTU0VSVF9FUShFSU5WQUwsIHBvc2l4X21lbWFsaWduKCZwdHIsIDE3LCAxMDI0KSk7CitURVNUKG1hbGxvYywgcmVhbGxvY19vdmVyZmxvdykgeworICBlcnJubyA9IDA7CisgIEFTU0VSVF9FUShOVUxMLCByZWFsbG9jKE5VTEwsIFNJWkVfTUFYKSk7CisgIEFTU0VSVF9FUShFTk9NRU0sIGVycm5vKTsKKyAgdm9pZCogcHRyID0gbWFsbG9jKDEwMCk7CisgIEFTU0VSVF9UUlVFKHB0ciAhPSBOVUxMKTsKKyAgZXJybm8gPSAwOworICBBU1NFUlRfRVEoTlVMTCwgcmVhbGxvYyhwdHIsIFNJWkVfTUFYKSk7CisgIEFTU0VSVF9FUShFTk9NRU0sIGVycm5vKTsKKyAgZnJlZShwdHIpOwogfQogCi1URVNUKG1hbGxvYywgbWVtYWxpZ25fbm9uX3Bvd2VyMikgewotICB2b2lkKiBwdHI7Ci0gIGZvciAoc2l6ZV90IGFsaWduID0gMDsgYWxpZ24gPD0gMjU2OyBhbGlnbisrKSB7Ci0gICAgcHRyID0gbWVtYWxpZ24oYWxpZ24sIDEwMjQpOwotICAgIEFTU0VSVF9UUlVFKHB0ciAhPSBOVUxMKSA8PCAiRmFpbGVkIGF0IGFsaWduICIgPDwgYWxpZ247Ci0gICAgZnJlZShwdHIpOwotICB9CisjaWYgZGVmaW5lZChIQVZFX0RFUFJFQ0FURURfTUFMTE9DX0ZVTkNTKQorZXh0ZXJuICJDIiB2b2lkKiBwdmFsbG9jKHNpemVfdCk7CitleHRlcm4gIkMiIHZvaWQqIHZhbGxvYyhzaXplX3QpOworCitURVNUKG1hbGxvYywgcHZhbGxvY19zdGQpIHsKKyAgc2l6ZV90IHBhZ2VzaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOworICB2b2lkKiBwdHIgPSBwdmFsbG9jKDEwMCk7CisgIEFTU0VSVF9UUlVFKHB0ciAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUoKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpICYgKHBhZ2VzaXplLTEpKSA9PSAwKTsKKyAgQVNTRVJUX0xFKHBhZ2VzaXplLCBtYWxsb2NfdXNhYmxlX3NpemUocHRyKSk7CisgIGZyZWUocHRyKTsKIH0KKworVEVTVChtYWxsb2MsIHB2YWxsb2Nfb3ZlcmZsb3cpIHsKKyAgQVNTRVJUX0VRKE5VTEwsIHB2YWxsb2MoU0laRV9NQVgpKTsKK30KKworVEVTVChtYWxsb2MsIHZhbGxvY19zdGQpIHsKKyAgc2l6ZV90IHBhZ2VzaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOworICB2b2lkKiBwdHIgPSBwdmFsbG9jKDEwMCk7CisgIEFTU0VSVF9UUlVFKHB0ciAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUoKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpICYgKHBhZ2VzaXplLTEpKSA9PSAwKTsKKyAgZnJlZShwdHIpOworfQorCitURVNUKG1hbGxvYywgdmFsbG9jX292ZXJmbG93KSB7CisgIEFTU0VSVF9FUShOVUxMLCB2YWxsb2MoU0laRV9NQVgpKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGVzdHMvbWF0aF90ZXN0LmNwcCBiL3Rlc3RzL21hdGhfdGVzdC5jcHAKaW5kZXggYjBkNTQxYS4uYjRmNWIxNCAxMDA2NDQKLS0tIGEvdGVzdHMvbWF0aF90ZXN0LmNwcAorKysgYi90ZXN0cy9tYXRoX3Rlc3QuY3BwCkBAIC0xMjk1LDMgKzEyOTUsMTggQEAKICAgZmxvYXQgZnIgPSBmcmV4cGYoMTQuMWYsICZleHApOwogICBBU1NFUlRfRkxPQVRfRVEoMTQuMWYsIHNjYWxibmYoZnIsIGV4cCkpOwogfQorCitURVNUKG1hdGgsIGV4cDJfU1RSSUNUX0FMSUdOX09wZW5CU0RfYnVnKSB7CisgIC8vIE9wZW5CU0QveDg2J3MgbGlibSBoYWQgYSBidWcgaGVyZSwgYnV0IGl0IHdhcyBhbHJlYWR5IGZpeGVkIGluIEZyZWVCU0Q6CisgIC8vIGh0dHA6Ly9zdm53ZWIuRnJlZUJTRC5vcmcvYmFzZS9oZWFkL2xpYi9tc3VuL3NyYy9tYXRoX3ByaXZhdGUuaD9yZXZpc2lvbj0yNDA4Mjcmdmlldz1tYXJrdXAKKyAgQVNTRVJUX0RPVUJMRV9FUSg1LjAsIGV4cDIobG9nMig1KSkpOworICBBU1NFUlRfRkxPQVRfRVEoNS4wZiwgZXhwMmYobG9nMmYoNSkpKTsKKyAgQVNTRVJUX0RPVUJMRV9FUSg1LjBMLCBleHAybChsb2cybCg1KSkpOworfQorCitURVNUKG1hdGgsIG5leHRhZnRlcmxfT3BlbkJTRF9idWcpIHsKKyAgLy8gT3BlbkJTRC94ODYncyBsaWJtIGhhZCBhIGJ1ZyBoZXJlLgorICBBU1NFUlRfVFJVRShuZXh0YWZ0ZXIoMS4wLCAwLjApIC0gMS4wIDwgMC4wKTsKKyAgQVNTRVJUX1RSVUUobmV4dGFmdGVyZigxLjBmLCAwLjBmKSAtIDEuMGYgPCAwLjBmKTsKKyAgQVNTRVJUX1RSVUUobmV4dGFmdGVybCgxLjBMLCAwLjBMKSAtIDEuMEwgPCAwLjBMKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL3B0aHJlYWRfdGVzdC5jcHAgYi90ZXN0cy9wdGhyZWFkX3Rlc3QuY3BwCmluZGV4IDBmNDJkNDMuLjM2ZGE0ODEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3B0aHJlYWRfdGVzdC5jcHAKKysrIGIvdGVzdHMvcHRocmVhZF90ZXN0LmNwcApAQCAtNjksNiArNjksMTkgQEAKICNlbmRpZiAvLyBfX0JJT05JQ19fCiB9CiAKK1RFU1QocHRocmVhZCwgcHRocmVhZF9rZXlfZGVsZXRlKSB7CisgIHZvaWQqIGV4cGVjdGVkID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMTIzNCk7CisgIHB0aHJlYWRfa2V5X3Qga2V5OworICBBU1NFUlRfRVEoMCwgcHRocmVhZF9rZXlfY3JlYXRlKCZrZXksIE5VTEwpKTsKKyAgQVNTRVJUX0VRKDAsIHB0aHJlYWRfc2V0c3BlY2lmaWMoa2V5LCBleHBlY3RlZCkpOworICBBU1NFUlRfRVEoZXhwZWN0ZWQsIHB0aHJlYWRfZ2V0c3BlY2lmaWMoa2V5KSk7CisgIEFTU0VSVF9FUSgwLCBwdGhyZWFkX2tleV9kZWxldGUoa2V5KSk7CisgIC8vIEFmdGVyIGRlbGV0aW9uLCBwdGhyZWFkX2dldHNwZWNpZmljIHJldHVybnMgTlVMTC4KKyAgQVNTRVJUX0VRKE5VTEwsIHB0aHJlYWRfZ2V0c3BlY2lmaWMoa2V5KSk7CisgIC8vIEFuZCB5b3UgY2FuJ3QgdXNlIHB0aHJlYWRfc2V0c3BlY2lmaWMgd2l0aCB0aGUgZGVsZXRlZCBrZXkuCisgIEFTU0VSVF9FUShFSU5WQUwsIHB0aHJlYWRfc2V0c3BlY2lmaWMoa2V5LCBleHBlY3RlZCkpOworfQorCiBzdGF0aWMgdm9pZCogSWRGbih2b2lkKiBhcmcpIHsKICAgcmV0dXJuIGFyZzsKIH0KZGlmZiAtLWdpdCBhL3Rlc3RzL3N0ZGlvX3Rlc3QuY3BwIGIvdGVzdHMvc3RkaW9fdGVzdC5jcHAKaW5kZXggMGZmODViZi4uMThkYWU5YyAxMDA2NDQKLS0tIGEvdGVzdHMvc3RkaW9fdGVzdC5jcHAKKysrIGIvdGVzdHMvc3RkaW9fdGVzdC5jcHAKQEAgLTQyNiw3ICs0MjYsMjYgQEAKICAgRVhQRUNUX1NUUkVRKCItMC4wMDAwMDAiLCBidWYpOwogfQogCitURVNUKHN0ZGlvLCBzbnByaW50Zl91dGY4XzE1NDM5NTU0KSB7CisgIC8vIGh0dHA6Ly9iLzE1NDM5NTU0CisgIGNoYXIgYnVmW0JVRlNJWl07CisKKyAgLy8gMS1ieXRlIGNoYXJhY3Rlci4KKyAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVkeCVkIiwgMSwgMik7CisgIEVYUEVDVF9TVFJFUSgiMXgyIiwgYnVmKTsKKyAgLy8gMi1ieXRlIGNoYXJhY3Rlci4KKyAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVkXHhjMlx4YTIlZCIsIDEsIDIpOworICBFWFBFQ1RfU1RSRVEoIjHCojIiLCBidWYpOworICAvLyAzLWJ5dGUgY2hhcmFjdGVyLgorICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJWRceGUyXHg4Mlx4YWMlZCIsIDEsIDIpOworICBFWFBFQ1RfU1RSRVEoIjHigqwyIiwgYnVmKTsKKyAgLy8gNC1ieXRlIGNoYXJhY3Rlci4KKyAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVkXHhmMFx4YTRceGFkXHhhMiVkIiwgMSwgMik7CisgIEVYUEVDVF9TVFJFUSgiMfCkraIyIiwgYnVmKTsKK30KKwogVEVTVChzdGRpbywgZnByaW50Zl9mYWlsdXJlc183MjI5NTIwKSB7CisgIC8vIGh0dHA6Ly9iLzcyMjk1MjAKICAgRklMRSogZnA7CiAKICAgLy8gVW5idWZmZXJlZCBjYXNlIHdoZXJlIHRoZSBmcHJpbnRmKDMpIGl0c2VsZiBmYWlscy4KQEAgLTUxMywxMCArNTMyLDYgQEAKICNlbmRpZgogCiAgIGVycm5vID0gMDsKLSAgRVhQRUNUX0VRKEVPRiwgcHV0dygxMjM0LCBmcCkpOwotICBFWFBFQ1RfRVEoRUJBREYsIGVycm5vKTsKLQotICBlcnJubyA9IDA7CiAgIEVYUEVDVF9FUSgwVSwgZndyaXRlKCJoZWxsbyIsIDEsIDIsIGZwKSk7CiAgIEVYUEVDVF9FUShFQkFERiwgZXJybm8pOwogCmRpZmYgLS1naXQgYS90ZXN0cy9zdGRsaWJfdGVzdC5jcHAgYi90ZXN0cy9zdGRsaWJfdGVzdC5jcHAKaW5kZXggOTc4YTYwZi4uN2M4NmQ3NiAxMDA2NDQKLS0tIGEvdGVzdHMvc3RkbGliX3Rlc3QuY3BwCisrKyBiL3Rlc3RzL3N0ZGxpYl90ZXN0LmNwcApAQCAtMzUsMjcgKzM1LDM0IEBACiAgIEVYUEVDVF9ET1VCTEVfRVEoMC4wNjE2Mzc3ODMwNDczOTUwODksIGRyYW5kNDgoKSk7CiB9CiAKLVRFU1Qoc3RkbGliLCBscmFuZDQ4X3JhbmRvbV9yYW5kKSB7CitURVNUKHN0ZGxpYiwgbHJhbmQ0OCkgewogICBzcmFuZDQ4KDB4MDEwMjAzMDQpOwogICBFWFBFQ1RfRVEoMTQwOTE2MzcyMCwgbHJhbmQ0OCgpKTsKICAgRVhQRUNUX0VRKDM5Nzc2OTc0NiwgbHJhbmQ0OCgpKTsKICAgRVhQRUNUX0VRKDkwMjI2NzEyNCwgbHJhbmQ0OCgpKTsKICAgRVhQRUNUX0VRKDEzMjM2NjEzMSwgbHJhbmQ0OCgpKTsKK30KIAotI2lmIGRlZmluZWQoX19CSU9OSUNfXykKLSAgLy8gT24gYmlvbmljLCByYW5kb20oMykgaXMgZXF1aXZhbGVudCB0byBscmFuZDQ4Li4uCitURVNUKHN0ZGxpYiwgcmFuZG9tKSB7CiAgIHNyYW5kb20oMHgwMTAyMDMwNCk7Ci0gIEVYUEVDVF9FUSgxNDA5MTYzNzIwLCByYW5kb20oKSk7Ci0gIEVYUEVDVF9FUSgzOTc3Njk3NDYsIHJhbmRvbSgpKTsKLSAgRVhQRUNUX0VRKDkwMjI2NzEyNCwgcmFuZG9tKCkpOwotICBFWFBFQ1RfRVEoMTMyMzY2MTMxLCByYW5kb20oKSk7CisgIEVYUEVDVF9FUSg1NTQzNjczNSwgcmFuZG9tKCkpOworICBFWFBFQ1RfRVEoMTM5OTg2NTExNywgcmFuZG9tKCkpOworICBFWFBFQ1RfRVEoMjAzMjY0MzI4MywgcmFuZG9tKCkpOworICBFWFBFQ1RfRVEoNTcxMzI5MjE2LCByYW5kb20oKSk7Cit9CiAKLSAgLy8gLi4uYW5kIHJhbmQoMykgaXMgdGhlIGJvdHRvbSAzMiBiaXRzLgorVEVTVChzdGRsaWIsIHJhbmQpIHsKICAgc3JhbmQoMHgwMTAyMDMwNCk7Ci0gIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxpbnQ+KDE0MDkxNjM3MjApLCByYW5kKCkpOwotICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50PigzOTc3Njk3NDYpLCByYW5kKCkpOwotICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50Pig5MDIyNjcxMjQpLCByYW5kKCkpOwotICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50PigxMzIzNjYxMzEpLCByYW5kKCkpOworI2lmIGRlZmluZWQoX19CSU9OSUNfXykKKyAgRVhQRUNUX0VRKDE2NzU1Mzg2NjksIHJhbmQoKSk7CisgIEVYUEVDVF9FUSgxNjc4MjI4MjU4LCByYW5kKCkpOworICBFWFBFQ1RfRVEoMTM1MjM1MDEzMSwgcmFuZCgpKTsKKyAgRVhQRUNUX0VRKDgyNDA2ODk3NiwgcmFuZCgpKTsKKyNlbHNlCisgIEVYUEVDVF9FUSg1NTQzNjczNSwgcmFuZCgpKTsKKyAgRVhQRUNUX0VRKDEzOTk4NjUxMTcsIHJhbmQoKSk7CisgIEVYUEVDVF9FUSgyMDMyNjQzMjgzLCByYW5kKCkpOworICBFWFBFQ1RfRVEoNTcxMzI5MjE2LCByYW5kKCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL3N0cmluZ190ZXN0LmNwcCBiL3Rlc3RzL3N0cmluZ190ZXN0LmNwcAppbmRleCBmMTdlNTc1Li4yYWI2MGQ3IDEwMDY0NAotLS0gYS90ZXN0cy9zdHJpbmdfdGVzdC5jcHAKKysrIGIvdGVzdHMvc3RyaW5nX3Rlc3QuY3BwCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAogI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogCkBAIC0xNDMsOSArMTQ0LDkgQEAKICAgICBpbnQgbWF4X2FsaWdubWVudCA9IDY0OwogCiAgICAgLy8gVE9ETzogZml4IHRoZSB0ZXN0cyB0byBub3Qgc29tZXRpbWVzIHVzZSB0d2ljZSB0aGVpciBzcGVjaWZpZWQgIk1BWF9MRU4iLgotICAgIGdsb2JfcHRyID0gcmVpbnRlcnByZXRfY2FzdDxDaGFyYWN0ZXIqPih2YWxsb2MoMiAqIHNpemVvZihDaGFyYWN0ZXIpICogTUFYX0xFTiArIG1heF9hbGlnbm1lbnQpKTsKLSAgICBnbG9iX3B0cjEgPSByZWludGVycHJldF9jYXN0PENoYXJhY3Rlcio+KHZhbGxvYygyICogc2l6ZW9mKENoYXJhY3RlcikgKiBNQVhfTEVOICsgbWF4X2FsaWdubWVudCkpOwotICAgIGdsb2JfcHRyMiA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q2hhcmFjdGVyKj4odmFsbG9jKDIgKiBzaXplb2YoQ2hhcmFjdGVyKSAqIE1BWF9MRU4gKyBtYXhfYWxpZ25tZW50KSk7CisgICAgZ2xvYl9wdHIgPSByZWludGVycHJldF9jYXN0PENoYXJhY3Rlcio+KG1lbWFsaWduKHN5c2NvbmYoX1NDX1BBR0VTSVpFKSwgMiAqIHNpemVvZihDaGFyYWN0ZXIpICogTUFYX0xFTiArIG1heF9hbGlnbm1lbnQpKTsKKyAgICBnbG9iX3B0cjEgPSByZWludGVycHJldF9jYXN0PENoYXJhY3Rlcio+KG1lbWFsaWduKHN5c2NvbmYoX1NDX1BBR0VTSVpFKSwgMiAqIHNpemVvZihDaGFyYWN0ZXIpICogTUFYX0xFTiArIG1heF9hbGlnbm1lbnQpKTsKKyAgICBnbG9iX3B0cjIgPSByZWludGVycHJldF9jYXN0PENoYXJhY3Rlcio+KG1lbWFsaWduKHN5c2NvbmYoX1NDX1BBR0VTSVpFKSwgMiAqIHNpemVvZihDaGFyYWN0ZXIpICogTUFYX0xFTiArIG1heF9hbGlnbm1lbnQpKTsKIAogICAgIEluaXRMZW5BcnJheSgpOwogCkBAIC03ODksMzcgKzc5MCw2IEBACiAgIH0KIH0KIAotZXh0ZXJuICJDIiBpbnQgX19tZW1jbXAxNihjb25zdCB1bnNpZ25lZCBzaG9ydCAqcHRyMSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKnB0cjIsIHNpemVfdCBuKTsKLQotVEVTVChzdHJpbmcsIF9fbWVtY21wMTYpIHsKLSNpZiBkZWZpbmVkKF9fQklPTklDX18pCi0gIFN0cmluZ1Rlc3RTdGF0ZTx1bnNpZ25lZCBzaG9ydD4gc3RhdGUoU01BTEwpOwotCi0gIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RhdGUubjsgaSsrKSB7Ci0gICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBQT1NfSVRFUjsgaisrKSB7Ci0gICAgICBzdGF0ZS5OZXdJdGVyYXRpb24oKTsKLQotICAgICAgdW5zaWduZWQgc2hvcnQgbWFzayA9IDB4ZmZmZjsKLSAgICAgIHVuc2lnbmVkIHNob3J0IGMxID0gcmFuZCgpICYgbWFzazsKLSAgICAgIHVuc2lnbmVkIHNob3J0IGMyID0gcmFuZCgpICYgbWFzazsKLQotICAgICAgc3RkOjpmaWxsKHN0YXRlLnB0cjEsIHN0YXRlLnB0cjEgKyBzdGF0ZS5NQVhfTEVOLCBjMSk7Ci0gICAgICBzdGQ6OmZpbGwoc3RhdGUucHRyMiwgc3RhdGUucHRyMiArIHN0YXRlLk1BWF9MRU4sIGMxKTsKLQotICAgICAgaW50IHBvcyA9IChzdGF0ZS5sZW5baV0gPT0gMCkgPyAwIDogKHJhbmRvbSgpICUgc3RhdGUubGVuW2ldKTsKLSAgICAgIHN0YXRlLnB0cjJbcG9zXSA9IGMyOwotCi0gICAgICBpbnQgZXhwZWN0ZWQgPSAoc3RhdGljX2Nhc3Q8dW5zaWduZWQgc2hvcnQ+KGMxKSAtIHN0YXRpY19jYXN0PHVuc2lnbmVkIHNob3J0PihjMikpOwotICAgICAgaW50IGFjdHVhbCA9IF9fbWVtY21wMTYoc3RhdGUucHRyMSwgc3RhdGUucHRyMiwgKHNpemVfdCkgc3RhdGUuTUFYX0xFTik7Ci0KLSAgICAgIEFTU0VSVF9FUShleHBlY3RlZCwgYWN0dWFsKTsKLSAgICB9Ci0gIH0KLSNlbHNlIC8vIF9fQklPTklDX18KLSAgR1RFU1RfTE9HXyhJTkZPKSA8PCAiVGhpcyB0ZXN0IGRvZXMgbm90aGluZy5cbiI7Ci0jZW5kaWYgLy8gX19CSU9OSUNfXwotfQotCiBURVNUKHN0cmluZywgd21lbWNtcCkgewogICBTdHJpbmdUZXN0U3RhdGU8d2NoYXJfdD4gc3RhdGUoU01BTEwpOwogCkBAIC05MDksNiArODc5LDM1IEBACiAgIH0KIH0KIAorVEVTVChzdHJpbmcsIG1lbW1vdmVfY2FjaGVfc2l6ZSkgeworICBzaXplX3QgbGVuID0gNjAwMDAwOworICBpbnQgbWF4X2FsaWdubWVudCA9IDMxOworICBpbnQgYWxpZ25tZW50c1tdID0gezAsIDUsIDExLCAyOSwgMzB9OworICBjaGFyKiBwdHIgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtYWxsb2Moc2l6ZW9mKGNoYXIpICogbGVuKSk7CisgIGNoYXIqIHB0cjEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtYWxsb2MoMiAqIHNpemVvZihjaGFyKSAqIGxlbikpOworICBjaGFyKiBnbG9iX3B0cjIgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtYWxsb2MoMiAqIHNpemVvZihjaGFyKSAqIGxlbiArIG1heF9hbGlnbm1lbnQpKTsKKyAgc2l6ZV90IHBvcyA9IDY0OworCisgIEFTU0VSVF9UUlVFKHB0ciAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUocHRyMSAhPSBOVUxMKTsKKyAgQVNTRVJUX1RSVUUoZ2xvYl9wdHIyICE9IE5VTEwpOworCisgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CisgICAgY2hhciogcHRyMiA9IGdsb2JfcHRyMiArIGFsaWdubWVudHNbaV07CisgICAgbWVtc2V0KHB0cjEsIHJhbmRvbSgpICYgMjU1LCAyICogbGVuKTsKKyAgICBtZW1zZXQocHRyMSwgcmFuZG9tKCkgJiAyNTUsIGxlbik7CisgICAgbWVtY3B5KHB0cjIsIHB0cjEsIDIgKiBsZW4pOworICAgIG1lbWNweShwdHIsIHB0cjEsIGxlbik7CisgICAgbWVtY3B5KHB0cjEgKyBwb3MsIHB0ciwgbGVuKTsKKworICAgIEFTU0VSVF9UUlVFKG1lbW1vdmUocHRyMiArIHBvcywgcHRyLCBsZW4pID09IHB0cjIgKyBwb3MpOworICAgIEFTU0VSVF9FUSgwLCBtZW1jbXAocHRyMiwgcHRyMSwgMiAqIGxlbikpOworICB9CisgIGZyZWUocHRyKTsKKyAgZnJlZShwdHIxKTsKKyAgZnJlZShnbG9iX3B0cjIpOworfQorCiBzdGF0aWMgdm9pZCB2ZXJpZnlfbWVtbW92ZShjaGFyKiBzcmNfY29weSwgY2hhciogZHN0LCBjaGFyKiBzcmMsIHNpemVfdCBzaXplKSB7CiAgIG1lbXNldChkc3QsIDAsIHNpemUpOwogICBtZW1jcHkoc3JjLCBzcmNfY29weSwgc2l6ZSk7CmRpZmYgLS1naXQgYS90ZXN0cy9zeXNfbW1hbl90ZXN0LmNwcCBiL3Rlc3RzL3N5c19tbWFuX3Rlc3QuY3BwCmluZGV4IDZhYzI3OWYuLjc1Y2NmYTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3N5c19tbWFuX3Rlc3QuY3BwCisrKyBiL3Rlc3RzL3N5c19tbWFuX3Rlc3QuY3BwCkBAIC0xNywxNCArMTcsMTU4IEBACiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAogI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAKLVRFU1Qoc3lzX21tYW4sIG1tYXBfbmVnYXRpdmUpIHsKLSAgb2ZmX3Qgb2ZmID0gLXN5c2NvbmYoX1NDX1BBR0VfU0laRSk7IC8vIEFsaWduZWQgYnV0IG5lZ2F0aXZlLgotICBBU1NFUlRfRVEoTUFQX0ZBSUxFRCwgbW1hcChOVUxMLCA0MDk2LCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX0FOT058TUFQX1BSSVZBVEUsIC0xLCBvZmYpKTsKKyNpbmNsdWRlICJUZW1wb3JhcnlGaWxlLmgiCisKK1RFU1Qoc3lzX21tYW4sIG1tYXBfc3RkKSB7CisgIHZvaWQqIG1hcCA9IG1tYXAoTlVMTCwgNDA5NiwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX0FOT04gfCBNQVBfUFJJVkFURSwgLTEsIDApOworICBBU1NFUlRfTkUoTUFQX0ZBSUxFRCwgbWFwKTsKKyAgQVNTRVJUX0VRKDAsIG11bm1hcChtYXAsIDQwOTYpKTsKIH0KIAotVEVTVChzeXNfbW1hbiwgbW1hcDY0X25lZ2F0aXZlKSB7Ci0gIG9mZjY0X3Qgb2ZmNjQgPSAtc3lzY29uZihfU0NfUEFHRV9TSVpFKTsgLy8gQWxpZ25lZCBidXQgbmVnYXRpdmUuCi0gIEFTU0VSVF9FUShNQVBfRkFJTEVELCBtbWFwNjQoTlVMTCwgNDA5NiwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9BTk9OfE1BUF9QUklWQVRFLCAtMSwgb2ZmNjQpKTsKK1RFU1Qoc3lzX21tYW4sIG1tYXA2NF9zdGQpIHsKKyAgdm9pZCogbWFwID0gbW1hcDY0KE5VTEwsIDQwOTYsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9BTk9OIHwgTUFQX1BSSVZBVEUsIC0xLCAwKTsKKyAgQVNTRVJUX05FKE1BUF9GQUlMRUQsIG1hcCk7CisgIEFTU0VSVF9FUSgwLCBtdW5tYXAobWFwLCA0MDk2KSk7Cit9CisKK1RFU1Qoc3lzX21tYW4sIG1tYXBfZmlsZV9iYWRfb2Zmc2V0KSB7CisgIFRlbXBvcmFyeUZpbGUgdGY7CisKKyAgdm9pZCogbWFwID0gbW1hcChOVUxMLCAxMDAsIFBST1RfUkVBRCwgTUFQX1NIQVJFRCwgdGYuZmQsIDEpOworICBBU1NFUlRfRVEoTUFQX0ZBSUxFRCwgbWFwKTsKK30KKworVEVTVChzeXNfbW1hbiwgbW1hcDY0X2ZpbGVfYmFkX29mZnNldCkgeworICBUZW1wb3JhcnlGaWxlIHRmOworCisgIHZvaWQqIG1hcCA9IG1tYXA2NChOVUxMLCAxMDAsIFBST1RfUkVBRCwgTUFQX1NIQVJFRCwgdGYuZmQsIDEpOworICBBU1NFUlRfRVEoTUFQX0ZBSUxFRCwgbWFwKTsKK30KKworI2RlZmluZSBTVFJfU1NJWkUoc3RyKSBzdGF0aWNfY2FzdDxzc2l6ZV90PihzaXplb2Yoc3RyKSkKKworI2RlZmluZSBTVFJJTkdfTVNHICAiMDEyMzQ1Njc4XG5hYmNkZWZnaFxuIgorI2RlZmluZSBJTklUSUFMX01TRyAiMDAwMDAwMDAwXG4wMDAwMDAwMFxuIgorCitURVNUKHN5c19tbWFuLCBtbWFwX2ZpbGVfcmVhZCkgeworICBUZW1wb3JhcnlGaWxlIHRmOworCisgIEFTU0VSVF9FUShTVFJfU1NJWkUoU1RSSU5HX01TRyksIHdyaXRlKHRmLmZkLCBTVFJJTkdfTVNHLCBzaXplb2YoU1RSSU5HX01TRykpKTsKKworICB2b2lkKiBtYXAgPSBtbWFwKE5VTEwsIHNpemVvZihTVFJJTkdfTVNHKSwgUFJPVF9SRUFELCBNQVBfU0hBUkVELCB0Zi5mZCwgMCk7CisgIEFTU0VSVF9ORShNQVBfRkFJTEVELCBtYXApOworCisgIGNoYXIqIGRhdGEgPSByZWludGVycHJldF9jYXN0PGNoYXIqPihtYXApOworICBBU1NFUlRfU1RSRVEoU1RSSU5HX01TRywgZGF0YSk7CisKKyAgQVNTRVJUX0VRKDAsIG11bm1hcChtYXAsIHNpemVvZihTVFJJTkdfTVNHKSkpOworfQorCitURVNUKHN5c19tbWFuLCBtbWFwX2ZpbGVfd3JpdGUpIHsKKyAgVGVtcG9yYXJ5RmlsZSB0ZjsKKworICBBU1NFUlRfRVEoU1RSX1NTSVpFKElOSVRJQUxfTVNHKSwgd3JpdGUodGYuZmQsIElOSVRJQUxfTVNHLCBzaXplb2YoSU5JVElBTF9NU0cpKSk7CisgIGxzZWVrKHRmLmZkLCAwLCBTRUVLX1NFVCk7CisKKyAgdm9pZCogbWFwID0gbW1hcChOVUxMLCBzaXplb2YoU1RSSU5HX01TRyksIFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIHRmLmZkLCAwKTsKKyAgQVNTRVJUX05FKE1BUF9GQUlMRUQsIG1hcCk7CisgIGNsb3NlKHRmLmZkKTsKKworICBtZW1jcHkobWFwLCBTVFJJTkdfTVNHLCBzaXplb2YoU1RSSU5HX01TRykpOworCisgIEFTU0VSVF9FUSgwLCBtdW5tYXAobWFwLCBzaXplb2YoU1RSSU5HX01TRykpKTsKKworICB0Zi5yZW9wZW4oKTsKKyAgY2hhciBidWZbc2l6ZW9mKFNUUklOR19NU0cpXTsKKyAgbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKFNUUklOR19NU0cpKTsKKyAgQVNTRVJUX0VRKFNUUl9TU0laRShTVFJJTkdfTVNHKSwgcmVhZCh0Zi5mZCwgYnVmLCBzaXplb2YoU1RSSU5HX01TRykpKTsKKworICBBU1NFUlRfU1RSRVEoU1RSSU5HX01TRywgYnVmKTsKK30KKworI2RlZmluZSBQQUdFMF9NU0cgIjAwUEFHRTAwIgorI2RlZmluZSBQQUdFMV9NU0cgIjExMVBBR0UxMTEiCisjZGVmaW5lIFBBR0UyX01TRyAiMjIyMlBBR0UyMjIyIgorI2RlZmluZSBFTkRfTVNHICJFIgorCitURVNUKHN5c19tbWFuLCBtbWFwX2ZpbGVfcmVhZF9hdF9vZmZzZXQpIHsKKyAgVGVtcG9yYXJ5RmlsZSB0ZjsKKyAgc2l6ZV90IHBhZ2VzaXplID0gc3lzY29uZihfU0NfUEFHRVNJWkUpOworCisgIC8vIENyZWF0ZSB0aGUgZmlsZSB3aXRoIHRocmVlIHBhZ2VzIHdvcnRoIG9mIGRhdGEuCisgIEFTU0VSVF9FUShTVFJfU1NJWkUoUEFHRTBfTVNHKSwgd3JpdGUodGYuZmQsIFBBR0UwX01TRywgc2l6ZW9mKFBBR0UwX01TRykpKTsKKyAgQVNTRVJUX05FKC0xLCBsc2Vlayh0Zi5mZCwgcGFnZXNpemUsIFNFRUtfU0VUKSk7CisgIEFTU0VSVF9FUShTVFJfU1NJWkUoUEFHRTFfTVNHKSwgd3JpdGUodGYuZmQsIFBBR0UxX01TRywgc2l6ZW9mKFBBR0UxX01TRykpKTsKKyAgQVNTRVJUX05FKC0xLCBsc2Vlayh0Zi5mZCwgMiAqIHBhZ2VzaXplLCBTRUVLX1NFVCkpOworICBBU1NFUlRfRVEoU1RSX1NTSVpFKFBBR0UyX01TRyksIHdyaXRlKHRmLmZkLCBQQUdFMl9NU0csIHNpemVvZihQQUdFMl9NU0cpKSk7CisgIEFTU0VSVF9ORSgtMSwgbHNlZWsodGYuZmQsIDMgKiBwYWdlc2l6ZSAtIHNpemVvZihFTkRfTVNHKSwgU0VFS19TRVQpKTsKKyAgQVNTRVJUX0VRKFNUUl9TU0laRShFTkRfTVNHKSwgd3JpdGUodGYuZmQsIEVORF9NU0csIHNpemVvZihFTkRfTVNHKSkpOworCisgIEFTU0VSVF9ORSgtMSwgbHNlZWsodGYuZmQsIDAsIFNFRUtfU0VUKSk7CisKKyAgdm9pZCogbWFwID0gbW1hcChOVUxMLCBwYWdlc2l6ZSwgUFJPVF9SRUFELCBNQVBfU0hBUkVELCB0Zi5mZCwgcGFnZXNpemUpOworICBBU1NFUlRfTkUoTUFQX0ZBSUxFRCwgbWFwKTsKKworICBjaGFyKiBkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obWFwKTsKKyAgQVNTRVJUX1NUUkVRKFBBR0UxX01TRywgZGF0YSk7CisKKyAgQVNTRVJUX0VRKDAsIG11bm1hcChtYXAsIHBhZ2VzaXplKSk7CisKKyAgbWFwID0gbW1hcChOVUxMLCBwYWdlc2l6ZSwgUFJPVF9SRUFELCBNQVBfU0hBUkVELCB0Zi5mZCwgMiAqIHBhZ2VzaXplKTsKKyAgQVNTRVJUX05FKE1BUF9GQUlMRUQsIG1hcCk7CisKKyAgZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1hcCk7CisgIEFTU0VSVF9TVFJFUShQQUdFMl9NU0csIGRhdGEpOworICBBU1NFUlRfU1RSRVEoRU5EX01TRywgZGF0YStwYWdlc2l6ZS1zaXplb2YoRU5EX01TRykpOworCisgIEFTU0VSVF9FUSgwLCBtdW5tYXAobWFwLCBwYWdlc2l6ZSkpOworfQorCisjZGVmaW5lIE5FV1BBR0UxX01TRyAiMU5FVzFQQUdFMSIKKyNkZWZpbmUgTkVXUEFHRTJfTVNHICIyMk5FVzIyUEFHRTIyIgorCitURVNUKHN5c19tbWFuLCBtbWFwX2ZpbGVfd3JpdGVfYXRfb2Zmc2V0KSB7CisgIFRlbXBvcmFyeUZpbGUgdGY7CisgIHNpemVfdCBwYWdlc2l6ZSA9IHN5c2NvbmYoX1NDX1BBR0VTSVpFKTsKKworICAvLyBDcmVhdGUgdGhlIGZpbGUgd2l0aCB0aHJlZSBwYWdlcyB3b3J0aCBvZiBkYXRhLgorICBBU1NFUlRfRVEoU1RSX1NTSVpFKFBBR0UwX01TRyksIHdyaXRlKHRmLmZkLCBQQUdFMF9NU0csIHNpemVvZihQQUdFMF9NU0cpKSk7CisgIEFTU0VSVF9ORSgtMSwgbHNlZWsodGYuZmQsIHBhZ2VzaXplLCBTRUVLX1NFVCkpOworICBBU1NFUlRfRVEoU1RSX1NTSVpFKFBBR0UxX01TRyksIHdyaXRlKHRmLmZkLCBQQUdFMV9NU0csIHNpemVvZihQQUdFMV9NU0cpKSk7CisgIEFTU0VSVF9ORSgtMSwgbHNlZWsodGYuZmQsIDIgKiBwYWdlc2l6ZSwgU0VFS19TRVQpKTsKKyAgQVNTRVJUX0VRKFNUUl9TU0laRShQQUdFMl9NU0cpLCB3cml0ZSh0Zi5mZCwgUEFHRTJfTVNHLCBzaXplb2YoUEFHRTJfTVNHKSkpOworICBBU1NFUlRfTkUoLTEsIGxzZWVrKHRmLmZkLCAzICogcGFnZXNpemUgLSBzaXplb2YoRU5EX01TRyksIFNFRUtfU0VUKSk7CisgIEFTU0VSVF9FUShTVFJfU1NJWkUoRU5EX01TRyksIHdyaXRlKHRmLmZkLCBFTkRfTVNHLCBzaXplb2YoRU5EX01TRykpKTsKKworICBBU1NFUlRfTkUoLTEsIGxzZWVrKHRmLmZkLCAwLCBTRUVLX1NFVCkpOworCisgIHZvaWQqIG1hcCA9IG1tYXAoTlVMTCwgcGFnZXNpemUsIFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIHRmLmZkLCBwYWdlc2l6ZSk7CisgIEFTU0VSVF9ORShNQVBfRkFJTEVELCBtYXApOworICBjbG9zZSh0Zi5mZCk7CisKKyAgbWVtY3B5KG1hcCwgTkVXUEFHRTFfTVNHLCBzaXplb2YoTkVXUEFHRTFfTVNHKSk7CisgIEFTU0VSVF9FUSgwLCBtdW5tYXAobWFwLCBwYWdlc2l6ZSkpOworCisgIHRmLnJlb3BlbigpOworICBtYXAgPSBtbWFwKE5VTEwsIHBhZ2VzaXplLCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELCB0Zi5mZCwgMiAqIHBhZ2VzaXplKTsKKyAgQVNTRVJUX05FKE1BUF9GQUlMRUQsIG1hcCk7CisgIGNsb3NlKHRmLmZkKTsKKworICBtZW1jcHkobWFwLCBORVdQQUdFMl9NU0csIHNpemVvZihORVdQQUdFMl9NU0cpKTsKKyAgQVNTRVJUX0VRKDAsIG11bm1hcChtYXAsIHBhZ2VzaXplKSk7CisKKyAgdGYucmVvcGVuKCk7CisgIGNoYXIgYnVmW3BhZ2VzaXplXTsKKyAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHNzaXplX3Q+KHBhZ2VzaXplKSwgcmVhZCh0Zi5mZCwgYnVmLCBwYWdlc2l6ZSkpOworICBBU1NFUlRfU1RSRVEoUEFHRTBfTVNHLCBidWYpOworICBBU1NFUlRfTkUoLTEsIGxzZWVrKHRmLmZkLCBwYWdlc2l6ZSwgU0VFS19TRVQpKTsKKyAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHNzaXplX3Q+KHBhZ2VzaXplKSwgcmVhZCh0Zi5mZCwgYnVmLCBwYWdlc2l6ZSkpOworICBBU1NFUlRfU1RSRVEoTkVXUEFHRTFfTVNHLCBidWYpOworICBBU1NFUlRfTkUoLTEsIGxzZWVrKHRmLmZkLCAyICogcGFnZXNpemUsIFNFRUtfU0VUKSk7CisgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxzc2l6ZV90PihwYWdlc2l6ZSksIHJlYWQodGYuZmQsIGJ1ZiwgcGFnZXNpemUpKTsKKyAgQVNTRVJUX1NUUkVRKE5FV1BBR0UyX01TRywgYnVmKTsKKyAgQVNTRVJUX1NUUkVRKEVORF9NU0csIGJ1ZitwYWdlc2l6ZS1zaXplb2YoRU5EX01TRykpOwogfQpkaWZmIC0tZ2l0IGEvdGVzdHMvdWNoYXJfdGVzdC5jcHAgYi90ZXN0cy91Y2hhcl90ZXN0LmNwcAppbmRleCA1ZjIzMGYwLi5lY2EzYzVlIDEwMDY0NAotLS0gYS90ZXN0cy91Y2hhcl90ZXN0LmNwcAorKysgYi90ZXN0cy91Y2hhcl90ZXN0LmNwcApAQCAtMTYxLDkgKzE2MSw5IEBACiAjaWYgSEFWRV9VQ0hBUgogICBjaGFyMTZfdCBvdXQ7CiAKLSAgb3V0ID0gJ3gnOworICBvdXQgPSBMJ3gnOwogICBBU1NFUlRfRVEoMFUsIG1icnRvYzE2KCZvdXQsICJoZWxsbyIsIDAsIE5VTEwpKTsKLSAgQVNTRVJUX0VRKCd4Jywgb3V0KTsKKyAgQVNTRVJUX0VRKEwneCcsIG91dCk7CiAKICAgQVNTRVJUX0VRKDBVLCBtYnJ0b2MxNigmb3V0LCAiaGVsbG8iLCAwLCBOVUxMKSk7CiAgIEFTU0VSVF9FUSgwVSwgbWJydG9jMTYoJm91dCwgIiIsIDAsIE5VTEwpKTsKQEAgLTMyNCwxNCArMzI0LDE0IEBACiAjaWYgSEFWRV9VQ0hBUgogICBjaGFyMzJfdCBvdXRbOF07CiAKLSAgb3V0WzBdID0gJ3gnOworICBvdXRbMF0gPSBMJ3gnOwogICBBU1NFUlRfRVEoMFUsIG1icnRvYzMyKG91dCwgImhlbGxvIiwgMCwgTlVMTCkpOwotICBBU1NFUlRfRVEoJ3gnLCBvdXRbMF0pOworICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8Y2hhcjMyX3Q+KEwneCcpLCBvdXRbMF0pOwogCiAgIEFTU0VSVF9FUSgwVSwgbWJydG9jMzIob3V0LCAiaGVsbG8iLCAwLCBOVUxMKSk7CiAgIEFTU0VSVF9FUSgwVSwgbWJydG9jMzIob3V0LCAiIiwgMCwgTlVMTCkpOwogICBBU1NFUlRfRVEoMVUsIG1icnRvYzMyKG91dCwgImhlbGxvIiwgMSwgTlVMTCkpOwotICBBU1NFUlRfRVEoTCdoJywgb3V0WzBdKTsKKyAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PGNoYXIzMl90PihMJ2gnKSwgb3V0WzBdKTsKIAogICBBU1NFUlRfRVEoMFUsIG1icnRvYzMyKE5VTEwsICJoZWxsbyIsIDAsIE5VTEwpKTsKICAgQVNTRVJUX0VRKDBVLCBtYnJ0b2MzMihOVUxMLCAiIiwgMCwgTlVMTCkpOwpAQCAtMzQ0LDcgKzM0NCw3IEBACiAKICAgLy8gMS1ieXRlIFVURi04LgogICBBU1NFUlRfRVEoMVUsIG1icnRvYzMyKG91dCwgImFiY2RlZiIsIDYsIE5VTEwpKTsKLSAgQVNTRVJUX0VRKEwnYScsIG91dFswXSk7CisgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxjaGFyMzJfdD4oTCdhJyksIG91dFswXSk7CiAgIC8vIDItYnl0ZSBVVEYtOC4KICAgQVNTRVJUX0VRKDJVLCBtYnJ0b2MzMihvdXQsICJceGMyXHhhMiIgImNkZWYiLCA2LCBOVUxMKSk7CiAgIEFTU0VSVF9FUShzdGF0aWNfY2FzdDxjaGFyMzJfdD4oMHgwMGEyKSwgb3V0WzBdKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3VuaXN0ZF90ZXN0LmNwcCBiL3Rlc3RzL3VuaXN0ZF90ZXN0LmNwcAppbmRleCA2YWEyNTlhLi41OGM5YWQ5IDEwMDY0NAotLS0gYS90ZXN0cy91bmlzdGRfdGVzdC5jcHAKKysrIGIvdGVzdHMvdW5pc3RkX3Rlc3QuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzeXMvc3lzY2FsbC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy93YWl0Lmg+CiAKQEAgLTM3OSwzICszODAsNzIgQEAKIFRFU1QodW5pc3RkLCBmc3luYykgewogICBUZXN0RnN5bmNGdW5jdGlvbihmc3luYyk7CiB9CisKK3N0YXRpYyB2b2lkIEFzc2VydEdldFBpZENvcnJlY3QoKSB7CisgIC8vIFRoZSBsb29wIGlzIGp1c3QgdG8gbWFrZSBtYW51YWwgdGVzdGluZy9kZWJ1Z2dpbmcgd2l0aCBzdHJhY2UgZWFzaWVyLgorICBwaWRfdCBnZXRwaWRfc3lzY2FsbF9yZXN1bHQgPSBzeXNjYWxsKF9fTlJfZ2V0cGlkKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMjg7ICsraSkgeworICAgIEFTU0VSVF9FUShnZXRwaWRfc3lzY2FsbF9yZXN1bHQsIGdldHBpZCgpKTsKKyAgfQorfQorCitURVNUKHVuaXN0ZCwgZ2V0cGlkX2NhY2hpbmdfYW5kX2ZvcmspIHsKKyAgcGlkX3QgcGFyZW50X3BpZCA9IGdldHBpZCgpOworICBBU1NFUlRfRVEoc3lzY2FsbChfX05SX2dldHBpZCksIHBhcmVudF9waWQpOworCisgIHBpZF90IGZvcmtfcmVzdWx0ID0gZm9yaygpOworICBBU1NFUlRfTkUoZm9ya19yZXN1bHQsIC0xKTsKKyAgaWYgKGZvcmtfcmVzdWx0ID09IDApIHsKKyAgICAvLyBXZSdyZSB0aGUgY2hpbGQuCisgICAgQXNzZXJ0R2V0UGlkQ29ycmVjdCgpOworICAgIEFTU0VSVF9FUShwYXJlbnRfcGlkLCBnZXRwcGlkKCkpOworICAgIF9leGl0KDEyMyk7CisgIH0gZWxzZSB7CisgICAgLy8gV2UncmUgdGhlIHBhcmVudC4KKyAgICBBU1NFUlRfRVEocGFyZW50X3BpZCwgZ2V0cGlkKCkpOworCisgICAgaW50IHN0YXR1czsKKyAgICBBU1NFUlRfRVEoZm9ya19yZXN1bHQsIHdhaXRwaWQoZm9ya19yZXN1bHQsICZzdGF0dXMsIDApKTsKKyAgICBBU1NFUlRfVFJVRShXSUZFWElURUQoc3RhdHVzKSk7CisgICAgQVNTRVJUX0VRKDEyMywgV0VYSVRTVEFUVVMoc3RhdHVzKSk7CisgIH0KK30KKworc3RhdGljIGludCBHZXRQaWRDYWNoaW5nQ2xvbmVTdGFydFJvdXRpbmUodm9pZCopIHsKKyAgQXNzZXJ0R2V0UGlkQ29ycmVjdCgpOworICByZXR1cm4gMTIzOworfQorCitURVNUKHVuaXN0ZCwgZ2V0cGlkX2NhY2hpbmdfYW5kX2Nsb25lKSB7CisgIHBpZF90IHBhcmVudF9waWQgPSBnZXRwaWQoKTsKKyAgQVNTRVJUX0VRKHN5c2NhbGwoX19OUl9nZXRwaWQpLCBwYXJlbnRfcGlkKTsKKworICB2b2lkKiBjaGlsZF9zdGFja1sxMDI0XTsKKyAgaW50IGNsb25lX3Jlc3VsdCA9IGNsb25lKEdldFBpZENhY2hpbmdDbG9uZVN0YXJ0Um91dGluZSwgJmNoaWxkX3N0YWNrWzEwMjRdLCBDTE9ORV9ORVdOUyB8IFNJR0NITEQsIE5VTEwpOworICBBU1NFUlRfTkUoY2xvbmVfcmVzdWx0LCAtMSk7CisKKyAgQVNTRVJUX0VRKHBhcmVudF9waWQsIGdldHBpZCgpKTsKKworICBpbnQgc3RhdHVzOworICBBU1NFUlRfRVEoY2xvbmVfcmVzdWx0LCB3YWl0cGlkKGNsb25lX3Jlc3VsdCwgJnN0YXR1cywgMCkpOworICBBU1NFUlRfVFJVRShXSUZFWElURUQoc3RhdHVzKSk7CisgIEFTU0VSVF9FUSgxMjMsIFdFWElUU1RBVFVTKHN0YXR1cykpOworfQorCitzdGF0aWMgdm9pZCogR2V0UGlkQ2FjaGluZ1B0aHJlYWRTdGFydFJvdXRpbmUodm9pZCopIHsKKyAgQXNzZXJ0R2V0UGlkQ29ycmVjdCgpOworICByZXR1cm4gTlVMTDsKK30KKworVEVTVCh1bmlzdGQsIGdldHBpZF9jYWNoaW5nX2FuZF9wdGhyZWFkX2NyZWF0ZSkgeworICBwaWRfdCBwYXJlbnRfcGlkID0gZ2V0cGlkKCk7CisKKyAgcHRocmVhZF90IHQ7CisgIEFTU0VSVF9FUSgwLCBwdGhyZWFkX2NyZWF0ZSgmdCwgTlVMTCwgR2V0UGlkQ2FjaGluZ1B0aHJlYWRTdGFydFJvdXRpbmUsIE5VTEwpKTsKKworICBBU1NFUlRfRVEocGFyZW50X3BpZCwgZ2V0cGlkKCkpOworCisgIHZvaWQqIHJlc3VsdDsKKyAgQVNTRVJUX0VRKDAsIHB0aHJlYWRfam9pbih0LCAmcmVzdWx0KSk7CisgIEFTU0VSVF9FUShOVUxMLCByZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvd2NoYXJfdGVzdC5jcHAgYi90ZXN0cy93Y2hhcl90ZXN0LmNwcAppbmRleCA1YTI1MGEyLi5hNWY1ZjYzIDEwMDY0NAotLS0gYS90ZXN0cy93Y2hhcl90ZXN0LmNwcAorKysgYi90ZXN0cy93Y2hhcl90ZXN0LmNwcApAQCAtMjIxLDcgKzIyMSw3IEBACiAgIEFTU0VSVF9MVChXQ0hBUl9NSU4sIFdDSEFSX01BWCk7CiB9CiAKLVRFU1Qod2NoYXIsIHdjc3N0cl93Y3N3Y3MpIHsKK1RFU1Qod2NoYXIsIHdjc3N0cikgewogICBjb25zdCB3Y2hhcl90KiBoYXlzdGFjayA9IEwibWF0Y2hlcyBoZWxsbyB3b3JsZCwgbm90IHRoZSBzZWNvbmQgaGVsbG8gd29ybGQiOwogICBjb25zdCB3Y2hhcl90KiBlbXB0eV9uZWVkbGUgPSBMIiI7CiAgIGNvbnN0IHdjaGFyX3QqIGdvb2RfbmVlZGxlID0gTCJsbCI7CkBAIC0yMzAsMTAgKzIzMCw2IEBACiAgIEFTU0VSVF9FUShoYXlzdGFjaywgd2Nzc3RyKGhheXN0YWNrLCBlbXB0eV9uZWVkbGUpKTsKICAgQVNTRVJUX0VRKCZoYXlzdGFja1sxMF0sIHdjc3N0cihoYXlzdGFjaywgZ29vZF9uZWVkbGUpKTsKICAgQVNTRVJUX0VRKE5VTEwsIHdjc3N0cihoYXlzdGFjaywgYmFkX25lZWRsZSkpOwotCi0gIEFTU0VSVF9FUShoYXlzdGFjaywgd2Nzd2NzKGhheXN0YWNrLCBlbXB0eV9uZWVkbGUpKTsKLSAgQVNTRVJUX0VRKCZoYXlzdGFja1sxMF0sIHdjc3djcyhoYXlzdGFjaywgZ29vZF9uZWVkbGUpKTsKLSAgQVNTRVJUX0VRKE5VTEwsIHdjc3djcyhoYXlzdGFjaywgYmFkX25lZWRsZSkpOwogfQogCiBURVNUKHdjaGFyLCBtYnRvd2MpIHsKQEAgLTQ1MywzICs0NDksMzIgQEAKICAgd21lbW1vdmUod3N0cis1LCB3c3RyLCBzaXplb2YoY29uc3Rfd3N0cikvc2l6ZW9mKHdjaGFyX3QpIC0gNik7CiAgIEVYUEVDVF9TVFJFUShMIlRoaXMgVGhpcyBpcyBhIHRlc3Qgb2Ygc29tZXRoaW5nIG9yIG90aGVyIiwgd3N0cik7CiB9CisKK1RFU1Qod2NoYXIsIG1icnRvd2NfMTU0Mzk1NTQpIHsKKyAgLy8gaHR0cDovL2IvMTU0Mzk1NTQKKyAgQVNTRVJUX1NUUkVRKCJDLlVURi04Iiwgc2V0bG9jYWxlKExDX0NUWVBFLCAiQy5VVEYtOCIpKTsKKyAgdXNlbG9jYWxlKExDX0dMT0JBTF9MT0NBTEUpOworCisgIEFTU0VSVF9HRShzdGF0aWNfY2FzdDxzaXplX3Q+KE1CX0xFTl9NQVgpLCBNQl9DVVJfTUFYKTsKKyAgQVNTRVJUX0dFKE1CX0NVUl9NQVgsIDRVKTsKKworICB3Y2hhcl90IHdjOworICBzaXplX3QgbjsKKworICAvLyAxLWJ5dGUgY2hhcmFjdGVyLgorICBuID0gbWJydG93Yygmd2MsICJ4IiwgTUJfQ1VSX01BWCwgTlVMTCk7CisgIEVYUEVDVF9FUSgxVSwgbik7CisgIEVYUEVDVF9FUShMJ3gnLCB3Yyk7CisgIC8vIDItYnl0ZSBjaGFyYWN0ZXIuCisgIG4gPSBtYnJ0b3djKCZ3YywgIlx4YzJceGEyIiwgTUJfQ1VSX01BWCwgTlVMTCk7CisgIEVYUEVDVF9FUSgyVSwgbik7CisgIEVYUEVDVF9FUShMJ8KiJywgd2MpOworICAvLyAzLWJ5dGUgY2hhcmFjdGVyLgorICBuID0gbWJydG93Yygmd2MsICJceGUyXHg4Mlx4YWMiLCBNQl9DVVJfTUFYLCBOVUxMKTsKKyAgRVhQRUNUX0VRKDNVLCBuKTsKKyAgRVhQRUNUX0VRKEwn4oKsJywgd2MpOworICAvLyA0LWJ5dGUgY2hhcmFjdGVyLgorICBuID0gbWJydG93Yygmd2MsICJceGYwXHhhNFx4YWRceGEyIiwgTUJfQ1VSX01BWCwgTlVMTCk7CisgIEVYUEVDVF9FUSg0VSwgbik7CisgIEVYUEVDVF9FUShMJ/CkraInLCB3Yyk7Cit9Cg==